zds-pickers 4.4.0 → 4.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.es.js CHANGED
@@ -1614,19 +1614,26 @@ Z.Soundfont === void 0 && (Z.Soundfont = {}), Z.Soundfont.acoustic_grand_piano =
1614
1614
  var Ct = (e) => e != null && !Number.isNaN(e), wt = (e) => {
1615
1615
  let t = typeof e == "string" ? Number.parseInt(e, 10) : e;
1616
1616
  return p.fromMidi(t);
1617
- }, Tt = (e) => ({
1618
- play: (t, n) => {
1619
- let r = e[wt(t)];
1620
- if (!r) return { stop: () => {} };
1621
- let i = new Audio(r);
1622
- return i.volume = (n ?? 127) / 127, i.play(), { stop: () => {
1623
- i.pause(), i.currentTime = 0;
1617
+ }, Tt = .3, Et = Tt / 5, Dt = (e, t) => ({
1618
+ play: (n, r) => {
1619
+ let i = t[wt(n)];
1620
+ if (!i) return { stop: () => {} };
1621
+ let a = new Audio(i), o = e.createMediaElementSource(a), s = e.createGain();
1622
+ s.gain.value = (r ?? 127) / 127, o.connect(s).connect(e.destination), a.play();
1623
+ let c = !1;
1624
+ return { stop: () => {
1625
+ if (c) return;
1626
+ c = !0;
1627
+ let t = e.currentTime;
1628
+ s.gain.cancelScheduledValues(t), s.gain.setValueAtTime(s.gain.value, t), s.gain.setTargetAtTime(0, t, Et), window.setTimeout(() => {
1629
+ a.pause(), o.disconnect(), s.disconnect();
1630
+ }, Tt * 1e3);
1624
1631
  } };
1625
1632
  },
1626
1633
  stop: () => []
1627
- }), Et = (e, t, n, r, i) => {
1634
+ }), Ot = (e, t, n, r, i) => {
1628
1635
  let a = window.MIDI?.Soundfont?.[t];
1629
- return a ? Promise.resolve(Tt(a)) : (console.warn(`[zds-pickers] Bundled soundfont "${t}" not found; falling back to remote load.`), Ct(i) ? h.instrument(e, t, {
1636
+ return a ? Promise.resolve(Dt(e, a)) : (console.warn(`[zds-pickers] Bundled soundfont "${t}" not found; falling back to remote load.`), Ct(i) ? h.instrument(e, t, {
1630
1637
  format: n,
1631
1638
  soundfont: r,
1632
1639
  nameToUrl: (e, t, n) => `${i}/${t}/${e}-${n}.js`
@@ -1634,8 +1641,8 @@ var Ct = (e) => e != null && !Number.isNaN(e), wt = (e) => {
1634
1641
  format: n,
1635
1642
  soundfont: r
1636
1643
  }));
1637
- }, Dt = (e) => {
1638
- let { audioContext: t, format: n, hostname: r, instrumentName: i, onChange: a, render: c, soundfont: l } = e, [u, f] = d(!0), [p, m] = d({}), [g, _] = d(null), v = o((e) => {
1644
+ }, kt = (e) => {
1645
+ let { audioContext: t, format: n, hostname: r, instrumentName: i, onChange: a, render: c, soundfont: l } = e, [u, f] = d(!!i), [p, m] = d({}), [g, _] = d(null), v = o((e) => {
1639
1646
  if (_(null), f(!0), !i) {
1640
1647
  f(!1);
1641
1648
  return;
@@ -1652,7 +1659,7 @@ var Ct = (e) => e != null && !Number.isNaN(e), wt = (e) => {
1652
1659
  });
1653
1660
  return;
1654
1661
  }
1655
- Et(t, e, n, l, r).then((e) => {
1662
+ Ot(t, e, n, l, r).then((e) => {
1656
1663
  _(e);
1657
1664
  }).catch((t) => {
1658
1665
  console.error(`[zds-pickers] Failed to load soundfont "${e}":`, t), f(!1);
@@ -1665,7 +1672,11 @@ var Ct = (e) => e != null && !Number.isNaN(e), wt = (e) => {
1665
1672
  l
1666
1673
  ]);
1667
1674
  return s(() => {
1668
- i && v(i);
1675
+ if (i) {
1676
+ v(i);
1677
+ return;
1678
+ }
1679
+ _(null), f(!1);
1669
1680
  }, [i, v]), s(() => {
1670
1681
  Ct(i) && f(!g);
1671
1682
  }, [g, i]), c({
@@ -1695,7 +1706,7 @@ var Ct = (e) => e != null && !Number.isNaN(e), wt = (e) => {
1695
1706
  });
1696
1707
  }
1697
1708
  });
1698
- }, Ot = [
1709
+ }, At = [
1699
1710
  "C",
1700
1711
  "C#",
1701
1712
  "D",
@@ -1708,8 +1719,8 @@ var Ct = (e) => e != null && !Number.isNaN(e), wt = (e) => {
1708
1719
  "A",
1709
1720
  "A#",
1710
1721
  "B"
1711
- ], kt = 12 * .7, At = new window.AudioContext(), jt = ({ className: e, octave: t, height: n, renderNoteLabel: r, width: i, ...a }) => {
1712
- let o = (i / kt + 2) / n, s = p.midi(Ot[0] + String(t)) || 0, c = p.midi(Ot[Ot.length - 1] + String(t)) || 0;
1722
+ ], jt = 12 * .7, Mt = new window.AudioContext(), Nt = ({ className: e, octave: t, height: n, renderNoteLabel: r, width: i, ...a }) => {
1723
+ let o = (i / jt + 2) / n, s = p.midi(At[0] + String(t)) || 0, c = p.midi(At[At.length - 1] + String(t)) || 0;
1713
1724
  return /* @__PURE__ */ _("div", { children: /* @__PURE__ */ _(St, {
1714
1725
  className: e,
1715
1726
  keyWidthToHeight: o,
@@ -1721,14 +1732,14 @@ var Ct = (e) => e != null && !Number.isNaN(e), wt = (e) => {
1721
1732
  width: i,
1722
1733
  ...a
1723
1734
  }) });
1724
- }, Mt = ({ className: e, format: t, height: n, hostname: r, instrumentName: i, octave: a = 4, onChange: o, onClick: s, onDoubleClick: c, onKeyMouseEnter: l, onKeyMouseLeave: u, renderNoteLabel: d, selectedNotes: f, soundfont: p, Tooltip: m, width: h }) => /* @__PURE__ */ _(Dt, {
1725
- audioContext: At,
1735
+ }, Pt = ({ className: e, format: t, height: n, hostname: r, instrumentName: i, octave: a = 4, onChange: o, onClick: s, onDoubleClick: c, onKeyMouseEnter: l, onKeyMouseLeave: u, renderNoteLabel: d, selectedNotes: f, soundfont: p, Tooltip: m, width: h }) => /* @__PURE__ */ _(kt, {
1736
+ audioContext: Mt,
1726
1737
  format: t,
1727
1738
  hostname: r,
1728
1739
  instrumentName: i,
1729
1740
  onChange: o,
1730
1741
  soundfont: p,
1731
- render: ({ isLoading: t, playNote: r, stopNote: i }) => /* @__PURE__ */ _(jt, {
1742
+ render: ({ isLoading: t, playNote: r, stopNote: i }) => /* @__PURE__ */ _(Nt, {
1732
1743
  disabled: t,
1733
1744
  className: e,
1734
1745
  height: n,
@@ -1744,7 +1755,7 @@ var Ct = (e) => e != null && !Number.isNaN(e), wt = (e) => {
1744
1755
  Tooltip: m,
1745
1756
  width: h
1746
1757
  })
1747
- }), Nt = "__react_svg_text_measurement_id", Pt = [
1758
+ }), Ft = "__react_svg_text_measurement_id", It = [
1748
1759
  "font-family",
1749
1760
  "font-feature-settings",
1750
1761
  "font-kerning",
@@ -1756,9 +1767,9 @@ var Ct = (e) => e != null && !Number.isNaN(e), wt = (e) => {
1756
1767
  "letter-spacing",
1757
1768
  "text-transform",
1758
1769
  "word-spacing"
1759
- ], Ft = (e) => Pt.map((t) => e.getPropertyValue(t)).join("|"), It = /* @__PURE__ */ new Map(), Lt = () => {
1760
- It.clear();
1761
- }, Rt = (e, t, n, r) => {
1770
+ ], Lt = (e) => It.map((t) => e.getPropertyValue(t)).join("|"), Rt = /* @__PURE__ */ new Map(), zt = () => {
1771
+ Rt.clear();
1772
+ }, Bt = (e, t, n, r) => {
1762
1773
  let { lineHeight: i, spaceWidth: a, wordsWithComputedWidth: o } = t;
1763
1774
  return e.split(/\s+/).reduce((e, t) => {
1764
1775
  let s = o[t], c = e[e.length - 1];
@@ -1773,11 +1784,11 @@ var Ct = (e) => e != null && !Number.isNaN(e), wt = (e) => {
1773
1784
  }
1774
1785
  return e;
1775
1786
  }, []);
1776
- }, zt = (e, t, n) => {
1787
+ }, Vt = (e, t, n) => {
1777
1788
  if (e && t) {
1778
- let r = Ft(e), i = It.get(r), a = [...new Set(String(n).split(/\s+/))], o = i?.widths, s = o ? a.filter((e) => !o.has(e)) : a;
1789
+ let r = Lt(e), i = Rt.get(r), a = [...new Set(String(n).split(/\s+/))], o = i?.widths, s = o ? a.filter((e) => !o.has(e)) : a;
1779
1790
  if (!i || s.length) {
1780
- for (let n of Pt) t.style.setProperty(n, e.getPropertyValue(n), e.getPropertyPriority(n));
1791
+ for (let n of It) t.style.setProperty(n, e.getPropertyValue(n), e.getPropertyPriority(n));
1781
1792
  if (!i) {
1782
1793
  t.textContent = "\xA0";
1783
1794
  let e = t?.getComputedTextLength?.() || 8, n = t.getBBox().height;
@@ -1785,7 +1796,7 @@ var Ct = (e) => e != null && !Number.isNaN(e), wt = (e) => {
1785
1796
  widths: /* @__PURE__ */ new Map(),
1786
1797
  spaceWidth: e,
1787
1798
  lineHeight: n
1788
- }, It.set(r, i);
1799
+ }, Rt.set(r, i);
1789
1800
  }
1790
1801
  for (let e of s) t.textContent = e, i.widths.set(e, t.getBBox().width);
1791
1802
  t.setAttribute("style", "");
@@ -1798,7 +1809,7 @@ var Ct = (e) => e != null && !Number.isNaN(e), wt = (e) => {
1798
1809
  lineHeight: i.lineHeight
1799
1810
  };
1800
1811
  }
1801
- }, Bt = (e) => {
1812
+ }, Ht = (e) => {
1802
1813
  let { className: t = "", dx: n = 0, dy: r = 0, maxHeight: i = 1e3, maxWidth: a = 1e3, text: c = "", verticalAnchor: f = "start", x: p = 0, y: m = 0, transform: h = "", ...y } = e, [b, x] = d(), [S, C] = d([]), [w, T] = d(), E = u({}), D = l(() => {
1803
1814
  let e = S.filter(({ showLine: e }) => e);
1804
1815
  return e.length ? e : c.split(/\n/).map((e) => ({
@@ -1810,21 +1821,21 @@ var Ct = (e) => e != null && !Number.isNaN(e), wt = (e) => {
1810
1821
  T(e === null ? void 0 : window.getComputedStyle(e));
1811
1822
  }, []);
1812
1823
  s(() => {
1813
- let e = document.getElementById(Nt);
1824
+ let e = document.getElementById(Ft);
1814
1825
  if (e === null) {
1815
1826
  let e = document.createElementNS("http://www.w3.org/2000/svg", "svg");
1816
- e.setAttribute("id", Nt), e.setAttribute("aria-hidden", "true"), e.style.position = "fixed", e.style.left = "-9999px", e.style.top = "0";
1827
+ e.setAttribute("id", Ft), e.setAttribute("aria-hidden", "true"), e.style.position = "fixed", e.style.left = "-9999px", e.style.top = "0";
1817
1828
  let t = document.createElementNS("http://www.w3.org/2000/svg", "text");
1818
1829
  e.appendChild(t), document.body.appendChild(e), E.current = t;
1819
1830
  return;
1820
1831
  }
1821
1832
  E.current = e.tagName.toLowerCase() === "text" ? e : e.querySelector("text") ?? e;
1822
1833
  }, []), s(() => {
1823
- let e = zt(w, E.current, c);
1834
+ let e = Vt(w, E.current, c);
1824
1835
  x(e);
1825
1836
  }, [c, w]), s(() => {
1826
1837
  if (a && b) {
1827
- let e = c.split(/\n/).flatMap((e) => Rt(e, b, a, i));
1838
+ let e = c.split(/\n/).flatMap((e) => Bt(e, b, a, i));
1828
1839
  C(e);
1829
1840
  }
1830
1841
  }, [
@@ -1861,12 +1872,12 @@ var Ct = (e) => e != null && !Number.isNaN(e), wt = (e) => {
1861
1872
  children: e.words.join(" ")
1862
1873
  }, t)), S.length && D.length !== S.length && /* @__PURE__ */ v(g, { children: [/* @__PURE__ */ _("tspan", { children: "..." }), /* @__PURE__ */ _("title", { children: c })] })] })
1863
1874
  });
1864
- }, Vt = 255, { IndicatorsContainer: Ht, Placeholder: Ut, ValueContainer: Wt } = b, Gt = {
1875
+ }, Ut = 255, { IndicatorsContainer: Wt, Placeholder: Gt, ValueContainer: Kt } = b, qt = {
1865
1876
  label: "--",
1866
1877
  value: 255
1867
- }, Kt = (e) => {
1878
+ }, Jt = (e) => {
1868
1879
  let { children: t, ...n } = e, r = n.selectProps?.actionButton;
1869
- return /* @__PURE__ */ _(Ht, {
1880
+ return /* @__PURE__ */ _(Wt, {
1870
1881
  ...n,
1871
1882
  children: /* @__PURE__ */ v("div", {
1872
1883
  onMouseDown: (e) => {
@@ -1876,15 +1887,15 @@ var Ct = (e) => e != null && !Number.isNaN(e), wt = (e) => {
1876
1887
  children: [r, t]
1877
1888
  })
1878
1889
  });
1879
- }, qt = ({ children: e, ...n }) => /* @__PURE__ */ v(Wt, {
1890
+ }, Yt = ({ children: e, ...n }) => /* @__PURE__ */ v(Kt, {
1880
1891
  ...n,
1881
- children: [/* @__PURE__ */ _(Ut, {
1892
+ children: [/* @__PURE__ */ _(Gt, {
1882
1893
  ...n,
1883
1894
  innerProps: n.innerProps || {},
1884
1895
  className: n.hasValue || n.selectProps.inputValue ? "shrunk" : "",
1885
1896
  isFocused: n.isFocused ?? !1,
1886
1897
  children: n.selectProps.placeholder
1887
- }), t.map(e, (e) => a(e) && e.type !== Ut ? e : null)]
1898
+ }), t.map(e, (e) => a(e) && e.type !== Gt ? e : null)]
1888
1899
  }), Q = i((e, t) => {
1889
1900
  let { components: n, disabled: r, label: i, onChange: a, options: s = [], preserveMenuWidth: c, shrinkLabel: u, value: d, ...f } = e, p = o((e) => {
1890
1901
  e && a(e.value);
@@ -1926,8 +1937,8 @@ var Ct = (e) => e != null && !Number.isNaN(e), wt = (e) => {
1926
1937
  ...f,
1927
1938
  classNamePrefix: "zds-pickers",
1928
1939
  components: {
1929
- IndicatorsContainer: Kt,
1930
- ValueContainer: qt,
1940
+ IndicatorsContainer: Jt,
1941
+ ValueContainer: Yt,
1931
1942
  ...n
1932
1943
  },
1933
1944
  isDisabled: r,
@@ -1947,7 +1958,7 @@ var Ct = (e) => e != null && !Number.isNaN(e), wt = (e) => {
1947
1958
  ...f,
1948
1959
  classNamePrefix: "zds-pickers",
1949
1960
  components: {
1950
- IndicatorsContainer: Kt,
1961
+ IndicatorsContainer: Jt,
1951
1962
  ...n
1952
1963
  },
1953
1964
  isDisabled: r,
@@ -1958,14 +1969,14 @@ var Ct = (e) => e != null && !Number.isNaN(e), wt = (e) => {
1958
1969
  value: h
1959
1970
  })]
1960
1971
  });
1961
- }), Jt = i((e, t) => /* @__PURE__ */ _(Q, {
1972
+ }), Xt = i((e, t) => /* @__PURE__ */ _(Q, {
1962
1973
  ...e,
1963
1974
  options: H,
1964
1975
  ref: t
1965
- })), Yt = z(16).map((e) => ({
1976
+ })), Zt = z(16).map((e) => ({
1966
1977
  value: e,
1967
1978
  label: e
1968
- })), Xt = i(({ channels: e, className: t, ...n }, r) => {
1979
+ })), Qt = i(({ channels: e, className: t, ...n }, r) => {
1969
1980
  let [i, a] = d([]), c = o(({ value: t, label: n }, { context: r }) => {
1970
1981
  if (t === "separator") return /* @__PURE__ */ _("span", {
1971
1982
  className: "zds-mappings-user-mapping",
@@ -1988,7 +1999,7 @@ var Ct = (e) => e != null && !Number.isNaN(e), wt = (e) => {
1988
1999
  });
1989
2000
  }, [e]);
1990
2001
  return s(() => {
1991
- let t = Yt.sort((t, n) => typeof t.value == "number" && typeof n.value == "number" && e[t.value] && !e[n.value] ? -1 : typeof t.value == "number" && typeof n.value == "number" && !e[t.value] && e[n.value] ? 1 : typeof t.value == "number" && typeof n.value == "number" ? t.value - n.value : 0), n = t.filter(({ value: t }) => typeof t == "number" && !!e[t] || t === 255).length, r = t.some(({ value: e }) => e === "separator");
2002
+ let t = Zt.sort((t, n) => typeof t.value == "number" && typeof n.value == "number" && e[t.value] && !e[n.value] ? -1 : typeof t.value == "number" && typeof n.value == "number" && !e[t.value] && e[n.value] ? 1 : typeof t.value == "number" && typeof n.value == "number" ? t.value - n.value : 0), n = t.filter(({ value: t }) => typeof t == "number" && !!e[t] || t === 255).length, r = t.some(({ value: e }) => e === "separator");
1992
2003
  n && n < 16 && !r && t.splice(n, 0, {
1993
2004
  label: /* @__PURE__ */ _("hr", {}),
1994
2005
  value: "separator"
@@ -2000,54 +2011,54 @@ var Ct = (e) => e != null && !Number.isNaN(e), wt = (e) => {
2000
2011
  options: i,
2001
2012
  ref: r
2002
2013
  });
2003
- }), Zt = z(16).map((e) => ({
2014
+ }), $t = z(16).map((e) => ({
2004
2015
  value: e,
2005
2016
  label: `Channel ${e + 1}`
2006
- })), Qt = (e, t) => !t || String(e.label).toLowerCase().includes(t.toLowerCase()), $t = i(({ className: e, value: t = 255, ...n }, r) => {
2017
+ })), en = (e, t) => !t || String(e.label).toLowerCase().includes(t.toLowerCase()), tn = i(({ className: e, value: t = 255, ...n }, r) => {
2007
2018
  let i = o((e, { context: n }) => t === void 0 ? "--" : n === "value" ? e.label : Number.parseInt(String(e.value)) + 1, [t]);
2008
2019
  return /* @__PURE__ */ _(Q, {
2009
2020
  ...n,
2010
2021
  className: m(e, "channel-picker"),
2011
- filterOptions: Qt,
2022
+ filterOptions: en,
2012
2023
  formatOptionLabel: i,
2013
- options: Zt,
2024
+ options: $t,
2014
2025
  value: t,
2015
2026
  ref: r
2016
2027
  });
2017
- }), en = /* @__PURE__ */ new Set(["C", "F"]), tn = /* @__PURE__ */ new Set(["E", "B"]), nn = (e) => ({ isAccidental: t, isActive: n, midiNumber: r }) => {
2028
+ }), nn = /* @__PURE__ */ new Set(["C", "F"]), rn = /* @__PURE__ */ new Set(["E", "B"]), an = (e) => ({ isAccidental: t, isActive: n, midiNumber: r }) => {
2018
2029
  let i = p.pitchClass(p.fromMidi(r) ?? ""), a = ye(r, e);
2019
2030
  return a ? /* @__PURE__ */ _("div", {
2020
2031
  className: m("ReactPiano__NoteLabel", "ReactPiano__NoteLabel--noteName", {
2021
2032
  "ReactPiano__NoteLabel--active": n,
2022
2033
  "ReactPiano__NoteLabel--accidental": t,
2023
2034
  "ReactPiano__NoteLabel--natural": !t,
2024
- "ReactPiano__NoteLabel--nudgeLeft": !t && en.has(i),
2025
- "ReactPiano__NoteLabel--nudgeRight": !t && tn.has(i)
2035
+ "ReactPiano__NoteLabel--nudgeLeft": !t && nn.has(i),
2036
+ "ReactPiano__NoteLabel--nudgeRight": !t && rn.has(i)
2026
2037
  }),
2027
2038
  children: a
2028
2039
  }) : null;
2029
- }, rn = (e) => {
2030
- let { value: t, onChange: n, disabled: r = !1, height: i = 100, noteLabels: a, showNoteNames: s = !1, width: c = 300, octave: u = 4, ...d } = e, f = l(() => nn(a), [a]), p = o((e) => {
2040
+ }, on = (e) => {
2041
+ let { value: t, onChange: n, disabled: r = !1, height: i = 100, muted: a = !1, noteLabels: s, showNoteNames: c = !1, width: u = 300, octave: d = 4, ...f } = e, p = l(() => an(s), [s]), m = o((e) => {
2031
2042
  r || n(e);
2032
- }, [r, n]), m = 60 + (u - 4) * 12, h = m + 11, g = t !== 255 && t >= m && t <= h;
2033
- return /* @__PURE__ */ _(Mt, {
2034
- ...d,
2035
- className: s ? "ReactPiano--showNoteNames" : void 0,
2036
- selectedNotes: g ? [t] : [],
2043
+ }, [r, n]), h = 60 + (d - 4) * 12, g = h + 11, v = t !== 255 && t >= h && t <= g;
2044
+ return /* @__PURE__ */ _(Pt, {
2045
+ ...f,
2046
+ className: c ? "ReactPiano--showNoteNames" : void 0,
2047
+ selectedNotes: v ? [t] : [],
2037
2048
  disabled: r,
2038
2049
  height: i,
2039
- renderNoteLabel: s ? f : void 0,
2040
- width: c,
2041
- octave: u,
2042
- onClick: p,
2043
- instrumentName: "acoustic_grand_piano"
2050
+ renderNoteLabel: c ? p : void 0,
2051
+ width: u,
2052
+ octave: d,
2053
+ onClick: m,
2054
+ instrumentName: a ? void 0 : "acoustic_grand_piano"
2044
2055
  });
2045
- }, an = (e) => {
2056
+ }, sn = (e) => {
2046
2057
  let [t, n] = d(e);
2047
2058
  return s(() => {
2048
2059
  n(e);
2049
2060
  }, [e]), [t, n];
2050
- }, on = class extends e.Component {
2061
+ }, cn = class extends e.Component {
2051
2062
  static defaultProps = { step: 1 };
2052
2063
  render() {
2053
2064
  let e = this.props, t = {};
@@ -2070,20 +2081,20 @@ var Ct = (e) => e != null && !Number.isNaN(e), wt = (e) => {
2070
2081
  };
2071
2082
  //#endregion
2072
2083
  //#region lib/rotaryKnob/utils.ts
2073
- function sn(e) {
2084
+ function ln(e) {
2074
2085
  return e * Math.PI / 180;
2075
2086
  }
2076
- function cn(e, t) {
2087
+ function un(e, t) {
2077
2088
  return e >= 0 && t >= 0 ? 1 : e <= 0 && t >= 0 ? 2 : e <= 0 && t <= 0 ? 3 : e >= 0 && t <= 0 ? 4 : 1;
2078
2089
  }
2079
- function ln(e, t) {
2090
+ function dn(e, t) {
2080
2091
  if (e === 0 && t === 0) return 0;
2081
- let n = Math.atan(e / t) * 180 / Math.PI, r = cn(e, t);
2092
+ let n = Math.atan(e / t) * 180 / Math.PI, r = un(e, t);
2082
2093
  return r === 1 && (n = 90 - n), r === 2 && (n = 90 - n), r === 3 && (n = 270 - n), r === 4 && (n = 270 - n), n;
2083
2094
  }
2084
2095
  //#endregion
2085
2096
  //#region lib/rotaryKnob/helpers/DrawCircle.tsx
2086
- var un = class extends e.Component {
2097
+ var fn = class extends e.Component {
2087
2098
  render() {
2088
2099
  let { r: e, borderColor: t = "black", fillColor: n = "transparent", borderWidth: r = 2, fillOpacity: i = 1, ...a } = this.props;
2089
2100
  return /* @__PURE__ */ _("circle", {
@@ -2094,7 +2105,7 @@ var un = class extends e.Component {
2094
2105
  ...a
2095
2106
  });
2096
2107
  }
2097
- }, dn = class extends e.Component {
2108
+ }, pn = class extends e.Component {
2098
2109
  render() {
2099
2110
  let { width: e = 2, color: t = "black", p1: n, p2: r, ...i } = this.props;
2100
2111
  return /* @__PURE__ */ _("line", {
@@ -2107,7 +2118,7 @@ var un = class extends e.Component {
2107
2118
  y2: r.y
2108
2119
  });
2109
2120
  }
2110
- }, fn = class extends e.Component {
2121
+ }, mn = class extends e.Component {
2111
2122
  render() {
2112
2123
  let { children: e, ...t } = this.props, n = { overlay: Object.assign({
2113
2124
  width: "100%",
@@ -2126,7 +2137,7 @@ var un = class extends e.Component {
2126
2137
  children: e
2127
2138
  }), document.body);
2128
2139
  }
2129
- }, pn = class extends e.Component {
2140
+ }, hn = class extends e.Component {
2130
2141
  state = {
2131
2142
  centerX: 0,
2132
2143
  centerY: 0,
@@ -2135,7 +2146,7 @@ var un = class extends e.Component {
2135
2146
  };
2136
2147
  static getDerivedStateFromProps(e, t) {
2137
2148
  if (!e.svgRef) return t;
2138
- let n = e.svgRef.getBoundingClientRect(), r = n.width / 2, i = e.radius * Math.cos(sn(e.valueAngle - 90)), a = e.radius * Math.sin(sn(e.valueAngle - 90));
2149
+ let n = e.svgRef.getBoundingClientRect(), r = n.width / 2, i = e.radius * Math.cos(ln(e.valueAngle - 90)), a = e.radius * Math.sin(ln(e.valueAngle - 90));
2139
2150
  return {
2140
2151
  ...t,
2141
2152
  centerX: n.left + r,
@@ -2146,7 +2157,7 @@ var un = class extends e.Component {
2146
2157
  }
2147
2158
  render() {
2148
2159
  let e = this.props.minimumDragDistance <= this.props.radius ? "green" : "grey", t = this.props.minimumDragDistance <= this.props.radius ? "#88E22D" : "#D8D8D8", n = this.props.minimumDragDistance >= this.props.radius;
2149
- return /* @__PURE__ */ _(fn, { children: /* @__PURE__ */ v("svg", {
2160
+ return /* @__PURE__ */ _(mn, { children: /* @__PURE__ */ v("svg", {
2150
2161
  style: {
2151
2162
  position: "absolute",
2152
2163
  top: "0",
@@ -2165,7 +2176,7 @@ var un = class extends e.Component {
2165
2176
  orient: "auto",
2166
2177
  children: /* @__PURE__ */ _("path", { d: "M 0 0 L 10 5 L 0 10 z" })
2167
2178
  }) }),
2168
- /* @__PURE__ */ _(un, {
2179
+ /* @__PURE__ */ _(fn, {
2169
2180
  borderColor: e,
2170
2181
  fillColor: t,
2171
2182
  fillOpacity: .02,
@@ -2173,7 +2184,7 @@ var un = class extends e.Component {
2173
2184
  cx: this.state.centerX,
2174
2185
  cy: this.state.centerY
2175
2186
  }),
2176
- n && /* @__PURE__ */ _(un, {
2187
+ n && /* @__PURE__ */ _(fn, {
2177
2188
  borderColor: e,
2178
2189
  fillColor: t,
2179
2190
  fillOpacity: 0,
@@ -2181,7 +2192,7 @@ var un = class extends e.Component {
2181
2192
  cx: this.state.centerX,
2182
2193
  cy: this.state.centerY
2183
2194
  }),
2184
- /* @__PURE__ */ _(dn, {
2195
+ /* @__PURE__ */ _(pn, {
2185
2196
  p1: {
2186
2197
  x: this.state.centerX,
2187
2198
  y: this.state.centerY
@@ -2195,12 +2206,12 @@ var un = class extends e.Component {
2195
2206
  ]
2196
2207
  }) });
2197
2208
  }
2198
- }, mn = {
2209
+ }, gn = {
2199
2210
  knobX: 71,
2200
2211
  knobY: 71,
2201
2212
  svg: "\n\n<svg width=\"204px\" height=\"204px\" viewBox=\"0 0 204 204\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n <!-- Generator: Sketch 47.1 (45422) - http://www.bohemiancoding.com/sketch -->\n <desc>Created with Sketch.</desc>\n <defs>\n <linearGradient x1=\"50%\" y1=\"50%\" x2=\"50%\" y2=\"100%\" id=\"linearGradient-1\">\n <stop stop-color=\"#444040\" stop-opacity=\"0.51098279\" offset=\"0%\"></stop>\n <stop stop-color=\"#131111\" stop-opacity=\"0.893200861\" offset=\"100%\"></stop>\n </linearGradient>\n <circle id=\"path-2\" cx=\"98.0400009\" cy=\"98.0400009\" r=\"98.0400009\"></circle>\n <filter x=\"-3.3%\" y=\"-3.3%\" width=\"106.6%\" height=\"106.6%\" filterUnits=\"objectBoundingBox\" id=\"filter-3\">\n <feMorphology radius=\"0.5\" operator=\"dilate\" in=\"SourceAlpha\" result=\"shadowSpreadOuter1\"></feMorphology>\n <feOffset dx=\"0\" dy=\"0\" in=\"shadowSpreadOuter1\" result=\"shadowOffsetOuter1\"></feOffset>\n <feGaussianBlur stdDeviation=\"2\" in=\"shadowOffsetOuter1\" result=\"shadowBlurOuter1\"></feGaussianBlur>\n <feComposite in=\"shadowBlurOuter1\" in2=\"SourceAlpha\" operator=\"out\" result=\"shadowBlurOuter1\"></feComposite>\n <feColorMatrix values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.5 0\" type=\"matrix\" in=\"shadowBlurOuter1\"></feColorMatrix>\n </filter>\n <linearGradient x1=\"50%\" y1=\"0%\" x2=\"50%\" y2=\"100%\" id=\"linearGradient-4\">\n <stop stop-color=\"#FFFFFF\" stop-opacity=\"0.5\" offset=\"0%\"></stop>\n <stop stop-color=\"#000000\" stop-opacity=\"0.5\" offset=\"100%\"></stop>\n </linearGradient>\n <circle id=\"path-5\" cx=\"98\" cy=\"98\" r=\"86\"></circle>\n <filter x=\"-4.1%\" y=\"-3.5%\" width=\"108.1%\" height=\"108.1%\" filterUnits=\"objectBoundingBox\" id=\"filter-6\">\n <feMorphology radius=\"0.5\" operator=\"dilate\" in=\"SourceAlpha\" result=\"shadowSpreadOuter1\"></feMorphology>\n <feOffset dx=\"0\" dy=\"1\" in=\"shadowSpreadOuter1\" result=\"shadowOffsetOuter1\"></feOffset>\n <feGaussianBlur stdDeviation=\"2\" in=\"shadowOffsetOuter1\" result=\"shadowBlurOuter1\"></feGaussianBlur>\n <feComposite in=\"shadowBlurOuter1\" in2=\"SourceAlpha\" operator=\"out\" result=\"shadowBlurOuter1\"></feComposite>\n <feColorMatrix values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.5 0\" type=\"matrix\" in=\"shadowBlurOuter1\"></feColorMatrix>\n </filter>\n </defs>\n <g id=\"Page-1\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <g id=\"s13\" transform=\"translate(4.000000, 4.000000)\">\n <g id=\"container\">\n <g id=\"Oval-2\">\n <use fill=\"black\" fill-opacity=\"1\" filter=\"url(#filter-3)\" xlink:href=\"#path-2\"></use>\n <use stroke=\"#979797\" stroke-width=\"1\" fill=\"url(#linearGradient-1)\" fill-rule=\"evenodd\" xlink:href=\"#path-2\"></use>\n </g>\n <g id=\"Oval-2\">\n <use fill=\"black\" fill-opacity=\"1\" filter=\"url(#filter-6)\" xlink:href=\"#path-5\"></use>\n <use fill=\"\" fill-rule=\"evenodd\" xlink:href=\"#path-5\"></use>\n <use stroke=\"#4A4A4A\" stroke-width=\"1\" fill=\"url(#linearGradient-4)\" fill-rule=\"evenodd\" xlink:href=\"#path-5\"></use>\n </g>\n <g id=\"knob\" transform=\"translate(27.431373, 27.431373)\">\n <circle id=\"Oval-5\" fill=\"#322E2E\" cx=\"71\" cy=\"71\" r=\"71\"></circle>\n\n <!-- Fixed position marks -->\n <!-- 12:00 position mark (less prominent) -->\n <line x1=\"71\" y1=\"15\" x2=\"71\" y2=\"25\" stroke=\"#666666\" stroke-width=\"1\" opacity=\"0.6\"/>\n\n <!-- End position marks (0 and 127) -->\n <!-- 0 position mark (40 degrees from top, clockwise) -->\n <line x1=\"95.5\" y1=\"45.5\" x2=\"88.5\" y2=\"52.5\" stroke=\"#CCCCCC\" stroke-width=\"2\"/>\n\n <!-- 127 position mark (320 degrees from top, clockwise) -->\n <line x1=\"46.5\" y1=\"45.5\" x2=\"53.5\" y2=\"52.5\" stroke=\"#CCCCCC\" stroke-width=\"2\"/>\n\n <!-- Rotating indicator (existing) -->\n <path d=\"M70.0686275,4.17063061 L86.5686275,65.2689929 C81.3642501,66.811221 75.8642501,67.5735686 70.0686275,67.5560356 C64.2730048,67.5385027 58.7730048,66.7761551 53.5686275,65.2689929 L70.0686275,4.17063061 Z\" id=\"Rectangle-Copy\" fill=\"#E6D7D7\" transform=\"translate(70.068627, 35.863481) scale(1, -1) translate(-70.068627, -35.863481) \"></path>\n </g>\n </g>\n </g>\n </g>\n</svg>\n"
2202
- }, hn = (e) => {
2203
- let { centered: t, clampMax: n = 360, clampMin: r = 0, defaultValue: i = 0, disabled: a = !1, format: o = (e) => e.toFixed(0), max: c = 100, min: l = 0, onChange: f = () => {}, onEnd: p = () => {}, onStart: m = () => {}, preciseMode: h = !0, rotateDegrees: y = 0, skin: b = mn, step: E = 1, style: D, unlockDistance: O = 100, value: k, ...A } = e, [j, M] = d(k !== void 0), N = u(null), P = u(null), F, I, [L, R] = d({
2213
+ }, _n = (e) => {
2214
+ let { centered: t, clampMax: n = 360, clampMin: r = 0, defaultValue: i = 0, disabled: a = !1, format: o = (e) => e.toFixed(0), max: c = 100, min: l = 0, onChange: f = () => {}, onEnd: p = () => {}, onStart: m = () => {}, preciseMode: h = !0, rotateDegrees: y = 0, skin: b = gn, step: E = 1, style: D, unlockDistance: O = 100, value: k, ...A } = e, [j, M] = d(k !== void 0), N = u(null), P = u(null), F, I, [L, R] = d({
2204
2215
  svgRef: void 0,
2205
2216
  dragging: !1,
2206
2217
  dragDistance: 0,
@@ -2254,15 +2265,15 @@ var un = class extends e.Component {
2254
2265
  n = t.getBoundingClientRect(), e.classed("dragging", !0), m(), a = {
2255
2266
  x: l.x - r,
2256
2267
  y: l.y - i
2257
- }, o = ln(a.x, a.y), s = B(u), c = !1;
2268
+ }, o = dn(a.x, a.y), s = B(u), c = !1;
2258
2269
  }
2259
2270
  function u(e) {
2260
2271
  let t = {
2261
2272
  x: e.x - r,
2262
2273
  y: e.y - i
2263
2274
  }, n = Math.sqrt(t.x ** 2 + t.y ** 2);
2264
- h ? !c && n >= O && (a = t, o = ln(t.x, t.y), c = !0) : c = !0;
2265
- let l = ln(t.x, t.y) - o, u = s + l;
2275
+ h ? !c && n >= O && (a = t, o = dn(t.x, t.y), c = !0) : c = !0;
2276
+ let l = dn(t.x, t.y) - o, u = s + l;
2266
2277
  u = z(u), c && ne(u), R((t) => ({
2267
2278
  ...t,
2268
2279
  dragDistance: n,
@@ -2316,7 +2327,7 @@ var un = class extends e.Component {
2316
2327
  ref: N,
2317
2328
  style: ae.container,
2318
2329
  ...A,
2319
- children: [/* @__PURE__ */ _(on, {
2330
+ children: [/* @__PURE__ */ _(cn, {
2320
2331
  disabled: a,
2321
2332
  inputRef: P,
2322
2333
  style: ae.input,
@@ -2335,23 +2346,23 @@ var un = class extends e.Component {
2335
2346
  transform: `$ORIGINAL rotate(${ie}, ${b.knobX}, ${b.knobY})`
2336
2347
  }), se]
2337
2348
  })]
2338
- }), L.dragging && h && /* @__PURE__ */ _(pn, {
2349
+ }), L.dragging && h && /* @__PURE__ */ _(hn, {
2339
2350
  svgRef: L.svgRef,
2340
2351
  radius: L.dragDistance,
2341
2352
  mousePos: L.mousePos,
2342
2353
  minimumDragDistance: O,
2343
2354
  valueAngle: L.valueAngle
2344
2355
  })] });
2345
- }, gn = .5, _n = (e, t, n, r) => {
2356
+ }, vn = .5, yn = (e, t, n, r) => {
2346
2357
  let i = r * Math.PI / 180;
2347
2358
  return [e + n * Math.sin(i), t - n * Math.cos(i)];
2348
- }, $ = (e) => String(Math.round(e * 1e3) / 1e3), vn = ({ value: e, min: t, max: n, centered: r = !1, cx: i = 100, cy: a = 100, r: o = 93, clampMin: s = 40, clampMax: c = 320, rotateDegrees: l = 180 }) => {
2359
+ }, $ = (e) => String(Math.round(e * 1e3) / 1e3), bn = ({ value: e, min: t, max: n, centered: r = !1, cx: i = 100, cy: a = 100, r: o = 93, clampMin: s = 40, clampMax: c = 320, rotateDegrees: l = 180 }) => {
2349
2360
  if (n === t) return "";
2350
2361
  let u = s + Math.min(1, Math.max(0, (e - t) / (n - t))) * (c - s), d = r ? (s + c) / 2 : s, f = u - d;
2351
- if (Math.abs(f) < gn) return "";
2352
- let p = (e) => ((e + l) % 360 + 360) % 360, [m, h] = _n(i, a, o, p(d)), [g, _] = _n(i, a, o, p(u)), v = +(Math.abs(f) > 180), y = +(f > 0);
2362
+ if (Math.abs(f) < vn) return "";
2363
+ let p = (e) => ((e + l) % 360 + 360) % 360, [m, h] = yn(i, a, o, p(d)), [g, _] = yn(i, a, o, p(u)), v = +(Math.abs(f) > 180), y = +(f > 0);
2353
2364
  return `M ${$(m)} ${$(h)} A ${$(o)} ${$(o)} 0 ${v} ${y} ${$(g)} ${$(_)}`;
2354
- }, yn = 100, bn = 100, xn = 93, Sn = {
2365
+ }, xn = 100, Sn = 100, Cn = 93, wn = {
2355
2366
  knobX: 71.44,
2356
2367
  knobY: 71.44,
2357
2368
  svg: "\n <svg xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" width=\"207px\" height=\"207px\" viewBox=\"0 0 207 207\" version=\"1.1\">\n <!-- Generator: Sketch 47.1 (45422) - http://www.bohemiancoding.com/sketch -->\n <desc>Created with Sketch.</desc>\n <defs>\n <linearGradient x1=\"50%\" y1=\"50%\" x2=\"50%\" y2=\"100%\" id=\"27c61b0f-392f-962d-de12-cb9da898274b\">\n <stop stop-color=\"#444040\" stop-opacity=\"0.51098279\" offset=\"0%\"/>\n <stop stop-color=\"#131111\" stop-opacity=\"0.893200861\" offset=\"100%\"/>\n </linearGradient>\n <circle id=\"e966567b-3869-4bcd-76b6-2cf084e45390\" cx=\"100.497487\" cy=\"100.497487\" r=\"99.4974874\"/>\n <filter x=\"-3.3%\" y=\"-3.3%\" width=\"106.5%\" height=\"106.5%\" filterUnits=\"objectBoundingBox\" id=\"e2e6829f-0086-96b2-e92a-6f3809b8ac61\">\n <feMorphology radius=\"0.5\" operator=\"dilate\" in=\"SourceAlpha\" result=\"shadowSpreadOuter1\"/>\n <feOffset dx=\"0\" dy=\"0\" in=\"shadowSpreadOuter1\" result=\"shadowOffsetOuter1\"/>\n <feGaussianBlur stdDeviation=\"2\" in=\"shadowOffsetOuter1\" result=\"shadowBlurOuter1\"/>\n <feComposite in=\"shadowBlurOuter1\" in2=\"SourceAlpha\" operator=\"out\" result=\"shadowBlurOuter1\"/>\n <feColorMatrix values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.5 0\" type=\"matrix\" in=\"shadowBlurOuter1\"/>\n </filter>\n <linearGradient x1=\"50%\" y1=\"0%\" x2=\"50%\" y2=\"100%\" id=\"0facd5c9-8e04-e83f-4842-8ba16f949942\">\n <stop stop-color=\"#FFFFFF\" stop-opacity=\"0.5\" offset=\"0%\"/>\n <stop stop-color=\"#000000\" stop-opacity=\"0.5\" offset=\"100%\"/>\n </linearGradient>\n <circle id=\"c54189ed-7ea3-956c-f040-f0207548b268\" cx=\"100.432161\" cy=\"100.432161\" r=\"86.4321608\"/>\n <filter x=\"-4.0%\" y=\"-3.5%\" width=\"108.1%\" height=\"108.1%\" filterUnits=\"objectBoundingBox\" id=\"dedf2e7e-f008-c315-f682-e424d670f210\">\n <feMorphology radius=\"0.5\" operator=\"dilate\" in=\"SourceAlpha\" result=\"shadowSpreadOuter1\"/>\n <feOffset dx=\"0\" dy=\"1\" in=\"shadowSpreadOuter1\" result=\"shadowOffsetOuter1\"/>\n <feGaussianBlur stdDeviation=\"2\" in=\"shadowOffsetOuter1\" result=\"shadowBlurOuter1\"/>\n <feComposite in=\"shadowBlurOuter1\" in2=\"SourceAlpha\" operator=\"out\" result=\"shadowBlurOuter1\"/>\n <feColorMatrix values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.5 0\" type=\"matrix\" in=\"shadowBlurOuter1\"/>\n </filter>\n\n <filter x=\"-5.3%\" y=\"-11.3%\" width=\"110.7%\" height=\"122.6%\" filterUnits=\"objectBoundingBox\" id=\"12f618f7-e258-b597-3ed6-242484ddad8f\">\n <feOffset dx=\"0\" dy=\"0\" in=\"SourceAlpha\" result=\"shadowOffsetOuter1\"/>\n <feGaussianBlur stdDeviation=\"2\" in=\"shadowOffsetOuter1\" result=\"shadowBlurOuter1\"/>\n <feColorMatrix values=\"0 0 0 0 0.915577168 0 0 0 0 0.797591325 0 0 0 0 0.601479722 0 0 0 1 0\" type=\"matrix\" in=\"shadowBlurOuter1\"/>\n </filter>\n <pattern id=\"3cc0e5b8-1f0a-886b-f635-8fcb19212870\" width=\"8.04411765\" height=\"8.04411765\" x=\"21.9558824\" y=\"21.9558824\" patternUnits=\"userSpaceOnUse\">\n <use xlink:href=\"#2b8719c1-286b-ebf8-a488-ac66a6598fc5\" transform=\"scale(0.167585784,0.167585784)\"/>\n </pattern>\n <image id=\"2b8719c1-286b-ebf8-a488-ac66a6598fc5\" width=\"48\" height=\"48\" xlink:href=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADAAAAAwCAYAAABXAvmHAAAEGWlDQ1BrQ0dDb2xvclNwYWNlR2VuZXJpY1JHQgAAOI2NVV1oHFUUPrtzZyMkzlNsNIV0qD8NJQ2TVjShtLp/3d02bpZJNtoi6GT27s6Yyc44M7v9oU9FUHwx6psUxL+3gCAo9Q/bPrQvlQol2tQgKD60+INQ6Ium65k7M5lpurHeZe58853vnnvuuWfvBei5qliWkRQBFpquLRcy4nOHj4g9K5CEh6AXBqFXUR0rXalMAjZPC3e1W99Dwntf2dXd/p+tt0YdFSBxH2Kz5qgLiI8B8KdVy3YBevqRHz/qWh72Yui3MUDEL3q44WPXw3M+fo1pZuQs4tOIBVVTaoiXEI/MxfhGDPsxsNZfoE1q66ro5aJim3XdoLFw72H+n23BaIXzbcOnz5mfPoTvYVz7KzUl5+FRxEuqkp9G/Ajia219thzg25abkRE/BpDc3pqvphHvRFys2weqvp+krbWKIX7nhDbzLOItiM8358pTwdirqpPFnMF2xLc1WvLyOwTAibpbmvHHcvttU57y5+XqNZrLe3lE/Pq8eUj2fXKfOe3pfOjzhJYtB/yll5SDFcSDiH+hRkH25+L+sdxKEAMZahrlSX8ukqMOWy/jXW2m6M9LDBc31B9LFuv6gVKg/0Szi3KAr1kGq1GMjU/aLbnq6/lRxc4XfJ98hTargX++DbMJBSiYMIe9Ck1YAxFkKEAG3xbYaKmDDgYyFK0UGYpfoWYXG+fAPPI6tJnNwb7ClP7IyF+D+bjOtCpkhz6CFrIa/I6sFtNl8auFXGMTP34sNwI/JhkgEtmDz14ySfaRcTIBInmKPE32kxyyE2Tv+thKbEVePDfW/byMM1Kmm0XdObS7oGD/MypMXFPXrCwOtoYjyyn7BV29/MZfsVzpLDdRtuIZnbpXzvlf+ev8MvYr/Gqk4H/kV/G3csdazLuyTMPsbFhzd1UabQbjFvDRmcWJxR3zcfHkVw9GfpbJmeev9F08WW8uDkaslwX6avlWGU6NRKz0g/SHtCy9J30o/ca9zX3Kfc19zn3BXQKRO8ud477hLnAfc1/G9mrzGlrfexZ5GLdn6ZZrrEohI2wVHhZywjbhUWEy8icMCGNCUdiBlq3r+xafL549HQ5jH+an+1y+LlYBifuxAvRN/lVVVOlwlCkdVm9NOL5BE4wkQ2SMlDZU97hX86EilU/lUmkQUztTE6mx1EEPh7OmdqBtAvv8HdWpbrJS6tJj3n0CWdM6busNzRV3S9KTYhqvNiqWmuroiKgYhshMjmhTh9ptWhsF7970j/SbMrsPE1suR5z7DMC+P/Hs+y7ijrQAlhyAgccjbhjPygfeBTjzhNqy28EdkUh8C+DU9+z2v/oyeH791OncxHOs5y2AtTc7nb/f73TWPkD/qwBnjX8BoJ98VQNcC+8AAAFFSURBVGgF7djbDYMwDAXQBjEMYqyqY1WMxTppLiJIQIA8ariWkp8IPuweO60am67r7MstY8wwjuPH7dMz3uUua63p+/7r9rePIRW/9QmQzCV9ub0YgSIgzhxvQkjFb1EZBAdEKolkfJTqtnb7bv/zOJm58moRE0AzYgFoRawAGhE7gDZEEKAJcQjQgjgFaEBcAtgRUQBmRDSAFZEEYEQkA9gQWQAmRDaABVEEYEAUAx5H4EaGOyw+SMl66mbXzNOD4k6gCPNUY/CFwF1YOn5zRxJJRINqaUbUuZA/79sd3wm3xIdbdS60rXzo2XVCbO60/HxKJgFKKv4CkEziuyKBWAE0InYAbYggQBPiEKAFcQrQgLgEsCOiAMyIaAArIgnAiEgGsCGyAEyIbAALogjAgCgGPI7AX9w6F3JtqHMhnMWLFSrSD9jOnakVHpZYAAAAAElFTkSuQmCC\"/>\n </defs>\n <g id=\"Page-1\" stroke=\"none\" stroke-width=\"1\" fill=\"none\" fill-rule=\"evenodd\">\n <g id=\"s10\" transform=\"translate(3.000000, 3.000000)\">\n <g id=\"container\">\n <g id=\"Oval-2\">\n <use fill=\"black\" fill-opacity=\"1\" filter=\"url(#e2e6829f-0086-96b2-e92a-6f3809b8ac61)\" xlink:href=\"#e966567b-3869-4bcd-76b6-2cf084e45390\"/>\n <use stroke=\"#979797\" stroke-width=\"1\" fill=\"url(#27c61b0f-392f-962d-de12-cb9da898274b)\" fill-rule=\"evenodd\" xlink:href=\"#e966567b-3869-4bcd-76b6-2cf084e45390\"/>\n </g>\n <g id=\"Oval-2\">\n <use fill=\"black\" fill-opacity=\"1\" filter=\"url(#dedf2e7e-f008-c315-f682-e424d670f210)\" xlink:href=\"#c54189ed-7ea3-956c-f040-f0207548b268\"/>\n <use fill=\"\" fill-rule=\"evenodd\" xlink:href=\"#c54189ed-7ea3-956c-f040-f0207548b268\"/>\n <use stroke=\"#4A4A4A\" stroke-width=\"1\" fill=\"url(#0facd5c9-8e04-e83f-4842-8ba16f949942)\" fill-rule=\"evenodd\" xlink:href=\"#c54189ed-7ea3-956c-f040-f0207548b268\"/>\n </g>\n <g id=\"knob\" transform=\"translate(28.574244, 28.574244)\">\n <circle id=\"Oval-5\" fill=\"#322E2E\" cx=\"71.4356094\" cy=\"71.4356094\" r=\"71.4356094\"/>\n\n <!-- Rotating indicator (existing) -->\n <path d=\"M72.4209282,3.63066376 L88.6786876,16.869789 C81.585496,18.1548295 76.1662428,18.7973498 72.4209282,18.7973498 C68.6756135,18.7973498 63.2563604,18.1548295 56.1631688,16.869789 L72.4209282,3.63066376 Z\" id=\"Rectangle\" fill=\"#E6D7D7\" transform=\"translate(72.420928, 11.214007) scale(1, -1) translate(-72.420928, -11.214007) \"/>\n </g>\n\n <!-- Value arc: anchor->value fill in the bezel ring; path data is\n computed per-render via updateAttributes (see below).\n Consumers can restyle it via the knob-value-arc class. -->\n <path id=\"valueArc\" class=\"knob-value-arc\" d=\"\" stroke=\"#35619F\" stroke-width=\"7\" fill=\"none\" opacity=\"0.85\" stroke-linecap=\"round\" pointer-events=\"none\"/>\n\n <!-- Fixed position marks (outside the rotating knob group) -->\n <!-- 12:00 position mark (more prominent) -->\n <line x1=\"100.0098534\" y1=\"15\" x2=\"100.0098534\" y2=\"35\" stroke=\"#CCCCCC\" stroke-width=\"4\" opacity=\"0.9\"/>\n\n <!-- End position marks (0 and 127) -->\n <!-- 0 position mark (40 degrees from top, clockwise) - at outer radius beyond knob edge -->\n <!-- This should be at the bottom-left where the value indicator points when at 0 -->\n <line x1=\"36\" y1=\"164\" x2=\"44\" y2=\"156\" stroke=\"#DDDDDD\" stroke-width=\"4\"/>\n\n <!-- 127 position mark (320 degrees from top, clockwise) - at outer radius beyond knob edge -->\n <!-- This should be at the bottom-right where the value indicator points when at 127 -->\n <line x1=\"164\" y1=\"164\" x2=\"156\" y2=\"156\" stroke=\"#DDDDDD\" stroke-width=\"4\"/>\n <g id=\"label\">\n <g id=\"labeltext\" fill-opacity=\"1\" fill=\"#E6D7D7\">\n <text id=\"534f4e02-5541-3607-0966-af0b025d80e0\" font-family=\"Helvetica\" font-size=\"44\" font-weight=\"normal\" fill=\"#E6D7D7\" class=\"text-7\" filter=\"url(#12f618f7-e258-b597-3ed6-242484ddad8f)\">\n <tspan x=\"45.3246625\" y=\"117.884225\">10.10</tspan>\n </text>\n <text id=\"92ebe866-c281-70c7-7b0e-a373cee013a9\" font-family=\"Helvetica\" font-size=\"44\" font-weight=\"normal\" fill=\"#E6D7D7\" class=\"text-7\">\n <tspan x=\"45.3246625\" y=\"117.884225\">10.10</tspan>\n </text>\n </g>\n <circle id=\"Oval-6\" stroke=\"#979797\" fill-opacity=\"0.730000019\" fill=\"url(#3cc0e5b8-1f0a-886b-f635-8fcb19212870)\" transform=\"translate(100.351759, 100.351759) rotate(-45.000000) translate(-100.351759, -100.351759) \" cx=\"100.351759\" cy=\"100.351759\" r=\"70.3517588\"/>\n </g>\n </g>\n </g>\n </g>\n</svg>\n",
@@ -2369,22 +2380,22 @@ var un = class extends e.Component {
2369
2380
  element: "#valueArc",
2370
2381
  attrs: [{
2371
2382
  name: "d",
2372
- value: (e, t) => vn({
2383
+ value: (e, t) => bn({
2373
2384
  value: t,
2374
2385
  min: e.min ?? 0,
2375
2386
  max: e.max ?? 127,
2376
2387
  centered: e.centered ?? !1,
2377
- cx: yn,
2378
- cy: bn,
2379
- r: xn,
2388
+ cx: xn,
2389
+ cy: Sn,
2390
+ r: Cn,
2380
2391
  clampMin: e.clampMin ?? 40,
2381
2392
  clampMax: e.clampMax ?? 320,
2382
2393
  rotateDegrees: e.rotateDegrees ?? 180
2383
2394
  })
2384
2395
  }]
2385
2396
  }]
2386
- }, Cn = (e) => {
2387
- let { centered: t = !1, disabled: n = !1, max: r = 127, min: i = 0, onChange: a, value: s = 0, wheelEnabled: c = !1, wheelSensitivity: l = .1, ...u } = e, [d, f] = an(s), p = (e) => {
2397
+ }, Tn = (e) => {
2398
+ let { centered: t = !1, disabled: n = !1, max: r = 127, min: i = 0, onChange: a, value: s = 0, wheelEnabled: c = !1, wheelSensitivity: l = .1, ...u } = e, [d, f] = sn(s), p = (e) => {
2388
2399
  if (n) return;
2389
2400
  let t = B(Number.parseInt(String(e), 10), r, i);
2390
2401
  f(t), a && a(t);
@@ -2403,7 +2414,7 @@ var un = class extends e.Component {
2403
2414
  a,
2404
2415
  f
2405
2416
  ]);
2406
- return /* @__PURE__ */ _(hn, {
2417
+ return /* @__PURE__ */ _(_n, {
2407
2418
  centered: t,
2408
2419
  clampMax: 320,
2409
2420
  clampMin: 40,
@@ -2413,7 +2424,7 @@ var un = class extends e.Component {
2413
2424
  onWheel: c ? m : void 0,
2414
2425
  preciseMode: !1,
2415
2426
  rotateDegrees: 180,
2416
- skin: Sn,
2427
+ skin: wn,
2417
2428
  style: { opacity: n ? .4 : 1 },
2418
2429
  unlockDistance: 0,
2419
2430
  defaultValue: d,
@@ -2422,7 +2433,7 @@ var un = class extends e.Component {
2422
2433
  value: d,
2423
2434
  ...u
2424
2435
  });
2425
- }, wn = i((e, t) => {
2436
+ }, En = i((e, t) => {
2426
2437
  let { centered: n, disabled: r, highToLow: i, includeLabel: a, includePicker: o, knobProps: s, label: c, max: u = 127, min: d = 0, onChange: f, shrinkLabel: p, value: m = 0, wheelEnabled: h, wheelSensitivity: g = .1, ...y } = e, b = l(() => {
2427
2438
  let e = z(u - d + 1).map((e) => d + e).map((e) => ({
2428
2439
  value: e,
@@ -2453,7 +2464,7 @@ var un = class extends e.Component {
2453
2464
  options: b,
2454
2465
  ref: t,
2455
2466
  value: m
2456
- }), /* @__PURE__ */ _(Cn, {
2467
+ }), /* @__PURE__ */ _(Tn, {
2457
2468
  centered: n,
2458
2469
  disabled: r,
2459
2470
  max: u,
@@ -2466,17 +2477,17 @@ var un = class extends e.Component {
2466
2477
  })]
2467
2478
  })]
2468
2479
  });
2469
- }), Tn = [{
2480
+ }), Dn = [{
2470
2481
  value: 0,
2471
2482
  label: "Momentary"
2472
2483
  }, {
2473
2484
  value: 1,
2474
2485
  label: "Latching"
2475
- }], En = i((e, t) => /* @__PURE__ */ _(Q, {
2486
+ }], On = i((e, t) => /* @__PURE__ */ _(Q, {
2476
2487
  ...e,
2477
- options: Tn,
2488
+ options: Dn,
2478
2489
  ref: t
2479
- })), Dn = i(({ allowClearing: e, ...t }, n) => {
2490
+ })), kn = i(({ allowClearing: e, ...t }, n) => {
2480
2491
  let r = O(), i = k(), a = l(() => [
2481
2492
  ...e ? [{
2482
2493
  value: "No Mapping",
@@ -2512,11 +2523,11 @@ var un = class extends e.Component {
2512
2523
  options: a,
2513
2524
  ref: n
2514
2525
  });
2515
- }), On = ({ note: e, name: t }) => `${e} ${t.length ? "-" : ""} ${t}`, kn = (e, t) => ({
2526
+ }), An = ({ note: e, name: t }) => `${e} ${t.length ? "-" : ""} ${t}`, jn = (e, t) => ({
2516
2527
  label: e,
2517
2528
  value: t + 1
2518
- }), An = i((e, t) => {
2519
- let { channel: n, disabled: r = !1, isMelodicMode: i = !1, mapping: a, onChange: s, value: c, ...u } = e, d = l(() => i ? D().map(({ note: e }) => `${be(e)} (#${e})`).map(kn) : (a || D()).map(On).map(kn), [i, a]), [f, p] = an(c), m = o((e) => {
2529
+ }), Mn = i((e, t) => {
2530
+ let { channel: n, disabled: r = !1, isMelodicMode: i = !1, mapping: a, onChange: s, value: c, ...u } = e, d = l(() => i ? D().map(({ note: e }) => `${be(e)} (#${e})`).map(jn) : (a || D()).map(An).map(jn), [i, a]), [f, p] = sn(c), m = o((e) => {
2520
2531
  if (typeof e == "string") return;
2521
2532
  let t = B(e, 128, 0);
2522
2533
  t > 0 && s(t), p(e);
@@ -2529,25 +2540,25 @@ var un = class extends e.Component {
2529
2540
  ref: t,
2530
2541
  value: f
2531
2542
  });
2532
- }), jn = 21, Mn = 108, Nn = 86 * .7, Pn = new window.AudioContext(), Fn = ({ height: e, width: t, ...n }) => {
2533
- let r = (t / Nn + 2) / e;
2543
+ }), Nn = 21, Pn = 108, Fn = 86 * .7, In = new window.AudioContext(), Ln = ({ height: e, width: t, ...n }) => {
2544
+ let r = (t / Fn + 2) / e;
2534
2545
  return /* @__PURE__ */ _("div", { children: /* @__PURE__ */ _(St, {
2535
2546
  keyWidthToHeight: r,
2536
2547
  noteRange: {
2537
- first: jn,
2538
- last: Mn
2548
+ first: Nn,
2549
+ last: Pn
2539
2550
  },
2540
2551
  width: t,
2541
2552
  ...n
2542
2553
  }) });
2543
- }, In = ({ format: e, height: t, hostname: n, instrumentName: r, onChange: i, onClick: a, onDoubleClick: o, onKeyMouseEnter: s, onKeyMouseLeave: c, selectedNotes: l, soundfont: u, width: d }) => /* @__PURE__ */ _(Dt, {
2544
- audioContext: Pn,
2554
+ }, Rn = ({ format: e, height: t, hostname: n, instrumentName: r, onChange: i, onClick: a, onDoubleClick: o, onKeyMouseEnter: s, onKeyMouseLeave: c, selectedNotes: l, soundfont: u, width: d }) => /* @__PURE__ */ _(kt, {
2555
+ audioContext: In,
2545
2556
  format: e,
2546
2557
  hostname: n,
2547
2558
  instrumentName: r,
2548
2559
  onChange: i,
2549
2560
  soundfont: u,
2550
- render: ({ isLoading: e, playNote: n, stopNote: r }) => /* @__PURE__ */ _(Fn, {
2561
+ render: ({ isLoading: e, playNote: n, stopNote: r }) => /* @__PURE__ */ _(Ln, {
2551
2562
  disabled: e,
2552
2563
  height: t,
2553
2564
  onClick: a,
@@ -2559,7 +2570,7 @@ var un = class extends e.Component {
2559
2570
  stopNote: r,
2560
2571
  width: d
2561
2572
  })
2562
- }), Ln = i(({ labelOff: e = "Normally Off", labelOn: t = "Normally On", ...n }, r) => {
2573
+ }), zn = i(({ labelOff: e = "Normally Off", labelOn: t = "Normally On", ...n }, r) => {
2563
2574
  let i = [{
2564
2575
  value: 0,
2565
2576
  label: e
@@ -2572,15 +2583,15 @@ var un = class extends e.Component {
2572
2583
  options: i,
2573
2584
  ref: r
2574
2585
  });
2575
- }), Rn = (e) => e ? {
2586
+ }), Bn = (e) => e ? {
2576
2587
  width: e.offsetWidth,
2577
2588
  height: e.offsetHeight
2578
2589
  } : {
2579
2590
  width: 0,
2580
2591
  height: 0
2581
- }, zn = (e) => {
2582
- let [t, n] = d(Rn(e ? e.current : null)), r = o(() => {
2583
- e.current && n(Rn(e.current));
2592
+ }, Vn = (e) => {
2593
+ let [t, n] = d(Bn(e ? e.current : null)), r = o(() => {
2594
+ e.current && n(Bn(e.current));
2584
2595
  }, [e]);
2585
2596
  return c(() => {
2586
2597
  if (e.current) {
@@ -2597,9 +2608,9 @@ var un = class extends e.Component {
2597
2608
  };
2598
2609
  }
2599
2610
  }, [e.current]), t;
2600
- }, Bn = 20, Vn = 15, Hn = Bn, Un = Bn, Wn = (e) => {
2601
- let { Tooltip: t = ge, autosize: n, disabled: r, inverted: i, onChange: a, value: o } = e, s = u(null), c = u(null), { height: l, width: d } = zn(s), f = n && d || 218, p = n && l || 150, m = f - Bn, h = p - Bn, g = f / 2, y = p / 2, b = { ref: c }, x = K.map(({ value: e, label: t }) => {
2602
- let n = 0, r = 0, a = Hn, o = i ? Un : h, s = m, c = i ? h : Un, l = g, u = y;
2611
+ }, Hn = 20, Un = 15, Wn = Hn, Gn = Hn, Kn = (e) => {
2612
+ let { Tooltip: t = ge, autosize: n, disabled: r, inverted: i, onChange: a, value: o } = e, s = u(null), c = u(null), { height: l, width: d } = Vn(s), f = n && d || 218, p = n && l || 150, m = f - Hn, h = p - Hn, g = f / 2, y = p / 2, b = { ref: c }, x = K.map(({ value: e, label: t }) => {
2613
+ let n = 0, r = 0, a = Wn, o = i ? Gn : h, s = m, c = i ? h : Gn, l = g, u = y;
2603
2614
  switch (e) {
2604
2615
  case 0:
2605
2616
  n = g, r = y, u += 3;
@@ -2622,7 +2633,7 @@ var un = class extends e.Component {
2622
2633
  case 6:
2623
2634
  n = i ? g - f * .35 : g + f * .35, r = y + p * .35, l = i ? g - f * .28 : g + f * .28, u = y + p * .25;
2624
2635
  break;
2625
- case 7: a = i ? Hn : m, o = Un, s = a, c = h, n = a, r = y, l = a - 5, u = p - 30;
2636
+ case 7: a = i ? Wn : m, o = Gn, s = a, c = h, n = a, r = y, l = a - 5, u = p - 30;
2626
2637
  }
2627
2638
  return {
2628
2639
  value: e,
@@ -2652,7 +2663,7 @@ var un = class extends e.Component {
2652
2663
  x: 0,
2653
2664
  y: 0
2654
2665
  }),
2655
- /* @__PURE__ */ _(Bt, {
2666
+ /* @__PURE__ */ _(Ht, {
2656
2667
  className: "axis",
2657
2668
  textAnchor: "middle",
2658
2669
  transform: `translate(6 ${p / 2}) rotate(90)`,
@@ -2660,7 +2671,7 @@ var un = class extends e.Component {
2660
2671
  y: 0,
2661
2672
  text: "Applied force"
2662
2673
  }),
2663
- /* @__PURE__ */ _(Bt, {
2674
+ /* @__PURE__ */ _(Ht, {
2664
2675
  className: "axis",
2665
2676
  textAnchor: "middle",
2666
2677
  transform: `translate(${f / 2} ${h + 13})`,
@@ -2670,14 +2681,14 @@ var un = class extends e.Component {
2670
2681
  }),
2671
2682
  /* @__PURE__ */ _("line", {
2672
2683
  className: "axis",
2673
- x1: Hn,
2674
- x2: Hn,
2675
- y1: Un,
2684
+ x1: Wn,
2685
+ x2: Wn,
2686
+ y1: Gn,
2676
2687
  y2: h
2677
2688
  }),
2678
2689
  /* @__PURE__ */ _("line", {
2679
2690
  className: "axis",
2680
- x1: Hn,
2691
+ x1: Wn,
2681
2692
  x2: m,
2682
2693
  y1: h,
2683
2694
  y2: h
@@ -2692,10 +2703,10 @@ var un = class extends e.Component {
2692
2703
  title: n,
2693
2704
  children: /* @__PURE__ */ _("rect", {
2694
2705
  className: e === o ? "button-selected" : "button",
2695
- height: Vn,
2706
+ height: Un,
2696
2707
  onClick: r ? (e) => e : () => a({ target: { value: Number.parseInt(String(e)) } }),
2697
- transform: `translate(${f + 3} ${p - Vn / 1.05}) rotate(45)`,
2698
- width: Vn
2708
+ transform: `translate(${f + 3} ${p - Un / 1.05}) rotate(45)`,
2709
+ width: Un
2699
2710
  })
2700
2711
  }),
2701
2712
  /* @__PURE__ */ v("text", {
@@ -2707,7 +2718,7 @@ var un = class extends e.Component {
2707
2718
  ]
2708
2719
  })
2709
2720
  });
2710
- }, Gn = i((e, t) => {
2721
+ }, qn = i((e, t) => {
2711
2722
  let { Tooltip: n = ge, inverted: r = !1, onChange: i, value: a, ...s } = e, c = o(() => {
2712
2723
  let e = ee("value", a)(K);
2713
2724
  return e ? /* @__PURE__ */ _("div", {
@@ -2717,7 +2728,7 @@ var un = class extends e.Component {
2717
2728
  className: "zds-pickers__placeholder",
2718
2729
  children: "Select..."
2719
2730
  });
2720
- }, [a]), l = o(({ setValue: e }) => /* @__PURE__ */ _(Wn, {
2731
+ }, [a]), l = o(({ setValue: e }) => /* @__PURE__ */ _(Kn, {
2721
2732
  autosize: !0,
2722
2733
  inverted: r,
2723
2734
  onChange: ({ target: { value: t } }) => {
@@ -2742,11 +2753,11 @@ var un = class extends e.Component {
2742
2753
  ref: t,
2743
2754
  value: a
2744
2755
  });
2745
- }), Kn = i(({ statuses: e, ...t }, n) => /* @__PURE__ */ _(Q, {
2756
+ }), Jn = i(({ statuses: e, ...t }, n) => /* @__PURE__ */ _(Q, {
2746
2757
  ...t,
2747
2758
  options: e,
2748
2759
  ref: n
2749
- })), qn = i((e, t) => {
2760
+ })), Yn = i((e, t) => {
2750
2761
  let { disabled: n, highToLow: r, max: i = 127, min: a = 0, onChange: s, value: c = 0, ...u } = e, d = l(() => {
2751
2762
  let e = z(i - a + 1).map((e) => a + e).map((e) => ({
2752
2763
  value: e,
@@ -2757,7 +2768,7 @@ var un = class extends e.Component {
2757
2768
  r,
2758
2769
  i,
2759
2770
  a
2760
- ]), [f, p] = an(c), m = o((e) => {
2771
+ ]), [f, p] = sn(c), m = o((e) => {
2761
2772
  s(B(e, i, a)), p(Number.parseInt(String(e), 10));
2762
2773
  }, [
2763
2774
  i,
@@ -2775,6 +2786,6 @@ var un = class extends e.Component {
2775
2786
  });
2776
2787
  });
2777
2788
  //#endregion
2778
- export { Jt as CCPicker, Xt as ChannelMappingPicker, $t as ChannelPicker, ge as DefaultTooltip, rn as KeyPicker, Cn as Knob, wn as KnobPicker, En as LatchPicker, re as MASK_CHANNEL, W as MASK_STATUS, Nt as MEASUREMENT_ELEMENT_ID, Dn as MappingPicker, An as NotePicker, Mt as OctavePlayer, In as PianoPicker, Ln as PolarityPicker, Wn as ResponseCurve, he as ResponseCurveLabels, Gn as ResponseCurvePicker, Q as Select, Kn as StatusPicker, U as Statuses, Bt as SvgText, qn as ValuePicker, Lt as __resetFontMetricsCacheForTests, z as arraySequence, B as assertRange, zt as calculateWordWidths, Rt as calculateWordsByLines, H as changeControllerOptions, oe as combineStatusWithChannel, se as extractStatusAndChannel, ee as findObj, ve as formatPitchName, ae as getStatusLabel, be as midiNoteLabel, Vt as noSelection, Gt as noSelectionOption, V as omit, te as pick, ye as pitchClassLabel, K as responseCurves, ne as set, ie as statusOptions };
2789
+ export { Xt as CCPicker, Qt as ChannelMappingPicker, tn as ChannelPicker, ge as DefaultTooltip, on as KeyPicker, Tn as Knob, En as KnobPicker, On as LatchPicker, re as MASK_CHANNEL, W as MASK_STATUS, Ft as MEASUREMENT_ELEMENT_ID, kn as MappingPicker, Mn as NotePicker, Pt as OctavePlayer, Rn as PianoPicker, zn as PolarityPicker, Kn as ResponseCurve, he as ResponseCurveLabels, qn as ResponseCurvePicker, Q as Select, Jn as StatusPicker, U as Statuses, Ht as SvgText, Yn as ValuePicker, zt as __resetFontMetricsCacheForTests, z as arraySequence, B as assertRange, Vt as calculateWordWidths, Bt as calculateWordsByLines, H as changeControllerOptions, oe as combineStatusWithChannel, se as extractStatusAndChannel, ee as findObj, ve as formatPitchName, ae as getStatusLabel, be as midiNoteLabel, Ut as noSelection, qt as noSelectionOption, V as omit, te as pick, ye as pitchClassLabel, K as responseCurves, ne as set, ie as statusOptions };
2779
2790
 
2780
2791
  //# sourceMappingURL=index.es.js.map