aliveicon 1.0.23 → 1.0.24

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