@dxos/app-framework 0.8.4-main.406dc2a → 0.8.4-main.422d1c7879

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 (552) hide show
  1. package/.storybook/main.mts +2 -4
  2. package/.storybook/preview.mts +2 -2
  3. package/dist/lib/browser/capability-DOMNPRJP.mjs +35 -0
  4. package/dist/lib/browser/capability-DOMNPRJP.mjs.map +7 -0
  5. package/dist/lib/browser/capability-KSNT34SN.mjs +38 -0
  6. package/dist/lib/browser/capability-KSNT34SN.mjs.map +7 -0
  7. package/dist/lib/browser/chunk-2CKCJ6PN.mjs +79 -0
  8. package/dist/lib/browser/chunk-2CKCJ6PN.mjs.map +7 -0
  9. package/dist/lib/browser/chunk-7B6AJK4D.mjs +964 -0
  10. package/dist/lib/browser/chunk-7B6AJK4D.mjs.map +7 -0
  11. package/dist/lib/browser/chunk-BMIAYUWT.mjs +397 -0
  12. package/dist/lib/browser/chunk-BMIAYUWT.mjs.map +7 -0
  13. package/dist/lib/browser/chunk-F7FW2RK2.mjs +167 -0
  14. package/dist/lib/browser/chunk-F7FW2RK2.mjs.map +7 -0
  15. package/dist/lib/browser/chunk-GDWTW4ZW.mjs +148 -0
  16. package/dist/lib/browser/chunk-GDWTW4ZW.mjs.map +7 -0
  17. package/dist/lib/browser/chunk-I34GF4NG.mjs +34 -0
  18. package/dist/lib/browser/chunk-I34GF4NG.mjs.map +7 -0
  19. package/dist/lib/browser/chunk-J5LGTIGS.mjs +10 -0
  20. package/dist/lib/browser/chunk-JKWMHZP6.mjs +80 -0
  21. package/dist/lib/browser/chunk-JKWMHZP6.mjs.map +7 -0
  22. package/dist/lib/browser/chunk-QRTB4Q3U.mjs +594 -0
  23. package/dist/lib/browser/chunk-QRTB4Q3U.mjs.map +7 -0
  24. package/dist/lib/browser/chunk-QSXYHXCE.mjs +48 -0
  25. package/dist/lib/browser/chunk-QSXYHXCE.mjs.map +7 -0
  26. package/dist/lib/browser/chunk-RFSO3JRG.mjs +1 -0
  27. package/dist/lib/browser/chunk-T3Y4AEKX.mjs +42 -0
  28. package/dist/lib/browser/chunk-T3Y4AEKX.mjs.map +7 -0
  29. package/dist/lib/browser/chunk-TGX63LTL.mjs +8 -0
  30. package/dist/lib/browser/chunk-TGX63LTL.mjs.map +7 -0
  31. package/dist/lib/browser/chunk-Y543KCO7.mjs +174 -0
  32. package/dist/lib/browser/chunk-Y543KCO7.mjs.map +7 -0
  33. package/dist/lib/browser/cli/index.mjs +90 -0
  34. package/dist/lib/browser/cli/index.mjs.map +7 -0
  35. package/dist/lib/browser/common/activation-events.mjs +24 -0
  36. package/dist/lib/browser/common/capabilities.mjs +46 -0
  37. package/dist/lib/browser/core/activation-event.mjs +20 -0
  38. package/dist/lib/browser/core/activation-event.mjs.map +7 -0
  39. package/dist/lib/browser/core/capability.mjs +30 -0
  40. package/dist/lib/browser/core/capability.mjs.map +7 -0
  41. package/dist/lib/browser/core/plugin-manager.mjs +15 -0
  42. package/dist/lib/browser/core/plugin-manager.mjs.map +7 -0
  43. package/dist/lib/browser/core/plugin.mjs +29 -0
  44. package/dist/lib/browser/core/plugin.mjs.map +7 -0
  45. package/dist/lib/browser/core/url-loader.mjs +16 -0
  46. package/dist/lib/browser/core/url-loader.mjs.map +7 -0
  47. package/dist/lib/browser/index.mjs +91 -148
  48. package/dist/lib/browser/index.mjs.map +4 -4
  49. package/dist/lib/browser/invoker-capability-VCMPQOIA.mjs +43 -0
  50. package/dist/lib/browser/invoker-capability-VCMPQOIA.mjs.map +7 -0
  51. package/dist/lib/browser/meta.json +1 -1
  52. package/dist/lib/browser/testing/index.mjs +243 -41
  53. package/dist/lib/browser/testing/index.mjs.map +4 -4
  54. package/dist/lib/browser/testing/react.mjs +78 -0
  55. package/dist/lib/browser/testing/react.mjs.map +7 -0
  56. package/dist/lib/browser/ui/index.mjs +46 -0
  57. package/dist/lib/browser/ui/index.mjs.map +7 -0
  58. package/dist/lib/node-esm/capability-EOQTORML.mjs +39 -0
  59. package/dist/lib/node-esm/capability-EOQTORML.mjs.map +7 -0
  60. package/dist/lib/node-esm/capability-KJTQIWDK.mjs +36 -0
  61. package/dist/lib/node-esm/capability-KJTQIWDK.mjs.map +7 -0
  62. package/dist/lib/node-esm/chunk-42KBWDE4.mjs +80 -0
  63. package/dist/lib/node-esm/chunk-42KBWDE4.mjs.map +7 -0
  64. package/dist/lib/node-esm/chunk-7PJ5OKRB.mjs +965 -0
  65. package/dist/lib/node-esm/chunk-7PJ5OKRB.mjs.map +7 -0
  66. package/dist/lib/node-esm/chunk-DXVXOGJ7.mjs +175 -0
  67. package/dist/lib/node-esm/chunk-DXVXOGJ7.mjs.map +7 -0
  68. package/dist/lib/node-esm/chunk-EL3R25OQ.mjs +2 -0
  69. package/dist/lib/node-esm/chunk-EL3R25OQ.mjs.map +7 -0
  70. package/dist/lib/node-esm/chunk-FKE4Z3D6.mjs +10 -0
  71. package/dist/lib/node-esm/chunk-FKE4Z3D6.mjs.map +7 -0
  72. package/dist/lib/node-esm/chunk-G3RTFSNG.mjs +81 -0
  73. package/dist/lib/node-esm/chunk-G3RTFSNG.mjs.map +7 -0
  74. package/dist/lib/node-esm/chunk-HI3YBICQ.mjs +149 -0
  75. package/dist/lib/node-esm/chunk-HI3YBICQ.mjs.map +7 -0
  76. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +11 -0
  77. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs.map +7 -0
  78. package/dist/lib/node-esm/chunk-JPWVIQ5I.mjs +595 -0
  79. package/dist/lib/node-esm/chunk-JPWVIQ5I.mjs.map +7 -0
  80. package/dist/lib/node-esm/chunk-URWHJQT2.mjs +168 -0
  81. package/dist/lib/node-esm/chunk-URWHJQT2.mjs.map +7 -0
  82. package/dist/lib/node-esm/chunk-VKHGNEDB.mjs +43 -0
  83. package/dist/lib/node-esm/chunk-VKHGNEDB.mjs.map +7 -0
  84. package/dist/lib/node-esm/chunk-WZ6DHQER.mjs +398 -0
  85. package/dist/lib/node-esm/chunk-WZ6DHQER.mjs.map +7 -0
  86. package/dist/lib/node-esm/chunk-WZCSOX5Q.mjs +35 -0
  87. package/dist/lib/node-esm/chunk-WZCSOX5Q.mjs.map +7 -0
  88. package/dist/lib/node-esm/chunk-ZZ7CKK6W.mjs +49 -0
  89. package/dist/lib/node-esm/chunk-ZZ7CKK6W.mjs.map +7 -0
  90. package/dist/lib/node-esm/cli/index.mjs +91 -0
  91. package/dist/lib/node-esm/cli/index.mjs.map +7 -0
  92. package/dist/lib/node-esm/common/activation-events.mjs +25 -0
  93. package/dist/lib/node-esm/common/activation-events.mjs.map +7 -0
  94. package/dist/lib/node-esm/common/capabilities.mjs +47 -0
  95. package/dist/lib/node-esm/common/capabilities.mjs.map +7 -0
  96. package/dist/lib/node-esm/core/activation-event.mjs +21 -0
  97. package/dist/lib/node-esm/core/activation-event.mjs.map +7 -0
  98. package/dist/lib/node-esm/core/capability.mjs +31 -0
  99. package/dist/lib/node-esm/core/capability.mjs.map +7 -0
  100. package/dist/lib/node-esm/core/plugin-manager.mjs +16 -0
  101. package/dist/lib/node-esm/core/plugin-manager.mjs.map +7 -0
  102. package/dist/lib/node-esm/core/plugin.mjs +30 -0
  103. package/dist/lib/node-esm/core/plugin.mjs.map +7 -0
  104. package/dist/lib/node-esm/core/url-loader.mjs +17 -0
  105. package/dist/lib/node-esm/core/url-loader.mjs.map +7 -0
  106. package/dist/lib/node-esm/index.mjs +91 -148
  107. package/dist/lib/node-esm/index.mjs.map +4 -4
  108. package/dist/lib/node-esm/invoker-capability-EGA3XW6J.mjs +44 -0
  109. package/dist/lib/node-esm/invoker-capability-EGA3XW6J.mjs.map +7 -0
  110. package/dist/lib/node-esm/meta.json +1 -1
  111. package/dist/lib/node-esm/testing/index.mjs +243 -41
  112. package/dist/lib/node-esm/testing/index.mjs.map +4 -4
  113. package/dist/lib/node-esm/testing/react.mjs +79 -0
  114. package/dist/lib/node-esm/testing/react.mjs.map +7 -0
  115. package/dist/lib/node-esm/ui/index.mjs +47 -0
  116. package/dist/lib/node-esm/ui/index.mjs.map +7 -0
  117. package/dist/plugin/node-esm/index.mjs +794 -0
  118. package/dist/plugin/node-esm/index.mjs.map +7 -0
  119. package/dist/plugin/node-esm/meta.json +1 -0
  120. package/dist/types/src/cli/cli.d.ts +39 -0
  121. package/dist/types/src/cli/cli.d.ts.map +1 -0
  122. package/dist/types/src/cli/index.d.ts +2 -0
  123. package/dist/types/src/cli/index.d.ts.map +1 -0
  124. package/dist/types/src/common/activation-events.d.ts +27 -0
  125. package/dist/types/src/common/activation-events.d.ts.map +1 -0
  126. package/dist/types/src/common/capabilities.d.ts +109 -200
  127. package/dist/types/src/common/capabilities.d.ts.map +1 -1
  128. package/dist/types/src/common/index.d.ts +4 -8
  129. package/dist/types/src/common/index.d.ts.map +1 -1
  130. package/dist/types/src/common/operations.d.ts +19 -0
  131. package/dist/types/src/common/operations.d.ts.map +1 -0
  132. package/dist/types/src/common/translations.d.ts +7 -7
  133. package/dist/types/src/common/translations.d.ts.map +1 -1
  134. package/dist/types/src/context.d.ts +5 -0
  135. package/dist/types/src/context.d.ts.map +1 -0
  136. package/dist/types/src/core/{events.d.ts → activation-event.d.ts} +7 -7
  137. package/dist/types/src/core/activation-event.d.ts.map +1 -0
  138. package/dist/types/src/core/capability-manager.d.ts +48 -0
  139. package/dist/types/src/core/capability-manager.d.ts.map +1 -0
  140. package/dist/types/src/core/capability-manager.test.d.ts +2 -0
  141. package/dist/types/src/core/capability-manager.test.d.ts.map +1 -0
  142. package/dist/types/src/core/capability.d.ts +156 -0
  143. package/dist/types/src/core/capability.d.ts.map +1 -0
  144. package/dist/types/src/core/index.d.ts +6 -4
  145. package/dist/types/src/core/index.d.ts.map +1 -1
  146. package/dist/types/src/core/plugin-manager.d.ts +78 -0
  147. package/dist/types/src/core/plugin-manager.d.ts.map +1 -0
  148. package/dist/types/src/core/plugin-manager.test.d.ts +2 -0
  149. package/dist/types/src/core/plugin-manager.test.d.ts.map +1 -0
  150. package/dist/types/src/core/plugin.d.ts +127 -39
  151. package/dist/types/src/core/plugin.d.ts.map +1 -1
  152. package/dist/types/src/core/url-loader.d.ts +42 -0
  153. package/dist/types/src/core/url-loader.d.ts.map +1 -0
  154. package/dist/types/src/core/url-loader.test.d.ts +2 -0
  155. package/dist/types/src/core/url-loader.test.d.ts.map +1 -0
  156. package/dist/types/src/index.d.ts +3 -4
  157. package/dist/types/src/index.d.ts.map +1 -1
  158. package/dist/types/src/plugin-operation/OperationPlugin.d.ts +3 -0
  159. package/dist/types/src/plugin-operation/OperationPlugin.d.ts.map +1 -0
  160. package/dist/types/src/plugin-operation/history/capability.d.ts +7 -0
  161. package/dist/types/src/plugin-operation/history/capability.d.ts.map +1 -0
  162. package/dist/types/src/plugin-operation/history/errors.d.ts +32 -0
  163. package/dist/types/src/plugin-operation/history/errors.d.ts.map +1 -0
  164. package/dist/types/src/plugin-operation/history/history-tracker.d.ts +18 -0
  165. package/dist/types/src/plugin-operation/history/history-tracker.d.ts.map +1 -0
  166. package/dist/types/src/plugin-operation/history/history-tracker.test.d.ts +2 -0
  167. package/dist/types/src/plugin-operation/history/history-tracker.test.d.ts.map +1 -0
  168. package/dist/types/src/plugin-operation/history/index.d.ts +6 -0
  169. package/dist/types/src/plugin-operation/history/index.d.ts.map +1 -0
  170. package/dist/types/src/plugin-operation/history/types.d.ts +13 -0
  171. package/dist/types/src/plugin-operation/history/types.d.ts.map +1 -0
  172. package/dist/types/src/plugin-operation/history/undo-mapping.d.ts +101 -0
  173. package/dist/types/src/plugin-operation/history/undo-mapping.d.ts.map +1 -0
  174. package/dist/types/src/plugin-operation/history/undo-registry.d.ts +23 -0
  175. package/dist/types/src/plugin-operation/history/undo-registry.d.ts.map +1 -0
  176. package/dist/types/src/plugin-operation/history/undo-registry.test.d.ts +2 -0
  177. package/dist/types/src/plugin-operation/history/undo-registry.test.d.ts.map +1 -0
  178. package/dist/types/src/plugin-operation/index.d.ts +3 -0
  179. package/dist/types/src/plugin-operation/index.d.ts.map +1 -0
  180. package/dist/types/src/plugin-operation/invoker-capability.d.ts +6 -0
  181. package/dist/types/src/plugin-operation/invoker-capability.d.ts.map +1 -0
  182. package/dist/types/src/plugin-operation/meta.d.ts +3 -0
  183. package/dist/types/src/plugin-operation/meta.d.ts.map +1 -0
  184. package/dist/types/src/plugin-operation/testing.d.ts +58 -0
  185. package/dist/types/src/plugin-operation/testing.d.ts.map +1 -0
  186. package/dist/types/src/plugin-runtime/RuntimePlugin.d.ts +3 -0
  187. package/dist/types/src/plugin-runtime/RuntimePlugin.d.ts.map +1 -0
  188. package/dist/types/src/plugin-runtime/capability.d.ts +6 -0
  189. package/dist/types/src/plugin-runtime/capability.d.ts.map +1 -0
  190. package/dist/types/src/plugin-runtime/index.d.ts +2 -0
  191. package/dist/types/src/plugin-runtime/index.d.ts.map +1 -0
  192. package/dist/types/src/plugin-runtime/meta.d.ts +3 -0
  193. package/dist/types/src/plugin-runtime/meta.d.ts.map +1 -0
  194. package/dist/types/src/testing/harness.d.ts +67 -0
  195. package/dist/types/src/testing/harness.d.ts.map +1 -0
  196. package/dist/types/src/testing/index.d.ts +2 -0
  197. package/dist/types/src/testing/index.d.ts.map +1 -1
  198. package/dist/types/src/testing/react.d.ts +27 -0
  199. package/dist/types/src/testing/react.d.ts.map +1 -0
  200. package/dist/types/src/testing/react.test.d.ts +2 -0
  201. package/dist/types/src/testing/react.test.d.ts.map +1 -0
  202. package/dist/types/src/testing/service.d.ts +8 -0
  203. package/dist/types/src/testing/service.d.ts.map +1 -0
  204. package/dist/types/src/testing/withPluginManager.d.ts +7 -6
  205. package/dist/types/src/testing/withPluginManager.d.ts.map +1 -1
  206. package/dist/types/src/testing/withPluginManager.stories.d.ts.map +1 -1
  207. package/dist/types/src/ui/components/App/App.d.ts +9 -0
  208. package/dist/types/src/ui/components/App/App.d.ts.map +1 -0
  209. package/dist/types/src/ui/components/App/App.stories.d.ts +19 -0
  210. package/dist/types/src/ui/components/App/App.stories.d.ts.map +1 -0
  211. package/dist/types/src/ui/components/App/index.d.ts +2 -0
  212. package/dist/types/src/ui/components/App/index.d.ts.map +1 -0
  213. package/dist/types/src/{playground/playground.stories.d.ts → ui/components/PluginManager/PluginManagerContext.stories.d.ts} +5 -3
  214. package/dist/types/src/ui/components/PluginManager/PluginManagerContext.stories.d.ts.map +1 -0
  215. package/dist/types/src/ui/components/PluginManager/PluginManagerProvider.d.ts +10 -0
  216. package/dist/types/src/ui/components/PluginManager/PluginManagerProvider.d.ts.map +1 -0
  217. package/dist/types/src/ui/components/PluginManager/index.d.ts +2 -0
  218. package/dist/types/src/ui/components/PluginManager/index.d.ts.map +1 -0
  219. package/dist/types/src/ui/components/Surface/SurfaceComponent.d.ts +24 -0
  220. package/dist/types/src/ui/components/Surface/SurfaceComponent.d.ts.map +1 -0
  221. package/dist/types/src/{components/App.stories.d.ts → ui/components/Surface/SurfaceComponent.stories.d.ts} +1 -1
  222. package/dist/types/src/ui/components/Surface/SurfaceComponent.stories.d.ts.map +1 -0
  223. package/dist/types/src/ui/components/Surface/SurfaceInfo.d.ts +11 -0
  224. package/dist/types/src/ui/components/Surface/SurfaceInfo.d.ts.map +1 -0
  225. package/dist/types/src/ui/components/Surface/SurfaceProfilerContext.d.ts +48 -0
  226. package/dist/types/src/ui/components/Surface/SurfaceProfilerContext.d.ts.map +1 -0
  227. package/dist/types/src/ui/components/Surface/context.d.ts +5 -0
  228. package/dist/types/src/ui/components/Surface/context.d.ts.map +1 -0
  229. package/dist/types/src/ui/components/Surface/index.d.ts +36 -0
  230. package/dist/types/src/ui/components/Surface/index.d.ts.map +1 -0
  231. package/dist/types/src/ui/components/Surface/types.d.ts +197 -0
  232. package/dist/types/src/ui/components/Surface/types.d.ts.map +1 -0
  233. package/dist/types/src/ui/components/Surface/types.test.d.ts +2 -0
  234. package/dist/types/src/ui/components/Surface/types.test.d.ts.map +1 -0
  235. package/dist/types/src/ui/components/index.d.ts +4 -0
  236. package/dist/types/src/ui/components/index.d.ts.map +1 -0
  237. package/dist/types/src/ui/hooks/index.d.ts +6 -0
  238. package/dist/types/src/ui/hooks/index.d.ts.map +1 -0
  239. package/dist/types/src/ui/hooks/useApp.d.ts +62 -0
  240. package/dist/types/src/ui/hooks/useApp.d.ts.map +1 -0
  241. package/dist/types/src/ui/hooks/useApp.test.d.ts +2 -0
  242. package/dist/types/src/ui/hooks/useApp.test.d.ts.map +1 -0
  243. package/dist/types/src/ui/hooks/useCapabilities.d.ts +31 -0
  244. package/dist/types/src/ui/hooks/useCapabilities.d.ts.map +1 -0
  245. package/dist/types/src/{components → ui/hooks}/useLoading.d.ts +1 -2
  246. package/dist/types/src/ui/hooks/useLoading.d.ts.map +1 -0
  247. package/dist/types/src/ui/hooks/useSettingsState.d.ts +10 -0
  248. package/dist/types/src/ui/hooks/useSettingsState.d.ts.map +1 -0
  249. package/dist/types/src/ui/hooks/useSurface.d.ts +3 -0
  250. package/dist/types/src/ui/hooks/useSurface.d.ts.map +1 -0
  251. package/dist/types/src/ui/index.d.ts +3 -0
  252. package/dist/types/src/ui/index.d.ts.map +1 -0
  253. package/dist/types/src/vite-plugin/boot-loader/BootLoader.stories.d.ts +50 -0
  254. package/dist/types/src/vite-plugin/boot-loader/BootLoader.stories.d.ts.map +1 -0
  255. package/dist/types/src/vite-plugin/boot-loader/index.d.ts +51 -0
  256. package/dist/types/src/vite-plugin/boot-loader/index.d.ts.map +1 -0
  257. package/dist/types/src/vite-plugin/composer/index.d.ts +34 -0
  258. package/dist/types/src/vite-plugin/composer/index.d.ts.map +1 -0
  259. package/dist/types/src/vite-plugin/import-map/index.d.ts +16 -0
  260. package/dist/types/src/vite-plugin/import-map/index.d.ts.map +1 -0
  261. package/dist/types/src/vite-plugin/index.d.ts +5 -0
  262. package/dist/types/src/vite-plugin/index.d.ts.map +1 -0
  263. package/dist/types/src/vite-plugin/manifest.d.ts +16 -0
  264. package/dist/types/src/vite-plugin/manifest.d.ts.map +1 -0
  265. package/dist/types/src/vite-plugin/manifest.test.d.ts +2 -0
  266. package/dist/types/src/vite-plugin/manifest.test.d.ts.map +1 -0
  267. package/dist/types/src/vite-plugin/packages.d.ts +13 -0
  268. package/dist/types/src/vite-plugin/packages.d.ts.map +1 -0
  269. package/dist/types/tsconfig.tsbuildinfo +1 -1
  270. package/moon.yml +25 -6
  271. package/package.json +110 -55
  272. package/src/cli/cli.ts +107 -0
  273. package/src/{components → cli}/index.ts +1 -1
  274. package/src/common/activation-events.ts +44 -0
  275. package/src/common/capabilities.ts +168 -213
  276. package/src/common/index.ts +4 -8
  277. package/src/common/operations.ts +35 -0
  278. package/src/common/translations.ts +17 -9
  279. package/src/context.ts +9 -0
  280. package/src/core/{events.ts → activation-event.ts} +10 -7
  281. package/src/core/capability-manager.test.ts +151 -0
  282. package/src/core/capability-manager.ts +192 -0
  283. package/src/core/capability.ts +247 -0
  284. package/src/core/index.ts +6 -4
  285. package/src/core/plugin-manager.test.ts +1142 -0
  286. package/src/core/plugin-manager.ts +893 -0
  287. package/src/core/plugin.ts +263 -46
  288. package/src/core/url-loader.test.ts +112 -0
  289. package/src/core/url-loader.ts +178 -0
  290. package/src/index.ts +3 -4
  291. package/src/plugin-operation/OperationPlugin.ts +24 -0
  292. package/src/plugin-operation/history/capability.ts +36 -0
  293. package/src/plugin-operation/history/errors.ts +7 -0
  294. package/src/plugin-operation/history/history-tracker.test.ts +373 -0
  295. package/src/plugin-operation/history/history-tracker.ts +128 -0
  296. package/src/plugin-operation/history/index.ts +9 -0
  297. package/src/plugin-operation/history/types.ts +17 -0
  298. package/src/plugin-operation/history/undo-mapping.ts +135 -0
  299. package/src/plugin-operation/history/undo-registry.test.ts +72 -0
  300. package/src/plugin-operation/history/undo-registry.ts +54 -0
  301. package/src/plugin-operation/index.ts +6 -0
  302. package/src/plugin-operation/invoker-capability.ts +54 -0
  303. package/src/plugin-operation/meta.ts +11 -0
  304. package/src/plugin-operation/testing.ts +154 -0
  305. package/src/plugin-runtime/RuntimePlugin.ts +19 -0
  306. package/src/plugin-runtime/capability.ts +53 -0
  307. package/src/{playground/logger → plugin-runtime}/index.ts +1 -1
  308. package/src/plugin-runtime/meta.ts +11 -0
  309. package/src/testing/harness.ts +229 -0
  310. package/src/testing/index.ts +2 -0
  311. package/src/testing/react.test.tsx +48 -0
  312. package/src/testing/react.tsx +113 -0
  313. package/src/testing/service.ts +52 -0
  314. package/src/testing/withPluginManager.stories.tsx +7 -8
  315. package/src/testing/withPluginManager.tsx +68 -40
  316. package/src/ui/components/App/App.stories.tsx +92 -0
  317. package/src/ui/components/App/App.tsx +70 -0
  318. package/src/{playground/debug → ui/components/App}/index.ts +1 -1
  319. package/src/ui/components/PluginManager/PluginManagerContext.stories.tsx +183 -0
  320. package/src/{react → ui/components/PluginManager}/PluginManagerProvider.ts +3 -3
  321. package/src/ui/components/PluginManager/index.ts +5 -0
  322. package/src/ui/components/Surface/SurfaceComponent.stories.tsx +144 -0
  323. package/src/ui/components/Surface/SurfaceComponent.tsx +303 -0
  324. package/src/ui/components/Surface/SurfaceInfo.tsx +107 -0
  325. package/src/ui/components/Surface/SurfaceProfilerContext.tsx +207 -0
  326. package/src/ui/components/Surface/context.ts +12 -0
  327. package/src/ui/components/Surface/index.ts +54 -0
  328. package/src/ui/components/Surface/types.test.ts +126 -0
  329. package/src/ui/components/Surface/types.ts +269 -0
  330. package/src/ui/components/index.ts +7 -0
  331. package/src/ui/hooks/index.ts +9 -0
  332. package/src/ui/hooks/useApp.test.tsx +159 -0
  333. package/src/ui/hooks/useApp.tsx +289 -0
  334. package/src/ui/hooks/useCapabilities.ts +67 -0
  335. package/src/{components → ui/hooks}/useLoading.tsx +4 -6
  336. package/src/ui/hooks/useSettingsState.ts +26 -0
  337. package/src/ui/hooks/useSurface.ts +13 -0
  338. package/src/ui/index.ts +6 -0
  339. package/src/vite-plugin/boot-loader/BootLoader.stories.tsx +162 -0
  340. package/src/vite-plugin/boot-loader/boot-loader.css +117 -0
  341. package/src/vite-plugin/boot-loader/boot-loader.js +55 -0
  342. package/src/vite-plugin/boot-loader/index.ts +99 -0
  343. package/src/vite-plugin/composer/index.ts +284 -0
  344. package/src/vite-plugin/import-map/index.ts +490 -0
  345. package/src/vite-plugin/index.ts +10 -0
  346. package/src/vite-plugin/manifest.test.ts +23 -0
  347. package/src/vite-plugin/manifest.ts +20 -0
  348. package/src/vite-plugin/packages.ts +181 -0
  349. package/tsconfig.json +13 -19
  350. package/tsconfig.node.json +2 -4
  351. package/typedoc.json +2 -4
  352. package/vitest.config.ts +1 -1
  353. package/.swc/plugins/linux_x86_64_19.0.0/fce1bdb8e20a094e4af08bad09cc81497ed0e2e7c51223b07d371063cca18429.wasmer-v7 +0 -0
  354. package/dist/lib/browser/app-graph-builder-LG4RG2LM.mjs +0 -138
  355. package/dist/lib/browser/app-graph-builder-LG4RG2LM.mjs.map +0 -7
  356. package/dist/lib/browser/chunk-2GRQ4QXA.mjs +0 -1646
  357. package/dist/lib/browser/chunk-2GRQ4QXA.mjs.map +0 -7
  358. package/dist/lib/browser/chunk-FRUTKCPG.mjs +0 -467
  359. package/dist/lib/browser/chunk-FRUTKCPG.mjs.map +0 -7
  360. package/dist/lib/browser/chunk-SCPE4ZO2.mjs +0 -35
  361. package/dist/lib/browser/chunk-SCPE4ZO2.mjs.map +0 -7
  362. package/dist/lib/browser/intent-dispatcher-6SHA5B3N.mjs +0 -11
  363. package/dist/lib/browser/intent-resolver-UZZ4OANZ.mjs +0 -39
  364. package/dist/lib/browser/intent-resolver-UZZ4OANZ.mjs.map +0 -7
  365. package/dist/lib/browser/store-ACBEYK4B.mjs +0 -30
  366. package/dist/lib/browser/store-ACBEYK4B.mjs.map +0 -7
  367. package/dist/lib/browser/worker.mjs +0 -77
  368. package/dist/lib/node-esm/app-graph-builder-FMHVHPWA.mjs +0 -139
  369. package/dist/lib/node-esm/app-graph-builder-FMHVHPWA.mjs.map +0 -7
  370. package/dist/lib/node-esm/chunk-CXT6CYPE.mjs +0 -468
  371. package/dist/lib/node-esm/chunk-CXT6CYPE.mjs.map +0 -7
  372. package/dist/lib/node-esm/chunk-KSPOOYT3.mjs +0 -1648
  373. package/dist/lib/node-esm/chunk-KSPOOYT3.mjs.map +0 -7
  374. package/dist/lib/node-esm/chunk-ZX63QUGE.mjs +0 -37
  375. package/dist/lib/node-esm/chunk-ZX63QUGE.mjs.map +0 -7
  376. package/dist/lib/node-esm/intent-dispatcher-SIYQ5ZIU.mjs +0 -12
  377. package/dist/lib/node-esm/intent-resolver-7FYJMXAG.mjs +0 -40
  378. package/dist/lib/node-esm/intent-resolver-7FYJMXAG.mjs.map +0 -7
  379. package/dist/lib/node-esm/store-6OBLTVXC.mjs +0 -31
  380. package/dist/lib/node-esm/store-6OBLTVXC.mjs.map +0 -7
  381. package/dist/lib/node-esm/worker.mjs +0 -78
  382. package/dist/types/src/common/collaboration.d.ts +0 -20
  383. package/dist/types/src/common/collaboration.d.ts.map +0 -1
  384. package/dist/types/src/common/events.d.ts +0 -52
  385. package/dist/types/src/common/events.d.ts.map +0 -1
  386. package/dist/types/src/common/file.d.ts +0 -14
  387. package/dist/types/src/common/file.d.ts.map +0 -1
  388. package/dist/types/src/common/graph.d.ts +0 -21
  389. package/dist/types/src/common/graph.d.ts.map +0 -1
  390. package/dist/types/src/common/layout.d.ts +0 -279
  391. package/dist/types/src/common/layout.d.ts.map +0 -1
  392. package/dist/types/src/common/surface.d.ts +0 -59
  393. package/dist/types/src/common/surface.d.ts.map +0 -1
  394. package/dist/types/src/components/App.d.ts +0 -10
  395. package/dist/types/src/components/App.d.ts.map +0 -1
  396. package/dist/types/src/components/App.stories.d.ts.map +0 -1
  397. package/dist/types/src/components/DefaultFallback.d.ts +0 -8
  398. package/dist/types/src/components/DefaultFallback.d.ts.map +0 -1
  399. package/dist/types/src/components/index.d.ts +0 -2
  400. package/dist/types/src/components/index.d.ts.map +0 -1
  401. package/dist/types/src/components/useApp.d.ts +0 -44
  402. package/dist/types/src/components/useApp.d.ts.map +0 -1
  403. package/dist/types/src/components/useLoading.d.ts.map +0 -1
  404. package/dist/types/src/core/capabilities.d.ts +0 -117
  405. package/dist/types/src/core/capabilities.d.ts.map +0 -1
  406. package/dist/types/src/core/capabilities.test.d.ts +0 -2
  407. package/dist/types/src/core/capabilities.test.d.ts.map +0 -1
  408. package/dist/types/src/core/events.d.ts.map +0 -1
  409. package/dist/types/src/core/manager.d.ts +0 -126
  410. package/dist/types/src/core/manager.d.ts.map +0 -1
  411. package/dist/types/src/core/manager.test.d.ts +0 -2
  412. package/dist/types/src/core/manager.test.d.ts.map +0 -1
  413. package/dist/types/src/playground/debug/Debug.d.ts +0 -6
  414. package/dist/types/src/playground/debug/Debug.d.ts.map +0 -1
  415. package/dist/types/src/playground/debug/index.d.ts +0 -2
  416. package/dist/types/src/playground/debug/index.d.ts.map +0 -1
  417. package/dist/types/src/playground/debug/plugin.d.ts +0 -2
  418. package/dist/types/src/playground/debug/plugin.d.ts.map +0 -1
  419. package/dist/types/src/playground/generator/Main.d.ts +0 -6
  420. package/dist/types/src/playground/generator/Main.d.ts.map +0 -1
  421. package/dist/types/src/playground/generator/Toolbar.d.ts +0 -6
  422. package/dist/types/src/playground/generator/Toolbar.d.ts.map +0 -1
  423. package/dist/types/src/playground/generator/generator.d.ts +0 -7
  424. package/dist/types/src/playground/generator/generator.d.ts.map +0 -1
  425. package/dist/types/src/playground/generator/index.d.ts +0 -3
  426. package/dist/types/src/playground/generator/index.d.ts.map +0 -1
  427. package/dist/types/src/playground/generator/plugin.d.ts +0 -2
  428. package/dist/types/src/playground/generator/plugin.d.ts.map +0 -1
  429. package/dist/types/src/playground/layout/Layout.d.ts +0 -8
  430. package/dist/types/src/playground/layout/Layout.d.ts.map +0 -1
  431. package/dist/types/src/playground/layout/index.d.ts +0 -2
  432. package/dist/types/src/playground/layout/index.d.ts.map +0 -1
  433. package/dist/types/src/playground/layout/plugin.d.ts +0 -2
  434. package/dist/types/src/playground/layout/plugin.d.ts.map +0 -1
  435. package/dist/types/src/playground/logger/Toolbar.d.ts +0 -6
  436. package/dist/types/src/playground/logger/Toolbar.d.ts.map +0 -1
  437. package/dist/types/src/playground/logger/index.d.ts +0 -2
  438. package/dist/types/src/playground/logger/index.d.ts.map +0 -1
  439. package/dist/types/src/playground/logger/plugin.d.ts +0 -2
  440. package/dist/types/src/playground/logger/plugin.d.ts.map +0 -1
  441. package/dist/types/src/playground/logger/schema.d.ts +0 -13
  442. package/dist/types/src/playground/logger/schema.d.ts.map +0 -1
  443. package/dist/types/src/playground/playground.stories.d.ts.map +0 -1
  444. package/dist/types/src/plugin-intent/IntentPlugin.d.ts +0 -2
  445. package/dist/types/src/plugin-intent/IntentPlugin.d.ts.map +0 -1
  446. package/dist/types/src/plugin-intent/actions.d.ts +0 -36
  447. package/dist/types/src/plugin-intent/actions.d.ts.map +0 -1
  448. package/dist/types/src/plugin-intent/errors.d.ts +0 -16
  449. package/dist/types/src/plugin-intent/errors.d.ts.map +0 -1
  450. package/dist/types/src/plugin-intent/index.d.ts +0 -6
  451. package/dist/types/src/plugin-intent/index.d.ts.map +0 -1
  452. package/dist/types/src/plugin-intent/intent-dispatcher.d.ts +0 -139
  453. package/dist/types/src/plugin-intent/intent-dispatcher.d.ts.map +0 -1
  454. package/dist/types/src/plugin-intent/intent-dispatcher.test.d.ts +0 -2
  455. package/dist/types/src/plugin-intent/intent-dispatcher.test.d.ts.map +0 -1
  456. package/dist/types/src/plugin-intent/intent.d.ts +0 -63
  457. package/dist/types/src/plugin-intent/intent.d.ts.map +0 -1
  458. package/dist/types/src/plugin-intent/meta.d.ts +0 -3
  459. package/dist/types/src/plugin-intent/meta.d.ts.map +0 -1
  460. package/dist/types/src/plugin-settings/SettingsPlugin.d.ts +0 -2
  461. package/dist/types/src/plugin-settings/SettingsPlugin.d.ts.map +0 -1
  462. package/dist/types/src/plugin-settings/actions.d.ts +0 -25
  463. package/dist/types/src/plugin-settings/actions.d.ts.map +0 -1
  464. package/dist/types/src/plugin-settings/app-graph-builder.d.ts +0 -4
  465. package/dist/types/src/plugin-settings/app-graph-builder.d.ts.map +0 -1
  466. package/dist/types/src/plugin-settings/index.d.ts +0 -3
  467. package/dist/types/src/plugin-settings/index.d.ts.map +0 -1
  468. package/dist/types/src/plugin-settings/intent-resolver.d.ts +0 -4
  469. package/dist/types/src/plugin-settings/intent-resolver.d.ts.map +0 -1
  470. package/dist/types/src/plugin-settings/meta.d.ts +0 -3
  471. package/dist/types/src/plugin-settings/meta.d.ts.map +0 -1
  472. package/dist/types/src/plugin-settings/store.d.ts +0 -5
  473. package/dist/types/src/plugin-settings/store.d.ts.map +0 -1
  474. package/dist/types/src/plugin-settings/translations.d.ts +0 -11
  475. package/dist/types/src/plugin-settings/translations.d.ts.map +0 -1
  476. package/dist/types/src/react/ErrorBoundary.d.ts +0 -30
  477. package/dist/types/src/react/ErrorBoundary.d.ts.map +0 -1
  478. package/dist/types/src/react/IntentContext.d.ts +0 -8
  479. package/dist/types/src/react/IntentContext.d.ts.map +0 -1
  480. package/dist/types/src/react/PluginManagerProvider.d.ts +0 -10
  481. package/dist/types/src/react/PluginManagerProvider.d.ts.map +0 -1
  482. package/dist/types/src/react/Surface.d.ts +0 -12
  483. package/dist/types/src/react/Surface.d.ts.map +0 -1
  484. package/dist/types/src/react/Surface.stories.d.ts +0 -17
  485. package/dist/types/src/react/Surface.stories.d.ts.map +0 -1
  486. package/dist/types/src/react/common.d.ts +0 -13
  487. package/dist/types/src/react/common.d.ts.map +0 -1
  488. package/dist/types/src/react/index.d.ts +0 -7
  489. package/dist/types/src/react/index.d.ts.map +0 -1
  490. package/dist/types/src/react/useCapabilities.d.ts +0 -13
  491. package/dist/types/src/react/useCapabilities.d.ts.map +0 -1
  492. package/dist/types/src/react/useIntentResolver.d.ts +0 -3
  493. package/dist/types/src/react/useIntentResolver.d.ts.map +0 -1
  494. package/dist/types/src/worker.d.ts +0 -4
  495. package/dist/types/src/worker.d.ts.map +0 -1
  496. package/src/common/collaboration.ts +0 -18
  497. package/src/common/events.ts +0 -79
  498. package/src/common/file.ts +0 -22
  499. package/src/common/graph.ts +0 -30
  500. package/src/common/layout.ts +0 -277
  501. package/src/common/surface.ts +0 -83
  502. package/src/components/App.stories.tsx +0 -33
  503. package/src/components/App.tsx +0 -59
  504. package/src/components/DefaultFallback.tsx +0 -26
  505. package/src/components/useApp.tsx +0 -164
  506. package/src/core/capabilities.test.ts +0 -136
  507. package/src/core/capabilities.ts +0 -259
  508. package/src/core/manager.test.ts +0 -516
  509. package/src/core/manager.ts +0 -604
  510. package/src/playground/debug/Debug.tsx +0 -39
  511. package/src/playground/debug/plugin.ts +0 -16
  512. package/src/playground/generator/Main.tsx +0 -71
  513. package/src/playground/generator/Toolbar.tsx +0 -47
  514. package/src/playground/generator/generator.ts +0 -48
  515. package/src/playground/generator/index.ts +0 -6
  516. package/src/playground/generator/plugin.ts +0 -22
  517. package/src/playground/layout/Layout.tsx +0 -33
  518. package/src/playground/layout/index.ts +0 -5
  519. package/src/playground/layout/plugin.ts +0 -18
  520. package/src/playground/logger/Toolbar.tsx +0 -30
  521. package/src/playground/logger/plugin.ts +0 -41
  522. package/src/playground/logger/schema.ts +0 -12
  523. package/src/playground/playground.stories.tsx +0 -46
  524. package/src/plugin-intent/IntentPlugin.ts +0 -20
  525. package/src/plugin-intent/actions.ts +0 -31
  526. package/src/plugin-intent/errors.ts +0 -40
  527. package/src/plugin-intent/index.ts +0 -9
  528. package/src/plugin-intent/intent-dispatcher.test.ts +0 -286
  529. package/src/plugin-intent/intent-dispatcher.ts +0 -337
  530. package/src/plugin-intent/intent.ts +0 -154
  531. package/src/plugin-intent/meta.ts +0 -10
  532. package/src/plugin-settings/SettingsPlugin.ts +0 -34
  533. package/src/plugin-settings/actions.ts +0 -25
  534. package/src/plugin-settings/app-graph-builder.ts +0 -160
  535. package/src/plugin-settings/index.ts +0 -6
  536. package/src/plugin-settings/intent-resolver.ts +0 -35
  537. package/src/plugin-settings/meta.ts +0 -10
  538. package/src/plugin-settings/store.ts +0 -33
  539. package/src/plugin-settings/translations.ts +0 -19
  540. package/src/react/ErrorBoundary.tsx +0 -56
  541. package/src/react/IntentContext.tsx +0 -35
  542. package/src/react/Surface.stories.tsx +0 -101
  543. package/src/react/Surface.tsx +0 -86
  544. package/src/react/common.ts +0 -13
  545. package/src/react/index.ts +0 -10
  546. package/src/react/useCapabilities.ts +0 -31
  547. package/src/react/useIntentResolver.ts +0 -22
  548. package/src/worker.ts +0 -11
  549. /package/dist/lib/browser/{intent-dispatcher-6SHA5B3N.mjs.map → chunk-J5LGTIGS.mjs.map} +0 -0
  550. /package/dist/lib/browser/{worker.mjs.map → chunk-RFSO3JRG.mjs.map} +0 -0
  551. /package/dist/lib/{node-esm/intent-dispatcher-SIYQ5ZIU.mjs.map → browser/common/activation-events.mjs.map} +0 -0
  552. /package/dist/lib/{node-esm/worker.mjs.map → browser/common/capabilities.mjs.map} +0 -0
