@dxos/app-framework 0.8.2-main.12df754 → 0.8.2-main.30e4dbb

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 (278) hide show
  1. package/dist/lib/browser/{app-graph-builder-RHU5WUGJ.mjs → app-graph-builder-OWHVEAHP.mjs} +7 -5
  2. package/dist/lib/browser/app-graph-builder-OWHVEAHP.mjs.map +7 -0
  3. package/dist/lib/browser/{chunk-GYFO2C4Q.mjs → chunk-A7XUUTJN.mjs} +2 -2
  4. package/dist/lib/browser/{chunk-SFPT4Z2C.mjs → chunk-KPRHX73H.mjs} +9 -9
  5. package/dist/lib/browser/chunk-KPRHX73H.mjs.map +7 -0
  6. package/dist/lib/browser/{chunk-5WHZ3ORL.mjs → chunk-M6UBP7YP.mjs} +165 -162
  7. package/dist/lib/browser/chunk-M6UBP7YP.mjs.map +7 -0
  8. package/dist/lib/browser/index.mjs +6 -6
  9. package/dist/lib/browser/{intent-dispatcher-T6YETUE7.mjs → intent-dispatcher-SICNXT2G.mjs} +2 -2
  10. package/dist/lib/browser/{intent-resolver-UQFD7VBJ.mjs → intent-resolver-2K6LNSUE.mjs} +3 -3
  11. package/dist/lib/browser/meta.json +1 -1
  12. package/dist/lib/browser/{store-NP42FCZO.mjs → store-P4XZF26P.mjs} +2 -2
  13. package/dist/lib/browser/testing/index.mjs +7 -3
  14. package/dist/lib/browser/testing/index.mjs.map +3 -3
  15. package/dist/lib/browser/worker.mjs +1 -1
  16. package/dist/lib/node/{app-graph-builder-QGHI2J2R.cjs → app-graph-builder-43JOK25K.cjs} +32 -30
  17. package/dist/lib/node/app-graph-builder-43JOK25K.cjs.map +7 -0
  18. package/dist/lib/node/{chunk-JUSEAFDU.cjs → chunk-JQMNABMK.cjs} +4 -4
  19. package/dist/lib/node/chunk-JQMNABMK.cjs.map +7 -0
  20. package/dist/lib/node/{chunk-EGY2ANJA.cjs → chunk-LPUJODXZ.cjs} +8 -5
  21. package/dist/lib/node/chunk-LPUJODXZ.cjs.map +7 -0
  22. package/dist/lib/node/{chunk-PIFNLI5K.cjs → chunk-MTROSTO7.cjs} +19 -19
  23. package/dist/lib/node/index.cjs +79 -79
  24. package/dist/lib/node/{intent-dispatcher-BEKV2HG3.cjs → intent-dispatcher-XXFKXEHF.cjs} +8 -8
  25. package/dist/lib/node/{intent-dispatcher-BEKV2HG3.cjs.map → intent-dispatcher-XXFKXEHF.cjs.map} +2 -2
  26. package/dist/lib/node/{intent-resolver-NALI2KSH.cjs → intent-resolver-ZP6S7QKG.cjs} +12 -12
  27. package/dist/lib/node/meta.json +1 -1
  28. package/dist/lib/node/{store-I7KM7GGP.cjs → store-MALHSPHZ.cjs} +7 -7
  29. package/dist/lib/node/testing/index.cjs +14 -9
  30. package/dist/lib/node/testing/index.cjs.map +3 -3
  31. package/dist/lib/node/worker.cjs +38 -38
  32. package/dist/lib/node/worker.cjs.map +1 -1
  33. package/dist/lib/node-esm/{app-graph-builder-45FJO6JA.mjs → app-graph-builder-WE4IBY3S.mjs} +7 -5
  34. package/dist/lib/node-esm/app-graph-builder-WE4IBY3S.mjs.map +7 -0
  35. package/dist/lib/node-esm/{chunk-PHOUQACM.mjs → chunk-JUJF5L4G.mjs} +9 -9
  36. package/dist/lib/node-esm/chunk-JUJF5L4G.mjs.map +7 -0
  37. package/dist/lib/node-esm/{chunk-KFDC5QSQ.mjs → chunk-MX6ITPIG.mjs} +2 -2
  38. package/dist/lib/node-esm/{chunk-YQMLJUYN.mjs → chunk-OZD32CQN.mjs} +165 -162
  39. package/dist/lib/node-esm/chunk-OZD32CQN.mjs.map +7 -0
  40. package/dist/lib/node-esm/index.mjs +6 -6
  41. package/dist/lib/node-esm/{intent-dispatcher-MYETZPUW.mjs → intent-dispatcher-FF5HNHPQ.mjs} +2 -2
  42. package/dist/lib/node-esm/{intent-resolver-BW5I7SOS.mjs → intent-resolver-QWIKXIGI.mjs} +3 -3
  43. package/dist/lib/node-esm/meta.json +1 -1
  44. package/dist/lib/node-esm/{store-MKIES4HL.mjs → store-3NM6AWB4.mjs} +2 -2
  45. package/dist/lib/node-esm/testing/index.mjs +7 -3
  46. package/dist/lib/node-esm/testing/index.mjs.map +3 -3
  47. package/dist/lib/node-esm/worker.mjs +1 -1
  48. package/dist/types/src/App.d.ts.map +1 -1
  49. package/dist/types/src/common/capabilities.d.ts +2 -2
  50. package/dist/types/src/common/capabilities.d.ts.map +1 -1
  51. package/dist/types/src/common/collaboration.d.ts +7 -7
  52. package/dist/types/src/common/collaboration.d.ts.map +1 -1
  53. package/dist/types/src/common/events.d.ts.map +1 -1
  54. package/dist/types/src/common/file.d.ts +7 -7
  55. package/dist/types/src/common/file.d.ts.map +1 -1
  56. package/dist/types/src/common/layout.d.ts +163 -162
  57. package/dist/types/src/common/layout.d.ts.map +1 -1
  58. package/dist/types/src/common/surface.d.ts.map +1 -1
  59. package/dist/types/src/common/translations.d.ts +7 -7
  60. package/dist/types/src/common/translations.d.ts.map +1 -1
  61. package/dist/types/src/core/capabilities.d.ts.map +1 -1
  62. package/dist/types/src/core/events.d.ts.map +1 -1
  63. package/dist/types/src/core/plugin.d.ts.map +1 -1
  64. package/dist/types/src/helpers.d.ts.map +1 -1
  65. package/dist/types/src/playground/generator/generator.d.ts.map +1 -1
  66. package/dist/types/src/playground/logger/schema.d.ts +6 -6
  67. package/dist/types/src/playground/logger/schema.d.ts.map +1 -1
  68. package/dist/types/src/plugin-intent/actions.d.ts +14 -14
  69. package/dist/types/src/plugin-intent/actions.d.ts.map +1 -1
  70. package/dist/types/src/plugin-intent/intent-dispatcher.d.ts.map +1 -1
  71. package/dist/types/src/plugin-intent/intent.d.ts +12 -12
  72. package/dist/types/src/plugin-intent/intent.d.ts.map +1 -1
  73. package/dist/types/src/plugin-settings/actions.d.ts +10 -10
  74. package/dist/types/src/plugin-settings/actions.d.ts.map +1 -1
  75. package/dist/types/src/plugin-settings/app-graph-builder.d.ts.map +1 -1
  76. package/dist/types/src/plugin-settings/store.d.ts.map +1 -1
  77. package/dist/types/src/react/IntentContext.d.ts.map +1 -1
  78. package/dist/types/src/react/Surface.d.ts.map +1 -1
  79. package/dist/types/src/react/useCapabilities.d.ts.map +1 -1
  80. package/dist/types/src/react/useIntentResolver.d.ts.map +1 -1
  81. package/dist/types/src/testing/withPluginManager.d.ts +5 -2
  82. package/dist/types/src/testing/withPluginManager.d.ts.map +1 -1
  83. package/dist/types/src/testing/withPluginManager.stories.d.ts.map +1 -1
  84. package/dist/types/tsconfig.tsbuildinfo +1 -1
  85. package/package.json +19 -19
  86. package/src/common/capabilities.ts +2 -2
  87. package/src/common/collaboration.ts +7 -6
  88. package/src/common/file.ts +7 -7
  89. package/src/common/layout.ts +148 -135
  90. package/src/common/translations.ts +7 -7
  91. package/src/playground/generator/generator.ts +4 -4
  92. package/src/playground/logger/schema.ts +5 -5
  93. package/src/playground/playground.stories.tsx +1 -1
  94. package/src/plugin-intent/actions.ts +9 -9
  95. package/src/plugin-intent/intent-dispatcher.test.ts +23 -23
  96. package/src/plugin-intent/intent.ts +20 -11
  97. package/src/plugin-settings/actions.ts +8 -8
  98. package/src/plugin-settings/app-graph-builder.ts +3 -1
  99. package/src/react/Surface.stories.tsx +1 -1
  100. package/src/testing/withPluginManager.stories.tsx +0 -1
  101. package/src/testing/withPluginManager.tsx +11 -3
  102. package/typedoc/classes/CollaborationActions.InsertContent.html +241 -202
  103. package/typedoc/classes/ErrorBoundary.html +6 -6
  104. package/typedoc/classes/IntentAction.ShowUndo.html +125 -125
  105. package/typedoc/classes/IntentAction.Track.html +239 -239
  106. package/typedoc/classes/LayoutAction.AddToast.html +163 -163
  107. package/typedoc/classes/LayoutAction.Close.html +352 -352
  108. package/typedoc/classes/LayoutAction.Expose.html +238 -238
  109. package/typedoc/classes/LayoutAction.Open.html +904 -709
  110. package/typedoc/classes/LayoutAction.RevertWorkspace.html +241 -241
  111. package/typedoc/classes/LayoutAction.ScrollIntoView.html +280 -280
  112. package/typedoc/classes/LayoutAction.Set.html +436 -358
  113. package/typedoc/classes/LayoutAction.SetLayoutMode.html +469 -391
  114. package/typedoc/classes/LayoutAction.SwitchWorkspace.html +238 -238
  115. package/typedoc/classes/LayoutAction.UpdateComplementary.html +358 -358
  116. package/typedoc/classes/LayoutAction.UpdateDialog.html +553 -475
  117. package/typedoc/classes/LayoutAction.UpdateLayout.html +281 -281
  118. package/typedoc/classes/LayoutAction.UpdatePopover.html +826 -826
  119. package/typedoc/classes/LayoutAction.UpdateSidebar.html +397 -319
  120. package/typedoc/classes/Plugin.html +3 -3
  121. package/typedoc/classes/PluginManager.html +16 -16
  122. package/typedoc/classes/PluginModule.html +8 -8
  123. package/typedoc/classes/PluginsContext.html +8 -8
  124. package/typedoc/classes/SettingsAction.Open.html +199 -199
  125. package/typedoc/classes/SettingsAction.OpenPluginRegistry.html +124 -124
  126. package/typedoc/functions/Events.createStateEvent.html +2 -2
  127. package/typedoc/functions/IntentPlugin.html +1 -1
  128. package/typedoc/functions/SettingsPlugin.html +1 -1
  129. package/typedoc/functions/allOf.html +2 -2
  130. package/typedoc/functions/chain.html +2 -2
  131. package/typedoc/functions/contributes.html +2 -2
  132. package/typedoc/functions/createApp.html +2 -2
  133. package/typedoc/functions/createDispatcher.html +2 -2
  134. package/typedoc/functions/createIntent.html +2 -2
  135. package/typedoc/functions/createResolver.html +2 -2
  136. package/typedoc/functions/createSurface.html +2 -2
  137. package/typedoc/functions/defineCapability.html +2 -2
  138. package/typedoc/functions/defineEvent.html +2 -2
  139. package/typedoc/functions/defineModule.html +2 -2
  140. package/typedoc/functions/definePlugin.html +2 -2
  141. package/typedoc/functions/eventKey.html +2 -2
  142. package/typedoc/functions/getEvents.html +2 -2
  143. package/typedoc/functions/isAllOf.html +2 -2
  144. package/typedoc/functions/isOneOf.html +2 -2
  145. package/typedoc/functions/isSurfaceAvailable.html +2 -2
  146. package/typedoc/functions/lazy.html +2 -2
  147. package/typedoc/functions/oneOf.html +2 -2
  148. package/typedoc/functions/useAppGraph.html +1 -1
  149. package/typedoc/functions/useCapabilities.html +2 -2
  150. package/typedoc/functions/useCapability.html +2 -2
  151. package/typedoc/functions/useIntentDispatcher.html +1 -1
  152. package/typedoc/functions/useIntentResolver.html +1 -1
  153. package/typedoc/functions/useLayout.html +1 -1
  154. package/typedoc/functions/usePluginManager.html +2 -2
  155. package/typedoc/hierarchy.html +1 -1
  156. package/typedoc/index.html +2 -2
  157. package/typedoc/interfaces/LayoutAction.Toast.html +2 -2
  158. package/typedoc/modules/Capabilities.html +1 -1
  159. package/typedoc/modules/CollaborationActions.html +1 -1
  160. package/typedoc/modules/Events.html +1 -1
  161. package/typedoc/modules/IntentAction.html +1 -1
  162. package/typedoc/modules/LayoutAction.html +2 -2
  163. package/typedoc/modules/SettingsAction.html +1 -1
  164. package/typedoc/modules.html +1 -1
  165. package/typedoc/types/ActivationEvent.html +3 -3
  166. package/typedoc/types/ActivationEvents.html +2 -2
  167. package/typedoc/types/AnyCapability.html +1 -1
  168. package/typedoc/types/AnyIntent.html +1 -1
  169. package/typedoc/types/AnyIntentChain.html +1 -1
  170. package/typedoc/types/AnyIntentEffectResult.html +1 -1
  171. package/typedoc/types/AnyIntentResolver.html +1 -1
  172. package/typedoc/types/AnyIntentResult.html +1 -1
  173. package/typedoc/types/Capabilities.FileUploader.html +1 -1
  174. package/typedoc/types/Capabilities.IntentResolver.html +1 -1
  175. package/typedoc/types/Capabilities.Layout.html +1 -1
  176. package/typedoc/types/Capabilities.Metadata.html +1 -1
  177. package/typedoc/types/Capabilities.ReactContext.html +1 -1
  178. package/typedoc/types/Capabilities.ReactRoot.html +1 -1
  179. package/typedoc/types/Capabilities.ReactSurface.html +1 -1
  180. package/typedoc/types/Capabilities.Settings.html +2 -2
  181. package/typedoc/types/Capability.html +5 -5
  182. package/typedoc/types/CreateAppOptions.html +2 -2
  183. package/typedoc/types/FileInfo.html +1 -1
  184. package/typedoc/types/Intent.html +7 -7
  185. package/typedoc/types/IntentChain.html +3 -3
  186. package/typedoc/types/IntentContext.html +2 -2
  187. package/typedoc/types/IntentData.html +1 -1
  188. package/typedoc/types/IntentDispatcher.html +2 -2
  189. package/typedoc/types/IntentDispatcherResult.html +2 -2
  190. package/typedoc/types/IntentEffectDefinition.html +2 -2
  191. package/typedoc/types/IntentEffectResult.html +6 -6
  192. package/typedoc/types/IntentParams.html +2 -2
  193. package/typedoc/types/IntentResolver.html +2 -2
  194. package/typedoc/types/IntentResultData.html +1 -1
  195. package/typedoc/types/IntentSchema.html +1 -1
  196. package/typedoc/types/IntentUndo.html +2 -2
  197. package/typedoc/types/InterfaceDef.html +3 -3
  198. package/typedoc/types/Label.html +1 -1
  199. package/typedoc/types/NodeSerializer.html +3 -3
  200. package/typedoc/types/PluginManagerOptions.html +2 -2
  201. package/typedoc/types/PluginMeta.html +9 -9
  202. package/typedoc/types/PromiseIntentDispatcher.html +2 -2
  203. package/typedoc/types/PromiseIntentUndo.html +2 -2
  204. package/typedoc/types/Resource.html +1 -1
  205. package/typedoc/types/ResourceKey.html +1 -1
  206. package/typedoc/types/ResourceLanguage.html +1 -1
  207. package/typedoc/types/SerializedNode.html +2 -2
  208. package/typedoc/types/SurfaceComponent.html +2 -2
  209. package/typedoc/types/SurfaceDefinition.html +2 -2
  210. package/typedoc/types/SurfaceProps.html +2 -2
  211. package/typedoc/variables/Capabilities.AppGraph.html +1 -1
  212. package/typedoc/variables/Capabilities.AppGraphBuilder.html +1 -1
  213. package/typedoc/variables/Capabilities.AppGraphSerializer.html +1 -1
  214. package/typedoc/variables/Capabilities.ArtifactDefinition.html +1 -1
  215. package/typedoc/variables/Capabilities.FileUploader.html +1 -1
  216. package/typedoc/variables/Capabilities.IntentDispatcher.html +1 -1
  217. package/typedoc/variables/Capabilities.IntentResolver.html +1 -1
  218. package/typedoc/variables/Capabilities.Layout.html +1 -1
  219. package/typedoc/variables/Capabilities.Metadata.html +1 -1
  220. package/typedoc/variables/Capabilities.Null.html +1 -1
  221. package/typedoc/variables/Capabilities.PluginManager.html +1 -1
  222. package/typedoc/variables/Capabilities.ReactContext.html +1 -1
  223. package/typedoc/variables/Capabilities.ReactRoot.html +1 -1
  224. package/typedoc/variables/Capabilities.ReactSurface.html +1 -1
  225. package/typedoc/variables/Capabilities.Settings.html +1 -1
  226. package/typedoc/variables/Capabilities.SettingsStore.html +1 -1
  227. package/typedoc/variables/Capabilities.Tools.html +1 -1
  228. package/typedoc/variables/Capabilities.Translations.html +1 -1
  229. package/typedoc/variables/Events.AppGraphReady.html +2 -2
  230. package/typedoc/variables/Events.DispatcherReady.html +2 -2
  231. package/typedoc/variables/Events.LayoutReady.html +1 -1
  232. package/typedoc/variables/Events.SettingsReady.html +2 -2
  233. package/typedoc/variables/Events.SetupAppGraph.html +2 -2
  234. package/typedoc/variables/Events.SetupArtifactDefinition.html +2 -2
  235. package/typedoc/variables/Events.SetupIntentResolver.html +2 -2
  236. package/typedoc/variables/Events.SetupMetadata.html +2 -2
  237. package/typedoc/variables/Events.SetupReactSurface.html +2 -2
  238. package/typedoc/variables/Events.SetupSettings.html +2 -2
  239. package/typedoc/variables/Events.SetupTranslations.html +2 -2
  240. package/typedoc/variables/Events.Startup.html +2 -2
  241. package/typedoc/variables/FileInfoSchema.html +1 -1
  242. package/typedoc/variables/INTENT_ACTION.html +1 -1
  243. package/typedoc/variables/INTENT_PLUGIN.html +1 -1
  244. package/typedoc/variables/LAYOUT_ACTION.html +1 -1
  245. package/typedoc/variables/LAYOUT_PLUGIN.html +1 -1
  246. package/typedoc/variables/Label.html +1 -1
  247. package/typedoc/variables/LayoutAction.Toast.html +1 -1
  248. package/typedoc/variables/LayoutAction.UPDATE_LAYOUT.html +1 -1
  249. package/typedoc/variables/PluginManagerProvider.html +2 -2
  250. package/typedoc/variables/Resource.html +2 -2
  251. package/typedoc/variables/ResourceKey.html +1 -1
  252. package/typedoc/variables/ResourceLanguage.html +1 -1
  253. package/typedoc/variables/SETTINGS_ACTION.html +1 -1
  254. package/typedoc/variables/SETTINGS_ID.html +1 -1
  255. package/typedoc/variables/SETTINGS_KEY.html +1 -1
  256. package/typedoc/variables/SETTINGS_PLUGIN.html +1 -1
  257. package/typedoc/variables/Surface.html +2 -2
  258. package/typedoc/variables/defaultFileTypes.html +1 -1
  259. package/dist/lib/browser/app-graph-builder-RHU5WUGJ.mjs.map +0 -7
  260. package/dist/lib/browser/chunk-5WHZ3ORL.mjs.map +0 -7
  261. package/dist/lib/browser/chunk-SFPT4Z2C.mjs.map +0 -7
  262. package/dist/lib/node/app-graph-builder-QGHI2J2R.cjs.map +0 -7
  263. package/dist/lib/node/chunk-EGY2ANJA.cjs.map +0 -7
  264. package/dist/lib/node/chunk-JUSEAFDU.cjs.map +0 -7
  265. package/dist/lib/node-esm/app-graph-builder-45FJO6JA.mjs.map +0 -7
  266. package/dist/lib/node-esm/chunk-PHOUQACM.mjs.map +0 -7
  267. package/dist/lib/node-esm/chunk-YQMLJUYN.mjs.map +0 -7
  268. /package/dist/lib/browser/{chunk-GYFO2C4Q.mjs.map → chunk-A7XUUTJN.mjs.map} +0 -0
  269. /package/dist/lib/browser/{intent-dispatcher-T6YETUE7.mjs.map → intent-dispatcher-SICNXT2G.mjs.map} +0 -0
  270. /package/dist/lib/browser/{intent-resolver-UQFD7VBJ.mjs.map → intent-resolver-2K6LNSUE.mjs.map} +0 -0
  271. /package/dist/lib/browser/{store-NP42FCZO.mjs.map → store-P4XZF26P.mjs.map} +0 -0
  272. /package/dist/lib/node/{chunk-PIFNLI5K.cjs.map → chunk-MTROSTO7.cjs.map} +0 -0
  273. /package/dist/lib/node/{intent-resolver-NALI2KSH.cjs.map → intent-resolver-ZP6S7QKG.cjs.map} +0 -0
  274. /package/dist/lib/node/{store-I7KM7GGP.cjs.map → store-MALHSPHZ.cjs.map} +0 -0
  275. /package/dist/lib/node-esm/{chunk-KFDC5QSQ.mjs.map → chunk-MX6ITPIG.mjs.map} +0 -0
  276. /package/dist/lib/node-esm/{intent-dispatcher-MYETZPUW.mjs.map → intent-dispatcher-FF5HNHPQ.mjs.map} +0 -0
  277. /package/dist/lib/node-esm/{intent-resolver-BW5I7SOS.mjs.map → intent-resolver-QWIKXIGI.mjs.map} +0 -0
  278. /package/dist/lib/node-esm/{store-MKIES4HL.mjs.map → store-3NM6AWB4.mjs.map} +0 -0
