pelatform-ui 1.2.6 → 1.2.9

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 (2) hide show
  1. package/dist/components.js +93 -2095
  2. package/package.json +6 -12
@@ -136,13 +136,13 @@ import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
136
136
  function ScreenLoader({
137
137
  loadingText = "Loading...",
138
138
  className = "",
139
- spinnerClassName = "size-6",
139
+ spinnerClassName,
140
140
  textClassName = "text-muted-foreground font-medium text-sm",
141
141
  contentLoader = false
142
142
  } = {}) {
143
143
  if (contentLoader) {
144
144
  return /* @__PURE__ */ jsx3("div", { className: cn("flex w-full grow items-center justify-center", className), children: /* @__PURE__ */ jsxs3("div", { className: "flex items-center gap-2.5", children: [
145
- /* @__PURE__ */ jsx3(LoaderIcon, { className: cn("animate-spin", spinnerClassName) }),
145
+ /* @__PURE__ */ jsx3(LoaderIcon, { className: cn("size-6 animate-spin", spinnerClassName) }),
146
146
  /* @__PURE__ */ jsx3("span", { className: textClassName, children: loadingText })
147
147
  ] }) });
148
148
  }
@@ -157,7 +157,7 @@ function ScreenLoader({
157
157
  "aria-live": "polite",
158
158
  "aria-label": loadingText,
159
159
  children: [
160
- /* @__PURE__ */ jsx3(LoaderIcon, { className: cn("animate-spin", spinnerClassName) }),
160
+ /* @__PURE__ */ jsx3(LoaderIcon, { className: cn("size-6 animate-spin", spinnerClassName) }),
161
161
  /* @__PURE__ */ jsx3("div", { className: textClassName, children: loadingText })
162
162
  ]
163
163
  }
@@ -911,2013 +911,11 @@ function MobileNavItemRenderer({
911
911
 
912
912
  // src/components/providers/query-provider.tsx
913
913
  import { useState as useState3 } from "react";
914
-
915
- // ../../node_modules/.bun/@tanstack+query-core@5.90.20/node_modules/@tanstack/query-core/build/modern/subscribable.js
916
- var Subscribable = class {
917
- constructor() {
918
- this.listeners = /* @__PURE__ */ new Set();
919
- this.subscribe = this.subscribe.bind(this);
920
- }
921
- subscribe(listener) {
922
- this.listeners.add(listener);
923
- this.onSubscribe();
924
- return () => {
925
- this.listeners.delete(listener);
926
- this.onUnsubscribe();
927
- };
928
- }
929
- hasListeners() {
930
- return this.listeners.size > 0;
931
- }
932
- onSubscribe() {
933
- }
934
- onUnsubscribe() {
935
- }
936
- };
937
-
938
- // ../../node_modules/.bun/@tanstack+query-core@5.90.20/node_modules/@tanstack/query-core/build/modern/timeoutManager.js
939
- var defaultTimeoutProvider = {
940
- // We need the wrapper function syntax below instead of direct references to
941
- // global setTimeout etc.
942
- //
943
- // BAD: `setTimeout: setTimeout`
944
- // GOOD: `setTimeout: (cb, delay) => setTimeout(cb, delay)`
945
- //
946
- // If we use direct references here, then anything that wants to spy on or
947
- // replace the global setTimeout (like tests) won't work since we'll already
948
- // have a hard reference to the original implementation at the time when this
949
- // file was imported.
950
- setTimeout: (callback, delay) => setTimeout(callback, delay),
951
- clearTimeout: (timeoutId) => clearTimeout(timeoutId),
952
- setInterval: (callback, delay) => setInterval(callback, delay),
953
- clearInterval: (intervalId) => clearInterval(intervalId)
954
- };
955
- var TimeoutManager = class {
956
- // We cannot have TimeoutManager<T> as we must instantiate it with a concrete
957
- // type at app boot; and if we leave that type, then any new timer provider
958
- // would need to support ReturnType<typeof setTimeout>, which is infeasible.
959
- //
960
- // We settle for type safety for the TimeoutProvider type, and accept that
961
- // this class is unsafe internally to allow for extension.
962
- #provider = defaultTimeoutProvider;
963
- #providerCalled = false;
964
- setTimeoutProvider(provider) {
965
- if (process.env.NODE_ENV !== "production") {
966
- if (this.#providerCalled && provider !== this.#provider) {
967
- console.error(
968
- `[timeoutManager]: Switching provider after calls to previous provider might result in unexpected behavior.`,
969
- { previous: this.#provider, provider }
970
- );
971
- }
972
- }
973
- this.#provider = provider;
974
- if (process.env.NODE_ENV !== "production") {
975
- this.#providerCalled = false;
976
- }
977
- }
978
- setTimeout(callback, delay) {
979
- if (process.env.NODE_ENV !== "production") {
980
- this.#providerCalled = true;
981
- }
982
- return this.#provider.setTimeout(callback, delay);
983
- }
984
- clearTimeout(timeoutId) {
985
- this.#provider.clearTimeout(timeoutId);
986
- }
987
- setInterval(callback, delay) {
988
- if (process.env.NODE_ENV !== "production") {
989
- this.#providerCalled = true;
990
- }
991
- return this.#provider.setInterval(callback, delay);
992
- }
993
- clearInterval(intervalId) {
994
- this.#provider.clearInterval(intervalId);
995
- }
996
- };
997
- var timeoutManager = new TimeoutManager();
998
- function systemSetTimeoutZero(callback) {
999
- setTimeout(callback, 0);
1000
- }
1001
-
1002
- // ../../node_modules/.bun/@tanstack+query-core@5.90.20/node_modules/@tanstack/query-core/build/modern/utils.js
1003
- var isServer = typeof window === "undefined" || "Deno" in globalThis;
1004
- function noop() {
1005
- }
1006
- function functionalUpdate(updater, input) {
1007
- return typeof updater === "function" ? updater(input) : updater;
1008
- }
1009
- function isValidTimeout(value) {
1010
- return typeof value === "number" && value >= 0 && value !== Infinity;
1011
- }
1012
- function timeUntilStale(updatedAt, staleTime) {
1013
- return Math.max(updatedAt + (staleTime || 0) - Date.now(), 0);
1014
- }
1015
- function resolveStaleTime(staleTime, query) {
1016
- return typeof staleTime === "function" ? staleTime(query) : staleTime;
1017
- }
1018
- function resolveEnabled(enabled, query) {
1019
- return typeof enabled === "function" ? enabled(query) : enabled;
1020
- }
1021
- function matchQuery(filters, query) {
1022
- const {
1023
- type = "all",
1024
- exact,
1025
- fetchStatus,
1026
- predicate,
1027
- queryKey,
1028
- stale
1029
- } = filters;
1030
- if (queryKey) {
1031
- if (exact) {
1032
- if (query.queryHash !== hashQueryKeyByOptions(queryKey, query.options)) {
1033
- return false;
1034
- }
1035
- } else if (!partialMatchKey(query.queryKey, queryKey)) {
1036
- return false;
1037
- }
1038
- }
1039
- if (type !== "all") {
1040
- const isActive = query.isActive();
1041
- if (type === "active" && !isActive) {
1042
- return false;
1043
- }
1044
- if (type === "inactive" && isActive) {
1045
- return false;
1046
- }
1047
- }
1048
- if (typeof stale === "boolean" && query.isStale() !== stale) {
1049
- return false;
1050
- }
1051
- if (fetchStatus && fetchStatus !== query.state.fetchStatus) {
1052
- return false;
1053
- }
1054
- if (predicate && !predicate(query)) {
1055
- return false;
1056
- }
1057
- return true;
1058
- }
1059
- function matchMutation(filters, mutation) {
1060
- const { exact, status, predicate, mutationKey } = filters;
1061
- if (mutationKey) {
1062
- if (!mutation.options.mutationKey) {
1063
- return false;
1064
- }
1065
- if (exact) {
1066
- if (hashKey(mutation.options.mutationKey) !== hashKey(mutationKey)) {
1067
- return false;
1068
- }
1069
- } else if (!partialMatchKey(mutation.options.mutationKey, mutationKey)) {
1070
- return false;
1071
- }
1072
- }
1073
- if (status && mutation.state.status !== status) {
1074
- return false;
1075
- }
1076
- if (predicate && !predicate(mutation)) {
1077
- return false;
1078
- }
1079
- return true;
1080
- }
1081
- function hashQueryKeyByOptions(queryKey, options) {
1082
- const hashFn = options?.queryKeyHashFn || hashKey;
1083
- return hashFn(queryKey);
1084
- }
1085
- function hashKey(queryKey) {
1086
- return JSON.stringify(
1087
- queryKey,
1088
- (_, val) => isPlainObject(val) ? Object.keys(val).sort().reduce((result, key) => {
1089
- result[key] = val[key];
1090
- return result;
1091
- }, {}) : val
1092
- );
1093
- }
1094
- function partialMatchKey(a, b) {
1095
- if (a === b) {
1096
- return true;
1097
- }
1098
- if (typeof a !== typeof b) {
1099
- return false;
1100
- }
1101
- if (a && b && typeof a === "object" && typeof b === "object") {
1102
- return Object.keys(b).every((key) => partialMatchKey(a[key], b[key]));
1103
- }
1104
- return false;
1105
- }
1106
- var hasOwn = Object.prototype.hasOwnProperty;
1107
- function replaceEqualDeep(a, b, depth = 0) {
1108
- if (a === b) {
1109
- return a;
1110
- }
1111
- if (depth > 500) return b;
1112
- const array = isPlainArray(a) && isPlainArray(b);
1113
- if (!array && !(isPlainObject(a) && isPlainObject(b))) return b;
1114
- const aItems = array ? a : Object.keys(a);
1115
- const aSize = aItems.length;
1116
- const bItems = array ? b : Object.keys(b);
1117
- const bSize = bItems.length;
1118
- const copy = array ? new Array(bSize) : {};
1119
- let equalItems = 0;
1120
- for (let i = 0; i < bSize; i++) {
1121
- const key = array ? i : bItems[i];
1122
- const aItem = a[key];
1123
- const bItem = b[key];
1124
- if (aItem === bItem) {
1125
- copy[key] = aItem;
1126
- if (array ? i < aSize : hasOwn.call(a, key)) equalItems++;
1127
- continue;
1128
- }
1129
- if (aItem === null || bItem === null || typeof aItem !== "object" || typeof bItem !== "object") {
1130
- copy[key] = bItem;
1131
- continue;
1132
- }
1133
- const v = replaceEqualDeep(aItem, bItem, depth + 1);
1134
- copy[key] = v;
1135
- if (v === aItem) equalItems++;
1136
- }
1137
- return aSize === bSize && equalItems === aSize ? a : copy;
1138
- }
1139
- function isPlainArray(value) {
1140
- return Array.isArray(value) && value.length === Object.keys(value).length;
1141
- }
1142
- function isPlainObject(o) {
1143
- if (!hasObjectPrototype(o)) {
1144
- return false;
1145
- }
1146
- const ctor = o.constructor;
1147
- if (ctor === void 0) {
1148
- return true;
1149
- }
1150
- const prot = ctor.prototype;
1151
- if (!hasObjectPrototype(prot)) {
1152
- return false;
1153
- }
1154
- if (!prot.hasOwnProperty("isPrototypeOf")) {
1155
- return false;
1156
- }
1157
- if (Object.getPrototypeOf(o) !== Object.prototype) {
1158
- return false;
1159
- }
1160
- return true;
1161
- }
1162
- function hasObjectPrototype(o) {
1163
- return Object.prototype.toString.call(o) === "[object Object]";
1164
- }
1165
- function sleep(timeout) {
1166
- return new Promise((resolve) => {
1167
- timeoutManager.setTimeout(resolve, timeout);
1168
- });
1169
- }
1170
- function replaceData(prevData, data, options) {
1171
- if (typeof options.structuralSharing === "function") {
1172
- return options.structuralSharing(prevData, data);
1173
- } else if (options.structuralSharing !== false) {
1174
- if (process.env.NODE_ENV !== "production") {
1175
- try {
1176
- return replaceEqualDeep(prevData, data);
1177
- } catch (error) {
1178
- console.error(
1179
- `Structural sharing requires data to be JSON serializable. To fix this, turn off structuralSharing or return JSON-serializable data from your queryFn. [${options.queryHash}]: ${error}`
1180
- );
1181
- throw error;
1182
- }
1183
- }
1184
- return replaceEqualDeep(prevData, data);
1185
- }
1186
- return data;
1187
- }
1188
- function addToEnd(items, item, max = 0) {
1189
- const newItems = [...items, item];
1190
- return max && newItems.length > max ? newItems.slice(1) : newItems;
1191
- }
1192
- function addToStart(items, item, max = 0) {
1193
- const newItems = [item, ...items];
1194
- return max && newItems.length > max ? newItems.slice(0, -1) : newItems;
1195
- }
1196
- var skipToken = /* @__PURE__ */ Symbol();
1197
- function ensureQueryFn(options, fetchOptions) {
1198
- if (process.env.NODE_ENV !== "production") {
1199
- if (options.queryFn === skipToken) {
1200
- console.error(
1201
- `Attempted to invoke queryFn when set to skipToken. This is likely a configuration error. Query hash: '${options.queryHash}'`
1202
- );
1203
- }
1204
- }
1205
- if (!options.queryFn && fetchOptions?.initialPromise) {
1206
- return () => fetchOptions.initialPromise;
1207
- }
1208
- if (!options.queryFn || options.queryFn === skipToken) {
1209
- return () => Promise.reject(new Error(`Missing queryFn: '${options.queryHash}'`));
1210
- }
1211
- return options.queryFn;
1212
- }
1213
- function addConsumeAwareSignal(object, getSignal, onCancelled) {
1214
- let consumed = false;
1215
- let signal;
1216
- Object.defineProperty(object, "signal", {
1217
- enumerable: true,
1218
- get: () => {
1219
- signal ??= getSignal();
1220
- if (consumed) {
1221
- return signal;
1222
- }
1223
- consumed = true;
1224
- if (signal.aborted) {
1225
- onCancelled();
1226
- } else {
1227
- signal.addEventListener("abort", onCancelled, { once: true });
1228
- }
1229
- return signal;
1230
- }
1231
- });
1232
- return object;
1233
- }
1234
-
1235
- // ../../node_modules/.bun/@tanstack+query-core@5.90.20/node_modules/@tanstack/query-core/build/modern/focusManager.js
1236
- var FocusManager = class extends Subscribable {
1237
- #focused;
1238
- #cleanup;
1239
- #setup;
1240
- constructor() {
1241
- super();
1242
- this.#setup = (onFocus) => {
1243
- if (!isServer && window.addEventListener) {
1244
- const listener = () => onFocus();
1245
- window.addEventListener("visibilitychange", listener, false);
1246
- return () => {
1247
- window.removeEventListener("visibilitychange", listener);
1248
- };
1249
- }
1250
- return;
1251
- };
1252
- }
1253
- onSubscribe() {
1254
- if (!this.#cleanup) {
1255
- this.setEventListener(this.#setup);
1256
- }
1257
- }
1258
- onUnsubscribe() {
1259
- if (!this.hasListeners()) {
1260
- this.#cleanup?.();
1261
- this.#cleanup = void 0;
1262
- }
1263
- }
1264
- setEventListener(setup) {
1265
- this.#setup = setup;
1266
- this.#cleanup?.();
1267
- this.#cleanup = setup((focused) => {
1268
- if (typeof focused === "boolean") {
1269
- this.setFocused(focused);
1270
- } else {
1271
- this.onFocus();
1272
- }
1273
- });
1274
- }
1275
- setFocused(focused) {
1276
- const changed = this.#focused !== focused;
1277
- if (changed) {
1278
- this.#focused = focused;
1279
- this.onFocus();
1280
- }
1281
- }
1282
- onFocus() {
1283
- const isFocused = this.isFocused();
1284
- this.listeners.forEach((listener) => {
1285
- listener(isFocused);
1286
- });
1287
- }
1288
- isFocused() {
1289
- if (typeof this.#focused === "boolean") {
1290
- return this.#focused;
1291
- }
1292
- return globalThis.document?.visibilityState !== "hidden";
1293
- }
1294
- };
1295
- var focusManager = new FocusManager();
1296
-
1297
- // ../../node_modules/.bun/@tanstack+query-core@5.90.20/node_modules/@tanstack/query-core/build/modern/thenable.js
1298
- function pendingThenable() {
1299
- let resolve;
1300
- let reject;
1301
- const thenable = new Promise((_resolve, _reject) => {
1302
- resolve = _resolve;
1303
- reject = _reject;
1304
- });
1305
- thenable.status = "pending";
1306
- thenable.catch(() => {
1307
- });
1308
- function finalize(data) {
1309
- Object.assign(thenable, data);
1310
- delete thenable.resolve;
1311
- delete thenable.reject;
1312
- }
1313
- thenable.resolve = (value) => {
1314
- finalize({
1315
- status: "fulfilled",
1316
- value
1317
- });
1318
- resolve(value);
1319
- };
1320
- thenable.reject = (reason) => {
1321
- finalize({
1322
- status: "rejected",
1323
- reason
1324
- });
1325
- reject(reason);
1326
- };
1327
- return thenable;
1328
- }
1329
-
1330
- // ../../node_modules/.bun/@tanstack+query-core@5.90.20/node_modules/@tanstack/query-core/build/modern/notifyManager.js
1331
- var defaultScheduler = systemSetTimeoutZero;
1332
- function createNotifyManager() {
1333
- let queue = [];
1334
- let transactions = 0;
1335
- let notifyFn = (callback) => {
1336
- callback();
1337
- };
1338
- let batchNotifyFn = (callback) => {
1339
- callback();
1340
- };
1341
- let scheduleFn = defaultScheduler;
1342
- const schedule = (callback) => {
1343
- if (transactions) {
1344
- queue.push(callback);
1345
- } else {
1346
- scheduleFn(() => {
1347
- notifyFn(callback);
1348
- });
1349
- }
1350
- };
1351
- const flush = () => {
1352
- const originalQueue = queue;
1353
- queue = [];
1354
- if (originalQueue.length) {
1355
- scheduleFn(() => {
1356
- batchNotifyFn(() => {
1357
- originalQueue.forEach((callback) => {
1358
- notifyFn(callback);
1359
- });
1360
- });
1361
- });
1362
- }
1363
- };
1364
- return {
1365
- batch: (callback) => {
1366
- let result;
1367
- transactions++;
1368
- try {
1369
- result = callback();
1370
- } finally {
1371
- transactions--;
1372
- if (!transactions) {
1373
- flush();
1374
- }
1375
- }
1376
- return result;
1377
- },
1378
- /**
1379
- * All calls to the wrapped function will be batched.
1380
- */
1381
- batchCalls: (callback) => {
1382
- return (...args) => {
1383
- schedule(() => {
1384
- callback(...args);
1385
- });
1386
- };
1387
- },
1388
- schedule,
1389
- /**
1390
- * Use this method to set a custom notify function.
1391
- * This can be used to for example wrap notifications with `React.act` while running tests.
1392
- */
1393
- setNotifyFunction: (fn) => {
1394
- notifyFn = fn;
1395
- },
1396
- /**
1397
- * Use this method to set a custom function to batch notifications together into a single tick.
1398
- * By default React Query will use the batch function provided by ReactDOM or React Native.
1399
- */
1400
- setBatchNotifyFunction: (fn) => {
1401
- batchNotifyFn = fn;
1402
- },
1403
- setScheduler: (fn) => {
1404
- scheduleFn = fn;
1405
- }
1406
- };
1407
- }
1408
- var notifyManager = createNotifyManager();
1409
-
1410
- // ../../node_modules/.bun/@tanstack+query-core@5.90.20/node_modules/@tanstack/query-core/build/modern/onlineManager.js
1411
- var OnlineManager = class extends Subscribable {
1412
- #online = true;
1413
- #cleanup;
1414
- #setup;
1415
- constructor() {
1416
- super();
1417
- this.#setup = (onOnline) => {
1418
- if (!isServer && window.addEventListener) {
1419
- const onlineListener = () => onOnline(true);
1420
- const offlineListener = () => onOnline(false);
1421
- window.addEventListener("online", onlineListener, false);
1422
- window.addEventListener("offline", offlineListener, false);
1423
- return () => {
1424
- window.removeEventListener("online", onlineListener);
1425
- window.removeEventListener("offline", offlineListener);
1426
- };
1427
- }
1428
- return;
1429
- };
1430
- }
1431
- onSubscribe() {
1432
- if (!this.#cleanup) {
1433
- this.setEventListener(this.#setup);
1434
- }
1435
- }
1436
- onUnsubscribe() {
1437
- if (!this.hasListeners()) {
1438
- this.#cleanup?.();
1439
- this.#cleanup = void 0;
1440
- }
1441
- }
1442
- setEventListener(setup) {
1443
- this.#setup = setup;
1444
- this.#cleanup?.();
1445
- this.#cleanup = setup(this.setOnline.bind(this));
1446
- }
1447
- setOnline(online) {
1448
- const changed = this.#online !== online;
1449
- if (changed) {
1450
- this.#online = online;
1451
- this.listeners.forEach((listener) => {
1452
- listener(online);
1453
- });
1454
- }
1455
- }
1456
- isOnline() {
1457
- return this.#online;
1458
- }
1459
- };
1460
- var onlineManager = new OnlineManager();
1461
-
1462
- // ../../node_modules/.bun/@tanstack+query-core@5.90.20/node_modules/@tanstack/query-core/build/modern/retryer.js
1463
- function defaultRetryDelay(failureCount) {
1464
- return Math.min(1e3 * 2 ** failureCount, 3e4);
1465
- }
1466
- function canFetch(networkMode) {
1467
- return (networkMode ?? "online") === "online" ? onlineManager.isOnline() : true;
1468
- }
1469
- var CancelledError = class extends Error {
1470
- constructor(options) {
1471
- super("CancelledError");
1472
- this.revert = options?.revert;
1473
- this.silent = options?.silent;
1474
- }
1475
- };
1476
- function createRetryer(config) {
1477
- let isRetryCancelled = false;
1478
- let failureCount = 0;
1479
- let continueFn;
1480
- const thenable = pendingThenable();
1481
- const isResolved = () => thenable.status !== "pending";
1482
- const cancel = (cancelOptions) => {
1483
- if (!isResolved()) {
1484
- const error = new CancelledError(cancelOptions);
1485
- reject(error);
1486
- config.onCancel?.(error);
1487
- }
1488
- };
1489
- const cancelRetry = () => {
1490
- isRetryCancelled = true;
1491
- };
1492
- const continueRetry = () => {
1493
- isRetryCancelled = false;
1494
- };
1495
- const canContinue = () => focusManager.isFocused() && (config.networkMode === "always" || onlineManager.isOnline()) && config.canRun();
1496
- const canStart = () => canFetch(config.networkMode) && config.canRun();
1497
- const resolve = (value) => {
1498
- if (!isResolved()) {
1499
- continueFn?.();
1500
- thenable.resolve(value);
1501
- }
1502
- };
1503
- const reject = (value) => {
1504
- if (!isResolved()) {
1505
- continueFn?.();
1506
- thenable.reject(value);
1507
- }
1508
- };
1509
- const pause = () => {
1510
- return new Promise((continueResolve) => {
1511
- continueFn = (value) => {
1512
- if (isResolved() || canContinue()) {
1513
- continueResolve(value);
1514
- }
1515
- };
1516
- config.onPause?.();
1517
- }).then(() => {
1518
- continueFn = void 0;
1519
- if (!isResolved()) {
1520
- config.onContinue?.();
1521
- }
1522
- });
1523
- };
1524
- const run = () => {
1525
- if (isResolved()) {
1526
- return;
1527
- }
1528
- let promiseOrValue;
1529
- const initialPromise = failureCount === 0 ? config.initialPromise : void 0;
1530
- try {
1531
- promiseOrValue = initialPromise ?? config.fn();
1532
- } catch (error) {
1533
- promiseOrValue = Promise.reject(error);
1534
- }
1535
- Promise.resolve(promiseOrValue).then(resolve).catch((error) => {
1536
- if (isResolved()) {
1537
- return;
1538
- }
1539
- const retry = config.retry ?? (isServer ? 0 : 3);
1540
- const retryDelay = config.retryDelay ?? defaultRetryDelay;
1541
- const delay = typeof retryDelay === "function" ? retryDelay(failureCount, error) : retryDelay;
1542
- const shouldRetry = retry === true || typeof retry === "number" && failureCount < retry || typeof retry === "function" && retry(failureCount, error);
1543
- if (isRetryCancelled || !shouldRetry) {
1544
- reject(error);
1545
- return;
1546
- }
1547
- failureCount++;
1548
- config.onFail?.(failureCount, error);
1549
- sleep(delay).then(() => {
1550
- return canContinue() ? void 0 : pause();
1551
- }).then(() => {
1552
- if (isRetryCancelled) {
1553
- reject(error);
1554
- } else {
1555
- run();
1556
- }
1557
- });
1558
- });
1559
- };
1560
- return {
1561
- promise: thenable,
1562
- status: () => thenable.status,
1563
- cancel,
1564
- continue: () => {
1565
- continueFn?.();
1566
- return thenable;
1567
- },
1568
- cancelRetry,
1569
- continueRetry,
1570
- canStart,
1571
- start: () => {
1572
- if (canStart()) {
1573
- run();
1574
- } else {
1575
- pause().then(run);
1576
- }
1577
- return thenable;
1578
- }
1579
- };
1580
- }
1581
-
1582
- // ../../node_modules/.bun/@tanstack+query-core@5.90.20/node_modules/@tanstack/query-core/build/modern/removable.js
1583
- var Removable = class {
1584
- #gcTimeout;
1585
- destroy() {
1586
- this.clearGcTimeout();
1587
- }
1588
- scheduleGc() {
1589
- this.clearGcTimeout();
1590
- if (isValidTimeout(this.gcTime)) {
1591
- this.#gcTimeout = timeoutManager.setTimeout(() => {
1592
- this.optionalRemove();
1593
- }, this.gcTime);
1594
- }
1595
- }
1596
- updateGcTime(newGcTime) {
1597
- this.gcTime = Math.max(
1598
- this.gcTime || 0,
1599
- newGcTime ?? (isServer ? Infinity : 5 * 60 * 1e3)
1600
- );
1601
- }
1602
- clearGcTimeout() {
1603
- if (this.#gcTimeout) {
1604
- timeoutManager.clearTimeout(this.#gcTimeout);
1605
- this.#gcTimeout = void 0;
1606
- }
1607
- }
1608
- };
1609
-
1610
- // ../../node_modules/.bun/@tanstack+query-core@5.90.20/node_modules/@tanstack/query-core/build/modern/query.js
1611
- var Query = class extends Removable {
1612
- #initialState;
1613
- #revertState;
1614
- #cache;
1615
- #client;
1616
- #retryer;
1617
- #defaultOptions;
1618
- #abortSignalConsumed;
1619
- constructor(config) {
1620
- super();
1621
- this.#abortSignalConsumed = false;
1622
- this.#defaultOptions = config.defaultOptions;
1623
- this.setOptions(config.options);
1624
- this.observers = [];
1625
- this.#client = config.client;
1626
- this.#cache = this.#client.getQueryCache();
1627
- this.queryKey = config.queryKey;
1628
- this.queryHash = config.queryHash;
1629
- this.#initialState = getDefaultState(this.options);
1630
- this.state = config.state ?? this.#initialState;
1631
- this.scheduleGc();
1632
- }
1633
- get meta() {
1634
- return this.options.meta;
1635
- }
1636
- get promise() {
1637
- return this.#retryer?.promise;
1638
- }
1639
- setOptions(options) {
1640
- this.options = { ...this.#defaultOptions, ...options };
1641
- this.updateGcTime(this.options.gcTime);
1642
- if (this.state && this.state.data === void 0) {
1643
- const defaultState = getDefaultState(this.options);
1644
- if (defaultState.data !== void 0) {
1645
- this.setState(
1646
- successState(defaultState.data, defaultState.dataUpdatedAt)
1647
- );
1648
- this.#initialState = defaultState;
1649
- }
1650
- }
1651
- }
1652
- optionalRemove() {
1653
- if (!this.observers.length && this.state.fetchStatus === "idle") {
1654
- this.#cache.remove(this);
1655
- }
1656
- }
1657
- setData(newData, options) {
1658
- const data = replaceData(this.state.data, newData, this.options);
1659
- this.#dispatch({
1660
- data,
1661
- type: "success",
1662
- dataUpdatedAt: options?.updatedAt,
1663
- manual: options?.manual
1664
- });
1665
- return data;
1666
- }
1667
- setState(state, setStateOptions) {
1668
- this.#dispatch({ type: "setState", state, setStateOptions });
1669
- }
1670
- cancel(options) {
1671
- const promise = this.#retryer?.promise;
1672
- this.#retryer?.cancel(options);
1673
- return promise ? promise.then(noop).catch(noop) : Promise.resolve();
1674
- }
1675
- destroy() {
1676
- super.destroy();
1677
- this.cancel({ silent: true });
1678
- }
1679
- reset() {
1680
- this.destroy();
1681
- this.setState(this.#initialState);
1682
- }
1683
- isActive() {
1684
- return this.observers.some(
1685
- (observer) => resolveEnabled(observer.options.enabled, this) !== false
1686
- );
1687
- }
1688
- isDisabled() {
1689
- if (this.getObserversCount() > 0) {
1690
- return !this.isActive();
1691
- }
1692
- return this.options.queryFn === skipToken || this.state.dataUpdateCount + this.state.errorUpdateCount === 0;
1693
- }
1694
- isStatic() {
1695
- if (this.getObserversCount() > 0) {
1696
- return this.observers.some(
1697
- (observer) => resolveStaleTime(observer.options.staleTime, this) === "static"
1698
- );
1699
- }
1700
- return false;
1701
- }
1702
- isStale() {
1703
- if (this.getObserversCount() > 0) {
1704
- return this.observers.some(
1705
- (observer) => observer.getCurrentResult().isStale
1706
- );
1707
- }
1708
- return this.state.data === void 0 || this.state.isInvalidated;
1709
- }
1710
- isStaleByTime(staleTime = 0) {
1711
- if (this.state.data === void 0) {
1712
- return true;
1713
- }
1714
- if (staleTime === "static") {
1715
- return false;
1716
- }
1717
- if (this.state.isInvalidated) {
1718
- return true;
1719
- }
1720
- return !timeUntilStale(this.state.dataUpdatedAt, staleTime);
1721
- }
1722
- onFocus() {
1723
- const observer = this.observers.find((x) => x.shouldFetchOnWindowFocus());
1724
- observer?.refetch({ cancelRefetch: false });
1725
- this.#retryer?.continue();
1726
- }
1727
- onOnline() {
1728
- const observer = this.observers.find((x) => x.shouldFetchOnReconnect());
1729
- observer?.refetch({ cancelRefetch: false });
1730
- this.#retryer?.continue();
1731
- }
1732
- addObserver(observer) {
1733
- if (!this.observers.includes(observer)) {
1734
- this.observers.push(observer);
1735
- this.clearGcTimeout();
1736
- this.#cache.notify({ type: "observerAdded", query: this, observer });
1737
- }
1738
- }
1739
- removeObserver(observer) {
1740
- if (this.observers.includes(observer)) {
1741
- this.observers = this.observers.filter((x) => x !== observer);
1742
- if (!this.observers.length) {
1743
- if (this.#retryer) {
1744
- if (this.#abortSignalConsumed) {
1745
- this.#retryer.cancel({ revert: true });
1746
- } else {
1747
- this.#retryer.cancelRetry();
1748
- }
1749
- }
1750
- this.scheduleGc();
1751
- }
1752
- this.#cache.notify({ type: "observerRemoved", query: this, observer });
1753
- }
1754
- }
1755
- getObserversCount() {
1756
- return this.observers.length;
1757
- }
1758
- invalidate() {
1759
- if (!this.state.isInvalidated) {
1760
- this.#dispatch({ type: "invalidate" });
1761
- }
1762
- }
1763
- async fetch(options, fetchOptions) {
1764
- if (this.state.fetchStatus !== "idle" && // If the promise in the retryer is already rejected, we have to definitely
1765
- // re-start the fetch; there is a chance that the query is still in a
1766
- // pending state when that happens
1767
- this.#retryer?.status() !== "rejected") {
1768
- if (this.state.data !== void 0 && fetchOptions?.cancelRefetch) {
1769
- this.cancel({ silent: true });
1770
- } else if (this.#retryer) {
1771
- this.#retryer.continueRetry();
1772
- return this.#retryer.promise;
1773
- }
1774
- }
1775
- if (options) {
1776
- this.setOptions(options);
1777
- }
1778
- if (!this.options.queryFn) {
1779
- const observer = this.observers.find((x) => x.options.queryFn);
1780
- if (observer) {
1781
- this.setOptions(observer.options);
1782
- }
1783
- }
1784
- if (process.env.NODE_ENV !== "production") {
1785
- if (!Array.isArray(this.options.queryKey)) {
1786
- console.error(
1787
- `As of v4, queryKey needs to be an Array. If you are using a string like 'repoData', please change it to an Array, e.g. ['repoData']`
1788
- );
1789
- }
1790
- }
1791
- const abortController = new AbortController();
1792
- const addSignalProperty = (object) => {
1793
- Object.defineProperty(object, "signal", {
1794
- enumerable: true,
1795
- get: () => {
1796
- this.#abortSignalConsumed = true;
1797
- return abortController.signal;
1798
- }
1799
- });
1800
- };
1801
- const fetchFn = () => {
1802
- const queryFn = ensureQueryFn(this.options, fetchOptions);
1803
- const createQueryFnContext = () => {
1804
- const queryFnContext2 = {
1805
- client: this.#client,
1806
- queryKey: this.queryKey,
1807
- meta: this.meta
1808
- };
1809
- addSignalProperty(queryFnContext2);
1810
- return queryFnContext2;
1811
- };
1812
- const queryFnContext = createQueryFnContext();
1813
- this.#abortSignalConsumed = false;
1814
- if (this.options.persister) {
1815
- return this.options.persister(
1816
- queryFn,
1817
- queryFnContext,
1818
- this
1819
- );
1820
- }
1821
- return queryFn(queryFnContext);
1822
- };
1823
- const createFetchContext = () => {
1824
- const context2 = {
1825
- fetchOptions,
1826
- options: this.options,
1827
- queryKey: this.queryKey,
1828
- client: this.#client,
1829
- state: this.state,
1830
- fetchFn
1831
- };
1832
- addSignalProperty(context2);
1833
- return context2;
1834
- };
1835
- const context = createFetchContext();
1836
- this.options.behavior?.onFetch(context, this);
1837
- this.#revertState = this.state;
1838
- if (this.state.fetchStatus === "idle" || this.state.fetchMeta !== context.fetchOptions?.meta) {
1839
- this.#dispatch({ type: "fetch", meta: context.fetchOptions?.meta });
1840
- }
1841
- this.#retryer = createRetryer({
1842
- initialPromise: fetchOptions?.initialPromise,
1843
- fn: context.fetchFn,
1844
- onCancel: (error) => {
1845
- if (error instanceof CancelledError && error.revert) {
1846
- this.setState({
1847
- ...this.#revertState,
1848
- fetchStatus: "idle"
1849
- });
1850
- }
1851
- abortController.abort();
1852
- },
1853
- onFail: (failureCount, error) => {
1854
- this.#dispatch({ type: "failed", failureCount, error });
1855
- },
1856
- onPause: () => {
1857
- this.#dispatch({ type: "pause" });
1858
- },
1859
- onContinue: () => {
1860
- this.#dispatch({ type: "continue" });
1861
- },
1862
- retry: context.options.retry,
1863
- retryDelay: context.options.retryDelay,
1864
- networkMode: context.options.networkMode,
1865
- canRun: () => true
1866
- });
1867
- try {
1868
- const data = await this.#retryer.start();
1869
- if (data === void 0) {
1870
- if (process.env.NODE_ENV !== "production") {
1871
- console.error(
1872
- `Query data cannot be undefined. Please make sure to return a value other than undefined from your query function. Affected query key: ${this.queryHash}`
1873
- );
1874
- }
1875
- throw new Error(`${this.queryHash} data is undefined`);
1876
- }
1877
- this.setData(data);
1878
- this.#cache.config.onSuccess?.(data, this);
1879
- this.#cache.config.onSettled?.(
1880
- data,
1881
- this.state.error,
1882
- this
1883
- );
1884
- return data;
1885
- } catch (error) {
1886
- if (error instanceof CancelledError) {
1887
- if (error.silent) {
1888
- return this.#retryer.promise;
1889
- } else if (error.revert) {
1890
- if (this.state.data === void 0) {
1891
- throw error;
1892
- }
1893
- return this.state.data;
1894
- }
1895
- }
1896
- this.#dispatch({
1897
- type: "error",
1898
- error
1899
- });
1900
- this.#cache.config.onError?.(
1901
- error,
1902
- this
1903
- );
1904
- this.#cache.config.onSettled?.(
1905
- this.state.data,
1906
- error,
1907
- this
1908
- );
1909
- throw error;
1910
- } finally {
1911
- this.scheduleGc();
1912
- }
1913
- }
1914
- #dispatch(action) {
1915
- const reducer = (state) => {
1916
- switch (action.type) {
1917
- case "failed":
1918
- return {
1919
- ...state,
1920
- fetchFailureCount: action.failureCount,
1921
- fetchFailureReason: action.error
1922
- };
1923
- case "pause":
1924
- return {
1925
- ...state,
1926
- fetchStatus: "paused"
1927
- };
1928
- case "continue":
1929
- return {
1930
- ...state,
1931
- fetchStatus: "fetching"
1932
- };
1933
- case "fetch":
1934
- return {
1935
- ...state,
1936
- ...fetchState(state.data, this.options),
1937
- fetchMeta: action.meta ?? null
1938
- };
1939
- case "success":
1940
- const newState = {
1941
- ...state,
1942
- ...successState(action.data, action.dataUpdatedAt),
1943
- dataUpdateCount: state.dataUpdateCount + 1,
1944
- ...!action.manual && {
1945
- fetchStatus: "idle",
1946
- fetchFailureCount: 0,
1947
- fetchFailureReason: null
1948
- }
1949
- };
1950
- this.#revertState = action.manual ? newState : void 0;
1951
- return newState;
1952
- case "error":
1953
- const error = action.error;
1954
- return {
1955
- ...state,
1956
- error,
1957
- errorUpdateCount: state.errorUpdateCount + 1,
1958
- errorUpdatedAt: Date.now(),
1959
- fetchFailureCount: state.fetchFailureCount + 1,
1960
- fetchFailureReason: error,
1961
- fetchStatus: "idle",
1962
- status: "error",
1963
- // flag existing data as invalidated if we get a background error
1964
- // note that "no data" always means stale so we can set unconditionally here
1965
- isInvalidated: true
1966
- };
1967
- case "invalidate":
1968
- return {
1969
- ...state,
1970
- isInvalidated: true
1971
- };
1972
- case "setState":
1973
- return {
1974
- ...state,
1975
- ...action.state
1976
- };
1977
- }
1978
- };
1979
- this.state = reducer(this.state);
1980
- notifyManager.batch(() => {
1981
- this.observers.forEach((observer) => {
1982
- observer.onQueryUpdate();
1983
- });
1984
- this.#cache.notify({ query: this, type: "updated", action });
1985
- });
1986
- }
1987
- };
1988
- function fetchState(data, options) {
1989
- return {
1990
- fetchFailureCount: 0,
1991
- fetchFailureReason: null,
1992
- fetchStatus: canFetch(options.networkMode) ? "fetching" : "paused",
1993
- ...data === void 0 && {
1994
- error: null,
1995
- status: "pending"
1996
- }
1997
- };
1998
- }
1999
- function successState(data, dataUpdatedAt) {
2000
- return {
2001
- data,
2002
- dataUpdatedAt: dataUpdatedAt ?? Date.now(),
2003
- error: null,
2004
- isInvalidated: false,
2005
- status: "success"
2006
- };
2007
- }
2008
- function getDefaultState(options) {
2009
- const data = typeof options.initialData === "function" ? options.initialData() : options.initialData;
2010
- const hasData = data !== void 0;
2011
- const initialDataUpdatedAt = hasData ? typeof options.initialDataUpdatedAt === "function" ? options.initialDataUpdatedAt() : options.initialDataUpdatedAt : 0;
2012
- return {
2013
- data,
2014
- dataUpdateCount: 0,
2015
- dataUpdatedAt: hasData ? initialDataUpdatedAt ?? Date.now() : 0,
2016
- error: null,
2017
- errorUpdateCount: 0,
2018
- errorUpdatedAt: 0,
2019
- fetchFailureCount: 0,
2020
- fetchFailureReason: null,
2021
- fetchMeta: null,
2022
- isInvalidated: false,
2023
- status: hasData ? "success" : "pending",
2024
- fetchStatus: "idle"
2025
- };
2026
- }
2027
-
2028
- // ../../node_modules/.bun/@tanstack+query-core@5.90.20/node_modules/@tanstack/query-core/build/modern/infiniteQueryBehavior.js
2029
- function infiniteQueryBehavior(pages) {
2030
- return {
2031
- onFetch: (context, query) => {
2032
- const options = context.options;
2033
- const direction = context.fetchOptions?.meta?.fetchMore?.direction;
2034
- const oldPages = context.state.data?.pages || [];
2035
- const oldPageParams = context.state.data?.pageParams || [];
2036
- let result = { pages: [], pageParams: [] };
2037
- let currentPage = 0;
2038
- const fetchFn = async () => {
2039
- let cancelled = false;
2040
- const addSignalProperty = (object) => {
2041
- addConsumeAwareSignal(
2042
- object,
2043
- () => context.signal,
2044
- () => cancelled = true
2045
- );
2046
- };
2047
- const queryFn = ensureQueryFn(context.options, context.fetchOptions);
2048
- const fetchPage = async (data, param, previous) => {
2049
- if (cancelled) {
2050
- return Promise.reject();
2051
- }
2052
- if (param == null && data.pages.length) {
2053
- return Promise.resolve(data);
2054
- }
2055
- const createQueryFnContext = () => {
2056
- const queryFnContext2 = {
2057
- client: context.client,
2058
- queryKey: context.queryKey,
2059
- pageParam: param,
2060
- direction: previous ? "backward" : "forward",
2061
- meta: context.options.meta
2062
- };
2063
- addSignalProperty(queryFnContext2);
2064
- return queryFnContext2;
2065
- };
2066
- const queryFnContext = createQueryFnContext();
2067
- const page = await queryFn(queryFnContext);
2068
- const { maxPages } = context.options;
2069
- const addTo = previous ? addToStart : addToEnd;
2070
- return {
2071
- pages: addTo(data.pages, page, maxPages),
2072
- pageParams: addTo(data.pageParams, param, maxPages)
2073
- };
2074
- };
2075
- if (direction && oldPages.length) {
2076
- const previous = direction === "backward";
2077
- const pageParamFn = previous ? getPreviousPageParam : getNextPageParam;
2078
- const oldData = {
2079
- pages: oldPages,
2080
- pageParams: oldPageParams
2081
- };
2082
- const param = pageParamFn(options, oldData);
2083
- result = await fetchPage(oldData, param, previous);
2084
- } else {
2085
- const remainingPages = pages ?? oldPages.length;
2086
- do {
2087
- const param = currentPage === 0 ? oldPageParams[0] ?? options.initialPageParam : getNextPageParam(options, result);
2088
- if (currentPage > 0 && param == null) {
2089
- break;
2090
- }
2091
- result = await fetchPage(result, param);
2092
- currentPage++;
2093
- } while (currentPage < remainingPages);
2094
- }
2095
- return result;
2096
- };
2097
- if (context.options.persister) {
2098
- context.fetchFn = () => {
2099
- return context.options.persister?.(
2100
- fetchFn,
2101
- {
2102
- client: context.client,
2103
- queryKey: context.queryKey,
2104
- meta: context.options.meta,
2105
- signal: context.signal
2106
- },
2107
- query
2108
- );
2109
- };
2110
- } else {
2111
- context.fetchFn = fetchFn;
2112
- }
2113
- }
2114
- };
2115
- }
2116
- function getNextPageParam(options, { pages, pageParams }) {
2117
- const lastIndex = pages.length - 1;
2118
- return pages.length > 0 ? options.getNextPageParam(
2119
- pages[lastIndex],
2120
- pages,
2121
- pageParams[lastIndex],
2122
- pageParams
2123
- ) : void 0;
2124
- }
2125
- function getPreviousPageParam(options, { pages, pageParams }) {
2126
- return pages.length > 0 ? options.getPreviousPageParam?.(pages[0], pages, pageParams[0], pageParams) : void 0;
2127
- }
2128
-
2129
- // ../../node_modules/.bun/@tanstack+query-core@5.90.20/node_modules/@tanstack/query-core/build/modern/mutation.js
2130
- var Mutation = class extends Removable {
2131
- #client;
2132
- #observers;
2133
- #mutationCache;
2134
- #retryer;
2135
- constructor(config) {
2136
- super();
2137
- this.#client = config.client;
2138
- this.mutationId = config.mutationId;
2139
- this.#mutationCache = config.mutationCache;
2140
- this.#observers = [];
2141
- this.state = config.state || getDefaultState2();
2142
- this.setOptions(config.options);
2143
- this.scheduleGc();
2144
- }
2145
- setOptions(options) {
2146
- this.options = options;
2147
- this.updateGcTime(this.options.gcTime);
2148
- }
2149
- get meta() {
2150
- return this.options.meta;
2151
- }
2152
- addObserver(observer) {
2153
- if (!this.#observers.includes(observer)) {
2154
- this.#observers.push(observer);
2155
- this.clearGcTimeout();
2156
- this.#mutationCache.notify({
2157
- type: "observerAdded",
2158
- mutation: this,
2159
- observer
2160
- });
2161
- }
2162
- }
2163
- removeObserver(observer) {
2164
- this.#observers = this.#observers.filter((x) => x !== observer);
2165
- this.scheduleGc();
2166
- this.#mutationCache.notify({
2167
- type: "observerRemoved",
2168
- mutation: this,
2169
- observer
2170
- });
2171
- }
2172
- optionalRemove() {
2173
- if (!this.#observers.length) {
2174
- if (this.state.status === "pending") {
2175
- this.scheduleGc();
2176
- } else {
2177
- this.#mutationCache.remove(this);
2178
- }
2179
- }
2180
- }
2181
- continue() {
2182
- return this.#retryer?.continue() ?? // continuing a mutation assumes that variables are set, mutation must have been dehydrated before
2183
- this.execute(this.state.variables);
2184
- }
2185
- async execute(variables) {
2186
- const onContinue = () => {
2187
- this.#dispatch({ type: "continue" });
2188
- };
2189
- const mutationFnContext = {
2190
- client: this.#client,
2191
- meta: this.options.meta,
2192
- mutationKey: this.options.mutationKey
2193
- };
2194
- this.#retryer = createRetryer({
2195
- fn: () => {
2196
- if (!this.options.mutationFn) {
2197
- return Promise.reject(new Error("No mutationFn found"));
2198
- }
2199
- return this.options.mutationFn(variables, mutationFnContext);
2200
- },
2201
- onFail: (failureCount, error) => {
2202
- this.#dispatch({ type: "failed", failureCount, error });
2203
- },
2204
- onPause: () => {
2205
- this.#dispatch({ type: "pause" });
2206
- },
2207
- onContinue,
2208
- retry: this.options.retry ?? 0,
2209
- retryDelay: this.options.retryDelay,
2210
- networkMode: this.options.networkMode,
2211
- canRun: () => this.#mutationCache.canRun(this)
2212
- });
2213
- const restored = this.state.status === "pending";
2214
- const isPaused = !this.#retryer.canStart();
2215
- try {
2216
- if (restored) {
2217
- onContinue();
2218
- } else {
2219
- this.#dispatch({ type: "pending", variables, isPaused });
2220
- if (this.#mutationCache.config.onMutate) {
2221
- await this.#mutationCache.config.onMutate(
2222
- variables,
2223
- this,
2224
- mutationFnContext
2225
- );
2226
- }
2227
- const context = await this.options.onMutate?.(
2228
- variables,
2229
- mutationFnContext
2230
- );
2231
- if (context !== this.state.context) {
2232
- this.#dispatch({
2233
- type: "pending",
2234
- context,
2235
- variables,
2236
- isPaused
2237
- });
2238
- }
2239
- }
2240
- const data = await this.#retryer.start();
2241
- await this.#mutationCache.config.onSuccess?.(
2242
- data,
2243
- variables,
2244
- this.state.context,
2245
- this,
2246
- mutationFnContext
2247
- );
2248
- await this.options.onSuccess?.(
2249
- data,
2250
- variables,
2251
- this.state.context,
2252
- mutationFnContext
2253
- );
2254
- await this.#mutationCache.config.onSettled?.(
2255
- data,
2256
- null,
2257
- this.state.variables,
2258
- this.state.context,
2259
- this,
2260
- mutationFnContext
2261
- );
2262
- await this.options.onSettled?.(
2263
- data,
2264
- null,
2265
- variables,
2266
- this.state.context,
2267
- mutationFnContext
2268
- );
2269
- this.#dispatch({ type: "success", data });
2270
- return data;
2271
- } catch (error) {
2272
- try {
2273
- await this.#mutationCache.config.onError?.(
2274
- error,
2275
- variables,
2276
- this.state.context,
2277
- this,
2278
- mutationFnContext
2279
- );
2280
- } catch (e) {
2281
- void Promise.reject(e);
2282
- }
2283
- try {
2284
- await this.options.onError?.(
2285
- error,
2286
- variables,
2287
- this.state.context,
2288
- mutationFnContext
2289
- );
2290
- } catch (e) {
2291
- void Promise.reject(e);
2292
- }
2293
- try {
2294
- await this.#mutationCache.config.onSettled?.(
2295
- void 0,
2296
- error,
2297
- this.state.variables,
2298
- this.state.context,
2299
- this,
2300
- mutationFnContext
2301
- );
2302
- } catch (e) {
2303
- void Promise.reject(e);
2304
- }
2305
- try {
2306
- await this.options.onSettled?.(
2307
- void 0,
2308
- error,
2309
- variables,
2310
- this.state.context,
2311
- mutationFnContext
2312
- );
2313
- } catch (e) {
2314
- void Promise.reject(e);
2315
- }
2316
- this.#dispatch({ type: "error", error });
2317
- throw error;
2318
- } finally {
2319
- this.#mutationCache.runNext(this);
2320
- }
2321
- }
2322
- #dispatch(action) {
2323
- const reducer = (state) => {
2324
- switch (action.type) {
2325
- case "failed":
2326
- return {
2327
- ...state,
2328
- failureCount: action.failureCount,
2329
- failureReason: action.error
2330
- };
2331
- case "pause":
2332
- return {
2333
- ...state,
2334
- isPaused: true
2335
- };
2336
- case "continue":
2337
- return {
2338
- ...state,
2339
- isPaused: false
2340
- };
2341
- case "pending":
2342
- return {
2343
- ...state,
2344
- context: action.context,
2345
- data: void 0,
2346
- failureCount: 0,
2347
- failureReason: null,
2348
- error: null,
2349
- isPaused: action.isPaused,
2350
- status: "pending",
2351
- variables: action.variables,
2352
- submittedAt: Date.now()
2353
- };
2354
- case "success":
2355
- return {
2356
- ...state,
2357
- data: action.data,
2358
- failureCount: 0,
2359
- failureReason: null,
2360
- error: null,
2361
- status: "success",
2362
- isPaused: false
2363
- };
2364
- case "error":
2365
- return {
2366
- ...state,
2367
- data: void 0,
2368
- error: action.error,
2369
- failureCount: state.failureCount + 1,
2370
- failureReason: action.error,
2371
- isPaused: false,
2372
- status: "error"
2373
- };
2374
- }
2375
- };
2376
- this.state = reducer(this.state);
2377
- notifyManager.batch(() => {
2378
- this.#observers.forEach((observer) => {
2379
- observer.onMutationUpdate(action);
2380
- });
2381
- this.#mutationCache.notify({
2382
- mutation: this,
2383
- type: "updated",
2384
- action
2385
- });
2386
- });
2387
- }
2388
- };
2389
- function getDefaultState2() {
2390
- return {
2391
- context: void 0,
2392
- data: void 0,
2393
- error: null,
2394
- failureCount: 0,
2395
- failureReason: null,
2396
- isPaused: false,
2397
- status: "idle",
2398
- variables: void 0,
2399
- submittedAt: 0
2400
- };
2401
- }
2402
-
2403
- // ../../node_modules/.bun/@tanstack+query-core@5.90.20/node_modules/@tanstack/query-core/build/modern/mutationCache.js
2404
- var MutationCache = class extends Subscribable {
2405
- constructor(config = {}) {
2406
- super();
2407
- this.config = config;
2408
- this.#mutations = /* @__PURE__ */ new Set();
2409
- this.#scopes = /* @__PURE__ */ new Map();
2410
- this.#mutationId = 0;
2411
- }
2412
- #mutations;
2413
- #scopes;
2414
- #mutationId;
2415
- build(client, options, state) {
2416
- const mutation = new Mutation({
2417
- client,
2418
- mutationCache: this,
2419
- mutationId: ++this.#mutationId,
2420
- options: client.defaultMutationOptions(options),
2421
- state
2422
- });
2423
- this.add(mutation);
2424
- return mutation;
2425
- }
2426
- add(mutation) {
2427
- this.#mutations.add(mutation);
2428
- const scope = scopeFor(mutation);
2429
- if (typeof scope === "string") {
2430
- const scopedMutations = this.#scopes.get(scope);
2431
- if (scopedMutations) {
2432
- scopedMutations.push(mutation);
2433
- } else {
2434
- this.#scopes.set(scope, [mutation]);
2435
- }
2436
- }
2437
- this.notify({ type: "added", mutation });
2438
- }
2439
- remove(mutation) {
2440
- if (this.#mutations.delete(mutation)) {
2441
- const scope = scopeFor(mutation);
2442
- if (typeof scope === "string") {
2443
- const scopedMutations = this.#scopes.get(scope);
2444
- if (scopedMutations) {
2445
- if (scopedMutations.length > 1) {
2446
- const index = scopedMutations.indexOf(mutation);
2447
- if (index !== -1) {
2448
- scopedMutations.splice(index, 1);
2449
- }
2450
- } else if (scopedMutations[0] === mutation) {
2451
- this.#scopes.delete(scope);
2452
- }
2453
- }
2454
- }
2455
- }
2456
- this.notify({ type: "removed", mutation });
2457
- }
2458
- canRun(mutation) {
2459
- const scope = scopeFor(mutation);
2460
- if (typeof scope === "string") {
2461
- const mutationsWithSameScope = this.#scopes.get(scope);
2462
- const firstPendingMutation = mutationsWithSameScope?.find(
2463
- (m) => m.state.status === "pending"
2464
- );
2465
- return !firstPendingMutation || firstPendingMutation === mutation;
2466
- } else {
2467
- return true;
2468
- }
2469
- }
2470
- runNext(mutation) {
2471
- const scope = scopeFor(mutation);
2472
- if (typeof scope === "string") {
2473
- const foundMutation = this.#scopes.get(scope)?.find((m) => m !== mutation && m.state.isPaused);
2474
- return foundMutation?.continue() ?? Promise.resolve();
2475
- } else {
2476
- return Promise.resolve();
2477
- }
2478
- }
2479
- clear() {
2480
- notifyManager.batch(() => {
2481
- this.#mutations.forEach((mutation) => {
2482
- this.notify({ type: "removed", mutation });
2483
- });
2484
- this.#mutations.clear();
2485
- this.#scopes.clear();
2486
- });
2487
- }
2488
- getAll() {
2489
- return Array.from(this.#mutations);
2490
- }
2491
- find(filters) {
2492
- const defaultedFilters = { exact: true, ...filters };
2493
- return this.getAll().find(
2494
- (mutation) => matchMutation(defaultedFilters, mutation)
2495
- );
2496
- }
2497
- findAll(filters = {}) {
2498
- return this.getAll().filter((mutation) => matchMutation(filters, mutation));
2499
- }
2500
- notify(event) {
2501
- notifyManager.batch(() => {
2502
- this.listeners.forEach((listener) => {
2503
- listener(event);
2504
- });
2505
- });
2506
- }
2507
- resumePausedMutations() {
2508
- const pausedMutations = this.getAll().filter((x) => x.state.isPaused);
2509
- return notifyManager.batch(
2510
- () => Promise.all(
2511
- pausedMutations.map((mutation) => mutation.continue().catch(noop))
2512
- )
2513
- );
2514
- }
2515
- };
2516
- function scopeFor(mutation) {
2517
- return mutation.options.scope?.id;
2518
- }
2519
-
2520
- // ../../node_modules/.bun/@tanstack+query-core@5.90.20/node_modules/@tanstack/query-core/build/modern/queryCache.js
2521
- var QueryCache = class extends Subscribable {
2522
- constructor(config = {}) {
2523
- super();
2524
- this.config = config;
2525
- this.#queries = /* @__PURE__ */ new Map();
2526
- }
2527
- #queries;
2528
- build(client, options, state) {
2529
- const queryKey = options.queryKey;
2530
- const queryHash = options.queryHash ?? hashQueryKeyByOptions(queryKey, options);
2531
- let query = this.get(queryHash);
2532
- if (!query) {
2533
- query = new Query({
2534
- client,
2535
- queryKey,
2536
- queryHash,
2537
- options: client.defaultQueryOptions(options),
2538
- state,
2539
- defaultOptions: client.getQueryDefaults(queryKey)
2540
- });
2541
- this.add(query);
2542
- }
2543
- return query;
2544
- }
2545
- add(query) {
2546
- if (!this.#queries.has(query.queryHash)) {
2547
- this.#queries.set(query.queryHash, query);
2548
- this.notify({
2549
- type: "added",
2550
- query
2551
- });
2552
- }
2553
- }
2554
- remove(query) {
2555
- const queryInMap = this.#queries.get(query.queryHash);
2556
- if (queryInMap) {
2557
- query.destroy();
2558
- if (queryInMap === query) {
2559
- this.#queries.delete(query.queryHash);
2560
- }
2561
- this.notify({ type: "removed", query });
2562
- }
2563
- }
2564
- clear() {
2565
- notifyManager.batch(() => {
2566
- this.getAll().forEach((query) => {
2567
- this.remove(query);
2568
- });
2569
- });
2570
- }
2571
- get(queryHash) {
2572
- return this.#queries.get(queryHash);
2573
- }
2574
- getAll() {
2575
- return [...this.#queries.values()];
2576
- }
2577
- find(filters) {
2578
- const defaultedFilters = { exact: true, ...filters };
2579
- return this.getAll().find(
2580
- (query) => matchQuery(defaultedFilters, query)
2581
- );
2582
- }
2583
- findAll(filters = {}) {
2584
- const queries = this.getAll();
2585
- return Object.keys(filters).length > 0 ? queries.filter((query) => matchQuery(filters, query)) : queries;
2586
- }
2587
- notify(event) {
2588
- notifyManager.batch(() => {
2589
- this.listeners.forEach((listener) => {
2590
- listener(event);
2591
- });
2592
- });
2593
- }
2594
- onFocus() {
2595
- notifyManager.batch(() => {
2596
- this.getAll().forEach((query) => {
2597
- query.onFocus();
2598
- });
2599
- });
2600
- }
2601
- onOnline() {
2602
- notifyManager.batch(() => {
2603
- this.getAll().forEach((query) => {
2604
- query.onOnline();
2605
- });
2606
- });
2607
- }
2608
- };
2609
-
2610
- // ../../node_modules/.bun/@tanstack+query-core@5.90.20/node_modules/@tanstack/query-core/build/modern/queryClient.js
2611
- var QueryClient = class {
2612
- #queryCache;
2613
- #mutationCache;
2614
- #defaultOptions;
2615
- #queryDefaults;
2616
- #mutationDefaults;
2617
- #mountCount;
2618
- #unsubscribeFocus;
2619
- #unsubscribeOnline;
2620
- constructor(config = {}) {
2621
- this.#queryCache = config.queryCache || new QueryCache();
2622
- this.#mutationCache = config.mutationCache || new MutationCache();
2623
- this.#defaultOptions = config.defaultOptions || {};
2624
- this.#queryDefaults = /* @__PURE__ */ new Map();
2625
- this.#mutationDefaults = /* @__PURE__ */ new Map();
2626
- this.#mountCount = 0;
2627
- }
2628
- mount() {
2629
- this.#mountCount++;
2630
- if (this.#mountCount !== 1) return;
2631
- this.#unsubscribeFocus = focusManager.subscribe(async (focused) => {
2632
- if (focused) {
2633
- await this.resumePausedMutations();
2634
- this.#queryCache.onFocus();
2635
- }
2636
- });
2637
- this.#unsubscribeOnline = onlineManager.subscribe(async (online) => {
2638
- if (online) {
2639
- await this.resumePausedMutations();
2640
- this.#queryCache.onOnline();
2641
- }
2642
- });
2643
- }
2644
- unmount() {
2645
- this.#mountCount--;
2646
- if (this.#mountCount !== 0) return;
2647
- this.#unsubscribeFocus?.();
2648
- this.#unsubscribeFocus = void 0;
2649
- this.#unsubscribeOnline?.();
2650
- this.#unsubscribeOnline = void 0;
2651
- }
2652
- isFetching(filters) {
2653
- return this.#queryCache.findAll({ ...filters, fetchStatus: "fetching" }).length;
2654
- }
2655
- isMutating(filters) {
2656
- return this.#mutationCache.findAll({ ...filters, status: "pending" }).length;
2657
- }
2658
- /**
2659
- * Imperative (non-reactive) way to retrieve data for a QueryKey.
2660
- * Should only be used in callbacks or functions where reading the latest data is necessary, e.g. for optimistic updates.
2661
- *
2662
- * Hint: Do not use this function inside a component, because it won't receive updates.
2663
- * Use `useQuery` to create a `QueryObserver` that subscribes to changes.
2664
- */
2665
- getQueryData(queryKey) {
2666
- const options = this.defaultQueryOptions({ queryKey });
2667
- return this.#queryCache.get(options.queryHash)?.state.data;
2668
- }
2669
- ensureQueryData(options) {
2670
- const defaultedOptions = this.defaultQueryOptions(options);
2671
- const query = this.#queryCache.build(this, defaultedOptions);
2672
- const cachedData = query.state.data;
2673
- if (cachedData === void 0) {
2674
- return this.fetchQuery(options);
2675
- }
2676
- if (options.revalidateIfStale && query.isStaleByTime(resolveStaleTime(defaultedOptions.staleTime, query))) {
2677
- void this.prefetchQuery(defaultedOptions);
2678
- }
2679
- return Promise.resolve(cachedData);
2680
- }
2681
- getQueriesData(filters) {
2682
- return this.#queryCache.findAll(filters).map(({ queryKey, state }) => {
2683
- const data = state.data;
2684
- return [queryKey, data];
2685
- });
2686
- }
2687
- setQueryData(queryKey, updater, options) {
2688
- const defaultedOptions = this.defaultQueryOptions({ queryKey });
2689
- const query = this.#queryCache.get(
2690
- defaultedOptions.queryHash
2691
- );
2692
- const prevData = query?.state.data;
2693
- const data = functionalUpdate(updater, prevData);
2694
- if (data === void 0) {
2695
- return void 0;
2696
- }
2697
- return this.#queryCache.build(this, defaultedOptions).setData(data, { ...options, manual: true });
2698
- }
2699
- setQueriesData(filters, updater, options) {
2700
- return notifyManager.batch(
2701
- () => this.#queryCache.findAll(filters).map(({ queryKey }) => [
2702
- queryKey,
2703
- this.setQueryData(queryKey, updater, options)
2704
- ])
2705
- );
2706
- }
2707
- getQueryState(queryKey) {
2708
- const options = this.defaultQueryOptions({ queryKey });
2709
- return this.#queryCache.get(
2710
- options.queryHash
2711
- )?.state;
2712
- }
2713
- removeQueries(filters) {
2714
- const queryCache = this.#queryCache;
2715
- notifyManager.batch(() => {
2716
- queryCache.findAll(filters).forEach((query) => {
2717
- queryCache.remove(query);
2718
- });
2719
- });
2720
- }
2721
- resetQueries(filters, options) {
2722
- const queryCache = this.#queryCache;
2723
- return notifyManager.batch(() => {
2724
- queryCache.findAll(filters).forEach((query) => {
2725
- query.reset();
2726
- });
2727
- return this.refetchQueries(
2728
- {
2729
- type: "active",
2730
- ...filters
2731
- },
2732
- options
2733
- );
2734
- });
2735
- }
2736
- cancelQueries(filters, cancelOptions = {}) {
2737
- const defaultedCancelOptions = { revert: true, ...cancelOptions };
2738
- const promises = notifyManager.batch(
2739
- () => this.#queryCache.findAll(filters).map((query) => query.cancel(defaultedCancelOptions))
2740
- );
2741
- return Promise.all(promises).then(noop).catch(noop);
2742
- }
2743
- invalidateQueries(filters, options = {}) {
2744
- return notifyManager.batch(() => {
2745
- this.#queryCache.findAll(filters).forEach((query) => {
2746
- query.invalidate();
2747
- });
2748
- if (filters?.refetchType === "none") {
2749
- return Promise.resolve();
2750
- }
2751
- return this.refetchQueries(
2752
- {
2753
- ...filters,
2754
- type: filters?.refetchType ?? filters?.type ?? "active"
2755
- },
2756
- options
2757
- );
2758
- });
2759
- }
2760
- refetchQueries(filters, options = {}) {
2761
- const fetchOptions = {
2762
- ...options,
2763
- cancelRefetch: options.cancelRefetch ?? true
2764
- };
2765
- const promises = notifyManager.batch(
2766
- () => this.#queryCache.findAll(filters).filter((query) => !query.isDisabled() && !query.isStatic()).map((query) => {
2767
- let promise = query.fetch(void 0, fetchOptions);
2768
- if (!fetchOptions.throwOnError) {
2769
- promise = promise.catch(noop);
2770
- }
2771
- return query.state.fetchStatus === "paused" ? Promise.resolve() : promise;
2772
- })
2773
- );
2774
- return Promise.all(promises).then(noop);
2775
- }
2776
- fetchQuery(options) {
2777
- const defaultedOptions = this.defaultQueryOptions(options);
2778
- if (defaultedOptions.retry === void 0) {
2779
- defaultedOptions.retry = false;
2780
- }
2781
- const query = this.#queryCache.build(this, defaultedOptions);
2782
- return query.isStaleByTime(
2783
- resolveStaleTime(defaultedOptions.staleTime, query)
2784
- ) ? query.fetch(defaultedOptions) : Promise.resolve(query.state.data);
2785
- }
2786
- prefetchQuery(options) {
2787
- return this.fetchQuery(options).then(noop).catch(noop);
2788
- }
2789
- fetchInfiniteQuery(options) {
2790
- options.behavior = infiniteQueryBehavior(options.pages);
2791
- return this.fetchQuery(options);
2792
- }
2793
- prefetchInfiniteQuery(options) {
2794
- return this.fetchInfiniteQuery(options).then(noop).catch(noop);
2795
- }
2796
- ensureInfiniteQueryData(options) {
2797
- options.behavior = infiniteQueryBehavior(options.pages);
2798
- return this.ensureQueryData(options);
2799
- }
2800
- resumePausedMutations() {
2801
- if (onlineManager.isOnline()) {
2802
- return this.#mutationCache.resumePausedMutations();
2803
- }
2804
- return Promise.resolve();
2805
- }
2806
- getQueryCache() {
2807
- return this.#queryCache;
2808
- }
2809
- getMutationCache() {
2810
- return this.#mutationCache;
2811
- }
2812
- getDefaultOptions() {
2813
- return this.#defaultOptions;
2814
- }
2815
- setDefaultOptions(options) {
2816
- this.#defaultOptions = options;
2817
- }
2818
- setQueryDefaults(queryKey, options) {
2819
- this.#queryDefaults.set(hashKey(queryKey), {
2820
- queryKey,
2821
- defaultOptions: options
2822
- });
2823
- }
2824
- getQueryDefaults(queryKey) {
2825
- const defaults = [...this.#queryDefaults.values()];
2826
- const result = {};
2827
- defaults.forEach((queryDefault) => {
2828
- if (partialMatchKey(queryKey, queryDefault.queryKey)) {
2829
- Object.assign(result, queryDefault.defaultOptions);
2830
- }
2831
- });
2832
- return result;
2833
- }
2834
- setMutationDefaults(mutationKey, options) {
2835
- this.#mutationDefaults.set(hashKey(mutationKey), {
2836
- mutationKey,
2837
- defaultOptions: options
2838
- });
2839
- }
2840
- getMutationDefaults(mutationKey) {
2841
- const defaults = [...this.#mutationDefaults.values()];
2842
- const result = {};
2843
- defaults.forEach((queryDefault) => {
2844
- if (partialMatchKey(mutationKey, queryDefault.mutationKey)) {
2845
- Object.assign(result, queryDefault.defaultOptions);
2846
- }
2847
- });
2848
- return result;
2849
- }
2850
- defaultQueryOptions(options) {
2851
- if (options._defaulted) {
2852
- return options;
2853
- }
2854
- const defaultedOptions = {
2855
- ...this.#defaultOptions.queries,
2856
- ...this.getQueryDefaults(options.queryKey),
2857
- ...options,
2858
- _defaulted: true
2859
- };
2860
- if (!defaultedOptions.queryHash) {
2861
- defaultedOptions.queryHash = hashQueryKeyByOptions(
2862
- defaultedOptions.queryKey,
2863
- defaultedOptions
2864
- );
2865
- }
2866
- if (defaultedOptions.refetchOnReconnect === void 0) {
2867
- defaultedOptions.refetchOnReconnect = defaultedOptions.networkMode !== "always";
2868
- }
2869
- if (defaultedOptions.throwOnError === void 0) {
2870
- defaultedOptions.throwOnError = !!defaultedOptions.suspense;
2871
- }
2872
- if (!defaultedOptions.networkMode && defaultedOptions.persister) {
2873
- defaultedOptions.networkMode = "offlineFirst";
2874
- }
2875
- if (defaultedOptions.queryFn === skipToken) {
2876
- defaultedOptions.enabled = false;
2877
- }
2878
- return defaultedOptions;
2879
- }
2880
- defaultMutationOptions(options) {
2881
- if (options?._defaulted) {
2882
- return options;
2883
- }
2884
- return {
2885
- ...this.#defaultOptions.mutations,
2886
- ...options?.mutationKey && this.getMutationDefaults(options.mutationKey),
2887
- ...options,
2888
- _defaulted: true
2889
- };
2890
- }
2891
- clear() {
2892
- this.#queryCache.clear();
2893
- this.#mutationCache.clear();
2894
- }
2895
- };
2896
-
2897
- // ../../node_modules/.bun/@tanstack+react-query@5.90.21+b1ab299f0a400331/node_modules/@tanstack/react-query/build/modern/QueryClientProvider.js
2898
- import * as React2 from "react";
2899
- import { jsx as jsx26 } from "react/jsx-runtime";
2900
- var QueryClientContext = React2.createContext(
2901
- void 0
2902
- );
2903
- var QueryClientProvider = ({
2904
- client,
2905
- children
2906
- }) => {
2907
- React2.useEffect(() => {
2908
- client.mount();
2909
- return () => {
2910
- client.unmount();
2911
- };
2912
- }, [client]);
2913
- return /* @__PURE__ */ jsx26(QueryClientContext.Provider, { value: client, children });
2914
- };
2915
-
2916
- // src/components/providers/query-provider.tsx
914
+ import { QueryCache, QueryClient, QueryClientProvider } from "@tanstack/react-query";
2917
915
  import { CircleAlertIcon as CircleAlertIcon2 } from "lucide-react";
