@weasel-js/labkit 1.5.1 → 1.6.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.
- package/README.md +3 -7
- package/dist/_dts/{CanvasStackContext-CJNMS6mz.d.ts → CanvasStackContext-DQgcH1ny.d.ts} +1 -1
- package/dist/_dts/LayerList.d-2c9yup5Y.d.ts +83 -0
- package/dist/_dts/{PrefsForm.d-DPy9I8It.d.ts → PrefsRow.d-DFpPIeIC.d.ts} +16 -1
- package/dist/_dts/{Select.d-Gwr8fLpK.d.ts → Select.d-BchGMC2Y.d.ts} +129 -12
- package/dist/_dts/{frac-B4okC2lX.d.ts → frac-DTRq7Xpb.d.ts} +31 -13
- package/dist/_dts/inDialog-D5ZKGjiD.d.ts +23 -0
- package/dist/_dts/{index-CSJoj4LC.d.ts → index-B0--8PEM.d.ts} +5 -4
- package/dist/_dts/index-DINmCuLA.d.ts +453 -0
- package/dist/_dts/number.d-OeQYQoUO.d.ts +28 -0
- package/dist/_dts/{types-DzoNY1pO.d.ts → types-B7y8hX1D.d.ts} +6 -6
- package/dist/_dts/{usePanZoom-Pzf9f2jh.d.ts → usePanZoom-Bq73pwFe.d.ts} +4 -47
- package/dist/_dts/{useTrialState-uLlmaccn.d.ts → useTrialState-CP4jfuKl.d.ts} +1 -1
- package/dist/canvas/index.d.ts +6 -5
- package/dist/canvas/index.js +1 -1
- package/dist/chrome/index.d.ts +5 -4
- package/dist/chrome/index.js +7 -7
- package/dist/chunk-2RVCB2PT.js +3 -0
- package/dist/chunk-2RVCB2PT.js.map +1 -0
- package/dist/{chunk-UN4U4P63.js → chunk-3FI7Y4R4.js} +9 -9
- package/dist/chunk-3FI7Y4R4.js.map +1 -0
- package/dist/{chunk-7PFH3CNM.js → chunk-AWH3SRPW.js} +31 -5
- package/dist/chunk-AWH3SRPW.js.map +1 -0
- package/dist/{chunk-ZDHY47EV.js → chunk-BVL7Y574.js} +25 -9
- package/dist/chunk-BVL7Y574.js.map +1 -0
- package/dist/{chunk-IHUVQ3TX.js → chunk-H5VIV7MQ.js} +31 -27
- package/dist/chunk-H5VIV7MQ.js.map +1 -0
- package/dist/chunk-HFRE4QQV.js +400 -0
- package/dist/chunk-HFRE4QQV.js.map +1 -0
- package/dist/{chunk-IXTQI7JX.js → chunk-MOLIUNVH.js} +4 -4
- package/dist/{chunk-IXTQI7JX.js.map → chunk-MOLIUNVH.js.map} +1 -1
- package/dist/{chunk-CEIUBPPW.js → chunk-TT5C5S6R.js} +3 -86
- package/dist/chunk-TT5C5S6R.js.map +1 -0
- package/dist/chunk-USO6TERP.js +90 -0
- package/dist/chunk-USO6TERP.js.map +1 -0
- package/dist/{chunk-PHK4W562.js → chunk-VQ47KWD5.js} +3 -3
- package/dist/{chunk-PHK4W562.js.map → chunk-VQ47KWD5.js.map} +1 -1
- package/dist/chunk-WUJXJC5O.js +14568 -0
- package/dist/chunk-WUJXJC5O.js.map +1 -0
- package/dist/{chunk-EHGVROVV.js → chunk-ZORVNOKX.js} +6 -25
- package/dist/chunk-ZORVNOKX.js.map +1 -0
- package/dist/config/index.d.ts +53 -11
- package/dist/config/index.js +5 -5
- package/dist/controls/index.d.ts +6 -3
- package/dist/controls/index.js +4 -4
- package/dist/dragdrop/index.d.ts +4 -3
- package/dist/index.d.ts +139 -114
- package/dist/index.js +470 -479
- package/dist/index.js.map +1 -1
- package/dist/layers/index.d.ts +6 -35
- package/dist/layers/index.js +2 -3
- package/dist/loupe/index.d.ts +6 -5
- package/dist/passthrough/weasel-ui.d.ts +421 -215
- package/dist/passthrough/weasel-ui.js +1 -1
- package/dist/primitives/index.d.ts +2 -13
- package/dist/primitives/index.js +4 -4
- package/dist/state/index.d.ts +6 -5
- package/dist/state/index.js +5 -5
- package/dist/styles.css +410 -190
- package/dist/undo/index.d.ts +4 -3
- package/package.json +9 -13
- package/src/annotations/frac.test.ts +7 -0
- package/src/annotations/paint.test.ts +21 -0
- package/src/annotations/paint.ts +12 -0
- package/src/annotations/store.test.ts +31 -0
- package/src/annotations/types.ts +3 -2
- package/src/canvas/Stage.test.tsx +18 -0
- package/src/canvas/index.ts +0 -9
- package/src/chrome/labTypes.ts +1 -1
- package/src/chrome/regions/PaletteRegion.test.tsx +18 -0
- package/src/chrome/regions/PaletteRegion.tsx +5 -4
- package/src/chrome/regions/SidebarRegion.less +197 -0
- package/src/chrome/regions/SidebarRegion.test.tsx +20 -0
- package/src/chrome/regions/SidebarRegion.tsx +7 -2
- package/src/chrome/regions/TitleBarRegion.tsx +1 -1
- package/src/chrome/types.ts +13 -4
- package/src/config/autoConfig.ts +2 -2
- package/src/config/builder.ts +23 -5
- package/src/config/entry.test.ts +8 -0
- package/src/config/index.ts +2 -0
- package/src/config/rules.ts +2 -0
- package/src/config/sectionTree.test.ts +146 -0
- package/src/config/sectionTree.ts +124 -0
- package/src/config/types.ts +4 -4
- package/src/controls/AutoControls.stories.tsx +6 -6
- package/src/controls/ControlPanel.less +27 -0
- package/src/controls/ControlPanel.stories.tsx +95 -1
- package/src/controls/ControlPanel.test.tsx +82 -112
- package/src/controls/ControlPanel.tsx +159 -396
- package/src/controls/inDialog.test.tsx +82 -0
- package/src/controls/inDialog.tsx +46 -0
- package/src/controls/index.ts +1 -0
- package/src/index.test.ts +0 -2
- package/src/index.ts +14 -35
- package/src/instrument/types.ts +5 -2
- package/src/lab/Lab.nebula.test.tsx +31 -0
- package/src/lab/Lab.tsx +57 -18
- package/src/lab/LabBoundary.test.tsx +66 -0
- package/src/lab/LabBoundary.tsx +56 -0
- package/src/lab/LabHeader.tsx +4 -23
- package/src/lab/LabRoot.tsx +2 -3
- package/src/lab/LabShell.less +0 -1
- package/src/lab/LabShell.stories.tsx +15 -0
- package/src/lab/LabShell.test.tsx +18 -0
- package/src/lab/LabShell.tsx +14 -1
- package/src/lab/LabSwitcher.less +1 -1
- package/src/lab/LabSwitcher.test.tsx +41 -0
- package/src/lab/LabSwitcher.tsx +30 -8
- package/src/lab/index.ts +1 -0
- package/src/layers/AGENTS.md +18 -74
- package/src/layers/index.ts +4 -2
- package/src/passthrough/weasel-ui.ts +25 -10
- package/src/primitives/FpsMeter.less +6 -1
- package/src/primitives/FpsMeter.test.tsx +12 -4
- package/src/primitives/FpsMeter.tsx +6 -1
- package/src/primitives/JobProgress.stories.tsx +1 -1
- package/src/primitives/StatusBar.less +6 -0
- package/src/primitives/index.ts +0 -2
- package/src/specimen/Specimen.tsx +42 -56
- package/src/state/types.ts +8 -2
- package/src/state/view.test.ts +4 -4
- package/src/styles.less +4 -2
- package/src/theme/Interstellar.stories.tsx +8 -9
- package/src/theme/base.less +3 -20
- package/src/theme/interstellar.test.ts +6 -3
- package/src/theme/interstellar.theme.json +0 -56
- package/src/theme/interstellar.ts +2 -2
- package/src/trial/Trial.canvas.test.tsx +9 -5
- package/src/trial/Trial.config.test.tsx +1 -1
- package/src/trial/Trial.tsx +30 -8
- package/dist/_dts/index-BNdz-tNd.d.ts +0 -423
- package/dist/chunk-7PFH3CNM.js.map +0 -1
- package/dist/chunk-CEIUBPPW.js.map +0 -1
- package/dist/chunk-EH7UEQV7.js +0 -590
- package/dist/chunk-EH7UEQV7.js.map +0 -1
- package/dist/chunk-EHGVROVV.js.map +0 -1
- package/dist/chunk-IHUVQ3TX.js.map +0 -1
- package/dist/chunk-MDVTK5U3.js +0 -170
- package/dist/chunk-MDVTK5U3.js.map +0 -1
- package/dist/chunk-PJ7WEQBJ.js +0 -18
- package/dist/chunk-PJ7WEQBJ.js.map +0 -1
- package/dist/chunk-T3EC2DXD.js +0 -12628
- package/dist/chunk-T3EC2DXD.js.map +0 -1
- package/dist/chunk-UN4U4P63.js.map +0 -1
- package/dist/chunk-ZDHY47EV.js.map +0 -1
- package/dist/ui/layers/index.d.ts +0 -66
- package/dist/ui/layers/index.js +0 -3
- package/dist/ui/layers/index.js.map +0 -1
- package/src/canvas/useOrbit.test.ts +0 -167
- package/src/canvas/useOrbit.ts +0 -156
- package/src/lab/useSystemMode.ts +0 -30
- package/src/layers/LayerList.less +0 -93
- package/src/layers/LayerList.stories.tsx +0 -66
- package/src/layers/LayerList.test.tsx +0 -232
- package/src/layers/LayerList.tsx +0 -268
- package/src/primitives/Sidebar.less +0 -112
- package/src/primitives/Sidebar.stories.tsx +0 -38
- package/src/primitives/Sidebar.test.tsx +0 -74
- package/src/primitives/Sidebar.tsx +0 -35
- package/src/ui/layers/index.ts +0 -5
package/dist/index.d.ts
CHANGED
|
@@ -1,34 +1,35 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
|
-
import { I as IconProps } from './_dts/Select.d-
|
|
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-
|
|
4
|
-
export {
|
|
2
|
+
import { I as IconProps } from './_dts/Select.d-BchGMC2Y.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-BchGMC2Y.js';
|
|
4
|
+
export { L as LayerList, a as LayerListItem, b as LayerListProps, c as LayerMove, m as moveLayers } from './_dts/LayerList.d-2c9yup5Y.js';
|
|
5
|
+
import { P as PropertyMetricProps, a as PropertyListPack } from './_dts/index-DINmCuLA.js';
|
|
6
|
+
export { C as ControlPanel, b as PropertyControl, c as PropertyControlProps, d as PropertyField, e as PropertyFieldProps, f as PropertyList, g as PropertyListProps, h as PropertyOption, i as PropertyPanel, j as PropertyPanelProps, k as PropertyRow, l as PropertyRowLayout, m as PropertyRowProps, n as PropertyRowVariant, o as PropertySpan, p as PropertySpanProps } from './_dts/index-DINmCuLA.js';
|
|
5
7
|
import * as react from 'react';
|
|
6
8
|
import { ReactNode } from 'react';
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
import {
|
|
10
|
-
|
|
11
|
-
export {
|
|
12
|
-
export { C as
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
export {
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
export {
|
|
9
|
+
import { S as StanceProps } from './_dts/PrefsRow.d-DFpPIeIC.js';
|
|
10
|
+
import { DrawCommand, SceneNode, View, Path, FillStyle, ScreenLength, StrokeAlign, StyledRun, TextStyle, TextVerticalAlign, Stroke, BuiltinToolId } from '@weasel-js/core';
|
|
11
|
+
import { w as WorldRect, A as AnnotationData, x as AnnotationMeaning, y as MarkScene, z as CaptureSource, B as CaptureOptions, E as CaptureResult, F as AnnotationTarget, G as AnnotationsApi, H as AnnotationsCapability, J as TrialInfo, K as TrialTool, N as AnnotationKind, m as ViewTransform, O as Instrument, t as InstrumentList, s as LabMode, Q as LabDensity, R as TrialContribution, d as StorageAdapter, T as TrialRecord } from './_dts/frac-DTRq7Xpb.js';
|
|
12
|
+
export { X as Annotation, Y as AnnotationInit, Z as AnnotationPatch, _ as AnnotationQuery, $ as AnnotationStatus, a0 as AnnotationStoreOptions, a1 as AnnotationTargetInfo, a2 as Auto, a3 as CanvasCapability, a4 as CanvasLayer, a5 as CaptureDeps, a6 as ContributionBase, C as CreateLabStoreOptions, D as DEFAULT_FRAME, q as DragDropCapability, o as DragFeedback, a7 as FracPoint, a8 as FracRect, a9 as HitResult, aa as IconComponent, ab as LOUPE_DEFAULTS, e as LabDocument, f as LabStoreState, L as LayerCapability, a as LayerDescriptor, ac as LoupeCapability, ad as LoupeDeclaration, ae as LoupeRenderArgs, P as PaletteItem, n as Point, af as RegionContribution, ag as RenderContext, ah as ResolvedLoupe, g as SavedSnapshot, ai as SerializedAnnotations, S as SerializedTrial, aj as SidebarSection, ak as SidebarSlotContext, al as StageCapability, am as StatusReadout, h as StorageChange, an as SystemEvent, ao as ToolCapability, ap as ToolItem, aq as ToolSlotContext, ar as ToolbarItem, as as TrialChromeContext, at as TrialRegion, i as TrialStateHandle, au as UndoCapability, U as UndoStack, j as UndockedPanel, k as UndockedPanels, av as ViewportControl, V as ViewportSize, W as WorldFrame, b as WorldSpec, aw as annotationsFromJSON, c as applyCamera, ax as auto, ay as createAnnotationScene, az as createAnnotationStore, l as dockPanel, aA as fracContains, aB as fracEncloses, aC as fracToWorld, aD as isAuto, p as panelKey, r as resolveFrame, aE as resolveLoupe, aF as roundFrac, u as undockPanel, aG as worldToFrac } from './_dts/frac-DTRq7Xpb.js';
|
|
13
|
+
export { C as CanvasStack, a as CanvasStackProps, P as PanZoomHandlers, S as Stage, b as StageProps, U as UsePanZoomOptions, Z as ZoomAtOptions, c as centerOn, f as fitStage, s as screenToWorld, u as usePanZoom, w as worldToScreen, z as zoomAt } from './_dts/usePanZoom-Bq73pwFe.js';
|
|
14
|
+
export { C as CanvasLayerDescriptor, a as CanvasStackContext, b as CanvasStackContextValue, c as CanvasStackSurface } from './_dts/CanvasStackContext-DQgcH1ny.js';
|
|
15
|
+
import { L as LabContribution } from './_dts/index-B0--8PEM.js';
|
|
16
|
+
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-B0--8PEM.js';
|
|
17
|
+
export { BaseNode, BooleanNode, ColorNode, CustomNode, EnumNode, GroupNode, ListNode, NumberNode, SectionTree, StringNode, ValueNode, applyRules, autoPathsOf, builtinRules, f, fillConfigDefaults, fromConfigFields, hasConfigPath, isConfigBranch, isLeafVisible, resolveAutoConfig, resolveConfigSchema, schemaNodeAtPath, sectionTree, titleCase, useConfigSchema, useResolvedConfig, valueAtPath, withValueAtPath } from './config/index.js';
|
|
18
|
+
import { c as ConfigSchema, b as ConfigField, d as ConfigRule, C as ControlRenderer } from './_dts/types-B7y8hX1D.js';
|
|
19
|
+
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, a 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-B7y8hX1D.js';
|
|
20
|
+
export { I as InDialogOptions, i as inDialog, s as summarizeValue } from './_dts/inDialog-D5ZKGjiD.js';
|
|
19
21
|
import { J as JobHandle } from './_dts/types-DJ79Tg5J.js';
|
|
20
22
|
export { a as JobCapability, b as JobEvent, c as JobFailure, d as JobStatus } from './_dts/types-DJ79Tg5J.js';
|
|
21
23
|
export { UseJobOptions, useJob } from './job/index.js';
|
|
22
|
-
|
|
24
|
+
import { Theme, ColorList } from '@weasel-js/theme';
|
|
23
25
|
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';
|
|
24
26
|
import { SplitProps } from './primitives/index.js';
|
|
25
|
-
export { FloatingPanel, FloatingPanelProps, FpsMeter, JobProgress, JobProgressProps, Legend, LegendEntry, LegendMark, LegendProps, ScaleIndicator, ScaleIndicatorProps,
|
|
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-
|
|
27
|
+
export { FloatingPanel, FloatingPanelProps, FpsMeter, JobProgress, JobProgressProps, Legend, LegendEntry, LegendMark, LegendProps, ScaleIndicator, ScaleIndicatorProps, Split, StatusBar, StatusBarProps, StatusBarSectionProps, Toolbar, ToolbarButtonProps, ToolbarGroupProps, ToolbarProps, ZoomControl, ZoomControlProps } from './primitives/index.js';
|
|
28
|
+
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-CP4jfuKl.js';
|
|
27
29
|
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';
|
|
29
30
|
export { EventBus, EventListener, clearUndo, createEventBus, emptyStack, pushSnapshot, redo, undo } from './undo/index.js';
|
|
30
31
|
import 'react-aria-components';
|
|
31
|
-
import './_dts/
|
|
32
|
+
import './_dts/number.d-OeQYQoUO.js';
|
|
32
33
|
import 'windease';
|
|
33
34
|
import 'zustand/vanilla';
|
|
34
35
|
|
|
@@ -79,77 +80,17 @@ interface CurveFieldProps {
|
|
|
79
80
|
*/
|
|
80
81
|
declare function CurveField({ values, min, max, step, width, height, defaults, onChange, marks, }: CurveFieldProps): react_jsx_runtime.JSX.Element;
|
|
81
82
|
|
|
82
|
-
/** Props for `<Subpanel>`. */
|
|
83
|
-
interface SubpanelProps extends PropertyMetricProps {
|
|
84
|
-
title: ReactNode;
|
|
85
|
-
children: ReactNode;
|
|
86
|
-
className?: string;
|
|
87
|
-
}
|
|
88
|
-
/** A typographic divider inside a property list: a small title flanked by a
|
|
89
|
-
* rule. Purely a heading — use `<PropertyGroup>` for a bordered section. */
|
|
90
|
-
declare function Subpanel({ title, children, className, density, align }: SubpanelProps): react_jsx_runtime.JSX.Element;
|
|
91
|
-
/** Props for `<EffectCard>`. */
|
|
92
|
-
interface EffectCardProps {
|
|
93
|
-
/** Card title rendered in the title bar (e.g. effect kind label or a select). */
|
|
94
|
-
title: ReactNode;
|
|
95
|
-
/** Optional badge/chip displayed before the remove button (e.g. primary value summary). */
|
|
96
|
-
primary?: ReactNode;
|
|
97
|
-
/** Optional accent color in any CSS color form. Sets --wzl-effect-card-accent on the card. */
|
|
98
|
-
accent?: string;
|
|
99
|
-
/** Optional ordinal badge that doubles as the drag handle (used by tail cards in SB). */
|
|
100
|
-
index?: number;
|
|
101
|
-
expanded?: boolean;
|
|
102
|
-
onToggleExpanded?: () => void;
|
|
103
|
-
onRemove?: () => void;
|
|
104
|
-
/**
|
|
105
|
-
* Drag-handle wiring. When provided, an inline handle (⋮⋮ icon or `index`)
|
|
106
|
-
* activates HTML5 drag on press. Consumer owns the drag/drop coordination —
|
|
107
|
-
* see EffectCardList for the batteries-included wrapper.
|
|
108
|
-
*/
|
|
109
|
-
draggable?: boolean;
|
|
110
|
-
onPressHandle?: () => void;
|
|
111
|
-
onReleaseHandle?: () => void;
|
|
112
|
-
onDragStart?: (e: React.DragEvent<HTMLDivElement>) => void;
|
|
113
|
-
onDragEnd?: (e: React.DragEvent<HTMLDivElement>) => void;
|
|
114
|
-
onDragOver?: (e: React.DragEvent<HTMLDivElement>) => void;
|
|
115
|
-
onDragLeave?: (e: React.DragEvent<HTMLDivElement>) => void;
|
|
116
|
-
onDrop?: (e: React.DragEvent<HTMLDivElement>) => void;
|
|
117
|
-
dragging?: boolean;
|
|
118
|
-
children?: ReactNode;
|
|
119
|
-
className?: string;
|
|
120
|
-
}
|
|
121
|
-
/** An accented, collapsible card for one item in a list of like things —
|
|
122
|
-
* effects, layers, tails. The accent color rebinds the theme accent token
|
|
123
|
-
* within the card, so its controls pick it up too. */
|
|
124
|
-
declare function EffectCard({ title, primary, accent, index, expanded, onToggleExpanded, onRemove, draggable, onPressHandle, onReleaseHandle, onDragStart, onDragEnd, onDragOver, onDragLeave, onDrop, dragging, children, className, }: EffectCardProps): react_jsx_runtime.JSX.Element;
|
|
125
|
-
/** The minimum an item must carry to appear in an `<EffectCardList>`. */
|
|
126
|
-
interface EffectCardListItem {
|
|
127
|
-
id: string | number;
|
|
128
|
-
}
|
|
129
|
-
/** Props for `<EffectCardList>`. */
|
|
130
|
-
interface EffectCardListProps<T extends EffectCardListItem> {
|
|
131
|
-
items: ReadonlyArray<T>;
|
|
132
|
-
renderItem: (item: T, helpers: {
|
|
133
|
-
isExpanded: boolean;
|
|
134
|
-
isDragging: boolean;
|
|
135
|
-
toggleExpanded: () => void;
|
|
136
|
-
cardProps: Pick<EffectCardProps, 'expanded' | 'dragging' | 'draggable' | 'onToggleExpanded' | 'onPressHandle' | 'onReleaseHandle' | 'onDragStart' | 'onDragEnd' | 'onDragOver' | 'onDragLeave' | 'onDrop'>;
|
|
137
|
-
}) => ReactNode;
|
|
138
|
-
onReorder: (sourceId: T['id'], targetId: T['id'], position: 'before' | 'after') => void;
|
|
139
|
-
/** Optional rendered when the list is empty. */
|
|
140
|
-
empty?: ReactNode;
|
|
141
|
-
/** IDs to render expanded on first mount. Defaults to all collapsed. */
|
|
142
|
-
defaultExpandedIds?: ReadonlyArray<T['id']>;
|
|
143
|
-
}
|
|
144
|
-
/** A drag-reorderable list of `<EffectCard>`s. Owns the expanded and dragging
|
|
145
|
-
* state and hands it back to `renderItem`, so the caller only supplies each
|
|
146
|
-
* card's contents. */
|
|
147
|
-
declare function EffectCardList<T extends EffectCardListItem>({ items, renderItem, onReorder, empty, defaultExpandedIds, }: EffectCardListProps<T>): react_jsx_runtime.JSX.Element;
|
|
148
|
-
|
|
149
83
|
/** Props for `<PropertyGroup>`. */
|
|
150
|
-
interface PropertyGroupProps extends PropertyMetricProps {
|
|
84
|
+
interface PropertyGroupProps extends PropertyMetricProps, StanceProps {
|
|
151
85
|
/** Title rendered between two rules at the top of the group. */
|
|
152
86
|
title: ReactNode;
|
|
87
|
+
/** Before the title: a drag handle, an ordinal. Clicks here do not fold the group. */
|
|
88
|
+
leading?: ReactNode;
|
|
89
|
+
/** After the title: a summary of the group's value, a remove button. Clicks here do not fold the group. */
|
|
90
|
+
actions?: ReactNode;
|
|
91
|
+
/** Help text for the whole group, drawn under the title and above the
|
|
92
|
+
* rows. `<PropertyRow description>` covers the per-row case. */
|
|
93
|
+
description?: ReactNode;
|
|
153
94
|
/** When true the group renders nothing — useful for conditional sections. */
|
|
154
95
|
hidden?: boolean;
|
|
155
96
|
/**
|
|
@@ -169,6 +110,9 @@ interface PropertyGroupProps extends PropertyMetricProps {
|
|
|
169
110
|
onCollapsedChange?: (next: boolean) => void;
|
|
170
111
|
children: ReactNode;
|
|
171
112
|
className?: string;
|
|
113
|
+
/** Take the whole width of a packed grid, like `<PropertyRow span>`: a group
|
|
114
|
+
* lays its own rows out, so half a column leaves them overlapping. */
|
|
115
|
+
span?: boolean;
|
|
172
116
|
/** How rows pack into the 2-column grid — see `<PropertyList pack>`. */
|
|
173
117
|
pack?: PropertyListPack;
|
|
174
118
|
}
|
|
@@ -178,9 +122,24 @@ interface PropertyGroupProps extends PropertyMetricProps {
|
|
|
178
122
|
* inside a fill effect's controls).
|
|
179
123
|
*
|
|
180
124
|
* A collapsible group keeps its rows mounted and hides them, so a control's
|
|
181
|
-
* local state survives being folded away.
|
|
125
|
+
* local state survives being folded away. `stance` and `tone` work as on
|
|
126
|
+
* `<PropertyPanel>`; a tone also draws the group's leading edge in it, which
|
|
127
|
+
* is how a list of like groups — effects, tails — tells its members apart.
|
|
128
|
+
* `leading` and `actions` put a handle and controls in the title row, and the
|
|
129
|
+
* groups of a `<PropertyList>` reorder with `useReorderDragList`.
|
|
182
130
|
*/
|
|
183
|
-
declare function PropertyGroup({ title, hidden, collapsible, defaultCollapsed, collapsed, onCollapsedChange, children, className, pack, density, align, }: PropertyGroupProps): react_jsx_runtime.JSX.Element | null;
|
|
131
|
+
declare function PropertyGroup({ title, leading, actions, description, hidden, collapsible, defaultCollapsed, collapsed, onCollapsedChange, children, className, span, pack, density, align, stance, tone, }: PropertyGroupProps): react_jsx_runtime.JSX.Element | null;
|
|
132
|
+
|
|
133
|
+
/** Props for `<Subpanel>`. */
|
|
134
|
+
interface SubpanelProps extends PropertyMetricProps, StanceProps {
|
|
135
|
+
title: ReactNode;
|
|
136
|
+
children: ReactNode;
|
|
137
|
+
className?: string;
|
|
138
|
+
}
|
|
139
|
+
/** A typographic divider inside a property list: a small title flanked by a
|
|
140
|
+
* rule. Purely a heading — use `<PropertyGroup>` for a bordered section. A
|
|
141
|
+
* stance or tone colors the title and rule. */
|
|
142
|
+
declare function Subpanel({ title, children, className, density, align, stance, tone }: SubpanelProps): react_jsx_runtime.JSX.Element;
|
|
184
143
|
|
|
185
144
|
/** A design token as `TokenPanel` edits it. */
|
|
186
145
|
interface TokenEntry {
|
|
@@ -195,6 +154,30 @@ interface TokenEntry {
|
|
|
195
154
|
overridden?: boolean;
|
|
196
155
|
description?: string;
|
|
197
156
|
}
|
|
157
|
+
/** How a scale's steps follow from its base: one multiplier per step, a constant ratio, or a constant step. */
|
|
158
|
+
type TokenScaleRule = {
|
|
159
|
+
kind: 'factors';
|
|
160
|
+
factors: readonly number[];
|
|
161
|
+
} | {
|
|
162
|
+
kind: 'ratio';
|
|
163
|
+
ratio: number;
|
|
164
|
+
} | {
|
|
165
|
+
kind: 'step';
|
|
166
|
+
step: number;
|
|
167
|
+
};
|
|
168
|
+
/** A group whose steps are generated from a base, so the panel edits the base and the rule rather than each step. */
|
|
169
|
+
interface TokenScale {
|
|
170
|
+
/** The generated tokens, smallest first. Anything else in the group draws as an ordinary step. */
|
|
171
|
+
tokens: readonly string[];
|
|
172
|
+
base: number;
|
|
173
|
+
rule: TokenScaleRule;
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* The same scale under another rule, fitted to the amounts its steps have now.
|
|
177
|
+
* A ratio or step counts from the first step, so switching to one moves the
|
|
178
|
+
* base there.
|
|
179
|
+
*/
|
|
180
|
+
declare function refitScale(scale: TokenScale, kind: TokenScaleRule['kind'], amounts: readonly number[]): TokenScale;
|
|
198
181
|
type TokenCategory = 'color' | 'type' | 'size' | 'motion' | 'depth' | 'other';
|
|
199
182
|
/** A DTCG type read off the shape of a value, for a token that arrives without one. `'string'` when nothing fits. */
|
|
200
183
|
declare function inferTokenType(value: string): string;
|
|
@@ -208,9 +191,13 @@ interface TokenPanelProps {
|
|
|
208
191
|
/** Sections held closed, by category. Omit to let the panel keep that state itself. */
|
|
209
192
|
collapsed?: Readonly<Partial<Record<TokenCategory, boolean>>>;
|
|
210
193
|
onCollapsedChange?: (category: TokenCategory, collapsed: boolean) => void;
|
|
194
|
+
/** Groups generated from a base, by group name. Such a group edits its base and rule above its steps. */
|
|
195
|
+
scales?: Readonly<Record<string, TokenScale>>;
|
|
196
|
+
/** A scale's new base or rule. The panel does not regenerate the steps; the consumer does, through `onChange`. */
|
|
197
|
+
onScaleChange?: (group: string, scale: TokenScale) => void;
|
|
211
198
|
/** Files a token under a section. Defaults to `tokenCategory`. */
|
|
212
199
|
categorize?: (token: TokenEntry) => TokenCategory;
|
|
213
|
-
/** The fewest colors sharing a group that draw as one row of swatches. Default 3. */
|
|
200
|
+
/** The fewest colors, or sizes, sharing a group that draw as one row of swatches or one grid of steps. Default 3. */
|
|
214
201
|
familySize?: number;
|
|
215
202
|
/**
|
|
216
203
|
* Row layout. `tight` puts a token on one line — name, control, Reset — with the
|
|
@@ -223,12 +210,14 @@ interface TokenPanelProps {
|
|
|
223
210
|
}
|
|
224
211
|
/**
|
|
225
212
|
* 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,
|
|
213
|
+
* color group drawn as one row of swatches sized to fit, a group of sizes drawn
|
|
214
|
+
* as one grid of numbers labeled by step — with its base and rule above it when
|
|
215
|
+
* `scales` says how it is generated — and a control for each
|
|
227
216
|
* type — a number with its unit for dimensions and durations, the nine weights
|
|
228
217
|
* for a font weight, a curve beside a `cubic-bezier()`, a swatch beside a color,
|
|
229
218
|
* and text for everything else.
|
|
230
219
|
*/
|
|
231
|
-
declare function TokenPanel({ tokens, onChange, collapsed, onCollapsedChange, categorize, familySize, density, className, }: TokenPanelProps): react_jsx_runtime.JSX.Element;
|
|
220
|
+
declare function TokenPanel({ tokens, onChange, collapsed, onCollapsedChange, scales, onScaleChange, categorize, familySize, density, className, }: TokenPanelProps): react_jsx_runtime.JSX.Element;
|
|
232
221
|
|
|
233
222
|
/** Props for {@link Jog}. */
|
|
234
223
|
interface JogProps {
|
|
@@ -395,6 +384,8 @@ declare function seenFrom(config: unknown, keys: readonly string[]): Record<stri
|
|
|
395
384
|
*/
|
|
396
385
|
declare function isStale(seen: Readonly<Record<string, unknown>> | undefined, config: unknown, keys: readonly string[]): boolean;
|
|
397
386
|
|
|
387
|
+
type Mat3 = readonly [number, number, number, number, number, number];
|
|
388
|
+
|
|
398
389
|
/**
|
|
399
390
|
* Public types for `@weasel-js/svg`. The package exposes a flat,
|
|
400
391
|
* discriminated-union node model (`SvgNode`) that mirrors the SVG element
|
|
@@ -442,10 +433,14 @@ interface NamespacedElement {
|
|
|
442
433
|
children?: Record<string, NamespacedElement[]>;
|
|
443
434
|
}
|
|
444
435
|
/**
|
|
445
|
-
* 2x3 affine matrix in
|
|
446
|
-
*
|
|
436
|
+
* 2x3 affine matrix in SVG's `matrix(a b c d e f)` order, mapping
|
|
437
|
+
* `[x', y'] = [a*x + c*y + e, b*x + d*y + f]`.
|
|
438
|
+
*
|
|
439
|
+
* The same order the kernel's affine tier uses, so this is that type under
|
|
440
|
+
* the name the SVG spec gives it — not a parallel one. An `SvgGroupNode`'s
|
|
441
|
+
* transform and a geom `Mat3` are interchangeable without a conversion.
|
|
447
442
|
*/
|
|
448
|
-
type Matrix =
|
|
443
|
+
type Matrix = Mat3;
|
|
449
444
|
/**
|
|
450
445
|
* FillStyle description in the SVG sense — either explicit `none`, a solid
|
|
451
446
|
* color, or a reference to a weasel-native gradient `FillStyle`. Solid colors
|
|
@@ -466,11 +461,9 @@ type SvgPaint = {
|
|
|
466
461
|
interface SvgStroke {
|
|
467
462
|
paint: SvgPaint;
|
|
468
463
|
/** World units, or `{ px }` for a width that holds its rendered thickness
|
|
469
|
-
* however the document is scaled — SVG's `vector-effect="non-scaling-stroke"
|
|
470
|
-
*
|
|
471
|
-
width:
|
|
472
|
-
px: number;
|
|
473
|
-
};
|
|
464
|
+
* however the document is scaled — SVG's `vector-effect="non-scaling-stroke"`.
|
|
465
|
+
* Literally the kit's own unit, not a second spelling of it. */
|
|
466
|
+
width: ScreenLength;
|
|
474
467
|
opacity?: number;
|
|
475
468
|
/** `stroke-linecap`. Default per SVG spec is `'butt'`. */
|
|
476
469
|
cap?: 'butt' | 'round' | 'square';
|
|
@@ -775,7 +768,8 @@ declare function validateConfigSchema(fields: ConfigField[]): ValidationResult;
|
|
|
775
768
|
|
|
776
769
|
/** One page in a project's set of labs. */
|
|
777
770
|
interface LabPage {
|
|
778
|
-
/** The page's own URL, and how the switcher knows which page is open.
|
|
771
|
+
/** The page's own URL, and how the switcher knows which page is open. A
|
|
772
|
+
* hash route (`#/dev/tools`) names a page on the current document. */
|
|
779
773
|
href: string;
|
|
780
774
|
label: string;
|
|
781
775
|
}
|
|
@@ -794,7 +788,11 @@ interface LabSwitcherProps {
|
|
|
794
788
|
* Matched on the end of the path so a query string, a trailing slash or a
|
|
795
789
|
* leftover `.html` cannot lose it: a project whose dev server maps `/stats`
|
|
796
790
|
* to `stats.html` serves both spellings, and a bookmark from before the URLs
|
|
797
|
-
* lost their extension still resolves to the same page.
|
|
791
|
+
* lost their extension still resolves to the same page.
|
|
792
|
+
*
|
|
793
|
+
* A page whose `href` carries a hash is a route on a single document and wins
|
|
794
|
+
* when the path's hash is that route or one under it. A page without one
|
|
795
|
+
* ignores the hash, so an in-page anchor does not lose it. */
|
|
798
796
|
declare function currentPage(path: string, pages: readonly LabPage[]): number;
|
|
799
797
|
/** A project's lab title, doubling as the way to reach its other labs.
|
|
800
798
|
*
|
|
@@ -815,15 +813,24 @@ interface LabBaseProps {
|
|
|
815
813
|
instruments: InstrumentList;
|
|
816
814
|
defaultInstrument: string;
|
|
817
815
|
mode?: LabMode;
|
|
816
|
+
/** How much room the lab's chrome takes. Default `'comfortable'`; a lab whose
|
|
817
|
+
* window is the whole app, rather than a panel beside one, reads better at
|
|
818
|
+
* `'roomy'`. The trials' own contents are unaffected. */
|
|
819
|
+
density?: LabDensity;
|
|
820
|
+
/** The theme the lab's chrome resolves against, applied at `mode` and
|
|
821
|
+
* `density`. Default `interstellarTheme`; extend it rather than replace it to
|
|
822
|
+
* keep the lab's look while changing a few tokens. */
|
|
823
|
+
theme?: Theme;
|
|
818
824
|
/** Rendered while a stored lab loads. Default: the lab's empty shell. */
|
|
819
825
|
fallback?: ReactNode;
|
|
820
826
|
/**
|
|
821
|
-
*
|
|
822
|
-
*
|
|
823
|
-
*
|
|
824
|
-
*
|
|
827
|
+
* Colors composing the interstellar theme's cosmic backdrop. Each becomes
|
|
828
|
+
* one radial-gradient blob on the dark void base, in a fixed spread of
|
|
829
|
+
* positions; extras wrap around. A theme ramp resolves against the lab's
|
|
830
|
+
* theme; a function list gives as many blobs as there are positions.
|
|
831
|
+
* Ignored unless the resolved mode is dark.
|
|
825
832
|
*/
|
|
826
|
-
nebula?:
|
|
833
|
+
nebula?: ColorList;
|
|
827
834
|
title?: string;
|
|
828
835
|
/** The project's other labs. Given two or more, the title becomes the way to
|
|
829
836
|
* reach them — the same switcher `<LabShell>` renders, so a lab reached from
|
|
@@ -870,7 +877,22 @@ type LabProps = LabBaseProps & ({
|
|
|
870
877
|
});
|
|
871
878
|
/** The lab runtime: opens the store, provides it, and renders one trial
|
|
872
879
|
* per record in a grid. Each trial runs one of `instruments`. */
|
|
873
|
-
declare function Lab(props: LabProps): string | number | bigint | boolean |
|
|
880
|
+
declare function Lab(props: LabProps): string | number | bigint | boolean | Iterable<ReactNode> | Promise<string | number | bigint | boolean | react.ReactPortal | react.ReactElement<unknown, string | react.JSXElementConstructor<any>> | Iterable<ReactNode> | null | undefined> | react_jsx_runtime.JSX.Element | null;
|
|
881
|
+
|
|
882
|
+
/** Props for `<LabBoundary>`. */
|
|
883
|
+
interface LabBoundaryProps {
|
|
884
|
+
children: ReactNode;
|
|
885
|
+
}
|
|
886
|
+
/**
|
|
887
|
+
* Renders its children as though no lab, trial or theme were above them: every context a `<Lab>` or a
|
|
888
|
+
* `<Trial>` publishes reads as absent below it, so a labkit piece mounted inside a trial behaves the way it
|
|
889
|
+
* does on a bare page. A `<LabRoot>` under it applies its own theme instead of deferring to the lab's, and a
|
|
890
|
+
* `usePersistedState` under it keeps local state instead of writing into the enclosing lab's records.
|
|
891
|
+
*
|
|
892
|
+
* For a host that shows arbitrary content inside a trial, such as a component workshop; a lab's own chrome
|
|
893
|
+
* never needs it.
|
|
894
|
+
*/
|
|
895
|
+
declare function LabBoundary({ children }: LabBoundaryProps): react_jsx_runtime.JSX.Element;
|
|
874
896
|
|
|
875
897
|
/** Props for `<LabPalette>`. */
|
|
876
898
|
interface LabPaletteProps {
|
|
@@ -920,11 +942,14 @@ interface LabShellProps {
|
|
|
920
942
|
/** The path the switcher reads to mark the open page. Defaults to the
|
|
921
943
|
* current location. */
|
|
922
944
|
path?: string;
|
|
945
|
+
/** Set as `document.title` while the shell is mounted, and the previous
|
|
946
|
+
* title restored after. Omitted, the document's title is left alone. */
|
|
947
|
+
documentTitle?: string;
|
|
923
948
|
}
|
|
924
949
|
/** Page frame for a lab: a titled header, a body, and an optional footer,
|
|
925
950
|
* themed for the resolved color mode. Presentational only — use `<Lab>` when
|
|
926
951
|
* the trial runtime is wanted too. */
|
|
927
|
-
declare function LabShell({ title, children, header, footer, mode, pages, path, }: LabShellProps): react_jsx_runtime.JSX.Element;
|
|
952
|
+
declare function LabShell({ title, children, header, footer, mode, pages, path, documentTitle, }: LabShellProps): react_jsx_runtime.JSX.Element;
|
|
928
953
|
|
|
929
954
|
/** A tile's persisted extent, keyed by the id its caller gave it. Grid resizes
|
|
930
955
|
* write `span`; `size` is here because a strategy swap would write that. */
|
|
@@ -1009,8 +1034,8 @@ declare const DEFAULT_VIEW: ViewTransform2D;
|
|
|
1009
1034
|
declare function as2DView(view: unknown): ViewTransform2D | null;
|
|
1010
1035
|
|
|
1011
1036
|
/**
|
|
1012
|
-
* labkit's theme: a cosmic dark
|
|
1013
|
-
*
|
|
1037
|
+
* labkit's theme: a cosmic dark over the built-in weasel theme, whose light
|
|
1038
|
+
* mode it keeps as is. A pins-only theme definition: nothing in it is
|
|
1014
1039
|
* derived, so it loads without the engine.
|
|
1015
1040
|
*/
|
|
1016
1041
|
declare const interstellarTheme: Theme;
|
|
@@ -1082,5 +1107,5 @@ interface TrialChromeProps {
|
|
|
1082
1107
|
* each region its slice. */
|
|
1083
1108
|
declare function TrialChrome({ trialId, record, instrument, isLastTrial, undoBindings, job, loupe, trialChrome, chrome, suppress, activeToolId, setActiveTool, children, }: TrialChromeProps): react_jsx_runtime.JSX.Element;
|
|
1084
1109
|
|
|
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,
|
|
1086
|
-
export type { AnnotationOverlayProps, AnnotationTargetsProps, AnnotationToolInfo, CaptureArgs, CapturePlan, ComposeSvgArgs, ContentSize, CurveFieldProps, CurveMark,
|
|
1110
|
+
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, ExpandIcon, ExportMenu, IconProps, Instrument, InstrumentList, JobHandle, Jog, Lab, LabBoundary, LabContribution, LabDensity, 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, refitScale, resolveMarkStyle, seenFrom, toWeaselView, useAnnotations, useAnnotationsOptional, validateConfigSchema };
|
|
1111
|
+
export type { AnnotationOverlayProps, AnnotationTargetsProps, AnnotationToolInfo, CaptureArgs, CapturePlan, ComposeSvgArgs, ContentSize, CurveFieldProps, CurveMark, InstrumentSpec, JogProps, LabBoundaryProps, LabPage, LabPaletteProps, LabProps, LabRootProps, LabShellProps, LabSwitcherProps, MarkDrawOptions, MarkListProps, MarkStyle, PaintableMark, PaneSize, PanelDescriptor, PropertyGroupProps, SubpanelProps, TokenCategory, TokenEntry, TokenPanelProps, TokenScale, TokenScaleRule, TrialBodyProps, TrialChromeProps, TrialLayout, TrialProps, UndoBindings, ValidationResult, ViewTransform2D, WorkspaceProps };
|