@weasel-js/labkit 1.4.1 → 1.4.2

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 (114) hide show
  1. package/README.md +8 -0
  2. package/dist/_dts/{CanvasStackContext-BIRUVVGH.d.ts → CanvasStackContext-kjILVnPj.d.ts} +1 -1
  3. package/dist/_dts/{frac-X7mWgd7y.d.ts → frac-A4R6v4ld.d.ts} +27 -10
  4. package/dist/_dts/{index-FEa1MudK.d.ts → index-CsU9WhjM.d.ts} +89 -29
  5. package/dist/_dts/{types-ChVJJHvk.d.ts → types-BbXpvQa8.d.ts} +20 -1
  6. package/dist/_dts/{useTrialState-Cdm13fvl.d.ts → useTrialState-DKjqpv20.d.ts} +5 -1
  7. package/dist/canvas/index.d.ts +5 -5
  8. package/dist/canvas/index.js +2 -2
  9. package/dist/chrome/index.d.ts +12 -6
  10. package/dist/chrome/index.js +5 -5
  11. package/dist/{chunk-DG2IFMLA.js → chunk-54ZWZ5FQ.js} +127 -100
  12. package/dist/chunk-54ZWZ5FQ.js.map +1 -0
  13. package/dist/{chunk-RLOXQZW3.js → chunk-D5KQ5OY6.js} +3 -3
  14. package/dist/{chunk-RLOXQZW3.js.map → chunk-D5KQ5OY6.js.map} +1 -1
  15. package/dist/{chunk-PP7ZWAMV.js → chunk-FJG4PHTL.js} +3 -3
  16. package/dist/{chunk-PP7ZWAMV.js.map → chunk-FJG4PHTL.js.map} +1 -1
  17. package/dist/chunk-ISSVF5PT.js +7263 -0
  18. package/dist/chunk-ISSVF5PT.js.map +1 -0
  19. package/dist/chunk-NSOVI3AZ.js +170 -0
  20. package/dist/chunk-NSOVI3AZ.js.map +1 -0
  21. package/dist/{chunk-D7QIPGEB.js → chunk-TN7YSJVU.js} +62 -60
  22. package/dist/chunk-TN7YSJVU.js.map +1 -0
  23. package/dist/{chunk-7TRFMIWX.js → chunk-UDXOYZEC.js} +4 -4
  24. package/dist/{chunk-7TRFMIWX.js.map → chunk-UDXOYZEC.js.map} +1 -1
  25. package/dist/{chunk-LJSIUFYD.js → chunk-ULDW42CR.js} +23 -2
  26. package/dist/chunk-ULDW42CR.js.map +1 -0
  27. package/dist/{chunk-MSR7EVS6.js → chunk-UTOEDPNU.js} +5 -5
  28. package/dist/{chunk-MSR7EVS6.js.map → chunk-UTOEDPNU.js.map} +1 -1
  29. package/dist/{chunk-BMQWLKOL.js → chunk-W2FJR5FF.js} +35 -22
  30. package/dist/chunk-W2FJR5FF.js.map +1 -0
  31. package/dist/{chunk-OFCBEZMU.js → chunk-WS6ZRV75.js} +3 -3
  32. package/dist/{chunk-OFCBEZMU.js.map → chunk-WS6ZRV75.js.map} +1 -1
  33. package/dist/{chunk-53AZ2O2N.js → chunk-XKENZTNE.js} +45 -14
  34. package/dist/chunk-XKENZTNE.js.map +1 -0
  35. package/dist/controls/index.d.ts +1 -1
  36. package/dist/controls/index.js +3 -3
  37. package/dist/dragdrop/index.d.ts +5 -5
  38. package/dist/dragdrop/index.js +2 -2
  39. package/dist/index.d.ts +71 -43
  40. package/dist/index.js +146 -113
  41. package/dist/index.js.map +1 -1
  42. package/dist/layers/index.d.ts +23 -8
  43. package/dist/layers/index.js +3 -3
  44. package/dist/loupe/index.d.ts +4 -4
  45. package/dist/loupe/index.js +2 -2
  46. package/dist/passthrough/weasel-canvas.js +1 -1
  47. package/dist/passthrough/weasel-ui.d.ts +84 -3
  48. package/dist/passthrough/weasel-ui.js +2 -2
  49. package/dist/primitives/index.js +4 -4
  50. package/dist/state/index.d.ts +3 -3
  51. package/dist/state/index.js +2 -2
  52. package/dist/styles.css +20 -3
  53. package/dist/surface/index.js +2 -2
  54. package/dist/ui/layers/index.d.ts +22 -9
  55. package/dist/ui/layers/index.js +2 -2
  56. package/dist/undo/index.d.ts +2 -2
  57. package/package.json +7 -7
  58. package/src/annotations/AnnotationTargets.tsx +6 -1
  59. package/src/annotations/Annotations.overlay.test.tsx +2 -0
  60. package/src/annotations/types.ts +4 -1
  61. package/src/canvas/useOrbit.test.ts +7 -3
  62. package/src/canvas/usePanZoom.test.ts +7 -3
  63. package/src/chrome/ChromeRegions.stories.tsx +42 -1
  64. package/src/chrome/builtins.test.ts +4 -0
  65. package/src/chrome/builtins.tsx +18 -0
  66. package/src/chrome/index.ts +1 -1
  67. package/src/chrome/regions/SidebarRegion.tsx +7 -6
  68. package/src/chrome/regions/TitleBarRegion.test.tsx +64 -0
  69. package/src/chrome/regions/TitleBarRegion.tsx +16 -7
  70. package/src/chrome/regions/ToolbarRegion.test.tsx +14 -0
  71. package/src/chrome/regions/ToolbarRegion.tsx +2 -2
  72. package/src/chrome/regions/ViewportRegion.tsx +2 -2
  73. package/src/chrome/regions/regions.test.tsx +45 -1
  74. package/src/chrome/types.ts +21 -3
  75. package/src/controls/ControlPanel.test.tsx +38 -0
  76. package/src/controls/ControlPanel.tsx +51 -6
  77. package/src/dragdrop/DragDropRuntime.tsx +74 -61
  78. package/src/dragdrop/Palette.tsx +4 -3
  79. package/src/dragdrop/dragDrop.test.tsx +35 -12
  80. package/src/index.ts +2 -1
  81. package/src/instrument/types.ts +4 -5
  82. package/src/lab/Lab.test.tsx +7 -0
  83. package/src/lab/Lab.tsx +2 -2
  84. package/src/lab/LabContext.ts +5 -1
  85. package/src/lab/LabShell.less +17 -2
  86. package/src/layers/AGENTS.md +29 -7
  87. package/src/layers/LayerList.less +16 -0
  88. package/src/layers/LayerList.stories.tsx +66 -0
  89. package/src/layers/LayerList.test.tsx +117 -5
  90. package/src/layers/LayerList.tsx +192 -53
  91. package/src/layers/index.ts +1 -1
  92. package/src/passthrough/weasel-ui.ts +5 -0
  93. package/src/primitives/FloatingPanel.test.tsx +8 -3
  94. package/src/state/store.test.ts +78 -0
  95. package/src/state/store.ts +27 -0
  96. package/src/state/types.ts +20 -0
  97. package/src/trial/Trial.less +4 -0
  98. package/src/trial/Trial.targets.test.tsx +96 -0
  99. package/src/trial/Trial.test.tsx +171 -14
  100. package/src/trial/Trial.tsx +4 -1
  101. package/src/trial/TrialChrome.tsx +22 -2
  102. package/src/trial/TrialTitleBar.tsx +7 -3
  103. package/src/trial/index.ts +1 -0
  104. package/src/trial/trialOps.test.ts +49 -1
  105. package/src/trial/trialOps.ts +28 -6
  106. package/dist/chunk-53AZ2O2N.js.map +0 -1
  107. package/dist/chunk-BMQWLKOL.js.map +0 -1
  108. package/dist/chunk-D7QIPGEB.js.map +0 -1
  109. package/dist/chunk-DG2IFMLA.js.map +0 -1
  110. package/dist/chunk-J6SBFZYT.js +0 -7121
  111. package/dist/chunk-J6SBFZYT.js.map +0 -1
  112. package/dist/chunk-LJSIUFYD.js.map +0 -1
  113. package/dist/chunk-MIT3ISW4.js +0 -100
  114. package/dist/chunk-MIT3ISW4.js.map +0 -1
