@weasel-js/labkit 1.6.1 → 1.7.0

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/_dts/{CanvasStackContext-Wo6OwIVM.d.ts → CanvasStackContext-D2jnIwfk.d.ts} +1 -1
  2. package/dist/_dts/{LayerList.d-BoELAMsM.d.ts → LayerList.d-DiuEArKq.d.ts} +2 -2
  3. package/dist/_dts/PrefsRow.d-TOZ7BgD9.d.ts +79 -0
  4. package/dist/_dts/PropertyPanel.d-D-1paCbE.d.ts +141 -0
  5. package/dist/_dts/{Select.d-Cr8-zoup.d.ts → Select.d-Bensr_MT.d.ts} +11 -1
  6. package/dist/_dts/{Stage-DWBBi8IU.d.ts → Stage-CCWfQQWM.d.ts} +58 -18
  7. package/dist/_dts/index-B2Yj5aA0.d.ts +274 -0
  8. package/dist/_dts/{index-CKyX0ME_.d.ts → index-CsYqUHD3.d.ts} +2 -2
  9. package/dist/_dts/{types-DTuViBvc.d.ts → types-CRPSGFAp.d.ts} +13 -4
  10. package/dist/_dts/{types-B7yBTTF9.d.ts → types-CSm9jgol.d.ts} +2 -2
  11. package/dist/_dts/{useTrialState-CMaV6UD4.d.ts → useTrialState-CTZPgeZ7.d.ts} +1 -1
  12. package/dist/canvas/index.d.ts +6 -6
  13. package/dist/canvas/index.js +2 -2
  14. package/dist/chrome/index.d.ts +5 -5
  15. package/dist/chrome/index.js +8 -8
  16. package/dist/{chunk-QGMOA2YE.js → chunk-275JRRVD.js} +67 -70
  17. package/dist/chunk-275JRRVD.js.map +1 -0
  18. package/dist/{chunk-KHK5FGER.js → chunk-4LJSC7MB.js} +8 -10
  19. package/dist/chunk-4LJSC7MB.js.map +1 -0
  20. package/dist/{chunk-SLAQPUI4.js → chunk-7BO7HNGF.js} +5 -5
  21. package/dist/{chunk-SLAQPUI4.js.map → chunk-7BO7HNGF.js.map} +1 -1
  22. package/dist/chunk-CZZPXUOU.js +3 -0
  23. package/dist/{chunk-SBXNQW4G.js.map → chunk-CZZPXUOU.js.map} +1 -1
  24. package/dist/{chunk-6FLXL3I7.js → chunk-FMK7UQ6V.js} +19 -4
  25. package/dist/chunk-FMK7UQ6V.js.map +1 -0
  26. package/dist/{chunk-O6FFFOHS.js → chunk-FZ7YFQN7.js} +16 -8
  27. package/dist/chunk-FZ7YFQN7.js.map +1 -0
  28. package/dist/{chunk-GHGO52SO.js → chunk-GOZLNM4L.js} +5 -5
  29. package/dist/{chunk-GHGO52SO.js.map → chunk-GOZLNM4L.js.map} +1 -1
  30. package/dist/{chunk-4TT3PNPR.js → chunk-I5DUQ5HM.js} +33 -36
  31. package/dist/chunk-I5DUQ5HM.js.map +1 -0
  32. package/dist/{chunk-NEXR37YJ.js → chunk-J7OWWTCW.js} +4 -5
  33. package/dist/chunk-J7OWWTCW.js.map +1 -0
  34. package/dist/{chunk-IRTGUQ5O.js → chunk-KMJ7RWD3.js} +16 -6
  35. package/dist/chunk-KMJ7RWD3.js.map +1 -0
  36. package/dist/{chunk-S4NCI32V.js → chunk-M7HP3FTK.js} +4 -4
  37. package/dist/{chunk-S4NCI32V.js.map → chunk-M7HP3FTK.js.map} +1 -1
  38. package/dist/chunk-MIM5R4ZT.js +14972 -0
  39. package/dist/chunk-MIM5R4ZT.js.map +1 -0
  40. package/dist/{chunk-ASOK76ZH.js → chunk-T5IBSPAM.js} +59 -26
  41. package/dist/chunk-T5IBSPAM.js.map +1 -0
  42. package/dist/{chunk-DWMSB4CA.js → chunk-UNAZSLWE.js} +82 -16
  43. package/dist/chunk-UNAZSLWE.js.map +1 -0
  44. package/dist/{chunk-TJ77A4A3.js → chunk-Y23G2VZL.js} +5 -9
  45. package/dist/chunk-Y23G2VZL.js.map +1 -0
  46. package/dist/{chunk-HKV7LRHY.js → chunk-YT75VYRD.js} +4 -4
  47. package/dist/{chunk-HKV7LRHY.js.map → chunk-YT75VYRD.js.map} +1 -1
  48. package/dist/{chunk-CGHF6RZV.js → chunk-ZIFPHIWZ.js} +9 -7
  49. package/dist/chunk-ZIFPHIWZ.js.map +1 -0
  50. package/dist/config/index.d.ts +16 -9
  51. package/dist/config/index.js +4 -4
  52. package/dist/controls/index.d.ts +2 -2
  53. package/dist/controls/index.js +5 -5
  54. package/dist/dragdrop/index.d.ts +3 -3
  55. package/dist/index.d.ts +263 -24
  56. package/dist/index.js +376 -237
  57. package/dist/index.js.map +1 -1
  58. package/dist/layers/index.d.ts +4 -4
  59. package/dist/layers/index.js +2 -2
  60. package/dist/loupe/index.d.ts +4 -4
  61. package/dist/loupe/index.js +2 -2
  62. package/dist/overview/index.d.ts +2 -2
  63. package/dist/overview/index.js +9 -8
  64. package/dist/overview/index.js.map +1 -1
  65. package/dist/passthrough/weasel-ui.d.ts +208 -38
  66. package/dist/passthrough/weasel-ui.js +3 -3
  67. package/dist/primitives/index.d.ts +3 -178
  68. package/dist/primitives/index.js +6 -6
  69. package/dist/state/index.d.ts +5 -5
  70. package/dist/state/index.js +4 -4
  71. package/dist/styles.css +91 -83
  72. package/dist/undo/index.d.ts +3 -3
  73. package/package.json +13 -12
  74. package/src/annotations/AnnotationOverlay.tsx +2 -2
  75. package/src/annotations/Annotations.less +0 -10
  76. package/src/annotations/MarkList.tsx +4 -8
  77. package/src/annotations/paint.test.ts +3 -14
  78. package/src/annotations/paint.ts +3 -19
  79. package/src/annotations/svgNodes.test.ts +6 -9
  80. package/src/annotations/svgNodes.ts +3 -3
  81. package/src/canvas/AGENTS.md +1 -0
  82. package/src/canvas/CameraInput.tsx +44 -33
  83. package/src/canvas/CanvasStack.tsx +6 -1
  84. package/src/canvas/LinkedCursor.less +1 -1
  85. package/src/canvas/Stage.test.tsx +33 -4
  86. package/src/canvas/Stage.tsx +6 -1
  87. package/src/canvas/cameraRegistry.test.ts +55 -0
  88. package/src/canvas/cameraRegistry.ts +86 -0
  89. package/src/canvas/cameraZoom.test.ts +46 -0
  90. package/src/canvas/cameraZoom.ts +24 -0
  91. package/src/canvas/index.ts +14 -2
  92. package/src/canvas/sharedScope.test.tsx +94 -0
  93. package/src/chrome/ChromeRegions.stories.tsx +1 -0
  94. package/src/chrome/regions/PaletteRegion.less +0 -7
  95. package/src/chrome/regions/SidebarRegion.less +12 -2
  96. package/src/config/builder.test.ts +2 -1
  97. package/src/config/builder.ts +12 -5
  98. package/src/config/fromConfigField.test.ts +14 -0
  99. package/src/config/fromConfigField.ts +18 -4
  100. package/src/config/path.ts +2 -5
  101. package/src/config/resolve.ts +4 -0
  102. package/src/config/types.ts +13 -9
  103. package/src/controls/ControlPanel.less +1 -1
  104. package/src/controls/ControlPanel.stories.tsx +3 -2
  105. package/src/controls/ControlPanel.test.tsx +64 -11
  106. package/src/controls/ControlPanel.tsx +52 -2
  107. package/src/index.ts +15 -1
  108. package/src/lab/Lab.tsx +83 -72
  109. package/src/lab/{LabFit.stories.less → LabFit.browser.test.less} +1 -1
  110. package/src/lab/{LabFit.stories.tsx → LabFit.browser.test.tsx} +41 -63
  111. package/src/lab/LabFullChrome.stories.tsx +1 -0
  112. package/src/lab/LabHeader.test.tsx +24 -14
  113. package/src/lab/LabHeader.tsx +11 -12
  114. package/src/lab/LabShell.less +8 -17
  115. package/src/lab/LabSwitcher.less +6 -6
  116. package/src/lab/LabZoom.test.tsx +223 -0
  117. package/src/lab/LabZoom.tsx +170 -0
  118. package/src/lab/index.ts +1 -0
  119. package/src/loupe/LoupeGestures.tsx +1 -1
  120. package/src/overview/TrialOverview.tsx +7 -5
  121. package/src/passthrough/weasel-ui.test.ts +2 -0
  122. package/src/passthrough/weasel-ui.ts +16 -4
  123. package/src/primitives/FloatingPanel.test.tsx +11 -0
  124. package/src/primitives/FloatingPanel.tsx +2 -5
  125. package/src/primitives/JobProgress.less +1 -1
  126. package/src/primitives/Legend.stories.tsx +1 -0
  127. package/src/primitives/Readout.browser.test.tsx +137 -0
  128. package/src/primitives/Readout.less +12 -0
  129. package/src/primitives/Readout.stories.tsx +58 -0
  130. package/src/primitives/Readout.test.tsx +93 -0
  131. package/src/primitives/Readout.tsx +56 -0
  132. package/src/primitives/index.ts +2 -0
  133. package/src/specimen/Specimen.stories.tsx +1 -0
  134. package/src/specimen/Specimen.tsx +2 -2
  135. package/src/state/Persistence.browser.test.tsx +47 -0
  136. package/src/state/store.test.ts +5 -1
  137. package/src/state/usePersistedState.test.tsx +1 -1
  138. package/src/styles.less +1 -0
  139. package/src/theme/Interstellar.stories.tsx +3 -1
  140. package/src/theme/base.less +21 -47
  141. package/src/theme/interstellar.test.ts +1 -1
  142. package/src/theme/interstellar.theme.json +10 -3
  143. package/src/trial/Trial.less +0 -13
  144. package/src/trial/Trial.tsx +12 -6
  145. package/src/trial/TrialChrome.tsx +21 -3
  146. package/dist/_dts/PrefsRow.d-DFpPIeIC.d.ts +0 -39
  147. package/dist/_dts/PropertyField.d-D0ndfIIt.d.ts +0 -404
  148. package/dist/chunk-4TT3PNPR.js.map +0 -1
  149. package/dist/chunk-6FLXL3I7.js.map +0 -1
  150. package/dist/chunk-ASOK76ZH.js.map +0 -1
  151. package/dist/chunk-CGHF6RZV.js.map +0 -1
  152. package/dist/chunk-DWMSB4CA.js.map +0 -1
  153. package/dist/chunk-IRTGUQ5O.js.map +0 -1
  154. package/dist/chunk-KHK5FGER.js.map +0 -1
  155. package/dist/chunk-NEXR37YJ.js.map +0 -1
  156. package/dist/chunk-O6FFFOHS.js.map +0 -1
  157. package/dist/chunk-QGMOA2YE.js.map +0 -1
  158. package/dist/chunk-SBXNQW4G.js +0 -3
  159. package/dist/chunk-TJ77A4A3.js.map +0 -1
  160. package/dist/chunk-TYN6MLXX.js +0 -13864
  161. package/dist/chunk-TYN6MLXX.js.map +0 -1
  162. package/src/state/Persistence.stories.tsx +0 -75
