@dxos/plugin-deck 0.8.2-main.f11618f → 0.8.2-staging.42af850

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.
Files changed (142) hide show
  1. package/dist/lib/browser/{app-graph-builder-VYZ4IWI3.mjs → app-graph-builder-M5BT34YG.mjs} +17 -16
  2. package/dist/lib/browser/app-graph-builder-M5BT34YG.mjs.map +7 -0
  3. package/dist/lib/browser/{check-app-scheme-O7JPE4TM.mjs → check-app-scheme-7AXGR6UT.mjs} +2 -2
  4. package/dist/lib/browser/check-app-scheme-7AXGR6UT.mjs.map +7 -0
  5. package/dist/lib/browser/{state-Z6UY2Z3M.mjs → chunk-FX44YX3G.mjs} +7 -5
  6. package/dist/lib/browser/chunk-FX44YX3G.mjs.map +7 -0
  7. package/dist/lib/browser/chunk-JE2ARGEB.mjs +1487 -0
  8. package/dist/lib/browser/chunk-JE2ARGEB.mjs.map +7 -0
  9. package/dist/lib/browser/{chunk-XMCG42ID.mjs → chunk-KLN73CM3.mjs} +2 -2
  10. package/dist/lib/browser/{chunk-XMCG42ID.mjs.map → chunk-KLN73CM3.mjs.map} +1 -1
  11. package/dist/lib/browser/chunk-SLQNOATN.mjs +127 -0
  12. package/dist/lib/browser/chunk-SLQNOATN.mjs.map +7 -0
  13. package/dist/lib/browser/chunk-TRFYUEBA.mjs +145 -0
  14. package/dist/lib/browser/chunk-TRFYUEBA.mjs.map +7 -0
  15. package/dist/lib/browser/chunk-YN5OZEGS.mjs +162 -0
  16. package/dist/lib/browser/chunk-YN5OZEGS.mjs.map +7 -0
  17. package/dist/lib/browser/index.mjs +6 -8
  18. package/dist/lib/browser/index.mjs.map +2 -2
  19. package/dist/lib/browser/{intent-resolver-JKWXWUV6.mjs → intent-resolver-3GAC57UA.mjs} +84 -66
  20. package/dist/lib/browser/intent-resolver-3GAC57UA.mjs.map +7 -0
  21. package/dist/lib/browser/meta.json +1 -1
  22. package/dist/lib/browser/{react-root-S6ZAKNZA.mjs → react-root-ISFFOJZX.mjs} +7 -7
  23. package/dist/lib/browser/{react-surface-I7WZBOGM.mjs → react-surface-A63RQB5N.mjs} +7 -7
  24. package/dist/lib/browser/{settings-6NU7CF2B.mjs → settings-X7GDEXU3.mjs} +4 -4
  25. package/dist/lib/browser/{settings-6NU7CF2B.mjs.map → settings-X7GDEXU3.mjs.map} +3 -3
  26. package/dist/lib/browser/state-VJ6E3ADY.mjs +10 -0
  27. package/dist/lib/browser/state-VJ6E3ADY.mjs.map +7 -0
  28. package/dist/lib/browser/{tools-VDVQTJMD.mjs → tools-N57NQ2LH.mjs} +28 -18
  29. package/dist/lib/browser/tools-N57NQ2LH.mjs.map +7 -0
  30. package/dist/lib/browser/types.mjs +1 -1
  31. package/dist/lib/browser/{url-handler-3CARFXQK.mjs → url-handler-BUGI6XRE.mjs} +5 -5
  32. package/dist/lib/browser/url-handler-BUGI6XRE.mjs.map +7 -0
  33. package/dist/types/src/capabilities/app-graph-builder.d.ts +2 -179
  34. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  35. package/dist/types/src/capabilities/capabilities.d.ts +10 -2
  36. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  37. package/dist/types/src/capabilities/check-app-scheme.d.ts +2 -2
  38. package/dist/types/src/capabilities/check-app-scheme.d.ts.map +1 -1
  39. package/dist/types/src/capabilities/index.d.ts +6 -181
  40. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  41. package/dist/types/src/capabilities/intent-resolver.d.ts +2 -2
  42. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -1
  43. package/dist/types/src/capabilities/state.d.ts +7 -3
  44. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  45. package/dist/types/src/capabilities/tools.d.ts +1 -1
  46. package/dist/types/src/capabilities/tools.d.ts.map +1 -1
  47. package/dist/types/src/capabilities/url-handler.d.ts +2 -2
  48. package/dist/types/src/capabilities/url-handler.d.ts.map +1 -1
  49. package/dist/types/src/components/DeckLayout/Banner.d.ts.map +1 -1
  50. package/dist/types/src/components/DeckLayout/ContentEmpty.d.ts.map +1 -1
  51. package/dist/types/src/components/DeckLayout/DeckLayout.d.ts.map +1 -1
  52. package/dist/types/src/components/DeckLayout/Popover.d.ts.map +1 -1
  53. package/dist/types/src/components/DeckLayout/StatusBar.d.ts.map +1 -1
  54. package/dist/types/src/components/DeckLayout/Toast.d.ts.map +1 -1
  55. package/dist/types/src/components/DeckSettings/DeckSettings.d.ts.map +1 -1
  56. package/dist/types/src/components/Plank/Plank.d.ts +18 -5
  57. package/dist/types/src/components/Plank/Plank.d.ts.map +1 -1
  58. package/dist/types/src/components/Plank/Plank.stories.d.ts +3 -3
  59. package/dist/types/src/components/Plank/Plank.stories.d.ts.map +1 -1
  60. package/dist/types/src/components/Plank/PlankControls.d.ts +1 -0
  61. package/dist/types/src/components/Plank/PlankControls.d.ts.map +1 -1
  62. package/dist/types/src/components/Plank/PlankError.d.ts.map +1 -1
  63. package/dist/types/src/components/Plank/PlankHeading.d.ts.map +1 -1
  64. package/dist/types/src/components/Sidebar/ComplementarySidebar.d.ts.map +1 -1
  65. package/dist/types/src/components/Sidebar/Sidebar.d.ts.map +1 -1
  66. package/dist/types/src/components/Sidebar/SidebarButton.d.ts +2 -1
  67. package/dist/types/src/components/Sidebar/SidebarButton.d.ts.map +1 -1
  68. package/dist/types/src/hooks/index.d.ts +5 -1
  69. package/dist/types/src/hooks/index.d.ts.map +1 -1
  70. package/dist/types/src/hooks/useBreakpoints.d.ts.map +1 -0
  71. package/dist/types/src/hooks/useCompanions.d.ts.map +1 -0
  72. package/dist/types/src/hooks/useDeckCompanions.d.ts +13 -0
  73. package/dist/types/src/hooks/useDeckCompanions.d.ts.map +1 -0
  74. package/dist/types/src/hooks/useHoistStatusbar.d.ts.map +1 -0
  75. package/dist/types/src/hooks/useNodeActionExpander.d.ts.map +1 -1
  76. package/dist/types/src/index.d.ts +1 -1
  77. package/dist/types/src/index.d.ts.map +1 -1
  78. package/dist/types/src/layout.d.ts.map +1 -1
  79. package/dist/types/src/translations.d.ts +0 -1
  80. package/dist/types/src/translations.d.ts.map +1 -1
  81. package/dist/types/src/types.d.ts +106 -104
  82. package/dist/types/src/types.d.ts.map +1 -1
  83. package/dist/types/src/util/index.d.ts +1 -4
  84. package/dist/types/src/util/index.d.ts.map +1 -1
  85. package/dist/types/src/util/layoutAppliesTopbar.d.ts.map +1 -1
  86. package/dist/types/src/util/overscroll.d.ts.map +1 -1
  87. package/dist/types/src/util/set-active.d.ts.map +1 -1
  88. package/dist/types/tsconfig.tsbuildinfo +1 -1
  89. package/package.json +38 -30
  90. package/src/capabilities/app-graph-builder.ts +120 -92
  91. package/src/capabilities/check-app-scheme.ts +3 -5
  92. package/src/capabilities/index.ts +1 -0
  93. package/src/capabilities/intent-resolver.ts +100 -78
  94. package/src/capabilities/settings.ts +2 -2
  95. package/src/capabilities/state.ts +4 -2
  96. package/src/capabilities/tools.ts +15 -12
  97. package/src/capabilities/url-handler.ts +4 -4
  98. package/src/components/DeckLayout/ContentEmpty.tsx +3 -2
  99. package/src/components/DeckLayout/DeckLayout.tsx +12 -10
  100. package/src/components/DeckLayout/Dialog.tsx +2 -2
  101. package/src/components/Plank/Plank.stories.tsx +20 -8
  102. package/src/components/Plank/Plank.tsx +101 -68
  103. package/src/components/Plank/PlankControls.tsx +15 -25
  104. package/src/components/Plank/PlankHeading.tsx +22 -10
  105. package/src/components/Sidebar/ComplementarySidebar.tsx +7 -38
  106. package/src/components/Sidebar/Sidebar.tsx +2 -1
  107. package/src/components/Sidebar/SidebarButton.tsx +26 -7
  108. package/src/components/fragments.ts +1 -1
  109. package/src/hooks/index.ts +5 -1
  110. package/src/{util → hooks}/useCompanions.ts +3 -3
  111. package/src/hooks/useDeckCompanions.ts +33 -0
  112. package/src/hooks/useNodeActionExpander.ts +3 -8
  113. package/src/index.ts +1 -1
  114. package/src/translations.ts +0 -1
  115. package/src/types.ts +74 -71
  116. package/src/util/index.ts +1 -4
  117. package/dist/lib/browser/app-graph-builder-VYZ4IWI3.mjs.map +0 -7
  118. package/dist/lib/browser/check-app-scheme-O7JPE4TM.mjs.map +0 -7
  119. package/dist/lib/browser/chunk-6HJZL3WT.mjs +0 -118
  120. package/dist/lib/browser/chunk-6HJZL3WT.mjs.map +0 -7
  121. package/dist/lib/browser/chunk-FLOVGNYB.mjs +0 -81
  122. package/dist/lib/browser/chunk-FLOVGNYB.mjs.map +0 -7
  123. package/dist/lib/browser/chunk-RBJ6DLAC.mjs +0 -24
  124. package/dist/lib/browser/chunk-RBJ6DLAC.mjs.map +0 -7
  125. package/dist/lib/browser/chunk-RDFJGGGX.mjs +0 -1334
  126. package/dist/lib/browser/chunk-RDFJGGGX.mjs.map +0 -7
  127. package/dist/lib/browser/chunk-ZMJMCN7O.mjs +0 -157
  128. package/dist/lib/browser/chunk-ZMJMCN7O.mjs.map +0 -7
  129. package/dist/lib/browser/intent-resolver-JKWXWUV6.mjs.map +0 -7
  130. package/dist/lib/browser/state-Z6UY2Z3M.mjs.map +0 -7
  131. package/dist/lib/browser/tools-VDVQTJMD.mjs.map +0 -7
  132. package/dist/lib/browser/url-handler-3CARFXQK.mjs.map +0 -7
  133. package/dist/types/src/util/useBreakpoints.d.ts.map +0 -1
  134. package/dist/types/src/util/useCompanions.d.ts.map +0 -1
  135. package/dist/types/src/util/useHoistStatusbar.d.ts.map +0 -1
  136. /package/dist/lib/browser/{react-root-S6ZAKNZA.mjs.map → react-root-ISFFOJZX.mjs.map} +0 -0
  137. /package/dist/lib/browser/{react-surface-I7WZBOGM.mjs.map → react-surface-A63RQB5N.mjs.map} +0 -0
  138. /package/dist/types/src/{util → hooks}/useBreakpoints.d.ts +0 -0
  139. /package/dist/types/src/{util → hooks}/useCompanions.d.ts +0 -0
  140. /package/dist/types/src/{util → hooks}/useHoistStatusbar.d.ts +0 -0
  141. /package/src/{util → hooks}/useBreakpoints.ts +0 -0
  142. /package/src/{util → hooks}/useHoistStatusbar.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-6HJZL3WT.mjs";
