@dxos/plugin-simple-layout 0.8.4-main.c85a9c8dae → 0.8.4-main.dfabb4ec29

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 (299) hide show
  1. package/dist/lib/neutral/SimpleLayoutPlugin.mjs +52 -0
  2. package/dist/lib/neutral/SimpleLayoutPlugin.mjs.map +7 -0
  3. package/dist/lib/neutral/app-graph-builder-EYQKLRRP.mjs +21 -0
  4. package/dist/lib/neutral/app-graph-builder-EYQKLRRP.mjs.map +7 -0
  5. package/dist/lib/neutral/capabilities/index.mjs +21 -0
  6. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  7. package/dist/lib/neutral/chunk-7UDV3JDT.mjs +22 -0
  8. package/dist/lib/neutral/chunk-7UDV3JDT.mjs.map +7 -0
  9. package/dist/lib/neutral/chunk-AMTEDJHG.mjs +19 -0
  10. package/dist/lib/neutral/chunk-AMTEDJHG.mjs.map +7 -0
  11. package/dist/lib/neutral/chunk-FD2CAY4Q.mjs +26 -0
  12. package/dist/lib/neutral/chunk-FD2CAY4Q.mjs.map +7 -0
  13. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
  14. package/dist/lib/neutral/chunk-J5LGTIGS.mjs.map +7 -0
  15. package/dist/lib/neutral/chunk-XVUAQHKU.mjs +8 -0
  16. package/dist/lib/neutral/chunk-XVUAQHKU.mjs.map +7 -0
  17. package/dist/lib/neutral/close-WKMURGUB.mjs +35 -0
  18. package/dist/lib/neutral/close-WKMURGUB.mjs.map +7 -0
  19. package/dist/lib/neutral/components/index.mjs +924 -0
  20. package/dist/lib/neutral/components/index.mjs.map +7 -0
  21. package/dist/lib/neutral/hooks/index.mjs +332 -0
  22. package/dist/lib/neutral/hooks/index.mjs.map +7 -0
  23. package/dist/lib/neutral/index.mjs +14 -0
  24. package/dist/lib/neutral/index.mjs.map +7 -0
  25. package/dist/lib/neutral/meta.json +1 -0
  26. package/dist/lib/neutral/meta.mjs +8 -0
  27. package/dist/lib/neutral/meta.mjs.map +7 -0
  28. package/dist/lib/neutral/open-XI2T7D5O.mjs +49 -0
  29. package/dist/lib/neutral/open-XI2T7D5O.mjs.map +7 -0
  30. package/dist/lib/neutral/operation-handler-EAIE7KPR.mjs +13 -0
  31. package/dist/lib/neutral/operation-handler-EAIE7KPR.mjs.map +7 -0
  32. package/dist/lib/neutral/operations/index.mjs +8 -0
  33. package/dist/lib/neutral/operations/index.mjs.map +7 -0
  34. package/dist/lib/neutral/plugin.mjs +16 -0
  35. package/dist/lib/neutral/plugin.mjs.map +7 -0
  36. package/dist/lib/{browser/react-root-MMB575WY.mjs → neutral/react-root-VE265VX4.mjs} +5 -8
  37. package/dist/lib/neutral/react-root-VE265VX4.mjs.map +7 -0
  38. package/dist/lib/{node-esm/react-surface-ITVNQYLG.mjs → neutral/react-surface-REZMYKQV.mjs} +20 -16
  39. package/dist/lib/neutral/react-surface-REZMYKQV.mjs.map +7 -0
  40. package/dist/lib/neutral/revert-workspace-ST6NZUNG.mjs +22 -0
  41. package/dist/lib/neutral/revert-workspace-ST6NZUNG.mjs.map +7 -0
  42. package/dist/lib/neutral/set-6ZRLWPJS.mjs +22 -0
  43. package/dist/lib/neutral/set-6ZRLWPJS.mjs.map +7 -0
  44. package/dist/lib/neutral/set-layout-mode-L22HRCKS.mjs +13 -0
  45. package/dist/lib/neutral/set-layout-mode-L22HRCKS.mjs.map +7 -0
  46. package/dist/lib/{browser/spotlight-dismiss-67PHYS5B.mjs → neutral/spotlight-dismiss-EIYW5E7M.mjs} +7 -15
  47. package/dist/lib/{node-esm/spotlight-dismiss-RMLRZUVY.mjs.map → neutral/spotlight-dismiss-EIYW5E7M.mjs.map} +3 -3
  48. package/dist/lib/{browser/state-A3PGDWWZ.mjs → neutral/state-7NXKBLPY.mjs} +5 -6
  49. package/dist/lib/neutral/state-7NXKBLPY.mjs.map +7 -0
  50. package/dist/lib/neutral/switch-workspace-PYWPTMFO.mjs +25 -0
  51. package/dist/lib/neutral/switch-workspace-PYWPTMFO.mjs.map +7 -0
  52. package/dist/lib/neutral/translations.mjs +36 -0
  53. package/dist/lib/neutral/translations.mjs.map +7 -0
  54. package/dist/lib/neutral/types/index.mjs +10 -0
  55. package/dist/lib/neutral/types/index.mjs.map +7 -0
  56. package/dist/lib/neutral/update-complementary-HKWF5OXT.mjs +33 -0
  57. package/dist/lib/neutral/update-complementary-HKWF5OXT.mjs.map +7 -0
  58. package/dist/lib/neutral/update-dialog-P4ASXCE7.mjs +30 -0
  59. package/dist/lib/neutral/update-dialog-P4ASXCE7.mjs.map +7 -0
  60. package/dist/lib/neutral/update-popover-REAKC2GN.mjs +34 -0
  61. package/dist/lib/neutral/update-popover-REAKC2GN.mjs.map +7 -0
  62. package/dist/lib/neutral/update-sidebar-O5SQPR6Q.mjs +12 -0
  63. package/dist/lib/neutral/update-sidebar-O5SQPR6Q.mjs.map +7 -0
  64. package/dist/lib/neutral/url-handler-GZXUUAHD.mjs +129 -0
  65. package/dist/lib/neutral/url-handler-GZXUUAHD.mjs.map +7 -0
  66. package/dist/types/src/SimpleLayoutPlugin.d.ts +2 -1
  67. package/dist/types/src/SimpleLayoutPlugin.d.ts.map +1 -1
  68. package/dist/types/src/capabilities/app-graph-builder.d.ts +6 -0
  69. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -0
  70. package/dist/types/src/capabilities/index.d.ts +21 -6
  71. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  72. package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
  73. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  74. package/dist/types/src/capabilities/react-root.d.ts.map +1 -0
  75. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
  76. package/dist/types/src/capabilities/{spotlight-dismiss/spotlight-dismiss.d.ts → spotlight-dismiss.d.ts} +1 -1
  77. package/dist/types/src/capabilities/spotlight-dismiss.d.ts.map +1 -0
  78. package/dist/types/src/capabilities/{state/state.d.ts → state.d.ts} +3 -3
  79. package/dist/types/src/capabilities/state.d.ts.map +1 -0
  80. package/dist/types/src/capabilities/{url-handler/url-handler.d.ts → url-handler.d.ts} +3 -3
  81. package/dist/types/src/capabilities/url-handler.d.ts.map +1 -0
  82. package/dist/types/src/components/ContentError.stories.d.ts +26 -19
  83. package/dist/types/src/components/ContentError.stories.d.ts.map +1 -1
  84. package/dist/types/src/components/DebugOverlay/DebugOverlay.d.ts +19 -0
  85. package/dist/types/src/components/DebugOverlay/DebugOverlay.d.ts.map +1 -0
  86. package/dist/types/src/components/DebugOverlay/index.d.ts +2 -0
  87. package/dist/types/src/components/DebugOverlay/index.d.ts.map +1 -0
  88. package/dist/types/src/components/Dialog/Dialog.d.ts.map +1 -1
  89. package/dist/types/src/components/Home/Home.d.ts.map +1 -1
  90. package/dist/types/src/components/Loading/Loading.d.ts +3 -0
  91. package/dist/types/src/components/Loading/Loading.d.ts.map +1 -0
  92. package/dist/types/src/components/{ContentLoading.stories.d.ts → Loading/Loading.stories.d.ts} +1 -1
  93. package/dist/types/src/components/Loading/Loading.stories.d.ts.map +1 -0
  94. package/dist/types/src/components/Loading/index.d.ts +2 -0
  95. package/dist/types/src/components/Loading/index.d.ts.map +1 -0
  96. package/dist/types/src/components/MobileLayout/MobileLayout.d.ts +2 -2
  97. package/dist/types/src/components/MobileLayout/MobileLayout.d.ts.map +1 -1
  98. package/dist/types/src/components/MobileLayout/MobileLayout.stories.d.ts.map +1 -1
  99. package/dist/types/src/components/NavBranch/NavBranch.d.ts +11 -0
  100. package/dist/types/src/components/NavBranch/NavBranch.d.ts.map +1 -0
  101. package/dist/types/src/components/NavBranch/index.d.ts +2 -0
  102. package/dist/types/src/components/NavBranch/index.d.ts.map +1 -0
  103. package/dist/types/src/components/Popover/Popover.d.ts.map +1 -1
  104. package/dist/types/src/components/SimpleLayout/AppBar.d.ts +5 -7
  105. package/dist/types/src/components/SimpleLayout/AppBar.d.ts.map +1 -1
  106. package/dist/types/src/components/SimpleLayout/AppBar.stories.d.ts +29 -22
  107. package/dist/types/src/components/SimpleLayout/AppBar.stories.d.ts.map +1 -1
  108. package/dist/types/src/components/SimpleLayout/Drawer.d.ts +4 -7
  109. package/dist/types/src/components/SimpleLayout/Drawer.d.ts.map +1 -1
  110. package/dist/types/src/components/SimpleLayout/Main.d.ts +4 -7
  111. package/dist/types/src/components/SimpleLayout/Main.d.ts.map +1 -1
  112. package/dist/types/src/components/SimpleLayout/NavBar.d.ts +5 -7
  113. package/dist/types/src/components/SimpleLayout/NavBar.d.ts.map +1 -1
  114. package/dist/types/src/components/SimpleLayout/NavBar.stories.d.ts +29 -23
  115. package/dist/types/src/components/SimpleLayout/NavBar.stories.d.ts.map +1 -1
  116. package/dist/types/src/components/SimpleLayout/SimpleLayout.d.ts.map +1 -1
  117. package/dist/types/src/components/SimpleLayout/SimpleLayout.stories.d.ts +26 -25
  118. package/dist/types/src/components/SimpleLayout/SimpleLayout.stories.d.ts.map +1 -1
  119. package/dist/types/src/components/hooks.d.ts +4 -2
  120. package/dist/types/src/components/hooks.d.ts.map +1 -1
  121. package/dist/types/src/components/index.d.ts +3 -2
  122. package/dist/types/src/components/index.d.ts.map +1 -1
  123. package/dist/types/src/hooks/actions.d.ts +5 -6
  124. package/dist/types/src/hooks/actions.d.ts.map +1 -1
  125. package/dist/types/src/hooks/useAppBarProps.d.ts +2 -2
  126. package/dist/types/src/hooks/useAppBarProps.d.ts.map +1 -1
  127. package/dist/types/src/hooks/useCompanions.d.ts.map +1 -1
  128. package/dist/types/src/hooks/useDrawerActions.d.ts.map +1 -1
  129. package/dist/types/src/hooks/useNavbarActions.d.ts.map +1 -1
  130. package/dist/types/src/hooks/useSimpleLayoutState.d.ts +3 -3
  131. package/dist/types/src/hooks/useSimpleLayoutState.d.ts.map +1 -1
  132. package/dist/types/src/index.d.ts +2 -1
  133. package/dist/types/src/index.d.ts.map +1 -1
  134. package/dist/types/src/meta.d.ts.map +1 -1
  135. package/dist/types/src/operations/close.d.ts +5 -0
  136. package/dist/types/src/operations/close.d.ts.map +1 -0
  137. package/dist/types/src/operations/index.d.ts +3 -0
  138. package/dist/types/src/operations/index.d.ts.map +1 -0
  139. package/dist/types/src/operations/open.d.ts +5 -0
  140. package/dist/types/src/operations/open.d.ts.map +1 -0
  141. package/dist/types/src/operations/revert-workspace.d.ts +5 -0
  142. package/dist/types/src/operations/revert-workspace.d.ts.map +1 -0
  143. package/dist/types/src/operations/set-layout-mode.d.ts +5 -0
  144. package/dist/types/src/operations/set-layout-mode.d.ts.map +1 -0
  145. package/dist/types/src/operations/set.d.ts +5 -0
  146. package/dist/types/src/operations/set.d.ts.map +1 -0
  147. package/dist/types/src/operations/state-access.d.ts +8 -0
  148. package/dist/types/src/operations/state-access.d.ts.map +1 -0
  149. package/dist/types/src/operations/switch-workspace.d.ts +5 -0
  150. package/dist/types/src/operations/switch-workspace.d.ts.map +1 -0
  151. package/dist/types/src/operations/update-complementary.d.ts +5 -0
  152. package/dist/types/src/operations/update-complementary.d.ts.map +1 -0
  153. package/dist/types/src/operations/update-dialog.d.ts +5 -0
  154. package/dist/types/src/operations/update-dialog.d.ts.map +1 -0
  155. package/dist/types/src/operations/update-popover.d.ts +5 -0
  156. package/dist/types/src/operations/update-popover.d.ts.map +1 -0
  157. package/dist/types/src/operations/update-sidebar.d.ts +5 -0
  158. package/dist/types/src/operations/update-sidebar.d.ts.map +1 -0
  159. package/dist/types/src/plugin.d.ts +4 -0
  160. package/dist/types/src/plugin.d.ts.map +1 -0
  161. package/dist/types/src/translations.d.ts +26 -20
  162. package/dist/types/src/translations.d.ts.map +1 -1
  163. package/dist/types/src/types/{capabilities.d.ts → SimpleLayoutCapabilities.d.ts} +12 -10
  164. package/dist/types/src/types/SimpleLayoutCapabilities.d.ts.map +1 -0
  165. package/dist/types/src/types/SimpleLayoutEvents.d.ts +4 -0
  166. package/dist/types/src/types/SimpleLayoutEvents.d.ts.map +1 -0
  167. package/dist/types/src/types/index.d.ts +2 -2
  168. package/dist/types/src/types/index.d.ts.map +1 -1
  169. package/dist/types/tsconfig.tsbuildinfo +1 -1
  170. package/package.json +87 -33
  171. package/src/SimpleLayoutPlugin.ts +18 -7
  172. package/src/capabilities/app-graph-builder.ts +21 -0
  173. package/src/capabilities/index.ts +13 -6
  174. package/src/capabilities/operation-handler.ts +14 -0
  175. package/src/capabilities/{react-root/react-root.tsx → react-root.tsx} +2 -2
  176. package/src/capabilities/{react-surface/react-surface.tsx → react-surface.tsx} +17 -8
  177. package/src/capabilities/{state/state.tsx → state.tsx} +5 -6
  178. package/src/capabilities/url-handler.ts +164 -0
  179. package/src/components/ContentError.stories.tsx +1 -1
  180. package/src/components/DebugOverlay/DebugOverlay.tsx +96 -0
  181. package/src/components/DebugOverlay/index.ts +5 -0
  182. package/src/components/Dialog/Dialog.tsx +14 -3
  183. package/src/components/Home/Home.tsx +32 -32
  184. package/src/components/{ContentLoading.stories.tsx → Loading/Loading.stories.tsx} +4 -4
  185. package/src/components/{ContentLoading.tsx → Loading/Loading.tsx} +2 -2
  186. package/src/components/Loading/index.ts +5 -0
  187. package/src/components/MobileLayout/MobileLayout.stories.tsx +21 -17
  188. package/src/components/MobileLayout/MobileLayout.tsx +118 -51
  189. package/src/components/{Workspace/Workspace.tsx → NavBranch/NavBranch.tsx} +40 -41
  190. package/src/components/{Workspace → NavBranch}/index.ts +1 -1
  191. package/src/components/Popover/Popover.tsx +10 -16
  192. package/src/components/SimpleLayout/AppBar.stories.tsx +10 -10
  193. package/src/components/SimpleLayout/AppBar.tsx +60 -60
  194. package/src/components/SimpleLayout/Drawer.tsx +30 -31
  195. package/src/components/SimpleLayout/Main.tsx +21 -26
  196. package/src/components/SimpleLayout/NavBar.stories.tsx +2 -2
  197. package/src/components/SimpleLayout/NavBar.tsx +8 -9
  198. package/src/components/SimpleLayout/SimpleLayout.stories.tsx +46 -69
  199. package/src/components/SimpleLayout/SimpleLayout.tsx +33 -34
  200. package/src/components/hooks.ts +8 -8
  201. package/src/components/index.ts +3 -2
  202. package/src/hooks/actions.ts +18 -17
  203. package/src/hooks/useAppBarProps.ts +10 -31
  204. package/src/hooks/useDrawerActions.ts +14 -12
  205. package/src/hooks/useNavbarActions.ts +9 -8
  206. package/src/hooks/useSimpleLayoutState.ts +7 -5
  207. package/src/index.ts +2 -1
  208. package/src/meta.ts +2 -1
  209. package/src/operations/close.ts +34 -0
  210. package/src/operations/index.ts +16 -0
  211. package/src/operations/open.ts +63 -0
  212. package/src/operations/revert-workspace.ts +22 -0
  213. package/src/operations/set-layout-mode.ts +12 -0
  214. package/src/operations/set.ts +23 -0
  215. package/src/operations/state-access.ts +21 -0
  216. package/src/operations/switch-workspace.ts +26 -0
  217. package/src/operations/update-complementary.ts +35 -0
  218. package/src/operations/update-dialog.ts +28 -0
  219. package/src/operations/update-popover.ts +35 -0
  220. package/src/operations/update-sidebar.ts +12 -0
  221. package/src/plugin.ts +11 -0
  222. package/src/translations.ts +21 -19
  223. package/src/types/{capabilities.ts → SimpleLayoutCapabilities.ts} +6 -18
  224. package/src/types/SimpleLayoutEvents.ts +15 -0
  225. package/src/types/index.ts +2 -2
  226. package/dist/lib/browser/chunk-7VLT3S46.mjs +0 -29
  227. package/dist/lib/browser/chunk-7VLT3S46.mjs.map +0 -7
  228. package/dist/lib/browser/chunk-TMZNLVT2.mjs +0 -1170
  229. package/dist/lib/browser/chunk-TMZNLVT2.mjs.map +0 -7
  230. package/dist/lib/browser/index.mjs +0 -101
  231. package/dist/lib/browser/index.mjs.map +0 -7
  232. package/dist/lib/browser/meta.json +0 -1
  233. package/dist/lib/browser/operation-resolver-BYRIQOQT.mjs +0 -205
  234. package/dist/lib/browser/operation-resolver-BYRIQOQT.mjs.map +0 -7
  235. package/dist/lib/browser/react-root-MMB575WY.mjs.map +0 -7
  236. package/dist/lib/browser/react-surface-M6CURANW.mjs +0 -41
  237. package/dist/lib/browser/react-surface-M6CURANW.mjs.map +0 -7
  238. package/dist/lib/browser/spotlight-dismiss-67PHYS5B.mjs.map +0 -7
  239. package/dist/lib/browser/state-A3PGDWWZ.mjs.map +0 -7
  240. package/dist/lib/browser/url-handler-HTIUY6WL.mjs +0 -152
  241. package/dist/lib/browser/url-handler-HTIUY6WL.mjs.map +0 -7
  242. package/dist/lib/node-esm/chunk-FLOYBAHE.mjs +0 -1171
  243. package/dist/lib/node-esm/chunk-FLOYBAHE.mjs.map +0 -7
  244. package/dist/lib/node-esm/chunk-VIDE5UMB.mjs +0 -31
  245. package/dist/lib/node-esm/chunk-VIDE5UMB.mjs.map +0 -7
  246. package/dist/lib/node-esm/index.mjs +0 -102
  247. package/dist/lib/node-esm/index.mjs.map +0 -7
  248. package/dist/lib/node-esm/meta.json +0 -1
  249. package/dist/lib/node-esm/operation-resolver-BDTFNCS2.mjs +0 -206
  250. package/dist/lib/node-esm/operation-resolver-BDTFNCS2.mjs.map +0 -7
  251. package/dist/lib/node-esm/react-root-ENZKVSY4.mjs +0 -22
  252. package/dist/lib/node-esm/react-root-ENZKVSY4.mjs.map +0 -7
  253. package/dist/lib/node-esm/react-surface-ITVNQYLG.mjs.map +0 -7
  254. package/dist/lib/node-esm/spotlight-dismiss-RMLRZUVY.mjs +0 -68
  255. package/dist/lib/node-esm/state-ZCFZTTPL.mjs +0 -49
  256. package/dist/lib/node-esm/state-ZCFZTTPL.mjs.map +0 -7
  257. package/dist/lib/node-esm/url-handler-WBVVKVPC.mjs +0 -153
  258. package/dist/lib/node-esm/url-handler-WBVVKVPC.mjs.map +0 -7
  259. package/dist/types/src/capabilities/operation-resolver/index.d.ts +0 -3
  260. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +0 -1
  261. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +0 -5
  262. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +0 -1
  263. package/dist/types/src/capabilities/react-root/index.d.ts +0 -6
  264. package/dist/types/src/capabilities/react-root/index.d.ts.map +0 -1
  265. package/dist/types/src/capabilities/react-root/react-root.d.ts.map +0 -1
  266. package/dist/types/src/capabilities/react-surface/index.d.ts +0 -3
  267. package/dist/types/src/capabilities/react-surface/index.d.ts.map +0 -1
  268. package/dist/types/src/capabilities/react-surface/react-surface.d.ts.map +0 -1
  269. package/dist/types/src/capabilities/spotlight-dismiss/index.d.ts +0 -3
  270. package/dist/types/src/capabilities/spotlight-dismiss/index.d.ts.map +0 -1
  271. package/dist/types/src/capabilities/spotlight-dismiss/spotlight-dismiss.d.ts.map +0 -1
  272. package/dist/types/src/capabilities/state/index.d.ts +0 -13
  273. package/dist/types/src/capabilities/state/index.d.ts.map +0 -1
  274. package/dist/types/src/capabilities/state/state.d.ts.map +0 -1
  275. package/dist/types/src/capabilities/url-handler/index.d.ts +0 -3
  276. package/dist/types/src/capabilities/url-handler/index.d.ts.map +0 -1
  277. package/dist/types/src/capabilities/url-handler/url-handler.d.ts.map +0 -1
  278. package/dist/types/src/components/ContentLoading.d.ts +0 -3
  279. package/dist/types/src/components/ContentLoading.d.ts.map +0 -1
  280. package/dist/types/src/components/ContentLoading.stories.d.ts.map +0 -1
  281. package/dist/types/src/components/Workspace/Workspace.d.ts +0 -11
  282. package/dist/types/src/components/Workspace/Workspace.d.ts.map +0 -1
  283. package/dist/types/src/components/Workspace/index.d.ts +0 -2
  284. package/dist/types/src/components/Workspace/index.d.ts.map +0 -1
  285. package/dist/types/src/types/capabilities.d.ts.map +0 -1
  286. package/dist/types/src/types/events.d.ts +0 -6
  287. package/dist/types/src/types/events.d.ts.map +0 -1
  288. package/src/capabilities/operation-resolver/index.ts +0 -10
  289. package/src/capabilities/operation-resolver/operation-resolver.ts +0 -217
  290. package/src/capabilities/react-root/index.ts +0 -7
  291. package/src/capabilities/react-surface/index.ts +0 -7
  292. package/src/capabilities/spotlight-dismiss/index.ts +0 -7
  293. package/src/capabilities/state/index.ts +0 -9
  294. package/src/capabilities/url-handler/index.ts +0 -7
  295. package/src/capabilities/url-handler/url-handler.ts +0 -157
  296. package/src/types/events.ts +0 -15
  297. /package/dist/types/src/capabilities/{react-root/react-root.d.ts → react-root.d.ts} +0 -0
  298. /package/dist/types/src/capabilities/{react-surface/react-surface.d.ts → react-surface.d.ts} +0 -0
  299. /package/src/capabilities/{spotlight-dismiss/spotlight-dismiss.ts → spotlight-dismiss.ts} +0 -0
