@dxos/plugin-deck 0.8.4-main.422d1c7879 → 0.8.4-main.4f23b4e393

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 (349) hide show
  1. package/dist/lib/neutral/DeckLayout-6SICSSUF.mjs +278 -0
  2. package/dist/lib/neutral/DeckLayout-6SICSSUF.mjs.map +7 -0
  3. package/dist/lib/neutral/DeckPlugin.mjs +70 -0
  4. package/dist/lib/neutral/DeckPlugin.mjs.map +7 -0
  5. package/dist/lib/neutral/DeckPlugin.node.mjs +18 -0
  6. package/dist/lib/neutral/DeckPlugin.node.mjs.map +7 -0
  7. package/dist/lib/neutral/DeckSettings-W5I57OXM.mjs +27 -0
  8. package/dist/lib/neutral/DeckSettings-W5I57OXM.mjs.map +7 -0
  9. package/dist/lib/{browser/add-toast-EUN62IUE.mjs → neutral/add-toast-2OMTFZ2L.mjs} +5 -5
  10. package/dist/lib/{browser/add-toast-EUN62IUE.mjs.map → neutral/add-toast-2OMTFZ2L.mjs.map} +2 -2
  11. package/dist/lib/{browser/adjust-XWB6ZZ6U.mjs → neutral/adjust-RXTF3IT3.mjs} +15 -17
  12. package/dist/lib/neutral/adjust-RXTF3IT3.mjs.map +7 -0
  13. package/dist/lib/neutral/app-graph-builder-GZYYAN5B.mjs +129 -0
  14. package/dist/lib/neutral/app-graph-builder-GZYYAN5B.mjs.map +7 -0
  15. package/dist/lib/neutral/capabilities/index.mjs +23 -0
  16. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  17. package/dist/lib/neutral/check-app-scheme-A7FZVNZO.mjs +10 -0
  18. package/dist/lib/neutral/chunk-4MYX2NT3.mjs +1335 -0
  19. package/dist/lib/neutral/chunk-4MYX2NT3.mjs.map +7 -0
  20. package/dist/lib/neutral/chunk-64ODQD6S.mjs +282 -0
  21. package/dist/lib/neutral/chunk-64ODQD6S.mjs.map +7 -0
  22. package/dist/lib/neutral/chunk-6MOYMDKQ.mjs +8 -0
  23. package/dist/lib/neutral/chunk-6MOYMDKQ.mjs.map +7 -0
  24. package/dist/lib/neutral/chunk-GBIGQKYW.mjs +112 -0
  25. package/dist/lib/neutral/chunk-GBIGQKYW.mjs.map +7 -0
  26. package/dist/lib/{browser/chunk-KUTDCWZF.mjs → neutral/chunk-GLB73Q6U.mjs} +2 -10
  27. package/dist/lib/{browser/chunk-KUTDCWZF.mjs.map → neutral/chunk-GLB73Q6U.mjs.map} +2 -2
  28. package/dist/lib/neutral/chunk-JMYWDX4I.mjs +19 -0
  29. package/dist/lib/neutral/chunk-JMYWDX4I.mjs.map +7 -0
  30. package/dist/lib/neutral/chunk-VHETZ22W.mjs +101 -0
  31. package/dist/lib/neutral/chunk-VHETZ22W.mjs.map +7 -0
  32. package/dist/lib/{browser/chunk-DF2VZ6W3.mjs → neutral/chunk-ZYYOSX5I.mjs} +1 -1
  33. package/dist/lib/{browser/chunk-DF2VZ6W3.mjs.map → neutral/chunk-ZYYOSX5I.mjs.map} +2 -2
  34. package/dist/lib/{browser/close-JXK73YIM.mjs → neutral/close-DG5IVQCE.mjs} +12 -12
  35. package/dist/lib/{browser/close-JXK73YIM.mjs.map → neutral/close-DG5IVQCE.mjs.map} +2 -2
  36. package/dist/lib/neutral/components/index.mjs +126 -0
  37. package/dist/lib/neutral/components/index.mjs.map +7 -0
  38. package/dist/lib/neutral/containers/index.mjs +32 -0
  39. package/dist/lib/neutral/containers/index.mjs.map +7 -0
  40. package/dist/lib/neutral/hooks/index.mjs +178 -0
  41. package/dist/lib/neutral/hooks/index.mjs.map +7 -0
  42. package/dist/lib/{node-esm/types → neutral}/index.mjs +13 -8
  43. package/dist/lib/neutral/meta.json +1 -0
  44. package/dist/lib/neutral/meta.mjs +8 -0
  45. package/dist/lib/{browser/open-K2JOEW2E.mjs → neutral/open-SGYZO7RF.mjs} +21 -24
  46. package/dist/lib/neutral/open-SGYZO7RF.mjs.map +7 -0
  47. package/dist/lib/neutral/operation-handler-266CVMTW.mjs +13 -0
  48. package/dist/lib/neutral/operation-handler-266CVMTW.mjs.map +7 -0
  49. package/dist/lib/neutral/operations/index.mjs +8 -0
  50. package/dist/lib/neutral/operations/index.mjs.map +7 -0
  51. package/dist/lib/neutral/plugin.mjs +16 -0
  52. package/dist/lib/neutral/plugin.mjs.map +7 -0
  53. package/dist/lib/neutral/react-root-WZ6KH27J.mjs +41 -0
  54. package/dist/lib/neutral/react-root-WZ6KH27J.mjs.map +7 -0
  55. package/dist/lib/neutral/react-surface-KAAZDHV3.mjs +34 -0
  56. package/dist/lib/neutral/react-surface-KAAZDHV3.mjs.map +7 -0
  57. package/dist/lib/{browser/revert-workspace-BNIR5U64.mjs → neutral/revert-workspace-V6D7W6CL.mjs} +5 -5
  58. package/dist/lib/{browser/revert-workspace-BNIR5U64.mjs.map → neutral/revert-workspace-V6D7W6CL.mjs.map} +2 -2
  59. package/dist/lib/{browser/scroll-into-view-4GSKC3GA.mjs → neutral/scroll-into-view-UM446Q2T.mjs} +5 -5
  60. package/dist/lib/{browser/scroll-into-view-4GSKC3GA.mjs.map → neutral/scroll-into-view-UM446Q2T.mjs.map} +2 -2
  61. package/dist/lib/{browser/set-XCG6NIAO.mjs → neutral/set-JFFKT32S.mjs} +11 -11
  62. package/dist/lib/{browser/set-XCG6NIAO.mjs.map → neutral/set-JFFKT32S.mjs.map} +2 -2
  63. package/dist/lib/{browser/set-layout-mode-BEVNGOY2.mjs → neutral/set-layout-mode-I4YV5V2Y.mjs} +10 -15
  64. package/dist/lib/neutral/set-layout-mode-I4YV5V2Y.mjs.map +7 -0
  65. package/dist/lib/neutral/settings-FE7AC5VS.mjs +34 -0
  66. package/dist/lib/neutral/settings-FE7AC5VS.mjs.map +7 -0
  67. package/dist/lib/{browser/show-undo-5RQNREEB.mjs → neutral/show-undo-ZCMF4J2Q.mjs} +5 -5
  68. package/dist/lib/{browser/show-undo-5RQNREEB.mjs.map → neutral/show-undo-ZCMF4J2Q.mjs.map} +2 -2
  69. package/dist/lib/neutral/state-IIDXMQUO.mjs +86 -0
  70. package/dist/lib/neutral/state-IIDXMQUO.mjs.map +7 -0
  71. package/dist/lib/{browser/switch-workspace-ICJJWNFT.mjs → neutral/switch-workspace-CVDYG5YZ.mjs} +8 -16
  72. package/dist/lib/neutral/switch-workspace-CVDYG5YZ.mjs.map +7 -0
  73. package/dist/lib/neutral/translations.mjs +57 -0
  74. package/dist/lib/neutral/translations.mjs.map +7 -0
  75. package/dist/lib/{browser → neutral}/types/index.mjs +7 -5
  76. package/dist/lib/neutral/types/index.mjs.map +7 -0
  77. package/dist/lib/{browser/update-companion-VPCBH3YT.mjs → neutral/update-companion-VPCM7FJX.mjs} +7 -7
  78. package/dist/lib/neutral/update-companion-VPCM7FJX.mjs.map +7 -0
  79. package/dist/lib/{browser/update-complementary-74DEQY6T.mjs → neutral/update-complementary-SEQ6DDWA.mjs} +6 -6
  80. package/dist/lib/neutral/update-complementary-SEQ6DDWA.mjs.map +7 -0
  81. package/dist/lib/{browser/update-dialog-6TDUYI5R.mjs → neutral/update-dialog-VDHYE4QH.mjs} +5 -5
  82. package/dist/lib/{browser/update-dialog-6TDUYI5R.mjs.map → neutral/update-dialog-VDHYE4QH.mjs.map} +2 -2
  83. package/dist/lib/neutral/update-plank-size-ZXOUZD7Y.mjs +26 -0
  84. package/dist/lib/neutral/update-plank-size-ZXOUZD7Y.mjs.map +7 -0
  85. package/dist/lib/{browser/update-popover-W7E2Z5T6.mjs → neutral/update-popover-VFP32W57.mjs} +5 -5
  86. package/dist/lib/{browser/update-popover-W7E2Z5T6.mjs.map → neutral/update-popover-VFP32W57.mjs.map} +2 -2
  87. package/dist/lib/{browser/update-sidebar-H3A6ZFRU.mjs → neutral/update-sidebar-O5HBOXYH.mjs} +6 -6
  88. package/dist/lib/{browser/update-sidebar-H3A6ZFRU.mjs.map → neutral/update-sidebar-O5HBOXYH.mjs.map} +2 -2
  89. package/dist/lib/neutral/url-handler-3QTKEM2K.mjs +184 -0
  90. package/dist/lib/neutral/url-handler-3QTKEM2K.mjs.map +7 -0
  91. package/dist/types/src/DeckPlugin.d.ts +1 -0
  92. package/dist/types/src/DeckPlugin.d.ts.map +1 -1
  93. package/dist/types/src/DeckPlugin.node.d.ts +4 -0
  94. package/dist/types/src/DeckPlugin.node.d.ts.map +1 -0
  95. package/dist/types/src/DeckPlugin.test.d.ts +2 -0
  96. package/dist/types/src/DeckPlugin.test.d.ts.map +1 -0
  97. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -1
  98. package/dist/types/src/capabilities/check-app-scheme.d.ts +1 -1
  99. package/dist/types/src/capabilities/check-app-scheme.d.ts.map +1 -1
  100. package/dist/types/src/capabilities/index.d.ts +17 -17
  101. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  102. package/dist/types/src/capabilities/operation-handler.d.ts +1 -1
  103. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -1
  104. package/dist/types/src/capabilities/react-root.d.ts.map +1 -1
  105. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -1
  106. package/dist/types/src/capabilities/settings.d.ts.map +1 -1
  107. package/dist/types/src/capabilities/state.d.ts +16 -16
  108. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  109. package/dist/types/src/capabilities/tools.d.ts.map +1 -1
  110. package/dist/types/src/capabilities/url-handler.d.ts +1 -1
  111. package/dist/types/src/capabilities/url-handler.d.ts.map +1 -1
  112. package/dist/types/src/components/DeckSettings/DeckSettings.d.ts.map +1 -1
  113. package/dist/types/src/components/DeckSettings/DeckSettings.stories.d.ts +42 -52
  114. package/dist/types/src/components/DeckSettings/DeckSettings.stories.d.ts.map +1 -1
  115. package/dist/types/src/components/Matrix/Matrix.d.ts +2 -2
  116. package/dist/types/src/components/Matrix/Matrix.d.ts.map +1 -1
  117. package/dist/types/src/components/Matrix/Matrix.stories.d.ts.map +1 -1
  118. package/dist/types/src/containers/Deck/Banner.d.ts +1 -1
  119. package/dist/types/src/containers/Deck/Banner.d.ts.map +1 -1
  120. package/dist/types/src/containers/Deck/Deck.d.ts.map +1 -1
  121. package/dist/types/src/containers/Deck/Deck.stories.d.ts +42 -52
  122. package/dist/types/src/containers/Deck/Deck.stories.d.ts.map +1 -1
  123. package/dist/types/src/containers/Deck/DeckContent.d.ts +4 -4
  124. package/dist/types/src/containers/Deck/DeckContent.d.ts.map +1 -1
  125. package/dist/types/src/containers/Deck/DeckRoot.d.ts +5 -8
  126. package/dist/types/src/containers/Deck/DeckRoot.d.ts.map +1 -1
  127. package/dist/types/src/containers/Deck/DeckViewport.d.ts +4 -7
  128. package/dist/types/src/containers/Deck/DeckViewport.d.ts.map +1 -1
  129. package/dist/types/src/containers/Deck/StatusBar.d.ts.map +1 -1
  130. package/dist/types/src/containers/DeckLayout/DeckLayout.d.ts.map +1 -1
  131. package/dist/types/src/containers/DeckLayout/DeckLayout.stories.d.ts +42 -52
  132. package/dist/types/src/containers/DeckLayout/DeckLayout.stories.d.ts.map +1 -1
  133. package/dist/types/src/containers/DeckLayout/Popover.d.ts.map +1 -1
  134. package/dist/types/src/containers/DeckLayout/Toast.d.ts +1 -1
  135. package/dist/types/src/containers/DeckLayout/Toast.d.ts.map +1 -1
  136. package/dist/types/src/containers/DeckLayout/index.d.ts.map +1 -1
  137. package/dist/types/src/containers/Plank/Plank.d.ts +1 -1
  138. package/dist/types/src/containers/Plank/Plank.d.ts.map +1 -1
  139. package/dist/types/src/containers/Plank/Plank.stories.d.ts +42 -52
  140. package/dist/types/src/containers/Plank/Plank.stories.d.ts.map +1 -1
  141. package/dist/types/src/containers/Plank/PlankContent.d.ts +1 -1
  142. package/dist/types/src/containers/Plank/PlankError.d.ts +1 -1
  143. package/dist/types/src/containers/Plank/PlankError.d.ts.map +1 -1
  144. package/dist/types/src/containers/Plank/PlankRoot.d.ts +1 -1
  145. package/dist/types/src/containers/Plank/PlankRoot.d.ts.map +1 -1
  146. package/dist/types/src/containers/Sidebar/ComplementarySidebar.d.ts.map +1 -1
  147. package/dist/types/src/containers/Sidebar/SidebarButton.d.ts +1 -1
  148. package/dist/types/src/containers/Sidebar/SidebarButton.d.ts.map +1 -1
  149. package/dist/types/src/hooks/useBreakpoints.d.ts +1 -1
  150. package/dist/types/src/hooks/useCompanions.d.ts.map +1 -1
  151. package/dist/types/src/hooks/useDeckCompanions.d.ts +1 -1
  152. package/dist/types/src/hooks/useDeckCompanions.d.ts.map +1 -1
  153. package/dist/types/src/hooks/useHoistStatusbar.d.ts.map +1 -1
  154. package/dist/types/src/hooks/useMainSize.d.ts.map +1 -1
  155. package/dist/types/src/hooks/useNodeActionExpander.d.ts.map +1 -1
  156. package/dist/types/src/hooks/useSelectedCompanion.d.ts.map +1 -1
  157. package/dist/types/src/index.d.ts +1 -3
  158. package/dist/types/src/index.d.ts.map +1 -1
  159. package/dist/types/src/layout.d.ts.map +1 -1
  160. package/dist/types/src/meta.d.ts.map +1 -1
  161. package/dist/types/src/operations/add-toast.d.ts +1 -1
  162. package/dist/types/src/operations/add-toast.d.ts.map +1 -1
  163. package/dist/types/src/operations/adjust.d.ts +3 -3
  164. package/dist/types/src/operations/adjust.d.ts.map +1 -1
  165. package/dist/types/src/operations/close.d.ts +1 -1
  166. package/dist/types/src/operations/close.d.ts.map +1 -1
  167. package/dist/types/src/operations/helpers.d.ts.map +1 -1
  168. package/dist/types/src/operations/index.d.ts +1 -2
  169. package/dist/types/src/operations/index.d.ts.map +1 -1
  170. package/dist/types/src/operations/open.d.ts +1 -1
  171. package/dist/types/src/operations/open.d.ts.map +1 -1
  172. package/dist/types/src/operations/revert-workspace.d.ts +1 -1
  173. package/dist/types/src/operations/revert-workspace.d.ts.map +1 -1
  174. package/dist/types/src/operations/scroll-into-view.d.ts +1 -1
  175. package/dist/types/src/operations/scroll-into-view.d.ts.map +1 -1
  176. package/dist/types/src/operations/set-layout-mode.d.ts +1 -1
  177. package/dist/types/src/operations/set-layout-mode.d.ts.map +1 -1
  178. package/dist/types/src/operations/set.d.ts +1 -1
  179. package/dist/types/src/operations/set.d.ts.map +1 -1
  180. package/dist/types/src/operations/show-undo.d.ts +1 -1
  181. package/dist/types/src/operations/show-undo.d.ts.map +1 -1
  182. package/dist/types/src/operations/switch-workspace.d.ts +1 -1
  183. package/dist/types/src/operations/switch-workspace.d.ts.map +1 -1
  184. package/dist/types/src/operations/update-companion.d.ts +1 -1
  185. package/dist/types/src/operations/update-companion.d.ts.map +1 -1
  186. package/dist/types/src/operations/update-complementary.d.ts +1 -1
  187. package/dist/types/src/operations/update-complementary.d.ts.map +1 -1
  188. package/dist/types/src/operations/update-dialog.d.ts +1 -1
  189. package/dist/types/src/operations/update-dialog.d.ts.map +1 -1
  190. package/dist/types/src/operations/update-plank-size.d.ts +3 -3
  191. package/dist/types/src/operations/update-plank-size.d.ts.map +1 -1
  192. package/dist/types/src/operations/update-popover.d.ts +1 -1
  193. package/dist/types/src/operations/update-popover.d.ts.map +1 -1
  194. package/dist/types/src/operations/update-sidebar.d.ts +1 -1
  195. package/dist/types/src/operations/update-sidebar.d.ts.map +1 -1
  196. package/dist/types/src/plugin.d.ts +4 -0
  197. package/dist/types/src/plugin.d.ts.map +1 -0
  198. package/dist/types/src/translations.d.ts +42 -53
  199. package/dist/types/src/translations.d.ts.map +1 -1
  200. package/dist/types/src/types/DeckCapabilities.d.ts +188 -0
  201. package/dist/types/src/types/DeckCapabilities.d.ts.map +1 -0
  202. package/dist/types/src/types/DeckEvents.d.ts +5 -0
  203. package/dist/types/src/types/DeckEvents.d.ts.map +1 -0
  204. package/dist/types/src/types/DeckOperation.d.ts +15 -0
  205. package/dist/types/src/types/DeckOperation.d.ts.map +1 -0
  206. package/dist/types/src/types/Settings.d.ts +5 -5
  207. package/dist/types/src/types/Settings.d.ts.map +1 -1
  208. package/dist/types/src/types/index.d.ts +3 -2
  209. package/dist/types/src/types/index.d.ts.map +1 -1
  210. package/dist/types/src/types/schema.d.ts +0 -1
  211. package/dist/types/src/types/schema.d.ts.map +1 -1
  212. package/dist/types/src/util/layoutAppliesTopbar.d.ts.map +1 -1
  213. package/dist/types/src/util/plank-url-params.d.ts.map +1 -1
  214. package/dist/types/src/util/sanitize-persisted-state.d.ts.map +1 -1
  215. package/dist/types/src/util/set-active.d.ts.map +1 -1
  216. package/dist/types/tsconfig.tsbuildinfo +1 -1
  217. package/package.json +102 -66
  218. package/src/DeckPlugin.node.ts +17 -0
  219. package/src/DeckPlugin.test.ts +27 -0
  220. package/src/DeckPlugin.ts +4 -3
  221. package/src/capabilities/app-graph-builder.ts +3 -3
  222. package/src/capabilities/index.ts +1 -1
  223. package/src/capabilities/operation-handler.ts +1 -1
  224. package/src/capabilities/settings.ts +1 -1
  225. package/src/capabilities/url-handler.ts +1 -1
  226. package/src/components/DeckSettings/DeckSettings.stories.tsx +2 -1
  227. package/src/components/DeckSettings/DeckSettings.tsx +8 -47
  228. package/src/components/Matrix/Matrix.stories.tsx +1 -1
  229. package/src/containers/Deck/Banner.tsx +2 -2
  230. package/src/containers/Deck/Deck.stories.tsx +1 -1
  231. package/src/containers/Deck/DeckContent.tsx +1 -1
  232. package/src/containers/Deck/DeckViewport.tsx +4 -9
  233. package/src/containers/DeckLayout/ActiveNode.tsx +1 -1
  234. package/src/containers/DeckLayout/DeckLayout.stories.tsx +2 -2
  235. package/src/containers/DeckLayout/Fallback.tsx +1 -1
  236. package/src/containers/Plank/Plank.stories.tsx +2 -2
  237. package/src/containers/Plank/PlankHeading.tsx +3 -3
  238. package/src/containers/Plank/PlankLoading.tsx +1 -1
  239. package/src/containers/Plank/PlankRoot.tsx +1 -1
  240. package/src/containers/Sidebar/ComplementarySidebar.tsx +5 -7
  241. package/src/containers/Sidebar/SidebarButton.tsx +7 -1
  242. package/src/hooks/useDeckCompanions.ts +1 -1
  243. package/src/index.ts +1 -3
  244. package/src/meta.ts +1 -0
  245. package/src/operations/add-toast.ts +1 -1
  246. package/src/operations/adjust.ts +4 -5
  247. package/src/operations/close.ts +2 -2
  248. package/src/operations/index.ts +1 -3
  249. package/src/operations/open.ts +7 -7
  250. package/src/operations/revert-workspace.ts +1 -1
  251. package/src/operations/scroll-into-view.ts +1 -1
  252. package/src/operations/set-layout-mode.ts +1 -1
  253. package/src/operations/set.ts +2 -2
  254. package/src/operations/show-undo.ts +1 -1
  255. package/src/operations/switch-workspace.ts +1 -1
  256. package/src/operations/update-companion.ts +1 -1
  257. package/src/operations/update-complementary.ts +1 -1
  258. package/src/operations/update-dialog.ts +1 -1
  259. package/src/operations/update-plank-size.ts +3 -4
  260. package/src/operations/update-popover.ts +1 -1
  261. package/src/operations/update-sidebar.ts +1 -1
  262. package/src/plugin.ts +11 -0
  263. package/src/translations.ts +2 -12
  264. package/src/types/DeckCapabilities.ts +34 -0
  265. package/src/types/DeckEvents.ts +21 -0
  266. package/src/{operations/definitions.ts → types/DeckOperation.ts} +6 -4
  267. package/src/types/Settings.ts +30 -5
  268. package/src/types/index.ts +4 -2
  269. package/src/types/schema.ts +0 -2
  270. package/dist/lib/browser/adjust-XWB6ZZ6U.mjs.map +0 -7
  271. package/dist/lib/browser/chunk-5LM6A3EC.mjs +0 -208
  272. package/dist/lib/browser/chunk-5LM6A3EC.mjs.map +0 -7
  273. package/dist/lib/browser/chunk-BRZAVPMC.mjs +0 -48
  274. package/dist/lib/browser/chunk-BRZAVPMC.mjs.map +0 -7
  275. package/dist/lib/browser/chunk-FRVCL5NO.mjs +0 -72
  276. package/dist/lib/browser/chunk-FRVCL5NO.mjs.map +0 -7
  277. package/dist/lib/browser/index.mjs +0 -201
  278. package/dist/lib/browser/index.mjs.map +0 -7
  279. package/dist/lib/browser/meta.json +0 -1
  280. package/dist/lib/browser/open-K2JOEW2E.mjs.map +0 -7
  281. package/dist/lib/browser/operations/index.mjs +0 -13
  282. package/dist/lib/browser/operations/index.mjs.map +0 -7
  283. package/dist/lib/browser/set-layout-mode-BEVNGOY2.mjs.map +0 -7
  284. package/dist/lib/browser/switch-workspace-ICJJWNFT.mjs.map +0 -7
  285. package/dist/lib/browser/update-companion-VPCBH3YT.mjs.map +0 -7
  286. package/dist/lib/browser/update-complementary-74DEQY6T.mjs.map +0 -7
  287. package/dist/lib/browser/update-plank-size-5VHZOTHE.mjs +0 -28
  288. package/dist/lib/browser/update-plank-size-5VHZOTHE.mjs.map +0 -7
  289. package/dist/lib/node-esm/add-toast-AZM7NFNM.mjs +0 -25
  290. package/dist/lib/node-esm/add-toast-AZM7NFNM.mjs.map +0 -7
  291. package/dist/lib/node-esm/adjust-ICALXQ6F.mjs +0 -96
  292. package/dist/lib/node-esm/adjust-ICALXQ6F.mjs.map +0 -7
  293. package/dist/lib/node-esm/chunk-A63Q53TW.mjs +0 -73
  294. package/dist/lib/node-esm/chunk-A63Q53TW.mjs.map +0 -7
  295. package/dist/lib/node-esm/chunk-B7WZXRW4.mjs +0 -209
  296. package/dist/lib/node-esm/chunk-B7WZXRW4.mjs.map +0 -7
  297. package/dist/lib/node-esm/chunk-HSLMI22Q.mjs +0 -11
  298. package/dist/lib/node-esm/chunk-IRWCUYJY.mjs +0 -71
  299. package/dist/lib/node-esm/chunk-IRWCUYJY.mjs.map +0 -7
  300. package/dist/lib/node-esm/chunk-MB4SDDVY.mjs +0 -50
  301. package/dist/lib/node-esm/chunk-MB4SDDVY.mjs.map +0 -7
  302. package/dist/lib/node-esm/chunk-MLVJ2ODW.mjs +0 -32
  303. package/dist/lib/node-esm/chunk-MLVJ2ODW.mjs.map +0 -7
  304. package/dist/lib/node-esm/close-GC5V3GD5.mjs +0 -45
  305. package/dist/lib/node-esm/close-GC5V3GD5.mjs.map +0 -7
  306. package/dist/lib/node-esm/index.mjs +0 -202
  307. package/dist/lib/node-esm/index.mjs.map +0 -7
  308. package/dist/lib/node-esm/meta.json +0 -1
  309. package/dist/lib/node-esm/open-XXEHIR6G.mjs +0 -151
  310. package/dist/lib/node-esm/open-XXEHIR6G.mjs.map +0 -7
  311. package/dist/lib/node-esm/operations/index.mjs +0 -14
  312. package/dist/lib/node-esm/operations/index.mjs.map +0 -7
  313. package/dist/lib/node-esm/revert-workspace-WCXAL5C6.mjs +0 -22
  314. package/dist/lib/node-esm/revert-workspace-WCXAL5C6.mjs.map +0 -7
  315. package/dist/lib/node-esm/scroll-into-view-2ZNU44ZO.mjs +0 -22
  316. package/dist/lib/node-esm/scroll-into-view-2ZNU44ZO.mjs.map +0 -7
  317. package/dist/lib/node-esm/set-5MO2JCUQ.mjs +0 -38
  318. package/dist/lib/node-esm/set-5MO2JCUQ.mjs.map +0 -7
  319. package/dist/lib/node-esm/set-layout-mode-3RK4HIG7.mjs +0 -91
  320. package/dist/lib/node-esm/set-layout-mode-3RK4HIG7.mjs.map +0 -7
  321. package/dist/lib/node-esm/show-undo-WV7SAYGJ.mjs +0 -60
  322. package/dist/lib/node-esm/show-undo-WV7SAYGJ.mjs.map +0 -7
  323. package/dist/lib/node-esm/switch-workspace-VNM75H66.mjs +0 -69
  324. package/dist/lib/node-esm/switch-workspace-VNM75H66.mjs.map +0 -7
  325. package/dist/lib/node-esm/update-companion-SIB3GWH7.mjs +0 -33
  326. package/dist/lib/node-esm/update-companion-SIB3GWH7.mjs.map +0 -7
  327. package/dist/lib/node-esm/update-complementary-CZTIVIXU.mjs +0 -29
  328. package/dist/lib/node-esm/update-complementary-CZTIVIXU.mjs.map +0 -7
  329. package/dist/lib/node-esm/update-dialog-HEDV5XBB.mjs +0 -30
  330. package/dist/lib/node-esm/update-dialog-HEDV5XBB.mjs.map +0 -7
  331. package/dist/lib/node-esm/update-plank-size-JJLU7VE3.mjs +0 -29
  332. package/dist/lib/node-esm/update-plank-size-JJLU7VE3.mjs.map +0 -7
  333. package/dist/lib/node-esm/update-popover-HI5TU2VT.mjs +0 -34
  334. package/dist/lib/node-esm/update-popover-HI5TU2VT.mjs.map +0 -7
  335. package/dist/lib/node-esm/update-sidebar-QB5BA655.mjs +0 -26
  336. package/dist/lib/node-esm/update-sidebar-QB5BA655.mjs.map +0 -7
  337. package/dist/types/src/operations/definitions.d.ts +0 -15
  338. package/dist/types/src/operations/definitions.d.ts.map +0 -1
  339. package/dist/types/src/types/capabilities.d.ts +0 -191
  340. package/dist/types/src/types/capabilities.d.ts.map +0 -1
  341. package/dist/types/src/types/events.d.ts +0 -7
  342. package/dist/types/src/types/events.d.ts.map +0 -1
  343. package/src/types/capabilities.ts +0 -35
  344. package/src/types/events.ts +0 -21
  345. /package/dist/lib/{browser/chunk-J5LGTIGS.mjs.map → neutral/check-app-scheme-A7FZVNZO.mjs.map} +0 -0
  346. /package/dist/lib/{browser → neutral}/chunk-J5LGTIGS.mjs +0 -0
  347. /package/dist/lib/{browser/types/index.mjs.map → neutral/chunk-J5LGTIGS.mjs.map} +0 -0
  348. /package/dist/lib/{node-esm/types → neutral}/index.mjs.map +0 -0
  349. /package/dist/lib/{node-esm/chunk-HSLMI22Q.mjs.map → neutral/meta.mjs.map} +0 -0
