@dxos/plugin-deck 0.7.5-labs.a279d8c → 0.7.5-labs.a8b535d

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 (236) hide show
  1. package/dist/lib/browser/{app-graph-builder-67VRUD5K.mjs → app-graph-builder-IYHAGFA3.mjs} +61 -31
  2. package/dist/lib/browser/app-graph-builder-IYHAGFA3.mjs.map +7 -0
  3. package/dist/lib/browser/{check-app-scheme-GEX6W2R5.mjs → check-app-scheme-S3EYUPMF.mjs} +3 -3
  4. package/dist/lib/browser/{check-app-scheme-GEX6W2R5.mjs.map → check-app-scheme-S3EYUPMF.mjs.map} +2 -2
  5. package/dist/lib/browser/{chunk-5VFDMW5M.mjs → chunk-22AQ5IVX.mjs} +2 -2
  6. package/dist/lib/browser/chunk-22AQ5IVX.mjs.map +7 -0
  7. package/dist/lib/browser/chunk-FT33W5CI.mjs +128 -0
  8. package/dist/lib/browser/chunk-FT33W5CI.mjs.map +7 -0
  9. package/dist/lib/browser/chunk-G2X3ZDCE.mjs +24 -0
  10. package/dist/lib/browser/chunk-G2X3ZDCE.mjs.map +7 -0
  11. package/dist/lib/browser/chunk-KANJBSIX.mjs +97 -0
  12. package/dist/lib/browser/chunk-KANJBSIX.mjs.map +7 -0
  13. package/dist/lib/browser/{chunk-JQJ5UWVB.mjs → chunk-N7TEPFVR.mjs} +3 -2
  14. package/dist/lib/browser/{chunk-JQJ5UWVB.mjs.map → chunk-N7TEPFVR.mjs.map} +3 -3
  15. package/dist/lib/browser/chunk-O4RFYYQ6.mjs +1114 -0
  16. package/dist/lib/browser/chunk-O4RFYYQ6.mjs.map +7 -0
  17. package/dist/lib/browser/index.mjs +45 -84
  18. package/dist/lib/browser/index.mjs.map +4 -4
  19. package/dist/lib/browser/intent-resolver-ZD67BRUI.mjs +488 -0
  20. package/dist/lib/browser/intent-resolver-ZD67BRUI.mjs.map +7 -0
  21. package/dist/lib/browser/meta.json +1 -1
  22. package/dist/lib/browser/{react-root-AWYSGU4Q.mjs → react-root-6ILKHD5J.mjs} +12 -17
  23. package/dist/lib/browser/react-root-6ILKHD5J.mjs.map +7 -0
  24. package/dist/lib/browser/react-surface-O75FKXAI.mjs +39 -0
  25. package/dist/lib/browser/react-surface-O75FKXAI.mjs.map +7 -0
  26. package/dist/lib/browser/{settings-FNWW6WIJ.mjs → settings-H35U6NHE.mjs} +6 -7
  27. package/dist/lib/browser/settings-H35U6NHE.mjs.map +7 -0
  28. package/dist/lib/browser/state-U4SHOPJW.mjs +129 -0
  29. package/dist/lib/browser/state-U4SHOPJW.mjs.map +7 -0
  30. package/dist/lib/browser/{tools-4XY7KFQF.mjs → tools-64LXGLYR.mjs} +24 -11
  31. package/dist/lib/browser/tools-64LXGLYR.mjs.map +7 -0
  32. package/dist/lib/browser/types.mjs +16 -4
  33. package/dist/lib/browser/url-handler-MVHTKUYA.mjs +72 -0
  34. package/dist/lib/browser/url-handler-MVHTKUYA.mjs.map +7 -0
  35. package/dist/types/src/DeckPlugin.d.ts.map +1 -1
  36. package/dist/types/src/capabilities/app-graph-builder.d.ts +181 -0
  37. package/dist/types/src/capabilities/app-graph-builder.d.ts.map +1 -0
  38. package/dist/types/src/capabilities/capabilities.d.ts +137 -8
  39. package/dist/types/src/capabilities/capabilities.d.ts.map +1 -1
  40. package/dist/types/src/capabilities/check-app-scheme.d.ts.map +1 -0
  41. package/dist/types/src/capabilities/index.d.ts +188 -3
  42. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  43. package/dist/types/src/capabilities/intent-resolver.d.ts.map +1 -0
  44. package/dist/types/src/capabilities/react-root.d.ts.map +1 -0
  45. package/dist/types/src/capabilities/react-surface.d.ts.map +1 -0
  46. package/dist/types/src/capabilities/settings.d.ts.map +1 -0
  47. package/dist/types/src/capabilities/state.d.ts +79 -0
  48. package/dist/types/src/capabilities/state.d.ts.map +1 -0
  49. package/dist/types/src/capabilities/{navigation/tools.d.ts → tools.d.ts} +1 -0
  50. package/dist/types/src/capabilities/tools.d.ts.map +1 -0
  51. package/dist/types/src/capabilities/url-handler.d.ts.map +1 -0
  52. package/dist/types/src/components/DeckLayout/ActiveNode.d.ts +1 -2
  53. package/dist/types/src/components/DeckLayout/ActiveNode.d.ts.map +1 -1
  54. package/dist/types/src/components/DeckLayout/Banner.d.ts +1 -2
  55. package/dist/types/src/components/DeckLayout/Banner.d.ts.map +1 -1
  56. package/dist/types/src/components/DeckLayout/ComplementarySidebar.d.ts +1 -4
  57. package/dist/types/src/components/DeckLayout/ComplementarySidebar.d.ts.map +1 -1
  58. package/dist/types/src/components/DeckLayout/ContentEmpty.d.ts +1 -2
  59. package/dist/types/src/components/DeckLayout/ContentEmpty.d.ts.map +1 -1
  60. package/dist/types/src/components/DeckLayout/DeckLayout.d.ts +2 -7
  61. package/dist/types/src/components/DeckLayout/DeckLayout.d.ts.map +1 -1
  62. package/dist/types/src/components/DeckLayout/Fallback.d.ts +1 -2
  63. package/dist/types/src/components/DeckLayout/Fallback.d.ts.map +1 -1
  64. package/dist/types/src/components/DeckLayout/Fullscreen.d.ts +1 -2
  65. package/dist/types/src/components/DeckLayout/Fullscreen.d.ts.map +1 -1
  66. package/dist/types/src/components/DeckLayout/NodePlankHeading.d.ts +3 -3
  67. package/dist/types/src/components/DeckLayout/NodePlankHeading.d.ts.map +1 -1
  68. package/dist/types/src/components/DeckLayout/Plank.d.ts +8 -6
  69. package/dist/types/src/components/DeckLayout/Plank.d.ts.map +1 -1
  70. package/dist/types/src/components/DeckLayout/PlankControls.d.ts +2 -2
  71. package/dist/types/src/components/DeckLayout/PlankControls.d.ts.map +1 -1
  72. package/dist/types/src/components/DeckLayout/PlankError.d.ts +6 -6
  73. package/dist/types/src/components/DeckLayout/PlankError.d.ts.map +1 -1
  74. package/dist/types/src/components/DeckLayout/PlankLoading.d.ts +1 -2
  75. package/dist/types/src/components/DeckLayout/PlankLoading.d.ts.map +1 -1
  76. package/dist/types/src/components/DeckLayout/Sidebar.d.ts +1 -2
  77. package/dist/types/src/components/DeckLayout/Sidebar.d.ts.map +1 -1
  78. package/dist/types/src/components/DeckLayout/SidebarButton.d.ts +6 -5
  79. package/dist/types/src/components/DeckLayout/SidebarButton.d.ts.map +1 -1
  80. package/dist/types/src/components/DeckLayout/StatusBar.d.ts +1 -2
  81. package/dist/types/src/components/DeckLayout/StatusBar.d.ts.map +1 -1
  82. package/dist/types/src/components/DeckLayout/Toast.d.ts +2 -3
  83. package/dist/types/src/components/DeckLayout/Toast.d.ts.map +1 -1
  84. package/dist/types/src/components/DeckLayout/Topbar.d.ts +1 -2
  85. package/dist/types/src/components/DeckLayout/Topbar.d.ts.map +1 -1
  86. package/dist/types/src/components/LayoutSettings.d.ts +1 -2
  87. package/dist/types/src/components/LayoutSettings.d.ts.map +1 -1
  88. package/dist/types/src/components/fragments.d.ts +2 -0
  89. package/dist/types/src/components/fragments.d.ts.map +1 -1
  90. package/dist/types/src/components/index.d.ts +0 -2
  91. package/dist/types/src/components/index.d.ts.map +1 -1
  92. package/dist/types/src/events.d.ts +1 -0
  93. package/dist/types/src/events.d.ts.map +1 -1
  94. package/dist/types/src/hooks/useMainSize.d.ts +2 -2
  95. package/dist/types/src/hooks/useNode.d.ts.map +1 -1
  96. package/dist/types/src/layout.d.ts +5 -19
  97. package/dist/types/src/layout.d.ts.map +1 -1
  98. package/dist/types/src/meta.d.ts +1 -0
  99. package/dist/types/src/meta.d.ts.map +1 -1
  100. package/dist/types/src/translations.d.ts +3 -3
  101. package/dist/types/src/types.d.ts +117 -2
  102. package/dist/types/src/types.d.ts.map +1 -1
  103. package/dist/types/src/util/index.d.ts +3 -1
  104. package/dist/types/src/util/index.d.ts.map +1 -1
  105. package/dist/types/src/util/layoutAppliesTopbar.d.ts +2 -0
  106. package/dist/types/src/util/layoutAppliesTopbar.d.ts.map +1 -0
  107. package/dist/types/src/util/set-active.d.ts +9 -0
  108. package/dist/types/src/util/set-active.d.ts.map +1 -0
  109. package/dist/types/src/util/useHoistStatusbar.d.ts.map +1 -1
  110. package/dist/types/tsconfig.tsbuildinfo +1 -1
  111. package/package.json +31 -31
  112. package/src/DeckPlugin.ts +23 -65
  113. package/src/capabilities/{layout/app-graph-builder.ts → app-graph-builder.ts} +40 -28
  114. package/src/capabilities/capabilities.ts +5 -7
  115. package/src/capabilities/{navigation/check-app-scheme.ts → check-app-scheme.ts} +2 -2
  116. package/src/capabilities/index.ts +12 -3
  117. package/src/capabilities/intent-resolver.ts +368 -0
  118. package/src/capabilities/{layout/react-root.tsx → react-root.tsx} +8 -14
  119. package/src/capabilities/react-surface.tsx +31 -0
  120. package/src/capabilities/{settings/settings.ts → settings.ts} +4 -5
  121. package/src/capabilities/state.ts +108 -0
  122. package/src/capabilities/{navigation/tools.ts → tools.ts} +18 -9
  123. package/src/capabilities/url-handler.ts +65 -0
  124. package/src/components/DeckLayout/ActiveNode.tsx +2 -3
  125. package/src/components/DeckLayout/ComplementarySidebar.tsx +185 -77
  126. package/src/components/DeckLayout/ContentEmpty.tsx +7 -10
  127. package/src/components/DeckLayout/DeckLayout.tsx +141 -84
  128. package/src/components/DeckLayout/Fullscreen.tsx +2 -3
  129. package/src/components/DeckLayout/NodePlankHeading.tsx +57 -65
  130. package/src/components/DeckLayout/Plank.tsx +33 -41
  131. package/src/components/DeckLayout/PlankControls.tsx +12 -11
  132. package/src/components/DeckLayout/PlankError.tsx +6 -5
  133. package/src/components/DeckLayout/Sidebar.tsx +17 -20
  134. package/src/components/DeckLayout/SidebarButton.tsx +25 -31
  135. package/src/components/DeckLayout/StatusBar.tsx +5 -11
  136. package/src/components/DeckLayout/Toast.tsx +2 -2
  137. package/src/components/LayoutSettings.tsx +8 -8
  138. package/src/components/fragments.ts +8 -0
  139. package/src/components/index.ts +0 -2
  140. package/src/events.ts +1 -0
  141. package/src/hooks/useMainSize.ts +3 -3
  142. package/src/hooks/useNode.ts +3 -1
  143. package/src/layout.ts +43 -212
  144. package/src/meta.ts +1 -0
  145. package/src/translations.ts +8 -8
  146. package/src/types.ts +103 -4
  147. package/src/util/index.ts +3 -1
  148. package/src/util/layoutAppliesTopbar.ts +7 -0
  149. package/src/util/set-active.ts +47 -0
  150. package/src/util/useHoistStatusbar.ts +13 -8
  151. package/dist/lib/browser/app-graph-builder-67VRUD5K.mjs.map +0 -7
  152. package/dist/lib/browser/chunk-2PJNBVCY.mjs +0 -39
  153. package/dist/lib/browser/chunk-2PJNBVCY.mjs.map +0 -7
  154. package/dist/lib/browser/chunk-4C2AFTET.mjs +0 -186
  155. package/dist/lib/browser/chunk-4C2AFTET.mjs.map +0 -7
  156. package/dist/lib/browser/chunk-5VFDMW5M.mjs.map +0 -7
  157. package/dist/lib/browser/chunk-KY5WXIXY.mjs +0 -44
  158. package/dist/lib/browser/chunk-KY5WXIXY.mjs.map +0 -7
  159. package/dist/lib/browser/chunk-WUMAJGVA.mjs +0 -1052
  160. package/dist/lib/browser/chunk-WUMAJGVA.mjs.map +0 -7
  161. package/dist/lib/browser/deck-PLCSKPGL.mjs +0 -26
  162. package/dist/lib/browser/deck-PLCSKPGL.mjs.map +0 -7
  163. package/dist/lib/browser/intent-resolver-FVOQSTBX.mjs +0 -152
  164. package/dist/lib/browser/intent-resolver-FVOQSTBX.mjs.map +0 -7
  165. package/dist/lib/browser/intent-resolver-K7GW4A2I.mjs +0 -249
  166. package/dist/lib/browser/intent-resolver-K7GW4A2I.mjs.map +0 -7
  167. package/dist/lib/browser/location-AIO6V3MK.mjs +0 -35
  168. package/dist/lib/browser/location-AIO6V3MK.mjs.map +0 -7
  169. package/dist/lib/browser/react-context-G6PDXUI5.mjs +0 -32
  170. package/dist/lib/browser/react-context-G6PDXUI5.mjs.map +0 -7
  171. package/dist/lib/browser/react-root-AWYSGU4Q.mjs.map +0 -7
  172. package/dist/lib/browser/react-surface-CLUABFNX.mjs +0 -28
  173. package/dist/lib/browser/react-surface-CLUABFNX.mjs.map +0 -7
  174. package/dist/lib/browser/settings-FNWW6WIJ.mjs.map +0 -7
  175. package/dist/lib/browser/state-7I5BD7SE.mjs +0 -34
  176. package/dist/lib/browser/state-7I5BD7SE.mjs.map +0 -7
  177. package/dist/lib/browser/tools-4XY7KFQF.mjs.map +0 -7
  178. package/dist/lib/browser/url-handler-JRAQRY73.mjs +0 -76
  179. package/dist/lib/browser/url-handler-JRAQRY73.mjs.map +0 -7
  180. package/dist/types/src/capabilities/layout/app-graph-builder.d.ts +0 -181
  181. package/dist/types/src/capabilities/layout/app-graph-builder.d.ts.map +0 -1
  182. package/dist/types/src/capabilities/layout/deck.d.ts +0 -4
  183. package/dist/types/src/capabilities/layout/deck.d.ts.map +0 -1
  184. package/dist/types/src/capabilities/layout/index.d.ts +0 -229
  185. package/dist/types/src/capabilities/layout/index.d.ts.map +0 -1
  186. package/dist/types/src/capabilities/layout/intent-resolver.d.ts.map +0 -1
  187. package/dist/types/src/capabilities/layout/react-context.d.ts +0 -8
  188. package/dist/types/src/capabilities/layout/react-context.d.ts.map +0 -1
  189. package/dist/types/src/capabilities/layout/react-root.d.ts.map +0 -1
  190. package/dist/types/src/capabilities/layout/state.d.ts +0 -42
  191. package/dist/types/src/capabilities/layout/state.d.ts.map +0 -1
  192. package/dist/types/src/capabilities/navigation/check-app-scheme.d.ts.map +0 -1
  193. package/dist/types/src/capabilities/navigation/index.d.ts +0 -6
  194. package/dist/types/src/capabilities/navigation/index.d.ts.map +0 -1
  195. package/dist/types/src/capabilities/navigation/intent-resolver.d.ts +0 -4
  196. package/dist/types/src/capabilities/navigation/intent-resolver.d.ts.map +0 -1
  197. package/dist/types/src/capabilities/navigation/location.d.ts +0 -4
  198. package/dist/types/src/capabilities/navigation/location.d.ts.map +0 -1
  199. package/dist/types/src/capabilities/navigation/set-location.d.ts +0 -10
  200. package/dist/types/src/capabilities/navigation/set-location.d.ts.map +0 -1
  201. package/dist/types/src/capabilities/navigation/tools.d.ts.map +0 -1
  202. package/dist/types/src/capabilities/navigation/url-handler.d.ts.map +0 -1
  203. package/dist/types/src/capabilities/settings/index.d.ts +0 -3
  204. package/dist/types/src/capabilities/settings/index.d.ts.map +0 -1
  205. package/dist/types/src/capabilities/settings/react-surface.d.ts.map +0 -1
  206. package/dist/types/src/capabilities/settings/settings.d.ts.map +0 -1
  207. package/dist/types/src/components/DeckContext.d.ts +0 -11
  208. package/dist/types/src/components/DeckContext.d.ts.map +0 -1
  209. package/dist/types/src/components/LayoutContext.d.ts +0 -5
  210. package/dist/types/src/components/LayoutContext.d.ts.map +0 -1
  211. package/dist/types/src/layout.test.d.ts +0 -2
  212. package/dist/types/src/layout.test.d.ts.map +0 -1
  213. package/dist/types/src/util/layout-parts.d.ts +0 -7
  214. package/dist/types/src/util/layout-parts.d.ts.map +0 -1
  215. package/src/capabilities/layout/deck.ts +0 -25
  216. package/src/capabilities/layout/index.ts +0 -12
  217. package/src/capabilities/layout/intent-resolver.ts +0 -128
  218. package/src/capabilities/layout/react-context.tsx +0 -26
  219. package/src/capabilities/layout/state.ts +0 -32
  220. package/src/capabilities/navigation/index.ts +0 -11
  221. package/src/capabilities/navigation/intent-resolver.ts +0 -216
  222. package/src/capabilities/navigation/location.ts +0 -28
  223. package/src/capabilities/navigation/set-location.ts +0 -38
  224. package/src/capabilities/navigation/url-handler.ts +0 -67
  225. package/src/capabilities/settings/index.ts +0 -8
  226. package/src/capabilities/settings/react-surface.tsx +0 -23
  227. package/src/components/DeckContext.ts +0 -19
  228. package/src/components/LayoutContext.ts +0 -12
  229. package/src/layout.test.ts +0 -380
  230. package/src/util/layout-parts.ts +0 -12
  231. /package/dist/types/src/capabilities/{navigation/check-app-scheme.d.ts → check-app-scheme.d.ts} +0 -0
  232. /package/dist/types/src/capabilities/{layout/intent-resolver.d.ts → intent-resolver.d.ts} +0 -0
  233. /package/dist/types/src/capabilities/{layout/react-root.d.ts → react-root.d.ts} +0 -0
  234. /package/dist/types/src/capabilities/{settings/react-surface.d.ts → react-surface.d.ts} +0 -0
  235. /package/dist/types/src/capabilities/{settings/settings.d.ts → settings.d.ts} +0 -0
  236. /package/dist/types/src/capabilities/{navigation/url-handler.d.ts → url-handler.d.ts} +0 -0
