@dxos/app-framework 0.8.4-main.69d29f4 → 0.8.4-main.6fa680abb7
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.
- package/.storybook/main.mts +1 -3
- package/dist/lib/browser/{capability-7PCNSWBT.mjs → capability-6YMUBS54.mjs} +15 -11
- package/dist/lib/browser/capability-6YMUBS54.mjs.map +7 -0
- package/dist/lib/browser/capability-LF3OXSCV.mjs +34 -0
- package/dist/lib/browser/capability-LF3OXSCV.mjs.map +7 -0
- package/dist/lib/browser/{chunk-PKQT6C53.mjs → chunk-272IPLHQ.mjs} +1 -1
- package/dist/lib/browser/{chunk-PKQT6C53.mjs.map → chunk-272IPLHQ.mjs.map} +1 -1
- package/dist/lib/browser/{chunk-FMZN33N4.mjs → chunk-2UI6ACB5.mjs} +48 -31
- package/dist/lib/browser/chunk-2UI6ACB5.mjs.map +7 -0
- package/dist/lib/browser/{chunk-TCLLRCS3.mjs → chunk-7M4467QR.mjs} +6 -6
- package/dist/lib/browser/chunk-7M4467QR.mjs.map +7 -0
- package/dist/lib/browser/{chunk-7IQHKD4U.mjs → chunk-JGWCBVKJ.mjs} +2 -2
- package/dist/lib/browser/chunk-JGWCBVKJ.mjs.map +7 -0
- package/dist/lib/browser/chunk-M5IC326L.mjs +34 -0
- package/dist/lib/browser/chunk-M5IC326L.mjs.map +7 -0
- package/dist/lib/browser/{chunk-XYNO72GQ.mjs → chunk-NQPYE365.mjs} +435 -478
- package/dist/lib/browser/chunk-NQPYE365.mjs.map +7 -0
- package/dist/lib/browser/chunk-TGX63LTL.mjs +8 -0
- package/dist/lib/browser/{chunk-FHQTHCX7.mjs.map → chunk-TGX63LTL.mjs.map} +1 -1
- package/dist/lib/browser/chunk-TIEBZMTF.mjs +44 -0
- package/dist/lib/browser/chunk-TIEBZMTF.mjs.map +7 -0
- package/dist/lib/browser/chunk-WEBSGU5L.mjs +80 -0
- package/dist/lib/browser/chunk-WEBSGU5L.mjs.map +7 -0
- package/dist/lib/browser/chunk-YAFEA4GV.mjs +1 -0
- package/dist/lib/browser/{chunk-6Y7PZV72.mjs → chunk-YNFPIQGB.mjs} +2 -3
- package/dist/lib/browser/{chunk-6Y7PZV72.mjs.map → chunk-YNFPIQGB.mjs.map} +3 -3
- package/dist/lib/browser/cli/index.mjs +89 -0
- package/dist/lib/browser/cli/index.mjs.map +7 -0
- package/dist/lib/browser/common/activation-events.mjs +23 -0
- package/dist/lib/browser/common/capabilities.mjs +45 -0
- package/dist/lib/browser/core/activation-event.mjs +1 -1
- package/dist/lib/browser/core/capability.mjs +1 -1
- package/dist/lib/browser/core/plugin-manager.mjs +4 -4
- package/dist/lib/browser/core/plugin.mjs +2 -2
- package/dist/lib/browser/index.mjs +37 -132
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/{invoker-capability-SZRSTHEH.mjs → invoker-capability-4AUGUMM5.mjs} +16 -12
- package/dist/lib/browser/invoker-capability-4AUGUMM5.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/testing/index.mjs +28 -20
- package/dist/lib/browser/testing/index.mjs.map +3 -3
- package/dist/lib/browser/{react → ui}/index.mjs +18 -19
- package/dist/lib/node-esm/{capability-CFLQ2QQU.mjs → capability-R5O2OYX4.mjs} +15 -11
- package/dist/lib/node-esm/capability-R5O2OYX4.mjs.map +7 -0
- package/dist/lib/node-esm/capability-SA6LPYGL.mjs +35 -0
- package/dist/lib/node-esm/capability-SA6LPYGL.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-663A54LQ.mjs → chunk-3D66SZHP.mjs} +2 -2
- package/dist/lib/node-esm/chunk-3D66SZHP.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-7OWSHPYK.mjs → chunk-6REV5DE7.mjs} +1 -1
- package/dist/lib/node-esm/{chunk-7OWSHPYK.mjs.map → chunk-6REV5DE7.mjs.map} +1 -1
- package/dist/lib/node-esm/{chunk-6WXBT3EC.mjs → chunk-FHWPWQRJ.mjs} +435 -478
- package/dist/lib/node-esm/chunk-FHWPWQRJ.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-UEWJDI2L.mjs → chunk-FKE4Z3D6.mjs} +2 -2
- package/dist/lib/node-esm/{chunk-UEWJDI2L.mjs.map → chunk-FKE4Z3D6.mjs.map} +1 -1
- package/dist/lib/node-esm/{chunk-GT6OKM5I.mjs → chunk-JHFY3HTS.mjs} +6 -6
- package/dist/lib/node-esm/chunk-JHFY3HTS.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-XYQTBFPA.mjs → chunk-JIVXIJ2T.mjs} +48 -31
- package/dist/lib/node-esm/chunk-JIVXIJ2T.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-NHXBSAQR.mjs +35 -0
- package/dist/lib/node-esm/chunk-NHXBSAQR.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-STMXUEPO.mjs → chunk-SB5ODNPX.mjs} +2 -3
- package/dist/lib/node-esm/{chunk-STMXUEPO.mjs.map → chunk-SB5ODNPX.mjs.map} +3 -3
- package/dist/lib/node-esm/chunk-SCDGIGGU.mjs +45 -0
- package/dist/lib/node-esm/chunk-SCDGIGGU.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-SQICGJBW.mjs +81 -0
- package/dist/lib/node-esm/chunk-SQICGJBW.mjs.map +7 -0
- package/dist/lib/node-esm/chunk-Z4TJPSMP.mjs +2 -0
- package/dist/lib/node-esm/chunk-Z4TJPSMP.mjs.map +7 -0
- package/dist/lib/node-esm/cli/index.mjs +90 -0
- package/dist/lib/node-esm/cli/index.mjs.map +7 -0
- package/dist/lib/node-esm/common/activation-events.mjs +24 -0
- package/dist/lib/node-esm/common/activation-events.mjs.map +7 -0
- package/dist/lib/node-esm/common/capabilities.mjs +46 -0
- package/dist/lib/node-esm/common/capabilities.mjs.map +7 -0
- package/dist/lib/node-esm/core/activation-event.mjs +1 -1
- package/dist/lib/node-esm/core/capability.mjs +1 -1
- package/dist/lib/node-esm/core/plugin-manager.mjs +4 -4
- package/dist/lib/node-esm/core/plugin.mjs +2 -2
- package/dist/lib/node-esm/index.mjs +37 -132
- package/dist/lib/node-esm/index.mjs.map +4 -4
- package/dist/lib/node-esm/{invoker-capability-PNMA5JOS.mjs → invoker-capability-3YDIVDWV.mjs} +16 -12
- package/dist/lib/node-esm/invoker-capability-3YDIVDWV.mjs.map +7 -0
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/testing/index.mjs +28 -20
- package/dist/lib/node-esm/testing/index.mjs.map +3 -3
- package/dist/lib/node-esm/{react → ui}/index.mjs +18 -19
- package/dist/lib/node-esm/ui/index.mjs.map +7 -0
- package/dist/types/src/{cli.d.ts → cli/cli.d.ts} +2 -2
- package/dist/types/src/cli/cli.d.ts.map +1 -0
- package/dist/types/src/cli/index.d.ts +2 -0
- package/dist/types/src/cli/index.d.ts.map +1 -0
- package/dist/types/src/common/activation-events.d.ts +27 -0
- package/dist/types/src/common/activation-events.d.ts.map +1 -0
- package/dist/types/src/common/capabilities.d.ts +115 -0
- package/dist/types/src/common/capabilities.d.ts.map +1 -0
- package/dist/types/src/common/index.d.ts +4 -9
- package/dist/types/src/common/index.d.ts.map +1 -1
- package/dist/types/src/common/operations.d.ts +1 -348
- package/dist/types/src/common/operations.d.ts.map +1 -1
- package/dist/types/src/common/translations.d.ts +0 -9
- package/dist/types/src/common/translations.d.ts.map +1 -1
- package/dist/types/src/core/activation-event.d.ts +1 -1
- package/dist/types/src/core/capability.d.ts +7 -7
- package/dist/types/src/core/capability.d.ts.map +1 -1
- package/dist/types/src/core/plugin-manager.d.ts.map +1 -1
- package/dist/types/src/core/plugin.d.ts +1 -1
- package/dist/types/src/core/plugin.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +1 -3
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/plugin-operation/history/capability.d.ts +1 -1
- package/dist/types/src/plugin-operation/history/undo-mapping.d.ts +11 -3
- package/dist/types/src/plugin-operation/history/undo-mapping.d.ts.map +1 -1
- package/dist/types/src/plugin-operation/invoker-capability.d.ts +1 -1
- package/dist/types/src/plugin-runtime/capability.d.ts +2 -2
- package/dist/types/src/plugin-runtime/capability.d.ts.map +1 -1
- package/dist/types/src/testing/withPluginManager.d.ts +1 -1
- package/dist/types/src/testing/withPluginManager.d.ts.map +1 -1
- package/dist/types/src/{react → ui/components/App}/App.d.ts +1 -1
- package/dist/types/src/ui/components/App/App.d.ts.map +1 -0
- package/dist/types/src/{react/Surface.stories.d.ts → ui/components/App/App.stories.d.ts} +7 -2
- package/dist/types/src/ui/components/App/App.stories.d.ts.map +1 -0
- package/dist/types/src/ui/components/App/index.d.ts +2 -0
- package/dist/types/src/ui/components/App/index.d.ts.map +1 -0
- package/dist/types/src/ui/components/PluginManager/PluginManagerContext.stories.d.ts.map +1 -0
- package/dist/types/src/{react → ui/components/PluginManager}/PluginManagerProvider.d.ts +1 -1
- package/dist/types/src/ui/components/PluginManager/PluginManagerProvider.d.ts.map +1 -0
- package/dist/types/src/ui/components/PluginManager/index.d.ts +2 -0
- package/dist/types/src/ui/components/PluginManager/index.d.ts.map +1 -0
- package/dist/types/src/ui/components/Surface/SurfaceComponent.d.ts +12 -0
- package/dist/types/src/ui/components/Surface/SurfaceComponent.d.ts.map +1 -0
- package/dist/types/src/{react/App.stories.d.ts → ui/components/Surface/SurfaceComponent.stories.d.ts} +1 -1
- package/dist/types/src/ui/components/Surface/SurfaceComponent.stories.d.ts.map +1 -0
- package/dist/types/src/ui/components/Surface/SurfaceInfo.d.ts.map +1 -0
- package/dist/types/src/ui/components/Surface/context.d.ts +5 -0
- package/dist/types/src/ui/components/Surface/context.d.ts.map +1 -0
- package/dist/types/src/ui/components/Surface/index.d.ts +20 -0
- package/dist/types/src/ui/components/Surface/index.d.ts.map +1 -0
- package/dist/types/src/{common/surface.d.ts → ui/components/Surface/types.d.ts} +20 -18
- package/dist/types/src/ui/components/Surface/types.d.ts.map +1 -0
- package/dist/types/src/ui/components/index.d.ts +4 -0
- package/dist/types/src/ui/components/index.d.ts.map +1 -0
- package/dist/types/src/ui/hooks/index.d.ts +7 -0
- package/dist/types/src/ui/hooks/index.d.ts.map +1 -0
- package/dist/types/src/{react → ui/hooks}/useApp.d.ts +14 -9
- package/dist/types/src/ui/hooks/useApp.d.ts.map +1 -0
- package/dist/types/src/{react → ui/hooks}/useCapabilities.d.ts +6 -1
- package/dist/types/src/ui/hooks/useCapabilities.d.ts.map +1 -0
- package/dist/types/src/ui/hooks/useLoading.d.ts.map +1 -0
- package/dist/types/src/{react → ui/hooks}/useOperationResolver.d.ts +2 -2
- package/dist/types/src/ui/hooks/useOperationResolver.d.ts.map +1 -0
- package/dist/types/src/{react/common.d.ts → ui/hooks/useSettingsState.d.ts} +1 -5
- package/dist/types/src/ui/hooks/useSettingsState.d.ts.map +1 -0
- package/dist/types/src/ui/hooks/useSurface.d.ts +3 -0
- package/dist/types/src/ui/hooks/useSurface.d.ts.map +1 -0
- package/dist/types/src/ui/index.d.ts +3 -0
- package/dist/types/src/ui/index.d.ts.map +1 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/moon.yml +6 -6
- package/package.json +72 -64
- package/src/{cli.ts → cli/cli.ts} +10 -10
- package/src/{playground/debug → cli}/index.ts +1 -1
- package/src/common/activation-events.ts +44 -0
- package/src/common/capabilities.ts +178 -0
- package/src/common/index.ts +4 -9
- package/src/common/operations.ts +2 -376
- package/src/common/translations.ts +0 -12
- package/src/context.ts +1 -1
- package/src/core/activation-event.ts +1 -1
- package/src/core/capability.ts +9 -9
- package/src/core/plugin-manager.test.ts +44 -44
- package/src/core/plugin-manager.ts +19 -0
- package/src/core/plugin.ts +3 -2
- package/src/index.ts +1 -3
- package/src/plugin-operation/OperationPlugin.ts +5 -5
- package/src/plugin-operation/history/capability.ts +5 -5
- package/src/plugin-operation/history/undo-mapping.ts +6 -3
- package/src/plugin-operation/invoker-capability.ts +5 -5
- package/src/plugin-operation/meta.ts +1 -1
- package/src/plugin-runtime/RuntimePlugin.ts +4 -4
- package/src/plugin-runtime/capability.ts +5 -5
- package/src/plugin-runtime/meta.ts +1 -1
- package/src/testing/service.ts +6 -6
- package/src/testing/withPluginManager.stories.tsx +6 -6
- package/src/testing/withPluginManager.tsx +11 -8
- package/src/ui/components/App/App.stories.tsx +92 -0
- package/src/{react → ui/components/App}/App.tsx +6 -9
- package/src/{playground/layout → ui/components/App}/index.ts +1 -1
- package/src/{react → ui/components/PluginManager}/PluginManagerContext.stories.tsx +13 -14
- package/src/{react → ui/components/PluginManager}/PluginManagerProvider.ts +1 -1
- package/src/ui/components/PluginManager/index.ts +5 -0
- package/src/{react/Surface.stories.tsx → ui/components/Surface/SurfaceComponent.stories.tsx} +18 -16
- package/src/{react/Surface.tsx → ui/components/Surface/SurfaceComponent.tsx} +36 -56
- package/src/{react → ui/components/Surface}/SurfaceInfo.tsx +2 -2
- package/src/ui/components/Surface/context.ts +12 -0
- package/src/ui/components/Surface/index.ts +20 -0
- package/src/{common/surface.ts → ui/components/Surface/types.ts} +22 -25
- package/src/ui/components/index.ts +7 -0
- package/src/ui/hooks/index.ts +10 -0
- package/src/{react → ui/hooks}/useApp.tsx +29 -25
- package/src/{react → ui/hooks}/useCapabilities.ts +9 -5
- package/src/{react → ui/hooks}/useOperationResolver.ts +5 -5
- package/src/{react/common.ts → ui/hooks/useSettingsState.ts} +0 -11
- package/src/ui/hooks/useSurface.ts +13 -0
- package/src/ui/index.ts +6 -0
- package/tsconfig.json +2 -29
- package/tsconfig.node.json +1 -3
- package/typedoc.json +2 -4
- package/dist/lib/browser/app-graph-builder-M2VPYQC6.mjs +0 -149
- package/dist/lib/browser/app-graph-builder-M2VPYQC6.mjs.map +0 -7
- package/dist/lib/browser/capability-7PCNSWBT.mjs.map +0 -7
- package/dist/lib/browser/capability-KP3PFEXD.mjs +0 -31
- package/dist/lib/browser/capability-KP3PFEXD.mjs.map +0 -7
- package/dist/lib/browser/chunk-7IQHKD4U.mjs.map +0 -7
- package/dist/lib/browser/chunk-BLQJSGL3.mjs +0 -732
- package/dist/lib/browser/chunk-BLQJSGL3.mjs.map +0 -7
- package/dist/lib/browser/chunk-FHQTHCX7.mjs +0 -8
- package/dist/lib/browser/chunk-FMZN33N4.mjs.map +0 -7
- package/dist/lib/browser/chunk-H4WPA7U7.mjs +0 -77
- package/dist/lib/browser/chunk-H4WPA7U7.mjs.map +0 -7
- package/dist/lib/browser/chunk-TCLLRCS3.mjs.map +0 -7
- package/dist/lib/browser/chunk-XYNO72GQ.mjs.map +0 -7
- package/dist/lib/browser/common/index.mjs +0 -38
- package/dist/lib/browser/invoker-capability-SZRSTHEH.mjs.map +0 -7
- package/dist/lib/browser/operation-resolver-6MP2MYOY.mjs +0 -64
- package/dist/lib/browser/operation-resolver-6MP2MYOY.mjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-LROHGJEM.mjs +0 -150
- package/dist/lib/node-esm/app-graph-builder-LROHGJEM.mjs.map +0 -7
- package/dist/lib/node-esm/capability-CFLQ2QQU.mjs.map +0 -7
- package/dist/lib/node-esm/capability-RCUNM2M7.mjs +0 -32
- package/dist/lib/node-esm/capability-RCUNM2M7.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-663A54LQ.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-6WXBT3EC.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-GQEBIGKD.mjs +0 -733
- package/dist/lib/node-esm/chunk-GQEBIGKD.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-GT6OKM5I.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-XR6NMKEP.mjs +0 -78
- package/dist/lib/node-esm/chunk-XR6NMKEP.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-XYQTBFPA.mjs.map +0 -7
- package/dist/lib/node-esm/common/index.mjs +0 -39
- package/dist/lib/node-esm/invoker-capability-PNMA5JOS.mjs.map +0 -7
- package/dist/lib/node-esm/operation-resolver-7YWDMTNU.mjs +0 -65
- package/dist/lib/node-esm/operation-resolver-7YWDMTNU.mjs.map +0 -7
- package/dist/types/src/cli.d.ts.map +0 -1
- package/dist/types/src/common/activation-event.d.ts +0 -66
- package/dist/types/src/common/activation-event.d.ts.map +0 -1
- package/dist/types/src/common/capability.d.ts +0 -265
- package/dist/types/src/common/capability.d.ts.map +0 -1
- package/dist/types/src/common/collaboration.d.ts +0 -26
- package/dist/types/src/common/collaboration.d.ts.map +0 -1
- package/dist/types/src/common/file.d.ts +0 -14
- package/dist/types/src/common/file.d.ts.map +0 -1
- package/dist/types/src/common/graph.d.ts +0 -21
- package/dist/types/src/common/graph.d.ts.map +0 -1
- package/dist/types/src/common/plugin.d.ts +0 -201
- package/dist/types/src/common/plugin.d.ts.map +0 -1
- package/dist/types/src/common/surface.d.ts.map +0 -1
- package/dist/types/src/playground/debug/Debug.d.ts +0 -8
- package/dist/types/src/playground/debug/Debug.d.ts.map +0 -1
- package/dist/types/src/playground/debug/index.d.ts +0 -2
- package/dist/types/src/playground/debug/index.d.ts.map +0 -1
- package/dist/types/src/playground/debug/plugin.d.ts +0 -3
- package/dist/types/src/playground/debug/plugin.d.ts.map +0 -1
- package/dist/types/src/playground/generator/Main.d.ts +0 -8
- package/dist/types/src/playground/generator/Main.d.ts.map +0 -1
- package/dist/types/src/playground/generator/Toolbar.d.ts +0 -8
- package/dist/types/src/playground/generator/Toolbar.d.ts.map +0 -1
- package/dist/types/src/playground/generator/generator.d.ts +0 -19
- package/dist/types/src/playground/generator/generator.d.ts.map +0 -1
- package/dist/types/src/playground/generator/index.d.ts +0 -3
- package/dist/types/src/playground/generator/index.d.ts.map +0 -1
- package/dist/types/src/playground/generator/plugin.d.ts +0 -3
- package/dist/types/src/playground/generator/plugin.d.ts.map +0 -1
- package/dist/types/src/playground/layout/Layout.d.ts +0 -10
- package/dist/types/src/playground/layout/Layout.d.ts.map +0 -1
- package/dist/types/src/playground/layout/index.d.ts +0 -2
- package/dist/types/src/playground/layout/index.d.ts.map +0 -1
- package/dist/types/src/playground/layout/plugin.d.ts +0 -3
- package/dist/types/src/playground/layout/plugin.d.ts.map +0 -1
- package/dist/types/src/playground/logger/Toolbar.d.ts +0 -8
- package/dist/types/src/playground/logger/Toolbar.d.ts.map +0 -1
- package/dist/types/src/playground/logger/index.d.ts +0 -2
- package/dist/types/src/playground/logger/index.d.ts.map +0 -1
- package/dist/types/src/playground/logger/plugin.d.ts +0 -3
- package/dist/types/src/playground/logger/plugin.d.ts.map +0 -1
- package/dist/types/src/playground/logger/schema.d.ts +0 -27
- package/dist/types/src/playground/logger/schema.d.ts.map +0 -1
- package/dist/types/src/playground/playground.stories.d.ts +0 -11
- package/dist/types/src/playground/playground.stories.d.ts.map +0 -1
- package/dist/types/src/plugin-settings/SettingsPlugin.d.ts +0 -3
- package/dist/types/src/plugin-settings/SettingsPlugin.d.ts.map +0 -1
- package/dist/types/src/plugin-settings/actions.d.ts +0 -61
- package/dist/types/src/plugin-settings/actions.d.ts.map +0 -1
- package/dist/types/src/plugin-settings/app-graph-builder.d.ts +0 -6
- package/dist/types/src/plugin-settings/app-graph-builder.d.ts.map +0 -1
- package/dist/types/src/plugin-settings/index.d.ts +0 -3
- package/dist/types/src/plugin-settings/index.d.ts.map +0 -1
- package/dist/types/src/plugin-settings/meta.d.ts +0 -3
- package/dist/types/src/plugin-settings/meta.d.ts.map +0 -1
- package/dist/types/src/plugin-settings/operation-resolver.d.ts +0 -6
- package/dist/types/src/plugin-settings/operation-resolver.d.ts.map +0 -1
- package/dist/types/src/plugin-settings/translations.d.ts +0 -11
- package/dist/types/src/plugin-settings/translations.d.ts.map +0 -1
- package/dist/types/src/react/App.d.ts.map +0 -1
- package/dist/types/src/react/App.stories.d.ts.map +0 -1
- package/dist/types/src/react/DefaultFallback.d.ts +0 -8
- package/dist/types/src/react/DefaultFallback.d.ts.map +0 -1
- package/dist/types/src/react/ErrorBoundary.d.ts +0 -30
- package/dist/types/src/react/ErrorBoundary.d.ts.map +0 -1
- package/dist/types/src/react/PluginManagerContext.stories.d.ts.map +0 -1
- package/dist/types/src/react/PluginManagerProvider.d.ts.map +0 -1
- package/dist/types/src/react/Surface.d.ts +0 -14
- package/dist/types/src/react/Surface.d.ts.map +0 -1
- package/dist/types/src/react/Surface.stories.d.ts.map +0 -1
- package/dist/types/src/react/SurfaceInfo.d.ts.map +0 -1
- package/dist/types/src/react/common.d.ts.map +0 -1
- package/dist/types/src/react/index.d.ts +0 -9
- package/dist/types/src/react/index.d.ts.map +0 -1
- package/dist/types/src/react/types.d.ts +0 -12
- package/dist/types/src/react/types.d.ts.map +0 -1
- package/dist/types/src/react/useApp.d.ts.map +0 -1
- package/dist/types/src/react/useCapabilities.d.ts.map +0 -1
- package/dist/types/src/react/useLoading.d.ts.map +0 -1
- package/dist/types/src/react/useOperationResolver.d.ts.map +0 -1
- package/src/common/activation-event.ts +0 -99
- package/src/common/capability.ts +0 -343
- package/src/common/collaboration.ts +0 -31
- package/src/common/file.ts +0 -22
- package/src/common/graph.ts +0 -30
- package/src/common/plugin.ts +0 -364
- package/src/playground/debug/Debug.tsx +0 -49
- package/src/playground/debug/plugin.ts +0 -16
- package/src/playground/generator/Main.tsx +0 -80
- package/src/playground/generator/Toolbar.tsx +0 -57
- package/src/playground/generator/generator.ts +0 -48
- package/src/playground/generator/index.ts +0 -6
- package/src/playground/generator/plugin.ts +0 -21
- package/src/playground/layout/Layout.tsx +0 -37
- package/src/playground/layout/plugin.ts +0 -18
- package/src/playground/logger/Toolbar.tsx +0 -33
- package/src/playground/logger/index.ts +0 -5
- package/src/playground/logger/plugin.ts +0 -42
- package/src/playground/logger/schema.ts +0 -22
- package/src/playground/playground.stories.tsx +0 -54
- package/src/plugin-settings/SettingsPlugin.ts +0 -19
- package/src/plugin-settings/actions.ts +0 -64
- package/src/plugin-settings/app-graph-builder.ts +0 -140
- package/src/plugin-settings/index.ts +0 -6
- package/src/plugin-settings/meta.ts +0 -10
- package/src/plugin-settings/operation-resolver.ts +0 -55
- package/src/plugin-settings/translations.ts +0 -19
- package/src/react/App.stories.tsx +0 -63
- package/src/react/DefaultFallback.tsx +0 -26
- package/src/react/ErrorBoundary.tsx +0 -56
- package/src/react/index.ts +0 -14
- package/src/react/types.ts +0 -27
- /package/dist/lib/{node-esm/react/index.mjs.map → browser/chunk-YAFEA4GV.mjs.map} +0 -0
- /package/dist/lib/{node-esm/common/index.mjs.map → browser/common/activation-events.mjs.map} +0 -0
- /package/dist/lib/browser/{react/index.mjs.map → common/capabilities.mjs.map} +0 -0
- /package/dist/lib/browser/{common → ui}/index.mjs.map +0 -0
- /package/dist/types/src/{react → ui/components/PluginManager}/PluginManagerContext.stories.d.ts +0 -0
- /package/dist/types/src/{react → ui/components/Surface}/SurfaceInfo.d.ts +0 -0
- /package/dist/types/src/{react → ui/hooks}/useLoading.d.ts +0 -0
- /package/src/{react → ui/hooks}/useLoading.tsx +0 -0
package/src/common/plugin.ts
DELETED
|
@@ -1,364 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2025 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import type * as Command$ from '@effect/cli/Command';
|
|
6
|
-
import * as Effect from 'effect/Effect';
|
|
7
|
-
|
|
8
|
-
import { type Type } from '@dxos/echo';
|
|
9
|
-
|
|
10
|
-
import { Capability as Capability$, Plugin as Plugin$ } from '../core';
|
|
11
|
-
|
|
12
|
-
import { ActivationEvent } from './activation-event';
|
|
13
|
-
import { Capability } from './capability';
|
|
14
|
-
import { type Resource } from './translations';
|
|
15
|
-
|
|
16
|
-
type PluginModuleOptions = Partial<
|
|
17
|
-
Pick<Plugin$.PluginModuleOptions, 'id' | 'activatesOn' | 'activatesBefore' | 'activatesAfter'>
|
|
18
|
-
> &
|
|
19
|
-
Pick<Plugin$.PluginModuleOptions, 'activate'>;
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Helper functions for creating common plugin module patterns.
|
|
23
|
-
*/
|
|
24
|
-
export namespace Plugin {
|
|
25
|
-
// TODO(wittjosiah): Restrict type to only allow operation handlers.
|
|
26
|
-
export type OperationResolverModuleOptions = PluginModuleOptions;
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Creates a module that contributes operation handlers.
|
|
30
|
-
*
|
|
31
|
-
* @param options Module options including the activate function and optional configuration
|
|
32
|
-
* @returns A function that can be used with Plugin.addModule() in a pipe chain
|
|
33
|
-
*
|
|
34
|
-
* @example
|
|
35
|
-
* ```ts
|
|
36
|
-
* Plugin.define(meta).pipe(
|
|
37
|
-
* Common.Plugin.addOperationResolverModule({
|
|
38
|
-
* activate: (context) =>
|
|
39
|
-
* Capability.contributes(Common.Capability.OperationResolver, [{
|
|
40
|
-
* operation: MyOperation,
|
|
41
|
-
* handler: (input) => Effect.succeed(...)
|
|
42
|
-
* }])
|
|
43
|
-
* })
|
|
44
|
-
* )
|
|
45
|
-
* ```
|
|
46
|
-
*/
|
|
47
|
-
export function addOperationResolverModule<T = void>(
|
|
48
|
-
options: OperationResolverModuleOptions,
|
|
49
|
-
): (builder: Plugin$.PluginBuilder<T>) => Plugin$.PluginBuilder<T> {
|
|
50
|
-
return Plugin$.addModule({
|
|
51
|
-
id: Capability$.getModuleTag(options.activate) ?? options.id ?? 'operation-resolver',
|
|
52
|
-
activatesOn: options.activatesOn ?? ActivationEvent.SetupOperationResolver,
|
|
53
|
-
activatesBefore: options.activatesBefore,
|
|
54
|
-
activatesAfter: options.activatesAfter,
|
|
55
|
-
activate: options.activate,
|
|
56
|
-
});
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
// TODO(wittjosiah): Restrict type to only allow surfaces.
|
|
60
|
-
export type SurfaceModuleOptions = PluginModuleOptions;
|
|
61
|
-
|
|
62
|
-
/**
|
|
63
|
-
* Creates a module that contributes React surfaces.
|
|
64
|
-
*
|
|
65
|
-
* @param options Module options including the activate function and optional configuration
|
|
66
|
-
* @returns A function that can be used with Plugin.addModule() in a pipe chain
|
|
67
|
-
*
|
|
68
|
-
* @example
|
|
69
|
-
* ```ts
|
|
70
|
-
* Plugin.define(meta).pipe(
|
|
71
|
-
* Common.Plugin.addSurfaceModule({
|
|
72
|
-
* activate: (context) =>
|
|
73
|
-
* Capability.contributes(Common.Capability.ReactSurface, [
|
|
74
|
-
* Common.createSurface({ id: `${meta.id}/my-surface`, ... })
|
|
75
|
-
* ])
|
|
76
|
-
* })
|
|
77
|
-
* )
|
|
78
|
-
* ```
|
|
79
|
-
*/
|
|
80
|
-
export function addSurfaceModule<T = void>(
|
|
81
|
-
options: SurfaceModuleOptions,
|
|
82
|
-
): (builder: Plugin$.PluginBuilder<T>) => Plugin$.PluginBuilder<T> {
|
|
83
|
-
return Plugin$.addModule({
|
|
84
|
-
id: Capability$.getModuleTag(options.activate) ?? options.id ?? 'surfaces',
|
|
85
|
-
activatesOn: options.activatesOn ?? ActivationEvent.SetupReactSurface,
|
|
86
|
-
activatesBefore: options.activatesBefore,
|
|
87
|
-
activatesAfter: options.activatesAfter,
|
|
88
|
-
activate: options.activate,
|
|
89
|
-
});
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
// TODO(wittjosiah): Restrict type to only allow react roots.
|
|
93
|
-
export type ReactRootModuleOptions = PluginModuleOptions;
|
|
94
|
-
|
|
95
|
-
/**
|
|
96
|
-
* Creates a module that contributes a React root.
|
|
97
|
-
*/
|
|
98
|
-
export function addReactRootModule<T = void>(
|
|
99
|
-
options: ReactRootModuleOptions,
|
|
100
|
-
): (builder: Plugin$.PluginBuilder<T>) => Plugin$.PluginBuilder<T> {
|
|
101
|
-
return Plugin$.addModule({
|
|
102
|
-
id: Capability$.getModuleTag(options.activate) ?? options.id ?? 'react-root',
|
|
103
|
-
activatesOn: options.activatesOn ?? ActivationEvent.Startup,
|
|
104
|
-
activatesBefore: options.activatesBefore,
|
|
105
|
-
activatesAfter: options.activatesAfter,
|
|
106
|
-
activate: options.activate,
|
|
107
|
-
});
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
// TODO(wittjosiah): Restrict type to only allow react contexts.
|
|
111
|
-
export type ReactContextModuleOptions = PluginModuleOptions;
|
|
112
|
-
|
|
113
|
-
/**
|
|
114
|
-
* Creates a module that contributes a React context.
|
|
115
|
-
*/
|
|
116
|
-
export function addReactContextModule<T = void>(
|
|
117
|
-
options: ReactContextModuleOptions,
|
|
118
|
-
): (builder: Plugin$.PluginBuilder<T>) => Plugin$.PluginBuilder<T> {
|
|
119
|
-
return Plugin$.addModule({
|
|
120
|
-
id: Capability$.getModuleTag(options.activate) ?? options.id ?? 'react-context',
|
|
121
|
-
activatesOn: options.activatesOn ?? ActivationEvent.Startup,
|
|
122
|
-
activatesBefore: options.activatesBefore,
|
|
123
|
-
activatesAfter: options.activatesAfter,
|
|
124
|
-
activate: options.activate,
|
|
125
|
-
});
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
// TODO(wittjosiah): Restrict type to only allow app graph builders.
|
|
129
|
-
export type AppGraphModuleOptions = PluginModuleOptions;
|
|
130
|
-
|
|
131
|
-
/**
|
|
132
|
-
* Creates a module that contributes app graph builder extensions.
|
|
133
|
-
*
|
|
134
|
-
* @param options Module options including the activate function and optional configuration
|
|
135
|
-
* @returns A function that can be used with Plugin.addModule() in a pipe chain
|
|
136
|
-
*
|
|
137
|
-
* @example
|
|
138
|
-
* ```ts
|
|
139
|
-
* Plugin.define(meta).pipe(
|
|
140
|
-
* Common.Plugin.addAppGraphModule({
|
|
141
|
-
* activate: Effect.fnUntraced(function* () {
|
|
142
|
-
* const extensions = yield* GraphBuilder.createExtension({
|
|
143
|
-
* id: meta.id,
|
|
144
|
-
* match: NodeMatcher.whenRoot,
|
|
145
|
-
* // All callbacks must return Effects.
|
|
146
|
-
* actions: () => Effect.succeed([{
|
|
147
|
-
* id: 'my-action',
|
|
148
|
-
* // Action data returns Effect for automatic context access.
|
|
149
|
-
* data: Effect.fnUntraced(function* () {
|
|
150
|
-
* yield* Operation.invoke(MyOperation, { ... });
|
|
151
|
-
* }),
|
|
152
|
-
* properties: { label: 'My Action', icon: 'ph--icon' },
|
|
153
|
-
* }]),
|
|
154
|
-
* connector: (node, get) => Effect.succeed([{ id: 'child', ... }]),
|
|
155
|
-
* });
|
|
156
|
-
* return Capability.contributes(Common.Capability.AppGraphBuilder, extensions);
|
|
157
|
-
* })
|
|
158
|
-
* })
|
|
159
|
-
* )
|
|
160
|
-
* ```
|
|
161
|
-
*/
|
|
162
|
-
export function addAppGraphModule<T = void>(
|
|
163
|
-
options: AppGraphModuleOptions,
|
|
164
|
-
): (builder: Plugin$.PluginBuilder<T>) => Plugin$.PluginBuilder<T> {
|
|
165
|
-
return Plugin$.addModule({
|
|
166
|
-
id: Capability$.getModuleTag(options.activate) ?? options.id ?? 'app-graph-builder',
|
|
167
|
-
activatesOn: options.activatesOn ?? ActivationEvent.SetupAppGraph,
|
|
168
|
-
activatesBefore: options.activatesBefore,
|
|
169
|
-
activatesAfter: options.activatesAfter,
|
|
170
|
-
activate: options.activate,
|
|
171
|
-
});
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
export type TranslationsModuleOptions = Omit<PluginModuleOptions, 'activate'> & {
|
|
175
|
-
translations: Resource | Resource[];
|
|
176
|
-
};
|
|
177
|
-
|
|
178
|
-
/**
|
|
179
|
-
* Creates a module that contributes translations.
|
|
180
|
-
*
|
|
181
|
-
* @param options Module options including translations and optional configuration
|
|
182
|
-
* @returns A function that can be used with Plugin.addModule() in a pipe chain
|
|
183
|
-
*
|
|
184
|
-
* @example
|
|
185
|
-
* ```ts
|
|
186
|
-
* Plugin.define(meta).pipe(
|
|
187
|
-
* Common.Plugin.addTranslationsModule({
|
|
188
|
-
* translations: translations
|
|
189
|
-
* })
|
|
190
|
-
* )
|
|
191
|
-
* ```
|
|
192
|
-
*/
|
|
193
|
-
export function addTranslationsModule<T = void>(
|
|
194
|
-
options: TranslationsModuleOptions,
|
|
195
|
-
): (builder: Plugin$.PluginBuilder<T>) => Plugin$.PluginBuilder<T> {
|
|
196
|
-
return Plugin$.addModule({
|
|
197
|
-
id: options?.id ?? 'translations',
|
|
198
|
-
activatesOn: options?.activatesOn ?? ActivationEvent.SetupTranslations,
|
|
199
|
-
activatesBefore: options?.activatesBefore,
|
|
200
|
-
activatesAfter: options?.activatesAfter,
|
|
201
|
-
activate: Effect.fnUntraced(function* () {
|
|
202
|
-
return Capability$.contributes(
|
|
203
|
-
Capability.Translations,
|
|
204
|
-
Array.isArray(options.translations) ? options.translations : ([options.translations] as Resource[]),
|
|
205
|
-
);
|
|
206
|
-
}),
|
|
207
|
-
});
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
export type MetadataModuleOptions = Omit<PluginModuleOptions, 'activate'> & {
|
|
211
|
-
metadata: Capability.Metadata | Capability.Metadata[];
|
|
212
|
-
};
|
|
213
|
-
|
|
214
|
-
/**
|
|
215
|
-
* Creates a module that contributes metadata.
|
|
216
|
-
*
|
|
217
|
-
* @param options Module options including metadata and optional configuration
|
|
218
|
-
* @returns A function that can be used with Plugin.addModule() in a pipe chain
|
|
219
|
-
*
|
|
220
|
-
* @example
|
|
221
|
-
* ```ts
|
|
222
|
-
* Plugin.define(meta).pipe(
|
|
223
|
-
* Common.Plugin.addMetadataModule({
|
|
224
|
-
* metadata: {
|
|
225
|
-
* id: MyType.typename,
|
|
226
|
-
* metadata: { icon: 'ph--icon', ... }
|
|
227
|
-
* }
|
|
228
|
-
* })
|
|
229
|
-
* )
|
|
230
|
-
* ```
|
|
231
|
-
*/
|
|
232
|
-
export function addMetadataModule<T = void>(
|
|
233
|
-
options: MetadataModuleOptions,
|
|
234
|
-
): (builder: Plugin$.PluginBuilder<T>) => Plugin$.PluginBuilder<T> {
|
|
235
|
-
return Plugin$.addModule({
|
|
236
|
-
id: options.id ?? 'metadata',
|
|
237
|
-
activatesOn: options.activatesOn ?? ActivationEvent.SetupMetadata,
|
|
238
|
-
activatesBefore: options.activatesBefore,
|
|
239
|
-
activatesAfter: options.activatesAfter,
|
|
240
|
-
activate: Effect.fnUntraced(function* () {
|
|
241
|
-
return (Array.isArray(options.metadata) ? options.metadata : [options.metadata]).map((m) =>
|
|
242
|
-
Capability$.contributes(Capability.Metadata, m),
|
|
243
|
-
);
|
|
244
|
-
}),
|
|
245
|
-
});
|
|
246
|
-
}
|
|
247
|
-
|
|
248
|
-
// TODO(wittjosiah): Restrict type to only allow settings.
|
|
249
|
-
export type SettingsModuleOptions = PluginModuleOptions;
|
|
250
|
-
|
|
251
|
-
/**
|
|
252
|
-
* Creates a module that contributes settings.
|
|
253
|
-
*/
|
|
254
|
-
export function addSettingsModule<T = void>(
|
|
255
|
-
options: SettingsModuleOptions,
|
|
256
|
-
): (builder: Plugin$.PluginBuilder<T>) => Plugin$.PluginBuilder<T> {
|
|
257
|
-
return Plugin$.addModule({
|
|
258
|
-
id: Capability$.getModuleTag(options.activate) ?? options.id ?? 'settings',
|
|
259
|
-
activatesOn: options.activatesOn ?? ActivationEvent.SetupSettings,
|
|
260
|
-
activatesBefore: options.activatesBefore,
|
|
261
|
-
activatesAfter: options.activatesAfter,
|
|
262
|
-
activate: options.activate,
|
|
263
|
-
});
|
|
264
|
-
}
|
|
265
|
-
|
|
266
|
-
// TODO(wittjosiah): Restrict type to only allow blueprint definitions.
|
|
267
|
-
export type BlueprintDefinitionModuleOptions = PluginModuleOptions;
|
|
268
|
-
|
|
269
|
-
/**
|
|
270
|
-
* Creates a module that contributes blueprint definitions.
|
|
271
|
-
*
|
|
272
|
-
* @param options Module options including the activate function and optional configuration
|
|
273
|
-
* @returns A function that can be used with Plugin.addModule() in a pipe chain
|
|
274
|
-
*
|
|
275
|
-
* @example
|
|
276
|
-
* ```ts
|
|
277
|
-
* Plugin.define(meta).pipe(
|
|
278
|
-
* Common.Plugin.addBlueprintDefinitionModule({
|
|
279
|
-
* activate: (context) =>
|
|
280
|
-
* Capability.contributes(Common.Capability.BlueprintDefinition, [
|
|
281
|
-
* BlueprintDefinition.make({ key: 'my-blueprint', ... })
|
|
282
|
-
* ])
|
|
283
|
-
* })
|
|
284
|
-
* )
|
|
285
|
-
* ```
|
|
286
|
-
*/
|
|
287
|
-
export function addBlueprintDefinitionModule<T = void>(
|
|
288
|
-
options: BlueprintDefinitionModuleOptions,
|
|
289
|
-
): (builder: Plugin$.PluginBuilder<T>) => Plugin$.PluginBuilder<T> {
|
|
290
|
-
return Plugin$.addModule({
|
|
291
|
-
id: Capability$.getModuleTag(options.activate) ?? options.id ?? 'blueprint-definition',
|
|
292
|
-
activatesOn: options.activatesOn ?? ActivationEvent.SetupArtifactDefinition,
|
|
293
|
-
activatesBefore: options.activatesBefore,
|
|
294
|
-
activatesAfter: options.activatesAfter,
|
|
295
|
-
activate: options.activate,
|
|
296
|
-
});
|
|
297
|
-
}
|
|
298
|
-
|
|
299
|
-
export type SchemaModuleOptions = Omit<PluginModuleOptions, 'activate'> & {
|
|
300
|
-
schema: ReadonlyArray<Type.Entity.Any>;
|
|
301
|
-
};
|
|
302
|
-
|
|
303
|
-
/**
|
|
304
|
-
* Creates a module that contributes schemas.
|
|
305
|
-
*
|
|
306
|
-
* @param options Module options including schema array and optional configuration
|
|
307
|
-
* @returns A function that can be used with Plugin.addModule() in a pipe chain
|
|
308
|
-
*
|
|
309
|
-
* @example
|
|
310
|
-
* ```ts
|
|
311
|
-
* Plugin.define(meta).pipe(
|
|
312
|
-
* Common.Plugin.addSchemaModule({
|
|
313
|
-
* schema: [MyType.Type, AnotherType.Type]
|
|
314
|
-
* })
|
|
315
|
-
* )
|
|
316
|
-
* ```
|
|
317
|
-
*/
|
|
318
|
-
export function addSchemaModule<T = void>(
|
|
319
|
-
options: SchemaModuleOptions,
|
|
320
|
-
): (builder: Plugin$.PluginBuilder<T>) => Plugin$.PluginBuilder<T> {
|
|
321
|
-
return Plugin$.addModule({
|
|
322
|
-
id: options.id ?? 'schema',
|
|
323
|
-
activatesOn: options.activatesOn ?? ActivationEvent.SetupSchema,
|
|
324
|
-
activatesBefore: options.activatesBefore,
|
|
325
|
-
activatesAfter: options.activatesAfter,
|
|
326
|
-
activate: Effect.fnUntraced(function* () {
|
|
327
|
-
return Capability$.contributes(Capability.Schema, options.schema);
|
|
328
|
-
}),
|
|
329
|
-
});
|
|
330
|
-
}
|
|
331
|
-
|
|
332
|
-
export type CommandModuleOptions = Omit<PluginModuleOptions, 'activate'> & {
|
|
333
|
-
commands: ReadonlyArray<Command$.Command<any, any, any, any>>;
|
|
334
|
-
};
|
|
335
|
-
|
|
336
|
-
/**
|
|
337
|
-
* Creates a module that contributes CLI commands.
|
|
338
|
-
*
|
|
339
|
-
* @param options Module options including commands and optional configuration
|
|
340
|
-
* @returns A function that can be used with Plugin.addModule() in a pipe chain
|
|
341
|
-
*
|
|
342
|
-
* @example
|
|
343
|
-
* ```ts
|
|
344
|
-
* Plugin.define(meta).pipe(
|
|
345
|
-
* Common.Plugin.addCommandModule({
|
|
346
|
-
* commands: [myCommand, anotherCommand]
|
|
347
|
-
* })
|
|
348
|
-
* )
|
|
349
|
-
* ```
|
|
350
|
-
*/
|
|
351
|
-
export function addCommandModule<T = void>(
|
|
352
|
-
options: CommandModuleOptions,
|
|
353
|
-
): (builder: Plugin$.PluginBuilder<T>) => Plugin$.PluginBuilder<T> {
|
|
354
|
-
return Plugin$.addModule({
|
|
355
|
-
id: options.id ?? 'cli-commands',
|
|
356
|
-
activatesOn: options.activatesOn ?? ActivationEvent.Startup,
|
|
357
|
-
activatesBefore: options.activatesBefore,
|
|
358
|
-
activatesAfter: options.activatesAfter,
|
|
359
|
-
activate: Effect.fnUntraced(function* () {
|
|
360
|
-
return options.commands.map((cmd) => Capability$.contributes(Capability.Command, cmd));
|
|
361
|
-
}),
|
|
362
|
-
});
|
|
363
|
-
}
|
|
364
|
-
}
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2025 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import { useAtomValue } from '@effect-atom/atom-react';
|
|
6
|
-
import * as Effect from 'effect/Effect';
|
|
7
|
-
import React from 'react';
|
|
8
|
-
|
|
9
|
-
import { SyntaxHighlighter } from '@dxos/react-ui-syntax-highlighter';
|
|
10
|
-
|
|
11
|
-
import * as Common from '../../common';
|
|
12
|
-
import { Capability } from '../../core';
|
|
13
|
-
import { usePluginManager } from '../../react';
|
|
14
|
-
|
|
15
|
-
export const Debug = () => {
|
|
16
|
-
const manager = usePluginManager();
|
|
17
|
-
const core = useAtomValue(manager.core);
|
|
18
|
-
const enabled = useAtomValue(manager.enabled);
|
|
19
|
-
const active = useAtomValue(manager.active);
|
|
20
|
-
const pendingReset = useAtomValue(manager.pendingReset);
|
|
21
|
-
const eventsFired = useAtomValue(manager.eventsFired);
|
|
22
|
-
|
|
23
|
-
const object = {
|
|
24
|
-
core,
|
|
25
|
-
enabled,
|
|
26
|
-
active,
|
|
27
|
-
pendingReset,
|
|
28
|
-
eventsFired,
|
|
29
|
-
};
|
|
30
|
-
|
|
31
|
-
return (
|
|
32
|
-
<SyntaxHighlighter language='json' classNames='text-xs opacity-75 rounded'>
|
|
33
|
-
{JSON.stringify(object, undefined, 2)}
|
|
34
|
-
</SyntaxHighlighter>
|
|
35
|
-
);
|
|
36
|
-
};
|
|
37
|
-
|
|
38
|
-
export default Capability.makeModule(() =>
|
|
39
|
-
Effect.succeed(
|
|
40
|
-
Capability.contributes(
|
|
41
|
-
Common.Capability.ReactSurface,
|
|
42
|
-
Common.createSurface({
|
|
43
|
-
id: 'dxos.org/test/debug/main',
|
|
44
|
-
role: 'secondary',
|
|
45
|
-
component: Debug,
|
|
46
|
-
}),
|
|
47
|
-
),
|
|
48
|
-
),
|
|
49
|
-
);
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2025 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import * as Common from '../../common';
|
|
6
|
-
import { Capability, Plugin } from '../../core';
|
|
7
|
-
|
|
8
|
-
const Debug = Capability.lazy('Debug', () => import('./Debug'));
|
|
9
|
-
|
|
10
|
-
export const DebugPlugin = Plugin.define({ id: 'dxos.org/test/plugin-debug', name: 'Debug' }).pipe(
|
|
11
|
-
Plugin.addModule({
|
|
12
|
-
activatesOn: Common.ActivationEvent.Startup,
|
|
13
|
-
activate: Debug,
|
|
14
|
-
}),
|
|
15
|
-
Plugin.make,
|
|
16
|
-
);
|
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2025 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import { useAtomValue } from '@effect-atom/atom-react';
|
|
6
|
-
import * as Effect from 'effect/Effect';
|
|
7
|
-
import React, { useCallback } from 'react';
|
|
8
|
-
|
|
9
|
-
import { IconButton, List, ListItem } from '@dxos/react-ui';
|
|
10
|
-
|
|
11
|
-
import * as Common from '../../common';
|
|
12
|
-
import { Capability } from '../../core';
|
|
13
|
-
import { usePluginManager } from '../../react';
|
|
14
|
-
|
|
15
|
-
const Item = ({
|
|
16
|
-
id,
|
|
17
|
-
disabled,
|
|
18
|
-
onRemove,
|
|
19
|
-
}: {
|
|
20
|
-
id: string;
|
|
21
|
-
disabled: boolean;
|
|
22
|
-
onRemove: (id: string) => Promise<void>;
|
|
23
|
-
}) => {
|
|
24
|
-
const handleRemove = useCallback(() => onRemove(id), [onRemove]);
|
|
25
|
-
|
|
26
|
-
return (
|
|
27
|
-
<ListItem.Root key={id} id={id}>
|
|
28
|
-
<ListItem.Heading classNames='grow pbs-2'>{id}</ListItem.Heading>
|
|
29
|
-
<ListItem.Endcap>
|
|
30
|
-
<IconButton
|
|
31
|
-
iconOnly
|
|
32
|
-
variant='ghost'
|
|
33
|
-
icon='ph--x--regular'
|
|
34
|
-
label='Remove'
|
|
35
|
-
disabled={disabled}
|
|
36
|
-
onClick={handleRemove}
|
|
37
|
-
/>
|
|
38
|
-
</ListItem.Endcap>
|
|
39
|
-
</ListItem.Root>
|
|
40
|
-
);
|
|
41
|
-
};
|
|
42
|
-
|
|
43
|
-
export const Main = () => {
|
|
44
|
-
const manager = usePluginManager();
|
|
45
|
-
const plugins = useAtomValue(manager.plugins);
|
|
46
|
-
const core = useAtomValue(manager.core);
|
|
47
|
-
|
|
48
|
-
const handleRemove = useCallback(
|
|
49
|
-
async (id: string) => {
|
|
50
|
-
await manager.remove(id);
|
|
51
|
-
},
|
|
52
|
-
[manager],
|
|
53
|
-
);
|
|
54
|
-
|
|
55
|
-
return (
|
|
56
|
-
<List itemSizes='one'>
|
|
57
|
-
{plugins.map((plugin) => (
|
|
58
|
-
<Item
|
|
59
|
-
key={plugin.meta.id}
|
|
60
|
-
id={plugin.meta.id}
|
|
61
|
-
disabled={core.includes(plugin.meta.id)}
|
|
62
|
-
onRemove={handleRemove}
|
|
63
|
-
/>
|
|
64
|
-
))}
|
|
65
|
-
</List>
|
|
66
|
-
);
|
|
67
|
-
};
|
|
68
|
-
|
|
69
|
-
export default Capability.makeModule(() =>
|
|
70
|
-
Effect.succeed(
|
|
71
|
-
Capability.contributes(
|
|
72
|
-
Common.Capability.ReactSurface,
|
|
73
|
-
Common.createSurface({
|
|
74
|
-
id: 'dxos.org/test/generator/main',
|
|
75
|
-
role: 'primary',
|
|
76
|
-
component: Main,
|
|
77
|
-
}),
|
|
78
|
-
),
|
|
79
|
-
),
|
|
80
|
-
);
|
|
@@ -1,57 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2025 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import { useAtomValue } from '@effect-atom/atom-react';
|
|
6
|
-
import * as Effect from 'effect/Effect';
|
|
7
|
-
import React, { useCallback } from 'react';
|
|
8
|
-
|
|
9
|
-
import { Button } from '@dxos/react-ui';
|
|
10
|
-
|
|
11
|
-
import * as Common from '../../common';
|
|
12
|
-
import { Capability, type Plugin } from '../../core';
|
|
13
|
-
import { useCapabilities, useOperationInvoker, usePluginManager } from '../../react';
|
|
14
|
-
|
|
15
|
-
import { Number, createAlertOperation, createPluginId } from './generator';
|
|
16
|
-
|
|
17
|
-
export const Toolbar = () => {
|
|
18
|
-
const manager = usePluginManager();
|
|
19
|
-
const plugins = useAtomValue(manager.plugins);
|
|
20
|
-
const { invokePromise } = useOperationInvoker();
|
|
21
|
-
|
|
22
|
-
const handleAdd = useCallback(async () => {
|
|
23
|
-
const id = createPluginId(Math.random().toString(16).substring(2, 8));
|
|
24
|
-
await manager.add(id);
|
|
25
|
-
}, [manager]);
|
|
26
|
-
|
|
27
|
-
const count = useCapabilities(Number).reduce((acc: number, curr: number) => acc + curr, 0);
|
|
28
|
-
|
|
29
|
-
const generatorPlugins = plugins.filter((plugin: Plugin.Plugin) =>
|
|
30
|
-
plugin.meta.id.startsWith('dxos.org/test/generator/'),
|
|
31
|
-
);
|
|
32
|
-
|
|
33
|
-
return (
|
|
34
|
-
<>
|
|
35
|
-
<Button onClick={handleAdd}>Add</Button>
|
|
36
|
-
<div className='flex items-center'>Count: {count}</div>
|
|
37
|
-
{generatorPlugins.map((plugin: Plugin.Plugin) => (
|
|
38
|
-
<Button key={plugin.meta.id} onClick={() => invokePromise(createAlertOperation(plugin.meta.id))}>
|
|
39
|
-
{plugin.meta.id.replace('dxos.org/test/generator/', '')}
|
|
40
|
-
</Button>
|
|
41
|
-
))}
|
|
42
|
-
</>
|
|
43
|
-
);
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
export default Capability.makeModule(() =>
|
|
47
|
-
Effect.succeed(
|
|
48
|
-
Capability.contributes(
|
|
49
|
-
Common.Capability.ReactSurface,
|
|
50
|
-
Common.createSurface({
|
|
51
|
-
id: 'dxos.org/test/generator/toolbar',
|
|
52
|
-
role: 'toolbar',
|
|
53
|
-
component: Toolbar,
|
|
54
|
-
}),
|
|
55
|
-
),
|
|
56
|
-
),
|
|
57
|
-
);
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2025 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import * as Effect from 'effect/Effect';
|
|
6
|
-
import * as Schema from 'effect/Schema';
|
|
7
|
-
|
|
8
|
-
import { Operation, OperationResolver } from '@dxos/operation';
|
|
9
|
-
|
|
10
|
-
import * as Common from '../../common';
|
|
11
|
-
import { ActivationEvent, Capability, Plugin } from '../../core';
|
|
12
|
-
|
|
13
|
-
export const Number = Capability.make<number>('dxos.org/test/generator/number');
|
|
14
|
-
|
|
15
|
-
export const CountEvent = ActivationEvent.make('dxos.org/test/generator/count');
|
|
16
|
-
|
|
17
|
-
export const createPluginId = (id: string) => `dxos.org/test/generator/${id}`;
|
|
18
|
-
|
|
19
|
-
export const createAlertOperation = (id: string) =>
|
|
20
|
-
Operation.make({
|
|
21
|
-
meta: { key: `${createPluginId(id)}/operation/alert`, name: 'Alert' },
|
|
22
|
-
schema: { input: Schema.Void, output: Schema.Void },
|
|
23
|
-
});
|
|
24
|
-
|
|
25
|
-
export const createNumberPlugin = (id: string) => {
|
|
26
|
-
const number = Math.floor(Math.random() * 100);
|
|
27
|
-
const AlertOperation = createAlertOperation(id);
|
|
28
|
-
|
|
29
|
-
return Plugin.define({ id, name: `Plugin ${id}` }).pipe(
|
|
30
|
-
Plugin.addModule({
|
|
31
|
-
id: 'Main',
|
|
32
|
-
activatesOn: CountEvent,
|
|
33
|
-
activate: () => Effect.succeed(Capability.contributes(Number, number)),
|
|
34
|
-
}),
|
|
35
|
-
Common.Plugin.addOperationResolverModule({
|
|
36
|
-
activate: () =>
|
|
37
|
-
Effect.succeed(
|
|
38
|
-
Capability.contributes(Common.Capability.OperationResolver, [
|
|
39
|
-
OperationResolver.make({
|
|
40
|
-
operation: AlertOperation,
|
|
41
|
-
handler: () => Effect.sync(() => window.alert(JSON.stringify({ number }))),
|
|
42
|
-
}),
|
|
43
|
-
]),
|
|
44
|
-
),
|
|
45
|
-
}),
|
|
46
|
-
Plugin.make,
|
|
47
|
-
)();
|
|
48
|
-
};
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2025 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import * as Common from '../../common';
|
|
6
|
-
import { Capability, Plugin } from '../../core';
|
|
7
|
-
|
|
8
|
-
const Main = Capability.lazy('Main', () => import('./Main'));
|
|
9
|
-
const Toolbar = Capability.lazy('Toolbar', () => import('./Toolbar'));
|
|
10
|
-
|
|
11
|
-
export const GeneratorPlugin = Plugin.define({ id: 'dxos.org/test/generator', name: 'Generator' }).pipe(
|
|
12
|
-
Plugin.addModule({
|
|
13
|
-
activatesOn: Common.ActivationEvent.Startup,
|
|
14
|
-
activate: Main,
|
|
15
|
-
}),
|
|
16
|
-
Plugin.addModule({
|
|
17
|
-
activatesOn: Common.ActivationEvent.Startup,
|
|
18
|
-
activate: Toolbar,
|
|
19
|
-
}),
|
|
20
|
-
Plugin.make,
|
|
21
|
-
);
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
//
|
|
2
|
-
// Copyright 2025 DXOS.org
|
|
3
|
-
//
|
|
4
|
-
|
|
5
|
-
import * as Effect from 'effect/Effect';
|
|
6
|
-
import React from 'react';
|
|
7
|
-
|
|
8
|
-
import * as Common from '../../common';
|
|
9
|
-
import { Capability } from '../../core';
|
|
10
|
-
import { Surface } from '../../react';
|
|
11
|
-
|
|
12
|
-
export const Layout = () => {
|
|
13
|
-
return (
|
|
14
|
-
<div className='flex flex-col gap-2'>
|
|
15
|
-
<div className='flex gap-2'>
|
|
16
|
-
<Surface role='toolbar' />
|
|
17
|
-
</div>
|
|
18
|
-
<div className='flex gap-2'>
|
|
19
|
-
<div className='flex-1'>
|
|
20
|
-
<Surface role='primary' limit={1} />
|
|
21
|
-
</div>
|
|
22
|
-
<div className='flex-1'>
|
|
23
|
-
<Surface role='secondary' limit={1} />
|
|
24
|
-
</div>
|
|
25
|
-
</div>
|
|
26
|
-
</div>
|
|
27
|
-
);
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
export default Capability.makeModule(() =>
|
|
31
|
-
Effect.succeed(
|
|
32
|
-
Capability.contributes(Common.Capability.ReactRoot, {
|
|
33
|
-
id: 'dxos.org/test/layout/root',
|
|
34
|
-
root: Layout,
|
|
35
|
-
}),
|
|
36
|
-
),
|
|
37
|
-
);
|