@@ -1,24 +1,39 @@
1
- import { E as LayerDescriptor } from '../_dts/frac-X7mWgd7y.js';
2
- export { B as LayerCapability } from '../_dts/frac-X7mWgd7y.js';
1
+ import { E as LayerDescriptor } from '../_dts/frac-A4R6v4ld.js';
2
+ export { B as LayerCapability } from '../_dts/frac-A4R6v4ld.js';
3
3
  import * as react_jsx_runtime from 'react/jsx-runtime';
4
4
  import 'react';
5
5
  import '../_dts/types-lg4TSCb2.js';
6
6
  import '../_dts/weasel-canvas-FJTFi3ZZ.js';
7
7
  import '../_dts/PrefsForm.d-CgxUequc.js';
8
- import '../_dts/types-ChVJJHvk.js';
8
+ import '../_dts/types-BbXpvQa8.js';
9
9
  import '../_dts/types-DJ79Tg5J.js';
10
10
 
11
+ /** A layer that may itself contain layers. A plain `LayerDescriptor` is one
12
+ * of these with no children, so a flat list needs no change. */
13
+ interface LayerTreeNode extends LayerDescriptor {
14
+ children?: LayerTreeNode[];
15
+ /** Render this node's children hidden on first paint. Ignored once
16
+ * `collapsedIds` is supplied. */
17
+ defaultCollapsed?: boolean;
18
+ }
11
19
  /** Props for `<LayerList>`. */
