@dxos/plugin-deck 0.8.2-staging.7ac8446 → 0.8.3-main.672df60
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-VYZ4IWI3.mjs → app-graph-builder-M5BT34YG.mjs} +17 -16
- package/dist/lib/browser/app-graph-builder-M5BT34YG.mjs.map +7 -0
- package/dist/lib/browser/{check-app-scheme-SEYECDHI.mjs → check-app-scheme-7AXGR6UT.mjs} +2 -3
- package/dist/lib/browser/check-app-scheme-7AXGR6UT.mjs.map +7 -0
- package/dist/lib/browser/{state-7TN26M42.mjs → chunk-FX44YX3G.mjs} +11 -8
- package/dist/lib/browser/chunk-FX44YX3G.mjs.map +7 -0
- package/dist/lib/browser/{chunk-XMCG42ID.mjs → chunk-KLN73CM3.mjs} +2 -2
- package/dist/lib/browser/{chunk-XMCG42ID.mjs.map → chunk-KLN73CM3.mjs.map} +1 -1
- package/dist/lib/browser/chunk-KRDA6PUM.mjs +127 -0
- package/dist/lib/browser/chunk-KRDA6PUM.mjs.map +7 -0
- package/dist/lib/browser/chunk-LWXMANOA.mjs +1487 -0
- package/dist/lib/browser/chunk-LWXMANOA.mjs.map +7 -0
- package/dist/lib/browser/chunk-TRFYUEBA.mjs +145 -0
- package/dist/lib/browser/chunk-TRFYUEBA.mjs.map +7 -0
- package/dist/lib/browser/chunk-YN5OZEGS.mjs +162 -0
- package/dist/lib/browser/chunk-YN5OZEGS.mjs.map +7 -0
- package/dist/lib/browser/index.mjs +8 -8
- package/dist/lib/browser/index.mjs.map +2 -2
- package/dist/lib/browser/{intent-resolver-UDYKO2QW.mjs → intent-resolver-3GAC57UA.mjs} +135 -92
- package/dist/lib/browser/intent-resolver-3GAC57UA.mjs.map +7 -0
- package/dist/lib/browser/meta.json +1 -1
- package/dist/lib/browser/{react-root-XLXN2VEW.mjs → react-root-DF3IUPSE.mjs} +7 -7
- package/dist/lib/browser/{react-surface-WNGMZL7I.mjs → react-surface-T6YWQ6CS.mjs} +7 -7
- package/dist/lib/browser/{settings-HMDGSBGO.mjs → settings-X7GDEXU3.mjs} +6 -6
- package/dist/lib/browser/settings-X7GDEXU3.mjs.map +7 -0
- package/dist/lib/browser/state-VJ6E3ADY.mjs +10 -0
- package/dist/lib/browser/state-VJ6E3ADY.mjs.map +7 -0
- package/dist/lib/browser/{tools-SC6QEN7R.mjs → tools-N57NQ2LH.mjs} +28 -18
- package/dist/lib/browser/tools-N57NQ2LH.mjs.map +7 -0
- package/dist/lib/browser/types.mjs +1 -1
- package/dist/lib/browser/{url-handler-ODG4B6NX.mjs → url-handler-BUGI6XRE.mjs} +5 -5
- package/dist/lib/browser/url-handler-BUGI6XRE.mjs.map +7 -0
- package/dist/types/src/capabilities/app-graph-builder.d.ts +2 -179
- package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
- package/dist/types/src/capabilities/capabilities.d.ts +18 -8
- package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
- package/dist/types/src/capabilities/check-app-scheme.d.ts +2 -2
- package/dist/types/src/capabilities/check-app-scheme.d.ts.map +1 -1
- package/dist/types/src/capabilities/index.d.ts +8 -183
- package/dist/types/src/capabilities/index.d.ts.map +1 -1
- package/dist/types/src/capabilities/intent-resolver.d.ts +2 -2
- package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
- package/dist/types/src/capabilities/state.d.ts +12 -7
- package/dist/types/src/capabilities/state.d.ts.map +1 -1
- package/dist/types/src/capabilities/tools.d.ts +1 -1
- package/dist/types/src/capabilities/tools.d.ts.map +1 -1
- package/dist/types/src/capabilities/url-handler.d.ts +2 -2
- package/dist/types/src/capabilities/url-handler.d.ts.map +1 -1
- package/dist/types/src/components/DeckLayout/Banner.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.map +1 -1
- package/dist/types/src/components/DeckLayout/Dialog.d.ts +3 -0
- package/dist/types/src/components/DeckLayout/Dialog.d.ts.map +1 -0
- package/dist/types/src/components/DeckLayout/Popover.d.ts +5 -0
- package/dist/types/src/components/DeckLayout/Popover.d.ts.map +1 -0
- package/dist/types/src/components/DeckLayout/StatusBar.d.ts.map +1 -1
- package/dist/types/src/components/DeckLayout/Toast.d.ts.map +1 -1
- package/dist/types/src/components/DeckSettings/DeckSettings.d.ts.map +1 -1
- package/dist/types/src/components/Plank/Plank.d.ts +18 -5
- package/dist/types/src/components/Plank/Plank.d.ts.map +1 -1
- package/dist/types/src/components/Plank/Plank.stories.d.ts +3 -3
- package/dist/types/src/components/Plank/Plank.stories.d.ts.map +1 -1
- package/dist/types/src/components/Plank/PlankControls.d.ts +3 -2
- package/dist/types/src/components/Plank/PlankControls.d.ts.map +1 -1
- package/dist/types/src/components/Plank/PlankError.d.ts.map +1 -1
- package/dist/types/src/components/Plank/PlankHeading.d.ts +3 -2
- package/dist/types/src/components/Plank/PlankHeading.d.ts.map +1 -1
- package/dist/types/src/components/Sidebar/ComplementarySidebar.d.ts.map +1 -1
- package/dist/types/src/components/Sidebar/Sidebar.d.ts.map +1 -1
- package/dist/types/src/components/Sidebar/SidebarButton.d.ts +2 -1
- package/dist/types/src/components/Sidebar/SidebarButton.d.ts.map +1 -1
- package/dist/types/src/hooks/index.d.ts +5 -1
- package/dist/types/src/hooks/index.d.ts.map +1 -1
- package/dist/types/src/hooks/useBreakpoints.d.ts.map +1 -0
- package/dist/types/src/hooks/useCompanions.d.ts.map +1 -0
- package/dist/types/src/hooks/useDeckCompanions.d.ts +13 -0
- package/dist/types/src/hooks/useDeckCompanions.d.ts.map +1 -0
- package/dist/types/src/hooks/useHoistStatusbar.d.ts +3 -0
- package/dist/types/src/hooks/useHoistStatusbar.d.ts.map +1 -0
- package/dist/types/src/hooks/useNodeActionExpander.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +1 -1
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/layout.d.ts.map +1 -1
- package/dist/types/src/translations.d.ts +2 -1
- package/dist/types/src/translations.d.ts.map +1 -1
- package/dist/types/src/types.d.ts +108 -104
- package/dist/types/src/types.d.ts.map +1 -1
- package/dist/types/src/util/index.d.ts +1 -4
- package/dist/types/src/util/index.d.ts.map +1 -1
- package/dist/types/src/util/layoutAppliesTopbar.d.ts +2 -1
- package/dist/types/src/util/layoutAppliesTopbar.d.ts.map +1 -1
- package/dist/types/src/util/overscroll.d.ts.map +1 -1
- package/dist/types/src/util/set-active.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/package.json +39 -30
- package/src/capabilities/app-graph-builder.ts +120 -92
- package/src/capabilities/check-app-scheme.ts +3 -7
- package/src/capabilities/index.ts +3 -2
- package/src/capabilities/intent-resolver.ts +181 -135
- package/src/capabilities/settings.ts +4 -4
- package/src/capabilities/state.ts +7 -4
- package/src/capabilities/tools.ts +15 -12
- package/src/capabilities/url-handler.ts +4 -4
- package/src/components/DeckLayout/ContentEmpty.tsx +9 -4
- package/src/components/DeckLayout/DeckLayout.tsx +123 -188
- package/src/components/DeckLayout/Dialog.tsx +36 -0
- package/src/components/DeckLayout/Popover.tsx +104 -0
- package/src/components/Plank/Plank.stories.tsx +20 -8
- package/src/components/Plank/Plank.tsx +108 -72
- package/src/components/Plank/PlankControls.tsx +53 -57
- package/src/components/Plank/PlankError.tsx +2 -6
- package/src/components/Plank/PlankHeading.tsx +31 -12
- package/src/components/Sidebar/ComplementarySidebar.tsx +36 -57
- package/src/components/Sidebar/Sidebar.tsx +7 -4
- package/src/components/Sidebar/SidebarButton.tsx +26 -7
- package/src/components/fragments.ts +1 -1
- package/src/hooks/index.ts +5 -1
- package/src/{util → hooks}/useCompanions.ts +3 -3
- package/src/hooks/useDeckCompanions.ts +33 -0
- package/src/{util → hooks}/useHoistStatusbar.ts +9 -4
- package/src/hooks/useNodeActionExpander.ts +3 -8
- package/src/index.ts +1 -1
- package/src/translations.ts +2 -1
- package/src/types.ts +77 -71
- package/src/util/index.ts +1 -4
- package/src/util/layoutAppliesTopbar.ts +8 -2
- package/dist/lib/browser/app-graph-builder-VYZ4IWI3.mjs.map +0 -7
- package/dist/lib/browser/check-app-scheme-SEYECDHI.mjs.map +0 -7
- package/dist/lib/browser/chunk-6ZSOFCPP.mjs +0 -117
- package/dist/lib/browser/chunk-6ZSOFCPP.mjs.map +0 -7
- package/dist/lib/browser/chunk-B4LOJUWW.mjs +0 -24
- package/dist/lib/browser/chunk-B4LOJUWW.mjs.map +0 -7
- package/dist/lib/browser/chunk-FJBMNSUC.mjs +0 -1289
- package/dist/lib/browser/chunk-FJBMNSUC.mjs.map +0 -7
- package/dist/lib/browser/chunk-FLOVGNYB.mjs +0 -81
- package/dist/lib/browser/chunk-FLOVGNYB.mjs.map +0 -7
- package/dist/lib/browser/chunk-RJNCG4ND.mjs +0 -154
- package/dist/lib/browser/chunk-RJNCG4ND.mjs.map +0 -7
- package/dist/lib/browser/intent-resolver-UDYKO2QW.mjs.map +0 -7
- package/dist/lib/browser/settings-HMDGSBGO.mjs.map +0 -7
- package/dist/lib/browser/state-7TN26M42.mjs.map +0 -7
- package/dist/lib/browser/tools-SC6QEN7R.mjs.map +0 -7
- package/dist/lib/browser/url-handler-ODG4B6NX.mjs.map +0 -7
- package/dist/types/src/components/DeckLayout/Fullscreen.d.ts +0 -5
- package/dist/types/src/components/DeckLayout/Fullscreen.d.ts.map +0 -1
- package/dist/types/src/util/useBreakpoints.d.ts.map +0 -1
- package/dist/types/src/util/useCompanions.d.ts.map +0 -1
- package/dist/types/src/util/useHoistStatusbar.d.ts +0 -2
- package/dist/types/src/util/useHoistStatusbar.d.ts.map +0 -1
- package/src/components/DeckLayout/Fullscreen.tsx +0 -31
- /package/dist/lib/browser/{react-root-XLXN2VEW.mjs.map → react-root-DF3IUPSE.mjs.map} +0 -0
- /package/dist/lib/browser/{react-surface-WNGMZL7I.mjs.map → react-surface-T6YWQ6CS.mjs.map} +0 -0
- /package/dist/types/src/{util → hooks}/useBreakpoints.d.ts +0 -0
- /package/dist/types/src/{util → hooks}/useCompanions.d.ts +0 -0
- /package/src/{util → hooks}/useBreakpoints.ts +0 -0
|
@@ -2,34 +2,33 @@ import {
|
|
|
2
2
|
closeEntry,
|
|
3
3
|
createEntryId,
|
|
4
4
|
incrementPlank,
|
|
5
|
-
openEntry
|
|
6
|
-
} from "./chunk-FLOVGNYB.mjs";
|
|
7
|
-
import {
|
|
5
|
+
openEntry,
|
|
8
6
|
setActive
|
|
9
|
-
} from "./chunk-
|
|
7
|
+
} from "./chunk-TRFYUEBA.mjs";
|
|
10
8
|
import {
|
|
11
9
|
DeckCapabilities
|
|
12
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-KLN73CM3.mjs";
|
|
13
11
|
import {
|
|
14
12
|
DeckAction,
|
|
15
13
|
PLANK_COMPANION_TYPE,
|
|
16
14
|
defaultDeck,
|
|
17
15
|
getMode,
|
|
18
16
|
isLayoutMode
|
|
19
|
-
} from "./chunk-
|
|
17
|
+
} from "./chunk-YN5OZEGS.mjs";
|
|
20
18
|
import {
|
|
21
19
|
DECK_PLUGIN
|
|
22
20
|
} from "./chunk-NSATFAEE.mjs";
|
|
23
21
|
|
|
24
22
|
// packages/plugins/plugin-deck/src/capabilities/intent-resolver.ts
|
|
25
23
|
import { batch } from "@preact/signals-core";
|
|
26
|
-
import { pipe } from "effect";
|
|
24
|
+
import { Schema, Effect, pipe, Option } from "effect";
|
|
27
25
|
import { Capabilities, createResolver, contributes, IntentAction, LayoutAction, createIntent, chain } from "@dxos/app-framework";
|
|
28
|
-
import { getTypename
|
|
26
|
+
import { getTypename } from "@dxos/echo-schema";
|
|
29
27
|
import { invariant } from "@dxos/invariant";
|
|
30
|
-
import {
|
|
28
|
+
import { isLiveObject } from "@dxos/live-object";
|
|
31
29
|
import { log } from "@dxos/log";
|
|
32
30
|
import { AttentionCapabilities } from "@dxos/plugin-attention";
|
|
31
|
+
import { isActionLike } from "@dxos/plugin-graph";
|
|
33
32
|
import { ObservabilityAction } from "@dxos/plugin-observability/types";
|
|
34
33
|
import { byPosition, isNonNullable } from "@dxos/util";
|
|
35
34
|
var __dxlog_file = "/home/runner/work/dxos/dxos/packages/plugins/plugin-deck/src/capabilities/intent-resolver.ts";
|
|
@@ -37,8 +36,8 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
|
|
|
37
36
|
createResolver({
|
|
38
37
|
intent: IntentAction.ShowUndo,
|
|
39
38
|
resolve: (data) => {
|
|
40
|
-
const layout = context.
|
|
41
|
-
const { undoPromise: undo } = context.
|
|
39
|
+
const layout = context.getCapability(DeckCapabilities.MutableDeckState);
|
|
40
|
+
const { undoPromise: undo } = context.getCapability(Capabilities.IntentDispatcher);
|
|
42
41
|
if (layout.currentUndoId) {
|
|
43
42
|
layout.toasts = layout.toasts.filter((toast) => toast.id !== layout.currentUndoId);
|
|
44
43
|
}
|
|
@@ -79,11 +78,11 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
|
|
|
79
78
|
}),
|
|
80
79
|
createResolver({
|
|
81
80
|
intent: LayoutAction.UpdateLayout,
|
|
82
|
-
// TODO(wittjosiah): This should be able to just be `
|
|
81
|
+
// TODO(wittjosiah): This should be able to just be `Schema.is(LayoutAction.UpdateSidebar.fields.input)`
|
|
83
82
|
// but the filter is not being applied correctly.
|
|
84
|
-
filter: (data) =>
|
|
83
|
+
filter: (data) => Schema.is(LayoutAction.UpdateSidebar.fields.input)(data),
|
|
85
84
|
resolve: ({ options }) => {
|
|
86
|
-
const layout = context.
|
|
85
|
+
const layout = context.getCapability(DeckCapabilities.MutableDeckState);
|
|
87
86
|
const next = options?.state ?? layout.sidebarState;
|
|
88
87
|
if (next !== layout.sidebarState) {
|
|
89
88
|
layout.sidebarState = next;
|
|
@@ -92,11 +91,11 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
|
|
|
92
91
|
}),
|
|
93
92
|
createResolver({
|
|
94
93
|
intent: LayoutAction.UpdateLayout,
|
|
95
|
-
// TODO(wittjosiah): This should be able to just be `
|
|
94
|
+
// TODO(wittjosiah): This should be able to just be `Schema.is(LayoutAction.UpdateComplementary.fields.input)`
|
|
96
95
|
// but the filter is not being applied correctly.
|
|
97
|
-
filter: (data) =>
|
|
96
|
+
filter: (data) => Schema.is(LayoutAction.UpdateComplementary.fields.input)(data),
|
|
98
97
|
resolve: ({ subject, options }) => {
|
|
99
|
-
const layout = context.
|
|
98
|
+
const layout = context.getCapability(DeckCapabilities.MutableDeckState);
|
|
100
99
|
if (layout.complementarySidebarPanel !== subject) {
|
|
101
100
|
layout.complementarySidebarPanel = subject;
|
|
102
101
|
}
|
|
@@ -108,52 +107,60 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
|
|
|
108
107
|
}),
|
|
109
108
|
createResolver({
|
|
110
109
|
intent: LayoutAction.UpdateLayout,
|
|
111
|
-
// TODO(wittjosiah): This should be able to just be `
|
|
110
|
+
// TODO(wittjosiah): This should be able to just be `Schema.is(LayoutAction.UpdateDialog.fields.input)`
|
|
112
111
|
// but the filter is not being applied correctly.
|
|
113
|
-
filter: (data) =>
|
|
112
|
+
filter: (data) => Schema.is(LayoutAction.UpdateDialog.fields.input)(data),
|
|
114
113
|
resolve: ({ subject, options }) => {
|
|
115
|
-
const layout = context.
|
|
114
|
+
const layout = context.getCapability(DeckCapabilities.MutableDeckState);
|
|
116
115
|
layout.dialogOpen = options.state ?? Boolean(subject);
|
|
116
|
+
layout.dialogType = options.type ?? "default";
|
|
117
|
+
layout.dialogBlockAlign = options.blockAlign ?? "center";
|
|
118
|
+
layout.dialogOverlayClasses = options.overlayClasses;
|
|
119
|
+
layout.dialogOverlayStyle = options.overlayStyle;
|
|
117
120
|
layout.dialogContent = subject ? {
|
|
118
121
|
component: subject,
|
|
119
122
|
props: options.props
|
|
120
123
|
} : null;
|
|
121
|
-
layout.dialogBlockAlign = options.blockAlign ?? "center";
|
|
122
|
-
layout.dialogType = options.type ?? "default";
|
|
123
124
|
}
|
|
124
125
|
}),
|
|
125
126
|
createResolver({
|
|
126
127
|
intent: LayoutAction.UpdateLayout,
|
|
127
|
-
// TODO(wittjosiah): This should be able to just be `
|
|
128
|
+
// TODO(wittjosiah): This should be able to just be `Schema.is(LayoutAction.UpdatePopover.fields.input)`
|
|
128
129
|
// but the filter is not being applied correctly.
|
|
129
|
-
filter: (data) =>
|
|
130
|
+
filter: (data) => Schema.is(LayoutAction.UpdatePopover.fields.input)(data),
|
|
130
131
|
resolve: ({ subject, options }) => {
|
|
131
|
-
const layout = context.
|
|
132
|
+
const layout = context.getCapability(DeckCapabilities.MutableDeckState);
|
|
132
133
|
layout.popoverOpen = options.state ?? Boolean(subject);
|
|
133
|
-
layout.popoverContent = subject ? {
|
|
134
|
+
layout.popoverContent = typeof subject === "string" ? {
|
|
134
135
|
component: subject,
|
|
135
136
|
props: options.props
|
|
137
|
+
} : subject ? {
|
|
138
|
+
subject
|
|
136
139
|
} : null;
|
|
137
|
-
layout.popoverAnchorId = options.anchorId;
|
|
138
140
|
layout.popoverSide = options.side;
|
|
141
|
+
if (options.variant === "virtual") {
|
|
142
|
+
layout.popoverAnchor = options.anchor;
|
|
143
|
+
} else {
|
|
144
|
+
layout.popoverAnchorId = options.anchorId;
|
|
145
|
+
}
|
|
139
146
|
}
|
|
140
147
|
}),
|
|
141
148
|
createResolver({
|
|
142
149
|
intent: LayoutAction.UpdateLayout,
|
|
143
|
-
// TODO(wittjosiah): This should be able to just be `
|
|
150
|
+
// TODO(wittjosiah): This should be able to just be `Schema.is(LayoutAction.AddToast.fields.input)`
|
|
144
151
|
// but the filter is not being applied correctly.
|
|
145
|
-
filter: (data) =>
|
|
152
|
+
filter: (data) => Schema.is(LayoutAction.AddToast.fields.input)(data),
|
|
146
153
|
resolve: ({ subject }) => {
|
|
147
|
-
const layout = context.
|
|
154
|
+
const layout = context.getCapability(DeckCapabilities.MutableDeckState);
|
|
148
155
|
layout.toasts.push(subject);
|
|
149
156
|
}
|
|
150
157
|
}),
|
|
151
158
|
createResolver({
|
|
152
159
|
intent: LayoutAction.UpdateLayout,
|
|
153
|
-
// TODO(wittjosiah): This should be able to just be `
|
|
160
|
+
// TODO(wittjosiah): This should be able to just be `Schema.is(LayoutAction.SetLayoutMode.fields.input)`
|
|
154
161
|
// but the filter is not being applied correctly.
|
|
155
162
|
filter: (data) => {
|
|
156
|
-
if (!
|
|
163
|
+
if (!Schema.is(LayoutAction.SetLayoutMode.fields.input)(data)) {
|
|
157
164
|
return false;
|
|
158
165
|
}
|
|
159
166
|
if ("mode" in data.options) {
|
|
@@ -162,7 +169,7 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
|
|
|
162
169
|
return true;
|
|
163
170
|
},
|
|
164
171
|
resolve: ({ subject, options }) => {
|
|
165
|
-
const state = context.
|
|
172
|
+
const state = context.getCapability(DeckCapabilities.MutableDeckState);
|
|
166
173
|
const setMode = (mode) => {
|
|
167
174
|
const deck = state.deck;
|
|
168
175
|
const current = deck.solo ? [
|
|
@@ -186,10 +193,8 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
|
|
|
186
193
|
deck.solo = void 0;
|
|
187
194
|
deck.initialized = true;
|
|
188
195
|
}
|
|
189
|
-
if (mode === "fullscreen"
|
|
190
|
-
deck.fullscreen =
|
|
191
|
-
} else if (mode !== "fullscreen" && deck.fullscreen) {
|
|
192
|
-
deck.fullscreen = false;
|
|
196
|
+
if (mode === "solo--fullscreen") {
|
|
197
|
+
deck.fullscreen = !deck.fullscreen;
|
|
193
198
|
}
|
|
194
199
|
};
|
|
195
200
|
return batch(() => {
|
|
@@ -205,7 +210,7 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
|
|
|
205
210
|
} else {
|
|
206
211
|
log.warn("Invalid layout mode", options, {
|
|
207
212
|
F: __dxlog_file,
|
|
208
|
-
L:
|
|
213
|
+
L: 200,
|
|
209
214
|
S: void 0,
|
|
210
215
|
C: (f, a) => f(...a)
|
|
211
216
|
});
|
|
@@ -215,9 +220,10 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
|
|
|
215
220
|
}),
|
|
216
221
|
createResolver({
|
|
217
222
|
intent: LayoutAction.UpdateLayout,
|
|
218
|
-
filter: (data) =>
|
|
223
|
+
filter: (data) => Schema.is(LayoutAction.SwitchWorkspace.fields.input)(data),
|
|
219
224
|
resolve: ({ subject }) => {
|
|
220
|
-
const
|
|
225
|
+
const { graph } = context.getCapability(Capabilities.AppGraph);
|
|
226
|
+
const state = context.getCapability(DeckCapabilities.MutableDeckState);
|
|
221
227
|
batch(() => {
|
|
222
228
|
if (!state.activeDeck.startsWith("!")) {
|
|
223
229
|
state.previousDeck = state.activeDeck;
|
|
@@ -239,14 +245,28 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
|
|
|
239
245
|
})
|
|
240
246
|
]
|
|
241
247
|
};
|
|
248
|
+
} else {
|
|
249
|
+
const [item] = graph.getConnections(subject).filter((node) => !isActionLike(node) && node.properties.disposition !== "hidden");
|
|
250
|
+
if (item) {
|
|
251
|
+
return {
|
|
252
|
+
intents: [
|
|
253
|
+
createIntent(LayoutAction.Open, {
|
|
254
|
+
part: "main",
|
|
255
|
+
subject: [
|
|
256
|
+
item.id
|
|
257
|
+
]
|
|
258
|
+
})
|
|
259
|
+
]
|
|
260
|
+
};
|
|
261
|
+
}
|
|
242
262
|
}
|
|
243
263
|
}
|
|
244
264
|
}),
|
|
245
265
|
createResolver({
|
|
246
266
|
intent: LayoutAction.UpdateLayout,
|
|
247
|
-
filter: (data) =>
|
|
267
|
+
filter: (data) => Schema.is(LayoutAction.RevertWorkspace.fields.input)(data),
|
|
248
268
|
resolve: () => {
|
|
249
|
-
const state = context.
|
|
269
|
+
const state = context.getCapability(DeckCapabilities.MutableDeckState);
|
|
250
270
|
return {
|
|
251
271
|
intents: [
|
|
252
272
|
createIntent(LayoutAction.SwitchWorkspace, {
|
|
@@ -259,12 +279,19 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
|
|
|
259
279
|
}),
|
|
260
280
|
createResolver({
|
|
261
281
|
intent: LayoutAction.UpdateLayout,
|
|
262
|
-
filter: (data) =>
|
|
263
|
-
resolve: ({ subject, options }) => {
|
|
264
|
-
const { graph } = context.
|
|
265
|
-
const state = context.
|
|
266
|
-
const attention = context.
|
|
267
|
-
const settings = context.
|
|
282
|
+
filter: (data) => Schema.is(LayoutAction.Open.fields.input)(data),
|
|
283
|
+
resolve: ({ subject, options }) => Effect.gen(function* () {
|
|
284
|
+
const { graph } = context.getCapability(Capabilities.AppGraph);
|
|
285
|
+
const state = context.getCapability(DeckCapabilities.MutableDeckState);
|
|
286
|
+
const attention = context.getCapability(AttentionCapabilities.Attention);
|
|
287
|
+
const settings = context.getCapabilities(Capabilities.SettingsStore)[0]?.getStore(DECK_PLUGIN)?.value;
|
|
288
|
+
if (options?.workspace && state.activeDeck !== options?.workspace) {
|
|
289
|
+
const { dispatch } = context.getCapability(Capabilities.IntentDispatcher);
|
|
290
|
+
yield* dispatch(createIntent(LayoutAction.SwitchWorkspace, {
|
|
291
|
+
part: "workspace",
|
|
292
|
+
subject: options.workspace
|
|
293
|
+
}));
|
|
294
|
+
}
|
|
268
295
|
const previouslyOpenIds = new Set(state.deck.solo ? [
|
|
269
296
|
state.deck.solo
|
|
270
297
|
] : state.deck.active);
|
|
@@ -298,8 +325,13 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
|
|
|
298
325
|
subject: newlyOpen[0] ?? subject[0]
|
|
299
326
|
}),
|
|
300
327
|
...newlyOpen.map((subjectId) => {
|
|
301
|
-
const
|
|
302
|
-
|
|
328
|
+
const typename = Option.match(graph.getNode(subjectId), {
|
|
329
|
+
onNone: () => void 0,
|
|
330
|
+
onSome: (node) => {
|
|
331
|
+
const active = node.data;
|
|
332
|
+
return isLiveObject(active) ? getTypename(active) : void 0;
|
|
333
|
+
}
|
|
334
|
+
});
|
|
303
335
|
return createIntent(ObservabilityAction.SendEvent, {
|
|
304
336
|
name: "navigation.activate",
|
|
305
337
|
properties: {
|
|
@@ -310,14 +342,14 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
|
|
|
310
342
|
})
|
|
311
343
|
]
|
|
312
344
|
};
|
|
313
|
-
}
|
|
345
|
+
})
|
|
314
346
|
}),
|
|
315
347
|
createResolver({
|
|
316
348
|
intent: LayoutAction.UpdateLayout,
|
|
317
|
-
filter: (data) =>
|
|
349
|
+
filter: (data) => Schema.is(LayoutAction.Close.fields.input)(data),
|
|
318
350
|
resolve: ({ subject }) => {
|
|
319
|
-
const state = context.
|
|
320
|
-
const attention = context.
|
|
351
|
+
const state = context.getCapability(DeckCapabilities.MutableDeckState);
|
|
352
|
+
const attention = context.getCapability(AttentionCapabilities.Attention);
|
|
321
353
|
const active = state.deck.solo ? [
|
|
322
354
|
state.deck.solo
|
|
323
355
|
] : state.deck.active;
|
|
@@ -346,10 +378,10 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
|
|
|
346
378
|
}),
|
|
347
379
|
createResolver({
|
|
348
380
|
intent: LayoutAction.UpdateLayout,
|
|
349
|
-
filter: (data) =>
|
|
381
|
+
filter: (data) => Schema.is(LayoutAction.Set.fields.input)(data),
|
|
350
382
|
resolve: ({ subject }) => {
|
|
351
|
-
const state = context.
|
|
352
|
-
const attention = context.
|
|
383
|
+
const state = context.getCapability(DeckCapabilities.MutableDeckState);
|
|
384
|
+
const attention = context.getCapability(AttentionCapabilities.Attention);
|
|
353
385
|
const toAttend = setActive({
|
|
354
386
|
next: subject,
|
|
355
387
|
state,
|
|
@@ -367,30 +399,30 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
|
|
|
367
399
|
}),
|
|
368
400
|
createResolver({
|
|
369
401
|
intent: LayoutAction.UpdateLayout,
|
|
370
|
-
filter: (data) =>
|
|
402
|
+
filter: (data) => Schema.is(LayoutAction.ScrollIntoView.fields.input)(data),
|
|
371
403
|
resolve: ({ subject }) => {
|
|
372
|
-
const layout = context.
|
|
404
|
+
const layout = context.getCapability(DeckCapabilities.MutableDeckState);
|
|
373
405
|
layout.scrollIntoView = subject;
|
|
374
406
|
}
|
|
375
407
|
}),
|
|
376
408
|
createResolver({
|
|
377
409
|
intent: DeckAction.UpdatePlankSize,
|
|
378
410
|
resolve: (data) => {
|
|
379
|
-
const state = context.
|
|
411
|
+
const state = context.getCapability(DeckCapabilities.MutableDeckState);
|
|
380
412
|
state.deck.plankSizing[data.id] = data.size;
|
|
381
413
|
}
|
|
382
414
|
}),
|
|
383
415
|
createResolver({
|
|
384
416
|
intent: DeckAction.ChangeCompanion,
|
|
385
417
|
resolve: (data) => {
|
|
386
|
-
const state = context.
|
|
418
|
+
const state = context.getCapability(DeckCapabilities.MutableDeckState);
|
|
387
419
|
if (data.companion === null) {
|
|
388
420
|
const { [data.primary]: _, ...nextActiveCompanions } = state.deck.activeCompanions ?? {};
|
|
389
421
|
state.deck.activeCompanions = nextActiveCompanions;
|
|
390
422
|
} else {
|
|
391
423
|
invariant(data.companion !== data.primary, void 0, {
|
|
392
424
|
F: __dxlog_file,
|
|
393
|
-
L:
|
|
425
|
+
L: 380,
|
|
394
426
|
S: void 0,
|
|
395
427
|
A: [
|
|
396
428
|
"data.companion !== data.primary",
|
|
@@ -407,9 +439,9 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
|
|
|
407
439
|
createResolver({
|
|
408
440
|
intent: DeckAction.Adjust,
|
|
409
441
|
resolve: (adjustment) => {
|
|
410
|
-
const state = context.
|
|
411
|
-
const attention = context.
|
|
412
|
-
const { graph } = context.
|
|
442
|
+
const state = context.getCapability(DeckCapabilities.MutableDeckState);
|
|
443
|
+
const attention = context.getCapability(AttentionCapabilities.Attention);
|
|
444
|
+
const { graph } = context.getCapability(Capabilities.AppGraph);
|
|
413
445
|
return batch(() => {
|
|
414
446
|
if (adjustment.type === "increment-end" || adjustment.type === "increment-start") {
|
|
415
447
|
setActive({
|
|
@@ -419,12 +451,9 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
|
|
|
419
451
|
});
|
|
420
452
|
}
|
|
421
453
|
if (adjustment.type === "companion") {
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
}).toSorted((a, b) => byPosition(a.properties, b.properties)) : [];
|
|
426
|
-
if (companion) {
|
|
427
|
-
return {
|
|
454
|
+
return pipe(graph.getNode(adjustment.id), Option.map((node) => graph.getConnections(node.id).filter((n) => n.type === PLANK_COMPANION_TYPE).toSorted((a, b) => byPosition(a.properties, b.properties))), Option.flatMap((companions) => companions.length > 0 ? Option.some(companions[0]) : Option.none()), Option.match({
|
|
455
|
+
onNone: () => ({}),
|
|
456
|
+
onSome: (companion) => ({
|
|
428
457
|
intents: [
|
|
429
458
|
// TODO(wittjosiah): This should remember the previously selected companion.
|
|
430
459
|
createIntent(DeckAction.ChangeCompanion, {
|
|
@@ -432,10 +461,10 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
|
|
|
432
461
|
companion: companion.id
|
|
433
462
|
})
|
|
434
463
|
]
|
|
435
|
-
}
|
|
436
|
-
}
|
|
464
|
+
})
|
|
465
|
+
}));
|
|
437
466
|
}
|
|
438
|
-
if (adjustment.type
|
|
467
|
+
if (adjustment.type.startsWith("solo")) {
|
|
439
468
|
const entryId = adjustment.id;
|
|
440
469
|
if (!state.deck.solo) {
|
|
441
470
|
return {
|
|
@@ -444,28 +473,42 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
|
|
|
444
473
|
part: "mode",
|
|
445
474
|
subject: entryId,
|
|
446
475
|
options: {
|
|
447
|
-
mode:
|
|
476
|
+
mode: adjustment.type
|
|
448
477
|
}
|
|
449
478
|
})
|
|
450
479
|
]
|
|
451
480
|
};
|
|
452
481
|
} else {
|
|
453
|
-
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
|
|
468
|
-
|
|
482
|
+
if (adjustment.type === "solo--fullscreen") {
|
|
483
|
+
return {
|
|
484
|
+
intents: [
|
|
485
|
+
createIntent(LayoutAction.SetLayoutMode, {
|
|
486
|
+
part: "mode",
|
|
487
|
+
subject: entryId,
|
|
488
|
+
options: {
|
|
489
|
+
mode: "solo--fullscreen"
|
|
490
|
+
}
|
|
491
|
+
})
|
|
492
|
+
]
|
|
493
|
+
};
|
|
494
|
+
} else if (adjustment.type === "solo") {
|
|
495
|
+
return {
|
|
496
|
+
intents: [
|
|
497
|
+
// NOTE: The order of these is important.
|
|
498
|
+
pipe(createIntent(LayoutAction.SetLayoutMode, {
|
|
499
|
+
part: "mode",
|
|
500
|
+
options: {
|
|
501
|
+
mode: "deck"
|
|
502
|
+
}
|
|
503
|
+
}), chain(LayoutAction.Open, {
|
|
504
|
+
part: "main",
|
|
505
|
+
subject: [
|
|
506
|
+
entryId
|
|
507
|
+
]
|
|
508
|
+
}))
|
|
509
|
+
]
|
|
510
|
+
};
|
|
511
|
+
}
|
|
469
512
|
}
|
|
470
513
|
}
|
|
471
514
|
});
|
|
@@ -475,4 +518,4 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
|
|
|
475
518
|
export {
|
|
476
519
|
intent_resolver_default as default
|
|
477
520
|
};
|
|
478
|
-
//# sourceMappingURL=intent-resolver-
|
|
521
|
+
//# sourceMappingURL=intent-resolver-3GAC57UA.mjs.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/capabilities/intent-resolver.ts"],
|
|
4
|
+
"sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { batch } from '@preact/signals-core';\nimport { Schema, Effect, pipe, Option } from 'effect';\n\nimport {\n Capabilities,\n createResolver,\n contributes,\n IntentAction,\n LayoutAction,\n type PluginContext,\n createIntent,\n chain,\n} from '@dxos/app-framework';\nimport { getTypename } from '@dxos/echo-schema';\nimport { invariant } from '@dxos/invariant';\nimport { isLiveObject } from '@dxos/live-object';\nimport { log } from '@dxos/log';\nimport { AttentionCapabilities } from '@dxos/plugin-attention';\nimport { isActionLike } from '@dxos/plugin-graph';\nimport { ObservabilityAction } from '@dxos/plugin-observability/types';\nimport { byPosition, isNonNullable } from '@dxos/util';\n\nimport { DeckCapabilities } from './capabilities';\nimport { closeEntry, createEntryId, incrementPlank, openEntry } from '../layout';\nimport { DECK_PLUGIN } from '../meta';\nimport {\n DeckAction,\n type LayoutMode,\n type DeckSettingsProps,\n isLayoutMode,\n getMode,\n defaultDeck,\n PLANK_COMPANION_TYPE,\n} from '../types';\nimport { setActive } from '../util';\n\nexport default (context: PluginContext) =>\n contributes(Capabilities.IntentResolver, [\n createResolver({\n intent: IntentAction.ShowUndo,\n resolve: (data) => {\n const layout = context.getCapability(DeckCapabilities.MutableDeckState);\n const { undoPromise: undo } = context.getCapability(Capabilities.IntentDispatcher);\n\n // TODO(wittjosiah): Support undoing further back than the last action.\n if (layout.currentUndoId) {\n layout.toasts = layout.toasts.filter((toast) => toast.id !== layout.currentUndoId);\n }\n layout.currentUndoId = `${IntentAction.ShowUndo._tag}-${Date.now()}`;\n layout.toasts = [\n ...layout.toasts,\n {\n id: layout.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 }),\n createResolver({\n intent: LayoutAction.UpdateLayout,\n // TODO(wittjosiah): This should be able to just be `Schema.is(LayoutAction.UpdateSidebar.fields.input)`\n // but the filter is not being applied correctly.\n filter: (data): data is Schema.Schema.Type<typeof LayoutAction.UpdateSidebar.fields.input> =>\n Schema.is(LayoutAction.UpdateSidebar.fields.input)(data),\n resolve: ({ options }) => {\n const layout = context.getCapability(DeckCapabilities.MutableDeckState);\n const next = options?.state ?? layout.sidebarState;\n if (next !== layout.sidebarState) {\n layout.sidebarState = next;\n }\n },\n }),\n createResolver({\n intent: LayoutAction.UpdateLayout,\n // TODO(wittjosiah): This should be able to just be `Schema.is(LayoutAction.UpdateComplementary.fields.input)`\n // but the filter is not being applied correctly.\n filter: (data): data is Schema.Schema.Type<typeof LayoutAction.UpdateComplementary.fields.input> =>\n Schema.is(LayoutAction.UpdateComplementary.fields.input)(data),\n resolve: ({ subject, options }) => {\n const layout = context.getCapability(DeckCapabilities.MutableDeckState);\n\n if (layout.complementarySidebarPanel !== subject) {\n layout.complementarySidebarPanel = subject;\n }\n\n const next = subject ? 'expanded' : options?.state ?? layout.complementarySidebarState;\n if (next !== layout.complementarySidebarState) {\n layout.complementarySidebarState = next;\n }\n },\n }),\n createResolver({\n intent: LayoutAction.UpdateLayout,\n // TODO(wittjosiah): This should be able to just be `Schema.is(LayoutAction.UpdateDialog.fields.input)`\n // but the filter is not being applied correctly.\n filter: (data): data is Schema.Schema.Type<typeof LayoutAction.UpdateDialog.fields.input> =>\n Schema.is(LayoutAction.UpdateDialog.fields.input)(data),\n resolve: ({ subject, options }) => {\n const layout = context.getCapability(DeckCapabilities.MutableDeckState);\n layout.dialogOpen = options.state ?? Boolean(subject);\n layout.dialogType = options.type ?? 'default';\n layout.dialogBlockAlign = options.blockAlign ?? 'center';\n layout.dialogOverlayClasses = options.overlayClasses;\n layout.dialogOverlayStyle = options.overlayStyle;\n layout.dialogContent = subject ? { component: subject, props: options.props } : null;\n },\n }),\n createResolver({\n intent: LayoutAction.UpdateLayout,\n // TODO(wittjosiah): This should be able to just be `Schema.is(LayoutAction.UpdatePopover.fields.input)`\n // but the filter is not being applied correctly.\n filter: (data): data is Schema.Schema.Type<typeof LayoutAction.UpdatePopover.fields.input> =>\n Schema.is(LayoutAction.UpdatePopover.fields.input)(data),\n resolve: ({ subject, options }) => {\n const layout = context.getCapability(DeckCapabilities.MutableDeckState);\n layout.popoverOpen = options.state ?? Boolean(subject);\n layout.popoverContent =\n typeof subject === 'string' ? { component: subject, props: options.props } : subject ? { subject } : null;\n layout.popoverSide = options.side;\n if (options.variant === 'virtual') {\n layout.popoverAnchor = options.anchor;\n } else {\n layout.popoverAnchorId = options.anchorId;\n }\n },\n }),\n createResolver({\n intent: LayoutAction.UpdateLayout,\n // TODO(wittjosiah): This should be able to just be `Schema.is(LayoutAction.AddToast.fields.input)`\n // but the filter is not being applied correctly.\n filter: (data): data is Schema.Schema.Type<typeof LayoutAction.AddToast.fields.input> =>\n Schema.is(LayoutAction.AddToast.fields.input)(data),\n resolve: ({ subject }) => {\n const layout = context.getCapability(DeckCapabilities.MutableDeckState);\n layout.toasts.push(subject);\n },\n }),\n createResolver({\n intent: LayoutAction.UpdateLayout,\n // TODO(wittjosiah): This should be able to just be `Schema.is(LayoutAction.SetLayoutMode.fields.input)`\n // but the filter is not being applied correctly.\n filter: (data): data is Schema.Schema.Type<typeof LayoutAction.SetLayoutMode.fields.input> => {\n if (!Schema.is(LayoutAction.SetLayoutMode.fields.input)(data)) {\n return false;\n }\n\n if ('mode' in data.options) {\n return isLayoutMode(data.options.mode);\n }\n\n return true;\n },\n resolve: ({ subject, options }) => {\n const state = context.getCapability(DeckCapabilities.MutableDeckState);\n\n const setMode = (mode: LayoutMode) => {\n const deck = state.deck;\n const current = deck.solo ? [deck.solo] : deck.active;\n // When un-soloing, the solo entry is added to the deck.\n const next = (\n mode !== 'deck' ? [subject ?? deck.solo ?? deck.active[0]] : [...deck.active, deck.solo]\n ).filter(isNonNullable);\n\n const removed = current.filter((id) => !next.includes(id));\n const closed = Array.from(new Set([...deck.inactive.filter((id) => !next.includes(id)), ...removed]));\n deck.inactive = closed;\n\n if (mode !== 'deck' && next[0]) {\n deck.solo = next[0];\n } else if (mode === 'deck' && deck.solo) {\n deck.solo = undefined;\n deck.initialized = true;\n }\n\n if (mode === 'solo--fullscreen') {\n deck.fullscreen = !deck.fullscreen;\n }\n };\n\n return batch(() => {\n if ('mode' in options) {\n const current = getMode(state.deck);\n if (current !== options.mode) {\n state.previousMode[state.activeDeck] = current;\n }\n setMode(options.mode as LayoutMode);\n } else if ('revert' in options) {\n const last = state.previousMode[state.activeDeck];\n setMode(last ?? 'solo');\n } else {\n log.warn('Invalid layout mode', options);\n }\n });\n },\n }),\n createResolver({\n intent: LayoutAction.UpdateLayout,\n filter: (data): data is Schema.Schema.Type<typeof LayoutAction.SwitchWorkspace.fields.input> =>\n Schema.is(LayoutAction.SwitchWorkspace.fields.input)(data),\n resolve: ({ subject }) => {\n const { graph } = context.getCapability(Capabilities.AppGraph);\n const state = context.getCapability(DeckCapabilities.MutableDeckState);\n batch(() => {\n // TODO(wittjosiah): This is a hack to prevent the previous deck from being set for pinned items.\n // Ideally this should be worked into the data model in a generic way.\n if (!state.activeDeck.startsWith('!')) {\n state.previousDeck = state.activeDeck;\n }\n state.activeDeck = subject;\n if (!state.decks[subject]) {\n state.decks[subject] = { ...defaultDeck };\n }\n });\n\n const first = state.deck.solo ? state.deck.solo : state.deck.active[0];\n if (first) {\n return {\n intents: [createIntent(LayoutAction.ScrollIntoView, { part: 'current', subject: first })],\n };\n } else {\n const [item] = graph\n .getConnections(subject)\n .filter((node) => !isActionLike(node) && node.properties.disposition !== 'hidden');\n if (item) {\n return {\n intents: [createIntent(LayoutAction.Open, { part: 'main', subject: [item.id] })],\n };\n }\n }\n },\n }),\n createResolver({\n intent: LayoutAction.UpdateLayout,\n filter: (data): data is Schema.Schema.Type<typeof LayoutAction.RevertWorkspace.fields.input> =>\n Schema.is(LayoutAction.RevertWorkspace.fields.input)(data),\n resolve: () => {\n const state = context.getCapability(DeckCapabilities.MutableDeckState);\n return {\n intents: [createIntent(LayoutAction.SwitchWorkspace, { part: 'workspace', subject: state.previousDeck })],\n };\n },\n }),\n createResolver({\n intent: LayoutAction.UpdateLayout,\n filter: (data): data is Schema.Schema.Type<typeof LayoutAction.Open.fields.input> =>\n Schema.is(LayoutAction.Open.fields.input)(data),\n resolve: ({ subject, options }) =>\n Effect.gen(function* () {\n const { graph } = context.getCapability(Capabilities.AppGraph);\n const state = context.getCapability(DeckCapabilities.MutableDeckState);\n const attention = context.getCapability(AttentionCapabilities.Attention);\n const settings = context\n .getCapabilities(Capabilities.SettingsStore)[0]\n ?.getStore<DeckSettingsProps>(DECK_PLUGIN)?.value;\n\n if (options?.workspace && state.activeDeck !== options?.workspace) {\n const { dispatch } = context.getCapability(Capabilities.IntentDispatcher);\n yield* dispatch(\n createIntent(LayoutAction.SwitchWorkspace, { part: 'workspace', subject: options.workspace }),\n );\n }\n\n const previouslyOpenIds = new Set<string>(state.deck.solo ? [state.deck.solo] : state.deck.active);\n batch(() => {\n const next = state.deck.solo\n ? (subject as string[]).map((id) => createEntryId(id, options?.variant))\n : subject.reduce(\n (acc, entryId) =>\n openEntry(acc, entryId, {\n key: options?.key,\n positioning: options?.positioning ?? settings?.newPlankPositioning,\n pivotId: options?.pivotId,\n variant: options?.variant,\n }),\n state.deck.active,\n );\n\n return setActive({ next, state, attention });\n });\n\n const ids = state.deck.solo ? [state.deck.solo] : state.deck.active;\n const newlyOpen = ids.filter((i) => !previouslyOpenIds.has(i));\n\n return {\n intents: [\n ...(options?.scrollIntoView !== false\n ? [createIntent(LayoutAction.ScrollIntoView, { part: 'current', subject: newlyOpen[0] ?? subject[0] })]\n : []),\n createIntent(LayoutAction.Expose, { part: 'navigation', subject: newlyOpen[0] ?? subject[0] }),\n ...newlyOpen.map((subjectId) => {\n const typename = Option.match(graph.getNode(subjectId), {\n onNone: () => undefined,\n onSome: (node) => {\n const active = node.data;\n return isLiveObject(active) ? getTypename(active) : undefined;\n },\n });\n return createIntent(ObservabilityAction.SendEvent, {\n name: 'navigation.activate',\n properties: {\n subjectId,\n typename,\n },\n });\n }),\n ],\n };\n }),\n }),\n createResolver({\n intent: LayoutAction.UpdateLayout,\n filter: (data): data is Schema.Schema.Type<typeof LayoutAction.Close.fields.input> =>\n Schema.is(LayoutAction.Close.fields.input)(data),\n resolve: ({ subject }) => {\n const state = context.getCapability(DeckCapabilities.MutableDeckState);\n const attention = context.getCapability(AttentionCapabilities.Attention);\n const active = state.deck.solo ? [state.deck.solo] : state.deck.active;\n const next = subject.reduce((acc, id) => closeEntry(acc, id), active);\n const toAttend = setActive({ next, state, attention });\n\n const clearCompanionIntents = subject\n .filter((id) => state.deck.activeCompanions && id in state.deck.activeCompanions)\n .map((primary) => createIntent(DeckAction.ChangeCompanion, { primary, companion: null }));\n\n return {\n intents: [\n ...clearCompanionIntents,\n ...(toAttend ? [createIntent(LayoutAction.ScrollIntoView, { part: 'current', subject: toAttend })] : []),\n ],\n };\n },\n }),\n createResolver({\n intent: LayoutAction.UpdateLayout,\n filter: (data): data is Schema.Schema.Type<typeof LayoutAction.Set.fields.input> =>\n Schema.is(LayoutAction.Set.fields.input)(data),\n resolve: ({ subject }) => {\n const state = context.getCapability(DeckCapabilities.MutableDeckState);\n const attention = context.getCapability(AttentionCapabilities.Attention);\n const toAttend = setActive({ next: subject as string[], state, attention });\n return {\n intents: toAttend ? [createIntent(LayoutAction.ScrollIntoView, { part: 'current', subject: toAttend })] : [],\n };\n },\n }),\n createResolver({\n intent: LayoutAction.UpdateLayout,\n filter: (data): data is Schema.Schema.Type<typeof LayoutAction.ScrollIntoView.fields.input> =>\n Schema.is(LayoutAction.ScrollIntoView.fields.input)(data),\n resolve: ({ subject }) => {\n const layout = context.getCapability(DeckCapabilities.MutableDeckState);\n layout.scrollIntoView = subject;\n },\n }),\n createResolver({\n intent: DeckAction.UpdatePlankSize,\n resolve: (data) => {\n const state = context.getCapability(DeckCapabilities.MutableDeckState);\n state.deck.plankSizing[data.id] = data.size;\n },\n }),\n createResolver({\n intent: DeckAction.ChangeCompanion,\n resolve: (data) => {\n const state = context.getCapability(DeckCapabilities.MutableDeckState);\n // TODO(thure): Reactivity only works when creating a lexically new `activeCompanions`… Are these not proxy objects?\n if (data.companion === null) {\n const { [data.primary]: _, ...nextActiveCompanions } = state.deck.activeCompanions ?? {};\n state.deck.activeCompanions = nextActiveCompanions;\n } else {\n invariant(data.companion !== data.primary);\n state.deck.activeCompanions = {\n ...state.deck.activeCompanions,\n [data.primary]: data.companion,\n };\n }\n },\n }),\n createResolver({\n intent: DeckAction.Adjust,\n resolve: (adjustment) => {\n const state = context.getCapability(DeckCapabilities.MutableDeckState);\n const attention = context.getCapability(AttentionCapabilities.Attention);\n const { graph } = context.getCapability(Capabilities.AppGraph);\n\n return batch(() => {\n if (adjustment.type === 'increment-end' || adjustment.type === 'increment-start') {\n setActive({\n next: incrementPlank(state.deck.active, adjustment),\n state,\n attention,\n });\n }\n\n if (adjustment.type === 'companion') {\n return pipe(\n graph.getNode(adjustment.id),\n Option.map((node) =>\n graph\n .getConnections(node.id)\n .filter((n) => n.type === PLANK_COMPANION_TYPE)\n .toSorted((a, b) => byPosition(a.properties, b.properties)),\n ),\n Option.flatMap((companions) => (companions.length > 0 ? Option.some(companions[0]) : Option.none())),\n Option.match({\n onNone: () => ({}),\n onSome: (companion) => ({\n intents: [\n // TODO(wittjosiah): This should remember the previously selected companion.\n createIntent(DeckAction.ChangeCompanion, { primary: adjustment.id, companion: companion.id }),\n ],\n }),\n }),\n );\n }\n\n if (adjustment.type.startsWith('solo')) {\n const entryId = adjustment.id;\n if (!state.deck.solo) {\n // Solo the entry.\n return {\n intents: [\n createIntent(LayoutAction.SetLayoutMode, {\n part: 'mode',\n subject: entryId,\n options: { mode: adjustment.type },\n }),\n ],\n };\n } else {\n if (adjustment.type === 'solo--fullscreen') {\n // Toggle fullscreen on the current entry.\n return {\n intents: [\n createIntent(LayoutAction.SetLayoutMode, {\n part: 'mode',\n subject: entryId,\n options: { mode: 'solo--fullscreen' },\n }),\n ],\n };\n } else if (adjustment.type === 'solo') {\n // Un-solo the current entry.\n return {\n intents: [\n // NOTE: The order of these is important.\n pipe(\n createIntent(LayoutAction.SetLayoutMode, { part: 'mode', options: { mode: 'deck' } }),\n chain(LayoutAction.Open, { part: 'main', subject: [entryId] }),\n ),\n ],\n };\n }\n }\n }\n });\n },\n }),\n ]);\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["batch", "Schema", "Effect", "pipe", "Option", "Capabilities", "createResolver", "contributes", "IntentAction", "LayoutAction", "createIntent", "chain", "getTypename", "invariant", "isLiveObject", "log", "AttentionCapabilities", "isActionLike", "ObservabilityAction", "byPosition", "isNonNullable", "context", "contributes", "Capabilities", "IntentResolver", "createResolver", "intent", "IntentAction", "ShowUndo", "resolve", "data", "layout", "getCapability", "DeckCapabilities", "MutableDeckState", "undoPromise", "undo", "IntentDispatcher", "currentUndoId", "toasts", "filter", "toast", "id", "_tag", "Date", "now", "title", "message", "ns", "DECK_PLUGIN", "duration", "actionLabel", "actionAlt", "closeLabel", "onAction", "LayoutAction", "UpdateLayout", "Schema", "is", "UpdateSidebar", "fields", "input", "options", "next", "state", "sidebarState", "UpdateComplementary", "subject", "complementarySidebarPanel", "complementarySidebarState", "UpdateDialog", "dialogOpen", "Boolean", "dialogType", "type", "dialogBlockAlign", "blockAlign", "dialogOverlayClasses", "overlayClasses", "dialogOverlayStyle", "overlayStyle", "dialogContent", "component", "props", "UpdatePopover", "popoverOpen", "popoverContent", "popoverSide", "side", "variant", "popoverAnchor", "anchor", "popoverAnchorId", "anchorId", "AddToast", "push", "SetLayoutMode", "isLayoutMode", "mode", "setMode", "deck", "current", "solo", "active", "isNonNullable", "removed", "includes", "closed", "Array", "from", "Set", "inactive", "undefined", "initialized", "fullscreen", "batch", "getMode", "previousMode", "activeDeck", "last", "log", "warn", "SwitchWorkspace", "graph", "AppGraph", "startsWith", "previousDeck", "decks", "defaultDeck", "first", "intents", "createIntent", "ScrollIntoView", "part", "item", "getConnections", "node", "isActionLike", "properties", "disposition", "Open", "RevertWorkspace", "Effect", "gen", "attention", "AttentionCapabilities", "Attention", "settings", "getCapabilities", "SettingsStore", "getStore", "value", "workspace", "dispatch", "previouslyOpenIds", "map", "createEntryId", "reduce", "acc", "entryId", "openEntry", "key", "positioning", "newPlankPositioning", "pivotId", "setActive", "ids", "newlyOpen", "i", "has", "scrollIntoView", "Expose", "subjectId", "typename", "Option", "match", "getNode", "onNone", "onSome", "isLiveObject", "getTypename", "ObservabilityAction", "SendEvent", "name", "Close", "closeEntry", "toAttend", "clearCompanionIntents", "activeCompanions", "primary", "DeckAction", "ChangeCompanion", "companion", "UpdatePlankSize", "plankSizing", "size", "_", "nextActiveCompanions", "invariant", "Adjust", "adjustment", "incrementPlank", "pipe", "n", "PLANK_COMPANION_TYPE", "toSorted", "a", "b", "byPosition", "flatMap", "companions", "length", "some", "none", "chain"]
|
|
7
|
+
}
|