@weasel-js/labkit 1.5.1 → 1.5.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/_dts/{CanvasStackContext-CJNMS6mz.d.ts → CanvasStackContext-CMMo180l.d.ts} +1 -1
- package/dist/_dts/{Select.d-Gwr8fLpK.d.ts → Select.d-ZTiwzYyT.d.ts} +27 -1
- package/dist/_dts/{frac-B4okC2lX.d.ts → frac-B4hFJMiN.d.ts} +16 -6
- package/dist/_dts/{index-BNdz-tNd.d.ts → index-8LiKe3A-.d.ts} +30 -43
- package/dist/_dts/{index-CSJoj4LC.d.ts → index-DlKolEIZ.d.ts} +5 -4
- package/dist/_dts/{types-DzoNY1pO.d.ts → types-Db-3NNk1.d.ts} +4 -4
- package/dist/_dts/{usePanZoom-Pzf9f2jh.d.ts → usePanZoom-SSTZe410.d.ts} +4 -47
- package/dist/_dts/{useTrialState-uLlmaccn.d.ts → useTrialState-pnAE-UBD.d.ts} +1 -1
- package/dist/canvas/index.d.ts +4 -4
- package/dist/canvas/index.js +1 -1
- package/dist/chrome/index.d.ts +3 -3
- package/dist/chrome/index.js +6 -6
- package/dist/{chunk-PJ7WEQBJ.js → chunk-6BUQ77ZV.js} +4 -4
- package/dist/{chunk-PJ7WEQBJ.js.map → chunk-6BUQ77ZV.js.map} +1 -1
- package/dist/{chunk-UN4U4P63.js → chunk-753Y6HE6.js} +9 -9
- package/dist/chunk-753Y6HE6.js.map +1 -0
- package/dist/{chunk-ZDHY47EV.js → chunk-A2ACAGW6.js} +6 -7
- package/dist/chunk-A2ACAGW6.js.map +1 -0
- package/dist/{chunk-IHUVQ3TX.js → chunk-CKUKF72R.js} +10 -10
- package/dist/chunk-CKUKF72R.js.map +1 -0
- package/dist/{chunk-MDVTK5U3.js → chunk-D35PFTS7.js} +3 -3
- package/dist/{chunk-MDVTK5U3.js.map → chunk-D35PFTS7.js.map} +1 -1
- package/dist/{chunk-PHK4W562.js → chunk-EMXAIRUJ.js} +3 -3
- package/dist/{chunk-PHK4W562.js.map → chunk-EMXAIRUJ.js.map} +1 -1
- package/dist/{chunk-EH7UEQV7.js → chunk-FKLT3ITC.js} +69 -69
- package/dist/chunk-FKLT3ITC.js.map +1 -0
- package/dist/{chunk-EHGVROVV.js → chunk-KJCUERQF.js} +3 -3
- package/dist/{chunk-EHGVROVV.js.map → chunk-KJCUERQF.js.map} +1 -1
- package/dist/chunk-LASCBWW7.js +13456 -0
- package/dist/chunk-LASCBWW7.js.map +1 -0
- package/dist/{chunk-IXTQI7JX.js → chunk-LRI3MBGR.js} +4 -4
- package/dist/{chunk-IXTQI7JX.js.map → chunk-LRI3MBGR.js.map} +1 -1
- package/dist/{chunk-7PFH3CNM.js → chunk-REOBGYMC.js} +4 -4
- package/dist/{chunk-7PFH3CNM.js.map → chunk-REOBGYMC.js.map} +1 -1
- package/dist/{chunk-CEIUBPPW.js → chunk-TT5C5S6R.js} +3 -86
- package/dist/chunk-TT5C5S6R.js.map +1 -0
- package/dist/config/index.d.ts +7 -8
- package/dist/config/index.js +5 -5
- package/dist/controls/index.d.ts +2 -2
- package/dist/controls/index.js +4 -4
- package/dist/dragdrop/index.d.ts +2 -2
- package/dist/index.d.ts +72 -28
- package/dist/index.js +142 -123
- package/dist/index.js.map +1 -1
- package/dist/layers/index.d.ts +3 -3
- package/dist/layers/index.js +2 -2
- package/dist/loupe/index.d.ts +4 -4
- package/dist/passthrough/weasel-ui.d.ts +33 -30
- package/dist/passthrough/weasel-ui.js +1 -1
- package/dist/primitives/index.js +3 -3
- package/dist/state/index.d.ts +4 -4
- package/dist/state/index.js +5 -5
- package/dist/styles.css +114 -18
- package/dist/ui/layers/index.js +1 -1
- package/dist/undo/index.d.ts +2 -2
- package/package.json +9 -9
- 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/TitleBarRegion.tsx +1 -1
- package/src/chrome/types.ts +8 -2
- package/src/config/builder.ts +3 -4
- package/src/config/types.ts +4 -4
- package/src/controls/AutoControls.stories.tsx +6 -6
- package/src/controls/ControlPanel.less +23 -0
- package/src/controls/ControlPanel.stories.tsx +41 -0
- package/src/controls/ControlPanel.test.tsx +53 -110
- package/src/controls/ControlPanel.tsx +61 -77
- package/src/index.test.ts +0 -2
- package/src/index.ts +4 -10
- package/src/lab/Lab.tsx +21 -5
- package/src/layers/LayerList.less +1 -1
- package/src/layers/LayerList.stories.tsx +1 -1
- 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/state/types.ts +6 -1
- package/src/state/view.test.ts +4 -4
- package/src/trial/Trial.canvas.test.tsx +8 -4
- package/src/trial/Trial.config.test.tsx +1 -1
- package/dist/chunk-CEIUBPPW.js.map +0 -1
- package/dist/chunk-EH7UEQV7.js.map +0 -1
- package/dist/chunk-IHUVQ3TX.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/src/canvas/useOrbit.test.ts +0 -167
- package/src/canvas/useOrbit.ts +0 -156
package/dist/index.js
CHANGED
|
@@ -7,28 +7,28 @@ import { useTiledSurface } from './chunk-IJJUK4FU.js';
|
|
|
7
7
|
export { composeRects, rectsEqual, toDeviceRect, useTiledSurface } from './chunk-IJJUK4FU.js';
|
|
8
8
|
import { useJob } from './chunk-HXXTULDN.js';
|
|
9
9
|
export { useJob } from './chunk-HXXTULDN.js';
|
|
10
|
-
import { suppressContributions, mergeContributions, builtinContributions, TitleBarRegion, ToolbarRegion, PaletteRegion, ViewportRegion, SidebarRegion, StatusRegion, resolveLabTool, AnnotationsContext, useLabChromeContext, labContributions, LabHeaderRegion, LabFooterRegion, LabAsideRegion, LabSidebarRegion } from './chunk-
|
|
11
|
-
export { AnnotationsContext, ExportMenu, LabAsideRegion, LabFooterRegion, LabHeaderRegion, LabSidebarRegion, MarkList, PaletteRegion, SidebarRegion, StatusRegion, TitleBarRegion, ToolbarRegion, ViewportRegion, builtinContributions, contributionsIn, labContributions, mergeContributions, suppressContributions, toolContributions, useAnnotations, useAnnotationsOptional, useLabChromeContext } from './chunk-
|
|
12
|
-
import { Split, JobProgress, Sidebar, Legend, FloatingPanel } from './chunk-
|
|
13
|
-
export { FloatingPanel, JobProgress, Legend, Sidebar, Split } from './chunk-
|
|
14
|
-
import { Toolbar, StatusBar, ScaleIndicator, ZoomControl } from './chunk-
|
|
15
|
-
export { FpsMeter, ScaleIndicator, StatusBar, Toolbar, ZoomControl } from './chunk-
|
|
16
|
-
import { unruledConfigSchema, createLabStore, openLabStore, panelKey } from './chunk-
|
|
17
|
-
export { CURRENT_DOCUMENT_VERSION, dockPanel, labDocumentKey, openLabStore, panelKey, quarantineKey, undockPanel, useTrialState } from './chunk-
|
|
10
|
+
import { suppressContributions, mergeContributions, builtinContributions, TitleBarRegion, ToolbarRegion, PaletteRegion, ViewportRegion, SidebarRegion, StatusRegion, resolveLabTool, AnnotationsContext, useLabChromeContext, labContributions, LabHeaderRegion, LabFooterRegion, LabAsideRegion, LabSidebarRegion } from './chunk-CKUKF72R.js';
|
|
11
|
+
export { AnnotationsContext, ExportMenu, LabAsideRegion, LabFooterRegion, LabHeaderRegion, LabSidebarRegion, MarkList, PaletteRegion, SidebarRegion, StatusRegion, TitleBarRegion, ToolbarRegion, ViewportRegion, builtinContributions, contributionsIn, labContributions, mergeContributions, suppressContributions, toolContributions, useAnnotations, useAnnotationsOptional, useLabChromeContext } from './chunk-CKUKF72R.js';
|
|
12
|
+
import { Split, JobProgress, Sidebar, Legend, FloatingPanel } from './chunk-KJCUERQF.js';
|
|
13
|
+
export { FloatingPanel, JobProgress, Legend, Sidebar, Split } from './chunk-KJCUERQF.js';
|
|
14
|
+
import { Toolbar, StatusBar, ScaleIndicator, ZoomControl } from './chunk-753Y6HE6.js';
|
|
15
|
+
export { FpsMeter, ScaleIndicator, StatusBar, Toolbar, ZoomControl } from './chunk-753Y6HE6.js';
|
|
16
|
+
import { unruledConfigSchema, createLabStore, openLabStore, panelKey } from './chunk-LRI3MBGR.js';
|
|
17
|
+
export { CURRENT_DOCUMENT_VERSION, dockPanel, labDocumentKey, openLabStore, panelKey, quarantineKey, undockPanel, useTrialState } from './chunk-LRI3MBGR.js';
|
|
18
18
|
import { newId, useWarnIgnoredChange, useOpenOnce, PersistenceContext, createRecordCache, noneAdapter, defaultStorage, usePersistedState } from './chunk-RWNDDKOH.js';
|
|
19
19
|
export { Persistence, createIndexedDbAdapter, createMemoryAdapter, indexedDbAdapter, localStorageAdapter, noneAdapter, sessionStorageAdapter, urlHashAdapter, usePersistedState } from './chunk-RWNDDKOH.js';
|
|
20
|
-
export { ControlPanel } from './chunk-
|
|
21
|
-
import { useConfigSchema } from './chunk-
|
|
22
|
-
export { useConfigSchema } from './chunk-
|
|
20
|
+
export { ControlPanel } from './chunk-FKLT3ITC.js';
|
|
21
|
+
import { useConfigSchema } from './chunk-6BUQ77ZV.js';
|
|
22
|
+
export { useConfigSchema } from './chunk-6BUQ77ZV.js';
|
|
23
23
|
import { useLabContext, LabContext } from './chunk-Z76KEZAX.js';
|
|
24
24
|
export { LabContext, useLabContext } from './chunk-Z76KEZAX.js';
|
|
25
|
-
import { useResolvedConfig } from './chunk-
|
|
26
|
-
export { BaseNode, BooleanNode, ColorNode, CustomNode, EnumNode, GroupNode, NumberNode, StringNode, ValueNode, applyRules, builtinRules, f, isConfigBranch, resolveConfigSchema, titleCase, useResolvedConfig } from './chunk-
|
|
27
|
-
export { fromConfigFields, isLeafVisible } from './chunk-
|
|
28
|
-
import { hasConfigPath, schemaNodeAtPath, applyConfigWrite, resolveAutoConfig, isAuto, isRecord, autoPathsOf, fillConfigDefaults } from './chunk-
|
|
29
|
-
export { auto, autoPathsOf, fillConfigDefaults, hasConfigPath, isAuto, resolveAutoConfig, schemaNodeAtPath, valueAtPath, withValueAtPath } from './chunk-
|
|
30
|
-
import { CameraWheelContext, as2DView, DEFAULT_VIEW, CanvasStack, Stage, withZoom, fitStage } from './chunk-
|
|
31
|
-
export { CanvasStack, DEFAULT_VIEW,
|
|
25
|
+
import { useResolvedConfig } from './chunk-A2ACAGW6.js';
|
|
26
|
+
export { BaseNode, BooleanNode, ColorNode, CustomNode, EnumNode, GroupNode, NumberNode, StringNode, ValueNode, applyRules, builtinRules, f, isConfigBranch, resolveConfigSchema, titleCase, useResolvedConfig } from './chunk-A2ACAGW6.js';
|
|
27
|
+
export { fromConfigFields, isLeafVisible } from './chunk-EMXAIRUJ.js';
|
|
28
|
+
import { hasConfigPath, schemaNodeAtPath, applyConfigWrite, resolveAutoConfig, isAuto, isRecord, autoPathsOf, fillConfigDefaults } from './chunk-REOBGYMC.js';
|
|
29
|
+
export { auto, autoPathsOf, fillConfigDefaults, hasConfigPath, isAuto, resolveAutoConfig, schemaNodeAtPath, valueAtPath, withValueAtPath } from './chunk-REOBGYMC.js';
|
|
30
|
+
import { CameraWheelContext, as2DView, DEFAULT_VIEW, CanvasStack, Stage, withZoom, fitStage } from './chunk-TT5C5S6R.js';
|
|
31
|
+
export { CanvasStack, DEFAULT_VIEW, Stage, as2DView, fitStage, usePanZoom } from './chunk-TT5C5S6R.js';
|
|
32
32
|
export { centerOn, zoomAt } from './chunk-H6ZAOWNE.js';
|
|
33
33
|
import { applyCamera } from './chunk-2AYGEN57.js';
|
|
34
34
|
export { DEFAULT_FRAME, applyCamera, resolveFrame, screenToWorld, worldToScreen } from './chunk-2AYGEN57.js';
|
|
@@ -37,11 +37,11 @@ export { SurfaceCanvasContext, SurfaceContext, useSurface, useSurfaceCanvas, use
|
|
|
37
37
|
export { CanvasStackContext } from './chunk-CQLQPQ4P.js';
|
|
38
38
|
import { LabStoreContext, TrialIdProvider } from './chunk-2YILQ7Y5.js';
|
|
39
39
|
export { LabStoreContext, LabStoreProvider, TrialIdContext, TrialIdProvider, useLabStore, useTrialId } from './chunk-2YILQ7Y5.js';
|
|
40
|
-
import { LayerList } from './chunk-
|
|
41
|
-
export { LayerList } from './chunk-
|
|
40
|
+
import { LayerList } from './chunk-D35PFTS7.js';
|
|
41
|
+
export { LayerList } from './chunk-D35PFTS7.js';
|
|
42
42
|
import './chunk-SBXNQW4G.js';
|
|
43
|
-
import { E, w, T, a2, p, u, c, n, f, r, h, serializeSvg, C, l7,
|
|
44
|
-
export { a5 as Button,
|
|
43
|
+
import { E, w, T, a2, p, u, c, n, f, r, h, serializeSvg, C, l7, r5, a5, Lt, o2, a3, l3, u3, r7, r8, r6, o5, s5, c7, l6, c3, s3, u2, g, b2, y2, l4, b3, c8, r3, l2, C2, S, D, O, I2, z2, U, W, G2, H, B, X, A2, c4, n5, s4, m2, c2, l, g2, l5, S4, r9, n6, r10, i5, i4, s2, n7, o4, c5, c6, w2, L2, n8, k3, $2 } from './chunk-LASCBWW7.js';
|
|
44
|
+
export { a5 as Button, B as CheckboxRow, y as CloseIcon, $ as CollapseIcon, z2 as ColorRow, S2 as CurveField, q as EffectCard, Y as EffectCardList, te as ExpandIcon, o as Icon, u2 as Input, l9 as Jog, c4 as LayerStack, U as NumberRow, I as PauseIcon, F as PlayIcon, X as PropertyGroup, O as PropertyList, D as PropertyPanel, j2 as PropertyRow, k2 as PropertySpan, v as ResetIcon, b2 as Select, W as SelectRow, I2 as SliderRow, R as StepBackIcon, z as StepForwardIcon, L as StopIcon, K as Subpanel, H as TextRow, r5 as ToggleBar, G2 as ToggleRow, oe as TokenPanel, H2 as inferTokenType, O2 as refitScale } from './chunk-LASCBWW7.js';
|
|
45
45
|
import { textCommand, linePath, markerDrawCommands, ellipsePath, rectPath, createScene, asNodeId as asNodeId$1, WeaselProvider, SceneCanvas, sceneFromJSON, PathBuilder, renderSceneToPixels, useActiveToolContext } from '@weasel-js/core';
|
|
46
46
|
import { createContext, useState, useRef, useEffect, useCallback, useContext, useMemo, useId, Children, useLayoutEffect, useSyncExternalStore } from 'react';
|
|
47
47
|
import { flushSync, createPortal } from 'react-dom';
|
|
@@ -70,12 +70,12 @@ function vertices(m2, content) {
|
|
|
70
70
|
];
|
|
71
71
|
}
|
|
72
72
|
function polyline(points) {
|
|
73
|
-
const
|
|
73
|
+
const b3 = new PathBuilder();
|
|
74
74
|
const first = points[0];
|
|
75
75
|
if (!first) return rectPath(0, 0, 0, 0);
|
|
76
|
-
|
|
77
|
-
for (const p2 of points.slice(1))
|
|
78
|
-
return
|
|
76
|
+
b3.moveTo(first.x, first.y);
|
|
77
|
+
for (const p2 of points.slice(1)) b3.lineTo(p2.x, p2.y);
|
|
78
|
+
return b3.build();
|
|
79
79
|
}
|
|
80
80
|
function markCommands(m2, content, style = {}) {
|
|
81
81
|
const color = style.color ?? MARK_COLOR;
|
|
@@ -94,13 +94,13 @@ function markCommands(m2, content, style = {}) {
|
|
|
94
94
|
case "ellipse":
|
|
95
95
|
return [{ kind: "path", path: ellipsePath(m2.pose), stroke }];
|
|
96
96
|
case "line": {
|
|
97
|
-
const [a4,
|
|
98
|
-
return [{ kind: "path", path: linePath(a4,
|
|
97
|
+
const [a4, b3] = vertices(m2, content);
|
|
98
|
+
return [{ kind: "path", path: linePath(a4, b3), stroke }];
|
|
99
99
|
}
|
|
100
100
|
case "arrow": {
|
|
101
|
-
const [a4,
|
|
101
|
+
const [a4, b3] = vertices(m2, content);
|
|
102
102
|
const marked = { ...stroke, markerEnd: "arrow" };
|
|
103
|
-
const path = linePath(a4,
|
|
103
|
+
const path = linePath(a4, b3);
|
|
104
104
|
return [
|
|
105
105
|
{ kind: "path", path, stroke: marked },
|
|
106
106
|
...markerDrawCommands(path, marked, MARK_WIDTH, void 0)
|
|
@@ -364,10 +364,10 @@ function fracToWorld(f3, content) {
|
|
|
364
364
|
height: f3.h * content.h
|
|
365
365
|
};
|
|
366
366
|
}
|
|
367
|
-
function worldToFrac(
|
|
367
|
+
function worldToFrac(r9, content) {
|
|
368
368
|
const sx = content.w === 0 ? 0 : 1 / content.w;
|
|
369
369
|
const sy = content.h === 0 ? 0 : 1 / content.h;
|
|
370
|
-
return { x:
|
|
370
|
+
return { x: r9.x * sx, y: r9.y * sy, w: r9.width * sx, h: r9.height * sy };
|
|
371
371
|
}
|
|
372
372
|
var DP = 1e4;
|
|
373
373
|
function roundFrac(f3) {
|
|
@@ -524,15 +524,15 @@ function createAnnotationStore(opts) {
|
|
|
524
524
|
return out;
|
|
525
525
|
};
|
|
526
526
|
const all = () => liveTargets().flatMap(marksOn);
|
|
527
|
-
const matches = (a4,
|
|
528
|
-
if (
|
|
529
|
-
if (
|
|
530
|
-
if (
|
|
531
|
-
if (
|
|
527
|
+
const matches = (a4, q2) => {
|
|
528
|
+
if (q2.target !== void 0 && a4.target !== q2.target) return false;
|
|
529
|
+
if (q2.kind !== void 0 && a4.kind !== q2.kind) return false;
|
|
530
|
+
if (q2.status !== void 0 && a4.status !== q2.status) return false;
|
|
531
|
+
if (q2.tags !== void 0) {
|
|
532
532
|
const have = a4.tags ?? [];
|
|
533
|
-
for (const t of
|
|
533
|
+
for (const t of q2.tags) if (!have.includes(t)) return false;
|
|
534
534
|
}
|
|
535
|
-
if (
|
|
535
|
+
if (q2.where && !q2.where(a4)) return false;
|
|
536
536
|
return true;
|
|
537
537
|
};
|
|
538
538
|
const nodeOf = (id) => {
|
|
@@ -549,8 +549,8 @@ function createAnnotationStore(opts) {
|
|
|
549
549
|
const parts = splitId(id);
|
|
550
550
|
return parts ? project(parts.target, parts.node) : void 0;
|
|
551
551
|
},
|
|
552
|
-
query(
|
|
553
|
-
return
|
|
552
|
+
query(q2) {
|
|
553
|
+
return q2 ? all().filter((a4) => matches(a4, q2)) : all();
|
|
554
554
|
},
|
|
555
555
|
hitTest(target, pt, tol = 0) {
|
|
556
556
|
return marksOn(target).filter((a4) => fracContains(a4.frac, pt, tol)).reverse();
|
|
@@ -722,7 +722,7 @@ function fitView(content, pane) {
|
|
|
722
722
|
const zoom = content.w > 0 && content.h > 0 ? Math.min(pane.w / content.w, pane.h / content.h) : 1;
|
|
723
723
|
return { zoom: Number.isFinite(zoom) && zoom > 0 ? zoom : 1, pan: { x: 0, y: 0 } };
|
|
724
724
|
}
|
|
725
|
-
var sameRect = (a4,
|
|
725
|
+
var sameRect = (a4, b3) => a4 !== null && a4.x === b3.x && a4.y === b3.y && a4.w === b3.w && a4.h === b3.h;
|
|
726
726
|
function ToolBridge({ toolId }) {
|
|
727
727
|
const tools = useActiveToolContext();
|
|
728
728
|
const setActive = tools.setActive;
|
|
@@ -1250,7 +1250,7 @@ function Portalled({
|
|
|
1250
1250
|
}
|
|
1251
1251
|
function UndockedSections({ trialId, sections, onDock }) {
|
|
1252
1252
|
if (sections.length === 0) return null;
|
|
1253
|
-
return /* @__PURE__ */ jsx(Fragment, { children: sections.map((
|
|
1253
|
+
return /* @__PURE__ */ jsx(Fragment, { children: sections.map((c9) => /* @__PURE__ */ jsx(Portalled, { trialId, contribution: c9, onDock }, c9.id)) });
|
|
1254
1254
|
}
|
|
1255
1255
|
var NO_OP = () => {
|
|
1256
1256
|
};
|
|
@@ -1296,9 +1296,9 @@ function TrialChrome({
|
|
|
1296
1296
|
const title = record.title ?? instrument.title ?? instrument.name;
|
|
1297
1297
|
const collapsedSections = record.collapsedSections ?? NO_SECTIONS;
|
|
1298
1298
|
const ctx = useMemo(() => {
|
|
1299
|
-
const setZoom = (
|
|
1299
|
+
const setZoom = (z3) => {
|
|
1300
1300
|
if (!view2d) return;
|
|
1301
|
-
updateTrialView(trialId, withZoom(view2d,
|
|
1301
|
+
updateTrialView(trialId, withZoom(view2d, z3));
|
|
1302
1302
|
};
|
|
1303
1303
|
return {
|
|
1304
1304
|
trialId,
|
|
@@ -1384,7 +1384,7 @@ function TrialChrome({
|
|
|
1384
1384
|
),
|
|
1385
1385
|
[instrument, ctx, trialChrome, chrome, suppress, lab.controls]
|
|
1386
1386
|
);
|
|
1387
|
-
const inRegion = (region) => contributions.filter((
|
|
1387
|
+
const inRegion = (region) => contributions.filter((c9) => c9.region === region);
|
|
1388
1388
|
const handleKeyDown = (e) => {
|
|
1389
1389
|
const mod = e.metaKey || e.ctrlKey;
|
|
1390
1390
|
if (!mod) return;
|
|
@@ -1430,7 +1430,7 @@ function TrialChrome({
|
|
|
1430
1430
|
UndockedSections,
|
|
1431
1431
|
{
|
|
1432
1432
|
trialId,
|
|
1433
|
-
sections: inRegion("sidebar").filter((
|
|
1433
|
+
sections: inRegion("sidebar").filter((c9) => undockedIds.includes(c9.id)),
|
|
1434
1434
|
onDock: ctx.dockPanel
|
|
1435
1435
|
}
|
|
1436
1436
|
)
|
|
@@ -1654,9 +1654,9 @@ function TrialRuntime({
|
|
|
1654
1654
|
view: record.view,
|
|
1655
1655
|
setView,
|
|
1656
1656
|
zoom: view2d?.zoom ?? 1,
|
|
1657
|
-
setZoom: (
|
|
1657
|
+
setZoom: (z3) => {
|
|
1658
1658
|
if (!view2d) return;
|
|
1659
|
-
updateTrialView(record.id, withZoom(view2d,
|
|
1659
|
+
updateTrialView(record.id, withZoom(view2d, z3));
|
|
1660
1660
|
},
|
|
1661
1661
|
activeToolId: resolvedToolId,
|
|
1662
1662
|
visibleLayers
|
|
@@ -1700,7 +1700,7 @@ function TrialRuntime({
|
|
|
1700
1700
|
const canvasLayers = useMemo(() => {
|
|
1701
1701
|
if (!instrument.canvas) return [];
|
|
1702
1702
|
const baseLayers = instrument.canvas.layers;
|
|
1703
|
-
const ordered = layerOrder ? [...baseLayers].sort((a4,
|
|
1703
|
+
const ordered = layerOrder ? [...baseLayers].sort((a4, b3) => layerOrder.indexOf(a4.id) - layerOrder.indexOf(b3.id)) : baseLayers;
|
|
1704
1704
|
return ordered.map((layer) => ({
|
|
1705
1705
|
id: layer.id,
|
|
1706
1706
|
visible: layerVisibility[layer.id] !== false,
|
|
@@ -1747,12 +1747,12 @@ function TrialRuntime({
|
|
|
1747
1747
|
render: (ctx) => {
|
|
1748
1748
|
const el = canvasContainerRef.current;
|
|
1749
1749
|
if (!el) return;
|
|
1750
|
-
const
|
|
1750
|
+
const r9 = el.getBoundingClientRect();
|
|
1751
1751
|
ctx.save();
|
|
1752
1752
|
ctx.strokeStyle = fb.ok ? "#3a7" : "#c44";
|
|
1753
1753
|
ctx.lineWidth = 2;
|
|
1754
1754
|
ctx.beginPath();
|
|
1755
|
-
ctx.arc(screen.x -
|
|
1755
|
+
ctx.arc(screen.x - r9.left, screen.y - r9.top, 16, 0, Math.PI * 2);
|
|
1756
1756
|
ctx.stroke();
|
|
1757
1757
|
ctx.restore();
|
|
1758
1758
|
}
|
|
@@ -2012,7 +2012,7 @@ function findOvershoot(bound, items, tolerance = 1) {
|
|
|
2012
2012
|
return worst;
|
|
2013
2013
|
}
|
|
2014
2014
|
function tagAndClasses(el) {
|
|
2015
|
-
return el.tagName.toLowerCase() + [...el.classList].map((
|
|
2015
|
+
return el.tagName.toLowerCase() + [...el.classList].map((c9) => `.${c9}`).join("");
|
|
2016
2016
|
}
|
|
2017
2017
|
function describeElement(el) {
|
|
2018
2018
|
if (el.classList.length > 0) return tagAndClasses(el);
|
|
@@ -2021,8 +2021,8 @@ function describeElement(el) {
|
|
|
2021
2021
|
return up ? `${tagAndClasses(el)} in ${tagAndClasses(up)}` : tagAndClasses(el);
|
|
2022
2022
|
}
|
|
2023
2023
|
function edgesOf(el) {
|
|
2024
|
-
const
|
|
2025
|
-
return { top:
|
|
2024
|
+
const r9 = el.getBoundingClientRect();
|
|
2025
|
+
return { top: r9.top, left: r9.left, bottom: r9.bottom, right: r9.right };
|
|
2026
2026
|
}
|
|
2027
2027
|
function* candidates(root) {
|
|
2028
2028
|
yield { item: root, edges: edgesOf(root) };
|
|
@@ -2033,24 +2033,24 @@ function overflows(el) {
|
|
|
2033
2033
|
}
|
|
2034
2034
|
function explainLabScroll(lab, shellBody) {
|
|
2035
2035
|
if (overflows(shellBody)) {
|
|
2036
|
-
const
|
|
2036
|
+
const r10 = shellBody.getBoundingClientRect();
|
|
2037
2037
|
const bound2 = {
|
|
2038
|
-
top:
|
|
2039
|
-
left:
|
|
2040
|
-
bottom:
|
|
2041
|
-
right:
|
|
2038
|
+
top: r10.top,
|
|
2039
|
+
left: r10.left,
|
|
2040
|
+
bottom: r10.top + shellBody.clientHeight,
|
|
2041
|
+
right: r10.left + shellBody.clientWidth
|
|
2042
2042
|
};
|
|
2043
2043
|
const hit2 = findOvershoot(bound2, candidates(shellBody));
|
|
2044
2044
|
return hit2 ? `.lk-shell-body scrolls: ${describeElement(hit2.item)} reaches ${Math.round(hit2.by)}px past it (${hit2.axis})` : ".lk-shell-body scrolls";
|
|
2045
2045
|
}
|
|
2046
2046
|
const doc = document.scrollingElement ?? document.documentElement;
|
|
2047
2047
|
if (!overflows(doc)) return null;
|
|
2048
|
-
const
|
|
2048
|
+
const r9 = lab.getBoundingClientRect();
|
|
2049
2049
|
const bound = {
|
|
2050
|
-
top:
|
|
2051
|
-
left:
|
|
2052
|
-
bottom:
|
|
2053
|
-
right:
|
|
2050
|
+
top: r9.top,
|
|
2051
|
+
left: r9.left,
|
|
2052
|
+
bottom: r9.top + Math.min(r9.height, doc.clientHeight),
|
|
2053
|
+
right: r9.left + Math.min(r9.width, doc.clientWidth)
|
|
2054
2054
|
};
|
|
2055
2055
|
const hit = findOvershoot(bound, candidates(lab));
|
|
2056
2056
|
return hit ? `the page scrolls: ${describeElement(hit.item)} reaches ${Math.round(hit.by)}px past the lab's box (${hit.axis})` : null;
|
|
@@ -2115,7 +2115,7 @@ function LabHeader({ addTrial: addTrial2 = true }) {
|
|
|
2115
2115
|
}
|
|
2116
2116
|
),
|
|
2117
2117
|
/* @__PURE__ */ jsx(
|
|
2118
|
-
|
|
2118
|
+
r5,
|
|
2119
2119
|
{
|
|
2120
2120
|
className: "lk-lab-header__mode",
|
|
2121
2121
|
ariaLabel: "Color mode",
|
|
@@ -2132,7 +2132,7 @@ function LabHeader({ addTrial: addTrial2 = true }) {
|
|
|
2132
2132
|
function LabPalette({ tools, contributions }) {
|
|
2133
2133
|
const ctx = useLabChromeContext();
|
|
2134
2134
|
const all = labContributions(tools, contributions);
|
|
2135
|
-
return /* @__PURE__ */ jsx(PaletteRegion, { contributions: all.filter((
|
|
2135
|
+
return /* @__PURE__ */ jsx(PaletteRegion, { contributions: all.filter((c9) => c9.region === "palette"), ctx });
|
|
2136
2136
|
}
|
|
2137
2137
|
function query() {
|
|
2138
2138
|
if (typeof window === "undefined" || !window.matchMedia) return null;
|
|
@@ -2431,20 +2431,29 @@ async function openStoredLab({ instruments, defaultInstrument, mode }, storageKe
|
|
|
2431
2431
|
function LabFallback({
|
|
2432
2432
|
title,
|
|
2433
2433
|
mode,
|
|
2434
|
+
density,
|
|
2434
2435
|
pages,
|
|
2435
2436
|
path
|
|
2436
2437
|
}) {
|
|
2437
2438
|
const resolvedMode = useResolvedMode(mode ?? "auto");
|
|
2438
|
-
return /* @__PURE__ */ jsx(
|
|
2439
|
-
|
|
2439
|
+
return /* @__PURE__ */ jsx(
|
|
2440
|
+
ThemeProvider,
|
|
2440
2441
|
{
|
|
2441
|
-
|
|
2442
|
-
mode,
|
|
2443
|
-
|
|
2444
|
-
|
|
2445
|
-
|
|
2442
|
+
theme: interstellarTheme,
|
|
2443
|
+
selection: { mode: resolvedMode, density: density ?? "comfortable" },
|
|
2444
|
+
className: "lk-lab",
|
|
2445
|
+
children: /* @__PURE__ */ jsx(
|
|
2446
|
+
LabShell,
|
|
2447
|
+
{
|
|
2448
|
+
title: title ?? "Labkit",
|
|
2449
|
+
mode,
|
|
2450
|
+
...pages ? { pages } : {},
|
|
2451
|
+
...path !== void 0 ? { path } : {},
|
|
2452
|
+
children: null
|
|
2453
|
+
}
|
|
2454
|
+
)
|
|
2446
2455
|
}
|
|
2447
|
-
)
|
|
2456
|
+
);
|
|
2448
2457
|
}
|
|
2449
2458
|
var NEBULA_SLOTS = [
|
|
2450
2459
|
{ cx: "18%", cy: "30%", sx: "60%", sy: "80%", stop: "70%" },
|
|
@@ -2454,9 +2463,9 @@ var NEBULA_SLOTS = [
|
|
|
2454
2463
|
{ cx: "85%", cy: "18%", sx: "55%", sy: "80%", stop: "70%" }
|
|
2455
2464
|
];
|
|
2456
2465
|
function buildNebula(colors) {
|
|
2457
|
-
const blobs = colors.map((
|
|
2466
|
+
const blobs = colors.map((c9, i3) => {
|
|
2458
2467
|
const p2 = NEBULA_SLOTS[i3 % NEBULA_SLOTS.length];
|
|
2459
|
-
return `radial-gradient(ellipse ${p2.sx} ${p2.sy} at ${p2.cx} ${p2.cy}, color-mix(in srgb, ${
|
|
2468
|
+
return `radial-gradient(ellipse ${p2.sx} ${p2.sy} at ${p2.cx} ${p2.cy}, color-mix(in srgb, ${c9} 22%, transparent), transparent ${p2.stop})`;
|
|
2460
2469
|
});
|
|
2461
2470
|
blobs.push("radial-gradient(ellipse at center, #0a0a18 0%, #02020a 100%)");
|
|
2462
2471
|
return blobs.join(", ");
|
|
@@ -2476,7 +2485,7 @@ function LabPanes({
|
|
|
2476
2485
|
void 0,
|
|
2477
2486
|
{ scope: "lab" }
|
|
2478
2487
|
);
|
|
2479
|
-
const main = contributions.some((
|
|
2488
|
+
const main = contributions.some((c9) => c9.region === "aside") ? /* @__PURE__ */ jsx(
|
|
2480
2489
|
Split,
|
|
2481
2490
|
{
|
|
2482
2491
|
className: "lk-lab__panes",
|
|
@@ -2494,7 +2503,7 @@ function LabPanes({
|
|
|
2494
2503
|
children
|
|
2495
2504
|
}
|
|
2496
2505
|
) : children;
|
|
2497
|
-
if (!contributions.some((
|
|
2506
|
+
if (!contributions.some((c9) => c9.region === "sidebar")) return main;
|
|
2498
2507
|
return /* @__PURE__ */ jsx(
|
|
2499
2508
|
Split,
|
|
2500
2509
|
{
|
|
@@ -2524,13 +2533,23 @@ function Lab(props) {
|
|
|
2524
2533
|
);
|
|
2525
2534
|
if (!opened) {
|
|
2526
2535
|
if (props.fallback !== void 0) return props.fallback;
|
|
2527
|
-
return /* @__PURE__ */ jsx(
|
|
2536
|
+
return /* @__PURE__ */ jsx(
|
|
2537
|
+
LabFallback,
|
|
2538
|
+
{
|
|
2539
|
+
title: props.title,
|
|
2540
|
+
mode: props.mode,
|
|
2541
|
+
density: props.density,
|
|
2542
|
+
pages: props.pages,
|
|
2543
|
+
path: props.path
|
|
2544
|
+
}
|
|
2545
|
+
);
|
|
2528
2546
|
}
|
|
2529
2547
|
return /* @__PURE__ */ jsx(LabRuntime, { ...props, opened });
|
|
2530
2548
|
}
|
|
2531
2549
|
function LabRuntime({
|
|
2532
2550
|
instruments,
|
|
2533
2551
|
mode,
|
|
2552
|
+
density,
|
|
2534
2553
|
nebula,
|
|
2535
2554
|
title,
|
|
2536
2555
|
pages,
|
|
@@ -2569,17 +2588,17 @@ function LabRuntime({
|
|
|
2569
2588
|
const bufferRef = useRef({ w: 0, h: 0 });
|
|
2570
2589
|
const surfaceRef = useRef(null);
|
|
2571
2590
|
const onFrame = useCallback((frame) => {
|
|
2572
|
-
const canvases = [ownUnderRef.current, ownOverRef.current].filter((
|
|
2591
|
+
const canvases = [ownUnderRef.current, ownOverRef.current].filter((c9) => c9 !== null);
|
|
2573
2592
|
if (canvases.length === 0) return;
|
|
2574
2593
|
const w3 = Math.round(frame.size.width * frame.dpr);
|
|
2575
2594
|
const h2 = Math.round(frame.size.height * frame.dpr);
|
|
2576
2595
|
if (bufferRef.current.w !== w3 || bufferRef.current.h !== h2) {
|
|
2577
2596
|
bufferRef.current = { w: w3, h: h2 };
|
|
2578
|
-
for (const
|
|
2579
|
-
|
|
2580
|
-
|
|
2581
|
-
|
|
2582
|
-
|
|
2597
|
+
for (const c9 of canvases) {
|
|
2598
|
+
c9.width = w3;
|
|
2599
|
+
c9.height = h2;
|
|
2600
|
+
c9.style.width = `${frame.size.width}px`;
|
|
2601
|
+
c9.style.height = `${frame.size.height}px`;
|
|
2583
2602
|
}
|
|
2584
2603
|
surfaceRef.current?.invalidateAll();
|
|
2585
2604
|
return;
|
|
@@ -2643,8 +2662,8 @@ function LabRuntime({
|
|
|
2643
2662
|
() => labContributions([...annotates ? ANNOTATION_TOOLS : [], ...tools ?? []], labChrome),
|
|
2644
2663
|
[annotates, tools, labChrome]
|
|
2645
2664
|
);
|
|
2646
|
-
const hasFooterChrome = labChromeAll.some((
|
|
2647
|
-
const hasPaneChrome = labChromeAll.some((
|
|
2665
|
+
const hasFooterChrome = labChromeAll.some((c9) => c9.region === "footer");
|
|
2666
|
+
const hasPaneChrome = labChromeAll.some((c9) => c9.region === "sidebar" || c9.region === "aside");
|
|
2648
2667
|
useEffect(() => {
|
|
2649
2668
|
if (mode && mode !== store.getState().mode) {
|
|
2650
2669
|
store.getState().setMode(mode);
|
|
@@ -2748,7 +2767,7 @@ function LabRuntime({
|
|
|
2748
2767
|
ThemeProvider,
|
|
2749
2768
|
{
|
|
2750
2769
|
theme: interstellarTheme,
|
|
2751
|
-
selection: { mode: resolvedMode },
|
|
2770
|
+
selection: { mode: resolvedMode, density: density ?? "comfortable" },
|
|
2752
2771
|
className: "lk-lab",
|
|
2753
2772
|
style: backdropStyle,
|
|
2754
2773
|
children: /* @__PURE__ */ jsx(
|
|
@@ -2919,7 +2938,7 @@ function ButtonsAndToggles() {
|
|
|
2919
2938
|
/* @__PURE__ */ jsx(Cell, { label: "Checkbox, Switch", children: /* @__PURE__ */ jsxs("div", { className: "lk-specimen__row", children: [
|
|
2920
2939
|
/* @__PURE__ */ jsx(o2, { isSelected: snap, onChange: setSnap, children: "Snap to grid" }),
|
|
2921
2940
|
/* @__PURE__ */ jsx(o2, { isIndeterminate: true, children: "Mixed" }),
|
|
2922
|
-
/* @__PURE__ */ jsx(
|
|
2941
|
+
/* @__PURE__ */ jsx(a3, { isSelected: wifi, onChange: setWifi, children: "Wifi" })
|
|
2923
2942
|
] }) }),
|
|
2924
2943
|
/* @__PURE__ */ jsx(Cell, { label: "RadioGroup", children: /* @__PURE__ */ jsxs(l3, { label: "Snap mode", orientation: "horizontal", defaultValue: "grid", children: [
|
|
2925
2944
|
/* @__PURE__ */ jsx(u3, { value: "off", children: "Off" }),
|
|
@@ -2928,7 +2947,7 @@ function ButtonsAndToggles() {
|
|
|
2928
2947
|
] }) }),
|
|
2929
2948
|
/* @__PURE__ */ jsxs(Cell, { label: "ToggleBar", children: [
|
|
2930
2949
|
/* @__PURE__ */ jsx(
|
|
2931
|
-
|
|
2950
|
+
r5,
|
|
2932
2951
|
{
|
|
2933
2952
|
ariaLabel: "Align",
|
|
2934
2953
|
value: align,
|
|
@@ -2941,7 +2960,7 @@ function ButtonsAndToggles() {
|
|
|
2941
2960
|
}
|
|
2942
2961
|
),
|
|
2943
2962
|
/* @__PURE__ */ jsx(
|
|
2944
|
-
|
|
2963
|
+
r5,
|
|
2945
2964
|
{
|
|
2946
2965
|
ariaLabel: "Align, flat",
|
|
2947
2966
|
variant: "flat",
|
|
@@ -2997,9 +3016,9 @@ function ButtonsAndToggles() {
|
|
|
2997
3016
|
] }) }),
|
|
2998
3017
|
/* @__PURE__ */ jsx(Cell, { label: "Tabs", children: /* @__PURE__ */ jsxs(o5, { children: [
|
|
2999
3018
|
/* @__PURE__ */ jsxs(s5, { "aria-label": "Sections", children: [
|
|
3000
|
-
/* @__PURE__ */ jsx(
|
|
3001
|
-
/* @__PURE__ */ jsx(
|
|
3002
|
-
/* @__PURE__ */ jsx(
|
|
3019
|
+
/* @__PURE__ */ jsx(c7, { id: "props", children: "Props" }),
|
|
3020
|
+
/* @__PURE__ */ jsx(c7, { id: "events", children: "Events" }),
|
|
3021
|
+
/* @__PURE__ */ jsx(c7, { id: "snapshot", children: "Snapshot" })
|
|
3003
3022
|
] }),
|
|
3004
3023
|
/* @__PURE__ */ jsx(l6, { id: "props", children: "Props panel." }),
|
|
3005
3024
|
/* @__PURE__ */ jsx(l6, { id: "events", children: "Events panel." }),
|
|
@@ -3042,9 +3061,9 @@ function FieldsAndPickers() {
|
|
|
3042
3061
|
/* @__PURE__ */ jsx(u2, { label: "Required", isInvalid: true, errorMessage: "Name is required." })
|
|
3043
3062
|
] }),
|
|
3044
3063
|
/* @__PURE__ */ jsxs(Cell, { label: "NumberField, Select, ComboBox", children: [
|
|
3045
|
-
/* @__PURE__ */ jsx(
|
|
3064
|
+
/* @__PURE__ */ jsx(g, { label: "Opacity", minValue: 0, maxValue: 100, step: 5, defaultValue: 80 }),
|
|
3046
3065
|
/* @__PURE__ */ jsx(
|
|
3047
|
-
|
|
3066
|
+
b2,
|
|
3048
3067
|
{
|
|
3049
3068
|
label: "Color",
|
|
3050
3069
|
defaultSelectedKey: "g",
|
|
@@ -3080,7 +3099,7 @@ function FieldsAndPickers() {
|
|
|
3080
3099
|
}
|
|
3081
3100
|
),
|
|
3082
3101
|
/* @__PURE__ */ jsx(
|
|
3083
|
-
|
|
3102
|
+
b3,
|
|
3084
3103
|
{
|
|
3085
3104
|
ariaLabel: "Pair",
|
|
3086
3105
|
min: 0,
|
|
@@ -3095,18 +3114,18 @@ function FieldsAndPickers() {
|
|
|
3095
3114
|
] }),
|
|
3096
3115
|
/* @__PURE__ */ jsxs(Cell, { label: "DetentSlider, InlineRange", children: [
|
|
3097
3116
|
/* @__PURE__ */ jsx(
|
|
3098
|
-
|
|
3117
|
+
c8,
|
|
3099
3118
|
{
|
|
3100
3119
|
items: [0.25, 0.5, 1, 2, 4],
|
|
3101
3120
|
value: rate,
|
|
3102
3121
|
onChange: setRate,
|
|
3103
|
-
formatLabel: (
|
|
3122
|
+
formatLabel: (r9) => `${r9}\xD7`,
|
|
3104
3123
|
labels: "all",
|
|
3105
3124
|
ariaLabel: "Playback rate"
|
|
3106
3125
|
}
|
|
3107
3126
|
),
|
|
3108
3127
|
/* @__PURE__ */ jsx(
|
|
3109
|
-
|
|
3128
|
+
r3,
|
|
3110
3129
|
{
|
|
3111
3130
|
"aria-label": "Width",
|
|
3112
3131
|
min: 0,
|
|
@@ -3150,9 +3169,9 @@ function PanelsAndRows() {
|
|
|
3150
3169
|
]);
|
|
3151
3170
|
const [panelCollapsed, setPanelCollapsed] = useState(false);
|
|
3152
3171
|
return /* @__PURE__ */ jsxs(Section, { title: "Panels & property rows", children: [
|
|
3153
|
-
/* @__PURE__ */ jsx(Cell, { label: "PropertyPanel", children: /* @__PURE__ */ jsx(
|
|
3172
|
+
/* @__PURE__ */ jsx(Cell, { label: "PropertyPanel", children: /* @__PURE__ */ jsx(D, { title: "Shape", children: /* @__PURE__ */ jsxs(O, { children: [
|
|
3154
3173
|
/* @__PURE__ */ jsx(
|
|
3155
|
-
|
|
3174
|
+
I2,
|
|
3156
3175
|
{
|
|
3157
3176
|
label: "Opacity",
|
|
3158
3177
|
value: opacity,
|
|
@@ -3163,7 +3182,7 @@ function PanelsAndRows() {
|
|
|
3163
3182
|
}
|
|
3164
3183
|
),
|
|
3165
3184
|
/* @__PURE__ */ jsx(
|
|
3166
|
-
|
|
3185
|
+
I2,
|
|
3167
3186
|
{
|
|
3168
3187
|
label: "Radius",
|
|
3169
3188
|
value: radius,
|
|
@@ -3174,7 +3193,7 @@ function PanelsAndRows() {
|
|
|
3174
3193
|
}
|
|
3175
3194
|
),
|
|
3176
3195
|
/* @__PURE__ */ jsx(
|
|
3177
|
-
|
|
3196
|
+
z2,
|
|
3178
3197
|
{
|
|
3179
3198
|
label: "Fill",
|
|
3180
3199
|
value: fill,
|
|
@@ -3183,10 +3202,10 @@ function PanelsAndRows() {
|
|
|
3183
3202
|
onAlphaChange: setAlpha
|
|
3184
3203
|
}
|
|
3185
3204
|
),
|
|
3186
|
-
/* @__PURE__ */ jsx(
|
|
3187
|
-
/* @__PURE__ */ jsx(
|
|
3205
|
+
/* @__PURE__ */ jsx(z2, { label: "Stroke", value: stroke, onChange: setStroke }),
|
|
3206
|
+
/* @__PURE__ */ jsx(U, { label: "Count", value: count, min: 0, max: 100, step: 1, onChange: setCount }),
|
|
3188
3207
|
/* @__PURE__ */ jsx(
|
|
3189
|
-
|
|
3208
|
+
W,
|
|
3190
3209
|
{
|
|
3191
3210
|
label: "Line cap",
|
|
3192
3211
|
value: cap,
|
|
@@ -3198,7 +3217,7 @@ function PanelsAndRows() {
|
|
|
3198
3217
|
}
|
|
3199
3218
|
),
|
|
3200
3219
|
/* @__PURE__ */ jsx(
|
|
3201
|
-
|
|
3220
|
+
G2,
|
|
3202
3221
|
{
|
|
3203
3222
|
label: "Align",
|
|
3204
3223
|
value: side,
|
|
@@ -3210,9 +3229,9 @@ function PanelsAndRows() {
|
|
|
3210
3229
|
]
|
|
3211
3230
|
}
|
|
3212
3231
|
),
|
|
3213
|
-
/* @__PURE__ */ jsx(
|
|
3214
|
-
/* @__PURE__ */ jsx(
|
|
3215
|
-
/* @__PURE__ */ jsx(
|
|
3232
|
+
/* @__PURE__ */ jsx(H, { label: "Label", value: label, onChange: setLabel }),
|
|
3233
|
+
/* @__PURE__ */ jsx(B, { label: "Visible", value: visible, onChange: setVisible }),
|
|
3234
|
+
/* @__PURE__ */ jsx(X, { title: "Bevel", defaultCollapsed: true, children: /* @__PURE__ */ jsx(I2, { label: "Rings", value: 32, min: 4, max: 96, step: 1, onChange: () => {
|
|
3216
3235
|
} }) })
|
|
3217
3236
|
] }) }) }),
|
|
3218
3237
|
/* @__PURE__ */ jsx(Cell, { label: "PrefsForm", children: /* @__PURE__ */ jsx(
|
|
@@ -3260,7 +3279,7 @@ function OverlaysAndFeedback() {
|
|
|
3260
3279
|
] }),
|
|
3261
3280
|
/* @__PURE__ */ jsx("button", { type: "button", ref: calloutAnchor, onClick: () => setCalloutOpen(true), children: "Callout" }),
|
|
3262
3281
|
/* @__PURE__ */ jsx(
|
|
3263
|
-
|
|
3282
|
+
g2,
|
|
3264
3283
|
{
|
|
3265
3284
|
triggerRef: calloutAnchor,
|
|
3266
3285
|
isOpen: calloutOpen,
|
|
@@ -3291,7 +3310,7 @@ function OverlaysAndFeedback() {
|
|
|
3291
3310
|
/* @__PURE__ */ jsx(S4, { queue: toasts, placement: "bottom-right" })
|
|
3292
3311
|
] }) }),
|
|
3293
3312
|
/* @__PURE__ */ jsx(Cell, { label: "Powerline", children: /* @__PURE__ */ jsx(
|
|
3294
|
-
|
|
3313
|
+
r9,
|
|
3295
3314
|
{
|
|
3296
3315
|
variant: "solid",
|
|
3297
3316
|
size: "sm",
|
|
@@ -3303,10 +3322,10 @@ function OverlaysAndFeedback() {
|
|
|
3303
3322
|
}
|
|
3304
3323
|
) }),
|
|
3305
3324
|
/* @__PURE__ */ jsx(Cell, { label: "StatusBar", children: /* @__PURE__ */ jsxs(n6, { ariaLabel: "Editor status", children: [
|
|
3306
|
-
/* @__PURE__ */ jsx(
|
|
3307
|
-
/* @__PURE__ */ jsx(
|
|
3325
|
+
/* @__PURE__ */ jsx(r10, { children: "tool: select" }),
|
|
3326
|
+
/* @__PURE__ */ jsx(r10, { children: "sel: 3" }),
|
|
3308
3327
|
/* @__PURE__ */ jsx(i5, {}),
|
|
3309
|
-
/* @__PURE__ */ jsx(
|
|
3328
|
+
/* @__PURE__ */ jsx(r10, { muted: true, children: "0.7.0" })
|
|
3310
3329
|
] }) })
|
|
3311
3330
|
] });
|
|
3312
3331
|
}
|
|
@@ -3332,8 +3351,8 @@ function ListsAndData() {
|
|
|
3332
3351
|
{ id: "3", name: "danger", count: 2 }
|
|
3333
3352
|
],
|
|
3334
3353
|
columns: [
|
|
3335
|
-
{ id: "name", header: "name", accessor: (
|
|
3336
|
-
{ id: "count", header: "count", accessor: (
|
|
3354
|
+
{ id: "name", header: "name", accessor: (r9) => r9.name, sortable: true },
|
|
3355
|
+
{ id: "count", header: "count", accessor: (r9) => r9.count, sortable: true }
|
|
3337
3356
|
],
|
|
3338
3357
|
defaultSort: { columnId: "name", direction: "asc" }
|
|
3339
3358
|
}
|
|
@@ -3356,14 +3375,14 @@ function ToolChrome() {
|
|
|
3356
3375
|
},
|
|
3357
3376
|
id
|
|
3358
3377
|
)) }) }),
|
|
3359
|
-
/* @__PURE__ */ jsx(Cell, { label: "ToolOptionsBar", children: /* @__PURE__ */ jsxs(
|
|
3378
|
+
/* @__PURE__ */ jsx(Cell, { label: "ToolOptionsBar", children: /* @__PURE__ */ jsxs(c5, { label: "Text", children: [
|
|
3360
3379
|
/* @__PURE__ */ jsx(a5, { size: "sm", variant: "ghost", iconOnly: true, ariaLabel: "Bold", children: "B" }),
|
|
3361
3380
|
/* @__PURE__ */ jsx(a5, { size: "sm", variant: "ghost", iconOnly: true, ariaLabel: "Italic", children: "I" })
|
|
3362
3381
|
] }) }),
|
|
3363
3382
|
/* @__PURE__ */ jsx(Cell, { label: "ResizeHandle", children: /* @__PURE__ */ jsxs("div", { className: "lk-specimen__box", children: [
|
|
3364
3383
|
/* @__PURE__ */ jsx("div", { className: "lk-specimen__box-main", children: "content" }),
|
|
3365
3384
|
/* @__PURE__ */ jsx(
|
|
3366
|
-
|
|
3385
|
+
c6,
|
|
3367
3386
|
{
|
|
3368
3387
|
value: paneWidth,
|
|
3369
3388
|
min: 100,
|
|
@@ -3472,7 +3491,7 @@ function EditorsAndPlots() {
|
|
|
3472
3491
|
}
|
|
3473
3492
|
) }),
|
|
3474
3493
|
/* @__PURE__ */ jsx(Cell, { label: "BandEditor", wide: true, children: /* @__PURE__ */ jsx(
|
|
3475
|
-
|
|
3494
|
+
k3,
|
|
3476
3495
|
{
|
|
3477
3496
|
min: 1 / 64,
|
|
3478
3497
|
max: 1 / 2,
|
|
@@ -3482,7 +3501,7 @@ function EditorsAndPlots() {
|
|
|
3482
3501
|
onChange: setBands,
|
|
3483
3502
|
selectedIndex: band,
|
|
3484
3503
|
onSelect: setBand,
|
|
3485
|
-
renderBand: (
|
|
3504
|
+
renderBand: (b3) => b3.data.name,
|
|
3486
3505
|
ticks: [1 / 24, 1 / 12, 1 / 6].map((at) => ({ at, label: `1/${Math.round(1 / at)}` }))
|
|
3487
3506
|
}
|
|
3488
3507
|
) }),
|