7
+ } from "./chunk-TRFYUEBA.mjs";
10
8
  import {
11
9
  DeckCapabilities
12
- } from "./chunk-XMCG42ID.mjs";
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-ZMJMCN7O.mjs";
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 { Effect, 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, S } from "@dxos/echo-schema";
26
+ import { getTypename } from "@dxos/echo-schema";
29
27
  import { invariant } from "@dxos/invariant";
30
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.requestCapability(DeckCapabilities.MutableDeckState);
41
- const { undoPromise: undo } = context.requestCapability(Capabilities.IntentDispatcher);
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 `S.is(LayoutAction.UpdateSidebar.fields.input)`
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) => S.is(LayoutAction.UpdateSidebar.fields.input)(data),
83
+ filter: (data) => Schema.is(LayoutAction.UpdateSidebar.fields.input)(data),
85
84
  resolve: ({ options }) => {
86
- const layout = context.requestCapability(DeckCapabilities.MutableDeckState);
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 `S.is(LayoutAction.UpdateComplementary.fields.input)`
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) => S.is(LayoutAction.UpdateComplementary.fields.input)(data),
96
+ filter: (data) => Schema.is(LayoutAction.UpdateComplementary.fields.input)(data),
98
97
  resolve: ({ subject, options }) => {
99
- const layout = context.requestCapability(DeckCapabilities.MutableDeckState);
98
+ const layout = context.getCapability(DeckCapabilities.MutableDeckState);
100
99
  if (layout.complementarySidebarPanel !== subject) {
101
100
  layout.complementarySidebarPanel = subject;
102
101
  }
@@ -108,27 +107,29 @@ 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 `S.is(LayoutAction.UpdateDialog.fields.input)`
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) => S.is(LayoutAction.UpdateDialog.fields.input)(data),
112
+ filter: (data) => Schema.is(LayoutAction.UpdateDialog.fields.input)(data),
114
113
  resolve: ({ subject, options }) => {
115
- const layout = context.requestCapability(DeckCapabilities.MutableDeckState);
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 `S.is(LayoutAction.UpdatePopover.fields.input)`
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) => S.is(LayoutAction.UpdatePopover.fields.input)(data),
130
+ filter: (data) => Schema.is(LayoutAction.UpdatePopover.fields.input)(data),
130
131
  resolve: ({ subject, options }) => {
131
- const layout = context.requestCapability(DeckCapabilities.MutableDeckState);
132
+ const layout = context.getCapability(DeckCapabilities.MutableDeckState);
132
133
  layout.popoverOpen = options.state ?? Boolean(subject);
133
134
  layout.popoverContent = typeof subject === "string" ? {
134
135
  component: subject,
@@ -146,20 +147,20 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
146
147
  }),
