@dxos/plugin-testing 0.8.4-main.c85a9c8dae → 0.8.4-main.dfabb4ec29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (162) hide show
  1. package/dist/lib/neutral/StorybookPlugin.mjs +10 -0
  2. package/dist/lib/neutral/StorybookPlugin.mjs.map +7 -0
  3. package/dist/lib/neutral/add-toast-Z2RXG4RX.mjs +23 -0
  4. package/dist/lib/neutral/add-toast-Z2RXG4RX.mjs.map +7 -0
  5. package/dist/lib/neutral/capabilities/index.mjs +11 -0
  6. package/dist/lib/neutral/capabilities/index.mjs.map +7 -0
  7. package/dist/lib/neutral/chunk-7UPIIIZM.mjs +22 -0
  8. package/dist/lib/neutral/chunk-7UPIIIZM.mjs.map +7 -0
  9. package/dist/lib/neutral/chunk-E4LBVPH5.mjs +8 -0
  10. package/dist/lib/neutral/chunk-E4LBVPH5.mjs.map +7 -0
  11. package/dist/lib/neutral/chunk-J5LGTIGS.mjs +10 -0
  12. package/dist/lib/neutral/chunk-J5LGTIGS.mjs.map +7 -0
  13. package/dist/lib/neutral/chunk-NZ2VT6N2.mjs +17 -0
  14. package/dist/lib/neutral/chunk-NZ2VT6N2.mjs.map +7 -0
  15. package/dist/lib/neutral/chunk-R7AV233N.mjs +31 -0
  16. package/dist/lib/neutral/chunk-R7AV233N.mjs.map +7 -0
  17. package/dist/lib/neutral/chunk-ULNF6GTG.mjs +21 -0
  18. package/dist/lib/neutral/chunk-ULNF6GTG.mjs.map +7 -0
  19. package/dist/lib/{browser/chunk-YHPXIILW.mjs → neutral/chunk-ZVN23V74.mjs} +3 -8
  20. package/dist/lib/neutral/chunk-ZVN23V74.mjs.map +7 -0
  21. package/dist/lib/neutral/close-L3FBJQ3J.mjs +12 -0
  22. package/dist/lib/neutral/close-L3FBJQ3J.mjs.map +7 -0
  23. package/dist/lib/{browser → neutral/components}/index.mjs +54 -76
  24. package/dist/lib/neutral/components/index.mjs.map +7 -0
  25. package/dist/lib/neutral/core.mjs +8 -0
  26. package/dist/lib/neutral/core.mjs.map +7 -0
  27. package/dist/lib/neutral/harness.mjs +37 -0
  28. package/dist/lib/neutral/harness.mjs.map +7 -0
  29. package/dist/lib/neutral/index.mjs +20 -0
  30. package/dist/lib/neutral/index.mjs.map +7 -0
  31. package/dist/lib/neutral/meta.json +1 -0
  32. package/dist/lib/neutral/meta.mjs +8 -0
  33. package/dist/lib/neutral/meta.mjs.map +7 -0
  34. package/dist/lib/neutral/open-WBONYQ47.mjs +14 -0
  35. package/dist/lib/neutral/open-WBONYQ47.mjs.map +7 -0
  36. package/dist/lib/neutral/operation-handler-LQIWHQVY.mjs +13 -0
  37. package/dist/lib/neutral/operation-handler-LQIWHQVY.mjs.map +7 -0
  38. package/dist/lib/neutral/operations/index.mjs +8 -0
  39. package/dist/lib/neutral/operations/index.mjs.map +7 -0
  40. package/dist/lib/neutral/plugin.mjs +16 -0
  41. package/dist/lib/neutral/plugin.mjs.map +7 -0
  42. package/dist/lib/neutral/scroll-into-view-BKOOOECC.mjs +12 -0
  43. package/dist/lib/neutral/scroll-into-view-BKOOOECC.mjs.map +7 -0
  44. package/dist/lib/neutral/set-layout-mode-2KHD2AEY.mjs +12 -0
  45. package/dist/lib/neutral/set-layout-mode-2KHD2AEY.mjs.map +7 -0
  46. package/dist/lib/{browser/state-MIKI67FF.mjs → neutral/state-AJ62JEEG.mjs} +6 -6
  47. package/dist/lib/neutral/state-AJ62JEEG.mjs.map +7 -0
  48. package/dist/lib/neutral/switch-workspace-SAT2NGXV.mjs +20 -0
  49. package/dist/lib/neutral/switch-workspace-SAT2NGXV.mjs.map +7 -0
  50. package/dist/lib/neutral/types/index.mjs +8 -0
  51. package/dist/lib/neutral/types/index.mjs.map +7 -0
  52. package/dist/lib/neutral/update-complementary-JP2OL73Z.mjs +26 -0
  53. package/dist/lib/neutral/update-complementary-JP2OL73Z.mjs.map +7 -0
  54. package/dist/lib/neutral/update-dialog-MX6IKKJX.mjs +28 -0
  55. package/dist/lib/neutral/update-dialog-MX6IKKJX.mjs.map +7 -0
  56. package/dist/lib/neutral/update-popover-DOORE3TD.mjs +46 -0
  57. package/dist/lib/neutral/update-popover-DOORE3TD.mjs.map +7 -0
  58. package/dist/lib/neutral/update-sidebar-LWQ3IA6S.mjs +26 -0
  59. package/dist/lib/neutral/update-sidebar-LWQ3IA6S.mjs.map +7 -0
  60. package/dist/types/src/StorybookPlugin.d.ts +3 -2
  61. package/dist/types/src/StorybookPlugin.d.ts.map +1 -1
  62. package/dist/types/src/capabilities/index.d.ts +15 -2
  63. package/dist/types/src/capabilities/index.d.ts.map +1 -1
  64. package/dist/types/src/capabilities/operation-handler.d.ts +6 -0
  65. package/dist/types/src/capabilities/operation-handler.d.ts.map +1 -0
  66. package/dist/types/src/capabilities/{state/state.d.ts → state.d.ts} +3 -3
  67. package/dist/types/src/capabilities/state.d.ts.map +1 -0
  68. package/dist/types/src/components/Layout/Layout.d.ts.map +1 -0
  69. package/dist/types/src/components/Layout/index.d.ts +2 -0
  70. package/dist/types/src/components/Layout/index.d.ts.map +1 -0
  71. package/dist/types/src/core.d.ts +1 -7
  72. package/dist/types/src/core.d.ts.map +1 -1
  73. package/dist/types/src/harness.d.ts +20 -0
  74. package/dist/types/src/harness.d.ts.map +1 -0
  75. package/dist/types/src/index.d.ts +1 -0
  76. package/dist/types/src/index.d.ts.map +1 -1
  77. package/dist/types/src/operations/add-toast.d.ts +5 -0
  78. package/dist/types/src/operations/add-toast.d.ts.map +1 -0
  79. package/dist/types/src/operations/close.d.ts +5 -0
  80. package/dist/types/src/operations/close.d.ts.map +1 -0
  81. package/dist/types/src/operations/index.d.ts +3 -0
  82. package/dist/types/src/operations/index.d.ts.map +1 -0
  83. package/dist/types/src/operations/open.d.ts +5 -0
  84. package/dist/types/src/operations/open.d.ts.map +1 -0
  85. package/dist/types/src/operations/scroll-into-view.d.ts +5 -0
  86. package/dist/types/src/operations/scroll-into-view.d.ts.map +1 -0
  87. package/dist/types/src/operations/set-layout-mode.d.ts +5 -0
  88. package/dist/types/src/operations/set-layout-mode.d.ts.map +1 -0
  89. package/dist/types/src/operations/switch-workspace.d.ts +5 -0
  90. package/dist/types/src/operations/switch-workspace.d.ts.map +1 -0
  91. package/dist/types/src/operations/update-complementary.d.ts +5 -0
  92. package/dist/types/src/operations/update-complementary.d.ts.map +1 -0
  93. package/dist/types/src/operations/update-dialog.d.ts +5 -0
  94. package/dist/types/src/operations/update-dialog.d.ts.map +1 -0
  95. package/dist/types/src/operations/update-popover.d.ts +5 -0
  96. package/dist/types/src/operations/update-popover.d.ts.map +1 -0
  97. package/dist/types/src/operations/update-sidebar.d.ts +5 -0
  98. package/dist/types/src/operations/update-sidebar.d.ts.map +1 -0
  99. package/dist/types/src/operations/update-state.d.ts +5 -0
  100. package/dist/types/src/operations/update-state.d.ts.map +1 -0
  101. package/dist/types/src/plugin.d.ts +5 -0
  102. package/dist/types/src/plugin.d.ts.map +1 -0
  103. package/dist/types/src/types/{capabilities.d.ts → StorybookCapabilities.d.ts} +3 -1
  104. package/dist/types/src/types/StorybookCapabilities.d.ts.map +1 -0
  105. package/dist/types/src/types/index.d.ts +1 -1
  106. package/dist/types/src/types/index.d.ts.map +1 -1
  107. package/dist/types/tsconfig.tsbuildinfo +1 -1
  108. package/package.json +60 -19
  109. package/src/StorybookPlugin.ts +10 -8
  110. package/src/capabilities/index.ts +8 -2
  111. package/src/capabilities/operation-handler.ts +16 -0
  112. package/src/capabilities/{state/state.tsx → state.tsx} +9 -5
  113. package/src/components/Layout/Layout.tsx +236 -0
  114. package/src/components/Layout/index.ts +5 -0
  115. package/src/core.ts +19 -9
  116. package/src/harness.ts +52 -0
  117. package/src/index.ts +6 -0
  118. package/src/meta.ts +1 -1
  119. package/src/operations/add-toast.ts +22 -0
  120. package/src/operations/close.ts +14 -0
  121. package/src/operations/index.ts +18 -0
  122. package/src/operations/open.ts +18 -0
  123. package/src/operations/scroll-into-view.ts +14 -0
  124. package/src/operations/set-layout-mode.ts +14 -0
  125. package/src/operations/switch-workspace.ts +20 -0
  126. package/src/operations/update-complementary.ts +27 -0
  127. package/src/operations/update-dialog.ts +27 -0
  128. package/src/operations/update-popover.ts +37 -0
  129. package/src/operations/update-sidebar.ts +26 -0
  130. package/src/operations/update-state.ts +19 -0
  131. package/src/plugin.ts +12 -0
  132. package/src/types/{capabilities.ts → StorybookCapabilities.ts} +7 -2
  133. package/src/types/index.ts +1 -1
  134. package/dist/lib/browser/chunk-YHPXIILW.mjs.map +0 -7
  135. package/dist/lib/browser/index.mjs.map +0 -7
  136. package/dist/lib/browser/meta.json +0 -1
  137. package/dist/lib/browser/operation-resolver-FLU4ZARD.mjs +0 -112
  138. package/dist/lib/browser/operation-resolver-FLU4ZARD.mjs.map +0 -7
  139. package/dist/lib/browser/state-MIKI67FF.mjs.map +0 -7
  140. package/dist/lib/node-esm/chunk-OWK6XE6C.mjs +0 -23
  141. package/dist/lib/node-esm/chunk-OWK6XE6C.mjs.map +0 -7
  142. package/dist/lib/node-esm/index.mjs +0 -206
  143. package/dist/lib/node-esm/index.mjs.map +0 -7
  144. package/dist/lib/node-esm/meta.json +0 -1
  145. package/dist/lib/node-esm/operation-resolver-NWF6KBHP.mjs +0 -113
  146. package/dist/lib/node-esm/operation-resolver-NWF6KBHP.mjs.map +0 -7
  147. package/dist/lib/node-esm/state-JQVVUKO2.mjs +0 -44
  148. package/dist/lib/node-esm/state-JQVVUKO2.mjs.map +0 -7
  149. package/dist/types/src/capabilities/operation-resolver/index.d.ts +0 -3
  150. package/dist/types/src/capabilities/operation-resolver/index.d.ts.map +0 -1
  151. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts +0 -5
  152. package/dist/types/src/capabilities/operation-resolver/operation-resolver.d.ts.map +0 -1
  153. package/dist/types/src/capabilities/state/index.d.ts +0 -14
  154. package/dist/types/src/capabilities/state/index.d.ts.map +0 -1
  155. package/dist/types/src/capabilities/state/state.d.ts.map +0 -1
  156. package/dist/types/src/components/Layout.d.ts.map +0 -1
  157. package/dist/types/src/types/capabilities.d.ts.map +0 -1
  158. package/src/capabilities/operation-resolver/index.ts +0 -7
  159. package/src/capabilities/operation-resolver/operation-resolver.ts +0 -99
  160. package/src/capabilities/state/index.ts +0 -7
  161. package/src/components/Layout.tsx +0 -176
  162. /package/dist/types/src/components/{Layout.d.ts → Layout/Layout.d.ts} +0 -0
