aliveicon 1.0.23 → 1.0.25

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.
Files changed (42) hide show
  1. package/dist/cjs/index.js +2734 -49
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/esm/index.js +2654 -24
  4. package/dist/esm/index.js.map +1 -1
  5. package/dist/types/icons/Airplay.d.ts +12 -0
  6. package/dist/types/icons/Alarm-Clock-Check.d.ts +14 -0
  7. package/dist/types/icons/Alarm-Clock-Minus.d.ts +14 -0
  8. package/dist/types/icons/Alarm-Clock-Plus.d.ts +14 -0
  9. package/dist/types/icons/AlarmClock.d.ts +14 -0
  10. package/dist/types/icons/Album.d.ts +12 -0
  11. package/dist/types/icons/Align-Center-Horizontal.d.ts +15 -0
  12. package/dist/types/icons/Align-Center-Vertical.d.ts +15 -0
  13. package/dist/types/icons/Align-Center.d.ts +16 -0
  14. package/dist/types/icons/Align-End-Horizontal.d.ts +15 -0
  15. package/dist/types/icons/Align-End-Vertical.d.ts +15 -0
  16. package/dist/types/icons/Align-Horizontal-Distributed-Center.d.ts +15 -0
  17. package/dist/types/icons/Align-Horizontal-Distributed-End.d.ts +15 -0
  18. package/dist/types/icons/Align-Horizontal-Distributed-Start.d.ts +15 -0
  19. package/dist/types/icons/Align-Horizontal-Justify-Center.d.ts +15 -0
  20. package/dist/types/icons/Align-Horizontal-Justify-End.d.ts +15 -0
  21. package/dist/types/icons/Align-Horizontal-Justify-Start.d.ts +15 -0
  22. package/dist/types/icons/Align-Horizontal-Space-Around.d.ts +15 -0
  23. package/dist/types/icons/Align-Horizontal-Space-Between.d.ts +15 -0
  24. package/dist/types/icons/Align-Justify.d.ts +15 -0
  25. package/dist/types/icons/Align-Left.d.ts +15 -0
  26. package/dist/types/icons/Align-Right.d.ts +15 -0
  27. package/dist/types/icons/Align-Start-Horizontal.d.ts +15 -0
  28. package/dist/types/icons/Align-Start-Vertical.d.ts +15 -0
  29. package/dist/types/icons/Align-Vertical-Distribute-Center.d.ts +15 -0
  30. package/dist/types/icons/Align-Vertical-Distribute-End.d.ts +15 -0
  31. package/dist/types/icons/Align-Vertical-Distribute-Start.d.ts +15 -0
  32. package/dist/types/icons/Align-Vertical-Justify-Center.d.ts +15 -0
  33. package/dist/types/icons/Align-Vertical-Justify-End.d.ts +15 -0
  34. package/dist/types/icons/Align-Vertical-Justify-Start.d.ts +15 -0
  35. package/dist/types/icons/Align-Vertical-Space-Around.d.ts +15 -0
  36. package/dist/types/icons/Align-Vertical-Space-Between.d.ts +15 -0
  37. package/dist/types/icons/Ambulance.d.ts +15 -0
  38. package/dist/types/icons/Ampersand.d.ts +16 -0
  39. package/dist/types/icons/Ampersands.d.ts +15 -0
  40. package/dist/types/icons/Apple.d.ts +15 -0
  41. package/dist/types/index.d.ts +36 -0
  42. package/package.json +1 -1
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$F(...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$u = {
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$F('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$u, animate: controls, initial: "normal", style: { strokeDasharray: 1 } })] }) }));
3036
3037
  }
3037
3038
 
3038
- function cn$4(...inputs) {
3039
+ function cn$E(...inputs) {
3039
3040
  return twMerge(clsx(inputs));
3040
3041
  }
3041
3042
  const bounceVariant$1 = {
@@ -3056,7 +3057,7 @@ const bounceVariant$1 = {
3056
3057
  },
3057
3058
  },
3058
3059
  };
3059
- const lineVariants$1 = {
3060
+ const lineVariants$4 = {
3060
3061
  normal: {
3061
3062
  opacity: 1,
3062
3063
  pathLength: 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$E('inline-block', className), style: {
3132
3133
  width: size,
3133
3134
  height: size,
3134
3135
  ...style,
3135
- }, 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
+ }, 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$4, initial: isBounce ? 'hidden' : 'normal', animate: isBounce ? 'visible' : controls, custom: i }, i))) }) }));
3136
3137
  }
3137
3138
 
3138
- function cn$3(...inputs) {
3139
+ function cn$D(...inputs) {
3139
3140
  return twMerge(clsx(inputs));
3140
3141
  }
3141
3142
  const bounceVariant = {
@@ -3156,7 +3157,7 @@ const bounceVariant = {
3156
3157
  },
3157
3158
  },
3158
3159
  };
3159
- const lineVariants = {
3160
+ const lineVariants$3 = {
3160
3161
  normal: {
3161
3162
  opacity: 1,
3162
3163
  pathLength: 1,
@@ -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$D('inline-block', className), style: {
3232
3233
  width: size,
3233
3234
  height: size,
3234
3235
  ...style,
3235
- }, 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
+ }, 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$3, initial: isBounce ? 'hidden' : 'normal', animate: isBounce ? 'visible' : controls, custom: i }, i))) }) }));
3236
3237
  }
3237
3238
 
