@dxos/plugin-deck 0.8.4-main.3f58842 → 0.8.4-main.52d7546f51

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 (281) hide show
  1. package/dist/lib/browser/app-graph-builder-X7LCO5KE.mjs +121 -0
  2. package/dist/lib/browser/app-graph-builder-X7LCO5KE.mjs.map +7 -0
  3. package/dist/lib/browser/check-app-scheme-PGISDJX7.mjs +32 -0
  4. package/dist/lib/browser/check-app-scheme-PGISDJX7.mjs.map +7 -0
  5. package/dist/lib/browser/chunk-DONG2FYU.mjs +295 -0
  6. package/dist/lib/browser/chunk-DONG2FYU.mjs.map +7 -0
  7. package/dist/lib/browser/chunk-JGC4ZLG3.mjs +1469 -0
  8. package/dist/lib/browser/chunk-JGC4ZLG3.mjs.map +7 -0
  9. package/dist/lib/browser/{chunk-CNTGBCMK.mjs → chunk-NHABISX2.mjs} +40 -33
  10. package/dist/lib/browser/chunk-NHABISX2.mjs.map +7 -0
  11. package/dist/lib/browser/chunk-YT3AJVUU.mjs +161 -0
  12. package/dist/lib/browser/chunk-YT3AJVUU.mjs.map +7 -0
  13. package/dist/lib/browser/index.mjs +89 -75
  14. package/dist/lib/browser/index.mjs.map +4 -4
  15. package/dist/lib/browser/meta.json +1 -1
  16. package/dist/lib/browser/operation-resolver-XJFR3PNQ.mjs +597 -0
  17. package/dist/lib/browser/operation-resolver-XJFR3PNQ.mjs.map +7 -0
  18. package/dist/lib/browser/react-root-AJFHKHRL.mjs +47 -0
  19. package/dist/lib/browser/react-root-AJFHKHRL.mjs.map +7 -0
  20. package/dist/lib/browser/react-surface-KBRBGEXY.mjs +43 -0
  21. package/dist/lib/browser/react-surface-KBRBGEXY.mjs.map +7 -0
  22. package/dist/lib/browser/settings-ES42FGLG.mjs +38 -0
  23. package/dist/lib/browser/settings-ES42FGLG.mjs.map +7 -0
  24. package/dist/lib/browser/state-YMI6IDEL.mjs +104 -0
  25. package/dist/lib/browser/state-YMI6IDEL.mjs.map +7 -0
  26. package/dist/lib/browser/toolkit-VRD54KY3.mjs +54 -0
  27. package/dist/lib/browser/toolkit-VRD54KY3.mjs.map +7 -0
  28. package/dist/lib/browser/types/index.mjs +11 -4
  29. package/dist/lib/browser/url-handler-37UPOB3U.mjs +94 -0
  30. package/dist/lib/browser/url-handler-37UPOB3U.mjs.map +7 -0
  31. package/dist/lib/node-esm/app-graph-builder-US54I64T.mjs +122 -0
  32. package/dist/lib/node-esm/app-graph-builder-US54I64T.mjs.map +7 -0
  33. package/dist/lib/node-esm/check-app-scheme-CK6EVG5D.mjs +33 -0
  34. package/dist/lib/node-esm/check-app-scheme-CK6EVG5D.mjs.map +7 -0
  35. package/dist/lib/node-esm/chunk-7NPS347C.mjs +1470 -0
  36. package/dist/lib/node-esm/chunk-7NPS347C.mjs.map +7 -0
  37. package/dist/lib/node-esm/chunk-ADPMWKLL.mjs +154 -0
  38. package/dist/lib/node-esm/chunk-ADPMWKLL.mjs.map +7 -0
  39. package/dist/lib/node-esm/chunk-CVYHPJIN.mjs +297 -0
  40. package/dist/lib/node-esm/chunk-CVYHPJIN.mjs.map +7 -0
  41. package/dist/lib/node-esm/chunk-ZMJPCZ3V.mjs +162 -0
  42. package/dist/lib/node-esm/chunk-ZMJPCZ3V.mjs.map +7 -0
  43. package/dist/lib/node-esm/index.mjs +183 -0
  44. package/dist/lib/node-esm/index.mjs.map +7 -0
  45. package/dist/lib/node-esm/meta.json +1 -0
  46. package/dist/lib/node-esm/operation-resolver-ZQGNATPX.mjs +598 -0
  47. package/dist/lib/node-esm/operation-resolver-ZQGNATPX.mjs.map +7 -0
  48. package/dist/lib/node-esm/react-root-2S77ABBS.mjs +48 -0
  49. package/dist/lib/node-esm/react-root-2S77ABBS.mjs.map +7 -0
  50. package/dist/lib/node-esm/react-surface-FIHMAFXH.mjs +44 -0
  51. package/dist/lib/node-esm/react-surface-FIHMAFXH.mjs.map +7 -0
  52. package/dist/lib/node-esm/settings-E3TH3FAW.mjs +39 -0
  53. package/dist/lib/node-esm/settings-E3TH3FAW.mjs.map +7 -0
  54. package/dist/lib/node-esm/state-WQEFBQMD.mjs +105 -0
  55. package/dist/lib/node-esm/state-WQEFBQMD.mjs.map +7 -0
  56. package/dist/lib/node-esm/toolkit-ME546G5T.mjs +55 -0
  57. package/dist/lib/node-esm/toolkit-ME546G5T.mjs.map +7 -0
  58. package/dist/lib/node-esm/types/index.mjs +40 -0
  59. package/dist/lib/node-esm/url-handler-2KYHXINK.mjs +95 -0
  60. package/dist/lib/node-esm/url-handler-2KYHXINK.mjs.map +7 -0
  61. package/dist/types/src/DeckPlugin.d.ts +2 -1
  62. package/dist/types/src/DeckPlugin.d.ts.map +1 -1
  63. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts +6 -0
  64. package/dist/types/src/capabilities/app-graph-builder/app-graph-builder.d.ts.map +1 -0
  65. package/dist/types/src/capabilities/app-graph-builder/index.d.ts +3 -0
  66. package/dist/types/src/capabilities/app-graph-builder/index.d.ts.map +1 -0
  67. package/dist/types/src/capabilities/check-app-scheme/check-app-scheme.d.ts +5 -0
  68. package/dist/types/src/capabilities/check-app-scheme/check-app-scheme.d.ts.map +1 -0
  69. package/dist/types/src/capabilities/check-app-scheme/index.d.ts +3 -0
  70. package/dist/types/src/capabilities/check-app-scheme/index.d.ts.map +1 -0
  71. package/dist/types/src/capabilities/index.d.ts +8 -13
  72. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  73. package/dist/types/src/capabilities/operation-resolver/index.d.ts +3 -0
  74. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +1 -0
  75. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +5 -0
  76. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +1 -0
  77. package/dist/types/src/capabilities/react-root/index.d.ts +6 -0
  78. package/dist/types/src/capabilities/react-root/index.d.ts.map +1 -0
  79. package/dist/types/src/capabilities/react-root/react-root.d.ts +9 -0
  80. package/dist/types/src/capabilities/react-root/react-root.d.ts.map +1 -0
  81. package/dist/types/src/capabilities/react-surface/index.d.ts +3 -0
  82. package/dist/types/src/capabilities/react-surface/index.d.ts.map +1 -0
  83. package/dist/types/src/capabilities/react-surface/react-surface.d.ts +5 -0
  84. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +1 -0
  85. package/dist/types/src/capabilities/settings/index.d.ts +19 -0
  86. package/dist/types/src/capabilities/settings/index.d.ts.map +1 -0
  87. package/dist/types/src/capabilities/settings/settings.d.ts +22 -0
  88. package/dist/types/src/capabilities/settings/settings.d.ts.map +1 -0
  89. package/dist/types/src/capabilities/state/index.d.ts +174 -0
  90. package/dist/types/src/capabilities/state/index.d.ts.map +1 -0
  91. package/dist/types/src/capabilities/state/state.d.ts +177 -0
  92. package/dist/types/src/capabilities/state/state.d.ts.map +1 -0
  93. package/dist/types/src/capabilities/toolkit/index.d.ts +3 -0
  94. package/dist/types/src/capabilities/toolkit/index.d.ts.map +1 -0
  95. package/dist/types/src/capabilities/toolkit/toolkit.d.ts +27 -0
  96. package/dist/types/src/capabilities/toolkit/toolkit.d.ts.map +1 -0
  97. package/dist/types/src/capabilities/tools/index.d.ts +3 -0
  98. package/dist/types/src/capabilities/tools/index.d.ts.map +1 -0
  99. package/dist/types/src/capabilities/tools/tools.d.ts +12 -0
  100. package/dist/types/src/capabilities/tools/tools.d.ts.map +1 -0
  101. package/dist/types/src/capabilities/url-handler/index.d.ts +3 -0
  102. package/dist/types/src/capabilities/url-handler/index.d.ts.map +1 -0
  103. package/dist/types/src/capabilities/url-handler/url-handler.d.ts +5 -0
  104. package/dist/types/src/capabilities/url-handler/url-handler.d.ts.map +1 -0
  105. package/dist/types/src/components/DeckLayout/ActiveNode.d.ts.map +1 -1
  106. package/dist/types/src/components/DeckLayout/Banner.d.ts.map +1 -1
  107. package/dist/types/src/components/DeckLayout/ContentEmpty.d.ts.map +1 -1
  108. package/dist/types/src/components/DeckLayout/DeckLayout.d.ts +2 -3
  109. package/dist/types/src/components/DeckLayout/DeckLayout.d.ts.map +1 -1
  110. package/dist/types/src/components/DeckLayout/DeckLayout.stories.d.ts +75 -0
  111. package/dist/types/src/components/DeckLayout/DeckLayout.stories.d.ts.map +1 -0
  112. package/dist/types/src/components/DeckLayout/DeckMain.d.ts +3 -0
  113. package/dist/types/src/components/DeckLayout/DeckMain.d.ts.map +1 -0
  114. package/dist/types/src/components/DeckLayout/Dialog.d.ts.map +1 -1
  115. package/dist/types/src/components/DeckLayout/Popover.d.ts.map +1 -1
  116. package/dist/types/src/components/DeckLayout/Toast.d.ts +7 -2
  117. package/dist/types/src/components/DeckLayout/Toast.d.ts.map +1 -1
  118. package/dist/types/src/components/DeckSettings/DeckSettings.d.ts +4 -2
  119. package/dist/types/src/components/DeckSettings/DeckSettings.d.ts.map +1 -1
  120. package/dist/types/src/components/Plank/Plank.d.ts +4 -4
  121. package/dist/types/src/components/Plank/Plank.d.ts.map +1 -1
  122. package/dist/types/src/components/Plank/Plank.stories.d.ts +105 -5
  123. package/dist/types/src/components/Plank/Plank.stories.d.ts.map +1 -1
  124. package/dist/types/src/components/Plank/PlankControls.d.ts +1 -1
  125. package/dist/types/src/components/Plank/PlankControls.d.ts.map +1 -1
  126. package/dist/types/src/components/Plank/PlankError.d.ts +1 -1
  127. package/dist/types/src/components/Plank/PlankError.d.ts.map +1 -1
  128. package/dist/types/src/components/Plank/PlankHeading.d.ts +3 -3
  129. package/dist/types/src/components/Plank/PlankHeading.d.ts.map +1 -1
  130. package/dist/types/src/components/Sidebar/ComplementarySidebar.d.ts.map +1 -1
  131. package/dist/types/src/components/Sidebar/Sidebar.d.ts.map +1 -1
  132. package/dist/types/src/components/Sidebar/SidebarButton.d.ts.map +1 -1
  133. package/dist/types/src/hooks/index.d.ts +1 -0
  134. package/dist/types/src/hooks/index.d.ts.map +1 -1
  135. package/dist/types/src/hooks/useDeckCompanions.d.ts +3 -3
  136. package/dist/types/src/hooks/useDeckCompanions.d.ts.map +1 -1
  137. package/dist/types/src/hooks/useDeckState.d.ts +17 -0
  138. package/dist/types/src/hooks/useDeckState.d.ts.map +1 -0
  139. package/dist/types/src/hooks/useHoistStatusbar.d.ts +1 -1
  140. package/dist/types/src/hooks/useHoistStatusbar.d.ts.map +1 -1
  141. package/dist/types/src/hooks/useNodeActionExpander.d.ts +1 -1
  142. package/dist/types/src/hooks/useNodeActionExpander.d.ts.map +1 -1
  143. package/dist/types/src/index.d.ts +1 -2
  144. package/dist/types/src/index.d.ts.map +1 -1
  145. package/dist/types/src/meta.d.ts +2 -3
  146. package/dist/types/src/meta.d.ts.map +1 -1
  147. package/dist/types/src/translations.d.ts +4 -1
  148. package/dist/types/src/translations.d.ts.map +1 -1
  149. package/dist/types/src/{capabilities → types}/capabilities.d.ts +98 -90
  150. package/dist/types/src/types/capabilities.d.ts.map +1 -0
  151. package/dist/types/src/types/events.d.ts +7 -0
  152. package/dist/types/src/types/events.d.ts.map +1 -0
  153. package/dist/types/src/types/index.d.ts +2 -0
  154. package/dist/types/src/types/index.d.ts.map +1 -1
  155. package/dist/types/src/types/schema.d.ts +92 -30
  156. package/dist/types/src/types/schema.d.ts.map +1 -1
  157. package/dist/types/src/util/set-active.d.ts +18 -3
  158. package/dist/types/src/util/set-active.d.ts.map +1 -1
  159. package/dist/types/tsconfig.tsbuildinfo +1 -1
  160. package/package.json +57 -46
  161. package/src/DeckPlugin.ts +46 -61
  162. package/src/capabilities/app-graph-builder/app-graph-builder.ts +119 -0
  163. package/src/capabilities/app-graph-builder/index.ts +7 -0
  164. package/src/capabilities/check-app-scheme/check-app-scheme.ts +45 -0
  165. package/src/capabilities/check-app-scheme/index.ts +7 -0
  166. package/src/capabilities/index.ts +9 -13
  167. package/src/capabilities/operation-resolver/index.ts +10 -0
  168. package/src/capabilities/operation-resolver/operation-resolver.ts +570 -0
  169. package/src/capabilities/react-root/index.ts +7 -0
  170. package/src/capabilities/react-root/react-root.tsx +47 -0
  171. package/src/capabilities/react-surface/index.ts +7 -0
  172. package/src/capabilities/react-surface/react-surface.tsx +38 -0
  173. package/src/capabilities/settings/index.ts +7 -0
  174. package/src/capabilities/settings/settings.ts +39 -0
  175. package/src/capabilities/state/index.ts +7 -0
  176. package/src/capabilities/state/state.ts +105 -0
  177. package/src/capabilities/toolkit/index.ts +7 -0
  178. package/src/capabilities/toolkit/toolkit.ts +64 -0
  179. package/src/capabilities/tools/index.ts +7 -0
  180. package/src/capabilities/tools/tools.ts +92 -0
  181. package/src/capabilities/url-handler/index.ts +7 -0
  182. package/src/capabilities/url-handler/url-handler.ts +96 -0
  183. package/src/components/DeckLayout/ActiveNode.tsx +3 -2
  184. package/src/components/DeckLayout/Banner.tsx +9 -9
  185. package/src/components/DeckLayout/ContentEmpty.tsx +5 -6
  186. package/src/components/DeckLayout/DeckLayout.stories.tsx +52 -0
  187. package/src/components/DeckLayout/DeckLayout.tsx +18 -285
  188. package/src/components/DeckLayout/DeckMain.tsx +286 -0
  189. package/src/components/DeckLayout/Dialog.tsx +21 -12
  190. package/src/components/DeckLayout/Fallback.tsx +4 -4
  191. package/src/components/DeckLayout/Popover.tsx +60 -32
  192. package/src/components/DeckLayout/StatusBar.tsx +3 -3
  193. package/src/components/DeckLayout/Toast.tsx +30 -5
  194. package/src/components/DeckSettings/DeckSettings.tsx +91 -66
  195. package/src/components/Plank/Plank.stories.tsx +24 -16
  196. package/src/components/Plank/Plank.tsx +91 -57
  197. package/src/components/Plank/PlankControls.tsx +9 -9
  198. package/src/components/Plank/PlankError.tsx +5 -4
  199. package/src/components/Plank/PlankHeading.tsx +41 -44
  200. package/src/components/Sidebar/ComplementarySidebar.tsx +69 -37
  201. package/src/components/Sidebar/Sidebar.tsx +7 -7
  202. package/src/components/Sidebar/SidebarButton.tsx +39 -32
  203. package/src/components/fragments.ts +1 -1
  204. package/src/hooks/index.ts +1 -0
  205. package/src/hooks/useCompanions.ts +1 -1
  206. package/src/hooks/useDeckCompanions.ts +7 -5
  207. package/src/hooks/useDeckState.ts +82 -0
  208. package/src/hooks/useHoistStatusbar.ts +4 -5
  209. package/src/hooks/useNodeActionExpander.ts +4 -4
  210. package/src/index.ts +1 -2
  211. package/src/meta.ts +8 -5
  212. package/src/translations.ts +4 -1
  213. package/src/types/capabilities.ts +33 -0
  214. package/src/types/events.ts +21 -0
  215. package/src/types/index.ts +2 -0
  216. package/src/types/schema.ts +90 -14
  217. package/src/util/layoutAppliesTopbar.ts +1 -1
  218. package/src/util/set-active.ts +49 -29
  219. package/dist/lib/browser/app-graph-builder-JTFSDT2I.mjs +0 -152
  220. package/dist/lib/browser/app-graph-builder-JTFSDT2I.mjs.map +0 -7
  221. package/dist/lib/browser/check-app-scheme-57U62A3A.mjs +0 -32
  222. package/dist/lib/browser/check-app-scheme-57U62A3A.mjs.map +0 -7
  223. package/dist/lib/browser/chunk-CNTGBCMK.mjs.map +0 -7
  224. package/dist/lib/browser/chunk-D7KTFCUV.mjs +0 -1494
  225. package/dist/lib/browser/chunk-D7KTFCUV.mjs.map +0 -7
  226. package/dist/lib/browser/chunk-F5BQOOEG.mjs +0 -160
  227. package/dist/lib/browser/chunk-F5BQOOEG.mjs.map +0 -7
  228. package/dist/lib/browser/chunk-JFTXENFN.mjs +0 -129
  229. package/dist/lib/browser/chunk-JFTXENFN.mjs.map +0 -7
  230. package/dist/lib/browser/chunk-M57WD3V6.mjs +0 -16
  231. package/dist/lib/browser/chunk-M57WD3V6.mjs.map +0 -7
  232. package/dist/lib/browser/chunk-QDZO4AJ4.mjs +0 -127
  233. package/dist/lib/browser/chunk-QDZO4AJ4.mjs.map +0 -7
  234. package/dist/lib/browser/chunk-Z5KITAZW.mjs +0 -13
  235. package/dist/lib/browser/chunk-Z5KITAZW.mjs.map +0 -7
  236. package/dist/lib/browser/intent-resolver-P2OBK5HK.mjs +0 -521
  237. package/dist/lib/browser/intent-resolver-P2OBK5HK.mjs.map +0 -7
  238. package/dist/lib/browser/react-root-PO64J7ML.mjs +0 -43
  239. package/dist/lib/browser/react-root-PO64J7ML.mjs.map +0 -7
  240. package/dist/lib/browser/react-surface-E45YOVF5.mjs +0 -40
  241. package/dist/lib/browser/react-surface-E45YOVF5.mjs.map +0 -7
  242. package/dist/lib/browser/settings-6AJZPZPM.mjs +0 -29
  243. package/dist/lib/browser/settings-6AJZPZPM.mjs.map +0 -7
  244. package/dist/lib/browser/state-MVDYX77Y.mjs +0 -12
  245. package/dist/lib/browser/tools-TKQDPCHJ.mjs +0 -88
  246. package/dist/lib/browser/tools-TKQDPCHJ.mjs.map +0 -7
  247. package/dist/lib/browser/url-handler-7L7M6IKH.mjs +0 -70
  248. package/dist/lib/browser/url-handler-7L7M6IKH.mjs.map +0 -7
  249. package/dist/types/src/capabilities/app-graph-builder.d.ts +0 -4
  250. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +0 -1
  251. package/dist/types/src/capabilities/capabilities.d.ts.map +0 -1
  252. package/dist/types/src/capabilities/check-app-scheme.d.ts +0 -4
  253. package/dist/types/src/capabilities/check-app-scheme.d.ts.map +0 -1
  254. package/dist/types/src/capabilities/intent-resolver.d.ts +0 -4
  255. package/dist/types/src/capabilities/intent-resolver.d.ts.map +0 -1
  256. package/dist/types/src/capabilities/react-root.d.ts +0 -7
  257. package/dist/types/src/capabilities/react-root.d.ts.map +0 -1
  258. package/dist/types/src/capabilities/react-surface.d.ts +0 -4
  259. package/dist/types/src/capabilities/react-surface.d.ts.map +0 -1
  260. package/dist/types/src/capabilities/settings.d.ts +0 -4
  261. package/dist/types/src/capabilities/settings.d.ts.map +0 -1
  262. package/dist/types/src/capabilities/state.d.ts +0 -101
  263. package/dist/types/src/capabilities/state.d.ts.map +0 -1
  264. package/dist/types/src/capabilities/tools.d.ts +0 -11
  265. package/dist/types/src/capabilities/tools.d.ts.map +0 -1
  266. package/dist/types/src/capabilities/url-handler.d.ts +0 -4
  267. package/dist/types/src/capabilities/url-handler.d.ts.map +0 -1
  268. package/dist/types/src/events.d.ts +0 -4
  269. package/dist/types/src/events.d.ts.map +0 -1
  270. package/src/capabilities/app-graph-builder.ts +0 -141
  271. package/src/capabilities/capabilities.ts +0 -14
  272. package/src/capabilities/check-app-scheme.ts +0 -40
  273. package/src/capabilities/intent-resolver.ts +0 -468
  274. package/src/capabilities/react-root.tsx +0 -38
  275. package/src/capabilities/react-surface.tsx +0 -30
  276. package/src/capabilities/settings.ts +0 -26
  277. package/src/capabilities/state.ts +0 -104
  278. package/src/capabilities/tools.ts +0 -81
  279. package/src/capabilities/url-handler.ts +0 -59
  280. package/src/events.ts +0 -11
  281. /package/dist/lib/{browser/state-MVDYX77Y.mjs.map → node-esm/types/index.mjs.map} +0 -0