@@ -1,7 +0,0 @@
1
- //
2
- // Copyright 2025 DXOS.org
3
- //
4
-
5
- import { Capability } from '@dxos/app-framework';
6
-
7
- export const State = Capability.lazy('State', () => import('./state'));
@@ -1,176 +0,0 @@
1
- //
2
- // Copyright 2023 DXOS.org
3
- //
4
-
5
- import { RegistryContext, useAtomValue } from '@effect-atom/atom-react';
6
- import React, { type PropsWithChildren, useCallback, useContext, useEffect, useRef, useState } from 'react';
7
-
8
- import { Surface, useCapability } from '@dxos/app-framework/ui';
9
- import {
10
- AlertDialog,
11
- Dialog,
12
- Main,
13
- Popover,
14
- type PopoverContentInteractOutsideEvent,
15
- toLocalizedString,
16
- useTranslation,
17
- } from '@dxos/react-ui';
18
- import { Card } from '@dxos/react-ui';
19
- import { Mosaic } from '@dxos/react-ui-mosaic';
20
- import { descriptionMessage, mx } from '@dxos/ui-theme';
21
-
22
- import { meta } from '../meta';
23
- import { LayoutState, type LayoutStateProps } from '../types';
24
-
25
- const debounce_delay = 100;
26
-
27
- // TODO(wittjosiah): Support dialogs, tooltips, maybe toast.
28
- export const Layout = ({ children }: PropsWithChildren<{}>) => {
29
- const { t } = useTranslation(meta.id);
30
- const trigger = useRef<HTMLButtonElement | null>(null);
31
- const registry = useContext(RegistryContext);
32
- const stateAtom = useCapability(LayoutState);
33
- const layout = useAtomValue(stateAtom);
34
- const [iter, setIter] = useState(0);
35
- const [open, setOpen] = useState(false);
36
- const debounceRef = useRef<NodeJS.Timeout | null>(null);
37
-
38
- const updateState = useCallback(
39
- (updates: Partial<LayoutStateProps>) => {
40
- const current = registry.get(stateAtom);
41
- registry.set(stateAtom, { ...current, ...updates });
42
- },
43
- [registry, stateAtom],
44
- );
45
-
46
- useEffect(() => {
47
- setOpen(false);
48
- if (debounceRef.current) {
49
- clearTimeout(debounceRef.current);
50
- debounceRef.current = null;
51
- }
52
- trigger.current = layout.popoverAnchor ?? null;
53
- setIter((iter) => iter + 1);
54
- if (layout.popoverOpen) {
55
- debounceRef.current = setTimeout(() => setOpen(true), debounce_delay);
56
- }
57
- }, [layout.popoverAnchor, layout.popoverContent, layout.popoverOpen]);
58
-
59
- const handleClose = useCallback(() => {
60
- setOpen(false);
61
- updateState({
62
- popoverOpen: false,
63
- popoverAnchor: undefined,
64
- popoverAnchorId: undefined,
65
- popoverSide: undefined,
66
- });
67
- }, [updateState]);
68
-
69
- const handleInteractOutside = useCallback(
70
- (event: KeyboardEvent | PopoverContentInteractOutsideEvent) => {
71
- if (
72
- // TODO(thure): CodeMirror should not focus itself when it updates.
73
- event.type === 'dismissableLayer.focusOutside' &&
74
- (event.currentTarget as HTMLElement | undefined)?.classList.contains('cm-content')
75
- ) {
76
- event.preventDefault();
77
- } else {
78
- handleClose();
79
- }
80
- },
81
- [handleClose],
82
- );
83
-
84
- const DialogRoot = layout.dialogType === 'alert' ? AlertDialog.Root : Dialog.Root;
85
- const DialogOverlay = layout.dialogType === 'alert' ? AlertDialog.Overlay : Dialog.Overlay;
86
-
87
- return (
88
- <div role='none' className='fixed inset-0 flex overflow-hidden'>
89
- <Mosaic.Root>
90
- <Popover.Root open={open}>
91
- <Main.Root
92
- navigationSidebarState={layout.sidebarState}
93
- complementarySidebarState={layout.complementarySidebarState}
94
- onNavigationSidebarStateChange={(next) => updateState({ sidebarState: next })}
95
- onComplementarySidebarStateChange={(next) => updateState({ complementarySidebarState: next })}
96
- >
97
- {children}
98
- </Main.Root>
99
-
100
- <DialogRoot
101
- modal={layout.dialogBlockAlign !== 'end'}
102
- open={layout.dialogOpen}
103
- onOpenChange={(nextOpen) => updateState({ dialogOpen: nextOpen })}
104
- >
105
- {layout.dialogBlockAlign === 'end' ? (
106
- <Surface.Surface
107
- role='dialog'
108
- data={layout.dialogContent}
109
- limit={1}
110
- fallback={ErrorFallback}
111
- placeholder={<div />}
112
- />
113
- ) : (
114
- <DialogOverlay
115
- blockAlign={layout.dialogBlockAlign}
116
- classNames={layout.dialogOverlayClasses}
117
- style={layout.dialogOverlayStyle}
118
- >
119
- <Surface.Surface role='dialog' data={layout.dialogContent} limit={1} fallback={ErrorFallback} />
120
- </DialogOverlay>
121
- )}
122
- </DialogRoot>
123
-
124
- <Popover.VirtualTrigger key={iter} virtualRef={trigger} />
125
- <Popover.Portal>
126
- <Popover.Content
127
- side={layout.popoverSide}
128
- onInteractOutside={handleInteractOutside}
129
- onEscapeKeyDown={handleInteractOutside}
130
- sticky='always'
131
- hideWhenDetached
132
- >
133
- <Popover.Viewport>
134
- {layout.popoverKind === 'card' && (
135
- <Card.Root>
136
- <Card.Toolbar>
137
- {/* TODO(wittjosiah): Cleaner way to handle no drag handle in toolbar? */}
138
- <span />
139
- {layout.popoverTitle ? (
140
- <Card.Title>{toLocalizedString(layout.popoverTitle, t)}</Card.Title>
141
- ) : (
142
- <span />
143
- )}
144
- <Card.CloseIconButton onClick={handleClose} />
145
- </Card.Toolbar>
146
- <Surface.Surface role='card--content' data={layout.popoverContent} limit={1} />
147
- </Card.Root>
148
- )}
149
- {layout.popoverKind === 'base' && (
150
- <Surface.Surface role='popover' data={layout.popoverContent} limit={1} />
151
- )}
152
- </Popover.Viewport>
153
- <Popover.Arrow />
154
- </Popover.Content>
155
- </Popover.Portal>
156
- </Popover.Root>
157
- </Mosaic.Root>
158
- </div>
159
- );
160
- };
161
-
162
- export const ErrorFallback = ({ error }: { error?: Error }) => {
163
- const { t } = useTranslation(meta.id);
164
- const errorString = error?.toString() ?? '';
165
- return (
166
- <div
167
- role='alert'
168
- data-testid='error-boundary-fallback'
169
- className={mx('overflow-auto p-8 dx-attention-surface grid place-items-center')}
170
- >
171
- <p className={mx(descriptionMessage, 'break-words rounded-md p-8', errorString.length < 256 && 'text-lg')}>
172
- {error ? errorString : t('error fallback message')}
173
- </p>
174
- </div>
175
- );
176
- };