@dxos/plugin-deck 0.7.5-labs.a279d8c → 0.7.5-labs.c0e040f
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-CI6ZFMNL.mjs} +57 -31
- package/dist/lib/browser/app-graph-builder-CI6ZFMNL.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-23KS5L3I.mjs +1124 -0
- package/dist/lib/browser/chunk-23KS5L3I.mjs.map +7 -0
- package/dist/lib/browser/chunk-4URQJVGI.mjs +24 -0
- package/dist/lib/browser/chunk-4URQJVGI.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-PTLNGUND.mjs +126 -0
- package/dist/lib/browser/chunk-PTLNGUND.mjs.map +7 -0
- package/dist/lib/browser/{chunk-5VFDMW5M.mjs → chunk-YQ2GWTDU.mjs} +2 -2
- package/dist/lib/browser/chunk-YQ2GWTDU.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +36 -82
- package/dist/lib/browser/index.mjs.map +4 -4
- package/dist/lib/browser/intent-resolver-WAYXVAFN.mjs +497 -0
- package/dist/lib/browser/intent-resolver-WAYXVAFN.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-root-AWYSGU4Q.mjs → react-root-YATKEIAZ.mjs} +10 -14
- package/dist/lib/browser/react-root-YATKEIAZ.mjs.map +7 -0
- package/dist/lib/browser/react-surface-SS2BX6FS.mjs +38 -0
- package/dist/lib/browser/react-surface-SS2BX6FS.mjs.map +7 -0
- package/dist/lib/browser/{settings-FNWW6WIJ.mjs → settings-CRQTVMN3.mjs} +6 -7
- package/dist/lib/browser/settings-CRQTVMN3.mjs.map +7 -0
- package/dist/lib/browser/state-YEQA3IIB.mjs +117 -0
- package/dist/lib/browser/state-YEQA3IIB.mjs.map +7 -0
- package/dist/lib/browser/{tools-4XY7KFQF.mjs → tools-5LDJNU56.mjs} +14 -9
- package/dist/lib/browser/tools-5LDJNU56.mjs.map +7 -0
- package/dist/lib/browser/types.mjs +16 -4
- package/dist/lib/browser/url-handler-HLF42IHP.mjs +70 -0
- package/dist/lib/browser/url-handler-HLF42IHP.mjs.map +7 -0
- package/dist/types/src/DeckPlugin.d.ts.map +1 -1
- package/dist/types/src/capabilities/{layout/app-graph-builder.d.ts → app-graph-builder.d.ts} +22 -22
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -0
- package/dist/types/src/capabilities/capabilities.d.ts +132 -3
- 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/set-active.d.ts +9 -0
- package/dist/types/src/capabilities/set-active.d.ts.map +1 -0
- package/dist/types/src/capabilities/settings.d.ts.map +1 -0
- package/dist/types/src/capabilities/state.d.ts +76 -0
- package/dist/types/src/capabilities/state.d.ts.map +1 -0
- package/dist/types/src/capabilities/{navigation/tools.d.ts → tools.d.ts} +1 -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.map +1 -1
- package/dist/types/src/components/DeckLayout/ComplementarySidebar.d.ts.map +1 -1
- package/dist/types/src/components/DeckLayout/ContentEmpty.d.ts.map +1 -1
- package/dist/types/src/components/DeckLayout/DeckLayout.d.ts +1 -4
- package/dist/types/src/components/DeckLayout/DeckLayout.d.ts.map +1 -1
- 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 +4 -3
- package/dist/types/src/components/DeckLayout/PlankError.d.ts.map +1 -1
- package/dist/types/src/components/DeckLayout/Sidebar.d.ts.map +1 -1
- package/dist/types/src/components/DeckLayout/SidebarButton.d.ts +5 -3
- package/dist/types/src/components/DeckLayout/SidebarButton.d.ts.map +1 -1
- package/dist/types/src/components/DeckLayout/StatusBar.d.ts.map +1 -1
- package/dist/types/src/components/DeckLayout/Toast.d.ts +2 -2
- package/dist/types/src/components/DeckLayout/Toast.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/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 +107 -2
- package/dist/types/src/types.d.ts.map +1 -1
- package/dist/types/src/util/index.d.ts +2 -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/useHoistStatusbar.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +30 -31
- package/src/DeckPlugin.ts +17 -63
- package/src/capabilities/{layout/app-graph-builder.ts → app-graph-builder.ts} +36 -28
- package/src/capabilities/capabilities.ts +4 -3
- 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 +350 -0
- package/src/capabilities/{layout/react-root.tsx → react-root.tsx} +7 -11
- package/src/capabilities/react-surface.tsx +31 -0
- package/src/capabilities/set-active.ts +47 -0
- package/src/capabilities/{settings/settings.ts → settings.ts} +4 -5
- package/src/capabilities/state.ts +102 -0
- package/src/capabilities/{navigation/tools.ts → tools.ts} +10 -6
- package/src/capabilities/url-handler.ts +63 -0
- package/src/components/DeckLayout/ActiveNode.tsx +2 -3
- package/src/components/DeckLayout/ComplementarySidebar.tsx +120 -69
- package/src/components/DeckLayout/ContentEmpty.tsx +7 -10
- package/src/components/DeckLayout/DeckLayout.tsx +116 -64
- package/src/components/DeckLayout/Fullscreen.tsx +2 -3
- package/src/components/DeckLayout/NodePlankHeading.tsx +57 -65
- package/src/components/DeckLayout/Plank.tsx +32 -41
- package/src/components/DeckLayout/PlankControls.tsx +11 -10
- 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/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 +88 -2
- package/src/util/index.ts +2 -1
- package/src/util/layoutAppliesTopbar.ts +7 -0
- package/src/util/useHoistStatusbar.ts +17 -8
- package/dist/lib/browser/app-graph-builder-67VRUD5K.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/chunk-WUMAJGVA.mjs +0 -1052
- package/dist/lib/browser/chunk-WUMAJGVA.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-AIO6V3MK.mjs +0 -35
- package/dist/lib/browser/location-AIO6V3MK.mjs.map +0 -7
- package/dist/lib/browser/react-context-G6PDXUI5.mjs +0 -32
- package/dist/lib/browser/react-context-G6PDXUI5.mjs.map +0 -7
- package/dist/lib/browser/react-root-AWYSGU4Q.mjs.map +0 -7
- package/dist/lib/browser/react-surface-CLUABFNX.mjs +0 -28
- package/dist/lib/browser/react-surface-CLUABFNX.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/tools-4XY7KFQF.mjs.map +0 -7
- package/dist/lib/browser/url-handler-JRAQRY73.mjs +0 -76
- package/dist/lib/browser/url-handler-JRAQRY73.mjs.map +0 -7
- 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 -6
- 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/tools.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 -11
- 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,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-WUMAJGVA.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-AIO6V3MK.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-WUMAJGVA.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-G6PDXUI5.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-WUMAJGVA.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-CLUABFNX.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
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/settings/settings.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes } from '@dxos/app-framework';\nimport { create } from '@dxos/live-object';\n\nimport { DECK_PLUGIN } from '../../meta';\nimport { DeckSettingsSchema, type DeckSettingsProps } from '../../types';\n\nexport default () => {\n const settings = create<DeckSettingsProps>({\n showHints: false,\n customSlots: false,\n flatDeck: false,\n enableNativeRedirect: false,\n newPlankPositioning: 'start',\n overscroll: 'centering',\n });\n\n return contributes(Capabilities.Settings, { schema: DeckSettingsSchema, prefix: DECK_PLUGIN, value: settings });\n};\n"],
|
|
5
|
-
"mappings": ";;;;;;;;AAIA,SAASA,cAAcC,mBAAmB;AAC1C,SAASC,cAAc;AAKvB,IAAA,mBAAe,MAAA;AACb,QAAMC,WAAWC,OAA0B;IACzCC,WAAW;IACXC,aAAa;IACbC,UAAU;IACVC,sBAAsB;IACtBC,qBAAqB;IACrBC,YAAY;EACd,CAAA;AAEA,SAAOC,YAAYC,aAAaC,UAAU;IAAEC,QAAQC;IAAoBC,QAAQC;IAAaC,OAAOf;EAAS,CAAA;AAC/G;",
|
|
6
|
-
"names": ["Capabilities", "contributes", "create", "settings", "create", "showHints", "customSlots", "flatDeck", "enableNativeRedirect", "newPlankPositioning", "overscroll", "contributes", "Capabilities", "Settings", "schema", "DeckSettingsSchema", "prefix", "DECK_PLUGIN", "value"]
|
|
7
|
-
}
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
// packages/plugins/plugin-deck/src/capabilities/layout/state.ts
|
|
2
|
-
import { Capabilities, contributes } from "@dxos/app-framework";
|
|
3
|
-
import { LocalStorageStore } from "@dxos/local-storage";
|
|
4
|
-
var LAYOUT_KEY = "dxos.org/settings/layout";
|
|
5
|
-
var state_default = () => {
|
|
6
|
-
const layout = new LocalStorageStore(LAYOUT_KEY, {
|
|
7
|
-
layoutMode: "solo",
|
|
8
|
-
sidebarOpen: true,
|
|
9
|
-
complementarySidebarOpen: false,
|
|
10
|
-
dialogContent: null,
|
|
11
|
-
dialogOpen: false,
|
|
12
|
-
dialogBlockAlign: void 0,
|
|
13
|
-
dialogType: void 0,
|
|
14
|
-
popoverContent: null,
|
|
15
|
-
popoverAnchorId: void 0,
|
|
16
|
-
popoverOpen: false,
|
|
17
|
-
toasts: []
|
|
18
|
-
});
|
|
19
|
-
layout.prop({
|
|
20
|
-
key: "layoutMode",
|
|
21
|
-
type: LocalStorageStore.enum()
|
|
22
|
-
}).prop({
|
|
23
|
-
key: "sidebarOpen",
|
|
24
|
-
type: LocalStorageStore.bool()
|
|
25
|
-
}).prop({
|
|
26
|
-
key: "complementarySidebarOpen",
|
|
27
|
-
type: LocalStorageStore.bool()
|
|
28
|
-
});
|
|
29
|
-
return contributes(Capabilities.Layout, layout.values, () => layout.close());
|
|
30
|
-
};
|
|
31
|
-
export {
|
|
32
|
-
state_default as default
|
|
33
|
-
};
|
|
34
|
-
//# sourceMappingURL=state-7I5BD7SE.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/layout/state.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Capabilities, contributes, type LayoutMode, type Layout } from '@dxos/app-framework';\nimport { LocalStorageStore } from '@dxos/local-storage';\n\n// NOTE: The key is this currently for backwards compatibility of storage.\nconst LAYOUT_KEY = 'dxos.org/settings/layout';\n\nexport default () => {\n const layout = new LocalStorageStore<Layout>(LAYOUT_KEY, {\n layoutMode: 'solo',\n sidebarOpen: true,\n complementarySidebarOpen: false,\n dialogContent: null,\n dialogOpen: false,\n dialogBlockAlign: undefined,\n dialogType: undefined,\n popoverContent: null,\n popoverAnchorId: undefined,\n popoverOpen: false,\n toasts: [],\n });\n\n layout\n .prop({ key: 'layoutMode', type: LocalStorageStore.enum<LayoutMode>() })\n .prop({ key: 'sidebarOpen', type: LocalStorageStore.bool() })\n .prop({ key: 'complementarySidebarOpen', type: LocalStorageStore.bool() });\n\n return contributes(Capabilities.Layout, layout.values, () => layout.close());\n};\n"],
|
|
5
|
-
"mappings": ";AAIA,SAASA,cAAcC,mBAAiD;AACxE,SAASC,yBAAyB;AAGlC,IAAMC,aAAa;AAEnB,IAAA,gBAAe,MAAA;AACb,QAAMC,SAAS,IAAIC,kBAA0BF,YAAY;IACvDG,YAAY;IACZC,aAAa;IACbC,0BAA0B;IAC1BC,eAAe;IACfC,YAAY;IACZC,kBAAkBC;IAClBC,YAAYD;IACZE,gBAAgB;IAChBC,iBAAiBH;IACjBI,aAAa;IACbC,QAAQ,CAAA;EACV,CAAA;AAEAb,SACGc,KAAK;IAAEC,KAAK;IAAcC,MAAMf,kBAAkBgB,KAAI;EAAe,CAAA,EACrEH,KAAK;IAAEC,KAAK;IAAeC,MAAMf,kBAAkBiB,KAAI;EAAG,CAAA,EAC1DJ,KAAK;IAAEC,KAAK;IAA4BC,MAAMf,kBAAkBiB,KAAI;EAAG,CAAA;AAE1E,SAAOC,YAAYC,aAAaC,QAAQrB,OAAOsB,QAAQ,MAAMtB,OAAOuB,MAAK,CAAA;AAC3E;",
|
|
6
|
-
"names": ["Capabilities", "contributes", "LocalStorageStore", "LAYOUT_KEY", "layout", "LocalStorageStore", "layoutMode", "sidebarOpen", "complementarySidebarOpen", "dialogContent", "dialogOpen", "dialogBlockAlign", "undefined", "dialogType", "popoverContent", "popoverAnchorId", "popoverOpen", "toasts", "prop", "key", "type", "enum", "bool", "contributes", "Capabilities", "Layout", "values", "close"]
|
|
7
|
-
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/navigation/tools.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport {\n Capabilities,\n contributes,\n createIntent,\n NavigationAction,\n type PromiseIntentDispatcher,\n} from '@dxos/app-framework';\nimport { defineTool, ToolResult } from '@dxos/artifact';\nimport { S } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\n\n// TODO(burdon): Factor out.\ndeclare global {\n interface ToolContextExtensions {\n dispatch?: PromiseIntentDispatcher;\n }\n}\n\nexport default () =>\n contributes(Capabilities.Tools, [\n defineTool({\n name: 'show',\n // TODO(ZaymonFC): We should update the prompt to teach the LLM the difference between object ids and fully qualified ids.\n description:\n 'Show an item in the app. Use this tool to open an artifact. When supplying IDs to show, they must be fully qualified like space:object.',\n // TODO(wittjosiah): Refactor Layout/Navigation/Deck actions so that they can be used directly.\n schema: S.Struct({\n id: S.String.annotations({\n description: 'The ID of the item to show.',\n }),\n pivotId: S.optional(\n S.String.annotations({\n description: 'The ID of the chat. If provided, the item will be added after the pivot item.',\n }),\n ),\n }),\n execute: async ({ id, pivotId }, { extensions }) => {\n invariant(extensions?.dispatch, 'No intent dispatcher');\n const { data, error } = await extensions.dispatch(\n createIntent(NavigationAction.AddToActive, {\n id,\n part: 'main',\n pivotId,\n }),\n );\n if (error) {\n return ToolResult.Error(error.message);\n }\n\n return ToolResult.Success(data);\n },\n }),\n ]);\n"],
|
|
5
|
-
"mappings": ";AAIA,SACEA,cACAC,aACAC,cACAC,wBAEK;AACP,SAASC,YAAYC,kBAAkB;AACvC,SAASC,SAAS;AAClB,SAASC,iBAAiB;;AAS1B,IAAA,gBAAe,MACbN,YAAYD,aAAaQ,OAAO;EAC9BJ,WAAW;IACTK,MAAM;;IAENC,aACE;;IAEFC,QAAQL,EAAEM,OAAO;MACfC,IAAIP,EAAEQ,OAAOC,YAAY;QACvBL,aAAa;MACf,CAAA;MACAM,SAASV,EAAEW,SACTX,EAAEQ,OAAOC,YAAY;QACnBL,aAAa;MACf,CAAA,CAAA;IAEJ,CAAA;IACAQ,SAAS,OAAO,EAAEL,IAAIG,QAAO,GAAI,EAAEG,WAAU,MAAE;AAC7CZ,gBAAUY,YAAYC,UAAU,wBAAA;;;;;;;;;AAChC,YAAM,EAAEC,MAAMC,MAAK,IAAK,MAAMH,WAAWC,SACvClB,aAAaC,iBAAiBoB,aAAa;QACzCV;QACAW,MAAM;QACNR;MACF,CAAA,CAAA;AAEF,UAAIM,OAAO;AACT,eAAOjB,WAAWoB,MAAMH,MAAMI,OAAO;MACvC;AAEA,aAAOrB,WAAWsB,QAAQN,IAAAA;IAC5B;EACF,CAAA;CACD;",
|
|
6
|
-
"names": ["Capabilities", "contributes", "createIntent", "NavigationAction", "defineTool", "ToolResult", "S", "invariant", "Tools", "name", "description", "schema", "Struct", "id", "String", "annotations", "pivotId", "optional", "execute", "extensions", "dispatch", "data", "error", "AddToActive", "part", "Error", "message", "Success"]
|
|
7
|
-
}
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
mergeLayoutParts,
|
|
3
|
-
removePart,
|
|
4
|
-
setLocation,
|
|
5
|
-
soloPartToUri,
|
|
6
|
-
uriToSoloPart
|
|
7
|
-
} from "./chunk-4C2AFTET.mjs";
|
|
8
|
-
import {
|
|
9
|
-
NAV_ID
|
|
10
|
-
} from "./chunk-WUMAJGVA.mjs";
|
|
11
|
-
import "./chunk-2PJNBVCY.mjs";
|
|
12
|
-
import "./chunk-KY5WXIXY.mjs";
|
|
13
|
-
import "./chunk-JQJ5UWVB.mjs";
|
|
14
|
-
|
|
15
|
-
// packages/plugins/plugin-deck/src/capabilities/navigation/url-handler.ts
|
|
16
|
-
import { Capabilities, contributes, createIntent, LayoutAction } from "@dxos/app-framework";
|
|
17
|
-
import { scheduledEffect } from "@dxos/echo-signals/core";
|
|
18
|
-
import { AttentionCapabilities } from "@dxos/plugin-attention";
|
|
19
|
-
var url_handler_default = async (context) => {
|
|
20
|
-
const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher) ?? {};
|
|
21
|
-
const location = context.requestCapability(Capabilities.MutableLocation);
|
|
22
|
-
const layout = context.requestCapability(Capabilities.MutableLayout);
|
|
23
|
-
const attention = context.requestCapability(AttentionCapabilities.Attention);
|
|
24
|
-
const handleNavigation = async () => {
|
|
25
|
-
const setLocation2 = (next) => setLocation({
|
|
26
|
-
next,
|
|
27
|
-
layout,
|
|
28
|
-
location,
|
|
29
|
-
attention
|
|
30
|
-
});
|
|
31
|
-
const pathname = window.location.pathname;
|
|
32
|
-
if (pathname === "/reset") {
|
|
33
|
-
setLocation2({
|
|
34
|
-
sidebar: [
|
|
35
|
-
{
|
|
36
|
-
id: NAV_ID
|
|
37
|
-
}
|
|
38
|
-
]
|
|
39
|
-
});
|
|
40
|
-
location.closed = [];
|
|
41
|
-
layout.layoutMode = "solo";
|
|
42
|
-
window.location.pathname = "/";
|
|
43
|
-
return;
|
|
44
|
-
}
|
|
45
|
-
const startingLayout = removePart(location.active, "solo");
|
|
46
|
-
const layoutFromUri = uriToSoloPart(pathname);
|
|
47
|
-
if (!layoutFromUri) {
|
|
48
|
-
const toAttend2 = setLocation2(startingLayout);
|
|
49
|
-
layout.layoutMode = "deck";
|
|
50
|
-
await dispatch?.(createIntent(LayoutAction.ScrollIntoView, {
|
|
51
|
-
id: toAttend2
|
|
52
|
-
}));
|
|
53
|
-
return;
|
|
54
|
-
}
|
|
55
|
-
const toAttend = setLocation2(mergeLayoutParts(layoutFromUri, startingLayout));
|
|
56
|
-
layout.layoutMode = "solo";
|
|
57
|
-
await dispatch?.(createIntent(LayoutAction.ScrollIntoView, {
|
|
58
|
-
id: toAttend
|
|
59
|
-
}));
|
|
60
|
-
};
|
|
61
|
-
await handleNavigation();
|
|
62
|
-
window.addEventListener("popstate", handleNavigation);
|
|
63
|
-
const unsubscribe = scheduledEffect(() => ({
|
|
64
|
-
selectedPath: soloPartToUri(location.active)
|
|
65
|
-
}), ({ selectedPath }) => {
|
|
66
|
-
history.pushState(null, "", `/${selectedPath}${window.location.search}`);
|
|
67
|
-
});
|
|
68
|
-
return contributes(Capabilities.Null, null, () => {
|
|
69
|
-
window.removeEventListener("popstate", handleNavigation);
|
|
70
|
-
unsubscribe();
|
|
71
|
-
});
|
|
72
|
-
};
|
|
73
|
-
export {
|
|
74
|
-
url_handler_default as default
|
|
75
|
-
};
|
|
76
|
-
//# sourceMappingURL=url-handler-JRAQRY73.mjs.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/capabilities/navigation/url-handler.ts"],
|
|
4
|
-
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport {\n Capabilities,\n contributes,\n createIntent,\n LayoutAction,\n type LayoutParts,\n type PluginsContext,\n} from '@dxos/app-framework';\nimport { scheduledEffect } from '@dxos/echo-signals/core';\nimport { AttentionCapabilities } from '@dxos/plugin-attention';\n\nimport { setLocation as naturalSetLocation } from './set-location';\nimport { NAV_ID } from '../../components';\nimport { mergeLayoutParts, removePart, soloPartToUri, uriToSoloPart } from '../../layout';\n\nexport default async (context: PluginsContext) => {\n const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher) ?? {};\n const location = context.requestCapability(Capabilities.MutableLocation);\n const layout = context.requestCapability(Capabilities.MutableLayout);\n const attention = context.requestCapability(AttentionCapabilities.Attention);\n\n const handleNavigation = async () => {\n const setLocation = (next: LayoutParts) => naturalSetLocation({ next, layout, location, attention });\n\n const pathname = window.location.pathname;\n if (pathname === '/reset') {\n setLocation({ sidebar: [{ id: NAV_ID }] });\n location.closed = [];\n layout.layoutMode = 'solo';\n window.location.pathname = '/';\n return;\n }\n\n const startingLayout = removePart(location.active, 'solo');\n const layoutFromUri = uriToSoloPart(pathname);\n if (!layoutFromUri) {\n const toAttend = setLocation(startingLayout);\n layout.layoutMode = 'deck';\n await dispatch?.(createIntent(LayoutAction.ScrollIntoView, { id: toAttend }));\n return;\n }\n\n const toAttend = setLocation(mergeLayoutParts(layoutFromUri, startingLayout));\n layout.layoutMode = 'solo';\n await dispatch?.(createIntent(LayoutAction.ScrollIntoView, { id: toAttend }));\n };\n\n await handleNavigation();\n window.addEventListener('popstate', handleNavigation);\n\n const unsubscribe = scheduledEffect(\n () => ({ selectedPath: soloPartToUri(location.active) }),\n ({ selectedPath }) => {\n // TODO(thure): In some browsers, this only preserves the most recent state change, even though this is not `history.replace`…\n history.pushState(null, '', `/${selectedPath}${window.location.search}`);\n },\n );\n\n return contributes(Capabilities.Null, null, () => {\n window.removeEventListener('popstate', handleNavigation);\n unsubscribe();\n });\n};\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;AAIA,SACEA,cACAC,aACAC,cACAC,oBAGK;AACP,SAASC,uBAAuB;AAChC,SAASC,6BAA6B;AAMtC,IAAA,sBAAe,OAAOC,YAAAA;AACpB,QAAM,EAAEC,iBAAiBC,SAAQ,IAAKF,QAAQG,kBAAkBC,aAAaC,gBAAgB,KAAK,CAAC;AACnG,QAAMC,WAAWN,QAAQG,kBAAkBC,aAAaG,eAAe;AACvE,QAAMC,SAASR,QAAQG,kBAAkBC,aAAaK,aAAa;AACnE,QAAMC,YAAYV,QAAQG,kBAAkBQ,sBAAsBC,SAAS;AAE3E,QAAMC,mBAAmB,YAAA;AACvB,UAAMC,eAAc,CAACC,SAAsBC,YAAmB;MAAED;MAAMP;MAAQF;MAAUI;IAAU,CAAA;AAElG,UAAMO,WAAWC,OAAOZ,SAASW;AACjC,QAAIA,aAAa,UAAU;AACzBH,MAAAA,aAAY;QAAEK,SAAS;UAAC;YAAEC,IAAIC;UAAO;;MAAG,CAAA;AACxCf,eAASgB,SAAS,CAAA;AAClBd,aAAOe,aAAa;AACpBL,aAAOZ,SAASW,WAAW;AAC3B;IACF;AAEA,UAAMO,iBAAiBC,WAAWnB,SAASoB,QAAQ,MAAA;AACnD,UAAMC,gBAAgBC,cAAcX,QAAAA;AACpC,QAAI,CAACU,eAAe;AAClB,YAAME,YAAWf,aAAYU,cAAAA;AAC7BhB,aAAOe,aAAa;AACpB,YAAMrB,WAAW4B,aAAaC,aAAaC,gBAAgB;QAAEZ,IAAIS;MAAS,CAAA,CAAA;AAC1E;IACF;AAEA,UAAMA,WAAWf,aAAYmB,iBAAiBN,eAAeH,cAAAA,CAAAA;AAC7DhB,WAAOe,aAAa;AACpB,UAAMrB,WAAW4B,aAAaC,aAAaC,gBAAgB;MAAEZ,IAAIS;IAAS,CAAA,CAAA;EAC5E;AAEA,QAAMhB,iBAAAA;AACNK,SAAOgB,iBAAiB,YAAYrB,gBAAAA;AAEpC,QAAMsB,cAAcC,gBAClB,OAAO;IAAEC,cAAcC,cAAchC,SAASoB,MAAM;EAAE,IACtD,CAAC,EAAEW,aAAY,MAAE;AAEfE,YAAQC,UAAU,MAAM,IAAI,IAAIH,YAAAA,GAAenB,OAAOZ,SAASmC,MAAM,EAAE;EACzE,CAAA;AAGF,SAAOC,YAAYtC,aAAauC,MAAM,MAAM,MAAA;AAC1CzB,WAAO0B,oBAAoB,YAAY/B,gBAAAA;AACvCsB,gBAAAA;EACF,CAAA;AACF;",
|
|
6
|
-
"names": ["Capabilities", "contributes", "createIntent", "LayoutAction", "scheduledEffect", "AttentionCapabilities", "context", "dispatchPromise", "dispatch", "requestCapability", "Capabilities", "IntentDispatcher", "location", "MutableLocation", "layout", "MutableLayout", "attention", "AttentionCapabilities", "Attention", "handleNavigation", "setLocation", "next", "naturalSetLocation", "pathname", "window", "sidebar", "id", "NAV_ID", "closed", "layoutMode", "startingLayout", "removePart", "active", "layoutFromUri", "uriToSoloPart", "toAttend", "createIntent", "LayoutAction", "ScrollIntoView", "mergeLayoutParts", "addEventListener", "unsubscribe", "scheduledEffect", "selectedPath", "soloPartToUri", "history", "pushState", "search", "contributes", "Null", "removeEventListener"]
|
|
7
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"app-graph-builder.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/layout/app-graph-builder.ts"],"names":[],"mappings":"AAIA,OAAO,EAOL,KAAK,cAAc,EACpB,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAmB,KAAK,IAAI,EAAW,MAAM,oBAAoB,CAAC;kCAIhD,cAAc;;wBAmFgnD,qCAAY;sBAAyC,oBAAiB;uBAAgD,oBAAiB;sBAAgD,oBAAiB;;2BAAkE,uCAAiB;;;wBAAwF,qCAAY;sBAAyC,oBAAiB;uBAAgD,oBAAiB;sBAAgD,oBAAiB;;2BAAkE,uCAAiB;;;wBAA2F,qCAAY;sBAAyC,oBAAiB;uBAAgD,oBAAiB;sBAAgD,oBAAiB;;2BAAkE,uCAAiB;;;wBAAwF,qCAAY;sBAAyC,oBAAiB;uBAAgD,oBAAiB;sBAAgD,oBAAiB;;2BAAkE,uCAAiB;;;wBAA2F,qCAAY;sBAAyC,oBAAiB;uBAAgD,oBAAiB;sBAAgD,oBAAiB;;2BAAkE,uCAAiB;;;wBAAwF,qCAAY;sBAAyC,oBAAiB;uBAAgD,oBAAiB;sBAAgD,oBAAiB;;2BAAkE,uCAAiB;;;wBAA2F,qCAAY;sBAAyC,oBAAiB;uBAAgD,oBAAiB;sBAAgD,oBAAiB;;2BAAkE,uCAAiB;;;wBAAwF,qCAAY;sBAAyC,oBAAiB;uBAAgD,oBAAiB;sBAAgD,oBAAiB;;2BAAkE,uCAAiB;;;wBAA2F,qCAAY;sBAAyC,oBAAiB;uBAAgD,oBAAiB;sBAAgD,oBAAiB;;2BAAkE,uCAAiB;;;wBAAwF,qCAAY;sBAAyC,oBAAiB;uBAAgD,oBAAiB;sBAAgD,oBAAiB;;2BAAkE,uCAAiB;;;wBAA2F,qCAAY;sBAAyC,oBAAiB;uBAAgD,oBAAiB;sBAAgD,oBAAiB;;2BAAkE,uCAAiB;;;wBAAwF,qCAAY;sBAAyC,oBAAiB;uBAAgD,oBAAiB;sBAAgD,oBAAiB;;2BAAkE,uCAAiB;;;wBAA2F,qCAAY;sBAAyC,oBAAiB;uBAAgD,oBAAiB;sBAAgD,oBAAiB;;2BAAkE,uCAAiB;;;wBAAwF,qCAAY;sBAAyC,oBAAiB;uBAAgD,oBAAiB;sBAAgD,oBAAiB;;2BAAkE,uCAAiB;;;wBAA2F,qCAAY;sBAAyC,oBAAiB;uBAAgD,oBAAiB;sBAAgD,oBAAiB;;2BAAkE,uCAAiB;;;wBAAwF,qCAAY;sBAAyC,oBAAiB;uBAAgD,oBAAiB;sBAAgD,oBAAiB;;2BAAkE,uCAAiB;;;wBAA2F,qCAAY;sBAAyC,oBAAiB;uBAAgD,oBAAiB;sBAAgD,oBAAiB;;2BAAkE,uCAAiB;;;wBAAwF,qCAAY;sBAAyC,oBAAiB;uBAAgD,oBAAiB;sBAAgD,oBAAiB;;2BAAkE,uCAAiB;;;wBAA2F,qCAAY;sBAAyC,oBAAiB;uBAAgD,oBAAiB;sBAAgD,oBAAiB;;2BAAkE,uCAAiB;;;wBAAwF,qCAAY;sBAAyC,oBAAiB;uBAAgD,oBAAiB;sBAAgD,oBAAiB;;2BAAkE,uCAAiB;;;wBAA2F,qCAAY;sBAAyC,oBAAiB;uBAAgD,oBAAiB;sBAAgD,oBAAiB;;2BAAkE,uCAAiB;;;wBAAwF,qCAAY;sBAAyC,oBAAiB;uBAAgD,oBAAiB;sBAAgD,oBAAiB;;2BAAkE,uCAAiB;;AAnF/jT,wBAkFI"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"deck.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/layout/deck.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,eAAe,EAAE,MAAM,kBAAkB,CAAC;;AAMxD,wBAWE"}
|