@devvistatech/devvista-kit 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +13 -0
- package/LICENSE +7 -0
- package/README.md +15 -0
- package/app/about/page.tsx +306 -0
- package/app/adRequest/page.tsx +550 -0
- package/app/analytics/page.tsx +347 -0
- package/app/api/about/route.ts +307 -0
- package/app/api/adRequest/route.ts +568 -0
- package/app/api/analytics/[reportType]/route.ts +338 -0
- package/app/api/bio/route.ts +314 -0
- package/app/api/blog/route.ts +307 -0
- package/app/api/chat/route.ts +15 -0
- package/app/api/contact/route.ts +410 -0
- package/app/api/contacts/route.ts +225 -0
- package/app/api/files/route.ts +430 -0
- package/app/api/gallery-data/route.ts +661 -0
- package/app/api/schedule/route.ts +456 -0
- package/app/api/sync-user/route.ts +114 -0
- package/app/api/trial-request/route.ts +298 -0
- package/app/blog/[id]/page.tsx +281 -0
- package/app/blog/page.tsx +217 -0
- package/app/constants/about.ts +49 -0
- package/app/constants/adRequest.ts +114 -0
- package/app/constants/contact.ts +41 -0
- package/app/constants/faq.ts +46 -0
- package/app/constants/gallery.ts +43 -0
- package/app/constants/page.ts +70 -0
- package/app/constants/schedule.ts +72 -0
- package/app/contact/page.tsx +285 -0
- package/app/faq/page.tsx +192 -0
- package/app/favicon.ico +0 -0
- package/app/gallery/page.tsx +320 -0
- package/app/globals.css +58 -0
- package/app/layout.tsx +62 -0
- package/app/page.tsx +339 -0
- package/app/schedule/page.tsx +661 -0
- package/bin/init.js +187 -0
- package/components/addOns/functional/BioEditor.tsx +430 -0
- package/components/addOns/functional/CalendlyWidget.tsx +101 -0
- package/components/addOns/functional/ClassList.tsx +146 -0
- package/components/addOns/functional/ClassPopup.tsx +399 -0
- package/components/addOns/functional/ContactForm.tsx +285 -0
- package/components/addOns/functional/FileUploader.tsx +293 -0
- package/components/addOns/functional/ImageDescCarousel.tsx +821 -0
- package/components/addOns/functional/NewUserAnalytics.tsx +101 -0
- package/components/addOns/functional/ScheduleCarousel.tsx +172 -0
- package/components/addOns/functional/aboutSections/AboutSection.tsx +571 -0
- package/components/addOns/functional/aboutSections/constants/aboutSection.ts +66 -0
- package/components/addOns/functional/blogSections/BlogDashboard.tsx +185 -0
- package/components/addOns/functional/blogSections/BlogFormPopUp.tsx +555 -0
- package/components/addOns/functional/blogSections/BlogList.tsx +149 -0
- package/components/addOns/functional/blogSections/BlogSidebar.tsx +59 -0
- package/components/addOns/functional/blogSections/constants/blogDashboard.ts +29 -0
- package/components/addOns/functional/blogSections/constants/blogFormPopUp.ts +98 -0
- package/components/addOns/functional/blogSections/constants/blogList.ts +23 -0
- package/components/addOns/functional/blogSections/constants/blogSidebar.ts +16 -0
- package/components/addOns/functional/contactsDashboard/ContactsDashboard.tsx +348 -0
- package/components/addOns/functional/contactsDashboard/constants/contactsDashboard.ts +71 -0
- package/components/addOns/functional/galleries/GalleryComplex.tsx +908 -0
- package/components/addOns/functional/galleries/GallerySimple.tsx +604 -0
- package/components/addOns/functional/galleries/constants/galleryComplex.ts +105 -0
- package/components/addOns/functional/galleries/constants/gallerySimple.ts +75 -0
- package/components/addOns/functional/schedules/ScheduleGridOne.tsx +263 -0
- package/components/addOns/functional/schedules/ScheduleGridTwo.tsx +295 -0
- package/components/addOns/functional/schedules/ScheduleGridTwoBasic.tsx +289 -0
- package/components/addOns/functional/schedules/SchedulerForm.tsx +429 -0
- package/components/addOns/functional/schedules/constants/ScheduleGridTwo.ts +41 -0
- package/components/addOns/functional/schedules/constants/ScheduleGridTwoBasic.ts +41 -0
- package/components/addOns/functional/schedules/constants/SchedulerForm.ts +66 -0
- package/components/addOns/functional/schedules/constants/scheduleGridOne.ts +55 -0
- package/components/addOns/non-functional/AnnouncementBanner.tsx +47 -0
- package/components/addOns/non-functional/FeaturesSection.tsx +63 -0
- package/components/addOns/non-functional/HeroSection.tsx +143 -0
- package/components/addOns/non-functional/IconBubble.tsx +50 -0
- package/components/addOns/non-functional/SampleCarousel.tsx +205 -0
- package/components/addOns/non-functional/Testimonials.tsx +336 -0
- package/components/addOns/non-functional/ThreeSetGallery.tsx +64 -0
- package/components/addOns/non-functional/aboutSections/AboutSection.tsx +63 -0
- package/components/addOns/non-functional/aboutSections/constants/aboutSection.ts +25 -0
- package/components/addOns/non-functional/imageCarousels/ProductSlider.tsx +118 -0
- package/components/addOns/non-functional/imageCarousels/ProgramCarousel.tsx +233 -0
- package/components/addOns/non-functional/imageCarousels/constants/programCarousel.ts +40 -0
- package/components/addOns/non-functional/imageCarousels/constants/programSlider.ts +37 -0
- package/components/addOns/non-functional/spinner.tsx +22 -0
- package/components/footers/footer.tsx +454 -0
- package/components/navBars/navbar.tsx +311 -0
- package/components/other/accordion.tsx +58 -0
- package/components/other/admin-menu.tsx +69 -0
- package/components/other/alert-dialog.tsx +141 -0
- package/components/other/alert.tsx +59 -0
- package/components/other/aspect-ratio.tsx +7 -0
- package/components/other/avatar.tsx +50 -0
- package/components/other/badge.tsx +36 -0
- package/components/other/breadcrumb.tsx +115 -0
- package/components/other/button.tsx +733 -0
- package/components/other/calendar.tsx +66 -0
- package/components/other/card.tsx +86 -0
- package/components/other/carousel.tsx +275 -0
- package/components/other/chart.tsx +363 -0
- package/components/other/checkbox.tsx +30 -0
- package/components/other/collapsible.tsx +11 -0
- package/components/other/command.tsx +155 -0
- package/components/other/context-menu.tsx +200 -0
- package/components/other/dialog.tsx +122 -0
- package/components/other/drawer.tsx +118 -0
- package/components/other/dropdown-menu.tsx +200 -0
- package/components/other/form.tsx +179 -0
- package/components/other/hover-card.tsx +29 -0
- package/components/other/input-otp.tsx +71 -0
- package/components/other/input.tsx +25 -0
- package/components/other/label.tsx +26 -0
- package/components/other/login-popup.tsx +0 -0
- package/components/other/menubar.tsx +236 -0
- package/components/other/mobile-icon.tsx +22 -0
- package/components/other/navigation-menu.tsx +128 -0
- package/components/other/pagination.tsx +117 -0
- package/components/other/popover.tsx +31 -0
- package/components/other/progress.tsx +28 -0
- package/components/other/radio-group.tsx +44 -0
- package/components/other/resizable.tsx +45 -0
- package/components/other/scroll-area.tsx +48 -0
- package/components/other/select.tsx +160 -0
- package/components/other/separator.tsx +31 -0
- package/components/other/sheet.tsx +140 -0
- package/components/other/signup-popup.tsx +0 -0
- package/components/other/skeleton.tsx +15 -0
- package/components/other/slider.tsx +28 -0
- package/components/other/social-icons.tsx +40 -0
- package/components/other/sonner.tsx +31 -0
- package/components/other/switch.tsx +29 -0
- package/components/other/table.tsx +117 -0
- package/components/other/tabs.tsx +55 -0
- package/components/other/textarea.tsx +24 -0
- package/components/other/toast.tsx +123 -0
- package/components/other/toaster.tsx +35 -0
- package/components/other/toggle-group.tsx +61 -0
- package/components/other/toggle.tsx +45 -0
- package/components/other/tooltip.tsx +30 -0
- package/components/theme-provider.tsx +9 -0
- package/components/types.ts +22 -0
- package/dist/.next/types/app/api/about/route.js +52 -0
- package/dist/.next/types/app/api/blog/route.js +52 -0
- package/dist/.next/types/app/api/files/route.js +52 -0
- package/dist/.next/types/app/api/schedule/route.js +52 -0
- package/dist/.next/types/app/api/sync-user/route.js +52 -0
- package/dist/.next/types/app/layout.js +22 -0
- package/dist/.next/types/app/page.js +22 -0
- package/dist/app/about/page.jsx +259 -0
- package/dist/app/adRequest/page.jsx +531 -0
- package/dist/app/analytics/page.jsx +298 -0
- package/dist/app/api/about/route.js +285 -0
- package/dist/app/api/adRequest/route.js +440 -0
- package/dist/app/api/analytics/[reportType]/route.js +346 -0
- package/dist/app/api/bio/route.js +293 -0
- package/dist/app/api/blog/route.js +366 -0
- package/dist/app/api/chat/route.js +58 -0
- package/dist/app/api/contact/route.js +163 -0
- package/dist/app/api/contacts/route.js +234 -0
- package/dist/app/api/files/route.js +444 -0
- package/dist/app/api/gallery-data/route.js +642 -0
- package/dist/app/api/schedule/route.js +461 -0
- package/dist/app/api/sync-user/route.js +174 -0
- package/dist/app/api/trial-request/route.js +165 -0
- package/dist/app/blog/[id]/page.jsx +307 -0
- package/dist/app/blog/page.jsx +210 -0
- package/dist/app/constants/about.js +32 -0
- package/dist/app/constants/adRequest.js +113 -0
- package/dist/app/constants/contact.js +40 -0
- package/dist/app/constants/faq.js +36 -0
- package/dist/app/constants/gallery.js +42 -0
- package/dist/app/constants/page.js +69 -0
- package/dist/app/constants/schedule.js +71 -0
- package/dist/app/contact/page.jsx +119 -0
- package/dist/app/faq/page.jsx +97 -0
- package/dist/app/gallery/page.jsx +280 -0
- package/dist/app/layout.jsx +45 -0
- package/dist/app/page.jsx +324 -0
- package/dist/app/schedule/page.jsx +500 -0
- package/dist/components/addOns/functional/BioEditor.jsx +175 -0
- package/dist/components/addOns/functional/CalendlyWidget.jsx +61 -0
- package/dist/components/addOns/functional/ClassList.jsx +158 -0
- package/dist/components/addOns/functional/ClassPopup.jsx +300 -0
- package/dist/components/addOns/functional/ContactForm.jsx +219 -0
- package/dist/components/addOns/functional/FileUploader.jsx +222 -0
- package/dist/components/addOns/functional/ImageDescCarousel.jsx +464 -0
- package/dist/components/addOns/functional/NewUserAnalytics.jsx +71 -0
- package/dist/components/addOns/functional/ScheduleCarousel.jsx +68 -0
- package/dist/components/addOns/functional/aboutSections/AboutSection.jsx +369 -0
- package/dist/components/addOns/functional/aboutSections/constants/aboutSection.js +65 -0
- package/dist/components/addOns/functional/blogSections/BlogDashboard.jsx +111 -0
- package/dist/components/addOns/functional/blogSections/BlogFormPopUp.jsx +465 -0
- package/dist/components/addOns/functional/blogSections/BlogList.jsx +170 -0
- package/dist/components/addOns/functional/blogSections/BlogSidebar.jsx +35 -0
- package/dist/components/addOns/functional/blogSections/constants/blogDashboard.js +28 -0
- package/dist/components/addOns/functional/blogSections/constants/blogFormPopUp.js +97 -0
- package/dist/components/addOns/functional/blogSections/constants/blogList.js +22 -0
- package/dist/components/addOns/functional/blogSections/constants/blogSidebar.js +15 -0
- package/dist/components/addOns/functional/contactsDashboard/ContactsDashboard.jsx +323 -0
- package/dist/components/addOns/functional/contactsDashboard/constants/contactsDashboard.js +70 -0
- package/dist/components/addOns/functional/galleries/GalleryComplex.jsx +586 -0
- package/dist/components/addOns/functional/galleries/GallerySimple.jsx +385 -0
- package/dist/components/addOns/functional/galleries/constants/galleryComplex.js +104 -0
- package/dist/components/addOns/functional/galleries/constants/gallerySimple.js +74 -0
- package/dist/components/addOns/functional/schedules/ScheduleGridOne.jsx +167 -0
- package/dist/components/addOns/functional/schedules/ScheduleGridTwo.jsx +100 -0
- package/dist/components/addOns/functional/schedules/ScheduleGridTwoBasic.jsx +97 -0
- package/dist/components/addOns/functional/schedules/SchedulerForm.jsx +188 -0
- package/dist/components/addOns/functional/schedules/constants/ScheduleGridTwo.js +40 -0
- package/dist/components/addOns/functional/schedules/constants/ScheduleGridTwoBasic.js +40 -0
- package/dist/components/addOns/functional/schedules/constants/SchedulerForm.js +65 -0
- package/dist/components/addOns/functional/schedules/constants/scheduleGridOne.js +54 -0
- package/dist/components/addOns/non-functional/AnnouncementBanner.jsx +24 -0
- package/dist/components/addOns/non-functional/FeaturesSection.jsx +38 -0
- package/dist/components/addOns/non-functional/HeroSection.jsx +71 -0
- package/dist/components/addOns/non-functional/IconBubble.jsx +36 -0
- package/dist/components/addOns/non-functional/SampleCarousel.jsx +114 -0
- package/dist/components/addOns/non-functional/Testimonials.jsx +177 -0
- package/dist/components/addOns/non-functional/ThreeSetGallery.jsx +40 -0
- package/dist/components/addOns/non-functional/aboutSections/AboutSection.jsx +35 -0
- package/dist/components/addOns/non-functional/aboutSections/constants/aboutSection.js +24 -0
- package/dist/components/addOns/non-functional/imageCarousels/ProductSlider.jsx +80 -0
- package/dist/components/addOns/non-functional/imageCarousels/ProgramCarousel.jsx +155 -0
- package/dist/components/addOns/non-functional/imageCarousels/constants/programCarousel.js +39 -0
- package/dist/components/addOns/non-functional/imageCarousels/constants/programSlider.js +36 -0
- package/dist/components/addOns/non-functional/spinner.jsx +13 -0
- package/dist/components/footers/footer.jsx +219 -0
- package/dist/components/navBars/navbar.jsx +158 -0
- package/dist/components/other/accordion.jsx +40 -0
- package/dist/components/other/admin-menu.jsx +34 -0
- package/dist/components/other/alert-dialog.jsx +64 -0
- package/dist/components/other/alert.jsx +41 -0
- package/dist/components/other/aspect-ratio.jsx +4 -0
- package/dist/components/other/avatar.jsx +31 -0
- package/dist/components/other/badge.jsx +32 -0
- package/dist/components/other/breadcrumb.jsx +57 -0
- package/dist/components/other/button.jsx +321 -0
- package/dist/components/other/calendar.jsx +43 -0
- package/dist/components/other/card.jsx +44 -0
- package/dist/components/other/carousel.jsx +140 -0
- package/dist/components/other/chart.jsx +182 -0
- package/dist/components/other/checkbox.jsx +26 -0
- package/dist/components/other/collapsible.jsx +6 -0
- package/dist/components/other/command.jsx +68 -0
- package/dist/components/other/context-menu.jsx +88 -0
- package/dist/components/other/dialog.jsx +60 -0
- package/dist/components/other/drawer.jsx +60 -0
- package/dist/components/other/dropdown-menu.jsx +90 -0
- package/dist/components/other/form.jsx +89 -0
- package/dist/components/other/hover-card.jsx +23 -0
- package/dist/components/other/input-otp.jsx +46 -0
- package/dist/components/other/input.jsx +19 -0
- package/dist/components/other/label.jsx +23 -0
- package/dist/components/other/login-popup.jsx +1 -0
- package/dist/components/other/menubar.jsx +96 -0
- package/dist/components/other/mobile-icon.jsx +11 -0
- package/dist/components/other/navigation-menu.jsx +62 -0
- package/dist/components/other/pagination.jsx +63 -0
- package/dist/components/other/popover.jsx +25 -0
- package/dist/components/other/progress.jsx +23 -0
- package/dist/components/other/radio-group.jsx +31 -0
- package/dist/components/other/resizable.jsx +29 -0
- package/dist/components/other/scroll-area.jsx +36 -0
- package/dist/components/other/select.jsx +83 -0
- package/dist/components/other/separator.jsx +21 -0
- package/dist/components/other/sheet.jsx +74 -0
- package/dist/components/other/signup-popup.jsx +1 -0
- package/dist/components/other/skeleton.jsx +17 -0
- package/dist/components/other/slider.jsx +26 -0
- package/dist/components/other/social-icons.jsx +15 -0
- package/dist/components/other/sonner.jsx +27 -0
- package/dist/components/other/switch.jsx +23 -0
- package/dist/components/other/table.jsx +56 -0
- package/dist/components/other/tabs.jsx +32 -0
- package/dist/components/other/textarea.jsx +19 -0
- package/dist/components/other/toast.jsx +58 -0
- package/dist/components/other/toaster.jsx +31 -0
- package/dist/components/other/toggle-group.jsx +41 -0
- package/dist/components/other/toggle.jsx +39 -0
- package/dist/components/other/tooltip.jsx +24 -0
- package/dist/components/theme-provider.jsx +18 -0
- package/dist/components/types.js +1 -0
- package/dist/hooks/use-toast.js +135 -0
- package/dist/lib/auth-context.jsx +144 -0
- package/dist/lib/google-analytics.jsx +148 -0
- package/dist/lib/utils.js +9 -0
- package/dist/lib/verify-user.js +142 -0
- package/dist/middleware.js +32 -0
- package/dist/tailwind.config.js +86 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/hooks/use-toast.ts +188 -0
- package/lib/auth-context.tsx +131 -0
- package/lib/google-analytics.tsx +98 -0
- package/lib/utils.ts +6 -0
- package/lib/verify-user.ts +118 -0
- package/middleware.ts +35 -0
- package/next.config.js +10 -0
- package/package.json +116 -0
- package/postcss.config.js +6 -0
- package/public/images/FitStop.png +0 -0
- package/public/images/classes/bodyblast.JPG +0 -0
- package/public/images/classes/cardioxtrain.JPG +0 -0
- package/public/images/classes/combo.JPG +0 -0
- package/public/images/classes/flexiblefriday.JPG +0 -0
- package/public/images/classes/freestyle.jpg +0 -0
- package/public/images/classes/noclasses.jpg +0 -0
- package/public/images/classes/seniorstretch.JPG +0 -0
- package/public/images/classes/stretch.JPG +0 -0
- package/public/images/classes/zoomba.JPG +0 -0
- package/public/images/fitstoproom1.jpg +0 -0
- package/public/images/fitstoproom2.jpg +0 -0
- package/public/images/gallery/021-1024x768.jpg +0 -0
- package/public/images/gallery/023-1024x768.jpg +0 -0
- package/public/images/gallery/027-1024x768.jpg +0 -0
- package/public/images/gallery/029-1024x768.jpg +0 -0
- package/public/images/gallery/030-1024x768.jpg +0 -0
- package/public/images/gallery/042-1024x768.jpg +0 -0
- package/public/images/gallery/049-1024x768.jpg +0 -0
- package/public/images/gallery/073-1024x768.jpg +0 -0
- package/public/images/gallery/108-300x225.jpg +0 -0
- package/public/images/gallery/109-300x225.jpg +0 -0
- package/public/images/gallery/116.jpg +0 -0
- package/public/images/gallery/123-1-1024x768.jpg +0 -0
- package/public/images/gallery/133.jpg +0 -0
- package/public/images/gallery/142-1.jpg +0 -0
- package/public/images/gallery/143.jpg +0 -0
- package/public/images/gallery/145-1-1024x768.jpg +0 -0
- package/public/images/gallery/151-1024x768.jpg +0 -0
- package/public/images/gallery/166-300x225.jpg +0 -0
- package/public/images/gallery/175.jpg +0 -0
- package/public/images/gallery/183-1024x768.jpg +0 -0
- package/public/images/gallery/311.JPG +0 -0
- package/public/images/gallery/413-1.jpg +0 -0
- package/public/images/gallery/Cathys-Fit-Stop-Holiday-Party-0003-1024x683.jpg +0 -0
- package/public/images/gallery/Cathys-Fit-Stop-Holiday-Party-0076-1024x683.jpg +0 -0
- package/public/images/gallery/Cathys-Fit-Stop-Holiday-Party-0171-1024x683.jpg +0 -0
- package/public/images/gallery/DSCN0233-1024x768.jpg +0 -0
- package/public/images/gallery/DSCN0245-1-1024x768.jpg +0 -0
- package/public/images/gallery/Fitstopgirls2.jpg +0 -0
- package/public/images/gallery/GrandOpening2009.JPG +0 -0
- package/public/images/gallery/IMG_1937.JPG +0 -0
- package/public/images/gallery/IMG_1950-20.jpg +0 -0
- package/public/images/gallery/IMG_2112.JPG +0 -0
- package/public/images/gallery/IMG_2229.JPG +0 -0
- package/public/images/gallery/IMG_2272.JPG +0 -0
- package/public/images/gallery/IMG_2336.JPG +0 -0
- package/public/images/gallery/IMG_2367.JPG +0 -0
- package/public/images/gallery/IMG_2520.jpg +0 -0
- package/public/images/gallery/IMG_2564.jpg +0 -0
- package/public/images/gallery/IMG_3678.jpg +0 -0
- package/public/images/gallery/IMG_3744.jpg +0 -0
- package/public/images/gallery/IMG_3745.jpg +0 -0
- package/public/images/gallery/IMG_6383.jpg +0 -0
- package/public/images/gallery/Jillian-8-Months-2338-1024x683.jpg +0 -0
- package/public/images/gallery/Kathys-Fit-Stop-0032-1024x675.jpg +0 -0
- package/public/images/gallery/LaurieinPlank.jpeg +0 -0
- package/public/images/gallery/May2017032.JPG +0 -0
- package/public/images/gallery/clubpic10.jpg +0 -0
- package/public/images/gallery/clubpic15.jpg +0 -0
- package/public/images/gallery/clubpic2.jpg +0 -0
- package/public/images/gallery/clubpic3.jpg +0 -0
- package/public/images/gallery/clubpic4.jpg +0 -0
- package/public/images/gallery/clubpic5.jpg +0 -0
- package/public/images/gallery/clubpic6.jpg +0 -0
- package/public/images/gallery/clubpic7.jpg +0 -0
- package/public/images/gallery/clubpic8.jpg +0 -0
- package/public/images/gallery/clubpic9.jpg +0 -0
- package/public/images/gallery/z014-1024x768.jpg +0 -0
- package/public/images/gallery/z019-1-1024x768.jpg +0 -0
- package/public/images/kathy_faq-300x132.jpg +0 -0
- package/public/images/kathyportrait.jpg +0 -0
- package/public/images/kristiportrait.jpg +0 -0
- package/public/images/maincoverbackground.JPG +0 -0
- package/public/images/videos/FitStopLoopVideo.mp4 +0 -0
- package/public/images/weights.jpg +0 -0
- package/public/pdf/FitStop-Forum-April-2025.pdf +0 -0
- package/tailwind.config.ts +89 -0
- package/tsconfig.json +24 -0
|
@@ -0,0 +1,321 @@
|
|
|
1
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
2
|
+
var t = {};
|
|
3
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
4
|
+
t[p] = s[p];
|
|
5
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
6
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
7
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
8
|
+
t[p[i]] = s[p[i]];
|
|
9
|
+
}
|
|
10
|
+
return t;
|
|
11
|
+
};
|
|
12
|
+
import * as React from "react";
|
|
13
|
+
import { Slot } from "@radix-ui/react-slot";
|
|
14
|
+
import { cva } from "class-variance-authority";
|
|
15
|
+
import { cn } from "@/lib/utils";
|
|
16
|
+
import { Edit, Trash2, LogIn, UserPlus, Settings, LogOut, Phone, ArrowUp } from "lucide-react";
|
|
17
|
+
var buttonVariants = cva("inline-flex items-center justify-center whitespace-nowrap rounded-md font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50", {
|
|
18
|
+
variants: {
|
|
19
|
+
variant: {
|
|
20
|
+
default: "bg-blue-500 text-white hover:bg-blue-600 focus:ring-blue-500",
|
|
21
|
+
destructive: "bg-blue-700 text-white hover:bg-blue-800 focus:ring-blue-700",
|
|
22
|
+
outline: "border border-blue-500 bg-transparent text-blue-500 hover:bg-blue-500/10 hover:text-blue-600 focus:ring-blue-500",
|
|
23
|
+
secondary: "bg-blue-200 text-blue-900 hover:bg-blue-300 focus:ring-blue-500",
|
|
24
|
+
ghost: "text-blue-500 hover:bg-blue-500/10 hover:text-blue-600 focus:ring-blue-500",
|
|
25
|
+
link: "text-blue-500 underline-offset-4 hover:underline focus:ring-blue-500",
|
|
26
|
+
edit: "bg-blue-500 text-white hover:bg-blue-600 focus:ring-blue-500 min-w-[80px] text-base min-h-[2.5rem] rounded-lg touch-action-manipulation",
|
|
27
|
+
"edit-bio": "bg-blue-500 text-white hover:bg-blue-600 focus:ring-blue-500 min-w-[80px] text-base min-h-[2.5rem] rounded-lg touch-action-manipulation",
|
|
28
|
+
"edit-icon": "bg-blue-600 text-white hover:bg-blue-700 focus:ring-blue-500 rounded-full h-10 w-10 flex items-center justify-center",
|
|
29
|
+
create: "bg-blue-500 text-white hover:bg-blue-600 focus:ring-blue-500 min-w-[80px] text-base",
|
|
30
|
+
upload: "bg-blue-500 text-white hover:bg-blue-600 focus:ring-blue-500 w-full sm:w-auto text-base sm:text-lg px-4 py-2 sm:px-6 sm:py-3 font-bold",
|
|
31
|
+
update: "bg-blue-500 text-white hover:bg-blue-600 focus:ring-blue-500 disabled:bg-gray-600 w-full sm:w-auto min-w-[80px] text-base min-h-[2.5rem] rounded-lg font-semibold",
|
|
32
|
+
cancel: "bg-gray-600 text-white hover:bg-gray-500 focus:ring-gray-600 w-full sm:w-auto min-w-[80px] text-base min-h-[2.5rem] rounded-lg font-semibold",
|
|
33
|
+
close: "text-blue-300 hover:text-white hover:bg-blue-600/50 focus:ring-blue-500 h-12 w-12 p-3 rounded-full absolute top-4 right-4 z-50 transition-all duration-200 flex items-center justify-center",
|
|
34
|
+
"close-form": "text-blue-300 hover:text-white hover:bg-blue-600/50 focus:ring-blue-500 rounded-full p-2 sm:p-3 transition-all duration-300 w-10 h-10 sm:w-12 sm:h-12 flex items-center justify-center absolute top-1 right-1 sm:top-1 sm:right-1 z-50",
|
|
35
|
+
"close-confirm": "bg-blue-600 text-white hover:bg-blue-700 focus:ring-blue-500 rounded-full p-2 w-10 h-10 flex items-center justify-center absolute top-2 right-2",
|
|
36
|
+
toggle: "bg-transparent text-blue-500 hover:bg-blue-500/10 hover:scale-105 focus:ring-blue-500 text-base sm:text-lg px-6 py-3 h-auto font-bold transform transition-all duration-300 ease-in-out",
|
|
37
|
+
"toggle-bio": "bg-gradient-to-r from-blue-500 to-blue-600 text-white hover:from-blue-600 hover:to-blue-700 focus:ring-blue-500 text-lg px-8 py-3 rounded-[1.5rem] font-bold",
|
|
38
|
+
"toggle-keywords": "bg-blue-500 text-white hover:bg-blue-600 focus:ring-blue-500 text-sm px-4 py-2 rounded-md font-semibold",
|
|
39
|
+
delete: "bg-red-600 text-white hover:bg-red-700 focus:ring-red-600 disabled:bg-gray-600 w-full sm:w-auto min-w-[80px] text-base min-h-[2.5rem] rounded-lg font-semibold",
|
|
40
|
+
"delete-icon": "text-blue-500 hover:text-blue-600 focus:ring-blue-500 p-3 min-h-[2rem] min-w-[2rem] text-2xl font-bold transition-colors",
|
|
41
|
+
trash: "text-[#F47C7C] hover:bg-[#2A3A66]/70 focus:ring-[#F47C7C] mt-2 sm:mt-0 z-10",
|
|
42
|
+
"trash-icon": "bg-red-600 text-white hover:bg-red-700 focus:ring-red-600 rounded-full h-10 w-10 flex items-center justify-center",
|
|
43
|
+
action: "bg-gradient-to-r from-blue-500 to-blue-600 text-white hover:from-blue-600 hover:to-blue-700 focus:ring-blue-500 w-full sm:w-auto text-lg px-6 py-3 rounded-full font-bold",
|
|
44
|
+
add: "bg-gradient-to-r from-blue-500 to-blue-600 hover:from-blue-600 hover:to-blue-700 text-white w-full sm:w-auto rounded-lg font-medium py-3",
|
|
45
|
+
"chat-toggle": "hidden sm:flex absolute right-0 top-1/2 -translate-y-1/2 p-2 w-10 h-10 bg-blue-500 text-white hover:bg-blue-600 focus:ring-blue-500 transition-colors",
|
|
46
|
+
"chat-submit": "bg-blue-500 text-white hover:bg-blue-600 focus:ring-blue-500 disabled:bg-gray-600 px-4 py-2 rounded-md font-semibold",
|
|
47
|
+
"external-link": "bg-blue-600 text-white px-3 py-1 sm:px-4 sm:py-2 rounded-lg text-sm sm:text-base hover:bg-blue-700 focus:ring-blue-500",
|
|
48
|
+
retry: "bg-blue-600 text-white px-3 py-1 rounded-lg hover:bg-blue-700 focus:ring-blue-500",
|
|
49
|
+
reset: "bg-blue-600 text-white hover:bg-blue-700 focus:ring-blue-500 rounded-lg",
|
|
50
|
+
"cancel-outline": "border border-gray-600 text-gray-300 hover:bg-gray-700/50 focus:ring-gray-600 rounded-lg",
|
|
51
|
+
confirm: "bg-blue-600 text-white hover:bg-blue-700 focus:ring-blue-500 rounded-lg",
|
|
52
|
+
submit: "w-full bg-gradient-to-r from-blue-500 to-blue-600 hover:from-blue-600 hover:to-blue-700 text-white font-medium py-3 rounded-lg transition-all duration-300 disabled:cursor-not-allowed",
|
|
53
|
+
"contact-submit": "w-full bg-gradient-to-r from-blue-600 to-blue-700 hover:from-blue-700 hover:to-blue-800 text-white font-semibold py-4 px-10 rounded-2xl text-lg tracking-wide transition-all duration-300 disabled:bg-gray-400/80 disabled:cursor-not-allowed shadow-lg hover:shadow-xl",
|
|
54
|
+
"edit-toggle": "bg-gradient-to-r from-blue-500 to-blue-600 hover:from-blue-600 hover:to-blue-700 text-white font-medium rounded-lg",
|
|
55
|
+
"form-submit": "bg-blue-500 text-white hover:bg-blue-600 focus:ring-blue-500 disabled:bg-gray-600 w-full sm:w-auto min-w-[80px] text-base min-h-[2.5rem] rounded-lg font-semibold",
|
|
56
|
+
filter: "bg-blue-200 text-blue-900 hover:bg-blue-300 focus:ring-blue-500 px-4 py-2 sm:px-6 sm:py-3 rounded-[1.5rem] text-base sm:text-lg font-medium transition-all duration-300",
|
|
57
|
+
"filter-active": "bg-gradient-to-r from-blue-500 to-blue-600 text-white hover:from-blue-600 hover:to-blue-700 focus:ring-blue-500 px-4 py-2 sm:px-6 sm:py-3 rounded-[1.5rem] text-base sm:text-lg font-medium transition-all duration-300",
|
|
58
|
+
"filter-blue-active": "bg-blue-500 text-white hover:bg-blue-600 focus:ring-blue-500 px-4 py-2 sm:px-6 sm:py-3 rounded-md text-base sm:text-lg font-medium transition-all duration-300",
|
|
59
|
+
hero: "bg-gradient-to-r from-blue-500 to-blue-600 text-white hover:from-blue-600 hover:to-blue-700 focus:ring-blue-500 text-lg px-8 py-3 rounded-lg font-bold shadow-lg hover:shadow-xl transition-all duration-300",
|
|
60
|
+
readMore: "bg-transparent border-2 border-blue-500 text-blue-500 hover:bg-blue-500/10 focus:ring-blue-500 text-lg px-6 py-2 rounded-lg font-semibold transition-all duration-300",
|
|
61
|
+
scrollToTop: "bg-gradient-to-r from-blue-500 to-blue-600 text-white hover:from-blue-600 hover:to-blue-700 focus:ring-blue-500 rounded-full shadow-xl transition-all duration-200 transform hover:scale-105",
|
|
62
|
+
phone: "bg-gradient-to-r from-blue-500 to-blue-600 text-white hover:from-blue-600 hover:to-blue-700 focus:ring-blue-500 rounded-full shadow-xl transition-all duration-200 transform hover:scale-105",
|
|
63
|
+
},
|
|
64
|
+
size: {
|
|
65
|
+
default: "h-10 px-4 py-2",
|
|
66
|
+
sm: "h-9 px-4 py-2",
|
|
67
|
+
lg: "h-11 px-8",
|
|
68
|
+
icon: "h-10 w-10",
|
|
69
|
+
close: "h-12 w-12 p-3",
|
|
70
|
+
hero: "h-12 px-10 py-4",
|
|
71
|
+
readMore: "h-11 px-6 py-2",
|
|
72
|
+
bubble: "h-12 w-12 md:h-16 md:w-16 p-4 md:p-6",
|
|
73
|
+
},
|
|
74
|
+
},
|
|
75
|
+
defaultVariants: {
|
|
76
|
+
variant: "default",
|
|
77
|
+
size: "default",
|
|
78
|
+
},
|
|
79
|
+
});
|
|
80
|
+
var Button = React.forwardRef(function (_a, ref) {
|
|
81
|
+
var className = _a.className, variant = _a.variant, size = _a.size, _b = _a.asChild, asChild = _b === void 0 ? false : _b, props = __rest(_a, ["className", "variant", "size", "asChild"]);
|
|
82
|
+
var Comp = asChild ? Slot : "button";
|
|
83
|
+
return (<Comp className={cn(buttonVariants({ variant: variant, size: size, className: className }))} ref={ref} {...props}/>);
|
|
84
|
+
});
|
|
85
|
+
Button.displayName = "Button";
|
|
86
|
+
var EditIconButton = React.forwardRef(function (_a, ref) {
|
|
87
|
+
var className = _a.className, _b = _a.size, size = _b === void 0 ? "icon" : _b, _c = _a.variant, variant = _c === void 0 ? "edit-icon" : _c, children = _a.children, props = __rest(_a, ["className", "size", "variant", "children"]);
|
|
88
|
+
return (<Button variant={variant} size={size} className={cn("absolute top-1 right-12", className)} ref={ref} aria-label="Edit image" {...props}>
|
|
89
|
+
{children || <Edit className="h-5 w-5"/>}
|
|
90
|
+
</Button>);
|
|
91
|
+
});
|
|
92
|
+
EditIconButton.displayName = "EditIconButton";
|
|
93
|
+
var CreateButton = React.forwardRef(function (_a, ref) {
|
|
94
|
+
var className = _a.className, _b = _a.size, size = _b === void 0 ? "sm" : _b, _c = _a.children, children = _c === void 0 ? "Create" : _c, props = __rest(_a, ["className", "size", "children"]);
|
|
95
|
+
return (<Button variant="create" size={size} className={cn(className)} ref={ref} aria-label="Create new item" {...props}>
|
|
96
|
+
{children}
|
|
97
|
+
</Button>);
|
|
98
|
+
});
|
|
99
|
+
CreateButton.displayName = "CreateButton";
|
|
100
|
+
var UploadButton = React.forwardRef(function (_a, ref) {
|
|
101
|
+
var className = _a.className, _b = _a.size, size = _b === void 0 ? "lg" : _b, _c = _a.children, children = _c === void 0 ? "Upload" : _c, props = __rest(_a, ["className", "size", "children"]);
|
|
102
|
+
return (<Button variant="upload" size={size} className={cn(className)} ref={ref} aria-label="Upload file" {...props}>
|
|
103
|
+
{children}
|
|
104
|
+
</Button>);
|
|
105
|
+
});
|
|
106
|
+
UploadButton.displayName = "UploadButton";
|
|
107
|
+
var UpdateButton = React.forwardRef(function (_a, ref) {
|
|
108
|
+
var className = _a.className, _b = _a.size, size = _b === void 0 ? "default" : _b, _c = _a.variant, variant = _c === void 0 ? "update" : _c, _d = _a.children, children = _d === void 0 ? "Update" : _d, props = __rest(_a, ["className", "size", "variant", "children"]);
|
|
109
|
+
return (<Button variant={variant} size={size} className={cn(className)} ref={ref} aria-label="Update item" {...props}>
|
|
110
|
+
{children}
|
|
111
|
+
</Button>);
|
|
112
|
+
});
|
|
113
|
+
UpdateButton.displayName = "UpdateButton";
|
|
114
|
+
var CancelButton = React.forwardRef(function (_a, ref) {
|
|
115
|
+
var className = _a.className, _b = _a.size, size = _b === void 0 ? "default" : _b, _c = _a.variant, variant = _c === void 0 ? "cancel" : _c, _d = _a.children, children = _d === void 0 ? "Cancel" : _d, props = __rest(_a, ["className", "size", "variant", "children"]);
|
|
116
|
+
return (<Button variant={variant} size={size} className={cn(className)} ref={ref} aria-label="Cancel action" {...props}>
|
|
117
|
+
{children}
|
|
118
|
+
</Button>);
|
|
119
|
+
});
|
|
120
|
+
CancelButton.displayName = "CancelButton";
|
|
121
|
+
var CloseButton = React.forwardRef(function (_a, ref) {
|
|
122
|
+
var className = _a.className, _b = _a.size, size = _b === void 0 ? "close" : _b, _c = _a.variant, variant = _c === void 0 ? "close" : _c, children = _a.children, props = __rest(_a, ["className", "size", "variant", "children"]);
|
|
123
|
+
return (<Button variant={variant} size={size} className={cn(className)} ref={ref} aria-label="Close modal" {...props}>
|
|
124
|
+
{children}
|
|
125
|
+
</Button>);
|
|
126
|
+
});
|
|
127
|
+
CloseButton.displayName = "CloseButton";
|
|
128
|
+
var ToggleButton = React.forwardRef(function (_a, ref) {
|
|
129
|
+
var className = _a.className, _b = _a.size, size = _b === void 0 ? "lg" : _b, _c = _a.variant, variant = _c === void 0 ? "toggle" : _c, _d = _a.children, children = _d === void 0 ? "Toggle" : _d, props = __rest(_a, ["className", "size", "variant", "children"]);
|
|
130
|
+
return (<Button variant={variant} size={size} className={cn(className)} ref={ref} aria-label="Toggle content visibility" {...props}>
|
|
131
|
+
{children}
|
|
132
|
+
</Button>);
|
|
133
|
+
});
|
|
134
|
+
ToggleButton.displayName = "ToggleButton";
|
|
135
|
+
var DeleteButton = React.forwardRef(function (_a, ref) {
|
|
136
|
+
var className = _a.className, _b = _a.size, size = _b === void 0 ? "default" : _b, _c = _a.variant, variant = _c === void 0 ? "delete" : _c, _d = _a.children, children = _d === void 0 ? "Delete" : _d, props = __rest(_a, ["className", "size", "variant", "children"]);
|
|
137
|
+
return (<Button variant={variant} size={size} className={cn(className)} ref={ref} aria-label="Delete item" {...props}>
|
|
138
|
+
{children}
|
|
139
|
+
</Button>);
|
|
140
|
+
});
|
|
141
|
+
DeleteButton.displayName = "DeleteButton";
|
|
142
|
+
var TrashIconButton = React.forwardRef(function (_a, ref) {
|
|
143
|
+
var className = _a.className, _b = _a.size, size = _b === void 0 ? "icon" : _b, _c = _a.variant, variant = _c === void 0 ? "trash-icon" : _c, children = _a.children, props = __rest(_a, ["className", "size", "variant", "children"]);
|
|
144
|
+
return (<Button variant={variant} size={size} className={cn("absolute top-1 right-1", className)} ref={ref} aria-label="Delete image" {...props}>
|
|
145
|
+
{children || <Trash2 className="h-5 w-5"/>}
|
|
146
|
+
</Button>);
|
|
147
|
+
});
|
|
148
|
+
TrashIconButton.displayName = "TrashIconButton";
|
|
149
|
+
var DeleteIconButton = React.forwardRef(function (_a, ref) {
|
|
150
|
+
var className = _a.className, _b = _a.size, size = _b === void 0 ? "sm" : _b, _c = _a.variant, variant = _c === void 0 ? "delete-icon" : _c, _d = _a.children, children = _d === void 0 ? "✕" : _d, props = __rest(_a, ["className", "size", "variant", "children"]);
|
|
151
|
+
return (<Button variant={variant} size={size} className={cn("absolute top-1 right-1", className)} ref={ref} aria-label="Delete item" {...props}>
|
|
152
|
+
{children}
|
|
153
|
+
</Button>);
|
|
154
|
+
});
|
|
155
|
+
DeleteIconButton.displayName = "DeleteIconButton";
|
|
156
|
+
var ActionButton = React.forwardRef(function (_a, ref) {
|
|
157
|
+
var className = _a.className, _b = _a.size, size = _b === void 0 ? "lg" : _b, _c = _a.children, children = _c === void 0 ? "Action" : _c, props = __rest(_a, ["className", "size", "children"]);
|
|
158
|
+
return (<Button variant="action" size={size} className={cn(className)} ref={ref} aria-label="Perform action" {...props}>
|
|
159
|
+
{children}
|
|
160
|
+
</Button>);
|
|
161
|
+
});
|
|
162
|
+
ActionButton.displayName = "ActionButton";
|
|
163
|
+
var AddButton = React.forwardRef(function (_a, ref) {
|
|
164
|
+
var className = _a.className, _b = _a.size, size = _b === void 0 ? "default" : _b, _c = _a.children, children = _c === void 0 ? "Add" : _c, props = __rest(_a, ["className", "size", "children"]);
|
|
165
|
+
return (<Button variant="add" size={size} className={cn(className)} ref={ref} aria-label="Add new item" {...props}>
|
|
166
|
+
{children}
|
|
167
|
+
</Button>);
|
|
168
|
+
});
|
|
169
|
+
AddButton.displayName = "AddButton";
|
|
170
|
+
var ChatToggleButton = React.forwardRef(function (_a, ref) {
|
|
171
|
+
var className = _a.className, _b = _a.size, size = _b === void 0 ? "icon" : _b, _c = _a.variant, variant = _c === void 0 ? "chat-toggle" : _c, children = _a.children, props = __rest(_a, ["className", "size", "variant", "children"]);
|
|
172
|
+
return (<Button variant={variant} size={size} className={cn(className)} ref={ref} aria-label="Toggle chatbot" {...props}>
|
|
173
|
+
{children}
|
|
174
|
+
</Button>);
|
|
175
|
+
});
|
|
176
|
+
ChatToggleButton.displayName = "ChatToggleButton";
|
|
177
|
+
var ChatSubmitButton = React.forwardRef(function (_a, ref) {
|
|
178
|
+
var className = _a.className, _b = _a.size, size = _b === void 0 ? "default" : _b, _c = _a.variant, variant = _c === void 0 ? "chat-submit" : _c, _d = _a.children, children = _d === void 0 ? "Submit" : _d, props = __rest(_a, ["className", "size", "variant", "children"]);
|
|
179
|
+
return (<Button variant={variant} size={size} className={cn(className)} ref={ref} aria-label="Submit chat message" {...props}>
|
|
180
|
+
{children}
|
|
181
|
+
</Button>);
|
|
182
|
+
});
|
|
183
|
+
ChatSubmitButton.displayName = "ChatSubmitButton";
|
|
184
|
+
var RetryButton = React.forwardRef(function (_a, ref) {
|
|
185
|
+
var className = _a.className, _b = _a.size, size = _b === void 0 ? "default" : _b, _c = _a.variant, variant = _c === void 0 ? "retry" : _c, _d = _a.children, children = _d === void 0 ? "Retry" : _d, props = __rest(_a, ["className", "size", "variant", "children"]);
|
|
186
|
+
return (<Button variant={variant} size={size} className={cn(className)} ref={ref} aria-label="Retry action" {...props}>
|
|
187
|
+
{children}
|
|
188
|
+
</Button>);
|
|
189
|
+
});
|
|
190
|
+
RetryButton.displayName = "RetryButton";
|
|
191
|
+
var ResetButton = React.forwardRef(function (_a, ref) {
|
|
192
|
+
var className = _a.className, _b = _a.size, size = _b === void 0 ? "sm" : _b, _c = _a.variant, variant = _c === void 0 ? "reset" : _c, _d = _a.children, children = _d === void 0 ? "Reset" : _d, props = __rest(_a, ["className", "size", "variant", "children"]);
|
|
193
|
+
return (<Button variant={variant} size={size} className={cn(className)} ref={ref} aria-label="Reset credits" {...props}>
|
|
194
|
+
{children}
|
|
195
|
+
</Button>);
|
|
196
|
+
});
|
|
197
|
+
ResetButton.displayName = "ResetButton";
|
|
198
|
+
var ConfirmButton = React.forwardRef(function (_a, ref) {
|
|
199
|
+
var className = _a.className, _b = _a.size, size = _b === void 0 ? "default" : _b, _c = _a.variant, variant = _c === void 0 ? "confirm" : _c, _d = _a.children, children = _d === void 0 ? "Confirm" : _d, props = __rest(_a, ["className", "size", "variant", "children"]);
|
|
200
|
+
return (<Button variant={variant} size={size} className={cn(className)} ref={ref} aria-label="Confirm action" {...props}>
|
|
201
|
+
{children}
|
|
202
|
+
</Button>);
|
|
203
|
+
});
|
|
204
|
+
ConfirmButton.displayName = "ConfirmButton";
|
|
205
|
+
var SubmitButton = React.forwardRef(function (_a, ref) {
|
|
206
|
+
var className = _a.className, _b = _a.size, size = _b === void 0 ? "default" : _b, _c = _a.variant, variant = _c === void 0 ? "form-submit" : _c, _d = _a.children, children = _d === void 0 ? "Submit" : _d, props = __rest(_a, ["className", "size", "variant", "children"]);
|
|
207
|
+
return (<Button variant={variant} size={size} className={cn(className)} ref={ref} aria-label="Submit form" {...props}>
|
|
208
|
+
{children}
|
|
209
|
+
</Button>);
|
|
210
|
+
});
|
|
211
|
+
SubmitButton.displayName = "SubmitButton";
|
|
212
|
+
var ContactSubmitButton = React.forwardRef(function (_a, ref) {
|
|
213
|
+
var className = _a.className, _b = _a.size, size = _b === void 0 ? "default" : _b, _c = _a.variant, variant = _c === void 0 ? "contact-submit" : _c, _d = _a.children, children = _d === void 0 ? "Send Message" : _d, props = __rest(_a, ["className", "size", "variant", "children"]);
|
|
214
|
+
return (<Button variant={variant} size={size} className={cn(className)} ref={ref} aria-label="Submit contact form" {...props}>
|
|
215
|
+
{children}
|
|
216
|
+
</Button>);
|
|
217
|
+
});
|
|
218
|
+
ContactSubmitButton.displayName = "ContactSubmitButton";
|
|
219
|
+
var ExternalLinkButton = React.forwardRef(function (_a, ref) {
|
|
220
|
+
var className = _a.className, _b = _a.size, size = _b === void 0 ? "default" : _b, _c = _a.variant, variant = _c === void 0 ? "external-link" : _c, _d = _a.children, children = _d === void 0 ? "Open Link" : _d, _e = _a.asChild, asChild = _e === void 0 ? true : _e, props = __rest(_a, ["className", "size", "variant", "children", "asChild"]);
|
|
221
|
+
return (<Button variant={variant} size={size} className={cn(className)} asChild={asChild} ref={ref} aria-label="Open external link" {...props}>
|
|
222
|
+
{children}
|
|
223
|
+
</Button>);
|
|
224
|
+
});
|
|
225
|
+
ExternalLinkButton.displayName = "ExternalLinkButton";
|
|
226
|
+
var BackButton = React.forwardRef(function (_a, ref) {
|
|
227
|
+
var className = _a.className, _b = _a.size, size = _b === void 0 ? "sm" : _b, _c = _a.variant, variant = _c === void 0 ? "submit" : _c, _d = _a.children, children = _d === void 0 ? "Back" : _d, props = __rest(_a, ["className", "size", "variant", "children"]);
|
|
228
|
+
return (<Button variant={variant} size={size} className={cn("flex items-center gap-2", className)} ref={ref} aria-label="Navigate back" {...props}>
|
|
229
|
+
{children}
|
|
230
|
+
</Button>);
|
|
231
|
+
});
|
|
232
|
+
BackButton.displayName = "BackButton";
|
|
233
|
+
var EditToggleButton = React.forwardRef(function (_a, ref) {
|
|
234
|
+
var className = _a.className, _b = _a.size, size = _b === void 0 ? "sm" : _b, _c = _a.variant, variant = _c === void 0 ? "edit-toggle" : _c, _d = _a.children, children = _d === void 0 ? "Edit" : _d, props = __rest(_a, ["className", "size", "variant", "children"]);
|
|
235
|
+
return (<Button variant={variant} size={size} className={cn(className)} ref={ref} aria-label="Toggle edit mode" {...props}>
|
|
236
|
+
{children}
|
|
237
|
+
</Button>);
|
|
238
|
+
});
|
|
239
|
+
EditToggleButton.displayName = "EditToggleButton";
|
|
240
|
+
var NextButton = React.forwardRef(function (_a, ref) {
|
|
241
|
+
var className = _a.className, _b = _a.size, size = _b === void 0 ? "sm" : _b, _c = _a.variant, variant = _c === void 0 ? "update" : _c, _d = _a.children, children = _d === void 0 ? "Next" : _d, props = __rest(_a, ["className", "size", "variant", "children"]);
|
|
242
|
+
return (<Button variant={variant} size={size} className={cn(className)} ref={ref} aria-label="Next step" {...props}>
|
|
243
|
+
{children}
|
|
244
|
+
</Button>);
|
|
245
|
+
});
|
|
246
|
+
NextButton.displayName = "NextButton";
|
|
247
|
+
var PrevButton = React.forwardRef(function (_a, ref) {
|
|
248
|
+
var className = _a.className, _b = _a.size, size = _b === void 0 ? "sm" : _b, _c = _a.variant, variant = _c === void 0 ? "update" : _c, _d = _a.children, children = _d === void 0 ? "Previous" : _d, props = __rest(_a, ["className", "size", "variant", "children"]);
|
|
249
|
+
return (<Button variant={variant} size={size} className={cn("flex items-center gap-2", className)} ref={ref} aria-label="Previous step" {...props}>
|
|
250
|
+
{children}
|
|
251
|
+
</Button>);
|
|
252
|
+
});
|
|
253
|
+
PrevButton.displayName = "PrevButton";
|
|
254
|
+
var HeroButton = React.forwardRef(function (_a, ref) {
|
|
255
|
+
var className = _a.className, _b = _a.size, size = _b === void 0 ? "hero" : _b, _c = _a.variant, variant = _c === void 0 ? "hero" : _c, _d = _a.children, children = _d === void 0 ? "Get Started" : _d, props = __rest(_a, ["className", "size", "variant", "children"]);
|
|
256
|
+
return (<Button variant={variant} size={size} className={cn(className)} ref={ref} aria-label="Hero section call to action" {...props}>
|
|
257
|
+
{children}
|
|
258
|
+
</Button>);
|
|
259
|
+
});
|
|
260
|
+
HeroButton.displayName = "HeroButton";
|
|
261
|
+
var ReadMoreButton = React.forwardRef(function (_a, ref) {
|
|
262
|
+
var className = _a.className, _b = _a.size, size = _b === void 0 ? "readMore" : _b, _c = _a.variant, variant = _c === void 0 ? "readMore" : _c, _d = _a.children, children = _d === void 0 ? "Read More" : _d, props = __rest(_a, ["className", "size", "variant", "children"]);
|
|
263
|
+
return (<Button variant={variant} size={size} className={cn(className)} ref={ref} aria-label="Show more content" {...props}>
|
|
264
|
+
{children}
|
|
265
|
+
</Button>);
|
|
266
|
+
});
|
|
267
|
+
ReadMoreButton.displayName = "ReadMoreButton";
|
|
268
|
+
var FilterButton = React.forwardRef(function (_a, ref) {
|
|
269
|
+
var className = _a.className, _b = _a.isActive, isActive = _b === void 0 ? false : _b, _c = _a.useBlueActive, useBlueActive = _c === void 0 ? false : _c, children = _a.children, props = __rest(_a, ["className", "isActive", "useBlueActive", "children"]);
|
|
270
|
+
return (<Button variant={isActive ? (useBlueActive ? "filter-blue-active" : "filter-active") : "filter"} className={cn(className)} ref={ref} aria-label={"Filter by ".concat(children)} {...props}>
|
|
271
|
+
{children}
|
|
272
|
+
</Button>);
|
|
273
|
+
});
|
|
274
|
+
FilterButton.displayName = "FilterButton";
|
|
275
|
+
var SignInButton = React.forwardRef(function (_a, ref) {
|
|
276
|
+
var className = _a.className, _b = _a.size, size = _b === void 0 ? "sm" : _b, _c = _a.variant, variant = _c === void 0 ? "action" : _c, _d = _a.children, children = _d === void 0 ? "Login" : _d, props = __rest(_a, ["className", "size", "variant", "children"]);
|
|
277
|
+
return (<Button variant={variant} size={size} className={cn("flex items-center gap-2", className)} ref={ref} aria-label="Login" {...props}>
|
|
278
|
+
<LogIn className="h-4 w-4 sm:h-5 sm:w-5"/>
|
|
279
|
+
{children}
|
|
280
|
+
</Button>);
|
|
281
|
+
});
|
|
282
|
+
SignInButton.displayName = "SignInButton";
|
|
283
|
+
var SignUpButton = React.forwardRef(function (_a, ref) {
|
|
284
|
+
var className = _a.className, _b = _a.size, size = _b === void 0 ? "sm" : _b, _c = _a.variant, variant = _c === void 0 ? "action" : _c, _d = _a.children, children = _d === void 0 ? "Sign Up" : _d, props = __rest(_a, ["className", "size", "variant", "children"]);
|
|
285
|
+
return (<Button variant={variant} size={size} className={cn("flex items-center gap-2", className)} ref={ref} aria-label="Sign Up" {...props}>
|
|
286
|
+
<UserPlus className="h-4 w-4 sm:h-5 sm:w-5"/>
|
|
287
|
+
{children}
|
|
288
|
+
</Button>);
|
|
289
|
+
});
|
|
290
|
+
SignUpButton.displayName = "SignUpButton";
|
|
291
|
+
var SettingsButton = React.forwardRef(function (_a, ref) {
|
|
292
|
+
var className = _a.className, _b = _a.size, size = _b === void 0 ? "sm" : _b, _c = _a.variant, variant = _c === void 0 ? "action" : _c, children = _a.children, props = __rest(_a, ["className", "size", "variant", "children"]);
|
|
293
|
+
return (<Button variant={variant} size={size} className={cn("flex items-center gap-2", className)} ref={ref} aria-label="Admin Menu" {...props}>
|
|
294
|
+
<Settings className="h-4 w-4 sm:h-5 sm:w-5"/>
|
|
295
|
+
{children}
|
|
296
|
+
</Button>);
|
|
297
|
+
});
|
|
298
|
+
SettingsButton.displayName = "SettingsButton";
|
|
299
|
+
var SignOutButton = React.forwardRef(function (_a, ref) {
|
|
300
|
+
var className = _a.className, _b = _a.size, size = _b === void 0 ? "sm" : _b, _c = _a.variant, variant = _c === void 0 ? "action" : _c, _d = _a.children, children = _d === void 0 ? "Logout" : _d, props = __rest(_a, ["className", "size", "variant", "children"]);
|
|
301
|
+
return (<Button variant={variant} size={size} className={cn("flex items-center gap-2", className)} ref={ref} aria-label="Logout" {...props}>
|
|
302
|
+
<LogOut className="h-4 w-4 sm:h-5 sm:w-5"/>
|
|
303
|
+
{children}
|
|
304
|
+
</Button>);
|
|
305
|
+
});
|
|
306
|
+
SignOutButton.displayName = "SignOutButton";
|
|
307
|
+
var ScrollToTopButton = React.forwardRef(function (_a, ref) {
|
|
308
|
+
var className = _a.className, _b = _a.size, size = _b === void 0 ? "bubble" : _b, _c = _a.variant, variant = _c === void 0 ? "scrollToTop" : _c, children = _a.children, props = __rest(_a, ["className", "size", "variant", "children"]);
|
|
309
|
+
return (<Button variant={variant} size={size} className={cn(className)} ref={ref} aria-label="Scroll to top" {...props}>
|
|
310
|
+
{children || <ArrowUp className="h-6 w-6 stroke-2 md:stroke-[3]"/>}
|
|
311
|
+
</Button>);
|
|
312
|
+
});
|
|
313
|
+
ScrollToTopButton.displayName = "ScrollToTopButton";
|
|
314
|
+
var PhoneButton = React.forwardRef(function (_a, ref) {
|
|
315
|
+
var className = _a.className, _b = _a.size, size = _b === void 0 ? "bubble" : _b, _c = _a.variant, variant = _c === void 0 ? "phone" : _c, children = _a.children, props = __rest(_a, ["className", "size", "variant", "children"]);
|
|
316
|
+
return (<Button variant={variant} size={size} className={cn(className)} ref={ref} aria-label="Call us" {...props}>
|
|
317
|
+
{children || <Phone className="h-6 w-6 stroke-2 md:stroke-[3] rotate-12"/>}
|
|
318
|
+
</Button>);
|
|
319
|
+
});
|
|
320
|
+
PhoneButton.displayName = "PhoneButton";
|
|
321
|
+
export { Button, EditIconButton, CreateButton, UploadButton, UpdateButton, CancelButton, CloseButton, ToggleButton, DeleteButton, TrashIconButton, DeleteIconButton, ActionButton, AddButton, ChatToggleButton, ChatSubmitButton, RetryButton, ResetButton, ConfirmButton, SubmitButton, ContactSubmitButton, ExternalLinkButton, BackButton, EditToggleButton, NextButton, PrevButton, HeroButton, ReadMoreButton, FilterButton, SignInButton, SignUpButton, SettingsButton, SignOutButton, ScrollToTopButton, PhoneButton, buttonVariants, };
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
14
|
+
var t = {};
|
|
15
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
16
|
+
t[p] = s[p];
|
|
17
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
18
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
19
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
20
|
+
t[p[i]] = s[p[i]];
|
|
21
|
+
}
|
|
22
|
+
return t;
|
|
23
|
+
};
|
|
24
|
+
import * as React from 'react';
|
|
25
|
+
import { ChevronLeft, ChevronRight } from 'lucide-react';
|
|
26
|
+
import { DayPicker } from 'react-day-picker';
|
|
27
|
+
import { cn } from '@/lib/utils';
|
|
28
|
+
import { buttonVariants } from '@/components/other/button';
|
|
29
|
+
function Calendar(_a) {
|
|
30
|
+
var className = _a.className, classNames = _a.classNames, _b = _a.showOutsideDays, showOutsideDays = _b === void 0 ? true : _b, props = __rest(_a, ["className", "classNames", "showOutsideDays"]);
|
|
31
|
+
return (<DayPicker showOutsideDays={showOutsideDays} className={cn('p-3', className)} classNames={__assign({ months: 'flex flex-col sm:flex-row space-y-4 sm:space-x-4 sm:space-y-0', month: 'space-y-4', caption: 'flex justify-center pt-1 relative items-center', caption_label: 'text-sm font-medium', nav: 'space-x-1 flex items-center', nav_button: cn(buttonVariants({ variant: 'outline' }), 'h-7 w-7 bg-transparent p-0 opacity-50 hover:opacity-100'), nav_button_previous: 'absolute left-1', nav_button_next: 'absolute right-1', table: 'w-full border-collapse space-y-1', head_row: 'flex', head_cell: 'text-muted-foreground rounded-md w-9 font-normal text-[0.8rem]', row: 'flex w-full mt-2', cell: 'h-9 w-9 text-center text-sm p-0 relative [&:has([aria-selected].day-range-end)]:rounded-r-md [&:has([aria-selected].day-outside)]:bg-accent/50 [&:has([aria-selected])]:bg-accent first:[&:has([aria-selected])]:rounded-l-md last:[&:has([aria-selected])]:rounded-r-md focus-within:relative focus-within:z-20', day: cn(buttonVariants({ variant: 'ghost' }), 'h-9 w-9 p-0 font-normal aria-selected:opacity-100'), day_range_end: 'day-range-end', day_selected: 'bg-primary text-primary-foreground hover:bg-primary hover:text-primary-foreground focus:bg-primary focus:text-primary-foreground', day_today: 'bg-accent text-accent-foreground', day_outside: 'day-outside text-muted-foreground opacity-50 aria-selected:bg-accent/50 aria-selected:text-muted-foreground aria-selected:opacity-30', day_disabled: 'text-muted-foreground opacity-50', day_range_middle: 'aria-selected:bg-accent aria-selected:text-accent-foreground', day_hidden: 'invisible' }, classNames)} components={{
|
|
32
|
+
IconLeft: function (_a) {
|
|
33
|
+
var props = __rest(_a, []);
|
|
34
|
+
return <ChevronLeft className="h-4 w-4"/>;
|
|
35
|
+
},
|
|
36
|
+
IconRight: function (_a) {
|
|
37
|
+
var props = __rest(_a, []);
|
|
38
|
+
return <ChevronRight className="h-4 w-4"/>;
|
|
39
|
+
},
|
|
40
|
+
}} {...props}/>);
|
|
41
|
+
}
|
|
42
|
+
Calendar.displayName = 'Calendar';
|
|
43
|
+
export { Calendar };
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
2
|
+
var t = {};
|
|
3
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
4
|
+
t[p] = s[p];
|
|
5
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
6
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
7
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
8
|
+
t[p[i]] = s[p[i]];
|
|
9
|
+
}
|
|
10
|
+
return t;
|
|
11
|
+
};
|
|
12
|
+
import * as React from 'react';
|
|
13
|
+
import { cn } from '@/lib/utils';
|
|
14
|
+
var Card = React.forwardRef(function (_a, ref) {
|
|
15
|
+
var className = _a.className, props = __rest(_a, ["className"]);
|
|
16
|
+
return (<div ref={ref} className={cn('rounded-lg border bg-card text-card-foreground shadow-sm', className)} {...props}/>);
|
|
17
|
+
});
|
|
18
|
+
Card.displayName = 'Card';
|
|
19
|
+
var CardHeader = React.forwardRef(function (_a, ref) {
|
|
20
|
+
var className = _a.className, props = __rest(_a, ["className"]);
|
|
21
|
+
return (<div ref={ref} className={cn('flex flex-col space-y-1.5 p-6', className)} {...props}/>);
|
|
22
|
+
});
|
|
23
|
+
CardHeader.displayName = 'CardHeader';
|
|
24
|
+
var CardTitle = React.forwardRef(function (_a, ref) {
|
|
25
|
+
var className = _a.className, props = __rest(_a, ["className"]);
|
|
26
|
+
return (<h3 ref={ref} className={cn('text-2xl font-semibold leading-none tracking-tight', className)} {...props}/>);
|
|
27
|
+
});
|
|
28
|
+
CardTitle.displayName = 'CardTitle';
|
|
29
|
+
var CardDescription = React.forwardRef(function (_a, ref) {
|
|
30
|
+
var className = _a.className, props = __rest(_a, ["className"]);
|
|
31
|
+
return (<p ref={ref} className={cn('text-sm text-muted-foreground', className)} {...props}/>);
|
|
32
|
+
});
|
|
33
|
+
CardDescription.displayName = 'CardDescription';
|
|
34
|
+
var CardContent = React.forwardRef(function (_a, ref) {
|
|
35
|
+
var className = _a.className, props = __rest(_a, ["className"]);
|
|
36
|
+
return (<div ref={ref} className={cn('p-6 pt-0', className)} {...props}/>);
|
|
37
|
+
});
|
|
38
|
+
CardContent.displayName = 'CardContent';
|
|
39
|
+
var CardFooter = React.forwardRef(function (_a, ref) {
|
|
40
|
+
var className = _a.className, props = __rest(_a, ["className"]);
|
|
41
|
+
return (<div ref={ref} className={cn('flex items-center p-6 pt-0', className)} {...props}/>);
|
|
42
|
+
});
|
|
43
|
+
CardFooter.displayName = 'CardFooter';
|
|
44
|
+
export { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent, };
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
var __assign = (this && this.__assign) || function () {
|
|
3
|
+
__assign = Object.assign || function(t) {
|
|
4
|
+
for (var s, i = 1, n = arguments.length; i < n; i++) {
|
|
5
|
+
s = arguments[i];
|
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
|
|
7
|
+
t[p] = s[p];
|
|
8
|
+
}
|
|
9
|
+
return t;
|
|
10
|
+
};
|
|
11
|
+
return __assign.apply(this, arguments);
|
|
12
|
+
};
|
|
13
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
14
|
+
var t = {};
|
|
15
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
16
|
+
t[p] = s[p];
|
|
17
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
18
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
19
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
20
|
+
t[p[i]] = s[p[i]];
|
|
21
|
+
}
|
|
22
|
+
return t;
|
|
23
|
+
};
|
|
24
|
+
import * as React from 'react';
|
|
25
|
+
import useEmblaCarousel from 'embla-carousel-react';
|
|
26
|
+
import { ArrowLeft, ArrowRight } from 'lucide-react';
|
|
27
|
+
import Image from 'next/image';
|
|
28
|
+
import { cn } from '@/lib/utils';
|
|
29
|
+
import { PrevButton, NextButton } from '@/components/other/button';
|
|
30
|
+
var CarouselContext = React.createContext(null);
|
|
31
|
+
function useCarousel() {
|
|
32
|
+
var context = React.useContext(CarouselContext);
|
|
33
|
+
if (!context) {
|
|
34
|
+
throw new Error('useCarousel must be used within a <Carousel />');
|
|
35
|
+
}
|
|
36
|
+
return context;
|
|
37
|
+
}
|
|
38
|
+
var Carousel = React.forwardRef(function (_a, ref) {
|
|
39
|
+
var _b = _a.orientation, orientation = _b === void 0 ? 'horizontal' : _b, opts = _a.opts, setApi = _a.setApi, plugins = _a.plugins, className = _a.className, children = _a.children, props = __rest(_a, ["orientation", "opts", "setApi", "plugins", "className", "children"]);
|
|
40
|
+
var _c = useEmblaCarousel(__assign(__assign({}, opts), { axis: orientation === 'horizontal' ? 'x' : 'y' }), plugins), carouselRef = _c[0], api = _c[1];
|
|
41
|
+
var _d = React.useState(false), canScrollPrev = _d[0], setCanScrollPrev = _d[1];
|
|
42
|
+
var _e = React.useState(false), canScrollNext = _e[0], setCanScrollNext = _e[1];
|
|
43
|
+
var onSelect = React.useCallback(function (api) {
|
|
44
|
+
if (!api) {
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
setCanScrollPrev(api.canScrollPrev());
|
|
48
|
+
setCanScrollNext(api.canScrollNext());
|
|
49
|
+
}, []);
|
|
50
|
+
var scrollPrev = React.useCallback(function () {
|
|
51
|
+
api === null || api === void 0 ? void 0 : api.scrollPrev();
|
|
52
|
+
}, [api]);
|
|
53
|
+
var scrollNext = React.useCallback(function () {
|
|
54
|
+
api === null || api === void 0 ? void 0 : api.scrollNext();
|
|
55
|
+
}, [api]);
|
|
56
|
+
var handleKeyDown = React.useCallback(function (event) {
|
|
57
|
+
if (event.key === 'ArrowLeft') {
|
|
58
|
+
event.preventDefault();
|
|
59
|
+
scrollPrev();
|
|
60
|
+
}
|
|
61
|
+
else if (event.key === 'ArrowRight') {
|
|
62
|
+
event.preventDefault();
|
|
63
|
+
scrollNext();
|
|
64
|
+
}
|
|
65
|
+
}, [scrollPrev, scrollNext]);
|
|
66
|
+
React.useEffect(function () {
|
|
67
|
+
if (!api || !setApi) {
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
setApi(api);
|
|
71
|
+
}, [api, setApi]);
|
|
72
|
+
React.useEffect(function () {
|
|
73
|
+
if (!api) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
onSelect(api);
|
|
77
|
+
api.on('reInit', onSelect);
|
|
78
|
+
api.on('select', onSelect);
|
|
79
|
+
return function () {
|
|
80
|
+
api === null || api === void 0 ? void 0 : api.off('select', onSelect);
|
|
81
|
+
};
|
|
82
|
+
}, [api, onSelect]);
|
|
83
|
+
return (<CarouselContext.Provider value={{
|
|
84
|
+
carouselRef: carouselRef,
|
|
85
|
+
api: api,
|
|
86
|
+
opts: opts,
|
|
87
|
+
orientation: orientation || ((opts === null || opts === void 0 ? void 0 : opts.axis) === 'y' ? 'vertical' : 'horizontal'),
|
|
88
|
+
scrollPrev: scrollPrev,
|
|
89
|
+
scrollNext: scrollNext,
|
|
90
|
+
canScrollPrev: canScrollPrev,
|
|
91
|
+
canScrollNext: canScrollNext,
|
|
92
|
+
}}>
|
|
93
|
+
<div ref={ref} onKeyDownCapture={handleKeyDown} className={cn('relative', className)} role="region" aria-roledescription="carousel" {...props}>
|
|
94
|
+
{children}
|
|
95
|
+
</div>
|
|
96
|
+
</CarouselContext.Provider>);
|
|
97
|
+
});
|
|
98
|
+
Carousel.displayName = 'Carousel';
|
|
99
|
+
var CarouselContent = React.forwardRef(function (_a, ref) {
|
|
100
|
+
var className = _a.className, props = __rest(_a, ["className"]);
|
|
101
|
+
var _b = useCarousel(), carouselRef = _b.carouselRef, orientation = _b.orientation;
|
|
102
|
+
return (<div ref={carouselRef} className="overflow-hidden">
|
|
103
|
+
<div ref={ref} className={cn('flex', orientation === 'horizontal' ? '-ml-4' : '-mt-4 flex-col', className)} {...props}/>
|
|
104
|
+
</div>);
|
|
105
|
+
});
|
|
106
|
+
CarouselContent.displayName = 'CarouselContent';
|
|
107
|
+
var CarouselItem = React.forwardRef(function (_a, ref) {
|
|
108
|
+
var className = _a.className, imageUrl = _a.imageUrl, props = __rest(_a, ["className", "imageUrl"]);
|
|
109
|
+
var orientation = useCarousel().orientation;
|
|
110
|
+
return (<div ref={ref} role="group" aria-roledescription="slide" className={cn('min-w-0 shrink-0 grow-0 basis-full', orientation === 'horizontal' ? 'pl-4' : 'pt-4', className)} {...props}>
|
|
111
|
+
{imageUrl && (<div className="relative w-full h-48 mb-4">
|
|
112
|
+
<Image src={imageUrl} alt="Carousel slide image" fill className="object-cover rounded-lg" priority={false} sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw"/>
|
|
113
|
+
</div>)}
|
|
114
|
+
{props.children}
|
|
115
|
+
</div>);
|
|
116
|
+
});
|
|
117
|
+
CarouselItem.displayName = 'CarouselItem';
|
|
118
|
+
var CarouselPrevious = React.forwardRef(function (_a, ref) {
|
|
119
|
+
var className = _a.className, props = __rest(_a, ["className"]);
|
|
120
|
+
var _b = useCarousel(), orientation = _b.orientation, scrollPrev = _b.scrollPrev, canScrollPrev = _b.canScrollPrev;
|
|
121
|
+
return (<PrevButton ref={ref} className={cn('border border-gray-300 bg-transparent hover:bg-gray-100 text-gray-700 hover:text-gray-900 h-8 w-8 rounded-full', orientation === 'horizontal'
|
|
122
|
+
? '-left-12 top-1/2 -translate-y-1/2'
|
|
123
|
+
: '-top-12 left-1/2 -translate-x-1/2 rotate-90', className)} disabled={!canScrollPrev} onClick={scrollPrev} {...props}>
|
|
124
|
+
<ArrowLeft className="h-4 w-4"/>
|
|
125
|
+
<span className="sr-only">Previous slide</span>
|
|
126
|
+
</PrevButton>);
|
|
127
|
+
});
|
|
128
|
+
CarouselPrevious.displayName = 'CarouselPrevious';
|
|
129
|
+
var CarouselNext = React.forwardRef(function (_a, ref) {
|
|
130
|
+
var className = _a.className, props = __rest(_a, ["className"]);
|
|
131
|
+
var _b = useCarousel(), orientation = _b.orientation, scrollNext = _b.scrollNext, canScrollNext = _b.canScrollNext;
|
|
132
|
+
return (<NextButton ref={ref} className={cn('border border-gray-300 bg-transparent hover:bg-gray-100 text-gray-700 hover:text-gray-900 h-8 w-8 rounded-full', orientation === 'horizontal'
|
|
133
|
+
? '-right-12 top-1/2 -translate-y-1/2'
|
|
134
|
+
: '-bottom-12 left-1/2 -translate-x-1/2 rotate-90', className)} disabled={!canScrollNext} onClick={scrollNext} {...props}>
|
|
135
|
+
<ArrowRight className="h-4 w-4"/>
|
|
136
|
+
<span className="sr-only">Next slide</span>
|
|
137
|
+
</NextButton>);
|
|
138
|
+
});
|
|
139
|
+
CarouselNext.displayName = 'CarouselNext';
|
|
140
|
+
export { Carousel, CarouselContent, CarouselItem, CarouselPrevious, CarouselNext, };
|