@dxos/app-framework 0.8.3 → 0.8.4-main.2e9d522

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 (251) hide show
  1. package/.swc/plugins/v7_linux_x86_64_13.0.0/f45bdff002284d9e8f9ef3f0be909de12da36c049cbcf261ac78fc00abb09a2d +0 -0
  2. package/.swc/plugins/v7_linux_x86_64_13.0.0/fce1bdb8e20a094e4af08bad09cc81497ed0e2e7c51223b07d371063cca18429 +0 -0
  3. package/README.md +0 -8
  4. package/dist/lib/browser/{app-graph-builder-BI4VVKSW.mjs → app-graph-builder-LYF7EKNN.mjs} +4 -4
  5. package/dist/lib/browser/{chunk-EHM4UI3V.mjs → chunk-FMN65HSW.mjs} +26 -25
  6. package/dist/lib/browser/{chunk-EHM4UI3V.mjs.map → chunk-FMN65HSW.mjs.map} +3 -3
  7. package/dist/lib/browser/{chunk-DIBVO47Z.mjs → chunk-FO2PH7M3.mjs} +27 -18
  8. package/dist/lib/browser/{chunk-DIBVO47Z.mjs.map → chunk-FO2PH7M3.mjs.map} +3 -3
  9. package/dist/lib/browser/{chunk-WWEJRWFX.mjs → chunk-ORWHM7CO.mjs} +2 -2
  10. package/dist/lib/browser/index.mjs +10 -10
  11. package/dist/lib/browser/index.mjs.map +3 -3
  12. package/dist/lib/browser/{intent-dispatcher-XVBOMF2Y.mjs → intent-dispatcher-LSYQZSEB.mjs} +2 -2
  13. package/dist/lib/browser/{intent-resolver-3QMBXLIY.mjs → intent-resolver-ZTNOSO3A.mjs} +4 -4
  14. package/dist/lib/browser/meta.json +1 -1
  15. package/dist/lib/browser/{store-5H7XPJGA.mjs → store-KML2R4IE.mjs} +3 -3
  16. package/dist/lib/browser/testing/index.mjs +3 -3
  17. package/dist/lib/browser/worker.mjs +1 -1
  18. package/dist/lib/node-esm/{app-graph-builder-NROP6RPQ.mjs → app-graph-builder-SAOWGJDK.mjs} +4 -4
  19. package/dist/lib/node-esm/{chunk-FHNZZWP4.mjs → chunk-73HGSHKE.mjs} +27 -18
  20. package/dist/lib/node-esm/{chunk-FHNZZWP4.mjs.map → chunk-73HGSHKE.mjs.map} +3 -3
  21. package/dist/lib/node-esm/{chunk-I6BVZMAH.mjs → chunk-UMZQERLE.mjs} +2 -2
  22. package/dist/lib/node-esm/{chunk-2J6FVECI.mjs → chunk-ZEZ4FVEU.mjs} +26 -25
  23. package/dist/lib/node-esm/{chunk-2J6FVECI.mjs.map → chunk-ZEZ4FVEU.mjs.map} +3 -3
  24. package/dist/lib/node-esm/index.mjs +10 -10
  25. package/dist/lib/node-esm/index.mjs.map +3 -3
  26. package/dist/lib/node-esm/{intent-dispatcher-7JPGLCQ5.mjs → intent-dispatcher-6CYNGPSW.mjs} +2 -2
  27. package/dist/lib/node-esm/{intent-resolver-VY4X5UHN.mjs → intent-resolver-W7Z7WFFM.mjs} +4 -4
  28. package/dist/lib/node-esm/meta.json +1 -1
  29. package/dist/lib/node-esm/{store-UKD2R2KA.mjs → store-QEXGXLWZ.mjs} +3 -3
  30. package/dist/lib/node-esm/testing/index.mjs +3 -3
  31. package/dist/lib/node-esm/worker.mjs +1 -1
  32. package/dist/types/src/common/capabilities.d.ts +4 -2
  33. package/dist/types/src/common/capabilities.d.ts.map +1 -1
  34. package/dist/types/src/common/index.d.ts +1 -1
  35. package/dist/types/src/common/index.d.ts.map +1 -1
  36. package/dist/types/src/plugin-settings/translations.d.ts +7 -8
  37. package/dist/types/src/plugin-settings/translations.d.ts.map +1 -1
  38. package/dist/types/tsconfig.tsbuildinfo +1 -1
  39. package/moon.yml +14 -0
  40. package/package.json +28 -28
  41. package/src/App.tsx +3 -3
  42. package/src/common/capabilities.ts +9 -3
  43. package/src/common/index.ts +1 -1
  44. package/src/core/manager.test.ts +1 -2
  45. package/src/plugin-settings/SettingsPlugin.ts +1 -1
  46. package/src/plugin-settings/translations.ts +4 -2
  47. package/tsconfig.json +4 -1
  48. package/vitest.config.ts +5 -2
  49. package/.eslintrc.cjs +0 -9
  50. package/README.yml +0 -5
  51. package/dist/lib/node/app-graph-builder-H7QVE4MJ.cjs +0 -146
  52. package/dist/lib/node/app-graph-builder-H7QVE4MJ.cjs.map +0 -7
  53. package/dist/lib/node/chunk-G774ASXO.cjs +0 -58
  54. package/dist/lib/node/chunk-G774ASXO.cjs.map +0 -7
  55. package/dist/lib/node/chunk-VSOSVDQ3.cjs +0 -1551
  56. package/dist/lib/node/chunk-VSOSVDQ3.cjs.map +0 -7
  57. package/dist/lib/node/chunk-YGAY3H34.cjs +0 -429
  58. package/dist/lib/node/chunk-YGAY3H34.cjs.map +0 -7
  59. package/dist/lib/node/index.cjs +0 -193
  60. package/dist/lib/node/index.cjs.map +0 -7
  61. package/dist/lib/node/intent-dispatcher-C3SVKJ62.cjs +0 -32
  62. package/dist/lib/node/intent-dispatcher-C3SVKJ62.cjs.map +0 -7
  63. package/dist/lib/node/intent-resolver-IOJDYO34.cjs +0 -46
  64. package/dist/lib/node/intent-resolver-IOJDYO34.cjs.map +0 -7
  65. package/dist/lib/node/meta.json +0 -1
  66. package/dist/lib/node/store-ESF5VR57.cjs +0 -45
  67. package/dist/lib/node/store-ESF5VR57.cjs.map +0 -7
  68. package/dist/lib/node/testing/index.cjs +0 -119
  69. package/dist/lib/node/testing/index.cjs.map +0 -7
  70. package/dist/lib/node/worker.cjs +0 -101
  71. package/dist/lib/node/worker.cjs.map +0 -7
  72. package/project.json +0 -29
  73. package/typedoc/.nojekyll +0 -1
  74. package/typedoc/assets/hierarchy.js +0 -1
  75. package/typedoc/assets/highlight.css +0 -106
  76. package/typedoc/assets/icons.js +0 -18
  77. package/typedoc/assets/icons.svg +0 -1
  78. package/typedoc/assets/main.js +0 -60
  79. package/typedoc/assets/navigation.js +0 -1
  80. package/typedoc/assets/search.js +0 -1
  81. package/typedoc/assets/style.css +0 -1640
  82. package/typedoc/classes/CollaborationActions.InsertContent.html +0 -421
  83. package/typedoc/classes/ErrorBoundary.html +0 -125
  84. package/typedoc/classes/IntentAction.ShowUndo.html +0 -227
  85. package/typedoc/classes/IntentAction.Track.html +0 -266
  86. package/typedoc/classes/LayoutAction.AddToast.html +0 -265
  87. package/typedoc/classes/LayoutAction.Close.html +0 -382
  88. package/typedoc/classes/LayoutAction.Expose.html +0 -265
  89. package/typedoc/classes/LayoutAction.Open.html +0 -1123
  90. package/typedoc/classes/LayoutAction.RevertWorkspace.html +0 -343
  91. package/typedoc/classes/LayoutAction.ScrollIntoView.html +0 -460
  92. package/typedoc/classes/LayoutAction.Set.html +0 -460
  93. package/typedoc/classes/LayoutAction.SetLayoutMode.html +0 -499
  94. package/typedoc/classes/LayoutAction.SwitchWorkspace.html +0 -265
  95. package/typedoc/classes/LayoutAction.UpdateComplementary.html +0 -616
  96. package/typedoc/classes/LayoutAction.UpdateDialog.html +0 -1123
  97. package/typedoc/classes/LayoutAction.UpdateLayout.html +0 -461
  98. package/typedoc/classes/LayoutAction.UpdatePopover.html +0 -1435
  99. package/typedoc/classes/LayoutAction.UpdateSidebar.html +0 -616
  100. package/typedoc/classes/Plugin.html +0 -6
  101. package/typedoc/classes/PluginContext.html +0 -38
  102. package/typedoc/classes/PluginManager.html +0 -43
  103. package/typedoc/classes/PluginModule.html +0 -18
  104. package/typedoc/classes/SettingsAction.Open.html +0 -226
  105. package/typedoc/classes/SettingsAction.OpenPluginRegistry.html +0 -265
  106. package/typedoc/functions/Events.createStateEvent.html +0 -2
  107. package/typedoc/functions/IntentPlugin.html +0 -1
  108. package/typedoc/functions/SettingsPlugin.html +0 -1
  109. package/typedoc/functions/allOf.html +0 -2
  110. package/typedoc/functions/chain.html +0 -3
  111. package/typedoc/functions/contributes.html +0 -2
  112. package/typedoc/functions/createDispatcher.html +0 -3
  113. package/typedoc/functions/createIntent.html +0 -6
  114. package/typedoc/functions/createResolver.html +0 -2
  115. package/typedoc/functions/createSurface.html +0 -2
  116. package/typedoc/functions/defineCapability.html +0 -2
  117. package/typedoc/functions/defineEvent.html +0 -2
  118. package/typedoc/functions/defineModule.html +0 -2
  119. package/typedoc/functions/definePlugin.html +0 -2
  120. package/typedoc/functions/eventKey.html +0 -2
  121. package/typedoc/functions/getEvents.html +0 -2
  122. package/typedoc/functions/isAllOf.html +0 -2
  123. package/typedoc/functions/isOneOf.html +0 -2
  124. package/typedoc/functions/isSurfaceAvailable.html +0 -2
  125. package/typedoc/functions/lazy.html +0 -2
  126. package/typedoc/functions/oneOf.html +0 -2
  127. package/typedoc/functions/useApp.html +0 -6
  128. package/typedoc/functions/useAppGraph.html +0 -1
  129. package/typedoc/functions/useCapabilities.html +0 -3
  130. package/typedoc/functions/useCapability.html +0 -4
  131. package/typedoc/functions/useIntentDispatcher.html +0 -1
  132. package/typedoc/functions/useIntentResolver.html +0 -1
  133. package/typedoc/functions/useLayout.html +0 -1
  134. package/typedoc/functions/usePluginManager.html +0 -2
  135. package/typedoc/hierarchy.html +0 -1
  136. package/typedoc/index.html +0 -16
  137. package/typedoc/interfaces/LayoutAction.Toast.html +0 -10
  138. package/typedoc/media/LICENSE +0 -8
  139. package/typedoc/modules/Capabilities.html +0 -1
  140. package/typedoc/modules/CollaborationActions.html +0 -1
  141. package/typedoc/modules/Events.html +0 -1
  142. package/typedoc/modules/IntentAction.html +0 -1
  143. package/typedoc/modules/LayoutAction.html +0 -2
  144. package/typedoc/modules/SettingsAction.html +0 -1
  145. package/typedoc/modules.html +0 -1
  146. package/typedoc/types/ActivationEvent.html +0 -8
  147. package/typedoc/types/ActivationEvents.html +0 -2
  148. package/typedoc/types/AnyCapability.html +0 -1
  149. package/typedoc/types/AnyIntent.html +0 -1
  150. package/typedoc/types/AnyIntentChain.html +0 -1
  151. package/typedoc/types/AnyIntentEffectResult.html +0 -1
  152. package/typedoc/types/AnyIntentResolver.html +0 -1
  153. package/typedoc/types/AnyIntentResult.html +0 -1
  154. package/typedoc/types/Capabilities.FileUploader.html +0 -1
  155. package/typedoc/types/Capabilities.IntentResolver.html +0 -1
  156. package/typedoc/types/Capabilities.Layout.html +0 -1
  157. package/typedoc/types/Capabilities.Metadata.html +0 -1
  158. package/typedoc/types/Capabilities.ReactContext.html +0 -1
  159. package/typedoc/types/Capabilities.ReactRoot.html +0 -1
  160. package/typedoc/types/Capabilities.ReactSurface.html +0 -1
  161. package/typedoc/types/Capabilities.Settings.html +0 -4
  162. package/typedoc/types/Capability.html +0 -9
  163. package/typedoc/types/CreateAppOptions.html +0 -10
  164. package/typedoc/types/FileInfo.html +0 -1
  165. package/typedoc/types/Intent.html +0 -10
  166. package/typedoc/types/IntentChain.html +0 -6
  167. package/typedoc/types/IntentContext.html +0 -5
  168. package/typedoc/types/IntentData.html +0 -1
  169. package/typedoc/types/IntentDispatcher.html +0 -2
  170. package/typedoc/types/IntentDispatcherResult.html +0 -2
  171. package/typedoc/types/IntentEffectDefinition.html +0 -2
  172. package/typedoc/types/IntentEffectResult.html +0 -15
  173. package/typedoc/types/IntentParams.html +0 -3
  174. package/typedoc/types/IntentResolver.html +0 -2
  175. package/typedoc/types/IntentResultData.html +0 -1
  176. package/typedoc/types/IntentSchema.html +0 -1
  177. package/typedoc/types/IntentUndo.html +0 -2
  178. package/typedoc/types/InterfaceDef.html +0 -4
  179. package/typedoc/types/Label.html +0 -1
  180. package/typedoc/types/NodeSerializer.html +0 -8
  181. package/typedoc/types/PluginManagerOptions.html +0 -6
  182. package/typedoc/types/PluginMeta.html +0 -21
  183. package/typedoc/types/PromiseIntentDispatcher.html +0 -2
  184. package/typedoc/types/PromiseIntentUndo.html +0 -2
  185. package/typedoc/types/Resource.html +0 -1
  186. package/typedoc/types/ResourceKey.html +0 -1
  187. package/typedoc/types/ResourceLanguage.html +0 -1
  188. package/typedoc/types/SerializedNode.html +0 -4
  189. package/typedoc/types/SurfaceComponent.html +0 -2
  190. package/typedoc/types/SurfaceDefinition.html +0 -2
  191. package/typedoc/types/SurfaceProps.html +0 -4
  192. package/typedoc/variables/Capabilities.AnchorSort.html +0 -1
  193. package/typedoc/variables/Capabilities.AppGraph.html +0 -1
  194. package/typedoc/variables/Capabilities.AppGraphBuilder.html +0 -1
  195. package/typedoc/variables/Capabilities.AppGraphSerializer.html +0 -1
  196. package/typedoc/variables/Capabilities.ArtifactDefinition.html +0 -1
  197. package/typedoc/variables/Capabilities.FileUploader.html +0 -1
  198. package/typedoc/variables/Capabilities.IntentDispatcher.html +0 -1
  199. package/typedoc/variables/Capabilities.IntentResolver.html +0 -1
  200. package/typedoc/variables/Capabilities.Layout.html +0 -1
  201. package/typedoc/variables/Capabilities.Metadata.html +0 -1
  202. package/typedoc/variables/Capabilities.Null.html +0 -1
  203. package/typedoc/variables/Capabilities.PluginManager.html +0 -1
  204. package/typedoc/variables/Capabilities.ReactContext.html +0 -1
  205. package/typedoc/variables/Capabilities.ReactRoot.html +0 -1
  206. package/typedoc/variables/Capabilities.ReactSurface.html +0 -1
  207. package/typedoc/variables/Capabilities.RxRegistry.html +0 -1
  208. package/typedoc/variables/Capabilities.Settings.html +0 -1
  209. package/typedoc/variables/Capabilities.SettingsStore.html +0 -1
  210. package/typedoc/variables/Capabilities.Tools.html +0 -1
  211. package/typedoc/variables/Capabilities.Translations.html +0 -1
  212. package/typedoc/variables/Events.AppGraphReady.html +0 -2
  213. package/typedoc/variables/Events.DispatcherReady.html +0 -2
  214. package/typedoc/variables/Events.LayoutReady.html +0 -1
  215. package/typedoc/variables/Events.SettingsReady.html +0 -2
  216. package/typedoc/variables/Events.SetupAppGraph.html +0 -2
  217. package/typedoc/variables/Events.SetupArtifactDefinition.html +0 -2
  218. package/typedoc/variables/Events.SetupIntentResolver.html +0 -2
  219. package/typedoc/variables/Events.SetupMetadata.html +0 -2
  220. package/typedoc/variables/Events.SetupReactSurface.html +0 -2
  221. package/typedoc/variables/Events.SetupSettings.html +0 -2
  222. package/typedoc/variables/Events.SetupTranslations.html +0 -2
  223. package/typedoc/variables/Events.Startup.html +0 -2
  224. package/typedoc/variables/FileInfoSchema.html +0 -1
  225. package/typedoc/variables/INTENT_ACTION.html +0 -1
  226. package/typedoc/variables/INTENT_PLUGIN.html +0 -1
  227. package/typedoc/variables/LAYOUT_ACTION.html +0 -1
  228. package/typedoc/variables/LAYOUT_PLUGIN.html +0 -1
  229. package/typedoc/variables/Label.html +0 -1
  230. package/typedoc/variables/LayoutAction.Toast.html +0 -1
  231. package/typedoc/variables/LayoutAction.UPDATE_LAYOUT.html +0 -1
  232. package/typedoc/variables/PluginManagerProvider.html +0 -2
  233. package/typedoc/variables/Resource.html +0 -2
  234. package/typedoc/variables/ResourceKey.html +0 -1
  235. package/typedoc/variables/ResourceLanguage.html +0 -1
  236. package/typedoc/variables/SETTINGS_ACTION.html +0 -1
  237. package/typedoc/variables/SETTINGS_ID.html +0 -1
  238. package/typedoc/variables/SETTINGS_KEY.html +0 -1
  239. package/typedoc/variables/SETTINGS_PLUGIN.html +0 -1
  240. package/typedoc/variables/Surface.html +0 -2
  241. package/typedoc/variables/defaultFileTypes.html +0 -1
  242. /package/dist/lib/browser/{app-graph-builder-BI4VVKSW.mjs.map → app-graph-builder-LYF7EKNN.mjs.map} +0 -0
  243. /package/dist/lib/browser/{chunk-WWEJRWFX.mjs.map → chunk-ORWHM7CO.mjs.map} +0 -0
  244. /package/dist/lib/browser/{intent-dispatcher-XVBOMF2Y.mjs.map → intent-dispatcher-LSYQZSEB.mjs.map} +0 -0
  245. /package/dist/lib/browser/{intent-resolver-3QMBXLIY.mjs.map → intent-resolver-ZTNOSO3A.mjs.map} +0 -0
  246. /package/dist/lib/browser/{store-5H7XPJGA.mjs.map → store-KML2R4IE.mjs.map} +0 -0
  247. /package/dist/lib/node-esm/{app-graph-builder-NROP6RPQ.mjs.map → app-graph-builder-SAOWGJDK.mjs.map} +0 -0
  248. /package/dist/lib/node-esm/{chunk-I6BVZMAH.mjs.map → chunk-UMZQERLE.mjs.map} +0 -0
  249. /package/dist/lib/node-esm/{intent-dispatcher-7JPGLCQ5.mjs.map → intent-dispatcher-6CYNGPSW.mjs.map} +0 -0
  250. /package/dist/lib/node-esm/{intent-resolver-VY4X5UHN.mjs.map → intent-resolver-W7Z7WFFM.mjs.map} +0 -0
  251. /package/dist/lib/node-esm/{store-UKD2R2KA.mjs.map → store-QEXGXLWZ.mjs.map} +0 -0
