@tarsis/toolkit 0.5.6 → 0.5.8-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -52094,11 +52094,11 @@ const BubblyParticlesButton = () => {
52094
52094
  return /* @__PURE__ */ jsx("button", { className: styles$4H.root, onClick: handleClick, children: "Click me!" });
52095
52095
  };
52096
52096
 
52097
- const root$4i = "_root_1pxow_1";
52098
- const button$o = "_button_1pxow_13";
52099
- const p$1 = "_p_1pxow_26";
52100
- const text$z = "_text_1pxow_26";
52101
- const effects = "_effects_1pxow_240";
52097
+ const root$4i = "_root_3ip19_1";
52098
+ const button$o = "_button_3ip19_13";
52099
+ const p$1 = "_p_3ip19_26";
52100
+ const text$z = "_text_3ip19_26";
52101
+ const effects = "_effects_3ip19_240";
52102
52102
  const styles$4G = {
52103
52103
  root: root$4i,
52104
52104
  button: button$o,
@@ -59661,11 +59661,6 @@ var module = {};
59661
59661
  const confetti = module.exports;
59662
59662
  module.exports.create;
59663
59663
 
59664
- const root$4d = "_root_s1prb_1";
59665
- const styles$4z = {
59666
- root: root$4d
59667
- };
59668
-
59669
59664
  const LayoutGroupContext = createContext({});
59670
59665
 
59671
59666
  const useIsomorphicLayoutEffect$2 = isBrowser$1 ? useLayoutEffect : useEffect;
@@ -61779,11 +61774,12 @@ function distance2D(a, b) {
61779
61774
  return Math.sqrt(xDelta ** 2 + yDelta ** 2);
61780
61775
  }
61781
61776
 
61777
+ const overflowStyles = /*#__PURE__*/ new Set(["auto", "scroll"]);
61782
61778
  /**
61783
61779
  * @internal
61784
61780
  */
61785
61781
  class PanSession {
61786
- constructor(event, handlers, { transformPagePoint, contextWindow = window, dragSnapToOrigin = false, distanceThreshold = 3, } = {}) {
61782
+ constructor(event, handlers, { transformPagePoint, contextWindow = window, dragSnapToOrigin = false, distanceThreshold = 3, element, } = {}) {
61787
61783
  /**
61788
61784
  * @internal
61789
61785
  */
@@ -61804,6 +61800,22 @@ class PanSession {
61804
61800
  * @internal
61805
61801
  */
61806
61802
  this.contextWindow = window;
61803
+ /**
61804
+ * Scroll positions of scrollable ancestors and window.
61805
+ * @internal
61806
+ */
61807
+ this.scrollPositions = new Map();
61808
+ /**
61809
+ * Cleanup function for scroll listeners.
61810
+ * @internal
61811
+ */
61812
+ this.removeScrollListeners = null;
61813
+ this.onElementScroll = (event) => {
61814
+ this.handleScroll(event.target);
61815
+ };
61816
+ this.onWindowScroll = () => {
61817
+ this.handleScroll(window);
61818
+ };
61807
61819
  this.updatePoint = () => {
61808
61820
  if (!(this.lastMoveEvent && this.lastMoveEventInfo))
61809
61821
  return;
@@ -61866,12 +61878,93 @@ class PanSession {
61866
61878
  onSessionStart &&
61867
61879
  onSessionStart(event, getPanInfo(initialInfo, this.history));
61868
61880
  this.removeListeners = pipe$1(addPointerEvent(this.contextWindow, "pointermove", this.handlePointerMove), addPointerEvent(this.contextWindow, "pointerup", this.handlePointerUp), addPointerEvent(this.contextWindow, "pointercancel", this.handlePointerUp));
61881
+ // Start scroll tracking if element provided
61882
+ if (element) {
61883
+ this.startScrollTracking(element);
61884
+ }
61885
+ }
61886
+ /**
61887
+ * Start tracking scroll on ancestors and window.
61888
+ */
61889
+ startScrollTracking(element) {
61890
+ // Store initial scroll positions for scrollable ancestors
61891
+ let current = element.parentElement;
61892
+ while (current) {
61893
+ const style = getComputedStyle(current);
61894
+ if (overflowStyles.has(style.overflowX) ||
61895
+ overflowStyles.has(style.overflowY)) {
61896
+ this.scrollPositions.set(current, {
61897
+ x: current.scrollLeft,
61898
+ y: current.scrollTop,
61899
+ });
61900
+ }
61901
+ current = current.parentElement;
61902
+ }
61903
+ // Track window scroll
61904
+ this.scrollPositions.set(window, {
61905
+ x: window.scrollX,
61906
+ y: window.scrollY,
61907
+ });
61908
+ // Capture listener catches element scroll events as they bubble
61909
+ window.addEventListener("scroll", this.onElementScroll, {
61910
+ capture: true,
61911
+ passive: true,
61912
+ });
61913
+ // Direct window scroll listener (window scroll doesn't bubble)
61914
+ window.addEventListener("scroll", this.onWindowScroll, {
61915
+ passive: true,
61916
+ });
61917
+ this.removeScrollListeners = () => {
61918
+ window.removeEventListener("scroll", this.onElementScroll, {
61919
+ capture: true,
61920
+ });
61921
+ window.removeEventListener("scroll", this.onWindowScroll);
61922
+ };
61923
+ }
61924
+ /**
61925
+ * Handle scroll compensation during drag.
61926
+ *
61927
+ * For element scroll: adjusts history origin since pageX/pageY doesn't change.
61928
+ * For window scroll: adjusts lastMoveEventInfo since pageX/pageY would change.
61929
+ */
61930
+ handleScroll(target) {
61931
+ const initial = this.scrollPositions.get(target);
61932
+ if (!initial)
61933
+ return;
61934
+ const isWindow = target === window;
61935
+ const current = isWindow
61936
+ ? { x: window.scrollX, y: window.scrollY }
61937
+ : {
61938
+ x: target.scrollLeft,
61939
+ y: target.scrollTop,
61940
+ };
61941
+ const delta = { x: current.x - initial.x, y: current.y - initial.y };
61942
+ if (delta.x === 0 && delta.y === 0)
61943
+ return;
61944
+ if (isWindow) {
61945
+ // Window scroll: pageX/pageY changes, so update lastMoveEventInfo
61946
+ if (this.lastMoveEventInfo) {
61947
+ this.lastMoveEventInfo.point.x += delta.x;
61948
+ this.lastMoveEventInfo.point.y += delta.y;
61949
+ }
61950
+ }
61951
+ else {
61952
+ // Element scroll: pageX/pageY unchanged, so adjust history origin
61953
+ if (this.history.length > 0) {
61954
+ this.history[0].x -= delta.x;
61955
+ this.history[0].y -= delta.y;
61956
+ }
61957
+ }
61958
+ this.scrollPositions.set(target, current);
61959
+ frame$2.update(this.updatePoint, true);
61869
61960
  }
61870
61961
  updateHandlers(handlers) {
61871
61962
  this.handlers = handlers;
61872
61963
  }
61873
61964
  end() {
61874
61965
  this.removeListeners && this.removeListeners();
61966
+ this.removeScrollListeners && this.removeScrollListeners();
61967
+ this.scrollPositions.clear();
61875
61968
  cancelFrame(this.updatePoint);
61876
61969
  }
61877
61970
  }
@@ -62122,7 +62215,7 @@ class VisualElementDragControls {
62122
62215
  this.visualElement.projection.target = undefined;
62123
62216
  }
62124
62217
  /**
62125
- * Record gesture origin
62218
+ * Record gesture origin and pointer offset
62126
62219
  */
62127
62220
  eachAxis((axis) => {
62128
62221
  let current = this.getAxisMotionValue(axis).get() || 0;
@@ -62203,6 +62296,7 @@ class VisualElementDragControls {
62203
62296
  dragSnapToOrigin,
62204
62297
  distanceThreshold,
62205
62298
  contextWindow: getContextWindow(this.visualElement),
62299
+ element: this.visualElement.current,
62206
62300
  });
62207
62301
  }
62208
62302
  /**
@@ -65122,6 +65216,11 @@ function useAnimate() {
65122
65216
  return [scope, animate];
65123
65217
  }
65124
65218
 
65219
+ const root$4d = "_root_s1prb_1";
65220
+ const styles$4z = {
65221
+ root: root$4d
65222
+ };
65223
+
65125
65224
  const useConfetti = () => useCallback(async (rect, options = {}) => {
65126
65225
  const { x, y, width, height } = rect;
65127
65226
  const origin = {
@@ -68107,9 +68206,9 @@ const NeonButton = ({ className = "", ...rest }) => {
68107
68206
  return /* @__PURE__ */ jsx("button", { type: "button", ...rest, className: clsx(styles$48.root, className), children: "Neon" });
68108
68207
  };
68109
68208
 
68110
- const root$3P = "_root_1u78n_2";
68111
- const i$6 = "_i_1u78n_22";
68112
- const text$s = "_text_1u78n_482";
68209
+ const root$3P = "_root_186y2_2";
68210
+ const i$6 = "_i_186y2_22";
68211
+ const text$s = "_text_186y2_482";
68113
68212
  const styles$47 = {
68114
68213
  root: root$3P,
68115
68214
  i: i$6,
@@ -68634,11 +68733,11 @@ const ProgressButton = ({
68634
68733
  );
68635
68734
  };
68636
68735
 
68637
- const root$3H = "_root_1pabj_1";
68638
- const button$f = "_button_1pabj_17";
68639
- const wavy = "_wavy_1pabj_62";
68640
- const linear = "_linear_1pabj_63";
68641
- const glance = "_glance_1pabj_86";
68736
+ const root$3H = "_root_1gjmi_1";
68737
+ const button$f = "_button_1gjmi_17";
68738
+ const wavy = "_wavy_1gjmi_62";
68739
+ const linear = "_linear_1gjmi_63";
68740
+ const glance = "_glance_1gjmi_86";
68642
68741
  const styles$3$ = {
68643
68742
  root: root$3H,
68644
68743
  button: button$f,
@@ -68648,7 +68747,101 @@ const styles$3$ = {
68648
68747
  };
68649
68748
 
68650
68749
  const PsychedelicButton = ({ variant }) => {
68651
- return /* @__PURE__ */ jsx("div", { className: styles$3$.root, children: /* @__PURE__ */ jsx("button", { className: clsx(styles$3$.button, styles$3$[variant]), children: "hover me" }) });
68750
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
68751
+ /* @__PURE__ */ jsx("svg", { style: { position: "absolute", width: 0, height: 0 }, children: /* @__PURE__ */ jsxs("defs", { children: [
68752
+ /* @__PURE__ */ jsxs(
68753
+ "filter",
68754
+ {
68755
+ id: "psychedelic-wavy-filter",
68756
+ x: "-20%",
68757
+ y: "-20%",
68758
+ width: "140%",
68759
+ height: "140%",
68760
+ filterUnits: "objectBoundingBox",
68761
+ primitiveUnits: "userSpaceOnUse",
68762
+ colorInterpolationFilters: "linearRGB",
68763
+ children: [
68764
+ /* @__PURE__ */ jsx(
68765
+ "feTurbulence",
68766
+ {
68767
+ type: "turbulence",
68768
+ baseFrequency: "0.04 0.03",
68769
+ numOctaves: "12",
68770
+ seed: "27",
68771
+ stitchTiles: "stitch",
68772
+ x: "0%",
68773
+ y: "0%",
68774
+ width: "100%",
68775
+ height: "100%",
68776
+ result: "turbulence"
68777
+ }
68778
+ ),
68779
+ /* @__PURE__ */ jsx(
68780
+ "feDisplacementMap",
68781
+ {
68782
+ in: "SourceGraphic",
68783
+ in2: "turbulence",
68784
+ scale: "15",
68785
+ xChannelSelector: "R",
68786
+ yChannelSelector: "B",
68787
+ x: "0%",
68788
+ y: "0%",
68789
+ width: "100%",
68790
+ height: "100%",
68791
+ result: "displacementMap2"
68792
+ }
68793
+ )
68794
+ ]
68795
+ }
68796
+ ),
68797
+ /* @__PURE__ */ jsxs(
68798
+ "filter",
68799
+ {
68800
+ id: "psychedelic-glance-filter",
68801
+ x: "-20%",
68802
+ y: "-20%",
68803
+ width: "140%",
68804
+ height: "140%",
68805
+ filterUnits: "objectBoundingBox",
68806
+ primitiveUnits: "userSpaceOnUse",
68807
+ colorInterpolationFilters: "linearRGB",
68808
+ children: [
68809
+ /* @__PURE__ */ jsx(
68810
+ "feTurbulence",
68811
+ {
68812
+ type: "turbulence",
68813
+ baseFrequency: "0.02 0.03",
68814
+ numOctaves: "1",
68815
+ seed: "13",
68816
+ stitchTiles: "stitch",
68817
+ x: "0%",
68818
+ y: "0%",
68819
+ width: "100%",
68820
+ height: "100%",
68821
+ result: "turbulence"
68822
+ }
68823
+ ),
68824
+ /* @__PURE__ */ jsx(
68825
+ "feDisplacementMap",
68826
+ {
68827
+ in: "SourceGraphic",
68828
+ in2: "turbulence",
68829
+ scale: "126",
68830
+ xChannelSelector: "R",
68831
+ yChannelSelector: "B",
68832
+ x: "0%",
68833
+ y: "0%",
68834
+ width: "100%",
68835
+ height: "100%",
68836
+ result: "displacementMap2"
68837
+ }
68838
+ )
68839
+ ]
68840
+ }
68841
+ )
68842
+ ] }) }),
68843
+ /* @__PURE__ */ jsx("div", { className: styles$3$.root, children: /* @__PURE__ */ jsx("button", { className: clsx(styles$3$.button, styles$3$[variant]), children: "hover me" }) })
68844
+ ] });
68652
68845
  };
68653
68846
 
68654
68847
  const root$3G = "_root_qhbgz_1";
@@ -69435,30 +69628,15 @@ const SquishButton = ({ children, className = "", ...rest }) => {
69435
69628
  return /* @__PURE__ */ jsx("button", { type: "button", ...rest, className: clsx(styles$3P.root, className), children });
69436
69629
  };
69437
69630
 
69438
- const root$3w = "_root_v4ko6_1";
69439
- const pending = "_pending_v4ko6_12";
69440
- const loading$1 = "_loading_v4ko6_17";
69441
- const success$1 = "_success_v4ko6_20";
69442
- const icon$f = "_icon_v4ko6_25";
69443
- const fingerprint = "_fingerprint_v4ko6_50";
69444
- const styles$3O = {
69445
- root: root$3w,
69446
- pending: pending,
69447
- loading: loading$1,
69448
- success: success$1,
69449
- icon: icon$f,
69450
- fingerprint: fingerprint
69451
- };
69452
-
69453
- const root$3v = "_root_g5l4r_1";
69631
+ const root$3w = "_root_g5l4r_1";
69454
69632
  const a$3 = "_a_g5l4r_9";
69455
69633
  const b$2 = "_b_g5l4r_10";
69456
69634
  const c$3 = "_c_g5l4r_11";
69457
69635
  const d$3 = "_d_g5l4r_12";
69458
69636
  const e$3 = "_e_g5l4r_13";
69459
69637
  const active$m = "_active_g5l4r_20";
69460
- const styles$3N = {
69461
- root: root$3v,
69638
+ const styles$3O = {
69639
+ root: root$3w,
69462
69640
  a: a$3,
69463
69641
  b: b$2,
69464
69642
  c: c$3,
@@ -69471,7 +69649,7 @@ const Fingerprint = ({ className = "" }) => {
69471
69649
  return /* @__PURE__ */ jsx(
69472
69650
  "svg",
69473
69651
  {
69474
- className: clsx(styles$3N.root, className),
69652
+ className: clsx(styles$3O.root, className),
69475
69653
  width: "34px",
69476
69654
  height: "34px",
69477
69655
  viewBox: "0 0 34 34",
@@ -69493,35 +69671,35 @@ const Fingerprint = ({ className = "" }) => {
69493
69671
  /* @__PURE__ */ jsx(
69494
69672
  "path",
69495
69673
  {
69496
- className: clsx(styles$3N.a, { [styles$3N.active]: isActive }),
69674
+ className: clsx(styles$3O.a, { [styles$3O.active]: isActive }),
69497
69675
  d: "M3.14414922,1.97419264 C3.14414922,1.97419264 5.30885997,0.506351808 9.06036082,0.506351808 C12.8118617,0.506351808 14.781903,1.97419264 14.781903,1.97419264"
69498
69676
  }
69499
69677
  ),
69500
69678
  /* @__PURE__ */ jsx(
69501
69679
  "path",
69502
69680
  {
69503
- className: clsx(styles$3N.b, { [styles$3N.active]: isActive }),
69681
+ className: clsx(styles$3O.b, { [styles$3O.active]: isActive }),
69504
69682
  d: "M0.466210729,7.27628774 C0.466210729,7.27628774 3.19024811,2.75878123 9.09512428,2.96502806 C15.0000005,3.17127489 17.4745821,7.17202872 17.4745821,7.17202872"
69505
69683
  }
69506
69684
  ),
69507
69685
  /* @__PURE__ */ jsx(
69508
69686
  "path",
69509
69687
  {
69510
- className: clsx(styles$3N.c, { [styles$3N.active]: isActive }),
69688
+ className: clsx(styles$3O.c, { [styles$3O.active]: isActive }),
69511
69689
  d: "M2,16.4687762 C2,16.4687762 1.12580828,14.9305411 1.27082278,11.9727304 C1.45871447,8.14036841 5.19587478,5.30175361 9.05270871,5.30175361 C12.9095426,5.30175361 15.0000001,7.82879552 15.8975926,9.33195218 C16.5919575,10.4947729 17.7597991,14.4361492 14.6226101,15.0206592 C12.41268,15.4324056 11.5911303,13.4911155 11.5911303,12.9859143 C11.5911303,11.9727302 11.1054172,10.2336826 9.05270848,10.2336826 C6.99999978,10.2336826 6.11384543,11.8665663 6.4593664,13.7955614 C6.6532895,14.8782069 7.59887942,18.3701197 12.0173963,19.5605638"
69512
69690
  }
69513
69691
  ),
69514
69692
  /* @__PURE__ */ jsx(
69515
69693
  "path",
69516
69694
  {
69517
- className: clsx(styles$3N.d, { [styles$3N.active]: isActive }),
69695
+ className: clsx(styles$3O.d, { [styles$3O.active]: isActive }),
69518
69696
  d: "M7.0204614,19.6657197 C7.0204614,19.6657197 3.88328263,16.5690127 3.88328268,12.9603117 C3.88328274,9.35161068 6.59923746,7.80642537 9.0076008,7.80642554 C11.4159641,7.8064257 14.1798468,9.55747124 14.1798468,12.759562"
69519
69697
  }
69520
69698
  ),
69521
69699
  /* @__PURE__ */ jsx(
69522
69700
  "path",
69523
69701
  {
69524
- className: clsx(styles$3N.e, { [styles$3N.active]: isActive }),
69702
+ className: clsx(styles$3O.e, { [styles$3O.active]: isActive }),
69525
69703
  d: "M8.95538742,12.6694189 C8.95538742,12.6694189 9.04883608,18.1288401 15.069217,17.3610597"
69526
69704
  }
69527
69705
  )
@@ -69532,15 +69710,30 @@ const Fingerprint = ({ className = "" }) => {
69532
69710
  );
69533
69711
  };
69534
69712
 
69713
+ const root$3v = "_root_v4ko6_1";
69714
+ const pending = "_pending_v4ko6_12";
69715
+ const loading$1 = "_loading_v4ko6_17";
69716
+ const success$1 = "_success_v4ko6_20";
69717
+ const icon$f = "_icon_v4ko6_25";
69718
+ const fingerprint = "_fingerprint_v4ko6_50";
69719
+ const styles$3N = {
69720
+ root: root$3v,
69721
+ pending: pending,
69722
+ loading: loading$1,
69723
+ success: success$1,
69724
+ icon: icon$f,
69725
+ fingerprint: fingerprint
69726
+ };
69727
+
69535
69728
  const SuccessLoader = ({ status }) => /* @__PURE__ */ jsx(
69536
69729
  "div",
69537
69730
  {
69538
- className: clsx(styles$3O.root, {
69539
- [styles$3O.success]: status === "success",
69540
- [styles$3O.loading]: status === "loading",
69541
- [styles$3O.pending]: status === "pending"
69731
+ className: clsx(styles$3N.root, {
69732
+ [styles$3N.success]: status === "success",
69733
+ [styles$3N.loading]: status === "loading",
69734
+ [styles$3N.pending]: status === "pending"
69542
69735
  }),
69543
- children: status === "success" ? /* @__PURE__ */ jsx("span", { className: styles$3O.icon }) : status === "pending" ? /* @__PURE__ */ jsx(Fingerprint, { className: styles$3O.fingerprint }) : null
69736
+ children: status === "success" ? /* @__PURE__ */ jsx("span", { className: styles$3N.icon }) : status === "pending" ? /* @__PURE__ */ jsx(Fingerprint, { className: styles$3N.fingerprint }) : null
69544
69737
  }
69545
69738
  );
69546
69739
 
@@ -71056,54 +71249,6 @@ const BulletsCarousel = () => {
71056
71249
  ] }) });
71057
71250
  };
71058
71251
 
71059
- const MOCK_CARD_CAROUSEL_ITEMS = [
71060
- {
71061
- id: "Tour",
71062
- image: "https://images.pexels.com/photos/991012/pexels-photo-991012.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940",
71063
- subtitle: "The grand moment",
71064
- title: "Le tour",
71065
- description: "Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam.",
71066
- href: "#",
71067
- hrefTitle: "Explore the tour"
71068
- },
71069
- {
71070
- id: "Window",
71071
- image: "https://images.pexels.com/photos/921294/pexels-photo-921294.png?auto=compress&cs=tinysrgb&h=750&w=1260",
71072
- subtitle: "The big window",
71073
- title: "Minimal window",
71074
- description: "Clear Glass Window With Brown and White Wooden Frame iste natus error sit voluptatem accusantium doloremque laudantium.",
71075
- href: "#",
71076
- hrefTitle: "Read the article"
71077
- },
71078
- {
71079
- id: "Palms",
71080
- image: "https://images.pexels.com/photos/92733/pexels-photo-92733.jpeg?auto=compress&cs=tinysrgb&h=750&w=1260",
71081
- subtitle: "Tropical palms",
71082
- title: "Palms",
71083
- description: "Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam.",
71084
- href: "#",
71085
- hrefTitle: "Explore the palms"
71086
- },
71087
- {
71088
- id: "Beach",
71089
- image: "https://images.pexels.com/photos/1008732/pexels-photo-1008732.jpeg?auto=compress&cs=tinysrgb&h=750&w=1260",
71090
- subtitle: "Beach",
71091
- title: "The beach",
71092
- description: "Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam.",
71093
- href: "#",
71094
- hrefTitle: "Explore the beach"
71095
- },
71096
- {
71097
- id: "Building",
71098
- image: "https://images.pexels.com/photos/1029614/pexels-photo-1029614.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940",
71099
- subtitle: "The white building",
71100
- title: "White Building",
71101
- description: "Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam.",
71102
- href: "#",
71103
- hrefTitle: "Read article"
71104
- }
71105
- ];
71106
-
71107
71252
  const root$35 = "_root_1f7ly_1";
71108
71253
  const item$m = "_item_1f7ly_14";
71109
71254
  const itemInfo = "_itemInfo_1f7ly_32";
@@ -71159,6 +71304,54 @@ const CardCarouselItem = ({
71159
71304
  ] });
71160
71305
  };
71161
71306
 
71307
+ const MOCK_CARD_CAROUSEL_ITEMS = [
71308
+ {
71309
+ id: "Tour",
71310
+ image: "https://images.pexels.com/photos/991012/pexels-photo-991012.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940",
71311
+ subtitle: "The grand moment",
71312
+ title: "Le tour",
71313
+ description: "Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam.",
71314
+ href: "#",
71315
+ hrefTitle: "Explore the tour"
71316
+ },
71317
+ {
71318
+ id: "Window",
71319
+ image: "https://images.pexels.com/photos/921294/pexels-photo-921294.png?auto=compress&cs=tinysrgb&h=750&w=1260",
71320
+ subtitle: "The big window",
71321
+ title: "Minimal window",
71322
+ description: "Clear Glass Window With Brown and White Wooden Frame iste natus error sit voluptatem accusantium doloremque laudantium.",
71323
+ href: "#",
71324
+ hrefTitle: "Read the article"
71325
+ },
71326
+ {
71327
+ id: "Palms",
71328
+ image: "https://images.pexels.com/photos/92733/pexels-photo-92733.jpeg?auto=compress&cs=tinysrgb&h=750&w=1260",
71329
+ subtitle: "Tropical palms",
71330
+ title: "Palms",
71331
+ description: "Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam.",
71332
+ href: "#",
71333
+ hrefTitle: "Explore the palms"
71334
+ },
71335
+ {
71336
+ id: "Beach",
71337
+ image: "https://images.pexels.com/photos/1008732/pexels-photo-1008732.jpeg?auto=compress&cs=tinysrgb&h=750&w=1260",
71338
+ subtitle: "Beach",
71339
+ title: "The beach",
71340
+ description: "Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam.",
71341
+ href: "#",
71342
+ hrefTitle: "Explore the beach"
71343
+ },
71344
+ {
71345
+ id: "Building",
71346
+ image: "https://images.pexels.com/photos/1029614/pexels-photo-1029614.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940",
71347
+ subtitle: "The white building",
71348
+ title: "White Building",
71349
+ description: "Sed ut perspiciatis unde omnis iste natus error sit voluptatem accusantium doloremque laudantium, totam rem aperiam.",
71350
+ href: "#",
71351
+ hrefTitle: "Read article"
71352
+ }
71353
+ ];
71354
+
71162
71355
  const CardCarousel = ({ items = MOCK_CARD_CAROUSEL_ITEMS }) => {
71163
71356
  const [activeIndex, setActiveIndex] = useState(0);
71164
71357
  return /* @__PURE__ */ jsxs("div", { className: styles$3l.root, children: [
@@ -73762,12 +73955,12 @@ const DialControl = ({ limit = true }) => {
73762
73955
  ] });
73763
73956
  };
73764
73957
 
73765
- const root$2L = "_root_ibak3_58";
73766
- const selector = "_selector_ibak3_136";
73767
- const knob$1 = "_knob_ibak3_150";
73768
- const active$i = "_active_ibak3_189";
73769
- const list$5 = "_list_ibak3_392";
73770
- const item$j = "_item_ibak3_436";
73958
+ const root$2L = "_root_1v201_58";
73959
+ const selector = "_selector_1v201_136";
73960
+ const knob$1 = "_knob_1v201_150";
73961
+ const active$i = "_active_1v201_189";
73962
+ const list$5 = "_list_1v201_392";
73963
+ const item$j = "_item_1v201_436";
73771
73964
  const styles$2Y = {
73772
73965
  root: root$2L,
73773
73966
  selector: selector,
@@ -74038,17 +74231,6 @@ const DockMotionEmbedded = ({ children }) => {
74038
74231
  return /* @__PURE__ */ jsx("span", { className: styles$2T.root, children });
74039
74232
  };
74040
74233
 
74041
- const root$2F = "_root_1oncf_1";
74042
- const block = "_block_1oncf_4";
74043
- const item$g = "_item_1oncf_14";
74044
- const gloss = "_gloss_1oncf_31";
74045
- const styles$2S = {
74046
- root: root$2F,
74047
- block: block,
74048
- item: item$g,
74049
- gloss: gloss
74050
- };
74051
-
74052
74234
  function hasWindow() {
74053
74235
  return typeof window !== 'undefined';
74054
74236
  }
@@ -78102,7 +78284,7 @@ function useRole(context, props) {
78102
78284
 
78103
78285
  const tooltip = "_tooltip_pli88_1";
78104
78286
  const tooltipContent = "_tooltipContent_pli88_6";
78105
- const styles$2R = {
78287
+ const styles$2S = {
78106
78288
  tooltip: tooltip,
78107
78289
  tooltipContent: tooltipContent
78108
78290
  };
@@ -78118,6 +78300,9 @@ const Tooltip = ({
78118
78300
  }) => {
78119
78301
  const [isOpen, setIsOpen] = useState(false);
78120
78302
  const shouldReduceMotion = useReducedMotion();
78303
+ const hasFinePointer = useMatchMedia("(pointer: fine)");
78304
+ const isMobile = hasFinePointer === false;
78305
+ const timeoutRef = useRef(null);
78121
78306
  const variants = shouldReduceMotion ? void 0 : {
78122
78307
  initial: {
78123
78308
  scale: animate ? 0.6 : 1,
@@ -78163,6 +78348,28 @@ const Tooltip = ({
78163
78348
  dismiss,
78164
78349
  role
78165
78350
  ]);
78351
+ useEffect(() => {
78352
+ if (timeoutRef.current) {
78353
+ clearTimeout(timeoutRef.current);
78354
+ timeoutRef.current = null;
78355
+ }
78356
+ if (isOpen && isMobile) {
78357
+ timeoutRef.current = setTimeout(() => {
78358
+ setIsOpen(false);
78359
+ }, 2e3);
78360
+ }
78361
+ return () => {
78362
+ if (timeoutRef.current) {
78363
+ clearTimeout(timeoutRef.current);
78364
+ timeoutRef.current = null;
78365
+ }
78366
+ };
78367
+ }, [isOpen, isMobile]);
78368
+ const handleMobileClick = (_e) => {
78369
+ if (isMobile) {
78370
+ setIsOpen(true);
78371
+ }
78372
+ };
78166
78373
  const childRef = isValidElement(children) && children.props && children.props.ref ? children.props.ref : null;
78167
78374
  const mergedRef = useMergeRefs([refs.setReference, childRef]);
78168
78375
  if (isValidElement(children)) {
@@ -78178,6 +78385,10 @@ const Tooltip = ({
78178
78385
  const mergedProps = {
78179
78386
  ...childProps,
78180
78387
  ref: mergedRef,
78388
+ onClick: mergeEventHandler(
78389
+ childProps.onClick,
78390
+ handleMobileClick
78391
+ ),
78181
78392
  onMouseEnter: mergeEventHandler(
78182
78393
  childProps.onMouseEnter,
78183
78394
  tooltipProps.onMouseEnter
@@ -78203,11 +78414,11 @@ const Tooltip = ({
78203
78414
  ref: refs.setFloating,
78204
78415
  style: floatingStyles,
78205
78416
  ...getFloatingProps(),
78206
- className: styles$2R.tooltip,
78417
+ className: styles$2S.tooltip,
78207
78418
  children: /* @__PURE__ */ jsx(
78208
78419
  motion.div,
78209
78420
  {
78210
- className: clsx(styles$2R.tooltipContent, className),
78421
+ className: clsx(styles$2S.tooltipContent, className),
78211
78422
  variants,
78212
78423
  initial: shouldReduceMotion ? void 0 : "initial",
78213
78424
  animate: shouldReduceMotion ? void 0 : "animate",
@@ -78226,6 +78437,7 @@ const Tooltip = ({
78226
78437
  {
78227
78438
  ref: refs.setReference,
78228
78439
  ...getReferenceProps(),
78440
+ onClick: handleMobileClick,
78229
78441
  style: { display: "contents" },
78230
78442
  children
78231
78443
  }
@@ -78236,11 +78448,11 @@ const Tooltip = ({
78236
78448
  ref: refs.setFloating,
78237
78449
  style: floatingStyles,
78238
78450
  ...getFloatingProps(),
78239
- className: styles$2R.tooltip,
78451
+ className: styles$2S.tooltip,
78240
78452
  children: /* @__PURE__ */ jsx(
78241
78453
  motion.div,
78242
78454
  {
78243
- className: clsx(styles$2R.tooltipContent, className),
78455
+ className: clsx(styles$2S.tooltipContent, className),
78244
78456
  variants,
78245
78457
  initial: shouldReduceMotion ? void 0 : "initial",
78246
78458
  animate: shouldReduceMotion ? void 0 : "animate",
@@ -78254,15 +78466,15 @@ const Tooltip = ({
78254
78466
  ] });
78255
78467
  };
78256
78468
 
78257
- const root$2E = "_root_1uu8h_1";
78469
+ const root$2F = "_root_1uu8h_1";
78258
78470
  const label$8 = "_label_1uu8h_21";
78259
78471
  const input$m = "_input_1uu8h_28";
78260
78472
  const output = "_output_1uu8h_88";
78261
78473
  const valueTrack = "_valueTrack_1uu8h_90";
78262
78474
  const outputValues = "_outputValues_1uu8h_91";
78263
78475
  const outputValue = "_outputValue_1uu8h_91";
78264
- const styles$2Q = {
78265
- root: root$2E,
78476
+ const styles$2R = {
78477
+ root: root$2F,
78266
78478
  label: label$8,
78267
78479
  input: input$m,
78268
78480
  output: output,
@@ -78302,18 +78514,18 @@ const TooltipRangeSlider = () => {
78302
78514
  return /* @__PURE__ */ jsxs(
78303
78515
  "form",
78304
78516
  {
78305
- className: styles$2Q.root,
78517
+ className: styles$2R.root,
78306
78518
  action: "",
78307
78519
  style: {
78308
78520
  "--percent": `${percent}%`,
78309
78521
  "--transX": `${transX}em`
78310
78522
  },
78311
78523
  children: [
78312
- /* @__PURE__ */ jsx("label", { className: styles$2Q.label, htmlFor: "dummy", children: "Range" }),
78524
+ /* @__PURE__ */ jsx("label", { className: styles$2R.label, htmlFor: "dummy", children: "Range" }),
78313
78525
  /* @__PURE__ */ jsx(
78314
78526
  "input",
78315
78527
  {
78316
- className: styles$2Q.input,
78528
+ className: styles$2R.input,
78317
78529
  type: "range",
78318
78530
  value,
78319
78531
  min: min$1,
@@ -78322,12 +78534,12 @@ const TooltipRangeSlider = () => {
78322
78534
  onChange: update
78323
78535
  }
78324
78536
  ),
78325
- /* @__PURE__ */ jsx("div", { className: styles$2Q.output, "aria-hidden": "true", children: /* @__PURE__ */ jsx("div", { className: styles$2Q.valueTrack, children: /* @__PURE__ */ jsx("div", { className: styles$2Q.outputValues, children: useMemo(() => {
78537
+ /* @__PURE__ */ jsx("div", { className: styles$2R.output, "aria-hidden": "true", children: /* @__PURE__ */ jsx("div", { className: styles$2R.valueTrack, children: /* @__PURE__ */ jsx("div", { className: styles$2R.outputValues, children: useMemo(() => {
78326
78538
  const totalValues = (Math.abs(max$1) + Math.abs(min$1)) / step$2 + 1;
78327
78539
  const values = [];
78328
78540
  for (let i = min$1; i < totalValues; i += 1) {
78329
78541
  values.push(
78330
- /* @__PURE__ */ jsx("span", { className: styles$2Q.outputValue, children: i }, i)
78542
+ /* @__PURE__ */ jsx("span", { className: styles$2R.outputValue, children: i }, i)
78331
78543
  );
78332
78544
  }
78333
78545
  return values;
@@ -78337,6 +78549,17 @@ const TooltipRangeSlider = () => {
78337
78549
  );
78338
78550
  };
78339
78551
 
78552
+ const root$2E = "_root_1oncf_1";
78553
+ const block = "_block_1oncf_4";
78554
+ const item$g = "_item_1oncf_14";
78555
+ const gloss = "_gloss_1oncf_31";
78556
+ const styles$2Q = {
78557
+ root: root$2E,
78558
+ block: block,
78559
+ item: item$g,
78560
+ gloss: gloss
78561
+ };
78562
+
78340
78563
  const baseWidth = 48;
78341
78564
  const distanceLimit = baseWidth * 5;
78342
78565
  const distanceInput = [
@@ -78451,7 +78674,7 @@ const DockMotionItem = ({
78451
78674
  const isInteractive = rest.use !== "div";
78452
78675
  const ContentElement = useMemo(() => {
78453
78676
  if (rest.use && typeof rest.use !== "string") {
78454
- return motion(rest.use);
78677
+ return motion.create(rest.use);
78455
78678
  }
78456
78679
  switch (rest.use) {
78457
78680
  case "a":
@@ -78471,13 +78694,13 @@ const DockMotionItem = ({
78471
78694
  "div",
78472
78695
  {
78473
78696
  ref,
78474
- className: clsx(styles$2S.root, { [styles$2S.block]: type === "block" }),
78697
+ className: clsx(styles$2Q.root, { [styles$2Q.block]: type === "block" }),
78475
78698
  children: /* @__PURE__ */ jsxs(
78476
78699
  ContentElement,
78477
78700
  {
78478
78701
  ref: scope,
78479
78702
  layoutId: itemId,
78480
- className: clsx(styles$2S.item, className),
78703
+ className: clsx(styles$2Q.item, className),
78481
78704
  onMouseEnter,
78482
78705
  style: contentStyle,
78483
78706
  "data-action": isInteractive,
@@ -78527,7 +78750,7 @@ const DockMotionItem = ({
78527
78750
  whileDrag: { zIndex: 1 },
78528
78751
  ...linkProps,
78529
78752
  children: [
78530
- /* @__PURE__ */ jsx("div", { className: styles$2S.gloss }),
78753
+ /* @__PURE__ */ jsx("div", { className: styles$2Q.gloss }),
78531
78754
  children
78532
78755
  ]
78533
78756
  },
@@ -79175,9 +79398,9 @@ const ContrastBackgroundText = () => {
79175
79398
  return /* @__PURE__ */ jsx("div", { className: styles$2D.bg, children: /* @__PURE__ */ jsx("span", { className: styles$2D.text, children: "One place to stack all your cards" }) });
79176
79399
  };
79177
79400
 
79178
- const root$2s = "_root_1077x_1";
79179
- const title$5 = "_title_1077x_10";
79180
- const image$c = "_image_1077x_89";
79401
+ const root$2s = "_root_7opbl_1";
79402
+ const title$5 = "_title_7opbl_10";
79403
+ const image$c = "_image_7opbl_89";
79181
79404
  const styles$2C = {
79182
79405
  root: root$2s,
79183
79406
  title: title$5,
@@ -79185,21 +79408,78 @@ const styles$2C = {
79185
79408
  };
79186
79409
 
79187
79410
  const FluidGooeyTextBackground = () => {
79188
- return /* @__PURE__ */ jsxs("div", { className: styles$2C.root, children: [
79189
- /* @__PURE__ */ jsx("h1", { className: styles$2C.title, children: /* @__PURE__ */ jsxs("span", { children: [
79190
- /* @__PURE__ */ jsx("span", { children: "Business intelligence" }),
79191
- /* @__PURE__ */ jsx("br", {}),
79192
- /* @__PURE__ */ jsx("span", { children: "built around" }),
79193
- /* @__PURE__ */ jsx("br", {}),
79194
- /* @__PURE__ */ jsx("span", { children: "data teams" })
79411
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
79412
+ /* @__PURE__ */ jsx("svg", { style: { position: "absolute", width: 0, height: 0 }, children: /* @__PURE__ */ jsxs("defs", { children: [
79413
+ /* @__PURE__ */ jsxs("filter", { id: "round-desktop", children: [
79414
+ /* @__PURE__ */ jsx(
79415
+ "feGaussianBlur",
79416
+ {
79417
+ in: "SourceGraphic",
79418
+ stdDeviation: "10",
79419
+ result: "blur"
79420
+ }
79421
+ ),
79422
+ /* @__PURE__ */ jsx(
79423
+ "feColorMatrix",
79424
+ {
79425
+ in: "blur",
79426
+ mode: "matrix",
79427
+ values: "1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 20 -10",
79428
+ result: "goo"
79429
+ }
79430
+ ),
79431
+ /* @__PURE__ */ jsx("feComposite", { in: "SourceGraphic", in2: "goo", operator: "atop" })
79432
+ ] }),
79433
+ /* @__PURE__ */ jsxs("filter", { id: "round-tablet", children: [
79434
+ /* @__PURE__ */ jsx(
79435
+ "feGaussianBlur",
79436
+ {
79437
+ in: "SourceGraphic",
79438
+ stdDeviation: "7.5",
79439
+ result: "blur"
79440
+ }
79441
+ ),
79442
+ /* @__PURE__ */ jsx(
79443
+ "feColorMatrix",
79444
+ {
79445
+ in: "blur",
79446
+ mode: "matrix",
79447
+ values: "1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 15 -7.5",
79448
+ result: "goo"
79449
+ }
79450
+ ),
79451
+ /* @__PURE__ */ jsx("feComposite", { in: "SourceGraphic", in2: "goo", operator: "atop" })
79452
+ ] }),
79453
+ /* @__PURE__ */ jsxs("filter", { id: "round-mobile", children: [
79454
+ /* @__PURE__ */ jsx("feGaussianBlur", { in: "SourceGraphic", stdDeviation: "4", result: "blur" }),
79455
+ /* @__PURE__ */ jsx(
79456
+ "feColorMatrix",
79457
+ {
79458
+ in: "blur",
79459
+ mode: "matrix",
79460
+ values: "1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 8 -4",
79461
+ result: "goo"
79462
+ }
79463
+ ),
79464
+ /* @__PURE__ */ jsx("feComposite", { in: "SourceGraphic", in2: "goo", operator: "atop" })
79465
+ ] })
79195
79466
  ] }) }),
79196
- /* @__PURE__ */ jsx(
79197
- "img",
79198
- {
79199
- className: styles$2C.image,
79200
- src: "https://cdn.sanity.io/images/0nccms3b/production/51f800179e473cc6ae3b5523d21c0dcdde1bb8ea-1358x854.png?w=1358&h=854&q=95&fit=max&auto=format"
79201
- }
79202
- )
79467
+ /* @__PURE__ */ jsxs("div", { className: styles$2C.root, children: [
79468
+ /* @__PURE__ */ jsx("h1", { className: styles$2C.title, children: /* @__PURE__ */ jsxs("span", { children: [
79469
+ /* @__PURE__ */ jsx("span", { children: "Business intelligence" }),
79470
+ /* @__PURE__ */ jsx("br", {}),
79471
+ /* @__PURE__ */ jsx("span", { children: "built around" }),
79472
+ /* @__PURE__ */ jsx("br", {}),
79473
+ /* @__PURE__ */ jsx("span", { children: "data teams" })
79474
+ ] }) }),
79475
+ /* @__PURE__ */ jsx(
79476
+ "img",
79477
+ {
79478
+ className: styles$2C.image,
79479
+ src: "https://cdn.sanity.io/images/0nccms3b/production/51f800179e473cc6ae3b5523d21c0dcdde1bb8ea-1358x854.png?w=1358&h=854&q=95&fit=max&auto=format"
79480
+ }
79481
+ )
79482
+ ] })
79203
79483
  ] });
79204
79484
  };
79205
79485
 
@@ -80622,7 +80902,7 @@ const EndlessLoader = ({ container }) => {
80622
80902
  return;
80623
80903
  }
80624
80904
  try {
80625
- const GLModule = await import('./gl-BRR71tEA.js');
80905
+ const GLModule = await import('./gl-BFfDUvBl.js');
80626
80906
  if (!isActiveRef.current) {
80627
80907
  return;
80628
80908
  }
@@ -86530,11 +86810,11 @@ const ScrambledText = ({ children, reveal = false }) => {
86530
86810
  );
86531
86811
  };
86532
86812
 
86533
- const root$Y = "_root_1d8jp_1";
86534
- const line = "_line_1d8jp_9";
86535
- const word$1 = "_word_1d8jp_14";
86536
- const link = "_link_1d8jp_18";
86537
- const letter = "_letter_1d8jp_22";
86813
+ const root$Y = "_root_kw2ds_1";
86814
+ const line = "_line_kw2ds_9";
86815
+ const word$1 = "_word_kw2ds_14";
86816
+ const link = "_link_kw2ds_18";
86817
+ const letter = "_letter_kw2ds_22";
86538
86818
  const styles$11 = {
86539
86819
  root: root$Y,
86540
86820
  line: line,
@@ -96488,7 +96768,7 @@ const Lock = () => {
96488
96768
  }
96489
96769
  };
96490
96770
  const asynchronously = async () => {
96491
- const Flickity = await import('./index-DZDOztP9.js').then(n => n.i).then((m) => m.default);
96771
+ const Flickity = await import('./index-DXXsjiRy.js').then(n => n.i).then((m) => m.default);
96492
96772
  if (!rowsRef.current || !window) return;
96493
96773
  const rows = rowsRef.current.children;
96494
96774
  for (let i = 0, len = rows.length; i < len; i++) {
@@ -102288,6 +102568,34 @@ function useDrag(handler, config) {
102288
102568
  }, config || {}, 'drag');
102289
102569
  }
102290
102570
 
102571
+ function normalize(value, min, max) {
102572
+ return (value - min) / (max - min);
102573
+ }
102574
+ function calculateDistance(coordinates1, coordinates2) {
102575
+ const h = coordinates1.x - coordinates2.x;
102576
+ const v = coordinates1.y - coordinates2.y;
102577
+ return Math.sqrt(h * h + v * v);
102578
+ }
102579
+ function calculateAngle(coordinates1, coordinates2) {
102580
+ let theta = 0;
102581
+ const dy = coordinates2.y - coordinates1.y;
102582
+ const dx = coordinates2.x - coordinates1.x;
102583
+ theta = Math.atan2(dy, dx);
102584
+ theta *= 180 / Math.PI;
102585
+ return theta;
102586
+ }
102587
+ function getGlowLayers(factor, intensity) {
102588
+ const glowMap = [1, 2, 7, 14, 24, 42, 86, 124];
102589
+ const scale = intensity * factor;
102590
+ const glowLayers = Array.from({ length: 8 }, (_, i) => {
102591
+ return {
102592
+ radius: scale * glowMap[i],
102593
+ opacity: i > 0 ? 1 / i : 1
102594
+ };
102595
+ });
102596
+ return glowLayers;
102597
+ }
102598
+
102291
102599
  const root$h = "_root_1xwkj_1";
102292
102600
  const sun = "_sun_1xwkj_9";
102293
102601
  const moon = "_moon_1xwkj_20";
@@ -102341,34 +102649,6 @@ const BaileysBead = ({ theta, offset = 0, opa }) => {
102341
102649
  );
102342
102650
  };
102343
102651
 
102344
- function normalize(value, min, max) {
102345
- return (value - min) / (max - min);
102346
- }
102347
- function calculateDistance(coordinates1, coordinates2) {
102348
- const h = coordinates1.x - coordinates2.x;
102349
- const v = coordinates1.y - coordinates2.y;
102350
- return Math.sqrt(h * h + v * v);
102351
- }
102352
- function calculateAngle(coordinates1, coordinates2) {
102353
- let theta = 0;
102354
- const dy = coordinates2.y - coordinates1.y;
102355
- const dx = coordinates2.x - coordinates1.x;
102356
- theta = Math.atan2(dy, dx);
102357
- theta *= 180 / Math.PI;
102358
- return theta;
102359
- }
102360
- function getGlowLayers(factor, intensity) {
102361
- const glowMap = [1, 2, 7, 14, 24, 42, 86, 124];
102362
- const scale = intensity * factor;
102363
- const glowLayers = Array.from({ length: 8 }, (_, i) => {
102364
- return {
102365
- radius: scale * glowMap[i],
102366
- opacity: i > 0 ? 1 / i : 1
102367
- };
102368
- });
102369
- return glowLayers;
102370
- }
102371
-
102372
102652
  const SolarEclipse = () => {
102373
102653
  const [theta, setTheta] = useState(0);
102374
102654
  const [obscurity, setObscurity] = useState(0);