@tresjs/leches 0.14.0-next.0 → 0.14.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,99 +1,100 @@
1
1
  /**
2
2
  * name: @tresjs/leches
3
- * version: v0.14.0-next.0
3
+ * version: v0.14.0
4
4
  * (c) 2023
5
5
  * description: Tasty GUI for Vue controls 🍰
6
6
  * author: Alvaro Saburido <hola@alvarosaburido.dev> (https://github.com/alvarosabu/)
7
7
  */
8
- import { unref as D, isRef as R, toRefs as B, customRef as ge, ref as f, watch as U, computed as V, defineComponent as M, reactive as j, h as be, provide as ye, isReactive as me, openBlock as d, createElementBlock as h, createElementVNode as p, toDisplayString as k, normalizeClass as C, withDirectives as ae, vShow as re, createTextVNode as se, normalizeStyle as he, Fragment as O, renderList as N, createCommentVNode as Y, createBlock as S, createVNode as ie, Transition as _e, withCtx as ce } from "vue";
9
- import { useWindowSize as ue, useEventListener as H, useStorage as xe, isClient as we, useMouse as ee, useMousePressed as $e, useKeyModifier as te, useFps as Ce, useRafFn as ke } from "@vueuse/core";
10
- function E(t) {
11
- return typeof t == "function" ? t() : D(t);
8
+ import { unref as K, isRef as G, toRefs as B, customRef as gt, ref as d, watch as O, computed as z, defineComponent as k, reactive as N, h as mt, provide as yt, isReactive as ht, openBlock as p, createElementBlock as h, normalizeClass as M, Fragment as V, createTextVNode as st, toDisplayString as F, createVNode as X, createElementVNode as f, withDirectives as ct, vShow as it, normalizeStyle as _t, renderList as j, createCommentVNode as H, createBlock as C, Transition as wt, withCtx as ut } from "vue";
9
+ import { useWindowSize as pt, useEventListener as J, useStorage as xt, isClient as $t, useMouse as lt, useMousePressed as kt, useKeyModifier as nt, useFps as Ct, useRafFn as Mt } from "@vueuse/core";
10
+ function E(e) {
11
+ return typeof e == "function" ? e() : K(e);
12
12
  }
13
- const pe = typeof window < "u" && typeof document < "u";
14
- function Me(t, s = {}) {
15
- if (!R(t))
16
- return B(t);
17
- const n = Array.isArray(t.value) ? Array.from({ length: t.value.length }) : {};
18
- for (const o in t.value)
19
- n[o] = ge(() => ({
13
+ const dt = typeof window < "u" && typeof document < "u";
14
+ typeof WorkerGlobalScope < "u" && globalThis instanceof WorkerGlobalScope;
15
+ function St(e, o = {}) {
16
+ if (!G(e))
17
+ return B(e);
18
+ const l = Array.isArray(e.value) ? Array.from({ length: e.value.length }) : {};
19
+ for (const n in e.value)
20
+ l[n] = gt(() => ({
20
21
  get() {
21
- return t.value[o];
22
+ return e.value[n];
22
23
  },
23
- set(e) {
24
- var c;
25
- if ((c = E(s.replaceRef)) != null ? c : !0)
26
- if (Array.isArray(t.value)) {
27
- const i = [...t.value];
28
- i[o] = e, t.value = i;
24
+ set(t) {
25
+ var i;
26
+ if ((i = E(o.replaceRef)) != null ? i : !0)
27
+ if (Array.isArray(e.value)) {
28
+ const c = [...e.value];
29
+ c[n] = t, e.value = c;
29
30
  } else {
30
- const i = { ...t.value, [o]: e };
31
- Object.setPrototypeOf(i, Object.getPrototypeOf(t.value)), t.value = i;
31
+ const c = { ...e.value, [n]: t };
32
+ Object.setPrototypeOf(c, Object.getPrototypeOf(e.value)), e.value = c;
32
33
  }
33
34
  else
34
- t.value[o] = e;
35
+ e.value[n] = t;
35
36
  }
36
37
  }));
37
- return n;
38
+ return l;
38
39
  }
39
- const Se = pe ? window : void 0;
40
- function Ie(t, s = {}) {
40
+ const Tt = dt ? window : void 0;
41
+ function At(e, o = {}) {
41
42
  const {
42
- pointerTypes: n,
43
- preventDefault: o,
44
- stopPropagation: e,
45
- exact: c,
46
- onMove: a,
47
- onEnd: i,
43
+ pointerTypes: l,
44
+ preventDefault: n,
45
+ stopPropagation: t,
46
+ exact: i,
47
+ onMove: r,
48
+ onEnd: c,
48
49
  onStart: u,
49
50
  initialValue: _,
50
- axis: m = "both",
51
- draggingElement: r = Se,
52
- handle: l = t
53
- } = s, { width: y } = ue();
54
- let I = y.value;
55
- const v = f(
51
+ axis: y = "both",
52
+ draggingElement: s = Tt,
53
+ handle: a = e
54
+ } = o, { width: m } = pt();
55
+ let S = m.value;
56
+ const v = d(
56
57
  E(_) ?? { x: 0, y: 0 }
57
58
  );
58
- U(y, () => {
59
- const g = y.value - I;
60
- v.value.x += g, I = y.value;
59
+ O(m, () => {
60
+ const g = m.value - S;
61
+ v.value.x += g, S = m.value;
61
62
  });
62
- const T = f(), F = (g) => n ? n.includes(g.pointerType) : !0, $ = (g) => {
63
- E(o) && g.preventDefault(), E(e) && g.stopPropagation();
63
+ const T = d(), D = (g) => l ? l.includes(g.pointerType) : !0, $ = (g) => {
64
+ E(n) && g.preventDefault(), E(t) && g.stopPropagation();
64
65
  }, A = (g) => {
65
- if (!F(g) || E(c) && g.target !== E(t))
66
+ if (!D(g) || E(i) && g.target !== E(e))
66
67
  return;
67
- const b = E(t).getBoundingClientRect(), w = {
68
+ const b = E(e).getBoundingClientRect(), x = {
68
69
  x: g.clientX - b.left,
69
70
  y: g.clientY - b.top
70
71
  };
71
- (u == null ? void 0 : u(w, g)) !== !1 && (T.value = w, $(g));
72
- }, z = (g) => {
73
- if (!F(g) || !T.value)
72
+ (u == null ? void 0 : u(x, g)) !== !1 && (T.value = x, $(g));
73
+ }, q = (g) => {
74
+ if (!D(g) || !T.value)
74
75
  return;
75
- let { x: b, y: w } = v.value;
76
- (m === "x" || m === "both") && (b = g.clientX - T.value.x), (m === "y" || m === "both") && (w = g.clientY - T.value.y), v.value = {
76
+ let { x: b, y: x } = v.value;
77
+ (y === "x" || y === "both") && (b = g.clientX - T.value.x), (y === "y" || y === "both") && (x = g.clientY - T.value.y), v.value = {
77
78
  x: b,
78
- y: w
79
- }, a == null || a(v.value, g), $(g);
79
+ y: x
80
+ }, r == null || r(v.value, g), $(g);
80
81
  }, P = (g) => {
81
- F(g) && T.value && (T.value = void 0, i == null || i(v.value, g), $(g));
82
+ D(g) && T.value && (T.value = void 0, c == null || c(v.value, g), $(g));
82
83
  };
83
- if (pe) {
84
- const g = { capture: s.capture ?? !0 };
85
- H(l, "pointerdown", A, g), H(r, "pointermove", z, g), H(r, "pointerup", P, g);
84
+ if (dt) {
85
+ const g = { capture: o.capture ?? !0 };
86
+ J(a, "pointerdown", A, g), J(s, "pointermove", q, g), J(s, "pointerup", P, g);
86
87
  }
87
88
  return {
88
- ...Me(v),
89
+ ...St(v),
89
90
  position: v,
90
- isDragging: V(() => !!T.value),
91
- style: V(
91
+ isDragging: z(() => !!T.value),
92
+ style: z(
92
93
  () => `left:${v.value.x}px;top:${v.value.y}px;`
93
94
  )
94
95
  };
95
96
  }
96
- const Te = /* @__PURE__ */ M({
97
+ const It = /* @__PURE__ */ k({
97
98
  name: "UseDraggable",
98
99
  props: [
99
100
  "storageKey",
@@ -110,628 +111,651 @@ const Te = /* @__PURE__ */ M({
110
111
  "onMove",
111
112
  "onEnd"
112
113
  ],
113
- setup(t, { slots: s }) {
114
- const n = f(), o = V(() => t.handle ?? n.value), e = t.storageKey && xe(
115
- t.storageKey,
116
- E(t.initialValue) || { x: 0, y: 0 },
117
- we ? t.storageType === "session" ? sessionStorage : localStorage : void 0
118
- ), c = e || t.initialValue || { x: 0, y: 0 }, i = j(Ie(n, {
119
- ...t,
120
- handle: o,
121
- initialValue: c,
114
+ setup(e, { slots: o }) {
115
+ const l = d(), n = z(() => e.handle ?? l.value), t = e.storageKey && xt(
116
+ e.storageKey,
117
+ E(e.initialValue) || { x: 0, y: 0 },
118
+ $t ? e.storageType === "session" ? sessionStorage : localStorage : void 0
119
+ ), i = t || e.initialValue || { x: 0, y: 0 }, c = N(At(l, {
120
+ ...e,
121
+ handle: n,
122
+ initialValue: i,
122
123
  onEnd: (u, _) => {
123
- var m;
124
- (m = t.onEnd) == null || m.call(t, u, _), e && (e.value.x = u.x, e.value.y = u.y);
124
+ var y;
125
+ (y = e.onEnd) == null || y.call(e, u, _), t && (t.value.x = u.x, t.value.y = u.y);
125
126
  }
126
127
  }));
127
128
  return () => {
128
- if (s.default)
129
- return be(t.as || "div", { ref: n, style: `touch-action:none;${i.style}` }, s.default(i));
129
+ if (o.default)
130
+ return mt(e.as || "div", { ref: l, style: `touch-action:none;${c.style}` }, o.default(c));
130
131
  };
131
132
  }
132
- }), Ae = Symbol("CONTROLS_CONTEXT_KEY"), de = "default", X = j({});
133
- function Ke(t = de) {
134
- return ye(Ae, X), X[t];
133
+ }), Kt = Symbol("CONTROLS_CONTEXT_KEY"), ft = "default", L = N({});
134
+ function Dt(e = ft) {
135
+ return yt(Kt, L), L[e];
135
136
  }
136
- const G = (t) => {
137
- const s = /^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$|^0x([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/;
138
- return typeof t == "boolean" ? "boolean" : typeof t == "number" ? "number" : typeof t == "string" && s.test(t) ? "color" : typeof t == "string" ? "string" : t.isVector3 || t.isVector2 || t.isEuler || t instanceof Array ? "vector" : t.min !== void 0 || t.max !== void 0 || t.step !== void 0 ? "range" : t.options && Array.isArray(t.options) ? "select" : "unknown";
139
- }, W = (t, s, n, o) => {
140
- const e = {
141
- key: f(t),
142
- label: f(t),
143
- name: f(t),
144
- type: f(n),
145
- value: f(s),
146
- visible: f(!0),
147
- [t]: f(s)
137
+ const Q = (e) => {
138
+ const o = /^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$|^0x([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/;
139
+ return typeof e == "boolean" ? "boolean" : typeof e == "number" ? "number" : typeof e == "string" && o.test(e) ? "color" : typeof e == "string" ? "string" : e.isVector3 || e.isVector2 || e.isEuler || e.value instanceof Array || e.value.isVector3 || e.value.isVector2 || e.value.isEuler || e.value.value instanceof Array ? "vector" : e.min !== void 0 || e.max !== void 0 || e.step !== void 0 ? "range" : e.options && Array.isArray(e.options) ? "select" : "unknown";
140
+ }, Y = (e, o, l, n) => {
141
+ const t = {
142
+ key: d(e),
143
+ label: d(e),
144
+ name: d(e),
145
+ type: d(l),
146
+ value: d(o),
147
+ visible: d(!0),
148
+ icon: d(),
149
+ uniqueKey: d(e),
150
+ [e]: d(o)
148
151
  };
149
- return o && (e.folder = f(o)), e;
150
- }, Et = (t, s, n) => {
151
- const o = {}, e = typeof t == "string" ? t : null, c = e ? s : t, a = e && e !== "fpsgraph" ? n : s, i = (a == null ? void 0 : a.uuid) || de;
152
- if (X[i] || (X[i] = j({})), t === "fpsgraph") {
153
- const r = W("fpsgraph", null, "fpsgraph", null);
154
- return X[i].fpsgraph = r, o.fpsgraph = r, B(j(o));
152
+ return n && (t.folder = d(n)), t;
153
+ }, De = (e, o, l) => {
154
+ const n = {}, t = typeof e == "string" ? e : null, i = t ? o : e, r = t && t !== "fpsgraph" ? l : o, c = (r == null ? void 0 : r.uuid) || ft;
155
+ if (L[c] || (L[c] = N({})), e === "fpsgraph") {
156
+ const s = Y("fpsgraph", null, "fpsgraph", null);
157
+ return L[c].fpsgraph = s, n.fpsgraph = s, B(N(n));
155
158
  }
156
- const u = X[i], _ = me(c), m = _ ? B(c) : {};
157
- for (const r in c) {
158
- let l = c[r], y = r;
159
- if (_ && m[r] && (l = m[r]), e && (y = `${e}${r.charAt(0).toUpperCase() + r.slice(1)}`), typeof l == "object" && !R(l) && !Array.isArray(l) && l.value !== void 0) {
160
- const v = l, T = R(v.value) ? v.value : f(v.value), F = v.type || G(v.value), $ = W(r, T, F, e);
161
- F === "select" && ($.options = f(v.options.map((A) => typeof A == "object" && A.text && A.value ? A : {
159
+ const u = L[c], _ = ht(i), y = _ ? B(i) : {};
160
+ for (const s in i) {
161
+ let a = i[s], m = s;
162
+ if (_ && y[s] && (a = y[s]), t && (m = `${t}${s.charAt(0).toUpperCase() + s.slice(1)}`), typeof a == "object" && !G(a) && !Array.isArray(a) && a.value !== void 0) {
163
+ const v = a, T = G(v.value) ? v.value : d(v.value), D = v.type || Q(v), $ = Y(s, T, D, t);
164
+ D === "select" && ($.options = d(v.options.map((A) => typeof A == "object" && A.text && A.value ? A : {
162
165
  text: A,
163
166
  value: A
164
- }))), F === "range" && ($.min = f(v.min || 0), $.max = f(v.max || 1), $.step = f(v.step || 0.1)), $.label.value = v.label || r, $.visible.value = v.visible !== void 0 ? v.visible : !0, u[y] = $, o[y] = $;
167
+ }))), D === "range" && ($.min = d(v.min || 0), $.max = d(v.max || 1), $.step = d(v.step || 0.1)), $.label.value = v.label || s, $.icon.value = v.icon, $.visible.value = v.visible !== void 0 ? v.visible : !0, $.uniqueKey.value = m, u[m] = $, n[m] = $;
165
168
  continue;
166
169
  }
167
- if (R(l)) {
168
- const v = W(r, l, l.value.type || G(l.value), e);
169
- u[y] = v, o[y] = v;
170
+ if (G(a)) {
171
+ const v = Y(s, a, a.value.type || Q(a.value), t);
172
+ u[m] = v, n[m] = v;
170
173
  continue;
171
- } else if (typeof l == "object" && !Array.isArray(l)) {
172
- const v = B(l);
173
- v[r] && (l = v[r]);
174
+ } else if (typeof a == "object" && !Array.isArray(a)) {
175
+ const v = B(a);
176
+ v[s] && (a = v[s]);
174
177
  }
175
- const I = W(r, l, l.type || G(l), e);
176
- u[y] = I, o[y] = I, I.uniqueKey = y;
178
+ const S = Y(s, a, a.type || Q(a), t);
179
+ u[m] = S, n[m] = S, S.uniqueKey.value = m;
177
180
  }
178
- return Object.keys(o).length > 1 ? B(j(o)) : Object.values(o)[0];
179
- }, De = { class: "flex px-4 justify-between gap-4 items-center mb-2" }, Fe = ["for"], Ee = ["id", "value", "min", "max", "step"], Ve = /* @__PURE__ */ M({
181
+ return Object.keys(n).length > 1 ? B(N(n)) : Object.values(n)[0];
182
+ }, Ft = ["for", "title"], R = /* @__PURE__ */ k({
183
+ __name: "ControlLabel",
184
+ props: {
185
+ label: {},
186
+ control: {}
187
+ },
188
+ setup(e) {
189
+ return (o, l) => (p(), h("label", {
190
+ for: o.control.uniqueKey,
191
+ title: o.label,
192
+ class: "tl-text-gray-500 tl-w-1/3 tl-truncate"
193
+ }, [
194
+ o.control.icon ? (p(), h("i", {
195
+ key: 0,
196
+ class: M(o.control.icon)
197
+ }, null, 2)) : (p(), h(V, { key: 1 }, [
198
+ st(F(o.label), 1)
199
+ ], 64))
200
+ ], 8, Ft));
201
+ }
202
+ }), Et = { class: "tl-flex tl-px-4 tl-justify-between tl-gap-4 tl-items-center tl-mb-2" }, Vt = ["id", "value", "min", "max", "step"], zt = /* @__PURE__ */ k({
180
203
  __name: "NumberControl",
181
204
  props: {
182
205
  label: {},
183
206
  control: {}
184
207
  },
185
208
  emits: ["change"],
186
- setup(t, { emit: s }) {
187
- const n = t, o = s;
188
- function e(r) {
189
- const { target: l } = r;
190
- o("change", l.valueAsNumber);
209
+ setup(e, { emit: o }) {
210
+ const l = e, n = o;
211
+ function t(s) {
212
+ const { target: a } = s;
213
+ n("change", a.valueAsNumber);
191
214
  }
192
- const c = ee(), a = f(0), i = f(!1), u = (r) => {
193
- a.value = r.clientX, i.value = !0;
215
+ const i = lt(), r = d(0), c = d(!1), u = (s) => {
216
+ r.value = s.clientX, c.value = !0;
194
217
  }, _ = () => {
195
- i.value = !1;
196
- }, m = (r) => Math.floor(Math.abs(r) / 10);
197
- return U(c.x, (r) => {
198
- if (i.value) {
199
- const l = r - a.value, y = m(l);
200
- l > 0 ? o("change", n.control.value + 1 + y) : l < 0 && o("change", n.control.value - 1 + y), n.control.min !== void 0 && n.control.value < n.control.min && o("change", n.control.min), n.control.max !== void 0 && n.control.value > n.control.max && o("change", n.control.max), a.value = r;
218
+ c.value = !1;
219
+ }, y = (s) => Math.floor(Math.abs(s) / 10);
220
+ return O(i.x, (s) => {
221
+ if (c.value) {
222
+ const a = s - r.value, m = y(a);
223
+ a > 0 ? n("change", l.control.value + 1 + m) : a < 0 && n("change", l.control.value - 1 + m), l.control.min !== void 0 && l.control.value < l.control.min && n("change", l.control.min), l.control.max !== void 0 && l.control.value > l.control.max && n("change", l.control.max), r.value = s;
201
224
  }
202
- }), (r, l) => (d(), h("div", De, [
203
- p("label", {
204
- class: "text-gray-500 w-1/3",
205
- for: r.control.uniqueKey
206
- }, k(r.label), 9, Fe),
207
- p("input", {
208
- id: r.control.uniqueKey,
209
- value: r.control.value,
210
- class: C(["p-2 w-1/3 rounded text-right text-xs text-gray-400 bg-gray-100 focus:border-gray-200 outline-none border-none font-sans", { "cursor-ew-resize": i.value }]),
225
+ }), (s, a) => (p(), h("div", Et, [
226
+ X(R, {
227
+ label: s.label,
228
+ control: s.control
229
+ }, null, 8, ["label", "control"]),
230
+ f("input", {
231
+ id: s.control.uniqueKey,
232
+ value: s.control.value,
233
+ class: M(["tl-p-2 tl-w-1/3 tl-rounded tl-text-right tl-text-xs tl-text-gray-400 tl-bg-gray-100 tl-focus:border-gray-200 tl-outline-none tl-border-none tl-font-sans", { "tl-cursor-ew-resize": c.value }]),
211
234
  type: "number",
212
- min: r.control.min,
213
- max: r.control.max,
214
- step: r.control.step,
215
- onInput: e,
235
+ min: s.control.min,
236
+ max: s.control.max,
237
+ step: s.control.step,
238
+ onInput: t,
216
239
  onMousedown: u,
217
240
  onMouseup: _
218
- }, null, 42, Ee)
241
+ }, null, 42, Vt)
219
242
  ]));
220
243
  }
221
- }), ze = { class: "flex px-4 justify-between gap-4 items-center mb-2 min-h-32px" }, qe = ["for"], Ue = ["id", "value", "aria-label"], Oe = /* @__PURE__ */ M({
244
+ }), qt = { class: "tl-flex tl-px-4 tl-justify-between tl-gap-4 tl-items-center tl-mb-2 tl-min-h-32px" }, Ut = ["id", "value", "aria-label"], Ot = /* @__PURE__ */ k({
222
245
  __name: "TextControl",
223
246
  props: {
224
247
  label: {},
225
248
  control: {}
226
249
  },
227
250
  emits: ["change"],
228
- setup(t, { emit: s }) {
229
- const n = s;
230
- function o(e) {
231
- const { target: c } = e;
232
- n("change", c.value);
251
+ setup(e, { emit: o }) {
252
+ const l = o;
253
+ function n(t) {
254
+ const { target: i } = t;
255
+ l("change", i.value);
233
256
  }
234
- return (e, c) => (d(), h("div", ze, [
235
- p("label", {
236
- for: e.control.uniqueKey,
237
- class: "text-gray-500 w-1/3"
238
- }, k(e.label), 9, qe),
239
- p("input", {
240
- id: e.control.uniqueKey,
241
- value: e.control.value,
257
+ return (t, i) => (p(), h("div", qt, [
258
+ X(R, {
259
+ label: t.label,
260
+ control: t.control
261
+ }, null, 8, ["label", "control"]),
262
+ f("input", {
263
+ id: t.control.uniqueKey,
264
+ value: t.control.value,
242
265
  type: "text",
243
266
  tabindex: "0",
244
- class: "p-2 w-2/3 rounded text-right text-xs text-gray-400 bg-gray-100 focus:border-gray-200 border-none font-sans",
245
- "aria-label": e.label,
267
+ class: "tl-p-2 tl-w-2/3 tl-rounded tl-text-right tl-text-xs tl-text-gray-400 tl-bg-gray-100 focus:tl-border-gray-200 tl-border-none tl-font-sans",
268
+ "aria-label": t.label,
246
269
  placeholder: "Enter value here...",
247
- onChange: o
248
- }, null, 40, Ue)
270
+ onChange: n
271
+ }, null, 40, Ut)
249
272
  ]));
250
273
  }
251
- }), Be = { class: "flex px-4 justify-start gap-2 items-center mb-2 min-h-32px" }, Xe = { class: "text-gray-500 w-1/3" }, Pe = ["id", "checked"], Le = ["for"], je = ["aria-checked"], Ne = { class: "i-ic:baseline-check text-light" }, We = /* @__PURE__ */ M({
274
+ }), Xt = { class: "tl-flex tl-px-4 tl-justify-start tl-gap-2 tl-items-center tl-mb-2 tl-min-h-32px" }, Bt = { class: "tl-text-gray-500 tl-w-1/3" }, Lt = ["id", "checked"], Pt = ["for"], Wt = ["aria-checked"], Nt = { class: "i-ic:baseline-check tl-text-light" }, jt = /* @__PURE__ */ k({
252
275
  __name: "BooleanControl",
253
276
  props: {
254
277
  label: {},
255
278
  control: {}
256
279
  },
257
280
  emits: ["change"],
258
- setup(t, { emit: s }) {
259
- const n = t, o = s;
260
- function e(a) {
261
- const { target: i } = a;
262
- o("change", i.checked);
281
+ setup(e, { emit: o }) {
282
+ const l = e, n = o;
283
+ function t(r) {
284
+ const { target: c } = r;
285
+ n("change", c.checked);
263
286
  }
264
- function c(a) {
265
- (a.code === "Space" || a.code === "Enter") && (a.preventDefault(), o("change", !n.control.value));
287
+ function i(r) {
288
+ (r.code === "Space" || r.code === "Enter") && (r.preventDefault(), n("change", !l.control.value));
266
289
  }
267
- return (a, i) => (d(), h("div", Be, [
268
- p("label", Xe, k(a.label), 1),
269
- p("input", {
270
- id: a.control.uniqueKey,
271
- checked: a.control.value,
272
- class: "hidden",
290
+ return (r, c) => (p(), h("div", Xt, [
291
+ f("label", Bt, F(r.label), 1),
292
+ f("input", {
293
+ id: r.control.uniqueKey,
294
+ checked: r.control.value,
295
+ class: "tl-hidden",
273
296
  type: "checkbox",
274
- onInput: e
275
- }, null, 40, Pe),
276
- p("label", {
277
- for: a.control.uniqueKey,
278
- class: "inline-flex items-center cursor-pointer"
297
+ onInput: t
298
+ }, null, 40, Lt),
299
+ f("label", {
300
+ for: r.control.uniqueKey,
301
+ class: "tl-inline-flex tl-items-center tl-cursor-pointer"
279
302
  }, [
280
- p("span", {
303
+ f("span", {
281
304
  tabindex: "0",
282
305
  role: "checkbox",
283
- "aria-checked": a.control.value.toString(),
284
- class: C([{ "bg-dark-500": a.control.value, "bg-gray-200": !a.control.value }, "w-4 h-4 flex justify-center items-center rounded border border-gray-300 mr-2 transition-colors duration-200"]),
285
- onKeydown: c
306
+ "aria-checked": r.control.value.toString(),
307
+ class: M([{ "tl-bg-dark-500": r.control.value, "tl-bg-gray-200": !r.control.value }, "tl-w-4 tl-h-4 tl-flex tl-justify-center tl-items-center tl-rounded tl-border tl-border-gray-300 tl-mr-2 tl-transition-colors tl-duration-200"]),
308
+ onKeydown: i
286
309
  }, [
287
- ae(p("i", Ne, null, 512), [
288
- [re, a.control.value]
310
+ ct(f("i", Nt, null, 512), [
311
+ [it, r.control.value]
289
312
  ])
290
- ], 42, je)
291
- ], 8, Le)
313
+ ], 42, Wt)
314
+ ], 8, Pt)
292
315
  ]));
293
316
  }
294
- }), Re = { class: "px-4 relative flex justify-between gap-4 items-center mb-2" }, Ye = ["value", "min", "max", "step"], He = ["value", "min", "max", "step"], Ge = /* @__PURE__ */ M({
317
+ }), Rt = { class: "tl-px-4 tl-relative tl-flex tl-justify-between tl-gap-4 tl-items-center tl-mb-2" }, Yt = ["value", "min", "max", "step"], Gt = ["value", "min", "max", "step"], Ht = /* @__PURE__ */ k({
295
318
  __name: "SliderControl",
296
319
  props: {
297
320
  label: {},
298
321
  control: {}
299
322
  },
300
323
  emits: ["change"],
301
- setup(t, { emit: s }) {
302
- const n = t, o = s;
303
- function e(l) {
304
- const { target: y } = l;
305
- o("change", y.valueAsNumber);
324
+ setup(e, { emit: o }) {
325
+ const l = e, n = o;
326
+ function t(a) {
327
+ const { target: m } = a;
328
+ n("change", m.valueAsNumber);
306
329
  }
307
- const c = V(() => ({
308
- backgroundImage: `linear-gradient(to right, #333 0% ${100 * (n.control.value - (n.control.min || 0)) / ((n.control.max || 100) - (n.control.min || 0))}%, #e2e2e2 0%)`
309
- })), a = ee(), i = f(0), u = f(!1), _ = (l) => {
310
- i.value = l.clientX, u.value = !0;
311
- }, m = () => {
330
+ const i = z(() => ({
331
+ backgroundImage: `linear-gradient(to right, #333 0% ${100 * (l.control.value - (l.control.min || 0)) / ((l.control.max || 100) - (l.control.min || 0))}%, #e2e2e2 0%)`
332
+ })), r = lt(), c = d(0), u = d(!1), _ = (a) => {
333
+ c.value = a.clientX, u.value = !0;
334
+ }, y = () => {
312
335
  u.value = !1;
313
- }, r = (l) => Math.floor(Math.abs(l) / 10);
314
- return U(a.x, (l) => {
336
+ }, s = (a) => Math.floor(Math.abs(a) / 10);
337
+ return O(r.x, (a) => {
315
338
  if (u.value) {
316
- const y = l - i.value, I = r(y);
317
- y > 0 ? o("change", n.control.value + 1 + I) : y < 0 && o("change", n.control.value - 1 + I), n.control.min !== void 0 && n.control.value < n.control.min && o("change", n.control.min), n.control.max !== void 0 && n.control.value > n.control.max && o("change", n.control.max), i.value = l;
339
+ const m = a - c.value, S = s(m);
340
+ m > 0 ? n("change", l.control.value + 1 + S) : m < 0 && n("change", l.control.value - 1 + S), l.control.min !== void 0 && l.control.value < l.control.min && n("change", l.control.min), l.control.max !== void 0 && l.control.value > l.control.max && n("change", l.control.max), c.value = a;
318
341
  }
319
- }), (l, y) => (d(), h("div", Re, [
320
- p("label", {
321
- class: C(["text-gray-500 w-1/3", { "flex justify-between items-center": l.control.icon }])
322
- }, [
323
- se(k(l.label) + " ", 1),
324
- p("i", {
325
- class: C(`i-${l.control.icon}`)
326
- }, null, 2)
327
- ], 2),
328
- p("input", {
329
- value: l.control.value,
330
- class: "w-1/2 h-0.75 bg-dark-200 rounded-full appearance-none",
331
- style: he(c.value),
342
+ }), (a, m) => (p(), h("div", Rt, [
343
+ X(R, {
344
+ label: a.label,
345
+ control: a.control
346
+ }, null, 8, ["label", "control"]),
347
+ f("input", {
348
+ value: a.control.value,
349
+ class: "tl-w-1/2 tl-h-0.75 tl-bg-dark-200 tl-rounded-full tl-appearance-none",
350
+ style: _t(i.value),
332
351
  type: "range",
333
- min: l.control.min,
334
- max: l.control.max,
335
- step: l.control.step,
336
- onInput: e
337
- }, null, 44, Ye),
338
- p("input", {
339
- value: l.control.value,
340
- class: C(["p-2 w-1/4 rounded text-right text-xs text-gray-400 bg-gray-100 focus:border-gray-200 outline-none border-none font-sans", { "cursor-ew-resize": u.value }]),
352
+ min: a.control.min,
353
+ max: a.control.max,
354
+ step: a.control.step,
355
+ onInput: t
356
+ }, null, 44, Yt),
357
+ f("input", {
358
+ value: a.control.value,
359
+ class: M(["tl-p-2 tl-w-1/4 tl-rounded tl-text-right tl-text-xs tl-text-gray-400 tl-bg-gray-100 tl-focus:border-gray-200 tl-outline-none tl-border-none tl-font-sans", { "tl-cursor-ew-resize": u.value }]),
341
360
  type: "number",
342
- min: l.control.min,
343
- max: l.control.max,
344
- step: l.control.step,
345
- onInput: e,
361
+ min: a.control.min,
362
+ max: a.control.max,
363
+ step: a.control.step,
364
+ onInput: t,
346
365
  onMousedown: _,
347
- onMouseup: m
348
- }, null, 42, He)
366
+ onMouseup: y
367
+ }, null, 42, Gt)
349
368
  ]));
350
369
  }
351
- });
352
- const fe = (t, s) => {
353
- const n = t.__vccOpts || t;
354
- for (const [o, e] of s)
355
- n[o] = e;
356
- return n;
357
- }, Je = /* @__PURE__ */ fe(Ge, [["__scopeId", "data-v-9e6267fe"]]), Qe = { class: "flex px-4 justify-between gap-4 items-center mb-2" }, Ze = { class: "text-gray-500 w-1/3" }, et = ["id", "value", "aria-label"], tt = ["id", "aria-label", "value"], nt = /* @__PURE__ */ M({
370
+ }), vt = (e, o) => {
371
+ const l = e.__vccOpts || e;
372
+ for (const [n, t] of o)
373
+ l[n] = t;
374
+ return l;
375
+ }, Jt = /* @__PURE__ */ vt(Ht, [["__scopeId", "data-v-e775088a"]]), Qt = { class: "tl-flex tl-px-4 tl-justify-between tl-gap-4 tl-items-center tl-mb-2" }, Zt = { class: "tl-text-gray-500 tl-w-1/3" }, te = ["id", "value", "aria-label"], ee = ["id", "aria-label", "value"], le = /* @__PURE__ */ k({
358
376
  __name: "ColorControl",
359
377
  props: {
360
378
  label: {},
361
379
  control: {}
362
380
  },
363
381
  emits: ["change"],
364
- setup(t, { emit: s }) {
365
- const n = s;
366
- function o(e) {
367
- const { target: c } = e;
368
- n("change", c.value);
382
+ setup(e, { emit: o }) {
383
+ const l = o;
384
+ function n(t) {
385
+ const { target: i } = t;
386
+ l("change", i.value);
369
387
  }
370
- return (e, c) => (d(), h("div", Qe, [
371
- p("label", Ze, k(e.label), 1),
372
- p("input", {
373
- id: e.control.uniqueKey,
388
+ return (t, i) => (p(), h("div", Qt, [
389
+ f("label", Zt, F(t.label), 1),
390
+ f("input", {
391
+ id: t.control.uniqueKey,
374
392
  tabindex: "0",
375
- value: e.control.value,
376
- "aria-label": e.label,
377
- class: C(["focus:outline-none focus:ring-2 focus:ring-blue-600", { "important-outline-gray-200": e.control.value === "#ffffff" }]),
393
+ value: t.control.value,
394
+ "aria-label": t.label,
395
+ class: M(["focus:tl-outline-none focus:tl-ring-2 focus:tl-ring-blue-600", { "important-tl-outline-gray-200": t.control.value === "#ffffff" }]),
378
396
  type: "color",
379
- onInput: o
380
- }, null, 42, et),
381
- p("input", {
382
- id: e.control.uniqueKey,
397
+ onInput: n
398
+ }, null, 42, te),
399
+ f("input", {
400
+ id: t.control.uniqueKey,
383
401
  tabindex: "0",
384
- "aria-label": e.label,
385
- value: e.control.value,
386
- class: "p-2 w-2/3 rounded text-right text-xs text-gray-400 bg-gray-100 border-none font-sans",
402
+ "aria-label": t.label,
403
+ value: t.control.value,
404
+ class: "tl-p-2 tl-w-2/3 tl-rounded tl-text-right tl-text-xs tl-text-gray-400 tl-bg-gray-100 tl-border-none tl-font-sans",
387
405
  type: "text",
388
- onInput: o
389
- }, null, 40, tt)
406
+ onInput: n
407
+ }, null, 40, ee)
390
408
  ]));
391
409
  }
392
410
  });
393
- function ot(t) {
394
- if (typeof t == "number")
395
- return [t, t, t];
396
- if (Z(t)) {
397
- const { x: s, y: n, z: o } = t;
398
- return [s, n, o];
411
+ function ne(e) {
412
+ if (typeof e == "number")
413
+ return [e, e, e];
414
+ if (et(e)) {
415
+ const { x: o, y: l, z: n } = e;
416
+ return [o, l, n];
399
417
  }
400
- if (Q(t)) {
401
- const { x: s, y: n } = t;
402
- return [s, n];
418
+ if (tt(e)) {
419
+ const { x: o, y: l } = e;
420
+ return [o, l];
403
421
  }
404
- return t;
422
+ return e;
405
423
  }
406
- function Q(t) {
407
- return t && typeof t.x == "number" && typeof t.y == "number";
424
+ function tt(e) {
425
+ return e && typeof e.x == "number" && typeof e.y == "number";
408
426
  }
409
- function Z(t) {
410
- return t && typeof t.x == "number" && typeof t.y == "number" && typeof t.z == "number";
427
+ function et(e) {
428
+ return e && typeof e.x == "number" && typeof e.y == "number" && typeof e.z == "number";
411
429
  }
412
- const lt = { class: "text-gray-500 w-1/3" }, at = { class: "relative w-2/3 flex justify-between gap-0.5" }, rt = {
430
+ const oe = { class: "tl-relative tl-w-2/3 tl-flex tl-justify-between tl-gap-0.5" }, ae = {
413
431
  key: 0,
414
- class: "font-bold px-1 py-1 text-0.65rem text-gray-300"
415
- }, st = ["id", "step", "value", "onInput", "onMousedown", "onMouseup", "onFocus"], it = /* @__PURE__ */ M({
432
+ class: "tl-font-bold tl-px-1 tl-py-1 tl-text-0.65rem tl-text-gray-300"
433
+ }, re = ["id", "step", "value", "onInput", "onMousedown", "onMouseup", "onFocus"], se = /* @__PURE__ */ k({
416
434
  __name: "VectorControl",
417
435
  props: {
418
436
  label: {},
419
437
  control: {}
420
438
  },
421
439
  emits: ["change"],
422
- setup(t, { emit: s }) {
423
- const n = t, o = s, e = ee(), { pressed: c } = $e(), a = f(0), i = f(!1), u = f(0), _ = f(null), m = f(1), r = te("Shift"), l = te("Alt");
424
- U(r, (b) => {
425
- m.value = b ? 10 : 1;
426
- }), U(l, (b) => {
427
- m.value = b ? 0.1 : 1;
440
+ setup(e, { emit: o }) {
441
+ const l = e, n = o, t = lt(), { pressed: i } = kt(), r = d(0), c = d(!1), u = d(0), _ = d(null), y = d(1), s = nt("Shift"), a = nt("Alt");
442
+ O(s, (b) => {
443
+ y.value = b ? 10 : 1;
444
+ }), O(a, (b) => {
445
+ y.value = b ? 0.1 : 1;
428
446
  });
429
- const y = (b) => {
447
+ const m = (b) => {
430
448
  _.value = b;
431
- }, I = () => {
449
+ }, S = () => {
432
450
  _.value = null;
433
- }, v = (b, w) => {
434
- u.value = w, a.value = b.clientX, i.value = !0;
435
- }, T = (b, w) => {
436
- u.value = w, i.value = !1;
437
- }, F = () => {
438
- i.value = !1;
451
+ }, v = (b, x) => {
452
+ u.value = x, r.value = b.clientX, c.value = !0;
453
+ }, T = (b, x) => {
454
+ u.value = x, c.value = !1;
455
+ }, D = () => {
456
+ c.value = !1;
439
457
  };
440
- U(c, (b) => {
441
- b || (i.value = !1);
458
+ O(i, (b) => {
459
+ b || (c.value = !1);
442
460
  });
443
- const $ = (b) => Math.floor(Math.abs(b) / 10), A = V(() => ot(n.control.value)), z = f(["x", "y", "z"]), P = V(() => Q(n.control.value) || Z(n.control.value));
444
- function g(b, w) {
445
- const { value: q } = n.control, { target: x } = b;
446
- u.value = w, q[P.value ? z.value[u.value] : u.value] = parseFloat(x.value), o("change", q);
461
+ const $ = (b) => Math.floor(Math.abs(b) / 10), A = z(() => ne(l.control.value)), q = d(["x", "y", "z"]), P = z(() => tt(l.control.value) || et(l.control.value));
462
+ function g(b, x) {
463
+ const { value: U } = l.control, { target: w } = b;
464
+ u.value = x, U[P.value ? q.value[u.value] : u.value] = parseFloat(w.value), n("change", U);
447
465
  }
448
- return U(e.x, (b) => {
449
- if (i.value) {
450
- const w = b - a.value, q = $(w), { value: x } = n.control, K = P.value ? z.value[u.value] : u.value;
451
- w > 0 ? x[K] += m.value + q : w < 0 && (x[K] -= m.value + q), n.control.min !== void 0 && x < n.control.min && (x[K] = n.control.min), n.control.max !== void 0 && x > n.control.max && (x[K] = n.control.max), o("change", x), a.value = b;
466
+ return O(t.x, (b) => {
467
+ if (c.value) {
468
+ const x = b - r.value, U = $(x), { value: w } = l.control, I = P.value ? q.value[u.value] : u.value;
469
+ x > 0 ? w[I] += y.value + U : x < 0 && (w[I] -= y.value + U), l.control.min !== void 0 && w < l.control.min && (w[I] = l.control.min), l.control.max !== void 0 && w > l.control.max && (w[I] = l.control.max), n("change", w), r.value = b;
452
470
  }
453
- }), (b, w) => (d(), h("div", {
454
- class: "flex px-4 justify-between gap-1 items-center mb-2",
455
- onMouseup: w[0] || (w[0] = (q) => F())
471
+ }), (b, x) => (p(), h("div", {
472
+ class: "tl-flex tl-px-4 tl-justify-between tl-gap-1 tl-items-center tl-mb-2",
473
+ onMouseup: x[0] || (x[0] = (U) => D())
456
474
  }, [
457
- p("label", lt, k(b.label), 1),
458
- p("div", at, [
459
- (d(!0), h(O, null, N(A.value, (q, x) => (d(), h("div", {
460
- key: b.label + x,
461
- class: C(["flex items-center bg-gray-100 rounded", { "w-2/5": _.value === x, "w-1/3": D(Z)(b.control.value), "w-1/2": D(Q)(b.control.value) }])
475
+ X(R, {
476
+ label: b.label,
477
+ control: b.control
478
+ }, null, 8, ["label", "control"]),
479
+ f("div", oe, [
480
+ (p(!0), h(V, null, j(A.value, (U, w) => (p(), h("div", {
481
+ key: b.label + w,
482
+ class: M(["tl-flex tl-items-center tl-bg-gray-100 tl-rounded", {
483
+ "tl-w-2/5": _.value === w,
484
+ "tl-w-1/3": K(et)(b.control.value),
485
+ "tl-w-1/2": K(tt)(b.control.value)
486
+ }])
462
487
  }, [
463
- z.value[x] && P.value ? (d(), h("span", rt, k(z.value[x]), 1)) : Y("", !0),
464
- p("input", {
465
- id: `${b.control.uniqueKey}-${z.value[x]}`,
488
+ q.value[w] && P.value ? (p(), h("span", ae, F(q.value[w]), 1)) : H("", !0),
489
+ f("input", {
490
+ id: `${b.control.uniqueKey}-${q.value[w]}`,
466
491
  type: "number",
467
- step: m.value,
468
- class: C(["w-full px-0 p-1 text-right text-0.65rem text-gray-400 bg-transparent focus:border-gray-200 outline-none border-none font-sans appearence-none", { "cursor-ew-resize": i.value }]),
469
- value: A.value[x].toFixed(2),
470
- onInput: (K) => g(K, x),
471
- onMousedown: (K) => v(K, x),
472
- onMouseup: (K) => T(K, x),
473
- onFocus: (K) => y(x),
474
- onBlur: I
475
- }, null, 42, st)
492
+ step: y.value,
493
+ class: M(["tl-w-full tl-px-0 tl-p-1 tl-text-right tl-text-0.65rem tl-text-gray-400 tl-bg-transparent focus:tl-border-gray-200 tl-outline-none tl-border-none tl-font-sans tl-appearence-none", { "tl-cursor-ew-resize": c.value }]),
494
+ value: A.value[w].toFixed(2),
495
+ onInput: (I) => g(I, w),
496
+ onMousedown: (I) => v(I, w),
497
+ onMouseup: (I) => T(I, w),
498
+ onFocus: (I) => m(w),
499
+ onBlur: S
500
+ }, null, 42, re)
476
501
  ], 2))), 128))
477
502
  ])
478
503
  ], 32));
479
504
  }
480
- }), ct = { class: "flex px-4 justify-between gap-4 items-center mb-2" }, ut = { class: "text-gray-500 w-1/3" }, pt = { class: "relative w-2/3 p-1 rounded text-right text-xs text-gray-400 bg-gray-100 focus:border-gray-200 outline-none border-none font-sans" }, dt = { class: "absolute bottom-0.5 right-0.5 font-sans text-xs" }, ft = ["points"], ne = 160, J = 40, L = 2, oe = 100, le = 20, vt = /* @__PURE__ */ M({
505
+ }), ce = { class: "tl-flex tl-px-4 tl-justify-between tl-gap-4 tl-items-center tl-mb-2" }, ie = { class: "tl-text-gray-500 tl-w-1/3" }, ue = { class: "tl-relative tl-w-2/3 tl-p-1 tl-rounded tl-text-right tl-text-xs tl-text-gray-400 tl-bg-gray-100 tl-focus:border-gray-200 tl-outline-none tl-border-none tl-font-sans" }, pe = { class: "tl-absolute tl-bottom-0.5 tl-right-0.5 tl-font-sans tl-text-xs" }, de = ["points"], ot = 160, Z = 40, W = 2, at = 100, rt = 20, fe = /* @__PURE__ */ k({
481
506
  __name: "FPSGraph",
482
507
  props: {
483
508
  label: {},
484
509
  control: {}
485
510
  },
486
- setup(t) {
487
- const s = Ce({ every: oe }), n = f(""), o = f([]), e = f(ne / L);
488
- let c = performance.now();
489
- return ke(({ timestamp: a }) => {
490
- a - c >= oe && (c = a, o.value.push(s.value), o.value.length > e.value && o.value.shift(), n.value = o.value.map(
491
- (i, u) => `${u * L},${J + le - L / 2 - i * (J + le - L) / 120}`
511
+ setup(e) {
512
+ const o = Ct({ every: at }), l = d(""), n = d([]), t = d(ot / W);
513
+ let i = performance.now();
514
+ return Mt(({ timestamp: r }) => {
515
+ r - i >= at && (i = r, n.value.push(o.value), n.value.length > t.value && n.value.shift(), l.value = n.value.map(
516
+ (c, u) => `${u * W},${Z + rt - W / 2 - c * (Z + rt - W) / 120}`
492
517
  ).join(" "));
493
- }), (a, i) => (d(), h("div", ct, [
494
- p("label", ut, k(a.label), 1),
495
- p("div", pt, [
496
- p("div", dt, k(Math.round(D(s))) + " FPS ", 1),
497
- (d(), h("svg", {
498
- width: ne,
499
- height: J,
518
+ }), (r, c) => (p(), h("div", ce, [
519
+ f("label", ie, F(r.label), 1),
520
+ f("div", ue, [
521
+ f("div", pe, F(Math.round(K(o))) + " FPS ", 1),
522
+ (p(), h("svg", {
523
+ width: ot,
524
+ height: Z,
500
525
  xmlns: "http://www.w3.org/2000/svg",
501
- class: "bg-gray-100"
526
+ class: "tl-bg-gray-100"
502
527
  }, [
503
- p("polyline", {
504
- points: n.value,
528
+ f("polyline", {
529
+ points: l.value,
505
530
  fill: "none",
506
531
  stroke: "lightgray",
507
- "stroke-width": L,
532
+ "stroke-width": W,
508
533
  "stroke-linecap": "round",
509
534
  "stroke-linejoin": "round"
510
- }, null, 8, ft)
535
+ }, null, 8, de)
511
536
  ]))
512
537
  ])
513
538
  ]));
514
539
  }
515
- }), gt = { class: "flex px-4 justify-between gap-4 items-center mb-2 min-h-32px" }, bt = ["for"], yt = ["id", "value"], mt = ["value"], ht = /* @__PURE__ */ M({
540
+ }), ve = { class: "tl-flex tl-px-4 tl-justify-between tl-gap-4 tl-items-center tl-mb-2 tl-min-h-32px" }, be = ["id", "value"], ge = ["value"], me = /* @__PURE__ */ k({
516
541
  __name: "SelectControl",
517
542
  props: {
518
543
  label: {},
519
544
  control: {}
520
545
  },
521
546
  emits: ["change"],
522
- setup(t, { emit: s }) {
523
- const n = s;
524
- function o(e) {
525
- n("change", e.target.value);
547
+ setup(e, { emit: o }) {
548
+ const l = o;
549
+ function n(t) {
550
+ l("change", t.target.value);
526
551
  }
527
- return (e, c) => (d(), h("div", gt, [
528
- p("label", {
529
- class: "text-gray-500 w-1/3",
530
- for: e.control.uniqueKey
531
- }, k(e.label), 9, bt),
532
- p("select", {
533
- id: e.control.uniqueKey,
534
- value: e.control.value,
535
- class: "p-2 w-2/3 rounded text-left text-xs text-gray-400 bg-gray-100 focus:border-gray-200 outline-none border-none font-sans",
536
- onChange: o
552
+ return (t, i) => (p(), h("div", ve, [
553
+ X(R, {
554
+ label: t.label,
555
+ control: t.control
556
+ }, null, 8, ["label", "control"]),
557
+ f("select", {
558
+ id: t.control.uniqueKey,
559
+ value: t.control.value,
560
+ class: "tl-p-2 tl-w-2/3 tl-rounded tl-text-left tl-text-xs tl-text-gray-400 tl-bg-gray-100 focus:tl-border-gray-200 tl-outline-none tl-border-none tl-font-sans",
561
+ onChange: n
537
562
  }, [
538
- (d(!0), h(O, null, N(e.control.options, (a) => (d(), h("option", {
539
- key: a.value,
540
- value: a.value
541
- }, k(a.text), 9, mt))), 128))
542
- ], 40, yt)
563
+ (p(!0), h(V, null, j(t.control.options, (r) => (p(), h("option", {
564
+ key: r.value,
565
+ value: r.value
566
+ }, F(r.text), 9, ge))), 128))
567
+ ], 40, be)
543
568
  ]));
544
569
  }
545
- }), _t = /* @__PURE__ */ M({
570
+ }), ye = /* @__PURE__ */ k({
546
571
  __name: "ButtonControl",
547
572
  props: {
548
573
  label: {},
549
574
  control: {}
550
575
  },
551
- setup(t) {
552
- const s = t, n = V(() => {
553
- const o = "btn", e = `btn-${s.control.value.variant || "primary"}`, c = `btn-${s.control.value.size || "sm"}`;
554
- return [o, e, c];
576
+ setup(e) {
577
+ const o = e, l = z(() => {
578
+ const n = "leches-btn", t = `leches-btn-${o.control.value.variant || "primary"}`, i = `leches-btn-${o.control.value.size || "sm"}`;
579
+ return [n, t, i];
555
580
  });
556
- return (o, e) => (d(), h("button", {
557
- class: C(n.value),
558
- onClick: e[0] || (e[0] = //@ts-ignore
559
- (...c) => o.control.value.onClick && o.control.value.onClick(...c))
581
+ return (n, t) => (p(), h("button", {
582
+ class: M(l.value),
583
+ onClick: t[0] || (t[0] = //@ts-ignore
584
+ (...i) => n.control.value.onClick && n.control.value.onClick(...i))
560
585
  }, [
561
- p("i", {
562
- class: C(["mr-2", o.control.value.icon])
586
+ f("i", {
587
+ class: M([n.control.value.icon, n.control.value.label ? "mr-1" : ""])
563
588
  }, null, 2),
564
- se(" " + k(o.control.label), 1)
589
+ st(" " + F(n.control.value.label), 1)
565
590
  ], 2));
566
591
  }
567
- });
568
- const xt = /* @__PURE__ */ fe(_t, [["__scopeId", "data-v-846e24c4"]]), ve = /* @__PURE__ */ M({
592
+ }), he = /* @__PURE__ */ vt(ye, [["__scopeId", "data-v-6a95ac59"]]), bt = /* @__PURE__ */ k({
569
593
  __name: "ControlInput",
570
594
  props: {
571
595
  control: {}
572
596
  },
573
597
  emits: ["change"],
574
- setup(t, { emit: s }) {
575
- const n = s;
576
- function o(e) {
577
- n("change", e);
598
+ setup(e, { emit: o }) {
599
+ const l = o;
600
+ function n(t) {
601
+ l("change", t);
578
602
  }
579
- return (e, c) => e.control.visible ? (d(), h(O, { key: 0 }, [
580
- e.control.type === "color" ? (d(), S(nt, {
603
+ return (t, i) => t.control.visible ? (p(), h(V, { key: 0 }, [
604
+ t.control.type === "color" ? (p(), C(le, {
581
605
  key: 0,
582
- label: e.control.label,
583
- control: e.control,
584
- onChange: o
585
- }, null, 8, ["label", "control"])) : e.control.type === "select" ? (d(), S(ht, {
606
+ label: t.control.label,
607
+ control: t.control,
608
+ onChange: n
609
+ }, null, 8, ["label", "control"])) : t.control.type === "select" ? (p(), C(me, {
586
610
  key: 1,
587
- label: e.control.label,
588
- control: e.control,
589
- onChange: o
590
- }, null, 8, ["label", "control"])) : e.control.type === "vector" ? (d(), S(it, {
611
+ label: t.control.label,
612
+ control: t.control,
613
+ onChange: n
614
+ }, null, 8, ["label", "control"])) : t.control.type === "vector" ? (p(), C(se, {
591
615
  key: 2,
592
- label: e.control.label,
593
- control: e.control,
594
- onChange: o
595
- }, null, 8, ["label", "control"])) : e.control.type === "boolean" ? (d(), S(We, {
616
+ label: t.control.label,
617
+ control: t.control,
618
+ onChange: n
619
+ }, null, 8, ["label", "control"])) : t.control.type === "boolean" ? (p(), C(jt, {
596
620
  key: 3,
597
- label: e.control.label,
598
- control: e.control,
599
- onChange: o
600
- }, null, 8, ["label", "control"])) : e.control.type === "fpsgraph" ? (d(), S(vt, {
621
+ label: t.control.label,
622
+ control: t.control,
623
+ onChange: n
624
+ }, null, 8, ["label", "control"])) : t.control.type === "fpsgraph" ? (p(), C(fe, {
601
625
  key: 4,
602
- label: e.control.label,
603
- control: e.control
604
- }, null, 8, ["label", "control"])) : e.control.type === "number" ? (d(), S(Ve, {
626
+ label: t.control.label,
627
+ control: t.control
628
+ }, null, 8, ["label", "control"])) : t.control.type === "number" ? (p(), C(zt, {
605
629
  key: 5,
606
- label: e.control.label,
607
- control: e.control,
608
- onChange: o
609
- }, null, 8, ["label", "control"])) : e.control.type === "range" ? (d(), S(Je, {
630
+ label: t.control.label,
631
+ control: t.control,
632
+ onChange: n
633
+ }, null, 8, ["label", "control"])) : t.control.type === "range" ? (p(), C(Jt, {
610
634
  key: 6,
611
- label: e.control.label,
612
- control: e.control,
613
- onChange: o
614
- }, null, 8, ["label", "control"])) : e.control.type === "button" ? (d(), h("div", {
635
+ label: t.control.label,
636
+ control: t.control,
637
+ onChange: n
638
+ }, null, 8, ["label", "control"])) : t.control.type === "button" ? (p(), h("div", {
615
639
  key: 7,
616
- class: C(["p-2", e.control.value.size === "block" ? "flex" : "inline-flex"])
640
+ class: M(["tl-p-2", t.control.value.size === "tl-block" ? "tl-flex" : "tl-inline-flex"])
617
641
  }, [
618
- ie(xt, {
619
- label: e.control.label,
620
- control: e.control
642
+ X(he, {
643
+ label: t.control.label,
644
+ control: t.control
621
645
  }, null, 8, ["label", "control"])
622
- ], 2)) : (d(), S(Oe, {
646
+ ], 2)) : (p(), C(Ot, {
623
647
  key: 8,
624
- label: e.control.label,
625
- control: e.control,
626
- onChange: o
648
+ label: t.control.label,
649
+ control: t.control,
650
+ onChange: n
627
651
  }, null, 8, ["label", "control"]))
628
- ], 64)) : Y("", !0);
652
+ ], 64)) : H("", !0);
629
653
  }
630
- }), wt = { class: "mb-4" }, $t = ["aria-expanded", "data-folder"], Ct = {
631
- class: "bg-white rounded-b pt-4",
654
+ }), _e = { class: "tl-mb-4" }, we = ["aria-expanded", "data-folder"], xe = {
655
+ class: "tl-bg-white tl-rounded-b tl-pt-4",
632
656
  role: "menu"
633
- }, kt = /* @__PURE__ */ M({
657
+ }, $e = /* @__PURE__ */ k({
634
658
  __name: "Folder",
635
659
  props: {
636
660
  controls: {},
637
661
  label: {}
638
662
  },
639
- setup(t) {
640
- function s(e, c) {
641
- c.value = e;
663
+ setup(e) {
664
+ function o(t, i) {
665
+ i.value = t;
642
666
  }
643
- const n = f(!1), o = () => {
644
- n.value = !n.value;
667
+ const l = d(!1), n = () => {
668
+ l.value = !l.value;
645
669
  };
646
- return (e, c) => (d(), h("div", wt, [
647
- p("button", {
648
- class: "flex items-center justify-between w-full py-2 px-4 bg-gray-100 border-none text-gray-400 font-bold text-xs font-sans cursor-pointer",
649
- "aria-expanded": n.value,
670
+ return (t, i) => (p(), h("div", _e, [
671
+ f("button", {
672
+ class: "tl-flex tl-items-center tl-justify-between tl-w-full tl-py-2 tl-px-4 tl-bg-gray-100 tl-border-none tl-text-gray-400 tl-font-bold tl-text-xs tl-font-sans tl-cursor-pointer",
673
+ "aria-expanded": l.value,
650
674
  "aria-haspopup": "true",
651
675
  role: "button",
652
- "data-folder": e.label,
676
+ "data-folder": t.label,
653
677
  tabindex: "0",
654
- onClick: o
678
+ onClick: n
655
679
  }, [
656
- p("span", null, k(e.label), 1),
657
- p("i", {
658
- class: C(n.value ? "i-ic:baseline-keyboard-arrow-up" : "i-ic:baseline-keyboard-arrow-down")
680
+ f("span", null, F(t.label), 1),
681
+ f("i", {
682
+ class: M(l.value ? "i-ic:baseline-keyboard-arrow-up" : "i-ic:baseline-keyboard-arrow-down")
659
683
  }, null, 2)
660
- ], 8, $t),
661
- ie(_e, {
684
+ ], 8, we),
685
+ X(wt, {
662
686
  name: "slide",
663
- "enter-active-class": " animate-fade-in animate-duration-200 animate-ease-in-out",
664
- "leave-active-class": " animate-fade-out animate-duration-200 animate-ease-in-out"
687
+ "enter-active-class": "tl-animate-fade-in tl-animate-duration-200 tl-animate-ease-in-out",
688
+ "leave-active-class": "tl-animate-fade-out tl-animate-duration-200 tl-animate-ease-in-out"
665
689
  }, {
666
- default: ce(() => [
667
- ae(p("div", Ct, [
668
- (d(!0), h(O, null, N(e.controls, (a) => (d(), S(ve, {
669
- key: a.label,
670
- control: a,
690
+ default: ut(() => [
691
+ ct(f("div", xe, [
692
+ (p(!0), h(V, null, j(t.controls, (r) => (p(), C(bt, {
693
+ key: r.label,
694
+ control: r,
671
695
  role: "menuitem",
672
- onChange: (i) => s(i, a)
696
+ onChange: (c) => o(c, r)
673
697
  }, null, 8, ["control", "onChange"]))), 128))
674
698
  ], 512), [
675
- [re, n.value]
699
+ [it, l.value]
676
700
  ])
677
701
  ]),
678
702
  _: 1
679
703
  })
680
704
  ]));
681
705
  }
682
- }), Mt = {
706
+ }), ke = {
683
707
  tabindex: "0",
684
- class: "bg-white shadow-xl rounded border-4 border-solid border-black"
685
- }, St = /* @__PURE__ */ p("i", { class: "h-4 w-4 p-1.5 flex items-center line-height-0 rounded-full bg-gray-100 text-xs" }, "🍰", -1), It = /* @__PURE__ */ p("div", null, [
686
- /* @__PURE__ */ p("i", { class: "i-ic-baseline-drag-indicator" }),
687
- /* @__PURE__ */ p("i", { class: "i-ic-baseline-drag-indicator" }),
688
- /* @__PURE__ */ p("i", { class: "i-ic-baseline-drag-indicator" })
689
- ], -1), Tt = /* @__PURE__ */ p("div", null, null, -1), At = [
690
- St,
691
- It,
692
- Tt
693
- ], Kt = 280, Vt = /* @__PURE__ */ M({
708
+ class: "tl-bg-white tl-shadow-xl tl-rounded tl-border-4 tl-border-solid tl-border-black"
709
+ }, Ce = /* @__PURE__ */ f("i", { class: "tl-h-4 tl-w-4 tl-p-1.5 tl-flex tl-items-center tl-line-height-0 tl-rounded-full tl-bg-gray-100 tl-text-xs" }, "🍰", -1), Me = /* @__PURE__ */ f("div", null, [
710
+ /* @__PURE__ */ f("i", { class: "i-ic-baseline-drag-indicator" }),
711
+ /* @__PURE__ */ f("i", { class: "i-ic-baseline-drag-indicator" }),
712
+ /* @__PURE__ */ f("i", { class: "i-ic-baseline-drag-indicator" })
713
+ ], -1), Se = /* @__PURE__ */ f("div", null, null, -1), Te = [
714
+ Ce,
715
+ Me,
716
+ Se
717
+ ], Ae = 280, Fe = /* @__PURE__ */ k({
694
718
  __name: "TresLeches",
695
719
  props: {
696
720
  uuid: {}
697
721
  },
698
- setup(t) {
699
- const s = t, { uuid: n } = B(s), { width: o } = ue(), e = f(null), c = Ke(n == null ? void 0 : n.value);
700
- function a(u, _) {
701
- c[D(u)].value = _, c[D(u)][D(u)] = _;
722
+ setup(e) {
723
+ const o = e, { uuid: l } = B(o), { width: n } = pt(), t = d(null), i = Dt(l == null ? void 0 : l.value);
724
+ function r(u, _) {
725
+ i[K(u)].value = _, i[K(u)][K(u)] = _;
702
726
  }
703
- const i = V(() => {
727
+ const c = z(() => {
704
728
  const u = {};
705
- for (const _ in c) {
706
- const m = c[_], r = m.folder || "default";
707
- u[r] || (u[r] = []), u[r].push(m);
729
+ for (const _ in i) {
730
+ const y = i[_], s = y.folder || "default";
731
+ u[s] || (u[s] = []), u[s].push(y);
708
732
  }
709
733
  return u;
710
734
  });
711
- return (u, _) => (d(), S(D(Te), {
712
- id: D(n),
713
- "initial-value": { x: D(o) - Kt - 40, y: 10 },
714
- class: C(["absolute select-none z-24 w-280px font-sans text-xs", u.$attrs.class]),
715
- handle: e.value
735
+ return (u, _) => (p(), C(K(It), {
736
+ id: K(l),
737
+ "initial-value": { x: K(n) - Ae - 40, y: 10 },
738
+ class: M(["tl-absolute tl-select-none tl-z-24 tl-w-280px tl-font-sans tl-text-xs", u.$attrs.class]),
739
+ handle: t.value
716
740
  }, {
717
- default: ce(() => [
718
- p("div", Mt, [
719
- p("header", {
741
+ default: ut(() => [
742
+ f("div", ke, [
743
+ f("header", {
720
744
  ref_key: "handle",
721
- ref: e,
722
- class: "relative cursor-grabbing p-4 flex justify-between text-gray-200 relative"
723
- }, At, 512),
724
- (d(!0), h(O, null, N(i.value, (m, r) => (d(), h(O, { key: r }, [
725
- r !== "default" ? (d(), S(kt, {
745
+ ref: t,
746
+ class: "tl-relative tl-cursor-grabbing tl-p-4 tl-flex tl-justify-between tl-text-gray-200 tl-relative"
747
+ }, Te, 512),
748
+ (p(!0), h(V, null, j(c.value, (y, s) => (p(), h(V, { key: s }, [
749
+ s !== "default" ? (p(), C($e, {
726
750
  key: 0,
727
- label: r,
728
- controls: m
729
- }, null, 8, ["label", "controls"])) : Y("", !0),
730
- r === "default" ? (d(!0), h(O, { key: 1 }, N(m, (l) => (d(), S(ve, {
731
- key: l.label,
732
- control: l,
733
- onChange: (y) => a(l.key, y)
734
- }, null, 8, ["control", "onChange"]))), 128)) : Y("", !0)
751
+ label: s,
752
+ controls: y
753
+ }, null, 8, ["label", "controls"])) : H("", !0),
754
+ s === "default" ? (p(!0), h(V, { key: 1 }, j(y, (a) => (p(), C(bt, {
755
+ key: a.label,
756
+ control: a,
757
+ onChange: (m) => r(a.key, m)
758
+ }, null, 8, ["control", "onChange"]))), 128)) : H("", !0)
735
759
  ], 64))), 128))
736
760
  ])
737
761
  ]),
@@ -740,7 +764,7 @@ const xt = /* @__PURE__ */ fe(_t, [["__scopeId", "data-v-846e24c4"]]), ve = /* @
740
764
  }
741
765
  });
742
766
  export {
743
- Vt as TresLeches,
744
- Et as useControls,
745
- Ke as useControlsProvider
767
+ Fe as TresLeches,
768
+ De as useControls,
769
+ Dt as useControlsProvider
746
770
  };