@dxos/app-framework 0.7.2 → 0.7.3-staging.971cd8d

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 (46) hide show
  1. package/dist/lib/browser/{chunk-EQTQGGE6.mjs → chunk-FRXJ25VI.mjs} +2 -2
  2. package/dist/lib/browser/chunk-FRXJ25VI.mjs.map +7 -0
  3. package/dist/lib/browser/{chunk-CDLQO5K2.mjs → chunk-YXM35XRE.mjs} +2 -2
  4. package/dist/lib/browser/{chunk-CDLQO5K2.mjs.map → chunk-YXM35XRE.mjs.map} +1 -1
  5. package/dist/lib/browser/index.mjs +7 -6
  6. package/dist/lib/browser/index.mjs.map +3 -3
  7. package/dist/lib/browser/meta.json +1 -1
  8. package/dist/lib/browser/{plugin-intent-Q5KFPKFA.mjs → plugin-intent-LU4KL2RO.mjs} +2 -2
  9. package/dist/lib/browser/{plugin-surface-ZQXFAL46.mjs → plugin-surface-LECZMKSQ.mjs} +2 -2
  10. package/dist/lib/node/{chunk-VOKMWTKO.cjs → chunk-QSVP5HOW.cjs} +6 -6
  11. package/dist/lib/node/{chunk-VOKMWTKO.cjs.map → chunk-QSVP5HOW.cjs.map} +1 -1
  12. package/dist/lib/node/{chunk-EF67TRWJ.cjs → chunk-SOVLKUWI.cjs} +6 -6
  13. package/dist/lib/node/chunk-SOVLKUWI.cjs.map +7 -0
  14. package/dist/lib/node/index.cjs +29 -28
  15. package/dist/lib/node/index.cjs.map +3 -3
  16. package/dist/lib/node/meta.json +1 -1
  17. package/dist/lib/node/{plugin-intent-FMC4SDI3.cjs → plugin-intent-FVFR2LKB.cjs} +13 -13
  18. package/dist/lib/node/{plugin-intent-FMC4SDI3.cjs.map → plugin-intent-FVFR2LKB.cjs.map} +2 -2
  19. package/dist/lib/node/{plugin-surface-B5NHOBSW.cjs → plugin-surface-YWDRXQTD.cjs} +14 -14
  20. package/dist/lib/node/{plugin-surface-B5NHOBSW.cjs.map → plugin-surface-YWDRXQTD.cjs.map} +2 -2
  21. package/dist/lib/node-esm/{chunk-3FCLBEOX.mjs → chunk-2R4GVK7O.mjs} +2 -2
  22. package/dist/lib/node-esm/chunk-2R4GVK7O.mjs.map +7 -0
  23. package/dist/lib/node-esm/{chunk-MYNXI5VG.mjs → chunk-YFMFQBB4.mjs} +2 -2
  24. package/dist/lib/node-esm/{chunk-MYNXI5VG.mjs.map → chunk-YFMFQBB4.mjs.map} +1 -1
  25. package/dist/lib/node-esm/index.mjs +7 -6
  26. package/dist/lib/node-esm/index.mjs.map +3 -3
  27. package/dist/lib/node-esm/meta.json +1 -1
  28. package/dist/lib/node-esm/{plugin-intent-KETLP7UL.mjs → plugin-intent-V7ER24Y6.mjs} +2 -2
  29. package/dist/lib/node-esm/{plugin-surface-QXQRR534.mjs → plugin-surface-TEU42XQN.mjs} +2 -2
  30. package/dist/types/src/plugins/common/navigation.d.ts +1 -1
  31. package/dist/types/src/plugins/common/navigation.d.ts.map +1 -1
  32. package/dist/types/src/plugins/plugin-intent/IntentPlugin.d.ts.map +1 -1
  33. package/dist/types/src/plugins/plugin-surface/SurfaceRootContext.d.ts +1 -2
  34. package/dist/types/src/plugins/plugin-surface/SurfaceRootContext.d.ts.map +1 -1
  35. package/package.json +12 -11
  36. package/src/plugins/common/navigation.ts +4 -2
  37. package/src/plugins/plugin-intent/IntentPlugin.tsx +3 -3
  38. package/src/plugins/plugin-surface/SurfacePlugin.tsx +1 -1
  39. package/src/plugins/plugin-surface/SurfaceRootContext.tsx +1 -2
  40. package/dist/lib/browser/chunk-EQTQGGE6.mjs.map +0 -7
  41. package/dist/lib/node/chunk-EF67TRWJ.cjs.map +0 -7
  42. package/dist/lib/node-esm/chunk-3FCLBEOX.mjs.map +0 -7
  43. /package/dist/lib/browser/{plugin-intent-Q5KFPKFA.mjs.map → plugin-intent-LU4KL2RO.mjs.map} +0 -0
  44. /package/dist/lib/browser/{plugin-surface-ZQXFAL46.mjs.map → plugin-surface-LECZMKSQ.mjs.map} +0 -0
  45. /package/dist/lib/node-esm/{plugin-intent-KETLP7UL.mjs.map → plugin-intent-V7ER24Y6.mjs.map} +0 -0
  46. /package/dist/lib/node-esm/{plugin-surface-QXQRR534.mjs.map → plugin-surface-TEU42XQN.mjs.map} +0 -0
