@frybynite/image-cloud 0.7.3 → 0.7.4

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.
@@ -1,4 +1,4 @@
1
- const mt = Object.freeze({
1
+ const ft = Object.freeze({
2
2
  none: "none",
3
3
  sm: "0 2px 4px rgba(0,0,0,0.1)",
4
4
  md: "0 4px 16px rgba(0,0,0,0.4)",
@@ -24,7 +24,7 @@ const mt = Object.freeze({
24
24
  mode: "none"
25
25
  }), yt = Object.freeze({
26
26
  mode: "none"
27
- }), At = Object.freeze({
27
+ }), Tt = Object.freeze({
28
28
  default: Object.freeze({
29
29
  border: Object.freeze({
30
30
  width: 0,
@@ -33,6 +33,7 @@ const mt = Object.freeze({
33
33
  style: "solid"
34
34
  }),
35
35
  shadow: "none",
36
+ clipPath: void 0,
36
37
  filter: Object.freeze({}),
37
38
  opacity: 1,
38
39
  cursor: "pointer",
@@ -49,17 +50,17 @@ const mt = Object.freeze({
49
50
  focused: Object.freeze({
50
51
  shadow: "none"
51
52
  })
52
- }), Dt = Object.freeze({
53
+ }), Ot = Object.freeze({
53
54
  rows: 1,
54
55
  amplitude: 100,
55
56
  frequency: 2,
56
57
  phaseShift: 0,
57
58
  synchronization: "offset"
58
59
  // Note: Image rotation along wave is now controlled via image.rotation.mode = 'tangent'
59
- }), Ot = Object.freeze({
60
+ }), $t = Object.freeze({
60
61
  mobile: Object.freeze({ maxWidth: 767 }),
61
62
  tablet: Object.freeze({ maxWidth: 1199 })
62
- }), $t = Object.freeze({
63
+ }), Pt = Object.freeze({
63
64
  mode: "adaptive",
64
65
  // Default to adaptive sizing
65
66
  minSize: 50,
@@ -77,15 +78,15 @@ const mt = Object.freeze({
77
78
  min: -15,
78
79
  max: 15
79
80
  })
80
- }), Tt = Object.freeze({
81
- sizing: $t,
82
- rotation: Ut
83
81
  }), Ct = Object.freeze({
82
+ sizing: Pt,
83
+ rotation: Ut
84
+ }), Rt = Object.freeze({
84
85
  validateUrls: !0,
85
86
  validationTimeout: 5e3,
86
87
  validationMethod: "head",
87
88
  allowedExtensions: ["jpg", "jpeg", "png", "gif", "webp", "bmp"]
88
- }), Rt = Object.freeze({
89
+ }), Mt = Object.freeze({
89
90
  enabled: !1,
90
91
  centers: !1,
91
92
  loaders: !1
@@ -94,17 +95,17 @@ const mt = Object.freeze({
94
95
  loaders: [],
95
96
  // Shared loader settings and debug config
96
97
  config: Object.freeze({
97
- loaders: Ct,
98
- debug: Rt
98
+ loaders: Rt,
99
+ debug: Mt
99
100
  }),
100
101
  // Image sizing and rotation configuration
101
- image: Tt,
102
+ image: Ct,
102
103
  // Pattern-based layout configuration
103
104
  layout: Object.freeze({
104
105
  algorithm: "radial",
105
106
  scaleDecay: 0,
106
107
  // No decay by default (0-1 for radial/spiral)
107
- responsive: Ot,
108
+ responsive: $t,
108
109
  targetCoverage: 0.6,
109
110
  // Target 60% of container area
110
111
  densityFactor: 1,
@@ -215,15 +216,15 @@ const mt = Object.freeze({
215
216
  })
216
217
  }),
217
218
  // Image styling
218
- styling: At
219
+ styling: Tt
219
220
  });
220
221
  function Z(n, t) {
221
222
  if (!n) return t || {};
222
223
  if (!t) return { ...n };
223
224
  const e = { ...n };
224
- return t.border !== void 0 && (e.border = { ...n.border, ...t.border }), t.borderTop !== void 0 && (e.borderTop = { ...n.borderTop, ...t.borderTop }), t.borderRight !== void 0 && (e.borderRight = { ...n.borderRight, ...t.borderRight }), t.borderBottom !== void 0 && (e.borderBottom = { ...n.borderBottom, ...t.borderBottom }), t.borderLeft !== void 0 && (e.borderLeft = { ...n.borderLeft, ...t.borderLeft }), t.filter !== void 0 && (e.filter = { ...n.filter, ...t.filter }), t.outline !== void 0 && (e.outline = { ...n.outline, ...t.outline }), t.shadow !== void 0 && (e.shadow = t.shadow), t.opacity !== void 0 && (e.opacity = t.opacity), t.cursor !== void 0 && (e.cursor = t.cursor), t.className !== void 0 && (e.className = t.className), t.objectFit !== void 0 && (e.objectFit = t.objectFit), t.aspectRatio !== void 0 && (e.aspectRatio = t.aspectRatio), t.borderRadiusTopLeft !== void 0 && (e.borderRadiusTopLeft = t.borderRadiusTopLeft), t.borderRadiusTopRight !== void 0 && (e.borderRadiusTopRight = t.borderRadiusTopRight), t.borderRadiusBottomRight !== void 0 && (e.borderRadiusBottomRight = t.borderRadiusBottomRight), t.borderRadiusBottomLeft !== void 0 && (e.borderRadiusBottomLeft = t.borderRadiusBottomLeft), e;
225
+ return t.border !== void 0 && (e.border = { ...n.border, ...t.border }), t.borderTop !== void 0 && (e.borderTop = { ...n.borderTop, ...t.borderTop }), t.borderRight !== void 0 && (e.borderRight = { ...n.borderRight, ...t.borderRight }), t.borderBottom !== void 0 && (e.borderBottom = { ...n.borderBottom, ...t.borderBottom }), t.borderLeft !== void 0 && (e.borderLeft = { ...n.borderLeft, ...t.borderLeft }), t.filter !== void 0 && (e.filter = { ...n.filter, ...t.filter }), t.outline !== void 0 && (e.outline = { ...n.outline, ...t.outline }), t.shadow !== void 0 && (e.shadow = t.shadow), t.clipPath !== void 0 && (e.clipPath = t.clipPath), t.opacity !== void 0 && (e.opacity = t.opacity), t.cursor !== void 0 && (e.cursor = t.cursor), t.className !== void 0 && (e.className = t.className), t.objectFit !== void 0 && (e.objectFit = t.objectFit), t.aspectRatio !== void 0 && (e.aspectRatio = t.aspectRatio), t.borderRadiusTopLeft !== void 0 && (e.borderRadiusTopLeft = t.borderRadiusTopLeft), t.borderRadiusTopRight !== void 0 && (e.borderRadiusTopRight = t.borderRadiusTopRight), t.borderRadiusBottomRight !== void 0 && (e.borderRadiusBottomRight = t.borderRadiusBottomRight), t.borderRadiusBottomLeft !== void 0 && (e.borderRadiusBottomLeft = t.borderRadiusBottomLeft), e;
225
226
  }
226
- function Pt(n, t) {
227
+ function _t(n, t) {
227
228
  if (!t) return { ...n };
228
229
  const e = Z(n.default, t.default), i = Z(
229
230
  Z(e, n.hover),
@@ -238,7 +239,7 @@ function Pt(n, t) {
238
239
  focused: o
239
240
  };
240
241
  }
241
- function _t(n, t) {
242
+ function Ht(n, t) {
242
243
  if (!t) return { ...n };
243
244
  const e = { ...n };
244
245
  if (t.sizing !== void 0 && (e.sizing = {
@@ -257,7 +258,7 @@ function _t(n, t) {
257
258
  }
258
259
  return e;
259
260
  }
260
- function Ht(n) {
261
+ function Nt(n) {
261
262
  const t = n.layout?.rotation;
262
263
  if (t && "enabled" in t)
263
264
  return {
@@ -267,7 +268,7 @@ function Ht(n) {
267
268
  }
268
269
  };
269
270
  }
270
- function Nt(n) {
271
+ function jt(n) {
271
272
  const t = n.layout?.sizing?.variance;
272
273
  if (t)
273
274
  return {
@@ -278,8 +279,8 @@ function Nt(n) {
278
279
  }
279
280
  };
280
281
  }
281
- function jt(n = {}) {
282
- const t = Ht(n), e = Nt(n);
282
+ function kt(n = {}) {
283
+ const t = Nt(n), e = jt(n);
283
284
  let i = n.image;
284
285
  (t || e) && (i = {
285
286
  ...e || {},
@@ -297,18 +298,18 @@ function jt(n = {}) {
297
298
  });
298
299
  const r = {
299
300
  loaders: {
300
- ...Ct,
301
+ ...Rt,
301
302
  ...n.config?.loaders ?? {}
302
303
  }
303
304
  }, a = {
304
305
  loaders: o,
305
306
  config: r,
306
- image: _t(Tt, i),
307
+ image: Ht(Ct, i),
307
308
  layout: { ...y.layout },
308
309
  animation: { ...y.animation },
309
310
  interaction: { ...y.interaction },
310
311
  rendering: { ...y.rendering },
311
- styling: Pt(At, n.styling)
312
+ styling: _t(Tt, n.styling)
312
313
  };
313
314
  return n.layout && (a.layout = {
314
315
  ...y.layout,
@@ -371,20 +372,20 @@ function jt(n = {}) {
371
372
  ...y.rendering.performance,
372
373
  ...n.rendering.performance
373
374
  })), a.config.debug = {
374
- ...Rt,
375
+ ...Mt,
375
376
  ...n.config?.debug ?? {}
376
377
  }, a;
377
378
  }
378
- function kt(n, t) {
379
+ function Wt(n, t) {
379
380
  return { ...n ? wt[n] : wt.playful, ...t };
380
381
  }
381
- function Wt(n, t) {
382
+ function Gt(n, t) {
382
383
  return { ...n ? xt[n] : xt.gentle, ...t };
383
384
  }
384
- function Gt(n, t) {
385
+ function qt(n, t) {
385
386
  return { ...n ? St[n] : St.gentle, ...t };
386
387
  }
387
- class qt {
388
+ class Yt {
388
389
  constructor(t) {
389
390
  this.activeAnimations = /* @__PURE__ */ new Map(), this.animationIdCounter = 0, this.config = t;
390
391
  }
@@ -543,31 +544,31 @@ class qt {
543
544
  function V(n, t, e) {
544
545
  return n + (t - n) * e;
545
546
  }
546
- function Yt(n, t, e, i) {
547
- const { overshoot: o, bounces: s, decayRatio: r } = i, a = e.x - t.x, h = e.y - t.y, c = Xt(s, r);
548
- let u = 0, l = 0, d = 1, m = o, b = !1;
547
+ function Xt(n, t, e, i) {
548
+ const { overshoot: o, bounces: s, decayRatio: r } = i, a = e.x - t.x, h = e.y - t.y, c = Bt(s, r);
549
+ let u = 0, l = 0, d = 1, f = o, b = !1;
549
550
  for (let g = 0; g < c.length; g++)
550
551
  if (n <= c[g].time) {
551
- l = g === 0 ? 0 : c[g - 1].time, d = c[g].time, m = c[g].overshoot, b = c[g].isOvershoot;
552
+ l = g === 0 ? 0 : c[g - 1].time, d = c[g].time, f = c[g].overshoot, b = c[g].isOvershoot;
552
553
  break;
553
554
  }
554
555
  const p = (n - l) / (d - l);
555
556
  if (b)
556
- u = 1 + m * ot(p);
557
+ u = 1 + f * ot(p);
557
558
  else if (l === 0)
558
559
  u = ot(p);
559
560
  else {
560
- const f = 1 + (c.find(
561
+ const m = 1 + (c.find(
561
562
  (S, v) => S.time > l && v > 0 && c[v - 1].isOvershoot
562
- )?.overshoot || m);
563
- u = V(f, 1, ot(p));
563
+ )?.overshoot || f);
564
+ u = V(m, 1, ot(p));
564
565
  }
565
566
  return {
566
567
  x: t.x + a * u,
567
568
  y: t.y + h * u
568
569
  };
569
570
  }
570
- function Xt(n, t) {
571
+ function Bt(n, t) {
571
572
  const e = [];
572
573
  let i = 0.6;
573
574
  e.push({ time: i, overshoot: 0, isOvershoot: !1 });
@@ -577,11 +578,11 @@ function Xt(n, t) {
577
578
  i += r, e.push({ time: i, overshoot: o, isOvershoot: !0 }), i += r, e.push({ time: i, overshoot: o * t, isOvershoot: !1 }), o *= t;
578
579
  return e.push({ time: 1, overshoot: 0, isOvershoot: !1 }), e;
579
580
  }
580
- function Bt(n, t, e, i) {
581
+ function Jt(n, t, e, i) {
581
582
  const { stiffness: o, damping: s, mass: r, oscillations: a } = i, h = e.x - t.x, c = e.y - t.y, u = Math.sqrt(o / r), l = s / (2 * Math.sqrt(o * r));
582
583
  let d;
583
584
  if (l < 1) {
584
- const m = u * Math.sqrt(1 - l * l), b = Math.exp(-l * u * n * 3), p = Math.cos(m * n * a * Math.PI);
585
+ const f = u * Math.sqrt(1 - l * l), b = Math.exp(-l * u * n * 3), p = Math.cos(f * n * a * Math.PI);
585
586
  d = 1 - b * p;
586
587
  } else
587
588
  d = 1 - Math.exp(-u * n * 3);
@@ -590,44 +591,44 @@ function Bt(n, t, e, i) {
590
591
  y: t.y + c * d
591
592
  };
592
593
  }
593
- function Jt(n, t, e, i) {
594
- const { amplitude: o, frequency: s, decay: r, decayRate: a, phase: h } = i, c = e.x - t.x, u = e.y - t.y, l = Math.sqrt(c * c + u * u), d = l > 0 ? -u / l : 0, m = l > 0 ? c / l : 1, b = s * Math.PI * 2 * n + h, p = r ? Math.pow(1 - n, a) : 1, g = o * Math.sin(b) * p, f = Vt(n);
594
+ function Vt(n, t, e, i) {
595
+ const { amplitude: o, frequency: s, decay: r, decayRate: a, phase: h } = i, c = e.x - t.x, u = e.y - t.y, l = Math.sqrt(c * c + u * u), d = l > 0 ? -u / l : 0, f = l > 0 ? c / l : 1, b = s * Math.PI * 2 * n + h, p = r ? Math.pow(1 - n, a) : 1, g = o * Math.sin(b) * p, m = Kt(n);
595
596
  return {
596
- x: V(t.x, e.x, f) + g * d,
597
- y: V(t.y, e.y, f) + g * m
597
+ x: V(t.x, e.x, m) + g * d,
598
+ y: V(t.y, e.y, m) + g * f
598
599
  };
599
600
  }
600
601
  function ot(n) {
601
602
  return 1 - (1 - n) * (1 - n);
602
603
  }
603
- function Vt(n) {
604
+ function Kt(n) {
604
605
  return 1 - Math.pow(1 - n, 3);
605
606
  }
606
- function Kt(n, t, e) {
607
+ function Zt(n, t, e) {
607
608
  const { amplitude: i, frequency: o, decay: s } = e, r = Math.sin(n * o * Math.PI * 2), a = s ? Math.pow(1 - n, 2) : 1, h = i * r * a;
608
609
  return t + h;
609
610
  }
610
- function Zt(n, t, e) {
611
+ function Qt(n, t, e) {
611
612
  const { overshoot: i, bounces: o } = e, s = [];
612
613
  s.push({ time: 0.5, scale: i });
613
614
  let r = i;
614
615
  const a = 0.5, c = 0.5 / (o * 2);
615
616
  let u = 0.5;
616
617
  for (let d = 0; d < o; d++) {
617
- const m = 1 - (r - 1) * a;
618
- u += c, s.push({ time: u, scale: m }), r = 1 + (r - 1) * a * a, u += c, d < o - 1 && s.push({ time: u, scale: r });
618
+ const f = 1 - (r - 1) * a;
619
+ u += c, s.push({ time: u, scale: f }), r = 1 + (r - 1) * a * a, u += c, d < o - 1 && s.push({ time: u, scale: r });
619
620
  }
620
621
  s.push({ time: 1, scale: 1 });
621
622
  let l = 1;
622
623
  for (let d = 0; d < s.length; d++)
623
624
  if (n <= s[d].time) {
624
- const m = d === 0 ? 0 : s[d - 1].time, b = d === 0 ? 1 : s[d - 1].scale, p = (n - m) / (s[d].time - m), g = ot(p);
625
+ const f = d === 0 ? 0 : s[d - 1].time, b = d === 0 ? 1 : s[d - 1].scale, p = (n - f) / (s[d].time - f), g = ot(p);
625
626
  l = b + (s[d].scale - b) * g;
626
627
  break;
627
628
  }
628
629
  return l * t;
629
630
  }
630
- function Qt(n) {
631
+ function te(n) {
631
632
  const {
632
633
  element: t,
633
634
  startPosition: e,
@@ -641,40 +642,40 @@ function Qt(n) {
641
642
  onComplete: u,
642
643
  rotationConfig: l,
643
644
  startRotation: d,
644
- scaleConfig: m,
645
+ scaleConfig: f,
645
646
  startScale: b
646
- } = n, p = o.type, g = d !== void 0 && d !== h, f = l?.mode === "wobble", S = l?.wobble || { amplitude: 15, frequency: 3, decay: !0 }, v = g || f, w = b !== void 0 && b !== c, E = m?.mode === "pop", x = m?.pop || { overshoot: 1.2, bounces: 1 };
647
+ } = n, p = o.type, g = d !== void 0 && d !== h, m = l?.mode === "wobble", S = l?.wobble || { amplitude: 15, frequency: 3, decay: !0 }, v = g || m, w = b !== void 0 && b !== c, E = f?.mode === "pop", x = f?.pop || { overshoot: 1.2, bounces: 1 };
647
648
  if ((p === "linear" || p === "arc") && !v && !(w || E)) {
648
649
  u && u();
649
650
  return;
650
651
  }
651
- const L = performance.now(), z = -r / 2, P = -a / 2;
652
+ const L = performance.now(), z = -r / 2, U = -a / 2;
652
653
  function _(Y) {
653
654
  const N = Y - L, T = Math.min(N / s, 1);
654
655
  let D;
655
656
  switch (p) {
656
657
  case "bounce": {
657
- const O = kt(
658
+ const O = Wt(
658
659
  o.bouncePreset,
659
660
  o.bounce
660
661
  );
661
- D = Yt(T, e, i, O);
662
+ D = Xt(T, e, i, O);
662
663
  break;
663
664
  }
664
665
  case "elastic": {
665
- const O = Wt(
666
+ const O = Gt(
666
667
  o.elasticPreset,
667
668
  o.elastic
668
669
  );
669
- D = Bt(T, e, i, O);
670
+ D = Jt(T, e, i, O);
670
671
  break;
671
672
  }
672
673
  case "wave": {
673
- const O = Gt(
674
+ const O = qt(
674
675
  o.wavePreset,
675
676
  o.wave
676
677
  );
677
- D = Jt(T, e, i, O);
678
+ D = Vt(T, e, i, O);
678
679
  break;
679
680
  }
680
681
  default:
@@ -685,16 +686,16 @@ function Qt(n) {
685
686
  }
686
687
  const k = D.x - i.x, H = D.y - i.y;
687
688
  let R;
688
- f ? R = Kt(T, h, S) : g ? R = V(d, h, T) : R = h;
689
+ m ? R = Zt(T, h, S) : g ? R = V(d, h, T) : R = h;
689
690
  let C;
690
- E ? C = Zt(T, c, x) : w ? C = V(b, c, T) : C = c, t.style.transform = `translate(${z}px, ${P}px) translate(${k}px, ${H}px) rotate(${R}deg) scale(${C})`, T < 1 ? requestAnimationFrame(_) : (t.style.transform = `translate(${z}px, ${P}px) rotate(${h}deg) scale(${c})`, u && u());
691
+ E ? C = Qt(T, c, x) : w ? C = V(b, c, T) : C = c, t.style.transform = `translate(${z}px, ${U}px) translate(${k}px, ${H}px) rotate(${R}deg) scale(${C})`, T < 1 ? requestAnimationFrame(_) : (t.style.transform = `translate(${z}px, ${U}px) rotate(${h}deg) scale(${c})`, u && u());
691
692
  }
692
693
  requestAnimationFrame(_);
693
694
  }
694
- function te(n) {
695
+ function ee(n) {
695
696
  return n === "bounce" || n === "elastic" || n === "wave";
696
697
  }
697
- const ee = {
698
+ const ie = {
698
699
  radial: "center",
699
700
  spiral: "center",
700
701
  grid: "top",
@@ -702,7 +703,7 @@ const ee = {
702
703
  random: "nearest-edge",
703
704
  wave: "left"
704
705
  };
705
- class ie {
706
+ class ne {
706
707
  constructor(t, e) {
707
708
  this.config = t, this.layoutAlgorithm = e, this.resolvedStartPosition = this.resolveStartPosition(), this.pathConfig = t.path || pt, this.rotationConfig = t.rotation || bt, this.scaleConfig = t.scale || yt;
708
709
  }
@@ -710,7 +711,7 @@ class ie {
710
711
  * Get the effective start position, considering layout-aware defaults
711
712
  */
712
713
  resolveStartPosition() {
713
- return this.config.start.position ? this.config.start.position : ee[this.layoutAlgorithm] || "nearest-edge";
714
+ return this.config.start.position ? this.config.start.position : ie[this.layoutAlgorithm] || "nearest-edge";
714
715
  }
715
716
  /**
716
717
  * Calculate the starting position for an image's entry animation
@@ -749,8 +750,8 @@ class ie {
749
750
  */
750
751
  calculateNearestEdge(t, e, i, o) {
751
752
  const s = t.x, r = t.y, a = s, h = i.width - s, c = r, u = i.height - r, l = Math.min(a, h, c, u);
752
- let d = t.x, m = t.y;
753
- return l === a ? d = -(e.width + o) : l === h ? d = i.width + o : l === c ? m = -(e.height + o) : m = i.height + o, { x: d, y: m };
753
+ let d = t.x, f = t.y;
754
+ return l === a ? d = -(e.width + o) : l === h ? d = i.width + o : l === c ? f = -(e.height + o) : f = i.height + o, { x: d, y: f };
754
755
  }
755
756
  /**
756
757
  * Calculate start position from a specific edge
@@ -808,8 +809,8 @@ class ie {
808
809
  h = typeof c == "number" ? c : 500;
809
810
  let u;
810
811
  a === "even" ? u = o / s * 2 * Math.PI : u = Math.random() * 2 * Math.PI;
811
- const l = i.width / 2, d = i.height / 2, m = l + Math.cos(u) * h, b = d + Math.sin(u) * h;
812
- return { x: m, y: b };
812
+ const l = i.width / 2, d = i.height / 2, f = l + Math.cos(u) * h, b = d + Math.sin(u) * h;
813
+ return { x: f, y: b };
813
814
  }
814
815
  /**
815
816
  * Get animation parameters for an image
@@ -829,7 +830,7 @@ class ie {
829
830
  * Uses pixel-based centering offset for reliable cross-browser behavior
830
831
  */
831
832
  buildStartTransform(t, e, i, o, s, r, a, h) {
832
- const c = t.x - e.x, u = t.y - e.y, l = a !== void 0 ? a : i, d = h !== void 0 ? h : o, m = s !== void 0 ? -s / 2 : 0, b = r !== void 0 ? -r / 2 : 0, p = s !== void 0 ? `translate(${m}px, ${b}px)` : "translate(-50%, -50%)";
833
+ const c = t.x - e.x, u = t.y - e.y, l = a !== void 0 ? a : i, d = h !== void 0 ? h : o, f = s !== void 0 ? -s / 2 : 0, b = r !== void 0 ? -r / 2 : 0, p = s !== void 0 ? `translate(${f}px, ${b}px)` : "translate(-50%, -50%)";
833
834
  return t.useScale ? `${p} translate(${c}px, ${u}px) rotate(${l}deg) scale(0)` : `${p} translate(${c}px, ${u}px) rotate(${l}deg) scale(${d})`;
834
835
  }
835
836
  /**
@@ -855,7 +856,7 @@ class ie {
855
856
  * Check if the current path type requires JavaScript animation
856
857
  */
857
858
  requiresJSAnimation() {
858
- return te(this.pathConfig.type);
859
+ return ee(this.pathConfig.type);
859
860
  }
860
861
  /**
861
862
  * Get the path configuration
@@ -1046,7 +1047,7 @@ class ie {
1046
1047
  return 1 - (1 - t) * (1 - t);
1047
1048
  }
1048
1049
  }
1049
- class ne {
1050
+ class oe {
1050
1051
  constructor(t, e = {}) {
1051
1052
  this.config = t, this.imageConfig = e;
1052
1053
  }
@@ -1058,14 +1059,14 @@ class ne {
1058
1059
  * @returns Array of layout objects with position, rotation, scale
1059
1060
  */
1060
1061
  generate(t, e, i = {}) {
1061
- const o = [], { width: s, height: r } = e, a = this.config.spacing.padding, h = i.fixedHeight ?? 200, c = this.imageConfig.rotation?.mode ?? "none", u = this.imageConfig.rotation?.range?.min ?? -15, l = this.imageConfig.rotation?.range?.max ?? 15, d = this.imageConfig.sizing?.variance?.min ?? 1, m = this.imageConfig.sizing?.variance?.max ?? 1, b = d !== 1 || m !== 1, g = h * 1.5 / 2, f = h / 2, S = s - a - g, v = r - a - f, w = a + g, E = a + f;
1062
+ const o = [], { width: s, height: r } = e, a = this.config.spacing.padding, h = i.fixedHeight ?? 200, c = this.imageConfig.rotation?.mode ?? "none", u = this.imageConfig.rotation?.range?.min ?? -15, l = this.imageConfig.rotation?.range?.max ?? 15, d = this.imageConfig.sizing?.variance?.min ?? 1, f = this.imageConfig.sizing?.variance?.max ?? 1, b = d !== 1 || f !== 1, g = h * 1.5 / 2, m = h / 2, S = s - a - g, v = r - a - m, w = a + g, E = a + m;
1062
1063
  for (let x = 0; x < t; x++) {
1063
- const A = this.random(w, S), L = this.random(E, v), z = c === "random" ? this.random(u, l) : 0, P = b ? this.random(d, m) : 1, _ = h * P, Y = {
1064
+ const A = this.random(w, S), L = this.random(E, v), z = c === "random" ? this.random(u, l) : 0, U = b ? this.random(d, f) : 1, _ = h * U, Y = {
1064
1065
  id: x,
1065
1066
  x: A,
1066
1067
  y: L,
1067
1068
  rotation: z,
1068
- scale: P,
1069
+ scale: U,
1069
1070
  baseSize: _
1070
1071
  };
1071
1072
  o.push(Y);
@@ -1082,7 +1083,7 @@ class ne {
1082
1083
  return Math.random() * (e - t) + t;
1083
1084
  }
1084
1085
  }
1085
- class oe {
1086
+ class se {
1086
1087
  constructor(t, e = {}) {
1087
1088
  this.config = t, this.imageConfig = e;
1088
1089
  }
@@ -1094,13 +1095,13 @@ class oe {
1094
1095
  * @returns Array of layout objects with position, rotation, scale
1095
1096
  */
1096
1097
  generate(t, e, i = {}) {
1097
- const o = [], { width: s, height: r } = e, a = i.fixedHeight ?? 200, h = this.imageConfig.rotation?.mode ?? "none", c = this.imageConfig.rotation?.range?.min ?? -15, u = this.imageConfig.rotation?.range?.max ?? 15, l = this.imageConfig.sizing?.variance?.min ?? 1, d = this.imageConfig.sizing?.variance?.max ?? 1, m = l !== 1 || d !== 1, b = this.config.scaleDecay ?? 0, p = i.fixedHeight ?? a, g = s / 2, f = r / 2, S = Math.ceil(Math.sqrt(t));
1098
+ const o = [], { width: s, height: r } = e, a = i.fixedHeight ?? 200, h = this.imageConfig.rotation?.mode ?? "none", c = this.imageConfig.rotation?.range?.min ?? -15, u = this.imageConfig.rotation?.range?.max ?? 15, l = this.imageConfig.sizing?.variance?.min ?? 1, d = this.imageConfig.sizing?.variance?.max ?? 1, f = l !== 1 || d !== 1, b = this.config.scaleDecay ?? 0, p = i.fixedHeight ?? a, g = s / 2, m = r / 2, S = Math.ceil(Math.sqrt(t));
1098
1099
  if (t > 0) {
1099
- const E = m ? this.random(l, d) : 1, x = p * E;
1100
+ const E = f ? this.random(l, d) : 1, x = p * E;
1100
1101
  o.push({
1101
1102
  id: 0,
1102
1103
  x: g,
1103
- y: f,
1104
+ y: m,
1104
1105
  rotation: h === "random" ? this.random(c * 0.33, u * 0.33) : 0,
1105
1106
  // Less rotation for center
1106
1107
  scale: E,
@@ -1111,17 +1112,17 @@ class oe {
1111
1112
  }
1112
1113
  let v = 1, w = 1;
1113
1114
  for (; v < t; ) {
1114
- const E = w / S, x = b > 0 ? 1 - E * b * 0.5 : 1, A = w * (p * 0.8), L = A * 1.5, z = Math.PI * (3 * (L + A) - Math.sqrt((3 * L + A) * (L + 3 * A))), P = this.estimateWidth(p), _ = Math.floor(z / (P * 0.7));
1115
+ const E = w / S, x = b > 0 ? 1 - E * b * 0.5 : 1, A = w * (p * 0.8), L = A * 1.5, z = Math.PI * (3 * (L + A) - Math.sqrt((3 * L + A) * (L + 3 * A))), U = this.estimateWidth(p), _ = Math.floor(z / (U * 0.7));
1115
1116
  if (_ === 0) {
1116
1117
  w++;
1117
1118
  continue;
1118
1119
  }
1119
1120
  const Y = 2 * Math.PI / _, N = w * (20 * Math.PI / 180);
1120
1121
  for (let T = 0; T < _ && v < t; T++) {
1121
- const D = T * Y + N, k = m ? this.random(l, d) : 1, H = x * k, R = p * H;
1122
- let C = g + Math.cos(D) * L, O = f + Math.sin(D) * A;
1123
- const $ = this.config.spacing.padding ?? 50, U = R * 1.5 / 2, M = R / 2;
1124
- C - U < $ ? C = $ + U : C + U > s - $ && (C = s - $ - U), O - M < $ ? O = $ + M : O + M > r - $ && (O = r - $ - M);
1122
+ const D = T * Y + N, k = f ? this.random(l, d) : 1, H = x * k, R = p * H;
1123
+ let C = g + Math.cos(D) * L, O = m + Math.sin(D) * A;
1124
+ const $ = this.config.spacing.padding ?? 50, P = R * 1.5 / 2, M = R / 2;
1125
+ C - P < $ ? C = $ + P : C + P > s - $ && (C = s - $ - P), O - M < $ ? O = $ + M : O + M > r - $ && (O = r - $ - M);
1125
1126
  const W = h === "random" ? this.random(c, u) : 0;
1126
1127
  o.push({
1127
1128
  id: v,
@@ -1157,7 +1158,7 @@ class oe {
1157
1158
  return Math.random() * (e - t) + t;
1158
1159
  }
1159
1160
  }
1160
- const se = {
1161
+ const ae = {
1161
1162
  columns: "auto",
1162
1163
  rows: "auto",
1163
1164
  stagger: "none",
@@ -1185,7 +1186,7 @@ const se = {
1185
1186
  { x: 0, y: 1 }
1186
1187
  // down
1187
1188
  ];
1188
- class ae {
1189
+ class re {
1189
1190
  constructor(t, e = {}) {
1190
1191
  this.config = t, this.imageConfig = e;
1191
1192
  }
@@ -1197,18 +1198,18 @@ class ae {
1197
1198
  * @returns Array of layout objects with position, rotation, scale
1198
1199
  */
1199
1200
  generate(t, e, i = {}) {
1200
- const o = [], { width: s, height: r } = e, a = { ...se, ...this.config.grid }, h = this.config.spacing.padding, c = i.fixedHeight ?? 200, u = this.imageConfig.rotation?.mode ?? "none", l = this.imageConfig.sizing?.variance?.min ?? 1, d = this.imageConfig.sizing?.variance?.max ?? 1, m = l !== 1 || d !== 1, b = s - 2 * h, p = r - 2 * h, { columns: g, rows: f } = this.calculateGridDimensions(
1201
+ const o = [], { width: s, height: r } = e, a = { ...ae, ...this.config.grid }, h = this.config.spacing.padding, c = i.fixedHeight ?? 200, u = this.imageConfig.rotation?.mode ?? "none", l = this.imageConfig.sizing?.variance?.min ?? 1, d = this.imageConfig.sizing?.variance?.max ?? 1, f = l !== 1 || d !== 1, b = s - 2 * h, p = r - 2 * h, { columns: g, rows: m } = this.calculateGridDimensions(
1201
1202
  t,
1202
1203
  b,
1203
1204
  p,
1204
1205
  c,
1205
1206
  a
1206
- ), S = a.stagger === "row", v = a.stagger === "column", w = S ? g + 0.5 : g, E = v ? f + 0.5 : f, x = (b - a.gap * (g - 1)) / w, A = (p - a.gap * (f - 1)) / E, L = S ? x / 2 : 0, z = v ? A / 2 : 0, P = 1 + a.overlap, _ = Math.min(x, A) * P, Y = i.fixedHeight ? Math.min(i.fixedHeight, _) : _, N = g * x + (g - 1) * a.gap + L, T = f * A + (f - 1) * a.gap + z, D = h + (b - N) / 2, k = h + (p - T) / 2, H = g * f, R = a.columns !== "auto" && a.rows !== "auto", C = R && t > H;
1207
+ ), S = a.stagger === "row", v = a.stagger === "column", w = S ? g + 0.5 : g, E = v ? m + 0.5 : m, x = (b - a.gap * (g - 1)) / w, A = (p - a.gap * (m - 1)) / E, L = S ? x / 2 : 0, z = v ? A / 2 : 0, U = 1 + a.overlap, _ = Math.min(x, A) * U, Y = i.fixedHeight ? Math.min(i.fixedHeight, _) : _, N = g * x + (g - 1) * a.gap + L, T = m * A + (m - 1) * a.gap + z, D = h + (b - N) / 2, k = h + (p - T) / 2, H = g * m, R = a.columns !== "auto" && a.rows !== "auto", C = R && t > H;
1207
1208
  typeof window < "u" && (window.__gridOverflowDebug = {
1208
1209
  gridConfigColumns: a.columns,
1209
1210
  gridConfigRows: a.rows,
1210
1211
  columns: g,
1211
- rows: f,
1212
+ rows: m,
1212
1213
  cellCount: H,
1213
1214
  hasFixedGrid: R,
1214
1215
  imageCount: t,
@@ -1216,14 +1217,14 @@ class ae {
1216
1217
  });
1217
1218
  const O = C ? new Array(H).fill(0) : [], $ = Math.min(x, A) * a.overflowOffset;
1218
1219
  for (let F = 0; F < t; F++) {
1219
- let U, M, W = 0;
1220
+ let P, M, W = 0;
1220
1221
  if (C && F >= H) {
1221
1222
  const q = F - H, j = q % H;
1222
- W = Math.floor(q / H) + 1, O[j]++, a.fillDirection === "row" ? (U = j % g, M = Math.floor(j / g)) : (M = j % f, U = Math.floor(j / f));
1223
+ W = Math.floor(q / H) + 1, O[j]++, a.fillDirection === "row" ? (P = j % g, M = Math.floor(j / g)) : (M = j % m, P = Math.floor(j / m));
1223
1224
  } else
1224
- a.fillDirection === "row" ? (U = F % g, M = Math.floor(F / g)) : (M = F % f, U = Math.floor(F / f));
1225
- let G = D + U * (x + a.gap) + x / 2, X = k + M * (A + a.gap) + A / 2;
1226
- if (a.stagger === "row" && M % 2 === 1 ? G += x / 2 : a.stagger === "column" && U % 2 === 1 && (X += A / 2), W > 0) {
1225
+ a.fillDirection === "row" ? (P = F % g, M = Math.floor(F / g)) : (M = F % m, P = Math.floor(F / m));
1226
+ let G = D + P * (x + a.gap) + x / 2, X = k + M * (A + a.gap) + A / 2;
1227
+ if (a.stagger === "row" && M % 2 === 1 ? G += x / 2 : a.stagger === "column" && P % 2 === 1 && (X += A / 2), W > 0) {
1227
1228
  const q = (W - 1) % Et.length, j = Et[q];
1228
1229
  G += j.x * $, X += j.y * $;
1229
1230
  }
@@ -1240,8 +1241,8 @@ class ae {
1240
1241
  a.alignment === "center" ? gt = (N - vt) / 2 : a.alignment === "end" && (gt = N - vt), B += gt;
1241
1242
  }
1242
1243
  }
1243
- const rt = m ? this.random(l, d) : 1, K = Y * rt, it = K * 1.5 / 2, nt = K / 2, lt = h + it, ht = s - h - it, zt = h + nt, Ft = r - h - nt;
1244
- B = Math.max(lt, Math.min(B, ht)), J = Math.max(zt, Math.min(J, Ft));
1244
+ const rt = f ? this.random(l, d) : 1, K = Y * rt, it = K * 1.5 / 2, nt = K / 2, lt = h + it, ht = s - h - it, Ft = h + nt, Dt = r - h - nt;
1245
+ B = Math.max(lt, Math.min(B, ht)), J = Math.max(Ft, Math.min(J, Dt));
1245
1246
  let dt = 0;
1246
1247
  if (u === "random") {
1247
1248
  const q = this.imageConfig.rotation?.range?.min ?? -15, j = this.imageConfig.rotation?.range?.max ?? 15;
@@ -1285,14 +1286,14 @@ class ae {
1285
1286
  return Math.random() * (e - t) + t;
1286
1287
  }
1287
1288
  }
1288
- const re = Math.PI * (3 - Math.sqrt(5)), ce = {
1289
+ const ce = Math.PI * (3 - Math.sqrt(5)), le = {
1289
1290
  spiralType: "golden",
1290
1291
  direction: "counterclockwise",
1291
1292
  tightness: 1,
1292
1293
  scaleDecay: 0,
1293
1294
  startAngle: 0
1294
1295
  };
1295
- class le {
1296
+ class he {
1296
1297
  constructor(t, e = {}) {
1297
1298
  this.config = t, this.imageConfig = e;
1298
1299
  }
@@ -1304,14 +1305,14 @@ class le {
1304
1305
  * @returns Array of layout objects with position, rotation, scale
1305
1306
  */
1306
1307
  generate(t, e, i = {}) {
1307
- const o = [], { width: s, height: r } = e, a = { ...ce, ...this.config.spiral }, h = this.config.spacing.padding, c = i.fixedHeight ?? 200, u = this.imageConfig.rotation?.mode ?? "none", l = this.imageConfig.rotation?.range?.min ?? -15, d = this.imageConfig.rotation?.range?.max ?? 15, m = this.imageConfig.sizing?.variance?.min ?? 1, b = this.imageConfig.sizing?.variance?.max ?? 1, p = m !== 1 || b !== 1, g = this.config.scaleDecay ?? a.scaleDecay, f = s / 2, S = r / 2, v = Math.min(
1308
- f - h - c / 2,
1308
+ const o = [], { width: s, height: r } = e, a = { ...le, ...this.config.spiral }, h = this.config.spacing.padding, c = i.fixedHeight ?? 200, u = this.imageConfig.rotation?.mode ?? "none", l = this.imageConfig.rotation?.range?.min ?? -15, d = this.imageConfig.rotation?.range?.max ?? 15, f = this.imageConfig.sizing?.variance?.min ?? 1, b = this.imageConfig.sizing?.variance?.max ?? 1, p = f !== 1 || b !== 1, g = this.config.scaleDecay ?? a.scaleDecay, m = s / 2, S = r / 2, v = Math.min(
1309
+ m - h - c / 2,
1309
1310
  S - h - c / 2
1310
1311
  ), w = a.direction === "clockwise" ? -1 : 1;
1311
1312
  for (let E = 0; E < t; E++) {
1312
1313
  let x, A;
1313
1314
  if (a.spiralType === "golden")
1314
- x = E * re * w + a.startAngle, A = this.calculateGoldenRadius(E, t, v, a.tightness);
1315
+ x = E * ce * w + a.startAngle, A = this.calculateGoldenRadius(E, t, v, a.tightness);
1315
1316
  else if (a.spiralType === "archimedean") {
1316
1317
  const G = E * 0.5 * a.tightness;
1317
1318
  x = G * w + a.startAngle, A = this.calculateArchimedeanRadius(G, t, v, a.tightness);
@@ -1319,7 +1320,7 @@ class le {
1319
1320
  const G = E * 0.3 * a.tightness;
1320
1321
  x = G * w + a.startAngle, A = this.calculateLogarithmicRadius(G, t, v, a.tightness);
1321
1322
  }
1322
- const L = f + Math.cos(x) * A, z = S + Math.sin(x) * A, P = A / v, _ = g > 0 ? 1 - P * g * 0.5 : 1, Y = p ? this.random(m, b) : 1, N = _ * Y, T = c * N, k = T * 1.5 / 2, H = T / 2, R = h + k, C = s - h - k, O = h + H, $ = r - h - H, F = Math.max(R, Math.min(L, C)), U = Math.max(O, Math.min(z, $));
1323
+ const L = m + Math.cos(x) * A, z = S + Math.sin(x) * A, U = A / v, _ = g > 0 ? 1 - U * g * 0.5 : 1, Y = p ? this.random(f, b) : 1, N = _ * Y, T = c * N, k = T * 1.5 / 2, H = T / 2, R = h + k, C = s - h - k, O = h + H, $ = r - h - H, F = Math.max(R, Math.min(L, C)), P = Math.max(O, Math.min(z, $));
1323
1324
  let M = 0;
1324
1325
  if (u === "random") {
1325
1326
  const G = x * 180 / Math.PI % 360, X = this.random(l, d);
@@ -1329,7 +1330,7 @@ class le {
1329
1330
  o.push({
1330
1331
  id: E,
1331
1332
  x: F,
1332
- y: U,
1333
+ y: P,
1333
1334
  rotation: M,
1334
1335
  scale: N,
1335
1336
  baseSize: T,
@@ -1386,7 +1387,7 @@ class le {
1386
1387
  return Math.random() * (e - t) + t;
1387
1388
  }
1388
1389
  }
1389
- const he = {
1390
+ const de = {
1390
1391
  clusterCount: "auto",
1391
1392
  clusterSpread: 150,
1392
1393
  clusterSpacing: 200,
@@ -1394,7 +1395,7 @@ const he = {
1394
1395
  overlap: 0.3,
1395
1396
  distribution: "gaussian"
1396
1397
  };
1397
- class de {
1398
+ class ue {
1398
1399
  constructor(t, e = {}) {
1399
1400
  this.config = t, this.imageConfig = e;
1400
1401
  }
@@ -1406,13 +1407,13 @@ class de {
1406
1407
  * @returns Array of layout objects with position, rotation, scale
1407
1408
  */
1408
1409
  generate(t, e, i = {}) {
1409
- const o = [], { width: s, height: r } = e, a = { ...he, ...this.config.cluster }, h = this.config.spacing.padding, c = i.fixedHeight ?? 200, u = this.imageConfig.rotation?.mode ?? "none", l = this.imageConfig.rotation?.range?.min ?? -15, d = this.imageConfig.rotation?.range?.max ?? 15, m = this.imageConfig.sizing?.variance?.min ?? 1, b = this.imageConfig.sizing?.variance?.max ?? 1, p = m !== 1 || b !== 1, g = this.calculateClusterCount(
1410
+ const o = [], { width: s, height: r } = e, a = { ...de, ...this.config.cluster }, h = this.config.spacing.padding, c = i.fixedHeight ?? 200, u = this.imageConfig.rotation?.mode ?? "none", l = this.imageConfig.rotation?.range?.min ?? -15, d = this.imageConfig.rotation?.range?.max ?? 15, f = this.imageConfig.sizing?.variance?.min ?? 1, b = this.imageConfig.sizing?.variance?.max ?? 1, p = f !== 1 || b !== 1, g = this.calculateClusterCount(
1410
1411
  t,
1411
1412
  a.clusterCount,
1412
1413
  s,
1413
1414
  r,
1414
1415
  a.clusterSpacing
1415
- ), f = this.generateClusterCenters(
1416
+ ), m = this.generateClusterCenters(
1416
1417
  g,
1417
1418
  s,
1418
1419
  r,
@@ -1423,7 +1424,7 @@ class de {
1423
1424
  S[w % g]++;
1424
1425
  let v = 0;
1425
1426
  for (let w = 0; w < g; w++) {
1426
- const E = f[w], x = S[w];
1427
+ const E = m[w], x = S[w];
1427
1428
  for (let A = 0; A < x; A++) {
1428
1429
  let L, z;
1429
1430
  if (a.distribution === "gaussian")
@@ -1432,13 +1433,13 @@ class de {
1432
1433
  const M = this.random(0, Math.PI * 2), W = this.random(0, E.spread);
1433
1434
  L = Math.cos(M) * W, z = Math.sin(M) * W;
1434
1435
  }
1435
- const P = 1 + a.overlap * 0.5, _ = 1 + a.overlap * 0.3;
1436
- L /= P, z /= P;
1437
- const Y = p ? this.random(m, b) : 1, N = _ * Y, T = c * N;
1436
+ const U = 1 + a.overlap * 0.5, _ = 1 + a.overlap * 0.3;
1437
+ L /= U, z /= U;
1438
+ const Y = p ? this.random(f, b) : 1, N = _ * Y, T = c * N;
1438
1439
  let D = E.x + L, k = E.y + z;
1439
1440
  const R = T * 1.5 / 2, C = T / 2;
1440
1441
  D = Math.max(h + R, Math.min(D, s - h - R)), k = Math.max(h + C, Math.min(k, r - h - C));
1441
- const O = u === "random" ? this.random(l, d) : 0, F = Math.sqrt(L * L + z * z) / E.spread, U = Math.round((1 - F) * 50) + 1;
1442
+ const O = u === "random" ? this.random(l, d) : 0, F = Math.sqrt(L * L + z * z) / E.spread, P = Math.round((1 - F) * 50) + 1;
1442
1443
  o.push({
1443
1444
  id: v,
1444
1445
  x: D,
@@ -1446,7 +1447,7 @@ class de {
1446
1447
  rotation: O,
1447
1448
  scale: N,
1448
1449
  baseSize: T,
1449
- zIndex: U
1450
+ zIndex: P
1450
1451
  }), v++;
1451
1452
  }
1452
1453
  }
@@ -1469,22 +1470,22 @@ class de {
1469
1470
  generateClusterCenters(t, e, i, o, s) {
1470
1471
  const r = [], h = o + s.clusterSpread, c = e - o - s.clusterSpread, u = o + s.clusterSpread, l = i - o - s.clusterSpread;
1471
1472
  for (let d = 0; d < t; d++) {
1472
- let m = null, b = -1;
1473
+ let f = null, b = -1;
1473
1474
  for (let p = 0; p < 100; p++) {
1474
1475
  const g = {
1475
1476
  x: this.random(h, c),
1476
1477
  y: this.random(u, l),
1477
1478
  spread: this.calculateClusterSpread(s)
1478
1479
  };
1479
- let f = 1 / 0;
1480
+ let m = 1 / 0;
1480
1481
  for (const S of r) {
1481
1482
  const v = g.x - S.x, w = g.y - S.y, E = Math.sqrt(v * v + w * w);
1482
- f = Math.min(f, E);
1483
+ m = Math.min(m, E);
1483
1484
  }
1484
- if ((r.length === 0 || f > b) && (m = g, b = f), f >= s.clusterSpacing)
1485
+ if ((r.length === 0 || m > b) && (f = g, b = m), m >= s.clusterSpacing)
1485
1486
  break;
1486
1487
  }
1487
- m && r.push(m);
1488
+ f && r.push(f);
1488
1489
  }
1489
1490
  return r;
1490
1491
  }
@@ -1512,7 +1513,7 @@ class de {
1512
1513
  return Math.random() * (e - t) + t;
1513
1514
  }
1514
1515
  }
1515
- class ue {
1516
+ class ge {
1516
1517
  constructor(t, e = {}) {
1517
1518
  this.config = t, this.imageConfig = e;
1518
1519
  }
@@ -1524,19 +1525,19 @@ class ue {
1524
1525
  * @returns Array of layout objects with position, rotation, scale
1525
1526
  */
1526
1527
  generate(t, e, i = {}) {
1527
- const o = [], { width: s, height: r } = e, a = i.fixedHeight ?? 200, h = this.config.spacing.padding ?? 50, c = this.imageConfig.rotation?.mode ?? "none", u = this.imageConfig.rotation?.range?.min ?? -15, l = this.imageConfig.rotation?.range?.max ?? 15, d = this.imageConfig.sizing?.variance?.min ?? 1, m = this.imageConfig.sizing?.variance?.max ?? 1, b = d !== 1 || m !== 1, p = i.fixedHeight ?? a, g = {
1528
- ...Dt,
1528
+ const o = [], { width: s, height: r } = e, a = i.fixedHeight ?? 200, h = this.config.spacing.padding ?? 50, c = this.imageConfig.rotation?.mode ?? "none", u = this.imageConfig.rotation?.range?.min ?? -15, l = this.imageConfig.rotation?.range?.max ?? 15, d = this.imageConfig.sizing?.variance?.min ?? 1, f = this.imageConfig.sizing?.variance?.max ?? 1, b = d !== 1 || f !== 1, p = i.fixedHeight ?? a, g = {
1529
+ ...Ot,
1529
1530
  ...this.config.wave
1530
- }, { rows: f, amplitude: S, frequency: v, phaseShift: w, synchronization: E } = g, x = Math.ceil(t / f), z = p * 1.5 / 2, P = h + z, _ = s - h - z, Y = _ - P, N = x > 1 ? Y / (x - 1) : 0, T = h + S + p / 2, D = r - h - S - p / 2, k = D - T, H = f > 1 ? k / (f - 1) : 0;
1531
+ }, { rows: m, amplitude: S, frequency: v, phaseShift: w, synchronization: E } = g, x = Math.ceil(t / m), z = p * 1.5 / 2, U = h + z, _ = s - h - z, Y = _ - U, N = x > 1 ? Y / (x - 1) : 0, T = h + S + p / 2, D = r - h - S - p / 2, k = D - T, H = m > 1 ? k / (m - 1) : 0;
1531
1532
  let R = 0;
1532
- for (let C = 0; C < f && R < t; C++) {
1533
- const O = f === 1 ? (T + D) / 2 : T + C * H;
1533
+ for (let C = 0; C < m && R < t; C++) {
1534
+ const O = m === 1 ? (T + D) / 2 : T + C * H;
1534
1535
  let $ = 0;
1535
1536
  E === "offset" ? $ = C * w : E === "alternating" && ($ = C * Math.PI);
1536
1537
  for (let F = 0; F < x && R < t; F++) {
1537
- const U = x === 1 ? (P + _) / 2 : P + F * N, M = this.calculateWaveY(U, s, S, v, $), W = U, G = O + M, X = b ? this.random(d, m) : 1, B = p * X;
1538
+ const P = x === 1 ? (U + _) / 2 : U + F * N, M = this.calculateWaveY(P, s, S, v, $), W = P, G = O + M, X = b ? this.random(d, f) : 1, B = p * X;
1538
1539
  let J = 0;
1539
- c === "tangent" ? J = this.calculateRotation(U, s, S, v, $) : c === "random" && (J = this.random(u, l));
1540
+ c === "tangent" ? J = this.calculateRotation(P, s, S, v, $) : c === "random" && (J = this.random(u, l));
1540
1541
  const K = B * 1.5 / 2, ct = B / 2, it = h + K, nt = s - h - K, lt = h + ct, ht = r - h - ct;
1541
1542
  o.push({
1542
1543
  id: R,
@@ -1589,7 +1590,7 @@ class ue {
1589
1590
  return Math.random() * (e - t) + t;
1590
1591
  }
1591
1592
  }
1592
- class ge {
1593
+ class fe {
1593
1594
  constructor(t) {
1594
1595
  this.config = t.layout, this.imageConfig = t.image, this.layouts = /* @__PURE__ */ new Map(), this.placementLayout = this.initLayout();
1595
1596
  }
@@ -1600,17 +1601,17 @@ class ge {
1600
1601
  initLayout() {
1601
1602
  switch (this.config.algorithm) {
1602
1603
  case "radial":
1603
- return new oe(this.config, this.imageConfig);
1604
+ return new se(this.config, this.imageConfig);
1604
1605
  case "grid":
1605
- return new ae(this.config, this.imageConfig);
1606
+ return new re(this.config, this.imageConfig);
1606
1607
  case "spiral":
1607
- return new le(this.config, this.imageConfig);
1608
+ return new he(this.config, this.imageConfig);
1608
1609
  case "cluster":
1609
- return new de(this.config, this.imageConfig);
1610
- case "wave":
1611
1610
  return new ue(this.config, this.imageConfig);
1611
+ case "wave":
1612
+ return new ge(this.config, this.imageConfig);
1612
1613
  default:
1613
- return new ne(this.config, this.imageConfig);
1614
+ return new oe(this.config, this.imageConfig);
1614
1615
  }
1615
1616
  }
1616
1617
  /**
@@ -1693,12 +1694,12 @@ class ge {
1693
1694
  if (r !== void 0)
1694
1695
  return { height: r };
1695
1696
  const a = s?.minSize ?? 50, h = s?.maxSize ?? 400, c = this.config.targetCoverage ?? 0.6, u = this.config.densityFactor ?? 1, { width: l, height: d } = t, p = l * d * c / e;
1696
- let f = Math.sqrt(p / 1.4);
1697
- f *= u, f = Math.min(f, i);
1698
- let S = this.clamp(f, a, h);
1699
- if (S === a && f < a) {
1697
+ let m = Math.sqrt(p / 1.4);
1698
+ m *= u, m = Math.min(m, i);
1699
+ let S = this.clamp(m, a, h);
1700
+ if (S === a && m < a) {
1700
1701
  const v = Math.max(a * 0.05, 20);
1701
- S = Math.max(v, f);
1702
+ S = Math.max(v, m);
1702
1703
  }
1703
1704
  return { height: S };
1704
1705
  }
@@ -1710,13 +1711,27 @@ class ge {
1710
1711
  }
1711
1712
  }
1712
1713
  var I = /* @__PURE__ */ ((n) => (n.IDLE = "idle", n.FOCUSING = "focusing", n.FOCUSED = "focused", n.UNFOCUSING = "unfocusing", n.CROSS_ANIMATING = "cross_animating", n))(I || {});
1714
+ const It = {
1715
+ // Geometric shapes - uses percentages for responsive sizing
1716
+ circle: "circle(50%)",
1717
+ square: "polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%)",
1718
+ triangle: "polygon(50% 0%, 100% 100%, 0% 100%)",
1719
+ pentagon: "polygon(50% 0%, 100% 38%, 82% 100%, 18% 100%, 0% 38%)",
1720
+ hexagon: "polygon(25% 0%, 75% 0%, 100% 50%, 75% 100%, 25% 100%, 0% 50%)",
1721
+ octagon: "polygon(30% 0%, 70% 0%, 100% 30%, 100% 70%, 70% 100%, 30% 100%, 0% 70%, 0% 30%)",
1722
+ diamond: "polygon(50% 0%, 100% 50%, 50% 100%, 0% 50%)"
1723
+ };
1713
1724
  function me(n) {
1714
- return n in mt;
1715
- }
1716
- function fe(n) {
1717
- return n ? me(n) ? mt[n] : n : mt.md;
1725
+ if (n)
1726
+ return n in It ? It[n] : n;
1718
1727
  }
1719
1728
  function pe(n) {
1729
+ return n in ft;
1730
+ }
1731
+ function be(n) {
1732
+ return n ? pe(n) ? ft[n] : n : ft.md;
1733
+ }
1734
+ function ye(n) {
1720
1735
  if (!n) return "";
1721
1736
  const t = [];
1722
1737
  if (n.grayscale !== void 0 && t.push(`grayscale(${n.grayscale})`), n.blur !== void 0 && t.push(`blur(${n.blur}px)`), n.brightness !== void 0 && t.push(`brightness(${n.brightness})`), n.contrast !== void 0 && t.push(`contrast(${n.contrast})`), n.saturate !== void 0 && t.push(`saturate(${n.saturate})`), n.opacity !== void 0 && t.push(`opacity(${n.opacity})`), n.sepia !== void 0 && t.push(`sepia(${n.sepia})`), n.hueRotate !== void 0 && t.push(`hue-rotate(${n.hueRotate}deg)`), n.invert !== void 0 && t.push(`invert(${n.invert})`), n.dropShadow !== void 0)
@@ -1745,37 +1760,41 @@ function st(n) {
1745
1760
  const s = n.border || {}, r = { ...s, ...n.borderTop }, a = { ...s, ...n.borderRight }, h = { ...s, ...n.borderBottom }, c = { ...s, ...n.borderLeft };
1746
1761
  t.borderTop = Q(r), t.borderRight = Q(a), t.borderBottom = Q(h), t.borderLeft = Q(c);
1747
1762
  } else n.border && (t.border = Q(n.border));
1748
- n.shadow !== void 0 && (t.boxShadow = fe(n.shadow));
1749
- const o = pe(n.filter);
1763
+ n.shadow !== void 0 && (t.boxShadow = be(n.shadow));
1764
+ const o = ye(n.filter);
1750
1765
  if (t.filter = o || "none", n.opacity !== void 0 && (t.opacity = String(n.opacity)), n.cursor !== void 0 && (t.cursor = n.cursor), n.outline && n.outline.style !== "none" && (n.outline.width ?? 0) > 0) {
1751
1766
  const s = n.outline.width ?? 0, r = n.outline.style ?? "solid", a = n.outline.color ?? "#000000";
1752
1767
  t.outline = `${s}px ${r} ${a}`, n.outline.offset !== void 0 && (t.outlineOffset = `${n.outline.offset}px`);
1753
1768
  }
1754
- return n.objectFit !== void 0 && (t.objectFit = n.objectFit), n.aspectRatio !== void 0 && (t.aspectRatio = n.aspectRatio), t;
1769
+ if (n.objectFit !== void 0 && (t.objectFit = n.objectFit), n.aspectRatio !== void 0 && (t.aspectRatio = n.aspectRatio), n.clipPath !== void 0) {
1770
+ const s = me(n.clipPath);
1771
+ s && (s === "none" ? t.clipPath = "unset" : (t.clipPath = s, t.overflow = "hidden"));
1772
+ }
1773
+ return t;
1755
1774
  }
1756
1775
  function tt(n, t) {
1757
- t.borderRadius !== void 0 && (n.style.borderRadius = t.borderRadius), t.borderTopLeftRadius !== void 0 && (n.style.borderTopLeftRadius = t.borderTopLeftRadius), t.borderTopRightRadius !== void 0 && (n.style.borderTopRightRadius = t.borderTopRightRadius), t.borderBottomRightRadius !== void 0 && (n.style.borderBottomRightRadius = t.borderBottomRightRadius), t.borderBottomLeftRadius !== void 0 && (n.style.borderBottomLeftRadius = t.borderBottomLeftRadius), t.border !== void 0 && (n.style.border = t.border), t.borderTop !== void 0 && (n.style.borderTop = t.borderTop), t.borderRight !== void 0 && (n.style.borderRight = t.borderRight), t.borderBottom !== void 0 && (n.style.borderBottom = t.borderBottom), t.borderLeft !== void 0 && (n.style.borderLeft = t.borderLeft), t.boxShadow !== void 0 && (n.style.boxShadow = t.boxShadow), t.filter !== void 0 && (n.style.filter = t.filter), t.opacity !== void 0 && (n.style.opacity = t.opacity), t.cursor !== void 0 && (n.style.cursor = t.cursor), t.outline !== void 0 && (n.style.outline = t.outline), t.outlineOffset !== void 0 && (n.style.outlineOffset = t.outlineOffset), t.objectFit !== void 0 && (n.style.objectFit = t.objectFit), t.aspectRatio !== void 0 && (n.style.aspectRatio = t.aspectRatio);
1776
+ t.borderRadius !== void 0 && (n.style.borderRadius = t.borderRadius), t.borderTopLeftRadius !== void 0 && (n.style.borderTopLeftRadius = t.borderTopLeftRadius), t.borderTopRightRadius !== void 0 && (n.style.borderTopRightRadius = t.borderTopRightRadius), t.borderBottomRightRadius !== void 0 && (n.style.borderBottomRightRadius = t.borderBottomRightRadius), t.borderBottomLeftRadius !== void 0 && (n.style.borderBottomLeftRadius = t.borderBottomLeftRadius), t.border !== void 0 && (n.style.border = t.border), t.borderTop !== void 0 && (n.style.borderTop = t.borderTop), t.borderRight !== void 0 && (n.style.borderRight = t.borderRight), t.borderBottom !== void 0 && (n.style.borderBottom = t.borderBottom), t.borderLeft !== void 0 && (n.style.borderLeft = t.borderLeft), t.boxShadow !== void 0 && (n.style.boxShadow = t.boxShadow), t.filter !== void 0 && (n.style.filter = t.filter), t.opacity !== void 0 && (n.style.opacity = t.opacity), t.cursor !== void 0 && (n.style.cursor = t.cursor), t.outline !== void 0 && (n.style.outline = t.outline), t.outlineOffset !== void 0 && (n.style.outlineOffset = t.outlineOffset), t.objectFit !== void 0 && (n.style.objectFit = t.objectFit), t.aspectRatio !== void 0 && (n.style.aspectRatio = t.aspectRatio), t.clipPath !== void 0 && (n.style.clipPath = t.clipPath), t.overflow !== void 0 && (n.style.overflow = t.overflow);
1758
1777
  }
1759
- function Mt(n) {
1778
+ function Lt(n) {
1760
1779
  return n ? Array.isArray(n) ? n.join(" ") : n : "";
1761
1780
  }
1762
1781
  function et(n, t) {
1763
- const e = Mt(t);
1782
+ const e = Lt(t);
1764
1783
  e && e.split(" ").forEach((i) => {
1765
1784
  i.trim() && n.classList.add(i.trim());
1766
1785
  });
1767
1786
  }
1768
- function Lt(n, t) {
1769
- const e = Mt(t);
1787
+ function zt(n, t) {
1788
+ const e = Lt(t);
1770
1789
  e && e.split(" ").forEach((i) => {
1771
1790
  i.trim() && n.classList.remove(i.trim());
1772
1791
  });
1773
1792
  }
1774
- const It = {
1793
+ const At = {
1775
1794
  UNFOCUSING: 999,
1776
1795
  FOCUSING: 1e3
1777
1796
  };
1778
- class be {
1797
+ class ve {
1779
1798
  constructor(t, e, i) {
1780
1799
  this.state = I.IDLE, this.currentFocus = null, this.focusData = null, this.outgoing = null, this.incoming = null, this.focusGeneration = 0, this.config = t, this.animationEngine = e, this.defaultStyles = st(i?.default), this.focusedStyles = st(i?.focused), this.defaultClassName = i?.default?.className, this.focusedClassName = i?.focused?.className;
1781
1800
  }
@@ -1868,7 +1887,7 @@ class be {
1868
1887
  * Remove focused styling from an element
1869
1888
  */
1870
1889
  removeFocusedStyling(t, e) {
1871
- t.style.zIndex = e, t.classList.remove("fbn-ic-focused"), Lt(t, this.focusedClassName), tt(t, this.defaultStyles), et(t, this.defaultClassName);
1890
+ t.style.zIndex = e, t.classList.remove("fbn-ic-focused"), zt(t, this.focusedClassName), tt(t, this.defaultStyles), et(t, this.defaultClassName);
1872
1891
  }
1873
1892
  /**
1874
1893
  * Start focus animation for an image using dimension-based zoom
@@ -1878,19 +1897,19 @@ class be {
1878
1897
  */
1879
1898
  startFocusAnimation(t, e, i, o, s) {
1880
1899
  const r = t.style.zIndex || "", a = t.offsetWidth, h = t.offsetHeight, c = this.calculateFocusDimensions(a, h, e), u = this.calculateFocusTransform(e, i);
1881
- this.applyFocusedStyling(t, It.FOCUSING), this.animationEngine.cancelAllAnimations(t);
1900
+ this.applyFocusedStyling(t, At.FOCUSING), this.animationEngine.cancelAllAnimations(t);
1882
1901
  const l = o ?? {
1883
1902
  x: 0,
1884
1903
  y: 0,
1885
1904
  rotation: i.rotation,
1886
1905
  scale: 1
1887
1906
  // No scale - using dimensions
1888
- }, d = s?.width ?? a, m = s?.height ?? h, b = this.config.animationDuration ?? 600, p = this.animateWithDimensions(
1907
+ }, d = s?.width ?? a, f = s?.height ?? h, b = this.config.animationDuration ?? 600, p = this.animateWithDimensions(
1889
1908
  t,
1890
1909
  l,
1891
1910
  u,
1892
1911
  d,
1893
- m,
1912
+ f,
1894
1913
  c.width,
1895
1914
  c.height,
1896
1915
  b
@@ -1927,7 +1946,7 @@ class be {
1927
1946
  * @param fromDimensions - Optional starting dimensions (for mid-animation reversals)
1928
1947
  */
1929
1948
  startUnfocusAnimation(t, e, i, o) {
1930
- t.style.zIndex = String(It.UNFOCUSING), this.animationEngine.cancelAllAnimations(t);
1949
+ t.style.zIndex = String(At.UNFOCUSING), this.animationEngine.cancelAllAnimations(t);
1931
1950
  const s = i ?? this.focusData?.focusTransform ?? { x: 0, y: 0, rotation: 0, scale: 1 }, r = o?.width ?? this.focusData?.focusWidth ?? t.offsetWidth, a = o?.height ?? this.focusData?.focusHeight ?? t.offsetHeight, h = {
1932
1951
  x: 0,
1933
1952
  y: 0,
@@ -1943,7 +1962,7 @@ class be {
1943
1962
  c,
1944
1963
  u,
1945
1964
  l
1946
- ), m = {
1965
+ ), f = {
1947
1966
  id: `unfocus-${Date.now()}`,
1948
1967
  element: t,
1949
1968
  animation: d,
@@ -1955,7 +1974,7 @@ class be {
1955
1974
  return {
1956
1975
  element: t,
1957
1976
  originalState: e,
1958
- animationHandle: m,
1977
+ animationHandle: f,
1959
1978
  direction: "out",
1960
1979
  originalWidth: c,
1961
1980
  originalHeight: u
@@ -2215,7 +2234,7 @@ class be {
2215
2234
  ), this.state = I.IDLE, this.currentFocus = null, this.focusData = null, this.outgoing = null, this.incoming = null;
2216
2235
  }
2217
2236
  }
2218
- const ye = 50, ve = 0.5, we = 20, xe = 0.3, Se = 150, Ee = 30, at = class at {
2237
+ const we = 50, xe = 0.5, Se = 20, Ee = 0.3, Ie = 150, Ae = 30, at = class at {
2219
2238
  constructor(t, e) {
2220
2239
  this.enabled = !1, this.touchState = null, this.recentTouchTimestamp = 0, this.container = t, this.callbacks = e, this.boundTouchStart = this.handleTouchStart.bind(this), this.boundTouchMove = this.handleTouchMove.bind(this), this.boundTouchEnd = this.handleTouchEnd.bind(this), this.boundTouchCancel = this.handleTouchCancel.bind(this);
2221
2240
  }
@@ -2262,11 +2281,11 @@ const ye = 50, ve = 0.5, we = 20, xe = 0.3, Se = 150, Ee = 30, at = class at {
2262
2281
  const e = t.touches[0], i = e.clientX - this.touchState.startX, o = e.clientY - this.touchState.startY;
2263
2282
  if (this.touchState.isHorizontalSwipe === null && Math.sqrt(i * i + o * o) > 10) {
2264
2283
  const a = Math.atan2(Math.abs(o), Math.abs(i)) * (180 / Math.PI);
2265
- this.touchState.isHorizontalSwipe = a <= Ee;
2284
+ this.touchState.isHorizontalSwipe = a <= Ae;
2266
2285
  }
2267
2286
  if (this.touchState.isHorizontalSwipe !== !1 && this.touchState.isHorizontalSwipe === !0) {
2268
2287
  t.preventDefault(), this.touchState.isDragging = !0, this.touchState.currentX = e.clientX;
2269
- const s = i * xe;
2288
+ const s = i * Ee;
2270
2289
  this.callbacks.onDragOffset(s);
2271
2290
  }
2272
2291
  }
@@ -2275,15 +2294,15 @@ const ye = 50, ve = 0.5, we = 20, xe = 0.3, Se = 150, Ee = 30, at = class at {
2275
2294
  this.recentTouchTimestamp = Date.now();
2276
2295
  const e = this.touchState.currentX - this.touchState.startX, i = performance.now() - this.touchState.startTime, o = Math.abs(e) / i, s = Math.abs(e);
2277
2296
  let r = !1;
2278
- this.touchState.isHorizontalSwipe === !0 && this.touchState.isDragging && (s >= ye || o >= ve && s >= we) && (r = !0, e < 0 ? this.callbacks.onNext() : this.callbacks.onPrev()), this.touchState.isDragging && this.callbacks.onDragEnd(r), this.touchState = null;
2297
+ this.touchState.isHorizontalSwipe === !0 && this.touchState.isDragging && (s >= we || o >= xe && s >= Se) && (r = !0, e < 0 ? this.callbacks.onNext() : this.callbacks.onPrev()), this.touchState.isDragging && this.callbacks.onDragEnd(r), this.touchState = null;
2279
2298
  }
2280
2299
  handleTouchCancel(t) {
2281
2300
  this.touchState?.isDragging && this.callbacks.onDragEnd(!1), this.touchState = null;
2282
2301
  }
2283
2302
  };
2284
2303
  at.TOUCH_CLICK_DELAY = 300;
2285
- let ft = at;
2286
- class Ie {
2304
+ let mt = at;
2305
+ class Te {
2287
2306
  constructor(t) {
2288
2307
  if (this._prepared = !1, this._discoveredUrls = [], this.apiKey = t.apiKey ?? "", this.apiEndpoint = t.apiEndpoint ?? "https://www.googleapis.com/drive/v3/files", this.debugLogging = t.debugLogging ?? !1, this.sources = t.sources ?? [], !this.sources || this.sources.length === 0)
2289
2308
  throw new Error("GoogleDriveLoader requires at least one source to be configured");
@@ -2504,7 +2523,7 @@ class Ie {
2504
2523
  this.debugLogging && typeof console < "u" && console.log(...t);
2505
2524
  }
2506
2525
  }
2507
- class Ae {
2526
+ class Ce {
2508
2527
  constructor(t) {
2509
2528
  if (this._prepared = !1, this._discoveredUrls = [], this.validateUrls = t.validateUrls !== !1, this.validationTimeout = t.validationTimeout ?? 5e3, this.validationMethod = t.validationMethod ?? "head", this.debugLogging = t.debugLogging ?? !1, this.sources = t.sources ?? [], !this.sources || this.sources.length === 0)
2510
2529
  throw new Error("StaticImageLoader requires at least one source to be configured");
@@ -2684,7 +2703,7 @@ class Ae {
2684
2703
  this.debugLogging && typeof console < "u" && console.log(...t);
2685
2704
  }
2686
2705
  }
2687
- class Te {
2706
+ class Re {
2688
2707
  constructor(t) {
2689
2708
  if (this._prepared = !1, this._discoveredUrls = [], this.loaders = t.loaders, this.debugLogging = t.debugLogging ?? !1, !this.loaders || this.loaders.length === 0)
2690
2709
  throw new Error("CompositeLoader requires at least one loader to be configured");
@@ -2741,7 +2760,7 @@ class Te {
2741
2760
  this.debugLogging && typeof console < "u" && console.log("[CompositeLoader]", ...t);
2742
2761
  }
2743
2762
  }
2744
- class Ce {
2763
+ class Me {
2745
2764
  /**
2746
2765
  * Create a new ImageFilter
2747
2766
  * @param extensions - Array of allowed file extensions (without dots)
@@ -2778,7 +2797,7 @@ class Ce {
2778
2797
  // isAllowedDate(date: Date): boolean
2779
2798
  // isAllowedDimensions(width: number, height: number): boolean
2780
2799
  }
2781
- const Re = `
2800
+ const Le = `
2782
2801
  .fbn-ic-gallery {
2783
2802
  position: relative;
2784
2803
  width: 100%;
@@ -2828,21 +2847,21 @@ const Re = `
2828
2847
  display: none !important;
2829
2848
  }
2830
2849
  `;
2831
- function Me() {
2850
+ function ze() {
2832
2851
  if (typeof document > "u") return;
2833
2852
  const n = "fbn-ic-functional-styles";
2834
2853
  if (document.getElementById(n)) return;
2835
2854
  const t = document.createElement("style");
2836
- t.id = n, t.textContent = Re, document.head.appendChild(t);
2855
+ t.id = n, t.textContent = Le, document.head.appendChild(t);
2837
2856
  }
2838
- class Le {
2857
+ class Fe {
2839
2858
  constructor(t = {}) {
2840
- this.fullConfig = jt(t), t.container instanceof HTMLElement ? (this.containerRef = t.container, this.containerId = null) : (this.containerRef = null, this.containerId = t.container || "imageCloud"), this.imagesLoaded = !1, this.imageElements = [], this.imageLayouts = [], this.currentImageHeight = 225, this.currentFocusIndex = null, this.hoveredImage = null, this.resizeTimeout = null, this.displayQueue = [], this.queueInterval = null, this.loadGeneration = 0, this.loadingElAutoCreated = !1, this.errorElAutoCreated = !1, this.counterEl = null, this.counterElAutoCreated = !1, this.animationEngine = new qt(this.fullConfig.animation), this.layoutEngine = new ge({
2859
+ this.fullConfig = kt(t), t.container instanceof HTMLElement ? (this.containerRef = t.container, this.containerId = null) : (this.containerRef = null, this.containerId = t.container || "imageCloud"), this.imagesLoaded = !1, this.imageElements = [], this.imageLayouts = [], this.currentImageHeight = 225, this.currentFocusIndex = null, this.hoveredImage = null, this.resizeTimeout = null, this.displayQueue = [], this.queueInterval = null, this.loadGeneration = 0, this.loadingElAutoCreated = !1, this.errorElAutoCreated = !1, this.counterEl = null, this.counterElAutoCreated = !1, this.animationEngine = new Yt(this.fullConfig.animation), this.layoutEngine = new fe({
2841
2860
  layout: this.fullConfig.layout,
2842
2861
  image: this.fullConfig.image
2843
- }), this.zoomEngine = new be(this.fullConfig.interaction.focus, this.animationEngine, this.fullConfig.styling), this.defaultStyles = st(this.fullConfig.styling?.default), this.hoverStyles = st(this.fullConfig.styling?.hover), this.defaultClassName = this.fullConfig.styling?.default?.className, this.hoverClassName = this.fullConfig.styling?.hover?.className;
2862
+ }), this.zoomEngine = new ve(this.fullConfig.interaction.focus, this.animationEngine, this.fullConfig.styling), this.defaultStyles = st(this.fullConfig.styling?.default), this.hoverStyles = st(this.fullConfig.styling?.hover), this.defaultClassName = this.fullConfig.styling?.default?.className, this.hoverClassName = this.fullConfig.styling?.hover?.className;
2844
2863
  const e = this.fullConfig.animation.entry || y.animation.entry;
2845
- this.entryAnimationEngine = new ie(
2864
+ this.entryAnimationEngine = new ne(
2846
2865
  e,
2847
2866
  this.fullConfig.layout.algorithm
2848
2867
  ), this.swipeEngine = null, this.imageFilter = this.createImageFilter(), this.imageLoader = this.createLoader(), this.containerEl = null, this.loadingEl = null, this.errorEl = null;
@@ -2852,7 +2871,7 @@ class Le {
2852
2871
  */
2853
2872
  createImageFilter() {
2854
2873
  const t = this.fullConfig.config.loaders?.allowedExtensions;
2855
- return new Ce(t);
2874
+ return new Me(t);
2856
2875
  }
2857
2876
  /**
2858
2877
  * Create appropriate image loader based on config
@@ -2863,7 +2882,7 @@ class Le {
2863
2882
  if (!t || t.length === 0)
2864
2883
  throw new Error("No loaders configured. Provide `images`, `loaders`, or both.");
2865
2884
  const i = t.map((o) => this.createLoaderFromEntry(o, e));
2866
- return i.length === 1 ? i[0] : new Te({
2885
+ return i.length === 1 ? i[0] : new Re({
2867
2886
  loaders: i,
2868
2887
  debugLogging: this.fullConfig.config.debug?.loaders
2869
2888
  });
@@ -2881,14 +2900,14 @@ class Le {
2881
2900
  allowedExtensions: i.allowedExtensions ?? e.allowedExtensions,
2882
2901
  debugLogging: i.debugLogging ?? this.fullConfig.config.debug?.loaders
2883
2902
  };
2884
- return new Ae(o);
2903
+ return new Ce(o);
2885
2904
  } else if ("googleDrive" in t) {
2886
2905
  const i = t.googleDrive, o = {
2887
2906
  ...i,
2888
2907
  allowedExtensions: i.allowedExtensions ?? e.allowedExtensions,
2889
2908
  debugLogging: i.debugLogging ?? this.fullConfig.config.debug?.loaders
2890
2909
  };
2891
- return new Ie(o);
2910
+ return new Te(o);
2892
2911
  } else
2893
2912
  throw new Error(`Unknown loader entry: ${JSON.stringify(t)}`);
2894
2913
  }
@@ -2897,16 +2916,16 @@ class Le {
2897
2916
  */
2898
2917
  async init() {
2899
2918
  try {
2900
- if (Me(), this.containerRef)
2919
+ if (ze(), this.containerRef)
2901
2920
  this.containerEl = this.containerRef;
2902
2921
  else if (this.containerEl = document.getElementById(this.containerId), !this.containerEl)
2903
2922
  throw new Error(`Container #${this.containerId} not found`);
2904
- this.containerEl.classList.add("fbn-ic-gallery"), this.swipeEngine = new ft(this.containerEl, {
2923
+ this.containerEl.classList.add("fbn-ic-gallery"), this.swipeEngine = new mt(this.containerEl, {
2905
2924
  onNext: () => this.navigateToNextImage(),
2906
2925
  onPrev: () => this.navigateToPreviousImage(),
2907
2926
  onDragOffset: (t) => this.zoomEngine.setDragOffset(t),
2908
2927
  onDragEnd: (t) => {
2909
- t ? this.zoomEngine.clearDragOffset(!1) : this.zoomEngine.clearDragOffset(!0, Se);
2928
+ t ? this.zoomEngine.clearDragOffset(!1) : this.zoomEngine.clearDragOffset(!0, Ie);
2910
2929
  }
2911
2930
  }), this.setupUI(), this.setupEventListeners(), this.logDebug("ImageCloud initialized"), await this.loadImages();
2912
2931
  } catch (t) {
@@ -3033,20 +3052,20 @@ class Le {
3033
3052
  const d = {
3034
3053
  x: parseFloat(c.dataset.startX),
3035
3054
  y: parseFloat(c.dataset.startY)
3036
- }, m = {
3055
+ }, f = {
3037
3056
  x: parseFloat(c.dataset.endX),
3038
3057
  y: parseFloat(c.dataset.endY)
3039
- }, b = parseFloat(c.dataset.imageWidth), p = parseFloat(c.dataset.imageHeight), g = parseFloat(c.dataset.rotation), f = parseFloat(c.dataset.scale), S = c.dataset.startRotation ? parseFloat(c.dataset.startRotation) : g, v = c.dataset.startScale ? parseFloat(c.dataset.startScale) : f, w = this.entryAnimationEngine.getTiming();
3040
- Qt({
3058
+ }, b = parseFloat(c.dataset.imageWidth), p = parseFloat(c.dataset.imageHeight), g = parseFloat(c.dataset.rotation), m = parseFloat(c.dataset.scale), S = c.dataset.startRotation ? parseFloat(c.dataset.startRotation) : g, v = c.dataset.startScale ? parseFloat(c.dataset.startScale) : m, w = this.entryAnimationEngine.getTiming();
3059
+ te({
3041
3060
  element: c,
3042
3061
  startPosition: d,
3043
- endPosition: m,
3062
+ endPosition: f,
3044
3063
  pathConfig: this.entryAnimationEngine.getPathConfig(),
3045
3064
  duration: w.duration,
3046
3065
  imageWidth: b,
3047
3066
  imageHeight: p,
3048
3067
  rotation: g,
3049
- scale: f,
3068
+ scale: m,
3050
3069
  rotationConfig: this.entryAnimationEngine.getRotationConfig(),
3051
3070
  startRotation: S,
3052
3071
  scaleConfig: this.entryAnimationEngine.getScaleConfig(),
@@ -3103,8 +3122,8 @@ class Le {
3103
3122
  this.fullConfig.config.debug?.centers && this.containerEl && (this.containerEl.querySelectorAll(".fbn-ic-debug-center").forEach((c) => c.remove()), s.forEach((c, u) => {
3104
3123
  const l = document.createElement("div");
3105
3124
  l.className = "fbn-ic-debug-center", l.style.position = "absolute", l.style.width = "12px", l.style.height = "12px", l.style.borderRadius = "50%", l.style.backgroundColor = "red", l.style.border = "2px solid yellow", l.style.zIndex = "9999", l.style.pointerEvents = "none";
3106
- const d = c.x, m = c.y;
3107
- l.style.left = `${d - 6}px`, l.style.top = `${m - 6}px`, l.title = `Image ${u}: center (${Math.round(d)}, ${Math.round(m)})`, this.containerEl.appendChild(l);
3125
+ const d = c.x, f = c.y;
3126
+ l.style.left = `${d - 6}px`, l.style.top = `${f - 6}px`, l.title = `Image ${u}: center (${Math.round(d)}, ${Math.round(f)})`, this.containerEl.appendChild(l);
3108
3127
  })), t.forEach((c, u) => {
3109
3128
  const l = document.createElement("img");
3110
3129
  l.referrerPolicy = "no-referrer", l.classList.add("fbn-ic-image"), l.dataset.imageId = String(u);
@@ -3112,15 +3131,15 @@ class Le {
3112
3131
  l.style.position = "absolute", l.style.width = "auto", l.style.height = `${e}px`, l.style.left = `${d.x}px`, l.style.top = `${d.y}px`, d.zIndex && (l.style.zIndex = String(d.zIndex)), tt(l, this.defaultStyles), et(l, this.defaultClassName), l.addEventListener("mouseenter", () => {
3113
3132
  this.hoveredImage = { element: l, layout: d }, this.zoomEngine.isInvolved(l) || (tt(l, this.hoverStyles), et(l, this.hoverClassName));
3114
3133
  }), l.addEventListener("mouseleave", () => {
3115
- this.hoveredImage = null, this.zoomEngine.isInvolved(l) || (tt(l, this.defaultStyles), Lt(l, this.hoverClassName), et(l, this.defaultClassName));
3116
- }), l.addEventListener("click", (m) => {
3117
- m.stopPropagation(), this.handleImageClick(l, d);
3134
+ this.hoveredImage = null, this.zoomEngine.isInvolved(l) || (tt(l, this.defaultStyles), zt(l, this.hoverClassName), et(l, this.defaultClassName));
3135
+ }), l.addEventListener("click", (f) => {
3136
+ f.stopPropagation(), this.handleImageClick(l, d);
3118
3137
  }), l.style.opacity = "0", l.style.transition = this.entryAnimationEngine.getTransitionCSS(), l.onload = () => {
3119
3138
  if (o !== this.loadGeneration)
3120
3139
  return;
3121
- const m = l.naturalWidth / l.naturalHeight, b = e * m;
3140
+ const f = l.naturalWidth / l.naturalHeight, b = e * f;
3122
3141
  l.style.width = `${b}px`;
3123
- const p = { x: d.x, y: d.y }, g = { width: b, height: e }, f = this.entryAnimationEngine.calculateStartPosition(
3142
+ const p = { x: d.x, y: d.y }, g = { width: b, height: e }, m = this.entryAnimationEngine.calculateStartPosition(
3124
3143
  p,
3125
3144
  g,
3126
3145
  i,
@@ -3132,7 +3151,7 @@ class Le {
3132
3151
  b,
3133
3152
  e
3134
3153
  ), E = this.entryAnimationEngine.buildStartTransform(
3135
- f,
3154
+ m,
3136
3155
  p,
3137
3156
  d.rotation,
3138
3157
  d.scale,
@@ -3149,7 +3168,7 @@ class Le {
3149
3168
  finalTransform: w,
3150
3169
  renderedWidth: b,
3151
3170
  renderedHeight: e
3152
- }), l.style.transform = E, l.dataset.finalTransform = w, (this.entryAnimationEngine.requiresJSAnimation() || this.entryAnimationEngine.requiresJSRotation() || this.entryAnimationEngine.requiresJSScale() || S !== d.rotation || v !== d.scale) && (l.dataset.startX = String(f.x), l.dataset.startY = String(f.y), l.dataset.endX = String(p.x), l.dataset.endY = String(p.y), l.dataset.imageWidth = String(b), l.dataset.imageHeight = String(e), l.dataset.rotation = String(d.rotation), l.dataset.scale = String(d.scale), l.dataset.startRotation = String(S), l.dataset.startScale = String(v)), this.displayQueue.push(l);
3171
+ }), l.style.transform = E, l.dataset.finalTransform = w, (this.entryAnimationEngine.requiresJSAnimation() || this.entryAnimationEngine.requiresJSRotation() || this.entryAnimationEngine.requiresJSScale() || S !== d.rotation || v !== d.scale) && (l.dataset.startX = String(m.x), l.dataset.startY = String(m.y), l.dataset.endX = String(p.x), l.dataset.endY = String(p.y), l.dataset.imageWidth = String(b), l.dataset.imageHeight = String(e), l.dataset.rotation = String(d.rotation), l.dataset.scale = String(d.scale), l.dataset.startRotation = String(S), l.dataset.startScale = String(v)), this.displayQueue.push(l);
3153
3172
  }, l.onerror = () => r++, l.src = c;
3154
3173
  });
3155
3174
  }
@@ -3195,30 +3214,30 @@ class Le {
3195
3214
  }
3196
3215
  }
3197
3216
  export {
3198
- qt as AnimationEngine,
3217
+ Yt as AnimationEngine,
3199
3218
  wt as BOUNCE_PRESETS,
3200
- de as ClusterPlacementLayout,
3201
- Te as CompositeLoader,
3219
+ ue as ClusterPlacementLayout,
3220
+ Re as CompositeLoader,
3202
3221
  y as DEFAULT_CONFIG,
3203
- Ct as DEFAULT_SHARED_LOADER_CONFIG,
3222
+ Rt as DEFAULT_SHARED_LOADER_CONFIG,
3204
3223
  xt as ELASTIC_PRESETS,
3205
- ie as EntryAnimationEngine,
3206
- Re as FUNCTIONAL_CSS,
3207
- Ie as GoogleDriveLoader,
3208
- ae as GridPlacementLayout,
3209
- Le as ImageCloud,
3210
- Ce as ImageFilter,
3211
- Le as ImageGallery,
3212
- ge as LayoutEngine,
3213
- oe as RadialPlacementLayout,
3214
- ne as RandomPlacementLayout,
3215
- le as SpiralPlacementLayout,
3216
- Ae as StaticImageLoader,
3224
+ ne as EntryAnimationEngine,
3225
+ Le as FUNCTIONAL_CSS,
3226
+ Te as GoogleDriveLoader,
3227
+ re as GridPlacementLayout,
3228
+ Fe as ImageCloud,
3229
+ Me as ImageFilter,
3230
+ Fe as ImageGallery,
3231
+ fe as LayoutEngine,
3232
+ se as RadialPlacementLayout,
3233
+ oe as RandomPlacementLayout,
3234
+ he as SpiralPlacementLayout,
3235
+ Ce as StaticImageLoader,
3217
3236
  St as WAVE_PATH_PRESETS,
3218
- ue as WavePlacementLayout,
3219
- be as ZoomEngine,
3220
- Qt as animatePath,
3221
- Me as injectFunctionalStyles,
3222
- te as requiresJSAnimation
3237
+ ge as WavePlacementLayout,
3238
+ ve as ZoomEngine,
3239
+ te as animatePath,
3240
+ ze as injectFunctionalStyles,
3241
+ ee as requiresJSAnimation
3223
3242
  };
3224
3243
  //# sourceMappingURL=image-cloud.js.map