@@ -1,180 +1,5 @@
1
1
  export { a as FloatingPanel, F as FloatingPanelProps } from '../_dts/FloatingPanel-7j0IcXwz.js';
2
- import * as react from 'react';
3
- import { ReactNode, MouseEventHandler } from 'react';
4
- import { JobHandle } from '../index.js';
2
+ export { F as FpsMeter, J as JobProgress, g as JobProgressProps, L as Legend, h as LegendEntry, i as LegendMark, j as LegendProps, R as Readout, k as ReadoutProps, l as ReadoutRow, m as ScaleIndicator, n as ScaleIndicatorProps, o as Split, S as SplitProps, p as StatusBar, q as StatusBarProps, r as StatusBarSectionProps, T as Toolbar, s as ToolbarButtonProps, t as ToolbarGroupProps, u as ToolbarProps, Z as ZoomControl, v as ZoomControlProps } from '../_dts/index-B2Yj5aA0.js';
3
+ import 'react';
5
4
  import 'windease';
6
-
7
- /** A live frame-rate readout, averaged over the last 30 frames. */
8
- declare function FpsMeter(): react.JSX.Element;
9
-
10
- /** Props for `<JobProgress>`. */
11
- interface JobProgressProps {
12
- job: JobHandle;
13
- className?: string;
14
- }
15
- /** A running job's progress, failures and outcome. Determinate once the job
16
- * reports a total; a job that cannot count up front never sends one, so the
17
- * bar stays indeterminate rather than inventing a denominator. */
18
- declare function JobProgress({ job, className }: JobProgressProps): react.JSX.Element | null;
19
-
20
- /** How a legend entry's swatch is drawn, matching how the thing looks on canvas. */
21
- type LegendMark = 'line' | 'dash' | 'dot' | 'band';
22
- /** One row of a legend: a swatch and what it means. */
23
- interface LegendEntry {
24
- key: string;
25
- label: string;
26
- color: string;
27
- /** Defaults to `'line'`. */
28
- mark?: LegendMark;
29
- }
30
- /** Props for `<Legend>`. */
31
- interface LegendProps {
32
- entries: readonly LegendEntry[];
33
- className?: string;
34
- }
35
- /** A color key. Presentational only — no handlers, no state, no hover behavior. */
36
- declare function Legend({ entries, className }: LegendProps): react.JSX.Element;
37
-
38
- /** Props for `<ScaleIndicator>`. */
39
- interface ScaleIndicatorProps {
40
- /** Current view zoom factor. If omitted, reads from CanvasStackContext. Defaults to 1. */
41
- zoom?: number;
42
- /** World pixels per unit at zoom=1. Default: 1. */
43
- pixelsPerUnit?: number;
44
- /** Unit label. Default: 'px'. */
45
- unit?: string;
46
- /** Target bar width in display pixels. Default: 100. */
47
- targetWidth?: number;
48
- }
49
- /** A scale bar: a labeled rule showing how far a round number of world units
50
- * is at the current zoom. Reads the zoom from the surrounding canvas stack
51
- * unless one is passed. */
52
- declare function ScaleIndicator({ zoom, pixelsPerUnit, unit, targetWidth, }: ScaleIndicatorProps): react.JSX.Element;
53
-
54
- /** Props for `<Split>`. */
55
- interface SplitProps {
56
- /** The sidebar pane's contents. */
57
- sidebar: ReactNode;
58
- /** The edge the sidebar sits on. Read once, when the strip mounts. Default `'start'`. */
59
- side?: 'start' | 'end';
60
- /** The content pane's contents. */
61
- children: ReactNode;
62
- /** Names the sidebar pane, and through it the seam. Default `'Sidebar'`. */
63
- label?: string;
64
- /** Extra classes on the strip, which always has `lk-split`. */
65
- className?: string;
66
- /** The class on the sidebar pane. */
67
- sidebarClassName?: string;
68
- /** The class on the content pane. */
69
- contentClassName?: string;
70
- /** The sidebar's current extent in pixels. Omit to leave it unpersisted: the
71
- * seam still works, its result just does not outlive the mount. */
72
- width?: number;
73
- /** Where the sidebar starts before anyone drags it. */
74
- defaultWidth?: number;
75
- minWidth?: number;
76
- maxWidth?: number;
77
- /** How little the content pane may be squeezed to. Reported as the seam's
78
- * reachable maximum, so the drag stops there rather than clamping silently. */
79
- contentMinWidth?: number;
80
- /** Fires through the drag, not on release: the pane is already there. */
81
- onWidthChange?: (width: number) => void;
82
- /**
83
- * Fixed extent. Omit in an app — the strip measures its own box. Supply it
84
- * where nothing measures, notably jsdom, or both panes lay out at zero.
85
- */
86
- viewport?: {
87
- w: number;
88
- h: number;
89
- };
90
- }
91
- /**
92
- * A sidebar and a content pane as a two-pane strip with a draggable seam.
93
- *
94
- * The seam is `stripStrategy`'s own resize affordance, so it arrives as a
95
- * `role="separator"` carrying the reachable range, operable by pointer and by
96
- * arrows / Home / End, and clamped against the content pane's floor rather
97
- * than against the sidebar's alone.
98
- */
99
- declare function Split({ sidebar, children, side, label, className, sidebarClassName, contentClassName, width, defaultWidth, minWidth, maxWidth, contentMinWidth, onWidthChange, viewport, }: SplitProps): react.JSX.Element;
100
-
101
- /** Props for `<StatusBar>`. */
102
- interface StatusBarProps {
103
- children: ReactNode;
104
- }
105
- /** A footer strip for readouts. Fill it with `<StatusBar.Section>`. */
106
- declare function StatusBar({ children }: StatusBarProps): react.JSX.Element;
107
- declare namespace StatusBar {
108
- var Section: ({ children, end }: StatusBarSectionProps) => react.JSX.Element;
109
- }
110
- /** Props for `<StatusBar.Section>`. */
111
- interface StatusBarSectionProps {
112
- children: ReactNode;
113
- /** Pushes this section, and everything after it, to the far end. */
114
- end?: boolean;
115
- }
116
-
117
- /** Props for `<Toolbar>`. */
118
- interface ToolbarProps {
119
- children: ReactNode;
120
- /** Names the toolbar for assistive tech. Required by the APG pattern when a
121
- * view holds more than one. */
122
- 'aria-label'?: string;
123
- }
124
- /** A horizontal bar of controls. Fill it with `<Toolbar.Title>`,
125
- * `<Toolbar.Group>`, `<Toolbar.Button>` and `<Toolbar.Spacer>`. */
126
- declare function Toolbar({ children, 'aria-label': ariaLabel }: ToolbarProps): react.JSX.Element;
127
- declare namespace Toolbar {
128
- var Title: ({ children }: TitleProps) => react.JSX.Element;
129
- var Group: ({ children, end, "aria-label": ariaLabel }: ToolbarGroupProps) => react.JSX.Element;
130
- var Button: ({ children, onClick, disabled, title, "aria-label": ariaLabel, variant, iconOnly, pressed, }: ToolbarButtonProps) => react.JSX.Element;
131
- var Spacer: () => react.JSX.Element;
132
- }
133
- interface TitleProps {
134
- children: ReactNode;
135
- }
136
- /** Props for `<Toolbar.Group>`. */
137
- interface ToolbarGroupProps {
138
- children: ReactNode;
139
- /** Pushes this group, and everything after it, to the far end. */
140
- end?: boolean;
141
- 'aria-label'?: string;
142
- }
143
- /** Props for `<Toolbar.Button>`. */
144
- interface ToolbarButtonProps {
145
- children: ReactNode;
146
- onClick: MouseEventHandler<HTMLButtonElement>;
147
- disabled?: boolean;
148
- title?: string;
149
- /** Required when `children` is an icon with no text of its own. */
150
- 'aria-label'?: string;
151
- /** `danger` reddens on hover — for actions that discard work. */
152
- variant?: 'default' | 'danger';
153
- /** Square, for a button whose whole content is one glyph. */
154
- iconOnly?: boolean;
155
- /** Makes this a toggle: `aria-pressed`, and held down while true. */
156
- pressed?: boolean;
157
- }
158
-
159
- /** Props for `<ZoomControl>`. */
160
- interface ZoomControlProps {
161
- /** Current zoom as a scale factor: 1 is actual size. */
162
- zoom: number;
163
- /** Fired continuously while the slider drags. */
164
- onZoomChange: (zoom: number) => void;
165
- /** Fired when a drag settles or the field is committed. Defaults to
166
- * `onZoomChange`. */
167
- onZoomCommit?: (zoom: number) => void;
168
- /** Smallest selectable zoom. Defaults to 0.1 (10%). */
169
- min?: number;
170
- /** Largest selectable zoom. Defaults to 8 (800%). */
171
- max?: number;
172
- className?: string;
173
- }
174
- /** Zoom as a log-scaled slider with an editable percentage beside it. Pair it
175
- * with zoom-in / zoom-out buttons in a `<Toolbar.Group>`; this component owns
176
- * only the continuous part. */
177
- declare function ZoomControl({ zoom, onZoomChange, onZoomCommit, min: minProp, max: maxProp, className, }: ZoomControlProps): react.JSX.Element;
178
-
179
- export { FpsMeter, JobProgress, Legend, ScaleIndicator, Split, StatusBar, Toolbar, ZoomControl };
180
- export type { JobProgressProps, LegendEntry, LegendMark, LegendProps, ScaleIndicatorProps, SplitProps, StatusBarProps, StatusBarSectionProps, ToolbarButtonProps, ToolbarGroupProps, ToolbarProps, ZoomControlProps };
5
+ import '../_dts/types-DJ79Tg5J.js';
@@ -1,11 +1,11 @@
1
- export { JobProgress, Legend, Split } from '../chunk-6FLXL3I7.js';
2
- export { FloatingPanel } from '../chunk-NEXR37YJ.js';
3
- export { FpsMeter, ScaleIndicator, StatusBar, Toolbar, ZoomControl } from '../chunk-SLAQPUI4.js';
4
- import '../chunk-SBXNQW4G.js';
1
+ export { JobProgress, Legend, Readout, Split } from '../chunk-FMK7UQ6V.js';
2
+ export { FloatingPanel } from '../chunk-J7OWWTCW.js';
3
+ export { FpsMeter, ScaleIndicator, StatusBar, Toolbar, ZoomControl } from '../chunk-7BO7HNGF.js';
4
+ import '../chunk-CZZPXUOU.js';
5
5
  import '../chunk-RWNDDKOH.js';
