my-animated-components 1.3.0 → 1.3.2

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 (2) hide show
  1. package/dist/index.js +104 -53
  2. package/package.json +5 -4
package/dist/index.js CHANGED
@@ -1,5 +1,7 @@
1
- import React, { useState, useRef, useEffect } from 'react';
2
- import { motion, AnimatePresence } from 'framer-motion';
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var framerMotion = require('framer-motion');
3
5
 
4
6
  const motionVariants = {
5
7
  null: {},
@@ -519,7 +521,7 @@ const Button = ({ children, className = '', color = 'primary', size = 'md', onCl
519
521
  lg: 'px-4 py-2 text-lg',
520
522
  xl: 'px-6 py-3 text-xl',
521
523
  };
522
- return (React.createElement(motion.button, { className: `${baseClasses} ${colorClasses[color][variant]} ${sizeClasses[size]} ${className}`, onClick: onClick, disabled: disabled, variants: motionVariants[motionVariant], initial: "hidden", animate: "visible" }, children));
524
+ return (React.createElement(framerMotion.motion.button, { className: `${baseClasses} ${colorClasses[color][variant]} ${sizeClasses[size]} ${className}`, onClick: onClick, disabled: disabled, variants: motionVariants[motionVariant], initial: "hidden", animate: "visible" }, children));
523
525
  };
524
526
 
525
527
  const IconButton = ({ className = '', color = 'primary', size = 'md', icon, onClick, disabled = false, variant = 'solid', motionVariant = 'fadeIn', // Default motion variant
@@ -564,11 +566,11 @@ const IconButton = ({ className = '', color = 'primary', size = 'md', icon, onCl
564
566
  lg: 'p-2.5',
565
567
  xl: 'p-3',
566
568
  };
567
- return (React.createElement(motion.button, { className: `${baseClasses} ${colorClasses[color][variant]} ${sizeClasses[size]} ${className}`, onClick: onClick, disabled: disabled, variants: motionVariants[motionVariant], initial: "hidden", animate: "visible", whileHover: { scale: 1.1 }, whileTap: { scale: 0.95 } }, icon));
569
+ return (React.createElement(framerMotion.motion.button, { className: `${baseClasses} ${colorClasses[color][variant]} ${sizeClasses[size]} ${className}`, onClick: onClick, disabled: disabled, variants: motionVariants[motionVariant], initial: "hidden", animate: "visible", whileHover: { scale: 1.1 }, whileTap: { scale: 0.95 } }, icon));
568
570
  };
569
571
 
570
572
  const Accordion = ({ className = '', items, color = 'primary', variant = 'solid', motionVariant = 'fadeIn', }) => {
571
- const [openIndex, setOpenIndex] = useState(null);
573
+ const [openIndex, setOpenIndex] = React.useState(null);
572
574
  const toggleItem = (index) => {
573
575
  setOpenIndex(openIndex === index ? null : index);
574
576
  };
@@ -608,9 +610,9 @@ const Accordion = ({ className = '', items, color = 'primary', variant = 'solid'
608
610
  return (React.createElement("div", { className: `space-y-2 ${className}` }, items.map((item, index) => (React.createElement("div", { key: index, className: `border rounded-md ${variantClasses}` },
609
611
  React.createElement("button", { className: `flex justify-between items-center w-full px-4 py-2 text-left focus:outline-none`, onClick: () => toggleItem(index) },
610
612
  React.createElement("span", null, item.title),
611
- React.createElement(motion.svg, { className: "w-5 h-5", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 20 20", fill: "currentColor", animate: { rotate: openIndex === index ? 180 : 0 }, transition: { duration: 0.3 } },
613
+ React.createElement(framerMotion.motion.svg, { className: "w-5 h-5", xmlns: "http://www.w3.org/2000/svg", viewBox: "0 0 20 20", fill: "currentColor", animate: { rotate: openIndex === index ? 180 : 0 }, transition: { duration: 0.3 } },
612
614
  React.createElement("path", { fillRule: "evenodd", d: "M5.293 7.293a1 1 0 011.414 0L10 10.586l3.293-3.293a1 1 0 111.414 1.414l-4 4a1 1 0 01-1.414 0l-4-4a1 1 0 010-1.414z", clipRule: "evenodd" }))),
613
- React.createElement(AnimatePresence, null, openIndex === index && (React.createElement(motion.div, { variants: motionVariants[motionVariant], initial: "hidden", animate: "visible", exit: "hidden", className: "px-4 py-2 border-t" }, item.content))))))));
615
+ React.createElement(framerMotion.AnimatePresence, null, openIndex === index && (React.createElement(framerMotion.motion.div, { variants: motionVariants[motionVariant], initial: "hidden", animate: "visible", exit: "hidden", className: "px-4 py-2 border-t" }, item.content))))))));
614
616
  };
615
617
 
616
618
  const Alert = ({ children, className = '', color = 'primary', onClose, motionVariant = 'fadeIn', // Default motion variant
@@ -623,7 +625,7 @@ const Alert = ({ children, className = '', color = 'primary', onClose, motionVar
623
625
  warning: 'bg-yellow-100 text-yellow-700',
624
626
  info: 'bg-indigo-100 text-indigo-700',
625
627
  };
626
- return (React.createElement(motion.div, { className: `p-4 rounded-md ${colorClasses[color]} ${className}`, role: "alert", variants: motionVariants[motionVariant], initial: "hidden", animate: "visible", exit: "hidden", transition: { duration: 0.3 } },
628
+ return (React.createElement(framerMotion.motion.div, { className: `p-4 rounded-md ${colorClasses[color]} ${className}`, role: "alert", variants: motionVariants[motionVariant], initial: "hidden", animate: "visible", exit: "hidden", transition: { duration: 0.3 } },
627
629
  React.createElement("div", { className: "flex" },
628
630
  React.createElement("div", { className: "flex-grow" }, children),
629
631
  onClose && (React.createElement("button", { type: "button", className: "ml-auto -mx-1.5 -my-1.5 rounded-lg focus:ring-2 focus:ring-blue-400 p-1.5 inline-flex h-8 w-8", onClick: onClose, "aria-label": "Close" },
@@ -677,7 +679,7 @@ const Badge = ({ children, className = '', color = 'primary', size = 'md', motio
677
679
  padding: sizeStyles[size].padding,
678
680
  fontSize: sizeStyles[size].fontSize,
679
681
  };
680
- return (React.createElement(motion.span, { className: `inline-flex items-center font-medium rounded-full ${className}`, style: customStyle, variants: motionVariants[motionVariant], initial: "hidden", animate: "visible", exit: "hidden", transition: { duration: 0.3 } }, children));
682
+ return (React.createElement(framerMotion.motion.span, { className: `inline-flex items-center font-medium rounded-full ${className}`, style: customStyle, variants: motionVariants[motionVariant], initial: "hidden", animate: "visible", exit: "hidden", transition: { duration: 0.3 } }, children));
681
683
  };
682
684
 
683
685
  const Breadcrumb = ({ className = '', items, motionVariant = 'fadeIn', color = 'primary' }) => {
@@ -690,7 +692,7 @@ const Breadcrumb = ({ className = '', items, motionVariant = 'fadeIn', color = '
690
692
  warning: 'text-yellow-600 hover:text-yellow-800',
691
693
  info: 'text-blue-400 hover:text-blue-500',
692
694
  };
693
- return (React.createElement(motion.nav, { className: `flex ${className}`, "aria-label": "Breadcrumb", variants: motionVariants[motionVariant], initial: "hidden", animate: "visible", exit: "hidden", transition: { duration: 0.3 } },
695
+ return (React.createElement(framerMotion.motion.nav, { className: `flex ${className}`, "aria-label": "Breadcrumb", variants: motionVariants[motionVariant], initial: "hidden", animate: "visible", exit: "hidden", transition: { duration: 0.3 } },
694
696
  React.createElement("ol", { className: "inline-flex items-center space-x-1 md:space-x-3" }, items.map((item, index) => (React.createElement("li", { key: index, className: "inline-flex items-center" },
695
697
  index > 0 && (React.createElement("svg", { className: "w-6 h-6 text-gray-400", fill: "currentColor", viewBox: "0 0 20 20", xmlns: "http://www.w3.org/2000/svg" },
696
698
  React.createElement("path", { fillRule: "evenodd", d: "M7.293 14.707a1 1 0 010-1.414L10.586 10 7.293 6.707a1 1 0 011.414-1.414l4 4a1 1 0 010 1.414l-4 4a1 1 0 01-1.414 0z", clipRule: "evenodd" }))),
@@ -698,25 +700,25 @@ const Breadcrumb = ({ className = '', items, motionVariant = 'fadeIn', color = '
698
700
  };
699
701
 
700
702
  const Card = ({ children, className = '', motionVariant = 'fadeIn' }) => {
701
- return (React.createElement(motion.div, { className: `bg-white shadow rounded-lg overflow-hidden ${className}`, variants: motionVariants[motionVariant], initial: "hidden", animate: "visible", exit: "hidden", transition: { duration: 0.3 } }, children));
703
+ return (React.createElement(framerMotion.motion.div, { className: `bg-white shadow rounded-lg overflow-hidden ${className}`, variants: motionVariants[motionVariant], initial: "hidden", animate: "visible", exit: "hidden", transition: { duration: 0.3 } }, children));
702
704
  };
703
705
 
704
706
  const CardBody = ({ children, className = '', motionVariant = 'fadeIn' }) => {
705
- return (React.createElement(motion.div, { className: `px-4 py-5 sm:p-6 ${className}`, variants: motionVariants[motionVariant], initial: "hidden", animate: "visible", exit: "hidden", transition: { duration: 0.3 } }, children));
707
+ return (React.createElement(framerMotion.motion.div, { className: `px-4 py-5 sm:p-6 ${className}`, variants: motionVariants[motionVariant], initial: "hidden", animate: "visible", exit: "hidden", transition: { duration: 0.3 } }, children));
706
708
  };
707
709
 
708
710
  const CardFooter = ({ children, className = '', motionVariant = 'fadeIn' }) => {
709
- return (React.createElement(motion.div, { className: `px-4 py-4 sm:px-6 ${className}`, variants: motionVariants[motionVariant], initial: "hidden", animate: "visible", exit: "hidden", transition: { duration: 0.3 } }, children));
711
+ return (React.createElement(framerMotion.motion.div, { className: `px-4 py-4 sm:px-6 ${className}`, variants: motionVariants[motionVariant], initial: "hidden", animate: "visible", exit: "hidden", transition: { duration: 0.3 } }, children));
710
712
  };
711
713
 
712
714
  const CardHeader = ({ children, className = '', motionVariant = 'fadeIn' }) => {
713
- return (React.createElement(motion.div, { className: `px-4 py-5 sm:px-6 ${className}`, variants: motionVariants[motionVariant], initial: "hidden", animate: "visible", exit: "hidden", transition: { duration: 0.3 } }, children));
715
+ return (React.createElement(framerMotion.motion.div, { className: `px-4 py-5 sm:px-6 ${className}`, variants: motionVariants[motionVariant], initial: "hidden", animate: "visible", exit: "hidden", transition: { duration: 0.3 } }, children));
714
716
  };
715
717
 
716
718
  const Dropdown = ({ children, className = '', trigger, motionVariant = 'fadeIn' }) => {
717
- const [isOpen, setIsOpen] = useState(false);
718
- const dropdownRef = useRef(null);
719
- useEffect(() => {
719
+ const [isOpen, setIsOpen] = React.useState(false);
720
+ const dropdownRef = React.useRef(null);
721
+ React.useEffect(() => {
720
722
  const handleClickOutside = (event) => {
721
723
  if (dropdownRef.current && !dropdownRef.current.contains(event.target)) {
722
724
  setIsOpen(false);
@@ -730,7 +732,7 @@ const Dropdown = ({ children, className = '', trigger, motionVariant = 'fadeIn'
730
732
  return (React.createElement("div", { className: `relative inline-block text-left ${className}`, ref: dropdownRef },
731
733
  React.createElement("div", null,
732
734
  React.createElement("button", { type: "button", onClick: () => setIsOpen(prev => !prev) }, trigger),
733
- React.createElement(AnimatePresence, null, isOpen && (React.createElement(motion.div, { variants: motionVariants[motionVariant], initial: "hidden", animate: "visible", exit: "hidden", transition: { duration: 0.3 } }, children))))));
735
+ React.createElement(framerMotion.AnimatePresence, null, isOpen && (React.createElement(framerMotion.motion.div, { variants: motionVariants[motionVariant], initial: "hidden", animate: "visible", exit: "hidden", transition: { duration: 0.3 } }, children))))));
734
736
  };
735
737
 
736
738
  const DropdownItem = ({ children, className = '' }) => {
@@ -746,7 +748,7 @@ const Checkbox = ({ className = '', label, checked, onChange, color = 'primary',
746
748
  warning: 'text-yellow-500 focus:ring-yellow-400 hover:text-yellow-600',
747
749
  info: 'text-blue-400 focus:ring-blue-300 hover:text-blue-500',
748
750
  };
749
- return (React.createElement(motion.label, { className: `inline-flex items-center cursor-pointer select-none ${className}`, initial: { opacity: 0, x: -20 }, animate: { opacity: 1, x: 0 }, transition: { duration: 0.3 }, variants: motionVariants[motionVariant] },
751
+ return (React.createElement(framerMotion.motion.label, { className: `inline-flex items-center cursor-pointer select-none ${className}`, initial: { opacity: 0, x: -20 }, animate: { opacity: 1, x: 0 }, transition: { duration: 0.3 }, variants: motionVariants[motionVariant] },
750
752
  React.createElement("input", { type: "checkbox", className: `form-checkbox h-5 w-5 rounded focus:ring-2 ${colorClasses[color]}`, checked: checked, onChange: onChange }),
751
753
  React.createElement("span", { className: `ml-2 font-medium ${colorClasses[color]}` }, label)));
752
754
  };
@@ -754,7 +756,7 @@ const Checkbox = ({ className = '', label, checked, onChange, color = 'primary',
754
756
  const FileUpload = ({ className = '', onChange, accept, multiple, buttonColor = 'primary', // Default button color
755
757
  motionVariant = 'fadeIn', // Default motion variant
756
758
  }) => {
757
- const fileInputRef = useRef(null);
759
+ const fileInputRef = React.useRef(null);
758
760
  const handleClick = () => {
759
761
  fileInputRef.current?.click();
760
762
  };
@@ -770,7 +772,7 @@ motionVariant = 'fadeIn', // Default motion variant
770
772
  warning: 'bg-yellow-500 text-white hover:bg-yellow-600 focus:ring-yellow-400',
771
773
  info: 'bg-blue-400 text-white hover:bg-blue-500 focus:ring-blue-300',
772
774
  };
773
- return (React.createElement(motion.div, { className: `flex items-center ${className}`, initial: { opacity: 0, x: -20 }, animate: { opacity: 1, x: 0 }, transition: { duration: 0.3 }, variants: motionVariants[motionVariant] },
775
+ return (React.createElement(framerMotion.motion.div, { className: `flex items-center ${className}`, initial: { opacity: 0, x: -20 }, animate: { opacity: 1, x: 0 }, transition: { duration: 0.3 }, variants: motionVariants[motionVariant] },
774
776
  React.createElement("button", { type: "button", onClick: handleClick, className: `px-4 py-2 text-sm font-medium rounded-md focus:outline-none focus:ring-2 focus:ring-offset-2 ${buttonColorClasses[buttonColor]}` }, "Choose File"),
775
777
  React.createElement("input", { type: "file", ref: fileInputRef, onChange: handleChange, accept: accept, multiple: multiple, className: "hidden" })));
776
778
  };
@@ -799,7 +801,7 @@ const Input = ({ className = '', size = 'md', type = 'text', placeholder, value,
799
801
  green: 'text-green-600',
800
802
  red: 'text-red-600',
801
803
  };
802
- return (React.createElement(motion.div, { initial: { opacity: 0, x: -20 }, animate: { opacity: 1, x: 0 }, transition: { duration: 0.3 } },
804
+ return (React.createElement(framerMotion.motion.div, { initial: { opacity: 0, x: -20 }, animate: { opacity: 1, x: 0 }, transition: { duration: 0.3 } },
803
805
  React.createElement("input", { type: type, className: `w-full rounded-md ${sizeClasses[size]} ${colorClasses[color]} ${textColorClasses[textColor]} ${className} focus:outline-none focus:ring-2`, placeholder: placeholder, value: value, onChange: onChange })));
804
806
  };
805
807
 
@@ -822,7 +824,7 @@ const Radio = ({ className = '', label, name, value, checked, onChange, color =
822
824
  lg: 'h-7 w-7',
823
825
  xl: 'h-8 w-8',
824
826
  };
825
- return (React.createElement(motion.label, { className: `${baseClasses} ${className}`, initial: { opacity: 0, x: -20 }, animate: { opacity: 1, x: 0 }, transition: { duration: 0.3 }, variants: motionVariants[motionVariant] },
827
+ return (React.createElement(framerMotion.motion.label, { className: `${baseClasses} ${className}`, initial: { opacity: 0, x: -20 }, animate: { opacity: 1, x: 0 }, transition: { duration: 0.3 }, variants: motionVariants[motionVariant] },
826
828
  React.createElement("input", { type: "radio", name: name, value: value, checked: checked, onChange: onChange, className: `form-radio rounded-full border-2 focus:ring-2 ${colorClasses[color]} ${sizeClasses[size]}` }),
827
829
  React.createElement("span", { className: `ml-2 font-medium ${colorClasses[color]}` }, label)));
828
830
  };
@@ -845,7 +847,7 @@ const Select = ({ className = '', size = 'md', options, value, onChange, color =
845
847
  lg: 'px-4 py-3 text-lg',
846
848
  xl: 'px-5 py-4 text-xl',
847
849
  };
848
- return (React.createElement(motion.div, { initial: { opacity: 0, x: -20 }, animate: { opacity: 1, x: 0 }, variants: motionVariants[motionVariant], transition: { duration: 0.3 } },
850
+ return (React.createElement(framerMotion.motion.div, { initial: { opacity: 0, x: -20 }, animate: { opacity: 1, x: 0 }, variants: motionVariants[motionVariant], transition: { duration: 0.3 } },
849
851
  React.createElement("select", { className: `${baseClasses} ${colorClasses[color]} ${sizeClasses[size]} ${className}`, value: value, onChange: onChange }, options.map((option) => (React.createElement("option", { key: option.value, value: option.value }, option.label))))));
850
852
  };
851
853
 
@@ -860,7 +862,7 @@ const Switch = ({ className = '', checked, onChange, label, color = 'primary', m
860
862
  warning: 'bg-yellow-500',
861
863
  info: 'bg-blue-400',
862
864
  };
863
- return (React.createElement(motion.label, { className: `${baseClasses} ${className}`, initial: { opacity: 0, x: -20 }, animate: { opacity: 1, x: 0 }, variants: motionVariants[motionVariant], transition: { duration: 0.3 } },
865
+ return (React.createElement(framerMotion.motion.label, { className: `${baseClasses} ${className}`, initial: { opacity: 0, x: -20 }, animate: { opacity: 1, x: 0 }, variants: motionVariants[motionVariant], transition: { duration: 0.3 } },
864
866
  React.createElement("div", { className: "relative" },
865
867
  React.createElement("input", { type: "checkbox", className: "sr-only", checked: checked, onChange: (e) => onChange(e.target.checked) }),
866
868
  React.createElement("div", { className: `w-10 h-6 bg-gray-200 rounded-full shadow-inner ${checked ? colorClasses[color] : ''}` }),
@@ -886,13 +888,13 @@ const Textarea = ({ className = '', size = 'md', placeholder, value, onChange, r
886
888
  lg: 'px-4 py-3 text-lg',
887
889
  xl: 'px-5 py-4 text-xl',
888
890
  };
889
- return (React.createElement(motion.div, { initial: { opacity: 0, x: -20 }, animate: { opacity: 1, x: 0 }, variants: motionVariants[motionVariant], transition: { duration: 0.3 } },
891
+ return (React.createElement(framerMotion.motion.div, { initial: { opacity: 0, x: -20 }, animate: { opacity: 1, x: 0 }, variants: motionVariants[motionVariant], transition: { duration: 0.3 } },
890
892
  React.createElement("textarea", { className: `${baseClasses} ${colorClasses[color]} ${sizeClasses[size]} ${className}`, placeholder: placeholder, value: value, onChange: onChange, rows: rows })));
891
893
  };
892
894
 
893
895
  const Container = ({ children, className = '', fluid = false, motionVariant = 'fadeIn' }) => {
894
896
  const containerClass = fluid ? 'w-full' : 'max-w-7xl mx-auto px-4 sm:px-6 lg:px-8';
895
- return (React.createElement(motion.div, { className: `${containerClass} ${className}`, variants: motionVariants[motionVariant], initial: "hidden", animate: "visible", exit: "hidden" }, children));
897
+ return (React.createElement(framerMotion.motion.div, { className: `${containerClass} ${className}`, variants: motionVariants[motionVariant], initial: "hidden", animate: "visible", exit: "hidden" }, children));
896
898
  };
897
899
 
898
900
  const Flex = ({ children, className = '', direction = 'row', justify = 'start', align = 'start', wrap = false, }) => {
@@ -912,21 +914,21 @@ const Grid = ({ children, className = '', cols = 3, gap = 4 }) => {
912
914
 
913
915
  const List = ({ children, className = '', as = 'ul' }) => {
914
916
  const Tag = as;
915
- return (React.createElement(motion.div, { initial: { opacity: 0, y: 20 }, animate: { opacity: 1, y: 0 }, transition: { duration: 0.3 } },
917
+ return (React.createElement(framerMotion.motion.div, { initial: { opacity: 0, y: 20 }, animate: { opacity: 1, y: 0 }, transition: { duration: 0.3 } },
916
918
  React.createElement(Tag, { className: `space-y-1 ${className}` }, children)));
917
919
  };
918
920
 
919
921
  const ListItem = ({ children, className = '' }) => {
920
- return (React.createElement(motion.li, { className: className, initial: { opacity: 0, x: -20 }, animate: { opacity: 1, x: 0 }, transition: { duration: 0.3 } }, children));
922
+ return (React.createElement(framerMotion.motion.li, { className: className, initial: { opacity: 0, x: -20 }, animate: { opacity: 1, x: 0 }, transition: { duration: 0.3 } }, children));
921
923
  };
922
924
 
923
925
  const Modal = ({ children, className = '', isOpen, onClose, motionVariant = 'bounce' }) => {
924
- return (React.createElement(AnimatePresence, null, isOpen && (React.createElement(motion.div, { className: "fixed inset-0 z-50 overflow-y-auto", variants: motionVariants[motionVariant] },
926
+ return (React.createElement(framerMotion.AnimatePresence, null, isOpen && (React.createElement(framerMotion.motion.div, { className: "fixed inset-0 z-50 overflow-y-auto", variants: motionVariants[motionVariant] },
925
927
  React.createElement("div", { className: "flex items-center justify-center min-h-screen pt-4 px-4 pb-20 text-center sm:block sm:p-0" },
926
928
  React.createElement("div", { className: "fixed inset-0 transition-opacity", "aria-hidden": "true" },
927
929
  React.createElement("div", { className: "absolute inset-0 bg-black opacity-45", onClick: onClose })),
928
930
  React.createElement("span", { className: "hidden sm:inline-block sm:align-middle sm:h-screen", "aria-hidden": "true" }, "\u200B"),
929
- React.createElement(motion.div, { className: `inline-block align-bottom bg-white rounded-lg text-left overflow-hidden shadow-xl transform transition-all sm:my-8 sm:align-middle w-full max-w-lg ${className}` }, children))))));
931
+ React.createElement(framerMotion.motion.div, { className: `inline-block align-bottom bg-white rounded-lg text-left overflow-hidden shadow-xl transform transition-all sm:my-8 sm:align-middle w-full max-w-lg ${className}` }, children))))));
930
932
  };
931
933
 
932
934
  const ModalBody = ({ children, className = '' }) => {
@@ -951,12 +953,12 @@ const NavItem = ({ children, className = '', href, active = false, size = 'md',
951
953
  lg: 'text-lg px-4 py-3',
952
954
  xl: 'text-xl px-5 py-4',
953
955
  };
954
- return (React.createElement(motion.a, { href: href, className: `inline-flex items-center ${sizeClasses[size]} ${activeClass} ${className}`, whileHover: { scale: 1.05 }, whileTap: { scale: 0.95 }, variants: motionVariants[motionVariant], initial: "hidden", animate: "visible" }, children));
956
+ return (React.createElement(framerMotion.motion.a, { href: href, className: `inline-flex items-center ${sizeClasses[size]} ${activeClass} ${className}`, whileHover: { scale: 1.05 }, whileTap: { scale: 0.95 }, variants: motionVariants[motionVariant], initial: "hidden", animate: "visible" }, children));
955
957
  };
956
958
 
957
959
  const Navbar = ({ children, className = '', brand }) => {
958
- const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false);
959
- return (React.createElement(motion.nav, { className: `bg-white shadow ${className}`, initial: { opacity: 0, y: -50 }, animate: { opacity: 1, y: 0 }, transition: { duration: 0.5 } },
960
+ const [isMobileMenuOpen, setIsMobileMenuOpen] = React.useState(false);
961
+ return (React.createElement(framerMotion.motion.nav, { className: `bg-white shadow ${className}`, initial: { opacity: 0, y: -50 }, animate: { opacity: 1, y: 0 }, transition: { duration: 0.5 } },
960
962
  React.createElement("div", { className: "max-w-7xl mx-auto px-4 sm:px-6 lg:px-8" },
961
963
  React.createElement("div", { className: "flex justify-between h-16" },
962
964
  React.createElement("div", { className: "flex-shrink-0 flex items-center" }, brand),
@@ -982,11 +984,11 @@ const Offcanvas = ({ children, className = '', isOpen, onClose, position = 'left
982
984
  top: { y: '-100%' },
983
985
  bottom: { y: '100%' },
984
986
  };
985
- return (React.createElement(AnimatePresence, null, isOpen && (React.createElement("div", { className: "fixed inset-0 z-50 overflow-hidden" },
987
+ return (React.createElement(framerMotion.AnimatePresence, null, isOpen && (React.createElement("div", { className: "fixed inset-0 z-50 overflow-hidden" },
986
988
  React.createElement("div", { className: "absolute inset-0 overflow-hidden" },
987
- React.createElement(motion.div, { className: "absolute inset-0 bg-opacity-75 transition-opacity", initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 }, onClick: onClose }),
989
+ React.createElement(framerMotion.motion.div, { className: "absolute inset-0 bg-opacity-75 transition-opacity", initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 }, onClick: onClose }),
988
990
  React.createElement("section", { className: `absolute ${positionClasses[position]} max-w-md` },
989
- React.createElement(motion.div, { className: `h-full w-full transform transition ease-in-out duration-300 ${className}`, initial: variants[position], animate: { x: 0, y: 0 }, exit: variants[position], transition: { duration: 0.3 } },
991
+ React.createElement(framerMotion.motion.div, { className: `h-full w-full transform transition ease-in-out duration-300 ${className}`, initial: variants[position], animate: { x: 0, y: 0 }, exit: variants[position], transition: { duration: 0.3 } },
990
992
  React.createElement("div", { className: "h-full bg-white shadow-xl" }, children))))))));
991
993
  };
992
994
 
@@ -1017,16 +1019,16 @@ const Pagination = ({ className = '', currentPage, totalPages, onPageChange, col
1017
1019
  warning: 'text-yellow-600 bg-yellow-50 hover:bg-yellow-100 hover:text-yellow-700',
1018
1020
  info: 'text-blue-400 bg-blue-50 hover:bg-blue-100 hover:text-blue-500',
1019
1021
  };
1020
- return (React.createElement(motion.nav, { className: `flex justify-center ${className}`, initial: { opacity: 0, y: -50 }, animate: { opacity: 1, y: 0 }, transition: { duration: 0.5 }, variants: motionVariants[motionVariant] },
1022
+ return (React.createElement(framerMotion.motion.nav, { className: `flex justify-center ${className}`, initial: { opacity: 0, y: -50 }, animate: { opacity: 1, y: 0 }, transition: { duration: 0.5 }, variants: motionVariants[motionVariant] },
1021
1023
  React.createElement("ul", { className: "flex items-center -space-x-px" },
1022
1024
  React.createElement("li", null,
1023
- React.createElement(motion.button, { onClick: () => onPageChange(currentPage - 1), disabled: currentPage === 1, className: `block px-3 py-2 ml-0 leading-tight border border-gray-300 rounded-l-lg ${colorClasses[color]} ${currentPage === 1 && 'cursor-not-allowed opacity-50'}`, variants: motionVariants[motionVariant], initial: "hidden", animate: "visible" }, "Previous")),
1025
+ React.createElement(framerMotion.motion.button, { onClick: () => onPageChange(currentPage - 1), disabled: currentPage === 1, className: `block px-3 py-2 ml-0 leading-tight border border-gray-300 rounded-l-lg ${colorClasses[color]} ${currentPage === 1 && 'cursor-not-allowed opacity-50'}`, variants: motionVariants[motionVariant], initial: "hidden", animate: "visible" }, "Previous")),
1024
1026
  pageNumbers.map((number) => (React.createElement("li", { key: number },
1025
- React.createElement(motion.button, { onClick: () => onPageChange(number), className: `px-3 py-2 leading-tight border border-gray-300 ${colorClasses[color]} ${currentPage === number
1027
+ React.createElement(framerMotion.motion.button, { onClick: () => onPageChange(number), className: `px-3 py-2 leading-tight border border-gray-300 ${colorClasses[color]} ${currentPage === number
1026
1028
  ? 'bg-blue-100 text-blue-700 hover:bg-blue-200'
1027
1029
  : 'bg-white hover:bg-gray-100'}`, variants: motionVariants[motionVariant], initial: "hidden", animate: "visible" }, number)))),
1028
1030
  React.createElement("li", null,
1029
- React.createElement(motion.button, { onClick: () => onPageChange(currentPage + 1), disabled: currentPage === totalPages, className: `block px-3 py-2 leading-tight border border-gray-300 rounded-r-lg ${colorClasses[color]} ${currentPage === totalPages && 'cursor-not-allowed opacity-50'}`, variants: motionVariants[motionVariant], initial: "hidden", animate: "visible" }, "Next")))));
1031
+ React.createElement(framerMotion.motion.button, { onClick: () => onPageChange(currentPage + 1), disabled: currentPage === totalPages, className: `block px-3 py-2 leading-tight border border-gray-300 rounded-r-lg ${colorClasses[color]} ${currentPage === totalPages && 'cursor-not-allowed opacity-50'}`, variants: motionVariants[motionVariant], initial: "hidden", animate: "visible" }, "Next")))));
1030
1032
  };
1031
1033
 
1032
1034
  const ProgressBar = ({ className = '', color = 'primary', value, max = 100, motionVariant = 'fadeIn', // Default motion variant
@@ -1041,7 +1043,7 @@ const ProgressBar = ({ className = '', color = 'primary', value, max = 100, moti
1041
1043
  info: 'bg-indigo-600',
1042
1044
  };
1043
1045
  return (React.createElement("div", { className: `w-full bg-gray-200 rounded-full h-2.5 ${className}` },
1044
- React.createElement(motion.div, { className: `h-2.5 rounded-full ${colorClasses[color]}`, style: { width: `${percentage}%` }, initial: { width: 0 }, animate: { width: `${percentage}%` }, transition: { duration: 0.5 }, variants: motionVariants[motionVariant], role: "progressbar", "aria-valuenow": value, "aria-valuemin": 0, "aria-valuemax": max })));
1046
+ React.createElement(framerMotion.motion.div, { className: `h-2.5 rounded-full ${colorClasses[color]}`, style: { width: `${percentage}%` }, initial: { width: 0 }, animate: { width: `${percentage}%` }, transition: { duration: 0.5 }, variants: motionVariants[motionVariant], role: "progressbar", "aria-valuenow": value, "aria-valuemin": 0, "aria-valuemax": max })));
1045
1047
  };
1046
1048
 
1047
1049
  const Skeleton = ({ className = '', width = '100%', height = '20px', color = 'primary', motionVariant = 'fadeIn', // Default motion variant
@@ -1054,7 +1056,7 @@ const Skeleton = ({ className = '', width = '100%', height = '20px', color = 'pr
1054
1056
  warning: 'bg-yellow-200',
1055
1057
  info: 'bg-indigo-200',
1056
1058
  };
1057
- return (React.createElement(motion.div, { className: `animate-pulse rounded ${colorClasses[color]} ${className}`, style: { width, height }, variants: motionVariants[motionVariant], initial: "hidden", animate: "visible" }));
1059
+ return (React.createElement(framerMotion.motion.div, { className: `animate-pulse rounded ${colorClasses[color]} ${className}`, style: { width, height }, variants: motionVariants[motionVariant], initial: "hidden", animate: "visible" }));
1058
1060
  };
1059
1061
 
1060
1062
  const Slider = ({ className = '', min, max, value, onChange, step = 1, color = 'primary', // Default color set to primary
@@ -1070,7 +1072,7 @@ motionVariant = 'fadeIn', // Default motion variant
1070
1072
  info: 'bg-indigo-600',
1071
1073
  };
1072
1074
  return (React.createElement("div", { className: `relative w-full h-2 bg-gray-200 rounded-full ${className}` },
1073
- React.createElement(motion.div, { className: `absolute h-full ${colorClasses[color]} rounded-full`, style: { width: `${percentage}%` }, variants: motionVariants[motionVariant], initial: "hidden", animate: "visible", transition: { duration: 0.3 } }),
1075
+ React.createElement(framerMotion.motion.div, { className: `absolute h-full ${colorClasses[color]} rounded-full`, style: { width: `${percentage}%` }, variants: motionVariants[motionVariant], initial: "hidden", animate: "visible", transition: { duration: 0.3 } }),
1074
1076
  React.createElement("input", { type: "range", min: min, max: max, value: value, onChange: (e) => onChange(Number(e.target.value)), step: step, className: "absolute w-full h-full opacity-0 cursor-pointer" })));
1075
1077
  };
1076
1078
 
@@ -1097,7 +1099,7 @@ motionVariant = 'fadeIn', // Default motion variant
1097
1099
  onChange([minValue, newMaxValue]);
1098
1100
  };
1099
1101
  return (React.createElement("div", { className: `relative w-full h-2 bg-gray-200 rounded-full ${className}` },
1100
- React.createElement(motion.div, { className: `absolute h-full ${colorClasses[color]} rounded-full`, style: { left: `${minPercentage}%`, right: `${100 - maxPercentage}%` }, variants: motionVariants[motionVariant], initial: "hidden", animate: "visible", transition: { duration: 0.3 } }),
1102
+ React.createElement(framerMotion.motion.div, { className: `absolute h-full ${colorClasses[color]} rounded-full`, style: { left: `${minPercentage}%`, right: `${100 - maxPercentage}%` }, variants: motionVariants[motionVariant], initial: "hidden", animate: "visible", transition: { duration: 0.3 } }),
1101
1103
  React.createElement("input", { type: "range", min: min, max: max, value: minValue, onChange: handleMinChange, step: step, className: "absolute w-full h-full opacity-0 cursor-pointer" }),
1102
1104
  React.createElement("input", { type: "range", min: min, max: max, value: maxValue, onChange: handleMaxChange, step: step, className: "absolute w-full h-full opacity-0 cursor-pointer" })));
1103
1105
  };
@@ -1150,7 +1152,7 @@ color = 'primary', // Color customization
1150
1152
  warning: 'text-yellow-500 border-yellow-500 hover:bg-yellow-100',
1151
1153
  info: 'text-blue-400 border-blue-400 hover:bg-blue-50',
1152
1154
  };
1153
- return (React.createElement(motion.div, { className: `${baseClasses} ${colorClasses[color]} ${className}`, initial: { opacity: 0, y: 20 }, animate: { opacity: 1, y: 0 }, transition: { duration: 0.3 }, variants: motionVariants[motionVariant] },
1155
+ return (React.createElement(framerMotion.motion.div, { className: `${baseClasses} ${colorClasses[color]} ${className}`, initial: { opacity: 0, y: 20 }, animate: { opacity: 1, y: 0 }, transition: { duration: 0.3 }, variants: motionVariants[motionVariant] },
1154
1156
  React.createElement("table", { className: "min-w-full divide-y divide-gray-200" }, children)));
1155
1157
  };
1156
1158
 
@@ -1169,13 +1171,13 @@ const TableHead = ({ children, className = '' }) => {
1169
1171
  };
1170
1172
 
1171
1173
  const TableRow = ({ children, className = '' }) => {
1172
- return (React.createElement(motion.tr, { className: className, initial: { opacity: 0, x: -20 }, animate: { opacity: 1, x: 0 }, transition: { duration: 0.3 } }, children));
1174
+ return (React.createElement(framerMotion.motion.tr, { className: className, initial: { opacity: 0, x: -20 }, animate: { opacity: 1, x: 0 }, transition: { duration: 0.3 } }, children));
1173
1175
  };
1174
1176
 
1175
1177
  const Tabs = ({ className = '', tabs, motionVariant = 'fadeIn', // Default motion variant
1176
1178
  color = 'primary', // Color customization
1177
1179
  }) => {
1178
- const [activeTab, setActiveTab] = useState(0);
1180
+ const [activeTab, setActiveTab] = React.useState(0);
1179
1181
  const colorClasses = {
1180
1182
  primary: 'text-blue-600 border-blue-500',
1181
1183
  secondary: 'text-gray-600 border-gray-500',
@@ -1192,11 +1194,11 @@ color = 'primary', // Color customization
1192
1194
  ? `${colorClasses[color]}`
1193
1195
  : 'border-transparent text-gray-500 hover:text-gray-700 hover:border-gray-300'}
1194
1196
  `, onClick: () => setActiveTab(index) }, tab.label))))),
1195
- React.createElement(motion.div, { key: activeTab, initial: { opacity: 0, y: 20 }, animate: { opacity: 1, y: 0 }, transition: { duration: 0.3 }, variants: motionVariants[motionVariant], className: "mt-4" }, tabs[activeTab].content)));
1197
+ React.createElement(framerMotion.motion.div, { key: activeTab, initial: { opacity: 0, y: 20 }, animate: { opacity: 1, y: 0 }, transition: { duration: 0.3 }, variants: motionVariants[motionVariant], className: "mt-4" }, tabs[activeTab].content)));
1196
1198
  };
1197
1199
 
1198
1200
  const Tooltip = ({ children, className = '', content, position = 'top', color = 'primary', motionVariant = 'fadeIn', }) => {
1199
- const [isVisible, setIsVisible] = useState(false);
1201
+ const [isVisible, setIsVisible] = React.useState(false);
1200
1202
  const positionClasses = {
1201
1203
  top: 'bottom-full left-1/2 transform -translate-x-1/2 mb-2',
1202
1204
  right: 'left-full top-1/2 transform -translate-y-1/2 ml-2',
@@ -1213,7 +1215,7 @@ const Tooltip = ({ children, className = '', content, position = 'top', color =
1213
1215
  };
1214
1216
  return (React.createElement("div", { className: "relative inline-block" },
1215
1217
  React.createElement("div", { onMouseEnter: () => setIsVisible(true), onMouseLeave: () => setIsVisible(false) }, children),
1216
- React.createElement(AnimatePresence, null, isVisible && (React.createElement(motion.div, { className: `absolute z-10 px-3 py-2 text-sm font-medium text-white rounded-lg shadow-sm ${positionClasses[position]} ${colorClasses[color]} ${className}`, initial: { opacity: 0, scale: 0.8 }, animate: { opacity: 1, scale: 1 }, exit: { opacity: 0, scale: 0.8 }, transition: { duration: 0.2 }, variants: motionVariants[motionVariant] }, content)))));
1218
+ React.createElement(framerMotion.AnimatePresence, null, isVisible && (React.createElement(framerMotion.motion.div, { className: `absolute z-10 px-3 py-2 text-sm font-medium text-white rounded-lg shadow-sm ${positionClasses[position]} ${colorClasses[color]} ${className}`, initial: { opacity: 0, scale: 0.8 }, animate: { opacity: 1, scale: 1 }, exit: { opacity: 0, scale: 0.8 }, transition: { duration: 0.2 }, variants: motionVariants[motionVariant] }, content)))));
1217
1219
  };
1218
1220
 
1219
1221
  const Heading = ({ children, className = '', as = 'h2', size = 'md' }) => {
@@ -1225,7 +1227,7 @@ const Heading = ({ children, className = '', as = 'h2', size = 'md' }) => {
1225
1227
  lg: 'text-3xl',
1226
1228
  xl: 'text-4xl',
1227
1229
  };
1228
- return (React.createElement(motion.div, { initial: { opacity: 0, y: -20 }, animate: { opacity: 1, y: 0 }, transition: { duration: 0.5 } },
1230
+ return (React.createElement(framerMotion.motion.div, { initial: { opacity: 0, y: -20 }, animate: { opacity: 1, y: 0 }, transition: { duration: 0.5 } },
1229
1231
  React.createElement(Tag, { className: `font-bold ${sizeClasses[size]} ${className}` }, children)));
1230
1232
  };
1231
1233
 
@@ -1246,5 +1248,54 @@ const Text = ({ children, className = '', size = 'md', weight = 'normal' }) => {
1246
1248
  return (React.createElement("p", { className: `${sizeClasses[size]} ${weightClasses[weight]} ${className}` }, children));
1247
1249
  };
1248
1250
 
1249
- export { Accordion, Alert, Avatar, Badge, Breadcrumb, Button, Card, CardBody, CardFooter, CardHeader, Checkbox, Container, Dropdown, DropdownItem, FileUpload, Flex, Grid, Heading, IconButton, Input, List, ListItem, Modal, ModalBody, ModalFooter, ModalHeader, NavItem, Navbar, Offcanvas, OffcanvasBody, OffcanvasHeader, Pagination, ProgressBar, Radio, RangeSlider, Select, Skeleton, Slider, Stepper, Switch, Table, TableBody, TableCell, TableHead, TableRow, Tabs, Text, Textarea, Tooltip, motionVariants };
1251
+ exports.Accordion = Accordion;
1252
+ exports.Alert = Alert;
1253
+ exports.Avatar = Avatar;
1254
+ exports.Badge = Badge;
1255
+ exports.Breadcrumb = Breadcrumb;
1256
+ exports.Button = Button;
1257
+ exports.Card = Card;
1258
+ exports.CardBody = CardBody;
1259
+ exports.CardFooter = CardFooter;
1260
+ exports.CardHeader = CardHeader;
1261
+ exports.Checkbox = Checkbox;
1262
+ exports.Container = Container;
1263
+ exports.Dropdown = Dropdown;
1264
+ exports.DropdownItem = DropdownItem;
1265
+ exports.FileUpload = FileUpload;
1266
+ exports.Flex = Flex;
1267
+ exports.Grid = Grid;
1268
+ exports.Heading = Heading;
1269
+ exports.IconButton = IconButton;
1270
+ exports.Input = Input;
1271
+ exports.List = List;
1272
+ exports.ListItem = ListItem;
1273
+ exports.Modal = Modal;
1274
+ exports.ModalBody = ModalBody;
1275
+ exports.ModalFooter = ModalFooter;
1276
+ exports.ModalHeader = ModalHeader;
1277
+ exports.NavItem = NavItem;
1278
+ exports.Navbar = Navbar;
1279
+ exports.Offcanvas = Offcanvas;
1280
+ exports.OffcanvasBody = OffcanvasBody;
1281
+ exports.OffcanvasHeader = OffcanvasHeader;
1282
+ exports.Pagination = Pagination;
1283
+ exports.ProgressBar = ProgressBar;
1284
+ exports.Radio = Radio;
1285
+ exports.RangeSlider = RangeSlider;
1286
+ exports.Select = Select;
1287
+ exports.Skeleton = Skeleton;
1288
+ exports.Slider = Slider;
1289
+ exports.Stepper = Stepper;
1290
+ exports.Switch = Switch;
1291
+ exports.Table = Table;
1292
+ exports.TableBody = TableBody;
1293
+ exports.TableCell = TableCell;
1294
+ exports.TableHead = TableHead;
1295
+ exports.TableRow = TableRow;
1296
+ exports.Tabs = Tabs;
1297
+ exports.Text = Text;
1298
+ exports.Textarea = Textarea;
1299
+ exports.Tooltip = Tooltip;
1300
+ exports.motionVariants = motionVariants;
1250
1301
  //# sourceMappingURL=index.js.map
package/package.json CHANGED
@@ -1,10 +1,10 @@
1
1
  {
2
2
  "name": "my-animated-components",
3
- "version": "1.3.0",
3
+ "version": "1.3.2",
4
4
  "type": "module",
5
5
  "description": "",
6
6
  "main": "dist/index.js",
7
- "types": "dist/index.d.ts",
7
+ "types": "dist/src/index.d.ts",
8
8
  "scripts": {
9
9
  "build": "npx rollup -c"
10
10
  },
@@ -66,7 +66,8 @@
66
66
  "author": "",
67
67
  "license": "ISC",
68
68
  "dependencies": {
69
- "rollup": "^4.12.0"
69
+ "rollup": "^4.12.0",
70
+ "rollup-plugin-dts": "^6.1.1"
70
71
  },
71
72
  "devDependencies": {
72
73
  "@rollup/plugin-typescript": "^11.1.6",
@@ -83,4 +84,4 @@
83
84
  "tslib": "^2.6.2",
84
85
  "typescript": "^5.7.3"
85
86
  }
86
- }
87
+ }