package/src/DeckPlugin.ts CHANGED
@@ -5,23 +5,18 @@
5
5
  import { setAutoFreeze } from 'immer';
6
6
 
7
7
  import { allOf, Capabilities, contributes, defineModule, definePlugin, Events, oneOf } from '@dxos/app-framework';
8
- import { AttentionEvents } from '@dxos/plugin-attention';
9
8
  import { translations as stackTranslations } from '@dxos/react-ui-stack';
10
9
 
11
10
  import {
12
11
  AppGraphBuilder,
13
12
  CheckAppScheme,
13
+ DeckSettings,
14
14
  DeckState,
15
15
  LayoutIntentResolver,
16
- LayoutState,
17
- LocationState,
18
- NavigationIntentResolver,
19
- ReactContext,
20
16
  ReactRoot,
21
- DeckSettings,
22
17
  ReactSurface,
18
+ Tools,
23
19
  UrlHandler,
24
- NavigationTools,
25
20
  } from './capabilities';
26
21
  import { DeckEvents } from './events';
27
22
  import { meta } from './meta';
@@ -34,35 +29,23 @@ setAutoFreeze(false);
34
29
 
35
30
  export const DeckPlugin = () =>
36
31
  definePlugin(meta, [
37
- //
38
- // Settings
39
- //
40
-
32
+ defineModule({
33
+ id: `${meta.id}/module/check-app-scheme`,
34
+ activatesOn: Events.SettingsReady,
35
+ activate: CheckAppScheme,
36
+ }),
41
37
  defineModule({
42
38
  id: `${meta.id}/module/settings`,
43
39
  activatesOn: Events.SetupSettings,
44
40
  activate: DeckSettings,
45
41
  }),
46
- defineModule({
47
- id: `${meta.id}/module/react-surface`,
48
- activatesOn: Events.Startup,
49
- activate: ReactSurface,
50
- }),
51
-
52
- //
53
- // Layout
54
- //
55
-
56
42
  defineModule({
57
43
  id: `${meta.id}/module/layout`,
58
- activatesOn: oneOf(Events.Startup, Events.SetupAppGraph),
59
- activatesAfter: [Events.LayoutReady],
60
- activate: LayoutState,
61
- }),
62
- defineModule({
63
- id: `${meta.id}/module/deck`,
64
- activatesOn: oneOf(Events.Startup, Events.SetupAppGraph),
65
- activatesAfter: [DeckEvents.StateReady],
44
+ // TODO(wittjosiah): Does not integrate with settings store.
45
+ // Should this be a different event?
46
+ // Should settings store be renamed to be more generic?
47
+ activatesOn: oneOf(Events.SetupSettings, Events.SetupAppGraph),
48
+ activatesAfter: [Events.LayoutReady, DeckEvents.StateReady],
66
49
  activate: DeckState,
67
50
  }),
68
51
  defineModule({
@@ -70,19 +53,20 @@ export const DeckPlugin = () =>
70
53
  activatesOn: Events.SetupTranslations,
71
54
  activate: () => contributes(Capabilities.Translations, [...translations, ...stackTranslations]),
72
55
  }),
73
- defineModule({
74
- id: `${meta.id}/module/react-context`,
75
- activatesOn: Events.Startup,
76
- activate: ReactContext,
77
- }),
78
56
  defineModule({
79
57
  id: `${meta.id}/module/react-root`,
80
58
  activatesOn: Events.Startup,
59
+ activatesBefore: [DeckEvents.SetupComplementaryPanels],
81
60
  activate: ReactRoot,
82
61
  }),
62
+ defineModule({
63
+ id: `${meta.id}/module/react-surface`,
64
+ activatesOn: Events.SetupReactSurface,
65
+ activate: ReactSurface,
66
+ }),
83
67
  defineModule({
84
68
  id: `${meta.id}/module/layout-intent-resolver`,
85
- activatesOn: Events.SetupIntents,
69
+ activatesOn: Events.SetupIntentResolver,
86
70
  activate: LayoutIntentResolver,
87
71
  }),
88
72
  defineModule({
@@ -90,40 +74,14 @@ export const DeckPlugin = () =>
90
74
  activatesOn: Events.SetupAppGraph,
91
75
  activate: AppGraphBuilder,
92
76
  }),
93
-
94
- //
95
- // Navigation
96
- //
97
-
98
- defineModule({
99
- id: `${meta.id}/module/location`,
100
- activatesOn: oneOf(Events.Startup, Events.SetupAppGraph),
101
- activatesAfter: [Events.LocationReady],
102
- activate: LocationState,
103
- }),
104
77
  defineModule({
105
- id: `${meta.id}/module/check-app-scheme`,
106
- activatesOn: Events.SettingsReady,
107
- activate: CheckAppScheme,
78
+ id: `${meta.id}/module/tools`,
79
+ activatesOn: Events.SetupArtifactDefinition,
80
+ activate: Tools,
108
81
  }),
109
82
  defineModule({
110
83
  id: `${meta.id}/module/url`,
111
- activatesOn: allOf(
112
- Events.DispatcherReady,
113
- Events.LayoutReady,
114
- Events.LocationReady,
115
- AttentionEvents.AttentionReady,
116
- ),
84
+ activatesOn: allOf(Events.DispatcherReady, DeckEvents.StateReady),
117
85
  activate: UrlHandler,
118
86
  }),
119
- defineModule({
120
- id: `${meta.id}/module/navigation-intent-resolver`,
121
- activatesOn: Events.SetupIntents,
122
- activate: NavigationIntentResolver,
123
- }),
124
- defineModule({
125
- id: `${meta.id}/module/navigation-tools`,
126
- activatesOn: Events.Startup,
127
- activate: NavigationTools,
128
- }),
129
87
  ]);
