audio-mixer-ui 0.1.2 → 0.2.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.
@@ -1,12 +1,12 @@
1
- import { ref as T, watch as D, unref as C, onScopeDispose as Fe, readonly as Se, mergeModels as me, useCssVars as F, computed as g, useTemplateRef as U, useModel as z, createElementBlock as _, openBlock as y, normalizeClass as w, createElementVNode as m, createCommentVNode as pe, Fragment as ve, renderList as fe, normalizeStyle as Ue, renderSlot as be, toDisplayString as I, onUnmounted as ge, watchEffect as ke, onMounted as Ve, createVNode as k, withCtx as N, createTextVNode as ye, resolveDirective as qe, withDirectives as re, withKeys as We, vModelText as Oe, createBlock as _e } from "vue";
2
- import { defineStore as Me } from "pinia";
3
- var Ie = function() {
1
+ import { ref as E, watch as D, unref as O, onScopeDispose as Ue, readonly as Se, mergeModels as fe, useCssVars as G, computed as M, useTemplateRef as Z, useModel as j, createElementBlock as S, openBlock as y, normalizeClass as R, createElementVNode as c, createCommentVNode as se, Fragment as le, renderList as ge, normalizeStyle as qe, renderSlot as re, toDisplayString as F, onUnmounted as he, watchEffect as ke, onMounted as be, createVNode as V, withCtx as H, createTextVNode as ye, withDirectives as Re, withKeys as He, vModelText as Le, withModifiers as Te, createBlock as Me } from "vue";
2
+ import { defineStore as _e } from "pinia";
3
+ var Oe = function() {
4
4
  if (typeof Map < "u")
5
5
  return Map;
6
6
  function e(t, a) {
7
7
  var n = -1;
8
- return t.some(function(s, i) {
9
- return s[0] === a ? (n = i, !0) : !1;
8
+ return t.some(function(s, l) {
9
+ return s[0] === a ? (n = l, !0) : !1;
10
10
  }), n;
11
11
  }
12
12
  return (
@@ -39,47 +39,47 @@ var Ie = function() {
39
39
  this.__entries__.splice(0);
40
40
  }, t.prototype.forEach = function(a, n) {
41
41
  n === void 0 && (n = null);
42
- for (var s = 0, i = this.__entries__; s < i.length; s++) {
43
- var l = i[s];
44
- a.call(n, l[1], l[0]);
42
+ for (var s = 0, l = this.__entries__; s < l.length; s++) {
43
+ var r = l[s];
44
+ a.call(n, r[1], r[0]);
45
45
  }
46
46
  }, t;
47
47
  }()
48
48
  );
49
- }(), de = typeof window < "u" && typeof document < "u" && window.document === document, ie = function() {
49
+ }(), pe = typeof window < "u" && typeof document < "u" && window.document === document, ue = function() {
50
50
  return typeof global < "u" && global.Math === Math ? global : typeof self < "u" && self.Math === Math ? self : typeof window < "u" && window.Math === Math ? window : Function("return this")();
51
- }(), He = function() {
52
- return typeof requestAnimationFrame == "function" ? requestAnimationFrame.bind(ie) : function(e) {
51
+ }(), We = function() {
52
+ return typeof requestAnimationFrame == "function" ? requestAnimationFrame.bind(ue) : function(e) {
53
53
  return setTimeout(function() {
54
54
  return e(Date.now());
55
55
  }, 1e3 / 60);
56
56
  };
57
- }(), je = 2;
58
- function Ge(e, t) {
57
+ }(), Ze = 2;
58
+ function je(e, t) {
59
59
  var a = !1, n = !1, s = 0;
60
- function i() {
61
- a && (a = !1, e()), n && h();
62
- }
63
60
  function l() {
64
- He(i);
61
+ a && (a = !1, e()), n && m();
62
+ }
63
+ function r() {
64
+ We(l);
65
65
  }
66
- function h() {
66
+ function m() {
67
67
  var u = Date.now();
68
68
  if (a) {
69
- if (u - s < je)
69
+ if (u - s < Ze)
70
70
  return;
71
71
  n = !0;
72
72
  } else
73
- a = !0, n = !1, setTimeout(l, t);
73
+ a = !0, n = !1, setTimeout(r, t);
74
74
  s = u;
75
75
  }
76
- return h;
76
+ return m;
77
77
  }
78
- var Ze = 20, Ke = ["top", "right", "bottom", "left", "width", "height", "size", "weight"], Ye = typeof MutationObserver < "u", Qe = (
78
+ var Ge = 20, Ke = ["top", "right", "bottom", "left", "width", "height", "size", "weight"], Ye = typeof MutationObserver < "u", Qe = (
79
79
  /** @class */
80
80
  function() {
81
81
  function e() {
82
- this.connected_ = !1, this.mutationEventsAdded_ = !1, this.mutationsObserver_ = null, this.observers_ = [], this.onTransitionEnd_ = this.onTransitionEnd_.bind(this), this.refresh = Ge(this.refresh.bind(this), Ze);
82
+ this.connected_ = !1, this.mutationEventsAdded_ = !1, this.mutationsObserver_ = null, this.observers_ = [], this.onTransitionEnd_ = this.onTransitionEnd_.bind(this), this.refresh = je(this.refresh.bind(this), Ge);
83
83
  }
84
84
  return e.prototype.addObserver = function(t) {
85
85
  ~this.observers_.indexOf(t) || this.observers_.push(t), this.connected_ || this.connect_();
@@ -97,24 +97,24 @@ var Ze = 20, Ke = ["top", "right", "bottom", "left", "width", "height", "size",
97
97
  return a.broadcastActive();
98
98
  }), t.length > 0;
99
99
  }, e.prototype.connect_ = function() {
100
- !de || this.connected_ || (document.addEventListener("transitionend", this.onTransitionEnd_), window.addEventListener("resize", this.refresh), Ye ? (this.mutationsObserver_ = new MutationObserver(this.refresh), this.mutationsObserver_.observe(document, {
100
+ !pe || this.connected_ || (document.addEventListener("transitionend", this.onTransitionEnd_), window.addEventListener("resize", this.refresh), Ye ? (this.mutationsObserver_ = new MutationObserver(this.refresh), this.mutationsObserver_.observe(document, {
101
101
  attributes: !0,
102
102
  childList: !0,
103
103
  characterData: !0,
104
104
  subtree: !0
105
105
  })) : (document.addEventListener("DOMSubtreeModified", this.refresh), this.mutationEventsAdded_ = !0), this.connected_ = !0);
106
106
  }, e.prototype.disconnect_ = function() {
107
- !de || !this.connected_ || (document.removeEventListener("transitionend", this.onTransitionEnd_), window.removeEventListener("resize", this.refresh), this.mutationsObserver_ && this.mutationsObserver_.disconnect(), this.mutationEventsAdded_ && document.removeEventListener("DOMSubtreeModified", this.refresh), this.mutationsObserver_ = null, this.mutationEventsAdded_ = !1, this.connected_ = !1);
107
+ !pe || !this.connected_ || (document.removeEventListener("transitionend", this.onTransitionEnd_), window.removeEventListener("resize", this.refresh), this.mutationsObserver_ && this.mutationsObserver_.disconnect(), this.mutationEventsAdded_ && document.removeEventListener("DOMSubtreeModified", this.refresh), this.mutationsObserver_ = null, this.mutationEventsAdded_ = !1, this.connected_ = !1);
108
108
  }, e.prototype.onTransitionEnd_ = function(t) {
109
- var a = t.propertyName, n = a === void 0 ? "" : a, s = Ke.some(function(i) {
110
- return !!~n.indexOf(i);
109
+ var a = t.propertyName, n = a === void 0 ? "" : a, s = Ke.some(function(l) {
110
+ return !!~n.indexOf(l);
111
111
  });
112
112
  s && this.refresh();
113
113
  }, e.getInstance = function() {
114
114
  return this.instance_ || (this.instance_ = new e()), this.instance_;
115
115
  }, e.instance_ = null, e;
116
116
  }()
117
- ), Le = function(e, t) {
117
+ ), Ie = function(e, t) {
118
118
  for (var a = 0, n = Object.keys(t); a < n.length; a++) {
119
119
  var s = n[a];
120
120
  Object.defineProperty(e, s, {
@@ -125,59 +125,59 @@ var Ze = 20, Ke = ["top", "right", "bottom", "left", "width", "height", "size",
125
125
  });
126
126
  }
127
127
  return e;
128
- }, Q = function(e) {
128
+ }, J = function(e) {
129
129
  var t = e && e.ownerDocument && e.ownerDocument.defaultView;
130
- return t || ie;
131
- }, Ae = ue(0, 0, 0, 0);
132
- function oe(e) {
130
+ return t || ue;
131
+ }, Ae = me(0, 0, 0, 0);
132
+ function ce(e) {
133
133
  return parseFloat(e) || 0;
134
134
  }
135
- function xe(e) {
135
+ function Ce(e) {
136
136
  for (var t = [], a = 1; a < arguments.length; a++)
137
137
  t[a - 1] = arguments[a];
138
138
  return t.reduce(function(n, s) {
139
- var i = e["border-" + s + "-width"];
140
- return n + oe(i);
139
+ var l = e["border-" + s + "-width"];
140
+ return n + ce(l);
141
141
  }, 0);
142
142
  }
143
143
  function Xe(e) {
144
144
  for (var t = ["top", "right", "bottom", "left"], a = {}, n = 0, s = t; n < s.length; n++) {
145
- var i = s[n], l = e["padding-" + i];
146
- a[i] = oe(l);
145
+ var l = s[n], r = e["padding-" + l];
146
+ a[l] = ce(r);
147
147
  }
148
148
  return a;
149
149
  }
150
150
  function Je(e) {
151
151
  var t = e.getBBox();
152
- return ue(0, 0, t.width, t.height);
152
+ return me(0, 0, t.width, t.height);
153
153
  }
154
154
  function et(e) {
155
155
  var t = e.clientWidth, a = e.clientHeight;
156
156
  if (!t && !a)
157
157
  return Ae;
158
- var n = Q(e).getComputedStyle(e), s = Xe(n), i = s.left + s.right, l = s.top + s.bottom, h = oe(n.width), u = oe(n.height);
159
- if (n.boxSizing === "border-box" && (Math.round(h + i) !== t && (h -= xe(n, "left", "right") + i), Math.round(u + l) !== a && (u -= xe(n, "top", "bottom") + l)), !at(e)) {
160
- var r = Math.round(h + i) - t, c = Math.round(u + l) - a;
161
- Math.abs(r) !== 1 && (h -= r), Math.abs(c) !== 1 && (u -= c);
158
+ var n = J(e).getComputedStyle(e), s = Xe(n), l = s.left + s.right, r = s.top + s.bottom, m = ce(n.width), u = ce(n.height);
159
+ if (n.boxSizing === "border-box" && (Math.round(m + l) !== t && (m -= Ce(n, "left", "right") + l), Math.round(u + r) !== a && (u -= Ce(n, "top", "bottom") + r)), !at(e)) {
160
+ var i = Math.round(m + l) - t, d = Math.round(u + r) - a;
161
+ Math.abs(i) !== 1 && (m -= i), Math.abs(d) !== 1 && (u -= d);
162
162
  }
163
- return ue(s.left, s.top, h, u);
163
+ return me(s.left, s.top, m, u);
164
164
  }
165
165
  var tt = /* @__PURE__ */ function() {
166
166
  return typeof SVGGraphicsElement < "u" ? function(e) {
167
- return e instanceof Q(e).SVGGraphicsElement;
167
+ return e instanceof J(e).SVGGraphicsElement;
168
168
  } : function(e) {
169
- return e instanceof Q(e).SVGElement && typeof e.getBBox == "function";
169
+ return e instanceof J(e).SVGElement && typeof e.getBBox == "function";
170
170
  };
171
171
  }();
172
172
  function at(e) {
173
- return e === Q(e).document.documentElement;
173
+ return e === J(e).document.documentElement;
174
174
  }
175
175
  function nt(e) {
176
- return de ? tt(e) ? Je(e) : et(e) : Ae;
176
+ return pe ? tt(e) ? Je(e) : et(e) : Ae;
177
177
  }
178
178
  function st(e) {
179
- var t = e.x, a = e.y, n = e.width, s = e.height, i = typeof DOMRectReadOnly < "u" ? DOMRectReadOnly : Object, l = Object.create(i.prototype);
180
- return Le(l, {
179
+ var t = e.x, a = e.y, n = e.width, s = e.height, l = typeof DOMRectReadOnly < "u" ? DOMRectReadOnly : Object, r = Object.create(l.prototype);
180
+ return Ie(r, {
181
181
  x: t,
182
182
  y: a,
183
183
  width: n,
@@ -186,16 +186,16 @@ function st(e) {
186
186
  right: t + n,
187
187
  bottom: s + a,
188
188
  left: t
189
- }), l;
189
+ }), r;
190
190
  }
191
- function ue(e, t, a, n) {
191
+ function me(e, t, a, n) {
192
192
  return { x: e, y: t, width: a, height: n };
193
193
  }
194
194
  var rt = (
195
195
  /** @class */
196
196
  function() {
197
197
  function e(t) {
198
- this.broadcastWidth = 0, this.broadcastHeight = 0, this.contentRect_ = ue(0, 0, 0, 0), this.target = t;
198
+ this.broadcastWidth = 0, this.broadcastHeight = 0, this.contentRect_ = me(0, 0, 0, 0), this.target = t;
199
199
  }
200
200
  return e.prototype.isActive = function() {
201
201
  var t = nt(this.target);
@@ -210,7 +210,7 @@ var rt = (
210
210
  /* @__PURE__ */ function() {
211
211
  function e(t, a) {
212
212
  var n = st(a);
213
- Le(this, { target: t, contentRect: n });
213
+ Ie(this, { target: t, contentRect: n });
214
214
  }
215
215
  return e;
216
216
  }()
@@ -218,7 +218,7 @@ var rt = (
218
218
  /** @class */
219
219
  function() {
220
220
  function e(t, a, n) {
221
- if (this.activeObservations_ = [], this.observations_ = new Ie(), typeof t != "function")
221
+ if (this.activeObservations_ = [], this.observations_ = new Oe(), typeof t != "function")
222
222
  throw new TypeError("The callback provided as parameter 1 is not a function.");
223
223
  this.callback_ = t, this.controller_ = a, this.callbackCtx_ = n;
224
224
  }
@@ -226,7 +226,7 @@ var rt = (
226
226
  if (!arguments.length)
227
227
  throw new TypeError("1 argument required, but only 0 present.");
228
228
  if (!(typeof Element > "u" || !(Element instanceof Object))) {
229
- if (!(t instanceof Q(t).Element))
229
+ if (!(t instanceof J(t).Element))
230
230
  throw new TypeError('parameter 1 is not of type "Element".');
231
231
  var a = this.observations_;
232
232
  a.has(t) || (a.set(t, new rt(t)), this.controller_.addObserver(this), this.controller_.refresh());
@@ -235,7 +235,7 @@ var rt = (
235
235
  if (!arguments.length)
236
236
  throw new TypeError("1 argument required, but only 0 present.");
237
237
  if (!(typeof Element > "u" || !(Element instanceof Object))) {
238
- if (!(t instanceof Q(t).Element))
238
+ if (!(t instanceof J(t).Element))
239
239
  throw new TypeError('parameter 1 is not of type "Element".');
240
240
  var a = this.observations_;
241
241
  a.has(t) && (a.delete(t), a.size || this.controller_.removeObserver(this));
@@ -260,7 +260,7 @@ var rt = (
260
260
  return this.activeObservations_.length > 0;
261
261
  }, e;
262
262
  }()
263
- ), Re = typeof WeakMap < "u" ? /* @__PURE__ */ new WeakMap() : new Ie(), Ne = (
263
+ ), Ne = typeof WeakMap < "u" ? /* @__PURE__ */ new WeakMap() : new Oe(), $e = (
264
264
  /** @class */
265
265
  /* @__PURE__ */ function() {
266
266
  function e(t) {
@@ -269,7 +269,7 @@ var rt = (
269
269
  if (!arguments.length)
270
270
  throw new TypeError("1 argument required, but only 0 present.");
271
271
  var a = Qe.getInstance(), n = new ot(t, a, this);
272
- Re.set(this, n);
272
+ Ne.set(this, n);
273
273
  }
274
274
  return e;
275
275
  }()
@@ -279,36 +279,36 @@ var rt = (
279
279
  "unobserve",
280
280
  "disconnect"
281
281
  ].forEach(function(e) {
282
- Ne.prototype[e] = function() {
282
+ $e.prototype[e] = function() {
283
283
  var t;
284
- return (t = Re.get(this))[e].apply(t, arguments);
284
+ return (t = Ne.get(this))[e].apply(t, arguments);
285
285
  };
286
286
  });
287
287
  var lt = function() {
288
- return typeof ie.ResizeObserver < "u" ? ie.ResizeObserver : Ne;
288
+ return typeof ue.ResizeObserver < "u" ? ue.ResizeObserver : $e;
289
289
  }();
290
- function q(e) {
291
- const t = T(0), a = T(0);
290
+ function K(e) {
291
+ const t = E(0), a = E(0);
292
292
  let n = null;
293
293
  const s = () => {
294
294
  n && (n.disconnect(), n = null);
295
295
  };
296
- return D(() => C(e), () => {
296
+ return D(() => O(e), () => {
297
297
  s();
298
- const l = C(e);
299
- if (!l) return;
298
+ const r = O(e);
299
+ if (!r) return;
300
300
  n = new lt((u) => {
301
- const r = u[0];
302
- r && (t.value = r.contentRect.width, a.value = r.contentRect.height);
303
- }), n.observe(l);
304
- const h = l.getBoundingClientRect();
305
- t.value = h.width, a.value = h.height;
306
- }, { immediate: !0 }), Fe(s), {
301
+ const i = u[0];
302
+ i && (t.value = i.contentRect.width, a.value = i.contentRect.height);
303
+ }), n.observe(r);
304
+ const m = r.getBoundingClientRect();
305
+ t.value = m.width, a.value = m.height;
306
+ }, { immediate: !0 }), Ue(s), {
307
307
  width: Se(t),
308
308
  height: Se(a)
309
309
  };
310
310
  }
311
- const L = (e, t) => {
311
+ const U = (e, t) => {
312
312
  const a = e.__vccOpts || e;
313
313
  for (const [n, s] of t)
314
314
  a[n] = s;
@@ -318,7 +318,7 @@ const L = (e, t) => {
318
318
  class: "level"
319
319
  }, ct = {
320
320
  __name: "AudioSlider",
321
- props: /* @__PURE__ */ me({
321
+ props: /* @__PURE__ */ fe({
322
322
  min: { type: Number, default: 0 },
323
323
  max: { type: Number, default: 1 },
324
324
  step: { type: Number, default: 0.01 },
@@ -333,71 +333,71 @@ const L = (e, t) => {
333
333
  }),
334
334
  emits: ["update:value"],
335
335
  setup(e) {
336
- F((v) => ({
337
- "3d436468": f.value,
338
- "345b6e65": b.value,
339
- "3327b972": W.value,
340
- "5ae48cf2": x.value,
341
- "01a7bd27": P.value
336
+ G((f) => ({
337
+ "3d436468": _.value,
338
+ "345b6e65": C.value,
339
+ "3327b972": N.value,
340
+ "5ae48cf2": B.value,
341
+ "01a7bd27": L.value
342
342
  }));
343
- const t = e, a = U("root"), { width: n, height: s } = q(a), i = g(() => Math.min(n.value, s.value)), l = g(() => Math.max(n.value, s.value)), h = g(() => n.value > s.value), u = g(() => h.value ? "h-slide" : "v-slide"), r = z(e, "value"), c = g(() => i.value * 0.8), p = g(() => i.value * t.thumbLength * 0.8), b = g(() => (h.value ? p : c).value + "px"), f = g(() => (h.value ? c : p).value + "px"), x = g(() => i.value * 0.1 + "px"), P = g(() => (l.value - p.value) * (r.value - t.min) / (t.max - t.min) + "px"), W = g(() => h.value ? "90deg" : "0deg"), B = T(!1), H = T(0), R = (v) => {
344
- if (!a.value) return r.value;
345
- const O = a.value.getBoundingClientRect(), G = v.touches ? v.touches[0].clientX : v.clientX, ce = v.touches ? v.touches[0].clientY : v.clientY;
346
- let Z;
347
- if (h.value) {
348
- const K = G - O.left - c.value / 2, ee = O.width - c.value;
349
- Z = Math.max(0, Math.min(1, K / ee));
343
+ const t = e, a = Z("root"), { width: n, height: s } = K(a), l = M(() => Math.min(n.value, s.value)), r = M(() => Math.max(n.value, s.value)), m = M(() => n.value > s.value), u = M(() => m.value ? "h-slide" : "v-slide"), i = j(e, "value"), d = M(() => l.value * 0.8), v = M(() => l.value * t.thumbLength * 0.8), C = M(() => (m.value ? v : d).value + "px"), _ = M(() => (m.value ? d : v).value + "px"), B = M(() => l.value * 0.1 + "px"), L = M(() => (r.value - v.value) * (i.value - t.min) / (t.max - t.min) + "px"), N = M(() => m.value ? "90deg" : "0deg"), x = E(!1), g = E(0), w = (f) => {
344
+ if (!a.value) return i.value;
345
+ const A = a.value.getBoundingClientRect(), p = f.touches ? f.touches[0].clientX : f.clientX, b = f.touches ? f.touches[0].clientY : f.clientY;
346
+ let T;
347
+ if (m.value) {
348
+ const q = p - A.left - d.value / 2, W = A.width - d.value;
349
+ T = Math.max(0, Math.min(1, q / W));
350
350
  } else {
351
- const K = O.bottom - ce - c.value / 2, ee = O.height - c.value;
352
- Z = Math.max(0, Math.min(1, K / ee));
351
+ const q = A.bottom - b - d.value / 2, W = A.height - d.value;
352
+ T = Math.max(0, Math.min(1, q / W));
353
353
  }
354
- const se = t.min + Z * (t.max - t.min);
355
- return t.step > 0 ? Math.round(se / t.step) * t.step : se;
356
- }, J = (v) => {
357
- v.preventDefault(), B.value = !0, H.value = r.value, r.value = R(v), a.value && a.value.setPointerCapture && a.value.setPointerCapture(v.pointerId), document.addEventListener("mousemove", $), document.addEventListener("mouseup", j);
358
- }, $ = (v) => {
359
- B.value && (v.preventDefault(), r.value = R(v));
360
- }, j = (v) => {
361
- if (B.value) {
362
- if (v.preventDefault(), B.value = !1, a.value && a.value.releasePointerCapture)
354
+ const $ = t.min + T * (t.max - t.min);
355
+ return t.step > 0 ? Math.round($ / t.step) * t.step : $;
356
+ }, k = (f) => {
357
+ f.preventDefault(), x.value = !0, g.value = i.value, i.value = w(f), a.value && a.value.setPointerCapture && a.value.setPointerCapture(f.pointerId), document.addEventListener("mousemove", I), document.addEventListener("mouseup", Y);
358
+ }, I = (f) => {
359
+ x.value && (f.preventDefault(), i.value = w(f));
360
+ }, Y = (f) => {
361
+ if (x.value) {
362
+ if (f.preventDefault(), x.value = !1, a.value && a.value.releasePointerCapture)
363
363
  try {
364
- a.value.releasePointerCapture(v.pointerId);
364
+ a.value.releasePointerCapture(f.pointerId);
365
365
  } catch {
366
366
  }
367
- document.removeEventListener("mousemove", $), document.removeEventListener("mouseup", j);
367
+ document.removeEventListener("mousemove", I), document.removeEventListener("mouseup", Y);
368
368
  }
369
- }, M = (v) => {
370
- v.preventDefault(), v.touches.length === 1 && (B.value = !0, H.value = r.value, r.value = R(v), document.addEventListener("touchmove", S, { passive: !1 }), document.addEventListener("touchend", V), document.addEventListener("touchcancel", V));
371
- }, S = (v) => {
372
- B.value && (v.preventDefault(), v.touches.length === 1 && (r.value = R(v)));
373
- }, V = (v) => {
374
- B.value && (v.preventDefault(), B.value = !1, document.removeEventListener("touchmove", S), document.removeEventListener("touchend", V), document.removeEventListener("touchcancel", V));
375
- }, A = (v) => Math.min(1, Math.max(0, t.level * 10 - v + 1));
376
- return (v, O) => (y(), _("div", {
377
- class: w(u.value),
369
+ }, te = (f) => {
370
+ f.preventDefault(), f.touches.length === 1 && (x.value = !0, g.value = i.value, i.value = w(f), document.addEventListener("touchmove", Q, { passive: !1 }), document.addEventListener("touchend", z), document.addEventListener("touchcancel", z));
371
+ }, Q = (f) => {
372
+ x.value && (f.preventDefault(), f.touches.length === 1 && (i.value = w(f)));
373
+ }, z = (f) => {
374
+ x.value && (f.preventDefault(), x.value = !1, document.removeEventListener("touchmove", Q), document.removeEventListener("touchend", z), document.removeEventListener("touchcancel", z));
375
+ }, ae = (f) => Math.min(1, Math.max(0, t.level * 10 - f + 1));
376
+ return (f, A) => (y(), S("div", {
377
+ class: R(u.value),
378
378
  ref_key: "root",
379
379
  ref: a,
380
- onMousedown: J,
381
- onTouchstart: M,
380
+ onMousedown: k,
381
+ onTouchstart: te,
382
382
  style: { userSelect: "none", touchAction: "none" }
383
383
  }, [
384
- O[0] || (O[0] = m("div", { class: "track" }, null, -1)),
385
- e.showLevel ? (y(), _("div", ut, [
386
- (y(), _(ve, null, fe(10, (G) => m("div", {
387
- class: w(["led", "led" + G])
384
+ A[0] || (A[0] = c("div", { class: "track" }, null, -1)),
385
+ e.showLevel ? (y(), S("div", ut, [
386
+ (y(), S(le, null, ge(10, (p) => c("div", {
387
+ class: R(["led", "led" + p])
388
388
  }, [
389
- m("div", {
389
+ c("div", {
390
390
  class: "on",
391
- style: Ue({ opacity: A(G) })
391
+ style: qe({ opacity: ae(p) })
392
392
  }, null, 4)
393
393
  ], 2)), 64))
394
- ])) : pe("", !0),
395
- m("div", {
396
- class: w(["thumb", { dragging: B.value, [e.colour]: !0, [e.style]: !0 }])
394
+ ])) : se("", !0),
395
+ c("div", {
396
+ class: R(["thumb", { dragging: x.value, [e.colour]: !0, [e.style]: !0 }])
397
397
  }, null, 2)
398
398
  ], 34));
399
399
  }
400
- }, le = /* @__PURE__ */ L(ct, [["__scopeId", "data-v-1580ed15"]]), dt = {
400
+ }, de = /* @__PURE__ */ U(ct, [["__scopeId", "data-v-1580ed15"]]), dt = {
401
401
  __name: "TitleText",
402
402
  props: {
403
403
  align: {
@@ -406,23 +406,23 @@ const L = (e, t) => {
406
406
  }
407
407
  },
408
408
  setup(e) {
409
- F((h) => ({
410
- "5fddb56d": l.value
409
+ G((m) => ({
410
+ "5fddb56d": r.value
411
411
  }));
412
- const t = U("el"), { width: a, height: n } = q(t), s = g(() => Math.min(a.value, n.value)), i = g(() => a.value > n.value ? "h-text" : "v-text"), l = g(() => s.value * 3 / 4 + "px");
413
- return (h, u) => (y(), _("div", {
412
+ const t = Z("el"), { width: a, height: n } = K(t), s = M(() => Math.min(a.value, n.value)), l = M(() => a.value > n.value ? "h-text" : "v-text"), r = M(() => s.value * 3 / 4 + "px");
413
+ return (m, u) => (y(), S("div", {
414
414
  ref_key: "el",
415
415
  ref: t,
416
416
  class: "outer"
417
417
  }, [
418
- m("div", {
419
- class: w({ [i.value]: !0, [e.align]: !0 })
418
+ c("div", {
419
+ class: R({ [l.value]: !0, [e.align]: !0 })
420
420
  }, [
421
- be(h.$slots, "default", {}, void 0, !0)
421
+ re(m.$slots, "default", {}, void 0, !0)
422
422
  ], 2)
423
423
  ], 512));
424
424
  }
425
- }, De = /* @__PURE__ */ L(dt, [["__scopeId", "data-v-3ce29e77"]]), ht = {
425
+ }, De = /* @__PURE__ */ U(dt, [["__scopeId", "data-v-3ce29e77"]]), ht = {
426
426
  __name: "TriState",
427
427
  props: {
428
428
  mute: { default: !1 },
@@ -432,37 +432,37 @@ const L = (e, t) => {
432
432
  },
433
433
  emits: ["update:mute", "update:solo"],
434
434
  setup(e) {
435
- const t = z(e, "mute"), a = z(e, "solo"), n = U("outer"), { width: s, height: i } = q(n), l = g(() => s.value > i.value * 1.9);
436
- function h() {
435
+ const t = j(e, "mute"), a = j(e, "solo"), n = Z("outer"), { width: s, height: l } = K(n), r = M(() => s.value > l.value * 1.9);
436
+ function m() {
437
437
  t.value = !t.value, a.value = !1;
438
438
  }
439
439
  function u() {
440
440
  a.value = !a.value, t.value = !1;
441
441
  }
442
- return (r, c) => (y(), _("div", {
442
+ return (i, d) => (y(), S("div", {
443
443
  class: "outer",
444
444
  ref_key: "outer",
445
445
  ref: n
446
446
  }, [
447
- m("div", {
448
- class: w(["solo", { on: a.value }]),
447
+ c("div", {
448
+ class: R(["solo", { on: a.value }]),
449
449
  onClick: u
450
450
  }, null, 2),
451
- m("div", {
451
+ c("div", {
452
452
  class: "s-label",
453
453
  onClick: u
454
- }, I(l.value ? "SOLO" : "S"), 1),
455
- m("div", {
456
- class: w(["mute", { on: t.value }]),
457
- onClick: h
454
+ }, F(r.value ? "SOLO" : "S"), 1),
455
+ c("div", {
456
+ class: R(["mute", { on: t.value }]),
457
+ onClick: m
458
458
  }, null, 2),
459
- m("div", {
459
+ c("div", {
460
460
  class: "m-label",
461
- onClick: h
462
- }, I(l.value ? "MUTE" : "M"), 1)
461
+ onClick: m
462
+ }, F(r.value ? "MUTE" : "M"), 1)
463
463
  ], 512));
464
464
  }
465
- }, mt = /* @__PURE__ */ L(ht, [["__scopeId", "data-v-143eade0"]]), he = {
465
+ }, mt = /* @__PURE__ */ U(ht, [["__scopeId", "data-v-143eade0"]]), ve = {
466
466
  // Enable development UI features (animations, random data, etc.)
467
467
  enabled: !1,
468
468
  // Specific feature flags
@@ -474,7 +474,7 @@ const L = (e, t) => {
474
474
  // Enable other debug/dev features as needed
475
475
  debugMode: !1
476
476
  }
477
- }, ea = () => he.enabled, $e = (e) => he.enabled && he.features[e], X = Me("audioState", {
477
+ }, aa = () => ve.enabled, ze = (e) => ve.enabled && ve.features[e], ee = _e("audioState", {
478
478
  state: () => ({
479
479
  // Playback state
480
480
  isPlaying: !1,
@@ -548,7 +548,7 @@ const L = (e, t) => {
548
548
  });
549
549
  }
550
550
  }
551
- }), ae = Me("musicData", {
551
+ }), ie = _e("musicData", {
552
552
  state: () => ({
553
553
  // Musical structure
554
554
  beats: [],
@@ -565,10 +565,12 @@ const L = (e, t) => {
565
565
  getters: {
566
566
  // Get time for a specific bar and repeat
567
567
  getTimeFromBar: (e) => (t, a = 0) => {
568
- const n = e.beats.find(
568
+ let n = e.beats.find(
569
569
  (s) => s.bar === t && s.beat === 1 && s.repeat === a
570
570
  );
571
- return n ? n.time : null;
571
+ return n || (n = e.beats.find(
572
+ (s) => s.bar === t && s.beat === 1
573
+ )), n ? n.time : null;
572
574
  },
573
575
  // Get bar info from time
574
576
  getBarFromTime: (e) => (t) => {
@@ -599,7 +601,14 @@ const L = (e, t) => {
599
601
  }), Array.from(t).sort((a, n) => a - n);
600
602
  },
601
603
  // Check if a bar has repeats
602
- hasRepeats: (e) => (t) => e.beats.some((a) => a.bar === t && a.repeat > 0)
604
+ hasRepeats: (e) => (t) => e.beats.some((a) => a.bar === t && a.repeat > 0),
605
+ // Get the number of repeats for a specific bar
606
+ getRepeatCountForBar: (e) => (t) => {
607
+ const a = /* @__PURE__ */ new Set();
608
+ return e.beats.forEach((n) => {
609
+ n.bar === t && a.add(n.repeat);
610
+ }), a.size;
611
+ }
603
612
  },
604
613
  actions: {
605
614
  // Load musical data
@@ -630,7 +639,7 @@ const L = (e, t) => {
630
639
  return this.beats.some((a) => a.bar === e && a.repeat === t);
631
640
  }
632
641
  }
633
- }), pt = Me("playbackState", {
642
+ }), pt = _e("playbackState", {
634
643
  state: () => ({
635
644
  // Transport state
636
645
  transportState: "stopped",
@@ -894,7 +903,7 @@ class ft {
894
903
  let n = this.beats.find(
895
904
  (s) => s.bar === t && s.beat === 1 && s.repeat === a
896
905
  );
897
- return !n && a === 0 && (n = this.beats.find(
906
+ return n || (n = this.beats.find(
898
907
  (s) => s.bar === t && s.beat === 1
899
908
  )), n ? n.time : null;
900
909
  }
@@ -902,120 +911,124 @@ class ft {
902
911
  this.stop(), this.eventBus.all.clear(), this.parts.clear();
903
912
  }
904
913
  }
905
- const d = new ft();
906
- function ne() {
907
- const e = X(), t = ae(), a = pt(), n = ({ currentTime: o }) => {
914
+ const h = new ft();
915
+ function oe() {
916
+ const e = ee(), t = ie(), a = pt(), n = ({ currentTime: o }) => {
908
917
  e.setCurrentTime(o);
909
918
  }, s = ({ isPlaying: o }) => {
910
919
  e.setPlaybackState(o), a.setTransportState(o ? "playing" : "stopped");
911
- }, i = (o) => {
920
+ }, l = (o) => {
912
921
  o && (e.setCurrentBar(o.bar, o.beat, o.repeat), a.updateLastBarPosition(o.bar));
913
- }, l = ({ speed: o }) => {
922
+ }, r = ({ speed: o }) => {
914
923
  e.setPlaybackSpeed(o);
915
- }, h = ({ volume: o }) => {
924
+ }, m = ({ volume: o }) => {
916
925
  e.setMasterVolume(o);
917
- }, u = ({ partName: o, volume: E }) => {
918
- e.setPartVolume(o, E);
919
- }, r = ({ partName: o, muted: E }) => {
920
- e.setPartMuted(o, E);
921
- }, c = ({ bars: o }) => {
926
+ }, u = ({ partName: o, volume: P }) => {
927
+ e.setPartVolume(o, P);
928
+ }, i = ({ partName: o, muted: P }) => {
929
+ e.setPartMuted(o, P);
930
+ }, d = ({ bars: o }) => {
922
931
  e.setLeadInActive(!0, o);
923
- }, p = () => {
932
+ }, v = () => {
924
933
  e.setLeadInActive(!1);
925
- }, b = () => {
934
+ }, C = () => {
926
935
  e.setStartingNotesActive(!0);
927
- }, f = () => {
936
+ }, _ = () => {
928
937
  e.setStartingNotesActive(!1);
929
- }, x = ({ mark: o }) => {
938
+ }, B = ({ mark: o }) => {
930
939
  a.updateLastPracticeMarkUsed(o);
931
- }, P = ({ parts: o }) => {
940
+ }, L = ({ parts: o }) => {
932
941
  e.initializeParts(o);
933
- }, W = ({ finalTime: o }) => {
942
+ }, N = ({ finalTime: o }) => {
934
943
  e.setPlaybackState(!1), a.setTransportState("stopped"), console.log(`Song ended at time: ${o}`);
935
- }, B = () => {
936
- d.on("timeChanged", n), d.on("playbackStateChanged", s), d.on("barChanged", i), d.on("speedChanged", l), d.on("masterVolumeChanged", h), d.on("partVolumeChanged", u), d.on("partMutedChanged", r), d.on("leadInStarted", c), d.on("leadInCompleted", p), d.on("startingNotesStarted", b), d.on("startingNotesCompleted", f), d.on("practiceMarkChanged", x), d.on("initialized", P), d.on("songEnded", W);
937
- }, H = () => {
938
- d.off("timeChanged", n), d.off("playbackStateChanged", s), d.off("barChanged", i), d.off("speedChanged", l), d.off("masterVolumeChanged", h), d.off("partVolumeChanged", u), d.off("partMutedChanged", r), d.off("leadInStarted", c), d.off("leadInCompleted", p), d.off("startingNotesStarted", b), d.off("startingNotesCompleted", f), d.off("practiceMarkChanged", x), d.off("initialized", P), d.off("songEnded", W);
939
- }, R = () => {
944
+ }, x = () => {
945
+ h.on("timeChanged", n), h.on("playbackStateChanged", s), h.on("barChanged", l), h.on("speedChanged", r), h.on("masterVolumeChanged", m), h.on("partVolumeChanged", u), h.on("partMutedChanged", i), h.on("leadInStarted", d), h.on("leadInCompleted", v), h.on("startingNotesStarted", C), h.on("startingNotesCompleted", _), h.on("practiceMarkChanged", B), h.on("initialized", L), h.on("songEnded", N);
946
+ }, g = () => {
947
+ h.off("timeChanged", n), h.off("playbackStateChanged", s), h.off("barChanged", l), h.off("speedChanged", r), h.off("masterVolumeChanged", m), h.off("partVolumeChanged", u), h.off("partMutedChanged", i), h.off("leadInStarted", d), h.off("leadInCompleted", v), h.off("startingNotesStarted", C), h.off("startingNotesCompleted", _), h.off("practiceMarkChanged", B), h.off("initialized", L), h.off("songEnded", N);
948
+ }, w = () => {
940
949
  ke(() => {
941
950
  const o = e.masterVolume;
942
- d.getMasterVolume() !== o && d.setMasterVolume(o);
951
+ h.getMasterVolume() !== o && h.setMasterVolume(o);
943
952
  }), ke(() => {
944
953
  const o = e.playbackSpeed;
945
- d.getPlaybackSpeed() !== o && d.setPlaybackSpeed(o);
954
+ h.getPlaybackSpeed() !== o && h.setPlaybackSpeed(o);
946
955
  });
947
- }, J = (o) => {
948
- t.loadMusicData(o), d.initialize({
956
+ }, k = (o) => {
957
+ if (t.loadMusicData(o), h.initialize({
949
958
  beats: o.beats,
950
959
  practiceMarks: o.marks || o.practiceMarks,
951
960
  parts: o.parts
952
- }), B(), R();
953
- }, $ = () => {
954
- d.play();
955
- }, j = () => {
956
- d.stop();
957
- }, M = () => {
958
- d.pause();
959
- }, S = (o) => {
960
- d.setTime(o);
961
- }, V = (o, E = 0) => {
962
- d.setBar(o, E);
961
+ }), o.beats && o.beats.length > 0) {
962
+ const P = o.beats[0];
963
+ e.setCurrentBar(P.bar, P.beat, P.repeat), h.setTime(P.time);
964
+ }
965
+ x(), w();
966
+ }, I = () => {
967
+ h.play();
968
+ }, Y = () => {
969
+ h.stop();
970
+ }, te = () => {
971
+ h.pause();
972
+ }, Q = (o) => {
973
+ h.setTime(o);
974
+ }, z = (o, P = 0) => {
975
+ h.setBar(o, P);
976
+ }, ae = (o) => {
977
+ h.goToPracticeMark(o);
978
+ }, f = (o) => {
979
+ h.setPlaybackSpeed(o);
963
980
  }, A = (o) => {
964
- d.goToPracticeMark(o);
965
- }, v = (o) => {
966
- d.setPlaybackSpeed(o);
967
- }, O = (o) => {
968
- d.setMasterVolume(o);
969
- }, G = (o, E) => {
970
- d.setPartVolume(o, E);
971
- }, ce = (o, E) => {
972
- d.setPartMuted(o, E);
973
- }, Z = (o = 1) => {
974
- d.playLeadIn(o);
975
- }, se = () => {
976
- d.playStartingNotes();
977
- }, K = (o, E = !0, te = 0) => {
978
- E && a.leadInEnabled ? (V(o, te), Z(a.leadInBars)) : (V(o, te), $());
979
- }, ee = (o, E = !0) => {
980
- const te = t.getBarForMark(o);
981
- te && K(te, E);
981
+ h.setMasterVolume(o);
982
+ }, p = (o, P) => {
983
+ h.setPartVolume(o, P);
984
+ }, b = (o, P) => {
985
+ h.setPartMuted(o, P);
986
+ }, T = (o = 1) => {
987
+ h.playLeadIn(o);
988
+ }, $ = () => {
989
+ h.playStartingNotes();
990
+ }, q = (o, P = !0, ne = 0) => {
991
+ P && a.leadInEnabled ? (z(o, ne), T(a.leadInBars)) : (z(o, ne), I());
992
+ }, W = (o, P = !0) => {
993
+ const ne = t.getBarForMark(o);
994
+ ne && q(ne, P);
982
995
  };
983
- return ge(() => {
984
- H();
996
+ return he(() => {
997
+ g();
985
998
  }), {
986
999
  // Initialization
987
- initialize: J,
1000
+ initialize: k,
988
1001
  // Transport controls
989
- play: $,
990
- stop: j,
991
- pause: M,
1002
+ play: I,
1003
+ stop: Y,
1004
+ pause: te,
992
1005
  // Time controls
993
- setTime: S,
994
- setBar: V,
1006
+ setTime: Q,
1007
+ setBar: z,
995
1008
  // Navigation
996
- goToPracticeMark: A,
997
- setPlaybackSpeed: v,
1009
+ goToPracticeMark: ae,
1010
+ setPlaybackSpeed: f,
998
1011
  // Volume controls
999
- setMasterVolume: O,
1000
- setPartVolume: G,
1001
- setPartMuted: ce,
1012
+ setMasterVolume: A,
1013
+ setPartVolume: p,
1014
+ setPartMuted: b,
1002
1015
  // Special features
1003
- playLeadIn: Z,
1004
- playStartingNotes: se,
1016
+ playLeadIn: T,
1017
+ playStartingNotes: $,
1005
1018
  // Complex operations
1006
- playFromBar: K,
1007
- playFromMark: ee,
1019
+ playFromBar: q,
1020
+ playFromMark: W,
1008
1021
  // Access to stores for components
1009
1022
  audioState: e,
1010
1023
  musicData: t,
1011
1024
  playbackState: a,
1012
1025
  // Direct access to engine for advanced use
1013
- audioEngine: d
1026
+ audioEngine: h
1014
1027
  };
1015
1028
  }
1016
- const bt = {
1029
+ const gt = {
1017
1030
  __name: "PartControl",
1018
- props: /* @__PURE__ */ me({
1031
+ props: /* @__PURE__ */ fe({
1019
1032
  name: {
1020
1033
  type: String,
1021
1034
  required: !0
@@ -1035,170 +1048,200 @@ const bt = {
1035
1048
  }),
1036
1049
  emits: ["update:volume", "update:mute", "update:solo"],
1037
1050
  setup(e) {
1038
- F((f) => ({
1039
- "34cdae44": r.value
1051
+ G((_) => ({
1052
+ "34cdae44": i.value
1040
1053
  }));
1041
1054
  const t = e;
1042
- X();
1043
- const a = ne(), n = z(e, "volume"), s = z(e, "mute"), i = z(e, "solo");
1044
- D(n, (f) => {
1045
- a.setPartVolume(t.name, f);
1046
- }), D(s, (f) => {
1047
- a.setPartMuted(t.name, f);
1055
+ ee();
1056
+ const a = oe(), n = j(e, "volume"), s = j(e, "mute"), l = j(e, "solo");
1057
+ D(n, (_) => {
1058
+ a.setPartVolume(t.name, _);
1059
+ }), D(s, (_) => {
1060
+ a.setPartMuted(t.name, _);
1048
1061
  });
1049
- const l = U("el"), { width: h, height: u } = q(l), r = g(() => Math.min(h.value, u.value) + "px"), c = g(
1050
- () => h.value > u.value ? "mobile" : h.value < 60 ? "tablet" : "desktop"
1062
+ const r = Z("el"), { width: m, height: u } = K(r), i = M(() => Math.min(m.value, u.value) + "px"), d = M(
1063
+ () => m.value > u.value ? "mobile" : m.value < 60 ? "tablet" : "desktop"
1051
1064
  );
1052
- let p = null;
1053
- const b = T(0);
1054
- return Ve(() => {
1055
- $e("randomLevelIndicators") && (p = setInterval(() => {
1056
- b.value = s.value ? 0 : Math.random() * n.value;
1065
+ let v = null;
1066
+ const C = E(0);
1067
+ return be(() => {
1068
+ ze("randomLevelIndicators") && (v = setInterval(() => {
1069
+ C.value = s.value ? 0 : Math.random() * n.value;
1057
1070
  }, 100));
1058
- }), ge(() => {
1059
- p && (clearInterval(p), p = null);
1060
- }), (f, x) => (y(), _("div", {
1071
+ }), he(() => {
1072
+ v && (clearInterval(v), v = null);
1073
+ }), (_, B) => (y(), S("div", {
1061
1074
  ref_key: "el",
1062
- ref: l,
1063
- class: w([c.value, "part"])
1075
+ ref: r,
1076
+ class: R([d.value, "part"])
1064
1077
  }, [
1065
- k(mt, {
1078
+ V(mt, {
1066
1079
  class: "tri",
1067
1080
  mute: s.value,
1068
- "onUpdate:mute": x[0] || (x[0] = (P) => s.value = P),
1069
- solo: i.value,
1070
- "onUpdate:solo": x[1] || (x[1] = (P) => i.value = P)
1081
+ "onUpdate:mute": B[0] || (B[0] = (L) => s.value = L),
1082
+ solo: l.value,
1083
+ "onUpdate:solo": B[1] || (B[1] = (L) => l.value = L)
1071
1084
  }, null, 8, ["mute", "solo"]),
1072
- k(De, {
1085
+ V(De, {
1073
1086
  align: "left",
1074
1087
  class: "name"
1075
1088
  }, {
1076
- default: N(() => [
1077
- ye(I(e.name), 1)
1089
+ default: H(() => [
1090
+ ye(F(e.name), 1)
1078
1091
  ]),
1079
1092
  _: 1
1080
1093
  }),
1081
- k(le, {
1082
- level: b.value,
1094
+ V(de, {
1095
+ level: C.value,
1083
1096
  "show-level": !0,
1084
1097
  class: "vol",
1085
1098
  value: n.value,
1086
- "onUpdate:value": x[2] || (x[2] = (P) => n.value = P)
1099
+ "onUpdate:value": B[2] || (B[2] = (L) => n.value = L)
1087
1100
  }, null, 8, ["level", "value"])
1088
1101
  ], 2));
1089
1102
  }
1090
- }, gt = /* @__PURE__ */ L(bt, [["__scopeId", "data-v-510493b1"]]), yt = { class: "mark" }, _t = {
1091
- key: 0,
1092
- class: "mark-dropdown"
1093
- }, Mt = ["onClick"], St = { class: "rpt" }, kt = { class: "beat-ind" }, xt = { class: "beat" }, Tt = {
1103
+ }, bt = /* @__PURE__ */ U(gt, [["__scopeId", "data-v-510493b1"]]), yt = { class: "mark" }, Mt = { class: "rpt" }, _t = { class: "beat-ind" }, St = { class: "beat" }, kt = {
1104
+ key: 1,
1105
+ class: "mark-grid-container"
1106
+ }, Tt = { class: "mark-grid" }, Ct = ["onClick"], xt = {
1094
1107
  __name: "BarInput",
1095
1108
  setup(e) {
1096
- F((M) => ({
1097
- "8ea05ab6": x.value,
1098
- "1a3336d8": P.value
1109
+ G((p) => ({
1110
+ a84e79a6: x.value,
1111
+ "4f93d11c": g.value
1099
1112
  }));
1100
- const t = U("el"), { width: a, height: n } = q(t), s = ae(), i = X(), l = ne(), h = T(!0);
1101
- D(() => i.currentBeat, () => {
1102
- h.value = !0, setTimeout(() => {
1103
- h.value = !1;
1113
+ const t = Z("el"), a = Z("rpt"), { width: n, height: s } = K(t), l = ie(), r = ee(), m = oe(), u = E("1"), i = E("A"), d = E(0), v = E(2), C = E(!1), _ = E(!1), B = E(!1), L = E(!0);
1114
+ let N = null;
1115
+ D(() => {
1116
+ var p;
1117
+ return ((p = l.beats) == null ? void 0 : p.length) > 0;
1118
+ }, (p) => {
1119
+ console.log(p), p && !C.value && (u.value = r.currentBar.toString(), d.value = r.currentRepeat, v.value = l.getRepeatCountForBar(r.currentBar), k(r.currentBar), C.value = !0);
1120
+ }), D(() => r.currentBar, (p) => {
1121
+ v.value = l.getRepeatCountForBar(p);
1122
+ }), D(u, () => {
1123
+ u.value = u.value.replace(/\D/g, ""), u.value.length > 3 && (u.value = u.value.slice(0, 3));
1124
+ }), D(() => r.currentBar, (p) => {
1125
+ u.value = p.toString(), k(p);
1126
+ }), D(() => r.currentBeat, () => {
1127
+ L.value = !0, setTimeout(() => {
1128
+ L.value = !1;
1104
1129
  }, 50);
1130
+ }), D(_, () => {
1131
+ _.value && A();
1105
1132
  });
1106
- let u = null;
1107
- Ve(() => {
1108
- $e("beatAnimation") && (u = setInterval(() => {
1109
- const M = i.currentBeat % s.timeSignature + 1;
1110
- i.setCurrentBar(i.currentBar, M, i.currentRepeat);
1111
- }, 800));
1112
- }), ge(() => {
1113
- u && (clearInterval(u), u = null);
1114
- });
1115
- const r = T(i.currentBar.toString()), c = T("A");
1116
- T(i.currentRepeat);
1117
- const p = T(!1), b = T(!1);
1118
- D(r, () => {
1119
- r.value = r.value.replace(/\D/g, ""), r.value.length > 3 && (r.value = r.value.slice(0, 3));
1120
- }), D(() => i.currentBar, (M) => {
1121
- r.value = M.toString();
1122
- });
1123
- function f() {
1124
- const M = parseInt(r.value);
1125
- M && M > 0 && $(M);
1133
+ const x = M(() => Math.min(s.value / 2.25, n.value / 4.5) + "px"), g = M(() => Math.min(n.value / 15, s.value / 6.4) + "px"), w = M(() => Object.keys(l.practiceMarks).sort());
1134
+ function k(p) {
1135
+ const b = Object.keys(l.practiceMarks).filter((T) => l.practiceMarks[T] <= p).sort((T, $) => l.practiceMarks[$] - l.practiceMarks[T]);
1136
+ b.length > 0 && (i.value = b[0]);
1137
+ }
1138
+ function I() {
1139
+ const p = parseInt(u.value);
1140
+ p && p > 0 && Y(p);
1126
1141
  }
1127
- const x = g(() => Math.min(n.value / 2.25, a.value / 4.5) + "px"), P = g(() => Math.min(a.value / 15, n.value / 6.4) + "px");
1128
- function W() {
1129
- p.value = !p.value;
1142
+ function Y(p) {
1143
+ m.setBar(p, 0);
1130
1144
  }
1131
- function B() {
1132
- p.value = !1;
1145
+ function te(p, b) {
1146
+ b && b.stopPropagation(), i.value = p, _.value = !1, m.goToPracticeMark(p);
1133
1147
  }
1134
- function H() {
1135
- b.value = !b.value;
1148
+ function Q() {
1149
+ v.value > 1 && (B.value = !0), r.currentRepeat < v.value && m.setBar(r.currentBar, r.currentRepeat + 1);
1136
1150
  }
1137
- function R() {
1138
- b.value = !1;
1151
+ function z() {
1152
+ v.value > 1 && (B.value = !0), r.currentRepeat > 1 && m.setBar(r.currentBar, r.currentRepeat - 1);
1139
1153
  }
1140
- const J = g(() => Object.keys(s.practiceMarks).sort());
1141
- function $(M) {
1142
- l.setBar(M, i.currentRepeat);
1154
+ function ae(p) {
1155
+ p.stopPropagation(), B.value = !1, _.value = !_.value;
1143
1156
  }
1144
- function j(M) {
1145
- c.value = M, p.value = !1, l.goToPracticeMark(M);
1157
+ function f(p) {
1158
+ var b, T;
1159
+ (b = t.value) != null && b.contains(p.target) || (_.value = !1), (T = a.value) != null && T.contains(p.target) || (B.value = !1);
1160
+ }
1161
+ function A() {
1162
+ _.value && setTimeout(() => {
1163
+ var T, $;
1164
+ const p = (T = t.value) == null ? void 0 : T.querySelector(".mark-grid"), b = ($ = t.value) == null ? void 0 : $.querySelector(".mark-option.selected");
1165
+ if (b && p) {
1166
+ const q = p.getBoundingClientRect(), W = b.getBoundingClientRect(), o = W.left - q.left - q.width / 2 + W.width / 2;
1167
+ p.scrollLeft = Math.max(0, p.scrollLeft + o);
1168
+ }
1169
+ }, 50);
1146
1170
  }
1147
- return (M, S) => {
1148
- const V = qe("click-outside");
1149
- return y(), _("div", {
1150
- ref_key: "el",
1151
- ref: t,
1152
- class: w(["outer", { pulse: h.value }])
1171
+ return be(() => {
1172
+ document.addEventListener("click", f), ze("beatAnimation") && (N = setInterval(() => {
1173
+ const p = r.currentBeat % l.timeSignature + 1;
1174
+ r.setCurrentBar(r.currentBar, p, r.currentRepeat);
1175
+ }, 800));
1176
+ }), he(() => {
1177
+ document.removeEventListener("click", f), N && (clearInterval(N), N = null);
1178
+ }), (p, b) => (y(), S("div", {
1179
+ ref_key: "el",
1180
+ ref: t,
1181
+ class: R(["outer", { pulse: L.value, "mark-selecting": _.value }])
1182
+ }, [
1183
+ b[6] || (b[6] = c("div", { class: "frame" }, null, -1)),
1184
+ c("div", {
1185
+ class: R(["mark-input", { empty: !i.value, edit: _.value }]),
1186
+ onClick: ae
1153
1187
  }, [
1154
- S[1] || (S[1] = m("div", { class: "frame" }, null, -1)),
1155
- re((y(), _("div", {
1156
- class: w(["mark-input", { empty: !c.value, edit: p.value }]),
1157
- onClick: W
1158
- }, [
1159
- m("div", yt, I(c.value), 1)
1160
- ], 2)), [
1161
- [V, B]
1162
- ]),
1163
- p.value ? (y(), _("div", _t, [
1164
- (y(!0), _(ve, null, fe(J.value, (A) => (y(), _("div", {
1165
- key: A,
1166
- class: "mark-option",
1167
- onClick: (v) => j(A)
1168
- }, I(A), 9, Mt))), 128))
1169
- ])) : pe("", !0),
1170
- S[2] || (S[2] = m("div", { class: "mark-title" }, "Mark", -1)),
1171
- re(m("input", {
1188
+ c("div", yt, F(i.value), 1)
1189
+ ], 2),
1190
+ b[7] || (b[7] = c("div", { class: "mark-title" }, "Mark", -1)),
1191
+ _.value ? se("", !0) : (y(), S(le, { key: 0 }, [
1192
+ Re(c("input", {
1172
1193
  type: "text",
1173
1194
  class: "bar-input",
1174
- "onUpdate:modelValue": S[0] || (S[0] = (A) => r.value = A),
1195
+ "onUpdate:modelValue": b[0] || (b[0] = (T) => u.value = T),
1175
1196
  inputmode: "decimal",
1176
1197
  pattern: "\\d*",
1177
- onChange: f,
1178
- onKeyup: We(f, ["enter"])
1198
+ onChange: I,
1199
+ onKeyup: He(I, ["enter"])
1179
1200
  }, null, 544), [
1180
- [Oe, r.value]
1201
+ [Le, u.value]
1181
1202
  ]),
1182
- S[3] || (S[3] = m("div", { class: "bar-title" }, "Bar", -1)),
1183
- re((y(), _("div", {
1184
- class: w(["rpt-input", { edit: b.value }]),
1185
- onClick: H
1203
+ b[3] || (b[3] = c("div", { class: "bar-title" }, "Bar", -1)),
1204
+ c("div", {
1205
+ ref_key: "rpt",
1206
+ ref: a,
1207
+ class: R(["rpt-input", { edit: B.value, available: v.value > 1 }])
1186
1208
  }, [
1187
- m("div", St, I(C(i).currentRepeat || "-"), 1)
1188
- ], 2)), [
1189
- [V, R]
1190
- ]),
1191
- S[4] || (S[4] = m("div", { class: "rpt-title" }, "Rpt", -1)),
1192
- m("div", kt, [
1193
- m("div", xt, I(C(i).currentBeat), 1)
1209
+ c("div", Mt, F(O(r).currentRepeat || "-"), 1),
1210
+ (y(), S("svg", {
1211
+ class: R(["inc", { disabled: O(r).currentRepeat >= v.value }]),
1212
+ viewBox: "0 -100 100 100",
1213
+ onClick: Te(Q, ["prevent"])
1214
+ }, b[1] || (b[1] = [
1215
+ c("path", { d: "m10-20 40-60 40 60H10Z" }, null, -1)
1216
+ ]), 2)),
1217
+ (y(), S("svg", {
1218
+ class: R(["dec", { disabled: O(r).currentRepeat <= 1 }]),
1219
+ viewBox: "0 -100 100 100",
1220
+ onClick: Te(z, ["prevent"])
1221
+ }, b[2] || (b[2] = [
1222
+ c("path", { d: "m10-80 40 60 40-60H10Z" }, null, -1)
1223
+ ]), 2))
1224
+ ], 2),
1225
+ b[4] || (b[4] = c("div", { class: "rpt-title" }, "Rpt", -1)),
1226
+ c("div", _t, [
1227
+ c("div", St, F(O(r).currentBeat), 1)
1194
1228
  ]),
1195
- S[5] || (S[5] = m("div", { class: "beat-title" }, "Beat", -1))
1196
- ], 2);
1197
- };
1229
+ b[5] || (b[5] = c("div", { class: "beat-title" }, "Beat", -1))
1230
+ ], 64)),
1231
+ _.value ? (y(), S("div", kt, [
1232
+ c("div", Tt, [
1233
+ (y(!0), S(le, null, ge(w.value, (T) => (y(), S("div", {
1234
+ key: T,
1235
+ class: R(["mark-option", { selected: T === i.value }]),
1236
+ onClick: ($) => te(T, $)
1237
+ }, F(T), 11, Ct))), 128))
1238
+ ])
1239
+ ])) : se("", !0)
1240
+ ], 2));
1198
1241
  }
1199
- }, Ct = /* @__PURE__ */ L(Tt, [["__scopeId", "data-v-3043e562"]]), wt = { class: "title" }, Bt = {
1242
+ }, Bt = /* @__PURE__ */ U(xt, [["__scopeId", "data-v-0256e5c0"]]), wt = { class: "title" }, Et = {
1200
1243
  __name: "BaseNumericInput",
1201
- props: /* @__PURE__ */ me({
1244
+ props: /* @__PURE__ */ fe({
1202
1245
  title: {
1203
1246
  type: String,
1204
1247
  required: !0
@@ -1261,334 +1304,387 @@ const bt = {
1261
1304
  }),
1262
1305
  emits: ["update:value"],
1263
1306
  setup(e) {
1264
- F((c) => ({
1307
+ G((d) => ({
1265
1308
  "0d0963e0": e.textColor,
1266
1309
  "4ad34b2f": e.backgroundColor,
1267
1310
  "02156786": e.color,
1268
1311
  "715a9528": u.value,
1269
- "30d64f7d": h.value,
1312
+ "30d64f7d": m.value,
1270
1313
  b8fbe65e: e.focusColor
1271
1314
  }));
1272
- const t = e, a = U("el"), { width: n, height: s } = q(a), i = z(e, "value"), l = T(t.formatValue(t.transformSliderToDisplay(i.value)));
1273
- D(i, () => {
1274
- const c = t.transformSliderToDisplay(i.value);
1275
- l.value = t.formatValue(c);
1276
- }), D(l, () => {
1277
- l.value = t.validateInput(l.value), t.maxChars && l.value.length > t.maxChars && (l.value = l.value.slice(0, t.maxChars));
1315
+ const t = e, a = Z("el"), { width: n, height: s } = K(a), l = j(e, "value"), r = E(t.formatValue(t.transformSliderToDisplay(l.value)));
1316
+ D(l, () => {
1317
+ const d = t.transformSliderToDisplay(l.value);
1318
+ r.value = t.formatValue(d);
1319
+ }), D(r, () => {
1320
+ r.value = t.validateInput(r.value), t.maxChars && r.value.length > t.maxChars && (r.value = r.value.slice(0, t.maxChars));
1278
1321
  });
1279
- const h = g(() => Math.min(s.value / 2.25, n.value / 2.2) + "px"), u = g(() => Math.min(n.value / 3, s.value / 6.4) + "px");
1280
- function r() {
1281
- const c = t.parseValue(l.value), p = t.transformDisplayToSlider(c);
1282
- i.value = Math.min(Math.max(p, t.sliderMin), t.sliderMax);
1322
+ const m = M(() => Math.min(s.value / 2.25, n.value / 2.2) + "px"), u = M(() => Math.min(n.value / 3, s.value / 6.4) + "px");
1323
+ function i() {
1324
+ const d = t.parseValue(r.value), v = t.transformDisplayToSlider(d);
1325
+ l.value = Math.min(Math.max(v, t.sliderMin), t.sliderMax);
1283
1326
  }
1284
- return (c, p) => (y(), _("div", {
1327
+ return (d, v) => (y(), S("div", {
1285
1328
  class: "outer",
1286
1329
  ref_key: "el",
1287
1330
  ref: a
1288
1331
  }, [
1289
- p[2] || (p[2] = m("div", { class: "frame" }, null, -1)),
1290
- re(m("input", {
1332
+ v[2] || (v[2] = c("div", { class: "frame" }, null, -1)),
1333
+ Re(c("input", {
1291
1334
  type: "text",
1292
1335
  class: "input",
1293
- "onUpdate:modelValue": p[0] || (p[0] = (b) => l.value = b),
1336
+ "onUpdate:modelValue": v[0] || (v[0] = (C) => r.value = C),
1294
1337
  inputmode: "decimal",
1295
1338
  pattern: "\\d*",
1296
- onChange: r
1339
+ onChange: i
1297
1340
  }, null, 544), [
1298
- [Oe, l.value]
1341
+ [Le, r.value]
1299
1342
  ]),
1300
- m("div", wt, I(e.title), 1),
1301
- k(le, {
1343
+ c("div", wt, F(e.title), 1),
1344
+ V(de, {
1302
1345
  class: "slider",
1303
- value: i.value,
1304
- "onUpdate:value": p[1] || (p[1] = (b) => i.value = b),
1346
+ value: l.value,
1347
+ "onUpdate:value": v[1] || (v[1] = (C) => l.value = C),
1305
1348
  "thumb-length": e.thumbLength,
1306
1349
  max: e.sliderMax,
1307
1350
  min: e.sliderMin
1308
1351
  }, null, 8, ["value", "thumb-length", "max", "min"])
1309
1352
  ], 512));
1310
1353
  }
1311
- }, ze = /* @__PURE__ */ L(Bt, [["__scopeId", "data-v-79c7a539"]]), Et = {
1354
+ }, Fe = /* @__PURE__ */ U(Et, [["__scopeId", "data-v-79c7a539"]]), Pt = {
1312
1355
  __name: "SpeedInput",
1313
1356
  setup(e) {
1314
- const t = X(), a = ne(), n = g({
1357
+ const t = ee(), a = oe(), n = M({
1315
1358
  get: () => Math.log2(t.playbackSpeed) * 0.5 + 0.5,
1316
- set: (r) => {
1317
- const c = Math.pow(2, r * 2 - 1);
1318
- a.setPlaybackSpeed(c);
1359
+ set: (i) => {
1360
+ const d = Math.pow(2, i * 2 - 1);
1361
+ a.setPlaybackSpeed(d);
1319
1362
  }
1320
- }), s = (r) => Math.floor(Math.pow(2, r * 2 - 1) * 100 + 0.5) + "", i = (r) => parseFloat(r), l = (r) => r.replace(/\D/g, ""), h = (r) => r, u = (r) => {
1321
- const c = Math.log2(r / 100) * 0.5 + 0.5;
1322
- return Math.min(Math.max(c, 0), 1);
1363
+ }), s = (i) => Math.floor(Math.pow(2, i * 2 - 1) * 100 + 0.5) + "", l = (i) => parseFloat(i), r = (i) => i.replace(/\D/g, ""), m = (i) => i, u = (i) => {
1364
+ const d = Math.log2(i / 100) * 0.5 + 0.5;
1365
+ return Math.min(Math.max(d, 0), 1);
1323
1366
  };
1324
- return (r, c) => (y(), _e(ze, {
1367
+ return (i, d) => (y(), Me(Fe, {
1325
1368
  value: n.value,
1326
- "onUpdate:value": c[0] || (c[0] = (p) => n.value = p),
1369
+ "onUpdate:value": d[0] || (d[0] = (v) => n.value = v),
1327
1370
  title: "Speed",
1328
1371
  color: "#336",
1329
1372
  "text-color": "#aad",
1330
1373
  "format-value": s,
1331
- "parse-value": i,
1332
- "validate-input": l,
1333
- "transform-slider-to-display": h,
1374
+ "parse-value": l,
1375
+ "validate-input": r,
1376
+ "transform-slider-to-display": m,
1334
1377
  "transform-display-to-slider": u,
1335
1378
  "thumb-length": 2,
1336
1379
  "max-chars": 3
1337
1380
  }, null, 8, ["value"]));
1338
1381
  }
1339
- }, Pt = {
1382
+ }, Vt = {
1340
1383
  __name: "TimeInput",
1341
1384
  setup(e) {
1342
- const t = X(), a = ae(), n = ne(), s = (r) => r.toFixed(1), i = (r) => parseFloat(r), l = (r) => r.replace(/[^0-9.]/g, ""), h = (r) => r, u = (r) => r;
1343
- return (r, c) => (y(), _e(ze, {
1344
- value: C(t).currentTime,
1385
+ const t = ee(), a = ie(), n = oe(), s = (i) => i.toFixed(1), l = (i) => parseFloat(i), r = (i) => i.replace(/[^0-9.]/g, ""), m = (i) => i, u = (i) => i;
1386
+ return (i, d) => (y(), Me(Fe, {
1387
+ value: O(t).currentTime,
1345
1388
  "onUpdate:value": [
1346
- c[0] || (c[0] = (p) => C(t).currentTime = p),
1347
- C(n).setTime
1389
+ d[0] || (d[0] = (v) => O(t).currentTime = v),
1390
+ O(n).setTime
1348
1391
  ],
1349
1392
  title: "Time",
1350
1393
  color: "#344",
1351
1394
  "focus-color": "#556868",
1352
1395
  "text-color": "#acc",
1353
1396
  "background-color": "#111117",
1354
- "slider-max": C(a).totalDuration,
1397
+ "slider-max": O(a).totalDuration,
1355
1398
  "slider-min": 0,
1356
1399
  "format-value": s,
1357
- "parse-value": i,
1358
- "validate-input": l,
1359
- "transform-slider-to-display": h,
1400
+ "parse-value": l,
1401
+ "validate-input": r,
1402
+ "transform-slider-to-display": m,
1360
1403
  "transform-display-to-slider": u,
1361
1404
  "thumb-length": 2
1362
1405
  }, null, 8, ["value", "onUpdate:value", "slider-max"]));
1363
1406
  }
1364
- }, Vt = { class: "inner" }, Ot = {
1407
+ }, Rt = { class: "inner" }, Lt = {
1365
1408
  __name: "AudioButton",
1366
1409
  setup(e) {
1367
- const t = T(!1), a = () => t.value = !0, n = () => t.value = !1;
1368
- return (s, i) => (y(), _("div", {
1369
- class: w(["button-outer", { down: t.value }]),
1410
+ const t = E(!1), a = () => t.value = !0, n = () => t.value = !1;
1411
+ return (s, l) => (y(), S("div", {
1412
+ class: R(["button-outer", { down: t.value }]),
1370
1413
  onPointerdown: a,
1371
1414
  onPointerup: n,
1372
1415
  onPointerleave: n
1373
1416
  }, [
1374
- m("div", Vt, [
1375
- be(s.$slots, "default", {}, void 0, !0)
1417
+ c("div", Rt, [
1418
+ re(s.$slots, "default", {}, void 0, !0)
1376
1419
  ])
1377
1420
  ], 34));
1378
1421
  }
1379
- }, Y = /* @__PURE__ */ L(Ot, [["__scopeId", "data-v-0d7af06e"]]), It = { class: "outer" }, Lt = { class: "buttons" }, At = {
1422
+ }, X = /* @__PURE__ */ U(Lt, [["__scopeId", "data-v-0d7af06e"]]), Ot = { class: "outer" }, It = { class: "title" }, At = { class: "buttons" }, Nt = {
1380
1423
  class: "icon",
1381
1424
  viewBox: "0 0 48 48"
1382
- }, Rt = ["d"], Nt = {
1425
+ }, $t = ["d"], Dt = {
1383
1426
  __name: "MixerControls",
1384
1427
  setup(e) {
1385
- const t = ae(), a = X(), n = ne();
1428
+ const t = ie(), a = ee(), n = oe();
1386
1429
  function s() {
1387
1430
  a.isPlaying ? n.stop() : n.play();
1388
1431
  }
1389
- function i() {
1390
- const b = Math.max(1, a.currentBar - 1);
1391
- n.setBar(b);
1392
- }
1393
1432
  function l() {
1394
- const b = a.currentBar + 1;
1395
- n.setBar(b);
1433
+ const x = a.currentTime, g = t.beats.filter((k) => k.beat === 1).sort((k, I) => k.time - I.time);
1434
+ let w = null;
1435
+ for (let k = g.length - 1; k >= 0; k--)
1436
+ if (g[k].time < x) {
1437
+ w = g[k];
1438
+ break;
1439
+ }
1440
+ w && n.setBar(w.bar, w.repeat);
1441
+ }
1442
+ function r() {
1443
+ const x = a.currentTime, g = t.beats.filter((k) => k.beat === 1).sort((k, I) => k.time - I.time);
1444
+ let w = null;
1445
+ for (let k = 0; k < g.length; k++)
1446
+ if (g[k].time > x) {
1447
+ w = g[k];
1448
+ break;
1449
+ }
1450
+ w && n.setBar(w.bar, w.repeat);
1396
1451
  }
1397
- function h() {
1452
+ function m() {
1398
1453
  n.playStartingNotes();
1399
1454
  }
1400
- const u = T(!1), r = T(!0);
1401
- function c() {
1455
+ const u = E(!1), i = E(!0), d = E(!1), v = E(null);
1456
+ function C() {
1457
+ d.value = !d.value;
1458
+ }
1459
+ function _() {
1460
+ d.value = !1;
1461
+ }
1462
+ function B(x) {
1463
+ v.value && !v.value.contains(x.target) && _();
1464
+ }
1465
+ be(() => {
1466
+ document.addEventListener("click", B);
1467
+ }), he(() => {
1468
+ document.removeEventListener("click", B);
1469
+ });
1470
+ function L() {
1402
1471
  u.value = !u.value;
1403
1472
  }
1404
- function p() {
1405
- r.value = !r.value;
1473
+ function N() {
1474
+ i.value = !i.value;
1406
1475
  }
1407
- return (b, f) => (y(), _("div", It, [
1408
- k(De, {
1409
- class: "title",
1410
- align: "centre"
1411
- }, {
1412
- default: N(() => [
1413
- ye(I(C(t).title), 1)
1414
- ]),
1415
- _: 1
1416
- }),
1417
- k(le, {
1476
+ return (x, g) => (y(), S("div", Ot, [
1477
+ c("div", It, [
1478
+ V(De, {
1479
+ class: "text",
1480
+ align: "centre"
1481
+ }, {
1482
+ default: H(() => [
1483
+ ye(F(O(t).title), 1)
1484
+ ]),
1485
+ _: 1
1486
+ }),
1487
+ c("div", {
1488
+ class: "menu-container",
1489
+ ref_key: "menuRef",
1490
+ ref: v
1491
+ }, [
1492
+ (y(), S("svg", {
1493
+ class: "menu",
1494
+ viewBox: "0 -960 960 960",
1495
+ onClick: C
1496
+ }, g[1] || (g[1] = [
1497
+ c("path", { d: "M120-240v-80h720v80H120Zm0-200v-80h720v80H120Zm0-200v-80h720v80H120Z" }, null, -1)
1498
+ ]))),
1499
+ d.value && x.$slots.menu ? (y(), S("div", {
1500
+ key: 0,
1501
+ class: "dropdown-menu",
1502
+ onClick: _
1503
+ }, [
1504
+ re(x.$slots, "menu", {}, void 0, !0)
1505
+ ])) : se("", !0)
1506
+ ], 512)
1507
+ ]),
1508
+ V(de, {
1418
1509
  class: "main",
1419
1510
  colour: "red",
1420
- modelValue: C(a).masterVolume,
1421
- "onUpdate:modelValue": f[0] || (f[0] = (x) => C(a).masterVolume = x)
1511
+ modelValue: O(a).masterVolume,
1512
+ "onUpdate:modelValue": g[0] || (g[0] = (w) => O(a).masterVolume = w)
1422
1513
  }, null, 8, ["modelValue"]),
1423
- k(le, {
1514
+ V(de, {
1424
1515
  class: "tick",
1425
1516
  colour: "blue"
1426
1517
  }),
1427
- f[6] || (f[6] = m("div", { class: "main-t" }, "Main", -1)),
1428
- f[7] || (f[7] = m("div", { class: "tick-t" }, "Tick", -1)),
1429
- k(Ct, { class: "bar" }),
1430
- k(Pt, { class: "time" }),
1431
- k(Et, { class: "speed" }),
1432
- m("div", Lt, [
1433
- k(Y, {
1518
+ g[7] || (g[7] = c("div", { class: "main-t" }, "Main", -1)),
1519
+ g[8] || (g[8] = c("div", { class: "tick-t" }, "Tick", -1)),
1520
+ V(Bt, { class: "bar" }),
1521
+ V(Vt, { class: "time" }),
1522
+ V(Pt, { class: "speed" }),
1523
+ c("div", At, [
1524
+ V(X, {
1434
1525
  class: "button",
1435
- onClick: i
1526
+ onClick: l
1436
1527
  }, {
1437
- default: N(() => f[1] || (f[1] = [
1438
- m("svg", {
1528
+ default: H(() => g[2] || (g[2] = [
1529
+ c("svg", {
1439
1530
  class: "icon",
1440
1531
  viewBox: "0 0 48 48"
1441
1532
  }, [
1442
- m("path", { d: "M11 36V12h3v24Zm26 0L19.7 24 37 12Z" })
1533
+ c("path", { d: "M11 36V12h3v24Zm26 0L19.7 24 37 12Z" })
1443
1534
  ], -1)
1444
1535
  ])),
1445
1536
  _: 1,
1446
- __: [1]
1537
+ __: [2]
1447
1538
  }),
1448
- k(Y, {
1539
+ V(X, {
1449
1540
  class: "button",
1450
1541
  onClick: s
1451
1542
  }, {
1452
- default: N(() => [
1453
- (y(), _("svg", At, [
1454
- m("path", {
1455
- d: C(a).isPlaying ? "M27.4 35.4V12.6h8v22.8Zm-14.8 0V12.6h8.05v22.8Z" : "M16 37.85v-28l22 14Z"
1456
- }, null, 8, Rt)
1543
+ default: H(() => [
1544
+ (y(), S("svg", Nt, [
1545
+ c("path", {
1546
+ d: O(a).isPlaying ? "M27.4 35.4V12.6h8v22.8Zm-14.8 0V12.6h8.05v22.8Z" : "M16 37.85v-28l22 14Z"
1547
+ }, null, 8, $t)
1457
1548
  ]))
1458
1549
  ]),
1459
1550
  _: 1
1460
1551
  }),
1461
- k(Y, {
1552
+ V(X, {
1462
1553
  class: "button",
1463
- onClick: l
1554
+ onClick: r
1464
1555
  }, {
1465
- default: N(() => f[2] || (f[2] = [
1466
- m("svg", {
1556
+ default: H(() => g[3] || (g[3] = [
1557
+ c("svg", {
1467
1558
  class: "icon",
1468
1559
  viewBox: "0 0 48 48"
1469
1560
  }, [
1470
- m("path", { d: "M34 36V12h3v24Zm-23 0V12l17.3 12Z" })
1561
+ c("path", { d: "M34 36V12h3v24Zm-23 0V12l17.3 12Z" })
1471
1562
  ], -1)
1472
1563
  ])),
1473
1564
  _: 1,
1474
- __: [2]
1565
+ __: [3]
1475
1566
  }),
1476
- k(Y, {
1567
+ V(X, {
1477
1568
  class: "button",
1478
- onClick: c
1569
+ onClick: L
1479
1570
  }, {
1480
- default: N(() => [
1481
- (y(), _("svg", {
1482
- class: w(["icon", u.value ? "on" : "off"]),
1571
+ default: H(() => [
1572
+ (y(), S("svg", {
1573
+ class: R(["icon", u.value ? "on" : "off"]),
1483
1574
  viewBox: "-128 -128 768 768"
1484
- }, f[3] || (f[3] = [
1485
- m("path", { d: "m 463.84136,154.89339 c -6.42,-6.42 -16.83,-6.42 -23.251,0 -71.31197,70.35135 -136.61146,132.25426 -208.741,199.7 h -105.82 c 23.35495,-140.1063 67.13099,-217.59716 120.727,-318.357996 0.86,-0.803 2.209,-0.801 3.067,-10e-4 20.50653,37.383983 48.51152,88.812606 72.26194,147.190756 1.186,9.002 12.2214,17.4338 23.3242,11.71391 9.002,-1.186 11.1594,-12.2324 9.9724,-21.2344 -21.69905,-53.89113 -30.43965,-85.078342 -83.11454,-161.702266 -13.446,-12.55299965 -34.508,-12.55699965 -47.954,10e-4 C 126.80877,149.30021 96.099465,324.74626 77.091365,474.25139 c -2.829,21.473 13.907,40.535 35.543995,40.535 h 271.311 c 21.661,0 38.373,-19.087 35.544,-40.535 -8.26237,-52.34207 -14.88466,-100.7074 -24.7871,-157.02622 -6.40949,-11.78839 -8.3911,-14.9907 -17.4031,-13.8037 -9.002,1.186 -13.59751,8.0528 -12.41051,17.0548 l 5.66371,34.11712 h -83.159 c 64.35441,-63.86663 129.29308,-130.29894 176.448,-176.449 6.42,-6.42 6.42,-16.83 -10e-4,-23.251 z m -88.956,232.582 12.004,91.074 c 0.112,0.846 -0.148,1.701 -0.708,2.341 -0.566,0.645 -1.38,1.014 -2.235,1.014 h -271.311 c -0.855,0 -1.668,-0.369 -2.231,-1.011 -0.564,-0.643 -0.824,-1.499 -0.712,-2.347 l 12.003,-91.072 h 253.19 z" }, null, -1)
1575
+ }, g[4] || (g[4] = [
1576
+ c("path", { d: "m 463.84136,154.89339 c -6.42,-6.42 -16.83,-6.42 -23.251,0 -71.31197,70.35135 -136.61146,132.25426 -208.741,199.7 h -105.82 c 23.35495,-140.1063 67.13099,-217.59716 120.727,-318.357996 0.86,-0.803 2.209,-0.801 3.067,-10e-4 20.50653,37.383983 48.51152,88.812606 72.26194,147.190756 1.186,9.002 12.2214,17.4338 23.3242,11.71391 9.002,-1.186 11.1594,-12.2324 9.9724,-21.2344 -21.69905,-53.89113 -30.43965,-85.078342 -83.11454,-161.702266 -13.446,-12.55299965 -34.508,-12.55699965 -47.954,10e-4 C 126.80877,149.30021 96.099465,324.74626 77.091365,474.25139 c -2.829,21.473 13.907,40.535 35.543995,40.535 h 271.311 c 21.661,0 38.373,-19.087 35.544,-40.535 -8.26237,-52.34207 -14.88466,-100.7074 -24.7871,-157.02622 -6.40949,-11.78839 -8.3911,-14.9907 -17.4031,-13.8037 -9.002,1.186 -13.59751,8.0528 -12.41051,17.0548 l 5.66371,34.11712 h -83.159 c 64.35441,-63.86663 129.29308,-130.29894 176.448,-176.449 6.42,-6.42 6.42,-16.83 -10e-4,-23.251 z m -88.956,232.582 12.004,91.074 c 0.112,0.846 -0.148,1.701 -0.708,2.341 -0.566,0.645 -1.38,1.014 -2.235,1.014 h -271.311 c -0.855,0 -1.668,-0.369 -2.231,-1.011 -0.564,-0.643 -0.824,-1.499 -0.712,-2.347 l 12.003,-91.072 h 253.19 z" }, null, -1)
1486
1577
  ]), 2))
1487
1578
  ]),
1488
1579
  _: 1
1489
1580
  }),
1490
- k(Y, {
1581
+ V(X, {
1491
1582
  class: "button",
1492
- onClick: p
1583
+ onClick: N
1493
1584
  }, {
1494
- default: N(() => [
1495
- (y(), _("svg", {
1496
- class: w(["icon", r.value ? "on" : "off"]),
1585
+ default: H(() => [
1586
+ (y(), S("svg", {
1587
+ class: R(["icon", i.value ? "on" : "off"]),
1497
1588
  viewBox: "-2 -2 28 28"
1498
- }, f[4] || (f[4] = [
1499
- m("path", { d: "m 8.9838564,1.5166215 v 2 h 5.9999996 v -2 z m 2.9999996,3 c -4.9699996,0 -8.9999996,4.0299999 -8.9999996,8.9999995 0,4.97 4.02,9 8.9999996,9 4.98,0 9,-4.03 9,-9 0,-2.12 -0.740703,-4.0693745 -1.970703,-5.6093745 l 1.419922,-1.421875 c -0.43,-0.51 -0.900156,-0.9882031 -1.410156,-1.4082031 l -1.419922,1.4199219 c -1.55,-1.24 -3.499141,-1.9804688 -5.619141,-1.9804688 z m -1.789062,4.7480469 6,4.4999996 -6,4.5 z" }, null, -1)
1589
+ }, g[5] || (g[5] = [
1590
+ c("path", { d: "m 8.9838564,1.5166215 v 2 h 5.9999996 v -2 z m 2.9999996,3 c -4.9699996,0 -8.9999996,4.0299999 -8.9999996,8.9999995 0,4.97 4.02,9 8.9999996,9 4.98,0 9,-4.03 9,-9 0,-2.12 -0.740703,-4.0693745 -1.970703,-5.6093745 l 1.419922,-1.421875 c -0.43,-0.51 -0.900156,-0.9882031 -1.410156,-1.4082031 l -1.419922,1.4199219 c -1.55,-1.24 -3.499141,-1.9804688 -5.619141,-1.9804688 z m -1.789062,4.7480469 6,4.4999996 -6,4.5 z" }, null, -1)
1500
1591
  ]), 2))
1501
1592
  ]),
1502
1593
  _: 1
1503
1594
  }),
1504
- k(Y, {
1595
+ V(X, {
1505
1596
  class: "button",
1506
- onClick: h
1597
+ onClick: m
1507
1598
  }, {
1508
- default: N(() => f[5] || (f[5] = [
1509
- m("svg", {
1599
+ default: H(() => g[6] || (g[6] = [
1600
+ c("svg", {
1510
1601
  class: "icon",
1511
1602
  viewBox: "0 -960 960 960"
1512
1603
  }, [
1513
- m("path", { d: "m 306.66667,-360 q -44,0 -75.33334,-31.33333 Q 200,-422.66667 200,-466.66667 q 0,-44 31.33333,-75.33333 31.33334,-31.33333 75.33334,-31.33333 15.33333,0 28.33333,3.66666 13,3.66667 25,11 V -840 h 160 v 106.66667 H 413.33333 v 266.66666 q 0,44 -31.33333,75.33334 Q 350.66667,-360 306.66667,-360 Z" }),
1514
- m("path", { d: "m 546.66667,-120 q -44,0 -75.33334,-31.33333 Q 440,-182.66667 440,-226.66667 q 0,-44 31.33333,-75.33333 31.33334,-31.33333 75.33334,-31.33333 15.33333,0 28.33333,3.66666 13,3.66667 25,11 V -600 h 160 v 106.66667 H 653.33333 v 266.66666 q 0,44 -31.33333,75.33334 Q 590.66667,-120 546.66667,-120 Z" })
1604
+ c("path", { d: "m 306.66667,-360 q -44,0 -75.33334,-31.33333 Q 200,-422.66667 200,-466.66667 q 0,-44 31.33333,-75.33333 31.33334,-31.33333 75.33334,-31.33333 15.33333,0 28.33333,3.66666 13,3.66667 25,11 V -840 h 160 v 106.66667 H 413.33333 v 266.66666 q 0,44 -31.33333,75.33334 Q 350.66667,-360 306.66667,-360 Z" }),
1605
+ c("path", { d: "m 546.66667,-120 q -44,0 -75.33334,-31.33333 Q 440,-182.66667 440,-226.66667 q 0,-44 31.33333,-75.33333 31.33334,-31.33333 75.33334,-31.33333 15.33333,0 28.33333,3.66666 13,3.66667 25,11 V -600 h 160 v 106.66667 H 653.33333 v 266.66666 q 0,44 -31.33333,75.33334 Q 590.66667,-120 546.66667,-120 Z" })
1515
1606
  ], -1)
1516
1607
  ])),
1517
1608
  _: 1,
1518
- __: [5]
1609
+ __: [6]
1519
1610
  })
1520
1611
  ])
1521
1612
  ]));
1522
1613
  }
1523
- }, Dt = /* @__PURE__ */ L(Nt, [["__scopeId", "data-v-fc2b877e"]]), $t = { class: "container" }, zt = { class: "panel" }, Te = 40, Ce = 40, we = 100, Ft = 50, Be = 400, Ee = 570, Pe = 570, Ut = 350, qt = 330, Wt = 360, Ht = 360, jt = {
1614
+ }, zt = /* @__PURE__ */ U(Dt, [["__scopeId", "data-v-a93a2793"]]), Ft = { class: "container" }, Ut = { class: "panel" }, xe = 40, Be = 40, we = 100, qt = 50, Ee = 400, Pe = 570, Ve = 570, Ht = 350, Wt = 330, Zt = 360, jt = 360, Gt = {
1524
1615
  __name: "MixerLayout",
1525
1616
  setup(e) {
1526
- F((u) => ({
1527
- "2540622b": i.value,
1528
- "25398f45": l.value,
1529
- fc452918: h.value
1617
+ G((u) => ({
1618
+ "6bce51ec": l.value,
1619
+ "6bdbf7b8": r.value,
1620
+ 78139275: m.value
1530
1621
  }));
1531
- const t = ae(), a = U("container"), { width: n } = q(a), s = g(() => {
1532
- const u = n.value, r = t.parts.length;
1533
- return u < 640 || u < Te * r + Be ? 0 : u < Ce * r + Ee ? 1 : u < we * r + Pe ? 2 : 3;
1534
- }), i = g(() => {
1622
+ const t = ie(), a = Z("container"), { width: n } = K(a), s = M(() => {
1623
+ const u = n.value, i = t.parts.length;
1624
+ return u < 640 || u < xe * i + Ee ? 0 : u < Be * i + Pe ? 1 : u < we * i + Ve ? 2 : 3;
1625
+ }), l = M(() => {
1535
1626
  switch (s.value) {
1536
1627
  case 0:
1537
- return `${Ut}px ` + `${Ft}px `.repeat(t.parts.length);
1628
+ return `${Ht}px ` + `${qt}px `.repeat(t.parts.length);
1538
1629
  case 1:
1539
- return `${qt}px`;
1540
- case 2:
1541
1630
  return `${Wt}px`;
1631
+ case 2:
1632
+ return `${Zt}px`;
1542
1633
  default:
1543
- return `${Ht}px`;
1634
+ return `${jt}px`;
1544
1635
  }
1545
- }), l = g(() => {
1636
+ }), r = M(() => {
1546
1637
  switch (s.value) {
1547
1638
  case 0:
1548
1639
  return "100vw";
1549
1640
  case 1:
1550
- return `${Te}px `.repeat(t.parts.length) + `${Be}px`;
1641
+ return `${xe}px `.repeat(t.parts.length) + `${Ee}px`;
1551
1642
  case 2:
1552
- return `${Ce}px `.repeat(t.parts.length) + `${Ee}px`;
1643
+ return `${Be}px `.repeat(t.parts.length) + `${Pe}px`;
1553
1644
  default:
1554
- return `${we}px `.repeat(t.parts.length) + `${Pe}px`;
1645
+ return `${we}px `.repeat(t.parts.length) + `${Ve}px`;
1555
1646
  }
1556
- }), h = g(() => {
1647
+ }), m = M(() => {
1557
1648
  const u = [...t.parts.keys()];
1558
- return s.value > 0 ? '"' + u.map((r) => "part" + r).join(" ") + ' controls"' : '"controls" ' + u.map((r) => '"part' + r + '"').join(" ");
1649
+ return s.value > 0 ? '"' + u.map((i) => "part" + i).join(" ") + ' controls"' : '"controls" ' + u.map((i) => '"part' + i + '"').join(" ");
1559
1650
  });
1560
- return (u, r) => (y(), _("div", {
1651
+ return (u, i) => (y(), S("div", {
1561
1652
  class: "outer",
1562
1653
  ref_key: "container",
1563
1654
  ref: a
1564
1655
  }, [
1565
- m("div", $t, [
1566
- m("div", zt, [
1567
- (y(!0), _(ve, null, fe(C(t).parts, (c, p) => (y(), _e(gt, {
1568
- key: c.name,
1569
- class: w("part" + p),
1570
- name: c.name,
1571
- volume: c.volume,
1572
- "onUpdate:volume": (b) => c.volume = b,
1573
- solo: c.solo,
1574
- "onUpdate:solo": (b) => c.solo = b,
1575
- mute: c.mute,
1576
- "onUpdate:mute": (b) => c.mute = b,
1656
+ c("div", Ft, [
1657
+ c("div", Ut, [
1658
+ (y(!0), S(le, null, ge(O(t).parts, (d, v) => (y(), Me(bt, {
1659
+ key: d.name,
1660
+ class: R("part" + v),
1661
+ name: d.name,
1662
+ volume: d.volume,
1663
+ "onUpdate:volume": (C) => d.volume = C,
1664
+ solo: d.solo,
1665
+ "onUpdate:solo": (C) => d.solo = C,
1666
+ mute: d.mute,
1667
+ "onUpdate:mute": (C) => d.mute = C,
1577
1668
  ref_for: !0,
1578
1669
  ref: "parts"
1579
1670
  }, null, 8, ["class", "name", "volume", "onUpdate:volume", "solo", "onUpdate:solo", "mute", "onUpdate:mute"]))), 128)),
1580
- k(Dt, {
1581
- title: C(t).title,
1671
+ V(zt, {
1672
+ title: O(t).title,
1582
1673
  class: "controls"
1583
- }, null, 8, ["title"])
1674
+ }, {
1675
+ menu: H(() => [
1676
+ re(u.$slots, "menu", {}, void 0, !0)
1677
+ ]),
1678
+ _: 3
1679
+ }, 8, ["title"])
1584
1680
  ])
1585
1681
  ])
1586
1682
  ], 512));
1587
1683
  }
1588
- }, ta = /* @__PURE__ */ L(jt, [["__scopeId", "data-v-03258471"]]), Gt = { class: "outer" }, Zt = { class: "mid" }, Kt = { class: "inner" }, Yt = {
1684
+ }, na = /* @__PURE__ */ U(Gt, [["__scopeId", "data-v-df706138"]]), Kt = { class: "outer" }, Yt = { class: "mid" }, Qt = { class: "inner" }, Xt = {
1589
1685
  key: 0,
1590
1686
  class: "content"
1591
- }, Qt = {
1687
+ }, Jt = {
1592
1688
  __name: "Placeholder",
1593
1689
  props: {
1594
1690
  colour: {
@@ -1601,40 +1697,40 @@ const bt = {
1601
1697
  }
1602
1698
  },
1603
1699
  setup(e) {
1604
- return F((t) => ({
1700
+ return G((t) => ({
1605
1701
  "66bea586": e.colour
1606
- })), (t, a) => (y(), _("div", Gt, [
1607
- m("div", Zt, [
1608
- m("div", Kt, [
1609
- e.text || t.$slots.default ? (y(), _("div", Yt, [
1610
- ye(I(e.text) + " ", 1),
1611
- be(t.$slots, "default", {}, void 0, !0)
1612
- ])) : pe("", !0)
1702
+ })), (t, a) => (y(), S("div", Kt, [
1703
+ c("div", Yt, [
1704
+ c("div", Qt, [
1705
+ e.text || t.$slots.default ? (y(), S("div", Xt, [
1706
+ ye(F(e.text) + " ", 1),
1707
+ re(t.$slots, "default", {}, void 0, !0)
1708
+ ])) : se("", !0)
1613
1709
  ])
1614
1710
  ])
1615
1711
  ]));
1616
1712
  }
1617
- }, aa = /* @__PURE__ */ L(Qt, [["__scopeId", "data-v-dff76c48"]]);
1713
+ }, sa = /* @__PURE__ */ U(Jt, [["__scopeId", "data-v-dff76c48"]]);
1618
1714
  export {
1619
- Y as AudioButton,
1620
- le as AudioSlider,
1621
- Ct as BarInput,
1622
- ze as BaseNumericInput,
1623
- he as DEV_MODE,
1715
+ X as AudioButton,
1716
+ de as AudioSlider,
1717
+ Bt as BarInput,
1718
+ Fe as BaseNumericInput,
1719
+ ve as DEV_MODE,
1624
1720
  ft as DummyAudioEngine,
1625
- Dt as MixerControls,
1626
- ta as MixerLayout,
1627
- gt as PartControl,
1628
- aa as Placeholder,
1629
- Et as SpeedInput,
1630
- Pt as TimeInput,
1721
+ zt as MixerControls,
1722
+ na as MixerLayout,
1723
+ bt as PartControl,
1724
+ sa as Placeholder,
1725
+ Pt as SpeedInput,
1726
+ Vt as TimeInput,
1631
1727
  De as TitleText,
1632
1728
  mt as TriState,
1633
- $e as isDevFeature,
1634
- ea as isDevMode,
1635
- X as useAudioStateStore,
1636
- q as useElementSize,
1637
- ne as useMasterAudioControl,
1638
- ae as useMusicDataStore,
1729
+ ze as isDevFeature,
1730
+ aa as isDevMode,
1731
+ ee as useAudioStateStore,
1732
+ K as useElementSize,
1733
+ oe as useMasterAudioControl,
1734
+ ie as useMusicDataStore,
1639
1735
  pt as usePlaybackStateStore
1640
1736
  };