@@ -1,205 +0,0 @@
1
- import {
2
- SimpleLayoutState
3
- } from "./chunk-7VLT3S46.mjs";
4
-
5
- // src/capabilities/operation-resolver/operation-resolver.ts
6
- import * as Effect from "effect/Effect";
7
- import { Capabilities, Capability } from "@dxos/app-framework";
8
- import { LayoutOperation } from "@dxos/app-toolkit";
9
- import { Operation, OperationResolver } from "@dxos/operation";
10
- import { ATTENDABLE_PATH_SEPARATOR } from "@dxos/react-ui-attention";
11
- var MAX_HISTORY_LENGTH = 50;
12
- var parseEntryId = (entryId) => {
13
- const [id, variant] = entryId.split(ATTENDABLE_PATH_SEPARATOR);
14
- return {
15
- id,
16
- variant
17
- };
18
- };
19
- var operation_resolver_default = Capability.makeModule(Effect.fnUntraced(function* () {
20
- const registry = yield* Capability.get(Capabilities.AtomRegistry);
21
- const stateAtom = yield* Capability.get(SimpleLayoutState);
22
- const getState = () => registry.get(stateAtom);
23
- const updateState = (fn) => {
24
- registry.set(stateAtom, fn(getState()));
25
- };
26
- return Capability.contributes(Capabilities.OperationResolver, [
27
- //
28
- // SetLayoutMode
29
- //
30
- // TODO(burdon): No-op for to fix startup bug?
31
- OperationResolver.make({
32
- operation: LayoutOperation.SetLayoutMode,
33
- handler: Effect.fnUntraced(function* () {
34
- })
35
- }),
36
- //
37
- // UpdateSidebar - No-op for simple layout.
38
- //
39
- OperationResolver.make({
40
- operation: LayoutOperation.UpdateSidebar,
41
- handler: () => Effect.void
42
- }),
43
- //
44
- // UpdateComplementary - Controls companion drawer.
45
- //
46
- OperationResolver.make({
47
- operation: LayoutOperation.UpdateComplementary,
48
- handler: Effect.fnUntraced(function* (input) {
49
- if (input.state === "closed") {
50
- updateState((state) => ({
51
- ...state,
52
- drawerState: "closed"
53
- }));
54
- }
55
- })
56
- }),
57
- //
58
- // UpdateDialog
59
- //
60
- OperationResolver.make({
61
- operation: LayoutOperation.UpdateDialog,
62
- handler: Effect.fnUntraced(function* (input) {
63
- updateState((state) => ({
64
- ...state,
65
- dialogOpen: input.state ?? Boolean(input.subject),
66
- dialogType: input.type ?? "default",
67
- dialogBlockAlign: input.blockAlign ?? "center",
68
- dialogOverlayClasses: input.overlayClasses,
69
- dialogOverlayStyle: input.overlayStyle,
70
- dialogContent: input.subject ? {
71
- component: input.subject,
72
- props: input.props
73
- } : void 0
74
- }));
75
- })
76
- }),
77
- //
78
- // UpdatePopover
79
- //
80
- OperationResolver.make({
81
- operation: LayoutOperation.UpdatePopover,
82
- handler: Effect.fnUntraced(function* (input) {
83
- updateState((state) => ({
84
- ...state,
85
- popoverOpen: input.state ?? Boolean(input.subject),
86
- popoverKind: input.kind ?? "base",
87
- popoverTitle: input.kind === "card" ? input.title : void 0,
88
- popoverContent: typeof input.subject === "string" ? {
89
- component: input.subject,
90
- props: input.props
91
- } : input.subject ? {
92
- subject: input.subject
93
- } : void 0,
94
- popoverSide: input.side,
95
- popoverVariant: input.variant,
96
- popoverAnchor: input.variant === "virtual" ? input.anchor : state.popoverAnchor,
97
- popoverAnchorId: input.variant !== "virtual" ? input.anchorId : state.popoverAnchorId
98
- }));
99
- })
100
- }),
101
- //
102
- // SwitchWorkspace
103
- //
104
- OperationResolver.make({
105
- operation: LayoutOperation.SwitchWorkspace,
106
- handler: Effect.fnUntraced(function* (input) {
107
- updateState((state) => ({
108
- ...state,
109
- // TODO(wittjosiah): This is a hack to prevent the previous deck from being set for pinned items.
110
- // Ideally this should be worked into the data model in a generic way.
111
- previousWorkspace: !state.workspace.startsWith("!") ? state.workspace : state.previousWorkspace,
112
- workspace: input.subject,
113
- active: void 0,
114
- // Clear history when switching workspaces.
115
- history: []
116
- }));
117
- })
118
- }),
119
- //
120
- // RevertWorkspace
121
- //
122
- OperationResolver.make({
123
- operation: LayoutOperation.RevertWorkspace,
124
- handler: Effect.fnUntraced(function* () {
125
- const state = getState();
126
- yield* Operation.invoke(LayoutOperation.SwitchWorkspace, {
127
- subject: state.previousWorkspace
128
- });
129
- })
130
- }),
131
- //
132
- // Open
133
- //
134
- OperationResolver.make({
135
- operation: LayoutOperation.Open,
136
- handler: Effect.fnUntraced(function* (input) {
137
- const id = input.subject[0];
138
- const { id: primaryId, variant } = parseEntryId(id);
139
- const state = getState();
140
- const isCompanionOfCurrent = variant && (primaryId === state.workspace || primaryId === state.active);
141
- if (isCompanionOfCurrent) {
142
- updateState((state2) => ({
143
- ...state2,
144
- companionVariant: variant,
145
- drawerState: state2.drawerState === "closed" || !state2.drawerState ? "open" : state2.drawerState
146
- }));
147
- } else {
148
- updateState((state2) => {
149
- const newHistory = state2.active ? [
150
- ...state2.history,
151
- state2.active
152
- ] : state2.history;
153
- const trimmedHistory = newHistory.length > MAX_HISTORY_LENGTH ? newHistory.slice(-MAX_HISTORY_LENGTH) : newHistory;
154
- return {
155
- ...state2,
156
- active: id,
157
- history: trimmedHistory
158
- };
159
- });
160
- }
161
- })
162
- }),
163
- //
164
- // Close
165
- //
166
- OperationResolver.make({
167
- operation: LayoutOperation.Close,
168
- handler: Effect.fnUntraced(function* () {
169
- updateState((state) => {
170
- if (state.history.length > 0) {
171
- const newHistory = [
172
- ...state.history
173
- ];
174
- const previousActive = newHistory.pop();
175
- return {
176
- ...state,
177
- active: previousActive,
178
- history: newHistory
179
- };
180
- }
181
- return {
182
- ...state,
183
- active: void 0
184
- };
185
- });
186
- })
187
- }),
188
- //
189
- // Set
190
- //
191
- OperationResolver.make({
192
- operation: LayoutOperation.Set,
193
- handler: Effect.fnUntraced(function* (input) {
194
- updateState((state) => ({
195
- ...state,
196
- active: input.subject[0]
197
- }));
198
- })
199
- })
200
- ]);
201
- }));
202
- export {
203
- operation_resolver_default as default
204
- };
205
- //# sourceMappingURL=operation-resolver-BYRIQOQT.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/operation-resolver/operation-resolver.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { LayoutOperation } from '@dxos/app-toolkit';\nimport { Operation, OperationResolver } from '@dxos/operation';\nimport { ATTENDABLE_PATH_SEPARATOR } from '@dxos/react-ui-attention';\n\nimport { type SimpleLayoutState, SimpleLayoutState as SimpleLayoutStateCapability } from '../../types';\n\n/** Maximum number of items to keep in navigation history. */\nconst MAX_HISTORY_LENGTH = 50;\n\n/** Parse entry ID to extract primary ID and variant. */\nconst parseEntryId = (entryId: string) => {\n const [id, variant] = entryId.split(ATTENDABLE_PATH_SEPARATOR);\n return { id, variant };\n};\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n const registry = yield* Capability.get(Capabilities.AtomRegistry);\n const stateAtom = yield* Capability.get(SimpleLayoutStateCapability);\n\n const getState = () => registry.get(stateAtom);\n const updateState = (fn: (current: SimpleLayoutState) => SimpleLayoutState) => {\n registry.set(stateAtom, fn(getState()));\n };\n\n return Capability.contributes(Capabilities.OperationResolver, [\n //\n // SetLayoutMode\n //\n // TODO(burdon): No-op for to fix startup bug?\n OperationResolver.make({\n operation: LayoutOperation.SetLayoutMode,\n handler: Effect.fnUntraced(function* () {}),\n }),\n\n //\n // UpdateSidebar - No-op for simple layout.\n //\n OperationResolver.make({\n operation: LayoutOperation.UpdateSidebar,\n handler: () => Effect.void,\n }),\n\n //\n // UpdateComplementary - Controls companion drawer.\n //\n OperationResolver.make({\n operation: LayoutOperation.UpdateComplementary,\n handler: Effect.fnUntraced(function* (input) {\n if (input.state === 'closed') {\n updateState((state) => ({\n ...state,\n drawerState: 'closed',\n }));\n }\n }),\n }),\n\n //\n // UpdateDialog\n //\n OperationResolver.make({\n operation: LayoutOperation.UpdateDialog,\n handler: Effect.fnUntraced(function* (input) {\n updateState((state) => ({\n ...state,\n dialogOpen: input.state ?? Boolean(input.subject),\n dialogType: input.type ?? 'default',\n dialogBlockAlign: input.blockAlign ?? 'center',\n dialogOverlayClasses: input.overlayClasses,\n dialogOverlayStyle: input.overlayStyle,\n dialogContent: input.subject ? { component: input.subject, props: input.props } : undefined,\n }));\n }),\n }),\n\n //\n // UpdatePopover\n //\n OperationResolver.make({\n operation: LayoutOperation.UpdatePopover,\n handler: Effect.fnUntraced(function* (input) {\n updateState((state) => ({\n ...state,\n popoverOpen: input.state ?? Boolean(input.subject),\n popoverKind: input.kind ?? 'base',\n popoverTitle: input.kind === 'card' ? input.title : undefined,\n popoverContent:\n typeof input.subject === 'string'\n ? { component: input.subject, props: input.props }\n : input.subject\n ? { subject: input.subject }\n : undefined,\n popoverSide: input.side,\n popoverVariant: input.variant,\n popoverAnchor: input.variant === 'virtual' ? input.anchor : state.popoverAnchor,\n popoverAnchorId: input.variant !== 'virtual' ? input.anchorId : state.popoverAnchorId,\n }));\n }),\n }),\n\n //\n // SwitchWorkspace\n //\n OperationResolver.make({\n operation: LayoutOperation.SwitchWorkspace,\n handler: Effect.fnUntraced(function* (input) {\n updateState((state) => ({\n ...state,\n // TODO(wittjosiah): This is a hack to prevent the previous deck from being set for pinned items.\n // Ideally this should be worked into the data model in a generic way.\n previousWorkspace: !state.workspace.startsWith('!') ? state.workspace : state.previousWorkspace,\n workspace: input.subject,\n active: undefined,\n // Clear history when switching workspaces.\n history: [],\n }));\n }),\n }),\n\n //\n // RevertWorkspace\n //\n OperationResolver.make({\n operation: LayoutOperation.RevertWorkspace,\n handler: Effect.fnUntraced(function* () {\n const state = getState();\n yield* Operation.invoke(LayoutOperation.SwitchWorkspace, {\n subject: state.previousWorkspace,\n });\n }),\n }),\n\n //\n // Open\n //\n OperationResolver.make({\n operation: LayoutOperation.Open,\n handler: Effect.fnUntraced(function* (input) {\n const id = input.subject[0];\n const { id: primaryId, variant } = parseEntryId(id);\n const state = getState();\n\n // Only treat as companion when opening a variant of the current workspace/active (e.g. object~comments).\n // IDs like settings~spaceId are alternate-tree nodes and should navigate main content, not open the drawer.\n // TODO(wittjosiah): Factor out the change-companion operation from deck to a common layout operation.\n const isCompanionOfCurrent = variant && (primaryId === state.workspace || primaryId === state.active);\n if (isCompanionOfCurrent) {\n updateState((state) => ({\n ...state,\n companionVariant: variant,\n drawerState: state.drawerState === 'closed' || !state.drawerState ? 'open' : state.drawerState,\n }));\n } else {\n // Regular navigation - update active and history (use full id for alternate-tree nodes).\n updateState((state) => {\n const newHistory = state.active ? [...state.history, state.active] : state.history;\n const trimmedHistory =\n newHistory.length > MAX_HISTORY_LENGTH ? newHistory.slice(-MAX_HISTORY_LENGTH) : newHistory;\n return {\n ...state,\n active: id,\n history: trimmedHistory,\n };\n });\n }\n }),\n }),\n\n //\n // Close\n //\n OperationResolver.make({\n operation: LayoutOperation.Close,\n handler: Effect.fnUntraced(function* () {\n updateState((state) => {\n // Pop from history if available.\n if (state.history.length > 0) {\n const newHistory = [...state.history];\n const previousActive = newHistory.pop();\n return {\n ...state,\n active: previousActive,\n history: newHistory,\n };\n }\n // No history, just clear active.\n return {\n ...state,\n active: undefined,\n };\n });\n }),\n }),\n\n //\n // Set\n //\n OperationResolver.make({\n operation: LayoutOperation.Set,\n handler: Effect.fnUntraced(function* (input) {\n updateState((state) => ({\n ...state,\n active: input.subject[0],\n }));\n }),\n }),\n ]);\n }),\n);\n"],
5
- "mappings": "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",
6
- "names": ["Effect", "Capabilities", "Capability", "LayoutOperation", "Operation", "OperationResolver", "ATTENDABLE_PATH_SEPARATOR", "MAX_HISTORY_LENGTH", "parseEntryId", "entryId", "id", "variant", "split", "ATTENDABLE_PATH_SEPARATOR", "Capability", "makeModule", "fnUntraced", "registry", "get", "Capabilities", "AtomRegistry", "stateAtom", "SimpleLayoutStateCapability", "getState", "updateState", "fn", "set", "contributes", "OperationResolver", "make", "operation", "LayoutOperation", "SetLayoutMode", "handler", "UpdateSidebar", "void", "UpdateComplementary", "input", "state", "drawerState", "UpdateDialog", "dialogOpen", "Boolean", "subject", "dialogType", "type", "dialogBlockAlign", "blockAlign", "dialogOverlayClasses", "overlayClasses", "dialogOverlayStyle", "overlayStyle", "dialogContent", "component", "props", "undefined", "UpdatePopover", "popoverOpen", "popoverKind", "kind", "popoverTitle", "title", "popoverContent", "popoverSide", "side", "popoverVariant", "popoverAnchor", "anchor", "popoverAnchorId", "anchorId", "SwitchWorkspace", "previousWorkspace", "workspace", "startsWith", "active", "history", "RevertWorkspace", "Operation", "invoke", "Open", "primaryId", "isCompanionOfCurrent", "companionVariant", "newHistory", "trimmedHistory", "length", "slice", "Close", "previousActive", "pop", "Set"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/react-root/react-root.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport React from 'react';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\n\nimport { SimpleLayout } from '../../components';\nimport { meta } from '../../meta';\n\nexport default Capability.makeModule(() =>\n Effect.succeed(\n Capability.contributes(Capabilities.ReactRoot, {\n id: meta.id,\n root: () => {\n return <SimpleLayout />;\n },\n }),\n ),\n);\n"],
5
- "mappings": ";;;;;;;;AAIA,YAAYA,YAAY;AACxB,OAAOC,WAAW;AAElB,SAASC,cAAcC,kBAAkB;AAKzC,IAAA,qBAAeC,WAAWC,WAAW,MAC5BC,eACLF,WAAWG,YAAYC,aAAaC,WAAW;EAC7CC,IAAIC,KAAKD;EACTE,MAAM,MAAA;AACJ,WAAO,sBAAA,cAACC,cAAAA,IAAAA;EACV;AACF,CAAA,CAAA,CAAA;",
6
- "names": ["Effect", "React", "Capabilities", "Capability", "Capability", "makeModule", "succeed", "contributes", "Capabilities", "ReactRoot", "id", "meta", "root", "SimpleLayout"]
7
- }
@@ -1,41 +0,0 @@
1
- import {
2
- Home,
3
- Workspace
4
- } from "./chunk-TMZNLVT2.mjs";
5
- import {
6
- meta
7
- } from "./chunk-7VLT3S46.mjs";
8
-
9
- // src/capabilities/react-surface/react-surface.tsx
10
- import * as Effect from "effect/Effect";
11
- import React from "react";
12
- import { Capabilities, Capability } from "@dxos/app-framework";
13
- import { Surface } from "@dxos/app-framework/ui";
14
- import { Node } from "@dxos/plugin-graph";
15
- var ALLOWED_DISPOSITIONS = [
16
- "workspace",
17
- "user-account",
18
- "pin-end",
19
- "alternate-tree"
20
- ];
21
- var react_surface_default = Capability.makeModule(() => Effect.succeed(Capability.contributes(Capabilities.ReactSurface, [
22
- Surface.create({
23
- id: `${meta.id}/home`,
24
- role: "article",
25
- filter: (data) => data.attendableId === Node.RootId,
26
- component: () => /* @__PURE__ */ React.createElement(Home, null)
27
- }),
28
- Surface.create({
29
- id: `${meta.id}/workspace-article`,
30
- role: "article",
31
- position: "fallback",
32
- filter: (data) => ALLOWED_DISPOSITIONS.includes(data.properties?.disposition),
33
- component: ({ data }) => /* @__PURE__ */ React.createElement(Workspace, {
34
- id: data.attendableId
35
- })
36
- })
37
- ])));
38
- export {
39
- react_surface_default as default
40
- };
41
- //# sourceMappingURL=react-surface-M6CURANW.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/react-surface/react-surface.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\nimport React from 'react';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { Surface } from '@dxos/app-framework/ui';\nimport { Node } from '@dxos/plugin-graph';\n\nimport { Home, Workspace } from '../../components';\nimport { meta } from '../../meta';\n\ntype SurfaceData = {\n attendableId: string;\n properties: Record<string, any>;\n};\n\nconst ALLOWED_DISPOSITIONS = ['workspace', 'user-account', 'pin-end', 'alternate-tree'];\n\nexport default Capability.makeModule(() =>\n Effect.succeed(\n Capability.contributes(Capabilities.ReactSurface, [\n Surface.create({\n id: `${meta.id}/home`,\n role: 'article',\n filter: (data): data is SurfaceData => data.attendableId === Node.RootId,\n component: () => <Home />,\n }),\n Surface.create({\n id: `${meta.id}/workspace-article`,\n role: 'article',\n position: 'fallback',\n filter: (data): data is SurfaceData =>\n ALLOWED_DISPOSITIONS.includes((data.properties as Record<string, any>)?.disposition),\n component: ({ data }) => <Workspace id={data.attendableId} />,\n }),\n ]),\n ),\n);\n"],
5
- "mappings": ";;;;;;;;;AAIA,YAAYA,YAAY;AACxB,OAAOC,WAAW;AAElB,SAASC,cAAcC,kBAAkB;AACzC,SAASC,eAAe;AACxB,SAASC,YAAY;AAUrB,IAAMC,uBAAuB;EAAC;EAAa;EAAgB;EAAW;;AAEtE,IAAA,wBAAeC,WAAWC,WAAW,MAC5BC,eACLF,WAAWG,YAAYC,aAAaC,cAAc;EAChDC,QAAQC,OAAO;IACbC,IAAI,GAAGC,KAAKD,EAAE;IACdE,MAAM;IACNC,QAAQ,CAACC,SAA8BA,KAAKC,iBAAiBC,KAAKC;IAClEC,WAAW,MAAM,sBAAA,cAACC,MAAAA,IAAAA;EACpB,CAAA;EACAX,QAAQC,OAAO;IACbC,IAAI,GAAGC,KAAKD,EAAE;IACdE,MAAM;IACNQ,UAAU;IACVP,QAAQ,CAACC,SACPb,qBAAqBoB,SAAUP,KAAKQ,YAAoCC,WAAAA;IAC1EL,WAAW,CAAC,EAAEJ,KAAI,MAAO,sBAAA,cAACU,WAAAA;MAAUd,IAAII,KAAKC;;EAC/C,CAAA;CACD,CAAA,CAAA;",
6
- "names": ["Effect", "React", "Capabilities", "Capability", "Surface", "Node", "ALLOWED_DISPOSITIONS", "Capability", "makeModule", "succeed", "contributes", "Capabilities", "ReactSurface", "Surface", "create", "id", "meta", "role", "filter", "data", "attendableId", "Node", "RootId", "component", "Home", "position", "includes", "properties", "disposition", "Workspace"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/spotlight-dismiss/spotlight-dismiss.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\n// Based on the frontend-driven dismiss pattern from:\n// https://github.com/Jedliu/tauri-template-demo\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { log } from '@dxos/log';\nimport { isTauri } from '@dxos/util';\n\n/**\n * Get the Tauri window API from the global object.\n */\nconst getTauriWindow = (): any => {\n const tauri = (globalThis as any).__TAURI__;\n return tauri?.window;\n};\n\n/**\n * Get the Tauri core API (invoke) from the global object.\n */\nconst getTauriCore = (): any => {\n const tauri = (globalThis as any).__TAURI__;\n return tauri?.core;\n};\n\nexport type SpotlightDismissOptions = {\n /** Whether running in popover window context. */\n isPopover?: boolean;\n};\n\n/**\n * Capability that sets up spotlight panel dismiss behavior.\n * When running in Tauri popover mode, listens for focus loss and Escape key\n * to dismiss the spotlight panel. Runs at startup before React renders.\n */\nexport default Capability.makeModule(({ isPopover = false }: SpotlightDismissOptions = {}) =>\n Effect.promise(async () => {\n if (!isPopover || !isTauri()) {\n return [];\n }\n\n // Set up focus listener.\n let focusCleanup: (() => void) | undefined;\n try {\n const tauriWindow = getTauriWindow();\n const tauriCore = getTauriCore();\n if (tauriWindow && tauriCore) {\n const win = tauriWindow.getCurrentWindow();\n focusCleanup = await win.onFocusChanged(async ({ payload }: { payload: boolean }) => {\n if (!payload) {\n await tauriCore.invoke('hide_spotlight');\n }\n });\n }\n } catch (err) {\n log.catch(err);\n }\n\n // Set up Escape key listener.\n const handleKeyDown = async (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n event.preventDefault();\n try {\n const tauriCore = getTauriCore();\n if (tauriCore) {\n await tauriCore.invoke('hide_spotlight');\n }\n } catch (err) {\n log.catch(err);\n }\n }\n };\n window.addEventListener('keydown', handleKeyDown);\n\n return Capability.contributes(Capabilities.Null, null, () =>\n Effect.sync(() => {\n focusCleanup?.();\n window.removeEventListener('keydown', handleKeyDown);\n }),\n );\n }),\n);\n"],
5
- "mappings": ";AAOA,YAAYA,YAAY;AAExB,SAASC,cAAcC,kBAAkB;AACzC,SAASC,WAAW;AACpB,SAASC,eAAe;;AAKxB,IAAMC,iBAAiB,MAAA;AACrB,QAAMC,QAASC,WAAmBC;AAClC,SAAOF,OAAOG;AAChB;AAKA,IAAMC,eAAe,MAAA;AACnB,QAAMJ,QAASC,WAAmBC;AAClC,SAAOF,OAAOK;AAChB;AAYA,IAAA,4BAAeT,WAAWU,WAAW,CAAC,EAAEC,YAAY,MAAK,IAA8B,CAAC,MAC/EC,eAAQ,YAAA;AACb,MAAI,CAACD,aAAa,CAACT,QAAAA,GAAW;AAC5B,WAAO,CAAA;EACT;AAGA,MAAIW;AACJ,MAAI;AACF,UAAMC,cAAcX,eAAAA;AACpB,UAAMY,YAAYP,aAAAA;AAClB,QAAIM,eAAeC,WAAW;AAC5B,YAAMC,MAAMF,YAAYG,iBAAgB;AACxCJ,qBAAe,MAAMG,IAAIE,eAAe,OAAO,EAAEC,QAAO,MAAwB;AAC9E,YAAI,CAACA,SAAS;AACZ,gBAAMJ,UAAUK,OAAO,gBAAA;QACzB;MACF,CAAA;IACF;EACF,SAASC,KAAK;AACZpB,QAAIqB,MAAMD,KAAAA,QAAAA;;;;;;EACZ;AAGA,QAAME,gBAAgB,OAAOC,UAAAA;AAC3B,QAAIA,MAAMC,QAAQ,UAAU;AAC1BD,YAAME,eAAc;AACpB,UAAI;AACF,cAAMX,YAAYP,aAAAA;AAClB,YAAIO,WAAW;AACb,gBAAMA,UAAUK,OAAO,gBAAA;QACzB;MACF,SAASC,KAAK;AACZpB,YAAIqB,MAAMD,KAAAA,QAAAA;;;;;;MACZ;IACF;EACF;AACAd,SAAOoB,iBAAiB,WAAWJ,aAAAA;AAEnC,SAAOvB,WAAW4B,YAAY7B,aAAa8B,MAAM,MAAM,MAC9CC,YAAK,MAAA;AACVjB,mBAAAA;AACAN,WAAOwB,oBAAoB,WAAWR,aAAAA;EACxC,CAAA,CAAA;AAEJ,CAAA,CAAA;",
6
- "names": ["Effect", "Capabilities", "Capability", "log", "isTauri", "getTauriWindow", "tauri", "globalThis", "__TAURI__", "window", "getTauriCore", "core", "makeModule", "isPopover", "promise", "focusCleanup", "tauriWindow", "tauriCore", "win", "getCurrentWindow", "onFocusChanged", "payload", "invoke", "err", "catch", "handleKeyDown", "event", "key", "preventDefault", "addEventListener", "contributes", "Null", "sync", "removeEventListener"]
7
- }
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/state/state.tsx"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport { Atom } from '@effect-atom/atom-react';\nimport * as Effect from 'effect/Effect';\n\nimport { Capability } from '@dxos/app-framework';\nimport { AppCapabilities } from '@dxos/app-toolkit';\nimport { Node } from '@dxos/plugin-graph';\n\nimport { type SimpleLayoutState } from '../../types';\nimport { SimpleLayoutState as SimpleLayoutStateCapability } from '../../types';\n\nconst defaultState: SimpleLayoutState = {\n dialogOpen: false,\n workspace: Node.RootId,\n previousWorkspace: Node.RootId,\n history: [],\n isPopover: false,\n companionVariant: undefined,\n drawerState: 'closed',\n};\n\nexport type SimpleLayoutStateOptions = {\n initialState?: Partial<SimpleLayoutState>;\n};\n\nexport default Capability.makeModule(({ initialState }: SimpleLayoutStateOptions = {}) =>\n Effect.sync(() => {\n const stateAtom = Atom.make<SimpleLayoutState>({ ...defaultState, ...initialState });\n\n const layoutAtom = Atom.make((get): AppCapabilities.Layout => {\n const state = get(stateAtom);\n return {\n mode: 'simple',\n dialogOpen: state.dialogOpen,\n sidebarOpen: false,\n complementarySidebarOpen: false,\n workspace: state.workspace,\n active: state.active ? [state.active] : [],\n inactive: [],\n scrollIntoView: undefined,\n };\n });\n\n return [\n Capability.contributes(SimpleLayoutStateCapability, stateAtom),\n Capability.contributes(AppCapabilities.Layout, layoutAtom),\n ];\n }),\n);\n"],
5
- "mappings": ";;;;;AAIA,SAASA,YAAY;AACrB,YAAYC,YAAY;AAExB,SAASC,kBAAkB;AAC3B,SAASC,uBAAuB;AAChC,SAASC,YAAY;AAKrB,IAAMC,eAAkC;EACtCC,YAAY;EACZC,WAAWC,KAAKC;EAChBC,mBAAmBF,KAAKC;EACxBE,SAAS,CAAA;EACTC,WAAW;EACXC,kBAAkBC;EAClBC,aAAa;AACf;AAMA,IAAA,gBAAeC,WAAWC,WAAW,CAAC,EAAEC,aAAY,IAA+B,CAAC,MAC3EC,YAAK,MAAA;AACV,QAAMC,YAAYC,KAAKC,KAAwB;IAAE,GAAGjB;IAAc,GAAGa;EAAa,CAAA;AAElF,QAAMK,aAAaF,KAAKC,KAAK,CAACE,QAAAA;AAC5B,UAAMC,QAAQD,IAAIJ,SAAAA;AAClB,WAAO;MACLM,MAAM;MACNpB,YAAYmB,MAAMnB;MAClBqB,aAAa;MACbC,0BAA0B;MAC1BrB,WAAWkB,MAAMlB;MACjBsB,QAAQJ,MAAMI,SAAS;QAACJ,MAAMI;UAAU,CAAA;MACxCC,UAAU,CAAA;MACVC,gBAAgBjB;IAClB;EACF,CAAA;AAEA,SAAO;IACLE,WAAWgB,YAAYC,mBAA6Bb,SAAAA;IACpDJ,WAAWgB,YAAYE,gBAAgBC,QAAQZ,UAAAA;;AAEnD,CAAA,CAAA;",
6
- "names": ["Atom", "Effect", "Capability", "AppCapabilities", "Node", "defaultState", "dialogOpen", "workspace", "Node", "RootId", "previousWorkspace", "history", "isPopover", "companionVariant", "undefined", "drawerState", "Capability", "makeModule", "initialState", "sync", "stateAtom", "Atom", "make", "layoutAtom", "get", "state", "mode", "sidebarOpen", "complementarySidebarOpen", "active", "inactive", "scrollIntoView", "contributes", "SimpleLayoutStateCapability", "AppCapabilities", "Layout"]
7
- }
@@ -1,152 +0,0 @@
1
- import {
2
- SimpleLayoutState
3
- } from "./chunk-7VLT3S46.mjs";
4
-
5
- // src/capabilities/url-handler/url-handler.ts
6
- import * as Effect from "effect/Effect";
7
- import { Capabilities, Capability } from "@dxos/app-framework";
8
- import { LayoutOperation } from "@dxos/app-toolkit";
9
- import { log } from "@dxos/log";
10
- import { Node } from "@dxos/plugin-graph";
11
- import { isTauri } from "@dxos/util";
12
- var __dxlog_file = "/__w/dxos/dxos/packages/plugins/plugin-simple-layout/src/capabilities/url-handler/url-handler.ts";
13
- var url_handler_default = Capability.makeModule(Effect.fnUntraced(function* () {
14
- const { invokeSync } = yield* Capability.get(Capabilities.OperationInvoker);
15
- const handlePathNavigation = (pathname) => {
16
- log.info("[UrlHandler] Navigating to path", {
17
- pathname
18
- }, {
19
- F: __dxlog_file,
20
- L: 31,
21
- S: this,
22
- C: (f, a) => f(...a)
23
- });
24
- const [_, nextWorkspace, nextActive] = pathname.split("/");
25
- const targetWorkspace = !nextWorkspace || nextWorkspace === "root" ? Node.RootId : nextWorkspace;
26
- invokeSync(LayoutOperation.SwitchWorkspace, {
27
- subject: targetWorkspace
28
- });
29
- if (nextActive) {
30
- invokeSync(LayoutOperation.Open, {
31
- subject: [
32
- nextActive
33
- ]
34
- });
35
- }
36
- };
37
- const onNavigation = handleNavigation(handlePathNavigation);
38
- yield* Effect.sync(() => onNavigation());
39
- window.addEventListener("popstate", onNavigation);
40
- let unlistenDeepLink;
41
- if (isTauri()) {
42
- yield* Effect.tryPromise({
43
- try: async () => {
44
- const { getCurrent, onOpenUrl } = await import("@tauri-apps/plugin-deep-link");
45
- const launchUrls = await getCurrent();
46
- if (launchUrls && launchUrls.length > 0) {
47
- log.info("[UrlHandler] App launched with deep links", {
48
- urls: launchUrls
49
- }, {
50
- F: __dxlog_file,
51
- L: 62,
52
- S: this,
53
- C: (f, a) => f(...a)
54
- });
55
- for (const url of launchUrls) {
56
- handleDeepLink(url, handlePathNavigation);
57
- }
58
- }
59
- unlistenDeepLink = await onOpenUrl((urls) => {
60
- log.info("[UrlHandler] Deep links received", {
61
- urls
62
- }, {
63
- F: __dxlog_file,
64
- L: 70,
65
- S: this,
66
- C: (f, a) => f(...a)
67
- });
68
- for (const url of urls) {
69
- handleDeepLink(url, handlePathNavigation);
70
- }
71
- });
72
- log.info("[UrlHandler] Deep link listener initialized", void 0, {
73
- F: __dxlog_file,
74
- L: 76,
75
- S: this,
76
- C: (f, a) => f(...a)
77
- });
78
- },
79
- catch: (error) => {
80
- log.warn("[UrlHandler] Failed to initialize deep link listener", {
81
- error
82
- }, {
83
- F: __dxlog_file,
84
- L: 79,
85
- S: this,
86
- C: (f, a) => f(...a)
87
- });
88
- return error;
89
- }
90
- }).pipe(Effect.catchAll(() => Effect.void));
91
- }
92
- let lastWorkspace;
93
- let lastActive;
94
- const unsubscribe = yield* Capabilities.subscribeAtom(SimpleLayoutState, (state) => {
95
- const { workspace, active } = state;
96
- if (workspace !== lastWorkspace || active !== lastActive) {
97
- lastWorkspace = workspace;
98
- lastActive = active;
99
- const path = pathFromState(workspace, active);
100
- if (window.location.pathname !== path) {
101
- history.pushState(null, "", `${path}${window.location.search}`);
102
- }
103
- }
104
- });
105
- return Capability.contributes(Capabilities.Null, null, () => Effect.sync(() => {
106
- window.removeEventListener("popstate", onNavigation);
107
- unsubscribe();
108
- unlistenDeepLink?.();
109
- }));
110
- }));
111
- var isRedirectPath = (pathname) => pathname.startsWith("/redirect/");
112
- var pathFromState = (workspace, active) => workspace === Node.RootId ? active ? `/${Node.RootId}/${active}` : "/" : active ? `/${workspace}/${active}` : `/${workspace}`;
113
- var handleNavigation = (navigate) => () => navigate(window.location.pathname);
114
- var handleDeepLink = (urlString, navigate) => {
115
- log.info("[UrlHandler] Deep link received", {
116
- url: urlString
117
- }, {
118
- F: __dxlog_file,
119
- L: 146,
120
- S: void 0,
121
- C: (f, a) => f(...a)
122
- });
123
- try {
124
- const url = new URL(urlString);
125
- if (isRedirectPath(url.pathname)) {
126
- log.info("[UrlHandler] Skipping redirect path (handled elsewhere)", {
127
- pathname: url.pathname
128
- }, {
129
- F: __dxlog_file,
130
- L: 150,
131
- S: void 0,
132
- C: (f, a) => f(...a)
133
- });
134
- return;
135
- }
136
- navigate(url.pathname);
137
- } catch (error) {
138
- log.warn("[UrlHandler] Failed to parse deep link URL", {
139
- urlString,
140
- error
141
- }, {
142
- F: __dxlog_file,
143
- L: 155,
144
- S: void 0,
145
- C: (f, a) => f(...a)
146
- });
147
- }
148
- };
149
- export {
150
- url_handler_default as default
151
- };
152
- //# sourceMappingURL=url-handler-HTIUY6WL.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/capabilities/url-handler/url-handler.ts"],
4
- "sourcesContent": ["//\n// Copyright 2025 DXOS.org\n//\n\nimport * as Effect from 'effect/Effect';\n\nimport { Capabilities, Capability } from '@dxos/app-framework';\nimport { LayoutOperation } from '@dxos/app-toolkit';\nimport { log } from '@dxos/log';\nimport { Node } from '@dxos/plugin-graph';\nimport { isTauri } from '@dxos/util';\n\nimport { type SimpleLayoutState, SimpleLayoutState as SimpleLayoutStateCapability } from '../../types';\n\n/**\n * URL handler for simple layout that syncs browser URL with layout state.\n * URL format: /{workspace} or /{workspace}/{active}\n * Root is represented as / or /root.\n *\n * On mobile Tauri, also listens for deep links via the deep-link plugin.\n */\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n const { invokeSync } = yield* Capability.get(Capabilities.OperationInvoker);\n\n /**\n * Handle navigation from a pathname.\n * Parses path and updates state accordingly.\n */\n const handlePathNavigation = (pathname: string) => {\n log.info('[UrlHandler] Navigating to path', { pathname });\n\n // Parse URL segments: /{workspace}/{active}\n const [_, nextWorkspace, nextActive] = pathname.split('/');\n\n // Determine target workspace (empty or 'root' means Node.RootId).\n const targetWorkspace = !nextWorkspace || nextWorkspace === 'root' ? Node.RootId : nextWorkspace;\n\n // Navigate via operations (they will update state accordingly).\n invokeSync(LayoutOperation.SwitchWorkspace, { subject: targetWorkspace });\n if (nextActive) {\n invokeSync(LayoutOperation.Open, { subject: [nextActive] });\n }\n };\n\n const onNavigation = handleNavigation(handlePathNavigation);\n\n // Handle initial URL and listen for browser navigation.\n yield* Effect.sync(() => onNavigation());\n window.addEventListener('popstate', onNavigation);\n\n // Set up deep link listener for mobile Tauri.\n let unlistenDeepLink: (() => void) | undefined;\n if (isTauri()) {\n yield* Effect.tryPromise({\n try: async () => {\n const { getCurrent, onOpenUrl } = await import('@tauri-apps/plugin-deep-link');\n\n // Check if app was launched via deep link (cold start).\n const launchUrls = await getCurrent();\n if (launchUrls && launchUrls.length > 0) {\n log.info('[UrlHandler] App launched with deep links', { urls: launchUrls });\n for (const url of launchUrls) {\n handleDeepLink(url, handlePathNavigation);\n }\n }\n\n // Listen for deep links while app is running.\n unlistenDeepLink = await onOpenUrl((urls) => {\n log.info('[UrlHandler] Deep links received', { urls });\n for (const url of urls) {\n handleDeepLink(url, handlePathNavigation);\n }\n });\n\n log.info('[UrlHandler] Deep link listener initialized');\n },\n catch: (error) => {\n log.warn('[UrlHandler] Failed to initialize deep link listener', { error });\n return error;\n },\n }).pipe(Effect.catchAll(() => Effect.void));\n }\n\n // Subscribe to state changes to update the URL.\n let lastWorkspace: string | undefined;\n let lastActive: string | undefined;\n const unsubscribe = yield* Capabilities.subscribeAtom(SimpleLayoutStateCapability, (state: SimpleLayoutState) => {\n const { workspace, active } = state;\n\n // Only update URL if relevant state changed.\n if (workspace !== lastWorkspace || active !== lastActive) {\n lastWorkspace = workspace;\n lastActive = active;\n\n const path = pathFromState(workspace, active);\n if (window.location.pathname !== path) {\n history.pushState(null, '', `${path}${window.location.search}`);\n }\n }\n });\n\n return Capability.contributes(Capabilities.Null, null, () =>\n Effect.sync(() => {\n window.removeEventListener('popstate', onNavigation);\n unsubscribe();\n unlistenDeepLink?.();\n }),\n );\n }),\n);\n\n// TODO(wittjosiah): Instead of hardcoding redirect paths, we should either:\n// 1. Validate that the workspace exists in the graph before navigating.\n// 2. Implement more structured routing with explicit route definitions.\n/**\n * Check if a path is a special redirect path that shouldn't be navigated to.\n * These paths are handled by other systems (e.g., OAuth).\n */\nconst isRedirectPath = (pathname: string): boolean => pathname.startsWith('/redirect/');\n\n/**\n * Build pathname from layout state. Root workspace is / or /root/{active}.\n */\nconst pathFromState = (workspace: string, active: string | undefined): string =>\n workspace === Node.RootId\n ? active\n ? `/${Node.RootId}/${active}`\n : '/'\n : active\n ? `/${workspace}/${active}`\n : `/${workspace}`;\n\n/**\n * Returns a handler for navigation events (initial load and popstate) that navigates to current pathname.\n */\nconst handleNavigation =\n (navigate: (pathname: string) => void): (() => void) =>\n () =>\n navigate(window.location.pathname);\n\n/**\n * Handle deep link URL from Tauri. Parses the URL and calls navigate unless it's a redirect path.\n */\nconst handleDeepLink = (urlString: string, navigate: (pathname: string) => void): void => {\n log.info('[UrlHandler] Deep link received', { url: urlString });\n try {\n const url = new URL(urlString);\n if (isRedirectPath(url.pathname)) {\n log.info('[UrlHandler] Skipping redirect path (handled elsewhere)', { pathname: url.pathname });\n return;\n }\n navigate(url.pathname);\n } catch (error) {\n log.warn('[UrlHandler] Failed to parse deep link URL', { urlString, error });\n }\n};\n"],
5
- "mappings": "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",
6
- "names": ["Effect", "Capabilities", "Capability", "LayoutOperation", "log", "Node", "isTauri", "Capability", "makeModule", "fnUntraced", "invokeSync", "get", "Capabilities", "OperationInvoker", "handlePathNavigation", "pathname", "log", "info", "_", "nextWorkspace", "nextActive", "split", "targetWorkspace", "Node", "RootId", "LayoutOperation", "SwitchWorkspace", "subject", "Open", "onNavigation", "handleNavigation", "sync", "window", "addEventListener", "unlistenDeepLink", "isTauri", "tryPromise", "try", "getCurrent", "onOpenUrl", "launchUrls", "length", "urls", "url", "handleDeepLink", "catch", "error", "warn", "pipe", "catchAll", "void", "lastWorkspace", "lastActive", "unsubscribe", "subscribeAtom", "SimpleLayoutStateCapability", "state", "workspace", "active", "path", "pathFromState", "location", "history", "pushState", "search", "contributes", "Null", "removeEventListener", "isRedirectPath", "startsWith", "navigate", "urlString", "URL"]
7
- }