@@ -0,0 +1,278 @@
1
+ import {
2
+ Deck,
3
+ PlankErrorFallback
4
+ } from "./chunk-4MYX2NT3.mjs";
5
+ import "./chunk-GBIGQKYW.mjs";
6
+ import "./chunk-J5LGTIGS.mjs";
7
+
8
+ // src/containers/DeckLayout/DeckLayout.tsx
9
+ import React5, { useCallback as useCallback3 } from "react";
10
+ import { useAtomCapability, useOperationInvoker, usePluginManager } from "@dxos/app-framework/ui";
11
+ import { LayoutOperation } from "@dxos/app-toolkit";
12
+ import { Mosaic } from "@dxos/react-ui-mosaic";
13
+ import { useDeckState as useDeckState3 } from "#hooks";
14
+ import { DeckCapabilities, getMode } from "#types";
15
+
16
+ // src/containers/DeckLayout/ActiveNode.tsx
17
+ import React from "react";
18
+ import { Surface } from "@dxos/app-framework/ui";
19
+ import { AppSurface, useAppGraph } from "@dxos/app-toolkit/ui";
20
+ import { useNode } from "@dxos/plugin-graph";
21
+ import { useAttended } from "@dxos/react-ui-attention";
22
+ import { useNodeActionExpander } from "#hooks";
23
+ var ActiveNode = () => {
24
+ const [id] = useAttended();
25
+ const { graph } = useAppGraph();
26
+ const activeNode = useNode(graph, id);
27
+ useNodeActionExpander(activeNode);
28
+ return /* @__PURE__ */ React.createElement("div", {
29
+ className: "sr-only"
30
+ }, /* @__PURE__ */ React.createElement(Surface.Surface, {
31
+ type: AppSurface.DocumentTitle,
32
+ data: {
33
+ subject: activeNode
34
+ },
35
+ limit: 1
36
+ }));
37
+ };
38
+
39
+ // src/containers/DeckLayout/Dialog.tsx
40
+ import React2, { useCallback } from "react";
41
+ import { Surface as Surface2 } from "@dxos/app-framework/ui";
42
+ import { AppSurface as AppSurface2 } from "@dxos/app-toolkit/ui";
43
+ import { AlertDialog, Dialog as NaturalDialog } from "@dxos/react-ui";
44
+ import { useDeckState } from "#hooks";
45
+ var Dialog = () => {
46
+ const { state, updateEphemeral } = useDeckState();
47
+ const { dialogOpen, dialogType, dialogBlockAlign, dialogOverlayClasses, dialogOverlayStyle, dialogContent } = state;
48
+ const Root = dialogType === "alert" ? AlertDialog.Root : NaturalDialog.Root;
49
+ const Overlay = dialogType === "alert" ? AlertDialog.Overlay : NaturalDialog.Overlay;
50
+ const handleOpenChange = useCallback((nextOpen) => {
51
+ updateEphemeral((s) => ({
52
+ ...s,
53
+ dialogOpen: nextOpen
54
+ }));
55
+ }, [
56
+ updateEphemeral
57
+ ]);
58
+ return /* @__PURE__ */ React2.createElement(Root, {
59
+ modal: dialogBlockAlign !== "end",
60
+ open: dialogOpen,
61
+ onOpenChange: handleOpenChange
62
+ }, dialogBlockAlign === "end" ? (
63
+ // TODO(burdon): Placeholder creates a suspense boundary; replace with defaults.
64
+ /* @__PURE__ */ React2.createElement(Surface2.Surface, {
65
+ type: AppSurface2.Dialog,
66
+ data: dialogContent ?? void 0,
67
+ limit: 1,
68
+ fallback: PlankErrorFallback,
69
+ placeholder: /* @__PURE__ */ React2.createElement("div", null)
70
+ })
71
+ ) : /* @__PURE__ */ React2.createElement(Overlay, {
72
+ blockAlign: dialogBlockAlign,
73
+ classNames: dialogOverlayClasses,
74
+ style: dialogOverlayStyle
75
+ }, /* @__PURE__ */ React2.createElement(Surface2.Surface, {
76
+ type: AppSurface2.Dialog,
77
+ data: dialogContent ?? void 0,
78
+ limit: 1,
79
+ fallback: PlankErrorFallback
80
+ })));
81
+ };
82
+
83
+ // src/containers/DeckLayout/Popover.tsx
84
+ import { createContext } from "@radix-ui/react-context";
85
+ import * as Function from "effect/Function";
86
+ import * as Option from "effect/Option";
87
+ import React3, { useCallback as useCallback2, useEffect, useRef, useState } from "react";
88
+ import { Surface as Surface3 } from "@dxos/app-framework/ui";
89
+ import { AppSurface as AppSurface3, useObjectMenuItems } from "@dxos/app-toolkit/ui";
90
+ import { Annotation, Obj } from "@dxos/echo";
91
+ import { Card, Popover, toLocalizedString, Toolbar, useTranslation } from "@dxos/react-ui";
92
+ import { Menu } from "@dxos/react-ui-menu";
93
+ import { useDeckState as useDeckState2 } from "#hooks";
94
+ import { meta } from "#meta";
95
+ var DEBOUNCE_DELAY = 40;
96
+ var [DeckPopoverProvider, useDeckPopoverContext] = createContext("DeckPopover");
97
+ var PopoverRoot = ({ children }) => {
98
+ const { state } = useDeckState2();
99
+ const virtualRef = useRef(null);
100
+ const [virtualIter, setVirtualIter] = useState(0);
101
+ const [open, setOpen] = useState(false);
102
+ const debounceRef = useRef(null);
103
+ useEffect(() => {
104
+ setOpen(false);
105
+ if (state.popoverOpen) {
106
+ if (debounceRef.current) {
107
+ clearTimeout(debounceRef.current);
108
+ }
109
+ if (state.popoverAnchor && virtualRef.current !== state.popoverAnchor) {
110
+ virtualRef.current = state.popoverAnchor ?? null;
111
+ setVirtualIter((iter) => iter + 1);
112
+ }
113
+ debounceRef.current = setTimeout(() => setOpen(true), DEBOUNCE_DELAY);
114
+ }
115
+ }, [
116
+ state.popoverOpen,
117
+ state.popoverAnchorId,
118
+ state.popoverAnchor,
119
+ state.popoverContent
120
+ ]);
121
+ return /* @__PURE__ */ React3.createElement(DeckPopoverProvider, {
122
+ setOpen
123
+ }, /* @__PURE__ */ React3.createElement(Popover.Root, {
124
+ modal: false,
125
+ open
126
+ }, state.popoverAnchor && /* @__PURE__ */ React3.createElement(Popover.VirtualTrigger, {
127
+ key: virtualIter,
128
+ virtualRef
129
+ }), children));
130
+ };
131
+ var PopoverContent = () => {
132
+ const { t } = useTranslation(meta.id);
133
+ const { state, updateEphemeral } = useDeckState2();
134
+ const { setOpen } = useDeckPopoverContext("PopoverContent");
135
+ const popoverSubject = state.popoverContent && "subject" in state.popoverContent ? state.popoverContent.subject : void 0;
136
+ const isObjectPopover = Obj.isObject(popoverSubject);
137
+ const objectMenuItems = useObjectMenuItems(popoverSubject);
138
+ const title = state.popoverTitle ? toLocalizedString(state.popoverTitle, t) : "Unknown";
139
+ const icon = isObjectPopover ? Function.pipe(Obj.getSchema(popoverSubject), Option.fromNullable, Option.flatMap(Annotation.IconAnnotation.get), Option.map(({ icon: icon2 }) => icon2), Option.getOrElse(() => "ph--placeholder--regular")) : void 0;
140
+ const handleClose = useCallback2(() => {
141
+ setOpen(false);
142
+ updateEphemeral((state2) => ({
143
+ ...state2,
144
+ popoverOpen: false,
145
+ popoverAnchor: void 0,
146
+ popoverAnchorId: void 0,
147
+ popoverSide: void 0
148
+ }));
149
+ }, [
150
+ updateEphemeral
151
+ ]);
152
+ const handleInteractOutside = useCallback2((event) => {
153
+ if (
154
+ // TODO(thure): CodeMirror should not focus itself when it updates.
155
+ event.type === "dismissableLayer.focusOutside" && event.currentTarget?.classList.contains("cm-content")
156
+ ) {
157
+ event.preventDefault();
158
+ } else {
159
+ handleClose();
160
+ }
161
+ }, [
162
+ handleClose
163
+ ]);
164
+ return /* @__PURE__ */ React3.createElement(Popover.Portal, null, /* @__PURE__ */ React3.createElement(Popover.Content, {
165
+ side: state.popoverSide,
166
+ sticky: "always",
167
+ hideWhenDetached: true,
168
+ onInteractOutside: handleInteractOutside,
169
+ onEscapeKeyDown: handleInteractOutside
170
+ }, /* @__PURE__ */ React3.createElement(Popover.Viewport, null, state.popoverKind === "base" && state.popoverContent && "component" in state.popoverContent && /* @__PURE__ */ React3.createElement(Surface3.Surface, {
171
+ type: AppSurface3.Popover,
172
+ data: state.popoverContent,
173
+ limit: 1
174
+ }), state.popoverKind === "card" && /* @__PURE__ */ React3.createElement(Menu.Root, null, /* @__PURE__ */ React3.createElement(Card.Root, {
175
+ border: false,
176
+ classNames: "dx-card-popover"
177
+ }, /* @__PURE__ */ React3.createElement(Card.Toolbar, null, /* @__PURE__ */ React3.createElement(Card.IconBlock, {
178
+ padding: true
179
+ }, icon && /* @__PURE__ */ React3.createElement(Card.Icon, {
180
+ icon
181
+ })), /* @__PURE__ */ React3.createElement(Card.Title, null, title), /* @__PURE__ */ React3.createElement(Card.IconBlock, {
182
+ padding: true
183
+ }, /* @__PURE__ */ React3.createElement(Menu.Trigger, {
184
+ asChild: true,
185
+ disabled: !objectMenuItems.length
186
+ }, /* @__PURE__ */ React3.createElement(Toolbar.IconButton, {
187
+ variant: "ghost",
188
+ icon: "ph--dots-three-vertical--regular",
189
+ iconOnly: true,
190
+ label: "Actions"
191
+ })), /* @__PURE__ */ React3.createElement(Menu.Content, {
192
+ items: objectMenuItems
193
+ }))), state.popoverContent && "subject" in state.popoverContent && /* @__PURE__ */ React3.createElement(Surface3.Surface, {
194
+ type: AppSurface3.Card,
195
+ data: state.popoverContent,
196
+ limit: 1
197
+ })))), /* @__PURE__ */ React3.createElement(Popover.Arrow, null)));
198
+ };
199
+
200
+ // src/containers/DeckLayout/Toast.tsx
201
+ import React4 from "react";
202
+ import { Button, Icon, Toast as NaturalToast, toLocalizedString as toLocalizedString2, useTranslation as useTranslation2 } from "@dxos/react-ui";
203
+ import { meta as meta2 } from "#meta";
204
+ var Toast = ({ id, title, description, icon, duration, actionLabel, actionAlt, closeLabel, onAction, onOpenChange }) => {
205
+ const { t } = useTranslation2(meta2.id);
206
+ return /* @__PURE__ */ React4.createElement(NaturalToast.Root, {
207
+ "data-testid": id,
208
+ defaultOpen: true,
209
+ duration,
210
+ onOpenChange
211
+ }, /* @__PURE__ */ React4.createElement(NaturalToast.Body, null, /* @__PURE__ */ React4.createElement(NaturalToast.Title, {
212
+ classNames: "items-center"
213
+ }, icon && /* @__PURE__ */ React4.createElement(Icon, {
214
+ icon,
215
+ classNames: "inline mr-1"
216
+ }), title && /* @__PURE__ */ React4.createElement("span", null, toLocalizedString2(title, t))), description && /* @__PURE__ */ React4.createElement(NaturalToast.Description, null, description && toLocalizedString2(description, t))), /* @__PURE__ */ React4.createElement(NaturalToast.Actions, null, onAction && actionAlt && actionLabel && /* @__PURE__ */ React4.createElement(NaturalToast.Action, {
217
+ altText: toLocalizedString2(actionAlt, t),
218
+ asChild: true
219
+ }, /* @__PURE__ */ React4.createElement(Button, {
220
+ "data-testid": "toast.action",
221
+ variant: "primary",
222
+ onClick: () => onAction?.()
223
+ }, toLocalizedString2(actionLabel, t))), closeLabel && /* @__PURE__ */ React4.createElement(NaturalToast.Close, {
224
+ asChild: true
225
+ }, /* @__PURE__ */ React4.createElement(Button, {
226
+ "data-testid": "toast.close"
227
+ }, toLocalizedString2(closeLabel, t)))));
228
+ };
229
+ var Toaster = ({ toasts, onDismissToast }) => {
230
+ return /* @__PURE__ */ React4.createElement(React4.Fragment, null, toasts?.map((toast) => /* @__PURE__ */ React4.createElement(Toast, {
231
+ ...toast,
232
+ key: toast.id,
233
+ onOpenChange: (open) => {
234
+ if (!open) {
235
+ onDismissToast?.(toast.id);
236
+ }
237
+ return open;
238
+ }
239
+ })));
240
+ };
241
+
242
+ // src/containers/DeckLayout/DeckLayout.tsx
243
+ var DeckLayout = ({ onDismissToast }) => {
244
+ const settings = useAtomCapability(DeckCapabilities.Settings);
245
+ const pluginManager = usePluginManager();
246
+ const { invokePromise } = useOperationInvoker();
247
+ const { deck, state, updateState } = useDeckState3();
248
+ const layoutMode = getMode(deck);
249
+ const { toasts } = state;
250
+ const handleLayoutChange = useCallback3((request) => {
251
+ void invokePromise(LayoutOperation.SetLayoutMode, request);
252
+ }, [
253
+ invokePromise
254
+ ]);
255
+ return /* @__PURE__ */ React5.createElement(Mosaic.Root, null, /* @__PURE__ */ React5.createElement(PopoverRoot, null, /* @__PURE__ */ React5.createElement(ActiveNode, null), /* @__PURE__ */ React5.createElement(Deck.Root, {
256
+ settings,
257
+ pluginManager,
258
+ layoutMode,
259
+ deck,
260
+ state,
261
+ updateState,
262
+ onLayoutChange: handleLayoutChange
263
+ }, /* @__PURE__ */ React5.createElement(Deck.Content, null, /* @__PURE__ */ React5.createElement(Deck.Viewport, null, deck.solo ? /* @__PURE__ */ React5.createElement(Deck.SoloMode, null) : deck.active.length === 0 ? /* @__PURE__ */ React5.createElement(Deck.ContentEmpty, null) : /* @__PURE__ */ React5.createElement(Deck.MultiMode, null)))), /* @__PURE__ */ React5.createElement(PopoverContent, null), /* @__PURE__ */ React5.createElement(Dialog, null), /* @__PURE__ */ React5.createElement(Toaster, {
264
+ toasts,
265
+ onDismissToast
266
+ })));
267
+ };
268
+
269
+ // src/containers/DeckLayout/constants.ts
270
+ var NAV_ID = "NavTree";
271
+
272
+ // src/containers/DeckLayout/index.ts
273
+ var DeckLayout_default = DeckLayout;
274
+ export {
275
+ NAV_ID,
276
+ DeckLayout_default as default
277
+ };
278
+ //# sourceMappingURL=DeckLayout-6SICSSUF.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/containers/DeckLayout/DeckLayout.tsx", "../../../src/containers/DeckLayout/ActiveNode.tsx", "../../../src/containers/DeckLayout/Dialog.tsx", "../../../src/containers/DeckLayout/Popover.tsx", "../../../src/containers/DeckLayout/Toast.tsx", "../../../src/containers/DeckLayout/constants.ts", "../../../src/containers/DeckLayout/index.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport React, { useCallback } from 'react';\n\nimport { useAtomCapability, useOperationInvoker, usePluginManager } from '@dxos/app-framework/ui';\nimport { LayoutOperation } from '@dxos/app-toolkit';\nimport { Mosaic } from '@dxos/react-ui-mosaic';\n\nimport { useDeckState } from '#hooks';\nimport { DeckCapabilities, getMode } from '#types';\n\nimport { Deck, type DeckLayoutChangeRequest } from '../Deck';\nimport { ActiveNode } from './ActiveNode';\nimport { Dialog } from './Dialog';\nimport { PopoverContent, PopoverRoot } from './Popover';\nimport { Toaster, type ToasterProps } from './Toast';\n\nexport type DeckLayoutProps = Pick<ToasterProps, 'onDismissToast'>;\n\nexport const DeckLayout = ({ onDismissToast }: DeckLayoutProps) => {\n const settings = useAtomCapability(DeckCapabilities.Settings);\n const pluginManager = usePluginManager();\n const { invokePromise } = useOperationInvoker();\n const { deck, state, updateState } = useDeckState();\n const layoutMode = getMode(deck);\n const { toasts } = state;\n\n const handleLayoutChange = useCallback(\n (request: DeckLayoutChangeRequest) => {\n void invokePromise(LayoutOperation.SetLayoutMode, request);\n },\n [invokePromise],\n );\n\n return (\n <Mosaic.Root>\n <PopoverRoot>\n <ActiveNode />\n <Deck.Root\n settings={settings}\n pluginManager={pluginManager}\n layoutMode={layoutMode}\n deck={deck}\n state={state}\n updateState={updateState}\n onLayoutChange={handleLayoutChange}\n >\n <Deck.Content>\n <Deck.Viewport>\n {deck.solo ? <Deck.SoloMode /> : deck.active.length === 0 ? <Deck.ContentEmpty /> : <Deck.MultiMode />}\n </Deck.Viewport>\n </Deck.Content>\n </Deck.Root>\n <PopoverContent />\n <Dialog />\n <Toaster toasts={toasts} onDismissToast={onDismissToast} />\n </PopoverRoot>\n </Mosaic.Root>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\n\nimport { Surface } from '@dxos/app-framework/ui';\nimport { AppSurface, useAppGraph } from '@dxos/app-toolkit/ui';\nimport { useNode } from '@dxos/plugin-graph';\nimport { useAttended } from '@dxos/react-ui-attention';\n\nimport { useNodeActionExpander } from '#hooks';\n\n// TODO(burdon): Factor out to effect in plugin set document title.\nexport const ActiveNode = () => {\n const [id] = useAttended();\n const { graph } = useAppGraph();\n const activeNode = useNode(graph, id);\n useNodeActionExpander(activeNode);\n\n return (\n <div className='sr-only'>\n {/* TODO(wittjosiah): Weird that this is a surface, feel like it's not really render logic.\n Probably this lives in React-land currently in order to access translations? */}\n <Surface.Surface\n type={AppSurface.DocumentTitle}\n data={{ subject: activeNode } satisfies AppSurface.DocumentTitleData}\n limit={1}\n />\n </div>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport React, { useCallback } from 'react';\n\nimport { Surface } from '@dxos/app-framework/ui';\nimport { AppSurface } from '@dxos/app-toolkit/ui';\nimport { AlertDialog, Dialog as NaturalDialog } from '@dxos/react-ui';\n\nimport { useDeckState } from '#hooks';\n\nimport { PlankErrorFallback } from '../Plank';\n\nexport const Dialog = () => {\n const { state, updateEphemeral } = useDeckState();\n const { dialogOpen, dialogType, dialogBlockAlign, dialogOverlayClasses, dialogOverlayStyle, dialogContent } = state;\n const Root = dialogType === 'alert' ? AlertDialog.Root : NaturalDialog.Root;\n const Overlay = dialogType === 'alert' ? AlertDialog.Overlay : NaturalDialog.Overlay;\n\n const handleOpenChange = useCallback(\n (nextOpen: boolean) => {\n updateEphemeral((s) => ({ ...s, dialogOpen: nextOpen }));\n },\n [updateEphemeral],\n );\n\n // TODO(thure): End block alignment affecting `modal` and whether the surface renders in an overlay is tailored to the needs of the ambient chat dialog. As the feature matures, consider separating concerns.\n return (\n <Root modal={dialogBlockAlign !== 'end'} open={dialogOpen} onOpenChange={handleOpenChange}>\n {dialogBlockAlign === 'end' ? (\n // TODO(burdon): Placeholder creates a suspense boundary; replace with defaults.\n <Surface.Surface\n type={AppSurface.Dialog}\n data={dialogContent ?? undefined}\n limit={1}\n fallback={PlankErrorFallback}\n placeholder={<div />}\n />\n ) : (\n <Overlay blockAlign={dialogBlockAlign} classNames={dialogOverlayClasses} style={dialogOverlayStyle}>\n <Surface.Surface\n type={AppSurface.Dialog}\n data={dialogContent ?? undefined}\n limit={1}\n fallback={PlankErrorFallback}\n />\n </Overlay>\n )}\n </Root>\n );\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { createContext } from '@radix-ui/react-context';\nimport * as Function from 'effect/Function';\nimport * as Option from 'effect/Option';\nimport React, { type PropsWithChildren, useCallback, useEffect, useRef, useState } from 'react';\n\nimport { Surface } from '@dxos/app-framework/ui';\nimport { AppSurface, useObjectMenuItems } from '@dxos/app-toolkit/ui';\nimport { Annotation, Obj } from '@dxos/echo';\nimport {\n Card,\n Popover,\n type PopoverContentInteractOutsideEvent,\n toLocalizedString,\n Toolbar,\n useTranslation,\n} from '@dxos/react-ui';\nimport { Menu } from '@dxos/react-ui-menu';\n\nimport { useDeckState } from '#hooks';\nimport { meta } from '#meta';\n\nconst DEBOUNCE_DELAY = 40;\n\ntype DeckPopoverContextValue = {\n setOpen: (open: boolean) => void;\n};\n\nconst [DeckPopoverProvider, useDeckPopoverContext] = createContext<DeckPopoverContextValue>('DeckPopover');\n\nexport type PopoverRootProps = PropsWithChildren;\n\nexport const PopoverRoot = ({ children }: PopoverRootProps) => {\n const { state } = useDeckState();\n const virtualRef = useRef<HTMLButtonElement | null>(null);\n const [virtualIter, setVirtualIter] = useState(0);\n const [open, setOpen] = useState(false);\n const debounceRef = useRef<NodeJS.Timeout | null>(null);\n\n // TODO(thure): This is a workaround for the race condition between displaying a Popover and either rendering\n // the anchor further down the tree or measuring the virtual trigger's client rect.\n useEffect(() => {\n setOpen(false);\n if (state.popoverOpen) {\n if (debounceRef.current) {\n clearTimeout(debounceRef.current);\n }\n if (state.popoverAnchor && virtualRef.current !== state.popoverAnchor) {\n virtualRef.current = state.popoverAnchor ?? null;\n setVirtualIter((iter) => iter + 1);\n }\n debounceRef.current = setTimeout(() => setOpen(true), DEBOUNCE_DELAY);\n }\n }, [state.popoverOpen, state.popoverAnchorId, state.popoverAnchor, state.popoverContent]);\n\n return (\n <DeckPopoverProvider setOpen={setOpen}>\n <Popover.Root modal={false} open={open}>\n {state.popoverAnchor && <Popover.VirtualTrigger key={virtualIter} virtualRef={virtualRef} />}\n {children}\n </Popover.Root>\n </DeckPopoverProvider>\n );\n};\n\nexport const PopoverContent = () => {\n const { t } = useTranslation(meta.id);\n const { state, updateEphemeral } = useDeckState();\n const { setOpen } = useDeckPopoverContext('PopoverContent');\n const popoverSubject =\n state.popoverContent && 'subject' in state.popoverContent ? state.popoverContent.subject : undefined;\n const isObjectPopover = Obj.isObject(popoverSubject);\n const objectMenuItems = useObjectMenuItems(popoverSubject);\n const title = state.popoverTitle ? toLocalizedString(state.popoverTitle, t) : 'Unknown';\n const icon = isObjectPopover\n ? Function.pipe(\n Obj.getSchema(popoverSubject),\n Option.fromNullable,\n Option.flatMap(Annotation.IconAnnotation.get),\n Option.map(({ icon }) => icon),\n Option.getOrElse(() => 'ph--placeholder--regular'),\n )\n : undefined;\n\n const handleClose = useCallback(() => {\n setOpen(false);\n updateEphemeral((state) => ({\n ...state,\n popoverOpen: false,\n popoverAnchor: undefined,\n popoverAnchorId: undefined,\n popoverSide: undefined,\n }));\n }, [updateEphemeral]);\n\n const handleInteractOutside = useCallback(\n (event: KeyboardEvent | PopoverContentInteractOutsideEvent) => {\n if (\n // TODO(thure): CodeMirror should not focus itself when it updates.\n event.type === 'dismissableLayer.focusOutside' &&\n (event.currentTarget as HTMLElement | undefined)?.classList.contains('cm-content')\n ) {\n event.preventDefault();\n } else {\n handleClose();\n }\n },\n [handleClose],\n );\n\n return (\n <Popover.Portal>\n <Popover.Content\n side={state.popoverSide}\n sticky='always'\n hideWhenDetached\n onInteractOutside={handleInteractOutside}\n onEscapeKeyDown={handleInteractOutside}\n >\n <Popover.Viewport>\n {/* Base popover */}\n {state.popoverKind === 'base' && state.popoverContent && 'component' in state.popoverContent && (\n <Surface.Surface type={AppSurface.Popover} data={state.popoverContent} limit={1} />\n )}\n\n {/* Card popover */}\n {state.popoverKind === 'card' && (\n <Menu.Root>\n <Card.Root border={false} classNames='dx-card-popover'>\n <Card.Toolbar>\n <Card.IconBlock padding>{icon && <Card.Icon icon={icon} />}</Card.IconBlock>\n <Card.Title>{title}</Card.Title>\n {/* TODO(wittjosiah): Reconcile with Card.Menu. */}\n <Card.IconBlock padding>\n <Menu.Trigger asChild disabled={!objectMenuItems.length}>\n <Toolbar.IconButton\n variant='ghost'\n icon='ph--dots-three-vertical--regular'\n iconOnly\n label='Actions'\n />\n </Menu.Trigger>\n <Menu.Content items={objectMenuItems} />\n </Card.IconBlock>\n </Card.Toolbar>\n\n {state.popoverContent && 'subject' in state.popoverContent && (\n <Surface.Surface type={AppSurface.Card} data={state.popoverContent} limit={1} />\n )}\n </Card.Root>\n </Menu.Root>\n )}\n </Popover.Viewport>\n <Popover.Arrow />\n </Popover.Content>\n </Popover.Portal>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type LayoutOperation } from '@dxos/app-toolkit';\nimport {\n Button,\n Icon,\n Toast as NaturalToast,\n type ToastRootProps,\n toLocalizedString,\n useTranslation,\n} from '@dxos/react-ui';\n\nimport { meta } from '#meta';\n\n// TODO(wittjosiah): Render remaining duration as a progress bar within the toast.\nexport const Toast = ({\n id,\n title,\n description,\n icon,\n duration,\n actionLabel,\n actionAlt,\n closeLabel,\n onAction,\n onOpenChange,\n}: LayoutOperation.Toast & Pick<ToastRootProps, 'onOpenChange'>) => {\n const { t } = useTranslation(meta.id);\n\n return (\n <NaturalToast.Root data-testid={id} defaultOpen duration={duration} onOpenChange={onOpenChange}>\n <NaturalToast.Body>\n <NaturalToast.Title classNames='items-center'>\n {icon && <Icon icon={icon} classNames='inline mr-1' />}\n {title && <span>{toLocalizedString(title, t)}</span>}\n </NaturalToast.Title>\n {description && (\n <NaturalToast.Description>{description && toLocalizedString(description, t)}</NaturalToast.Description>\n )}\n </NaturalToast.Body>\n <NaturalToast.Actions>\n {onAction && actionAlt && actionLabel && (\n <NaturalToast.Action altText={toLocalizedString(actionAlt, t)} asChild>\n <Button data-testid='toast.action' variant='primary' onClick={() => onAction?.()}>\n {toLocalizedString(actionLabel, t)}\n </Button>\n </NaturalToast.Action>\n )}\n {closeLabel && (\n <NaturalToast.Close asChild>\n <Button data-testid='toast.close'>{toLocalizedString(closeLabel, t)}</Button>\n </NaturalToast.Close>\n )}\n </NaturalToast.Actions>\n </NaturalToast.Root>\n );\n};\n\nexport type ToasterProps = {\n toasts?: LayoutOperation.Toast[];\n onDismissToast?: (id: string) => void;\n};\n\nexport const Toaster = ({ toasts, onDismissToast }: ToasterProps) => {\n return (\n <>\n {toasts?.map((toast) => (\n <Toast\n {...toast}\n key={toast.id}\n onOpenChange={(open: boolean) => {\n if (!open) {\n onDismissToast?.(toast.id);\n }\n\n return open;\n }}\n />\n ))}\n </>\n );\n};\n", "//\n// Copyright 2024 DXOS.org\n//\n\nexport const NAV_ID = 'NavTree';\n\nexport const SURFACE_PREFIX = 'surface:';\n", "//\n// Copyright 2024 DXOS.org\n//\n\nimport { DeckLayout } from './DeckLayout';\n\nexport { NAV_ID } from './constants';\n\nexport default DeckLayout;\n"],
5
+ "mappings": "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",
6
+ "names": ["React", "useCallback", "useAtomCapability", "useOperationInvoker", "usePluginManager", "LayoutOperation", "Mosaic", "useDeckState", "DeckCapabilities", "getMode", "React", "Surface", "AppSurface", "useAppGraph", "useNode", "useAttended", "useNodeActionExpander", "ActiveNode", "id", "graph", "activeNode", "div", "className", "type", "DocumentTitle", "data", "subject", "limit", "React", "useCallback", "Surface", "AppSurface", "AlertDialog", "Dialog", "NaturalDialog", "useDeckState", "Dialog", "state", "updateEphemeral", "useDeckState", "dialogOpen", "dialogType", "dialogBlockAlign", "dialogOverlayClasses", "dialogOverlayStyle", "dialogContent", "Root", "AlertDialog", "NaturalDialog", "Overlay", "handleOpenChange", "useCallback", "nextOpen", "s", "React", "modal", "open", "onOpenChange", "Surface", "type", "AppSurface", "data", "undefined", "limit", "fallback", "PlankErrorFallback", "placeholder", "div", "blockAlign", "classNames", "style", "createContext", "Function", "Option", "React", "useCallback", "useEffect", "useRef", "useState", "Surface", "AppSurface", "useObjectMenuItems", "Annotation", "Obj", "Card", "Popover", "toLocalizedString", "Toolbar", "useTranslation", "Menu", "useDeckState", "meta", "DEBOUNCE_DELAY", "DeckPopoverProvider", "useDeckPopoverContext", "PopoverRoot", "children", "state", "virtualRef", "virtualIter", "setVirtualIter", "open", "setOpen", "debounceRef", "popoverOpen", "current", "clearTimeout", "popoverAnchor", "iter", "setTimeout", "popoverAnchorId", "popoverContent", "Root", "modal", "VirtualTrigger", "key", "PopoverContent", "t", "id", "updateEphemeral", "popoverSubject", "subject", "undefined", "isObjectPopover", "isObject", "objectMenuItems", "title", "popoverTitle", "icon", "pipe", "getSchema", "fromNullable", "flatMap", "IconAnnotation", "get", "map", "getOrElse", "handleClose", "popoverSide", "handleInteractOutside", "event", "type", "currentTarget", "classList", "contains", "preventDefault", "Portal", "Content", "side", "sticky", "hideWhenDetached", "onInteractOutside", "onEscapeKeyDown", "Viewport", "popoverKind", "data", "limit", "border", "classNames", "IconBlock", "padding", "Icon", "Title", "Trigger", "asChild", "disabled", "length", "IconButton", "variant", "iconOnly", "label", "items", "Arrow", "React", "Button", "Icon", "Toast", "NaturalToast", "toLocalizedString", "useTranslation", "meta", "id", "title", "description", "icon", "duration", "actionLabel", "actionAlt", "closeLabel", "onAction", "onOpenChange", "t", "Root", "data-testid", "defaultOpen", "Body", "Title", "classNames", "span", "Description", "Actions", "Action", "altText", "asChild", "variant", "onClick", "Close", "Toaster", "toasts", "onDismissToast", "map", "toast", "key", "open", "DeckLayout", "onDismissToast", "settings", "useAtomCapability", "DeckCapabilities", "Settings", "pluginManager", "usePluginManager", "invokePromise", "useOperationInvoker", "deck", "state", "updateState", "useDeckState", "layoutMode", "getMode", "toasts", "handleLayoutChange", "useCallback", "request", "LayoutOperation", "SetLayoutMode", "React", "Mosaic", "Root", "PopoverRoot", "ActiveNode", "Deck", "onLayoutChange", "Content", "Viewport", "solo", "SoloMode", "active", "length", "ContentEmpty", "MultiMode", "PopoverContent", "Dialog", "Toaster", "NAV_ID", "DeckLayout"]
7
+ }
@@ -0,0 +1,70 @@
1
+ import "./chunk-J5LGTIGS.mjs";
2
+
3
+ // src/DeckPlugin.ts
4
+ import { setAutoFreeze } from "immer";
5
+ import { ActivationEvent, ActivationEvents, Plugin } from "@dxos/app-framework";
6
+ import { AppActivationEvents, AppPlugin } from "@dxos/app-toolkit";
7
+ import { translations as stackTranslations } from "@dxos/react-ui-stack/translations";
8
+ import { AppGraphBuilder, CheckAppScheme, DeckSettings, DeckState, OperationHandler, ReactRoot, ReactSurface, UrlHandler } from "#capabilities";
9
+ import { meta } from "#meta";
10
+ import { translations } from "#translations";
11
+ import { DeckEvents } from "#types";
12
+ setAutoFreeze(false);
13
+ var DeckPlugin = Plugin.define(meta).pipe(
14
+ AppPlugin.addAppGraphModule({
15
+ activate: AppGraphBuilder
16
+ }),
17
+ AppPlugin.addOperationHandlerModule({
18
+ activate: OperationHandler
19
+ }),
20
+ AppPlugin.addSurfaceModule({
21
+ activate: ReactSurface
22
+ }),
23
+ AppPlugin.addTranslationsModule({
24
+ translations: [
25
+ ...translations,
26
+ ...stackTranslations
27
+ ]
28
+ }),
29
+ Plugin.addModule({
30
+ activatesOn: AppActivationEvents.SetupSettings,
31
+ firesAfterActivation: [
32
+ DeckEvents.SettingsReady
33
+ ],
34
+ activate: DeckSettings
35
+ }),
36
+ Plugin.addModule({
37
+ activatesOn: ActivationEvent.allOf(DeckEvents.SettingsReady, ActivationEvents.OperationInvokerReady),
38
+ activate: CheckAppScheme
39
+ }),
40
+ Plugin.addModule({
41
+ // TODO(wittjosiah): Does not integrate with settings store.
42
+ // Should this be a different event?
43
+ // Should settings store be renamed to be more generic?
44
+ activatesOn: ActivationEvent.oneOf(AppActivationEvents.SetupSettings, AppActivationEvents.SetupAppGraph),
45
+ firesAfterActivation: [
46
+ AppActivationEvents.LayoutReady,
47
+ DeckEvents.StateReady
48
+ ],
49
+ activate: DeckState
50
+ }),
51
+ Plugin.addModule({
52
+ activatesOn: ActivationEvents.Startup,
53
+ activate: ReactRoot
54
+ }),
55
+ // Plugin.addModule({
56
+ // activatesOn: Events.SetupArtifactDefinition,
57
+ // activate: Tools,
58
+ // }),
59
+ Plugin.addModule({
60
+ activatesOn: ActivationEvent.allOf(ActivationEvents.OperationInvokerReady, DeckEvents.StateReady),
61
+ activate: UrlHandler
62
+ }),
63
+ Plugin.make
64
+ );
65
+ var DeckPlugin_default = DeckPlugin;
66
+ export {
67
+ DeckPlugin,
68
+ DeckPlugin_default as default
69
+ };
70
+ //# sourceMappingURL=DeckPlugin.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/DeckPlugin.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { setAutoFreeze } from 'immer';\n\nimport { ActivationEvent, ActivationEvents, Plugin } from '@dxos/app-framework';\nimport { AppActivationEvents, AppPlugin } from '@dxos/app-toolkit';\nimport { translations as stackTranslations } from '@dxos/react-ui-stack/translations';\n\nimport {\n AppGraphBuilder,\n CheckAppScheme,\n DeckSettings,\n DeckState,\n OperationHandler,\n ReactRoot,\n ReactSurface,\n UrlHandler,\n} from '#capabilities';\nimport { meta } from '#meta';\nimport { translations } from '#translations';\nimport { DeckEvents } from '#types';\n\n// NOTE(Zan): When producing values with immer, we shouldn't auto-freeze them because\n// our signal implementation needs to add some hidden properties to the produced values.\n// TODO(Zan): Move this to a more global location if we use immer more broadly.\nsetAutoFreeze(false);\n\nexport const DeckPlugin = Plugin.define(meta).pipe(\n AppPlugin.addAppGraphModule({ activate: AppGraphBuilder }),\n AppPlugin.addOperationHandlerModule({ activate: OperationHandler }),\n AppPlugin.addSurfaceModule({ activate: ReactSurface }),\n AppPlugin.addTranslationsModule({ translations: [...translations, ...stackTranslations] }),\n Plugin.addModule({\n activatesOn: AppActivationEvents.SetupSettings,\n firesAfterActivation: [DeckEvents.SettingsReady],\n activate: DeckSettings,\n }),\n Plugin.addModule({\n activatesOn: ActivationEvent.allOf(DeckEvents.SettingsReady, ActivationEvents.OperationInvokerReady),\n activate: CheckAppScheme,\n }),\n Plugin.addModule({\n // TODO(wittjosiah): Does not integrate with settings store.\n // Should this be a different event?\n // Should settings store be renamed to be more generic?\n activatesOn: ActivationEvent.oneOf(AppActivationEvents.SetupSettings, AppActivationEvents.SetupAppGraph),\n firesAfterActivation: [AppActivationEvents.LayoutReady, DeckEvents.StateReady],\n activate: DeckState,\n }),\n Plugin.addModule({\n activatesOn: ActivationEvents.Startup,\n activate: ReactRoot,\n }),\n // Plugin.addModule({\n // activatesOn: Events.SetupArtifactDefinition,\n // activate: Tools,\n // }),\n Plugin.addModule({\n activatesOn: ActivationEvent.allOf(ActivationEvents.OperationInvokerReady, DeckEvents.StateReady),\n activate: UrlHandler,\n }),\n Plugin.make,\n);\n\nexport default DeckPlugin;\n"],
5
+ "mappings": ";;;AAIA,SAASA,qBAAqB;AAE9B,SAASC,iBAAiBC,kBAAkBC,cAAc;AAC1D,SAASC,qBAAqBC,iBAAiB;AAC/C,SAASC,gBAAgBC,yBAAyB;AAElD,SACEC,iBACAC,gBACAC,cACAC,WACAC,kBACAC,WACAC,cACAC,kBACK;AACP,SAASC,YAAY;AACrB,SAASV,oBAAoB;AAC7B,SAASW,kBAAkB;AAK3BjB,cAAc,KAAA;AAEP,IAAMkB,aAAaf,OAAOgB,OAAOH,IAAAA,EAAMI;EAC5Cf,UAAUgB,kBAAkB;IAAEC,UAAUd;EAAgB,CAAA;EACxDH,UAAUkB,0BAA0B;IAAED,UAAUV;EAAiB,CAAA;EACjEP,UAAUmB,iBAAiB;IAAEF,UAAUR;EAAa,CAAA;EACpDT,UAAUoB,sBAAsB;IAAEnB,cAAc;SAAIA;SAAiBC;;EAAmB,CAAA;EACxFJ,OAAOuB,UAAU;IACfC,aAAavB,oBAAoBwB;IACjCC,sBAAsB;MAACZ,WAAWa;;IAClCR,UAAUZ;EACZ,CAAA;EACAP,OAAOuB,UAAU;IACfC,aAAa1B,gBAAgB8B,MAAMd,WAAWa,eAAe5B,iBAAiB8B,qBAAqB;IACnGV,UAAUb;EACZ,CAAA;EACAN,OAAOuB,UAAU;;;;IAIfC,aAAa1B,gBAAgBgC,MAAM7B,oBAAoBwB,eAAexB,oBAAoB8B,aAAa;IACvGL,sBAAsB;MAACzB,oBAAoB+B;MAAalB,WAAWmB;;IACnEd,UAAUX;EACZ,CAAA;EACAR,OAAOuB,UAAU;IACfC,aAAazB,iBAAiBmC;IAC9Bf,UAAUT;EACZ,CAAA;;;;;EAKAV,OAAOuB,UAAU;IACfC,aAAa1B,gBAAgB8B,MAAM7B,iBAAiB8B,uBAAuBf,WAAWmB,UAAU;IAChGd,UAAUP;EACZ,CAAA;EACAZ,OAAOmC;AAAI;AAGb,IAAA,qBAAepB;",
6
+ "names": ["setAutoFreeze", "ActivationEvent", "ActivationEvents", "Plugin", "AppActivationEvents", "AppPlugin", "translations", "stackTranslations", "AppGraphBuilder", "CheckAppScheme", "DeckSettings", "DeckState", "OperationHandler", "ReactRoot", "ReactSurface", "UrlHandler", "meta", "DeckEvents", "DeckPlugin", "define", "pipe", "addAppGraphModule", "activate", "addOperationHandlerModule", "addSurfaceModule", "addTranslationsModule", "addModule", "activatesOn", "SetupSettings", "firesAfterActivation", "SettingsReady", "allOf", "OperationInvokerReady", "oneOf", "SetupAppGraph", "LayoutReady", "StateReady", "Startup", "make"]
7
+ }
@@ -0,0 +1,18 @@
1
+ import "./chunk-J5LGTIGS.mjs";
2
+
3
+ // src/DeckPlugin.node.ts
4
+ import { Plugin } from "@dxos/app-framework";
5
+ import { AppPlugin } from "@dxos/app-toolkit";
6
+ import { AppGraphBuilder, OperationHandler } from "#capabilities";
7
+ import { meta } from "#meta";
8
+ var DeckPlugin = Plugin.define(meta).pipe(AppPlugin.addAppGraphModule({
9
+ activate: AppGraphBuilder
10
+ }), AppPlugin.addOperationHandlerModule({
11
+ activate: OperationHandler
12
+ }), Plugin.make);
13
+ var DeckPlugin_node_default = DeckPlugin;
14
+ export {
15
+ DeckPlugin,
16
+ DeckPlugin_node_default as default
17
+ };
18
+ //# sourceMappingURL=DeckPlugin.node.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/DeckPlugin.node.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Plugin } from '@dxos/app-framework';\nimport { AppPlugin } from '@dxos/app-toolkit';\n\nimport { AppGraphBuilder, OperationHandler } from '#capabilities';\nimport { meta } from '#meta';\n\nexport const DeckPlugin = Plugin.define(meta).pipe(\n AppPlugin.addAppGraphModule({ activate: AppGraphBuilder }),\n AppPlugin.addOperationHandlerModule({ activate: OperationHandler }),\n Plugin.make,\n);\n\nexport default DeckPlugin;\n"],
5
+ "mappings": ";;;AAIA,SAASA,cAAc;AACvB,SAASC,iBAAiB;AAE1B,SAASC,iBAAiBC,wBAAwB;AAClD,SAASC,YAAY;AAEd,IAAMC,aAAaL,OAAOM,OAAOF,IAAAA,EAAMG,KAC5CN,UAAUO,kBAAkB;EAAEC,UAAUP;AAAgB,CAAA,GACxDD,UAAUS,0BAA0B;EAAED,UAAUN;AAAiB,CAAA,GACjEH,OAAOW,IAAI;AAGb,IAAA,0BAAeN;",
6
+ "names": ["Plugin", "AppPlugin", "AppGraphBuilder", "OperationHandler", "meta", "DeckPlugin", "define", "pipe", "addAppGraphModule", "activate", "addOperationHandlerModule", "make"]
7
+ }
@@ -0,0 +1,27 @@
1
+ import "./chunk-J5LGTIGS.mjs";
2
+
3
+ // src/components/DeckSettings/DeckSettings.tsx
4
+ import React from "react";
5
+ import { useTranslation } from "@dxos/react-ui";
6
+ import { Settings as SettingsForm } from "@dxos/react-ui-form";
7
+ import { meta } from "#meta";
8
+ import { Settings } from "#types";
9
+ var isSocket = !!globalThis.__args;
10
+ var DeckSettings = ({ settings, onSettingsChange }) => {
11
+ const { t } = useTranslation(meta.id);
12
+ return /* @__PURE__ */ React.createElement(SettingsForm.Viewport, null, /* @__PURE__ */ React.createElement(SettingsForm.Section, {
13
+ title: t("settings.title", {
14
+ ns: meta.id
15
+ })
16
+ }, /* @__PURE__ */ React.createElement(SettingsForm.FieldSet, {
17
+ readonly: !onSettingsChange,
18
+ schema: Settings.Settings,
19
+ visible: (path) => path !== "enableNativeRedirect" || !isSocket,
20
+ values: settings,
21
+ onValuesChanged: (values) => onSettingsChange?.(() => values)
22
+ })));
23
+ };
24
+ export {
25
+ DeckSettings as default
26
+ };
27
+ //# sourceMappingURL=DeckSettings-W5I57OXM.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/components/DeckSettings/DeckSettings.tsx"],
4
+ "sourcesContent": ["//\n// Copyright 2024 DXOS.org\n//\n\nimport React from 'react';\n\nimport { type AppSurface } from '@dxos/app-toolkit/ui';\nimport { useTranslation } from '@dxos/react-ui';\nimport { Settings as SettingsForm } from '@dxos/react-ui-form';\n\nimport { meta } from '#meta';\nimport { Settings } from '#types';\n\nconst isSocket = !!(globalThis as any).__args;\n\nexport type DeckSettingsProps = AppSurface.SettingsArticleProps<Settings.Settings>;\n\nexport const DeckSettings = ({ settings, onSettingsChange }: DeckSettingsProps) => {\n const { t } = useTranslation(meta.id);\n\n return (\n <SettingsForm.Viewport>\n <SettingsForm.Section title={t('settings.title', { ns: meta.id })}>\n <SettingsForm.FieldSet\n readonly={!onSettingsChange}\n schema={Settings.Settings}\n visible={(path) => path !== 'enableNativeRedirect' || !isSocket}\n values={settings}\n onValuesChanged={(values) => onSettingsChange?.(() => values)}\n />\n </SettingsForm.Section>\n </SettingsForm.Viewport>\n );\n};\n"],
5
+ "mappings": ";;;AAIA,OAAOA,WAAW;AAGlB,SAASC,sBAAsB;AAC/B,SAASC,YAAYC,oBAAoB;AAEzC,SAASC,YAAY;AACrB,SAASF,gBAAgB;AAEzB,IAAMG,WAAW,CAAC,CAAEC,WAAmBC;AAIhC,IAAMC,eAAe,CAAC,EAAEC,UAAUC,iBAAgB,MAAqB;AAC5E,QAAM,EAAEC,EAAC,IAAKV,eAAeG,KAAKQ,EAAE;AAEpC,SACE,sBAAA,cAACT,aAAaU,UAAQ,MACpB,sBAAA,cAACV,aAAaW,SAAO;IAACC,OAAOJ,EAAE,kBAAkB;MAAEK,IAAIZ,KAAKQ;IAAG,CAAA;KAC7D,sBAAA,cAACT,aAAac,UAAQ;IACpBC,UAAU,CAACR;IACXS,QAAQjB,SAASA;IACjBkB,SAAS,CAACC,SAASA,SAAS,0BAA0B,CAAChB;IACvDiB,QAAQb;IACRc,iBAAiB,CAACD,WAAWZ,mBAAmB,MAAMY,MAAAA;;AAKhE;",
6
+ "names": ["React", "useTranslation", "Settings", "SettingsForm", "meta", "isSocket", "globalThis", "__args", "DeckSettings", "settings", "onSettingsChange", "t", "id", "Viewport", "Section", "title", "ns", "FieldSet", "readonly", "schema", "visible", "path", "values", "onValuesChanged"]
7
+ }
@@ -1,15 +1,15 @@
1
1
  import {
2
- DeckCapabilities
3
- } from "./chunk-5LM6A3EC.mjs";
2
+ DeckCapabilities_exports
3
+ } from "./chunk-64ODQD6S.mjs";
4
4
  import "./chunk-J5LGTIGS.mjs";