6
6
  import '../chunk-CQLQPQ4P.js';
7
7
  import '../chunk-2YILQ7Y5.js';
8
- import '../chunk-TYN6MLXX.js';
9
- import '../chunk-QGMOA2YE.js';
8
+ import '../chunk-MIM5R4ZT.js';
9
+ import '../chunk-275JRRVD.js';
10
10
  //# sourceMappingURL=index.js.map
11
11
  //# sourceMappingURL=index.js.map
@@ -1,13 +1,13 @@
1
- export { C as CURRENT_DOCUMENT_VERSION, I as IndexedDbAdapterOptions, L as LabStore, a as LabStoreActions, b as LabStoreContext, c as LabStoreProvider, O as OpenLabStoreOptions, d as OpenedLabStore, P as PersistedStateOptions, e as Persistence, f as PersistenceProps, R as RecordCache, g as RecordChange, T as TrialIdContext, h as TrialIdProvider, i as createIndexedDbAdapter, j as createLabStore, k as createMemoryAdapter, l as indexedDbAdapter, m as labDocumentKey, n as localStorageAdapter, o as noneAdapter, p as openLabStore, q as quarantineKey, s as sessionStorageAdapter, u as urlHashAdapter, r as useLabStore, t as usePersistedState, v as useTrialId, w as useTrialState } from '../_dts/useTrialState-CMaV6UD4.js';
2
- import { S as SerializedTrial, I as InstrumentSerializers, T as TrialRecord, U as UndoStack, c as StorageAdapter } from '../_dts/types-B7yBTTF9.js';
3
- export { C as CreateLabStoreOptions, d as LabDocument, e as LabStoreState, M as Migration, f as SavedSnapshot, g as StorageChange, h as TrialStateHandle, i as UndockedPanel, j as UndockedPanels, k as dockPanel, p as panelKey, u as undockPanel } from '../_dts/types-B7yBTTF9.js';
1
+ export { C as CURRENT_DOCUMENT_VERSION, I as IndexedDbAdapterOptions, L as LabStore, a as LabStoreActions, b as LabStoreContext, c as LabStoreProvider, O as OpenLabStoreOptions, d as OpenedLabStore, P as PersistedStateOptions, e as Persistence, f as PersistenceProps, R as RecordCache, g as RecordChange, T as TrialIdContext, h as TrialIdProvider, i as createIndexedDbAdapter, j as createLabStore, k as createMemoryAdapter, l as indexedDbAdapter, m as labDocumentKey, n as localStorageAdapter, o as noneAdapter, p as openLabStore, q as quarantineKey, s as sessionStorageAdapter, u as urlHashAdapter, r as useLabStore, t as usePersistedState, v as useTrialId, w as useTrialState } from '../_dts/useTrialState-CTZPgeZ7.js';
2
+ import { S as SerializedTrial, I as InstrumentSerializers, T as TrialRecord, U as UndoStack, c as StorageAdapter } from '../_dts/types-CSm9jgol.js';
3
+ export { C as CreateLabStoreOptions, d as LabDocument, e as LabStoreState, M as Migration, f as SavedSnapshot, g as StorageChange, h as TrialStateHandle, i as UndockedPanel, j as UndockedPanels, k as dockPanel, p as panelKey, u as undockPanel } from '../_dts/types-CSm9jgol.js';
4
4
  import * as react from 'react';
