@weasel-js/labkit 1.5.0 → 1.5.1

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 (192) hide show
  1. package/README.md +41 -4
  2. package/dist/_dts/{CanvasStackContext-CqkxkFJW.d.ts → CanvasStackContext-CJNMS6mz.d.ts} +1 -1
  3. package/dist/_dts/{PrefsForm.d-DDHFANkc.d.ts → PrefsForm.d-DPy9I8It.d.ts} +4 -0
  4. package/dist/_dts/Select.d-Gwr8fLpK.d.ts +453 -0
  5. package/dist/_dts/{frac-8R6UmlvN.d.ts → frac-B4okC2lX.d.ts} +42 -4
  6. package/dist/_dts/{index-retnAut7.d.ts → index-BNdz-tNd.d.ts} +90 -10
  7. package/dist/_dts/{index-B8uu2ba7.d.ts → index-CSJoj4LC.d.ts} +17 -6
  8. package/dist/_dts/{types-Ca2LCnPq.d.ts → types-DzoNY1pO.d.ts} +28 -4
  9. package/dist/_dts/{usePanZoom-nS798rOF.d.ts → usePanZoom-Pzf9f2jh.d.ts} +2 -2
  10. package/dist/_dts/{useTrialState-jcx_TdU6.d.ts → useTrialState-uLlmaccn.d.ts} +1 -1
  11. package/dist/canvas/index.d.ts +5 -5
  12. package/dist/canvas/index.js +1 -1
  13. package/dist/chrome/index.d.ts +4 -4
  14. package/dist/chrome/index.js +7 -7
  15. package/dist/chunk-7PFH3CNM.js +150 -0
  16. package/dist/chunk-7PFH3CNM.js.map +1 -0
  17. package/dist/{chunk-PGETSEDK.js → chunk-CEIUBPPW.js} +10 -6
  18. package/dist/chunk-CEIUBPPW.js.map +1 -0
  19. package/dist/chunk-EH7UEQV7.js +590 -0
  20. package/dist/chunk-EH7UEQV7.js.map +1 -0
  21. package/dist/{chunk-EKIICY6X.js → chunk-EHGVROVV.js} +37 -25
  22. package/dist/chunk-EHGVROVV.js.map +1 -0
  23. package/dist/{chunk-ZPH5WTWF.js → chunk-ERFMC6WU.js} +142 -66
  24. package/dist/chunk-ERFMC6WU.js.map +1 -0
  25. package/dist/{chunk-NS64DXMN.js → chunk-IHUVQ3TX.js} +39 -16
  26. package/dist/chunk-IHUVQ3TX.js.map +1 -0
  27. package/dist/{chunk-QLSV2N3G.js → chunk-IJJUK4FU.js} +25 -13
  28. package/dist/chunk-IJJUK4FU.js.map +1 -0
  29. package/dist/{chunk-67SJLMC7.js → chunk-IXTQI7JX.js} +45 -12
  30. package/dist/chunk-IXTQI7JX.js.map +1 -0
  31. package/dist/{chunk-MUKOW3TC.js → chunk-MDVTK5U3.js} +4 -4
  32. package/dist/{chunk-MUKOW3TC.js.map → chunk-MDVTK5U3.js.map} +1 -1
  33. package/dist/{chunk-UU3NJO6N.js → chunk-PHK4W562.js} +3 -3
  34. package/dist/{chunk-UU3NJO6N.js.map → chunk-PHK4W562.js.map} +1 -1
  35. package/dist/chunk-PJ7WEQBJ.js +18 -0
  36. package/dist/chunk-PJ7WEQBJ.js.map +1 -0
  37. package/dist/chunk-T3EC2DXD.js +12628 -0
  38. package/dist/chunk-T3EC2DXD.js.map +1 -0
  39. package/dist/{chunk-KJALCDWE.js → chunk-UN4U4P63.js} +4 -4
  40. package/dist/{chunk-KJALCDWE.js.map → chunk-UN4U4P63.js.map} +1 -1
  41. package/dist/{chunk-NDRYLVOW.js → chunk-Z76KEZAX.js} +2 -2
  42. package/dist/chunk-Z76KEZAX.js.map +1 -0
  43. package/dist/{chunk-6ZDGOZQV.js → chunk-ZDHY47EV.js} +70 -17
  44. package/dist/chunk-ZDHY47EV.js.map +1 -0
  45. package/dist/config/index.d.ts +60 -16
  46. package/dist/config/index.js +6 -4
  47. package/dist/controls/index.d.ts +3 -3
  48. package/dist/controls/index.js +4 -4
  49. package/dist/dragdrop/index.d.ts +3 -3
  50. package/dist/index.d.ts +177 -53
  51. package/dist/index.js +1333 -1683
  52. package/dist/index.js.map +1 -1
  53. package/dist/layers/index.d.ts +4 -4
  54. package/dist/layers/index.js +2 -2
  55. package/dist/loupe/index.d.ts +67 -16
  56. package/dist/loupe/index.js +1 -1
  57. package/dist/passthrough/weasel-ui.d.ts +26 -202
  58. package/dist/passthrough/weasel-ui.js +1 -1
  59. package/dist/primitives/index.d.ts +3 -1
  60. package/dist/primitives/index.js +3 -3
  61. package/dist/state/index.d.ts +5 -5
  62. package/dist/state/index.js +5 -3
  63. package/dist/state/index.js.map +1 -1
  64. package/dist/styles.css +153 -40
  65. package/dist/surface/index.js +1 -1
  66. package/dist/ui/layers/index.js +1 -1
  67. package/dist/undo/index.d.ts +3 -3
  68. package/package.json +9 -9
  69. package/src/annotations/AnnotationOverlay.tsx +3 -0
  70. package/src/annotations/Annotations.less +4 -0
  71. package/src/annotations/Annotations.overlay.test.tsx +20 -0
  72. package/src/annotations/svgNodes.ts +1 -0
  73. package/src/annotations/toolMap.test.ts +9 -5
  74. package/src/annotations/toolMap.ts +3 -0
  75. package/src/canvas/CanvasStack.stories.tsx +1 -1
  76. package/src/canvas/usePanZoom.test.ts +28 -0
  77. package/src/canvas/usePanZoom.ts +11 -4
  78. package/src/chrome/ChromeRegions.stories.tsx +1 -1
  79. package/src/chrome/LabChrome.tsx +21 -5
  80. package/src/chrome/builtins.test.ts +1 -0
  81. package/src/chrome/builtins.tsx +1 -0
  82. package/src/chrome/index.ts +1 -0
  83. package/src/chrome/labTypes.ts +2 -2
  84. package/src/chrome/regions/PaletteRegion.tsx +1 -6
  85. package/src/chrome/regions/SidebarRegion.stories.tsx +44 -0
  86. package/src/chrome/regions/ToolbarRegion.tsx +11 -7
  87. package/src/chrome/types.ts +3 -0
  88. package/src/config/auto.test.ts +12 -0
  89. package/src/config/auto.ts +15 -0
  90. package/src/config/autoConfig.test.ts +107 -0
  91. package/src/config/autoConfig.ts +153 -0
  92. package/src/config/builder.test.ts +38 -0
  93. package/src/config/builder.ts +53 -8
  94. package/src/config/index.ts +3 -0
  95. package/src/config/path.ts +7 -2
  96. package/src/config/resolve.test.ts +25 -0
  97. package/src/config/resolve.ts +17 -1
  98. package/src/config/types.ts +32 -2
  99. package/src/config/useResolvedConfig.ts +26 -0
  100. package/src/controls/AutoControls.stories.tsx +88 -0
  101. package/src/controls/ControlPanel.stories.tsx +42 -1
  102. package/src/controls/ControlPanel.test.tsx +514 -4
  103. package/src/controls/ControlPanel.tsx +557 -80
  104. package/src/index.ts +29 -1
  105. package/src/instrument/serializers.ts +29 -1
  106. package/src/lab/Lab.chrome.test.tsx +16 -0
  107. package/src/lab/Lab.stories.tsx +1 -1
  108. package/src/lab/Lab.surface.test.tsx +7 -2
  109. package/src/lab/Lab.test.tsx +79 -1
  110. package/src/lab/Lab.tsx +105 -13
  111. package/src/lab/LabContext.ts +8 -0
  112. package/src/lab/LabFit.stories.tsx +4 -4
  113. package/src/lab/LabFullChrome.stories.tsx +1 -1
  114. package/src/lab/LabHeader.tsx +0 -1
  115. package/src/lab/LabRoot.test.tsx +56 -0
  116. package/src/lab/LabRoot.tsx +47 -0
  117. package/src/lab/LabShell.less +24 -3
  118. package/src/lab/LabShell.stories.tsx +50 -1
  119. package/src/lab/LabShell.tsx +18 -27
  120. package/src/lab/LabSwitcher.less +10 -10
  121. package/src/lab/LabSwitcher.test.tsx +14 -9
  122. package/src/lab/LabSwitcher.tsx +8 -4
  123. package/src/lab/Workspace.less +1 -1
  124. package/src/lab/Workspace.stories.tsx +1 -1
  125. package/src/lab/Workspace.surface.test.tsx +1 -1
  126. package/src/lab/index.ts +2 -0
  127. package/src/layers/LayerList.stories.tsx +1 -1
  128. package/src/loupe/AGENTS.md +16 -4
  129. package/src/loupe/LoupeGestures.tsx +67 -0
  130. package/src/loupe/TrialLoupe.tsx +43 -28
  131. package/src/loupe/index.ts +4 -0
  132. package/src/loupe/loupeActions.ts +98 -0
  133. package/src/loupe/useLoupe.test.tsx +59 -2
  134. package/src/loupe/useLoupe.ts +28 -48
  135. package/src/passthrough/weasel-ui.ts +3 -3
  136. package/src/primitives/FloatingPanel.stories.tsx +1 -1
  137. package/src/primitives/FpsMeter.stories.tsx +1 -1
  138. package/src/primitives/JobProgress.stories.tsx +1 -1
  139. package/src/primitives/Legend.stories.tsx +1 -1
  140. package/src/primitives/ScaleIndicator.stories.tsx +1 -1
  141. package/src/primitives/Sidebar.less +7 -0
  142. package/src/primitives/Sidebar.stories.tsx +1 -1
  143. package/src/primitives/Split.test.tsx +25 -0
  144. package/src/primitives/Split.tsx +36 -20
  145. package/src/primitives/StatusBar.stories.tsx +1 -1
  146. package/src/primitives/Toolbar.stories.tsx +1 -1
  147. package/src/specimen/Specimen.less +95 -0
  148. package/src/specimen/Specimen.stories.tsx +13 -0
  149. package/src/specimen/Specimen.test.tsx +13 -0
  150. package/src/specimen/Specimen.tsx +888 -0
  151. package/src/state/Persistence.stories.tsx +4 -4
  152. package/src/state/store.test.ts +65 -0
  153. package/src/state/store.ts +32 -8
  154. package/src/state/types.ts +26 -2
  155. package/src/state/useTrialState.test.tsx +85 -0
  156. package/src/state/useTrialState.ts +9 -1
  157. package/src/styles.less +1 -0
  158. package/src/surface/index.ts +1 -1
  159. package/src/surface/useSurfaceTile.test.tsx +1 -1
  160. package/src/surface/useTiledSurface.test.tsx +65 -10
  161. package/src/surface/useTiledSurface.ts +23 -11
  162. package/src/theme/Interstellar.stories.tsx +2 -2
  163. package/src/theme/interstellar.test.ts +16 -5
  164. package/src/theme/interstellar.theme.json +180 -0
  165. package/src/theme/interstellar.ts +8 -5
  166. package/src/tools/labTool.ts +3 -3
  167. package/src/trial/Trial.annotations.test.tsx +13 -4
  168. package/src/trial/Trial.canvas.test.tsx +32 -0
  169. package/src/trial/Trial.config.test.tsx +75 -2
  170. package/src/trial/Trial.less +4 -0
  171. package/src/trial/Trial.stories.tsx +4 -1
  172. package/src/trial/Trial.test.tsx +3 -0
  173. package/src/trial/Trial.tsx +21 -14
  174. package/src/trial/TrialChrome.tsx +17 -3
  175. package/src/trial/trialOps.test.ts +101 -1
  176. package/src/trial/trialOps.ts +62 -4
  177. package/dist/_dts/ToggleBar.d-DbHoWKIA.d.ts +0 -116
  178. package/dist/chunk-67SJLMC7.js.map +0 -1
  179. package/dist/chunk-6ZDGOZQV.js.map +0 -1
  180. package/dist/chunk-E44SU6XS.js +0 -50
  181. package/dist/chunk-E44SU6XS.js.map +0 -1
  182. package/dist/chunk-EKIICY6X.js.map +0 -1
  183. package/dist/chunk-NDRYLVOW.js.map +0 -1
  184. package/dist/chunk-NS64DXMN.js.map +0 -1
  185. package/dist/chunk-PGETSEDK.js.map +0 -1
  186. package/dist/chunk-QLSV2N3G.js.map +0 -1
  187. package/dist/chunk-S2SHZRD7.js +0 -7681
  188. package/dist/chunk-S2SHZRD7.js.map +0 -1
  189. package/dist/chunk-TQBBYTAF.js +0 -280
  190. package/dist/chunk-TQBBYTAF.js.map +0 -1
  191. package/dist/chunk-ZPH5WTWF.js.map +0 -1
  192. package/src/theme/interstellar.tokens.json +0 -61