@@ -2,20 +2,24 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import { Schema as S } from 'effect';
5
+ import { Schema } from 'effect';
6
6
 
7
7
  export type IntentParams = {
8
- readonly input: S.Schema.All;
9
- readonly output: S.Schema.All;
8
+ readonly input: Schema.Schema.All;
9
+ readonly output: Schema.Schema.All;
10
10
  };
11
11
 
12
12
  export type IntentData<Fields extends IntentParams> =
13
- S.Schema.Type<S.Struct<Fields>> extends { readonly input: any } ? S.Schema.Type<S.Struct<Fields>>['input'] : any;
13
+ Schema.Schema.Type<Schema.Struct<Fields>> extends { readonly input: any }
14
+ ? Schema.Schema.Type<Schema.Struct<Fields>>['input']
15
+ : any;
14
16
 
15
17
  export type IntentResultData<Fields extends IntentParams> =
16
- S.Schema.Type<S.Struct<Fields>> extends { readonly output: any } ? S.Schema.Type<S.Struct<Fields>>['output'] : any;
18
+ Schema.Schema.Type<Schema.Struct<Fields>> extends { readonly output: any }
19
+ ? Schema.Schema.Type<Schema.Struct<Fields>>['output']
20
+ : any;
17
21
 
18
- export type IntentSchema<Tag extends string, Fields extends IntentParams> = S.TaggedClass<any, Tag, Fields>;
22
+ export type IntentSchema<Tag extends string, Fields extends IntentParams> = Schema.TaggedClass<any, Tag, Fields>;
19
23
 