12
20
  interface LayerListProps {
13
- layers: LayerDescriptor[];
21
+ layers: LayerTreeNode[];
14
22
  visibility: Record<string, boolean>;
15
- onReorder: (newOrder: LayerDescriptor[]) => void;
23
+ /** The whole tree, with the dragged node moved. Reordering is scoped to a
24
+ * node's siblings: a drag never changes which parent a layer sits under. */
25
+ onReorder: (newOrder: LayerTreeNode[]) => void;
16
26
  onToggle: (id: string, visible: boolean) => void;
27
+ /** Ids whose children are hidden. Supplying it makes collapse controlled;
28
+ * without it the list keeps its own, seeded from `defaultCollapsed`. */
29
+ collapsedIds?: readonly string[];
30
+ onCollapsedChange?: (ids: string[]) => void;
17
31
  className?: string;
18
32
  }
19
33
  /** A reorderable list of layers with per-layer visibility toggles. Layers
20
- * marked `alwaysOn` are pinned and cannot be reordered or hidden. */
21
- declare function LayerList({ layers, visibility, onReorder, onToggle, className }: LayerListProps): react_jsx_runtime.JSX.Element;
34
+ * marked `alwaysOn` are pinned and cannot be reordered or hidden. Layers with
35
+ * `children` render as an expandable subtree. */
36
+ declare function LayerList({ layers, visibility, onReorder, onToggle, collapsedIds, onCollapsedChange, className, }: LayerListProps): react_jsx_runtime.JSX.Element;
22
37
 
23
38
  export { LayerDescriptor, LayerList };
24
- export type { LayerListProps };
39
+ export type { LayerListProps, LayerTreeNode };
@@ -1,6 +1,6 @@
1
- export { LayerList } from '../chunk-MIT3ISW4.js';
1
+ export { LayerList } from '../chunk-NSOVI3AZ.js';
2
2
  import '../chunk-SBXNQW4G.js';
3
- import '../chunk-J6SBFZYT.js';
4
- import '../chunk-DG2IFMLA.js';
3
+ import '../chunk-ISSVF5PT.js';
4
+ import '../chunk-54ZWZ5FQ.js';
5
5
  //# sourceMappingURL=index.js.map
6
6
  //# sourceMappingURL=index.js.map
@@ -1,12 +1,12 @@
1
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
- import { ae as LoupePoint, af as LoupeMode, V as ViewTransform, W as WorldFrame, c as WorldSpec, a2 as ViewportSize, K as LoupeRenderArgs, N as ResolvedLoupe } from '../_dts/frac-X7mWgd7y.js';
3
- export { L as LOUPE_DEFAULTS, G as LoupeCapability, J as LoupeDeclaration, ab as resolveLoupe } from '../_dts/frac-X7mWgd7y.js';
4
- import { c as CanvasStackSurface, C as CanvasLayerDescriptor } from '../_dts/CanvasStackContext-BIRUVVGH.js';
2
+ import { ae as LoupePoint, af as LoupeMode, V as ViewTransform, W as WorldFrame, c as WorldSpec, a2 as ViewportSize, K as LoupeRenderArgs, N as ResolvedLoupe } from '../_dts/frac-A4R6v4ld.js';
3
+ export { L as LOUPE_DEFAULTS, G as LoupeCapability, J as LoupeDeclaration, ab as resolveLoupe } from '../_dts/frac-A4R6v4ld.js';
4
+ import { c as CanvasStackSurface, C as CanvasLayerDescriptor } from '../_dts/CanvasStackContext-kjILVnPj.js';
5
5
  import { RefObject, ReactNode } from 'react';
6
6
  import '../_dts/types-lg4TSCb2.js';
7
7
  import '../_dts/weasel-canvas-FJTFi3ZZ.js';
8
8
  import '../_dts/PrefsForm.d-CgxUequc.js';
9
- import '../_dts/types-ChVJJHvk.js';
9
+ import '../_dts/types-BbXpvQa8.js';
10
10
  import '../_dts/types-DJ79Tg5J.js';
11
11
 