package/dist/index.d.ts CHANGED
@@ -1,34 +1,47 @@
1
- export { B as Button, a as ButtonProps, b as ButtonSize, c as ButtonVariant, T as ToggleBar, d as ToggleBarItem, e as ToggleBarProps, f as ToggleBarSize, g as ToggleBarVariant } from './_dts/ToggleBar.d-DbHoWKIA.js';
2
- export { LayerStack, LayerStackItem, LayerStackProps } from './ui/layers/index.js';
3
1
  import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import { I as IconProps } from './_dts/Select.d-Gwr8fLpK.js';
3
+ export { B as Button, a as ButtonProps, b as ButtonSize, c as ButtonVariant, d as Icon, e as Input, f as InputProps, S as Select, g as SelectProps, T as ToggleBar, h as ToggleBarItem, i as ToggleBarProps, j as ToggleBarSize, k as ToggleBarVariant } from './_dts/Select.d-Gwr8fLpK.js';
4
+ export { LayerStack, LayerStackItem, LayerStackProps } from './ui/layers/index.js';
4
5
  import * as react from 'react';
5
6
  import { ReactNode } from 'react';
6
- import { P as PropertyMetricProps, a as PropertyListPack } from './_dts/index-retnAut7.js';
7
- export { C as CheckboxRow, b as CheckboxRowProps, c as ColorRow, d as ColorRowProps, e as ControlPanel, N as NumberRow, f as NumberRowProps, g as PropertyList, h as PropertyListProps, i as PropertyOption, j as PropertyPanel, k as PropertyPanelProps, l as PropertyRow, m as PropertyRowLayout, n as PropertyRowProps, o as PropertyRowVariant, p as PropertySpan, q as PropertySpanProps, S as SelectRow, r as SelectRowProps, s as SliderRow, t as SliderRowProps, T as TextRow, u as TextRowProps, v as ToggleRow, w as ToggleRowProps } from './_dts/index-retnAut7.js';
8
- import { DrawCommand, SceneNode, View, Path, FillStyle, StyledRun, TextStyle, Stroke, BuiltinToolId } from '@weasel-js/core';
9
- import { t as WorldRect, A as AnnotationData, v as AnnotationMeaning, w as MarkScene, x as CaptureSource, y as CaptureOptions, z as CaptureResult, B as AnnotationTarget, E as AnnotationsApi, F as AnnotationsCapability, G as TrialInfo, H as TrialTool, J as AnnotationKind, k as ViewTransform, K as Instrument, q as InstrumentList, o as LabMode, N as TrialContribution, c as StorageAdapter, T as TrialRecord } from './_dts/frac-8R6UmlvN.js';
10
- export { O as Annotation, Q as AnnotationInit, R as AnnotationPatch, X as AnnotationQuery, Y as AnnotationStatus, Z as AnnotationStoreOptions, _ as AnnotationTargetInfo, $ as CanvasCapability, a0 as CanvasLayer, a1 as CaptureDeps, a2 as ContributionBase, C as CreateLabStoreOptions, D as DEFAULT_FRAME, n as DragDropCapability, m as DragFeedback, a3 as FracPoint, a4 as FracRect, a5 as HitResult, a6 as IconComponent, a7 as LOUPE_DEFAULTS, L as LabDocument, d as LabStoreState, a8 as LayerCapability, a9 as LayerDescriptor, aa as LoupeCapability, ab as LoupeDeclaration, ac as LoupeRenderArgs, P as PaletteItem, l as Point, ad as RegionContribution, ae as RenderContext, af as ResolvedLoupe, e as SavedSnapshot, ag as SerializedAnnotations, S as SerializedTrial, ah as SidebarSection, ai as SidebarSlotContext, aj as StageCapability, ak as StatusReadout, f as StorageChange, al as SystemEvent, am as ToolCapability, an as ToolItem, ao as ToolSlotContext, ap as ToolbarItem, aq as TrialChromeContext, ar as TrialRegion, g as TrialStateHandle, as as UndoCapability, U as UndoStack, h as UndockedPanel, i as UndockedPanels, at as ViewportControl, V as ViewportSize, W as WorldFrame, a as WorldSpec, au as annotationsFromJSON, b as applyCamera, av as createAnnotationScene, aw as createAnnotationStore, j as dockPanel, ax as fracContains, ay as fracEncloses, az as fracToWorld, p as panelKey, r as resolveFrame, aA as resolveLoupe, aB as roundFrac, u as undockPanel, aC as worldToFrac } from './_dts/frac-8R6UmlvN.js';
11
- export { C as CanvasStack, a as CanvasStackProps, O as OrbitHandlers, b as OrbitView, P as PITCH_LIMIT, c as PanZoomHandlers, S as Stage, d as StageProps, U as UseOrbitOptions, e as UsePanZoomOptions, V as Vec3, Z as ZoomAtOptions, f as centerOn, g as clampPitch, h as fitStage, o as orbitAfterDrag, i as orbitAfterWheel, s as screenToWorld, u as useOrbit, j as usePanZoom, w as worldToScreen, k as wrapYaw, z as zoomAt } from './_dts/usePanZoom-nS798rOF.js';
12
- export { C as CanvasLayerDescriptor, a as CanvasStackContext, b as CanvasStackContextValue, c as CanvasStackSurface } from './_dts/CanvasStackContext-CqkxkFJW.js';
13
- import { L as LabContribution } from './_dts/index-B8uu2ba7.js';
14
- export { A as AddTrialOptions, a as LabChromeContext, b as LabContext, c as LabContextValue, d as LabFooterRegion, e as LabHeaderRegion, f as LabRegion, g as LabRegionProps, h as LabSidebarRegion, P as PaletteRegion, i as PaletteRegionProps, S as SidebarRegion, j as SidebarRegionProps, k as StatusRegion, l as StatusRegionProps, T as TitleBarPlacement, m as TitleBarRegion, n as TitleBarRegionProps, o as ToolbarRegion, p as ToolbarRegionProps, V as ViewportRegion, q as ViewportRegionProps, r as addTrial, s as builtinContributions, t as cloneTrial, u as closeTrial, v as contributionsIn, w as labContributions, x as mergeContributions, y as reorderTrials, z as resetTrial, B as suppressContributions, C as toolContributions, D as useLabChromeContext, E as useLabContext } from './_dts/index-B8uu2ba7.js';
15
- export { BaseNode, BooleanNode, ColorNode, CustomNode, EnumNode, GroupNode, NumberNode, StringNode, ValueNode, applyRules, builtinRules, f, fillConfigDefaults, fromConfigFields, hasConfigPath, isConfigBranch, isLeafVisible, resolveConfigSchema, schemaNodeAtPath, titleCase, useConfigSchema, valueAtPath, withValueAtPath } from './config/index.js';
16
- import { b as ConfigSchema, a as ConfigField, c as ConfigRule, d as ControlRenderer } from './_dts/types-Ca2LCnPq.js';
17
- export { A as Annotations, B as BranchAnnotations, e as BranchOptions, f as CheckboxField, g as ColorField, h as ConfigBranch, i as ConfigEntry, j as ConfigFieldBase, k as ConfigFieldType, l as ConfigNode, m as ConfigOf, n as ConfigOption, C as ConfigPath, o as ConfigRuleContext, p as ConfigShape, E as EntryValue, I as InferConfig, L as LeafPatch, N as NodeOptions, q as NodeValue, r as NumberField, R as ResolvedConfig, S as SectionSpec, s as SelectField, t as SelectOption, u as SliderField, T as TextField, V as ValueAtPath } from './_dts/types-Ca2LCnPq.js';
7
+ import { P as PropertyMetricProps, a as PropertyListPack } from './_dts/index-BNdz-tNd.js';
8
+ export { C as CheckboxRow, b as CheckboxRowProps, c as ColorRow, d as ColorRowProps, e as ControlPanel, N as NumberRow, f as NumberRowProps, g as PropertyList, h as PropertyListProps, i as PropertyOption, j as PropertyPanel, k as PropertyPanelProps, l as PropertyRow, m as PropertyRowLayout, n as PropertyRowProps, o as PropertyRowVariant, p as PropertySpan, q as PropertySpanProps, S as SelectRow, r as SelectRowProps, s as SliderRow, t as SliderRowProps, T as TextRow, u as TextRowProps, v as ToggleRow, w as ToggleRowProps } from './_dts/index-BNdz-tNd.js';
9
+ import { DrawCommand, SceneNode, View, Path, FillStyle, StrokeAlign, StyledRun, TextStyle, TextVerticalAlign, Stroke, BuiltinToolId } from '@weasel-js/core';
10
+ import { t as WorldRect, A as AnnotationData, v as AnnotationMeaning, w as MarkScene, x as CaptureSource, y as CaptureOptions, z as CaptureResult, B as AnnotationTarget, E as AnnotationsApi, F as AnnotationsCapability, G as TrialInfo, H as TrialTool, J as AnnotationKind, k as ViewTransform, K as Instrument, q as InstrumentList, o as LabMode, N as TrialContribution, c as StorageAdapter, T as TrialRecord } from './_dts/frac-B4okC2lX.js';
11
+ export { O as Annotation, Q as AnnotationInit, R as AnnotationPatch, X as AnnotationQuery, Y as AnnotationStatus, Z as AnnotationStoreOptions, _ as AnnotationTargetInfo, $ as Auto, a0 as CanvasCapability, a1 as CanvasLayer, a2 as CaptureDeps, a3 as ContributionBase, C as CreateLabStoreOptions, D as DEFAULT_FRAME, n as DragDropCapability, m as DragFeedback, a4 as FracPoint, a5 as FracRect, a6 as HitResult, a7 as IconComponent, a8 as LOUPE_DEFAULTS, L as LabDocument, d as LabStoreState, a9 as LayerCapability, aa as LayerDescriptor, ab as LoupeCapability, ac as LoupeDeclaration, ad as LoupeRenderArgs, P as PaletteItem, l as Point, ae as RegionContribution, af as RenderContext, ag as ResolvedLoupe, e as SavedSnapshot, ah as SerializedAnnotations, S as SerializedTrial, ai as SidebarSection, aj as SidebarSlotContext, ak as StageCapability, al as StatusReadout, f as StorageChange, am as SystemEvent, an as ToolCapability, ao as ToolItem, ap as ToolSlotContext, aq as ToolbarItem, ar as TrialChromeContext, as as TrialRegion, g as TrialStateHandle, at as UndoCapability, U as UndoStack, h as UndockedPanel, i as UndockedPanels, au as ViewportControl, V as ViewportSize, W as WorldFrame, a as WorldSpec, av as annotationsFromJSON, b as applyCamera, aw as auto, ax as createAnnotationScene, ay as createAnnotationStore, j as dockPanel, az as fracContains, aA as fracEncloses, aB as fracToWorld, aC as isAuto, p as panelKey, r as resolveFrame, aD as resolveLoupe, aE as roundFrac, u as undockPanel, aF as worldToFrac } from './_dts/frac-B4okC2lX.js';
12
+ export { C as CanvasStack, a as CanvasStackProps, O as OrbitHandlers, b as OrbitView, P as PITCH_LIMIT, c as PanZoomHandlers, S as Stage, d as StageProps, U as UseOrbitOptions, e as UsePanZoomOptions, V as Vec3, Z as ZoomAtOptions, f as centerOn, g as clampPitch, h as fitStage, o as orbitAfterDrag, i as orbitAfterWheel, s as screenToWorld, u as useOrbit, j as usePanZoom, w as worldToScreen, k as wrapYaw, z as zoomAt } from './_dts/usePanZoom-Pzf9f2jh.js';
13
+ export { C as CanvasLayerDescriptor, a as CanvasStackContext, b as CanvasStackContextValue, c as CanvasStackSurface } from './_dts/CanvasStackContext-CJNMS6mz.js';
14
+ import { L as LabContribution } from './_dts/index-CSJoj4LC.js';
15
+ export { A as AddTrialOptions, a as LabAsideRegion, b as LabChromeContext, c as LabContext, d as LabContextValue, e as LabFooterRegion, f as LabHeaderRegion, g as LabRegion, h as LabRegionProps, i as LabSidebarRegion, P as PaletteRegion, j as PaletteRegionProps, S as SidebarRegion, k as SidebarRegionProps, l as StatusRegion, m as StatusRegionProps, T as TitleBarPlacement, n as TitleBarRegion, o as TitleBarRegionProps, p as ToolbarRegion, q as ToolbarRegionProps, V as ViewportRegion, r as ViewportRegionProps, s as addTrial, t as builtinContributions, u as cloneTrial, v as closeTrial, w as contributionsIn, x as labContributions, y as mergeContributions, z as reorderTrials, B as resetTrial, C as suppressContributions, D as toolContributions, E as useLabChromeContext, F as useLabContext } from './_dts/index-CSJoj4LC.js';
16
+ export { BaseNode, BooleanNode, ColorNode, CustomNode, EnumNode, GroupNode, NumberNode, StringNode, ValueNode, applyRules, autoPathsOf, builtinRules, f, fillConfigDefaults, fromConfigFields, hasConfigPath, isConfigBranch, isLeafVisible, resolveAutoConfig, resolveConfigSchema, schemaNodeAtPath, titleCase, useConfigSchema, useResolvedConfig, valueAtPath, withValueAtPath } from './config/index.js';
17
+ import { b as ConfigSchema, a as ConfigField, c as ConfigRule, d as ControlRenderer } from './_dts/types-DzoNY1pO.js';
18
+ export { A as Annotations, B as BranchAnnotations, e as BranchOptions, f as CheckboxField, g as ColorField, h as ConfigBranch, i as ConfigEntry, j as ConfigFieldBase, k as ConfigFieldType, l as ConfigNode, m as ConfigOf, n as ConfigOption, C as ConfigPath, o as ConfigRuleContext, p as ConfigShape, E as EntryValue, I as InferConfig, L as LeafPatch, N as NodeOptions, q as NodeValue, r as NumberField, R as ResolvedConfig, S as SectionSpec, s as SelectField, t as SelectOption, u as SliderField, T as TextField, V as ValueAtPath } from './_dts/types-DzoNY1pO.js';
18
19
  import { J as JobHandle } from './_dts/types-DJ79Tg5J.js';