2918
916
  import { toast as toast2 } from "sonner";
2919
917
  import { Alert as Alert2, AlertTitle as AlertTitle2 } from "@pelatform/ui.components/radix";
2920
- import { jsx as jsx27, jsxs as jsxs17 } from "react/jsx-runtime";
918
+ import { jsx as jsx26, jsxs as jsxs17 } from "react/jsx-runtime";
2921
919
  var QueryProvider = ({
2922
920
  client: clientProps,
2923
921
  children
@@ -2966,8 +964,8 @@ var QueryProvider = ({
2966
964
  }
2967
965
  toast2.custom(
2968
966
  () => /* @__PURE__ */ jsxs17(Alert2, { variant: "default", children: [
2969
- /* @__PURE__ */ jsx27(CircleAlertIcon2, {}),
2970
- /* @__PURE__ */ jsx27(AlertTitle2, { children: message })
967
+ /* @__PURE__ */ jsx26(CircleAlertIcon2, {}),
968
+ /* @__PURE__ */ jsx26(AlertTitle2, { children: message })
2971
969
  ] }),
2972
970
  {
2973
971
  position: "top-center",
@@ -2981,15 +979,15 @@ var QueryProvider = ({
2981
979
  })
2982
980
  })
2983
981
  );
2984
- return /* @__PURE__ */ jsx27(QueryClientProvider, { client: clientProps ?? queryClient, children });
982
+ return /* @__PURE__ */ jsx26(QueryClientProvider, { client: clientProps ?? queryClient, children });
2985
983
  };
2986
984
 
2987
985
  // src/components/providers/theme-provider.tsx
2988
986
  import { ThemeProvider as NextThemesProvider } from "next-themes";
2989
987
  import { TooltipProvider } from "@pelatform/ui.components/radix";
2990
- import { jsx as jsx28 } from "react/jsx-runtime";
988
+ import { jsx as jsx27 } from "react/jsx-runtime";
2991
989
  function ThemeProvider({ children, ...props }) {
2992
- return /* @__PURE__ */ jsx28(
990
+ return /* @__PURE__ */ jsx27(
2993
991
  NextThemesProvider,
2994
992
  {
2995
993
  attribute: "class",
@@ -3000,20 +998,20 @@ function ThemeProvider({ children, ...props }) {
3000
998
  storageKey: "theme",
3001
999
  themes: [THEME_MODES.LIGHT, THEME_MODES.DARK, THEME_MODES.SYSTEM],
3002
1000
  ...props,
3003
- children: /* @__PURE__ */ jsx28(TooltipProvider, { delayDuration: 0, children })
1001
+ children: /* @__PURE__ */ jsx27(TooltipProvider, { delayDuration: 0, children })
3004
1002
  }
3005
1003
  );
3006
1004
  }
3007
1005
 
3008
1006
  // src/components/ui/announcement.tsx
3009
1007
  import { Badge as Badge2 } from "@pelatform/ui.components/radix";
3010
- import { jsx as jsx29 } from "react/jsx-runtime";
1008
+ import { jsx as jsx28 } from "react/jsx-runtime";
3011
1009
  var Announcement = ({
3012
1010
  variant = "outline",
3013
1011
  themed = false,
3014
1012
  className,
3015
1013
  ...props
3016
- }) => /* @__PURE__ */ jsx29(
1014
+ }) => /* @__PURE__ */ jsx28(
3017
1015
  Badge2,
3018
1016
  {
3019
1017
  variant,
@@ -3026,7 +1024,7 @@ var Announcement = ({
3026
1024
  ...props
3027
1025
  }
3028
1026
  );
3029
- var AnnouncementTag = ({ className, ...props }) => /* @__PURE__ */ jsx29(
1027
+ var AnnouncementTag = ({ className, ...props }) => /* @__PURE__ */ jsx28(
3030
1028
  "div",
3031
1029
  {
3032
1030
  className: cn(
@@ -3037,11 +1035,11 @@ var AnnouncementTag = ({ className, ...props }) => /* @__PURE__ */ jsx29(
3037
1035
  ...props
3038
1036
  }
3039
1037
  );
3040
- var AnnouncementTitle = ({ className, ...props }) => /* @__PURE__ */ jsx29("div", { className: cn("flex items-center gap-1 truncate py-1", className), ...props });
1038
+ var AnnouncementTitle = ({ className, ...props }) => /* @__PURE__ */ jsx28("div", { className: cn("flex items-center gap-1 truncate py-1", className), ...props });
3041
1039
 
3042
1040
  // src/components/ui/background-paths.tsx
3043
1041
  import { motion } from "motion/react";
3044
- import { jsx as jsx30, jsxs as jsxs18 } from "react/jsx-runtime";
1042
+ import { jsx as jsx29, jsxs as jsxs18 } from "react/jsx-runtime";
3045
1043
  function FloatingPaths({
3046
1044
  position,
3047
1045
  color = "text-slate-950 dark:text-white"
@@ -3052,7 +1050,7 @@ function FloatingPaths({
3052
1050
  color: `rgba(15,23,42,${0.1 + i * 0.03})`,
3053
1051
  width: 0.5 + i * 0.03
3054
1052
  }));
3055
- return /* @__PURE__ */ jsx30("div", { className: "pointer-events-none absolute inset-0 -z-50", children: /* @__PURE__ */ jsx30("svg", { className: cn("h-full w-full", color), viewBox: "0 0 696 316", fill: "none", children: paths.map((path) => /* @__PURE__ */ jsx30(
1053
+ return /* @__PURE__ */ jsx29("div", { className: "pointer-events-none absolute inset-0 -z-50", children: /* @__PURE__ */ jsx29("svg", { className: cn("h-full w-full", color), viewBox: "0 0 696 316", fill: "none", children: paths.map((path) => /* @__PURE__ */ jsx29(
3056
1054
  motion.path,
3057
1055
  {
3058
1056
  d: path.d,
@@ -3075,14 +1073,14 @@ function FloatingPaths({
3075
1073
  )) }) });
3076
1074
  }
3077
1075
  function BackgroundPaths({ color = "text-slate-950 dark:text-white" }) {
3078
- return /* @__PURE__ */ jsx30("div", { className: "relative flex min-h-screen w-full items-center justify-center overflow-hidden bg-white dark:bg-neutral-950", children: /* @__PURE__ */ jsxs18("div", { className: "absolute inset-0", children: [
3079
- /* @__PURE__ */ jsx30(FloatingPaths, { position: 1, color }),
3080
- /* @__PURE__ */ jsx30(FloatingPaths, { position: -1, color })
1076
+ return /* @__PURE__ */ jsx29("div", { className: "relative flex min-h-screen w-full items-center justify-center overflow-hidden bg-white dark:bg-neutral-950", children: /* @__PURE__ */ jsxs18("div", { className: "absolute inset-0", children: [
1077
+ /* @__PURE__ */ jsx29(FloatingPaths, { position: 1, color }),
1078
+ /* @__PURE__ */ jsx29(FloatingPaths, { position: -1, color })
3081
1079
  ] }) });
3082
1080
  }
3083
1081
 
3084
1082
  // src/components/ui/book.tsx
3085
- import { jsx as jsx31, jsxs as jsxs19 } from "react/jsx-runtime";
1083
+ import { jsx as jsx30, jsxs as jsxs19 } from "react/jsx-runtime";
3086
1084
  function Book(props) {
3087
1085
  const {
3088
1086
  children,
@@ -3094,7 +1092,7 @@ function Book(props) {
3094
1092
  illustration,
3095
1093
  width
3096
1094
  } = props;
3097
- return /* @__PURE__ */ jsx31(
1095
+ return /* @__PURE__ */ jsx30(
3098
1096
  "div",
3099
1097
  {
3100
1098
  className: cn("group perspective-[900px] inline-block w-fit"),
@@ -3121,16 +1119,16 @@ function Book(props) {
3121
1119
  "relative min-w-[calc(var(--book-width))] overflow-hidden bg-(--book-color)"
3122
1120
  ),
3123
1121
  children: [
3124
- /* @__PURE__ */ jsx31("div", { className: "absolute inset-y-0 min-w-[8.2%] bg-book-bind-bg opacity-100 mix-blend-overlay" }),
3125
- illustration && /* @__PURE__ */ jsx31("div", { className: "object-cover", children: illustration })
1122
+ /* @__PURE__ */ jsx30("div", { className: "absolute inset-y-0 min-w-[8.2%] bg-book-bind-bg opacity-100 mix-blend-overlay" }),
1123
+ illustration && /* @__PURE__ */ jsx30("div", { className: "object-cover", children: illustration })
3126
1124
  ]
3127
1125
  }
3128
1126
  ),
3129
1127
  /* @__PURE__ */ jsxs19(Stack, { grow: variant === "simple", direction: "row", className: "h-fit", children: [
3130
- /* @__PURE__ */ jsx31("div", { className: "h-full min-w-[8.2%] bg-book-bind-bg opacity-100 mix-blend-overlay" }),
3131
- /* @__PURE__ */ jsx31("div", { className: "w-full contain-inline-size", children })
1128
+ /* @__PURE__ */ jsx30("div", { className: "h-full min-w-[8.2%] bg-book-bind-bg opacity-100 mix-blend-overlay" }),
1129
+ /* @__PURE__ */ jsx30("div", { className: "w-full contain-inline-size", children })
3132
1130
  ] }),
3133
- texture && /* @__PURE__ */ jsx31(
1131
+ texture && /* @__PURE__ */ jsx30(
3134
1132
  "div",
3135
1133
  {
3136
1134
  "aria-hidden": true,
@@ -3140,7 +1138,7 @@ function Book(props) {
3140
1138
  ]
3141
1139
  }
3142
1140
  ),
3143
- /* @__PURE__ */ jsx31(
1141
+ /* @__PURE__ */ jsx30(
3144
1142
  "div",
3145
1143
  {
3146
1144
  "aria-hidden": true,
@@ -3150,7 +1148,7 @@ function Book(props) {
3150
1148
  }
3151
1149
  }
3152
1150
  ),
3153
- /* @__PURE__ */ jsx31(
1151
+ /* @__PURE__ */ jsx30(
3154
1152
  "div",
3155
1153
  {
3156
1154
  "aria-hidden": true,
@@ -3178,7 +1176,7 @@ function Stack(props) {
3178
1176
  className,
3179
1177
  ...etc
3180
1178
  } = props;
3181
- return /* @__PURE__ */ jsx31(
1179
+ return /* @__PURE__ */ jsx30(
3182
1180
  "div",
3183
1181
  {
3184
1182
  className,
@@ -3202,7 +1200,7 @@ function Stack(props) {
3202
1200
 
3203
1201
  // src/components/ui/dots-pattern.tsx
3204
1202
  import { useId as useId2 } from "react";
3205
- import { jsx as jsx32, jsxs as jsxs20 } from "react/jsx-runtime";
1203
+ import { jsx as jsx31, jsxs as jsxs20 } from "react/jsx-runtime";
3206
1204
  function DotsPattern({
3207
1205
  dotSize = 2,
3208
1206
  gapSize = 10,
@@ -3217,7 +1215,7 @@ function DotsPattern({
3217
1215
  width: "100%",
3218
1216
  height: "100%",
3219
1217
  children: [
3220
- /* @__PURE__ */ jsx32("defs", { children: /* @__PURE__ */ jsx32(
1218
+ /* @__PURE__ */ jsx31("defs", { children: /* @__PURE__ */ jsx31(
3221
1219
  "pattern",
3222
1220
  {
3223
1221
  id: `dots-${id}`,
@@ -3226,17 +1224,17 @@ function DotsPattern({
3226
1224
  width: dotSize + gapSize,
3227
1225
  height: dotSize + gapSize,
3228
1226
  patternUnits: "userSpaceOnUse",
3229
- children: /* @__PURE__ */ jsx32("rect", { x: 1, y: 1, width: dotSize, height: dotSize, fill: "currentColor" })
1227
+ children: /* @__PURE__ */ jsx31("rect", { x: 1, y: 1, width: dotSize, height: dotSize, fill: "currentColor" })
3230
1228
  }
3231
1229
  ) }),
3232
- /* @__PURE__ */ jsx32("rect", { fill: `url(#dots-${id})`, width: "100%", height: "100%" })
1230
+ /* @__PURE__ */ jsx31("rect", { fill: `url(#dots-${id})`, width: "100%", height: "100%" })
3233
1231
  ]
3234
1232
  }
3235
1233
  );
3236
1234
  }
3237
1235
 
3238
1236
  // src/components/ui/hexagon-badge.tsx
3239
- import { jsx as jsx33, jsxs as jsxs21 } from "react/jsx-runtime";
1237
+ import { jsx as jsx32, jsxs as jsxs21 } from "react/jsx-runtime";
3240
1238
  var HexagonBadge = ({ children, classNames }) => {
3241
1239
  return /* @__PURE__ */ jsxs21("div", { className: cn("relative shrink-0", classNames?.base), children: [
3242
1240
  /* @__PURE__ */ jsxs21(
@@ -3249,14 +1247,14 @@ var HexagonBadge = ({ children, classNames }) => {
3249
1247
  fill: "none",
3250
1248
  xmlns: "http://www.w3.org/2000/svg",
3251
1249
  children: [
3252
- /* @__PURE__ */ jsx33(
1250
+ /* @__PURE__ */ jsx32(
3253
1251
  "path",
3254
1252
  {
3255
1253
  d: "M16 2.4641C19.7128 0.320509 24.2872 0.320508 28 2.4641L37.6506 8.0359C41.3634 10.1795 43.6506 14.141 43.6506\n 18.4282V29.5718C43.6506 33.859 41.3634 37.8205 37.6506 39.9641L28 45.5359C24.2872 47.6795 19.7128 47.6795 16 45.5359L6.34937\n 39.9641C2.63655 37.8205 0.349365 33.859 0.349365 29.5718V18.4282C0.349365 14.141 2.63655 10.1795 6.34937 8.0359L16 2.4641Z",
3256
1254
  fill: ""
3257
1255
  }
3258
1256
  ),
3259
- /* @__PURE__ */ jsx33(
1257
+ /* @__PURE__ */ jsx32(
3260
1258
  "path",
3261
1259
  {
3262
1260
  d: "M16.25 2.89711C19.8081 0.842838 24.1919 0.842837 27.75 2.89711L37.4006 8.46891C40.9587 10.5232 43.1506 14.3196 43.1506\n 18.4282V29.5718C43.1506 33.6804 40.9587 37.4768 37.4006 39.5311L27.75 45.1029C24.1919 47.1572 19.8081 47.1572 16.25 45.1029L6.59937\n 39.5311C3.04125 37.4768 0.849365 33.6803 0.849365 29.5718V18.4282C0.849365 14.3196 3.04125 10.5232 6.59937 8.46891L16.25 2.89711Z",
@@ -3266,7 +1264,7 @@ var HexagonBadge = ({ children, classNames }) => {
3266
1264
  ]
3267
1265
  }
3268
1266
  ),
3269
- /* @__PURE__ */ jsx33(
1267
+ /* @__PURE__ */ jsx32(
3270
1268
  "div",
3271
1269
  {
3272
1270
  className: cn(
@@ -3285,7 +1283,7 @@ import {
3285
1283
  useRef,
3286
1284
  useState as useState4
3287
1285
  } from "react";
3288
- import { Fragment as Fragment3, jsx as jsx34, jsxs as jsxs22 } from "react/jsx-runtime";
1286
+ import { Fragment as Fragment3, jsx as jsx33, jsxs as jsxs22 } from "react/jsx-runtime";
3289
1287
  var DEFAULT_NULL_INDEX = -1;
3290
1288
  var DEFAULT_DATA_URL_KEY = "dataURL";
3291
1289
  var openFileDialog = (inputRef) => {
@@ -3422,7 +1420,7 @@ var ImageInput = ({
3422
1420
  e.dataTransfer.clearData();
3423
1421
  };
3424
1422
  return /* @__PURE__ */ jsxs22(Fragment3, { children: [
3425
- /* @__PURE__ */ jsx34(
1423
+ /* @__PURE__ */ jsx33(
3426
1424
  "input",
3427
1425
  {
3428
1426
  ref: inputRef,
@@ -3470,7 +1468,7 @@ import {
3470
1468
  DropdownMenuSubTrigger as DropdownMenuSubTrigger2,
3471
1469
  DropdownMenuTrigger as DropdownMenuTrigger2
3472
1470
  } from "@pelatform/ui.components/radix";
3473
- import { jsx as jsx35, jsxs as jsxs23 } from "react/jsx-runtime";
1471
+ import { jsx as jsx34, jsxs as jsxs23 } from "react/jsx-runtime";
3474
1472
  function getFlagUrl(flag) {
3475
1473
  const flagCode = flag.toLowerCase();
3476
1474
  return `"https://assets.pelatform.com"/media/flags/${flagCode}.svg`;
@@ -3505,7 +1503,7 @@ function LanguageSwitcher({
3505
1503
  }
3506
1504
  if (type === "dropdown") {
3507
1505
  return /* @__PURE__ */ jsxs23(DropdownMenu2, { children: [
3508
- /* @__PURE__ */ jsx35(DropdownMenuTrigger2, { asChild: true, children: /* @__PURE__ */ jsxs23(
1506
+ /* @__PURE__ */ jsx34(DropdownMenuTrigger2, { asChild: true, children: /* @__PURE__ */ jsxs23(
3509
1507
  Button5,
3510
1508
  {
3511
1509
  variant,
@@ -3517,12 +1515,12 @@ function LanguageSwitcher({
3517
1515
  ),
3518
1516
  disabled: isPending,
3519
1517
  children: [
3520
- /* @__PURE__ */ jsx35(LanguagesIcon, { className: "size-4" }),
3521
- /* @__PURE__ */ jsx35("span", { className: "sr-only", children: isPending ? "Changing language..." : "Language dropdown" })
1518
+ /* @__PURE__ */ jsx34(LanguagesIcon, { className: "size-4" }),
1519
+ /* @__PURE__ */ jsx34("span", { className: "sr-only", children: isPending ? "Changing language..." : "Language dropdown" })
3522
1520
  ]
3523
1521
  }
3524
1522
  ) }),
3525
- /* @__PURE__ */ jsx35(
1523
+ /* @__PURE__ */ jsx34(
3526
1524
  DropdownMenuContent2,
3527
1525
  {
3528
1526
  align: "end",
@@ -3534,7 +1532,7 @@ function LanguageSwitcher({
3534
1532
  onClick: () => handleLanguageChange(lang.code),
3535
1533
  className: cn("gap-2", currentLocale === lang.code && "bg-accent"),
3536
1534
  children: [
3537
- showFlags && lang.flag ? /* @__PURE__ */ jsx35(
1535
+ showFlags && lang.flag ? /* @__PURE__ */ jsx34(
3538
1536
  Image2,
3539
1537
  {
3540
1538
  src: customFlagUrl ? lang.flag : getFlagUrl(lang.flag),
@@ -3543,9 +1541,9 @@ function LanguageSwitcher({
3543
1541
  width: 24,
3544
1542
  height: 24
3545
1543
  }
3546
- ) : showFlags ? /* @__PURE__ */ jsx35(GlobeIcon, { className: "size-4" }) : null,
3547
- showNames && /* @__PURE__ */ jsx35("span", { className: "text-sm", children: lang.name }),
3548
- currentLocale === lang.code && /* @__PURE__ */ jsx35("span", { className: "ms-auto text-muted-foreground text-xs", children: "\u2713" })
1544
+ ) : showFlags ? /* @__PURE__ */ jsx34(GlobeIcon, { className: "size-4" }) : null,
1545
+ showNames && /* @__PURE__ */ jsx34("span", { className: "text-sm", children: lang.name }),
1546
+ currentLocale === lang.code && /* @__PURE__ */ jsx34("span", { className: "ms-auto text-muted-foreground text-xs", children: "\u2713" })
3549
1547
  ]
3550
1548
  },
3551
1549
  lang.code
@@ -3563,12 +1561,12 @@ function LanguageSwitcher({
3563
1561
  className
3564
1562
  ),
3565
1563
  children: [
3566
- /* @__PURE__ */ jsx35(GlobeIcon, { className: "size-4" }),
1564
+ /* @__PURE__ */ jsx34(GlobeIcon, { className: "size-4" }),
3567
1565
  /* @__PURE__ */ jsxs23("span", { className: "relative flex grow items-center justify-between gap-2", children: [
3568
1566
  label,
3569
1567
  currentLanguage && /* @__PURE__ */ jsxs23(Badge3, { variant: "outline", className: "absolute end-0 top-1/2 -translate-y-1/2", children: [
3570
1568
  currentLanguage.name,
3571
- showFlags && currentLanguage.flag && /* @__PURE__ */ jsx35(
1569
+ showFlags && currentLanguage.flag && /* @__PURE__ */ jsx34(
3572
1570
  Image2,
3573
1571
  {
3574
1572
  src: customFlagUrl ? currentLanguage.flag : getFlagUrl(currentLanguage.flag),
@@ -3583,7 +1581,7 @@ function LanguageSwitcher({
3583
1581
  ]
3584
1582
  }
3585
1583
  ),
3586
- /* @__PURE__ */ jsx35(DropdownMenuSubContent2, { className: "w-48", children: /* @__PURE__ */ jsx35(
1584
+ /* @__PURE__ */ jsx34(DropdownMenuSubContent2, { className: "w-48", children: /* @__PURE__ */ jsx34(
3587
1585
  DropdownMenuRadioGroup,
3588
1586
  {
3589
1587
  value: currentLocale,
@@ -3594,7 +1592,7 @@ function LanguageSwitcher({
3594
1592
  value: item.code,
3595
1593
  className: "flex items-center gap-2",
3596
1594
  children: [
3597
- showFlags && item.flag ? /* @__PURE__ */ jsx35(
1595
+ showFlags && item.flag ? /* @__PURE__ */ jsx34(
3598
1596
  Image2,
3599
1597
  {
3600
1598
  src: customFlagUrl ? item.flag : getFlagUrl(item.flag),
@@ -3603,8 +1601,8 @@ function LanguageSwitcher({
3603
1601
  width: 24,
3604
1602
  height: 24
3605
1603
  }
3606
- ) : showFlags ? /* @__PURE__ */ jsx35(GlobeIcon, { className: "size-4" }) : null,
3607
- /* @__PURE__ */ jsx35("span", { children: item.name })
1604
+ ) : showFlags ? /* @__PURE__ */ jsx34(GlobeIcon, { className: "size-4" }) : null,
1605
+ /* @__PURE__ */ jsx34("span", { children: item.name })
3608
1606
  ]
3609
1607
  },
3610
1608
  item.code
@@ -3615,15 +1613,15 @@ function LanguageSwitcher({
3615
1613
  }
3616
1614
 
3617
1615
  // src/components/ui/logo.tsx
3618
- import { jsx as jsx36 } from "react/jsx-runtime";
1616
+ import { jsx as jsx35 } from "react/jsx-runtime";
3619
1617
  function Logo({ className }) {
3620
- return /* @__PURE__ */ jsx36(
1618
+ return /* @__PURE__ */ jsx35(
3621
1619
  "svg",
3622
1620
  {
3623
1621
  xmlns: "http://www.w3.org/2000/svg",
3624
1622
  viewBox: "0 0 300 300",
3625
1623
  className: cn("size-8 text-primary", className),
3626
- children: /* @__PURE__ */ jsx36(
1624
+ children: /* @__PURE__ */ jsx35(
3627
1625
  "path",
3628
1626
  {
3629
1627
  fill: "currentColor",
@@ -3635,7 +1633,7 @@ function Logo({ className }) {
3635
1633
  }
3636
1634
 
3637
1635
  // src/components/ui/mode-switcher.tsx
3638
- import * as React3 from "react";
1636
+ import * as React2 from "react";
3639
1637
  import { MonitorIcon, MoonIcon, SunIcon } from "lucide-react";
3640
1638
  import { useTheme } from "next-themes";
3641
1639
  import {
@@ -3645,7 +1643,7 @@ import {
3645
1643
  DropdownMenuItem as DropdownMenuItem3,
3646
1644
  DropdownMenuTrigger as DropdownMenuTrigger3
3647
1645
  } from "@pelatform/ui.components/radix";
3648
- import { Fragment as Fragment4, jsx as jsx37, jsxs as jsxs24 } from "react/jsx-runtime";
1646
+ import { Fragment as Fragment4, jsx as jsx36, jsxs as jsxs24 } from "react/jsx-runtime";
3649
1647
  function ModeSwitcher({
3650
1648
  className,
3651
1649
  variant = "ghost",
@@ -3659,7 +1657,7 @@ function ModeSwitcher({
3659
1657
  }
3660
1658
  }) {
3661
1659
  const { setTheme, theme } = useTheme();
3662
- const toggleTheme = React3.useCallback(() => {
1660
+ const toggleTheme = React2.useCallback(() => {
3663
1661
  const currentIndex = cycleOrder.indexOf(theme);
3664
1662
  const nextIndex = (currentIndex + 1) % cycleOrder.length;
3665
1663
  const nextTheme = cycleOrder[nextIndex];
@@ -3668,22 +1666,22 @@ function ModeSwitcher({
3668
1666
  const getCurrentIcon = (withLabel = false) => {
3669
1667
  if (theme === THEME_MODES.SYSTEM) {
3670
1668
  return /* @__PURE__ */ jsxs24(Fragment4, { children: [
3671
- /* @__PURE__ */ jsx37(MonitorIcon, {}),
1669
+ /* @__PURE__ */ jsx36(MonitorIcon, {}),
3672
1670
  " ",
3673
- withLabel && /* @__PURE__ */ jsx37("span", { children: label.system })
1671
+ withLabel && /* @__PURE__ */ jsx36("span", { children: label.system })
3674
1672
  ] });
3675
1673
  }
3676
1674
  if (theme === THEME_MODES.DARK) {
3677
1675
  return /* @__PURE__ */ jsxs24(Fragment4, { children: [
3678
- /* @__PURE__ */ jsx37(MoonIcon, {}),
1676
+ /* @__PURE__ */ jsx36(MoonIcon, {}),
3679
1677
  " ",
3680
- withLabel && /* @__PURE__ */ jsx37("span", { children: label.dark })
1678
+ withLabel && /* @__PURE__ */ jsx36("span", { children: label.dark })
3681
1679
  ] });
3682
1680
  }
3683
1681
  return /* @__PURE__ */ jsxs24(Fragment4, { children: [
3684
- /* @__PURE__ */ jsx37(SunIcon, {}),
1682
+ /* @__PURE__ */ jsx36(SunIcon, {}),
3685
1683
  " ",
3686
- withLabel && /* @__PURE__ */ jsx37("span", { children: label.light })
1684
+ withLabel && /* @__PURE__ */ jsx36("span", { children: label.light })
3687
1685
  ] });
3688
1686
  };
3689
1687
  const isActive = (val) => theme === val;
@@ -3698,14 +1696,14 @@ function ModeSwitcher({
3698
1696
  "aria-label": "Switch theme",
3699
1697
  children: [
3700
1698
  getCurrentIcon(),
3701
- /* @__PURE__ */ jsx37("span", { className: "sr-only", children: "Toggle theme" })
1699
+ /* @__PURE__ */ jsx36("span", { className: "sr-only", children: "Toggle theme" })
3702
1700
  ]
3703
1701
  }
3704
1702
  );
3705
1703
  }
3706
1704
  if (type === "dropdown") {
3707
1705
  return /* @__PURE__ */ jsxs24(DropdownMenu3, { children: [
3708
- /* @__PURE__ */ jsx37(DropdownMenuTrigger3, { asChild: true, children: /* @__PURE__ */ jsxs24(
1706
+ /* @__PURE__ */ jsx36(DropdownMenuTrigger3, { asChild: true, children: /* @__PURE__ */ jsxs24(
3709
1707
  Button6,
3710
1708
  {
3711
1709
  size,
@@ -3716,7 +1714,7 @@ function ModeSwitcher({
3716
1714
  ),
3717
1715
  children: [
3718
1716
  getCurrentIcon(),
3719
- /* @__PURE__ */ jsx37("span", { className: "sr-only", children: "Toggle theme" })
1717
+ /* @__PURE__ */ jsx36("span", { className: "sr-only", children: "Toggle theme" })
3720
1718
  ]
3721
1719
  }
3722
1720
  ) }),
@@ -3727,7 +1725,7 @@ function ModeSwitcher({
3727
1725
  className: isActive("light") ? "bg-accent" : "",
3728
1726
  onClick: () => setTheme("light"),
3729
1727
  children: [
3730
- /* @__PURE__ */ jsx37(SunIcon, {}),
1728
+ /* @__PURE__ */ jsx36(SunIcon, {}),
3731
1729
  label.light
3732
1730
  ]
3733
1731
  }
@@ -3738,7 +1736,7 @@ function ModeSwitcher({
3738
1736
  className: isActive("dark") ? "bg-accent" : "",
3739
1737
  onClick: () => setTheme("dark"),
3740
1738
  children: [
3741
- /* @__PURE__ */ jsx37(MoonIcon, {}),
1739
+ /* @__PURE__ */ jsx36(MoonIcon, {}),
3742
1740
  label.dark
3743
1741
  ]
3744
1742
  }
@@ -3749,7 +1747,7 @@ function ModeSwitcher({
3749
1747
  className: isActive("system") ? "bg-accent" : "",
3750
1748
  onClick: () => setTheme("system"),
3751
1749
  children: [
3752
- /* @__PURE__ */ jsx37(MonitorIcon, {}),
1750
+ /* @__PURE__ */ jsx36(MonitorIcon, {}),
3753
1751
  label.system
3754
1752
  ]
3755
1753
  }
@@ -3757,7 +1755,7 @@ function ModeSwitcher({
3757
1755
  ] })
3758
1756
  ] });
3759
1757
  }
3760
- return /* @__PURE__ */ jsx37(
1758
+ return /* @__PURE__ */ jsx36(
3761
1759
  DropdownMenuItem3,
3762
1760
  {
3763
1761
  className,
@@ -3779,7 +1777,7 @@ import {
3779
1777
  useMotionValue,
3780
1778
  useTransform
3781
1779
  } from "motion/react";
3782
- import { Fragment as Fragment5, jsx as jsx38, jsxs as jsxs25 } from "react/jsx-runtime";
1780
+ import { Fragment as Fragment5, jsx as jsx37, jsxs as jsxs25 } from "react/jsx-runtime";
3783
1781
  function MovingLabel({
3784
1782
  borderRadius = "1.75rem",
3785
1783
  children,
@@ -3799,7 +1797,7 @@ function MovingLabel({
3799
1797
  },
3800
1798
  ...otherProps,
3801
1799
  children: [
3802
- /* @__PURE__ */ jsx38("div", { className: "absolute inset-0", style: { borderRadius: `calc(${borderRadius} * 0.96)` }, children: /* @__PURE__ */ jsx38(MovingBorder, { duration, rx: "30%", ry: "30%", children: /* @__PURE__ */ jsx38(
1800
+ /* @__PURE__ */ jsx37("div", { className: "absolute inset-0", style: { borderRadius: `calc(${borderRadius} * 0.96)` }, children: /* @__PURE__ */ jsx37(MovingBorder, { duration, rx: "30%", ry: "30%", children: /* @__PURE__ */ jsx37(
3803
1801
  "div",
3804
1802
  {
3805
1803
  className: cn(
@@ -3808,7 +1806,7 @@ function MovingLabel({
3808
1806
  )
3809
1807
  }
3810
1808
  ) }) }),
3811
- /* @__PURE__ */ jsx38(
1809
+ /* @__PURE__ */ jsx37(
3812
1810
  "div",
3813
1811
  {
3814
1812
  className: cn(
@@ -3845,7 +1843,7 @@ var MovingBorder = ({
3845
1843
  const y = useTransform(progress, (val) => pathRef.current?.getPointAtLength(val).y);
3846
1844
  const transform = useMotionTemplate`translateX(${x}px) translateY(${y}px) translateX(-50%) translateY(-50%)`;
3847
1845
  return /* @__PURE__ */ jsxs25(Fragment5, { children: [
3848
- /* @__PURE__ */ jsx38(
1846
+ /* @__PURE__ */ jsx37(
3849
1847
  "svg",
3850
1848
  {
3851
1849
  preserveAspectRatio: "none",
@@ -3853,10 +1851,10 @@ var MovingBorder = ({
3853
1851
  width: "100%",
3854
1852
  height: "100%",
3855
1853
  ...otherProps,
3856
- children: /* @__PURE__ */ jsx38("rect", { fill: "none", width: "100%", height: "100%", rx, ry, ref: pathRef })
1854
+ children: /* @__PURE__ */ jsx37("rect", { fill: "none", width: "100%", height: "100%", rx, ry, ref: pathRef })
3857
1855
  }
3858
1856
  ),
3859
- /* @__PURE__ */ jsx38(
1857
+ /* @__PURE__ */ jsx37(
3860
1858
  motion2.div,
3861
1859
  {
3862
1860
  style: {
@@ -3873,24 +1871,24 @@ var MovingBorder = ({
3873
1871
  };
3874
1872
 
3875
1873
  // src/components/ui/toolbar.tsx
3876
- import { jsx as jsx39 } from "react/jsx-runtime";
1874
+ import { jsx as jsx38 } from "react/jsx-runtime";
3877
1875
  var Toolbar = ({ children }) => {
3878
- return /* @__PURE__ */ jsx39("div", { className: "flex grow items-center justify-between gap-2.5 pb-5", children });
1876
+ return /* @__PURE__ */ jsx38("div", { className: "flex grow items-center justify-between gap-2.5 pb-5", children });
3879
1877
  };
3880
1878
  var ToolbarHeading = ({ children, className }) => {
3881
- return /* @__PURE__ */ jsx39("div", { className: cn("flex flex-col flex-wrap gap-px", className), children });
1879
+ return /* @__PURE__ */ jsx38("div", { className: cn("flex flex-col flex-wrap gap-px", className), children });
3882
1880
  };
3883
1881
  var ToolbarTitle = ({ className, children }) => {
3884
- return /* @__PURE__ */ jsx39("h1", { className: cn("font-semibold text-foreground text-lg", className), children });
1882
+ return /* @__PURE__ */ jsx38("h1", { className: cn("font-semibold text-foreground text-lg", className), children });
3885
1883
  };
3886
1884
  var ToolbarActions = ({ children }) => {
3887
- return /* @__PURE__ */ jsx39("div", { className: "flex flex-wrap items-center gap-1.5 lg:gap-3.5", children });
1885
+ return /* @__PURE__ */ jsx38("div", { className: "flex flex-wrap items-center gap-1.5 lg:gap-3.5", children });
3888
1886
  };
3889
1887
 
3890
1888
  // src/components/ui/user-avatar.tsx
3891
1889
  import { cva } from "class-variance-authority";
3892
1890
  import { Avatar, AvatarFallback, AvatarImage } from "@pelatform/ui.components/radix";
3893
- import { jsx as jsx40, jsxs as jsxs26 } from "react/jsx-runtime";
1891
+ import { jsx as jsx39, jsxs as jsxs26 } from "react/jsx-runtime";
3894
1892
  var avatarStatusVariants = cva(
3895
1893
  "flex size-2 items-center rounded-full border-2 border-background",
3896
1894
  {
@@ -3911,9 +1909,9 @@ function UserAvatar({ className, indicator = false, src, alt }) {
3911
1909
  const name = alt ?? "User";
3912
1910
  const initial = getInitials(name);
3913
1911
  return /* @__PURE__ */ jsxs26(Avatar, { className, children: [
3914
- /* @__PURE__ */ jsx40(AvatarImage, { src: src ?? void 0, alt: name }),
3915
- /* @__PURE__ */ jsx40(AvatarFallback, { children: initial }),
3916
- indicator && /* @__PURE__ */ jsx40(AvatarIndicator, { className: "-end-2 -top-2", children: /* @__PURE__ */ jsx40(AvatarStatus, { variant: "online", className: "size-2.5" }) })
1912
+ /* @__PURE__ */ jsx39(AvatarImage, { src: src ?? void 0, alt: name }),
1913
+ /* @__PURE__ */ jsx39(AvatarFallback, { children: initial }),
1914
+ indicator && /* @__PURE__ */ jsx39(AvatarIndicator, { className: "-end-2 -top-2", children: /* @__PURE__ */ jsx39(AvatarStatus, { variant: "online", className: "size-2.5" }) })
3917
1915
  ] });
3918
1916
  }
3919
1917
  var getInitials = (name, count) => {
@@ -3924,7 +1922,7 @@ var getInitials = (name, count) => {
3924
1922
  return count && count > 0 ? initials.slice(0, count).join("") : initials.join("");
3925
1923
  };
3926
1924
  function AvatarIndicator({ className, ...props }) {
3927
- return /* @__PURE__ */ jsx40(
1925
+ return /* @__PURE__ */ jsx39(
3928
1926
  "div",
3929
1927
  {
3930
1928
  "data-slot": "avatar-indicator",
@@ -3938,7 +1936,7 @@ function AvatarStatus({
3938
1936
  variant,
3939
1937
  ...props
3940
1938
  }) {
3941
- return /* @__PURE__ */ jsx40(
1939
+ return /* @__PURE__ */ jsx39(
3942
1940
  "div",
3943
1941
  {
3944
1942
  "data-slot": "avatar-status",
@@ -3949,7 +1947,7 @@ function AvatarStatus({
3949
1947
  }
3950
1948
 
3951
1949
  // src/components/utils/fonts.tsx
3952
- import { jsx as jsx41 } from "react/jsx-runtime";
1950
+ import { jsx as jsx40 } from "react/jsx-runtime";
3953
1951
  var satoshiFontUrl = "https://assets.pelatform.com/fonts/satoshi/Satoshi-Variable.woff2";
3954
1952
  var cssFontFace = `
3955
1953
  @font-face {
@@ -3961,7 +1959,7 @@ var cssFontFace = `
3961
1959
  }
3962
1960
  `;
3963
1961
  function SatoshiFontCSS() {
3964
- return /* @__PURE__ */ jsx41("style", { dangerouslySetInnerHTML: { __html: cssFontFace } });
1962
+ return /* @__PURE__ */ jsx40("style", { dangerouslySetInnerHTML: { __html: cssFontFace } });
3965
1963
  }
3966
1964
  export {
3967
1965
  AlertComingsoon,