@dxos/plugin-deck 0.7.5-main.9d2a38b → 0.7.5-main.e94eead
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-67VRUD5K.mjs → app-graph-builder-IYHAGFA3.mjs} +61 -31
- package/dist/lib/browser/app-graph-builder-IYHAGFA3.mjs.map +7 -0
- package/dist/lib/browser/{check-app-scheme-GEX6W2R5.mjs → check-app-scheme-S3EYUPMF.mjs} +3 -3
- package/dist/lib/browser/{check-app-scheme-GEX6W2R5.mjs.map → check-app-scheme-S3EYUPMF.mjs.map} +2 -2
- package/dist/lib/browser/{chunk-5VFDMW5M.mjs → chunk-22AQ5IVX.mjs} +2 -2
- package/dist/lib/browser/chunk-22AQ5IVX.mjs.map +7 -0
- package/dist/lib/browser/chunk-FT33W5CI.mjs +128 -0
- package/dist/lib/browser/chunk-FT33W5CI.mjs.map +7 -0
- package/dist/lib/browser/chunk-G2X3ZDCE.mjs +24 -0
- package/dist/lib/browser/chunk-G2X3ZDCE.mjs.map +7 -0
- package/dist/lib/browser/chunk-KANJBSIX.mjs +97 -0
- package/dist/lib/browser/chunk-KANJBSIX.mjs.map +7 -0
- package/dist/lib/browser/{chunk-JQJ5UWVB.mjs → chunk-N7TEPFVR.mjs} +3 -2
- package/dist/lib/browser/{chunk-JQJ5UWVB.mjs.map → chunk-N7TEPFVR.mjs.map} +3 -3
- package/dist/lib/browser/chunk-O4RFYYQ6.mjs +1114 -0
- package/dist/lib/browser/chunk-O4RFYYQ6.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +45 -78
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/intent-resolver-ZD67BRUI.mjs +488 -0
- package/dist/lib/browser/intent-resolver-ZD67BRUI.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-root-UL7ZDRVZ.mjs → react-root-6ILKHD5J.mjs} +12 -17
- package/dist/lib/browser/react-root-6ILKHD5J.mjs.map +7 -0
- package/dist/lib/browser/react-surface-O75FKXAI.mjs +39 -0
- package/dist/lib/browser/react-surface-O75FKXAI.mjs.map +7 -0
- package/dist/lib/browser/{settings-FNWW6WIJ.mjs → settings-H35U6NHE.mjs} +6 -7
- package/dist/lib/browser/settings-H35U6NHE.mjs.map +7 -0
- package/dist/lib/browser/state-U4SHOPJW.mjs +129 -0
- package/dist/lib/browser/state-U4SHOPJW.mjs.map +7 -0
- package/dist/lib/browser/tools-64LXGLYR.mjs +59 -0
- package/dist/lib/browser/tools-64LXGLYR.mjs.map +7 -0
- package/dist/lib/browser/types.mjs +16 -4
- package/dist/lib/browser/url-handler-MVHTKUYA.mjs +72 -0
- package/dist/lib/browser/url-handler-MVHTKUYA.mjs.map +7 -0
- package/dist/types/src/DeckPlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/app-graph-builder.d.ts +181 -0
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -0
- package/dist/types/src/capabilities/capabilities.d.ts +137 -8
- package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
- package/dist/types/src/capabilities/check-app-scheme.d.ts.map +1 -0
- package/dist/types/src/capabilities/index.d.ts +188 -3
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-root.d.ts.map +1 -0
- package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
- package/dist/types/src/capabilities/settings.d.ts.map +1 -0
- package/dist/types/src/capabilities/state.d.ts +79 -0
- package/dist/types/src/capabilities/state.d.ts.map +1 -0
- package/dist/types/src/capabilities/tools.d.ts +10 -0
- package/dist/types/src/capabilities/tools.d.ts.map +1 -0
- package/dist/types/src/capabilities/url-handler.d.ts.map +1 -0
- package/dist/types/src/components/DeckLayout/ActiveNode.d.ts +1 -2
- package/dist/types/src/components/DeckLayout/ActiveNode.d.ts.map +1 -1
- package/dist/types/src/components/DeckLayout/Banner.d.ts +1 -2
- package/dist/types/src/components/DeckLayout/Banner.d.ts.map +1 -1
- package/dist/types/src/components/DeckLayout/ComplementarySidebar.d.ts +1 -4
- package/dist/types/src/components/DeckLayout/ComplementarySidebar.d.ts.map +1 -1
- package/dist/types/src/components/DeckLayout/ContentEmpty.d.ts +1 -2
- package/dist/types/src/components/DeckLayout/ContentEmpty.d.ts.map +1 -1
- package/dist/types/src/components/DeckLayout/DeckLayout.d.ts +2 -7
- package/dist/types/src/components/DeckLayout/DeckLayout.d.ts.map +1 -1
- package/dist/types/src/components/DeckLayout/Fallback.d.ts +1 -2
- package/dist/types/src/components/DeckLayout/Fallback.d.ts.map +1 -1
- package/dist/types/src/components/DeckLayout/Fullscreen.d.ts +1 -2
- package/dist/types/src/components/DeckLayout/Fullscreen.d.ts.map +1 -1
- package/dist/types/src/components/DeckLayout/NodePlankHeading.d.ts +3 -3
- package/dist/types/src/components/DeckLayout/NodePlankHeading.d.ts.map +1 -1
- package/dist/types/src/components/DeckLayout/Plank.d.ts +8 -6
- package/dist/types/src/components/DeckLayout/Plank.d.ts.map +1 -1
- package/dist/types/src/components/DeckLayout/PlankControls.d.ts +2 -2
- package/dist/types/src/components/DeckLayout/PlankControls.d.ts.map +1 -1
- package/dist/types/src/components/DeckLayout/PlankError.d.ts +6 -6
- package/dist/types/src/components/DeckLayout/PlankError.d.ts.map +1 -1
- package/dist/types/src/components/DeckLayout/PlankLoading.d.ts +1 -2
- package/dist/types/src/components/DeckLayout/PlankLoading.d.ts.map +1 -1
- package/dist/types/src/components/DeckLayout/Sidebar.d.ts +1 -2
- package/dist/types/src/components/DeckLayout/Sidebar.d.ts.map +1 -1
- package/dist/types/src/components/DeckLayout/SidebarButton.d.ts +6 -5
- package/dist/types/src/components/DeckLayout/SidebarButton.d.ts.map +1 -1
- package/dist/types/src/components/DeckLayout/StatusBar.d.ts +1 -2
- package/dist/types/src/components/DeckLayout/StatusBar.d.ts.map +1 -1
- package/dist/types/src/components/DeckLayout/Toast.d.ts +2 -3
- package/dist/types/src/components/DeckLayout/Toast.d.ts.map +1 -1
- package/dist/types/src/components/DeckLayout/Topbar.d.ts +1 -2
- package/dist/types/src/components/DeckLayout/Topbar.d.ts.map +1 -1
- package/dist/types/src/components/LayoutSettings.d.ts +1 -2
- package/dist/types/src/components/LayoutSettings.d.ts.map +1 -1
- package/dist/types/src/components/fragments.d.ts +2 -0
- package/dist/types/src/components/fragments.d.ts.map +1 -1
- package/dist/types/src/components/index.d.ts +0 -2
- package/dist/types/src/components/index.d.ts.map +1 -1
- package/dist/types/src/events.d.ts +1 -0
- package/dist/types/src/events.d.ts.map +1 -1
- package/dist/types/src/hooks/useMainSize.d.ts +2 -2
- package/dist/types/src/hooks/useNode.d.ts.map +1 -1
- package/dist/types/src/layout.d.ts +5 -19
- package/dist/types/src/layout.d.ts.map +1 -1
- package/dist/types/src/meta.d.ts +1 -0
- package/dist/types/src/meta.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +3 -3
- package/dist/types/src/types.d.ts +117 -2
- package/dist/types/src/types.d.ts.map +1 -1
- package/dist/types/src/util/index.d.ts +3 -1
- package/dist/types/src/util/index.d.ts.map +1 -1
- package/dist/types/src/util/layoutAppliesTopbar.d.ts +2 -0
- package/dist/types/src/util/layoutAppliesTopbar.d.ts.map +1 -0
- package/dist/types/src/util/set-active.d.ts +9 -0
- package/dist/types/src/util/set-active.d.ts.map +1 -0
- package/dist/types/src/util/useHoistStatusbar.d.ts.map +1 -1
- package/package.json +32 -31
- package/src/DeckPlugin.ts +23 -59
- package/src/capabilities/{layout/app-graph-builder.ts → app-graph-builder.ts} +40 -28
- package/src/capabilities/capabilities.ts +5 -7
- package/src/capabilities/{navigation/check-app-scheme.ts → check-app-scheme.ts} +2 -2
- package/src/capabilities/index.ts +12 -3
- package/src/capabilities/intent-resolver.ts +368 -0
- package/src/capabilities/{layout/react-root.tsx → react-root.tsx} +8 -14
- package/src/capabilities/react-surface.tsx +31 -0
- package/src/capabilities/{settings/settings.ts → settings.ts} +4 -5
- package/src/capabilities/state.ts +108 -0
- package/src/capabilities/tools.ts +66 -0
- package/src/capabilities/url-handler.ts +65 -0
- package/src/components/DeckLayout/ActiveNode.tsx +2 -3
- package/src/components/DeckLayout/ComplementarySidebar.tsx +185 -77
- package/src/components/DeckLayout/ContentEmpty.tsx +7 -10
- package/src/components/DeckLayout/DeckLayout.tsx +141 -84
- package/src/components/DeckLayout/Fullscreen.tsx +2 -3
- package/src/components/DeckLayout/NodePlankHeading.tsx +57 -65
- package/src/components/DeckLayout/Plank.tsx +33 -41
- package/src/components/DeckLayout/PlankControls.tsx +12 -11
- package/src/components/DeckLayout/PlankError.tsx +6 -5
- package/src/components/DeckLayout/Sidebar.tsx +17 -20
- package/src/components/DeckLayout/SidebarButton.tsx +25 -31
- package/src/components/DeckLayout/StatusBar.tsx +5 -11
- package/src/components/DeckLayout/Toast.tsx +2 -2
- package/src/components/LayoutSettings.tsx +8 -8
- package/src/components/fragments.ts +8 -0
- package/src/components/index.ts +0 -2
- package/src/events.ts +1 -0
- package/src/hooks/useMainSize.ts +3 -3
- package/src/hooks/useNode.ts +3 -1
- package/src/layout.ts +43 -212
- package/src/meta.ts +1 -0
- package/src/translations.ts +8 -8
- package/src/types.ts +103 -4
- package/src/util/index.ts +3 -1
- package/src/util/layoutAppliesTopbar.ts +7 -0
- package/src/util/set-active.ts +47 -0
- package/src/util/useHoistStatusbar.ts +13 -8
- package/dist/lib/browser/app-graph-builder-67VRUD5K.mjs.map +0 -7
- package/dist/lib/browser/chunk-2M4PXYNB.mjs +0 -1052
- package/dist/lib/browser/chunk-2M4PXYNB.mjs.map +0 -7
- package/dist/lib/browser/chunk-2PJNBVCY.mjs +0 -39
- package/dist/lib/browser/chunk-2PJNBVCY.mjs.map +0 -7
- package/dist/lib/browser/chunk-4C2AFTET.mjs +0 -186
- package/dist/lib/browser/chunk-4C2AFTET.mjs.map +0 -7
- package/dist/lib/browser/chunk-5VFDMW5M.mjs.map +0 -7
- package/dist/lib/browser/chunk-KY5WXIXY.mjs +0 -44
- package/dist/lib/browser/chunk-KY5WXIXY.mjs.map +0 -7
- package/dist/lib/browser/deck-PLCSKPGL.mjs +0 -26
- package/dist/lib/browser/deck-PLCSKPGL.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-FVOQSTBX.mjs +0 -152
- package/dist/lib/browser/intent-resolver-FVOQSTBX.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-K7GW4A2I.mjs +0 -249
- package/dist/lib/browser/intent-resolver-K7GW4A2I.mjs.map +0 -7
- package/dist/lib/browser/location-QHRBQBQN.mjs +0 -35
- package/dist/lib/browser/location-QHRBQBQN.mjs.map +0 -7
- package/dist/lib/browser/react-context-3BDW7W2N.mjs +0 -32
- package/dist/lib/browser/react-context-3BDW7W2N.mjs.map +0 -7
- package/dist/lib/browser/react-root-UL7ZDRVZ.mjs.map +0 -7
- package/dist/lib/browser/react-surface-VPNOGGNN.mjs +0 -28
- package/dist/lib/browser/react-surface-VPNOGGNN.mjs.map +0 -7
- package/dist/lib/browser/settings-FNWW6WIJ.mjs.map +0 -7
- package/dist/lib/browser/state-7I5BD7SE.mjs +0 -34
- package/dist/lib/browser/state-7I5BD7SE.mjs.map +0 -7
- package/dist/lib/browser/url-handler-Z5B7LD3N.mjs +0 -76
- package/dist/lib/browser/url-handler-Z5B7LD3N.mjs.map +0 -7
- package/dist/types/src/capabilities/layout/app-graph-builder.d.ts +0 -181
- package/dist/types/src/capabilities/layout/app-graph-builder.d.ts.map +0 -1
- package/dist/types/src/capabilities/layout/deck.d.ts +0 -4
- package/dist/types/src/capabilities/layout/deck.d.ts.map +0 -1
- package/dist/types/src/capabilities/layout/index.d.ts +0 -229
- package/dist/types/src/capabilities/layout/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/layout/intent-resolver.d.ts.map +0 -1
- package/dist/types/src/capabilities/layout/react-context.d.ts +0 -8
- package/dist/types/src/capabilities/layout/react-context.d.ts.map +0 -1
- package/dist/types/src/capabilities/layout/react-root.d.ts.map +0 -1
- package/dist/types/src/capabilities/layout/state.d.ts +0 -42
- package/dist/types/src/capabilities/layout/state.d.ts.map +0 -1
- package/dist/types/src/capabilities/navigation/check-app-scheme.d.ts.map +0 -1
- package/dist/types/src/capabilities/navigation/index.d.ts +0 -5
- package/dist/types/src/capabilities/navigation/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/navigation/intent-resolver.d.ts +0 -4
- package/dist/types/src/capabilities/navigation/intent-resolver.d.ts.map +0 -1
- package/dist/types/src/capabilities/navigation/location.d.ts +0 -4
- package/dist/types/src/capabilities/navigation/location.d.ts.map +0 -1
- package/dist/types/src/capabilities/navigation/set-location.d.ts +0 -10
- package/dist/types/src/capabilities/navigation/set-location.d.ts.map +0 -1
- package/dist/types/src/capabilities/navigation/url-handler.d.ts.map +0 -1
- package/dist/types/src/capabilities/settings/index.d.ts +0 -3
- package/dist/types/src/capabilities/settings/index.d.ts.map +0 -1
- package/dist/types/src/capabilities/settings/react-surface.d.ts.map +0 -1
- package/dist/types/src/capabilities/settings/settings.d.ts.map +0 -1
- package/dist/types/src/components/DeckContext.d.ts +0 -11
- package/dist/types/src/components/DeckContext.d.ts.map +0 -1
- package/dist/types/src/components/LayoutContext.d.ts +0 -5
- package/dist/types/src/components/LayoutContext.d.ts.map +0 -1
- package/dist/types/src/layout.test.d.ts +0 -2
- package/dist/types/src/layout.test.d.ts.map +0 -1
- package/dist/types/src/util/layout-parts.d.ts +0 -7
- package/dist/types/src/util/layout-parts.d.ts.map +0 -1
- package/src/capabilities/layout/deck.ts +0 -25
- package/src/capabilities/layout/index.ts +0 -12
- package/src/capabilities/layout/intent-resolver.ts +0 -128
- package/src/capabilities/layout/react-context.tsx +0 -26
- package/src/capabilities/layout/state.ts +0 -32
- package/src/capabilities/navigation/index.ts +0 -10
- package/src/capabilities/navigation/intent-resolver.ts +0 -216
- package/src/capabilities/navigation/location.ts +0 -28
- package/src/capabilities/navigation/set-location.ts +0 -38
- package/src/capabilities/navigation/url-handler.ts +0 -67
- package/src/capabilities/settings/index.ts +0 -8
- package/src/capabilities/settings/react-surface.tsx +0 -23
- package/src/components/DeckContext.ts +0 -19
- package/src/components/LayoutContext.ts +0 -12
- package/src/layout.test.ts +0 -380
- package/src/util/layout-parts.ts +0 -12
- /package/dist/types/src/capabilities/{navigation/check-app-scheme.d.ts → check-app-scheme.d.ts} +0 -0
- /package/dist/types/src/capabilities/{layout/intent-resolver.d.ts → intent-resolver.d.ts} +0 -0
- /package/dist/types/src/capabilities/{layout/react-root.d.ts → react-root.d.ts} +0 -0
- /package/dist/types/src/capabilities/{settings/react-surface.d.ts → react-surface.d.ts} +0 -0
- /package/dist/types/src/capabilities/{settings/settings.d.ts → settings.d.ts} +0 -0
- /package/dist/types/src/capabilities/{navigation/url-handler.d.ts → url-handler.d.ts} +0 -0
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
DeckCapabilities
|
|
3
|
-
} from "./chunk-5VFDMW5M.mjs";
|
|
4
|
-
import "./chunk-JQJ5UWVB.mjs";
|
|
5
|
-
|
|
6
|
-
// packages/plugins/plugin-deck/src/capabilities/layout/deck.ts
|
|
7
|
-
import { contributes } from "@dxos/app-framework";
|
|
8
|
-
import { LocalStorageStore } from "@dxos/local-storage";
|
|
9
|
-
var DECK_KEY = "dxos.org/settings/deck";
|
|
10
|
-
var deck_default = () => {
|
|
11
|
-
const deck = new LocalStorageStore(DECK_KEY, {
|
|
12
|
-
plankSizing: {},
|
|
13
|
-
currentUndoId: void 0,
|
|
14
|
-
// TODO(Zan): Cap depth!
|
|
15
|
-
layoutModeHistory: []
|
|
16
|
-
});
|
|
17
|
-
deck.prop({
|
|
18
|
-
key: "plankSizing",
|
|
19
|
-
type: LocalStorageStore.json()
|
|
20
|
-
});
|
|
21
|
-
return contributes(DeckCapabilities.DeckState, deck.values, () => deck.close());
|
|
22
|
-
};
|
|
23
|
-
export {
|
|
24
|
-
deck_default as default
|
|
25
|
-
};
|
|
26
|
-
//# sourceMappingURL=deck-PLCSKPGL.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/layout/deck.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { contributes } from '@dxos/app-framework';\nimport { LocalStorageStore } from '@dxos/local-storage';\n\nimport { type DeckContextType } from '../../components';\nimport { DeckCapabilities } from '../capabilities';\n\n// NOTE: The key is this currently for backwards compatibility of storage.\nconst DECK_KEY = 'dxos.org/settings/deck';\n\nexport default () => {\n const deck = new LocalStorageStore<DeckContextType>(DECK_KEY, {\n plankSizing: {},\n currentUndoId: undefined,\n // TODO(Zan): Cap depth!\n layoutModeHistory: [],\n });\n\n deck.prop({ key: 'plankSizing', type: LocalStorageStore.json<Record<string, number>>() });\n\n return contributes(DeckCapabilities.DeckState, deck.values, () => deck.close());\n};\n"],
|
|
5
|
-
"mappings": ";;;;;;AAIA,SAASA,mBAAmB;AAC5B,SAASC,yBAAyB;AAMlC,IAAMC,WAAW;AAEjB,IAAA,eAAe,MAAA;AACb,QAAMC,OAAO,IAAIC,kBAAmCF,UAAU;IAC5DG,aAAa,CAAC;IACdC,eAAeC;;IAEfC,mBAAmB,CAAA;EACrB,CAAA;AAEAL,OAAKM,KAAK;IAAEC,KAAK;IAAeC,MAAMP,kBAAkBQ,KAAI;EAA2B,CAAA;AAEvF,SAAOC,YAAYC,iBAAiBC,WAAWZ,KAAKa,QAAQ,MAAMb,KAAKc,MAAK,CAAA;AAC9E;",
|
|
6
|
-
"names": ["contributes", "LocalStorageStore", "DECK_KEY", "deck", "LocalStorageStore", "plankSizing", "currentUndoId", "undefined", "layoutModeHistory", "prop", "key", "type", "json", "contributes", "DeckCapabilities", "DeckState", "values", "close"]
|
|
7
|
-
}
|
|
@@ -1,152 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
DeckAction
|
|
3
|
-
} from "./chunk-KY5WXIXY.mjs";
|
|
4
|
-
import {
|
|
5
|
-
DeckCapabilities
|
|
6
|
-
} from "./chunk-5VFDMW5M.mjs";
|
|
7
|
-
import {
|
|
8
|
-
DECK_PLUGIN
|
|
9
|
-
} from "./chunk-JQJ5UWVB.mjs";
|
|
10
|
-
|
|
11
|
-
// packages/plugins/plugin-deck/src/capabilities/layout/intent-resolver.ts
|
|
12
|
-
import { batch } from "@preact/signals-core";
|
|
13
|
-
import { Capabilities, createResolver, contributes, IntentAction, LayoutAction, openIds, Toast as ToastSchema } from "@dxos/app-framework";
|
|
14
|
-
import { S } from "@dxos/echo-schema";
|
|
15
|
-
import { log } from "@dxos/log";
|
|
16
|
-
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-deck/src/capabilities/layout/intent-resolver.ts";
|
|
17
|
-
var intent_resolver_default = (context) => contributes(Capabilities.IntentResolver, [
|
|
18
|
-
createResolver(DeckAction.UpdatePlankSize, (data) => {
|
|
19
|
-
const deck = context.requestCapability(DeckCapabilities.MutableDeckState);
|
|
20
|
-
deck.plankSizing[data.id] = data.size;
|
|
21
|
-
}),
|
|
22
|
-
createResolver(IntentAction.ShowUndo, (data) => {
|
|
23
|
-
const deck = context.requestCapability(DeckCapabilities.MutableDeckState);
|
|
24
|
-
const layout = context.requestCapability(Capabilities.MutableLayout);
|
|
25
|
-
const { undoPromise: undo } = context.requestCapability(Capabilities.IntentDispatcher);
|
|
26
|
-
if (deck.currentUndoId) {
|
|
27
|
-
layout.toasts = layout.toasts.filter((toast) => toast.id !== deck.currentUndoId);
|
|
28
|
-
}
|
|
29
|
-
deck.currentUndoId = `${IntentAction.ShowUndo._tag}-${Date.now()}`;
|
|
30
|
-
layout.toasts = [
|
|
31
|
-
...layout.toasts,
|
|
32
|
-
{
|
|
33
|
-
id: deck.currentUndoId,
|
|
34
|
-
title: data.message ?? [
|
|
35
|
-
"undo available label",
|
|
36
|
-
{
|
|
37
|
-
ns: DECK_PLUGIN
|
|
38
|
-
}
|
|
39
|
-
],
|
|
40
|
-
duration: 1e4,
|
|
41
|
-
actionLabel: [
|
|
42
|
-
"undo action label",
|
|
43
|
-
{
|
|
44
|
-
ns: DECK_PLUGIN
|
|
45
|
-
}
|
|
46
|
-
],
|
|
47
|
-
actionAlt: [
|
|
48
|
-
"undo action alt",
|
|
49
|
-
{
|
|
50
|
-
ns: DECK_PLUGIN
|
|
51
|
-
}
|
|
52
|
-
],
|
|
53
|
-
closeLabel: [
|
|
54
|
-
"undo close label",
|
|
55
|
-
{
|
|
56
|
-
ns: DECK_PLUGIN
|
|
57
|
-
}
|
|
58
|
-
],
|
|
59
|
-
onAction: () => undo()
|
|
60
|
-
}
|
|
61
|
-
];
|
|
62
|
-
}),
|
|
63
|
-
createResolver(LayoutAction.SetLayout, ({ element, state, component, subject, anchorId, dialogBlockAlign, dialogType }) => {
|
|
64
|
-
const layout = context.requestCapability(Capabilities.MutableLayout);
|
|
65
|
-
switch (element) {
|
|
66
|
-
case "sidebar": {
|
|
67
|
-
layout.sidebarOpen = state ?? !layout.sidebarOpen;
|
|
68
|
-
break;
|
|
69
|
-
}
|
|
70
|
-
case "complementary": {
|
|
71
|
-
layout.complementarySidebarOpen = !!state;
|
|
72
|
-
break;
|
|
73
|
-
}
|
|
74
|
-
case "dialog": {
|
|
75
|
-
layout.dialogOpen = state ?? Boolean(component);
|
|
76
|
-
layout.dialogContent = component ? {
|
|
77
|
-
component,
|
|
78
|
-
subject
|
|
79
|
-
} : null;
|
|
80
|
-
layout.dialogBlockAlign = dialogBlockAlign ?? "center";
|
|
81
|
-
layout.dialogType = dialogType;
|
|
82
|
-
break;
|
|
83
|
-
}
|
|
84
|
-
case "popover": {
|
|
85
|
-
layout.popoverOpen = state ?? Boolean(component);
|
|
86
|
-
layout.popoverContent = component ? {
|
|
87
|
-
component,
|
|
88
|
-
subject
|
|
89
|
-
} : null;
|
|
90
|
-
layout.popoverAnchorId = anchorId;
|
|
91
|
-
break;
|
|
92
|
-
}
|
|
93
|
-
case "toast": {
|
|
94
|
-
if (S.is(ToastSchema)(subject)) {
|
|
95
|
-
layout.toasts = [
|
|
96
|
-
...layout.toasts,
|
|
97
|
-
subject
|
|
98
|
-
];
|
|
99
|
-
}
|
|
100
|
-
break;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
}),
|
|
104
|
-
createResolver(LayoutAction.SetLayoutMode, (data) => {
|
|
105
|
-
const layout = context.requestCapability(Capabilities.MutableLayout);
|
|
106
|
-
const location = context.requestCapability(Capabilities.MutableLocation);
|
|
107
|
-
const deck = context.requestCapability(DeckCapabilities.MutableDeckState);
|
|
108
|
-
const setMode = (mode) => {
|
|
109
|
-
const main = openIds(location.active, [
|
|
110
|
-
"main"
|
|
111
|
-
]);
|
|
112
|
-
const solo = openIds(location.active, [
|
|
113
|
-
"solo"
|
|
114
|
-
]);
|
|
115
|
-
const current = layout.layoutMode === "solo" ? solo : main;
|
|
116
|
-
const next = mode === "solo" ? solo : [
|
|
117
|
-
...main,
|
|
118
|
-
...solo
|
|
119
|
-
];
|
|
120
|
-
const removed = current.filter((id) => !next.includes(id));
|
|
121
|
-
const closed = Array.from(/* @__PURE__ */ new Set([
|
|
122
|
-
...location.closed.filter((id) => !next.includes(id)),
|
|
123
|
-
...removed
|
|
124
|
-
]));
|
|
125
|
-
location.closed = closed;
|
|
126
|
-
layout.layoutMode = mode;
|
|
127
|
-
};
|
|
128
|
-
return batch(() => {
|
|
129
|
-
if ("layoutMode" in data) {
|
|
130
|
-
deck.layoutModeHistory.push(layout.layoutMode);
|
|
131
|
-
setMode(data.layoutMode);
|
|
132
|
-
} else if (data.revert) {
|
|
133
|
-
setMode(deck.layoutModeHistory.pop() ?? "solo");
|
|
134
|
-
} else {
|
|
135
|
-
log.warn("Invalid layout mode", data, {
|
|
136
|
-
F: __dxlog_file,
|
|
137
|
-
L: 120,
|
|
138
|
-
S: void 0,
|
|
139
|
-
C: (f, a) => f(...a)
|
|
140
|
-
});
|
|
141
|
-
}
|
|
142
|
-
});
|
|
143
|
-
}),
|
|
144
|
-
createResolver(LayoutAction.ScrollIntoView, ({ id }) => {
|
|
145
|
-
const layout = context.requestCapability(Capabilities.MutableLayout);
|
|
146
|
-
layout.scrollIntoView = id;
|
|
147
|
-
})
|
|
148
|
-
]);
|
|
149
|
-
export {
|
|
150
|
-
intent_resolver_default as default
|
|
151
|
-
};
|
|
152
|
-
//# sourceMappingURL=intent-resolver-FVOQSTBX.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/layout/intent-resolver.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { batch } from '@preact/signals-core';\n\nimport {\n Capabilities,\n createResolver,\n contributes,\n IntentAction,\n LayoutAction,\n openIds,\n Toast as ToastSchema,\n type LayoutMode,\n type PluginsContext,\n} from '@dxos/app-framework';\nimport { S } from '@dxos/echo-schema';\nimport { log } from '@dxos/log';\n\nimport { DECK_PLUGIN } from '../../meta';\nimport { DeckAction } from '../../types';\nimport { DeckCapabilities } from '../capabilities';\n\nexport default (context: PluginsContext) =>\n contributes(Capabilities.IntentResolver, [\n createResolver(DeckAction.UpdatePlankSize, (data) => {\n const deck = context.requestCapability(DeckCapabilities.MutableDeckState);\n deck.plankSizing[data.id] = data.size;\n }),\n createResolver(IntentAction.ShowUndo, (data) => {\n const deck = context.requestCapability(DeckCapabilities.MutableDeckState);\n const layout = context.requestCapability(Capabilities.MutableLayout);\n const { undoPromise: undo } = context.requestCapability(Capabilities.IntentDispatcher);\n\n // TODO(wittjosiah): Support undoing further back than the last action.\n if (deck.currentUndoId) {\n layout.toasts = layout.toasts.filter((toast) => toast.id !== deck.currentUndoId);\n }\n deck.currentUndoId = `${IntentAction.ShowUndo._tag}-${Date.now()}`;\n layout.toasts = [\n ...layout.toasts,\n {\n id: deck.currentUndoId,\n title: data.message ?? ['undo available label', { ns: DECK_PLUGIN }],\n duration: 10_000,\n actionLabel: ['undo action label', { ns: DECK_PLUGIN }],\n actionAlt: ['undo action alt', { ns: DECK_PLUGIN }],\n closeLabel: ['undo close label', { ns: DECK_PLUGIN }],\n onAction: () => undo(),\n },\n ];\n }),\n createResolver(\n LayoutAction.SetLayout,\n ({ element, state, component, subject, anchorId, dialogBlockAlign, dialogType }) => {\n const layout = context.requestCapability(Capabilities.MutableLayout);\n switch (element) {\n case 'sidebar': {\n layout.sidebarOpen = state ?? !layout.sidebarOpen;\n break;\n }\n\n case 'complementary': {\n layout.complementarySidebarOpen = !!state;\n // TODO(thure): Hoist content into the c11y sidebar of Deck.\n // layout.complementarySidebarContent = component || subject ? { component, subject } : null;\n break;\n }\n\n case 'dialog': {\n layout.dialogOpen = state ?? Boolean(component);\n layout.dialogContent = component ? { component, subject } : null;\n layout.dialogBlockAlign = dialogBlockAlign ?? 'center';\n layout.dialogType = dialogType;\n break;\n }\n\n case 'popover': {\n layout.popoverOpen = state ?? Boolean(component);\n layout.popoverContent = component ? { component, subject } : null;\n layout.popoverAnchorId = anchorId;\n break;\n }\n\n case 'toast': {\n if (S.is(ToastSchema)(subject)) {\n layout.toasts = [...layout.toasts, subject];\n }\n break;\n }\n }\n },\n ),\n createResolver(LayoutAction.SetLayoutMode, (data) => {\n const layout = context.requestCapability(Capabilities.MutableLayout);\n const location = context.requestCapability(Capabilities.MutableLocation);\n const deck = context.requestCapability(DeckCapabilities.MutableDeckState);\n\n const setMode = (mode: LayoutMode) => {\n const main = openIds(location.active, ['main']);\n const solo = openIds(location.active, ['solo']);\n const current = layout.layoutMode === 'solo' ? solo : main;\n // When un-soloing, the solo entry is added to the deck.\n const next = mode === 'solo' ? solo : [...main, ...solo];\n const removed = current.filter((id) => !next.includes(id));\n const closed = Array.from(new Set([...location.closed.filter((id) => !next.includes(id)), ...removed]));\n\n location.closed = closed;\n layout.layoutMode = mode;\n };\n\n return batch(() => {\n if ('layoutMode' in data) {\n deck.layoutModeHistory.push(layout.layoutMode);\n setMode(data.layoutMode);\n } else if (data.revert) {\n setMode(deck.layoutModeHistory.pop() ?? 'solo');\n } else {\n log.warn('Invalid layout mode', data);\n }\n });\n }),\n createResolver(LayoutAction.ScrollIntoView, ({ id }) => {\n const layout = context.requestCapability(Capabilities.MutableLayout);\n layout.scrollIntoView = id;\n }),\n ]);\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["batch", "Capabilities", "createResolver", "contributes", "IntentAction", "LayoutAction", "openIds", "Toast", "ToastSchema", "S", "log", "context", "contributes", "Capabilities", "IntentResolver", "createResolver", "DeckAction", "UpdatePlankSize", "data", "deck", "requestCapability", "DeckCapabilities", "MutableDeckState", "plankSizing", "id", "size", "IntentAction", "ShowUndo", "layout", "MutableLayout", "undoPromise", "undo", "IntentDispatcher", "currentUndoId", "toasts", "filter", "toast", "_tag", "Date", "now", "title", "message", "ns", "DECK_PLUGIN", "duration", "actionLabel", "actionAlt", "closeLabel", "onAction", "LayoutAction", "SetLayout", "element", "state", "component", "subject", "anchorId", "dialogBlockAlign", "dialogType", "sidebarOpen", "complementarySidebarOpen", "dialogOpen", "Boolean", "dialogContent", "popoverOpen", "popoverContent", "popoverAnchorId", "S", "is", "ToastSchema", "SetLayoutMode", "location", "MutableLocation", "setMode", "mode", "main", "openIds", "active", "solo", "current", "layoutMode", "next", "removed", "includes", "closed", "Array", "from", "Set", "batch", "layoutModeHistory", "push", "revert", "pop", "log", "warn", "ScrollIntoView", "scrollIntoView"]
|
|
7
|
-
}
|
|
@@ -1,249 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
closeEntry,
|
|
3
|
-
incrementPlank,
|
|
4
|
-
openEntry,
|
|
5
|
-
setLocation
|
|
6
|
-
} from "./chunk-4C2AFTET.mjs";
|
|
7
|
-
import {
|
|
8
|
-
getEffectivePart
|
|
9
|
-
} from "./chunk-2PJNBVCY.mjs";
|
|
10
|
-
import {
|
|
11
|
-
DECK_PLUGIN
|
|
12
|
-
} from "./chunk-JQJ5UWVB.mjs";
|
|
13
|
-
|
|
14
|
-
// packages/plugins/plugin-deck/src/capabilities/navigation/intent-resolver.ts
|
|
15
|
-
import { batch } from "@preact/signals-core";
|
|
16
|
-
import { pipe } from "effect";
|
|
17
|
-
import { Capabilities, chain, contributes, createIntent, createResolver, LayoutAction, NavigationAction, openIds, SLUG_PATH_SEPARATOR } from "@dxos/app-framework";
|
|
18
|
-
import { isReactiveObject, getTypename } from "@dxos/live-object";
|
|
19
|
-
import { AttentionCapabilities } from "@dxos/plugin-attention";
|
|
20
|
-
import { ObservabilityAction } from "@dxos/plugin-observability/types";
|
|
21
|
-
var intent_resolver_default = (context) => contributes(Capabilities.IntentResolver, [
|
|
22
|
-
createResolver(NavigationAction.Open, (data) => {
|
|
23
|
-
const { graph } = context.requestCapability(Capabilities.AppGraph);
|
|
24
|
-
const location = context.requestCapability(Capabilities.MutableLocation);
|
|
25
|
-
const layout = context.requestCapability(Capabilities.MutableLayout);
|
|
26
|
-
const attention = context.requestCapability(AttentionCapabilities.Attention);
|
|
27
|
-
const settings = context.requestCapabilities(Capabilities.SettingsStore)[0]?.getStore(DECK_PLUGIN)?.value;
|
|
28
|
-
const previouslyOpenIds = new Set(openIds(location.active));
|
|
29
|
-
const layoutMode = layout.layoutMode;
|
|
30
|
-
const toAttend = batch(() => {
|
|
31
|
-
const processLayoutEntry = (partName, entryString, currentLayout) => {
|
|
32
|
-
const toggle = false;
|
|
33
|
-
const [id, path] = entryString.split(SLUG_PATH_SEPARATOR);
|
|
34
|
-
const layoutEntry = {
|
|
35
|
-
id,
|
|
36
|
-
...path ? {
|
|
37
|
-
path
|
|
38
|
-
} : {}
|
|
39
|
-
};
|
|
40
|
-
const effectivePart = getEffectivePart(partName, layoutMode);
|
|
41
|
-
if (toggle && layoutMode === "deck" && effectivePart === "main" && currentLayout[effectivePart]?.some((entry) => entry.id === id) && !data?.noToggle) {
|
|
42
|
-
return closeEntry(currentLayout, {
|
|
43
|
-
part: effectivePart,
|
|
44
|
-
entryId: id
|
|
45
|
-
});
|
|
46
|
-
} else {
|
|
47
|
-
return openEntry(currentLayout, effectivePart, layoutEntry, {
|
|
48
|
-
positioning: settings?.newPlankPositioning
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
};
|
|
52
|
-
let newLayout = location.active;
|
|
53
|
-
Object.entries(data.activeParts).forEach(([partName, layoutEntries]) => {
|
|
54
|
-
if (Array.isArray(layoutEntries)) {
|
|
55
|
-
layoutEntries.forEach((activePartEntry) => {
|
|
56
|
-
newLayout = processLayoutEntry(partName, activePartEntry, newLayout);
|
|
57
|
-
});
|
|
58
|
-
} else if (typeof layoutEntries === "string") {
|
|
59
|
-
newLayout = processLayoutEntry(partName, layoutEntries, newLayout);
|
|
60
|
-
}
|
|
61
|
-
});
|
|
62
|
-
return setLocation({
|
|
63
|
-
next: newLayout,
|
|
64
|
-
layout,
|
|
65
|
-
location,
|
|
66
|
-
attention
|
|
67
|
-
});
|
|
68
|
-
});
|
|
69
|
-
const ids = openIds(location.active);
|
|
70
|
-
const newlyOpen = ids.filter((i) => !previouslyOpenIds.has(i));
|
|
71
|
-
return {
|
|
72
|
-
data: {
|
|
73
|
-
open: ids
|
|
74
|
-
},
|
|
75
|
-
intents: [
|
|
76
|
-
createIntent(LayoutAction.ScrollIntoView, {
|
|
77
|
-
id: newlyOpen[0] ?? toAttend
|
|
78
|
-
}),
|
|
79
|
-
...toAttend ? [
|
|
80
|
-
createIntent(NavigationAction.Expose, {
|
|
81
|
-
id: toAttend
|
|
82
|
-
})
|
|
83
|
-
] : [],
|
|
84
|
-
...newlyOpen.map((id) => {
|
|
85
|
-
const active = graph?.findNode(id)?.data;
|
|
86
|
-
const typename = isReactiveObject(active) ? getTypename(active) : void 0;
|
|
87
|
-
return createIntent(ObservabilityAction.SendEvent, {
|
|
88
|
-
name: "navigation.activate",
|
|
89
|
-
properties: {
|
|
90
|
-
id,
|
|
91
|
-
typename
|
|
92
|
-
}
|
|
93
|
-
});
|
|
94
|
-
})
|
|
95
|
-
]
|
|
96
|
-
};
|
|
97
|
-
}),
|
|
98
|
-
createResolver(NavigationAction.AddToActive, (data) => {
|
|
99
|
-
const location = context.requestCapability(Capabilities.MutableLocation);
|
|
100
|
-
const layout = context.requestCapability(Capabilities.MutableLayout);
|
|
101
|
-
const attention = context.requestCapability(AttentionCapabilities.Attention);
|
|
102
|
-
const settings = context.requestCapabilities(Capabilities.SettingsStore)[0]?.getStore(DECK_PLUGIN)?.value;
|
|
103
|
-
const layoutEntry = {
|
|
104
|
-
id: data.id
|
|
105
|
-
};
|
|
106
|
-
const effectivePart = getEffectivePart(data.part, layout.layoutMode);
|
|
107
|
-
setLocation({
|
|
108
|
-
next: openEntry(location.active, effectivePart, layoutEntry, {
|
|
109
|
-
positioning: data.positioning ?? settings?.newPlankPositioning,
|
|
110
|
-
pivotId: data.pivotId
|
|
111
|
-
}),
|
|
112
|
-
layout,
|
|
113
|
-
location,
|
|
114
|
-
attention
|
|
115
|
-
});
|
|
116
|
-
const intents = [];
|
|
117
|
-
if (data.scrollIntoView && layout.layoutMode === "deck") {
|
|
118
|
-
intents.push(createIntent(LayoutAction.ScrollIntoView, {
|
|
119
|
-
id: data.id
|
|
120
|
-
}));
|
|
121
|
-
}
|
|
122
|
-
return {
|
|
123
|
-
intents
|
|
124
|
-
};
|
|
125
|
-
}),
|
|
126
|
-
createResolver(NavigationAction.Close, (data) => {
|
|
127
|
-
const location = context.requestCapability(Capabilities.MutableLocation);
|
|
128
|
-
const layout = context.requestCapability(Capabilities.MutableLayout);
|
|
129
|
-
const attention = context.requestCapability(AttentionCapabilities.Attention);
|
|
130
|
-
let newLayout = location.active;
|
|
131
|
-
const layoutMode = layout.layoutMode;
|
|
132
|
-
const intentParts = data.activeParts;
|
|
133
|
-
Object.keys(intentParts).forEach((partName) => {
|
|
134
|
-
const effectivePart = getEffectivePart(partName, layoutMode);
|
|
135
|
-
const ids = intentParts[partName];
|
|
136
|
-
if (Array.isArray(ids)) {
|
|
137
|
-
ids.forEach((id) => {
|
|
138
|
-
newLayout = closeEntry(newLayout, {
|
|
139
|
-
part: effectivePart,
|
|
140
|
-
entryId: id
|
|
141
|
-
});
|
|
142
|
-
});
|
|
143
|
-
} else {
|
|
144
|
-
newLayout = closeEntry(newLayout, {
|
|
145
|
-
part: effectivePart,
|
|
146
|
-
entryId: ids
|
|
147
|
-
});
|
|
148
|
-
}
|
|
149
|
-
});
|
|
150
|
-
const toAttend = setLocation({
|
|
151
|
-
next: newLayout,
|
|
152
|
-
layout,
|
|
153
|
-
location,
|
|
154
|
-
attention
|
|
155
|
-
});
|
|
156
|
-
return {
|
|
157
|
-
intents: [
|
|
158
|
-
createIntent(LayoutAction.ScrollIntoView, {
|
|
159
|
-
id: toAttend
|
|
160
|
-
})
|
|
161
|
-
]
|
|
162
|
-
};
|
|
163
|
-
}),
|
|
164
|
-
createResolver(NavigationAction.Set, (data) => {
|
|
165
|
-
const layout = context.requestCapability(Capabilities.MutableLayout);
|
|
166
|
-
const location = context.requestCapability(Capabilities.MutableLocation);
|
|
167
|
-
const attention = context.requestCapability(AttentionCapabilities.Attention);
|
|
168
|
-
return batch(() => {
|
|
169
|
-
const toAttend = setLocation({
|
|
170
|
-
next: data.activeParts,
|
|
171
|
-
layout,
|
|
172
|
-
location,
|
|
173
|
-
attention
|
|
174
|
-
});
|
|
175
|
-
return {
|
|
176
|
-
intents: [
|
|
177
|
-
createIntent(LayoutAction.ScrollIntoView, {
|
|
178
|
-
id: toAttend
|
|
179
|
-
})
|
|
180
|
-
]
|
|
181
|
-
};
|
|
182
|
-
});
|
|
183
|
-
}),
|
|
184
|
-
createResolver(NavigationAction.Adjust, (adjustment) => {
|
|
185
|
-
const location = context.requestCapability(Capabilities.MutableLocation);
|
|
186
|
-
const layout = context.requestCapability(Capabilities.MutableLayout);
|
|
187
|
-
const attention = context.requestCapability(AttentionCapabilities.Attention);
|
|
188
|
-
return batch(() => {
|
|
189
|
-
if (adjustment.type === "increment-end" || adjustment.type === "increment-start") {
|
|
190
|
-
setLocation({
|
|
191
|
-
next: incrementPlank(location.active, {
|
|
192
|
-
type: adjustment.type,
|
|
193
|
-
layoutCoordinate: adjustment.layoutCoordinate
|
|
194
|
-
}),
|
|
195
|
-
layout,
|
|
196
|
-
location,
|
|
197
|
-
attention
|
|
198
|
-
});
|
|
199
|
-
}
|
|
200
|
-
if (adjustment.type === "solo") {
|
|
201
|
-
const entryId = adjustment.layoutCoordinate.entryId;
|
|
202
|
-
if (layout.layoutMode !== "solo") {
|
|
203
|
-
return {
|
|
204
|
-
intents: [
|
|
205
|
-
// NOTE: The order of these is important.
|
|
206
|
-
pipe(createIntent(NavigationAction.Open, {
|
|
207
|
-
activeParts: {
|
|
208
|
-
solo: [
|
|
209
|
-
entryId
|
|
210
|
-
]
|
|
211
|
-
}
|
|
212
|
-
}), chain(LayoutAction.SetLayoutMode, {
|
|
213
|
-
layoutMode: "solo"
|
|
214
|
-
}))
|
|
215
|
-
]
|
|
216
|
-
};
|
|
217
|
-
} else {
|
|
218
|
-
return {
|
|
219
|
-
intents: [
|
|
220
|
-
// NOTE: The order of these is important.
|
|
221
|
-
pipe(createIntent(LayoutAction.SetLayoutMode, {
|
|
222
|
-
layoutMode: "deck"
|
|
223
|
-
}), chain(NavigationAction.Close, {
|
|
224
|
-
activeParts: {
|
|
225
|
-
solo: [
|
|
226
|
-
entryId
|
|
227
|
-
]
|
|
228
|
-
}
|
|
229
|
-
}), chain(NavigationAction.Open, {
|
|
230
|
-
activeParts: {
|
|
231
|
-
main: [
|
|
232
|
-
entryId
|
|
233
|
-
]
|
|
234
|
-
},
|
|
235
|
-
noToggle: true
|
|
236
|
-
}), chain(LayoutAction.ScrollIntoView, {
|
|
237
|
-
id: entryId
|
|
238
|
-
}))
|
|
239
|
-
]
|
|
240
|
-
};
|
|
241
|
-
}
|
|
242
|
-
}
|
|
243
|
-
});
|
|
244
|
-
})
|
|
245
|
-
]);
|
|
246
|
-
export {
|
|
247
|
-
intent_resolver_default as default
|
|
248
|
-
};
|
|
249
|
-
//# sourceMappingURL=intent-resolver-K7GW4A2I.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/navigation/intent-resolver.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { batch } from '@preact/signals-core';\nimport { pipe } from 'effect';\n\nimport {\n Capabilities,\n chain,\n contributes,\n createIntent,\n createResolver,\n LayoutAction,\n NavigationAction,\n openIds,\n SLUG_PATH_SEPARATOR,\n type LayoutEntry,\n type LayoutPart,\n type PluginsContext,\n} from '@dxos/app-framework';\nimport { isReactiveObject, getTypename } from '@dxos/live-object';\nimport { AttentionCapabilities } from '@dxos/plugin-attention';\nimport { ObservabilityAction } from '@dxos/plugin-observability/types';\n\nimport { setLocation } from './set-location';\nimport { closeEntry, incrementPlank, openEntry } from '../../layout';\nimport { DECK_PLUGIN } from '../../meta';\nimport { type DeckSettingsProps } from '../../types';\nimport { getEffectivePart } from '../../util';\n\n// TODO(wittjosiah): Factor out navgiation from deck plugin.\nexport default (context: PluginsContext) =>\n contributes(Capabilities.IntentResolver, [\n createResolver(NavigationAction.Open, (data) => {\n const { graph } = context.requestCapability(Capabilities.AppGraph);\n const location = context.requestCapability(Capabilities.MutableLocation);\n const layout = context.requestCapability(Capabilities.MutableLayout);\n const attention = context.requestCapability(AttentionCapabilities.Attention);\n const settings = context\n .requestCapabilities(Capabilities.SettingsStore)[0]\n ?.getStore<DeckSettingsProps>(DECK_PLUGIN)?.value;\n\n const previouslyOpenIds = new Set<string>(openIds(location.active));\n const layoutMode = layout.layoutMode;\n const toAttend = batch(() => {\n const processLayoutEntry = (partName: string, entryString: string, currentLayout: any) => {\n // TODO(burdon): Option to toggle?\n const toggle = false;\n const [id, path] = entryString.split(SLUG_PATH_SEPARATOR);\n const layoutEntry: LayoutEntry = { id, ...(path ? { path } : {}) };\n const effectivePart = getEffectivePart(partName as LayoutPart, layoutMode);\n if (\n toggle &&\n layoutMode === 'deck' &&\n effectivePart === 'main' &&\n currentLayout[effectivePart]?.some((entry: LayoutEntry) => entry.id === id) &&\n !data?.noToggle\n ) {\n // If we're in deck mode and the main part is already open, toggle it closed.\n return closeEntry(currentLayout, { part: effectivePart as LayoutPart, entryId: id });\n } else {\n return openEntry(currentLayout, effectivePart, layoutEntry, {\n positioning: settings?.newPlankPositioning,\n });\n }\n };\n\n let newLayout = location.active;\n Object.entries(data.activeParts).forEach(([partName, layoutEntries]) => {\n if (Array.isArray(layoutEntries)) {\n layoutEntries.forEach((activePartEntry: string) => {\n newLayout = processLayoutEntry(partName, activePartEntry, newLayout);\n });\n } else if (typeof layoutEntries === 'string') {\n // Legacy single string entry.\n newLayout = processLayoutEntry(partName, layoutEntries, newLayout);\n }\n });\n\n return setLocation({ next: newLayout, layout, location, attention });\n });\n\n const ids = openIds(location.active);\n const newlyOpen = ids.filter((i) => !previouslyOpenIds.has(i));\n\n return {\n data: { open: ids },\n intents: [\n createIntent(LayoutAction.ScrollIntoView, { id: newlyOpen[0] ?? toAttend }),\n ...(toAttend ? [createIntent(NavigationAction.Expose, { id: toAttend })] : []),\n ...newlyOpen.map((id) => {\n const active = graph?.findNode(id)?.data;\n const typename = isReactiveObject(active) ? getTypename(active) : undefined;\n return createIntent(ObservabilityAction.SendEvent, {\n name: 'navigation.activate',\n properties: {\n id,\n typename,\n },\n });\n }),\n ],\n };\n }),\n createResolver(NavigationAction.AddToActive, (data) => {\n const location = context.requestCapability(Capabilities.MutableLocation);\n const layout = context.requestCapability(Capabilities.MutableLayout);\n const attention = context.requestCapability(AttentionCapabilities.Attention);\n const settings = context\n .requestCapabilities(Capabilities.SettingsStore)[0]\n ?.getStore<DeckSettingsProps>(DECK_PLUGIN)?.value;\n\n const layoutEntry = { id: data.id };\n const effectivePart = getEffectivePart(data.part, layout.layoutMode);\n\n setLocation({\n next: openEntry(location.active, effectivePart, layoutEntry, {\n positioning: data.positioning ?? settings?.newPlankPositioning,\n pivotId: data.pivotId,\n }),\n layout,\n location,\n attention,\n });\n\n const intents = [];\n if (data.scrollIntoView && layout.layoutMode === 'deck') {\n intents.push(createIntent(LayoutAction.ScrollIntoView, { id: data.id }));\n }\n\n return { intents };\n }),\n createResolver(NavigationAction.Close, (data) => {\n const location = context.requestCapability(Capabilities.MutableLocation);\n const layout = context.requestCapability(Capabilities.MutableLayout);\n const attention = context.requestCapability(AttentionCapabilities.Attention);\n\n let newLayout = location.active;\n const layoutMode = layout.layoutMode;\n const intentParts = data.activeParts;\n Object.keys(intentParts).forEach((partName: string) => {\n const effectivePart = getEffectivePart(partName as LayoutPart, layoutMode);\n const ids = intentParts[partName];\n if (Array.isArray(ids)) {\n ids.forEach((id: string) => {\n newLayout = closeEntry(newLayout, { part: effectivePart, entryId: id });\n });\n } else {\n // Legacy single string entry\n newLayout = closeEntry(newLayout, { part: effectivePart, entryId: ids });\n }\n });\n\n const toAttend = setLocation({ next: newLayout, layout, location, attention });\n return { intents: [createIntent(LayoutAction.ScrollIntoView, { id: toAttend })] };\n }),\n createResolver(NavigationAction.Set, (data) => {\n const layout = context.requestCapability(Capabilities.MutableLayout);\n const location = context.requestCapability(Capabilities.MutableLocation);\n const attention = context.requestCapability(AttentionCapabilities.Attention);\n\n return batch(() => {\n const toAttend = setLocation({ next: data.activeParts, layout, location, attention });\n return { intents: [createIntent(LayoutAction.ScrollIntoView, { id: toAttend })] };\n });\n }),\n createResolver(NavigationAction.Adjust, (adjustment) => {\n const location = context.requestCapability(Capabilities.MutableLocation);\n const layout = context.requestCapability(Capabilities.MutableLayout);\n const attention = context.requestCapability(AttentionCapabilities.Attention);\n\n return batch(() => {\n if (adjustment.type === 'increment-end' || adjustment.type === 'increment-start') {\n setLocation({\n next: incrementPlank(location.active, {\n type: adjustment.type,\n layoutCoordinate: adjustment.layoutCoordinate,\n }),\n layout,\n location,\n attention,\n });\n }\n\n if (adjustment.type === 'solo') {\n const entryId = adjustment.layoutCoordinate.entryId;\n if (layout.layoutMode !== 'solo') {\n // Solo the entry.\n return {\n intents: [\n // NOTE: The order of these is important.\n pipe(\n createIntent(NavigationAction.Open, { activeParts: { solo: [entryId] } }),\n chain(LayoutAction.SetLayoutMode, { layoutMode: 'solo' }),\n ),\n ],\n };\n } else {\n // Un-solo the current entry.\n return {\n intents: [\n // NOTE: The order of these is important.\n pipe(\n createIntent(LayoutAction.SetLayoutMode, { layoutMode: 'deck' }),\n chain(NavigationAction.Close, { activeParts: { solo: [entryId] } }),\n chain(NavigationAction.Open, { activeParts: { main: [entryId] }, noToggle: true }),\n chain(LayoutAction.ScrollIntoView, { id: entryId }),\n ),\n ],\n };\n }\n }\n });\n }),\n ]);\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["batch", "pipe", "Capabilities", "chain", "contributes", "createIntent", "createResolver", "LayoutAction", "NavigationAction", "openIds", "SLUG_PATH_SEPARATOR", "isReactiveObject", "getTypename", "AttentionCapabilities", "ObservabilityAction", "context", "contributes", "Capabilities", "IntentResolver", "createResolver", "NavigationAction", "Open", "data", "graph", "requestCapability", "AppGraph", "location", "MutableLocation", "layout", "MutableLayout", "attention", "AttentionCapabilities", "Attention", "settings", "requestCapabilities", "SettingsStore", "getStore", "DECK_PLUGIN", "value", "previouslyOpenIds", "Set", "openIds", "active", "layoutMode", "toAttend", "batch", "processLayoutEntry", "partName", "entryString", "currentLayout", "toggle", "id", "path", "split", "SLUG_PATH_SEPARATOR", "layoutEntry", "effectivePart", "getEffectivePart", "some", "entry", "noToggle", "closeEntry", "part", "entryId", "openEntry", "positioning", "newPlankPositioning", "newLayout", "Object", "entries", "activeParts", "forEach", "layoutEntries", "Array", "isArray", "activePartEntry", "setLocation", "next", "ids", "newlyOpen", "filter", "i", "has", "open", "intents", "createIntent", "LayoutAction", "ScrollIntoView", "Expose", "map", "findNode", "typename", "isReactiveObject", "getTypename", "undefined", "ObservabilityAction", "SendEvent", "name", "properties", "AddToActive", "pivotId", "scrollIntoView", "push", "Close", "intentParts", "keys", "Adjust", "adjustment", "type", "incrementPlank", "layoutCoordinate", "pipe", "solo", "chain", "SetLayoutMode", "main"]
|
|
7
|
-
}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
NAV_ID
|
|
3
|
-
} from "./chunk-2M4PXYNB.mjs";
|
|
4
|
-
import "./chunk-2PJNBVCY.mjs";
|
|
5
|
-
import "./chunk-KY5WXIXY.mjs";
|
|
6
|
-
import "./chunk-JQJ5UWVB.mjs";
|
|
7
|
-
|
|
8
|
-
// packages/plugins/plugin-deck/src/capabilities/navigation/location.ts
|
|
9
|
-
import { Capabilities, contributes } from "@dxos/app-framework";
|
|
10
|
-
import { LocalStorageStore } from "@dxos/local-storage";
|
|
11
|
-
var LOCATION_KEY = "dxos.org/settings/layout";
|
|
12
|
-
var location_default = () => {
|
|
13
|
-
const location = new LocalStorageStore(LOCATION_KEY, {
|
|
14
|
-
active: {
|
|
15
|
-
sidebar: [
|
|
16
|
-
{
|
|
17
|
-
id: NAV_ID
|
|
18
|
-
}
|
|
19
|
-
]
|
|
20
|
-
},
|
|
21
|
-
closed: []
|
|
22
|
-
});
|
|
23
|
-
location.prop({
|
|
24
|
-
key: "active",
|
|
25
|
-
type: LocalStorageStore.json()
|
|
26
|
-
}).prop({
|
|
27
|
-
key: "closed",
|
|
28
|
-
type: LocalStorageStore.json()
|
|
29
|
-
});
|
|
30
|
-
return contributes(Capabilities.Location, location.values, () => location.close());
|
|
31
|
-
};
|
|
32
|
-
export {
|
|
33
|
-
location_default as default
|
|
34
|
-
};
|
|
35
|
-
//# sourceMappingURL=location-QHRBQBQN.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/navigation/location.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes, type LayoutParts } from '@dxos/app-framework';\nimport { LocalStorageStore } from '@dxos/local-storage';\n\nimport { NAV_ID } from '../../components';\n\n// NOTE: The key is this currently for backwards compatibility of storage.\nconst LOCATION_KEY = 'dxos.org/settings/layout';\n\nexport default () => {\n // TODO(wittjosiah): This active state is not a generic navigation state but quite deck specific.\n // It is also closely tied to the layout mode state (which also seems quite deck specific).\n // The layout and navigation interfaces need to be revisited and cleaned up.\n // Doing this cleanup should also help simplify some of the convoluted logic for managing it.\n const location = new LocalStorageStore<Capabilities.MutableLocation>(LOCATION_KEY, {\n active: { sidebar: [{ id: NAV_ID }] },\n closed: [],\n });\n\n location\n .prop({ key: 'active', type: LocalStorageStore.json<LayoutParts>() })\n .prop({ key: 'closed', type: LocalStorageStore.json<string[]>() });\n\n return contributes(Capabilities.Location, location.values, () => location.close());\n};\n"],
|
|
5
|
-
"mappings": ";;;;;;;;AAIA,SAASA,cAAcC,mBAAqC;AAC5D,SAASC,yBAAyB;AAKlC,IAAMC,eAAe;AAErB,IAAA,mBAAe,MAAA;AAKb,QAAMC,WAAW,IAAIC,kBAAgDF,cAAc;IACjFG,QAAQ;MAAEC,SAAS;QAAC;UAAEC,IAAIC;QAAO;;IAAG;IACpCC,QAAQ,CAAA;EACV,CAAA;AAEAN,WACGO,KAAK;IAAEC,KAAK;IAAUC,MAAMR,kBAAkBS,KAAI;EAAgB,CAAA,EAClEH,KAAK;IAAEC,KAAK;IAAUC,MAAMR,kBAAkBS,KAAI;EAAa,CAAA;AAElE,SAAOC,YAAYC,aAAaC,UAAUb,SAASc,QAAQ,MAAMd,SAASe,MAAK,CAAA;AACjF;",
|
|
6
|
-
"names": ["Capabilities", "contributes", "LocalStorageStore", "LOCATION_KEY", "location", "LocalStorageStore", "active", "sidebar", "id", "NAV_ID", "closed", "prop", "key", "type", "json", "contributes", "Capabilities", "Location", "values", "close"]
|
|
7
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
DeckContext,
|
|
3
|
-
LayoutContext
|
|
4
|
-
} from "./chunk-2M4PXYNB.mjs";
|
|
5
|
-
import "./chunk-2PJNBVCY.mjs";
|
|
6
|
-
import "./chunk-KY5WXIXY.mjs";
|
|
7
|
-
import {
|
|
8
|
-
DeckCapabilities
|
|
9
|
-
} from "./chunk-5VFDMW5M.mjs";
|
|
10
|
-
import {
|
|
11
|
-
DECK_PLUGIN
|
|
12
|
-
} from "./chunk-JQJ5UWVB.mjs";
|
|
13
|
-
|
|
14
|
-
// packages/plugins/plugin-deck/src/capabilities/layout/react-context.tsx
|
|
15
|
-
import React from "react";
|
|
16
|
-
import { Capabilities, contributes, useCapability } from "@dxos/app-framework";
|
|
17
|
-
var react_context_default = () => contributes(Capabilities.ReactContext, {
|
|
18
|
-
id: DECK_PLUGIN,
|
|
19
|
-
context: (props) => {
|
|
20
|
-
const layout = useCapability(Capabilities.Layout);
|
|
21
|
-
const deck = useCapability(DeckCapabilities.MutableDeckState);
|
|
22
|
-
return /* @__PURE__ */ React.createElement(LayoutContext.Provider, {
|
|
23
|
-
value: layout
|
|
24
|
-
}, /* @__PURE__ */ React.createElement(DeckContext.Provider, {
|
|
25
|
-
value: deck
|
|
26
|
-
}, props.children));
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
export {
|
|
30
|
-
react_context_default as default
|
|
31
|
-
};
|
|
32
|
-
//# sourceMappingURL=react-context-3BDW7W2N.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/layout/react-context.tsx"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { type PropsWithChildren } from 'react';\n\nimport { Capabilities, contributes, useCapability } from '@dxos/app-framework';\n\nimport { DeckContext, LayoutContext } from '../../components';\nimport { DECK_PLUGIN } from '../../meta';\nimport { DeckCapabilities } from '../capabilities';\n\nexport default () =>\n contributes(Capabilities.ReactContext, {\n id: DECK_PLUGIN,\n context: (props: PropsWithChildren) => {\n const layout = useCapability(Capabilities.Layout);\n const deck = useCapability(DeckCapabilities.MutableDeckState);\n\n return (\n <LayoutContext.Provider value={layout}>\n <DeckContext.Provider value={deck}>{props.children}</DeckContext.Provider>\n </LayoutContext.Provider>\n );\n },\n });\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;AAIA,OAAOA,WAAuC;AAE9C,SAASC,cAAcC,aAAaC,qBAAqB;AAMzD,IAAA,wBAAe,MACbC,YAAYC,aAAaC,cAAc;EACrCC,IAAIC;EACJC,SAAS,CAACC,UAAAA;AACR,UAAMC,SAASC,cAAcP,aAAaQ,MAAM;AAChD,UAAMC,OAAOF,cAAcG,iBAAiBC,gBAAgB;AAE5D,WACE,sBAAA,cAACC,cAAcC,UAAQ;MAACC,OAAOR;OAC7B,sBAAA,cAACS,YAAYF,UAAQ;MAACC,OAAOL;OAAOJ,MAAMW,QAAQ,CAAA;EAGxD;AACF,CAAA;",
|
|
6
|
-
"names": ["React", "Capabilities", "contributes", "useCapability", "contributes", "Capabilities", "ReactContext", "id", "DECK_PLUGIN", "context", "props", "layout", "useCapability", "Layout", "deck", "DeckCapabilities", "MutableDeckState", "LayoutContext", "Provider", "value", "DeckContext", "children"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/layout/react-root.tsx"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback } from 'react';\n\nimport { Capabilities, contributes, useCapabilities, useCapability } from '@dxos/app-framework';\n\nimport { DeckLayout } from '../../components';\nimport { DECK_PLUGIN } from '../../meta';\nimport { type DeckSettingsProps } from '../../types';\nimport { DeckCapabilities } from '../capabilities';\n\nexport default () =>\n contributes(Capabilities.ReactRoot, {\n id: DECK_PLUGIN,\n root: () => {\n const layout = useCapability(Capabilities.Layout);\n const location = useCapability(Capabilities.Location);\n const deck = useCapability(DeckCapabilities.MutableDeckState);\n const settings = useCapability(Capabilities.SettingsStore).getStore<DeckSettingsProps>(DECK_PLUGIN)!.value;\n const panels = useCapabilities(DeckCapabilities.ComplementaryPanel);\n\n const handleDismissToast = useCallback(\n (id: string) => {\n const index = layout.toasts.findIndex((toast) => toast.id === id);\n if (index !== -1) {\n // Allow time for the toast to animate out.\n // TODO(burdon): Factor out and unregister timeout.\n setTimeout(() => {\n if (layout.toasts[index].id === deck.currentUndoId) {\n deck.currentUndoId = undefined;\n }\n layout.toasts.splice(index, 1);\n }, 1_000);\n }\n },\n [layout.toasts],\n );\n\n return (\n <DeckLayout\n layoutParts={location.active}\n showHints={settings.showHints}\n overscroll={settings.overscroll}\n toasts={layout.toasts}\n panels={panels}\n onDismissToast={handleDismissToast}\n />\n );\n },\n });\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;AAIA,OAAOA,SAASC,mBAAmB;AAEnC,SAASC,cAAcC,aAAaC,iBAAiBC,qBAAqB;AAO1E,IAAA,qBAAe,MACbC,YAAYC,aAAaC,WAAW;EAClCC,IAAIC;EACJC,MAAM,MAAA;AACJ,UAAMC,SAASC,cAAcN,aAAaO,MAAM;AAChD,UAAMC,WAAWF,cAAcN,aAAaS,QAAQ;AACpD,UAAMC,OAAOJ,cAAcK,iBAAiBC,gBAAgB;AAC5D,UAAMC,WAAWP,cAAcN,aAAac,aAAa,EAAEC,SAA4BZ,WAAAA,EAAca;AACrG,UAAMC,SAASC,gBAAgBP,iBAAiBQ,kBAAkB;AAElE,UAAMC,qBAAqBC,YACzB,CAACnB,OAAAA;AACC,YAAMoB,QAAQjB,OAAOkB,OAAOC,UAAU,CAACC,UAAUA,MAAMvB,OAAOA,EAAAA;AAC9D,UAAIoB,UAAU,IAAI;AAGhBI,mBAAW,MAAA;AACT,cAAIrB,OAAOkB,OAAOD,KAAAA,EAAOpB,OAAOQ,KAAKiB,eAAe;AAClDjB,iBAAKiB,gBAAgBC;UACvB;AACAvB,iBAAOkB,OAAOM,OAAOP,OAAO,CAAA;QAC9B,GAAG,GAAA;MACL;IACF,GACA;MAACjB,OAAOkB;KAAO;AAGjB,WACE,sBAAA,cAACO,YAAAA;MACCC,aAAavB,SAASwB;MACtBC,WAAWpB,SAASoB;MACpBC,YAAYrB,SAASqB;MACrBX,QAAQlB,OAAOkB;MACfN;MACAkB,gBAAgBf;;EAGtB;AACF,CAAA;",
|
|
6
|
-
"names": ["React", "useCallback", "Capabilities", "contributes", "useCapabilities", "useCapability", "contributes", "Capabilities", "ReactRoot", "id", "DECK_PLUGIN", "root", "layout", "useCapability", "Layout", "location", "Location", "deck", "DeckCapabilities", "MutableDeckState", "settings", "SettingsStore", "getStore", "value", "panels", "useCapabilities", "ComplementaryPanel", "handleDismissToast", "useCallback", "index", "toasts", "findIndex", "toast", "setTimeout", "currentUndoId", "undefined", "splice", "DeckLayout", "layoutParts", "active", "showHints", "overscroll", "onDismissToast"]
|
|
7
|
-
}
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
LayoutSettings
|
|
3
|
-
} from "./chunk-2M4PXYNB.mjs";
|
|
4
|
-
import "./chunk-2PJNBVCY.mjs";
|
|
5
|
-
import "./chunk-KY5WXIXY.mjs";
|
|
6
|
-
import {
|
|
7
|
-
DECK_PLUGIN
|
|
8
|
-
} from "./chunk-JQJ5UWVB.mjs";
|
|
9
|
-
|
|
10
|
-
// packages/plugins/plugin-deck/src/capabilities/settings/react-surface.tsx
|
|
11
|
-
import React from "react";
|
|
12
|
-
import { Capabilities, contributes, useCapability } from "@dxos/app-framework";
|
|
13
|
-
var react_surface_default = () => contributes(Capabilities.ReactSurface, {
|
|
14
|
-
id: DECK_PLUGIN,
|
|
15
|
-
role: "settings",
|
|
16
|
-
filter: (data) => data.subject === DECK_PLUGIN,
|
|
17
|
-
component: () => {
|
|
18
|
-
const store = useCapability(Capabilities.SettingsStore);
|
|
19
|
-
const settings = store.getStore(DECK_PLUGIN).value;
|
|
20
|
-
return /* @__PURE__ */ React.createElement(LayoutSettings, {
|
|
21
|
-
settings
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
});
|
|
25
|
-
export {
|
|
26
|
-
react_surface_default as default
|
|
27
|
-
};
|
|
28
|
-
//# sourceMappingURL=react-surface-VPNOGGNN.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/settings/react-surface.tsx"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Capabilities, contributes, useCapability } from '@dxos/app-framework';\n\nimport { LayoutSettings } from '../../components';\nimport { DECK_PLUGIN } from '../../meta';\nimport { type DeckSettingsProps } from '../../types';\n\nexport default () =>\n contributes(Capabilities.ReactSurface, {\n id: DECK_PLUGIN,\n role: 'settings',\n filter: (data): data is any => data.subject === DECK_PLUGIN,\n component: () => {\n const store = useCapability(Capabilities.SettingsStore);\n const settings = store.getStore<DeckSettingsProps>(DECK_PLUGIN)!.value;\n return <LayoutSettings settings={settings} />;\n },\n });\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;AAIA,OAAOA,WAAW;AAElB,SAASC,cAAcC,aAAaC,qBAAqB;AAMzD,IAAA,wBAAe,MACbC,YAAYC,aAAaC,cAAc;EACrCC,IAAIC;EACJC,MAAM;EACNC,QAAQ,CAACC,SAAsBA,KAAKC,YAAYJ;EAChDK,WAAW,MAAA;AACT,UAAMC,QAAQC,cAAcV,aAAaW,aAAa;AACtD,UAAMC,WAAWH,MAAMI,SAA4BV,WAAAA,EAAcW;AACjE,WAAO,sBAAA,cAACC,gBAAAA;MAAeH;;EACzB;AACF,CAAA;",
|
|
6
|
-
"names": ["React", "Capabilities", "contributes", "useCapability", "contributes", "Capabilities", "ReactSurface", "id", "DECK_PLUGIN", "role", "filter", "data", "subject", "component", "store", "useCapability", "SettingsStore", "settings", "getStore", "value", "LayoutSettings"]
|
|
7
|
-
}
|