@dxos/plugin-deck 0.8.4-main.5ad4a44 → 0.8.4-main.66e292d
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-YYP67JHW.mjs → app-graph-builder-D74NTOMK.mjs} +8 -33
- package/dist/lib/browser/app-graph-builder-D74NTOMK.mjs.map +7 -0
- package/dist/lib/browser/{check-app-scheme-GCOL6YDT.mjs → check-app-scheme-HIEVFAAX.mjs} +2 -2
- package/dist/lib/browser/{chunk-HUWUYTOI.mjs → chunk-5KMJPIQC.mjs} +2 -2
- package/dist/lib/browser/{chunk-A4SRCSJX.mjs → chunk-F3VCCHVL.mjs} +5 -3
- package/dist/lib/browser/chunk-F3VCCHVL.mjs.map +7 -0
- package/dist/lib/browser/{chunk-YRDCQS7E.mjs → chunk-QKCGZ45E.mjs} +17 -16
- package/dist/lib/browser/chunk-QKCGZ45E.mjs.map +7 -0
- package/dist/lib/browser/chunk-UXLU6CMW.mjs +16 -0
- package/dist/lib/browser/chunk-UXLU6CMW.mjs.map +7 -0
- package/dist/lib/browser/{chunk-JH4ZCG5I.mjs → chunk-VBYJ664A.mjs} +8 -5
- package/dist/lib/browser/chunk-VBYJ664A.mjs.map +7 -0
- package/dist/lib/browser/{chunk-3SV2V3AN.mjs → chunk-VUJ6UNIJ.mjs} +384 -326
- package/dist/lib/browser/chunk-VUJ6UNIJ.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +7 -6
- package/dist/lib/browser/index.mjs.map +2 -2
- package/dist/lib/browser/{intent-resolver-2NFDKRFG.mjs → intent-resolver-UA4YQGAC.mjs} +6 -6
- package/dist/lib/browser/{intent-resolver-2NFDKRFG.mjs.map → intent-resolver-UA4YQGAC.mjs.map} +2 -2
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-root-JTWYCDJT.mjs → react-root-JAMHKYWN.mjs} +9 -8
- package/dist/lib/browser/react-root-JAMHKYWN.mjs.map +7 -0
- package/dist/lib/browser/{react-surface-PZKJ73JS.mjs → react-surface-6LW337ZT.mjs} +7 -7
- package/dist/lib/browser/{settings-JK7UIZSB.mjs → settings-SDPTOCCM.mjs} +5 -4
- package/dist/lib/browser/{settings-JK7UIZSB.mjs.map → settings-SDPTOCCM.mjs.map} +3 -3
- package/dist/lib/browser/state-7IFAGZQO.mjs +12 -0
- package/dist/lib/browser/toolkit-L5CFXJCF.mjs +52 -0
- package/dist/lib/browser/toolkit-L5CFXJCF.mjs.map +7 -0
- package/dist/lib/browser/types/index.mjs +2 -2
- package/dist/lib/browser/{url-handler-MRYBE3HF.mjs → url-handler-QEYGYE2H.mjs} +4 -4
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/react-root.d.ts.map +1 -1
- package/dist/types/src/capabilities/settings.d.ts.map +1 -1
- package/dist/types/src/capabilities/state.d.ts +3 -0
- package/dist/types/src/capabilities/state.d.ts.map +1 -1
- package/dist/types/src/capabilities/toolkit.d.ts +21 -2
- package/dist/types/src/capabilities/toolkit.d.ts.map +1 -1
- package/dist/types/src/components/DeckLayout/DeckLayout.d.ts +2 -3
- package/dist/types/src/components/DeckLayout/DeckLayout.d.ts.map +1 -1
- package/dist/types/src/components/DeckLayout/DeckLayout.stories.d.ts +74 -0
- package/dist/types/src/components/DeckLayout/DeckLayout.stories.d.ts.map +1 -0
- package/dist/types/src/components/DeckLayout/DeckMain.d.ts +3 -0
- package/dist/types/src/components/DeckLayout/DeckMain.d.ts.map +1 -0
- package/dist/types/src/components/DeckLayout/Popover.d.ts.map +1 -1
- package/dist/types/src/components/DeckLayout/Toast.d.ts +5 -0
- package/dist/types/src/components/DeckLayout/Toast.d.ts.map +1 -1
- package/dist/types/src/components/DeckSettings/DeckSettings.d.ts.map +1 -1
- package/dist/types/src/components/Plank/Plank.d.ts.map +1 -1
- package/dist/types/src/components/Plank/Plank.stories.d.ts +2 -1
- package/dist/types/src/components/Plank/Plank.stories.d.ts.map +1 -1
- package/dist/types/src/components/Plank/PlankControls.d.ts.map +1 -1
- package/dist/types/src/components/Plank/PlankHeading.d.ts.map +1 -1
- package/dist/types/src/components/Sidebar/ComplementarySidebar.d.ts.map +1 -1
- package/dist/types/src/components/Sidebar/SidebarButton.d.ts.map +1 -1
- package/dist/types/src/hooks/useDeckCompanions.d.ts.map +1 -1
- package/dist/types/src/hooks/useHoistStatusbar.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +2 -1
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types/schema.d.ts +1 -0
- package/dist/types/src/types/schema.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +33 -33
- package/src/capabilities/app-graph-builder.ts +22 -22
- package/src/capabilities/intent-resolver.ts +0 -1
- package/src/capabilities/react-root.tsx +2 -1
- package/src/capabilities/settings.ts +1 -0
- package/src/capabilities/state.ts +8 -0
- package/src/capabilities/toolkit.ts +23 -14
- package/src/components/DeckLayout/ActiveNode.tsx +1 -1
- package/src/components/DeckLayout/Banner.tsx +1 -1
- package/src/components/DeckLayout/ContentEmpty.tsx +1 -1
- package/src/components/DeckLayout/DeckLayout.stories.tsx +63 -0
- package/src/components/DeckLayout/DeckLayout.tsx +8 -278
- package/src/components/DeckLayout/DeckMain.tsx +281 -0
- package/src/components/DeckLayout/Dialog.tsx +1 -1
- package/src/components/DeckLayout/Fallback.tsx +1 -1
- package/src/components/DeckLayout/Popover.tsx +4 -13
- package/src/components/DeckLayout/StatusBar.tsx +1 -1
- package/src/components/DeckLayout/Toast.tsx +26 -1
- package/src/components/DeckSettings/DeckSettings.tsx +6 -0
- package/src/components/Plank/Plank.tsx +65 -31
- package/src/components/Plank/PlankControls.tsx +3 -2
- package/src/components/Plank/PlankHeading.tsx +5 -4
- package/src/components/Sidebar/ComplementarySidebar.tsx +31 -11
- package/src/components/Sidebar/Sidebar.tsx +1 -1
- package/src/components/Sidebar/SidebarButton.tsx +10 -9
- package/src/hooks/useCompanions.ts +1 -1
- package/src/hooks/useDeckCompanions.ts +2 -1
- package/src/hooks/useHoistStatusbar.ts +5 -3
- package/src/meta.ts +5 -0
- package/src/translations.ts +2 -1
- package/src/types/schema.ts +2 -0
- package/dist/lib/browser/app-graph-builder-YYP67JHW.mjs.map +0 -7
- package/dist/lib/browser/chunk-3SV2V3AN.mjs.map +0 -7
- package/dist/lib/browser/chunk-A4SRCSJX.mjs.map +0 -7
- package/dist/lib/browser/chunk-JH4ZCG5I.mjs.map +0 -7
- package/dist/lib/browser/chunk-MHP4GPX5.mjs +0 -11
- package/dist/lib/browser/chunk-MHP4GPX5.mjs.map +0 -7
- package/dist/lib/browser/chunk-YRDCQS7E.mjs.map +0 -7
- package/dist/lib/browser/react-root-JTWYCDJT.mjs.map +0 -7
- package/dist/lib/browser/state-IFKFOBBX.mjs +0 -12
- package/dist/lib/browser/toolkit-L7C3UAEU.mjs +0 -63
- package/dist/lib/browser/toolkit-L7C3UAEU.mjs.map +0 -7
- /package/dist/lib/browser/{check-app-scheme-GCOL6YDT.mjs.map → check-app-scheme-HIEVFAAX.mjs.map} +0 -0
- /package/dist/lib/browser/{chunk-HUWUYTOI.mjs.map → chunk-5KMJPIQC.mjs.map} +0 -0
- /package/dist/lib/browser/{react-surface-PZKJ73JS.mjs.map → react-surface-6LW337ZT.mjs.map} +0 -0
- /package/dist/lib/browser/{state-IFKFOBBX.mjs.map → state-7IFAGZQO.mjs.map} +0 -0
- /package/dist/lib/browser/{url-handler-MRYBE3HF.mjs.map → url-handler-QEYGYE2H.mjs.map} +0 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@dxos/plugin-deck",
|
|
3
|
-
"version": "0.8.4-main.
|
|
3
|
+
"version": "0.8.4-main.66e292d",
|
|
4
4
|
"description": "DXOS Surface plugin for the main application layout.",
|
|
5
5
|
"homepage": "https://dxos.org",
|
|
6
6
|
"bugs": "https://github.com/dxos/dxos/issues",
|
|
@@ -40,52 +40,52 @@
|
|
|
40
40
|
"@preact/signals-core": "^1.12.1",
|
|
41
41
|
"@radix-ui/react-context": "1.1.1",
|
|
42
42
|
"immer": "^10.1.1",
|
|
43
|
-
"@dxos/ai": "0.8.4-main.
|
|
44
|
-
"@dxos/assistant": "0.8.4-main.
|
|
45
|
-
"@dxos/
|
|
46
|
-
"@dxos/
|
|
47
|
-
"@dxos/
|
|
48
|
-
"@dxos/echo": "0.8.4-main.
|
|
49
|
-
"@dxos/
|
|
50
|
-
"@dxos/
|
|
51
|
-
"@dxos/
|
|
52
|
-
"@dxos/
|
|
53
|
-
"@dxos/
|
|
54
|
-
"@dxos/
|
|
55
|
-
"@dxos/
|
|
56
|
-
"@dxos/plugin-graph": "0.8.4-main.
|
|
57
|
-
"@dxos/plugin-
|
|
58
|
-
"@dxos/
|
|
59
|
-
"@dxos/
|
|
60
|
-
"@dxos/react-ui-
|
|
61
|
-
"@dxos/
|
|
62
|
-
"@dxos/react-ui-
|
|
63
|
-
"@dxos/react-ui-stack": "0.8.4-main.
|
|
64
|
-
"@dxos/react-ui-
|
|
65
|
-
"@dxos/
|
|
66
|
-
"@dxos/
|
|
43
|
+
"@dxos/ai": "0.8.4-main.66e292d",
|
|
44
|
+
"@dxos/assistant": "0.8.4-main.66e292d",
|
|
45
|
+
"@dxos/async": "0.8.4-main.66e292d",
|
|
46
|
+
"@dxos/blueprints": "0.8.4-main.66e292d",
|
|
47
|
+
"@dxos/app-framework": "0.8.4-main.66e292d",
|
|
48
|
+
"@dxos/echo": "0.8.4-main.66e292d",
|
|
49
|
+
"@dxos/debug": "0.8.4-main.66e292d",
|
|
50
|
+
"@dxos/echo-signals": "0.8.4-main.66e292d",
|
|
51
|
+
"@dxos/keyboard": "0.8.4-main.66e292d",
|
|
52
|
+
"@dxos/live-object": "0.8.4-main.66e292d",
|
|
53
|
+
"@dxos/local-storage": "0.8.4-main.66e292d",
|
|
54
|
+
"@dxos/log": "0.8.4-main.66e292d",
|
|
55
|
+
"@dxos/plugin-attention": "0.8.4-main.66e292d",
|
|
56
|
+
"@dxos/plugin-graph": "0.8.4-main.66e292d",
|
|
57
|
+
"@dxos/plugin-observability": "0.8.4-main.66e292d",
|
|
58
|
+
"@dxos/plugin-theme": "0.8.4-main.66e292d",
|
|
59
|
+
"@dxos/react-client": "0.8.4-main.66e292d",
|
|
60
|
+
"@dxos/react-ui-attention": "0.8.4-main.66e292d",
|
|
61
|
+
"@dxos/invariant": "0.8.4-main.66e292d",
|
|
62
|
+
"@dxos/react-ui-form": "0.8.4-main.66e292d",
|
|
63
|
+
"@dxos/react-ui-stack": "0.8.4-main.66e292d",
|
|
64
|
+
"@dxos/react-ui-tabs": "0.8.4-main.66e292d",
|
|
65
|
+
"@dxos/react-ui-text-tooltip": "0.8.4-main.66e292d",
|
|
66
|
+
"@dxos/util": "0.8.4-main.66e292d"
|
|
67
67
|
},
|
|
68
68
|
"devDependencies": {
|
|
69
|
-
"@effect-
|
|
69
|
+
"@effect-atom/atom-react": "^0.3.4",
|
|
70
70
|
"@effect/platform": "0.92.1",
|
|
71
71
|
"@types/react": "~19.2.2",
|
|
72
|
-
"@types/react-dom": "~19.2.
|
|
72
|
+
"@types/react-dom": "~19.2.2",
|
|
73
73
|
"effect": "3.18.3",
|
|
74
74
|
"react": "~19.2.0",
|
|
75
75
|
"react-dom": "~19.2.0",
|
|
76
76
|
"vite": "7.1.9",
|
|
77
|
-
"@dxos/react-ui": "0.8.4-main.
|
|
78
|
-
"@dxos/
|
|
79
|
-
"@dxos/
|
|
77
|
+
"@dxos/react-ui-theme": "0.8.4-main.66e292d",
|
|
78
|
+
"@dxos/storybook-utils": "0.8.4-main.66e292d",
|
|
79
|
+
"@dxos/react-ui": "0.8.4-main.66e292d"
|
|
80
80
|
},
|
|
81
81
|
"peerDependencies": {
|
|
82
|
-
"@effect-
|
|
82
|
+
"@effect-atom/atom-react": "^0.3.4",
|
|
83
83
|
"@effect/platform": "^0.80.12",
|
|
84
84
|
"effect": "^3.13.3",
|
|
85
85
|
"react": "^19.0.0",
|
|
86
86
|
"react-dom": "^19.0.0",
|
|
87
|
-
"@dxos/react-ui": "0.8.4-main.
|
|
88
|
-
"@dxos/react-ui-theme": "0.8.4-main.
|
|
87
|
+
"@dxos/react-ui": "0.8.4-main.66e292d",
|
|
88
|
+
"@dxos/react-ui-theme": "0.8.4-main.66e292d"
|
|
89
89
|
},
|
|
90
90
|
"publishConfig": {
|
|
91
91
|
"access": "public"
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
// Copyright 2025 DXOS.org
|
|
3
3
|
//
|
|
4
4
|
|
|
5
|
-
import {
|
|
5
|
+
import { Atom } from '@effect-atom/atom-react';
|
|
6
6
|
import * as Function from 'effect/Function';
|
|
7
7
|
import * as Option from 'effect/Option';
|
|
8
8
|
|
|
9
9
|
import { Capabilities, LayoutAction, type PluginContext, contributes, createIntent } from '@dxos/app-framework';
|
|
10
10
|
import { AttentionCapabilities } from '@dxos/plugin-attention';
|
|
11
|
-
import { ROOT_ID,
|
|
11
|
+
import { ROOT_ID, atomFromSignal, createExtension } from '@dxos/plugin-graph';
|
|
12
12
|
|
|
13
13
|
import { meta } from '../meta';
|
|
14
14
|
|
|
@@ -20,7 +20,7 @@ export default (context: PluginContext) =>
|
|
|
20
20
|
createExtension({
|
|
21
21
|
id: meta.id,
|
|
22
22
|
actions: (node) =>
|
|
23
|
-
|
|
23
|
+
Atom.make((get) =>
|
|
24
24
|
Function.pipe(
|
|
25
25
|
get(node),
|
|
26
26
|
Option.flatMap((node) => (node.id === ROOT_ID ? Option.some(node) : Option.none())),
|
|
@@ -29,23 +29,23 @@ export default (context: PluginContext) =>
|
|
|
29
29
|
|
|
30
30
|
// NOTE(Zan): This is currently disabled.
|
|
31
31
|
// TODO(Zan): Fullscreen needs to know the active node and provide that to the layout part.
|
|
32
|
-
const _fullscreen = {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
};
|
|
32
|
+
// const _fullscreen = {
|
|
33
|
+
// id: `${LayoutAction.UpdateLayout._tag}/fullscreen`,
|
|
34
|
+
// data: async () => {
|
|
35
|
+
// const { dispatchPromise: dispatch } = context.getCapability(Capabilities.IntentDispatcher);
|
|
36
|
+
// await dispatch(
|
|
37
|
+
// createIntent(LayoutAction.SetLayoutMode, { part: 'mode', options: { mode: 'fullscreen' } }),
|
|
38
|
+
// );
|
|
39
|
+
// },
|
|
40
|
+
// properties: {
|
|
41
|
+
// label: ['toggle fullscreen label', { ns: meta.id }],
|
|
42
|
+
// icon: 'ph--arrows-out--regular',
|
|
43
|
+
// keyBinding: {
|
|
44
|
+
// macos: 'ctrl+meta+f',
|
|
45
|
+
// windows: 'shift+ctrl+f',
|
|
46
|
+
// },
|
|
47
|
+
// },
|
|
48
|
+
// };
|
|
49
49
|
|
|
50
50
|
const closeCurrent = {
|
|
51
51
|
id: `${LayoutAction.Close._tag}/current`,
|
|
@@ -112,7 +112,7 @@ export default (context: PluginContext) =>
|
|
|
112
112
|
properties: {
|
|
113
113
|
label: [
|
|
114
114
|
get(
|
|
115
|
-
|
|
115
|
+
atomFromSignal(() =>
|
|
116
116
|
state.sidebarState === 'expanded'
|
|
117
117
|
? 'collapse navigation sidebar label'
|
|
118
118
|
: 'open navigation sidebar label',
|
|
@@ -131,7 +131,7 @@ export default (context: PluginContext) =>
|
|
|
131
131
|
};
|
|
132
132
|
|
|
133
133
|
return get(
|
|
134
|
-
|
|
134
|
+
atomFromSignal(() =>
|
|
135
135
|
!state.deck.solo ? [closeCurrent, closeOthers, closeAll, toggleSidebar] : [toggleSidebar],
|
|
136
136
|
),
|
|
137
137
|
);
|
|
@@ -91,7 +91,6 @@ export default (context: PluginContext) =>
|
|
|
91
91
|
Schema.is(LayoutAction.UpdateComplementary.fields.input)(data),
|
|
92
92
|
resolve: ({ subject, options }) => {
|
|
93
93
|
const layout = context.getCapability(DeckCapabilities.MutableDeckState);
|
|
94
|
-
|
|
95
94
|
if (layout.complementarySidebarPanel !== subject) {
|
|
96
95
|
layout.complementarySidebarPanel = subject;
|
|
97
96
|
}
|
|
@@ -4,7 +4,8 @@
|
|
|
4
4
|
|
|
5
5
|
import React, { useCallback } from 'react';
|
|
6
6
|
|
|
7
|
-
import { Capabilities, contributes
|
|
7
|
+
import { Capabilities, contributes } from '@dxos/app-framework';
|
|
8
|
+
import { useCapability } from '@dxos/app-framework/react';
|
|
8
9
|
|
|
9
10
|
import { DeckLayout } from '../components';
|
|
10
11
|
import { meta } from '../meta';
|
|
@@ -30,6 +30,9 @@ const migrateSidebarState = () => {
|
|
|
30
30
|
});
|
|
31
31
|
};
|
|
32
32
|
|
|
33
|
+
/**
|
|
34
|
+
* @deprecated
|
|
35
|
+
*/
|
|
33
36
|
export const DeckStateFactory = () => {
|
|
34
37
|
migrateSidebarState();
|
|
35
38
|
|
|
@@ -69,6 +72,11 @@ export const DeckStateFactory = () => {
|
|
|
69
72
|
.prop({ key: 'activeDeck', type: LocalStorageStore.string() })
|
|
70
73
|
.prop({ key: 'previousDeck', type: LocalStorageStore.string() });
|
|
71
74
|
|
|
75
|
+
// Don't allow fullscreen mode to be persisted to prevent getting stuck in it.
|
|
76
|
+
if (state.values.deck.fullscreen) {
|
|
77
|
+
state.values.deck.fullscreen = false;
|
|
78
|
+
}
|
|
79
|
+
|
|
72
80
|
const layout = live<Capabilities.Layout>({
|
|
73
81
|
get mode() {
|
|
74
82
|
return getMode(state.values.deck);
|
|
@@ -7,14 +7,22 @@ import * as Toolkit from '@effect/ai/Toolkit';
|
|
|
7
7
|
import * as Effect from 'effect/Effect';
|
|
8
8
|
import * as Schema from 'effect/Schema';
|
|
9
9
|
|
|
10
|
-
import {
|
|
10
|
+
import {
|
|
11
|
+
Capabilities,
|
|
12
|
+
type Capability,
|
|
13
|
+
LayoutAction,
|
|
14
|
+
type PluginContext,
|
|
15
|
+
contributes,
|
|
16
|
+
createIntent,
|
|
17
|
+
} from '@dxos/app-framework';
|
|
18
|
+
import { GenericToolkit } from '@dxos/assistant';
|
|
11
19
|
import { ArtifactId } from '@dxos/assistant';
|
|
12
20
|
import { type SpaceId } from '@dxos/keys';
|
|
13
21
|
import { trim } from '@dxos/util';
|
|
14
22
|
|
|
15
23
|
import { DeckCapabilities } from './capabilities';
|
|
16
24
|
|
|
17
|
-
|
|
25
|
+
const Toolkit$ = Toolkit.make(
|
|
18
26
|
Tool.make('open-item', {
|
|
19
27
|
description: trim`
|
|
20
28
|
Opens an item in the application.
|
|
@@ -25,17 +33,19 @@ class DeckToolkit extends Toolkit.make(
|
|
|
25
33
|
success: Schema.Any,
|
|
26
34
|
failure: Schema.Never,
|
|
27
35
|
}),
|
|
28
|
-
)
|
|
29
|
-
|
|
30
|
-
|
|
36
|
+
);
|
|
37
|
+
|
|
38
|
+
export namespace DeckToolkit {
|
|
39
|
+
export const Toolkit = Toolkit$;
|
|
40
|
+
|
|
41
|
+
export const createLayer = (context: PluginContext) =>
|
|
42
|
+
Toolkit$.toLayer({
|
|
31
43
|
'open-item': ({ id }) =>
|
|
32
44
|
Effect.gen(function* () {
|
|
33
45
|
const state = context.getCapability(DeckCapabilities.DeckState);
|
|
34
|
-
const dxn = ArtifactId.toDXN(id, state.activeDeck as SpaceId);
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
const echoDxn = dxn.asEchoDXN();
|
|
38
|
-
if (!echoDxn) {
|
|
46
|
+
const dxn = ArtifactId.toDXN(id, state.activeDeck as SpaceId).asEchoDXN();
|
|
47
|
+
if (!dxn) {
|
|
48
|
+
// TODO(wittjosiah): Support other variants.
|
|
39
49
|
throw new Error(`Invalid object ID: ${id}`);
|
|
40
50
|
}
|
|
41
51
|
|
|
@@ -43,7 +53,7 @@ class DeckToolkit extends Toolkit.make(
|
|
|
43
53
|
const { dispatch } = context.getCapability(Capabilities.IntentDispatcher);
|
|
44
54
|
yield* dispatch(
|
|
45
55
|
createIntent(LayoutAction.Open, {
|
|
46
|
-
subject: [`${
|
|
56
|
+
subject: [`${dxn.spaceId!}:${dxn.echoId}`],
|
|
47
57
|
part: 'main',
|
|
48
58
|
}),
|
|
49
59
|
);
|
|
@@ -51,7 +61,6 @@ class DeckToolkit extends Toolkit.make(
|
|
|
51
61
|
});
|
|
52
62
|
}
|
|
53
63
|
|
|
54
|
-
export default (context: PluginContext) => [
|
|
55
|
-
contributes(Capabilities.Toolkit, DeckToolkit),
|
|
56
|
-
contributes(Capabilities.ToolkitHandler, DeckToolkit.layer(context)),
|
|
64
|
+
export default (context: PluginContext): Capability<any>[] => [
|
|
65
|
+
contributes(Capabilities.Toolkit, GenericToolkit.make(DeckToolkit.Toolkit, DeckToolkit.createLayer(context))),
|
|
57
66
|
];
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
import React from 'react';
|
|
6
6
|
|
|
7
|
-
import { Surface, useAppGraph } from '@dxos/app-framework';
|
|
7
|
+
import { Surface, useAppGraph } from '@dxos/app-framework/react';
|
|
8
8
|
import { useNode } from '@dxos/plugin-graph';
|
|
9
9
|
import { useAttended } from '@dxos/react-ui-attention';
|
|
10
10
|
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
|
|
5
5
|
import React from 'react';
|
|
6
6
|
|
|
7
|
-
import { Surface, useCapability } from '@dxos/app-framework';
|
|
7
|
+
import { Surface, useCapability } from '@dxos/app-framework/react';
|
|
8
8
|
|
|
9
9
|
import { DeckCapabilities } from '../../capabilities';
|
|
10
10
|
import { useBreakpoints } from '../../hooks';
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Copyright 2025 DXOS.org
|
|
3
|
+
//
|
|
4
|
+
|
|
5
|
+
import { type Meta, type StoryObj } from '@storybook/react-vite';
|
|
6
|
+
import React from 'react';
|
|
7
|
+
|
|
8
|
+
import { Events, IntentPlugin, SettingsPlugin, defineModule, definePlugin } from '@dxos/app-framework';
|
|
9
|
+
import { withPluginManager } from '@dxos/app-framework/testing';
|
|
10
|
+
import { AttentionPlugin } from '@dxos/plugin-attention';
|
|
11
|
+
import { GraphPlugin } from '@dxos/plugin-graph';
|
|
12
|
+
import { withTheme } from '@dxos/react-ui/testing';
|
|
13
|
+
|
|
14
|
+
import { DeckStateFactory, LayoutIntentResolver } from '../../capabilities';
|
|
15
|
+
import { meta as pluginMeta } from '../../meta';
|
|
16
|
+
import { translations } from '../../translations';
|
|
17
|
+
|
|
18
|
+
import { DeckLayout } from './DeckLayout';
|
|
19
|
+
|
|
20
|
+
const meta = {
|
|
21
|
+
title: 'plugins/plugin-deck/DeckLayout',
|
|
22
|
+
component: DeckLayout,
|
|
23
|
+
render: (args) => <DeckLayout {...args} />,
|
|
24
|
+
decorators: [
|
|
25
|
+
withTheme,
|
|
26
|
+
withPluginManager({
|
|
27
|
+
plugins: [
|
|
28
|
+
AttentionPlugin(),
|
|
29
|
+
SettingsPlugin(),
|
|
30
|
+
IntentPlugin(),
|
|
31
|
+
GraphPlugin(),
|
|
32
|
+
definePlugin(
|
|
33
|
+
{
|
|
34
|
+
id: 'example.com/plutin/testing',
|
|
35
|
+
name: 'Testing',
|
|
36
|
+
},
|
|
37
|
+
() => [
|
|
38
|
+
defineModule({
|
|
39
|
+
id: `${pluginMeta.id}/module/deck-state`,
|
|
40
|
+
activatesOn: Events.AppGraphReady,
|
|
41
|
+
activate: () => DeckStateFactory(),
|
|
42
|
+
}),
|
|
43
|
+
defineModule({
|
|
44
|
+
id: `${pluginMeta.id}/module/layout-intent-resolver`,
|
|
45
|
+
activatesOn: Events.SetupIntentResolver,
|
|
46
|
+
activate: LayoutIntentResolver,
|
|
47
|
+
}),
|
|
48
|
+
],
|
|
49
|
+
)(),
|
|
50
|
+
],
|
|
51
|
+
}),
|
|
52
|
+
],
|
|
53
|
+
parameters: {
|
|
54
|
+
layout: 'fullscreen',
|
|
55
|
+
translations,
|
|
56
|
+
},
|
|
57
|
+
} satisfies Meta<typeof DeckLayout>;
|
|
58
|
+
|
|
59
|
+
export default meta;
|
|
60
|
+
|
|
61
|
+
type Story = StoryObj<typeof meta>;
|
|
62
|
+
|
|
63
|
+
export const Default: Story = {};
|