aliveicon 1.0.22 → 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.
Files changed (31) hide show
  1. package/dist/cjs/index.js +1865 -10
  2. package/dist/cjs/index.js.map +1 -1
  3. package/dist/esm/index.js +1818 -7
  4. package/dist/esm/index.js.map +1 -1
  5. package/dist/types/icons/A-Arrow-Down.d.ts +13 -0
  6. package/dist/types/icons/A-Arrow-Up.d.ts +13 -0
  7. package/dist/types/icons/Accessibility.d.ts +12 -0
  8. package/dist/types/icons/Activity.d.ts +12 -0
  9. package/dist/types/icons/Air-vent.d.ts +10 -0
  10. package/dist/types/icons/Airplay.d.ts +12 -0
  11. package/dist/types/icons/Alarm-Clock-Check.d.ts +14 -0
  12. package/dist/types/icons/Alarm-Clock-Minus.d.ts +14 -0
  13. package/dist/types/icons/Alarm-Clock-Plus.d.ts +14 -0
  14. package/dist/types/icons/AlarmClock.d.ts +14 -0
  15. package/dist/types/icons/Album.d.ts +12 -0
  16. package/dist/types/icons/Align-Center-Horizontal.d.ts +15 -0
  17. package/dist/types/icons/Align-Center-Vertical.d.ts +15 -0
  18. package/dist/types/icons/Align-Center.d.ts +16 -0
  19. package/dist/types/icons/Align-End-Horizontal.d.ts +15 -0
  20. package/dist/types/icons/Align-End-Vertical.d.ts +15 -0
  21. package/dist/types/icons/Align-Horizontal-Distributed-Center.d.ts +15 -0
  22. package/dist/types/icons/Align-Horizontal-Distributed-End.d.ts +15 -0
  23. package/dist/types/icons/Align-Horizontal-Distributed-Start.d.ts +15 -0
  24. package/dist/types/icons/Align-Horizontal-Justify-Center.d.ts +15 -0
  25. package/dist/types/icons/Align-Horizontal-Justify-End.d.ts +15 -0
  26. package/dist/types/icons/Align-Horizontal-Justify-Start.d.ts +15 -0
  27. package/dist/types/icons/Align-Horizontal-Space-Around.d.ts +15 -0
  28. package/dist/types/icons/Align-Horizontal-Space-Between.d.ts +15 -0
  29. package/dist/types/icons/Align-Justify.d.ts +15 -0
  30. package/dist/types/index.d.ts +25 -0
  31. package/package.json +1 -1
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(...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 = {
3001
+ const pathVariants$k = {
2982
3002
  normal: {
2983
3003
  opacity: 1,
2984
3004
  pathLength: 1,
@@ -3001,18 +3021,297 @@ const pathVariants = {
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(() => {
3033
+ loopRef.current = loopOnHover;
3034
+ }, [loopOnHover]);
3035
+ React.useEffect(() => {
3036
+ if (autoAnimateOnLoad)
3037
+ triggerAnimation();
3038
+ }, [autoAnimateOnLoad, triggerAnimation]);
3039
+ const handleMouseEnter = (e) => {
3040
+ if (hoverable)
3041
+ triggerAnimation();
3042
+ onMouseEnter?.(e);
3043
+ };
3044
+ const handleMouseLeave = (e) => {
3045
+ if (hoverable)
3046
+ controls.start('normal');
3047
+ onMouseLeave?.(e);
3048
+ };
3049
+ const handleClick = (e) => {
3050
+ if (animateOnClick)
3051
+ triggerAnimation();
3052
+ onClick?.(e);
3053
+ };
3054
+ return (jsxRuntime.jsx("div", { className: cn$p('rounded-md', className), style: {
3055
+ width: size,
3056
+ height: size,
3057
+ display: 'inline-block',
3058
+ ...style,
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 } })] }) }));
3060
+ }
3061
+
3062
+ function cn$o(...inputs) {
3063
+ return twMerge(clsx(inputs));
3064
+ }
3065
+ const bounceVariant$1 = {
3066
+ normal: {
3067
+ scale: 1,
3068
+ transition: {
3069
+ type: 'spring',
3070
+ stiffness: 200,
3071
+ damping: 15,
3072
+ },
3073
+ },
3074
+ animate: {
3075
+ scale: 1.2,
3076
+ transition: {
3077
+ type: 'spring',
3078
+ stiffness: 300,
3079
+ damping: 10,
3080
+ },
3081
+ },
3082
+ };
3083
+ const lineVariants$1 = {
3084
+ normal: {
3085
+ opacity: 1,
3086
+ pathLength: 1,
3087
+ pathOffset: 0,
3088
+ transition: {
3089
+ duration: 0.4,
3090
+ opacity: { duration: 0.1 },
3091
+ },
3092
+ },
3093
+ animate: {
3094
+ opacity: [0, 1],
3095
+ pathLength: [0, 1],
3096
+ pathOffset: [1, 0],
3097
+ transition: {
3098
+ duration: 0.6,
3099
+ ease: 'easeInOut',
3100
+ opacity: { duration: 0.1 },
3101
+ },
3102
+ },
3103
+ };
3104
+ const bouncePathVariants$1 = {
3105
+ hidden: {
3106
+ pathLength: 0,
3107
+ opacity: 0,
3108
+ },
3109
+ visible: (i) => ({
3110
+ pathLength: 1,
3111
+ opacity: 1,
3112
+ transition: {
3113
+ pathLength: { delay: i * 0.1, duration: 0.4, ease: 'easeInOut' },
3114
+ opacity: { delay: i * 0.1, duration: 0.2 },
3115
+ },
3116
+ }),
3117
+ };
3118
+ function ArrowDown({ size = 28, className, style, autoAnimateOnLoad = false, hoverable = true, loopOnHover = false, animateOnClick = false, isBounce = false, onMouseEnter, onMouseLeave, onClick, ...props }) {
3119
+ const controls = framerMotion.useAnimation();
3120
+ const loopRef = React.useRef(loopOnHover);
3121
+ const triggerAnimation = React.useCallback(async () => {
3122
+ await controls.start('animate');
3123
+ await controls.start('normal');
3124
+ if (loopRef.current)
3125
+ triggerAnimation();
3126
+ }, [controls]);
3127
+ React.useEffect(() => {
3128
+ loopRef.current = loopOnHover;
3129
+ }, [loopOnHover]);
3130
+ React.useEffect(() => {
3131
+ if (autoAnimateOnLoad)
3132
+ triggerAnimation();
3133
+ }, [autoAnimateOnLoad, triggerAnimation]);
3134
+ const handleMouseEnter = (e) => {
3135
+ if (hoverable)
3136
+ triggerAnimation();
3137
+ onMouseEnter?.(e);
3138
+ };
3139
+ const handleMouseLeave = (e) => {
3140
+ if (hoverable)
3141
+ controls.start('normal');
3142
+ onMouseLeave?.(e);
3143
+ };
3144
+ const handleClick = (e) => {
3145
+ if (animateOnClick)
3146
+ triggerAnimation();
3147
+ onClick?.(e);
3148
+ };
3149
+ const paths = [
3150
+ "M3.5 13h6",
3151
+ "m2 16 4.5-9 4.5 9",
3152
+ "M18 7v9",
3153
+ "m14 12 4 4 4-4",
3154
+ ];
3155
+ return (jsxRuntime.jsx("div", { className: cn$o('inline-block', className), style: {
3156
+ width: size,
3157
+ height: size,
3158
+ ...style,
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))) }) }));
3160
+ }
3161
+
3162
+ function cn$n(...inputs) {
3163
+ return twMerge(clsx(inputs));
3164
+ }
3165
+ const bounceVariant = {
3166
+ normal: {
3167
+ scale: 1,
3168
+ transition: {
3169
+ type: 'spring',
3170
+ stiffness: 200,
3171
+ damping: 15,
3172
+ },
3173
+ },
3174
+ animate: {
3175
+ scale: 1.2,
3176
+ transition: {
3177
+ type: 'spring',
3178
+ stiffness: 300,
3179
+ damping: 10,
3180
+ },
3181
+ },
3182
+ };
3183
+ const lineVariants = {
3184
+ normal: {
3185
+ opacity: 1,
3186
+ pathLength: 1,
3187
+ pathOffset: 0,
3188
+ transition: {
3189
+ duration: 0.4,
3190
+ opacity: { duration: 0.1 },
3191
+ },
3192
+ },
3193
+ animate: {
3194
+ opacity: [0, 1],
3195
+ pathLength: [0, 1],
3196
+ pathOffset: [1, 0],
3197
+ transition: {
3198
+ duration: 0.6,
3199
+ ease: 'easeInOut',
3200
+ opacity: { duration: 0.1 },
3201
+ },
3202
+ },
3203
+ };
3204
+ const bouncePathVariants = {
3205
+ hidden: {
3206
+ pathLength: 0,
3207
+ opacity: 0,
3208
+ },
3209
+ visible: (i) => ({
3210
+ pathLength: 1,
3211
+ opacity: 1,
3212
+ transition: {
3213
+ pathLength: { delay: i * 0.1, duration: 0.4, ease: 'easeInOut' },
3214
+ opacity: { delay: i * 0.1, duration: 0.2 },
3215
+ },
3216
+ }),
3217
+ };
3218
+ function ArrowUp({ size = 28, className, style, autoAnimateOnLoad = false, hoverable = true, loopOnHover = false, animateOnClick = false, isBounce = false, onMouseEnter, onMouseLeave, onClick, ...props }) {
3219
+ const controls = framerMotion.useAnimation();
3220
+ const loopRef = React.useRef(loopOnHover);
3221
+ const triggerAnimation = React.useCallback(async () => {
3222
+ await controls.start('animate');
3223
+ await controls.start('normal');
3224
+ if (loopRef.current)
3225
+ triggerAnimation();
3226
+ }, [controls]);
3227
+ React.useEffect(() => {
3228
+ loopRef.current = loopOnHover;
3229
+ }, [loopOnHover]);
3230
+ React.useEffect(() => {
3231
+ if (autoAnimateOnLoad)
3232
+ triggerAnimation();
3233
+ }, [autoAnimateOnLoad, triggerAnimation]);
3234
+ const handleMouseEnter = (e) => {
3235
+ if (hoverable)
3236
+ triggerAnimation();
3237
+ onMouseEnter?.(e);
3238
+ };
3239
+ const handleMouseLeave = (e) => {
3240
+ if (hoverable)
3241
+ controls.start('normal');
3242
+ onMouseLeave?.(e);
3243
+ };
3244
+ const handleClick = (e) => {
3245
+ if (animateOnClick)
3246
+ triggerAnimation();
3247
+ onClick?.(e);
3248
+ };
3249
+ const paths = [
3250
+ "M3.5 13h6", // horizontal part of the "A"
3251
+ "m2 16 4.5-9 4.5 9", // the "A" structure stays same
3252
+ "M18 16V7", // arrow line, now reversed (was 7→16, now 16→7)
3253
+ "m22 12-4-4-4 4", // arrow head pointing upward
3254
+ ];
3255
+ return (jsxRuntime.jsx("div", { className: cn$n('inline-block', className), style: {
3256
+ width: size,
3257
+ height: size,
3258
+ ...style,
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))) }) }));
3260
+ }
3261
+
3262
+ function cn$m(...inputs) {
3263
+ return twMerge(clsx(inputs));
3264
+ }
3265
+ const circleVariants = {
3266
+ normal: {
3267
+ scale: 1,
3268
+ opacity: 1,
3269
+ transition: { duration: 0.4 },
3270
+ },
3271
+ animate: {
3272
+ scale: [1, 1.2, 1],
3273
+ opacity: [1, 0.8, 1],
3274
+ transition: {
3275
+ duration: 0.6,
3276
+ times: [0, 0.5, 1],
3277
+ ease: 'easeInOut'
3278
+ },
3279
+ },
3280
+ };
3281
+ const pathVariants$j = {
3282
+ normal: {
3283
+ opacity: 1,
3284
+ pathLength: 1,
3285
+ pathOffset: 0,
3286
+ transition: {
3287
+ duration: 0.4,
3288
+ opacity: { duration: 0.1 },
3289
+ },
3290
+ },
3291
+ animate: {
3292
+ opacity: [0, 1],
3293
+ pathLength: [0, 1],
3294
+ pathOffset: [1, 0],
3295
+ transition: {
3296
+ duration: 0.6,
3297
+ ease: 'linear',
3298
+ opacity: { duration: 0.1 },
3299
+ },
3300
+ },
3301
+ };
3302
+ function AccessibilityActivity({ size = 28, className, style, autoAnimateOnLoad = false, hoverable = true, loopOnHover = false, animateOnClick = false, onMouseEnter, onMouseLeave, onClick, ...props }) {
3303
+ const controls = framerMotion.useAnimation();
3304
+ const loopRef = React.useRef(loopOnHover);
3305
+ const triggerAnimation = React.useCallback(async () => {
3306
+ await controls.start('animate');
3307
+ await controls.start('normal');
3308
+ if (loopRef.current)
3309
+ triggerAnimation();
3310
+ }, [controls]);
3311
+ React.useEffect(() => {
3013
3312
  loopRef.current = loopOnHover;
3014
3313
  }, [loopOnHover]);
3015
- react.useEffect(() => {
3314
+ React.useEffect(() => {
3016
3315
  if (autoAnimateOnLoad)
3017
3316
  triggerAnimation();
3018
3317
  }, [autoAnimateOnLoad, triggerAnimation]);
@@ -3031,13 +3330,1569 @@ function SquareActivity({ size = 28, className, style, autoAnimateOnLoad = false
3031
3330
  triggerAnimation();
3032
3331
  onClick?.(e);
3033
3332
  };
3034
- return (jsxRuntime.jsx("div", { className: cn('rounded-md', className), style: {
3333
+ return (jsxRuntime.jsx("div", { className: cn$m('rounded-md', className), style: {
3035
3334
  width: size,
3036
3335
  height: size,
3037
3336
  display: 'inline-block',
3038
3337
  ...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, 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 } })] }) }));
3339
+ }
3340
+
3341
+ function cn$l(...inputs) {
3342
+ return twMerge(clsx(inputs));
3040
3343
  }
3344
+ const pathVariants$i = {
3345
+ normal: {
3346
+ opacity: 1,
3347
+ pathLength: 1,
3348
+ pathOffset: 0,
3349
+ transition: {
3350
+ duration: 0.4,
3351
+ opacity: { duration: 0.1 },
3352
+ },
3353
+ },
3354
+ animate: {
3355
+ opacity: [0, 1],
3356
+ pathLength: [0, 1],
3357
+ pathOffset: [1, 0],
3358
+ transition: {
3359
+ duration: 0.6,
3360
+ ease: 'linear',
3361
+ opacity: { duration: 0.1 },
3362
+ },
3363
+ },
3364
+ };
3365
+ function Activity({ size = 28, className, style, autoAnimateOnLoad = false, hoverable = true, loopOnHover = false, animateOnClick = false, onMouseEnter, onMouseLeave, onClick, ...props }) {
3366
+ const controls = framerMotion.useAnimation();
3367
+ const loopRef = React.useRef(loopOnHover);
3368
+ const triggerAnimation = React.useCallback(async () => {
3369
+ console.log("started animation");
3370
+ await controls.start('animate');
3371
+ await controls.start('normal');
3372
+ if (loopRef.current)
3373
+ triggerAnimation();
3374
+ }, [controls]);
3375
+ React.useEffect(() => {
3376
+ loopRef.current = loopOnHover;
3377
+ }, [loopOnHover]);
3378
+ React.useEffect(() => {
3379
+ if (autoAnimateOnLoad)
3380
+ triggerAnimation();
3381
+ }, [autoAnimateOnLoad, triggerAnimation]);
3382
+ const handleMouseEnter = (e) => {
3383
+ if (hoverable)
3384
+ triggerAnimation();
3385
+ onMouseEnter?.(e);
3386
+ };
3387
+ const handleMouseLeave = (e) => {
3388
+ if (hoverable)
3389
+ controls.start('normal');
3390
+ onMouseLeave?.(e);
3391
+ };
3392
+ const handleClick = (e) => {
3393
+ if (animateOnClick)
3394
+ triggerAnimation();
3395
+ onClick?.(e);
3396
+ };
3397
+ return (jsxRuntime.jsx("div", { className: cn$l('rounded-md', className), style: {
3398
+ width: size,
3399
+ height: size,
3400
+ display: 'inline-block',
3401
+ ...style,
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 } }) }) }));
3403
+ }
3404
+
3405
+ function cn$k(...inputs) {
3406
+ return twMerge(clsx(inputs));
3407
+ }
3408
+ const windVariants = {
3409
+ normal: (custom) => ({
3410
+ pathLength: 1,
3411
+ opacity: 1,
3412
+ pathOffset: 0,
3413
+ transition: {
3414
+ duration: 0.3,
3415
+ ease: 'easeInOut',
3416
+ delay: custom,
3417
+ },
3418
+ }),
3419
+ animate: (custom) => ({
3420
+ pathLength: [0, 1],
3421
+ opacity: [0, 1],
3422
+ pathOffset: [1, 0],
3423
+ transition: {
3424
+ duration: 0.5,
3425
+ ease: 'easeInOut',
3426
+ delay: custom,
3427
+ },
3428
+ }),
3429
+ };
3430
+ const AirVent = React.forwardRef(({ onMouseEnter, onMouseLeave, className, size = 28, ...props }, ref) => {
3431
+ const controls = framerMotion.useAnimation();
3432
+ const isControlledRef = React.useRef(false);
3433
+ React.useImperativeHandle(ref, () => {
3434
+ isControlledRef.current = true;
3435
+ return {
3436
+ startAnimation: () => controls.start('animate'),
3437
+ stopAnimation: () => controls.start('normal'),
3438
+ };
3439
+ });
3440
+ const handleMouseEnter = React.useCallback((e) => {
3441
+ if (!isControlledRef.current) {
3442
+ controls.start('animate');
3443
+ }
3444
+ else {
3445
+ onMouseEnter?.(e);
3446
+ }
3447
+ }, [controls, onMouseEnter]);
3448
+ const handleMouseLeave = React.useCallback((e) => {
3449
+ if (!isControlledRef.current) {
3450
+ controls.start('normal');
3451
+ }
3452
+ else {
3453
+ onMouseLeave?.(e);
3454
+ }
3455
+ }, [controls, onMouseLeave]);
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 })] }) }));
3457
+ });
3458
+ AirVent.displayName = 'AirVent';
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';
3041
4871
 
4872
+ exports.AccessibilityActivity = AccessibilityActivity;
4873
+ exports.Activity = Activity;
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;
4895
+ exports.ArrowDown = ArrowDown;
4896
+ exports.ArrowUp = ArrowUp;
3042
4897
  exports.SquareActivity = SquareActivity;
3043
4898
  //# sourceMappingURL=index.js.map