@@ -2,19 +2,12 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import {
6
- Capabilities,
7
- contributes,
8
- createIntent,
9
- LayoutAction,
10
- NavigationAction,
11
- openIds,
12
- type PluginsContext,
13
- } from '@dxos/app-framework';
5
+ import { Capabilities, contributes, createIntent, LayoutAction, type PluginsContext } from '@dxos/app-framework';
14
6
  import { AttentionCapabilities } from '@dxos/plugin-attention';
15
7
  import { createExtension, type Node, ROOT_ID } from '@dxos/plugin-graph';
16
8
 
17
- import { DECK_PLUGIN } from '../../meta';
9
+ import { DeckCapabilities } from './capabilities';
10
+ import { DECK_PLUGIN } from '../meta';
18
11
 
19
12
  export default (context: PluginsContext) =>
20
13
  contributes(
@@ -23,13 +16,15 @@ export default (context: PluginsContext) =>
23
16
  id: DECK_PLUGIN,
24
17
  filter: (node): node is Node<null> => node.id === ROOT_ID,
25
18
  actions: () => {
19
+ const state = context.requestCapability(DeckCapabilities.MutableDeckState);
20
+
26
21
  // NOTE(Zan): This is currently disabled.
27
22
  // TODO(Zan): Fullscreen needs to know the active node and provide that to the layout part.
28
23
  const _fullscreen = {
29
- id: `${LayoutAction.SetLayoutMode._tag}/fullscreen`,
24
+ id: `${LayoutAction.UpdateLayout._tag}/fullscreen`,
30
25
  data: async () => {
31
26
  const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);
32
- await dispatch(createIntent(LayoutAction.SetLayoutMode, { layoutMode: 'fullscreen' }));
27
+ await dispatch(createIntent(LayoutAction.SetLayoutMode, { part: 'mode', options: { mode: 'fullscreen' } }));
33
28
  },
34
29
  properties: {
35
30
  label: ['toggle fullscreen label', { ns: DECK_PLUGIN }],
@@ -42,13 +37,15 @@ export default (context: PluginsContext) =>
42
37
  };
43
38
 
44
39
  const closeCurrent = {
45
- id: `${NavigationAction.Close._tag}/current`,
40
+ id: `${LayoutAction.Close._tag}/current`,
46
41
  data: async () => {
47
42
  const attention = context.requestCapability(AttentionCapabilities.Attention);
48
43
  const attended = attention.current.at(-1);
49
44
  if (attended) {
50
45
  const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);
51
- await dispatch(createIntent(NavigationAction.Close, { activeParts: { main: [attended] } }));
46
+ await dispatch(
47
+ createIntent(LayoutAction.Close, { part: 'main', subject: [attended], options: { state: false } }),
48
+ );
52
49
  }
53
50
  },
54
51
  properties: {
@@ -58,18 +55,13 @@ export default (context: PluginsContext) =>
58
55
  };
59
56
 
60
57
  const closeOthers = {
61
- id: `${NavigationAction.Close._tag}/others`,
58
+ id: `${LayoutAction.Close._tag}/others`,
62
59
  data: async () => {
63
60
  const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);
64
- const location = context.requestCapability(Capabilities.Location);
65
61
  const attention = context.requestCapability(AttentionCapabilities.Attention);
66
62
  const attended = attention.current.at(-1);
67
- const ids = openIds(location.active, ['main']).filter((id) => id !== attended);
68
- await dispatch(
69
- createIntent(NavigationAction.Close, {
70
- activeParts: { main: ids },
71
- }),
72
- );
63
+ const ids = state.deck.active.filter((id) => id !== attended) ?? [];
64
+ await dispatch(createIntent(LayoutAction.Close, { part: 'main', subject: ids, options: { state: false } }));
73
65
  },
74
66
  properties: {
75
67
  label: ['close others label', { ns: DECK_PLUGIN }],
@@ -78,13 +70,14 @@ export default (context: PluginsContext) =>
78
70
  };
79
71
 
80
72
  const closeAll = {
81
- id: `${NavigationAction.Close._tag}/all`,
73
+ id: `${LayoutAction.Close._tag}/all`,
82
74
  data: async () => {
83
75
  const { dispatchPromise: dispatch } = context.requestCapability(Capabilities.IntentDispatcher);
84
- const location = context.requestCapability(Capabilities.Location);
85
76
  await dispatch(
86
- createIntent(NavigationAction.Close, {
87
- activeParts: { main: openIds(location.active, ['main']) },
77
+ createIntent(LayoutAction.Close, {
78
+ part: 'main',
79
+ subject: state.deck.active,
80
+ options: { state: false },
88
81
  }),
89
82
  );
90
83
  },
@@ -94,8 +87,27 @@ export default (context: PluginsContext) =>
94
87
  },
95
88
  };
96
89
 
97
- const layoutMode = context.requestCapabilities(Capabilities.Layout)[0]?.layoutMode;
98
- return layoutMode === 'deck' ? [closeCurrent, closeOthers, closeAll] : [];
90
+ const toggleSidebar = {
91
+ id: `${LayoutAction.UpdateSidebar._tag}/nav`,
92
+ data: async () => {
93
+ state.sidebarState = state.sidebarState === 'expanded' ? 'collapsed' : 'expanded';
94
+ },
95
+ properties: {
96
+ label: [
97
+ state.sidebarState === 'expanded' ? 'collapse navigation sidebar label' : 'open navigation sidebar label',
98
+ { ns: DECK_PLUGIN },
99
+ ],
100
+ icon: 'ph--sidebar--regular',
101
+ keyBinding: {
102
+ macos: 'meta+b',
103
+ },
104
+ disposition: 'pin-end',
105
+ position: 'hoist',
106
+ l0Breakpoint: 'lg',
107
+ },
108
+ };
109
+
110
+ return !state.deck.solo ? [closeCurrent, closeOthers, closeAll, toggleSidebar] : [toggleSidebar];
99
111
  },
100
112
  }),