147
148
  createResolver({
148
149
  intent: LayoutAction.UpdateLayout,
149
- // TODO(wittjosiah): This should be able to just be `S.is(LayoutAction.AddToast.fields.input)`
150
+ // TODO(wittjosiah): This should be able to just be `Schema.is(LayoutAction.AddToast.fields.input)`
150
151
  // but the filter is not being applied correctly.
151
- filter: (data) => S.is(LayoutAction.AddToast.fields.input)(data),
152
+ filter: (data) => Schema.is(LayoutAction.AddToast.fields.input)(data),
152
153
  resolve: ({ subject }) => {
153
- const layout = context.requestCapability(DeckCapabilities.MutableDeckState);
154
+ const layout = context.getCapability(DeckCapabilities.MutableDeckState);
154
155
  layout.toasts.push(subject);
155
156
  }
156
157
  }),
157
158
  createResolver({
158
159
  intent: LayoutAction.UpdateLayout,
159
- // TODO(wittjosiah): This should be able to just be `S.is(LayoutAction.SetLayoutMode.fields.input)`
160
+ // TODO(wittjosiah): This should be able to just be `Schema.is(LayoutAction.SetLayoutMode.fields.input)`
160
161
  // but the filter is not being applied correctly.
161
162
  filter: (data) => {
162
- if (!S.is(LayoutAction.SetLayoutMode.fields.input)(data)) {
163
+ if (!Schema.is(LayoutAction.SetLayoutMode.fields.input)(data)) {
163
164
  return false;
164
165
  }
165
166
  if ("mode" in data.options) {
@@ -168,7 +169,7 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
168
169
  return true;
169
170
  },
170
171
  resolve: ({ subject, options }) => {
171
- const state = context.requestCapability(DeckCapabilities.MutableDeckState);
172
+ const state = context.getCapability(DeckCapabilities.MutableDeckState);
172
173
  const setMode = (mode) => {
173
174
  const deck = state.deck;
174
175
  const current = deck.solo ? [
@@ -209,7 +210,7 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
209
210
  } else {
210
211
  log.warn("Invalid layout mode", options, {
211
212
  F: __dxlog_file,
212
- L: 198,
213
+ L: 200,
213
214
  S: void 0,
214
215
  C: (f, a) => f(...a)
215
216
  });
@@ -219,9 +220,10 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
219
220
  }),
220
221
  createResolver({
221
222
  intent: LayoutAction.UpdateLayout,
222
- filter: (data) => S.is(LayoutAction.SwitchWorkspace.fields.input)(data),
223
+ filter: (data) => Schema.is(LayoutAction.SwitchWorkspace.fields.input)(data),
223
224
  resolve: ({ subject }) => {
224
- const state = context.requestCapability(DeckCapabilities.MutableDeckState);
225
+ const { graph } = context.getCapability(Capabilities.AppGraph);
226
+ const state = context.getCapability(DeckCapabilities.MutableDeckState);
225
227
  batch(() => {
226
228
  if (!state.activeDeck.startsWith("!")) {
227
229
  state.previousDeck = state.activeDeck;
@@ -243,14 +245,28 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
243
245
  })
244
246
  ]
245
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
+ }
246
262
  }
247
263
  }
248
264
  }),
249
265
  createResolver({
250
266
  intent: LayoutAction.UpdateLayout,
251
- filter: (data) => S.is(LayoutAction.RevertWorkspace.fields.input)(data),
267
+ filter: (data) => Schema.is(LayoutAction.RevertWorkspace.fields.input)(data),
252
268
  resolve: () => {
253
- const state = context.requestCapability(DeckCapabilities.MutableDeckState);
269
+ const state = context.getCapability(DeckCapabilities.MutableDeckState);
254
270
  return {
255
271
  intents: [
256
272
  createIntent(LayoutAction.SwitchWorkspace, {
@@ -263,14 +279,14 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
263
279
  }),
264
280
  createResolver({
265
281
  intent: LayoutAction.UpdateLayout,
266
- filter: (data) => S.is(LayoutAction.Open.fields.input)(data),
282
+ filter: (data) => Schema.is(LayoutAction.Open.fields.input)(data),
267
283
  resolve: ({ subject, options }) => Effect.gen(function* () {
268
- const { graph } = context.requestCapability(Capabilities.AppGraph);
269
- const state = context.requestCapability(DeckCapabilities.MutableDeckState);
270
- const attention = context.requestCapability(AttentionCapabilities.Attention);
271
- const settings = context.requestCapabilities(Capabilities.SettingsStore)[0]?.getStore(DECK_PLUGIN)?.value;
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;
272
288
  if (options?.workspace && state.activeDeck !== options?.workspace) {
273
- const { dispatch } = context.requestCapability(Capabilities.IntentDispatcher);
289
+ const { dispatch } = context.getCapability(Capabilities.IntentDispatcher);
274
290
  yield* dispatch(createIntent(LayoutAction.SwitchWorkspace, {
275
291
  part: "workspace",
276
292
  subject: options.workspace
@@ -309,8 +325,13 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
309
325
  subject: newlyOpen[0] ?? subject[0]
310
326
  }),
311
327
  ...newlyOpen.map((subjectId) => {
312
- const active = graph?.findNode(subjectId)?.data;
313
- const typename = isLiveObject(active) ? getTypename(active) : void 0;
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
+ });
314
335
  return createIntent(ObservabilityAction.SendEvent, {
315
336
  name: "navigation.activate",
316
337
  properties: {
@@ -325,10 +346,10 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
325
346
  }),
326
347
  createResolver({
327
348
  intent: LayoutAction.UpdateLayout,
328
- filter: (data) => S.is(LayoutAction.Close.fields.input)(data),
349
+ filter: (data) => Schema.is(LayoutAction.Close.fields.input)(data),
329
350
  resolve: ({ subject }) => {
330
- const state = context.requestCapability(DeckCapabilities.MutableDeckState);
331
- const attention = context.requestCapability(AttentionCapabilities.Attention);
351
+ const state = context.getCapability(DeckCapabilities.MutableDeckState);
352
+ const attention = context.getCapability(AttentionCapabilities.Attention);
332
353
  const active = state.deck.solo ? [
333
354
  state.deck.solo
334
355
  ] : state.deck.active;
@@ -357,10 +378,10 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
357
378
  }),
358
379
  createResolver({
359
380
  intent: LayoutAction.UpdateLayout,
360
- filter: (data) => S.is(LayoutAction.Set.fields.input)(data),
381
+ filter: (data) => Schema.is(LayoutAction.Set.fields.input)(data),
361
382
  resolve: ({ subject }) => {
362
- const state = context.requestCapability(DeckCapabilities.MutableDeckState);
363
- const attention = context.requestCapability(AttentionCapabilities.Attention);
383
+ const state = context.getCapability(DeckCapabilities.MutableDeckState);
384
+ const attention = context.getCapability(AttentionCapabilities.Attention);
364
385
  const toAttend = setActive({
365
386
  next: subject,
366
387
  state,
@@ -378,30 +399,30 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
378
399
  }),
379
400
  createResolver({
380
401
  intent: LayoutAction.UpdateLayout,
381
- filter: (data) => S.is(LayoutAction.ScrollIntoView.fields.input)(data),
402
+ filter: (data) => Schema.is(LayoutAction.ScrollIntoView.fields.input)(data),
382
403
  resolve: ({ subject }) => {
383
- const layout = context.requestCapability(DeckCapabilities.MutableDeckState);
404
+ const layout = context.getCapability(DeckCapabilities.MutableDeckState);
384
405
  layout.scrollIntoView = subject;
385
406
  }
386
407
  }),
387
408
  createResolver({
388
409
  intent: DeckAction.UpdatePlankSize,
389
410
  resolve: (data) => {
390
- const state = context.requestCapability(DeckCapabilities.MutableDeckState);
411
+ const state = context.getCapability(DeckCapabilities.MutableDeckState);
391
412
  state.deck.plankSizing[data.id] = data.size;
392
413
  }
393
414
  }),
394
415
  createResolver({
395
416
  intent: DeckAction.ChangeCompanion,
396
417
  resolve: (data) => {
397
- const state = context.requestCapability(DeckCapabilities.MutableDeckState);
418
+ const state = context.getCapability(DeckCapabilities.MutableDeckState);
398
419
  if (data.companion === null) {
399
420
  const { [data.primary]: _, ...nextActiveCompanions } = state.deck.activeCompanions ?? {};
400
421
  state.deck.activeCompanions = nextActiveCompanions;
401
422
  } else {
402
423
  invariant(data.companion !== data.primary, void 0, {
403
424
  F: __dxlog_file,
404
- L: 363,
425
+ L: 380,
405
426
  S: void 0,
406
427
  A: [
407
428
  "data.companion !== data.primary",
@@ -418,9 +439,9 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
418
439
  createResolver({
419
440
  intent: DeckAction.Adjust,
420
441
  resolve: (adjustment) => {
421
- const state = context.requestCapability(DeckCapabilities.MutableDeckState);
422
- const attention = context.requestCapability(AttentionCapabilities.Attention);
423
- const { graph } = context.requestCapability(Capabilities.AppGraph);
442
+ const state = context.getCapability(DeckCapabilities.MutableDeckState);
443
+ const attention = context.getCapability(AttentionCapabilities.Attention);
444
+ const { graph } = context.getCapability(Capabilities.AppGraph);
424
445
  return batch(() => {
425
446
  if (adjustment.type === "increment-end" || adjustment.type === "increment-start") {
426
447
  setActive({
@@ -430,12 +451,9 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
430
451
  });
431
452
  }
432
453
  if (adjustment.type === "companion") {
433
- const node = graph.findNode(adjustment.id);
434
- const [companion] = node ? graph.nodes(node, {
435
- filter: (n) => n.type === PLANK_COMPANION_TYPE
436
- }).toSorted((a, b) => byPosition(a.properties, b.properties)) : [];
437
- if (companion) {
438
- 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) => ({
439
457
  intents: [
440
458
  // TODO(wittjosiah): This should remember the previously selected companion.
441
459
  createIntent(DeckAction.ChangeCompanion, {
@@ -443,8 +461,8 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
443
461
  companion: companion.id
444
462
  })
445
463
  ]
446
- };
447
- }
464
+ })
465
+ }));
448
466
  }
449
467
  if (adjustment.type.startsWith("solo")) {
450
468
  const entryId = adjustment.id;
@@ -500,4 +518,4 @@ var intent_resolver_default = (context) => contributes(Capabilities.IntentResolv
500
518
  export {
501
519
  intent_resolver_default as default
502
520
  };
503
- //# sourceMappingURL=intent-resolver-JKWXWUV6.mjs.map
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
+ }