@@ -0,0 +1,598 @@
1
+ import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
+ import {
3
+ closeEntry,
4
+ computeActiveUpdates,
5
+ createEntryId,
6
+ incrementPlank,
7
+ openEntry
8
+ } from "./chunk-ADPMWKLL.mjs";
9
+ import {
10
+ DeckCapabilities,
11
+ DeckOperation,
12
+ PLANK_COMPANION_TYPE,
13
+ defaultDeck,
14
+ getMode,
15
+ isLayoutMode,
16
+ meta
17
+ } from "./chunk-CVYHPJIN.mjs";
18
+
19
+ // src/capabilities/operation-resolver/operation-resolver.ts
20
+ import * as Effect from "effect/Effect";
21
+ import * as Function from "effect/Function";
22
+ import * as Option from "effect/Option";
23
+ import { Capabilities, Capability, UndoOperation } from "@dxos/app-framework";
24
+ import { AppCapabilities, LayoutOperation } from "@dxos/app-toolkit";
25
+ import { Obj } from "@dxos/echo";
26
+ import { invariant } from "@dxos/invariant";
27
+ import { log } from "@dxos/log";
28
+ import { OperationResolver } from "@dxos/operation";
29
+ import { Operation } from "@dxos/operation";
30
+ import { AttentionCapabilities } from "@dxos/plugin-attention";
31
+ import { Graph, Node } from "@dxos/plugin-graph";
32
+ import { ObservabilityOperation } from "@dxos/plugin-observability/types";
33
+ import { byPosition, isNonNullable } from "@dxos/util";
34
+ var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-deck/src/capabilities/operation-resolver/operation-resolver.ts";
35
+ var updateActiveDeck = (current, deckUpdates) => {
36
+ const currentDeck = current.decks[current.activeDeck];
37
+ invariant(currentDeck, `Deck not found: ${current.activeDeck}`, {
38
+ F: __dxlog_file,
39
+ L: 41,
40
+ S: void 0,
41
+ A: [
42
+ "currentDeck",
43
+ "`Deck not found: ${current.activeDeck}`"
44
+ ]
45
+ });
46
+ return {
47
+ ...current,
48
+ decks: {
49
+ ...current.decks,
50
+ [current.activeDeck]: {
51
+ ...currentDeck,
52
+ ...deckUpdates
53
+ }
54
+ }
55
+ };
56
+ };
57
+ var operation_resolver_default = Capability.makeModule(Effect.fnUntraced(function* () {
58
+ return Capability.contributes(Capabilities.OperationResolver, [
59
+ //
60
+ // UpdateSidebar
61
+ //
62
+ OperationResolver.make({
63
+ operation: LayoutOperation.UpdateSidebar,
64
+ handler: Effect.fnUntraced(function* (input) {
65
+ const state = yield* Capabilities.getAtomValue(DeckCapabilities.State);
66
+ const next = input.state ?? state.sidebarState;
67
+ if (next !== state.sidebarState) {
68
+ yield* Capabilities.updateAtomValue(DeckCapabilities.State, (state2) => ({
69
+ ...state2,
70
+ sidebarState: next
71
+ }));
72
+ }
73
+ })
74
+ }),
75
+ //
76
+ // UpdateComplementary
77
+ //
78
+ OperationResolver.make({
79
+ operation: LayoutOperation.UpdateComplementary,
80
+ handler: Effect.fnUntraced(function* (input) {
81
+ const state = yield* Capabilities.getAtomValue(DeckCapabilities.State);
82
+ const panelChanged = state.complementarySidebarPanel !== input.subject;
83
+ const next = input.subject ? "expanded" : input.state ?? state.complementarySidebarState;
84
+ const stateChanged = next !== state.complementarySidebarState;
85
+ if (panelChanged || stateChanged) {
86
+ yield* Capabilities.updateAtomValue(DeckCapabilities.State, (state2) => ({
87
+ ...state2,
88
+ complementarySidebarPanel: panelChanged ? input.subject : state2.complementarySidebarPanel,
89
+ complementarySidebarState: stateChanged ? next : state2.complementarySidebarState
90
+ }));
91
+ }
92
+ })
93
+ }),
94
+ //
95
+ // UpdateDialog
96
+ //
97
+ OperationResolver.make({
98
+ operation: LayoutOperation.UpdateDialog,
99
+ handler: Effect.fnUntraced(function* (input) {
100
+ yield* Capabilities.updateAtomValue(DeckCapabilities.EphemeralState, (state) => ({
101
+ ...state,
102
+ dialogOpen: input.state ?? Boolean(input.subject),
103
+ dialogType: input.type ?? "default",
104
+ dialogBlockAlign: input.blockAlign ?? "center",
105
+ dialogOverlayClasses: input.overlayClasses,
106
+ dialogOverlayStyle: input.overlayStyle,
107
+ dialogContent: input.subject ? {
108
+ component: input.subject,
109
+ props: input.props
110
+ } : null
111
+ }));
112
+ })
113
+ }),
114
+ //
115
+ // UpdatePopover
116
+ //
117
+ OperationResolver.make({
118
+ operation: LayoutOperation.UpdatePopover,
119
+ handler: Effect.fnUntraced(function* (input) {
120
+ yield* Capabilities.updateAtomValue(DeckCapabilities.EphemeralState, (state) => ({
121
+ ...state,
122
+ popoverOpen: input.state ?? Boolean(input.subject),
123
+ popoverKind: input.kind ?? "base",
124
+ popoverTitle: input.kind === "card" ? input.title : void 0,
125
+ popoverContentRef: input.subjectRef,
126
+ popoverContent: typeof input.subject === "string" ? {
127
+ component: input.subject,
128
+ props: input.props
129
+ } : input.subject ? {
130
+ subject: input.subject
131
+ } : null,
132
+ popoverSide: input.side,
133
+ popoverAnchor: input.variant === "virtual" ? input.anchor : state.popoverAnchor,
134
+ popoverAnchorId: input.variant !== "virtual" ? input.anchorId : state.popoverAnchorId
135
+ }));
136
+ })
137
+ }),
138
+ //
139
+ // AddToast
140
+ //
141
+ OperationResolver.make({
142
+ operation: LayoutOperation.AddToast,
143
+ handler: Effect.fnUntraced(function* (input) {
144
+ yield* Capabilities.updateAtomValue(DeckCapabilities.EphemeralState, (state) => ({
145
+ ...state,
146
+ toasts: [
147
+ ...state.toasts,
148
+ input
149
+ ]
150
+ }));
151
+ })
152
+ }),
153
+ //
154
+ // ShowUndo
155
+ //
156
+ OperationResolver.make({
157
+ operation: UndoOperation.ShowUndo,
158
+ handler: Effect.fnUntraced(function* (input) {
159
+ const historyTracker = yield* Capability.get(Capabilities.HistoryTracker);
160
+ const newUndoId = `show-undo-${Date.now()}`;
161
+ yield* Capabilities.updateAtomValue(DeckCapabilities.EphemeralState, (state) => {
162
+ const filteredToasts = state.currentUndoId ? state.toasts.filter((toast2) => toast2.id !== state.currentUndoId) : state.toasts;
163
+ const toast = {
164
+ id: newUndoId,
165
+ title: input.message ?? [
166
+ "undo available label",
167
+ {
168
+ ns: meta.id
169
+ }
170
+ ],
171
+ duration: 1e4,
172
+ actionLabel: [
173
+ "undo action label",
174
+ {
175
+ ns: meta.id
176
+ }
177
+ ],
178
+ actionAlt: [
179
+ "undo action alt",
180
+ {
181
+ ns: meta.id
182
+ }
183
+ ],
184
+ closeLabel: [
185
+ "undo close label",
186
+ {
187
+ ns: meta.id
188
+ }
189
+ ],
190
+ onAction: () => historyTracker.undoPromise()
191
+ };
192
+ return {
193
+ ...state,
194
+ currentUndoId: newUndoId,
195
+ toasts: [
196
+ ...filteredToasts,
197
+ toast
198
+ ]
199
+ };
200
+ });
201
+ })
202
+ }),
203
+ //
204
+ // SetLayoutMode
205
+ //
206
+ OperationResolver.make({
207
+ operation: LayoutOperation.SetLayoutMode,
208
+ filter: (input) => {
209
+ if ("mode" in input) {
210
+ return isLayoutMode(input.mode);
211
+ }
212
+ return true;
213
+ },
214
+ handler: Effect.fnUntraced(function* (input) {
215
+ const state = yield* Capabilities.getAtomValue(DeckCapabilities.State);
216
+ const deck = yield* DeckCapabilities.getDeck();
217
+ const computeModeUpdate = (mode, subject) => {
218
+ const current = deck.solo ? [
219
+ deck.solo
220
+ ] : deck.active;
221
+ const next = (mode !== "deck" ? [
222
+ subject ?? deck.solo ?? deck.active[0]
223
+ ] : [
224
+ ...deck.active,
225
+ deck.solo
226
+ ]).filter(isNonNullable);
227
+ const removed = current.filter((id) => !next.includes(id));
228
+ const closed = Array.from(/* @__PURE__ */ new Set([
229
+ ...deck.inactive.filter((id) => !next.includes(id)),
230
+ ...removed
231
+ ]));
232
+ const soloUpdate = mode !== "deck" && next[0] ? {
233
+ solo: next[0]
234
+ } : mode === "deck" && deck.solo ? {
235
+ solo: void 0,
236
+ initialized: true
237
+ } : {};
238
+ const fullscreenUpdate = mode === "solo--fullscreen" ? {
239
+ fullscreen: !deck.fullscreen
240
+ } : {};
241
+ return {
242
+ inactive: closed,
243
+ ...soloUpdate,
244
+ ...fullscreenUpdate
245
+ };
246
+ };
247
+ if ("mode" in input) {
248
+ const currentMode = getMode(deck);
249
+ const deckUpdates = computeModeUpdate(input.mode, "subject" in input ? input.subject : void 0);
250
+ yield* Capabilities.updateAtomValue(DeckCapabilities.State, (state2) => {
251
+ const newPreviousMode = currentMode !== input.mode ? {
252
+ ...state2.previousMode,
253
+ [state2.activeDeck]: currentMode
254
+ } : state2.previousMode;
255
+ return {
256
+ ...updateActiveDeck(state2, deckUpdates),
257
+ previousMode: newPreviousMode
258
+ };
259
+ });
260
+ } else if ("revert" in input) {
261
+ const last = state.previousMode[state.activeDeck];
262
+ const deckUpdates = computeModeUpdate(last ?? "solo");
263
+ yield* Capabilities.updateAtomValue(DeckCapabilities.State, (state2) => updateActiveDeck(state2, deckUpdates));
264
+ } else {
265
+ log.warn("Invalid layout mode", input, {
266
+ F: __dxlog_file,
267
+ L: 253,
268
+ S: this,
269
+ C: (f, a) => f(...a)
270
+ });
271
+ }
272
+ })
273
+ }),
274
+ //
275
+ // SwitchWorkspace
276
+ //
277
+ OperationResolver.make({
278
+ operation: LayoutOperation.SwitchWorkspace,
279
+ handler: Effect.fnUntraced(function* (input) {
280
+ const { graph } = yield* Capability.get(AppCapabilities.AppGraph);
281
+ {
282
+ const state = yield* Capabilities.getAtomValue(DeckCapabilities.State);
283
+ const shouldUpdatePrevious = !state.activeDeck.startsWith("!");
284
+ yield* Capabilities.updateAtomValue(DeckCapabilities.State, (state2) => {
285
+ const newDecks = state2.decks[input.subject] ? state2.decks : {
286
+ ...state2.decks,
287
+ [input.subject]: {
288
+ ...defaultDeck
289
+ }
290
+ };
291
+ return {
292
+ ...state2,
293
+ previousDeck: shouldUpdatePrevious ? state2.activeDeck : state2.previousDeck,
294
+ activeDeck: input.subject,
295
+ decks: newDecks
296
+ };
297
+ });
298
+ }
299
+ {
300
+ const state = yield* Capabilities.getAtomValue(DeckCapabilities.State);
301
+ const deck = state.decks[input.subject];
302
+ invariant(deck, `Deck not found: ${input.subject}`, {
303
+ F: __dxlog_file,
304
+ L: 288,
305
+ S: this,
306
+ A: [
307
+ "deck",
308
+ "`Deck not found: ${input.subject}`"
309
+ ]
310
+ });
311
+ const first = deck.solo ? deck.solo : deck.active[0];
312
+ if (first) {
313
+ yield* Operation.schedule(LayoutOperation.ScrollIntoView, {
314
+ subject: first
315
+ });
316
+ } else {
317
+ const [item] = Graph.getConnections(graph, input.subject).filter((node) => !Node.isActionLike(node) && !node.properties.disposition);
318
+ if (item) {
319
+ yield* Operation.schedule(LayoutOperation.Open, {
320
+ subject: [
321
+ item.id
322
+ ]
323
+ });
324
+ }
325
+ }
326
+ }
327
+ })
328
+ }),
329
+ //
330
+ // RevertWorkspace
331
+ //
332
+ OperationResolver.make({
333
+ operation: LayoutOperation.RevertWorkspace,
334
+ handler: Effect.fnUntraced(function* () {
335
+ const state = yield* Capabilities.getAtomValue(DeckCapabilities.State);
336
+ yield* Operation.invoke(LayoutOperation.SwitchWorkspace, {
337
+ subject: state.previousDeck
338
+ });
339
+ })
340
+ }),
341
+ //
342
+ // Open
343
+ //
344
+ OperationResolver.make({
345
+ operation: LayoutOperation.Open,
346
+ handler: Effect.fnUntraced(function* (input) {
347
+ const { graph } = yield* Capability.get(AppCapabilities.AppGraph);
348
+ const attention = yield* Capability.get(AttentionCapabilities.Attention);
349
+ const settings = yield* Capabilities.getAtomValue(DeckCapabilities.Settings);
350
+ {
351
+ const state = yield* Capabilities.getAtomValue(DeckCapabilities.State);
352
+ if (input.workspace && state.activeDeck !== input.workspace) {
353
+ yield* Operation.invoke(LayoutOperation.SwitchWorkspace, {
354
+ subject: input.workspace
355
+ });
356
+ }
357
+ }
358
+ let previouslyOpenIds;
359
+ {
360
+ const deck = yield* DeckCapabilities.getDeck();
361
+ previouslyOpenIds = new Set(deck.solo ? [
362
+ deck.solo
363
+ ] : deck.active);
364
+ const next = deck.solo ? input.subject.map((id) => createEntryId(id, input.variant)) : input.subject.reduce((acc, entryId) => openEntry(acc, entryId, {
365
+ key: input.key,
366
+ positioning: input.positioning ?? settings?.newPlankPositioning,
367
+ pivotId: input.pivotId,
368
+ variant: input.variant
369
+ }), deck.active);
370
+ const { deckUpdates, toAttend: _toAttend } = computeActiveUpdates({
371
+ next,
372
+ deck,
373
+ attention
374
+ });
375
+ yield* Capabilities.updateAtomValue(DeckCapabilities.State, (state) => updateActiveDeck(state, deckUpdates));
376
+ }
377
+ {
378
+ const deck = yield* DeckCapabilities.getDeck();
379
+ const ids = deck.solo ? [
380
+ deck.solo
381
+ ] : deck.active;
382
+ const newlyOpen = ids.filter((i) => !previouslyOpenIds.has(i));
383
+ if (input.scrollIntoView !== false && (newlyOpen[0] ?? input.subject[0])) {
384
+ yield* Operation.schedule(LayoutOperation.ScrollIntoView, {
385
+ subject: newlyOpen[0] ?? input.subject[0]
386
+ });
387
+ }
388
+ if (newlyOpen[0] ?? input.subject[0]) {
389
+ yield* Operation.schedule(LayoutOperation.Expose, {
390
+ subject: newlyOpen[0] ?? input.subject[0]
391
+ });
392
+ }
393
+ for (const subjectId of newlyOpen) {
394
+ const typename = Option.match(Graph.getNode(graph, subjectId), {
395
+ onNone: () => void 0,
396
+ onSome: (node) => {
397
+ const active = node.data;
398
+ return Obj.isObject(active) ? Obj.getTypename(active) : void 0;
399
+ }
400
+ });
401
+ yield* Operation.schedule(ObservabilityOperation.SendEvent, {
402
+ name: "navigation.activate",
403
+ properties: {
404
+ subjectId,
405
+ typename
406
+ }
407
+ });
408
+ }
409
+ }
410
+ })
411
+ }),
412
+ //
413
+ // UpdatePlankSize
414
+ //
415
+ OperationResolver.make({
416
+ operation: DeckOperation.UpdatePlankSize,
417
+ handler: Effect.fnUntraced(function* (input) {
418
+ yield* Capabilities.updateAtomValue(DeckCapabilities.State, (state) => updateActiveDeck(state, {
419
+ plankSizing: {
420
+ ...state.decks[state.activeDeck]?.plankSizing,
421
+ [input.id]: input.size
422
+ }
423
+ }));
424
+ })
425
+ }),
426
+ //
427
+ // Adjust
428
+ //
429
+ OperationResolver.make({
430
+ operation: DeckOperation.Adjust,
431
+ handler: Effect.fnUntraced(function* (input) {
432
+ const _state = yield* Capabilities.getAtomValue(DeckCapabilities.State);
433
+ const deck = yield* DeckCapabilities.getDeck();
434
+ const attention = yield* Capability.get(AttentionCapabilities.Attention);
435
+ const { graph } = yield* Capability.get(AppCapabilities.AppGraph);
436
+ let soloOperation;
437
+ if (input.type === "increment-end" || input.type === "increment-start") {
438
+ const next = incrementPlank(deck.active, input);
439
+ const { deckUpdates } = computeActiveUpdates({
440
+ next,
441
+ deck,
442
+ attention
443
+ });
444
+ yield* Capabilities.updateAtomValue(DeckCapabilities.State, (state) => updateActiveDeck(state, deckUpdates));
445
+ }
446
+ if (input.type.startsWith("solo")) {
447
+ const entryId = input.id;
448
+ if (!deck.solo) {
449
+ soloOperation = {
450
+ type: "solo",
451
+ entryId,
452
+ mode: input.type
453
+ };
454
+ } else {
455
+ if (input.type === "solo--fullscreen") {
456
+ soloOperation = {
457
+ type: "solo",
458
+ entryId,
459
+ mode: "solo--fullscreen"
460
+ };
461
+ } else if (input.type === "solo") {
462
+ soloOperation = {
463
+ type: "unsolo",
464
+ entryId
465
+ };
466
+ }
467
+ }
468
+ }
469
+ if (soloOperation?.type === "solo") {
470
+ yield* Operation.invoke(LayoutOperation.SetLayoutMode, {
471
+ subject: soloOperation.entryId,
472
+ mode: soloOperation.mode
473
+ });
474
+ } else if (soloOperation?.type === "unsolo") {
475
+ yield* Operation.invoke(LayoutOperation.SetLayoutMode, {
476
+ mode: "deck"
477
+ });
478
+ yield* Operation.invoke(LayoutOperation.Open, {
479
+ subject: [
480
+ soloOperation.entryId
481
+ ]
482
+ });
483
+ }
484
+ if (input.type === "companion") {
485
+ const companion = Function.pipe(Graph.getNode(graph, input.id), Option.map((node) => Graph.getConnections(graph, 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()));
486
+ if (Option.isSome(companion)) {
487
+ yield* Operation.invoke(DeckOperation.ChangeCompanion, {
488
+ primary: input.id,
489
+ companion: companion.value.id
490
+ });
491
+ }
492
+ }
493
+ })
494
+ }),
495
+ //
496
+ // ChangeCompanion
497
+ //
498
+ OperationResolver.make({
499
+ operation: DeckOperation.ChangeCompanion,
500
+ handler: Effect.fnUntraced(function* (input) {
501
+ const deck = yield* DeckCapabilities.getDeck();
502
+ if (input.companion === null) {
503
+ const { [input.primary]: _, ...nextActiveCompanions } = deck.activeCompanions ?? {};
504
+ yield* Capabilities.updateAtomValue(DeckCapabilities.State, (state) => updateActiveDeck(state, {
505
+ activeCompanions: nextActiveCompanions
506
+ }));
507
+ } else {
508
+ const companion = input.companion;
509
+ invariant(companion !== input.primary, void 0, {
510
+ F: __dxlog_file,
511
+ L: 494,
512
+ S: this,
513
+ A: [
514
+ "companion !== input.primary",
515
+ ""
516
+ ]
517
+ });
518
+ yield* Capabilities.updateAtomValue(DeckCapabilities.State, (state) => updateActiveDeck(state, {
519
+ activeCompanions: {
520
+ ...deck.activeCompanions,
521
+ [input.primary]: companion
522
+ }
523
+ }));
524
+ }
525
+ })
526
+ }),
527
+ //
528
+ // Close
529
+ //
530
+ OperationResolver.make({
531
+ operation: LayoutOperation.Close,
532
+ handler: Effect.fnUntraced(function* (input) {
533
+ const deck = yield* DeckCapabilities.getDeck();
534
+ const attention = yield* Capability.get(AttentionCapabilities.Attention);
535
+ const active = deck.solo ? [
536
+ deck.solo
537
+ ] : deck.active;
538
+ const next = input.subject.reduce((acc, id) => closeEntry(acc, id), active);
539
+ const { deckUpdates, toAttend } = computeActiveUpdates({
540
+ next,
541
+ deck,
542
+ attention
543
+ });
544
+ yield* Capabilities.updateAtomValue(DeckCapabilities.State, (state) => updateActiveDeck(state, deckUpdates));
545
+ for (const id of input.subject) {
546
+ if (deck.activeCompanions && id in deck.activeCompanions) {
547
+ yield* Operation.invoke(DeckOperation.ChangeCompanion, {
548
+ primary: id,
549
+ companion: null
550
+ });
551
+ }
552
+ }
553
+ if (toAttend) {
554
+ yield* Operation.schedule(LayoutOperation.ScrollIntoView, {
555
+ subject: toAttend
556
+ });
557
+ }
558
+ })
559
+ }),
560
+ //
561
+ // Set
562
+ //
563
+ OperationResolver.make({
564
+ operation: LayoutOperation.Set,
565
+ handler: Effect.fnUntraced(function* (input) {
566
+ const deck = yield* DeckCapabilities.getDeck();
567
+ const attention = yield* Capability.get(AttentionCapabilities.Attention);
568
+ const { deckUpdates, toAttend } = computeActiveUpdates({
569
+ next: input.subject,
570
+ deck,
571
+ attention
572
+ });
573
+ yield* Capabilities.updateAtomValue(DeckCapabilities.State, (state) => updateActiveDeck(state, deckUpdates));
574
+ if (toAttend) {
575
+ yield* Operation.schedule(LayoutOperation.ScrollIntoView, {
576
+ subject: toAttend
577
+ });
578
+ }
579
+ })
580
+ }),
581
+ //
582
+ // ScrollIntoView
583
+ //
584
+ OperationResolver.make({
585
+ operation: LayoutOperation.ScrollIntoView,
586
+ handler: Effect.fnUntraced(function* (input) {
587
+ yield* Capabilities.updateAtomValue(DeckCapabilities.EphemeralState, (state) => ({
588
+ ...state,
589
+ scrollIntoView: input.subject
590
+ }));
591
+ })
592
+ })
593
+ ]);
594
+ }));
595
+ export {
596
+ operation_resolver_default as default
597
+ };
598
+ //# sourceMappingURL=operation-resolver-ZQGNATPX.mjs.map