{"version":3,"sources":["../src/components/review-list.tsx","../src/components/review-card.tsx","../src/components/mbn-google-review.tsx"],"sourcesContent":["import React from \"react\";\r\nimport { motion } from \"framer-motion\";\r\nimport { ReviewCard, ReviewCardProps } from \"./review-card\";\r\n\r\ntype Props = {\r\n    reviews: ReviewCardProps[];\r\n    showTitle?: boolean;\r\n    ctaLabel?: string;\r\n    onCTA?: () => void;\r\n};\r\n\r\nconst containerVariants = {\r\n    hidden: { opacity: 0 },\r\n    visible: {\r\n        opacity: 1,\r\n        transition: {\r\n            staggerChildren: 0.1,\r\n            delayChildren: 0.2,\r\n        },\r\n    },\r\n};\r\n\r\nconst itemVariants = {\r\n    hidden: { y: 20, opacity: 0 },\r\n    visible: {\r\n        y: 0,\r\n        opacity: 1,\r\n        transition: {\r\n            duration: 0.5,\r\n            ease: \"easeOut\",\r\n        },\r\n    },\r\n};\r\n\r\nexport const ReviewList = ({\r\n    reviews,\r\n    showTitle = true,\r\n    ctaLabel = \"Leave a Review\",\r\n    onCTA,\r\n}: Props) => {\r\n    return (\r\n        <motion.div\r\n            className=\"max-w-6xl mx-auto px-4 sm:px-6 lg:px-8 py-12\"\r\n            initial=\"hidden\"\r\n            animate=\"visible\"\r\n            variants={containerVariants}\r\n        >\r\n            {showTitle && (\r\n                <div className=\"text-center mb-12\">\r\n                    <h2 className=\"text-3xl font-extrabold text-gray-900 sm:text-4xl\">\r\n                        Customer Reviews\r\n                    </h2>\r\n                    <p className=\"mt-3 max-w-2xl mx-auto text-xl text-gray-500 sm:mt-4\">\r\n                        Hear what our customers say about us\r\n                    </p>\r\n                </div>\r\n            )}\r\n\r\n            <motion.div\r\n                className=\"grid grid-cols-1 md:grid-cols-2 gap-8\"\r\n                variants={containerVariants}\r\n            >\r\n                {reviews.map((review, idx) => (\r\n                    <motion.div key={idx} variants={itemVariants}>\r\n                        <ReviewCard {...review} />\r\n                    </motion.div>\r\n                ))}\r\n            </motion.div>\r\n\r\n            {onCTA && (\r\n                <div className=\"mt-12 text-center\">\r\n                    <button\r\n                        onClick={onCTA}\r\n                        className=\"px-6 py-3 border border-transparent text-base font-medium rounded-md text-white bg-indigo-600 hover:bg-indigo-700 transition duration-150 ease-in-out shadow-sm hover:shadow-md\"\r\n                    >\r\n                        {ctaLabel}\r\n                    </button>\r\n                </div>\r\n            )}\r\n        </motion.div>\r\n    );\r\n};\r\n","import React from \"react\";\r\nimport { FaStar, FaRegStar } from \"react-icons/fa\";\r\n\r\ntype RatingProps = {\r\n    rating: number;\r\n};\r\n\r\nconst Rating = ({ rating }: RatingProps) => {\r\n    return (\r\n        <div className=\"flex items-center space-x-1\">\r\n            {[1, 2, 3, 4, 5].map((star) =>\r\n                star <= rating ? (\r\n                    <FaStar key={star} className=\"text-yellow-400 h-6 w-6\" />\r\n                ) : (\r\n                    <FaRegStar key={star} className=\"text-gray-300 h-6 w-6\" />\r\n                )\r\n            )}\r\n            <span className=\"sr-only\">{rating} out of 5 stars</span>\r\n        </div>\r\n    );\r\n};\r\n\r\nexport type ReviewCardProps = {\r\n    author: string;\r\n    rating: number;\r\n    text: string;\r\n    date?: string;\r\n    avatar?: string;\r\n};\r\n\r\nexport const ReviewCard = ({\r\n    author,\r\n    rating,\r\n    text,\r\n    date,\r\n    avatar,\r\n}: ReviewCardProps) => {\r\n    return (\r\n        <div className=\"bg-white p-6 rounded-xl shadow-sm hover:shadow-md transition-shadow duration-300 h-full\">\r\n            <div className=\"flex items-start space-x-4\">\r\n                {avatar && (\r\n                    <img\r\n                        className=\"h-12 w-12 rounded-full object-cover flex-shrink-0\"\r\n                        src={avatar}\r\n                        alt={author}\r\n                    />\r\n                )}\r\n                <div className=\"flex-1 min-w-0\">\r\n                    <div className=\"flex items-center justify-between gap-2\">\r\n                        <h3 className=\"text-lg font-medium text-gray-900 truncate\">\r\n                            {author}\r\n                        </h3>\r\n                        {date && (\r\n                            <span className=\"text-sm text-gray-500 whitespace-nowrap\">\r\n                                {date}\r\n                            </span>\r\n                        )}\r\n                    </div>\r\n                    <div className=\"mt-1.5 w-24\">\r\n                        <Rating rating={rating} />\r\n                    </div>\r\n                    <p className=\"mt-3 text-gray-600 leading-relaxed\">{text}</p>\r\n                </div>\r\n            </div>\r\n        </div>\r\n    );\r\n};\r\n","import React from \"react\";\r\nimport { ReviewList } from \"./review-list\";\r\nimport { ReviewCardProps } from \"./review-card\";\r\n\r\nexport type MbnGoogleReviewProps = {\r\n  reviews?: ReviewCardProps[];\r\n  placeId?: string;\r\n  apiKey?: string;\r\n  layout?: \"grid\" | \"slider\";\r\n  showTitle?: boolean;\r\n  titleText?: string;\r\n  descriptionText?: string;\r\n  ctaLabel?: string;\r\n  onCTAClick?: () => void;\r\n};\r\n\r\nconst defaultReviews: ReviewCardProps[] = [\r\n  {\r\n    author: \"John Doe\",\r\n    rating: 5,\r\n    text: \"Amazing service!\",\r\n    date: \"June 15, 2023\",\r\n    avatar: \"https://randomuser.me/api/portraits/men/32.jpg\",\r\n  },\r\n  {\r\n    author: \"Jane Smith\",\r\n    rating: 4,\r\n    text: \"Great experience.\",\r\n    date: \"May 28, 2023\",\r\n    avatar: \"https://randomuser.me/api/portraits/women/44.jpg\",\r\n  },\r\n];\r\n\r\n// ✅ ADD EXPLICIT TYPE HERE\r\nexport const MbnGoogleReview: React.FC<MbnGoogleReviewProps> = ({\r\n  reviews = defaultReviews,\r\n  placeId,\r\n  apiKey,\r\n  layout = \"grid\",\r\n  showTitle = true,\r\n  titleText = \"Customer Reviews\",\r\n  descriptionText = \"Hear what our customers say about us\",\r\n  ctaLabel = \"Leave a Review\",\r\n  onCTAClick,\r\n}) => {\r\n  return (\r\n    <ReviewList\r\n      reviews={reviews}\r\n      showTitle={showTitle}\r\n      ctaLabel={ctaLabel}\r\n      onCTA={onCTAClick}\r\n    />\r\n  );\r\n};\r\n"],"mappings":";AACA,SAAS,cAAc;;;ACAvB,SAAS,QAAQ,iBAAiB;AAWd,cAKR,YALQ;AALpB,IAAM,SAAS,CAAC,EAAE,OAAO,MAAmB;AACxC,SACI,qBAAC,SAAI,WAAU,+BACV;AAAA,KAAC,GAAG,GAAG,GAAG,GAAG,CAAC,EAAE;AAAA,MAAI,CAAC,SAClB,QAAQ,SACJ,oBAAC,UAAkB,WAAU,6BAAhB,IAA0C,IAEvD,oBAAC,aAAqB,WAAU,2BAAhB,IAAwC;AAAA,IAEhE;AAAA,IACA,qBAAC,UAAK,WAAU,WAAW;AAAA;AAAA,MAAO;AAAA,OAAe;AAAA,KACrD;AAER;AAUO,IAAM,aAAa,CAAC;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACJ,MAAuB;AACnB,SACI,oBAAC,SAAI,WAAU,2FACX,+BAAC,SAAI,WAAU,8BACV;AAAA,cACG;AAAA,MAAC;AAAA;AAAA,QACG,WAAU;AAAA,QACV,KAAK;AAAA,QACL,KAAK;AAAA;AAAA,IACT;AAAA,IAEJ,qBAAC,SAAI,WAAU,kBACX;AAAA,2BAAC,SAAI,WAAU,2CACX;AAAA,4BAAC,QAAG,WAAU,8CACT,kBACL;AAAA,QACC,QACG,oBAAC,UAAK,WAAU,2CACX,gBACL;AAAA,SAER;AAAA,MACA,oBAAC,SAAI,WAAU,eACX,8BAAC,UAAO,QAAgB,GAC5B;AAAA,MACA,oBAAC,OAAE,WAAU,sCAAsC,gBAAK;AAAA,OAC5D;AAAA,KACJ,GACJ;AAER;;;ADlBgB,SACI,OAAAA,MADJ,QAAAC,aAAA;AArChB,IAAM,oBAAoB;AAAA,EACtB,QAAQ,EAAE,SAAS,EAAE;AAAA,EACrB,SAAS;AAAA,IACL,SAAS;AAAA,IACT,YAAY;AAAA,MACR,iBAAiB;AAAA,MACjB,eAAe;AAAA,IACnB;AAAA,EACJ;AACJ;AAEA,IAAM,eAAe;AAAA,EACjB,QAAQ,EAAE,GAAG,IAAI,SAAS,EAAE;AAAA,EAC5B,SAAS;AAAA,IACL,GAAG;AAAA,IACH,SAAS;AAAA,IACT,YAAY;AAAA,MACR,UAAU;AAAA,MACV,MAAM;AAAA,IACV;AAAA,EACJ;AACJ;AAEO,IAAM,aAAa,CAAC;AAAA,EACvB;AAAA,EACA,YAAY;AAAA,EACZ,WAAW;AAAA,EACX;AACJ,MAAa;AACT,SACI,gBAAAA;AAAA,IAAC,OAAO;AAAA,IAAP;AAAA,MACG,WAAU;AAAA,MACV,SAAQ;AAAA,MACR,SAAQ;AAAA,MACR,UAAU;AAAA,MAET;AAAA,qBACG,gBAAAA,MAAC,SAAI,WAAU,qBACX;AAAA,0BAAAD,KAAC,QAAG,WAAU,qDAAoD,8BAElE;AAAA,UACA,gBAAAA,KAAC,OAAE,WAAU,wDAAuD,kDAEpE;AAAA,WACJ;AAAA,QAGJ,gBAAAA;AAAA,UAAC,OAAO;AAAA,UAAP;AAAA,YACG,WAAU;AAAA,YACV,UAAU;AAAA,YAET,kBAAQ,IAAI,CAAC,QAAQ,QAClB,gBAAAA,KAAC,OAAO,KAAP,EAAqB,UAAU,cAC5B,0BAAAA,KAAC,cAAY,GAAG,QAAQ,KADX,GAEjB,CACH;AAAA;AAAA,QACL;AAAA,QAEC,SACG,gBAAAA,KAAC,SAAI,WAAU,qBACX,0BAAAA;AAAA,UAAC;AAAA;AAAA,YACG,SAAS;AAAA,YACT,WAAU;AAAA,YAET;AAAA;AAAA,QACL,GACJ;AAAA;AAAA;AAAA,EAER;AAER;;;AEnCI,gBAAAE,YAAA;AA9BJ,IAAM,iBAAoC;AAAA,EACxC;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,MAAM;AAAA,IACN,QAAQ;AAAA,EACV;AAAA,EACA;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,MAAM;AAAA,IACN,QAAQ;AAAA,EACV;AACF;AAGO,IAAM,kBAAkD,CAAC;AAAA,EAC9D,UAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,kBAAkB;AAAA,EAClB,WAAW;AAAA,EACX;AACF,MAAM;AACJ,SACE,gBAAAA;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA,OAAO;AAAA;AAAA,EACT;AAEJ;","names":["jsx","jsxs","jsx"]}