5
5
  import { ReactNode } from 'react';
6
6
  import 'zustand/vanilla';
7
7
  import '@weasel-js/core';
8
- import '../_dts/PrefsRow.d-DFpPIeIC.js';
8
+ import '../_dts/PrefsRow.d-TOZ7BgD9.js';
9
9
  import '@weasel-js/theme';
10
- import '../_dts/types-DTuViBvc.js';
10
+ import '../_dts/types-CRPSGFAp.js';
11
11
  import '../_dts/types-DJ79Tg5J.js';
12
12
 
13
13
  /** The storage key a lab writes one of its buckets under. Namespaced by
@@ -1,9 +1,9 @@
1
- import { openLabStore } from '../chunk-HKV7LRHY.js';
2
- export { CURRENT_DOCUMENT_VERSION, createLabStore, dockPanel, labDocumentKey, openLabStore, panelKey, quarantineKey, undockPanel, useTrialState } from '../chunk-HKV7LRHY.js';
1
+ import { openLabStore } from '../chunk-YT75VYRD.js';
2
+ export { CURRENT_DOCUMENT_VERSION, createLabStore, dockPanel, labDocumentKey, openLabStore, panelKey, quarantineKey, undockPanel, useTrialState } from '../chunk-YT75VYRD.js';
3
3
  import { useWarnIgnoredChange, useOpenOnce, defaultStorage, PersistenceContext } from '../chunk-RWNDDKOH.js';
4
4
  export { Persistence, createIndexedDbAdapter, createMemoryAdapter, decodeUrlHash, deserializeTrials, emptyUndoStack, encodeUrlHash, indexedDbAdapter, labStorageKey, localStorageAdapter, noneAdapter, serializeTrials, sessionStorageAdapter, urlHashAdapter, usePersistedState } from '../chunk-RWNDDKOH.js';
5
- import '../chunk-O6FFFOHS.js';
6
- import '../chunk-TJ77A4A3.js';
5
+ import '../chunk-FZ7YFQN7.js';
6
+ import '../chunk-Y23G2VZL.js';
7
7
  import { LabStoreProvider, TrialIdProvider } from '../chunk-2YILQ7Y5.js';
8
8
  export { LabStoreContext, LabStoreProvider, TrialIdContext, TrialIdProvider, useLabStore, useTrialId } from '../chunk-2YILQ7Y5.js';
9
9
  import { jsx, Fragment } from 'react/jsx-runtime';