@rpcbase/client 0.286.0 → 0.288.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/dist/RootProvider/index.d.ts +1 -1
  2. package/dist/RootProvider/index.d.ts.map +1 -1
  3. package/dist/apiClient/getServerApiClient.d.ts +1 -1
  4. package/dist/apiClient/getServerApiClient.d.ts.map +1 -1
  5. package/dist/apiClient/index.d.ts +1 -1
  6. package/dist/apiClient/index.d.ts.map +1 -1
  7. package/dist/cleanupURL.d.ts.map +1 -1
  8. package/dist/getFeatureFlag.d.ts.map +1 -1
  9. package/dist/hooks/index.d.ts +2 -2
  10. package/dist/hooks/index.d.ts.map +1 -1
  11. package/dist/hooks/useMediaQuery.d.ts.map +1 -1
  12. package/dist/hooks/useThrottledMeasure.d.ts +1 -1
  13. package/dist/hooks/useThrottledMeasure.d.ts.map +1 -1
  14. package/dist/index.d.ts +6 -5
  15. package/dist/index.d.ts.map +1 -1
  16. package/dist/index.js +1477 -5
  17. package/dist/initWithRoutes.d.ts +1 -1
  18. package/dist/initWithRoutes.d.ts.map +1 -1
  19. package/dist/instrument.d.ts +3 -1
  20. package/dist/instrument.d.ts.map +1 -1
  21. package/dist/instrument.js +25 -28
  22. package/dist/types.d.ts +2 -2
  23. package/dist/types.d.ts.map +1 -1
  24. package/dist/utils/useApplyScroll.d.ts.map +1 -1
  25. package/package.json +24 -13
  26. package/dist/RootProvider/index.js +0 -8
  27. package/dist/apiClient/getServerApiClient.js +0 -97
  28. package/dist/apiClient/index.js +0 -50
  29. package/dist/cleanupURL.js +0 -37
  30. package/dist/getFeatureFlag.js +0 -43
  31. package/dist/hooks/index.js +0 -2
  32. package/dist/hooks/useMediaQuery.js +0 -24
  33. package/dist/hooks/useThrottledMeasure.js +0 -32
  34. package/dist/hooks.d.ts +0 -2
  35. package/dist/hooks.d.ts.map +0 -1
  36. package/dist/hooks.js +0 -1
  37. package/dist/initWithRoutes.js +0 -80
  38. package/dist/types.js +0 -1
  39. package/dist/utils/useApplyScroll.js +0 -138
