@openlv/modal 0.0.1-beta.3 → 0.0.1-beta.5

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.
@@ -0,0 +1,1840 @@
1
+ var ir = Object.defineProperty;
2
+ var or = (e, t, r) => t in e ? ir(e, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[t] = r;
3
+ var ae = (e, t, r) => or(e, typeof t != "symbol" ? t + "" : t, r);
4
+ import { jsx as s, jsxs as m, Fragment as Nt } from "preact/jsx-runtime";
5
+ import { useContext as $e, useState as O, useEffect as z, useCallback as I, useRef as L, useReducer as Ct, useMemo as At, useLayoutEffect as ue, useImperativeHandle as Ot, useId as jt, useDebugValue as Tt } from "preact/hooks";
6
+ import { createContext as Rt, createElement as K, Fragment as ve, Component as le, createRef as ar, toChildArray as ee, cloneElement as sr, render as ce, hydrate as lr, options as R, h as cr } from "preact";
7
+ import ur from "qrcode-generator";
8
+ function dr(e) {
9
+ return e && e.__esModule && Object.prototype.hasOwnProperty.call(e, "default") ? e.default : e;
10
+ }
11
+ var Me = { exports: {} };
12
+ /*!
13
+ Copyright (c) 2018 Jed Watson.
14
+ Licensed under the MIT License (MIT), see
15
+ http://jedwatson.github.io/classnames
16
+ */
17
+ var ct;
18
+ function pr() {
19
+ return ct || (ct = 1, (function(e) {
20
+ (function() {
21
+ var t = {}.hasOwnProperty;
22
+ function r() {
23
+ for (var o = "", a = 0; a < arguments.length; a++) {
24
+ var l = arguments[a];
25
+ l && (o = i(o, n(l)));
26
+ }
27
+ return o;
28
+ }
29
+ function n(o) {
30
+ if (typeof o == "string" || typeof o == "number")
31
+ return o;
32
+ if (typeof o != "object")
33
+ return "";
34
+ if (Array.isArray(o))
35
+ return r.apply(null, o);
36
+ if (o.toString !== Object.prototype.toString && !o.toString.toString().includes("[native code]"))
37
+ return o.toString();
38
+ var a = "";
39
+ for (var l in o)
40
+ t.call(o, l) && o[l] && (a = i(a, l));
41
+ return a;
42
+ }
43
+ function i(o, a) {
44
+ return a ? o ? o + " " + a : o + a : o;
45
+ }
46
+ e.exports ? (r.default = r, e.exports = r) : window.classNames = r;
47
+ })();
48
+ })(Me)), Me.exports;
49
+ }
50
+ var fr = pr();
51
+ const se = /* @__PURE__ */ dr(fr), T = Symbol.for("@ts-pattern/matcher"), Et = Symbol.for("@ts-pattern/isVariadic"), Ce = "@ts-pattern/anonymous-select-key", Fe = (e) => !!(e && typeof e == "object"), Se = (e) => e && !!e[T], k = (e, t, r) => {
52
+ if (Se(e)) {
53
+ const n = e[T](), { matched: i, selections: o } = n.match(t);
54
+ return i && o && Object.keys(o).forEach((a) => r(a, o[a])), i;
55
+ }
56
+ if (Fe(e)) {
57
+ if (!Fe(t)) return !1;
58
+ if (Array.isArray(e)) {
59
+ if (!Array.isArray(t)) return !1;
60
+ let n = [], i = [], o = [];
61
+ for (const a of e.keys()) {
62
+ const l = e[a];
63
+ Se(l) && l[Et] ? o.push(l) : o.length ? i.push(l) : n.push(l);
64
+ }
65
+ if (o.length) {
66
+ if (o.length > 1) throw new Error("Pattern error: Using `...P.array(...)` several times in a single pattern is not allowed.");
67
+ if (t.length < n.length + i.length) return !1;
68
+ const a = t.slice(0, n.length), l = i.length === 0 ? [] : t.slice(-i.length), c = t.slice(n.length, i.length === 0 ? 1 / 0 : -i.length);
69
+ return n.every((g, v) => k(g, a[v], r)) && i.every((g, v) => k(g, l[v], r)) && (o.length === 0 || k(o[0], c, r));
70
+ }
71
+ return e.length === t.length && e.every((a, l) => k(a, t[l], r));
72
+ }
73
+ return Reflect.ownKeys(e).every((n) => {
74
+ const i = e[n];
75
+ return (n in t || Se(o = i) && o[T]().matcherType === "optional") && k(i, t[n], r);
76
+ var o;
77
+ });
78
+ }
79
+ return Object.is(t, e);
80
+ }, j = (e) => {
81
+ var t, r, n;
82
+ return Fe(e) ? Se(e) ? (t = (r = (n = e[T]()).getSelectionKeys) == null ? void 0 : r.call(n)) != null ? t : [] : Array.isArray(e) ? ye(e, j) : ye(Object.values(e), j) : [];
83
+ }, ye = (e, t) => e.reduce((r, n) => r.concat(t(n)), []);
84
+ function hr(...e) {
85
+ if (e.length === 1) {
86
+ const [t] = e;
87
+ return (r) => k(t, r, () => {
88
+ });
89
+ }
90
+ if (e.length === 2) {
91
+ const [t, r] = e;
92
+ return k(t, r, () => {
93
+ });
94
+ }
95
+ throw new Error(`isMatching wasn't given the right number of arguments: expected 1 or 2, received ${e.length}.`);
96
+ }
97
+ function _(e) {
98
+ return Object.assign(e, { optional: () => et(e), and: (t) => b(e, t), or: (t) => Pt(e, t), select: (t) => t === void 0 ? we(e) : we(t, e) });
99
+ }
100
+ function Ie(e) {
101
+ return Object.assign(((t) => Object.assign(t, { [Symbol.iterator]() {
102
+ let r = 0;
103
+ const n = [{ value: Object.assign(t, { [Et]: !0 }), done: !1 }, { done: !0, value: void 0 }];
104
+ return { next: () => {
105
+ var i;
106
+ return (i = n[r++]) != null ? i : n.at(-1);
107
+ } };
108
+ } }))(e), { optional: () => Ie(et(e)), select: (t) => Ie(t === void 0 ? we(e) : we(t, e)) });
109
+ }
110
+ function et(e) {
111
+ return _({ [T]: () => ({ match: (t) => {
112
+ let r = {};
113
+ const n = (i, o) => {
114
+ r[i] = o;
115
+ };
116
+ return t === void 0 ? (j(e).forEach((i) => n(i, void 0)), { matched: !0, selections: r }) : { matched: k(e, t, n), selections: r };
117
+ }, getSelectionKeys: () => j(e), matcherType: "optional" }) });
118
+ }
119
+ const gr = (e, t) => {
120
+ for (const r of e) if (!t(r)) return !1;
121
+ return !0;
122
+ }, mr = (e, t) => {
123
+ for (const [r, n] of e.entries()) if (!t(n, r)) return !1;
124
+ return !0;
125
+ }, vr = (e, t) => {
126
+ const r = Reflect.ownKeys(e);
127
+ for (const n of r) if (!t(n, e[n])) return !1;
128
+ return !0;
129
+ };
130
+ function b(...e) {
131
+ return _({ [T]: () => ({ match: (t) => {
132
+ let r = {};
133
+ const n = (i, o) => {
134
+ r[i] = o;
135
+ };
136
+ return { matched: e.every((i) => k(i, t, n)), selections: r };
137
+ }, getSelectionKeys: () => ye(e, j), matcherType: "and" }) });
138
+ }
139
+ function Pt(...e) {
140
+ return _({ [T]: () => ({ match: (t) => {
141
+ let r = {};
142
+ const n = (i, o) => {
143
+ r[i] = o;
144
+ };
145
+ return ye(e, j).forEach((i) => n(i, void 0)), { matched: e.some((i) => k(i, t, n)), selections: r };
146
+ }, getSelectionKeys: () => ye(e, j), matcherType: "or" }) });
147
+ }
148
+ function f(e) {
149
+ return { [T]: () => ({ match: (t) => ({ matched: !!e(t) }) }) };
150
+ }
151
+ function we(...e) {
152
+ const t = typeof e[0] == "string" ? e[0] : void 0, r = e.length === 2 ? e[1] : typeof e[0] == "string" ? void 0 : e[0];
153
+ return _({ [T]: () => ({ match: (n) => {
154
+ let i = { [t ?? Ce]: n };
155
+ return { matched: r === void 0 || k(r, n, (o, a) => {
156
+ i[o] = a;
157
+ }), selections: i };
158
+ }, getSelectionKeys: () => [t ?? Ce].concat(r === void 0 ? [] : j(r)) }) });
159
+ }
160
+ function zt(e) {
161
+ return !0;
162
+ }
163
+ function B(e) {
164
+ return typeof e == "number";
165
+ }
166
+ function Z(e) {
167
+ return typeof e == "string";
168
+ }
169
+ function q(e) {
170
+ return typeof e == "bigint";
171
+ }
172
+ const Vt = _(f(zt)), yr = _(f(zt)), wr = Vt, Y = (e) => Object.assign(_(e), { startsWith: (t) => {
173
+ return Y(b(e, (r = t, f((n) => Z(n) && n.startsWith(r)))));
174
+ var r;
175
+ }, endsWith: (t) => {
176
+ return Y(b(e, (r = t, f((n) => Z(n) && n.endsWith(r)))));
177
+ var r;
178
+ }, minLength: (t) => Y(b(e, ((r) => f((n) => Z(n) && n.length >= r))(t))), length: (t) => Y(b(e, ((r) => f((n) => Z(n) && n.length === r))(t))), maxLength: (t) => Y(b(e, ((r) => f((n) => Z(n) && n.length <= r))(t))), includes: (t) => {
179
+ return Y(b(e, (r = t, f((n) => Z(n) && n.includes(r)))));
180
+ var r;
181
+ }, regex: (t) => {
182
+ return Y(b(e, (r = t, f((n) => Z(n) && !!n.match(r)))));
183
+ var r;
184
+ } }), ut = Y(f(Z)), F = (e) => Object.assign(_(e), { between: (t, r) => F(b(e, ((n, i) => f((o) => B(o) && n <= o && i >= o))(t, r))), lt: (t) => F(b(e, ((r) => f((n) => B(n) && n < r))(t))), gt: (t) => F(b(e, ((r) => f((n) => B(n) && n > r))(t))), lte: (t) => F(b(e, ((r) => f((n) => B(n) && n <= r))(t))), gte: (t) => F(b(e, ((r) => f((n) => B(n) && n >= r))(t))), int: () => F(b(e, f((t) => B(t) && Number.isInteger(t)))), finite: () => F(b(e, f((t) => B(t) && Number.isFinite(t)))), positive: () => F(b(e, f((t) => B(t) && t > 0))), negative: () => F(b(e, f((t) => B(t) && t < 0))) }), br = F(f(B)), $ = (e) => Object.assign(_(e), { between: (t, r) => $(b(e, ((n, i) => f((o) => q(o) && n <= o && i >= o))(t, r))), lt: (t) => $(b(e, ((r) => f((n) => q(n) && n < r))(t))), gt: (t) => $(b(e, ((r) => f((n) => q(n) && n > r))(t))), lte: (t) => $(b(e, ((r) => f((n) => q(n) && n <= r))(t))), gte: (t) => $(b(e, ((r) => f((n) => q(n) && n >= r))(t))), positive: () => $(b(e, f((t) => q(t) && t > 0))), negative: () => $(b(e, f((t) => q(t) && t < 0))) }), xr = $(f(q)), kr = _(f(function(e) {
185
+ return typeof e == "boolean";
186
+ })), _r = _(f(function(e) {
187
+ return typeof e == "symbol";
188
+ })), Sr = _(f(function(e) {
189
+ return e == null;
190
+ })), Nr = _(f(function(e) {
191
+ return e != null;
192
+ }));
193
+ var tt = { __proto__: null, matcher: T, optional: et, array: function(...e) {
194
+ return Ie({ [T]: () => ({ match: (t) => {
195
+ if (!Array.isArray(t)) return { matched: !1 };
196
+ if (e.length === 0) return { matched: !0 };
197
+ const r = e[0];
198
+ let n = {};
199
+ if (t.length === 0) return j(r).forEach((o) => {
200
+ n[o] = [];
201
+ }), { matched: !0, selections: n };
202
+ const i = (o, a) => {
203
+ n[o] = (n[o] || []).concat([a]);
204
+ };
205
+ return { matched: t.every((o) => k(r, o, i)), selections: n };
206
+ }, getSelectionKeys: () => e.length === 0 ? [] : j(e[0]) }) });
207
+ }, set: function(...e) {
208
+ return _({ [T]: () => ({ match: (t) => {
209
+ if (!(t instanceof Set)) return { matched: !1 };
210
+ let r = {};
211
+ if (t.size === 0) return { matched: !0, selections: r };
212
+ if (e.length === 0) return { matched: !0 };
213
+ const n = (o, a) => {
214
+ r[o] = (r[o] || []).concat([a]);
215
+ }, i = e[0];
216
+ return { matched: gr(t, (o) => k(i, o, n)), selections: r };
217
+ }, getSelectionKeys: () => e.length === 0 ? [] : j(e[0]) }) });
218
+ }, map: function(...e) {
219
+ return _({ [T]: () => ({ match: (t) => {
220
+ if (!(t instanceof Map)) return { matched: !1 };
221
+ let r = {};
222
+ if (t.size === 0) return { matched: !0, selections: r };
223
+ const n = (l, c) => {
224
+ r[l] = (r[l] || []).concat([c]);
225
+ };
226
+ if (e.length === 0) return { matched: !0 };
227
+ var i;
228
+ if (e.length === 1) throw new Error(`\`P.map\` wasn't given enough arguments. Expected (key, value), received ${(i = e[0]) == null ? void 0 : i.toString()}`);
229
+ const [o, a] = e;
230
+ return { matched: mr(t, (l, c) => {
231
+ const g = k(o, c, n), v = k(a, l, n);
232
+ return g && v;
233
+ }), selections: r };
234
+ }, getSelectionKeys: () => e.length === 0 ? [] : [...j(e[0]), ...j(e[1])] }) });
235
+ }, record: function(...e) {
236
+ return _({ [T]: () => ({ match: (t) => {
237
+ if (t === null || typeof t != "object" || Array.isArray(t)) return { matched: !1 };
238
+ var r;
239
+ if (e.length === 0) throw new Error(`\`P.record\` wasn't given enough arguments. Expected (value) or (key, value), received ${(r = e[0]) == null ? void 0 : r.toString()}`);
240
+ let n = {};
241
+ const i = (l, c) => {
242
+ n[l] = (n[l] || []).concat([c]);
243
+ }, [o, a] = e.length === 1 ? [ut, e[0]] : e;
244
+ return { matched: vr(t, (l, c) => {
245
+ const g = typeof l != "string" || Number.isNaN(Number(l)) ? null : Number(l), v = g !== null && k(o, g, i), W = k(o, l, i), S = k(a, c, i);
246
+ return (W || v) && S;
247
+ }), selections: n };
248
+ }, getSelectionKeys: () => e.length === 0 ? [] : [...j(e[0]), ...j(e[1])] }) });
249
+ }, intersection: b, union: Pt, not: function(e) {
250
+ return _({ [T]: () => ({ match: (t) => ({ matched: !k(e, t, () => {
251
+ }) }), getSelectionKeys: () => [], matcherType: "not" }) });
252
+ }, when: f, select: we, any: Vt, unknown: yr, _: wr, string: ut, number: br, bigint: xr, boolean: kr, symbol: _r, nullish: Sr, nonNullable: Nr, instanceOf: function(e) {
253
+ return _(f(/* @__PURE__ */ (function(t) {
254
+ return (r) => r instanceof t;
255
+ })(e)));
256
+ }, shape: function(e) {
257
+ return _(f(hr(e)));
258
+ } };
259
+ let Cr = class extends Error {
260
+ constructor(t) {
261
+ let r;
262
+ try {
263
+ r = JSON.stringify(t);
264
+ } catch {
265
+ r = t;
266
+ }
267
+ super(`Pattern matching error: no pattern matches value ${r}`), this.input = void 0, this.input = t;
268
+ }
269
+ };
270
+ const We = { matched: !1, value: void 0 };
271
+ function D(e) {
272
+ return new Ar(e, We);
273
+ }
274
+ let Ar = class He {
275
+ constructor(t, r) {
276
+ this.input = void 0, this.state = void 0, this.input = t, this.state = r;
277
+ }
278
+ with(...t) {
279
+ if (this.state.matched) return this;
280
+ const r = t[t.length - 1], n = [t[0]];
281
+ let i;
282
+ t.length === 3 && typeof t[1] == "function" ? i = t[1] : t.length > 2 && n.push(...t.slice(1, t.length - 1));
283
+ let o = !1, a = {};
284
+ const l = (g, v) => {
285
+ o = !0, a[g] = v;
286
+ }, c = !n.some((g) => k(g, this.input, l)) || i && !i(this.input) ? We : { matched: !0, value: r(o ? Ce in a ? a[Ce] : a : this.input, this.input) };
287
+ return new He(this.input, c);
288
+ }
289
+ when(t, r) {
290
+ if (this.state.matched) return this;
291
+ const n = !!t(this.input);
292
+ return new He(this.input, n ? { matched: !0, value: r(this.input, this.input) } : We);
293
+ }
294
+ otherwise(t) {
295
+ return this.state.matched ? this.state.value : t(this.input);
296
+ }
297
+ exhaustive(t = Or) {
298
+ return this.state.matched ? this.state.value : t(this.input);
299
+ }
300
+ run() {
301
+ return this.exhaustive();
302
+ }
303
+ returnType() {
304
+ return this;
305
+ }
306
+ narrow() {
307
+ return this;
308
+ }
309
+ };
310
+ function Or(e) {
311
+ throw new Cr(e);
312
+ }
313
+ const rt = {
314
+ font: {
315
+ family: "Inter, sans-serif"
316
+ },
317
+ body: {
318
+ color: "#373737",
319
+ background: "#ffffff"
320
+ },
321
+ border: {
322
+ radius: "16px"
323
+ },
324
+ overlay: {
325
+ background: "#00000008",
326
+ backdrop: {
327
+ filter: "blur(2px)"
328
+ }
329
+ },
330
+ modal: {
331
+ shadow: "0px 2px 4px 0px #00000005"
332
+ }
333
+ }, Mt = (e, t, r) => {
334
+ for (const [n, i] of Object.entries(r))
335
+ typeof i == "object" && i !== null ? Mt(e, `${t}-${n}`, i) : typeof i == "string" && e.set(`--lv${t}-${n}`, i);
336
+ }, Lt = (e, t = !0) => {
337
+ const r = /* @__PURE__ */ new Map();
338
+ return Mt(r, "", e), Object.fromEntries(r.entries());
339
+ }, jr = ({
340
+ theme: e = rt,
341
+ children: t
342
+ }) => /* @__PURE__ */ s("div", { style: Lt(e), id: "root", children: t }), Dt = Rt({
343
+ provider: void 0
344
+ }), Tr = ({
345
+ provider: e,
346
+ onClose: t
347
+ }) => /* @__PURE__ */ s(Dt.Provider, { value: { provider: e }, children: /* @__PURE__ */ s(jr, { theme: rt, children: /* @__PURE__ */ s(oi, { onClose: t }) }) }), Rr = () => {
348
+ const e = $e(Dt);
349
+ if (!e.provider) throw new Error("Provider not found");
350
+ return e;
351
+ }, de = () => {
352
+ const { provider: e } = Rr(), [t, r] = O(
353
+ e?.getState().status || "disconnected"
354
+ );
355
+ if (z(() => {
356
+ const n = (i) => {
357
+ r(i);
358
+ };
359
+ return e?.on("status_change", n), () => {
360
+ e?.off("status_change", n);
361
+ };
362
+ }, [e]), !e) throw new Error("Provider not found");
363
+ return { provider: e, status: t };
364
+ }, Er = 1, Pr = (e) => {
365
+ const t = new URLSearchParams();
366
+ return t.set("h", e.h), t.set("k", e.k), e.p && t.set("p", e.p), e.s && t.set("s", e.s), `openlv://${e.sessionId}@${Er}?${t.toString()}`;
367
+ }, Ae = (...e) => console.log(
368
+ "%c[modal]%c",
369
+ "color: yellow; font-weight: bold",
370
+ "color: inherit; font-weight: normal",
371
+ ...e
372
+ ), Bt = (e, t, r) => {
373
+ z(() => (e?.on(t, r), () => {
374
+ e?.off(t, r);
375
+ }), [e, t]);
376
+ }, nt = () => {
377
+ const { provider: e } = de(), [t, r] = O(
378
+ e?.storage.getSettings()
379
+ );
380
+ Bt(
381
+ e?.storage.emitter,
382
+ "settings_change",
383
+ (o) => {
384
+ r(o);
385
+ }
386
+ );
387
+ const n = (o) => {
388
+ if (!t || t.signaling?.p === o) return;
389
+ const a = {
390
+ ...t,
391
+ signaling: {
392
+ ...t.signaling,
393
+ p: o
394
+ }
395
+ };
396
+ r(a), e?.storage.setSettings(a);
397
+ }, i = (o) => {
398
+ if (!t || t.signaling?.s[t.signaling?.p] === o) return;
399
+ const a = {
400
+ ...t,
401
+ signaling: {
402
+ ...t.signaling,
403
+ s: {
404
+ ...t.signaling.s,
405
+ [t.signaling.p]: o
406
+ }
407
+ }
408
+ };
409
+ r(a), e?.storage.setSettings(a);
410
+ };
411
+ if (!t) throw new Error("Settings not found");
412
+ return { settings: t, updateSignalingProtocol: n, updateSignalingServer: i };
413
+ }, be = () => {
414
+ const { provider: e } = de(), [t, r] = O(
415
+ e?.getSession()
416
+ ), n = t?.getHandshakeParameters(), i = n ? Pr(n) : void 0, [o, a] = O(
417
+ t?.getState()
418
+ );
419
+ return Bt(t?.emitter, "state_change", (l) => {
420
+ Ae("session state change: ", l), a(l);
421
+ }), z(() => {
422
+ const l = (c) => {
423
+ Ae("session started: ", c), r(c), a(c.getState());
424
+ };
425
+ return e?.on("session_started", l), () => {
426
+ e?.off("session_started", l);
427
+ };
428
+ }, [e]), z(() => {
429
+ t && a(t.getState());
430
+ }, [t]), {
431
+ uri: i,
432
+ status: o
433
+ };
434
+ }, zr = () => {
435
+ const { provider: e } = de(), { settings: t } = nt();
436
+ return {
437
+ start: () => {
438
+ const r = t?.signaling?.p, n = t?.signaling?.s[r];
439
+ if (!r || !n)
440
+ throw new Error("Invalid protocol or server");
441
+ return e?.createSession({
442
+ p: r,
443
+ s: n
444
+ });
445
+ }
446
+ };
447
+ }, Ue = ({ state: e }) => {
448
+ const { status: t, uri: r } = be(), { status: n } = de();
449
+ return console.error("Unknown state: ", { state: e, sessionStatus: t, providerStatus: n }), /* @__PURE__ */ m("div", { className: "rounded-md bg-gray-100 p-2 text-gray-500", children: [
450
+ /* @__PURE__ */ m("div", { children: [
451
+ "Unknown state: ",
452
+ JSON.stringify(e)
453
+ ] }),
454
+ /* @__PURE__ */ m("div", { children: [
455
+ "URI: ",
456
+ r
457
+ ] }),
458
+ /* @__PURE__ */ m("div", { children: [
459
+ "Session Status: ",
460
+ JSON.stringify(t)
461
+ ] }),
462
+ /* @__PURE__ */ m("div", { children: [
463
+ "Provider Status: ",
464
+ JSON.stringify(n)
465
+ ] })
466
+ ] });
467
+ }, Vr = ({
468
+ onCopy: e
469
+ }) => {
470
+ const { uri: t } = be(), r = I(() => {
471
+ t && e(t);
472
+ }, [t, e]), n = I((i) => {
473
+ const o = ur(0, "M");
474
+ return o.addData(i), o.make(), o.createSvgTag({ cellSize: 5, margin: 0, scalable: !0 });
475
+ }, []);
476
+ return /* @__PURE__ */ m("div", { className: "flex flex-col items-center gap-4 px-2", children: [
477
+ /* @__PURE__ */ m("div", { className: "w-full space-y-4 rounded-md border border-neutral-200 bg-neutral-100 p-4", children: [
478
+ t && /* @__PURE__ */ s("div", { className: "relative mx-auto flex w-fit items-center justify-center rounded-lg border-2 border-gray-200 bg-gray-50 p-4", children: /* @__PURE__ */ s(
479
+ "button",
480
+ {
481
+ className: "flex h-[200px] w-[200px] cursor-pointer items-center justify-center",
482
+ onClick: r,
483
+ title: "Click to copy connection URL",
484
+ dangerouslySetInnerHTML: { __html: n(t) }
485
+ }
486
+ ) }),
487
+ /* @__PURE__ */ s("div", { className: "w-full", children: /* @__PURE__ */ s(
488
+ "button",
489
+ {
490
+ type: "button",
491
+ onClick: r,
492
+ className: "w-full cursor-pointer rounded-lg border border-gray-300 bg-gray-200 px-4 py-2 text-gray-700 text-sm transition hover:bg-gray-300",
493
+ children: "Copy Connection URL"
494
+ }
495
+ ) })
496
+ ] }),
497
+ /* @__PURE__ */ m("div", { className: "w-full", children: [
498
+ /* @__PURE__ */ s("span", { children: "Scan the link above using your mobile wallet." }),
499
+ /* @__PURE__ */ s("br", {}),
500
+ /* @__PURE__ */ s("span", { children: "Or copy the link and paste it into your wallet." })
501
+ ] })
502
+ ] });
503
+ }, Mr = () => typeof document < "u" && "startViewTransition" in document, Lr = (e) => {
504
+ Mr() ? document.startViewTransition(e) : e();
505
+ }, Dr = () => /* @__PURE__ */ s("div", { className: "flex items-center justify-center", children: /* @__PURE__ */ s("div", { className: "h-8 w-8 animate-spin rounded-full border-4 border-blue-500 border-t-transparent" }) }), Ke = "connecting", Je = "handshake-open", Xe = "handshake-closed", Qe = "xr-encrypted", he = "disconnected", Le = "unknown", Br = (e) => e ? D(e).with({ status: he }, () => he).with(
506
+ { status: tt.union("created", "signaling", "connected", "ready") },
507
+ (t) => {
508
+ const r = "signaling" in t ? t.signaling?.state : void 0;
509
+ return D(r).with(Ke, () => Ke).with(Je, () => Je).with(Xe, () => Xe).with(Qe, () => Qe).with(he, () => he).otherwise(() => Le);
510
+ }
511
+ ).otherwise(() => Le) : Le, Fr = (e) => {
512
+ const [t, r] = O(e), n = L(e);
513
+ return z(() => {
514
+ e !== n.current && Lr(() => {
515
+ r(e), n.current = e;
516
+ });
517
+ }, [e]), {
518
+ displayState: t
519
+ };
520
+ }, Ir = ({ onClose: e, onCopy: t }) => {
521
+ const { status: r = { status: "created" } } = be(), n = Br(r), { displayState: i } = Fr(n);
522
+ return /* @__PURE__ */ s("div", { style: { viewTransitionName: "connection-flow" }, className: "w-full", children: D(i).with(Ke, () => /* @__PURE__ */ m("div", { className: "flex flex-col items-center gap-4 p-6", children: [
523
+ /* @__PURE__ */ s(Dr, {}),
524
+ /* @__PURE__ */ m("div", { className: "text-center", children: [
525
+ /* @__PURE__ */ s("h3", { className: "mb-2 font-semibold text-gray-900 text-lg", children: "Connecting" }),
526
+ /* @__PURE__ */ s("p", { className: "text-gray-500 text-sm", children: "Waiting for wallet to connect..." })
527
+ ] })
528
+ ] })).with(Je, () => /* @__PURE__ */ s(Vr, { onCopy: t })).with(Xe, () => /* @__PURE__ */ s("div", { className: "flex flex-col items-center gap-4 p-6", children: /* @__PURE__ */ s("div", { className: "text-center", children: /* @__PURE__ */ s("h3", { className: "mb-2 font-semibold text-gray-900 text-lg", children: "Establishing e2e encryption..." }) }) })).with(Qe, () => /* @__PURE__ */ s("div", { className: "flex flex-col items-center gap-4 p-6", children: /* @__PURE__ */ m("div", { className: "text-center", children: [
529
+ /* @__PURE__ */ s("div", { className: "mb-4 text-4xl", children: "✅" }),
530
+ /* @__PURE__ */ s("h3", { className: "mb-2 font-semibold text-gray-900 text-lg", children: "Connected Successfully!" }),
531
+ /* @__PURE__ */ s("p", { className: "text-gray-500 text-sm", children: "Your wallet is now connected and ready to use." })
532
+ ] }) })).with(he, () => /* @__PURE__ */ m("div", { className: "flex flex-col items-center gap-4 p-6", children: [
533
+ /* @__PURE__ */ m("div", { className: "text-center", children: [
534
+ /* @__PURE__ */ s("div", { className: "mb-4 text-4xl", children: "🔌" }),
535
+ /* @__PURE__ */ s("h3", { className: "mb-2 font-semibold text-gray-900 text-lg", children: "Disconnected" }),
536
+ /* @__PURE__ */ s("p", { className: "mb-4 text-gray-500 text-sm", children: "The connection has been closed." })
537
+ ] }),
538
+ /* @__PURE__ */ s(
539
+ "button",
540
+ {
541
+ type: "button",
542
+ onClick: e,
543
+ className: "w-full rounded-lg bg-gray-100 px-4 py-2 font-semibold text-gray-700 text-sm transition hover:bg-gray-200",
544
+ children: "Close"
545
+ }
546
+ )
547
+ ] })).otherwise(() => /* @__PURE__ */ s(Ue, { state: r })) });
548
+ };
549
+ function Ft(e, t) {
550
+ for (var r in t) e[r] = t[r];
551
+ return e;
552
+ }
553
+ function Ge(e, t) {
554
+ for (var r in e) if (r !== "__source" && !(r in t)) return !0;
555
+ for (var n in t) if (n !== "__source" && e[n] !== t[n]) return !0;
556
+ return !1;
557
+ }
558
+ function It(e, t) {
559
+ var r = t(), n = O({ t: { __: r, u: t } }), i = n[0].t, o = n[1];
560
+ return ue(function() {
561
+ i.__ = r, i.u = t, De(i) && o({ t: i });
562
+ }, [e, r, t]), z(function() {
563
+ return De(i) && o({ t: i }), e(function() {
564
+ De(i) && o({ t: i });
565
+ });
566
+ }, [e]), r;
567
+ }
568
+ function De(e) {
569
+ var t, r, n = e.u, i = e.__;
570
+ try {
571
+ var o = n();
572
+ return !((t = i) === (r = o) && (t !== 0 || 1 / t == 1 / r) || t != t && r != r);
573
+ } catch {
574
+ return !0;
575
+ }
576
+ }
577
+ function Wt(e) {
578
+ e();
579
+ }
580
+ function Ht(e) {
581
+ return e;
582
+ }
583
+ function Ut() {
584
+ return [!1, Wt];
585
+ }
586
+ var Kt = ue;
587
+ function Ze(e, t) {
588
+ this.props = e, this.context = t;
589
+ }
590
+ function Wr(e, t) {
591
+ function r(i) {
592
+ var o = this.props.ref, a = o == i.ref;
593
+ return !a && o && (o.call ? o(null) : o.current = null), t ? !t(this.props, i) || !a : Ge(this.props, i);
594
+ }
595
+ function n(i) {
596
+ return this.shouldComponentUpdate = r, K(e, i);
597
+ }
598
+ return n.displayName = "Memo(" + (e.displayName || e.name) + ")", n.prototype.isReactComponent = !0, n.__f = !0, n.type = e, n;
599
+ }
600
+ (Ze.prototype = new le()).isPureReactComponent = !0, Ze.prototype.shouldComponentUpdate = function(e, t) {
601
+ return Ge(this.props, e) || Ge(this.state, t);
602
+ };
603
+ var dt = R.__b;
604
+ R.__b = function(e) {
605
+ e.type && e.type.__f && e.ref && (e.props.ref = e.ref, e.ref = null), dt && dt(e);
606
+ };
607
+ var Hr = typeof Symbol < "u" && Symbol.for && Symbol.for("react.forward_ref") || 3911;
608
+ function Ur(e) {
609
+ function t(r) {
610
+ var n = Ft({}, r);
611
+ return delete n.ref, e(n, r.ref || null);
612
+ }
613
+ return t.$$typeof = Hr, t.render = e, t.prototype.isReactComponent = t.__f = !0, t.displayName = "ForwardRef(" + (e.displayName || e.name) + ")", t;
614
+ }
615
+ var pt = function(e, t) {
616
+ return e == null ? null : ee(ee(e).map(t));
617
+ }, Kr = { map: pt, forEach: pt, count: function(e) {
618
+ return e ? ee(e).length : 0;
619
+ }, only: function(e) {
620
+ var t = ee(e);
621
+ if (t.length !== 1) throw "Children.only";
622
+ return t[0];
623
+ }, toArray: ee }, Jr = R.__e;
624
+ R.__e = function(e, t, r, n) {
625
+ if (e.then) {
626
+ for (var i, o = t; o = o.__; ) if ((i = o.__c) && i.__c) return t.__e == null && (t.__e = r.__e, t.__k = r.__k), i.__c(e, t);
627
+ }
628
+ Jr(e, t, r, n);
629
+ };
630
+ var ft = R.unmount;
631
+ function Jt(e, t, r) {
632
+ return e && (e.__c && e.__c.__H && (e.__c.__H.__.forEach(function(n) {
633
+ typeof n.__c == "function" && n.__c();
634
+ }), e.__c.__H = null), (e = Ft({}, e)).__c != null && (e.__c.__P === r && (e.__c.__P = t), e.__c.__e = !0, e.__c = null), e.__k = e.__k && e.__k.map(function(n) {
635
+ return Jt(n, t, r);
636
+ })), e;
637
+ }
638
+ function Xt(e, t, r) {
639
+ return e && r && (e.__v = null, e.__k = e.__k && e.__k.map(function(n) {
640
+ return Xt(n, t, r);
641
+ }), e.__c && e.__c.__P === t && (e.__e && r.appendChild(e.__e), e.__c.__e = !0, e.__c.__P = r)), e;
642
+ }
643
+ function Ne() {
644
+ this.__u = 0, this.o = null, this.__b = null;
645
+ }
646
+ function Qt(e) {
647
+ var t = e.__.__c;
648
+ return t && t.__a && t.__a(e);
649
+ }
650
+ function Xr(e) {
651
+ var t, r, n;
652
+ function i(o) {
653
+ if (t || (t = e()).then(function(a) {
654
+ r = a.default || a;
655
+ }, function(a) {
656
+ n = a;
657
+ }), n) throw n;
658
+ if (!r) throw t;
659
+ return K(r, o);
660
+ }
661
+ return i.displayName = "Lazy", i.__f = !0, i;
662
+ }
663
+ function ge() {
664
+ this.i = null, this.l = null;
665
+ }
666
+ R.unmount = function(e) {
667
+ var t = e.__c;
668
+ t && t.__R && t.__R(), t && 32 & e.__u && (e.type = null), ft && ft(e);
669
+ }, (Ne.prototype = new le()).__c = function(e, t) {
670
+ var r = t.__c, n = this;
671
+ n.o == null && (n.o = []), n.o.push(r);
672
+ var i = Qt(n.__v), o = !1, a = function() {
673
+ o || (o = !0, r.__R = null, i ? i(l) : l());
674
+ };
675
+ r.__R = a;
676
+ var l = function() {
677
+ if (!--n.__u) {
678
+ if (n.state.__a) {
679
+ var c = n.state.__a;
680
+ n.__v.__k[0] = Xt(c, c.__c.__P, c.__c.__O);
681
+ }
682
+ var g;
683
+ for (n.setState({ __a: n.__b = null }); g = n.o.pop(); ) g.forceUpdate();
684
+ }
685
+ };
686
+ n.__u++ || 32 & t.__u || n.setState({ __a: n.__b = n.__v.__k[0] }), e.then(a, a);
687
+ }, Ne.prototype.componentWillUnmount = function() {
688
+ this.o = [];
689
+ }, Ne.prototype.render = function(e, t) {
690
+ if (this.__b) {
691
+ if (this.__v.__k) {
692
+ var r = document.createElement("div"), n = this.__v.__k[0].__c;
693
+ this.__v.__k[0] = Jt(this.__b, r, n.__O = n.__P);
694
+ }
695
+ this.__b = null;
696
+ }
697
+ var i = t.__a && K(ve, null, e.fallback);
698
+ return i && (i.__u &= -33), [K(ve, null, t.__a ? null : e.children), i];
699
+ };
700
+ var ht = function(e, t, r) {
701
+ if (++r[1] === r[0] && e.l.delete(t), e.props.revealOrder && (e.props.revealOrder[0] !== "t" || !e.l.size)) for (r = e.i; r; ) {
702
+ for (; r.length > 3; ) r.pop()();
703
+ if (r[1] < r[0]) break;
704
+ e.i = r = r[2];
705
+ }
706
+ };
707
+ function Qr(e) {
708
+ return this.getChildContext = function() {
709
+ return e.context;
710
+ }, e.children;
711
+ }
712
+ function Gr(e) {
713
+ var t = this, r = e.h;
714
+ if (t.componentWillUnmount = function() {
715
+ ce(null, t.v), t.v = null, t.h = null;
716
+ }, t.h && t.h !== r && t.componentWillUnmount(), !t.v) {
717
+ for (var n = t.__v; n !== null && !n.__m && n.__ !== null; ) n = n.__;
718
+ t.h = r, t.v = { nodeType: 1, parentNode: r, childNodes: [], __k: { __m: n.__m }, contains: function() {
719
+ return !0;
720
+ }, insertBefore: function(i, o) {
721
+ this.childNodes.push(i), t.h.insertBefore(i, o);
722
+ }, removeChild: function(i) {
723
+ this.childNodes.splice(this.childNodes.indexOf(i) >>> 1, 1), t.h.removeChild(i);
724
+ } };
725
+ }
726
+ ce(K(Qr, { context: t.context }, e.__v), t.v);
727
+ }
728
+ function Zr(e, t) {
729
+ var r = K(Gr, { __v: e, h: t });
730
+ return r.containerInfo = t, r;
731
+ }
732
+ (ge.prototype = new le()).__a = function(e) {
733
+ var t = this, r = Qt(t.__v), n = t.l.get(e);
734
+ return n[0]++, function(i) {
735
+ var o = function() {
736
+ t.props.revealOrder ? (n.push(i), ht(t, e, n)) : i();
737
+ };
738
+ r ? r(o) : o();
739
+ };
740
+ }, ge.prototype.render = function(e) {
741
+ this.i = null, this.l = /* @__PURE__ */ new Map();
742
+ var t = ee(e.children);
743
+ e.revealOrder && e.revealOrder[0] === "b" && t.reverse();
744
+ for (var r = t.length; r--; ) this.l.set(t[r], this.i = [1, 0, this.i]);
745
+ return e.children;
746
+ }, ge.prototype.componentDidUpdate = ge.prototype.componentDidMount = function() {
747
+ var e = this;
748
+ this.l.forEach(function(t, r) {
749
+ ht(e, r, t);
750
+ });
751
+ };
752
+ var Gt = typeof Symbol < "u" && Symbol.for && Symbol.for("react.element") || 60103, qr = /^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image(!S)|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/, Yr = /^on(Ani|Tra|Tou|BeforeInp|Compo)/, $r = /[A-Z0-9]/g, en = typeof document < "u", tn = function(e) {
753
+ return (typeof Symbol < "u" && typeof Symbol() == "symbol" ? /fil|che|rad/ : /fil|che|ra/).test(e);
754
+ };
755
+ function rn(e, t, r) {
756
+ return t.__k == null && (t.textContent = ""), ce(e, t), typeof r == "function" && r(), e ? e.__c : null;
757
+ }
758
+ function nn(e, t, r) {
759
+ return lr(e, t), typeof r == "function" && r(), e ? e.__c : null;
760
+ }
761
+ le.prototype.isReactComponent = {}, ["componentWillMount", "componentWillReceiveProps", "componentWillUpdate"].forEach(function(e) {
762
+ Object.defineProperty(le.prototype, e, { configurable: !0, get: function() {
763
+ return this["UNSAFE_" + e];
764
+ }, set: function(t) {
765
+ Object.defineProperty(this, e, { configurable: !0, writable: !0, value: t });
766
+ } });
767
+ });
768
+ var gt = R.event;
769
+ function on() {
770
+ }
771
+ function an() {
772
+ return this.cancelBubble;
773
+ }
774
+ function sn() {
775
+ return this.defaultPrevented;
776
+ }
777
+ R.event = function(e) {
778
+ return gt && (e = gt(e)), e.persist = on, e.isPropagationStopped = an, e.isDefaultPrevented = sn, e.nativeEvent = e;
779
+ };
780
+ var it, ln = { enumerable: !1, configurable: !0, get: function() {
781
+ return this.class;
782
+ } }, mt = R.vnode;
783
+ R.vnode = function(e) {
784
+ typeof e.type == "string" && (function(t) {
785
+ var r = t.props, n = t.type, i = {}, o = n.indexOf("-") === -1;
786
+ for (var a in r) {
787
+ var l = r[a];
788
+ if (!(a === "value" && "defaultValue" in r && l == null || en && a === "children" && n === "noscript" || a === "class" || a === "className")) {
789
+ var c = a.toLowerCase();
790
+ a === "defaultValue" && "value" in r && r.value == null ? a = "value" : a === "download" && l === !0 ? l = "" : c === "translate" && l === "no" ? l = !1 : c[0] === "o" && c[1] === "n" ? c === "ondoubleclick" ? a = "ondblclick" : c !== "onchange" || n !== "input" && n !== "textarea" || tn(r.type) ? c === "onfocus" ? a = "onfocusin" : c === "onblur" ? a = "onfocusout" : Yr.test(a) && (a = c) : c = a = "oninput" : o && qr.test(a) ? a = a.replace($r, "-$&").toLowerCase() : l === null && (l = void 0), c === "oninput" && i[a = c] && (a = "oninputCapture"), i[a] = l;
791
+ }
792
+ }
793
+ n == "select" && i.multiple && Array.isArray(i.value) && (i.value = ee(r.children).forEach(function(g) {
794
+ g.props.selected = i.value.indexOf(g.props.value) != -1;
795
+ })), n == "select" && i.defaultValue != null && (i.value = ee(r.children).forEach(function(g) {
796
+ g.props.selected = i.multiple ? i.defaultValue.indexOf(g.props.value) != -1 : i.defaultValue == g.props.value;
797
+ })), r.class && !r.className ? (i.class = r.class, Object.defineProperty(i, "className", ln)) : (r.className && !r.class || r.class && r.className) && (i.class = i.className = r.className), t.props = i;
798
+ })(e), e.$$typeof = Gt, mt && mt(e);
799
+ };
800
+ var vt = R.__r;
801
+ R.__r = function(e) {
802
+ vt && vt(e), it = e.__c;
803
+ };
804
+ var yt = R.diffed;
805
+ R.diffed = function(e) {
806
+ yt && yt(e);
807
+ var t = e.props, r = e.__e;
808
+ r != null && e.type === "textarea" && "value" in t && t.value !== r.value && (r.value = t.value == null ? "" : t.value), it = null;
809
+ };
810
+ var cn = { ReactCurrentDispatcher: { current: { readContext: function(e) {
811
+ return it.__n[e.__c].props.value;
812
+ }, useCallback: I, useContext: $e, useDebugValue: Tt, useDeferredValue: Ht, useEffect: z, useId: jt, useImperativeHandle: Ot, useInsertionEffect: Kt, useLayoutEffect: ue, useMemo: At, useReducer: Ct, useRef: L, useState: O, useSyncExternalStore: It, useTransition: Ut } } };
813
+ function un(e) {
814
+ return K.bind(null, e);
815
+ }
816
+ function Ee(e) {
817
+ return !!e && e.$$typeof === Gt;
818
+ }
819
+ function dn(e) {
820
+ return Ee(e) && e.type === ve;
821
+ }
822
+ function pn(e) {
823
+ return !!e && !!e.displayName && (typeof e.displayName == "string" || e.displayName instanceof String) && e.displayName.startsWith("Memo(");
824
+ }
825
+ function fn(e) {
826
+ return Ee(e) ? sr.apply(null, arguments) : e;
827
+ }
828
+ function hn(e) {
829
+ return !!e.__k && (ce(null, e), !0);
830
+ }
831
+ function gn(e) {
832
+ return e && (e.base || e.nodeType === 1 && e) || null;
833
+ }
834
+ var mn = function(e, t) {
835
+ return e(t);
836
+ }, vn = function(e, t) {
837
+ return e(t);
838
+ }, yn = ve, wn = Ee, re = { useState: O, useId: jt, useReducer: Ct, useEffect: z, useLayoutEffect: ue, useInsertionEffect: Kt, useTransition: Ut, useDeferredValue: Ht, useSyncExternalStore: It, startTransition: Wt, useRef: L, useImperativeHandle: Ot, useMemo: At, useCallback: I, useContext: $e, useDebugValue: Tt, version: "18.3.1", Children: Kr, render: rn, hydrate: nn, unmountComponentAtNode: hn, createPortal: Zr, createElement: K, createContext: Rt, createFactory: un, cloneElement: fn, createRef: ar, Fragment: ve, isValidElement: Ee, isElement: wn, isFragment: dn, isMemo: pn, findDOMNode: gn, Component: le, PureComponent: Ze, memo: Wr, forwardRef: Ur, flushSync: vn, unstable_batchedUpdates: mn, StrictMode: yn, Suspense: Ne, SuspenseList: ge, lazy: Xr, __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: cn }, Zt = {
839
+ color: void 0,
840
+ size: void 0,
841
+ className: void 0,
842
+ style: void 0,
843
+ attr: void 0
844
+ }, wt = re.createContext && /* @__PURE__ */ re.createContext(Zt), bn = ["attr", "size", "title"];
845
+ function xn(e, t) {
846
+ if (e == null) return {};
847
+ var r = kn(e, t), n, i;
848
+ if (Object.getOwnPropertySymbols) {
849
+ var o = Object.getOwnPropertySymbols(e);
850
+ for (i = 0; i < o.length; i++)
851
+ n = o[i], !(t.indexOf(n) >= 0) && Object.prototype.propertyIsEnumerable.call(e, n) && (r[n] = e[n]);
852
+ }
853
+ return r;
854
+ }
855
+ function kn(e, t) {
856
+ if (e == null) return {};
857
+ var r = {};
858
+ for (var n in e)
859
+ if (Object.prototype.hasOwnProperty.call(e, n)) {
860
+ if (t.indexOf(n) >= 0) continue;
861
+ r[n] = e[n];
862
+ }
863
+ return r;
864
+ }
865
+ function Oe() {
866
+ return Oe = Object.assign ? Object.assign.bind() : function(e) {
867
+ for (var t = 1; t < arguments.length; t++) {
868
+ var r = arguments[t];
869
+ for (var n in r)
870
+ Object.prototype.hasOwnProperty.call(r, n) && (e[n] = r[n]);
871
+ }
872
+ return e;
873
+ }, Oe.apply(this, arguments);
874
+ }
875
+ function bt(e, t) {
876
+ var r = Object.keys(e);
877
+ if (Object.getOwnPropertySymbols) {
878
+ var n = Object.getOwnPropertySymbols(e);
879
+ t && (n = n.filter(function(i) {
880
+ return Object.getOwnPropertyDescriptor(e, i).enumerable;
881
+ })), r.push.apply(r, n);
882
+ }
883
+ return r;
884
+ }
885
+ function je(e) {
886
+ for (var t = 1; t < arguments.length; t++) {
887
+ var r = arguments[t] != null ? arguments[t] : {};
888
+ t % 2 ? bt(Object(r), !0).forEach(function(n) {
889
+ _n(e, n, r[n]);
890
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(r)) : bt(Object(r)).forEach(function(n) {
891
+ Object.defineProperty(e, n, Object.getOwnPropertyDescriptor(r, n));
892
+ });
893
+ }
894
+ return e;
895
+ }
896
+ function _n(e, t, r) {
897
+ return t = Sn(t), t in e ? Object.defineProperty(e, t, { value: r, enumerable: !0, configurable: !0, writable: !0 }) : e[t] = r, e;
898
+ }
899
+ function Sn(e) {
900
+ var t = Nn(e, "string");
901
+ return typeof t == "symbol" ? t : t + "";
902
+ }
903
+ function Nn(e, t) {
904
+ if (typeof e != "object" || !e) return e;
905
+ var r = e[Symbol.toPrimitive];
906
+ if (r !== void 0) {
907
+ var n = r.call(e, t);
908
+ if (typeof n != "object") return n;
909
+ throw new TypeError("@@toPrimitive must return a primitive value.");
910
+ }
911
+ return (t === "string" ? String : Number)(e);
912
+ }
913
+ function qt(e) {
914
+ return e && e.map((t, r) => /* @__PURE__ */ re.createElement(t.tag, je({
915
+ key: r
916
+ }, t.attr), qt(t.child)));
917
+ }
918
+ function Pe(e) {
919
+ return (t) => /* @__PURE__ */ re.createElement(Cn, Oe({
920
+ attr: je({}, e.attr)
921
+ }, t), qt(e.child));
922
+ }
923
+ function Cn(e) {
924
+ var t = (r) => {
925
+ var {
926
+ attr: n,
927
+ size: i,
928
+ title: o
929
+ } = e, a = xn(e, bn), l = i || r.size || "1em", c;
930
+ return r.className && (c = r.className), e.className && (c = (c ? c + " " : "") + e.className), /* @__PURE__ */ re.createElement("svg", Oe({
931
+ stroke: "currentColor",
932
+ fill: "currentColor",
933
+ strokeWidth: "0"
934
+ }, r.attr, n, a, {
935
+ className: c,
936
+ style: je(je({
937
+ color: e.color || r.color
938
+ }, r.style), e.style),
939
+ height: l,
940
+ width: l,
941
+ xmlns: "http://www.w3.org/2000/svg"
942
+ }), o && /* @__PURE__ */ re.createElement("title", null, o), e.children);
943
+ };
944
+ return wt !== void 0 ? /* @__PURE__ */ re.createElement(wt.Consumer, null, (r) => t(r)) : t(Zt);
945
+ }
946
+ function An(e) {
947
+ return Pe({ attr: { viewBox: "0 0 512 512" }, child: [{ tag: "path", attr: { d: "M416.3 256c0-21 13.1-38.9 31.7-46.1-4.9-20.5-13-39.7-23.7-57.1-6.4 2.8-13.2 4.3-20.1 4.3-12.6 0-25.2-4.8-34.9-14.4-14.9-14.9-18.2-36.8-10.2-55-17.3-10.7-36.6-18.8-57-23.7C295 82.5 277 95.7 256 95.7S217 82.5 209.9 64c-20.5 4.9-39.7 13-57.1 23.7 8.1 18.1 4.7 40.1-10.2 55-9.6 9.6-22.3 14.4-34.9 14.4-6.9 0-13.7-1.4-20.1-4.3C77 170.3 68.9 189.5 64 210c18.5 7.1 31.7 25 31.7 46.1 0 21-13.1 38.9-31.6 46.1 4.9 20.5 13 39.7 23.7 57.1 6.4-2.8 13.2-4.2 20-4.2 12.6 0 25.2 4.8 34.9 14.4 14.8 14.8 18.2 36.8 10.2 54.9 17.4 10.7 36.7 18.8 57.1 23.7 7.1-18.5 25-31.6 46-31.6s38.9 13.1 46 31.6c20.5-4.9 39.7-13 57.1-23.7-8-18.1-4.6-40 10.2-54.9 9.6-9.6 22.2-14.4 34.9-14.4 6.8 0 13.7 1.4 20 4.2 10.7-17.4 18.8-36.7 23.7-57.1-18.4-7.2-31.6-25.1-31.6-46.2zm-159.4 79.9c-44.3 0-80-35.9-80-80s35.7-80 80-80 80 35.9 80 80-35.7 80-80 80z" }, child: [] }] })(e);
948
+ }
949
+ var On = /\s+/g, qe = (e) => typeof e != "string" || !e ? e : e.replace(On, " ").trim(), Te = (...e) => {
950
+ let t = [], r = (n) => {
951
+ if (!n && n !== 0 && n !== 0n) return;
952
+ if (Array.isArray(n)) {
953
+ for (let o = 0, a = n.length; o < a; o++) r(n[o]);
954
+ return;
955
+ }
956
+ let i = typeof n;
957
+ if (i === "string" || i === "number" || i === "bigint") {
958
+ if (i === "number" && n !== n) return;
959
+ t.push(String(n));
960
+ } else if (i === "object") {
961
+ let o = Object.keys(n);
962
+ for (let a = 0, l = o.length; a < l; a++) {
963
+ let c = o[a];
964
+ n[c] && t.push(c);
965
+ }
966
+ }
967
+ };
968
+ for (let n = 0, i = e.length; n < i; n++) {
969
+ let o = e[n];
970
+ o != null && r(o);
971
+ }
972
+ return t.length > 0 ? qe(t.join(" ")) : void 0;
973
+ }, xt = (e) => e === !1 ? "false" : e === !0 ? "true" : e === 0 ? "0" : e, P = (e) => {
974
+ if (!e || typeof e != "object") return !0;
975
+ for (let t in e) return !1;
976
+ return !0;
977
+ }, jn = (e, t) => {
978
+ if (e === t) return !0;
979
+ if (!e || !t) return !1;
980
+ let r = Object.keys(e), n = Object.keys(t);
981
+ if (r.length !== n.length) return !1;
982
+ for (let i = 0; i < r.length; i++) {
983
+ let o = r[i];
984
+ if (!n.includes(o) || e[o] !== t[o]) return !1;
985
+ }
986
+ return !0;
987
+ }, kt = (e, t) => {
988
+ for (let r in t) if (Object.prototype.hasOwnProperty.call(t, r)) {
989
+ let n = t[r];
990
+ r in e ? e[r] = Te(e[r], n) : e[r] = n;
991
+ }
992
+ return e;
993
+ }, Yt = (e, t) => {
994
+ for (let r = 0; r < e.length; r++) {
995
+ let n = e[r];
996
+ Array.isArray(n) ? Yt(n, t) : n && t.push(n);
997
+ }
998
+ }, $t = (...e) => {
999
+ let t = [];
1000
+ Yt(e, t);
1001
+ let r = [];
1002
+ for (let n = 0; n < t.length; n++) t[n] && r.push(t[n]);
1003
+ return r;
1004
+ }, Ye = (e, t) => {
1005
+ let r = {};
1006
+ for (let n in e) {
1007
+ let i = e[n];
1008
+ if (n in t) {
1009
+ let o = t[n];
1010
+ Array.isArray(i) || Array.isArray(o) ? r[n] = $t(o, i) : typeof i == "object" && typeof o == "object" && i && o ? r[n] = Ye(i, o) : r[n] = o + " " + i;
1011
+ } else r[n] = i;
1012
+ }
1013
+ for (let n in t) n in e || (r[n] = t[n]);
1014
+ return r;
1015
+ }, Tn = { twMerge: !0, twMergeConfig: {}, responsiveVariants: !1 };
1016
+ function Rn() {
1017
+ let e = null, t = {}, r = !1;
1018
+ return { get cachedTwMerge() {
1019
+ return e;
1020
+ }, set cachedTwMerge(n) {
1021
+ e = n;
1022
+ }, get cachedTwMergeConfig() {
1023
+ return t;
1024
+ }, set cachedTwMergeConfig(n) {
1025
+ t = n;
1026
+ }, get didTwMergeConfigChange() {
1027
+ return r;
1028
+ }, set didTwMergeConfigChange(n) {
1029
+ r = n;
1030
+ }, reset() {
1031
+ e = null, t = {}, r = !1;
1032
+ } };
1033
+ }
1034
+ var Be = Rn(), En = (e) => {
1035
+ let t = (r, n) => {
1036
+ let { extend: i = null, slots: o = {}, variants: a = {}, compoundVariants: l = [], compoundSlots: c = [], defaultVariants: g = {} } = r, v = { ...Tn, ...n }, W = i?.base ? Te(i.base, r?.base) : r?.base, S = i?.variants && !P(i.variants) ? Ye(a, i.variants) : a, ne = i?.defaultVariants && !P(i.defaultVariants) ? { ...i.defaultVariants, ...g } : g;
1037
+ !P(v.twMergeConfig) && !jn(v.twMergeConfig, Be.cachedTwMergeConfig) && (Be.didTwMergeConfigChange = !0, Be.cachedTwMergeConfig = v.twMergeConfig);
1038
+ let ie = P(i?.slots), oe = P(o) ? {} : { base: Te(r?.base, ie && i?.base), ...o }, H = ie ? oe : kt({ ...i?.slots }, P(oe) ? { base: r?.base } : oe), J = P(i?.compoundVariants) ? l : $t(i?.compoundVariants, l), V = (M) => {
1039
+ if (P(S) && P(o) && ie) return e(W, M?.class, M?.className)(v);
1040
+ if (J && !Array.isArray(J)) throw new TypeError(`The "compoundVariants" prop must be an array. Received: ${typeof J}`);
1041
+ if (c && !Array.isArray(c)) throw new TypeError(`The "compoundSlots" prop must be an array. Received: ${typeof c}`);
1042
+ let ke = (p, d, u = [], y) => {
1043
+ let w = u;
1044
+ if (typeof d == "string") {
1045
+ let h = qe(d).split(" ");
1046
+ for (let x = 0; x < h.length; x++) w.push(`${p}:${h[x]}`);
1047
+ } else if (Array.isArray(d)) for (let h = 0; h < d.length; h++) w.push(`${p}:${d[h]}`);
1048
+ else if (typeof d == "object" && typeof y == "string" && y in d) {
1049
+ let h = d[y];
1050
+ if (h && typeof h == "string") {
1051
+ let x = qe(h).split(" "), A = [];
1052
+ for (let C = 0; C < x.length; C++) A.push(`${p}:${x[C]}`);
1053
+ w[y] = w[y] ? w[y].concat(A) : A;
1054
+ } else if (Array.isArray(h) && h.length > 0) {
1055
+ let x = [];
1056
+ for (let A = 0; A < h.length; A++) x.push(`${p}:${h[A]}`);
1057
+ w[y] = x;
1058
+ }
1059
+ }
1060
+ return w;
1061
+ }, X = (p, d = S, u = null, y = null) => {
1062
+ let w = d[p];
1063
+ if (!w || P(w)) return null;
1064
+ let h = y?.[p] ?? M?.[p];
1065
+ if (h === null) return null;
1066
+ let x = xt(h), A = Array.isArray(v.responsiveVariants) && v.responsiveVariants.length > 0 || v.responsiveVariants === !0, C = ne?.[p], N = [];
1067
+ if (typeof x == "object" && A) for (let [G, lt] of Object.entries(x)) {
1068
+ let nr = w[lt];
1069
+ if (G === "initial") {
1070
+ C = lt;
1071
+ continue;
1072
+ }
1073
+ Array.isArray(v.responsiveVariants) && !v.responsiveVariants.includes(G) || (N = ke(G, nr, N, u));
1074
+ }
1075
+ let Q = x != null && typeof x != "object" ? x : xt(C), E = w[Q || "false"];
1076
+ return typeof N == "object" && typeof u == "string" && N[u] ? kt(N, E) : N.length > 0 ? (N.push(E), u === "base" ? N.join(" ") : N) : E;
1077
+ }, te = () => {
1078
+ if (!S) return null;
1079
+ let p = Object.keys(S), d = [];
1080
+ for (let u = 0; u < p.length; u++) {
1081
+ let y = X(p[u], S);
1082
+ y && d.push(y);
1083
+ }
1084
+ return d;
1085
+ }, ze = (p, d) => {
1086
+ if (!S || typeof S != "object") return null;
1087
+ let u = [];
1088
+ for (let y in S) {
1089
+ let w = X(y, S, p, d), h = p === "base" && typeof w == "string" ? w : w && w[p];
1090
+ h && u.push(h);
1091
+ }
1092
+ return u;
1093
+ }, pe = {};
1094
+ for (let p in M) {
1095
+ let d = M[p];
1096
+ d !== void 0 && (pe[p] = d);
1097
+ }
1098
+ let U = (p, d) => {
1099
+ let u = typeof M?.[p] == "object" ? { [p]: M[p]?.initial } : {};
1100
+ return { ...ne, ...pe, ...u, ...d };
1101
+ }, fe = (p = [], d) => {
1102
+ let u = [], y = p.length;
1103
+ for (let w = 0; w < y; w++) {
1104
+ let { class: h, className: x, ...A } = p[w], C = !0, N = U(null, d);
1105
+ for (let Q in A) {
1106
+ let E = A[Q], G = N[Q];
1107
+ if (Array.isArray(E)) {
1108
+ if (!E.includes(G)) {
1109
+ C = !1;
1110
+ break;
1111
+ }
1112
+ } else {
1113
+ if ((E == null || E === !1) && (G == null || G === !1)) continue;
1114
+ if (G !== E) {
1115
+ C = !1;
1116
+ break;
1117
+ }
1118
+ }
1119
+ }
1120
+ C && (h && u.push(h), x && u.push(x));
1121
+ }
1122
+ return u;
1123
+ }, Ve = (p) => {
1124
+ let d = fe(J, p);
1125
+ if (!Array.isArray(d)) return d;
1126
+ let u = {}, y = e;
1127
+ for (let w = 0; w < d.length; w++) {
1128
+ let h = d[w];
1129
+ if (typeof h == "string") u.base = y(u.base, h)(v);
1130
+ else if (typeof h == "object") for (let x in h) u[x] = y(u[x], h[x])(v);
1131
+ }
1132
+ return u;
1133
+ }, _e = (p) => {
1134
+ if (c.length < 1) return null;
1135
+ let d = {}, u = U(null, p);
1136
+ for (let y = 0; y < c.length; y++) {
1137
+ let { slots: w = [], class: h, className: x, ...A } = c[y];
1138
+ if (!P(A)) {
1139
+ let C = !0;
1140
+ for (let N in A) {
1141
+ let Q = u[N], E = A[N];
1142
+ if (Q === void 0 || (Array.isArray(E) ? !E.includes(Q) : E !== Q)) {
1143
+ C = !1;
1144
+ break;
1145
+ }
1146
+ }
1147
+ if (!C) continue;
1148
+ }
1149
+ for (let C = 0; C < w.length; C++) {
1150
+ let N = w[C];
1151
+ d[N] || (d[N] = []), d[N].push([h, x]);
1152
+ }
1153
+ }
1154
+ return d;
1155
+ };
1156
+ if (!P(o) || !ie) {
1157
+ let p = {};
1158
+ if (typeof H == "object" && !P(H)) {
1159
+ let d = e;
1160
+ for (let u in H) p[u] = (y) => {
1161
+ let w = Ve(y), h = _e(y);
1162
+ return d(H[u], ze(u, y), w ? w[u] : void 0, h ? h[u] : void 0, y?.class, y?.className)(v);
1163
+ };
1164
+ }
1165
+ return p;
1166
+ }
1167
+ return e(W, te(), fe(J), M?.class, M?.className)(v);
1168
+ }, xe = () => {
1169
+ if (!(!S || typeof S != "object")) return Object.keys(S);
1170
+ };
1171
+ return V.variantKeys = xe(), V.extend = i, V.base = W, V.slots = H, V.variants = S, V.defaultVariants = ne, V.compoundSlots = c, V.compoundVariants = J, V;
1172
+ };
1173
+ return { tv: t, createTV: (r) => (n, i) => t(n, i ? Ye(r, i) : r) };
1174
+ }, Pn = (...e) => (t) => Te(e) || void 0, { tv: er } = En(Pn);
1175
+ const zn = er({
1176
+ base: "flex items-center justify-center rounded-lg transition-colors cursor-pointer active:scale-95 transition-transform",
1177
+ variants: {
1178
+ $variant: {
1179
+ primary: "bg-blue-500 font-semibold text-sm text-white hover:bg-blue-600",
1180
+ secondary: "border border-gray-300 text-gray-500 hover:bg-gray-200",
1181
+ tertiary: "text-gray-500 hover:text-gray-700 hover:bg-gray-200"
1182
+ },
1183
+ $size: {
1184
+ sm: "h-6",
1185
+ md: "h-8",
1186
+ lg: "h-11"
1187
+ },
1188
+ $aspect: {
1189
+ square: "aspect-square",
1190
+ auto: ""
1191
+ }
1192
+ },
1193
+ defaultVariants: {
1194
+ $size: "md",
1195
+ $variant: "primary",
1196
+ $aspect: "auto"
1197
+ }
1198
+ }), me = ({
1199
+ href: e,
1200
+ onClick: t,
1201
+ children: r,
1202
+ className: n,
1203
+ $variant: i,
1204
+ $size: o,
1205
+ $aspect: a,
1206
+ ...l
1207
+ }) => K(
1208
+ e ? "a" : "button",
1209
+ {
1210
+ href: e ?? void 0,
1211
+ onClick: t,
1212
+ className: se(zn({ $variant: i, $size: o, $aspect: a }), n),
1213
+ ...l
1214
+ },
1215
+ r
1216
+ ), Vn = ({ isApple: e }) => /* @__PURE__ */ m("div", { className: "flex h-full w-full justify-between", children: [
1217
+ /* @__PURE__ */ s("div", { className: "grow py-1 pl-1", children: /* @__PURE__ */ s("div", { className: "h-full rounded-sm border border-gray-300 bg-gray-400" }) }),
1218
+ /* @__PURE__ */ s("div", { className: "flex h-full w-3 flex-col items-center justify-center gap-0.5 pr-0.5", children: Array.from({ length: e ? 1 : 3 }).map((t, r) => /* @__PURE__ */ s(
1219
+ "div",
1220
+ {
1221
+ className: "h-1.5 w-1.5 rounded-full border border-gray-500"
1222
+ },
1223
+ "dot-t-" + r
1224
+ )) })
1225
+ ] }), Mn = ({ isApple: e }) => /* @__PURE__ */ m("div", { className: "flex h-full w-full flex-col justify-between", children: [
1226
+ /* @__PURE__ */ s("div", { className: "grow px-1 pt-1", children: /* @__PURE__ */ s("div", { className: "h-full rounded-sm border border-gray-200 bg-gray-300" }) }),
1227
+ /* @__PURE__ */ s("div", { className: "flex h-3 w-full items-center justify-center gap-0.5 pb-0.5", children: Array.from({ length: e ? 1 : 3 }).map((t, r) => /* @__PURE__ */ s(
1228
+ "div",
1229
+ {
1230
+ className: "h-1.5 w-1.5 rounded-full border border-gray-400"
1231
+ },
1232
+ "dot-p-" + r
1233
+ )) })
1234
+ ] }), Ln = () => /* @__PURE__ */ m("div", { className: "-space-x-4 flex items-end", children: [
1235
+ /* @__PURE__ */ s("div", { className: "h-38 w-48 overflow-hidden rounded-lg bg-gray-300", children: /* @__PURE__ */ s(Vn, { isApple: !0 }) }),
1236
+ /* @__PURE__ */ s("div", { className: "h-18 w-12 overflow-hidden rounded-lg bg-gray-200", children: /* @__PURE__ */ s(Mn, { isApple: !0 }) })
1237
+ ] }), Dn = ({
1238
+ onSettings: e
1239
+ }) => {
1240
+ const { start: t } = zr();
1241
+ return /* @__PURE__ */ m("div", { className: "flex flex-col items-center gap-4 p-6", children: [
1242
+ /* @__PURE__ */ s(Ln, {}),
1243
+ /* @__PURE__ */ s("div", { className: "text-center", children: /* @__PURE__ */ s("p", { className: "text-gray-500 text-sm", children: "Click the button below to start a connection" }) }),
1244
+ /* @__PURE__ */ m("div", { className: "flex items-center", children: [
1245
+ /* @__PURE__ */ s(
1246
+ me,
1247
+ {
1248
+ type: "button",
1249
+ onClick: t,
1250
+ className: "z-10 px-6 py-3",
1251
+ $variant: "primary",
1252
+ $size: "lg",
1253
+ children: "Generate QR"
1254
+ }
1255
+ ),
1256
+ /* @__PURE__ */ s(
1257
+ me,
1258
+ {
1259
+ type: "button",
1260
+ "aria-label": "Connection settings",
1261
+ "aria-pressed": !1,
1262
+ onClick: e,
1263
+ className: "-ml-1 rounded-l-none px-3",
1264
+ $aspect: "square",
1265
+ $size: "lg",
1266
+ $variant: "secondary",
1267
+ children: /* @__PURE__ */ s(An, { className: "h-5 w-5 text-gray-500" })
1268
+ }
1269
+ )
1270
+ ] })
1271
+ ] });
1272
+ }, Bn = async (e) => {
1273
+ if (!e) return !1;
1274
+ try {
1275
+ if (navigator?.clipboard?.writeText)
1276
+ return await navigator.clipboard.writeText(e), !0;
1277
+ } catch {
1278
+ }
1279
+ try {
1280
+ const t = document.createElement("textarea");
1281
+ t.value = e, t.style.position = "fixed", t.style.left = "-999999px", t.style.top = "-999999px", document.body.appendChild(t), t.focus(), t.select();
1282
+ const r = document.execCommand("copy");
1283
+ return document.body.removeChild(t), r;
1284
+ } catch {
1285
+ return !1;
1286
+ }
1287
+ }, _t = (e, { duration: t = 200 } = {}) => {
1288
+ const [r, n] = O(e), [i, o] = O(null), a = L(), l = L(e);
1289
+ return z(() => {
1290
+ if (!Object.is(e, l.current))
1291
+ return a.current && window.clearTimeout(a.current), o(l.current), n(e), l.current = e, a.current = window.setTimeout(() => {
1292
+ o(null), a.current = void 0;
1293
+ }, t), () => {
1294
+ a.current && window.clearTimeout(a.current);
1295
+ };
1296
+ }, [e, t]), {
1297
+ current: r,
1298
+ previous: i,
1299
+ isTransitioning: i !== null
1300
+ };
1301
+ }, Fn = "data:image/webp;base64,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", In = () => {
1302
+ const { status: e } = be(), { status: t } = de(), r = D(t).with("disconnected", () => {
1303
+ }).with(
1304
+ tt.union("connected", "connecting", "error"),
1305
+ () => D(e).with({ status: "disconnected" }, () => ({
1306
+ icon: "🫲",
1307
+ text: "Disconnected"
1308
+ })).with(
1309
+ { status: "signaling" },
1310
+ (n) => D(n.signaling).with({ state: "handshake-open" }, () => ({
1311
+ icon: "👋",
1312
+ text: "Handshake Open"
1313
+ })).with({ state: "handshake-closed" }, () => ({
1314
+ icon: "🤝",
1315
+ text: "Handshake Closed"
1316
+ })).otherwise(() => ({
1317
+ icon: "❓",
1318
+ text: "Unknown " + n.signaling?.state
1319
+ }))
1320
+ ).otherwise((n) => ({
1321
+ icon: "❓",
1322
+ text: "Unknown " + JSON.stringify(n)
1323
+ }))
1324
+ ).otherwise(() => ({
1325
+ icon: "❓",
1326
+ text: "Unknown provider status " + JSON.stringify(t)
1327
+ }));
1328
+ return r ? /* @__PURE__ */ m("div", { className: "group flex items-center gap-2 rounded-md px-2 py-2 hover:bg-neutral-200", children: [
1329
+ /* @__PURE__ */ s("div", { className: "text-gray-900 text-xs opacity-0 transition-opacity duration-300 group-hover:opacity-100", children: r.text }),
1330
+ /* @__PURE__ */ s("div", { children: r.icon })
1331
+ ] }) : /* @__PURE__ */ s(Nt, {});
1332
+ }, Wn = () => /* @__PURE__ */ m(Nt, { children: [
1333
+ /* @__PURE__ */ s("div", { className: "h-11 w-full" }),
1334
+ /* @__PURE__ */ m("div", { className: "absolute inset-x-0 bottom-0 flex items-end justify-between gap-2 px-3 py-2 text-gray-500", children: [
1335
+ /* @__PURE__ */ m(
1336
+ "a",
1337
+ {
1338
+ href: "https://github.com/v3xlabs/open-lavatory",
1339
+ target: "_blank",
1340
+ rel: "noreferrer",
1341
+ className: "flex items-center gap-2 p-1 font-semibold text-gray-500 text-sm",
1342
+ children: [
1343
+ /* @__PURE__ */ s(
1344
+ "img",
1345
+ {
1346
+ src: Fn,
1347
+ alt: "Open Lavatory Logo",
1348
+ width: 20,
1349
+ height: 20,
1350
+ className: "rounded"
1351
+ }
1352
+ ),
1353
+ /* @__PURE__ */ s("span", { children: "openlv" })
1354
+ ]
1355
+ }
1356
+ ),
1357
+ /* @__PURE__ */ s("div", { className: "text-gray-500 text-sm", children: /* @__PURE__ */ s(In, {}) })
1358
+ ] })
1359
+ ] });
1360
+ function Hn(e) {
1361
+ return Pe({ attr: { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }, child: [{ tag: "path", attr: { d: "m15 18-6-6 6-6" }, child: [] }] })(e);
1362
+ }
1363
+ function tr(e) {
1364
+ return Pe({ attr: { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }, child: [{ tag: "circle", attr: { cx: "12", cy: "12", r: "10" }, child: [] }, { tag: "path", attr: { d: "M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3" }, child: [] }, { tag: "path", attr: { d: "M12 17h.01" }, child: [] }] })(e);
1365
+ }
1366
+ function Un(e) {
1367
+ return Pe({ attr: { viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }, child: [{ tag: "path", attr: { d: "M18 6 6 18" }, child: [] }, { tag: "path", attr: { d: "m6 6 12 12" }, child: [] }] })(e);
1368
+ }
1369
+ const Kn = ({
1370
+ title: e,
1371
+ view: t,
1372
+ onClose: r,
1373
+ onBack: n
1374
+ }) => /* @__PURE__ */ m("div", { className: "flex items-center justify-between px-2 py-2", children: [
1375
+ n ? /* @__PURE__ */ s(
1376
+ me,
1377
+ {
1378
+ onClick: n,
1379
+ "aria-label": t === "settings" ? "Back to QR" : "Close modal",
1380
+ $variant: "tertiary",
1381
+ $aspect: "square",
1382
+ $size: "md",
1383
+ children: /* @__PURE__ */ s(Hn, { className: "h-6 w-6 text-gray-500" })
1384
+ }
1385
+ ) : /* @__PURE__ */ s(
1386
+ me,
1387
+ {
1388
+ type: "button",
1389
+ href: "https://openlv.sh",
1390
+ target: "_blank",
1391
+ $variant: "tertiary",
1392
+ $aspect: "square",
1393
+ $size: "md",
1394
+ children: /* @__PURE__ */ s(tr, { className: "h-5 w-5" })
1395
+ }
1396
+ ),
1397
+ /* @__PURE__ */ s("h2", { className: "flex items-center justify-center gap-2 font-semibold text-gray-900 text-lg", children: e }),
1398
+ /* @__PURE__ */ s(
1399
+ me,
1400
+ {
1401
+ type: "button",
1402
+ "aria-label": "close",
1403
+ "aria-pressed": !1,
1404
+ onClick: r,
1405
+ $variant: "tertiary",
1406
+ $aspect: "square",
1407
+ $size: "md",
1408
+ children: /* @__PURE__ */ s(Un, { className: "h-6 w-6 text-gray-500" })
1409
+ }
1410
+ )
1411
+ ] }), Jn = er({
1412
+ slots: {
1413
+ root: "group relative",
1414
+ box: "cursor-pointer rounded-md transition-colors hover:bg-neutral-200 flex items-center justify-center",
1415
+ popover: "-translate-x-1/2 absolute top-full left-1/2 z-10 hidden rounded-md bg-neutral-100 p-2 shadow-sm group-hover:block",
1416
+ icon: ""
1417
+ },
1418
+ variants: {
1419
+ size: {
1420
+ sm: {
1421
+ box: "h-5 w-5 p-1",
1422
+ icon: "h-3 w-3"
1423
+ },
1424
+ md: {
1425
+ box: "h-6 w-6 p-1",
1426
+ icon: "h-4 w-4"
1427
+ },
1428
+ lg: {
1429
+ box: "h-8 w-8 p-1.5",
1430
+ icon: "h-4 w-4"
1431
+ }
1432
+ },
1433
+ variant: {
1434
+ icon: "",
1435
+ text: ""
1436
+ }
1437
+ },
1438
+ defaultVariants: {
1439
+ size: "lg"
1440
+ }
1441
+ }), ot = ({
1442
+ variant: e = "icon",
1443
+ children: t,
1444
+ size: r = "lg"
1445
+ }) => {
1446
+ const { root: n, box: i, popover: o, icon: a } = Jn({ size: r, variant: e });
1447
+ return /* @__PURE__ */ m("div", { className: n(), children: [
1448
+ /* @__PURE__ */ s("div", { className: i(), children: D(e).with("icon", () => /* @__PURE__ */ s(tr, { className: a() })).with("text", () => /* @__PURE__ */ s("div", { children: "Text" })).exhaustive() }),
1449
+ /* @__PURE__ */ s("div", { className: o(), children: t })
1450
+ ] });
1451
+ }, at = ({ title: e, right: t, children: r }) => /* @__PURE__ */ m("div", { children: [
1452
+ /* @__PURE__ */ m("div", { className: "flex items-end justify-between px-2 py-1", children: [
1453
+ /* @__PURE__ */ s("div", { className: "font-medium text-gray-900 text-sm", children: e }),
1454
+ /* @__PURE__ */ s("div", { children: t })
1455
+ ] }),
1456
+ /* @__PURE__ */ s("div", { className: "flex flex-col gap-1 rounded-md bg-[#F4F5F6] p-2", children: r })
1457
+ ] }), Re = ({ label: e, children: t }) => /* @__PURE__ */ m("div", { className: "flex items-baseline justify-between gap-2", children: [
1458
+ /* @__PURE__ */ s("div", { className: "pl-1 text-sm", children: e }),
1459
+ /* @__PURE__ */ s("div", { children: t })
1460
+ ] }), st = ({ options: e, value: t, onChange: r }) => /* @__PURE__ */ s("div", { className: "flex divide-x rounded-md border border-gray-300", children: e.map(([n, i]) => /* @__PURE__ */ s(
1461
+ "button",
1462
+ {
1463
+ type: "button",
1464
+ onClick: () => r(n),
1465
+ "aria-pressed": n === t,
1466
+ className: se(
1467
+ "px-4 py-2 font-semibold text-xs transition first:rounded-l-md last:rounded-r-md",
1468
+ n === t ? "border-blue-500 bg-blue-50 text-blue-600" : "cursor-pointer border-gray-300 text-gray-600 hover:border-gray-400"
1469
+ ),
1470
+ children: i
1471
+ },
1472
+ n
1473
+ )) }), Xn = ({ label: e, value: t, onChange: r }) => /* @__PURE__ */ s(
1474
+ st,
1475
+ {
1476
+ options: [
1477
+ ["true", "Yes"],
1478
+ ["false", "No"]
1479
+ ],
1480
+ value: t ? "true" : "false",
1481
+ onChange: (n) => r(n === "true")
1482
+ }
1483
+ ), Qn = () => {
1484
+ const { settings: e, updateSettings: t } = nt();
1485
+ return /* @__PURE__ */ s(
1486
+ at,
1487
+ {
1488
+ title: "Connection preferences",
1489
+ right: /* @__PURE__ */ s(ot, { variant: "icon", children: "Something something very cool" }),
1490
+ children: [
1491
+ [
1492
+ "Retain session history",
1493
+ "retainHistory",
1494
+ e?.retainHistory ?? !1,
1495
+ (r) => t({ retainHistory: r })
1496
+ ],
1497
+ [
1498
+ "Auto reconnect",
1499
+ "autoReconnect",
1500
+ e?.autoReconnect ?? !1,
1501
+ (r) => t({ autoReconnect: r })
1502
+ ]
1503
+ ].map(([r, n, i, o]) => /* @__PURE__ */ s(Re, { label: r, children: /* @__PURE__ */ s(Xn, { label: r, value: i, onChange: o }) }, n))
1504
+ }
1505
+ );
1506
+ }, Gn = "h-9 w-full rounded-lg border border-gray-300 bg-white px-3 text-sm text-gray-700 focus:border-blue-500 focus:outline-none focus:ring-2 focus:ring-blue-200", Zn = ({
1507
+ // eslint-disable-next-line no-restricted-syntax
1508
+ id: e,
1509
+ value: t,
1510
+ placeholder: r,
1511
+ ariaLabel: n,
1512
+ readOnly: i = !0,
1513
+ onChange: o
1514
+ }) => /* @__PURE__ */ s(
1515
+ "input",
1516
+ {
1517
+ id: e,
1518
+ className: Gn,
1519
+ value: t,
1520
+ placeholder: r,
1521
+ "aria-label": n,
1522
+ readOnly: i,
1523
+ onChange: (a) => {
1524
+ a.target instanceof HTMLInputElement && o?.(a.target.value);
1525
+ }
1526
+ }
1527
+ ), qn = ["MQTT", "NTFY", "GUN"], Yn = () => {
1528
+ const { settings: e, updateSignalingProtocol: t, updateSignalingServer: r } = nt();
1529
+ return /* @__PURE__ */ s("div", { children: /* @__PURE__ */ m(
1530
+ at,
1531
+ {
1532
+ title: "Signaling",
1533
+ right: /* @__PURE__ */ s(ot, { variant: "icon", children: "Something something very cool" }),
1534
+ children: [
1535
+ /* @__PURE__ */ s(Re, { label: "Protocol", children: /* @__PURE__ */ s(
1536
+ st,
1537
+ {
1538
+ options: qn.map((n) => [
1539
+ n.toLowerCase(),
1540
+ n
1541
+ ]),
1542
+ value: e?.signaling.p || "",
1543
+ onChange: t
1544
+ }
1545
+ ) }),
1546
+ /* @__PURE__ */ s(Re, { label: "Server", children: /* @__PURE__ */ s(
1547
+ Zn,
1548
+ {
1549
+ id: "server",
1550
+ value: e?.signaling.s[e?.signaling.p || ""] || "",
1551
+ onChange: (n) => r(n),
1552
+ placeholder: "Server URL",
1553
+ ariaLabel: "Server URL",
1554
+ readOnly: !1
1555
+ }
1556
+ ) })
1557
+ ]
1558
+ }
1559
+ ) });
1560
+ }, $n = ["WebRTC"], ei = () => {
1561
+ const [e, t] = O("WebRTC");
1562
+ return /* @__PURE__ */ s(
1563
+ at,
1564
+ {
1565
+ title: "Transport",
1566
+ right: /* @__PURE__ */ s(ot, { variant: "icon", children: "Something something very cool" }),
1567
+ children: /* @__PURE__ */ s(Re, { label: "Protocol", children: /* @__PURE__ */ s(
1568
+ st,
1569
+ {
1570
+ options: $n.map((r) => [r, r]),
1571
+ value: e,
1572
+ onChange: (r) => t(r)
1573
+ }
1574
+ ) })
1575
+ }
1576
+ );
1577
+ }, ti = () => /* @__PURE__ */ m("div", { className: "px-4 pb-2", children: [
1578
+ /* @__PURE__ */ s(Yn, {}),
1579
+ /* @__PURE__ */ s(ei, {}),
1580
+ /* @__PURE__ */ s(Qn, {})
1581
+ ] }), ri = () => {
1582
+ const [e, t] = O("start"), [r, n] = O(!1);
1583
+ return z(() => {
1584
+ if (!r) return;
1585
+ const i = window.setTimeout(() => n(!1), 2e3);
1586
+ return () => window.clearTimeout(i);
1587
+ }, [r]), {
1588
+ view: e,
1589
+ setView: t,
1590
+ copied: r,
1591
+ setCopied: n
1592
+ };
1593
+ }, ni = (e) => {
1594
+ z(() => {
1595
+ const t = (r) => {
1596
+ r.key === "Escape" && e();
1597
+ };
1598
+ return document.addEventListener("keydown", t), () => document.removeEventListener("keydown", t);
1599
+ }, [e]);
1600
+ }, ii = () => {
1601
+ const e = L(null), [t, r] = O(0), n = L(!1), i = I(
1602
+ (o, a = !1) => {
1603
+ const l = o || e.current;
1604
+ if (!l) return;
1605
+ const c = a ? l.scrollHeight : l.getBoundingClientRect().height;
1606
+ c > 0 && (r(
1607
+ (g) => typeof g == "number" && Math.abs(g - c) < 0.5 ? g : c
1608
+ ), n.current = !0);
1609
+ },
1610
+ []
1611
+ );
1612
+ return ue(() => {
1613
+ const o = e.current;
1614
+ if (!o || typeof ResizeObserver > "u") return;
1615
+ const a = new ResizeObserver(() => {
1616
+ i();
1617
+ });
1618
+ return a.observe(o), () => a.disconnect();
1619
+ }, [i]), z(() => {
1620
+ if (typeof window > "u") return;
1621
+ const o = () => {
1622
+ i();
1623
+ };
1624
+ return window.addEventListener("resize", o), () => window.removeEventListener("resize", o);
1625
+ }, [i]), {
1626
+ contentRef: e,
1627
+ height: t,
1628
+ measureHeight: i,
1629
+ setHeight: r
1630
+ };
1631
+ }, oi = ({ onClose: e = () => {
1632
+ }, onCopy: t }) => {
1633
+ const { view: r, setView: n, copied: i, setCopied: o } = ri(), { uri: a } = be(), { status: l, provider: c } = de(), { contentRef: g, height: v, measureHeight: W } = ii(), {
1634
+ current: S,
1635
+ previous: ne,
1636
+ isTransitioning: ie
1637
+ } = _t(r), {
1638
+ current: oe,
1639
+ previous: H,
1640
+ isTransitioning: J
1641
+ } = _t(l), V = I(() => n("settings"), [n]), xe = D(r).with("start", () => "Connect Wallet").with("settings", () => "Settings").exhaustive();
1642
+ ni(e);
1643
+ const M = I(async () => {
1644
+ a && await Bn(a) && o(!0);
1645
+ }, [a, o]), ke = L(!0), X = L(), te = L(void 0), [ze, pe] = O(!1), U = L();
1646
+ ue(() => {
1647
+ if (g.current)
1648
+ return ke.current ? (X.current && window.clearTimeout(X.current), X.current = window.setTimeout(() => {
1649
+ g.current && (W(void 0, !0), ke.current = !1);
1650
+ }, 0)) : W(), () => {
1651
+ X.current && window.clearTimeout(X.current);
1652
+ };
1653
+ }, [W, oe, S]), z(() => (te.current !== void 0 && v !== te.current && v > 0 && te.current > 0 && Math.abs(v - te.current) > 0.5 && (pe(!0), U.current && window.clearTimeout(U.current), U.current = window.setTimeout(() => {
1654
+ pe(!1), U.current = void 0;
1655
+ }, 200)), te.current = v, () => {
1656
+ U.current && window.clearTimeout(U.current);
1657
+ }), [v]);
1658
+ const fe = () => {
1659
+ c?.closeSession();
1660
+ }, Ve = D({ view: r, status: l }).with({ view: "start", status: "disconnected" }, () => {
1661
+ }).with({ view: "start" }, () => fe).with({ view: "settings" }, () => () => n("start")).otherwise(() => () => {
1662
+ fe(), e();
1663
+ }), _e = (u) => D(u).with("start", () => /* @__PURE__ */ s(Dn, { onSettings: V })).with("settings", () => /* @__PURE__ */ s(ti, {})).otherwise(() => /* @__PURE__ */ s(Ue, { state: u })), p = () => /* @__PURE__ */ m("div", { className: "modal-transition__container", children: [
1664
+ ne && /* @__PURE__ */ s("div", { className: "modal-transition__layer modal-transition__layer--outgoing", children: _e(ne) }),
1665
+ /* @__PURE__ */ s(
1666
+ "div",
1667
+ {
1668
+ className: se(
1669
+ "modal-transition__layer",
1670
+ ie && "modal-transition__layer--incoming"
1671
+ ),
1672
+ children: _e(S)
1673
+ }
1674
+ )
1675
+ ] }), d = (u) => D(u).with("disconnected", () => p()).with(tt.union("connecting", "connected"), () => /* @__PURE__ */ s(Ir, { onClose: e, onCopy: t || M })).otherwise((y) => /* @__PURE__ */ s(Ue, { state: y || "unknown status" }));
1676
+ return Ae("view", r), /* @__PURE__ */ s(
1677
+ "div",
1678
+ {
1679
+ className: "fixed inset-0 z-[10000] flex animate-[bg-in_0.15s_ease-in-out] items-end justify-center bg-black/30 font-sans text-slate-800 backdrop-blur-sm md:items-center lg:p-4",
1680
+ onClick: e,
1681
+ role: "presentation",
1682
+ "data-openlv-modal-root": !0,
1683
+ children: /* @__PURE__ */ m(
1684
+ "div",
1685
+ {
1686
+ className: se(
1687
+ "relative w-full max-w-[400px] animate-[fade-in_0.15s_ease-in-out] rounded-t-radius bg-body-background transition-[height] duration-[200ms] ease-out md:rounded-b-radius",
1688
+ ze || H ? "overflow-hidden" : void 0
1689
+ ),
1690
+ role: "dialog",
1691
+ "aria-modal": "true",
1692
+ "aria-label": xe,
1693
+ onClick: (u) => u.stopPropagation(),
1694
+ style: typeof v == "number" && v > 0 ? { height: `${v}px` } : void 0,
1695
+ children: [
1696
+ /* @__PURE__ */ m("div", { ref: g, children: [
1697
+ /* @__PURE__ */ s(
1698
+ Kn,
1699
+ {
1700
+ title: xe,
1701
+ view: r,
1702
+ onClose: e,
1703
+ onBack: Ve
1704
+ }
1705
+ ),
1706
+ /* @__PURE__ */ m("div", { className: "modal-transition__container", children: [
1707
+ H && /* @__PURE__ */ s("div", { className: "modal-transition__layer modal-transition__layer--outgoing absolute", children: /* @__PURE__ */ s("div", { className: "flex flex-col text-center", children: d(H) }) }),
1708
+ /* @__PURE__ */ s(
1709
+ "div",
1710
+ {
1711
+ className: se(
1712
+ "modal-transition__layer",
1713
+ J && "modal-transition__layer--incoming"
1714
+ ),
1715
+ children: /* @__PURE__ */ s("div", { className: "flex flex-col text-center", children: d(oe) })
1716
+ }
1717
+ )
1718
+ ] }),
1719
+ /* @__PURE__ */ s(Wn, {})
1720
+ ] }),
1721
+ /* @__PURE__ */ s(
1722
+ "div",
1723
+ {
1724
+ className: se(
1725
+ "absolute top-5 right-5 rounded-lg bg-blue-500 px-4 py-3 font-medium text-sm text-white transition-all",
1726
+ i ? "translate-x-0 opacity-100" : "translate-x-full opacity-0"
1727
+ ),
1728
+ children: "📋 Connection URL copied to clipboard!"
1729
+ }
1730
+ )
1731
+ ]
1732
+ }
1733
+ )
1734
+ }
1735
+ );
1736
+ }, St = '/*! tailwindcss v4.1.16 | MIT License | https://tailwindcss.com */@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x:0;--tw-translate-y:0;--tw-translate-z:0;--tw-space-y-reverse:0;--tw-space-x-reverse:0;--tw-divide-x-reverse:0;--tw-border-style:solid;--tw-font-weight:initial;--tw-tracking:initial;--tw-shadow:0 0 #0000;--tw-shadow-color:initial;--tw-shadow-alpha:100%;--tw-inset-shadow:0 0 #0000;--tw-inset-shadow-color:initial;--tw-inset-shadow-alpha:100%;--tw-ring-color:initial;--tw-ring-shadow:0 0 #0000;--tw-inset-ring-color:initial;--tw-inset-ring-shadow:0 0 #0000;--tw-ring-inset:initial;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-offset-shadow:0 0 #0000;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial;--tw-backdrop-blur:initial;--tw-backdrop-brightness:initial;--tw-backdrop-contrast:initial;--tw-backdrop-grayscale:initial;--tw-backdrop-hue-rotate:initial;--tw-backdrop-invert:initial;--tw-backdrop-opacity:initial;--tw-backdrop-saturate:initial;--tw-backdrop-sepia:initial;--tw-duration:initial;--tw-ease:initial;--tw-scale-x:1;--tw-scale-y:1;--tw-scale-z:1}}}@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--color-blue-50:oklch(97% .014 254.604);--color-blue-200:oklch(88.2% .059 254.128);--color-blue-500:oklch(62.3% .214 259.815);--color-blue-600:oklch(54.6% .245 262.881);--color-slate-800:oklch(27.9% .041 260.031);--color-gray-50:oklch(98.5% .002 247.839);--color-gray-100:oklch(96.7% .003 264.542);--color-gray-200:oklch(92.8% .006 264.531);--color-gray-300:oklch(87.2% .01 258.338);--color-gray-400:oklch(70.7% .022 261.325);--color-gray-500:oklch(55.1% .027 264.364);--color-gray-600:oklch(44.6% .03 256.802);--color-gray-700:oklch(37.3% .034 259.733);--color-gray-900:oklch(21% .034 264.665);--color-neutral-100:oklch(97% 0 0);--color-neutral-200:oklch(92.2% 0 0);--color-black:#000;--color-white:#fff;--spacing:.25rem;--text-xs:.75rem;--text-xs--line-height:calc(1/.75);--text-sm:.875rem;--text-sm--line-height:calc(1.25/.875);--text-lg:1.125rem;--text-lg--line-height:calc(1.75/1.125);--text-4xl:2.25rem;--text-4xl--line-height:calc(2.5/2.25);--font-weight-medium:500;--font-weight-semibold:600;--tracking-wide:.025em;--radius-sm:.25rem;--radius-md:.375rem;--radius-lg:.5rem;--ease-out:cubic-bezier(0,0,.2,1);--animate-spin:spin 1s linear infinite;--blur-sm:8px;--default-transition-duration:.15s;--default-transition-timing-function:cubic-bezier(.4,0,.2,1);--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono);--color-body-background:var(--lv-body-background);--radius-radius:var(--lv-border-radius)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab,red,red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.inset-0{inset:calc(var(--spacing)*0)}.inset-x-0{inset-inline:calc(var(--spacing)*0)}.top-5{top:calc(var(--spacing)*5)}.top-full{top:100%}.right-5{right:calc(var(--spacing)*5)}.bottom-0{bottom:calc(var(--spacing)*0)}.left-1\\/2{left:50%}.z-10{z-index:10}.z-\\[10000\\]{z-index:10000}.mx-auto{margin-inline:auto}.mb-2{margin-bottom:calc(var(--spacing)*2)}.mb-4{margin-bottom:calc(var(--spacing)*4)}.-ml-1{margin-left:calc(var(--spacing)*-1)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.aspect-square{aspect-ratio:1}.h-1\\.5{height:calc(var(--spacing)*1.5)}.h-3{height:calc(var(--spacing)*3)}.h-4{height:calc(var(--spacing)*4)}.h-5{height:calc(var(--spacing)*5)}.h-6{height:calc(var(--spacing)*6)}.h-8{height:calc(var(--spacing)*8)}.h-9{height:calc(var(--spacing)*9)}.h-11{height:calc(var(--spacing)*11)}.h-18{height:calc(var(--spacing)*18)}.h-38{height:calc(var(--spacing)*38)}.h-\\[200px\\]{height:200px}.h-full{height:100%}.w-1\\.5{width:calc(var(--spacing)*1.5)}.w-3{width:calc(var(--spacing)*3)}.w-4{width:calc(var(--spacing)*4)}.w-5{width:calc(var(--spacing)*5)}.w-6{width:calc(var(--spacing)*6)}.w-8{width:calc(var(--spacing)*8)}.w-12{width:calc(var(--spacing)*12)}.w-48{width:calc(var(--spacing)*48)}.w-\\[200px\\]{width:200px}.w-fit{width:fit-content}.w-full{width:100%}.max-w-\\[400px\\]{max-width:400px}.grow{flex-grow:1}.-translate-x-1\\/2{--tw-translate-x: -50% ;translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-0{--tw-translate-x:calc(var(--spacing)*0);translate:var(--tw-translate-x)var(--tw-translate-y)}.translate-x-full{--tw-translate-x:100%;translate:var(--tw-translate-x)var(--tw-translate-y)}.animate-\\[bg-in_0\\.15s_ease-in-out\\]{animation:.15s ease-in-out bg-in}.animate-\\[fade-in_0\\.15s_ease-in-out\\]{animation:.15s ease-in-out fade-in}.animate-spin{animation:var(--animate-spin)}.cursor-pointer{cursor:pointer}.resize{resize:both}.flex-col{flex-direction:column}.items-baseline{align-items:baseline}.items-center{align-items:center}.items-end{align-items:flex-end}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.gap-0\\.5{gap:calc(var(--spacing)*.5)}.gap-1{gap:calc(var(--spacing)*1)}.gap-2{gap:calc(var(--spacing)*2)}.gap-4{gap:calc(var(--spacing)*4)}:where(.space-y-4>:not(:last-child)){--tw-space-y-reverse:0;margin-block-start:calc(calc(var(--spacing)*4)*var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing)*4)*calc(1 - var(--tw-space-y-reverse)))}:where(.-space-x-4>:not(:last-child)){--tw-space-x-reverse:0;margin-inline-start:calc(calc(var(--spacing)*-4)*var(--tw-space-x-reverse));margin-inline-end:calc(calc(var(--spacing)*-4)*calc(1 - var(--tw-space-x-reverse)))}:where(.divide-x>:not(:last-child)){--tw-divide-x-reverse:0;border-inline-style:var(--tw-border-style);border-inline-start-width:calc(1px*var(--tw-divide-x-reverse));border-inline-end-width:calc(1px*calc(1 - var(--tw-divide-x-reverse)))}.overflow-hidden{overflow:hidden}.rounded{border-radius:.25rem}.rounded-full{border-radius:3.40282e38px}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.rounded-t-radius{border-top-left-radius:var(--radius-radius);border-top-right-radius:var(--radius-radius)}.rounded-l-none{border-top-left-radius:0;border-bottom-left-radius:0}.rounded-r-lg{border-top-right-radius:var(--radius-lg);border-bottom-right-radius:var(--radius-lg)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-4{border-style:var(--tw-border-style);border-width:4px}.border-blue-500{border-color:var(--color-blue-500)}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-gray-400{border-color:var(--color-gray-400)}.border-gray-500{border-color:var(--color-gray-500)}.border-neutral-200{border-color:var(--color-neutral-200)}.border-t-transparent{border-top-color:#0000}.bg-\\[\\#F4F5F6\\]{background-color:#f4f5f6}.bg-black\\/30{background-color:#0000004d}@supports (color:color-mix(in lab,red,red)){.bg-black\\/30{background-color:color-mix(in oklab,var(--color-black)30%,transparent)}}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-500{background-color:var(--color-blue-500)}.bg-body-background{background-color:var(--color-body-background)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-gray-300{background-color:var(--color-gray-300)}.bg-gray-400{background-color:var(--color-gray-400)}.bg-neutral-100{background-color:var(--color-neutral-100)}.bg-white{background-color:var(--color-white)}.p-1{padding:calc(var(--spacing)*1)}.p-1\\.5{padding:calc(var(--spacing)*1.5)}.p-2{padding:calc(var(--spacing)*2)}.p-4{padding:calc(var(--spacing)*4)}.p-6{padding:calc(var(--spacing)*6)}.px-1{padding-inline:calc(var(--spacing)*1)}.px-2{padding-inline:calc(var(--spacing)*2)}.px-3{padding-inline:calc(var(--spacing)*3)}.px-4{padding-inline:calc(var(--spacing)*4)}.px-6{padding-inline:calc(var(--spacing)*6)}.py-1{padding-block:calc(var(--spacing)*1)}.py-2{padding-block:calc(var(--spacing)*2)}.py-3{padding-block:calc(var(--spacing)*3)}.pt-1{padding-top:calc(var(--spacing)*1)}.pr-0\\.5{padding-right:calc(var(--spacing)*.5)}.pr-3{padding-right:calc(var(--spacing)*3)}.pb-0\\.5{padding-bottom:calc(var(--spacing)*.5)}.pb-2{padding-bottom:calc(var(--spacing)*2)}.pl-1{padding-left:calc(var(--spacing)*1)}.pl-4{padding-left:calc(var(--spacing)*4)}.text-center{text-align:center}.font-sans{font-family:var(--font-sans)}.text-4xl{font-size:var(--text-4xl);line-height:var(--tw-leading,var(--text-4xl--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading,var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading,var(--text-sm--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading,var(--text-xs--line-height))}.font-medium{--tw-font-weight:var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight:var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-wide{--tw-tracking:var(--tracking-wide);letter-spacing:var(--tracking-wide)}.text-blue-600{color:var(--color-blue-600)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-900{color:var(--color-gray-900)}.text-slate-800{color:var(--color-slate-800)}.text-white{color:var(--color-white)}.uppercase{text-transform:uppercase}.opacity-0{opacity:0}.opacity-100{opacity:1}.shadow,.shadow-sm{--tw-shadow:0 1px 3px 0 var(--tw-shadow-color,#0000001a),0 1px 2px -1px var(--tw-shadow-color,#0000001a);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.filter{filter:var(--tw-blur,)var(--tw-brightness,)var(--tw-contrast,)var(--tw-grayscale,)var(--tw-hue-rotate,)var(--tw-invert,)var(--tw-saturate,)var(--tw-sepia,)var(--tw-drop-shadow,)}.backdrop-blur-sm{--tw-backdrop-blur:blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,)var(--tw-backdrop-brightness,)var(--tw-backdrop-contrast,)var(--tw-backdrop-grayscale,)var(--tw-backdrop-hue-rotate,)var(--tw-backdrop-invert,)var(--tw-backdrop-opacity,)var(--tw-backdrop-saturate,)var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-\\[height\\]{transition-property:height;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease,var(--default-transition-timing-function));transition-duration:var(--tw-duration,var(--default-transition-duration))}.duration-300{--tw-duration:.3s;transition-duration:.3s}.duration-\\[200ms\\]{--tw-duration:.2s;transition-duration:.2s}.ease-out{--tw-ease:var(--ease-out);transition-timing-function:var(--ease-out)}@media (hover:hover){.group-hover\\:block:is(:where(.group):hover *){display:block}.group-hover\\:opacity-100:is(:where(.group):hover *){opacity:1}}.first\\:rounded-l-md:first-child{border-top-left-radius:var(--radius-md);border-bottom-left-radius:var(--radius-md)}.last\\:rounded-r-md:last-child{border-top-right-radius:var(--radius-md);border-bottom-right-radius:var(--radius-md)}@media (hover:hover){.hover\\:border-gray-400:hover{border-color:var(--color-gray-400)}.hover\\:bg-blue-600:hover{background-color:var(--color-blue-600)}.hover\\:bg-gray-200:hover{background-color:var(--color-gray-200)}.hover\\:bg-gray-300:hover{background-color:var(--color-gray-300)}.hover\\:bg-neutral-200:hover{background-color:var(--color-neutral-200)}.hover\\:text-gray-700:hover{color:var(--color-gray-700)}}.focus\\:border-blue-500:focus{border-color:var(--color-blue-500)}.focus\\:ring-2:focus{--tw-ring-shadow:var(--tw-ring-inset,)0 0 0 calc(2px + var(--tw-ring-offset-width))var(--tw-ring-color,currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.focus\\:ring-blue-200:focus{--tw-ring-color:var(--color-blue-200)}.focus\\:outline-none:focus{--tw-outline-style:none;outline-style:none}.active\\:scale-95:active{--tw-scale-x:95%;--tw-scale-y:95%;--tw-scale-z:95%;scale:var(--tw-scale-x)var(--tw-scale-y)}@media (min-width:48rem){.md\\:items-center{align-items:center}.md\\:rounded-b-radius{border-bottom-right-radius:var(--radius-radius);border-bottom-left-radius:var(--radius-radius)}}@media (min-width:64rem){.lg\\:p-4{padding:calc(var(--spacing)*4)}}}@keyframes fade-in{0%{transform:translateY(-2px)scale(.95)}to{transform:translateY(0)scale(1)}}@keyframes bg-in{0%{opacity:0;-webkit-backdrop-filter:blur();backdrop-filter:blur()}to{opacity:1;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}}.modal-transition__container{display:grid;position:relative}.modal-transition__layer{will-change:transform,opacity;grid-area:1/1;width:100%}.modal-transition__layer--outgoing{z-index:2;animation:.2s ease-out forwards modal-transition-out;position:absolute}.modal-transition__layer--incoming{animation:.2s ease-out forwards modal-transition-in}@keyframes modal-transition-in{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes modal-transition-out{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.05)}}@property --tw-translate-x{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-y{syntax:"*";inherits:false;initial-value:0}@property --tw-translate-z{syntax:"*";inherits:false;initial-value:0}@property --tw-space-y-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-space-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-divide-x-reverse{syntax:"*";inherits:false;initial-value:0}@property --tw-border-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-font-weight{syntax:"*";inherits:false}@property --tw-tracking{syntax:"*";inherits:false}@property --tw-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-shadow-color{syntax:"*";inherits:false}@property --tw-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-inset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-shadow-color{syntax:"*";inherits:false}@property --tw-inset-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-ring-color{syntax:"*";inherits:false}@property --tw-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-inset-ring-color{syntax:"*";inherits:false}@property --tw-inset-ring-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-ring-inset{syntax:"*";inherits:false}@property --tw-ring-offset-width{syntax:"<length>";inherits:false;initial-value:0}@property --tw-ring-offset-color{syntax:"*";inherits:false;initial-value:#fff}@property --tw-ring-offset-shadow{syntax:"*";inherits:false;initial-value:0 0 #0000}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}@property --tw-backdrop-blur{syntax:"*";inherits:false}@property --tw-backdrop-brightness{syntax:"*";inherits:false}@property --tw-backdrop-contrast{syntax:"*";inherits:false}@property --tw-backdrop-grayscale{syntax:"*";inherits:false}@property --tw-backdrop-hue-rotate{syntax:"*";inherits:false}@property --tw-backdrop-invert{syntax:"*";inherits:false}@property --tw-backdrop-opacity{syntax:"*";inherits:false}@property --tw-backdrop-saturate{syntax:"*";inherits:false}@property --tw-backdrop-sepia{syntax:"*";inherits:false}@property --tw-duration{syntax:"*";inherits:false}@property --tw-ease{syntax:"*";inherits:false}@property --tw-scale-x{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-y{syntax:"*";inherits:false;initial-value:1}@property --tw-scale-z{syntax:"*";inherits:false;initial-value:1}@keyframes spin{to{transform:rotate(360deg)}}', ai = async (e, t) => {
1737
+ if (e) {
1738
+ if (e.querySelector("style[data-openlv-modal]"))
1739
+ return;
1740
+ const n = document.createElement("style");
1741
+ if (n.setAttribute("data-openlv-modal", "true"), t) {
1742
+ const i = Lt(t), o = `:root, :host {${Object.entries(i).map(([a, l]) => `${a}: ${l};`).join(`
1743
+ `)}}`;
1744
+ n.textContent = `${o}
1745
+ ${St}`;
1746
+ } else
1747
+ n.textContent = St;
1748
+ e.appendChild(n);
1749
+ }
1750
+ };
1751
+ class rr extends HTMLElement {
1752
+ constructor(r, n = rt) {
1753
+ super();
1754
+ ae(this, "onClose");
1755
+ ae(this, "provider");
1756
+ ae(this, "theme");
1757
+ ae(this, "shadow");
1758
+ ae(this, "renderRequested", !1);
1759
+ this.provider = r, this.theme = n, this.shadow = this.attachShadow({ mode: "open" }), ai(this.shadow, this.theme);
1760
+ }
1761
+ connectedCallback() {
1762
+ this.requestRender();
1763
+ }
1764
+ disconnectedCallback() {
1765
+ ce(null, this.shadow);
1766
+ }
1767
+ showModal() {
1768
+ this.style.display = "block";
1769
+ }
1770
+ hideModal() {
1771
+ this.style.display = "none";
1772
+ }
1773
+ requestRender() {
1774
+ this.renderRequested || (this.renderRequested = !0, queueMicrotask(() => {
1775
+ this.renderRequested = !1, this.performRender();
1776
+ }));
1777
+ }
1778
+ performRender() {
1779
+ ce(
1780
+ cr(Tr, {
1781
+ onClose: this.onClose ?? (() => this.remove()),
1782
+ provider: this.provider
1783
+ }),
1784
+ this.shadow
1785
+ );
1786
+ }
1787
+ }
1788
+ const hi = (e = "idle") => {
1789
+ const [t, r] = O({
1790
+ state: e
1791
+ }), n = I(
1792
+ (a, l) => {
1793
+ r((c) => ({
1794
+ ...c,
1795
+ state: a,
1796
+ ...l
1797
+ }));
1798
+ },
1799
+ []
1800
+ ), i = I((a) => {
1801
+ r(a);
1802
+ }, []), o = I(() => {
1803
+ r({ state: "idle" });
1804
+ }, []);
1805
+ return {
1806
+ connectionInfo: t,
1807
+ updateState: n,
1808
+ updateConnectionInfo: i,
1809
+ reset: o
1810
+ };
1811
+ }, si = (e = "openlv-modal") => {
1812
+ if (typeof window > "u")
1813
+ return e;
1814
+ const t = window.customElements;
1815
+ return t ? (t.get(e) || t.define(
1816
+ e,
1817
+ rr
1818
+ ), e) : (console.warn(
1819
+ "OpenLV modal: custom elements are not supported in this environment."
1820
+ ), e);
1821
+ }, gi = (e) => {
1822
+ const t = document.querySelector("openlv-modal");
1823
+ if (t && t.remove(), !t) {
1824
+ si();
1825
+ const r = new rr(e);
1826
+ document.body.appendChild(r), r.showModal(), r.onClose = () => {
1827
+ Ae("modal closed"), r.remove();
1828
+ };
1829
+ }
1830
+ };
1831
+ export {
1832
+ oi as ModalRoot,
1833
+ Fn as OPENLV_ICON_128,
1834
+ rr as OpenLVModalElement,
1835
+ rr as default,
1836
+ si as registerOpenLVModal,
1837
+ gi as triggerOpenModal,
1838
+ hi as useConnectionState
1839
+ };
1840
+ //# sourceMappingURL=index.es.js.map