@dxos/plugin-testing 0.11.0 → 0.12.0-next-bbabc02363f18d7643ea4160e3a7a7809870fd0d

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 (117) hide show
  1. package/dist/lib/{chunk-types.mjs → StorybookCapabilities.mjs} +4 -4
  2. package/dist/lib/StorybookCapabilities.mjs.map +1 -0
  3. package/dist/lib/StorybookPlugin.mjs +3 -14
  4. package/dist/lib/StorybookPlugin.mjs.map +1 -1
  5. package/dist/lib/capabilities.mjs +12 -4
  6. package/dist/lib/capabilities.mjs.map +1 -1
  7. package/dist/lib/chunk-add-toast.mjs +2 -2
  8. package/dist/lib/chunk-add-toast.mjs.map +1 -1
  9. package/dist/lib/chunk-close.mjs +2 -2
  10. package/dist/lib/chunk-close.mjs.map +1 -1
  11. package/dist/lib/chunk-meta.mjs +1 -1
  12. package/dist/lib/chunk-meta.mjs.map +1 -1
  13. package/dist/lib/chunk-open.mjs +2 -2
  14. package/dist/lib/chunk-open.mjs.map +1 -1
  15. package/dist/lib/chunk-operation-handler.mjs +3 -2
  16. package/dist/lib/chunk-operation-handler.mjs.map +1 -1
  17. package/dist/lib/chunk-react-context.mjs +13 -0
  18. package/dist/lib/chunk-react-context.mjs.map +1 -0
  19. package/dist/lib/chunk-scroll-into-view.mjs +2 -2
  20. package/dist/lib/chunk-scroll-into-view.mjs.map +1 -1
  21. package/dist/lib/chunk-state.mjs +4 -4
  22. package/dist/lib/chunk-state.mjs.map +1 -1
  23. package/dist/lib/chunk-switch-workspace.mjs +2 -2
  24. package/dist/lib/chunk-switch-workspace.mjs.map +1 -1
  25. package/dist/lib/chunk-update-complementary.mjs +2 -2
  26. package/dist/lib/chunk-update-complementary.mjs.map +1 -1
  27. package/dist/lib/chunk-update-dialog.mjs +2 -2
  28. package/dist/lib/chunk-update-dialog.mjs.map +1 -1
  29. package/dist/lib/chunk-update-popover.mjs +2 -2
  30. package/dist/lib/chunk-update-popover.mjs.map +1 -1
  31. package/dist/lib/chunk-update-sidebar.mjs +2 -2
  32. package/dist/lib/chunk-update-sidebar.mjs.map +1 -1
  33. package/dist/lib/chunk-update-state.mjs +3 -2
  34. package/dist/lib/chunk-update-state.mjs.map +1 -1
  35. package/dist/lib/components.mjs +2 -2
  36. package/dist/lib/components.mjs.map +1 -1
  37. package/dist/lib/core.mjs.map +1 -1
  38. package/dist/lib/harness.mjs +0 -2
  39. package/dist/lib/harness.mjs.map +1 -1
  40. package/dist/lib/index.mjs +1 -1
  41. package/dist/lib/operations.mjs +14 -2
  42. package/dist/lib/operations.mjs.map +1 -1
  43. package/dist/lib/plugin.mjs +2 -3
  44. package/dist/lib/plugin.mjs.map +1 -1
  45. package/dist/types/src/StorybookPlugin.d.ts +2 -2
  46. package/dist/types/src/StorybookPlugin.d.ts.map +1 -1
  47. package/dist/types/src/capabilities/index.d.ts +7 -6
  48. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  49. package/dist/types/src/capabilities/operation-handler.d.ts +2 -3
  50. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -1
  51. package/dist/types/src/capabilities/react-context.d.ts +5 -0
  52. package/dist/types/src/capabilities/react-context.d.ts.map +1 -0
  53. package/dist/types/src/capabilities/state.d.ts +3 -3
  54. package/dist/types/src/capabilities/state.d.ts.map +1 -1
  55. package/dist/types/src/components/Layout/Layout.d.ts.map +1 -1
  56. package/dist/types/src/core.d.ts +1 -1
  57. package/dist/types/src/core.d.ts.map +1 -1
  58. package/dist/types/src/harness.d.ts +1 -1
  59. package/dist/types/src/harness.d.ts.map +1 -1
  60. package/dist/types/src/index.d.ts +1 -1
  61. package/dist/types/src/index.d.ts.map +1 -1
  62. package/dist/types/src/operations/add-toast.d.ts +2 -2
  63. package/dist/types/src/operations/add-toast.d.ts.map +1 -1
  64. package/dist/types/src/operations/close.d.ts +2 -2
  65. package/dist/types/src/operations/close.d.ts.map +1 -1
  66. package/dist/types/src/operations/index.d.ts +1 -1
  67. package/dist/types/src/operations/index.d.ts.map +1 -1
  68. package/dist/types/src/operations/open.d.ts +2 -2
  69. package/dist/types/src/operations/open.d.ts.map +1 -1
  70. package/dist/types/src/operations/scroll-into-view.d.ts +2 -2
  71. package/dist/types/src/operations/scroll-into-view.d.ts.map +1 -1
  72. package/dist/types/src/operations/switch-workspace.d.ts +2 -2
  73. package/dist/types/src/operations/switch-workspace.d.ts.map +1 -1
  74. package/dist/types/src/operations/update-complementary.d.ts +2 -2
  75. package/dist/types/src/operations/update-complementary.d.ts.map +1 -1
  76. package/dist/types/src/operations/update-dialog.d.ts +2 -2
  77. package/dist/types/src/operations/update-dialog.d.ts.map +1 -1
  78. package/dist/types/src/operations/update-popover.d.ts +2 -2
  79. package/dist/types/src/operations/update-popover.d.ts.map +1 -1
  80. package/dist/types/src/operations/update-sidebar.d.ts +2 -2
  81. package/dist/types/src/operations/update-sidebar.d.ts.map +1 -1
  82. package/dist/types/src/operations/update-state.d.ts +3 -3
  83. package/dist/types/src/operations/update-state.d.ts.map +1 -1
  84. package/dist/types/src/plugin.d.ts +1 -2
  85. package/dist/types/src/plugin.d.ts.map +1 -1
  86. package/dist/types/src/types/StorybookCapabilities.d.ts +3 -3
  87. package/dist/types/src/types/StorybookCapabilities.d.ts.map +1 -1
  88. package/dist/types/tsconfig.tsbuildinfo +1 -1
  89. package/package.json +29 -23
  90. package/src/StorybookPlugin.ts +7 -25
  91. package/src/capabilities/index.ts +13 -6
  92. package/src/capabilities/operation-handler.ts +4 -4
  93. package/src/capabilities/react-context.tsx +19 -0
  94. package/src/capabilities/state.tsx +5 -5
  95. package/src/components/Layout/Layout.tsx +3 -2
  96. package/src/core.ts +2 -1
  97. package/src/harness.ts +2 -5
  98. package/src/index.ts +1 -1
  99. package/src/meta.ts +1 -1
  100. package/src/operations/add-toast.ts +2 -2
  101. package/src/operations/close.ts +2 -2
  102. package/src/operations/index.ts +14 -12
  103. package/src/operations/open.ts +2 -2
  104. package/src/operations/scroll-into-view.ts +2 -2
  105. package/src/operations/switch-workspace.ts +2 -2
  106. package/src/operations/update-complementary.ts +2 -2
  107. package/src/operations/update-dialog.ts +2 -2
  108. package/src/operations/update-popover.ts +3 -3
  109. package/src/operations/update-sidebar.ts +2 -2
  110. package/src/operations/update-state.ts +3 -2
  111. package/src/plugin.ts +1 -3
  112. package/src/types/StorybookCapabilities.ts +3 -3
  113. package/dist/lib/chunk-types.mjs.map +0 -1
  114. package/dist/lib/types.mjs +0 -2
  115. package/dist/types/src/types/index.d.ts +0 -2
  116. package/dist/types/src/types/index.d.ts.map +0 -1
  117. package/src/types/index.ts +0 -5
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dxos/plugin-testing",
3
- "version": "0.11.0",
3
+ "version": "0.12.0-next-bbabc02363f18d7643ea4160e3a7a7809870fd0d",
4
4
  "description": "Plugin testing utils",