@@ -1 +1 @@
1
- {"inputs":{"packages/sdk/app-framework/src/core/capabilities.ts":{"bytes":23780,"imports":[{"path":"@effect-rx/rx-react","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/app-framework/src/core/events.ts":{"bytes":5371,"imports":[],"format":"esm"},"packages/sdk/app-framework/src/core/manager.ts":{"bytes":55041,"imports":[{"path":"@effect-rx/rx-react","kind":"import-statement","external":true},{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/sdk/app-framework/src/core/capabilities.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/sdk/app-framework/src/core/events.ts","kind":"import-statement","original":"./events"}],"format":"esm"},"packages/sdk/app-framework/src/core/plugin.ts":{"bytes":7296,"imports":[],"format":"esm"},"packages/sdk/app-framework/src/core/index.ts":{"bytes":738,"imports":[{"path":"packages/sdk/app-framework/src/core/capabilities.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/sdk/app-framework/src/core/events.ts","kind":"import-statement","original":"./events"},{"path":"packages/sdk/app-framework/src/core/manager.ts","kind":"import-statement","original":"./manager"},{"path":"packages/sdk/app-framework/src/core/plugin.ts","kind":"import-statement","original":"./plugin"}],"format":"esm"},"packages/sdk/app-framework/src/common/capabilities.ts":{"bytes":10186,"imports":[{"path":"packages/sdk/app-framework/src/core/index.ts","kind":"import-statement","original":"../core"}],"format":"esm"},"packages/sdk/app-framework/src/common/collaboration.ts":{"bytes":2669,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/app-framework/src/common/events.ts":{"bytes":5592,"imports":[{"path":"packages/sdk/app-framework/src/common/capabilities.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/sdk/app-framework/src/core/index.ts","kind":"import-statement","original":"../core"}],"format":"esm"},"packages/sdk/app-framework/src/common/file.ts":{"bytes":2508,"imports":[{"path":"effect","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/app-framework/src/common/graph.ts":{"bytes":1402,"imports":[],"format":"esm"},"packages/sdk/app-framework/src/plugin-intent/intent.ts":{"bytes":10041,"imports":[{"path":"effect","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/app-framework/src/plugin-intent/actions.ts":{"bytes":3342,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"packages/sdk/app-framework/src/plugin-intent/intent.ts","kind":"import-statement","original":"./intent"}],"format":"esm"},"packages/sdk/app-framework/src/plugin-intent/errors.ts":{"bytes":3766,"imports":[],"format":"esm"},"packages/sdk/app-framework/src/plugin-intent/intent-dispatcher.ts":{"bytes":30777,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/sdk/app-framework/src/plugin-intent/actions.ts","kind":"import-statement","original":"./actions"},{"path":"packages/sdk/app-framework/src/plugin-intent/errors.ts","kind":"import-statement","original":"./errors"},{"path":"packages/sdk/app-framework/src/plugin-intent/intent.ts","kind":"import-statement","original":"./intent"},{"path":"packages/sdk/app-framework/src/common/index.ts","kind":"import-statement","original":"../common"},{"path":"packages/sdk/app-framework/src/core/index.ts","kind":"import-statement","original":"../core"}],"format":"esm"},"packages/sdk/app-framework/src/plugin-intent/IntentPlugin.ts":{"bytes":3004,"imports":[{"path":"packages/sdk/app-framework/src/plugin-intent/actions.ts","kind":"import-statement","original":"./actions"},{"path":"packages/sdk/app-framework/src/common/index.ts","kind":"import-statement","original":"../common"},{"path":"packages/sdk/app-framework/src/core/index.ts","kind":"import-statement","original":"../core"},{"path":"packages/sdk/app-framework/src/plugin-intent/intent-dispatcher.ts","kind":"dynamic-import","original":"./intent-dispatcher"}],"format":"esm"},"packages/sdk/app-framework/src/plugin-intent/index.ts":{"bytes":774,"imports":[{"path":"packages/sdk/app-framework/src/plugin-intent/actions.ts","kind":"import-statement","original":"./actions"},{"path":"packages/sdk/app-framework/src/plugin-intent/intent.ts","kind":"import-statement","original":"./intent"},{"path":"packages/sdk/app-framework/src/plugin-intent/intent-dispatcher.ts","kind":"import-statement","original":"./intent-dispatcher"},{"path":"packages/sdk/app-framework/src/plugin-intent/IntentPlugin.ts","kind":"import-statement","original":"./IntentPlugin"}],"format":"esm"},"packages/sdk/app-framework/src/common/layout.ts":{"bytes":42709,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"packages/sdk/app-framework/src/plugin-intent/index.ts","kind":"import-statement","original":"../plugin-intent"}],"format":"esm"},"packages/sdk/app-framework/src/common/surface.ts":{"bytes":4127,"imports":[],"format":"esm"},"packages/sdk/app-framework/src/common/translations.ts":{"bytes":2224,"imports":[{"path":"effect","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/app-framework/src/common/index.ts":{"bytes":1102,"imports":[{"path":"packages/sdk/app-framework/src/common/capabilities.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/sdk/app-framework/src/common/collaboration.ts","kind":"import-statement","original":"./collaboration"},{"path":"packages/sdk/app-framework/src/common/events.ts","kind":"import-statement","original":"./events"},{"path":"packages/sdk/app-framework/src/common/file.ts","kind":"import-statement","original":"./file"},{"path":"packages/sdk/app-framework/src/common/graph.ts","kind":"import-statement","original":"./graph"},{"path":"packages/sdk/app-framework/src/common/layout.ts","kind":"import-statement","original":"./layout"},{"path":"packages/sdk/app-framework/src/common/surface.ts","kind":"import-statement","original":"./surface"},{"path":"packages/sdk/app-framework/src/common/translations.ts","kind":"import-statement","original":"./translations"}],"format":"esm"},"packages/sdk/app-framework/src/helpers.ts":{"bytes":4998,"imports":[],"format":"esm"},"packages/sdk/app-framework/src/react/PluginManagerProvider.ts":{"bytes":2030,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/app-framework/src/react/useCapabilities.ts":{"bytes":3277,"imports":[{"path":"@effect-rx/rx-react","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"packages/sdk/app-framework/src/react/PluginManagerProvider.ts","kind":"import-statement","original":"./PluginManagerProvider"}],"format":"esm"},"packages/sdk/app-framework/src/react/common.ts":{"bytes":1573,"imports":[{"path":"packages/sdk/app-framework/src/react/useCapabilities.ts","kind":"import-statement","original":"./useCapabilities"},{"path":"packages/sdk/app-framework/src/common/index.ts","kind":"import-statement","original":"../common"}],"format":"esm"},"packages/sdk/app-framework/src/react/ErrorBoundary.tsx":{"bytes":4383,"imports":[{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/app-framework/src/react/Surface.tsx":{"bytes":10707,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/sdk/app-framework/src/react/ErrorBoundary.tsx","kind":"import-statement","original":"./ErrorBoundary"},{"path":"packages/sdk/app-framework/src/react/useCapabilities.ts","kind":"import-statement","original":"./useCapabilities"},{"path":"packages/sdk/app-framework/src/common/index.ts","kind":"import-statement","original":"../common"}],"format":"esm"},"packages/sdk/app-framework/src/react/useIntentResolver.ts":{"bytes":2478,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"packages/sdk/app-framework/src/common/index.ts","kind":"import-statement","original":"../common"},{"path":"packages/sdk/app-framework/src/react/index.ts","kind":"import-statement","original":"../react"}],"format":"esm"},"packages/sdk/app-framework/src/react/index.ts":{"bytes":995,"imports":[{"path":"packages/sdk/app-framework/src/react/common.ts","kind":"import-statement","original":"./common"},{"path":"packages/sdk/app-framework/src/react/ErrorBoundary.tsx","kind":"import-statement","original":"./ErrorBoundary"},{"path":"packages/sdk/app-framework/src/react/PluginManagerProvider.ts","kind":"import-statement","original":"./PluginManagerProvider"},{"path":"packages/sdk/app-framework/src/react/Surface.tsx","kind":"import-statement","original":"./Surface"},{"path":"packages/sdk/app-framework/src/react/useCapabilities.ts","kind":"import-statement","original":"./useCapabilities"},{"path":"packages/sdk/app-framework/src/react/useIntentResolver.ts","kind":"import-statement","original":"./useIntentResolver"}],"format":"esm"},"packages/sdk/app-framework/src/App.tsx":{"bytes":29279,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"@effect-rx/rx-react","kind":"import-statement","external":true},{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"packages/sdk/app-framework/src/common/index.ts","kind":"import-statement","original":"./common"},{"path":"packages/sdk/app-framework/src/core/index.ts","kind":"import-statement","original":"./core"},{"path":"packages/sdk/app-framework/src/helpers.ts","kind":"import-statement","original":"./helpers"},{"path":"packages/sdk/app-framework/src/react/index.ts","kind":"import-statement","original":"./react"}],"format":"esm"},"packages/sdk/app-framework/src/plugin-settings/actions.ts":{"bytes":3527,"imports":[{"path":"effect","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/app-framework/src/plugin-settings/translations.ts":{"bytes":1306,"imports":[{"path":"packages/sdk/app-framework/src/plugin-settings/actions.ts","kind":"import-statement","original":"./actions"}],"format":"esm"},"packages/sdk/app-framework/src/plugin-settings/store.ts":{"bytes":4069,"imports":[{"path":"@dxos/local-storage","kind":"import-statement","external":true},{"path":"packages/sdk/app-framework/src/common/index.ts","kind":"import-statement","original":"../common"},{"path":"packages/sdk/app-framework/src/core/index.ts","kind":"import-statement","original":"../core"}],"format":"esm"},"packages/sdk/app-framework/src/plugin-settings/intent-resolver.ts":{"bytes":3786,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"packages/sdk/app-framework/src/plugin-settings/actions.ts","kind":"import-statement","original":"./actions"},{"path":"packages/sdk/app-framework/src/common/index.ts","kind":"import-statement","original":"../common"},{"path":"packages/sdk/app-framework/src/core/index.ts","kind":"import-statement","original":"../core"},{"path":"packages/sdk/app-framework/src/plugin-intent/index.ts","kind":"import-statement","original":"../plugin-intent"}],"format":"esm"},"packages/sdk/app-framework/src/plugin-settings/app-graph-builder.ts":{"bytes":20640,"imports":[{"path":"@effect-rx/rx-react","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/app-graph","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/sdk/app-framework/src/plugin-settings/actions.ts","kind":"import-statement","original":"./actions"},{"path":"packages/sdk/app-framework/src/common/index.ts","kind":"import-statement","original":"../common"},{"path":"packages/sdk/app-framework/src/core/index.ts","kind":"import-statement","original":"../core"},{"path":"packages/sdk/app-framework/src/plugin-intent/index.ts","kind":"import-statement","original":"../plugin-intent"}],"format":"esm"},"packages/sdk/app-framework/src/plugin-settings/SettingsPlugin.ts":{"bytes":4856,"imports":[{"path":"packages/sdk/app-framework/src/plugin-settings/actions.ts","kind":"import-statement","original":"./actions"},{"path":"packages/sdk/app-framework/src/plugin-settings/translations.ts","kind":"import-statement","original":"./translations"},{"path":"packages/sdk/app-framework/src/common/index.ts","kind":"import-statement","original":"../common"},{"path":"packages/sdk/app-framework/src/core/index.ts","kind":"import-statement","original":"../core"},{"path":"packages/sdk/app-framework/src/plugin-settings/store.ts","kind":"dynamic-import","original":"./store"},{"path":"packages/sdk/app-framework/src/plugin-settings/intent-resolver.ts","kind":"dynamic-import","original":"./intent-resolver"},{"path":"packages/sdk/app-framework/src/plugin-settings/app-graph-builder.ts","kind":"dynamic-import","original":"./app-graph-builder"}],"format":"esm"},"packages/sdk/app-framework/src/plugin-settings/index.ts":{"bytes":587,"imports":[{"path":"packages/sdk/app-framework/src/plugin-settings/actions.ts","kind":"import-statement","original":"./actions"},{"path":"packages/sdk/app-framework/src/plugin-settings/SettingsPlugin.ts","kind":"import-statement","original":"./SettingsPlugin"}],"format":"esm"},"packages/sdk/app-framework/src/index.ts":{"bytes":908,"imports":[{"path":"packages/sdk/app-framework/src/App.tsx","kind":"import-statement","original":"./App"},{"path":"packages/sdk/app-framework/src/common/index.ts","kind":"import-statement","original":"./common"},{"path":"packages/sdk/app-framework/src/core/index.ts","kind":"import-statement","original":"./core"},{"path":"packages/sdk/app-framework/src/plugin-intent/index.ts","kind":"import-statement","original":"./plugin-intent"},{"path":"packages/sdk/app-framework/src/plugin-settings/index.ts","kind":"import-statement","original":"./plugin-settings"},{"path":"packages/sdk/app-framework/src/react/index.ts","kind":"import-statement","original":"./react"}],"format":"esm"},"packages/sdk/app-framework/src/testing/withPluginManager.tsx":{"bytes":11155,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"packages/sdk/app-framework/src/App.tsx","kind":"import-statement","original":"../App"},{"path":"packages/sdk/app-framework/src/common/index.ts","kind":"import-statement","original":"../common"},{"path":"packages/sdk/app-framework/src/core/index.ts","kind":"import-statement","original":"../core"}],"format":"esm"},"packages/sdk/app-framework/src/testing/index.ts":{"bytes":499,"imports":[{"path":"packages/sdk/app-framework/src/testing/withPluginManager.tsx","kind":"import-statement","original":"./withPluginManager"}],"format":"esm"},"packages/sdk/app-framework/src/worker.ts":{"bytes":1247,"imports":[{"path":"packages/sdk/app-framework/src/core/index.ts","kind":"import-statement","original":"./core"},{"path":"packages/sdk/app-framework/src/common/index.ts","kind":"import-statement","original":"./common"},{"path":"packages/sdk/app-framework/src/plugin-intent/index.ts","kind":"import-statement","original":"./plugin-intent"}],"format":"esm"}},"outputs":{"packages/sdk/app-framework/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2832},"packages/sdk/app-framework/dist/lib/browser/index.mjs":{"imports":[{"path":"packages/sdk/app-framework/dist/lib/browser/chunk-DIBVO47Z.mjs","kind":"import-statement"},{"path":"packages/sdk/app-framework/dist/lib/browser/chunk-WWEJRWFX.mjs","kind":"import-statement"},{"path":"packages/sdk/app-framework/dist/lib/browser/chunk-EHM4UI3V.mjs","kind":"import-statement"},{"path":"packages/sdk/app-framework/dist/lib/browser/store-5H7XPJGA.mjs","kind":"dynamic-import"},{"path":"packages/sdk/app-framework/dist/lib/browser/intent-resolver-3QMBXLIY.mjs","kind":"dynamic-import"},{"path":"packages/sdk/app-framework/dist/lib/browser/app-graph-builder-BI4VVKSW.mjs","kind":"dynamic-import"}],"exports":["Capabilities","CollaborationActions","ErrorBoundary","Events","FileInfoSchema","INTENT_ACTION","INTENT_PLUGIN","IntentAction","IntentPlugin","LAYOUT_ACTION","LAYOUT_PLUGIN","Label","LayoutAction","Plugin","PluginContext","PluginManager","PluginManagerProvider","PluginModule","Resource","ResourceKey","ResourceLanguage","SETTINGS_ACTION","SETTINGS_ID","SETTINGS_KEY","SETTINGS_PLUGIN","SettingsAction","SettingsPlugin","Surface","allOf","chain","contributes","createDispatcher","createIntent","createResolver","createSurface","defaultFileTypes","defineCapability","defineEvent","defineModule","definePlugin","eventKey","getEvents","isAllOf","isOneOf","isSurfaceAvailable","lazy","oneOf","useApp","useAppGraph","useCapabilities","useCapability","useIntentDispatcher","useIntentResolver","useLayout","usePluginManager","useSurfaces"],"entryPoint":"packages/sdk/app-framework/src/index.ts","inputs":{"packages/sdk/app-framework/src/index.ts":{"bytesInOutput":0},"packages/sdk/app-framework/src/plugin-settings/index.ts":{"bytesInOutput":0},"packages/sdk/app-framework/src/plugin-settings/translations.ts":{"bytesInOutput":228},"packages/sdk/app-framework/src/plugin-settings/SettingsPlugin.ts":{"bytesInOutput":932}},"bytes":3217},"packages/sdk/app-framework/dist/lib/browser/testing/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":5761},"packages/sdk/app-framework/dist/lib/browser/testing/index.mjs":{"imports":[{"path":"packages/sdk/app-framework/dist/lib/browser/chunk-DIBVO47Z.mjs","kind":"import-statement"},{"path":"packages/sdk/app-framework/dist/lib/browser/chunk-EHM4UI3V.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true}],"exports":["getValue","setupPluginManager","withPluginManager"],"entryPoint":"packages/sdk/app-framework/src/testing/index.ts","inputs":{"packages/sdk/app-framework/src/testing/withPluginManager.tsx":{"bytesInOutput":2198},"packages/sdk/app-framework/src/testing/index.ts":{"bytesInOutput":0}},"bytes":2544},"packages/sdk/app-framework/dist/lib/browser/chunk-DIBVO47Z.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":29006},"packages/sdk/app-framework/dist/lib/browser/chunk-DIBVO47Z.mjs":{"imports":[{"path":"packages/sdk/app-framework/dist/lib/browser/chunk-EHM4UI3V.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@effect-rx/rx-react","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"@effect-rx/rx-react","kind":"import-statement","external":true},{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"@dxos/react-hooks","kind":"import-statement","external":true}],"exports":["ErrorBoundary","PluginManagerProvider","Surface","isSurfaceAvailable","useApp","useAppGraph","useCapabilities","useCapability","useIntentDispatcher","useIntentResolver","useLayout","usePluginManager","useSurfaces"],"inputs":{"packages/sdk/app-framework/src/react/PluginManagerProvider.ts":{"bytesInOutput":312},"packages/sdk/app-framework/src/react/useCapabilities.ts":{"bytesInOutput":727},"packages/sdk/app-framework/src/react/common.ts":{"bytesInOutput":198},"packages/sdk/app-framework/src/react/ErrorBoundary.tsx":{"bytesInOutput":705},"packages/sdk/app-framework/src/react/Surface.tsx":{"bytesInOutput":2020},"packages/sdk/app-framework/src/react/useIntentResolver.ts":{"bytesInOutput":414},"packages/sdk/app-framework/src/react/index.ts":{"bytesInOutput":0},"packages/sdk/app-framework/src/App.tsx":{"bytesInOutput":6358},"packages/sdk/app-framework/src/helpers.ts":{"bytesInOutput":1049}},"bytes":12632},"packages/sdk/app-framework/dist/lib/browser/worker.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/sdk/app-framework/dist/lib/browser/worker.mjs":{"imports":[{"path":"packages/sdk/app-framework/dist/lib/browser/chunk-EHM4UI3V.mjs","kind":"import-statement"}],"exports":["Capabilities","CollaborationActions","Events","FileInfoSchema","INTENT_ACTION","INTENT_PLUGIN","IntentAction","IntentPlugin","LAYOUT_ACTION","LAYOUT_PLUGIN","Label","LayoutAction","Plugin","PluginContext","PluginManager","PluginModule","Resource","ResourceKey","ResourceLanguage","allOf","chain","contributes","createDispatcher","createIntent","createResolver","createSurface","defaultFileTypes","defineCapability","defineEvent","defineModule","definePlugin","eventKey","getEvents","isAllOf","isOneOf","lazy","oneOf"],"entryPoint":"packages/sdk/app-framework/src/worker.ts","inputs":{"packages/sdk/app-framework/src/worker.ts":{"bytesInOutput":0}},"bytes":1196},"packages/sdk/app-framework/dist/lib/browser/intent-dispatcher-XVBOMF2Y.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/sdk/app-framework/dist/lib/browser/intent-dispatcher-XVBOMF2Y.mjs":{"imports":[{"path":"packages/sdk/app-framework/dist/lib/browser/chunk-EHM4UI3V.mjs","kind":"import-statement"}],"exports":["createDispatcher","createResolver","default"],"entryPoint":"packages/sdk/app-framework/src/plugin-intent/intent-dispatcher.ts","inputs":{},"bytes":251},"packages/sdk/app-framework/dist/lib/browser/store-5H7XPJGA.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2187},"packages/sdk/app-framework/dist/lib/browser/store-5H7XPJGA.mjs":{"imports":[{"path":"packages/sdk/app-framework/dist/lib/browser/chunk-EHM4UI3V.mjs","kind":"import-statement"},{"path":"@dxos/local-storage","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/sdk/app-framework/src/plugin-settings/store.ts","inputs":{"packages/sdk/app-framework/src/plugin-settings/store.ts":{"bytesInOutput":811}},"bytes":1024},"packages/sdk/app-framework/dist/lib/browser/intent-resolver-3QMBXLIY.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1819},"packages/sdk/app-framework/dist/lib/browser/intent-resolver-3QMBXLIY.mjs":{"imports":[{"path":"packages/sdk/app-framework/dist/lib/browser/chunk-WWEJRWFX.mjs","kind":"import-statement"},{"path":"packages/sdk/app-framework/dist/lib/browser/chunk-EHM4UI3V.mjs","kind":"import-statement"},{"path":"effect","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/sdk/app-framework/src/plugin-settings/intent-resolver.ts","inputs":{"packages/sdk/app-framework/src/plugin-settings/intent-resolver.ts":{"bytesInOutput":577}},"bytes":967},"packages/sdk/app-framework/dist/lib/browser/app-graph-builder-BI4VVKSW.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":9867},"packages/sdk/app-framework/dist/lib/browser/app-graph-builder-BI4VVKSW.mjs":{"imports":[{"path":"packages/sdk/app-framework/dist/lib/browser/chunk-WWEJRWFX.mjs","kind":"import-statement"},{"path":"packages/sdk/app-framework/dist/lib/browser/chunk-EHM4UI3V.mjs","kind":"import-statement"},{"path":"@effect-rx/rx-react","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/app-graph","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/sdk/app-framework/src/plugin-settings/app-graph-builder.ts","inputs":{"packages/sdk/app-framework/src/plugin-settings/app-graph-builder.ts":{"bytesInOutput":4285}},"bytes":4657},"packages/sdk/app-framework/dist/lib/browser/chunk-WWEJRWFX.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1718},"packages/sdk/app-framework/dist/lib/browser/chunk-WWEJRWFX.mjs":{"imports":[{"path":"effect","kind":"import-statement","external":true}],"exports":["SETTINGS_ACTION","SETTINGS_ID","SETTINGS_KEY","SETTINGS_PLUGIN","SettingsAction"],"inputs":{"packages/sdk/app-framework/src/plugin-settings/actions.ts":{"bytesInOutput":731}},"bytes":935},"packages/sdk/app-framework/dist/lib/browser/chunk-EHM4UI3V.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":108000},"packages/sdk/app-framework/dist/lib/browser/chunk-EHM4UI3V.mjs":{"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@effect-rx/rx-react","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@effect-rx/rx-react","kind":"import-statement","external":true},{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"packages/sdk/app-framework/dist/lib/browser/intent-dispatcher-XVBOMF2Y.mjs","kind":"dynamic-import"},{"path":"effect","kind":"import-statement","external":true}],"exports":["Capabilities","CollaborationActions","Events","FileInfoSchema","INTENT_ACTION","INTENT_PLUGIN","IntentAction","IntentPlugin","LAYOUT_ACTION","LAYOUT_PLUGIN","Label","LayoutAction","Plugin","PluginContext","PluginManager","PluginModule","Resource","ResourceKey","ResourceLanguage","allOf","chain","contributes","createDispatcher","createIntent","createResolver","createSurface","defaultFileTypes","defineCapability","defineEvent","defineModule","definePlugin","eventKey","getEvents","intent_dispatcher_default","isAllOf","isOneOf","lazy","oneOf"],"inputs":{"packages/sdk/app-framework/src/plugin-intent/intent-dispatcher.ts":{"bytesInOutput":5264},"packages/sdk/app-framework/src/plugin-intent/actions.ts":{"bytesInOutput":699},"packages/sdk/app-framework/src/plugin-intent/intent.ts":{"bytesInOutput":888},"packages/sdk/app-framework/src/plugin-intent/errors.ts":{"bytesInOutput":654},"packages/sdk/app-framework/src/core/capabilities.ts":{"bytesInOutput":5180},"packages/sdk/app-framework/src/core/index.ts":{"bytesInOutput":0},"packages/sdk/app-framework/src/core/events.ts":{"bytesInOutput":512},"packages/sdk/app-framework/src/core/manager.ts":{"bytesInOutput":14928},"packages/sdk/app-framework/src/core/plugin.ts":{"bytesInOutput":516},"packages/sdk/app-framework/src/common/capabilities.ts":{"bytesInOutput":2044},"packages/sdk/app-framework/src/common/index.ts":{"bytesInOutput":0},"packages/sdk/app-framework/src/common/collaboration.ts":{"bytesInOutput":687},"packages/sdk/app-framework/src/common/events.ts":{"bytesInOutput":1232},"packages/sdk/app-framework/src/common/file.ts":{"bytesInOutput":408},"packages/sdk/app-framework/src/common/layout.ts":{"bytesInOutput":12360},"packages/sdk/app-framework/src/plugin-intent/index.ts":{"bytesInOutput":0},"packages/sdk/app-framework/src/plugin-intent/IntentPlugin.ts":{"bytesInOutput":620},"packages/sdk/app-framework/src/common/surface.ts":{"bytesInOutput":48},"packages/sdk/app-framework/src/common/translations.ts":{"bytesInOutput":331}},"bytes":48094}}}
1
+ {"inputs":{"src/core/capabilities.ts":{"bytes":23767,"imports":[{"path":"@effect-rx/rx-react","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"src/core/events.ts":{"bytes":5358,"imports":[],"format":"esm"},"src/core/manager.ts":{"bytes":55028,"imports":[{"path":"@effect-rx/rx-react","kind":"import-statement","external":true},{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"src/core/capabilities.ts","kind":"import-statement","original":"./capabilities"},{"path":"src/core/events.ts","kind":"import-statement","original":"./events"}],"format":"esm"},"src/core/plugin.ts":{"bytes":7283,"imports":[],"format":"esm"},"src/core/index.ts":{"bytes":725,"imports":[{"path":"src/core/capabilities.ts","kind":"import-statement","original":"./capabilities"},{"path":"src/core/events.ts","kind":"import-statement","original":"./events"},{"path":"src/core/manager.ts","kind":"import-statement","original":"./manager"},{"path":"src/core/plugin.ts","kind":"import-statement","original":"./plugin"}],"format":"esm"},"src/common/capabilities.ts":{"bytes":10623,"imports":[{"path":"src/core/index.ts","kind":"import-statement","original":"../core"}],"format":"esm"},"src/common/collaboration.ts":{"bytes":2656,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true}],"format":"esm"},"src/common/events.ts":{"bytes":5579,"imports":[{"path":"src/common/capabilities.ts","kind":"import-statement","original":"./capabilities"},{"path":"src/core/index.ts","kind":"import-statement","original":"../core"}],"format":"esm"},"src/common/file.ts":{"bytes":2495,"imports":[{"path":"effect","kind":"import-statement","external":true}],"format":"esm"},"src/plugin-intent/intent.ts":{"bytes":10028,"imports":[{"path":"effect","kind":"import-statement","external":true}],"format":"esm"},"src/plugin-intent/actions.ts":{"bytes":3329,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"src/plugin-intent/intent.ts","kind":"import-statement","original":"./intent"}],"format":"esm"},"src/plugin-intent/errors.ts":{"bytes":3753,"imports":[],"format":"esm"},"src/plugin-intent/intent-dispatcher.ts":{"bytes":30764,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"src/plugin-intent/actions.ts","kind":"import-statement","original":"./actions"},{"path":"src/plugin-intent/errors.ts","kind":"import-statement","original":"./errors"},{"path":"src/plugin-intent/intent.ts","kind":"import-statement","original":"./intent"},{"path":"src/common/index.ts","kind":"import-statement","original":"../common"},{"path":"src/core/index.ts","kind":"import-statement","original":"../core"}],"format":"esm"},"src/plugin-intent/IntentPlugin.ts":{"bytes":2991,"imports":[{"path":"src/plugin-intent/actions.ts","kind":"import-statement","original":"./actions"},{"path":"src/common/index.ts","kind":"import-statement","original":"../common"},{"path":"src/core/index.ts","kind":"import-statement","original":"../core"},{"path":"src/plugin-intent/intent-dispatcher.ts","kind":"dynamic-import","original":"./intent-dispatcher"}],"format":"esm"},"src/plugin-intent/index.ts":{"bytes":761,"imports":[{"path":"src/plugin-intent/actions.ts","kind":"import-statement","original":"./actions"},{"path":"src/plugin-intent/intent.ts","kind":"import-statement","original":"./intent"},{"path":"src/plugin-intent/intent-dispatcher.ts","kind":"import-statement","original":"./intent-dispatcher"},{"path":"src/plugin-intent/IntentPlugin.ts","kind":"import-statement","original":"./IntentPlugin"}],"format":"esm"},"src/common/layout.ts":{"bytes":42696,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"src/plugin-intent/index.ts","kind":"import-statement","original":"../plugin-intent"}],"format":"esm"},"src/common/surface.ts":{"bytes":4114,"imports":[],"format":"esm"},"src/common/translations.ts":{"bytes":2211,"imports":[{"path":"effect","kind":"import-statement","external":true}],"format":"esm"},"src/common/index.ts":{"bytes":1048,"imports":[{"path":"src/common/capabilities.ts","kind":"import-statement","original":"./capabilities"},{"path":"src/common/collaboration.ts","kind":"import-statement","original":"./collaboration"},{"path":"src/common/events.ts","kind":"import-statement","original":"./events"},{"path":"src/common/file.ts","kind":"import-statement","original":"./file"},{"path":"src/common/layout.ts","kind":"import-statement","original":"./layout"},{"path":"src/common/surface.ts","kind":"import-statement","original":"./surface"},{"path":"src/common/translations.ts","kind":"import-statement","original":"./translations"}],"format":"esm"},"src/helpers.ts":{"bytes":4985,"imports":[],"format":"esm"},"src/react/PluginManagerProvider.ts":{"bytes":2017,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true}],"format":"esm"},"src/react/useCapabilities.ts":{"bytes":3264,"imports":[{"path":"@effect-rx/rx-react","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"src/react/PluginManagerProvider.ts","kind":"import-statement","original":"./PluginManagerProvider"}],"format":"esm"},"src/react/common.ts":{"bytes":1560,"imports":[{"path":"src/react/useCapabilities.ts","kind":"import-statement","original":"./useCapabilities"},{"path":"src/common/index.ts","kind":"import-statement","original":"../common"}],"format":"esm"},"src/react/ErrorBoundary.tsx":{"bytes":4370,"imports":[{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"src/react/Surface.tsx":{"bytes":10694,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"src/react/ErrorBoundary.tsx","kind":"import-statement","original":"./ErrorBoundary"},{"path":"src/react/useCapabilities.ts","kind":"import-statement","original":"./useCapabilities"},{"path":"src/common/index.ts","kind":"import-statement","original":"../common"}],"format":"esm"},"src/react/useIntentResolver.ts":{"bytes":2465,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"src/common/index.ts","kind":"import-statement","original":"../common"},{"path":"src/react/index.ts","kind":"import-statement","original":"../react"}],"format":"esm"},"src/react/index.ts":{"bytes":982,"imports":[{"path":"src/react/common.ts","kind":"import-statement","original":"./common"},{"path":"src/react/ErrorBoundary.tsx","kind":"import-statement","original":"./ErrorBoundary"},{"path":"src/react/PluginManagerProvider.ts","kind":"import-statement","original":"./PluginManagerProvider"},{"path":"src/react/Surface.tsx","kind":"import-statement","original":"./Surface"},{"path":"src/react/useCapabilities.ts","kind":"import-statement","original":"./useCapabilities"},{"path":"src/react/useIntentResolver.ts","kind":"import-statement","original":"./useIntentResolver"}],"format":"esm"},"src/App.tsx":{"bytes":29896,"imports":[{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"@effect-rx/rx-react","kind":"import-statement","external":true},{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"src/common/index.ts","kind":"import-statement","original":"./common"},{"path":"src/core/index.ts","kind":"import-statement","original":"./core"},{"path":"src/helpers.ts","kind":"import-statement","original":"./helpers"},{"path":"src/react/index.ts","kind":"import-statement","original":"./react"}],"format":"esm"},"src/plugin-settings/actions.ts":{"bytes":3514,"imports":[{"path":"effect","kind":"import-statement","external":true}],"format":"esm"},"src/plugin-settings/translations.ts":{"bytes":1470,"imports":[{"path":"src/plugin-settings/actions.ts","kind":"import-statement","original":"./actions"}],"format":"esm"},"src/plugin-settings/store.ts":{"bytes":4056,"imports":[{"path":"@dxos/local-storage","kind":"import-statement","external":true},{"path":"src/common/index.ts","kind":"import-statement","original":"../common"},{"path":"src/core/index.ts","kind":"import-statement","original":"../core"}],"format":"esm"},"src/plugin-settings/intent-resolver.ts":{"bytes":3773,"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"src/plugin-settings/actions.ts","kind":"import-statement","original":"./actions"},{"path":"src/common/index.ts","kind":"import-statement","original":"../common"},{"path":"src/core/index.ts","kind":"import-statement","original":"../core"},{"path":"src/plugin-intent/index.ts","kind":"import-statement","original":"../plugin-intent"}],"format":"esm"},"src/plugin-settings/app-graph-builder.ts":{"bytes":20627,"imports":[{"path":"@effect-rx/rx-react","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/app-graph","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"src/plugin-settings/actions.ts","kind":"import-statement","original":"./actions"},{"path":"src/common/index.ts","kind":"import-statement","original":"../common"},{"path":"src/core/index.ts","kind":"import-statement","original":"../core"},{"path":"src/plugin-intent/index.ts","kind":"import-statement","original":"../plugin-intent"}],"format":"esm"},"src/plugin-settings/SettingsPlugin.ts":{"bytes":4859,"imports":[{"path":"src/plugin-settings/actions.ts","kind":"import-statement","original":"./actions"},{"path":"src/plugin-settings/translations.ts","kind":"import-statement","original":"./translations"},{"path":"src/common/index.ts","kind":"import-statement","original":"../common"},{"path":"src/core/index.ts","kind":"import-statement","original":"../core"},{"path":"src/plugin-settings/store.ts","kind":"dynamic-import","original":"./store"},{"path":"src/plugin-settings/intent-resolver.ts","kind":"dynamic-import","original":"./intent-resolver"},{"path":"src/plugin-settings/app-graph-builder.ts","kind":"dynamic-import","original":"./app-graph-builder"}],"format":"esm"},"src/plugin-settings/index.ts":{"bytes":574,"imports":[{"path":"src/plugin-settings/actions.ts","kind":"import-statement","original":"./actions"},{"path":"src/plugin-settings/SettingsPlugin.ts","kind":"import-statement","original":"./SettingsPlugin"}],"format":"esm"},"src/index.ts":{"bytes":895,"imports":[{"path":"src/App.tsx","kind":"import-statement","original":"./App"},{"path":"src/common/index.ts","kind":"import-statement","original":"./common"},{"path":"src/core/index.ts","kind":"import-statement","original":"./core"},{"path":"src/plugin-intent/index.ts","kind":"import-statement","original":"./plugin-intent"},{"path":"src/plugin-settings/index.ts","kind":"import-statement","original":"./plugin-settings"},{"path":"src/react/index.ts","kind":"import-statement","original":"./react"}],"format":"esm"},"src/testing/withPluginManager.tsx":{"bytes":11142,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"src/App.tsx","kind":"import-statement","original":"../App"},{"path":"src/common/index.ts","kind":"import-statement","original":"../common"},{"path":"src/core/index.ts","kind":"import-statement","original":"../core"}],"format":"esm"},"src/testing/index.ts":{"bytes":486,"imports":[{"path":"src/testing/withPluginManager.tsx","kind":"import-statement","original":"./withPluginManager"}],"format":"esm"},"src/worker.ts":{"bytes":1234,"imports":[{"path":"src/core/index.ts","kind":"import-statement","original":"./core"},{"path":"src/common/index.ts","kind":"import-statement","original":"./common"},{"path":"src/plugin-intent/index.ts","kind":"import-statement","original":"./plugin-intent"}],"format":"esm"}},"outputs":{"dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2946},"dist/lib/browser/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-FO2PH7M3.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-ORWHM7CO.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-FMN65HSW.mjs","kind":"import-statement"},{"path":"dist/lib/browser/store-KML2R4IE.mjs","kind":"dynamic-import"},{"path":"dist/lib/browser/intent-resolver-ZTNOSO3A.mjs","kind":"dynamic-import"},{"path":"dist/lib/browser/app-graph-builder-LYF7EKNN.mjs","kind":"dynamic-import"}],"exports":["Capabilities","CollaborationActions","ErrorBoundary","Events","FileInfoSchema","INTENT_ACTION","INTENT_PLUGIN","IntentAction","IntentPlugin","LAYOUT_ACTION","LAYOUT_PLUGIN","Label","LayoutAction","Plugin","PluginContext","PluginManager","PluginManagerProvider","PluginModule","Resource","ResourceKey","ResourceLanguage","SETTINGS_ACTION","SETTINGS_ID","SETTINGS_KEY","SETTINGS_PLUGIN","SettingsAction","SettingsPlugin","Surface","allOf","chain","contributes","createDispatcher","createIntent","createResolver","createSurface","defaultFileTypes","defineCapability","defineEvent","defineModule","definePlugin","eventKey","getEvents","isAllOf","isOneOf","isSurfaceAvailable","lazy","oneOf","useApp","useAppGraph","useCapabilities","useCapability","useIntentDispatcher","useIntentResolver","useLayout","usePluginManager","useSurfaces"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":0},"src/plugin-settings/index.ts":{"bytesInOutput":0},"src/plugin-settings/translations.ts":{"bytesInOutput":220},"src/plugin-settings/SettingsPlugin.ts":{"bytesInOutput":924}},"bytes":3147},"dist/lib/browser/testing/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":5761},"dist/lib/browser/testing/index.mjs":{"imports":[{"path":"dist/lib/browser/chunk-FO2PH7M3.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-FMN65HSW.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true}],"exports":["getValue","setupPluginManager","withPluginManager"],"entryPoint":"src/testing/index.ts","inputs":{"src/testing/withPluginManager.tsx":{"bytesInOutput":2198},"src/testing/index.ts":{"bytesInOutput":0}},"bytes":2517},"dist/lib/browser/chunk-FO2PH7M3.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":29269},"dist/lib/browser/chunk-FO2PH7M3.mjs":{"imports":[{"path":"dist/lib/browser/chunk-FMN65HSW.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@effect-rx/rx-react","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-hooks","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@preact-signals/safe-react/tracking","kind":"import-statement","external":true},{"path":"@effect-rx/rx-react","kind":"import-statement","external":true},{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"@dxos/react-hooks","kind":"import-statement","external":true}],"exports":["ErrorBoundary","PluginManagerProvider","Surface","isSurfaceAvailable","useApp","useAppGraph","useCapabilities","useCapability","useIntentDispatcher","useIntentResolver","useLayout","usePluginManager","useSurfaces"],"inputs":{"src/react/PluginManagerProvider.ts":{"bytesInOutput":312},"src/react/useCapabilities.ts":{"bytesInOutput":714},"src/react/common.ts":{"bytesInOutput":198},"src/react/ErrorBoundary.tsx":{"bytesInOutput":705},"src/react/Surface.tsx":{"bytesInOutput":2020},"src/react/useIntentResolver.ts":{"bytesInOutput":414},"src/react/index.ts":{"bytesInOutput":0},"src/App.tsx":{"bytesInOutput":6555},"src/helpers.ts":{"bytesInOutput":1049}},"bytes":12573},"dist/lib/browser/worker.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/browser/worker.mjs":{"imports":[{"path":"dist/lib/browser/chunk-FMN65HSW.mjs","kind":"import-statement"}],"exports":["Capabilities","CollaborationActions","Events","FileInfoSchema","INTENT_ACTION","INTENT_PLUGIN","IntentAction","IntentPlugin","LAYOUT_ACTION","LAYOUT_PLUGIN","Label","LayoutAction","Plugin","PluginContext","PluginManager","PluginModule","Resource","ResourceKey","ResourceLanguage","allOf","chain","contributes","createDispatcher","createIntent","createResolver","createSurface","defaultFileTypes","defineCapability","defineEvent","defineModule","definePlugin","eventKey","getEvents","isAllOf","isOneOf","lazy","oneOf"],"entryPoint":"src/worker.ts","inputs":{"src/worker.ts":{"bytesInOutput":0}},"bytes":1196},"dist/lib/browser/intent-dispatcher-LSYQZSEB.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/lib/browser/intent-dispatcher-LSYQZSEB.mjs":{"imports":[{"path":"dist/lib/browser/chunk-FMN65HSW.mjs","kind":"import-statement"}],"exports":["createDispatcher","createResolver","default"],"entryPoint":"src/plugin-intent/intent-dispatcher.ts","inputs":{},"bytes":251},"dist/lib/browser/store-KML2R4IE.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2187},"dist/lib/browser/store-KML2R4IE.mjs":{"imports":[{"path":"dist/lib/browser/chunk-FMN65HSW.mjs","kind":"import-statement"},{"path":"@dxos/local-storage","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/plugin-settings/store.ts","inputs":{"src/plugin-settings/store.ts":{"bytesInOutput":811}},"bytes":997},"dist/lib/browser/intent-resolver-ZTNOSO3A.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1819},"dist/lib/browser/intent-resolver-ZTNOSO3A.mjs":{"imports":[{"path":"dist/lib/browser/chunk-ORWHM7CO.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-FMN65HSW.mjs","kind":"import-statement"},{"path":"effect","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/plugin-settings/intent-resolver.ts","inputs":{"src/plugin-settings/intent-resolver.ts":{"bytesInOutput":577}},"bytes":940},"dist/lib/browser/app-graph-builder-LYF7EKNN.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":9867},"dist/lib/browser/app-graph-builder-LYF7EKNN.mjs":{"imports":[{"path":"dist/lib/browser/chunk-ORWHM7CO.mjs","kind":"import-statement"},{"path":"dist/lib/browser/chunk-FMN65HSW.mjs","kind":"import-statement"},{"path":"@effect-rx/rx-react","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/app-graph","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"src/plugin-settings/app-graph-builder.ts","inputs":{"src/plugin-settings/app-graph-builder.ts":{"bytesInOutput":4285}},"bytes":4630},"dist/lib/browser/chunk-ORWHM7CO.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1718},"dist/lib/browser/chunk-ORWHM7CO.mjs":{"imports":[{"path":"effect","kind":"import-statement","external":true}],"exports":["SETTINGS_ACTION","SETTINGS_ID","SETTINGS_KEY","SETTINGS_PLUGIN","SettingsAction"],"inputs":{"src/plugin-settings/actions.ts":{"bytesInOutput":731}},"bytes":908},"dist/lib/browser/chunk-FMN65HSW.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":108272},"dist/lib/browser/chunk-FMN65HSW.mjs":{"imports":[{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@effect-rx/rx-react","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"@effect-rx/rx-react","kind":"import-statement","external":true},{"path":"@preact/signals-core","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/async","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"effect","kind":"import-statement","external":true},{"path":"dist/lib/browser/intent-dispatcher-LSYQZSEB.mjs","kind":"dynamic-import"},{"path":"effect","kind":"import-statement","external":true}],"exports":["Capabilities","CollaborationActions","Events","FileInfoSchema","INTENT_ACTION","INTENT_PLUGIN","IntentAction","IntentPlugin","LAYOUT_ACTION","LAYOUT_PLUGIN","Label","LayoutAction","Plugin","PluginContext","PluginManager","PluginModule","Resource","ResourceKey","ResourceLanguage","allOf","chain","contributes","createDispatcher","createIntent","createResolver","createSurface","defaultFileTypes","defineCapability","defineEvent","defineModule","definePlugin","eventKey","getEvents","intent_dispatcher_default","isAllOf","isOneOf","lazy","oneOf"],"inputs":{"src/plugin-intent/intent-dispatcher.ts":{"bytesInOutput":5251},"src/plugin-intent/actions.ts":{"bytesInOutput":699},"src/plugin-intent/intent.ts":{"bytesInOutput":888},"src/plugin-intent/errors.ts":{"bytesInOutput":654},"src/core/capabilities.ts":{"bytesInOutput":5167},"src/core/index.ts":{"bytesInOutput":0},"src/core/events.ts":{"bytesInOutput":512},"src/core/manager.ts":{"bytesInOutput":14915},"src/core/plugin.ts":{"bytesInOutput":516},"src/common/capabilities.ts":{"bytesInOutput":2137},"src/common/index.ts":{"bytesInOutput":0},"src/common/collaboration.ts":{"bytesInOutput":687},"src/common/events.ts":{"bytesInOutput":1232},"src/common/file.ts":{"bytesInOutput":408},"src/common/layout.ts":{"bytesInOutput":12360},"src/plugin-intent/index.ts":{"bytesInOutput":0},"src/plugin-intent/IntentPlugin.ts":{"bytesInOutput":620},"src/common/surface.ts":{"bytesInOutput":48},"src/common/translations.ts":{"bytesInOutput":331}},"bytes":47635}}}
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  Capabilities,
3
3
  contributes
4
- } from "./chunk-EHM4UI3V.mjs";
4
+ } from "./chunk-FMN65HSW.mjs";
5
5
 
6
- // packages/sdk/app-framework/src/plugin-settings/store.ts
6
+ // src/plugin-settings/store.ts
7
7
  import { RootSettingsStore } from "@dxos/local-storage";
8
8
  var store_default = (context) => {
9
9
  const settingsStore = new RootSettingsStore();
@@ -27,4 +27,4 @@ var store_default = (context) => {
27
27
  export {
28
28
  store_default as default
29
29
  };
30
- //# sourceMappingURL=store-5H7XPJGA.mjs.map
30
+ //# sourceMappingURL=store-KML2R4IE.mjs.map
@@ -1,6 +1,6 @@
1
1
  import {
2
2
  useApp
3
- } from "../chunk-DIBVO47Z.mjs";
3
+ } from "../chunk-FO2PH7M3.mjs";
4
4
  import {
5
5
  Capabilities,
6
6
  Events,
@@ -8,9 +8,9 @@ import {
8
8
  contributes,
9
9
  defineModule,
10
10
  definePlugin
11
- } from "../chunk-EHM4UI3V.mjs";
11
+ } from "../chunk-FMN65HSW.mjs";
12
12
 
13
- // packages/sdk/app-framework/src/testing/withPluginManager.tsx
13
+ // src/testing/withPluginManager.tsx
14
14
  import React, { useEffect, useMemo } from "react";
15
15
  import { raise } from "@dxos/debug";
16
16
  var getValue = (providerOrValue, context) => {
@@ -36,7 +36,7 @@ import {
36
36
  isOneOf,
37
37
  lazy,
38
38
  oneOf
39
- } from "./chunk-EHM4UI3V.mjs";
39
+ } from "./chunk-FMN65HSW.mjs";
40
40
  export {
41
41
  Capabilities,
42
42
  CollaborationActions,
@@ -4,14 +4,14 @@ import {
4
4
  SETTINGS_KEY,
5
5
  SETTINGS_PLUGIN,
6
6
  SettingsAction
7
- } from "./chunk-I6BVZMAH.mjs";
7
+ } from "./chunk-UMZQERLE.mjs";
8
8
  import {
9
9
  Capabilities,
10
10
  contributes,
11
11
  createIntent
12
- } from "./chunk-2J6FVECI.mjs";
12
+ } from "./chunk-ZEZ4FVEU.mjs";
13
13
 
14
- // packages/sdk/app-framework/src/plugin-settings/app-graph-builder.ts
14
+ // src/plugin-settings/app-graph-builder.ts
15
15
  import { Rx } from "@effect-rx/rx-react";
16
16
  import { Option, pipe } from "effect";
17
17
  import { createExtension, ROOT_ID } from "@dxos/app-graph";
@@ -135,4 +135,4 @@ var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBu
135
135
  export {
136
136
  app_graph_builder_default as default
137
137
  };
138
- //# sourceMappingURL=app-graph-builder-NROP6RPQ.mjs.map
138
+ //# sourceMappingURL=app-graph-builder-SAOWGJDK.mjs.map
@@ -3,19 +3,19 @@ import {
3
3
  Capabilities,
4
4
  Events,
5
5
  PluginManager
6
- } from "./chunk-2J6FVECI.mjs";
6
+ } from "./chunk-ZEZ4FVEU.mjs";
7
7
 
8
- // packages/sdk/app-framework/src/react/PluginManagerProvider.ts
8
+ // src/react/PluginManagerProvider.ts
9
9
  import { createContext, useContext } from "react";
10
10
  import { raise } from "@dxos/debug";
11
11
  var PluginManagerContext = createContext(void 0);
12
12
  var usePluginManager = () => useContext(PluginManagerContext) ?? raise(new Error("Missing PluginManagerContext"));
13
13
  var PluginManagerProvider = PluginManagerContext.Provider;
14
14
 
15
- // packages/sdk/app-framework/src/react/useCapabilities.ts
15
+ // src/react/useCapabilities.ts
16
16
  import { useRxValue } from "@effect-rx/rx-react";
17
17
  import { invariant } from "@dxos/invariant";
18
- var __dxlog_file = "/home/runner/work/dxos/dxos/packages/sdk/app-framework/src/react/useCapabilities.ts";
18
+ var __dxlog_file = "/__w/dxos/dxos/packages/sdk/app-framework/src/react/useCapabilities.ts";
19
19
  var useCapabilities = (interfaceDef) => {
20
20
  const manager = usePluginManager();
21
21
  return useRxValue(manager.context.capabilities(interfaceDef));
@@ -34,12 +34,12 @@ var useCapability = (interfaceDef) => {
34
34
  return capabilities[0];
35
35
  };
36
36
 
37
- // packages/sdk/app-framework/src/react/common.ts
37
+ // src/react/common.ts
38
38
  var useIntentDispatcher = () => useCapability(Capabilities.IntentDispatcher);
39
39
  var useAppGraph = () => useCapability(Capabilities.AppGraph);
40
40
  var useLayout = () => useCapability(Capabilities.Layout);
41
41
 
42
- // packages/sdk/app-framework/src/react/ErrorBoundary.tsx
42
+ // src/react/ErrorBoundary.tsx
43
43
  import React, { Component } from "react";
44
44
  var ErrorBoundary = class extends Component {
45
45
  constructor(props) {
@@ -75,7 +75,7 @@ var ErrorBoundary = class extends Component {
75
75
  }
76
76
  };
77
77
 
78
- // packages/sdk/app-framework/src/react/Surface.tsx
78
+ // src/react/Surface.tsx
79
79
  import { useSignals as _useSignals } from "@preact-signals/safe-react/tracking";
80
80
  import React2, { memo, forwardRef, Suspense, useMemo, Fragment } from "react";
81
81
  import { useDefaultValue } from "@dxos/react-hooks";
@@ -130,7 +130,7 @@ var Surface = /* @__PURE__ */ memo(/* @__PURE__ */ forwardRef(({ id: _id, role,
130
130
  }));
131
131
  Surface.displayName = "Surface";
132
132
 
133
- // packages/sdk/app-framework/src/react/useIntentResolver.ts
133
+ // src/react/useIntentResolver.ts
134
134
  import { useEffect } from "react";
135
135
  var useIntentResolver = (module, resolver) => {
136
136
  const manager = usePluginManager();
@@ -147,7 +147,7 @@ var useIntentResolver = (module, resolver) => {
147
147
  ]);
148
148
  };
149
149
 
150
- // packages/sdk/app-framework/src/App.tsx
150
+ // src/App.tsx
151
151
  import { useSignals as _useSignals2 } from "@preact-signals/safe-react/tracking";
152
152
  import { RegistryContext } from "@effect-rx/rx-react";
153
153
  import { effect } from "@preact/signals-core";
@@ -156,7 +156,7 @@ import { invariant as invariant2 } from "@dxos/invariant";
156
156
  import { live } from "@dxos/live-object";
157
157
  import { useDefaultValue as useDefaultValue2 } from "@dxos/react-hooks";
158
158
 
159
- // packages/sdk/app-framework/src/helpers.ts
159
+ // src/helpers.ts
160
160
  var topologicalSort = (nodes) => {
161
161
  const getDependencies = (nodeId, seen = /* @__PURE__ */ new Set(), path = /* @__PURE__ */ new Set()) => {
162
162
  if (path.has(nodeId)) {
@@ -187,8 +187,8 @@ var topologicalSort = (nodes) => {
187
187
  return allDependencies.map((id) => nodes.find((node) => node.id === id)).filter((node) => node !== void 0);
188
188
  };
189
189
 
190
- // packages/sdk/app-framework/src/App.tsx
191
- var __dxlog_file2 = "/home/runner/work/dxos/dxos/packages/sdk/app-framework/src/App.tsx";
190
+ // src/App.tsx
191
+ var __dxlog_file2 = "/__w/dxos/dxos/packages/sdk/app-framework/src/App.tsx";
192
192
  var ENABLED_KEY = "dxos.org/app-framework/enabled";
193
193
  var useApp = ({ pluginManager, pluginLoader: _pluginLoader, plugins: _plugins, core: _core, defaults: _defaults, placeholder, fallback = DefaultFallback, cacheEnabled = false, safeMode = false }) => {
194
194
  const plugins = useDefaultValue2(_plugins, () => []);
@@ -365,15 +365,24 @@ var DefaultFallback = ({ error }) => {
365
365
  try {
366
366
  return /* @__PURE__ */ React3.createElement("div", {
367
367
  style: {
368
- padding: "1rem"
368
+ margin: "0.5rem",
369
+ padding: "1rem",
370
+ overflow: "hidden",
371
+ border: "1px solid red"
369
372
  }
370
373
  }, /* @__PURE__ */ React3.createElement("h1", {
371
374
  style: {
372
- fontSize: "1.2rem",
373
- fontWeight: 700,
374
- margin: "0.5rem 0"
375
+ margin: "0.5rem 0",
376
+ fontSize: "1.2rem"
375
377
  }
376
- }, error.message), /* @__PURE__ */ React3.createElement("pre", null, error.stack));
378
+ }, "[ERROR]: ", error.message), /* @__PURE__ */ React3.createElement("pre", {
379
+ style: {
380
+ overflow: "auto",
381
+ fontSize: "1rem",
382
+ whiteSpace: "pre-wrap",
383
+ color: "#888888"
384
+ }
385
+ }, error.stack));
377
386
  } finally {
378
387
  _effect.f();
379
388
  }
@@ -404,4 +413,4 @@ export {
404
413
  useIntentResolver,
405
414
  useApp
406
415
  };
407
- //# sourceMappingURL=chunk-FHNZZWP4.mjs.map
416
+ //# sourceMappingURL=chunk-73HGSHKE.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/react/PluginManagerProvider.ts", "../../../src/react/useCapabilities.ts", "../../../src/react/common.ts", "../../../src/react/ErrorBoundary.tsx", "../../../src/react/Surface.tsx", "../../../src/react/useIntentResolver.ts", "../../../src/App.tsx", "../../../src/helpers.ts"],
4
- "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { createContext, useContext } from 'react';\n\nimport { raise } from '@dxos/debug';\n\nimport { type PluginManager } from '../core';\n\nconst PluginManagerContext = createContext<PluginManager | undefined>(undefined);\n\n/**\n * Get the plugin manager.\n */\nexport const usePluginManager = (): PluginManager =>\n useContext(PluginManagerContext) ?? raise(new Error('Missing PluginManagerContext'));\n\n/**\n * Context provider for a plugin manager.\n */\nexport const PluginManagerProvider = PluginManagerContext.Provider;\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useRxValue } from '@effect-rx/rx-react';\n\nimport { invariant } from '@dxos/invariant';\n\nimport { usePluginManager } from './PluginManagerProvider';\nimport { type InterfaceDef } from '../core';\n\n/**\n * Hook to request capabilities from the plugin context.\n * @returns An array of capabilities.\n */\nexport const useCapabilities = <T>(interfaceDef: InterfaceDef<T>) => {\n const manager = usePluginManager();\n return useRxValue(manager.context.capabilities(interfaceDef));\n};\n\n/**\n * Hook to request a capability from the plugin context.\n * @returns The capability.\n * @throws If no capability is found.\n */\nexport const useCapability = <T>(interfaceDef: InterfaceDef<T>) => {\n const capabilities = useCapabilities(interfaceDef);\n invariant(capabilities.length > 0, `No capability found for ${interfaceDef.identifier}`);\n return capabilities[0];\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useCapability } from './useCapabilities';\nimport { Capabilities } from '../common';\n\nexport const useIntentDispatcher = () => useCapability(Capabilities.IntentDispatcher);\n\nexport const useAppGraph = () => useCapability(Capabilities.AppGraph);\n\nexport const useLayout = () => useCapability(Capabilities.Layout);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { Component, type FC, type PropsWithChildren } from 'react';\n\ntype Props = PropsWithChildren<{ data?: any; fallback: FC<{ data?: any; error: Error; reset: () => void }> }>;\ntype State = { error: Error | undefined };\n\n/**\n * Surface error boundary.\n *\n * For basic usage prefer providing a fallback component to `Surface`.\n *\n * For more information on error boundaries, see:\n * https://react.dev/reference/react/Component#catching-rendering-errors-with-an-error-boundary\n */\nexport class ErrorBoundary extends Component<Props, State> {\n constructor(props: Props) {\n super(props);\n this.state = { error: undefined };\n }\n\n static getDerivedStateFromError(error: Error): { error: Error } {\n return { error };\n }\n\n override componentDidUpdate(prevProps: Props): void {\n if (prevProps.data !== this.props.data) {\n this.resetError();\n }\n }\n\n override render(): string | number | boolean | React.JSX.Element | Iterable<React.ReactNode> | null | undefined {\n if (this.state.error) {\n return <this.props.fallback data={this.props.data} error={this.state.error} reset={this.resetError} />;\n }\n\n return this.props.children;\n }\n\n private resetError(): void {\n this.setState({ error: undefined });\n }\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { memo, forwardRef, Suspense, useMemo, Fragment } from 'react';\n\nimport { useDefaultValue } from '@dxos/react-hooks';\nimport { byPosition } from '@dxos/util';\n\nimport { ErrorBoundary } from './ErrorBoundary';\nimport { useCapabilities } from './useCapabilities';\nimport { Capabilities, type SurfaceDefinition, type SurfaceProps } from '../common';\nimport { type PluginContext } from '../core';\n\nconst DEFAULT_PLACEHOLDER = <Fragment />;\n\n/**\n * @internal\n */\nexport const useSurfaces = () => {\n const surfaces = useCapabilities(Capabilities.ReactSurface);\n return useMemo(() => surfaces.flat(), [surfaces]);\n};\n\nconst findCandidates = (surfaces: SurfaceDefinition[], { role, data }: Pick<SurfaceProps, 'role' | 'data'>) => {\n return Object.values(surfaces)\n .filter((definition) =>\n Array.isArray(definition.role) ? definition.role.includes(role) : definition.role === role,\n )\n .filter(({ filter }) => (filter ? filter(data ?? {}) : true))\n .toSorted(byPosition);\n};\n\n/**\n * @returns `true` if there is a contributed surface which matches the specified role & data, `false` otherwise.\n */\nexport const isSurfaceAvailable = (context: PluginContext, { role, data }: Pick<SurfaceProps, 'role' | 'data'>) => {\n const surfaces = context.getCapabilities(Capabilities.ReactSurface);\n const candidates = findCandidates(surfaces.flat(), { role, data });\n return candidates.length > 0;\n};\n\n/**\n * A surface is a named region of the screen that can be populated by plugins.\n */\nexport const Surface = memo(\n forwardRef<HTMLElement, SurfaceProps>(\n ({ id: _id, role, data: _data, limit, fallback, placeholder = DEFAULT_PLACEHOLDER, ...rest }, forwardedRef) => {\n // TODO(wittjosiah): This will make all surfaces depend on a single signal.\n // This isn't ideal because it means that any change to the data will cause all surfaces to re-render.\n // This effectively means that plugin modules which contribute surfaces need to all be activated at startup.\n // This should be fine for now because it's how it worked prior to capabilities api anyways.\n // In the future, it would be nice to be able to bucket the surface contributions by role.\n const surfaces = useSurfaces();\n const data = useDefaultValue(_data, () => ({}));\n\n // NOTE: Memoizing the candidates makes the surface not re-render based on reactivity within data.\n const definitions = findCandidates(surfaces, { role, data });\n const candidates = limit ? definitions.slice(0, limit) : definitions;\n const nodes = candidates.map(({ component: Component, id }) => (\n <Component ref={forwardedRef} key={id} id={id} role={role} data={data} limit={limit} {...rest} />\n ));\n\n const suspense = <Suspense fallback={placeholder}>{nodes}</Suspense>;\n\n return fallback ? (\n <ErrorBoundary data={data} fallback={fallback}>\n {suspense}\n </ErrorBoundary>\n ) : (\n suspense\n );\n },\n ),\n);\n\nSurface.displayName = 'Surface';\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { useEffect } from 'react';\n\nimport { Capabilities } from '../common';\nimport { type AnyIntentResolver } from '../plugin-intent';\nimport { usePluginManager } from '../react';\n\nexport const useIntentResolver = (module: string, resolver: AnyIntentResolver) => {\n const manager = usePluginManager();\n useEffect(() => {\n manager.context.contributeCapability({\n module,\n interface: Capabilities.IntentResolver,\n implementation: resolver,\n });\n\n return () => manager.context.removeCapability(Capabilities.IntentResolver, resolver);\n }, [module, resolver]);\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { RegistryContext } from '@effect-rx/rx-react';\nimport { effect } from '@preact/signals-core';\nimport React, { useCallback, useEffect, useMemo, useState, type FC, type PropsWithChildren } from 'react';\n\nimport { invariant } from '@dxos/invariant';\nimport { live } from '@dxos/live-object';\nimport { useDefaultValue } from '@dxos/react-hooks';\n\nimport { Capabilities, Events } from './common';\nimport { PluginManager, type PluginManagerOptions, type Plugin } from './core';\nimport { topologicalSort } from './helpers';\nimport { ErrorBoundary, PluginManagerProvider, useCapabilities } from './react';\n\nconst ENABLED_KEY = 'dxos.org/app-framework/enabled';\n\nexport type CreateAppOptions = {\n pluginManager?: PluginManager;\n pluginLoader?: PluginManagerOptions['pluginLoader'];\n plugins?: Plugin[];\n core?: string[];\n defaults?: string[];\n placeholder?: FC<{ stage: number }>;\n fallback?: ErrorBoundary['props']['fallback'];\n cacheEnabled?: boolean;\n safeMode?: boolean;\n};\n\n/**\n * Expected usage is for this to be the entrypoint of the application.\n * Initializes plugins and renders the root components.\n *\n * @example\n * const plugins = [LayoutPlugin(), MyPlugin()];\n * const core = [LayoutPluginId];\n * const default = [MyPluginId];\n * const fallback = <div>Initializing Plugins...</div>;\n * const App = createApp({ plugins, core, default, fallback });\n * createRoot(document.getElementById('root')!).render(\n * <StrictMode>\n * <App />\n * </StrictMode>,\n * );\n *\n * @param params.pluginLoader A function which loads new plugins.\n * @param params.plugins All plugins available to the application.\n * @param params.core Core plugins which will always be enabled.\n * @param params.defaults Default plugins are enabled by default but can be disabled by the user.\n * @param params.placeholder Placeholder component to render during startup.\n * @param params.fallback Fallback component to render if an error occurs during startup.\n * @param params.cacheEnabled Whether to cache enabled plugins in localStorage.\n * @param params.safeMode Whether to enable safe mode, which disables optional plugins.\n */\nexport const useApp = ({\n pluginManager,\n pluginLoader: _pluginLoader,\n plugins: _plugins,\n core: _core,\n defaults: _defaults,\n placeholder,\n fallback = DefaultFallback,\n cacheEnabled = false,\n safeMode = false,\n}: CreateAppOptions) => {\n const plugins = useDefaultValue(_plugins, () => []);\n const core = useDefaultValue(_core, () => plugins.map(({ meta }) => meta.id));\n const defaults = useDefaultValue(_defaults, () => []);\n\n // TODO(wittjosiah): Provide a custom plugin loader which supports loading via url.\n const pluginLoader = useMemo(\n () =>\n _pluginLoader ??\n ((id: string) => {\n const plugin = plugins.find((plugin) => plugin.meta.id === id);\n invariant(plugin, `Plugin not found: ${id}`);\n return plugin;\n }),\n [_pluginLoader, plugins],\n );\n\n const state = useMemo(() => live({ ready: false, error: null }), []);\n const cached: string[] = useMemo(() => JSON.parse(localStorage.getItem(ENABLED_KEY) ?? '[]'), []);\n const enabled = useMemo(\n () => (safeMode ? [] : cacheEnabled && cached.length > 0 ? cached : defaults),\n [safeMode, cacheEnabled, cached, defaults],\n );\n const manager = useMemo(\n () => pluginManager ?? new PluginManager({ pluginLoader, plugins, core, enabled }),\n [pluginManager, pluginLoader, plugins, core, enabled],\n );\n\n useEffect(() => {\n return manager.activation.on(({ event, state: _state, error }) => {\n // Once the app is ready the first time, don't show the fallback again.\n if (!state.ready && event === Events.Startup.id) {\n state.ready = _state === 'activated';\n }\n\n if (error && !state.ready && !state.error) {\n state.error = error;\n }\n });\n }, [manager, state]);\n\n useEffect(() => {\n effect(() => {\n cacheEnabled && localStorage.setItem(ENABLED_KEY, JSON.stringify(manager.enabled));\n });\n }, [cacheEnabled, manager]);\n\n useEffect(() => {\n manager.context.contributeCapability({\n interface: Capabilities.PluginManager,\n implementation: manager,\n module: 'dxos.org/app-framework/plugin-manager',\n });\n\n manager.context.contributeCapability({\n interface: Capabilities.RxRegistry,\n implementation: manager.registry,\n module: 'dxos.org/app-framework/rx-registry',\n });\n\n return () => {\n manager.context.removeCapability(Capabilities.PluginManager, manager);\n manager.context.removeCapability(Capabilities.RxRegistry, manager.registry);\n };\n }, [manager]);\n\n useEffect(() => {\n setupDevtools(manager);\n }, [manager]);\n\n useEffect(() => {\n const timeout = setTimeout(async () => {\n await Promise.all([\n // TODO(wittjosiah): Factor out such that this could be called per surface role when attempting to render.\n manager.activate(Events.SetupReactSurface),\n manager.activate(Events.Startup),\n ]);\n });\n\n return () => clearTimeout(timeout);\n }, [manager]);\n\n return useCallback(\n () => (\n <ErrorBoundary fallback={fallback}>\n <PluginManagerProvider value={manager}>\n <RegistryContext.Provider value={manager.registry}>\n <App placeholder={placeholder} state={state} />\n </RegistryContext.Provider>\n </PluginManagerProvider>\n </ErrorBoundary>\n ),\n [fallback, manager, placeholder, state],\n );\n};\n\nconst DELAY_PLACEHOLDER = 2_000;\n\nenum LoadingState {\n Loading = 0,\n FadeIn = 1,\n FadeOut = 2,\n Done = 3,\n}\n\n/**\n * To avoid \"flashing\" the placeholder, we wait a period of time before starting the loading animation.\n * If loading completes during this time the placehoder is not shown, otherwise is it displayed for a minimum period of time.\n *\n * States:\n * 0: Loading - Wait for a period of time before starting the loading animation.\n * 1: Fade-in - Display a loading animation.\n * 2: Fade-out - Fade out the loading animation.\n * 3: Done - Remove the placeholder.\n */\nconst useLoading = (state: AppProps['state']) => {\n const [stage, setStage] = useState<LoadingState>(LoadingState.Loading);\n useEffect(() => {\n const i = setInterval(() => {\n setStage((tick) => {\n switch (tick) {\n case LoadingState.Loading:\n if (!state.ready) {\n return LoadingState.FadeIn;\n } else {\n clearInterval(i);\n return LoadingState.Done;\n }\n case LoadingState.FadeIn:\n if (state.ready) {\n return LoadingState.FadeOut;\n }\n break;\n case LoadingState.FadeOut:\n clearInterval(i);\n return LoadingState.Done;\n }\n\n return tick;\n });\n }, DELAY_PLACEHOLDER);\n\n return () => clearInterval(i);\n }, []);\n\n return stage;\n};\n\ntype AppProps = Pick<CreateAppOptions, 'placeholder'> & {\n state: { ready: boolean; error: unknown };\n};\n\nconst App = ({ placeholder: Placeholder, state }: AppProps) => {\n const reactContexts = useCapabilities(Capabilities.ReactContext);\n const reactRoots = useCapabilities(Capabilities.ReactRoot);\n const stage = useLoading(state);\n\n if (state.error) {\n // This triggers the error boundary to provide UI feedback for the startup error.\n throw state.error;\n }\n\n // TODO(wittjosiah): Consider using Suspense instead?\n if (stage < LoadingState.Done) {\n if (!Placeholder) {\n return null;\n }\n\n return <Placeholder stage={stage} />;\n }\n\n const ComposedContext = composeContexts(reactContexts);\n return (\n <ComposedContext>\n {reactRoots.map(({ id, root: Component }) => (\n <Component key={id} />\n ))}\n </ComposedContext>\n );\n};\n\n// Default fallback does not use tailwind or theme.\nconst DefaultFallback = ({ error }: { error: Error }) => {\n return (\n <div style={{ padding: '1rem' }}>\n {/* TODO(wittjosiah): Link to docs for replacing default. */}\n <h1 style={{ fontSize: '1.2rem', fontWeight: 700, margin: '0.5rem 0' }}>{error.message}</h1>\n <pre>{error.stack}</pre>\n </div>\n );\n};\n\nconst composeContexts = (contexts: Capabilities.ReactContext[]) => {\n if (contexts.length === 0) {\n return ({ children }: PropsWithChildren) => <>{children}</>;\n }\n\n return topologicalSort(contexts)\n .map(({ context }) => context)\n .reduce((Acc, Next) => ({ children }) => (\n <Acc>\n <Next>{children}</Next>\n </Acc>\n ));\n};\n\nconst setupDevtools = (manager: PluginManager) => {\n (globalThis as any).composer ??= {};\n (globalThis as any).composer.manager = manager;\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\ntype DependencyNode = {\n id: string;\n dependsOn?: string[];\n};\n\n/**\n * Topologically sorts a list of nodes based on their dependencies.\n */\n// TODO(wittjosiah): Factor out?\nexport const topologicalSort = <T extends DependencyNode>(nodes: T[]): T[] => {\n const getDependencies = (nodeId: string, seen = new Set<string>(), path = new Set<string>()): string[] => {\n if (path.has(nodeId)) {\n throw new Error(`Circular dependency detected involving ${nodeId}`);\n }\n if (seen.has(nodeId)) {\n return [];\n }\n\n const node = nodes.find((n) => n.id === nodeId);\n if (!node) {\n throw new Error(`Node ${nodeId} not found but is listed as a dependency`);\n }\n\n const newPath = new Set([...path, nodeId]);\n const newSeen = new Set([...seen, nodeId]);\n\n const dependsOn = node.dependsOn ?? [];\n return [...dependsOn.flatMap((depId) => getDependencies(depId, newSeen, newPath)), nodeId];\n };\n\n // Get all unique dependencies.\n const allDependencies = nodes\n .map((node) => node.id)\n .flatMap((id) => getDependencies(id))\n .filter((id, index, self) => self.indexOf(id) === index);\n\n // Map back to original nodes\n return allDependencies\n .map((id) => nodes.find((node) => node.id === id))\n .filter((node): node is T => node !== undefined);\n};\n"],
5
- "mappings": "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",
6
- "names": ["createContext", "useContext", "raise", "PluginManagerContext", "createContext", "undefined", "usePluginManager", "useContext", "raise", "Error", "PluginManagerProvider", "Provider", "useRxValue", "invariant", "useCapabilities", "interfaceDef", "manager", "usePluginManager", "useRxValue", "context", "capabilities", "useCapability", "invariant", "length", "identifier", "useIntentDispatcher", "useCapability", "Capabilities", "IntentDispatcher", "useAppGraph", "AppGraph", "useLayout", "Layout", "React", "Component", "ErrorBoundary", "Component", "props", "state", "error", "undefined", "getDerivedStateFromError", "componentDidUpdate", "prevProps", "data", "resetError", "render", "this", "fallback", "reset", "children", "setState", "React", "memo", "forwardRef", "Suspense", "useMemo", "Fragment", "useDefaultValue", "byPosition", "DEFAULT_PLACEHOLDER", "React", "Fragment", "useSurfaces", "surfaces", "useCapabilities", "Capabilities", "ReactSurface", "useMemo", "flat", "findCandidates", "role", "data", "Object", "values", "filter", "definition", "Array", "isArray", "includes", "toSorted", "byPosition", "isSurfaceAvailable", "context", "getCapabilities", "candidates", "length", "Surface", "memo", "forwardRef", "id", "_id", "_data", "limit", "fallback", "placeholder", "rest", "forwardedRef", "useDefaultValue", "definitions", "slice", "nodes", "map", "component", "Component", "ref", "key", "suspense", "Suspense", "ErrorBoundary", "displayName", "useEffect", "useIntentResolver", "module", "resolver", "manager", "usePluginManager", "useEffect", "context", "contributeCapability", "interface", "Capabilities", "IntentResolver", "implementation", "removeCapability", "RegistryContext", "effect", "React", "useCallback", "useEffect", "useMemo", "useState", "invariant", "live", "useDefaultValue", "topologicalSort", "nodes", "getDependencies", "nodeId", "seen", "Set", "path", "has", "Error", "node", "find", "n", "id", "newPath", "newSeen", "dependsOn", "flatMap", "depId", "allDependencies", "map", "filter", "index", "self", "indexOf", "undefined", "ENABLED_KEY", "useApp", "pluginManager", "pluginLoader", "_pluginLoader", "plugins", "_plugins", "core", "_core", "defaults", "_defaults", "placeholder", "fallback", "DefaultFallback", "cacheEnabled", "safeMode", "useDefaultValue", "map", "meta", "id", "useMemo", "plugin", "find", "invariant", "state", "live", "ready", "error", "cached", "JSON", "parse", "localStorage", "getItem", "enabled", "length", "manager", "PluginManager", "useEffect", "activation", "on", "event", "_state", "Events", "Startup", "effect", "setItem", "stringify", "context", "contributeCapability", "interface", "Capabilities", "implementation", "module", "RxRegistry", "registry", "removeCapability", "setupDevtools", "timeout", "setTimeout", "Promise", "all", "activate", "SetupReactSurface", "clearTimeout", "useCallback", "React", "ErrorBoundary", "PluginManagerProvider", "value", "RegistryContext", "Provider", "App", "DELAY_PLACEHOLDER", "useLoading", "state", "stage", "setStage", "useState", "useEffect", "i", "setInterval", "tick", "ready", "clearInterval", "DELAY_PLACEHOLDER", "App", "placeholder", "Placeholder", "reactContexts", "useCapabilities", "Capabilities", "ReactContext", "reactRoots", "ReactRoot", "error", "React", "ComposedContext", "composeContexts", "map", "id", "root", "Component", "key", "DefaultFallback", "div", "style", "padding", "h1", "fontSize", "fontWeight", "margin", "message", "pre", "stack", "contexts", "length", "children", "topologicalSort", "context", "reduce", "Acc", "Next", "setupDevtools", "manager", "globalThis", "composer"]
4
+ "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport { createContext, useContext } from 'react';\n\nimport { raise } from '@dxos/debug';\n\nimport { type PluginManager } from '../core';\n\nconst PluginManagerContext = createContext<PluginManager | undefined>(undefined);\n\n/**\n * Get the plugin manager.\n */\nexport const usePluginManager = (): PluginManager =>\n useContext(PluginManagerContext) ?? raise(new Error('Missing PluginManagerContext'));\n\n/**\n * Context provider for a plugin manager.\n */\nexport const PluginManagerProvider = PluginManagerContext.Provider;\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useRxValue } from '@effect-rx/rx-react';\n\nimport { invariant } from '@dxos/invariant';\n\nimport { usePluginManager } from './PluginManagerProvider';\nimport { type InterfaceDef } from '../core';\n\n/**\n * Hook to request capabilities from the plugin context.\n * @returns An array of capabilities.\n */\nexport const useCapabilities = <T>(interfaceDef: InterfaceDef<T>) => {\n const manager = usePluginManager();\n return useRxValue(manager.context.capabilities(interfaceDef));\n};\n\n/**\n * Hook to request a capability from the plugin context.\n * @returns The capability.\n * @throws If no capability is found.\n */\nexport const useCapability = <T>(interfaceDef: InterfaceDef<T>) => {\n const capabilities = useCapabilities(interfaceDef);\n invariant(capabilities.length > 0, `No capability found for ${interfaceDef.identifier}`);\n return capabilities[0];\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { useCapability } from './useCapabilities';\nimport { Capabilities } from '../common';\n\nexport const useIntentDispatcher = () => useCapability(Capabilities.IntentDispatcher);\n\nexport const useAppGraph = () => useCapability(Capabilities.AppGraph);\n\nexport const useLayout = () => useCapability(Capabilities.Layout);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { Component, type FC, type PropsWithChildren } from 'react';\n\ntype Props = PropsWithChildren<{ data?: any; fallback: FC<{ data?: any; error: Error; reset: () => void }> }>;\ntype State = { error: Error | undefined };\n\n/**\n * Surface error boundary.\n *\n * For basic usage prefer providing a fallback component to `Surface`.\n *\n * For more information on error boundaries, see:\n * https://react.dev/reference/react/Component#catching-rendering-errors-with-an-error-boundary\n */\nexport class ErrorBoundary extends Component<Props, State> {\n constructor(props: Props) {\n super(props);\n this.state = { error: undefined };\n }\n\n static getDerivedStateFromError(error: Error): { error: Error } {\n return { error };\n }\n\n override componentDidUpdate(prevProps: Props): void {\n if (prevProps.data !== this.props.data) {\n this.resetError();\n }\n }\n\n override render(): string | number | boolean | React.JSX.Element | Iterable<React.ReactNode> | null | undefined {\n if (this.state.error) {\n return <this.props.fallback data={this.props.data} error={this.state.error} reset={this.resetError} />;\n }\n\n return this.props.children;\n }\n\n private resetError(): void {\n this.setState({ error: undefined });\n }\n}\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { memo, forwardRef, Suspense, useMemo, Fragment } from 'react';\n\nimport { useDefaultValue } from '@dxos/react-hooks';\nimport { byPosition } from '@dxos/util';\n\nimport { ErrorBoundary } from './ErrorBoundary';\nimport { useCapabilities } from './useCapabilities';\nimport { Capabilities, type SurfaceDefinition, type SurfaceProps } from '../common';\nimport { type PluginContext } from '../core';\n\nconst DEFAULT_PLACEHOLDER = <Fragment />;\n\n/**\n * @internal\n */\nexport const useSurfaces = () => {\n const surfaces = useCapabilities(Capabilities.ReactSurface);\n return useMemo(() => surfaces.flat(), [surfaces]);\n};\n\nconst findCandidates = (surfaces: SurfaceDefinition[], { role, data }: Pick<SurfaceProps, 'role' | 'data'>) => {\n return Object.values(surfaces)\n .filter((definition) =>\n Array.isArray(definition.role) ? definition.role.includes(role) : definition.role === role,\n )\n .filter(({ filter }) => (filter ? filter(data ?? {}) : true))\n .toSorted(byPosition);\n};\n\n/**\n * @returns `true` if there is a contributed surface which matches the specified role & data, `false` otherwise.\n */\nexport const isSurfaceAvailable = (context: PluginContext, { role, data }: Pick<SurfaceProps, 'role' | 'data'>) => {\n const surfaces = context.getCapabilities(Capabilities.ReactSurface);\n const candidates = findCandidates(surfaces.flat(), { role, data });\n return candidates.length > 0;\n};\n\n/**\n * A surface is a named region of the screen that can be populated by plugins.\n */\nexport const Surface = memo(\n forwardRef<HTMLElement, SurfaceProps>(\n ({ id: _id, role, data: _data, limit, fallback, placeholder = DEFAULT_PLACEHOLDER, ...rest }, forwardedRef) => {\n // TODO(wittjosiah): This will make all surfaces depend on a single signal.\n // This isn't ideal because it means that any change to the data will cause all surfaces to re-render.\n // This effectively means that plugin modules which contribute surfaces need to all be activated at startup.\n // This should be fine for now because it's how it worked prior to capabilities api anyways.\n // In the future, it would be nice to be able to bucket the surface contributions by role.\n const surfaces = useSurfaces();\n const data = useDefaultValue(_data, () => ({}));\n\n // NOTE: Memoizing the candidates makes the surface not re-render based on reactivity within data.\n const definitions = findCandidates(surfaces, { role, data });\n const candidates = limit ? definitions.slice(0, limit) : definitions;\n const nodes = candidates.map(({ component: Component, id }) => (\n <Component ref={forwardedRef} key={id} id={id} role={role} data={data} limit={limit} {...rest} />\n ));\n\n const suspense = <Suspense fallback={placeholder}>{nodes}</Suspense>;\n\n return fallback ? (\n <ErrorBoundary data={data} fallback={fallback}>\n {suspense}\n </ErrorBoundary>\n ) : (\n suspense\n );\n },\n ),\n);\n\nSurface.displayName = 'Surface';\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { useEffect } from 'react';\n\nimport { Capabilities } from '../common';\nimport { type AnyIntentResolver } from '../plugin-intent';\nimport { usePluginManager } from '../react';\n\nexport const useIntentResolver = (module: string, resolver: AnyIntentResolver) => {\n const manager = usePluginManager();\n useEffect(() => {\n manager.context.contributeCapability({\n module,\n interface: Capabilities.IntentResolver,\n implementation: resolver,\n });\n\n return () => manager.context.removeCapability(Capabilities.IntentResolver, resolver);\n }, [module, resolver]);\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { RegistryContext } from '@effect-rx/rx-react';\nimport { effect } from '@preact/signals-core';\nimport React, { useCallback, useEffect, useMemo, useState, type FC, type PropsWithChildren } from 'react';\n\nimport { invariant } from '@dxos/invariant';\nimport { live } from '@dxos/live-object';\nimport { useDefaultValue } from '@dxos/react-hooks';\n\nimport { Capabilities, Events } from './common';\nimport { PluginManager, type PluginManagerOptions, type Plugin } from './core';\nimport { topologicalSort } from './helpers';\nimport { ErrorBoundary, PluginManagerProvider, useCapabilities } from './react';\n\nconst ENABLED_KEY = 'dxos.org/app-framework/enabled';\n\nexport type CreateAppOptions = {\n pluginManager?: PluginManager;\n pluginLoader?: PluginManagerOptions['pluginLoader'];\n plugins?: Plugin[];\n core?: string[];\n defaults?: string[];\n placeholder?: FC<{ stage: number }>;\n fallback?: ErrorBoundary['props']['fallback'];\n cacheEnabled?: boolean;\n safeMode?: boolean;\n};\n\n/**\n * Expected usage is for this to be the entrypoint of the application.\n * Initializes plugins and renders the root components.\n *\n * @example\n * const plugins = [LayoutPlugin(), MyPlugin()];\n * const core = [LayoutPluginId];\n * const default = [MyPluginId];\n * const fallback = <div>Initializing Plugins...</div>;\n * const App = createApp({ plugins, core, default, fallback });\n * createRoot(document.getElementById('root')!).render(\n * <StrictMode>\n * <App />\n * </StrictMode>,\n * );\n *\n * @param params.pluginLoader A function which loads new plugins.\n * @param params.plugins All plugins available to the application.\n * @param params.core Core plugins which will always be enabled.\n * @param params.defaults Default plugins are enabled by default but can be disabled by the user.\n * @param params.placeholder Placeholder component to render during startup.\n * @param params.fallback Fallback component to render if an error occurs during startup.\n * @param params.cacheEnabled Whether to cache enabled plugins in localStorage.\n * @param params.safeMode Whether to enable safe mode, which disables optional plugins.\n */\nexport const useApp = ({\n pluginManager,\n pluginLoader: _pluginLoader,\n plugins: _plugins,\n core: _core,\n defaults: _defaults,\n placeholder,\n fallback = DefaultFallback,\n cacheEnabled = false,\n safeMode = false,\n}: CreateAppOptions) => {\n const plugins = useDefaultValue(_plugins, () => []);\n const core = useDefaultValue(_core, () => plugins.map(({ meta }) => meta.id));\n const defaults = useDefaultValue(_defaults, () => []);\n\n // TODO(wittjosiah): Provide a custom plugin loader which supports loading via url.\n const pluginLoader = useMemo(\n () =>\n _pluginLoader ??\n ((id: string) => {\n const plugin = plugins.find((plugin) => plugin.meta.id === id);\n invariant(plugin, `Plugin not found: ${id}`);\n return plugin;\n }),\n [_pluginLoader, plugins],\n );\n\n const state = useMemo(() => live({ ready: false, error: null }), []);\n const cached: string[] = useMemo(() => JSON.parse(localStorage.getItem(ENABLED_KEY) ?? '[]'), []);\n const enabled = useMemo(\n () => (safeMode ? [] : cacheEnabled && cached.length > 0 ? cached : defaults),\n [safeMode, cacheEnabled, cached, defaults],\n );\n const manager = useMemo(\n () => pluginManager ?? new PluginManager({ pluginLoader, plugins, core, enabled }),\n [pluginManager, pluginLoader, plugins, core, enabled],\n );\n\n useEffect(() => {\n return manager.activation.on(({ event, state: _state, error }) => {\n // Once the app is ready the first time, don't show the fallback again.\n if (!state.ready && event === Events.Startup.id) {\n state.ready = _state === 'activated';\n }\n\n if (error && !state.ready && !state.error) {\n state.error = error;\n }\n });\n }, [manager, state]);\n\n useEffect(() => {\n effect(() => {\n cacheEnabled && localStorage.setItem(ENABLED_KEY, JSON.stringify(manager.enabled));\n });\n }, [cacheEnabled, manager]);\n\n useEffect(() => {\n manager.context.contributeCapability({\n interface: Capabilities.PluginManager,\n implementation: manager,\n module: 'dxos.org/app-framework/plugin-manager',\n });\n\n manager.context.contributeCapability({\n interface: Capabilities.RxRegistry,\n implementation: manager.registry,\n module: 'dxos.org/app-framework/rx-registry',\n });\n\n return () => {\n manager.context.removeCapability(Capabilities.PluginManager, manager);\n manager.context.removeCapability(Capabilities.RxRegistry, manager.registry);\n };\n }, [manager]);\n\n useEffect(() => {\n setupDevtools(manager);\n }, [manager]);\n\n useEffect(() => {\n const timeout = setTimeout(async () => {\n await Promise.all([\n // TODO(wittjosiah): Factor out such that this could be called per surface role when attempting to render.\n manager.activate(Events.SetupReactSurface),\n manager.activate(Events.Startup),\n ]);\n });\n\n return () => clearTimeout(timeout);\n }, [manager]);\n\n return useCallback(\n () => (\n <ErrorBoundary fallback={fallback}>\n <PluginManagerProvider value={manager}>\n <RegistryContext.Provider value={manager.registry}>\n <App placeholder={placeholder} state={state} />\n </RegistryContext.Provider>\n </PluginManagerProvider>\n </ErrorBoundary>\n ),\n [fallback, manager, placeholder, state],\n );\n};\n\nconst DELAY_PLACEHOLDER = 2_000;\n\nenum LoadingState {\n Loading = 0,\n FadeIn = 1,\n FadeOut = 2,\n Done = 3,\n}\n\n/**\n * To avoid \"flashing\" the placeholder, we wait a period of time before starting the loading animation.\n * If loading completes during this time the placehoder is not shown, otherwise is it displayed for a minimum period of time.\n *\n * States:\n * 0: Loading - Wait for a period of time before starting the loading animation.\n * 1: Fade-in - Display a loading animation.\n * 2: Fade-out - Fade out the loading animation.\n * 3: Done - Remove the placeholder.\n */\nconst useLoading = (state: AppProps['state']) => {\n const [stage, setStage] = useState<LoadingState>(LoadingState.Loading);\n useEffect(() => {\n const i = setInterval(() => {\n setStage((tick) => {\n switch (tick) {\n case LoadingState.Loading:\n if (!state.ready) {\n return LoadingState.FadeIn;\n } else {\n clearInterval(i);\n return LoadingState.Done;\n }\n case LoadingState.FadeIn:\n if (state.ready) {\n return LoadingState.FadeOut;\n }\n break;\n case LoadingState.FadeOut:\n clearInterval(i);\n return LoadingState.Done;\n }\n\n return tick;\n });\n }, DELAY_PLACEHOLDER);\n\n return () => clearInterval(i);\n }, []);\n\n return stage;\n};\n\ntype AppProps = Pick<CreateAppOptions, 'placeholder'> & {\n state: { ready: boolean; error: unknown };\n};\n\nconst App = ({ placeholder: Placeholder, state }: AppProps) => {\n const reactContexts = useCapabilities(Capabilities.ReactContext);\n const reactRoots = useCapabilities(Capabilities.ReactRoot);\n const stage = useLoading(state);\n\n if (state.error) {\n // This triggers the error boundary to provide UI feedback for the startup error.\n throw state.error;\n }\n\n // TODO(wittjosiah): Consider using Suspense instead?\n if (stage < LoadingState.Done) {\n if (!Placeholder) {\n return null;\n }\n\n return <Placeholder stage={stage} />;\n }\n\n const ComposedContext = composeContexts(reactContexts);\n return (\n <ComposedContext>\n {reactRoots.map(({ id, root: Component }) => (\n <Component key={id} />\n ))}\n </ComposedContext>\n );\n};\n\n// Default fallback does not use tailwind or theme.\nconst DefaultFallback = ({ error }: { error: Error }) => {\n return (\n <div style={{ margin: '0.5rem', padding: '1rem', overflow: 'hidden', border: '1px solid red' }}>\n {/* TODO(wittjosiah): Link to docs for replacing default. */}\n <h1 style={{ margin: '0.5rem 0', fontSize: '1.2rem' }}>[ERROR]: {error.message}</h1>\n <pre style={{ overflow: 'auto', fontSize: '1rem', whiteSpace: 'pre-wrap', color: '#888888' }}>{error.stack}</pre>\n </div>\n );\n};\n\nconst composeContexts = (contexts: Capabilities.ReactContext[]) => {\n if (contexts.length === 0) {\n return ({ children }: PropsWithChildren) => <>{children}</>;\n }\n\n return topologicalSort(contexts)\n .map(({ context }) => context)\n .reduce((Acc, Next) => ({ children }) => (\n <Acc>\n <Next>{children}</Next>\n </Acc>\n ));\n};\n\nconst setupDevtools = (manager: PluginManager) => {\n (globalThis as any).composer ??= {};\n (globalThis as any).composer.manager = manager;\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\ntype DependencyNode = {\n id: string;\n dependsOn?: string[];\n};\n\n/**\n * Topologically sorts a list of nodes based on their dependencies.\n */\n// TODO(wittjosiah): Factor out?\nexport const topologicalSort = <T extends DependencyNode>(nodes: T[]): T[] => {\n const getDependencies = (nodeId: string, seen = new Set<string>(), path = new Set<string>()): string[] => {\n if (path.has(nodeId)) {\n throw new Error(`Circular dependency detected involving ${nodeId}`);\n }\n if (seen.has(nodeId)) {\n return [];\n }\n\n const node = nodes.find((n) => n.id === nodeId);\n if (!node) {\n throw new Error(`Node ${nodeId} not found but is listed as a dependency`);\n }\n\n const newPath = new Set([...path, nodeId]);\n const newSeen = new Set([...seen, nodeId]);\n\n const dependsOn = node.dependsOn ?? [];\n return [...dependsOn.flatMap((depId) => getDependencies(depId, newSeen, newPath)), nodeId];\n };\n\n // Get all unique dependencies.\n const allDependencies = nodes\n .map((node) => node.id)\n .flatMap((id) => getDependencies(id))\n .filter((id, index, self) => self.indexOf(id) === index);\n\n // Map back to original nodes\n return allDependencies\n .map((id) => nodes.find((node) => node.id === id))\n .filter((node): node is T => node !== undefined);\n};\n"],
5
+ "mappings": "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",
6
+ "names": ["createContext", "useContext", "raise", "PluginManagerContext", "createContext", "undefined", "usePluginManager", "useContext", "raise", "Error", "PluginManagerProvider", "Provider", "useRxValue", "invariant", "useCapabilities", "interfaceDef", "manager", "usePluginManager", "useRxValue", "context", "capabilities", "useCapability", "invariant", "length", "identifier", "useIntentDispatcher", "useCapability", "Capabilities", "IntentDispatcher", "useAppGraph", "AppGraph", "useLayout", "Layout", "React", "Component", "ErrorBoundary", "Component", "props", "state", "error", "undefined", "getDerivedStateFromError", "componentDidUpdate", "prevProps", "data", "resetError", "render", "this", "fallback", "reset", "children", "setState", "React", "memo", "forwardRef", "Suspense", "useMemo", "Fragment", "useDefaultValue", "byPosition", "DEFAULT_PLACEHOLDER", "React", "Fragment", "useSurfaces", "surfaces", "useCapabilities", "Capabilities", "ReactSurface", "useMemo", "flat", "findCandidates", "role", "data", "Object", "values", "filter", "definition", "Array", "isArray", "includes", "toSorted", "byPosition", "isSurfaceAvailable", "context", "getCapabilities", "candidates", "length", "Surface", "memo", "forwardRef", "id", "_id", "_data", "limit", "fallback", "placeholder", "rest", "forwardedRef", "useDefaultValue", "definitions", "slice", "nodes", "map", "component", "Component", "ref", "key", "suspense", "Suspense", "ErrorBoundary", "displayName", "useEffect", "useIntentResolver", "module", "resolver", "manager", "usePluginManager", "useEffect", "context", "contributeCapability", "interface", "Capabilities", "IntentResolver", "implementation", "removeCapability", "RegistryContext", "effect", "React", "useCallback", "useEffect", "useMemo", "useState", "invariant", "live", "useDefaultValue", "topologicalSort", "nodes", "getDependencies", "nodeId", "seen", "Set", "path", "has", "Error", "node", "find", "n", "id", "newPath", "newSeen", "dependsOn", "flatMap", "depId", "allDependencies", "map", "filter", "index", "self", "indexOf", "undefined", "ENABLED_KEY", "useApp", "pluginManager", "pluginLoader", "_pluginLoader", "plugins", "_plugins", "core", "_core", "defaults", "_defaults", "placeholder", "fallback", "DefaultFallback", "cacheEnabled", "safeMode", "useDefaultValue", "map", "meta", "id", "useMemo", "plugin", "find", "invariant", "state", "live", "ready", "error", "cached", "JSON", "parse", "localStorage", "getItem", "enabled", "length", "manager", "PluginManager", "useEffect", "activation", "on", "event", "_state", "Events", "Startup", "effect", "setItem", "stringify", "context", "contributeCapability", "interface", "Capabilities", "implementation", "module", "RxRegistry", "registry", "removeCapability", "setupDevtools", "timeout", "setTimeout", "Promise", "all", "activate", "SetupReactSurface", "clearTimeout", "useCallback", "React", "ErrorBoundary", "PluginManagerProvider", "value", "RegistryContext", "Provider", "App", "DELAY_PLACEHOLDER", "useLoading", "state", "stage", "setStage", "useState", "useEffect", "i", "setInterval", "tick", "ready", "clearInterval", "DELAY_PLACEHOLDER", "App", "placeholder", "Placeholder", "reactContexts", "useCapabilities", "Capabilities", "ReactContext", "reactRoots", "ReactRoot", "error", "React", "ComposedContext", "composeContexts", "map", "id", "root", "Component", "key", "DefaultFallback", "div", "style", "margin", "padding", "overflow", "border", "h1", "fontSize", "message", "pre", "whiteSpace", "color", "stack", "contexts", "length", "children", "topologicalSort", "context", "reduce", "Acc", "Next", "setupDevtools", "manager", "globalThis", "composer"]
7
7
  }
@@ -1,6 +1,6 @@
1
1
  import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
2
 
3
- // packages/sdk/app-framework/src/plugin-settings/actions.ts
3
+ // src/plugin-settings/actions.ts
4
4
  import { Schema } from "effect";
5
5
  var SETTINGS_PLUGIN = "dxos.org/plugin/settings";
6
6
  var SETTINGS_ACTION = `${SETTINGS_PLUGIN}/action`;
@@ -31,4 +31,4 @@ export {
31
31
  SETTINGS_KEY,
32
32
  SettingsAction
33
33
  };
34
- //# sourceMappingURL=chunk-I6BVZMAH.mjs.map
34
+ //# sourceMappingURL=chunk-UMZQERLE.mjs.map