101
113
  );
@@ -2,16 +2,14 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { defineCapability, type Label } from '@dxos/app-framework';
5
+ import { defineCapability } from '@dxos/app-framework';
6
6
  import { type DeepReadonly } from '@dxos/util';
7
7
 
8
- import { type DeckContextType } from '../components';
9
8
  import { DECK_PLUGIN } from '../meta';
9
+ import { type DeckState, type Panel } from '../types';
10
10
 
11
11
  export namespace DeckCapabilities {
12
- export const DeckState = defineCapability<DeepReadonly<DeckContextType>>(`${DECK_PLUGIN}/capability/state`);
13
- export const MutableDeckState = defineCapability<DeckContextType>(`${DECK_PLUGIN}/capability/state`);
14
- export const ComplementaryPanel = defineCapability<{ id: string; label: Label; icon: string }>(
15
- `${DECK_PLUGIN}/capability/complementary-panel`,
16
- );
12
+ export const DeckState = defineCapability<DeepReadonly<DeckState>>(`${DECK_PLUGIN}/capability/state`);
13
+ export const MutableDeckState = defineCapability<DeckState>(`${DECK_PLUGIN}/capability/state`);
14
+ export const ComplementaryPanel = defineCapability<Panel>(`${DECK_PLUGIN}/capability/complementary-panel`);
17
15
  }
