@weasel-js/ui 1.5.0 → 1.5.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/{ActionBar-DxGp3WuZ.js → ActionBar-GZdcfdQL.js} +1 -2
- package/dist/chunks/{ActionBar-DxGp3WuZ.js.map → ActionBar-GZdcfdQL.js.map} +1 -1
- package/dist/chunks/{ActionsBar-D1VFreoj.js → ActionsBar-Fhx_40iP.js} +2 -2
- package/dist/chunks/{ActionsBar-D1VFreoj.js.map → ActionsBar-Fhx_40iP.js.map} +1 -1
- package/dist/chunks/{BandEditor-BeWO56_w.js → BandEditor-D8I5Uun-.js} +93 -98
- package/dist/chunks/BandEditor-D8I5Uun-.js.map +1 -0
- package/dist/chunks/{Callout-BPIA2is-.js → Callout-cx5_CWcW.js} +1 -1
- package/dist/chunks/{Callout-BPIA2is-.js.map → Callout-cx5_CWcW.js.map} +1 -1
- package/dist/chunks/{Checkbox-D-pVpobU.js → Checkbox-BZZsPaVF.js} +1 -1
- package/dist/chunks/{Checkbox-D-pVpobU.js.map → Checkbox-BZZsPaVF.js.map} +1 -1
- package/dist/chunks/{ColorField-C20aRvCg.js → ColorField-YVf8irfr.js} +2 -2
- package/dist/chunks/{ColorField-C20aRvCg.js.map → ColorField-YVf8irfr.js.map} +1 -1
- package/dist/chunks/{ComboBox-CPES6Y1i.js → ComboBox-D57tNYDD.js} +2 -2
- package/dist/chunks/{ComboBox-CPES6Y1i.js.map → ComboBox-D57tNYDD.js.map} +1 -1
- package/dist/chunks/{CurveEditor-Cj0lLiyR.js → CurveEditor-BXiMoN9d.js} +175 -175
- package/dist/chunks/CurveEditor-BXiMoN9d.js.map +1 -0
- package/dist/chunks/DetentSlider-BWNSv07Z.js +72 -0
- package/dist/chunks/DetentSlider-BWNSv07Z.js.map +1 -0
- package/dist/chunks/{Dialog-CYBLjwbd.js → Dialog-DuOzsR2g.js} +1 -1
- package/dist/chunks/{Dialog-CYBLjwbd.js.map → Dialog-DuOzsR2g.js.map} +1 -1
- package/dist/chunks/{Disclosure-DiA6UKdM.js → Disclosure-9UgDzc7Z.js} +6 -6
- package/dist/chunks/{Disclosure-DiA6UKdM.js.map → Disclosure-9UgDzc7Z.js.map} +1 -1
- package/dist/chunks/{Field-dzlxOGxT.js → Field-BNqvUJfg.js} +1 -1
- package/dist/chunks/{Field-dzlxOGxT.js.map → Field-BNqvUJfg.js.map} +1 -1
- package/dist/chunks/{FontFamilySelect-DIJ4phXz.js → FontFamilySelect-CO19kyOO.js} +2 -2
- package/dist/chunks/{FontFamilySelect-DIJ4phXz.js.map → FontFamilySelect-CO19kyOO.js.map} +1 -1
- package/dist/chunks/{GradientEditor-dBprHbS0.js → GradientEditor-B_ymIr4Q.js} +74 -51
- package/dist/chunks/GradientEditor-B_ymIr4Q.js.map +1 -0
- package/dist/chunks/Icon-QhLhaGFe.js +498 -0
- package/dist/chunks/Icon-QhLhaGFe.js.map +1 -0
- package/dist/chunks/{InlineRange-CcfzY80y.js → InlineRange-DdIlfGqG.js} +2 -2
- package/dist/chunks/{InlineRange-CcfzY80y.js.map → InlineRange-DdIlfGqG.js.map} +1 -1
- package/dist/chunks/{Input-CoKOtyD0.js → Input-B9Vh7ASP.js} +2 -2
- package/dist/chunks/{Input-CoKOtyD0.js.map → Input-B9Vh7ASP.js.map} +1 -1
- package/dist/chunks/Jog-BYrxbAQU.js +81 -0
- package/dist/chunks/Jog-BYrxbAQU.js.map +1 -0
- package/dist/chunks/{Keycaps-DSeq6QWH.js → Keycaps-CGNQV2Pz.js} +5 -5
- package/dist/chunks/Keycaps-CGNQV2Pz.js.map +1 -0
- package/dist/chunks/{MenuButton-Do8fFUx1.js → MenuButton-DGE-0DP0.js} +1 -1
- package/dist/chunks/{MenuButton-Do8fFUx1.js.map → MenuButton-DGE-0DP0.js.map} +1 -1
- package/dist/chunks/MeshEditor-CHoGQ9K8.js +123 -0
- package/dist/chunks/MeshEditor-CHoGQ9K8.js.map +1 -0
- package/dist/chunks/{NumberField-BWzhqS19.js → NumberField-CQzS6TjF.js} +2 -2
- package/dist/chunks/{NumberField-BWzhqS19.js.map → NumberField-CQzS6TjF.js.map} +1 -1
- package/dist/chunks/{OptionsBar-D_Cd3ZYs.js → OptionsBar-BWaYG_OH.js} +2 -2
- package/dist/chunks/{OptionsBar-D_Cd3ZYs.js.map → OptionsBar-BWaYG_OH.js.map} +1 -1
- package/dist/chunks/PaintField-BVYMu3OI.js +62 -0
- package/dist/chunks/PaintField-BVYMu3OI.js.map +1 -0
- package/dist/chunks/PaintInput-BzAHCKro.js +131 -0
- package/dist/chunks/PaintInput-BzAHCKro.js.map +1 -0
- package/dist/chunks/{PatternPicker-Ba22Bf4L.js → PatternPicker-C4OryrYi.js} +2 -2
- package/dist/chunks/{PatternPicker-Ba22Bf4L.js.map → PatternPicker-C4OryrYi.js.map} +1 -1
- package/dist/chunks/{Plot2D-CVZwQpWJ.js → Plot2D-Czvyt_vG.js} +1 -1
- package/dist/chunks/{Plot2D-CVZwQpWJ.js.map → Plot2D-Czvyt_vG.js.map} +1 -1
- package/dist/chunks/{PointPlotter-anTHwz8f.js → PointPlotter-Xvb98GwB.js} +2 -2
- package/dist/chunks/{PointPlotter-anTHwz8f.js.map → PointPlotter-Xvb98GwB.js.map} +1 -1
- package/dist/chunks/{Powerline-BaHDJlcO.js → Powerline-B_EH-7Z-.js} +1 -1
- package/dist/chunks/{Powerline-BaHDJlcO.js.map → Powerline-B_EH-7Z-.js.map} +1 -1
- package/dist/chunks/Prefs-FuaJBs3t.js +308 -0
- package/dist/chunks/Prefs-FuaJBs3t.js.map +1 -0
- package/dist/chunks/Properties-B3KU69NI.js +874 -0
- package/dist/chunks/Properties-B3KU69NI.js.map +1 -0
- package/dist/chunks/{RadioGroup-B2_LUgDp.js → RadioGroup-C6xpdQNg.js} +2 -2
- package/dist/chunks/{RadioGroup-B2_LUgDp.js.map → RadioGroup-C6xpdQNg.js.map} +1 -1
- package/dist/chunks/{RangeSlider-S2R3zA8N.js → RangeSlider-CzgeGLVS.js} +1 -1
- package/dist/chunks/{RangeSlider-S2R3zA8N.js.map → RangeSlider-CzgeGLVS.js.map} +1 -1
- package/dist/chunks/{ResizeHandle-CiExUWP-.js → ResizeHandle-1Ey8AOij.js} +1 -1
- package/dist/chunks/{ResizeHandle-CiExUWP-.js.map → ResizeHandle-1Ey8AOij.js.map} +1 -1
- package/dist/chunks/{Select-CacMfs4v.js → Select-BMYVh10x.js} +20 -17
- package/dist/chunks/Select-BMYVh10x.js.map +1 -0
- package/dist/chunks/{SelectionPanel-CbyUT3Dh.js → SelectionPanel-DTpcQidl.js} +12 -12
- package/dist/chunks/{SelectionPanel-CbyUT3Dh.js.map → SelectionPanel-DTpcQidl.js.map} +1 -1
- package/dist/chunks/{Sidebar-Cqcfx3_s.js → Sidebar-BlUjn8lD.js} +1 -1
- package/dist/chunks/{Sidebar-Cqcfx3_s.js.map → Sidebar-BlUjn8lD.js.map} +1 -1
- package/dist/chunks/{SidebarPanel-BLzBo0S2.js → SidebarPanel-BqHfz6VK.js} +2 -2
- package/dist/chunks/{SidebarPanel-BLzBo0S2.js.map → SidebarPanel-BqHfz6VK.js.map} +1 -1
- package/dist/chunks/Slider-B2ywUZH6.js +381 -0
- package/dist/chunks/Slider-B2ywUZH6.js.map +1 -0
- package/dist/chunks/{StatusBar-B9NQ8atD.js → StatusBar-BFt7Yw5O.js} +1 -1
- package/dist/chunks/{StatusBar-B9NQ8atD.js.map → StatusBar-BFt7Yw5O.js.map} +1 -1
- package/dist/chunks/{Switch-C4NU-me1.js → Switch-Om3t3ASc.js} +1 -1
- package/dist/chunks/{Switch-C4NU-me1.js.map → Switch-Om3t3ASc.js.map} +1 -1
- package/dist/chunks/{Tabs-9sODd2Ut.js → Tabs-EAvYywil.js} +1 -1
- package/dist/chunks/{Tabs-9sODd2Ut.js.map → Tabs-EAvYywil.js.map} +1 -1
- package/dist/chunks/{Timeline-DOZgb1CG.js → Timeline-BEyKaBXl.js} +254 -253
- package/dist/chunks/Timeline-BEyKaBXl.js.map +1 -0
- package/dist/chunks/{Toast-LpN1WK8E.js → Toast-iqLDD_XZ.js} +1 -1
- package/dist/chunks/{Toast-LpN1WK8E.js.map → Toast-iqLDD_XZ.js.map} +1 -1
- package/dist/chunks/{ToggleBar-Bxwv6xvj.js → ToggleBar--9As2PWG.js} +8 -8
- package/dist/chunks/ToggleBar--9As2PWG.js.map +1 -0
- package/dist/chunks/TokenPanel-BL9hlq7x.js +374 -0
- package/dist/chunks/TokenPanel-BL9hlq7x.js.map +1 -0
- package/dist/chunks/{ToolButton-B81YjdwO.js → ToolButton-Dd-1T5aX.js} +1 -1
- package/dist/chunks/{ToolButton-B81YjdwO.js.map → ToolButton-Dd-1T5aX.js.map} +1 -1
- package/dist/chunks/{ToolGroup-D7juDOC_.js → ToolGroup-BBI-W-Gm.js} +1 -1
- package/dist/chunks/{ToolGroup-D7juDOC_.js.map → ToolGroup-BBI-W-Gm.js.map} +1 -1
- package/dist/chunks/{ToolPalette-BSzmRJS7.js → ToolPalette-BmTDDpmz.js} +3 -3
- package/dist/chunks/{ToolPalette-BSzmRJS7.js.map → ToolPalette-BmTDDpmz.js.map} +1 -1
- package/dist/chunks/{createKeyframeLayer-AL4jP0EX.js → createKeyframeLayer-7j7ukrSx.js} +198 -193
- package/dist/chunks/createKeyframeLayer-7j7ukrSx.js.map +1 -0
- package/dist/chunks/{icons-BV27dhKB.js → icons-Btrs-JD7.js} +35 -32
- package/dist/chunks/icons-Btrs-JD7.js.map +1 -0
- package/dist/chunks/range.module-DSsOIq1R.js +8 -0
- package/dist/chunks/range.module-DSsOIq1R.js.map +1 -0
- package/dist/chunks/{schema-CPdFNeP6.js → schema-MCVT1MLv.js} +1 -1
- package/dist/chunks/{schema-CPdFNeP6.js.map → schema-MCVT1MLv.js.map} +1 -1
- package/dist/chunks/segmentedControl.module-DmeUMYe3.js +11 -0
- package/dist/chunks/segmentedControl.module-DmeUMYe3.js.map +1 -0
- package/dist/chunks/snap-B0WQwetQ.js +13 -0
- package/dist/chunks/snap-B0WQwetQ.js.map +1 -0
- package/dist/components/ActionBar/ActionBar.d.ts.map +1 -1
- package/dist/components/ActionBar/index.js +1 -1
- package/dist/components/ActionsBar/index.js +1 -1
- package/dist/components/BandEditor/BandEditor.d.ts.map +1 -1
- package/dist/components/BandEditor/index.js +1 -1
- package/dist/components/BandEditor/scale.d.ts +1 -8
- package/dist/components/BandEditor/scale.d.ts.map +1 -1
- package/dist/components/Callout/index.js +1 -1
- package/dist/components/Checkbox/index.js +1 -1
- package/dist/components/ColorField/index.js +1 -1
- package/dist/components/ComboBox/index.js +1 -1
- package/dist/components/CurveEditor/createFunctionLayer.d.ts.map +1 -1
- package/dist/components/CurveEditor/createKeyframeLayer.d.ts.map +1 -1
- package/dist/components/CurveEditor/index.d.ts +1 -1
- package/dist/components/CurveEditor/index.d.ts.map +1 -1
- package/dist/components/CurveEditor/index.js +4 -3
- package/dist/components/DetentSlider/DetentSlider.d.ts +9 -10
- package/dist/components/DetentSlider/DetentSlider.d.ts.map +1 -1
- package/dist/components/DetentSlider/index.js +1 -1
- package/dist/components/Dialog/index.js +1 -1
- package/dist/components/Disclosure/index.js +1 -1
- package/dist/components/Field/index.js +1 -1
- package/dist/components/FontFamilySelect/index.js +1 -1
- package/dist/components/GradientEditor/GradientEditor.d.ts +3 -0
- package/dist/components/GradientEditor/GradientEditor.d.ts.map +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/Jog.d.ts +28 -0
- package/dist/components/Jog/Jog.d.ts.map +1 -0
- package/dist/components/Jog/index.d.ts +3 -0
- package/dist/components/Jog/index.d.ts.map +1 -0
- package/dist/components/Jog/index.js +2 -0
- package/dist/components/Keycaps/index.js +1 -1
- package/dist/components/MenuButton/index.js +1 -1
- package/dist/components/MeshEditor/MeshEditor.d.ts +30 -0
- package/dist/components/MeshEditor/MeshEditor.d.ts.map +1 -0
- package/dist/components/MeshEditor/index.d.ts +3 -0
- package/dist/components/MeshEditor/index.d.ts.map +1 -0
- package/dist/components/MeshEditor/index.js +2 -0
- package/dist/components/NumberField/index.js +1 -1
- package/dist/components/OptionsBar/index.js +1 -1
- package/dist/components/PaintField/PaintField.d.ts +36 -0
- package/dist/components/PaintField/PaintField.d.ts.map +1 -0
- package/dist/components/PaintField/index.d.ts +3 -0
- package/dist/components/PaintField/index.d.ts.map +1 -0
- package/dist/components/PaintField/index.js +2 -0
- package/dist/components/PaintInput/PaintInput.d.ts.map +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/Powerline/index.js +1 -1
- package/dist/components/Prefs/PrefsForm.d.ts +4 -0
- package/dist/components/Prefs/PrefsForm.d.ts.map +1 -1
- package/dist/components/Prefs/index.js +2 -2
- package/dist/components/Properties/PinDot.d.ts +18 -0
- package/dist/components/Properties/PinDot.d.ts.map +1 -0
- package/dist/components/Properties/PropertyPanel.d.ts +93 -8
- package/dist/components/Properties/PropertyPanel.d.ts.map +1 -1
- package/dist/components/Properties/index.d.ts +4 -2
- package/dist/components/Properties/index.d.ts.map +1 -1
- package/dist/components/Properties/index.js +2 -2
- package/dist/components/Properties/storyLayouts.d.ts +1 -1
- package/dist/components/RadioGroup/index.js +1 -1
- package/dist/components/RangeSlider/index.js +1 -1
- package/dist/components/ResizeHandle/index.js +1 -1
- package/dist/components/Select/Select.d.ts +8 -0
- package/dist/components/Select/Select.d.ts.map +1 -1
- package/dist/components/Select/index.js +1 -1
- package/dist/components/SelectionPanel/index.js +1 -1
- package/dist/components/Sidebar/index.js +1 -1
- package/dist/components/SidebarPanel/index.js +1 -1
- package/dist/components/Slider/Slider.d.ts +19 -1
- package/dist/components/Slider/Slider.d.ts.map +1 -1
- package/dist/components/Slider/index.d.ts +1 -1
- package/dist/components/Slider/index.d.ts.map +1 -1
- package/dist/components/Slider/index.js +1 -1
- package/dist/components/StatusBar/index.js +1 -1
- package/dist/components/Switch/index.js +1 -1
- package/dist/components/Tabs/index.js +1 -1
- package/dist/components/Timeline/Lane.d.ts.map +1 -1
- package/dist/components/Timeline/index.js +2 -2
- package/dist/components/Timeline/keys.d.ts +1 -1
- package/dist/components/Timeline/keys.d.ts.map +1 -1
- package/dist/components/Toast/index.js +1 -1
- package/dist/components/ToggleBar/index.js +1 -1
- package/dist/components/TokenPanel/TokenPanel.d.ts +33 -0
- package/dist/components/TokenPanel/TokenPanel.d.ts.map +1 -0
- package/dist/components/TokenPanel/color.d.ts +7 -0
- package/dist/components/TokenPanel/color.d.ts.map +1 -0
- package/dist/components/TokenPanel/index.d.ts +5 -0
- package/dist/components/TokenPanel/index.d.ts.map +1 -0
- package/dist/components/TokenPanel/index.js +2 -0
- package/dist/components/TokenPanel/tokenTypes.d.ts +31 -0
- package/dist/components/TokenPanel/tokenTypes.d.ts.map +1 -0
- package/dist/components/ToolButton/index.js +1 -1
- package/dist/components/ToolGroup/index.js +1 -1
- package/dist/components/ToolPalette/index.js +1 -1
- package/dist/components/paintValue.d.ts +8 -0
- package/dist/components/paintValue.d.ts.map +1 -1
- package/dist/handles.d.ts +20 -0
- package/dist/handles.d.ts.map +1 -0
- package/dist/icons/Icon.d.ts +10 -2
- package/dist/icons/Icon.d.ts.map +1 -1
- package/dist/icons/index.d.ts +6 -3
- package/dist/icons/index.d.ts.map +1 -1
- package/dist/icons/paths.d.ts +270 -16
- package/dist/icons/paths.d.ts.map +1 -1
- package/dist/index.d.ts +7 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +75 -70
- package/dist/index.js.map +1 -1
- package/dist/paintPreview.d.ts +13 -0
- package/dist/paintPreview.d.ts.map +1 -0
- package/dist/{components/CurveEditor/snap.d.ts → snap.d.ts} +2 -0
- package/dist/snap.d.ts.map +1 -0
- package/dist/style.css +1 -1
- package/package.json +8 -7
- package/dist/chunks/BandEditor-BeWO56_w.js.map +0 -1
- package/dist/chunks/CurveEditor-Cj0lLiyR.js.map +0 -1
- package/dist/chunks/DetentSlider-CYicfnKr.js +0 -83
- package/dist/chunks/DetentSlider-CYicfnKr.js.map +0 -1
- package/dist/chunks/GradientEditor-dBprHbS0.js.map +0 -1
- package/dist/chunks/Icon-DBXtBB1f.js +0 -101
- package/dist/chunks/Icon-DBXtBB1f.js.map +0 -1
- package/dist/chunks/Keycaps-DSeq6QWH.js.map +0 -1
- package/dist/chunks/PaintInput-DAevU7fd.js +0 -118
- package/dist/chunks/PaintInput-DAevU7fd.js.map +0 -1
- package/dist/chunks/Prefs-CzIn-hlq.js +0 -302
- package/dist/chunks/Prefs-CzIn-hlq.js.map +0 -1
- package/dist/chunks/Properties-DJaDEJkT.js +0 -765
- package/dist/chunks/Properties-DJaDEJkT.js.map +0 -1
- package/dist/chunks/Select-CacMfs4v.js.map +0 -1
- package/dist/chunks/Slider--DFRC_hc.js +0 -303
- package/dist/chunks/Slider--DFRC_hc.js.map +0 -1
- package/dist/chunks/Timeline-DOZgb1CG.js.map +0 -1
- package/dist/chunks/ToggleBar-Bxwv6xvj.js.map +0 -1
- package/dist/chunks/createKeyframeLayer-AL4jP0EX.js.map +0 -1
- package/dist/chunks/icons-BV27dhKB.js.map +0 -1
- package/dist/chunks/range.module-CvSfABmu.js +0 -8
- package/dist/chunks/range.module-CvSfABmu.js.map +0 -1
- package/dist/chunks/segmentedControl.module-BgvAPkSZ.js +0 -11
- package/dist/chunks/segmentedControl.module-BgvAPkSZ.js.map +0 -1
- package/dist/components/CurveEditor/snap.d.ts.map +0 -1
package/dist/index.js
CHANGED
|
@@ -1,85 +1,90 @@
|
|
|
1
1
|
import { n as e, t } from "./chunks/dlog-CMYiRF3Q.js";
|
|
2
|
-
import { n,
|
|
3
|
-
import { $ as
|
|
4
|
-
import { i as
|
|
5
|
-
import { n as
|
|
6
|
-
import { n as
|
|
7
|
-
import { t as
|
|
8
|
-
import { n as
|
|
2
|
+
import { a as n, i as r, n as i, r as a, t as o } from "./chunks/Icon-QhLhaGFe.js";
|
|
3
|
+
import { $ as s, A as c, B as l, C as u, D as d, E as f, F as p, G as m, H as ee, I as te, J as ne, K as re, L as ie, M as h, N as g, O as _, P as v, Q as y, R as b, S as x, T as S, U as C, V as w, W as T, X as E, Y as D, Z as O, _ as k, a as A, at as j, b as M, c as N, ct as P, d as F, dt as I, et as L, f as R, ft as z, g as B, h as V, i as H, it as U, j as W, k as G, l as K, lt as q, m as J, mt as Y, n as ae, nt as oe, o as se, ot as ce, p as le, pt as ue, q as de, r as fe, rt as pe, s as me, st as he, t as ge, tt as _e, u as ve, ut as ye, v as be, w as xe, x as Se, y as Ce, z as we } from "./chunks/icons-Btrs-JD7.js";
|
|
4
|
+
import { i as Te, n as Ee, r as De, t as Oe } from "./chunks/Prefs-FuaJBs3t.js";
|
|
5
|
+
import { n as ke, r as Ae, t as je } from "./chunks/portalHost-CjpCnuGU.js";
|
|
6
|
+
import { n as Me, t as Ne } from "./chunks/Tooltip-BHre_vbI.js";
|
|
7
|
+
import { t as Pe } from "./chunks/ActionBar-GZdcfdQL.js";
|
|
8
|
+
import { n as Fe, t as Ie } from "./chunks/Badge-Bf8Rd1R6.js";
|
|
9
9
|
import "./components/Badge/index.js";
|
|
10
|
-
import { t as
|
|
11
|
-
import { t as
|
|
12
|
-
import { t as
|
|
13
|
-
import { n as
|
|
14
|
-
import { t as
|
|
15
|
-
import { a as
|
|
16
|
-
import { t as
|
|
17
|
-
import { t as
|
|
18
|
-
import { t as
|
|
19
|
-
import { a as
|
|
20
|
-
import { t as
|
|
21
|
-
import { t as
|
|
22
|
-
import { t as
|
|
23
|
-
import { t as
|
|
24
|
-
import { t as
|
|
25
|
-
import { t as
|
|
26
|
-
import { t as
|
|
27
|
-
import { t as
|
|
28
|
-
import { i as
|
|
29
|
-
import { n as
|
|
30
|
-
import { t as
|
|
31
|
-
import { t as
|
|
32
|
-
import { t as
|
|
33
|
-
import {
|
|
34
|
-
import {
|
|
35
|
-
import { t as
|
|
36
|
-
import { t as
|
|
37
|
-
import {
|
|
38
|
-
import {
|
|
39
|
-
import { t as
|
|
40
|
-
import { t as
|
|
41
|
-
import {
|
|
42
|
-
import { t as
|
|
43
|
-
import { a as
|
|
44
|
-
import {
|
|
45
|
-
import { a as
|
|
46
|
-
import { a as
|
|
47
|
-
import {
|
|
48
|
-
import { t as
|
|
49
|
-
import {
|
|
50
|
-
import { t as
|
|
51
|
-
import {
|
|
52
|
-
import { t as
|
|
53
|
-
import { t as
|
|
54
|
-
import { n as
|
|
10
|
+
import { t as Le } from "./chunks/Button-CExdkQcU.js";
|
|
11
|
+
import { t as Re } from "./chunks/useReorderDragList-CSQGd7zQ.js";
|
|
12
|
+
import { t as ze } from "./chunks/DataGrid-BVdDMZkQ.js";
|
|
13
|
+
import { n as Be, t as Ve } from "./chunks/Disclosure-9UgDzc7Z.js";
|
|
14
|
+
import { t as He } from "./chunks/DragHandleGlyph-CppAz4_8.js";
|
|
15
|
+
import { a as Ue, i as We, n as Ge, o as Ke, r as qe, t as Je } from "./chunks/Keycaps-CGNQV2Pz.js";
|
|
16
|
+
import { t as Ye } from "./chunks/keyGlyph-Bp0wnLHn.js";
|
|
17
|
+
import { t as Xe } from "./chunks/LayerStack-DOylrQcm.js";
|
|
18
|
+
import { t as Ze } from "./chunks/Slider-B2ywUZH6.js";
|
|
19
|
+
import { a as Qe, i as $e, n as et, o as tt, r as nt, t as rt } from "./chunks/number-f6PydOZK.js";
|
|
20
|
+
import { t as it } from "./chunks/ItemList-BZJQReXD.js";
|
|
21
|
+
import { t as at } from "./chunks/ToggleBar--9As2PWG.js";
|
|
22
|
+
import { t as ot } from "./chunks/useRovingTabIndex-Dkpf_KhN.js";
|
|
23
|
+
import { t as st } from "./chunks/OptionsBar-BWaYG_OH.js";
|
|
24
|
+
import { t as ct } from "./chunks/ActionsBar-Fhx_40iP.js";
|
|
25
|
+
import { t as lt } from "./chunks/ToolOptionsBar-B2xPWzJf.js";
|
|
26
|
+
import { t as ut } from "./chunks/InlineRange-DdIlfGqG.js";
|
|
27
|
+
import { t as dt } from "./chunks/ColorField-YVf8irfr.js";
|
|
28
|
+
import { i as ft, n as pt, r as mt, t as ht } from "./chunks/GradientEditor-B_ymIr4Q.js";
|
|
29
|
+
import { n as gt, r as _t, t as vt } from "./chunks/MeshEditor-CHoGQ9K8.js";
|
|
30
|
+
import { n as yt, t as bt } from "./chunks/PatternPicker-C4OryrYi.js";
|
|
31
|
+
import { t as xt } from "./chunks/PaintInput-BzAHCKro.js";
|
|
32
|
+
import { t as St } from "./chunks/PaintField-BVYMu3OI.js";
|
|
33
|
+
import { t as Ct } from "./chunks/Powerline-B_EH-7Z-.js";
|
|
34
|
+
import { t as wt } from "./chunks/Checkbox-BZZsPaVF.js";
|
|
35
|
+
import { n as Tt, t as Et } from "./chunks/Field-BNqvUJfg.js";
|
|
36
|
+
import { n as Dt, t as Ot } from "./chunks/Select-BMYVh10x.js";
|
|
37
|
+
import { t as kt } from "./chunks/FontFamilySelect-CO19kyOO.js";
|
|
38
|
+
import { t as At } from "./chunks/Input-B9Vh7ASP.js";
|
|
39
|
+
import { n as jt, t as Mt } from "./chunks/NumberField-CQzS6TjF.js";
|
|
40
|
+
import { n as Nt, t as Pt } from "./chunks/RadioGroup-C6xpdQNg.js";
|
|
41
|
+
import { t as Ft } from "./chunks/RangeSlider-CzgeGLVS.js";
|
|
42
|
+
import { t as It } from "./chunks/Switch-Om3t3ASc.js";
|
|
43
|
+
import { a as Lt, i as Rt, n as zt, t as Bt } from "./chunks/schema-MCVT1MLv.js";
|
|
44
|
+
import { t as Vt } from "./chunks/Dialog-DuOzsR2g.js";
|
|
45
|
+
import { a as Ht, c as Ut, i as Wt, n as Gt, o as Kt, r as qt, s as Jt, t as Yt } from "./chunks/Plot2D-Czvyt_vG.js";
|
|
46
|
+
import { a as Xt, i as Zt, n as Qt, r as $t, t as en } from "./chunks/CurveEditor-BXiMoN9d.js";
|
|
47
|
+
import { c as tn, i as nn, n as rn, o as an, r as on, s as sn, t as cn } from "./chunks/createKeyframeLayer-7j7ukrSx.js";
|
|
48
|
+
import { t as ln } from "./chunks/snap-B0WQwetQ.js";
|
|
49
|
+
import { _ as un, a as dn, c as fn, d as pn, f as mn, g as hn, h as gn, i as _n, l as vn, m as yn, n as bn, o as xn, p as Sn, r as Cn, s as wn, t as Tn, u as En, v as Dn } from "./chunks/Properties-B3KU69NI.js";
|
|
50
|
+
import { a as On, c as kn, i as An, n as jn, o as Mn, r as Nn, s as Pn, t as Fn } from "./chunks/SelectionPanel-DTpcQidl.js";
|
|
51
|
+
import { t as In } from "./chunks/ResizeHandle-1Ey8AOij.js";
|
|
52
|
+
import { t as Ln } from "./chunks/Sidebar-BlUjn8lD.js";
|
|
53
|
+
import { t as Rn } from "./chunks/SidebarPanel-BqHfz6VK.js";
|
|
54
|
+
import { n as zn, r as Bn, t as Vn } from "./chunks/StatusBar-BFt7Yw5O.js";
|
|
55
|
+
import { t as Hn } from "./chunks/ToolButton-Dd-1T5aX.js";
|
|
56
|
+
import { t as Un } from "./chunks/ToolGroup-BBI-W-Gm.js";
|
|
57
|
+
import { n as Wn, r as Gn, t as Kn } from "./chunks/ToolPalette-BmTDDpmz.js";
|
|
55
58
|
import "./components/Field/index.js";
|
|
56
|
-
import { i as
|
|
57
|
-
import { t as
|
|
58
|
-
import { n as
|
|
59
|
-
import { t as
|
|
60
|
-
import { n as
|
|
61
|
-
import { a as
|
|
62
|
-
import { t as
|
|
63
|
-
import { n as
|
|
64
|
-
import {
|
|
65
|
-
import {
|
|
66
|
-
import {
|
|
59
|
+
import { i as qn, n as Jn, r as Yn, t as Xn } from "./chunks/Tabs-EAvYywil.js";
|
|
60
|
+
import { t as Zn } from "./chunks/MenuButton-DGE-0DP0.js";
|
|
61
|
+
import { n as Qn, t as $n } from "./chunks/ComboBox-D57tNYDD.js";
|
|
62
|
+
import { t as er } from "./chunks/DetentSlider-BWNSv07Z.js";
|
|
63
|
+
import { n as tr, t as nr } from "./chunks/Callout-cx5_CWcW.js";
|
|
64
|
+
import { a as rr, i as ir, n as ar, r as or, t as sr } from "./chunks/Toast-iqLDD_XZ.js";
|
|
65
|
+
import { t as cr } from "./chunks/PointPlotter-Xvb98GwB.js";
|
|
66
|
+
import { i as lr, n as ur, r as X, t as dr } from "./chunks/TokenPanel-BL9hlq7x.js";
|
|
67
|
+
import { n as fr, r as pr, t as mr } from "./chunks/BandEditor-D8I5Uun-.js";
|
|
68
|
+
import { t as hr } from "./chunks/Jog-BYrxbAQU.js";
|
|
69
|
+
import { a as gr, c as _r, i as vr, l as yr, n as br, o as xr, r as Sr, s as Cr, t as wr } from "./chunks/Timeline-BEyKaBXl.js";
|
|
70
|
+
import { oklabToSrgbU8 as Tr, oklchToOklab as Er, rgbaToHex as Dr } from "@weasel-js/core";
|
|
71
|
+
import { useCallback as Or, useEffect as Z, useRef as Q, useState as $ } from "react";
|
|
67
72
|
//#region src/color/oklch.ts
|
|
68
|
-
function
|
|
69
|
-
let [r, i, a] =
|
|
70
|
-
return
|
|
73
|
+
function kr(e, t, n) {
|
|
74
|
+
let [r, i, a] = Er(e, t, n * Math.PI / 180), [o, s, c] = Tr(r, i, a);
|
|
75
|
+
return Dr([
|
|
71
76
|
o / 255,
|
|
72
77
|
s / 255,
|
|
73
78
|
c / 255
|
|
74
79
|
]);
|
|
75
80
|
}
|
|
76
|
-
function
|
|
81
|
+
function Ar(e, t) {
|
|
77
82
|
let [n, r] = t.lRange;
|
|
78
83
|
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));
|
|
79
84
|
}
|
|
80
85
|
//#endregion
|
|
81
86
|
//#region src/useAsyncOptions.ts
|
|
82
|
-
function
|
|
87
|
+
function jr({ load: e, debounceMs: t = 150, minLength: n = 0 }) {
|
|
83
88
|
let [r, i] = $(""), [a, o] = $([]), [s, c] = $(!1), [l, u] = $(null), d = Q(e);
|
|
84
89
|
d.current = e;
|
|
85
90
|
let f = Q(0), p = Q(0), m = Q(null);
|
|
@@ -106,10 +111,10 @@ function fr({ load: e, debounceMs: t = 150, minLength: n = 0 }) {
|
|
|
106
111
|
isLoading: s,
|
|
107
112
|
loadError: l,
|
|
108
113
|
inputValue: r,
|
|
109
|
-
onInputChange:
|
|
114
|
+
onInputChange: Or((e) => i(e), [])
|
|
110
115
|
};
|
|
111
116
|
}
|
|
112
117
|
//#endregion
|
|
113
|
-
export {
|
|
118
|
+
export { Pe as ActionBar, ct as ActionsBar, ge as AddIcon, wr as AnimatedTimeline, ae as ArrowIcon, Ie as Badge, mr as BandEditor, fe as BusyIcon, Le as Button, nr as Callout, tr as CalloutTrigger, wt as Checkbox, dn as CheckboxRow, H as ChevronIcon, A as CloneIcon, se as CloseIcon, me as CollapseIcon, dt as ColorField, xn as ColorRow, $n as ComboBox, Qn as ComboBoxItem, N as CompareIcon, K as CrosshairIcon, Qt as CurveEditor, Dn as CurveField, ze as DataGrid, ve as DeleteIcon, er as DetentSlider, Vt as Dialog, Ve as Disclosure, Be as DisclosureRow, He as DragHandleGlyph, xr as EASING_NAMES, Fe as EDGE_PROFILES, gr as EasingPicker, bn as EffectCard, Cn as EffectCardList, F as EllipseIcon, R as ErrorIcon, le as ExpandIcon, J as ExportIcon, V as EyedropperIcon, Et as Field, B as FilterIcon, k as FitIcon, kt as FontFamilySelect, be as FullscreenIcon, mt as GradientEditor, pt as GradientHandles, Ce as GridIcon, an as HANDLE_SIZE_TOKENS, M as HandIcon, Se as HiddenIcon, a as ICON_FILLS, r as ICON_GROUPS, n as ICON_PATHS, o as Icon, x as ImageIcon, u as InfoIcon, ut as InlineRange, At as Input, it as ItemList, hr as Jog, Ue as KeyCap, We as KeySequence, xe as LassoIcon, Xe as LayerStack, nn as LayeredCurveEditor, S as LayersIcon, f as LayoutColumnsIcon, d as LayoutGridIcon, _ as LayoutRowsIcon, G as LineIcon, c as LinkIcon, W as LockIcon, h as LoupeIcon, rt as MINUS_SIGN, jn as MIXED, g as MeasureIcon, Zn as MenuButton, vt as MeshEditor, v as ModeAutoIcon, p as ModeDarkIcon, te as ModeLightIcon, jt as NumberField, wn as NumberRow, st as OptionsBar, je as OverlayPortalProvider, St as PaintField, xt as PaintInput, ie as PanIcon, bt as PatternPicker, b as PauseIcon, we as PenIcon, l as PencilIcon, un as PinDot, w as PinIcon, ee as PlayIcon, Yt as Plot2D, cr as PointPlotter, C as PolygonIcon, Ct as Powerline, Oe as PrefsDialog, Ee as PrefsForm, Tn as PropertyGroup, fn as PropertyList, vn as PropertyPanel, En as PropertyRow, pn as PropertySpan, Pt as Radio, Nt as RadioGroup, T as RandomizeIcon, Ft as RangeSlider, m as RectIcon, re as RedoIcon, de as RefreshIcon, ne as RemoveIcon, D as ResetIcon, In as ResizeHandle, ht as SceneGradientHandles, E as SearchIcon, Ot as Select, O as SelectIcon, Dt as SelectItem, mn as SelectRow, Fn as SelectionPanel, Ln as Sidebar, Rn as SidebarPanel, Ze as Slider, Sn as SliderRow, y as SnapIcon, s as SnapshotIcon, L as SortIcon, _e as StarIcon, Vn as StatusBar, zn as StatusBarItem, Bn as StatusBarSpacer, oe as StepBackIcon, pe as StepForwardIcon, U as StepIcon, j as StopIcon, _n as Subpanel, It as Switch, yn as SwitchRow, ur as TOKEN_CATEGORIES, Xn as Tab, Jn as TabList, Yn as TabPanel, qn as Tabs, ce as TextIcon, gn as TextRow, br as Timeline, ar as ToastQueue, sr as ToastRegion, at as ToggleBar, hn as ToggleRow, dr as TokenPanel, Hn as ToolButton, Un as ToolGroup, lt as ToolOptionsBar, Kn as ToolPalette, Ne as Tooltip, Me as TooltipTrigger, vr as Transport, he as TuneIcon, P as UndoIcon, Mt as UnitField, q as UnknownIcon, ye as UnlockIcon, I as VisibleIcon, z as WarningIcon, ue as ZoomInIcon, Y as ZoomOutIcon, Nn as aggregateValue, cn as applyKeyframeDrag, Ar as chromaAt, An as classifyKind, $t as createFunctionLayer, rn as createKeyframeLayer, en as createSetCurveOp, or as createToastQueue, ir as defaultToastQueue, Je as detectPlatform, t as dlog, Cr as easingBezier, _r as easingLabel, On as effectiveSections, Tt as fieldClasses, et as formatCompact, nt as formatNumber, Wn as formatShortcut, Gn as formatShortcutParts, Gt as formatTick, $e as formatZoom, Zt as functionLayerState, sn as handleHalf, tn as handleSize, Ke as inferKeycapKind, X as inferTokenType, e as isDebugEnabled, i as isFillable, gt as isMeshPaint, Bt as isPrefLeaf, Ye as keyGlyph, Ge as keySpecFromKey, qe as keySpecsFromMods, on as keyframeLayerState, Mn as kindBreakdown, fr as linearScale, pr as logScale, Jt as modelToPlot, ke as nearestPortalHost, qt as niceStep, Wt as niceTicks, Pn as nodeValueAt, kr as oklchToHex, ft as paintGradientTrack, _t as paintPreviewCss, Qe as parseNumber, tt as parseSignedNumber, Ut as plotToModel, zt as prefDisplayBounds, Rt as prefValueAtPath, Sr as samePath, Xt as sampleByInterpolation, yr as sampleEasing, yt as seedPattern, kn as setAtPath, ln as snapToNearest, De as solidColorOf, Ht as stepDecimals, Te as strokeColorOf, Kt as tickDecimals, rr as toast, lr as tokenCategory, jr as useAsyncOptions, Ae as useOverlayPortal, Re as useReorderDragList, ot as useRovingTabIndex, Lt as visiblePrefSubtree };
|
|
114
119
|
|
|
115
120
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":[],"sources":["../src/color/oklch.ts","../src/useAsyncOptions.ts"],"sourcesContent":["// OKLCH math from Björn Ottosson: https://bottosson.github.io/posts/oklab/\nimport { oklchToOklab, oklabToSrgbU8, rgbaToHex } 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 function oklchToHex(L: number, C: number, Hdeg: number): string {\n // Delegate to the kit's OKLab pipeline (kit angle unit is radians) →\n // gamut-clipped u8 sRGB → `#rrggbb`.\n const [l, a, b] = oklchToOklab(L, C, (Hdeg * Math.PI) / 180);\n const [r, g, bl] = oklabToSrgbU8(l, a, b);\n return rgbaToHex([r / 255, g / 255, bl / 255]);\n}\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 { useCallback, useEffect, useRef, useState } from 'react';\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 = useRef(load);\n loadRef.current = 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]);\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":"
|
|
1
|
+
{"version":3,"file":"index.js","names":[],"sources":["../src/color/oklch.ts","../src/useAsyncOptions.ts"],"sourcesContent":["// OKLCH math from Björn Ottosson: https://bottosson.github.io/posts/oklab/\nimport { oklchToOklab, oklabToSrgbU8, rgbaToHex } 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 function oklchToHex(L: number, C: number, Hdeg: number): string {\n // Delegate to the kit's OKLab pipeline (kit angle unit is radians) →\n // gamut-clipped u8 sRGB → `#rrggbb`.\n const [l, a, b] = oklchToOklab(L, C, (Hdeg * Math.PI) / 180);\n const [r, g, bl] = oklabToSrgbU8(l, a, b);\n return rgbaToHex([r / 255, g / 255, bl / 255]);\n}\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 { useCallback, useEffect, useRef, useState } from 'react';\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 = useRef(load);\n loadRef.current = 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]);\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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAwBA,SAAgB,GAAW,GAAW,GAAW,GAAsB;CAGrE,IAAM,CAAC,GAAG,GAAG,KAAK,GAAa,GAAG,GAAI,IAAO,KAAK,KAAM,IAAI,EACtD,CAAC,GAAG,GAAG,KAAM,GAAc,GAAG,GAAG,EAAE;AACzC,QAAO,GAAU;EAAC,IAAI;EAAK,IAAI;EAAK,IAAK;EAAI,CAAC;;AAIhD,SAAgB,GAAS,GAAW,GAA4B;CAC9D,IAAM,CAAC,GAAI,KAAM,EAAM;AAIvB,QAHI,KAAK,IAAW,EAAM,OACtB,KAAK,IAAW,EAAM,OACtB,KAAK,EAAM,OAAa,EAAM,QAAQ,EAAM,QAAQ,EAAM,UAAU,IAAI,MAAO,EAAM,OAAO,MACzF,EAAM,SAAS,EAAM,OAAO,EAAM,WAAW,IAAI,EAAM,SAAS,IAAK,EAAM;;;;ACCpF,SAAgB,GAAwC,EACtD,SACA,gBAAa,KACb,eAAY,KACqC;CACjD,IAAM,CAAC,GAAY,KAAiB,EAAS,GAAG,EAC1C,CAAC,GAAS,KAAc,EAAwC,EAAE,CAAC,EACnE,CAAC,GAAW,KAAgB,EAAS,GAAM,EAC3C,CAAC,GAAW,KAAgB,EAAyB,KAAK,EAI1D,IAAU,EAAO,EAAK;AAC5B,GAAQ,UAAU;CAMlB,IAAM,IAAS,EAAO,EAAE,EAClB,IAAU,EAAO,EAAE,EACnB,IAAW,EAA+B,KAAK;AA4CrD,QA1CA,QAAgB;AACd,MAAI,EAAW,SAAS,GAAW;AAMjC,GALA,EAAS,SAAS,OAAO,EACzB,EAAS,UAAU,MACnB,EAAQ,UAAU,EAAO,SACzB,EAAW,EAAE,CAAC,EACd,EAAa,GAAM,EACnB,EAAa,KAAK;AAClB;;EAGF,IAAM,IAAQ,iBAAiB;GAC7B,IAAM,IAAO,EAAE,EAAO,SAChB,IAAa,IAAI,iBAAiB;AAKxC,GAJA,EAAS,SAAS,OAAO,EACzB,EAAS,UAAU,GACnB,EAAa,GAAK,EAElB,EAAQ,QAAQ,GAAY,EAAW,OAAO,CAAC,MAC5C,MAAS;AACJ,SAAQ,EAAQ,YACpB,EAAQ,UAAU,GAClB,EAAW,EAAK,EAChB,EAAa,KAAK,EAClB,EAAa,GAAM;OAEpB,MAAmB;AACd,MAAW,OAAO,WAAW,KAAQ,EAAQ,YACjD,EAAQ,UAAU,GAClB,EAAa,EAAM,EACnB,EAAa,GAAM;KAEtB;KACA,EAAW;AAEd,eAAa,aAAa,EAAM;IAC/B;EAAC;EAAY;EAAY;EAAU,CAAC,EAEvC,cAAsB,EAAS,SAAS,OAAO,EAAE,EAAE,CAAC,EAI7C;EAAE;EAAS;EAAW;EAAW;EAAY,eAF9B,IAAa,MAAiB,EAAc,EAAK,EAAE,EAAE,CAEvB;EAAe"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { type FillStyle } from '@weasel-js/core';
|
|
2
|
+
/**
|
|
3
|
+
* `paint` as a CSS `background` value, or `undefined` for a paint with no CSS
|
|
4
|
+
* form — a pattern, a registered kind — which a caller shows as a checker or
|
|
5
|
+
* a placeholder rather than as an invented color.
|
|
6
|
+
*
|
|
7
|
+
* Gradient geometry is honored as far as CSS can carry it: the angle of a
|
|
8
|
+
* linear gradient, the center of a radial or conic one. A paint in `'world'`
|
|
9
|
+
* or `'local'` units is measured in the scene rather than in the chip, so its
|
|
10
|
+
* preview shows the ramp and not the placement.
|
|
11
|
+
*/
|
|
12
|
+
export declare function paintPreviewCss(paint: FillStyle | null | undefined): string | undefined;
|
|
13
|
+
//# sourceMappingURL=paintPreview.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paintPreview.d.ts","sourceRoot":"","sources":["../src/paintPreview.ts"],"names":[],"mappings":"AASA,OAAO,EAAuB,KAAK,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAkDtE;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CA0BvF"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
/** How close, in screen pixels, a drag has to come to a candidate to snap to it. */
|
|
2
|
+
export declare const SNAP_RADIUS_PX = 6;
|
|
1
3
|
/** Snap `value` to the nearest candidate within `tolerance`, else return it. */
|
|
2
4
|
export declare function snapToNearest(value: number, candidates: readonly number[], tolerance: number): number;
|
|
3
5
|
//# sourceMappingURL=snap.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"snap.d.ts","sourceRoot":"","sources":["../src/snap.ts"],"names":[],"mappings":"AAAA,oFAAoF;AACpF,eAAO,MAAM,cAAc,IAAI,CAAC;AAEhC,gFAAgF;AAChF,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAWrG"}
|