@ikonai/sdk-react-ui 1.11.0 → 1.11.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/auth/auth-service.d.ts +1 -1
- package/auth/storage.d.ts +1 -1
- package/auth/types.d.ts +3 -3
- package/base/base-div.d.ts.map +1 -1
- package/base/focus-hint-dispatch.d.ts +41 -0
- package/base/focus-hint-dispatch.d.ts.map +1 -0
- package/index.js +1320 -1118
- package/media/video-stream-view.d.ts +1 -0
- package/media/video-stream-view.d.ts.map +1 -1
- package/package.json +1 -1
- package/shared/render-motion-letters.d.ts.map +1 -1
package/index.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { n as e, t } from "./shadertoy-type-Cs2WeCWV.js";
|
|
2
2
|
import { IKON_PLATFORM_STREAM_CATEGORY as n, IKON_PLATFORM_STREAM_CATEGORY as r, IKON_UI_STREAM_CATEGORY as i, IKON_UI_STREAM_CATEGORY as a, IkonUiCore as o, LiveSnapshotCache as s, UiStreamStore as c, UiStreamStore as l, isPrerenderVisible as u, prefetchBootSnapshot as d, seedStreamCategory as f } from "@ikonai/sdk-ui";
|
|
3
|
-
import { AccessDeniedError as p, AppStartupFailedError as m, AuthenticationError as h, DEFAULT_LOCAL_SERVER_HOST as g, DEFAULT_LOCAL_SERVER_PORT as _, DEFAULT_SLOW_CONNECTION_THRESHOLD_MS as v, FEEDBACK_OPEN_FUNCTION_NAME as ee, IKON_CAPTURE_EXCLUDE_ATTRIBUTE as y, IKON_INSPECT_MODE_CHANGED_EVENT as b, IKON_INSPECT_OUTLINE_ATTRIBUTE as x, IKON_PARAM_OAUTH_CODE as
|
|
4
|
-
import { Fragment as
|
|
5
|
-
import { Fragment as
|
|
3
|
+
import { AccessDeniedError as p, AppStartupFailedError as m, AuthenticationError as h, DEFAULT_LOCAL_SERVER_HOST as g, DEFAULT_LOCAL_SERVER_PORT as _, DEFAULT_SLOW_CONNECTION_THRESHOLD_MS as v, FEEDBACK_OPEN_FUNCTION_NAME as ee, IKON_CAPTURE_EXCLUDE_ATTRIBUTE as y, IKON_INSPECT_MODE_CHANGED_EVENT as b, IKON_INSPECT_OUTLINE_ATTRIBUTE as x, IKON_PARAM_OAUTH_CODE as te, IKON_PARAM_OAUTH_PKCE as S, IKON_PARAM_OAUTH_PROVIDER as C, IKON_PARAM_OAUTH_TOKEN as w, IkonClient as ne, LogLevel as re, ProvisioningTimeoutError as ie, SSO_PROVIDER_PREFIX as T, ServerFullError as ae, ServerUnavailableError as oe, SessionNotFoundError as se, SsoRequiredError as ce, USER_REMOVAL_GRACE_DAYS as le, abortSignalTimeout as E, adoptPkceVerifierFromUrl as ue, buildOAuthStartUrl as de, cancelOwnRemoval as fe, captureViewAtTap as pe, clearFeedbackParam as me, clearLoginPrompt as he, consentFor as ge, createLogger as D, createPkceChallenge as _e, deriveAuthUrl as O, deriveBackendType as ve, deriveCrossOriginAuthUrl as ye, extractUserIdFromToken as be, getCurrentUser as xe, getDebugOverlayParam as Se, getFeedbackParam as Ce, getLangParam as we, getLoginPromptState as Te, getOrCreateDeviceId as Ee, getSameOriginAuthUrl as De, getSignedOutParam as Oe, getTestLinkParam as ke, getUrlWithoutSession as k, grantConsent as Ae, isCloudEnvironment as je, isConsentGranted as Me, isDebugModeEnabled as Ne, isEmbedded as Pe, isInspectModeEnabled as Fe, onEmbeddedOAuthResult as Ie, parseUrlParams as Le, randomUuid as Re, readConsent as ze, reportConnectTimeline as Be, requestOwnRemoval as Ve, restorePkceVerifier as He, revokeConsent as Ue, setLoginPromptRequired as We, startEmbeddedOAuthSignIn as Ge, subscribeLoginPrompt as Ke, subscribeToLogEvents as qe, takePkceVerifier as Je } from "@ikonai/sdk";
|
|
4
|
+
import { Fragment as Ye, Suspense as Xe, createContext as Ze, createElement as Qe, lazy as A, memo as j, use as $e, useCallback as M, useEffect as N, useLayoutEffect as et, useMemo as P, useReducer as tt, useRef as F, useState as I, useSyncExternalStore as nt } from "react";
|
|
5
|
+
import { Fragment as rt, jsx as L, jsxs as R } from "react/jsx-runtime";
|
|
6
6
|
//#region src/ikon-ui.ts
|
|
7
|
-
var
|
|
7
|
+
var it = class {
|
|
8
8
|
core;
|
|
9
9
|
ownsCore;
|
|
10
10
|
stores = /* @__PURE__ */ new Map();
|
|
@@ -93,16 +93,161 @@ var nt = class {
|
|
|
93
93
|
notify(e) {
|
|
94
94
|
for (let t of this.listeners) t(e);
|
|
95
95
|
}
|
|
96
|
+
}, z = 500, at = 500, ot = 150, st = 7e3, ct = "data-ikon-live-announcer", B = [], V = null, H = /* @__PURE__ */ new WeakMap(), lt = /* @__PURE__ */ new WeakMap(), U = /* @__PURE__ */ new WeakMap(), ut = /* @__PURE__ */ new WeakMap(), W = 0;
|
|
97
|
+
function dt(e) {
|
|
98
|
+
wt();
|
|
99
|
+
let t = {
|
|
100
|
+
submission: e,
|
|
101
|
+
cleanup: void 0,
|
|
102
|
+
state: "queued"
|
|
103
|
+
}, n = H.get(e.region);
|
|
104
|
+
return n && Date.now() < n.until ? (n.held && (n.held.state = "cancelled"), t.state = "held", n.held = t, n.timer ??= setTimeout(() => mt(e.region), Math.max(0, n.until - Date.now()))) : pt(t), { cancel: () => ft(t) };
|
|
105
|
+
}
|
|
106
|
+
function ft(e) {
|
|
107
|
+
let t = e.state;
|
|
108
|
+
if (e.state = "cancelled", t === "queued") {
|
|
109
|
+
B = B.filter((t) => t !== e), B.length === 0 && V !== null && (clearTimeout(V), V = null);
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
if (t === "held") {
|
|
113
|
+
let t = H.get(e.submission.region);
|
|
114
|
+
t?.held === e && (t.held = null, t.timer !== null && (clearTimeout(t.timer), t.timer = null));
|
|
115
|
+
return;
|
|
116
|
+
}
|
|
117
|
+
e.cleanup?.(), e.cleanup = void 0;
|
|
118
|
+
}
|
|
119
|
+
function pt(e) {
|
|
120
|
+
e.state = "queued", B.push(e), V ??= setTimeout(ht, 0);
|
|
121
|
+
}
|
|
122
|
+
function mt(e) {
|
|
123
|
+
let t = H.get(e);
|
|
124
|
+
if (!t) return;
|
|
125
|
+
t.timer = null;
|
|
126
|
+
let n = t.held;
|
|
127
|
+
t.held = null, n && n.state === "held" && pt(n);
|
|
128
|
+
}
|
|
129
|
+
function ht() {
|
|
130
|
+
V = null;
|
|
131
|
+
let e = B.filter((e) => e.state === "queued" && e.submission.region.isConnected);
|
|
132
|
+
if (B = [], e.length === 0) return;
|
|
133
|
+
let t = /* @__PURE__ */ new Set(), n = /* @__PURE__ */ new Map();
|
|
134
|
+
for (let t of e) {
|
|
135
|
+
let e = t.submission.scrollGroup;
|
|
136
|
+
if (e === null) continue;
|
|
137
|
+
let r = n.get(e);
|
|
138
|
+
(!r || t.submission.ranking >= r.submission.ranking) && n.set(e, t);
|
|
139
|
+
}
|
|
140
|
+
for (let e of n.values()) e.cleanup = e.submission.scroll(), t.add(e);
|
|
141
|
+
let r;
|
|
142
|
+
for (let t of e) {
|
|
143
|
+
let e = t.submission.region, n = St(e), i = `${t.submission.hintKey ?? ""}\u0000${n}`;
|
|
144
|
+
lt.get(e) !== i && (lt.set(e, i), (!r || t.submission.ranking >= r.submission.ranking) && (r = t));
|
|
145
|
+
}
|
|
146
|
+
if (r) {
|
|
147
|
+
r.submission.focus(), t.add(r);
|
|
148
|
+
let e = r.submission;
|
|
149
|
+
e.politeness !== null && gt(e.region, e.politeness, e.hintKey ?? "", Math.max(at, e.cooldownMs));
|
|
150
|
+
}
|
|
151
|
+
let i = Date.now();
|
|
152
|
+
for (let n of e) if (n.state = "done", t.has(n) && n.submission.cooldownMs > 0) {
|
|
153
|
+
let e = H.get(n.submission.region);
|
|
154
|
+
e?.timer != null && clearTimeout(e.timer), H.set(n.submission.region, {
|
|
155
|
+
until: i + n.submission.cooldownMs,
|
|
156
|
+
held: null,
|
|
157
|
+
timer: null
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
function gt(e, t, n, r) {
|
|
162
|
+
let i = U.get(e);
|
|
163
|
+
i && clearTimeout(i.timer);
|
|
164
|
+
let a = {
|
|
165
|
+
politeness: t,
|
|
166
|
+
hintKey: n,
|
|
167
|
+
settleMs: r,
|
|
168
|
+
text: St(e),
|
|
169
|
+
timer: setTimeout(() => vt(e, a), _t(r))
|
|
170
|
+
};
|
|
171
|
+
U.set(e, a);
|
|
172
|
+
}
|
|
173
|
+
function _t(e) {
|
|
174
|
+
return Math.max(e, W + ot - Date.now());
|
|
175
|
+
}
|
|
176
|
+
function vt(e, t) {
|
|
177
|
+
if (U.get(e) !== t) return;
|
|
178
|
+
if (!e.isConnected) {
|
|
179
|
+
U.delete(e);
|
|
180
|
+
return;
|
|
181
|
+
}
|
|
182
|
+
let n = St(e);
|
|
183
|
+
if (n !== t.text) {
|
|
184
|
+
t.text = n, t.timer = setTimeout(() => vt(e, t), _t(t.settleMs));
|
|
185
|
+
return;
|
|
186
|
+
}
|
|
187
|
+
U.delete(e);
|
|
188
|
+
let r = yt(ut.get(e), t.hintKey, n);
|
|
189
|
+
ut.set(e, {
|
|
190
|
+
hintKey: t.hintKey,
|
|
191
|
+
text: n
|
|
192
|
+
}), r && xt(bt(r), t.politeness);
|
|
193
|
+
}
|
|
194
|
+
function yt(e, t, n) {
|
|
195
|
+
return e ? e.text && n.length > e.text.length && n.startsWith(e.text) ? n.slice(e.text.length).trim() : n === e.text && t === e.hintKey ? "" : n : n;
|
|
196
|
+
}
|
|
197
|
+
function bt(e) {
|
|
198
|
+
if (e.length <= z) return e;
|
|
199
|
+
let t = e.length - z, n = e.indexOf(" ", t);
|
|
200
|
+
return `…${e.slice(n >= 0 && n < e.length - 1 ? n + 1 : t)}`;
|
|
201
|
+
}
|
|
202
|
+
function xt(e, t) {
|
|
203
|
+
let n = wt()?.[t];
|
|
204
|
+
if (!n) return;
|
|
205
|
+
n.textContent = "";
|
|
206
|
+
let r = document.createElement("div");
|
|
207
|
+
r.textContent = e, n.appendChild(r), setTimeout(() => {
|
|
208
|
+
r.parentNode === n && n.removeChild(r);
|
|
209
|
+
}, st);
|
|
210
|
+
}
|
|
211
|
+
function St(e) {
|
|
212
|
+
return (typeof e.innerText == "string" ? e.innerText : e.textContent ?? "").replace(/\s+/g, " ").trim();
|
|
213
|
+
}
|
|
214
|
+
var Ct = {
|
|
215
|
+
position: "absolute",
|
|
216
|
+
width: "1px",
|
|
217
|
+
height: "1px",
|
|
218
|
+
margin: "-1px",
|
|
219
|
+
padding: "0",
|
|
220
|
+
border: "0",
|
|
221
|
+
overflow: "hidden",
|
|
222
|
+
clip: "rect(0 0 0 0)",
|
|
223
|
+
clipPath: "inset(50%)",
|
|
224
|
+
whiteSpace: "nowrap"
|
|
96
225
|
};
|
|
226
|
+
function wt() {
|
|
227
|
+
if (typeof document > "u" || !document.body) return;
|
|
228
|
+
let e = document.body.querySelector(`:scope > [${ct}]`);
|
|
229
|
+
if (!e) {
|
|
230
|
+
e = document.createElement("div"), e.setAttribute(ct, "true"), Object.assign(e.style, Ct);
|
|
231
|
+
for (let t of ["polite", "assertive"]) {
|
|
232
|
+
let n = document.createElement("div");
|
|
233
|
+
n.setAttribute("aria-live", t), n.setAttribute("aria-atomic", "true"), n.setAttribute("data-ikon-live", t), e.appendChild(n);
|
|
234
|
+
}
|
|
235
|
+
document.body.appendChild(e), W = Date.now();
|
|
236
|
+
}
|
|
237
|
+
return {
|
|
238
|
+
polite: e.querySelector("[data-ikon-live=\"polite\"]"),
|
|
239
|
+
assertive: e.querySelector("[data-ikon-live=\"assertive\"]")
|
|
240
|
+
};
|
|
241
|
+
}
|
|
97
242
|
//#endregion
|
|
98
243
|
//#region src/base/base-div.tsx
|
|
99
|
-
function
|
|
244
|
+
function Tt(e) {
|
|
100
245
|
if (typeof e == "string") {
|
|
101
246
|
let t = e.trim();
|
|
102
247
|
return t.length > 0 ? t : void 0;
|
|
103
248
|
}
|
|
104
249
|
}
|
|
105
|
-
function
|
|
250
|
+
function Et(e) {
|
|
106
251
|
if (typeof e == "string") {
|
|
107
252
|
let t = e.trim();
|
|
108
253
|
return t.length > 0 ? t : void 0;
|
|
@@ -112,7 +257,7 @@ function V(e) {
|
|
|
112
257
|
return t.length > 0 ? t.join(" ") : void 0;
|
|
113
258
|
}
|
|
114
259
|
}
|
|
115
|
-
function
|
|
260
|
+
function Dt(...e) {
|
|
116
261
|
let t = "";
|
|
117
262
|
for (let n of e) if (n) {
|
|
118
263
|
let e = n.trim();
|
|
@@ -120,8 +265,8 @@ function H(...e) {
|
|
|
120
265
|
}
|
|
121
266
|
return t || void 0;
|
|
122
267
|
}
|
|
123
|
-
var
|
|
124
|
-
function
|
|
268
|
+
var Ot = /* @__PURE__ */ new WeakMap(), kt = {};
|
|
269
|
+
function At(e) {
|
|
125
270
|
let t = {};
|
|
126
271
|
for (let n of e.split(";")) {
|
|
127
272
|
let e = n.indexOf(":");
|
|
@@ -133,28 +278,28 @@ function U(e) {
|
|
|
133
278
|
}
|
|
134
279
|
return t;
|
|
135
280
|
}
|
|
136
|
-
function
|
|
281
|
+
function jt(e, t) {
|
|
137
282
|
let n = e && typeof e == "object" ? e : void 0;
|
|
138
283
|
return t ? {
|
|
139
284
|
...n ?? {},
|
|
140
285
|
cursor: t
|
|
141
286
|
} : n;
|
|
142
287
|
}
|
|
143
|
-
function
|
|
144
|
-
if (!e) return
|
|
145
|
-
let t =
|
|
288
|
+
function Mt(e) {
|
|
289
|
+
if (!e) return kt;
|
|
290
|
+
let t = Ot.get(e);
|
|
146
291
|
if (t) return t;
|
|
147
292
|
let n = {};
|
|
148
293
|
for (let [t, r] of Object.entries(e)) if (r != null) {
|
|
149
294
|
if (t === "style" && typeof r == "string") {
|
|
150
|
-
n[t] =
|
|
295
|
+
n[t] = At(r);
|
|
151
296
|
continue;
|
|
152
297
|
}
|
|
153
298
|
(typeof r == "string" || typeof r == "number" || typeof r == "boolean") && (n[t] = r);
|
|
154
299
|
}
|
|
155
|
-
return
|
|
300
|
+
return Ot.set(e, n), n;
|
|
156
301
|
}
|
|
157
|
-
function
|
|
302
|
+
function Nt(e) {
|
|
158
303
|
let t = e.parentElement;
|
|
159
304
|
for (; t;) {
|
|
160
305
|
let e = window.getComputedStyle(t).overflowY;
|
|
@@ -163,18 +308,18 @@ function ct(e) {
|
|
|
163
308
|
}
|
|
164
309
|
return null;
|
|
165
310
|
}
|
|
166
|
-
var
|
|
167
|
-
function
|
|
311
|
+
var Pt = 1.5;
|
|
312
|
+
function Ft(e, t, n) {
|
|
168
313
|
requestAnimationFrame(() => {
|
|
169
|
-
let r = e.getBoundingClientRect(), i = t.getBoundingClientRect(), a = e.scrollTop + (i.bottom - r.bottom) + 16, o = Math.abs(a - e.scrollTop), s = n ?? (o > e.clientHeight *
|
|
314
|
+
let r = e.getBoundingClientRect(), i = t.getBoundingClientRect(), a = e.scrollTop + (i.bottom - r.bottom) + 16, o = Math.abs(a - e.scrollTop), s = n ?? (o > e.clientHeight * Pt ? "auto" : "smooth");
|
|
170
315
|
"scrollBehavior" in document.documentElement.style ? e.scrollTo({
|
|
171
316
|
top: a,
|
|
172
317
|
behavior: s
|
|
173
318
|
}) : e.scrollTop = a;
|
|
174
319
|
});
|
|
175
320
|
}
|
|
176
|
-
var
|
|
177
|
-
function
|
|
321
|
+
var It = 3e3;
|
|
322
|
+
function Lt(e, t) {
|
|
178
323
|
if (typeof ResizeObserver > "u") return () => void 0;
|
|
179
324
|
let n = !1, r = () => {
|
|
180
325
|
n = !0;
|
|
@@ -182,32 +327,32 @@ function dt(e, t) {
|
|
|
182
327
|
e.addEventListener("wheel", r, i), e.addEventListener("touchmove", r, i), e.addEventListener("keydown", r, i);
|
|
183
328
|
let a = e.scrollHeight, o = new ResizeObserver(() => {
|
|
184
329
|
let r = e.scrollHeight > a;
|
|
185
|
-
a = e.scrollHeight, !(!r || n || !
|
|
330
|
+
a = e.scrollHeight, !(!r || n || !Ht(e)) && Ft(e, t, "auto");
|
|
186
331
|
});
|
|
187
332
|
for (let t of Array.from(e.children)) o.observe(t);
|
|
188
|
-
let s = setTimeout(r,
|
|
333
|
+
let s = setTimeout(r, It);
|
|
189
334
|
return () => {
|
|
190
335
|
clearTimeout(s), o.disconnect(), e.removeEventListener("wheel", r), e.removeEventListener("touchmove", r), e.removeEventListener("keydown", r);
|
|
191
336
|
};
|
|
192
337
|
}
|
|
193
|
-
var
|
|
194
|
-
function
|
|
195
|
-
return Math.max(e.clientHeight *
|
|
338
|
+
var Rt = "data-ikon-scroll-indicator", zt = .15, Bt = "data-ikon-at-bottom";
|
|
339
|
+
function Vt(e) {
|
|
340
|
+
return Math.max(e.clientHeight * zt, 20);
|
|
196
341
|
}
|
|
197
|
-
function
|
|
198
|
-
return e.getAttribute(
|
|
342
|
+
function Ht(e) {
|
|
343
|
+
return e.getAttribute(Bt) !== "false";
|
|
199
344
|
}
|
|
200
|
-
function
|
|
201
|
-
e.getAttribute(
|
|
202
|
-
let { scrollTop: t, scrollHeight: n, clientHeight: r } = e, i = n - t - r <=
|
|
203
|
-
e.setAttribute(
|
|
345
|
+
function Ut(e) {
|
|
346
|
+
e.getAttribute(Bt) === null && (e.setAttribute(Bt, "true"), e.addEventListener("scroll", () => {
|
|
347
|
+
let { scrollTop: t, scrollHeight: n, clientHeight: r } = e, i = n - t - r <= Vt(e);
|
|
348
|
+
e.setAttribute(Bt, i ? "true" : "false");
|
|
204
349
|
}, { passive: !0 }));
|
|
205
350
|
}
|
|
206
|
-
function
|
|
207
|
-
let t = e.parentElement ?? e, n = t.querySelector(`[${
|
|
351
|
+
function Wt(e) {
|
|
352
|
+
let t = e.parentElement ?? e, n = t.querySelector(`[${Rt}]`);
|
|
208
353
|
if (n) return n;
|
|
209
354
|
let r = document.createElement("button");
|
|
210
|
-
return r.setAttribute(
|
|
355
|
+
return r.setAttribute(Rt, "true"), r.setAttribute("aria-label", "Scroll to latest"), r.textContent = "↓", Object.assign(r.style, {
|
|
211
356
|
position: "absolute",
|
|
212
357
|
bottom: "12px",
|
|
213
358
|
left: "50%",
|
|
@@ -235,64 +380,76 @@ function vt(e) {
|
|
|
235
380
|
r.style.opacity = "0.9";
|
|
236
381
|
}), t.appendChild(r), r;
|
|
237
382
|
}
|
|
238
|
-
function
|
|
239
|
-
let n =
|
|
383
|
+
function Gt(e, t) {
|
|
384
|
+
let n = Wt(e);
|
|
240
385
|
n.style.display = "flex";
|
|
241
386
|
let r = () => {
|
|
242
|
-
|
|
387
|
+
Ft(e, t), n.style.display = "none";
|
|
243
388
|
}, i = () => {
|
|
244
389
|
let { scrollTop: t, scrollHeight: r, clientHeight: i } = e;
|
|
245
|
-
r - t - i <=
|
|
390
|
+
r - t - i <= Vt(e) && (n.style.display = "none");
|
|
246
391
|
};
|
|
247
392
|
return n.addEventListener("click", r), e.addEventListener("scroll", i, { passive: !0 }), () => {
|
|
248
393
|
n.removeEventListener("click", r), e.removeEventListener("scroll", i);
|
|
249
394
|
};
|
|
250
395
|
}
|
|
251
|
-
function
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
396
|
+
function Kt(e) {
|
|
397
|
+
return typeof e == "number" && Number.isFinite(e) ? e : 0;
|
|
398
|
+
}
|
|
399
|
+
function qt(e, t, n) {
|
|
400
|
+
if (t) {
|
|
401
|
+
if (Ut(t), n && !Ht(t)) return Gt(t, e);
|
|
402
|
+
let r = (t.parentElement ?? t).querySelector(`[${Rt}]`);
|
|
403
|
+
return r && (r.style.display = "none"), Ft(t, e), Lt(t, e);
|
|
404
|
+
}
|
|
405
|
+
typeof e.scrollIntoView == "function" && requestAnimationFrame(() => {
|
|
406
|
+
let t = e.getBoundingClientRect().top, n = typeof window < "u" ? window.innerHeight : 0, r = Math.abs(t) > n * Pt ? "auto" : "smooth";
|
|
407
|
+
try {
|
|
408
|
+
e.scrollIntoView({
|
|
409
|
+
behavior: r,
|
|
410
|
+
block: "end",
|
|
411
|
+
inline: "nearest"
|
|
412
|
+
});
|
|
413
|
+
} catch {
|
|
414
|
+
e.scrollIntoView(!1);
|
|
415
|
+
}
|
|
416
|
+
});
|
|
417
|
+
}
|
|
418
|
+
function Jt(e) {
|
|
419
|
+
let t = document.activeElement;
|
|
420
|
+
if (!(t instanceof HTMLInputElement || t instanceof HTMLTextAreaElement || t?.getAttribute("contenteditable") === "true" || typeof e.focus != "function")) try {
|
|
421
|
+
e.focus({ preventScroll: !0 });
|
|
422
|
+
} catch {
|
|
423
|
+
e.focus();
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
function Yt() {
|
|
427
|
+
let t = j(function({ nodeId: t, context: n }) {
|
|
428
|
+
let r = e(n.store, t), i = F(null), a = Et(r?.props?.targetViewId), o = r?.props?.focusOnly === !0, s = Et(r?.props?.priority), c = Kt(r?.props?.ranking), l = Math.max(0, Kt(r?.props?.cooldownMs)), u = Et(r?.props?.key), d = r?.props?.preciseGeneratedAt;
|
|
429
|
+
return N(() => {
|
|
255
430
|
if (typeof document > "u") return;
|
|
256
431
|
let e = i.current;
|
|
257
432
|
if (!e || a && e.closest("[data-ikon-view-id]")?.getAttribute("data-ikon-view-id") !== a) return;
|
|
258
|
-
let t, n
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
try {
|
|
270
|
-
e.scrollIntoView({
|
|
271
|
-
behavior: r,
|
|
272
|
-
block: "end",
|
|
273
|
-
inline: "nearest"
|
|
274
|
-
});
|
|
275
|
-
} catch {
|
|
276
|
-
e.scrollIntoView(!1);
|
|
277
|
-
}
|
|
278
|
-
});
|
|
279
|
-
}
|
|
280
|
-
let r = document.activeElement;
|
|
281
|
-
if (!(r instanceof HTMLInputElement || r instanceof HTMLTextAreaElement || r?.getAttribute("contenteditable") === "true") && typeof e.focus == "function") try {
|
|
282
|
-
e.focus({ preventScroll: !0 });
|
|
283
|
-
} catch {
|
|
284
|
-
e.focus();
|
|
285
|
-
}
|
|
286
|
-
return () => {
|
|
287
|
-
t?.(), n?.();
|
|
288
|
-
};
|
|
433
|
+
let t = o ? null : Nt(e), n = dt({
|
|
434
|
+
region: e.parentElement ?? e,
|
|
435
|
+
hintKey: u,
|
|
436
|
+
ranking: c,
|
|
437
|
+
cooldownMs: l,
|
|
438
|
+
scrollGroup: o ? null : t ?? document,
|
|
439
|
+
politeness: o ? null : s === "Assertive" ? "assertive" : "polite",
|
|
440
|
+
scroll: () => qt(e, t, s === "Polite"),
|
|
441
|
+
focus: () => Jt(e)
|
|
442
|
+
});
|
|
443
|
+
return () => n.cancel();
|
|
289
444
|
}, [
|
|
445
|
+
o,
|
|
290
446
|
s,
|
|
291
447
|
c,
|
|
292
|
-
a,
|
|
293
448
|
l,
|
|
294
|
-
|
|
295
|
-
|
|
449
|
+
a,
|
|
450
|
+
u,
|
|
451
|
+
d
|
|
452
|
+
]), r ? /* @__PURE__ */ L("span", {
|
|
296
453
|
ref: i,
|
|
297
454
|
"data-ikon-node-id": r.id,
|
|
298
455
|
"data-ikon-source": r.sourceMarker,
|
|
@@ -310,16 +467,16 @@ function bt() {
|
|
|
310
467
|
if (e === "std.focus-hint") return t;
|
|
311
468
|
};
|
|
312
469
|
}
|
|
313
|
-
function
|
|
314
|
-
let t =
|
|
315
|
-
let i = e(n.store, t), a =
|
|
470
|
+
function Xt() {
|
|
471
|
+
let t = j(function({ nodeId: t, context: n, className: r }) {
|
|
472
|
+
let i = e(n.store, t), a = Tt(i?.props?.onInvokeId), o = M(() => {
|
|
316
473
|
a && n.dispatchAction(a);
|
|
317
474
|
}, [a, n]);
|
|
318
475
|
if (!i) return null;
|
|
319
|
-
let s =
|
|
476
|
+
let s = Mt(i.props);
|
|
320
477
|
delete s.onInvokeId;
|
|
321
|
-
let c =
|
|
322
|
-
return /* @__PURE__ */
|
|
478
|
+
let c = Dt(Et(i.props?.className), r), l = i.children?.length ? n.renderChildren(i.children) : void 0;
|
|
479
|
+
return /* @__PURE__ */ L("div", {
|
|
323
480
|
...s,
|
|
324
481
|
"data-ikon-node-id": i.id,
|
|
325
482
|
"data-ikon-source": i.sourceMarker,
|
|
@@ -330,7 +487,7 @@ function xt() {
|
|
|
330
487
|
onKeyDown: a ? (e) => {
|
|
331
488
|
(e.key === "Enter" || e.key === " ") && (e.preventDefault(), o());
|
|
332
489
|
} : void 0,
|
|
333
|
-
style:
|
|
490
|
+
style: jt(s.style, a ? "pointer" : void 0),
|
|
334
491
|
children: l
|
|
335
492
|
});
|
|
336
493
|
});
|
|
@@ -338,12 +495,12 @@ function xt() {
|
|
|
338
495
|
if (e === "std.div") return t;
|
|
339
496
|
};
|
|
340
497
|
}
|
|
341
|
-
function
|
|
342
|
-
let t =
|
|
498
|
+
function Zt() {
|
|
499
|
+
let t = j(function({ nodeId: t, context: n, className: r }) {
|
|
343
500
|
let i = e(n.store, t);
|
|
344
501
|
if (!i) return null;
|
|
345
|
-
let a =
|
|
346
|
-
return /* @__PURE__ */
|
|
502
|
+
let a = Mt(i.props), o = Dt("relative", Et(i.props?.className), r), s = i.children?.length ? n.renderChildren(i.children) : void 0;
|
|
503
|
+
return /* @__PURE__ */ L("div", {
|
|
347
504
|
...a,
|
|
348
505
|
"data-ikon-node-id": i.id,
|
|
349
506
|
"data-ikon-source": i.sourceMarker,
|
|
@@ -355,12 +512,12 @@ function St() {
|
|
|
355
512
|
if (e === "std.stack") return t;
|
|
356
513
|
};
|
|
357
514
|
}
|
|
358
|
-
function
|
|
359
|
-
let t =
|
|
515
|
+
function Qt() {
|
|
516
|
+
let t = j(function({ nodeId: t, context: n, className: r }) {
|
|
360
517
|
let i = e(n.store, t);
|
|
361
518
|
if (!i) return null;
|
|
362
|
-
let a =
|
|
363
|
-
return /* @__PURE__ */
|
|
519
|
+
let a = Mt(i.props), o = Dt("absolute", Et(i.props?.className), r), s = i.children?.length ? n.renderChildren(i.children) : void 0;
|
|
520
|
+
return /* @__PURE__ */ L("div", {
|
|
364
521
|
...a,
|
|
365
522
|
"data-ikon-node-id": i.id,
|
|
366
523
|
"data-ikon-source": i.sourceMarker,
|
|
@@ -372,23 +529,23 @@ function Ct() {
|
|
|
372
529
|
if (e === "std.layer") return t;
|
|
373
530
|
};
|
|
374
531
|
}
|
|
375
|
-
function
|
|
532
|
+
function $t() {
|
|
376
533
|
return [
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
534
|
+
Xt(),
|
|
535
|
+
Zt(),
|
|
536
|
+
Qt(),
|
|
537
|
+
Yt()
|
|
381
538
|
];
|
|
382
539
|
}
|
|
383
540
|
//#endregion
|
|
384
541
|
//#region src/base/base-module.ts
|
|
385
|
-
var
|
|
386
|
-
function
|
|
387
|
-
e.registerModule(
|
|
542
|
+
var en = "base", tn = async () => $t();
|
|
543
|
+
function nn(e) {
|
|
544
|
+
e.registerModule(en, tn);
|
|
388
545
|
}
|
|
389
546
|
//#endregion
|
|
390
547
|
//#region src/media/audio-player.tsx
|
|
391
|
-
function
|
|
548
|
+
function rn(e) {
|
|
392
549
|
if (typeof e == "string") {
|
|
393
550
|
let t = e.trim();
|
|
394
551
|
return t.length > 0 ? t : void 0;
|
|
@@ -398,17 +555,17 @@ function Ot(e) {
|
|
|
398
555
|
return t.length > 0 ? t.join(" ") : void 0;
|
|
399
556
|
}
|
|
400
557
|
}
|
|
401
|
-
function
|
|
558
|
+
function an(...e) {
|
|
402
559
|
let t = [];
|
|
403
560
|
for (let n of e) n && n.trim() && t.push(n.trim());
|
|
404
561
|
return t.length > 0 ? t.join(" ") : void 0;
|
|
405
562
|
}
|
|
406
|
-
function
|
|
563
|
+
function on(e) {
|
|
407
564
|
if (typeof e != "string") return;
|
|
408
565
|
let t = e.trim();
|
|
409
566
|
return t.length > 0 ? t : void 0;
|
|
410
567
|
}
|
|
411
|
-
function
|
|
568
|
+
function sn(e) {
|
|
412
569
|
if (typeof e == "boolean") return e;
|
|
413
570
|
if (typeof e == "string") {
|
|
414
571
|
let t = e.trim().toLowerCase();
|
|
@@ -416,14 +573,14 @@ function jt(e) {
|
|
|
416
573
|
if (t === "false") return !1;
|
|
417
574
|
}
|
|
418
575
|
}
|
|
419
|
-
function
|
|
420
|
-
let t =
|
|
421
|
-
let i = e(n.store, t), a =
|
|
422
|
-
if (
|
|
576
|
+
function cn() {
|
|
577
|
+
let t = j(function({ nodeId: t, context: n, className: r }) {
|
|
578
|
+
let i = e(n.store, t), a = F(null), o = i ? sn(i.props?.autoplay) : void 0, s = i ? on(i.props?.src) : void 0;
|
|
579
|
+
if (N(() => {
|
|
423
580
|
o && a.current && a.current.play().catch(() => {});
|
|
424
581
|
}, [o, s]), !i) return null;
|
|
425
|
-
let c =
|
|
426
|
-
return /* @__PURE__ */
|
|
582
|
+
let c = an(rn(i.props?.className), r), l = on(i.props?.preload), u = sn(i.props?.controls), d = sn(i.props?.loop), f = sn(i.props?.muted);
|
|
583
|
+
return /* @__PURE__ */ L("audio", {
|
|
427
584
|
ref: a,
|
|
428
585
|
src: s,
|
|
429
586
|
...l === void 0 ? {} : { preload: l },
|
|
@@ -442,41 +599,45 @@ function Mt() {
|
|
|
442
599
|
}
|
|
443
600
|
//#endregion
|
|
444
601
|
//#region src/media/video-stream-view.tsx
|
|
445
|
-
var
|
|
446
|
-
let c =
|
|
447
|
-
|
|
602
|
+
var ln = D("IkonVideoStreamView"), un = j(function({ client: e, streamId: t, className: n, style: r, width: i, height: a, attributes: o, getPlayback: s }) {
|
|
603
|
+
let c = F(null), l = F(null), [, u] = I(0);
|
|
604
|
+
N(() => {
|
|
448
605
|
if (e?.isWebRtcEnabled) return e.addWebRtcTrackMapListener((e) => {
|
|
449
606
|
e.kind === "video" && u((e) => e + 1);
|
|
450
607
|
});
|
|
451
608
|
}, [e]);
|
|
452
609
|
let d = e?.isWebRtcEnabled && t ? e.getWebRtcVideoStreamByStreamId(t) : null;
|
|
453
|
-
|
|
610
|
+
N(() => {
|
|
454
611
|
let n = c.current;
|
|
455
612
|
if (!n || !t || d) return;
|
|
456
|
-
let r = !1, i, a = 0, o = () => s ? s() : e?.media?.video,
|
|
613
|
+
let r = !1, i, a = 0, o = !1, l = () => s ? s() : e?.media?.video, u = () => {
|
|
457
614
|
if (r) return;
|
|
458
|
-
let
|
|
459
|
-
if (!e) {
|
|
615
|
+
let s = l();
|
|
616
|
+
if (!s && e?.isWebRtcMediaActive) {
|
|
617
|
+
o || (o = !0, ln.debug(`Stream ${t} has no WebRTC track yet; its canvas waits for one or for a fallback to custom playback`)), i = setTimeout(u, 500);
|
|
618
|
+
return;
|
|
619
|
+
}
|
|
620
|
+
if (!s) {
|
|
460
621
|
if (a++ >= 50) {
|
|
461
|
-
|
|
622
|
+
ln.warn(`Gave up attaching the canvas for stream ${t}: video playback never became available`);
|
|
462
623
|
return;
|
|
463
624
|
}
|
|
464
|
-
i = setTimeout(
|
|
625
|
+
i = setTimeout(u, 100);
|
|
465
626
|
return;
|
|
466
627
|
}
|
|
467
|
-
|
|
468
|
-
|
|
628
|
+
s.attachCanvas(t, n).catch((e) => {
|
|
629
|
+
ln.error(`Failed to attach the canvas for stream ${t}, it will stay blank: ${String(e)}`);
|
|
469
630
|
});
|
|
470
631
|
};
|
|
471
|
-
return
|
|
472
|
-
r = !0, i !== void 0 && clearTimeout(i),
|
|
632
|
+
return u(), () => {
|
|
633
|
+
r = !0, i !== void 0 && clearTimeout(i), l()?.detachCanvas(t);
|
|
473
634
|
};
|
|
474
635
|
}, [
|
|
475
636
|
e,
|
|
476
637
|
t,
|
|
477
638
|
d,
|
|
478
639
|
s
|
|
479
|
-
]),
|
|
640
|
+
]), N(() => {
|
|
480
641
|
let e = l.current;
|
|
481
642
|
if (!(!e || !d)) return e.srcObject = d, () => {
|
|
482
643
|
e.srcObject = null;
|
|
@@ -490,20 +651,20 @@ var Nt = k("IkonVideoStreamView"), Pt = N(function({ client: e, streamId: t, cla
|
|
|
490
651
|
...i ? { width: i } : {},
|
|
491
652
|
...a ? { height: a } : {}
|
|
492
653
|
};
|
|
493
|
-
return d ? /* @__PURE__ */
|
|
654
|
+
return d ? /* @__PURE__ */ L("video", {
|
|
494
655
|
ref: l,
|
|
495
656
|
autoPlay: !0,
|
|
496
657
|
playsInline: !0,
|
|
497
658
|
muted: !0,
|
|
498
659
|
...f
|
|
499
|
-
}, t) : /* @__PURE__ */
|
|
660
|
+
}, t) : /* @__PURE__ */ L("canvas", {
|
|
500
661
|
ref: c,
|
|
501
662
|
...f
|
|
502
663
|
}, t);
|
|
503
664
|
});
|
|
504
665
|
//#endregion
|
|
505
666
|
//#region src/media/video-canvas.tsx
|
|
506
|
-
function
|
|
667
|
+
function dn(e) {
|
|
507
668
|
if (typeof e == "string") {
|
|
508
669
|
let t = e.trim();
|
|
509
670
|
return t.length > 0 ? t : void 0;
|
|
@@ -513,27 +674,27 @@ function Ft(e) {
|
|
|
513
674
|
return t.length > 0 ? t.join(" ") : void 0;
|
|
514
675
|
}
|
|
515
676
|
}
|
|
516
|
-
function
|
|
677
|
+
function fn(...e) {
|
|
517
678
|
let t = [];
|
|
518
679
|
for (let n of e) n && n.trim() && t.push(n.trim());
|
|
519
680
|
return t.length > 0 ? t.join(" ") : void 0;
|
|
520
681
|
}
|
|
521
|
-
function
|
|
682
|
+
function pn(e) {
|
|
522
683
|
if (typeof e == "number" && Number.isFinite(e)) return Math.floor(e);
|
|
523
684
|
if (typeof e == "string" && e.trim().length > 0) {
|
|
524
685
|
let t = Number(e);
|
|
525
686
|
if (Number.isFinite(t)) return Math.floor(t);
|
|
526
687
|
}
|
|
527
688
|
}
|
|
528
|
-
function
|
|
689
|
+
function mn(e) {
|
|
529
690
|
if (typeof e != "string") return;
|
|
530
691
|
let t = e.trim();
|
|
531
692
|
return t.length > 0 ? t : void 0;
|
|
532
693
|
}
|
|
533
|
-
var
|
|
534
|
-
function
|
|
535
|
-
let t =
|
|
536
|
-
let i = e(n.store, t), a = i ?
|
|
694
|
+
var hn = "std.video-canvas", gn = "std.video-url-player";
|
|
695
|
+
function _n() {
|
|
696
|
+
let t = j(function({ nodeId: t, context: n, className: r }) {
|
|
697
|
+
let i = e(n.store, t), a = i ? mn(i.props?.streamId) : void 0, o = i ? mn(i.props?.onTapId) : void 0, s = i ? pn(i.props?.width) : void 0, c = i ? pn(i.props?.height) : void 0, l = i ? fn(dn(i.props?.className), r) : r, u = M(() => n.video ?? n.client?.media?.video, [n]), d = M((e) => {
|
|
537
698
|
if (!o) return;
|
|
538
699
|
let t = e.target.getBoundingClientRect();
|
|
539
700
|
t.width <= 0 || t.height <= 0 || n.dispatchAction(o, {
|
|
@@ -542,7 +703,7 @@ function Vt() {
|
|
|
542
703
|
});
|
|
543
704
|
}, [o, n]);
|
|
544
705
|
if (!i) return null;
|
|
545
|
-
let f = /* @__PURE__ */
|
|
706
|
+
let f = /* @__PURE__ */ L(un, {
|
|
546
707
|
client: n.client,
|
|
547
708
|
streamId: a,
|
|
548
709
|
className: l,
|
|
@@ -554,7 +715,7 @@ function Vt() {
|
|
|
554
715
|
...i.sourceMarker ? { "data-ikon-source": i.sourceMarker } : {}
|
|
555
716
|
}
|
|
556
717
|
});
|
|
557
|
-
return o ? /* @__PURE__ */
|
|
718
|
+
return o ? /* @__PURE__ */ L("div", {
|
|
558
719
|
style: {
|
|
559
720
|
display: "contents",
|
|
560
721
|
cursor: "pointer"
|
|
@@ -567,14 +728,14 @@ function Vt() {
|
|
|
567
728
|
if (e === "std.video-canvas") return t;
|
|
568
729
|
};
|
|
569
730
|
}
|
|
570
|
-
function
|
|
731
|
+
function vn() {
|
|
571
732
|
return [
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
733
|
+
_n(),
|
|
734
|
+
bn(),
|
|
735
|
+
cn()
|
|
575
736
|
];
|
|
576
737
|
}
|
|
577
|
-
function
|
|
738
|
+
function yn(e) {
|
|
578
739
|
if (typeof e == "boolean") return e;
|
|
579
740
|
if (typeof e == "string") {
|
|
580
741
|
let t = e.trim().toLowerCase();
|
|
@@ -582,14 +743,14 @@ function Ut(e) {
|
|
|
582
743
|
if (t === "false") return !1;
|
|
583
744
|
}
|
|
584
745
|
}
|
|
585
|
-
function
|
|
586
|
-
let t =
|
|
587
|
-
let i = e(n.store, t), a =
|
|
588
|
-
if (
|
|
746
|
+
function bn() {
|
|
747
|
+
let t = j(function({ nodeId: t, context: n, className: r }) {
|
|
748
|
+
let i = e(n.store, t), a = F(null), o = i ? yn(i.props?.autoplay) : void 0, s = i ? mn(i.props?.src) : void 0;
|
|
749
|
+
if (N(() => {
|
|
589
750
|
o && a.current && a.current.play().catch(() => {});
|
|
590
751
|
}, [o, s]), !i) return null;
|
|
591
|
-
let c =
|
|
592
|
-
return /* @__PURE__ */
|
|
752
|
+
let c = fn(dn(i.props?.className), r), l = mn(i.props?.poster), u = yn(i.props?.controls), d = yn(i.props?.loop), f = yn(i.props?.muted), p = yn(i.props?.playsInline), m = pn(i.props?.width), h = pn(i.props?.height), g = i.children?.length ? n.renderChildren(i.children) : void 0;
|
|
753
|
+
return /* @__PURE__ */ L("video", {
|
|
593
754
|
ref: a,
|
|
594
755
|
src: s,
|
|
595
756
|
poster: l,
|
|
@@ -612,30 +773,30 @@ function Wt() {
|
|
|
612
773
|
}
|
|
613
774
|
//#endregion
|
|
614
775
|
//#region src/media/media-module.ts
|
|
615
|
-
var
|
|
616
|
-
function
|
|
617
|
-
e.registerModule(
|
|
776
|
+
var xn = "media", Sn = async () => vn();
|
|
777
|
+
function Cn(e) {
|
|
778
|
+
e.registerModule(xn, Sn);
|
|
618
779
|
}
|
|
619
780
|
//#endregion
|
|
620
781
|
//#region src/renderer/lazy-resolver.ts
|
|
621
|
-
var
|
|
622
|
-
function
|
|
623
|
-
let r =
|
|
782
|
+
var wn = () => null;
|
|
783
|
+
function Tn(e, t, n) {
|
|
784
|
+
let r = A(async () => ({ default: n(await t())()({ type: e }) ?? wn })), i = (e) => Qe(Xe, { fallback: null }, Qe(r, e));
|
|
624
785
|
return (t) => t.type === e ? i : void 0;
|
|
625
786
|
}
|
|
626
787
|
//#endregion
|
|
627
788
|
//#region src/shadertoy/shadertoy-module.ts
|
|
628
|
-
var
|
|
629
|
-
function
|
|
630
|
-
return
|
|
789
|
+
var En = "shadertoy";
|
|
790
|
+
function Dn() {
|
|
791
|
+
return Tn(t, () => import("./shadertoy-renderer-Cq1lOXBs.js"), (e) => e.createShadertoyRendererResolver);
|
|
631
792
|
}
|
|
632
|
-
var
|
|
633
|
-
function
|
|
634
|
-
e.registerModule(
|
|
793
|
+
var On = async () => Dn();
|
|
794
|
+
function kn(e) {
|
|
795
|
+
e.registerModule(En, On);
|
|
635
796
|
}
|
|
636
797
|
//#endregion
|
|
637
798
|
//#region src/ikon-ui-registry.ts
|
|
638
|
-
var
|
|
799
|
+
var An = D("UIRegistry"), jn = class {
|
|
639
800
|
baseResolvers = [];
|
|
640
801
|
moduleLoaders = /* @__PURE__ */ new Map();
|
|
641
802
|
moduleResolvers = /* @__PURE__ */ new Map();
|
|
@@ -661,14 +822,14 @@ var en = k("UIRegistry"), tn = class {
|
|
|
661
822
|
async loadRegisteredModules() {
|
|
662
823
|
let e = !1;
|
|
663
824
|
for (let [t, n] of this.moduleLoaders.entries()) if (!this.moduleResolvers.has(t)) try {
|
|
664
|
-
let r =
|
|
825
|
+
let r = Pn(await n());
|
|
665
826
|
this.moduleResolvers.set(t, r), e = !0;
|
|
666
827
|
} catch (e) {
|
|
667
|
-
|
|
828
|
+
An.error(`[IkonUiRegistry] Failed to load module '${t}'.`, e);
|
|
668
829
|
}
|
|
669
830
|
let t = [];
|
|
670
831
|
for (let e of this.moduleLoaders.keys()) this.moduleResolvers.has(e) && t.push(e);
|
|
671
|
-
return
|
|
832
|
+
return Fn(t, this.activeModuleOrder) || (this.activeModuleOrder = t, e = !0), e && this.notify(), e;
|
|
672
833
|
}
|
|
673
834
|
resolve(e) {
|
|
674
835
|
for (let t of this.baseResolvers) {
|
|
@@ -678,7 +839,7 @@ var en = k("UIRegistry"), tn = class {
|
|
|
678
839
|
for (let t of this.activeModuleOrder) {
|
|
679
840
|
let n = this.moduleResolvers.get(t);
|
|
680
841
|
if (!n) {
|
|
681
|
-
|
|
842
|
+
An.warn(`Missing resolvers for module ${t}`);
|
|
682
843
|
continue;
|
|
683
844
|
}
|
|
684
845
|
for (let t of n) {
|
|
@@ -691,32 +852,32 @@ var en = k("UIRegistry"), tn = class {
|
|
|
691
852
|
for (let e of this.listeners) e();
|
|
692
853
|
}
|
|
693
854
|
};
|
|
694
|
-
function
|
|
695
|
-
let e = new
|
|
696
|
-
return
|
|
855
|
+
function Mn() {
|
|
856
|
+
let e = new jn();
|
|
857
|
+
return nn(e), Cn(e), kn(e), e.loadRegisteredModules(), e;
|
|
697
858
|
}
|
|
698
|
-
function
|
|
859
|
+
function Nn(e) {
|
|
699
860
|
return Array.isArray(e) ? e : [e];
|
|
700
861
|
}
|
|
701
|
-
function
|
|
702
|
-
return e ?
|
|
862
|
+
function Pn(e) {
|
|
863
|
+
return e ? Nn(e).flatMap((e) => e ? Array.isArray(e) ? e.filter(Boolean) : [e] : []) : [];
|
|
703
864
|
}
|
|
704
|
-
function
|
|
865
|
+
function Fn(e, t) {
|
|
705
866
|
if (e.length !== t.length) return !1;
|
|
706
867
|
for (let n = 0; n < e.length; n += 1) if (e[n] !== t[n]) return !1;
|
|
707
868
|
return !0;
|
|
708
869
|
}
|
|
709
870
|
//#endregion
|
|
710
871
|
//#region src/renderer/use-root-view.ts
|
|
711
|
-
function
|
|
712
|
-
let n =
|
|
872
|
+
function In(e, t) {
|
|
873
|
+
let n = nt((t) => e.subscribe(t), () => {
|
|
713
874
|
let n = e.getSnapshot(), r = t ?? n.rootViewId, i = r ? n.views.get(r) : void 0;
|
|
714
875
|
return `${r ?? ""}:${i?.id ?? ""}`;
|
|
715
876
|
}, () => {
|
|
716
877
|
let n = e.getSnapshot(), r = t ?? n.rootViewId, i = r ? n.views.get(r) : void 0;
|
|
717
878
|
return `${r ?? ""}:${i?.id ?? ""}`;
|
|
718
879
|
});
|
|
719
|
-
return
|
|
880
|
+
return P(() => {
|
|
720
881
|
let [e, t] = n.split(":");
|
|
721
882
|
return {
|
|
722
883
|
rootViewId: e || void 0,
|
|
@@ -726,8 +887,8 @@ function sn(e, t) {
|
|
|
726
887
|
}
|
|
727
888
|
//#endregion
|
|
728
889
|
//#region src/renderer/ui-renderer.tsx
|
|
729
|
-
var
|
|
730
|
-
function
|
|
890
|
+
var Ln = D("UIRenderer");
|
|
891
|
+
function Rn(e) {
|
|
731
892
|
if (e === void 0) return "{}";
|
|
732
893
|
if (typeof e == "string") return e;
|
|
733
894
|
try {
|
|
@@ -736,39 +897,39 @@ function ln(e) {
|
|
|
736
897
|
return "{}";
|
|
737
898
|
}
|
|
738
899
|
}
|
|
739
|
-
function
|
|
900
|
+
function zn(e) {
|
|
740
901
|
let t = e.styleIds;
|
|
741
902
|
return Array.isArray(t) ? t : [];
|
|
742
903
|
}
|
|
743
|
-
var
|
|
744
|
-
function
|
|
745
|
-
let [t, n] =
|
|
746
|
-
return
|
|
904
|
+
var Bn = 1500, Vn = 8e3;
|
|
905
|
+
function Hn(e) {
|
|
906
|
+
let [t, n] = I(0);
|
|
907
|
+
return N(() => {
|
|
747
908
|
if (e.subscribe) return e.subscribe(() => n((e) => e + 1));
|
|
748
909
|
}, [e]), t;
|
|
749
910
|
}
|
|
750
|
-
function
|
|
751
|
-
let [a, o] =
|
|
911
|
+
function Un({ nodeType: t, nodeId: n, context: r, className: i }) {
|
|
912
|
+
let [a, o] = I(!1), [s, c] = I(!1), l = e(r.store, n), u = Hn(r.library), d = P(() => l ? r.library.resolve(l) : void 0, [
|
|
752
913
|
r.library,
|
|
753
914
|
l,
|
|
754
915
|
u
|
|
755
916
|
]);
|
|
756
|
-
return
|
|
757
|
-
let e = setTimeout(() => o(!0),
|
|
917
|
+
return N(() => {
|
|
918
|
+
let e = setTimeout(() => o(!0), Bn), t = setTimeout(() => c(!0), Vn);
|
|
758
919
|
return () => {
|
|
759
920
|
clearTimeout(e), clearTimeout(t);
|
|
760
921
|
};
|
|
761
|
-
}, [t]),
|
|
762
|
-
!s || d ||
|
|
922
|
+
}, [t]), N(() => {
|
|
923
|
+
!s || d || Ln.error(`No React resolver is registered for node type '${t}', so it renders as an error placeholder instead of the component you expected. A custom node needs all four parts: (1) the React component, (2) a resolver that matches '${t}', (3) a registerModule(...) call for it in app.tsx, and (4) the C# view.AddNode("${t}", ...) extension. Prefer native view.* components where they fit.`);
|
|
763
924
|
}, [
|
|
764
925
|
s,
|
|
765
926
|
d,
|
|
766
927
|
t
|
|
767
|
-
]), d ? /* @__PURE__ */
|
|
928
|
+
]), d ? /* @__PURE__ */ L(d, {
|
|
768
929
|
nodeId: n,
|
|
769
930
|
context: r,
|
|
770
931
|
className: i
|
|
771
|
-
}) : a ? /* @__PURE__ */
|
|
932
|
+
}) : a ? /* @__PURE__ */ L("div", {
|
|
772
933
|
"data-ikon-node-id": n,
|
|
773
934
|
"data-ikon-unresolved-node": t,
|
|
774
935
|
role: "alert",
|
|
@@ -785,69 +946,69 @@ function mn({ nodeType: t, nodeId: n, context: r, className: i }) {
|
|
|
785
946
|
children: `Unregistered node type: ${t}\nNo React resolver is registered for it — register the component's module in app.tsx (see the console for details).`
|
|
786
947
|
}) : null;
|
|
787
948
|
}
|
|
788
|
-
function
|
|
949
|
+
function Wn(e) {
|
|
789
950
|
let t = e.children;
|
|
790
951
|
return Array.isArray(t) ? t : [];
|
|
791
952
|
}
|
|
792
|
-
function
|
|
953
|
+
function Gn(e, t) {
|
|
793
954
|
return e.nodeId === t.nodeId && e.context === t.context;
|
|
794
955
|
}
|
|
795
|
-
function
|
|
956
|
+
function Kn(e) {
|
|
796
957
|
if (e.length === 0) return "";
|
|
797
958
|
if (e.length === 1) return e[0].id;
|
|
798
959
|
let t = e[0].id;
|
|
799
960
|
for (let n = 1; n < e.length; n++) t += "," + e[n].id;
|
|
800
961
|
return t;
|
|
801
962
|
}
|
|
802
|
-
var
|
|
803
|
-
let i = e(r.store, n), a = i ?
|
|
963
|
+
var qn = j(function t({ nodeId: n, context: r }) {
|
|
964
|
+
let i = e(r.store, n), a = i ? Wn(i) : [], o = Kn(a), s = P(() => a.length === 0 ? null : a.map((e) => /* @__PURE__ */ L(t, {
|
|
804
965
|
nodeId: e.id,
|
|
805
966
|
context: r
|
|
806
967
|
}, e.id)), [o, r]);
|
|
807
968
|
if (!i) return null;
|
|
808
|
-
if (i.type === "root") return /* @__PURE__ */
|
|
809
|
-
let c =
|
|
810
|
-
return u ? /* @__PURE__ */
|
|
969
|
+
if (i.type === "root") return /* @__PURE__ */ L(Ye, { children: s }, i.id);
|
|
970
|
+
let c = zn(i), l = c.length > 0 ? c.join(" ") : void 0, u = r.library.resolve(i);
|
|
971
|
+
return u ? /* @__PURE__ */ L(u, {
|
|
811
972
|
nodeId: n,
|
|
812
973
|
context: r,
|
|
813
974
|
className: l
|
|
814
|
-
}) : /* @__PURE__ */
|
|
975
|
+
}) : /* @__PURE__ */ L(Un, {
|
|
815
976
|
nodeType: i.type,
|
|
816
977
|
nodeId: i.id,
|
|
817
978
|
context: r,
|
|
818
979
|
className: l
|
|
819
980
|
});
|
|
820
|
-
},
|
|
821
|
-
function
|
|
822
|
-
return !Array.isArray(e) || e.length === 0 ? null : e.map((e) => /* @__PURE__ */
|
|
981
|
+
}, Gn);
|
|
982
|
+
function Jn(e, t) {
|
|
983
|
+
return !Array.isArray(e) || e.length === 0 ? null : e.map((e) => /* @__PURE__ */ L(qn, {
|
|
823
984
|
nodeId: e.id,
|
|
824
985
|
context: t
|
|
825
986
|
}, e.id));
|
|
826
987
|
}
|
|
827
|
-
function
|
|
988
|
+
function Yn(e, t) {
|
|
828
989
|
return e.store === t.store && e.library === t.library && e.viewId === t.viewId && e.emptyFallback === t.emptyFallback;
|
|
829
990
|
}
|
|
830
|
-
var
|
|
831
|
-
let { rootViewId: s, rootNodeId: c } =
|
|
991
|
+
var Xn = j(function({ store: e, library: t, viewId: n, emptyFallback: r = null, onAction: i, client: a, video: o }) {
|
|
992
|
+
let { rootViewId: s, rootNodeId: c } = In(e, n), l = F(i);
|
|
832
993
|
l.current = i;
|
|
833
|
-
let u =
|
|
994
|
+
let u = F(a);
|
|
834
995
|
u.current = a;
|
|
835
|
-
let d =
|
|
996
|
+
let d = F(o);
|
|
836
997
|
d.current = o;
|
|
837
|
-
let f =
|
|
998
|
+
let f = M((e, t, n) => {
|
|
838
999
|
if (!e) return;
|
|
839
|
-
let r =
|
|
1000
|
+
let r = Rn(t);
|
|
840
1001
|
l.current?.(e, r, n);
|
|
841
|
-
}, []), p =
|
|
1002
|
+
}, []), p = P(() => {
|
|
842
1003
|
let n = {
|
|
843
1004
|
store: e,
|
|
844
1005
|
library: t,
|
|
845
1006
|
handlerCache: e.handlerCache,
|
|
846
1007
|
getPayload: (t) => e.getSnapshot().payloads.get(t),
|
|
847
|
-
renderChildren: (e) =>
|
|
1008
|
+
renderChildren: (e) => Jn(e, n),
|
|
848
1009
|
renderView: (t) => {
|
|
849
1010
|
let r = e.getSnapshot().views.get(t);
|
|
850
|
-
return r ? /* @__PURE__ */
|
|
1011
|
+
return r ? /* @__PURE__ */ L(qn, {
|
|
851
1012
|
nodeId: r.id,
|
|
852
1013
|
context: n
|
|
853
1014
|
}) : null;
|
|
@@ -866,15 +1027,15 @@ var xn = N(function({ store: e, library: t, viewId: n, emptyFallback: r = null,
|
|
|
866
1027
|
t,
|
|
867
1028
|
f
|
|
868
1029
|
]);
|
|
869
|
-
return !s || !c ? r : /* @__PURE__ */
|
|
1030
|
+
return !s || !c ? r : /* @__PURE__ */ L("div", {
|
|
870
1031
|
"data-ikon-view-id": s,
|
|
871
1032
|
style: { display: "contents" },
|
|
872
|
-
children: /* @__PURE__ */
|
|
1033
|
+
children: /* @__PURE__ */ L(qn, {
|
|
873
1034
|
nodeId: c,
|
|
874
1035
|
context: p
|
|
875
1036
|
})
|
|
876
1037
|
});
|
|
877
|
-
},
|
|
1038
|
+
}, Yn), Zn = class {
|
|
878
1039
|
fallback;
|
|
879
1040
|
renderers = /* @__PURE__ */ new Map();
|
|
880
1041
|
listeners = /* @__PURE__ */ new Set();
|
|
@@ -899,55 +1060,55 @@ var xn = N(function({ store: e, library: t, viewId: n, emptyFallback: r = null,
|
|
|
899
1060
|
for (let e of this.listeners) e();
|
|
900
1061
|
}
|
|
901
1062
|
};
|
|
902
|
-
function
|
|
903
|
-
return new
|
|
1063
|
+
function Qn(e, t) {
|
|
1064
|
+
return new Zn(Object.entries(e), t);
|
|
904
1065
|
}
|
|
905
1066
|
//#endregion
|
|
906
1067
|
//#region src/renderer/use-ui-store.ts
|
|
907
|
-
function
|
|
908
|
-
return
|
|
1068
|
+
function $n(e) {
|
|
1069
|
+
return nt((t) => e.subscribe(t), () => e.getSnapshot(), () => e.getSnapshot());
|
|
909
1070
|
}
|
|
910
1071
|
//#endregion
|
|
911
1072
|
//#region src/inspect/inspect-overlay.tsx
|
|
912
|
-
function
|
|
1073
|
+
function er(e, t) {
|
|
913
1074
|
e.style.outline = `2px solid ${t}`, e.style.outlineOffset = "1px", e.setAttribute(x, "");
|
|
914
1075
|
}
|
|
915
|
-
function
|
|
1076
|
+
function tr(e) {
|
|
916
1077
|
e.style.outline = "", e.style.outlineOffset = "", e.removeAttribute(x);
|
|
917
1078
|
}
|
|
918
|
-
function
|
|
919
|
-
let [e, t] =
|
|
920
|
-
return
|
|
1079
|
+
function nr() {
|
|
1080
|
+
let [e, t] = I(Fe), n = F(!1);
|
|
1081
|
+
return N(() => {
|
|
921
1082
|
if (e) return;
|
|
922
1083
|
let r = () => {
|
|
923
|
-
|
|
1084
|
+
Fe() && t(!0);
|
|
924
1085
|
}, i = (e) => {
|
|
925
1086
|
e.data?.type === "ikon-inspect-mode" && e.data.enabled && (n.current = !0, t(!0));
|
|
926
1087
|
};
|
|
927
1088
|
return window.addEventListener(b, r), window.addEventListener("message", i), () => {
|
|
928
1089
|
window.removeEventListener(b, r), window.removeEventListener("message", i);
|
|
929
1090
|
};
|
|
930
|
-
}, [e]),
|
|
1091
|
+
}, [e]), N(() => {
|
|
931
1092
|
if (!e) return;
|
|
932
1093
|
let t = window.parent === window || n.current, r = null, i = [], a = document.createElement("div");
|
|
933
1094
|
a.setAttribute(y, ""), a.style.cssText = "position:fixed;z-index:99999;pointer-events:none;padding:2px 6px;background:#1e1e2e;color:#cdd6f4;font-size:11px;border-radius:4px;border:1px solid #45475a;white-space:nowrap;display:none;font-family:monospace;", document.body.appendChild(a);
|
|
934
1095
|
function o() {
|
|
935
|
-
r && !i.includes(r) &&
|
|
1096
|
+
r && !i.includes(r) && tr(r), r = null, a.style.display = "none";
|
|
936
1097
|
}
|
|
937
1098
|
function s(e) {
|
|
938
|
-
for (let e of i) e !== r &&
|
|
1099
|
+
for (let e of i) e !== r && tr(e);
|
|
939
1100
|
i = [];
|
|
940
1101
|
let t = new Set(e);
|
|
941
1102
|
for (let e of Array.from(document.querySelectorAll("[data-ikon-source]"))) {
|
|
942
1103
|
let n = e.getAttribute("data-ikon-source") ?? "";
|
|
943
|
-
t.has(n) && (
|
|
1104
|
+
t.has(n) && (er(e, "#a6e3a1"), i.push(e));
|
|
944
1105
|
}
|
|
945
1106
|
}
|
|
946
1107
|
function c(e) {
|
|
947
1108
|
if (!t) return;
|
|
948
1109
|
let n = e.target.closest?.("[data-ikon-source]");
|
|
949
1110
|
if (!n || n === r) return;
|
|
950
|
-
o(), r = n,
|
|
1111
|
+
o(), r = n, er(r, "#89b4fa");
|
|
951
1112
|
let i = n.getAttribute("data-ikon-source") ?? "";
|
|
952
1113
|
a.textContent = i, a.style.display = "block";
|
|
953
1114
|
let s = n.getBoundingClientRect();
|
|
@@ -976,7 +1137,7 @@ function Dn() {
|
|
|
976
1137
|
}
|
|
977
1138
|
function f(e) {
|
|
978
1139
|
if (e === r || (o(), !e)) return;
|
|
979
|
-
r = e,
|
|
1140
|
+
r = e, er(r, i.includes(e) ? "#a6e3a1" : "#89b4fa");
|
|
980
1141
|
let t = e.getAttribute("data-ikon-source") ?? "";
|
|
981
1142
|
a.textContent = t, a.style.display = "block";
|
|
982
1143
|
let n = e.getBoundingClientRect();
|
|
@@ -1055,20 +1216,20 @@ function Dn() {
|
|
|
1055
1216
|
}
|
|
1056
1217
|
//#endregion
|
|
1057
1218
|
//#region src/surface.tsx
|
|
1058
|
-
var
|
|
1059
|
-
function
|
|
1219
|
+
var rr = D("IkonUiSurface");
|
|
1220
|
+
function ir(e, t) {
|
|
1060
1221
|
return e === t;
|
|
1061
1222
|
}
|
|
1062
|
-
var
|
|
1063
|
-
let s =
|
|
1223
|
+
var ar = j(function({ stores: e, registry: t, category: n = a, onAction: r, client: i, inspect: o = !0 }) {
|
|
1224
|
+
let s = P(() => Array.from(e.keys()).sort().join(","), [e]), c = F(r);
|
|
1064
1225
|
c.current = r;
|
|
1065
|
-
let l =
|
|
1226
|
+
let l = F(i);
|
|
1066
1227
|
l.current = i;
|
|
1067
|
-
let u =
|
|
1228
|
+
let u = P(() => {
|
|
1068
1229
|
let t = [];
|
|
1069
1230
|
for (let [r, i] of e) {
|
|
1070
1231
|
let e = i.store.getSnapshot();
|
|
1071
|
-
|
|
1232
|
+
ir(i.category, n) && (!e.rootViewId || !e.views.has(e.rootViewId) || t.push({
|
|
1072
1233
|
key: r,
|
|
1073
1234
|
store: i.store
|
|
1074
1235
|
}));
|
|
@@ -1078,10 +1239,10 @@ var An = N(function({ stores: e, registry: t, category: n = a, onAction: r, clie
|
|
|
1078
1239
|
e,
|
|
1079
1240
|
n,
|
|
1080
1241
|
s
|
|
1081
|
-
]), d =
|
|
1082
|
-
return
|
|
1083
|
-
f && !d.current && (d.current = !0,
|
|
1084
|
-
}, [f]), f ? /* @__PURE__ */
|
|
1242
|
+
]), d = F(!1), f = u.length > 0;
|
|
1243
|
+
return N(() => {
|
|
1244
|
+
f && !d.current && (d.current = !0, rr.debug("First UI render"));
|
|
1245
|
+
}, [f]), f ? /* @__PURE__ */ R(rt, { children: [o && /* @__PURE__ */ L(nr, {}), u.map(({ key: e, store: n }) => /* @__PURE__ */ L(Xn, {
|
|
1085
1246
|
store: n,
|
|
1086
1247
|
library: t,
|
|
1087
1248
|
onAction: c.current,
|
|
@@ -1091,8 +1252,8 @@ var An = N(function({ stores: e, registry: t, category: n = a, onAction: r, clie
|
|
|
1091
1252
|
});
|
|
1092
1253
|
//#endregion
|
|
1093
1254
|
//#region src/parallax-view.tsx
|
|
1094
|
-
function
|
|
1095
|
-
return /* @__PURE__ */
|
|
1255
|
+
function or({ mount: e, stores: t, registry: n, client: r, onAction: i }) {
|
|
1256
|
+
return /* @__PURE__ */ L(ar, {
|
|
1096
1257
|
stores: t,
|
|
1097
1258
|
registry: n,
|
|
1098
1259
|
category: e,
|
|
@@ -1102,7 +1263,7 @@ function jn({ mount: e, stores: t, registry: n, client: r, onAction: i }) {
|
|
|
1102
1263
|
}
|
|
1103
1264
|
//#endregion
|
|
1104
1265
|
//#region src/motion/motion-controller.ts
|
|
1105
|
-
var
|
|
1266
|
+
var sr = D("MotionController"), cr = {
|
|
1106
1267
|
ease: [
|
|
1107
1268
|
.25,
|
|
1108
1269
|
.1,
|
|
@@ -1275,17 +1436,17 @@ var Mn = k("MotionController"), Nn = {
|
|
|
1275
1436
|
function G(e) {
|
|
1276
1437
|
return e <= 0 ? 0 : e >= 1 ? 1 : e;
|
|
1277
1438
|
}
|
|
1278
|
-
function
|
|
1439
|
+
function lr(e) {
|
|
1279
1440
|
if (e == null) return;
|
|
1280
1441
|
let t = e.trim();
|
|
1281
1442
|
if (!t) return;
|
|
1282
1443
|
let n = Number.parseFloat(t);
|
|
1283
1444
|
return Number.isFinite(n) ? n : void 0;
|
|
1284
1445
|
}
|
|
1285
|
-
function
|
|
1446
|
+
function ur(e) {
|
|
1286
1447
|
return typeof CSS < "u" && CSS.escape ? CSS.escape(e) : e.replace(/[^a-zA-Z0-9_-]/g, (e) => `\\${e}`);
|
|
1287
1448
|
}
|
|
1288
|
-
function
|
|
1449
|
+
function dr(e, t, n, r) {
|
|
1289
1450
|
let i = 1 / 10, a = /* @__PURE__ */ new Float32Array(11);
|
|
1290
1451
|
function o(e, t, n) {
|
|
1291
1452
|
return ((3 * t - 3 * n + 1) * e + (3 * n - 6 * t)) * e * e + 3 * t * e;
|
|
@@ -1319,34 +1480,34 @@ function In(e, t, n, r) {
|
|
|
1319
1480
|
for (let t = 0; t < 11; t += 1) a[t] = o(t * i, e, n);
|
|
1320
1481
|
return (e) => e <= 0 ? 0 : e >= 1 ? 1 : o(u(e), t, r);
|
|
1321
1482
|
}
|
|
1322
|
-
function
|
|
1483
|
+
function fr(e) {
|
|
1323
1484
|
let t = /steps\(\s*([0-9]+)\s*(?:,\s*([a-z-]+)\s*)?\)/i.exec(e);
|
|
1324
1485
|
if (!t) return (e) => G(e);
|
|
1325
1486
|
let n = Math.max(1, parseInt(t[1], 10)), r = (t[2] ?? "end").toLowerCase();
|
|
1326
1487
|
return r === "start" || r === "jump-start" ? (e) => G(Math.ceil(e * n) / n) : r === "none" || r === "jump-none" ? (e) => G(Math.round(e * n) / n) : r === "both" || r === "jump-both" ? (e) => G((Math.floor(e * n) + .5) / n) : (e) => G(Math.floor(e * n) / n);
|
|
1327
1488
|
}
|
|
1328
|
-
function
|
|
1489
|
+
function pr(e) {
|
|
1329
1490
|
if (!e) return (e) => G(e);
|
|
1330
1491
|
let t = e.trim().toLowerCase();
|
|
1331
1492
|
if (!t || t === "linear") return (e) => G(e);
|
|
1332
|
-
if (
|
|
1333
|
-
let [e, n, r, i] =
|
|
1493
|
+
if (cr[t]) {
|
|
1494
|
+
let [e, n, r, i] = cr[t], a = dr(e, n, r, i);
|
|
1334
1495
|
return (e) => G(a(G(e)));
|
|
1335
1496
|
}
|
|
1336
1497
|
if (t.startsWith("cubic-bezier(") && t.endsWith(")")) {
|
|
1337
1498
|
let e = t.slice(13, -1).split(",").map((e) => Number.parseFloat(e.trim()));
|
|
1338
1499
|
if (e.length === 4 && e.every((e) => Number.isFinite(e))) {
|
|
1339
|
-
let [t, n, r, i] = e, a =
|
|
1500
|
+
let [t, n, r, i] = e, a = dr(t, n, r, i);
|
|
1340
1501
|
return (e) => G(a(G(e)));
|
|
1341
1502
|
}
|
|
1342
1503
|
}
|
|
1343
1504
|
if (t.startsWith("steps(") && t.endsWith(")")) {
|
|
1344
|
-
let e =
|
|
1505
|
+
let e = fr(t);
|
|
1345
1506
|
return (t) => e(G(t));
|
|
1346
1507
|
}
|
|
1347
1508
|
return (e) => G(e);
|
|
1348
1509
|
}
|
|
1349
|
-
function
|
|
1510
|
+
function mr(e) {
|
|
1350
1511
|
if (!e) return;
|
|
1351
1512
|
let t = /(-?\d+(?:\.\d+)?)\s*\.\.\s*(-?\d+(?:\.\d+)?)\s*->\s*(-?\d+(?:\.\d+)?)\s*\.\.\s*(-?\d+(?:\.\d+)?)/.exec(e);
|
|
1352
1513
|
if (!t) return;
|
|
@@ -1363,7 +1524,7 @@ function zn(e) {
|
|
|
1363
1524
|
outEnd: a
|
|
1364
1525
|
};
|
|
1365
1526
|
}
|
|
1366
|
-
var
|
|
1527
|
+
var hr = new class {
|
|
1367
1528
|
bindingsByStyle = /* @__PURE__ */ new Map();
|
|
1368
1529
|
observer;
|
|
1369
1530
|
observeScheduled = !1;
|
|
@@ -1388,7 +1549,7 @@ var Bn = new class {
|
|
|
1388
1549
|
for (let e of Array.from(this.globalCleanups)) try {
|
|
1389
1550
|
e();
|
|
1390
1551
|
} catch (e) {
|
|
1391
|
-
|
|
1552
|
+
sr.warn("Failed to cleanup binding listener", e);
|
|
1392
1553
|
}
|
|
1393
1554
|
this.globalCleanups.clear(), this.elementStates.clear(), this.styleToElements.clear(), this.bindingsByStyle.clear(), this.pendingScanStyles.clear(), this.scanScheduled = !1, this.observer &&= (this.observer.disconnect(), void 0);
|
|
1394
1555
|
}
|
|
@@ -1396,24 +1557,24 @@ var Bn = new class {
|
|
|
1396
1557
|
if (t) try {
|
|
1397
1558
|
let n = JSON.parse(t).motionBindings ?? [], r = n.map((t) => this.parseBinding(e, t)).filter((e) => e !== void 0);
|
|
1398
1559
|
if (r.length === 0) {
|
|
1399
|
-
n.length > 0 &&
|
|
1560
|
+
n.length > 0 && sr.warn(`Style ${e} declares ${n.length} motion binding(s) but none are usable; it will not animate`);
|
|
1400
1561
|
return;
|
|
1401
1562
|
}
|
|
1402
1563
|
return { bindings: r };
|
|
1403
1564
|
} catch (e) {
|
|
1404
|
-
|
|
1565
|
+
sr.warn("Failed to parse motion metadata", e);
|
|
1405
1566
|
return;
|
|
1406
1567
|
}
|
|
1407
1568
|
}
|
|
1408
1569
|
parseBinding(e, t) {
|
|
1409
1570
|
let n = t.source?.trim();
|
|
1410
1571
|
if (!n) {
|
|
1411
|
-
|
|
1572
|
+
sr.warn(`Style ${e} has a motion binding with no source; discarding it`);
|
|
1412
1573
|
return;
|
|
1413
1574
|
}
|
|
1414
|
-
let r =
|
|
1575
|
+
let r = lr(t.min) ?? 0, i = lr(t.max), a = i === void 0 ? r + 100 : i, o = (t.clamp ?? "clamp").trim().toLowerCase(), s = !!t.reverse, c = pr(t.ease), l = mr(t.map), u = t.targetId?.trim() || void 0;
|
|
1415
1576
|
if (Number.isNaN(r) || Number.isNaN(a)) {
|
|
1416
|
-
|
|
1577
|
+
sr.warn(`Style ${e} has a motion binding on '${n}' with an unreadable range; discarding it`);
|
|
1417
1578
|
return;
|
|
1418
1579
|
}
|
|
1419
1580
|
return {
|
|
@@ -1461,7 +1622,7 @@ var Bn = new class {
|
|
|
1461
1622
|
scanExistingNodes(e) {
|
|
1462
1623
|
let t = this.bindingsByStyle.get(e);
|
|
1463
1624
|
if (!t || typeof document > "u") return;
|
|
1464
|
-
let n = `.${
|
|
1625
|
+
let n = `.${ur(e)}`;
|
|
1465
1626
|
document.querySelectorAll(n).forEach((n) => this.applyStyleToElement(n, e, t));
|
|
1466
1627
|
}
|
|
1467
1628
|
applyStyleToElement(e, t, n) {
|
|
@@ -1497,7 +1658,7 @@ var Bn = new class {
|
|
|
1497
1658
|
}
|
|
1498
1659
|
resolveScrollContainer(e, t) {
|
|
1499
1660
|
if (t.targetId) {
|
|
1500
|
-
let e = `[data-ikon-motion-source="${
|
|
1661
|
+
let e = `[data-ikon-motion-source="${ur(t.targetId)}"]`, n = typeof document < "u" ? document.querySelector(e) : null;
|
|
1501
1662
|
if (n) return n;
|
|
1502
1663
|
}
|
|
1503
1664
|
return e.closest("[data-ikon-view-type=\"scroll-view\"]");
|
|
@@ -1552,7 +1713,7 @@ var Bn = new class {
|
|
|
1552
1713
|
try {
|
|
1553
1714
|
e();
|
|
1554
1715
|
} catch (e) {
|
|
1555
|
-
|
|
1716
|
+
sr.warn("Failed to cleanup listener", e);
|
|
1556
1717
|
}
|
|
1557
1718
|
this.globalCleanups.delete(e);
|
|
1558
1719
|
}
|
|
@@ -1592,28 +1753,28 @@ var Bn = new class {
|
|
|
1592
1753
|
}();
|
|
1593
1754
|
//#endregion
|
|
1594
1755
|
//#region src/use-ikon-styles.ts
|
|
1595
|
-
function
|
|
1596
|
-
let t =
|
|
1756
|
+
function gr(e) {
|
|
1757
|
+
let t = F(/* @__PURE__ */ new Map()), n = M(({ styleId: e, css: n, common: r }) => {
|
|
1597
1758
|
if (!(!e || typeof document > "u")) {
|
|
1598
1759
|
if (n) {
|
|
1599
1760
|
let r = t.current.get(e);
|
|
1600
1761
|
r || (r = document.createElement("style"), r.setAttribute("data-ikon-style-id", e), document.head.appendChild(r), t.current.set(e, r)), r.textContent = n;
|
|
1601
1762
|
}
|
|
1602
|
-
|
|
1763
|
+
hr.registerStyle(e, r);
|
|
1603
1764
|
}
|
|
1604
|
-
}, []), r =
|
|
1765
|
+
}, []), r = M((e) => {
|
|
1605
1766
|
if (!(typeof document > "u")) for (let n of e) {
|
|
1606
1767
|
let e = t.current.get(n);
|
|
1607
|
-
e && (e.remove(), t.current.delete(n)),
|
|
1768
|
+
e && (e.remove(), t.current.delete(n)), hr.unregisterStyle(n);
|
|
1608
1769
|
}
|
|
1609
|
-
}, []), i =
|
|
1770
|
+
}, []), i = M(() => {
|
|
1610
1771
|
if (typeof document < "u") {
|
|
1611
1772
|
for (let e of t.current.values()) e.remove();
|
|
1612
1773
|
t.current.clear();
|
|
1613
1774
|
}
|
|
1614
|
-
|
|
1775
|
+
hr.reset();
|
|
1615
1776
|
}, []);
|
|
1616
|
-
return
|
|
1777
|
+
return N(() => {
|
|
1617
1778
|
if (!e) return;
|
|
1618
1779
|
for (let t of e.getUiStyles()) n(t);
|
|
1619
1780
|
let t = e.subscribeToStyles(n), a = e.subscribeToStyleDeletes?.(r);
|
|
@@ -1625,7 +1786,7 @@ function Vn(e) {
|
|
|
1625
1786
|
i,
|
|
1626
1787
|
n,
|
|
1627
1788
|
r
|
|
1628
|
-
]),
|
|
1789
|
+
]), N(() => () => i(), [i]), {
|
|
1629
1790
|
setStyle: n,
|
|
1630
1791
|
deleteStyles: r,
|
|
1631
1792
|
reset: i
|
|
@@ -1633,7 +1794,7 @@ function Vn(e) {
|
|
|
1633
1794
|
}
|
|
1634
1795
|
//#endregion
|
|
1635
1796
|
//#region src/use-ikon-ui-stores.ts
|
|
1636
|
-
function
|
|
1797
|
+
function _r(e) {
|
|
1637
1798
|
let t = [];
|
|
1638
1799
|
for (let [n, r] of e) {
|
|
1639
1800
|
let e = r.store.getSnapshot(), i = e.rootViewId && e.views.has(e.rootViewId);
|
|
@@ -1641,15 +1802,15 @@ function Hn(e) {
|
|
|
1641
1802
|
}
|
|
1642
1803
|
return t.sort(), t.join(",");
|
|
1643
1804
|
}
|
|
1644
|
-
function
|
|
1645
|
-
let [t, n] =
|
|
1646
|
-
return
|
|
1805
|
+
function vr(e) {
|
|
1806
|
+
let [t, n] = I(), r = F("");
|
|
1807
|
+
return N(() => {
|
|
1647
1808
|
if (!e) {
|
|
1648
1809
|
n(void 0), r.current = "";
|
|
1649
1810
|
return;
|
|
1650
1811
|
}
|
|
1651
1812
|
let t = () => {
|
|
1652
|
-
let t = e.getStores(), i =
|
|
1813
|
+
let t = e.getStores(), i = _r(t);
|
|
1653
1814
|
i !== r.current && (r.current = i, n(t));
|
|
1654
1815
|
};
|
|
1655
1816
|
return t(), e.subscribe(t);
|
|
@@ -1657,11 +1818,11 @@ function Un(e) {
|
|
|
1657
1818
|
}
|
|
1658
1819
|
//#endregion
|
|
1659
1820
|
//#region src/media/use-sibling-client.ts
|
|
1660
|
-
function
|
|
1661
|
-
let [r, i] =
|
|
1821
|
+
function yr(e, t, n) {
|
|
1822
|
+
let [r, i] = I(null), [a, o] = I(null), s = F(n);
|
|
1662
1823
|
s.current = n;
|
|
1663
1824
|
let c = t ? JSON.stringify(Object.entries(t).sort(([e], [t]) => e < t ? -1 : +(e > t))) : null;
|
|
1664
|
-
return
|
|
1825
|
+
return N(() => {
|
|
1665
1826
|
if (!e || c === null) return;
|
|
1666
1827
|
let t = Object.fromEntries(JSON.parse(c)), n = e.createSibling(t, s.current), r = !1;
|
|
1667
1828
|
return o(null), n.connect().then(() => {
|
|
@@ -1678,10 +1839,10 @@ function Wn(e, t, n) {
|
|
|
1678
1839
|
}
|
|
1679
1840
|
//#endregion
|
|
1680
1841
|
//#region src/media/use-media-capture.ts
|
|
1681
|
-
var
|
|
1682
|
-
function
|
|
1683
|
-
let [i, a] =
|
|
1684
|
-
return o.current = r,
|
|
1842
|
+
var br = D("IkonMediaCaptureHooks");
|
|
1843
|
+
function xr(e, t, n, r) {
|
|
1844
|
+
let [i, a] = I(null), o = F(r);
|
|
1845
|
+
return o.current = r, N(() => {
|
|
1685
1846
|
if (!e || !t) return;
|
|
1686
1847
|
let r = !1, i = null;
|
|
1687
1848
|
return a(null), (async () => {
|
|
@@ -1694,7 +1855,7 @@ function Kn(e, t, n, r) {
|
|
|
1694
1855
|
try {
|
|
1695
1856
|
i = await o.current(t);
|
|
1696
1857
|
} catch (e) {
|
|
1697
|
-
r || (
|
|
1858
|
+
r || (br.error(`${n} capture start failed: ${String(e)}`), a(e instanceof Error ? e : Error(String(e))));
|
|
1698
1859
|
return;
|
|
1699
1860
|
}
|
|
1700
1861
|
r && i.stop();
|
|
@@ -1708,17 +1869,17 @@ function Kn(e, t, n, r) {
|
|
|
1708
1869
|
n
|
|
1709
1870
|
]), { error: i };
|
|
1710
1871
|
}
|
|
1711
|
-
function
|
|
1712
|
-
let r =
|
|
1713
|
-
return r.current = n,
|
|
1872
|
+
function Sr(e, t, n) {
|
|
1873
|
+
let r = F(n);
|
|
1874
|
+
return r.current = n, xr(e, t, "microphone", M((e) => e.audio.startMic(r.current ?? {}), []));
|
|
1714
1875
|
}
|
|
1715
|
-
function
|
|
1716
|
-
let r =
|
|
1717
|
-
return r.current = n,
|
|
1876
|
+
function Cr(e, t, n) {
|
|
1877
|
+
let r = F(n);
|
|
1878
|
+
return r.current = n, xr(e, t, "camera", M((e) => e.video.startCamera(r.current), []));
|
|
1718
1879
|
}
|
|
1719
|
-
function
|
|
1720
|
-
let r =
|
|
1721
|
-
return r.current = n,
|
|
1880
|
+
function wr(e, t, n) {
|
|
1881
|
+
let r = F(n);
|
|
1882
|
+
return r.current = n, xr(e, t, "screen", M((e) => e.video.startScreen(r.current), []));
|
|
1722
1883
|
}
|
|
1723
1884
|
//#endregion
|
|
1724
1885
|
//#region src/shared/render-motion-letters.tsx
|
|
@@ -1728,8 +1889,11 @@ var K = {
|
|
|
1728
1889
|
Word: 2,
|
|
1729
1890
|
Line: 4,
|
|
1730
1891
|
Paragraph: 8,
|
|
1731
|
-
Emoji: 16
|
|
1732
|
-
|
|
1892
|
+
Emoji: 16,
|
|
1893
|
+
LetterReverse: 32,
|
|
1894
|
+
WordReverse: 64,
|
|
1895
|
+
LineReverse: 128
|
|
1896
|
+
}, Tr = [
|
|
1733
1897
|
{
|
|
1734
1898
|
flag: K.Letter,
|
|
1735
1899
|
hints: [
|
|
@@ -1778,114 +1942,144 @@ var K = {
|
|
|
1778
1942
|
"[data-emoji]"
|
|
1779
1943
|
]
|
|
1780
1944
|
}
|
|
1781
|
-
],
|
|
1782
|
-
|
|
1783
|
-
|
|
1784
|
-
|
|
1785
|
-
|
|
1786
|
-
|
|
1787
|
-
|
|
1788
|
-
|
|
1789
|
-
|
|
1790
|
-
|
|
1945
|
+
], Er = [
|
|
1946
|
+
{
|
|
1947
|
+
flag: K.LetterReverse,
|
|
1948
|
+
hint: "[data-motion-letter]"
|
|
1949
|
+
},
|
|
1950
|
+
{
|
|
1951
|
+
flag: K.WordReverse,
|
|
1952
|
+
hint: "[data-motion-word]"
|
|
1953
|
+
},
|
|
1954
|
+
{
|
|
1955
|
+
flag: K.LineReverse,
|
|
1956
|
+
hint: "[data-motion-line]"
|
|
1957
|
+
}
|
|
1958
|
+
], Dr = ":nth-last-child(", Or = K.Letter | K.Word | K.Line | K.Paragraph | K.Emoji | K.LetterReverse | K.WordReverse | K.LineReverse, kr = K.LetterReverse | K.WordReverse | K.LineReverse, Ar = K.Letter | K.Word | K.Line | K.Paragraph, jr = /* @__PURE__ */ new Map(), Mr = 16384;
|
|
1959
|
+
function Nr(e) {
|
|
1960
|
+
return {
|
|
1791
1961
|
letter: 0,
|
|
1792
1962
|
word: 0,
|
|
1793
1963
|
line: 0,
|
|
1794
1964
|
paragraph: 0,
|
|
1795
1965
|
br: 0,
|
|
1796
|
-
emoji: 0
|
|
1797
|
-
|
|
1798
|
-
|
|
1799
|
-
|
|
1800
|
-
|
|
1801
|
-
|
|
1802
|
-
return
|
|
1966
|
+
emoji: 0,
|
|
1967
|
+
reverseTotals: e
|
|
1968
|
+
};
|
|
1969
|
+
}
|
|
1970
|
+
function Pr(e, t, n) {
|
|
1971
|
+
let r = e.reverseTotals?.[t];
|
|
1972
|
+
return r === void 0 ? n : r - 1 - n;
|
|
1803
1973
|
}
|
|
1804
|
-
function
|
|
1974
|
+
function Fr(e, t) {
|
|
1975
|
+
if (!e || e.length > Mr) return e;
|
|
1976
|
+
let n = di(t), r = q(n, K.Emoji), i = n & Ar;
|
|
1977
|
+
if (i === K.None && !r) return e;
|
|
1978
|
+
let a = e.replace(/\r\n/g, "\n").replace(/\r/g, "\n");
|
|
1979
|
+
if (i === K.None) return li(a);
|
|
1980
|
+
let o = oi(a);
|
|
1981
|
+
return o.length === 0 ? r ? li(a) : e : Ir(si(o), n, Nr(Lr(o, n)));
|
|
1982
|
+
}
|
|
1983
|
+
function Ir(e, t, n) {
|
|
1984
|
+
let r = [];
|
|
1985
|
+
for (let i of e) r.push(...Rr(i, t, n));
|
|
1986
|
+
return r;
|
|
1987
|
+
}
|
|
1988
|
+
function Lr(e, t) {
|
|
1989
|
+
if ((t & kr) === K.None) return;
|
|
1990
|
+
let n = q(t, K.LetterReverse), r = q(t, K.WordReverse), i = 0, a = 0;
|
|
1991
|
+
if (n || r) for (let t of e) for (let e of t.text.split(/\s+/)) e && (a += 1, n && (i += Wr(e).length));
|
|
1992
|
+
return {
|
|
1993
|
+
letter: n ? i : void 0,
|
|
1994
|
+
word: r ? a : void 0,
|
|
1995
|
+
line: q(t, K.LineReverse) ? e.length : void 0
|
|
1996
|
+
};
|
|
1997
|
+
}
|
|
1998
|
+
function Rr(e, t, n) {
|
|
1805
1999
|
let r = [];
|
|
1806
2000
|
for (let i of e) {
|
|
1807
|
-
let e =
|
|
2001
|
+
let e = zr(i, t, n);
|
|
1808
2002
|
r.push(...e);
|
|
1809
2003
|
}
|
|
1810
|
-
if (
|
|
2004
|
+
if (q(t, K.Paragraph)) {
|
|
1811
2005
|
let e = n.paragraph++;
|
|
1812
|
-
return [/* @__PURE__ */
|
|
2006
|
+
return [/* @__PURE__ */ L("span", {
|
|
1813
2007
|
"data-motion-paragraph": !0,
|
|
1814
|
-
style:
|
|
2008
|
+
style: ci(e),
|
|
1815
2009
|
children: r
|
|
1816
2010
|
}, `motion-paragraph-${e}`)];
|
|
1817
2011
|
}
|
|
1818
2012
|
return r;
|
|
1819
2013
|
}
|
|
1820
|
-
function
|
|
1821
|
-
let r =
|
|
1822
|
-
if (
|
|
2014
|
+
function zr(e, t, n) {
|
|
2015
|
+
let r = Br(e.text, t, n), i = [];
|
|
2016
|
+
if (q(t, K.Line)) {
|
|
1823
2017
|
let e = n.line++;
|
|
1824
|
-
i.push(/* @__PURE__ */
|
|
2018
|
+
i.push(/* @__PURE__ */ L("span", {
|
|
1825
2019
|
"data-motion-line": !0,
|
|
1826
|
-
style:
|
|
2020
|
+
style: ci(Pr(n, "line", e)),
|
|
1827
2021
|
children: r
|
|
1828
2022
|
}, `motion-line-${e}`));
|
|
1829
2023
|
} else i.push(...r);
|
|
1830
|
-
for (let t = 0; t < e.breaks; t++) i.push(/* @__PURE__ */
|
|
2024
|
+
for (let t = 0; t < e.breaks; t++) i.push(/* @__PURE__ */ L("br", {}, `motion-break-${n.br++}`));
|
|
1831
2025
|
return i;
|
|
1832
2026
|
}
|
|
1833
|
-
function
|
|
2027
|
+
function Br(e, t, n) {
|
|
1834
2028
|
if (!e) return [];
|
|
1835
|
-
let r =
|
|
2029
|
+
let r = q(t, K.Word), i = [], a = /(\s+)/g, o = 0, s;
|
|
1836
2030
|
for (; (s = a.exec(e)) !== null;) {
|
|
1837
2031
|
if (s.index > o) {
|
|
1838
2032
|
let a = e.slice(o, s.index);
|
|
1839
|
-
i.push(
|
|
2033
|
+
i.push(Vr(a, n, t, r));
|
|
1840
2034
|
}
|
|
1841
2035
|
i.push(s[0]), o = s.index + s[0].length;
|
|
1842
2036
|
}
|
|
1843
2037
|
if (o < e.length) {
|
|
1844
2038
|
let a = e.slice(o);
|
|
1845
|
-
i.push(
|
|
2039
|
+
i.push(Vr(a, n, t, r));
|
|
1846
2040
|
}
|
|
1847
2041
|
return i;
|
|
1848
2042
|
}
|
|
1849
|
-
function
|
|
1850
|
-
let i = t.word++, a =
|
|
1851
|
-
return r ? /* @__PURE__ */
|
|
2043
|
+
function Vr(e, t, n, r) {
|
|
2044
|
+
let i = t.word++, a = Ur(e, n, t), o = `motion-word-${i}`, s = Hr(Pr(t, "word", i), r);
|
|
2045
|
+
return r ? /* @__PURE__ */ L("span", {
|
|
1852
2046
|
"data-motion-word": !0,
|
|
1853
2047
|
style: s,
|
|
1854
2048
|
children: a
|
|
1855
|
-
}, o) : /* @__PURE__ */
|
|
2049
|
+
}, o) : /* @__PURE__ */ L("span", {
|
|
1856
2050
|
style: s,
|
|
1857
2051
|
children: a
|
|
1858
2052
|
}, o);
|
|
1859
2053
|
}
|
|
1860
|
-
function
|
|
2054
|
+
function Hr(e, t) {
|
|
1861
2055
|
return t ? {
|
|
1862
|
-
...
|
|
2056
|
+
...ci(e),
|
|
1863
2057
|
whiteSpace: "nowrap"
|
|
1864
2058
|
} : { whiteSpace: "nowrap" };
|
|
1865
2059
|
}
|
|
1866
|
-
function
|
|
2060
|
+
function Ur(e, t, n) {
|
|
1867
2061
|
if (!e) return [];
|
|
1868
|
-
let r =
|
|
2062
|
+
let r = q(t, K.Letter), i = q(t, K.Emoji);
|
|
1869
2063
|
if (!r) {
|
|
1870
2064
|
if (!i) return [e];
|
|
1871
|
-
let t =
|
|
2065
|
+
let t = Wr(e);
|
|
1872
2066
|
if (t.length === 0) return [e];
|
|
1873
|
-
let { nodes: r } =
|
|
2067
|
+
let { nodes: r } = ui(t, n);
|
|
1874
2068
|
return r;
|
|
1875
2069
|
}
|
|
1876
|
-
let a = [], o =
|
|
2070
|
+
let a = [], o = Wr(e);
|
|
1877
2071
|
for (let e of o) {
|
|
1878
|
-
let t = n.letter++, r = `motion-letter-${t}`, o =
|
|
2072
|
+
let t = n.letter++, r = `motion-letter-${t}`, o = ci(Pr(n, "letter", t));
|
|
1879
2073
|
if (e === "\n") {
|
|
1880
|
-
a.push(/* @__PURE__ */
|
|
2074
|
+
a.push(/* @__PURE__ */ L("span", {
|
|
1881
2075
|
"data-motion-letter": !0,
|
|
1882
2076
|
style: o,
|
|
1883
|
-
children: /* @__PURE__ */
|
|
2077
|
+
children: /* @__PURE__ */ L("br", {})
|
|
1884
2078
|
}, r));
|
|
1885
2079
|
continue;
|
|
1886
2080
|
}
|
|
1887
|
-
let s = i &&
|
|
1888
|
-
a.push(/* @__PURE__ */
|
|
2081
|
+
let s = i && ri(e) ? { "data-motion-emoji": !0 } : void 0, c = e === " " ? "\xA0" : e;
|
|
2082
|
+
a.push(/* @__PURE__ */ L("span", {
|
|
1889
2083
|
"data-motion-letter": !0,
|
|
1890
2084
|
style: o,
|
|
1891
2085
|
...s,
|
|
@@ -1894,46 +2088,46 @@ function sr(e, t, n) {
|
|
|
1894
2088
|
}
|
|
1895
2089
|
return a;
|
|
1896
2090
|
}
|
|
1897
|
-
function
|
|
2091
|
+
function Wr(e) {
|
|
1898
2092
|
if (!e) return [];
|
|
1899
|
-
let t =
|
|
1900
|
-
return t ? Array.from(t.segment(e), (e) => e.segment) :
|
|
2093
|
+
let t = Kr();
|
|
2094
|
+
return t ? Array.from(t.segment(e), (e) => e.segment) : qr(e);
|
|
1901
2095
|
}
|
|
1902
|
-
var
|
|
1903
|
-
function
|
|
1904
|
-
return
|
|
2096
|
+
var Gr;
|
|
2097
|
+
function Kr() {
|
|
2098
|
+
return Gr === void 0 && (Gr = typeof Intl < "u" && typeof Intl.Segmenter == "function" ? new Intl.Segmenter(void 0, { granularity: "grapheme" }) : null), Gr;
|
|
1905
2099
|
}
|
|
1906
|
-
function
|
|
2100
|
+
function qr(e) {
|
|
1907
2101
|
let t = [], n = Array.from(e), r = "";
|
|
1908
2102
|
for (let e = 0; e < n.length; e++) {
|
|
1909
2103
|
let i = n[e], a = n[e + 1];
|
|
1910
|
-
r += i, !(a &&
|
|
2104
|
+
r += i, !(a && Jr(i, a)) && (t.push(r), r = "");
|
|
1911
2105
|
}
|
|
1912
2106
|
return r && t.push(r), t;
|
|
1913
2107
|
}
|
|
1914
|
-
function
|
|
1915
|
-
return t ? !!(
|
|
2108
|
+
function Jr(e, t) {
|
|
2109
|
+
return t ? !!(Yr(e) || Yr(t) || ei(t) || Xr(t) || Zr(t) || Qr(e) && Qr(t)) : !1;
|
|
1916
2110
|
}
|
|
1917
|
-
function
|
|
2111
|
+
function Yr(e) {
|
|
1918
2112
|
return e.codePointAt(0) === 8205;
|
|
1919
2113
|
}
|
|
1920
|
-
function
|
|
2114
|
+
function Xr(e) {
|
|
1921
2115
|
let t = e.codePointAt(0);
|
|
1922
2116
|
return t === void 0 ? !1 : t >= 65024 && t <= 65039 || t >= 917760 && t <= 917999;
|
|
1923
2117
|
}
|
|
1924
|
-
function
|
|
2118
|
+
function Zr(e) {
|
|
1925
2119
|
let t = e.codePointAt(0);
|
|
1926
2120
|
return t !== void 0 && t >= 127995 && t <= 127999;
|
|
1927
2121
|
}
|
|
1928
|
-
function
|
|
2122
|
+
function Qr(e) {
|
|
1929
2123
|
let t = e.codePointAt(0);
|
|
1930
2124
|
return t !== void 0 && t >= 127462 && t <= 127487;
|
|
1931
2125
|
}
|
|
1932
|
-
var
|
|
1933
|
-
function
|
|
1934
|
-
return e ? (
|
|
2126
|
+
var $r;
|
|
2127
|
+
function ei(e) {
|
|
2128
|
+
return e ? ($r ||= ti(), $r(e)) : !1;
|
|
1935
2129
|
}
|
|
1936
|
-
function
|
|
2130
|
+
function ti() {
|
|
1937
2131
|
try {
|
|
1938
2132
|
let e = /\p{Mark}/u;
|
|
1939
2133
|
return (t) => e.test(t);
|
|
@@ -1944,19 +2138,19 @@ function yr() {
|
|
|
1944
2138
|
};
|
|
1945
2139
|
}
|
|
1946
2140
|
}
|
|
1947
|
-
var
|
|
1948
|
-
function
|
|
1949
|
-
return e ? (
|
|
2141
|
+
var ni;
|
|
2142
|
+
function ri(e) {
|
|
2143
|
+
return e ? (ni ||= ii(), ni(e)) : !1;
|
|
1950
2144
|
}
|
|
1951
|
-
function
|
|
2145
|
+
function ii() {
|
|
1952
2146
|
try {
|
|
1953
2147
|
let e = /\p{Extended_Pictographic}/u;
|
|
1954
2148
|
return (t) => e.test(t);
|
|
1955
2149
|
} catch {
|
|
1956
|
-
return
|
|
2150
|
+
return ai;
|
|
1957
2151
|
}
|
|
1958
2152
|
}
|
|
1959
|
-
function
|
|
2153
|
+
function ai(e) {
|
|
1960
2154
|
if (!e) return !1;
|
|
1961
2155
|
for (let t of Array.from(e)) {
|
|
1962
2156
|
let e = t.codePointAt(0);
|
|
@@ -1964,7 +2158,7 @@ function Cr(e) {
|
|
|
1964
2158
|
}
|
|
1965
2159
|
return !1;
|
|
1966
2160
|
}
|
|
1967
|
-
function
|
|
2161
|
+
function oi(e) {
|
|
1968
2162
|
let t = [], n = "", r = 0;
|
|
1969
2163
|
for (let i = 0; i < e.length; i++) {
|
|
1970
2164
|
let a = e[i];
|
|
@@ -1982,16 +2176,16 @@ function wr(e) {
|
|
|
1982
2176
|
breaks: r
|
|
1983
2177
|
}), t;
|
|
1984
2178
|
}
|
|
1985
|
-
function
|
|
2179
|
+
function si(e) {
|
|
1986
2180
|
if (e.length === 0) return [];
|
|
1987
2181
|
let t = [], n = [];
|
|
1988
2182
|
for (let r of e) n.push(r), r.breaks >= 2 && (t.push(n), n = []);
|
|
1989
2183
|
return n.length > 0 && t.push(n), t;
|
|
1990
2184
|
}
|
|
1991
|
-
function
|
|
2185
|
+
function q(e, t) {
|
|
1992
2186
|
return (e & t) === t;
|
|
1993
2187
|
}
|
|
1994
|
-
function
|
|
2188
|
+
function ci(e) {
|
|
1995
2189
|
return {
|
|
1996
2190
|
"--tw-motion-seq-index": e.toString(),
|
|
1997
2191
|
backgroundColor: "inherit",
|
|
@@ -2008,22 +2202,22 @@ function Dr(e) {
|
|
|
2008
2202
|
WebkitTextFillColor: "inherit"
|
|
2009
2203
|
};
|
|
2010
2204
|
}
|
|
2011
|
-
function
|
|
2205
|
+
function li(e) {
|
|
2012
2206
|
if (!e) return e;
|
|
2013
|
-
let t =
|
|
2207
|
+
let t = Wr(e);
|
|
2014
2208
|
if (t.length === 0) return e;
|
|
2015
|
-
let { nodes: n, sawEmoji: r } =
|
|
2209
|
+
let { nodes: n, sawEmoji: r } = ui(t);
|
|
2016
2210
|
return r ? n.length === 1 ? n[0] ?? e : n : e;
|
|
2017
2211
|
}
|
|
2018
|
-
function
|
|
2212
|
+
function ui(e, t) {
|
|
2019
2213
|
let n = [], r = "", i = !1, a = t?.emoji ?? 0, o = () => {
|
|
2020
2214
|
r &&= (n.push(r), "");
|
|
2021
2215
|
};
|
|
2022
2216
|
for (let s of e) {
|
|
2023
|
-
if (
|
|
2217
|
+
if (ri(s)) {
|
|
2024
2218
|
i = !0, o();
|
|
2025
2219
|
let e = `motion-emoji-${t ? t.emoji++ : a++}`;
|
|
2026
|
-
n.push(/* @__PURE__ */
|
|
2220
|
+
n.push(/* @__PURE__ */ L("span", {
|
|
2027
2221
|
"data-motion-emoji": !0,
|
|
2028
2222
|
children: s
|
|
2029
2223
|
}, e));
|
|
@@ -2039,16 +2233,16 @@ function kr(e, t) {
|
|
|
2039
2233
|
sawEmoji: !1
|
|
2040
2234
|
};
|
|
2041
2235
|
}
|
|
2042
|
-
function
|
|
2236
|
+
function di(e) {
|
|
2043
2237
|
if (!e) return K.None;
|
|
2044
2238
|
let t = e.trim();
|
|
2045
2239
|
if (!t) return K.None;
|
|
2046
|
-
let n =
|
|
2240
|
+
let n = jr.get(t);
|
|
2047
2241
|
if (typeof n == "number") return n;
|
|
2048
2242
|
if (typeof document > "u") return K.None;
|
|
2049
2243
|
let r = t.split(/\s+/).filter(Boolean);
|
|
2050
2244
|
if (r.length === 0) return K.None;
|
|
2051
|
-
let i = r.map((e) => `.${
|
|
2245
|
+
let i = r.map((e) => `.${hi(e)}`), a = i.map((e) => RegExp(`(^|[^a-zA-Z0-9_-])${gi(e)}(?![a-zA-Z0-9_-])`)), o = K.None, s = !1;
|
|
2052
2246
|
for (let e of Array.from(document.styleSheets)) {
|
|
2053
2247
|
let t;
|
|
2054
2248
|
try {
|
|
@@ -2056,55 +2250,63 @@ function Ar(e) {
|
|
|
2056
2250
|
} catch {
|
|
2057
2251
|
continue;
|
|
2058
2252
|
}
|
|
2059
|
-
let n =
|
|
2060
|
-
if (n.mask && (
|
|
2061
|
-
|
|
2253
|
+
let n = fi(t, a, i, !1);
|
|
2254
|
+
if (n.mask && (o |= n.mask, o === Or)) break;
|
|
2255
|
+
s ||= n.sawStyleRule;
|
|
2062
2256
|
}
|
|
2063
|
-
return (
|
|
2257
|
+
return (o !== K.None || s) && jr.set(t, o), o;
|
|
2064
2258
|
}
|
|
2065
|
-
function
|
|
2259
|
+
function fi(e, t, n, r) {
|
|
2066
2260
|
if (!e) return {
|
|
2067
2261
|
mask: K.None,
|
|
2068
2262
|
sawStyleRule: !1
|
|
2069
2263
|
};
|
|
2070
|
-
let
|
|
2071
|
-
for (let
|
|
2072
|
-
let
|
|
2073
|
-
if (
|
|
2074
|
-
if (
|
|
2075
|
-
let e =
|
|
2264
|
+
let i = K.None, a = !1;
|
|
2265
|
+
for (let o = 0; o < e.length; o++) {
|
|
2266
|
+
let s = e[o];
|
|
2267
|
+
if (s) {
|
|
2268
|
+
if (s.type === CSSRule.STYLE_RULE) {
|
|
2269
|
+
let e = s.selectorText ?? "";
|
|
2076
2270
|
if (!e || !t.some((t) => t.test(e))) continue;
|
|
2077
|
-
|
|
2078
|
-
for (let t of
|
|
2079
|
-
if (n
|
|
2080
|
-
|
|
2271
|
+
a = !0;
|
|
2272
|
+
for (let t of Tr) t.hints.some((t) => e.includes(t)) && (i |= t.flag);
|
|
2273
|
+
if (!r && e.includes(Dr) && pi(e, n)) for (let t of Er) e.includes(t.hint) && (i |= t.flag);
|
|
2274
|
+
if (i === Or) return {
|
|
2275
|
+
mask: i,
|
|
2081
2276
|
sawStyleRule: !0
|
|
2082
2277
|
};
|
|
2083
|
-
} else if ("cssRules" in
|
|
2084
|
-
let e =
|
|
2085
|
-
if (e.mask && (
|
|
2086
|
-
mask:
|
|
2278
|
+
} else if ("cssRules" in s) {
|
|
2279
|
+
let e = fi(s.cssRules, t, n, r || !mi(s));
|
|
2280
|
+
if (e.mask && (i |= e.mask, i === Or)) return {
|
|
2281
|
+
mask: i,
|
|
2087
2282
|
sawStyleRule: !0
|
|
2088
2283
|
};
|
|
2089
|
-
|
|
2284
|
+
a ||= e.sawStyleRule;
|
|
2090
2285
|
}
|
|
2091
2286
|
}
|
|
2092
2287
|
}
|
|
2093
2288
|
return {
|
|
2094
|
-
mask:
|
|
2095
|
-
sawStyleRule:
|
|
2289
|
+
mask: i,
|
|
2290
|
+
sawStyleRule: a
|
|
2096
2291
|
};
|
|
2097
2292
|
}
|
|
2098
|
-
function
|
|
2293
|
+
function pi(e, t) {
|
|
2294
|
+
let n = e.trimStart().split(/\s/, 1)[0] ?? "";
|
|
2295
|
+
return t.includes(n);
|
|
2296
|
+
}
|
|
2297
|
+
function mi(e) {
|
|
2298
|
+
return typeof CSSLayerBlockRule < "u" && e instanceof CSSLayerBlockRule;
|
|
2299
|
+
}
|
|
2300
|
+
function hi(e) {
|
|
2099
2301
|
return typeof CSS < "u" && typeof CSS.escape == "function" ? CSS.escape(e) : e.replace(/[^a-zA-Z0-9_-]/g, (e) => `\\${e}`);
|
|
2100
2302
|
}
|
|
2101
|
-
function
|
|
2303
|
+
function gi(e) {
|
|
2102
2304
|
return e.replace(/[.*+?^${}()|[\]\\]/g, (e) => `\\${e}`);
|
|
2103
2305
|
}
|
|
2104
2306
|
//#endregion
|
|
2105
2307
|
//#region src/auth/storage.ts
|
|
2106
|
-
var
|
|
2107
|
-
function
|
|
2308
|
+
var _i = "ikon-auth-session", vi = "ikon-auth-refreshable", yi = "ikon-auth-auto-login-attempted-run", bi = 6048e5, xi = 6e4;
|
|
2309
|
+
function Si(e) {
|
|
2108
2310
|
try {
|
|
2109
2311
|
let t = e.split(".");
|
|
2110
2312
|
if (t.length !== 3) return;
|
|
@@ -2114,105 +2316,105 @@ function zr(e) {
|
|
|
2114
2316
|
return;
|
|
2115
2317
|
}
|
|
2116
2318
|
}
|
|
2117
|
-
function
|
|
2118
|
-
let t =
|
|
2119
|
-
return !t || typeof t.exp == "number" && Date.now() >= t.exp * 1e3 -
|
|
2319
|
+
function Ci(e) {
|
|
2320
|
+
let t = Si(e);
|
|
2321
|
+
return !t || typeof t.exp == "number" && Date.now() >= t.exp * 1e3 - xi;
|
|
2120
2322
|
}
|
|
2121
|
-
function
|
|
2122
|
-
let t =
|
|
2323
|
+
function wi(e) {
|
|
2324
|
+
let t = Si(e)?.exp;
|
|
2123
2325
|
return typeof t == "number" ? (/* @__PURE__ */ new Date(t * 1e3)).toISOString() : void 0;
|
|
2124
2326
|
}
|
|
2125
|
-
function
|
|
2327
|
+
function J(e) {
|
|
2126
2328
|
try {
|
|
2127
|
-
localStorage.setItem(
|
|
2329
|
+
localStorage.setItem(_i, JSON.stringify(e));
|
|
2128
2330
|
} catch {
|
|
2129
2331
|
console.warn("Failed to save auth session to localStorage");
|
|
2130
2332
|
}
|
|
2131
2333
|
}
|
|
2132
|
-
function
|
|
2334
|
+
function Ti() {
|
|
2133
2335
|
try {
|
|
2134
|
-
let e = localStorage.getItem(
|
|
2336
|
+
let e = localStorage.getItem(_i);
|
|
2135
2337
|
if (!e) return null;
|
|
2136
2338
|
let t = JSON.parse(e);
|
|
2137
|
-
return Date.now() - t.authenticatedAt >
|
|
2339
|
+
return Date.now() - t.authenticatedAt > bi || Ci(t.token) ? (Ni(), null) : t;
|
|
2138
2340
|
} catch {
|
|
2139
2341
|
return console.warn("Failed to load auth session from localStorage"), null;
|
|
2140
2342
|
}
|
|
2141
2343
|
}
|
|
2142
|
-
function
|
|
2344
|
+
function Ei() {
|
|
2143
2345
|
try {
|
|
2144
|
-
let e = localStorage.getItem(
|
|
2346
|
+
let e = localStorage.getItem(_i);
|
|
2145
2347
|
if (!e) return !1;
|
|
2146
2348
|
let t = JSON.parse(e);
|
|
2147
|
-
return t.provider === "dev" &&
|
|
2349
|
+
return t.provider === "dev" && Ci(t.token);
|
|
2148
2350
|
} catch {
|
|
2149
2351
|
return !1;
|
|
2150
2352
|
}
|
|
2151
2353
|
}
|
|
2152
|
-
function
|
|
2354
|
+
function Di(e) {
|
|
2153
2355
|
try {
|
|
2154
|
-
localStorage.removeItem(
|
|
2356
|
+
localStorage.removeItem(_i), localStorage.setItem(vi, JSON.stringify(e));
|
|
2155
2357
|
} catch {
|
|
2156
2358
|
console.warn("Failed to save the auth session marker to localStorage");
|
|
2157
2359
|
}
|
|
2158
2360
|
}
|
|
2159
|
-
function
|
|
2361
|
+
function Oi() {
|
|
2160
2362
|
try {
|
|
2161
|
-
let e = localStorage.getItem(
|
|
2363
|
+
let e = localStorage.getItem(vi);
|
|
2162
2364
|
if (!e) return null;
|
|
2163
2365
|
let t = JSON.parse(e);
|
|
2164
|
-
return Date.now() - t.renewedAt >
|
|
2366
|
+
return Date.now() - t.renewedAt > bi ? (Ai(), null) : t;
|
|
2165
2367
|
} catch {
|
|
2166
2368
|
return console.warn("Failed to load the auth session marker from localStorage"), null;
|
|
2167
2369
|
}
|
|
2168
2370
|
}
|
|
2169
|
-
function
|
|
2170
|
-
let e =
|
|
2171
|
-
e &&
|
|
2371
|
+
function ki() {
|
|
2372
|
+
let e = Oi();
|
|
2373
|
+
e && Di({
|
|
2172
2374
|
...e,
|
|
2173
2375
|
renewedAt: Date.now()
|
|
2174
2376
|
});
|
|
2175
2377
|
}
|
|
2176
|
-
function
|
|
2378
|
+
function Ai() {
|
|
2177
2379
|
try {
|
|
2178
|
-
localStorage.removeItem(
|
|
2380
|
+
localStorage.removeItem(vi);
|
|
2179
2381
|
} catch {
|
|
2180
2382
|
console.warn("Failed to clear the auth session marker from localStorage");
|
|
2181
2383
|
}
|
|
2182
2384
|
}
|
|
2183
|
-
function
|
|
2184
|
-
|
|
2385
|
+
function ji() {
|
|
2386
|
+
Ti()?.provider === "anonymous" && Ni(), Oi()?.provider === "anonymous" && Ai();
|
|
2185
2387
|
}
|
|
2186
|
-
function
|
|
2388
|
+
function Mi() {
|
|
2187
2389
|
try {
|
|
2188
2390
|
let e = typeof window < "u" ? new URLSearchParams(window.location.search) : void 0;
|
|
2189
2391
|
if (e?.get("ikon_token") || e?.get("ikon_code")) return !0;
|
|
2190
2392
|
} catch {}
|
|
2191
|
-
let e =
|
|
2393
|
+
let e = Ti()?.provider ?? Oi()?.provider;
|
|
2192
2394
|
return e !== void 0 && e !== "anonymous";
|
|
2193
2395
|
}
|
|
2194
|
-
function
|
|
2396
|
+
function Ni() {
|
|
2195
2397
|
try {
|
|
2196
|
-
localStorage.removeItem(
|
|
2398
|
+
localStorage.removeItem(_i);
|
|
2197
2399
|
} catch {
|
|
2198
2400
|
console.warn("Failed to clear auth session from localStorage");
|
|
2199
2401
|
}
|
|
2200
2402
|
}
|
|
2201
|
-
function
|
|
2403
|
+
function Pi(e) {
|
|
2202
2404
|
if (e) try {
|
|
2203
|
-
sessionStorage.setItem(
|
|
2405
|
+
sessionStorage.setItem(yi, e);
|
|
2204
2406
|
} catch {
|
|
2205
2407
|
console.warn("Failed to record auto-login attempt in sessionStorage");
|
|
2206
2408
|
}
|
|
2207
2409
|
}
|
|
2208
|
-
function
|
|
2410
|
+
function Fi() {
|
|
2209
2411
|
try {
|
|
2210
|
-
return sessionStorage.getItem(
|
|
2412
|
+
return sessionStorage.getItem(yi);
|
|
2211
2413
|
} catch {
|
|
2212
2414
|
return null;
|
|
2213
2415
|
}
|
|
2214
2416
|
}
|
|
2215
|
-
function
|
|
2417
|
+
function Y(e) {
|
|
2216
2418
|
return {
|
|
2217
2419
|
id: "",
|
|
2218
2420
|
provider: e.provider,
|
|
@@ -2223,8 +2425,8 @@ function J(e) {
|
|
|
2223
2425
|
}
|
|
2224
2426
|
//#endregion
|
|
2225
2427
|
//#region src/auth/auth-service.ts
|
|
2226
|
-
var
|
|
2227
|
-
async function
|
|
2428
|
+
var Ii = 15e3, Li = 15e3, X = D("AuthService");
|
|
2429
|
+
async function Ri(e) {
|
|
2228
2430
|
try {
|
|
2229
2431
|
return await fetch(e, {
|
|
2230
2432
|
method: "GET",
|
|
@@ -2234,34 +2436,34 @@ async function ti(e) {
|
|
|
2234
2436
|
return `no-cors probe ALSO FAILED (${e instanceof Error ? e.name : "Error"}) → origin is unreachable: TLS handshake / certificate, DNS, or network (old browser may not trust this host's cert)`;
|
|
2235
2437
|
}
|
|
2236
2438
|
}
|
|
2237
|
-
var
|
|
2238
|
-
function
|
|
2239
|
-
if (e.headers.get(
|
|
2439
|
+
var zi = "x-ikon-auth-service";
|
|
2440
|
+
function Bi(e) {
|
|
2441
|
+
if (e.headers.get(zi) !== null) return !1;
|
|
2240
2442
|
if (e.status === 404 || e.status === 405) return !0;
|
|
2241
2443
|
let t = e.headers.get("content-type") ?? "";
|
|
2242
2444
|
return e.status === 200 && t.includes("text/html");
|
|
2243
2445
|
}
|
|
2244
|
-
async function
|
|
2245
|
-
let r = `${e}${t}`, i =
|
|
2446
|
+
async function Z(e, t, n) {
|
|
2447
|
+
let r = `${e}${t}`, i = De(), a = i !== null && e === i, o = a ? await ye() : i, s = o !== null && o !== e ? `${o}${t}` : null, c;
|
|
2246
2448
|
try {
|
|
2247
2449
|
c = await fetch(r, n);
|
|
2248
2450
|
} catch (i) {
|
|
2249
2451
|
let a = i instanceof Error ? `${i.name}: ${i.message}` : String(i);
|
|
2250
2452
|
if (!s) {
|
|
2251
|
-
let n = await
|
|
2252
|
-
throw
|
|
2453
|
+
let n = await Ri(e);
|
|
2454
|
+
throw X.error(`Auth request ${t} could not reach ${r} — ${a}. ${n}`), Error(`Auth request could not reach ${r} (${a}). ${n}`, { cause: i });
|
|
2253
2455
|
}
|
|
2254
|
-
|
|
2456
|
+
X.warn(`Auth request ${t} could not reach ${r} (${a}); falling back to ${s}`);
|
|
2255
2457
|
try {
|
|
2256
2458
|
return await fetch(s, n);
|
|
2257
2459
|
} catch (n) {
|
|
2258
|
-
let i = n instanceof Error ? `${n.name}: ${n.message}` : String(n), o = await
|
|
2259
|
-
throw
|
|
2460
|
+
let i = n instanceof Error ? `${n.name}: ${n.message}` : String(n), o = await Ri(e);
|
|
2461
|
+
throw X.error(`Auth request ${t} failed on both ${r} (${a}) and ${s} (${i}). ${o}`), Error(`Auth request unreachable: ${r} (${a}) and ${s} (${i})`, { cause: n });
|
|
2260
2462
|
}
|
|
2261
2463
|
}
|
|
2262
|
-
return a && s !== null &&
|
|
2464
|
+
return a && s !== null && Bi(c) ? (X.warn(`Auth request ${t} got a non-auth-service answer from ${r} (${c.status}); this LB has no /ikon/auth route, falling back to ${s}`), fetch(s, n)) : c;
|
|
2263
2465
|
}
|
|
2264
|
-
async function
|
|
2466
|
+
async function Vi(e, t) {
|
|
2265
2467
|
let n;
|
|
2266
2468
|
try {
|
|
2267
2469
|
n = await e.json();
|
|
@@ -2274,84 +2476,84 @@ async function ii(e, t) {
|
|
|
2274
2476
|
...typeof n.expiresAt == "string" && n.expiresAt.length > 0 ? { expiresAt: n.expiresAt } : {}
|
|
2275
2477
|
};
|
|
2276
2478
|
}
|
|
2277
|
-
async function
|
|
2278
|
-
let r =
|
|
2479
|
+
async function Hi(e, t, n) {
|
|
2480
|
+
let r = Ee(), i = n === "guest" ? "anonymous" : n, a = {
|
|
2279
2481
|
method: "POST",
|
|
2280
2482
|
headers: { "Content-Type": "application/json" },
|
|
2281
2483
|
body: JSON.stringify({
|
|
2282
2484
|
deviceId: r,
|
|
2283
2485
|
space: e,
|
|
2284
2486
|
...i ? { method: i } : {},
|
|
2285
|
-
testLink:
|
|
2487
|
+
testLink: ke() ?? void 0
|
|
2286
2488
|
})
|
|
2287
2489
|
}, o = typeof window < "u" ? window.location.origin : "?";
|
|
2288
|
-
|
|
2289
|
-
let s = await
|
|
2490
|
+
X.debug(`Anonymous auth: POST ${t}/anonymous (space=${e}, origin=${o})`);
|
|
2491
|
+
let s = await Z(t, "/anonymous", a);
|
|
2290
2492
|
if (!s.ok) {
|
|
2291
2493
|
let e = await s.text().catch(() => "Unknown error");
|
|
2292
|
-
throw
|
|
2494
|
+
throw X.error(`Anonymous auth HTTP ${s.status} from ${s.url}: ${e}`), Error(`Anonymous auth failed: ${s.status} ${e}`);
|
|
2293
2495
|
}
|
|
2294
|
-
let { token: c } = await
|
|
2496
|
+
let { token: c } = await Vi(s, `Anonymous auth for space ${e}`), l = {
|
|
2295
2497
|
token: c,
|
|
2296
2498
|
provider: "anonymous",
|
|
2297
2499
|
authenticatedAt: Date.now()
|
|
2298
2500
|
};
|
|
2299
|
-
return
|
|
2501
|
+
return J(l), l;
|
|
2300
2502
|
}
|
|
2301
|
-
async function
|
|
2302
|
-
let r = await
|
|
2503
|
+
async function Ui({ email: e, spaceId: t, authUrl: n }) {
|
|
2504
|
+
let r = await Z(n, "/email/send", {
|
|
2303
2505
|
method: "POST",
|
|
2304
2506
|
headers: { "Content-Type": "application/json" },
|
|
2305
2507
|
body: JSON.stringify({
|
|
2306
2508
|
email: e.trim(),
|
|
2307
2509
|
space: t
|
|
2308
2510
|
}),
|
|
2309
|
-
signal:
|
|
2511
|
+
signal: E(Ii)
|
|
2310
2512
|
});
|
|
2311
2513
|
if (!r.ok) {
|
|
2312
2514
|
let e = await r.text().catch(() => "Failed to send login code");
|
|
2313
2515
|
throw Error(e);
|
|
2314
2516
|
}
|
|
2315
2517
|
}
|
|
2316
|
-
async function
|
|
2317
|
-
let r = await
|
|
2518
|
+
async function Wi({ email: e, code: t, authUrl: n }) {
|
|
2519
|
+
let r = await Z(n, "/email/code", {
|
|
2318
2520
|
method: "POST",
|
|
2319
2521
|
headers: { "Content-Type": "application/json" },
|
|
2320
2522
|
body: JSON.stringify({
|
|
2321
2523
|
email: e.trim(),
|
|
2322
2524
|
code: t.trim()
|
|
2323
2525
|
}),
|
|
2324
|
-
signal:
|
|
2526
|
+
signal: E(Ii)
|
|
2325
2527
|
});
|
|
2326
2528
|
if (!r.ok) {
|
|
2327
2529
|
let e = await r.text().catch(() => "Invalid code");
|
|
2328
2530
|
throw Error(e);
|
|
2329
2531
|
}
|
|
2330
|
-
let { token: i } = await
|
|
2532
|
+
let { token: i } = await Vi(r, "Login-code verification"), a = {
|
|
2331
2533
|
token: i,
|
|
2332
2534
|
provider: "email",
|
|
2333
2535
|
authenticatedAt: Date.now()
|
|
2334
2536
|
};
|
|
2335
|
-
return
|
|
2537
|
+
return J(a), a;
|
|
2336
2538
|
}
|
|
2337
|
-
function
|
|
2338
|
-
let e = new URLSearchParams(window.location.search), t = e.get(
|
|
2539
|
+
function Gi() {
|
|
2540
|
+
let e = new URLSearchParams(window.location.search), t = e.get(w), n = e.get(C);
|
|
2339
2541
|
return t && n ? {
|
|
2340
2542
|
token: t,
|
|
2341
2543
|
provider: n
|
|
2342
2544
|
} : null;
|
|
2343
2545
|
}
|
|
2344
|
-
function
|
|
2345
|
-
let e = new URLSearchParams(window.location.search), t = e.get(
|
|
2546
|
+
function Ki() {
|
|
2547
|
+
let e = new URLSearchParams(window.location.search), t = e.get(te), n = e.get(C);
|
|
2346
2548
|
return t && n ? {
|
|
2347
2549
|
code: t,
|
|
2348
2550
|
provider: n
|
|
2349
2551
|
} : null;
|
|
2350
2552
|
}
|
|
2351
|
-
async function
|
|
2352
|
-
let r =
|
|
2553
|
+
async function qi(e, t, n) {
|
|
2554
|
+
let r = Je();
|
|
2353
2555
|
if (!r) throw Error("This sign-in was started in a different browser or tab");
|
|
2354
|
-
let i = await
|
|
2556
|
+
let i = await Z(await O(n), "/oauth/exchange", {
|
|
2355
2557
|
method: "POST",
|
|
2356
2558
|
headers: { "Content-Type": "application/json" },
|
|
2357
2559
|
body: JSON.stringify({
|
|
@@ -2359,37 +2561,37 @@ async function ui(e, t, n) {
|
|
|
2359
2561
|
codeVerifier: r,
|
|
2360
2562
|
supportsRefresh: !0
|
|
2361
2563
|
}),
|
|
2362
|
-
signal:
|
|
2564
|
+
signal: E(Ii)
|
|
2363
2565
|
});
|
|
2364
2566
|
if (!i.ok) throw Error("Could not complete the sign-in");
|
|
2365
|
-
let { token: a, expiresAt: o } = await
|
|
2567
|
+
let { token: a, expiresAt: o } = await Vi(i, `OAuth code exchange for ${t}`), s = {
|
|
2366
2568
|
token: a,
|
|
2367
2569
|
provider: t,
|
|
2368
2570
|
authenticatedAt: Date.now(),
|
|
2369
2571
|
expiresAt: o
|
|
2370
2572
|
};
|
|
2371
|
-
return o ?
|
|
2573
|
+
return o ? Di({
|
|
2372
2574
|
provider: t,
|
|
2373
2575
|
authenticatedAt: s.authenticatedAt,
|
|
2374
2576
|
renewedAt: s.authenticatedAt
|
|
2375
|
-
}) :
|
|
2577
|
+
}) : J(s), s;
|
|
2376
2578
|
}
|
|
2377
|
-
async function
|
|
2378
|
-
let t =
|
|
2579
|
+
async function Ji(e) {
|
|
2580
|
+
let t = De();
|
|
2379
2581
|
if (t === null) return null;
|
|
2380
2582
|
let n;
|
|
2381
2583
|
try {
|
|
2382
2584
|
n = await fetch(`${t}/session/refresh`, {
|
|
2383
2585
|
method: "POST",
|
|
2384
|
-
signal:
|
|
2586
|
+
signal: E(Li)
|
|
2385
2587
|
});
|
|
2386
2588
|
} catch (e) {
|
|
2387
2589
|
let n = e instanceof Error ? `${e.name}: ${e.message}` : String(e);
|
|
2388
|
-
throw
|
|
2590
|
+
throw X.warn(`Session renewal could not reach ${t}/session/refresh (${n})`), Error(`Session renewal could not reach the auth service (${n})`, { cause: e });
|
|
2389
2591
|
}
|
|
2390
2592
|
if (n.status === 401) return null;
|
|
2391
2593
|
if (!n.ok) throw Error(`Session renewal failed: ${n.status}`);
|
|
2392
|
-
let { token: r, expiresAt: i } = await
|
|
2594
|
+
let { token: r, expiresAt: i } = await Vi(n, "Session renewal");
|
|
2393
2595
|
if (!i) throw Error("Session renewal returned a token with no expiry");
|
|
2394
2596
|
return {
|
|
2395
2597
|
token: r,
|
|
@@ -2398,17 +2600,17 @@ async function di(e) {
|
|
|
2398
2600
|
expiresAt: i
|
|
2399
2601
|
};
|
|
2400
2602
|
}
|
|
2401
|
-
function
|
|
2603
|
+
function Yi() {
|
|
2402
2604
|
let e = new URLSearchParams(window.location.search), t = e.get("error");
|
|
2403
2605
|
return t ? {
|
|
2404
2606
|
code: t,
|
|
2405
|
-
provider: e.get(
|
|
2607
|
+
provider: e.get(C)
|
|
2406
2608
|
} : null;
|
|
2407
2609
|
}
|
|
2408
|
-
function
|
|
2409
|
-
return
|
|
2610
|
+
function Xi() {
|
|
2611
|
+
return Oe();
|
|
2410
2612
|
}
|
|
2411
|
-
var
|
|
2613
|
+
var Zi = {
|
|
2412
2614
|
google: "Google",
|
|
2413
2615
|
facebook: "Facebook",
|
|
2414
2616
|
apple: "Apple",
|
|
@@ -2416,8 +2618,8 @@ var mi = {
|
|
|
2416
2618
|
signicat: "eID",
|
|
2417
2619
|
sso: "organisation"
|
|
2418
2620
|
};
|
|
2419
|
-
function
|
|
2420
|
-
let r = t ?
|
|
2621
|
+
function Qi(e, t, n) {
|
|
2622
|
+
let r = t ? Zi[t] ?? t : "this provider";
|
|
2421
2623
|
switch (e) {
|
|
2422
2624
|
case "account_exists_unverified_email": {
|
|
2423
2625
|
let e = `This email address already has an account on this app that uses a different sign-in method. For security, ${r} sign-in can't be connected to it automatically.`;
|
|
@@ -2438,21 +2640,21 @@ function hi(e, t, n) {
|
|
|
2438
2640
|
default: return e;
|
|
2439
2641
|
}
|
|
2440
2642
|
}
|
|
2441
|
-
function
|
|
2643
|
+
function $i() {
|
|
2442
2644
|
let e = new URLSearchParams(window.location.search);
|
|
2443
2645
|
for (let t of [
|
|
2444
|
-
T,
|
|
2445
|
-
S,
|
|
2446
2646
|
w,
|
|
2647
|
+
te,
|
|
2648
|
+
C,
|
|
2447
2649
|
"error",
|
|
2448
|
-
|
|
2650
|
+
S
|
|
2449
2651
|
]) e.delete(t);
|
|
2450
2652
|
let t = e.toString();
|
|
2451
2653
|
window.history.replaceState({}, "", t.length > 0 ? `${window.location.pathname}?${t}` : window.location.pathname);
|
|
2452
2654
|
}
|
|
2453
|
-
async function
|
|
2454
|
-
let i = r ?? window.location.origin + window.location.pathname + window.location.search, a = await
|
|
2455
|
-
return
|
|
2655
|
+
async function ea(e, t, n, r) {
|
|
2656
|
+
let i = r ?? window.location.origin + window.location.pathname + window.location.search, a = await _e();
|
|
2657
|
+
return de({
|
|
2456
2658
|
authUrl: n,
|
|
2457
2659
|
provider: e,
|
|
2458
2660
|
spaceId: t,
|
|
@@ -2460,29 +2662,29 @@ async function _i(e, t, n, r) {
|
|
|
2460
2662
|
codeChallenge: a ?? void 0
|
|
2461
2663
|
});
|
|
2462
2664
|
}
|
|
2463
|
-
async function
|
|
2464
|
-
let i = await
|
|
2665
|
+
async function ta(e, t, n, r = {}) {
|
|
2666
|
+
let i = await _e();
|
|
2465
2667
|
if (!i) return null;
|
|
2466
|
-
let a = r.returnUrl ?? window.location.origin + window.location.pathname + window.location.search, o = r.linkSessionToken ? await
|
|
2467
|
-
return
|
|
2668
|
+
let a = r.returnUrl ?? window.location.origin + window.location.pathname + window.location.search, o = r.linkSessionToken ? await ia(n, r.linkSessionToken, e, i) : void 0;
|
|
2669
|
+
return de({
|
|
2468
2670
|
authUrl: n,
|
|
2469
|
-
provider: `${
|
|
2671
|
+
provider: `${T}${e}`,
|
|
2470
2672
|
spaceId: t,
|
|
2471
2673
|
returnUrl: a,
|
|
2472
2674
|
codeChallenge: i,
|
|
2473
2675
|
linkTicket: o
|
|
2474
2676
|
});
|
|
2475
2677
|
}
|
|
2476
|
-
async function
|
|
2678
|
+
async function na(e, t) {
|
|
2477
2679
|
try {
|
|
2478
|
-
let n = await
|
|
2680
|
+
let n = await Z(e, `/sso/connections?host=${encodeURIComponent(t)}`, { method: "GET" });
|
|
2479
2681
|
return n.ok ? await n.json() : [];
|
|
2480
2682
|
} catch (e) {
|
|
2481
|
-
return
|
|
2683
|
+
return X.warn(`Could not look up the SSO connections of ${t}: ${e instanceof Error ? e.message : String(e)}`), [];
|
|
2482
2684
|
}
|
|
2483
2685
|
}
|
|
2484
|
-
async function
|
|
2485
|
-
let r = await
|
|
2686
|
+
async function ra(e, t, n) {
|
|
2687
|
+
let r = await Z(e, "/sso/discover", {
|
|
2486
2688
|
method: "POST",
|
|
2487
2689
|
headers: { "Content-Type": "application/json" },
|
|
2488
2690
|
body: JSON.stringify({
|
|
@@ -2493,9 +2695,9 @@ async function bi(e, t, n) {
|
|
|
2493
2695
|
if (!r.ok) throw Error(r.status === 429 ? "Too many attempts. Please wait a minute and try again." : "Could not look up your organisation sign-in.");
|
|
2494
2696
|
return (await r.json()).connection ?? null;
|
|
2495
2697
|
}
|
|
2496
|
-
async function
|
|
2698
|
+
async function ia(e, t, n, r) {
|
|
2497
2699
|
try {
|
|
2498
|
-
let i = await
|
|
2700
|
+
let i = await Z(e, "/oauth/sso/link-intent", {
|
|
2499
2701
|
method: "POST",
|
|
2500
2702
|
headers: {
|
|
2501
2703
|
"Content-Type": "application/json",
|
|
@@ -2508,12 +2710,12 @@ async function xi(e, t, n, r) {
|
|
|
2508
2710
|
});
|
|
2509
2711
|
return i.ok ? (await i.json()).ticket : void 0;
|
|
2510
2712
|
} catch (e) {
|
|
2511
|
-
|
|
2713
|
+
X.warn(`Could not request an SSO link ticket for connection ${n}: ${e instanceof Error ? e.message : String(e)}`);
|
|
2512
2714
|
return;
|
|
2513
2715
|
}
|
|
2514
2716
|
}
|
|
2515
|
-
async function
|
|
2516
|
-
let t = await
|
|
2717
|
+
async function aa(e) {
|
|
2718
|
+
let t = await Z(e, "/passkey/registration/options", {
|
|
2517
2719
|
method: "POST",
|
|
2518
2720
|
headers: { "Content-Type": "application/json" }
|
|
2519
2721
|
});
|
|
@@ -2523,8 +2725,8 @@ async function Si(e) {
|
|
|
2523
2725
|
}
|
|
2524
2726
|
return t.json();
|
|
2525
2727
|
}
|
|
2526
|
-
async function
|
|
2527
|
-
let r = await
|
|
2728
|
+
async function oa(e, t, n) {
|
|
2729
|
+
let r = await Z(e, "/passkey/registration/verify", {
|
|
2528
2730
|
method: "POST",
|
|
2529
2731
|
headers: { "Content-Type": "application/json" },
|
|
2530
2732
|
body: JSON.stringify({
|
|
@@ -2536,15 +2738,15 @@ async function Ci(e, t, n) {
|
|
|
2536
2738
|
let e = await r.text().catch(() => "Registration verification failed");
|
|
2537
2739
|
throw Error(e);
|
|
2538
2740
|
}
|
|
2539
|
-
let { token: i } = await
|
|
2741
|
+
let { token: i } = await Vi(r, "Passkey registration verification"), a = {
|
|
2540
2742
|
token: i,
|
|
2541
2743
|
provider: "passkey",
|
|
2542
2744
|
authenticatedAt: Date.now()
|
|
2543
2745
|
};
|
|
2544
|
-
return
|
|
2746
|
+
return J(a), a;
|
|
2545
2747
|
}
|
|
2546
|
-
async function
|
|
2547
|
-
let n = await
|
|
2748
|
+
async function sa(e, t) {
|
|
2749
|
+
let n = await Z(e, "/passkey/authentication/options", {
|
|
2548
2750
|
method: "POST",
|
|
2549
2751
|
headers: { "Content-Type": "application/json" },
|
|
2550
2752
|
body: JSON.stringify({ email: t })
|
|
@@ -2555,8 +2757,8 @@ async function wi(e, t) {
|
|
|
2555
2757
|
}
|
|
2556
2758
|
return n.json();
|
|
2557
2759
|
}
|
|
2558
|
-
async function
|
|
2559
|
-
let n = await
|
|
2760
|
+
async function ca(e, t) {
|
|
2761
|
+
let n = await Z(e, "/passkey/authentication/verify", {
|
|
2560
2762
|
method: "POST",
|
|
2561
2763
|
headers: { "Content-Type": "application/json" },
|
|
2562
2764
|
body: JSON.stringify({ response: t })
|
|
@@ -2565,61 +2767,61 @@ async function Ti(e, t) {
|
|
|
2565
2767
|
let e = await n.text().catch(() => "Authentication verification failed");
|
|
2566
2768
|
throw Error(e);
|
|
2567
2769
|
}
|
|
2568
|
-
let { token: r } = await
|
|
2770
|
+
let { token: r } = await Vi(n, "Passkey authentication verification"), i = {
|
|
2569
2771
|
token: r,
|
|
2570
2772
|
provider: "passkey",
|
|
2571
2773
|
authenticatedAt: Date.now()
|
|
2572
2774
|
};
|
|
2573
|
-
return
|
|
2775
|
+
return J(i), i;
|
|
2574
2776
|
}
|
|
2575
|
-
async function
|
|
2777
|
+
async function la(e, t) {
|
|
2576
2778
|
try {
|
|
2577
|
-
await
|
|
2779
|
+
await Z(await O(t), "/logout", {
|
|
2578
2780
|
method: "POST",
|
|
2579
2781
|
headers: { Authorization: `Bearer ${e}` },
|
|
2580
|
-
signal:
|
|
2782
|
+
signal: E(Ii)
|
|
2581
2783
|
});
|
|
2582
2784
|
} catch {}
|
|
2583
2785
|
}
|
|
2584
2786
|
//#endregion
|
|
2585
2787
|
//#region ../../node_modules/@simplewebauthn/browser/esm/helpers/bufferToBase64URLString.js
|
|
2586
|
-
function
|
|
2788
|
+
function Q(e) {
|
|
2587
2789
|
let t = new Uint8Array(e), n = "";
|
|
2588
2790
|
for (let e of t) n += String.fromCharCode(e);
|
|
2589
2791
|
return btoa(n).replace(/\+/g, "-").replace(/\//g, "_").replace(/=/g, "");
|
|
2590
2792
|
}
|
|
2591
2793
|
//#endregion
|
|
2592
2794
|
//#region ../../node_modules/@simplewebauthn/browser/esm/helpers/base64URLStringToBuffer.js
|
|
2593
|
-
function
|
|
2795
|
+
function ua(e) {
|
|
2594
2796
|
let t = e.replace(/-/g, "+").replace(/_/g, "/"), n = (4 - t.length % 4) % 4, r = t.padEnd(t.length + n, "="), i = atob(r), a = new ArrayBuffer(i.length), o = new Uint8Array(a);
|
|
2595
2797
|
for (let e = 0; e < i.length; e++) o[e] = i.charCodeAt(e);
|
|
2596
2798
|
return a;
|
|
2597
2799
|
}
|
|
2598
2800
|
//#endregion
|
|
2599
2801
|
//#region ../../node_modules/@simplewebauthn/browser/esm/helpers/browserSupportsWebAuthn.js
|
|
2600
|
-
function
|
|
2601
|
-
return
|
|
2802
|
+
function da() {
|
|
2803
|
+
return fa.stubThis(globalThis?.PublicKeyCredential !== void 0 && typeof globalThis.PublicKeyCredential == "function");
|
|
2602
2804
|
}
|
|
2603
|
-
var
|
|
2805
|
+
var fa = { stubThis: (e) => e };
|
|
2604
2806
|
//#endregion
|
|
2605
2807
|
//#region ../../node_modules/@simplewebauthn/browser/esm/helpers/toPublicKeyCredentialDescriptor.js
|
|
2606
|
-
function
|
|
2808
|
+
function pa(e) {
|
|
2607
2809
|
let { id: t } = e;
|
|
2608
2810
|
return {
|
|
2609
2811
|
...e,
|
|
2610
|
-
id:
|
|
2812
|
+
id: ua(t),
|
|
2611
2813
|
transports: e.transports,
|
|
2612
2814
|
type: e.type
|
|
2613
2815
|
};
|
|
2614
2816
|
}
|
|
2615
2817
|
//#endregion
|
|
2616
2818
|
//#region ../../node_modules/@simplewebauthn/browser/esm/helpers/isValidDomain.js
|
|
2617
|
-
function
|
|
2819
|
+
function ma(e) {
|
|
2618
2820
|
return e === "localhost" || /^((xn--[a-z0-9-]+|[a-z0-9]+(-[a-z0-9]+)*)\.)+([a-z]{2,}|xn--[a-z0-9-]+)$/i.test(e);
|
|
2619
2821
|
}
|
|
2620
2822
|
//#endregion
|
|
2621
2823
|
//#region ../../node_modules/@simplewebauthn/browser/esm/helpers/webAuthnError.js
|
|
2622
|
-
var
|
|
2824
|
+
var $ = class extends Error {
|
|
2623
2825
|
constructor({ message: e, code: t, cause: n, name: r }) {
|
|
2624
2826
|
super(e, { cause: n }), Object.defineProperty(this, "code", {
|
|
2625
2827
|
enumerable: !0,
|
|
@@ -2631,76 +2833,76 @@ var Q = class extends Error {
|
|
|
2631
2833
|
};
|
|
2632
2834
|
//#endregion
|
|
2633
2835
|
//#region ../../node_modules/@simplewebauthn/browser/esm/helpers/identifyRegistrationError.js
|
|
2634
|
-
function
|
|
2836
|
+
function ha({ error: e, options: t }) {
|
|
2635
2837
|
let { publicKey: n } = t;
|
|
2636
2838
|
if (!n) throw Error("options was missing required publicKey property");
|
|
2637
2839
|
if (e.name === "AbortError") {
|
|
2638
|
-
if (t.signal instanceof AbortSignal) return new
|
|
2840
|
+
if (t.signal instanceof AbortSignal) return new $({
|
|
2639
2841
|
message: "Registration ceremony was sent an abort signal",
|
|
2640
2842
|
code: "ERROR_CEREMONY_ABORTED",
|
|
2641
2843
|
cause: e
|
|
2642
2844
|
});
|
|
2643
2845
|
} else if (e.name === "ConstraintError") {
|
|
2644
|
-
if (n.authenticatorSelection?.requireResidentKey === !0) return new
|
|
2846
|
+
if (n.authenticatorSelection?.requireResidentKey === !0) return new $({
|
|
2645
2847
|
message: "Discoverable credentials were required but no available authenticator supported it",
|
|
2646
2848
|
code: "ERROR_AUTHENTICATOR_MISSING_DISCOVERABLE_CREDENTIAL_SUPPORT",
|
|
2647
2849
|
cause: e
|
|
2648
2850
|
});
|
|
2649
|
-
if (t.mediation === "conditional" && n.authenticatorSelection?.userVerification === "required") return new
|
|
2851
|
+
if (t.mediation === "conditional" && n.authenticatorSelection?.userVerification === "required") return new $({
|
|
2650
2852
|
message: "User verification was required during automatic registration but it could not be performed",
|
|
2651
2853
|
code: "ERROR_AUTO_REGISTER_USER_VERIFICATION_FAILURE",
|
|
2652
2854
|
cause: e
|
|
2653
2855
|
});
|
|
2654
|
-
if (n.authenticatorSelection?.userVerification === "required") return new
|
|
2856
|
+
if (n.authenticatorSelection?.userVerification === "required") return new $({
|
|
2655
2857
|
message: "User verification was required but no available authenticator supported it",
|
|
2656
2858
|
code: "ERROR_AUTHENTICATOR_MISSING_USER_VERIFICATION_SUPPORT",
|
|
2657
2859
|
cause: e
|
|
2658
2860
|
});
|
|
2659
|
-
} else if (e.name === "InvalidStateError") return new
|
|
2861
|
+
} else if (e.name === "InvalidStateError") return new $({
|
|
2660
2862
|
message: "The authenticator was previously registered",
|
|
2661
2863
|
code: "ERROR_AUTHENTICATOR_PREVIOUSLY_REGISTERED",
|
|
2662
2864
|
cause: e
|
|
2663
2865
|
});
|
|
2664
|
-
else if (e.name === "NotAllowedError") return new
|
|
2866
|
+
else if (e.name === "NotAllowedError") return new $({
|
|
2665
2867
|
message: e.message,
|
|
2666
2868
|
code: "ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",
|
|
2667
2869
|
cause: e
|
|
2668
2870
|
});
|
|
2669
|
-
else if (e.name === "NotSupportedError") return n.pubKeyCredParams.filter((e) => e.type === "public-key").length === 0 ? new
|
|
2871
|
+
else if (e.name === "NotSupportedError") return n.pubKeyCredParams.filter((e) => e.type === "public-key").length === 0 ? new $({
|
|
2670
2872
|
message: "No entry in pubKeyCredParams was of type \"public-key\"",
|
|
2671
2873
|
code: "ERROR_MALFORMED_PUBKEYCREDPARAMS",
|
|
2672
2874
|
cause: e
|
|
2673
|
-
}) : new
|
|
2875
|
+
}) : new $({
|
|
2674
2876
|
message: "No available authenticator supported any of the specified pubKeyCredParams algorithms",
|
|
2675
2877
|
code: "ERROR_AUTHENTICATOR_NO_SUPPORTED_PUBKEYCREDPARAMS_ALG",
|
|
2676
2878
|
cause: e
|
|
2677
2879
|
});
|
|
2678
2880
|
else if (e.name === "SecurityError") {
|
|
2679
2881
|
let t = globalThis.location.hostname;
|
|
2680
|
-
if (!
|
|
2882
|
+
if (!ma(t)) return new $({
|
|
2681
2883
|
message: `${globalThis.location.hostname} is an invalid domain`,
|
|
2682
2884
|
code: "ERROR_INVALID_DOMAIN",
|
|
2683
2885
|
cause: e
|
|
2684
2886
|
});
|
|
2685
|
-
if (n.rp.id !== t) return new
|
|
2887
|
+
if (n.rp.id !== t) return new $({
|
|
2686
2888
|
message: `The RP ID "${n.rp.id}" is invalid for this domain`,
|
|
2687
2889
|
code: "ERROR_INVALID_RP_ID",
|
|
2688
2890
|
cause: e
|
|
2689
2891
|
});
|
|
2690
2892
|
} else if (e.name === "TypeError") {
|
|
2691
|
-
if (n.user.id.byteLength < 1 || n.user.id.byteLength > 64) return new
|
|
2893
|
+
if (n.user.id.byteLength < 1 || n.user.id.byteLength > 64) return new $({
|
|
2692
2894
|
message: "User ID was not between 1 and 64 characters",
|
|
2693
2895
|
code: "ERROR_INVALID_USER_ID_LENGTH",
|
|
2694
2896
|
cause: e
|
|
2695
2897
|
});
|
|
2696
|
-
} else if (e.name === "UnknownError") return new
|
|
2898
|
+
} else if (e.name === "UnknownError") return new $({
|
|
2697
2899
|
message: "The authenticator was unable to process the specified options, or could not create a new credential",
|
|
2698
2900
|
code: "ERROR_AUTHENTICATOR_GENERAL_ERROR",
|
|
2699
2901
|
cause: e
|
|
2700
2902
|
});
|
|
2701
2903
|
return e;
|
|
2702
2904
|
}
|
|
2703
|
-
var
|
|
2905
|
+
var ga = new class {
|
|
2704
2906
|
constructor() {
|
|
2705
2907
|
Object.defineProperty(this, "controller", {
|
|
2706
2908
|
enumerable: !0,
|
|
@@ -2723,31 +2925,31 @@ var Ni = new class {
|
|
|
2723
2925
|
e.name = "AbortError", this.controller.abort(e), this.controller = void 0;
|
|
2724
2926
|
}
|
|
2725
2927
|
}
|
|
2726
|
-
}(),
|
|
2727
|
-
function
|
|
2728
|
-
if (e && !(
|
|
2928
|
+
}(), _a = ["cross-platform", "platform"];
|
|
2929
|
+
function va(e) {
|
|
2930
|
+
if (e && !(_a.indexOf(e) < 0)) return e;
|
|
2729
2931
|
}
|
|
2730
2932
|
//#endregion
|
|
2731
2933
|
//#region ../../node_modules/@simplewebauthn/browser/esm/methods/startRegistration.js
|
|
2732
|
-
async function
|
|
2934
|
+
async function ya(e) {
|
|
2733
2935
|
!e.optionsJSON && e.challenge && (console.warn("startRegistration() was not called correctly. It will try to continue with the provided options, but this call should be refactored to use the expected call structure instead. See https://simplewebauthn.dev/docs/packages/browser#typeerror-cannot-read-properties-of-undefined-reading-challenge for more information."), e = { optionsJSON: e });
|
|
2734
2936
|
let { optionsJSON: t, useAutoRegister: n = !1 } = e;
|
|
2735
|
-
if (!
|
|
2937
|
+
if (!da()) throw Error("WebAuthn is not supported in this browser");
|
|
2736
2938
|
let r = {
|
|
2737
2939
|
...t,
|
|
2738
|
-
challenge:
|
|
2940
|
+
challenge: ua(t.challenge),
|
|
2739
2941
|
user: {
|
|
2740
2942
|
...t.user,
|
|
2741
|
-
id:
|
|
2943
|
+
id: ua(t.user.id)
|
|
2742
2944
|
},
|
|
2743
|
-
excludeCredentials: t.excludeCredentials?.map(
|
|
2945
|
+
excludeCredentials: t.excludeCredentials?.map(pa)
|
|
2744
2946
|
}, i = {};
|
|
2745
|
-
n && (i.mediation = "conditional"), i.publicKey = r, i.signal =
|
|
2947
|
+
n && (i.mediation = "conditional"), i.publicKey = r, i.signal = ga.createNewAbortSignal();
|
|
2746
2948
|
let a;
|
|
2747
2949
|
try {
|
|
2748
2950
|
a = await navigator.credentials.create(i);
|
|
2749
2951
|
} catch (e) {
|
|
2750
|
-
throw
|
|
2952
|
+
throw ha({
|
|
2751
2953
|
error: e,
|
|
2752
2954
|
options: i
|
|
2753
2955
|
});
|
|
@@ -2759,27 +2961,27 @@ async function Ii(e) {
|
|
|
2759
2961
|
if (typeof c.getPublicKeyAlgorithm == "function") try {
|
|
2760
2962
|
d = c.getPublicKeyAlgorithm();
|
|
2761
2963
|
} catch (e) {
|
|
2762
|
-
|
|
2964
|
+
ba("getPublicKeyAlgorithm()", e);
|
|
2763
2965
|
}
|
|
2764
2966
|
let f;
|
|
2765
2967
|
if (typeof c.getPublicKey == "function") try {
|
|
2766
2968
|
let e = c.getPublicKey();
|
|
2767
|
-
e !== null && (f =
|
|
2969
|
+
e !== null && (f = Q(e));
|
|
2768
2970
|
} catch (e) {
|
|
2769
|
-
|
|
2971
|
+
ba("getPublicKey()", e);
|
|
2770
2972
|
}
|
|
2771
2973
|
let p;
|
|
2772
2974
|
if (typeof c.getAuthenticatorData == "function") try {
|
|
2773
|
-
p =
|
|
2975
|
+
p = Q(c.getAuthenticatorData());
|
|
2774
2976
|
} catch (e) {
|
|
2775
|
-
|
|
2977
|
+
ba("getAuthenticatorData()", e);
|
|
2776
2978
|
}
|
|
2777
2979
|
return {
|
|
2778
2980
|
id: o,
|
|
2779
|
-
rawId:
|
|
2981
|
+
rawId: Q(s),
|
|
2780
2982
|
response: {
|
|
2781
|
-
attestationObject:
|
|
2782
|
-
clientDataJSON:
|
|
2983
|
+
attestationObject: Q(c.attestationObject),
|
|
2984
|
+
clientDataJSON: Q(c.clientDataJSON),
|
|
2783
2985
|
transports: u,
|
|
2784
2986
|
publicKeyAlgorithm: d,
|
|
2785
2987
|
publicKey: f,
|
|
@@ -2787,49 +2989,49 @@ async function Ii(e) {
|
|
|
2787
2989
|
},
|
|
2788
2990
|
type: l,
|
|
2789
2991
|
clientExtensionResults: a.getClientExtensionResults(),
|
|
2790
|
-
authenticatorAttachment:
|
|
2992
|
+
authenticatorAttachment: va(a.authenticatorAttachment)
|
|
2791
2993
|
};
|
|
2792
2994
|
}
|
|
2793
|
-
function
|
|
2995
|
+
function ba(e, t) {
|
|
2794
2996
|
console.warn(`The browser extension that intercepted this WebAuthn API call incorrectly implemented ${e}. You should report this error to them.\n`, t);
|
|
2795
2997
|
}
|
|
2796
2998
|
//#endregion
|
|
2797
2999
|
//#region ../../node_modules/@simplewebauthn/browser/esm/helpers/browserSupportsWebAuthnAutofill.js
|
|
2798
|
-
function
|
|
2799
|
-
if (!
|
|
3000
|
+
function xa() {
|
|
3001
|
+
if (!da()) return Sa.stubThis(new Promise((e) => e(!1)));
|
|
2800
3002
|
let e = globalThis.PublicKeyCredential;
|
|
2801
|
-
return e?.isConditionalMediationAvailable === void 0 ?
|
|
3003
|
+
return e?.isConditionalMediationAvailable === void 0 ? Sa.stubThis(new Promise((e) => e(!1))) : Sa.stubThis(e.isConditionalMediationAvailable());
|
|
2802
3004
|
}
|
|
2803
|
-
var
|
|
3005
|
+
var Sa = { stubThis: (e) => e };
|
|
2804
3006
|
//#endregion
|
|
2805
3007
|
//#region ../../node_modules/@simplewebauthn/browser/esm/helpers/identifyAuthenticationError.js
|
|
2806
|
-
function
|
|
3008
|
+
function Ca({ error: e, options: t }) {
|
|
2807
3009
|
let { publicKey: n } = t;
|
|
2808
3010
|
if (!n) throw Error("options was missing required publicKey property");
|
|
2809
3011
|
if (e.name === "AbortError") {
|
|
2810
|
-
if (t.signal instanceof AbortSignal) return new
|
|
3012
|
+
if (t.signal instanceof AbortSignal) return new $({
|
|
2811
3013
|
message: "Authentication ceremony was sent an abort signal",
|
|
2812
3014
|
code: "ERROR_CEREMONY_ABORTED",
|
|
2813
3015
|
cause: e
|
|
2814
3016
|
});
|
|
2815
|
-
} else if (e.name === "NotAllowedError") return new
|
|
3017
|
+
} else if (e.name === "NotAllowedError") return new $({
|
|
2816
3018
|
message: e.message,
|
|
2817
3019
|
code: "ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY",
|
|
2818
3020
|
cause: e
|
|
2819
3021
|
});
|
|
2820
3022
|
else if (e.name === "SecurityError") {
|
|
2821
3023
|
let t = globalThis.location.hostname;
|
|
2822
|
-
if (!
|
|
3024
|
+
if (!ma(t)) return new $({
|
|
2823
3025
|
message: `${globalThis.location.hostname} is an invalid domain`,
|
|
2824
3026
|
code: "ERROR_INVALID_DOMAIN",
|
|
2825
3027
|
cause: e
|
|
2826
3028
|
});
|
|
2827
|
-
if (n.rpId !== t) return new
|
|
3029
|
+
if (n.rpId !== t) return new $({
|
|
2828
3030
|
message: `The RP ID "${n.rpId}" is invalid for this domain`,
|
|
2829
3031
|
code: "ERROR_INVALID_RP_ID",
|
|
2830
3032
|
cause: e
|
|
2831
3033
|
});
|
|
2832
|
-
} else if (e.name === "UnknownError") return new
|
|
3034
|
+
} else if (e.name === "UnknownError") return new $({
|
|
2833
3035
|
message: "The authenticator was unable to process the specified options, or could not create a new assertion signature",
|
|
2834
3036
|
code: "ERROR_AUTHENTICATOR_GENERAL_ERROR",
|
|
2835
3037
|
cause: e
|
|
@@ -2838,77 +3040,77 @@ function Bi({ error: e, options: t }) {
|
|
|
2838
3040
|
}
|
|
2839
3041
|
//#endregion
|
|
2840
3042
|
//#region ../../node_modules/@simplewebauthn/browser/esm/methods/startAuthentication.js
|
|
2841
|
-
async function
|
|
3043
|
+
async function wa(e) {
|
|
2842
3044
|
!e.optionsJSON && e.challenge && (console.warn("startAuthentication() was not called correctly. It will try to continue with the provided options, but this call should be refactored to use the expected call structure instead. See https://simplewebauthn.dev/docs/packages/browser#typeerror-cannot-read-properties-of-undefined-reading-challenge for more information."), e = { optionsJSON: e });
|
|
2843
3045
|
let { optionsJSON: t, useBrowserAutofill: n = !1, verifyBrowserAutofillInput: r = !0 } = e;
|
|
2844
|
-
if (!
|
|
3046
|
+
if (!da()) throw Error("WebAuthn is not supported in this browser");
|
|
2845
3047
|
let i;
|
|
2846
|
-
t.allowCredentials?.length !== 0 && (i = t.allowCredentials?.map(
|
|
3048
|
+
t.allowCredentials?.length !== 0 && (i = t.allowCredentials?.map(pa));
|
|
2847
3049
|
let a = {
|
|
2848
3050
|
...t,
|
|
2849
|
-
challenge:
|
|
3051
|
+
challenge: ua(t.challenge),
|
|
2850
3052
|
allowCredentials: i
|
|
2851
3053
|
}, o = {};
|
|
2852
3054
|
if (n) {
|
|
2853
|
-
if (!await
|
|
3055
|
+
if (!await xa()) throw Error("Browser does not support WebAuthn autofill");
|
|
2854
3056
|
if (document.querySelectorAll("input[autocomplete$='webauthn']").length < 1 && r) throw Error("No <input> with \"webauthn\" as the only or last value in its `autocomplete` attribute was detected");
|
|
2855
3057
|
o.mediation = "conditional", a.allowCredentials = [];
|
|
2856
3058
|
}
|
|
2857
|
-
o.publicKey = a, o.signal =
|
|
3059
|
+
o.publicKey = a, o.signal = ga.createNewAbortSignal();
|
|
2858
3060
|
let s;
|
|
2859
3061
|
try {
|
|
2860
3062
|
s = await navigator.credentials.get(o);
|
|
2861
3063
|
} catch (e) {
|
|
2862
|
-
throw
|
|
3064
|
+
throw Ca({
|
|
2863
3065
|
error: e,
|
|
2864
3066
|
options: o
|
|
2865
3067
|
});
|
|
2866
3068
|
}
|
|
2867
3069
|
if (!s) throw Error("Authentication was not completed");
|
|
2868
3070
|
let { id: c, rawId: l, response: u, type: d } = s, f;
|
|
2869
|
-
return u.userHandle && (f =
|
|
3071
|
+
return u.userHandle && (f = Q(u.userHandle)), {
|
|
2870
3072
|
id: c,
|
|
2871
|
-
rawId:
|
|
3073
|
+
rawId: Q(l),
|
|
2872
3074
|
response: {
|
|
2873
|
-
authenticatorData:
|
|
2874
|
-
clientDataJSON:
|
|
2875
|
-
signature:
|
|
3075
|
+
authenticatorData: Q(u.authenticatorData),
|
|
3076
|
+
clientDataJSON: Q(u.clientDataJSON),
|
|
3077
|
+
signature: Q(u.signature),
|
|
2876
3078
|
userHandle: f
|
|
2877
3079
|
},
|
|
2878
3080
|
type: d,
|
|
2879
3081
|
clientExtensionResults: s.getClientExtensionResults(),
|
|
2880
|
-
authenticatorAttachment:
|
|
3082
|
+
authenticatorAttachment: va(s.authenticatorAttachment)
|
|
2881
3083
|
};
|
|
2882
3084
|
}
|
|
2883
3085
|
//#endregion
|
|
2884
3086
|
//#region src/auth/auth-context.tsx
|
|
2885
|
-
var
|
|
2886
|
-
async function
|
|
3087
|
+
var Ta = "/dev-login-token", Ea = "X-Ikon-Dev-Login-Run";
|
|
3088
|
+
async function Da(e) {
|
|
2887
3089
|
let t = typeof window < "u" ? window.__IKON_LOCAL_IKON_SERVER_CONFIG__ : void 0;
|
|
2888
3090
|
if (!(!t?.enabled || !t.host || !t.port)) try {
|
|
2889
|
-
let n = await fetch(`https://${t.host}:${t.port}${
|
|
3091
|
+
let n = await fetch(`https://${t.host}:${t.port}${Ta}`, {
|
|
2890
3092
|
cache: "no-store",
|
|
2891
|
-
headers: { [
|
|
3093
|
+
headers: { [Ea]: e }
|
|
2892
3094
|
});
|
|
2893
3095
|
return n.ok && (await n.json()).token || void 0;
|
|
2894
3096
|
} catch {
|
|
2895
3097
|
return;
|
|
2896
3098
|
}
|
|
2897
3099
|
}
|
|
2898
|
-
var
|
|
2899
|
-
function
|
|
2900
|
-
let [n, r] =
|
|
3100
|
+
var Oa = Ze(null), ka = 12e4, Aa = 6e4;
|
|
3101
|
+
function ja({ children: e, config: t }) {
|
|
3102
|
+
let [n, r] = I({
|
|
2901
3103
|
isAuthenticated: !1,
|
|
2902
3104
|
isLoading: !0,
|
|
2903
3105
|
user: null,
|
|
2904
3106
|
error: null
|
|
2905
|
-
}), i = t.methods.includes("email"), a =
|
|
3107
|
+
}), i = t.methods.includes("email"), a = ke() !== null, o = !t.requireSignIn || t.methods.includes("guest") || t.methods.includes("global") || a, c = F(!1), l = F(!1), u = M(async (e) => {
|
|
2906
3108
|
if (!l.current) {
|
|
2907
3109
|
l.current = !0;
|
|
2908
3110
|
try {
|
|
2909
|
-
let t = await
|
|
3111
|
+
let t = await Ji(e);
|
|
2910
3112
|
if (t === null) {
|
|
2911
|
-
|
|
3113
|
+
Ai(), r({
|
|
2912
3114
|
isAuthenticated: !1,
|
|
2913
3115
|
isLoading: !1,
|
|
2914
3116
|
user: null,
|
|
@@ -2916,10 +3118,10 @@ function Ji({ children: e, config: t }) {
|
|
|
2916
3118
|
});
|
|
2917
3119
|
return;
|
|
2918
3120
|
}
|
|
2919
|
-
|
|
3121
|
+
ki(), r({
|
|
2920
3122
|
isAuthenticated: !0,
|
|
2921
3123
|
isLoading: !1,
|
|
2922
|
-
user:
|
|
3124
|
+
user: Y(t),
|
|
2923
3125
|
error: null
|
|
2924
3126
|
});
|
|
2925
3127
|
} catch {} finally {
|
|
@@ -2927,31 +3129,31 @@ function Ji({ children: e, config: t }) {
|
|
|
2927
3129
|
}
|
|
2928
3130
|
}
|
|
2929
3131
|
}, []);
|
|
2930
|
-
|
|
3132
|
+
N(() => {
|
|
2931
3133
|
(() => {
|
|
2932
3134
|
if (c.current) return;
|
|
2933
|
-
let e = t.devLoginRunId, n = !!e &&
|
|
2934
|
-
e && !
|
|
2935
|
-
let s = !!t.devLoginToken && !!e && !n && !
|
|
2936
|
-
o ||
|
|
2937
|
-
let l =
|
|
3135
|
+
let e = t.devLoginRunId, n = !!e && Fi() === e && !Ei();
|
|
3136
|
+
e && !Xi() && Pi(e);
|
|
3137
|
+
let s = !!t.devLoginToken && !!e && !n && !Xi();
|
|
3138
|
+
o || ji();
|
|
3139
|
+
let l = Yi();
|
|
2938
3140
|
if (l) {
|
|
2939
|
-
|
|
3141
|
+
$i(), r({
|
|
2940
3142
|
isAuthenticated: !1,
|
|
2941
3143
|
isLoading: !1,
|
|
2942
3144
|
user: null,
|
|
2943
|
-
error:
|
|
3145
|
+
error: Qi(l.code, l.provider, { emailSignInAvailable: i })
|
|
2944
3146
|
});
|
|
2945
3147
|
return;
|
|
2946
3148
|
}
|
|
2947
|
-
|
|
2948
|
-
let u =
|
|
3149
|
+
ue();
|
|
3150
|
+
let u = Ki();
|
|
2949
3151
|
if (u) {
|
|
2950
|
-
c.current = !0,
|
|
3152
|
+
c.current = !0, $i(), qi(u.code, u.provider, t.authUrl).then((e) => {
|
|
2951
3153
|
r({
|
|
2952
3154
|
isAuthenticated: !0,
|
|
2953
3155
|
isLoading: !1,
|
|
2954
|
-
user:
|
|
3156
|
+
user: Y(e),
|
|
2955
3157
|
error: null
|
|
2956
3158
|
});
|
|
2957
3159
|
}).catch((e) => {
|
|
@@ -2964,26 +3166,26 @@ function Ji({ children: e, config: t }) {
|
|
|
2964
3166
|
});
|
|
2965
3167
|
return;
|
|
2966
3168
|
}
|
|
2967
|
-
let d =
|
|
3169
|
+
let d = Gi();
|
|
2968
3170
|
if (d) {
|
|
2969
3171
|
let e = {
|
|
2970
3172
|
token: d.token,
|
|
2971
3173
|
provider: d.provider,
|
|
2972
3174
|
authenticatedAt: Date.now()
|
|
2973
3175
|
};
|
|
2974
|
-
|
|
3176
|
+
J(e), $i(), r({
|
|
2975
3177
|
isAuthenticated: !0,
|
|
2976
3178
|
isLoading: !1,
|
|
2977
|
-
user:
|
|
3179
|
+
user: Y(e),
|
|
2978
3180
|
error: null
|
|
2979
3181
|
});
|
|
2980
3182
|
return;
|
|
2981
3183
|
}
|
|
2982
|
-
let f =
|
|
3184
|
+
let f = Oi();
|
|
2983
3185
|
if (f) {
|
|
2984
|
-
c.current = !0,
|
|
3186
|
+
c.current = !0, Ji(f).then((e) => {
|
|
2985
3187
|
if (e === null) {
|
|
2986
|
-
|
|
3188
|
+
Ai(), r({
|
|
2987
3189
|
isAuthenticated: !1,
|
|
2988
3190
|
isLoading: !1,
|
|
2989
3191
|
user: null,
|
|
@@ -2991,10 +3193,10 @@ function Ji({ children: e, config: t }) {
|
|
|
2991
3193
|
});
|
|
2992
3194
|
return;
|
|
2993
3195
|
}
|
|
2994
|
-
|
|
3196
|
+
ki(), r({
|
|
2995
3197
|
isAuthenticated: !0,
|
|
2996
3198
|
isLoading: !1,
|
|
2997
|
-
user:
|
|
3199
|
+
user: Y(e),
|
|
2998
3200
|
error: null
|
|
2999
3201
|
});
|
|
3000
3202
|
}).catch(() => {
|
|
@@ -3007,12 +3209,12 @@ function Ji({ children: e, config: t }) {
|
|
|
3007
3209
|
});
|
|
3008
3210
|
return;
|
|
3009
3211
|
}
|
|
3010
|
-
let p =
|
|
3212
|
+
let p = Ti();
|
|
3011
3213
|
if (p && !(s && p.provider === "anonymous")) {
|
|
3012
3214
|
r({
|
|
3013
3215
|
isAuthenticated: !0,
|
|
3014
3216
|
isLoading: !1,
|
|
3015
|
-
user:
|
|
3217
|
+
user: Y(p),
|
|
3016
3218
|
error: null
|
|
3017
3219
|
});
|
|
3018
3220
|
return;
|
|
@@ -3023,21 +3225,21 @@ function Ji({ children: e, config: t }) {
|
|
|
3023
3225
|
token: e,
|
|
3024
3226
|
provider: "dev",
|
|
3025
3227
|
authenticatedAt: Date.now(),
|
|
3026
|
-
expiresAt:
|
|
3228
|
+
expiresAt: wi(e)
|
|
3027
3229
|
};
|
|
3028
|
-
|
|
3230
|
+
J(t), r({
|
|
3029
3231
|
isAuthenticated: !0,
|
|
3030
3232
|
isLoading: !1,
|
|
3031
|
-
user:
|
|
3233
|
+
user: Y(t),
|
|
3032
3234
|
error: null
|
|
3033
3235
|
});
|
|
3034
3236
|
};
|
|
3035
|
-
if (!
|
|
3237
|
+
if (!Ci(t.devLoginToken)) {
|
|
3036
3238
|
n(t.devLoginToken);
|
|
3037
3239
|
return;
|
|
3038
3240
|
}
|
|
3039
|
-
|
|
3040
|
-
if (e && !
|
|
3241
|
+
Da(e).then((e) => {
|
|
3242
|
+
if (e && !Ci(e)) {
|
|
3041
3243
|
n(e);
|
|
3042
3244
|
return;
|
|
3043
3245
|
}
|
|
@@ -3052,10 +3254,10 @@ function Ji({ children: e, config: t }) {
|
|
|
3052
3254
|
}
|
|
3053
3255
|
if (a && t.spaceId) {
|
|
3054
3256
|
let e = t.spaceId;
|
|
3055
|
-
|
|
3257
|
+
O(t.authUrl).then((t) => Hi(e, t, "guest")).then((e) => r({
|
|
3056
3258
|
isAuthenticated: !0,
|
|
3057
3259
|
isLoading: !1,
|
|
3058
|
-
user:
|
|
3260
|
+
user: Y(e),
|
|
3059
3261
|
error: null
|
|
3060
3262
|
})).catch((e) => r({
|
|
3061
3263
|
isAuthenticated: !1,
|
|
@@ -3080,13 +3282,13 @@ function Ji({ children: e, config: t }) {
|
|
|
3080
3282
|
i,
|
|
3081
3283
|
o,
|
|
3082
3284
|
a
|
|
3083
|
-
]),
|
|
3084
|
-
if (t.spaceId) return
|
|
3085
|
-
c.current = !0, e.codeVerifier &&
|
|
3285
|
+
]), N(() => {
|
|
3286
|
+
if (t.spaceId) return Ie(t.spaceId, (e) => {
|
|
3287
|
+
c.current = !0, e.codeVerifier && He(e.codeVerifier), qi(e.code, e.provider, t.authUrl).then((e) => {
|
|
3086
3288
|
r({
|
|
3087
3289
|
isAuthenticated: !0,
|
|
3088
3290
|
isLoading: !1,
|
|
3089
|
-
user:
|
|
3291
|
+
user: Y(e),
|
|
3090
3292
|
error: null
|
|
3091
3293
|
});
|
|
3092
3294
|
}).catch((e) => {
|
|
@@ -3098,12 +3300,12 @@ function Ji({ children: e, config: t }) {
|
|
|
3098
3300
|
});
|
|
3099
3301
|
});
|
|
3100
3302
|
});
|
|
3101
|
-
}, [t.spaceId, t.authUrl]),
|
|
3303
|
+
}, [t.spaceId, t.authUrl]), N(() => {
|
|
3102
3304
|
let e = n.user?.expiresAt;
|
|
3103
3305
|
if (!e || n.user?.provider === "dev") return;
|
|
3104
|
-
let t =
|
|
3306
|
+
let t = Oi();
|
|
3105
3307
|
if (!t) return;
|
|
3106
|
-
let r = Date.parse(e) -
|
|
3308
|
+
let r = Date.parse(e) - ka, i = setTimeout(() => void u(t), Math.max(0, r - Date.now())), a = () => {
|
|
3107
3309
|
document.visibilityState === "visible" && Date.now() >= r && u(t);
|
|
3108
3310
|
};
|
|
3109
3311
|
return document.addEventListener("visibilitychange", a), () => {
|
|
@@ -3113,31 +3315,31 @@ function Ji({ children: e, config: t }) {
|
|
|
3113
3315
|
n.user?.expiresAt,
|
|
3114
3316
|
n.user?.provider,
|
|
3115
3317
|
u
|
|
3116
|
-
]),
|
|
3318
|
+
]), N(() => {
|
|
3117
3319
|
if (n.user?.provider !== "dev") return;
|
|
3118
3320
|
let e = t.devLoginRunId;
|
|
3119
3321
|
if (!e) return;
|
|
3120
3322
|
let i = n.user.expiresAt;
|
|
3121
3323
|
if (!i) return;
|
|
3122
|
-
let a = n.user.token, o = Date.parse(i) -
|
|
3324
|
+
let a = n.user.token, o = Date.parse(i) - ka, s, c = !1, l = !1, u = async () => {
|
|
3123
3325
|
if (c || l) return;
|
|
3124
3326
|
l = !0;
|
|
3125
|
-
let t = await
|
|
3327
|
+
let t = await Da(e);
|
|
3126
3328
|
if (l = !1, c) return;
|
|
3127
|
-
if (!t || t === a ||
|
|
3128
|
-
s = setTimeout(() => void u(),
|
|
3329
|
+
if (!t || t === a || Ci(t)) {
|
|
3330
|
+
s = setTimeout(() => void u(), Aa);
|
|
3129
3331
|
return;
|
|
3130
3332
|
}
|
|
3131
3333
|
let n = {
|
|
3132
3334
|
token: t,
|
|
3133
3335
|
provider: "dev",
|
|
3134
3336
|
authenticatedAt: Date.now(),
|
|
3135
|
-
expiresAt:
|
|
3337
|
+
expiresAt: wi(t)
|
|
3136
3338
|
};
|
|
3137
|
-
|
|
3339
|
+
J(n), r({
|
|
3138
3340
|
isAuthenticated: !0,
|
|
3139
3341
|
isLoading: !1,
|
|
3140
|
-
user:
|
|
3342
|
+
user: Y(n),
|
|
3141
3343
|
error: null
|
|
3142
3344
|
});
|
|
3143
3345
|
};
|
|
@@ -3154,7 +3356,7 @@ function Ji({ children: e, config: t }) {
|
|
|
3154
3356
|
n.user?.expiresAt,
|
|
3155
3357
|
n.user?.token
|
|
3156
3358
|
]);
|
|
3157
|
-
let d =
|
|
3359
|
+
let d = M(async (e) => {
|
|
3158
3360
|
if (!t.spaceId) {
|
|
3159
3361
|
r((e) => ({
|
|
3160
3362
|
...e,
|
|
@@ -3164,7 +3366,7 @@ function Ji({ children: e, config: t }) {
|
|
|
3164
3366
|
}
|
|
3165
3367
|
let n;
|
|
3166
3368
|
try {
|
|
3167
|
-
n = await
|
|
3369
|
+
n = await O(t.authUrl);
|
|
3168
3370
|
} catch (e) {
|
|
3169
3371
|
r((t) => ({
|
|
3170
3372
|
...t,
|
|
@@ -3179,11 +3381,11 @@ function Ji({ children: e, config: t }) {
|
|
|
3179
3381
|
isLoading: !0
|
|
3180
3382
|
}));
|
|
3181
3383
|
try {
|
|
3182
|
-
let i = await
|
|
3384
|
+
let i = await Hi(t.spaceId, n, e);
|
|
3183
3385
|
r({
|
|
3184
3386
|
isAuthenticated: !0,
|
|
3185
3387
|
isLoading: !1,
|
|
3186
|
-
user:
|
|
3388
|
+
user: Y(i),
|
|
3187
3389
|
error: null
|
|
3188
3390
|
});
|
|
3189
3391
|
} catch (e) {
|
|
@@ -3202,11 +3404,11 @@ function Ji({ children: e, config: t }) {
|
|
|
3202
3404
|
error: null
|
|
3203
3405
|
}));
|
|
3204
3406
|
try {
|
|
3205
|
-
let e = await
|
|
3407
|
+
let e = await wa({ optionsJSON: await sa(n) }), t = await ca(n, e);
|
|
3206
3408
|
r({
|
|
3207
3409
|
isAuthenticated: !0,
|
|
3208
3410
|
isLoading: !1,
|
|
3209
|
-
user:
|
|
3411
|
+
user: Y(t),
|
|
3210
3412
|
error: null
|
|
3211
3413
|
});
|
|
3212
3414
|
} catch (e) {
|
|
@@ -3219,16 +3421,16 @@ function Ji({ children: e, config: t }) {
|
|
|
3219
3421
|
return;
|
|
3220
3422
|
}
|
|
3221
3423
|
if (e === "email") throw Error("login('email') is not supported. Use requestEmailCode()/submitEmailCode() from useAuth() instead.");
|
|
3222
|
-
if (
|
|
3223
|
-
await
|
|
3424
|
+
if (Pe()) {
|
|
3425
|
+
await Ge(e, t.spaceId) || r((e) => ({
|
|
3224
3426
|
...e,
|
|
3225
3427
|
isLoading: !1,
|
|
3226
3428
|
error: "The sign-in window did not complete. Allow pop-ups for this site and try again."
|
|
3227
3429
|
}));
|
|
3228
3430
|
return;
|
|
3229
3431
|
}
|
|
3230
|
-
window.location.href = await
|
|
3231
|
-
}, [t.authUrl, t.spaceId]), f =
|
|
3432
|
+
window.location.href = await ea(e, t.spaceId, n);
|
|
3433
|
+
}, [t.authUrl, t.spaceId]), f = M(async (e, n = {}) => {
|
|
3232
3434
|
if (!t.spaceId) {
|
|
3233
3435
|
r((e) => ({
|
|
3234
3436
|
...e,
|
|
@@ -3236,7 +3438,7 @@ function Ji({ children: e, config: t }) {
|
|
|
3236
3438
|
}));
|
|
3237
3439
|
return;
|
|
3238
3440
|
}
|
|
3239
|
-
if (
|
|
3441
|
+
if (Pe()) {
|
|
3240
3442
|
r((e) => ({
|
|
3241
3443
|
...e,
|
|
3242
3444
|
isLoading: !1,
|
|
@@ -3245,7 +3447,7 @@ function Ji({ children: e, config: t }) {
|
|
|
3245
3447
|
return;
|
|
3246
3448
|
}
|
|
3247
3449
|
try {
|
|
3248
|
-
let i = await
|
|
3450
|
+
let i = await O(t.authUrl), a = await ta(e, t.spaceId, i, { linkSessionToken: n.linkSessionToken });
|
|
3249
3451
|
if (!a) {
|
|
3250
3452
|
r((e) => ({
|
|
3251
3453
|
...e,
|
|
@@ -3262,33 +3464,33 @@ function Ji({ children: e, config: t }) {
|
|
|
3262
3464
|
error: e instanceof Error ? e.message : "Organisation sign-in failed"
|
|
3263
3465
|
}));
|
|
3264
3466
|
}
|
|
3265
|
-
}, [t.authUrl, t.spaceId]), p =
|
|
3467
|
+
}, [t.authUrl, t.spaceId]), p = M(async (e) => {
|
|
3266
3468
|
if (!t.spaceId) throw r((e) => ({
|
|
3267
3469
|
...e,
|
|
3268
3470
|
error: "Space ID is not configured"
|
|
3269
3471
|
})), Error("Space ID is not configured");
|
|
3270
|
-
let n = await
|
|
3271
|
-
await
|
|
3472
|
+
let n = await O(t.authUrl);
|
|
3473
|
+
await Ui({
|
|
3272
3474
|
email: e,
|
|
3273
3475
|
spaceId: t.spaceId,
|
|
3274
3476
|
authUrl: n
|
|
3275
3477
|
});
|
|
3276
|
-
}, [t.authUrl, t.spaceId]), m =
|
|
3478
|
+
}, [t.authUrl, t.spaceId]), m = M(async (e, n) => {
|
|
3277
3479
|
r((e) => ({
|
|
3278
3480
|
...e,
|
|
3279
3481
|
isLoading: !0,
|
|
3280
3482
|
error: null
|
|
3281
3483
|
}));
|
|
3282
3484
|
try {
|
|
3283
|
-
let i = await
|
|
3485
|
+
let i = await Wi({
|
|
3284
3486
|
email: e,
|
|
3285
3487
|
code: n,
|
|
3286
|
-
authUrl: await
|
|
3488
|
+
authUrl: await O(t.authUrl)
|
|
3287
3489
|
});
|
|
3288
3490
|
r({
|
|
3289
3491
|
isAuthenticated: !0,
|
|
3290
3492
|
isLoading: !1,
|
|
3291
|
-
user:
|
|
3493
|
+
user: Y(i),
|
|
3292
3494
|
error: null
|
|
3293
3495
|
});
|
|
3294
3496
|
} catch (e) {
|
|
@@ -3299,27 +3501,27 @@ function Ji({ children: e, config: t }) {
|
|
|
3299
3501
|
error: t
|
|
3300
3502
|
})), e;
|
|
3301
3503
|
}
|
|
3302
|
-
}, [t.authUrl]), h =
|
|
3504
|
+
}, [t.authUrl]), h = M(() => {
|
|
3303
3505
|
let e = n.user?.token;
|
|
3304
|
-
e &&
|
|
3506
|
+
e && la(e, t.authUrl), Ni(), Ai(), s.clearAll(), r({
|
|
3305
3507
|
isAuthenticated: !1,
|
|
3306
3508
|
isLoading: !1,
|
|
3307
3509
|
user: null,
|
|
3308
3510
|
error: null
|
|
3309
3511
|
});
|
|
3310
|
-
}, [n.user?.token, t.authUrl]), g =
|
|
3311
|
-
let n = await
|
|
3512
|
+
}, [n.user?.token, t.authUrl]), g = M(async (e) => {
|
|
3513
|
+
let n = await O(t.authUrl);
|
|
3312
3514
|
r((e) => ({
|
|
3313
3515
|
...e,
|
|
3314
3516
|
isLoading: !0,
|
|
3315
3517
|
error: null
|
|
3316
3518
|
}));
|
|
3317
3519
|
try {
|
|
3318
|
-
let t = await
|
|
3520
|
+
let t = await oa(n, await ya({ optionsJSON: await aa(n) }), e);
|
|
3319
3521
|
r({
|
|
3320
3522
|
isAuthenticated: !0,
|
|
3321
3523
|
isLoading: !1,
|
|
3322
|
-
user:
|
|
3524
|
+
user: Y(t),
|
|
3323
3525
|
error: null
|
|
3324
3526
|
});
|
|
3325
3527
|
} catch (e) {
|
|
@@ -3329,7 +3531,7 @@ function Ji({ children: e, config: t }) {
|
|
|
3329
3531
|
error: e instanceof Error ? e.message : "Passkey registration failed"
|
|
3330
3532
|
}));
|
|
3331
3533
|
}
|
|
3332
|
-
}, [t.authUrl]), _ =
|
|
3534
|
+
}, [t.authUrl]), _ = M(() => n.user?.token ?? null, [n.user]), v = P(() => ({
|
|
3333
3535
|
state: n,
|
|
3334
3536
|
login: d,
|
|
3335
3537
|
loginWithSso: f,
|
|
@@ -3348,38 +3550,38 @@ function Ji({ children: e, config: t }) {
|
|
|
3348
3550
|
p,
|
|
3349
3551
|
m
|
|
3350
3552
|
]);
|
|
3351
|
-
return /* @__PURE__ */
|
|
3553
|
+
return /* @__PURE__ */ L(Oa, {
|
|
3352
3554
|
value: v,
|
|
3353
3555
|
children: e
|
|
3354
3556
|
});
|
|
3355
3557
|
}
|
|
3356
|
-
function
|
|
3357
|
-
let e =
|
|
3558
|
+
function Ma() {
|
|
3559
|
+
let e = $e(Oa);
|
|
3358
3560
|
if (!e) throw Error("useAuth must be used within an AuthProvider");
|
|
3359
3561
|
return e;
|
|
3360
3562
|
}
|
|
3361
|
-
function
|
|
3362
|
-
return
|
|
3563
|
+
function Na() {
|
|
3564
|
+
return $e(Oa);
|
|
3363
3565
|
}
|
|
3364
3566
|
//#endregion
|
|
3365
3567
|
//#region src/auth/oauth-continuation.ts
|
|
3366
|
-
var
|
|
3367
|
-
function
|
|
3568
|
+
var Pa = "ikon-oauth", Fa = "ikon-oauth-continue", Ia = "ikon-oauth-continue-attempts", La = 5, Ra = 6e5;
|
|
3569
|
+
function za() {
|
|
3368
3570
|
if (typeof window > "u") return !1;
|
|
3369
|
-
let e = new URL(window.location.href).searchParams.get(
|
|
3370
|
-
return e ? (
|
|
3571
|
+
let e = new URL(window.location.href).searchParams.get(Pa);
|
|
3572
|
+
return e ? (qa(e), !0) : Ka() !== null;
|
|
3371
3573
|
}
|
|
3372
|
-
function
|
|
3373
|
-
return
|
|
3574
|
+
function Ba() {
|
|
3575
|
+
return Va() !== null;
|
|
3374
3576
|
}
|
|
3375
|
-
function
|
|
3376
|
-
return typeof window > "u" ? null : new URL(window.location.href).searchParams.get("ikon-oauth") ??
|
|
3577
|
+
function Va() {
|
|
3578
|
+
return typeof window > "u" ? null : new URL(window.location.href).searchParams.get("ikon-oauth") ?? Ka();
|
|
3377
3579
|
}
|
|
3378
|
-
var
|
|
3379
|
-
async function
|
|
3380
|
-
let t =
|
|
3580
|
+
var Ha = "You are not allowed to connect an application to this app with this account.";
|
|
3581
|
+
async function Ua(e) {
|
|
3582
|
+
let t = Va();
|
|
3381
3583
|
if (!t) return { status: "pending" };
|
|
3382
|
-
if (!e) return
|
|
3584
|
+
if (!e) return Ga() < La ? (console.warn("[ikon] Waiting for the signed-in session before continuing the authorization that sent you here."), { status: "pending" }) : (Ja(), console.warn("[ikon] Gave up continuing the authorization that sent you here: no signed-in session became readable. Start the connection again from the application."), { status: "pending" });
|
|
3383
3585
|
try {
|
|
3384
3586
|
let n = await fetch("/ikon/oauth/continue", {
|
|
3385
3587
|
method: "POST",
|
|
@@ -3390,8 +3592,8 @@ async function oa(e) {
|
|
|
3390
3592
|
body: JSON.stringify({ continueId: t })
|
|
3391
3593
|
});
|
|
3392
3594
|
if (!n.ok) {
|
|
3393
|
-
if (
|
|
3394
|
-
let e = await
|
|
3595
|
+
if (Ja(), n.status === 403) {
|
|
3596
|
+
let e = await Wa(n);
|
|
3395
3597
|
return console.warn(`[ikon] The authorization that sent you here was refused: ${e}`), {
|
|
3396
3598
|
status: "refused",
|
|
3397
3599
|
message: e
|
|
@@ -3400,72 +3602,72 @@ async function oa(e) {
|
|
|
3400
3602
|
return console.warn(`[ikon] Could not continue the authorization that sent you here (${n.status}). Start the connection again from the application.`), { status: "pending" };
|
|
3401
3603
|
}
|
|
3402
3604
|
let { consentUrl: r } = await n.json();
|
|
3403
|
-
return r ? (
|
|
3605
|
+
return r ? (Ja(), window.location.href = r, { status: "handed-off" }) : (Ja(), console.warn("[ikon] The authorization that sent you here returned no consent step. Start the connection again from the application."), { status: "pending" });
|
|
3404
3606
|
} catch {
|
|
3405
3607
|
return { status: "pending" };
|
|
3406
3608
|
}
|
|
3407
3609
|
}
|
|
3408
|
-
async function
|
|
3610
|
+
async function Wa(e) {
|
|
3409
3611
|
try {
|
|
3410
3612
|
let t = await e.json(), n = Array.isArray(t?.message) ? t.message.join(", ") : t?.message;
|
|
3411
|
-
return typeof n == "string" && n.trim().length > 0 ? n :
|
|
3613
|
+
return typeof n == "string" && n.trim().length > 0 ? n : Ha;
|
|
3412
3614
|
} catch {
|
|
3413
|
-
return
|
|
3615
|
+
return Ha;
|
|
3414
3616
|
}
|
|
3415
3617
|
}
|
|
3416
|
-
function
|
|
3618
|
+
function Ga() {
|
|
3417
3619
|
try {
|
|
3418
|
-
let e = Number(sessionStorage.getItem(
|
|
3419
|
-
return sessionStorage.setItem(
|
|
3620
|
+
let e = Number(sessionStorage.getItem(Ia) ?? "0") + 1;
|
|
3621
|
+
return sessionStorage.setItem(Ia, String(e)), e;
|
|
3420
3622
|
} catch {
|
|
3421
|
-
return
|
|
3623
|
+
return La;
|
|
3422
3624
|
}
|
|
3423
3625
|
}
|
|
3424
|
-
function
|
|
3626
|
+
function Ka() {
|
|
3425
3627
|
try {
|
|
3426
|
-
let e = sessionStorage.getItem(
|
|
3628
|
+
let e = sessionStorage.getItem(Fa);
|
|
3427
3629
|
if (!e) return null;
|
|
3428
3630
|
let { id: t, at: n } = JSON.parse(e);
|
|
3429
|
-
return !t || typeof n != "number" || Date.now() - n >
|
|
3631
|
+
return !t || typeof n != "number" || Date.now() - n > Ra ? (Ja(), null) : t;
|
|
3430
3632
|
} catch {
|
|
3431
|
-
return
|
|
3633
|
+
return Ja(), null;
|
|
3432
3634
|
}
|
|
3433
3635
|
}
|
|
3434
|
-
function
|
|
3636
|
+
function qa(e) {
|
|
3435
3637
|
try {
|
|
3436
|
-
sessionStorage.setItem(
|
|
3638
|
+
sessionStorage.setItem(Fa, JSON.stringify({
|
|
3437
3639
|
id: e,
|
|
3438
3640
|
at: Date.now()
|
|
3439
3641
|
}));
|
|
3440
3642
|
} catch {}
|
|
3441
3643
|
}
|
|
3442
|
-
function
|
|
3644
|
+
function Ja() {
|
|
3443
3645
|
try {
|
|
3444
|
-
sessionStorage.removeItem(
|
|
3646
|
+
sessionStorage.removeItem(Fa), sessionStorage.removeItem(Ia);
|
|
3445
3647
|
} catch {}
|
|
3446
3648
|
try {
|
|
3447
3649
|
let e = new URL(window.location.href);
|
|
3448
|
-
e.searchParams.has("ikon-oauth") && (e.searchParams.delete(
|
|
3650
|
+
e.searchParams.has("ikon-oauth") && (e.searchParams.delete(Pa), window.history.replaceState(null, "", e.toString()));
|
|
3449
3651
|
} catch {}
|
|
3450
3652
|
}
|
|
3451
3653
|
//#endregion
|
|
3452
3654
|
//#region src/auth/use-auth-guard.ts
|
|
3453
|
-
function
|
|
3454
|
-
let { config: t, guestUrlParam: n } = e, { state: r, login: i, getToken: a } =
|
|
3455
|
-
|
|
3456
|
-
|
|
3457
|
-
}, []),
|
|
3655
|
+
function Ya(e) {
|
|
3656
|
+
let { config: t, guestUrlParam: n } = e, { state: r, login: i, getToken: a } = Ma(), o = F(!1), s = F(!1), c = F(null), l = nt(Ke, Te, Te), u = l.required;
|
|
3657
|
+
N(() => {
|
|
3658
|
+
za() && We("An application is asking to act as you. Sign in to review what it wants.");
|
|
3659
|
+
}, []), N(() => {
|
|
3458
3660
|
if (!(!u || !r.isAuthenticated || !r.user || r.user.provider === "anonymous")) {
|
|
3459
|
-
if (!
|
|
3460
|
-
c.current ||
|
|
3661
|
+
if (!Ba()) {
|
|
3662
|
+
c.current || he();
|
|
3461
3663
|
return;
|
|
3462
3664
|
}
|
|
3463
|
-
s.current || (s.current = !0,
|
|
3665
|
+
s.current || (s.current = !0, Ua(a()).then((e) => {
|
|
3464
3666
|
if (e.status === "refused") {
|
|
3465
|
-
c.current = e.message,
|
|
3667
|
+
c.current = e.message, We(e.message);
|
|
3466
3668
|
return;
|
|
3467
3669
|
}
|
|
3468
|
-
(e.status === "handed-off" || !
|
|
3670
|
+
(e.status === "handed-off" || !Ba()) && he();
|
|
3469
3671
|
}).finally(() => {
|
|
3470
3672
|
s.current = !1;
|
|
3471
3673
|
}));
|
|
@@ -3475,12 +3677,12 @@ function fa(e) {
|
|
|
3475
3677
|
r.isAuthenticated,
|
|
3476
3678
|
r.user,
|
|
3477
3679
|
a
|
|
3478
|
-
]),
|
|
3680
|
+
]), N(() => {
|
|
3479
3681
|
if (!n || r.isAuthenticated || r.isLoading || o.current) return;
|
|
3480
3682
|
let e = t.methods.includes("global") ? "global" : t.methods.includes("guest") ? "guest" : null;
|
|
3481
3683
|
if (!e) return;
|
|
3482
3684
|
let a = new URLSearchParams(window.location.search), s = a.get(n);
|
|
3483
|
-
if (s === "true" || s === "1" || s === "" ||
|
|
3685
|
+
if (s === "true" || s === "1" || s === "" || Xi()) {
|
|
3484
3686
|
a.delete(n);
|
|
3485
3687
|
let t = a.toString(), r = window.location.pathname + (t ? `?${t}` : "");
|
|
3486
3688
|
window.history.replaceState({}, "", r), o.current = !0, i(e);
|
|
@@ -3499,32 +3701,32 @@ function fa(e) {
|
|
|
3499
3701
|
isAuthenticated: r.isAuthenticated,
|
|
3500
3702
|
error: r.error,
|
|
3501
3703
|
isLoginPrompt: u && !p,
|
|
3502
|
-
dismissLoginPrompt:
|
|
3704
|
+
dismissLoginPrompt: he,
|
|
3503
3705
|
loginPromptReason: u ? l.reason : null
|
|
3504
3706
|
};
|
|
3505
3707
|
}
|
|
3506
3708
|
//#endregion
|
|
3507
3709
|
//#region src/auth/use-sso-sign-in.ts
|
|
3508
|
-
function
|
|
3509
|
-
let { loginWithSso: t } =
|
|
3510
|
-
|
|
3710
|
+
function Xa(e) {
|
|
3711
|
+
let { loginWithSso: t } = Ma(), n = e.methods.includes("sso"), [r, i] = I([]), [a, o] = I(!1), [s, c] = I(null);
|
|
3712
|
+
N(() => {
|
|
3511
3713
|
if (!n || typeof window > "u") return;
|
|
3512
3714
|
let t = !1;
|
|
3513
|
-
return
|
|
3715
|
+
return O(e.authUrl).then((e) => na(e, window.location.host)).then((e) => {
|
|
3514
3716
|
t || i(e);
|
|
3515
3717
|
}).catch(() => void 0), () => {
|
|
3516
3718
|
t = !0;
|
|
3517
3719
|
};
|
|
3518
3720
|
}, [n, e.authUrl]);
|
|
3519
|
-
let l =
|
|
3721
|
+
let l = M((e) => t(e), [t]);
|
|
3520
3722
|
return {
|
|
3521
3723
|
hostConnections: r,
|
|
3522
3724
|
isDiscovering: a,
|
|
3523
3725
|
discoverError: s,
|
|
3524
|
-
discover:
|
|
3726
|
+
discover: M(async (n) => {
|
|
3525
3727
|
c(null), o(!0);
|
|
3526
3728
|
try {
|
|
3527
|
-
let r = await
|
|
3729
|
+
let r = await ra(await O(e.authUrl), e.spaceId, n.trim());
|
|
3528
3730
|
if (!r) {
|
|
3529
3731
|
c("There is no organisation sign-in for this address. Choose another way to sign in.");
|
|
3530
3732
|
return;
|
|
@@ -3545,17 +3747,17 @@ function pa(e) {
|
|
|
3545
3747
|
}
|
|
3546
3748
|
//#endregion
|
|
3547
3749
|
//#region src/debug/debug-overlay.tsx
|
|
3548
|
-
var
|
|
3750
|
+
var Za = (() => {
|
|
3549
3751
|
try {
|
|
3550
|
-
return
|
|
3752
|
+
return Se();
|
|
3551
3753
|
} catch {
|
|
3552
3754
|
return !1;
|
|
3553
3755
|
}
|
|
3554
|
-
})(),
|
|
3555
|
-
function
|
|
3556
|
-
|
|
3756
|
+
})(), Qa = Date.now(), $a = [], eo = 300;
|
|
3757
|
+
function to(e) {
|
|
3758
|
+
$a.push(`[+${((Date.now() - Qa) / 1e3).toFixed(1)}s] ${e}`), $a.length > eo && $a.shift();
|
|
3557
3759
|
}
|
|
3558
|
-
function
|
|
3760
|
+
function no(e) {
|
|
3559
3761
|
if (typeof e == "string") return e;
|
|
3560
3762
|
if (e instanceof Error) return `${e.name}: ${e.message}`;
|
|
3561
3763
|
try {
|
|
@@ -3564,10 +3766,10 @@ function va(e) {
|
|
|
3564
3766
|
return String(e);
|
|
3565
3767
|
}
|
|
3566
3768
|
}
|
|
3567
|
-
var
|
|
3568
|
-
function
|
|
3569
|
-
if (
|
|
3570
|
-
|
|
3769
|
+
var ro = !1;
|
|
3770
|
+
function io() {
|
|
3771
|
+
if (ro || typeof window > "u") return;
|
|
3772
|
+
ro = !0, window.addEventListener("error", (e) => to(`window.error: ${e.message} @ ${e.filename ?? "?"}:${e.lineno ?? "?"}:${e.colno ?? "?"}`)), window.addEventListener("unhandledrejection", (e) => to(`unhandledRejection: ${no(e.reason)}`));
|
|
3571
3773
|
let e = console;
|
|
3572
3774
|
for (let t of [
|
|
3573
3775
|
"error",
|
|
@@ -3578,17 +3780,17 @@ function ba() {
|
|
|
3578
3780
|
let n = e[t]?.bind(console) ?? (() => void 0);
|
|
3579
3781
|
e[t] = (...e) => {
|
|
3580
3782
|
try {
|
|
3581
|
-
|
|
3783
|
+
to(`console.${t}: ${e.map(no).join(" ")}`);
|
|
3582
3784
|
} catch {}
|
|
3583
3785
|
n(...e);
|
|
3584
3786
|
};
|
|
3585
3787
|
}
|
|
3586
3788
|
try {
|
|
3587
|
-
|
|
3789
|
+
qe((e) => to(`${e.levelName} [${e.component}] ${e.message}`), { minLevel: re.DEBUG });
|
|
3588
3790
|
} catch {}
|
|
3589
3791
|
}
|
|
3590
|
-
|
|
3591
|
-
function
|
|
3792
|
+
Za && io();
|
|
3793
|
+
function ao() {
|
|
3592
3794
|
let e = !1;
|
|
3593
3795
|
try {
|
|
3594
3796
|
let t = URL.createObjectURL(new Blob([""]));
|
|
@@ -3598,11 +3800,11 @@ function xa() {
|
|
|
3598
3800
|
} catch {}
|
|
3599
3801
|
return e;
|
|
3600
3802
|
}
|
|
3601
|
-
function
|
|
3803
|
+
function oo() {
|
|
3602
3804
|
let e = globalThis;
|
|
3603
3805
|
return [
|
|
3604
3806
|
`Worker=${typeof Worker < "u"}`,
|
|
3605
|
-
`moduleWorker=${
|
|
3807
|
+
`moduleWorker=${ao()}`,
|
|
3606
3808
|
`WebSocket=${typeof WebSocket < "u"}`,
|
|
3607
3809
|
`WebTransport=${e.WebTransport !== void 0}`,
|
|
3608
3810
|
`RTCPeerConnection=${typeof RTCPeerConnection < "u"}`,
|
|
@@ -3615,17 +3817,17 @@ function Sa() {
|
|
|
3615
3817
|
`online=${typeof navigator < "u" ? navigator.onLine : "?"}`
|
|
3616
3818
|
].join(" ");
|
|
3617
3819
|
}
|
|
3618
|
-
function
|
|
3820
|
+
function so(e) {
|
|
3619
3821
|
return /ERROR|error:|Rejection/.test(e) ? "#f88" : /WARN|warn:/.test(e) ? "#fc6" : "#9d9";
|
|
3620
3822
|
}
|
|
3621
|
-
function
|
|
3622
|
-
let n =
|
|
3623
|
-
return
|
|
3823
|
+
function co({ state: e = "", forceVisible: t = !1 }) {
|
|
3824
|
+
let n = Za || t, r = e === "connected" || e === "reconnecting", [, i] = tt((e) => e + 1, 0), [a, o] = I(!0);
|
|
3825
|
+
return N(() => {
|
|
3624
3826
|
if (!n) return;
|
|
3625
|
-
|
|
3827
|
+
io();
|
|
3626
3828
|
let e = setInterval(i, 1e3);
|
|
3627
3829
|
return () => clearInterval(e);
|
|
3628
|
-
}, [n]), n ? r && a ? /* @__PURE__ */
|
|
3830
|
+
}, [n]), n ? r && a ? /* @__PURE__ */ R("button", {
|
|
3629
3831
|
type: "button",
|
|
3630
3832
|
onClick: () => o(!1),
|
|
3631
3833
|
style: {
|
|
@@ -3642,10 +3844,10 @@ function wa({ state: e = "", forceVisible: t = !1 }) {
|
|
|
3642
3844
|
},
|
|
3643
3845
|
children: [
|
|
3644
3846
|
"🐞 debug (",
|
|
3645
|
-
|
|
3847
|
+
$a.length,
|
|
3646
3848
|
")"
|
|
3647
3849
|
]
|
|
3648
|
-
}) : /* @__PURE__ */
|
|
3850
|
+
}) : /* @__PURE__ */ R("div", {
|
|
3649
3851
|
style: {
|
|
3650
3852
|
...r ? {
|
|
3651
3853
|
position: "fixed",
|
|
@@ -3666,7 +3868,7 @@ function wa({ state: e = "", forceVisible: t = !1 }) {
|
|
|
3666
3868
|
zIndex: 2147483647
|
|
3667
3869
|
},
|
|
3668
3870
|
children: [
|
|
3669
|
-
/* @__PURE__ */
|
|
3871
|
+
/* @__PURE__ */ R("div", {
|
|
3670
3872
|
style: {
|
|
3671
3873
|
color: "#fff",
|
|
3672
3874
|
fontSize: "18px",
|
|
@@ -3676,11 +3878,11 @@ function wa({ state: e = "", forceVisible: t = !1 }) {
|
|
|
3676
3878
|
"Ikon debug overlay — state: ",
|
|
3677
3879
|
e || "?",
|
|
3678
3880
|
", +",
|
|
3679
|
-
Math.round((Date.now() -
|
|
3881
|
+
Math.round((Date.now() - Qa) / 1e3),
|
|
3680
3882
|
"s, ",
|
|
3681
|
-
|
|
3883
|
+
$a.length,
|
|
3682
3884
|
" entries",
|
|
3683
|
-
r && /* @__PURE__ */
|
|
3885
|
+
r && /* @__PURE__ */ L("button", {
|
|
3684
3886
|
type: "button",
|
|
3685
3887
|
onClick: () => o(!0),
|
|
3686
3888
|
style: {
|
|
@@ -3696,7 +3898,7 @@ function wa({ state: e = "", forceVisible: t = !1 }) {
|
|
|
3696
3898
|
})
|
|
3697
3899
|
]
|
|
3698
3900
|
}),
|
|
3699
|
-
/* @__PURE__ */
|
|
3901
|
+
/* @__PURE__ */ L("div", {
|
|
3700
3902
|
style: {
|
|
3701
3903
|
color: "#9cf",
|
|
3702
3904
|
wordBreak: "break-all",
|
|
@@ -3704,7 +3906,7 @@ function wa({ state: e = "", forceVisible: t = !1 }) {
|
|
|
3704
3906
|
},
|
|
3705
3907
|
children: typeof window < "u" ? window.location.href : ""
|
|
3706
3908
|
}),
|
|
3707
|
-
/* @__PURE__ */
|
|
3909
|
+
/* @__PURE__ */ L("div", {
|
|
3708
3910
|
style: {
|
|
3709
3911
|
color: "#ff0",
|
|
3710
3912
|
wordBreak: "break-all",
|
|
@@ -3712,23 +3914,23 @@ function wa({ state: e = "", forceVisible: t = !1 }) {
|
|
|
3712
3914
|
},
|
|
3713
3915
|
children: typeof navigator < "u" ? navigator.userAgent : "no navigator"
|
|
3714
3916
|
}),
|
|
3715
|
-
/* @__PURE__ */
|
|
3917
|
+
/* @__PURE__ */ L("div", {
|
|
3716
3918
|
style: {
|
|
3717
3919
|
color: "#8cf",
|
|
3718
3920
|
marginBottom: "4px"
|
|
3719
3921
|
},
|
|
3720
|
-
children:
|
|
3922
|
+
children: oo()
|
|
3721
3923
|
}),
|
|
3722
|
-
/* @__PURE__ */
|
|
3924
|
+
/* @__PURE__ */ L("div", {
|
|
3723
3925
|
style: {
|
|
3724
3926
|
color: "#8cf",
|
|
3725
3927
|
marginBottom: "10px"
|
|
3726
3928
|
},
|
|
3727
3929
|
children: typeof window < "u" ? `viewport=${window.innerWidth}x${window.innerHeight} dpr=${window.devicePixelRatio}` : ""
|
|
3728
3930
|
}),
|
|
3729
|
-
/* @__PURE__ */
|
|
3931
|
+
/* @__PURE__ */ L("div", { children: $a.length === 0 ? "(nothing captured yet)" : $a.map((e, t) => /* @__PURE__ */ L("div", {
|
|
3730
3932
|
style: {
|
|
3731
|
-
color:
|
|
3933
|
+
color: so(e),
|
|
3732
3934
|
wordBreak: "break-all"
|
|
3733
3935
|
},
|
|
3734
3936
|
children: e
|
|
@@ -3738,8 +3940,8 @@ function wa({ state: e = "", forceVisible: t = !1 }) {
|
|
|
3738
3940
|
}
|
|
3739
3941
|
//#endregion
|
|
3740
3942
|
//#region src/app/connection-state-renderer.tsx
|
|
3741
|
-
function
|
|
3742
|
-
let m =
|
|
3943
|
+
function lo({ connectionState: e, error: t, isReady: n, isConnectingSlow: r, stores: i, registry: a, client: o, onAction: s, renderIdle: c, renderConnecting: l, renderConnectingSlow: u, renderConnected: d, renderOffline: f, renderError: p }) {
|
|
3944
|
+
let m = F(!1), h = (() => {
|
|
3743
3945
|
switch (e) {
|
|
3744
3946
|
case "waitingForExternalConnectUrl":
|
|
3745
3947
|
case "connecting": return r ? u() : l();
|
|
@@ -3764,286 +3966,286 @@ function Ta({ connectionState: e, error: t, isReady: n, isConnectingSlow: r, sto
|
|
|
3764
3966
|
default: return null;
|
|
3765
3967
|
}
|
|
3766
3968
|
})();
|
|
3767
|
-
return /* @__PURE__ */
|
|
3969
|
+
return /* @__PURE__ */ R(rt, { children: [h, /* @__PURE__ */ L(co, { state: e })] });
|
|
3768
3970
|
}
|
|
3769
3971
|
//#endregion
|
|
3770
3972
|
//#region src/app/boot-snapshot-variant.ts
|
|
3771
|
-
function
|
|
3973
|
+
function uo(e, t) {
|
|
3772
3974
|
return e === !1 ? !1 : t ? "signed-in" : "guest";
|
|
3773
3975
|
}
|
|
3774
3976
|
//#endregion
|
|
3775
3977
|
//#region src/app/use-ikon-app.ts
|
|
3776
|
-
var
|
|
3777
|
-
function
|
|
3978
|
+
var fo = D("useIkonApp");
|
|
3979
|
+
function po() {
|
|
3778
3980
|
if (typeof window < "u" && window.__IKON_AUTH_CONFIG__) return window.__IKON_AUTH_CONFIG__;
|
|
3779
3981
|
}
|
|
3780
|
-
function
|
|
3982
|
+
function mo() {
|
|
3781
3983
|
if (typeof window < "u" && window.__IKON_LOCAL_IKON_SERVER_CONFIG__) return window.__IKON_LOCAL_IKON_SERVER_CONFIG__;
|
|
3782
3984
|
}
|
|
3783
|
-
function
|
|
3985
|
+
function ho(e, t) {
|
|
3784
3986
|
return {
|
|
3785
3987
|
...e,
|
|
3786
3988
|
...t ?? {}
|
|
3787
3989
|
};
|
|
3788
3990
|
}
|
|
3789
|
-
var
|
|
3790
|
-
function
|
|
3991
|
+
var go = "ikon-sso-required-redirect:", _o = 3e5;
|
|
3992
|
+
function vo(e, t = Date.now()) {
|
|
3791
3993
|
try {
|
|
3792
|
-
let n = `${
|
|
3793
|
-
return t - Number(window.sessionStorage.getItem(n) ?? 0) <
|
|
3994
|
+
let n = `${go}${e}`;
|
|
3995
|
+
return t - Number(window.sessionStorage.getItem(n) ?? 0) < _o ? !1 : (window.sessionStorage.setItem(n, String(t)), !0);
|
|
3794
3996
|
} catch {
|
|
3795
3997
|
return !1;
|
|
3796
3998
|
}
|
|
3797
3999
|
}
|
|
3798
|
-
function
|
|
4000
|
+
function yo() {
|
|
3799
4001
|
try {
|
|
3800
4002
|
let e = [];
|
|
3801
4003
|
for (let t = 0; t < window.sessionStorage.length; t++) {
|
|
3802
4004
|
let n = window.sessionStorage.key(t);
|
|
3803
|
-
n?.startsWith(
|
|
4005
|
+
n?.startsWith(go) && e.push(n);
|
|
3804
4006
|
}
|
|
3805
4007
|
for (let t of e) window.sessionStorage.removeItem(t);
|
|
3806
4008
|
} catch {}
|
|
3807
4009
|
}
|
|
3808
|
-
function
|
|
3809
|
-
return e?.token ? `${e.provider}:${
|
|
4010
|
+
function bo(e) {
|
|
4011
|
+
return e?.token ? `${e.provider}:${be(e.token) ?? e.token}` : null;
|
|
3810
4012
|
}
|
|
3811
|
-
function
|
|
3812
|
-
let { authConfig: t, modules: n, parameters: r, timeouts: i, backgroundAudio: a, disableBrowserFunctions: o, disableSoundFunctions: c, webRtc: l, audio: f, video: ee, websocket: y, webtransport: b, httpstream: x, proxy:
|
|
3813
|
-
|
|
3814
|
-
let [
|
|
4013
|
+
function xo(e) {
|
|
4014
|
+
let { authConfig: t, modules: n, parameters: r, timeouts: i, backgroundAudio: a, disableBrowserFunctions: o, disableSoundFunctions: c, webRtc: l, audio: f, video: ee, websocket: y, webtransport: b, httpstream: x, proxy: te, liveSnapshot: S, bootSnapshot: C } = e, w = t === void 0 ? po() ?? null : t, re = mo(), T = Na(), le = !!T && T.state.isLoading, E = F(null), ue = F(null), de = F(null), fe = F(!1), pe = F(!1), me = F(a), he = F(o), ge = F(c), D = F(i), _e = F(l), ye = F(f), xe = F(ee), Se = F(y), Ce = F(b), we = F(x), Te = F(te), Ee = F(S), De = F(C), Oe = F("local"), ke = F(void 0);
|
|
4015
|
+
me.current = a, he.current = o, ge.current = c, D.current = i, _e.current = l, ye.current = f, xe.current = ee, Se.current = y, Ce.current = b, we.current = x, Te.current = te, Ee.current = S, De.current = C;
|
|
4016
|
+
let [k, Ae] = I("connecting"), [Me, Ne] = I(!1), [Fe, Ie] = I(!1), [Re, ze] = I(null), [Ve, He] = I(null), [Ue, We] = I(null), [Ge, Ke] = I(!1), [qe, Je] = I(!1), [Ye, Xe] = I(!1), [Ze, Qe] = I(null), [A, j] = I(null), [$e, et] = I(!1), tt = F(!1), [nt, rt] = I(0), [L, R] = I(0), z = P(() => {
|
|
3815
4017
|
try {
|
|
3816
|
-
return
|
|
4018
|
+
return Le();
|
|
3817
4019
|
} catch {
|
|
3818
4020
|
return { parameters: {} };
|
|
3819
4021
|
}
|
|
3820
|
-
}, []),
|
|
3821
|
-
|
|
3822
|
-
let
|
|
3823
|
-
if (!
|
|
3824
|
-
let e =
|
|
4022
|
+
}, []), at = JSON.stringify(r ?? {}), ot = P(() => ho(z.parameters, r), [z.parameters, at]), st = (w?.methods?.length ?? 0) > 0, ct = uo(C, st && Mi());
|
|
4023
|
+
ct !== !1 && !u() && d(ct);
|
|
4024
|
+
let B = P(() => {
|
|
4025
|
+
if (!w?.spaceId) return null;
|
|
4026
|
+
let e = T?.state.user;
|
|
3825
4027
|
return e ? {
|
|
3826
4028
|
token: e.token,
|
|
3827
4029
|
provider: e.provider,
|
|
3828
4030
|
authenticatedAt: e.authenticatedAt
|
|
3829
|
-
} :
|
|
4031
|
+
} : Ti();
|
|
3830
4032
|
}, [
|
|
3831
|
-
|
|
3832
|
-
|
|
3833
|
-
|
|
3834
|
-
|
|
3835
|
-
|
|
3836
|
-
]),
|
|
3837
|
-
|
|
3838
|
-
|
|
4033
|
+
w?.spaceId,
|
|
4034
|
+
nt,
|
|
4035
|
+
T?.state.isLoading,
|
|
4036
|
+
T?.state.isAuthenticated,
|
|
4037
|
+
T?.state.user?.token
|
|
4038
|
+
]), V = re?.enabled ?? !1, H = re?.host ?? g, lt = re?.port ?? _, U = !le && !!w && !B && !w.requireSignIn && !!w.spaceId && (je() || V);
|
|
4039
|
+
U && !A && !$e && !tt.current && (tt.current = !0, O(w.authUrl).then((e) => Hi(w.spaceId, e)).then((e) => {
|
|
4040
|
+
j(e.token), et(!0);
|
|
3839
4041
|
}).catch((e) => {
|
|
3840
|
-
|
|
4042
|
+
fo.error("Anonymous auth failed:", e), tt.current = !1, V ? et(!0) : He(e instanceof Error ? e.message : "Anonymous auth failed");
|
|
3841
4043
|
}));
|
|
3842
|
-
let ut =
|
|
3843
|
-
W.current =
|
|
3844
|
-
let dt =
|
|
3845
|
-
if (
|
|
3846
|
-
if (
|
|
3847
|
-
if (
|
|
3848
|
-
let e = W.current ??
|
|
4044
|
+
let ut = bo(B), W = F(void 0);
|
|
4045
|
+
W.current = B?.token ?? void 0;
|
|
4046
|
+
let dt = P(() => {
|
|
4047
|
+
if (le) return null;
|
|
4048
|
+
if (V) {
|
|
4049
|
+
if (U && !$e) return null;
|
|
4050
|
+
let e = W.current ?? A ?? void 0, t = e ? be(e) ?? void 0 : void 0;
|
|
3849
4051
|
return { local: {
|
|
3850
|
-
host:
|
|
3851
|
-
httpsPort:
|
|
4052
|
+
host: H,
|
|
4053
|
+
httpsPort: lt,
|
|
3852
4054
|
userId: t,
|
|
3853
4055
|
token: W.current,
|
|
3854
4056
|
identityToken: e,
|
|
3855
|
-
spaceId:
|
|
3856
|
-
backendUrl:
|
|
3857
|
-
authUrl:
|
|
3858
|
-
parameters:
|
|
4057
|
+
spaceId: w?.spaceId,
|
|
4058
|
+
backendUrl: w?.backendUrl,
|
|
4059
|
+
authUrl: w?.authUrl,
|
|
4060
|
+
parameters: ot
|
|
3859
4061
|
} };
|
|
3860
4062
|
}
|
|
3861
|
-
return W.current &&
|
|
4063
|
+
return W.current && w?.spaceId ? { sessionToken: {
|
|
3862
4064
|
token: W.current,
|
|
3863
|
-
spaceId:
|
|
3864
|
-
backendType:
|
|
3865
|
-
sessionIdentityHash:
|
|
3866
|
-
parameters:
|
|
3867
|
-
} } :
|
|
3868
|
-
token:
|
|
3869
|
-
spaceId:
|
|
3870
|
-
backendType:
|
|
3871
|
-
sessionIdentityHash:
|
|
3872
|
-
parameters:
|
|
3873
|
-
} } :
|
|
3874
|
-
host:
|
|
3875
|
-
httpsPort:
|
|
3876
|
-
spaceId:
|
|
3877
|
-
backendUrl:
|
|
3878
|
-
authUrl:
|
|
3879
|
-
parameters:
|
|
4065
|
+
spaceId: w.spaceId,
|
|
4066
|
+
backendType: ve(),
|
|
4067
|
+
sessionIdentityHash: z.sessionIdentityHash,
|
|
4068
|
+
parameters: ot
|
|
4069
|
+
} } : A && w?.spaceId ? { sessionToken: {
|
|
4070
|
+
token: A,
|
|
4071
|
+
spaceId: w.spaceId,
|
|
4072
|
+
backendType: ve(),
|
|
4073
|
+
sessionIdentityHash: z.sessionIdentityHash,
|
|
4074
|
+
parameters: ot
|
|
4075
|
+
} } : je() ? null : { local: {
|
|
4076
|
+
host: H,
|
|
4077
|
+
httpsPort: lt,
|
|
4078
|
+
spaceId: w?.spaceId,
|
|
4079
|
+
backendUrl: w?.backendUrl,
|
|
4080
|
+
authUrl: w?.authUrl,
|
|
4081
|
+
parameters: ot
|
|
3880
4082
|
} };
|
|
3881
4083
|
}, [
|
|
3882
|
-
|
|
3883
|
-
|
|
3884
|
-
|
|
3885
|
-
ct,
|
|
3886
|
-
ut,
|
|
3887
|
-
T?.spaceId,
|
|
3888
|
-
T?.backendUrl,
|
|
3889
|
-
T?.authUrl,
|
|
3890
|
-
M,
|
|
4084
|
+
le,
|
|
4085
|
+
V,
|
|
4086
|
+
H,
|
|
3891
4087
|
lt,
|
|
3892
|
-
|
|
3893
|
-
|
|
3894
|
-
|
|
4088
|
+
ut,
|
|
4089
|
+
w?.spaceId,
|
|
4090
|
+
w?.backendUrl,
|
|
4091
|
+
w?.authUrl,
|
|
4092
|
+
A,
|
|
4093
|
+
U,
|
|
4094
|
+
$e,
|
|
4095
|
+
z.sessionIdentityHash,
|
|
4096
|
+
ot
|
|
3895
4097
|
]);
|
|
3896
|
-
|
|
3897
|
-
let ft =
|
|
3898
|
-
|
|
3899
|
-
if (!
|
|
3900
|
-
if (
|
|
3901
|
-
|
|
3902
|
-
|
|
4098
|
+
Oe.current = w?.spaceId ?? "local", ke.current = B?.token ?? A ?? void 0, gr(Ze);
|
|
4099
|
+
let ft = vr(Ze);
|
|
4100
|
+
N(() => {
|
|
4101
|
+
if (!fe.current) {
|
|
4102
|
+
if (fe.current = !0, de.current = Mn(), n) for (let e of n) e(de.current);
|
|
4103
|
+
de.current.loadRegisteredModules().catch((e) => {
|
|
4104
|
+
fo.error("Failed to load UI modules", e);
|
|
3903
4105
|
});
|
|
3904
4106
|
}
|
|
3905
|
-
}, []),
|
|
4107
|
+
}, []), N(() => {
|
|
3906
4108
|
if (!dt) return;
|
|
3907
|
-
let e = new
|
|
4109
|
+
let e = new ne({
|
|
3908
4110
|
...dt,
|
|
3909
|
-
timeouts:
|
|
3910
|
-
disableBrowserFunctions:
|
|
3911
|
-
disableSoundFunctions:
|
|
3912
|
-
audio:
|
|
3913
|
-
enabled:
|
|
3914
|
-
...
|
|
4111
|
+
timeouts: D.current,
|
|
4112
|
+
disableBrowserFunctions: he.current,
|
|
4113
|
+
disableSoundFunctions: ge.current,
|
|
4114
|
+
audio: ye.current !== void 0 || me.current ? {
|
|
4115
|
+
enabled: ye.current,
|
|
4116
|
+
...me.current ? { background: {
|
|
3915
4117
|
allowOnDesktop: !0,
|
|
3916
4118
|
allowOnMobile: !0
|
|
3917
4119
|
} } : {}
|
|
3918
4120
|
} : void 0,
|
|
3919
|
-
video:
|
|
4121
|
+
video: xe.current === void 0 ? void 0 : { enabled: xe.current },
|
|
3920
4122
|
mediaSession: {
|
|
3921
4123
|
title: document.title || void 0,
|
|
3922
4124
|
artist: document.title || void 0
|
|
3923
4125
|
},
|
|
3924
|
-
webRtc:
|
|
3925
|
-
websocket:
|
|
3926
|
-
webtransport:
|
|
3927
|
-
httpstream:
|
|
3928
|
-
proxy:
|
|
4126
|
+
webRtc: _e.current === !1 ? { enabled: !1 } : void 0,
|
|
4127
|
+
websocket: Se.current,
|
|
4128
|
+
webtransport: Ce.current,
|
|
4129
|
+
httpstream: we.current,
|
|
4130
|
+
proxy: Te.current,
|
|
3929
4131
|
onConnectionStateChange: (e) => {
|
|
3930
|
-
|
|
4132
|
+
Ae(e);
|
|
3931
4133
|
},
|
|
3932
4134
|
onError: (e) => {
|
|
3933
|
-
|
|
4135
|
+
He(e.message);
|
|
3934
4136
|
}
|
|
3935
4137
|
});
|
|
3936
|
-
|
|
3937
|
-
let t =
|
|
4138
|
+
E.current = e;
|
|
4139
|
+
let t = Ee.current ?? !0, n = ke.current, r = n ? be(n) ?? null : null, i = t && r ? {
|
|
3938
4140
|
enabled: !0,
|
|
3939
|
-
appId:
|
|
4141
|
+
appId: Oe.current,
|
|
3940
4142
|
userId: r
|
|
3941
|
-
} : void 0, a =
|
|
4143
|
+
} : void 0, a = B != null && B.provider !== "anonymous", o = st && (a || Mi()), c = new it({
|
|
3942
4144
|
client: e,
|
|
3943
4145
|
liveSnapshot: i,
|
|
3944
|
-
bootSnapshot:
|
|
4146
|
+
bootSnapshot: uo(De.current, o)
|
|
3945
4147
|
});
|
|
3946
|
-
|
|
3947
|
-
let l = e.subscribeToFeedback(
|
|
3948
|
-
|
|
4148
|
+
ue.current = c, Qe(c), Ie(!1), ze(e.feedback);
|
|
4149
|
+
let l = e.subscribeToFeedback(ze), u = c.subscribeToUiUpdates(() => {
|
|
4150
|
+
Ie(!0), Be();
|
|
3949
4151
|
});
|
|
3950
|
-
return e.connect().then(
|
|
3951
|
-
if (
|
|
3952
|
-
let t =
|
|
3953
|
-
|
|
3954
|
-
let i = await
|
|
4152
|
+
return e.connect().then(yo, (e) => {
|
|
4153
|
+
if (fo.error("Connection failed:", e), e instanceof ce && w?.spaceId && !Pe() && vo(e.connectionId)) {
|
|
4154
|
+
let t = w.spaceId, n = W.current;
|
|
4155
|
+
O(w.authUrl).then(async (r) => {
|
|
4156
|
+
let i = await ta(e.connectionId, t, r, { linkSessionToken: n ?? void 0 });
|
|
3955
4157
|
if (!i) {
|
|
3956
|
-
|
|
4158
|
+
We(e.reason);
|
|
3957
4159
|
return;
|
|
3958
4160
|
}
|
|
3959
4161
|
window.location.href = i;
|
|
3960
|
-
}).catch(() =>
|
|
4162
|
+
}).catch(() => We(e.reason));
|
|
3961
4163
|
return;
|
|
3962
4164
|
}
|
|
3963
4165
|
if (e instanceof p) {
|
|
3964
|
-
|
|
4166
|
+
We(e.reason);
|
|
3965
4167
|
return;
|
|
3966
4168
|
}
|
|
3967
|
-
if (e instanceof
|
|
3968
|
-
|
|
4169
|
+
if (e instanceof ae) {
|
|
4170
|
+
Ke(!0);
|
|
3969
4171
|
return;
|
|
3970
4172
|
}
|
|
3971
|
-
if (e instanceof
|
|
3972
|
-
|
|
4173
|
+
if (e instanceof se) {
|
|
4174
|
+
Je(!0);
|
|
3973
4175
|
return;
|
|
3974
4176
|
}
|
|
3975
|
-
if (!(e instanceof
|
|
4177
|
+
if (!(e instanceof oe)) {
|
|
3976
4178
|
if (e instanceof m) {
|
|
3977
|
-
|
|
4179
|
+
Xe(!0);
|
|
3978
4180
|
return;
|
|
3979
4181
|
}
|
|
3980
|
-
e instanceof
|
|
4182
|
+
e instanceof ie || e instanceof h && !pe.current && (pe.current = !0, fo.warn("Auth session appears stale, clearing and retrying"), s.clearAll(), T ? T.logout() : (Ni(), rt((e) => e + 1)));
|
|
3981
4183
|
}
|
|
3982
4184
|
}), () => {
|
|
3983
|
-
u(), l(), e.disconnect(),
|
|
4185
|
+
u(), l(), e.disconnect(), E.current = null, c.dispose(), ue.current = null;
|
|
3984
4186
|
};
|
|
3985
|
-
}, [dt,
|
|
3986
|
-
let e =
|
|
4187
|
+
}, [dt, L]), N(() => {
|
|
4188
|
+
let e = B?.token, t = E.current;
|
|
3987
4189
|
if (!(!e || !t)) {
|
|
3988
4190
|
if (t.connectionState === "offline" && !t.serverStopped) {
|
|
3989
|
-
|
|
4191
|
+
R((e) => e + 1);
|
|
3990
4192
|
return;
|
|
3991
4193
|
}
|
|
3992
4194
|
t.updateAuthToken(e);
|
|
3993
4195
|
}
|
|
3994
|
-
}, [
|
|
3995
|
-
let pt =
|
|
4196
|
+
}, [B?.token]);
|
|
4197
|
+
let pt = M((e, t, n) => {
|
|
3996
4198
|
let r = typeof t == "string" ? t : JSON.stringify(t ?? {});
|
|
3997
|
-
|
|
4199
|
+
E.current?.sendActionCall(e, r, n);
|
|
3998
4200
|
}, []);
|
|
3999
|
-
|
|
4000
|
-
if (
|
|
4001
|
-
|
|
4201
|
+
N(() => {
|
|
4202
|
+
if (k !== "connecting" && k !== "waitingForExternalConnectUrl") {
|
|
4203
|
+
Ne(!1);
|
|
4002
4204
|
return;
|
|
4003
4205
|
}
|
|
4004
|
-
let e =
|
|
4206
|
+
let e = E.current?.slowConnectionThresholdMs ?? v, t = setTimeout(() => Ne(!0), e);
|
|
4005
4207
|
return () => clearTimeout(t);
|
|
4006
|
-
}, [
|
|
4007
|
-
let mt =
|
|
4008
|
-
return
|
|
4208
|
+
}, [k]);
|
|
4209
|
+
let mt = k === "connected" || k === "reconnecting", ht = Fe && k !== "offline";
|
|
4210
|
+
return N(() => {
|
|
4009
4211
|
typeof document > "u" || (document.documentElement.dataset.ikonLive = String(ht));
|
|
4010
4212
|
}, [ht]), {
|
|
4011
|
-
connectionState:
|
|
4012
|
-
error:
|
|
4013
|
-
accessDeniedReason:
|
|
4014
|
-
isServerFull:
|
|
4015
|
-
isSessionExpired:
|
|
4016
|
-
isStartupFailed:
|
|
4213
|
+
connectionState: k,
|
|
4214
|
+
error: Ve,
|
|
4215
|
+
accessDeniedReason: Ue,
|
|
4216
|
+
isServerFull: Ge,
|
|
4217
|
+
isSessionExpired: qe,
|
|
4218
|
+
isStartupFailed: Ye,
|
|
4017
4219
|
stores: ft,
|
|
4018
|
-
client:
|
|
4019
|
-
registry:
|
|
4020
|
-
clientRef:
|
|
4021
|
-
uiRef:
|
|
4022
|
-
registryRef:
|
|
4220
|
+
client: E.current,
|
|
4221
|
+
registry: de.current,
|
|
4222
|
+
clientRef: E,
|
|
4223
|
+
uiRef: ue,
|
|
4224
|
+
registryRef: de,
|
|
4023
4225
|
onAction: pt,
|
|
4024
4226
|
isReady: mt,
|
|
4025
4227
|
isLive: ht,
|
|
4026
|
-
brandingRequired:
|
|
4027
|
-
feedback:
|
|
4028
|
-
isConnectingSlow:
|
|
4029
|
-
webRtcVideoStreams:
|
|
4030
|
-
webRtcTrackMap:
|
|
4228
|
+
brandingRequired: E.current?.brandingRequired ?? !1,
|
|
4229
|
+
feedback: Re,
|
|
4230
|
+
isConnectingSlow: Me,
|
|
4231
|
+
webRtcVideoStreams: E.current?.webRtcVideoStreams ?? /* @__PURE__ */ new Map(),
|
|
4232
|
+
webRtcTrackMap: E.current?.webRtcTrackMap ?? /* @__PURE__ */ new Map()
|
|
4031
4233
|
};
|
|
4032
4234
|
}
|
|
4033
4235
|
//#endregion
|
|
4034
4236
|
//#region src/hooks/use-toasts.ts
|
|
4035
|
-
var
|
|
4036
|
-
function
|
|
4037
|
-
let [n, r] =
|
|
4237
|
+
var So = 0;
|
|
4238
|
+
function Co(e = 5, t = 5e3) {
|
|
4239
|
+
let [n, r] = I([]), i = F(/* @__PURE__ */ new Map()), a = M((e) => {
|
|
4038
4240
|
let t = i.current.get(e);
|
|
4039
4241
|
t && (clearTimeout(t), i.current.delete(e)), r((t) => t.filter((t) => t.id !== e));
|
|
4040
4242
|
}, []);
|
|
4041
|
-
return
|
|
4042
|
-
let n = i.current, o =
|
|
4043
|
-
if (!
|
|
4044
|
-
let o = `toast-${++
|
|
4243
|
+
return N(() => {
|
|
4244
|
+
let n = i.current, o = qe((i) => {
|
|
4245
|
+
if (!Ne()) return;
|
|
4246
|
+
let o = `toast-${++So}`, s = {
|
|
4045
4247
|
id: o,
|
|
4046
|
-
level: i.level ===
|
|
4248
|
+
level: i.level === re.ERROR ? "error" : "warn",
|
|
4047
4249
|
message: i.message,
|
|
4048
4250
|
component: i.component
|
|
4049
4251
|
};
|
|
@@ -4052,7 +4254,7 @@ function Ra(e = 5, t = 5e3) {
|
|
|
4052
4254
|
a(o);
|
|
4053
4255
|
}, t);
|
|
4054
4256
|
n.set(o, c);
|
|
4055
|
-
}, { minLevel:
|
|
4257
|
+
}, { minLevel: re.WARN });
|
|
4056
4258
|
return () => {
|
|
4057
4259
|
o();
|
|
4058
4260
|
for (let e of n.values()) clearTimeout(e);
|
|
@@ -4069,9 +4271,9 @@ function Ra(e = 5, t = 5e3) {
|
|
|
4069
4271
|
}
|
|
4070
4272
|
//#endregion
|
|
4071
4273
|
//#region src/hooks/use-ikon-reactive.ts
|
|
4072
|
-
function
|
|
4073
|
-
let [r, i] =
|
|
4074
|
-
return
|
|
4274
|
+
function wo(e, t, n) {
|
|
4275
|
+
let [r, i] = I(n);
|
|
4276
|
+
return N(() => {
|
|
4075
4277
|
if (!e) return;
|
|
4076
4278
|
let n = !0, r = null;
|
|
4077
4279
|
return e.reactiveRegistry.subscribe(t, (e) => {
|
|
@@ -4087,9 +4289,9 @@ function za(e, t, n) {
|
|
|
4087
4289
|
}
|
|
4088
4290
|
//#endregion
|
|
4089
4291
|
//#region src/hooks/use-reactive.ts
|
|
4090
|
-
function
|
|
4091
|
-
let [r, i] =
|
|
4092
|
-
return
|
|
4292
|
+
function To(e, t, n) {
|
|
4293
|
+
let [r, i] = I(null);
|
|
4294
|
+
return N(() => {
|
|
4093
4295
|
if (!e) return;
|
|
4094
4296
|
let n = !0;
|
|
4095
4297
|
return e.call("Ikon.Reactive.GetStableIdByName", [t]).then((e) => {
|
|
@@ -4099,56 +4301,56 @@ function Ba(e, t, n) {
|
|
|
4099
4301
|
}), () => {
|
|
4100
4302
|
n = !1;
|
|
4101
4303
|
};
|
|
4102
|
-
}, [e, t]),
|
|
4304
|
+
}, [e, t]), wo(r ? e : null, r ?? "", n);
|
|
4103
4305
|
}
|
|
4104
4306
|
//#endregion
|
|
4105
4307
|
//#region src/app/use-ikon-debug.ts
|
|
4106
|
-
var
|
|
4308
|
+
var Eo = D("IkonDebug"), Do = {
|
|
4107
4309
|
Digit1: "connecting",
|
|
4108
4310
|
Digit2: "connected",
|
|
4109
4311
|
Digit3: "reconnecting",
|
|
4110
4312
|
Digit4: "offline",
|
|
4111
4313
|
Digit5: "offline",
|
|
4112
4314
|
Digit0: "clear"
|
|
4113
|
-
},
|
|
4114
|
-
function
|
|
4115
|
-
let t =
|
|
4116
|
-
return
|
|
4315
|
+
}, Oo = "Digit5", ko = "Digit6", Ao = "Synthetic debug error (Ctrl+Shift+5)", jo = "Synthetic debug access-denied (Ctrl+Shift+6)", Mo = 5e3;
|
|
4316
|
+
function No(e) {
|
|
4317
|
+
let t = Ne(), [n, r] = I(null), [i, a] = I(!1), [o, s] = I(null), [c, l] = I(null), [u, d] = I(!1), [f, p] = I(!1), [m, h] = I(!1);
|
|
4318
|
+
return N(() => {
|
|
4117
4319
|
if (!t) return;
|
|
4118
4320
|
let e = (e) => {
|
|
4119
4321
|
if (!e.ctrlKey || !e.shiftKey) return;
|
|
4120
4322
|
if (e.code === "KeyE") {
|
|
4121
|
-
e.preventDefault(), d((e) => (
|
|
4323
|
+
e.preventDefault(), d((e) => (Eo.warn(`Empty-stores override: ${e ? "off" : "on"}`), !e));
|
|
4122
4324
|
return;
|
|
4123
4325
|
}
|
|
4124
4326
|
if (e.code === "Digit7") {
|
|
4125
|
-
e.preventDefault(), p((e) => (
|
|
4327
|
+
e.preventDefault(), p((e) => (Eo.warn(`Branding-banner override: ${e ? "off" : "on"}`), !e));
|
|
4126
4328
|
return;
|
|
4127
4329
|
}
|
|
4128
4330
|
if (e.code === "Digit8") {
|
|
4129
|
-
e.preventDefault(), h((e) => (
|
|
4331
|
+
e.preventDefault(), h((e) => (Eo.warn(`Debug-overlay override: ${e ? "off" : "on"}`), !e));
|
|
4130
4332
|
return;
|
|
4131
4333
|
}
|
|
4132
|
-
if (e.code ===
|
|
4133
|
-
e.preventDefault(), l(
|
|
4334
|
+
if (e.code === ko) {
|
|
4335
|
+
e.preventDefault(), l(jo), r(null), s(null), Eo.warn("Forced access denied");
|
|
4134
4336
|
return;
|
|
4135
4337
|
}
|
|
4136
|
-
let t =
|
|
4338
|
+
let t = Do[e.code];
|
|
4137
4339
|
if (t === void 0) return;
|
|
4138
4340
|
if (e.preventDefault(), t === "clear") {
|
|
4139
|
-
r(null), s(null), l(null),
|
|
4341
|
+
r(null), s(null), l(null), Eo.warn("Cleared forced state");
|
|
4140
4342
|
return;
|
|
4141
4343
|
}
|
|
4142
|
-
let n = e.code ===
|
|
4143
|
-
r(t), s(n ?
|
|
4344
|
+
let n = e.code === Oo;
|
|
4345
|
+
r(t), s(n ? Ao : null), l(null), Eo.warn(`Forced state: ${t}${n ? " (with error)" : ""}`);
|
|
4144
4346
|
};
|
|
4145
4347
|
return window.addEventListener("keydown", e), () => window.removeEventListener("keydown", e);
|
|
4146
|
-
}, [t]),
|
|
4348
|
+
}, [t]), N(() => {
|
|
4147
4349
|
if (n !== "connecting") {
|
|
4148
4350
|
a(!1);
|
|
4149
4351
|
return;
|
|
4150
4352
|
}
|
|
4151
|
-
let e = setTimeout(() => a(!0),
|
|
4353
|
+
let e = setTimeout(() => a(!0), Mo);
|
|
4152
4354
|
return () => clearTimeout(e);
|
|
4153
4355
|
}, [n]), !t || n === null && !u && c === null && !f && !m ? {
|
|
4154
4356
|
app: e,
|
|
@@ -4179,112 +4381,112 @@ function Ja(e) {
|
|
|
4179
4381
|
}
|
|
4180
4382
|
//#endregion
|
|
4181
4383
|
//#region src/app/feedback/feedback-controls.tsx
|
|
4182
|
-
var
|
|
4183
|
-
function
|
|
4184
|
-
return import("./feedback-form-BSy2olwD.js").then((e) =>
|
|
4185
|
-
}
|
|
4186
|
-
var
|
|
4187
|
-
function
|
|
4188
|
-
let [o, s] =
|
|
4189
|
-
p.current = o !== null,
|
|
4384
|
+
var Po = D("FeedbackControls"), Fo = null;
|
|
4385
|
+
function Io() {
|
|
4386
|
+
return import("./feedback-form-BSy2olwD.js").then((e) => Fo = e);
|
|
4387
|
+
}
|
|
4388
|
+
var Lo = 4e3, Ro = 1e4, zo = 16, Bo = 52, Vo = "ikon-feedback-control", Ho = `.${Vo}:focus-visible{outline:2px solid var(--ikon-focus-ring,#f5277f);outline-offset:2px}`;
|
|
4389
|
+
function Uo({ client: e, feedback: t, connectionState: n, isLive: r, sheetOpen: i, brandingShown: a }) {
|
|
4390
|
+
let [o, s] = I(null), [c, l] = I(Fo), u = F(null), d = F(i), f = F(!1), p = F(!1), m = F(!1), h = F(null), g = F(!1);
|
|
4391
|
+
p.current = o !== null, N(() => {
|
|
4190
4392
|
if (!o || c) return;
|
|
4191
4393
|
let e = !1;
|
|
4192
|
-
return
|
|
4394
|
+
return Io().then((t) => {
|
|
4193
4395
|
e || l(t);
|
|
4194
4396
|
}).catch((e) => {
|
|
4195
|
-
|
|
4397
|
+
Po.error("Loading the feedback form failed, feedback cannot be sent from this page:", e);
|
|
4196
4398
|
}), () => {
|
|
4197
4399
|
e = !0;
|
|
4198
4400
|
};
|
|
4199
4401
|
}, [o, c]);
|
|
4200
|
-
let _ =
|
|
4402
|
+
let _ = M(() => {
|
|
4201
4403
|
u.current &&= (clearTimeout(u.current.timer), null);
|
|
4202
|
-
}, []), v =
|
|
4404
|
+
}, []), v = M((e) => {
|
|
4203
4405
|
_(), f.current = !1, s({ screenshot: e });
|
|
4204
4406
|
}, [_]);
|
|
4205
|
-
|
|
4407
|
+
N(() => {
|
|
4206
4408
|
d.current = i, i && (_(), p.current && !f.current && s(null));
|
|
4207
|
-
}, [i, _]),
|
|
4208
|
-
let b =
|
|
4409
|
+
}, [i, _]), N(() => _, [_]);
|
|
4410
|
+
let b = M(() => {
|
|
4209
4411
|
if (u.current || p.current || d.current) return;
|
|
4210
|
-
|
|
4211
|
-
|
|
4412
|
+
Io().catch((e) => {
|
|
4413
|
+
Po.debug("Preloading the feedback form failed:", e);
|
|
4212
4414
|
});
|
|
4213
|
-
let t =
|
|
4415
|
+
let t = pe();
|
|
4214
4416
|
if (t.catch((e) => {
|
|
4215
|
-
|
|
4417
|
+
Po.warn("Capturing the view for a feedback report failed, the report goes without a screenshot:", e);
|
|
4216
4418
|
}), !e || e.connectionState !== "connected") {
|
|
4217
4419
|
v(t);
|
|
4218
4420
|
return;
|
|
4219
4421
|
}
|
|
4220
4422
|
let n = { timer: setTimeout(() => {
|
|
4221
|
-
u.current === n && !d.current && (
|
|
4222
|
-
},
|
|
4423
|
+
u.current === n && !d.current && (Po.warn(`The feedback sheet did not open within ${Lo} ms, showing the built-in form`), v(t));
|
|
4424
|
+
}, Lo) };
|
|
4223
4425
|
u.current = n, e.call(ee, [""]).then((e) => {
|
|
4224
|
-
e !== !0 && u.current === n && (
|
|
4426
|
+
e !== !0 && u.current === n && (Po.warn(`The app declined ${ee}, showing the built-in form`), v(t));
|
|
4225
4427
|
}, (e) => {
|
|
4226
|
-
u.current === n && (
|
|
4428
|
+
u.current === n && (Po.warn(`Calling ${ee} failed, showing the built-in form:`, e), v(t));
|
|
4227
4429
|
});
|
|
4228
4430
|
}, [e, v]);
|
|
4229
|
-
|
|
4230
|
-
m.current || !t || !r || n !== "connected" || !
|
|
4431
|
+
N(() => {
|
|
4432
|
+
m.current || !t || !r || n !== "connected" || !Ce() || (m.current = !0, me(), b());
|
|
4231
4433
|
}, [
|
|
4232
4434
|
t,
|
|
4233
4435
|
r,
|
|
4234
4436
|
n,
|
|
4235
4437
|
b
|
|
4236
4438
|
]);
|
|
4237
|
-
let x =
|
|
4439
|
+
let x = M(() => {
|
|
4238
4440
|
g.current = !0, s(null);
|
|
4239
4441
|
}, []);
|
|
4240
|
-
|
|
4442
|
+
N(() => {
|
|
4241
4443
|
o || !g.current || (g.current = !1, h.current?.focus());
|
|
4242
4444
|
}, [o]);
|
|
4243
|
-
let
|
|
4445
|
+
let te = M((e) => {
|
|
4244
4446
|
f.current = e;
|
|
4245
4447
|
}, []);
|
|
4246
|
-
if (
|
|
4448
|
+
if (N(() => {
|
|
4247
4449
|
if (!(!e || !t)) return e.setFeedbackRequestHandler(b);
|
|
4248
4450
|
}, [
|
|
4249
4451
|
e,
|
|
4250
4452
|
t,
|
|
4251
4453
|
b
|
|
4252
4454
|
]), !t) return null;
|
|
4253
|
-
let
|
|
4254
|
-
return /* @__PURE__ */
|
|
4255
|
-
...
|
|
4455
|
+
let S = { [y]: "" }, C = `calc(${a ? Bo : zo}px + env(safe-area-inset-bottom, 0px))`, w = t.showButton && !i && !o;
|
|
4456
|
+
return /* @__PURE__ */ R(rt, { children: [w && /* @__PURE__ */ R("div", {
|
|
4457
|
+
...S,
|
|
4256
4458
|
"data-ikon-feedback-controls": "",
|
|
4257
4459
|
style: {
|
|
4258
|
-
...
|
|
4259
|
-
bottom:
|
|
4460
|
+
...Ko.dock,
|
|
4461
|
+
bottom: C
|
|
4260
4462
|
},
|
|
4261
|
-
children: [/* @__PURE__ */
|
|
4463
|
+
children: [/* @__PURE__ */ L("style", { children: Ho }), /* @__PURE__ */ L(Wo, {
|
|
4262
4464
|
buttonRef: h,
|
|
4263
4465
|
onPress: b
|
|
4264
4466
|
})]
|
|
4265
|
-
}), o && c && /* @__PURE__ */
|
|
4467
|
+
}), o && c && /* @__PURE__ */ L(c.FeedbackForm, {
|
|
4266
4468
|
access: e?.backendAccess ?? null,
|
|
4267
4469
|
screenshot: o.screenshot,
|
|
4268
4470
|
appSession: e?.appSessionId,
|
|
4269
4471
|
clientSession: e?.sessionId === void 0 ? void 0 : String(e.sessionId),
|
|
4270
4472
|
onClose: x,
|
|
4271
|
-
onDirtyChange:
|
|
4473
|
+
onDirtyChange: te
|
|
4272
4474
|
})] });
|
|
4273
4475
|
}
|
|
4274
|
-
function
|
|
4275
|
-
return /* @__PURE__ */
|
|
4476
|
+
function Wo({ buttonRef: e, onPress: t }) {
|
|
4477
|
+
return /* @__PURE__ */ L("button", {
|
|
4276
4478
|
ref: e,
|
|
4277
4479
|
type: "button",
|
|
4278
|
-
className:
|
|
4480
|
+
className: Vo,
|
|
4279
4481
|
"aria-label": "Send feedback",
|
|
4280
4482
|
title: "Send feedback",
|
|
4281
|
-
style:
|
|
4483
|
+
style: Ko.feedbackButton,
|
|
4282
4484
|
onClick: t,
|
|
4283
|
-
children: /* @__PURE__ */
|
|
4485
|
+
children: /* @__PURE__ */ L(Go, {})
|
|
4284
4486
|
});
|
|
4285
4487
|
}
|
|
4286
|
-
function
|
|
4287
|
-
return /* @__PURE__ */
|
|
4488
|
+
function Go() {
|
|
4489
|
+
return /* @__PURE__ */ R("svg", {
|
|
4288
4490
|
width: "22",
|
|
4289
4491
|
height: "22",
|
|
4290
4492
|
viewBox: "0 0 24 24",
|
|
@@ -4295,14 +4497,14 @@ function oo() {
|
|
|
4295
4497
|
strokeLinejoin: "round",
|
|
4296
4498
|
"aria-hidden": "true",
|
|
4297
4499
|
focusable: "false",
|
|
4298
|
-
children: [/* @__PURE__ */
|
|
4500
|
+
children: [/* @__PURE__ */ L("path", { d: "M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z" }), /* @__PURE__ */ L("path", { d: "M8 9h8M8 13h5" })]
|
|
4299
4501
|
});
|
|
4300
4502
|
}
|
|
4301
|
-
var
|
|
4503
|
+
var Ko = {
|
|
4302
4504
|
dock: {
|
|
4303
4505
|
position: "fixed",
|
|
4304
4506
|
right: "max(16px, env(safe-area-inset-right, 0px))",
|
|
4305
|
-
zIndex:
|
|
4507
|
+
zIndex: Ro,
|
|
4306
4508
|
display: "flex",
|
|
4307
4509
|
alignItems: "center",
|
|
4308
4510
|
font: "14px/1.4 var(--ikon-font-body, system-ui, -apple-system, \"Segoe UI\", sans-serif)"
|
|
@@ -4324,31 +4526,31 @@ var so = {
|
|
|
4324
4526
|
WebkitTouchCallout: "none",
|
|
4325
4527
|
userSelect: "none"
|
|
4326
4528
|
}
|
|
4327
|
-
},
|
|
4328
|
-
function
|
|
4529
|
+
}, qo = 9990, Jo = "ikon-platform-layer", Yo = `.${Jo}>*{pointer-events:auto}`;
|
|
4530
|
+
function Xo(e) {
|
|
4329
4531
|
if (!e) return !1;
|
|
4330
|
-
for (let t of e.values()) if (t.category === r &&
|
|
4532
|
+
for (let t of e.values()) if (t.category === r && Qo(t.store)?.children.some((e) => e.children.length > 0)) return !0;
|
|
4331
4533
|
return !1;
|
|
4332
4534
|
}
|
|
4333
|
-
function
|
|
4334
|
-
let [t, n] =
|
|
4335
|
-
return
|
|
4336
|
-
let t = () => n(
|
|
4535
|
+
function Zo(e) {
|
|
4536
|
+
let [t, n] = I(() => Xo(e));
|
|
4537
|
+
return N(() => {
|
|
4538
|
+
let t = () => n(Xo(e));
|
|
4337
4539
|
if (t(), !e) return;
|
|
4338
4540
|
let i = [];
|
|
4339
|
-
for (let n of e.values()) n.category === r && i.push(
|
|
4541
|
+
for (let n of e.values()) n.category === r && i.push($o(n.store, t));
|
|
4340
4542
|
return () => {
|
|
4341
4543
|
for (let e of i) e();
|
|
4342
4544
|
};
|
|
4343
4545
|
}, [e]), t;
|
|
4344
4546
|
}
|
|
4345
|
-
function
|
|
4547
|
+
function Qo(e) {
|
|
4346
4548
|
let t = e.getSnapshot();
|
|
4347
4549
|
return t.rootViewId ? t.views.get(t.rootViewId) : void 0;
|
|
4348
4550
|
}
|
|
4349
|
-
function
|
|
4551
|
+
function $o(e, t) {
|
|
4350
4552
|
let n = /* @__PURE__ */ new Map(), r = () => {
|
|
4351
|
-
let t =
|
|
4553
|
+
let t = Qo(e), r = new Set(t ? [t.id, ...t.children.map((e) => e.id)] : []);
|
|
4352
4554
|
for (let [e, t] of n) r.has(e) || (t(), n.delete(e));
|
|
4353
4555
|
for (let t of r) n.has(t) || n.set(t, e.subscribeNode(t, i));
|
|
4354
4556
|
};
|
|
@@ -4362,10 +4564,10 @@ function ho(e, t) {
|
|
|
4362
4564
|
n.clear(), a();
|
|
4363
4565
|
};
|
|
4364
4566
|
}
|
|
4365
|
-
function
|
|
4366
|
-
return /* @__PURE__ */
|
|
4567
|
+
function es({ stores: e, registry: t, client: n, onAction: i, open: a }) {
|
|
4568
|
+
return /* @__PURE__ */ R("div", {
|
|
4367
4569
|
[y]: "",
|
|
4368
|
-
className:
|
|
4570
|
+
className: Jo,
|
|
4369
4571
|
"data-ikon-platform-layer": "",
|
|
4370
4572
|
style: {
|
|
4371
4573
|
position: "fixed",
|
|
@@ -4373,11 +4575,11 @@ function go({ stores: e, registry: t, client: n, onAction: i, open: a }) {
|
|
|
4373
4575
|
right: 0,
|
|
4374
4576
|
bottom: 0,
|
|
4375
4577
|
left: 0,
|
|
4376
|
-
zIndex:
|
|
4578
|
+
zIndex: qo,
|
|
4377
4579
|
pointerEvents: "none",
|
|
4378
4580
|
display: a ? "block" : "none"
|
|
4379
4581
|
},
|
|
4380
|
-
children: [/* @__PURE__ */
|
|
4582
|
+
children: [/* @__PURE__ */ L("style", { children: Yo }), /* @__PURE__ */ L(ar, {
|
|
4381
4583
|
stores: e,
|
|
4382
4584
|
registry: t,
|
|
4383
4585
|
client: n,
|
|
@@ -4389,89 +4591,89 @@ function go({ stores: e, registry: t, client: n, onAction: i, open: a }) {
|
|
|
4389
4591
|
}
|
|
4390
4592
|
//#endregion
|
|
4391
4593
|
//#region src/app/ikon-app.tsx
|
|
4392
|
-
var
|
|
4393
|
-
function
|
|
4594
|
+
var ts = { [y]: "" };
|
|
4595
|
+
function ns(e, t) {
|
|
4394
4596
|
return e === void 0 ? null : typeof e == "function" ? e(t) : e;
|
|
4395
4597
|
}
|
|
4396
|
-
function
|
|
4598
|
+
function rs(e) {
|
|
4397
4599
|
return e === void 0 ? null : typeof e == "function" ? e() : e;
|
|
4398
4600
|
}
|
|
4399
|
-
function
|
|
4601
|
+
function is(e, t) {
|
|
4400
4602
|
return e === void 0 ? null : typeof e == "function" ? e(t) : e;
|
|
4401
4603
|
}
|
|
4402
|
-
function
|
|
4604
|
+
function as(e, t) {
|
|
4403
4605
|
return e === void 0 ? null : typeof e == "function" ? e(t) : e;
|
|
4404
4606
|
}
|
|
4405
|
-
function
|
|
4406
|
-
let { connectingOverlay: t, reconnectingOverlay: n, offlineOverlay: r, accessDeniedScreen: i, ...a } = e, o =
|
|
4607
|
+
function os(e) {
|
|
4608
|
+
let { connectingOverlay: t, reconnectingOverlay: n, offlineOverlay: r, accessDeniedScreen: i, ...a } = e, o = No(a), { app: s } = o, { connectionState: c, isConnectingSlow: l, stores: u, registry: d, client: f, onAction: p, isReady: m, isLive: h, error: g, accessDeniedReason: _, brandingRequired: v, feedback: ee } = s, y = v || o.forcedBranding, b = F(null);
|
|
4407
4609
|
u && d && (m || u.size > 0) && (b.current = {
|
|
4408
4610
|
stores: u,
|
|
4409
4611
|
registry: d,
|
|
4410
4612
|
client: f
|
|
4411
4613
|
});
|
|
4412
|
-
let x = b.current != null || !!_,
|
|
4413
|
-
if (
|
|
4614
|
+
let x = b.current != null || !!_, te = Zo(b.current?.stores) && c === "connected";
|
|
4615
|
+
if (et(() => {
|
|
4414
4616
|
!x || typeof document > "u" || document.querySelectorAll("[data-ikon-prerender]").forEach((e) => e.remove());
|
|
4415
|
-
}, [x]), _) return
|
|
4416
|
-
let
|
|
4617
|
+
}, [x]), _) return as(i, _);
|
|
4618
|
+
let S = b.current, C;
|
|
4417
4619
|
switch (c) {
|
|
4418
4620
|
case "waitingForExternalConnectUrl":
|
|
4419
4621
|
case "connecting":
|
|
4420
|
-
|
|
4622
|
+
C = ns(t, l);
|
|
4421
4623
|
break;
|
|
4422
4624
|
case "reconnecting":
|
|
4423
|
-
|
|
4625
|
+
C = rs(n);
|
|
4424
4626
|
break;
|
|
4425
4627
|
case "offline":
|
|
4426
|
-
|
|
4628
|
+
C = is(r, g);
|
|
4427
4629
|
break;
|
|
4428
|
-
default:
|
|
4630
|
+
default: C = null;
|
|
4429
4631
|
}
|
|
4430
|
-
return /* @__PURE__ */
|
|
4431
|
-
|
|
4432
|
-
stores:
|
|
4433
|
-
registry:
|
|
4434
|
-
client:
|
|
4632
|
+
return /* @__PURE__ */ R(rt, { children: [
|
|
4633
|
+
S && /* @__PURE__ */ L(ar, {
|
|
4634
|
+
stores: S.stores,
|
|
4635
|
+
registry: S.registry,
|
|
4636
|
+
client: S.client,
|
|
4435
4637
|
onAction: p
|
|
4436
4638
|
}),
|
|
4437
|
-
|
|
4438
|
-
stores:
|
|
4439
|
-
registry:
|
|
4440
|
-
client:
|
|
4639
|
+
S && /* @__PURE__ */ L(es, {
|
|
4640
|
+
stores: S.stores,
|
|
4641
|
+
registry: S.registry,
|
|
4642
|
+
client: S.client,
|
|
4441
4643
|
onAction: p,
|
|
4442
|
-
open:
|
|
4644
|
+
open: te
|
|
4443
4645
|
}),
|
|
4444
|
-
|
|
4445
|
-
...
|
|
4646
|
+
C != null && /* @__PURE__ */ L("div", {
|
|
4647
|
+
...ts,
|
|
4446
4648
|
style: { display: "contents" },
|
|
4447
|
-
children:
|
|
4649
|
+
children: C
|
|
4448
4650
|
}),
|
|
4449
|
-
y && /* @__PURE__ */
|
|
4450
|
-
/* @__PURE__ */
|
|
4651
|
+
y && /* @__PURE__ */ L(cs, {}),
|
|
4652
|
+
/* @__PURE__ */ L(Uo, {
|
|
4451
4653
|
client: f,
|
|
4452
4654
|
feedback: ee,
|
|
4453
4655
|
connectionState: c,
|
|
4454
4656
|
isLive: h,
|
|
4455
|
-
sheetOpen:
|
|
4657
|
+
sheetOpen: te,
|
|
4456
4658
|
brandingShown: y
|
|
4457
4659
|
}),
|
|
4458
|
-
/* @__PURE__ */
|
|
4459
|
-
/* @__PURE__ */
|
|
4460
|
-
...
|
|
4660
|
+
/* @__PURE__ */ L(ls, {}),
|
|
4661
|
+
/* @__PURE__ */ L("div", {
|
|
4662
|
+
...ts,
|
|
4461
4663
|
style: { display: "contents" },
|
|
4462
|
-
children: /* @__PURE__ */
|
|
4664
|
+
children: /* @__PURE__ */ L(co, {
|
|
4463
4665
|
state: c,
|
|
4464
4666
|
forceVisible: o.forcedDebugOverlay
|
|
4465
4667
|
})
|
|
4466
4668
|
})
|
|
4467
4669
|
] });
|
|
4468
4670
|
}
|
|
4469
|
-
var
|
|
4470
|
-
function
|
|
4471
|
-
return /* @__PURE__ */
|
|
4472
|
-
...
|
|
4671
|
+
var ss = "https://ikonai.com";
|
|
4672
|
+
function cs() {
|
|
4673
|
+
return /* @__PURE__ */ R("a", {
|
|
4674
|
+
...ts,
|
|
4473
4675
|
className: "ikon-branding-banner",
|
|
4474
|
-
href:
|
|
4676
|
+
href: ss,
|
|
4475
4677
|
target: "_blank",
|
|
4476
4678
|
rel: "noopener noreferrer",
|
|
4477
4679
|
style: {
|
|
@@ -4492,44 +4694,44 @@ function wo() {
|
|
|
4492
4694
|
boxShadow: "0 -1px 8px rgba(0, 0, 0, 0.25)",
|
|
4493
4695
|
pointerEvents: "auto"
|
|
4494
4696
|
},
|
|
4495
|
-
children: [/* @__PURE__ */
|
|
4697
|
+
children: [/* @__PURE__ */ L("span", {
|
|
4496
4698
|
style: { opacity: .75 },
|
|
4497
4699
|
children: "Powered by"
|
|
4498
|
-
}), /* @__PURE__ */
|
|
4700
|
+
}), /* @__PURE__ */ L("span", {
|
|
4499
4701
|
style: { fontWeight: 700 },
|
|
4500
4702
|
children: "Ikon"
|
|
4501
4703
|
})]
|
|
4502
4704
|
});
|
|
4503
4705
|
}
|
|
4504
|
-
function
|
|
4505
|
-
let { toasts: e, dismissToast: t } =
|
|
4506
|
-
return e.length === 0 ? null : /* @__PURE__ */
|
|
4507
|
-
...
|
|
4706
|
+
function ls() {
|
|
4707
|
+
let { toasts: e, dismissToast: t } = Co();
|
|
4708
|
+
return e.length === 0 ? null : /* @__PURE__ */ L("div", {
|
|
4709
|
+
...ts,
|
|
4508
4710
|
className: "ikon-toast-overlay",
|
|
4509
|
-
children: e.map((e) => /* @__PURE__ */
|
|
4711
|
+
children: e.map((e) => /* @__PURE__ */ L(us, {
|
|
4510
4712
|
toast: e,
|
|
4511
4713
|
onDismiss: t
|
|
4512
4714
|
}, e.id))
|
|
4513
4715
|
});
|
|
4514
4716
|
}
|
|
4515
|
-
function
|
|
4516
|
-
return /* @__PURE__ */
|
|
4717
|
+
function us({ toast: e, onDismiss: t }) {
|
|
4718
|
+
return /* @__PURE__ */ R("div", {
|
|
4517
4719
|
className: `ikon-toast-overlay-chip ikon-toast-overlay-chip--${e.level}`,
|
|
4518
4720
|
onClick: () => t(e.id),
|
|
4519
4721
|
role: "alert",
|
|
4520
|
-
children: [/* @__PURE__ */
|
|
4722
|
+
children: [/* @__PURE__ */ L("span", {
|
|
4521
4723
|
className: "ikon-toast-overlay-icon",
|
|
4522
4724
|
children: e.level === "error" ? "🚨" : "⚠️"
|
|
4523
|
-
}), /* @__PURE__ */
|
|
4725
|
+
}), /* @__PURE__ */ R("div", {
|
|
4524
4726
|
className: "ikon-toast-overlay-content",
|
|
4525
|
-
children: [/* @__PURE__ */
|
|
4727
|
+
children: [/* @__PURE__ */ R("span", {
|
|
4526
4728
|
className: "ikon-toast-overlay-component",
|
|
4527
4729
|
children: [
|
|
4528
4730
|
"[",
|
|
4529
4731
|
e.component,
|
|
4530
4732
|
"]"
|
|
4531
4733
|
]
|
|
4532
|
-
}), /* @__PURE__ */
|
|
4734
|
+
}), /* @__PURE__ */ L("span", {
|
|
4533
4735
|
className: "ikon-toast-overlay-message",
|
|
4534
4736
|
children: e.message
|
|
4535
4737
|
})]
|
|
@@ -4538,19 +4740,19 @@ function Eo({ toast: e, onDismiss: t }) {
|
|
|
4538
4740
|
}
|
|
4539
4741
|
//#endregion
|
|
4540
4742
|
//#region src/app/feedback/use-ikon-feedback.ts
|
|
4541
|
-
function
|
|
4542
|
-
let t =
|
|
4743
|
+
function ds(e) {
|
|
4744
|
+
let t = M((t) => e?.subscribeToFeedback(t) ?? fs, [e]);
|
|
4543
4745
|
return {
|
|
4544
|
-
available:
|
|
4545
|
-
open:
|
|
4746
|
+
available: nt(t, () => e?.feedback != null, () => !1),
|
|
4747
|
+
open: M(() => e?.requestFeedback() ?? !1, [e])
|
|
4546
4748
|
};
|
|
4547
4749
|
}
|
|
4548
|
-
function
|
|
4750
|
+
function fs() {}
|
|
4549
4751
|
//#endregion
|
|
4550
4752
|
//#region src/app/connection-recovery.ts
|
|
4551
|
-
function
|
|
4753
|
+
function ps({ isSessionExpired: e }) {
|
|
4552
4754
|
if (e) {
|
|
4553
|
-
let e =
|
|
4755
|
+
let e = k();
|
|
4554
4756
|
if (e) return {
|
|
4555
4757
|
kind: "freshSession",
|
|
4556
4758
|
run: () => {
|
|
@@ -4567,31 +4769,31 @@ function ko({ isSessionExpired: e }) {
|
|
|
4567
4769
|
}
|
|
4568
4770
|
//#endregion
|
|
4569
4771
|
//#region src/account/use-account-removal.ts
|
|
4570
|
-
function
|
|
4772
|
+
function ms(e) {
|
|
4571
4773
|
return e instanceof Error && e.message ? e.message : String(e);
|
|
4572
4774
|
}
|
|
4573
|
-
function
|
|
4574
|
-
let { backendUrl: t, loadOnMount: n = !0 } = e, { state: r, getToken: i } =
|
|
4575
|
-
|
|
4775
|
+
function hs(e = {}) {
|
|
4776
|
+
let { backendUrl: t, loadOnMount: n = !0 } = e, { state: r, getToken: i } = Ma(), [a, o] = I(null), [s, c] = I(!1), [l, u] = I(!1), [d, f] = I(null), p = F(!0);
|
|
4777
|
+
N(() => (p.current = !0, () => {
|
|
4576
4778
|
p.current = !1;
|
|
4577
4779
|
}), []);
|
|
4578
|
-
let m = r.isAuthenticated && r.user !== null && r.user.provider !== "anonymous" && r.user.provider !== "dev", h =
|
|
4780
|
+
let m = r.isAuthenticated && r.user !== null && r.user.provider !== "anonymous" && r.user.provider !== "dev", h = M(async () => {
|
|
4579
4781
|
let e = i();
|
|
4580
4782
|
if (e) {
|
|
4581
4783
|
c(!0), f(null);
|
|
4582
4784
|
try {
|
|
4583
|
-
let n = await
|
|
4785
|
+
let n = await xe({
|
|
4584
4786
|
authToken: e,
|
|
4585
4787
|
backendUrl: t
|
|
4586
4788
|
});
|
|
4587
4789
|
p.current && o(n.removal ?? null);
|
|
4588
4790
|
} catch (e) {
|
|
4589
|
-
p.current && f(
|
|
4791
|
+
p.current && f(ms(e));
|
|
4590
4792
|
} finally {
|
|
4591
4793
|
p.current && c(!1);
|
|
4592
4794
|
}
|
|
4593
4795
|
}
|
|
4594
|
-
}, [t, i]), g =
|
|
4796
|
+
}, [t, i]), g = M(async (e) => {
|
|
4595
4797
|
let n = i();
|
|
4596
4798
|
if (!n) {
|
|
4597
4799
|
f("You are not signed in");
|
|
@@ -4605,12 +4807,12 @@ function jo(e = {}) {
|
|
|
4605
4807
|
});
|
|
4606
4808
|
p.current && o(r.removal ?? null);
|
|
4607
4809
|
} catch (e) {
|
|
4608
|
-
p.current && f(
|
|
4810
|
+
p.current && f(ms(e));
|
|
4609
4811
|
} finally {
|
|
4610
4812
|
p.current && u(!1);
|
|
4611
4813
|
}
|
|
4612
|
-
}, [t, i]), _ =
|
|
4613
|
-
return
|
|
4814
|
+
}, [t, i]), _ = M(() => g(Ve), [g]), v = M(() => g(fe), [g]);
|
|
4815
|
+
return N(() => {
|
|
4614
4816
|
!n || !m || h();
|
|
4615
4817
|
}, [
|
|
4616
4818
|
n,
|
|
@@ -4622,7 +4824,7 @@ function jo(e = {}) {
|
|
|
4622
4824
|
isSubmittingRemoval: l,
|
|
4623
4825
|
removalError: d,
|
|
4624
4826
|
canRequestRemoval: m,
|
|
4625
|
-
removalGraceDays:
|
|
4827
|
+
removalGraceDays: le,
|
|
4626
4828
|
requestAccountRemoval: _,
|
|
4627
4829
|
cancelAccountRemoval: v,
|
|
4628
4830
|
reloadAccountRemoval: h
|
|
@@ -4630,27 +4832,27 @@ function jo(e = {}) {
|
|
|
4630
4832
|
}
|
|
4631
4833
|
//#endregion
|
|
4632
4834
|
//#region src/consent/use-consent.ts
|
|
4633
|
-
function
|
|
4835
|
+
function gs(e) {
|
|
4634
4836
|
return e instanceof Error && e.message ? e.message : String(e);
|
|
4635
4837
|
}
|
|
4636
|
-
function
|
|
4637
|
-
let [n, r] =
|
|
4638
|
-
|
|
4838
|
+
function _s({ client: e, purposes: t }) {
|
|
4839
|
+
let [n, r] = I({}), [i, a] = I(!1), [o, s] = I(!1), [c, l] = I(null), u = F(!0);
|
|
4840
|
+
N(() => (u.current = !0, () => {
|
|
4639
4841
|
u.current = !1;
|
|
4640
4842
|
}), []);
|
|
4641
|
-
let d =
|
|
4843
|
+
let d = M(async () => {
|
|
4642
4844
|
if (e) {
|
|
4643
4845
|
a(!0), l(null);
|
|
4644
4846
|
try {
|
|
4645
|
-
let t = await
|
|
4847
|
+
let t = await ze(e);
|
|
4646
4848
|
u.current && r(t);
|
|
4647
4849
|
} catch (e) {
|
|
4648
|
-
u.current && l(
|
|
4850
|
+
u.current && l(gs(e));
|
|
4649
4851
|
} finally {
|
|
4650
4852
|
u.current && a(!1);
|
|
4651
4853
|
}
|
|
4652
4854
|
}
|
|
4653
|
-
}, [e]), f =
|
|
4855
|
+
}, [e]), f = M(async (t, n) => {
|
|
4654
4856
|
if (!e) {
|
|
4655
4857
|
l("The app is not connected, so your answer was not recorded");
|
|
4656
4858
|
return;
|
|
@@ -4663,20 +4865,20 @@ function No({ client: e, purposes: t }) {
|
|
|
4663
4865
|
[i.purpose]: i
|
|
4664
4866
|
}));
|
|
4665
4867
|
} catch (e) {
|
|
4666
|
-
u.current && l(
|
|
4868
|
+
u.current && l(gs(e));
|
|
4667
4869
|
} finally {
|
|
4668
4870
|
u.current && s(!1);
|
|
4669
4871
|
}
|
|
4670
|
-
}, [e]), p =
|
|
4671
|
-
return
|
|
4872
|
+
}, [e]), p = M((e) => f(e, Ae), [f]), m = M((e) => f(e, Ue), [f]), h = t.join("\0");
|
|
4873
|
+
return N(() => {
|
|
4672
4874
|
d();
|
|
4673
4875
|
}, [d, h]), {
|
|
4674
4876
|
answers: n,
|
|
4675
4877
|
isLoading: i,
|
|
4676
4878
|
isSubmitting: o,
|
|
4677
4879
|
error: c,
|
|
4678
|
-
consentFor: (e) =>
|
|
4679
|
-
isGranted: (e) =>
|
|
4880
|
+
consentFor: (e) => ge(n, e),
|
|
4881
|
+
isGranted: (e) => Me(n, e),
|
|
4680
4882
|
grant: p,
|
|
4681
4883
|
revoke: m,
|
|
4682
4884
|
reload: d
|
|
@@ -4684,37 +4886,37 @@ function No({ client: e, purposes: t }) {
|
|
|
4684
4886
|
}
|
|
4685
4887
|
//#endregion
|
|
4686
4888
|
//#region src/i18n/i18n.tsx
|
|
4687
|
-
var
|
|
4688
|
-
function
|
|
4889
|
+
var vs = Ze(null);
|
|
4890
|
+
function ys(e, t) {
|
|
4689
4891
|
return t ? e.replace(/\{(\w+)\}/g, (e, n) => t[n] ?? `{${n}}`) : e;
|
|
4690
4892
|
}
|
|
4691
|
-
function
|
|
4692
|
-
let n =
|
|
4893
|
+
function bs(e, t) {
|
|
4894
|
+
let n = we();
|
|
4693
4895
|
if (n && e.includes(n)) return n;
|
|
4694
4896
|
let r = navigator.language.split("-")[0];
|
|
4695
4897
|
return e.includes(r) ? r : t && e.includes(t) ? t : "en";
|
|
4696
4898
|
}
|
|
4697
|
-
function
|
|
4698
|
-
return t ?
|
|
4899
|
+
function xs(e, t, n) {
|
|
4900
|
+
return t ? bs(e, n) : n && e.includes(n) ? n : "en";
|
|
4699
4901
|
}
|
|
4700
|
-
function
|
|
4701
|
-
let i =
|
|
4902
|
+
function Ss({ children: e, translations: t, defaultLanguage: n, detectLanguage: r = !1 }) {
|
|
4903
|
+
let i = xs(Object.keys(t), r, n), a = t[i] ?? t.en, o = P(() => ({
|
|
4702
4904
|
t: (e, t) => {
|
|
4703
4905
|
let n = a[e];
|
|
4704
|
-
return
|
|
4906
|
+
return ys(n, t);
|
|
4705
4907
|
},
|
|
4706
4908
|
locale: i,
|
|
4707
4909
|
translations: a
|
|
4708
4910
|
}), [a, i]);
|
|
4709
|
-
return /* @__PURE__ */
|
|
4911
|
+
return /* @__PURE__ */ L(vs, {
|
|
4710
4912
|
value: o,
|
|
4711
4913
|
children: e
|
|
4712
4914
|
});
|
|
4713
4915
|
}
|
|
4714
|
-
function
|
|
4715
|
-
let e =
|
|
4916
|
+
function Cs() {
|
|
4917
|
+
let e = $e(vs);
|
|
4716
4918
|
if (!e) throw Error("useI18n must be used within an I18nProvider");
|
|
4717
4919
|
return e;
|
|
4718
4920
|
}
|
|
4719
4921
|
//#endregion
|
|
4720
|
-
export {
|
|
4922
|
+
export { ja as AuthProvider, lo as ConnectionStateRenderer, Za as DEBUG_OVERLAY_ENABLED, co as DebugOverlay, Ss as I18nProvider, n as IKON_PLATFORM_STREAM_CATEGORY, en as IKON_UI_BASE_MODULE, xn as IKON_UI_MEDIA_MODULE, En as IKON_UI_SHADERTOY_MODULE, t as IKON_UI_SHADERTOY_TYPE, i as IKON_UI_STREAM_CATEGORY, hn as IKON_UI_VIDEO_CANVAS_TYPE, gn as IKON_UI_VIDEO_URL_PLAYER_TYPE, os as IkonApp, it as IkonUi, jn as IkonUiRegistry, ar as IkonUiSurface, nr as InspectOverlay, or as ParallaxView, Zn as UiComponentRegistry, Xn as UiRenderer, c as UiStreamStore, un as VideoStreamView, Hi as authenticateAnonymous, ea as buildOAuthRedirectUrl, ta as buildSsoRedirectUrl, Ni as clearAuthSession, $i as clearOAuthParams, $t as createBaseResolvers, Qn as createComponentLibrary, Mn as createIkonUiRegistry, Tn as createLazyResolver, vn as createMediaResolvers, Dn as createShadertoyRendererResolver, ra as discoverSsoConnection, na as findSsoConnectionsForHost, ps as getConnectionRecovery, ir as isIkonUiCategoryMatch, Ti as loadAuthSession, tn as loadBaseModule, Sn as loadMediaModule, On as loadShadertoyModule, Gi as parseOAuthCallback, Yi as parseOAuthError, Re as randomUuid, nn as registerBaseModule, Cn as registerMediaModule, kn as registerShadertoyModule, Jn as renderChildren, Fr as renderMotionLetters, ia as requestSsoLinkTicket, J as saveAuthSession, Ui as sendLoginCode, Y as sessionToUser, hs as useAccountRemoval, Ma as useAuth, Ya as useAuthGuard, Na as useAuthOptional, Cr as useCameraCapture, _s as useConsent, Cs as useI18n, xo as useIkonApp, No as useIkonDebug, ds as useIkonFeedback, wo as useIkonReactive, gr as useIkonStyles, vr as useIkonUiStores, Sr as useMicrophoneCapture, To as useReactive, wr as useScreenCapture, yr as useSiblingClient, Xa as useSsoSignIn, Co as useToasts, e as useUiNode, $n as useUiStore, Wi as verifyLoginCode };
|