@dxos/plugin-registry 0.7.5-main.e9bb01b → 0.7.5-staging.2ff1350
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-PPWF5KP5.mjs → app-graph-builder-Z6FZXJWI.mjs} +10 -10
- package/dist/lib/browser/{app-graph-builder-PPWF5KP5.mjs.map → app-graph-builder-Z6FZXJWI.mjs.map} +1 -1
- package/dist/lib/browser/{chunk-RGSIE33X.mjs → chunk-H6GNIIDK.mjs} +2 -2
- package/dist/lib/browser/{chunk-RGSIE33X.mjs.map → chunk-H6GNIIDK.mjs.map} +1 -1
- package/dist/lib/browser/index.mjs +8 -7
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-2JQUQJI5.mjs → intent-resolver-QW333HWJ.mjs} +2 -2
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-surface-NRETIUCH.mjs → react-surface-6JN3QJEF.mjs} +54 -25
- package/dist/lib/browser/react-surface-6JN3QJEF.mjs.map +7 -0
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/components/PluginDetail.d.ts +1 -2
- package/dist/types/src/components/PluginDetail.d.ts.map +1 -1
- package/dist/types/src/components/PluginItem.d.ts +3 -2
- package/dist/types/src/components/PluginItem.d.ts.map +1 -1
- package/dist/types/src/components/PluginList.d.ts +1 -2
- package/dist/types/src/components/PluginList.d.ts.map +1 -1
- package/dist/types/src/components/RegistryContainer.d.ts +1 -2
- package/dist/types/src/components/RegistryContainer.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +1 -1
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +1 -0
- package/dist/types/src/translations.d.ts.map +1 -1
- package/package.json +17 -16
- package/src/RegistryPlugin.tsx +2 -2
- package/src/capabilities/app-graph-builder.ts +8 -8
- package/src/capabilities/react-surface.tsx +8 -8
- package/src/components/PluginDetail.tsx +1 -1
- package/src/components/PluginItem.tsx +25 -2
- package/src/components/PluginList.stories.tsx +1 -1
- package/src/components/RegistryContainer.tsx +57 -27
- package/src/meta.ts +1 -1
- package/src/translations.ts +1 -0
- package/dist/lib/browser/react-surface-NRETIUCH.mjs.map +0 -7
- /package/dist/lib/browser/{intent-resolver-2JQUQJI5.mjs.map → intent-resolver-QW333HWJ.mjs.map} +0 -0
|
@@ -2,7 +2,7 @@ import {
|
|
|
2
2
|
REGISTRY_ID,
|
|
3
3
|
REGISTRY_KEY,
|
|
4
4
|
REGISTRY_PLUGIN
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-H6GNIIDK.mjs";
|
|
6
6
|
|
|
7
7
|
// packages/plugins/plugin-registry/src/capabilities/app-graph-builder.ts
|
|
8
8
|
import { Capabilities, contributes, createIntent, SettingsAction } from "@dxos/app-framework";
|
|
@@ -50,9 +50,9 @@ var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBu
|
|
|
50
50
|
},
|
|
51
51
|
nodes: [
|
|
52
52
|
{
|
|
53
|
-
id: `${REGISTRY_KEY}
|
|
53
|
+
id: `${REGISTRY_KEY}+all`,
|
|
54
54
|
type: "category",
|
|
55
|
-
data: `${REGISTRY_KEY}
|
|
55
|
+
data: `${REGISTRY_KEY}+all`,
|
|
56
56
|
properties: {
|
|
57
57
|
label: [
|
|
58
58
|
"all plugins label",
|
|
@@ -66,9 +66,9 @@ var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBu
|
|
|
66
66
|
}
|
|
67
67
|
},
|
|
68
68
|
{
|
|
69
|
-
id: `${REGISTRY_KEY}
|
|
69
|
+
id: `${REGISTRY_KEY}+installed`,
|
|
70
70
|
type: "category",
|
|
71
|
-
data: `${REGISTRY_KEY}
|
|
71
|
+
data: `${REGISTRY_KEY}+installed`,
|
|
72
72
|
properties: {
|
|
73
73
|
label: [
|
|
74
74
|
"installed plugins label",
|
|
@@ -82,9 +82,9 @@ var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBu
|
|
|
82
82
|
}
|
|
83
83
|
},
|
|
84
84
|
{
|
|
85
|
-
id: `${REGISTRY_KEY}
|
|
85
|
+
id: `${REGISTRY_KEY}+recommended`,
|
|
86
86
|
type: "category",
|
|
87
|
-
data: `${REGISTRY_KEY}
|
|
87
|
+
data: `${REGISTRY_KEY}+recommended`,
|
|
88
88
|
properties: {
|
|
89
89
|
label: [
|
|
90
90
|
"recommended plugins label",
|
|
@@ -98,9 +98,9 @@ var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBu
|
|
|
98
98
|
}
|
|
99
99
|
},
|
|
100
100
|
{
|
|
101
|
-
id: `${REGISTRY_KEY}
|
|
101
|
+
id: `${REGISTRY_KEY}+experimental`,
|
|
102
102
|
type: "category",
|
|
103
|
-
data: `${REGISTRY_KEY}
|
|
103
|
+
data: `${REGISTRY_KEY}+experimental`,
|
|
104
104
|
properties: {
|
|
105
105
|
label: [
|
|
106
106
|
"experimental plugins label",
|
|
@@ -161,4 +161,4 @@ var app_graph_builder_default = (context) => contributes(Capabilities.AppGraphBu
|
|
|
161
161
|
export {
|
|
162
162
|
app_graph_builder_default as default
|
|
163
163
|
};
|
|
164
|
-
//# sourceMappingURL=app-graph-builder-
|
|
164
|
+
//# sourceMappingURL=app-graph-builder-Z6FZXJWI.mjs.map
|
package/dist/lib/browser/{app-graph-builder-PPWF5KP5.mjs.map → app-graph-builder-Z6FZXJWI.mjs.map}
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/capabilities/app-graph-builder.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes, createIntent, SettingsAction, type PluginsContext } from '@dxos/app-framework';\nimport { createExtension, type Node } from '@dxos/plugin-graph';\n\nimport { REGISTRY_ID, REGISTRY_KEY, REGISTRY_PLUGIN } from '../meta';\n\nexport default (context: PluginsContext) =>\n contributes(Capabilities.AppGraphBuilder, [\n createExtension({\n id: REGISTRY_PLUGIN,\n filter: (node): node is Node<null> => node.id === 'root',\n actions: () => [\n {\n id: REGISTRY_PLUGIN,\n data: async () => {\n const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);\n await dispatch(createIntent(SettingsAction.OpenPluginRegistry));\n },\n properties: {\n label: ['open plugin registry label', { ns: REGISTRY_PLUGIN }],\n icon: 'ph--squares-four--regular',\n },\n },\n ],\n }),\n createExtension({\n id: REGISTRY_PLUGIN,\n filter: (node): node is Node<null> => node.id === 'root',\n connector: () => [\n {\n id: REGISTRY_ID,\n type: REGISTRY_PLUGIN,\n properties: {\n label: ['plugin registry label', { ns: REGISTRY_PLUGIN }],\n icon: 'ph--squares-four--regular',\n disposition: 'pin-end',\n testId: 'treeView.pluginRegistry',\n },\n nodes: [\n {\n id: `${REGISTRY_KEY}
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes, createIntent, SettingsAction, type PluginsContext } from '@dxos/app-framework';\nimport { createExtension, type Node } from '@dxos/plugin-graph';\n\nimport { REGISTRY_ID, REGISTRY_KEY, REGISTRY_PLUGIN } from '../meta';\n\nexport default (context: PluginsContext) =>\n contributes(Capabilities.AppGraphBuilder, [\n createExtension({\n id: REGISTRY_PLUGIN,\n filter: (node): node is Node<null> => node.id === 'root',\n actions: () => [\n {\n id: REGISTRY_PLUGIN,\n data: async () => {\n const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);\n await dispatch(createIntent(SettingsAction.OpenPluginRegistry));\n },\n properties: {\n label: ['open plugin registry label', { ns: REGISTRY_PLUGIN }],\n icon: 'ph--squares-four--regular',\n },\n },\n ],\n }),\n createExtension({\n id: REGISTRY_PLUGIN,\n filter: (node): node is Node<null> => node.id === 'root',\n connector: () => [\n {\n id: REGISTRY_ID,\n type: REGISTRY_PLUGIN,\n properties: {\n label: ['plugin registry label', { ns: REGISTRY_PLUGIN }],\n icon: 'ph--squares-four--regular',\n disposition: 'pin-end',\n testId: 'treeView.pluginRegistry',\n },\n nodes: [\n {\n id: `${REGISTRY_KEY}+all`,\n type: 'category',\n data: `${REGISTRY_KEY}+all`,\n properties: {\n label: ['all plugins label', { ns: REGISTRY_PLUGIN }],\n icon: 'ph--squares-four--regular',\n key: REGISTRY_KEY,\n testId: 'pluginRegistry.all',\n },\n },\n {\n id: `${REGISTRY_KEY}+installed`,\n type: 'category',\n data: `${REGISTRY_KEY}+installed`,\n properties: {\n label: ['installed plugins label', { ns: REGISTRY_PLUGIN }],\n icon: 'ph--check--regular',\n key: REGISTRY_KEY,\n testId: 'pluginRegistry.installed',\n },\n },\n {\n id: `${REGISTRY_KEY}+recommended`,\n type: 'category',\n data: `${REGISTRY_KEY}+recommended`,\n properties: {\n label: ['recommended plugins label', { ns: REGISTRY_PLUGIN }],\n icon: 'ph--star--regular',\n key: REGISTRY_KEY,\n testId: 'pluginRegistry.recommended',\n },\n },\n {\n id: `${REGISTRY_KEY}+experimental`,\n type: 'category',\n data: `${REGISTRY_KEY}+experimental`,\n properties: {\n label: ['experimental plugins label', { ns: REGISTRY_PLUGIN }],\n icon: 'ph--flask--regular',\n key: REGISTRY_KEY,\n testId: 'pluginRegistry.experimental',\n },\n },\n ],\n },\n ],\n }),\n createExtension({\n id: `${REGISTRY_PLUGIN}/actions`,\n filter: (node): node is Node<null> => node.id === REGISTRY_ID,\n actions: () => [\n {\n id: `${REGISTRY_PLUGIN}/load-by-url`,\n data: async () => {},\n properties: {\n label: ['load by url label', { ns: REGISTRY_PLUGIN }],\n icon: 'ph--cloud-arrow-down--regular',\n disabled: true,\n },\n },\n ],\n }),\n createExtension({\n id: `${REGISTRY_PLUGIN}/plugins`,\n resolver: ({ id }) => {\n const manager = context.requestCapability(Capabilities.PluginManager);\n const plugin = manager.plugins.find((plugin) => plugin.meta.id === id.replaceAll(':', '/'));\n if (!plugin) {\n return;\n }\n\n return {\n id,\n type: 'dxos.org/plugin',\n data: plugin,\n properties: {\n label: plugin.meta.name ?? plugin.meta.id,\n icon: plugin.meta.icon ?? 'ph--circle--regular',\n },\n };\n },\n }),\n ]);\n"],
|
|
5
5
|
"mappings": ";;;;;;;AAIA,SAASA,cAAcC,aAAaC,cAAcC,sBAA2C;AAC7F,SAASC,uBAAkC;AAI3C,IAAA,4BAAe,CAACC,YACdC,YAAYC,aAAaC,iBAAiB;EACxCC,gBAAgB;IACdC,IAAIC;IACJC,QAAQ,CAACC,SAA6BA,KAAKH,OAAO;IAClDI,SAAS,MAAM;MACb;QACEJ,IAAIC;QACJI,MAAM,YAAA;AACJ,gBAAM,EAAEC,iBAAiBC,SAAQ,IAAKZ,QAAQa,kBAAkBX,aAAaY,gBAAgB;AAC7F,gBAAMF,SAASG,aAAaC,eAAeC,kBAAkB,CAAA;QAC/D;QACAC,YAAY;UACVC,OAAO;YAAC;YAA8B;cAAEC,IAAId;YAAgB;;UAC5De,MAAM;QACR;MACF;;EAEJ,CAAA;EACAjB,gBAAgB;IACdC,IAAIC;IACJC,QAAQ,CAACC,SAA6BA,KAAKH,OAAO;IAClDiB,WAAW,MAAM;MACf;QACEjB,IAAIkB;QACJC,MAAMlB;QACNY,YAAY;UACVC,OAAO;YAAC;YAAyB;cAAEC,IAAId;YAAgB;;UACvDe,MAAM;UACNI,aAAa;UACbC,QAAQ;QACV;QACAC,OAAO;UACL;YACEtB,IAAI,GAAGuB,YAAAA;YACPJ,MAAM;YACNd,MAAM,GAAGkB,YAAAA;YACTV,YAAY;cACVC,OAAO;gBAAC;gBAAqB;kBAAEC,IAAId;gBAAgB;;cACnDe,MAAM;cACNQ,KAAKD;cACLF,QAAQ;YACV;UACF;UACA;YACErB,IAAI,GAAGuB,YAAAA;YACPJ,MAAM;YACNd,MAAM,GAAGkB,YAAAA;YACTV,YAAY;cACVC,OAAO;gBAAC;gBAA2B;kBAAEC,IAAId;gBAAgB;;cACzDe,MAAM;cACNQ,KAAKD;cACLF,QAAQ;YACV;UACF;UACA;YACErB,IAAI,GAAGuB,YAAAA;YACPJ,MAAM;YACNd,MAAM,GAAGkB,YAAAA;YACTV,YAAY;cACVC,OAAO;gBAAC;gBAA6B;kBAAEC,IAAId;gBAAgB;;cAC3De,MAAM;cACNQ,KAAKD;cACLF,QAAQ;YACV;UACF;UACA;YACErB,IAAI,GAAGuB,YAAAA;YACPJ,MAAM;YACNd,MAAM,GAAGkB,YAAAA;YACTV,YAAY;cACVC,OAAO;gBAAC;gBAA8B;kBAAEC,IAAId;gBAAgB;;cAC5De,MAAM;cACNQ,KAAKD;cACLF,QAAQ;YACV;UACF;;MAEJ;;EAEJ,CAAA;EACAtB,gBAAgB;IACdC,IAAI,GAAGC,eAAAA;IACPC,QAAQ,CAACC,SAA6BA,KAAKH,OAAOkB;IAClDd,SAAS,MAAM;MACb;QACEJ,IAAI,GAAGC,eAAAA;QACPI,MAAM,YAAA;QAAa;QACnBQ,YAAY;UACVC,OAAO;YAAC;YAAqB;cAAEC,IAAId;YAAgB;;UACnDe,MAAM;UACNS,UAAU;QACZ;MACF;;EAEJ,CAAA;EACA1B,gBAAgB;IACdC,IAAI,GAAGC,eAAAA;IACPyB,UAAU,CAAC,EAAE1B,GAAE,MAAE;AACf,YAAM2B,UAAUhC,QAAQa,kBAAkBX,aAAa+B,aAAa;AACpE,YAAMC,SAASF,QAAQG,QAAQC,KAAK,CAACF,YAAWA,QAAOG,KAAKhC,OAAOA,GAAGiC,WAAW,KAAK,GAAA,CAAA;AACtF,UAAI,CAACJ,QAAQ;AACX;MACF;AAEA,aAAO;QACL7B;QACAmB,MAAM;QACNd,MAAMwB;QACNhB,YAAY;UACVC,OAAOe,OAAOG,KAAKE,QAAQL,OAAOG,KAAKhC;UACvCgB,MAAMa,OAAOG,KAAKhB,QAAQ;QAC5B;MACF;IACF;EACF,CAAA;CACD;",
|
|
6
6
|
"names": ["Capabilities", "contributes", "createIntent", "SettingsAction", "createExtension", "context", "contributes", "Capabilities", "AppGraphBuilder", "createExtension", "id", "REGISTRY_PLUGIN", "filter", "node", "actions", "data", "dispatchPromise", "dispatch", "requestCapability", "IntentDispatcher", "createIntent", "SettingsAction", "OpenPluginRegistry", "properties", "label", "ns", "icon", "connector", "REGISTRY_ID", "type", "disposition", "testId", "nodes", "REGISTRY_KEY", "key", "disabled", "resolver", "manager", "PluginManager", "plugin", "plugins", "find", "meta", "replaceAll", "name"]
|
|
7
7
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// packages/plugins/plugin-registry/src/meta.ts
|
|
2
2
|
var REGISTRY_PLUGIN = "dxos.org/plugin/registry";
|
|
3
|
-
var REGISTRY_ID = "dxos:plugin-registry";
|
|
3
|
+
var REGISTRY_ID = "!dxos:plugin-registry";
|
|
4
4
|
var REGISTRY_KEY = "plugin-registry";
|
|
5
5
|
var meta = {
|
|
6
6
|
id: REGISTRY_PLUGIN,
|
|
@@ -13,4 +13,4 @@ export {
|
|
|
13
13
|
REGISTRY_KEY,
|
|
14
14
|
meta
|
|
15
15
|
};
|
|
16
|
-
//# sourceMappingURL=chunk-
|
|
16
|
+
//# sourceMappingURL=chunk-H6GNIIDK.mjs.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/meta.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type PluginMeta } from '@dxos/app-framework';\n\nexport const REGISTRY_PLUGIN = 'dxos.org/plugin/registry';\n\n// TODO(wittjosiah): Deck does not currently support `/` in ids.\nexport const REGISTRY_ID = 'dxos:plugin-registry';\nexport const REGISTRY_KEY = 'plugin-registry';\n\nexport const meta = {\n id: REGISTRY_PLUGIN,\n name: 'Plugins',\n} satisfies PluginMeta;\n"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type PluginMeta } from '@dxos/app-framework';\n\nexport const REGISTRY_PLUGIN = 'dxos.org/plugin/registry';\n\n// TODO(wittjosiah): Deck does not currently support `/` in ids.\nexport const REGISTRY_ID = '!dxos:plugin-registry';\nexport const REGISTRY_KEY = 'plugin-registry';\n\nexport const meta = {\n id: REGISTRY_PLUGIN,\n name: 'Plugins',\n} satisfies PluginMeta;\n"],
|
|
5
5
|
"mappings": ";AAMO,IAAMA,kBAAkB;AAGxB,IAAMC,cAAc;AACpB,IAAMC,eAAe;AAErB,IAAMC,OAAO;EAClBC,IAAIJ;EACJK,MAAM;AACR;",
|
|
6
6
|
"names": ["REGISTRY_PLUGIN", "REGISTRY_ID", "REGISTRY_KEY", "meta", "id", "name"]
|
|
7
7
|
}
|
|
@@ -3,16 +3,16 @@ import {
|
|
|
3
3
|
REGISTRY_KEY,
|
|
4
4
|
REGISTRY_PLUGIN,
|
|
5
5
|
meta
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-H6GNIIDK.mjs";
|
|
7
7
|
|
|
8
8
|
// packages/plugins/plugin-registry/src/RegistryPlugin.tsx
|
|
9
9
|
import { Capabilities, contributes, defineModule, definePlugin, Events } from "@dxos/app-framework";
|
|
10
10
|
|
|
11
11
|
// packages/plugins/plugin-registry/src/capabilities/index.ts
|
|
12
12
|
import { lazy } from "@dxos/app-framework";
|
|
13
|
-
var AppGraphBuilder = lazy(() => import("./app-graph-builder-
|
|
14
|
-
var IntentResolver = lazy(() => import("./intent-resolver-
|
|
15
|
-
var ReactSurface = lazy(() => import("./react-surface-
|
|
13
|
+
var AppGraphBuilder = lazy(() => import("./app-graph-builder-Z6FZXJWI.mjs"));
|
|
14
|
+
var IntentResolver = lazy(() => import("./intent-resolver-QW333HWJ.mjs"));
|
|
15
|
+
var ReactSurface = lazy(() => import("./react-surface-6JN3QJEF.mjs"));
|
|
16
16
|
|
|
17
17
|
// packages/plugins/plugin-registry/src/translations.ts
|
|
18
18
|
var translations_default = [
|
|
@@ -36,7 +36,8 @@ var translations_default = [
|
|
|
36
36
|
"community plugins label": "Community",
|
|
37
37
|
"load by url label": "Load by URL (soon)",
|
|
38
38
|
"coming soon label": "Coming soon!",
|
|
39
|
-
"open plugin registry label": "Open plugin registry"
|
|
39
|
+
"open plugin registry label": "Open plugin registry",
|
|
40
|
+
"settings label": "Settings"
|
|
40
41
|
}
|
|
41
42
|
}
|
|
42
43
|
}
|
|
@@ -51,12 +52,12 @@ var RegistryPlugin = () => definePlugin(meta, [
|
|
|
51
52
|
}),
|
|
52
53
|
defineModule({
|
|
53
54
|
id: `${meta.id}/module/react-surface`,
|
|
54
|
-
activatesOn: Events.
|
|
55
|
+
activatesOn: Events.SetupReactSurface,
|
|
55
56
|
activate: ReactSurface
|
|
56
57
|
}),
|
|
57
58
|
defineModule({
|
|
58
59
|
id: `${meta.id}/module/intent-resolver`,
|
|
59
|
-
activatesOn: Events.
|
|
60
|
+
activatesOn: Events.SetupIntentResolver,
|
|
60
61
|
activate: IntentResolver
|
|
61
62
|
}),
|
|
62
63
|
defineModule({
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/RegistryPlugin.tsx", "../../../src/capabilities/index.ts", "../../../src/translations.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Capabilities, contributes, defineModule, definePlugin, Events } from '@dxos/app-framework';\n\nimport { AppGraphBuilder, IntentResolver, ReactSurface } from './capabilities';\nimport { meta } from './meta';\nimport translations from './translations';\n\nexport const RegistryPlugin = () =>\n definePlugin(meta, [\n defineModule({\n id: `${meta.id}/module/translations`,\n activatesOn: Events.SetupTranslations,\n activate: () => contributes(Capabilities.Translations, translations),\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.
|
|
5
|
-
"mappings": ";;;;;;;;AAIA,SAASA,cAAcC,aAAaC,cAAcC,cAAcC,cAAc;;;ACA9E,SAASC,YAAY;AAEd,IAAMC,kBAAkBC,KAAK,MAAM,OAAO,kCAAA,CAAA;AAC1C,IAAMC,iBAAiBD,KAAK,MAAM,OAAO,gCAAA,CAAA;AACzC,IAAME,eAAeF,KAAK,MAAM,OAAO,8BAAA,CAAA;;;ACF9C,IAAA,uBAAe;EACb;IACE,SAAS;MACP,CAACG,eAAAA,GAAkB;QACjB,eAAe;QACf,2BAA2B;QAC3B,oCAAoC;QACpC,oCAAoC;QACpC,sCAAsC;QACtC,uCAAuC;QACvC,iBAAiB;QACjB,mBAAmB;QACnB,gBAAgB;QAChB,yBAAyB;QACzB,qBAAqB;QACrB,2BAA2B;QAC3B,6BAA6B;QAC7B,8BAA8B;QAC9B,2BAA2B;QAC3B,qBAAqB;QACrB,qBAAqB;QACrB,8BAA8B;
|
|
6
|
-
"names": ["Capabilities", "contributes", "defineModule", "definePlugin", "Events", "lazy", "AppGraphBuilder", "lazy", "IntentResolver", "ReactSurface", "REGISTRY_PLUGIN", "RegistryPlugin", "definePlugin", "meta", "defineModule", "id", "activatesOn", "Events", "SetupTranslations", "activate", "contributes", "Capabilities", "Translations", "translations", "
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { Capabilities, contributes, defineModule, definePlugin, Events } from '@dxos/app-framework';\n\nimport { AppGraphBuilder, IntentResolver, ReactSurface } from './capabilities';\nimport { meta } from './meta';\nimport translations from './translations';\n\nexport const RegistryPlugin = () =>\n definePlugin(meta, [\n defineModule({\n id: `${meta.id}/module/translations`,\n activatesOn: Events.SetupTranslations,\n activate: () => contributes(Capabilities.Translations, translations),\n }),\n defineModule({\n id: `${meta.id}/module/react-surface`,\n activatesOn: Events.SetupReactSurface,\n activate: ReactSurface,\n }),\n defineModule({\n id: `${meta.id}/module/intent-resolver`,\n activatesOn: Events.SetupIntentResolver,\n activate: IntentResolver,\n }),\n defineModule({\n id: `${meta.id}/module/app-graph-builder`,\n activatesOn: Events.SetupAppGraph,\n activate: AppGraphBuilder,\n }),\n ]);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { lazy } from '@dxos/app-framework';\n\nexport const AppGraphBuilder = lazy(() => import('./app-graph-builder'));\nexport const IntentResolver = lazy(() => import('./intent-resolver'));\nexport const ReactSurface = lazy(() => import('./react-surface'));\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport { REGISTRY_PLUGIN } from './meta';\n\nexport default [\n {\n 'en-US': {\n [REGISTRY_PLUGIN]: {\n 'plugin name': 'Registry',\n 'reload required message': 'Reload required.',\n 'settings show experimental label': 'Show experimental plugins',\n 'settings section installed label': 'Enabled',\n 'settings section recommended label': 'Recommended',\n 'settings section experimental label': 'Experimental',\n 'details label': 'Details',\n 'home page label': 'Website',\n 'source label': 'Source',\n 'plugin registry label': 'Plugin Registry',\n 'all plugins label': 'All',\n 'installed plugins label': 'Enabled',\n 'recommended plugins label': 'Recommended',\n 'experimental plugins label': 'Experimental',\n 'community plugins label': 'Community',\n 'load by url label': 'Load by URL (soon)',\n 'coming soon label': 'Coming soon!',\n 'open plugin registry label': 'Open plugin registry',\n 'settings label': 'Settings',\n },\n },\n },\n];\n"],
|
|
5
|
+
"mappings": ";;;;;;;;AAIA,SAASA,cAAcC,aAAaC,cAAcC,cAAcC,cAAc;;;ACA9E,SAASC,YAAY;AAEd,IAAMC,kBAAkBC,KAAK,MAAM,OAAO,kCAAA,CAAA;AAC1C,IAAMC,iBAAiBD,KAAK,MAAM,OAAO,gCAAA,CAAA;AACzC,IAAME,eAAeF,KAAK,MAAM,OAAO,8BAAA,CAAA;;;ACF9C,IAAA,uBAAe;EACb;IACE,SAAS;MACP,CAACG,eAAAA,GAAkB;QACjB,eAAe;QACf,2BAA2B;QAC3B,oCAAoC;QACpC,oCAAoC;QACpC,sCAAsC;QACtC,uCAAuC;QACvC,iBAAiB;QACjB,mBAAmB;QACnB,gBAAgB;QAChB,yBAAyB;QACzB,qBAAqB;QACrB,2BAA2B;QAC3B,6BAA6B;QAC7B,8BAA8B;QAC9B,2BAA2B;QAC3B,qBAAqB;QACrB,qBAAqB;QACrB,8BAA8B;QAC9B,kBAAkB;MACpB;IACF;EACF;;;;AFrBK,IAAMC,iBAAiB,MAC5BC,aAAaC,MAAM;EACjBC,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOC;IACpBC,UAAU,MAAMC,YAAYC,aAAaC,cAAcC,oBAAAA;EACzD,CAAA;EACAT,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOO;IACpBL,UAAUM;EACZ,CAAA;EACAX,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOS;IACpBP,UAAUQ;EACZ,CAAA;EACAb,aAAa;IACXC,IAAI,GAAGF,KAAKE,EAAE;IACdC,aAAaC,OAAOW;IACpBT,UAAUU;EACZ,CAAA;CACD;",
|
|
6
|
+
"names": ["Capabilities", "contributes", "defineModule", "definePlugin", "Events", "lazy", "AppGraphBuilder", "lazy", "IntentResolver", "ReactSurface", "REGISTRY_PLUGIN", "RegistryPlugin", "definePlugin", "meta", "defineModule", "id", "activatesOn", "Events", "SetupTranslations", "activate", "contributes", "Capabilities", "Translations", "translations", "SetupReactSurface", "ReactSurface", "SetupIntentResolver", "IntentResolver", "SetupAppGraph", "AppGraphBuilder"]
|
|
7
7
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import {
|
|
2
2
|
REGISTRY_ID
|
|
3
|
-
} from "./chunk-
|
|
3
|
+
} from "./chunk-H6GNIIDK.mjs";
|
|
4
4
|
|
|
5
5
|
// packages/plugins/plugin-registry/src/capabilities/intent-resolver.ts
|
|
6
6
|
import { contributes, SettingsAction, createResolver, LayoutAction, Capabilities, createIntent } from "@dxos/app-framework";
|
|
@@ -20,4 +20,4 @@ var intent_resolver_default = () => contributes(Capabilities.IntentResolver, cre
|
|
|
20
20
|
export {
|
|
21
21
|
intent_resolver_default as default
|
|
22
22
|
};
|
|
23
|
-
//# sourceMappingURL=intent-resolver-
|
|
23
|
+
//# sourceMappingURL=intent-resolver-QW333HWJ.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"packages/plugins/plugin-registry/src/meta.ts":{"bytes":1519,"imports":[],"format":"esm"},"packages/plugins/plugin-registry/src/capabilities/app-graph-builder.ts":{"bytes":16999,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-registry/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-registry/src/capabilities/intent-resolver.ts":{"bytes":2456,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-registry/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-registry/src/components/PluginDetail.tsx":{"bytes":7359,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-registry/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-registry/src/components/PluginItem.tsx":{"bytes":12134,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-registry/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-registry/src/components/PluginList.tsx":{"bytes":2600,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-registry/src/components/PluginItem.tsx","kind":"import-statement","original":"./PluginItem"}],"format":"esm"},"packages/plugins/plugin-registry/src/components/RegistryContainer.tsx":{"bytes":6810,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-observability/types","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-registry/src/components/PluginList.tsx","kind":"import-statement","original":"./PluginList"}],"format":"esm"},"packages/plugins/plugin-registry/src/components/index.ts":{"bytes":734,"imports":[{"path":"packages/plugins/plugin-registry/src/components/PluginDetail.tsx","kind":"import-statement","original":"./PluginDetail"},{"path":"packages/plugins/plugin-registry/src/components/PluginList.tsx","kind":"import-statement","original":"./PluginList"},{"path":"packages/plugins/plugin-registry/src/components/RegistryContainer.tsx","kind":"import-statement","original":"./RegistryContainer"}],"format":"esm"},"packages/plugins/plugin-registry/src/capabilities/react-surface.tsx":{"bytes":12724,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-registry/src/components/index.ts","kind":"import-statement","original":"../components"},{"path":"packages/plugins/plugin-registry/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-registry/src/capabilities/index.ts":{"bytes":1351,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-registry/src/capabilities/app-graph-builder.ts","kind":"dynamic-import","original":"./app-graph-builder"},{"path":"packages/plugins/plugin-registry/src/capabilities/intent-resolver.ts","kind":"dynamic-import","original":"./intent-resolver"},{"path":"packages/plugins/plugin-registry/src/capabilities/react-surface.tsx","kind":"dynamic-import","original":"./react-surface"}],"format":"esm"},"packages/plugins/plugin-registry/src/translations.ts":{"bytes":3552,"imports":[{"path":"packages/plugins/plugin-registry/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-registry/src/RegistryPlugin.tsx":{"bytes":4084,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-registry/src/capabilities/index.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-registry/src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/plugins/plugin-registry/src/translations.ts","kind":"import-statement","original":"./translations"}],"format":"esm"},"packages/plugins/plugin-registry/src/index.ts":{"bytes":602,"imports":[{"path":"packages/plugins/plugin-registry/src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/plugins/plugin-registry/src/RegistryPlugin.tsx","kind":"import-statement","original":"./RegistryPlugin"}],"format":"esm"}},"outputs":{"packages/plugins/plugin-registry/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":3968},"packages/plugins/plugin-registry/dist/lib/browser/index.mjs":{"imports":[{"path":"packages/plugins/plugin-registry/dist/lib/browser/chunk-RGSIE33X.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-registry/dist/lib/browser/app-graph-builder-PPWF5KP5.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-registry/dist/lib/browser/intent-resolver-2JQUQJI5.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-registry/dist/lib/browser/react-surface-NRETIUCH.mjs","kind":"dynamic-import"}],"exports":["REGISTRY_ID","REGISTRY_KEY","REGISTRY_PLUGIN","RegistryPlugin","meta"],"entryPoint":"packages/plugins/plugin-registry/src/index.ts","inputs":{"packages/plugins/plugin-registry/src/index.ts":{"bytesInOutput":0},"packages/plugins/plugin-registry/src/RegistryPlugin.tsx":{"bytesInOutput":747},"packages/plugins/plugin-registry/src/capabilities/index.ts":{"bytesInOutput":268},"packages/plugins/plugin-registry/src/translations.ts":{"bytesInOutput":991}},"bytes":2465},"packages/plugins/plugin-registry/dist/lib/browser/app-graph-builder-PPWF5KP5.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":6986},"packages/plugins/plugin-registry/dist/lib/browser/app-graph-builder-PPWF5KP5.mjs":{"imports":[{"path":"packages/plugins/plugin-registry/dist/lib/browser/chunk-RGSIE33X.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-registry/src/capabilities/app-graph-builder.ts","inputs":{"packages/plugins/plugin-registry/src/capabilities/app-graph-builder.ts":{"bytesInOutput":4246}},"bytes":4517},"packages/plugins/plugin-registry/dist/lib/browser/intent-resolver-2JQUQJI5.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1265},"packages/plugins/plugin-registry/dist/lib/browser/intent-resolver-2JQUQJI5.mjs":{"imports":[{"path":"packages/plugins/plugin-registry/dist/lib/browser/chunk-RGSIE33X.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-registry/src/capabilities/intent-resolver.ts","inputs":{"packages/plugins/plugin-registry/src/capabilities/intent-resolver.ts":{"bytesInOutput":461}},"bytes":691},"packages/plugins/plugin-registry/dist/lib/browser/react-surface-NRETIUCH.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":20957},"packages/plugins/plugin-registry/dist/lib/browser/react-surface-NRETIUCH.mjs":{"imports":[{"path":"packages/plugins/plugin-registry/dist/lib/browser/chunk-RGSIE33X.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-observability/types","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-registry/src/capabilities/react-surface.tsx","inputs":{"packages/plugins/plugin-registry/src/capabilities/react-surface.tsx":{"bytesInOutput":3177},"packages/plugins/plugin-registry/src/components/PluginDetail.tsx":{"bytesInOutput":2166},"packages/plugins/plugin-registry/src/components/index.ts":{"bytesInOutput":0},"packages/plugins/plugin-registry/src/components/PluginList.tsx":{"bytesInOutput":517},"packages/plugins/plugin-registry/src/components/PluginItem.tsx":{"bytesInOutput":3456},"packages/plugins/plugin-registry/src/components/RegistryContainer.tsx":{"bytesInOutput":1556}},"bytes":11533},"packages/plugins/plugin-registry/dist/lib/browser/chunk-RGSIE33X.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":704},"packages/plugins/plugin-registry/dist/lib/browser/chunk-RGSIE33X.mjs":{"imports":[],"exports":["REGISTRY_ID","REGISTRY_KEY","REGISTRY_PLUGIN","meta"],"inputs":{"packages/plugins/plugin-registry/src/meta.ts":{"bytesInOutput":187}},"bytes":349}}}
|
|
1
|
+
{"inputs":{"packages/plugins/plugin-registry/src/meta.ts":{"bytes":1524,"imports":[],"format":"esm"},"packages/plugins/plugin-registry/src/capabilities/app-graph-builder.ts":{"bytes":16999,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-registry/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-registry/src/capabilities/intent-resolver.ts":{"bytes":2456,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-registry/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-registry/src/components/PluginDetail.tsx":{"bytes":7465,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-registry/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-registry/src/components/PluginItem.tsx":{"bytes":13821,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-registry/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-registry/src/components/PluginList.tsx":{"bytes":2600,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-registry/src/components/PluginItem.tsx","kind":"import-statement","original":"./PluginItem"}],"format":"esm"},"packages/plugins/plugin-registry/src/components/RegistryContainer.tsx":{"bytes":8999,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-observability/types","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-registry/src/components/PluginList.tsx","kind":"import-statement","original":"./PluginList"}],"format":"esm"},"packages/plugins/plugin-registry/src/components/index.ts":{"bytes":734,"imports":[{"path":"packages/plugins/plugin-registry/src/components/PluginDetail.tsx","kind":"import-statement","original":"./PluginDetail"},{"path":"packages/plugins/plugin-registry/src/components/PluginList.tsx","kind":"import-statement","original":"./PluginList"},{"path":"packages/plugins/plugin-registry/src/components/RegistryContainer.tsx","kind":"import-statement","original":"./RegistryContainer"}],"format":"esm"},"packages/plugins/plugin-registry/src/capabilities/react-surface.tsx":{"bytes":12724,"imports":[{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-registry/src/components/index.ts","kind":"import-statement","original":"../components"},{"path":"packages/plugins/plugin-registry/src/meta.ts","kind":"import-statement","original":"../meta"}],"format":"esm"},"packages/plugins/plugin-registry/src/capabilities/index.ts":{"bytes":1351,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-registry/src/capabilities/app-graph-builder.ts","kind":"dynamic-import","original":"./app-graph-builder"},{"path":"packages/plugins/plugin-registry/src/capabilities/intent-resolver.ts","kind":"dynamic-import","original":"./intent-resolver"},{"path":"packages/plugins/plugin-registry/src/capabilities/react-surface.tsx","kind":"dynamic-import","original":"./react-surface"}],"format":"esm"},"packages/plugins/plugin-registry/src/translations.ts":{"bytes":3670,"imports":[{"path":"packages/plugins/plugin-registry/src/meta.ts","kind":"import-statement","original":"./meta"}],"format":"esm"},"packages/plugins/plugin-registry/src/RegistryPlugin.tsx":{"bytes":4127,"imports":[{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-registry/src/capabilities/index.ts","kind":"import-statement","original":"./capabilities"},{"path":"packages/plugins/plugin-registry/src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/plugins/plugin-registry/src/translations.ts","kind":"import-statement","original":"./translations"}],"format":"esm"},"packages/plugins/plugin-registry/src/index.ts":{"bytes":602,"imports":[{"path":"packages/plugins/plugin-registry/src/meta.ts","kind":"import-statement","original":"./meta"},{"path":"packages/plugins/plugin-registry/src/RegistryPlugin.tsx","kind":"import-statement","original":"./RegistryPlugin"}],"format":"esm"}},"outputs":{"packages/plugins/plugin-registry/dist/lib/browser/index.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":4042},"packages/plugins/plugin-registry/dist/lib/browser/index.mjs":{"imports":[{"path":"packages/plugins/plugin-registry/dist/lib/browser/chunk-H6GNIIDK.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"packages/plugins/plugin-registry/dist/lib/browser/app-graph-builder-Z6FZXJWI.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-registry/dist/lib/browser/intent-resolver-QW333HWJ.mjs","kind":"dynamic-import"},{"path":"packages/plugins/plugin-registry/dist/lib/browser/react-surface-6JN3QJEF.mjs","kind":"dynamic-import"}],"exports":["REGISTRY_ID","REGISTRY_KEY","REGISTRY_PLUGIN","RegistryPlugin","meta"],"entryPoint":"packages/plugins/plugin-registry/src/index.ts","inputs":{"packages/plugins/plugin-registry/src/index.ts":{"bytesInOutput":0},"packages/plugins/plugin-registry/src/RegistryPlugin.tsx":{"bytesInOutput":758},"packages/plugins/plugin-registry/src/capabilities/index.ts":{"bytesInOutput":268},"packages/plugins/plugin-registry/src/translations.ts":{"bytesInOutput":1029}},"bytes":2514},"packages/plugins/plugin-registry/dist/lib/browser/app-graph-builder-Z6FZXJWI.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":6986},"packages/plugins/plugin-registry/dist/lib/browser/app-graph-builder-Z6FZXJWI.mjs":{"imports":[{"path":"packages/plugins/plugin-registry/dist/lib/browser/chunk-H6GNIIDK.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-graph","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-registry/src/capabilities/app-graph-builder.ts","inputs":{"packages/plugins/plugin-registry/src/capabilities/app-graph-builder.ts":{"bytesInOutput":4246}},"bytes":4517},"packages/plugins/plugin-registry/dist/lib/browser/intent-resolver-QW333HWJ.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":1265},"packages/plugins/plugin-registry/dist/lib/browser/intent-resolver-QW333HWJ.mjs":{"imports":[{"path":"packages/plugins/plugin-registry/dist/lib/browser/chunk-H6GNIIDK.mjs","kind":"import-statement"},{"path":"@dxos/app-framework","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-registry/src/capabilities/intent-resolver.ts","inputs":{"packages/plugins/plugin-registry/src/capabilities/intent-resolver.ts":{"bytesInOutput":461}},"bytes":691},"packages/plugins/plugin-registry/dist/lib/browser/react-surface-6JN3QJEF.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":23215},"packages/plugins/plugin-registry/dist/lib/browser/react-surface-6JN3QJEF.mjs":{"imports":[{"path":"packages/plugins/plugin-registry/dist/lib/browser/chunk-H6GNIIDK.mjs","kind":"import-statement"},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-form","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/react-ui","kind":"import-statement","external":true},{"path":"@dxos/react-ui-theme","kind":"import-statement","external":true},{"path":"react","kind":"import-statement","external":true},{"path":"@dxos/app-framework","kind":"import-statement","external":true},{"path":"@dxos/plugin-observability/types","kind":"import-statement","external":true},{"path":"@dxos/react-ui-stack","kind":"import-statement","external":true}],"exports":["default"],"entryPoint":"packages/plugins/plugin-registry/src/capabilities/react-surface.tsx","inputs":{"packages/plugins/plugin-registry/src/capabilities/react-surface.tsx":{"bytesInOutput":3195},"packages/plugins/plugin-registry/src/components/PluginDetail.tsx":{"bytesInOutput":2192},"packages/plugins/plugin-registry/src/components/index.ts":{"bytesInOutput":0},"packages/plugins/plugin-registry/src/components/PluginList.tsx":{"bytesInOutput":517},"packages/plugins/plugin-registry/src/components/PluginItem.tsx":{"bytesInOutput":3889},"packages/plugins/plugin-registry/src/components/RegistryContainer.tsx":{"bytesInOutput":2092}},"bytes":12546},"packages/plugins/plugin-registry/dist/lib/browser/chunk-H6GNIIDK.mjs.map":{"imports":[],"exports":[],"inputs":{},"bytes":705},"packages/plugins/plugin-registry/dist/lib/browser/chunk-H6GNIIDK.mjs":{"imports":[],"exports":["REGISTRY_ID","REGISTRY_KEY","REGISTRY_PLUGIN","meta"],"inputs":{"packages/plugins/plugin-registry/src/meta.ts":{"bytesInOutput":188}},"bytes":350}}}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import {
|
|
2
2
|
REGISTRY_KEY,
|
|
3
3
|
REGISTRY_PLUGIN
|
|
4
|
-
} from "./chunk-
|
|
4
|
+
} from "./chunk-H6GNIIDK.mjs";
|
|
5
5
|
|
|
6
6
|
// packages/plugins/plugin-registry/src/capabilities/react-surface.tsx
|
|
7
|
-
import React5, { useCallback as
|
|
8
|
-
import { Capabilities, contributes, createSurface, Plugin, usePluginManager as usePluginManager2 } from "@dxos/app-framework";
|
|
7
|
+
import React5, { useCallback as useCallback3, useMemo as useMemo2 } from "react";
|
|
8
|
+
import { Capabilities as Capabilities2, contributes, createSurface, Plugin, usePluginManager as usePluginManager2 } from "@dxos/app-framework";
|
|
9
9
|
import { StackItem as StackItem2 } from "@dxos/react-ui-stack";
|
|
10
10
|
|
|
11
11
|
// packages/plugins/plugin-registry/src/components/PluginDetail.tsx
|
|
@@ -24,7 +24,7 @@ var PluginDetail = ({ plugin, enabled, onEnable }) => {
|
|
|
24
24
|
classNames: "self-center",
|
|
25
25
|
checked: enabled,
|
|
26
26
|
onClick: onEnable
|
|
27
|
-
}))), screenshots && /* @__PURE__ */ React.createElement("div", {
|
|
27
|
+
}))), screenshots && screenshots.length > 0 && /* @__PURE__ */ React.createElement("div", {
|
|
28
28
|
role: "none"
|
|
29
29
|
}, /* @__PURE__ */ React.createElement("h1", {
|
|
30
30
|
className: "text-lg mb-2"
|
|
@@ -69,7 +69,7 @@ import { List } from "@dxos/react-ui";
|
|
|
69
69
|
import React2, { useCallback } from "react";
|
|
70
70
|
import { Icon as Icon2, Input as Input2, Link as Link2, ListItem, useTranslation as useTranslation2 } from "@dxos/react-ui";
|
|
71
71
|
import { descriptionText, mx } from "@dxos/react-ui-theme";
|
|
72
|
-
var PluginItem = ({ plugin, enabled = [], onClick, onChange }) => {
|
|
72
|
+
var PluginItem = ({ plugin, enabled = [], onClick, onChange, hasSettings: _hasSettings, onSettings }) => {
|
|
73
73
|
const { t } = useTranslation2(REGISTRY_PLUGIN);
|
|
74
74
|
const { id, name, description, homePage, source, icon = "ph--circle--regular" } = plugin.meta;
|
|
75
75
|
const isEnabled = enabled.includes(id);
|
|
@@ -88,6 +88,14 @@ var PluginItem = ({ plugin, enabled = [], onClick, onChange }) => {
|
|
|
88
88
|
isEnabled,
|
|
89
89
|
onChange
|
|
90
90
|
]);
|
|
91
|
+
const hasSettings = useCallback(() => _hasSettings?.(id) ?? false, [
|
|
92
|
+
id,
|
|
93
|
+
_hasSettings
|
|
94
|
+
]);
|
|
95
|
+
const handleSettings = useCallback(() => onSettings?.(id), [
|
|
96
|
+
id,
|
|
97
|
+
onSettings
|
|
98
|
+
]);
|
|
91
99
|
return /* @__PURE__ */ React2.createElement(ListItem.Root, {
|
|
92
100
|
key: id,
|
|
93
101
|
labelId,
|
|
@@ -114,7 +122,7 @@ var PluginItem = ({ plugin, enabled = [], onClick, onChange }) => {
|
|
|
114
122
|
onClick: handleChange
|
|
115
123
|
}))), /* @__PURE__ */ React2.createElement("div", null), (description || homePage || source) && /* @__PURE__ */ React2.createElement("div", {
|
|
116
124
|
id: descriptionId,
|
|
117
|
-
className: "col-span-2 flex flex-col w-full gap-2 pb-3
|
|
125
|
+
className: "col-span-2 flex flex-col w-full gap-2 pb-3"
|
|
118
126
|
}, /* @__PURE__ */ React2.createElement("div", {
|
|
119
127
|
className: "grow"
|
|
120
128
|
}, /* @__PURE__ */ React2.createElement("p", {
|
|
@@ -147,7 +155,11 @@ var PluginItem = ({ plugin, enabled = [], onClick, onChange }) => {
|
|
|
147
155
|
icon: "ph--arrow-square-out--bold",
|
|
148
156
|
size: 3,
|
|
149
157
|
classNames: "inline-block leading-none mli-1"
|
|
150
|
-
})))
|
|
158
|
+
})), hasSettings?.() && /* @__PURE__ */ React2.createElement(Link2, {
|
|
159
|
+
"aria-describedby": descriptionId,
|
|
160
|
+
classNames: "text-sm text-description cursor-pointer",
|
|
161
|
+
onClick: handleSettings
|
|
162
|
+
}, t("settings label")))));
|
|
151
163
|
};
|
|
152
164
|
|
|
153
165
|
// packages/plugins/plugin-registry/src/components/PluginList.tsx
|
|
@@ -164,8 +176,8 @@ var PluginList = ({ plugins = [], ...props }) => {
|
|
|
164
176
|
};
|
|
165
177
|
|
|
166
178
|
// packages/plugins/plugin-registry/src/components/RegistryContainer.tsx
|
|
167
|
-
import React4, { useMemo } from "react";
|
|
168
|
-
import { createIntent, LayoutAction, useIntentDispatcher, usePluginManager } from "@dxos/app-framework";
|
|
179
|
+
import React4, { useCallback as useCallback2, useMemo } from "react";
|
|
180
|
+
import { Capabilities, createIntent, LayoutAction, SettingsAction, useCapability, useIntentDispatcher, usePluginManager } from "@dxos/app-framework";
|
|
169
181
|
import { ObservabilityAction } from "@dxos/plugin-observability/types";
|
|
170
182
|
import { StackItem } from "@dxos/react-ui-stack";
|
|
171
183
|
var sortByPluginMeta = ({ meta: { name: a = "" } }, { meta: { name: b = "" } }) => a.localeCompare(b);
|
|
@@ -175,7 +187,8 @@ var RegistryContainer = ({ id, plugins: _plugins }) => {
|
|
|
175
187
|
const plugins = useMemo(() => _plugins.sort(sortByPluginMeta), [
|
|
176
188
|
_plugins
|
|
177
189
|
]);
|
|
178
|
-
const
|
|
190
|
+
const settingsStore = useCapability(Capabilities.SettingsStore);
|
|
191
|
+
const handleChange = useCallback2(async (id2, enabled) => {
|
|
179
192
|
if (enabled) {
|
|
180
193
|
await manager.enable(id2);
|
|
181
194
|
} else {
|
|
@@ -188,8 +201,11 @@ var RegistryContainer = ({ id, plugins: _plugins }) => {
|
|
|
188
201
|
enabled
|
|
189
202
|
}
|
|
190
203
|
}));
|
|
191
|
-
}
|
|
192
|
-
|
|
204
|
+
}, [
|
|
205
|
+
dispatch,
|
|
206
|
+
manager
|
|
207
|
+
]);
|
|
208
|
+
const handleClick = useCallback2((pluginId) => dispatch(createIntent(LayoutAction.Open, {
|
|
193
209
|
part: "main",
|
|
194
210
|
// TODO(wittjosiah): `/` currently is not supported in ids.
|
|
195
211
|
subject: [
|
|
@@ -199,7 +215,18 @@ var RegistryContainer = ({ id, plugins: _plugins }) => {
|
|
|
199
215
|
pivotId: id,
|
|
200
216
|
positioning: "end"
|
|
201
217
|
}
|
|
202
|
-
}))
|
|
218
|
+
})), [
|
|
219
|
+
dispatch,
|
|
220
|
+
id
|
|
221
|
+
]);
|
|
222
|
+
const hasSettings = useCallback2((pluginId) => !!settingsStore.getStore(pluginId), [
|
|
223
|
+
settingsStore
|
|
224
|
+
]);
|
|
225
|
+
const handleSettings = useCallback2((pluginId) => dispatch(createIntent(SettingsAction.Open, {
|
|
226
|
+
plugin: pluginId
|
|
227
|
+
})), [
|
|
228
|
+
dispatch
|
|
229
|
+
]);
|
|
203
230
|
return /* @__PURE__ */ React4.createElement(StackItem.Content, {
|
|
204
231
|
toolbar: false,
|
|
205
232
|
role: "article",
|
|
@@ -208,21 +235,23 @@ var RegistryContainer = ({ id, plugins: _plugins }) => {
|
|
|
208
235
|
plugins,
|
|
209
236
|
enabled: manager.enabled,
|
|
210
237
|
onClick: handleClick,
|
|
211
|
-
onChange: handleChange
|
|
238
|
+
onChange: handleChange,
|
|
239
|
+
hasSettings,
|
|
240
|
+
onSettings: handleSettings
|
|
212
241
|
}));
|
|
213
242
|
};
|
|
214
243
|
|
|
215
244
|
// packages/plugins/plugin-registry/src/capabilities/react-surface.tsx
|
|
216
|
-
var react_surface_default = () => contributes(
|
|
245
|
+
var react_surface_default = () => contributes(Capabilities2.ReactSurface, [
|
|
217
246
|
createSurface({
|
|
218
247
|
id: `${REGISTRY_PLUGIN}/all`,
|
|
219
248
|
role: "article",
|
|
220
|
-
filter: (data) => data.subject === `${REGISTRY_KEY}
|
|
249
|
+
filter: (data) => data.subject === `${REGISTRY_KEY}+all`,
|
|
221
250
|
component: () => {
|
|
222
251
|
const manager = usePluginManager2();
|
|
223
252
|
const filtered = useMemo2(() => manager.plugins.filter(({ meta }) => !manager.core.includes(meta.id)), []);
|
|
224
253
|
return /* @__PURE__ */ React5.createElement(RegistryContainer, {
|
|
225
|
-
id: `${REGISTRY_KEY}
|
|
254
|
+
id: `${REGISTRY_KEY}+all`,
|
|
226
255
|
plugins: filtered
|
|
227
256
|
});
|
|
228
257
|
}
|
|
@@ -230,12 +259,12 @@ var react_surface_default = () => contributes(Capabilities.ReactSurface, [
|
|
|
230
259
|
createSurface({
|
|
231
260
|
id: `${REGISTRY_PLUGIN}/installed`,
|
|
232
261
|
role: "article",
|
|
233
|
-
filter: (data) => data.subject === `${REGISTRY_KEY}
|
|
262
|
+
filter: (data) => data.subject === `${REGISTRY_KEY}+installed`,
|
|
234
263
|
component: () => {
|
|
235
264
|
const manager = usePluginManager2();
|
|
236
265
|
const filtered = useMemo2(() => manager.plugins.filter(({ meta }) => !manager.core.includes(meta.id)).filter(({ meta }) => manager.enabled.includes(meta.id)), []);
|
|
237
266
|
return /* @__PURE__ */ React5.createElement(RegistryContainer, {
|
|
238
|
-
id: `${REGISTRY_KEY}
|
|
267
|
+
id: `${REGISTRY_KEY}+installed`,
|
|
239
268
|
plugins: filtered
|
|
240
269
|
});
|
|
241
270
|
}
|
|
@@ -243,12 +272,12 @@ var react_surface_default = () => contributes(Capabilities.ReactSurface, [
|
|
|
243
272
|
createSurface({
|
|
244
273
|
id: `${REGISTRY_PLUGIN}/recommended`,
|
|
245
274
|
role: "article",
|
|
246
|
-
filter: (data) => data.subject === `${REGISTRY_KEY}
|
|
275
|
+
filter: (data) => data.subject === `${REGISTRY_KEY}+recommended`,
|
|
247
276
|
component: () => {
|
|
248
277
|
const manager = usePluginManager2();
|
|
249
278
|
const filtered = useMemo2(() => manager.plugins.filter(({ meta }) => !manager.core.includes(meta.id)).filter(({ meta }) => !meta.tags?.includes("experimental")), []);
|
|
250
279
|
return /* @__PURE__ */ React5.createElement(RegistryContainer, {
|
|
251
|
-
id: `${REGISTRY_KEY}
|
|
280
|
+
id: `${REGISTRY_KEY}+recommended`,
|
|
252
281
|
plugins: filtered
|
|
253
282
|
});
|
|
254
283
|
}
|
|
@@ -256,12 +285,12 @@ var react_surface_default = () => contributes(Capabilities.ReactSurface, [
|
|
|
256
285
|
createSurface({
|
|
257
286
|
id: `${REGISTRY_PLUGIN}/experimental`,
|
|
258
287
|
role: "article",
|
|
259
|
-
filter: (data) => data.subject === `${REGISTRY_KEY}
|
|
288
|
+
filter: (data) => data.subject === `${REGISTRY_KEY}+experimental`,
|
|
260
289
|
component: () => {
|
|
261
290
|
const manager = usePluginManager2();
|
|
262
291
|
const filtered = useMemo2(() => manager.plugins.filter(({ meta }) => meta.tags?.includes("experimental")), []);
|
|
263
292
|
return /* @__PURE__ */ React5.createElement(RegistryContainer, {
|
|
264
|
-
id: `${REGISTRY_KEY}
|
|
293
|
+
id: `${REGISTRY_KEY}+experimental`,
|
|
265
294
|
plugins: filtered
|
|
266
295
|
});
|
|
267
296
|
}
|
|
@@ -273,7 +302,7 @@ var react_surface_default = () => contributes(Capabilities.ReactSurface, [
|
|
|
273
302
|
component: ({ data: { subject } }) => {
|
|
274
303
|
const manager = usePluginManager2();
|
|
275
304
|
const enabled = manager.enabled.includes(subject.meta.id);
|
|
276
|
-
const handleEnable =
|
|
305
|
+
const handleEnable = useCallback3(() => enabled ? manager.disable(subject.meta.id) : manager.enable(subject.meta.id), [
|
|
277
306
|
manager,
|
|
278
307
|
subject.meta.id,
|
|
279
308
|
enabled
|
|
@@ -292,4 +321,4 @@ var react_surface_default = () => contributes(Capabilities.ReactSurface, [
|
|
|
292
321
|
export {
|
|
293
322
|
react_surface_default as default
|
|
294
323
|
};
|
|
295
|
-
//# sourceMappingURL=react-surface-
|
|
324
|
+
//# sourceMappingURL=react-surface-6JN3QJEF.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/react-surface.tsx", "../../../src/components/PluginDetail.tsx", "../../../src/components/PluginList.tsx", "../../../src/components/PluginItem.tsx", "../../../src/components/RegistryContainer.tsx"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback, useMemo } from 'react';\n\nimport { Capabilities, contributes, createSurface, Plugin, usePluginManager } from '@dxos/app-framework';\nimport { StackItem } from '@dxos/react-ui-stack';\n\nimport { PluginDetail, RegistryContainer } from '../components';\nimport { REGISTRY_KEY, REGISTRY_PLUGIN } from '../meta';\n\nexport default () =>\n contributes(Capabilities.ReactSurface, [\n createSurface({\n id: `${REGISTRY_PLUGIN}/all`,\n role: 'article',\n filter: (data): data is any => data.subject === `${REGISTRY_KEY}+all`,\n component: () => {\n const manager = usePluginManager();\n const filtered = useMemo(() => manager.plugins.filter(({ meta }) => !manager.core.includes(meta.id)), []);\n\n return <RegistryContainer id={`${REGISTRY_KEY}+all`} plugins={filtered} />;\n },\n }),\n createSurface({\n id: `${REGISTRY_PLUGIN}/installed`,\n role: 'article',\n filter: (data): data is any => data.subject === `${REGISTRY_KEY}+installed`,\n component: () => {\n const manager = usePluginManager();\n const filtered = useMemo(\n () =>\n manager.plugins\n .filter(({ meta }) => !manager.core.includes(meta.id))\n .filter(({ meta }) => manager.enabled.includes(meta.id)),\n [],\n );\n\n return <RegistryContainer id={`${REGISTRY_KEY}+installed`} plugins={filtered} />;\n },\n }),\n createSurface({\n id: `${REGISTRY_PLUGIN}/recommended`,\n role: 'article',\n filter: (data): data is any => data.subject === `${REGISTRY_KEY}+recommended`,\n component: () => {\n const manager = usePluginManager();\n const filtered = useMemo(\n () =>\n manager.plugins\n .filter(({ meta }) => !manager.core.includes(meta.id))\n .filter(({ meta }) => !meta.tags?.includes('experimental')),\n [],\n );\n\n return <RegistryContainer id={`${REGISTRY_KEY}+recommended`} plugins={filtered} />;\n },\n }),\n createSurface({\n id: `${REGISTRY_PLUGIN}/experimental`,\n role: 'article',\n filter: (data): data is any => data.subject === `${REGISTRY_KEY}+experimental`,\n component: () => {\n const manager = usePluginManager();\n const filtered = useMemo(() => manager.plugins.filter(({ meta }) => meta.tags?.includes('experimental')), []);\n\n return <RegistryContainer id={`${REGISTRY_KEY}+experimental`} plugins={filtered} />;\n },\n }),\n createSurface({\n id: `${REGISTRY_PLUGIN}/plugin-details`,\n role: 'article',\n filter: (data): data is { subject: Plugin } => data.subject instanceof Plugin,\n component: ({ data: { subject } }) => {\n const manager = usePluginManager();\n const enabled = manager.enabled.includes(subject.meta.id);\n const handleEnable = useCallback(\n () => (enabled ? manager.disable(subject.meta.id) : manager.enable(subject.meta.id)),\n [manager, subject.meta.id, enabled],\n );\n\n return (\n <StackItem.Content role='article' toolbar={false}>\n <PluginDetail plugin={subject} enabled={enabled} onEnable={handleEnable} />\n </StackItem.Content>\n );\n },\n }),\n ]);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { Icon, Input, Link, useTranslation } from '@dxos/react-ui';\nimport { DeprecatedFormContainer } from '@dxos/react-ui-form';\n\nimport { REGISTRY_PLUGIN } from '../meta';\n\nexport type PluginDetailProps = {\n plugin: Plugin;\n enabled?: boolean;\n onEnable?: () => void;\n};\n\nexport const PluginDetail = ({ plugin, enabled, onEnable }: PluginDetailProps) => {\n const { t } = useTranslation(REGISTRY_PLUGIN);\n const { id, name, description, homePage, source, screenshots } = plugin.meta;\n\n return (\n <DeprecatedFormContainer classNames='gap-6'>\n <div role='none' className='flex justify-between items-center'>\n <p>{id}</p>\n <Input.Root>\n <Input.Switch classNames='self-center' checked={enabled} onClick={onEnable} />\n </Input.Root>\n </div>\n\n {screenshots && screenshots.length > 0 && (\n <div role='none'>\n <h1 className='text-lg mb-2'>Preview</h1>\n <img src={screenshots[0]} alt={name} className='aspect-video object-fit' />\n </div>\n )}\n\n <div role='none'>\n <p>{description}</p>\n </div>\n\n <div role='none'>\n <h1 className='text-lg mb-2'>Resources</h1>\n <div className='flex gap-2'>\n {homePage && (\n <Link href={homePage} target='_blank' rel='noreferrer' classNames='text-sm text-description'>\n {t('home page label')}\n <Icon icon='ph--arrow-square-out--bold' size={3} classNames='inline-block leading-none mli-1' />\n </Link>\n )}\n\n {source && (\n <Link href={source} target='_blank' rel='noreferrer' classNames='text-sm text-description'>\n {t('source label')}\n <Icon icon='ph--arrow-square-out--bold' size={3} classNames='inline-block leading-none mli-1' />\n </Link>\n )}\n </div>\n </div>\n </DeprecatedFormContainer>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { List } from '@dxos/react-ui';\n\nimport { PluginItem, type PluginItemProps } from './PluginItem';\n\nexport type PluginListProps = Omit<PluginItemProps, 'plugin'> & {\n plugins?: readonly Plugin[];\n};\n\nexport const PluginList = ({ plugins = [], ...props }: PluginListProps) => {\n return (\n <List classNames='grid grid-cols-[repeat(auto-fill,minmax(280px,1fr))] auto-rows-[10rem] gap-3 p-3 overflow-y-auto scrollbar-thin'>\n {plugins.map((plugin) => (\n <div key={plugin.meta.id} className='flex'>\n <PluginItem plugin={plugin} {...props} />\n </div>\n ))}\n </List>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback } from 'react';\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { Icon, Input, Link, ListItem, useTranslation } from '@dxos/react-ui';\nimport { descriptionText, mx } from '@dxos/react-ui-theme';\n\nimport { REGISTRY_PLUGIN } from '../meta';\n\nexport type PluginItemProps = {\n plugin: Plugin;\n installed?: readonly string[];\n enabled?: readonly string[];\n onClick?: (id: string) => void;\n onChange?: (id: string, enabled: boolean) => void;\n hasSettings?: (id: string) => boolean;\n onSettings?: (id: string) => void;\n};\n\nexport const PluginItem = ({\n plugin,\n enabled = [],\n onClick,\n onChange,\n hasSettings: _hasSettings,\n onSettings,\n}: PluginItemProps) => {\n const { t } = useTranslation(REGISTRY_PLUGIN);\n const { id, name, description, homePage, source, icon = 'ph--circle--regular' } = plugin.meta;\n const isEnabled = enabled.includes(id);\n const inputId = `${id}-input`;\n const labelId = `${id}-label`;\n const descriptionId = `${id}-description`;\n const handleClick = useCallback(() => onClick?.(id), [id, onClick]);\n\n const handleChange = useCallback(\n (event: React.MouseEvent) => {\n event.stopPropagation();\n onChange?.(id, !isEnabled);\n },\n [id, isEnabled, onChange],\n );\n\n const hasSettings = useCallback(() => _hasSettings?.(id) ?? false, [id, _hasSettings]);\n const handleSettings = useCallback(() => onSettings?.(id), [id, onSettings]);\n\n return (\n <ListItem.Root\n key={id}\n labelId={labelId}\n data-testid={`pluginList.${id}`}\n aria-describedby={descriptionId}\n classNames='w-full h-full grid grid-cols-[48px_1fr_48px] grid-rows-[40px_1fr] p-1 rounded-md border border-separator'\n >\n <div className='flex grow justify-center items-center'>\n <Icon icon={icon} size={6} onClick={handleClick} classNames='text-subdued cursor-pointer' />\n </div>\n <div className='flex grow items-center truncate cursor-pointer' onClick={handleClick}>\n {name ?? id}\n </div>\n <div className='flex grow justify-center items-center'>\n <Input.Root id={inputId}>\n <Input.Switch classNames='self-center' checked={isEnabled} onClick={handleChange} />\n </Input.Root>\n </div>\n\n <div />\n {(description || homePage || source) && (\n <div id={descriptionId} className='col-span-2 flex flex-col w-full gap-2 pb-3'>\n <div className='grow'>\n <p className={mx(descriptionText, 'line-clamp-3 min-w-0 pie-4')}>{description}</p>\n </div>\n\n <div className='flex gap-2 items-center'>\n <Link\n aria-describedby={descriptionId}\n classNames='text-sm text-description cursor-pointer'\n onClick={handleClick}\n >\n {t('details label')}\n </Link>\n\n {homePage && (\n <Link\n href={homePage}\n target='_blank'\n rel='noreferrer'\n aria-describedby={descriptionId}\n classNames='text-sm text-description'\n onClick={(ev) => ev.stopPropagation()}\n >\n {t('home page label')}\n <Icon icon='ph--arrow-square-out--bold' size={3} classNames='inline-block leading-none mli-1' />\n </Link>\n )}\n\n {source && (\n <Link\n href={source}\n target='_blank'\n rel='noreferrer'\n aria-describedby={descriptionId}\n classNames='text-sm text-description'\n onClick={(ev) => ev.stopPropagation()}\n >\n {t('source label')}\n <Icon icon='ph--arrow-square-out--bold' size={3} classNames='inline-block leading-none mli-1' />\n </Link>\n )}\n\n {hasSettings?.() && (\n <Link\n aria-describedby={descriptionId}\n classNames='text-sm text-description cursor-pointer'\n onClick={handleSettings}\n >\n {t('settings label')}\n </Link>\n )}\n </div>\n </div>\n )}\n </ListItem.Root>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useCallback, useMemo } from 'react';\n\nimport {\n Capabilities,\n createIntent,\n LayoutAction,\n type Plugin,\n SettingsAction,\n useCapability,\n useIntentDispatcher,\n usePluginManager,\n} from '@dxos/app-framework';\nimport { ObservabilityAction } from '@dxos/plugin-observability/types';\nimport { StackItem } from '@dxos/react-ui-stack';\n\nimport { PluginList } from './PluginList';\n\nconst sortByPluginMeta = ({ meta: { name: a = '' } }: Plugin, { meta: { name: b = '' } }: Plugin) => a.localeCompare(b);\n\nexport const RegistryContainer = ({ id, plugins: _plugins }: { id: string; plugins: Plugin[] }) => {\n const manager = usePluginManager();\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const plugins = useMemo(() => _plugins.sort(sortByPluginMeta), [_plugins]);\n const settingsStore = useCapability(Capabilities.SettingsStore);\n\n // TODO(wittjosiah): Factor out to an intent?\n const handleChange = useCallback(\n async (id: string, enabled: boolean) => {\n if (enabled) {\n await manager.enable(id);\n } else {\n await manager.disable(id);\n }\n\n await dispatch(\n createIntent(ObservabilityAction.SendEvent, {\n name: 'plugins.toggle',\n properties: { plugin: id, enabled },\n }),\n );\n },\n [dispatch, manager],\n );\n\n const handleClick = useCallback(\n (pluginId: string) =>\n dispatch(\n createIntent(LayoutAction.Open, {\n part: 'main',\n // TODO(wittjosiah): `/` currently is not supported in ids.\n subject: [pluginId.replaceAll('/', ':')],\n options: { pivotId: id, positioning: 'end' },\n }),\n ),\n [dispatch, id],\n );\n\n const hasSettings = useCallback((pluginId: string) => !!settingsStore.getStore(pluginId), [settingsStore]);\n\n const handleSettings = useCallback(\n (pluginId: string) => dispatch(createIntent(SettingsAction.Open, { plugin: pluginId })),\n [dispatch],\n );\n\n return (\n <StackItem.Content toolbar={false} role='article' classNames='overflow-x-hidden overflow-y-auto'>\n <PluginList\n plugins={plugins}\n enabled={manager.enabled}\n onClick={handleClick}\n onChange={handleChange}\n hasSettings={hasSettings}\n onSettings={handleSettings}\n />\n </StackItem.Content>\n );\n};\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["React", "useCallback", "useMemo", "Capabilities", "contributes", "createSurface", "Plugin", "usePluginManager", "StackItem", "React", "Icon", "Input", "Link", "useTranslation", "DeprecatedFormContainer", "PluginDetail", "plugin", "enabled", "onEnable", "t", "useTranslation", "REGISTRY_PLUGIN", "id", "name", "description", "homePage", "source", "screenshots", "meta", "DeprecatedFormContainer", "classNames", "div", "role", "className", "p", "Input", "Root", "Switch", "checked", "onClick", "length", "h1", "img", "src", "alt", "Link", "href", "target", "rel", "Icon", "icon", "size", "React", "List", "React", "useCallback", "Icon", "Input", "Link", "ListItem", "useTranslation", "descriptionText", "mx", "PluginItem", "plugin", "enabled", "onClick", "onChange", "hasSettings", "_hasSettings", "onSettings", "t", "useTranslation", "REGISTRY_PLUGIN", "id", "name", "description", "homePage", "source", "icon", "meta", "isEnabled", "includes", "inputId", "labelId", "descriptionId", "handleClick", "useCallback", "handleChange", "event", "stopPropagation", "handleSettings", "React", "ListItem", "Root", "key", "data-testid", "aria-describedby", "classNames", "div", "className", "Icon", "size", "Input", "Switch", "checked", "p", "mx", "descriptionText", "Link", "href", "target", "rel", "ev", "PluginList", "plugins", "props", "React", "List", "classNames", "map", "plugin", "div", "key", "meta", "id", "className", "PluginItem", "React", "useCallback", "useMemo", "Capabilities", "createIntent", "LayoutAction", "SettingsAction", "useCapability", "useIntentDispatcher", "usePluginManager", "ObservabilityAction", "StackItem", "sortByPluginMeta", "meta", "name", "a", "b", "localeCompare", "RegistryContainer", "id", "plugins", "_plugins", "manager", "usePluginManager", "dispatchPromise", "dispatch", "useIntentDispatcher", "useMemo", "sort", "settingsStore", "useCapability", "Capabilities", "SettingsStore", "handleChange", "useCallback", "enabled", "enable", "disable", "createIntent", "ObservabilityAction", "SendEvent", "properties", "plugin", "handleClick", "pluginId", "LayoutAction", "Open", "part", "subject", "replaceAll", "options", "pivotId", "positioning", "hasSettings", "getStore", "handleSettings", "SettingsAction", "React", "StackItem", "Content", "toolbar", "role", "classNames", "PluginList", "onClick", "onChange", "onSettings", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "REGISTRY_PLUGIN", "role", "filter", "data", "subject", "REGISTRY_KEY", "component", "manager", "usePluginManager", "filtered", "useMemo", "plugins", "meta", "core", "includes", "React", "RegistryContainer", "enabled", "tags", "Plugin", "handleEnable", "useCallback", "disable", "enable", "StackItem", "Content", "toolbar", "PluginDetail", "plugin", "onEnable"]
|
|
7
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app-graph-builder.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/app-graph-builder.ts"],"names":[],"mappings":"AAIA,OAAO,EAA2D,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACnH,OAAO,EAAmB,KAAK,IAAI,EAAE,MAAM,oBAAoB,CAAC;kCAIvC,cAAc;;
|
|
1
|
+
{"version":3,"file":"app-graph-builder.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/app-graph-builder.ts"],"names":[],"mappings":"AAIA,OAAO,EAA2D,KAAK,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACnH,OAAO,EAAmB,KAAK,IAAI,EAAE,MAAM,oBAAoB,CAAC;kCAIvC,cAAc;;qBA4F7B,qCAIV;sBACgB,oBAAiB;uBAEtB,oBAAiB;sBAAgD,oBAC9D;;2BAAkE,uCAAiB;;;qBAMrF,qCAEZ;sBACc,oBACP;uBACK,oBAAK;sBACP,oBACF;;2BAIgC,uCAAiB;;;qBAAwF,qCAAqC;sBAAsC,oBAAiB;uBAAgD,oBAAiB;sBAAgD,oBAAiB;;2BAAkE,uCAAiB;;;qBAAqF,qCAAqC;sBAAsC,oBAAiB;uBAAgD,oBAAiB;sBAAgD,oBAAiB;;2BAAkE,uCAAiB;;;qBAAwF,qCAAqC;sBAAsC,oBAAiB;uBAAgD,oBAAiB;sBAAgD,oBAAiB;;2BAAkE,uCAAiB;;;qBAAqF,qCAAqC;sBAAsC,oBAAiB;uBAAgD,oBAAiB;sBAAgD,oBAAiB;;2BAAkE,uCAAiB;;;qBAAwF,qCAAqC;sBAAsC,oBAAiB;uBAAgD,oBAAiB;sBAAgD,oBAAiB;;2BAAkE,uCAAiB;;;qBAAqF,qCAAqC;sBAAsC,oBAAiB;uBAAgD,oBAAiB;sBAAgD,oBAAiB;;2BAAkE,uCAAiB;;;qBAAwF,qCAAqC;sBAAsC,oBAAiB;uBAAgD,oBAAiB;sBAAgD,oBAAiB;;2BAAkE,uCAAiB;;;qBAAqF,qCAAqC;sBAAsC,oBAAiB;uBAAgD,oBAAiB;sBAAgD,oBAAiB;;2BAAkE,uCAAiB;;;qBAAwF,qCAAqC;sBAAsC,oBAAiB;uBAAgD,oBAAiB;sBAAgD,oBAAiB;;2BAAkE,uCAAiB;;;qBAAqF,qCAAqC;sBAAsC,oBAAiB;uBAAgD,oBAAiB;sBAAgD,oBAAiB;;2BAAkE,uCAAiB;;;qBAAwF,qCAAqC;sBAAsC,oBAAiB;uBAAgD,oBAAiB;sBAAgD,oBAAiB;;2BAAkE,uCAAiB;;;qBAAqF,qCAAqC;sBAAsC,oBAAiB;uBAAgD,oBAAiB;sBAAgD,oBAAiB;;2BAAkE,uCAAiB;;;qBAAwF,qCAAqC;sBAAsC,oBAAiB;uBAAgD,oBAAiB;sBAAgD,oBAAiB;;2BAAkE,uCAAiB;;;qBAAqF,qCAAqC;sBAAsC,oBAAiB;uBAAgD,oBAAiB;sBAAgD,oBAAiB;;2BAAkE,uCAAiB;;;qBAAwF,qCAAqC;sBAAsC,oBAAiB;uBAAgD,oBAAiB;sBAAgD,oBAAiB;;2BAAkE,uCAAiB;;;qBAAqF,qCAAqC;sBAAsC,oBAAiB;uBAAgD,oBAAiB;sBAAgD,oBAAiB;;2BAAkE,uCAAiB;;;qBAAwF,qCAAqC;sBAAsC,oBAAiB;uBAAgD,oBAAiB;sBAAgD,oBAAiB;;2BAAkE,uCAAiB;;;qBAAqF,qCAAqC;sBAAsC,oBAAiB;uBAAgD,oBAAiB;sBAAgD,oBAAiB;;2BAAkE,uCAAiB;;;qBAAwF,qCAAqC;sBAAsC,oBAAiB;uBAAgD,oBAAiB;sBAAgD,oBAAiB;;2BAAkE,uCAAiB;;;qBAAqF,qCAAqC;sBAAsC,oBAAiB;uBAAgD,oBAAiB;sBAAgD,oBAAiB;;2BAAkE,uCAAiB;;AArH/sP,wBAoHK"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/index.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,eAAe;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/capabilities/index.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,eAAe;;qBAGipG,qCAAqC;sBAAsC,uCAAiB;uBAAgD,uCAAiB;sBAAgD,uCAAiB;;2BAAkE,uCAAiB;;;qBAAqF,qCAAqC;sBAAsC,uCAAiB;uBAAgD,uCAAiB;sBAAgD,uCAAiB;;2BAAkE,uCAAiB;;;qBAAwF,qCAAqC;sBAAsC,uCAAiB;uBAAgD,uCAAiB;sBAAgD,uCAAiB;;2BAAkE,uCAAiB;;;qBAAqF,qCAAqC;sBAAsC,uCAAiB;uBAAgD,uCAAiB;sBAAgD,uCAAiB;;2BAAkE,uCAAiB;;;qBAAwF,qCAAqC;sBAAsC,uCAAiB;uBAAgD,uCAAiB;sBAAgD,uCAAiB;;2BAAkE,uCAAiB;;;qBAAqF,qCAAqC;sBAAsC,uCAAiB;uBAAgD,uCAAiB;sBAAgD,uCAAiB;;2BAAkE,uCAAiB;;;qBAAwF,qCAAqC;sBAAsC,uCAAiB;uBAAgD,uCAAiB;sBAAgD,uCAAiB;;2BAAkE,uCAAiB;;;qBAAqF,qCAAqC;sBAAsC,uCAAiB;uBAAgD,uCAAiB;sBAAgD,uCAAiB;;2BAAkE,uCAAiB;;;qBAAwF,qCAAqC;sBAAsC,uCAAiB;uBAAgD,uCAAiB;sBAAgD,uCAAiB;;2BAAkE,uCAAiB;;;qBAAqF,qCAAqC;sBAAsC,uCAAiB;uBAAgD,uCAAiB;sBAAgD,uCAAiB;;2BAAkE,uCAAiB;;;qBAAwF,qCAAqC;sBAAsC,uCAAiB;uBAAgD,uCAAiB;sBAAgD,uCAAiB;;2BAAkE,uCAAiB;;;qBAAqF,qCAAqC;sBAAsC,uCAAiB;uBAAgD,uCAAiB;sBAAgD,uCAAiB;;2BAAkE,uCAAiB;;;qBAAwF,qCAAqC;sBAAsC,uCAAiB;uBAAgD,uCAAiB;sBAAgD,uCAAiB;;2BAAkE,uCAAiB;;;qBAAqF,qCAAqC;sBAAsC,uCAAiB;uBAAgD,uCAAiB;sBAAgD,uCAAiB;;2BAAkE,uCAAiB;;;qBAAwF,qCAAqC;sBAAsC,uCAAiB;uBAAgD,uCAAiB;sBAAgD,uCAAiB;;2BAAkE,uCAAiB;;;qBAAqF,qCAAqC;sBAAsC,uCAAiB;uBAAgD,uCAAiB;sBAAgD,uCAAiB;;2BAAkE,uCAAiB;;;qBAAwF,qCAAqC;sBAAsC,uCAAiB;uBAAgD,uCAAiB;sBAAgD,uCAAiB;;2BAAkE,uCAAiB;;;qBAAqF,qCAAqC;sBAAsC,uCAAiB;uBAAgD,uCAAiB;sBAAgD,uCAAiB;;2BAAkE,uCAAiB;;;qBAAwF,qCAAqC;sBAAsC,uCAAiB;uBAAgD,uCAAiB;sBAAgD,uCAAiB;;2BAAkE,uCAAiB;;;qBAAqF,qCAAqC;sBAAsC,uCAAiB;uBAAgD,uCAAiB;sBAAgD,uCAAiB;;2BAAkE,uCAAiB;;;qBAAwF,qCAAqC;sBAAsC,uCAAiB;uBAAgD,uCAAiB;sBAAgD,uCAAiB;;2BAAkE,uCAAiB;;;qBAAqF,qCAAqC;sBAAsC,uCAAiB;uBAAgD,uCAAiB;sBAAgD,uCAAiB;;2BAAkE,uCAAiB;qFAHl7W,CAAC;AACzE,eAAO,MAAM,cAAc,kMAA0C,CAAC;AACtE,eAAO,MAAM,YAAY,gMAAwC,CAAC"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
1
|
import { type Plugin } from '@dxos/app-framework';
|
|
3
2
|
export type PluginDetailProps = {
|
|
4
3
|
plugin: Plugin;
|
|
5
4
|
enabled?: boolean;
|
|
6
5
|
onEnable?: () => void;
|
|
7
6
|
};
|
|
8
|
-
export declare const PluginDetail: ({ plugin, enabled, onEnable }: PluginDetailProps) =>
|
|
7
|
+
export declare const PluginDetail: ({ plugin, enabled, onEnable }: PluginDetailProps) => import("react/jsx-runtime").JSX.Element;
|
|
9
8
|
//# sourceMappingURL=PluginDetail.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PluginDetail.d.ts","sourceRoot":"","sources":["../../../../src/components/PluginDetail.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PluginDetail.d.ts","sourceRoot":"","sources":["../../../../src/components/PluginDetail.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAMlD,MAAM,MAAM,iBAAiB,GAAG;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;CACvB,CAAC;AAEF,eAAO,MAAM,YAAY,kCAAmC,iBAAiB,4CA4C5E,CAAC"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
1
|
import { type Plugin } from '@dxos/app-framework';
|
|
3
2
|
export type PluginItemProps = {
|
|
4
3
|
plugin: Plugin;
|
|
@@ -6,6 +5,8 @@ export type PluginItemProps = {
|
|
|
6
5
|
enabled?: readonly string[];
|
|
7
6
|
onClick?: (id: string) => void;
|
|
8
7
|
onChange?: (id: string, enabled: boolean) => void;
|
|
8
|
+
hasSettings?: (id: string) => boolean;
|
|
9
|
+
onSettings?: (id: string) => void;
|
|
9
10
|
};
|
|
10
|
-
export declare const PluginItem: ({ plugin, enabled, onClick, onChange }: PluginItemProps) =>
|
|
11
|
+
export declare const PluginItem: ({ plugin, enabled, onClick, onChange, hasSettings: _hasSettings, onSettings, }: PluginItemProps) => import("react/jsx-runtime").JSX.Element;
|
|
11
12
|
//# sourceMappingURL=PluginItem.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PluginItem.d.ts","sourceRoot":"","sources":["../../../../src/components/PluginItem.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PluginItem.d.ts","sourceRoot":"","sources":["../../../../src/components/PluginItem.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAMlD,MAAM,MAAM,eAAe,GAAG;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC9B,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5B,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IAClD,WAAW,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,OAAO,CAAC;IACtC,UAAU,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACnC,CAAC;AAEF,eAAO,MAAM,UAAU,mFAOpB,eAAe,4CAkGjB,CAAC"}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
1
|
import { type Plugin } from '@dxos/app-framework';
|
|
3
2
|
import { type PluginItemProps } from './PluginItem';
|
|
4
3
|
export type PluginListProps = Omit<PluginItemProps, 'plugin'> & {
|
|
5
4
|
plugins?: readonly Plugin[];
|
|
6
5
|
};
|
|
7
|
-
export declare const PluginList: ({ plugins, ...props }: PluginListProps) =>
|
|
6
|
+
export declare const PluginList: ({ plugins, ...props }: PluginListProps) => import("react/jsx-runtime").JSX.Element;
|
|
8
7
|
//# sourceMappingURL=PluginList.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PluginList.d.ts","sourceRoot":"","sources":["../../../../src/components/PluginList.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PluginList.d.ts","sourceRoot":"","sources":["../../../../src/components/PluginList.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAGlD,OAAO,EAAc,KAAK,eAAe,EAAE,MAAM,cAAc,CAAC;AAEhE,MAAM,MAAM,eAAe,GAAG,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,GAAG;IAC9D,OAAO,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,UAAU,0BAAgC,eAAe,4CAUrE,CAAC"}
|
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import React from 'react';
|
|
2
1
|
import { type Plugin } from '@dxos/app-framework';
|
|
3
2
|
export declare const RegistryContainer: ({ id, plugins: _plugins }: {
|
|
4
3
|
id: string;
|
|
5
4
|
plugins: Plugin[];
|
|
6
|
-
}) =>
|
|
5
|
+
}) => import("react/jsx-runtime").JSX.Element;
|
|
7
6
|
//# sourceMappingURL=RegistryContainer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RegistryContainer.d.ts","sourceRoot":"","sources":["../../../../src/components/RegistryContainer.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RegistryContainer.d.ts","sourceRoot":"","sources":["../../../../src/components/RegistryContainer.tsx"],"names":[],"mappings":"AAMA,OAAO,EAIL,KAAK,MAAM,EAKZ,MAAM,qBAAqB,CAAC;AAQ7B,eAAO,MAAM,iBAAiB,8BAA+B;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,4CAyD7F,CAAC"}
|
package/dist/types/src/meta.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export declare const REGISTRY_PLUGIN = "dxos.org/plugin/registry";
|
|
2
|
-
export declare const REGISTRY_ID = "dxos:plugin-registry";
|
|
2
|
+
export declare const REGISTRY_ID = "!dxos:plugin-registry";
|
|
3
3
|
export declare const REGISTRY_KEY = "plugin-registry";
|
|
4
4
|
export declare const meta: {
|
|
5
5
|
id: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/meta.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,eAAe,6BAA6B,CAAC;AAG1D,eAAO,MAAM,WAAW,
|
|
1
|
+
{"version":3,"file":"meta.d.ts","sourceRoot":"","sources":["../../../src/meta.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,eAAe,6BAA6B,CAAC;AAG1D,eAAO,MAAM,WAAW,0BAA0B,CAAC;AACnD,eAAO,MAAM,YAAY,oBAAoB,CAAC;AAE9C,eAAO,MAAM,IAAI;;;CAGK,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"translations.d.ts","sourceRoot":"","sources":["../../../src/translations.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"translations.d.ts","sourceRoot":"","sources":["../../../src/translations.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAMA,wBA0BE"}
|
package/package.json
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/plugin-registry",
|
|
3
|
-
"version": "0.7.5-
|
|
3
|
+
"version": "0.7.5-staging.2ff1350",
|
|
4
4
|
"description": "Braneframe plugin gallery",
|
|
5
5
|
"homepage": "https://dxos.org",
|
|
6
6
|
"bugs": "https://github.com/dxos/dxos/issues",
|
|
7
7
|
"license": "MIT",
|
|
8
8
|
"author": "DXOS.org",
|
|
9
9
|
"sideEffects": true,
|
|
10
|
+
"type": "module",
|
|
10
11
|
"exports": {
|
|
11
12
|
".": {
|
|
12
13
|
"types": "./dist/types/src/index.d.ts",
|
|
@@ -22,15 +23,15 @@
|
|
|
22
23
|
"src"
|
|
23
24
|
],
|
|
24
25
|
"dependencies": {
|
|
25
|
-
"@dxos/
|
|
26
|
-
"@dxos/
|
|
27
|
-
"@dxos/
|
|
28
|
-
"@dxos/
|
|
29
|
-
"@dxos/
|
|
30
|
-
"@dxos/
|
|
31
|
-
"@dxos/
|
|
32
|
-
"@dxos/
|
|
33
|
-
"@dxos/
|
|
26
|
+
"@dxos/echo-schema": "0.7.5-staging.2ff1350",
|
|
27
|
+
"@dxos/app-framework": "0.7.5-staging.2ff1350",
|
|
28
|
+
"@dxos/invariant": "0.7.5-staging.2ff1350",
|
|
29
|
+
"@dxos/live-object": "0.7.5-staging.2ff1350",
|
|
30
|
+
"@dxos/plugin-graph": "0.7.5-staging.2ff1350",
|
|
31
|
+
"@dxos/react-ui-form": "0.7.5-staging.2ff1350",
|
|
32
|
+
"@dxos/react-ui-stack": "0.7.5-staging.2ff1350",
|
|
33
|
+
"@dxos/util": "0.7.5-staging.2ff1350",
|
|
34
|
+
"@dxos/plugin-observability": "0.7.5-staging.2ff1350"
|
|
34
35
|
},
|
|
35
36
|
"devDependencies": {
|
|
36
37
|
"@phosphor-icons/react": "^2.1.5",
|
|
@@ -39,17 +40,17 @@
|
|
|
39
40
|
"react": "~18.2.0",
|
|
40
41
|
"react-dom": "~18.2.0",
|
|
41
42
|
"vite": "5.4.7",
|
|
42
|
-
"@dxos/random": "0.7.5-
|
|
43
|
-
"@dxos/react-ui
|
|
44
|
-
"@dxos/react-ui": "0.7.5-
|
|
45
|
-
"@dxos/storybook-utils": "0.7.5-
|
|
43
|
+
"@dxos/random": "0.7.5-staging.2ff1350",
|
|
44
|
+
"@dxos/react-ui": "0.7.5-staging.2ff1350",
|
|
45
|
+
"@dxos/react-ui-theme": "0.7.5-staging.2ff1350",
|
|
46
|
+
"@dxos/storybook-utils": "0.7.5-staging.2ff1350"
|
|
46
47
|
},
|
|
47
48
|
"peerDependencies": {
|
|
48
49
|
"@phosphor-icons/react": "^2.1.5",
|
|
49
50
|
"react": "~18.2.0",
|
|
50
51
|
"react-dom": "~18.2.0",
|
|
51
|
-
"@dxos/react-ui": "0.7.5-
|
|
52
|
-
"@dxos/react-ui
|
|
52
|
+
"@dxos/react-ui-theme": "0.7.5-staging.2ff1350",
|
|
53
|
+
"@dxos/react-ui": "0.7.5-staging.2ff1350"
|
|
53
54
|
},
|
|
54
55
|
"publishConfig": {
|
|
55
56
|
"access": "public"
|
package/src/RegistryPlugin.tsx
CHANGED
|
@@ -17,12 +17,12 @@ export const RegistryPlugin = () =>
|
|
|
17
17
|
}),
|
|
18
18
|
defineModule({
|
|
19
19
|
id: `${meta.id}/module/react-surface`,
|
|
20
|
-
activatesOn: Events.
|
|
20
|
+
activatesOn: Events.SetupReactSurface,
|
|
21
21
|
activate: ReactSurface,
|
|
22
22
|
}),
|
|
23
23
|
defineModule({
|
|
24
24
|
id: `${meta.id}/module/intent-resolver`,
|
|
25
|
-
activatesOn: Events.
|
|
25
|
+
activatesOn: Events.SetupIntentResolver,
|
|
26
26
|
activate: IntentResolver,
|
|
27
27
|
}),
|
|
28
28
|
defineModule({
|
|
@@ -41,9 +41,9 @@ export default (context: PluginsContext) =>
|
|
|
41
41
|
},
|
|
42
42
|
nodes: [
|
|
43
43
|
{
|
|
44
|
-
id: `${REGISTRY_KEY}
|
|
44
|
+
id: `${REGISTRY_KEY}+all`,
|
|
45
45
|
type: 'category',
|
|
46
|
-
data: `${REGISTRY_KEY}
|
|
46
|
+
data: `${REGISTRY_KEY}+all`,
|
|
47
47
|
properties: {
|
|
48
48
|
label: ['all plugins label', { ns: REGISTRY_PLUGIN }],
|
|
49
49
|
icon: 'ph--squares-four--regular',
|
|
@@ -52,9 +52,9 @@ export default (context: PluginsContext) =>
|
|
|
52
52
|
},
|
|
53
53
|
},
|
|
54
54
|
{
|
|
55
|
-
id: `${REGISTRY_KEY}
|
|
55
|
+
id: `${REGISTRY_KEY}+installed`,
|
|
56
56
|
type: 'category',
|
|
57
|
-
data: `${REGISTRY_KEY}
|
|
57
|
+
data: `${REGISTRY_KEY}+installed`,
|
|
58
58
|
properties: {
|
|
59
59
|
label: ['installed plugins label', { ns: REGISTRY_PLUGIN }],
|
|
60
60
|
icon: 'ph--check--regular',
|
|
@@ -63,9 +63,9 @@ export default (context: PluginsContext) =>
|
|
|
63
63
|
},
|
|
64
64
|
},
|
|
65
65
|
{
|
|
66
|
-
id: `${REGISTRY_KEY}
|
|
66
|
+
id: `${REGISTRY_KEY}+recommended`,
|
|
67
67
|
type: 'category',
|
|
68
|
-
data: `${REGISTRY_KEY}
|
|
68
|
+
data: `${REGISTRY_KEY}+recommended`,
|
|
69
69
|
properties: {
|
|
70
70
|
label: ['recommended plugins label', { ns: REGISTRY_PLUGIN }],
|
|
71
71
|
icon: 'ph--star--regular',
|
|
@@ -74,9 +74,9 @@ export default (context: PluginsContext) =>
|
|
|
74
74
|
},
|
|
75
75
|
},
|
|
76
76
|
{
|
|
77
|
-
id: `${REGISTRY_KEY}
|
|
77
|
+
id: `${REGISTRY_KEY}+experimental`,
|
|
78
78
|
type: 'category',
|
|
79
|
-
data: `${REGISTRY_KEY}
|
|
79
|
+
data: `${REGISTRY_KEY}+experimental`,
|
|
80
80
|
properties: {
|
|
81
81
|
label: ['experimental plugins label', { ns: REGISTRY_PLUGIN }],
|
|
82
82
|
icon: 'ph--flask--regular',
|
|
@@ -15,18 +15,18 @@ export default () =>
|
|
|
15
15
|
createSurface({
|
|
16
16
|
id: `${REGISTRY_PLUGIN}/all`,
|
|
17
17
|
role: 'article',
|
|
18
|
-
filter: (data): data is any => data.subject === `${REGISTRY_KEY}
|
|
18
|
+
filter: (data): data is any => data.subject === `${REGISTRY_KEY}+all`,
|
|
19
19
|
component: () => {
|
|
20
20
|
const manager = usePluginManager();
|
|
21
21
|
const filtered = useMemo(() => manager.plugins.filter(({ meta }) => !manager.core.includes(meta.id)), []);
|
|
22
22
|
|
|
23
|
-
return <RegistryContainer id={`${REGISTRY_KEY}
|
|
23
|
+
return <RegistryContainer id={`${REGISTRY_KEY}+all`} plugins={filtered} />;
|
|
24
24
|
},
|
|
25
25
|
}),
|
|
26
26
|
createSurface({
|
|
27
27
|
id: `${REGISTRY_PLUGIN}/installed`,
|
|
28
28
|
role: 'article',
|
|
29
|
-
filter: (data): data is any => data.subject === `${REGISTRY_KEY}
|
|
29
|
+
filter: (data): data is any => data.subject === `${REGISTRY_KEY}+installed`,
|
|
30
30
|
component: () => {
|
|
31
31
|
const manager = usePluginManager();
|
|
32
32
|
const filtered = useMemo(
|
|
@@ -37,13 +37,13 @@ export default () =>
|
|
|
37
37
|
[],
|
|
38
38
|
);
|
|
39
39
|
|
|
40
|
-
return <RegistryContainer id={`${REGISTRY_KEY}
|
|
40
|
+
return <RegistryContainer id={`${REGISTRY_KEY}+installed`} plugins={filtered} />;
|
|
41
41
|
},
|
|
42
42
|
}),
|
|
43
43
|
createSurface({
|
|
44
44
|
id: `${REGISTRY_PLUGIN}/recommended`,
|
|
45
45
|
role: 'article',
|
|
46
|
-
filter: (data): data is any => data.subject === `${REGISTRY_KEY}
|
|
46
|
+
filter: (data): data is any => data.subject === `${REGISTRY_KEY}+recommended`,
|
|
47
47
|
component: () => {
|
|
48
48
|
const manager = usePluginManager();
|
|
49
49
|
const filtered = useMemo(
|
|
@@ -54,18 +54,18 @@ export default () =>
|
|
|
54
54
|
[],
|
|
55
55
|
);
|
|
56
56
|
|
|
57
|
-
return <RegistryContainer id={`${REGISTRY_KEY}
|
|
57
|
+
return <RegistryContainer id={`${REGISTRY_KEY}+recommended`} plugins={filtered} />;
|
|
58
58
|
},
|
|
59
59
|
}),
|
|
60
60
|
createSurface({
|
|
61
61
|
id: `${REGISTRY_PLUGIN}/experimental`,
|
|
62
62
|
role: 'article',
|
|
63
|
-
filter: (data): data is any => data.subject === `${REGISTRY_KEY}
|
|
63
|
+
filter: (data): data is any => data.subject === `${REGISTRY_KEY}+experimental`,
|
|
64
64
|
component: () => {
|
|
65
65
|
const manager = usePluginManager();
|
|
66
66
|
const filtered = useMemo(() => manager.plugins.filter(({ meta }) => meta.tags?.includes('experimental')), []);
|
|
67
67
|
|
|
68
|
-
return <RegistryContainer id={`${REGISTRY_KEY}
|
|
68
|
+
return <RegistryContainer id={`${REGISTRY_KEY}+experimental`} plugins={filtered} />;
|
|
69
69
|
},
|
|
70
70
|
}),
|
|
71
71
|
createSurface({
|
|
@@ -29,7 +29,7 @@ export const PluginDetail = ({ plugin, enabled, onEnable }: PluginDetailProps) =
|
|
|
29
29
|
</Input.Root>
|
|
30
30
|
</div>
|
|
31
31
|
|
|
32
|
-
{screenshots && (
|
|
32
|
+
{screenshots && screenshots.length > 0 && (
|
|
33
33
|
<div role='none'>
|
|
34
34
|
<h1 className='text-lg mb-2'>Preview</h1>
|
|
35
35
|
<img src={screenshots[0]} alt={name} className='aspect-video object-fit' />
|
|
@@ -16,9 +16,18 @@ export type PluginItemProps = {
|
|
|
16
16
|
enabled?: readonly string[];
|
|
17
17
|
onClick?: (id: string) => void;
|
|
18
18
|
onChange?: (id: string, enabled: boolean) => void;
|
|
19
|
+
hasSettings?: (id: string) => boolean;
|
|
20
|
+
onSettings?: (id: string) => void;
|
|
19
21
|
};
|
|
20
22
|
|
|
21
|
-
export const PluginItem = ({
|
|
23
|
+
export const PluginItem = ({
|
|
24
|
+
plugin,
|
|
25
|
+
enabled = [],
|
|
26
|
+
onClick,
|
|
27
|
+
onChange,
|
|
28
|
+
hasSettings: _hasSettings,
|
|
29
|
+
onSettings,
|
|
30
|
+
}: PluginItemProps) => {
|
|
22
31
|
const { t } = useTranslation(REGISTRY_PLUGIN);
|
|
23
32
|
const { id, name, description, homePage, source, icon = 'ph--circle--regular' } = plugin.meta;
|
|
24
33
|
const isEnabled = enabled.includes(id);
|
|
@@ -26,6 +35,7 @@ export const PluginItem = ({ plugin, enabled = [], onClick, onChange }: PluginIt
|
|
|
26
35
|
const labelId = `${id}-label`;
|
|
27
36
|
const descriptionId = `${id}-description`;
|
|
28
37
|
const handleClick = useCallback(() => onClick?.(id), [id, onClick]);
|
|
38
|
+
|
|
29
39
|
const handleChange = useCallback(
|
|
30
40
|
(event: React.MouseEvent) => {
|
|
31
41
|
event.stopPropagation();
|
|
@@ -34,6 +44,9 @@ export const PluginItem = ({ plugin, enabled = [], onClick, onChange }: PluginIt
|
|
|
34
44
|
[id, isEnabled, onChange],
|
|
35
45
|
);
|
|
36
46
|
|
|
47
|
+
const hasSettings = useCallback(() => _hasSettings?.(id) ?? false, [id, _hasSettings]);
|
|
48
|
+
const handleSettings = useCallback(() => onSettings?.(id), [id, onSettings]);
|
|
49
|
+
|
|
37
50
|
return (
|
|
38
51
|
<ListItem.Root
|
|
39
52
|
key={id}
|
|
@@ -56,7 +69,7 @@ export const PluginItem = ({ plugin, enabled = [], onClick, onChange }: PluginIt
|
|
|
56
69
|
|
|
57
70
|
<div />
|
|
58
71
|
{(description || homePage || source) && (
|
|
59
|
-
<div id={descriptionId} className='col-span-2 flex flex-col w-full gap-2 pb-3
|
|
72
|
+
<div id={descriptionId} className='col-span-2 flex flex-col w-full gap-2 pb-3'>
|
|
60
73
|
<div className='grow'>
|
|
61
74
|
<p className={mx(descriptionText, 'line-clamp-3 min-w-0 pie-4')}>{description}</p>
|
|
62
75
|
</div>
|
|
@@ -97,6 +110,16 @@ export const PluginItem = ({ plugin, enabled = [], onClick, onChange }: PluginIt
|
|
|
97
110
|
<Icon icon='ph--arrow-square-out--bold' size={3} classNames='inline-block leading-none mli-1' />
|
|
98
111
|
</Link>
|
|
99
112
|
)}
|
|
113
|
+
|
|
114
|
+
{hasSettings?.() && (
|
|
115
|
+
<Link
|
|
116
|
+
aria-describedby={descriptionId}
|
|
117
|
+
classNames='text-sm text-description cursor-pointer'
|
|
118
|
+
onClick={handleSettings}
|
|
119
|
+
>
|
|
120
|
+
{t('settings label')}
|
|
121
|
+
</Link>
|
|
122
|
+
)}
|
|
100
123
|
</div>
|
|
101
124
|
</div>
|
|
102
125
|
)}
|
|
@@ -2,9 +2,18 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import React, { useMemo } from 'react';
|
|
5
|
+
import React, { useCallback, useMemo } from 'react';
|
|
6
6
|
|
|
7
|
-
import {
|
|
7
|
+
import {
|
|
8
|
+
Capabilities,
|
|
9
|
+
createIntent,
|
|
10
|
+
LayoutAction,
|
|
11
|
+
type Plugin,
|
|
12
|
+
SettingsAction,
|
|
13
|
+
useCapability,
|
|
14
|
+
useIntentDispatcher,
|
|
15
|
+
usePluginManager,
|
|
16
|
+
} from '@dxos/app-framework';
|
|
8
17
|
import { ObservabilityAction } from '@dxos/plugin-observability/types';
|
|
9
18
|
import { StackItem } from '@dxos/react-ui-stack';
|
|
10
19
|
|
|
@@ -16,36 +25,57 @@ export const RegistryContainer = ({ id, plugins: _plugins }: { id: string; plugi
|
|
|
16
25
|
const manager = usePluginManager();
|
|
17
26
|
const { dispatchPromise: dispatch } = useIntentDispatcher();
|
|
18
27
|
const plugins = useMemo(() => _plugins.sort(sortByPluginMeta), [_plugins]);
|
|
28
|
+
const settingsStore = useCapability(Capabilities.SettingsStore);
|
|
19
29
|
|
|
20
30
|
// TODO(wittjosiah): Factor out to an intent?
|
|
21
|
-
const handleChange =
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
31
|
+
const handleChange = useCallback(
|
|
32
|
+
async (id: string, enabled: boolean) => {
|
|
33
|
+
if (enabled) {
|
|
34
|
+
await manager.enable(id);
|
|
35
|
+
} else {
|
|
36
|
+
await manager.disable(id);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
await dispatch(
|
|
40
|
+
createIntent(ObservabilityAction.SendEvent, {
|
|
41
|
+
name: 'plugins.toggle',
|
|
42
|
+
properties: { plugin: id, enabled },
|
|
43
|
+
}),
|
|
44
|
+
);
|
|
45
|
+
},
|
|
46
|
+
[dispatch, manager],
|
|
47
|
+
);
|
|
48
|
+
|
|
49
|
+
const handleClick = useCallback(
|
|
50
|
+
(pluginId: string) =>
|
|
51
|
+
dispatch(
|
|
52
|
+
createIntent(LayoutAction.Open, {
|
|
53
|
+
part: 'main',
|
|
54
|
+
// TODO(wittjosiah): `/` currently is not supported in ids.
|
|
55
|
+
subject: [pluginId.replaceAll('/', ':')],
|
|
56
|
+
options: { pivotId: id, positioning: 'end' },
|
|
57
|
+
}),
|
|
58
|
+
),
|
|
59
|
+
[dispatch, id],
|
|
60
|
+
);
|
|
61
|
+
|
|
62
|
+
const hasSettings = useCallback((pluginId: string) => !!settingsStore.getStore(pluginId), [settingsStore]);
|
|
63
|
+
|
|
64
|
+
const handleSettings = useCallback(
|
|
65
|
+
(pluginId: string) => dispatch(createIntent(SettingsAction.Open, { plugin: pluginId })),
|
|
66
|
+
[dispatch],
|
|
67
|
+
);
|
|
45
68
|
|
|
46
69
|
return (
|
|
47
70
|
<StackItem.Content toolbar={false} role='article' classNames='overflow-x-hidden overflow-y-auto'>
|
|
48
|
-
<PluginList
|
|
71
|
+
<PluginList
|
|
72
|
+
plugins={plugins}
|
|
73
|
+
enabled={manager.enabled}
|
|
74
|
+
onClick={handleClick}
|
|
75
|
+
onChange={handleChange}
|
|
76
|
+
hasSettings={hasSettings}
|
|
77
|
+
onSettings={handleSettings}
|
|
78
|
+
/>
|
|
49
79
|
</StackItem.Content>
|
|
50
80
|
);
|
|
51
81
|
};
|
package/src/meta.ts
CHANGED
|
@@ -7,7 +7,7 @@ import { type PluginMeta } from '@dxos/app-framework';
|
|
|
7
7
|
export const REGISTRY_PLUGIN = 'dxos.org/plugin/registry';
|
|
8
8
|
|
|
9
9
|
// TODO(wittjosiah): Deck does not currently support `/` in ids.
|
|
10
|
-
export const REGISTRY_ID = 'dxos:plugin-registry';
|
|
10
|
+
export const REGISTRY_ID = '!dxos:plugin-registry';
|
|
11
11
|
export const REGISTRY_KEY = 'plugin-registry';
|
|
12
12
|
|
|
13
13
|
export const meta = {
|
package/src/translations.ts
CHANGED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/react-surface.tsx", "../../../src/components/PluginDetail.tsx", "../../../src/components/PluginList.tsx", "../../../src/components/PluginItem.tsx", "../../../src/components/RegistryContainer.tsx"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback, useMemo } from 'react';\n\nimport { Capabilities, contributes, createSurface, Plugin, usePluginManager } from '@dxos/app-framework';\nimport { StackItem } from '@dxos/react-ui-stack';\n\nimport { PluginDetail, RegistryContainer } from '../components';\nimport { REGISTRY_KEY, REGISTRY_PLUGIN } from '../meta';\n\nexport default () =>\n contributes(Capabilities.ReactSurface, [\n createSurface({\n id: `${REGISTRY_PLUGIN}/all`,\n role: 'article',\n filter: (data): data is any => data.subject === `${REGISTRY_KEY}:all`,\n component: () => {\n const manager = usePluginManager();\n const filtered = useMemo(() => manager.plugins.filter(({ meta }) => !manager.core.includes(meta.id)), []);\n\n return <RegistryContainer id={`${REGISTRY_KEY}:all`} plugins={filtered} />;\n },\n }),\n createSurface({\n id: `${REGISTRY_PLUGIN}/installed`,\n role: 'article',\n filter: (data): data is any => data.subject === `${REGISTRY_KEY}:installed`,\n component: () => {\n const manager = usePluginManager();\n const filtered = useMemo(\n () =>\n manager.plugins\n .filter(({ meta }) => !manager.core.includes(meta.id))\n .filter(({ meta }) => manager.enabled.includes(meta.id)),\n [],\n );\n\n return <RegistryContainer id={`${REGISTRY_KEY}:installed`} plugins={filtered} />;\n },\n }),\n createSurface({\n id: `${REGISTRY_PLUGIN}/recommended`,\n role: 'article',\n filter: (data): data is any => data.subject === `${REGISTRY_KEY}:recommended`,\n component: () => {\n const manager = usePluginManager();\n const filtered = useMemo(\n () =>\n manager.plugins\n .filter(({ meta }) => !manager.core.includes(meta.id))\n .filter(({ meta }) => !meta.tags?.includes('experimental')),\n [],\n );\n\n return <RegistryContainer id={`${REGISTRY_KEY}:recommended`} plugins={filtered} />;\n },\n }),\n createSurface({\n id: `${REGISTRY_PLUGIN}/experimental`,\n role: 'article',\n filter: (data): data is any => data.subject === `${REGISTRY_KEY}:experimental`,\n component: () => {\n const manager = usePluginManager();\n const filtered = useMemo(() => manager.plugins.filter(({ meta }) => meta.tags?.includes('experimental')), []);\n\n return <RegistryContainer id={`${REGISTRY_KEY}:experimental`} plugins={filtered} />;\n },\n }),\n createSurface({\n id: `${REGISTRY_PLUGIN}/plugin-details`,\n role: 'article',\n filter: (data): data is { subject: Plugin } => data.subject instanceof Plugin,\n component: ({ data: { subject } }) => {\n const manager = usePluginManager();\n const enabled = manager.enabled.includes(subject.meta.id);\n const handleEnable = useCallback(\n () => (enabled ? manager.disable(subject.meta.id) : manager.enable(subject.meta.id)),\n [manager, subject.meta.id, enabled],\n );\n\n return (\n <StackItem.Content role='article' toolbar={false}>\n <PluginDetail plugin={subject} enabled={enabled} onEnable={handleEnable} />\n </StackItem.Content>\n );\n },\n }),\n ]);\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { Icon, Input, Link, useTranslation } from '@dxos/react-ui';\nimport { DeprecatedFormContainer } from '@dxos/react-ui-form';\n\nimport { REGISTRY_PLUGIN } from '../meta';\n\nexport type PluginDetailProps = {\n plugin: Plugin;\n enabled?: boolean;\n onEnable?: () => void;\n};\n\nexport const PluginDetail = ({ plugin, enabled, onEnable }: PluginDetailProps) => {\n const { t } = useTranslation(REGISTRY_PLUGIN);\n const { id, name, description, homePage, source, screenshots } = plugin.meta;\n\n return (\n <DeprecatedFormContainer classNames='gap-6'>\n <div role='none' className='flex justify-between items-center'>\n <p>{id}</p>\n <Input.Root>\n <Input.Switch classNames='self-center' checked={enabled} onClick={onEnable} />\n </Input.Root>\n </div>\n\n {screenshots && (\n <div role='none'>\n <h1 className='text-lg mb-2'>Preview</h1>\n <img src={screenshots[0]} alt={name} className='aspect-video object-fit' />\n </div>\n )}\n\n <div role='none'>\n <p>{description}</p>\n </div>\n\n <div role='none'>\n <h1 className='text-lg mb-2'>Resources</h1>\n <div className='flex gap-2'>\n {homePage && (\n <Link href={homePage} target='_blank' rel='noreferrer' classNames='text-sm text-description'>\n {t('home page label')}\n <Icon icon='ph--arrow-square-out--bold' size={3} classNames='inline-block leading-none mli-1' />\n </Link>\n )}\n\n {source && (\n <Link href={source} target='_blank' rel='noreferrer' classNames='text-sm text-description'>\n {t('source label')}\n <Icon icon='ph--arrow-square-out--bold' size={3} classNames='inline-block leading-none mli-1' />\n </Link>\n )}\n </div>\n </div>\n </DeprecatedFormContainer>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { List } from '@dxos/react-ui';\n\nimport { PluginItem, type PluginItemProps } from './PluginItem';\n\nexport type PluginListProps = Omit<PluginItemProps, 'plugin'> & {\n plugins?: readonly Plugin[];\n};\n\nexport const PluginList = ({ plugins = [], ...props }: PluginListProps) => {\n return (\n <List classNames='grid grid-cols-[repeat(auto-fill,minmax(280px,1fr))] auto-rows-[10rem] gap-3 p-3 overflow-y-auto scrollbar-thin'>\n {plugins.map((plugin) => (\n <div key={plugin.meta.id} className='flex'>\n <PluginItem plugin={plugin} {...props} />\n </div>\n ))}\n </List>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback } from 'react';\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { Icon, Input, Link, ListItem, useTranslation } from '@dxos/react-ui';\nimport { descriptionText, mx } from '@dxos/react-ui-theme';\n\nimport { REGISTRY_PLUGIN } from '../meta';\n\nexport type PluginItemProps = {\n plugin: Plugin;\n installed?: readonly string[];\n enabled?: readonly string[];\n onClick?: (id: string) => void;\n onChange?: (id: string, enabled: boolean) => void;\n};\n\nexport const PluginItem = ({ plugin, enabled = [], onClick, onChange }: PluginItemProps) => {\n const { t } = useTranslation(REGISTRY_PLUGIN);\n const { id, name, description, homePage, source, icon = 'ph--circle--regular' } = plugin.meta;\n const isEnabled = enabled.includes(id);\n const inputId = `${id}-input`;\n const labelId = `${id}-label`;\n const descriptionId = `${id}-description`;\n const handleClick = useCallback(() => onClick?.(id), [id, onClick]);\n const handleChange = useCallback(\n (event: React.MouseEvent) => {\n event.stopPropagation();\n onChange?.(id, !isEnabled);\n },\n [id, isEnabled, onChange],\n );\n\n return (\n <ListItem.Root\n key={id}\n labelId={labelId}\n data-testid={`pluginList.${id}`}\n aria-describedby={descriptionId}\n classNames='w-full h-full grid grid-cols-[48px_1fr_48px] grid-rows-[40px_1fr] p-1 rounded-md border border-separator'\n >\n <div className='flex grow justify-center items-center'>\n <Icon icon={icon} size={6} onClick={handleClick} classNames='text-subdued cursor-pointer' />\n </div>\n <div className='flex grow items-center truncate cursor-pointer' onClick={handleClick}>\n {name ?? id}\n </div>\n <div className='flex grow justify-center items-center'>\n <Input.Root id={inputId}>\n <Input.Switch classNames='self-center' checked={isEnabled} onClick={handleChange} />\n </Input.Root>\n </div>\n\n <div />\n {(description || homePage || source) && (\n <div id={descriptionId} className='col-span-2 flex flex-col w-full gap-2 pb-3 overflow-y-scroll'>\n <div className='grow'>\n <p className={mx(descriptionText, 'line-clamp-3 min-w-0 pie-4')}>{description}</p>\n </div>\n\n <div className='flex gap-2 items-center'>\n <Link\n aria-describedby={descriptionId}\n classNames='text-sm text-description cursor-pointer'\n onClick={handleClick}\n >\n {t('details label')}\n </Link>\n\n {homePage && (\n <Link\n href={homePage}\n target='_blank'\n rel='noreferrer'\n aria-describedby={descriptionId}\n classNames='text-sm text-description'\n onClick={(ev) => ev.stopPropagation()}\n >\n {t('home page label')}\n <Icon icon='ph--arrow-square-out--bold' size={3} classNames='inline-block leading-none mli-1' />\n </Link>\n )}\n\n {source && (\n <Link\n href={source}\n target='_blank'\n rel='noreferrer'\n aria-describedby={descriptionId}\n classNames='text-sm text-description'\n onClick={(ev) => ev.stopPropagation()}\n >\n {t('source label')}\n <Icon icon='ph--arrow-square-out--bold' size={3} classNames='inline-block leading-none mli-1' />\n </Link>\n )}\n </div>\n </div>\n )}\n </ListItem.Root>\n );\n};\n", "//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useMemo } from 'react';\n\nimport { createIntent, LayoutAction, type Plugin, useIntentDispatcher, usePluginManager } from '@dxos/app-framework';\nimport { ObservabilityAction } from '@dxos/plugin-observability/types';\nimport { StackItem } from '@dxos/react-ui-stack';\n\nimport { PluginList } from './PluginList';\n\nconst sortByPluginMeta = ({ meta: { name: a = '' } }: Plugin, { meta: { name: b = '' } }: Plugin) => a.localeCompare(b);\n\nexport const RegistryContainer = ({ id, plugins: _plugins }: { id: string; plugins: Plugin[] }) => {\n const manager = usePluginManager();\n const { dispatchPromise: dispatch } = useIntentDispatcher();\n const plugins = useMemo(() => _plugins.sort(sortByPluginMeta), [_plugins]);\n\n // TODO(wittjosiah): Factor out to an intent?\n const handleChange = async (id: string, enabled: boolean) => {\n if (enabled) {\n await manager.enable(id);\n } else {\n await manager.disable(id);\n }\n\n await dispatch(\n createIntent(ObservabilityAction.SendEvent, {\n name: 'plugins.toggle',\n properties: { plugin: id, enabled },\n }),\n );\n };\n\n const handleClick = (pluginId: string) =>\n dispatch(\n createIntent(LayoutAction.Open, {\n part: 'main',\n // TODO(wittjosiah): `/` currently is not supported in ids.\n subject: [pluginId.replaceAll('/', ':')],\n options: { pivotId: id, positioning: 'end' },\n }),\n );\n\n return (\n <StackItem.Content toolbar={false} role='article' classNames='overflow-x-hidden overflow-y-auto'>\n <PluginList plugins={plugins} enabled={manager.enabled} onClick={handleClick} onChange={handleChange} />\n </StackItem.Content>\n );\n};\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["React", "useCallback", "useMemo", "Capabilities", "contributes", "createSurface", "Plugin", "usePluginManager", "StackItem", "React", "Icon", "Input", "Link", "useTranslation", "DeprecatedFormContainer", "PluginDetail", "plugin", "enabled", "onEnable", "t", "useTranslation", "REGISTRY_PLUGIN", "id", "name", "description", "homePage", "source", "screenshots", "meta", "DeprecatedFormContainer", "classNames", "div", "role", "className", "p", "Input", "Root", "Switch", "checked", "onClick", "h1", "img", "src", "alt", "Link", "href", "target", "rel", "Icon", "icon", "size", "React", "List", "React", "useCallback", "Icon", "Input", "Link", "ListItem", "useTranslation", "descriptionText", "mx", "PluginItem", "plugin", "enabled", "onClick", "onChange", "t", "useTranslation", "REGISTRY_PLUGIN", "id", "name", "description", "homePage", "source", "icon", "meta", "isEnabled", "includes", "inputId", "labelId", "descriptionId", "handleClick", "useCallback", "handleChange", "event", "stopPropagation", "React", "ListItem", "Root", "key", "data-testid", "aria-describedby", "classNames", "div", "className", "Icon", "size", "Input", "Switch", "checked", "p", "mx", "descriptionText", "Link", "href", "target", "rel", "ev", "PluginList", "plugins", "props", "React", "List", "classNames", "map", "plugin", "div", "key", "meta", "id", "className", "PluginItem", "React", "useMemo", "createIntent", "LayoutAction", "useIntentDispatcher", "usePluginManager", "ObservabilityAction", "StackItem", "sortByPluginMeta", "meta", "name", "a", "b", "localeCompare", "RegistryContainer", "id", "plugins", "_plugins", "manager", "usePluginManager", "dispatchPromise", "dispatch", "useIntentDispatcher", "useMemo", "sort", "handleChange", "enabled", "enable", "disable", "createIntent", "ObservabilityAction", "SendEvent", "properties", "plugin", "handleClick", "pluginId", "LayoutAction", "Open", "part", "subject", "replaceAll", "options", "pivotId", "positioning", "React", "StackItem", "Content", "toolbar", "role", "classNames", "PluginList", "onClick", "onChange", "contributes", "Capabilities", "ReactSurface", "createSurface", "id", "REGISTRY_PLUGIN", "role", "filter", "data", "subject", "REGISTRY_KEY", "component", "manager", "usePluginManager", "filtered", "useMemo", "plugins", "meta", "core", "includes", "React", "RegistryContainer", "enabled", "tags", "Plugin", "handleEnable", "useCallback", "disable", "enable", "StackItem", "Content", "toolbar", "PluginDetail", "plugin", "onEnable"]
|
|
7
|
-
}
|
/package/dist/lib/browser/{intent-resolver-2JQUQJI5.mjs.map → intent-resolver-QW333HWJ.mjs.map}
RENAMED
|
File without changes
|