@hexclave/dashboard-ui-components 1.0.47 → 1.0.48

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.
@@ -4461,6 +4461,49 @@ This is likely an error in Hexclave. Please make sure you are running the newest
4461
4461
  return Object.assign(Result.error(new RetryError(errors)), { attempts: totalAttempts });
4462
4462
  }
4463
4463
 
4464
+ // ../shared/dist/esm/utils/bytes.js
4465
+ function decodeBase64(input) {
4466
+ return new Uint8Array(atob(input).split("").map((char) => char.charCodeAt(0)));
4467
+ }
4468
+ function isBase64(input) {
4469
+ return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(input);
4470
+ }
4471
+
4472
+ // ../shared/dist/esm/utils/urls.js
4473
+ function createUrlIfValid(...args) {
4474
+ try {
4475
+ return new URL(...args);
4476
+ } catch (e40) {
4477
+ return null;
4478
+ }
4479
+ }
4480
+ function isValidUrl(url) {
4481
+ return !!createUrlIfValid(url);
4482
+ }
4483
+ function isValidHostname(hostname) {
4484
+ if (!hostname || hostname.startsWith(".") || hostname.endsWith(".") || hostname.includes("..")) return false;
4485
+ const url = createUrlIfValid(`https://${hostname}`);
4486
+ if (!url) return false;
4487
+ return url.hostname === hostname;
4488
+ }
4489
+ function isValidHostnameWithWildcards(hostname) {
4490
+ if (!hostname) return false;
4491
+ if (!hostname.includes("*")) return isValidHostname(hostname);
4492
+ if (hostname.startsWith(".") || hostname.endsWith(".")) return false;
4493
+ if (hostname.includes("..")) return false;
4494
+ const testHostname = hostname.replace(/\*+/g, "wildcard");
4495
+ if (!/^[a-zA-Z0-9.-]+$/.test(testHostname)) return false;
4496
+ const segments = hostname.split(/\*+/);
4497
+ for (let i = 0; i < segments.length; i++) {
4498
+ const segment = segments[i];
4499
+ if (segment === "") continue;
4500
+ if (i === 0 && segment.startsWith(".")) return false;
4501
+ if (i === segments.length - 1 && segment.endsWith(".")) return false;
4502
+ if (segment.includes("..")) return false;
4503
+ }
4504
+ return true;
4505
+ }
4506
+
4464
4507
  // ../shared/dist/esm/known-errors.js
4465
4508
  var KnownError = class extends StatusError {
4466
4509
  constructor(statusCode, humanReadableMessage, details) {
@@ -5217,49 +5260,6 @@ This is likely an error in Hexclave. Please make sure you are running the newest
5217
5260
  knownErrorCodes.add(KnownError2.errorCode);
5218
5261
  }
5219
5262
 
5220
- // ../shared/dist/esm/utils/bytes.js
5221
- function decodeBase64(input) {
5222
- return new Uint8Array(atob(input).split("").map((char) => char.charCodeAt(0)));
5223
- }
5224
- function isBase64(input) {
5225
- return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(input);
5226
- }
5227
-
5228
- // ../shared/dist/esm/utils/urls.js
5229
- function createUrlIfValid(...args) {
5230
- try {
5231
- return new URL(...args);
5232
- } catch (e40) {
5233
- return null;
5234
- }
5235
- }
5236
- function isValidUrl(url) {
5237
- return !!createUrlIfValid(url);
5238
- }
5239
- function isValidHostname(hostname) {
5240
- if (!hostname || hostname.startsWith(".") || hostname.endsWith(".") || hostname.includes("..")) return false;
5241
- const url = createUrlIfValid(`https://${hostname}`);
5242
- if (!url) return false;
5243
- return url.hostname === hostname;
5244
- }
5245
- function isValidHostnameWithWildcards(hostname) {
5246
- if (!hostname) return false;
5247
- if (!hostname.includes("*")) return isValidHostname(hostname);
5248
- if (hostname.startsWith(".") || hostname.endsWith(".")) return false;
5249
- if (hostname.includes("..")) return false;
5250
- const testHostname = hostname.replace(/\*+/g, "wildcard");
5251
- if (!/^[a-zA-Z0-9.-]+$/.test(testHostname)) return false;
5252
- const segments = hostname.split(/\*+/);
5253
- for (let i = 0; i < segments.length; i++) {
5254
- const segment = segments[i];
5255
- if (segment === "") continue;
5256
- if (i === 0 && segment.startsWith(".")) return false;
5257
- if (i === segments.length - 1 && segment.endsWith(".")) return false;
5258
- if (segment.includes("..")) return false;
5259
- }
5260
- return true;
5261
- }
5262
-
5263
5263
  // ../../node_modules/.pnpm/yup@1.7.1/node_modules/yup/index.esm.js
5264
5264
  var import_property_expr = __toESM(require_property_expr());
5265
5265
  var import_tiny_case = __toESM(require_tiny_case());
@@ -23286,18 +23286,20 @@ ${colorConfig.map(([key, itemConfig]) => {
23286
23286
  strings
23287
23287
  }) {
23288
23288
  const ref = (0, import_react35.useRef)(null);
23289
+ const onIntersectRef = (0, import_react35.useRef)(onIntersect);
23290
+ onIntersectRef.current = onIntersect;
23289
23291
  (0, import_react35.useEffect)(() => {
23290
23292
  const el = ref.current;
23291
23293
  if (!el) return;
23292
23294
  const observer = new IntersectionObserver(
23293
23295
  (entries) => {
23294
- if (entries[0]?.isIntersecting) onIntersect();
23296
+ if (entries[0]?.isIntersecting) onIntersectRef.current();
23295
23297
  },
23296
23298
  { root: rootRef?.current ?? null, rootMargin: "200px" }
23297
23299
  );
23298
23300
  observer.observe(el);
23299
23301
  return () => observer.disconnect();
23300
- }, [onIntersect, rootRef]);
23302
+ }, [rootRef]);
23301
23303
  return /* @__PURE__ */ jsx("div", { ref, className: "flex items-center justify-center py-4", children: isLoading && /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-xs text-muted-foreground", children: [
23302
23304
  /* @__PURE__ */ jsx("div", { className: "h-3 w-3 rounded-full border-2 border-current border-t-transparent animate-spin" }),
23303
23305
  strings.loadingMore