19
20
  export { a as JobCapability, b as JobEvent, c as JobFailure, d as JobStatus } from './_dts/types-DJ79Tg5J.js';
20
21
  export { UseJobOptions, useJob } from './job/index.js';
21
22
  export { LayerList, LayerListProps, LayerTreeNode } from './layers/index.js';
22
- export { CanvasLoupe, CanvasLoupeProps, DomLoupe, DomLoupeProps, LensCamera, LoupeBubble, LoupeBubbleProps, LoupeState, SourceRect, TrialLoupe, TrialLoupeProps, UseLoupeOptions, drawCanvasLens, lensCamera, lensSourceRect, sampleStack, useLoupe } from './loupe/index.js';
23
+ export { CanvasLoupe, CanvasLoupeProps, DomLoupe, DomLoupeProps, LOUPE_MAGNIFY_ID, LOUPE_PEEK_ID, LensCamera, LoupeBubble, LoupeBubbleProps, LoupeGestures, LoupeGesturesProps, LoupeInputApi, LoupeState, SourceRect, TrialLoupe, TrialLoupeProps, UseLoupeOptions, createLoupeActions, drawCanvasLens, lensCamera, lensSourceRect, sampleStack, useLoupe } from './loupe/index.js';
23
24
  import { SplitProps } from './primitives/index.js';