12
12
  /** Props for `<CanvasLoupe>`. */
@@ -1,7 +1,7 @@
1
- export { CanvasLoupe, DomLoupe, LOUPE_DEFAULTS, LoupeBubble, TrialLoupe, drawCanvasLens, lensCamera, lensSourceRect, resolveLoupe, sampleStack, useLoupe } from '../chunk-RLOXQZW3.js';
1
+ export { CanvasLoupe, DomLoupe, LOUPE_DEFAULTS, LoupeBubble, TrialLoupe, drawCanvasLens, lensCamera, lensSourceRect, resolveLoupe, sampleStack, useLoupe } from '../chunk-D5KQ5OY6.js';
2
2
  import '../chunk-CTRKTLYZ.js';
3
3
  import '../chunk-2AYGEN57.js';
4
4
  import '../chunk-CQLQPQ4P.js';
5
- import '../chunk-DG2IFMLA.js';
5
+ import '../chunk-54ZWZ5FQ.js';
6
6
  //# sourceMappingURL=index.js.map
7
7
  //# sourceMappingURL=index.js.map
@@ -1,3 +1,3 @@
1
- export { FALLBACK_FIT_VIEW, MinimapCanvas, SceneViewCanvas, buildSceneViewCommands, computeFitView, computeIndicatorCommand, renderSceneToCanvas } from '../chunk-DG2IFMLA.js';
1
+ export { FALLBACK_FIT_VIEW, MinimapCanvas, SceneViewCanvas, buildSceneViewCommands, computeFitView, computeIndicatorCommand, renderSceneToCanvas } from '../chunk-54ZWZ5FQ.js';
2
2
  //# sourceMappingURL=weasel-canvas.js.map
3
3
  //# sourceMappingURL=weasel-canvas.js.map
@@ -982,6 +982,69 @@ declare function DataGrid<Row extends {
982
982
  id: string;
983
983
  }>(props: DataGridProps<Row>): react_jsx_runtime.JSX.Element;
984
984
 
985
+ /** Which way the mark points when the section is closed. */
986
+ type DisclosureDirection = 'right' | 'down';
987
+ /** Props for `<Disclosure>`. */
988
+ interface DisclosureProps {
989
+ /** Whether the section it controls is open. The consumer owns this. */
990
+ open: boolean;
991
+ onToggle: () => void;
992
+ /**
993
+ * Names the section, for a screen reader. The control has no text of its
994
+ * own, so without this it announces as an unlabeled button.
995
+ */
996
+ label: string;
997
+ /**
998
+ * `id` of the element this expands. Sets `aria-controls`, which lets a
999
+ * screen reader move to the revealed content.
1000
+ */
1001
+ controls?: string;
1002
+ /** Which way the closed mark points. `'right'` (default) rotates down when
1003
+ * open; `'down'` rotates up. */
1004
+ direction?: DisclosureDirection;
1005
+ /** Mark size in px. The hit target is at least 20px and grows with it.
1006
+ * Default 12. */
1007
+ size?: number;
1008
+ disabled?: boolean;
1009
+ className?: string;
1010
+ }
1011
+ /**
1012
+ * The twisty on a collapsible section: a triangle that turns as it opens.
1013
+ *
1014
+ * Presentational — it holds no open/closed state and renders no children.
1015
+ * The consumer owns the state and the panel; this is the control that toggles
1016
+ * it, and `aria-expanded` is what ties the two together.
1017
+ *
1018
+ * Three things it settles that a hand-rolled twisty keeps getting wrong. The
1019
+ * mark is drawn rather than typed, because `--wzl-font-ui` carries no ▸/▾ and
1020
+ * a text glyph falls back to whatever the system offers at whatever size that
1021
+ * font renders it — around 6px against 13px body text, which reads as dirt on
1022
+ * the screen. The hit target is larger than the mark. And it is a sibling of
1023
+ * the row's label rather than a child, so clicking to expand does not actuate
1024
+ * the label's own control.
1025
+ *
1026
+ * Deliberately not part of the icon register, on the same grounds as
1027
+ * `DragHandleGlyph`: that register is outline strokes at a fixed weight, and
1028
+ * `base.mjs` rejects a solid triangle in it by name. A disclosure mark is
1029
+ * filled.
1030
+ */
1031
+ declare function Disclosure({ open, onToggle, label, controls, direction, size, disabled, className, }: DisclosureProps): react_jsx_runtime.JSX.Element;
1032
+ /** Props for `<DisclosureRow>`. */
1033
+ interface DisclosureRowProps extends Omit<DisclosureProps, 'className'> {
1034
+ /** The row's own content — a label, a checkbox, a count. */
1035
+ children: ReactNode;
1036
+ className?: string;
1037
+ }
1038
+ /**
1039
+ * A `<Disclosure>` and a row of content beside it, laid out so the twisty
1040
+ * leads and the content takes the rest.
1041
+ *
1042
+ * The layout is the point: the twisty sits *outside* whatever the row puts in
1043
+ * it, so a row whose content is a `<label>` wrapping a checkbox stays
1044
+ * clickable as a label without the twisty actuating it.
1045
+ */
1046
+ declare function DisclosureRow({ children, className, ...twisty }: DisclosureRowProps): react_jsx_runtime.JSX.Element;
1047
+
985
1048
  /** Props for `<DragHandleGlyph>`. */