@@ -0,0 +1,197 @@
1
+ import type { FC, PropsWithChildren, ReactNode, RefCallback } from 'react';
2
+ import type { MakeOptional, Position } from '@dxos/util';
3
+ /**
4
+ * A typed role token. Carries a role string for runtime dispatch plus a phantom
5
+ * data type so consumers using `type={SomeToken}` and providers using
6
+ * `AppSurface.object(SomeToken, ...)` share a single type-level contract.
7
+ *
8
+ * Mint via {@link makeType}.
9
+ */
10
+ export type RoleToken<TData> = {
11
+ readonly role: string;
12
+ /** Covariant phantom; never accessed at runtime. */
13
+ readonly _phantom?: TData;
14
+ };
15
+ /**
16
+ * One entry in a {@link SurfaceFilter} — a role plus the guard that validates
17
+ * the data shape when the Surface dispatcher is matching that role.
18
+ */
19
+ export type SurfaceBinding = {
20
+ readonly role: string;
21
+ readonly guard: (data: unknown) => boolean;
22
+ };
23
+ /**
24
+ * Typed filter binding for {@link create}. Combines one or more `(role, guard)`
25
+ * pairs so a provider can register against multiple roles while keeping the
26
+ * role and its data shape in a single expression.
27
+ */
28
+ export type SurfaceFilter<TData> = {
29
+ readonly bindings: ReadonlyArray<SurfaceBinding>;
30
+ /** Covariant phantom; never accessed at runtime. */
31
+ readonly _phantom?: TData;
32
+ };
33
+ /**
34
+ * Narrow data type carried by a role token.
35
+ */
36
+ export type TokenData<T> = T extends RoleToken<infer D> ? D : never;
37
+ /**
38
+ * Runtime guard for {@link SurfaceFilter}. Distinguishes new-style filter
39
+ * bindings from legacy predicate filters.
40
+ */
41
+ export declare const isSurfaceFilter: (value: unknown) => value is SurfaceFilter<any>;
42
+ /**
43
+ * Mints a typed role token. Identity is structural; all tokens with the same
44
+ * `role` string are interchangeable at runtime.
45
+ */
46
+ export declare const makeType: <TData>(role: string) => RoleToken<TData>;
47
+ /**
48
+ * Props that are passed to the Surface component.
49
+ *
50
+ * The role can be provided either as a string via `role` or as a typed
51
+ * {@link RoleToken} via `type`. The typed form narrows `data` to the token's
52
+ * declared shape.
53
+ */
54
+ export type Props<T extends Record<string, any> = Record<string, unknown>> = {
55
+ /**
56
+ * If specified, the Surface will be wrapped in an error boundary.
57
+ * The fallback component will be rendered if an error occurs.
58
+ */
59
+ fallback?: FC<{
60
+ error: Error;
61
+ data?: any;
62
+ }>;
63
+ /**
64
+ * If specified, the Surface will be wrapped in a suspense boundary.
65
+ * The placeholder component will be rendered while the surface component is loading.
66
+ */
67
+ placeholder?: ReactNode;
68
+ } & MakeOptional<CoreProps<T>, 'id' | 'data' | 'role'> & {
69
+ /**
70
+ * Explicitly disallow `type` on the untyped Props overload — if the caller
71
+ * provides `type={AppSurface.X}`, TypeScript must route to the typed
72
+ * overload (where `data` is narrowed by the token). Without this, the
73
+ * catch-all index signature below would accept any `type` value and mask
74
+ * the typed overload entirely.
75
+ */
76
+ type?: undefined;
77
+ } /**
78
+ * Additional props to pass to the component.
79
+ * These props are not used by Surface itself but may be used by components which resolve the surface.
80
+ * Exclude known prop names to prevent overriding well-defined props.
81
+ */ & {
82
+ [K in keyof Record<string, any>]: K extends keyof CoreProps<T> | 'fallback' | 'placeholder' | 'type' ? never : any;
83
+ };
84
+ /**
85
+ * Typed Surface consumer props — carries the role/data-shape contract via a
86
+ * {@link RoleToken}. Available as a typed overload of the Surface component so
87
+ * ad-hoc `type` fields on arbitrary spread props don't conflict with the
88
+ * untyped consumer form.
89
+ */
90
+ export type TypedProps<TToken extends RoleToken<any>> = {
91
+ fallback?: FC<{
92
+ error: Error;
93
+ data?: any;
94
+ }>;
95
+ placeholder?: ReactNode;
96
+ id?: string;
97
+ type: TToken;
98
+ data?: TokenData<TToken>;
99
+ limit?: number | undefined;
100
+ } & {
101
+ [K in keyof Record<string, any>]: K extends 'fallback' | 'placeholder' | 'id' | 'type' | 'data' | 'limit' ? never : any;
102
+ };
103
+ /**
104
+ * NOTE: If `[key: string]: unknown` is included in shared types, when re-used other fields become unknown as well.
105
+ */
106
+ export type CoreProps<T extends Record<string, any> = Record<string, unknown>> = PropsWithChildren<{
107
+ /**
108
+ * ID for debugging.
109
+ */
110
+ id: string;
111
+ /**
112
+ * Role defines how the data should be rendered. For new code, prefer the
113
+ * typed overload of the Surface component which takes a {@link RoleToken}
114
+ * via the `type` prop instead — it enforces a role/data contract at compile
115
+ * time.
116
+ */
117
+ role: string;
118
+ /**
119
+ * The data to be rendered by the surface.
120
+ * NOTE: This must be a stable value.
121
+ */
122
+ data: T;
123
+ /**
124
+ * If more than one component is resolved, the limit determines how many are rendered.
125
+ */
126
+ limit?: number | undefined;
127
+ }>;
128
+ export type ComponentProps<T extends Record<string, any> = Record<string, any>> = CoreProps<T> & {
129
+ ref?: RefCallback<HTMLElement>;
130
+ } & Record<string, any>;
131
+ /**
132
+ * React component used to render a surface once is has matched.
133
+ */
134
+ export type ComponentFunction<T extends Record<string, any> = Record<string, any>> = (props: ComponentProps<T>) => ReactNode;
135
+ /**
136
+ * Definition of when a React component surface should be rendered.
137
+ *
138
+ * The optional `filter` receives the consumer-supplied `role` as its second
139
+ * argument so a single definition can encode role-specific guards (used by the
140
+ * {@link SurfaceFilter}-based `create` overload).
141
+ */
142
+ export type ReactDefinition<T extends Record<string, any> = any> = Readonly<{
143
+ kind: 'react';
144
+ id: string;
145
+ role: string | string[];
146
+ position?: Position;
147
+ component: ComponentFunction<T>;
148
+ filter?: (data: Record<string, unknown>, role?: string) => data is T;
149
+ }>;
150
+ /**
151
+ * Definition of when a Web Component surface should be rendered.
152
+ */
153
+ export type WebComponentDefinition<T extends Record<string, any> = any> = Readonly<{
154
+ kind: 'web-component';
155
+ id: string;
156
+ role: string | string[];
157
+ position?: Position;
158
+ /**
159
+ * The tag name of the Web Component to render.
160
+ * The Web Component will receive the same props as React surfaces via properties/attributes.
161
+ */
162
+ tagName: string;
163
+ filter?: (data: Record<string, unknown>, role?: string) => data is T;
164
+ }>;
165
+ /**
166
+ * Definition of when a surface (React or Web Component) should be rendered.
167
+ */
168
+ export type Definition<T extends Record<string, any> = any> = ReactDefinition<T> | WebComponentDefinition<T>;
169
+ /**
170
+ * Typed React surface definition — role is derived from the filter's bindings.
171
+ */
172
+ export type TypedReactDefinition<T extends Record<string, any> = any> = Readonly<{
173
+ id: string;
174
+ filter: SurfaceFilter<T>;
175
+ component: ComponentFunction<T>;
176
+ position?: Position;
177
+ }>;
178
+ /**
179
+ * Typed Web Component surface definition.
180
+ */
181
+ export type TypedWebComponentDefinition<T extends Record<string, any> = any> = Readonly<{
182
+ id: string;
183
+ filter: SurfaceFilter<T>;
184
+ tagName: string;
185
+ position?: Position;
186
+ }>;
187
+ /**
188
+ * Creates a React surface definition.
189
+ */
190
+ export declare function create<T extends Record<string, any> = any>(definition: TypedReactDefinition<T>): ReactDefinition<T>;
191
+ export declare function create<T extends Record<string, any> = any>(definition: Omit<ReactDefinition<T>, 'kind'>): ReactDefinition<T>;
192
+ /**
193
+ * Creates a Web Component surface definition.
194
+ */
195
+ export declare function createWeb<T extends Record<string, any> = any>(definition: TypedWebComponentDefinition<T>): WebComponentDefinition<T>;
196
+ export declare function createWeb<T extends Record<string, any> = any>(definition: Omit<WebComponentDefinition<T>, 'kind'>): WebComponentDefinition<T>;
197
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/Surface/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.test.d.ts","sourceRoot":"","sources":["../../../../../../src/ui/components/Surface/types.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ export * from './App';
2
+ export * from './PluginManager';
3
+ export * from './Surface';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/ui/components/index.ts"],"names":[],"mappings":"AAIA,cAAc,OAAO,CAAC;AACtB,cAAc,iBAAiB,CAAC;AAChC,cAAc,WAAW,CAAC"}
@@ -0,0 +1,6 @@
1
+ export * from './useApp';
2
+ export * from './useCapabilities';
3
+ export * from './useLoading';
4
+ export * from './useSettingsState';
5
+ export * from './useSurface';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/index.ts"],"names":[],"mappings":"AAIA,cAAc,UAAU,CAAC;AACzB,cAAc,mBAAmB,CAAC;AAClC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,cAAc,CAAC"}
@@ -0,0 +1,62 @@
1
+ import React, { type FC } from 'react';
2
+ import { type FallbackProps } from '@dxos/react-error-boundary';
3
+ import { type ActivationEvent, type Plugin, PluginManager } from '../../core';
4
+ export type StartupProgress = {
5
+ /** Number of modules that have been activated. */
6
+ activated: number;
7
+ /** Total number of modules registered. */
8
+ total: number;
9
+ /** Fractional progress (0-1). */
10
+ progress: number;
11
+ /** Human-readable label for the currently activating module. */
12
+ status?: string;
13
+ };
14
+ export type PlaceholderProps = {
15
+ stage?: number;
16
+ progress?: StartupProgress;
17
+ };
18
+ export type UseAppOptions = {
19
+ pluginManager?: PluginManager.PluginManager;
20
+ pluginLoader?: PluginManager.ManagerOptions['pluginLoader'];
21
+ plugins?: Plugin.Plugin[];
22
+ core?: string[];
23
+ defaults?: string[];
24
+ /**
25
+ * Additional activation events to fire before startup.
26
+ * These are fired alongside SetupReactSurface before the Startup event.
27
+ */
28
+ setupEvents?: ActivationEvent.ActivationEvent[];
29
+ cacheEnabled?: boolean;
30
+ safeMode?: boolean;
31
+ debounce?: number;
32
+ timeout?: number;
33
+ fallback?: FC<FallbackProps>;
34
+ placeholder?: FC<PlaceholderProps>;
35
+ };
36
+ /**
37
+ * Expected usage is for this to be the entrypoint of the application.
38
+ * Initializes plugins and renders the root components.
39
+ *
40
+ * @example
41
+ * const plugins = [LayoutPlugin(), MyPlugin()];
42
+ * const core = [LayoutPluginId];
43
+ * const default = [MyPluginId];
44
+ * const fallback = <div>Initializing Plugins...</div>;
45
+ * const App = useApp({ plugins, core, default, fallback });
46
+ * createRoot(document.getElementById('root')!).render(
47
+ * <StrictMode>
48
+ * <App />
49
+ * </StrictMode>,
50
+ * );
51
+ *
52
+ * @param params.pluginLoader A function which loads new plugins.
53
+ * @param params.plugins All plugins available to the application.
54
+ * @param params.core Core plugins which will always be enabled.
55
+ * @param params.defaults Default plugins are enabled by default but can be disabled by the user.
56
+ * @param params.cacheEnabled Whether to cache enabled plugins in localStorage.
57
+ * @param params.safeMode Whether to enable safe mode, which disables optional plugins.
58
+ * @param params.fallback Fallback component to render if an error occurs during startup.
59
+ * @param params.placeholder Placeholder component to render during startup.
60
+ */
61
+ export declare const useApp: ({ pluginManager, pluginLoader: pluginLoaderProp, plugins: pluginsProp, core: coreProp, defaults: defaultsProp, setupEvents: setupEventsProp, placeholder, fallback, cacheEnabled, safeMode, debounce, timeout, }: UseAppOptions) => () => React.JSX.Element;
62
+ //# sourceMappingURL=useApp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useApp.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/useApp.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,EAAE,KAAK,EAAE,EAAqD,MAAM,OAAO,CAAC;AAK1F,OAAO,EAAgC,KAAK,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAM9F,OAAO,EAAE,KAAK,eAAe,EAAE,KAAK,MAAM,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAK9E,MAAM,MAAM,eAAe,GAAG;IAC5B,kDAAkD;IAClD,SAAS,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,KAAK,EAAE,MAAM,CAAC;IACd,iCAAiC;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,eAAe,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,aAAa,GAAG;IAC1B,aAAa,CAAC,EAAE,aAAa,CAAC,aAAa,CAAC;IAC5C,YAAY,CAAC,EAAE,aAAa,CAAC,cAAc,CAAC,cAAc,CAAC,CAAC;IAC5D,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,CAAC;IAC1B,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB;;;OAGG;IACH,WAAW,CAAC,EAAE,eAAe,CAAC,eAAe,EAAE,CAAC;IAChD,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,CAAC;IAC7B,WAAW,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC;CACpC,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,eAAO,MAAM,MAAM,GAAI,kNAapB,aAAa,4BAoKf,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=useApp.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useApp.test.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/useApp.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,31 @@
1
+ import { type Atom } from '@effect-atom/atom-react';
2
+ import { Capabilities } from '../../common';
3
+ import { type Capability } from '../../core';
4
+ /**
5
+ * Hook to request capabilities from the plugin context.
6
+ * @returns An array of capabilities.
7
+ */
8
+ export declare const useCapabilities: <T>(interfaceDef: Capability.InterfaceDef<T>) => T[];
9
+ /**
10
+ * Hook to request a capability from the plugin context.
11
+ * @returns The capability.
12
+ * @throws If no capability is found.
13
+ */
14
+ export declare const useCapability: <T>(interfaceDef: Capability.InterfaceDef<T>) => T;
15
+ /**
16
+ * Hook to get the current value of an atom capability.
17
+ * Automatically subscribes to changes.
18
+ * @example const settings = useAtomCapability(ThreadCapabilities.Settings);
19
+ */
20
+ export declare const useAtomCapability: <T>(atomCapability: Capability.InterfaceDef<Atom.Atom<T>>) => T;
21
+ /**
22
+ * Hook to get value and updater for an atom capability.
23
+ * Returns [currentValue, updateFn] similar to useState.
24
+ * @example const [settings, updateSettings] = useAtomCapabilityState(ThreadCapabilities.Settings);
25
+ */
26
+ export declare const useAtomCapabilityState: <T>(atomCapability: Capability.InterfaceDef<Atom.Writable<T>>) => [T, (fn: (current: T) => T) => void];
27
+ /**
28
+ * Hook to get the operation invoker capability.
29
+ */
30
+ export declare const useOperationInvoker: () => Capabilities.OperationInvoker;
31
+ //# sourceMappingURL=useCapabilities.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCapabilities.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/useCapabilities.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,IAAI,EAAgB,MAAM,yBAAyB,CAAC;AAKlE,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,YAAY,CAAC;AAG7C;;;GAGG;AACH,eAAO,MAAM,eAAe,GAAI,CAAC,EAAE,cAAc,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,QAG1E,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,EAAE,cAAc,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC,MAIxE,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAI,CAAC,EAAE,gBAAgB,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAG,CAG5F,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,GAAI,CAAC,EACtC,gBAAgB,UAAU,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,KACxD,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,CAWrC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,QAAO,YAAY,CAAC,gBAAgE,CAAC"}
@@ -1,4 +1,3 @@
1
- import { type AppProps } from './App';
2
1
  export declare enum LoadingState {
3
2
  Loading = 0,
4
3
  FadeIn = 1,
@@ -15,5 +14,5 @@ export declare enum LoadingState {
15
14
  * 2: Fade-out - Fade out the loading animation.
16
15
  * 3: Done - Remove the placeholder.
17
16
  */
18
- export declare const useLoading: (state: AppProps["state"], debounce?: number) => LoadingState;
17
+ export declare const useLoading: (ready: boolean, debounce?: number) => LoadingState;
19
18
  //# sourceMappingURL=useLoading.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLoading.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/useLoading.tsx"],"names":[],"mappings":"AAMA,oBAAY,YAAY;IACtB,OAAO,IAAI;IACX,MAAM,IAAI;IACV,OAAO,IAAI;IACX,IAAI,IAAI;CACT;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,UAAU,GAAI,OAAO,OAAO,EAAE,iBAAY,iBA4CtD,CAAC"}
@@ -0,0 +1,10 @@
1
+ import { type Atom } from '@effect-atom/atom-react';
2
+ /**
3
+ * Hook to read and update a settings atom.
4
+ * Returns the current value and an update function.
5
+ */
6
+ export declare const useSettingsState: <T>(atom: Atom.Writable<T>) => {
7
+ settings: T;
8
+ updateSettings: (fn: (current: T) => T) => void;
9
+ };
10
+ //# sourceMappingURL=useSettingsState.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSettingsState.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/useSettingsState.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,IAAI,EAAiC,MAAM,yBAAyB,CAAC;AAGnF;;;GAGG;AACH,eAAO,MAAM,gBAAgB,GAAI,CAAC,EAChC,MAAM,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,KACrB;IAAE,QAAQ,EAAE,CAAC,CAAC;IAAC,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC,OAAO,EAAE,CAAC,KAAK,CAAC,KAAK,IAAI,CAAA;CAYhE,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Surface } from '../components';
2
+ export declare const useSurface: () => Surface.Context;
3
+ //# sourceMappingURL=useSurface.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSurface.d.ts","sourceRoot":"","sources":["../../../../../src/ui/hooks/useSurface.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,eAAO,MAAM,UAAU,QAAO,OAAO,CAAC,OAErC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from './components';
2
+ export * from './hooks';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ui/index.ts"],"names":[],"mappings":"AAIA,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC"}
@@ -0,0 +1,50 @@
1
+ import { type Meta, type StoryObj } from '@storybook/react-vite';
2
+ import React from 'react';
3
+ /**
4
+ * React rendering of the native-DOM boot loader so the visual can be poked at
5
+ * in storybook without having to rebuild a host app. The DOM structure and
6
+ * style classes are identical to what {@link bootLoaderPlugin} injects via
7
+ * `transformIndexHtml`; the CSS itself is imported as a raw string from the
8
+ * same source the plugin uses, so a styling change in `boot-loader.css`
9
+ * shows up here automatically.
10
+ *
11
+ * Coupled-but-not-shared: the actual production loader runs as inline HTML
12
+ * before any module loads, so it can't be a React component there. This
13
+ * mirror lets us iterate on the look + animations + status-text behaviour
14
+ * with hot-reload.
15
+ */
16
+ type BootLoaderProps = {
17
+ status?: string;
18
+ /**
19
+ * Inline SVG markup. Use `fill="currentColor"` on the paths so the mark
20
+ * inherits the loader's text colour.
21
+ */
22
+ markSvg?: string;
23
+ /**
24
+ * Optional progress fraction in [0, 1]. When set, switches the bar from
25
+ * the default indeterminate slide animation to a determinate fill.
26
+ */
27
+ progress?: number;
28
+ };
29
+ declare const BootLoader: ({ status, markSvg, progress }: BootLoaderProps) => React.JSX.Element;
30
+ declare const meta: Meta<typeof BootLoader>;
31
+ export default meta;
32
+ type Story = StoryObj<typeof BootLoader>;
33
+ /** Static loader exactly as it ships in `composer-app` (without the brand SVG). */
34
+ export declare const Default: Story;
35
+ /** Same loader plus an inline brand mark — verify currentColor inheritance. */
36
+ export declare const WithMark: Story;
37
+ /**
38
+ * Cycles through the strings the host typically passes to
39
+ * `window.__bootLoader.status(...)`. Useful for verifying that the progress
40
+ * bar's vertical position is stable across status changes — `#boot-loader-status`
41
+ * has a fixed height so the line-box can't reflow the flex column.
42
+ */
43
+ export declare const Cycling: Story;
44
+ /**
45
+ * Determinate progress bar driven by `__bootLoader.progress(fraction)`.
46
+ * Mirrors composer-app's behaviour during the `getPlugins` phase — the bar
47
+ * fills 0 → 100% as plugin chunks resolve.
48
+ */
49
+ export declare const Determinate: Story;
50
+ //# sourceMappingURL=BootLoader.stories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BootLoader.stories.d.ts","sourceRoot":"","sources":["../../../../../src/vite-plugin/boot-loader/BootLoader.stories.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,IAAI,EAAE,KAAK,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,KAA8B,MAAM,OAAO,CAAC;AAInD;;;;;;;;;;;;GAYG;AACH,KAAK,eAAe,GAAG;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,QAAA,MAAM,UAAU,GAAI,+BAA4C,eAAe,sBAqB9E,CAAC;AAwDF,QAAA,MAAM,IAAI,EAAE,IAAI,CAAC,OAAO,UAAU,CAUjC,CAAC;AAEF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAC,OAAO,UAAU,CAAC,CAAC;AAEzC,mFAAmF;AACnF,eAAO,MAAM,OAAO,EAAE,KAIrB,CAAC;AAEF,+EAA+E;AAC/E,eAAO,MAAM,QAAQ,EAAE,KAKtB,CAAC;AAEF;;;;;GAKG;AACH,eAAO,MAAM,OAAO,EAAE,KAErB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,WAAW,EAAE,KAEzB,CAAC"}
@@ -0,0 +1,51 @@
1
+ import { type Plugin } from 'vite';
2
+ /**
3
+ * Options for {@link bootLoaderPlugin}.
4
+ */
5
+ export type BootLoaderOptions = {
6
+ /**
7
+ * Initial status text rendered by the loader (replaced via
8
+ * `window.__bootLoader.status(...)` once the host starts firing phase callbacks).
9
+ *
10
+ * @default "Loading…"
11
+ */
12
+ status?: string;
13
+ /**
14
+ * Inline SVG markup for an optional brand mark rendered above the progress bar.
15
+ * Use `currentColor` for fill so the mark inherits the loader's text colour
16
+ * (which itself follows `prefers-color-scheme`). Leave empty/undefined to
17
+ * render only the bar.
18
+ */
19
+ markSvg?: string;
20
+ };
21
+ /**
22
+ * Vite plugin that injects a tiny native-DOM "boot loader" into the host app's
23
+ * `index.html`.
24
+ *
25
+ * The loader paints on the very first frame, before any JS bundle is fetched —
26
+ * so the user sees something immediately on cold load instead of staring at a
27
+ * blank document while the compiled module graph is parsed. The CSS-only
28
+ * keyframe animation runs on the browser's compositor thread, so it keeps
29
+ * moving even while the JS main thread is fully busy.
30
+ *
31
+ * The host app drives the loader from `main.tsx`:
32
+ *
33
+ * - `window.__bootLoader.status(text)` updates the status line per phase.
34
+ * - `window.__bootLoader.dismiss()` removes the loader once React has mounted.
35
+ *
36
+ * Inject order:
37
+ * - `<style>` → `<head>` (parses before any bundled stylesheet).
38
+ * - `<div id="boot-loader">…</div>` → start of `<body>` (sibling of `#root`).
39
+ * - inline `<script>` defining `window.__bootLoader` → start of `<body>`.
40
+ *
41
+ * Keeping the loader as a sibling of `#root` (rather than a child of it) means
42
+ * `createRoot(document.getElementById('root')).render(...)` does not fight the
43
+ * loader for ownership; the host explicitly calls `dismiss()` after the first
44
+ * React commit, which gives a deterministic handoff.
45
+ *
46
+ * Color tokens are exposed as CSS custom properties (`--boot-loader-bg-light`,
47
+ * `--boot-loader-bg-dark`, etc.) defined in `boot-loader.css`, so consumers can
48
+ * override them at the document level without us re-parameterizing this plugin.
49
+ */
50
+ export declare const bootLoaderPlugin: ({ status, markSvg }?: BootLoaderOptions) => Plugin;
51
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/vite-plugin/boot-loader/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,MAAM,CAAC;AAKnC;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,gBAAgB,GAAI,sBAAkC,iBAAsB,KAAG,MAuC3F,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { type Plugin as VitePlugin } from 'vite';
2
+ import { type Plugin } from '../../core';
3
+ import { MANIFEST_ASSET_NAME, serializeManifest } from '../manifest';
4
+ export { MANIFEST_ASSET_NAME, serializeManifest };
5
+ export type ComposerPluginOptions = {
6
+ /** Entry point for the plugin bundle. Defaults to `src/plugin.tsx`. */
7
+ entry?: string;
8
+ /** Dev server port. Defaults to `3967`. */
9
+ port?: number;
10
+ /**
11
+ * Plugin metadata. When provided, a `manifest.json` asset is emitted alongside the bundle
12
+ * so the output directory can be uploaded directly as a GitHub Release and picked up by
13
+ * the DXOS community registry.
14
+ */
15
+ meta?: Plugin.Meta;
16
+ /** Filename of the built module asset that the registry will load. Defaults to `plugin.mjs`. */
17
+ moduleFile?: string;
18
+ };
19
+ /**
20
+ * Vite plugin for **external Composer plugin projects**. Configures the build to produce
21
+ * an ESM bundle that externalizes all framework dependencies, which the Composer host app
22
+ * provides at runtime via import map.
23
+ *
24
+ * Handles:
25
+ * 1. Build config — lib mode entry point, ES format output, rollup externals.
26
+ * 2. Dev externalization — marks shared deps as external during `vite serve` and strips
27
+ * the `/@id/` prefix that Vite's import analysis adds to external bare specifiers.
28
+ * 3. JSX dev runtime shim — bridges `react/jsx-dev-runtime` (used by React refresh in dev)
29
+ * to `react/jsx-runtime` (which is what the externalized React provides).
30
+ * 4. Optional manifest emit — when `meta` is supplied, writes `manifest.json` next to the
31
+ * bundled module so a GitHub Release can carry both artifacts.
32
+ */
33
+ export declare const composerPlugin: (options?: ComposerPluginOptions) => VitePlugin[];
34
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/vite-plugin/composer/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,MAAM,IAAI,UAAU,EAAE,MAAM,MAAM,CAAC;AAGjD,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAGrE,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,CAAC;AA0DlD,MAAM,MAAM,qBAAqB,GAAG;IAClC,uEAAuE;IACvE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2CAA2C;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC;IACnB,gGAAgG;IAChG,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,cAAc,GAAI,UAAU,qBAAqB,KAAG,UAAU,EAyL1E,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { type Plugin } from 'vite';
2
+ /**
3
+ * Vite plugin for the **host app** (Composer). Generates a browser import map so that
4
+ * shared packages are loaded once and reused by both the host and any remote plugins.
5
+ *
6
+ * In dev mode, maps bare specifiers directly to resolved file paths.
7
+ * In production, emits a dedicated chunk per specifier via virtual wrapper modules,
8
+ * then injects a `<script type="importmap">` tag into the HTML with the chunk URLs.
9
+ *
10
+ * Virtual wrappers are needed because directly emitting chunks for CJS packages loses
11
+ * their named exports due to Rollup's interop. The wrapper re-exports them explicitly.
12
+ */
13
+ export declare const importMapPlugin: (options?: {
14
+ packages?: string[];
15
+ }) => Plugin[];
16
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/vite-plugin/import-map/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,MAAM,CAAC;AAgUnC;;;;;;;;;;GAUG;AACH,eAAO,MAAM,eAAe,GAAI,UAAU;IAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CAAE,KAAG,MAAM,EAsJzE,CAAC"}
@@ -0,0 +1,5 @@
1
+ export * from './boot-loader';
2
+ export * from './composer';
3
+ export * from './import-map';
4
+ export * from './packages';
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/vite-plugin/index.ts"],"names":[],"mappings":"AAIA,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAC3B,cAAc,cAAc,CAAC;AAG7B,cAAc,YAAY,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { type Plugin } from '../core';
2
+ /**
3
+ * Name of the asset written alongside the built module bundle.
4
+ * The DXOS community registry resolves each published plugin by fetching this file
5
+ * from the repo's latest GitHub Release, so authors should not rename it.
6
+ */
7
+ export declare const MANIFEST_ASSET_NAME = "manifest.json";
8
+ /**
9
+ * Serializes a plugin's public metadata into the format consumed by the community registry.
10
+ * Exported from a vite-free module so tests and tooling can validate manifests without
11
+ * paying the cost of loading vite + esbuild.
12
+ */
13
+ export declare const serializeManifest: (meta: Plugin.Meta, { moduleFile }: {
14
+ moduleFile: string;
15
+ }) => string;
16
+ //# sourceMappingURL=manifest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.d.ts","sourceRoot":"","sources":["../../../../src/vite-plugin/manifest.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,SAAS,CAAC;AAEtC;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,kBAAkB,CAAC;AAEnD;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,GAAI,MAAM,MAAM,CAAC,IAAI,EAAE,gBAAgB;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,KAAG,MAC5C,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=manifest.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"manifest.test.d.ts","sourceRoot":"","sources":["../../../../src/vite-plugin/manifest.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,13 @@
1
+ export declare const DEFAULT_PACKAGES: string[];
2
+ /**
3
+ * True when the given bare specifier (or one of its subpaths) is provided by the
4
+ * Composer host at runtime and must not be re-bundled by a plugin.
5
+ *
6
+ * Matches only packages listed in {@link DEFAULT_PACKAGES} — the same list
7
+ * {@link importMapPlugin} consumes — so externalization cannot claim a package
8
+ * the host isn't actually mapping. Unknown `@dxos/*` packages fall through to
9
+ * normal bundling, which is the correct default for plugin-owned or yet-to-be
10
+ * shared workspace packages.
11
+ */
12
+ export declare const isSharedPackage: (id: string) => boolean;
13
+ //# sourceMappingURL=packages.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"packages.d.ts","sourceRoot":"","sources":["../../../../src/vite-plugin/packages.ts"],"names":[],"mappings":"AAkCA,eAAO,MAAM,gBAAgB,UAqI5B,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,GAAI,IAAI,MAAM,KAAG,OAC2B,CAAC"}