24
25
  export { FloatingPanel, FloatingPanelProps, FpsMeter, JobProgress, JobProgressProps, Legend, LegendEntry, LegendMark, LegendProps, ScaleIndicator, ScaleIndicatorProps, Sidebar, SidebarProps, Split, StatusBar, StatusBarProps, StatusBarSectionProps, Toolbar, ToolbarButtonProps, ToolbarGroupProps, ToolbarProps, ZoomControl, ZoomControlProps } from './primitives/index.js';
25
- export { C as CURRENT_DOCUMENT_VERSION, I as IndexedDbAdapterOptions, 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, 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-jcx_TdU6.js';
26
+ export { C as CURRENT_DOCUMENT_VERSION, I as IndexedDbAdapterOptions, 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, 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-uLlmaccn.js';
26
27
  export { Box, Rect, SurfaceCanvasContext, SurfaceCanvases, SurfaceClear, SurfaceContext, SurfaceFrame, SurfaceHandle, SurfaceLayer, TilePainter, UseTiledSurfaceOptions, composeRects, rectsEqual, toDeviceRect, useSurface, useSurfaceCanvas, useSurfaceOptional, useSurfaceTile, useTileId, useTiledSurface } from './surface/index.js';
28
+ import { Theme } from '@weasel-js/theme';
27
29
  export { EventBus, EventListener, clearUndo, createEventBus, emptyStack, pushSnapshot, redo, undo } from './undo/index.js';
28
- import './_dts/PrefsForm.d-DDHFANkc.js';
30
+ import 'react-aria-components';
31
+ import './_dts/PrefsForm.d-DPy9I8It.js';
29
32
  import 'windease';
30
33
  import 'zustand/vanilla';
31
34
 
35
+ declare const ResetIcon: (p: IconProps) => react_jsx_runtime.JSX.Element;
36
+ declare const CloseIcon: (p: IconProps) => react_jsx_runtime.JSX.Element;
37
+ declare const PlayIcon: (p: IconProps) => react_jsx_runtime.JSX.Element;
38
+ declare const PauseIcon: (p: IconProps) => react_jsx_runtime.JSX.Element;
39
+ declare const StopIcon: (p: IconProps) => react_jsx_runtime.JSX.Element;
40
+ declare const StepBackIcon: (p: IconProps) => react_jsx_runtime.JSX.Element;
41
+ declare const StepForwardIcon: (p: IconProps) => react_jsx_runtime.JSX.Element;
42
+ declare const CollapseIcon: (p: IconProps) => react_jsx_runtime.JSX.Element;
43
+ declare const ExpandIcon: (p: IconProps) => react_jsx_runtime.JSX.Element;
44
+
32
45
  /** An annotation drawn over a curve plot: a shaded band across a range of x,
33
46
  * or a vertical line at one x. */
34
47
  type CurveMark = {
@@ -169,6 +182,81 @@ interface PropertyGroupProps extends PropertyMetricProps {
169
182
  */
170
183
  declare function PropertyGroup({ title, hidden, collapsible, defaultCollapsed, collapsed, onCollapsedChange, children, className, pack, density, align, }: PropertyGroupProps): react_jsx_runtime.JSX.Element | null;
171
184
 
185
+ /** A design token as `TokenPanel` edits it. */
186
+ interface TokenEntry {
187
+ /** The custom property, e.g. `--wzl-gray-50`. */
188
+ name: string;
189
+ /** A DTCG type name. A type the panel has no control for edits as text. */
190
+ type: string;
191
+ /** Tokens sharing a group sit together; a color group large enough draws as one row of swatches. */
192
+ group: string;
193
+ value: string;
194
+ /** Whether `value` overrides the token's own, which offers Reset. */
195
+ overridden?: boolean;
196
+ description?: string;
197
+ }
198
+ type TokenCategory = 'color' | 'type' | 'size' | 'motion' | 'depth' | 'other';
199
+ /** A DTCG type read off the shape of a value, for a token that arrives without one. `'string'` when nothing fits. */
200
+ declare function inferTokenType(value: string): string;
201
+
202
+ type OnChange = (name: string, value: string | null) => void;
203
+ /** Props for `<TokenPanel>`. */
204
+ interface TokenPanelProps {
205
+ tokens: readonly TokenEntry[];
206
+ /** A token's new value, or null to drop its override. Keep it stable: rows re-render only when it or their token changes. */
207
+ onChange: OnChange;
208
+ /** Sections held closed, by category. Omit to let the panel keep that state itself. */
209
+ collapsed?: Readonly<Partial<Record<TokenCategory, boolean>>>;
210
+ onCollapsedChange?: (category: TokenCategory, collapsed: boolean) => void;
211
+ /** Files a token under a section. Defaults to `tokenCategory`. */
212
+ categorize?: (token: TokenEntry) => TokenCategory;
213
+ /** The fewest colors sharing a group that draw as one row of swatches. Default 3. */
214
+ familySize?: number;
215
+ /**
216
+ * Row layout. `tight` puts a token on one line — name, control, Reset — with the
217
+ * names on a fixed rail so the values read down the panel as a column, and caps
218
+ * the field rather than letting it span the panel. Default `normal` stacks the
219
+ * control under its name.
220
+ */
221
+ density?: 'tight' | 'normal';
222
+ className?: string;
223
+ }
224
+ /**
225
+ * Edits a set of design tokens by type: collapsible sections by category, a
226
+ * color group drawn as one row of swatches sized to fit, and a control for each
227
+ * type — a number with its unit for dimensions and durations, the nine weights
228
+ * for a font weight, a curve beside a `cubic-bezier()`, a swatch beside a color,
229
+ * and text for everything else.
230
+ */
231
+ declare function TokenPanel({ tokens, onChange, collapsed, onCollapsedChange, categorize, familySize, density, className, }: TokenPanelProps): react_jsx_runtime.JSX.Element;
232
+
233
+ /** Props for {@link Jog}. */
234
+ interface JogProps {
235
+ /** Which step is showing, 0-based. */
236
+ index: number;
237
+ /** How many steps there are. */
238
+ count: number;
239
+ playing: boolean;
240
+ onPlay: (playing: boolean) => void;
241
+ /** Move one step, back or forward. */
242
+ onStep: (by: -1 | 1) => void;
243
+ /** Jump to a step. Left out, no scrubber is drawn. */
244
+ onScrub?: (index: number) => void;
245
+ /** What one step is called, for the spoken labels. Defaults to `Step`. */
246
+ unit?: string;
247
+ /** Drawn after the readout — a beat's caption, a snapshot's date. */
248
+ caption?: ReactNode;
249
+ className?: string;
250
+ }
251
+ /**
252
+ * Transport for something counted rather than timed: beat 3 of 24, not 4.20s of 12.00s.
253
+ * `<Transport>` is the continuous-time one, and wants a playhead in milliseconds, a rate and
254
+ * a loop, none of which a list of steps has.
255
+ *
256
+ * Named for the jog of jog/shuttle — moving one frame at a time, as against running at speed.
257
+ */
258
+ declare function Jog(props: JogProps): react_jsx_runtime.JSX.Element;
259
+
172
260
  /** The subset of a mark's scene node this needs: where it is, and what it is. */
173
261
  interface PaintableMark {
174
262
  pose: WorldRect;
@@ -396,6 +484,10 @@ interface SvgStroke {
396
484
  * attribute may render with longer miters than the source SVG intended.
397
485
  */
398
486
  miterLimit?: number;
487
+ /** The kit stroke's `align`. SVG has no stroke alignment, so the serializer
488
+ * writes the stroke centered and says so through `onWarn`; the parser
489
+ * never sets it. */
490
+ align?: StrokeAlign;
399
491
  /** `marker-start` / `marker-mid` / `marker-end`, as the bare `url(#id)` key. */
400
492
  markerStart?: string;
401
493
  markerMid?: string;
@@ -431,6 +523,12 @@ interface SvgGroupNode {
431
523
  kind: 'group';
432
524
  children: SvgNode[];
433
525
  transform?: Matrix;
526
+ /** Clips the group's contents. Serializes to a `<clipPath>` def plus
527
+ * `clip-path="url(#id)"`, and lives in the same space as `children` —
528
+ * SVG applies the group's own `transform` to the clip as well.
529
+ * A `<clipPath>` of more than one shape parses back as no clip: SVG
530
+ * unions them and a `Path` holds one outline. */
531
+ clip?: Path;
434
532
  opacity?: number;
435
533
  /** Opaque per-element bag for declared namespaces. See `NamespaceMeta`. */
436
534
  meta?: NamespaceMeta;
@@ -464,6 +562,10 @@ interface SvgTextNode {
464
562
  runs?: StyledRun[];
465
563
  /** Node-wide typography. Defaults applied at render time via `resolveTextStyle`. */
466
564
  style?: TextStyle;
565
+ /** Where the laid-out text sits inside the box — `kit:text`'s
566
+ * `data.verticalAlign`. SVG text has no box to align in, so this rides in
567
+ * `data-weasel-vertical-align` and other readers draw the text top-aligned. */
568
+ verticalAlign?: TextVerticalAlign;
467
569
  /**
468
570
  * Node-wide glyph paint, the `FillStyle` / `Stroke` a kit text node holds
469
571
  * in `data.fill` / `data.stroke`. Not `SvgPaint`, which is the path
@@ -491,6 +593,12 @@ interface SvgTextNode {
491
593
  * a reference and only resolves when something downstream loads it.
492
594
  *
493
595
  * SVG's `preserveAspectRatio` is not modeled; the box is taken literally.
596
+ *
597
+ * With a `source` rect or a flip, the element is written as a `<g
598
+ * data-weasel-image>` holding a nested `<svg>` viewport at the box, whose
599
+ * `viewBox` is the source window over a unit-square `<image>` — plain SVG 1.1,
600
+ * which any reader crops and mirrors the same way, and which `parseSvg` reads
601
+ * back as one image node.
494
602
  */
495
603
  interface SvgImageNode {
496
604
  kind: 'image';
@@ -499,6 +607,20 @@ interface SvgImageNode {
499
607
  y: number;
500
608
  width: number;
501
609
  height: number;
610
+ /** The part of the bitmap drawn into the box, as fractions of the bitmap's
611
+ * width and height from its top-left. Omitted draws the whole bitmap.
612
+ * Fractions rather than bitmap pixels because this package never decodes
613
+ * the image, so it cannot know its size. */
614
+ source?: {
615
+ x: number;
616
+ y: number;
617
+ width: number;
618
+ height: number;
619
+ };
620
+ /** Mirror the drawn region within the box, as `ImageDrawCommand` does. The
621
+ * box does not move. */
622
+ flipX?: boolean;
623
+ flipY?: boolean;
502
624
  /** Element-level opacity (`opacity="..."`), 0..1. */
503
625
  opacity?: number;
504
626
  /** Element-level rotation in **radians**, pivoting around the unrotated
@@ -748,7 +870,7 @@ type LabProps = LabBaseProps & ({
748
870
  });
749
871
  /** The lab runtime: opens the store, provides it, and renders one trial
750
872
  * per record in a grid. Each trial runs one of `instruments`. */
751
- declare function Lab(props: LabProps): react_jsx_runtime.JSX.Element;
873
+ declare function Lab(props: LabProps): string | number | bigint | boolean | react_jsx_runtime.JSX.Element | Iterable<ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | react.ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | null;
752
874
 
753
875
  /** Props for `<LabPalette>`. */
754
876
  interface LabPaletteProps {
@@ -762,6 +884,26 @@ interface LabPaletteProps {
762
884
  * the lab contributes no tool rail. */
763
885
  declare function LabPalette({ tools, contributions }: LabPaletteProps): react_jsx_runtime.JSX.Element;
764
886
 
887
+ /** Props for `<LabRoot>`. */
888
+ interface LabRootProps {
889
+ children: ReactNode;
890
+ /** Color mode. "auto" (default) follows prefers-color-scheme. */
891
+ mode?: LabMode;
892
+ /** Added after `lk-root` on the same element. */
893
+ className?: string;
894
+ }
895
+ /** The element every labkit component expects above it: `.lk-root`, which
896
+ * carries the design tokens, the font stack, the box-sizing reset and the
897
+ * element defaults a lab's bare markup is styled by, plus a theme when the
898
+ * app has not already applied one.
899
+ *
900
+ * `<LabShell>` and `<Lab>` render this themselves. Mount it by hand around a
901
+ * labkit piece used on its own — a bare `<Workspace>` or `<ControlPanel>` —
902
+ * or those components inherit whatever the host page happens to define.
903
+ * Pair it with `import '@weasel-js/labkit/styles.css'`, which is what defines
904
+ * the rules this element scopes. */
905
+ declare function LabRoot({ children, mode, className }: LabRootProps): react_jsx_runtime.JSX.Element;
906
+
765
907
  /** Props for `<LabShell>`. */
766
908
  interface LabShellProps {
767
909
  title: string;
@@ -782,7 +924,7 @@ interface LabShellProps {
782
924
  /** Page frame for a lab: a titled header, a body, and an optional footer,
783
925
  * themed for the resolved color mode. Presentational only — use `<Lab>` when
784
926
  * the trial runtime is wanted too. */
785
- declare function LabShell({ title, children, header, footer, mode, pages, path }: LabShellProps): react_jsx_runtime.JSX.Element;
927
+ declare function LabShell({ title, children, header, footer, mode, pages, path, }: LabShellProps): react_jsx_runtime.JSX.Element;
786
928
 
787
929
  /** A tile's persisted extent, keyed by the id its caller gave it. Grid resizes
788
930
  * write `span`; `size` is here because a strategy swap would write that. */
@@ -846,6 +988,18 @@ interface PanelDescriptor {
846
988
  }
847
989
  declare function Workspace({ children, ids, panels, resizable, reorderable, onReorder, layout, onLayoutChange, gap, padding, viewport, }: WorkspaceProps): react_jsx_runtime.JSX.Element;
848
990
 
991
+ /** The specimen's sections, in page order. */
992
+ declare const SPECIMEN_SECTIONS: readonly ["Buttons & toggles", "Fields & pickers", "Panels & property rows", "Overlays & feedback", "Lists & data", "Tool chrome", "Editors & plots", "Lab chrome"];
993
+ /**
994
+ * One page of the kit's controls and chrome, each in a small working state: a
995
+ * preview surface for a theme, where every token has something on screen that
996
+ * reads it. Popovers, dialogs and toasts portal into the page itself, so they
997
+ * take whatever theme the page is under.
998
+ */
999
+ declare function Specimen({ className }: {
1000
+ className?: string;
1001
+ }): react_jsx_runtime.JSX.Element;
1002
+
849
1003
  /** The 2D view labkit has always shipped, and what a trial gets when it names no
850
1004
  * other. Re-exported under its own name so a consumer can say which it means. */
851
1005
  type ViewTransform2D = ViewTransform;
@@ -854,40 +1008,10 @@ declare const DEFAULT_VIEW: ViewTransform2D;
854
1008
  * zoom chrome, `CanvasStack` — asks for it and handles not getting it. */
855
1009
  declare function as2DView(view: unknown): ViewTransform2D | null;
856
1010
 
857
- type TokenValue = string | number | readonly (string | number)[];
858
- /**
859
- * A single design token as authored, before aliases are resolved: a DTCG-shaped
860
- * `{ type, value }` pair where `value` may still be a `{ref}` to another token.
861
- */
862
- interface RawToken {
863
- readonly type: string;
864
- readonly value: TokenValue;
865
- /** Render the referenced color at this alpha, 0–1. */
866
- readonly alpha?: number | undefined;
867
- readonly description?: string | undefined;
868
- }
869
- /** A token graph flattened to one level, keyed by token name (no `--wzl-`
870
- * prefix). Still unresolved — see `ResolvedTokenMap` for the output side. */
871
- type FlatTokens = Record<string, RawToken>;
872
- /**
873
- * A theme: a named set of design tokens, organized into a mode-invariant layer
874
- * plus one layer per mode (light, dark, …), optionally extending another theme.
875
- * Tokens are held unresolved — aliases between them are collapsed later by
876
- * `resolveTheme`, so an override of a base primitive still reaches everything
877
- * that references it.
878
- */
879
- interface Theme {
880
- readonly name: string;
881
- readonly extends: Theme | null;
882
- readonly defaultMode: string;
883
- readonly tokens: FlatTokens;
884
- readonly modes: Readonly<Record<string, FlatTokens>>;
885
- }
886
-
887
1011
  /**
888
1012
  * labkit's theme: a cosmic dark and a warm parchment light, extending the
889
- * built-in weasel theme. Authored as DTCG and loaded at import time — the
890
- * interchange path a theme exported from a design tool would take.
1013
+ * built-in weasel theme. A pins-only theme definition: nothing in it is
1014
+ * derived, so it loads without the engine.
891
1015
  */
892
1016
  declare const interstellarTheme: Theme;
893
1017
 
@@ -958,5 +1082,5 @@ interface TrialChromeProps {
958
1082
  * each region its slice. */
959
1083
  declare function TrialChrome({ trialId, record, instrument, isLastTrial, undoBindings, job, loupe, trialChrome, chrome, suppress, activeToolId, setActiveTool, children, }: TrialChromeProps): react_jsx_runtime.JSX.Element;
960
1084
 
961
- export { ANNOTATION_TOOLS, ANNOTATION_WEASEL_TOOLS, AnnotationData, AnnotationKind, AnnotationMeaning, AnnotationOverlay, AnnotationTarget, AnnotationTargets, AnnotationsApi, AnnotationsCapability, AnnotationsContext, CaptureOptions, CaptureResult, CaptureSource, ConfigField, ConfigRule, ConfigSchema, ControlRenderer, CurveField, DEFAULT_VIEW, EffectCard, EffectCardList, ExportMenu, Instrument, InstrumentList, JobHandle, Lab, LabContribution, LabMode, LabPalette, LabShell, LabSwitcher, MarkList, MarkScene, PropertyGroup, PropertyListPack, SplitProps, StorageAdapter, Subpanel, Trial, TrialBody, TrialChrome, TrialContribution, TrialInfo, TrialRecord, TrialTool, ViewTransform, Workspace, WorldRect, annotationToolInfo, as2DView, capturePlan, captureTarget, composeCaptureSvg, createMarkDrawOne, currentPage, defineInstrument, fitView, fromWeaselView, interstellarTheme, isStale, markCommands, markSvgNodes, resolveMarkStyle, seenFrom, toWeaselView, useAnnotations, useAnnotationsOptional, validateConfigSchema };
962
- export type { AnnotationOverlayProps, AnnotationTargetsProps, AnnotationToolInfo, CaptureArgs, CapturePlan, ComposeSvgArgs, ContentSize, CurveFieldProps, CurveMark, EffectCardListItem, EffectCardListProps, EffectCardProps, InstrumentSpec, LabPage, LabPaletteProps, LabProps, LabShellProps, LabSwitcherProps, MarkDrawOptions, MarkListProps, MarkStyle, PaintableMark, PaneSize, PanelDescriptor, PropertyGroupProps, SubpanelProps, TrialBodyProps, TrialChromeProps, TrialLayout, TrialProps, UndoBindings, ValidationResult, ViewTransform2D, WorkspaceProps };
1085
+ export { ANNOTATION_TOOLS, ANNOTATION_WEASEL_TOOLS, AnnotationData, AnnotationKind, AnnotationMeaning, AnnotationOverlay, AnnotationTarget, AnnotationTargets, AnnotationsApi, AnnotationsCapability, AnnotationsContext, CaptureOptions, CaptureResult, CaptureSource, CloseIcon, CollapseIcon, ConfigField, ConfigRule, ConfigSchema, ControlRenderer, CurveField, DEFAULT_VIEW, EffectCard, EffectCardList, ExpandIcon, ExportMenu, IconProps, Instrument, InstrumentList, JobHandle, Jog, Lab, LabContribution, LabMode, LabPalette, LabRoot, LabShell, LabSwitcher, MarkList, MarkScene, PauseIcon, PlayIcon, PropertyGroup, PropertyListPack, ResetIcon, SPECIMEN_SECTIONS, Specimen, SplitProps, StepBackIcon, StepForwardIcon, StopIcon, StorageAdapter, Subpanel, TokenPanel, Trial, TrialBody, TrialChrome, TrialContribution, TrialInfo, TrialRecord, TrialTool, ViewTransform, Workspace, WorldRect, annotationToolInfo, as2DView, capturePlan, captureTarget, composeCaptureSvg, createMarkDrawOne, currentPage, defineInstrument, fitView, fromWeaselView, inferTokenType, interstellarTheme, isStale, markCommands, markSvgNodes, resolveMarkStyle, seenFrom, toWeaselView, useAnnotations, useAnnotationsOptional, validateConfigSchema };
1086
+ export type { AnnotationOverlayProps, AnnotationTargetsProps, AnnotationToolInfo, CaptureArgs, CapturePlan, ComposeSvgArgs, ContentSize, CurveFieldProps, CurveMark, EffectCardListItem, EffectCardListProps, EffectCardProps, InstrumentSpec, JogProps, LabPage, LabPaletteProps, LabProps, LabRootProps, LabShellProps, LabSwitcherProps, MarkDrawOptions, MarkListProps, MarkStyle, PaintableMark, PaneSize, PanelDescriptor, PropertyGroupProps, SubpanelProps, TokenCategory, TokenEntry, TokenPanelProps, TrialBodyProps, TrialChromeProps, TrialLayout, TrialProps, UndoBindings, ValidationResult, ViewTransform2D, WorkspaceProps };