986
1049
  interface DragHandleGlyphProps {
987
1050
  /** Height in px; width scales with it. Default 16. */
@@ -1799,6 +1862,12 @@ type NumberFieldProps = Omit<NumberFieldProps$1, 'children' | 'className'> & {
1799
1862
  /** Native input placeholder — e.g. `'Mixed'` for a multi-selection
1800
1863
  * editor with no shared value. */
1801
1864
  placeholder?: string;
1865
+ /**
1866
+ * `'fill'` (the default) takes the width of whatever row the field sits in.
1867
+ * `'fit'` sizes it to `--wzl-number-field-width` (`9ch` by default) plus its
1868
+ * own chrome, rather than to the input's 20-character intrinsic width.
1869
+ */
1870
+ width?: 'fill' | 'fit';
1802
1871
  className?: string;
1803
1872
  };
1804
1873
  /**
@@ -1821,6 +1890,12 @@ declare const NumberField: react.ForwardRefExoticComponent<Omit<NumberFieldProps
1821
1890
  /** Native input placeholder — e.g. `'Mixed'` for a multi-selection
1822
1891
  * editor with no shared value. */
1823
1892
  placeholder?: string;
1893
+ /**
1894
+ * `'fill'` (the default) takes the width of whatever row the field sits in.
1895
+ * `'fit'` sizes it to `--wzl-number-field-width` (`9ch` by default) plus its
1896
+ * own chrome, rather than to the input's 20-character intrinsic width.
1897
+ */
1898
+ width?: "fill" | "fit";
1824
1899
  className?: string;
1825
1900
  } & react.RefAttributes<HTMLInputElement>>;
1826
1901
 
@@ -1855,6 +1930,12 @@ type SelectProps<T extends Key$1 = string> = Omit<SelectProps$1<object>, 'childr
1855
1930
  selectedKey?: T | null;
1856
1931
  defaultSelectedKey?: T;
1857
1932
  onSelectionChange?: (key: T) => void;
1933
+ /**
1934
+ * `'fill'` (the default) takes the width of whatever row the select sits in.
1935
+ * `'fit'` sizes the trigger to its widest option, so it neither swallows a
1936
+ * toolbar's slack nor changes width as the selection moves.
1937
+ */
1938
+ width?: 'fill' | 'fit';
1858
1939
  className?: string;
1859
1940
  };
1860
1941
  /**
@@ -2385,7 +2466,7 @@ interface ReorderDragHandlers {
2385
2466
  * drop. A drop that would leave a contiguous block where it already is does
2386
2467
  * not call `onReorder`.
2387
2468
  *
2388
- * A press opens an `openPointerSession` on the *container*, which owns the
2469
+ * A press opens a `startThresholdDrag` on the *container*, which owns the
2389
2470
  * rest of the gesture: a drag that leaves the list still tracks, a release
2390
2471
  * anywhere still drops, and a release the window never delivered still ends
2391
2472
  * the drag. The container is the origin rather than the row because rows come
@@ -2466,5 +2547,5 @@ declare const MINUS_SIGN = "\u2212";
2466
2547
  */
2467
2548
  declare function formatNumber(value: number, options?: Intl.NumberFormatOptions): string;
2468
2549
 
