@tarsis/toolkit 0.5.8-beta.3 → 0.6.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.
@@ -1,4 +1,4 @@
1
- import { c as commonjsGlobal, a as getAugmentedNamespace, g as getDefaultExportFromCjs, W as WebGLRenderer, P as PerspectiveCamera, S as Scene, T as THREE$1, C as Clock, b as TextureLoader, R as RawShaderMaterial, D as DoubleSide, d as WebGLRenderTarget, e as Color, M as Mesh, f as TorusKnotGeometry, h as ShaderMaterial } from './index-BiUGuJ0v.js';
1
+ import { c as commonjsGlobal, a as getAugmentedNamespace, g as getDefaultExportFromCjs, W as WebGLRenderer, P as PerspectiveCamera, S as Scene, T as THREE$1, C as Clock, b as TextureLoader, R as RawShaderMaterial, D as DoubleSide, d as WebGLRenderTarget, e as Color, M as Mesh, f as TorusKnotGeometry, h as ShaderMaterial } from './index-iVv-r1r7.js';
2
2
 
3
3
  /*
4
4
  object-assign
@@ -2,7 +2,7 @@
2
2
 
3
3
  Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
4
4
 
5
- const index = require('./index-6_4NA2IG.cjs');
5
+ const index = require('./index-ZUvQTjLa.cjs');
6
6
 
7
7
  /*
8
8
  object-assign
@@ -1,4 +1,4 @@
1
- import { g as getDefaultExportFromCjs } from './index-BiUGuJ0v.js';
1
+ import { g as getDefaultExportFromCjs } from './index-iVv-r1r7.js';
2
2
 
3
3
  function _mergeNamespaces(n, m) {
4
4
  for (var i = 0; i < m.length; i++) {
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- const index$2 = require('./index-6_4NA2IG.cjs');
3
+ const index$2 = require('./index-ZUvQTjLa.cjs');
4
4
 
5
5
  function _mergeNamespaces(n, m) {
6
6
  for (var i = 0; i < m.length; i++) {
@@ -52114,11 +52114,11 @@ const BubblyParticlesButton = () => {
52114
52114
  return /* @__PURE__ */ jsxRuntime.jsx("button", { className: styles$4H.root, onClick: handleClick, children: "Click me!" });
52115
52115
  };
52116
52116
 
52117
- const root$4i = "_root_9eh7d_1";
52118
- const button$o = "_button_9eh7d_13";
52119
- const p$1 = "_p_9eh7d_26";
52120
- const text$z = "_text_9eh7d_26";
52121
- const effects = "_effects_9eh7d_240";
52117
+ const root$4i = "_root_1gkhg_1";
52118
+ const button$o = "_button_1gkhg_13";
52119
+ const p$1 = "_p_1gkhg_26";
52120
+ const text$z = "_text_1gkhg_26";
52121
+ const effects = "_effects_1gkhg_240";
52122
52122
  const styles$4G = {
52123
52123
  root: root$4i,
52124
52124
  button: button$o,
@@ -68248,9 +68248,9 @@ const NeonButton = ({ className = "", ...rest }) => {
68248
68248
  return /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", ...rest, className: clsx(styles$48.root, className), children: "Neon" });
68249
68249
  };
68250
68250
 
68251
- const root$3P = "_root_nestf_2";
68252
- const i$6 = "_i_nestf_22";
68253
- const text$s = "_text_nestf_482";
68251
+ const root$3P = "_root_1453i_2";
68252
+ const i$6 = "_i_1453i_22";
68253
+ const text$s = "_text_1453i_482";
68254
68254
  const styles$47 = {
68255
68255
  root: root$3P,
68256
68256
  i: i$6,
@@ -74246,6 +74246,49 @@ const DockHas = () => {
74246
74246
  return /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles$2V.root, children: icons });
74247
74247
  };
74248
74248
 
