@dxos/plugin-registry 0.8.4-main.c1de068 → 0.8.4-main.e098934
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-LKQBQDUA.mjs → app-graph-builder-6JQNRTEQ.mjs} +2 -2
- package/dist/lib/browser/{app-graph-builder-LKQBQDUA.mjs.map → app-graph-builder-6JQNRTEQ.mjs.map} +3 -3
- package/dist/lib/browser/index.mjs +4 -4
- package/dist/lib/browser/index.mjs.map +3 -3
- package/dist/lib/browser/{intent-resolver-W67CIJI3.mjs → intent-resolver-UGDFPMAG.mjs} +2 -2
- package/dist/lib/browser/{intent-resolver-W67CIJI3.mjs.map → intent-resolver-UGDFPMAG.mjs.map} +3 -3
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-surface-3GNB7AOY.mjs → react-surface-YATPY47L.mjs} +14 -12
- package/dist/lib/browser/react-surface-YATPY47L.mjs.map +7 -0
- package/dist/types/src/capabilities/app-graph-builder.d.ts +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +3 -3
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts +1 -1
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
- package/dist/types/src/components/Icon.stories.d.ts +11 -3
- package/dist/types/src/components/Icon.stories.d.ts.map +1 -1
- package/dist/types/src/components/PluginDetail.d.ts.map +1 -1
- package/dist/types/src/components/PluginDetail.stories.d.ts +29 -4
- package/dist/types/src/components/PluginDetail.stories.d.ts.map +1 -1
- package/dist/types/src/components/PluginList.stories.d.ts +33 -7
- package/dist/types/src/components/PluginList.stories.d.ts.map +1 -1
- package/dist/types/src/components/RegistryContainer.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +21 -20
- package/src/RegistryPlugin.tsx +1 -1
- package/src/capabilities/app-graph-builder.ts +1 -1
- package/src/capabilities/intent-resolver.ts +4 -4
- package/src/capabilities/react-surface.tsx +2 -7
- package/src/components/Icon.stories.tsx +8 -6
- package/src/components/PluginDetail.stories.tsx +6 -5
- package/src/components/PluginDetail.tsx +34 -32
- package/src/components/PluginList.stories.tsx +11 -8
- package/src/components/RegistryContainer.tsx +1 -1
- package/dist/lib/browser/react-surface-3GNB7AOY.mjs.map +0 -7
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/plugin-registry",
|
|
3
|
-
"version": "0.8.4-main.
|
|
3
|
+
"version": "0.8.4-main.e098934",
|
|
4
4
|
"description": "Braneframe plugin gallery",
|
|
5
5
|
"homepage": "https://dxos.org",
|
|
6
6
|
"bugs": "https://github.com/dxos/dxos/issues",
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
"type": "module",
|
|
11
11
|
"exports": {
|
|
12
12
|
".": {
|
|
13
|
+
"source": "./src/index.ts",
|
|
13
14
|
"types": "./dist/types/src/index.d.ts",
|
|
14
15
|
"browser": "./dist/lib/browser/index.mjs"
|
|
15
16
|
}
|
|
@@ -24,31 +25,31 @@
|
|
|
24
25
|
],
|
|
25
26
|
"dependencies": {
|
|
26
27
|
"@preact-signals/safe-react": "^0.9.0",
|
|
27
|
-
"@dxos/app-framework": "0.8.4-main.
|
|
28
|
-
"@dxos/echo": "0.8.4-main.
|
|
29
|
-
"@dxos/
|
|
30
|
-
"@dxos/echo
|
|
31
|
-
"@dxos/
|
|
32
|
-
"@dxos/
|
|
33
|
-
"@dxos/react-ui-form": "0.8.4-main.
|
|
34
|
-
"@dxos/
|
|
35
|
-
"@dxos/
|
|
36
|
-
"@dxos/
|
|
28
|
+
"@dxos/app-framework": "0.8.4-main.e098934",
|
|
29
|
+
"@dxos/echo-schema": "0.8.4-main.e098934",
|
|
30
|
+
"@dxos/live-object": "0.8.4-main.e098934",
|
|
31
|
+
"@dxos/echo": "0.8.4-main.e098934",
|
|
32
|
+
"@dxos/invariant": "0.8.4-main.e098934",
|
|
33
|
+
"@dxos/react-ui-stack": "0.8.4-main.e098934",
|
|
34
|
+
"@dxos/react-ui-form": "0.8.4-main.e098934",
|
|
35
|
+
"@dxos/util": "0.8.4-main.e098934",
|
|
36
|
+
"@dxos/plugin-observability": "0.8.4-main.e098934",
|
|
37
|
+
"@dxos/plugin-graph": "0.8.4-main.e098934"
|
|
37
38
|
},
|
|
38
39
|
"devDependencies": {
|
|
39
40
|
"@effect-rx/rx-react": "0.38.0",
|
|
40
|
-
"@effect/platform": "0.
|
|
41
|
+
"@effect/platform": "0.90.2",
|
|
41
42
|
"@phosphor-icons/react": "^2.1.5",
|
|
42
43
|
"@types/react": "~18.2.0",
|
|
43
44
|
"@types/react-dom": "~18.2.0",
|
|
44
|
-
"effect": "3.17.
|
|
45
|
+
"effect": "3.17.7",
|
|
45
46
|
"react": "~18.2.0",
|
|
46
47
|
"react-dom": "~18.2.0",
|
|
47
|
-
"vite": "
|
|
48
|
-
"@dxos/react-ui": "0.8.4-main.
|
|
49
|
-
"@dxos/
|
|
50
|
-
"@dxos/
|
|
51
|
-
"@dxos/
|
|
48
|
+
"vite": "7.1.1",
|
|
49
|
+
"@dxos/react-ui": "0.8.4-main.e098934",
|
|
50
|
+
"@dxos/random": "0.8.4-main.e098934",
|
|
51
|
+
"@dxos/react-ui-theme": "0.8.4-main.e098934",
|
|
52
|
+
"@dxos/storybook-utils": "0.8.4-main.e098934"
|
|
52
53
|
},
|
|
53
54
|
"peerDependencies": {
|
|
54
55
|
"@effect-rx/rx-react": "^0.34.1",
|
|
@@ -56,8 +57,8 @@
|
|
|
56
57
|
"effect": "^3.13.3",
|
|
57
58
|
"react": "~18.2.0",
|
|
58
59
|
"react-dom": "~18.2.0",
|
|
59
|
-
"@dxos/react-ui": "0.8.4-main.
|
|
60
|
-
"@dxos/react-ui-theme": "0.8.4-main.
|
|
60
|
+
"@dxos/react-ui": "0.8.4-main.e098934",
|
|
61
|
+
"@dxos/react-ui-theme": "0.8.4-main.e098934"
|
|
61
62
|
},
|
|
62
63
|
"publishConfig": {
|
|
63
64
|
"access": "public"
|
package/src/RegistryPlugin.tsx
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Copyright 2023 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import { Capabilities, contributes, defineModule, definePlugin
|
|
5
|
+
import { Capabilities, Events, contributes, defineModule, definePlugin } from '@dxos/app-framework';
|
|
6
6
|
|
|
7
7
|
import { AppGraphBuilder, IntentResolver, ReactSurface } from './capabilities';
|
|
8
8
|
import { meta } from './meta';
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
import { Rx } from '@effect-rx/rx-react';
|
|
6
6
|
import { Option, pipe } from 'effect';
|
|
7
7
|
|
|
8
|
-
import { Capabilities,
|
|
8
|
+
import { Capabilities, type PluginContext, SettingsAction, contributes, createIntent } from '@dxos/app-framework';
|
|
9
9
|
import { createExtension } from '@dxos/plugin-graph';
|
|
10
10
|
|
|
11
11
|
import { REGISTRY_ID, REGISTRY_KEY, REGISTRY_PLUGIN } from '../meta';
|
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
//
|
|
4
4
|
|
|
5
5
|
import {
|
|
6
|
-
contributes,
|
|
7
|
-
SettingsAction,
|
|
8
|
-
createResolver,
|
|
9
|
-
LayoutAction,
|
|
10
6
|
Capabilities,
|
|
7
|
+
LayoutAction,
|
|
8
|
+
SettingsAction,
|
|
9
|
+
contributes,
|
|
11
10
|
createIntent,
|
|
11
|
+
createResolver,
|
|
12
12
|
} from '@dxos/app-framework';
|
|
13
13
|
|
|
14
14
|
import { REGISTRY_ID } from '../meta';
|
|
@@ -4,8 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
import React, { useCallback, useMemo } from 'react';
|
|
6
6
|
|
|
7
|
-
import { Capabilities, contributes, createSurface,
|
|
8
|
-
import { StackItem } from '@dxos/react-ui-stack';
|
|
7
|
+
import { Capabilities, Plugin, contributes, createSurface, usePluginManager } from '@dxos/app-framework';
|
|
9
8
|
|
|
10
9
|
import { PluginDetail, RegistryContainer } from '../components';
|
|
11
10
|
import { REGISTRY_KEY, REGISTRY_PLUGIN } from '../meta';
|
|
@@ -80,11 +79,7 @@ export default () =>
|
|
|
80
79
|
[manager, subject.meta.id, enabled],
|
|
81
80
|
);
|
|
82
81
|
|
|
83
|
-
return
|
|
84
|
-
<StackItem.Content>
|
|
85
|
-
<PluginDetail plugin={subject} enabled={enabled} onEnable={handleEnable} />
|
|
86
|
-
</StackItem.Content>
|
|
87
|
-
);
|
|
82
|
+
return <PluginDetail plugin={subject} enabled={enabled} onEnable={handleEnable} />;
|
|
88
83
|
},
|
|
89
84
|
}),
|
|
90
85
|
]);
|
|
@@ -4,9 +4,9 @@
|
|
|
4
4
|
|
|
5
5
|
import '@dxos-theme';
|
|
6
6
|
|
|
7
|
-
import { IconBase, type
|
|
8
|
-
import { type Meta } from '@storybook/react-vite';
|
|
9
|
-
import React, {
|
|
7
|
+
import { IconBase, type IconProps, type IconWeight } from '@phosphor-icons/react';
|
|
8
|
+
import { type Meta, type StoryObj } from '@storybook/react-vite';
|
|
9
|
+
import React, { type ReactElement, type SVGProps, forwardRef } from 'react';
|
|
10
10
|
|
|
11
11
|
import { Icon } from '@dxos/react-ui';
|
|
12
12
|
import { getSize, mx } from '@dxos/react-ui-theme';
|
|
@@ -95,14 +95,16 @@ const DefaultStory = () => {
|
|
|
95
95
|
);
|
|
96
96
|
};
|
|
97
97
|
|
|
98
|
-
export const Default = {};
|
|
98
|
+
export const Default: Story = {};
|
|
99
99
|
|
|
100
|
-
const meta
|
|
100
|
+
const meta = {
|
|
101
101
|
title: 'plugins/plugin-registry/Icon',
|
|
102
102
|
render: DefaultStory,
|
|
103
103
|
parameters: {
|
|
104
104
|
layout: 'centered',
|
|
105
105
|
},
|
|
106
|
-
}
|
|
106
|
+
} satisfies Meta<typeof IconBase>;
|
|
107
107
|
|
|
108
108
|
export default meta;
|
|
109
|
+
|
|
110
|
+
type Story = StoryObj<typeof meta>;
|
|
@@ -4,26 +4,27 @@
|
|
|
4
4
|
|
|
5
5
|
import '@dxos-theme';
|
|
6
6
|
|
|
7
|
-
import { type
|
|
7
|
+
import { type Meta, type StoryObj } from '@storybook/react-vite';
|
|
8
8
|
|
|
9
9
|
import { faker } from '@dxos/random';
|
|
10
10
|
import { withLayout, withTheme } from '@dxos/storybook-utils';
|
|
11
11
|
|
|
12
|
-
import { PluginDetail, type PluginDetailProps } from './PluginDetail';
|
|
13
12
|
import { translations } from '../translations';
|
|
14
13
|
|
|
15
|
-
|
|
14
|
+
import { PluginDetail } from './PluginDetail';
|
|
15
|
+
|
|
16
|
+
const meta = {
|
|
16
17
|
title: 'plugins/plugin-registry/PluginDetail',
|
|
17
18
|
component: PluginDetail,
|
|
18
19
|
decorators: [withTheme, withLayout({ fullscreen: true, classNames: 'justify-center' })],
|
|
19
20
|
parameters: {
|
|
20
21
|
translations,
|
|
21
22
|
},
|
|
22
|
-
}
|
|
23
|
+
} satisfies Meta<typeof PluginDetail>;
|
|
23
24
|
|
|
24
25
|
export default meta;
|
|
25
26
|
|
|
26
|
-
type Story = StoryObj<
|
|
27
|
+
type Story = StoryObj<typeof meta>;
|
|
27
28
|
|
|
28
29
|
export const Default: Story = {
|
|
29
30
|
args: {
|
|
@@ -6,7 +6,7 @@ import React from 'react';
|
|
|
6
6
|
|
|
7
7
|
import { type Plugin } from '@dxos/app-framework';
|
|
8
8
|
import { Icon, Input, Link, useTranslation } from '@dxos/react-ui';
|
|
9
|
-
import {
|
|
9
|
+
import { StackItem } from '@dxos/react-ui-stack';
|
|
10
10
|
|
|
11
11
|
import { REGISTRY_PLUGIN } from '../meta';
|
|
12
12
|
|
|
@@ -21,43 +21,45 @@ export const PluginDetail = ({ plugin, enabled, onEnable }: PluginDetailProps) =
|
|
|
21
21
|
const { id, name, description, homePage, source, screenshots } = plugin.meta;
|
|
22
22
|
|
|
23
23
|
return (
|
|
24
|
-
<
|
|
25
|
-
<div role='none' className='
|
|
26
|
-
<
|
|
27
|
-
|
|
28
|
-
<Input.
|
|
29
|
-
|
|
30
|
-
|
|
24
|
+
<StackItem.Content classNames='block overflow-y-auto'>
|
|
25
|
+
<div role='none' className='container-max-width p-4'>
|
|
26
|
+
<div role='none' className='flex justify-between items-center'>
|
|
27
|
+
<p>{id}</p>
|
|
28
|
+
<Input.Root>
|
|
29
|
+
<Input.Switch classNames='self-center' checked={enabled} onClick={onEnable} />
|
|
30
|
+
</Input.Root>
|
|
31
|
+
</div>
|
|
32
|
+
|
|
33
|
+
{screenshots && screenshots.length > 0 && (
|
|
34
|
+
<div role='none'>
|
|
35
|
+
<h1 className='text-lg mb-2'>Preview</h1>
|
|
36
|
+
<img src={screenshots[0]} alt={name} className='aspect-video object-fit' />
|
|
37
|
+
</div>
|
|
38
|
+
)}
|
|
31
39
|
|
|
32
|
-
{screenshots && screenshots.length > 0 && (
|
|
33
40
|
<div role='none'>
|
|
34
|
-
<
|
|
35
|
-
<img src={screenshots[0]} alt={name} className='aspect-video object-fit' />
|
|
41
|
+
<p>{description}</p>
|
|
36
42
|
</div>
|
|
37
|
-
)}
|
|
38
43
|
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
44
|
+
<div role='none'>
|
|
45
|
+
<h1 className='text-lg mb-2'>Resources</h1>
|
|
46
|
+
<div className='flex gap-2'>
|
|
47
|
+
{homePage && (
|
|
48
|
+
<Link href={homePage} target='_blank' rel='noreferrer' classNames='text-sm text-description'>
|
|
49
|
+
{t('home page label')}
|
|
50
|
+
<Icon icon='ph--arrow-square-out--bold' size={3} classNames='inline-block leading-none mli-1' />
|
|
51
|
+
</Link>
|
|
52
|
+
)}
|
|
42
53
|
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
</Link>
|
|
51
|
-
)}
|
|
52
|
-
|
|
53
|
-
{source && (
|
|
54
|
-
<Link href={source} target='_blank' rel='noreferrer' classNames='text-sm text-description'>
|
|
55
|
-
{t('source label')}
|
|
56
|
-
<Icon icon='ph--arrow-square-out--bold' size={3} classNames='inline-block leading-none mli-1' />
|
|
57
|
-
</Link>
|
|
58
|
-
)}
|
|
54
|
+
{source && (
|
|
55
|
+
<Link href={source} target='_blank' rel='noreferrer' classNames='text-sm text-description'>
|
|
56
|
+
{t('source label')}
|
|
57
|
+
<Icon icon='ph--arrow-square-out--bold' size={3} classNames='inline-block leading-none mli-1' />
|
|
58
|
+
</Link>
|
|
59
|
+
)}
|
|
60
|
+
</div>
|
|
59
61
|
</div>
|
|
60
62
|
</div>
|
|
61
|
-
</
|
|
63
|
+
</StackItem.Content>
|
|
62
64
|
);
|
|
63
65
|
};
|
|
@@ -4,18 +4,19 @@
|
|
|
4
4
|
|
|
5
5
|
import '@dxos-theme';
|
|
6
6
|
|
|
7
|
-
import { type Meta } from '@storybook/react-vite';
|
|
7
|
+
import { type Meta, type StoryObj } from '@storybook/react-vite';
|
|
8
8
|
import React, { useState } from 'react';
|
|
9
9
|
|
|
10
|
-
import {
|
|
10
|
+
import { type Plugin, definePlugin } from '@dxos/app-framework';
|
|
11
11
|
import { faker } from '@dxos/random';
|
|
12
12
|
import { type ThemedClassName } from '@dxos/react-ui';
|
|
13
13
|
import { mx } from '@dxos/react-ui-theme';
|
|
14
|
-
import {
|
|
14
|
+
import { withLayout, withTheme } from '@dxos/storybook-utils';
|
|
15
15
|
|
|
16
|
-
import { PluginList } from './PluginList';
|
|
17
16
|
import { translations } from '../translations';
|
|
18
17
|
|
|
18
|
+
import { PluginList } from './PluginList';
|
|
19
|
+
|
|
19
20
|
faker.seed(1);
|
|
20
21
|
|
|
21
22
|
const icons = [
|
|
@@ -61,7 +62,7 @@ const DefaultStory = ({ classNames }: ThemedClassName<{}>) => {
|
|
|
61
62
|
);
|
|
62
63
|
};
|
|
63
64
|
|
|
64
|
-
const meta
|
|
65
|
+
const meta = {
|
|
65
66
|
title: 'plugins/plugin-registry/PluginList',
|
|
66
67
|
component: PluginList,
|
|
67
68
|
render: DefaultStory,
|
|
@@ -69,13 +70,15 @@ const meta: Meta = {
|
|
|
69
70
|
parameters: {
|
|
70
71
|
translations,
|
|
71
72
|
},
|
|
72
|
-
}
|
|
73
|
+
} satisfies Meta<typeof PluginList>;
|
|
73
74
|
|
|
74
75
|
export default meta;
|
|
75
76
|
|
|
76
|
-
|
|
77
|
+
type Story = StoryObj<typeof meta>;
|
|
78
|
+
|
|
79
|
+
export const Default: Story = {};
|
|
77
80
|
|
|
78
|
-
export const Column = {
|
|
81
|
+
export const Column: Story = {
|
|
79
82
|
args: {
|
|
80
83
|
classNames: 'w-[30rem]',
|
|
81
84
|
},
|
|
@@ -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('labs')),\n [],\n );\n\n return <RegistryContainer id={`${REGISTRY_KEY}+recommended`} plugins={filtered} />;\n },\n }),\n createSurface({\n id: `${REGISTRY_PLUGIN}/labs`,\n role: 'article',\n filter: (data): data is any => data.subject === `${REGISTRY_KEY}+labs`,\n component: () => {\n const manager = usePluginManager();\n const filtered = useMemo(() => manager.plugins.filter(({ meta }) => meta.tags?.includes('labs')), []);\n\n return <RegistryContainer id={`${REGISTRY_KEY}+labs`} 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>\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-[12rem] gap-3 p-3'>\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, { type MouseEvent, useCallback } from 'react';\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { Icon, IconButton, Input, Link, ListItem, Tag, 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, tags, 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: MouseEvent) => {\n event.stopPropagation();\n onChange?.(id, !isEnabled);\n },\n [id, isEnabled, onChange],\n );\n\n const hasSettings = _hasSettings?.(id) ?? false;\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 // TODO(burdon): Use Rail vars.\n classNames='is-full bs-full grid grid-cols-[48px_1fr_48px] grid-rows-[40px_1fr_32px] p-1 border border-separator rounded-md'\n >\n {/* Header. */}\n <div className='flex flex-col grow justify-center items-center'>\n <Icon icon={icon} size={6} onClick={handleClick} classNames='text-subdued cursor-pointer' />\n </div>\n <div className='flex items-center overflow-hidden cursor-pointer' onClick={handleClick}>\n <span className='truncate'>{name ?? id}</span>\n </div>\n <div className='flex 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 {/* Body. */}\n <div />\n {(description || tags) && (\n <div id={descriptionId} className='col-span-2 flex flex-col w-full justify-between gap-2 pb-2'>\n <div className='grow'>\n <p className={mx(descriptionText, 'line-clamp-3 min-w-0 pie-2')}>{description}</p>\n </div>\n {tags && tags.length > 0 && (\n <div>\n {tags.map((tag) => (\n <Tag key={tag} palette={'indigo'} classNames='text-xs capitalize'>\n {tag}\n </Tag>\n ))}\n </div>\n )}\n </div>\n )}\n\n {/* Footer. */}\n <div />\n <div className='flex gap-2 items-center pie-1'>\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 <div className='flex-1' />\n </div>\n <div className='flex justify-center items-center'>\n {hasSettings && (\n <IconButton\n aria-describedby={descriptionId}\n classNames='text-sm text-description cursor-pointer'\n icon='ph--gear--regular'\n label={t('settings label')}\n iconOnly\n size={4}\n onClick={handleSettings}\n />\n )}\n </div>\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: {\n plugin: id,\n enabled,\n },\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 classNames='min-bs-0 overflow-y-auto scrollbar-thin contain-layout'>\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", "IconButton", "Input", "Link", "ListItem", "Tag", "useTranslation", "descriptionText", "mx", "PluginItem", "plugin", "enabled", "onClick", "onChange", "hasSettings", "_hasSettings", "onSettings", "t", "useTranslation", "REGISTRY_PLUGIN", "id", "name", "description", "tags", "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", "span", "Input", "Switch", "checked", "p", "mx", "descriptionText", "length", "map", "tag", "Tag", "palette", "Link", "IconButton", "label", "iconOnly", "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", "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", "PluginDetail", "plugin", "onEnable"]
|
|
7
|
-
}
|