@dxos/app-framework 0.8.4-main.bc674ce → 0.8.4-main.bcb3aa67d6

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 (421) hide show
  1. package/.storybook/main.mts +1 -3
  2. package/dist/lib/browser/{capability-7PCNSWBT.mjs → capability-4NSF2SOO.mjs} +16 -11
  3. package/dist/lib/browser/capability-4NSF2SOO.mjs.map +7 -0
  4. package/dist/lib/browser/capability-EB3UKSKA.mjs +35 -0
  5. package/dist/lib/browser/capability-EB3UKSKA.mjs.map +7 -0
  6. package/dist/lib/browser/{chunk-FMZN33N4.mjs → chunk-27FZETIA.mjs} +324 -181
  7. package/dist/lib/browser/chunk-27FZETIA.mjs.map +7 -0
  8. package/dist/lib/browser/chunk-CV7I2AAB.mjs +80 -0
  9. package/dist/lib/browser/chunk-CV7I2AAB.mjs.map +7 -0
  10. package/dist/lib/browser/{chunk-6Y7PZV72.mjs → chunk-FL2XTEJH.mjs} +3 -4
  11. package/dist/lib/browser/chunk-FL2XTEJH.mjs.map +7 -0
  12. package/dist/lib/browser/chunk-H7OMDDGW.mjs +42 -0
  13. package/dist/lib/browser/chunk-H7OMDDGW.mjs.map +7 -0
  14. package/dist/lib/browser/chunk-HDQXX5DC.mjs +157 -0
  15. package/dist/lib/browser/chunk-HDQXX5DC.mjs.map +7 -0
  16. package/dist/lib/browser/chunk-I34GF4NG.mjs +34 -0
  17. package/dist/lib/browser/chunk-I34GF4NG.mjs.map +7 -0
  18. package/dist/lib/browser/chunk-KNBRTZVK.mjs +892 -0
  19. package/dist/lib/browser/chunk-KNBRTZVK.mjs.map +7 -0
  20. package/dist/lib/browser/{chunk-7IQHKD4U.mjs → chunk-NO7R7QHA.mjs} +4 -7
  21. package/dist/lib/browser/chunk-NO7R7QHA.mjs.map +7 -0
  22. package/dist/lib/browser/{chunk-TCLLRCS3.mjs → chunk-P2E7VMRF.mjs} +10 -7
  23. package/dist/lib/browser/chunk-P2E7VMRF.mjs.map +7 -0
  24. package/dist/lib/browser/{chunk-PKQT6C53.mjs → chunk-QSXYHXCE.mjs} +3 -2
  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-TGX63LTL.mjs +8 -0
  28. package/dist/lib/browser/{chunk-FHQTHCX7.mjs.map → chunk-TGX63LTL.mjs.map} +1 -1
  29. package/dist/lib/browser/cli/index.mjs +90 -0
  30. package/dist/lib/browser/cli/index.mjs.map +7 -0
  31. package/dist/lib/browser/common/activation-events.mjs +24 -0
  32. package/dist/lib/browser/common/capabilities.mjs +46 -0
  33. package/dist/lib/browser/core/activation-event.mjs +1 -1
  34. package/dist/lib/browser/core/capability.mjs +1 -1
  35. package/dist/lib/browser/core/plugin-manager.mjs +4 -4
  36. package/dist/lib/browser/core/plugin.mjs +6 -4
  37. package/dist/lib/browser/core/url-loader.mjs +12 -0
  38. package/dist/lib/browser/index.mjs +40 -131
  39. package/dist/lib/browser/index.mjs.map +4 -4
  40. package/dist/lib/browser/invoker-capability-P7KPBTP3.mjs +43 -0
  41. package/dist/lib/browser/invoker-capability-P7KPBTP3.mjs.map +7 -0
  42. package/dist/lib/browser/meta.json +1 -1
  43. package/dist/lib/browser/testing/index.mjs +56 -34
  44. package/dist/lib/browser/testing/index.mjs.map +3 -3
  45. package/dist/lib/browser/{react → ui}/index.mjs +19 -21
  46. package/dist/lib/browser/ui/index.mjs.map +7 -0
  47. package/dist/lib/node-esm/{capability-CFLQ2QQU.mjs → capability-CB3MNEI3.mjs} +16 -11
  48. package/dist/lib/node-esm/capability-CB3MNEI3.mjs.map +7 -0
  49. package/dist/lib/node-esm/capability-CMROGK7R.mjs +36 -0
  50. package/dist/lib/node-esm/capability-CMROGK7R.mjs.map +7 -0
  51. package/dist/lib/node-esm/{chunk-STMXUEPO.mjs → chunk-37NG7SIN.mjs} +3 -4
  52. package/dist/lib/node-esm/chunk-37NG7SIN.mjs.map +7 -0
  53. package/dist/lib/node-esm/chunk-7JPKC7OM.mjs +893 -0
  54. package/dist/lib/node-esm/chunk-7JPKC7OM.mjs.map +7 -0
  55. package/dist/lib/node-esm/chunk-7PPVTBYR.mjs +81 -0
  56. package/dist/lib/node-esm/chunk-7PPVTBYR.mjs.map +7 -0
  57. package/dist/lib/node-esm/chunk-BQ56U4QX.mjs +43 -0
  58. package/dist/lib/node-esm/chunk-BQ56U4QX.mjs.map +7 -0
  59. package/dist/lib/node-esm/{chunk-GT6OKM5I.mjs → chunk-CG6UBBZZ.mjs} +10 -7
  60. package/dist/lib/node-esm/chunk-CG6UBBZZ.mjs.map +7 -0
  61. package/dist/lib/node-esm/chunk-EL3R25OQ.mjs +2 -0
  62. package/dist/lib/node-esm/chunk-EL3R25OQ.mjs.map +7 -0
  63. package/dist/lib/node-esm/{chunk-663A54LQ.mjs → chunk-EXYTXQ47.mjs} +4 -7
  64. package/dist/lib/node-esm/chunk-EXYTXQ47.mjs.map +7 -0
  65. package/dist/lib/node-esm/{chunk-UEWJDI2L.mjs → chunk-FKE4Z3D6.mjs} +2 -2
  66. package/dist/lib/node-esm/{chunk-UEWJDI2L.mjs.map → chunk-FKE4Z3D6.mjs.map} +1 -1
  67. package/dist/lib/node-esm/chunk-OXXXRCQX.mjs +158 -0
  68. package/dist/lib/node-esm/chunk-OXXXRCQX.mjs.map +7 -0
  69. package/dist/lib/node-esm/chunk-WZCSOX5Q.mjs +35 -0
  70. package/dist/lib/node-esm/chunk-WZCSOX5Q.mjs.map +7 -0
  71. package/dist/lib/node-esm/{chunk-XYQTBFPA.mjs → chunk-YH44RHP6.mjs} +324 -181
  72. package/dist/lib/node-esm/chunk-YH44RHP6.mjs.map +7 -0
  73. package/dist/lib/node-esm/{chunk-7OWSHPYK.mjs → chunk-ZZ7CKK6W.mjs} +3 -2
  74. package/dist/lib/node-esm/chunk-ZZ7CKK6W.mjs.map +7 -0
  75. package/dist/lib/node-esm/cli/index.mjs +91 -0
  76. package/dist/lib/node-esm/cli/index.mjs.map +7 -0
  77. package/dist/lib/node-esm/common/activation-events.mjs +25 -0
  78. package/dist/lib/node-esm/common/activation-events.mjs.map +7 -0
  79. package/dist/lib/node-esm/common/capabilities.mjs +47 -0
  80. package/dist/lib/node-esm/common/capabilities.mjs.map +7 -0
  81. package/dist/lib/node-esm/core/activation-event.mjs +1 -1
  82. package/dist/lib/node-esm/core/capability.mjs +1 -1
  83. package/dist/lib/node-esm/core/plugin-manager.mjs +4 -4
  84. package/dist/lib/node-esm/core/plugin.mjs +6 -4
  85. package/dist/lib/node-esm/core/url-loader.mjs +13 -0
  86. package/dist/lib/node-esm/core/url-loader.mjs.map +7 -0
  87. package/dist/lib/node-esm/index.mjs +40 -131
  88. package/dist/lib/node-esm/index.mjs.map +4 -4
  89. package/dist/lib/node-esm/invoker-capability-3C5H46ZY.mjs +44 -0
  90. package/dist/lib/node-esm/invoker-capability-3C5H46ZY.mjs.map +7 -0
  91. package/dist/lib/node-esm/meta.json +1 -1
  92. package/dist/lib/node-esm/testing/index.mjs +56 -34
  93. package/dist/lib/node-esm/testing/index.mjs.map +3 -3
  94. package/dist/lib/node-esm/{react → ui}/index.mjs +19 -21
  95. package/dist/lib/node-esm/ui/index.mjs.map +7 -0
  96. package/dist/plugin/node-esm/index.mjs +384 -0
  97. package/dist/plugin/node-esm/index.mjs.map +7 -0
  98. package/dist/plugin/node-esm/meta.json +1 -0
  99. package/dist/types/src/{cli.d.ts → cli/cli.d.ts} +2 -2
  100. package/dist/types/src/cli/cli.d.ts.map +1 -0
  101. package/dist/types/src/cli/index.d.ts +2 -0
  102. package/dist/types/src/cli/index.d.ts.map +1 -0
  103. package/dist/types/src/common/activation-events.d.ts +27 -0
  104. package/dist/types/src/common/activation-events.d.ts.map +1 -0
  105. package/dist/types/src/common/capabilities.d.ts +110 -0
  106. package/dist/types/src/common/capabilities.d.ts.map +1 -0
  107. package/dist/types/src/common/index.d.ts +4 -9
  108. package/dist/types/src/common/index.d.ts.map +1 -1
  109. package/dist/types/src/common/operations.d.ts +8 -369
  110. package/dist/types/src/common/operations.d.ts.map +1 -1
  111. package/dist/types/src/common/translations.d.ts +0 -9
  112. package/dist/types/src/common/translations.d.ts.map +1 -1
  113. package/dist/types/src/core/activation-event.d.ts +1 -1
  114. package/dist/types/src/core/activation-event.d.ts.map +1 -1
  115. package/dist/types/src/core/capability.d.ts +7 -7
  116. package/dist/types/src/core/capability.d.ts.map +1 -1
  117. package/dist/types/src/core/index.d.ts +1 -0
  118. package/dist/types/src/core/index.d.ts.map +1 -1
  119. package/dist/types/src/core/plugin-manager.d.ts +9 -2
  120. package/dist/types/src/core/plugin-manager.d.ts.map +1 -1
  121. package/dist/types/src/core/plugin.d.ts +6 -1
  122. package/dist/types/src/core/plugin.d.ts.map +1 -1
  123. package/dist/types/src/core/url-loader.d.ts +25 -0
  124. package/dist/types/src/core/url-loader.d.ts.map +1 -0
  125. package/dist/types/src/core/url-loader.test.d.ts +2 -0
  126. package/dist/types/src/core/url-loader.test.d.ts.map +1 -0
  127. package/dist/types/src/index.d.ts +1 -3
  128. package/dist/types/src/index.d.ts.map +1 -1
  129. package/dist/types/src/plugin-operation/history/capability.d.ts +1 -1
  130. package/dist/types/src/plugin-operation/history/errors.d.ts +30 -3
  131. package/dist/types/src/plugin-operation/history/errors.d.ts.map +1 -1
  132. package/dist/types/src/plugin-operation/history/undo-mapping.d.ts +11 -3
  133. package/dist/types/src/plugin-operation/history/undo-mapping.d.ts.map +1 -1
  134. package/dist/types/src/plugin-operation/invoker-capability.d.ts +1 -1
  135. package/dist/types/src/plugin-operation/invoker-capability.d.ts.map +1 -1
  136. package/dist/types/src/plugin-operation/testing.d.ts +26 -77
  137. package/dist/types/src/plugin-operation/testing.d.ts.map +1 -1
  138. package/dist/types/src/plugin-runtime/capability.d.ts +2 -2
  139. package/dist/types/src/plugin-runtime/capability.d.ts.map +1 -1
  140. package/dist/types/src/testing/withPluginManager.d.ts +1 -1
  141. package/dist/types/src/testing/withPluginManager.d.ts.map +1 -1
  142. package/dist/types/src/{react → ui/components/App}/App.d.ts +3 -2
  143. package/dist/types/src/ui/components/App/App.d.ts.map +1 -0
  144. package/dist/types/src/{react/Surface.stories.d.ts → ui/components/App/App.stories.d.ts} +7 -2
  145. package/dist/types/src/ui/components/App/App.stories.d.ts.map +1 -0
  146. package/dist/types/src/ui/components/App/index.d.ts +2 -0
  147. package/dist/types/src/ui/components/App/index.d.ts.map +1 -0
  148. package/dist/types/src/ui/components/PluginManager/PluginManagerContext.stories.d.ts.map +1 -0
  149. package/dist/types/src/{react → ui/components/PluginManager}/PluginManagerProvider.d.ts +1 -1
  150. package/dist/types/src/ui/components/PluginManager/PluginManagerProvider.d.ts.map +1 -0
  151. package/dist/types/src/ui/components/PluginManager/index.d.ts +2 -0
  152. package/dist/types/src/ui/components/PluginManager/index.d.ts.map +1 -0
  153. package/dist/types/src/ui/components/Surface/SurfaceComponent.d.ts +12 -0
  154. package/dist/types/src/ui/components/Surface/SurfaceComponent.d.ts.map +1 -0
  155. package/dist/types/src/{react/App.stories.d.ts → ui/components/Surface/SurfaceComponent.stories.d.ts} +1 -1
  156. package/dist/types/src/ui/components/Surface/SurfaceComponent.stories.d.ts.map +1 -0
  157. package/dist/types/src/ui/components/Surface/SurfaceInfo.d.ts.map +1 -0
  158. package/dist/types/src/ui/components/Surface/SurfaceProfilerContext.d.ts +48 -0
  159. package/dist/types/src/ui/components/Surface/SurfaceProfilerContext.d.ts.map +1 -0
  160. package/dist/types/src/ui/components/Surface/context.d.ts +5 -0
  161. package/dist/types/src/ui/components/Surface/context.d.ts.map +1 -0
  162. package/dist/types/src/ui/components/Surface/index.d.ts +26 -0
  163. package/dist/types/src/ui/components/Surface/index.d.ts.map +1 -0
  164. package/dist/types/src/{common/surface.d.ts → ui/components/Surface/types.d.ts} +20 -18
  165. package/dist/types/src/ui/components/Surface/types.d.ts.map +1 -0
  166. package/dist/types/src/ui/components/index.d.ts +4 -0
  167. package/dist/types/src/ui/components/index.d.ts.map +1 -0
  168. package/dist/types/src/ui/hooks/index.d.ts +6 -0
  169. package/dist/types/src/ui/hooks/index.d.ts.map +1 -0
  170. package/dist/types/src/{react → ui/hooks}/useApp.d.ts +26 -9
  171. package/dist/types/src/ui/hooks/useApp.d.ts.map +1 -0
  172. package/dist/types/src/ui/hooks/useApp.test.d.ts +2 -0
  173. package/dist/types/src/ui/hooks/useApp.test.d.ts.map +1 -0
  174. package/dist/types/src/{react → ui/hooks}/useCapabilities.d.ts +6 -1
  175. package/dist/types/src/ui/hooks/useCapabilities.d.ts.map +1 -0
  176. package/dist/types/src/ui/hooks/useLoading.d.ts.map +1 -0
  177. package/dist/types/src/{react/common.d.ts → ui/hooks/useSettingsState.d.ts} +1 -5
  178. package/dist/types/src/ui/hooks/useSettingsState.d.ts.map +1 -0
  179. package/dist/types/src/ui/hooks/useSurface.d.ts +3 -0
  180. package/dist/types/src/ui/hooks/useSurface.d.ts.map +1 -0
  181. package/dist/types/src/ui/index.d.ts +3 -0
  182. package/dist/types/src/ui/index.d.ts.map +1 -0
  183. package/dist/types/src/vite-plugin/composer-plugin.d.ts +18 -0
  184. package/dist/types/src/vite-plugin/composer-plugin.d.ts.map +1 -0
  185. package/dist/types/src/vite-plugin/import-map-plugin.d.ts +16 -0
  186. package/dist/types/src/vite-plugin/import-map-plugin.d.ts.map +1 -0
  187. package/dist/types/src/vite-plugin/index.d.ts +3 -0
  188. package/dist/types/src/vite-plugin/index.d.ts.map +1 -0
  189. package/dist/types/src/vite-plugin/packages.d.ts +7 -0
  190. package/dist/types/src/vite-plugin/packages.d.ts.map +1 -0
  191. package/dist/types/tsconfig.tsbuildinfo +1 -1
  192. package/moon.yml +20 -6
  193. package/package.json +91 -64
  194. package/src/{cli.ts → cli/cli.ts} +10 -10
  195. package/src/{playground/debug → cli}/index.ts +1 -1
  196. package/src/common/activation-events.ts +44 -0
  197. package/src/common/capabilities.ts +172 -0
  198. package/src/common/index.ts +4 -9
  199. package/src/common/operations.ts +6 -382
  200. package/src/common/translations.ts +0 -12
  201. package/src/context.ts +1 -1
  202. package/src/core/activation-event.ts +5 -2
  203. package/src/core/capability-manager.ts +1 -1
  204. package/src/core/capability.ts +11 -10
  205. package/src/core/index.ts +1 -0
  206. package/src/core/plugin-manager.test.ts +313 -44
  207. package/src/core/plugin-manager.ts +344 -157
  208. package/src/core/plugin.ts +10 -2
  209. package/src/core/url-loader.test.ts +79 -0
  210. package/src/core/url-loader.ts +148 -0
  211. package/src/index.ts +1 -3
  212. package/src/plugin-operation/OperationPlugin.ts +5 -5
  213. package/src/plugin-operation/history/capability.ts +5 -5
  214. package/src/plugin-operation/history/errors.ts +2 -6
  215. package/src/plugin-operation/history/history-tracker.test.ts +36 -42
  216. package/src/plugin-operation/history/undo-mapping.ts +6 -3
  217. package/src/plugin-operation/history/undo-registry.test.ts +3 -3
  218. package/src/plugin-operation/invoker-capability.ts +21 -7
  219. package/src/plugin-operation/meta.ts +1 -1
  220. package/src/plugin-operation/testing.ts +25 -45
  221. package/src/plugin-runtime/RuntimePlugin.ts +4 -4
  222. package/src/plugin-runtime/capability.ts +5 -5
  223. package/src/plugin-runtime/meta.ts +1 -1
  224. package/src/testing/service.ts +6 -6
  225. package/src/testing/withPluginManager.stories.tsx +6 -6
  226. package/src/testing/withPluginManager.tsx +46 -19
  227. package/src/ui/components/App/App.stories.tsx +92 -0
  228. package/src/{react → ui/components/App}/App.tsx +9 -11
  229. package/src/{playground/layout → ui/components/App}/index.ts +1 -1
  230. package/src/{react → ui/components/PluginManager}/PluginManagerContext.stories.tsx +13 -14
  231. package/src/{react → ui/components/PluginManager}/PluginManagerProvider.ts +1 -1
  232. package/src/ui/components/PluginManager/index.ts +5 -0
  233. package/src/{react/Surface.stories.tsx → ui/components/Surface/SurfaceComponent.stories.tsx} +28 -24
  234. package/src/{react/Surface.tsx → ui/components/Surface/SurfaceComponent.tsx} +48 -58
  235. package/src/{react → ui/components/Surface}/SurfaceInfo.tsx +2 -2
  236. package/src/ui/components/Surface/SurfaceProfilerContext.tsx +207 -0
  237. package/src/ui/components/Surface/context.ts +12 -0
  238. package/src/ui/components/Surface/index.ts +35 -0
  239. package/src/{common/surface.ts → ui/components/Surface/types.ts} +22 -25
  240. package/src/ui/components/index.ts +7 -0
  241. package/src/ui/hooks/index.ts +9 -0
  242. package/src/ui/hooks/useApp.test.tsx +159 -0
  243. package/src/{react → ui/hooks}/useApp.tsx +110 -30
  244. package/src/{react → ui/hooks}/useCapabilities.ts +9 -5
  245. package/src/{react/common.ts → ui/hooks/useSettingsState.ts} +0 -11
  246. package/src/ui/hooks/useSurface.ts +13 -0
  247. package/src/ui/index.ts +6 -0
  248. package/src/vite-plugin/composer-plugin.ts +128 -0
  249. package/src/vite-plugin/import-map-plugin.ts +315 -0
  250. package/src/vite-plugin/index.ts +6 -0
  251. package/src/vite-plugin/packages.ts +29 -0
  252. package/tsconfig.json +4 -28
  253. package/tsconfig.node.json +2 -4
  254. package/typedoc.json +2 -4
  255. package/vitest.config.ts +1 -1
  256. package/dist/lib/browser/app-graph-builder-M2VPYQC6.mjs +0 -149
  257. package/dist/lib/browser/app-graph-builder-M2VPYQC6.mjs.map +0 -7
  258. package/dist/lib/browser/capability-7PCNSWBT.mjs.map +0 -7
  259. package/dist/lib/browser/capability-KP3PFEXD.mjs +0 -31
  260. package/dist/lib/browser/capability-KP3PFEXD.mjs.map +0 -7
  261. package/dist/lib/browser/chunk-6Y7PZV72.mjs.map +0 -7
  262. package/dist/lib/browser/chunk-7IQHKD4U.mjs.map +0 -7
  263. package/dist/lib/browser/chunk-BLQJSGL3.mjs +0 -732
  264. package/dist/lib/browser/chunk-BLQJSGL3.mjs.map +0 -7
  265. package/dist/lib/browser/chunk-FHQTHCX7.mjs +0 -8
  266. package/dist/lib/browser/chunk-FMZN33N4.mjs.map +0 -7
  267. package/dist/lib/browser/chunk-H4WPA7U7.mjs +0 -77
  268. package/dist/lib/browser/chunk-H4WPA7U7.mjs.map +0 -7
  269. package/dist/lib/browser/chunk-PKQT6C53.mjs.map +0 -7
  270. package/dist/lib/browser/chunk-TCLLRCS3.mjs.map +0 -7
  271. package/dist/lib/browser/chunk-XYNO72GQ.mjs +0 -746
  272. package/dist/lib/browser/chunk-XYNO72GQ.mjs.map +0 -7
  273. package/dist/lib/browser/common/index.mjs +0 -38
  274. package/dist/lib/browser/invoker-capability-SZRSTHEH.mjs +0 -32
  275. package/dist/lib/browser/invoker-capability-SZRSTHEH.mjs.map +0 -7
  276. package/dist/lib/browser/operation-resolver-6MP2MYOY.mjs +0 -64
  277. package/dist/lib/browser/operation-resolver-6MP2MYOY.mjs.map +0 -7
  278. package/dist/lib/node-esm/app-graph-builder-LROHGJEM.mjs +0 -150
  279. package/dist/lib/node-esm/app-graph-builder-LROHGJEM.mjs.map +0 -7
  280. package/dist/lib/node-esm/capability-CFLQ2QQU.mjs.map +0 -7
  281. package/dist/lib/node-esm/capability-RCUNM2M7.mjs +0 -32
  282. package/dist/lib/node-esm/capability-RCUNM2M7.mjs.map +0 -7
  283. package/dist/lib/node-esm/chunk-663A54LQ.mjs.map +0 -7
  284. package/dist/lib/node-esm/chunk-6WXBT3EC.mjs +0 -747
  285. package/dist/lib/node-esm/chunk-6WXBT3EC.mjs.map +0 -7
  286. package/dist/lib/node-esm/chunk-7OWSHPYK.mjs.map +0 -7
  287. package/dist/lib/node-esm/chunk-GQEBIGKD.mjs +0 -733
  288. package/dist/lib/node-esm/chunk-GQEBIGKD.mjs.map +0 -7
  289. package/dist/lib/node-esm/chunk-GT6OKM5I.mjs.map +0 -7
  290. package/dist/lib/node-esm/chunk-STMXUEPO.mjs.map +0 -7
  291. package/dist/lib/node-esm/chunk-XR6NMKEP.mjs +0 -78
  292. package/dist/lib/node-esm/chunk-XR6NMKEP.mjs.map +0 -7
  293. package/dist/lib/node-esm/chunk-XYQTBFPA.mjs.map +0 -7
  294. package/dist/lib/node-esm/common/index.mjs +0 -39
  295. package/dist/lib/node-esm/invoker-capability-PNMA5JOS.mjs +0 -33
  296. package/dist/lib/node-esm/invoker-capability-PNMA5JOS.mjs.map +0 -7
  297. package/dist/lib/node-esm/operation-resolver-7YWDMTNU.mjs +0 -65
  298. package/dist/lib/node-esm/operation-resolver-7YWDMTNU.mjs.map +0 -7
  299. package/dist/types/src/cli.d.ts.map +0 -1
  300. package/dist/types/src/common/activation-event.d.ts +0 -66
  301. package/dist/types/src/common/activation-event.d.ts.map +0 -1
  302. package/dist/types/src/common/capability.d.ts +0 -265
  303. package/dist/types/src/common/capability.d.ts.map +0 -1
  304. package/dist/types/src/common/collaboration.d.ts +0 -26
  305. package/dist/types/src/common/collaboration.d.ts.map +0 -1
  306. package/dist/types/src/common/file.d.ts +0 -14
  307. package/dist/types/src/common/file.d.ts.map +0 -1
  308. package/dist/types/src/common/graph.d.ts +0 -21
  309. package/dist/types/src/common/graph.d.ts.map +0 -1
  310. package/dist/types/src/common/plugin.d.ts +0 -201
  311. package/dist/types/src/common/plugin.d.ts.map +0 -1
  312. package/dist/types/src/common/surface.d.ts.map +0 -1
  313. package/dist/types/src/playground/debug/Debug.d.ts +0 -8
  314. package/dist/types/src/playground/debug/Debug.d.ts.map +0 -1
  315. package/dist/types/src/playground/debug/index.d.ts +0 -2
  316. package/dist/types/src/playground/debug/index.d.ts.map +0 -1
  317. package/dist/types/src/playground/debug/plugin.d.ts +0 -3
  318. package/dist/types/src/playground/debug/plugin.d.ts.map +0 -1
  319. package/dist/types/src/playground/generator/Main.d.ts +0 -8
  320. package/dist/types/src/playground/generator/Main.d.ts.map +0 -1
  321. package/dist/types/src/playground/generator/Toolbar.d.ts +0 -8
  322. package/dist/types/src/playground/generator/Toolbar.d.ts.map +0 -1
  323. package/dist/types/src/playground/generator/generator.d.ts +0 -19
  324. package/dist/types/src/playground/generator/generator.d.ts.map +0 -1
  325. package/dist/types/src/playground/generator/index.d.ts +0 -3
  326. package/dist/types/src/playground/generator/index.d.ts.map +0 -1
  327. package/dist/types/src/playground/generator/plugin.d.ts +0 -3
  328. package/dist/types/src/playground/generator/plugin.d.ts.map +0 -1
  329. package/dist/types/src/playground/layout/Layout.d.ts +0 -10
  330. package/dist/types/src/playground/layout/Layout.d.ts.map +0 -1
  331. package/dist/types/src/playground/layout/index.d.ts +0 -2
  332. package/dist/types/src/playground/layout/index.d.ts.map +0 -1
  333. package/dist/types/src/playground/layout/plugin.d.ts +0 -3
  334. package/dist/types/src/playground/layout/plugin.d.ts.map +0 -1
  335. package/dist/types/src/playground/logger/Toolbar.d.ts +0 -8
  336. package/dist/types/src/playground/logger/Toolbar.d.ts.map +0 -1
  337. package/dist/types/src/playground/logger/index.d.ts +0 -2
  338. package/dist/types/src/playground/logger/index.d.ts.map +0 -1
  339. package/dist/types/src/playground/logger/plugin.d.ts +0 -3
  340. package/dist/types/src/playground/logger/plugin.d.ts.map +0 -1
  341. package/dist/types/src/playground/logger/schema.d.ts +0 -27
  342. package/dist/types/src/playground/logger/schema.d.ts.map +0 -1
  343. package/dist/types/src/playground/playground.stories.d.ts +0 -11
  344. package/dist/types/src/playground/playground.stories.d.ts.map +0 -1
  345. package/dist/types/src/plugin-settings/SettingsPlugin.d.ts +0 -3
  346. package/dist/types/src/plugin-settings/SettingsPlugin.d.ts.map +0 -1
  347. package/dist/types/src/plugin-settings/actions.d.ts +0 -61
  348. package/dist/types/src/plugin-settings/actions.d.ts.map +0 -1
  349. package/dist/types/src/plugin-settings/app-graph-builder.d.ts +0 -6
  350. package/dist/types/src/plugin-settings/app-graph-builder.d.ts.map +0 -1
  351. package/dist/types/src/plugin-settings/index.d.ts +0 -3
  352. package/dist/types/src/plugin-settings/index.d.ts.map +0 -1
  353. package/dist/types/src/plugin-settings/meta.d.ts +0 -3
  354. package/dist/types/src/plugin-settings/meta.d.ts.map +0 -1
  355. package/dist/types/src/plugin-settings/operation-resolver.d.ts +0 -6
  356. package/dist/types/src/plugin-settings/operation-resolver.d.ts.map +0 -1
  357. package/dist/types/src/plugin-settings/translations.d.ts +0 -11
  358. package/dist/types/src/plugin-settings/translations.d.ts.map +0 -1
  359. package/dist/types/src/react/App.d.ts.map +0 -1
  360. package/dist/types/src/react/App.stories.d.ts.map +0 -1
  361. package/dist/types/src/react/DefaultFallback.d.ts +0 -8
  362. package/dist/types/src/react/DefaultFallback.d.ts.map +0 -1
  363. package/dist/types/src/react/ErrorBoundary.d.ts +0 -30
  364. package/dist/types/src/react/ErrorBoundary.d.ts.map +0 -1
  365. package/dist/types/src/react/PluginManagerContext.stories.d.ts.map +0 -1
  366. package/dist/types/src/react/PluginManagerProvider.d.ts.map +0 -1
  367. package/dist/types/src/react/Surface.d.ts +0 -14
  368. package/dist/types/src/react/Surface.d.ts.map +0 -1
  369. package/dist/types/src/react/Surface.stories.d.ts.map +0 -1
  370. package/dist/types/src/react/SurfaceInfo.d.ts.map +0 -1
  371. package/dist/types/src/react/common.d.ts.map +0 -1
  372. package/dist/types/src/react/index.d.ts +0 -9
  373. package/dist/types/src/react/index.d.ts.map +0 -1
  374. package/dist/types/src/react/types.d.ts +0 -12
  375. package/dist/types/src/react/types.d.ts.map +0 -1
  376. package/dist/types/src/react/useApp.d.ts.map +0 -1
  377. package/dist/types/src/react/useCapabilities.d.ts.map +0 -1
  378. package/dist/types/src/react/useLoading.d.ts.map +0 -1
  379. package/dist/types/src/react/useOperationResolver.d.ts +0 -19
  380. package/dist/types/src/react/useOperationResolver.d.ts.map +0 -1
  381. package/src/common/activation-event.ts +0 -99
  382. package/src/common/capability.ts +0 -343
  383. package/src/common/collaboration.ts +0 -31
  384. package/src/common/file.ts +0 -22
  385. package/src/common/graph.ts +0 -30
  386. package/src/common/plugin.ts +0 -364
  387. package/src/playground/debug/Debug.tsx +0 -49
  388. package/src/playground/debug/plugin.ts +0 -16
  389. package/src/playground/generator/Main.tsx +0 -80
  390. package/src/playground/generator/Toolbar.tsx +0 -57
  391. package/src/playground/generator/generator.ts +0 -48
  392. package/src/playground/generator/index.ts +0 -6
  393. package/src/playground/generator/plugin.ts +0 -21
  394. package/src/playground/layout/Layout.tsx +0 -37
  395. package/src/playground/layout/plugin.ts +0 -18
  396. package/src/playground/logger/Toolbar.tsx +0 -33
  397. package/src/playground/logger/index.ts +0 -5
  398. package/src/playground/logger/plugin.ts +0 -42
  399. package/src/playground/logger/schema.ts +0 -22
  400. package/src/playground/playground.stories.tsx +0 -54
  401. package/src/plugin-settings/SettingsPlugin.ts +0 -19
  402. package/src/plugin-settings/actions.ts +0 -64
  403. package/src/plugin-settings/app-graph-builder.ts +0 -140
  404. package/src/plugin-settings/index.ts +0 -6
  405. package/src/plugin-settings/meta.ts +0 -10
  406. package/src/plugin-settings/operation-resolver.ts +0 -55
  407. package/src/plugin-settings/translations.ts +0 -19
  408. package/src/react/App.stories.tsx +0 -63
  409. package/src/react/DefaultFallback.tsx +0 -26
  410. package/src/react/ErrorBoundary.tsx +0 -56
  411. package/src/react/index.ts +0 -14
  412. package/src/react/types.ts +0 -27
  413. package/src/react/useOperationResolver.ts +0 -40
  414. /package/dist/lib/{node-esm/react/index.mjs.map → browser/chunk-RFSO3JRG.mjs.map} +0 -0
  415. /package/dist/lib/{node-esm/common/index.mjs.map → browser/common/activation-events.mjs.map} +0 -0
  416. /package/dist/lib/browser/{react/index.mjs.map → common/capabilities.mjs.map} +0 -0
  417. /package/dist/lib/browser/{common/index.mjs.map → core/url-loader.mjs.map} +0 -0
  418. /package/dist/types/src/{react → ui/components/PluginManager}/PluginManagerContext.stories.d.ts +0 -0
  419. /package/dist/types/src/{react → ui/components/Surface}/SurfaceInfo.d.ts +0 -0
  420. /package/dist/types/src/{react → ui/hooks}/useLoading.d.ts +0 -0
  421. /package/src/{react → ui/hooks}/useLoading.tsx +0 -0
