@dxos/plugin-deck 0.8.4-main.c4373fc → 0.8.4-main.d05673bc65

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