@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.
- package/dist/{gl-UMy80o0V.js → gl-DPeRBlfm.js} +1 -1
- package/dist/{gl-BdsWrL8N.cjs → gl-DgFYXJsQ.cjs} +1 -1
- package/dist/{index-CjHaqnk_.js → index-BfhFT1kB.js} +1 -1
- package/dist/{index-hvmpP1-I.cjs → index-C5pCwB7N.cjs} +1 -1
- package/dist/{index-6_4NA2IG.cjs → index-ZUvQTjLa.cjs} +256 -153
- package/dist/{index-BiUGuJ0v.js → index-iVv-r1r7.js} +256 -153
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +3 -1
- package/dist/index.js +1 -1
- package/dist/styles.css +481 -481
- package/package.json +1 -1
|
@@ -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-
|
|
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
|
|
@@ -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 = "
|
|
52118
|
-
const button$o = "
|
|
52119
|
-
const p$1 = "
|
|
52120
|
-
const text$z = "
|
|
52121
|
-
const effects = "
|
|
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 = "
|
|
68252
|
-
const i$6 = "
|
|
68253
|
-
const text$s = "
|
|
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
|
|
78351
|
-
|
|
78352
|
-
|
|
78353
|
-
|
|
78354
|
-
|
|
78355
|
-
|
|
78356
|
-
|
|
78357
|
-
|
|
78358
|
-
|
|
78359
|
-
|
|
78360
|
-
|
|
78361
|
-
|
|
78362
|
-
|
|
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
|
-
|
|
78366
|
-
|
|
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
|
-
|
|
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 = (
|
|
78557
|
+
}, [disableOnClick, isMobile]);
|
|
78558
|
+
const handleMouseLeave = React.useCallback(() => {
|
|
78423
78559
|
if (disableOnClick) {
|
|
78424
78560
|
setClicked(false);
|
|
78425
78561
|
}
|
|
78426
|
-
};
|
|
78427
|
-
const mergeEventHandler = (
|
|
78428
|
-
|
|
78429
|
-
|
|
78430
|
-
|
|
78431
|
-
|
|
78432
|
-
|
|
78433
|
-
|
|
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
|
-
|
|
78436
|
-
|
|
78437
|
-
|
|
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
|
-
|
|
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
|
-
...
|
|
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
|
-
|
|
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 (
|
|
78834
|
+
if (!isInteractive || mute) {
|
|
78711
78835
|
return;
|
|
78712
78836
|
}
|
|
78713
78837
|
const audioSrc = interactionState === "possible" ? "/audio/click.wav" : "/audio/hover.mp3";
|
|
78714
|
-
|
|
78715
|
-
|
|
78716
|
-
|
|
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
|
-
}
|
|
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
|
-
|
|
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-
|
|
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 = "
|
|
86930
|
-
const line = "
|
|
86931
|
-
const word$1 = "
|
|
86932
|
-
const link = "
|
|
86933
|
-
const letter = "
|
|
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-
|
|
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++) {
|