74249
+ const audioCache = /* @__PURE__ */ new Map();
74250
+ const createAudio = (src) => {
74251
+ if (typeof window === "undefined" || typeof Audio === "undefined") {
74252
+ return null;
74253
+ }
74254
+ try {
74255
+ return new Audio(src);
74256
+ } catch (error) {
74257
+ console.warn("Audio is not supported or failed to create:", error);
74258
+ return null;
74259
+ }
74260
+ };
74261
+ const preloadAudio = (src) => {
74262
+ if (typeof window === "undefined" || typeof Audio === "undefined") {
74263
+ return;
74264
+ }
74265
+ const audio = audioCache.get(src) ?? createAudio(src);
74266
+ if (audio) {
74267
+ audio.preload = "auto";
74268
+ audio.load();
74269
+ audioCache.set(src, audio);
74270
+ }
74271
+ };
74272
+ const playAudio = (src, onError) => {
74273
+ const audio = audioCache.get(src) ?? createAudio(src);
74274
+ if (!audio) {
74275
+ return;
74276
+ }
74277
+ audioCache.set(src, audio);
74278
+ if (audio.readyState < 2) {
74279
+ audio.load();
74280
+ }
74281
+ audio.pause();
74282
+ audio.currentTime = 0;
74283
+ const playPromise = audio.play();
74284
+ if (playPromise && typeof playPromise.catch === "function") {
74285
+ playPromise.catch((error) => {
74286
+ onError?.(error);
74287
+ console.warn(`Failed to play audio ${src}:`, error);
74288
+ });
74289
+ }
74290
+ };
74291
+
74249
74292
  const root$2H = "_root_1tbwv_1";
74250
74293
  const container$9 = "_container_1tbwv_10";
74251
74294
  const glossyXLine = "_glossyXLine_1tbwv_35";
@@ -78331,6 +78374,18 @@ const styles$2S = {
78331
78374
  tooltipContent: tooltipContent
78332
78375
  };
78333
78376
 
