@dxos/app-framework 0.8.2-main.12df754 → 0.8.2-main.30e4dbb
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/dist/lib/browser/{app-graph-builder-RHU5WUGJ.mjs → app-graph-builder-OWHVEAHP.mjs} +7 -5
- package/dist/lib/browser/app-graph-builder-OWHVEAHP.mjs.map +7 -0
- package/dist/lib/browser/{chunk-GYFO2C4Q.mjs → chunk-A7XUUTJN.mjs} +2 -2
- package/dist/lib/browser/{chunk-SFPT4Z2C.mjs → chunk-KPRHX73H.mjs} +9 -9
- package/dist/lib/browser/chunk-KPRHX73H.mjs.map +7 -0
- package/dist/lib/browser/{chunk-5WHZ3ORL.mjs → chunk-M6UBP7YP.mjs} +165 -162
- package/dist/lib/browser/chunk-M6UBP7YP.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +6 -6
- package/dist/lib/browser/{intent-dispatcher-T6YETUE7.mjs → intent-dispatcher-SICNXT2G.mjs} +2 -2
- package/dist/lib/browser/{intent-resolver-UQFD7VBJ.mjs → intent-resolver-2K6LNSUE.mjs} +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{store-NP42FCZO.mjs → store-P4XZF26P.mjs} +2 -2
- package/dist/lib/browser/testing/index.mjs +7 -3
- package/dist/lib/browser/testing/index.mjs.map +3 -3
- package/dist/lib/browser/worker.mjs +1 -1
- package/dist/lib/node/{app-graph-builder-QGHI2J2R.cjs → app-graph-builder-43JOK25K.cjs} +32 -30
- package/dist/lib/node/app-graph-builder-43JOK25K.cjs.map +7 -0
- package/dist/lib/node/{chunk-JUSEAFDU.cjs → chunk-JQMNABMK.cjs} +4 -4
- package/dist/lib/node/chunk-JQMNABMK.cjs.map +7 -0
- package/dist/lib/node/{chunk-EGY2ANJA.cjs → chunk-LPUJODXZ.cjs} +8 -5
- package/dist/lib/node/chunk-LPUJODXZ.cjs.map +7 -0
- package/dist/lib/node/{chunk-PIFNLI5K.cjs → chunk-MTROSTO7.cjs} +19 -19
- package/dist/lib/node/index.cjs +79 -79
- package/dist/lib/node/{intent-dispatcher-BEKV2HG3.cjs → intent-dispatcher-XXFKXEHF.cjs} +8 -8
- package/dist/lib/node/{intent-dispatcher-BEKV2HG3.cjs.map → intent-dispatcher-XXFKXEHF.cjs.map} +2 -2
- package/dist/lib/node/{intent-resolver-NALI2KSH.cjs → intent-resolver-ZP6S7QKG.cjs} +12 -12
- package/dist/lib/node/meta.json +1 -1
- package/dist/lib/node/{store-I7KM7GGP.cjs → store-MALHSPHZ.cjs} +7 -7
- package/dist/lib/node/testing/index.cjs +14 -9
- package/dist/lib/node/testing/index.cjs.map +3 -3
- package/dist/lib/node/worker.cjs +38 -38
- package/dist/lib/node/worker.cjs.map +1 -1
- package/dist/lib/node-esm/{app-graph-builder-45FJO6JA.mjs → app-graph-builder-WE4IBY3S.mjs} +7 -5
- package/dist/lib/node-esm/app-graph-builder-WE4IBY3S.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-PHOUQACM.mjs → chunk-JUJF5L4G.mjs} +9 -9
- package/dist/lib/node-esm/chunk-JUJF5L4G.mjs.map +7 -0
- package/dist/lib/node-esm/{chunk-KFDC5QSQ.mjs → chunk-MX6ITPIG.mjs} +2 -2
- package/dist/lib/node-esm/{chunk-YQMLJUYN.mjs → chunk-OZD32CQN.mjs} +165 -162
- package/dist/lib/node-esm/chunk-OZD32CQN.mjs.map +7 -0
- package/dist/lib/node-esm/index.mjs +6 -6
- package/dist/lib/node-esm/{intent-dispatcher-MYETZPUW.mjs → intent-dispatcher-FF5HNHPQ.mjs} +2 -2
- package/dist/lib/node-esm/{intent-resolver-BW5I7SOS.mjs → intent-resolver-QWIKXIGI.mjs} +3 -3
- package/dist/lib/node-esm/meta.json +1 -1
- package/dist/lib/node-esm/{store-MKIES4HL.mjs → store-3NM6AWB4.mjs} +2 -2
- package/dist/lib/node-esm/testing/index.mjs +7 -3
- package/dist/lib/node-esm/testing/index.mjs.map +3 -3
- package/dist/lib/node-esm/worker.mjs +1 -1
- package/dist/types/src/App.d.ts.map +1 -1
- package/dist/types/src/common/capabilities.d.ts +2 -2
- package/dist/types/src/common/capabilities.d.ts.map +1 -1
- package/dist/types/src/common/collaboration.d.ts +7 -7
- package/dist/types/src/common/collaboration.d.ts.map +1 -1
- package/dist/types/src/common/events.d.ts.map +1 -1
- package/dist/types/src/common/file.d.ts +7 -7
- package/dist/types/src/common/file.d.ts.map +1 -1
- package/dist/types/src/common/layout.d.ts +163 -162
- package/dist/types/src/common/layout.d.ts.map +1 -1
- package/dist/types/src/common/surface.d.ts.map +1 -1
- package/dist/types/src/common/translations.d.ts +7 -7
- package/dist/types/src/common/translations.d.ts.map +1 -1
- package/dist/types/src/core/capabilities.d.ts.map +1 -1
- package/dist/types/src/core/events.d.ts.map +1 -1
- package/dist/types/src/core/plugin.d.ts.map +1 -1
- package/dist/types/src/helpers.d.ts.map +1 -1
- package/dist/types/src/playground/generator/generator.d.ts.map +1 -1
- package/dist/types/src/playground/logger/schema.d.ts +6 -6
- package/dist/types/src/playground/logger/schema.d.ts.map +1 -1
- package/dist/types/src/plugin-intent/actions.d.ts +14 -14
- package/dist/types/src/plugin-intent/actions.d.ts.map +1 -1
- package/dist/types/src/plugin-intent/intent-dispatcher.d.ts.map +1 -1
- package/dist/types/src/plugin-intent/intent.d.ts +12 -12
- package/dist/types/src/plugin-intent/intent.d.ts.map +1 -1
- package/dist/types/src/plugin-settings/actions.d.ts +10 -10
- package/dist/types/src/plugin-settings/actions.d.ts.map +1 -1
- package/dist/types/src/plugin-settings/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/plugin-settings/store.d.ts.map +1 -1
- package/dist/types/src/react/IntentContext.d.ts.map +1 -1
- package/dist/types/src/react/Surface.d.ts.map +1 -1
- package/dist/types/src/react/useCapabilities.d.ts.map +1 -1
- package/dist/types/src/react/useIntentResolver.d.ts.map +1 -1
- package/dist/types/src/testing/withPluginManager.d.ts +5 -2
- package/dist/types/src/testing/withPluginManager.d.ts.map +1 -1
- package/dist/types/src/testing/withPluginManager.stories.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +19 -19
- package/src/common/capabilities.ts +2 -2
- package/src/common/collaboration.ts +7 -6
- package/src/common/file.ts +7 -7
- package/src/common/layout.ts +148 -135
- package/src/common/translations.ts +7 -7
- package/src/playground/generator/generator.ts +4 -4
- package/src/playground/logger/schema.ts +5 -5
- package/src/playground/playground.stories.tsx +1 -1
- package/src/plugin-intent/actions.ts +9 -9
- package/src/plugin-intent/intent-dispatcher.test.ts +23 -23
- package/src/plugin-intent/intent.ts +20 -11
- package/src/plugin-settings/actions.ts +8 -8
- package/src/plugin-settings/app-graph-builder.ts +3 -1
- package/src/react/Surface.stories.tsx +1 -1
- package/src/testing/withPluginManager.stories.tsx +0 -1
- package/src/testing/withPluginManager.tsx +11 -3
- package/typedoc/classes/CollaborationActions.InsertContent.html +241 -202
- package/typedoc/classes/ErrorBoundary.html +6 -6
- package/typedoc/classes/IntentAction.ShowUndo.html +125 -125
- package/typedoc/classes/IntentAction.Track.html +239 -239
- package/typedoc/classes/LayoutAction.AddToast.html +163 -163
- package/typedoc/classes/LayoutAction.Close.html +352 -352
- package/typedoc/classes/LayoutAction.Expose.html +238 -238
- package/typedoc/classes/LayoutAction.Open.html +904 -709
- package/typedoc/classes/LayoutAction.RevertWorkspace.html +241 -241
- package/typedoc/classes/LayoutAction.ScrollIntoView.html +280 -280
- package/typedoc/classes/LayoutAction.Set.html +436 -358
- package/typedoc/classes/LayoutAction.SetLayoutMode.html +469 -391
- package/typedoc/classes/LayoutAction.SwitchWorkspace.html +238 -238
- package/typedoc/classes/LayoutAction.UpdateComplementary.html +358 -358
- package/typedoc/classes/LayoutAction.UpdateDialog.html +553 -475
- package/typedoc/classes/LayoutAction.UpdateLayout.html +281 -281
- package/typedoc/classes/LayoutAction.UpdatePopover.html +826 -826
- package/typedoc/classes/LayoutAction.UpdateSidebar.html +397 -319
- package/typedoc/classes/Plugin.html +3 -3
- package/typedoc/classes/PluginManager.html +16 -16
- package/typedoc/classes/PluginModule.html +8 -8
- package/typedoc/classes/PluginsContext.html +8 -8
- package/typedoc/classes/SettingsAction.Open.html +199 -199
- package/typedoc/classes/SettingsAction.OpenPluginRegistry.html +124 -124
- package/typedoc/functions/Events.createStateEvent.html +2 -2
- package/typedoc/functions/IntentPlugin.html +1 -1
- package/typedoc/functions/SettingsPlugin.html +1 -1
- package/typedoc/functions/allOf.html +2 -2
- package/typedoc/functions/chain.html +2 -2
- package/typedoc/functions/contributes.html +2 -2
- package/typedoc/functions/createApp.html +2 -2
- package/typedoc/functions/createDispatcher.html +2 -2
- package/typedoc/functions/createIntent.html +2 -2
- package/typedoc/functions/createResolver.html +2 -2
- package/typedoc/functions/createSurface.html +2 -2
- package/typedoc/functions/defineCapability.html +2 -2
- package/typedoc/functions/defineEvent.html +2 -2
- package/typedoc/functions/defineModule.html +2 -2
- package/typedoc/functions/definePlugin.html +2 -2
- package/typedoc/functions/eventKey.html +2 -2
- package/typedoc/functions/getEvents.html +2 -2
- package/typedoc/functions/isAllOf.html +2 -2
- package/typedoc/functions/isOneOf.html +2 -2
- package/typedoc/functions/isSurfaceAvailable.html +2 -2
- package/typedoc/functions/lazy.html +2 -2
- package/typedoc/functions/oneOf.html +2 -2
- package/typedoc/functions/useAppGraph.html +1 -1
- package/typedoc/functions/useCapabilities.html +2 -2
- package/typedoc/functions/useCapability.html +2 -2
- package/typedoc/functions/useIntentDispatcher.html +1 -1
- package/typedoc/functions/useIntentResolver.html +1 -1
- package/typedoc/functions/useLayout.html +1 -1
- package/typedoc/functions/usePluginManager.html +2 -2
- package/typedoc/hierarchy.html +1 -1
- package/typedoc/index.html +2 -2
- package/typedoc/interfaces/LayoutAction.Toast.html +2 -2
- package/typedoc/modules/Capabilities.html +1 -1
- package/typedoc/modules/CollaborationActions.html +1 -1
- package/typedoc/modules/Events.html +1 -1
- package/typedoc/modules/IntentAction.html +1 -1
- package/typedoc/modules/LayoutAction.html +2 -2
- package/typedoc/modules/SettingsAction.html +1 -1
- package/typedoc/modules.html +1 -1
- package/typedoc/types/ActivationEvent.html +3 -3
- package/typedoc/types/ActivationEvents.html +2 -2
- package/typedoc/types/AnyCapability.html +1 -1
- package/typedoc/types/AnyIntent.html +1 -1
- package/typedoc/types/AnyIntentChain.html +1 -1
- package/typedoc/types/AnyIntentEffectResult.html +1 -1
- package/typedoc/types/AnyIntentResolver.html +1 -1
- package/typedoc/types/AnyIntentResult.html +1 -1
- package/typedoc/types/Capabilities.FileUploader.html +1 -1
- package/typedoc/types/Capabilities.IntentResolver.html +1 -1
- package/typedoc/types/Capabilities.Layout.html +1 -1
- package/typedoc/types/Capabilities.Metadata.html +1 -1
- package/typedoc/types/Capabilities.ReactContext.html +1 -1
- package/typedoc/types/Capabilities.ReactRoot.html +1 -1
- package/typedoc/types/Capabilities.ReactSurface.html +1 -1
- package/typedoc/types/Capabilities.Settings.html +2 -2
- package/typedoc/types/Capability.html +5 -5
- package/typedoc/types/CreateAppOptions.html +2 -2
- package/typedoc/types/FileInfo.html +1 -1
- package/typedoc/types/Intent.html +7 -7
- package/typedoc/types/IntentChain.html +3 -3
- package/typedoc/types/IntentContext.html +2 -2
- package/typedoc/types/IntentData.html +1 -1
- package/typedoc/types/IntentDispatcher.html +2 -2
- package/typedoc/types/IntentDispatcherResult.html +2 -2
- package/typedoc/types/IntentEffectDefinition.html +2 -2
- package/typedoc/types/IntentEffectResult.html +6 -6
- package/typedoc/types/IntentParams.html +2 -2
- package/typedoc/types/IntentResolver.html +2 -2
- package/typedoc/types/IntentResultData.html +1 -1
- package/typedoc/types/IntentSchema.html +1 -1
- package/typedoc/types/IntentUndo.html +2 -2
- package/typedoc/types/InterfaceDef.html +3 -3
- package/typedoc/types/Label.html +1 -1
- package/typedoc/types/NodeSerializer.html +3 -3
- package/typedoc/types/PluginManagerOptions.html +2 -2
- package/typedoc/types/PluginMeta.html +9 -9
- package/typedoc/types/PromiseIntentDispatcher.html +2 -2
- package/typedoc/types/PromiseIntentUndo.html +2 -2
- package/typedoc/types/Resource.html +1 -1
- package/typedoc/types/ResourceKey.html +1 -1
- package/typedoc/types/ResourceLanguage.html +1 -1
- package/typedoc/types/SerializedNode.html +2 -2
- package/typedoc/types/SurfaceComponent.html +2 -2
- package/typedoc/types/SurfaceDefinition.html +2 -2
- package/typedoc/types/SurfaceProps.html +2 -2
- package/typedoc/variables/Capabilities.AppGraph.html +1 -1
- package/typedoc/variables/Capabilities.AppGraphBuilder.html +1 -1
- package/typedoc/variables/Capabilities.AppGraphSerializer.html +1 -1
- package/typedoc/variables/Capabilities.ArtifactDefinition.html +1 -1
- package/typedoc/variables/Capabilities.FileUploader.html +1 -1
- package/typedoc/variables/Capabilities.IntentDispatcher.html +1 -1
- package/typedoc/variables/Capabilities.IntentResolver.html +1 -1
- package/typedoc/variables/Capabilities.Layout.html +1 -1
- package/typedoc/variables/Capabilities.Metadata.html +1 -1
- package/typedoc/variables/Capabilities.Null.html +1 -1
- package/typedoc/variables/Capabilities.PluginManager.html +1 -1
- package/typedoc/variables/Capabilities.ReactContext.html +1 -1
- package/typedoc/variables/Capabilities.ReactRoot.html +1 -1
- package/typedoc/variables/Capabilities.ReactSurface.html +1 -1
- package/typedoc/variables/Capabilities.Settings.html +1 -1
- package/typedoc/variables/Capabilities.SettingsStore.html +1 -1
- package/typedoc/variables/Capabilities.Tools.html +1 -1
- package/typedoc/variables/Capabilities.Translations.html +1 -1
- package/typedoc/variables/Events.AppGraphReady.html +2 -2
- package/typedoc/variables/Events.DispatcherReady.html +2 -2
- package/typedoc/variables/Events.LayoutReady.html +1 -1
- package/typedoc/variables/Events.SettingsReady.html +2 -2
- package/typedoc/variables/Events.SetupAppGraph.html +2 -2
- package/typedoc/variables/Events.SetupArtifactDefinition.html +2 -2
- package/typedoc/variables/Events.SetupIntentResolver.html +2 -2
- package/typedoc/variables/Events.SetupMetadata.html +2 -2
- package/typedoc/variables/Events.SetupReactSurface.html +2 -2
- package/typedoc/variables/Events.SetupSettings.html +2 -2
- package/typedoc/variables/Events.SetupTranslations.html +2 -2
- package/typedoc/variables/Events.Startup.html +2 -2
- package/typedoc/variables/FileInfoSchema.html +1 -1
- package/typedoc/variables/INTENT_ACTION.html +1 -1
- package/typedoc/variables/INTENT_PLUGIN.html +1 -1
- package/typedoc/variables/LAYOUT_ACTION.html +1 -1
- package/typedoc/variables/LAYOUT_PLUGIN.html +1 -1
- package/typedoc/variables/Label.html +1 -1
- package/typedoc/variables/LayoutAction.Toast.html +1 -1
- package/typedoc/variables/LayoutAction.UPDATE_LAYOUT.html +1 -1
- package/typedoc/variables/PluginManagerProvider.html +2 -2
- package/typedoc/variables/Resource.html +2 -2
- package/typedoc/variables/ResourceKey.html +1 -1
- package/typedoc/variables/ResourceLanguage.html +1 -1
- package/typedoc/variables/SETTINGS_ACTION.html +1 -1
- package/typedoc/variables/SETTINGS_ID.html +1 -1
- package/typedoc/variables/SETTINGS_KEY.html +1 -1
- package/typedoc/variables/SETTINGS_PLUGIN.html +1 -1
- package/typedoc/variables/Surface.html +2 -2
- package/typedoc/variables/defaultFileTypes.html +1 -1
- package/dist/lib/browser/app-graph-builder-RHU5WUGJ.mjs.map +0 -7
- package/dist/lib/browser/chunk-5WHZ3ORL.mjs.map +0 -7
- package/dist/lib/browser/chunk-SFPT4Z2C.mjs.map +0 -7
- package/dist/lib/node/app-graph-builder-QGHI2J2R.cjs.map +0 -7
- package/dist/lib/node/chunk-EGY2ANJA.cjs.map +0 -7
- package/dist/lib/node/chunk-JUSEAFDU.cjs.map +0 -7
- package/dist/lib/node-esm/app-graph-builder-45FJO6JA.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-PHOUQACM.mjs.map +0 -7
- package/dist/lib/node-esm/chunk-YQMLJUYN.mjs.map +0 -7
- /package/dist/lib/browser/{chunk-GYFO2C4Q.mjs.map → chunk-A7XUUTJN.mjs.map} +0 -0
- /package/dist/lib/browser/{intent-dispatcher-T6YETUE7.mjs.map → intent-dispatcher-SICNXT2G.mjs.map} +0 -0
- /package/dist/lib/browser/{intent-resolver-UQFD7VBJ.mjs.map → intent-resolver-2K6LNSUE.mjs.map} +0 -0
- /package/dist/lib/browser/{store-NP42FCZO.mjs.map → store-P4XZF26P.mjs.map} +0 -0
- /package/dist/lib/node/{chunk-PIFNLI5K.cjs.map → chunk-MTROSTO7.cjs.map} +0 -0
- /package/dist/lib/node/{intent-resolver-NALI2KSH.cjs.map → intent-resolver-ZP6S7QKG.cjs.map} +0 -0
- /package/dist/lib/node/{store-I7KM7GGP.cjs.map → store-MALHSPHZ.cjs.map} +0 -0
- /package/dist/lib/node-esm/{chunk-KFDC5QSQ.mjs.map → chunk-MX6ITPIG.mjs.map} +0 -0
- /package/dist/lib/node-esm/{intent-dispatcher-MYETZPUW.mjs.map → intent-dispatcher-FF5HNHPQ.mjs.map} +0 -0
- /package/dist/lib/node-esm/{intent-resolver-BW5I7SOS.mjs.map → intent-resolver-QWIKXIGI.mjs.map} +0 -0
- /package/dist/lib/node-esm/{store-MKIES4HL.mjs.map → store-3NM6AWB4.mjs.map} +0 -0
|
@@ -2,20 +2,24 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import { Schema
|
|
5
|
+
import { Schema } from 'effect';
|
|
6
6
|
|
|
7
7
|
export type IntentParams = {
|
|
8
|
-
readonly input:
|
|
9
|
-
readonly output:
|
|
8
|
+
readonly input: Schema.Schema.All;
|
|
9
|
+
readonly output: Schema.Schema.All;
|
|
10
10
|
};
|
|
11
11
|
|
|
12
12
|
export type IntentData<Fields extends IntentParams> =
|
|
13
|
-
|
|
13
|
+
Schema.Schema.Type<Schema.Struct<Fields>> extends { readonly input: any }
|
|
14
|
+
? Schema.Schema.Type<Schema.Struct<Fields>>['input']
|
|
15
|
+
: any;
|
|
14
16
|
|
|
15
17
|
export type IntentResultData<Fields extends IntentParams> =
|
|
16
|
-
|
|
18
|
+
Schema.Schema.Type<Schema.Struct<Fields>> extends { readonly output: any }
|
|
19
|
+
? Schema.Schema.Type<Schema.Struct<Fields>>['output']
|
|
20
|
+
: any;
|
|
17
21
|
|
|
18
|
-
export type IntentSchema<Tag extends string, Fields extends IntentParams> =
|
|
22
|
+
export type IntentSchema<Tag extends string, Fields extends IntentParams> = Schema.TaggedClass<any, Tag, Fields>;
|
|
19
23
|
|
|
20
24
|
/**
|
|
21
25
|
* An intent is an abstract description of an operation to be performed.
|
|
@@ -80,7 +84,7 @@ export const createIntent = <Tag extends string, Fields extends IntentParams>(
|
|
|
80
84
|
): IntentChain<Tag, Tag, Fields, Fields> => {
|
|
81
85
|
// The output of validateSync breaks proxy objects so this is just used for validation.
|
|
82
86
|
// TODO(wittjosiah): Is there a better way to make theses types align?
|
|
83
|
-
const _ =
|
|
87
|
+
const _ = Schema.validateSync(schema.fields.input as Schema.Schema<any, any, unknown>)(data);
|
|
84
88
|
const intent = {
|
|
85
89
|
...params,
|
|
86
90
|
_schema: schema,
|
|
@@ -139,8 +143,13 @@ export const chain =
|
|
|
139
143
|
|
|
140
144
|
// NOTE: Should maintain compatibility with `i18next` (and @dxos/react-ui).
|
|
141
145
|
// TODO(wittjosiah): Making this immutable breaks type compatibility.
|
|
142
|
-
export const Label =
|
|
143
|
-
|
|
144
|
-
|
|
146
|
+
export const Label = Schema.Union(
|
|
147
|
+
Schema.String,
|
|
148
|
+
Schema.mutable(
|
|
149
|
+
Schema.Tuple(
|
|
150
|
+
Schema.String,
|
|
151
|
+
Schema.mutable(Schema.Struct({ ns: Schema.String, count: Schema.optional(Schema.Number) })),
|
|
152
|
+
),
|
|
153
|
+
),
|
|
145
154
|
);
|
|
146
|
-
export type Label =
|
|
155
|
+
export type Label = Schema.Schema.Type<typeof Label>;
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import { Schema
|
|
5
|
+
import { Schema } from 'effect';
|
|
6
6
|
|
|
7
7
|
export const SETTINGS_PLUGIN = 'dxos.org/plugin/settings';
|
|
8
8
|
export const SETTINGS_ACTION = `${SETTINGS_PLUGIN}/action`;
|
|
@@ -12,18 +12,18 @@ export const SETTINGS_ID = '!dxos:settings';
|
|
|
12
12
|
export const SETTINGS_KEY = 'settings';
|
|
13
13
|
|
|
14
14
|
export namespace SettingsAction {
|
|
15
|
-
export class Open extends
|
|
16
|
-
input:
|
|
17
|
-
plugin:
|
|
15
|
+
export class Open extends Schema.TaggedClass<Open>()(`${SETTINGS_ACTION}/open`, {
|
|
16
|
+
input: Schema.Struct({
|
|
17
|
+
plugin: Schema.optional(Schema.String),
|
|
18
18
|
}),
|
|
19
|
-
output:
|
|
19
|
+
output: Schema.Void,
|
|
20
20
|
}) {}
|
|
21
21
|
|
|
22
|
-
export class OpenPluginRegistry extends
|
|
22
|
+
export class OpenPluginRegistry extends Schema.TaggedClass<OpenPluginRegistry>()(
|
|
23
23
|
`${SETTINGS_ACTION}/open-plugin-registry`,
|
|
24
24
|
{
|
|
25
|
-
input:
|
|
26
|
-
output:
|
|
25
|
+
input: Schema.Void,
|
|
26
|
+
output: Schema.Void,
|
|
27
27
|
},
|
|
28
28
|
) {}
|
|
29
29
|
}
|
|
@@ -26,6 +26,7 @@ export default (context: PluginsContext) =>
|
|
|
26
26
|
properties: {
|
|
27
27
|
label: ['open settings label', { ns: SETTINGS_PLUGIN }],
|
|
28
28
|
icon: 'ph--gear--regular',
|
|
29
|
+
disposition: 'menu',
|
|
29
30
|
keyBinding: {
|
|
30
31
|
macos: 'meta+,',
|
|
31
32
|
windows: 'alt+,',
|
|
@@ -81,11 +82,12 @@ export default (context: PluginsContext) =>
|
|
|
81
82
|
|
|
82
83
|
{
|
|
83
84
|
id: `${SETTINGS_KEY}:custom-plugins`,
|
|
84
|
-
type: '
|
|
85
|
+
type: 'category',
|
|
85
86
|
properties: {
|
|
86
87
|
label: ['custom plugins label', { ns: SETTINGS_PLUGIN }],
|
|
87
88
|
icon: 'ph--squares-four--regular',
|
|
88
89
|
role: 'branch',
|
|
90
|
+
disposition: 'collection',
|
|
89
91
|
},
|
|
90
92
|
},
|
|
91
93
|
];
|
|
@@ -87,7 +87,7 @@ export default {
|
|
|
87
87
|
);
|
|
88
88
|
},
|
|
89
89
|
// NOTE: Intentionally not using withPluginManager to try to reduce surface area of the story.
|
|
90
|
-
decorators: [withTheme, withLayout(
|
|
90
|
+
decorators: [withTheme, withLayout()],
|
|
91
91
|
args: {
|
|
92
92
|
manager: setupPluginManager(),
|
|
93
93
|
},
|
|
@@ -16,8 +16,16 @@ import {
|
|
|
16
16
|
defineModule,
|
|
17
17
|
definePlugin,
|
|
18
18
|
PluginManager,
|
|
19
|
+
type PluginsContext,
|
|
19
20
|
} from '../core';
|
|
20
21
|
|
|
22
|
+
// TODO(burdon): Factor out (use consistently in plugin framework?)
|
|
23
|
+
export type Provider<C, R> = (context: C) => R;
|
|
24
|
+
export type ProviderOrValue<C, R> = Provider<C, R> | R;
|
|
25
|
+
export const getValue = <C, R>(providerOrValue: ProviderOrValue<C, R>, context: C): R => {
|
|
26
|
+
return typeof providerOrValue === 'function' ? (providerOrValue as Provider<C, R>)(context) : providerOrValue;
|
|
27
|
+
};
|
|
28
|
+
|
|
21
29
|
/**
|
|
22
30
|
* @internal
|
|
23
31
|
*/
|
|
@@ -26,7 +34,7 @@ export const setupPluginManager = ({
|
|
|
26
34
|
plugins = [],
|
|
27
35
|
core = plugins.map(({ meta }) => meta.id),
|
|
28
36
|
...options
|
|
29
|
-
}: CreateAppOptions &
|
|
37
|
+
}: CreateAppOptions & Pick<WithPluginManagerOptions, 'capabilities'> = {}) => {
|
|
30
38
|
const pluginManager = new PluginManager({
|
|
31
39
|
pluginLoader: () => raise(new Error('Not implemented')),
|
|
32
40
|
plugins: [StoryPlugin(), ...plugins],
|
|
@@ -35,7 +43,7 @@ export const setupPluginManager = ({
|
|
|
35
43
|
});
|
|
36
44
|
|
|
37
45
|
if (capabilities) {
|
|
38
|
-
capabilities.forEach((capability) => {
|
|
46
|
+
getValue(capabilities, pluginManager.context).forEach((capability) => {
|
|
39
47
|
pluginManager.context.contributeCapability({
|
|
40
48
|
interface: capability.interface,
|
|
41
49
|
implementation: capability.implementation,
|
|
@@ -48,7 +56,7 @@ export const setupPluginManager = ({
|
|
|
48
56
|
};
|
|
49
57
|
|
|
50
58
|
export type WithPluginManagerOptions = CreateAppOptions & {
|
|
51
|
-
capabilities?: AnyCapability[]
|
|
59
|
+
capabilities?: ProviderOrValue<PluginsContext, AnyCapability[]>;
|
|
52
60
|
fireEvents?: (ActivationEvent | string)[];
|
|
53
61
|
};
|
|
54
62
|
|