@dxos/plugin-testing 0.8.4-main.bc674ce → 0.8.4-main.bcb3aa67d6

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 (93) hide show
  1. package/dist/lib/browser/index.mjs +30 -172
  2. package/dist/lib/browser/index.mjs.map +4 -4
  3. package/dist/lib/browser/meta.json +1 -1
  4. package/dist/lib/node-esm/index.mjs +30 -171
  5. package/dist/lib/node-esm/index.mjs.map +4 -4
  6. package/dist/lib/node-esm/meta.json +1 -1
  7. package/dist/types/src/StorybookPlugin.d.ts +1 -1
  8. package/dist/types/src/StorybookPlugin.d.ts.map +1 -1
  9. package/dist/types/src/capabilities/index.d.ts +15 -2
  10. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  11. package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
  12. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  13. package/dist/types/src/capabilities/{state/state.d.ts → state.d.ts} +2 -2
  14. package/dist/types/src/capabilities/state.d.ts.map +1 -0
  15. package/dist/types/src/components/{Layout.d.ts → Layout/Layout.d.ts} +1 -1
  16. package/dist/types/src/components/Layout/Layout.d.ts.map +1 -0
  17. package/dist/types/src/components/Layout/index.d.ts +2 -0
  18. package/dist/types/src/components/Layout/index.d.ts.map +1 -0
  19. package/dist/types/src/core.d.ts +1 -6
  20. package/dist/types/src/core.d.ts.map +1 -1
  21. package/dist/types/src/operations/add-toast.d.ts +5 -0
  22. package/dist/types/src/operations/add-toast.d.ts.map +1 -0
  23. package/dist/types/src/operations/close.d.ts +5 -0
  24. package/dist/types/src/operations/close.d.ts.map +1 -0
  25. package/dist/types/src/operations/index.d.ts +3 -0
  26. package/dist/types/src/operations/index.d.ts.map +1 -0
  27. package/dist/types/src/operations/open.d.ts +5 -0
  28. package/dist/types/src/operations/open.d.ts.map +1 -0
  29. package/dist/types/src/operations/scroll-into-view.d.ts +5 -0
  30. package/dist/types/src/operations/scroll-into-view.d.ts.map +1 -0
  31. package/dist/types/src/operations/set-layout-mode.d.ts +5 -0
  32. package/dist/types/src/operations/set-layout-mode.d.ts.map +1 -0
  33. package/dist/types/src/operations/switch-workspace.d.ts +5 -0
  34. package/dist/types/src/operations/switch-workspace.d.ts.map +1 -0
  35. package/dist/types/src/operations/update-complementary.d.ts +5 -0
  36. package/dist/types/src/operations/update-complementary.d.ts.map +1 -0
  37. package/dist/types/src/operations/update-dialog.d.ts +5 -0
  38. package/dist/types/src/operations/update-dialog.d.ts.map +1 -0
  39. package/dist/types/src/operations/update-popover.d.ts +5 -0
  40. package/dist/types/src/operations/update-popover.d.ts.map +1 -0
  41. package/dist/types/src/operations/update-sidebar.d.ts +5 -0
  42. package/dist/types/src/operations/update-sidebar.d.ts.map +1 -0
  43. package/dist/types/src/operations/update-state.d.ts +5 -0
  44. package/dist/types/src/operations/update-state.d.ts.map +1 -0
  45. package/dist/types/src/types/capabilities.d.ts +2 -0
  46. package/dist/types/src/types/capabilities.d.ts.map +1 -1
  47. package/dist/types/tsconfig.tsbuildinfo +1 -1
  48. package/package.json +26 -18
  49. package/src/StorybookPlugin.ts +18 -16
  50. package/src/capabilities/index.ts +8 -2
  51. package/src/capabilities/operation-handler.ts +16 -0
  52. package/src/capabilities/{state/state.tsx → state.tsx} +6 -7
  53. package/src/components/Layout/Layout.tsx +230 -0
  54. package/src/components/Layout/index.ts +5 -0
  55. package/src/core.ts +2 -6
  56. package/src/meta.ts +1 -1
  57. package/src/operations/add-toast.ts +22 -0
  58. package/src/operations/close.ts +14 -0
  59. package/src/operations/index.ts +18 -0
  60. package/src/operations/open.ts +18 -0
  61. package/src/operations/scroll-into-view.ts +14 -0
  62. package/src/operations/set-layout-mode.ts +14 -0
  63. package/src/operations/switch-workspace.ts +20 -0
  64. package/src/operations/update-complementary.ts +27 -0
  65. package/src/operations/update-dialog.ts +27 -0
  66. package/src/operations/update-popover.ts +37 -0
  67. package/src/operations/update-sidebar.ts +26 -0
  68. package/src/operations/update-state.ts +17 -0
  69. package/src/types/capabilities.ts +5 -2
  70. package/dist/lib/browser/chunk-YHPXIILW.mjs +0 -21
  71. package/dist/lib/browser/chunk-YHPXIILW.mjs.map +0 -7
  72. package/dist/lib/browser/operation-resolver-B2DOYB7C.mjs +0 -111
  73. package/dist/lib/browser/operation-resolver-B2DOYB7C.mjs.map +0 -7
  74. package/dist/lib/browser/state-2M3RMJYA.mjs +0 -42
  75. package/dist/lib/browser/state-2M3RMJYA.mjs.map +0 -7
  76. package/dist/lib/node-esm/chunk-OWK6XE6C.mjs +0 -23
  77. package/dist/lib/node-esm/chunk-OWK6XE6C.mjs.map +0 -7
  78. package/dist/lib/node-esm/operation-resolver-DJI7OPBP.mjs +0 -112
  79. package/dist/lib/node-esm/operation-resolver-DJI7OPBP.mjs.map +0 -7
  80. package/dist/lib/node-esm/state-UF2MWBFU.mjs +0 -43
  81. package/dist/lib/node-esm/state-UF2MWBFU.mjs.map +0 -7
  82. package/dist/types/src/capabilities/operation-resolver/index.d.ts +0 -3
  83. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +0 -1
  84. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +0 -5
  85. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +0 -1
  86. package/dist/types/src/capabilities/state/index.d.ts +0 -14
  87. package/dist/types/src/capabilities/state/index.d.ts.map +0 -1
  88. package/dist/types/src/capabilities/state/state.d.ts.map +0 -1
  89. package/dist/types/src/components/Layout.d.ts.map +0 -1
  90. package/src/capabilities/operation-resolver/index.ts +0 -7
  91. package/src/capabilities/operation-resolver/operation-resolver.ts +0 -98
  92. package/src/capabilities/state/index.ts +0 -7
  93. package/src/components/Layout.tsx +0 -172