@@ -1 +1 @@
1
- {"inputs":{"packages/sdk/app-framework/src/plugins/common/file.ts":{"bytes":2950,"imports":[],"format":"esm"},"packages/sdk/app-framework/src/plugins/common/graph.ts":{"bytes":3905,"imports":[],"format":"esm"},"packages/sdk/app-framework/src/plugins/common/layout.ts":{"bytes":12113,"imports":[{"path":"zod","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/app-framework/src/plugins/common/metadata.ts":{"bytes":2094,"imports":[],"format":"esm"},"packages/sdk/app-framework/src/plugins/common/navigation.ts":{"bytes":16655,"imports":[{"path":"@effect/schema","kind":"import-statement","external":true},{"path":"zod","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/app-framework/src/plugins/common/translations.ts":{"bytes":3192,"imports":[{"path":"zod","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/app-framework/src/plugins/common/index.ts":{"bytes":954,"imports":[{"path":"packages/sdk/app-framework/src/plugins/common/file.ts","kind":"import-statement","original":"./file"},{"path":"packages/sdk/app-framework/src/plugins/common/graph.ts","kind":"import-statement","original":"./graph"},{"path":"packages/sdk/app-framework/src/plugins/common/layout.ts","kind":"import-statement","original":"./layout"},{"path":"packages/sdk/app-framework/src/plugins/common/metadata.ts","kind":"import-statement","original":"./metadata"},{"path":"packages/sdk/app-framework/src/plugins/common/navigation.ts","kind":"import-statement","original":"./navigation"},{"path":"packages/sdk/app-framework/src/plugins/common/translations.ts","kind":"import-statement","original":"./translations"}],"format":"esm"},"packages/sdk/app-framework/src/plugins/helpers.ts":{"bytes":8632,"imports":[{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/app-framework/src/plugins/plugin-intent/IntentContext.tsx":{"bytes":4091,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/app-framework/src/plugins/plugin-intent/helpers.ts":{"bytes":1171,"imports":[],"format":"esm"},"packages/sdk/app-framework/src/plugins/plugin-intent/meta.ts":{"bytes":727,"imports":[],"format":"esm"},"packages/sdk/app-framework/src/plugins/plugin-intent/provides.ts":{"bytes":2925,"imports":[],"format":"esm"},"packages/sdk/app-framework/src/plugins/plugin-intent/IntentPlugin.tsx":{"bytes":19225,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/sdk/app-framework/src/plugins/plugin-intent/IntentContext.tsx","kind":"import-statement","original":"./IntentContext"},{"path":"packages/sdk/app-framework/src/plugins/plugin-intent/helpers.ts","kind":"import-statement","original":"./helpers"},{"path":"packages/sdk/app-framework/src/plugins/plugin-intent/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/sdk/app-framework/src/plugins/plugin-intent/provides.ts","kind":"import-statement","original":"./provides"},{"path":"packages/sdk/app-framework/src/plugins/helpers.ts","kind":"import-statement","original":"../helpers"}],"format":"esm"},"packages/sdk/app-framework/src/plugins/plugin-intent/intent.ts":{"bytes":4142,"imports":[],"format":"esm"},"packages/sdk/app-framework/src/plugins/plugin-intent/index.ts":{"bytes":979,"imports":[{"path":"packages/sdk/app-framework/src/plugins/plugin-intent/IntentPlugin.tsx","kind":"import-statement","original":"./IntentPlugin"},{"path":"packages/sdk/app-framework/src/plugins/plugin-intent/intent.ts","kind":"import-statement","original":"./intent"},{"path":"packages/sdk/app-framework/src/plugins/plugin-intent/provides.ts","kind":"import-statement","original":"./provides"},{"path":"packages/sdk/app-framework/src/plugins/plugin-intent/IntentContext.tsx","kind":"import-statement","original":"./IntentContext"}],"format":"esm"},"packages/sdk/app-framework/src/plugins/plugin-host/plugin.ts":{"bytes":5033,"imports":[],"format":"esm"},"packages/sdk/app-framework/src/plugins/plugin-host/PluginContainer.tsx":{"bytes":13322,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/app-framework/src/plugins/plugin-host/PluginContext.tsx":{"bytes":5419,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/sdk/app-framework/src/plugins/helpers.ts","kind":"import-statement","original":"../helpers"}],"format":"esm"},"packages/sdk/app-framework/src/plugins/plugin-surface/SurfaceRootContext.tsx":{"bytes":3342,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/app-framework/src/plugins/plugin-surface/meta.ts":{"bytes":735,"imports":[],"format":"esm"},"packages/sdk/app-framework/src/plugins/plugin-surface/provides.ts":{"bytes":2035,"imports":[],"format":"esm"},"packages/sdk/app-framework/src/plugins/plugin-surface/SurfacePlugin.tsx":{"bytes":4012,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"packages/sdk/app-framework/src/plugins/plugin-surface/SurfaceRootContext.tsx","kind":"import-statement","original":"./SurfaceRootContext"},{"path":"packages/sdk/app-framework/src/plugins/plugin-surface/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/sdk/app-framework/src/plugins/plugin-surface/provides.ts","kind":"import-statement","original":"./provides"},{"path":"packages/sdk/app-framework/src/plugins/helpers.ts","kind":"import-statement","original":"../helpers"}],"format":"esm"},"packages/sdk/app-framework/src/plugins/plugin-surface/helpers.ts":{"bytes":1818,"imports":[],"format":"esm"},"packages/sdk/app-framework/src/plugins/plugin-surface/ErrorBoundary.tsx":{"bytes":4344,"imports":[{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/app-framework/src/plugins/plugin-surface/Surface.tsx":{"bytes":16952,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/sdk/app-framework/src/plugins/plugin-surface/ErrorBoundary.tsx","kind":"import-statement","original":"./ErrorBoundary"},{"path":"packages/sdk/app-framework/src/plugins/plugin-surface/SurfaceRootContext.tsx","kind":"import-statement","original":"./SurfaceRootContext"}],"format":"esm"},"packages/sdk/app-framework/src/plugins/plugin-surface/index.ts":{"bytes":1193,"imports":[{"path":"packages/sdk/app-framework/src/plugins/plugin-surface/SurfacePlugin.tsx","kind":"import-statement","original":"./SurfacePlugin"},{"path":"packages/sdk/app-framework/src/plugins/plugin-surface/helpers.ts","kind":"import-statement","original":"./helpers"},{"path":"packages/sdk/app-framework/src/plugins/plugin-surface/provides.ts","kind":"import-statement","original":"./provides"},{"path":"packages/sdk/app-framework/src/plugins/plugin-surface/ErrorBoundary.tsx","kind":"import-statement","original":"./ErrorBoundary"},{"path":"packages/sdk/app-framework/src/plugins/plugin-surface/Surface.tsx","kind":"import-statement","original":"./Surface"},{"path":"packages/sdk/app-framework/src/plugins/plugin-surface/SurfaceRootContext.tsx","kind":"import-statement","original":"./SurfaceRootContext"}],"format":"esm"},"packages/sdk/app-framework/src/plugins/plugin-host/HostPlugin.tsx":{"bytes":9462,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/local-storage","kind":"import-statement","external":true},{"path":"packages/sdk/app-framework/src/plugins/plugin-host/PluginContainer.tsx","kind":"import-statement","original":"./PluginContainer"},{"path":"packages/sdk/app-framework/src/plugins/plugin-host/PluginContext.tsx","kind":"import-statement","original":"./PluginContext"},{"path":"packages/sdk/app-framework/src/plugins/plugin-surface/index.ts","kind":"import-statement","original":"../plugin-surface"}],"format":"esm"},"packages/sdk/app-framework/src/plugins/plugin-host/index.ts":{"bytes":715,"imports":[{"path":"packages/sdk/app-framework/src/plugins/plugin-host/plugin.ts","kind":"import-statement","original":"./plugin"},{"path":"packages/sdk/app-framework/src/plugins/plugin-host/HostPlugin.tsx","kind":"import-statement","original":"./HostPlugin"},{"path":"packages/sdk/app-framework/src/plugins/plugin-host/PluginContext.tsx","kind":"import-statement","original":"./PluginContext"}],"format":"esm"},"packages/sdk/app-framework/src/plugins/plugin-settings/meta.ts":{"bytes":743,"imports":[],"format":"esm"},"packages/sdk/app-framework/src/plugins/plugin-settings/SettingsPlugin.tsx":{"bytes":2052,"imports":[{"path":"@dxos/local-storage","kind":"import-statement","external":true},{"path":"packages/sdk/app-framework/src/plugins/plugin-settings/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/sdk/app-framework/src/plugins/plugin-settings/provides.ts":{"bytes":2244,"imports":[],"format":"esm"},"packages/sdk/app-framework/src/plugins/plugin-settings/index.ts":{"bytes":808,"imports":[{"path":"packages/sdk/app-framework/src/plugins/plugin-settings/SettingsPlugin.tsx","kind":"import-statement","original":"./SettingsPlugin"},{"path":"packages/sdk/app-framework/src/plugins/plugin-settings/provides.ts","kind":"import-statement","original":"./provides"}],"format":"esm"},"packages/sdk/app-framework/src/plugins/index.ts":{"bytes":1008,"imports":[{"path":"packages/sdk/app-framework/src/plugins/common/index.ts","kind":"import-statement","original":"./common"},{"path":"packages/sdk/app-framework/src/plugins/helpers.ts","kind":"import-statement","original":"./helpers"},{"path":"packages/sdk/app-framework/src/plugins/plugin-intent/index.ts","kind":"import-statement","original":"./plugin-intent"},{"path":"packages/sdk/app-framework/src/plugins/plugin-host/index.ts","kind":"import-statement","original":"./plugin-host"},{"path":"packages/sdk/app-framework/src/plugins/plugin-settings/index.ts","kind":"import-statement","original":"./plugin-settings"},{"path":"packages/sdk/app-framework/src/plugins/plugin-surface/index.ts","kind":"import-statement","original":"./plugin-surface"}],"format":"esm"},"packages/sdk/app-framework/src/App.tsx":{"bytes":7547,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"packages/sdk/app-framework/src/plugins/index.ts","kind":"import-statement","original":"./plugins"},{"path":"packages/sdk/app-framework/src/plugins/plugin-intent/meta.ts","kind":"import-statement","original":"./plugins/plugin-intent/meta"},{"path":"packages/sdk/app-framework/src/plugins/plugin-settings/meta.ts","kind":"import-statement","original":"./plugins/plugin-settings/meta"},{"path":"packages/sdk/app-framework/src/plugins/plugin-surface/meta.ts","kind":"import-statement","original":"./plugins/plugin-surface/meta"},{"path":"packages/sdk/app-framework/src/plugins/plugin-intent/index.ts","kind":"dynamic-import","original":"./plugins/plugin-intent"},{"path":"packages/sdk/app-framework/src/plugins/plugin-settings/index.ts","kind":"dynamic-import","original":"./plugins/plugin-settings"},{"path":"packages/sdk/app-framework/src/plugins/plugin-surface/index.ts","kind":"dynamic-import","original":"./plugins/plugin-surface"}],"format":"esm"},"packages/sdk/app-framework/src/index.ts":{"bytes":576,"imports":[{"path":"packages/sdk/app-framework/src/plugins/index.ts","kind":"import-statement","original":"./plugins"},{"path":"packages/sdk/app-framework/src/App.tsx","kind":"import-statement","original":"./App"}],"format":"esm"}},"outputs":{"packages/sdk/app-framework/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":42985},"packages/sdk/app-framework/dist/lib/browser/index.mjs":{"imports":[{"path":"packages/sdk/app-framework/dist/lib/browser/chunk-CDLQO5K2.mjs","kind":"import-statement"},{"path":"packages/sdk/app-framework/dist/lib/browser/chunk-EQTQGGE6.mjs","kind":"import-statement"},{"path":"packages/sdk/app-framework/dist/lib/browser/chunk-3E7RY3CE.mjs","kind":"import-statement"},{"path":"packages/sdk/app-framework/dist/lib/browser/chunk-653Y45CL.mjs","kind":"import-statement"},{"path":"zod","kind":"import-statement","external":true},{"path":"@effect/schema","kind":"import-statement","external":true},{"path":"zod","kind":"import-statement","external":true},{"path":"zod","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/local-storage","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"packages/sdk/app-framework/dist/lib/browser/plugin-intent-Q5KFPKFA.mjs","kind":"dynamic-import"},{"path":"packages/sdk/app-framework/dist/lib/browser/plugin-settings-OM3G2QFY.mjs","kind":"dynamic-import"},{"path":"packages/sdk/app-framework/dist/lib/browser/plugin-surface-ZQXFAL46.mjs","kind":"dynamic-import"}],"exports":["ActiveParts","ErrorBoundary","HostPlugin","IntentAction","IntentProvider","Layout","LayoutAction","NavigationAction","Plugin","PluginProvider","Resource","ResourceKey","ResourceLanguage","SLUG_COLLECTION_INDICATOR","SLUG_ENTRY_SEPARATOR","SLUG_KEY_VALUE_SEPARATOR","SLUG_LIST_SEPARATOR","SLUG_PATH_SEPARATOR","SettingsAction","Surface","SurfaceProvider","Toast","createApp","defaultFileTypes","definePlugin","filterPlugins","findPlugin","firstIdInPart","getPlugin","indexInPart","isLayoutAdjustment","isLayoutMode","isLayoutParts","isObject","openIds","parseFileManagerPlugin","parseGraphBuilderPlugin","parseGraphPlugin","parseGraphSerializerPlugin","parseIntentPlugin","parseIntentResolverPlugin","parseLayoutPlugin","parseMetadataRecordsPlugin","parseMetadataResolverPlugin","parseNavigationPlugin","parsePluginHost","parseRootSurfacePlugin","parseSettingsPlugin","parseSurfacePlugin","parseTranslationsPlugin","partLength","resolvePlugin","useIntent","useIntentDispatcher","useIntentResolver","usePlugin","usePlugins","useResolvePlugin","useResolvePlugins","useSurface","useSurfaceRoot"],"entryPoint":"packages/sdk/app-framework/src/index.ts","inputs":{"packages/sdk/app-framework/src/plugins/common/file.ts":{"bytesInOutput":288},"packages/sdk/app-framework/src/plugins/common/index.ts":{"bytesInOutput":0},"packages/sdk/app-framework/src/plugins/common/graph.ts":{"bytesInOutput":272},"packages/sdk/app-framework/src/plugins/common/layout.ts":{"bytesInOutput":2269},"packages/sdk/app-framework/src/plugins/common/metadata.ts":{"bytesInOutput":226},"packages/sdk/app-framework/src/plugins/common/navigation.ts":{"bytesInOutput":2978},"packages/sdk/app-framework/src/plugins/common/translations.ts":{"bytesInOutput":357},"packages/sdk/app-framework/src/plugins/index.ts":{"bytesInOutput":0},"packages/sdk/app-framework/src/plugins/plugin-host/plugin.ts":{"bytesInOutput":197},"packages/sdk/app-framework/src/plugins/plugin-host/index.ts":{"bytesInOutput":0},"packages/sdk/app-framework/src/plugins/plugin-host/HostPlugin.tsx":{"bytesInOutput":1893},"packages/sdk/app-framework/src/plugins/plugin-host/PluginContainer.tsx":{"bytesInOutput":3386},"packages/sdk/app-framework/src/plugins/plugin-host/PluginContext.tsx":{"bytesInOutput":742},"packages/sdk/app-framework/src/index.ts":{"bytesInOutput":0},"packages/sdk/app-framework/src/App.tsx":{"bytesInOutput":1351}},"bytes":16559},"packages/sdk/app-framework/dist/lib/browser/plugin-intent-Q5KFPKFA.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/sdk/app-framework/dist/lib/browser/plugin-intent-Q5KFPKFA.mjs":{"imports":[{"path":"packages/sdk/app-framework/dist/lib/browser/chunk-CDLQO5K2.mjs","kind":"import-statement"},{"path":"packages/sdk/app-framework/dist/lib/browser/chunk-3E7RY3CE.mjs","kind":"import-statement"}],"exports":["IntentAction","IntentProvider","default","parseIntentPlugin","parseIntentResolverPlugin","useIntent","useIntentDispatcher","useIntentResolver"],"entryPoint":"packages/sdk/app-framework/src/plugins/plugin-intent/index.ts","inputs":{},"bytes":476},"packages/sdk/app-framework/dist/lib/browser/chunk-CDLQO5K2.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":13613},"packages/sdk/app-framework/dist/lib/browser/chunk-CDLQO5K2.mjs":{"imports":[{"path":"packages/sdk/app-framework/dist/lib/browser/chunk-3E7RY3CE.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true}],"exports":["IntentAction","IntentProvider","meta_default","parseIntentPlugin","parseIntentResolverPlugin","plugin_intent_default","useIntent","useIntentDispatcher","useIntentResolver"],"inputs":{"packages/sdk/app-framework/src/plugins/plugin-intent/IntentPlugin.tsx":{"bytesInOutput":4541},"packages/sdk/app-framework/src/plugins/plugin-intent/IntentContext.tsx":{"bytesInOutput":637},"packages/sdk/app-framework/src/plugins/plugin-intent/helpers.ts":{"bytesInOutput":94},"packages/sdk/app-framework/src/plugins/plugin-intent/meta.ts":{"bytesInOutput":84},"packages/sdk/app-framework/src/plugins/plugin-intent/provides.ts":{"bytesInOutput":453},"packages/sdk/app-framework/src/plugins/plugin-intent/index.ts":{"bytesInOutput":42}},"bytes":6650},"packages/sdk/app-framework/dist/lib/browser/plugin-surface-ZQXFAL46.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/sdk/app-framework/dist/lib/browser/plugin-surface-ZQXFAL46.mjs":{"imports":[{"path":"packages/sdk/app-framework/dist/lib/browser/chunk-EQTQGGE6.mjs","kind":"import-statement"},{"path":"packages/sdk/app-framework/dist/lib/browser/chunk-3E7RY3CE.mjs","kind":"import-statement"}],"exports":["ErrorBoundary","Surface","SurfaceProvider","default","isObject","parseRootSurfacePlugin","parseSurfacePlugin","useSurface","useSurfaceRoot"],"entryPoint":"packages/sdk/app-framework/src/plugins/plugin-surface/index.ts","inputs":{},"bytes":475},"packages/sdk/app-framework/dist/lib/browser/chunk-EQTQGGE6.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":17817},"packages/sdk/app-framework/dist/lib/browser/chunk-EQTQGGE6.mjs":{"imports":[{"path":"packages/sdk/app-framework/dist/lib/browser/chunk-3E7RY3CE.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/echo-schema","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"exports":["ErrorBoundary","Surface","SurfaceProvider","isObject","meta_default","parseRootSurfacePlugin","parseSurfacePlugin","plugin_surface_default","useSurface","useSurfaceRoot"],"inputs":{"packages/sdk/app-framework/src/plugins/plugin-surface/SurfacePlugin.tsx":{"bytesInOutput":661},"packages/sdk/app-framework/src/plugins/plugin-surface/SurfaceRootContext.tsx":{"bytesInOutput":312},"packages/sdk/app-framework/src/plugins/plugin-surface/meta.ts":{"bytesInOutput":87},"packages/sdk/app-framework/src/plugins/plugin-surface/provides.ts":{"bytesInOutput":191},"packages/sdk/app-framework/src/plugins/plugin-surface/helpers.ts":{"bytesInOutput":61},"packages/sdk/app-framework/src/plugins/plugin-surface/index.ts":{"bytesInOutput":44},"packages/sdk/app-framework/src/plugins/plugin-surface/ErrorBoundary.tsx":{"bytesInOutput":707},"packages/sdk/app-framework/src/plugins/plugin-surface/Surface.tsx":{"bytesInOutput":3417}},"bytes":6424},"packages/sdk/app-framework/dist/lib/browser/chunk-3E7RY3CE.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":4320},"packages/sdk/app-framework/dist/lib/browser/chunk-3E7RY3CE.mjs":{"imports":[{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true}],"exports":["definePlugin","filterPlugins","findPlugin","getPlugin","resolvePlugin"],"inputs":{"packages/sdk/app-framework/src/plugins/helpers.ts":{"bytesInOutput":1756}},"bytes":1942},"packages/sdk/app-framework/dist/lib/browser/plugin-settings-OM3G2QFY.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/sdk/app-framework/dist/lib/browser/plugin-settings-OM3G2QFY.mjs":{"imports":[{"path":"packages/sdk/app-framework/dist/lib/browser/chunk-653Y45CL.mjs","kind":"import-statement"}],"exports":["SettingsAction","default","parseSettingsPlugin"],"entryPoint":"packages/sdk/app-framework/src/plugins/plugin-settings/index.ts","inputs":{},"bytes":251},"packages/sdk/app-framework/dist/lib/browser/chunk-653Y45CL.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2645},"packages/sdk/app-framework/dist/lib/browser/chunk-653Y45CL.mjs":{"imports":[{"path":"@dxos/local-storage","kind":"import-statement","external":true}],"exports":["SettingsAction","meta_default","parseSettingsPlugin","plugin_settings_default"],"inputs":{"packages/sdk/app-framework/src/plugins/plugin-settings/SettingsPlugin.tsx":{"bytesInOutput":220},"packages/sdk/app-framework/src/plugins/plugin-settings/meta.ts":{"bytesInOutput":90},"packages/sdk/app-framework/src/plugins/plugin-settings/provides.ts":{"bytesInOutput":397},"packages/sdk/app-framework/src/plugins/plugin-settings/index.ts":{"bytesInOutput":46}},"bytes":1254}}}
1
+ {"inputs":{"packages/sdk/app-framework/src/plugins/common/file.ts":{"bytes":2950,"imports":[],"format":"esm"},"packages/sdk/app-framework/src/plugins/common/graph.ts":{"bytes":3905,"imports":[],"format":"esm"},"packages/sdk/app-framework/src/plugins/common/layout.ts":{"bytes":12113,"imports":[{"path":"zod","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/app-framework/src/plugins/common/metadata.ts":{"bytes":2094,"imports":[],"format":"esm"},"packages/sdk/app-framework/src/plugins/common/navigation.ts":{"bytes":16951,"imports":[{"path":"@effect/schema","kind":"import-statement","external":true},{"path":"zod","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/app-framework/src/plugins/common/translations.ts":{"bytes":3192,"imports":[{"path":"zod","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/app-framework/src/plugins/common/index.ts":{"bytes":954,"imports":[{"path":"packages/sdk/app-framework/src/plugins/common/file.ts","kind":"import-statement","original":"./file"},{"path":"packages/sdk/app-framework/src/plugins/common/graph.ts","kind":"import-statement","original":"./graph"},{"path":"packages/sdk/app-framework/src/plugins/common/layout.ts","kind":"import-statement","original":"./layout"},{"path":"packages/sdk/app-framework/src/plugins/common/metadata.ts","kind":"import-statement","original":"./metadata"},{"path":"packages/sdk/app-framework/src/plugins/common/navigation.ts","kind":"import-statement","original":"./navigation"},{"path":"packages/sdk/app-framework/src/plugins/common/translations.ts","kind":"import-statement","original":"./translations"}],"format":"esm"},"packages/sdk/app-framework/src/plugins/helpers.ts":{"bytes":8632,"imports":[{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/app-framework/src/plugins/plugin-intent/IntentContext.tsx":{"bytes":4091,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/app-framework/src/plugins/plugin-intent/helpers.ts":{"bytes":1171,"imports":[],"format":"esm"},"packages/sdk/app-framework/src/plugins/plugin-intent/meta.ts":{"bytes":727,"imports":[],"format":"esm"},"packages/sdk/app-framework/src/plugins/plugin-intent/provides.ts":{"bytes":2925,"imports":[],"format":"esm"},"packages/sdk/app-framework/src/plugins/plugin-intent/IntentPlugin.tsx":{"bytes":19221,"imports":[{"path":"react","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/plugins/plugin-intent/IntentContext.tsx","kind":"import-statement","original":"./IntentContext"},{"path":"packages/sdk/app-framework/src/plugins/plugin-intent/helpers.ts","kind":"import-statement","original":"./helpers"},{"path":"packages/sdk/app-framework/src/plugins/plugin-intent/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/sdk/app-framework/src/plugins/plugin-intent/provides.ts","kind":"import-statement","original":"./provides"},{"path":"packages/sdk/app-framework/src/plugins/helpers.ts","kind":"import-statement","original":"../helpers"}],"format":"esm"},"packages/sdk/app-framework/src/plugins/plugin-intent/intent.ts":{"bytes":4142,"imports":[],"format":"esm"},"packages/sdk/app-framework/src/plugins/plugin-intent/index.ts":{"bytes":979,"imports":[{"path":"packages/sdk/app-framework/src/plugins/plugin-intent/IntentPlugin.tsx","kind":"import-statement","original":"./IntentPlugin"},{"path":"packages/sdk/app-framework/src/plugins/plugin-intent/intent.ts","kind":"import-statement","original":"./intent"},{"path":"packages/sdk/app-framework/src/plugins/plugin-intent/provides.ts","kind":"import-statement","original":"./provides"},{"path":"packages/sdk/app-framework/src/plugins/plugin-intent/IntentContext.tsx","kind":"import-statement","original":"./IntentContext"}],"format":"esm"},"packages/sdk/app-framework/src/plugins/plugin-host/plugin.ts":{"bytes":5033,"imports":[],"format":"esm"},"packages/sdk/app-framework/src/plugins/plugin-host/PluginContainer.tsx":{"bytes":13322,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/app-framework/src/plugins/plugin-host/PluginContext.tsx":{"bytes":5419,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"packages/sdk/app-framework/src/plugins/helpers.ts","kind":"import-statement","original":"../helpers"}],"format":"esm"},"packages/sdk/app-framework/src/plugins/plugin-surface/SurfaceRootContext.tsx":{"bytes":3334,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/app-framework/src/plugins/plugin-surface/meta.ts":{"bytes":735,"imports":[],"format":"esm"},"packages/sdk/app-framework/src/plugins/plugin-surface/provides.ts":{"bytes":2035,"imports":[],"format":"esm"},"packages/sdk/app-framework/src/plugins/plugin-surface/SurfacePlugin.tsx":{"bytes":4012,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"packages/sdk/app-framework/src/plugins/plugin-surface/SurfaceRootContext.tsx","kind":"import-statement","original":"./SurfaceRootContext"},{"path":"packages/sdk/app-framework/src/plugins/plugin-surface/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/sdk/app-framework/src/plugins/plugin-surface/provides.ts","kind":"import-statement","original":"./provides"},{"path":"packages/sdk/app-framework/src/plugins/helpers.ts","kind":"import-statement","original":"../helpers"}],"format":"esm"},"packages/sdk/app-framework/src/plugins/plugin-surface/helpers.ts":{"bytes":1818,"imports":[],"format":"esm"},"packages/sdk/app-framework/src/plugins/plugin-surface/ErrorBoundary.tsx":{"bytes":4344,"imports":[{"path":"react","kind":"import-statement","external":true}],"format":"esm"},"packages/sdk/app-framework/src/plugins/plugin-surface/Surface.tsx":{"bytes":16952,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"packages/sdk/app-framework/src/plugins/plugin-surface/ErrorBoundary.tsx","kind":"import-statement","original":"./ErrorBoundary"},{"path":"packages/sdk/app-framework/src/plugins/plugin-surface/SurfaceRootContext.tsx","kind":"import-statement","original":"./SurfaceRootContext"}],"format":"esm"},"packages/sdk/app-framework/src/plugins/plugin-surface/index.ts":{"bytes":1193,"imports":[{"path":"packages/sdk/app-framework/src/plugins/plugin-surface/SurfacePlugin.tsx","kind":"import-statement","original":"./SurfacePlugin"},{"path":"packages/sdk/app-framework/src/plugins/plugin-surface/helpers.ts","kind":"import-statement","original":"./helpers"},{"path":"packages/sdk/app-framework/src/plugins/plugin-surface/provides.ts","kind":"import-statement","original":"./provides"},{"path":"packages/sdk/app-framework/src/plugins/plugin-surface/ErrorBoundary.tsx","kind":"import-statement","original":"./ErrorBoundary"},{"path":"packages/sdk/app-framework/src/plugins/plugin-surface/Surface.tsx","kind":"import-statement","original":"./Surface"},{"path":"packages/sdk/app-framework/src/plugins/plugin-surface/SurfaceRootContext.tsx","kind":"import-statement","original":"./SurfaceRootContext"}],"format":"esm"},"packages/sdk/app-framework/src/plugins/plugin-host/HostPlugin.tsx":{"bytes":9462,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/local-storage","kind":"import-statement","external":true},{"path":"packages/sdk/app-framework/src/plugins/plugin-host/PluginContainer.tsx","kind":"import-statement","original":"./PluginContainer"},{"path":"packages/sdk/app-framework/src/plugins/plugin-host/PluginContext.tsx","kind":"import-statement","original":"./PluginContext"},{"path":"packages/sdk/app-framework/src/plugins/plugin-surface/index.ts","kind":"import-statement","original":"../plugin-surface"}],"format":"esm"},"packages/sdk/app-framework/src/plugins/plugin-host/index.ts":{"bytes":715,"imports":[{"path":"packages/sdk/app-framework/src/plugins/plugin-host/plugin.ts","kind":"import-statement","original":"./plugin"},{"path":"packages/sdk/app-framework/src/plugins/plugin-host/HostPlugin.tsx","kind":"import-statement","original":"./HostPlugin"},{"path":"packages/sdk/app-framework/src/plugins/plugin-host/PluginContext.tsx","kind":"import-statement","original":"./PluginContext"}],"format":"esm"},"packages/sdk/app-framework/src/plugins/plugin-settings/meta.ts":{"bytes":743,"imports":[],"format":"esm"},"packages/sdk/app-framework/src/plugins/plugin-settings/SettingsPlugin.tsx":{"bytes":2052,"imports":[{"path":"@dxos/local-storage","kind":"import-statement","external":true},{"path":"packages/sdk/app-framework/src/plugins/plugin-settings/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/sdk/app-framework/src/plugins/plugin-settings/provides.ts":{"bytes":2244,"imports":[],"format":"esm"},"packages/sdk/app-framework/src/plugins/plugin-settings/index.ts":{"bytes":808,"imports":[{"path":"packages/sdk/app-framework/src/plugins/plugin-settings/SettingsPlugin.tsx","kind":"import-statement","original":"./SettingsPlugin"},{"path":"packages/sdk/app-framework/src/plugins/plugin-settings/provides.ts","kind":"import-statement","original":"./provides"}],"format":"esm"},"packages/sdk/app-framework/src/plugins/index.ts":{"bytes":1008,"imports":[{"path":"packages/sdk/app-framework/src/plugins/common/index.ts","kind":"import-statement","original":"./common"},{"path":"packages/sdk/app-framework/src/plugins/helpers.ts","kind":"import-statement","original":"./helpers"},{"path":"packages/sdk/app-framework/src/plugins/plugin-intent/index.ts","kind":"import-statement","original":"./plugin-intent"},{"path":"packages/sdk/app-framework/src/plugins/plugin-host/index.ts","kind":"import-statement","original":"./plugin-host"},{"path":"packages/sdk/app-framework/src/plugins/plugin-settings/index.ts","kind":"import-statement","original":"./plugin-settings"},{"path":"packages/sdk/app-framework/src/plugins/plugin-surface/index.ts","kind":"import-statement","original":"./plugin-surface"}],"format":"esm"},"packages/sdk/app-framework/src/App.tsx":{"bytes":7547,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"packages/sdk/app-framework/src/plugins/index.ts","kind":"import-statement","original":"./plugins"},{"path":"packages/sdk/app-framework/src/plugins/plugin-intent/meta.ts","kind":"import-statement","original":"./plugins/plugin-intent/meta"},{"path":"packages/sdk/app-framework/src/plugins/plugin-settings/meta.ts","kind":"import-statement","original":"./plugins/plugin-settings/meta"},{"path":"packages/sdk/app-framework/src/plugins/plugin-surface/meta.ts","kind":"import-statement","original":"./plugins/plugin-surface/meta"},{"path":"packages/sdk/app-framework/src/plugins/plugin-intent/index.ts","kind":"dynamic-import","original":"./plugins/plugin-intent"},{"path":"packages/sdk/app-framework/src/plugins/plugin-settings/index.ts","kind":"dynamic-import","original":"./plugins/plugin-settings"},{"path":"packages/sdk/app-framework/src/plugins/plugin-surface/index.ts","kind":"dynamic-import","original":"./plugins/plugin-surface"}],"format":"esm"},"packages/sdk/app-framework/src/index.ts":{"bytes":576,"imports":[{"path":"packages/sdk/app-framework/src/plugins/index.ts","kind":"import-statement","original":"./plugins"},{"path":"packages/sdk/app-framework/src/App.tsx","kind":"import-statement","original":"./App"}],"format":"esm"}},"outputs":{"packages/sdk/app-framework/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":43154},"packages/sdk/app-framework/dist/lib/browser/index.mjs":{"imports":[{"path":"packages/sdk/app-framework/dist/lib/browser/chunk-YXM35XRE.mjs","kind":"import-statement"},{"path":"packages/sdk/app-framework/dist/lib/browser/chunk-FRXJ25VI.mjs","kind":"import-statement"},{"path":"packages/sdk/app-framework/dist/lib/browser/chunk-3E7RY3CE.mjs","kind":"import-statement"},{"path":"packages/sdk/app-framework/dist/lib/browser/chunk-653Y45CL.mjs","kind":"import-statement"},{"path":"zod","kind":"import-statement","external":true},{"path":"@effect/schema","kind":"import-statement","external":true},{"path":"zod","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"zod","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/local-storage","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/util","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true},{"path":"packages/sdk/app-framework/dist/lib/browser/plugin-intent-LU4KL2RO.mjs","kind":"dynamic-import"},{"path":"packages/sdk/app-framework/dist/lib/browser/plugin-settings-OM3G2QFY.mjs","kind":"dynamic-import"},{"path":"packages/sdk/app-framework/dist/lib/browser/plugin-surface-LECZMKSQ.mjs","kind":"dynamic-import"}],"exports":["ActiveParts","ErrorBoundary","HostPlugin","IntentAction","IntentProvider","Layout","LayoutAction","NavigationAction","Plugin","PluginProvider","Resource","ResourceKey","ResourceLanguage","SLUG_COLLECTION_INDICATOR","SLUG_ENTRY_SEPARATOR","SLUG_KEY_VALUE_SEPARATOR","SLUG_LIST_SEPARATOR","SLUG_PATH_SEPARATOR","SettingsAction","Surface","SurfaceProvider","Toast","createApp","defaultFileTypes","definePlugin","filterPlugins","findPlugin","firstIdInPart","getPlugin","indexInPart","isLayoutAdjustment","isLayoutMode","isLayoutParts","isObject","openIds","parseFileManagerPlugin","parseGraphBuilderPlugin","parseGraphPlugin","parseGraphSerializerPlugin","parseIntentPlugin","parseIntentResolverPlugin","parseLayoutPlugin","parseMetadataRecordsPlugin","parseMetadataResolverPlugin","parseNavigationPlugin","parsePluginHost","parseRootSurfacePlugin","parseSettingsPlugin","parseSurfacePlugin","parseTranslationsPlugin","partLength","resolvePlugin","useIntent","useIntentDispatcher","useIntentResolver","usePlugin","usePlugins","useResolvePlugin","useResolvePlugins","useSurface","useSurfaceRoot"],"entryPoint":"packages/sdk/app-framework/src/index.ts","inputs":{"packages/sdk/app-framework/src/plugins/common/file.ts":{"bytesInOutput":288},"packages/sdk/app-framework/src/plugins/common/index.ts":{"bytesInOutput":0},"packages/sdk/app-framework/src/plugins/common/graph.ts":{"bytesInOutput":272},"packages/sdk/app-framework/src/plugins/common/layout.ts":{"bytesInOutput":2269},"packages/sdk/app-framework/src/plugins/common/metadata.ts":{"bytesInOutput":226},"packages/sdk/app-framework/src/plugins/common/navigation.ts":{"bytesInOutput":3050},"packages/sdk/app-framework/src/plugins/common/translations.ts":{"bytesInOutput":357},"packages/sdk/app-framework/src/plugins/index.ts":{"bytesInOutput":0},"packages/sdk/app-framework/src/plugins/plugin-host/plugin.ts":{"bytesInOutput":197},"packages/sdk/app-framework/src/plugins/plugin-host/index.ts":{"bytesInOutput":0},"packages/sdk/app-framework/src/plugins/plugin-host/HostPlugin.tsx":{"bytesInOutput":1893},"packages/sdk/app-framework/src/plugins/plugin-host/PluginContainer.tsx":{"bytesInOutput":3386},"packages/sdk/app-framework/src/plugins/plugin-host/PluginContext.tsx":{"bytesInOutput":742},"packages/sdk/app-framework/src/index.ts":{"bytesInOutput":0},"packages/sdk/app-framework/src/App.tsx":{"bytesInOutput":1351}},"bytes":16631},"packages/sdk/app-framework/dist/lib/browser/plugin-intent-LU4KL2RO.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/sdk/app-framework/dist/lib/browser/plugin-intent-LU4KL2RO.mjs":{"imports":[{"path":"packages/sdk/app-framework/dist/lib/browser/chunk-YXM35XRE.mjs","kind":"import-statement"},{"path":"packages/sdk/app-framework/dist/lib/browser/chunk-3E7RY3CE.mjs","kind":"import-statement"}],"exports":["IntentAction","IntentProvider","default","parseIntentPlugin","parseIntentResolverPlugin","useIntent","useIntentDispatcher","useIntentResolver"],"entryPoint":"packages/sdk/app-framework/src/plugins/plugin-intent/index.ts","inputs":{},"bytes":476},"packages/sdk/app-framework/dist/lib/browser/chunk-YXM35XRE.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":13613},"packages/sdk/app-framework/dist/lib/browser/chunk-YXM35XRE.mjs":{"imports":[{"path":"packages/sdk/app-framework/dist/lib/browser/chunk-3E7RY3CE.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true}],"exports":["IntentAction","IntentProvider","meta_default","parseIntentPlugin","parseIntentResolverPlugin","plugin_intent_default","useIntent","useIntentDispatcher","useIntentResolver"],"inputs":{"packages/sdk/app-framework/src/plugins/plugin-intent/IntentPlugin.tsx":{"bytesInOutput":4541},"packages/sdk/app-framework/src/plugins/plugin-intent/IntentContext.tsx":{"bytesInOutput":637},"packages/sdk/app-framework/src/plugins/plugin-intent/helpers.ts":{"bytesInOutput":94},"packages/sdk/app-framework/src/plugins/plugin-intent/meta.ts":{"bytesInOutput":84},"packages/sdk/app-framework/src/plugins/plugin-intent/provides.ts":{"bytesInOutput":453},"packages/sdk/app-framework/src/plugins/plugin-intent/index.ts":{"bytesInOutput":42}},"bytes":6650},"packages/sdk/app-framework/dist/lib/browser/plugin-surface-LECZMKSQ.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/sdk/app-framework/dist/lib/browser/plugin-surface-LECZMKSQ.mjs":{"imports":[{"path":"packages/sdk/app-framework/dist/lib/browser/chunk-FRXJ25VI.mjs","kind":"import-statement"},{"path":"packages/sdk/app-framework/dist/lib/browser/chunk-3E7RY3CE.mjs","kind":"import-statement"}],"exports":["ErrorBoundary","Surface","SurfaceProvider","default","isObject","parseRootSurfacePlugin","parseSurfacePlugin","useSurface","useSurfaceRoot"],"entryPoint":"packages/sdk/app-framework/src/plugins/plugin-surface/index.ts","inputs":{},"bytes":475},"packages/sdk/app-framework/dist/lib/browser/chunk-FRXJ25VI.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":17812},"packages/sdk/app-framework/dist/lib/browser/chunk-FRXJ25VI.mjs":{"imports":[{"path":"packages/sdk/app-framework/dist/lib/browser/chunk-3E7RY3CE.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/live-object","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/log","kind":"import-statement","external":true}],"exports":["ErrorBoundary","Surface","SurfaceProvider","isObject","meta_default","parseRootSurfacePlugin","parseSurfacePlugin","plugin_surface_default","useSurface","useSurfaceRoot"],"inputs":{"packages/sdk/app-framework/src/plugins/plugin-surface/SurfacePlugin.tsx":{"bytesInOutput":661},"packages/sdk/app-framework/src/plugins/plugin-surface/SurfaceRootContext.tsx":{"bytesInOutput":312},"packages/sdk/app-framework/src/plugins/plugin-surface/meta.ts":{"bytesInOutput":87},"packages/sdk/app-framework/src/plugins/plugin-surface/provides.ts":{"bytesInOutput":191},"packages/sdk/app-framework/src/plugins/plugin-surface/helpers.ts":{"bytesInOutput":61},"packages/sdk/app-framework/src/plugins/plugin-surface/index.ts":{"bytesInOutput":44},"packages/sdk/app-framework/src/plugins/plugin-surface/ErrorBoundary.tsx":{"bytesInOutput":707},"packages/sdk/app-framework/src/plugins/plugin-surface/Surface.tsx":{"bytesInOutput":3417}},"bytes":6424},"packages/sdk/app-framework/dist/lib/browser/chunk-3E7RY3CE.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":4320},"packages/sdk/app-framework/dist/lib/browser/chunk-3E7RY3CE.mjs":{"imports":[{"path":"@dxos/context","kind":"import-statement","external":true},{"path":"@dxos/debug","kind":"import-statement","external":true},{"path":"@dxos/invariant","kind":"import-statement","external":true}],"exports":["definePlugin","filterPlugins","findPlugin","getPlugin","resolvePlugin"],"inputs":{"packages/sdk/app-framework/src/plugins/helpers.ts":{"bytesInOutput":1756}},"bytes":1942},"packages/sdk/app-framework/dist/lib/browser/plugin-settings-OM3G2QFY.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"packages/sdk/app-framework/dist/lib/browser/plugin-settings-OM3G2QFY.mjs":{"imports":[{"path":"packages/sdk/app-framework/dist/lib/browser/chunk-653Y45CL.mjs","kind":"import-statement"}],"exports":["SettingsAction","default","parseSettingsPlugin"],"entryPoint":"packages/sdk/app-framework/src/plugins/plugin-settings/index.ts","inputs":{},"bytes":251},"packages/sdk/app-framework/dist/lib/browser/chunk-653Y45CL.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":2645},"packages/sdk/app-framework/dist/lib/browser/chunk-653Y45CL.mjs":{"imports":[{"path":"@dxos/local-storage","kind":"import-statement","external":true}],"exports":["SettingsAction","meta_default","parseSettingsPlugin","plugin_settings_default"],"inputs":{"packages/sdk/app-framework/src/plugins/plugin-settings/SettingsPlugin.tsx":{"bytesInOutput":220},"packages/sdk/app-framework/src/plugins/plugin-settings/meta.ts":{"bytesInOutput":90},"packages/sdk/app-framework/src/plugins/plugin-settings/provides.ts":{"bytesInOutput":397},"packages/sdk/app-framework/src/plugins/plugin-settings/index.ts":{"bytesInOutput":46}},"bytes":1254}}}
@@ -7,7 +7,7 @@ import {
7
7
  useIntent,
8
8
  useIntentDispatcher,
9
9
  useIntentResolver
10
- } from "./chunk-CDLQO5K2.mjs";
10
+ } from "./chunk-YXM35XRE.mjs";
11
11
  import "./chunk-3E7RY3CE.mjs";
12
12
  export {
13
13
  IntentAction,
@@ -19,4 +19,4 @@ export {
19
19
  useIntentDispatcher,
20
20
  useIntentResolver
21
21
  };
22
- //# sourceMappingURL=plugin-intent-Q5KFPKFA.mjs.map
22
+ //# sourceMappingURL=plugin-intent-LU4KL2RO.mjs.map
@@ -8,7 +8,7 @@ import {
8
8
  plugin_surface_default,
9
9
  useSurface,
10
10
  useSurfaceRoot
11
- } from "./chunk-EQTQGGE6.mjs";
11
+ } from "./chunk-FRXJ25VI.mjs";
12
12
  import "./chunk-3E7RY3CE.mjs";
13
13
  export {
14
14
  ErrorBoundary,
@@ -21,4 +21,4 @@ export {
21
21
  useSurface,
22
22
  useSurfaceRoot
23
23
  };
24
- //# sourceMappingURL=plugin-surface-ZQXFAL46.mjs.map
24
+ //# sourceMappingURL=plugin-surface-LECZMKSQ.mjs.map
@@ -26,8 +26,8 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
26
  mod
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var chunk_VOKMWTKO_exports = {};
30
- __export(chunk_VOKMWTKO_exports, {
29
+ var chunk_QSVP5HOW_exports = {};
30
+ __export(chunk_QSVP5HOW_exports, {
31
31
  IntentAction: () => IntentAction,
32
32
  IntentProvider: () => IntentProvider,
33
33
  meta_default: () => meta_default,
@@ -38,10 +38,10 @@ __export(chunk_VOKMWTKO_exports, {
38
38
  useIntentDispatcher: () => useIntentDispatcher,
39
39
  useIntentResolver: () => useIntentResolver
40
40
  });
41
- module.exports = __toCommonJS(chunk_VOKMWTKO_exports);
41
+ module.exports = __toCommonJS(chunk_QSVP5HOW_exports);
42
42
  var import_chunk_QBM42OQ6 = require("./chunk-QBM42OQ6.cjs");
43
43
  var import_react = __toESM(require("react"));
44
- var import_echo_schema = require("@dxos/echo-schema");
44
+ var import_live_object = require("@dxos/live-object");
45
45
  var import_log = require("@dxos/log");
46
46
  var import_react2 = require("react");
47
47
  var import_react3 = require("react");
@@ -85,7 +85,7 @@ var __dxlog_file = "/home/runner/work/dxos/dxos/packages/sdk/app-framework/src/p
85
85
  var EXECUTION_LIMIT = 1e3;
86
86
  var HISTORY_LIMIT = 100;
87
87
  var IntentPlugin = () => {
88
- const state = (0, import_echo_schema.create)({
88
+ const state = (0, import_live_object.create)({
89
89
  dispatch: async () => ({}),
90
90
  undo: async () => ({}),
91
91
  history: [],
@@ -235,4 +235,4 @@ var plugin_intent_default = IntentPlugin;
235
235
  useIntentDispatcher,
236
236
  useIntentResolver
237
237
  });
238
- //# sourceMappingURL=chunk-VOKMWTKO.cjs.map
238
+ //# sourceMappingURL=chunk-QSVP5HOW.cjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/plugins/plugin-intent/IntentPlugin.tsx", "../../../src/plugins/plugin-intent/IntentContext.tsx", "../../../src/plugins/plugin-intent/helpers.ts", "../../../src/plugins/plugin-intent/meta.ts", "../../../src/plugins/plugin-intent/provides.ts", "../../../src/plugins/plugin-intent/index.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { create } from '@dxos/echo-schema';\nimport { log } from '@dxos/log';\n\nimport { type IntentContext, IntentProvider, type IntentExecution } from './IntentContext';\nimport { isUndoable } from './helpers';\nimport type { Intent, IntentResolver } from './intent';\nimport IntentMeta from './meta';\nimport {\n type IntentPluginProvides,\n type IntentResolverProvides,\n parseIntentResolverPlugin,\n IntentAction,\n} from './provides';\nimport { filterPlugins, findPlugin } from '../helpers';\nimport { type PluginDefinition } from '../plugin-host';\n\nconst EXECUTION_LIMIT = 1000;\nconst HISTORY_LIMIT = 100;\n\n/**\n * Allows plugins to register intent handlers and routes sent intents to the appropriate plugin.\n * Inspired by https://developer.android.com/reference/android/content/Intent.\n */\nexport const IntentPlugin = (): PluginDefinition<IntentPluginProvides> => {\n const state = create<IntentContext>({\n dispatch: async () => ({}),\n undo: async () => ({}),\n history: [],\n registerResolver: () => () => {},\n });\n\n const dynamicResolvers = new Set<{ plugin: string; resolver: IntentResolver }>();\n\n return {\n meta: IntentMeta,\n ready: async (plugins) => {\n // Dispatch intent to associated plugin.\n const dispatch = async (intent: Intent) => {\n log('dispatch', { action: intent.action, intent });\n if (intent.plugin) {\n for (const entry of dynamicResolvers) {\n if (entry.plugin === intent.plugin) {\n const result = await entry.resolver(intent, plugins);\n if (result) {\n return result;\n }\n }\n }\n\n const plugin = findPlugin<IntentResolverProvides>(plugins, intent.plugin);\n return plugin?.provides.intent.resolver(intent, plugins);\n }\n\n for (const entry of dynamicResolvers) {\n const result = await entry.resolver(intent, plugins);\n if (result) {\n return result;\n }\n }\n\n // Return resolved value from first plugin that handles the intent.\n for (const plugin of filterPlugins(plugins, parseIntentResolverPlugin)) {\n const result = await plugin.provides.intent.resolver(intent, plugins);\n if (result) {\n return result;\n }\n }\n\n // https://vitejs.dev/guide/env-and-mode#env-variables\n // TODO(wittjosiah): How to handle this more generically?\n if (import.meta?.env?.DEV) {\n log.warn('No plugin found to handle intent', intent);\n }\n };\n\n // Sequentially dispatch array of invents.\n const dispatchChain = async (intentOrArray: Intent | Intent[], depth = 0) => {\n if (depth > EXECUTION_LIMIT) {\n return {\n error: new Error(\n `Intent execution limit exceeded (${EXECUTION_LIMIT} iterations). This is likely due to an infinite loop within intent resolvers.`,\n ),\n };\n }\n\n const executionResults: IntentExecution[] = [];\n const chain = Array.isArray(intentOrArray) ? intentOrArray : [intentOrArray];\n for (const intent of chain) {\n const { result: prevResult } = executionResults.at(-1) ?? {};\n const data = intent.data ? { result: prevResult?.data, ...intent.data } : prevResult?.data;\n const result = await dispatch({ ...intent, data });\n\n if (!result || result?.error) {\n break;\n }\n\n executionResults.push({ intent, result });\n\n // TODO(wittjosiah): How does undo work with returned intents?\n result?.intents?.forEach((intents) => {\n void dispatchChain(intents, depth + 1);\n });\n }\n\n state.history.push(executionResults);\n if (state.history.length > HISTORY_LIMIT) {\n state.history.splice(0, state.history.length - HISTORY_LIMIT);\n }\n\n if (isUndoable(executionResults)) {\n void dispatch({ action: IntentAction.SHOW_UNDO, data: { results: executionResults } });\n }\n\n return executionResults.at(-1)?.result;\n };\n\n const undo = async () => {\n const last = state.history.findLastIndex(isUndoable);\n const chain =\n last !== -1 &&\n state.history[last]?.map(({ intent, result }): Intent => {\n const data = result.undoable?.data ? { ...intent.data, ...result.undoable.data } : intent.data;\n return { ...intent, data, undo: true };\n });\n if (chain) {\n const result = await dispatchChain(chain);\n state.history = state.history.filter((_, index) => index !== last);\n return result;\n }\n };\n\n state.dispatch = dispatchChain;\n state.undo = undo;\n state.registerResolver = (plugin, resolver) => {\n const entry = { plugin, resolver };\n dynamicResolvers.add(entry);\n return () => dynamicResolvers.delete(entry);\n };\n },\n provides: {\n intent: state,\n context: ({ children }) => <IntentProvider value={state}>{children}</IntentProvider>,\n },\n };\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Context, createContext, useContext, type Provider } from 'react';\nimport { useEffect } from 'react';\n\nimport type { UnsubscribeCallback } from '@dxos/async';\n\nimport type { Intent, IntentDispatcher, IntentResolver, IntentResult } from './intent';\n\nexport type IntentExecution = {\n intent: Intent;\n result: IntentResult;\n};\n\nexport type IntentContext = {\n dispatch: IntentDispatcher;\n undo: () => Promise<IntentResult | void>;\n history: IntentExecution[][];\n registerResolver: (pluginId: string, resolver: IntentResolver) => UnsubscribeCallback;\n};\n\nconst IntentContext: Context<IntentContext> = createContext<IntentContext>({\n dispatch: async () => ({}),\n undo: async () => ({}),\n history: [],\n registerResolver: () => () => {},\n});\n\n/**\n * @deprecated Prefer granular hooks.\n */\n// TODO(burdon): Remove. Use useIntentDispatcher.\nexport const useIntent = () => useContext(IntentContext);\n\nexport const useIntentDispatcher = (): IntentDispatcher => {\n const { dispatch } = useIntent();\n return dispatch;\n};\n\nexport const useIntentResolver = (plugin: string, resolver: IntentResolver) => {\n const { registerResolver } = useIntent();\n useEffect(() => {\n return registerResolver(plugin, resolver);\n }, [plugin, resolver]);\n};\n\nexport const IntentProvider: Provider<IntentContext> = IntentContext.Provider;\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { type IntentExecution } from './IntentContext';\n\n/**\n * Check if the chain of intents is undoable.\n */\nexport const isUndoable = (chain: IntentExecution[]): boolean =>\n chain.length > 0 && chain.every(({ result }) => result.undoable);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nconst IntentMeta = {\n id: 'dxos.org/plugin/intent',\n};\n\nexport default IntentMeta;\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type IntentContext } from './IntentContext';\nimport { type IntentResolver } from './intent';\nimport { type Plugin } from '../plugin-host';\n\nexport type IntentResolverProvides = {\n intent: {\n resolver: IntentResolver;\n };\n};\n\nexport type IntentPluginProvides = {\n intent: IntentContext;\n};\n\nexport const parseIntentPlugin = (plugin: Plugin) =>\n (plugin.provides as any).intent?.dispatch ? (plugin as Plugin<IntentPluginProvides>) : undefined;\n\nexport const parseIntentResolverPlugin = (plugin: Plugin) =>\n (plugin.provides as any).intent?.resolver ? (plugin as Plugin<IntentResolverProvides>) : undefined;\n\n//\n// Intents\n//\n\nconst INTENT_PLUGIN = 'dxos.org/plugin/intent';\n\nconst INTENT_ACTION = `${INTENT_PLUGIN}/action`;\n\nexport enum IntentAction {\n /**\n * Fired after an intent is dispatched if the intent is undoable.\n */\n SHOW_UNDO = `${INTENT_ACTION}/show-undo`,\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { IntentPlugin } from './IntentPlugin';\n\nexport * from './intent';\nexport * from './provides';\n\nexport * from './IntentContext';\n\nexport default IntentPlugin;\n"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { create } from '@dxos/live-object';\nimport { log } from '@dxos/log';\n\nimport { type IntentContext, type IntentExecution, IntentProvider } from './IntentContext';\nimport { isUndoable } from './helpers';\nimport type { Intent, IntentResolver } from './intent';\nimport IntentMeta from './meta';\nimport {\n IntentAction,\n type IntentPluginProvides,\n type IntentResolverProvides,\n parseIntentResolverPlugin,\n} from './provides';\nimport { filterPlugins, findPlugin } from '../helpers';\nimport { type PluginDefinition } from '../plugin-host';\n\nconst EXECUTION_LIMIT = 1000;\nconst HISTORY_LIMIT = 100;\n\n/**\n * Allows plugins to register intent handlers and routes sent intents to the appropriate plugin.\n * Inspired by https://developer.android.com/reference/android/content/Intent.\n */\nexport const IntentPlugin = (): PluginDefinition<IntentPluginProvides> => {\n const state = create<IntentContext>({\n dispatch: async () => ({}),\n undo: async () => ({}),\n history: [],\n registerResolver: () => () => {},\n });\n\n const dynamicResolvers = new Set<{ plugin: string; resolver: IntentResolver }>();\n\n return {\n meta: IntentMeta,\n ready: async (plugins) => {\n // Dispatch intent to associated plugin.\n const dispatch = async (intent: Intent) => {\n log('dispatch', { action: intent.action, intent });\n if (intent.plugin) {\n for (const entry of dynamicResolvers) {\n if (entry.plugin === intent.plugin) {\n const result = await entry.resolver(intent, plugins);\n if (result) {\n return result;\n }\n }\n }\n\n const plugin = findPlugin<IntentResolverProvides>(plugins, intent.plugin);\n return plugin?.provides.intent.resolver(intent, plugins);\n }\n\n for (const entry of dynamicResolvers) {\n const result = await entry.resolver(intent, plugins);\n if (result) {\n return result;\n }\n }\n\n // Return resolved value from first plugin that handles the intent.\n for (const plugin of filterPlugins(plugins, parseIntentResolverPlugin)) {\n const result = await plugin.provides.intent.resolver(intent, plugins);\n if (result) {\n return result;\n }\n }\n\n // https://vitejs.dev/guide/env-and-mode#env-variables\n // TODO(wittjosiah): How to handle this more generically?\n if (import.meta?.env?.DEV) {\n log.warn('No plugin found to handle intent', intent);\n }\n };\n\n // Sequentially dispatch array of invents.\n const dispatchChain = async (intentOrArray: Intent | Intent[], depth = 0) => {\n if (depth > EXECUTION_LIMIT) {\n return {\n error: new Error(\n `Intent execution limit exceeded (${EXECUTION_LIMIT} iterations). This is likely due to an infinite loop within intent resolvers.`,\n ),\n };\n }\n\n const executionResults: IntentExecution[] = [];\n const chain = Array.isArray(intentOrArray) ? intentOrArray : [intentOrArray];\n for (const intent of chain) {\n const { result: prevResult } = executionResults.at(-1) ?? {};\n const data = intent.data ? { result: prevResult?.data, ...intent.data } : prevResult?.data;\n const result = await dispatch({ ...intent, data });\n\n if (!result || result?.error) {\n break;\n }\n\n executionResults.push({ intent, result });\n\n // TODO(wittjosiah): How does undo work with returned intents?\n result?.intents?.forEach((intents) => {\n void dispatchChain(intents, depth + 1);\n });\n }\n\n state.history.push(executionResults);\n if (state.history.length > HISTORY_LIMIT) {\n state.history.splice(0, state.history.length - HISTORY_LIMIT);\n }\n\n if (isUndoable(executionResults)) {\n void dispatch({ action: IntentAction.SHOW_UNDO, data: { results: executionResults } });\n }\n\n return executionResults.at(-1)?.result;\n };\n\n const undo = async () => {\n const last = state.history.findLastIndex(isUndoable);\n const chain =\n last !== -1 &&\n state.history[last]?.map(({ intent, result }): Intent => {\n const data = result.undoable?.data ? { ...intent.data, ...result.undoable.data } : intent.data;\n return { ...intent, data, undo: true };\n });\n if (chain) {\n const result = await dispatchChain(chain);\n state.history = state.history.filter((_, index) => index !== last);\n return result;\n }\n };\n\n state.dispatch = dispatchChain;\n state.undo = undo;\n state.registerResolver = (plugin, resolver) => {\n const entry = { plugin, resolver };\n dynamicResolvers.add(entry);\n return () => dynamicResolvers.delete(entry);\n };\n },\n provides: {\n intent: state,\n context: ({ children }) => <IntentProvider value={state}>{children}</IntentProvider>,\n },\n };\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Context, createContext, useContext, type Provider } from 'react';\nimport { useEffect } from 'react';\n\nimport type { UnsubscribeCallback } from '@dxos/async';\n\nimport type { Intent, IntentDispatcher, IntentResolver, IntentResult } from './intent';\n\nexport type IntentExecution = {\n intent: Intent;\n result: IntentResult;\n};\n\nexport type IntentContext = {\n dispatch: IntentDispatcher;\n undo: () => Promise<IntentResult | void>;\n history: IntentExecution[][];\n registerResolver: (pluginId: string, resolver: IntentResolver) => UnsubscribeCallback;\n};\n\nconst IntentContext: Context<IntentContext> = createContext<IntentContext>({\n dispatch: async () => ({}),\n undo: async () => ({}),\n history: [],\n registerResolver: () => () => {},\n});\n\n/**\n * @deprecated Prefer granular hooks.\n */\n// TODO(burdon): Remove. Use useIntentDispatcher.\nexport const useIntent = () => useContext(IntentContext);\n\nexport const useIntentDispatcher = (): IntentDispatcher => {\n const { dispatch } = useIntent();\n return dispatch;\n};\n\nexport const useIntentResolver = (plugin: string, resolver: IntentResolver) => {\n const { registerResolver } = useIntent();\n useEffect(() => {\n return registerResolver(plugin, resolver);\n }, [plugin, resolver]);\n};\n\nexport const IntentProvider: Provider<IntentContext> = IntentContext.Provider;\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { type IntentExecution } from './IntentContext';\n\n/**\n * Check if the chain of intents is undoable.\n */\nexport const isUndoable = (chain: IntentExecution[]): boolean =>\n chain.length > 0 && chain.every(({ result }) => result.undoable);\n", "//\n// Copyright 2023 DXOS.org\n//\n\nconst IntentMeta = {\n id: 'dxos.org/plugin/intent',\n};\n\nexport default IntentMeta;\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type IntentContext } from './IntentContext';\nimport { type IntentResolver } from './intent';\nimport { type Plugin } from '../plugin-host';\n\nexport type IntentResolverProvides = {\n intent: {\n resolver: IntentResolver;\n };\n};\n\nexport type IntentPluginProvides = {\n intent: IntentContext;\n};\n\nexport const parseIntentPlugin = (plugin: Plugin) =>\n (plugin.provides as any).intent?.dispatch ? (plugin as Plugin<IntentPluginProvides>) : undefined;\n\nexport const parseIntentResolverPlugin = (plugin: Plugin) =>\n (plugin.provides as any).intent?.resolver ? (plugin as Plugin<IntentResolverProvides>) : undefined;\n\n//\n// Intents\n//\n\nconst INTENT_PLUGIN = 'dxos.org/plugin/intent';\n\nconst INTENT_ACTION = `${INTENT_PLUGIN}/action`;\n\nexport enum IntentAction {\n /**\n * Fired after an intent is dispatched if the intent is undoable.\n */\n SHOW_UNDO = `${INTENT_ACTION}/show-undo`,\n}\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { IntentPlugin } from './IntentPlugin';\n\nexport * from './intent';\nexport * from './provides';\n\nexport * from './IntentContext';\n\nexport default IntentPlugin;\n"],
5
5
  "mappings": "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",
6
6
  "names": ["import_react", "IntentContext", "createContext", "dispatch", "undo", "history", "registerResolver", "useIntent", "useContext", "useIntentDispatcher", "useIntentResolver", "plugin", "resolver", "useEffect", "IntentProvider", "Provider", "isUndoable", "chain", "length", "every", "result", "undoable", "IntentMeta", "id", "parseIntentPlugin", "provides", "intent", "undefined", "parseIntentResolverPlugin", "INTENT_PLUGIN", "INTENT_ACTION", "IntentAction", "EXECUTION_LIMIT", "HISTORY_LIMIT", "IntentPlugin", "state", "create", "dynamicResolvers", "Set", "meta", "ready", "plugins", "log", "action", "entry", "findPlugin", "filterPlugins", "env", "DEV", "warn", "dispatchChain", "intentOrArray", "depth", "error", "Error", "executionResults", "Array", "isArray", "prevResult", "at", "data", "push", "intents", "forEach", "splice", "SHOW_UNDO", "results", "last", "findLastIndex", "map", "filter", "_", "index", "add", "delete", "context", "children", "React", "value"]
7
7
  }
@@ -26,8 +26,8 @@ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__ge
26
26
  mod
27
27
  ));
28
28
  var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
- var chunk_EF67TRWJ_exports = {};
30
- __export(chunk_EF67TRWJ_exports, {
29
+ var chunk_SOVLKUWI_exports = {};
30
+ __export(chunk_SOVLKUWI_exports, {
31
31
  ErrorBoundary: () => ErrorBoundary,
32
32
  Surface: () => Surface,
33
33
  SurfaceProvider: () => SurfaceProvider,
@@ -39,10 +39,10 @@ __export(chunk_EF67TRWJ_exports, {
39
39
  useSurface: () => useSurface,
40
40
  useSurfaceRoot: () => useSurfaceRoot
41
41
  });
42
- module.exports = __toCommonJS(chunk_EF67TRWJ_exports);
42
+ module.exports = __toCommonJS(chunk_SOVLKUWI_exports);
43
43
  var import_chunk_QBM42OQ6 = require("./chunk-QBM42OQ6.cjs");
44
44
  var import_react = __toESM(require("react"));
45
- var import_echo_schema = require("@dxos/echo-schema");
45
+ var import_live_object = require("@dxos/live-object");
46
46
  var import_react2 = require("react");
47
47
  var import_debug = require("@dxos/debug");
48
48
  var import_react3 = __toESM(require("react"));
@@ -59,7 +59,7 @@ var meta_default = SurfaceMeta;
59
59
  var parseRootSurfacePlugin = (plugin) => plugin?.provides?.surface?.components ? plugin : void 0;
60
60
  var parseSurfacePlugin = (plugin) => plugin?.provides?.surface?.component ? plugin : void 0;
61
61
  var SurfacePlugin = () => {
62
- const state = (0, import_echo_schema.create)({
62
+ const state = (0, import_live_object.create)({
63
63
  components: {},
64
64
  debugInfo: /* @__PURE__ */ new Map()
65
65
  });
@@ -233,4 +233,4 @@ var plugin_surface_default = SurfacePlugin;
233
233
  useSurface,
234
234
  useSurfaceRoot
235
235
  });
236
- //# sourceMappingURL=chunk-EF67TRWJ.cjs.map
236
+ //# sourceMappingURL=chunk-SOVLKUWI.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/plugins/plugin-surface/SurfacePlugin.tsx", "../../../src/plugins/plugin-surface/SurfaceRootContext.tsx", "../../../src/plugins/plugin-surface/meta.ts", "../../../src/plugins/plugin-surface/provides.ts", "../../../src/plugins/plugin-surface/helpers.ts", "../../../src/plugins/plugin-surface/ErrorBoundary.tsx", "../../../src/plugins/plugin-surface/Surface.tsx", "../../../src/plugins/plugin-surface/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { create } from '@dxos/live-object';\n\nimport { SurfaceProvider, type SurfaceRootContext } from './SurfaceRootContext';\nimport SurfaceMeta from './meta';\nimport { parseSurfacePlugin, type SurfacePluginProvides } from './provides';\nimport { filterPlugins } from '../helpers';\nimport { type PluginDefinition } from '../plugin-host';\n\n/**\n * Provides a registry of surface components.\n */\nexport const SurfacePlugin = (): PluginDefinition<SurfacePluginProvides> => {\n const state = create<SurfaceRootContext>({ components: {}, debugInfo: new Map() });\n\n return {\n meta: SurfaceMeta,\n ready: async (plugins) => {\n state.components = filterPlugins(plugins, parseSurfacePlugin).reduce((acc, plugin) => {\n return { ...acc, [plugin.meta.id]: plugin.provides.surface.component };\n }, {});\n },\n provides: {\n surface: state,\n context: ({ children }) => <SurfaceProvider value={state}>{children}</SurfaceProvider>,\n },\n };\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { createContext, useContext, type JSX, type ForwardedRef } from 'react';\n\nimport { raise } from '@dxos/debug';\n\nimport { type SurfaceProps } from './Surface';\n\n// TODO(wittjosiah): Factor out.\ntype WithRequiredProperty<Type, Key extends keyof Type> = Type & {\n [Property in Key]-?: Type[Property];\n};\n\ntype SurfaceComponentProps = WithRequiredProperty<SurfaceProps, 'data'>;\n\n/**\n * Determines the priority of the surface when multiple components are resolved.\n */\nexport type SurfaceDisposition = 'hoist' | 'fallback';\n\n/**\n * Surface debug info.\n * NOTE: Short-term measure to track perf issues.\n */\nexport type DebugInfo = {\n id: string;\n created: number;\n renderCount: number;\n} & Pick<SurfaceProps, 'role' | 'name'>;\n\nexport type SurfaceResult = {\n node: JSX.Element;\n disposition?: SurfaceDisposition;\n};\n\n/**\n * Function that resolves a Surface.\n * If a null value is returned, the rendering is deferred to other plugins.\n */\nexport type SurfaceComponent = (\n props: SurfaceComponentProps,\n forwardedRef: ForwardedRef<HTMLElement>,\n) => JSX.Element | SurfaceResult | null;\n\nexport type SurfaceRootContext = {\n components: Record<string, SurfaceComponent>;\n\n /**\n * Debug info.\n */\n debugInfo?: Map<string, DebugInfo>;\n};\n\nconst SurfaceRootContext = createContext<SurfaceRootContext | undefined>(undefined);\n\nexport const useSurfaceRoot = () => useContext(SurfaceRootContext) ?? raise(new Error('Missing SurfaceRootContext'));\n\nexport const SurfaceProvider = SurfaceRootContext.Provider;\n", "//\n// Copyright 2023 DXOS.org\n//\n\nconst SurfaceMeta = {\n id: 'dxos.org/plugin/surface',\n};\n\nexport default SurfaceMeta;\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { type SurfaceComponent, type SurfaceRootContext } from './SurfaceRootContext';\nimport { type Plugin } from '../plugin-host';\n\n// TODO(burdon): Predicate based providers?\nexport type SurfaceProvides = {\n surface: {\n /**\n * Used by the `Surface` resolver to find a component to render.\n */\n component: SurfaceComponent;\n };\n};\n\nexport type SurfacePluginProvides = {\n surface: SurfaceRootContext;\n};\n\nexport const parseRootSurfacePlugin = (plugin?: Plugin) =>\n (plugin?.provides as any)?.surface?.components ? (plugin as Plugin<SurfacePluginProvides>) : undefined;\n\nexport const parseSurfacePlugin = (plugin?: Plugin) =>\n (plugin?.provides as any)?.surface?.component ? (plugin as Plugin<SurfaceProvides>) : undefined;\n", "//\n// Copyright 2023 DXOS.org\n//\n\n/**\n * Checks if the given data is an object and not null.\n *\n * Useful inside surface component resolvers as a type guard.\n *\n * @example\n * ```ts\n * const old =\n * data.content &&\n * typeof data.content === 'object' &&\n * 'id' in data.content &&\n * typeof data.content.id === 'string';\n *\n * // becomes\n * const new = isObject(data.content) && typeof data.content.id === 'string';\n * ```\n */\nexport const isObject = (data: unknown): data is { [key: string]: unknown } => !!data && typeof data === 'object';\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) {\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() {\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() {\n this.setState({ error: undefined });\n }\n}\n", "//\n// Copyright 2022 DXOS.org\n//\n\nimport React, {\n Fragment,\n type ForwardedRef,\n type PropsWithChildren,\n type ReactNode,\n Suspense,\n createContext,\n forwardRef,\n isValidElement,\n memo,\n useContext,\n useEffect,\n useState,\n} from 'react';\n\nimport { raise } from '@dxos/debug';\nimport { log } from '@dxos/log';\n\nimport { ErrorBoundary } from './ErrorBoundary';\nimport { type SurfaceComponent, type SurfaceResult, useSurfaceRoot } from './SurfaceRootContext';\n\n/**\n * Direction determines how multiple components are laid out.\n */\nexport type Direction = 'inline' | 'inline-reverse' | 'block' | 'block-reverse';\n\n/**\n * SurfaceProps are the props that are passed to the Surface component.\n */\nexport type SurfaceProps = PropsWithChildren<{\n /**\n * Optional ID for debugging.\n */\n id?: string;\n\n /**\n * Role defines how the data should be rendered.\n */\n role?: string;\n\n /**\n * Names allow nested surfaces to be specified in the parent context, similar to a slot.\n * Defaults to the value of `role` if not specified.\n */\n name?: string;\n\n /**\n * The data to be rendered by the surface.\n */\n data?: Record<string, unknown>;\n\n /**\n * Configure nested surfaces (indexed by the surface's `name`).\n */\n surfaces?: Record<string, Pick<SurfaceProps, 'data' | 'surfaces'>>;\n\n /**\n * If specified, the Surface will be wrapped in an error boundary.\n * The fallback component will be rendered if an error occurs.\n */\n fallback?: ErrorBoundary['props']['fallback'];\n\n /**\n * If specified, the Surface will be wrapped in a suspense boundary.\n * The placeholder component will be rendered while the surface component is loading.\n */\n placeholder?: ReactNode;\n\n /**\n * If more than one component is resolved, the limit determines how many are rendered.\n */\n limit?: number | undefined;\n\n /**\n * If more than one component is resolved, the direction determines how they are laid out.\n * NOTE: This is not yet implemented.\n */\n direction?: Direction;\n\n /**\n * Additional props to pass to the component.\n * These props are not used by Surface itself but may be used by components which resolve the surface.\n */\n [key: string]: unknown;\n}>;\n\nlet count = 0;\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, name = role, fallback, placeholder, ...rest }, forwardedRef) => {\n const props = { role, name, fallback, ...rest };\n const { debugInfo } = useSurfaceRoot();\n\n // Track debug info.\n const [id] = useState<string>(() => _id ?? `surface-${++count}`);\n useEffect(() => {\n debugInfo?.set(id, { id, created: Date.now(), name, role, renderCount: 0 });\n return () => {\n debugInfo?.delete(id);\n };\n }, [id]);\n\n if (debugInfo?.get(id)) {\n debugInfo.get(id)!.renderCount++;\n }\n\n const context = useContext(SurfaceContext);\n const data = props.data ?? ((name && context?.surfaces?.[name]?.data) || {});\n\n const resolver = <SurfaceResolver {...props} id={id} ref={forwardedRef} />;\n const suspense = placeholder ? <Suspense fallback={placeholder}>{resolver}</Suspense> : resolver;\n\n return fallback ? (\n <ErrorBoundary data={data} fallback={fallback}>\n {suspense}\n </ErrorBoundary>\n ) : (\n suspense\n );\n },\n ),\n);\n\nconst SurfaceContext = createContext<SurfaceProps | undefined>(undefined);\n\nexport const useSurface = (): SurfaceProps =>\n useContext(SurfaceContext) ?? raise(new Error('Surface context not found'));\n\n/**\n * Root surface component.\n */\nconst SurfaceResolver = forwardRef<HTMLElement, SurfaceProps>((props, forwardedRef) => {\n const { components } = useSurfaceRoot();\n const parent = useContext(SurfaceContext);\n const nodes = resolveNodes(components, props, parent, forwardedRef);\n const currentContext: SurfaceProps = {\n ...props,\n surfaces: {\n ...((props.name && parent?.surfaces?.[props.name]?.surfaces) || {}),\n ...props.surfaces,\n },\n };\n\n return <SurfaceContext.Provider value={currentContext}>{nodes}</SurfaceContext.Provider>;\n});\n\n/**\n * Resolve surface nodes from across all component.\n */\nconst resolveNodes = (\n components: Record<string, SurfaceComponent>,\n props: SurfaceProps,\n context: SurfaceProps | undefined,\n forwardedRef: ForwardedRef<HTMLElement>,\n): ReactNode[] => {\n const data = {\n ...((props.name && context?.surfaces?.[props.name]?.data) || {}),\n ...props.data,\n };\n\n const candidates = Object.entries(components)\n .map(([key, component]): [string, SurfaceResult] | undefined => {\n // TODO(burdon): Avoid variable return types in plugin contract.\n const result = component({ ...props, data }, forwardedRef);\n if (!result || typeof result !== 'object') {\n return undefined;\n }\n\n // Normalize tuple.\n if ('node' in result) {\n return [key, result];\n } else if (isValidElement(result)) {\n return [key, { node: result }];\n } else {\n log.warn('invalid result', { result });\n return undefined;\n }\n })\n .filter((result): result is [string, SurfaceResult] => Boolean(result))\n .sort(([, { disposition: a = 'default' }], [, { disposition: b = 'default' }]) => {\n return a === b ? 0 : a === 'hoist' || b === 'fallback' ? -1 : b === 'hoist' || a === 'fallback' ? 1 : 0;\n });\n\n // TODO(burdon): Does this prematurely process the node?\n const nodes = candidates.map(([key, result]) => <Fragment key={key}>{result.node}</Fragment>);\n return props.limit ? nodes.slice(0, props.limit) : nodes;\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { SurfacePlugin } from './SurfacePlugin';\n\nexport * from './helpers';\nexport * from './provides';\n\nexport * from './ErrorBoundary';\nexport * from './Surface';\nexport * from './SurfaceRootContext';\n\nexport default SurfacePlugin;\n"],
5
+ "mappings": "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",
6
+ "names": ["import_react", "import_debug", "SurfaceRootContext", "createContext", "undefined", "useSurfaceRoot", "useContext", "raise", "Error", "SurfaceProvider", "Provider", "SurfaceMeta", "id", "parseRootSurfacePlugin", "plugin", "provides", "surface", "components", "parseSurfacePlugin", "component", "SurfacePlugin", "state", "create", "debugInfo", "Map", "meta", "ready", "plugins", "filterPlugins", "reduce", "acc", "context", "children", "React", "value", "isObject", "data", "ErrorBoundary", "Component", "constructor", "props", "error", "getDerivedStateFromError", "componentDidUpdate", "prevProps", "resetError", "render", "this", "fallback", "reset", "setState", "count", "Surface", "memo", "forwardRef", "_id", "role", "name", "placeholder", "rest", "forwardedRef", "useState", "useEffect", "set", "created", "Date", "now", "renderCount", "delete", "get", "SurfaceContext", "surfaces", "resolver", "SurfaceResolver", "ref", "suspense", "Suspense", "useSurface", "parent", "nodes", "resolveNodes", "currentContext", "candidates", "Object", "entries", "map", "key", "result", "isValidElement", "node", "log", "warn", "filter", "Boolean", "sort", "disposition", "a", "b", "Fragment", "limit", "slice"]
7
+ }
@@ -29,10 +29,10 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
29
29
  var node_exports = {};
30
30
  __export(node_exports, {
31
31
  ActiveParts: () => ActiveParts,
32
- ErrorBoundary: () => import_chunk_EF67TRWJ.ErrorBoundary,
32
+ ErrorBoundary: () => import_chunk_SOVLKUWI.ErrorBoundary,
33
33
  HostPlugin: () => HostPlugin,
34
- IntentAction: () => import_chunk_VOKMWTKO.IntentAction,
35
- IntentProvider: () => import_chunk_VOKMWTKO.IntentProvider,
34
+ IntentAction: () => import_chunk_QSVP5HOW.IntentAction,
35
+ IntentProvider: () => import_chunk_QSVP5HOW.IntentProvider,
36
36
  Layout: () => Layout,
37
37
  LayoutAction: () => LayoutAction,
38
38
  NavigationAction: () => NavigationAction,
@@ -47,8 +47,8 @@ __export(node_exports, {
47
47
  SLUG_LIST_SEPARATOR: () => SLUG_LIST_SEPARATOR,
48
48
  SLUG_PATH_SEPARATOR: () => SLUG_PATH_SEPARATOR,
49
49
  SettingsAction: () => import_chunk_JZ2JVKRY.SettingsAction,
50
- Surface: () => import_chunk_EF67TRWJ.Surface,
51
- SurfaceProvider: () => import_chunk_EF67TRWJ.SurfaceProvider,
50
+ Surface: () => import_chunk_SOVLKUWI.Surface,
51
+ SurfaceProvider: () => import_chunk_SOVLKUWI.SurfaceProvider,
52
52
  Toast: () => Toast,
53
53
  createApp: () => createApp,
54
54
  defaultFileTypes: () => defaultFileTypes,
@@ -61,43 +61,44 @@ __export(node_exports, {
61
61
  isLayoutAdjustment: () => isLayoutAdjustment,
62
62
  isLayoutMode: () => isLayoutMode,
63
63
  isLayoutParts: () => isLayoutParts,
64
- isObject: () => import_chunk_EF67TRWJ.isObject,
64
+ isObject: () => import_chunk_SOVLKUWI.isObject,
65
65
  openIds: () => openIds,
66
66
  parseFileManagerPlugin: () => parseFileManagerPlugin,
67
67
  parseGraphBuilderPlugin: () => parseGraphBuilderPlugin,
68
68
  parseGraphPlugin: () => parseGraphPlugin,
69
69
  parseGraphSerializerPlugin: () => parseGraphSerializerPlugin,
70
- parseIntentPlugin: () => import_chunk_VOKMWTKO.parseIntentPlugin,
71
- parseIntentResolverPlugin: () => import_chunk_VOKMWTKO.parseIntentResolverPlugin,
70
+ parseIntentPlugin: () => import_chunk_QSVP5HOW.parseIntentPlugin,
71
+ parseIntentResolverPlugin: () => import_chunk_QSVP5HOW.parseIntentResolverPlugin,
72
72
  parseLayoutPlugin: () => parseLayoutPlugin,
73
73
  parseMetadataRecordsPlugin: () => parseMetadataRecordsPlugin,
74
74
  parseMetadataResolverPlugin: () => parseMetadataResolverPlugin,
75
75
  parseNavigationPlugin: () => parseNavigationPlugin,
76
76
  parsePluginHost: () => parsePluginHost,
77
- parseRootSurfacePlugin: () => import_chunk_EF67TRWJ.parseRootSurfacePlugin,
77
+ parseRootSurfacePlugin: () => import_chunk_SOVLKUWI.parseRootSurfacePlugin,
78
78
  parseSettingsPlugin: () => import_chunk_JZ2JVKRY.parseSettingsPlugin,
79
- parseSurfacePlugin: () => import_chunk_EF67TRWJ.parseSurfacePlugin,
79
+ parseSurfacePlugin: () => import_chunk_SOVLKUWI.parseSurfacePlugin,
80
80
  parseTranslationsPlugin: () => parseTranslationsPlugin,
81
81
  partLength: () => partLength,
82
82
  resolvePlugin: () => import_chunk_QBM42OQ6.resolvePlugin,
83
- useIntent: () => import_chunk_VOKMWTKO.useIntent,
84
- useIntentDispatcher: () => import_chunk_VOKMWTKO.useIntentDispatcher,
85
- useIntentResolver: () => import_chunk_VOKMWTKO.useIntentResolver,
83
+ useIntent: () => import_chunk_QSVP5HOW.useIntent,
84
+ useIntentDispatcher: () => import_chunk_QSVP5HOW.useIntentDispatcher,
85
+ useIntentResolver: () => import_chunk_QSVP5HOW.useIntentResolver,
86
86
  usePlugin: () => usePlugin,
87
87
  usePlugins: () => usePlugins,
88
88
  useResolvePlugin: () => useResolvePlugin,
89
89
  useResolvePlugins: () => useResolvePlugins,
90
- useSurface: () => import_chunk_EF67TRWJ.useSurface,
91
- useSurfaceRoot: () => import_chunk_EF67TRWJ.useSurfaceRoot
90
+ useSurface: () => import_chunk_SOVLKUWI.useSurface,
91
+ useSurfaceRoot: () => import_chunk_SOVLKUWI.useSurfaceRoot
92
92
  });
93
93
  module.exports = __toCommonJS(node_exports);
94
- var import_chunk_VOKMWTKO = require("./chunk-VOKMWTKO.cjs");
95
- var import_chunk_EF67TRWJ = require("./chunk-EF67TRWJ.cjs");
94
+ var import_chunk_QSVP5HOW = require("./chunk-QSVP5HOW.cjs");
95
+ var import_chunk_SOVLKUWI = require("./chunk-SOVLKUWI.cjs");
96
96
  var import_chunk_QBM42OQ6 = require("./chunk-QBM42OQ6.cjs");
97
97
  var import_chunk_JZ2JVKRY = require("./chunk-JZ2JVKRY.cjs");
98
98
  var import_zod = require("zod");
99
99
  var import_schema = require("@effect/schema");
100
100
  var import_zod2 = require("zod");
101
+ var import_util = require("@dxos/util");
101
102
  var import_zod3 = require("zod");
102
103
  var import_react = __toESM(require("react"));
103
104
  var import_local_storage = require("@dxos/local-storage");
@@ -105,7 +106,7 @@ var import_react2 = __toESM(require("react"));
105
106
  var import_log = require("@dxos/log");
106
107
  var import_react3 = require("react");
107
108
  var import_debug = require("@dxos/debug");
108
- var import_util = require("@dxos/util");
109
+ var import_util2 = require("@dxos/util");
109
110
  var import_react4 = __toESM(require("react"));
110
111
  var import_invariant = require("@dxos/invariant");
111
112
  var defaultFileTypes = {
@@ -246,8 +247,8 @@ var parseNavigationPlugin = (plugin) => {
246
247
  }
247
248
  return void 0;
248
249
  };
249
- var openIds = (layout) => {
250
- return Object.values(layout).flatMap((part) => part?.map((entry) => entry.id) ?? []).filter((id) => id !== void 0);
250
+ var openIds = (layout, parts) => {
251
+ return Object.values(parts ? (0, import_util.pick)(layout, parts) : layout).flatMap((part) => part?.map((entry) => entry.id) ?? []).filter((id) => id !== void 0);
251
252
  };
252
253
  var firstIdInPart = (layout, part) => {
253
254
  if (!layout) {
@@ -418,7 +419,7 @@ var useResolvePlugin = (predicate) => {
418
419
  };
419
420
  var useResolvePlugins = (predicate) => {
420
421
  const { plugins } = usePlugins();
421
- return (0, import_react3.useMemo)(() => plugins.map(predicate).filter(import_util.nonNullable), [
422
+ return (0, import_react3.useMemo)(() => plugins.map(predicate).filter(import_util2.nonNullable), [
422
423
  plugins,
423
424
  predicate
424
425
  ]);
@@ -462,7 +463,7 @@ var HostPlugin = ({ plugins, meta, core, defaults = [], fallback = DefaultFallba
462
463
  }, children);
463
464
  },
464
465
  root: () => {
465
- return /* @__PURE__ */ import_react.default.createElement(import_chunk_EF67TRWJ.ErrorBoundary, {
466
+ return /* @__PURE__ */ import_react.default.createElement(import_chunk_SOVLKUWI.ErrorBoundary, {
466
467
  fallback
467
468
  }, /* @__PURE__ */ import_react.default.createElement(PluginContainer, {
468
469
  plugins,
@@ -492,20 +493,20 @@ var createApp = ({ meta, plugins, core, ...params }) => {
492
493
  const hostPlugin = HostPlugin({
493
494
  plugins: {
494
495
  ...plugins,
495
- [import_chunk_VOKMWTKO.meta_default.id]: Plugin.lazy(() => import("./plugin-intent-FMC4SDI3.cjs")),
496
+ [import_chunk_QSVP5HOW.meta_default.id]: Plugin.lazy(() => import("./plugin-intent-FVFR2LKB.cjs")),
496
497
  [import_chunk_JZ2JVKRY.meta_default.id]: Plugin.lazy(() => import("./plugin-settings-OZ6IKAE5.cjs")),
497
- [import_chunk_EF67TRWJ.meta_default.id]: Plugin.lazy(() => import("./plugin-surface-B5NHOBSW.cjs"))
498
+ [import_chunk_SOVLKUWI.meta_default.id]: Plugin.lazy(() => import("./plugin-surface-YWDRXQTD.cjs"))
498
499
  },
499
500
  meta: [
500
- import_chunk_VOKMWTKO.meta_default,
501
+ import_chunk_QSVP5HOW.meta_default,
501
502
  import_chunk_JZ2JVKRY.meta_default,
502
- import_chunk_EF67TRWJ.meta_default,
503
+ import_chunk_SOVLKUWI.meta_default,
503
504
  ...meta
504
505
  ],
505
506
  core: [
506
- import_chunk_VOKMWTKO.meta_default.id,
507
+ import_chunk_QSVP5HOW.meta_default.id,
507
508
  import_chunk_JZ2JVKRY.meta_default.id,
508
- import_chunk_EF67TRWJ.meta_default.id,
509
+ import_chunk_SOVLKUWI.meta_default.id,
509
510
  ...core
510
511
  ],
511
512
  ...params