2469
- export { ActionBar, ActionsBar, Badge, Button, Callout, Checkbox, ComboBox, ComboBoxItem, CurveEditor, DataGrid, Dialog, DragHandleGlyph, EDGE_PROFILES, Field, ICON_PATHS, Icon, Input, KeyCap, KeySequence, MINUS_SIGN, NumberField, OptionsBar, Plot2D, PointPlotter, Powerline, ToolPrefGroup as PrefGroup, ToolPrefLeaf as PrefLeaf, Radio, RadioGroup, RangeSlider, Select, SelectItem, Sidebar, SidebarPanel, Slider, Switch, Tab, TabList, TabPanel, Tabs, ToggleBar, ToolButton, ToolGroup, ToolPalette, chromaAt, detectPlatform, dlog, fieldClasses, formatNumber, formatShortcut, formatShortcutParts, inferKeycapKind, isDebugEnabled, isPrefLeaf, keyGlyph, keySpecFromKey, keySpecsFromMods, oklchToHex, paintGradientTrack, prefValueAtPath, useReorderDragList, useRovingTabIndex, visiblePrefSubtree };
2470
- export type { ActionBarProps, ActionsBarItem, ActionsBarProps, ActionsBarSize, ActionsBarVariant, AddPointMode, AnchorRenderProps, AxesSettings, BadgeProps, BadgeShape, BadgeSize, BadgeTone, BadgeVariant, BoundsCtx, BuiltInEdgeName, ButtonProps, ButtonSize, ButtonVariant, CalloutProps, CheckboxProps, ChromaCurve, ChromaCurvePoint, ComboBoxItemProps, ComboBoxOption, ComboBoxProps, ControlPoint, CurveDomain, CurveEditorProps, DataGridColumn, DataGridProps, DialogProps, DragHandleGlyphProps, EdgeCap, EdgeProfile, EndpointMode, FieldOrientation, FieldProps, FillSettings, GradientTrackOpts, GridSettings, IconName, IconProps, InputProps, InterpolationMode, KeyCapProps, KeyCapVariant, KeySequenceProps, KeySpec, KeycapKind, LayerListItem, LogicalMod, LogicalModSpec, NumberFieldProps, OptionsBarItem, OptionsBarProps, OptionsBarSize, OptionsBarVariant, Platform, Plot2DCoords, Plot2DHandle, Plot2DProps, PointPlotterProps, PowerlineProps, PowerlineSegment, RadioGroupProps, RadioProps, RangeSliderProps, ReorderDragHandlers, ReorderDragState, RovingItem, RovingTabIndex, SelectItemProps, SelectOption, SelectProps, SidebarPanelProps, SidebarProps, SliderProps, SwitchProps, TabListProps, TabPanelProps, TabProps, TabsProps, Thumb, ThumbRenderCtx, ThumbShape, ToggleBarItem, ToggleBarProps, ToggleBarSize, ToggleBarVariant, ToolButtonProps, ToolGroupProps, ToolPaletteProps, TrackCtx, UseReorderDragListOptions, UseRovingTabIndexOptions };
2550
+ export { ActionBar, ActionsBar, Badge, Button, Callout, Checkbox, ComboBox, ComboBoxItem, CurveEditor, DataGrid, Dialog, Disclosure, DisclosureRow, DragHandleGlyph, EDGE_PROFILES, Field, ICON_PATHS, Icon, Input, KeyCap, KeySequence, MINUS_SIGN, NumberField, OptionsBar, Plot2D, PointPlotter, Powerline, ToolPrefGroup as PrefGroup, ToolPrefLeaf as PrefLeaf, Radio, RadioGroup, RangeSlider, Select, SelectItem, Sidebar, SidebarPanel, Slider, Switch, Tab, TabList, TabPanel, Tabs, ToggleBar, ToolButton, ToolGroup, ToolPalette, chromaAt, detectPlatform, dlog, fieldClasses, formatNumber, formatShortcut, formatShortcutParts, inferKeycapKind, isDebugEnabled, isPrefLeaf, keyGlyph, keySpecFromKey, keySpecsFromMods, oklchToHex, paintGradientTrack, prefValueAtPath, useReorderDragList, useRovingTabIndex, visiblePrefSubtree };
2551
+ export type { ActionBarProps, ActionsBarItem, ActionsBarProps, ActionsBarSize, ActionsBarVariant, AddPointMode, AnchorRenderProps, AxesSettings, BadgeProps, BadgeShape, BadgeSize, BadgeTone, BadgeVariant, BoundsCtx, BuiltInEdgeName, ButtonProps, ButtonSize, ButtonVariant, CalloutProps, CheckboxProps, ChromaCurve, ChromaCurvePoint, ComboBoxItemProps, ComboBoxOption, ComboBoxProps, ControlPoint, CurveDomain, CurveEditorProps, DataGridColumn, DataGridProps, DialogProps, DisclosureDirection, DisclosureProps, DisclosureRowProps, DragHandleGlyphProps, EdgeCap, EdgeProfile, EndpointMode, FieldOrientation, FieldProps, FillSettings, GradientTrackOpts, GridSettings, IconName, IconProps, InputProps, InterpolationMode, KeyCapProps, KeyCapVariant, KeySequenceProps, KeySpec, KeycapKind, LayerListItem, LogicalMod, LogicalModSpec, NumberFieldProps, OptionsBarItem, OptionsBarProps, OptionsBarSize, OptionsBarVariant, Platform, Plot2DCoords, Plot2DHandle, Plot2DProps, PointPlotterProps, PowerlineProps, PowerlineSegment, RadioGroupProps, RadioProps, RangeSliderProps, ReorderDragHandlers, ReorderDragState, RovingItem, RovingTabIndex, SelectItemProps, SelectOption, SelectProps, SidebarPanelProps, SidebarProps, SliderProps, SwitchProps, TabListProps, TabPanelProps, TabProps, TabsProps, Thumb, ThumbRenderCtx, ThumbShape, ToggleBarItem, ToggleBarProps, ToggleBarSize, ToggleBarVariant, ToolButtonProps, ToolGroupProps, ToolPaletteProps, TrackCtx, UseReorderDragListOptions, UseRovingTabIndexOptions };
@@ -1,5 +1,5 @@
1
1
  import '../chunk-SBXNQW4G.js';