@@ -0,0 +1,37 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import * as Effect from 'effect/Effect';
6
+
7
+ import { LayoutOperation } from '@dxos/app-toolkit';
8
+ import { Operation } from '@dxos/operation';
9
+
10
+ import { type LayoutStateProps } from '../types';
11
+ import { updateState } from './update-state';
12
+
13
+ const handler: Operation.WithHandler<typeof LayoutOperation.UpdatePopover> = LayoutOperation.UpdatePopover.pipe(
14
+ Operation.withHandler(
15
+ Effect.fnUntraced(function* (input) {
16
+ const { subject, state, side, kind, props } = input;
17
+ yield* updateState(() => {
18
+ const base: Partial<LayoutStateProps> = {
19
+ popoverKind: kind ?? 'base',
20
+ popoverTitle: kind === 'card' ? input.title : undefined,
21
+ popoverContent:
22
+ typeof subject === 'string' ? { component: subject, props } : subject ? { subject } : undefined,
23
+ popoverOpen: state ?? Boolean(subject),
24
+ popoverSide: side,
25
+ };
26
+ if ('variant' in input && input.variant === 'virtual') {
27
+ return { ...base, popoverVariant: 'virtual', popoverAnchor: input.anchor };
28
+ } else if ('anchorId' in input) {
29
+ return { ...base, popoverVariant: 'react', popoverAnchorId: input.anchorId };
30
+ }
31
+ return base;
32
+ });
33
+ }),
34
+ ),
35
+ );
36
+
37
+ export default handler;
@@ -0,0 +1,26 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import * as Effect from 'effect/Effect';
6
+
7
+ import { LayoutOperation } from '@dxos/app-toolkit';
8
+ import { Operation } from '@dxos/operation';
9
+
10
+ import { updateState } from './update-state';
11
+
12
+ const handler: Operation.WithHandler<typeof LayoutOperation.UpdateSidebar> = LayoutOperation.UpdateSidebar.pipe(
13
+ Operation.withHandler(
14
+ Effect.fnUntraced(function* ({ state }) {
15
+ yield* updateState((layout) => {
16
+ const next = state ?? layout.sidebarState;
17
+ if (next !== layout.sidebarState) {
18
+ return { sidebarState: next };
19
+ }
20
+ return {};
21
+ });
22
+ }),
23
+ ),
24
+ );
25
+
26
+ export default handler;
@@ -0,0 +1,17 @@
1
+ //
2
+ // Copyright 2025 DXOS.org
3
+ //
4
+
5
+ import * as Effect from 'effect/Effect';
6
+
7
+ import { Capabilities, Capability } from '@dxos/app-framework';
8
+
9
+ import { LayoutState, type LayoutStateProps } from '../types';
10
+
11
+ export const updateState = (fn: (state: LayoutStateProps) => Partial<LayoutStateProps>) =>
12
+ Effect.gen(function* () {
13
+ const registry = yield* Capability.get(Capabilities.AtomRegistry);
14
+ const stateAtom = yield* Capability.get(LayoutState);
15
+ const current = registry.get(stateAtom);
16
+ registry.set(stateAtom, { ...current, ...fn(current) });
17
+ });
@@ -5,9 +5,10 @@
5
5
  import { type Atom } from '@effect-atom/atom-react';
6
6
 
7
7
  import { Capability } from '@dxos/app-framework';
8
+ import { type LayoutOperation } from '@dxos/app-toolkit';
8
9
  import { type Label } from '@dxos/react-ui';
9
10
 
10
- import { meta } from '../meta';
11
+ import { meta } from '#meta';
11
12
 
