aliveicon 1.0.23 → 1.0.24

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/esm/index.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import { useAnimation, motion } from 'framer-motion';
3
+ import * as React from 'react';
3
4
  import { useRef, useCallback, useEffect, forwardRef, useImperativeHandle } from 'react';
4
5
 
5
6
  function r(e){var t,f,n="";if("string"==typeof e||"number"==typeof e)n+=e;else if("object"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=" "),n+=f);}else for(f in e)e[f]&&(n&&(n+=" "),n+=f);return n}function clsx(){for(var e,t,f=0,n="",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=" "),n+=t);return n}
@@ -2959,10 +2960,10 @@ const getDefaultConfig = () => {
2959
2960
  };
2960
2961
  const twMerge = /*#__PURE__*/createTailwindMerge(getDefaultConfig);
2961
2962
 
2962
- function cn$5(...inputs) {
2963
+ function cn$p(...inputs) {
2963
2964
  return twMerge(clsx(inputs));
2964
2965
  }
2965
- const squareVariants = {
2966
+ const squareVariants$1 = {
2966
2967
  normal: {
2967
2968
  scale: 1,
2968
2969
  opacity: 1,
@@ -2974,7 +2975,7 @@ const squareVariants = {
2974
2975
  transition: { duration: 0.6, ease: 'easeInOut' },
2975
2976
  },
2976
2977
  };
2977
- const pathVariants$2 = {
2978
+ const pathVariants$k = {
2978
2979
  normal: {
2979
2980
  opacity: 1,
2980
2981
  pathLength: 1,
@@ -3027,15 +3028,15 @@ function SquareActivity({ size = 28, className, style, autoAnimateOnLoad = false
3027
3028
  triggerAnimation();
3028
3029
  onClick?.(e);
3029
3030
  };
3030
- return (jsx("div", { className: cn$5('rounded-md', className), style: {
3031
+ return (jsx("div", { className: cn$p('rounded-md', className), style: {
3031
3032
  width: size,
3032
3033
  height: size,
3033
3034
  display: 'inline-block',
3034
3035
  ...style,
3035
- }, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, onClick: handleClick, ...props, children: jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", width: "100%", height: "100%", children: [jsx(motion.rect, { width: "18", height: "18", x: "3", y: "3", rx: "2", variants: squareVariants, animate: controls, initial: "normal" }), jsx(motion.path, { d: "M17 12h-2l-2 5-2-10-2 5H7", variants: pathVariants$2, animate: controls, initial: "normal", style: { strokeDasharray: 1 } })] }) }));
3036
+ }, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, onClick: handleClick, ...props, children: jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", width: "100%", height: "100%", children: [jsx(motion.rect, { width: "18", height: "18", x: "3", y: "3", rx: "2", variants: squareVariants$1, animate: controls, initial: "normal" }), jsx(motion.path, { d: "M17 12h-2l-2 5-2-10-2 5H7", variants: pathVariants$k, animate: controls, initial: "normal", style: { strokeDasharray: 1 } })] }) }));
3036
3037
  }
3037
3038
 
3038
- function cn$4(...inputs) {
3039
+ function cn$o(...inputs) {
3039
3040
  return twMerge(clsx(inputs));
3040
3041
  }
3041
3042
  const bounceVariant$1 = {
@@ -3128,14 +3129,14 @@ function ArrowDown({ size = 28, className, style, autoAnimateOnLoad = false, hov
3128
3129
  "M18 7v9",
3129
3130
  "m14 12 4 4 4-4",
3130
3131
  ];
3131
- return (jsx("div", { className: cn$4('inline-block', className), style: {
3132
+ return (jsx("div", { className: cn$o('inline-block', className), style: {
3132
3133
  width: size,
3133
3134
  height: size,
3134
3135
  ...style,
3135
3136
  }, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, onClick: handleClick, ...props, children: jsx(motion.svg, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", width: "100%", height: "100%", variants: isBounce ? bounceVariant$1 : undefined, animate: isBounce ? controls : undefined, initial: isBounce ? 'normal' : undefined, children: paths.map((d, i) => (jsx(motion.path, { d: d, variants: isBounce ? bouncePathVariants$1 : lineVariants$1, initial: isBounce ? 'hidden' : 'normal', animate: isBounce ? 'visible' : controls, custom: i }, i))) }) }));
3136
3137
  }
3137
3138
 
3138
- function cn$3(...inputs) {
3139
+ function cn$n(...inputs) {
3139
3140
  return twMerge(clsx(inputs));
3140
3141
  }
3141
3142
  const bounceVariant = {
@@ -3228,14 +3229,14 @@ function ArrowUp({ size = 28, className, style, autoAnimateOnLoad = false, hover
3228
3229
  "M18 16V7", // arrow line, now reversed (was 7→16, now 16→7)
3229
3230
  "m22 12-4-4-4 4", // arrow head pointing upward
3230
3231
  ];
3231
- return (jsx("div", { className: cn$3('inline-block', className), style: {
3232
+ return (jsx("div", { className: cn$n('inline-block', className), style: {
3232
3233
  width: size,
3233
3234
  height: size,
3234
3235
  ...style,
3235
3236
  }, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, onClick: handleClick, ...props, children: jsx(motion.svg, { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", width: "100%", height: "100%", variants: isBounce ? bounceVariant : undefined, animate: isBounce ? controls : undefined, initial: isBounce ? 'normal' : undefined, children: paths.map((d, i) => (jsx(motion.path, { d: d, variants: isBounce ? bouncePathVariants : lineVariants, initial: isBounce ? 'hidden' : 'normal', animate: isBounce ? 'visible' : controls, custom: i }, i))) }) }));
3236
3237
  }
3237
3238
 
3238
- function cn$2(...inputs) {
3239
+ function cn$m(...inputs) {
3239
3240
  return twMerge(clsx(inputs));
3240
3241
  }
3241
3242
  const circleVariants = {
@@ -3254,7 +3255,7 @@ const circleVariants = {
3254
3255
  },
3255
3256
  },
3256
3257
  };
3257
- const pathVariants$1 = {
3258
+ const pathVariants$j = {
3258
3259
  normal: {
3259
3260
  opacity: 1,
3260
3261
  pathLength: 1,
@@ -3306,18 +3307,18 @@ function AccessibilityActivity({ size = 28, className, style, autoAnimateOnLoad
3306
3307
  triggerAnimation();
3307
3308
  onClick?.(e);
3308
3309
  };
3309
- return (jsx("div", { className: cn$2('rounded-md', className), style: {
3310
+ return (jsx("div", { className: cn$m('rounded-md', className), style: {
3310
3311
  width: size,
3311
3312
  height: size,
3312
3313
  display: 'inline-block',
3313
3314
  ...style,
3314
- }, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, onClick: handleClick, ...props, children: jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", width: "100%", height: "100%", children: [jsx(motion.circle, { cx: "16", cy: "4", r: "1", variants: circleVariants, animate: controls, initial: "normal" }), jsx(motion.path, { d: "m18 19 1-7-6 1", variants: pathVariants$1, animate: controls, initial: "normal", style: { strokeDasharray: 1 } }), jsx(motion.path, { d: "m5 8 3-3 5.5 3-2.36 3.5", variants: pathVariants$1, animate: controls, initial: "normal", style: { strokeDasharray: 1 } }), jsx(motion.path, { d: "M4.24 14.5a5 5 0 0 0 6.88 6", variants: pathVariants$1, animate: controls, initial: "normal", style: { strokeDasharray: 1 } }), jsx(motion.path, { d: "M13.76 17.5a5 5 0 0 0-6.88-6", variants: pathVariants$1, animate: controls, initial: "normal", style: { strokeDasharray: 1 } })] }) }));
3315
+ }, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, onClick: handleClick, ...props, children: jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", width: "100%", height: "100%", children: [jsx(motion.circle, { cx: "16", cy: "4", r: "1", variants: circleVariants, animate: controls, initial: "normal" }), jsx(motion.path, { d: "m18 19 1-7-6 1", variants: pathVariants$j, animate: controls, initial: "normal", style: { strokeDasharray: 1 } }), jsx(motion.path, { d: "m5 8 3-3 5.5 3-2.36 3.5", variants: pathVariants$j, animate: controls, initial: "normal", style: { strokeDasharray: 1 } }), jsx(motion.path, { d: "M4.24 14.5a5 5 0 0 0 6.88 6", variants: pathVariants$j, animate: controls, initial: "normal", style: { strokeDasharray: 1 } }), jsx(motion.path, { d: "M13.76 17.5a5 5 0 0 0-6.88-6", variants: pathVariants$j, animate: controls, initial: "normal", style: { strokeDasharray: 1 } })] }) }));
3315
3316
  }
3316
3317
 
3317
- function cn$1(...inputs) {
3318
+ function cn$l(...inputs) {
3318
3319
  return twMerge(clsx(inputs));
3319
3320
  }
3320
- const pathVariants = {
3321
+ const pathVariants$i = {
3321
3322
  normal: {
3322
3323
  opacity: 1,
3323
3324
  pathLength: 1,
@@ -3370,15 +3371,15 @@ function Activity({ size = 28, className, style, autoAnimateOnLoad = false, hove
3370
3371
  triggerAnimation();
3371
3372
  onClick?.(e);
3372
3373
  };
3373
- return (jsx("div", { className: cn$1('rounded-md', className), style: {
3374
+ return (jsx("div", { className: cn$l('rounded-md', className), style: {
3374
3375
  width: size,
3375
3376
  height: size,
3376
3377
  display: 'inline-block',
3377
3378
  ...style,
3378
- }, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, onClick: handleClick, ...props, children: jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", width: "100%", height: "100%", children: jsx(motion.path, { d: "M17 12h-2l-2 5-2-10-2 5H7", variants: pathVariants, animate: controls, initial: "normal", style: { strokeDasharray: 1 } }) }) }));
3379
+ }, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, onClick: handleClick, ...props, children: jsx("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", width: "100%", height: "100%", children: jsx(motion.path, { d: "M17 12h-2l-2 5-2-10-2 5H7", variants: pathVariants$i, animate: controls, initial: "normal", style: { strokeDasharray: 1 } }) }) }));
3379
3380
  }
3380
3381
 
3381
- function cn(...inputs) {
3382
+ function cn$k(...inputs) {
3382
3383
  return twMerge(clsx(inputs));
3383
3384
  }
3384
3385
  const windVariants = {
@@ -3429,9 +3430,1421 @@ const AirVent = forwardRef(({ onMouseEnter, onMouseLeave, className, size = 28,
3429
3430
  onMouseLeave?.(e);
3430
3431
  }
3431
3432
  }, [controls, onMouseLeave]);
3432
- return (jsx("div", { className: cn(className), onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, ...props, children: jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [jsx("path", { d: "M6 12H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2" }), jsx(motion.path, { d: "M6 8h12", variants: windVariants, initial: "normal", animate: controls, custom: 0.1 }), jsx(motion.path, { d: "M18.3 17.7a2.5 2.5 0 0 1-3.16 3.83 2.53 2.53 0 0 1-1.14-2V12", variants: windVariants, initial: "normal", animate: controls, custom: 0 }), jsx(motion.path, { d: "M6.6 15.6A2 2 0 1 0 10 17v-5", variants: windVariants, initial: "normal", animate: controls, custom: 0.2 })] }) }));
3433
+ return (jsx("div", { className: cn$k(className), onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, ...props, children: jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [jsx("path", { d: "M6 12H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2" }), jsx(motion.path, { d: "M6 8h12", variants: windVariants, initial: "normal", animate: controls, custom: 0.1 }), jsx(motion.path, { d: "M18.3 17.7a2.5 2.5 0 0 1-3.16 3.83 2.53 2.53 0 0 1-1.14-2V12", variants: windVariants, initial: "normal", animate: controls, custom: 0 }), jsx(motion.path, { d: "M6.6 15.6A2 2 0 1 0 10 17v-5", variants: windVariants, initial: "normal", animate: controls, custom: 0.2 })] }) }));
3433
3434
  });
3434
3435
  AirVent.displayName = 'AirVent';
3435
3436
 
3436
- export { AccessibilityActivity, Activity, AirVent, ArrowDown, ArrowUp, SquareActivity };
3437
+ function cn$j(...inputs) {
3438
+ return twMerge(clsx(inputs));
3439
+ }
3440
+ const screenVariants = {
3441
+ normal: {
3442
+ opacity: 1,
3443
+ pathLength: 1,
3444
+ pathOffset: 0,
3445
+ transition: {
3446
+ duration: 0.3,
3447
+ },
3448
+ },
3449
+ animate: {
3450
+ opacity: [0, 1],
3451
+ pathLength: [0, 1],
3452
+ pathOffset: [1, 0],
3453
+ transition: {
3454
+ duration: 0.6,
3455
+ ease: 'easeInOut',
3456
+ },
3457
+ },
3458
+ };
3459
+ const triangleVariants = {
3460
+ normal: {
3461
+ scale: 1,
3462
+ opacity: 1,
3463
+ transition: { duration: 0.3 },
3464
+ },
3465
+ animate: {
3466
+ scale: [0.6, 1.1, 1],
3467
+ opacity: [0, 1],
3468
+ transition: {
3469
+ duration: 0.6,
3470
+ ease: 'easeOut',
3471
+ },
3472
+ },
3473
+ };
3474
+ function Airplay({ size = 28, className, style, autoAnimateOnLoad = false, hoverable = true, loopOnHover = false, animateOnClick = false, onMouseEnter, onMouseLeave, onClick, ...props }) {
3475
+ const controls = useAnimation();
3476
+ const loopRef = useRef(loopOnHover);
3477
+ const triggerAnimation = useCallback(async () => {
3478
+ await controls.start('animate');
3479
+ await controls.start('normal');
3480
+ if (loopRef.current)
3481
+ triggerAnimation();
3482
+ }, [controls]);
3483
+ useEffect(() => {
3484
+ loopRef.current = loopOnHover;
3485
+ }, [loopOnHover]);
3486
+ useEffect(() => {
3487
+ if (autoAnimateOnLoad)
3488
+ triggerAnimation();
3489
+ }, [autoAnimateOnLoad, triggerAnimation]);
3490
+ const handleMouseEnter = (e) => {
3491
+ if (hoverable)
3492
+ triggerAnimation();
3493
+ onMouseEnter?.(e);
3494
+ };
3495
+ const handleMouseLeave = (e) => {
3496
+ if (hoverable)
3497
+ controls.start('normal');
3498
+ onMouseLeave?.(e);
3499
+ };
3500
+ const handleClick = (e) => {
3501
+ if (animateOnClick)
3502
+ triggerAnimation();
3503
+ onClick?.(e);
3504
+ };
3505
+ return (jsx("div", { className: cn$j(className), style: {
3506
+ width: size,
3507
+ height: size,
3508
+ display: 'inline-block',
3509
+ ...style,
3510
+ }, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, onClick: handleClick, ...props, children: jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", width: "100%", height: "100%", children: [jsx(motion.path, { d: "M5 17H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-1", variants: screenVariants, initial: "normal", animate: controls }), jsx(motion.path, { d: "M12 15l5 6H7z", variants: triangleVariants, initial: "normal", animate: controls })] }) }));
3511
+ }
3512
+
3513
+ function cn$i(...inputs) {
3514
+ return twMerge(clsx(inputs));
3515
+ }
3516
+ const squareVariants = {
3517
+ normal: {
3518
+ scale: 1,
3519
+ opacity: 1,
3520
+ transition: { duration: 0.4 },
3521
+ },
3522
+ animate: {
3523
+ scale: 1.10,
3524
+ opacity: 0.9,
3525
+ transition: { duration: 0.6, ease: 'easeInOut' },
3526
+ },
3527
+ };
3528
+ const pathVariants$h = {
3529
+ normal: {
3530
+ opacity: 1,
3531
+ pathLength: 1,
3532
+ pathOffset: 0,
3533
+ transition: {
3534
+ duration: 0.4,
3535
+ opacity: { duration: 0.1 },
3536
+ },
3537
+ },
3538
+ animate: {
3539
+ opacity: [0, 1],
3540
+ pathLength: [0, 1],
3541
+ pathOffset: [1, 0],
3542
+ transition: {
3543
+ duration: 0.6,
3544
+ ease: 'linear',
3545
+ opacity: { duration: 0.1 },
3546
+ },
3547
+ },
3548
+ };
3549
+ const Album = ({ size = 28, className, style, autoAnimateOnLoad = false, hoverable = true, loopOnHover = false, animateOnClick = false, onMouseEnter, onMouseLeave, onClick, ...props }) => {
3550
+ const controls = useAnimation();
3551
+ const loopRef = useRef(loopOnHover);
3552
+ const triggerAnimation = useCallback(async () => {
3553
+ await controls.start('animate');
3554
+ await controls.start('normal');
3555
+ if (loopRef.current)
3556
+ triggerAnimation();
3557
+ }, [controls]);
3558
+ useEffect(() => {
3559
+ loopRef.current = loopOnHover;
3560
+ }, [loopOnHover]);
3561
+ useEffect(() => {
3562
+ if (autoAnimateOnLoad)
3563
+ triggerAnimation();
3564
+ }, [autoAnimateOnLoad, triggerAnimation]);
3565
+ const handleMouseEnter = (e) => {
3566
+ if (hoverable)
3567
+ triggerAnimation();
3568
+ onMouseEnter?.(e);
3569
+ };
3570
+ const handleMouseLeave = (e) => {
3571
+ if (hoverable)
3572
+ controls.start('normal');
3573
+ onMouseLeave?.(e);
3574
+ };
3575
+ const handleClick = (e) => {
3576
+ if (animateOnClick)
3577
+ triggerAnimation();
3578
+ onClick?.(e);
3579
+ };
3580
+ return (jsx("div", { className: cn$i('rounded-md', className), style: {
3581
+ width: size,
3582
+ height: size,
3583
+ display: 'inline-block',
3584
+ ...style,
3585
+ }, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, onClick: handleClick, ...props, children: jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", width: "100%", height: "100%", children: [jsx(motion.rect, { width: "18", height: "18", x: "3", y: "3", rx: "2", ry: "2", variants: squareVariants, animate: controls, initial: "normal" }), jsx(motion.polyline, { points: "11 3 11 11 14 8 17 11 17 3", variants: pathVariants$h, animate: controls, initial: "normal", style: { strokeDasharray: 1 } })] }) }));
3586
+ };
3587
+
3588
+ function cn$h(...inputs) {
3589
+ return twMerge(clsx(inputs));
3590
+ }
3591
+ const pathVariants$g = {
3592
+ normal: {
3593
+ y: 0,
3594
+ x: 0,
3595
+ transition: { duration: 0.2, type: 'spring', stiffness: 200, damping: 25 },
3596
+ },
3597
+ animate: {
3598
+ y: -1.5,
3599
+ x: [-1, 1, -1, 1, -1, 0],
3600
+ transition: {
3601
+ x: { duration: 0.3, repeat: Infinity, ease: 'linear' },
3602
+ y: { duration: 0.2, type: 'spring', stiffness: 200, damping: 25 },
3603
+ },
3604
+ },
3605
+ };
3606
+ const secondaryPathVariants$3 = {
3607
+ normal: {
3608
+ y: 0,
3609
+ x: 0,
3610
+ transition: { duration: 0.2, type: 'spring', stiffness: 200, damping: 25 },
3611
+ },
3612
+ animate: {
3613
+ y: -2.5,
3614
+ x: [-2, 2, -2, 2, -2, 0],
3615
+ transition: {
3616
+ x: { duration: 0.3, repeat: Infinity, ease: 'linear' },
3617
+ y: { duration: 0.2, type: 'spring', stiffness: 200, damping: 25 },
3618
+ },
3619
+ },
3620
+ };
3621
+ const AlarmClock = forwardRef(({ className, size = 28, autoAnimateOnLoad = false, hoverable = true, loopOnHover = false, animateOnClick = false, onMouseEnter, onMouseLeave, onClick, ...props }, ref) => {
3622
+ const controls = useAnimation();
3623
+ const isControlledRef = useRef(false);
3624
+ const timeoutRef = useRef(null);
3625
+ const startOnce = useCallback(() => {
3626
+ controls.start('animate');
3627
+ if (timeoutRef.current)
3628
+ clearTimeout(timeoutRef.current);
3629
+ timeoutRef.current = setTimeout(() => {
3630
+ controls.start('normal');
3631
+ }, 700); // single cycle duration
3632
+ }, [controls]);
3633
+ const startLoop = useCallback(() => {
3634
+ controls.start('animate');
3635
+ }, [controls]);
3636
+ const stopAnimation = useCallback(() => {
3637
+ if (timeoutRef.current)
3638
+ clearTimeout(timeoutRef.current);
3639
+ controls.start('normal');
3640
+ }, [controls]);
3641
+ useImperativeHandle(ref, () => {
3642
+ isControlledRef.current = true;
3643
+ return {
3644
+ startAnimation: () => startOnce(),
3645
+ stopAnimation: () => stopAnimation(),
3646
+ };
3647
+ });
3648
+ const handleMouseEnter = useCallback((e) => {
3649
+ if (!isControlledRef.current && hoverable) {
3650
+ if (loopOnHover) {
3651
+ startLoop();
3652
+ }
3653
+ else {
3654
+ startOnce();
3655
+ }
3656
+ }
3657
+ onMouseEnter?.(e);
3658
+ }, [hoverable, loopOnHover, onMouseEnter, startOnce, startLoop]);
3659
+ const handleMouseLeave = useCallback((e) => {
3660
+ if (!isControlledRef.current && hoverable && loopOnHover) {
3661
+ stopAnimation();
3662
+ }
3663
+ onMouseLeave?.(e);
3664
+ }, [hoverable, loopOnHover, onMouseLeave, stopAnimation]);
3665
+ const handleClick = useCallback((e) => {
3666
+ if (!isControlledRef.current && animateOnClick) {
3667
+ startOnce();
3668
+ }
3669
+ onClick?.(e);
3670
+ }, [animateOnClick, onClick, startOnce]);
3671
+ useEffect(() => {
3672
+ if (autoAnimateOnLoad) {
3673
+ startOnce();
3674
+ }
3675
+ return () => {
3676
+ if (timeoutRef.current)
3677
+ clearTimeout(timeoutRef.current);
3678
+ };
3679
+ }, [autoAnimateOnLoad, startOnce]);
3680
+ return (jsx("div", { className: cn$h(className), onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, onClick: handleClick, ...props, children: jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", style: { overflow: 'visible' }, children: [jsx(motion.path, { variants: pathVariants$g, initial: "normal", animate: controls, d: "M18 20.5L19.5 22" }), jsx(motion.path, { variants: pathVariants$g, initial: "normal", animate: controls, d: "M6 20.5L4.5 22" }), jsx(motion.path, { variants: pathVariants$g, initial: "normal", animate: controls, d: "M21 13C21 17.968 16.968 22 12 22C7.032 22 3 17.968 3 13C3 8.032 7.032 4 12 4C16.968 4 21 8.032 21 13Z" }), jsx(motion.path, { variants: pathVariants$g, initial: "normal", animate: controls, d: "M15.339 15.862L12.549 14.197C12.063 13.909 11.667 13.216 11.667 12.649V8.95898" }), jsx(motion.path, { variants: secondaryPathVariants$3, initial: "normal", animate: controls, d: "M18 2L21.747 5.31064" }), jsx(motion.path, { variants: secondaryPathVariants$3, initial: "normal", animate: controls, d: "M6 2L2.25304 5.31064" })] }) }));
3681
+ });
3682
+ AlarmClock.displayName = 'AlarmClock';
3683
+
3684
+ function cn$g(...inputs) {
3685
+ return twMerge(clsx(inputs));
3686
+ }
3687
+ const pathVariants$f = {
3688
+ normal: {
3689
+ y: 0,
3690
+ x: 0,
3691
+ transition: { duration: 0.2, type: 'spring', stiffness: 200, damping: 25 },
3692
+ },
3693
+ animate: {
3694
+ y: -1.5,
3695
+ x: [-1, 1, -1, 1, -1, 0],
3696
+ transition: {
3697
+ x: { duration: 0.3, repeat: Infinity, ease: 'linear' },
3698
+ y: { duration: 0.2, type: 'spring', stiffness: 200, damping: 25 },
3699
+ },
3700
+ },
3701
+ };
3702
+ const secondaryPathVariants$2 = {
3703
+ normal: {
3704
+ y: 0,
3705
+ x: 0,
3706
+ transition: { duration: 0.2, type: 'spring', stiffness: 200, damping: 25 },
3707
+ },
3708
+ animate: {
3709
+ y: -2.5,
3710
+ x: [-2, 2, -2, 2, -2, 0],
3711
+ transition: {
3712
+ x: { duration: 0.3, repeat: Infinity, ease: 'linear' },
3713
+ y: { duration: 0.2, type: 'spring', stiffness: 200, damping: 25 },
3714
+ },
3715
+ },
3716
+ };
3717
+ const AlarmClockCheck = forwardRef(({ className, size = 28, autoAnimateOnLoad = false, hoverable = true, loopOnHover = false, animateOnClick = false, onMouseEnter, onMouseLeave, onClick, ...props }, ref) => {
3718
+ const controls = useAnimation();
3719
+ const isControlledRef = useRef(false);
3720
+ const timeoutRef = useRef(null);
3721
+ const startAnimation = useCallback(() => {
3722
+ controls.start('animate');
3723
+ }, [controls]);
3724
+ const stopAnimation = useCallback(() => {
3725
+ controls.start('normal');
3726
+ }, [controls]);
3727
+ const startTimedAnimation = useCallback(() => {
3728
+ startAnimation();
3729
+ if (timeoutRef.current)
3730
+ clearTimeout(timeoutRef.current);
3731
+ timeoutRef.current = setTimeout(() => {
3732
+ stopAnimation();
3733
+ }, 700);
3734
+ }, [startAnimation, stopAnimation]);
3735
+ useImperativeHandle(ref, () => {
3736
+ isControlledRef.current = true;
3737
+ return {
3738
+ startAnimation: () => startTimedAnimation(),
3739
+ stopAnimation: () => stopAnimation(),
3740
+ };
3741
+ });
3742
+ const handleMouseEnter = useCallback((e) => {
3743
+ if (!isControlledRef.current && hoverable) {
3744
+ if (loopOnHover) {
3745
+ startAnimation();
3746
+ }
3747
+ else {
3748
+ startTimedAnimation();
3749
+ }
3750
+ }
3751
+ onMouseEnter?.(e);
3752
+ }, [hoverable, loopOnHover, onMouseEnter, startAnimation, startTimedAnimation]);
3753
+ const handleMouseLeave = useCallback((e) => {
3754
+ if (!isControlledRef.current && hoverable && loopOnHover) {
3755
+ stopAnimation();
3756
+ }
3757
+ onMouseLeave?.(e);
3758
+ }, [hoverable, loopOnHover, onMouseLeave, stopAnimation]);
3759
+ const handleClick = useCallback((e) => {
3760
+ if (!isControlledRef.current && animateOnClick) {
3761
+ startTimedAnimation();
3762
+ }
3763
+ onClick?.(e);
3764
+ }, [animateOnClick, onClick, startTimedAnimation]);
3765
+ useEffect(() => {
3766
+ if (autoAnimateOnLoad) {
3767
+ startTimedAnimation();
3768
+ }
3769
+ return () => {
3770
+ if (timeoutRef.current)
3771
+ clearTimeout(timeoutRef.current);
3772
+ };
3773
+ }, [autoAnimateOnLoad, startTimedAnimation]);
3774
+ return (jsx("div", { className: cn$g(className), onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, onClick: handleClick, ...props, children: jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", style: { overflow: 'visible' }, children: [jsx(motion.circle, { variants: pathVariants$f, initial: "normal", animate: controls, cx: "12", cy: "13", r: "8" }), jsx(motion.path, { variants: secondaryPathVariants$2, initial: "normal", animate: controls, d: "M5 3 2 6" }), jsx(motion.path, { variants: secondaryPathVariants$2, initial: "normal", animate: controls, d: "m22 6-3-3" }), jsx(motion.path, { variants: pathVariants$f, initial: "normal", animate: controls, d: "M6.38 18.7 4 21" }), jsx(motion.path, { variants: pathVariants$f, initial: "normal", animate: controls, d: "M17.64 18.67 20 21" }), jsx(motion.path, { variants: pathVariants$f, initial: "normal", animate: controls, d: "m9 13 2 2 4-4" })] }) }));
3775
+ });
3776
+ AlarmClockCheck.displayName = 'AlarmClockCheck';
3777
+
3778
+ function cn$f(...inputs) {
3779
+ return twMerge(clsx(inputs));
3780
+ }
3781
+ const pathVariants$e = {
3782
+ normal: {
3783
+ y: 0,
3784
+ x: 0,
3785
+ transition: { duration: 0.2, type: 'spring', stiffness: 200, damping: 25 },
3786
+ },
3787
+ animate: {
3788
+ y: -1.5,
3789
+ x: [-1, 1, -1, 1, -1, 0],
3790
+ transition: {
3791
+ x: { duration: 0.3, repeat: Infinity, ease: 'linear' },
3792
+ y: { duration: 0.2, type: 'spring', stiffness: 200, damping: 25 },
3793
+ },
3794
+ },
3795
+ };
3796
+ const secondaryPathVariants$1 = {
3797
+ normal: {
3798
+ y: 0,
3799
+ x: 0,
3800
+ transition: { duration: 0.2, type: 'spring', stiffness: 200, damping: 25 },
3801
+ },
3802
+ animate: {
3803
+ y: -2.5,
3804
+ x: [-2, 2, -2, 2, -2, 0],
3805
+ transition: {
3806
+ x: { duration: 0.3, repeat: Infinity, ease: 'linear' },
3807
+ y: { duration: 0.2, type: 'spring', stiffness: 200, damping: 25 },
3808
+ },
3809
+ },
3810
+ };
3811
+ const AlarmClockMinus = forwardRef(({ className, size = 28, autoAnimateOnLoad = false, hoverable = true, loopOnHover = false, animateOnClick = false, onMouseEnter, onMouseLeave, onClick, ...props }, ref) => {
3812
+ const controls = useAnimation();
3813
+ const isControlledRef = useRef(false);
3814
+ const timeoutRef = useRef(null);
3815
+ const startAnimation = useCallback(() => {
3816
+ controls.start('animate');
3817
+ }, [controls]);
3818
+ const stopAnimation = useCallback(() => {
3819
+ controls.start('normal');
3820
+ }, [controls]);
3821
+ const startTimedAnimation = useCallback(() => {
3822
+ startAnimation();
3823
+ if (timeoutRef.current)
3824
+ clearTimeout(timeoutRef.current);
3825
+ timeoutRef.current = setTimeout(() => {
3826
+ stopAnimation();
3827
+ }, 700);
3828
+ }, [startAnimation, stopAnimation]);
3829
+ useImperativeHandle(ref, () => {
3830
+ isControlledRef.current = true;
3831
+ return {
3832
+ startAnimation: () => startTimedAnimation(),
3833
+ stopAnimation: () => stopAnimation(),
3834
+ };
3835
+ });
3836
+ const handleMouseEnter = useCallback((e) => {
3837
+ if (!isControlledRef.current && hoverable) {
3838
+ if (loopOnHover) {
3839
+ startAnimation();
3840
+ }
3841
+ else {
3842
+ startTimedAnimation();
3843
+ }
3844
+ }
3845
+ onMouseEnter?.(e);
3846
+ }, [hoverable, loopOnHover, onMouseEnter, startAnimation, startTimedAnimation]);
3847
+ const handleMouseLeave = useCallback((e) => {
3848
+ if (!isControlledRef.current && hoverable && loopOnHover) {
3849
+ stopAnimation();
3850
+ }
3851
+ onMouseLeave?.(e);
3852
+ }, [hoverable, loopOnHover, onMouseLeave, stopAnimation]);
3853
+ const handleClick = useCallback((e) => {
3854
+ if (!isControlledRef.current && animateOnClick) {
3855
+ startTimedAnimation();
3856
+ }
3857
+ onClick?.(e);
3858
+ }, [animateOnClick, onClick, startTimedAnimation]);
3859
+ useEffect(() => {
3860
+ if (autoAnimateOnLoad) {
3861
+ startTimedAnimation();
3862
+ }
3863
+ return () => {
3864
+ if (timeoutRef.current)
3865
+ clearTimeout(timeoutRef.current);
3866
+ };
3867
+ }, [autoAnimateOnLoad, startTimedAnimation]);
3868
+ return (jsx("div", { className: cn$f(className), onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, onClick: handleClick, ...props, children: jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", style: { overflow: 'visible' }, children: [jsx(motion.circle, { variants: pathVariants$e, initial: "normal", animate: controls, cx: "12", cy: "13", r: "8" }), jsx(motion.path, { variants: secondaryPathVariants$1, initial: "normal", animate: controls, d: "M5 3 2 6" }), jsx(motion.path, { variants: secondaryPathVariants$1, initial: "normal", animate: controls, d: "m22 6-3-3" }), jsx(motion.path, { variants: pathVariants$e, initial: "normal", animate: controls, d: "M6.38 18.7 4 21" }), jsx(motion.path, { variants: pathVariants$e, initial: "normal", animate: controls, d: "M17.64 18.67 20 21" }), jsx(motion.line, { variants: pathVariants$e, initial: "normal", animate: controls, x1: "9", y1: "13", x2: "15", y2: "13" })] }) }));
3869
+ });
3870
+ AlarmClockMinus.displayName = 'AlarmClockMinus';
3871
+
3872
+ function cn$e(...inputs) {
3873
+ return twMerge(clsx(inputs));
3874
+ }
3875
+ const pathVariants$d = {
3876
+ normal: {
3877
+ y: 0,
3878
+ x: 0,
3879
+ transition: { duration: 0.2, type: 'spring', stiffness: 200, damping: 25 },
3880
+ },
3881
+ animate: {
3882
+ y: -1.5,
3883
+ x: [-1, 1, -1, 1, -1, 0],
3884
+ transition: {
3885
+ x: { duration: 0.3, repeat: Infinity, ease: 'linear' },
3886
+ y: { duration: 0.2, type: 'spring', stiffness: 200, damping: 25 },
3887
+ },
3888
+ },
3889
+ };
3890
+ const secondaryPathVariants = {
3891
+ normal: {
3892
+ y: 0,
3893
+ x: 0,
3894
+ transition: { duration: 0.2, type: 'spring', stiffness: 200, damping: 25 },
3895
+ },
3896
+ animate: {
3897
+ y: -2.5,
3898
+ x: [-2, 2, -2, 2, -2, 0],
3899
+ transition: {
3900
+ x: { duration: 0.3, repeat: Infinity, ease: 'linear' },
3901
+ y: { duration: 0.2, type: 'spring', stiffness: 200, damping: 25 },
3902
+ },
3903
+ },
3904
+ };
3905
+ const AlarmClockPlus = forwardRef(({ className, size = 28, autoAnimateOnLoad = false, hoverable = true, loopOnHover = false, animateOnClick = false, onMouseEnter, onMouseLeave, onClick, ...props }, ref) => {
3906
+ const controls = useAnimation();
3907
+ const isControlledRef = useRef(false);
3908
+ const timeoutRef = useRef(null);
3909
+ const startAnimation = useCallback(() => {
3910
+ controls.start('animate');
3911
+ }, [controls]);
3912
+ const stopAnimation = useCallback(() => {
3913
+ controls.start('normal');
3914
+ }, [controls]);
3915
+ const startTimedAnimation = useCallback(() => {
3916
+ startAnimation();
3917
+ if (timeoutRef.current)
3918
+ clearTimeout(timeoutRef.current);
3919
+ timeoutRef.current = setTimeout(() => {
3920
+ stopAnimation();
3921
+ }, 700);
3922
+ }, [startAnimation, stopAnimation]);
3923
+ useImperativeHandle(ref, () => {
3924
+ isControlledRef.current = true;
3925
+ return {
3926
+ startAnimation: () => startTimedAnimation(),
3927
+ stopAnimation: () => stopAnimation(),
3928
+ };
3929
+ });
3930
+ const handleMouseEnter = useCallback((e) => {
3931
+ if (!isControlledRef.current && hoverable) {
3932
+ if (loopOnHover) {
3933
+ startAnimation();
3934
+ }
3935
+ else {
3936
+ startTimedAnimation();
3937
+ }
3938
+ }
3939
+ onMouseEnter?.(e);
3940
+ }, [hoverable, loopOnHover, onMouseEnter, startAnimation, startTimedAnimation]);
3941
+ const handleMouseLeave = useCallback((e) => {
3942
+ if (!isControlledRef.current && hoverable && loopOnHover) {
3943
+ stopAnimation();
3944
+ }
3945
+ onMouseLeave?.(e);
3946
+ }, [hoverable, loopOnHover, onMouseLeave, stopAnimation]);
3947
+ const handleClick = useCallback((e) => {
3948
+ if (!isControlledRef.current && animateOnClick) {
3949
+ startTimedAnimation();
3950
+ }
3951
+ onClick?.(e);
3952
+ }, [animateOnClick, onClick, startTimedAnimation]);
3953
+ useEffect(() => {
3954
+ if (autoAnimateOnLoad) {
3955
+ startTimedAnimation();
3956
+ }
3957
+ return () => {
3958
+ if (timeoutRef.current)
3959
+ clearTimeout(timeoutRef.current);
3960
+ };
3961
+ }, [autoAnimateOnLoad, startTimedAnimation]);
3962
+ return (jsx("div", { className: cn$e(className), onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, onClick: handleClick, ...props, children: jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: size, height: size, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", style: { overflow: 'visible' }, children: [jsx(motion.circle, { variants: pathVariants$d, initial: "normal", animate: controls, cx: "12", cy: "13", r: "8" }), jsx(motion.path, { variants: secondaryPathVariants, initial: "normal", animate: controls, d: "M5 3 2 6" }), jsx(motion.path, { variants: secondaryPathVariants, initial: "normal", animate: controls, d: "m22 6-3-3" }), jsx(motion.path, { variants: pathVariants$d, initial: "normal", animate: controls, d: "M6.38 18.7 4 21" }), jsx(motion.path, { variants: pathVariants$d, initial: "normal", animate: controls, d: "M17.64 18.67 20 21" }), jsx(motion.line, { variants: pathVariants$d, initial: "normal", animate: controls, x1: "9", y1: "13", x2: "15", y2: "13" }), jsx(motion.line, { variants: pathVariants$d, initial: "normal", animate: controls, y1: "10", x1: "12", y2: "16", x2: "12" })] }) }));
3963
+ });
3964
+ AlarmClockPlus.displayName = 'AlarmClockPlus';
3965
+
3966
+ function cn$d(...inputs) {
3967
+ return twMerge(clsx(inputs));
3968
+ }
3969
+ const pathMotion = {
3970
+ normal: {
3971
+ translateX: 0,
3972
+ },
3973
+ animate: {
3974
+ translateX: [0, 3, -3, 2, -2, 0],
3975
+ transition: {
3976
+ ease: "linear",
3977
+ duration: 1,
3978
+ },
3979
+ },
3980
+ };
3981
+ const AlignCenter = React.forwardRef(({ size = 28, className, style, onMouseEnter, onMouseLeave, onClick, autoAnimateOnLoad = false, hoverable = true, loopOnHover = false, animateOnClick = false, ...props }, ref) => {
3982
+ const controls = useAnimation();
3983
+ const loopRef = useRef(loopOnHover);
3984
+ const isControlledRef = useRef(false);
3985
+ useImperativeHandle(ref, () => {
3986
+ isControlledRef.current = true;
3987
+ return {
3988
+ startAnimation: () => controls.start("animate"),
3989
+ stopAnimation: () => controls.start("normal"),
3990
+ };
3991
+ });
3992
+ const triggerAnimation = useCallback(async () => {
3993
+ await controls.start("animate");
3994
+ await controls.start("normal");
3995
+ if (loopRef.current)
3996
+ triggerAnimation();
3997
+ }, [controls]);
3998
+ React.useEffect(() => {
3999
+ loopRef.current = loopOnHover;
4000
+ }, [loopOnHover]);
4001
+ React.useEffect(() => {
4002
+ if (autoAnimateOnLoad && !isControlledRef.current) {
4003
+ triggerAnimation();
4004
+ }
4005
+ }, [autoAnimateOnLoad, triggerAnimation]);
4006
+ const handleMouseEnter = useCallback((e) => {
4007
+ if (!isControlledRef.current && hoverable) {
4008
+ triggerAnimation();
4009
+ }
4010
+ onMouseEnter?.(e);
4011
+ }, [triggerAnimation, onMouseEnter, hoverable]);
4012
+ const handleMouseLeave = useCallback((e) => {
4013
+ if (!isControlledRef.current && hoverable) {
4014
+ controls.start("normal");
4015
+ }
4016
+ onMouseLeave?.(e);
4017
+ }, [controls, onMouseLeave, hoverable]);
4018
+ const handleClick = useCallback((e) => {
4019
+ if (!isControlledRef.current && animateOnClick) {
4020
+ triggerAnimation();
4021
+ }
4022
+ onClick?.(e);
4023
+ }, [triggerAnimation, onClick, animateOnClick]);
4024
+ return (jsx("div", { className: cn$d("inline-block", className), style: { width: size, height: size, ...style }, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, onClick: handleClick, ...props, children: jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", width: "100%", height: "100%", children: [jsx(motion.path, { d: "M17 12H7", variants: pathMotion, initial: "normal", animate: controls }), jsx(motion.path, { d: "M19 18H5", animate: controls, initial: "normal" }), jsx(motion.path, { d: "M21 6H3", animate: controls, initial: "normal" })] }) }));
4025
+ });
4026
+ AlignCenter.displayName = "AlignCenter";
4027
+
4028
+ function cn$c(...inputs) {
4029
+ return twMerge(clsx(inputs));
4030
+ }
4031
+ const pathVariants$c = {
4032
+ normal: {
4033
+ pathLength: 1,
4034
+ pathOffset: 0,
4035
+ opacity: 1,
4036
+ transition: {
4037
+ duration: 0.4,
4038
+ },
4039
+ },
4040
+ animate: {
4041
+ pathLength: [0, 1],
4042
+ pathOffset: [1, 0],
4043
+ opacity: [0, 1],
4044
+ transition: {
4045
+ duration: 0.7,
4046
+ ease: 'easeInOut',
4047
+ },
4048
+ },
4049
+ };
4050
+ const AlignCenterHorizontal = forwardRef(({ size = 28, className, style, autoAnimateOnLoad = false, hoverable = true, loopOnHover = false, animateOnClick = false, onMouseEnter, onMouseLeave, onClick, ...props }, ref) => {
4051
+ const controls = useAnimation();
4052
+ const loopRef = useRef(loopOnHover);
4053
+ const isControlledRef = useRef(false);
4054
+ const triggerAnimation = useCallback(async () => {
4055
+ await controls.start('animate');
4056
+ await controls.start('normal');
4057
+ if (loopRef.current)
4058
+ triggerAnimation();
4059
+ }, [controls]);
4060
+ useEffect(() => {
4061
+ loopRef.current = loopOnHover;
4062
+ }, [loopOnHover]);
4063
+ useEffect(() => {
4064
+ if (autoAnimateOnLoad)
4065
+ triggerAnimation();
4066
+ }, [autoAnimateOnLoad, triggerAnimation]);
4067
+ useImperativeHandle(ref, () => {
4068
+ isControlledRef.current = true;
4069
+ return {
4070
+ startAnimation: () => controls.start('animate'),
4071
+ stopAnimation: () => controls.start('normal'),
4072
+ };
4073
+ });
4074
+ const handleMouseEnter = (e) => {
4075
+ if (!isControlledRef.current && hoverable)
4076
+ triggerAnimation();
4077
+ onMouseEnter?.(e);
4078
+ };
4079
+ const handleMouseLeave = (e) => {
4080
+ if (!isControlledRef.current && hoverable)
4081
+ controls.start('normal');
4082
+ onMouseLeave?.(e);
4083
+ };
4084
+ const handleClick = (e) => {
4085
+ if (animateOnClick)
4086
+ triggerAnimation();
4087
+ onClick?.(e);
4088
+ };
4089
+ return (jsx("div", { className: cn$c('inline-block', className), style: { width: size, height: size, ...style }, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, onClick: handleClick, ...props, children: jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", width: "100%", height: "100%", children: [jsx(motion.path, { d: "M2 12h20", variants: pathVariants$c, animate: controls, initial: "normal" }), jsx(motion.path, { d: "M10 16v4a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2v-4", variants: pathVariants$c, animate: controls, initial: "normal" }), jsx(motion.path, { d: "M10 8V4a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v4", variants: pathVariants$c, animate: controls, initial: "normal" }), jsx(motion.path, { d: "M20 16v1a2 2 0 0 1-2 2h-2a2 2 0 0 1-2-2v-1", variants: pathVariants$c, animate: controls, initial: "normal" }), jsx(motion.path, { d: "M14 8V7c0-1.1.9-2 2-2h2a2 2 0 0 1 2 2v1", variants: pathVariants$c, animate: controls, initial: "normal" })] }) }));
4090
+ });
4091
+ AlignCenterHorizontal.displayName = 'AlignCenterHorizontal';
4092
+
4093
+ function cn$b(...inputs) {
4094
+ return twMerge(clsx(inputs));
4095
+ }
4096
+ const pathVariants$b = {
4097
+ normal: {
4098
+ pathLength: 1,
4099
+ pathOffset: 0,
4100
+ opacity: 1,
4101
+ transition: { duration: 0.4 },
4102
+ },
4103
+ animate: {
4104
+ pathLength: [0, 1],
4105
+ pathOffset: [1, 0],
4106
+ opacity: [0, 1],
4107
+ transition: {
4108
+ duration: 0.7,
4109
+ ease: 'easeInOut',
4110
+ },
4111
+ },
4112
+ };
4113
+ const AlignCenterVertical = forwardRef(({ size = 28, className, style, autoAnimateOnLoad = false, hoverable = true, loopOnHover = false, animateOnClick = false, onMouseEnter, onMouseLeave, onClick, ...props }, ref) => {
4114
+ const controls = useAnimation();
4115
+ const loopRef = useRef(loopOnHover);
4116
+ const isControlledRef = useRef(false);
4117
+ const triggerAnimation = useCallback(async () => {
4118
+ await controls.start('animate');
4119
+ await controls.start('normal');
4120
+ if (loopRef.current)
4121
+ triggerAnimation();
4122
+ }, [controls]);
4123
+ useEffect(() => {
4124
+ loopRef.current = loopOnHover;
4125
+ }, [loopOnHover]);
4126
+ useEffect(() => {
4127
+ if (autoAnimateOnLoad)
4128
+ triggerAnimation();
4129
+ }, [autoAnimateOnLoad, triggerAnimation]);
4130
+ useImperativeHandle(ref, () => {
4131
+ isControlledRef.current = true;
4132
+ return {
4133
+ startAnimation: () => controls.start('animate'),
4134
+ stopAnimation: () => controls.start('normal'),
4135
+ };
4136
+ });
4137
+ const handleMouseEnter = (e) => {
4138
+ if (!isControlledRef.current && hoverable)
4139
+ triggerAnimation();
4140
+ onMouseEnter?.(e);
4141
+ };
4142
+ const handleMouseLeave = (e) => {
4143
+ if (!isControlledRef.current && hoverable)
4144
+ controls.start('normal');
4145
+ onMouseLeave?.(e);
4146
+ };
4147
+ const handleClick = (e) => {
4148
+ if (animateOnClick)
4149
+ triggerAnimation();
4150
+ onClick?.(e);
4151
+ };
4152
+ return (jsx("div", { className: cn$b('inline-block', className), style: { width: size, height: size, ...style }, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, onClick: handleClick, ...props, children: jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", width: "100%", height: "100%", children: [jsx(motion.path, { d: "M12 2v20", variants: pathVariants$b, animate: controls, initial: "normal" }), jsx(motion.path, { d: "M8 10H4a2 2 0 0 1-2-2V6c0-1.1.9-2 2-2h4", variants: pathVariants$b, animate: controls, initial: "normal" }), jsx(motion.path, { d: "M16 10h4a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2h-4", variants: pathVariants$b, animate: controls, initial: "normal" }), jsx(motion.path, { d: "M8 20H7a2 2 0 0 1-2-2v-2c0-1.1.9-2 2-2h1", variants: pathVariants$b, animate: controls, initial: "normal" }), jsx(motion.path, { d: "M16 14h1a2 2 0 0 1 2 2v2a2 2 0 0 1-2 2h-1", variants: pathVariants$b, animate: controls, initial: "normal" })] }) }));
4153
+ });
4154
+ AlignCenterVertical.displayName = 'AlignCenterVertical';
4155
+
4156
+ function cn$a(...inputs) {
4157
+ return twMerge(clsx(inputs));
4158
+ }
4159
+ const pathVariants$a = {
4160
+ normal: {
4161
+ pathLength: 1,
4162
+ pathOffset: 0,
4163
+ opacity: 1,
4164
+ transition: { duration: 0.3 },
4165
+ },
4166
+ animate: {
4167
+ pathLength: [0, 1],
4168
+ pathOffset: [1, 0],
4169
+ opacity: [0, 1],
4170
+ transition: {
4171
+ duration: 0.6,
4172
+ ease: 'easeInOut',
4173
+ },
4174
+ },
4175
+ };
4176
+ const AlignEndHorizontal = forwardRef(({ size = 28, className, style, autoAnimateOnLoad = false, hoverable = true, loopOnHover = false, animateOnClick = false, onMouseEnter, onMouseLeave, onClick, ...props }, ref) => {
4177
+ const controls = useAnimation();
4178
+ const loopRef = useRef(loopOnHover);
4179
+ const isControlledRef = useRef(false);
4180
+ const triggerAnimation = useCallback(async () => {
4181
+ await controls.start('animate');
4182
+ await controls.start('normal');
4183
+ if (loopRef.current)
4184
+ triggerAnimation();
4185
+ }, [controls]);
4186
+ useEffect(() => {
4187
+ loopRef.current = loopOnHover;
4188
+ }, [loopOnHover]);
4189
+ useEffect(() => {
4190
+ if (autoAnimateOnLoad)
4191
+ triggerAnimation();
4192
+ }, [autoAnimateOnLoad, triggerAnimation]);
4193
+ useImperativeHandle(ref, () => {
4194
+ isControlledRef.current = true;
4195
+ return {
4196
+ startAnimation: () => controls.start('animate'),
4197
+ stopAnimation: () => controls.start('normal'),
4198
+ };
4199
+ });
4200
+ const handleMouseEnter = (e) => {
4201
+ if (!isControlledRef.current && hoverable)
4202
+ triggerAnimation();
4203
+ onMouseEnter?.(e);
4204
+ };
4205
+ const handleMouseLeave = (e) => {
4206
+ if (!isControlledRef.current && hoverable)
4207
+ controls.start('normal');
4208
+ onMouseLeave?.(e);
4209
+ };
4210
+ const handleClick = (e) => {
4211
+ if (animateOnClick)
4212
+ triggerAnimation();
4213
+ onClick?.(e);
4214
+ };
4215
+ return (jsx("div", { className: cn$a('inline-block', className), style: { width: size, height: size, ...style }, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, onClick: handleClick, ...props, children: jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", width: "100%", height: "100%", children: [jsx(motion.rect, { width: "6", height: "16", x: "4", y: "2", rx: "2", variants: pathVariants$a, animate: controls, initial: "normal" }), jsx(motion.rect, { width: "6", height: "9", x: "14", y: "9", rx: "2", variants: pathVariants$a, animate: controls, initial: "normal" }), jsx(motion.path, { d: "M22 22H2", variants: pathVariants$a, animate: controls, initial: "normal" })] }) }));
4216
+ });
4217
+ AlignEndHorizontal.displayName = 'AlignEndHorizontal';
4218
+
4219
+ function cn$9(...inputs) {
4220
+ return twMerge(clsx(inputs));
4221
+ }
4222
+ const pathVariants$9 = {
4223
+ normal: {
4224
+ pathLength: 1,
4225
+ pathOffset: 0,
4226
+ opacity: 1,
4227
+ transition: { duration: 0.3 },
4228
+ },
4229
+ animate: {
4230
+ pathLength: [0, 1],
4231
+ pathOffset: [1, 0],
4232
+ opacity: [0, 1],
4233
+ transition: {
4234
+ duration: 0.6,
4235
+ ease: 'easeInOut',
4236
+ },
4237
+ },
4238
+ };
4239
+ const AlignEndVertical = forwardRef(({ size = 28, className, style, autoAnimateOnLoad = false, hoverable = true, loopOnHover = false, animateOnClick = false, onMouseEnter, onMouseLeave, onClick, ...props }, ref) => {
4240
+ const controls = useAnimation();
4241
+ const loopRef = useRef(loopOnHover);
4242
+ const isControlledRef = useRef(false);
4243
+ const triggerAnimation = useCallback(async () => {
4244
+ await controls.start('animate');
4245
+ await controls.start('normal');
4246
+ if (loopRef.current)
4247
+ triggerAnimation();
4248
+ }, [controls]);
4249
+ useEffect(() => {
4250
+ loopRef.current = loopOnHover;
4251
+ }, [loopOnHover]);
4252
+ useEffect(() => {
4253
+ if (autoAnimateOnLoad)
4254
+ triggerAnimation();
4255
+ }, [autoAnimateOnLoad, triggerAnimation]);
4256
+ useImperativeHandle(ref, () => {
4257
+ isControlledRef.current = true;
4258
+ return {
4259
+ startAnimation: () => controls.start('animate'),
4260
+ stopAnimation: () => controls.start('normal'),
4261
+ };
4262
+ });
4263
+ const handleMouseEnter = (e) => {
4264
+ if (!isControlledRef.current && hoverable)
4265
+ triggerAnimation();
4266
+ onMouseEnter?.(e);
4267
+ };
4268
+ const handleMouseLeave = (e) => {
4269
+ if (!isControlledRef.current && hoverable)
4270
+ controls.start('normal');
4271
+ onMouseLeave?.(e);
4272
+ };
4273
+ const handleClick = (e) => {
4274
+ if (animateOnClick)
4275
+ triggerAnimation();
4276
+ onClick?.(e);
4277
+ };
4278
+ return (jsx("div", { className: cn$9('inline-block', className), style: { width: size, height: size, ...style }, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, onClick: handleClick, ...props, children: jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", width: "100%", height: "100%", children: [jsx(motion.rect, { width: "16", height: "6", x: "2", y: "4", rx: "2", variants: pathVariants$9, animate: controls, initial: "normal" }), jsx(motion.rect, { width: "9", height: "6", x: "9", y: "14", rx: "2", variants: pathVariants$9, animate: controls, initial: "normal" }), jsx(motion.path, { d: "M22 22V2", variants: pathVariants$9, animate: controls, initial: "normal" })] }) }));
4279
+ });
4280
+ AlignEndVertical.displayName = 'AlignEndVertical';
4281
+
4282
+ function cn$8(...inputs) {
4283
+ return twMerge(clsx(inputs));
4284
+ }
4285
+ const pathVariants$8 = {
4286
+ normal: {
4287
+ pathLength: 1,
4288
+ pathOffset: 0,
4289
+ opacity: 1,
4290
+ transition: { duration: 0.3 },
4291
+ },
4292
+ animate: {
4293
+ pathLength: [0, 1],
4294
+ pathOffset: [1, 0],
4295
+ opacity: [0, 1],
4296
+ transition: {
4297
+ duration: 0.6,
4298
+ ease: 'easeInOut',
4299
+ },
4300
+ },
4301
+ };
4302
+ const AlignHorizontalDistributeCenter = forwardRef(({ size = 28, className, style, autoAnimateOnLoad = false, hoverable = true, loopOnHover = false, animateOnClick = false, onMouseEnter, onMouseLeave, onClick, ...props }, ref) => {
4303
+ const controls = useAnimation();
4304
+ const loopRef = useRef(loopOnHover);
4305
+ const isControlledRef = useRef(false);
4306
+ const triggerAnimation = useCallback(async () => {
4307
+ await controls.start('animate');
4308
+ await controls.start('normal');
4309
+ if (loopRef.current)
4310
+ triggerAnimation();
4311
+ }, [controls]);
4312
+ useEffect(() => {
4313
+ loopRef.current = loopOnHover;
4314
+ }, [loopOnHover]);
4315
+ useEffect(() => {
4316
+ if (autoAnimateOnLoad)
4317
+ triggerAnimation();
4318
+ }, [autoAnimateOnLoad, triggerAnimation]);
4319
+ useImperativeHandle(ref, () => {
4320
+ isControlledRef.current = true;
4321
+ return {
4322
+ startAnimation: () => controls.start('animate'),
4323
+ stopAnimation: () => controls.start('normal'),
4324
+ };
4325
+ });
4326
+ const handleMouseEnter = (e) => {
4327
+ if (!isControlledRef.current && hoverable)
4328
+ triggerAnimation();
4329
+ onMouseEnter?.(e);
4330
+ };
4331
+ const handleMouseLeave = (e) => {
4332
+ if (!isControlledRef.current && hoverable)
4333
+ controls.start('normal');
4334
+ onMouseLeave?.(e);
4335
+ };
4336
+ const handleClick = (e) => {
4337
+ if (animateOnClick)
4338
+ triggerAnimation();
4339
+ onClick?.(e);
4340
+ };
4341
+ return (jsx("div", { className: cn$8('inline-block', className), style: { width: size, height: size, ...style }, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, onClick: handleClick, ...props, children: jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", width: "100%", height: "100%", children: [jsx(motion.rect, { width: "6", height: "14", x: "4", y: "5", rx: "2", variants: pathVariants$8, animate: controls, initial: "normal" }), jsx(motion.rect, { width: "6", height: "10", x: "14", y: "7", rx: "2", variants: pathVariants$8, animate: controls, initial: "normal" }), jsx(motion.path, { d: "M17 22v-5", variants: pathVariants$8, animate: controls, initial: "normal" }), jsx(motion.path, { d: "M17 7V2", variants: pathVariants$8, animate: controls, initial: "normal" }), jsx(motion.path, { d: "M7 22v-3", variants: pathVariants$8, animate: controls, initial: "normal" }), jsx(motion.path, { d: "M7 5V2", variants: pathVariants$8, animate: controls, initial: "normal" })] }) }));
4342
+ });
4343
+ AlignHorizontalDistributeCenter.displayName = 'AlignHorizontalDistributeCenter';
4344
+
4345
+ function cn$7(...inputs) {
4346
+ return twMerge(clsx(inputs));
4347
+ }
4348
+ const pathVariants$7 = {
4349
+ normal: {
4350
+ opacity: 1,
4351
+ pathLength: 1,
4352
+ pathOffset: 0,
4353
+ transition: { duration: 0.4 },
4354
+ },
4355
+ animate: {
4356
+ opacity: [0, 1],
4357
+ pathLength: [0, 1],
4358
+ pathOffset: [1, 0],
4359
+ transition: {
4360
+ duration: 0.6,
4361
+ ease: 'linear',
4362
+ },
4363
+ },
4364
+ };
4365
+ const AlignHorizontalDistributeEnd = forwardRef(({ size = 28, className, style, autoAnimateOnLoad = false, hoverable = true, loopOnHover = false, animateOnClick = false, onMouseEnter, onMouseLeave, onClick, ...props }, ref) => {
4366
+ const controls = useAnimation();
4367
+ const loopRef = useRef(loopOnHover);
4368
+ const isControlledRef = useRef(false);
4369
+ const triggerAnimation = useCallback(async () => {
4370
+ await controls.start('animate');
4371
+ await controls.start('normal');
4372
+ if (loopRef.current)
4373
+ triggerAnimation();
4374
+ }, [controls]);
4375
+ useEffect(() => {
4376
+ loopRef.current = loopOnHover;
4377
+ }, [loopOnHover]);
4378
+ useEffect(() => {
4379
+ if (autoAnimateOnLoad)
4380
+ triggerAnimation();
4381
+ }, [autoAnimateOnLoad, triggerAnimation]);
4382
+ useImperativeHandle(ref, () => {
4383
+ isControlledRef.current = true;
4384
+ return {
4385
+ startAnimation: () => controls.start('animate'),
4386
+ stopAnimation: () => controls.start('normal'),
4387
+ };
4388
+ });
4389
+ const handleMouseEnter = (e) => {
4390
+ if (!isControlledRef.current && hoverable)
4391
+ triggerAnimation();
4392
+ onMouseEnter?.(e);
4393
+ };
4394
+ const handleMouseLeave = (e) => {
4395
+ if (!isControlledRef.current && hoverable)
4396
+ controls.start('normal');
4397
+ onMouseLeave?.(e);
4398
+ };
4399
+ const handleClick = (e) => {
4400
+ if (animateOnClick)
4401
+ triggerAnimation();
4402
+ onClick?.(e);
4403
+ };
4404
+ return (jsx("div", { className: cn$7('inline-block', className), style: { width: size, height: size, ...style }, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, onClick: handleClick, ...props, children: jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "100%", height: "100%", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [jsx(motion.rect, { width: "6", height: "14", x: "4", y: "5", rx: "2", variants: pathVariants$7, initial: "normal", animate: controls }), jsx(motion.rect, { width: "6", height: "10", x: "14", y: "7", rx: "2", variants: pathVariants$7, initial: "normal", animate: controls }), jsx(motion.path, { d: "M10 2v20", variants: pathVariants$7, initial: "normal", animate: controls }), jsx(motion.path, { d: "M20 2v20", variants: pathVariants$7, initial: "normal", animate: controls })] }) }));
4405
+ });
4406
+ AlignHorizontalDistributeEnd.displayName = 'AlignHorizontalDistributeEnd';
4407
+
4408
+ function cn$6(...inputs) {
4409
+ return twMerge(clsx(inputs));
4410
+ }
4411
+ const pathVariants$6 = {
4412
+ normal: {
4413
+ opacity: 1,
4414
+ pathLength: 1,
4415
+ pathOffset: 0,
4416
+ transition: { duration: 0.4 },
4417
+ },
4418
+ animate: {
4419
+ opacity: [0, 1],
4420
+ pathLength: [0, 1],
4421
+ pathOffset: [1, 0],
4422
+ transition: {
4423
+ duration: 0.6,
4424
+ ease: 'linear',
4425
+ },
4426
+ },
4427
+ };
4428
+ const AlignHorizontalDistributeStart = forwardRef(({ size = 28, className, style, autoAnimateOnLoad = false, hoverable = true, loopOnHover = false, animateOnClick = false, onMouseEnter, onMouseLeave, onClick, ...props }, ref) => {
4429
+ const controls = useAnimation();
4430
+ const loopRef = useRef(loopOnHover);
4431
+ const isControlledRef = useRef(false);
4432
+ const triggerAnimation = useCallback(async () => {
4433
+ await controls.start('animate');
4434
+ await controls.start('normal');
4435
+ if (loopRef.current)
4436
+ triggerAnimation();
4437
+ }, [controls]);
4438
+ useEffect(() => {
4439
+ loopRef.current = loopOnHover;
4440
+ }, [loopOnHover]);
4441
+ useEffect(() => {
4442
+ if (autoAnimateOnLoad)
4443
+ triggerAnimation();
4444
+ }, [autoAnimateOnLoad, triggerAnimation]);
4445
+ useImperativeHandle(ref, () => {
4446
+ isControlledRef.current = true;
4447
+ return {
4448
+ startAnimation: () => controls.start('animate'),
4449
+ stopAnimation: () => controls.start('normal'),
4450
+ };
4451
+ });
4452
+ const handleMouseEnter = (e) => {
4453
+ if (!isControlledRef.current && hoverable)
4454
+ triggerAnimation();
4455
+ onMouseEnter?.(e);
4456
+ };
4457
+ const handleMouseLeave = (e) => {
4458
+ if (!isControlledRef.current && hoverable)
4459
+ controls.start('normal');
4460
+ onMouseLeave?.(e);
4461
+ };
4462
+ const handleClick = (e) => {
4463
+ if (animateOnClick)
4464
+ triggerAnimation();
4465
+ onClick?.(e);
4466
+ };
4467
+ return (jsx("div", { className: cn$6('inline-block', className), style: { width: size, height: size, ...style }, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, onClick: handleClick, ...props, children: jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "100%", height: "100%", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [jsx(motion.rect, { width: "6", height: "14", x: "4", y: "5", rx: "2", variants: pathVariants$6, initial: "normal", animate: controls }), jsx(motion.rect, { width: "6", height: "10", x: "14", y: "7", rx: "2", variants: pathVariants$6, initial: "normal", animate: controls }), jsx(motion.path, { d: "M4 2v20", variants: pathVariants$6, initial: "normal", animate: controls }), jsx(motion.path, { d: "M14 2v20", variants: pathVariants$6, initial: "normal", animate: controls })] }) }));
4468
+ });
4469
+ AlignHorizontalDistributeStart.displayName = 'AlignHorizontalDistributeStart';
4470
+
4471
+ function cn$5(...inputs) {
4472
+ return twMerge(clsx(inputs));
4473
+ }
4474
+ const pathVariants$5 = {
4475
+ normal: {
4476
+ opacity: 1,
4477
+ pathLength: 1,
4478
+ pathOffset: 0,
4479
+ transition: { duration: 0.4 },
4480
+ },
4481
+ animate: {
4482
+ opacity: [0, 1],
4483
+ pathLength: [0, 1],
4484
+ pathOffset: [1, 0],
4485
+ transition: {
4486
+ duration: 0.6,
4487
+ ease: 'linear',
4488
+ },
4489
+ },
4490
+ };
4491
+ const AlignHorizontalJustifyCenter = forwardRef(({ size = 28, className, style, autoAnimateOnLoad = false, hoverable = true, loopOnHover = false, animateOnClick = false, onMouseEnter, onMouseLeave, onClick, ...props }, ref) => {
4492
+ const controls = useAnimation();
4493
+ const loopRef = useRef(loopOnHover);
4494
+ const isControlledRef = useRef(false);
4495
+ const triggerAnimation = useCallback(async () => {
4496
+ await controls.start('animate');
4497
+ await controls.start('normal');
4498
+ if (loopRef.current)
4499
+ triggerAnimation();
4500
+ }, [controls]);
4501
+ useEffect(() => {
4502
+ loopRef.current = loopOnHover;
4503
+ }, [loopOnHover]);
4504
+ useEffect(() => {
4505
+ if (autoAnimateOnLoad)
4506
+ triggerAnimation();
4507
+ }, [autoAnimateOnLoad, triggerAnimation]);
4508
+ useImperativeHandle(ref, () => {
4509
+ isControlledRef.current = true;
4510
+ return {
4511
+ startAnimation: () => controls.start('animate'),
4512
+ stopAnimation: () => controls.start('normal'),
4513
+ };
4514
+ });
4515
+ const handleMouseEnter = (e) => {
4516
+ if (!isControlledRef.current && hoverable)
4517
+ triggerAnimation();
4518
+ onMouseEnter?.(e);
4519
+ };
4520
+ const handleMouseLeave = (e) => {
4521
+ if (!isControlledRef.current && hoverable)
4522
+ controls.start('normal');
4523
+ onMouseLeave?.(e);
4524
+ };
4525
+ const handleClick = (e) => {
4526
+ if (animateOnClick)
4527
+ triggerAnimation();
4528
+ onClick?.(e);
4529
+ };
4530
+ return (jsx("div", { className: cn$5('inline-block', className), style: { width: size, height: size, ...style }, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, onClick: handleClick, ...props, children: jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "100%", height: "100%", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [jsx(motion.rect, { width: "6", height: "14", x: "2", y: "5", rx: "2", variants: pathVariants$5, initial: "normal", animate: controls }), jsx(motion.rect, { width: "6", height: "10", x: "16", y: "7", rx: "2", variants: pathVariants$5, initial: "normal", animate: controls }), jsx(motion.path, { d: "M12 2v20", variants: pathVariants$5, initial: "normal", animate: controls })] }) }));
4531
+ });
4532
+ AlignHorizontalJustifyCenter.displayName = 'AlignHorizontalJustifyCenter';
4533
+
4534
+ function cn$4(...inputs) {
4535
+ return twMerge(clsx(inputs));
4536
+ }
4537
+ const pathVariants$4 = {
4538
+ normal: {
4539
+ opacity: 1,
4540
+ pathLength: 1,
4541
+ pathOffset: 0,
4542
+ transition: { duration: 0.4 },
4543
+ },
4544
+ animate: {
4545
+ opacity: [0, 1],
4546
+ pathLength: [0, 1],
4547
+ pathOffset: [1, 0],
4548
+ transition: {
4549
+ duration: 0.6,
4550
+ ease: 'linear',
4551
+ },
4552
+ },
4553
+ };
4554
+ const AlignHorizontalJustifyEnd = forwardRef(({ size = 28, className, style, autoAnimateOnLoad = false, hoverable = true, loopOnHover = false, animateOnClick = false, onMouseEnter, onMouseLeave, onClick, ...props }, ref) => {
4555
+ const controls = useAnimation();
4556
+ const loopRef = useRef(loopOnHover);
4557
+ const isControlledRef = useRef(false);
4558
+ const triggerAnimation = useCallback(async () => {
4559
+ await controls.start('animate');
4560
+ await controls.start('normal');
4561
+ if (loopRef.current)
4562
+ triggerAnimation();
4563
+ }, [controls]);
4564
+ useEffect(() => {
4565
+ loopRef.current = loopOnHover;
4566
+ }, [loopOnHover]);
4567
+ useEffect(() => {
4568
+ if (autoAnimateOnLoad)
4569
+ triggerAnimation();
4570
+ }, [autoAnimateOnLoad, triggerAnimation]);
4571
+ useImperativeHandle(ref, () => {
4572
+ isControlledRef.current = true;
4573
+ return {
4574
+ startAnimation: () => controls.start('animate'),
4575
+ stopAnimation: () => controls.start('normal'),
4576
+ };
4577
+ });
4578
+ const handleMouseEnter = (e) => {
4579
+ if (!isControlledRef.current && hoverable)
4580
+ triggerAnimation();
4581
+ onMouseEnter?.(e);
4582
+ };
4583
+ const handleMouseLeave = (e) => {
4584
+ if (!isControlledRef.current && hoverable)
4585
+ controls.start('normal');
4586
+ onMouseLeave?.(e);
4587
+ };
4588
+ const handleClick = (e) => {
4589
+ if (animateOnClick)
4590
+ triggerAnimation();
4591
+ onClick?.(e);
4592
+ };
4593
+ return (jsx("div", { className: cn$4('inline-block', className), style: { width: size, height: size, ...style }, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, onClick: handleClick, ...props, children: jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "100%", height: "100%", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [jsx(motion.rect, { width: "6", height: "14", x: "2", y: "5", rx: "2", variants: pathVariants$4, initial: "normal", animate: controls }), jsx(motion.rect, { width: "6", height: "10", x: "12", y: "7", rx: "2", variants: pathVariants$4, initial: "normal", animate: controls }), jsx(motion.path, { d: "M22 2v20", variants: pathVariants$4, initial: "normal", animate: controls })] }) }));
4594
+ });
4595
+ AlignHorizontalJustifyEnd.displayName = 'AlignHorizontalJustifyEnd';
4596
+
4597
+ function cn$3(...inputs) {
4598
+ return twMerge(clsx(inputs));
4599
+ }
4600
+ const pathVariants$3 = {
4601
+ normal: {
4602
+ opacity: 1,
4603
+ pathLength: 1,
4604
+ pathOffset: 0,
4605
+ transition: { duration: 0.4 },
4606
+ },
4607
+ animate: {
4608
+ opacity: [0, 1],
4609
+ pathLength: [0, 1],
4610
+ pathOffset: [1, 0],
4611
+ transition: {
4612
+ duration: 0.6,
4613
+ ease: 'linear',
4614
+ },
4615
+ },
4616
+ };
4617
+ const AlignHorizontalJustifyStart = forwardRef(({ size = 28, className, style, autoAnimateOnLoad = false, hoverable = true, loopOnHover = false, animateOnClick = false, onMouseEnter, onMouseLeave, onClick, ...props }, ref) => {
4618
+ const controls = useAnimation();
4619
+ const loopRef = useRef(loopOnHover);
4620
+ const isControlledRef = useRef(false);
4621
+ const triggerAnimation = useCallback(async () => {
4622
+ await controls.start('animate');
4623
+ await controls.start('normal');
4624
+ if (loopRef.current)
4625
+ triggerAnimation();
4626
+ }, [controls]);
4627
+ useEffect(() => {
4628
+ loopRef.current = loopOnHover;
4629
+ }, [loopOnHover]);
4630
+ useEffect(() => {
4631
+ if (autoAnimateOnLoad)
4632
+ triggerAnimation();
4633
+ }, [autoAnimateOnLoad, triggerAnimation]);
4634
+ useImperativeHandle(ref, () => {
4635
+ isControlledRef.current = true;
4636
+ return {
4637
+ startAnimation: () => controls.start('animate'),
4638
+ stopAnimation: () => controls.start('normal'),
4639
+ };
4640
+ });
4641
+ const handleMouseEnter = (e) => {
4642
+ if (!isControlledRef.current && hoverable)
4643
+ triggerAnimation();
4644
+ onMouseEnter?.(e);
4645
+ };
4646
+ const handleMouseLeave = (e) => {
4647
+ if (!isControlledRef.current && hoverable)
4648
+ controls.start('normal');
4649
+ onMouseLeave?.(e);
4650
+ };
4651
+ const handleClick = (e) => {
4652
+ if (animateOnClick)
4653
+ triggerAnimation();
4654
+ onClick?.(e);
4655
+ };
4656
+ return (jsx("div", { className: cn$3('inline-block', className), style: { width: size, height: size, ...style }, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, onClick: handleClick, ...props, children: jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "100%", height: "100%", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [jsx(motion.rect, { width: "6", height: "14", x: "6", y: "5", rx: "2", variants: pathVariants$3, initial: "normal", animate: controls }), jsx(motion.rect, { width: "6", height: "10", x: "16", y: "7", rx: "2", variants: pathVariants$3, initial: "normal", animate: controls }), jsx(motion.path, { d: "M2 2v20", variants: pathVariants$3, initial: "normal", animate: controls })] }) }));
4657
+ });
4658
+ AlignHorizontalJustifyStart.displayName = 'AlignHorizontalJustifyStart';
4659
+
4660
+ function cn$2(...inputs) {
4661
+ return twMerge(clsx(inputs));
4662
+ }
4663
+ const pathVariants$2 = {
4664
+ normal: {
4665
+ opacity: 1,
4666
+ pathLength: 1,
4667
+ pathOffset: 0,
4668
+ transition: { duration: 0.4 },
4669
+ },
4670
+ animate: {
4671
+ opacity: [0, 1],
4672
+ pathLength: [0, 1],
4673
+ pathOffset: [1, 0],
4674
+ transition: {
4675
+ duration: 0.6,
4676
+ ease: 'linear',
4677
+ },
4678
+ },
4679
+ };
4680
+ const AlignHorizontalSpaceAround = forwardRef(({ size = 28, className, style, autoAnimateOnLoad = false, hoverable = true, loopOnHover = false, animateOnClick = false, onMouseEnter, onMouseLeave, onClick, ...props }, ref) => {
4681
+ const controls = useAnimation();
4682
+ const loopRef = useRef(loopOnHover);
4683
+ const isControlledRef = useRef(false);
4684
+ const triggerAnimation = useCallback(async () => {
4685
+ await controls.start('animate');
4686
+ await controls.start('normal');
4687
+ if (loopRef.current)
4688
+ triggerAnimation();
4689
+ }, [controls]);
4690
+ useEffect(() => {
4691
+ loopRef.current = loopOnHover;
4692
+ }, [loopOnHover]);
4693
+ useEffect(() => {
4694
+ if (autoAnimateOnLoad)
4695
+ triggerAnimation();
4696
+ }, [autoAnimateOnLoad, triggerAnimation]);
4697
+ useImperativeHandle(ref, () => {
4698
+ isControlledRef.current = true;
4699
+ return {
4700
+ startAnimation: () => controls.start('animate'),
4701
+ stopAnimation: () => controls.start('normal'),
4702
+ };
4703
+ });
4704
+ const handleMouseEnter = (e) => {
4705
+ if (!isControlledRef.current && hoverable)
4706
+ triggerAnimation();
4707
+ onMouseEnter?.(e);
4708
+ };
4709
+ const handleMouseLeave = (e) => {
4710
+ if (!isControlledRef.current && hoverable)
4711
+ controls.start('normal');
4712
+ onMouseLeave?.(e);
4713
+ };
4714
+ const handleClick = (e) => {
4715
+ if (animateOnClick)
4716
+ triggerAnimation();
4717
+ onClick?.(e);
4718
+ };
4719
+ return (jsx("div", { className: cn$2('inline-block', className), style: { width: size, height: size, ...style }, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, onClick: handleClick, ...props, children: jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "100%", height: "100%", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [jsx(motion.rect, { width: "6", height: "10", x: "9", y: "7", rx: "2", variants: pathVariants$2, initial: "normal", animate: controls }), jsx(motion.path, { d: "M4 22V2", variants: pathVariants$2, initial: "normal", animate: controls }), jsx(motion.path, { d: "M20 22V2", variants: pathVariants$2, initial: "normal", animate: controls })] }) }));
4720
+ });
4721
+ AlignHorizontalSpaceAround.displayName = 'AlignHorizontalSpaceAround';
4722
+
4723
+ function cn$1(...inputs) {
4724
+ return twMerge(clsx(inputs));
4725
+ }
4726
+ const pathVariants$1 = {
4727
+ normal: {
4728
+ opacity: 1,
4729
+ pathLength: 1,
4730
+ pathOffset: 0,
4731
+ transition: { duration: 0.4 },
4732
+ },
4733
+ animate: {
4734
+ opacity: [0, 1],
4735
+ pathLength: [0, 1],
4736
+ pathOffset: [1, 0],
4737
+ transition: {
4738
+ duration: 0.6,
4739
+ ease: 'linear',
4740
+ },
4741
+ },
4742
+ };
4743
+ const AlignHorizontalSpaceBetween = forwardRef(({ size = 28, className, style, autoAnimateOnLoad = false, hoverable = true, loopOnHover = false, animateOnClick = false, onMouseEnter, onMouseLeave, onClick, ...props }, ref) => {
4744
+ const controls = useAnimation();
4745
+ const loopRef = useRef(loopOnHover);
4746
+ const isControlledRef = useRef(false);
4747
+ const triggerAnimation = useCallback(async () => {
4748
+ await controls.start('animate');
4749
+ await controls.start('normal');
4750
+ if (loopRef.current)
4751
+ triggerAnimation();
4752
+ }, [controls]);
4753
+ useEffect(() => {
4754
+ loopRef.current = loopOnHover;
4755
+ }, [loopOnHover]);
4756
+ useEffect(() => {
4757
+ if (autoAnimateOnLoad)
4758
+ triggerAnimation();
4759
+ }, [autoAnimateOnLoad, triggerAnimation]);
4760
+ useImperativeHandle(ref, () => {
4761
+ isControlledRef.current = true;
4762
+ return {
4763
+ startAnimation: () => controls.start('animate'),
4764
+ stopAnimation: () => controls.start('normal'),
4765
+ };
4766
+ });
4767
+ const handleMouseEnter = (e) => {
4768
+ if (!isControlledRef.current && hoverable)
4769
+ triggerAnimation();
4770
+ onMouseEnter?.(e);
4771
+ };
4772
+ const handleMouseLeave = (e) => {
4773
+ if (!isControlledRef.current && hoverable)
4774
+ controls.start('normal');
4775
+ onMouseLeave?.(e);
4776
+ };
4777
+ const handleClick = (e) => {
4778
+ if (animateOnClick)
4779
+ triggerAnimation();
4780
+ onClick?.(e);
4781
+ };
4782
+ return (jsx("div", { className: cn$1('inline-block', className), style: { width: size, height: size, ...style }, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, onClick: handleClick, ...props, children: jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "100%", height: "100%", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [jsx(motion.rect, { width: "6", height: "14", x: "3", y: "5", rx: "2", variants: pathVariants$1, initial: "normal", animate: controls }), jsx(motion.rect, { width: "6", height: "10", x: "15", y: "7", rx: "2", variants: pathVariants$1, initial: "normal", animate: controls }), jsx(motion.path, { d: "M3 2v20", variants: pathVariants$1, initial: "normal", animate: controls }), jsx(motion.path, { d: "M21 2v20", variants: pathVariants$1, initial: "normal", animate: controls })] }) }));
4783
+ });
4784
+ AlignHorizontalSpaceBetween.displayName = 'AlignHorizontalSpaceBetween';
4785
+
4786
+ function cn(...inputs) {
4787
+ return twMerge(clsx(inputs));
4788
+ }
4789
+ const pathVariants = {
4790
+ normal: {
4791
+ opacity: 1,
4792
+ pathLength: 1,
4793
+ pathOffset: 0,
4794
+ transition: { duration: 0.4 },
4795
+ },
4796
+ animate: {
4797
+ opacity: [0, 1],
4798
+ pathLength: [0, 1],
4799
+ pathOffset: [1, 0],
4800
+ transition: {
4801
+ duration: 0.6,
4802
+ ease: 'linear',
4803
+ },
4804
+ },
4805
+ };
4806
+ const AlignJustify = forwardRef(({ size = 28, className, style, autoAnimateOnLoad = false, hoverable = true, loopOnHover = false, animateOnClick = false, onMouseEnter, onMouseLeave, onClick, ...props }, ref) => {
4807
+ const controls = useAnimation();
4808
+ const loopRef = useRef(loopOnHover);
4809
+ const isControlledRef = useRef(false);
4810
+ const triggerAnimation = useCallback(async () => {
4811
+ await controls.start('animate');
4812
+ await controls.start('normal');
4813
+ if (loopRef.current)
4814
+ triggerAnimation();
4815
+ }, [controls]);
4816
+ useEffect(() => {
4817
+ loopRef.current = loopOnHover;
4818
+ }, [loopOnHover]);
4819
+ useEffect(() => {
4820
+ if (autoAnimateOnLoad)
4821
+ triggerAnimation();
4822
+ }, [autoAnimateOnLoad, triggerAnimation]);
4823
+ useImperativeHandle(ref, () => {
4824
+ isControlledRef.current = true;
4825
+ return {
4826
+ startAnimation: () => controls.start('animate'),
4827
+ stopAnimation: () => controls.start('normal'),
4828
+ };
4829
+ });
4830
+ const handleMouseEnter = (e) => {
4831
+ if (!isControlledRef.current && hoverable)
4832
+ triggerAnimation();
4833
+ onMouseEnter?.(e);
4834
+ };
4835
+ const handleMouseLeave = (e) => {
4836
+ if (!isControlledRef.current && hoverable)
4837
+ controls.start('normal');
4838
+ onMouseLeave?.(e);
4839
+ };
4840
+ const handleClick = (e) => {
4841
+ if (animateOnClick)
4842
+ triggerAnimation();
4843
+ onClick?.(e);
4844
+ };
4845
+ return (jsx("div", { className: cn('inline-block', className), style: { width: size, height: size, ...style }, onMouseEnter: handleMouseEnter, onMouseLeave: handleMouseLeave, onClick: handleClick, ...props, children: jsxs("svg", { xmlns: "http://www.w3.org/2000/svg", width: "100%", height: "100%", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [jsx(motion.path, { d: "M3 12h18", variants: pathVariants, initial: "normal", animate: controls }), jsx(motion.path, { d: "M3 18h18", variants: pathVariants, initial: "normal", animate: controls }), jsx(motion.path, { d: "M3 6h18", variants: pathVariants, initial: "normal", animate: controls })] }) }));
4846
+ });
4847
+ AlignJustify.displayName = 'AlignJustify';
4848
+
4849
+ export { AccessibilityActivity, Activity, AirVent, Airplay, AlarmClock, AlarmClockCheck, AlarmClockMinus, AlarmClockPlus, Album, AlignCenter, AlignCenterHorizontal, AlignCenterVertical, AlignEndHorizontal, AlignEndVertical, AlignHorizontalDistributeCenter, AlignHorizontalDistributeEnd, AlignHorizontalDistributeStart, AlignHorizontalJustifyCenter, AlignHorizontalJustifyEnd, AlignHorizontalJustifyStart, AlignHorizontalSpaceAround, AlignHorizontalSpaceBetween, AlignJustify, ArrowDown, ArrowUp, SquareActivity };
3437
4850
  //# sourceMappingURL=index.js.map