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