@@ -1,747 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- import {
3
- PluginManagerContext
4
- } from "./chunk-UEWJDI2L.mjs";
5
- import {
6
- ActivationEvent,
7
- Capability
8
- } from "./chunk-GQEBIGKD.mjs";
9
- import {
10
- plugin_manager_exports
11
- } from "./chunk-XYQTBFPA.mjs";
12
-
13
- // src/react/common.ts
14
- import { RegistryContext, useAtomValue as useAtomValue2 } from "@effect-atom/atom-react";
15
- import { useCallback as useCallback2, useContext as useContext2 } from "react";
16
-
17
- // src/react/useCapabilities.ts
18
- import { useAtomValue } from "@effect-atom/atom-react";
19
- import { useCallback } from "react";
20
- import { invariant } from "@dxos/invariant";
21
-
22
- // src/react/PluginManagerProvider.ts
23
- import { createContext, useContext } from "react";
24
- import { raise } from "@dxos/debug";
25
- var PluginManagerContext2 = createContext(void 0);
26
- var usePluginManager = () => useContext(PluginManagerContext2) ?? raise(new Error("Missing PluginManagerContext"));
27
- var PluginManagerProvider = PluginManagerContext2.Provider;
28
-
29
- // src/react/useCapabilities.ts
30
- var __dxlog_file = "/__w/dxos/dxos/packages/sdk/app-framework/src/react/useCapabilities.ts";
31
- var useCapabilities = (interfaceDef) => {
32
- const manager = usePluginManager();
33
- return useAtomValue(manager.capabilities.atom(interfaceDef));
34
- };
35
- var useCapability = (interfaceDef) => {
36
- const capabilities = useCapabilities(interfaceDef);
37
- invariant(capabilities.length > 0, `No capability found for ${interfaceDef.identifier}`, {
38
- F: __dxlog_file,
39
- L: 31,
40
- S: void 0,
41
- A: [
42
- "capabilities.length > 0",
43
- "`No capability found for ${interfaceDef.identifier}`"
44
- ]
45
- });
46
- return capabilities[0];
47
- };
48
- var useAtomCapability = (atomCapability) => {
49
- const atom = useCapability(atomCapability);
50
- return useAtomValue(atom);
51
- };
52
- var useAtomCapabilityState = (atomCapability) => {
53
- const registry = useCapability(Capability.AtomRegistry);
54
- const atom = useCapability(atomCapability);
55
- const value = useAtomValue(atom);
56
- const update = useCallback((fn) => {
57
- registry.set(atom, fn(registry.get(atom)));
58
- }, [
59
- registry,
60
- atom
61
- ]);
62
- return [
63
- value,
64
- update
65
- ];
66
- };
67
-
68
- // src/react/common.ts
69
- var useOperationInvoker = () => useCapability(Capability.OperationInvoker);
70
- var useAppGraph = () => useCapability(Capability.AppGraph);
71
- var useLayout = () => useAtomCapability(Capability.Layout);
72
- var useSettingsState = (atom) => {
73
- const registry = useContext2(RegistryContext);
74
- const settings = useAtomValue2(atom);
75
- const updateSettings = useCallback2((fn) => {
76
- registry.set(atom, fn(registry.get(atom)));
77
- }, [
78
- registry,
79
- atom
80
- ]);
81
- return {
82
- settings,
83
- updateSettings
84
- };
85
- };
86
-
87
- // src/react/ErrorBoundary.tsx
88
- import React, { Component } from "react";
89
- var ErrorBoundary = class extends Component {
90
- static getDerivedStateFromError(error) {
91
- return {
92
- error
93
- };
94
- }
95
- state = {
96
- error: void 0
97
- };
98
- componentDidUpdate(prevProps) {
99
- if (prevProps.data !== this.props.data) {
100
- this.resetError();
101
- }
102
- }
103
- render() {
104
- if (this.state.error) {
105
- const Fallback = this.props.fallback ?? DefaultFallback;
106
- return /* @__PURE__ */ React.createElement(Fallback, {
107
- data: this.props.data,
108
- error: this.state.error
109
- });
110
- }
111
- return this.props.children;
112
- }
113
- resetError() {
114
- this.setState({
115
- error: void 0
116
- });
117
- }
118
- };
119
- var DefaultFallback = ({ data, error }) => {
120
- return /* @__PURE__ */ React.createElement("div", {
121
- className: "flex flex-col gap-2 overflow-hidden border border-red-500 rounded-sm"
122
- }, /* @__PURE__ */ React.createElement("h1", {
123
- className: "p-2"
124
- }, "ERROR: ", error.message), /* @__PURE__ */ React.createElement("pre", {
125
- className: "p-2 overflow-y-auto text-sm text-subdued"
126
- }, JSON.stringify(data, null, 2)));
127
- };
128
-
129
- // src/react/Surface.tsx
130
- import React3, { Fragment, Suspense, createContext as createContext2, forwardRef as forwardRef2, memo, useContext as useContext3, useEffect, useMemo, useRef } from "react";
131
- import { raise as raise2 } from "@dxos/debug";
132
- import { log } from "@dxos/log";
133
- import { useDefaultValue } from "@dxos/react-hooks";
134
- import { byPosition } from "@dxos/util";
135
-
136
- // src/react/SurfaceInfo.tsx
137
- import React2, { cloneElement, forwardRef, useCallback as useCallback3, useLayoutEffect, useState } from "react";
138
- import { createPortal } from "react-dom";
139
- import { addEventListener, combine } from "@dxos/async";
140
- import { useMergeRefs } from "@dxos/react-hooks";
141
- var SurfaceInfo = /* @__PURE__ */ forwardRef(({ children }, forwardedRef) => {
142
- const [rect, setRect] = useState(null);
143
- const [expand, setExpand] = useState(false);
144
- const info = useSurface();
145
- const [root, setRoot] = useState(null);
146
- const measureRef = useCallback3((node) => setRoot(node), []);
147
- const mergedRef = useMergeRefs([
148
- measureRef,
149
- forwardedRef
150
- ]);
151
- const childWithRef = /* @__PURE__ */ cloneElement(children, {
152
- ref: mergedRef
153
- });
154
- useLayoutEffect(() => {
155
- if (!root) {
156
- setRect(null);
157
- return;
158
- }
159
- const measure = () => {
160
- setRect(root.getBoundingClientRect());
161
- };
162
- const observer = new ResizeObserver(measure);
163
- observer.observe(root);
164
- measure();
165
- return combine(addEventListener(window, "scroll", measure, true), addEventListener(window, "resize", measure), () => {
166
- observer.disconnect();
167
- });
168
- }, [
169
- root
170
- ]);
171
- const padding = 0;
172
- return /* @__PURE__ */ React2.createElement(React2.Fragment, null, childWithRef, rect && /* @__PURE__ */ createPortal(
173
- /* @__PURE__ */ React2.createElement("div", {
174
- role: "none",
175
- className: "z-[100] fixed flex flex-col-reverse scrollbar-none overflow-auto pointer-events-none",
176
- style: {
177
- top: rect.top + padding,
178
- left: rect.left + padding,
179
- width: rect.width - padding * 2,
180
- height: rect.height - padding * 2
181
- }
182
- }, expand ? /* @__PURE__ */ React2.createElement("div", {
183
- className: "absolute inset-0 bg-deckSurface border border-green-500 cursor-pointer pointer-events-auto overflow-auto",
184
- onPointerDown: (ev) => ev.stopPropagation(),
185
- onClick: (ev) => {
186
- ev.stopPropagation();
187
- setExpand(false);
188
- }
189
- }, /* @__PURE__ */ React2.createElement("pre", {
190
- className: "p-2 text-xs text-description font-mono"
191
- }, JSON.stringify({
192
- info
193
- }, null, 2))) : /* @__PURE__ */ React2.createElement("span", {
194
- className: "absolute right-1 bottom-0 flex items-center p-1 text-green-500 opacity-80 hover:opacity-100 text-xl cursor-pointer pointer-events-auto",
195
- title: info.id,
196
- onPointerDown: (ev) => ev.stopPropagation(),
197
- onClick: (ev) => {
198
- ev.stopPropagation();
199
- setExpand(true);
200
- }
201
- }, "\u24D8")),
202
- // TODO(burdon): Create well-known element to gather all debug portals.
203
- document.body
204
- ));
205
- });
206
-
207
- // src/react/Surface.tsx
208
- var __dxlog_file2 = "/__w/dxos/dxos/packages/sdk/app-framework/src/react/Surface.tsx";
209
- var DEFAULT_PLACEHOLDER = /* @__PURE__ */ React3.createElement(Fragment, null);
210
- var DEBUG = import.meta.env.VITE_DEBUG;
211
- var SurfaceContext = /* @__PURE__ */ createContext2(void 0);
212
- var WebComponentWrapper = /* @__PURE__ */ memo(/* @__PURE__ */ forwardRef2(({ id, role, data, limit, definition, ...rest }, forwardedRef) => {
213
- const containerRef = useRef(null);
214
- const elementRef = useRef(null);
215
- const propsRef = useRef({
216
- id,
217
- role,
218
- data,
219
- limit,
220
- ...rest
221
- });
222
- propsRef.current = {
223
- id,
224
- role,
225
- data,
226
- limit,
227
- ...rest
228
- };
229
- useEffect(() => {
230
- if (!containerRef.current || elementRef.current) return;
231
- const element = document.createElement(definition.tagName);
232
- elementRef.current = element;
233
- Object.assign(element, propsRef.current);
234
- containerRef.current.appendChild(element);
235
- if (typeof forwardedRef === "function") {
236
- forwardedRef(element);
237
- } else if (forwardedRef) {
238
- forwardedRef.current = element;
239
- }
240
- return () => {
241
- if (elementRef.current && containerRef.current?.contains(elementRef.current)) {
242
- containerRef.current.removeChild(elementRef.current);
243
- }
244
- if (typeof forwardedRef === "function") {
245
- forwardedRef(null);
246
- } else if (forwardedRef) {
247
- forwardedRef.current = null;
248
- }
249
- elementRef.current = null;
250
- };
251
- }, [
252
- definition.tagName,
253
- forwardedRef
254
- ]);
255
- useEffect(() => {
256
- const element = elementRef.current;
257
- if (!element) return;
258
- Object.assign(element, propsRef.current);
259
- });
260
- return /* @__PURE__ */ React3.createElement("div", {
261
- ref: containerRef
262
- });
263
- }));
264
- WebComponentWrapper.displayName = "WebComponentWrapper";
265
- var SurfaceContextProvider = /* @__PURE__ */ memo(/* @__PURE__ */ forwardRef2(({ id, role, data, limit, fallback = DefaultFallback2, definition, ...rest }, forwardedRef) => {
266
- const contextValue = useMemo(() => ({
267
- id,
268
- role,
269
- data
270
- }), [
271
- id,
272
- role,
273
- data
274
- ]);
275
- if (definition.kind === "web-component") {
276
- return /* @__PURE__ */ React3.createElement(ErrorBoundary, {
277
- data,
278
- fallback
279
- }, /* @__PURE__ */ React3.createElement(SurfaceContext.Provider, {
280
- value: contextValue
281
- }, /* @__PURE__ */ React3.createElement(WebComponentWrapper, {
282
- id,
283
- role,
284
- data,
285
- limit,
286
- definition,
287
- ref: forwardedRef,
288
- ...rest
289
- })));
290
- }
291
- const Component2 = definition.component;
292
- const debug = DEBUG || "__DX_DEBUG__" in window;
293
- if (debug) {
294
- return /* @__PURE__ */ React3.createElement(ErrorBoundary, {
295
- data,
296
- fallback
297
- }, /* @__PURE__ */ React3.createElement("div", {
298
- role: "none",
299
- className: "contents",
300
- "data-id": id,
301
- "data-role": role
302
- }, /* @__PURE__ */ React3.createElement(SurfaceContext.Provider, {
303
- value: contextValue
304
- }, /* @__PURE__ */ React3.createElement(SurfaceInfo, {
305
- ref: forwardedRef
306
- }, /* @__PURE__ */ React3.createElement(Component2, {
307
- id,
308
- role,
309
- data,
310
- limit,
311
- ...rest
312
- })))));
313
- }
314
- return /* @__PURE__ */ React3.createElement(ErrorBoundary, {
315
- data,
316
- fallback
317
- }, /* @__PURE__ */ React3.createElement("div", {
318
- role: "none",
319
- className: "contents",
320
- "data-id": id,
321
- "data-role": role
322
- }, /* @__PURE__ */ React3.createElement(SurfaceContext.Provider, {
323
- value: contextValue
324
- }, /* @__PURE__ */ React3.createElement(Component2, {
325
- id,
326
- role,
327
- data,
328
- limit,
329
- ...rest,
330
- ref: forwardedRef
331
- }))));
332
- }));
333
- SurfaceContextProvider.displayName = "SurfaceContextProvider";
334
- var useSurface = () => {
335
- const context = useContext3(SurfaceContext) ?? raise2(new Error("Missing SurfaceContext"));
336
- return context;
337
- };
338
- var Surface = /* @__PURE__ */ memo(/* @__PURE__ */ forwardRef2(({ id: _id, role, data: dataProp, limit, placeholder = DEFAULT_PLACEHOLDER, ...rest }, forwardedRef) => {
339
- const data = useDefaultValue(dataProp, () => ({}));
340
- const surfaces = useSurfaces();
341
- const definitions = findCandidates(surfaces, {
342
- role,
343
- data
344
- });
345
- const candidates = limit ? definitions.slice(0, limit) : definitions;
346
- if (DEBUG && candidates.length === 0) {
347
- log.warn("no candidates for surface", {
348
- role,
349
- data
350
- }, {
351
- F: __dxlog_file2,
352
- L: 191,
353
- S: void 0,
354
- C: (f, a) => f(...a)
355
- });
356
- return null;
357
- }
358
- return /* @__PURE__ */ React3.createElement(Suspense, {
359
- fallback: placeholder
360
- }, candidates.map((definition) => /* @__PURE__ */ React3.createElement(SurfaceContextProvider, {
361
- key: definition.id,
362
- id: definition.id,
363
- role,
364
- data,
365
- limit,
366
- definition,
367
- ref: forwardedRef,
368
- ...rest
369
- })));
370
- }));
371
- Surface.displayName = "Surface";
372
- var findCandidates = (surfaces, { role, data }) => {
373
- return Object.values(surfaces).filter((definition) => Array.isArray(definition.role) ? definition.role.includes(role) : definition.role === role).filter(({ filter }) => filter ? filter(data ?? {}) : true).toSorted(byPosition);
374
- };
375
- var DefaultFallback2 = ({ data, error, dev }) => {
376
- if (dev) {
377
- return /* @__PURE__ */ React3.createElement("div", {
378
- className: "flex flex-col gap-4 p-4 is-full overflow-y-auto"
379
- }, /* @__PURE__ */ React3.createElement("h1", {
380
- className: "flex gap-2 text-sm mbs-2"
381
- }, error.message), /* @__PURE__ */ React3.createElement("pre", {
382
- className: "overflow-auto text-xs text-description"
383
- }, JSON.stringify(data, null, 2)));
384
- }
385
- return /* @__PURE__ */ React3.createElement("div", {
386
- className: "flex flex-col gap-4 p-4 is-full overflow-y-auto border border-roseFill"
387
- }, /* @__PURE__ */ React3.createElement("h1", {
388
- className: "flex gap-2 text-sm mbs-2 text-rose-500"
389
- }, error.message), /* @__PURE__ */ React3.createElement("pre", {
390
- className: "overflow-auto text-xs text-description"
391
- }, error.stack), /* @__PURE__ */ React3.createElement("pre", {
392
- className: "overflow-auto text-xs text-description"
393
- }, JSON.stringify(data, null, 2)));
394
- };
395
- var useSurfaces = () => {
396
- const surfaces = useCapabilities(Capability.ReactSurface);
397
- return useMemo(() => surfaces.flat(), [
398
- surfaces
399
- ]);
400
- };
401
- var isSurfaceAvailable = (capabilityManager, { role, data }) => {
402
- const surfaces = capabilityManager.getAll(Capability.ReactSurface);
403
- const candidates = findCandidates(surfaces.flat(), {
404
- role,
405
- data
406
- });
407
- return candidates.length > 0;
408
- };
409
-
410
- // src/react/useApp.tsx
411
- import { RegistryContext as RegistryContext2 } from "@effect-atom/atom-react";
412
- import * as Effect from "effect/Effect";
413
- import * as Fiber from "effect/Fiber";
414
- import * as PubSub from "effect/PubSub";
415
- import * as Queue from "effect/Queue";
416
- import React6, { useCallback as useCallback4, useEffect as useEffect3, useMemo as useMemo2, useRef as useRef2, useState as useState3 } from "react";
417
- import { runAndForwardErrors } from "@dxos/effect";
418
- import { invariant as invariant2 } from "@dxos/invariant";
419
- import { log as log2 } from "@dxos/log";
420
- import { useAsyncEffect, useDefaultValue as useDefaultValue2 } from "@dxos/react-hooks";
421
- import { ContextProtocolProvider } from "@dxos/web-context-react";
422
-
423
- // src/react/App.tsx
424
- import React4 from "react";
425
-
426
- // src/helpers.ts
427
- var topologicalSort = (nodes) => {
428
- const getDependencies = (nodeId, seen = /* @__PURE__ */ new Set(), path = /* @__PURE__ */ new Set()) => {
429
- if (path.has(nodeId)) {
430
- throw new Error(`Circular dependency detected involving ${nodeId}`);
431
- }
432
- if (seen.has(nodeId)) {
433
- return [];
434
- }
435
- const node = nodes.find((n) => n.id === nodeId);
436
- if (!node) {
437
- throw new Error(`Node ${nodeId} not found but is listed as a dependency`);
438
- }
439
- const newPath = /* @__PURE__ */ new Set([
440
- ...path,
441
- nodeId
442
- ]);
443
- const newSeen = /* @__PURE__ */ new Set([
444
- ...seen,
445
- nodeId
446
- ]);
447
- const dependsOn = node.dependsOn ?? [];
448
- return [
449
- ...dependsOn.flatMap((depId) => getDependencies(depId, newSeen, newPath)),
450
- nodeId
451
- ];
452
- };
453
- const allDependencies = nodes.map((node) => node.id).flatMap((id) => getDependencies(id)).filter((id, index, self) => self.indexOf(id) === index);
454
- return allDependencies.map((id) => nodes.find((node) => node.id === id)).filter((node) => node !== void 0);
455
- };
456
-
457
- // src/react/useLoading.tsx
458
- import { useEffect as useEffect2, useState as useState2 } from "react";
459
- var LoadingState = /* @__PURE__ */ (function(LoadingState2) {
460
- LoadingState2[LoadingState2["Loading"] = 0] = "Loading";
461
- LoadingState2[LoadingState2["FadeIn"] = 1] = "FadeIn";
462
- LoadingState2[LoadingState2["FadeOut"] = 2] = "FadeOut";
463
- LoadingState2[LoadingState2["Done"] = 3] = "Done";
464
- return LoadingState2;
465
- })({});
466
- var useLoading = (ready, debounce = 0) => {
467
- const [stage, setStage] = useState2(0);
468
- useEffect2(() => {
469
- if (!debounce) {
470
- return;
471
- }
472
- const i = setInterval(() => {
473
- setStage((stage2) => {
474
- switch (stage2) {
475
- case 0: {
476
- if (!ready) {
477
- return 1;
478
- } else {
479
- clearInterval(i);
480
- return 3;
481
- }
482
- }
483
- case 1: {
484
- if (ready) {
485
- return 2;
486
- }
487
- break;
488
- }
489
- case 2: {
490
- clearInterval(i);
491
- return 3;
492
- }
493
- }
494
- return stage2;
495
- });
496
- }, debounce);
497
- return () => clearInterval(i);
498
- }, [
499
- debounce
500
- ]);
501
- if (!debounce) {
502
- return ready ? 3 : 0;
503
- }
504
- return stage;
505
- };
506
-
507
- // src/react/App.tsx
508
- var App = ({ placeholder: Placeholder, ready, error, debounce }) => {
509
- const reactContexts = useCapabilities(Capability.ReactContext);
510
- const reactRoots = useCapabilities(Capability.ReactRoot);
511
- const stage = useLoading(ready, debounce);
512
- if (error) {
513
- throw error;
514
- }
515
- if (stage < LoadingState.Done) {
516
- if (!Placeholder) {
517
- return null;
518
- }
519
- return /* @__PURE__ */ React4.createElement(Placeholder, {
520
- stage
521
- });
522
- }
523
- const ComposedContext = composeContexts(reactContexts);
524
- return /* @__PURE__ */ React4.createElement(ComposedContext, null, reactRoots.map(({ id, root: Component2 }) => /* @__PURE__ */ React4.createElement(Component2, {
525
- key: id
526
- })));
527
- };
528
- var composeContexts = (contexts) => {
529
- if (contexts.length === 0) {
530
- return ({ children }) => /* @__PURE__ */ React4.createElement(React4.Fragment, null, children);
531
- }
532
- return topologicalSort(contexts).map(({ context }) => context).reduce((Acc, Next) => ({ children }) => /* @__PURE__ */ React4.createElement(Acc, null, /* @__PURE__ */ React4.createElement(Next, null, children)));
533
- };
534
-
535
- // src/react/DefaultFallback.tsx
536
- import React5 from "react";
537
- var DefaultFallback3 = ({ error }) => {
538
- return /* @__PURE__ */ React5.createElement("div", {
539
- style: {
540
- margin: "1rem",
541
- padding: "1rem",
542
- overflow: "hidden",
543
- border: "4px solid teal",
544
- borderRadius: "1rem"
545
- }
546
- }, /* @__PURE__ */ React5.createElement("h1", {
547
- style: {
548
- margin: "0.5rem 0",
549
- fontSize: "1.2rem"
550
- }
551
- }, "ERROR: ", error.message), /* @__PURE__ */ React5.createElement("pre", {
552
- style: {
553
- overflow: "auto",
554
- fontSize: "1rem",
555
- whiteSpace: "pre-wrap",
556
- color: "#888888"
557
- }
558
- }, error.stack));
559
- };
560
-
561
- // src/react/useApp.tsx
562
- var __dxlog_file3 = "/__w/dxos/dxos/packages/sdk/app-framework/src/react/useApp.tsx";
563
- var ENABLED_KEY = "dxos.org/app-framework/enabled";
564
- var useApp = ({ pluginManager, pluginLoader: pluginLoaderProp, plugins: pluginsProp, core: coreProp, defaults: defaultsProp, placeholder, fallback = DefaultFallback3, cacheEnabled = false, safeMode = false, debounce = 0, timeout = 3e4 }) => {
565
- const plugins = useDefaultValue2(pluginsProp, () => []);
566
- const core = useDefaultValue2(coreProp, () => plugins.map(({ meta }) => meta.id));
567
- const defaults = useDefaultValue2(defaultsProp, () => []);
568
- const pluginLoader = useMemo2(() => pluginLoaderProp ?? ((id) => Effect.sync(() => {
569
- const plugin = plugins.find((plugin2) => plugin2.meta.id === id);
570
- invariant2(plugin, `Plugin not found: ${id}`, {
571
- F: __dxlog_file3,
572
- L: 92,
573
- S: void 0,
574
- A: [
575
- "plugin",
576
- "`Plugin not found: ${id}`"
577
- ]
578
- });
579
- return plugin;
580
- })), [
581
- pluginLoaderProp,
582
- plugins
583
- ]);
584
- const readyRef = useRef2(false);
585
- const [ready, setReady] = useState3(false);
586
- const errorRef = useRef2(null);
587
- const [error, setError] = useState3(null);
588
- const cached = useMemo2(() => JSON.parse(localStorage.getItem(ENABLED_KEY) ?? "[]"), []);
589
- const enabled = useMemo2(() => safeMode ? [] : cacheEnabled && cached.length > 0 ? cached : defaults, [
590
- safeMode,
591
- cacheEnabled,
592
- cached,
593
- defaults
594
- ]);
595
- const manager = useMemo2(() => pluginManager ?? plugin_manager_exports.make({
596
- pluginLoader,
597
- plugins,
598
- core,
599
- enabled
600
- }), [
601
- pluginManager,
602
- pluginLoader,
603
- plugins,
604
- core,
605
- enabled
606
- ]);
607
- useEffect3(() => {
608
- if (!cacheEnabled) {
609
- return;
610
- }
611
- return manager.registry.subscribe(manager.enabled, (value) => {
612
- localStorage.setItem(ENABLED_KEY, JSON.stringify(value));
613
- });
614
- }, [
615
- cacheEnabled,
616
- manager
617
- ]);
618
- useEffect3(() => {
619
- setupDevtools(manager);
620
- }, [
621
- manager
622
- ]);
623
- useAsyncEffect(async () => {
624
- manager.capabilities.contribute({
625
- interface: Capability.PluginManager,
626
- implementation: manager,
627
- module: "dxos.org/app-framework/plugin-manager"
628
- });
629
- manager.capabilities.contribute({
630
- interface: Capability.AtomRegistry,
631
- implementation: manager.registry,
632
- module: "dxos.org/app-framework/atom-registry"
633
- });
634
- const fiber = Effect.gen(function* () {
635
- const queue = yield* PubSub.subscribe(manager.activation);
636
- const listener = yield* Effect.forkDaemon(Queue.take(queue).pipe(Effect.tap(({ event, state, error: error$ }) => Effect.sync(() => {
637
- if (event === ActivationEvent.Startup.id && state === "activated") {
638
- clearTimeout(timeoutId);
639
- setReady(true);
640
- readyRef.current = true;
641
- }
642
- if (error$ && !readyRef.current) {
643
- setError(error$);
644
- errorRef.current = error$;
645
- }
646
- })), Effect.forever));
647
- yield* Effect.all([
648
- manager.activate(ActivationEvent.SetupSettings),
649
- manager.activate(ActivationEvent.SetupReactSurface),
650
- manager.activate(ActivationEvent.Startup)
651
- ]);
652
- return yield* Fiber.join(listener);
653
- }).pipe(Effect.scoped, Effect.runFork);
654
- const timeoutId = setTimeout(() => {
655
- if (!readyRef.current && !errorRef.current) {
656
- log2.warn("startup timeout diagnostic", {
657
- eventsFired: manager.getEventsFired(),
658
- activeModules: manager.getActive(),
659
- pendingReset: manager.getPendingReset()
660
- }, {
661
- F: __dxlog_file3,
662
- L: 172,
663
- S: void 0,
664
- C: (f, a) => f(...a)
665
- });
666
- void runAndForwardErrors(Fiber.interrupt(fiber));
667
- setError(new Error(`Startup timed out after ${timeout}ms`));
668
- }
669
- }, timeout);
670
- return () => {
671
- clearTimeout(timeoutId);
672
- void runAndForwardErrors(Fiber.interrupt(fiber));
673
- manager.capabilities.remove(Capability.PluginManager, manager);
674
- manager.capabilities.remove(Capability.AtomRegistry, manager.registry);
675
- };
676
- }, [
677
- manager
678
- ]);
679
- return useCallback4(() => /* @__PURE__ */ React6.createElement(ErrorBoundary, {
680
- fallback
681
- }, /* @__PURE__ */ React6.createElement(PluginManagerProvider, {
682
- value: manager
683
- }, /* @__PURE__ */ React6.createElement(ContextProtocolProvider, {
684
- value: manager,
685
- context: PluginManagerContext
686
- }, /* @__PURE__ */ React6.createElement(RegistryContext2.Provider, {
687
- value: manager.registry
688
- }, /* @__PURE__ */ React6.createElement(App, {
689
- placeholder,
690
- ready,
691
- error,
692
- debounce
693
- }))))), [
694
- fallback,
695
- manager,
696
- placeholder,
697
- ready,
698
- error
699
- ]);
700
- };
701
- var setupDevtools = (manager) => {
702
- globalThis.composer ??= {};
703
- globalThis.composer.manager = manager;
704
- };
705
-
706
- // src/react/useOperationResolver.ts
707
- import { useEffect as useEffect4, useMemo as useMemo3 } from "react";
708
- var useOperationResolver = (module, resolver) => {
709
- const manager = usePluginManager();
710
- const resolverArray = useMemo3(() => [
711
- resolver
712
- ], [
713
- resolver
714
- ]);
715
- useEffect4(() => {
716
- manager.capabilities.contribute({
717
- module,
718
- interface: Capability.OperationResolver,
719
- implementation: resolverArray
720
- });
721
- return () => manager.capabilities.remove(Capability.OperationResolver, resolverArray);
722
- }, [
723
- module,
724
- resolverArray
725
- ]);
726
- };
727
-
728
- export {
729
- usePluginManager,
730
- PluginManagerProvider,
731
- useCapabilities,
732
- useCapability,
733
- useAtomCapability,
734
- useAtomCapabilityState,
735
- useOperationInvoker,
736
- useAppGraph,
737
- useLayout,
738
- useSettingsState,
739
- ErrorBoundary,
740
- useSurface,
741
- Surface,
742
- useSurfaces,
743
- isSurfaceAvailable,
744
- useApp,
745
- useOperationResolver
746
- };
747
- //# sourceMappingURL=chunk-6WXBT3EC.mjs.map