@dxos/plugin-deck 0.8.4-main.c1de068 → 0.8.4-main.c351d160a8

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