12
13
  export type LayoutStateProps = {
13
14
  sidebarState?: 'expanded' | 'collapsed' | 'closed';
@@ -30,7 +31,9 @@ export type LayoutStateProps = {
30
31
  popoverTitle?: Label;
31
32
  popoverContent?: any;
32
33
 
34
+ toasts: LayoutOperation.Toast[];
35
+
33
36
  workspace: string;
34
37
  };
35
38
 
36
- export const LayoutState = Capability.make<Atom.Writable<LayoutStateProps>>(`${meta.id}/state`);
39
+ export const LayoutState = Capability.make<Atom.Writable<LayoutStateProps>>(`${meta.id}.state`);
@@ -1,21 +0,0 @@
1
- // src/meta.ts
2
- import { trim } from "@dxos/util";
3
- var meta = {
4
- id: "dxos.org/plugin/storybook-layout",
5
- name: "Storybook",
6
- description: trim`
7
- Development layout optimized for Storybook component testing and documentation.
8
- Provides specialized views for component development and design system exploration.
9
- `,
10
- source: "https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-testing"
11
- };
12
-
13
- // src/types/capabilities.ts
14
- import { Capability } from "@dxos/app-framework";
15
- var LayoutState = Capability.make(`${meta.id}/state`);
16
-
17
- export {
18
- meta,
19
- LayoutState
20
- };
21
- //# sourceMappingURL=chunk-YHPXIILW.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/meta.ts", "../../../src/types/capabilities.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { trim } from '@dxos/util';\n\nexport const meta: Plugin.Meta = {\n id: 'dxos.org/plugin/storybook-layout',\n name: 'Storybook',\n description: trim`\n Development layout optimized for Storybook component testing and documentation.\n Provides specialized views for component development and design system exploration.\n `,\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-testing',\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Atom } from '@effect-atom/atom-react';\n\nimport { Capability } from '@dxos/app-framework';\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';\n popoverTitle?: Label;\n popoverContent?: any;\n\n workspace: string;\n};\n\nexport const LayoutState = Capability.make<Atom.Writable<LayoutStateProps>>(`${meta.id}/state`);\n"],
5
- "mappings": ";AAKA,SAASA,YAAY;AAEd,IAAMC,OAAoB;EAC/BC,IAAI;EACJC,MAAM;EACNC,aAAaC;;;;EAIbC,QAAQ;AACV;;;ACTA,SAASC,kBAAkB;AA6BpB,IAAMC,cAAcC,WAAWC,KAAsC,GAAGC,KAAKC,EAAE,QAAQ;",
6
- "names": ["trim", "meta", "id", "name", "description", "trim", "source", "Capability", "LayoutState", "Capability", "make", "meta", "id"]
7
- }
@@ -1,111 +0,0 @@
1
- import {
2
- LayoutState
3
- } from "./chunk-YHPXIILW.mjs";
4
-
5
- // src/capabilities/operation-resolver/operation-resolver.ts
6
- import * as Effect from "effect/Effect";
7
- import { Capability, Common } from "@dxos/app-framework";
8
- import { OperationResolver } from "@dxos/operation";
9
- var operation_resolver_default = Capability.makeModule(Effect.fnUntraced(function* () {
10
- const registry = yield* Capability.get(Common.Capability.AtomRegistry);
11
- const stateAtom = yield* Capability.get(LayoutState);
12
- const updateState = (fn) => {
13
- const current = registry.get(stateAtom);
14
- registry.set(stateAtom, {
15
- ...current,
16
- ...fn(current)
17
- });
18
- };
19
- return Capability.contributes(Common.Capability.OperationResolver, [
20
- OperationResolver.make({
21
- operation: Common.LayoutOperation.UpdateSidebar,
22
- handler: Effect.fnUntraced(function* ({ state }) {
23
- updateState((layout) => {
24
- const next = state ?? layout.sidebarState;
25
- if (next !== layout.sidebarState) {
26
- return {
27
- sidebarState: next
28
- };
29
- }
30
- return {};
31
- });
32
- })
33
- }),
34
- OperationResolver.make({
35
- operation: Common.LayoutOperation.UpdateComplementary,
36
- handler: Effect.fnUntraced(function* ({ state }) {
37
- updateState((layout) => {
38
- const next = state ?? layout.complementarySidebarState;
39
- if (next !== layout.complementarySidebarState) {
40
- return {
41
- complementarySidebarState: next
42
- };
43
- }
44
- return {};
45
- });
46
- })
47
- }),
48
- OperationResolver.make({
49
- operation: Common.LayoutOperation.UpdateDialog,
50
- handler: Effect.fnUntraced(function* ({ subject, state, type, blockAlign, overlayClasses, overlayStyle, props }) {
51
- updateState(() => ({
52
- dialogOpen: state ?? Boolean(subject),
53
- dialogType: type ?? "default",
54
- dialogBlockAlign: blockAlign ?? "center",
55
- dialogOverlayClasses: overlayClasses,
56
- dialogOverlayStyle: overlayStyle,
57
- dialogContent: subject ? {
58
- component: subject,
59
- props
60
- } : null
61
- }));
62
- })
63
- }),
64
- OperationResolver.make({
65
- operation: Common.LayoutOperation.UpdatePopover,
66
- handler: Effect.fnUntraced(function* (input) {
67
- const { subject, state, side, kind, props } = input;
68
- updateState(() => {
69
- const base = {
70
- popoverKind: kind ?? "base",
71
- popoverTitle: kind === "card" ? input.title : void 0,
72
- popoverContent: typeof subject === "string" ? {
73
- component: subject,
74
- props
75
- } : subject ? {
76
- subject
77
- } : void 0,
78
- popoverOpen: state ?? Boolean(subject),
79
- popoverSide: side
80
- };
81
- if ("variant" in input && input.variant === "virtual") {
82
- return {
83
- ...base,
84
- popoverVariant: "virtual",
85
- popoverAnchor: input.anchor
86
- };
87
- } else if ("anchorId" in input) {
88
- return {
89
- ...base,
90
- popoverVariant: "react",
91
- popoverAnchorId: input.anchorId
92
- };
93
- }
94
- return base;
95
- });
96
- })
97
- }),
98
- OperationResolver.make({
99
- operation: Common.LayoutOperation.SwitchWorkspace,
100
- handler: Effect.fnUntraced(function* ({ subject }) {
101
- updateState(() => ({
102
- workspace: subject
103
- }));
104
- })
105
- })
106
- ]);
107
- }));
108
- export {
109
- operation_resolver_default as default
110
- };
111
- //# sourceMappingURL=operation-resolver-B2DOYB7C.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 { Capability, Common } from '@dxos/app-framework';\nimport { OperationResolver } from '@dxos/operation';\n\nimport { LayoutState, type LayoutStateProps } from '../../types';\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n const registry = yield* Capability.get(Common.Capability.AtomRegistry);\n const stateAtom = yield* Capability.get(LayoutState);\n\n const updateState = (fn: (state: LayoutStateProps) => Partial<LayoutStateProps>) => {\n const current = registry.get(stateAtom);\n registry.set(stateAtom, { ...current, ...fn(current) });\n };\n\n return Capability.contributes(Common.Capability.OperationResolver, [\n OperationResolver.make({\n operation: Common.LayoutOperation.UpdateSidebar,\n handler: Effect.fnUntraced(function* ({ state }) {\n updateState((layout) => {\n const next = state ?? layout.sidebarState;\n if (next !== layout.sidebarState) {\n return { sidebarState: next };\n }\n return {};\n });\n }),\n }),\n OperationResolver.make({\n operation: Common.LayoutOperation.UpdateComplementary,\n handler: Effect.fnUntraced(function* ({ state }) {\n updateState((layout) => {\n const next = state ?? layout.complementarySidebarState;\n if (next !== layout.complementarySidebarState) {\n return { complementarySidebarState: next };\n }\n return {};\n });\n }),\n }),\n OperationResolver.make({\n operation: Common.LayoutOperation.UpdateDialog,\n handler: Effect.fnUntraced(function* ({\n subject,\n state,\n type,\n blockAlign,\n overlayClasses,\n overlayStyle,\n props,\n }) {\n updateState(() => ({\n dialogOpen: state ?? Boolean(subject),\n dialogType: type ?? 'default',\n dialogBlockAlign: blockAlign ?? 'center',\n dialogOverlayClasses: overlayClasses,\n dialogOverlayStyle: overlayStyle,\n dialogContent: subject ? { component: subject, props } : null,\n }));\n }),\n }),\n OperationResolver.make({\n operation: Common.LayoutOperation.UpdatePopover,\n handler: Effect.fnUntraced(function* (input) {\n const { subject, state, side, kind, props } = input;\n updateState(() => {\n const base: Partial<LayoutStateProps> = {\n popoverKind: kind ?? 'base',\n popoverTitle: kind === 'card' ? input.title : undefined,\n popoverContent:\n typeof subject === 'string' ? { component: subject, props } : subject ? { subject } : undefined,\n popoverOpen: state ?? Boolean(subject),\n popoverSide: side,\n };\n if ('variant' in input && input.variant === 'virtual') {\n return { ...base, popoverVariant: 'virtual', popoverAnchor: input.anchor };\n } else if ('anchorId' in input) {\n return { ...base, popoverVariant: 'react', popoverAnchorId: input.anchorId };\n }\n return base;\n });\n }),\n }),\n OperationResolver.make({\n operation: Common.LayoutOperation.SwitchWorkspace,\n handler: Effect.fnUntraced(function* ({ subject }) {\n updateState(() => ({ workspace: subject }));\n }),\n }),\n ]);\n }),\n);\n"],
5
- "mappings": ";;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,YAAYC,cAAc;AACnC,SAASC,yBAAyB;AAIlC,IAAA,6BAAeC,WAAWC,WACjBC,kBAAW,aAAA;AAChB,QAAMC,WAAW,OAAOH,WAAWI,IAAIC,OAAOL,WAAWM,YAAY;AACrE,QAAMC,YAAY,OAAOP,WAAWI,IAAII,WAAAA;AAExC,QAAMC,cAAc,CAACC,OAAAA;AACnB,UAAMC,UAAUR,SAASC,IAAIG,SAAAA;AAC7BJ,aAASS,IAAIL,WAAW;MAAE,GAAGI;MAAS,GAAGD,GAAGC,OAAAA;IAAS,CAAA;EACvD;AAEA,SAAOX,WAAWa,YAAYR,OAAOL,WAAWc,mBAAmB;IACjEA,kBAAkBC,KAAK;MACrBC,WAAWX,OAAOY,gBAAgBC;MAClCC,SAAgBjB,kBAAW,WAAW,EAAEkB,MAAK,GAAE;AAC7CX,oBAAY,CAACY,WAAAA;AACX,gBAAMC,OAAOF,SAASC,OAAOE;AAC7B,cAAID,SAASD,OAAOE,cAAc;AAChC,mBAAO;cAAEA,cAAcD;YAAK;UAC9B;AACA,iBAAO,CAAC;QACV,CAAA;MACF,CAAA;IACF,CAAA;IACAR,kBAAkBC,KAAK;MACrBC,WAAWX,OAAOY,gBAAgBO;MAClCL,SAAgBjB,kBAAW,WAAW,EAAEkB,MAAK,GAAE;AAC7CX,oBAAY,CAACY,WAAAA;AACX,gBAAMC,OAAOF,SAASC,OAAOI;AAC7B,cAAIH,SAASD,OAAOI,2BAA2B;AAC7C,mBAAO;cAAEA,2BAA2BH;YAAK;UAC3C;AACA,iBAAO,CAAC;QACV,CAAA;MACF,CAAA;IACF,CAAA;IACAR,kBAAkBC,KAAK;MACrBC,WAAWX,OAAOY,gBAAgBS;MAClCP,SAAgBjB,kBAAW,WAAW,EACpCyB,SACAP,OACAQ,MACAC,YACAC,gBACAC,cACAC,MAAK,GACN;AACCvB,oBAAY,OAAO;UACjBwB,YAAYb,SAASc,QAAQP,OAAAA;UAC7BQ,YAAYP,QAAQ;UACpBQ,kBAAkBP,cAAc;UAChCQ,sBAAsBP;UACtBQ,oBAAoBP;UACpBQ,eAAeZ,UAAU;YAAEa,WAAWb;YAASK;UAAM,IAAI;QAC3D,EAAA;MACF,CAAA;IACF,CAAA;IACAlB,kBAAkBC,KAAK;MACrBC,WAAWX,OAAOY,gBAAgBwB;MAClCtB,SAAgBjB,kBAAW,WAAWwC,OAAK;AACzC,cAAM,EAAEf,SAASP,OAAOuB,MAAMC,MAAMZ,MAAK,IAAKU;AAC9CjC,oBAAY,MAAA;AACV,gBAAMoC,OAAkC;YACtCC,aAAaF,QAAQ;YACrBG,cAAcH,SAAS,SAASF,MAAMM,QAAQC;YAC9CC,gBACE,OAAOvB,YAAY,WAAW;cAAEa,WAAWb;cAASK;YAAM,IAAIL,UAAU;cAAEA;YAAQ,IAAIsB;YACxFE,aAAa/B,SAASc,QAAQP,OAAAA;YAC9ByB,aAAaT;UACf;AACA,cAAI,aAAaD,SAASA,MAAMW,YAAY,WAAW;AACrD,mBAAO;cAAE,GAAGR;cAAMS,gBAAgB;cAAWC,eAAeb,MAAMc;YAAO;UAC3E,WAAW,cAAcd,OAAO;AAC9B,mBAAO;cAAE,GAAGG;cAAMS,gBAAgB;cAASG,iBAAiBf,MAAMgB;YAAS;UAC7E;AACA,iBAAOb;QACT,CAAA;MACF,CAAA;IACF,CAAA;IACA/B,kBAAkBC,KAAK;MACrBC,WAAWX,OAAOY,gBAAgB0C;MAClCxC,SAAgBjB,kBAAW,WAAW,EAAEyB,QAAO,GAAE;AAC/ClB,oBAAY,OAAO;UAAEmD,WAAWjC;QAAQ,EAAA;MAC1C,CAAA;IACF,CAAA;GACD;AACH,CAAA,CAAA;",
6
- "names": ["Effect", "Capability", "Common", "OperationResolver", "Capability", "makeModule", "fnUntraced", "registry", "get", "Common", "AtomRegistry", "stateAtom", "LayoutState", "updateState", "fn", "current", "set", "contributes", "OperationResolver", "make", "operation", "LayoutOperation", "UpdateSidebar", "handler", "state", "layout", "next", "sidebarState", "UpdateComplementary", "complementarySidebarState", "UpdateDialog", "subject", "type", "blockAlign", "overlayClasses", "overlayStyle", "props", "dialogOpen", "Boolean", "dialogType", "dialogBlockAlign", "dialogOverlayClasses", "dialogOverlayStyle", "dialogContent", "component", "UpdatePopover", "input", "side", "kind", "base", "popoverKind", "popoverTitle", "title", "undefined", "popoverContent", "popoverOpen", "popoverSide", "variant", "popoverVariant", "popoverAnchor", "anchor", "popoverAnchorId", "anchorId", "SwitchWorkspace", "workspace"]
7
- }
@@ -1,42 +0,0 @@
1
- import {
2
- LayoutState
3
- } from "./chunk-YHPXIILW.mjs";
4
-
5
- // src/capabilities/state/state.tsx
6
- import { Atom } from "@effect-atom/atom-react";
7
- import * as Effect from "effect/Effect";
8
- import { Capability, Common } from "@dxos/app-framework";
9
- var defaultState = {
10
- sidebarState: "closed",
11
- complementarySidebarState: "closed",
12
- dialogOpen: false,
13
- workspace: "default"
14
- };
15
- var state_default = Capability.makeModule(Effect.fnUntraced(function* (props) {
16
- const { initialState } = props ?? {};
17
- const stateAtom = Atom.make({
18
- ...defaultState,
19
- ...initialState
20
- });
21
- const layoutAtom = Atom.make((get) => {
22
- const state = get(stateAtom);
23
- return {
24
- mode: "storybook",
25
- dialogOpen: state.dialogOpen,
26
- sidebarOpen: state.sidebarState === "expanded",
27
- complementarySidebarOpen: state.complementarySidebarState === "expanded",
28
- workspace: state.workspace,
29
- active: [],
30
- inactive: [],
31
- scrollIntoView: void 0
32
- };
33
- });
34
- return [
35
- Capability.contributes(LayoutState, stateAtom),
36
- Capability.contributes(Common.Capability.Layout, layoutAtom)
37
- ];
38
- }));
39
- export {
40
- state_default as default
41
- };
42
- //# sourceMappingURL=state-2M3RMJYA.mjs.map
@@ -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, Common } from '@dxos/app-framework';\n\nimport { LayoutState, type LayoutStateProps } from '../../types';\n\nconst defaultState: LayoutStateProps = {\n sidebarState: 'closed',\n complementarySidebarState: 'closed',\n dialogOpen: false,\n workspace: 'default',\n};\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* (props?: { initialState?: Partial<LayoutStateProps> }) {\n const { initialState } = props ?? {};\n const stateAtom = Atom.make<LayoutStateProps>({ ...defaultState, ...initialState });\n\n const layoutAtom = Atom.make((get): Common.Capability.Layout => {\n const state = get(stateAtom);\n return {\n mode: 'storybook',\n dialogOpen: state.dialogOpen,\n sidebarOpen: state.sidebarState === 'expanded',\n complementarySidebarOpen: state.complementarySidebarState === 'expanded',\n workspace: state.workspace,\n active: [],\n inactive: [],\n scrollIntoView: undefined,\n };\n });\n\n return [\n Capability.contributes(LayoutState, stateAtom),\n Capability.contributes(Common.Capability.Layout, layoutAtom),\n ];\n }),\n);\n"],
5
- "mappings": ";;;;;AAIA,SAASA,YAAY;AACrB,YAAYC,YAAY;AAExB,SAASC,YAAYC,cAAc;AAInC,IAAMC,eAAiC;EACrCC,cAAc;EACdC,2BAA2B;EAC3BC,YAAY;EACZC,WAAW;AACb;AAEA,IAAA,gBAAeC,WAAWC,WACjBC,kBAAW,WAAWC,OAAoD;AAC/E,QAAM,EAAEC,aAAY,IAAKD,SAAS,CAAC;AACnC,QAAME,YAAYC,KAAKC,KAAuB;IAAE,GAAGZ;IAAc,GAAGS;EAAa,CAAA;AAEjF,QAAMI,aAAaF,KAAKC,KAAK,CAACE,QAAAA;AAC5B,UAAMC,QAAQD,IAAIJ,SAAAA;AAClB,WAAO;MACLM,MAAM;MACNb,YAAYY,MAAMZ;MAClBc,aAAaF,MAAMd,iBAAiB;MACpCiB,0BAA0BH,MAAMb,8BAA8B;MAC9DE,WAAWW,MAAMX;MACjBe,QAAQ,CAAA;MACRC,UAAU,CAAA;MACVC,gBAAgBC;IAClB;EACF,CAAA;AAEA,SAAO;IACLjB,WAAWkB,YAAYC,aAAad,SAAAA;IACpCL,WAAWkB,YAAYE,OAAOpB,WAAWqB,QAAQb,UAAAA;;AAErD,CAAA,CAAA;",
6
- "names": ["Atom", "Effect", "Capability", "Common", "defaultState", "sidebarState", "complementarySidebarState", "dialogOpen", "workspace", "Capability", "makeModule", "fnUntraced", "props", "initialState", "stateAtom", "Atom", "make", "layoutAtom", "get", "state", "mode", "sidebarOpen", "complementarySidebarOpen", "active", "inactive", "scrollIntoView", "undefined", "contributes", "LayoutState", "Common", "Layout"]
7
- }
@@ -1,23 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
-
3
- // src/meta.ts
4
- import { trim } from "@dxos/util";
5
- var meta = {
6
- id: "dxos.org/plugin/storybook-layout",
7
- name: "Storybook",
8
- description: trim`
9
- Development layout optimized for Storybook component testing and documentation.
10
- Provides specialized views for component development and design system exploration.
11
- `,
12
- source: "https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-testing"
13
- };
14
-
15
- // src/types/capabilities.ts
16
- import { Capability } from "@dxos/app-framework";
17
- var LayoutState = Capability.make(`${meta.id}/state`);
18
-
19
- export {
20
- meta,
21
- LayoutState
22
- };
23
- //# sourceMappingURL=chunk-OWK6XE6C.mjs.map
@@ -1,7 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/meta.ts", "../../../src/types/capabilities.ts"],
4
- "sourcesContent": ["//\n// Copyright 2023 DXOS.org\n//\n\nimport { type Plugin } from '@dxos/app-framework';\nimport { trim } from '@dxos/util';\n\nexport const meta: Plugin.Meta = {\n id: 'dxos.org/plugin/storybook-layout',\n name: 'Storybook',\n description: trim`\n Development layout optimized for Storybook component testing and documentation.\n Provides specialized views for component development and design system exploration.\n `,\n source: 'https://github.com/dxos/dxos/tree/main/packages/plugins/plugin-testing',\n};\n", "//\n// Copyright 2025 DXOS.org\n//\n\nimport { type Atom } from '@effect-atom/atom-react';\n\nimport { Capability } from '@dxos/app-framework';\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';\n popoverTitle?: Label;\n popoverContent?: any;\n\n workspace: string;\n};\n\nexport const LayoutState = Capability.make<Atom.Writable<LayoutStateProps>>(`${meta.id}/state`);\n"],
5
- "mappings": ";;;AAKA,SAASA,YAAY;AAEd,IAAMC,OAAoB;EAC/BC,IAAI;EACJC,MAAM;EACNC,aAAaC;;;;EAIbC,QAAQ;AACV;;;ACTA,SAASC,kBAAkB;AA6BpB,IAAMC,cAAcC,WAAWC,KAAsC,GAAGC,KAAKC,EAAE,QAAQ;",
6
- "names": ["trim", "meta", "id", "name", "description", "trim", "source", "Capability", "LayoutState", "Capability", "make", "meta", "id"]
7
- }
@@ -1,112 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- import {
3
- LayoutState
4
- } from "./chunk-OWK6XE6C.mjs";
5
-
6
- // src/capabilities/operation-resolver/operation-resolver.ts
7
- import * as Effect from "effect/Effect";
8
- import { Capability, Common } from "@dxos/app-framework";
9
- import { OperationResolver } from "@dxos/operation";
10
- var operation_resolver_default = Capability.makeModule(Effect.fnUntraced(function* () {
11
- const registry = yield* Capability.get(Common.Capability.AtomRegistry);
12
- const stateAtom = yield* Capability.get(LayoutState);
13
- const updateState = (fn) => {
14
- const current = registry.get(stateAtom);
15
- registry.set(stateAtom, {
16
- ...current,
17
- ...fn(current)
18
- });
19
- };
20
- return Capability.contributes(Common.Capability.OperationResolver, [
21
- OperationResolver.make({
22
- operation: Common.LayoutOperation.UpdateSidebar,
23
- handler: Effect.fnUntraced(function* ({ state }) {
24
- updateState((layout) => {
25
- const next = state ?? layout.sidebarState;
26
- if (next !== layout.sidebarState) {
27
- return {
28
- sidebarState: next
29
- };
30
- }
31
- return {};
32
- });
33
- })
34
- }),
35
- OperationResolver.make({
36
- operation: Common.LayoutOperation.UpdateComplementary,
37
- handler: Effect.fnUntraced(function* ({ state }) {
38
- updateState((layout) => {
39
- const next = state ?? layout.complementarySidebarState;
40
- if (next !== layout.complementarySidebarState) {
41
- return {
42
- complementarySidebarState: next
43
- };
44
- }
45
- return {};
46
- });
47
- })
48
- }),
49
- OperationResolver.make({
50
- operation: Common.LayoutOperation.UpdateDialog,
51
- handler: Effect.fnUntraced(function* ({ subject, state, type, blockAlign, overlayClasses, overlayStyle, props }) {
52
- updateState(() => ({
53
- dialogOpen: state ?? Boolean(subject),
54
- dialogType: type ?? "default",
55
- dialogBlockAlign: blockAlign ?? "center",
56
- dialogOverlayClasses: overlayClasses,
57
- dialogOverlayStyle: overlayStyle,
58
- dialogContent: subject ? {
59
- component: subject,
60
- props
61
- } : null
62
- }));
63
- })
64
- }),
65
- OperationResolver.make({
66
- operation: Common.LayoutOperation.UpdatePopover,
67
- handler: Effect.fnUntraced(function* (input) {
68
- const { subject, state, side, kind, props } = input;
69
- updateState(() => {
70
- const base = {
71
- popoverKind: kind ?? "base",
72
- popoverTitle: kind === "card" ? input.title : void 0,
73
- popoverContent: typeof subject === "string" ? {
74
- component: subject,
75
- props
76
- } : subject ? {
77
- subject
78
- } : void 0,
79
- popoverOpen: state ?? Boolean(subject),
80
- popoverSide: side
81
- };
82
- if ("variant" in input && input.variant === "virtual") {
83
- return {
84
- ...base,
85
- popoverVariant: "virtual",
86
- popoverAnchor: input.anchor
87
- };
88
- } else if ("anchorId" in input) {
89
- return {
90
- ...base,
91
- popoverVariant: "react",
92
- popoverAnchorId: input.anchorId
93
- };
94
- }
95
- return base;
96
- });
97
- })
98
- }),
99
- OperationResolver.make({
100
- operation: Common.LayoutOperation.SwitchWorkspace,
101
- handler: Effect.fnUntraced(function* ({ subject }) {
102
- updateState(() => ({
103
- workspace: subject
104
- }));
105
- })
106
- })
107
- ]);
108
- }));
109
- export {
110
- operation_resolver_default as default
111
- };
112
- //# sourceMappingURL=operation-resolver-DJI7OPBP.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 { Capability, Common } from '@dxos/app-framework';\nimport { OperationResolver } from '@dxos/operation';\n\nimport { LayoutState, type LayoutStateProps } from '../../types';\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* () {\n const registry = yield* Capability.get(Common.Capability.AtomRegistry);\n const stateAtom = yield* Capability.get(LayoutState);\n\n const updateState = (fn: (state: LayoutStateProps) => Partial<LayoutStateProps>) => {\n const current = registry.get(stateAtom);\n registry.set(stateAtom, { ...current, ...fn(current) });\n };\n\n return Capability.contributes(Common.Capability.OperationResolver, [\n OperationResolver.make({\n operation: Common.LayoutOperation.UpdateSidebar,\n handler: Effect.fnUntraced(function* ({ state }) {\n updateState((layout) => {\n const next = state ?? layout.sidebarState;\n if (next !== layout.sidebarState) {\n return { sidebarState: next };\n }\n return {};\n });\n }),\n }),\n OperationResolver.make({\n operation: Common.LayoutOperation.UpdateComplementary,\n handler: Effect.fnUntraced(function* ({ state }) {\n updateState((layout) => {\n const next = state ?? layout.complementarySidebarState;\n if (next !== layout.complementarySidebarState) {\n return { complementarySidebarState: next };\n }\n return {};\n });\n }),\n }),\n OperationResolver.make({\n operation: Common.LayoutOperation.UpdateDialog,\n handler: Effect.fnUntraced(function* ({\n subject,\n state,\n type,\n blockAlign,\n overlayClasses,\n overlayStyle,\n props,\n }) {\n updateState(() => ({\n dialogOpen: state ?? Boolean(subject),\n dialogType: type ?? 'default',\n dialogBlockAlign: blockAlign ?? 'center',\n dialogOverlayClasses: overlayClasses,\n dialogOverlayStyle: overlayStyle,\n dialogContent: subject ? { component: subject, props } : null,\n }));\n }),\n }),\n OperationResolver.make({\n operation: Common.LayoutOperation.UpdatePopover,\n handler: Effect.fnUntraced(function* (input) {\n const { subject, state, side, kind, props } = input;\n updateState(() => {\n const base: Partial<LayoutStateProps> = {\n popoverKind: kind ?? 'base',\n popoverTitle: kind === 'card' ? input.title : undefined,\n popoverContent:\n typeof subject === 'string' ? { component: subject, props } : subject ? { subject } : undefined,\n popoverOpen: state ?? Boolean(subject),\n popoverSide: side,\n };\n if ('variant' in input && input.variant === 'virtual') {\n return { ...base, popoverVariant: 'virtual', popoverAnchor: input.anchor };\n } else if ('anchorId' in input) {\n return { ...base, popoverVariant: 'react', popoverAnchorId: input.anchorId };\n }\n return base;\n });\n }),\n }),\n OperationResolver.make({\n operation: Common.LayoutOperation.SwitchWorkspace,\n handler: Effect.fnUntraced(function* ({ subject }) {\n updateState(() => ({ workspace: subject }));\n }),\n }),\n ]);\n }),\n);\n"],
5
- "mappings": ";;;;;;AAIA,YAAYA,YAAY;AAExB,SAASC,YAAYC,cAAc;AACnC,SAASC,yBAAyB;AAIlC,IAAA,6BAAeC,WAAWC,WACjBC,kBAAW,aAAA;AAChB,QAAMC,WAAW,OAAOH,WAAWI,IAAIC,OAAOL,WAAWM,YAAY;AACrE,QAAMC,YAAY,OAAOP,WAAWI,IAAII,WAAAA;AAExC,QAAMC,cAAc,CAACC,OAAAA;AACnB,UAAMC,UAAUR,SAASC,IAAIG,SAAAA;AAC7BJ,aAASS,IAAIL,WAAW;MAAE,GAAGI;MAAS,GAAGD,GAAGC,OAAAA;IAAS,CAAA;EACvD;AAEA,SAAOX,WAAWa,YAAYR,OAAOL,WAAWc,mBAAmB;IACjEA,kBAAkBC,KAAK;MACrBC,WAAWX,OAAOY,gBAAgBC;MAClCC,SAAgBjB,kBAAW,WAAW,EAAEkB,MAAK,GAAE;AAC7CX,oBAAY,CAACY,WAAAA;AACX,gBAAMC,OAAOF,SAASC,OAAOE;AAC7B,cAAID,SAASD,OAAOE,cAAc;AAChC,mBAAO;cAAEA,cAAcD;YAAK;UAC9B;AACA,iBAAO,CAAC;QACV,CAAA;MACF,CAAA;IACF,CAAA;IACAR,kBAAkBC,KAAK;MACrBC,WAAWX,OAAOY,gBAAgBO;MAClCL,SAAgBjB,kBAAW,WAAW,EAAEkB,MAAK,GAAE;AAC7CX,oBAAY,CAACY,WAAAA;AACX,gBAAMC,OAAOF,SAASC,OAAOI;AAC7B,cAAIH,SAASD,OAAOI,2BAA2B;AAC7C,mBAAO;cAAEA,2BAA2BH;YAAK;UAC3C;AACA,iBAAO,CAAC;QACV,CAAA;MACF,CAAA;IACF,CAAA;IACAR,kBAAkBC,KAAK;MACrBC,WAAWX,OAAOY,gBAAgBS;MAClCP,SAAgBjB,kBAAW,WAAW,EACpCyB,SACAP,OACAQ,MACAC,YACAC,gBACAC,cACAC,MAAK,GACN;AACCvB,oBAAY,OAAO;UACjBwB,YAAYb,SAASc,QAAQP,OAAAA;UAC7BQ,YAAYP,QAAQ;UACpBQ,kBAAkBP,cAAc;UAChCQ,sBAAsBP;UACtBQ,oBAAoBP;UACpBQ,eAAeZ,UAAU;YAAEa,WAAWb;YAASK;UAAM,IAAI;QAC3D,EAAA;MACF,CAAA;IACF,CAAA;IACAlB,kBAAkBC,KAAK;MACrBC,WAAWX,OAAOY,gBAAgBwB;MAClCtB,SAAgBjB,kBAAW,WAAWwC,OAAK;AACzC,cAAM,EAAEf,SAASP,OAAOuB,MAAMC,MAAMZ,MAAK,IAAKU;AAC9CjC,oBAAY,MAAA;AACV,gBAAMoC,OAAkC;YACtCC,aAAaF,QAAQ;YACrBG,cAAcH,SAAS,SAASF,MAAMM,QAAQC;YAC9CC,gBACE,OAAOvB,YAAY,WAAW;cAAEa,WAAWb;cAASK;YAAM,IAAIL,UAAU;cAAEA;YAAQ,IAAIsB;YACxFE,aAAa/B,SAASc,QAAQP,OAAAA;YAC9ByB,aAAaT;UACf;AACA,cAAI,aAAaD,SAASA,MAAMW,YAAY,WAAW;AACrD,mBAAO;cAAE,GAAGR;cAAMS,gBAAgB;cAAWC,eAAeb,MAAMc;YAAO;UAC3E,WAAW,cAAcd,OAAO;AAC9B,mBAAO;cAAE,GAAGG;cAAMS,gBAAgB;cAASG,iBAAiBf,MAAMgB;YAAS;UAC7E;AACA,iBAAOb;QACT,CAAA;MACF,CAAA;IACF,CAAA;IACA/B,kBAAkBC,KAAK;MACrBC,WAAWX,OAAOY,gBAAgB0C;MAClCxC,SAAgBjB,kBAAW,WAAW,EAAEyB,QAAO,GAAE;AAC/ClB,oBAAY,OAAO;UAAEmD,WAAWjC;QAAQ,EAAA;MAC1C,CAAA;IACF,CAAA;GACD;AACH,CAAA,CAAA;",
6
- "names": ["Effect", "Capability", "Common", "OperationResolver", "Capability", "makeModule", "fnUntraced", "registry", "get", "Common", "AtomRegistry", "stateAtom", "LayoutState", "updateState", "fn", "current", "set", "contributes", "OperationResolver", "make", "operation", "LayoutOperation", "UpdateSidebar", "handler", "state", "layout", "next", "sidebarState", "UpdateComplementary", "complementarySidebarState", "UpdateDialog", "subject", "type", "blockAlign", "overlayClasses", "overlayStyle", "props", "dialogOpen", "Boolean", "dialogType", "dialogBlockAlign", "dialogOverlayClasses", "dialogOverlayStyle", "dialogContent", "component", "UpdatePopover", "input", "side", "kind", "base", "popoverKind", "popoverTitle", "title", "undefined", "popoverContent", "popoverOpen", "popoverSide", "variant", "popoverVariant", "popoverAnchor", "anchor", "popoverAnchorId", "anchorId", "SwitchWorkspace", "workspace"]
7
- }
@@ -1,43 +0,0 @@
1
- import { createRequire } from 'node:module';const require = createRequire(import.meta.url);
2
- import {
3
- LayoutState
4
- } from "./chunk-OWK6XE6C.mjs";
5
-
6
- // src/capabilities/state/state.tsx
7
- import { Atom } from "@effect-atom/atom-react";
8
- import * as Effect from "effect/Effect";
9
- import { Capability, Common } from "@dxos/app-framework";
10
- var defaultState = {
11
- sidebarState: "closed",
12
- complementarySidebarState: "closed",
13
- dialogOpen: false,
14
- workspace: "default"
15
- };
16
- var state_default = Capability.makeModule(Effect.fnUntraced(function* (props) {
17
- const { initialState } = props ?? {};
18
- const stateAtom = Atom.make({
19
- ...defaultState,
20
- ...initialState
21
- });
22
- const layoutAtom = Atom.make((get) => {
23
- const state = get(stateAtom);
24
- return {
25
- mode: "storybook",
26
- dialogOpen: state.dialogOpen,
27
- sidebarOpen: state.sidebarState === "expanded",
28
- complementarySidebarOpen: state.complementarySidebarState === "expanded",
29
- workspace: state.workspace,
30
- active: [],
31
- inactive: [],
32
- scrollIntoView: void 0
33
- };
34
- });
35
- return [
36
- Capability.contributes(LayoutState, stateAtom),
37
- Capability.contributes(Common.Capability.Layout, layoutAtom)
38
- ];
39
- }));
40
- export {
41
- state_default as default
42
- };
43
- //# sourceMappingURL=state-UF2MWBFU.mjs.map
@@ -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, Common } from '@dxos/app-framework';\n\nimport { LayoutState, type LayoutStateProps } from '../../types';\n\nconst defaultState: LayoutStateProps = {\n sidebarState: 'closed',\n complementarySidebarState: 'closed',\n dialogOpen: false,\n workspace: 'default',\n};\n\nexport default Capability.makeModule(\n Effect.fnUntraced(function* (props?: { initialState?: Partial<LayoutStateProps> }) {\n const { initialState } = props ?? {};\n const stateAtom = Atom.make<LayoutStateProps>({ ...defaultState, ...initialState });\n\n const layoutAtom = Atom.make((get): Common.Capability.Layout => {\n const state = get(stateAtom);\n return {\n mode: 'storybook',\n dialogOpen: state.dialogOpen,\n sidebarOpen: state.sidebarState === 'expanded',\n complementarySidebarOpen: state.complementarySidebarState === 'expanded',\n workspace: state.workspace,\n active: [],\n inactive: [],\n scrollIntoView: undefined,\n };\n });\n\n return [\n Capability.contributes(LayoutState, stateAtom),\n Capability.contributes(Common.Capability.Layout, layoutAtom),\n ];\n }),\n);\n"],
5
- "mappings": ";;;;;;AAIA,SAASA,YAAY;AACrB,YAAYC,YAAY;AAExB,SAASC,YAAYC,cAAc;AAInC,IAAMC,eAAiC;EACrCC,cAAc;EACdC,2BAA2B;EAC3BC,YAAY;EACZC,WAAW;AACb;AAEA,IAAA,gBAAeC,WAAWC,WACjBC,kBAAW,WAAWC,OAAoD;AAC/E,QAAM,EAAEC,aAAY,IAAKD,SAAS,CAAC;AACnC,QAAME,YAAYC,KAAKC,KAAuB;IAAE,GAAGZ;IAAc,GAAGS;EAAa,CAAA;AAEjF,QAAMI,aAAaF,KAAKC,KAAK,CAACE,QAAAA;AAC5B,UAAMC,QAAQD,IAAIJ,SAAAA;AAClB,WAAO;MACLM,MAAM;MACNb,YAAYY,MAAMZ;MAClBc,aAAaF,MAAMd,iBAAiB;MACpCiB,0BAA0BH,MAAMb,8BAA8B;MAC9DE,WAAWW,MAAMX;MACjBe,QAAQ,CAAA;MACRC,UAAU,CAAA;MACVC,gBAAgBC;IAClB;EACF,CAAA;AAEA,SAAO;IACLjB,WAAWkB,YAAYC,aAAad,SAAAA;IACpCL,WAAWkB,YAAYE,OAAOpB,WAAWqB,QAAQb,UAAAA;;AAErD,CAAA,CAAA;",
6
- "names": ["Atom", "Effect", "Capability", "Common", "defaultState", "sidebarState", "complementarySidebarState", "dialogOpen", "workspace", "Capability", "makeModule", "fnUntraced", "props", "initialState", "stateAtom", "Atom", "make", "layoutAtom", "get", "state", "mode", "sidebarOpen", "complementarySidebarOpen", "active", "inactive", "scrollIntoView", "undefined", "contributes", "LayoutState", "Common", "Layout"]
7
- }
@@ -1,3 +0,0 @@
1
- import { Capability } from '@dxos/app-framework';
2
- export declare const OperationResolver: Capability.LazyCapability<void, Capability.Capability<Capability.InterfaceDef<import("@dxos/app-framework/Common").Capability.OperationResolver[]>>, Error>;
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/operation-resolver/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,eAAO,MAAM,iBAAiB,6JAA6E,CAAC"}
@@ -1,5 +0,0 @@
1
- import * as Effect from 'effect/Effect';
2
- import { Capability, Common } from '@dxos/app-framework';
3
- declare const _default: (props?: void | undefined) => Effect.Effect<Capability.Capability<Capability.InterfaceDef<Common.Capability.OperationResolver[]>>, Error, Capability.Service>;
4
- export default _default;
5
- //# sourceMappingURL=operation-resolver.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"operation-resolver.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/operation-resolver/operation-resolver.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;;AAKzD,wBAsFE"}
@@ -1,14 +0,0 @@
1
- import { Capability } from '@dxos/app-framework';
2
- export declare const State: Capability.LazyCapability<{
3
- initialState?: Partial<import("../../types").LayoutStateProps>;
4
- }, [Capability.Capability<Capability.InterfaceDef<import("@effect-atom/atom/Atom").Writable<import("../../types").LayoutStateProps, import("../../types").LayoutStateProps>>>, Capability.Capability<Capability.InterfaceDef<import("@effect-atom/atom/Atom").Atom<Readonly<{
5
- mode: string;
6
- dialogOpen: boolean;
7
- sidebarOpen: boolean;
8
- complementarySidebarOpen: boolean;
9
- workspace: string;
10
- active: string[];
11
- inactive: string[];
12
- scrollIntoView: string | undefined;
13
- }>>>>], Error>;
14
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/state/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,eAAO,MAAM,KAAK;;;;;;;;;;;cAAoD,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../../../../src/capabilities/state/state.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,IAAI,EAAE,MAAM,yBAAyB,CAAC;AAC/C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,UAAU,EAAU,MAAM,qBAAqB,CAAC;AAEzD,OAAO,EAAe,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;;mBAUT,OAAO,CAAC,gBAAgB,CAAC;;;;;;;;;;;AADjF,wBAwBE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"Layout.d.ts","sourceRoot":"","sources":["../../../../src/components/Layout.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,EAAE,KAAK,iBAAiB,EAAwD,MAAM,OAAO,CAAC;AAqB5G,eAAO,MAAM,MAAM,GAAI,cAAc,iBAAiB,CAAC,EAAE,CAAC,sBAkIzD,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,WAAW;IAAE,KAAK,CAAC,EAAE,KAAK,CAAA;CAAE,sBAaxD,CAAC"}
@@ -1,7 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import { Capability } from '@dxos/app-framework';
6
-
7
- export const OperationResolver = Capability.lazy('OperationResolver', () => import('./operation-resolver'));