@dxos/app-framework 0.8.4-main.8360d9e660 → 0.8.4-main.8baae0fced

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