20
24
  /**
21
25
  * An intent is an abstract description of an operation to be performed.
@@ -80,7 +84,7 @@ export const createIntent = <Tag extends string, Fields extends IntentParams>(
80
84
  ): IntentChain<Tag, Tag, Fields, Fields> => {
81
85
  // The output of validateSync breaks proxy objects so this is just used for validation.
82
86
  // TODO(wittjosiah): Is there a better way to make theses types align?
83
- const _ = S.validateSync(schema.fields.input as S.Schema<any, any, unknown>)(data);
87
+ const _ = Schema.validateSync(schema.fields.input as Schema.Schema<any, any, unknown>)(data);
84
88
  const intent = {
85
89
  ...params,
86
90
  _schema: schema,
@@ -139,8 +143,13 @@ export const chain =
139
143
 
140
144
  // NOTE: Should maintain compatibility with `i18next` (and @dxos/react-ui).
141
145
  // TODO(wittjosiah): Making this immutable breaks type compatibility.
142
- export const Label = S.Union(
143
- S.String,
144
- S.mutable(S.Tuple(S.String, S.mutable(S.Struct({ ns: S.String, count: S.optional(S.Number) })))),
146
+ export const Label = Schema.Union(
147
+ Schema.String,
148
+ Schema.mutable(
149
+ Schema.Tuple(
150
+ Schema.String,
151
+ Schema.mutable(Schema.Struct({ ns: Schema.String, count: Schema.optional(Schema.Number) })),
152
+ ),
153
+ ),
145
154
  );
146
- export type Label = S.Schema.Type<typeof Label>;
155
+ export type Label = Schema.Schema.Type<typeof Label>;
@@ -2,7 +2,7 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import { Schema as S } from 'effect';
5
+ import { Schema } from 'effect';
6
6
 
7
7
  export const SETTINGS_PLUGIN = 'dxos.org/plugin/settings';
8
8
  export const SETTINGS_ACTION = `${SETTINGS_PLUGIN}/action`;
@@ -12,18 +12,18 @@ export const SETTINGS_ID = '!dxos:settings';
12
12
  export const SETTINGS_KEY = 'settings';
13
13
 
14
14
  export namespace SettingsAction {
15
- export class Open extends S.TaggedClass<Open>()(`${SETTINGS_ACTION}/open`, {
16
- input: S.Struct({
17
- plugin: S.optional(S.String),
15
+ export class Open extends Schema.TaggedClass<Open>()(`${SETTINGS_ACTION}/open`, {
16
+ input: Schema.Struct({
17
+ plugin: Schema.optional(Schema.String),
18
18
  }),
19
- output: S.Void,
19
+ output: Schema.Void,
20
20
  }) {}
21
21
 
22
- export class OpenPluginRegistry extends S.TaggedClass<OpenPluginRegistry>()(
22
+ export class OpenPluginRegistry extends Schema.TaggedClass<OpenPluginRegistry>()(
23
23
  `${SETTINGS_ACTION}/open-plugin-registry`,
24
24
  {
25
- input: S.Void,
26
- output: S.Void,
25
+ input: Schema.Void,
26
+ output: Schema.Void,
27
27
  },
28
28
  ) {}
29
29
  }
@@ -26,6 +26,7 @@ export default (context: PluginsContext) =>
26
26
  properties: {
27
27
  label: ['open settings label', { ns: SETTINGS_PLUGIN }],
28
28
  icon: 'ph--gear--regular',
29
+ disposition: 'menu',
29
30
  keyBinding: {
30
31
  macos: 'meta+,',
31
32
  windows: 'alt+,',
@@ -81,11 +82,12 @@ export default (context: PluginsContext) =>
81
82
 
82
83
  {
83
84
  id: `${SETTINGS_KEY}:custom-plugins`,
84
- type: 'collection',
85
+ type: 'category',
85
86
  properties: {
86
87
  label: ['custom plugins label', { ns: SETTINGS_PLUGIN }],
87
88
  icon: 'ph--squares-four--regular',
88
89
  role: 'branch',
90
+ disposition: 'collection',
89
91
  },
90
92
  },
91
93
  ];
@@ -87,7 +87,7 @@ export default {
87
87
  );
88
88
  },
89
89
  // NOTE: Intentionally not using withPluginManager to try to reduce surface area of the story.
90
- decorators: [withTheme, withLayout({ tooltips: true })],
90
+ decorators: [withTheme, withLayout()],
91
91
  args: {
92
92
  manager: setupPluginManager(),
93
93
  },
@@ -1,6 +1,5 @@
1
1
  //
2
2
  // Copyright 2025 DXOS.org
3
-
4
3
  //
5
4
 
6
5
  import React from 'react';
@@ -16,8 +16,16 @@ import {
16
16
  defineModule,
17
17
  definePlugin,
18
18
  PluginManager,
19
+ type PluginsContext,
19
20
  } from '../core';
20
21
 
22
+ // TODO(burdon): Factor out (use consistently in plugin framework?)
23
+ export type Provider<C, R> = (context: C) => R;
24
+ export type ProviderOrValue<C, R> = Provider<C, R> | R;
25
+ export const getValue = <C, R>(providerOrValue: ProviderOrValue<C, R>, context: C): R => {
26
+ return typeof providerOrValue === 'function' ? (providerOrValue as Provider<C, R>)(context) : providerOrValue;
27
+ };
28
+
21
29
  /**
22
30
  * @internal
23
31
  */