5
5
 
6
6
  // src/operations/add-toast.ts
7
7
  import * as Effect from "effect/Effect";
8
8
  import { Capabilities } from "@dxos/app-framework";
9
9
  import { LayoutOperation } from "@dxos/app-toolkit";
10
- import { Operation } from "@dxos/operation";
10
+ import { Operation } from "@dxos/compute";
11
11
  var handler = LayoutOperation.AddToast.pipe(Operation.withHandler(Effect.fnUntraced(function* (input) {
12
- yield* Capabilities.updateAtomValue(DeckCapabilities.EphemeralState, (state) => ({
12
+ yield* Capabilities.updateAtomValue(DeckCapabilities_exports.EphemeralState, (state) => ({
13
13
  ...state,
14
14
  toasts: [
15
15
  ...state.toasts,
@@ -21,4 +21,4 @@ var add_toast_default = handler;
21
21
  export {
22
22
  add_toast_default as default
23
23
  };
24
- //# sourceMappingURL=add-toast-EUN62IUE.mjs.map
24
+ //# sourceMappingURL=add-toast-2OMTFZ2L.mjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/operations/add-toast.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capabilities } from '@dxos/app-framework';\nimport { LayoutOperation } from '@dxos/app-toolkit';\nimport { Operation } from '@dxos/operation';\n\nimport { DeckCapabilities } from '../types';\n\nconst handler: Operation.WithHandler<typeof LayoutOperation.AddToast> = LayoutOperation.AddToast.pipe(\n Operation.withHandler(\n Effect.fnUntraced(function* (input) {\n yield* Capabilities.updateAtomValue(DeckCapabilities.EphemeralState, (state) => ({\n ...state,\n toasts: [...state.toasts, input as LayoutOperation.Toast],\n }));\n }),\n ),\n);\n\nexport default handler;\n"],
5
- "mappings": ";;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,oBAAoB;AAC7B,SAASC,uBAAuB;AAChC,SAASC,iBAAiB;AAI1B,IAAMC,UAAkEC,gBAAgBC,SAASC,KAC/FC,UAAUC,YACDC,kBAAW,WAAWC,OAAK;AAChC,SAAOC,aAAaC,gBAAgBC,iBAAiBC,gBAAgB,CAACC,WAAW;IAC/E,GAAGA;IACHC,QAAQ;SAAID,MAAMC;MAAQN;;EAC5B,EAAA;AACF,CAAA,CAAA,CAAA;AAIJ,IAAA,oBAAeP;",
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capabilities } from '@dxos/app-framework';\nimport { LayoutOperation } from '@dxos/app-toolkit';\nimport { Operation } from '@dxos/compute';\n\nimport { DeckCapabilities } from '../types';\n\nconst handler: Operation.WithHandler<typeof LayoutOperation.AddToast> = LayoutOperation.AddToast.pipe(\n Operation.withHandler(\n Effect.fnUntraced(function* (input) {\n yield* Capabilities.updateAtomValue(DeckCapabilities.EphemeralState, (state) => ({\n ...state,\n toasts: [...state.toasts, input as LayoutOperation.Toast],\n }));\n }),\n ),\n);\n\nexport default handler;\n"],
5
+ "mappings": ";;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,oBAAoB;AAC7B,SAASC,uBAAuB;AAChC,SAASC,iBAAiB;AAI1B,IAAMC,UAAkEC,gBAAgBC,SAASC,KAC/FC,UAAUC,YACDC,kBAAW,WAAWC,OAAK;AAChC,SAAOC,aAAaC,gBAAgBC,yBAAiBC,gBAAgB,CAACC,WAAW;IAC/E,GAAGA;IACHC,QAAQ;SAAID,MAAMC;MAAQN;;EAC5B,EAAA;AACF,CAAA,CAAA,CAAA;AAIJ,IAAA,oBAAeP;",
6
6
  "names": ["Effect", "Capabilities", "LayoutOperation", "Operation", "handler", "LayoutOperation", "AddToast", "pipe", "Operation", "withHandler", "fnUntraced", "input", "Capabilities", "updateAtomValue", "DeckCapabilities", "EphemeralState", "state", "toasts"]
7
7
  }
@@ -1,19 +1,17 @@
1
- import {
2
- Adjust
3
- } from "./chunk-FRVCL5NO.mjs";
4
1
  import {
5
2
  incrementPlank
6
- } from "./chunk-DF2VZ6W3.mjs";
7
- import {
8
- computeActiveUpdates
9
- } from "./chunk-BRZAVPMC.mjs";
3
+ } from "./chunk-ZYYOSX5I.mjs";
10
4
  import {
11
5
  updateActiveDeck
12
- } from "./chunk-KUTDCWZF.mjs";
6
+ } from "./chunk-GLB73Q6U.mjs";
13
7
  import {
14
- DeckCapabilities,
8
+ DeckCapabilities_exports,
9
+ DeckOperation_exports,
15
10
  PLANK_COMPANION_TYPE
16
- } from "./chunk-5LM6A3EC.mjs";
11
+ } from "./chunk-64ODQD6S.mjs";
12
+ import {
13
+ computeActiveUpdates
14
+ } from "./chunk-GBIGQKYW.mjs";
17
15
  import "./chunk-J5LGTIGS.mjs";
18
16
 
19
17
  // src/operations/adjust.ts
@@ -22,13 +20,13 @@ import * as Function from "effect/Function";
22
20
  import * as Option from "effect/Option";
23
21
  import { Capabilities, Capability } from "@dxos/app-framework";
24
22
  import { AppCapabilities, LayoutOperation } from "@dxos/app-toolkit";
25
- import { Operation } from "@dxos/operation";
26
- import { AttentionCapabilities } from "@dxos/plugin-attention/types";
23
+ import { Operation } from "@dxos/compute";
24
+ import { AttentionCapabilities } from "@dxos/plugin-attention";
27
25
  import { Graph } from "@dxos/plugin-graph";
28
26
  import { byPosition } from "@dxos/util";
29
- var handler = Adjust.pipe(Operation.withHandler(Effect.fnUntraced(function* (input) {
30
- const _state = yield* Capabilities.getAtomValue(DeckCapabilities.State);
31
- const deck = yield* DeckCapabilities.getDeck();
27
+ var handler = DeckOperation_exports.Adjust.pipe(Operation.withHandler(Effect.fnUntraced(function* (input) {
28
+ const _state = yield* Capabilities.getAtomValue(DeckCapabilities_exports.State);
29
+ const deck = yield* DeckCapabilities_exports.getDeck();
32
30
  const attention = yield* Capability.get(AttentionCapabilities.Attention);
33
31
  const { graph } = yield* Capability.get(AppCapabilities.AppGraph);
34
32
  let soloOperation;
@@ -39,7 +37,7 @@ var handler = Adjust.pipe(Operation.withHandler(Effect.fnUntraced(function* (inp
39
37
  deck,
40
38
  attention
41
39
  });
42
- yield* Capabilities.updateAtomValue(DeckCapabilities.State, (state) => updateActiveDeck(state, deckUpdates));
40
+ yield* Capabilities.updateAtomValue(DeckCapabilities_exports.State, (state) => updateActiveDeck(state, deckUpdates));
43
41
  }
44
42
  if (input.type.startsWith("solo")) {
45
43
  const entryId = input.id;
@@ -92,4 +90,4 @@ var adjust_default = handler;
92
90
  export {
93
91
  adjust_default as default
94
92
  };
95
- //# sourceMappingURL=adjust-XWB6ZZ6U.mjs.map
93
+ //# sourceMappingURL=adjust-RXTF3IT3.mjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/operations/adjust.ts"],
4
+ "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport * as Function from 'effect/Function';\nimport * as Option from 'effect/Option';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { AppCapabilities, LayoutOperation } from '@dxos/app-toolkit';\nimport { Operation } from '@dxos/compute';\nimport { AttentionCapabilities } from '@dxos/plugin-attention';\nimport { Graph } from '@dxos/plugin-graph';\nimport { byPosition } from '@dxos/util';\n\nimport { incrementPlank } from '../layout';\nimport { DeckCapabilities, DeckOperation, PLANK_COMPANION_TYPE } from '../types';\nimport { computeActiveUpdates } from '../util';\nimport { updateActiveDeck } from './helpers';\n\nconst handler: Operation.WithHandler<typeof DeckOperation.Adjust> = DeckOperation.Adjust.pipe(\n Operation.withHandler(\n Effect.fnUntraced(function* (input) {\n const _state = yield* Capabilities.getAtomValue(DeckCapabilities.State);\n const deck = yield* DeckCapabilities.getDeck();\n const attention = yield* Capability.get(AttentionCapabilities.Attention);\n const { graph } = yield* Capability.get(AppCapabilities.AppGraph);\n\n let soloOperation:\n | { type: 'solo'; entryId: string; mode: string }\n | { type: 'unsolo'; entryId: string }\n | undefined;\n\n if (input.type === 'increment-end' || input.type === 'increment-start') {\n const next = incrementPlank(deck.active, input);\n const { deckUpdates } = computeActiveUpdates({ next, deck, attention });\n yield* Capabilities.updateAtomValue(DeckCapabilities.State, (state) => updateActiveDeck(state, deckUpdates));\n }\n\n if (input.type.startsWith('solo')) {\n const entryId = input.id;\n if (!deck.solo) {\n soloOperation = { type: 'solo', entryId, mode: input.type };\n } else {\n if (input.type === 'solo--fullscreen') {\n soloOperation = { type: 'solo', entryId, mode: 'solo--fullscreen' };\n } else if (input.type === 'solo') {\n soloOperation = { type: 'unsolo', entryId };\n }\n }\n }\n\n if (soloOperation?.type === 'solo') {\n yield* Operation.invoke(LayoutOperation.SetLayoutMode, {\n subject: soloOperation.entryId,\n mode: soloOperation.mode,\n });\n } else if (soloOperation?.type === 'unsolo') {\n yield* Operation.invoke(LayoutOperation.SetLayoutMode, { mode: 'multi' });\n yield* Operation.invoke(LayoutOperation.Open, { subject: [soloOperation.entryId] });\n }\n\n if (input.type === 'companion') {\n const companion = Function.pipe(\n Graph.getNode(graph, input.id),\n Option.map((node) =>\n Graph.getConnections(graph, node.id, 'child')\n .filter((n) => n.type === PLANK_COMPANION_TYPE)\n .toSorted((a, b) => byPosition(a.properties, b.properties)),\n ),\n Option.flatMap((companions) => (companions.length > 0 ? Option.some(companions[0]) : Option.none())),\n );\n\n if (Option.isSome(companion)) {\n yield* Operation.invoke(LayoutOperation.UpdateCompanion, { subject: companion.value.id });\n }\n }\n }),\n ),\n);\n\nexport default handler;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;AAIA,YAAYA,YAAY;AACxB,YAAYC,cAAc;AAC1B,YAAYC,YAAY;AAExB,SAASC,cAAcC,kBAAkB;AACzC,SAASC,iBAAiBC,uBAAuB;AACjD,SAASC,iBAAiB;AAC1B,SAASC,6BAA6B;AACtC,SAASC,aAAa;AACtB,SAASC,kBAAkB;AAO3B,IAAMC,UAA8DC,sBAAcC,OAAOC,KACvFC,UAAUC,YACDC,kBAAW,WAAWC,OAAK;AAChC,QAAMC,SAAS,OAAOC,aAAaC,aAAaC,yBAAiBC,KAAK;AACtE,QAAMC,OAAO,OAAOF,yBAAiBG,QAAO;AAC5C,QAAMC,YAAY,OAAOC,WAAWC,IAAIC,sBAAsBC,SAAS;AACvE,QAAM,EAAEC,MAAK,IAAK,OAAOJ,WAAWC,IAAII,gBAAgBC,QAAQ;AAEhE,MAAIC;AAKJ,MAAIhB,MAAMiB,SAAS,mBAAmBjB,MAAMiB,SAAS,mBAAmB;AACtE,UAAMC,OAAOC,eAAeb,KAAKc,QAAQpB,KAAAA;AACzC,UAAM,EAAEqB,YAAW,IAAKC,qBAAqB;MAAEJ;MAAMZ;MAAME;IAAU,CAAA;AACrE,WAAON,aAAaqB,gBAAgBnB,yBAAiBC,OAAO,CAACmB,UAAUC,iBAAiBD,OAAOH,WAAAA,CAAAA;EACjG;AAEA,MAAIrB,MAAMiB,KAAKS,WAAW,MAAA,GAAS;AACjC,UAAMC,UAAU3B,MAAM4B;AACtB,QAAI,CAACtB,KAAKuB,MAAM;AACdb,sBAAgB;QAAEC,MAAM;QAAQU;QAASG,MAAM9B,MAAMiB;MAAK;IAC5D,OAAO;AACL,UAAIjB,MAAMiB,SAAS,oBAAoB;AACrCD,wBAAgB;UAAEC,MAAM;UAAQU;UAASG,MAAM;QAAmB;MACpE,WAAW9B,MAAMiB,SAAS,QAAQ;AAChCD,wBAAgB;UAAEC,MAAM;UAAUU;QAAQ;MAC5C;IACF;EACF;AAEA,MAAIX,eAAeC,SAAS,QAAQ;AAClC,WAAOpB,UAAUkC,OAAOC,gBAAgBC,eAAe;MACrDC,SAASlB,cAAcW;MACvBG,MAAMd,cAAcc;IACtB,CAAA;EACF,WAAWd,eAAeC,SAAS,UAAU;AAC3C,WAAOpB,UAAUkC,OAAOC,gBAAgBC,eAAe;MAAEH,MAAM;IAAQ,CAAA;AACvE,WAAOjC,UAAUkC,OAAOC,gBAAgBG,MAAM;MAAED,SAAS;QAAClB,cAAcW;;IAAS,CAAA;EACnF;AAEA,MAAI3B,MAAMiB,SAAS,aAAa;AAC9B,UAAMmB,YAAqBxC,cACzByC,MAAMC,QAAQzB,OAAOb,MAAM4B,EAAE,GACtBW,WAAI,CAACC,SACVH,MAAMI,eAAe5B,OAAO2B,KAAKZ,IAAI,OAAA,EAClCc,OAAO,CAACC,MAAMA,EAAE1B,SAAS2B,oBAAAA,EACzBC,SAAS,CAACC,GAAGC,MAAMC,WAAWF,EAAEG,YAAYF,EAAEE,UAAU,CAAA,CAAA,GAEtDC,eAAQ,CAACC,eAAgBA,WAAWC,SAAS,IAAWC,YAAKF,WAAW,CAAA,CAAE,IAAWG,YAAI,CAAA,CAAA;AAGlG,QAAWC,cAAOnB,SAAAA,GAAY;AAC5B,aAAOvC,UAAUkC,OAAOC,gBAAgBwB,iBAAiB;QAAEtB,SAASE,UAAUqB,MAAM7B;MAAG,CAAA;IACzF;EACF;AACF,CAAA,CAAA,CAAA;AAIJ,IAAA,iBAAenC;",
6
+ "names": ["Effect", "Function", "Option", "Capabilities", "Capability", "AppCapabilities", "LayoutOperation", "Operation", "AttentionCapabilities", "Graph", "byPosition", "handler", "DeckOperation", "Adjust", "pipe", "Operation", "withHandler", "fnUntraced", "input", "_state", "Capabilities", "getAtomValue", "DeckCapabilities", "State", "deck", "getDeck", "attention", "Capability", "get", "AttentionCapabilities", "Attention", "graph", "AppCapabilities", "AppGraph", "soloOperation", "type", "next", "incrementPlank", "active", "deckUpdates", "computeActiveUpdates", "updateAtomValue", "state", "updateActiveDeck", "startsWith", "entryId", "id", "solo", "mode", "invoke", "LayoutOperation", "SetLayoutMode", "subject", "Open", "companion", "Graph", "getNode", "map", "node", "getConnections", "filter", "n", "PLANK_COMPANION_TYPE", "toSorted", "a", "b", "byPosition", "properties", "flatMap", "companions", "length", "some", "none", "isSome", "UpdateCompanion", "value"]
7
+ }