2
- export { m as ActionBar, r5 as ActionsBar, Lt as Badge, a3 as Button, h3 as Callout, c5 as CalloutTrigger, o as Checkbox, p3 as ComboBox, m2 as ComboBoxItem, L as CurveEditor, s2 as DataGrid, c as Dialog, n2 as DragHandleGlyph, Je as EDGE_PROFILES, n as Field, t as ICON_PATHS, r as Icon, u as Input, s3 as KeyCap, c2 as KeySequence, c3 as LayerStack, e2 as MINUS_SIGN, f as NumberField, r4 as OptionsBar, f2 as Plot2D, n5 as PointPlotter, r6 as Powerline, u2 as Radio, l as RadioGroup, l2 as RangeSlider, p as Select, h as SelectItem, n3 as Sidebar, s4 as SidebarPanel, y2 as Slider, a2 as Switch, c4 as Tab, s5 as TabList, l3 as TabPanel, o4 as Tabs, r3 as ToggleBar, o3 as ToolButton, n4 as ToolGroup, _3 as ToolPalette, Hn as chromaAt, u3 as detectPlatform, a as dlog, r2 as fieldClasses, t2 as formatNumber, d2 as formatShortcut, u4 as formatShortcutParts, o2 as inferKeycapKind, i as isDebugEnabled, b2 as isPrefLeaf, e as keyGlyph, p2 as keySpecFromKey, d as keySpecsFromMods, Vn as oklchToHex, v2 as paintGradientTrack, x2 as prefValueAtPath, s as useReorderDragList, a4 as useRovingTabIndex, S as visiblePrefSubtree } from '../chunk-J6SBFZYT.js';
3
- import '../chunk-DG2IFMLA.js';
2
+ export { m as ActionBar, r6 as ActionsBar, Lt as Badge, a3 as Button, h2 as Callout, c5 as CalloutTrigger, o as Checkbox, p2 as ComboBox, m2 as ComboBoxItem, L as CurveEditor, s2 as DataGrid, c as Dialog, r3 as Disclosure, i2 as DisclosureRow, n2 as DragHandleGlyph, Je as EDGE_PROFILES, n as Field, t as ICON_PATHS, r as Icon, u as Input, s3 as KeyCap, c2 as KeySequence, c3 as LayerStack, e2 as MINUS_SIGN, f as NumberField, r5 as OptionsBar, f2 as Plot2D, n5 as PointPlotter, r7 as Powerline, u2 as Radio, l as RadioGroup, l2 as RangeSlider, h as Select, y2 as SelectItem, n3 as Sidebar, s4 as SidebarPanel, y3 as Slider, a2 as Switch, c4 as Tab, s5 as TabList, l3 as TabPanel, o4 as Tabs, r4 as ToggleBar, o3 as ToolButton, n4 as ToolGroup, _2 as ToolPalette, Wn as chromaAt, u3 as detectPlatform, a as dlog, r2 as fieldClasses, t2 as formatNumber, d2 as formatShortcut, u4 as formatShortcutParts, o2 as inferKeycapKind, i as isDebugEnabled, b2 as isPrefLeaf, e as keyGlyph, p as keySpecFromKey, d as keySpecsFromMods, Un as oklchToHex, v2 as paintGradientTrack, x2 as prefValueAtPath, s as useReorderDragList, a4 as useRovingTabIndex, S as visiblePrefSubtree } from '../chunk-ISSVF5PT.js';
3
+ import '../chunk-54ZWZ5FQ.js';
4
4
  //# sourceMappingURL=weasel-ui.js.map
5
5
  //# sourceMappingURL=weasel-ui.js.map