3238
- function cn$2(...inputs) {
3239
+ function cn$C(...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$t = {
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$C('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$t, animate: controls, initial: "normal", style: { strokeDasharray: 1 } }), jsx(motion.path, { d: "m5 8 3-3 5.5 3-2.36 3.5", variants: pathVariants$t, animate: controls, initial: "normal", style: { strokeDasharray: 1 } }), jsx(motion.path, { d: "M4.24 14.5a5 5 0 0 0 6.88 6", variants: pathVariants$t, animate: controls, initial: "normal", style: { strokeDasharray: 1 } }), jsx(motion.path, { d: "M13.76 17.5a5 5 0 0 0-6.88-6", variants: pathVariants$t, animate: controls, initial: "normal", style: { strokeDasharray: 1 } })] }) }));
3315
3316
  }
3316
3317
 
3317
- function cn$1(...inputs) {
3318
+ function cn$B(...inputs) {
3318
3319
  return twMerge(clsx(inputs));
3319
3320
  }
3320
- const pathVariants = {
3321
+ const pathVariants$s = {
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$B('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$s, animate: controls, initial: "normal", style: { strokeDasharray: 1 } }) }) }));
3379
3380
  }
3380
3381
 
3381
- function cn(...inputs) {
3382
+ function cn$A(...inputs) {
3382
3383
  return twMerge(clsx(inputs));
3383
3384
  }
3384
3385
  const windVariants = {
@@ -3429,9 +3430,2638 @@ 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$A(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$z(...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$z(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$y(...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$r = {
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$y('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$r, animate: controls, initial: "normal", style: { strokeDasharray: 1 } })] }) }));
3586
+ };
3587
+
3588
+ function cn$x(...inputs) {
3589
+ return twMerge(clsx(inputs));
3590
+ }
3591
+ const pathVariants$q = {
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$x(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$q, initial: "normal", animate: controls, d: "M18 20.5L19.5 22" }), jsx(motion.path, { variants: pathVariants$q, initial: "normal", animate: controls, d: "M6 20.5L4.5 22" }), jsx(motion.path, { variants: pathVariants$q, 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$q, 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$w(...inputs) {
3685
+ return twMerge(clsx(inputs));
3686
+ }
3687
+ const pathVariants$p = {
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$w(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$p, 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$p, initial: "normal", animate: controls, d: "M6.38 18.7 4 21" }), jsx(motion.path, { variants: pathVariants$p, initial: "normal", animate: controls, d: "M17.64 18.67 20 21" }), jsx(motion.path, { variants: pathVariants$p, initial: "normal", animate: controls, d: "m9 13 2 2 4-4" })] }) }));
3775
+ });
3776
+ AlarmClockCheck.displayName = 'AlarmClockCheck';
3777
+
3778
+ function cn$v(...inputs) {
3779
+ return twMerge(clsx(inputs));
3780
+ }
3781
+ const pathVariants$o = {
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$v(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$o, 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$o, initial: "normal", animate: controls, d: "M6.38 18.7 4 21" }), jsx(motion.path, { variants: pathVariants$o, initial: "normal", animate: controls, d: "M17.64 18.67 20 21" }), jsx(motion.line, { variants: pathVariants$o, initial: "normal", animate: controls, x1: "9", y1: "13", x2: "15", y2: "13" })] }) }));
3869
+ });
3870
+ AlarmClockMinus.displayName = 'AlarmClockMinus';
3871
+
3872
+ function cn$u(...inputs) {
3873
+ return twMerge(clsx(inputs));
3874
+ }
3875
+ const pathVariants$n = {
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$u(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$n, 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$n, initial: "normal", animate: controls, d: "M6.38 18.7 4 21" }), jsx(motion.path, { variants: pathVariants$n, initial: "normal", animate: controls, d: "M17.64 18.67 20 21" }), jsx(motion.line, { variants: pathVariants$n, initial: "normal", animate: controls, x1: "9", y1: "13", x2: "15", y2: "13" }), jsx(motion.line, { variants: pathVariants$n, initial: "normal", animate: controls, y1: "10", x1: "12", y2: "16", x2: "12" })] }) }));
3963
+ });
3964
+ AlarmClockPlus.displayName = 'AlarmClockPlus';
3965
+
3966
+ function cn$t(...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$t("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$s(...inputs) {
4029
+ return twMerge(clsx(inputs));
4030
+ }
4031
+ const pathVariants$m = {
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$s('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$m, 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$m, animate: controls, initial: "normal" }), jsx(motion.path, { d: "M10 8V4a2 2 0 0 0-2-2H6a2 2 0 0 0-2 2v4", variants: pathVariants$m, 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$m, animate: controls, initial: "normal" }), jsx(motion.path, { d: "M14 8V7c0-1.1.9-2 2-2h2a2 2 0 0 1 2 2v1", variants: pathVariants$m, animate: controls, initial: "normal" })] }) }));
4090
+ });
4091
+ AlignCenterHorizontal.displayName = 'AlignCenterHorizontal';
4092
+
4093
+ function cn$r(...inputs) {
4094
+ return twMerge(clsx(inputs));
4095
+ }
4096
+ const pathVariants$l = {
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$r('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$l, animate: controls, initial: "normal" }), jsx(motion.path, { d: "M8 10H4a2 2 0 0 1-2-2V6c0-1.1.9-2 2-2h4", variants: pathVariants$l, 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$l, 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$l, 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$l, animate: controls, initial: "normal" })] }) }));
4153
+ });
4154
+ AlignCenterVertical.displayName = 'AlignCenterVertical';
4155
+
4156
+ function cn$q(...inputs) {
4157
+ return twMerge(clsx(inputs));
4158
+ }
4159
+ const pathVariants$k = {
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$q('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$k, animate: controls, initial: "normal" }), jsx(motion.rect, { width: "6", height: "9", x: "14", y: "9", rx: "2", variants: pathVariants$k, animate: controls, initial: "normal" }), jsx(motion.path, { d: "M22 22H2", variants: pathVariants$k, animate: controls, initial: "normal" })] }) }));
4216
+ });
4217
+ AlignEndHorizontal.displayName = 'AlignEndHorizontal';
4218
+
4219
+ function cn$p(...inputs) {
4220
+ return twMerge(clsx(inputs));
4221
+ }
4222
+ const pathVariants$j = {
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$p('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$j, animate: controls, initial: "normal" }), jsx(motion.rect, { width: "9", height: "6", x: "9", y: "14", rx: "2", variants: pathVariants$j, animate: controls, initial: "normal" }), jsx(motion.path, { d: "M22 22V2", variants: pathVariants$j, animate: controls, initial: "normal" })] }) }));
4279
+ });
4280
+ AlignEndVertical.displayName = 'AlignEndVertical';
4281
+
4282
+ function cn$o(...inputs) {
4283
+ return twMerge(clsx(inputs));
4284
+ }
4285
+ const pathVariants$i = {
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$o('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$i, animate: controls, initial: "normal" }), jsx(motion.rect, { width: "6", height: "10", x: "14", y: "7", rx: "2", variants: pathVariants$i, animate: controls, initial: "normal" }), jsx(motion.path, { d: "M17 22v-5", variants: pathVariants$i, animate: controls, initial: "normal" }), jsx(motion.path, { d: "M17 7V2", variants: pathVariants$i, animate: controls, initial: "normal" }), jsx(motion.path, { d: "M7 22v-3", variants: pathVariants$i, animate: controls, initial: "normal" }), jsx(motion.path, { d: "M7 5V2", variants: pathVariants$i, animate: controls, initial: "normal" })] }) }));
4342
+ });
4343
+ AlignHorizontalDistributeCenter.displayName = 'AlignHorizontalDistributeCenter';
4344
+
4345
+ function cn$n(...inputs) {
4346
+ return twMerge(clsx(inputs));
4347
+ }
4348
+ const pathVariants$h = {
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$n('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$h, initial: "normal", animate: controls }), jsx(motion.rect, { width: "6", height: "10", x: "14", y: "7", rx: "2", variants: pathVariants$h, initial: "normal", animate: controls }), jsx(motion.path, { d: "M10 2v20", variants: pathVariants$h, initial: "normal", animate: controls }), jsx(motion.path, { d: "M20 2v20", variants: pathVariants$h, initial: "normal", animate: controls })] }) }));
4405
+ });
4406
+ AlignHorizontalDistributeEnd.displayName = 'AlignHorizontalDistributeEnd';
4407
+
4408
+ function cn$m(...inputs) {
4409
+ return twMerge(clsx(inputs));
4410
+ }
4411
+ const pathVariants$g = {
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$m('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$g, initial: "normal", animate: controls }), jsx(motion.rect, { width: "6", height: "10", x: "14", y: "7", rx: "2", variants: pathVariants$g, initial: "normal", animate: controls }), jsx(motion.path, { d: "M4 2v20", variants: pathVariants$g, initial: "normal", animate: controls }), jsx(motion.path, { d: "M14 2v20", variants: pathVariants$g, initial: "normal", animate: controls })] }) }));
4468
+ });
4469
+ AlignHorizontalDistributeStart.displayName = 'AlignHorizontalDistributeStart';
4470
+
4471
+ function cn$l(...inputs) {
4472
+ return twMerge(clsx(inputs));
4473
+ }
4474
+ const pathVariants$f = {
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$l('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$f, initial: "normal", animate: controls }), jsx(motion.rect, { width: "6", height: "10", x: "16", y: "7", rx: "2", variants: pathVariants$f, initial: "normal", animate: controls }), jsx(motion.path, { d: "M12 2v20", variants: pathVariants$f, initial: "normal", animate: controls })] }) }));
4531
+ });
4532
+ AlignHorizontalJustifyCenter.displayName = 'AlignHorizontalJustifyCenter';
4533
+
4534
+ function cn$k(...inputs) {
4535
+ return twMerge(clsx(inputs));
4536
+ }
4537
+ const pathVariants$e = {
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$k('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$e, initial: "normal", animate: controls }), jsx(motion.rect, { width: "6", height: "10", x: "12", y: "7", rx: "2", variants: pathVariants$e, initial: "normal", animate: controls }), jsx(motion.path, { d: "M22 2v20", variants: pathVariants$e, initial: "normal", animate: controls })] }) }));
4594
+ });
4595
+ AlignHorizontalJustifyEnd.displayName = 'AlignHorizontalJustifyEnd';
4596
+
4597
+ function cn$j(...inputs) {
4598
+ return twMerge(clsx(inputs));
4599
+ }
4600
+ const pathVariants$d = {
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$j('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$d, initial: "normal", animate: controls }), jsx(motion.rect, { width: "6", height: "10", x: "16", y: "7", rx: "2", variants: pathVariants$d, initial: "normal", animate: controls }), jsx(motion.path, { d: "M2 2v20", variants: pathVariants$d, initial: "normal", animate: controls })] }) }));
4657
+ });
4658
+ AlignHorizontalJustifyStart.displayName = 'AlignHorizontalJustifyStart';
4659
+
4660
+ function cn$i(...inputs) {
4661
+ return twMerge(clsx(inputs));
4662
+ }
4663
+ const pathVariants$c = {
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$i('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$c, initial: "normal", animate: controls }), jsx(motion.path, { d: "M4 22V2", variants: pathVariants$c, initial: "normal", animate: controls }), jsx(motion.path, { d: "M20 22V2", variants: pathVariants$c, initial: "normal", animate: controls })] }) }));
4720
+ });
4721
+ AlignHorizontalSpaceAround.displayName = 'AlignHorizontalSpaceAround';
4722
+
4723
+ function cn$h(...inputs) {
4724
+ return twMerge(clsx(inputs));
4725
+ }
4726
+ const pathVariants$b = {
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$h('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$b, initial: "normal", animate: controls }), jsx(motion.rect, { width: "6", height: "10", x: "15", y: "7", rx: "2", variants: pathVariants$b, initial: "normal", animate: controls }), jsx(motion.path, { d: "M3 2v20", variants: pathVariants$b, initial: "normal", animate: controls }), jsx(motion.path, { d: "M21 2v20", variants: pathVariants$b, initial: "normal", animate: controls })] }) }));
4783
+ });
4784
+ AlignHorizontalSpaceBetween.displayName = 'AlignHorizontalSpaceBetween';
4785
+
4786
+ function cn$g(...inputs) {
4787
+ return twMerge(clsx(inputs));
4788
+ }
4789
+ const pathVariants$a = {
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$g('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$a, initial: "normal", animate: controls }), jsx(motion.path, { d: "M3 18h18", variants: pathVariants$a, initial: "normal", animate: controls }), jsx(motion.path, { d: "M3 6h18", variants: pathVariants$a, initial: "normal", animate: controls })] }) }));
4846
+ });
4847
+ AlignJustify.displayName = 'AlignJustify';
4848
+
4849
+ function cn$f(...inputs) {
4850
+ return twMerge(clsx(inputs));
4851
+ }
4852
+ const pathVariants$9 = {
4853
+ normal: (i) => ({
4854
+ pathLength: 1,
4855
+ pathOffset: 0,
4856
+ opacity: 1,
4857
+ transition: {
4858
+ duration: 0.4,
4859
+ delay: i * 0.2,
4860
+ },
4861
+ }),
4862
+ animate: (i) => ({
4863
+ pathLength: [0, 1],
4864
+ pathOffset: [1, 0],
4865
+ opacity: [0, 1],
4866
+ transition: {
4867
+ duration: 0.7,
4868
+ ease: 'easeInOut',
4869
+ delay: i * 0.2,
4870
+ },
4871
+ }),
4872
+ };
4873
+ const AlignLeft = forwardRef(({ size = 28, className, style, autoAnimateOnLoad = false, hoverable = true, loopOnHover = false, animateOnClick = false, onMouseEnter, onMouseLeave, onClick, ...props }, ref) => {
4874
+ const controls = useAnimation();
4875
+ const loopRef = useRef(loopOnHover);
4876
+ const isControlledRef = useRef(false);
4877
+ const triggerAnimation = useCallback(async () => {
4878
+ await controls.start((i) => pathVariants$9.animate(i));
4879
+ await controls.start((i) => pathVariants$9.normal(i));
4880
+ if (loopRef.current)
4881
+ triggerAnimation();
4882
+ }, [controls]);
4883
+ useEffect(() => {
4884
+ loopRef.current = loopOnHover;
4885
+ }, [loopOnHover]);
4886
+ useEffect(() => {
4887
+ if (autoAnimateOnLoad)
4888
+ triggerAnimation();
4889
+ }, [autoAnimateOnLoad, triggerAnimation]);
4890
+ useImperativeHandle(ref, () => {
4891
+ isControlledRef.current = true;
4892
+ return {
4893
+ startAnimation: () => controls.start((i) => pathVariants$9.animate(i)),
4894
+ stopAnimation: () => controls.start((i) => pathVariants$9.normal(i)),
4895
+ };
4896
+ }, [controls]);
4897
+ const handleMouseEnter = (e) => {
4898
+ if (!isControlledRef.current && hoverable)
4899
+ triggerAnimation();
4900
+ onMouseEnter?.(e);
4901
+ };
4902
+ const handleMouseLeave = (e) => {
4903
+ if (!isControlledRef.current && hoverable)
4904
+ controls.start((i) => pathVariants$9.normal(i));
4905
+ onMouseLeave?.(e);
4906
+ };
4907
+ const handleClick = (e) => {
4908
+ if (animateOnClick)
4909
+ triggerAnimation();
4910
+ onClick?.(e);
4911
+ };
4912
+ return (jsx("div", { className: cn$f('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: "M21 6H3", variants: pathVariants$9, custom: 0, animate: controls, initial: "normal" }), jsx(motion.path, { d: "M15 12H3", variants: pathVariants$9, custom: 1, animate: controls, initial: "normal" }), jsx(motion.path, { d: "M17 18H3", variants: pathVariants$9, custom: 2, animate: controls, initial: "normal" })] }) }));
4913
+ });
4914
+ AlignLeft.displayName = 'AlignLeft';
4915
+
4916
+ function cn$e(...inputs) {
4917
+ return twMerge(clsx(inputs));
4918
+ }
4919
+ const pathVariants$8 = {
4920
+ normal: (i) => ({
4921
+ pathLength: 1,
4922
+ pathOffset: 0,
4923
+ opacity: 1,
4924
+ transition: {
4925
+ duration: 0.3,
4926
+ delay: i * 0.16,
4927
+ },
4928
+ }),
4929
+ animate: (i) => ({
4930
+ pathLength: [0, 1],
4931
+ pathOffset: [1, 0],
4932
+ opacity: [0, 1],
4933
+ transition: {
4934
+ duration: 0.2,
4935
+ ease: 'easeInOut',
4936
+ delay: i * 0.16
4937
+ },
4938
+ }),
4939
+ };
4940
+ const AlignRight = forwardRef(({ size = 28, className, style, autoAnimateOnLoad = false, hoverable = true, loopOnHover = false, animateOnClick = false, onMouseEnter, onMouseLeave, onClick, ...props }, ref) => {
4941
+ const controls = useAnimation();
4942
+ const loopRef = useRef(loopOnHover);
4943
+ const isControlledRef = useRef(false);
4944
+ const triggerAnimation = useCallback(async () => {
4945
+ await controls.start('animate');
4946
+ await controls.start('normal');
4947
+ if (loopRef.current)
4948
+ triggerAnimation();
4949
+ }, [controls]);
4950
+ useEffect(() => {
4951
+ loopRef.current = loopOnHover;
4952
+ }, [loopOnHover]);
4953
+ useEffect(() => {
4954
+ if (autoAnimateOnLoad)
4955
+ triggerAnimation();
4956
+ }, [autoAnimateOnLoad, triggerAnimation]);
4957
+ useImperativeHandle(ref, () => {
4958
+ isControlledRef.current = true;
4959
+ return {
4960
+ startAnimation: () => controls.start('animate'),
4961
+ stopAnimation: () => controls.start('normal'),
4962
+ };
4963
+ }, [controls]);
4964
+ const handleMouseEnter = (e) => {
4965
+ if (!isControlledRef.current && hoverable)
4966
+ triggerAnimation();
4967
+ onMouseEnter?.(e);
4968
+ };
4969
+ const handleMouseLeave = (e) => {
4970
+ if (!isControlledRef.current && hoverable)
4971
+ controls.start('normal');
4972
+ onMouseLeave?.(e);
4973
+ };
4974
+ const handleClick = (e) => {
4975
+ if (animateOnClick)
4976
+ triggerAnimation();
4977
+ onClick?.(e);
4978
+ };
4979
+ return (jsx("div", { className: cn$e('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: "M3 6H21", variants: pathVariants$8, custom: 0, animate: controls, initial: "normal" }), jsx(motion.path, { d: "M9 12H21", variants: pathVariants$8, custom: 1, animate: controls, initial: "normal" }), jsx(motion.path, { d: "M7 18H21", variants: pathVariants$8, custom: 2, animate: controls, initial: "normal" })] }) }));
4980
+ });
4981
+ AlignRight.displayName = 'AlignRight';
4982
+
4983
+ function cn$d(...inputs) {
4984
+ return twMerge(clsx(inputs));
4985
+ }
4986
+ const pathVariants$7 = {
4987
+ normal: (i) => ({
4988
+ pathLength: 1,
4989
+ opacity: 1,
4990
+ transition: {
4991
+ duration: 0.4,
4992
+ delay: i * 0.3,
4993
+ },
4994
+ }),
4995
+ animate: (i) => ({
4996
+ pathLength: [0, 1],
4997
+ opacity: [0, 1],
4998
+ transition: {
4999
+ duration: 0.6,
5000
+ ease: 'easeInOut',
5001
+ delay: i * 0.3,
5002
+ },
5003
+ }),
5004
+ };
5005
+ const rectVariants$5 = {
5006
+ normal: (i) => ({
5007
+ scaleY: 1,
5008
+ opacity: 1,
5009
+ transition: {
5010
+ duration: 0.3,
5011
+ delay: i * 0.3 + 0.3,
5012
+ },
5013
+ }),
5014
+ animate: (i) => ({
5015
+ scaleY: [0, 1],
5016
+ opacity: [0, 1],
5017
+ originY: 0,
5018
+ transition: {
5019
+ duration: 0.6,
5020
+ ease: 'easeOut',
5021
+ delay: i * 0.4 + 0.1,
5022
+ },
5023
+ }),
5024
+ };
5025
+ const AlignStartHorizontal = forwardRef(({ size = 28, className, style, autoAnimateOnLoad = false, hoverable = true, loopOnHover = false, animateOnClick = false, onMouseEnter, onMouseLeave, onClick, ...props }, ref) => {
5026
+ const controls = useAnimation();
5027
+ const loopRef = useRef(loopOnHover);
5028
+ const isControlledRef = useRef(false);
5029
+ const triggerAnimation = useCallback(async () => {
5030
+ await controls.start((i) => i < 1 ? pathVariants$7.animate(i) : rectVariants$5.animate(i - 1));
5031
+ await controls.start((i) => i < 1 ? pathVariants$7.normal(i) : rectVariants$5.normal(i - 1));
5032
+ if (loopRef.current)
5033
+ triggerAnimation();
5034
+ }, [controls]);
5035
+ useEffect(() => {
5036
+ loopRef.current = loopOnHover;
5037
+ }, [loopOnHover]);
5038
+ useEffect(() => {
5039
+ if (autoAnimateOnLoad)
5040
+ triggerAnimation();
5041
+ }, [autoAnimateOnLoad, triggerAnimation]);
5042
+ useImperativeHandle(ref, () => {
5043
+ isControlledRef.current = true;
5044
+ return {
5045
+ startAnimation: () => controls.start((i) => i < 1 ? pathVariants$7.animate(i) : rectVariants$5.animate(i - 1)),
5046
+ stopAnimation: () => controls.start((i) => i < 1 ? pathVariants$7.normal(i) : rectVariants$5.normal(i - 1)),
5047
+ };
5048
+ }, [controls]);
5049
+ const handleMouseEnter = (e) => {
5050
+ if (!isControlledRef.current && hoverable)
5051
+ triggerAnimation();
5052
+ onMouseEnter?.(e);
5053
+ };
5054
+ const handleMouseLeave = (e) => {
5055
+ if (!isControlledRef.current && hoverable)
5056
+ controls.start((i) => i < 1 ? pathVariants$7.normal(i) : rectVariants$5.normal(i - 1));
5057
+ onMouseLeave?.(e);
5058
+ };
5059
+ const handleClick = (e) => {
5060
+ if (animateOnClick)
5061
+ triggerAnimation();
5062
+ onClick?.(e);
5063
+ };
5064
+ 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: "M22 2H2", variants: pathVariants$7, custom: 0, animate: controls, initial: "normal" }), jsx(motion.rect, { width: "6", height: "16", x: "4", y: "6", rx: "2", variants: rectVariants$5, custom: 0, animate: controls, initial: "normal" }), jsx(motion.rect, { width: "6", height: "9", x: "14", y: "6", rx: "2", variants: rectVariants$5, custom: 1, animate: controls, initial: "normal" })] }) }));
5065
+ });
5066
+ AlignStartHorizontal.displayName = 'AlignStartHorizontal';
5067
+
5068
+ function cn$c(...inputs) {
5069
+ return twMerge(clsx(inputs));
5070
+ }
5071
+ const pathVariants$6 = {
5072
+ normal: (i) => ({
5073
+ pathLength: 1,
5074
+ opacity: 1,
5075
+ transition: {
5076
+ duration: 0.4,
5077
+ delay: i * 0.3,
5078
+ },
5079
+ }),
5080
+ animate: (i) => ({
5081
+ pathLength: [0, 1],
5082
+ opacity: [0, 1],
5083
+ transition: {
5084
+ duration: 0.6,
5085
+ ease: 'easeInOut',
5086
+ delay: i * 0.3,
5087
+ },
5088
+ }),
5089
+ };
5090
+ const rectVariants$4 = {
5091
+ normal: (i) => ({
5092
+ scaleX: 1,
5093
+ opacity: 1,
5094
+ transition: {
5095
+ duration: 0.3,
5096
+ delay: i * 0.3 + 0.3,
5097
+ },
5098
+ }),
5099
+ animate: (i) => ({
5100
+ scaleX: [0, 1],
5101
+ opacity: [0, 1],
5102
+ originX: 0,
5103
+ transition: {
5104
+ duration: 0.6,
5105
+ ease: 'easeOut',
5106
+ delay: i * 0.4 + 0.1,
5107
+ },
5108
+ }),
5109
+ };
5110
+ const AlignStartVertical = forwardRef(({ size = 28, className, style, autoAnimateOnLoad = false, hoverable = true, loopOnHover = false, animateOnClick = false, onMouseEnter, onMouseLeave, onClick, ...props }, ref) => {
5111
+ const controls = useAnimation();
5112
+ const loopRef = useRef(loopOnHover);
5113
+ const isControlledRef = useRef(false);
5114
+ const triggerAnimation = useCallback(async () => {
5115
+ await controls.start((i) => i < 1 ? pathVariants$6.animate(i) : rectVariants$4.animate(i - 1));
5116
+ await controls.start((i) => i < 1 ? pathVariants$6.normal(i) : rectVariants$4.normal(i - 1));
5117
+ if (loopRef.current)
5118
+ triggerAnimation();
5119
+ }, [controls]);
5120
+ useEffect(() => {
5121
+ loopRef.current = loopOnHover;
5122
+ }, [loopOnHover]);
5123
+ useEffect(() => {
5124
+ if (autoAnimateOnLoad)
5125
+ triggerAnimation();
5126
+ }, [autoAnimateOnLoad, triggerAnimation]);
5127
+ useImperativeHandle(ref, () => {
5128
+ isControlledRef.current = true;
5129
+ return {
5130
+ startAnimation: () => controls.start((i) => i < 1 ? pathVariants$6.animate(i) : rectVariants$4.animate(i - 1)),
5131
+ stopAnimation: () => controls.start((i) => i < 1 ? pathVariants$6.normal(i) : rectVariants$4.normal(i - 1)),
5132
+ };
5133
+ }, [controls]);
5134
+ const handleMouseEnter = (e) => {
5135
+ if (!isControlledRef.current && hoverable)
5136
+ triggerAnimation();
5137
+ onMouseEnter?.(e);
5138
+ };
5139
+ const handleMouseLeave = (e) => {
5140
+ if (!isControlledRef.current && hoverable)
5141
+ controls.start((i) => i < 1 ? pathVariants$6.normal(i) : rectVariants$4.normal(i - 1));
5142
+ onMouseLeave?.(e);
5143
+ };
5144
+ const handleClick = (e) => {
5145
+ if (animateOnClick)
5146
+ triggerAnimation();
5147
+ onClick?.(e);
5148
+ };
5149
+ 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 2v20", variants: pathVariants$6, custom: 0, animate: controls, initial: "normal" }), jsx(motion.rect, { width: "16", height: "6", x: "6", y: "4", rx: "2", variants: rectVariants$4, custom: 0, animate: controls, initial: "normal" }), jsx(motion.rect, { width: "9", height: "6", x: "6", y: "14", rx: "2", variants: rectVariants$4, custom: 1, animate: controls, initial: "normal" })] }) }));
5150
+ });
5151
+ AlignStartVertical.displayName = 'AlignStartVertical';
5152
+
5153
+ function cn$b(...inputs) {
5154
+ return twMerge(clsx(inputs));
5155
+ }
5156
+ const pathVariants$5 = {
5157
+ normal: {
5158
+ pathLength: 1,
5159
+ pathOffset: 0,
5160
+ opacity: 1,
5161
+ transition: {
5162
+ duration: 0.4,
5163
+ },
5164
+ },
5165
+ animate: {
5166
+ pathLength: [0, 1],
5167
+ pathOffset: [1, 0],
5168
+ opacity: [0, 1],
5169
+ transition: {
5170
+ duration: 0.7,
5171
+ ease: 'easeInOut',
5172
+ },
5173
+ },
5174
+ };
5175
+ const rectVariants$3 = {
5176
+ normal: {
5177
+ opacity: 1,
5178
+ scale: 1,
5179
+ transition: {
5180
+ duration: 0.4,
5181
+ },
5182
+ },
5183
+ animate: {
5184
+ opacity: [0, 1],
5185
+ scale: [0.8, 1],
5186
+ transition: {
5187
+ duration: 0.7,
5188
+ ease: 'easeInOut',
5189
+ },
5190
+ },
5191
+ };
5192
+ const AlignVerticalDistributeCenter = forwardRef(({ size = 28, className, style, autoAnimateOnLoad = false, hoverable = true, loopOnHover = false, animateOnClick = false, onMouseEnter, onMouseLeave, onClick, ...props }, ref) => {
5193
+ const controls = useAnimation();
5194
+ const loopRef = useRef(loopOnHover);
5195
+ const isControlledRef = useRef(false);
5196
+ const triggerAnimation = useCallback(async () => {
5197
+ await controls.start('animate');
5198
+ await controls.start('normal');
5199
+ if (loopRef.current)
5200
+ triggerAnimation();
5201
+ }, [controls]);
5202
+ useEffect(() => {
5203
+ loopRef.current = loopOnHover;
5204
+ }, [loopOnHover]);
5205
+ useEffect(() => {
5206
+ if (autoAnimateOnLoad)
5207
+ triggerAnimation();
5208
+ }, [autoAnimateOnLoad, triggerAnimation]);
5209
+ useImperativeHandle(ref, () => {
5210
+ isControlledRef.current = true;
5211
+ return {
5212
+ startAnimation: () => controls.start('animate'),
5213
+ stopAnimation: () => controls.start('normal'),
5214
+ };
5215
+ });
5216
+ const handleMouseEnter = (e) => {
5217
+ if (!isControlledRef.current && hoverable)
5218
+ triggerAnimation();
5219
+ onMouseEnter?.(e);
5220
+ };
5221
+ const handleMouseLeave = (e) => {
5222
+ if (!isControlledRef.current && hoverable)
5223
+ controls.start('normal');
5224
+ onMouseLeave?.(e);
5225
+ };
5226
+ const handleClick = (e) => {
5227
+ if (animateOnClick)
5228
+ triggerAnimation();
5229
+ onClick?.(e);
5230
+ };
5231
+ 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: "M22 17h-3", variants: pathVariants$5, animate: controls, initial: "normal" }), jsx(motion.path, { d: "M22 7h-5", variants: pathVariants$5, animate: controls, initial: "normal" }), jsx(motion.path, { d: "M5 17H2", variants: pathVariants$5, animate: controls, initial: "normal" }), jsx(motion.path, { d: "M7 7H2", variants: pathVariants$5, animate: controls, initial: "normal" }), jsx(motion.rect, { x: "5", y: "14", width: "14", height: "6", rx: "2", variants: rectVariants$3, animate: controls, initial: "normal" }), jsx(motion.rect, { x: "7", y: "4", width: "10", height: "6", rx: "2", variants: rectVariants$3, animate: controls, initial: "normal" })] }) }));
5232
+ });
5233
+ AlignVerticalDistributeCenter.displayName = 'AlignVerticalDistributeCenter';
5234
+
5235
+ function cn$a(...inputs) {
5236
+ return twMerge(clsx(inputs));
5237
+ }
5238
+ const pathVariants$4 = {
5239
+ normal: {
5240
+ opacity: 1,
5241
+ pathLength: 1,
5242
+ pathOffset: 0,
5243
+ transition: { duration: 0.4 },
5244
+ },
5245
+ animate: {
5246
+ opacity: [0, 1],
5247
+ pathLength: [0, 1],
5248
+ pathOffset: [1, 0],
5249
+ transition: {
5250
+ duration: 0.6,
5251
+ ease: 'linear',
5252
+ },
5253
+ },
5254
+ };
5255
+ const AlignVerticalDistributeEnd = forwardRef(({ size = 28, className, style, autoAnimateOnLoad = false, hoverable = true, loopOnHover = false, animateOnClick = false, onMouseEnter, onMouseLeave, onClick, ...props }, ref) => {
5256
+ const controls = useAnimation();
5257
+ const loopRef = useRef(loopOnHover);
5258
+ const isControlledRef = useRef(false);
5259
+ const triggerAnimation = useCallback(async () => {
5260
+ await controls.start('animate');
5261
+ await controls.start('normal');
5262
+ if (loopRef.current)
5263
+ triggerAnimation();
5264
+ }, [controls]);
5265
+ useEffect(() => {
5266
+ loopRef.current = loopOnHover;
5267
+ }, [loopOnHover]);
5268
+ useEffect(() => {
5269
+ if (autoAnimateOnLoad)
5270
+ triggerAnimation();
5271
+ }, [autoAnimateOnLoad, triggerAnimation]);
5272
+ useImperativeHandle(ref, () => {
5273
+ isControlledRef.current = true;
5274
+ return {
5275
+ startAnimation: () => controls.start('animate'),
5276
+ stopAnimation: () => controls.start('normal'),
5277
+ };
5278
+ });
5279
+ const handleMouseEnter = (e) => {
5280
+ if (!isControlledRef.current && hoverable)
5281
+ triggerAnimation();
5282
+ onMouseEnter?.(e);
5283
+ };
5284
+ const handleMouseLeave = (e) => {
5285
+ if (!isControlledRef.current && hoverable)
5286
+ controls.start('normal');
5287
+ onMouseLeave?.(e);
5288
+ };
5289
+ const handleClick = (e) => {
5290
+ if (animateOnClick)
5291
+ triggerAnimation();
5292
+ onClick?.(e);
5293
+ };
5294
+ 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", width: "100%", height: "100%", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [jsx(motion.rect, { width: "14", height: "6", x: "5", y: "14", rx: "2", variants: pathVariants$4, initial: "normal", animate: controls }), jsx(motion.rect, { width: "10", height: "6", x: "7", y: "4", rx: "2", variants: pathVariants$4, initial: "normal", animate: controls }), jsx(motion.path, { d: "M2 20h20", variants: pathVariants$4, initial: "normal", animate: controls }), jsx(motion.path, { d: "M2 10h20", variants: pathVariants$4, initial: "normal", animate: controls })] }) }));
5295
+ });
5296
+ AlignVerticalDistributeEnd.displayName = 'AlignVerticalDistributeEnd';
5297
+
5298
+ function cn$9(...inputs) {
5299
+ return twMerge(clsx(inputs));
5300
+ }
5301
+ const pathVariants$3 = {
5302
+ normal: {
5303
+ opacity: 1,
5304
+ pathLength: 1,
5305
+ pathOffset: 0,
5306
+ transition: { duration: 0.4 },
5307
+ },
5308
+ animate: {
5309
+ opacity: [0, 1],
5310
+ pathLength: [0, 1],
5311
+ pathOffset: [1, 0],
5312
+ transition: {
5313
+ duration: 0.6,
5314
+ ease: 'linear',
5315
+ },
5316
+ },
5317
+ };
5318
+ const AlignVerticalDistributeStart = forwardRef(({ size = 28, className, style, autoAnimateOnLoad = false, hoverable = true, loopOnHover = false, animateOnClick = false, onMouseEnter, onMouseLeave, onClick, ...props }, ref) => {
5319
+ const controls = useAnimation();
5320
+ const loopRef = useRef(loopOnHover);
5321
+ const isControlledRef = useRef(false);
5322
+ const triggerAnimation = useCallback(async () => {
5323
+ await controls.start('animate');
5324
+ await controls.start('normal');
5325
+ if (loopRef.current)
5326
+ triggerAnimation();
5327
+ }, [controls]);
5328
+ useEffect(() => {
5329
+ loopRef.current = loopOnHover;
5330
+ }, [loopOnHover]);
5331
+ useEffect(() => {
5332
+ if (autoAnimateOnLoad)
5333
+ triggerAnimation();
5334
+ }, [autoAnimateOnLoad, triggerAnimation]);
5335
+ useImperativeHandle(ref, () => {
5336
+ isControlledRef.current = true;
5337
+ return {
5338
+ startAnimation: () => controls.start('animate'),
5339
+ stopAnimation: () => controls.start('normal'),
5340
+ };
5341
+ });
5342
+ const handleMouseEnter = (e) => {
5343
+ if (!isControlledRef.current && hoverable)
5344
+ triggerAnimation();
5345
+ onMouseEnter?.(e);
5346
+ };
5347
+ const handleMouseLeave = (e) => {
5348
+ if (!isControlledRef.current && hoverable)
5349
+ controls.start('normal');
5350
+ onMouseLeave?.(e);
5351
+ };
5352
+ const handleClick = (e) => {
5353
+ if (animateOnClick)
5354
+ triggerAnimation();
5355
+ onClick?.(e);
5356
+ };
5357
+ 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", width: "100%", height: "100%", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [jsx(motion.rect, { width: "14", height: "6", x: "5", y: "14", rx: "2", variants: pathVariants$3, initial: "normal", animate: controls }), jsx(motion.rect, { width: "10", height: "6", x: "7", y: "4", rx: "2", variants: pathVariants$3, initial: "normal", animate: controls }), jsx(motion.path, { d: "M2 14h20", variants: pathVariants$3, initial: "normal", animate: controls }), jsx(motion.path, { d: "M2 4h20", variants: pathVariants$3, initial: "normal", animate: controls })] }) }));
5358
+ });
5359
+ AlignVerticalDistributeStart.displayName = 'AlignVerticalDistributeStart';
5360
+
5361
+ function cn$8(...inputs) {
5362
+ return twMerge(clsx(inputs));
5363
+ }
5364
+ // The line will animate first
5365
+ const lineVariants$2 = {
5366
+ normal: {
5367
+ opacity: 1,
5368
+ pathLength: 1,
5369
+ pathOffset: 0,
5370
+ transition: { duration: 0.4 },
5371
+ },
5372
+ animate: {
5373
+ opacity: [0, 1],
5374
+ pathLength: [0, 1],
5375
+ pathOffset: [1, 0],
5376
+ transition: {
5377
+ duration: 0.3,
5378
+ ease: 'easeInOut',
5379
+ },
5380
+ },
5381
+ };
5382
+ // Rectangles will animate after the line
5383
+ const rectVariants$2 = {
5384
+ normal: {
5385
+ opacity: 1,
5386
+ pathLength: 1,
5387
+ pathOffset: 0,
5388
+ transition: { duration: 0.4 },
5389
+ },
5390
+ animate: {
5391
+ opacity: [0, 1],
5392
+ pathLength: [0, 1],
5393
+ pathOffset: [1, 0],
5394
+ transition: {
5395
+ duration: 0.4,
5396
+ ease: 'easeInOut',
5397
+ delay: 0.3,
5398
+ },
5399
+ },
5400
+ };
5401
+ const AlignVerticalJustifyCenter = forwardRef(({ size = 28, className, style, autoAnimateOnLoad = false, hoverable = true, loopOnHover = false, animateOnClick = false, onMouseEnter, onMouseLeave, onClick, ...props }, ref) => {
5402
+ const controls = useAnimation();
5403
+ const loopRef = useRef(loopOnHover);
5404
+ const isControlledRef = useRef(false);
5405
+ const triggerAnimation = useCallback(async () => {
5406
+ await controls.start('animate');
5407
+ await controls.start('normal');
5408
+ if (loopRef.current)
5409
+ triggerAnimation();
5410
+ }, [controls]);
5411
+ useEffect(() => {
5412
+ loopRef.current = loopOnHover;
5413
+ }, [loopOnHover]);
5414
+ useEffect(() => {
5415
+ if (autoAnimateOnLoad)
5416
+ triggerAnimation();
5417
+ }, [autoAnimateOnLoad, triggerAnimation]);
5418
+ useImperativeHandle(ref, () => {
5419
+ isControlledRef.current = true;
5420
+ return {
5421
+ startAnimation: () => controls.start('animate'),
5422
+ stopAnimation: () => controls.start('normal'),
5423
+ };
5424
+ });
5425
+ const handleMouseEnter = (e) => {
5426
+ if (!isControlledRef.current && hoverable)
5427
+ triggerAnimation();
5428
+ onMouseEnter?.(e);
5429
+ };
5430
+ const handleMouseLeave = (e) => {
5431
+ if (!isControlledRef.current && hoverable)
5432
+ controls.start('normal');
5433
+ onMouseLeave?.(e);
5434
+ };
5435
+ const handleClick = (e) => {
5436
+ if (animateOnClick)
5437
+ triggerAnimation();
5438
+ onClick?.(e);
5439
+ };
5440
+ 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", width: "100%", height: "100%", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", children: [jsx(motion.path, { d: "M2 12h20", variants: lineVariants$2, initial: "normal", animate: controls }), jsx(motion.rect, { width: "14", height: "6", x: "5", y: "16", rx: "2", variants: rectVariants$2, initial: "normal", animate: controls }), jsx(motion.rect, { width: "10", height: "6", x: "7", y: "2", rx: "2", variants: rectVariants$2, initial: "normal", animate: controls })] }) }));
5441
+ });
5442
+ AlignVerticalJustifyCenter.displayName = 'AlignVerticalJustifyCenter';
5443
+
5444
+ function cn$7(...inputs) {
5445
+ return twMerge(clsx(inputs));
5446
+ }
5447
+ const lineVariants$1 = {
5448
+ normal: {
5449
+ opacity: 1,
5450
+ pathLength: 1,
5451
+ pathOffset: 0,
5452
+ transition: { duration: 0.4 },
5453
+ },
5454
+ animate: {
5455
+ opacity: [0, 1],
5456
+ pathLength: [0, 1],
5457
+ pathOffset: [1, 0],
5458
+ transition: {
5459
+ duration: 0.18,
5460
+ ease: 'easeInOut',
5461
+ },
5462
+ },
5463
+ };
5464
+ const middleRectVariants = {
5465
+ normal: {
5466
+ opacity: 1,
5467
+ pathLength: 1,
5468
+ pathOffset: 0,
5469
+ transition: { duration: 0.4 },
5470
+ },
5471
+ animate: {
5472
+ opacity: [0, 1],
5473
+ pathLength: [0, 1],
5474
+ pathOffset: [1, 0],
5475
+ transition: {
5476
+ duration: 0.3,
5477
+ ease: 'easeInOut',
5478
+ delay: 0.2,
5479
+ },
5480
+ },
5481
+ };
5482
+ const topRectVariants$1 = {
5483
+ normal: {
5484
+ opacity: 1,
5485
+ pathLength: 1,
5486
+ pathOffset: 0,
5487
+ transition: { duration: 0.4 },
5488
+ },
5489
+ animate: {
5490
+ opacity: [0, 1],
5491
+ pathLength: [0, 1],
5492
+ pathOffset: [1, 0],
5493
+ transition: {
5494
+ duration: 0.2,
5495
+ ease: 'easeInOut',
5496
+ delay: 0.4,
5497
+ },
5498
+ },
5499
+ };
5500
+ const AlignVerticalJustifyEnd = forwardRef(({ size = 28, className, style, autoAnimateOnLoad = false, hoverable = true, loopOnHover = false, animateOnClick = false, onMouseEnter, onMouseLeave, onClick, ...props }, ref) => {
5501
+ const controls = useAnimation();
5502
+ const loopRef = useRef(loopOnHover);
5503
+ const isControlledRef = useRef(false);
5504
+ const triggerAnimation = useCallback(async () => {
5505
+ await controls.start('animate');
5506
+ await controls.start('normal');
5507
+ if (loopRef.current)
5508
+ triggerAnimation();
5509
+ }, [controls]);
5510
+ useEffect(() => {
5511
+ loopRef.current = loopOnHover;
5512
+ }, [loopOnHover]);
5513
+ useEffect(() => {
5514
+ if (autoAnimateOnLoad)
5515
+ triggerAnimation();
5516
+ }, [autoAnimateOnLoad, triggerAnimation]);
5517
+ useImperativeHandle(ref, () => {
5518
+ isControlledRef.current = true;
5519
+ return {
5520
+ startAnimation: () => controls.start('animate'),
5521
+ stopAnimation: () => controls.start('normal'),
5522
+ };
5523
+ });
5524
+ const handleMouseEnter = (e) => {
5525
+ if (!isControlledRef.current && hoverable)
5526
+ triggerAnimation();
5527
+ onMouseEnter?.(e);
5528
+ };
5529
+ const handleMouseLeave = (e) => {
5530
+ if (!isControlledRef.current && hoverable)
5531
+ controls.start('normal');
5532
+ onMouseLeave?.(e);
5533
+ };
5534
+ const handleClick = (e) => {
5535
+ if (animateOnClick)
5536
+ triggerAnimation();
5537
+ onClick?.(e);
5538
+ };
5539
+ 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.path, { d: "M2 22h20", variants: lineVariants$1, initial: "normal", animate: controls }), jsx(motion.rect, { width: "14", height: "6", x: "5", y: "12", rx: "2", variants: middleRectVariants, initial: "normal", animate: controls }), jsx(motion.rect, { width: "10", height: "6", x: "7", y: "2", rx: "2", variants: topRectVariants$1, initial: "normal", animate: controls })] }) }));
5540
+ });
5541
+ AlignVerticalJustifyEnd.displayName = 'AlignVerticalJustifyEnd';
5542
+
5543
+ function cn$6(...inputs) {
5544
+ return twMerge(clsx(inputs));
5545
+ }
5546
+ // Top line will animate first - 0.25 seconds
5547
+ const lineVariants = {
5548
+ normal: {
5549
+ opacity: 1,
5550
+ pathLength: 1,
5551
+ pathOffset: 0,
5552
+ transition: { duration: 0.3 },
5553
+ },
5554
+ animate: {
5555
+ opacity: [0, 1],
5556
+ pathLength: [0, 1],
5557
+ pathOffset: [1, 0],
5558
+ transition: {
5559
+ duration: 0.25,
5560
+ ease: 'easeOut',
5561
+ },
5562
+ },
5563
+ };
5564
+ // Middle rectangle animates second - 0.25 seconds (starting at 0.2s)
5565
+ const topRectVariants = {
5566
+ normal: {
5567
+ opacity: 1,
5568
+ pathLength: 1,
5569
+ pathOffset: 0,
5570
+ transition: { duration: 0.3 },
5571
+ },
5572
+ animate: {
5573
+ opacity: [0, 1],
5574
+ pathLength: [0, 1],
5575
+ pathOffset: [1, 0],
5576
+ transition: {
5577
+ duration: 0.25,
5578
+ ease: 'easeOut',
5579
+ delay: 0.2, // Slight overlap with first animation
5580
+ },
5581
+ },
5582
+ };
5583
+ // Bottom rectangle animates last - 0.25 seconds (starting at 0.45s)
5584
+ const bottomRectVariants = {
5585
+ normal: {
5586
+ opacity: 1,
5587
+ pathLength: 1,
5588
+ pathOffset: 0,
5589
+ transition: { duration: 0.3 },
5590
+ },
5591
+ animate: {
5592
+ opacity: [0, 1],
5593
+ pathLength: [0, 1],
5594
+ pathOffset: [1, 0],
5595
+ transition: {
5596
+ duration: 0.25,
5597
+ ease: 'easeOut',
5598
+ delay: 0.45, // Starts when middle rectangle is mostly done
5599
+ },
5600
+ },
5601
+ };
5602
+ const AlignVerticalJustifyStart = forwardRef(({ size = 28, className, style, autoAnimateOnLoad = false, hoverable = true, loopOnHover = false, animateOnClick = false, onMouseEnter, onMouseLeave, onClick, ...props }, ref) => {
5603
+ const controls = useAnimation();
5604
+ const loopRef = useRef(loopOnHover);
5605
+ const isControlledRef = useRef(false);
5606
+ const triggerAnimation = useCallback(async () => {
5607
+ await controls.start('animate');
5608
+ await controls.start('normal');
5609
+ if (loopRef.current)
5610
+ triggerAnimation();
5611
+ }, [controls]);
5612
+ useEffect(() => {
5613
+ loopRef.current = loopOnHover;
5614
+ }, [loopOnHover]);
5615
+ useEffect(() => {
5616
+ if (autoAnimateOnLoad)
5617
+ triggerAnimation();
5618
+ }, [autoAnimateOnLoad, triggerAnimation]);
5619
+ useImperativeHandle(ref, () => {
5620
+ isControlledRef.current = true;
5621
+ return {
5622
+ startAnimation: () => controls.start('animate'),
5623
+ stopAnimation: () => controls.start('normal'),
5624
+ };
5625
+ });
5626
+ const handleMouseEnter = (e) => {
5627
+ if (!isControlledRef.current && hoverable)
5628
+ triggerAnimation();
5629
+ onMouseEnter?.(e);
5630
+ };
5631
+ const handleMouseLeave = (e) => {
5632
+ if (!isControlledRef.current && hoverable)
5633
+ controls.start('normal');
5634
+ onMouseLeave?.(e);
5635
+ };
5636
+ const handleClick = (e) => {
5637
+ if (animateOnClick)
5638
+ triggerAnimation();
5639
+ onClick?.(e);
5640
+ };
5641
+ 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.path, { d: "M2 2h20", variants: lineVariants, initial: "normal", animate: controls }), jsx(motion.rect, { width: "10", height: "6", x: "7", y: "6", rx: "2", variants: topRectVariants, initial: "normal", animate: controls }), jsx(motion.rect, { width: "14", height: "6", x: "5", y: "16", rx: "2", variants: bottomRectVariants, initial: "normal", animate: controls })] }) }));
5642
+ });
5643
+ AlignVerticalJustifyStart.displayName = 'AlignVerticalJustifyStart';
5644
+
5645
+ function cn$5(...inputs) {
5646
+ return twMerge(clsx(inputs));
5647
+ }
5648
+ const linesVariants$1 = {
5649
+ normal: {
5650
+ opacity: 1,
5651
+ pathLength: 1,
5652
+ pathOffset: 0,
5653
+ transition: { duration: 0.4 },
5654
+ },
5655
+ animate: {
5656
+ opacity: [0, 1],
5657
+ pathLength: [0, 1],
5658
+ pathOffset: [1, 0],
5659
+ transition: {
5660
+ duration: 0.37,
5661
+ ease: 'easeInOut',
5662
+ },
5663
+ },
5664
+ };
5665
+ const rectVariants$1 = {
5666
+ normal: {
5667
+ opacity: 1,
5668
+ pathLength: 1,
5669
+ pathOffset: 0,
5670
+ transition: { duration: 0.4 },
5671
+ },
5672
+ animate: {
5673
+ opacity: [0, 1],
5674
+ pathLength: [0, 1],
5675
+ pathOffset: [1, 0],
5676
+ transition: {
5677
+ duration: 0.2,
5678
+ ease: 'easeInOut',
5679
+ delay: 0.33,
5680
+ },
5681
+ },
5682
+ };
5683
+ const AlignVerticalSpaceAround = forwardRef(({ size = 28, className, style, autoAnimateOnLoad = false, hoverable = true, loopOnHover = false, animateOnClick = false, onMouseEnter, onMouseLeave, onClick, ...props }, ref) => {
5684
+ const controls = useAnimation();
5685
+ const loopRef = useRef(loopOnHover);
5686
+ const isControlledRef = useRef(false);
5687
+ const triggerAnimation = useCallback(async () => {
5688
+ await controls.start('animate');
5689
+ await controls.start('normal');
5690
+ if (loopRef.current)
5691
+ triggerAnimation();
5692
+ }, [controls]);
5693
+ useEffect(() => {
5694
+ loopRef.current = loopOnHover;
5695
+ }, [loopOnHover]);
5696
+ useEffect(() => {
5697
+ if (autoAnimateOnLoad)
5698
+ triggerAnimation();
5699
+ }, [autoAnimateOnLoad, triggerAnimation]);
5700
+ useImperativeHandle(ref, () => {
5701
+ isControlledRef.current = true;
5702
+ return {
5703
+ startAnimation: () => controls.start('animate'),
5704
+ stopAnimation: () => controls.start('normal'),
5705
+ };
5706
+ });
5707
+ const handleMouseEnter = (e) => {
5708
+ if (!isControlledRef.current && hoverable)
5709
+ triggerAnimation();
5710
+ onMouseEnter?.(e);
5711
+ };
5712
+ const handleMouseLeave = (e) => {
5713
+ if (!isControlledRef.current && hoverable)
5714
+ controls.start('normal');
5715
+ onMouseLeave?.(e);
5716
+ };
5717
+ const handleClick = (e) => {
5718
+ if (animateOnClick)
5719
+ triggerAnimation();
5720
+ onClick?.(e);
5721
+ };
5722
+ 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.path, { d: "M22 4H2", variants: linesVariants$1, initial: "normal", animate: controls }), jsx(motion.path, { d: "M22 20H2", variants: linesVariants$1, initial: "normal", animate: controls }), jsx(motion.rect, { width: "10", height: "6", x: "7", y: "9", rx: "2", variants: rectVariants$1, initial: "normal", animate: controls })] }) }));
5723
+ });
5724
+ AlignVerticalSpaceAround.displayName = 'AlignVerticalSpaceAround';
5725
+
5726
+ function cn$4(...inputs) {
5727
+ return twMerge(clsx(inputs));
5728
+ }
5729
+ const linesVariants = {
5730
+ normal: {
5731
+ opacity: 1,
5732
+ pathLength: 1,
5733
+ pathOffset: 0,
5734
+ transition: { duration: 0.4 },
5735
+ },
5736
+ animate: {
5737
+ opacity: [0, 1],
5738
+ pathLength: [0, 1],
5739
+ pathOffset: [1, 0],
5740
+ transition: {
5741
+ duration: 0.37,
5742
+ ease: 'easeInOut',
5743
+ },
5744
+ },
5745
+ };
5746
+ const rectVariants = {
5747
+ normal: {
5748
+ opacity: 1,
5749
+ pathLength: 1,
5750
+ pathOffset: 0,
5751
+ transition: { duration: 0.4 },
5752
+ },
5753
+ animate: {
5754
+ opacity: [0, 1],
5755
+ pathLength: [0, 1],
5756
+ pathOffset: [1, 0],
5757
+ transition: {
5758
+ duration: 0.2,
5759
+ ease: 'easeInOut',
5760
+ delay: 0.33,
5761
+ },
5762
+ },
5763
+ };
5764
+ const AlignVerticalSpaceBetween = forwardRef(({ size = 28, className, style, autoAnimateOnLoad = false, hoverable = true, loopOnHover = false, animateOnClick = false, onMouseEnter, onMouseLeave, onClick, ...props }, ref) => {
5765
+ const controls = useAnimation();
5766
+ const loopRef = useRef(loopOnHover);
5767
+ const isControlledRef = useRef(false);
5768
+ const triggerAnimation = useCallback(async () => {
5769
+ await controls.start('animate');
5770
+ await controls.start('normal');
5771
+ if (loopRef.current)
5772
+ triggerAnimation();
5773
+ }, [controls]);
5774
+ useEffect(() => {
5775
+ loopRef.current = loopOnHover;
5776
+ }, [loopOnHover]);
5777
+ useEffect(() => {
5778
+ if (autoAnimateOnLoad)
5779
+ triggerAnimation();
5780
+ }, [autoAnimateOnLoad, triggerAnimation]);
5781
+ useImperativeHandle(ref, () => {
5782
+ isControlledRef.current = true;
5783
+ return {
5784
+ startAnimation: () => controls.start('animate'),
5785
+ stopAnimation: () => controls.start('normal'),
5786
+ };
5787
+ });
5788
+ const handleMouseEnter = (e) => {
5789
+ if (!isControlledRef.current && hoverable)
5790
+ triggerAnimation();
5791
+ onMouseEnter?.(e);
5792
+ };
5793
+ const handleMouseLeave = (e) => {
5794
+ if (!isControlledRef.current && hoverable)
5795
+ controls.start('normal');
5796
+ onMouseLeave?.(e);
5797
+ };
5798
+ const handleClick = (e) => {
5799
+ if (animateOnClick)
5800
+ triggerAnimation();
5801
+ onClick?.(e);
5802
+ };
5803
+ 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.path, { d: "M2 21h20", variants: linesVariants, initial: "normal", animate: controls }), jsx(motion.path, { d: "M2 3h20", variants: linesVariants, initial: "normal", animate: controls }), jsx(motion.rect, { width: "14", height: "6", x: "5", y: "15", rx: "2", variants: rectVariants, initial: "normal", animate: controls }), jsx(motion.rect, { width: "10", height: "6", x: "7", y: "3", rx: "2", variants: rectVariants, initial: "normal", animate: controls })] }) }));
5804
+ });
5805
+ AlignVerticalSpaceBetween.displayName = 'AlignVerticalSpaceBetween';
5806
+
5807
+ function cn$3(...inputs) {
5808
+ return twMerge(clsx(inputs));
5809
+ }
5810
+ const pathVariants$2 = {
5811
+ normal: (custom) => ({
5812
+ pathLength: 1,
5813
+ opacity: 1,
5814
+ pathOffset: 0,
5815
+ transition: {
5816
+ duration: 0.3,
5817
+ ease: 'easeInOut',
5818
+ delay: custom,
5819
+ },
5820
+ }),
5821
+ animate: (custom) => ({
5822
+ pathLength: [0, 1],
5823
+ opacity: [0, 1],
5824
+ pathOffset: [1, 0],
5825
+ transition: {
5826
+ duration: 0.6,
5827
+ ease: 'easeInOut',
5828
+ delay: custom,
5829
+ },
5830
+ }),
5831
+ };
5832
+ const Ampersand = forwardRef(({ size = 28, className, style, autoAnimateOnLoad = false, hoverable = true, loopOnHover = false, animateOnClick = false, onMouseEnter, onMouseLeave, onClick, ...props }, ref) => {
5833
+ const controls = useAnimation();
5834
+ const loopRef = useRef(loopOnHover);
5835
+ const isControlledRef = useRef(false);
5836
+ // Imperative handle for external control
5837
+ useImperativeHandle(ref, () => {
5838
+ isControlledRef.current = true;
5839
+ return {
5840
+ startAnimation: () => controls.start('animate'),
5841
+ stopAnimation: () => controls.start('normal'),
5842
+ };
5843
+ });
5844
+ // Loop animation if loopOnHover is true
5845
+ const triggerAnimation = useCallback(async () => {
5846
+ await controls.start('animate');
5847
+ await controls.start('normal');
5848
+ if (loopRef.current)
5849
+ triggerAnimation();
5850
+ }, [controls]);
5851
+ useEffect(() => {
5852
+ loopRef.current = loopOnHover;
5853
+ }, [loopOnHover]);
5854
+ useEffect(() => {
5855
+ if (autoAnimateOnLoad) {
5856
+ triggerAnimation();
5857
+ }
5858
+ }, [autoAnimateOnLoad, triggerAnimation]);
5859
+ const handleMouseEnter = useCallback((e) => {
5860
+ if (hoverable && !isControlledRef.current) {
5861
+ triggerAnimation();
5862
+ }
5863
+ onMouseEnter?.(e);
5864
+ }, [hoverable, onMouseEnter, triggerAnimation]);
5865
+ const handleMouseLeave = useCallback((e) => {
5866
+ if (hoverable && !isControlledRef.current) {
5867
+ controls.start('normal');
5868
+ }
5869
+ onMouseLeave?.(e);
5870
+ }, [hoverable, onMouseLeave, controls]);
5871
+ const handleClick = useCallback((e) => {
5872
+ if (animateOnClick && !isControlledRef.current) {
5873
+ triggerAnimation();
5874
+ }
5875
+ onClick?.(e);
5876
+ }, [animateOnClick, onClick, triggerAnimation]);
5877
+ return (jsx("div", { className: cn$3(className), style: {
5878
+ width: size,
5879
+ height: size,
5880
+ display: 'inline-block',
5881
+ ...style,
5882
+ }, 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", children: [jsx(motion.path, { d: "M17.5 12c0 4.4-3.6 8-8 8A4.5 4.5 0 0 1 5 15.5c0-6 8-4 8-8.5a3 3 0 1 0-6 0c0 3 2.5 8.5 12 13", variants: pathVariants$2, initial: "normal", animate: controls, custom: 0 }), jsx(motion.path, { d: "M16 12h3", variants: pathVariants$2, initial: "normal", animate: controls, custom: 0.2 })] }) }));
5883
+ });
5884
+ Ampersand.displayName = 'Ampersand';
5885
+
5886
+ function cn$2(...inputs) {
5887
+ return twMerge(clsx(inputs));
5888
+ }
5889
+ const pathVariants$1 = {
5890
+ normal: {
5891
+ pathLength: 1,
5892
+ pathOffset: 0,
5893
+ opacity: 1,
5894
+ transition: { duration: 0.4 },
5895
+ },
5896
+ animate: {
5897
+ pathLength: [0, 1],
5898
+ pathOffset: [1, 0],
5899
+ opacity: [0, 1],
5900
+ transition: {
5901
+ duration: 0.7,
5902
+ ease: 'easeInOut',
5903
+ },
5904
+ },
5905
+ };
5906
+ const Ampersands = forwardRef(({ size = 28, className, style, autoAnimateOnLoad = false, hoverable = true, loopOnHover = false, animateOnClick = false, onMouseEnter, onMouseLeave, onClick, ...props }, ref) => {
5907
+ const controls = useAnimation();
5908
+ const loopRef = useRef(loopOnHover);
5909
+ const isControlledRef = useRef(false);
5910
+ const triggerAnimation = useCallback(async () => {
5911
+ await controls.start('animate');
5912
+ await controls.start('normal');
5913
+ if (loopRef.current)
5914
+ triggerAnimation();
5915
+ }, [controls]);
5916
+ useEffect(() => {
5917
+ loopRef.current = loopOnHover;
5918
+ }, [loopOnHover]);
5919
+ useEffect(() => {
5920
+ if (autoAnimateOnLoad)
5921
+ triggerAnimation();
5922
+ }, [autoAnimateOnLoad, triggerAnimation]);
5923
+ useImperativeHandle(ref, () => {
5924
+ isControlledRef.current = true;
5925
+ return {
5926
+ startAnimation: () => controls.start('animate'),
5927
+ stopAnimation: () => controls.start('normal'),
5928
+ };
5929
+ });
5930
+ const handleMouseEnter = (e) => {
5931
+ if (!isControlledRef.current && hoverable)
5932
+ triggerAnimation();
5933
+ onMouseEnter?.(e);
5934
+ };
5935
+ const handleMouseLeave = (e) => {
5936
+ if (!isControlledRef.current && hoverable)
5937
+ controls.start('normal');
5938
+ onMouseLeave?.(e);
5939
+ };
5940
+ const handleClick = (e) => {
5941
+ if (animateOnClick)
5942
+ triggerAnimation();
5943
+ onClick?.(e);
5944
+ };
5945
+ 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.path, { d: "M10 17c-5-3-7-7-7-9a2 2 0 0 1 4 0c0 2.5-5 2.5-5 6 0 1.7 1.3 3 3 3 2.8 0 5-2.2 5-5", variants: pathVariants$1, animate: controls, initial: "normal" }), jsx(motion.path, { d: "M22 17c-5-3-7-7-7-9a2 2 0 0 1 4 0c0 2.5-5 2.5-5 6 0 1.7 1.3 3 3 3 2.8 0 5-2.2 5-5", variants: pathVariants$1, animate: controls, initial: "normal" })] }) }));
5946
+ });
5947
+ Ampersands.displayName = 'Ampersands';
5948
+
5949
+ function cn$1(...inputs) {
5950
+ return twMerge(clsx(inputs));
5951
+ }
5952
+ const pathVariants = {
5953
+ normal: {
5954
+ pathLength: 1,
5955
+ pathOffset: 0,
5956
+ opacity: 1,
5957
+ transition: { duration: 0.4 },
5958
+ },
5959
+ animate: {
5960
+ pathLength: [0, 1],
5961
+ pathOffset: [1, 0],
5962
+ opacity: [0, 1],
5963
+ transition: {
5964
+ duration: 0.7,
5965
+ ease: 'easeInOut',
5966
+ },
5967
+ },
5968
+ };
5969
+ const Apple = forwardRef(({ size = 28, className, style, autoAnimateOnLoad = false, hoverable = true, loopOnHover = false, animateOnClick = false, onMouseEnter, onMouseLeave, onClick, ...props }, ref) => {
5970
+ const controls = useAnimation();
5971
+ const loopRef = useRef(loopOnHover);
5972
+ const isControlledRef = useRef(false);
5973
+ const triggerAnimation = useCallback(async () => {
5974
+ await controls.start('animate');
5975
+ await controls.start('normal');
5976
+ if (loopRef.current)
5977
+ triggerAnimation();
5978
+ }, [controls]);
5979
+ useEffect(() => {
5980
+ loopRef.current = loopOnHover;
5981
+ }, [loopOnHover]);
5982
+ useEffect(() => {
5983
+ if (autoAnimateOnLoad)
5984
+ triggerAnimation();
5985
+ }, [autoAnimateOnLoad, triggerAnimation]);
5986
+ useImperativeHandle(ref, () => {
5987
+ isControlledRef.current = true;
5988
+ return {
5989
+ startAnimation: () => controls.start('animate'),
5990
+ stopAnimation: () => controls.start('normal'),
5991
+ };
5992
+ });
5993
+ const handleMouseEnter = (e) => {
5994
+ if (!isControlledRef.current && hoverable)
5995
+ triggerAnimation();
5996
+ onMouseEnter?.(e);
5997
+ };
5998
+ const handleMouseLeave = (e) => {
5999
+ if (!isControlledRef.current && hoverable)
6000
+ controls.start('normal');
6001
+ onMouseLeave?.(e);
6002
+ };
6003
+ const handleClick = (e) => {
6004
+ if (animateOnClick)
6005
+ triggerAnimation();
6006
+ onClick?.(e);
6007
+ };
6008
+ 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", 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 20.94c1.5 0 2.75 1.06 4 1.06 3 0 6-8 6-12.22A4.91 4.91 0 0 0 17 5c-2.22 0-4 1.44-5 2-1-.56-2.78-2-5-2a4.9 4.9 0 0 0-5 4.78C2 14 5 22 8 22c1.25 0 2.5-1.06 4-1.06Z", variants: pathVariants, animate: controls, initial: "normal" }), jsx(motion.path, { d: "M10 2c1 .5 2 2 2 5", variants: pathVariants, animate: controls, initial: "normal" })] }) }));
6009
+ });
6010
+ Apple.displayName = 'Apple';
6011
+
6012
+ function cn(...inputs) {
6013
+ return twMerge(clsx(inputs));
6014
+ }
6015
+ const draw = {
6016
+ normal: { pathLength: 1, opacity: 1, transition: { duration: 0.4 } },
6017
+ animate: {
6018
+ pathLength: [0, 1],
6019
+ opacity: [0, 1],
6020
+ transition: { duration: 0.8, ease: 'easeInOut' },
6021
+ },
6022
+ };
6023
+ const Ambulance = forwardRef(({ size = 28, className, style, autoAnimateOnLoad = false, hoverable = true, loopOnHover = false, animateOnClick = false, onMouseEnter, onMouseLeave, onClick, ...props }, ref) => {
6024
+ const controls = useAnimation();
6025
+ const loopRef = useRef(loopOnHover);
6026
+ const isControlledRef = useRef(false);
6027
+ const triggerAnimation = useCallback(async () => {
6028
+ await controls.start('animate');
6029
+ await controls.start('normal');
6030
+ if (loopRef.current)
6031
+ triggerAnimation();
6032
+ }, [controls]);
6033
+ useEffect(() => {
6034
+ loopRef.current = loopOnHover;
6035
+ }, [loopOnHover]);
6036
+ useEffect(() => {
6037
+ if (autoAnimateOnLoad)
6038
+ triggerAnimation();
6039
+ }, [autoAnimateOnLoad, triggerAnimation]);
6040
+ useImperativeHandle(ref, () => {
6041
+ isControlledRef.current = true;
6042
+ return {
6043
+ startAnimation: () => controls.start('animate'),
6044
+ stopAnimation: () => controls.start('normal'),
6045
+ };
6046
+ });
6047
+ const handleMouseEnter = (e) => {
6048
+ if (!isControlledRef.current && hoverable)
6049
+ triggerAnimation();
6050
+ onMouseEnter?.(e);
6051
+ };
6052
+ const handleMouseLeave = (e) => {
6053
+ if (!isControlledRef.current && hoverable)
6054
+ controls.start('normal');
6055
+ onMouseLeave?.(e);
6056
+ };
6057
+ const handleClick = (e) => {
6058
+ if (animateOnClick)
6059
+ triggerAnimation();
6060
+ onClick?.(e);
6061
+ };
6062
+ 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", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", width: "100%", height: "100%", children: [jsx(motion.path, { d: "M10 10H6", variants: draw, animate: controls, initial: "normal" }), jsx(motion.path, { d: "M14 18V6a2 2 0 0 0-2-2H4a2 2 0 0 0-2 2v11a1 1 0 0 0 1 1h2", variants: draw, animate: controls, initial: "normal" }), jsx(motion.path, { d: "M19 18h2a1 1 0 0 0 1-1v-3.28a1 1 0 0 0-.684-.948l-1.923-.641a1 1 0 0 1-.578-.502l-1.539-3.076A1 1 0 0 0 16.382 8H14", variants: draw, animate: controls, initial: "normal" }), jsx(motion.path, { d: "M8 8v4", variants: draw, animate: controls, initial: "normal" }), jsx(motion.path, { d: "M9 18h6", variants: draw, animate: controls, initial: "normal" }), jsx(motion.circle, { cx: "17", cy: "18", r: "2", animate: { scale: [1, 1.2, 1], fill: ['#000', '#000', '#000'] }, transition: { repeat: Infinity, duration: 1 } }), jsx(motion.circle, { cx: "7", cy: "18", r: "2", animate: { scale: [1, 1.2, 1], fill: ['#000', '#000', '#000'] }, transition: { repeat: Infinity, duration: 1, delay: 0.3 } })] }) }));
6063
+ });
6064
+ Ambulance.displayName = 'Ambulance';
6065
+
6066
+ export { AccessibilityActivity, Activity, AirVent, Airplay, AlarmClock, AlarmClockCheck, AlarmClockMinus, AlarmClockPlus, Album, AlignCenter, AlignCenterHorizontal, AlignCenterVertical, AlignEndHorizontal, AlignEndVertical, AlignHorizontalDistributeCenter, AlignHorizontalDistributeEnd, AlignHorizontalDistributeStart, AlignHorizontalJustifyCenter, AlignHorizontalJustifyEnd, AlignHorizontalJustifyStart, AlignHorizontalSpaceAround, AlignHorizontalSpaceBetween, AlignJustify, AlignLeft, AlignRight, AlignStartHorizontal, AlignStartVertical, AlignVerticalDistributeCenter, AlignVerticalDistributeEnd, AlignVerticalDistributeStart, AlignVerticalJustifyCenter, AlignVerticalJustifyEnd, AlignVerticalJustifyStart, AlignVerticalSpaceAround, AlignVerticalSpaceBetween, Ambulance, Ampersand, Ampersands, Apple, ArrowDown, ArrowUp, SquareActivity };
3437
6067
  //# sourceMappingURL=index.js.map