78377
+ const getExitOffset = (placement, offsetValue) => {
78378
+ switch (placement) {
78379
+ case "top":
78380
+ return { x: 0, y: offsetValue };
78381
+ case "bottom":
78382
+ return { x: 0, y: -offsetValue };
78383
+ case "left":
78384
+ return { x: offsetValue, y: 0 };
78385
+ case "right":
78386
+ return { x: -offsetValue, y: 0 };
78387
+ }
78388
+ };
78334
78389
  const Tooltip = ({
78335
78390
  children,
78336
78391
  label,
@@ -78343,34 +78398,40 @@ const Tooltip = ({
78343
78398
  }) => {
78344
78399
  const [isOpen, setIsOpen] = React.useState(false);
78345
78400
  const [clicked, setClicked] = React.useState(false);
78401
+ const [isPositioned, setIsPositioned] = React.useState(false);
78346
78402
  const shouldReduceMotion = useReducedMotion();
78347
78403
  const hasFinePointer = useWindowReady.useMatchMedia("(pointer: fine)");
78348
78404
  const isMobile = hasFinePointer === false;
78349
78405
  const timeoutRef = React.useRef(null);
78350
- const variants = shouldReduceMotion ? void 0 : {
78351
- initial: {
78352
- scale: animate ? 0.6 : 1,
78353
- opacity: animate ? 0.8 : 1
78354
- },
78355
- animate: {
78356
- scale: 1,
78357
- opacity: 1,
78358
- transition: {
78359
- type: "spring",
78360
- stiffness: 280,
78361
- damping: 22,
78362
- mass: 0.9
78406
+ const rafRef = React.useRef(null);
78407
+ const variants = React.useMemo(
78408
+ () => shouldReduceMotion ? void 0 : {
78409
+ initial: {
78410
+ scale: animate ? 0.6 : 1,
78411
+ opacity: animate ? 0.8 : 1
78412
+ },
78413
+ animate: {
78414
+ scale: 1,
78415
+ opacity: 1,
78416
+ transition: {
78417
+ type: "spring",
78418
+ stiffness: 280,
78419
+ damping: 22,
78420
+ mass: 0.9
78421
+ }
78422
+ },
78423
+ exit: {
78424
+ scale: 0.3,
78425
+ opacity: 0,
78426
+ ...getExitOffset(placement, offsetValue),
78427
+ transition: {
78428
+ duration: 0.2,
78429
+ ease: [0.33, 1, 0.68, 1]
78430
+ }
78363
78431
  }
78364
78432
  },
78365
- exit: {
78366
- scale: animate ? 0.4 : 1,
78367
- opacity: animate ? 0.8 : 1,
78368
- transition: {
78369
- duration: 0.1,
78370
- ease: "easeIn"
78371
- }
78372
- }
78373
- };
78433
+ [shouldReduceMotion, animate, placement, offsetValue]
78434
+ );
78374
78435
  const { refs, floatingStyles, context } = useFloating({
78375
78436
  open: isOpen,
78376
78437
  onOpenChange: setIsOpen,
@@ -78380,7 +78441,7 @@ const Tooltip = ({
78380
78441
  whileElementsMounted: autoUpdate
78381
78442
  });
78382
78443
  const hover = useHover(context, {
78383
- delay: { open: delay, close: delay },
78444
+ delay: shouldReduceMotion ? 0 : { open: delay, close: delay },
78384
78445
  move: false,
78385
78446
  enabled: disableOnClick ? !clicked : true
78386
78447
  });
@@ -78410,7 +78471,82 @@ const Tooltip = ({
78410
78471
  }
78411
78472
  };
78412
78473
  }, [isOpen, isMobile]);
78413
- const handleClick = (_e) => {
78474
+ React.useEffect(() => {
78475
+ if (!isOpen) {
78476
+ setIsPositioned(false);
78477
+ return;
78478
+ }
78479
+ if (!shouldReduceMotion) {
78480
+ setIsPositioned(true);
78481
+ return;
78482
+ }
78483
+ let attempts = 0;
78484
+ const maxAttempts = 10;
78485
+ const checkPosition = () => {
78486
+ const element = refs.floating.current;
78487
+ if (element) {
78488
+ const rect = element.getBoundingClientRect();
78489
+ if (rect.width > 0 && rect.height > 0 && (rect.left !== 0 || rect.top !== 0)) {
78490
+ setIsPositioned(true);
78491
+ rafRef.current = null;
78492
+ return;
78493
+ }
78494
+ }
78495
+ attempts += 1;
78496
+ if (attempts < maxAttempts) {
78497
+ rafRef.current = requestAnimationFrame(checkPosition);
78498
+ } else {
78499
+ setIsPositioned(true);
78500
+ rafRef.current = null;
78501
+ }
78502
+ };
78503
+ rafRef.current = requestAnimationFrame(checkPosition);
78504
+ return () => {
78505
+ if (rafRef.current !== null) {
78506
+ cancelAnimationFrame(rafRef.current);
78507
+ rafRef.current = null;
78508
+ }
78509
+ };
78510
+ }, [isOpen, shouldReduceMotion]);
78511
+ const tooltipContent = React.useMemo(() => {
78512
+ if (!isOpen) return null;
78513
+ const tooltipWrapper = /* @__PURE__ */ jsxRuntime.jsx(
78514
+ "div",
78515
+ {
78516
+ ref: refs.setFloating,
78517
+ style: {
78518
+ ...floatingStyles,
78519
+ ...shouldReduceMotion && !isPositioned ? { visibility: "hidden" } : {}
78520
+ },
78521
+ ...getFloatingProps(),
78522
+ className: styles$2S.tooltip,
78523
+ children: shouldReduceMotion ? /* @__PURE__ */ jsxRuntime.jsx("div", { className: clsx(styles$2S.tooltipContent, className), children: label }) : /* @__PURE__ */ jsxRuntime.jsx(
78524
+ motion.div,
78525
+ {
78526
+ className: clsx(styles$2S.tooltipContent, className),
78527
+ variants,
78528
+ initial: "initial",
78529
+ animate: "animate",
78530
+ exit: "exit",
78531
+ children: label
78532
+ }
78533
+ )
78534
+ },
78535
+ "tooltip"
78536
+ );
78537
+ return /* @__PURE__ */ jsxRuntime.jsx(FloatingPortal, { children: shouldReduceMotion ? tooltipWrapper : /* @__PURE__ */ jsxRuntime.jsx(AnimatePresence, { mode: "wait", children: tooltipWrapper }) });
78538
+ }, [
78539
+ isOpen,
78540
+ shouldReduceMotion,
78541
+ isPositioned,
78542
+ refs.setFloating,
78543
+ floatingStyles,
78544
+ getFloatingProps,
78545
+ className,
78546
+ label,
78547
+ variants
78548
+ ]);
78549
+ const handleClick = React.useCallback(() => {
78414
78550
  if (disableOnClick) {
78415
78551
  setClicked(true);
78416
78552
  setIsOpen(false);
@@ -78418,25 +78554,30 @@ const Tooltip = ({
78418
78554
  if (isMobile) {
78419
78555
  setIsOpen(true);
78420
78556
  }
78421
- };
78422
- const handleMouseLeave = (_e) => {
78557
+ }, [disableOnClick, isMobile]);
78558
+ const handleMouseLeave = React.useCallback(() => {
78423
78559
  if (disableOnClick) {
78424
78560
  setClicked(false);
78425
78561
  }
78426
- };
78427
- const mergeEventHandler = (childHandler, tooltipHandler) => {
78428
- return (e) => {
78429
- childHandler?.(e);
78430
- tooltipHandler?.(e);
78431
- };
78432
- };
78433
- const childRef = React.isValidElement(children) && children.props && children.props.ref ? children.props.ref : null;
78562
+ }, [disableOnClick]);
78563
+ const mergeEventHandler = React.useCallback(
78564
+ (childHandler, tooltipHandler) => {
78565
+ return (e) => {
78566
+ childHandler?.(e);
78567
+ tooltipHandler?.(e);
78568
+ };
78569
+ },
78570
+ []
78571
+ );
78572
+ const childRef = React.useMemo(() => {
78573
+ if (!React.isValidElement(children)) return null;
78574
+ const props = children.props;
78575
+ return props?.ref ?? null;
78576
+ }, [children]);
78434
78577
  const mergedRef = useMergeRefs([refs.setReference, childRef]);
78435
- if (React.isValidElement(children)) {
78436
- const childElement = children;
78437
- const childProps = childElement.props;
78438
- const tooltipProps = getReferenceProps();
78439
- const mergedProps = {
78578
+ const tooltipProps = React.useMemo(() => getReferenceProps(), [getReferenceProps]);
78579
+ const createMergedProps = React.useCallback(
78580
+ (childProps) => ({
78440
78581
  ...childProps,
78441
78582
  ref: mergedRef,
78442
78583
  onClick: mergeEventHandler(
@@ -78462,30 +78603,39 @@ const Tooltip = ({
78462
78603
  childProps.onBlur,
78463
78604
  tooltipProps.onBlur
78464
78605
  )
78465
- };
78606
+ }),
78607
+ [
78608
+ mergedRef,
78609
+ mergeEventHandler,
78610
+ handleClick,
78611
+ handleMouseLeave,
78612
+ tooltipProps.onMouseEnter,
78613
+ tooltipProps.onMouseLeave,
78614
+ tooltipProps.onFocus,
78615
+ tooltipProps.onBlur
78616
+ ]
78617
+ );
78618
+ const spanProps = React.useMemo(
78619
+ () => ({
78620
+ ...tooltipProps,
78621
+ onClick: mergeEventHandler(
78622
+ tooltipProps.onClick,
78623
+ handleClick
78624
+ ),
78625
+ onMouseLeave: mergeEventHandler(
78626
+ tooltipProps.onMouseLeave,
78627
+ handleMouseLeave
78628
+ )
78629
+ }),
78630
+ [tooltipProps, mergeEventHandler, handleClick, handleMouseLeave]
78631
+ );
78632
+ if (React.isValidElement(children)) {
78633
+ const childElement = children;
78634
+ const childProps = childElement.props;
78635
+ const mergedProps = createMergedProps(childProps);
78466
78636
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
78467
78637
  React.cloneElement(childElement, mergedProps),
78468
- /* @__PURE__ */ jsxRuntime.jsx(FloatingPortal, { children: /* @__PURE__ */ jsxRuntime.jsx(AnimatePresence, { mode: "wait", children: isOpen && /* @__PURE__ */ jsxRuntime.jsx(
78469
- "div",
78470
- {
78471
- ref: refs.setFloating,
78472
- style: floatingStyles,
78473
- ...getFloatingProps(),
78474
- className: styles$2S.tooltip,
78475
- children: /* @__PURE__ */ jsxRuntime.jsx(
78476
- motion.div,
78477
- {
78478
- className: clsx(styles$2S.tooltipContent, className),
78479
- variants,
78480
- initial: shouldReduceMotion ? void 0 : "initial",
78481
- animate: shouldReduceMotion ? void 0 : "animate",
78482
- exit: shouldReduceMotion ? void 0 : "exit",
78483
- children: label
78484
- }
78485
- )
78486
- },
78487
- "tooltip"
78488
- ) }) })
78638
+ tooltipContent
78489
78639
  ] });
78490
78640
  }
78491
78641
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
@@ -78493,37 +78643,12 @@ const Tooltip = ({
78493
78643
  "span",
78494
78644
  {
78495
78645
  ref: refs.setReference,
78496
- ...getReferenceProps(),
78497
- onClick: handleClick,
78498
- onMouseLeave: mergeEventHandler(
78499
- getReferenceProps().onMouseLeave,
78500
- handleMouseLeave
78501
- ),
78646
+ ...spanProps,
78502
78647
  style: { display: "contents" },
78503
78648
  children
78504
78649
  }
78505
78650
  ),
78506
- /* @__PURE__ */ jsxRuntime.jsx(FloatingPortal, { children: /* @__PURE__ */ jsxRuntime.jsx(AnimatePresence, { mode: "wait", children: isOpen && /* @__PURE__ */ jsxRuntime.jsx(
78507
- "div",
78508
- {
78509
- ref: refs.setFloating,
78510
- style: floatingStyles,
78511
- ...getFloatingProps(),
78512
- className: styles$2S.tooltip,
78513
- children: /* @__PURE__ */ jsxRuntime.jsx(
78514
- motion.div,
78515
- {
78516
- className: clsx(styles$2S.tooltipContent, className),
78517
- variants,
78518
- initial: shouldReduceMotion ? void 0 : "initial",
78519
- animate: shouldReduceMotion ? void 0 : "animate",
78520
- exit: shouldReduceMotion ? void 0 : "exit",
78521
- children: label
78522
- }
78523
- )
78524
- },
78525
- "tooltip"
78526
- ) }) })
78651
+ tooltipContent
78527
78652
  ] });
78528
78653
  };
78529
78654
 
@@ -78666,7 +78791,6 @@ const DockMotionItem = (props) => {
78666
78791
  restSpeed: 0.01,
78667
78792
  restDelta: 0.01
78668
78793
  });
78669
- const audioRef = React.useRef(null);
78670
78794
  const hover = useWindowReady.useMatchMedia("(pointer: fine)");
78671
78795
  const prefersReducedMotion = useReducedMotion();
78672
78796
  const [scope, animate] = useAnimate();
@@ -78705,25 +78829,17 @@ const DockMotionItem = (props) => {
78705
78829
  unsubscribe();
78706
78830
  };
78707
78831
  }, [scale]);
78708
- const playAudio = React.useCallback(
78832
+ const playAudio$1 = React.useCallback(
78709
78833
  (interactionState = "possible") => {
78710
- if (typeof window === "undefined" || typeof Audio === "undefined" || !isInteractive || mute) {
78834
+ if (!isInteractive || mute) {
78711
78835
  return;
78712
78836
  }
78713
78837
  const audioSrc = interactionState === "possible" ? "/audio/click.wav" : "/audio/hover.mp3";
78714
- try {
78715
- const audio = new Audio(audioSrc);
78716
- audio.preload = "auto";
78717
- audio.volume = 0.2;
78718
- const playPromise = audio.play();
78719
- if (playPromise && typeof playPromise.catch === "function") {
78720
- playPromise.catch(() => {
78721
- });
78838
+ playAudio(audioSrc, (error) => {
78839
+ if (interactionState === "impossible") {
78840
+ console.warn(`Failed to play ${audioSrc}:`, error);
78722
78841
  }
78723
- } catch (error) {
78724
- console.warn("Audio is not supported or failed to create:", error);
78725
- return;
78726
- }
78842
+ });
78727
78843
  },
78728
78844
  [isInteractive, mute]
78729
78845
  );
@@ -78762,28 +78878,6 @@ const DockMotionItem = (props) => {
78762
78878
  },
78763
78879
  [prefersReducedMotion, animate]
78764
78880
  );
78765
- React.useEffect(() => {
78766
- if (typeof window === "undefined" || typeof Audio === "undefined") {
78767
- return;
78768
- }
78769
- try {
78770
- const audio = new Audio("/audio/click.wav");
78771
- audio.preload = "auto";
78772
- audio.volume = 0.2;
78773
- audio.load();
78774
- audioRef.current = audio;
78775
- } catch (error) {
78776
- console.warn("Audio preload failed:", error);
78777
- }
78778
- return () => {
78779
- if (audioRef.current) {
78780
- audioRef.current.pause();
78781
- audioRef.current.src = "";
78782
- audioRef.current.load();
78783
- audioRef.current = null;
78784
- }
78785
- };
78786
- }, []);
78787
78881
  useWindowReady.useRaf(
78788
78882
  () => {
78789
78883
  const el = scope.current;
@@ -78800,14 +78894,17 @@ const DockMotionItem = (props) => {
78800
78894
  hover === true && prefersReducedMotion === false
78801
78895
  // maybe add `& isInteractive`
78802
78896
  );
78803
- const contentStyle = React.useMemo(
78804
- () => ({
78897
+ const contentStyle = React.useMemo(() => {
78898
+ return prefersReducedMotion ? {
78899
+ width: baseWidth * targetMultiplier,
78900
+ height: baseWidth,
78901
+ originX: "center"
78902
+ } : {
78805
78903
  width: dynamicWidth,
78806
78904
  height: size,
78807
78905
  originX: "center"
78808
- }),
78809
- [dynamicWidth, size]
78810
- );
78906
+ };
78907
+ }, [dynamicWidth, size, prefersReducedMotion, targetMultiplier]);
78811
78908
  const ContentElement = React.useMemo(() => {
78812
78909
  if (rest.use && typeof rest.use !== "string") {
78813
78910
  return motion.create(rest.use);
@@ -78836,25 +78933,19 @@ const DockMotionItem = (props) => {
78836
78933
  {
78837
78934
  ref: scope,
78838
78935
  layoutId: itemId,
78839
- layout: true,
78936
+ layout: prefersReducedMotion ? false : true,
78840
78937
  className: clsx(styles$2Q.item, className),
78841
78938
  onMouseEnter,
78842
78939
  style: contentStyle,
78843
78940
  "data-action": isInteractive,
78844
78941
  onClick: async (event) => {
78845
- playAudio(interaction);
78942
+ playAudio$1(interaction);
78846
78943
  playAnimation(interaction);
78847
78944
  if (interaction === "possible") {
78848
78945
  rest.onClick?.(event);
78849
78946
  }
78850
78947
  event.currentTarget.blur();
78851
78948
  },
78852
- drag: true,
78853
- dragConstraints: { top: -12, bottom: 12, left: -12, right: 12 },
78854
- dragElastic: 0,
78855
- dragTransition: { bounceStiffness: 300, bounceDamping: 20 },
78856
- dragSnapToOrigin: true,
78857
- whileDrag: { zIndex: 1 },
78858
78949
  ...linkProps,
78859
78950
  children: [
78860
78951
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: styles$2Q.gloss }),
@@ -78864,6 +78955,14 @@ const DockMotionItem = (props) => {
78864
78955
  ref: contentRef,
78865
78956
  className: styles$2Q.content,
78866
78957
  style: { filter: blurFilter },
78958
+ whileTap: prefersReducedMotion ? void 0 : {
78959
+ scale: 0.75,
78960
+ transition: {
78961
+ type: "spring",
78962
+ stiffness: 350,
78963
+ damping: 20
78964
+ }
78965
+ },
78867
78966
  children
78868
78967
  }
78869
78968
  )
@@ -78895,6 +78994,10 @@ const DockMotion$1 = ({
78895
78994
  className = ""
78896
78995
  }) => {
78897
78996
  const mouseX = useWindowReady.useMotionValue(null);
78997
+ React.useEffect(() => {
78998
+ preloadAudio("/audio/click.wav");
78999
+ preloadAudio("/audio/hover.mp3");
79000
+ }, []);
78898
79001
  const embedded = React.Children.toArray(children).find(
78899
79002
  (x) => typeof x === "object" && x !== null && "type" in x && x.type === DockMotionEmbedded
78900
79003
  );
@@ -81018,7 +81121,7 @@ const EndlessLoader = ({ container }) => {
81018
81121
  return;
81019
81122
  }
81020
81123
  try {
81021
- const GLModule = await Promise.resolve().then(() => require('./gl-BdsWrL8N.cjs'));
81124
+ const GLModule = await Promise.resolve().then(() => require('./gl-DgFYXJsQ.cjs'));
81022
81125
  if (!isActiveRef.current) {
81023
81126
  return;
81024
81127
  }
@@ -86926,11 +87029,11 @@ const ScrambledText = ({ children, reveal = false }) => {
86926
87029
  );
86927
87030
  };
86928
87031
 
86929
- const root$Y = "_root_b8ly7_1";
86930
- const line = "_line_b8ly7_9";
86931
- const word$1 = "_word_b8ly7_14";
86932
- const link = "_link_b8ly7_18";
86933
- const letter = "_letter_b8ly7_22";
87032
+ const root$Y = "_root_1b6o2_1";
87033
+ const line = "_line_1b6o2_9";
87034
+ const word$1 = "_word_1b6o2_14";
87035
+ const link = "_link_1b6o2_18";
87036
+ const letter = "_letter_1b6o2_22";
86934
87037
  const styles$11 = {
86935
87038
  root: root$Y,
86936
87039
  line: line,
@@ -96884,7 +96987,7 @@ const Lock = () => {
96884
96987
  }
96885
96988
  };
96886
96989
  const asynchronously = async () => {
96887
- const Flickity = await Promise.resolve().then(() => require('./index-hvmpP1-I.cjs')).then(n => n.index).then((m) => m.default);
96990
+ const Flickity = await Promise.resolve().then(() => require('./index-C5pCwB7N.cjs')).then(n => n.index).then((m) => m.default);
96888
96991
  if (!rowsRef.current || !window) return;
96889
96992
  const rows = rowsRef.current.children;
96890
96993
  for (let i = 0, len = rows.length; i < len; i++) {