@@ -1,8 +1,8 @@
1
- export { FloatingPanel, JobProgress, Legend, Sidebar } from '../chunk-7TRFMIWX.js';
2
- export { FpsMeter, ScaleIndicator, StatusBar, Toolbar, ZoomControl } from '../chunk-MSR7EVS6.js';
1
+ export { FloatingPanel, JobProgress, Legend, Sidebar } from '../chunk-UDXOYZEC.js';
2
+ export { FpsMeter, ScaleIndicator, StatusBar, Toolbar, ZoomControl } from '../chunk-UTOEDPNU.js';
3
3
  import '../chunk-SBXNQW4G.js';
4
- import '../chunk-J6SBFZYT.js';
4
+ import '../chunk-ISSVF5PT.js';
5
5
  import '../chunk-CQLQPQ4P.js';
6
- import '../chunk-DG2IFMLA.js';
6
+ import '../chunk-54ZWZ5FQ.js';
7
7
  //# sourceMappingURL=index.js.map
8
8
  //# sourceMappingURL=index.js.map
@@ -1,6 +1,6 @@
1
- export { C as CURRENT_DOCUMENT_VERSION, L as LabStore, a as LabStoreActions, b as LabStoreContext, c as LabStoreProvider, T as TrialIdContext, d as TrialIdProvider, e as createLabStore, f as createMemoryAdapter, l as labDocumentKey, g as localStorageAdapter, n as noneAdapter, q as quarantineKey, s as sessionStorageAdapter, u as urlHashAdapter, h as useLabStore, i as useTrialId, j as useTrialState } from '../_dts/useTrialState-Cdm13fvl.js';
2
- import { S as SerializedTrial, I as InstrumentSerializers, T as TrialRecord, U as UndoStack, a as StorageAdapter } from '../_dts/types-ChVJJHvk.js';
3
- export { C as CreateLabStoreOptions, L as LabDocument, b as LabStoreState, M as Migration, c as SavedSnapshot, d as TrialStateHandle, e as UndockedPanel, f as UndockedPanels, g as dockPanel, p as panelKey, u as undockPanel } from '../_dts/types-ChVJJHvk.js';
1
+ export { C as CURRENT_DOCUMENT_VERSION, L as LabStore, a as LabStoreActions, b as LabStoreContext, c as LabStoreProvider, T as TrialIdContext, d as TrialIdProvider, e as createLabStore, f as createMemoryAdapter, l as labDocumentKey, g as localStorageAdapter, n as noneAdapter, q as quarantineKey, s as sessionStorageAdapter, u as urlHashAdapter, h as useLabStore, i as useTrialId, j as useTrialState } from '../_dts/useTrialState-DKjqpv20.js';
2
+ import { S as SerializedTrial, I as InstrumentSerializers, T as TrialRecord, U as UndoStack, a as StorageAdapter } from '../_dts/types-BbXpvQa8.js';
3
+ export { C as CreateLabStoreOptions, L as LabDocument, b as LabStoreState, M as Migration, c as SavedSnapshot, d as TrialStateHandle, e as UndockedPanel, f as UndockedPanels, g as dockPanel, p as panelKey, u as undockPanel } from '../_dts/types-BbXpvQa8.js';
4
4
  import * as react_jsx_runtime from 'react/jsx-runtime';
5
5
  import { ReactNode } from 'react';
6
6
  import 'zustand/vanilla';
@@ -1,5 +1,5 @@
1
- import { createLabStore } from '../chunk-LJSIUFYD.js';
2
- export { CURRENT_DOCUMENT_VERSION, createLabStore, createMemoryAdapter, decodeUrlHash, deserializeTrials, dockPanel, emptyUndoStack, encodeUrlHash, labDocumentKey, labStorageKey, localStorageAdapter, noneAdapter, panelKey, quarantineKey, serializeTrials, sessionStorageAdapter, undockPanel, urlHashAdapter, useTrialState } from '../chunk-LJSIUFYD.js';
1
+ import { createLabStore } from '../chunk-ULDW42CR.js';
2
+ export { CURRENT_DOCUMENT_VERSION, createLabStore, createMemoryAdapter, decodeUrlHash, deserializeTrials, dockPanel, emptyUndoStack, encodeUrlHash, labDocumentKey, labStorageKey, localStorageAdapter, noneAdapter, panelKey, quarantineKey, serializeTrials, sessionStorageAdapter, undockPanel, urlHashAdapter, useTrialState } from '../chunk-ULDW42CR.js';
3
3
  import { LabStoreProvider, TrialIdProvider } from '../chunk-2YILQ7Y5.js';
4
4
  export { LabStoreContext, LabStoreProvider, TrialIdContext, TrialIdProvider, useLabStore, useTrialId } from '../chunk-2YILQ7Y5.js';
5
5
  import { useRef } from 'react';