@@ -26,7 +34,7 @@ export const setupPluginManager = ({
26
34
  plugins = [],
27
35
  core = plugins.map(({ meta }) => meta.id),
28
36
  ...options
29
- }: CreateAppOptions & { capabilities?: AnyCapability[] } = {}) => {
37
+ }: CreateAppOptions & Pick<WithPluginManagerOptions, 'capabilities'> = {}) => {
30
38
  const pluginManager = new PluginManager({
31
39
  pluginLoader: () => raise(new Error('Not implemented')),
32
40
  plugins: [StoryPlugin(), ...plugins],
@@ -35,7 +43,7 @@ export const setupPluginManager = ({
35
43
  });
36
44
 
37
45
  if (capabilities) {
38
- capabilities.forEach((capability) => {
46
+ getValue(capabilities, pluginManager.context).forEach((capability) => {
39
47
  pluginManager.context.contributeCapability({
40
48
  interface: capability.interface,
41
49
  implementation: capability.implementation,
@@ -48,7 +56,7 @@ export const setupPluginManager = ({
48
56
  };
49
57
 
50
58
  export type WithPluginManagerOptions = CreateAppOptions & {
51
- capabilities?: AnyCapability[];
59
+ capabilities?: ProviderOrValue<PluginsContext, AnyCapability[]>;
52
60
  fireEvents?: (ActivationEvent | string)[];
53
61
  };
54
62