package/dist/index.js CHANGED
@@ -1,5 +1,1477 @@
1
- export * from "./apiClient";
2
- export * from "./initWithRoutes";
3
- export * from "./types";
4
- export * from "./getFeatureFlag";
5
- export * from "./RootProvider";
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { StrictMode, useRef, useEffect, useCallback, useState, useSyncExternalStore } from "react";
3
+ import posthog from "posthog-js";
4
+ import { createRoutesFromElements, createBrowserRouter, RouterProvider, useLocation } from "@rpcbase/router";
5
+ import { hydrateRoot } from "react-dom/client";
6
+ import { PostHogProvider } from "posthog-js/react/dist/esm/index.js";
7
+ import useMeasure from "react-use/lib/useMeasure.js";
8
+ let apiClient;
9
+ const initApiClient = async (args) => {
10
+ {
11
+ const axios = (await import("axios")).default;
12
+ const axiosClient = axios.create({
13
+ baseURL: "/",
14
+ withCredentials: true,
15
+ headers: {
16
+ "Content-Type": "application/json"
17
+ }
18
+ });
19
+ const createMethod = (method) => {
20
+ return async (path, payload, _ctx) => {
21
+ const config = {
22
+ method,
23
+ url: path,
24
+ data: payload,
25
+ headers: {
26
+ // ...(typeof ctxOrPath !== 'string' && {
27
+ // // 'X-Custom-Header': ctxOrPath.someHeaderValue,
28
+ // // ...ctxOrPath.additionalHeaders,
29
+ // }),
30
+ }
31
+ };
32
+ try {
33
+ const response = await axiosClient(config);
34
+ return response.data;
35
+ } catch (error) {
36
+ console.log("AXIOS API ERROR", error);
37
+ throw error;
38
+ }
39
+ };
40
+ };
41
+ apiClient = {
42
+ get: createMethod("get"),
43
+ put: createMethod("put"),
44
+ post: createMethod("post"),
45
+ delete: createMethod("delete")
46
+ };
47
+ }
48
+ };
49
+ const CLEANUP_WAIT_DELAY = 1e3;
50
+ const cleanupURL = () => {
51
+ const runCleanup = () => {
52
+ setTimeout(() => {
53
+ const url = new URL(window.location.href);
54
+ const params = new URLSearchParams(url.search);
55
+ const paramKeys = Array.from(params.keys());
56
+ paramKeys.forEach((key) => {
57
+ if (key.startsWith("utm_")) {
58
+ params.delete(key);
59
+ }
60
+ });
61
+ const cleanUrl = url.pathname + (params.toString() ? "?" + params.toString() : "") + url.hash;
62
+ window.history.replaceState({}, document.title, cleanUrl);
63
+ }, CLEANUP_WAIT_DELAY);
64
+ };
65
+ if (document.readyState === "complete" || document.readyState === "interactive") {
66
+ runCleanup();
67
+ } else {
68
+ document.addEventListener("DOMContentLoaded", runCleanup, { once: true });
69
+ }
70
+ };
71
+ const showErrorOverlay = (err) => {
72
+ const ErrorOverlay = customElements.get("vite-error-overlay");
73
+ if (!ErrorOverlay) {
74
+ return;
75
+ }
76
+ console.log(err);
77
+ const overlay = new ErrorOverlay(err);
78
+ document.body.appendChild(overlay);
79
+ };
80
+ const handleServerErrors = () => {
81
+ if (window.__staticRouterHydrationData?.errors) {
82
+ const { errors } = window.__staticRouterHydrationData;
83
+ Object.values(errors).forEach((error) => {
84
+ showErrorOverlay({
85
+ plugin: "ssr-router",
86
+ ...error.reason
87
+ });
88
+ });
89
+ }
90
+ };
91
+ const initWithRoutes = async (routesElement, opts) => {
92
+ await initApiClient();
93
+ cleanupURL();
94
+ handleServerErrors();
95
+ const routes = createRoutesFromElements(routesElement);
96
+ const router = createBrowserRouter(routes);
97
+ const toError = (error) => error instanceof Error ? error : new Error(String(error));
98
+ const phReactHandler = (react_context) => (error, errorInfo) => {
99
+ const err = toError(error);
100
+ posthog.captureException(err, {
101
+ react_context,
102
+ component_stack: errorInfo?.componentStack
103
+ });
104
+ if (react_context === "uncaught") {
105
+ console.warn("Uncaught error", err, errorInfo?.componentStack);
106
+ }
107
+ };
108
+ const hydrationOptions = {
109
+ onUncaughtError: phReactHandler("uncaught"),
110
+ onCaughtError: phReactHandler("caught"),
111
+ onRecoverableError: phReactHandler("recoverable")
112
+ };
113
+ hydrateRoot(
114
+ document.getElementById("root"),
115
+ /* @__PURE__ */ jsx(StrictMode, { children: /* @__PURE__ */ jsx(RouterProvider, { router }) }),
116
+ hydrationOptions
117
+ );
118
+ };
119
+ var commonjsGlobal = typeof globalThis !== "undefined" ? globalThis : typeof window !== "undefined" ? window : typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : {};
120
+ function getDefaultExportFromCjs(x) {
121
+ return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, "default") ? x["default"] : x;
122
+ }
123
+ var _arrayReduce;
124
+ var hasRequired_arrayReduce;
125
+ function require_arrayReduce() {
126
+ if (hasRequired_arrayReduce) return _arrayReduce;
127
+ hasRequired_arrayReduce = 1;
128
+ function arrayReduce(array, iteratee, accumulator, initAccum) {
129
+ var index = -1, length = array == null ? 0 : array.length;
130
+ if (initAccum && length) {
131
+ accumulator = array[++index];
132
+ }
133
+ while (++index < length) {
134
+ accumulator = iteratee(accumulator, array[index], index, array);
135
+ }
136
+ return accumulator;
137
+ }
138
+ _arrayReduce = arrayReduce;
139
+ return _arrayReduce;
140
+ }
141
+ var _basePropertyOf;
142
+ var hasRequired_basePropertyOf;
143
+ function require_basePropertyOf() {
144
+ if (hasRequired_basePropertyOf) return _basePropertyOf;
145
+ hasRequired_basePropertyOf = 1;
146
+ function basePropertyOf(object) {
147
+ return function(key) {
148
+ return object == null ? void 0 : object[key];
149
+ };
150
+ }
151
+ _basePropertyOf = basePropertyOf;
152
+ return _basePropertyOf;
153
+ }
154
+ var _deburrLetter;
155
+ var hasRequired_deburrLetter;
156
+ function require_deburrLetter() {
157
+ if (hasRequired_deburrLetter) return _deburrLetter;
158
+ hasRequired_deburrLetter = 1;
159
+ var basePropertyOf = require_basePropertyOf();
160
+ var deburredLetters = {
161
+ // Latin-1 Supplement block.
162
+ "À": "A",
163
+ "Á": "A",
164
+ "Â": "A",
165
+ "Ã": "A",
166
+ "Ä": "A",
167
+ "Å": "A",
168
+ "à": "a",
169
+ "á": "a",
170
+ "â": "a",
171
+ "ã": "a",
172
+ "ä": "a",
173
+ "å": "a",
174
+ "Ç": "C",
175
+ "ç": "c",
176
+ "Ð": "D",
177
+ "ð": "d",
178
+ "È": "E",
179
+ "É": "E",
180
+ "Ê": "E",
181
+ "Ë": "E",
182
+ "è": "e",
183
+ "é": "e",
184
+ "ê": "e",
185
+ "ë": "e",
186
+ "Ì": "I",
187
+ "Í": "I",
188
+ "Î": "I",
189
+ "Ï": "I",
190
+ "ì": "i",
191
+ "í": "i",
192
+ "î": "i",
193
+ "ï": "i",
194
+ "Ñ": "N",
195
+ "ñ": "n",
196
+ "Ò": "O",
197
+ "Ó": "O",
198
+ "Ô": "O",
199
+ "Õ": "O",
200
+ "Ö": "O",
201
+ "Ø": "O",
202
+ "ò": "o",
203
+ "ó": "o",
204
+ "ô": "o",
205
+ "õ": "o",
206
+ "ö": "o",
207
+ "ø": "o",
208
+ "Ù": "U",
209
+ "Ú": "U",
210
+ "Û": "U",
211
+ "Ü": "U",
212
+ "ù": "u",
213
+ "ú": "u",
214
+ "û": "u",
215
+ "ü": "u",
216
+ "Ý": "Y",
217
+ "ý": "y",
218
+ "ÿ": "y",
219
+ "Æ": "Ae",
220
+ "æ": "ae",
221
+ "Þ": "Th",
222
+ "þ": "th",
223
+ "ß": "ss",
224
+ // Latin Extended-A block.
225
+ "Ā": "A",
226
+ "Ă": "A",
227
+ "Ą": "A",
228
+ "ā": "a",
229
+ "ă": "a",
230
+ "ą": "a",
231
+ "Ć": "C",
232
+ "Ĉ": "C",
233
+ "Ċ": "C",
234
+ "Č": "C",
235
+ "ć": "c",
236
+ "ĉ": "c",
237
+ "ċ": "c",
238
+ "č": "c",
239
+ "Ď": "D",
240
+ "Đ": "D",
241
+ "ď": "d",
242
+ "đ": "d",
243
+ "Ē": "E",
244
+ "Ĕ": "E",
245
+ "Ė": "E",
246
+ "Ę": "E",
247
+ "Ě": "E",
248
+ "ē": "e",
249
+ "ĕ": "e",
250
+ "ė": "e",
251
+ "ę": "e",
252
+ "ě": "e",
253
+ "Ĝ": "G",
254
+ "Ğ": "G",
255
+ "Ġ": "G",
256
+ "Ģ": "G",
257
+ "ĝ": "g",
258
+ "ğ": "g",
259
+ "ġ": "g",
260
+ "ģ": "g",
261
+ "Ĥ": "H",
262
+ "Ħ": "H",
263
+ "ĥ": "h",
264
+ "ħ": "h",
265
+ "Ĩ": "I",
266
+ "Ī": "I",
267
+ "Ĭ": "I",
268
+ "Į": "I",
269
+ "İ": "I",
270
+ "ĩ": "i",
271
+ "ī": "i",
272
+ "ĭ": "i",
273
+ "į": "i",
274
+ "ı": "i",
275
+ "Ĵ": "J",
276
+ "ĵ": "j",
277
+ "Ķ": "K",
278
+ "ķ": "k",
279
+ "ĸ": "k",
280
+ "Ĺ": "L",
281
+ "Ļ": "L",
282
+ "Ľ": "L",
283
+ "Ŀ": "L",
284
+ "Ł": "L",
285
+ "ĺ": "l",
286
+ "ļ": "l",
287
+ "ľ": "l",
288
+ "ŀ": "l",
289
+ "ł": "l",
290
+ "Ń": "N",
291
+ "Ņ": "N",
292
+ "Ň": "N",
293
+ "Ŋ": "N",
294
+ "ń": "n",
295
+ "ņ": "n",
296
+ "ň": "n",
297
+ "ŋ": "n",
298
+ "Ō": "O",
299
+ "Ŏ": "O",
300
+ "Ő": "O",
301
+ "ō": "o",
302
+ "ŏ": "o",
303
+ "ő": "o",
304
+ "Ŕ": "R",
305
+ "Ŗ": "R",
306
+ "Ř": "R",
307
+ "ŕ": "r",
308
+ "ŗ": "r",
309
+ "ř": "r",
310
+ "Ś": "S",
311
+ "Ŝ": "S",
312
+ "Ş": "S",
313
+ "Š": "S",
314
+ "ś": "s",
315
+ "ŝ": "s",
316
+ "ş": "s",
317
+ "š": "s",
318
+ "Ţ": "T",
319
+ "Ť": "T",
320
+ "Ŧ": "T",
321
+ "ţ": "t",
322
+ "ť": "t",
323
+ "ŧ": "t",
324
+ "Ũ": "U",
325
+ "Ū": "U",
326
+ "Ŭ": "U",
327
+ "Ů": "U",
328
+ "Ű": "U",
329
+ "Ų": "U",
330
+ "ũ": "u",
331
+ "ū": "u",
332
+ "ŭ": "u",
333
+ "ů": "u",
334
+ "ű": "u",
335
+ "ų": "u",
336
+ "Ŵ": "W",
337
+ "ŵ": "w",
338
+ "Ŷ": "Y",
339
+ "ŷ": "y",
340
+ "Ÿ": "Y",
341
+ "Ź": "Z",
342
+ "Ż": "Z",
343
+ "Ž": "Z",
344
+ "ź": "z",
345
+ "ż": "z",
346
+ "ž": "z",
347
+ "IJ": "IJ",
348
+ "ij": "ij",
349
+ "Œ": "Oe",
350
+ "œ": "oe",
351
+ "ʼn": "'n",
352
+ "ſ": "s"
353
+ };
354
+ var deburrLetter = basePropertyOf(deburredLetters);
355
+ _deburrLetter = deburrLetter;
356
+ return _deburrLetter;
357
+ }
358
+ var _freeGlobal;
359
+ var hasRequired_freeGlobal;
360
+ function require_freeGlobal() {
361
+ if (hasRequired_freeGlobal) return _freeGlobal;
362
+ hasRequired_freeGlobal = 1;
363
+ var freeGlobal = typeof commonjsGlobal == "object" && commonjsGlobal && commonjsGlobal.Object === Object && commonjsGlobal;
364
+ _freeGlobal = freeGlobal;
365
+ return _freeGlobal;
366
+ }
367
+ var _root;
368
+ var hasRequired_root;
369
+ function require_root() {
370
+ if (hasRequired_root) return _root;
371
+ hasRequired_root = 1;
372
+ var freeGlobal = require_freeGlobal();
373
+ var freeSelf = typeof self == "object" && self && self.Object === Object && self;
374
+ var root = freeGlobal || freeSelf || Function("return this")();
375
+ _root = root;
376
+ return _root;
377
+ }
378
+ var _Symbol;
379
+ var hasRequired_Symbol;
380
+ function require_Symbol() {
381
+ if (hasRequired_Symbol) return _Symbol;
382
+ hasRequired_Symbol = 1;
383
+ var root = require_root();
384
+ var Symbol = root.Symbol;
385
+ _Symbol = Symbol;
386
+ return _Symbol;
387
+ }
388
+ var _arrayMap;
389
+ var hasRequired_arrayMap;
390
+ function require_arrayMap() {
391
+ if (hasRequired_arrayMap) return _arrayMap;
392
+ hasRequired_arrayMap = 1;
393
+ function arrayMap(array, iteratee) {
394
+ var index = -1, length = array == null ? 0 : array.length, result = Array(length);
395
+ while (++index < length) {
396
+ result[index] = iteratee(array[index], index, array);
397
+ }
398
+ return result;
399
+ }
400
+ _arrayMap = arrayMap;
401
+ return _arrayMap;
402
+ }
403
+ var isArray_1;
404
+ var hasRequiredIsArray;
405
+ function requireIsArray() {
406
+ if (hasRequiredIsArray) return isArray_1;
407
+ hasRequiredIsArray = 1;
408
+ var isArray2 = Array.isArray;
409
+ isArray_1 = isArray2;
410
+ return isArray_1;
411
+ }
412
+ var _getRawTag;
413
+ var hasRequired_getRawTag;
414
+ function require_getRawTag() {
415
+ if (hasRequired_getRawTag) return _getRawTag;
416
+ hasRequired_getRawTag = 1;
417
+ var Symbol = require_Symbol();
418
+ var objectProto = Object.prototype;
419
+ var hasOwnProperty2 = objectProto.hasOwnProperty;
420
+ var nativeObjectToString = objectProto.toString;
421
+ var symToStringTag = Symbol ? Symbol.toStringTag : void 0;
422
+ function getRawTag(value) {
423
+ var isOwn = hasOwnProperty2.call(value, symToStringTag), tag = value[symToStringTag];
424
+ try {
425
+ value[symToStringTag] = void 0;
426
+ var unmasked = true;
427
+ } catch (e) {
428
+ }
429
+ var result = nativeObjectToString.call(value);
430
+ if (unmasked) {
431
+ if (isOwn) {
432
+ value[symToStringTag] = tag;
433
+ } else {
434
+ delete value[symToStringTag];
435
+ }
436
+ }
437
+ return result;
438
+ }
439
+ _getRawTag = getRawTag;
440
+ return _getRawTag;
441
+ }
442
+ var _objectToString;
443
+ var hasRequired_objectToString;
444
+ function require_objectToString() {
445
+ if (hasRequired_objectToString) return _objectToString;
446
+ hasRequired_objectToString = 1;
447
+ var objectProto = Object.prototype;
448
+ var nativeObjectToString = objectProto.toString;
449
+ function objectToString(value) {
450
+ return nativeObjectToString.call(value);
451
+ }
452
+ _objectToString = objectToString;
453
+ return _objectToString;
454
+ }
455
+ var _baseGetTag;
456
+ var hasRequired_baseGetTag;
457
+ function require_baseGetTag() {
458
+ if (hasRequired_baseGetTag) return _baseGetTag;
459
+ hasRequired_baseGetTag = 1;
460
+ var Symbol = require_Symbol(), getRawTag = require_getRawTag(), objectToString = require_objectToString();
461
+ var nullTag = "[object Null]", undefinedTag = "[object Undefined]";
462
+ var symToStringTag = Symbol ? Symbol.toStringTag : void 0;
463
+ function baseGetTag(value) {
464
+ if (value == null) {
465
+ return value === void 0 ? undefinedTag : nullTag;
466
+ }
467
+ return symToStringTag && symToStringTag in Object(value) ? getRawTag(value) : objectToString(value);
468
+ }
469
+ _baseGetTag = baseGetTag;
470
+ return _baseGetTag;
471
+ }
472
+ var isObjectLike_1;
473
+ var hasRequiredIsObjectLike;
474
+ function requireIsObjectLike() {
475
+ if (hasRequiredIsObjectLike) return isObjectLike_1;
476
+ hasRequiredIsObjectLike = 1;
477
+ function isObjectLike(value) {
478
+ return value != null && typeof value == "object";
479
+ }
480
+ isObjectLike_1 = isObjectLike;
481
+ return isObjectLike_1;
482
+ }
483
+ var isSymbol_1;
484
+ var hasRequiredIsSymbol;
485
+ function requireIsSymbol() {
486
+ if (hasRequiredIsSymbol) return isSymbol_1;
487
+ hasRequiredIsSymbol = 1;
488
+ var baseGetTag = require_baseGetTag(), isObjectLike = requireIsObjectLike();
489
+ var symbolTag = "[object Symbol]";
490
+ function isSymbol(value) {
491
+ return typeof value == "symbol" || isObjectLike(value) && baseGetTag(value) == symbolTag;
492
+ }
493
+ isSymbol_1 = isSymbol;
494
+ return isSymbol_1;
495
+ }
496
+ var _baseToString;
497
+ var hasRequired_baseToString;
498
+ function require_baseToString() {
499
+ if (hasRequired_baseToString) return _baseToString;
500
+ hasRequired_baseToString = 1;
501
+ var Symbol = require_Symbol(), arrayMap = require_arrayMap(), isArray2 = requireIsArray(), isSymbol = requireIsSymbol();
502
+ var symbolProto = Symbol ? Symbol.prototype : void 0, symbolToString = symbolProto ? symbolProto.toString : void 0;
503
+ function baseToString(value) {
504
+ if (typeof value == "string") {
505
+ return value;
506
+ }
507
+ if (isArray2(value)) {
508
+ return arrayMap(value, baseToString) + "";
509
+ }
510
+ if (isSymbol(value)) {
511
+ return symbolToString ? symbolToString.call(value) : "";
512
+ }
513
+ var result = value + "";
514
+ return result == "0" && 1 / value == -Infinity ? "-0" : result;
515
+ }
516
+ _baseToString = baseToString;
517
+ return _baseToString;
518
+ }
519
+ var toString_1;
520
+ var hasRequiredToString;
521
+ function requireToString() {
522
+ if (hasRequiredToString) return toString_1;
523
+ hasRequiredToString = 1;
524
+ var baseToString = require_baseToString();
525
+ function toString(value) {
526
+ return value == null ? "" : baseToString(value);
527
+ }
528
+ toString_1 = toString;
529
+ return toString_1;
530
+ }
531
+ var deburr_1;
532
+ var hasRequiredDeburr;
533
+ function requireDeburr() {
534
+ if (hasRequiredDeburr) return deburr_1;
535
+ hasRequiredDeburr = 1;
536
+ var deburrLetter = require_deburrLetter(), toString = requireToString();
537
+ var reLatin = /[\xc0-\xd6\xd8-\xf6\xf8-\xff\u0100-\u017f]/g;
538
+ var rsComboMarksRange = "\\u0300-\\u036f", reComboHalfMarksRange = "\\ufe20-\\ufe2f", rsComboSymbolsRange = "\\u20d0-\\u20ff", rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange;
539
+ var rsCombo = "[" + rsComboRange + "]";
540
+ var reComboMark = RegExp(rsCombo, "g");
541
+ function deburr(string) {
542
+ string = toString(string);
543
+ return string && string.replace(reLatin, deburrLetter).replace(reComboMark, "");
544
+ }
545
+ deburr_1 = deburr;
546
+ return deburr_1;
547
+ }
548
+ var _asciiWords;
549
+ var hasRequired_asciiWords;
550
+ function require_asciiWords() {
551
+ if (hasRequired_asciiWords) return _asciiWords;
552
+ hasRequired_asciiWords = 1;
553
+ var reAsciiWord = /[^\x00-\x2f\x3a-\x40\x5b-\x60\x7b-\x7f]+/g;
554
+ function asciiWords(string) {
555
+ return string.match(reAsciiWord) || [];
556
+ }
557
+ _asciiWords = asciiWords;
558
+ return _asciiWords;
559
+ }
560
+ var _hasUnicodeWord;
561
+ var hasRequired_hasUnicodeWord;
562
+ function require_hasUnicodeWord() {
563
+ if (hasRequired_hasUnicodeWord) return _hasUnicodeWord;
564
+ hasRequired_hasUnicodeWord = 1;
565
+ var reHasUnicodeWord = /[a-z][A-Z]|[A-Z]{2}[a-z]|[0-9][a-zA-Z]|[a-zA-Z][0-9]|[^a-zA-Z0-9 ]/;
566
+ function hasUnicodeWord(string) {
567
+ return reHasUnicodeWord.test(string);
568
+ }
569
+ _hasUnicodeWord = hasUnicodeWord;
570
+ return _hasUnicodeWord;
571
+ }
572
+ var _unicodeWords;
573
+ var hasRequired_unicodeWords;
574
+ function require_unicodeWords() {
575
+ if (hasRequired_unicodeWords) return _unicodeWords;
576
+ hasRequired_unicodeWords = 1;
577
+ var rsAstralRange = "\\ud800-\\udfff", rsComboMarksRange = "\\u0300-\\u036f", reComboHalfMarksRange = "\\ufe20-\\ufe2f", rsComboSymbolsRange = "\\u20d0-\\u20ff", rsComboRange = rsComboMarksRange + reComboHalfMarksRange + rsComboSymbolsRange, rsDingbatRange = "\\u2700-\\u27bf", rsLowerRange = "a-z\\xdf-\\xf6\\xf8-\\xff", rsMathOpRange = "\\xac\\xb1\\xd7\\xf7", rsNonCharRange = "\\x00-\\x2f\\x3a-\\x40\\x5b-\\x60\\x7b-\\xbf", rsPunctuationRange = "\\u2000-\\u206f", rsSpaceRange = " \\t\\x0b\\f\\xa0\\ufeff\\n\\r\\u2028\\u2029\\u1680\\u180e\\u2000\\u2001\\u2002\\u2003\\u2004\\u2005\\u2006\\u2007\\u2008\\u2009\\u200a\\u202f\\u205f\\u3000", rsUpperRange = "A-Z\\xc0-\\xd6\\xd8-\\xde", rsVarRange = "\\ufe0e\\ufe0f", rsBreakRange = rsMathOpRange + rsNonCharRange + rsPunctuationRange + rsSpaceRange;
578
+ var rsApos = "['’]", rsBreak = "[" + rsBreakRange + "]", rsCombo = "[" + rsComboRange + "]", rsDigits = "\\d+", rsDingbat = "[" + rsDingbatRange + "]", rsLower = "[" + rsLowerRange + "]", rsMisc = "[^" + rsAstralRange + rsBreakRange + rsDigits + rsDingbatRange + rsLowerRange + rsUpperRange + "]", rsFitz = "\\ud83c[\\udffb-\\udfff]", rsModifier = "(?:" + rsCombo + "|" + rsFitz + ")", rsNonAstral = "[^" + rsAstralRange + "]", rsRegional = "(?:\\ud83c[\\udde6-\\uddff]){2}", rsSurrPair = "[\\ud800-\\udbff][\\udc00-\\udfff]", rsUpper = "[" + rsUpperRange + "]", rsZWJ = "\\u200d";
579
+ var rsMiscLower = "(?:" + rsLower + "|" + rsMisc + ")", rsMiscUpper = "(?:" + rsUpper + "|" + rsMisc + ")", rsOptContrLower = "(?:" + rsApos + "(?:d|ll|m|re|s|t|ve))?", rsOptContrUpper = "(?:" + rsApos + "(?:D|LL|M|RE|S|T|VE))?", reOptMod = rsModifier + "?", rsOptVar = "[" + rsVarRange + "]?", rsOptJoin = "(?:" + rsZWJ + "(?:" + [rsNonAstral, rsRegional, rsSurrPair].join("|") + ")" + rsOptVar + reOptMod + ")*", rsOrdLower = "\\d*(?:1st|2nd|3rd|(?![123])\\dth)(?=\\b|[A-Z_])", rsOrdUpper = "\\d*(?:1ST|2ND|3RD|(?![123])\\dTH)(?=\\b|[a-z_])", rsSeq = rsOptVar + reOptMod + rsOptJoin, rsEmoji = "(?:" + [rsDingbat, rsRegional, rsSurrPair].join("|") + ")" + rsSeq;
580
+ var reUnicodeWord = RegExp([
581
+ rsUpper + "?" + rsLower + "+" + rsOptContrLower + "(?=" + [rsBreak, rsUpper, "$"].join("|") + ")",
582
+ rsMiscUpper + "+" + rsOptContrUpper + "(?=" + [rsBreak, rsUpper + rsMiscLower, "$"].join("|") + ")",
583
+ rsUpper + "?" + rsMiscLower + "+" + rsOptContrLower,
584
+ rsUpper + "+" + rsOptContrUpper,
585
+ rsOrdUpper,
586
+ rsOrdLower,
587
+ rsDigits,
588
+ rsEmoji
589
+ ].join("|"), "g");
590
+ function unicodeWords(string) {
591
+ return string.match(reUnicodeWord) || [];
592
+ }
593
+ _unicodeWords = unicodeWords;
594
+ return _unicodeWords;
595
+ }
596
+ var words_1;
597
+ var hasRequiredWords;
598
+ function requireWords() {
599
+ if (hasRequiredWords) return words_1;
600
+ hasRequiredWords = 1;
601
+ var asciiWords = require_asciiWords(), hasUnicodeWord = require_hasUnicodeWord(), toString = requireToString(), unicodeWords = require_unicodeWords();
602
+ function words(string, pattern, guard) {
603
+ string = toString(string);
604
+ pattern = guard ? void 0 : pattern;
605
+ if (pattern === void 0) {
606
+ return hasUnicodeWord(string) ? unicodeWords(string) : asciiWords(string);
607
+ }
608
+ return string.match(pattern) || [];
609
+ }
610
+ words_1 = words;
611
+ return words_1;
612
+ }
613
+ var _createCompounder;
614
+ var hasRequired_createCompounder;
615
+ function require_createCompounder() {
616
+ if (hasRequired_createCompounder) return _createCompounder;
617
+ hasRequired_createCompounder = 1;
618
+ var arrayReduce = require_arrayReduce(), deburr = requireDeburr(), words = requireWords();
619
+ var rsApos = "['’]";
620
+ var reApos = RegExp(rsApos, "g");
621
+ function createCompounder(callback) {
622
+ return function(string) {
623
+ return arrayReduce(words(deburr(string).replace(reApos, "")), callback, "");
624
+ };
625
+ }
626
+ _createCompounder = createCompounder;
627
+ return _createCompounder;
628
+ }
629
+ var snakeCase_1;
630
+ var hasRequiredSnakeCase;
631
+ function requireSnakeCase() {
632
+ if (hasRequiredSnakeCase) return snakeCase_1;
633
+ hasRequiredSnakeCase = 1;
634
+ var createCompounder = require_createCompounder();
635
+ var snakeCase = createCompounder(function(result, word, index) {
636
+ return result + (index ? "_" : "") + word.toLowerCase();
637
+ });
638
+ snakeCase_1 = snakeCase;
639
+ return snakeCase_1;
640
+ }
641
+ var snakeCaseExports = requireSnakeCase();
642
+ const _snakeCase = /* @__PURE__ */ getDefaultExportFromCjs(snakeCaseExports);
643
+ const __vite_import_meta_env__ = { "BASE_URL": "/", "DEV": false, "MODE": "production", "PROD": true, "SSR": false };
644
+ const getFeatureFlag = async (flag) => {
645
+ const envKey = `RB_PUBLIC_FLAG_${_snakeCase(flag).toUpperCase()}`;
646
+ {
647
+ let waitForFeatureFlags = function() {
648
+ return new Promise((resolve) => {
649
+ if (hasLoadedFeatureFlags) {
650
+ resolve();
651
+ } else {
652
+ posthog2.onFeatureFlags(() => {
653
+ hasLoadedFeatureFlags = true;
654
+ resolve();
655
+ });
656
+ }
657
+ });
658
+ };
659
+ if (__vite_import_meta_env__[envKey] !== void 0) {
660
+ return __vite_import_meta_env__[envKey];
661
+ }
662
+ const startTime = performance.now();
663
+ const { posthog: posthog2 } = await import("posthog-js");
664
+ let hasLoadedFeatureFlags = false;
665
+ await waitForFeatureFlags();
666
+ const endTime = performance.now();
667
+ console.log(`Client: Feature flag "${flag}" loaded in ${(endTime - startTime).toFixed(2)}ms`);
668
+ return posthog2.getFeatureFlag(flag);
669
+ }
670
+ };
671
+ function throttle(callback, limit) {
672
+ let wait = false;
673
+ return (...args) => {
674
+ if (!wait) {
675
+ callback(...args);
676
+ wait = true;
677
+ setTimeout(() => {
678
+ wait = false;
679
+ }, limit);
680
+ }
681
+ };
682
+ }
683
+ function useApplyScroll() {
684
+ const location = useLocation();
685
+ const previousPathRef = useRef(location.pathname);
686
+ const isScrollingProgrammatically = useRef(false);
687
+ const scrollTimeoutRef = useRef(null);
688
+ const lastAppliedHashRef = useRef("");
689
+ useEffect(() => {
690
+ if (typeof window !== "undefined") {
691
+ lastAppliedHashRef.current = window.location.hash || "";
692
+ }
693
+ }, []);
694
+ useEffect(() => {
695
+ lastAppliedHashRef.current = location.hash || "";
696
+ }, [location.hash]);
697
+ const replaceHashSilently = useCallback((hash) => {
698
+ if (typeof window === "undefined") {
699
+ return;
700
+ }
701
+ if (lastAppliedHashRef.current === hash) {
702
+ return;
703
+ }
704
+ const base = `${window.location.pathname}${window.location.search}`;
705
+ window.history.replaceState(window.history.state, "", `${base}${hash}`);
706
+ lastAppliedHashRef.current = hash;
707
+ }, []);
708
+ const markProgrammaticScroll = useCallback(() => {
709
+ isScrollingProgrammatically.current = true;
710
+ if (scrollTimeoutRef.current) {
711
+ clearTimeout(scrollTimeoutRef.current);
712
+ }
713
+ scrollTimeoutRef.current = setTimeout(() => {
714
+ isScrollingProgrammatically.current = false;
715
+ }, 1e3);
716
+ }, []);
717
+ useEffect(() => {
718
+ const pathChanged = previousPathRef.current !== location.pathname;
719
+ if (pathChanged) {
720
+ previousPathRef.current = location.pathname;
721
+ if (!location.hash) {
722
+ window.scrollTo({ top: 0, left: 0, behavior: "auto" });
723
+ return;
724
+ }
725
+ setTimeout(() => {
726
+ const id2 = location.hash.substring(1);
727
+ const element2 = document.getElementById(id2);
728
+ if (element2) {
729
+ markProgrammaticScroll();
730
+ element2.scrollIntoView({ behavior: "smooth" });
731
+ }
732
+ }, 100);
733
+ return;
734
+ }
735
+ if (!location.hash) {
736
+ return;
737
+ }
738
+ const id = location.hash.substring(1);
739
+ const element = document.getElementById(id);
740
+ if (element) {
741
+ markProgrammaticScroll();
742
+ element.scrollIntoView({ behavior: "smooth" });
743
+ }
744
+ }, [location.hash, location.pathname, markProgrammaticScroll]);
745
+ useEffect(() => {
746
+ if (typeof window === "undefined") {
747
+ return;
748
+ }
749
+ const handleScroll = throttle(() => {
750
+ if (isScrollingProgrammatically.current) {
751
+ return;
752
+ }
753
+ const sections = Array.from(document.querySelectorAll("section[id]"));
754
+ if (sections.length === 0) {
755
+ replaceHashSilently("");
756
+ return;
757
+ }
758
+ const scrollPosition = window.scrollY;
759
+ const viewportHeight = window.innerHeight;
760
+ const checkPoint = scrollPosition + viewportHeight / 3;
761
+ let activeSectionId = null;
762
+ for (const section of sections) {
763
+ if (section.offsetTop <= checkPoint && section.offsetTop + section.offsetHeight > checkPoint) {
764
+ activeSectionId = section.id;
765
+ break;
766
+ }
767
+ }
768
+ const newHash = activeSectionId ? `#${activeSectionId}` : "";
769
+ replaceHashSilently(newHash);
770
+ }, 150);
771
+ document.addEventListener("scroll", handleScroll);
772
+ return () => {
773
+ document.removeEventListener("scroll", handleScroll);
774
+ if (scrollTimeoutRef.current) {
775
+ clearTimeout(scrollTimeoutRef.current);
776
+ scrollTimeoutRef.current = null;
777
+ }
778
+ };
779
+ }, [replaceHashSilently]);
780
+ useEffect(() => {
781
+ const handleClick = (event) => {
782
+ const target = event.target;
783
+ const link = target?.closest("a");
784
+ const currentHash = typeof window !== "undefined" ? window.location.hash : location.hash || "";
785
+ if (!link || !link.hash || link.pathname !== location.pathname || link.hash !== currentHash) {
786
+ return;
787
+ }
788
+ const id = link.hash.substring(1);
789
+ const element = document.getElementById(id);
790
+ if (element) {
791
+ event.preventDefault();
792
+ event.stopPropagation();
793
+ markProgrammaticScroll();
794
+ element.scrollIntoView({ behavior: "smooth" });
795
+ }
796
+ };
797
+ document.addEventListener("click", handleClick, true);
798
+ return () => document.removeEventListener("click", handleClick, true);
799
+ }, [location.hash, location.pathname, markProgrammaticScroll]);
800
+ }
801
+ const RootProvider = ({ children }) => {
802
+ useApplyScroll();
803
+ return /* @__PURE__ */ jsx(PostHogProvider, { client: posthog, children });
804
+ };
805
+ var isObject_1;
806
+ var hasRequiredIsObject;
807
+ function requireIsObject() {
808
+ if (hasRequiredIsObject) return isObject_1;
809
+ hasRequiredIsObject = 1;
810
+ function isObject(value) {
811
+ var type = typeof value;
812
+ return value != null && (type == "object" || type == "function");
813
+ }
814
+ isObject_1 = isObject;
815
+ return isObject_1;
816
+ }
817
+ var now_1;
818
+ var hasRequiredNow;
819
+ function requireNow() {
820
+ if (hasRequiredNow) return now_1;
821
+ hasRequiredNow = 1;
822
+ var root = require_root();
823
+ var now = function() {
824
+ return root.Date.now();
825
+ };
826
+ now_1 = now;
827
+ return now_1;
828
+ }
829
+ var _trimmedEndIndex;
830
+ var hasRequired_trimmedEndIndex;
831
+ function require_trimmedEndIndex() {
832
+ if (hasRequired_trimmedEndIndex) return _trimmedEndIndex;
833
+ hasRequired_trimmedEndIndex = 1;
834
+ var reWhitespace = /\s/;
835
+ function trimmedEndIndex(string) {
836
+ var index = string.length;
837
+ while (index-- && reWhitespace.test(string.charAt(index))) {
838
+ }
839
+ return index;
840
+ }
841
+ _trimmedEndIndex = trimmedEndIndex;
842
+ return _trimmedEndIndex;
843
+ }
844
+ var _baseTrim;
845
+ var hasRequired_baseTrim;
846
+ function require_baseTrim() {
847
+ if (hasRequired_baseTrim) return _baseTrim;
848
+ hasRequired_baseTrim = 1;
849
+ var trimmedEndIndex = require_trimmedEndIndex();
850
+ var reTrimStart = /^\s+/;
851
+ function baseTrim(string) {
852
+ return string ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, "") : string;
853
+ }
854
+ _baseTrim = baseTrim;
855
+ return _baseTrim;
856
+ }
857
+ var toNumber_1;
858
+ var hasRequiredToNumber;
859
+ function requireToNumber() {
860
+ if (hasRequiredToNumber) return toNumber_1;
861
+ hasRequiredToNumber = 1;
862
+ var baseTrim = require_baseTrim(), isObject = requireIsObject(), isSymbol = requireIsSymbol();
863
+ var NAN = 0 / 0;
864
+ var reIsBadHex = /^[-+]0x[0-9a-f]+$/i;
865
+ var reIsBinary = /^0b[01]+$/i;
866
+ var reIsOctal = /^0o[0-7]+$/i;
867
+ var freeParseInt = parseInt;
868
+ function toNumber(value) {
869
+ if (typeof value == "number") {
870
+ return value;
871
+ }
872
+ if (isSymbol(value)) {
873
+ return NAN;
874
+ }
875
+ if (isObject(value)) {
876
+ var other = typeof value.valueOf == "function" ? value.valueOf() : value;
877
+ value = isObject(other) ? other + "" : other;
878
+ }
879
+ if (typeof value != "string") {
880
+ return value === 0 ? value : +value;
881
+ }
882
+ value = baseTrim(value);
883
+ var isBinary = reIsBinary.test(value);
884
+ return isBinary || reIsOctal.test(value) ? freeParseInt(value.slice(2), isBinary ? 2 : 8) : reIsBadHex.test(value) ? NAN : +value;
885
+ }
886
+ toNumber_1 = toNumber;
887
+ return toNumber_1;
888
+ }
889
+ var debounce_1;
890
+ var hasRequiredDebounce;
891
+ function requireDebounce() {
892
+ if (hasRequiredDebounce) return debounce_1;
893
+ hasRequiredDebounce = 1;
894
+ var isObject = requireIsObject(), now = requireNow(), toNumber = requireToNumber();
895
+ var FUNC_ERROR_TEXT = "Expected a function";
896
+ var nativeMax = Math.max, nativeMin = Math.min;
897
+ function debounce(func, wait, options) {
898
+ var lastArgs, lastThis, maxWait, result, timerId, lastCallTime, lastInvokeTime = 0, leading = false, maxing = false, trailing = true;
899
+ if (typeof func != "function") {
900
+ throw new TypeError(FUNC_ERROR_TEXT);
901
+ }
902
+ wait = toNumber(wait) || 0;
903
+ if (isObject(options)) {
904
+ leading = !!options.leading;
905
+ maxing = "maxWait" in options;
906
+ maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;
907
+ trailing = "trailing" in options ? !!options.trailing : trailing;
908
+ }
909
+ function invokeFunc(time) {
910
+ var args = lastArgs, thisArg = lastThis;
911
+ lastArgs = lastThis = void 0;
912
+ lastInvokeTime = time;
913
+ result = func.apply(thisArg, args);
914
+ return result;
915
+ }
916
+ function leadingEdge(time) {
917
+ lastInvokeTime = time;
918
+ timerId = setTimeout(timerExpired, wait);
919
+ return leading ? invokeFunc(time) : result;
920
+ }
921
+ function remainingWait(time) {
922
+ var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime, timeWaiting = wait - timeSinceLastCall;
923
+ return maxing ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting;
924
+ }
925
+ function shouldInvoke(time) {
926
+ var timeSinceLastCall = time - lastCallTime, timeSinceLastInvoke = time - lastInvokeTime;
927
+ return lastCallTime === void 0 || timeSinceLastCall >= wait || timeSinceLastCall < 0 || maxing && timeSinceLastInvoke >= maxWait;
928
+ }
929
+ function timerExpired() {
930
+ var time = now();
931
+ if (shouldInvoke(time)) {
932
+ return trailingEdge(time);
933
+ }
934
+ timerId = setTimeout(timerExpired, remainingWait(time));
935
+ }
936
+ function trailingEdge(time) {
937
+ timerId = void 0;
938
+ if (trailing && lastArgs) {
939
+ return invokeFunc(time);
940
+ }
941
+ lastArgs = lastThis = void 0;
942
+ return result;
943
+ }
944
+ function cancel() {
945
+ if (timerId !== void 0) {
946
+ clearTimeout(timerId);
947
+ }
948
+ lastInvokeTime = 0;
949
+ lastArgs = lastCallTime = lastThis = timerId = void 0;
950
+ }
951
+ function flush() {
952
+ return timerId === void 0 ? result : trailingEdge(now());
953
+ }
954
+ function debounced() {
955
+ var time = now(), isInvoking = shouldInvoke(time);
956
+ lastArgs = arguments;
957
+ lastThis = this;
958
+ lastCallTime = time;
959
+ if (isInvoking) {
960
+ if (timerId === void 0) {
961
+ return leadingEdge(lastCallTime);
962
+ }
963
+ if (maxing) {
964
+ clearTimeout(timerId);
965
+ timerId = setTimeout(timerExpired, wait);
966
+ return invokeFunc(lastCallTime);
967
+ }
968
+ }
969
+ if (timerId === void 0) {
970
+ timerId = setTimeout(timerExpired, wait);
971
+ }
972
+ return result;
973
+ }
974
+ debounced.cancel = cancel;
975
+ debounced.flush = flush;
976
+ return debounced;
977
+ }
978
+ debounce_1 = debounce;
979
+ return debounce_1;
980
+ }
981
+ var throttle_1;
982
+ var hasRequiredThrottle;
983
+ function requireThrottle() {
984
+ if (hasRequiredThrottle) return throttle_1;
985
+ hasRequiredThrottle = 1;
986
+ var debounce = requireDebounce(), isObject = requireIsObject();
987
+ var FUNC_ERROR_TEXT = "Expected a function";
988
+ function throttle2(func, wait, options) {
989
+ var leading = true, trailing = true;
990
+ if (typeof func != "function") {
991
+ throw new TypeError(FUNC_ERROR_TEXT);
992
+ }
993
+ if (isObject(options)) {
994
+ leading = "leading" in options ? !!options.leading : leading;
995
+ trailing = "trailing" in options ? !!options.trailing : trailing;
996
+ }
997
+ return debounce(func, wait, {
998
+ "leading": leading,
999
+ "maxWait": wait,
1000
+ "trailing": trailing
1001
+ });
1002
+ }
1003
+ throttle_1 = throttle2;
1004
+ return throttle_1;
1005
+ }
1006
+ var throttleExports = requireThrottle();
1007
+ const _throttle = /* @__PURE__ */ getDefaultExportFromCjs(throttleExports);
1008
+ var getOwnPropertyNames = Object.getOwnPropertyNames, getOwnPropertySymbols = Object.getOwnPropertySymbols;
1009
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
1010
+ function combineComparators(comparatorA, comparatorB) {
1011
+ return function isEqual(a, b, state) {
1012
+ return comparatorA(a, b, state) && comparatorB(a, b, state);
1013
+ };
1014
+ }
1015
+ function createIsCircular(areItemsEqual) {
1016
+ return function isCircular(a, b, state) {
1017
+ if (!a || !b || typeof a !== "object" || typeof b !== "object") {
1018
+ return areItemsEqual(a, b, state);
1019
+ }
1020
+ var cache = state.cache;
1021
+ var cachedA = cache.get(a);
1022
+ var cachedB = cache.get(b);
1023
+ if (cachedA && cachedB) {
1024
+ return cachedA === b && cachedB === a;
1025
+ }
1026
+ cache.set(a, b);
1027
+ cache.set(b, a);
1028
+ var result = areItemsEqual(a, b, state);
1029
+ cache.delete(a);
1030
+ cache.delete(b);
1031
+ return result;
1032
+ };
1033
+ }
1034
+ function getStrictProperties(object) {
1035
+ return getOwnPropertyNames(object).concat(getOwnPropertySymbols(object));
1036
+ }
1037
+ var hasOwn = Object.hasOwn || (function(object, property) {
1038
+ return hasOwnProperty.call(object, property);
1039
+ });
1040
+ function sameValueZeroEqual(a, b) {
1041
+ return a === b || !a && !b && a !== a && b !== b;
1042
+ }
1043
+ var PREACT_VNODE = "__v";
1044
+ var PREACT_OWNER = "__o";
1045
+ var REACT_OWNER = "_owner";
1046
+ var getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor, keys = Object.keys;
1047
+ function areArraysEqual(a, b, state) {
1048
+ var index = a.length;
1049
+ if (b.length !== index) {
1050
+ return false;
1051
+ }
1052
+ while (index-- > 0) {
1053
+ if (!state.equals(a[index], b[index], index, index, a, b, state)) {
1054
+ return false;
1055
+ }
1056
+ }
1057
+ return true;
1058
+ }
1059
+ function areDatesEqual(a, b) {
1060
+ return sameValueZeroEqual(a.getTime(), b.getTime());
1061
+ }
1062
+ function areErrorsEqual(a, b) {
1063
+ return a.name === b.name && a.message === b.message && a.cause === b.cause && a.stack === b.stack;
1064
+ }
1065
+ function areFunctionsEqual(a, b) {
1066
+ return a === b;
1067
+ }
1068
+ function areMapsEqual(a, b, state) {
1069
+ var size = a.size;
1070
+ if (size !== b.size) {
1071
+ return false;
1072
+ }
1073
+ if (!size) {
1074
+ return true;
1075
+ }
1076
+ var matchedIndices = new Array(size);
1077
+ var aIterable = a.entries();
1078
+ var aResult;
1079
+ var bResult;
1080
+ var index = 0;
1081
+ while (aResult = aIterable.next()) {
1082
+ if (aResult.done) {
1083
+ break;
1084
+ }
1085
+ var bIterable = b.entries();
1086
+ var hasMatch = false;
1087
+ var matchIndex = 0;
1088
+ while (bResult = bIterable.next()) {
1089
+ if (bResult.done) {
1090
+ break;
1091
+ }
1092
+ if (matchedIndices[matchIndex]) {
1093
+ matchIndex++;
1094
+ continue;
1095
+ }
1096
+ var aEntry = aResult.value;
1097
+ var bEntry = bResult.value;
1098
+ if (state.equals(aEntry[0], bEntry[0], index, matchIndex, a, b, state) && state.equals(aEntry[1], bEntry[1], aEntry[0], bEntry[0], a, b, state)) {
1099
+ hasMatch = matchedIndices[matchIndex] = true;
1100
+ break;
1101
+ }
1102
+ matchIndex++;
1103
+ }
1104
+ if (!hasMatch) {
1105
+ return false;
1106
+ }
1107
+ index++;
1108
+ }
1109
+ return true;
1110
+ }
1111
+ var areNumbersEqual = sameValueZeroEqual;
1112
+ function areObjectsEqual(a, b, state) {
1113
+ var properties = keys(a);
1114
+ var index = properties.length;
1115
+ if (keys(b).length !== index) {
1116
+ return false;
1117
+ }
1118
+ while (index-- > 0) {
1119
+ if (!isPropertyEqual(a, b, state, properties[index])) {
1120
+ return false;
1121
+ }
1122
+ }
1123
+ return true;
1124
+ }
1125
+ function areObjectsEqualStrict(a, b, state) {
1126
+ var properties = getStrictProperties(a);
1127
+ var index = properties.length;
1128
+ if (getStrictProperties(b).length !== index) {
1129
+ return false;
1130
+ }
1131
+ var property;
1132
+ var descriptorA;
1133
+ var descriptorB;
1134
+ while (index-- > 0) {
1135
+ property = properties[index];
1136
+ if (!isPropertyEqual(a, b, state, property)) {
1137
+ return false;
1138
+ }
1139
+ descriptorA = getOwnPropertyDescriptor(a, property);
1140
+ descriptorB = getOwnPropertyDescriptor(b, property);
1141
+ if ((descriptorA || descriptorB) && (!descriptorA || !descriptorB || descriptorA.configurable !== descriptorB.configurable || descriptorA.enumerable !== descriptorB.enumerable || descriptorA.writable !== descriptorB.writable)) {
1142
+ return false;
1143
+ }
1144
+ }
1145
+ return true;
1146
+ }
1147
+ function arePrimitiveWrappersEqual(a, b) {
1148
+ return sameValueZeroEqual(a.valueOf(), b.valueOf());
1149
+ }
1150
+ function areRegExpsEqual(a, b) {
1151
+ return a.source === b.source && a.flags === b.flags;
1152
+ }
1153
+ function areSetsEqual(a, b, state) {
1154
+ var size = a.size;
1155
+ if (size !== b.size) {
1156
+ return false;
1157
+ }
1158
+ if (!size) {
1159
+ return true;
1160
+ }
1161
+ var matchedIndices = new Array(size);
1162
+ var aIterable = a.values();
1163
+ var aResult;
1164
+ var bResult;
1165
+ while (aResult = aIterable.next()) {
1166
+ if (aResult.done) {
1167
+ break;
1168
+ }
1169
+ var bIterable = b.values();
1170
+ var hasMatch = false;
1171
+ var matchIndex = 0;
1172
+ while (bResult = bIterable.next()) {
1173
+ if (bResult.done) {
1174
+ break;
1175
+ }
1176
+ if (!matchedIndices[matchIndex] && state.equals(aResult.value, bResult.value, aResult.value, bResult.value, a, b, state)) {
1177
+ hasMatch = matchedIndices[matchIndex] = true;
1178
+ break;
1179
+ }
1180
+ matchIndex++;
1181
+ }
1182
+ if (!hasMatch) {
1183
+ return false;
1184
+ }
1185
+ }
1186
+ return true;
1187
+ }
1188
+ function areTypedArraysEqual(a, b) {
1189
+ var index = a.length;
1190
+ if (b.length !== index) {
1191
+ return false;
1192
+ }
1193
+ while (index-- > 0) {
1194
+ if (a[index] !== b[index]) {
1195
+ return false;
1196
+ }
1197
+ }
1198
+ return true;
1199
+ }
1200
+ function areUrlsEqual(a, b) {
1201
+ return a.hostname === b.hostname && a.pathname === b.pathname && a.protocol === b.protocol && a.port === b.port && a.hash === b.hash && a.username === b.username && a.password === b.password;
1202
+ }
1203
+ function isPropertyEqual(a, b, state, property) {
1204
+ if ((property === REACT_OWNER || property === PREACT_OWNER || property === PREACT_VNODE) && (a.$$typeof || b.$$typeof)) {
1205
+ return true;
1206
+ }
1207
+ return hasOwn(b, property) && state.equals(a[property], b[property], property, property, a, b, state);
1208
+ }
1209
+ var ARGUMENTS_TAG = "[object Arguments]";
1210
+ var BOOLEAN_TAG = "[object Boolean]";
1211
+ var DATE_TAG = "[object Date]";
1212
+ var ERROR_TAG = "[object Error]";
1213
+ var MAP_TAG = "[object Map]";
1214
+ var NUMBER_TAG = "[object Number]";
1215
+ var OBJECT_TAG = "[object Object]";
1216
+ var REG_EXP_TAG = "[object RegExp]";
1217
+ var SET_TAG = "[object Set]";
1218
+ var STRING_TAG = "[object String]";
1219
+ var URL_TAG = "[object URL]";
1220
+ var isArray = Array.isArray;
1221
+ var isTypedArray = typeof ArrayBuffer === "function" && ArrayBuffer.isView ? ArrayBuffer.isView : null;
1222
+ var assign = Object.assign;
1223
+ var getTag = Object.prototype.toString.call.bind(Object.prototype.toString);
1224
+ function createEqualityComparator(_a) {
1225
+ var areArraysEqual2 = _a.areArraysEqual, areDatesEqual2 = _a.areDatesEqual, areErrorsEqual2 = _a.areErrorsEqual, areFunctionsEqual2 = _a.areFunctionsEqual, areMapsEqual2 = _a.areMapsEqual, areNumbersEqual2 = _a.areNumbersEqual, areObjectsEqual2 = _a.areObjectsEqual, arePrimitiveWrappersEqual2 = _a.arePrimitiveWrappersEqual, areRegExpsEqual2 = _a.areRegExpsEqual, areSetsEqual2 = _a.areSetsEqual, areTypedArraysEqual2 = _a.areTypedArraysEqual, areUrlsEqual2 = _a.areUrlsEqual;
1226
+ return function comparator(a, b, state) {
1227
+ if (a === b) {
1228
+ return true;
1229
+ }
1230
+ if (a == null || b == null) {
1231
+ return false;
1232
+ }
1233
+ var type = typeof a;
1234
+ if (type !== typeof b) {
1235
+ return false;
1236
+ }
1237
+ if (type !== "object") {
1238
+ if (type === "number") {
1239
+ return areNumbersEqual2(a, b, state);
1240
+ }
1241
+ if (type === "function") {
1242
+ return areFunctionsEqual2(a, b, state);
1243
+ }
1244
+ return false;
1245
+ }
1246
+ var constructor = a.constructor;
1247
+ if (constructor !== b.constructor) {
1248
+ return false;
1249
+ }
1250
+ if (constructor === Object) {
1251
+ return areObjectsEqual2(a, b, state);
1252
+ }
1253
+ if (isArray(a)) {
1254
+ return areArraysEqual2(a, b, state);
1255
+ }
1256
+ if (isTypedArray != null && isTypedArray(a)) {
1257
+ return areTypedArraysEqual2(a, b, state);
1258
+ }
1259
+ if (constructor === Date) {
1260
+ return areDatesEqual2(a, b, state);
1261
+ }
1262
+ if (constructor === RegExp) {
1263
+ return areRegExpsEqual2(a, b, state);
1264
+ }
1265
+ if (constructor === Map) {
1266
+ return areMapsEqual2(a, b, state);
1267
+ }
1268
+ if (constructor === Set) {
1269
+ return areSetsEqual2(a, b, state);
1270
+ }
1271
+ var tag = getTag(a);
1272
+ if (tag === DATE_TAG) {
1273
+ return areDatesEqual2(a, b, state);
1274
+ }
1275
+ if (tag === REG_EXP_TAG) {
1276
+ return areRegExpsEqual2(a, b, state);
1277
+ }
1278
+ if (tag === MAP_TAG) {
1279
+ return areMapsEqual2(a, b, state);
1280
+ }
1281
+ if (tag === SET_TAG) {
1282
+ return areSetsEqual2(a, b, state);
1283
+ }
1284
+ if (tag === OBJECT_TAG) {
1285
+ return typeof a.then !== "function" && typeof b.then !== "function" && areObjectsEqual2(a, b, state);
1286
+ }
1287
+ if (tag === URL_TAG) {
1288
+ return areUrlsEqual2(a, b, state);
1289
+ }
1290
+ if (tag === ERROR_TAG) {
1291
+ return areErrorsEqual2(a, b, state);
1292
+ }
1293
+ if (tag === ARGUMENTS_TAG) {
1294
+ return areObjectsEqual2(a, b, state);
1295
+ }
1296
+ if (tag === BOOLEAN_TAG || tag === NUMBER_TAG || tag === STRING_TAG) {
1297
+ return arePrimitiveWrappersEqual2(a, b, state);
1298
+ }
1299
+ return false;
1300
+ };
1301
+ }
1302
+ function createEqualityComparatorConfig(_a) {
1303
+ var circular = _a.circular, createCustomConfig = _a.createCustomConfig, strict = _a.strict;
1304
+ var config = {
1305
+ areArraysEqual: strict ? areObjectsEqualStrict : areArraysEqual,
1306
+ areDatesEqual,
1307
+ areErrorsEqual,
1308
+ areFunctionsEqual,
1309
+ areMapsEqual: strict ? combineComparators(areMapsEqual, areObjectsEqualStrict) : areMapsEqual,
1310
+ areNumbersEqual,
1311
+ areObjectsEqual: strict ? areObjectsEqualStrict : areObjectsEqual,
1312
+ arePrimitiveWrappersEqual,
1313
+ areRegExpsEqual,
1314
+ areSetsEqual: strict ? combineComparators(areSetsEqual, areObjectsEqualStrict) : areSetsEqual,
1315
+ areTypedArraysEqual: strict ? areObjectsEqualStrict : areTypedArraysEqual,
1316
+ areUrlsEqual
1317
+ };
1318
+ if (createCustomConfig) {
1319
+ config = assign({}, config, createCustomConfig(config));
1320
+ }
1321
+ if (circular) {
1322
+ var areArraysEqual$1 = createIsCircular(config.areArraysEqual);
1323
+ var areMapsEqual$1 = createIsCircular(config.areMapsEqual);
1324
+ var areObjectsEqual$1 = createIsCircular(config.areObjectsEqual);
1325
+ var areSetsEqual$1 = createIsCircular(config.areSetsEqual);
1326
+ config = assign({}, config, {
1327
+ areArraysEqual: areArraysEqual$1,
1328
+ areMapsEqual: areMapsEqual$1,
1329
+ areObjectsEqual: areObjectsEqual$1,
1330
+ areSetsEqual: areSetsEqual$1
1331
+ });
1332
+ }
1333
+ return config;
1334
+ }
1335
+ function createInternalEqualityComparator(compare) {
1336
+ return function(a, b, _indexOrKeyA, _indexOrKeyB, _parentA, _parentB, state) {
1337
+ return compare(a, b, state);
1338
+ };
1339
+ }
1340
+ function createIsEqual(_a) {
1341
+ var circular = _a.circular, comparator = _a.comparator, createState = _a.createState, equals = _a.equals, strict = _a.strict;
1342
+ if (createState) {
1343
+ return function isEqual(a, b) {
1344
+ var _a2 = createState(), _b = _a2.cache, cache = _b === void 0 ? circular ? /* @__PURE__ */ new WeakMap() : void 0 : _b, meta = _a2.meta;
1345
+ return comparator(a, b, {
1346
+ cache,
1347
+ equals,
1348
+ meta,
1349
+ strict
1350
+ });
1351
+ };
1352
+ }
1353
+ if (circular) {
1354
+ return function isEqual(a, b) {
1355
+ return comparator(a, b, {
1356
+ cache: /* @__PURE__ */ new WeakMap(),
1357
+ equals,
1358
+ meta: void 0,
1359
+ strict
1360
+ });
1361
+ };
1362
+ }
1363
+ var state = {
1364
+ cache: void 0,
1365
+ equals,
1366
+ meta: void 0,
1367
+ strict
1368
+ };
1369
+ return function isEqual(a, b) {
1370
+ return comparator(a, b, state);
1371
+ };
1372
+ }
1373
+ var deepEqual = createCustomEqual();
1374
+ createCustomEqual({ strict: true });
1375
+ createCustomEqual({ circular: true });
1376
+ createCustomEqual({
1377
+ circular: true,
1378
+ strict: true
1379
+ });
1380
+ createCustomEqual({
1381
+ createInternalComparator: function() {
1382
+ return sameValueZeroEqual;
1383
+ }
1384
+ });
1385
+ createCustomEqual({
1386
+ strict: true,
1387
+ createInternalComparator: function() {
1388
+ return sameValueZeroEqual;
1389
+ }
1390
+ });
1391
+ createCustomEqual({
1392
+ circular: true,
1393
+ createInternalComparator: function() {
1394
+ return sameValueZeroEqual;
1395
+ }
1396
+ });
1397
+ createCustomEqual({
1398
+ circular: true,
1399
+ createInternalComparator: function() {
1400
+ return sameValueZeroEqual;
1401
+ },
1402
+ strict: true
1403
+ });
1404
+ function createCustomEqual(options) {
1405
+ if (options === void 0) {
1406
+ options = {};
1407
+ }
1408
+ var _a = options.circular, circular = _a === void 0 ? false : _a, createCustomInternalComparator = options.createInternalComparator, createState = options.createState, _b = options.strict, strict = _b === void 0 ? false : _b;
1409
+ var config = createEqualityComparatorConfig(options);
1410
+ var comparator = createEqualityComparator(config);
1411
+ var equals = createCustomInternalComparator ? createCustomInternalComparator(comparator) : createInternalEqualityComparator(comparator);
1412
+ return createIsEqual({ circular, comparator, createState, equals, strict });
1413
+ }
1414
+ const useMeasureHook = useMeasure.default ?? useMeasure;
1415
+ const DEFAULT_THROTTLE_TIME = 16;
1416
+ const useThrottledMeasure = (throttleDuration = DEFAULT_THROTTLE_TIME) => {
1417
+ const hasInitialMeasure = useRef(false);
1418
+ const [ref, measuredRect] = useMeasureHook();
1419
+ const [rect, setRect] = useState(() => {
1420
+ return { x: 0, y: 0, width: 0, height: 0, top: 0, left: 0, bottom: 0, right: 0 };
1421
+ });
1422
+ const throttledSetRect = useCallback(
1423
+ _throttle(
1424
+ (newRect) => {
1425
+ setRect((current) => {
1426
+ return deepEqual(current, newRect) ? current : newRect;
1427
+ });
1428
+ },
1429
+ throttleDuration,
1430
+ { leading: true, trailing: true }
1431
+ ),
1432
+ [throttleDuration]
1433
+ );
1434
+ useEffect(() => {
1435
+ if (measuredRect.width > 0 && !hasInitialMeasure.current) {
1436
+ hasInitialMeasure.current = true;
1437
+ setRect((current) => {
1438
+ return deepEqual(current, measuredRect) ? current : measuredRect;
1439
+ });
1440
+ return;
1441
+ }
1442
+ throttledSetRect(measuredRect);
1443
+ return () => {
1444
+ throttledSetRect.cancel();
1445
+ };
1446
+ }, [measuredRect, throttledSetRect]);
1447
+ return [ref, rect];
1448
+ };
1449
+ const emptyUnsubscribe = () => {
1450
+ };
1451
+ const useMediaQuery = (query) => {
1452
+ const isServer = typeof window === "undefined";
1453
+ const subscribe = (callback) => {
1454
+ if (isServer) return emptyUnsubscribe;
1455
+ const mql = window.matchMedia(query);
1456
+ if (mql.addEventListener) {
1457
+ mql.addEventListener("change", callback);
1458
+ return () => mql.removeEventListener("change", callback);
1459
+ }
1460
+ mql.addListener(callback);
1461
+ return () => mql.removeListener(callback);
1462
+ };
1463
+ const getSnapshot = () => {
1464
+ if (isServer) return false;
1465
+ return window.matchMedia(query).matches;
1466
+ };
1467
+ return useSyncExternalStore(subscribe, getSnapshot, () => false);
1468
+ };
1469
+ export {
1470
+ RootProvider,
1471
+ apiClient,
1472
+ getFeatureFlag,
1473
+ initApiClient,
1474
+ initWithRoutes,
1475
+ useMediaQuery,
1476
+ useThrottledMeasure
1477
+ };