5
5
  "homepage": "https://dxos.org",
6
6
  "bugs": "https://github.com/dxos/dxos/issues",
@@ -37,11 +37,6 @@
37
37
  "source": "./src/StorybookPlugin.ts",
38
38
  "types": "./dist/types/src/StorybookPlugin.d.ts",
39
39
  "default": "./dist/lib/StorybookPlugin.mjs"
40
- },
41
- "#types": {
42
- "source": "./src/types/index.ts",
43
- "types": "./dist/types/src/types/index.d.ts",
44
- "default": "./dist/lib/types.mjs"
45
40
  }
46
41
  },
47
42
  "exports": {
@@ -59,9 +54,22 @@
59
54
  "source": "./src/plugin.ts",
60
55
  "types": "./dist/types/src/plugin.d.ts",
61
56
  "import": "./dist/lib/plugin.mjs"
62
- }
57
+ },
58
+ "./StorybookCapabilities": {
59
+ "source": "./src/types/StorybookCapabilities.ts",
60
+ "types": "./dist/types/src/types/StorybookCapabilities.d.ts",
61
+ "import": "./dist/lib/StorybookCapabilities.mjs"
62
+ },
63
+ "./package.json": "./package.json"
63
64
  },
64
65
  "types": "dist/types/src/index.d.ts",