@@ -7,8 +7,8 @@
7
7
 
8
8
  import { Capabilities, contributes, type PluginsContext } from '@dxos/app-framework';
9
9
 
10
- import { DECK_PLUGIN } from '../../meta';
11
- import { type DeckSettingsProps } from '../../types';
10
+ import { DECK_PLUGIN } from '../meta';
11
+ import { type DeckSettingsProps } from '../types';
12
12
 
13
13
  const isSocket = !!(globalThis as any).__args;
14
14
 
@@ -2,7 +2,16 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
+ import { lazy } from '@dxos/app-framework';
6
+
7
+ export const AppGraphBuilder = lazy(() => import('./app-graph-builder'));
8
+ export const CheckAppScheme = lazy(() => import('./check-app-scheme'));
9
+ export const LayoutIntentResolver = lazy(() => import('./intent-resolver'));
10
+ export const ReactRoot = lazy(() => import('./react-root'));
11
+ export const ReactSurface = lazy(() => import('./react-surface'));
12
+ export const DeckSettings = lazy(() => import('./settings'));
13
+ export const DeckState = lazy(() => import('./state'));
14
+ export const Tools = lazy(() => import('./tools'));
15
+ export const UrlHandler = lazy(() => import('./url-handler'));
16
+
5
17
  export * from './capabilities';
6
- export * from './layout';
7
- export * from './navigation';
8
- export * from './settings';