@beyondcorp/beyond-ui 1.3.12 → 1.4.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.
- package/README.md +1 -1
- package/dist/components/ComponentShowcase/ComponentShowcase.js +7 -1
- package/dist/components/ComponentShowcase/ComponentShowcase.js.map +1 -1
- package/dist/components/ComponentShowcase/componentDocs.d.ts +6 -0
- package/dist/components/ComponentShowcase/componentDocs.js +17 -0
- package/dist/components/ComponentShowcase/componentDocs.js.map +1 -1
- package/dist/components/ComponentShowcase/showcaseRegistry.js +3 -1
- package/dist/components/ComponentShowcase/showcaseRegistry.js.map +1 -1
- package/dist/components/Email/EmailShowcase.d.ts +1 -0
- package/dist/components/Email/EmailShowcase.js +85 -0
- package/dist/components/Email/EmailShowcase.js.map +1 -0
- package/dist/components/Email/components/EmailButton.d.ts +5 -0
- package/dist/components/Email/components/EmailButton.js +7 -0
- package/dist/components/Email/components/EmailButton.js.map +1 -0
- package/dist/components/Email/components/EmailDivider.d.ts +1 -0
- package/dist/components/Email/components/EmailDivider.js +7 -0
- package/dist/components/Email/components/EmailDivider.js.map +1 -0
- package/dist/components/Email/components/EmailFooter.d.ts +3 -0
- package/dist/components/Email/components/EmailFooter.js +9 -0
- package/dist/components/Email/components/EmailFooter.js.map +1 -0
- package/dist/components/Email/components/EmailHeader.d.ts +4 -0
- package/dist/components/Email/components/EmailHeader.js +8 -0
- package/dist/components/Email/components/EmailHeader.js.map +1 -0
- package/dist/components/Email/components/EmailLayout.d.ts +6 -0
- package/dist/components/Email/components/EmailLayout.js +15 -0
- package/dist/components/Email/components/EmailLayout.js.map +1 -0
- package/dist/components/Email/components/EmailPreviewer.d.ts +5 -0
- package/dist/components/Email/components/EmailPreviewer.js +25 -0
- package/dist/components/Email/components/EmailPreviewer.js.map +1 -0
- package/dist/components/Email/components/index.d.ts +7 -0
- package/dist/components/Email/components/theme.d.ts +27 -0
- package/dist/components/Email/components/theme.js +21 -0
- package/dist/components/Email/components/theme.js.map +1 -0
- package/dist/components/Email/index.d.ts +2 -0
- package/dist/components/Email/templates/auth/ConfirmEmail.d.ts +7 -0
- package/dist/components/Email/templates/auth/ConfirmEmail.js +13 -0
- package/dist/components/Email/templates/auth/ConfirmEmail.js.map +1 -0
- package/dist/components/Email/templates/auth/EmailChangeVerification.d.ts +9 -0
- package/dist/components/Email/templates/auth/EmailChangeVerification.js +13 -0
- package/dist/components/Email/templates/auth/EmailChangeVerification.js.map +1 -0
- package/dist/components/Email/templates/auth/MagicLinkEmail.d.ts +7 -0
- package/dist/components/Email/templates/auth/MagicLinkEmail.js +14 -0
- package/dist/components/Email/templates/auth/MagicLinkEmail.js.map +1 -0
- package/dist/components/Email/templates/auth/ResetPasswordEmail.d.ts +8 -0
- package/dist/components/Email/templates/auth/ResetPasswordEmail.js +13 -0
- package/dist/components/Email/templates/auth/ResetPasswordEmail.js.map +1 -0
- package/dist/components/Email/templates/auth/WelcomeEmail.d.ts +8 -0
- package/dist/components/Email/templates/auth/WelcomeEmail.js +13 -0
- package/dist/components/Email/templates/auth/WelcomeEmail.js.map +1 -0
- package/dist/components/Email/templates/auth/index.d.ts +5 -0
- package/dist/components/Email/templates/billing/CreditCardExpiring.d.ts +9 -0
- package/dist/components/Email/templates/billing/CreditCardExpiring.js +14 -0
- package/dist/components/Email/templates/billing/CreditCardExpiring.js.map +1 -0
- package/dist/components/Email/templates/billing/InvoiceEmail.d.ts +10 -0
- package/dist/components/Email/templates/billing/InvoiceEmail.js +16 -0
- package/dist/components/Email/templates/billing/InvoiceEmail.js.map +1 -0
- package/dist/components/Email/templates/billing/OverduePaymentNotice.d.ts +9 -0
- package/dist/components/Email/templates/billing/OverduePaymentNotice.js +13 -0
- package/dist/components/Email/templates/billing/OverduePaymentNotice.js.map +1 -0
- package/dist/components/Email/templates/billing/PaymentFailedEmail.d.ts +8 -0
- package/dist/components/Email/templates/billing/PaymentFailedEmail.js +14 -0
- package/dist/components/Email/templates/billing/PaymentFailedEmail.js.map +1 -0
- package/dist/components/Email/templates/billing/PaymentReceipt.d.ts +10 -0
- package/dist/components/Email/templates/billing/PaymentReceipt.js +15 -0
- package/dist/components/Email/templates/billing/PaymentReceipt.js.map +1 -0
- package/dist/components/Email/templates/billing/SubscriptionCancelled.d.ts +9 -0
- package/dist/components/Email/templates/billing/SubscriptionCancelled.js +14 -0
- package/dist/components/Email/templates/billing/SubscriptionCancelled.js.map +1 -0
- package/dist/components/Email/templates/billing/SubscriptionConfirmation.d.ts +10 -0
- package/dist/components/Email/templates/billing/SubscriptionConfirmation.js +13 -0
- package/dist/components/Email/templates/billing/SubscriptionConfirmation.js.map +1 -0
- package/dist/components/Email/templates/billing/TrialEndingEmail.d.ts +8 -0
- package/dist/components/Email/templates/billing/TrialEndingEmail.js +13 -0
- package/dist/components/Email/templates/billing/TrialEndingEmail.js.map +1 -0
- package/dist/components/Email/templates/billing/index.d.ts +8 -0
- package/dist/components/Email/templates/engagement/FeatureAnnouncement.d.ts +10 -0
- package/dist/components/Email/templates/engagement/FeatureAnnouncement.js +15 -0
- package/dist/components/Email/templates/engagement/FeatureAnnouncement.js.map +1 -0
- package/dist/components/Email/templates/engagement/FeedbackRequestEmail.d.ts +8 -0
- package/dist/components/Email/templates/engagement/FeedbackRequestEmail.js +13 -0
- package/dist/components/Email/templates/engagement/FeedbackRequestEmail.js.map +1 -0
- package/dist/components/Email/templates/engagement/InactivityWarning.d.ts +9 -0
- package/dist/components/Email/templates/engagement/InactivityWarning.js +14 -0
- package/dist/components/Email/templates/engagement/InactivityWarning.js.map +1 -0
- package/dist/components/Email/templates/engagement/MilestoneEmail.d.ts +9 -0
- package/dist/components/Email/templates/engagement/MilestoneEmail.js +14 -0
- package/dist/components/Email/templates/engagement/MilestoneEmail.js.map +1 -0
- package/dist/components/Email/templates/engagement/ProductChangelog.d.ts +9 -0
- package/dist/components/Email/templates/engagement/ProductChangelog.js +13 -0
- package/dist/components/Email/templates/engagement/ProductChangelog.js.map +1 -0
- package/dist/components/Email/templates/engagement/TeamInviteEmail.d.ts +9 -0
- package/dist/components/Email/templates/engagement/TeamInviteEmail.js +14 -0
- package/dist/components/Email/templates/engagement/TeamInviteEmail.js.map +1 -0
- package/dist/components/Email/templates/engagement/TipOfWeek.d.ts +9 -0
- package/dist/components/Email/templates/engagement/TipOfWeek.js +13 -0
- package/dist/components/Email/templates/engagement/TipOfWeek.js.map +1 -0
- package/dist/components/Email/templates/engagement/WeeklyDigest.d.ts +11 -0
- package/dist/components/Email/templates/engagement/WeeklyDigest.js +20 -0
- package/dist/components/Email/templates/engagement/WeeklyDigest.js.map +1 -0
- package/dist/components/Email/templates/engagement/index.d.ts +8 -0
- package/dist/components/Email/templates/growth/ReferralConverted.d.ts +9 -0
- package/dist/components/Email/templates/growth/ReferralConverted.js +13 -0
- package/dist/components/Email/templates/growth/ReferralConverted.js.map +1 -0
- package/dist/components/Email/templates/growth/ReferralInvite.d.ts +8 -0
- package/dist/components/Email/templates/growth/ReferralInvite.js +13 -0
- package/dist/components/Email/templates/growth/ReferralInvite.js.map +1 -0
- package/dist/components/Email/templates/growth/ReferralReward.d.ts +10 -0
- package/dist/components/Email/templates/growth/ReferralReward.js +14 -0
- package/dist/components/Email/templates/growth/ReferralReward.js.map +1 -0
- package/dist/components/Email/templates/growth/SocialSharePrompt.d.ts +8 -0
- package/dist/components/Email/templates/growth/SocialSharePrompt.js +15 -0
- package/dist/components/Email/templates/growth/SocialSharePrompt.js.map +1 -0
- package/dist/components/Email/templates/growth/WaitlistWelcome.d.ts +9 -0
- package/dist/components/Email/templates/growth/WaitlistWelcome.js +14 -0
- package/dist/components/Email/templates/growth/WaitlistWelcome.js.map +1 -0
- package/dist/components/Email/templates/growth/index.d.ts +5 -0
- package/dist/components/Email/templates/index.d.ts +11 -0
- package/dist/components/Email/templates/index.js +116 -0
- package/dist/components/Email/templates/index.js.map +1 -0
- package/dist/components/Email/templates/internal/comms/CompanyEventsCalendar.d.ts +13 -0
- package/dist/components/Email/templates/internal/comms/CompanyEventsCalendar.js +19 -0
- package/dist/components/Email/templates/internal/comms/CompanyEventsCalendar.js.map +1 -0
- package/dist/components/Email/templates/internal/comms/LeadershipUpdate.d.ts +9 -0
- package/dist/components/Email/templates/internal/comms/LeadershipUpdate.js +16 -0
- package/dist/components/Email/templates/internal/comms/LeadershipUpdate.js.map +1 -0
- package/dist/components/Email/templates/internal/comms/MeetingRecap.d.ts +10 -0
- package/dist/components/Email/templates/internal/comms/MeetingRecap.js +19 -0
- package/dist/components/Email/templates/internal/comms/MeetingRecap.js.map +1 -0
- package/dist/components/Email/templates/internal/comms/index.d.ts +3 -0
- package/dist/components/Email/templates/internal/hr/BirthdayAnniversary.d.ts +8 -0
- package/dist/components/Email/templates/internal/hr/BirthdayAnniversary.js +14 -0
- package/dist/components/Email/templates/internal/hr/BirthdayAnniversary.js.map +1 -0
- package/dist/components/Email/templates/internal/hr/EmployeeFarewell.d.ts +9 -0
- package/dist/components/Email/templates/internal/hr/EmployeeFarewell.js +13 -0
- package/dist/components/Email/templates/internal/hr/EmployeeFarewell.js.map +1 -0
- package/dist/components/Email/templates/internal/hr/ExitInterviewRequest.d.ts +8 -0
- package/dist/components/Email/templates/internal/hr/ExitInterviewRequest.js +13 -0
- package/dist/components/Email/templates/internal/hr/ExitInterviewRequest.js.map +1 -0
- package/dist/components/Email/templates/internal/hr/NewHireAnnouncement.d.ts +11 -0
- package/dist/components/Email/templates/internal/hr/NewHireAnnouncement.js +14 -0
- package/dist/components/Email/templates/internal/hr/NewHireAnnouncement.js.map +1 -0
- package/dist/components/Email/templates/internal/hr/PolicyUpdate.d.ts +9 -0
- package/dist/components/Email/templates/internal/hr/PolicyUpdate.js +13 -0
- package/dist/components/Email/templates/internal/hr/PolicyUpdate.js.map +1 -0
- package/dist/components/Email/templates/internal/hr/index.d.ts +5 -0
- package/dist/components/Email/templates/internal/index.d.ts +3 -0
- package/dist/components/Email/templates/internal/it/AppAccessGranted.d.ts +9 -0
- package/dist/components/Email/templates/internal/it/AppAccessGranted.js +13 -0
- package/dist/components/Email/templates/internal/it/AppAccessGranted.js.map +1 -0
- package/dist/components/Email/templates/internal/it/ITOutageReport.d.ts +9 -0
- package/dist/components/Email/templates/internal/it/ITOutageReport.js +15 -0
- package/dist/components/Email/templates/internal/it/ITOutageReport.js.map +1 -0
- package/dist/components/Email/templates/internal/it/PasswordRotationReminder.d.ts +8 -0
- package/dist/components/Email/templates/internal/it/PasswordRotationReminder.js +13 -0
- package/dist/components/Email/templates/internal/it/PasswordRotationReminder.js.map +1 -0
- package/dist/components/Email/templates/internal/it/index.d.ts +3 -0
- package/dist/components/Email/templates/legal/DMCANotice.d.ts +9 -0
- package/dist/components/Email/templates/legal/DMCANotice.js +14 -0
- package/dist/components/Email/templates/legal/DMCANotice.js.map +1 -0
- package/dist/components/Email/templates/legal/DPANotice.d.ts +9 -0
- package/dist/components/Email/templates/legal/DPANotice.js +14 -0
- package/dist/components/Email/templates/legal/DPANotice.js.map +1 -0
- package/dist/components/Email/templates/legal/GDPRCompliance.d.ts +8 -0
- package/dist/components/Email/templates/legal/GDPRCompliance.js +14 -0
- package/dist/components/Email/templates/legal/GDPRCompliance.js.map +1 -0
- package/dist/components/Email/templates/legal/PrivacyPolicyUpdate.d.ts +8 -0
- package/dist/components/Email/templates/legal/PrivacyPolicyUpdate.js +14 -0
- package/dist/components/Email/templates/legal/PrivacyPolicyUpdate.js.map +1 -0
- package/dist/components/Email/templates/legal/TermsOfServiceUpdate.d.ts +8 -0
- package/dist/components/Email/templates/legal/TermsOfServiceUpdate.js +14 -0
- package/dist/components/Email/templates/legal/TermsOfServiceUpdate.js.map +1 -0
- package/dist/components/Email/templates/legal/index.d.ts +5 -0
- package/dist/components/Email/templates/marketing/affiliate/AffiliateInvite.d.ts +6 -0
- package/dist/components/Email/templates/marketing/affiliate/AffiliateInvite.js +11 -0
- package/dist/components/Email/templates/marketing/affiliate/AffiliateInvite.js.map +1 -0
- package/dist/components/Email/templates/marketing/affiliate/AffiliatePayout.d.ts +6 -0
- package/dist/components/Email/templates/marketing/affiliate/AffiliatePayout.js +11 -0
- package/dist/components/Email/templates/marketing/affiliate/AffiliatePayout.js.map +1 -0
- package/dist/components/Email/templates/marketing/affiliate/AffiliateTopPerformer.d.ts +5 -0
- package/dist/components/Email/templates/marketing/affiliate/AffiliateTopPerformer.js +11 -0
- package/dist/components/Email/templates/marketing/affiliate/AffiliateTopPerformer.js.map +1 -0
- package/dist/components/Email/templates/marketing/affiliate/AffiliateWelcome.d.ts +5 -0
- package/dist/components/Email/templates/marketing/affiliate/AffiliateWelcome.js +11 -0
- package/dist/components/Email/templates/marketing/affiliate/AffiliateWelcome.js.map +1 -0
- package/dist/components/Email/templates/marketing/affiliate/PartnerComarketing.d.ts +6 -0
- package/dist/components/Email/templates/marketing/affiliate/PartnerComarketing.js +11 -0
- package/dist/components/Email/templates/marketing/affiliate/PartnerComarketing.js.map +1 -0
- package/dist/components/Email/templates/marketing/affiliate/index.d.ts +5 -0
- package/dist/components/Email/templates/marketing/blog/BestOfRoundup.d.ts +6 -0
- package/dist/components/Email/templates/marketing/blog/BestOfRoundup.js +11 -0
- package/dist/components/Email/templates/marketing/blog/BestOfRoundup.js.map +1 -0
- package/dist/components/Email/templates/marketing/blog/BlogSeries.d.ts +7 -0
- package/dist/components/Email/templates/marketing/blog/BlogSeries.js +11 -0
- package/dist/components/Email/templates/marketing/blog/BlogSeries.js.map +1 -0
- package/dist/components/Email/templates/marketing/blog/NewBlogPost.d.ts +7 -0
- package/dist/components/Email/templates/marketing/blog/NewBlogPost.js +11 -0
- package/dist/components/Email/templates/marketing/blog/NewBlogPost.js.map +1 -0
- package/dist/components/Email/templates/marketing/blog/index.d.ts +3 -0
- package/dist/components/Email/templates/marketing/content/InfographicEmail.d.ts +5 -0
- package/dist/components/Email/templates/marketing/content/InfographicEmail.js +11 -0
- package/dist/components/Email/templates/marketing/content/InfographicEmail.js.map +1 -0
- package/dist/components/Email/templates/marketing/content/NewGuideEbook.d.ts +6 -0
- package/dist/components/Email/templates/marketing/content/NewGuideEbook.js +11 -0
- package/dist/components/Email/templates/marketing/content/NewGuideEbook.js.map +1 -0
- package/dist/components/Email/templates/marketing/content/PodcastEpisode.d.ts +6 -0
- package/dist/components/Email/templates/marketing/content/PodcastEpisode.js +11 -0
- package/dist/components/Email/templates/marketing/content/PodcastEpisode.js.map +1 -0
- package/dist/components/Email/templates/marketing/content/ToolTemplateDelivery.d.ts +6 -0
- package/dist/components/Email/templates/marketing/content/ToolTemplateDelivery.js +11 -0
- package/dist/components/Email/templates/marketing/content/ToolTemplateDelivery.js.map +1 -0
- package/dist/components/Email/templates/marketing/content/YouTubeNotification.d.ts +6 -0
- package/dist/components/Email/templates/marketing/content/YouTubeNotification.js +11 -0
- package/dist/components/Email/templates/marketing/content/YouTubeNotification.js.map +1 -0
- package/dist/components/Email/templates/marketing/content/index.d.ts +5 -0
- package/dist/components/Email/templates/marketing/events/ConferenceSeries.d.ts +5 -0
- package/dist/components/Email/templates/marketing/events/ConferenceSeries.js +11 -0
- package/dist/components/Email/templates/marketing/events/ConferenceSeries.js.map +1 -0
- package/dist/components/Email/templates/marketing/events/EarlyBirdReminder.d.ts +5 -0
- package/dist/components/Email/templates/marketing/events/EarlyBirdReminder.js +11 -0
- package/dist/components/Email/templates/marketing/events/EarlyBirdReminder.js.map +1 -0
- package/dist/components/Email/templates/marketing/events/EventAnnouncement.d.ts +9 -0
- package/dist/components/Email/templates/marketing/events/EventAnnouncement.js +13 -0
- package/dist/components/Email/templates/marketing/events/EventAnnouncement.js.map +1 -0
- package/dist/components/Email/templates/marketing/events/PostEventThankYou.d.ts +5 -0
- package/dist/components/Email/templates/marketing/events/PostEventThankYou.js +11 -0
- package/dist/components/Email/templates/marketing/events/PostEventThankYou.js.map +1 -0
- package/dist/components/Email/templates/marketing/events/ScheduleReleased.d.ts +5 -0
- package/dist/components/Email/templates/marketing/events/ScheduleReleased.js +11 -0
- package/dist/components/Email/templates/marketing/events/ScheduleReleased.js.map +1 -0
- package/dist/components/Email/templates/marketing/events/VIPInvite.d.ts +5 -0
- package/dist/components/Email/templates/marketing/events/VIPInvite.js +11 -0
- package/dist/components/Email/templates/marketing/events/VIPInvite.js.map +1 -0
- package/dist/components/Email/templates/marketing/events/index.d.ts +6 -0
- package/dist/components/Email/templates/marketing/index.d.ts +10 -0
- package/dist/components/Email/templates/marketing/lead-nurturing/CaseStudyDelivery.d.ts +5 -0
- package/dist/components/Email/templates/marketing/lead-nurturing/CaseStudyDelivery.js +11 -0
- package/dist/components/Email/templates/marketing/lead-nurturing/CaseStudyDelivery.js.map +1 -0
- package/dist/components/Email/templates/marketing/lead-nurturing/DripCampaignComplete.d.ts +5 -0
- package/dist/components/Email/templates/marketing/lead-nurturing/DripCampaignComplete.js +11 -0
- package/dist/components/Email/templates/marketing/lead-nurturing/DripCampaignComplete.js.map +1 -0
- package/dist/components/Email/templates/marketing/lead-nurturing/DripCampaignDay1.d.ts +11 -0
- package/dist/components/Email/templates/marketing/lead-nurturing/DripCampaignDay1.js +13 -0
- package/dist/components/Email/templates/marketing/lead-nurturing/DripCampaignDay1.js.map +1 -0
- package/dist/components/Email/templates/marketing/lead-nurturing/LeadMagnetDelivery.d.ts +9 -0
- package/dist/components/Email/templates/marketing/lead-nurturing/LeadMagnetDelivery.js +14 -0
- package/dist/components/Email/templates/marketing/lead-nurturing/LeadMagnetDelivery.js.map +1 -0
- package/dist/components/Email/templates/marketing/lead-nurturing/WebinarConfirmation.d.ts +9 -0
- package/dist/components/Email/templates/marketing/lead-nurturing/WebinarConfirmation.js +14 -0
- package/dist/components/Email/templates/marketing/lead-nurturing/WebinarConfirmation.js.map +1 -0
- package/dist/components/Email/templates/marketing/lead-nurturing/WebinarFollowup.d.ts +5 -0
- package/dist/components/Email/templates/marketing/lead-nurturing/WebinarFollowup.js +11 -0
- package/dist/components/Email/templates/marketing/lead-nurturing/WebinarFollowup.js.map +1 -0
- package/dist/components/Email/templates/marketing/lead-nurturing/WebinarReminder.d.ts +5 -0
- package/dist/components/Email/templates/marketing/lead-nurturing/WebinarReminder.js +11 -0
- package/dist/components/Email/templates/marketing/lead-nurturing/WebinarReminder.js.map +1 -0
- package/dist/components/Email/templates/marketing/lead-nurturing/index.d.ts +7 -0
- package/dist/components/Email/templates/marketing/newsletters/CuratedIndustryNews.d.ts +5 -0
- package/dist/components/Email/templates/marketing/newsletters/CuratedIndustryNews.js +11 -0
- package/dist/components/Email/templates/marketing/newsletters/CuratedIndustryNews.js.map +1 -0
- package/dist/components/Email/templates/marketing/newsletters/MonthlyDigest.d.ts +16 -0
- package/dist/components/Email/templates/marketing/newsletters/MonthlyDigest.js +22 -0
- package/dist/components/Email/templates/marketing/newsletters/MonthlyDigest.js.map +1 -0
- package/dist/components/Email/templates/marketing/newsletters/WeeklyNewsletter.d.ts +16 -0
- package/dist/components/Email/templates/marketing/newsletters/WeeklyNewsletter.js +29 -0
- package/dist/components/Email/templates/marketing/newsletters/WeeklyNewsletter.js.map +1 -0
- package/dist/components/Email/templates/marketing/newsletters/index.d.ts +3 -0
- package/dist/components/Email/templates/marketing/promotional/AbandonedCart.d.ts +15 -0
- package/dist/components/Email/templates/marketing/promotional/AbandonedCart.js +20 -0
- package/dist/components/Email/templates/marketing/promotional/AbandonedCart.js.map +1 -0
- package/dist/components/Email/templates/marketing/promotional/BackInStock.d.ts +5 -0
- package/dist/components/Email/templates/marketing/promotional/BackInStock.js +11 -0
- package/dist/components/Email/templates/marketing/promotional/BackInStock.js.map +1 -0
- package/dist/components/Email/templates/marketing/promotional/BirthdayOffer.d.ts +5 -0
- package/dist/components/Email/templates/marketing/promotional/BirthdayOffer.js +11 -0
- package/dist/components/Email/templates/marketing/promotional/BirthdayOffer.js.map +1 -0
- package/dist/components/Email/templates/marketing/promotional/BrowseAbandonment.d.ts +5 -0
- package/dist/components/Email/templates/marketing/promotional/BrowseAbandonment.js +11 -0
- package/dist/components/Email/templates/marketing/promotional/BrowseAbandonment.js.map +1 -0
- package/dist/components/Email/templates/marketing/promotional/FlashSale.d.ts +9 -0
- package/dist/components/Email/templates/marketing/promotional/FlashSale.js +14 -0
- package/dist/components/Email/templates/marketing/promotional/FlashSale.js.map +1 -0
- package/dist/components/Email/templates/marketing/promotional/MilestoneDiscount.d.ts +5 -0
- package/dist/components/Email/templates/marketing/promotional/MilestoneDiscount.js +11 -0
- package/dist/components/Email/templates/marketing/promotional/MilestoneDiscount.js.map +1 -0
- package/dist/components/Email/templates/marketing/promotional/PriceDropAlert.d.ts +5 -0
- package/dist/components/Email/templates/marketing/promotional/PriceDropAlert.js +11 -0
- package/dist/components/Email/templates/marketing/promotional/PriceDropAlert.js.map +1 -0
- package/dist/components/Email/templates/marketing/promotional/SeasonalCampaign.d.ts +5 -0
- package/dist/components/Email/templates/marketing/promotional/SeasonalCampaign.js +11 -0
- package/dist/components/Email/templates/marketing/promotional/SeasonalCampaign.js.map +1 -0
- package/dist/components/Email/templates/marketing/promotional/index.d.ts +8 -0
- package/dist/components/Email/templates/marketing/reengagement/ComeBack60Day.d.ts +5 -0
- package/dist/components/Email/templates/marketing/reengagement/ComeBack60Day.js +11 -0
- package/dist/components/Email/templates/marketing/reengagement/ComeBack60Day.js.map +1 -0
- package/dist/components/Email/templates/marketing/reengagement/LastChance90Day.d.ts +5 -0
- package/dist/components/Email/templates/marketing/reengagement/LastChance90Day.js +11 -0
- package/dist/components/Email/templates/marketing/reengagement/LastChance90Day.js.map +1 -0
- package/dist/components/Email/templates/marketing/reengagement/ProductUpdateReengagement.d.ts +5 -0
- package/dist/components/Email/templates/marketing/reengagement/ProductUpdateReengagement.js +11 -0
- package/dist/components/Email/templates/marketing/reengagement/ProductUpdateReengagement.js.map +1 -0
- package/dist/components/Email/templates/marketing/reengagement/WeMissYou30Day.d.ts +8 -0
- package/dist/components/Email/templates/marketing/reengagement/WeMissYou30Day.js +13 -0
- package/dist/components/Email/templates/marketing/reengagement/WeMissYou30Day.js.map +1 -0
- package/dist/components/Email/templates/marketing/reengagement/index.d.ts +4 -0
- package/dist/components/Email/templates/marketing/social/CommunityMilestone.d.ts +5 -0
- package/dist/components/Email/templates/marketing/social/CommunityMilestone.js +11 -0
- package/dist/components/Email/templates/marketing/social/CommunityMilestone.js.map +1 -0
- package/dist/components/Email/templates/marketing/social/NewFollowerWelcome.d.ts +5 -0
- package/dist/components/Email/templates/marketing/social/NewFollowerWelcome.js +11 -0
- package/dist/components/Email/templates/marketing/social/NewFollowerWelcome.js.map +1 -0
- package/dist/components/Email/templates/marketing/social/ShareYourStory.d.ts +5 -0
- package/dist/components/Email/templates/marketing/social/ShareYourStory.js +11 -0
- package/dist/components/Email/templates/marketing/social/ShareYourStory.js.map +1 -0
- package/dist/components/Email/templates/marketing/social/SocialProof.d.ts +13 -0
- package/dist/components/Email/templates/marketing/social/SocialProof.js +16 -0
- package/dist/components/Email/templates/marketing/social/SocialProof.js.map +1 -0
- package/dist/components/Email/templates/marketing/social/UserSpotlight.d.ts +5 -0
- package/dist/components/Email/templates/marketing/social/UserSpotlight.js +11 -0
- package/dist/components/Email/templates/marketing/social/UserSpotlight.js.map +1 -0
- package/dist/components/Email/templates/marketing/social/index.d.ts +5 -0
- package/dist/components/Email/templates/marketing/surveys/BetaFeedback.d.ts +5 -0
- package/dist/components/Email/templates/marketing/surveys/BetaFeedback.js +11 -0
- package/dist/components/Email/templates/marketing/surveys/BetaFeedback.js.map +1 -0
- package/dist/components/Email/templates/marketing/surveys/CSATSurvey.d.ts +5 -0
- package/dist/components/Email/templates/marketing/surveys/CSATSurvey.js +11 -0
- package/dist/components/Email/templates/marketing/surveys/CSATSurvey.js.map +1 -0
- package/dist/components/Email/templates/marketing/surveys/ExitSurvey.d.ts +7 -0
- package/dist/components/Email/templates/marketing/surveys/ExitSurvey.js +20 -0
- package/dist/components/Email/templates/marketing/surveys/ExitSurvey.js.map +1 -0
- package/dist/components/Email/templates/marketing/surveys/NPSSurvey.d.ts +7 -0
- package/dist/components/Email/templates/marketing/surveys/NPSSurvey.js +17 -0
- package/dist/components/Email/templates/marketing/surveys/NPSSurvey.js.map +1 -0
- package/dist/components/Email/templates/marketing/surveys/ProductFeedback.d.ts +5 -0
- package/dist/components/Email/templates/marketing/surveys/ProductFeedback.js +11 -0
- package/dist/components/Email/templates/marketing/surveys/ProductFeedback.js.map +1 -0
- package/dist/components/Email/templates/marketing/surveys/index.d.ts +5 -0
- package/dist/components/Email/templates/sales/ClientReferenceRequest.d.ts +8 -0
- package/dist/components/Email/templates/sales/ClientReferenceRequest.js +13 -0
- package/dist/components/Email/templates/sales/ClientReferenceRequest.js.map +1 -0
- package/dist/components/Email/templates/sales/ClientWinBack.d.ts +10 -0
- package/dist/components/Email/templates/sales/ClientWinBack.js +13 -0
- package/dist/components/Email/templates/sales/ClientWinBack.js.map +1 -0
- package/dist/components/Email/templates/sales/ColdOutreach.d.ts +11 -0
- package/dist/components/Email/templates/sales/ColdOutreach.js +13 -0
- package/dist/components/Email/templates/sales/ColdOutreach.js.map +1 -0
- package/dist/components/Email/templates/sales/FollowUpEmail.d.ts +9 -0
- package/dist/components/Email/templates/sales/FollowUpEmail.js +13 -0
- package/dist/components/Email/templates/sales/FollowUpEmail.js.map +1 -0
- package/dist/components/Email/templates/sales/ProjectTermination.d.ts +9 -0
- package/dist/components/Email/templates/sales/ProjectTermination.js +12 -0
- package/dist/components/Email/templates/sales/ProjectTermination.js.map +1 -0
- package/dist/components/Email/templates/sales/ProposalAccepted.d.ts +9 -0
- package/dist/components/Email/templates/sales/ProposalAccepted.js +13 -0
- package/dist/components/Email/templates/sales/ProposalAccepted.js.map +1 -0
- package/dist/components/Email/templates/sales/ScheduleDemo.d.ts +9 -0
- package/dist/components/Email/templates/sales/ScheduleDemo.js +13 -0
- package/dist/components/Email/templates/sales/ScheduleDemo.js.map +1 -0
- package/dist/components/Email/templates/sales/SendProposal.d.ts +9 -0
- package/dist/components/Email/templates/sales/SendProposal.js +14 -0
- package/dist/components/Email/templates/sales/SendProposal.js.map +1 -0
- package/dist/components/Email/templates/sales/index.d.ts +8 -0
- package/dist/components/Email/templates/security/AccountDeletedConfirmation.d.ts +8 -0
- package/dist/components/Email/templates/security/AccountDeletedConfirmation.js +13 -0
- package/dist/components/Email/templates/security/AccountDeletedConfirmation.js.map +1 -0
- package/dist/components/Email/templates/security/ApiKeyCreated.d.ts +9 -0
- package/dist/components/Email/templates/security/ApiKeyCreated.js +14 -0
- package/dist/components/Email/templates/security/ApiKeyCreated.js.map +1 -0
- package/dist/components/Email/templates/security/DataExportReady.d.ts +8 -0
- package/dist/components/Email/templates/security/DataExportReady.js +13 -0
- package/dist/components/Email/templates/security/DataExportReady.js.map +1 -0
- package/dist/components/Email/templates/security/NewLoginAlert.d.ts +10 -0
- package/dist/components/Email/templates/security/NewLoginAlert.js +13 -0
- package/dist/components/Email/templates/security/NewLoginAlert.js.map +1 -0
- package/dist/components/Email/templates/security/PolicyUpdateEmail.d.ts +9 -0
- package/dist/components/Email/templates/security/PolicyUpdateEmail.js +13 -0
- package/dist/components/Email/templates/security/PolicyUpdateEmail.js.map +1 -0
- package/dist/components/Email/templates/security/TwoFactorCode.d.ts +8 -0
- package/dist/components/Email/templates/security/TwoFactorCode.js +13 -0
- package/dist/components/Email/templates/security/TwoFactorCode.js.map +1 -0
- package/dist/components/Email/templates/security/index.d.ts +6 -0
- package/dist/components/Email/templates/support/SupportFeedbackRequest.d.ts +9 -0
- package/dist/components/Email/templates/support/SupportFeedbackRequest.js +15 -0
- package/dist/components/Email/templates/support/SupportFeedbackRequest.js.map +1 -0
- package/dist/components/Email/templates/support/TicketCreatedEmail.d.ts +9 -0
- package/dist/components/Email/templates/support/TicketCreatedEmail.js +13 -0
- package/dist/components/Email/templates/support/TicketCreatedEmail.js.map +1 -0
- package/dist/components/Email/templates/support/TicketReplyEmail.d.ts +9 -0
- package/dist/components/Email/templates/support/TicketReplyEmail.js +14 -0
- package/dist/components/Email/templates/support/TicketReplyEmail.js.map +1 -0
- package/dist/components/Email/templates/support/TicketResolvedEmail.d.ts +9 -0
- package/dist/components/Email/templates/support/TicketResolvedEmail.js +14 -0
- package/dist/components/Email/templates/support/TicketResolvedEmail.js.map +1 -0
- package/dist/components/Email/templates/support/index.d.ts +4 -0
- package/dist/components/Email/templates/system/IncidentReport.d.ts +10 -0
- package/dist/components/Email/templates/system/IncidentReport.js +13 -0
- package/dist/components/Email/templates/system/IncidentReport.js.map +1 -0
- package/dist/components/Email/templates/system/MaintenanceNotice.d.ts +9 -0
- package/dist/components/Email/templates/system/MaintenanceNotice.js +13 -0
- package/dist/components/Email/templates/system/MaintenanceNotice.js.map +1 -0
- package/dist/components/Email/templates/system/NotificationEmail.d.ts +10 -0
- package/dist/components/Email/templates/system/NotificationEmail.js +14 -0
- package/dist/components/Email/templates/system/NotificationEmail.js.map +1 -0
- package/dist/components/Email/templates/system/StatusPageUpdate.d.ts +10 -0
- package/dist/components/Email/templates/system/StatusPageUpdate.js +13 -0
- package/dist/components/Email/templates/system/StatusPageUpdate.js.map +1 -0
- package/dist/components/Email/templates/system/index.d.ts +4 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +122 -0
- package/dist/styles.css +1 -1
- package/package.json +12 -5
- package/dist/components/Auth/PasswordResetForm.d.ts +0 -9
- package/dist/components/Auth/PasswordResetForm.example.d.ts +0 -2
- package/dist/components/Auth/PasswordResetForm.example.js +0 -20
- package/dist/components/Auth/PasswordResetForm.example.js.map +0 -1
- package/dist/components/Auth/PasswordResetForm.js +0 -30
- package/dist/components/Auth/PasswordResetForm.js.map +0 -1
package/README.md
CHANGED
|
@@ -335,7 +335,7 @@ export default function Demo() {
|
|
|
335
335
|
|
|
336
336
|
## 📖 Documentation & Storybook
|
|
337
337
|
|
|
338
|
-
- [Public Storybook](https://storybook.
|
|
338
|
+
- [Public Storybook](https://storybook.beyondsoftwares.com) — hosted component gallery and prop reference
|
|
339
339
|
- [Library landing page](https://ui.beyondsoftwares.com)
|
|
340
340
|
- [Getting Started guide](./docs/getting-started.md)
|
|
341
341
|
- [Theming & customization](./docs/theming.md)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
import { useState, useRef, useMemo, useEffect } from 'react';
|
|
4
|
-
import { Layout, Shield, AlertCircle, BarChart3, MousePointer, Palette, ChevronRight, Search, ChevronDown, Menu, Monitor, Tablet, Smartphone, Sun, Moon, Eye, Code, Settings, Check, Copy, Book } from 'lucide-react';
|
|
4
|
+
import { Mail, Layout, Shield, AlertCircle, BarChart3, MousePointer, Palette, ChevronRight, Search, ChevronDown, Menu, Monitor, Tablet, Smartphone, Sun, Moon, Eye, Code, Settings, Check, Copy, Book } from 'lucide-react';
|
|
5
5
|
import { cn } from '../../utils/cn.js';
|
|
6
6
|
import { Button } from '../Button/Button.js';
|
|
7
7
|
import { Input } from '../Input/Input.js';
|
|
@@ -64,6 +64,12 @@ const componentCategories = {
|
|
|
64
64
|
{ name: "Sidebar", id: "sidebar" },
|
|
65
65
|
{ name: "Navbar", id: "navbar" }
|
|
66
66
|
]
|
|
67
|
+
},
|
|
68
|
+
Emails: {
|
|
69
|
+
icon: jsx(Mail, { className: "h-4 w-4" }),
|
|
70
|
+
components: [
|
|
71
|
+
{ name: "Email Templates", id: "email-templates" }
|
|
72
|
+
]
|
|
67
73
|
}
|
|
68
74
|
};
|
|
69
75
|
const ComponentShowcase = ({ className }) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComponentShowcase.js","sources":["../../../src/components/ComponentShowcase/ComponentShowcase.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { useState, useMemo, useRef, useEffect } from \"react\";\nimport {\n Search,\n Copy,\n Check,\n Monitor,\n Tablet,\n Smartphone,\n Sun,\n Moon,\n ChevronRight,\n ChevronDown,\n Code,\n Eye,\n Book,\n Palette,\n Layout,\n MousePointer,\n AlertCircle,\n BarChart3,\n Settings,\n Shield,\n Menu\n} from \"lucide-react\";\nimport { cn } from \"../../utils/cn\";\nimport { Button } from \"../Button\";\nimport { Input } from \"../Input\";\nimport { Badge } from \"../Badge\";\nimport { Toast, showToast } from \"../Toast\";\n\nimport { showcaseRegistry } from \"./showcaseRegistry\";\nimport { componentDocs } from \"./componentDocs\";\nimport { useDarkMode } from \"../../hooks/useDarkMode\";\n\n// Component categories and their items\nconst componentCategories = {\n Forms: {\n icon: <MousePointer className=\"h-4 w-4\" />,\n components: [\n { name: \"Button\", id: \"button\" },\n { name: \"Input\", id: \"input\" },\n { name: \"Textarea\", id: \"textarea\" },\n { name: \"Checkbox\", id: \"checkbox\" },\n { name: \"Switch\", id: \"switch\" }\n ]\n },\n \"Data Display\": {\n icon: <BarChart3 className=\"h-4 w-4\" />,\n components: [\n { name: \"Card\", id: \"card\" },\n { name: \"Badge\", id: \"badge\" },\n { name: \"Avatar\", id: \"avatar\" },\n { name: \"StatsCard\", id: \"statscard\" },\n { name: \"Tabs\", id: \"tabs\" },\n { name: \"DataTable\", id: \"datatable\" }\n ]\n },\n Feedback: {\n icon: <AlertCircle className=\"h-4 w-4\" />,\n components: [\n { name: \"Alert\", id: \"alert\" },\n { name: \"Toast\", id: \"toast\" },\n { name: \"Modal\", id: \"modal\" },\n { name: \"Spinner\", id: \"spinner\" },\n { name: \"Skeleton\", id: \"skeleton\" },\n { name: \"Chat Widget\", id: \"chatwidget\" }\n ]\n },\n Authentication: {\n icon: <Shield className=\"h-4 w-4\" />,\n components: [\n { name: \"Auth System\", id: \"auth\" },\n { name: \"Login Page\", id: \"login\" },\n { name: \"Signup Page\", id: \"signup\" },\n { name: \"Password Reset\", id: \"password-reset\" },\n { name: \"!isAuthenticated Shield\", id: \"shield\" },\n ]\n },\n Layout: {\n icon: <Layout className=\"h-4 w-4\" />,\n components: [\n { name: \"DashboardLayout\", id: \"dashboard-layout\" },\n { name: \"Page Layout\", id: \"page-layout\" },\n { name: \"DashboardGrid\", id: \"dashboard-grid\" },\n { name: \"Sidebar\", id: \"sidebar\" },\n { name: \"Navbar\", id: \"navbar\" }\n ]\n }\n};\n\n// Prop documentation interface\ninterface PropDoc {\n name: string;\n type: string;\n default?: string;\n description?: string;\n required?: boolean;\n}\n\n// Props\ninterface ComponentShowcaseProps {\n className?: string;\n}\n\nexport const ComponentShowcase: React.FC<ComponentShowcaseProps> = ({ className }) => {\n const [selectedComponent, setSelectedComponent] = useState(\"button\");\n const [activeTab, setActiveTab] = useState<\"preview\" | \"code\" | \"props\">(\"preview\");\n const [searchQuery, setSearchQuery] = useState(\"\");\n const [sidebarCollapsed, setSidebarCollapsed] = useState(() => {\n if (typeof window !== \"undefined\") {\n return window.innerWidth < 1024;\n }\n return false; // Default for SSR\n });\n const [expandedCategories, setExpandedCategories] = useState<string[]>([\"Forms\"]);\n const [viewMode, setViewMode] = useState<\"desktop\" | \"tablet\" | \"mobile\">(\"desktop\");\n const { isDarkMode, toggle: toggleDarkMode } = useDarkMode();\n const [copiedCode, setCopiedCode] = useState<string | null>(null);\n const sidebarRef = useRef<HTMLDivElement | null>(null);\n const [focusedIndex, setFocusedIndex] = useState<number>(-1);\n\n const toggleCategory = (category: string) => {\n setExpandedCategories((prev) =>\n prev.includes(category)\n ? prev.filter((c) => c !== category)\n : [...prev, category]\n );\n };\n\n const flatComponents = useMemo(() => {\n return Object.values(componentCategories).flatMap((category) =>\n category.components.map((component) => component.id)\n );\n }, []);\n\n useEffect(() => {\n if (focusedIndex >= 0 && sidebarRef.current && !sidebarCollapsed) {\n const buttons = sidebarRef.current.querySelectorAll<HTMLButtonElement>(\n '[data-component-id]'\n );\n const target = buttons[focusedIndex];\n if (target) {\n target.focus();\n }\n }\n }, [focusedIndex, sidebarCollapsed]);\n\n const handleKeyNavigation = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (sidebarCollapsed) return;\n\n const currentIndex = flatComponents.indexOf(selectedComponent);\n\n if (event.key === 'ArrowDown' || event.key === 'ArrowRight') {\n event.preventDefault();\n const nextIndex = currentIndex === flatComponents.length - 1 ? 0 : currentIndex + 1;\n setFocusedIndex(nextIndex);\n setSelectedComponent(flatComponents[nextIndex]);\n } else if (event.key === 'ArrowUp' || event.key === 'ArrowLeft') {\n event.preventDefault();\n const prevIndex = currentIndex <= 0 ? flatComponents.length - 1 : currentIndex - 1;\n setFocusedIndex(prevIndex);\n setSelectedComponent(flatComponents[prevIndex]);\n }\n };\n\n const copyToClipboard = async (code: string) => {\n try {\n if (navigator?.clipboard?.writeText) {\n await navigator.clipboard.writeText(code);\n setCopiedCode(code);\n showToast.success(\"Code copied to clipboard!\");\n setTimeout(() => setCopiedCode(null), 2000);\n } else {\n throw new Error(\"Clipboard API unavailable\");\n }\n } catch (err) {\n showToast.error(\"Failed to copy code\");\n }\n };\n\n const filteredCategories = Object.entries(componentCategories).reduce(\n (acc, [categoryName, categoryData]) => {\n const filteredComponents = categoryData.components.filter((component) =>\n component.name.toLowerCase().includes(searchQuery.toLowerCase())\n );\n\n if (filteredComponents.length > 0) {\n (acc as any)[categoryName] = {\n ...categoryData,\n components: filteredComponents\n };\n }\n\n return acc;\n },\n {} as Partial<typeof componentCategories>\n );\n\n const currentDoc = componentDocs[selectedComponent as keyof typeof componentDocs];\n const currentExample = currentDoc?.example ?? '';\n const currentProps = (currentDoc?.props ?? []) as PropDoc[];\n\n const getViewportClass = () => {\n switch (viewMode) {\n case \"tablet\":\n return \"max-w-2xl\";\n case \"mobile\":\n return \"max-w-sm\";\n default:\n return \"w-full\";\n }\n };\n\n return (\n <div className={cn(\"flex h-screen bg-gray-50 dark:bg-gray-950 text-gray-900 dark:text-gray-100\", isDarkMode && \"dark\", className)}>\n <Toast />\n\n {/* Mobile Overlay for Showcase Sidebar */}\n {!sidebarCollapsed && (\n <div\n className=\"fixed inset-0 bg-black/50 dark:bg-black/80 z-10 lg:hidden backdrop-blur-sm transition-opacity\"\n onClick={() => setSidebarCollapsed(true)}\n />\n )}\n\n {/* Sidebar */}\n <div\n ref={sidebarRef}\n className={cn(\n \"bg-white dark:bg-gray-900 border-r border-gray-200 dark:border-gray-800 transition-all duration-300 flex flex-col z-20 shrink-0\",\n \"max-lg:absolute max-lg:h-full max-lg:shadow-2xl\",\n sidebarCollapsed ? \"lg:w-16 max-lg:w-80 max-lg:-translate-x-full\" : \"w-80 max-lg:translate-x-0\"\n )}\n tabIndex={sidebarCollapsed ? -1 : 0}\n onKeyDown={handleKeyNavigation}\n aria-label=\"Component navigation\"\n >\n {/* Sidebar Header */}\n <div className=\"p-4 border-b border-gray-200 dark:border-gray-800\">\n <div className={cn(\"flex items-center justify-between mb-4\", sidebarCollapsed ? \"lg:hidden\" : \"\")}>\n <div className=\"flex items-center space-x-2\">\n <div className=\"w-8 h-8 bg-primary-600 rounded-lg flex items-center justify-center\">\n <Palette className=\"h-4 w-4 text-white\" />\n </div>\n <span className=\"font-bold text-lg text-gray-900 dark:text-white\">Beyond UI</span>\n </div>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => setSidebarCollapsed(true)}\n >\n <ChevronRight className=\"h-4 w-4\" />\n </Button>\n </div>\n\n <div className={cn(\"justify-center\", sidebarCollapsed ? \"flex max-lg:hidden\" : \"hidden\")}>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => setSidebarCollapsed(false)}\n >\n <Palette className=\"h-4 w-4\" />\n </Button>\n </div>\n\n <div className={cn(\"relative\", sidebarCollapsed ? \"lg:hidden\" : \"\")}>\n <Search className=\"absolute left-3 top-1/2 transform -translate-y-1/2 h-4 w-4 text-gray-400 dark:text-gray-500\" />\n <Input\n placeholder=\"Search components...\"\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n className=\"pl-10\"\n />\n </div>\n </div>\n\n {/* Navigation */}\n <nav className=\"flex-1 p-4 overflow-y-auto\">\n {Object.entries(filteredCategories).map(([categoryName, categoryData]) => (\n <div key={categoryName} className=\"mb-4\">\n <button\n onClick={() => {\n if (typeof window !== \"undefined\" && window.innerWidth < 1024) {\n toggleCategory(categoryName);\n } else if (!sidebarCollapsed) {\n toggleCategory(categoryName);\n }\n }}\n className={cn(\n \"flex items-center w-full p-2 text-sm font-medium rounded-lg transition-colors\",\n \"hover:bg-gray-100 dark:hover:bg-gray-800 text-gray-700 dark:text-gray-300\",\n sidebarCollapsed ? \"lg:justify-center max-lg:justify-between\" : \"justify-between\"\n )}\n >\n <div className=\"flex items-center space-x-2\">\n {categoryData.icon}\n <span className={cn(sidebarCollapsed ? \"lg:hidden\" : \"\")}>{categoryName}</span>\n </div>\n <ChevronDown\n className={cn(\n \"h-4 w-4 transition-transform\",\n expandedCategories.includes(categoryName) && \"rotate-180\",\n sidebarCollapsed ? \"lg:hidden\" : \"\"\n )}\n />\n </button>\n\n {expandedCategories.includes(categoryName) && (\n <div className={cn(\"mt-2 ml-6 space-y-1\", sidebarCollapsed ? \"lg:hidden\" : \"\")}>\n {categoryData.components.map((component) => {\n const isActive = selectedComponent === component.id;\n return (\n <button\n key={component.id}\n data-component-id={component.id}\n onClick={() => {\n setSelectedComponent(component.id);\n setFocusedIndex(flatComponents.indexOf(component.id));\n if (window.innerWidth < 1024) {\n setSidebarCollapsed(true);\n }\n }}\n className={cn(\n \"flex items-center w-full p-2 text-sm rounded-lg transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-primary-500\",\n isActive\n ? \"bg-primary-50 dark:bg-primary-900/20 text-primary-700 dark:text-primary-400 border-r-2 border-primary-600 dark:border-primary-500\"\n : \"text-gray-600 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800/50 hover:text-gray-900 dark:hover:text-white\"\n )}\n aria-current={isActive ? \"page\" : undefined}\n >\n {component.name}\n </button>\n );\n })}\n </div>\n )}\n </div>\n ))}\n </nav>\n </div>\n\n {/* Main Content */}\n <div className=\"flex-1 flex flex-col overflow-hidden\">\n {/* Header */}\n <header className=\"bg-white dark:bg-gray-900 border-b border-gray-200 dark:border-gray-800 p-4\">\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center space-x-4\">\n {/* Mobile Menu Toggle */}\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"lg:hidden p-2 -ml-2 shrink-0\"\n onClick={() => setSidebarCollapsed(false)}\n aria-label=\"Open component menu\"\n >\n <Menu className=\"h-5 w-5 text-gray-700 dark:text-gray-300\" />\n </Button>\n \n <h1 className=\"text-xl md:text-2xl font-bold text-gray-900 dark:text-white truncate\">\n {currentDoc?.name || \"Component Showcase\"}\n </h1>\n {currentDoc && <Badge variant=\"outline\">{currentDoc.name}</Badge>}\n </div>\n\n <div className=\"flex items-center space-x-2\">\n {/* Viewport Controls */}\n <div className=\"flex items-center bg-gray-100 dark:bg-gray-800 rounded-lg p-1\">\n <Button\n variant={viewMode === \"desktop\" ? \"primary\" : \"ghost\"}\n size=\"sm\"\n onClick={() => setViewMode(\"desktop\")}\n >\n <Monitor className=\"h-4 w-4\" />\n </Button>\n <Button\n variant={viewMode === \"tablet\" ? \"primary\" : \"ghost\"}\n size=\"sm\"\n onClick={() => setViewMode(\"tablet\")}\n >\n <Tablet className=\"h-4 w-4\" />\n </Button>\n <Button\n variant={viewMode === \"mobile\" ? \"primary\" : \"ghost\"}\n size=\"sm\"\n onClick={() => setViewMode(\"mobile\")}\n >\n <Smartphone className=\"h-4 w-4\" />\n </Button>\n </div>\n\n {/* Dark Mode Toggle */}\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={toggleDarkMode}\n >\n {isDarkMode ? (\n <Sun className=\"h-4 w-4\" />\n ) : (\n <Moon className=\"h-4 w-4\" />\n )}\n </Button>\n </div>\n </div>\n </header>\n\n {/* Content */}\n <main className=\"flex-1 overflow-auto p-6 bg-gray-50 dark:bg-gray-950\">\n {currentDoc ? (\n <div className=\"max-w-6xl mx-auto space-y-8\">\n {/* Description */}\n <div>\n <p className=\"text-lg text-gray-600 dark:text-gray-400\">{currentDoc.description}</p>\n </div>\n\n {/* Tabs */}\n <div>\n <div className=\"flex gap-3 mb-4\" role=\"tablist\" aria-label=\"Component details tabs\">\n <Button\n variant={activeTab === \"preview\" ? \"primary\" : \"ghost\"}\n size=\"sm\"\n onClick={() => setActiveTab(\"preview\")}\n role=\"tab\"\n aria-selected={activeTab === \"preview\"}\n >\n <Eye className=\"h-4 w-4 mr-2\" />\n Preview\n </Button>\n <Button\n variant={activeTab === \"code\" ? \"primary\" : \"ghost\"}\n size=\"sm\"\n onClick={() => setActiveTab(\"code\")}\n role=\"tab\"\n aria-selected={activeTab === \"code\"}\n >\n <Code className=\"h-4 w-4 mr-2\" />\n Code\n </Button>\n <Button\n variant={activeTab === \"props\" ? \"primary\" : \"ghost\"}\n size=\"sm\"\n onClick={() => setActiveTab(\"props\")}\n role=\"tab\"\n aria-selected={activeTab === \"props\"}\n >\n <Settings className=\"h-4 w-4 mr-2\" />\n Props\n </Button>\n </div>\n <div>\n <div className=\"mt-6\">\n <div className=\"bg-white dark:bg-gray-900 rounded-lg shadow p-6\">\n {/* Preview */}\n <div\n className={cn(\n \"mx-auto transition-all duration-300\",\n getViewportClass()\n )}\n >\n <div>\n {showcaseRegistry[selectedComponent]\n ? React.createElement(\n showcaseRegistry[selectedComponent]\n )\n : null}\n </div>\n </div>\n </div>\n </div>\n\n {activeTab === \"code\" && (\n <div className=\"mt-6\" role=\"tabpanel\" aria-label=\"Code example\">\n <div className=\"bg-white dark:bg-gray-900 rounded-lg shadow p-6\">\n <div className=\"flex flex-row items-center justify-between\">\n <h2 className=\"text-lg font-semibold mb-0 dark:text-white\">\n Usage Example\n </h2>\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={() => copyToClipboard(currentExample)}\n >\n {copiedCode === currentExample ? (\n <Check className=\"h-4 w-4 mr-2\" />\n ) : (\n <Copy className=\"h-4 w-4 mr-2\" />\n )}\n Copy\n </Button>\n </div>\n <pre className=\"bg-gray-900 text-gray-100 p-4 rounded-lg overflow-x-auto\">\n <code>{currentExample}</code>\n </pre>\n </div>\n </div>\n )}\n\n {activeTab === \"props\" && (\n <div className=\"mt-6\" role=\"tabpanel\" aria-label=\"Component props\">\n <div className=\"bg-white dark:bg-gray-900 rounded-lg shadow p-6\">\n <h2 className=\"text-lg font-semibold mb-4 dark:text-white\">\n Component Props\n </h2>\n <div className=\"overflow-x-auto\">\n <table className=\"w-full border-collapse\">\n <thead>\n <tr className=\"border-b border-gray-200 dark:border-gray-800\">\n <th className=\"text-left p-3 font-medium text-gray-900 dark:text-gray-100\">\n Prop\n </th>\n <th className=\"text-left p-3 font-medium text-gray-900 dark:text-gray-100\">\n Type\n </th>\n <th className=\"text-left p-3 font-medium text-gray-900 dark:text-gray-100\">\n Default\n </th>\n <th className=\"text-left p-3 font-medium text-gray-900 dark:text-gray-100\">\n Description\n </th>\n </tr>\n </thead>\n <tbody>\n {currentProps.length > 0 ? (\n currentProps.map((prop: PropDoc, index) => (\n <tr key={prop.name ?? index} className=\"border-b border-gray-100 dark:border-gray-800/50\">\n <td className=\"p-3\">\n <code className=\"bg-gray-100 dark:bg-gray-800 px-2 py-1 rounded text-sm dark:text-gray-300\">\n {prop.name}\n </code>\n {prop.required && (\n <Badge variant=\"danger\" className=\"ml-2 text-xs\">\n Required\n </Badge>\n )}\n </td>\n <td className=\"p-3 text-gray-600 dark:text-gray-400\">{prop.type}</td>\n <td className=\"p-3 text-gray-600 dark:text-gray-400\">\n {prop.default ? (\n <code className=\"bg-gray-100 dark:bg-gray-800 px-2 py-1 rounded text-sm dark:text-gray-300\">\n {prop.default}\n </code>\n ) : null}\n </td>\n <td className=\"p-3 text-gray-600 dark:text-gray-400\">{prop.description}</td>\n </tr>\n ))\n ) : (\n <tr>\n <td colSpan={4} className=\"p-4 text-center text-gray-500 dark:text-gray-400\">\n No props documented for this component yet.\n </td>\n </tr>\n )}\n </tbody>\n </table>\n </div>\n </div>\n </div>\n )}\n </div>\n </div>\n </div>\n ) : (\n <div className=\"flex items-center justify-center h-full\">\n <div className=\"text-center\">\n <Book className=\"h-16 w-16 text-gray-400 dark:text-gray-600 mx-auto mb-4\" />\n <h2 className=\"text-xl font-semibold text-gray-900 dark:text-white mb-2\">\n Select a Component\n </h2>\n <p className=\"text-gray-600 dark:text-gray-400\">\n Choose a component from the sidebar to view its documentation and examples.\n </p>\n </div>\n </div>\n )}\n </main>\n </div>\n </div>\n );\n};\n"],"names":["_jsx","_jsxs"],"mappings":";;;;;;;;;;;;;AAmCA;AACA,MAAM,mBAAmB,GAAG;AAC1B,IAAA,KAAK,EAAE;AACL,QAAA,IAAI,EAAEA,GAAA,CAAC,YAAY,IAAC,SAAS,EAAC,SAAS,EAAA,CAAG;AAC1C,QAAA,UAAU,EAAE;AACV,YAAA,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AAChC,YAAA,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE;AAC9B,YAAA,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE;AACpC,YAAA,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE;AACpC,YAAA,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ;AAC/B;AACF,KAAA;AACD,IAAA,cAAc,EAAE;AACd,QAAA,IAAI,EAAEA,GAAA,CAAC,SAAS,IAAC,SAAS,EAAC,SAAS,EAAA,CAAG;AACvC,QAAA,UAAU,EAAE;AACV,YAAA,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE;AAC5B,YAAA,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE;AAC9B,YAAA,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE;AAChC,YAAA,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE;AACtC,YAAA,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE;AAC5B,YAAA,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW;AACrC;AACF,KAAA;AACD,IAAA,QAAQ,EAAE;AACR,QAAA,IAAI,EAAEA,GAAA,CAAC,WAAW,IAAC,SAAS,EAAC,SAAS,EAAA,CAAG;AACzC,QAAA,UAAU,EAAE;AACV,YAAA,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE;AAC9B,YAAA,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE;AAC9B,YAAA,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE;AAC9B,YAAA,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE;AAClC,YAAA,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,UAAU,EAAE;AACpC,YAAA,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,YAAY;AACxC;AACF,KAAA;AACD,IAAA,cAAc,EAAE;AACd,QAAA,IAAI,EAAEA,GAAA,CAAC,MAAM,IAAC,SAAS,EAAC,SAAS,EAAA,CAAG;AACpC,QAAA,UAAU,EAAE;AACV,YAAA,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,MAAM,EAAE;AACnC,YAAA,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,OAAO,EAAE;AACnC,YAAA,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,QAAQ,EAAE;AACrC,YAAA,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,gBAAgB,EAAE;AAChD,YAAA,EAAE,IAAI,EAAE,yBAAyB,EAAE,EAAE,EAAE,QAAQ,EAAE;AAClD;AACF,KAAA;AACD,IAAA,MAAM,EAAE;AACN,QAAA,IAAI,EAAEA,GAAA,CAAC,MAAM,IAAC,SAAS,EAAC,SAAS,EAAA,CAAG;AACpC,QAAA,UAAU,EAAE;AACV,YAAA,EAAE,IAAI,EAAE,iBAAiB,EAAE,EAAE,EAAE,kBAAkB,EAAE;AACnD,YAAA,EAAE,IAAI,EAAE,aAAa,EAAE,EAAE,EAAE,aAAa,EAAE;AAC1C,YAAA,EAAE,IAAI,EAAE,eAAe,EAAE,EAAE,EAAE,gBAAgB,EAAE;AAC/C,YAAA,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE;AAClC,YAAA,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ;AAC/B;AACF;CACF;MAgBY,iBAAiB,GAAqC,CAAC,EAAE,SAAS,EAAE,KAAI;IACnF,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,QAAQ,CAAC,QAAQ,CAAC;IACpE,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAA+B,SAAS,CAAC;IACnF,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC;IAClD,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAAG,QAAQ,CAAC,MAAK;AAC5D,QAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;AACjC,YAAA,OAAO,MAAM,CAAC,UAAU,GAAG,IAAI;QACjC;QACA,OAAO,KAAK,CAAC;AACf,IAAA,CAAC,CAAC;AACF,IAAA,MAAM,CAAC,kBAAkB,EAAE,qBAAqB,CAAC,GAAG,QAAQ,CAAW,CAAC,OAAO,CAAC,CAAC;IACjF,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAkC,SAAS,CAAC;IACpF,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,cAAc,EAAE,GAAG,WAAW,EAAE;IAC5D,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC;AACjE,IAAA,MAAM,UAAU,GAAG,MAAM,CAAwB,IAAI,CAAC;IACtD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAS,EAAE,CAAC;AAE5D,IAAA,MAAM,cAAc,GAAG,CAAC,QAAgB,KAAI;QAC1C,qBAAqB,CAAC,CAAC,IAAI,KACzB,IAAI,CAAC,QAAQ,CAAC,QAAQ;AACpB,cAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,QAAQ;cACjC,CAAC,GAAG,IAAI,EAAE,QAAQ,CAAC,CACxB;AACH,IAAA,CAAC;AAED,IAAA,MAAM,cAAc,GAAG,OAAO,CAAC,MAAK;AAClC,QAAA,OAAO,MAAM,CAAC,MAAM,CAAC,mBAAmB,CAAC,CAAC,OAAO,CAAC,CAAC,QAAQ,KACzD,QAAQ,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,KAAK,SAAS,CAAC,EAAE,CAAC,CACrD;IACH,CAAC,EAAE,EAAE,CAAC;IAEN,SAAS,CAAC,MAAK;QACb,IAAI,YAAY,IAAI,CAAC,IAAI,UAAU,CAAC,OAAO,IAAI,CAAC,gBAAgB,EAAE;YAChE,MAAM,OAAO,GAAG,UAAU,CAAC,OAAO,CAAC,gBAAgB,CACjD,qBAAqB,CACtB;AACD,YAAA,MAAM,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;YACpC,IAAI,MAAM,EAAE;gBACV,MAAM,CAAC,KAAK,EAAE;YAChB;QACF;AACF,IAAA,CAAC,EAAE,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC;AAEpC,IAAA,MAAM,mBAAmB,GAAG,CAAC,KAA0C,KAAI;AACzE,QAAA,IAAI,gBAAgB;YAAE;QAEtB,MAAM,YAAY,GAAG,cAAc,CAAC,OAAO,CAAC,iBAAiB,CAAC;AAE9D,QAAA,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,IAAI,KAAK,CAAC,GAAG,KAAK,YAAY,EAAE;YAC3D,KAAK,CAAC,cAAc,EAAE;AACtB,YAAA,MAAM,SAAS,GAAG,YAAY,KAAK,cAAc,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC;YACnF,eAAe,CAAC,SAAS,CAAC;AAC1B,YAAA,oBAAoB,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QACjD;AAAO,aAAA,IAAI,KAAK,CAAC,GAAG,KAAK,SAAS,IAAI,KAAK,CAAC,GAAG,KAAK,WAAW,EAAE;YAC/D,KAAK,CAAC,cAAc,EAAE;AACtB,YAAA,MAAM,SAAS,GAAG,YAAY,IAAI,CAAC,GAAG,cAAc,CAAC,MAAM,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC;YAClF,eAAe,CAAC,SAAS,CAAC;AAC1B,YAAA,oBAAoB,CAAC,cAAc,CAAC,SAAS,CAAC,CAAC;QACjD;AACF,IAAA,CAAC;AAED,IAAA,MAAM,eAAe,GAAG,OAAO,IAAY,KAAI;AAC7C,QAAA,IAAI;AACF,YAAA,IAAI,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE;gBACnC,MAAM,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC;gBACzC,aAAa,CAAC,IAAI,CAAC;AACnB,gBAAA,SAAS,CAAC,OAAO,CAAC,2BAA2B,CAAC;gBAC9C,UAAU,CAAC,MAAM,aAAa,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC;YAC7C;iBAAO;AACL,gBAAA,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC;YAC9C;QACF;QAAE,OAAO,GAAG,EAAE;AACZ,YAAA,SAAS,CAAC,KAAK,CAAC,qBAAqB,CAAC;QACxC;AACF,IAAA,CAAC;IAED,MAAM,kBAAkB,GAAG,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC,MAAM,CACnE,CAAC,GAAG,EAAE,CAAC,YAAY,EAAE,YAAY,CAAC,KAAI;AACpC,QAAA,MAAM,kBAAkB,GAAG,YAAY,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,KAClE,SAAS,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,WAAW,CAAC,WAAW,EAAE,CAAC,CACjE;AAED,QAAA,IAAI,kBAAkB,CAAC,MAAM,GAAG,CAAC,EAAE;YAChC,GAAW,CAAC,YAAY,CAAC,GAAG;AAC3B,gBAAA,GAAG,YAAY;AACf,gBAAA,UAAU,EAAE;aACb;QACH;AAEA,QAAA,OAAO,GAAG;IACZ,CAAC,EACD,EAAyC,CAC1C;AAED,IAAA,MAAM,UAAU,GAAG,aAAa,CAAC,iBAA+C,CAAC;AACjF,IAAA,MAAM,cAAc,GAAG,UAAU,EAAE,OAAO,IAAI,EAAE;IAChD,MAAM,YAAY,IAAI,UAAU,EAAE,KAAK,IAAI,EAAE,CAAc;IAE3D,MAAM,gBAAgB,GAAG,MAAK;QAC5B,QAAQ,QAAQ;AACd,YAAA,KAAK,QAAQ;AACX,gBAAA,OAAO,WAAW;AACpB,YAAA,KAAK,QAAQ;AACX,gBAAA,OAAO,UAAU;AACnB,YAAA;AACE,gBAAA,OAAO,QAAQ;;AAErB,IAAA,CAAC;AAED,IAAA,QACEC,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,EAAE,CAAC,4EAA4E,EAAE,UAAU,IAAI,MAAM,EAAE,SAAS,CAAC,aAC/HD,GAAA,CAAC,KAAK,EAAA,EAAA,CAAG,EAGR,CAAC,gBAAgB,KAChBA,aACE,SAAS,EAAC,+FAA+F,EACzG,OAAO,EAAE,MAAM,mBAAmB,CAAC,IAAI,CAAC,EAAA,CACxC,CACH,EAGDC,IAAA,CAAA,KAAA,EAAA,EACE,GAAG,EAAE,UAAU,EACf,SAAS,EAAE,EAAE,CACX,iIAAiI,EACjI,iDAAiD,EACjD,gBAAgB,GAAG,8CAA8C,GAAG,2BAA2B,CAChG,EACD,QAAQ,EAAE,gBAAgB,GAAG,EAAE,GAAG,CAAC,EACnC,SAAS,EAAE,mBAAmB,EAAA,YAAA,EACnB,sBAAsB,EAAA,QAAA,EAAA,CAGjCA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,mDAAmD,EAAA,QAAA,EAAA,CAChEA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,EAAE,CAAC,wCAAwC,EAAE,gBAAgB,GAAG,WAAW,GAAG,EAAE,CAAC,aAC7FA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,6BAA6B,aAC1CD,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,oEAAoE,EAAA,QAAA,EACjFA,GAAA,CAAC,OAAO,EAAA,EAAC,SAAS,EAAC,oBAAoB,EAAA,CAAG,EAAA,CACtC,EACNA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,iDAAiD,0BAAiB,CAAA,EAAA,CAC9E,EACNA,GAAA,CAAC,MAAM,IACL,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,MAAM,mBAAmB,CAAC,IAAI,CAAC,EAAA,QAAA,EAExCA,GAAA,CAAC,YAAY,EAAA,EAAC,SAAS,EAAC,SAAS,EAAA,CAAG,EAAA,CAC7B,CAAA,EAAA,CACL,EAERA,aAAK,SAAS,EAAE,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,GAAG,oBAAoB,GAAG,QAAQ,CAAC,EAAA,QAAA,EACpFA,GAAA,CAAC,MAAM,EAAA,EACL,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,MAAM,mBAAmB,CAAC,KAAK,CAAC,YAEzCA,GAAA,CAAC,OAAO,EAAA,EAAC,SAAS,EAAC,SAAS,EAAA,CAAG,EAAA,CACxB,EAAA,CACL,EAERC,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,EAAE,CAAC,UAAU,EAAE,gBAAgB,GAAG,WAAW,GAAG,EAAE,CAAC,EAAA,QAAA,EAAA,CAC/DD,GAAA,CAAC,MAAM,EAAA,EAAC,SAAS,EAAC,6FAA6F,EAAA,CAAG,EAClHA,GAAA,CAAC,KAAK,IACJ,WAAW,EAAC,sBAAsB,EAClC,KAAK,EAAE,WAAW,EAClB,QAAQ,EAAE,CAAC,CAAC,KAAK,cAAc,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EAC/C,SAAS,EAAC,OAAO,EAAA,CACjB,CAAA,EAAA,CACE,CAAA,EAAA,CACJ,EAGNA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,4BAA4B,EAAA,QAAA,EACxC,MAAM,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,YAAY,EAAE,YAAY,CAAC,MACnEC,IAAA,CAAA,KAAA,EAAA,EAAwB,SAAS,EAAC,MAAM,EAAA,QAAA,EAAA,CACtCA,IAAA,CAAA,QAAA,EAAA,EACE,OAAO,EAAE,MAAK;wCACZ,IAAI,OAAO,MAAM,KAAK,WAAW,IAAI,MAAM,CAAC,UAAU,GAAG,IAAI,EAAE;4CAC7D,cAAc,CAAC,YAAY,CAAC;wCAC9B;6CAAO,IAAI,CAAC,gBAAgB,EAAE;4CAC5B,cAAc,CAAC,YAAY,CAAC;wCAC9B;oCACF,CAAC,EACD,SAAS,EAAE,EAAE,CACX,+EAA+E,EACjF,2EAA2E,EACzE,gBAAgB,GAAG,0CAA0C,GAAG,iBAAiB,CAClF,EAAA,QAAA,EAAA,CAEDA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,6BAA6B,EAAA,QAAA,EAAA,CACzC,YAAY,CAAC,IAAI,EAClBD,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAE,EAAE,CAAC,gBAAgB,GAAG,WAAW,GAAG,EAAE,CAAC,EAAA,QAAA,EAAG,YAAY,EAAA,CAAQ,CAAA,EAAA,CAC3E,EACJA,GAAA,CAAC,WAAW,EAAA,EACV,SAAS,EAAE,EAAE,CACX,8BAA8B,EAC9B,kBAAkB,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,YAAY,EACzD,gBAAgB,GAAG,WAAW,GAAG,EAAE,CACpC,EAAA,CACD,CAAA,EAAA,CACG,EAER,kBAAkB,CAAC,QAAQ,CAAC,YAAY,CAAC,KACxCA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAE,EAAE,CAAC,qBAAqB,EAAE,gBAAgB,GAAG,WAAW,GAAG,EAAE,CAAC,EAAA,QAAA,EAC3E,YAAY,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,SAAS,KAAI;AACzC,wCAAA,MAAM,QAAQ,GAAG,iBAAiB,KAAK,SAAS,CAAC,EAAE;wCACnD,QACEA,qCAEqB,SAAS,CAAC,EAAE,EAC/B,OAAO,EAAE,MAAK;AACZ,gDAAA,oBAAoB,CAAC,SAAS,CAAC,EAAE,CAAC;gDAClC,eAAe,CAAC,cAAc,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;AAC7D,gDAAA,IAAI,MAAM,CAAC,UAAU,GAAG,IAAI,EAAE;oDAC5B,mBAAmB,CAAC,IAAI,CAAC;gDAC3B;AACM,4CAAA,CAAC,EACD,SAAS,EAAE,EAAE,CACX,0IAA0I,EAC1I;AACA,kDAAE;kDACA,uHAAuH,CAC1H,EAAA,cAAA,EACa,QAAQ,GAAG,MAAM,GAAG,SAAS,EAAA,QAAA,EAE1C,SAAS,CAAC,IAAI,EAAA,EAjBV,SAAS,CAAC,EAAE,CAkBV;oCAEb,CAAC,CAAC,EAAA,CACE,CACP,CAAA,EAAA,EAxDO,YAAY,CAyDhB,CACP,CAAC,EAAA,CACE,CAAA,EAAA,CACF,EAGNC,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,sCAAsC,EAAA,QAAA,EAAA,CAEnDD,GAAA,CAAA,QAAA,EAAA,EAAQ,SAAS,EAAC,6EAA6E,EAAA,QAAA,EAC7FC,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,mCAAmC,EAAA,QAAA,EAAA,CAChDA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,6BAA6B,EAAA,QAAA,EAAA,CAE1CD,GAAA,CAAC,MAAM,EAAA,EACL,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,IAAI,EACT,SAAS,EAAC,8BAA8B,EACxC,OAAO,EAAE,MAAM,mBAAmB,CAAC,KAAK,CAAC,EAAA,YAAA,EAC9B,qBAAqB,EAAA,QAAA,EAEhCA,IAAC,IAAI,EAAA,EAAC,SAAS,EAAC,0CAA0C,EAAA,CAAG,EAAA,CACtD,EAETA,GAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAC,sEAAsE,EAAA,QAAA,EACjF,UAAU,EAAE,IAAI,IAAI,oBAAoB,EAAA,CACtC,EACJ,UAAU,IAAIA,GAAA,CAAC,KAAK,EAAA,EAAC,OAAO,EAAC,SAAS,EAAA,QAAA,EAAE,UAAU,CAAC,IAAI,EAAA,CAAS,CAAA,EAAA,CAC7D,EAENC,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,6BAA6B,EAAA,QAAA,EAAA,CAE1CA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,+DAA+D,EAAA,QAAA,EAAA,CAC5ED,GAAA,CAAC,MAAM,EAAA,EACL,OAAO,EAAE,QAAQ,KAAK,SAAS,GAAG,SAAS,GAAG,OAAO,EACrD,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,MAAM,WAAW,CAAC,SAAS,CAAC,YAErCA,GAAA,CAAC,OAAO,EAAA,EAAC,SAAS,EAAC,SAAS,EAAA,CAAG,EAAA,CACxB,EACTA,GAAA,CAAC,MAAM,EAAA,EACL,OAAO,EAAE,QAAQ,KAAK,QAAQ,GAAG,SAAS,GAAG,OAAO,EACpD,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,MAAM,WAAW,CAAC,QAAQ,CAAC,EAAA,QAAA,EAEpCA,GAAA,CAAC,MAAM,EAAA,EAAC,SAAS,EAAC,SAAS,EAAA,CAAG,EAAA,CACvB,EACTA,GAAA,CAAC,MAAM,EAAA,EACL,OAAO,EAAE,QAAQ,KAAK,QAAQ,GAAG,SAAS,GAAG,OAAO,EACpD,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,MAAM,WAAW,CAAC,QAAQ,CAAC,EAAA,QAAA,EAEpCA,GAAA,CAAC,UAAU,EAAA,EAAC,SAAS,EAAC,SAAS,EAAA,CAAG,EAAA,CAC3B,CAAA,EAAA,CACL,EAGNA,GAAA,CAAC,MAAM,EAAA,EACL,OAAO,EAAC,OAAO,EACf,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,cAAc,EAAA,QAAA,EAEtB,UAAU,IACTA,GAAA,CAAC,GAAG,EAAA,EAAC,SAAS,EAAC,SAAS,EAAA,CAAG,KAE3BA,GAAA,CAAC,IAAI,EAAA,EAAC,SAAS,EAAC,SAAS,EAAA,CAAG,CAC7B,EAAA,CACM,CAAA,EAAA,CACL,CAAA,EAAA,CACF,EAAA,CACC,EAGTA,cAAM,SAAS,EAAC,sDAAsD,EAAA,QAAA,EACnE,UAAU,IACTC,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,6BAA6B,EAAA,QAAA,EAAA,CAE1CD,uBACEA,GAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAC,0CAA0C,EAAA,QAAA,EAAE,UAAU,CAAC,WAAW,EAAA,CAAK,EAAA,CAChF,EAGNC,IAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EAAA,CACEA,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,iBAAiB,EAAC,IAAI,EAAC,SAAS,EAAA,YAAA,EAAY,wBAAwB,EAAA,QAAA,EAAA,CACjFA,IAAA,CAAC,MAAM,EAAA,EACL,OAAO,EAAE,SAAS,KAAK,SAAS,GAAG,SAAS,GAAG,OAAO,EACtD,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,MAAM,YAAY,CAAC,SAAS,CAAC,EACtC,IAAI,EAAC,KAAK,EAAA,eAAA,EACK,SAAS,KAAK,SAAS,EAAA,QAAA,EAAA,CAEtCD,GAAA,CAAC,GAAG,EAAA,EAAC,SAAS,EAAC,cAAc,EAAA,CAAG,EAAA,SAAA,CAAA,EAAA,CAEzB,EACTC,IAAA,CAAC,MAAM,EAAA,EACL,OAAO,EAAE,SAAS,KAAK,MAAM,GAAG,SAAS,GAAG,OAAO,EACnD,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,MAAM,YAAY,CAAC,MAAM,CAAC,EACnC,IAAI,EAAC,KAAK,mBACK,SAAS,KAAK,MAAM,EAAA,QAAA,EAAA,CAEnCD,GAAA,CAAC,IAAI,EAAA,EAAC,SAAS,EAAC,cAAc,EAAA,CAAG,EAAA,MAAA,CAAA,EAAA,CAE1B,EACTC,IAAA,CAAC,MAAM,EAAA,EACL,OAAO,EAAE,SAAS,KAAK,OAAO,GAAG,SAAS,GAAG,OAAO,EACpD,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,MAAM,YAAY,CAAC,OAAO,CAAC,EACpC,IAAI,EAAC,KAAK,EAAA,eAAA,EACK,SAAS,KAAK,OAAO,EAAA,QAAA,EAAA,CAEpCD,GAAA,CAAC,QAAQ,EAAA,EAAC,SAAS,EAAC,cAAc,EAAA,CAAG,aAE9B,CAAA,EAAA,CACL,EACNC,IAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EAAA,CACED,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,MAAM,EAAA,QAAA,EACnBA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,iDAAiD,EAAA,QAAA,EAE9DA,GAAA,CAAA,KAAA,EAAA,EACE,SAAS,EAAE,EAAE,CACX,qCAAqC,EACrC,gBAAgB,EAAE,CACnB,EAAA,QAAA,EAEDA,GAAA,CAAA,KAAA,EAAA,EAAA,QAAA,EACG,gBAAgB,CAAC,iBAAiB;sEAC/B,KAAK,CAAC,aAAa,CACjB,gBAAgB,CAAC,iBAAiB,CAAC;AAEvC,sEAAE,IAAI,EAAA,CACJ,GACF,EAAA,CACF,EAAA,CACF,EAEL,SAAS,KAAK,MAAM,KACnBA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,MAAM,EAAC,IAAI,EAAC,UAAU,EAAA,YAAA,EAAY,cAAc,YAC7DC,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,iDAAiD,EAAA,QAAA,EAAA,CAC9DA,cAAK,SAAS,EAAC,4CAA4C,EAAA,QAAA,EAAA,CACzDD,GAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAC,4CAA4C,8BAErD,EACLC,IAAA,CAAC,MAAM,EAAA,EACL,OAAO,EAAC,SAAS,EACjB,IAAI,EAAC,IAAI,EACT,OAAO,EAAE,MAAM,eAAe,CAAC,cAAc,CAAC,aAE7C,UAAU,KAAK,cAAc,IAC5BD,IAAC,KAAK,EAAA,EAAC,SAAS,EAAC,cAAc,GAAG,KAElCA,IAAC,IAAI,EAAA,EAAC,SAAS,EAAC,cAAc,GAAG,CAClC,EAAA,MAAA,CAAA,EAAA,CAEM,CAAA,EAAA,CACL,EACNA,aAAK,SAAS,EAAC,0DAA0D,EAAA,QAAA,EACvEA,GAAA,CAAA,MAAA,EAAA,EAAA,QAAA,EAAO,cAAc,EAAA,CAAQ,EAAA,CACzB,CAAA,EAAA,CACF,EAAA,CACF,CACP,EAEA,SAAS,KAAK,OAAO,KACpBA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,MAAM,EAAC,IAAI,EAAC,UAAU,EAAA,YAAA,EAAY,iBAAiB,YAChEC,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,iDAAiD,EAAA,QAAA,EAAA,CAC9DD,YAAI,SAAS,EAAC,4CAA4C,EAAA,QAAA,EAAA,iBAAA,EAAA,CAErD,EACLA,aAAK,SAAS,EAAC,iBAAiB,EAAA,QAAA,EAC9BC,gBAAO,SAAS,EAAC,wBAAwB,EAAA,QAAA,EAAA,CACvCD,GAAA,CAAA,OAAA,EAAA,EAAA,QAAA,EACEC,aAAI,SAAS,EAAC,+CAA+C,EAAA,QAAA,EAAA,CAC3DD,YAAI,SAAS,EAAC,4DAA4D,EAAA,QAAA,EAAA,MAAA,EAAA,CAErE,EACLA,YAAI,SAAS,EAAC,4DAA4D,EAAA,QAAA,EAAA,MAAA,EAAA,CAErE,EACLA,GAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAC,4DAA4D,EAAA,QAAA,EAAA,SAAA,EAAA,CAErE,EACLA,GAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAC,4DAA4D,EAAA,QAAA,EAAA,aAAA,EAAA,CAErE,IACF,EAAA,CACC,EACRA,yBACG,YAAY,CAAC,MAAM,GAAG,CAAC,IACtB,YAAY,CAAC,GAAG,CAAC,CAAC,IAAa,EAAE,KAAK,MACpCC,aAA6B,SAAS,EAAC,kDAAkD,EAAA,QAAA,EAAA,CACvFA,IAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAC,KAAK,EAAA,QAAA,EAAA,CACjBD,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,2EAA2E,YACxF,IAAI,CAAC,IAAI,EAAA,CACL,EACN,IAAI,CAAC,QAAQ,KACZA,GAAA,CAAC,KAAK,EAAA,EAAC,OAAO,EAAC,QAAQ,EAAC,SAAS,EAAC,cAAc,EAAA,QAAA,EAAA,UAAA,EAAA,CAExC,CACT,IACE,EACLA,GAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAC,sCAAsC,EAAA,QAAA,EAAE,IAAI,CAAC,IAAI,EAAA,CAAM,EACrEA,GAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAC,sCAAsC,YACjD,IAAI,CAAC,OAAO,IACXA,GAAA,CAAA,MAAA,EAAA,EAAM,SAAS,EAAC,2EAA2E,YACxF,IAAI,CAAC,OAAO,EAAA,CACR,IACL,IAAI,EAAA,CACL,EACLA,GAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAC,sCAAsC,EAAA,QAAA,EAAE,IAAI,CAAC,WAAW,EAAA,CAAM,CAAA,EAAA,EAnBrE,IAAI,CAAC,IAAI,IAAI,KAAK,CAoBtB,CACN,CAAC,KAEFA,GAAA,CAAA,IAAA,EAAA,EAAA,QAAA,EACEA,YAAI,OAAO,EAAE,CAAC,EAAE,SAAS,EAAC,kDAAkD,EAAA,QAAA,EAAA,6CAAA,EAAA,CAEvE,GACF,CACN,EAAA,CACK,IACF,EAAA,CACJ,CAAA,EAAA,CACF,GACF,CACP,CAAA,EAAA,CACG,CAAA,EAAA,CACF,CAAA,EAAA,CACF,KAENA,GAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,yCAAyC,EAAA,QAAA,EACtDC,IAAA,CAAA,KAAA,EAAA,EAAK,SAAS,EAAC,aAAa,aAC1BD,GAAA,CAAC,IAAI,IAAC,SAAS,EAAC,yDAAyD,EAAA,CAAG,EAC5EA,GAAA,CAAA,IAAA,EAAA,EAAI,SAAS,EAAC,0DAA0D,EAAA,QAAA,EAAA,oBAAA,EAAA,CAEnE,EACLA,GAAA,CAAA,GAAA,EAAA,EAAG,SAAS,EAAC,kCAAkC,EAAA,QAAA,EAAA,6EAAA,EAAA,CAE3C,IACA,EAAA,CACF,CACP,GACI,CAAA,EAAA,CACH,CAAA,EAAA,CACF;AAEV;;;;"}
|
|
1
|
+
{"version":3,"file":"ComponentShowcase.js","sources":["../../../src/components/ComponentShowcase/ComponentShowcase.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { useState, useMemo, useRef, useEffect } from \"react\";\nimport {\n Search,\n Copy,\n Check,\n Monitor,\n Tablet,\n Smartphone,\n Sun,\n Moon,\n ChevronRight,\n ChevronDown,\n Code,\n Eye,\n Book,\n Palette,\n Layout,\n MousePointer,\n AlertCircle,\n BarChart3,\n Settings,\n Shield,\n Menu,\n Mail\n} from \"lucide-react\";\nimport { cn } from \"../../utils/cn\";\nimport { Button } from \"../Button\";\nimport { Input } from \"../Input\";\nimport { Badge } from \"../Badge\";\nimport { Toast, showToast } from \"../Toast\";\n\nimport { showcaseRegistry } from \"./showcaseRegistry\";\nimport { componentDocs } from \"./componentDocs\";\nimport { useDarkMode } from \"../../hooks/useDarkMode\";\n\n// Component categories and their items\nconst componentCategories = {\n Forms: {\n icon: <MousePointer className=\"h-4 w-4\" />,\n components: [\n { name: \"Button\", id: \"button\" },\n { name: \"Input\", id: \"input\" },\n { name: \"Textarea\", id: \"textarea\" },\n { name: \"Checkbox\", id: \"checkbox\" },\n { name: \"Switch\", id: \"switch\" }\n ]\n },\n \"Data Display\": {\n icon: <BarChart3 className=\"h-4 w-4\" />,\n components: [\n { name: \"Card\", id: \"card\" },\n { name: \"Badge\", id: \"badge\" },\n { name: \"Avatar\", id: \"avatar\" },\n { name: \"StatsCard\", id: \"statscard\" },\n { name: \"Tabs\", id: \"tabs\" },\n { name: \"DataTable\", id: \"datatable\" }\n ]\n },\n Feedback: {\n icon: <AlertCircle className=\"h-4 w-4\" />,\n components: [\n { name: \"Alert\", id: \"alert\" },\n { name: \"Toast\", id: \"toast\" },\n { name: \"Modal\", id: \"modal\" },\n { name: \"Spinner\", id: \"spinner\" },\n { name: \"Skeleton\", id: \"skeleton\" },\n { name: \"Chat Widget\", id: \"chatwidget\" }\n ]\n },\n Authentication: {\n icon: <Shield className=\"h-4 w-4\" />,\n components: [\n { name: \"Auth System\", id: \"auth\" },\n { name: \"Login Page\", id: \"login\" },\n { name: \"Signup Page\", id: \"signup\" },\n { name: \"Password Reset\", id: \"password-reset\" },\n { name: \"!isAuthenticated Shield\", id: \"shield\" },\n ]\n },\n Layout: {\n icon: <Layout className=\"h-4 w-4\" />,\n components: [\n { name: \"DashboardLayout\", id: \"dashboard-layout\" },\n { name: \"Page Layout\", id: \"page-layout\" },\n { name: \"DashboardGrid\", id: \"dashboard-grid\" },\n { name: \"Sidebar\", id: \"sidebar\" },\n { name: \"Navbar\", id: \"navbar\" }\n ]\n },\n Emails: {\n icon: <Mail className=\"h-4 w-4\" />,\n components: [\n { name: \"Email Templates\", id: \"email-templates\" }\n ]\n }\n};\n\n// Prop documentation interface\ninterface PropDoc {\n name: string;\n type: string;\n default?: string;\n description?: string;\n required?: boolean;\n}\n\n// Props\ninterface ComponentShowcaseProps {\n className?: string;\n}\n\nexport const ComponentShowcase: React.FC<ComponentShowcaseProps> = ({ className }) => {\n const [selectedComponent, setSelectedComponent] = useState(\"button\");\n const [activeTab, setActiveTab] = useState<\"preview\" | \"code\" | \"props\">(\"preview\");\n const [searchQuery, setSearchQuery] = useState(\"\");\n const [sidebarCollapsed, setSidebarCollapsed] = useState(() => {\n if (typeof window !== \"undefined\") {\n return window.innerWidth < 1024;\n }\n return false; // Default for SSR\n });\n const [expandedCategories, setExpandedCategories] = useState<string[]>([\"Forms\"]);\n const [viewMode, setViewMode] = useState<\"desktop\" | \"tablet\" | \"mobile\">(\"desktop\");\n const { isDarkMode, toggle: toggleDarkMode } = useDarkMode();\n const [copiedCode, setCopiedCode] = useState<string | null>(null);\n const sidebarRef = useRef<HTMLDivElement | null>(null);\n const [focusedIndex, setFocusedIndex] = useState<number>(-1);\n\n const toggleCategory = (category: string) => {\n setExpandedCategories((prev) =>\n prev.includes(category)\n ? prev.filter((c) => c !== category)\n : [...prev, category]\n );\n };\n\n const flatComponents = useMemo(() => {\n return Object.values(componentCategories).flatMap((category) =>\n category.components.map((component) => component.id)\n );\n }, []);\n\n useEffect(() => {\n if (focusedIndex >= 0 && sidebarRef.current && !sidebarCollapsed) {\n const buttons = sidebarRef.current.querySelectorAll<HTMLButtonElement>(\n '[data-component-id]'\n );\n const target = buttons[focusedIndex];\n if (target) {\n target.focus();\n }\n }\n }, [focusedIndex, sidebarCollapsed]);\n\n const handleKeyNavigation = (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (sidebarCollapsed) return;\n\n const currentIndex = flatComponents.indexOf(selectedComponent);\n\n if (event.key === 'ArrowDown' || event.key === 'ArrowRight') {\n event.preventDefault();\n const nextIndex = currentIndex === flatComponents.length - 1 ? 0 : currentIndex + 1;\n setFocusedIndex(nextIndex);\n setSelectedComponent(flatComponents[nextIndex]);\n } else if (event.key === 'ArrowUp' || event.key === 'ArrowLeft') {\n event.preventDefault();\n const prevIndex = currentIndex <= 0 ? flatComponents.length - 1 : currentIndex - 1;\n setFocusedIndex(prevIndex);\n setSelectedComponent(flatComponents[prevIndex]);\n }\n };\n\n const copyToClipboard = async (code: string) => {\n try {\n if (navigator?.clipboard?.writeText) {\n await navigator.clipboard.writeText(code);\n setCopiedCode(code);\n showToast.success(\"Code copied to clipboard!\");\n setTimeout(() => setCopiedCode(null), 2000);\n } else {\n throw new Error(\"Clipboard API unavailable\");\n }\n } catch (err) {\n showToast.error(\"Failed to copy code\");\n }\n };\n\n const filteredCategories = Object.entries(componentCategories).reduce(\n (acc, [categoryName, categoryData]) => {\n const filteredComponents = categoryData.components.filter((component) =>\n component.name.toLowerCase().includes(searchQuery.toLowerCase())\n );\n\n if (filteredComponents.length > 0) {\n (acc as any)[categoryName] = {\n ...categoryData,\n components: filteredComponents\n };\n }\n\n return acc;\n },\n {} as Partial<typeof componentCategories>\n );\n\n const currentDoc = componentDocs[selectedComponent as keyof typeof componentDocs];\n const currentExample = currentDoc?.example ?? '';\n const currentProps = (currentDoc?.props ?? []) as PropDoc[];\n\n const getViewportClass = () => {\n switch (viewMode) {\n case \"tablet\":\n return \"max-w-2xl\";\n case \"mobile\":\n return \"max-w-sm\";\n default:\n return \"w-full\";\n }\n };\n\n return (\n <div className={cn(\"flex h-screen bg-gray-50 dark:bg-gray-950 text-gray-900 dark:text-gray-100\", isDarkMode && \"dark\", className)}>\n <Toast />\n\n {/* Mobile Overlay for Showcase Sidebar */}\n {!sidebarCollapsed && (\n <div\n className=\"fixed inset-0 bg-black/50 dark:bg-black/80 z-10 lg:hidden backdrop-blur-sm transition-opacity\"\n onClick={() => setSidebarCollapsed(true)}\n />\n )}\n\n {/* Sidebar */}\n <div\n ref={sidebarRef}\n className={cn(\n \"bg-white dark:bg-gray-900 border-r border-gray-200 dark:border-gray-800 transition-all duration-300 flex flex-col z-20 shrink-0\",\n \"max-lg:absolute max-lg:h-full max-lg:shadow-2xl\",\n sidebarCollapsed ? \"lg:w-16 max-lg:w-80 max-lg:-translate-x-full\" : \"w-80 max-lg:translate-x-0\"\n )}\n tabIndex={sidebarCollapsed ? -1 : 0}\n onKeyDown={handleKeyNavigation}\n aria-label=\"Component navigation\"\n >\n {/* Sidebar Header */}\n <div className=\"p-4 border-b border-gray-200 dark:border-gray-800\">\n <div className={cn(\"flex items-center justify-between mb-4\", sidebarCollapsed ? \"lg:hidden\" : \"\")}>\n <div className=\"flex items-center space-x-2\">\n <div className=\"w-8 h-8 bg-primary-600 rounded-lg flex items-center justify-center\">\n <Palette className=\"h-4 w-4 text-white\" />\n </div>\n <span className=\"font-bold text-lg text-gray-900 dark:text-white\">Beyond UI</span>\n </div>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => setSidebarCollapsed(true)}\n >\n <ChevronRight className=\"h-4 w-4\" />\n </Button>\n </div>\n\n <div className={cn(\"justify-center\", sidebarCollapsed ? \"flex max-lg:hidden\" : \"hidden\")}>\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={() => setSidebarCollapsed(false)}\n >\n <Palette className=\"h-4 w-4\" />\n </Button>\n </div>\n\n <div className={cn(\"relative\", sidebarCollapsed ? \"lg:hidden\" : \"\")}>\n <Search className=\"absolute left-3 top-1/2 transform -translate-y-1/2 h-4 w-4 text-gray-400 dark:text-gray-500\" />\n <Input\n placeholder=\"Search components...\"\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n className=\"pl-10\"\n />\n </div>\n </div>\n\n {/* Navigation */}\n <nav className=\"flex-1 p-4 overflow-y-auto\">\n {Object.entries(filteredCategories).map(([categoryName, categoryData]) => (\n <div key={categoryName} className=\"mb-4\">\n <button\n onClick={() => {\n if (typeof window !== \"undefined\" && window.innerWidth < 1024) {\n toggleCategory(categoryName);\n } else if (!sidebarCollapsed) {\n toggleCategory(categoryName);\n }\n }}\n className={cn(\n \"flex items-center w-full p-2 text-sm font-medium rounded-lg transition-colors\",\n \"hover:bg-gray-100 dark:hover:bg-gray-800 text-gray-700 dark:text-gray-300\",\n sidebarCollapsed ? \"lg:justify-center max-lg:justify-between\" : \"justify-between\"\n )}\n >\n <div className=\"flex items-center space-x-2\">\n {categoryData.icon}\n <span className={cn(sidebarCollapsed ? \"lg:hidden\" : \"\")}>{categoryName}</span>\n </div>\n <ChevronDown\n className={cn(\n \"h-4 w-4 transition-transform\",\n expandedCategories.includes(categoryName) && \"rotate-180\",\n sidebarCollapsed ? \"lg:hidden\" : \"\"\n )}\n />\n </button>\n\n {expandedCategories.includes(categoryName) && (\n <div className={cn(\"mt-2 ml-6 space-y-1\", sidebarCollapsed ? \"lg:hidden\" : \"\")}>\n {categoryData.components.map((component) => {\n const isActive = selectedComponent === component.id;\n return (\n <button\n key={component.id}\n data-component-id={component.id}\n onClick={() => {\n setSelectedComponent(component.id);\n setFocusedIndex(flatComponents.indexOf(component.id));\n if (window.innerWidth < 1024) {\n setSidebarCollapsed(true);\n }\n }}\n className={cn(\n \"flex items-center w-full p-2 text-sm rounded-lg transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-primary-500\",\n isActive\n ? \"bg-primary-50 dark:bg-primary-900/20 text-primary-700 dark:text-primary-400 border-r-2 border-primary-600 dark:border-primary-500\"\n : \"text-gray-600 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800/50 hover:text-gray-900 dark:hover:text-white\"\n )}\n aria-current={isActive ? \"page\" : undefined}\n >\n {component.name}\n </button>\n );\n })}\n </div>\n )}\n </div>\n ))}\n </nav>\n </div>\n\n {/* Main Content */}\n <div className=\"flex-1 flex flex-col overflow-hidden\">\n {/* Header */}\n <header className=\"bg-white dark:bg-gray-900 border-b border-gray-200 dark:border-gray-800 p-4\">\n <div className=\"flex items-center justify-between\">\n <div className=\"flex items-center space-x-4\">\n {/* Mobile Menu Toggle */}\n <Button\n variant=\"ghost\"\n size=\"sm\"\n className=\"lg:hidden p-2 -ml-2 shrink-0\"\n onClick={() => setSidebarCollapsed(false)}\n aria-label=\"Open component menu\"\n >\n <Menu className=\"h-5 w-5 text-gray-700 dark:text-gray-300\" />\n </Button>\n \n <h1 className=\"text-xl md:text-2xl font-bold text-gray-900 dark:text-white truncate\">\n {currentDoc?.name || \"Component Showcase\"}\n </h1>\n {currentDoc && <Badge variant=\"outline\">{currentDoc.name}</Badge>}\n </div>\n\n <div className=\"flex items-center space-x-2\">\n {/* Viewport Controls */}\n <div className=\"flex items-center bg-gray-100 dark:bg-gray-800 rounded-lg p-1\">\n <Button\n variant={viewMode === \"desktop\" ? \"primary\" : \"ghost\"}\n size=\"sm\"\n onClick={() => setViewMode(\"desktop\")}\n >\n <Monitor className=\"h-4 w-4\" />\n </Button>\n <Button\n variant={viewMode === \"tablet\" ? \"primary\" : \"ghost\"}\n size=\"sm\"\n onClick={() => setViewMode(\"tablet\")}\n >\n <Tablet className=\"h-4 w-4\" />\n </Button>\n <Button\n variant={viewMode === \"mobile\" ? \"primary\" : \"ghost\"}\n size=\"sm\"\n onClick={() => setViewMode(\"mobile\")}\n >\n <Smartphone className=\"h-4 w-4\" />\n </Button>\n </div>\n\n {/* Dark Mode Toggle */}\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={toggleDarkMode}\n >\n {isDarkMode ? (\n <Sun className=\"h-4 w-4\" />\n ) : (\n <Moon className=\"h-4 w-4\" />\n )}\n </Button>\n </div>\n </div>\n </header>\n\n {/* Content */}\n <main className=\"flex-1 overflow-auto p-6 bg-gray-50 dark:bg-gray-950\">\n {currentDoc ? (\n <div className=\"max-w-6xl mx-auto space-y-8\">\n {/* Description */}\n <div>\n <p className=\"text-lg text-gray-600 dark:text-gray-400\">{currentDoc.description}</p>\n </div>\n\n {/* Tabs */}\n <div>\n <div className=\"flex gap-3 mb-4\" role=\"tablist\" aria-label=\"Component details tabs\">\n <Button\n variant={activeTab === \"preview\" ? \"primary\" : \"ghost\"}\n size=\"sm\"\n onClick={() => setActiveTab(\"preview\")}\n role=\"tab\"\n aria-selected={activeTab === \"preview\"}\n >\n <Eye className=\"h-4 w-4 mr-2\" />\n Preview\n </Button>\n <Button\n variant={activeTab === \"code\" ? \"primary\" : \"ghost\"}\n size=\"sm\"\n onClick={() => setActiveTab(\"code\")}\n role=\"tab\"\n aria-selected={activeTab === \"code\"}\n >\n <Code className=\"h-4 w-4 mr-2\" />\n Code\n </Button>\n <Button\n variant={activeTab === \"props\" ? \"primary\" : \"ghost\"}\n size=\"sm\"\n onClick={() => setActiveTab(\"props\")}\n role=\"tab\"\n aria-selected={activeTab === \"props\"}\n >\n <Settings className=\"h-4 w-4 mr-2\" />\n Props\n </Button>\n </div>\n <div>\n <div className=\"mt-6\">\n <div className=\"bg-white dark:bg-gray-900 rounded-lg shadow p-6\">\n {/* Preview */}\n <div\n className={cn(\n \"mx-auto transition-all duration-300\",\n getViewportClass()\n )}\n >\n <div>\n {showcaseRegistry[selectedComponent]\n ? React.createElement(\n showcaseRegistry[selectedComponent]\n )\n : null}\n </div>\n </div>\n </div>\n </div>\n\n {activeTab === \"code\" && (\n <div className=\"mt-6\" role=\"tabpanel\" aria-label=\"Code example\">\n <div className=\"bg-white dark:bg-gray-900 rounded-lg shadow p-6\">\n <div className=\"flex flex-row items-center justify-between\">\n <h2 className=\"text-lg font-semibold mb-0 dark:text-white\">\n Usage Example\n </h2>\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={() => copyToClipboard(currentExample)}\n >\n {copiedCode === currentExample ? (\n <Check className=\"h-4 w-4 mr-2\" />\n ) : (\n <Copy className=\"h-4 w-4 mr-2\" />\n )}\n Copy\n </Button>\n </div>\n <pre className=\"bg-gray-900 text-gray-100 p-4 rounded-lg overflow-x-auto\">\n <code>{currentExample}</code>\n </pre>\n </div>\n </div>\n )}\n\n {activeTab === \"props\" && (\n <div className=\"mt-6\" role=\"tabpanel\" aria-label=\"Component props\">\n <div className=\"bg-white dark:bg-gray-900 rounded-lg shadow p-6\">\n <h2 className=\"text-lg font-semibold mb-4 dark:text-white\">\n Component Props\n </h2>\n <div className=\"overflow-x-auto\">\n <table className=\"w-full border-collapse\">\n <thead>\n <tr className=\"border-b border-gray-200 dark:border-gray-800\">\n <th className=\"text-left p-3 font-medium text-gray-900 dark:text-gray-100\">\n Prop\n </th>\n <th className=\"text-left p-3 font-medium text-gray-900 dark:text-gray-100\">\n Type\n </th>\n <th className=\"text-left p-3 font-medium text-gray-900 dark:text-gray-100\">\n Default\n </th>\n <th className=\"text-left p-3 font-medium text-gray-900 dark:text-gray-100\">\n Description\n </th>\n </tr>\n </thead>\n <tbody>\n {currentProps.length > 0 ? (\n currentProps.map((prop: PropDoc, index) => (\n <tr key={prop.name ?? index} className=\"border-b border-gray-100 dark:border-gray-800/50\">\n <td className=\"p-3\">\n <code className=\"bg-gray-100 dark:bg-gray-800 px-2 py-1 rounded text-sm dark:text-gray-300\">\n {prop.name}\n </code>\n {prop.required && (\n <Badge variant=\"danger\" className=\"ml-2 text-xs\">\n Required\n </Badge>\n )}\n </td>\n <td className=\"p-3 text-gray-600 dark:text-gray-400\">{prop.type}</td>\n <td className=\"p-3 text-gray-600 dark:text-gray-400\">\n {prop.default ? (\n <code className=\"bg-gray-100 dark:bg-gray-800 px-2 py-1 rounded text-sm dark:text-gray-300\">\n {prop.default}\n </code>\n ) : null}\n </td>\n <td className=\"p-3 text-gray-600 dark:text-gray-400\">{prop.description}</td>\n </tr>\n ))\n ) : (\n <tr>\n <td colSpan={4} className=\"p-4 text-center text-gray-500 dark:text-gray-400\">\n No props documented for this component yet.\n </td>\n </tr>\n )}\n </tbody>\n </table>\n </div>\n </div>\n </div>\n )}\n </div>\n </div>\n </div>\n ) : (\n <div className=\"flex items-center justify-center h-full\">\n <div className=\"text-center\">\n <Book className=\"h-16 w-16 text-gray-400 dark:text-gray-600 mx-auto mb-4\" />\n <h2 className=\"text-xl font-semibold text-gray-900 dark:text-white mb-2\">\n Select a Component\n </h2>\n <p className=\"text-gray-600 dark:text-gray-400\">\n Choose a component from the sidebar to view its documentation and examples.\n </p>\n </div>\n </div>\n )}\n </main>\n </div>\n </div>\n );\n};\n"],"names":["_jsx","_jsxs"],"mappings":"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"}
|
|
@@ -248,6 +248,23 @@ function Example() {
|
|
|
248
248
|
{ name: "onSendMessage", type: "(message: string) => Promise<void> | void", description: "Callback hook when the user sends a message." }
|
|
249
249
|
]
|
|
250
250
|
},
|
|
251
|
+
"email-templates": {
|
|
252
|
+
name: "Email Templates",
|
|
253
|
+
description: "A comprehensive suite of 100+ React Email templates spanning marketing, billing, auth, and internal operations.",
|
|
254
|
+
example: `import { WelcomeEmail, renderEmailParams } from "@/components/Email";
|
|
255
|
+
|
|
256
|
+
// In your Next.js API route:
|
|
257
|
+
const { html, text } = await renderEmailParams(<WelcomeEmail userName="Alex" />);
|
|
258
|
+
|
|
259
|
+
await resend.emails.send({
|
|
260
|
+
from: 'hello@beyondcorp.com',
|
|
261
|
+
to: 'user@example.com',
|
|
262
|
+
subject: 'Welcome!',
|
|
263
|
+
html,
|
|
264
|
+
text
|
|
265
|
+
});`,
|
|
266
|
+
props: []
|
|
267
|
+
}
|
|
251
268
|
};
|
|
252
269
|
|
|
253
270
|
export { componentDocs };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"componentDocs.js","sources":["../../../src/components/ComponentShowcase/componentDocs.ts"],"sourcesContent":["/**\n * Centralized docs/config for all showcased components:\n * - description, usage example, props table, etc.\n * Used for ComponentShowcase main screen documentation.\n */\nexport const componentDocs = {\n button: {\n name: \"Button\",\n description: \"A versatile button component with multiple variants and sizes.\",\n example: `<Button variant=\"primary\" size=\"md\">\n Click me\n</Button>`,\n props: [\n { name: \"variant\", type: \"string\", default: \"primary\", description: \"Button style variant\" },\n { name: \"size\", type: \"string\", default: \"md\", description: \"Button size\" },\n { name: \"disabled\", type: \"boolean\", default: \"false\", description: \"Disable the button\" }\n ]\n },\n input: {\n name: \"Input\",\n description: \"A flexible input component with validation states and different sizes.\",\n example: `<Input placeholder=\"Enter your email\" />`,\n props: [\n { name: \"variant\", type: \"string\", default: \"default\", description: \"Input variant (default/success/error)\" },\n { name: \"inputSize\", type: \"string\", default: \"md\", description: \"Input size\" },\n { name: \"placeholder\", type: \"string\", default: \"\", description: \"Placeholder text\" }\n ]\n },\n badge: {\n name: \"Badge\",\n description: \"A small tag for statuses or classifications.\",\n example: `<Badge>Default</Badge>`,\n props: [\n { name: \"variant\", type: \"string\", default: \"default\", description: \"Badge style variant\" }\n ]\n },\n card: {\n name: \"Card\",\n description: \"A container element for grouping content.\",\n example: `<Card><CardContent>Example</CardContent></Card>`,\n props: [\n { name: \"children\", type: \"ReactNode\", description: \"Card content\" }\n ]\n },\n textarea: {\n name: \"Textarea\",\n description: \"A multi-line text input component.\",\n example: `<Textarea placeholder=\"Write here...\" />`,\n props: [\n { name: \"rows\", type: \"number\", default: 3, description: \"Number of rows\" }\n ]\n },\n checkbox: {\n name: \"Checkbox\",\n description: \"A standard form checkbox.\",\n example: `<Checkbox checked={true} />`,\n props: [\n { name: \"checked\", type: \"boolean\", description: \"Checked state\" }\n ]\n },\n switch: {\n name: \"Switch\",\n description: \"A boolean toggle control.\",\n example: `<Switch checked={true} />`,\n props: [\n { name: \"checked\", type: \"boolean\", description: \"Checked state\" }\n ]\n },\n avatar: {\n name: \"Avatar\",\n description: \"Displays a user profile image or initials.\",\n example: `<Avatar><AvatarFallback>U</AvatarFallback></Avatar>`,\n props: [\n { name: \"size\", type: \"\\\"sm\\\"|\\\"md\\\"|\\\"lg\\\"\", default: \"md\", description: \"Avatar size\" }\n ]\n },\n alert: {\n name: \"Alert\",\n description: \"Displays messages for important info.\",\n example: `<Alert variant=\"info\"><AlertTitle>Info</AlertTitle></Alert>`,\n props: [\n { name: \"variant\", type: \"string\", default: \"info\", description: \"Alert type\" }\n ]\n },\n toast: {\n name: \"Toast\",\n description: \"Transient notification message overlay.\",\n example: `<Toast />`,\n props: []\n },\n modal: {\n name: \"Modal\",\n description: \"A dialog overlay for user attention.\",\n example: `<Modal open={true} onOpenChange={() => {}} />`,\n props: [\n { name: \"open\", type: \"boolean\", description: \"Show or hide the modal\" }\n ]\n },\n spinner: {\n name: \"Spinner\",\n description: \"Animated indicator for loading states.\",\n example: `<Spinner />`,\n props: []\n },\n skeleton: {\n name: \"Skeleton\",\n description: \"Shimmer placeholder for loading UIs.\",\n example: `<Skeleton className=\"h-6 w-32\" />`,\n props: [\n { name: \"className\", type: \"string\", description: \"Skeleton custom styles\" }\n ]\n },\n statscard: {\n name: \"StatsCard\",\n description: \"Shows key metrics and trends.\",\n example: `<StatsCard title=\"Users\" value=\"2,543\" />`,\n props: [\n { name: \"title\", type: \"string\", description: \"Card title\" },\n { name: \"value\", type: \"string|number\", description: \"Main value\" }\n ]\n },\n tabs: {\n name: \"Tabs\",\n description: \"Navigation between content views.\",\n example: `<Tabs value=\"tab-1\"><TabsList>...</TabsList></Tabs>`,\n props: [\n { name: \"value\", type: \"string\", description: \"Selected tab value\" }\n ]\n },\n sidebar: {\n name: \"Sidebar\",\n description: \"Persistent vertical navigation panel.\",\n example: `<Sidebar menuItems={[]} />`,\n props: []\n },\n navbar: {\n name: \"Navbar\",\n description: \"Top navigation bar for branding and links.\",\n example: `<Navbar>...</Navbar>`,\n props: []\n },\n \"dashboard-layout\": {\n name: \"DashboardLayout\",\n description: \"Layout for dashboards with sidebar and content.\",\n example: `<DashboardLayout>...</DashboardLayout>`,\n props: []\n },\n \"dashboard-header\": {\n name: \"DashboardHeader\",\n description: \"Header for dashboard screens.\",\n example: `<DashboardHeader />`,\n props: []\n },\n \"dashboard-grid\": {\n name: \"DashboardGrid\",\n description: \"Grid container for dashboard widgets.\",\n example: `<DashboardGrid>...</DashboardGrid>`,\n props: []\n },\n datatable: {\n name: \"DataTable\",\n description: \"Advanced table for displaying data collections.\",\n example: `<DataTable columns={[]} dataSource={[]} />`,\n props: []\n },\n \"page-layout\": {\n name: \"Page Layout\",\n description: \"Flexible, semantic layout system for landing pages, products, blogs, and more. Compose with PageHeader, PageHero, PageContent, PageSidebar, and PageFooter for complete responsive UIs.\",\n example: `import { PageLayout, PageHeader, PageContent, PageFooter } from \"@/components/PageLayout\";\n\nfunction Example() {\n return (\n <PageLayout variant=\"default\" maxWidth=\"xl\">\n <PageHeader>\n <nav>\n <span>My App</span>\n </nav>\n </PageHeader>\n <PageContent maxWidth=\"lg\">\n <h1>Welcome!</h1>\n <p>Your content here...</p>\n </PageContent>\n <PageFooter variant=\"simple\">\n <p>© 2024 My App. All rights reserved.</p>\n </PageFooter>\n </PageLayout>\n );\n}`,\n props: [\n { name: \"variant\", type: \"\\\"default\\\"|\\\"centered\\\"|\\\"sidebar\\\"|\\\"landing\\\"|\\\"product\\\"|\\\"blog\\\"\", default: \"\\\"default\\\"\", description: \"Sets page color and layout preset\" },\n { name: \"maxWidth\", type: \"\\\"none\\\"|\\\"sm\\\"|\\\"md\\\"|\\\"lg\\\"|\\\"xl\\\"|\\\"2xl\\\"|\\\"full\\\"\", default: \"\\\"xl\\\"\", description: \"Limits overall page width for content\" },\n { name: \"contentLayout\", type: \"\\\"default\\\"|\\\"centered\\\"|\\\"sidebar\\\"|\\\"fullWidth\\\"\", default: \"\\\"default\\\"\", description: \"Layout mode for PageLayoutContent\" },\n { name: \"contentSpacing\", type: \"\\\"none\\\"|\\\"sm\\\"|\\\"md\\\"|\\\"lg\\\"|\\\"xl\\\"\", default: \"\\\"md\\\"\", description: \"Vertical padding spacing\" },\n { name: \"children\", type: \"ReactNode\", description: \"Page structure (usually header, content, sidebar, footer)\" },\n // Optionally highlight subcomponent props\n { name: \"PageHeader\", type: \"Sticky/Transparent, children\", description: \"Header settings for navigation bar\" },\n { name: \"PageHero\", type: \"fullHeight, backgroundImage, overlay, children\", description: \"Hero section for landing visuals\" },\n { name: \"PageContent\", type: \"maxWidth, children\", description: \"Content area for main body text/components\" },\n { name: \"PageSidebar\", type: \"position, width, children\", description: \"Sidebar area (e.g. for menu or extra info)\" },\n { name: \"PageFooter\", type: \"variant, children\", description: \"Footer configuration\" }\n ]\n },\n // --- AUTHENTICATION DEMOS ---\n login: {\n name: \"Login Page\",\n description: \"Showcases the reusable LoginForm component as a full login page example.\",\n example: `<LoginForm />`,\n props: []\n },\n signup: {\n name: \"Signup Page\",\n description: \"Showcases the reusable SignupForm component as a full signup page example.\",\n example: `<SignupForm />`,\n props: []\n },\n shield: {\n name: \"!isAuthenticated Shield\",\n description: \"ProtectedRoute gate which only renders content when authenticated; otherwise shows fallback.\",\n example: `<ProtectedRoute>Protected Content</ProtectedRoute>`,\n props: []\n },\n auth: {\n name: \"Auth System\",\n description: \"Demo of authentication UI and flows.\",\n example: `<AuthShowcase />`,\n props: []\n },\n \"password-reset\": {\n name: \"Password Reset\",\n description: \"Showcases the reusable PasswordResetForm component, allowing users to request a password reset via email.\",\n example: `<PasswordResetForm onReset={email => { ... }} />`,\n props: [\n { name: \"onReset\", type: \"(email: string) => Promise<void> | void\", description: \"Submit reset request callback\" },\n { name: \"isLoading\", type: \"boolean\", description: \"Loading indicator\" },\n { name: \"successMessage\", type: \"string\", description: \"Message displayed on success\" },\n { name: \"errorMessage\", type: \"string\", description: \"Error feedback message\" }\n ],\n },\n chatwidget: {\n name: \"Chat Widget\",\n description: \"A floating AI/Human support chat widget with customizable positions.\",\n example: `<ChatWidget \\n position=\"bottom-right\" \\n title=\"Support\"\\n onSendMessage={(msg) => console.log(msg)}\\n/>`,\n props: [\n { name: \"position\", type: '\\\"bottom-right\\\" | \\\"bottom-left\\\"', default: '\\\"bottom-right\\\"', description: \"Controls horizontal anchoring.\" },\n { name: \"strategy\", type: '\\\"fixed\\\" | \\\"absolute\\\"', default: '\\\"fixed\\\"', description: \"Use fixed for whole page, absolute for container bounds.\" },\n { name: \"title\", type: \"string\", default: '\\\"Support\\\"', description: \"Header title text.\" },\n { name: \"subtitle\", type: \"string\", default: '\\\"We typically reply in a few minutes\\\"', description: \"Header subtitle text.\" },\n { name: \"onSendMessage\", type: \"(message: string) => Promise<void> | void\", description: \"Callback hook when the user sends a message.\" }\n ]\n },\n};\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"componentDocs.js","sources":["../../../src/components/ComponentShowcase/componentDocs.ts"],"sourcesContent":["/**\n * Centralized docs/config for all showcased components:\n * - description, usage example, props table, etc.\n * Used for ComponentShowcase main screen documentation.\n */\nexport const componentDocs = {\n button: {\n name: \"Button\",\n description: \"A versatile button component with multiple variants and sizes.\",\n example: `<Button variant=\"primary\" size=\"md\">\n Click me\n</Button>`,\n props: [\n { name: \"variant\", type: \"string\", default: \"primary\", description: \"Button style variant\" },\n { name: \"size\", type: \"string\", default: \"md\", description: \"Button size\" },\n { name: \"disabled\", type: \"boolean\", default: \"false\", description: \"Disable the button\" }\n ]\n },\n input: {\n name: \"Input\",\n description: \"A flexible input component with validation states and different sizes.\",\n example: `<Input placeholder=\"Enter your email\" />`,\n props: [\n { name: \"variant\", type: \"string\", default: \"default\", description: \"Input variant (default/success/error)\" },\n { name: \"inputSize\", type: \"string\", default: \"md\", description: \"Input size\" },\n { name: \"placeholder\", type: \"string\", default: \"\", description: \"Placeholder text\" }\n ]\n },\n badge: {\n name: \"Badge\",\n description: \"A small tag for statuses or classifications.\",\n example: `<Badge>Default</Badge>`,\n props: [\n { name: \"variant\", type: \"string\", default: \"default\", description: \"Badge style variant\" }\n ]\n },\n card: {\n name: \"Card\",\n description: \"A container element for grouping content.\",\n example: `<Card><CardContent>Example</CardContent></Card>`,\n props: [\n { name: \"children\", type: \"ReactNode\", description: \"Card content\" }\n ]\n },\n textarea: {\n name: \"Textarea\",\n description: \"A multi-line text input component.\",\n example: `<Textarea placeholder=\"Write here...\" />`,\n props: [\n { name: \"rows\", type: \"number\", default: 3, description: \"Number of rows\" }\n ]\n },\n checkbox: {\n name: \"Checkbox\",\n description: \"A standard form checkbox.\",\n example: `<Checkbox checked={true} />`,\n props: [\n { name: \"checked\", type: \"boolean\", description: \"Checked state\" }\n ]\n },\n switch: {\n name: \"Switch\",\n description: \"A boolean toggle control.\",\n example: `<Switch checked={true} />`,\n props: [\n { name: \"checked\", type: \"boolean\", description: \"Checked state\" }\n ]\n },\n avatar: {\n name: \"Avatar\",\n description: \"Displays a user profile image or initials.\",\n example: `<Avatar><AvatarFallback>U</AvatarFallback></Avatar>`,\n props: [\n { name: \"size\", type: \"\\\"sm\\\"|\\\"md\\\"|\\\"lg\\\"\", default: \"md\", description: \"Avatar size\" }\n ]\n },\n alert: {\n name: \"Alert\",\n description: \"Displays messages for important info.\",\n example: `<Alert variant=\"info\"><AlertTitle>Info</AlertTitle></Alert>`,\n props: [\n { name: \"variant\", type: \"string\", default: \"info\", description: \"Alert type\" }\n ]\n },\n toast: {\n name: \"Toast\",\n description: \"Transient notification message overlay.\",\n example: `<Toast />`,\n props: []\n },\n modal: {\n name: \"Modal\",\n description: \"A dialog overlay for user attention.\",\n example: `<Modal open={true} onOpenChange={() => {}} />`,\n props: [\n { name: \"open\", type: \"boolean\", description: \"Show or hide the modal\" }\n ]\n },\n spinner: {\n name: \"Spinner\",\n description: \"Animated indicator for loading states.\",\n example: `<Spinner />`,\n props: []\n },\n skeleton: {\n name: \"Skeleton\",\n description: \"Shimmer placeholder for loading UIs.\",\n example: `<Skeleton className=\"h-6 w-32\" />`,\n props: [\n { name: \"className\", type: \"string\", description: \"Skeleton custom styles\" }\n ]\n },\n statscard: {\n name: \"StatsCard\",\n description: \"Shows key metrics and trends.\",\n example: `<StatsCard title=\"Users\" value=\"2,543\" />`,\n props: [\n { name: \"title\", type: \"string\", description: \"Card title\" },\n { name: \"value\", type: \"string|number\", description: \"Main value\" }\n ]\n },\n tabs: {\n name: \"Tabs\",\n description: \"Navigation between content views.\",\n example: `<Tabs value=\"tab-1\"><TabsList>...</TabsList></Tabs>`,\n props: [\n { name: \"value\", type: \"string\", description: \"Selected tab value\" }\n ]\n },\n sidebar: {\n name: \"Sidebar\",\n description: \"Persistent vertical navigation panel.\",\n example: `<Sidebar menuItems={[]} />`,\n props: []\n },\n navbar: {\n name: \"Navbar\",\n description: \"Top navigation bar for branding and links.\",\n example: `<Navbar>...</Navbar>`,\n props: []\n },\n \"dashboard-layout\": {\n name: \"DashboardLayout\",\n description: \"Layout for dashboards with sidebar and content.\",\n example: `<DashboardLayout>...</DashboardLayout>`,\n props: []\n },\n \"dashboard-header\": {\n name: \"DashboardHeader\",\n description: \"Header for dashboard screens.\",\n example: `<DashboardHeader />`,\n props: []\n },\n \"dashboard-grid\": {\n name: \"DashboardGrid\",\n description: \"Grid container for dashboard widgets.\",\n example: `<DashboardGrid>...</DashboardGrid>`,\n props: []\n },\n datatable: {\n name: \"DataTable\",\n description: \"Advanced table for displaying data collections.\",\n example: `<DataTable columns={[]} dataSource={[]} />`,\n props: []\n },\n \"page-layout\": {\n name: \"Page Layout\",\n description: \"Flexible, semantic layout system for landing pages, products, blogs, and more. Compose with PageHeader, PageHero, PageContent, PageSidebar, and PageFooter for complete responsive UIs.\",\n example: `import { PageLayout, PageHeader, PageContent, PageFooter } from \"@/components/PageLayout\";\n\nfunction Example() {\n return (\n <PageLayout variant=\"default\" maxWidth=\"xl\">\n <PageHeader>\n <nav>\n <span>My App</span>\n </nav>\n </PageHeader>\n <PageContent maxWidth=\"lg\">\n <h1>Welcome!</h1>\n <p>Your content here...</p>\n </PageContent>\n <PageFooter variant=\"simple\">\n <p>© 2024 My App. All rights reserved.</p>\n </PageFooter>\n </PageLayout>\n );\n}`,\n props: [\n { name: \"variant\", type: \"\\\"default\\\"|\\\"centered\\\"|\\\"sidebar\\\"|\\\"landing\\\"|\\\"product\\\"|\\\"blog\\\"\", default: \"\\\"default\\\"\", description: \"Sets page color and layout preset\" },\n { name: \"maxWidth\", type: \"\\\"none\\\"|\\\"sm\\\"|\\\"md\\\"|\\\"lg\\\"|\\\"xl\\\"|\\\"2xl\\\"|\\\"full\\\"\", default: \"\\\"xl\\\"\", description: \"Limits overall page width for content\" },\n { name: \"contentLayout\", type: \"\\\"default\\\"|\\\"centered\\\"|\\\"sidebar\\\"|\\\"fullWidth\\\"\", default: \"\\\"default\\\"\", description: \"Layout mode for PageLayoutContent\" },\n { name: \"contentSpacing\", type: \"\\\"none\\\"|\\\"sm\\\"|\\\"md\\\"|\\\"lg\\\"|\\\"xl\\\"\", default: \"\\\"md\\\"\", description: \"Vertical padding spacing\" },\n { name: \"children\", type: \"ReactNode\", description: \"Page structure (usually header, content, sidebar, footer)\" },\n // Optionally highlight subcomponent props\n { name: \"PageHeader\", type: \"Sticky/Transparent, children\", description: \"Header settings for navigation bar\" },\n { name: \"PageHero\", type: \"fullHeight, backgroundImage, overlay, children\", description: \"Hero section for landing visuals\" },\n { name: \"PageContent\", type: \"maxWidth, children\", description: \"Content area for main body text/components\" },\n { name: \"PageSidebar\", type: \"position, width, children\", description: \"Sidebar area (e.g. for menu or extra info)\" },\n { name: \"PageFooter\", type: \"variant, children\", description: \"Footer configuration\" }\n ]\n },\n // --- AUTHENTICATION DEMOS ---\n login: {\n name: \"Login Page\",\n description: \"Showcases the reusable LoginForm component as a full login page example.\",\n example: `<LoginForm />`,\n props: []\n },\n signup: {\n name: \"Signup Page\",\n description: \"Showcases the reusable SignupForm component as a full signup page example.\",\n example: `<SignupForm />`,\n props: []\n },\n shield: {\n name: \"!isAuthenticated Shield\",\n description: \"ProtectedRoute gate which only renders content when authenticated; otherwise shows fallback.\",\n example: `<ProtectedRoute>Protected Content</ProtectedRoute>`,\n props: []\n },\n auth: {\n name: \"Auth System\",\n description: \"Demo of authentication UI and flows.\",\n example: `<AuthShowcase />`,\n props: []\n },\n \"password-reset\": {\n name: \"Password Reset\",\n description: \"Showcases the reusable PasswordResetForm component, allowing users to request a password reset via email.\",\n example: `<PasswordResetForm onReset={email => { ... }} />`,\n props: [\n { name: \"onReset\", type: \"(email: string) => Promise<void> | void\", description: \"Submit reset request callback\" },\n { name: \"isLoading\", type: \"boolean\", description: \"Loading indicator\" },\n { name: \"successMessage\", type: \"string\", description: \"Message displayed on success\" },\n { name: \"errorMessage\", type: \"string\", description: \"Error feedback message\" }\n ],\n },\n chatwidget: {\n name: \"Chat Widget\",\n description: \"A floating AI/Human support chat widget with customizable positions.\",\n example: `<ChatWidget \\n position=\"bottom-right\" \\n title=\"Support\"\\n onSendMessage={(msg) => console.log(msg)}\\n/>`,\n props: [\n { name: \"position\", type: '\\\"bottom-right\\\" | \\\"bottom-left\\\"', default: '\\\"bottom-right\\\"', description: \"Controls horizontal anchoring.\" },\n { name: \"strategy\", type: '\\\"fixed\\\" | \\\"absolute\\\"', default: '\\\"fixed\\\"', description: \"Use fixed for whole page, absolute for container bounds.\" },\n { name: \"title\", type: \"string\", default: '\\\"Support\\\"', description: \"Header title text.\" },\n { name: \"subtitle\", type: \"string\", default: '\\\"We typically reply in a few minutes\\\"', description: \"Header subtitle text.\" },\n { name: \"onSendMessage\", type: \"(message: string) => Promise<void> | void\", description: \"Callback hook when the user sends a message.\" }\n ]\n },\n \"email-templates\": {\n name: \"Email Templates\",\n description: \"A comprehensive suite of 100+ React Email templates spanning marketing, billing, auth, and internal operations.\",\n example: `import { WelcomeEmail, renderEmailParams } from \"@/components/Email\";\n\n// In your Next.js API route:\nconst { html, text } = await renderEmailParams(<WelcomeEmail userName=\"Alex\" />);\n\nawait resend.emails.send({\n from: 'hello@beyondcorp.com',\n to: 'user@example.com',\n subject: 'Welcome!',\n html,\n text\n});`,\n props: []\n }\n};\n"],"names":[],"mappings":"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"}
|
|
@@ -26,6 +26,7 @@ import { ProtectedRouteExample } from '../Auth/ProtectedRoute.example.js';
|
|
|
26
26
|
import { PasswordResetFormExample } from '../Auth/ForgotPasswordForm.example.js';
|
|
27
27
|
import { PageLayoutShowcase } from '../PageLayout/PageLayoutShowcase.js';
|
|
28
28
|
import { ChatWidgetExample } from '../ChatWidget/ChatWidget.example.js';
|
|
29
|
+
import { EmailShowcase } from '../Email/EmailShowcase.js';
|
|
29
30
|
|
|
30
31
|
/**
|
|
31
32
|
* Showcase registry maps component ids to their example/demo modules.
|
|
@@ -60,7 +61,8 @@ const showcaseRegistry = {
|
|
|
60
61
|
"password-reset": PasswordResetFormExample,
|
|
61
62
|
shield: ProtectedRouteExample,
|
|
62
63
|
"page-layout": PageLayoutShowcase,
|
|
63
|
-
chatwidget: ChatWidgetExample
|
|
64
|
+
chatwidget: ChatWidgetExample,
|
|
65
|
+
"email-templates": EmailShowcase
|
|
64
66
|
// Extend with other demos as needed
|
|
65
67
|
};
|
|
66
68
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"showcaseRegistry.js","sources":["../../../src/components/ComponentShowcase/showcaseRegistry.ts"],"sourcesContent":["/**\n * Showcase registry maps component ids to their example/demo modules.\n * Usage: import { showcaseRegistry } from './showcaseRegistry';\n * Then: const Demo = showcaseRegistry['button'];\n */\nimport { ButtonExample } from '../Button/Button.example';\nimport { InputExample } from '../Input/Input.example';\nimport { TextareaExample } from '../Textarea/Textarea.example';\nimport { CheckboxExample } from '../Checkbox/Checkbox.example';\nimport { SwitchExample } from '../Switch/Switch.example';\nimport { CardExample } from '../Card/Card.example';\nimport { BadgeExample } from '../Badge/Badge.example';\nimport { AvatarExample } from '../Avatar/Avatar.example';\nimport { AlertExample } from '../Alert/Alert.example';\nimport { ToastExample } from '../Toast/Toast.example';\nimport { ModalExample } from '../Modal/Modal.example';\nimport { SpinnerExample } from '../Spinner/Spinner.example';\nimport { SkeletonExample } from '../Skeleton/Skeleton.example';\nimport { StatsCardExample } from '../StatsCard/StatsCard.example';\nimport { TabsExample } from '../Tabs/Tabs.example';\nimport { SidebarExample } from '../Sidebar/Sidebar.example';\nimport { NavbarExample } from '../Navbar/Navbar.example';\nimport { DashboardLayoutExample } from '../DashboardLayout/DashboardLayout.example';\nimport { DashboardHeaderExample } from '../DashboardHeader/DashboardHeader.example';\nimport { DashboardGridExample } from '../DashboardGrid/DashboardGrid.example';\nimport { DataTableShowcase } from '../DataTable/DataTableShowcase';\nimport { AuthShowcase } from '../Auth/AuthShowcase';\nimport { LoginFormExample } from \"../Auth/LoginForm.example\";\nimport { SignupFormExample } from \"../Auth/SignupForm.example\";\nimport { ProtectedRouteExample } from \"../Auth/ProtectedRoute.example\";\nimport { PasswordResetFormExample } from \"../Auth/ForgotPasswordForm.example\";\nimport { PageLayoutShowcase } from '../PageLayout/PageLayoutShowcase';\nimport { ChatWidgetExample } from '../ChatWidget/ChatWidget.example';\n\n\n\nexport const showcaseRegistry: Record<string, React.FC> = {\n button: ButtonExample,\n input: InputExample,\n textarea: TextareaExample,\n checkbox: CheckboxExample,\n switch: SwitchExample,\n card: CardExample,\n badge: BadgeExample,\n avatar: AvatarExample,\n alert: AlertExample,\n toast: ToastExample,\n modal: ModalExample,\n spinner: SpinnerExample,\n skeleton: SkeletonExample,\n statscard: StatsCardExample,\n tabs: TabsExample,\n sidebar: SidebarExample,\n navbar: NavbarExample,\n \"dashboard-layout\": DashboardLayoutExample,\n \"dashboard-header\": DashboardHeaderExample,\n \"dashboard-grid\": DashboardGridExample,\n datatable: DataTableShowcase,\n auth: AuthShowcase,\n login: LoginFormExample,\n signup: SignupFormExample,\n \"password-reset\": PasswordResetFormExample,\n shield: ProtectedRouteExample,\n \"page-layout\": PageLayoutShowcase,\n chatwidget: ChatWidgetExample\n // Extend with other demos as needed\n};"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"showcaseRegistry.js","sources":["../../../src/components/ComponentShowcase/showcaseRegistry.ts"],"sourcesContent":["/**\n * Showcase registry maps component ids to their example/demo modules.\n * Usage: import { showcaseRegistry } from './showcaseRegistry';\n * Then: const Demo = showcaseRegistry['button'];\n */\nimport { ButtonExample } from '../Button/Button.example';\nimport { InputExample } from '../Input/Input.example';\nimport { TextareaExample } from '../Textarea/Textarea.example';\nimport { CheckboxExample } from '../Checkbox/Checkbox.example';\nimport { SwitchExample } from '../Switch/Switch.example';\nimport { CardExample } from '../Card/Card.example';\nimport { BadgeExample } from '../Badge/Badge.example';\nimport { AvatarExample } from '../Avatar/Avatar.example';\nimport { AlertExample } from '../Alert/Alert.example';\nimport { ToastExample } from '../Toast/Toast.example';\nimport { ModalExample } from '../Modal/Modal.example';\nimport { SpinnerExample } from '../Spinner/Spinner.example';\nimport { SkeletonExample } from '../Skeleton/Skeleton.example';\nimport { StatsCardExample } from '../StatsCard/StatsCard.example';\nimport { TabsExample } from '../Tabs/Tabs.example';\nimport { SidebarExample } from '../Sidebar/Sidebar.example';\nimport { NavbarExample } from '../Navbar/Navbar.example';\nimport { DashboardLayoutExample } from '../DashboardLayout/DashboardLayout.example';\nimport { DashboardHeaderExample } from '../DashboardHeader/DashboardHeader.example';\nimport { DashboardGridExample } from '../DashboardGrid/DashboardGrid.example';\nimport { DataTableShowcase } from '../DataTable/DataTableShowcase';\nimport { AuthShowcase } from '../Auth/AuthShowcase';\nimport { LoginFormExample } from \"../Auth/LoginForm.example\";\nimport { SignupFormExample } from \"../Auth/SignupForm.example\";\nimport { ProtectedRouteExample } from \"../Auth/ProtectedRoute.example\";\nimport { PasswordResetFormExample } from \"../Auth/ForgotPasswordForm.example\";\nimport { PageLayoutShowcase } from '../PageLayout/PageLayoutShowcase';\nimport { ChatWidgetExample } from '../ChatWidget/ChatWidget.example';\nimport { EmailShowcase } from '../Email/EmailShowcase';\n\n\n\nexport const showcaseRegistry: Record<string, React.FC> = {\n button: ButtonExample,\n input: InputExample,\n textarea: TextareaExample,\n checkbox: CheckboxExample,\n switch: SwitchExample,\n card: CardExample,\n badge: BadgeExample,\n avatar: AvatarExample,\n alert: AlertExample,\n toast: ToastExample,\n modal: ModalExample,\n spinner: SpinnerExample,\n skeleton: SkeletonExample,\n statscard: StatsCardExample,\n tabs: TabsExample,\n sidebar: SidebarExample,\n navbar: NavbarExample,\n \"dashboard-layout\": DashboardLayoutExample,\n \"dashboard-header\": DashboardHeaderExample,\n \"dashboard-grid\": DashboardGridExample,\n datatable: DataTableShowcase,\n auth: AuthShowcase,\n login: LoginFormExample,\n signup: SignupFormExample,\n \"password-reset\": PasswordResetFormExample,\n shield: ProtectedRouteExample,\n \"page-layout\": PageLayoutShowcase,\n chatwidget: ChatWidgetExample,\n \"email-templates\": EmailShowcase\n // Extend with other demos as needed\n};"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;;;AAIG;AAiCI,MAAM,gBAAgB,GAA6B;AACxD,IAAA,MAAM,EAAE,aAAa;AACrB,IAAA,KAAK,EAAE,YAAY;AACnB,IAAA,QAAQ,EAAE,eAAe;AACzB,IAAA,QAAQ,EAAE,eAAe;AACzB,IAAA,MAAM,EAAE,aAAa;AACrB,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,KAAK,EAAE,YAAY;AACnB,IAAA,MAAM,EAAE,aAAa;AACrB,IAAA,KAAK,EAAE,YAAY;AACnB,IAAA,KAAK,EAAE,YAAY;AACnB,IAAA,KAAK,EAAE,YAAY;AACnB,IAAA,OAAO,EAAE,cAAc;AACvB,IAAA,QAAQ,EAAE,eAAe;AACzB,IAAA,SAAS,EAAE,gBAAgB;AAC3B,IAAA,IAAI,EAAE,WAAW;AACjB,IAAA,OAAO,EAAE,cAAc;AACvB,IAAA,MAAM,EAAE,aAAa;AACrB,IAAA,kBAAkB,EAAE,sBAAsB;AAC1C,IAAA,kBAAkB,EAAE,sBAAsB;AAC1C,IAAA,gBAAgB,EAAE,oBAAoB;AACtC,IAAA,SAAS,EAAE,iBAAiB;AAC5B,IAAA,IAAI,EAAE,YAAY;AAClB,IAAA,KAAK,EAAE,gBAAgB;AACvB,IAAA,MAAM,EAAE,iBAAiB;AACzB,IAAA,gBAAgB,EAAE,wBAAwB;AAC1C,IAAA,MAAM,EAAE,qBAAqB;AAC7B,IAAA,aAAa,EAAE,kBAAkB;AACjC,IAAA,UAAU,EAAE,iBAAiB;AAC7B,IAAA,iBAAiB,EAAE;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const EmailShowcase: () => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import React__default, { useMemo, useState } from 'react';
|
|
3
|
+
import { EmailPreviewer } from './components/EmailPreviewer.js';
|
|
4
|
+
import * as index from './templates/index.js';
|
|
5
|
+
|
|
6
|
+
// We map known template names to explicit categories.
|
|
7
|
+
// Any missed/new exports automatically fall into an "Uncategorized" section!
|
|
8
|
+
const CATEGORY_MAP = {
|
|
9
|
+
"Marketing: Newsletters": ["WeeklyNewsletter", "MonthlyDigest", "CuratedIndustryNews"],
|
|
10
|
+
"Marketing: Blog": ["NewBlogPost", "BlogSeries", "BestOfRoundup"],
|
|
11
|
+
"Marketing: Lead Nurturing": ["LeadMagnetDelivery", "WebinarConfirmation", "WebinarReminder", "WebinarFollowup", "DripCampaignDay1", "DripCampaignComplete", "CaseStudyDelivery"],
|
|
12
|
+
"Marketing: Promotional": ["AbandonedCart", "FlashSale", "BrowseAbandonment", "PriceDropAlert", "BackInStock", "SeasonalCampaign", "BirthdayOffer", "MilestoneDiscount"],
|
|
13
|
+
"Marketing: Events": ["EventAnnouncement", "EarlyBirdReminder", "ScheduleReleased", "VIPInvite", "PostEventThankYou", "ConferenceSeries"],
|
|
14
|
+
"Marketing: Re-engagement": ["WeMissYou30Day", "ComeBack60Day", "LastChance90Day", "ProductUpdateReengagement"],
|
|
15
|
+
"Marketing: Social": ["SocialProof", "NewFollowerWelcome", "ShareYourStory", "UserSpotlight", "CommunityMilestone"],
|
|
16
|
+
"Marketing: Surveys": ["NPSSurvey", "ExitSurvey", "CSATSurvey", "ProductFeedback", "BetaFeedback"],
|
|
17
|
+
"Marketing: Affiliate": ["AffiliateInvite", "AffiliateWelcome", "AffiliatePayout", "AffiliateTopPerformer", "PartnerComarketing"],
|
|
18
|
+
"Marketing: Content": ["NewGuideEbook", "ToolTemplateDelivery", "InfographicEmail", "PodcastEpisode", "YouTubeNotification"],
|
|
19
|
+
"Sales": ["ColdOutreach", "FollowUpEmail", "ScheduleDemo", "SendProposal", "ProposalAccepted", "ProjectTermination", "ClientWinBack", "ClientReferenceRequest"],
|
|
20
|
+
"Legal": ["PrivacyPolicyUpdate", "TermsOfServiceUpdate", "DPANotice", "DMCANotice", "GDPRCompliance"],
|
|
21
|
+
"Internal: HR": ["NewHireAnnouncement", "BirthdayAnniversary", "EmployeeFarewell", "PolicyUpdate", "ExitInterviewRequest"],
|
|
22
|
+
"Internal: IT": ["ITOutageReport", "PasswordRotationReminder", "AppAccessGranted"],
|
|
23
|
+
"Internal: Comms": ["LeadershipUpdate", "MeetingRecap", "CompanyEventsCalendar"],
|
|
24
|
+
"Billing": ["InvoiceEmail", "PaymentFailedEmail", "SubscriptionConfirmation", "SubscriptionCancelled", "TrialEndingEmail", "CreditCardExpiring", "PaymentReceipt", "OverduePaymentNotice"],
|
|
25
|
+
"Authentication": ["WelcomeEmail", "ConfirmEmail", "MagicLinkEmail", "ResetPasswordEmail", "EmailChangeVerification", "TwoFactorCodeEmail"],
|
|
26
|
+
"Support": ["TicketCreatedEmail", "TicketReplyEmail", "TicketResolvedEmail", "SupportFeedbackRequest"],
|
|
27
|
+
"Engagement": ["WeeklyDigest", "FeatureAnnouncement", "MilestoneEmail", "InactivityWarning", "TipOfWeek", "ProductChangelog"],
|
|
28
|
+
"Growth": ["ReferralInvite", "ReferralReward", "ReferralConverted", "WaitlistWelcome", "SocialSharePrompt"],
|
|
29
|
+
"Security": ["NewLoginAlert", "PolicyUpdateEmail", "AccountDeletedConfirmation", "DataExportReady", "ApiKeyCreated"],
|
|
30
|
+
"System": ["MaintenanceNotice", "IncidentReport", "StatusPageUpdate"]
|
|
31
|
+
};
|
|
32
|
+
const EmailShowcase = () => {
|
|
33
|
+
const { categories, flatTemplates, defaultTemplateId } = useMemo(() => {
|
|
34
|
+
const parsedCategories = {};
|
|
35
|
+
const flat = {};
|
|
36
|
+
let firstId = '';
|
|
37
|
+
// 1. Process known categories
|
|
38
|
+
Object.entries(CATEGORY_MAP).forEach(([categoryName, componentNames]) => {
|
|
39
|
+
componentNames.forEach(compName => {
|
|
40
|
+
const Component = index[compName];
|
|
41
|
+
if (Component && typeof Component === 'function') {
|
|
42
|
+
if (!parsedCategories[categoryName])
|
|
43
|
+
parsedCategories[categoryName] = {};
|
|
44
|
+
// Automatically add spaces before Capital letters (e.g., WeeklyNewsletter -> Weekly Newsletter)
|
|
45
|
+
const formattedName = compName.replace(/([A-Z])/g, ' $1').trim();
|
|
46
|
+
const element = jsx(Component, {});
|
|
47
|
+
parsedCategories[categoryName][compName] = { name: formattedName, component: element };
|
|
48
|
+
flat[compName] = element;
|
|
49
|
+
if (!firstId)
|
|
50
|
+
firstId = compName;
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
});
|
|
54
|
+
// 2. Discover any newly added exports (Uncategorized Fallback)
|
|
55
|
+
Object.entries(index).forEach(([compName, Component]) => {
|
|
56
|
+
if (compName === 'default' ||
|
|
57
|
+
flat[compName] ||
|
|
58
|
+
typeof Component !== 'function' ||
|
|
59
|
+
/^[a-z]/.test(compName) // Ignore utility functions like renderEmailParams
|
|
60
|
+
) {
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
const categoryName = "Uncategorized";
|
|
64
|
+
if (!parsedCategories[categoryName])
|
|
65
|
+
parsedCategories[categoryName] = {};
|
|
66
|
+
const formattedName = compName.replace(/([A-Z])/g, ' $1').trim();
|
|
67
|
+
const element = jsx(Component, {});
|
|
68
|
+
parsedCategories[categoryName][compName] = { name: formattedName, component: element };
|
|
69
|
+
flat[compName] = element;
|
|
70
|
+
if (!firstId)
|
|
71
|
+
firstId = compName;
|
|
72
|
+
});
|
|
73
|
+
return { categories: parsedCategories, flatTemplates: flat, defaultTemplateId: firstId };
|
|
74
|
+
}, []);
|
|
75
|
+
const [activeTemplate, setActiveTemplate] = useState(defaultTemplateId);
|
|
76
|
+
// Keep state in sync if defaultTemplateId changes when component mounts
|
|
77
|
+
React__default.useEffect(() => {
|
|
78
|
+
if (!activeTemplate && defaultTemplateId)
|
|
79
|
+
setActiveTemplate(defaultTemplateId);
|
|
80
|
+
}, [defaultTemplateId, activeTemplate]);
|
|
81
|
+
return (jsxs("div", { className: "space-y-6", children: [jsxs("div", { className: "flex flex-col sm:flex-row sm:items-center gap-4 mb-4", children: [jsx("label", { className: "font-medium text-gray-700 dark:text-gray-300", children: "Select Template:" }), jsx("select", { className: "border border-gray-300 dark:border-gray-700 bg-white dark:bg-gray-900 rounded-md px-3 py-2 text-sm text-gray-900 dark:text-white min-w-[250px] focus:outline-none focus:ring-2 focus:ring-primary-500", value: activeTemplate, onChange: (e) => setActiveTemplate(e.target.value), children: Object.entries(categories).map(([categoryName, templates]) => (jsx("optgroup", { label: categoryName, children: Object.entries(templates).map(([id, data]) => (jsx("option", { value: id, children: data.name }, id))) }, categoryName))) })] }), jsx("div", { className: "w-full bg-white dark:bg-gray-900 rounded-lg shadow-sm border border-gray-200 dark:border-gray-800", children: jsx(EmailPreviewer, { component: flatTemplates[activeTemplate] || jsx("div", { className: "p-10 text-center text-gray-500", children: "No template selected" }) }) })] }));
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
export { EmailShowcase };
|
|
85
|
+
//# sourceMappingURL=EmailShowcase.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmailShowcase.js","sources":["../../../src/components/Email/EmailShowcase.tsx"],"sourcesContent":["import React, { useState, useMemo } from 'react';\nimport { EmailPreviewer } from './components';\nimport * as AllTemplates from './templates';\n\n// We map known template names to explicit categories.\n// Any missed/new exports automatically fall into an \"Uncategorized\" section!\nconst CATEGORY_MAP: Record<string, string[]> = {\n \"Marketing: Newsletters\": [\"WeeklyNewsletter\", \"MonthlyDigest\", \"CuratedIndustryNews\"],\n \"Marketing: Blog\": [\"NewBlogPost\", \"BlogSeries\", \"BestOfRoundup\"],\n \"Marketing: Lead Nurturing\": [\"LeadMagnetDelivery\", \"WebinarConfirmation\", \"WebinarReminder\", \"WebinarFollowup\", \"DripCampaignDay1\", \"DripCampaignComplete\", \"CaseStudyDelivery\"],\n \"Marketing: Promotional\": [\"AbandonedCart\", \"FlashSale\", \"BrowseAbandonment\", \"PriceDropAlert\", \"BackInStock\", \"SeasonalCampaign\", \"BirthdayOffer\", \"MilestoneDiscount\"],\n \"Marketing: Events\": [\"EventAnnouncement\", \"EarlyBirdReminder\", \"ScheduleReleased\", \"VIPInvite\", \"PostEventThankYou\", \"ConferenceSeries\"],\n \"Marketing: Re-engagement\": [\"WeMissYou30Day\", \"ComeBack60Day\", \"LastChance90Day\", \"ProductUpdateReengagement\"],\n \"Marketing: Social\": [\"SocialProof\", \"NewFollowerWelcome\", \"ShareYourStory\", \"UserSpotlight\", \"CommunityMilestone\"],\n \"Marketing: Surveys\": [\"NPSSurvey\", \"ExitSurvey\", \"CSATSurvey\", \"ProductFeedback\", \"BetaFeedback\"],\n \"Marketing: Affiliate\": [\"AffiliateInvite\", \"AffiliateWelcome\", \"AffiliatePayout\", \"AffiliateTopPerformer\", \"PartnerComarketing\"],\n \"Marketing: Content\": [\"NewGuideEbook\", \"ToolTemplateDelivery\", \"InfographicEmail\", \"PodcastEpisode\", \"YouTubeNotification\"],\n \"Sales\": [\"ColdOutreach\", \"FollowUpEmail\", \"ScheduleDemo\", \"SendProposal\", \"ProposalAccepted\", \"ProjectTermination\", \"ClientWinBack\", \"ClientReferenceRequest\"],\n \"Legal\": [\"PrivacyPolicyUpdate\", \"TermsOfServiceUpdate\", \"DPANotice\", \"DMCANotice\", \"GDPRCompliance\"],\n \"Internal: HR\": [\"NewHireAnnouncement\", \"BirthdayAnniversary\", \"EmployeeFarewell\", \"PolicyUpdate\", \"ExitInterviewRequest\"],\n \"Internal: IT\": [\"ITOutageReport\", \"PasswordRotationReminder\", \"AppAccessGranted\"],\n \"Internal: Comms\": [\"LeadershipUpdate\", \"MeetingRecap\", \"CompanyEventsCalendar\"],\n \"Billing\": [\"InvoiceEmail\", \"PaymentFailedEmail\", \"SubscriptionConfirmation\", \"SubscriptionCancelled\", \"TrialEndingEmail\", \"CreditCardExpiring\", \"PaymentReceipt\", \"OverduePaymentNotice\"],\n \"Authentication\": [\"WelcomeEmail\", \"ConfirmEmail\", \"MagicLinkEmail\", \"ResetPasswordEmail\", \"EmailChangeVerification\", \"TwoFactorCodeEmail\"],\n \"Support\": [\"TicketCreatedEmail\", \"TicketReplyEmail\", \"TicketResolvedEmail\", \"SupportFeedbackRequest\"],\n \"Engagement\": [\"WeeklyDigest\", \"FeatureAnnouncement\", \"MilestoneEmail\", \"InactivityWarning\", \"TipOfWeek\", \"ProductChangelog\"],\n \"Growth\": [\"ReferralInvite\", \"ReferralReward\", \"ReferralConverted\", \"WaitlistWelcome\", \"SocialSharePrompt\"],\n \"Security\": [\"NewLoginAlert\", \"PolicyUpdateEmail\", \"AccountDeletedConfirmation\", \"DataExportReady\", \"ApiKeyCreated\"],\n \"System\": [\"MaintenanceNotice\", \"IncidentReport\", \"StatusPageUpdate\"]\n};\n\nexport const EmailShowcase = () => {\n const { categories, flatTemplates, defaultTemplateId } = useMemo(() => {\n const parsedCategories: Record<string, Record<string, { name: string; component: React.ReactElement }>> = {};\n const flat: Record<string, React.ReactElement> = {};\n let firstId = '';\n\n // 1. Process known categories\n Object.entries(CATEGORY_MAP).forEach(([categoryName, componentNames]) => {\n componentNames.forEach(compName => {\n const Component = (AllTemplates as any)[compName];\n if (Component && typeof Component === 'function') {\n if (!parsedCategories[categoryName]) parsedCategories[categoryName] = {};\n \n // Automatically add spaces before Capital letters (e.g., WeeklyNewsletter -> Weekly Newsletter)\n const formattedName = compName.replace(/([A-Z])/g, ' $1').trim();\n const element = <Component />;\n \n parsedCategories[categoryName][compName] = { name: formattedName, component: element };\n flat[compName] = element;\n if (!firstId) firstId = compName;\n }\n });\n });\n\n // 2. Discover any newly added exports (Uncategorized Fallback)\n Object.entries(AllTemplates).forEach(([compName, Component]) => {\n if (\n compName === 'default' || \n flat[compName] || \n typeof Component !== 'function' ||\n /^[a-z]/.test(compName) // Ignore utility functions like renderEmailParams\n ) {\n return;\n }\n \n const categoryName = \"Uncategorized\";\n if (!parsedCategories[categoryName]) parsedCategories[categoryName] = {};\n \n const formattedName = compName.replace(/([A-Z])/g, ' $1').trim();\n const element = <Component />;\n \n parsedCategories[categoryName][compName] = { name: formattedName, component: element };\n flat[compName] = element;\n if (!firstId) firstId = compName;\n });\n\n return { categories: parsedCategories, flatTemplates: flat, defaultTemplateId: firstId };\n }, []);\n\n const [activeTemplate, setActiveTemplate] = useState(defaultTemplateId);\n\n // Keep state in sync if defaultTemplateId changes when component mounts\n React.useEffect(() => {\n if (!activeTemplate && defaultTemplateId) setActiveTemplate(defaultTemplateId);\n }, [defaultTemplateId, activeTemplate]);\n\n return (\n <div className=\"space-y-6\">\n <div className=\"flex flex-col sm:flex-row sm:items-center gap-4 mb-4\">\n <label className=\"font-medium text-gray-700 dark:text-gray-300\">Select Template:</label>\n <select \n className=\"border border-gray-300 dark:border-gray-700 bg-white dark:bg-gray-900 rounded-md px-3 py-2 text-sm text-gray-900 dark:text-white min-w-[250px] focus:outline-none focus:ring-2 focus:ring-primary-500\"\n value={activeTemplate}\n onChange={(e) => setActiveTemplate(e.target.value)}\n >\n {Object.entries(categories).map(([categoryName, templates]) => (\n <optgroup key={categoryName} label={categoryName}>\n {Object.entries(templates).map(([id, data]) => (\n <option key={id} value={id}>{data.name}</option>\n ))}\n </optgroup>\n ))}\n </select>\n </div>\n\n <div className=\"w-full bg-white dark:bg-gray-900 rounded-lg shadow-sm border border-gray-200 dark:border-gray-800\">\n <EmailPreviewer component={flatTemplates[activeTemplate] || <div className=\"p-10 text-center text-gray-500\">No template selected</div>} />\n </div>\n </div>\n );\n};"],"names":["AllTemplates","_jsx","React","_jsxs"],"mappings":"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"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { Button } from '../../../node_modules/@react-email/button/dist/index.js';
|
|
3
|
+
|
|
4
|
+
const EmailButton = ({ children, href }) => (jsx(Button, { href: href, className: "bg-blue-600 rounded text-white text-[15px] font-semibold no-underline text-center px-6 py-3 inline-block", children: children }));
|
|
5
|
+
|
|
6
|
+
export { EmailButton };
|
|
7
|
+
//# sourceMappingURL=EmailButton.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmailButton.js","sources":["../../../../src/components/Email/components/EmailButton.tsx"],"sourcesContent":["import React from 'react';\nimport { Button } from '@react-email/components';\n\nexport const EmailButton = ({ children, href }: { children: React.ReactNode; href: string }) => (\n <Button \n href={href}\n className=\"bg-blue-600 rounded text-white text-[15px] font-semibold no-underline text-center px-6 py-3 inline-block\"\n >\n {children}\n </Button>\n);"],"names":["_jsx"],"mappings":";;;AAGO,MAAM,WAAW,GAAG,CAAC,EAAE,QAAQ,EAAE,IAAI,EAA+C,MACzFA,GAAA,CAAC,MAAM,EAAA,EACL,IAAI,EAAE,IAAI,EACV,SAAS,EAAC,0GAA0G,EAAA,QAAA,EAEnH,QAAQ,EAAA,CACF;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const EmailDivider: () => import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { Hr } from '../../../node_modules/@react-email/hr/dist/index.js';
|
|
3
|
+
|
|
4
|
+
const EmailDivider = () => (jsx(Hr, { className: "border-gray-200 dark:border-gray-700 my-6" }));
|
|
5
|
+
|
|
6
|
+
export { EmailDivider };
|
|
7
|
+
//# sourceMappingURL=EmailDivider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmailDivider.js","sources":["../../../../src/components/Email/components/EmailDivider.tsx"],"sourcesContent":["import React from 'react';\nimport { Hr } from '@react-email/components';\n\nexport const EmailDivider = () => (\n <Hr className=\"border-gray-200 dark:border-gray-700 my-6\" />\n);"],"names":["_jsx"],"mappings":";;;AAGO,MAAM,YAAY,GAAG,OAC1BA,GAAA,CAAC,EAAE,IAAC,SAAS,EAAC,2CAA2C,EAAA,CAAG;;;;"}
|