66
+ "typesVersions": {
67
+ "*": {
68
+ "StorybookCapabilities": [
69
+ "dist/types/src/types/StorybookCapabilities.d.ts"
70
+ ]
71
+ }
72
+ },
65
73
  "files": [
66
74
  "dist",
67
75
  "dx.config.ts",
@@ -70,18 +78,16 @@
70
78
  "dependencies": {
71
79
  "@effect-atom/atom": "^0.5.3",
72
80
  "@effect-atom/atom-react": "^0.5.0",
73
- "@dxos/app-framework": "0.11.0",
74
- "@dxos/compute": "0.11.0",
75
- "@dxos/keys": "0.11.0",
76
- "@dxos/log": "0.11.0",
77
- "@dxos/plugin-attention": "0.11.0",
78
- "@dxos/plugin-graph": "0.11.0",
79
- "@dxos/plugin-settings": "0.11.0",
80
- "@dxos/plugin-theme": "0.11.0",
81
- "@dxos/react-ui-dnd": "0.11.0",
82
- "@dxos/react-ui-mosaic": "0.11.0",
83
- "@dxos/util": "0.11.0",
84
- "@dxos/app-toolkit": "0.11.0"
81
+ "@dxos/app-framework": "1.0.0-next-bbabc02363f18d7643ea4160e3a7a7809870fd0d",
82
+ "@dxos/app-toolkit": "1.0.0-next-bbabc02363f18d7643ea4160e3a7a7809870fd0d",
83
+ "@dxos/compute": "1.0.0-next-bbabc02363f18d7643ea4160e3a7a7809870fd0d",
84
+ "@dxos/log": "1.0.0-next-bbabc02363f18d7643ea4160e3a7a7809870fd0d",
85
+ "@dxos/plugin-attention": "0.12.0-next-bbabc02363f18d7643ea4160e3a7a7809870fd0d",
86
+ "@dxos/plugin-graph": "0.12.0-next-bbabc02363f18d7643ea4160e3a7a7809870fd0d",
87
+ "@dxos/plugin-settings": "0.12.0-next-bbabc02363f18d7643ea4160e3a7a7809870fd0d",
88
+ "@dxos/react-ui-dnd": "1.0.0-next-bbabc02363f18d7643ea4160e3a7a7809870fd0d",
89
+ "@dxos/plugin-theme": "0.12.0-next-bbabc02363f18d7643ea4160e3a7a7809870fd0d",
90
+ "@dxos/util": "1.0.0-next-bbabc02363f18d7643ea4160e3a7a7809870fd0d"
85
91
  },
86
92
  "devDependencies": {
87
93
  "@types/react": "~19.2.17",
@@ -90,15 +96,15 @@
90
96
  "react": "~19.2.7",
91
97
  "react-dom": "~19.2.7",
92
98
  "vite": "^8.1.4",
93
- "@dxos/react-ui": "0.11.0",
94
- "@dxos/ui-theme": "0.11.0"
99
+ "@dxos/ui-theme": "1.0.0-next-bbabc02363f18d7643ea4160e3a7a7809870fd0d",
100
+ "@dxos/react-ui": "1.0.0-next-bbabc02363f18d7643ea4160e3a7a7809870fd0d"
95
101
  },
96
102
  "peerDependencies": {
97
103
  "effect": "3.21.4",
98
104
  "react": "~19.2.7",
99
105
  "react-dom": "~19.2.7",
100
- "@dxos/react-ui": "^0.11.0",
101
- "@dxos/ui-theme": "^0.11.0"
106
+ "@dxos/react-ui": "^1.0.0-next-bbabc02363f18d7643ea4160e3a7a7809870fd0d",
107
+ "@dxos/ui-theme": "^1.0.0-next-bbabc02363f18d7643ea4160e3a7a7809870fd0d"
102
108
  },
103
109
  "publishConfig": {
104
110
  "access": "public"
@@ -2,39 +2,21 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import * as Effect from 'effect/Effect';
5
+ import * as Plugin from '@dxos/app-framework/Plugin';
6
6
 
7
- import { ActivationEvents, Capabilities, Capability, Plugin } from '@dxos/app-framework';
8
- import { AppActivationEvents, AppPlugin } from '@dxos/app-toolkit';
9
-
10
- import { OperationHandler, State } from '#capabilities';
11
- import { Layout } from '#components';
7
+ import { OperationHandler, ReactContext, State } from '#capabilities';
12
8
  import { meta } from '#meta';
13
- import { StorybookCapabilities } from '#types';
9
+
10
+ import * as StorybookCapabilities from './types/StorybookCapabilities';
14
11
 
15
12
  export type StorybookPluginOptions = {
16
13
  initialState?: Partial<StorybookCapabilities.LayoutStateProps>;
17
14
  };
18
15
 
19
16
  export const StorybookPlugin = Plugin.define<StorybookPluginOptions>(meta).pipe(
20
- AppPlugin.addOperationHandlerModule({
21
- activate: OperationHandler,
22
- }),
23
- AppPlugin.addReactContextModule({
24
- activate: () =>
25
- Effect.succeed(
26
- Capability.contributes(Capabilities.ReactContext, {
27
- id: 'storybook-layout',
28
- context: Layout,
29
- }),
30
- ),
31
- }),
32
- Plugin.addModule(({ initialState }) => ({
33
- id: Capability.getModuleTag(State),
34
- activatesOn: ActivationEvents.Startup,
35
- firesAfterActivation: [AppActivationEvents.LayoutReady],
36
- activate: () => State({ initialState }),
37
- })),
17
+ Plugin.addModule(OperationHandler),
18
+ Plugin.addModule(ReactContext),
19
+ Plugin.addModule(State),
38
20
  Plugin.make,
39
21
  );
40
22
 
@@ -2,11 +2,18 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { Capability } from '@dxos/app-framework';
6
- import { OperationHandlerSet } from '@dxos/compute';
5
+ import * as ActivationEvents from '@dxos/app-framework/ActivationEvents';
6
+ import * as Capability from '@dxos/app-framework/Capability';
7
+ import * as AppCapabilities from '@dxos/app-toolkit/AppCapabilities';
8
+ import * as AppCapability from '@dxos/app-toolkit/AppCapability';
7
9
 
8
- export const OperationHandler = Capability.lazy<OperationHandlerSet.OperationHandlerSet>(
9
- 'OperationHandler',
10
- () => import('./operation-handler'),
10
+ import * as StorybookCapabilities from '../types/StorybookCapabilities';
11
+
12
+ export const OperationHandler = AppCapability.operationHandler(() => import('./operation-handler'));
13
+ export const ReactContext = AppCapability.reactContext(() => import('./react-context'));
14
+ export const State = Capability.lazyModule(
15
+ 'State',
16
+ // Shell state read by `Layout` on its first render — same class as the deck's `DeckState`.
17
+ { activatesOn: ActivationEvents.Startup, provides: [StorybookCapabilities.LayoutState, AppCapabilities.Layout] },
18
+ () => import('./state'),
11
19
  );
12
- export const State = Capability.lazy('State', () => import('./state'));
@@ -4,13 +4,13 @@
4
4
 
5
5
  import * as Effect from 'effect/Effect';
6
6
 
7
- import { Capabilities, Capability } from '@dxos/app-framework';
8
- import type { OperationHandlerSet } from '@dxos/compute';
7
+ import * as Capabilities from '@dxos/app-framework/Capabilities';
8
+ import * as Capability from '@dxos/app-framework/Capability';
9
9
 
10
10
  import { TestingOperationHandlerSet } from '#operations';
11
11
 
12
- export default Capability.makeModule<OperationHandlerSet.OperationHandlerSet>(
12
+ export default Capability.makeModule(
13
13
  Effect.fnUntraced(function* () {
14
- return Capability.contributes(Capabilities.OperationHandler, TestingOperationHandlerSet);
14
+ return Capability.contribute(Capabilities.OperationHandler, TestingOperationHandlerSet);
15
15
  }),
16
16
  );
@@ -0,0 +1,19 @@
1
+ //
2
+ // Copyright 2026 DXOS.org
3
+ //
4
+
5
+ import * as Effect from 'effect/Effect';
6
+
7
+ import * as Capabilities from '@dxos/app-framework/Capabilities';
8
+ import * as Capability from '@dxos/app-framework/Capability';
9
+
10
+ import { Layout } from '#components';
11
+
12
+ export default Capability.makeModule(() =>
13
+ Effect.succeed(
14
+ Capability.contribute(Capabilities.ReactContext, {
15
+ id: 'storybook-layout',
16
+ context: Layout,
17
+ }),
18
+ ),
19
+ );
@@ -5,10 +5,10 @@
5
5
  import { Atom } from '@effect-atom/atom';
6
6
  import * as Effect from 'effect/Effect';
7
7
 
8
- import { Capability } from '@dxos/app-framework';
9
- import { AppCapabilities } from '@dxos/app-toolkit';
8
+ import * as Capability from '@dxos/app-framework/Capability';
9
+ import * as AppCapabilities from '@dxos/app-toolkit/AppCapabilities';
10
10
 
11
- import { StorybookCapabilities } from '#types';
11
+ import * as StorybookCapabilities from '../types/StorybookCapabilities';
12
12
 
13
13
  const defaultState: StorybookCapabilities.LayoutStateProps = {
14
14
  sidebarState: 'closed',
@@ -38,8 +38,8 @@ export default Capability.makeModule(
38
38
  });
39
39
 
40
40
  return [
41
- Capability.contributes(StorybookCapabilities.LayoutState, stateAtom),
42
- Capability.contributes(AppCapabilities.Layout, layoutAtom),
41
+ Capability.contribute(StorybookCapabilities.LayoutState, stateAtom),
42
+ Capability.contribute(AppCapabilities.Layout, layoutAtom),
43
43
  ];
44
44
  }),
45
45
  );
@@ -6,7 +6,7 @@ import { RegistryContext, useAtomValue } from '@effect-atom/atom-react';
6
6
  import React, { type PropsWithChildren, useCallback, useContext, useEffect, useRef, useState } from 'react';
7
7
 
8
8
  import { Surface, useCapability } from '@dxos/app-framework/ui';
9
- import { type LayoutOperation } from '@dxos/app-toolkit';
9
+ import type * as LayoutOperation from '@dxos/app-toolkit/LayoutOperation';
10
10
  import { AppSurface } from '@dxos/app-toolkit/ui';
11
11
  import {
12
12
  AlertDialog,
@@ -24,7 +24,8 @@ import { Dnd } from '@dxos/react-ui-dnd';
24
24
  import { descriptionMessage, mx } from '@dxos/ui-theme';
25
25
 
26
26
  import { meta } from '#meta';
27
- import { StorybookCapabilities } from '#types';
27
+
28
+ import * as StorybookCapabilities from '../../types/StorybookCapabilities';
28
29
 
29
30
  const debounce_delay = 100;
30
31
 
package/src/core.ts CHANGED
@@ -2,7 +2,8 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { type Plugin, ProcessManagerPlugin } from '@dxos/app-framework';
5
+ import { ProcessManagerPlugin } from '@dxos/app-framework';
6
+ import type * as Plugin from '@dxos/app-framework/Plugin';
6
7
  // `/testing` entrypoints re-export the plugin eagerly (without `Plugin.lazy`).
7
8
  // The default `.` and `/plugin` exports wrap each plugin in a lazy stub
8
9
  // (`() => import('./XPlugin')`), which webkit cannot reliably resolve under
package/src/harness.ts CHANGED
@@ -2,9 +2,9 @@
2
2
  // Copyright 2026 DXOS.org
3
3
  //
4
4
 
5
- import { type Plugin, ProcessManagerPlugin } from '@dxos/app-framework';
5
+ import { ProcessManagerPlugin } from '@dxos/app-framework';
6
+ import type * as Plugin from '@dxos/app-framework/Plugin';
6
7
  import { type TestAppOptions, type TestHarness, createTestApp } from '@dxos/app-framework/testing';
7
- import { AppActivationEvents } from '@dxos/app-toolkit';
8
8
  import { AttentionPlugin } from '@dxos/plugin-attention/testing';
9
9
  import { GraphPlugin } from '@dxos/plugin-graph/testing';
10
10
  import { SettingsPlugin } from '@dxos/plugin-settings/testing';
@@ -52,9 +52,6 @@ export const createComposerTestApp = async (opts: ComposerTestAppOptions = {}):
52
52
  core.push(ThemePlugin({ tx: defaultTx }));
53
53
  }
54
54
  return createTestApp({
55
- // Composer always fires SetupSettings before Startup so that settings modules
56
- // activate before graph builders (which use allOf(SetupSettings, SetupAppGraph)).
57
- setupEvents: [AppActivationEvents.SetupSettings],
58
55
  ...rest,
59
56
  plugins: [...core, ...plugins],
60
57
  });
package/src/index.ts CHANGED
@@ -5,7 +5,6 @@
5
5
  export * from './core';
6
6
  export * from './corpus';
7
7
  export * from './meta';
8
- export * from './types';
9
8
 
10
9
  // `@dxos/plugin-testing` is a testing-only package, so `StorybookPlugin` is
11
10
  // exported eagerly from the `.` entrypoint (no `Plugin.lazy` indirection).
@@ -13,3 +12,4 @@ export * from './types';
13
12
  // dynamic `import()` — see `./core.ts` for the underlying chunk-init issue
14
13
  // — and there is no production code-splitting benefit to recover here.
15
14
  export * from './StorybookPlugin';
15
+ export * as StorybookCapabilities from './types/StorybookCapabilities';
package/src/meta.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import { Plugin } from '@dxos/app-framework';
5
+ import * as Plugin from '@dxos/app-framework/Plugin';
6
6
 
7
7
  import config from '../dx.config';
8
8
 
@@ -4,8 +4,8 @@
4
4
 
5
5
  import * as Effect from 'effect/Effect';
6
6
 
7
- import { LayoutOperation } from '@dxos/app-toolkit';
8
- import { Operation } from '@dxos/compute';
7
+ import * as LayoutOperation from '@dxos/app-toolkit/LayoutOperation';
8
+ import * as Operation from '@dxos/compute/Operation';
9
9
 
10
10
  import { updateState } from './update-state';
11
11
 
@@ -4,8 +4,8 @@
4
4
 
5
5
  import * as Effect from 'effect/Effect';
6
6
 
7
- import { LayoutOperation } from '@dxos/app-toolkit';
8
- import { Operation } from '@dxos/compute';
7
+ import * as LayoutOperation from '@dxos/app-toolkit/LayoutOperation';
8
+ import * as Operation from '@dxos/compute/Operation';
9
9
 
10
10
  const handler: Operation.WithHandler<typeof LayoutOperation.Close> = LayoutOperation.Close.pipe(
11
11
  Operation.withHandler(() => Effect.void),
@@ -2,16 +2,18 @@
2
2
  // Copyright 2025 DXOS.org
3
3
  //
4
4
 
5
- import { OperationHandlerSet } from '@dxos/compute';
5
+ import * as LayoutOperation from '@dxos/app-toolkit/LayoutOperation';
6
+ import * as Operation from '@dxos/compute/Operation';
7
+ import * as OperationHandlerSet from '@dxos/compute/OperationHandlerSet';
6
8
 
7
- export const TestingOperationHandlerSet = OperationHandlerSet.lazy(
8
- () => import('./add-toast'),
9
- () => import('./close'),
10
- () => import('./open'),
11
- () => import('./scroll-into-view'),
12
- () => import('./switch-workspace'),
13
- () => import('./update-complementary'),
14
- () => import('./update-dialog'),
15
- () => import('./update-popover'),
16
- () => import('./update-sidebar'),
17
- );
9
+ export const TestingOperationHandlerSet = OperationHandlerSet.lazy([
10
+ LayoutOperation.AddToast.pipe(Operation.lazyHandler(() => import('./add-toast'))),
11
+ LayoutOperation.Close.pipe(Operation.lazyHandler(() => import('./close'))),
12
+ LayoutOperation.Open.pipe(Operation.lazyHandler(() => import('./open'))),
13
+ LayoutOperation.ScrollIntoView.pipe(Operation.lazyHandler(() => import('./scroll-into-view'))),
14
+ LayoutOperation.SwitchWorkspace.pipe(Operation.lazyHandler(() => import('./switch-workspace'))),
15
+ LayoutOperation.UpdateComplementary.pipe(Operation.lazyHandler(() => import('./update-complementary'))),
16
+ LayoutOperation.UpdateDialog.pipe(Operation.lazyHandler(() => import('./update-dialog'))),
17
+ LayoutOperation.UpdatePopover.pipe(Operation.lazyHandler(() => import('./update-popover'))),
18
+ LayoutOperation.UpdateSidebar.pipe(Operation.lazyHandler(() => import('./update-sidebar'))),
19
+ ]);
@@ -4,8 +4,8 @@
4
4
 
5
5
  import * as Effect from 'effect/Effect';
6
6
 
7
- import { LayoutOperation } from '@dxos/app-toolkit';
8
- import { Operation } from '@dxos/compute';
7
+ import * as LayoutOperation from '@dxos/app-toolkit/LayoutOperation';
8
+ import * as Operation from '@dxos/compute/Operation';
9
9
  import { log } from '@dxos/log';
10
10
 
11
11
  const handler: Operation.WithHandler<typeof LayoutOperation.Open> = LayoutOperation.Open.pipe(
@@ -4,8 +4,8 @@
4
4
 
5
5
  import * as Effect from 'effect/Effect';
6
6
 
7
- import { LayoutOperation } from '@dxos/app-toolkit';
8
- import { Operation } from '@dxos/compute';
7
+ import * as LayoutOperation from '@dxos/app-toolkit/LayoutOperation';
8
+ import * as Operation from '@dxos/compute/Operation';
9
9
 
10
10
  const handler: Operation.WithHandler<typeof LayoutOperation.ScrollIntoView> = LayoutOperation.ScrollIntoView.pipe(
11
11
  Operation.withHandler(() => Effect.void),
@@ -4,8 +4,8 @@
4
4
 
5
5
  import * as Effect from 'effect/Effect';
6
6
 
7
- import { LayoutOperation } from '@dxos/app-toolkit';
8
- import { Operation } from '@dxos/compute';
7
+ import * as LayoutOperation from '@dxos/app-toolkit/LayoutOperation';
8
+ import * as Operation from '@dxos/compute/Operation';
9
9
 
10
10
  import { updateState } from './update-state';
11
11
 
@@ -4,8 +4,8 @@
4
4
 
5
5
  import * as Effect from 'effect/Effect';
6
6
 
7
- import { LayoutOperation } from '@dxos/app-toolkit';
8
- import { Operation } from '@dxos/compute';
7
+ import * as LayoutOperation from '@dxos/app-toolkit/LayoutOperation';
8
+ import * as Operation from '@dxos/compute/Operation';
9
9
 
10
10
  import { updateState } from './update-state';
11
11
 
@@ -4,8 +4,8 @@
4
4
 
5
5
  import * as Effect from 'effect/Effect';
6
6
 
7
- import { LayoutOperation } from '@dxos/app-toolkit';
8
- import { Operation } from '@dxos/compute';
7
+ import * as LayoutOperation from '@dxos/app-toolkit/LayoutOperation';
8
+ import * as Operation from '@dxos/compute/Operation';
9
9
 
10
10
  import { updateState } from './update-state';
11
11
 
@@ -4,10 +4,10 @@
4
4
 
5
5
  import * as Effect from 'effect/Effect';
6
6
 
7
- import { LayoutOperation } from '@dxos/app-toolkit';
8
- import { Operation } from '@dxos/compute';
7
+ import * as LayoutOperation from '@dxos/app-toolkit/LayoutOperation';
8
+ import * as Operation from '@dxos/compute/Operation';
9
9
 
10
- import { StorybookCapabilities } from '../types';
10
+ import * as StorybookCapabilities from '../types/StorybookCapabilities';
11
11
  import { updateState } from './update-state';
12
12
 
13
13
  const handler: Operation.WithHandler<typeof LayoutOperation.UpdatePopover> = LayoutOperation.UpdatePopover.pipe(
@@ -4,8 +4,8 @@
4
4
 
5
5
  import * as Effect from 'effect/Effect';
6
6
 
7
- import { LayoutOperation } from '@dxos/app-toolkit';
8
- import { Operation } from '@dxos/compute';
7
+ import * as LayoutOperation from '@dxos/app-toolkit/LayoutOperation';
8
+ import * as Operation from '@dxos/compute/Operation';
9
9
 
10
10
  import { updateState } from './update-state';
11
11
 
@@ -5,9 +5,10 @@
5
5
  import * as Effect from 'effect/Effect';
6
6
  import * as Option from 'effect/Option';
7
7
 
8
- import { Capabilities, Capability } from '@dxos/app-framework';
8
+ import * as Capabilities from '@dxos/app-framework/Capabilities';
9
+ import * as Capability from '@dxos/app-framework/Capability';
9
10
 
10
- import { StorybookCapabilities } from '../types';
11
+ import * as StorybookCapabilities from '../types/StorybookCapabilities';
11
12
 
12
13
  export const updateState = (
13
14
  fn: (state: StorybookCapabilities.LayoutStateProps) => Partial<StorybookCapabilities.LayoutStateProps>,
package/src/plugin.ts CHANGED
@@ -2,11 +2,9 @@
2
2
  // Copyright 2023 DXOS.org
3
3
  //
4
4
 
5
- import { Plugin } from '@dxos/app-framework';
5
+ import * as Plugin from '@dxos/app-framework/Plugin';
6
6
 
7
7
  import { meta } from './meta';
8
8
 
9
9
  export const StorybookPlugin = Plugin.lazy(meta, () => import('#plugin'));
10
10
  export type { StorybookPluginOptions } from '#plugin';
11
-
12
- export { TestingOperationHandlerSet } from './operations';
@@ -6,8 +6,8 @@
6
6
 
7
7
  import { type Atom } from '@effect-atom/atom';
8
8
 
9
- import { Capability } from '@dxos/app-framework';
10
- import { type LayoutOperation } from '@dxos/app-toolkit';
9
+ import * as Capability from '@dxos/app-framework/Capability';
10
+ import type * as LayoutOperation from '@dxos/app-toolkit/LayoutOperation';
11
11
  import { type Label } from '@dxos/react-ui';
12
12
 
13
13
  import { meta } from '#meta';
@@ -38,4 +38,4 @@ export type LayoutStateProps = {
38
38
  workspace: string;
39
39
  };
40
40
 
41
- export const LayoutState = Capability.make<Atom.Writable<LayoutStateProps>>(`${meta.profile.key}.state`);
41
+ export const LayoutState = Capability.makeSingleton<Atom.Writable<LayoutStateProps>>()(`${meta.profile.key}.state`);
@@ -1 +0,0 @@
1
- {"version":3,"file":"chunk-types.mjs","names":[],"sources":["../../src/types/StorybookCapabilities.ts"],"sourcesContent":["//\n// Copyright 2025 DXOS.org\n//\n\n// @import-as-namespace\n\nimport { type Atom } from '@effect-atom/atom';\n\nimport { Capability } from '@dxos/app-framework';\nimport { type LayoutOperation } from '@dxos/app-toolkit';\nimport { type Label } from '@dxos/react-ui';\n\nimport { meta } from '#meta';\n\nexport type LayoutStateProps = {\n sidebarState?: 'expanded' | 'collapsed' | 'closed';\n complementarySidebarState?: 'expanded' | 'collapsed' | 'closed';\n\n dialogOpen: boolean;\n dialogType?: 'default' | 'alert';\n dialogBlockAlign?: 'start' | 'center' | 'end';\n dialogOverlayClasses?: string;\n dialogOverlayStyle?: Record<string, any>;\n /** Data to be passed to the dialog Surface. */\n dialogContent?: any;\n\n popoverOpen?: boolean;\n popoverSide?: 'top' | 'right' | 'bottom' | 'left';\n popoverVariant?: 'virtual' | 'react';\n popoverAnchor?: HTMLButtonElement;\n popoverAnchorId?: string;\n popoverKind?: 'base' | 'card' | 'rename';\n popoverTitle?: Label;\n popoverContent?: any;\n\n toasts: LayoutOperation.Toast[];\n\n workspace: string;\n};\n\nexport const LayoutState = Capability.make<Atom.Writable<LayoutStateProps>>(`${meta.profile.key}.state`);\n"],"mappings":";;;;;;;;;;;;;;;;AAwCA,IAAa,cAAc,WAAW,KAAsC,GAAG,KAAK,QAAQ,IAAI,OAAO"}
@@ -1,2 +0,0 @@
1
- import { n as StorybookCapabilities_exports } from "./chunk-types.mjs";
2
- export { StorybookCapabilities_exports as StorybookCapabilities };
@@ -1,2 +0,0 @@
1
- export * as StorybookCapabilities from './StorybookCapabilities';
2
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/types/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,qBAAqB,MAAM,yBAAyB,CAAC"}
@@ -1,5 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- export * as StorybookCapabilities from './StorybookCapabilities';