@tarsis/toolkit 0.5.2 → 0.5.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,11 +1,10 @@
1
1
  'use strict';
2
2
 
3
- const useWindowReady = require('./useWindowReady-ow3ZpIjd.cjs');
4
- const svg$q = require('./svg-Bi5ULzxB.cjs');
3
+ const useWindowReady = require('./useWindowReady-Il0Ibn7I.cjs');
4
+ const svg$q = require('./svg-BT_esDTZ.cjs');
5
5
  const jsxRuntime = require('react/jsx-runtime');
6
6
  const React = require('react');
7
7
  const ReactDOM = require('react-dom');
8
- const server = require('./server.cjs');
9
8
 
10
9
  function _interopNamespaceDefault(e) {
11
10
  const n = Object.create(null, { [Symbol.toStringTag]: { value: 'Module' } });
@@ -52108,11 +52107,11 @@ const BubblyParticlesButton = () => {
52108
52107
  );
52109
52108
  };
52110
52109
 
52111
- const root$4i = "_root_6u0yf_1";
52112
- const button$o = "_button_6u0yf_13";
52113
- const p$1 = "_p_6u0yf_26";
52114
- const text$z = "_text_6u0yf_26";
52115
- const effects = "_effects_6u0yf_240";
52110
+ const root$4i = "_root_fbkx4_1";
52111
+ const button$o = "_button_fbkx4_13";
52112
+ const p$1 = "_p_fbkx4_26";
52113
+ const text$z = "_text_fbkx4_26";
52114
+ const effects = "_effects_fbkx4_240";
52116
52115
  const styles$4G = {
52117
52116
  root: root$4i,
52118
52117
  button: button$o,
@@ -60007,6 +60006,205 @@ function asNumber$1(v) {
60007
60006
  return typeof v === "number" ? v : parseFloat(v);
60008
60007
  }
60009
60008
 
60009
+ /**
60010
+ * Taken from https://github.com/radix-ui/primitives/blob/main/packages/react/compose-refs/src/compose-refs.tsx
60011
+ */
60012
+ /**
60013
+ * Set a given ref to a given value
60014
+ * This utility takes care of different types of refs: callback refs and RefObject(s)
60015
+ */
60016
+ function setRef(ref, value) {
60017
+ if (typeof ref === "function") {
60018
+ return ref(value);
60019
+ }
60020
+ else if (ref !== null && ref !== undefined) {
60021
+ ref.current = value;
60022
+ }
60023
+ }
60024
+ /**
60025
+ * A utility to compose multiple refs together
60026
+ * Accepts callback refs and RefObject(s)
60027
+ */
60028
+ function composeRefs(...refs) {
60029
+ return (node) => {
60030
+ let hasCleanup = false;
60031
+ const cleanups = refs.map((ref) => {
60032
+ const cleanup = setRef(ref, node);
60033
+ if (!hasCleanup && typeof cleanup === "function") {
60034
+ hasCleanup = true;
60035
+ }
60036
+ return cleanup;
60037
+ });
60038
+ // React <19 will log an error to the console if a callback ref returns a
60039
+ // value. We don't use ref cleanups internally so this will only happen if a
60040
+ // user's ref callback returns a value, which we only expect if they are
60041
+ // using the cleanup functionality added in React 19.
60042
+ if (hasCleanup) {
60043
+ return () => {
60044
+ for (let i = 0; i < cleanups.length; i++) {
60045
+ const cleanup = cleanups[i];
60046
+ if (typeof cleanup === "function") {
60047
+ cleanup();
60048
+ }
60049
+ else {
60050
+ setRef(refs[i], null);
60051
+ }
60052
+ }
60053
+ };
60054
+ }
60055
+ };
60056
+ }
60057
+ /**
60058
+ * A custom hook that composes multiple refs
60059
+ * Accepts callback refs and RefObject(s)
60060
+ */
60061
+ function useComposedRefs(...refs) {
60062
+ // eslint-disable-next-line react-hooks/exhaustive-deps
60063
+ return React__namespace.useCallback(composeRefs(...refs), refs);
60064
+ }
60065
+
60066
+ /**
60067
+ * Measurement functionality has to be within a separate component
60068
+ * to leverage snapshot lifecycle.
60069
+ */
60070
+ class PopChildMeasure extends React__namespace.Component {
60071
+ getSnapshotBeforeUpdate(prevProps) {
60072
+ const element = this.props.childRef.current;
60073
+ if (element && prevProps.isPresent && !this.props.isPresent) {
60074
+ const parent = element.offsetParent;
60075
+ const parentWidth = isHTMLElement$2(parent)
60076
+ ? parent.offsetWidth || 0
60077
+ : 0;
60078
+ const size = this.props.sizeRef.current;
60079
+ size.height = element.offsetHeight || 0;
60080
+ size.width = element.offsetWidth || 0;
60081
+ size.top = element.offsetTop;
60082
+ size.left = element.offsetLeft;
60083
+ size.right = parentWidth - size.width - size.left;
60084
+ }
60085
+ return null;
60086
+ }
60087
+ /**
60088
+ * Required with getSnapshotBeforeUpdate to stop React complaining.
60089
+ */
60090
+ componentDidUpdate() { }
60091
+ render() {
60092
+ return this.props.children;
60093
+ }
60094
+ }
60095
+ function PopChild({ children, isPresent, anchorX, root }) {
60096
+ const id = React.useId();
60097
+ const ref = React.useRef(null);
60098
+ const size = React.useRef({
60099
+ width: 0,
60100
+ height: 0,
60101
+ top: 0,
60102
+ left: 0,
60103
+ right: 0,
60104
+ });
60105
+ const { nonce } = React.useContext(useWindowReady.MotionConfigContext);
60106
+ /**
60107
+ * In React 19, refs are passed via props.ref instead of element.ref.
60108
+ * We check props.ref first (React 19) and fall back to element.ref (React 18).
60109
+ */
60110
+ const childRef = children.props?.ref ??
60111
+ children?.ref;
60112
+ const composedRef = useComposedRefs(ref, childRef);
60113
+ /**
60114
+ * We create and inject a style block so we can apply this explicit
60115
+ * sizing in a non-destructive manner by just deleting the style block.
60116
+ *
60117
+ * We can't apply size via render as the measurement happens
60118
+ * in getSnapshotBeforeUpdate (post-render), likewise if we apply the
60119
+ * styles directly on the DOM node, we might be overwriting
60120
+ * styles set via the style prop.
60121
+ */
60122
+ React.useInsertionEffect(() => {
60123
+ const { width, height, top, left, right } = size.current;
60124
+ if (isPresent || !ref.current || !width || !height)
60125
+ return;
60126
+ const x = anchorX === "left" ? `left: ${left}` : `right: ${right}`;
60127
+ ref.current.dataset.motionPopId = id;
60128
+ const style = document.createElement("style");
60129
+ if (nonce)
60130
+ style.nonce = nonce;
60131
+ const parent = root ?? document.head;
60132
+ parent.appendChild(style);
60133
+ if (style.sheet) {
60134
+ style.sheet.insertRule(`
60135
+ [data-motion-pop-id="${id}"] {
60136
+ position: absolute !important;
60137
+ width: ${width}px !important;
60138
+ height: ${height}px !important;
60139
+ ${x}px !important;
60140
+ top: ${top}px !important;
60141
+ }
60142
+ `);
60143
+ }
60144
+ return () => {
60145
+ if (parent.contains(style)) {
60146
+ parent.removeChild(style);
60147
+ }
60148
+ };
60149
+ }, [isPresent]);
60150
+ return (jsxRuntime.jsx(PopChildMeasure, { isPresent: isPresent, childRef: ref, sizeRef: size, children: React__namespace.cloneElement(children, { ref: composedRef }) }));
60151
+ }
60152
+
60153
+ const PresenceChild = ({ children, initial, isPresent, onExitComplete, custom, presenceAffectsLayout, mode, anchorX, root }) => {
60154
+ const presenceChildren = useWindowReady.useConstant(newChildrenMap);
60155
+ const id = React.useId();
60156
+ let isReusedContext = true;
60157
+ let context = React.useMemo(() => {
60158
+ isReusedContext = false;
60159
+ return {
60160
+ id,
60161
+ initial,
60162
+ isPresent,
60163
+ custom,
60164
+ onExitComplete: (childId) => {
60165
+ presenceChildren.set(childId, true);
60166
+ for (const isComplete of presenceChildren.values()) {
60167
+ if (!isComplete)
60168
+ return; // can stop searching when any is incomplete
60169
+ }
60170
+ onExitComplete && onExitComplete();
60171
+ },
60172
+ register: (childId) => {
60173
+ presenceChildren.set(childId, false);
60174
+ return () => presenceChildren.delete(childId);
60175
+ },
60176
+ };
60177
+ }, [isPresent, presenceChildren, onExitComplete]);
60178
+ /**
60179
+ * If the presence of a child affects the layout of the components around it,
60180
+ * we want to make a new context value to ensure they get re-rendered
60181
+ * so they can detect that layout change.
60182
+ */
60183
+ if (presenceAffectsLayout && isReusedContext) {
60184
+ context = { ...context };
60185
+ }
60186
+ React.useMemo(() => {
60187
+ presenceChildren.forEach((_, key) => presenceChildren.set(key, false));
60188
+ }, [isPresent]);
60189
+ /**
60190
+ * If there's no `motion` components to fire exit animations, we want to remove this
60191
+ * component immediately.
60192
+ */
60193
+ React__namespace.useEffect(() => {
60194
+ !isPresent &&
60195
+ !presenceChildren.size &&
60196
+ onExitComplete &&
60197
+ onExitComplete();
60198
+ }, [isPresent]);
60199
+ if (mode === "popLayout") {
60200
+ children = (jsxRuntime.jsx(PopChild, { isPresent: isPresent, anchorX: anchorX, root: root, children: children }));
60201
+ }
60202
+ return (jsxRuntime.jsx(PresenceContext.Provider, { value: context, children: children }));
60203
+ };
60204
+ function newChildrenMap() {
60205
+ return new Map();
60206
+ }
60207
+
60010
60208
  /**
60011
60209
  * When a component is the child of `AnimatePresence`, it can use `usePresence`
60012
60210
  * to access information about whether it's still present in the React tree.
@@ -60047,6 +60245,181 @@ function usePresence(subscribe = true) {
60047
60245
  return !isPresent && onExitComplete ? [false, safeToRemove] : [true];
60048
60246
  }
60049
60247
 
60248
+ const getChildKey = (child) => child.key || "";
60249
+ function onlyElements(children) {
60250
+ const filtered = [];
60251
+ // We use forEach here instead of map as map mutates the component key by preprending `.$`
60252
+ React.Children.forEach(children, (child) => {
60253
+ if (React.isValidElement(child))
60254
+ filtered.push(child);
60255
+ });
60256
+ return filtered;
60257
+ }
60258
+
60259
+ /**
60260
+ * `AnimatePresence` enables the animation of components that have been removed from the tree.
60261
+ *
60262
+ * When adding/removing more than a single child, every child **must** be given a unique `key` prop.
60263
+ *
60264
+ * Any `motion` components that have an `exit` property defined will animate out when removed from
60265
+ * the tree.
60266
+ *
60267
+ * ```jsx
60268
+ * import { motion, AnimatePresence } from 'framer-motion'
60269
+ *
60270
+ * export const Items = ({ items }) => (
60271
+ * <AnimatePresence>
60272
+ * {items.map(item => (
60273
+ * <motion.div
60274
+ * key={item.id}
60275
+ * initial={{ opacity: 0 }}
60276
+ * animate={{ opacity: 1 }}
60277
+ * exit={{ opacity: 0 }}
60278
+ * />
60279
+ * ))}
60280
+ * </AnimatePresence>
60281
+ * )
60282
+ * ```
60283
+ *
60284
+ * You can sequence exit animations throughout a tree using variants.
60285
+ *
60286
+ * If a child contains multiple `motion` components with `exit` props, it will only unmount the child
60287
+ * once all `motion` components have finished animating out. Likewise, any components using
60288
+ * `usePresence` all need to call `safeToRemove`.
60289
+ *
60290
+ * @public
60291
+ */
60292
+ const AnimatePresence = ({ children, custom, initial = true, onExitComplete, presenceAffectsLayout = true, mode = "sync", propagate = false, anchorX = "left", root }) => {
60293
+ const [isParentPresent, safeToRemove] = usePresence(propagate);
60294
+ /**
60295
+ * Filter any children that aren't ReactElements. We can only track components
60296
+ * between renders with a props.key.
60297
+ */
60298
+ const presentChildren = React.useMemo(() => onlyElements(children), [children]);
60299
+ /**
60300
+ * Track the keys of the currently rendered children. This is used to
60301
+ * determine which children are exiting.
60302
+ */
60303
+ const presentKeys = propagate && !isParentPresent ? [] : presentChildren.map(getChildKey);
60304
+ /**
60305
+ * If `initial={false}` we only want to pass this to components in the first render.
60306
+ */
60307
+ const isInitialRender = React.useRef(true);
60308
+ /**
60309
+ * A ref containing the currently present children. When all exit animations
60310
+ * are complete, we use this to re-render the component with the latest children
60311
+ * *committed* rather than the latest children *rendered*.
60312
+ */
60313
+ const pendingPresentChildren = React.useRef(presentChildren);
60314
+ /**
60315
+ * Track which exiting children have finished animating out.
60316
+ */
60317
+ const exitComplete = useWindowReady.useConstant(() => new Map());
60318
+ /**
60319
+ * Track which components are currently processing exit to prevent duplicate processing.
60320
+ */
60321
+ const exitingComponents = React.useRef(new Set());
60322
+ /**
60323
+ * Save children to render as React state. To ensure this component is concurrent-safe,
60324
+ * we check for exiting children via an effect.
60325
+ */
60326
+ const [diffedChildren, setDiffedChildren] = React.useState(presentChildren);
60327
+ const [renderedChildren, setRenderedChildren] = React.useState(presentChildren);
60328
+ useIsomorphicLayoutEffect$2(() => {
60329
+ isInitialRender.current = false;
60330
+ pendingPresentChildren.current = presentChildren;
60331
+ /**
60332
+ * Update complete status of exiting children.
60333
+ */
60334
+ for (let i = 0; i < renderedChildren.length; i++) {
60335
+ const key = getChildKey(renderedChildren[i]);
60336
+ if (!presentKeys.includes(key)) {
60337
+ if (exitComplete.get(key) !== true) {
60338
+ exitComplete.set(key, false);
60339
+ }
60340
+ }
60341
+ else {
60342
+ exitComplete.delete(key);
60343
+ exitingComponents.current.delete(key);
60344
+ }
60345
+ }
60346
+ }, [renderedChildren, presentKeys.length, presentKeys.join("-")]);
60347
+ const exitingChildren = [];
60348
+ if (presentChildren !== diffedChildren) {
60349
+ let nextChildren = [...presentChildren];
60350
+ /**
60351
+ * Loop through all the currently rendered components and decide which
60352
+ * are exiting.
60353
+ */
60354
+ for (let i = 0; i < renderedChildren.length; i++) {
60355
+ const child = renderedChildren[i];
60356
+ const key = getChildKey(child);
60357
+ if (!presentKeys.includes(key)) {
60358
+ nextChildren.splice(i, 0, child);
60359
+ exitingChildren.push(child);
60360
+ }
60361
+ }
60362
+ /**
60363
+ * If we're in "wait" mode, and we have exiting children, we want to
60364
+ * only render these until they've all exited.
60365
+ */
60366
+ if (mode === "wait" && exitingChildren.length) {
60367
+ nextChildren = exitingChildren;
60368
+ }
60369
+ setRenderedChildren(onlyElements(nextChildren));
60370
+ setDiffedChildren(presentChildren);
60371
+ /**
60372
+ * Early return to ensure once we've set state with the latest diffed
60373
+ * children, we can immediately re-render.
60374
+ */
60375
+ return null;
60376
+ }
60377
+ if (process.env.NODE_ENV !== "production" &&
60378
+ mode === "wait" &&
60379
+ renderedChildren.length > 1) {
60380
+ console.warn(`You're attempting to animate multiple children within AnimatePresence, but its mode is set to "wait". This will lead to odd visual behaviour.`);
60381
+ }
60382
+ /**
60383
+ * If we've been provided a forceRender function by the LayoutGroupContext,
60384
+ * we can use it to force a re-render amongst all surrounding components once
60385
+ * all components have finished animating out.
60386
+ */
60387
+ const { forceRender } = React.useContext(LayoutGroupContext);
60388
+ return (jsxRuntime.jsx(jsxRuntime.Fragment, { children: renderedChildren.map((child) => {
60389
+ const key = getChildKey(child);
60390
+ const isPresent = propagate && !isParentPresent
60391
+ ? false
60392
+ : presentChildren === renderedChildren ||
60393
+ presentKeys.includes(key);
60394
+ const onExit = () => {
60395
+ if (exitingComponents.current.has(key)) {
60396
+ return;
60397
+ }
60398
+ exitingComponents.current.add(key);
60399
+ if (exitComplete.has(key)) {
60400
+ exitComplete.set(key, true);
60401
+ }
60402
+ else {
60403
+ return;
60404
+ }
60405
+ let isEveryExitComplete = true;
60406
+ exitComplete.forEach((isExitComplete) => {
60407
+ if (!isExitComplete)
60408
+ isEveryExitComplete = false;
60409
+ });
60410
+ if (isEveryExitComplete) {
60411
+ forceRender?.();
60412
+ setRenderedChildren(pendingPresentChildren.current);
60413
+ propagate && safeToRemove?.();
60414
+ onExitComplete && onExitComplete();
60415
+ }
60416
+ };
60417
+ return (jsxRuntime.jsx(PresenceChild, { isPresent: isPresent, initial: !isInitialRender.current || initial
60418
+ ? undefined
60419
+ : false, custom: custom, presenceAffectsLayout: presenceAffectsLayout, mode: mode, root: root, onExitComplete: isPresent ? undefined : onExit, anchorX: anchorX, children: child }, key));
60420
+ }) }));
60421
+ };
60422
+
60050
60423
  const LazyContext = React.createContext({ strict: false });
60051
60424
 
60052
60425
  function loadFeatures(features) {
@@ -64708,6 +65081,47 @@ function useSpring$1(source, options = {}) {
64708
65081
  return value;
64709
65082
  }
64710
65083
 
65084
+ /**
65085
+ * A hook that returns `true` if we should be using reduced motion based on the current device's Reduced Motion setting.
65086
+ *
65087
+ * This can be used to implement changes to your UI based on Reduced Motion. For instance, replacing motion-sickness inducing
65088
+ * `x`/`y` animations with `opacity`, disabling the autoplay of background videos, or turning off parallax motion.
65089
+ *
65090
+ * It will actively respond to changes and re-render your components with the latest setting.
65091
+ *
65092
+ * ```jsx
65093
+ * export function Sidebar({ isOpen }) {
65094
+ * const shouldReduceMotion = useReducedMotion()
65095
+ * const closedX = shouldReduceMotion ? 0 : "-100%"
65096
+ *
65097
+ * return (
65098
+ * <motion.div animate={{
65099
+ * opacity: isOpen ? 1 : 0,
65100
+ * x: isOpen ? 0 : closedX
65101
+ * }} />
65102
+ * )
65103
+ * }
65104
+ * ```
65105
+ *
65106
+ * @return boolean
65107
+ *
65108
+ * @public
65109
+ */
65110
+ function useReducedMotion() {
65111
+ /**
65112
+ * Lazy initialisation of prefersReducedMotion
65113
+ */
65114
+ !useWindowReady.hasReducedMotionListener.current && useWindowReady.initPrefersReducedMotion();
65115
+ const [shouldReduceMotion] = React.useState(useWindowReady.prefersReducedMotion.current);
65116
+ if (process.env.NODE_ENV !== "production") {
65117
+ useWindowReady.warnOnce(shouldReduceMotion !== true, "You have Reduced Motion enabled on your device. Animations may not appear as expected.", "reduced-motion-disabled");
65118
+ }
65119
+ /**
65120
+ * TODO See if people miss automatically updating shouldReduceMotion setting
65121
+ */
65122
+ return shouldReduceMotion;
65123
+ }
65124
+
64711
65125
  function useAnimate() {
64712
65126
  const scope = useWindowReady.useConstant(() => ({
64713
65127
  current: null, // Will be hydrated by React
@@ -65132,7 +65546,7 @@ const styles$4x = {
65132
65546
 
65133
65547
  const DDDButton = ({
65134
65548
  children,
65135
- onClick = server.noop,
65549
+ onClick = svg$q.noop,
65136
65550
  className = ""
65137
65551
  }) => /* @__PURE__ */ jsxRuntime.jsx(
65138
65552
  "button",
@@ -67706,9 +68120,9 @@ const NeonButton = ({ className = "", ...rest }) => {
67706
68120
  return /* @__PURE__ */ jsxRuntime.jsx("button", { type: "button", ...rest, className: clsx(styles$48.root, className), children: "Neon" });
67707
68121
  };
67708
68122
 
67709
- const root$3P = "_root_v0k72_2";
67710
- const i$6 = "_i_v0k72_22";
67711
- const text$s = "_text_v0k72_482";
68123
+ const root$3P = "_root_1asaw_2";
68124
+ const i$6 = "_i_1asaw_22";
68125
+ const text$s = "_text_1asaw_482";
67712
68126
  const styles$47 = {
67713
68127
  root: root$3P,
67714
68128
  i: i$6,
@@ -68207,7 +68621,7 @@ const styles$40 = {
68207
68621
  const ProgressButton = ({
68208
68622
  children,
68209
68623
  className = "",
68210
- onClick = server.noop,
68624
+ onClick = svg$q.noop,
68211
68625
  ...props
68212
68626
  }) => {
68213
68627
  const [isLoading, setIsLoading] = React.useState(true);
@@ -69812,7 +70226,7 @@ const styles$3B = {
69812
70226
 
69813
70227
  const CardTile = ({
69814
70228
  children,
69815
- onClick = server.noop,
70229
+ onClick = svg$q.noop,
69816
70230
  className = ""
69817
70231
  }) => /* @__PURE__ */ jsxRuntime.jsx(
69818
70232
  "button",
@@ -70245,7 +70659,7 @@ const styles$3r = {
70245
70659
 
70246
70660
  const ProductTile = ({
70247
70661
  children,
70248
- onClick = server.noop,
70662
+ onClick = svg$q.noop,
70249
70663
  className = ""
70250
70664
  }) => /* @__PURE__ */ jsxRuntime.jsx(
70251
70665
  "button",
@@ -72939,7 +73353,7 @@ const styles$2$ = {
72939
73353
  root: root$2N
72940
73354
  };
72941
73355
 
72942
- const SplashCursor = ({ onClick = server.noop }) => {
73356
+ const SplashCursor = ({ onClick = svg$q.noop }) => {
72943
73357
  const ref = React.useRef(null);
72944
73358
  const onClickRef = useWindowReady.useLiveRef(onClick);
72945
73359
  React.useEffect(() => {
@@ -77699,9 +78113,11 @@ function useRole(context, props) {
77699
78113
  } : {}, [enabled, reference, floating, item]);
77700
78114
  }
77701
78115
 
77702
- const tooltip = "_tooltip_45btf_1";
78116
+ const tooltip = "_tooltip_pli88_1";
78117
+ const tooltipContent = "_tooltipContent_pli88_6";
77703
78118
  const styles$2R = {
77704
- tooltip: tooltip
78119
+ tooltip: tooltip,
78120
+ tooltipContent: tooltipContent
77705
78121
  };
77706
78122
 
77707
78123
  const Tooltip = ({
@@ -77710,9 +78126,35 @@ const Tooltip = ({
77710
78126
  delay = 0,
77711
78127
  className,
77712
78128
  placement = "top",
77713
- offset: offsetValue = 8
78129
+ offset: offsetValue = 8,
78130
+ animate = true
77714
78131
  }) => {
77715
78132
  const [isOpen, setIsOpen] = React.useState(false);
78133
+ const shouldReduceMotion = useReducedMotion();
78134
+ const variants = shouldReduceMotion ? void 0 : {
78135
+ initial: {
78136
+ scale: animate ? 0.6 : 1,
78137
+ opacity: animate ? 0.8 : 1
78138
+ },
78139
+ animate: {
78140
+ scale: 1,
78141
+ opacity: 1,
78142
+ transition: {
78143
+ type: "spring",
78144
+ stiffness: 150,
78145
+ damping: 20,
78146
+ mass: 1.2
78147
+ }
78148
+ },
78149
+ exit: {
78150
+ scale: animate ? 0.4 : 1,
78151
+ opacity: animate ? 0.8 : 1,
78152
+ transition: {
78153
+ duration: 0.1,
78154
+ ease: "easeIn"
78155
+ }
78156
+ }
78157
+ };
77716
78158
  const { refs, floatingStyles, context } = useFloating({
77717
78159
  open: isOpen,
77718
78160
  onOpenChange: setIsOpen,
@@ -77768,16 +78210,27 @@ const Tooltip = ({
77768
78210
  };
77769
78211
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
77770
78212
  React.cloneElement(childElement, mergedProps),
77771
- isOpen && /* @__PURE__ */ jsxRuntime.jsx(FloatingPortal, { children: /* @__PURE__ */ jsxRuntime.jsx(
78213
+ /* @__PURE__ */ jsxRuntime.jsx(FloatingPortal, { children: /* @__PURE__ */ jsxRuntime.jsx(AnimatePresence, { mode: "wait", children: isOpen && /* @__PURE__ */ jsxRuntime.jsx(
77772
78214
  "div",
77773
78215
  {
77774
78216
  ref: refs.setFloating,
77775
78217
  style: floatingStyles,
77776
78218
  ...getFloatingProps(),
77777
- className: clsx(styles$2R.tooltip, className),
77778
- children: label
77779
- }
77780
- ) })
78219
+ className: styles$2R.tooltip,
78220
+ children: /* @__PURE__ */ jsxRuntime.jsx(
78221
+ motion.div,
78222
+ {
78223
+ className: clsx(styles$2R.tooltipContent, className),
78224
+ variants,
78225
+ initial: shouldReduceMotion ? void 0 : "initial",
78226
+ animate: shouldReduceMotion ? void 0 : "animate",
78227
+ exit: shouldReduceMotion ? void 0 : "exit",
78228
+ children: label
78229
+ }
78230
+ )
78231
+ },
78232
+ "tooltip"
78233
+ ) }) })
77781
78234
  ] });
77782
78235
  }
77783
78236
  return /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
@@ -77790,16 +78243,27 @@ const Tooltip = ({
77790
78243
  children
77791
78244
  }
77792
78245
  ),
77793
- isOpen && /* @__PURE__ */ jsxRuntime.jsx(FloatingPortal, { children: /* @__PURE__ */ jsxRuntime.jsx(
78246
+ /* @__PURE__ */ jsxRuntime.jsx(FloatingPortal, { children: /* @__PURE__ */ jsxRuntime.jsx(AnimatePresence, { mode: "wait", children: isOpen && /* @__PURE__ */ jsxRuntime.jsx(
77794
78247
  "div",
77795
78248
  {
77796
78249
  ref: refs.setFloating,
77797
78250
  style: floatingStyles,
77798
78251
  ...getFloatingProps(),
77799
- className: clsx(styles$2R.tooltip, className),
77800
- children: label
77801
- }
77802
- ) })
78252
+ className: styles$2R.tooltip,
78253
+ children: /* @__PURE__ */ jsxRuntime.jsx(
78254
+ motion.div,
78255
+ {
78256
+ className: clsx(styles$2R.tooltipContent, className),
78257
+ variants,
78258
+ initial: shouldReduceMotion ? void 0 : "initial",
78259
+ animate: shouldReduceMotion ? void 0 : "animate",
78260
+ exit: shouldReduceMotion ? void 0 : "exit",
78261
+ children: label
78262
+ }
78263
+ )
78264
+ },
78265
+ "tooltip"
78266
+ ) }) })
77803
78267
  ] });
77804
78268
  };
77805
78269
 
@@ -78085,8 +78549,8 @@ const DockMotionItem = ({
78085
78549
  const originX = { originX: "center" };
78086
78550
  const DockMotion$1 = ({
78087
78551
  children,
78088
- onMouseEnter = server.noop,
78089
- onMouseLeave = server.noop,
78552
+ onMouseEnter = svg$q.noop,
78553
+ onMouseLeave = svg$q.noop,
78090
78554
  className = ""
78091
78555
  }) => {
78092
78556
  const mouseX = useWindowReady.useMotionValue(null);
@@ -78539,7 +79003,7 @@ const styles$2H = {
78539
79003
  isOpen: isOpen
78540
79004
  };
78541
79005
 
78542
- const HamburgerX = ({ isOpen, onClick = server.noop }) => /* @__PURE__ */ jsxRuntime.jsx(
79006
+ const HamburgerX = ({ isOpen, onClick = svg$q.noop }) => /* @__PURE__ */ jsxRuntime.jsx(
78543
79007
  "button",
78544
79008
  {
78545
79009
  type: "button",
@@ -80157,7 +80621,7 @@ const EndlessLoader = ({ container }) => {
80157
80621
  return;
80158
80622
  }
80159
80623
  try {
80160
- const GLModule = await Promise.resolve().then(() => require('./gl-DkwP1ATh.cjs'));
80624
+ const GLModule = await Promise.resolve().then(() => require('./gl-BMhxJtUR.cjs'));
80161
80625
  if (!isActiveRef.current) {
80162
80626
  return;
80163
80627
  }
@@ -80809,7 +81273,7 @@ const styles$1Z = {
80809
81273
 
80810
81274
  const SpinningClickAnimation = ({
80811
81275
  children = null,
80812
- onClick = server.noop,
81276
+ onClick = svg$q.noop,
80813
81277
  className = ""
80814
81278
  }) => {
80815
81279
  const ref = React.useRef(null);
@@ -86098,11 +86562,11 @@ const ScrambledText = ({ children, reveal = false }) => {
86098
86562
  );
86099
86563
  };
86100
86564
 
86101
- const root$Y = "_root_1osmz_1";
86102
- const line = "_line_1osmz_9";
86103
- const word$1 = "_word_1osmz_14";
86104
- const link = "_link_1osmz_18";
86105
- const letter = "_letter_1osmz_22";
86565
+ const root$Y = "_root_jg827_1";
86566
+ const line = "_line_jg827_9";
86567
+ const word$1 = "_word_jg827_14";
86568
+ const link = "_link_jg827_18";
86569
+ const letter = "_letter_jg827_22";
86106
86570
  const styles$11 = {
86107
86571
  root: root$Y,
86108
86572
  line: line,
@@ -96056,7 +96520,7 @@ const Lock = () => {
96056
96520
  }
96057
96521
  };
96058
96522
  const asynchronously = async () => {
96059
- const Flickity = await Promise.resolve().then(() => require('./index-CmzNwlcp.cjs')).then(n => n.index).then((m) => m.default);
96523
+ const Flickity = await Promise.resolve().then(() => require('./index-DoJenARH.cjs')).then(n => n.index).then((m) => m.default);
96060
96524
  if (!rowsRef.current || !window) return;
96061
96525
  const rows = rowsRef.current.children;
96062
96526
  for (let i = 0, len = rows.length; i < len; i++) {