@weasel-js/labkit 1.0.1 → 1.0.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.
- package/dist/{chunk-EXBV7A6X.js → chunk-2ZRE7WGQ.js} +3 -3
- package/dist/{chunk-EXBV7A6X.js.map → chunk-2ZRE7WGQ.js.map} +1 -1
- package/dist/{chunk-ISEK5LXT.js → chunk-3P56ZCCJ.js} +1636 -1734
- package/dist/chunk-3P56ZCCJ.js.map +1 -0
- package/dist/{chunk-NRD3TDNQ.js → chunk-R4TACNW7.js} +1461 -1486
- package/dist/chunk-R4TACNW7.js.map +1 -0
- package/dist/index.js +3 -3
- package/dist/passthrough/weasel-canvas.js +1 -1
- package/dist/passthrough/weasel-ui.d.ts +70 -29
- package/dist/passthrough/weasel-ui.js +2 -2
- package/dist/styles.css +147 -0
- package/dist/ui/layers/index.js +3 -3
- package/package.json +2 -2
- package/dist/chunk-ISEK5LXT.js.map +0 -1
- package/dist/chunk-NRD3TDNQ.js.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { LayerStack } from './chunk-
|
|
2
|
-
import { p, F } from './chunk-
|
|
3
|
-
import './chunk-
|
|
1
|
+
export { LayerStack } from './chunk-2ZRE7WGQ.js';
|
|
2
|
+
import { p, F } from './chunk-R4TACNW7.js';
|
|
3
|
+
import './chunk-3P56ZCCJ.js';
|
|
4
4
|
import { Sidebar, StatusBar, Toolbar } from './chunk-HXZHVU4G.js';
|
|
5
5
|
export { FpsMeter, ScaleIndicator, Sidebar, StatusBar, Toolbar } from './chunk-HXZHVU4G.js';
|
|
6
6
|
import { LabStoreContext, createLabStore, noneAdapter } from './chunk-53XSBIUK.js';
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { FALLBACK_FIT_VIEW, MinimapCanvas, SceneViewCanvas, buildSceneViewCommands, computeFitView2 as computeFitView, computeIndicatorCommand, renderSceneToCanvas } from '../chunk-
|
|
1
|
+
export { FALLBACK_FIT_VIEW, MinimapCanvas, SceneViewCanvas, buildSceneViewCommands, computeFitView2 as computeFitView, computeIndicatorCommand, renderSceneToCanvas } from '../chunk-3P56ZCCJ.js';
|
|
2
2
|
//# sourceMappingURL=weasel-canvas.js.map
|
|
3
3
|
//# sourceMappingURL=weasel-canvas.js.map
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as react_jsx_runtime from 'react/jsx-runtime';
|
|
2
2
|
import * as react from 'react';
|
|
3
|
-
import { ReactNode, CSSProperties, ButtonHTMLAttributes, ReactElement, MutableRefObject, PointerEvent as PointerEvent$1,
|
|
3
|
+
import { ReactNode, CSSProperties, ButtonHTMLAttributes, ReactElement, MutableRefObject, KeyboardEvent, PointerEvent as PointerEvent$1, RefCallback, RefObject } from 'react';
|
|
4
4
|
import { V as View, D as DrawCommand, O as Op, b as NodeId, c as Path, S as Scene, H as History, B as Bounds } from '../_dts/DrawCommand-CitWPxMY.js';
|
|
5
5
|
import { TextFieldProps, ValidationResult, CheckboxProps as CheckboxProps$1, SwitchProps as SwitchProps$1, TabProps as TabProps$1, TabListProps as TabListProps$1, TabPanelProps as TabPanelProps$1, TabsProps as TabsProps$1, RadioProps as RadioProps$1, RadioGroupProps as RadioGroupProps$1, NumberFieldProps as NumberFieldProps$1, SelectProps as SelectProps$1, ListBoxItemProps, ComboBoxProps as ComboBoxProps$1, SliderProps as SliderProps$1, ModalOverlayProps, DialogProps as DialogProps$1 } from 'react-aria-components';
|
|
6
6
|
|
|
@@ -1365,6 +1365,12 @@ interface LayoutStrategy<TPose> {
|
|
|
1365
1365
|
x: number;
|
|
1366
1366
|
y: number;
|
|
1367
1367
|
}): boolean;
|
|
1368
|
+
/** Optional: reject a drag before any drop-target work happens. A type-aware
|
|
1369
|
+
* container (a palette that only takes swatches, say) returns `false` and
|
|
1370
|
+
* the drag falls through to whatever container is under it next. When
|
|
1371
|
+
* absent, every drag is considered — rejection is still possible later, by
|
|
1372
|
+
* `snap.pickTarget` returning null. */
|
|
1373
|
+
acceptsDrop?(container: LayoutContainer, dragged: LayoutDragged<TPose>): boolean;
|
|
1368
1374
|
}
|
|
1369
1375
|
|
|
1370
1376
|
/**
|
|
@@ -1406,6 +1412,12 @@ interface MoveAdapter<TNode extends {
|
|
|
1406
1412
|
* targeting (`getLayout` present), nested-hit collapse
|
|
1407
1413
|
* (`pickTopMostHit`), and group-pose composition. Flat scenes may omit. */
|
|
1408
1414
|
getParent?(id: string): string | null;
|
|
1415
|
+
/** Optional paint depth, read by `pickTopMostHit` to resolve two *siblings*
|
|
1416
|
+
* whose bodies both cover the pointer. Without it the hit list's own order
|
|
1417
|
+
* decides, which is right for a back-to-front walk and wrong for anything
|
|
1418
|
+
* else. See `PickTopMostHitAdapter` for the `compareZ` alternative. */
|
|
1419
|
+
getZIndex?(id: string): number | null | undefined;
|
|
1420
|
+
compareZ?(a: string, b: string): number;
|
|
1409
1421
|
setPose(id: string, pose: TPose): void;
|
|
1410
1422
|
/** Optional. Used only by reparent ops (e.g. drag-into-container drops via
|
|
1411
1423
|
* layout strategies). Flat scenes that never reparent may omit. */
|
|
@@ -2272,7 +2284,7 @@ type OngoingOverlay = {
|
|
|
2272
2284
|
* renderer narrows on `shape` and casts the field shape it expects.
|
|
2273
2285
|
*/
|
|
2274
2286
|
kind: 'insertPreview';
|
|
2275
|
-
shape: 'rect' | 'ellipse' | 'line' | 'polygon' | 'star' | 'pencil';
|
|
2287
|
+
shape: 'rect' | 'ellipse' | 'line' | 'polygon' | 'star' | 'pencil' | 'image';
|
|
2276
2288
|
bounds: {
|
|
2277
2289
|
x: number;
|
|
2278
2290
|
y: number;
|
|
@@ -2336,6 +2348,14 @@ interface OngoingHandle {
|
|
|
2336
2348
|
*/
|
|
2337
2349
|
previewIds?(): Iterable<string> | null;
|
|
2338
2350
|
previewPose?(id: string): unknown | null;
|
|
2351
|
+
/**
|
|
2352
|
+
* Subset of `previewIds()` the ghost layer paints at full opacity. The
|
|
2353
|
+
* ghost alpha says "this is in flight under the pointer"; a node the
|
|
2354
|
+
* gesture merely displaces — a layout sibling reflowing into its
|
|
2355
|
+
* destination slot — is not, and reads better settled. Honored at
|
|
2356
|
+
* subtree-root granularity.
|
|
2357
|
+
*/
|
|
2358
|
+
previewOpaqueIds?(): Iterable<string> | null;
|
|
2339
2359
|
/**
|
|
2340
2360
|
* When `false`, the preview-ghost layer paints the ghost AND the
|
|
2341
2361
|
* source node stays visible at its committed pose. Defaults to
|
|
@@ -3102,6 +3122,13 @@ type InsertExtras = {
|
|
|
3102
3122
|
} | {
|
|
3103
3123
|
kind: 'text';
|
|
3104
3124
|
text?: string;
|
|
3125
|
+
} | {
|
|
3126
|
+
kind: 'image';
|
|
3127
|
+
src?: string;
|
|
3128
|
+
opacity?: number;
|
|
3129
|
+
/** Chrome-only: what the in-flight drag paints. Read by the overlay
|
|
3130
|
+
* layer, ignored by the insert dep. */
|
|
3131
|
+
preview?: 'bitmap' | 'outline';
|
|
3105
3132
|
} | {
|
|
3106
3133
|
kind: string;
|
|
3107
3134
|
[extra: string]: unknown;
|
|
@@ -3431,6 +3458,14 @@ interface Eligibility {
|
|
|
3431
3458
|
/** Modality filter, applied wherever it would otherwise be live. */
|
|
3432
3459
|
capabilities?: CapabilityTag[];
|
|
3433
3460
|
}
|
|
3461
|
+
/**
|
|
3462
|
+
* Where an entry's overlay sits in the layer stack, relative to the
|
|
3463
|
+
* selection chrome. `'top'` is the default and renders above everything;
|
|
3464
|
+
* the other two exist for chrome that belongs under the selection handles
|
|
3465
|
+
* (a snap-target highlight, say). With no selection overlay in the stack,
|
|
3466
|
+
* all three collapse to `'top'`.
|
|
3467
|
+
*/
|
|
3468
|
+
type OverlayPosition = 'top' | 'before-selection' | 'after-selection';
|
|
3434
3469
|
/**
|
|
3435
3470
|
* A registry entry: what it contributes, and when it is eligible. Every role
|
|
3436
3471
|
* is optional and independent — an entry that only routes input declares only
|
|
@@ -3441,12 +3476,37 @@ interface Contribution {
|
|
|
3441
3476
|
eligibility: Eligibility;
|
|
3442
3477
|
bindings?: GestureBinding[];
|
|
3443
3478
|
actions?: Action[];
|
|
3444
|
-
|
|
3479
|
+
/** One layer, or several composed in the given order. */
|
|
3480
|
+
overlay?: RenderLayer<unknown> | RenderLayer<unknown>[];
|
|
3481
|
+
/** Defaults to `'top'`. Applies to every layer in `overlay`. */
|
|
3482
|
+
overlayPosition?: OverlayPosition;
|
|
3445
3483
|
presentation?: ToolPresentation;
|
|
3446
3484
|
/** Reflection escape hatch — the authored form, when there was one. */
|
|
3447
3485
|
def?: unknown;
|
|
3448
3486
|
}
|
|
3449
3487
|
|
|
3488
|
+
/**
|
|
3489
|
+
* Configurable activation-key descriptor for tools that expose their
|
|
3490
|
+
* keybinding to the host (currently Lasso and Eyedropper). Captures
|
|
3491
|
+
* only the fields meaningful to a caller-supplied tool-select key —
|
|
3492
|
+
* dispatcher-internal fields (`skipInEditable`, `enabled`,
|
|
3493
|
+
* `preventDefault`) live on `KeyBinding` in keyHelpers.ts and are
|
|
3494
|
+
* not part of the configurable surface.
|
|
3495
|
+
*/
|
|
3496
|
+
interface ToolKeybinding {
|
|
3497
|
+
/** Key or list of keys to match (case-insensitive against `event.key`). */
|
|
3498
|
+
key: string | readonly string[];
|
|
3499
|
+
/** Require Cmd (mac) / Ctrl (others). Default `false`. */
|
|
3500
|
+
mod?: boolean;
|
|
3501
|
+
/** Require Alt. Default `false`. */
|
|
3502
|
+
alt?: boolean;
|
|
3503
|
+
/**
|
|
3504
|
+
* Shift policy. `undefined`/`false` forbids shift, `true` requires
|
|
3505
|
+
* shift, `'optional'` allows either.
|
|
3506
|
+
*/
|
|
3507
|
+
shift?: boolean | 'optional';
|
|
3508
|
+
}
|
|
3509
|
+
|
|
3450
3510
|
/** Modifier-key snapshot at event dispatch time. `space` is included
|
|
3451
3511
|
* because tools commonly use space as a hotkey-slot trigger and may
|
|
3452
3512
|
* also want to read it as a flag mid-gesture. */
|
|
@@ -3718,28 +3778,6 @@ declare const ActionDisabledReason: {
|
|
|
3718
3778
|
};
|
|
3719
3779
|
type ActionDisabledReason = (typeof ActionDisabledReason)[keyof typeof ActionDisabledReason];
|
|
3720
3780
|
|
|
3721
|
-
/**
|
|
3722
|
-
* Configurable activation-key descriptor for tools that expose their
|
|
3723
|
-
* keybinding to the host (currently Lasso and Eyedropper). Captures
|
|
3724
|
-
* only the fields meaningful to a caller-supplied tool-select key —
|
|
3725
|
-
* dispatcher-internal fields (`skipInEditable`, `enabled`,
|
|
3726
|
-
* `preventDefault`) live on `KeyBinding` in keyHelpers.ts and are
|
|
3727
|
-
* not part of the configurable surface.
|
|
3728
|
-
*/
|
|
3729
|
-
interface ToolKeybinding {
|
|
3730
|
-
/** Key or list of keys to match (case-insensitive against `event.key`). */
|
|
3731
|
-
key: string | readonly string[];
|
|
3732
|
-
/** Require Cmd (mac) / Ctrl (others). Default `false`. */
|
|
3733
|
-
mod?: boolean;
|
|
3734
|
-
/** Require Alt. Default `false`. */
|
|
3735
|
-
alt?: boolean;
|
|
3736
|
-
/**
|
|
3737
|
-
* Shift policy. `undefined`/`false` forbids shift, `true` requires
|
|
3738
|
-
* shift, `'optional'` allows either.
|
|
3739
|
-
*/
|
|
3740
|
-
shift?: boolean | 'optional';
|
|
3741
|
-
}
|
|
3742
|
-
|
|
3743
3781
|
interface ToolsApi {
|
|
3744
3782
|
/** Current active-slot tool id. */
|
|
3745
3783
|
active: string;
|
|
@@ -3760,10 +3798,10 @@ interface ToolsApi {
|
|
|
3760
3798
|
/** Returns true if a tool with the given id is in the registry or ambient list. */
|
|
3761
3799
|
has(id: string): boolean;
|
|
3762
3800
|
/** All overlay layers from currently-engaged tools (active slot, hotkey
|
|
3763
|
-
* slot if engaged, all ambient slot tools)
|
|
3764
|
-
* `overlay` field. Order: active, then hotkey
|
|
3765
|
-
* ambient (registration order). */
|
|
3766
|
-
getActiveOverlays(): RenderLayer<unknown>[];
|
|
3801
|
+
* slot if engaged, all ambient slot tools) that declare `position`.
|
|
3802
|
+
* Filters out tools with no `overlay` field. Order: active, then hotkey
|
|
3803
|
+
* (if engaged), then ambient (registration order). */
|
|
3804
|
+
getActiveOverlays(position?: OverlayPosition): RenderLayer<unknown>[];
|
|
3767
3805
|
}
|
|
3768
3806
|
|
|
3769
3807
|
interface SidebarProps {
|
|
@@ -3856,6 +3894,9 @@ interface ToolButtonProps {
|
|
|
3856
3894
|
tabbable?: boolean;
|
|
3857
3895
|
/** Click handler. */
|
|
3858
3896
|
onClick(): void;
|
|
3897
|
+
/** Key handler for the underlying button — a toolbar's roving-tabindex
|
|
3898
|
+
* navigation attaches here. */
|
|
3899
|
+
onKeyDown?(e: KeyboardEvent<HTMLElement>): void;
|
|
3859
3900
|
/**
|
|
3860
3901
|
* Tooltip content. Defaults to `label` (plus `shortcut` if provided).
|
|
3861
3902
|
*/
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { m as ActionBar, r3 as ActionsBar, Ft as Badge, a as Button, o3 as Checkbox, p4 as ComboBox, m2 as ComboBoxItem, F as CurveEditor, l as DataGrid, c2 as Dialog, qe as EDGE_PROFILES, n as Field, u2 as Input, s2 as KeyCap, c as KeySequence, a2 as MINUS_SIGN, f3 as NumberField, r2 as OptionsBar, _ as Plot2D, n4 as PointPlotter, r4 as Powerline, u3 as Radio, l2 as RadioGroup, l3 as RangeSlider, p3 as Select, h as SelectItem, n2 as Sidebar, o4 as SidebarPanel, f2 as Slider, a4 as Switch, c3 as Tab, s3 as TabList, l4 as TabPanel, o6 as Tabs, r as ToggleBar, o5 as ToolButton, n3 as ToolGroup, _2 as ToolPalette, ze as chromaAt, u as detectPlatform, p as dlog, r5 as fieldClasses, o2 as formatNumber, d2 as formatShortcut, u4 as formatShortcutParts, o as inferKeycapKind, f as isDebugEnabled, e as keyGlyph, p2 as keySpecFromKey, d as keySpecsFromMods, Re as oklchToHex, p5 as paintGradientTrack, s as useReorderDragList, a3 as useRovingTabIndex } from '../chunk-
|
|
2
|
-
import '../chunk-
|
|
1
|
+
export { m as ActionBar, r3 as ActionsBar, Ft as Badge, a as Button, o3 as Checkbox, p4 as ComboBox, m2 as ComboBoxItem, F as CurveEditor, l as DataGrid, c2 as Dialog, qe as EDGE_PROFILES, n as Field, u2 as Input, s2 as KeyCap, c as KeySequence, a2 as MINUS_SIGN, f3 as NumberField, r2 as OptionsBar, _ as Plot2D, n4 as PointPlotter, r4 as Powerline, u3 as Radio, l2 as RadioGroup, l3 as RangeSlider, p3 as Select, h as SelectItem, n2 as Sidebar, o4 as SidebarPanel, f2 as Slider, a4 as Switch, c3 as Tab, s3 as TabList, l4 as TabPanel, o6 as Tabs, r as ToggleBar, o5 as ToolButton, n3 as ToolGroup, _2 as ToolPalette, ze as chromaAt, u as detectPlatform, p as dlog, r5 as fieldClasses, o2 as formatNumber, d2 as formatShortcut, u4 as formatShortcutParts, o as inferKeycapKind, f as isDebugEnabled, e as keyGlyph, p2 as keySpecFromKey, d as keySpecsFromMods, Re as oklchToHex, p5 as paintGradientTrack, s as useReorderDragList, a3 as useRovingTabIndex } from '../chunk-R4TACNW7.js';
|
|
2
|
+
import '../chunk-3P56ZCCJ.js';
|
|
3
3
|
//# sourceMappingURL=weasel-ui.js.map
|
|
4
4
|
//# sourceMappingURL=weasel-ui.js.map
|
package/dist/styles.css
CHANGED
|
@@ -1,3 +1,150 @@
|
|
|
1
|
+
/* GENERATED by packages/theme/scripts/build-tokens.ts — do not edit.
|
|
2
|
+
* Source: packages/theme/tokens/<theme>/
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
:root {
|
|
6
|
+
--wzl-gray-50: #f5f5f6;
|
|
7
|
+
--wzl-gray-100: #e6e7e9;
|
|
8
|
+
--wzl-gray-200: #c9cbcf;
|
|
9
|
+
--wzl-gray-300: #9ea1a8;
|
|
10
|
+
--wzl-gray-400: #6f737b;
|
|
11
|
+
--wzl-gray-500: #4d5058;
|
|
12
|
+
--wzl-gray-600: #383b42;
|
|
13
|
+
--wzl-gray-700: #25272c;
|
|
14
|
+
--wzl-gray-800: #181a1e;
|
|
15
|
+
--wzl-gray-900: #0e0f12;
|
|
16
|
+
--wzl-accent-soft: #1d1454;
|
|
17
|
+
/* Midnight blue-violet. Deep and saturated; anchors primary actions on light and dark surfaces alike. */
|
|
18
|
+
--wzl-accent-base: #2e1f7a;
|
|
19
|
+
--wzl-accent-strong: #5841b8;
|
|
20
|
+
--wzl-danger-base: #d94a3f;
|
|
21
|
+
--wzl-warning-base: #d99a3f;
|
|
22
|
+
--wzl-success-base: #2ec27e;
|
|
23
|
+
--wzl-fg-on-accent: var(--wzl-gray-50);
|
|
24
|
+
/* Barely-there separators (table rows). */
|
|
25
|
+
--wzl-line-subtle: color-mix(in srgb, var(--wzl-fg) 10%, transparent);
|
|
26
|
+
/* Primary gridlines on sunken surfaces. */
|
|
27
|
+
--wzl-line: color-mix(in srgb, var(--wzl-fg) 20%, transparent);
|
|
28
|
+
/* Axes and emphasized dividers. */
|
|
29
|
+
--wzl-line-strong: color-mix(in srgb, var(--wzl-fg) 40%, transparent);
|
|
30
|
+
/* Drawn data curves. Routes through the bright accent because accent-base is too dim on sunken surfaces. */
|
|
31
|
+
--wzl-curve-color: var(--wzl-accent-strong);
|
|
32
|
+
--wzl-accent: var(--wzl-accent-base);
|
|
33
|
+
--wzl-accent-hover: var(--wzl-accent-strong);
|
|
34
|
+
--wzl-danger: var(--wzl-danger-base);
|
|
35
|
+
--wzl-warning: var(--wzl-warning-base);
|
|
36
|
+
--wzl-success: var(--wzl-success-base);
|
|
37
|
+
--wzl-focus-ring: var(--wzl-accent-strong);
|
|
38
|
+
/* Frosted-glass tint. Components compose it as color-mix(in srgb, var(--wzl-glass-tint) 78%, transparent) with backdrop-filter: blur(3px). */
|
|
39
|
+
--wzl-glass-tint: var(--wzl-accent);
|
|
40
|
+
/* Hover wash over a raised surface. Same formula as line-subtle, different job — do not collapse them. */
|
|
41
|
+
--wzl-surface-hover: color-mix(in srgb, var(--wzl-fg) 10%, transparent);
|
|
42
|
+
/* Pressed wash over a raised surface. */
|
|
43
|
+
--wzl-surface-pressed: color-mix(in srgb, var(--wzl-fg) 18%, transparent);
|
|
44
|
+
/* First of ten categorical spot colors for plotting, status and data viz. Ordered — take them in sequence. Mode-invariant on purpose: a series keeps its color when the mode flips. */
|
|
45
|
+
--wzl-swatch-green: #2fdd18;
|
|
46
|
+
--wzl-swatch-pink: #ff5885;
|
|
47
|
+
--wzl-swatch-cyan: #00dfff;
|
|
48
|
+
--wzl-swatch-gold: #dcb700;
|
|
49
|
+
--wzl-swatch-amber: #ff8c00;
|
|
50
|
+
--wzl-swatch-violet: #a497ff;
|
|
51
|
+
--wzl-swatch-mint: #00e7af;
|
|
52
|
+
--wzl-swatch-sky: #00b8ff;
|
|
53
|
+
--wzl-swatch-orange: #ff6b00;
|
|
54
|
+
--wzl-swatch-magenta: #ff6eff;
|
|
55
|
+
--wzl-radius-sm: 3px;
|
|
56
|
+
--wzl-radius-md: 5px;
|
|
57
|
+
--wzl-border-w: 1px;
|
|
58
|
+
/* Structural lines — gridlines, dividers, axes. */
|
|
59
|
+
--wzl-line-width: 2px;
|
|
60
|
+
/* Drawn data curves. Heavier than structural lines so data reads as primary content. */
|
|
61
|
+
--wzl-curve-width: 3px;
|
|
62
|
+
/* Height of a horizontal toolbar strip (ActionsBar, OptionsBar, ToggleBar, ToolOptionsBar). */
|
|
63
|
+
--wzl-tb-height: 28px;
|
|
64
|
+
--wzl-radius-lg: 14px;
|
|
65
|
+
/* Height of an interactive control — button, input, select. Distinct from tb-height, which sizes the strip a row of them sits in. */
|
|
66
|
+
--wzl-control-h: 28px;
|
|
67
|
+
/* Backdrop blur radius for frosted surfaces. Pairs with glass-tint. */
|
|
68
|
+
--wzl-glass-blur: 3px;
|
|
69
|
+
--wzl-font-size: 13px;
|
|
70
|
+
--wzl-font-size-sm: 11px;
|
|
71
|
+
--wzl-space-xs: 4px;
|
|
72
|
+
--wzl-space-sm: 8px;
|
|
73
|
+
--wzl-space-md: 12px;
|
|
74
|
+
--wzl-space-lg: 16px;
|
|
75
|
+
--wzl-z-toolbar: 10;
|
|
76
|
+
--wzl-z-overlay: 20;
|
|
77
|
+
--wzl-z-modal: 30;
|
|
78
|
+
/* Layered backdrop fill for a page or lab root. `none` here; a theme with a signature background sets it. */
|
|
79
|
+
--wzl-backdrop: none;
|
|
80
|
+
/* Micro-interactions — hover, focus, pressed. */
|
|
81
|
+
--wzl-motion-fast: 120ms;
|
|
82
|
+
/* Entrances and exits — toasts, popovers, panels. */
|
|
83
|
+
--wzl-motion-medium: 240ms;
|
|
84
|
+
--wzl-ease-in-cubic: cubic-bezier(0.32, 0, 0.67, 0);
|
|
85
|
+
--wzl-ease-out-cubic: cubic-bezier(0.33, 1, 0.68, 1);
|
|
86
|
+
--wzl-ease-in-out-cubic: cubic-bezier(0.65, 0, 0.35, 1);
|
|
87
|
+
--wzl-ease-out-back: cubic-bezier(0.34, 1.56, 0.64, 1);
|
|
88
|
+
/* Condensed UI/display face. The heavier cuts get blocky at any size, so the weight tokens stay in the 200-400 range. */
|
|
89
|
+
--wzl-font-ui: Oswald, 'Helvetica Neue Condensed', 'Arial Narrow', system-ui, sans-serif;
|
|
90
|
+
--wzl-font-display: Oswald, 'Helvetica Neue Condensed', 'Arial Narrow', system-ui, sans-serif;
|
|
91
|
+
--wzl-font-body: Inter, system-ui, -apple-system, 'Segoe UI', sans-serif;
|
|
92
|
+
--wzl-font-mono: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
|
|
93
|
+
--wzl-font-weight-light: 200;
|
|
94
|
+
--wzl-font-weight-normal: 300;
|
|
95
|
+
--wzl-font-weight-medium: 350;
|
|
96
|
+
--wzl-font-weight-bold: 400;
|
|
97
|
+
--wzl-surface: var(--wzl-gray-800);
|
|
98
|
+
--wzl-surface-raised: var(--wzl-gray-700);
|
|
99
|
+
--wzl-surface-sunken: var(--wzl-gray-900);
|
|
100
|
+
--wzl-fg: var(--wzl-gray-100);
|
|
101
|
+
--wzl-fg-muted: var(--wzl-gray-300);
|
|
102
|
+
--wzl-fg-subtle: var(--wzl-gray-400);
|
|
103
|
+
--wzl-border: var(--wzl-gray-700);
|
|
104
|
+
--wzl-border-strong: var(--wzl-gray-600);
|
|
105
|
+
/* Accent for foreground use — text, icons, selected labels drawn on a surface. accent is a fill; the midnight base is too dim to read as text on dark surfaces. */
|
|
106
|
+
--wzl-accent-fg: var(--wzl-accent-strong);
|
|
107
|
+
/* Text drawn on a filled foreground-colored element (e.g. a slider thumb). Flips with the mode, so it is a semantic, not an alias to a primitive. */
|
|
108
|
+
--wzl-fg-inverse: var(--wzl-gray-900);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
:root {
|
|
112
|
+
font-family: var(--wzl-font-ui);
|
|
113
|
+
font-weight: var(--wzl-font-weight-normal);
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
[data-wzl-theme='weasel'][data-wzl-mode='dark'],
|
|
117
|
+
[data-wzl-mode='dark'] {
|
|
118
|
+
color-scheme: dark;
|
|
119
|
+
--wzl-surface: var(--wzl-gray-800);
|
|
120
|
+
--wzl-surface-raised: var(--wzl-gray-700);
|
|
121
|
+
--wzl-surface-sunken: var(--wzl-gray-900);
|
|
122
|
+
--wzl-fg: var(--wzl-gray-100);
|
|
123
|
+
--wzl-fg-muted: var(--wzl-gray-300);
|
|
124
|
+
--wzl-fg-subtle: var(--wzl-gray-400);
|
|
125
|
+
--wzl-border: var(--wzl-gray-700);
|
|
126
|
+
--wzl-border-strong: var(--wzl-gray-600);
|
|
127
|
+
--wzl-accent-fg: var(--wzl-accent-strong);
|
|
128
|
+
--wzl-fg-inverse: var(--wzl-gray-900);
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
[data-wzl-theme='weasel'][data-wzl-mode='light'],
|
|
132
|
+
[data-wzl-mode='light'] {
|
|
133
|
+
color-scheme: light;
|
|
134
|
+
--wzl-surface: var(--wzl-gray-50);
|
|
135
|
+
--wzl-surface-raised: var(--wzl-gray-100);
|
|
136
|
+
--wzl-surface-sunken: var(--wzl-gray-200);
|
|
137
|
+
--wzl-fg: var(--wzl-gray-900);
|
|
138
|
+
--wzl-fg-muted: var(--wzl-gray-600);
|
|
139
|
+
--wzl-fg-subtle: var(--wzl-gray-500);
|
|
140
|
+
--wzl-border: var(--wzl-gray-200);
|
|
141
|
+
--wzl-border-strong: var(--wzl-gray-300);
|
|
142
|
+
--wzl-accent-fg: var(--wzl-accent-base);
|
|
143
|
+
--wzl-fg-inverse: var(--wzl-gray-50);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
._tooltip_1km1f_1{z-index:1200;background:var(--wzl-surface);border:1px solid var(--wzl-border);border-radius:var(--wzl-radius-sm);color:var(--wzl-fg);font-family:var(--wzl-font-ui);max-width:260px;transition:opacity var(--wzl-motion-fast);padding:4px 8px;font-size:12px;line-height:1.3;box-shadow:0 4px 16px #00000059}._tooltip_1km1f_1[data-entering],._tooltip_1km1f_1[data-exiting]{opacity:0}._arrow_1km1f_22 svg{fill:var(--wzl-surface);stroke:var(--wzl-border);stroke-width:1px;display:block}._arrow_1km1f_22[data-placement=bottom] svg{transform:rotate(180deg)}._arrow_1km1f_22[data-placement=left] svg{transform:rotate(-90deg)}._arrow_1km1f_22[data-placement=right] svg{transform:rotate(90deg)}._bar_147qb_7{background:var(--wzl-surface);border:1px solid var(--wzl-border);-webkit-user-select:none;user-select:none;border-radius:4px;flex-direction:row;gap:1px;padding:2px;display:flex}._bar_147qb_7._vertical_147qb_18{flex-direction:column}._button_147qb_22{width:28px;height:28px;color:var(--wzl-fg);cursor:default;background:0 0;border:0;border-radius:2px;justify-content:center;align-items:center;padding:0;display:inline-flex}._button_147qb_22:hover:not([disabled]){background:var(--wzl-border)}._button_147qb_22:active:not([disabled]){background:color-mix(in srgb, var(--wzl-border) 70%, transparent)}._button_147qb_22[disabled]{opacity:.4;cursor:default}._button_147qb_22>svg{display:block}._root_1hmjs_10{height:var(--wzl-tb-height,28px);-webkit-user-select:none;user-select:none;touch-action:none;background:linear-gradient(#0000002e 0%,#0000000d 100%);border-radius:999px;padding:2px;display:inline-flex;overflow:hidden;box-shadow:inset 0 1px 2px #0006,0 1px #ffffff0f}._segment_1hmjs_32{min-width:0;font-family:var(--wzl-font-ui);font-weight:300;font-size:var(--btn-fontsize,14px);color:var(--wzl-fg-muted);cursor:pointer;isolation:isolate;transition:color var(--wzl-motion-fast);background:0 0;border:none;border-radius:0;flex:1 1 0;justify-content:center;align-items:center;margin:0;padding:0 12px;line-height:1;display:inline-flex;position:relative;overflow:hidden}._segment_1hmjs_32:first-child{border-radius:999px 0 0 999px}._segment_1hmjs_32:last-child{border-radius:0 999px 999px 0}._segment_1hmjs_32:only-child{border-radius:999px}._segment_1hmjs_32:focus-visible{outline:2px solid var(--wzl-accent);outline-offset:-2px}._segment_1hmjs_32:disabled{opacity:.5;cursor:not-allowed}._segment_1hmjs_32:hover:not(:disabled):not(._segmentSelected_1hmjs_79){color:var(--wzl-fg)}._segmentSelected_1hmjs_79{background:linear-gradient(180deg, color-mix(in srgb, var(--wzl-accent) var(--btn-top-alpha,45%), transparent) 0%, color-mix(in srgb, var(--wzl-accent) var(--btn-upper-alpha,70%), transparent) calc(var(--btn-equator,52%) - var(--btn-equator-spread,12%)), color-mix(in srgb, var(--wzl-accent) var(--btn-equator-tint,95%), white) var(--btn-equator,52%), var(--wzl-accent) calc(var(--btn-equator,52%) + var(--btn-equator-spread,12%) * 1.6), color-mix(in srgb, var(--wzl-accent) var(--btn-base-tint,70%), black) 100%);-webkit-backdrop-filter:blur(var(--btn-blur,6px)) saturate(var(--btn-saturate,1.3));color:var(--wzl-fg-on-accent);text-shadow:0 1px 0 rgba(0, 0, 0, var(--btn-text-shadow,.35)), var(--btn-text-inset-x,0px) var(--btn-text-inset-y,1px) 0 rgba(0, 0, 0, var(--btn-text-inset,.55)), 0 0 6px rgba(0, 0, 0, calc(var(--btn-text-shadow,.35) * .5));box-shadow:inset 0 1px 0 rgba(255, 255, 255, var(--btn-inset-hi,.42)), inset 0 -1px 2px rgba(0, 0, 0, var(--btn-inset-lo,.3)), 0 0 0 1px rgba(0, 0, 0, var(--btn-rim,.22)), 0 1px 2px rgba(0, 0, 0, var(--btn-drop-near,.3)), 0 2px 4px rgba(0, 0, 0, calc(var(--btn-drop-far,.18) * .8))}._segmentSelected_1hmjs_79:before{content:"";inset:1px 1px var(--btn-gloss-bottom,50%) 1px;border-radius:inherit;background:linear-gradient(180deg, rgba(255, 255, 255, var(--btn-gloss-top,.42)) 0%, rgba(255, 255, 255, var(--btn-gloss-mid,.12)) 60%, #fff0 100%);pointer-events:none;z-index:1;border-bottom-right-radius:0;border-bottom-left-radius:0;position:absolute}._segmentSelected_1hmjs_79>*{z-index:2;position:relative}._size_sm_1hmjs_137{height:17px;padding:1px}._size_sm_1hmjs_137 ._segment_1hmjs_32{padding:0 8px;font-size:11px}._variant_minimal_1hmjs_150{height:auto;box-shadow:none;background:0 0;border-radius:0;gap:2px;padding:0}._variant_minimal_1hmjs_150 ._segment_1hmjs_32{color:var(--wzl-fg-muted);border-radius:2px;padding:0 4px;font-size:11px;font-weight:400;line-height:1.4;transition:none}._variant_minimal_1hmjs_150 ._segment_1hmjs_32:first-child,._variant_minimal_1hmjs_150 ._segment_1hmjs_32:last-child,._variant_minimal_1hmjs_150 ._segment_1hmjs_32:only-child{border-radius:2px}._variant_minimal_1hmjs_150 ._segment_1hmjs_32:hover:not(:disabled):not(._segmentSelected_1hmjs_79){color:var(--wzl-fg);background:#ffffff0f}._variant_minimal_1hmjs_150 ._segmentSelected_1hmjs_79{-webkit-backdrop-filter:none;color:var(--wzl-accent-fg,var(--wzl-accent));text-shadow:none;box-shadow:none;background:0 0;font-weight:500}._variant_minimal_1hmjs_150 ._segmentSelected_1hmjs_79:before{content:none}._badge_16w4d_1{vertical-align:baseline;align-items:baseline;gap:var(--badge-gap,4px);font-size:var(--badge-font-size,10px);text-transform:uppercase;letter-spacing:.04em;color:var(--badge-fg,var(--wzl-fg-muted));--badge-edge:var(--wzl-border);--badge-fill:var(--wzl-surface);--badge-fg:var(--badge-edge);font:inherit;background:0 0;border:0;font-family:inherit;text-decoration:none;display:inline-flex;position:relative}._badge_16w4d_1 *{text-decoration:none}._badge_16w4d_1[data-size=md]{--badge-gap:6px;--badge-pad-x:10px;--badge-pad-y:3px;--badge-font-size:12px}._deco_16w4d_33{pointer-events:none;width:100%;height:100%;position:absolute;inset:0;overflow:visible}._deco_16w4d_33 .badge-fill{fill:var(--badge-fill);stroke:none}._deco_16w4d_33 .badge-stroke{fill:none;stroke:var(--badge-edge);stroke-width:var(--badge-stroke-width,1px);vector-effect:non-scaling-stroke}._deco_16w4d_33 .badge-focus{fill:none;stroke:var(--badge-edge);stroke-width:calc(var(--badge-stroke-width,1px) + 1px);vector-effect:non-scaling-stroke;opacity:.6}._deco_16w4d_33 .badge-bevel-light{fill:#ffffff38;stroke:none}._deco_16w4d_33 .badge-bevel-medium-light{fill:#ffffff1a;stroke:none}._deco_16w4d_33 .badge-bevel-medium-dark{fill:#00000029;stroke:none}._deco_16w4d_33 .badge-bevel-dark{fill:#00000052;stroke:none}._content_16w4d_49{align-items:baseline;gap:inherit;z-index:1;display:inline-flex;position:relative}._badge_16w4d_1[data-tone=accent]{--badge-edge:var(--wzl-accent-fg,var(--wzl-accent,#7fb069))}._badge_16w4d_1[data-tone=info]{--badge-edge:#7ab8d4}._badge_16w4d_1[data-tone=warn]{--badge-edge:#d4a574}._badge_16w4d_1[data-tone=danger]{--badge-edge:#c43c3c}._badge_16w4d_1[data-tone=muted]{--badge-edge:var(--wzl-fg-muted)}._badge_16w4d_1[data-tone=neutral]{--badge-edge:var(--wzl-border);--badge-fg:var(--wzl-fg-muted)}._badge_16w4d_1[data-variant=outline]{--badge-fill:var(--wzl-surface);--badge-fg:var(--badge-edge)}._badge_16w4d_1[data-variant=solid]{--badge-fill:var(--badge-edge);--badge-fg:#fff;font-weight:600}._badge_16w4d_1[data-variant=subtle]{--badge-fill:color-mix(in oklab, var(--badge-edge) 14%, transparent);--badge-fg:var(--badge-edge)}._badge_16w4d_1[data-tone=neutral]:not([data-variant=solid]){--badge-fg:var(--wzl-fg-muted)}._badge_16w4d_1{padding:calc(var(--badge-pad-y,1px) + var(--badge-inset-top,0px)) calc(var(--badge-pad-x,6px) + var(--badge-inset-right,0px)) calc(var(--badge-pad-y,1px) + var(--badge-inset-bottom,0px)) calc(var(--badge-pad-x,6px) + var(--badge-inset-left,0px))}._badge_16w4d_1[data-shape=pill]{box-sizing:border-box;-webkit-box-decoration-break:slice;box-decoration-break:slice;border-radius:9999px;display:inline}._badge_16w4d_1[data-shape=pill] ._content_16w4d_49,._badge_16w4d_1[data-shape=plain] ._content_16w4d_49{display:inline}._badge_16w4d_1[data-shape=pill][data-variant=solid],._badge_16w4d_1[data-shape=pill][data-variant=subtle]{background:var(--badge-fill)}._badge_16w4d_1[data-shape=pill]{border:var(--badge-stroke-width,1px) solid transparent}._badge_16w4d_1[data-shape=pill][data-variant=outline],._badge_16w4d_1[data-shape=pill][data-variant=solid]{border-color:var(--badge-edge)}._badge_16w4d_1[data-shape=pill][data-focused=true]{outline:2px solid color-mix(in oklab, var(--badge-edge) 60%, transparent);outline-offset:2px}._badge_16w4d_1[data-shape=plain]{letter-spacing:.04em;text-transform:none;color:var(--badge-fg);-webkit-box-decoration-break:slice;box-decoration-break:slice;background:0 0;padding:0;display:inline}._badge_16w4d_1[data-shape=plain][data-focused=true]{outline:2px solid color-mix(in oklab, var(--badge-edge) 60%, transparent);outline-offset:3px;border-radius:2px}._badge_16w4d_1[data-shape=plaque] ._content_16w4d_49{text-shadow:0 1px #ffffff24,0 -.5px #00000080}button._badge_16w4d_1,a._badge_16w4d_1{cursor:pointer;border:0 solid #0000;outline:0}button._badge_16w4d_1:hover,a._badge_16w4d_1:hover{--badge-edge:color-mix(in oklab, var(--badge-edge) 88%, white)}@media (prefers-reduced-motion:reduce){button._badge_16w4d_1:hover,a._badge_16w4d_1:hover{--badge-edge:var(--badge-edge)}}._remove_16w4d_161{width:14px;height:14px;color:var(--badge-fg);cursor:pointer;font:inherit;vertical-align:middle;background:0 0;border:0;border-radius:50%;justify-content:center;align-items:center;margin-left:2px;padding:0;font-size:14px;line-height:1;display:inline-flex}._remove_16w4d_161:hover{background:color-mix(in oklab, var(--badge-fg) 20%, transparent)}._remove_16w4d_161>svg{display:block}._badge_16w4d_1[data-size=md] ._remove_16w4d_161{width:16px;height:16px;font-size:16px}._badge_16w4d_1[data-size=md] ._remove_16w4d_161>svg{width:12px;height:12px}._button_yji6d_3{--btn-radius:calc(var(--btn-height) * .1);--btn-fontweight:400;--btn-fontsize:14px;--btn-height:24px;--btn-padx:12px;--btn-top-alpha:45%;--btn-upper-alpha:70%;--btn-equator:52%;--btn-equator-spread:12%;--btn-equator-tint:95%;--btn-base-tint:70%;--btn-blur:6px;--btn-saturate:1.3;--btn-gloss-top:.42;--btn-gloss-mid:.12;--btn-gloss-bottom:50%;--btn-rim:.22;--btn-drop-near:.3;--btn-drop-far:.18;--btn-inset-hi:.42;--btn-inset-lo:.3;--btn-text-shadow:.35;--btn-text-inset:.55;--btn-text-inset-x:0px;--btn-text-inset-y:1px;border-radius:var(--btn-radius);font-family:var(--wzl-font-ui);font-weight:var(--btn-fontweight);font-style:normal;font-size:var(--btn-fontsize);height:var(--btn-height);padding:0 var(--btn-padx);cursor:pointer;-webkit-user-select:none;user-select:none;isolation:isolate;transition:filter var(--wzl-motion-fast), box-shadow var(--wzl-motion-fast), transform 80ms;border:none;justify-content:center;align-items:center;gap:6px;line-height:1;display:inline-flex;position:relative;overflow:hidden}._button_yji6d_3:before{content:"";inset:1px 1px var(--btn-gloss-bottom) 1px;border-top-left-radius:var(--btn-radius);border-top-right-radius:var(--btn-radius);background:linear-gradient(180deg, rgba(255, 255, 255, var(--btn-gloss-top)) 0%, rgba(255, 255, 255, var(--btn-gloss-mid)) 60%, #fff0 100%);pointer-events:none;z-index:1;transition:opacity var(--wzl-motion-fast);border-bottom-right-radius:0;border-bottom-left-radius:0;position:absolute}._button_yji6d_3>*{z-index:2;position:relative}._button_yji6d_3:focus-visible{outline:2px solid var(--wzl-focus-ring);outline-offset:1px}._button_yji6d_3:disabled{opacity:.5;cursor:not-allowed}._size_sm_yji6d_110{--btn-height:20px;--btn-padx:8px;--btn-fontsize:13px}._size_md_yji6d_111{--btn-height:24px;--btn-padx:12px;--btn-fontsize:14px}._iconOnly_yji6d_113._size_sm_yji6d_110{--btn-padx:0;width:20px}._iconOnly_yji6d_113._size_md_yji6d_111{--btn-padx:0;width:24px}._variant_primary_yji6d_121{background:linear-gradient(180deg, color-mix(in srgb, var(--wzl-accent) var(--btn-top-alpha), transparent) 0%, color-mix(in srgb, var(--wzl-accent) var(--btn-upper-alpha), transparent) calc(var(--btn-equator) - var(--btn-equator-spread)), color-mix(in srgb, var(--wzl-accent) var(--btn-equator-tint), white) var(--btn-equator), var(--wzl-accent) calc(var(--btn-equator) + var(--btn-equator-spread) * 1.6), color-mix(in srgb, var(--wzl-accent) var(--btn-base-tint), black) 100%);-webkit-backdrop-filter:blur(var(--btn-blur)) saturate(var(--btn-saturate));color:var(--wzl-fg-on-accent);text-shadow:0 1px 0 rgba(0, 0, 0, var(--btn-text-shadow)), var(--btn-text-inset-x) var(--btn-text-inset-y) 0 rgba(0, 0, 0, var(--btn-text-inset)), 0 0 6px rgba(0, 0, 0, calc(var(--btn-text-shadow) * .5));box-shadow:inset 0 1px 0 rgba(255, 255, 255, var(--btn-inset-hi)), inset 0 -1px 2px rgba(0, 0, 0, var(--btn-inset-lo)), 0 0 0 1px rgba(0, 0, 0, var(--btn-rim)), 0 1px 2px rgba(0, 0, 0, var(--btn-drop-near)), 0 3px 6px rgba(0, 0, 0, var(--btn-drop-far))}._variant_primary_yji6d_121:hover:not(:disabled){filter:brightness(1.08)saturate(1.06)}._variant_primary_yji6d_121:active:not(:disabled){background:linear-gradient(180deg, color-mix(in srgb, var(--wzl-accent) 80%, black) 0%, color-mix(in srgb, var(--wzl-accent) 95%, black) 50%, color-mix(in srgb, var(--wzl-accent) 60%, white) 100%);box-shadow:inset 0 2px 4px #00000059, inset 0 -1px 0 #ffffff40, 0 0 0 1px rgba(0, 0, 0, calc(var(--btn-rim) + .06));transform:translateY(.5px)}._variant_primary_yji6d_121:active:before{opacity:.3}._variant_secondary_yji6d_168{background:linear-gradient(180deg, color-mix(in srgb, var(--wzl-fg) 25%, transparent) 0%, color-mix(in srgb, var(--wzl-fg) 10%, transparent) calc(var(--btn-equator) - var(--btn-equator-spread)), color-mix(in srgb, var(--wzl-surface-raised) 90%, white) var(--btn-equator), var(--wzl-surface-raised) calc(var(--btn-equator) + var(--btn-equator-spread) * 1.6), color-mix(in srgb, var(--wzl-surface-sunken) 80%, black) 100%);-webkit-backdrop-filter:blur(var(--btn-blur)) saturate(var(--btn-saturate));color:var(--wzl-fg);text-shadow:0 1px 0 rgba(0, 0, 0, calc(var(--btn-text-shadow) * .7)), var(--btn-text-inset-x) var(--btn-text-inset-y) 0 rgba(0, 0, 0, calc(var(--btn-text-inset) * .7));box-shadow:inset 0 1px 0 rgba(255, 255, 255, calc(var(--btn-inset-hi) * .5)), inset 0 -1px 2px rgba(0, 0, 0, calc(var(--btn-inset-lo) * .83)), 0 0 0 1px rgba(0, 0, 0, calc(var(--btn-rim) + .03)), 0 1px 2px rgba(0, 0, 0, calc(var(--btn-drop-near) * .93)), 0 3px 6px rgba(0, 0, 0, calc(var(--btn-drop-far) * .89))}._variant_secondary_yji6d_168:hover:not(:disabled){filter:brightness(1.1)}._variant_secondary_yji6d_168:active:not(:disabled){background:linear-gradient(180deg, var(--wzl-surface-sunken) 0%, var(--wzl-surface-raised) 100%);transform:translateY(.5px);box-shadow:inset 0 2px 4px #0006,0 0 0 1px #0000004d}._variant_secondary_yji6d_168:active:before{opacity:.2}._variant_ghost_yji6d_203{color:var(--wzl-fg);box-shadow:none;background:0 0}._variant_ghost_yji6d_203:before{display:none}._variant_ghost_yji6d_203:hover:not(:disabled){background:color-mix(in srgb, var(--wzl-fg) 10%, transparent)}._variant_ghost_yji6d_203:active:not(:disabled){background:color-mix(in srgb, var(--wzl-fg) 18%, transparent)}._fullWidth_yji6d_220{width:100%}._loading_yji6d_221 ._label_yji6d_221{opacity:.7}._iconSlot_yji6d_225{flex:none;justify-content:center;align-items:center;display:inline-flex}._size_sm_yji6d_110 ._iconSlot_yji6d_225>svg{width:12px;height:12px}._size_md_yji6d_111 ._iconSlot_yji6d_225>svg{width:14px;height:14px}._label_yji6d_221{display:inline-block}._spinner_yji6d_239{justify-content:center;align-items:center;animation:.7s linear infinite _wzl-btn-spin_yji6d_1;display:inline-flex}@keyframes _wzl-btn-spin_yji6d_1{to{transform:rotate(360deg)}}._anchor_18o4b_1{pointer-events:none;position:fixed}._popover_18o4b_6{z-index:1200;--callout-accent:var(--wzl-accent-strong);background:var(--wzl-surface);border:1px solid var(--callout-accent);border-radius:var(--wzl-radius-md);color:var(--wzl-fg);font-family:var(--wzl-font-ui);max-width:320px;transition:opacity var(--wzl-motion-fast);box-shadow:0 12px 40px #0006}._popover_18o4b_6[data-entering],._popover_18o4b_6[data-exiting]{opacity:0}._toneWarning_18o4b_25{--callout-accent:var(--wzl-warning,#d99a3f)}._toneDanger_18o4b_29{--callout-accent:var(--wzl-danger,#d94a3f)}._arrow_18o4b_33 svg{fill:var(--wzl-surface);stroke:var(--callout-accent);stroke-width:1px;display:block}._arrow_18o4b_33[data-placement=bottom] svg{transform:rotate(180deg)}._arrow_18o4b_33[data-placement=left] svg{transform:rotate(-90deg)}._arrow_18o4b_33[data-placement=right] svg{transform:rotate(90deg)}._dialog_18o4b_52{max-height:inherit;outline:none;flex-direction:column;display:flex}._header_18o4b_59{align-items:center;gap:8px;padding:10px 12px 0;display:flex}._title_18o4b_66{flex:1;margin:0;font-size:13px;font-weight:600}._close_18o4b_73{color:var(--wzl-fg-muted);cursor:pointer;border-radius:var(--wzl-radius-sm);background:0 0;border:none;flex:none;padding:2px 4px;font-size:16px;line-height:1}._close_18o4b_73:hover{color:var(--wzl-fg)}._body_18o4b_89{padding:8px 12px 10px;font-size:13px;line-height:1.4;overflow-y:auto}._footer_18o4b_96{justify-content:flex-end;gap:8px;padding:0 12px 10px;display:flex}._checkbox_18mi9_1{cursor:pointer;font-family:var(--wzl-font-ui);color:var(--wzl-fg);-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:13px;display:inline-flex}._checkbox_18mi9_1[data-disabled]{opacity:.5;cursor:not-allowed}._box_18mi9_18{background:var(--wzl-surface-sunken);border:1px solid var(--wzl-border-strong);border-radius:var(--wzl-radius-sm);width:14px;height:14px;transition:background-color var(--wzl-motion-fast), border-color var(--wzl-motion-fast), box-shadow var(--wzl-motion-fast);flex:none;position:relative}._checkbox_18mi9_1[data-focus-visible] ._box_18mi9_18{box-shadow:0 0 0 2px var(--wzl-focus-ring)}._checkbox_18mi9_1[data-hovered]:not([data-disabled]) ._box_18mi9_18{border-color:var(--wzl-fg-muted)}._checkbox_18mi9_1[data-selected] ._box_18mi9_18,._checkbox_18mi9_1[data-indeterminate] ._box_18mi9_18{background:var(--wzl-accent-strong);border-color:var(--wzl-accent-strong)}._checkbox_18mi9_1[data-invalid] ._box_18mi9_18{border-color:var(--wzl-danger,#ff5b5b)}._checkmark_18mi9_47{color:var(--wzl-fg-on-accent);opacity:0;pointer-events:none;position:absolute;inset:0}._checkbox_18mi9_1[data-selected] ._checkmark_18mi9_47,._checkbox_18mi9_1[data-indeterminate] ._checkmark_18mi9_47{opacity:1}._label_18mi9_60{line-height:1.2}._root_r50jb_1{align-items:center;gap:6px;display:inline-flex}._chip_r50jb_7{border-radius:4px;display:inline-flex;position:relative;overflow:hidden}._color_r50jb_14{border:1px solid var(--wzl-border,#444);cursor:pointer;background:0 0;border-radius:4px;block-size:20px;inline-size:28px;padding:0}._root_r50jb_1[data-mixed] ._chip_r50jb_7:after{content:"";pointer-events:none;background:repeating-conic-gradient(var(--wzl-border,#666) 0% 25%, var(--wzl-surface,#2e2f36) 0% 50%) 50% / 8px 8px;border-radius:3px;position:absolute;inset:1px}._alphaRange_r50jb_39{min-inline-size:48px;accent-color:var(--wzl-accent,#7ab8d4);flex:1}._alphaRange_r50jb_39:disabled{opacity:.45}._alphaReadout_r50jb_49{text-align:end;opacity:.7;min-inline-size:3ch;font-size:11px}._field_aqiak_1{font-family:var(--wzl-font-ui);color:var(--wzl-fg);flex-direction:column;gap:4px;display:flex}._label_aqiak_9{color:var(--wzl-fg);cursor:default;font-size:12px;font-weight:500}._hint_aqiak_16{color:var(--wzl-fg-subtle);font-size:11px;line-height:1.4}._error_aqiak_22{color:var(--wzl-danger,#ff5b5b);font-size:11px;line-height:1.4}._row_aqiak_28{flex-direction:row;align-items:center;gap:8px}._row_aqiak_28 ._label_aqiak_9{flex:1;min-width:0}._field_7wlzm_1{flex-direction:column;gap:4px;width:100%;min-width:0;display:flex}._frame_7wlzm_9{background:var(--wzl-surface-sunken);border:1px solid var(--wzl-border);border-radius:var(--wzl-radius-sm);height:24px;color:var(--wzl-fg);font-family:var(--wzl-font-ui);transition:border-color var(--wzl-motion-fast), box-shadow var(--wzl-motion-fast);align-items:stretch;font-size:13px;line-height:1;display:flex;overflow:hidden}._frame_7wlzm_9:focus-within{border-color:var(--wzl-focus-ring);box-shadow:0 0 0 1px var(--wzl-focus-ring)}._field_7wlzm_1[data-invalid] ._frame_7wlzm_9{border-color:var(--wzl-danger,#ff5b5b)}._field_7wlzm_1[data-disabled] ._frame_7wlzm_9{opacity:.5;cursor:not-allowed}._frame_7wlzm_9 input{min-width:0;color:inherit;font:inherit;background:0 0;border:none;outline:none;flex:1;padding:0 8px}._frame_7wlzm_9 input::placeholder{color:var(--wzl-fg-subtle)}._openButton_7wlzm_53{border:none;border-left:1px solid var(--wzl-border);width:22px;color:var(--wzl-fg-muted);cursor:pointer;background:0 0;justify-content:center;align-items:center;padding:0;display:inline-flex}._openButton_7wlzm_53[data-hovered]:not([data-disabled]){color:var(--wzl-fg)}._openButton_7wlzm_53 svg{width:10px;height:10px}._popover_7wlzm_75{min-width:var(--trigger-width);outline:none}._listbox_7wlzm_80{background:var(--wzl-surface-raised);border:1px solid var(--wzl-border);border-radius:var(--wzl-radius-md);max-height:280px;font-family:var(--wzl-font-ui);outline:none;padding:4px;font-size:13px;overflow:auto;box-shadow:0 8px 24px #0000004d}._option_7wlzm_93{cursor:pointer;color:var(--wzl-fg);border-radius:3px;outline:none;align-items:center;padding:4px 8px;display:flex}._option_7wlzm_93[data-focused]{background:color-mix(in srgb, var(--wzl-fg) 10%, transparent)}._option_7wlzm_93[data-selected]{font-weight:500}._option_7wlzm_93[data-disabled]{opacity:.4;cursor:not-allowed}._empty_7wlzm_116{color:var(--wzl-fg-subtle);padding:6px 8px;font-size:12px}._root_1djm7_1{--plot-bg:var(--wzl-surface-sunken);--plot-grid:var(--wzl-line);--plot-axis:var(--wzl-fg);background:var(--plot-bg);-webkit-user-select:none;user-select:none;touch-action:none;outline:none;display:block;overflow:visible}._root_1djm7_1:focus-visible{outline:2px solid var(--wzl-focus-ring);outline-offset:2px}._grid_1djm7_28{stroke:var(--plot-grid);stroke-width:1px;fill:none}._axis_1djm7_34{stroke:var(--plot-axis);stroke-width:var(--wzl-line-width);fill:none}._root_ybpym_1{--curve-line:var(--wzl-curve-color);--curve-line-width:var(--wzl-curve-width);--curve-fill:color-mix(in srgb, var(--curve-line) 30%, transparent);--curve-anchor-fill:var(--wzl-surface);--curve-anchor-stroke:var(--curve-line);--curve-anchor-radius:4;--curve-anchor-active-fill:var(--curve-line);--curve-pinned-fill:var(--wzl-fg-subtle)}._fill_ybpym_19{fill:var(--curve-fill);stroke:none;pointer-events:none}._curve_ybpym_25{stroke:var(--curve-line);stroke-width:var(--curve-line-width);fill:none;pointer-events:stroke}._anchor_ybpym_32{fill:var(--curve-anchor-fill);stroke:var(--curve-anchor-stroke);stroke-width:1.5px;cursor:grab}._anchor_ybpym_32:hover{fill:var(--curve-anchor-active-fill)}._anchor_ybpym_32._active_ybpym_43{fill:var(--curve-anchor-active-fill);cursor:grabbing}._anchor_ybpym_32._pinned_ybpym_48{fill:var(--curve-pinned-fill);cursor:default}._anchor_ybpym_32._locked_ybpym_55{cursor:not-allowed}._hidden_ybpym_71{display:none}._grid_wvlvv_1{width:100%;position:relative}._table_wvlvv_6{border-collapse:collapse;width:100%;font-size:11px}._table_wvlvv_6 th,._table_wvlvv_6 td{text-align:left;vertical-align:middle;padding:3px 6px}._table_wvlvv_6 tbody tr{border-bottom:1px solid #ffffff0a}._table_wvlvv_6 th{color:var(--wzl-fg-muted);background:var(--wzl-surface,#2a2018);z-index:1;border-bottom:1px solid var(--wzl-border);font-weight:600;position:sticky;top:0}._sortable_wvlvv_34{cursor:pointer;-webkit-user-select:none;user-select:none}._sortable_wvlvv_34:hover,._sortActive_wvlvv_39{color:var(--wzl-fg,#e6e7e9)}._empty_wvlvv_41{color:var(--wzl-fg-muted);text-align:center;padding:8px 0;font-style:italic}._handleCol_wvlvv_49{width:14px}._handleCell_wvlvv_50{cursor:grab;width:14px;color:var(--wzl-fg-muted);-webkit-user-select:none;user-select:none;text-align:center}._handleCell_wvlvv_50:active{cursor:grabbing}._dragging_wvlvv_59{opacity:.4}._dropIndicator_wvlvv_61{background:var(--wzl-accent,#7fb069);pointer-events:none;height:2px;position:absolute;left:0;right:0}._overlay_13xy9_1{z-index:1000;opacity:0;transition:opacity var(--wzl-motion-fast);background:#0006;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}._overlay_13xy9_1[data-entering]{opacity:0}._overlay_13xy9_1[data-entering][data-rac]{opacity:1}._overlay_13xy9_1[data-exiting]{opacity:0}._overlay_13xy9_1[data-rac]:not([data-entering]):not([data-exiting]){opacity:1}._modal_13xy9_29{background:var(--wzl-surface);border:1px solid var(--wzl-border);border-radius:var(--wzl-radius-md);color:var(--wzl-fg);font-family:var(--wzl-font-ui);outline:none;flex-direction:column;max-width:min(900px,100vw - 32px);max-height:calc(100vh - 32px);display:flex;box-shadow:0 24px 64px #00000073}._dialog_13xy9_43{outline:none;flex-direction:column;flex:1;min-height:0;display:flex}._header_13xy9_51{border-bottom:1px solid var(--wzl-border);flex:none;align-items:center;gap:12px;padding:14px 16px;display:flex}._title_13xy9_60{color:var(--wzl-fg);flex:1;margin:0;font-size:14px;font-weight:600}._close_13xy9_68{border-radius:var(--wzl-radius-sm);width:22px;height:22px;color:var(--wzl-fg-muted);cursor:pointer;background:0 0;border:1px solid #0000;flex:none;justify-content:center;align-items:center;padding:0;font-size:16px;line-height:1;display:inline-flex}._close_13xy9_68:hover{background:color-mix(in srgb, var(--wzl-fg) 10%, transparent);color:var(--wzl-fg)}._body_13xy9_90{flex:1;min-height:0;padding:16px;overflow:auto}._footer_13xy9_97{border-top:1px solid var(--wzl-border);flex:none;justify-content:flex-end;align-items:center;gap:8px;padding:12px 16px;display:flex}._root_q2asl_1{-webkit-user-select:none;user-select:none;touch-action:none;position:relative}._row_q2asl_8{align-items:center;gap:8px;display:flex}._track_q2asl_14{min-width:0;height:var(--rp-track-height,24px);background:var(--wzl-surface-sunken);border:1px solid var(--wzl-border);cursor:crosshair;border-radius:3px;flex:1;position:relative}._trackInner_q2asl_25{border-radius:3px;position:absolute;inset:0;overflow:hidden}._thumb_q2asl_35{background:color-mix(in srgb, var(--wzl-fg-muted) 70%, transparent);border:1px solid var(--wzl-border-strong);cursor:ew-resize;-webkit-backdrop-filter:blur(3px);font-variant-numeric:tabular-nums;width:14px;color:var(--wzl-fg-inverse);text-shadow:0 0 2px #ffffffb3;border-radius:3px;justify-content:center;align-items:center;margin-left:-7px;font:500 .65rem/1 ui-sans-serif,system-ui,sans-serif;display:flex;position:absolute;top:-2px;bottom:-2px;box-shadow:0 1px 2px #0003}._thumb_q2asl_35:focus-visible{outline:2px solid var(--wzl-accent);outline-offset:1px}._thumbActive_q2asl_74{z-index:1}._readoutsBelow_q2asl_79{height:14px;margin-top:4px;position:relative}._readoutBelow_q2asl_85{color:var(--wzl-fg-muted);white-space:nowrap;font:500 .65rem/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;position:absolute;transform:translate(-50%)}._readoutInline_q2asl_93{color:var(--wzl-fg-muted);vertical-align:middle;margin-left:8px;font:500 .7rem/1 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;display:inline-block}._notched_q2asl_101{background:var(--thumb-svg,none);-webkit-backdrop-filter:none;box-shadow:none;filter:drop-shadow(0 1px 1px #00000040);--thumb-svg:url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 14 30' preserveAspectRatio='none'%3E%3Cpolygon points='0,0 2.52,0 7,10.3 11.48,0 14,0 14,30 0,30' fill='rgba(255,255,255,0.62)' stroke='rgba(0,0,0,0.55)' stroke-width='0.75' stroke-linejoin='miter'/%3E%3C/svg%3E");background-color:#0000;background-repeat:no-repeat;background-size:100% 100%;border:none}._root_1pyfg_6{height:var(--wzl-tb-height,28px);-webkit-user-select:none;user-select:none;touch-action:none;background:linear-gradient(#0000002e 0%,#0000000d 100%);border-radius:999px;padding:2px;display:inline-flex;overflow:hidden;box-shadow:inset 0 1px 2px #0006,0 1px #ffffff0f}._segment_1pyfg_28{min-width:0;font-family:var(--wzl-font-ui);font-weight:300;font-size:var(--btn-fontsize,14px);color:var(--wzl-fg-muted);cursor:pointer;isolation:isolate;transition:color var(--wzl-motion-fast);background:0 0;border:none;border-radius:0;flex:1 1 0;justify-content:center;align-items:center;margin:0;padding:0 12px;line-height:1;display:inline-flex;position:relative;overflow:hidden}._segment_1pyfg_28:first-child{border-radius:999px 0 0 999px}._segment_1pyfg_28:last-child{border-radius:0 999px 999px 0}._segment_1pyfg_28:only-child{border-radius:999px}._segment_1pyfg_28:focus-visible{outline:2px solid var(--wzl-accent);outline-offset:-2px}._segment_1pyfg_28:disabled{opacity:.5;cursor:not-allowed}._segment_1pyfg_28:hover:not(:disabled):not(._segmentSelected_1pyfg_75){color:var(--wzl-fg)}._segmentSelected_1pyfg_75{background:linear-gradient(180deg, color-mix(in srgb, var(--wzl-accent) var(--btn-top-alpha,45%), transparent) 0%, color-mix(in srgb, var(--wzl-accent) var(--btn-upper-alpha,70%), transparent) calc(var(--btn-equator,52%) - var(--btn-equator-spread,12%)), color-mix(in srgb, var(--wzl-accent) var(--btn-equator-tint,95%), white) var(--btn-equator,52%), var(--wzl-accent) calc(var(--btn-equator,52%) + var(--btn-equator-spread,12%) * 1.6), color-mix(in srgb, var(--wzl-accent) var(--btn-base-tint,70%), black) 100%);-webkit-backdrop-filter:blur(var(--btn-blur,6px)) saturate(var(--btn-saturate,1.3));color:var(--wzl-fg-on-accent);text-shadow:0 1px 0 rgba(0, 0, 0, var(--btn-text-shadow,.35)), var(--btn-text-inset-x,0px) var(--btn-text-inset-y,1px) 0 rgba(0, 0, 0, var(--btn-text-inset,.55)), 0 0 6px rgba(0, 0, 0, calc(var(--btn-text-shadow,.35) * .5));box-shadow:inset 0 1px 0 rgba(255, 255, 255, var(--btn-inset-hi,.42)), inset 0 -1px 2px rgba(0, 0, 0, var(--btn-inset-lo,.3)), 0 0 0 1px rgba(0, 0, 0, var(--btn-rim,.22)), 0 1px 2px rgba(0, 0, 0, var(--btn-drop-near,.3)), 0 2px 4px rgba(0, 0, 0, calc(var(--btn-drop-far,.18) * .8))}._segmentSelected_1pyfg_75:before{content:"";inset:1px 1px var(--btn-gloss-bottom,50%) 1px;border-radius:inherit;background:linear-gradient(180deg, rgba(255, 255, 255, var(--btn-gloss-top,.42)) 0%, rgba(255, 255, 255, var(--btn-gloss-mid,.12)) 60%, #fff0 100%);pointer-events:none;z-index:1;border-bottom-right-radius:0;border-bottom-left-radius:0;position:absolute}._segmentSelected_1pyfg_75>*{z-index:2;position:relative}._segmentMixed_1pyfg_134{background:color-mix(in srgb, var(--wzl-accent) 22%, transparent);color:var(--wzl-fg);box-shadow:inset 0 0 0 1px color-mix(in srgb, var(--wzl-accent) 45%, transparent)}._segmentMixed_1pyfg_134:hover:not(:disabled){background:color-mix(in srgb, var(--wzl-accent) 32%, transparent)}._variant_minimal_1pyfg_144 ._segmentMixed_1pyfg_134{background:color-mix(in srgb, var(--wzl-accent) 18%, transparent);box-shadow:none;color:var(--wzl-fg)}._size_sm_1pyfg_153{height:17px;padding:1px}._size_sm_1pyfg_153 ._segment_1pyfg_28{padding:0 8px;font-size:11px}._variant_minimal_1pyfg_144{border:1px solid var(--wzl-border,#ffffff2e);height:auto;box-shadow:none;background:0 0;border-radius:3px;gap:0;padding:0}._variant_minimal_1pyfg_144 ._segment_1pyfg_28{color:var(--wzl-fg-muted);border-radius:0;padding:0 6px;font-size:11px;font-weight:400;line-height:1.4;transition:none}._variant_minimal_1pyfg_144 ._segment_1pyfg_28+._segment_1pyfg_28{border-left:1px solid var(--wzl-border,#ffffff2e)}._variant_minimal_1pyfg_144 ._segment_1pyfg_28:first-child,._variant_minimal_1pyfg_144 ._segment_1pyfg_28:last-child,._variant_minimal_1pyfg_144 ._segment_1pyfg_28:only-child{border-radius:0}._variant_minimal_1pyfg_144 ._segment_1pyfg_28:hover:not(:disabled):not(._segmentSelected_1pyfg_75){color:var(--wzl-fg);background:#ffffff0f}._variant_minimal_1pyfg_144 ._segmentSelected_1pyfg_75{-webkit-backdrop-filter:none;color:var(--wzl-accent-fg,var(--wzl-accent));text-shadow:none;box-shadow:none;background:0 0;font-weight:500}._variant_minimal_1pyfg_144 ._segmentSelected_1pyfg_75:before{content:none}._root_15yko_1{flex-direction:column;gap:8px;min-inline-size:0;display:flex}._swatches_15yko_8{flex-wrap:wrap;gap:6px;display:flex}._swatch_15yko_8{flex:0 auto;min-inline-size:0}._overlay_6yu3h_3{pointer-events:none;position:absolute;inset:0}._guide_6yu3h_13{fill:none;stroke:#fff;stroke-opacity:.7;stroke-dasharray:4 4;paint-order:stroke}._handle_6yu3h_21{fill:#fff;stroke:#222;stroke-width:2px;cursor:grab;pointer-events:auto}._handle_6yu3h_21:active{cursor:grabbing}._handle_6yu3h_21:focus-visible{outline:2px solid var(--wzl-accent,#4a9eff);outline-offset:2px}._field_cahom_1{flex-direction:column;gap:4px;width:100%;min-width:0;display:flex}._frame_cahom_9{background:var(--wzl-surface-sunken);border:1px solid var(--wzl-border);border-radius:var(--wzl-radius-sm);height:24px;color:var(--wzl-fg);font-family:var(--wzl-font-ui);transition:border-color var(--wzl-motion-fast), box-shadow var(--wzl-motion-fast);align-items:center;gap:6px;padding:0 8px;font-size:13px;line-height:1;display:flex}._frame_cahom_9:focus-within{border-color:var(--wzl-focus-ring);box-shadow:0 0 0 1px var(--wzl-focus-ring)}._field_cahom_1[data-invalid] ._frame_cahom_9{border-color:var(--wzl-danger,#ff5b5b)}._field_cahom_1[data-disabled] ._frame_cahom_9{opacity:.5;cursor:not-allowed}._frame_cahom_9 input{min-width:0;color:inherit;font:inherit;background:0 0;border:none;outline:none;flex:1;padding:0}._frame_cahom_9 input::placeholder{color:var(--wzl-fg-subtle)}._adornment_cahom_54{color:var(--wzl-fg-subtle);pointer-events:none;align-items:center;font-size:12px;display:inline-flex}._keys_n4bkk_2{vertical-align:bottom;flex-wrap:wrap;align-items:flex-end;gap:3px;display:inline-flex}._keysEmpty_n4bkk_16{color:var(--wzl-fg-muted)}._sep_n4bkk_20{color:var(--wzl-fg-muted);font-size:11px;line-height:1}._key_n4bkk_2{box-sizing:border-box;background:var(--wzl-fg,#e6e7e9);height:18px;color:var(--wzl-surface);border:1px solid #25272c;border-bottom-width:2px;border-radius:3px;justify-content:center;align-items:center;padding:0 4px;font-family:ui-sans-serif,system-ui,sans-serif;font-size:11px;font-weight:700;line-height:1;display:inline-flex}._key_n4bkk_2[data-kind=square]{width:18px;padding:0}._key_n4bkk_2[data-kind=modifier]{min-width:26px;padding:0 6px}._key_n4bkk_2[data-kind=wide]{min-width:32px;padding:0 8px}._key_n4bkk_2[data-inverted]{background:var(--wzl-surface);color:color-mix(in srgb, var(--wzl-fg,#e6e7e9) 60%, transparent);border-style:dotted;border-color:color-mix(in srgb, var(--wzl-fg,#e6e7e9) 40%, transparent);border-width:1.5px}._key_n4bkk_2[data-variant=minimal]{color:currentColor;background:0 0;border-color:currentColor}._key_n4bkk_2[data-variant=minimal][data-inverted]{color:currentColor;border:1.5px dotted}._field_e75yx_1{flex-direction:column;gap:4px;width:100%;min-width:0;display:flex}._frame_e75yx_9{background:var(--wzl-surface-sunken);border:1px solid var(--wzl-border);border-radius:var(--wzl-radius-sm);height:24px;color:var(--wzl-fg);font-family:var(--wzl-font-ui);transition:border-color var(--wzl-motion-fast), box-shadow var(--wzl-motion-fast);align-items:stretch;font-size:13px;line-height:1;display:flex;overflow:hidden}._frame_e75yx_9:focus-within{border-color:var(--wzl-focus-ring);box-shadow:0 0 0 1px var(--wzl-focus-ring)}._field_e75yx_1[data-invalid] ._frame_e75yx_9{border-color:var(--wzl-danger,#ff5b5b)}._field_e75yx_1[data-disabled] ._frame_e75yx_9{opacity:.5;cursor:not-allowed}._frame_e75yx_9 input{min-width:0;color:inherit;font:inherit;text-align:right;-moz-appearance:textfield;background:0 0;border:none;outline:none;flex:1;padding:0 8px}._frame_e75yx_9 input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}._frame_e75yx_9 input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}._steppers_e75yx_57{border-left:1px solid var(--wzl-border);flex-direction:column;display:flex}._stepper_e75yx_57{width:18px;color:var(--wzl-fg-muted);cursor:pointer;background:0 0;border:none;flex:1;justify-content:center;align-items:center;padding:0;font-size:9px;line-height:1;display:inline-flex}._stepper_e75yx_57:not(:last-child){border-bottom:1px solid var(--wzl-border)}._stepper_e75yx_57[data-hovered]:not([data-disabled]){background:color-mix(in srgb, var(--wzl-fg) 10%, transparent);color:var(--wzl-fg)}._stepper_e75yx_57[data-pressed]:not([data-disabled]){background:color-mix(in srgb, var(--wzl-fg) 18%, transparent)}._stepper_e75yx_57[data-disabled]{opacity:.4;cursor:not-allowed}._row_q3wun_1{align-items:stretch;gap:var(--powerline-gap,.2em);display:inline-flex}._matrix_q3wun_7{gap:12px;display:grid}._segment_q3wun_15{font-size:inherit;text-transform:none;letter-spacing:normal}._group_kaubu_1{font-family:var(--wzl-font-ui);color:var(--wzl-fg);flex-direction:column;gap:6px;display:flex}._group_kaubu_1[data-orientation=horizontal]{flex-direction:row;gap:16px}._legend_kaubu_14{color:var(--wzl-fg);font-size:12px;font-weight:500}._radio_kaubu_20{cursor:pointer;color:var(--wzl-fg);-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:13px;display:inline-flex}._radio_kaubu_20[data-disabled]{opacity:.5;cursor:not-allowed}._dot_kaubu_36{background:var(--wzl-surface-sunken);border:1px solid var(--wzl-border-strong);width:14px;height:14px;transition:border-color var(--wzl-motion-fast), box-shadow var(--wzl-motion-fast);border-radius:50%;flex:none;position:relative}._radio_kaubu_20[data-focus-visible] ._dot_kaubu_36{box-shadow:0 0 0 2px var(--wzl-focus-ring)}._radio_kaubu_20[data-hovered]:not([data-disabled]) ._dot_kaubu_36{border-color:var(--wzl-fg-muted)}._radio_kaubu_20[data-selected] ._dot_kaubu_36{border-color:var(--wzl-accent-strong)}._dot_kaubu_36:after{content:"";background:var(--wzl-accent-strong);transition:transform var(--wzl-motion-fast);border-radius:50%;position:absolute;inset:3px;transform:scale(0)}._radio_kaubu_20[data-selected] ._dot_kaubu_36:after{transform:scale(1)}._slider_1644w_1{width:100%;font-family:var(--wzl-font-ui);color:var(--wzl-fg);flex-direction:column;gap:4px;display:flex}._slider_1644w_1[data-orientation=vertical]{flex-direction:row;align-items:stretch;width:28px;height:160px}._head_1644w_17{justify-content:space-between;align-items:baseline;gap:8px;display:flex}._label_1644w_24{color:var(--wzl-fg);font-size:12px;font-weight:500}._output_1644w_30{color:var(--wzl-fg-subtle);font-variant-numeric:tabular-nums;font-size:12px}._track_1644w_36{background:var(--wzl-surface-sunken);border:1px solid var(--wzl-border);border-radius:3px;min-width:80px;height:6px;position:relative}._slider_1644w_1[data-orientation=vertical] ._track_1644w_36{width:6px;height:100%}._fill_1644w_50{background:var(--wzl-accent-strong);border-radius:3px;position:absolute;top:0;bottom:0;left:0}._thumb_1644w_59{background:var(--wzl-fg-muted);border:1px solid var(--wzl-border-strong);cursor:ew-resize;width:14px;height:14px;transition:box-shadow var(--wzl-motion-fast);border-radius:50%;outline:none}._slider_1644w_1[data-orientation=vertical] ._thumb_1644w_59{cursor:ns-resize}._thumb_1644w_59[data-focus-visible]{box-shadow:0 0 0 2px var(--wzl-focus-ring)}._thumb_1644w_59[data-dragging]{background:var(--wzl-accent-strong)}._slider_1644w_1[data-disabled]{opacity:.5;cursor:not-allowed}._field_nq1le_1{flex-direction:column;gap:4px;width:100%;min-width:0;display:flex}._trigger_nq1le_9{background:var(--wzl-surface-sunken);border:1px solid var(--wzl-border);border-radius:var(--wzl-radius-sm);width:100%;height:24px;color:var(--wzl-fg);font-family:var(--wzl-font-ui);cursor:pointer;transition:border-color var(--wzl-motion-fast), box-shadow var(--wzl-motion-fast);align-items:center;gap:6px;padding:0 6px 0 10px;font-size:13px;line-height:1;display:flex}._trigger_nq1le_9[data-focus-visible]{border-color:var(--wzl-focus-ring);box-shadow:0 0 0 1px var(--wzl-focus-ring)}._field_nq1le_1[data-invalid] ._trigger_nq1le_9{border-color:var(--wzl-danger,#ff5b5b)}._trigger_nq1le_9[data-disabled]{opacity:.5;cursor:not-allowed}._value_nq1le_41{text-align:left;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0;overflow:hidden}._value_nq1le_41[data-placeholder]{color:var(--wzl-fg-subtle)}._chevron_nq1le_54{width:10px;height:10px;color:var(--wzl-fg-muted);flex:none}._popover_nq1le_61{min-width:var(--trigger-width);max-height:inherit;outline:none}._listbox_nq1le_67{background:var(--wzl-surface-raised);border:1px solid var(--wzl-border);border-radius:var(--wzl-radius-md);max-height:280px;font-family:var(--wzl-font-ui);outline:none;padding:4px;font-size:13px;overflow:auto;box-shadow:0 8px 24px #0000004d}._option_nq1le_80{cursor:pointer;color:var(--wzl-fg);border-radius:3px;outline:none;align-items:center;gap:8px;padding:4px 8px;display:flex}._option_nq1le_80[data-focused]{background:color-mix(in srgb, var(--wzl-fg) 10%, transparent)}._option_nq1le_80[data-selected]{color:var(--wzl-fg);font-weight:500}._option_nq1le_80[data-disabled]{opacity:.4;cursor:not-allowed}._check_nq1le_105{opacity:0;flex:none;width:10px;height:10px}._option_nq1le_80[data-selected] ._check_nq1le_105{opacity:1}._switch_qsj3o_1{cursor:pointer;font-family:var(--wzl-font-ui);color:var(--wzl-fg);-webkit-user-select:none;user-select:none;align-items:center;gap:8px;font-size:13px;display:inline-flex}._switch_qsj3o_1[data-disabled]{opacity:.5;cursor:not-allowed}._track_qsj3o_18{background:var(--wzl-surface-sunken);border:1px solid var(--wzl-border-strong);width:28px;height:16px;transition:background-color var(--wzl-motion-fast), border-color var(--wzl-motion-fast), box-shadow var(--wzl-motion-fast);border-radius:8px;flex:none;position:relative}._switch_qsj3o_1[data-focus-visible] ._track_qsj3o_18{box-shadow:0 0 0 2px var(--wzl-focus-ring)}._switch_qsj3o_1[data-selected] ._track_qsj3o_18{background:var(--wzl-accent-strong);border-color:var(--wzl-accent-strong)}._thumb_qsj3o_38{background:var(--wzl-fg);width:12px;height:12px;transition:transform var(--wzl-motion-fast);border-radius:50%;position:absolute;top:1px;left:1px}._switch_qsj3o_1[data-selected] ._thumb_qsj3o_38{background:var(--wzl-fg-on-accent);transform:translate(12px)}._label_qsj3o_54{line-height:1.2}._columns_y5ks5_5{flex-flow:wrap;align-items:flex-start;gap:12px;padding-right:4px;display:flex;overflow-y:auto}._column_y5ks5_5{flex:0 0 var(--wzl-prefs-column-width,300px);width:var(--wzl-prefs-column-width,300px);flex-direction:column;gap:8px;display:flex}._panel_y5ks5_23{background:var(--wzl-surface-sunken);border:1px solid var(--wzl-border);border-radius:var(--wzl-radius-sm);flex-direction:column;gap:8px;padding:10px;display:flex}._subpanel_y5ks5_33{background:var(--wzl-surface-sunken);border-left:2px solid var(--wzl-border);border-radius:2px;flex-direction:column;gap:6px;margin-top:6px;padding:8px 8px 8px 10px;display:flex}._groupHeader_y5ks5_44{border-bottom:1px solid var(--wzl-border);flex-direction:column;gap:2px;padding-bottom:4px;display:flex}._subpanel_y5ks5_33 ._groupHeader_y5ks5_44{border-bottom:none;padding-bottom:2px}._groupTitle_y5ks5_57{color:var(--wzl-fg);letter-spacing:.04em;text-transform:uppercase;margin:0;font-size:12px;font-weight:600}._subpanel_y5ks5_33 ._groupTitle_y5ks5_57{text-transform:none;letter-spacing:0;font-size:11px}._groupDesc_y5ks5_72{color:var(--wzl-fg-subtle);margin:0;font-size:11px;line-height:1.35}._rows_y5ks5_79{flex-direction:column;gap:6px;display:flex}._row_y5ks5_79{color:var(--wzl-fg);cursor:default;justify-content:space-between;align-items:center;gap:8px;font-size:12px;display:flex}._rowLabel_y5ks5_95{flex:auto;align-items:center;gap:4px;min-width:0;display:inline-flex}._help_y5ks5_104{color:var(--wzl-fg-subtle);cursor:help;border-radius:var(--wzl-radius-sm);background:0 0;border:none;flex:none;padding:0;font-size:11px;line-height:1}._help_y5ks5_104:hover{color:var(--wzl-fg)}._help_y5ks5_104:focus-visible{outline:2px solid var(--wzl-focus-ring);outline-offset:1px;color:var(--wzl-fg)}._rowControl_y5ks5_128{flex:0 0 110px;align-items:center;min-width:0;display:flex}._textarea_y5ks5_135{background:var(--wzl-surface-sunken);width:100%;color:var(--wzl-fg);border:1px solid var(--wzl-border);border-radius:var(--wzl-radius-sm);font:inherit;resize:vertical;padding:4px 8px;font-size:12px}._unrenderable_y5ks5_147{font-family:var(--wzl-font-mono);color:var(--wzl-fg-subtle);font-size:11px}._titleRow_y5ks5_154{flex:1;align-items:center;gap:12px;min-width:0;display:flex}._titleRow_y5ks5_154>span:first-child{flex:1;min-width:0}._handle_c4v7n_1{cursor:ew-resize;border-left:1px solid var(--wzl-border);touch-action:none;background:0 0;flex-shrink:0;align-self:stretch;width:4px}._handle_c4v7n_1._horizontal_c4v7n_14{cursor:ns-resize;border-left:none;border-top:1px solid var(--wzl-border);align-self:auto;width:auto;height:4px}._handle_c4v7n_1:hover{background:var(--wzl-border)}._handle_c4v7n_1:focus-visible{outline:2px solid var(--wzl-focus-ring,var(--wzl-accent));outline-offset:-1px}._root_zqa5p_1{color:var(--wzl-fg);flex-direction:column;font-size:12px;display:flex}._header_zqa5p_8{border-block-end:1px solid var(--wzl-border);align-items:baseline;gap:8px;padding:8px 10px;display:flex}._kind_zqa5p_16{font-size:13px;font-weight:600}._breakdown_zqa5p_21{opacity:.6;font-size:11px}._section_zqa5p_26{border-block-end:1px solid var(--wzl-border);padding:6px 10px 8px}._section_zqa5p_26:last-child{border-block-end:none}._sectionTitle_zqa5p_35{text-transform:uppercase;letter-spacing:.06em;opacity:.55;margin:0 0 6px;font-size:10px;font-weight:600}._row_zqa5p_44{grid-template-columns:64px 1fr;align-items:center;gap:6px;margin-block-end:5px;display:grid}._rowLabel_zqa5p_52{opacity:.75}._rowControls_zqa5p_56{align-items:center;gap:6px;min-inline-size:0;display:flex}._rowControls_zqa5p_56>*{flex:1;min-inline-size:0}._number_zqa5p_68 input,._select_zqa5p_69{font-size:11px}._unitSuffix_zqa5p_73{opacity:.6;flex:none;font-size:11px}._mixedSwitch_zqa5p_79{opacity:.55}._unrenderable_zqa5p_83{opacity:.5;font-size:11px;font-style:italic}._sidebar_toyo8_1{background:var(--wzl-surface);color:var(--wzl-fg);flex-direction:column;gap:4px;display:flex}._sidebar_toyo8_1._left_toyo8_9{border-right:1px solid var(--wzl-border)}._sidebar_toyo8_1._right_toyo8_12{border-left:1px solid var(--wzl-border)}._panel_1u064_1{background:var(--wzl-surface);color:var(--wzl-fg);padding:8px}._title_1u064_7{text-transform:uppercase;letter-spacing:.05em;color:var(--wzl-fg-muted);font-size:11px;font-weight:600}._titleRow_1u064_15{justify-content:space-between;align-items:center;margin-bottom:4px;padding:0;display:flex}._titleButton_1u064_23{cursor:pointer;color:inherit;font:inherit;text-align:left;background:0 0;border:0;flex:auto;align-items:center;gap:4px;padding:4px 8px;display:inline-flex}._titleButton_1u064_23:hover{color:var(--wzl-fg)}._chevron_1u064_40{color:var(--wzl-fg-muted);transition:transform var(--wzl-motion-fast) ease;font-size:10px;line-height:1;display:inline-block}._chevronCollapsed_1u064_47{transform:rotate(-90deg)}._hideButton_1u064_51{color:var(--wzl-fg-muted);cursor:pointer;background:0 0;border:0;padding:0 6px;font-size:14px;line-height:1}._hideButton_1u064_51:hover{color:var(--wzl-fg)}._panel_1u064_1._collapsed_1u064_64{padding-bottom:4px}._body_1u064_68{padding:0 4px}._bar_38xae_1{font-family:var(--wzl-font-mono,ui-monospace, SFMono-Regular, Menlo, monospace);color:var(--wzl-fg-muted);background:var(--wzl-surface);border-top:1px solid var(--wzl-border);flex-shrink:0;align-items:center;gap:16px;padding:4px 12px;font-size:11px;display:flex}._item_38xae_14{white-space:nowrap}._muted_38xae_18{opacity:.6;font-variant-numeric:tabular-nums}._hasTitle_38xae_23{cursor:help}._spacer_38xae_27{margin-left:auto}._tabs_ce73l_1{font-family:var(--wzl-font-ui);color:var(--wzl-fg);flex-direction:column;gap:0;display:flex}._tabs_ce73l_1[data-orientation=horizontal]{flex-direction:column}._tabs_ce73l_1[data-orientation=vertical]{flex-direction:row;gap:12px}._list_ce73l_18{border-bottom:1px solid var(--wzl-border);gap:2px;display:flex}._tabs_ce73l_1[data-orientation=vertical] ._list_ce73l_18{border-bottom:none;border-right:1px solid var(--wzl-border);flex-direction:column;padding-right:8px}._tab_ce73l_1{color:var(--wzl-fg-muted);font:inherit;cursor:pointer;transition:color var(--wzl-motion-fast);background:0 0;border:none;outline:none;padding:6px 10px;font-size:12px;position:relative}._tab_ce73l_1[data-hovered]:not([data-disabled]),._tab_ce73l_1[data-selected]{color:var(--wzl-fg)}._tab_ce73l_1[data-selected]:after{content:"";background:var(--wzl-accent-strong);height:2px;position:absolute;bottom:-1px;left:0;right:0}._tabs_ce73l_1[data-orientation=vertical] ._tab_ce73l_1[data-selected]:after{width:2px;height:auto;inset:0 -9px 0 auto}._tab_ce73l_1[data-focus-visible]{box-shadow:inset 0 0 0 2px var(--wzl-focus-ring);border-radius:var(--wzl-radius-sm)}._tab_ce73l_1[data-disabled]{opacity:.5;cursor:not-allowed}._panel_ce73l_81{outline:none;padding:12px 0}._panel_ce73l_81[data-focus-visible]{box-shadow:inset 0 0 0 2px var(--wzl-focus-ring);border-radius:var(--wzl-radius-sm)}._region_18i9b_1{z-index:1100;outline:none;flex-direction:column-reverse;gap:8px;max-width:360px;display:flex;position:fixed}._bottomRight_18i9b_17{bottom:16px;right:16px}._bottomLeft_18i9b_18{bottom:16px;left:16px}._topRight_18i9b_19{flex-direction:column;top:16px;right:16px}._topLeft_18i9b_20{flex-direction:column;top:16px;left:16px}._toast_18i9b_22{--toast-accent:var(--wzl-accent-strong);view-transition-class:wzl-toast;background:var(--wzl-surface);border:1px solid var(--wzl-border);border-left:3px solid var(--toast-accent);border-radius:var(--wzl-radius-md);color:var(--wzl-fg);font-family:var(--wzl-font-ui);outline:none;align-items:flex-start;gap:8px;padding:10px 12px;display:flex;box-shadow:0 8px 24px #00000059}._region_18i9b_1[data-focus-visible],._toast_18i9b_22[data-focus-visible]{outline:2px solid var(--wzl-focus-ring);outline-offset:1px}._toneSuccess_18i9b_49{--toast-accent:var(--wzl-success,#2ec27e)}._toneWarning_18i9b_50{--toast-accent:var(--wzl-warning,#d99a3f)}._toneError_18i9b_51{--toast-accent:var(--wzl-danger,#d94a3f)}._content_18i9b_53{flex:1;min-width:0}._title_18i9b_58{font-size:13px;font-weight:600;display:block}._description_18i9b_64{color:var(--wzl-fg-muted);margin-top:2px;font-size:12px;display:block}._close_18i9b_71{color:var(--wzl-fg-muted);cursor:pointer;border-radius:var(--wzl-radius-sm);background:0 0;border:none;flex:none;padding:2px 4px;font-size:16px;line-height:1}._close_18i9b_71:hover{color:var(--wzl-fg)}:root.wzl-toast-vt{view-transition-name:none}:root.wzl-toast-vt::view-transition{pointer-events:none}:root.wzl-toast-vt::view-transition-new(.wzl-toast):only-child{animation:wzl-toast-enter var(--wzl-motion-medium,.24s) var(--wzl-ease-out-cubic,ease-out) both}:root.wzl-toast-vt::view-transition-old(.wzl-toast):only-child{animation:wzl-toast-exit var(--wzl-motion-fast,.12s) var(--wzl-ease-in-cubic,ease-in) both}@keyframes wzl-toast-enter{0%{opacity:0;translate:0 16px}}@keyframes wzl-toast-exit{to{opacity:0;scale:.92}}._button_1jvxe_1{min-width:44px;color:var(--wzl-fg);cursor:default;background:0 0;border:1px solid #0000;border-radius:3px;flex-direction:column;justify-content:center;align-items:center;gap:2px;padding:6px 4px;font-family:inherit;font-size:10px;line-height:1.1;display:inline-flex}._button_1jvxe_1:hover:not([disabled]){background:var(--wzl-surface-hover);color:var(--wzl-fg)}._button_1jvxe_1:focus-visible{outline:2px solid var(--wzl-accent);outline-offset:-2px}._button_1jvxe_1._active_1jvxe_26{background:var(--wzl-surface-pressed);border-color:var(--wzl-accent);color:var(--wzl-fg)}._button_1jvxe_1[disabled]{opacity:.4}._icon_1jvxe_35,._icon_1jvxe_35>svg{display:block}._label_1jvxe_37{font-size:10px}._shortcut_1jvxe_38{color:var(--wzl-fg-muted);font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:9px}._group_o2pho_1{flex-direction:column;gap:2px;display:flex}._group_o2pho_1._horizontal_o2pho_6{flex-direction:row}._root_ps46a_13{height:var(--wzl-tb-height,28px);background:var(--wzl-surface);border-bottom:1px solid var(--wzl-border);color:var(--wzl-fg);align-items:center;gap:8px;padding:0 8px;display:flex;overflow:hidden}._label_ps46a_25{text-transform:uppercase;letter-spacing:.05em;color:var(--wzl-fg-muted);white-space:nowrap;flex:none;font-size:11px;font-weight:600}._controls_ps46a_6{scrollbar-width:thin;flex:auto;align-items:center;gap:6px;min-width:0;height:100%;display:flex;overflow:auto hidden}._controls_ps46a_6::-webkit-scrollbar{height:4px}._controls_ps46a_6::-webkit-scrollbar-track{background:0 0}._controls_ps46a_6::-webkit-scrollbar-thumb{background:var(--wzl-border);border-radius:2px}._palette_1mz1c_1{background:var(--wzl-surface);border:1px solid var(--wzl-border);-webkit-user-select:none;user-select:none;border-radius:4px;flex-direction:column;gap:4px;padding:4px;display:flex}._palette_1mz1c_1._horizontal_1mz1c_11{flex-direction:row}._ineligibleBtn_1mz1c_20{opacity:.35;cursor:not-allowed}._separator_1mz1c_25{background:var(--wzl-border)}._palette_1mz1c_1:not(._horizontal_1mz1c_11) ._separator_1mz1c_25{height:1px;margin:2px 0}._palette_1mz1c_1._horizontal_1mz1c_11 ._separator_1mz1c_25{width:1px;margin:0 2px}
|
|
147
|
+
/*$vite$:1*/
|
|
1
148
|
@font-face {
|
|
2
149
|
font-family: 'Oswald';
|
|
3
150
|
font-style: normal;
|
package/dist/ui/layers/index.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
export { LayerStack } from '../../chunk-
|
|
2
|
-
import '../../chunk-
|
|
3
|
-
import '../../chunk-
|
|
1
|
+
export { LayerStack } from '../../chunk-2ZRE7WGQ.js';
|
|
2
|
+
import '../../chunk-R4TACNW7.js';
|
|
3
|
+
import '../../chunk-3P56ZCCJ.js';
|
|
4
4
|
//# sourceMappingURL=index.js.map
|
|
5
5
|
//# sourceMappingURL=index.js.map
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@weasel-js/labkit",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2",
|
|
4
4
|
"description": "React widgets for building self-contained interactive lab pages",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"author": "orochi235",
|
|
@@ -76,7 +76,7 @@
|
|
|
76
76
|
"build": "tsup && npm run build:dts && npm run build:css && npm run build:fonts",
|
|
77
77
|
"build:dts": "tsx scripts/build-dts.mts",
|
|
78
78
|
"prepublishOnly": "npm run build",
|
|
79
|
-
"build:css": "
|
|
79
|
+
"build:css": "node scripts/build-css.mjs",
|
|
80
80
|
"build:fonts": "mkdir -p dist/fonts && cp ../theme/fonts/*.woff2 dist/fonts/",
|
|
81
81
|
"test": "vitest run",
|
|
82
82
|
"test:watch": "vitest",
|