@weasel-js/ui 1.7.1 → 1.7.3
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/chunks/{BandEditor-Dd0egAgE.js → BandEditor-B4jUAHQ8.js} +13 -13
- package/dist/chunks/BandEditor-B4jUAHQ8.js.map +1 -0
- package/dist/chunks/{ColorField-BLs9fbeq.js → ColorField-BwlelY26.js} +4 -4
- package/dist/chunks/ColorField-BwlelY26.js.map +1 -0
- package/dist/chunks/{ComboBox-CuTLRmUg.js → ComboBox-DKln_mOd.js} +11 -11
- package/dist/chunks/ComboBox-DKln_mOd.js.map +1 -0
- package/dist/chunks/{CurveEditor-jVBEqqdv.js → CurveEditor-0EE00D6s.js} +2 -2
- package/dist/chunks/{CurveEditor-jVBEqqdv.js.map → CurveEditor-0EE00D6s.js.map} +1 -1
- package/dist/chunks/{DataGrid-BklgBqS0.js → DataGrid-CmHJe57v.js} +22 -17
- package/dist/chunks/DataGrid-CmHJe57v.js.map +1 -0
- package/dist/chunks/DetailList-BpU50XVe.js +54 -0
- package/dist/chunks/DetailList-BpU50XVe.js.map +1 -0
- package/dist/chunks/{DetentSlider-Bh7EpMqT.js → DetentSlider-DNTAk8xP.js} +2 -2
- package/dist/chunks/{DetentSlider-Bh7EpMqT.js.map → DetentSlider-DNTAk8xP.js.map} +1 -1
- package/dist/chunks/{FallthroughDiagram-C7BUe8eU.js → FallthroughDiagram-CS1IhQaU.js} +14 -14
- package/dist/chunks/FallthroughDiagram-CS1IhQaU.js.map +1 -0
- package/dist/chunks/{Field-DsBlnFKf.js → Field-DiX_WByH.js} +2 -2
- package/dist/chunks/{Field-DsBlnFKf.js.map → Field-DiX_WByH.js.map} +1 -1
- package/dist/chunks/{FillStrokeSwatch-CgsYQgew.js → FillStrokeSwatch-C4h3rUFM.js} +2 -2
- package/dist/chunks/FillStrokeSwatch-C4h3rUFM.js.map +1 -0
- package/dist/chunks/{FontFamilySelect-CGJ5OIOy.js → FontFamilySelect-DEvMXyZd.js} +2 -2
- package/dist/chunks/{FontFamilySelect-CGJ5OIOy.js.map → FontFamilySelect-DEvMXyZd.js.map} +1 -1
- package/dist/chunks/{FontWeightSelect-RbcXYJPS.js → FontWeightSelect-BLQ_LMJF.js} +2 -2
- package/dist/chunks/{FontWeightSelect-RbcXYJPS.js.map → FontWeightSelect-BLQ_LMJF.js.map} +1 -1
- package/dist/chunks/{GradientEditor-DypXzMc-.js → GradientEditor-DD2OjQtn.js} +4 -4
- package/dist/chunks/{GradientEditor-DypXzMc-.js.map → GradientEditor-DD2OjQtn.js.map} +1 -1
- package/dist/chunks/{InlineRange-P01ABSzo.js → InlineRange-DPjIsJB3.js} +3 -3
- package/dist/chunks/InlineRange-DPjIsJB3.js.map +1 -0
- package/dist/chunks/{Input-CzwvCZs_.js → Input-D7SDKbST.js} +2 -2
- package/dist/chunks/{Input-CzwvCZs_.js.map → Input-D7SDKbST.js.map} +1 -1
- package/dist/chunks/{Jog-DfNUYejm.js → Jog-BrkzdGV2.js} +6 -6
- package/dist/chunks/Jog-BrkzdGV2.js.map +1 -0
- package/dist/chunks/{LayerList-CsDqwYh-.js → LayerList-BqeWFuGc.js} +3 -3
- package/dist/chunks/{LayerList-CsDqwYh-.js.map → LayerList-BqeWFuGc.js.map} +1 -1
- package/dist/chunks/{ListEditor-BnGzqERm.js → ListEditor-OQDzG4A5.js} +2 -2
- package/dist/chunks/{ListEditor-BnGzqERm.js.map → ListEditor-OQDzG4A5.js.map} +1 -1
- package/dist/chunks/{MenuButton-L9f5vido.js → MenuButton-TAFg88Lp.js} +2 -2
- package/dist/chunks/{MenuButton-L9f5vido.js.map → MenuButton-TAFg88Lp.js.map} +1 -1
- package/dist/chunks/{MeshEditor-GbqqiPk8.js → MeshEditor-DWpvg8H6.js} +2 -2
- package/dist/chunks/{MeshEditor-GbqqiPk8.js.map → MeshEditor-DWpvg8H6.js.map} +1 -1
- package/dist/chunks/{NumberField-DLXXgh48.js → NumberField-DS0WSiin.js} +7 -7
- package/dist/chunks/NumberField-DS0WSiin.js.map +1 -0
- package/dist/chunks/{PaintField-C0hoXc0Y.js → PaintField-BdmQM53v.js} +2 -2
- package/dist/chunks/{PaintField-C0hoXc0Y.js.map → PaintField-BdmQM53v.js.map} +1 -1
- package/dist/chunks/{PaintInput-jQRxM95Y.js → PaintInput-DaQMeBsI.js} +4 -4
- package/dist/chunks/{PaintInput-jQRxM95Y.js.map → PaintInput-DaQMeBsI.js.map} +1 -1
- package/dist/chunks/{PatternPicker-CaMYXzhF.js → PatternPicker-B3HcMZWg.js} +2 -2
- package/dist/chunks/{PatternPicker-CaMYXzhF.js.map → PatternPicker-B3HcMZWg.js.map} +1 -1
- package/dist/chunks/{Plot2D-BHNbgCAl.js → Plot2D-BrvQS0dh.js} +7 -7
- package/dist/chunks/Plot2D-BrvQS0dh.js.map +1 -0
- package/dist/chunks/{PointPlotter-BZ_vk6gV.js → PointPlotter-BBXpQ_QD.js} +2 -2
- package/dist/chunks/{PointPlotter-BZ_vk6gV.js.map → PointPlotter-BBXpQ_QD.js.map} +1 -1
- package/dist/chunks/{Prefs-CkyldX-e.js → Prefs-BnVEyfWO.js} +76 -66
- package/dist/chunks/Prefs-BnVEyfWO.js.map +1 -0
- package/dist/chunks/{Properties-D15c8NP-.js → Properties-BoG2MMHR.js} +24 -24
- package/dist/chunks/{Properties-D15c8NP-.js.map → Properties-BoG2MMHR.js.map} +1 -1
- package/dist/chunks/{PropertyField-CV_Gw57S.js → PropertyField-PMrqBA0n.js} +243 -186
- package/dist/chunks/PropertyField-PMrqBA0n.js.map +1 -0
- package/dist/chunks/{RadioGroup-4dbzqvGy.js → RadioGroup-B70_M-gT.js} +2 -2
- package/dist/chunks/{RadioGroup-4dbzqvGy.js.map → RadioGroup-B70_M-gT.js.map} +1 -1
- package/dist/chunks/{RangeSlider-BxokZViJ.js → RangeSlider-DO5TZVk7.js} +8 -8
- package/dist/chunks/RangeSlider-DO5TZVk7.js.map +1 -0
- package/dist/chunks/{Select-BppLsJTz.js → Select-ouV8O6cp.js} +19 -19
- package/dist/chunks/Select-ouV8O6cp.js.map +1 -0
- package/dist/chunks/{SelectionPanel-Cm1qu-ZX.js → SelectionPanel-COZ6z9_P.js} +2 -2
- package/dist/chunks/{SelectionPanel-Cm1qu-ZX.js.map → SelectionPanel-COZ6z9_P.js.map} +1 -1
- package/dist/chunks/{Slider-Cl5RCeZ7.js → Slider-DSrlMEq8.js} +19 -19
- package/dist/chunks/Slider-DSrlMEq8.js.map +1 -0
- package/dist/chunks/{StatusBar-Ca9Dvhhq.js → StatusBar-BEOfOX0D.js} +6 -6
- package/dist/chunks/StatusBar-BEOfOX0D.js.map +1 -0
- package/dist/chunks/{SwatchStrip-Cw0l8Om7.js → SwatchStrip-Bi9iPLoh.js} +2 -2
- package/dist/chunks/{SwatchStrip-Cw0l8Om7.js.map → SwatchStrip-Bi9iPLoh.js.map} +1 -1
- package/dist/chunks/{Timeline-pqnYk5cV.js → Timeline-sMCH2fah.js} +99 -84
- package/dist/chunks/Timeline-sMCH2fah.js.map +1 -0
- package/dist/chunks/{TokenPanel-DAkL6vwQ.js → TokenPanel-WtKGY2Db.js} +29 -29
- package/dist/chunks/TokenPanel-WtKGY2Db.js.map +1 -0
- package/dist/chunks/{ToolOptionsBar-COsTJ1cu.js → ToolOptionsBar-BJKwnemU.js} +2 -2
- package/dist/chunks/{ToolOptionsBar-COsTJ1cu.js.map → ToolOptionsBar-BJKwnemU.js.map} +1 -1
- package/dist/chunks/{createKeyframeLayer-BTa4LyJE.js → createKeyframeLayer-DSVf13Su.js} +2 -2
- package/dist/chunks/{createKeyframeLayer-BTa4LyJE.js.map → createKeyframeLayer-DSVf13Su.js.map} +1 -1
- package/dist/chunks/field.module-B27pWv0i.js +15 -0
- package/dist/chunks/{field.module-Bh7BTKMh.js.map → field.module-B27pWv0i.js.map} +1 -1
- package/dist/chunks/{model-B1-gMBIW.js → model-B6zuQg6b.js} +2 -2
- package/dist/chunks/{model-B1-gMBIW.js.map → model-B6zuQg6b.js.map} +1 -1
- package/dist/components/BandEditor/index.js +1 -1
- package/dist/components/ColorField/index.js +1 -1
- package/dist/components/ComboBox/index.js +1 -1
- package/dist/components/CurveEditor/index.js +2 -2
- package/dist/components/DataGrid/DataGrid.d.ts +3 -0
- package/dist/components/DataGrid/DataGrid.d.ts.map +1 -1
- package/dist/components/DataGrid/index.js +1 -1
- package/dist/components/DetailList/DetailList.d.ts +1 -1
- package/dist/components/DetailList/DetailList.d.ts.map +1 -1
- package/dist/components/DetailList/index.js +1 -1
- package/dist/components/DetentSlider/index.js +1 -1
- package/dist/components/FallthroughDiagram/index.js +1 -1
- package/dist/components/Field/index.js +1 -1
- package/dist/components/FillStrokeSwatch/FillStrokeSwatch.d.ts +5 -2
- package/dist/components/FillStrokeSwatch/FillStrokeSwatch.d.ts.map +1 -1
- package/dist/components/FillStrokeSwatch/index.js +1 -1
- package/dist/components/FontFamilySelect/index.js +1 -1
- package/dist/components/FontWeightSelect/index.js +1 -1
- package/dist/components/GradientEditor/index.js +1 -1
- package/dist/components/InlineRange/index.js +1 -1
- package/dist/components/Input/index.js +1 -1
- package/dist/components/Jog/index.js +1 -1
- package/dist/components/LayerList/index.js +1 -1
- package/dist/components/ListEditor/index.js +1 -1
- package/dist/components/MenuButton/index.js +1 -1
- package/dist/components/MeshEditor/index.js +1 -1
- package/dist/components/NumberField/index.js +1 -1
- package/dist/components/PaintField/index.js +1 -1
- package/dist/components/PaintInput/index.js +1 -1
- package/dist/components/PatternPicker/index.js +1 -1
- package/dist/components/Plot2D/index.js +1 -1
- package/dist/components/PointPlotter/index.js +1 -1
- package/dist/components/Prefs/PrefsForm.d.ts +14 -0
- package/dist/components/Prefs/PrefsForm.d.ts.map +1 -1
- package/dist/components/Prefs/PrefsRow.d.ts +4 -0
- package/dist/components/Prefs/PrefsRow.d.ts.map +1 -1
- package/dist/components/Prefs/index.js +1 -1
- package/dist/components/Properties/PropertyField.d.ts.map +1 -1
- package/dist/components/Properties/PropertyPanel.d.ts +18 -1
- package/dist/components/Properties/PropertyPanel.d.ts.map +1 -1
- package/dist/components/Properties/index.d.ts +2 -2
- package/dist/components/Properties/index.d.ts.map +1 -1
- package/dist/components/Properties/index.js +3 -3
- package/dist/components/RadioGroup/index.js +1 -1
- package/dist/components/RangeSlider/index.js +1 -1
- package/dist/components/Select/index.js +1 -1
- package/dist/components/SelectionPanel/index.js +2 -2
- package/dist/components/Slider/index.js +1 -1
- package/dist/components/StatusBar/StatusBar.d.ts +1 -1
- package/dist/components/StatusBar/index.js +1 -1
- package/dist/components/SwatchStrip/index.js +1 -1
- package/dist/components/Timeline/Transport.d.ts.map +1 -1
- package/dist/components/Timeline/index.js +1 -1
- package/dist/components/TokenPanel/index.js +1 -1
- package/dist/components/ToolOptionsBar/index.js +1 -1
- package/dist/index.js +75 -75
- package/dist/index.js.map +1 -1
- package/dist/style.css +1 -1
- package/package.json +9 -9
- package/dist/chunks/BandEditor-Dd0egAgE.js.map +0 -1
- package/dist/chunks/ColorField-BLs9fbeq.js.map +0 -1
- package/dist/chunks/ComboBox-CuTLRmUg.js.map +0 -1
- package/dist/chunks/DataGrid-BklgBqS0.js.map +0 -1
- package/dist/chunks/DetailList-DFtqdOJj.js +0 -52
- package/dist/chunks/DetailList-DFtqdOJj.js.map +0 -1
- package/dist/chunks/FallthroughDiagram-C7BUe8eU.js.map +0 -1
- package/dist/chunks/FillStrokeSwatch-CgsYQgew.js.map +0 -1
- package/dist/chunks/InlineRange-P01ABSzo.js.map +0 -1
- package/dist/chunks/Jog-DfNUYejm.js.map +0 -1
- package/dist/chunks/NumberField-DLXXgh48.js.map +0 -1
- package/dist/chunks/Plot2D-BHNbgCAl.js.map +0 -1
- package/dist/chunks/Prefs-CkyldX-e.js.map +0 -1
- package/dist/chunks/PropertyField-CV_Gw57S.js.map +0 -1
- package/dist/chunks/RangeSlider-BxokZViJ.js.map +0 -1
- package/dist/chunks/Select-BppLsJTz.js.map +0 -1
- package/dist/chunks/Slider-Cl5RCeZ7.js.map +0 -1
- package/dist/chunks/StatusBar-Ca9Dvhhq.js.map +0 -1
- package/dist/chunks/Timeline-pqnYk5cV.js.map +0 -1
- package/dist/chunks/TokenPanel-DAkL6vwQ.js.map +0 -1
- package/dist/chunks/field.module-Bh7BTKMh.js +0 -15
package/dist/index.js
CHANGED
|
@@ -15,83 +15,83 @@ import { t as vt } from "./chunks/CloseButton-BmNmRVtb.js";
|
|
|
15
15
|
import { t as yt } from "./chunks/Code-AsKpgnv6.js";
|
|
16
16
|
import { t as bt } from "./chunks/useReorderDragList-CStYKjHl.js";
|
|
17
17
|
import { n as xt, r as St, t as Ct } from "./chunks/Disclosure-Ch2KxYuB.js";
|
|
18
|
-
import { t as wt } from "./chunks/DataGrid-
|
|
19
|
-
import { n as Tt, t as Et } from "./chunks/DetailList-
|
|
18
|
+
import { t as wt } from "./chunks/DataGrid-CmHJe57v.js";
|
|
19
|
+
import { n as Tt, t as Et } from "./chunks/DetailList-BpU50XVe.js";
|
|
20
20
|
import { t as Dt } from "./chunks/DragGhost-BeYDJyLZ.js";
|
|
21
21
|
import { t as Ot } from "./chunks/DragGrip-AoIZXfZb.js";
|
|
22
22
|
import { a as kt, i as At, n as jt, o as Mt, r as Nt, s as Pt, t as Ft } from "./chunks/Keycaps-C-FJyG8k.js";
|
|
23
|
-
import { a as It, c as Lt, i as Rt, n as zt, o as Bt, r as Vt, s as Ht, t as Ut } from "./chunks/Plot2D-
|
|
24
|
-
import { a as Wt, i as Gt, n as Kt, r as qt, t as Jt } from "./chunks/CurveEditor-
|
|
25
|
-
import { i as Yt, n as Xt, r as Zt, t as Qt } from "./chunks/createKeyframeLayer-
|
|
23
|
+
import { a as It, c as Lt, i as Rt, n as zt, o as Bt, r as Vt, s as Ht, t as Ut } from "./chunks/Plot2D-BrvQS0dh.js";
|
|
24
|
+
import { a as Wt, i as Gt, n as Kt, r as qt, t as Jt } from "./chunks/CurveEditor-0EE00D6s.js";
|
|
25
|
+
import { i as Yt, n as Xt, r as Zt, t as Qt } from "./chunks/createKeyframeLayer-DSVf13Su.js";
|
|
26
26
|
import { n as $t, r as en, t as tn } from "./chunks/handles-CqVANLtu.js";
|
|
27
27
|
import { t as nn } from "./chunks/snap-DRjbOiG9.js";
|
|
28
|
-
import { i as rn, n as an, r as on, t as sn } from "./chunks/Properties-
|
|
28
|
+
import { i as rn, n as an, r as on, t as sn } from "./chunks/Properties-BoG2MMHR.js";
|
|
29
29
|
import { t as cn } from "./chunks/Dialog-DKfsk5VN.js";
|
|
30
|
-
import { a as ln, c as un, i as dn,
|
|
31
|
-
import { a as
|
|
32
|
-
import { t as
|
|
33
|
-
import { t as
|
|
34
|
-
import { n as
|
|
35
|
-
import { t as
|
|
36
|
-
import { n as
|
|
37
|
-
import { t as
|
|
38
|
-
import { r as
|
|
39
|
-
import { t as
|
|
40
|
-
import { t as
|
|
41
|
-
import { t as
|
|
42
|
-
import { t as
|
|
43
|
-
import { o as
|
|
44
|
-
import { i as
|
|
45
|
-
import { n as
|
|
46
|
-
import { t as
|
|
47
|
-
import { t as
|
|
48
|
-
import { n as
|
|
49
|
-
import { n as
|
|
50
|
-
import { t as
|
|
51
|
-
import { n as
|
|
52
|
-
import { t as
|
|
53
|
-
import { t as
|
|
54
|
-
import { t as
|
|
55
|
-
import { n as
|
|
56
|
-
import { t as
|
|
57
|
-
import { t as
|
|
58
|
-
import { a as
|
|
59
|
-
import { i as
|
|
60
|
-
import { t as
|
|
61
|
-
import { t as
|
|
62
|
-
import { t as
|
|
63
|
-
import { a as
|
|
64
|
-
import { t as
|
|
65
|
-
import { n as
|
|
66
|
-
import { t as
|
|
67
|
-
import { a as
|
|
68
|
-
import { t as
|
|
69
|
-
import { t as
|
|
70
|
-
import { t as
|
|
71
|
-
import { t as
|
|
72
|
-
import { n as
|
|
73
|
-
import { t as
|
|
74
|
-
import { t as
|
|
75
|
-
import { t as
|
|
30
|
+
import { a as ln, c as un, i as dn, l as fn, n as pn, o as mn, s as hn, t as gn } from "./chunks/PropertyField-PMrqBA0n.js";
|
|
31
|
+
import { a as _n, i as U, n as vn, o as yn, r as bn, t as xn } from "./chunks/RecentColorsProvider-DHcfk25u.js";
|
|
32
|
+
import { t as Sn } from "./chunks/InlineRange-DPjIsJB3.js";
|
|
33
|
+
import { t as Cn } from "./chunks/ColorField-BwlelY26.js";
|
|
34
|
+
import { n as wn, r as Tn, t as En } from "./chunks/Select-ouV8O6cp.js";
|
|
35
|
+
import { t as Dn } from "./chunks/FontFamilySelect-DEvMXyZd.js";
|
|
36
|
+
import { n as On, t as kn } from "./chunks/FontWeightSelect-BLQ_LMJF.js";
|
|
37
|
+
import { t as An } from "./chunks/Input-D7SDKbST.js";
|
|
38
|
+
import { r as jn, t as Mn } from "./chunks/NumberField-DS0WSiin.js";
|
|
39
|
+
import { t as Nn } from "./chunks/paintPreview-CuSZiHpR.js";
|
|
40
|
+
import { t as Pn } from "./chunks/Slider-DSrlMEq8.js";
|
|
41
|
+
import { t as Fn } from "./chunks/ToggleBar-Z2jZiguF.js";
|
|
42
|
+
import { t as In } from "./chunks/useRovingTabIndex-D7u22Ia_.js";
|
|
43
|
+
import { o as Ln, s as Rn, t as zn } from "./chunks/MeshEditor-DWpvg8H6.js";
|
|
44
|
+
import { i as Bn, n as Vn, r as Hn, t as Un } from "./chunks/GradientEditor-DD2OjQtn.js";
|
|
45
|
+
import { n as Wn, t as Gn } from "./chunks/PatternPicker-B3HcMZWg.js";
|
|
46
|
+
import { t as Kn } from "./chunks/PaintInput-DaQMeBsI.js";
|
|
47
|
+
import { t as qn } from "./chunks/PaintField-BdmQM53v.js";
|
|
48
|
+
import { n as Jn, t as Yn } from "./chunks/Field-DiX_WByH.js";
|
|
49
|
+
import { n as Xn, t as Zn } from "./chunks/RadioGroup-B70_M-gT.js";
|
|
50
|
+
import { t as Qn } from "./chunks/Switch-CSYmcM8y.js";
|
|
51
|
+
import { n as $n, r as er, t as tr } from "./chunks/LayerList-BqeWFuGc.js";
|
|
52
|
+
import { t as nr } from "./chunks/ItemList-CRu9y7hL.js";
|
|
53
|
+
import { t as rr } from "./chunks/ListEditor-OQDzG4A5.js";
|
|
54
|
+
import { t as ir } from "./chunks/ColorModeControl-DaVJ-SyX.js";
|
|
55
|
+
import { n as ar, t as or } from "./chunks/ThemeSwitcher-DiBmMh_B.js";
|
|
56
|
+
import { t as sr } from "./chunks/OptionsBar-DeTAjVb7.js";
|
|
57
|
+
import { t as cr } from "./chunks/ButtonBar-CIMKPPRS.js";
|
|
58
|
+
import { a as lr, i as ur, n as dr, o as fr, r as pr, s as mr, t as hr } from "./chunks/prefField-BE_Ytr2H.js";
|
|
59
|
+
import { i as gr, l as _r, n as vr, o as yr, r as br, s as xr, t as Sr } from "./chunks/model-B6zuQg6b.js";
|
|
60
|
+
import { t as Cr } from "./chunks/ToolOptionsBar-BJKwnemU.js";
|
|
61
|
+
import { t as wr } from "./chunks/FillStrokeSwatch-C4h3rUFM.js";
|
|
62
|
+
import { t as Tr } from "./chunks/SwatchGrid-9ZPiDmxd.js";
|
|
63
|
+
import { a as Er, i as Dr, n as Or, r as kr, t as Ar } from "./chunks/SwatchStrip-Bi9iPLoh.js";
|
|
64
|
+
import { t as jr } from "./chunks/Powerline-6wIFmDik.js";
|
|
65
|
+
import { n as Mr, t as Nr } from "./chunks/GestureRoute-BXESrHI0.js";
|
|
66
|
+
import { t as Pr } from "./chunks/FallthroughDiagram-CS1IhQaU.js";
|
|
67
|
+
import { a as Fr, i as Ir, n as Lr, o as Rr, r as zr, t as Br } from "./chunks/Prefs-BnVEyfWO.js";
|
|
68
|
+
import { t as Vr } from "./chunks/SelectionPanel-COZ6z9_P.js";
|
|
69
|
+
import { t as Hr } from "./chunks/ResizeHandle-CbAgCQOt.js";
|
|
70
|
+
import { t as Ur } from "./chunks/Sidebar-BZ0m4afn.js";
|
|
71
|
+
import { t as Wr } from "./chunks/SidebarPanel-AXQ0jRDx.js";
|
|
72
|
+
import { n as Gr, r as Kr, t as qr } from "./chunks/StatusBar-BEOfOX0D.js";
|
|
73
|
+
import { t as Jr } from "./chunks/ToolButton-BURp4YIO.js";
|
|
74
|
+
import { t as Yr } from "./chunks/ToolGroup-Dpg1LN0l.js";
|
|
75
|
+
import { t as Xr } from "./chunks/ToolPalette-DKDFWOX-.js";
|
|
76
76
|
import "./components/Field/index.js";
|
|
77
|
-
import { t as
|
|
78
|
-
import { i as
|
|
79
|
-
import { n as
|
|
80
|
-
import { t as
|
|
81
|
-
import { n as
|
|
82
|
-
import { t as
|
|
83
|
-
import { t as
|
|
84
|
-
import { n as
|
|
85
|
-
import { a as
|
|
86
|
-
import { t as
|
|
87
|
-
import { a as
|
|
88
|
-
import { n as
|
|
89
|
-
import { t as
|
|
90
|
-
import { a as
|
|
91
|
-
import { hexToOklchDeg as W, hexToRgba as
|
|
92
|
-
import { useCallback as
|
|
77
|
+
import { t as Zr } from "./chunks/Checkbox-DFn-x0JO.js";
|
|
78
|
+
import { i as Qr, n as $r, r as ei, t as ti } from "./chunks/Tabs-BbpzLLdY.js";
|
|
79
|
+
import { n as ni, r as ri, t as ii } from "./chunks/Tree-Cc8lIzgM.js";
|
|
80
|
+
import { t as ai } from "./chunks/MenuButton-TAFg88Lp.js";
|
|
81
|
+
import { n as oi, t as si } from "./chunks/ComboBox-DKln_mOd.js";
|
|
82
|
+
import { t as ci } from "./chunks/RangeSlider-DO5TZVk7.js";
|
|
83
|
+
import { t as li } from "./chunks/DetentSlider-DNTAk8xP.js";
|
|
84
|
+
import { n as ui, t as di } from "./chunks/Callout-BUn0dP_S.js";
|
|
85
|
+
import { a as fi, i as pi, n as mi, r as hi, t as gi } from "./chunks/Toast-C3ozq11V.js";
|
|
86
|
+
import { t as _i } from "./chunks/PointPlotter-BBXpQ_QD.js";
|
|
87
|
+
import { a as vi, i as yi, n as bi, r as xi, t as Si } from "./chunks/TokenPanel-WtKGY2Db.js";
|
|
88
|
+
import { n as Ci, r as wi, t as Ti } from "./chunks/BandEditor-B4jUAHQ8.js";
|
|
89
|
+
import { t as Ei } from "./chunks/Jog-BrkzdGV2.js";
|
|
90
|
+
import { a as Di, c as Oi, i as ki, l as Ai, n as ji, o as Mi, r as Ni, s as Pi, t as Fi } from "./chunks/Timeline-sMCH2fah.js";
|
|
91
|
+
import { hexToOklchDeg as W, hexToRgba as Ii, interpolateSrgb as G, oklchDegToHex as Li, rgbaToHex as K, useLatest as Ri } from "@weasel-js/core";
|
|
92
|
+
import { useCallback as zi, useEffect as q, useRef as J, useState as Y } from "react";
|
|
93
93
|
//#region src/color/oklch.ts
|
|
94
|
-
var X =
|
|
94
|
+
var X = Li;
|
|
95
95
|
function Z(e, t) {
|
|
96
96
|
let [n, r] = t.lRange;
|
|
97
97
|
return e <= n ? t.cBot : e >= r ? t.cTop : e <= t.midL ? t.cBot + (t.cPeak - t.cBot) * ((e - n) / (t.midL - n)) : t.cPeak + (t.cTop - t.cPeak) * ((e - t.midL) / (r - t.midL));
|
|
@@ -99,7 +99,7 @@ function Z(e, t) {
|
|
|
99
99
|
//#endregion
|
|
100
100
|
//#region src/color/ramp.ts
|
|
101
101
|
var Q = (e) => {
|
|
102
|
-
let [t, n, r] =
|
|
102
|
+
let [t, n, r] = Ii(e);
|
|
103
103
|
return [
|
|
104
104
|
t,
|
|
105
105
|
n,
|
|
@@ -112,13 +112,13 @@ function $(e, t, n, r = {}) {
|
|
|
112
112
|
let u = W(l), d = u.C > 1e-4 ? u.H : W(K(G(s, c, n, "oklch", a))).H;
|
|
113
113
|
return X(u.L, Z(u.L, o), d);
|
|
114
114
|
}
|
|
115
|
-
function
|
|
115
|
+
function Bi(e, t, n, r = {}) {
|
|
116
116
|
return n <= 1 ? n === 1 ? [$(e, t, 0, r)] : [] : Array.from({ length: n }, (i, a) => $(e, t, a / (n - 1), r));
|
|
117
117
|
}
|
|
118
118
|
//#endregion
|
|
119
119
|
//#region src/useAsyncOptions.ts
|
|
120
|
-
function
|
|
121
|
-
let [r, i] = Y(""), [a, o] = Y([]), [s, c] = Y(!1), [l, u] = Y(null), d =
|
|
120
|
+
function Vi({ load: e, debounceMs: t = 150, minLength: n = 0 }) {
|
|
121
|
+
let [r, i] = Y(""), [a, o] = Y([]), [s, c] = Y(!1), [l, u] = Y(null), d = Ri(e), f = J(0), p = J(0), m = J(null);
|
|
122
122
|
return q(() => {
|
|
123
123
|
if (r.length < n) {
|
|
124
124
|
m.current?.abort(), m.current = null, p.current = f.current, o([]), c(!1), u(null);
|
|
@@ -143,10 +143,10 @@ function Bi({ load: e, debounceMs: t = 150, minLength: n = 0 }) {
|
|
|
143
143
|
isLoading: s,
|
|
144
144
|
loadError: l,
|
|
145
145
|
inputValue: r,
|
|
146
|
-
onInputChange:
|
|
146
|
+
onInputChange: zi((e) => i(e), [])
|
|
147
147
|
};
|
|
148
148
|
}
|
|
149
149
|
//#endregion
|
|
150
|
-
export { ft as ActionBar, Ve as AddIcon, Ae as AlignBottomIcon, Le as AlignCenterXIcon, be as AlignCenterYIcon, I as AlignLeftIcon, Me as AlignRightIcon, ze as AlignTopIcon,
|
|
150
|
+
export { ft as ActionBar, Ve as AddIcon, Ae as AlignBottomIcon, Le as AlignCenterXIcon, be as AlignCenterYIcon, I as AlignLeftIcon, Me as AlignRightIcon, ze as AlignTopIcon, Fi as AnimatedTimeline, B as ArrowIcon, gt as BADGE_STATUS_ICONS, kr as BASIC_PALETTE, Dr as BUILTIN_PALETTES, mt as Badge, Ti as BandEditor, Ee as BringForwardIcon, Ue as BringToFrontIcon, H as BusyIcon, _t as Button, cr as ButtonBar, or as COLOR_MODE_OPTIONS, di as Callout, ui as CalloutTrigger, me as CheckIcon, Zr as Checkbox, Pe as ChevronIcon, Oe as CloneIcon, vt as CloseButton, ve as CloseIcon, yt as Code, ge as CollapseIcon, Cn as ColorField, ir as ColorModeControl, si as ComboBox, oi as ComboBoxItem, P as CompareIcon, Ge as CopyIcon, Ze as CrosshairIcon, Kt as CurveEditor, rn as CurveField, R as CutIcon, wt as DataGrid, Ye as DeleteIcon, Et as DetailList, Tt as DetailRow, li as DetentSlider, cn as Dialog, on as DialogRow, Ct as Disclosure, xt as DisclosureMark, St as DisclosureRow, w as DistributeHorizontalIcon, d as DistributeVerticalIcon, Dt as DragGhost, Ot as DragGrip, qe as DuplicateIcon, Mi as EASING_NAMES, pt as EDGE_PROFILES, Di as EasingPicker, E as EllipseIcon, ee as ErrorIcon, p as ExpandIcon, v as ExportIcon, we as EyedropperIcon, Pr as FallthroughDiagram, Yn as Field, wr as FillStrokeSwatch, c as FilterIcon, Se as FitIcon, de as FlipXIcon, g as FlipYIcon, ct as Focusable, Dn as FontFamilySelect, kn as FontWeightSelect, b as FullscreenIcon, Nr as GestureRoute, Hn as GradientEditor, Vn as GradientHandles, ne as GridIcon, oe as GroupIcon, tn as HANDLE_SIZE_TOKENS, ue as HandIcon, C as HiddenIcon, a as ICON_FILLS, r as ICON_GROUPS, n as ICON_PATHS, o as Icon, $e as ImageIcon, u as InfoIcon, Sn as InlineRange, An as Input, nr as ItemList, Ei as Jog, Nt as KeyCap, jt as KeySequence, k as LassoIcon, $n as LayerList, Yt as LayeredCurveEditor, ae as LayersIcon, O as LayoutColumnsIcon, A as LayoutGridIcon, ie as LayoutRowsIcon, le as LineIcon, Ie as LinkIcon, rr as ListEditor, ce as LockIcon, M as LoupeIcon, Sr as MIXED, j as MeasureIcon, ai as MenuButton, Ln as MeshEditor, zn as MeshHandles, N as ModeAutoIcon, S as ModeDarkIcon, s as ModeLightIcon, jn as NumberField, sr as OptionsBar, at as OverlayPortalProvider, pe as PageIcon, qn as PaintField, Kn as PaintInput, He as PanIcon, je as PasteIcon, Gn as PatternPicker, Re as PauseIcon, xe as PenIcon, L as PencilIcon, Ne as PinIcon, Be as PlayIcon, Ut as Plot2D, _i as PointPlotter, V as PolygonIcon, jr as Powerline, Br as PrefsDialog, Lr as PrefsForm, Ir as PrefsPane, zr as PrefsRail, gn as PropertyControl, pn as PropertyField, an as PropertyGroup, dn as PropertyHelp, ln as PropertyList, mn as PropertyNote, hn as PropertyPanel, un as PropertyRow, fn as PropertySpan, Zn as Radio, Xn as RadioGroup, De as RandomizeIcon, ci as RangeSlider, xn as RecentColorsProvider, We as RectIcon, fe as RedoIcon, he as RefreshIcon, Fe as RemoveIcon, ke as ResetIcon, Hr as ResizeHandle, Er as STANDARD_PALETTE, Un as SceneGradientHandles, ye as SearchIcon, En as Select, _e as SelectIcon, wn as SelectItem, Tn as SelectSection, Vr as SelectionPanel, F as SendBackwardIcon, Ke as SendToBackIcon, Ur as Sidebar, Wr as SidebarPanel, Pn as Slider, Qe as SnapIcon, z as SnapshotIcon, Xe as SortIcon, T as StarIcon, qr as StatusBar, Gr as StatusBarItem, Kr as StatusBarSpacer, f as StepBackIcon, Je as StepForwardIcon, D as StepIcon, te as StopIcon, sn as Subpanel, Tr as SwatchGrid, Ar as SwatchStrip, Qn as Switch, bi as TOKEN_CATEGORIES, ti as Tab, $r as TabList, ei as TabPanel, Qr as Tabs, m as TextIcon, ar as ThemeSwitcher, ji as Timeline, mi as ToastQueue, gi as ToastRegion, Fn as ToggleBar, Si as TokenPanel, Jr as ToolButton, Yr as ToolGroup, Cr as ToolOptionsBar, Xr as ToolPalette, ot as Tooltip, st as TooltipTrigger, ki as Transport, ii as Tree, y as TuneIcon, Te as UndoIcon, l as UngroupIcon, Mn as UnitField, Ce as UnknownIcon, h as UnlockIcon, _ as VisibleIcon, x as WarningIcon, re as ZoomInIcon, se as ZoomOutIcon, vr as aggregateValue, Qt as applyKeyframeDrag, Z as chromaAt, br as classifyKind, Bi as colorRamp, qt as createFunctionLayer, Xt as createKeyframeLayer, _n as createRecentColorsStore, Jt as createSetCurveOp, hi as createToastQueue, pi as defaultToastQueue, Or as describeColor, kt as detectPlatform, t as dlog, Pi as easingBezier, Oi as easingLabel, gr as effectiveSections, Jn as fieldClasses, dr as filterPrefSubtree, ni as filterTree, On as fontWeightLabel, dt as formatShortcut, ut as formatShortcutParts, zt as formatTick, Gt as functionLayerState, Mr as gestureRouteSegments, $t as handleHalf, en as handleSize, At as inferKeycapKind, xi as inferTokenType, e as isDebugEnabled, i as isFillable, Rn as isMeshPaint, pr as isPrefLeaf, lt as keyGlyph, Mt as keySpecFromKey, Pt as keySpecsFromMods, Ft as keySpecsFromShortcut, Zt as keyframeLayerState, yr as kindBreakdown, Ci as linearScale, wi as logScale, Ht as modelToPlot, er as moveLayers, rt as nearestPortalHost, Vt as niceStep, Rt as niceTicks, xr as nodeValueAt, yn as normalizeRecentColor, X as oklchToHex, Bn as paintGradientTrack, Nn as paintPreviewCss, Fr as pickActiveSection, Lt as plotToModel, ur as prefDisplayBounds, hr as prefFieldProps, lr as prefRailItems, fr as prefValueAtPath, $ as rampColor, yi as refitScale, Ni as samePath, Wt as sampleByInterpolation, Ai as sampleEasing, Wn as seedPattern, _r as setAtPath, nn as snapToNearest, et as solidColorOf, It as stepDecimals, tt as strokeColorOf, Bt as tickDecimals, fi as toast, vi as tokenCategory, ri as treeBranchIds, it as useAssignedPortalContainer, Vi as useAsyncOptions, nt as useOverlayPortal, vn as useRecentColors, bn as useRecentColorsStore, U as useRecordRecentColor, bt as useReorderDragList, In as useRovingTabIndex, tr as useSceneLayerList, Rr as useScrollSpy, ht as useStance, mr as visiblePrefSubtree };
|
|
151
151
|
|
|
152
152
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["isDebugEnabled","ICON_PATHS","ICON_GROUPS","isFillable","ICON_FILLS","Icon","ModeLightIcon","FilterIcon","UngroupIcon","InfoIcon","DistributeVerticalIcon","StepBackIcon","ExpandIcon","TextIcon","ErrorIcon","StopIcon","GridIcon","ZoomInIcon","LayoutRowsIcon","LayersIcon","GroupIcon","ZoomOutIcon","LockIcon","LineIcon","HandIcon","FlipXIcon","UnlockIcon","FlipYIcon","VisibleIcon","ExportIcon","TuneIcon","FullscreenIcon","WarningIcon","ModeDarkIcon","HiddenIcon","DistributeHorizontalIcon","StarIcon","EllipseIcon","StepIcon","LayoutColumnsIcon","LassoIcon","LayoutGridIcon","MeasureIcon","LoupeIcon","ModeAutoIcon","CompareIcon","SendBackwardIcon","AlignLeftIcon","PencilIcon","CutIcon","SnapshotIcon","ArrowIcon","PolygonIcon","BusyIcon","RedoIcon","PageIcon","CheckIcon","RefreshIcon","CollapseIcon","SelectIcon","CloseIcon","SearchIcon","AlignCenterYIcon","PenIcon","FitIcon","UnknownIcon","EyedropperIcon","UndoIcon","BringForwardIcon","RandomizeIcon","CloneIcon","ResetIcon","AlignBottomIcon","PasteIcon","AlignRightIcon","PinIcon","ChevronIcon","RemoveIcon","LinkIcon","AlignCenterXIcon","PauseIcon","AlignTopIcon","PlayIcon","AddIcon","PanIcon","BringToFrontIcon","RectIcon","CopyIcon","SendToBackIcon","DuplicateIcon","StepForwardIcon","DeleteIcon","SortIcon","CrosshairIcon","SnapIcon","ImageIcon","solidColorOf","strokeColorOf","useOverlayPortal","nearestPortalHost","useAssignedPortalContainer","OverlayPortalProvider","Tooltip","TooltipTrigger","Focusable","keyGlyph","formatShortcutParts","formatShortcut","ActionBar","EDGE_PROFILES","Badge","useStance","BADGE_STATUS_ICONS","Button","CloseButton","Code","useReorderDragList","DisclosureMark","DisclosureRow","Disclosure","DataGrid","DetailRow","DetailList","DragGhost","DragGrip","detectPlatform","inferKeycapKind","KeySequence","keySpecFromKey","KeyCap","keySpecsFromMods","keySpecsFromShortcut","stepDecimals","plotToModel","niceTicks","formatTick","tickDecimals","niceStep","modelToPlot","Plot2D","sampleByInterpolation","functionLayerState","CurveEditor","createFunctionLayer","createSetCurveOp","LayeredCurveEditor","createKeyframeLayer","keyframeLayerState","applyKeyframeDrag","handleHalf","handleSize","HANDLE_SIZE_TOKENS","snapToNearest","CurveField","PropertyGroup","DialogRow","Subpanel","Dialog","PropertyNote","PropertySpan","PropertyList","PropertyField","PropertyPanel","PropertyRow","PropertyControl","createRecentColorsStore","useRecordRecentColor","useRecentColors","normalizeRecentColor","useRecentColorsStore","RecentColorsProvider","InlineRange","ColorField","SelectItem","SelectSection","Select","FontFamilySelect","fontWeightLabel","FontWeightSelect","Input","NumberField","UnitField","paintPreviewCss","Slider","ToggleBar","useRovingTabIndex","MeshEditor","isMeshPaint","MeshHandles","paintGradientTrack","GradientHandles","GradientEditor","SceneGradientHandles","seedPattern","PatternPicker","PaintInput","PaintField","fieldClasses","Field","RadioGroup","Radio","Switch","LayerList","moveLayers","useSceneLayerList","ItemList","ListEditor","ColorModeControl","ThemeSwitcher","COLOR_MODE_OPTIONS","OptionsBar","ButtonBar","prefRailItems","prefDisplayBounds","filterPrefSubtree","prefValueAtPath","isPrefLeaf","visiblePrefSubtree","prefFieldProps","effectiveSections","setAtPath","aggregateValue","kindBreakdown","classifyKind","nodeValueAt","MIXED","ToolOptionsBar","FillStrokeSwatch","SwatchGrid","STANDARD_PALETTE","BUILTIN_PALETTES","describeColor","BASIC_PALETTE","SwatchStrip","Powerline","gestureRouteSegments","GestureRoute","FallthroughDiagram","pickActiveSection","PrefsPane","PrefsForm","useScrollSpy","PrefsRail","PrefsDialog","SelectionPanel","ResizeHandle","Sidebar","SidebarPanel","StatusBarItem","StatusBarSpacer","StatusBar","ToolButton","ToolGroup","ToolPalette","Checkbox","Tabs","TabList","TabPanel","Tab","filterTree","treeBranchIds","Tree","MenuButton","ComboBoxItem","ComboBox","RangeSlider","DetentSlider","DialogTrigger","Callout","toast","defaultToastQueue","ToastQueue","createToastQueue","ToastRegion","PointPlotter","tokenCategory","refitScale","TOKEN_CATEGORIES","inferTokenType","TokenPanel","linearScale","logScale","BandEditor","Jog","EasingPicker","easingLabel","Transport","sampleEasing","Timeline","EASING_NAMES","samePath","easingBezier","AnimatedTimeline","oklchToHex","oklchDegToHex","chromaAt","lo","hi","curve","L","rgb","r","g","b","hexToRgba","hex","rampColor","options","a","from","to","rgbaToHex","interpolateSrgb","t","space","hue","chroma","s","hexToOklchDeg","H","colorRamp","steps","i","useAsyncOptions","inputValue","setInputValue","useState","setOptions","isLoading","setIsLoading","loadError","setLoadError","loadRef","useLatest","load","issued","useRef","applied","inFlight","useEffect","minLength","timer","mine","controller","next","error","debounceMs","useCallback","dlog"],"sources":["../src/color/oklch.ts","../src/color/ramp.ts","../src/useAsyncOptions.ts"],"sourcesContent":["// OKLCH math from Björn Ottosson: https://bottosson.github.io/posts/oklab/\nimport { oklchDegToHex } from '@weasel-js/core';\n\n/**\n * A chroma envelope over lightness, as three linear segments: flat at `cBot`\n * below `lRange[0]`, rising to `cPeak` at `midL`, falling to `cTop` at\n * `lRange[1]`, flat beyond. Keeps a color ramp inside gamut at the light and\n * dark ends while staying saturated through the middle.\n */\nexport type ChromaCurve = {\n lRange: [number, number];\n midL: number;\n cBot: number;\n cPeak: number;\n cTop: number;\n};\n\n/** A single lightness/chroma sample. */\nexport type ChromaCurvePoint = { L: number; C: number };\n\n/**\n * Converts an OKLCH color to a gamut-clipped `#rrggbb` string. Hue is in\n * degrees, unlike the kit's OKLab helpers which take radians.\n */\nexport const oklchToHex = oklchDegToHex;\n\n/** Evaluates a {@link ChromaCurve} at a lightness, clamping outside its range. */\nexport function chromaAt(L: number, curve: ChromaCurve): number {\n const [lo, hi] = curve.lRange;\n if (L <= lo) return curve.cBot;\n if (L >= hi) return curve.cTop;\n if (L <= curve.midL) return curve.cBot + (curve.cPeak - curve.cBot) * ((L - lo) / (curve.midL - lo));\n return curve.cPeak + (curve.cTop - curve.cPeak) * ((L - curve.midL) / (hi - curve.midL));\n}\n","import {\n hexToOklchDeg,\n hexToRgba,\n interpolateSrgb,\n rgbaToHex,\n type ColorInterpolationSpace,\n type HueInterpolation,\n} from '@weasel-js/core';\nimport { chromaAt, oklchToHex, type ChromaCurve } from './oklch';\n\n/**\n * How {@link rampColor} and {@link colorRamp} travel between two endpoints.\n *\n * What each space interpolates:\n *\n * | `space` | components lerped | hue |\n * | --------------- | ---------------------------- | -------------------- |\n * | `'oklch'` | L, C, H | around the wheel |\n * | `'hsl'` | H, S, L | around the wheel |\n * | `'oklab'` | L, a, b | through the wheel |\n * | `'srgb'` | gamma-encoded R, G, B | through the wheel |\n * | `'srgb-linear'` | linear-light R, G, B | through the wheel |\n *\n * A lightness ramp is two endpoints that differ in lightness, and a hue ramp\n * two that differ in hue: the polar spaces keep chroma or saturation fixed\n * while they move, and the others cut a straight line between the two colors,\n * which for a hue ramp passes through gray.\n *\n * `chroma` is an OKLCH envelope in every space, since {@link ChromaCurve}'s\n * numbers are OKLCH chroma over OKLCH lightness. It runs after the\n * interpolation: each sample keeps its lightness and hue, and its chroma is\n * replaced with the curve's value at that lightness. A sample left with no\n * hue (a gray midpoint) takes the hue an OKLCH ramp would have had there.\n */\nexport interface ColorRampOptions {\n /** Default `'oklch'`. */\n space?: ColorInterpolationSpace;\n /** Polar spaces only. Default `'shorter'`. */\n hue?: HueInterpolation;\n chroma?: ChromaCurve;\n}\n\nconst rgb = (hex: string): [number, number, number] => {\n const [r, g, b] = hexToRgba(hex);\n return [r, g, b];\n};\n\n/** One sample of a ramp from `from` to `to` (`#rrggbb`), `t` in 0..1. */\nexport function rampColor(from: string, to: string, t: number, options: ColorRampOptions = {}): string {\n const { space = 'oklch', hue = 'shorter', chroma } = options;\n const a = rgb(from);\n const b = rgb(to);\n const hex = rgbaToHex(interpolateSrgb(a, b, t, space, hue));\n if (!chroma) return hex;\n const s = hexToOklchDeg(hex);\n const H = s.C > 1e-4 ? s.H : hexToOklchDeg(rgbaToHex(interpolateSrgb(a, b, t, 'oklch', hue))).H;\n return oklchToHex(s.L, chromaAt(s.L, chroma), H);\n}\n\n/** `steps` evenly spaced samples from `from` to `to`, both ends included. */\nexport function colorRamp(from: string, to: string, steps: number, options: ColorRampOptions = {}): string[] {\n if (steps <= 1) return steps === 1 ? [rampColor(from, to, 0, options)] : [];\n return Array.from({ length: steps }, (_, i) => rampColor(from, to, i / (steps - 1), options));\n}\n","import { useCallback, useEffect, useRef, useState } from 'react';\nimport { useLatest } from '@weasel-js/core';\nimport type { ComboBoxOption } from './components/ComboBox/ComboBox';\n\ntype Key = string | number;\n\n/** An option list keyed to the value type its combo box commits. */\nexport type AsyncOption<T extends Key> = ComboBoxOption & { value: T };\n\n/** Options for {@link useAsyncOptions}. */\nexport type UseAsyncOptionsProps<T extends Key> = {\n /**\n * Fetches the options for a query. The signal aborts when a later keystroke\n * supersedes this call, so a `fetch` should forward it.\n */\n load: (query: string, signal: AbortSignal) => Promise<ReadonlyArray<AsyncOption<T>>>;\n /** Quiet period before a query is sent. */\n debounceMs?: number;\n /** Shorter queries are not sent, and empty the options. */\n minLength?: number;\n};\n\n/** What {@link useAsyncOptions} returns, shaped to spread into a `ComboBox`. */\nexport type AsyncOptionsResult<T extends Key> = {\n options: ReadonlyArray<AsyncOption<T>>;\n isLoading: boolean;\n loadError: unknown | null;\n inputValue: string;\n onInputChange: (next: string) => void;\n};\n\n/**\n * Drives a combo box whose options come from a server: debounces the query,\n * discards responses overtaken by a later one, and reports a failed load\n * separately from an empty result.\n *\n * `options` holds the last *resolved* list and is never emptied to mean\n * \"working\", so the previous results stay on screen — and stay arrowable —\n * while the next request is in flight.\n */\nexport function useAsyncOptions<T extends Key = string>({\n load,\n debounceMs = 150,\n minLength = 0,\n}: UseAsyncOptionsProps<T>): AsyncOptionsResult<T> {\n const [inputValue, setInputValue] = useState('');\n const [options, setOptions] = useState<ReadonlyArray<AsyncOption<T>>>([]);\n const [isLoading, setIsLoading] = useState(false);\n const [loadError, setLoadError] = useState<unknown | null>(null);\n\n // Read through a ref: a consumer passing an inline arrow re-creates `load`\n // every render, and depending on it directly would refire the request.\n const loadRef = useLatest(load);\n\n // A monotonic id per request, and the highest one whose result has been\n // applied. A liveness flag cannot do this job: two requests from adjacent\n // keystrokes are both live, so the slower one overwrites the newer result\n // if it lands second.\n const issued = useRef(0);\n const applied = useRef(0);\n const inFlight = useRef<AbortController | null>(null);\n\n useEffect(() => {\n if (inputValue.length < minLength) {\n inFlight.current?.abort();\n inFlight.current = null;\n applied.current = issued.current;\n setOptions([]);\n setIsLoading(false);\n setLoadError(null);\n return;\n }\n\n const timer = setTimeout(() => {\n const mine = ++issued.current;\n const controller = new AbortController();\n inFlight.current?.abort();\n inFlight.current = controller;\n setIsLoading(true);\n\n loadRef.current(inputValue, controller.signal).then(\n (next) => {\n if (mine <= applied.current) return;\n applied.current = mine;\n setOptions(next);\n setLoadError(null);\n setIsLoading(false);\n },\n (error: unknown) => {\n if (controller.signal.aborted || mine <= applied.current) return;\n applied.current = mine;\n setLoadError(error);\n setIsLoading(false);\n },\n );\n }, debounceMs);\n\n return () => clearTimeout(timer);\n }, [inputValue, debounceMs, minLength, loadRef]);\n\n useEffect(() => () => inFlight.current?.abort(), []);\n\n const onInputChange = useCallback((next: string) => setInputValue(next), []);\n\n return { options, isLoading, loadError, inputValue, onInputChange };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["isDebugEnabled","ICON_PATHS","ICON_GROUPS","isFillable","ICON_FILLS","Icon","ModeLightIcon","FilterIcon","UngroupIcon","InfoIcon","DistributeVerticalIcon","StepBackIcon","ExpandIcon","TextIcon","ErrorIcon","StopIcon","GridIcon","ZoomInIcon","LayoutRowsIcon","LayersIcon","GroupIcon","ZoomOutIcon","LockIcon","LineIcon","HandIcon","FlipXIcon","UnlockIcon","FlipYIcon","VisibleIcon","ExportIcon","TuneIcon","FullscreenIcon","WarningIcon","ModeDarkIcon","HiddenIcon","DistributeHorizontalIcon","StarIcon","EllipseIcon","StepIcon","LayoutColumnsIcon","LassoIcon","LayoutGridIcon","MeasureIcon","LoupeIcon","ModeAutoIcon","CompareIcon","SendBackwardIcon","AlignLeftIcon","PencilIcon","CutIcon","SnapshotIcon","ArrowIcon","PolygonIcon","BusyIcon","RedoIcon","PageIcon","CheckIcon","RefreshIcon","CollapseIcon","SelectIcon","CloseIcon","SearchIcon","AlignCenterYIcon","PenIcon","FitIcon","UnknownIcon","EyedropperIcon","UndoIcon","BringForwardIcon","RandomizeIcon","CloneIcon","ResetIcon","AlignBottomIcon","PasteIcon","AlignRightIcon","PinIcon","ChevronIcon","RemoveIcon","LinkIcon","AlignCenterXIcon","PauseIcon","AlignTopIcon","PlayIcon","AddIcon","PanIcon","BringToFrontIcon","RectIcon","CopyIcon","SendToBackIcon","DuplicateIcon","StepForwardIcon","DeleteIcon","SortIcon","CrosshairIcon","SnapIcon","ImageIcon","solidColorOf","strokeColorOf","useOverlayPortal","nearestPortalHost","useAssignedPortalContainer","OverlayPortalProvider","Tooltip","TooltipTrigger","Focusable","keyGlyph","formatShortcutParts","formatShortcut","ActionBar","EDGE_PROFILES","Badge","useStance","BADGE_STATUS_ICONS","Button","CloseButton","Code","useReorderDragList","DisclosureMark","DisclosureRow","Disclosure","DataGrid","DetailRow","DetailList","DragGhost","DragGrip","detectPlatform","inferKeycapKind","KeySequence","keySpecFromKey","KeyCap","keySpecsFromMods","keySpecsFromShortcut","stepDecimals","plotToModel","niceTicks","formatTick","tickDecimals","niceStep","modelToPlot","Plot2D","sampleByInterpolation","functionLayerState","CurveEditor","createFunctionLayer","createSetCurveOp","LayeredCurveEditor","createKeyframeLayer","keyframeLayerState","applyKeyframeDrag","handleHalf","handleSize","HANDLE_SIZE_TOKENS","snapToNearest","CurveField","PropertyGroup","DialogRow","Subpanel","Dialog","PropertyList","PropertyRow","PropertyHelp","PropertySpan","PropertyField","PropertyNote","PropertyPanel","PropertyControl","createRecentColorsStore","useRecordRecentColor","useRecentColors","normalizeRecentColor","useRecentColorsStore","RecentColorsProvider","InlineRange","ColorField","SelectItem","SelectSection","Select","FontFamilySelect","fontWeightLabel","FontWeightSelect","Input","NumberField","UnitField","paintPreviewCss","Slider","ToggleBar","useRovingTabIndex","MeshEditor","isMeshPaint","MeshHandles","paintGradientTrack","GradientHandles","GradientEditor","SceneGradientHandles","seedPattern","PatternPicker","PaintInput","PaintField","fieldClasses","Field","RadioGroup","Radio","Switch","LayerList","moveLayers","useSceneLayerList","ItemList","ListEditor","ColorModeControl","ThemeSwitcher","COLOR_MODE_OPTIONS","OptionsBar","ButtonBar","prefRailItems","prefDisplayBounds","filterPrefSubtree","prefValueAtPath","isPrefLeaf","visiblePrefSubtree","prefFieldProps","effectiveSections","setAtPath","aggregateValue","kindBreakdown","classifyKind","nodeValueAt","MIXED","ToolOptionsBar","FillStrokeSwatch","SwatchGrid","STANDARD_PALETTE","BUILTIN_PALETTES","describeColor","BASIC_PALETTE","SwatchStrip","Powerline","gestureRouteSegments","GestureRoute","FallthroughDiagram","pickActiveSection","PrefsPane","PrefsForm","useScrollSpy","PrefsRail","PrefsDialog","SelectionPanel","ResizeHandle","Sidebar","SidebarPanel","StatusBarItem","StatusBarSpacer","StatusBar","ToolButton","ToolGroup","ToolPalette","Checkbox","Tabs","TabList","TabPanel","Tab","filterTree","treeBranchIds","Tree","MenuButton","ComboBoxItem","ComboBox","RangeSlider","DetentSlider","DialogTrigger","Callout","toast","defaultToastQueue","ToastQueue","createToastQueue","ToastRegion","PointPlotter","tokenCategory","refitScale","TOKEN_CATEGORIES","inferTokenType","TokenPanel","linearScale","logScale","BandEditor","Jog","EasingPicker","easingLabel","Transport","sampleEasing","Timeline","EASING_NAMES","samePath","easingBezier","AnimatedTimeline","oklchToHex","oklchDegToHex","chromaAt","lo","hi","curve","L","rgb","r","g","b","hexToRgba","hex","rampColor","options","a","from","to","rgbaToHex","interpolateSrgb","t","space","hue","chroma","s","hexToOklchDeg","H","colorRamp","steps","i","useAsyncOptions","inputValue","setInputValue","useState","setOptions","isLoading","setIsLoading","loadError","setLoadError","loadRef","useLatest","load","issued","useRef","applied","inFlight","useEffect","minLength","timer","mine","controller","next","error","debounceMs","useCallback","dlog"],"sources":["../src/color/oklch.ts","../src/color/ramp.ts","../src/useAsyncOptions.ts"],"sourcesContent":["// OKLCH math from Björn Ottosson: https://bottosson.github.io/posts/oklab/\nimport { oklchDegToHex } from '@weasel-js/core';\n\n/**\n * A chroma envelope over lightness, as three linear segments: flat at `cBot`\n * below `lRange[0]`, rising to `cPeak` at `midL`, falling to `cTop` at\n * `lRange[1]`, flat beyond. Keeps a color ramp inside gamut at the light and\n * dark ends while staying saturated through the middle.\n */\nexport type ChromaCurve = {\n lRange: [number, number];\n midL: number;\n cBot: number;\n cPeak: number;\n cTop: number;\n};\n\n/** A single lightness/chroma sample. */\nexport type ChromaCurvePoint = { L: number; C: number };\n\n/**\n * Converts an OKLCH color to a gamut-clipped `#rrggbb` string. Hue is in\n * degrees, unlike the kit's OKLab helpers which take radians.\n */\nexport const oklchToHex = oklchDegToHex;\n\n/** Evaluates a {@link ChromaCurve} at a lightness, clamping outside its range. */\nexport function chromaAt(L: number, curve: ChromaCurve): number {\n const [lo, hi] = curve.lRange;\n if (L <= lo) return curve.cBot;\n if (L >= hi) return curve.cTop;\n if (L <= curve.midL) return curve.cBot + (curve.cPeak - curve.cBot) * ((L - lo) / (curve.midL - lo));\n return curve.cPeak + (curve.cTop - curve.cPeak) * ((L - curve.midL) / (hi - curve.midL));\n}\n","import {\n hexToOklchDeg,\n hexToRgba,\n interpolateSrgb,\n rgbaToHex,\n type ColorInterpolationSpace,\n type HueInterpolation,\n} from '@weasel-js/core';\nimport { chromaAt, oklchToHex, type ChromaCurve } from './oklch';\n\n/**\n * How {@link rampColor} and {@link colorRamp} travel between two endpoints.\n *\n * What each space interpolates:\n *\n * | `space` | components lerped | hue |\n * | --------------- | ---------------------------- | -------------------- |\n * | `'oklch'` | L, C, H | around the wheel |\n * | `'hsl'` | H, S, L | around the wheel |\n * | `'oklab'` | L, a, b | through the wheel |\n * | `'srgb'` | gamma-encoded R, G, B | through the wheel |\n * | `'srgb-linear'` | linear-light R, G, B | through the wheel |\n *\n * A lightness ramp is two endpoints that differ in lightness, and a hue ramp\n * two that differ in hue: the polar spaces keep chroma or saturation fixed\n * while they move, and the others cut a straight line between the two colors,\n * which for a hue ramp passes through gray.\n *\n * `chroma` is an OKLCH envelope in every space, since {@link ChromaCurve}'s\n * numbers are OKLCH chroma over OKLCH lightness. It runs after the\n * interpolation: each sample keeps its lightness and hue, and its chroma is\n * replaced with the curve's value at that lightness. A sample left with no\n * hue (a gray midpoint) takes the hue an OKLCH ramp would have had there.\n */\nexport interface ColorRampOptions {\n /** Default `'oklch'`. */\n space?: ColorInterpolationSpace;\n /** Polar spaces only. Default `'shorter'`. */\n hue?: HueInterpolation;\n chroma?: ChromaCurve;\n}\n\nconst rgb = (hex: string): [number, number, number] => {\n const [r, g, b] = hexToRgba(hex);\n return [r, g, b];\n};\n\n/** One sample of a ramp from `from` to `to` (`#rrggbb`), `t` in 0..1. */\nexport function rampColor(from: string, to: string, t: number, options: ColorRampOptions = {}): string {\n const { space = 'oklch', hue = 'shorter', chroma } = options;\n const a = rgb(from);\n const b = rgb(to);\n const hex = rgbaToHex(interpolateSrgb(a, b, t, space, hue));\n if (!chroma) return hex;\n const s = hexToOklchDeg(hex);\n const H = s.C > 1e-4 ? s.H : hexToOklchDeg(rgbaToHex(interpolateSrgb(a, b, t, 'oklch', hue))).H;\n return oklchToHex(s.L, chromaAt(s.L, chroma), H);\n}\n\n/** `steps` evenly spaced samples from `from` to `to`, both ends included. */\nexport function colorRamp(from: string, to: string, steps: number, options: ColorRampOptions = {}): string[] {\n if (steps <= 1) return steps === 1 ? [rampColor(from, to, 0, options)] : [];\n return Array.from({ length: steps }, (_, i) => rampColor(from, to, i / (steps - 1), options));\n}\n","import { useCallback, useEffect, useRef, useState } from 'react';\nimport { useLatest } from '@weasel-js/core';\nimport type { ComboBoxOption } from './components/ComboBox/ComboBox';\n\ntype Key = string | number;\n\n/** An option list keyed to the value type its combo box commits. */\nexport type AsyncOption<T extends Key> = ComboBoxOption & { value: T };\n\n/** Options for {@link useAsyncOptions}. */\nexport type UseAsyncOptionsProps<T extends Key> = {\n /**\n * Fetches the options for a query. The signal aborts when a later keystroke\n * supersedes this call, so a `fetch` should forward it.\n */\n load: (query: string, signal: AbortSignal) => Promise<ReadonlyArray<AsyncOption<T>>>;\n /** Quiet period before a query is sent. */\n debounceMs?: number;\n /** Shorter queries are not sent, and empty the options. */\n minLength?: number;\n};\n\n/** What {@link useAsyncOptions} returns, shaped to spread into a `ComboBox`. */\nexport type AsyncOptionsResult<T extends Key> = {\n options: ReadonlyArray<AsyncOption<T>>;\n isLoading: boolean;\n loadError: unknown | null;\n inputValue: string;\n onInputChange: (next: string) => void;\n};\n\n/**\n * Drives a combo box whose options come from a server: debounces the query,\n * discards responses overtaken by a later one, and reports a failed load\n * separately from an empty result.\n *\n * `options` holds the last *resolved* list and is never emptied to mean\n * \"working\", so the previous results stay on screen — and stay arrowable —\n * while the next request is in flight.\n */\nexport function useAsyncOptions<T extends Key = string>({\n load,\n debounceMs = 150,\n minLength = 0,\n}: UseAsyncOptionsProps<T>): AsyncOptionsResult<T> {\n const [inputValue, setInputValue] = useState('');\n const [options, setOptions] = useState<ReadonlyArray<AsyncOption<T>>>([]);\n const [isLoading, setIsLoading] = useState(false);\n const [loadError, setLoadError] = useState<unknown | null>(null);\n\n // Read through a ref: a consumer passing an inline arrow re-creates `load`\n // every render, and depending on it directly would refire the request.\n const loadRef = useLatest(load);\n\n // A monotonic id per request, and the highest one whose result has been\n // applied. A liveness flag cannot do this job: two requests from adjacent\n // keystrokes are both live, so the slower one overwrites the newer result\n // if it lands second.\n const issued = useRef(0);\n const applied = useRef(0);\n const inFlight = useRef<AbortController | null>(null);\n\n useEffect(() => {\n if (inputValue.length < minLength) {\n inFlight.current?.abort();\n inFlight.current = null;\n applied.current = issued.current;\n setOptions([]);\n setIsLoading(false);\n setLoadError(null);\n return;\n }\n\n const timer = setTimeout(() => {\n const mine = ++issued.current;\n const controller = new AbortController();\n inFlight.current?.abort();\n inFlight.current = controller;\n setIsLoading(true);\n\n loadRef.current(inputValue, controller.signal).then(\n (next) => {\n if (mine <= applied.current) return;\n applied.current = mine;\n setOptions(next);\n setLoadError(null);\n setIsLoading(false);\n },\n (error: unknown) => {\n if (controller.signal.aborted || mine <= applied.current) return;\n applied.current = mine;\n setLoadError(error);\n setIsLoading(false);\n },\n );\n }, debounceMs);\n\n return () => clearTimeout(timer);\n }, [inputValue, debounceMs, minLength, loadRef]);\n\n useEffect(() => () => inFlight.current?.abort(), []);\n\n const onInputChange = useCallback((next: string) => setInputValue(next), []);\n\n return { options, isLoading, loadError, inputValue, onInputChange };\n}\n"],"mappings":"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"}
|