@ugurdemirel/landcraft 0.1.9 → 0.1.11
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/dist/cjs/components/Badge.cjs +2 -0
- package/dist/cjs/components/Badge.cjs.map +1 -0
- package/dist/cjs/components/Blog/BlogCard.cjs +2 -0
- package/dist/cjs/components/Blog/BlogCard.cjs.map +1 -0
- package/dist/cjs/components/Blog/BlogSection.cjs +2 -0
- package/dist/cjs/components/Blog/BlogSection.cjs.map +1 -0
- package/dist/cjs/components/Blog/parts.cjs +2 -0
- package/dist/cjs/components/Blog/parts.cjs.map +1 -0
- package/dist/cjs/components/Blog/variants/Card.cjs +2 -0
- package/dist/cjs/components/Blog/variants/Card.cjs.map +1 -0
- package/dist/cjs/components/Blog/variants/Row.cjs +2 -0
- package/dist/cjs/components/Blog/variants/Row.cjs.map +1 -0
- package/dist/cjs/components/Button.cjs +2 -0
- package/dist/cjs/components/Button.cjs.map +1 -0
- package/dist/cjs/components/CTA/CTA.cjs +2 -0
- package/dist/cjs/components/CTA/CTA.cjs.map +1 -0
- package/dist/cjs/components/CTA/parts.cjs +2 -0
- package/dist/cjs/components/CTA/parts.cjs.map +1 -0
- package/dist/cjs/components/CTA/variants/Inverse.cjs +3 -0
- package/dist/cjs/components/CTA/variants/Inverse.cjs.map +1 -0
- package/dist/cjs/components/CTA/variants/Panel.cjs +3 -0
- package/dist/cjs/components/CTA/variants/Panel.cjs.map +1 -0
- package/dist/cjs/components/CTA/variants/Surface.cjs +2 -0
- package/dist/cjs/components/CTA/variants/Surface.cjs.map +1 -0
- package/dist/cjs/components/Card.cjs +2 -0
- package/dist/cjs/components/Card.cjs.map +1 -0
- package/dist/cjs/components/Container.cjs +2 -0
- package/dist/cjs/components/Container.cjs.map +1 -0
- package/dist/cjs/components/FAQ/FAQ.cjs +2 -0
- package/dist/cjs/components/FAQ/FAQ.cjs.map +1 -0
- package/dist/cjs/components/FAQ/parts.cjs +3 -0
- package/dist/cjs/components/FAQ/parts.cjs.map +1 -0
- package/dist/cjs/components/FAQ/variants/Accordion.cjs +3 -0
- package/dist/cjs/components/FAQ/variants/Accordion.cjs.map +1 -0
- package/dist/cjs/components/FAQ/variants/Cards.cjs +2 -0
- package/dist/cjs/components/FAQ/variants/Cards.cjs.map +1 -0
- package/dist/cjs/components/FAQ/variants/Split.cjs +2 -0
- package/dist/cjs/components/FAQ/variants/Split.cjs.map +1 -0
- package/dist/cjs/components/Features/FeatureCard.cjs +2 -0
- package/dist/cjs/components/Features/FeatureCard.cjs.map +1 -0
- package/dist/cjs/components/Features/FeatureGrid.cjs +2 -0
- package/dist/cjs/components/Features/FeatureGrid.cjs.map +1 -0
- package/dist/cjs/components/Features/parts.cjs +2 -0
- package/dist/cjs/components/Features/parts.cjs.map +1 -0
- package/dist/cjs/components/Features/variants/Bento.cjs +2 -0
- package/dist/cjs/components/Features/variants/Bento.cjs.map +1 -0
- package/dist/cjs/components/Features/variants/Columns.cjs +2 -0
- package/dist/cjs/components/Features/variants/Columns.cjs.map +1 -0
- package/dist/cjs/components/Features/variants/EditorialRows.cjs +2 -0
- package/dist/cjs/components/Features/variants/EditorialRows.cjs.map +1 -0
- package/dist/cjs/components/Footer/Footer.cjs +2 -0
- package/dist/cjs/components/Footer/Footer.cjs.map +1 -0
- package/dist/cjs/components/Footer/parts.cjs +2 -0
- package/dist/cjs/components/Footer/parts.cjs.map +1 -0
- package/dist/cjs/components/Footer/variants/Classic.cjs +2 -0
- package/dist/cjs/components/Footer/variants/Classic.cjs.map +1 -0
- package/dist/cjs/components/Footer/variants/Editorial.cjs +2 -0
- package/dist/cjs/components/Footer/variants/Editorial.cjs.map +1 -0
- package/dist/cjs/components/Footer/variants/Minimal.cjs +2 -0
- package/dist/cjs/components/Footer/variants/Minimal.cjs.map +1 -0
- package/dist/cjs/components/Hero/Hero.cjs +2 -0
- package/dist/cjs/components/Hero/Hero.cjs.map +1 -0
- package/dist/cjs/components/Hero/parts.cjs +2 -0
- package/dist/cjs/components/Hero/parts.cjs.map +1 -0
- package/dist/cjs/components/Hero/variants/Centered.cjs +2 -0
- package/dist/cjs/components/Hero/variants/Centered.cjs.map +1 -0
- package/dist/cjs/components/Hero/variants/Split.cjs +2 -0
- package/dist/cjs/components/Hero/variants/Split.cjs.map +1 -0
- package/dist/cjs/components/Hero/variants/Statement.cjs +3 -0
- package/dist/cjs/components/Hero/variants/Statement.cjs.map +1 -0
- package/dist/cjs/components/LanguageSwitcher/LanguageSwitcher.cjs +3 -0
- package/dist/cjs/components/LanguageSwitcher/LanguageSwitcher.cjs.map +1 -0
- package/dist/cjs/components/LanguageSwitcher/parts.cjs +3 -0
- package/dist/cjs/components/LanguageSwitcher/parts.cjs.map +1 -0
- package/dist/cjs/components/LanguageSwitcher/useLanguageSwitcher.cjs +3 -0
- package/dist/cjs/components/LanguageSwitcher/useLanguageSwitcher.cjs.map +1 -0
- package/dist/cjs/components/LanguageSwitcher/variants/Dropdown.cjs +3 -0
- package/dist/cjs/components/LanguageSwitcher/variants/Dropdown.cjs.map +1 -0
- package/dist/cjs/components/LanguageSwitcher/variants/Modal.cjs +3 -0
- package/dist/cjs/components/LanguageSwitcher/variants/Modal.cjs.map +1 -0
- package/dist/cjs/components/LogoCloud/LogoCloud.cjs +2 -0
- package/dist/cjs/components/LogoCloud/LogoCloud.cjs.map +1 -0
- package/dist/cjs/components/LogoCloud/parts.cjs +2 -0
- package/dist/cjs/components/LogoCloud/parts.cjs.map +1 -0
- package/dist/cjs/components/LogoCloud/variants/Marquee.cjs +2 -0
- package/dist/cjs/components/LogoCloud/variants/Marquee.cjs.map +1 -0
- package/dist/cjs/components/LogoCloud/variants/Quiet.cjs +2 -0
- package/dist/cjs/components/LogoCloud/variants/Quiet.cjs.map +1 -0
- package/dist/cjs/components/LogoCloud/variants/Strip.cjs +2 -0
- package/dist/cjs/components/LogoCloud/variants/Strip.cjs.map +1 -0
- package/dist/cjs/components/MegaMenu/MegaMenu.cjs +3 -0
- package/dist/cjs/components/MegaMenu/MegaMenu.cjs.map +1 -0
- package/dist/cjs/components/Modal.cjs +3 -0
- package/dist/cjs/components/Modal.cjs.map +1 -0
- package/dist/cjs/components/Navbar/Navbar.cjs +3 -0
- package/dist/cjs/components/Navbar/Navbar.cjs.map +1 -0
- package/dist/cjs/components/Newsletter/Newsletter.cjs +2 -0
- package/dist/cjs/components/Newsletter/Newsletter.cjs.map +1 -0
- package/dist/cjs/components/Newsletter/parts.cjs +2 -0
- package/dist/cjs/components/Newsletter/parts.cjs.map +1 -0
- package/dist/cjs/components/Newsletter/useNewsletterForm.cjs +3 -0
- package/dist/cjs/components/Newsletter/useNewsletterForm.cjs.map +1 -0
- package/dist/cjs/components/Newsletter/variants/Card.cjs +3 -0
- package/dist/cjs/components/Newsletter/variants/Card.cjs.map +1 -0
- package/dist/cjs/components/Newsletter/variants/Inline.cjs +3 -0
- package/dist/cjs/components/Newsletter/variants/Inline.cjs.map +1 -0
- package/dist/cjs/components/Newsletter/variants/Underline.cjs +3 -0
- package/dist/cjs/components/Newsletter/variants/Underline.cjs.map +1 -0
- package/dist/cjs/components/Pricing/Pricing.cjs +3 -0
- package/dist/cjs/components/Pricing/Pricing.cjs.map +1 -0
- package/dist/cjs/components/Pricing/parts.cjs +3 -0
- package/dist/cjs/components/Pricing/parts.cjs.map +1 -0
- package/dist/cjs/components/Pricing/variants/Bento.cjs +2 -0
- package/dist/cjs/components/Pricing/variants/Bento.cjs.map +1 -0
- package/dist/cjs/components/Pricing/variants/Cards.cjs +2 -0
- package/dist/cjs/components/Pricing/variants/Cards.cjs.map +1 -0
- package/dist/cjs/components/Pricing/variants/Compact.cjs +2 -0
- package/dist/cjs/components/Pricing/variants/Compact.cjs.map +1 -0
- package/dist/cjs/components/Prose.cjs +2 -0
- package/dist/cjs/components/Prose.cjs.map +1 -0
- package/dist/cjs/components/Section.cjs +2 -0
- package/dist/cjs/components/Section.cjs.map +1 -0
- package/dist/cjs/components/Slot.cjs +2 -0
- package/dist/cjs/components/Slot.cjs.map +1 -0
- package/dist/cjs/components/Stats/Stats.cjs +2 -0
- package/dist/cjs/components/Stats/Stats.cjs.map +1 -0
- package/dist/cjs/components/Stats/parts.cjs +2 -0
- package/dist/cjs/components/Stats/parts.cjs.map +1 -0
- package/dist/cjs/components/Stats/variants/Cells.cjs +2 -0
- package/dist/cjs/components/Stats/variants/Cells.cjs.map +1 -0
- package/dist/cjs/components/Stats/variants/Editorial.cjs +2 -0
- package/dist/cjs/components/Stats/variants/Editorial.cjs.map +1 -0
- package/dist/cjs/components/Stats/variants/Hairline.cjs +2 -0
- package/dist/cjs/components/Stats/variants/Hairline.cjs.map +1 -0
- package/dist/cjs/components/Stats/variants/Ticker.cjs +2 -0
- package/dist/cjs/components/Stats/variants/Ticker.cjs.map +1 -0
- package/dist/cjs/components/Testimonials/TestimonialCard.cjs +2 -0
- package/dist/cjs/components/Testimonials/TestimonialCard.cjs.map +1 -0
- package/dist/cjs/components/Testimonials/Testimonials.cjs +2 -0
- package/dist/cjs/components/Testimonials/Testimonials.cjs.map +1 -0
- package/dist/cjs/components/Testimonials/parts.cjs +2 -0
- package/dist/cjs/components/Testimonials/parts.cjs.map +1 -0
- package/dist/cjs/components/Testimonials/variants/Carousel.cjs +3 -0
- package/dist/cjs/components/Testimonials/variants/Carousel.cjs.map +1 -0
- package/dist/cjs/components/Testimonials/variants/Grid.cjs +2 -0
- package/dist/cjs/components/Testimonials/variants/Grid.cjs.map +1 -0
- package/dist/cjs/components/Testimonials/variants/Marquee.cjs +2 -0
- package/dist/cjs/components/Testimonials/variants/Marquee.cjs.map +1 -0
- package/dist/cjs/icons.cjs +2 -0
- package/dist/cjs/icons.cjs.map +1 -0
- package/dist/cjs/index.cjs +2 -0
- package/dist/cjs/index.cjs.map +1 -0
- package/dist/cjs/node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.cjs +2 -0
- package/dist/cjs/node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.cjs.map +1 -0
- package/dist/cjs/node_modules/.pnpm/tailwind-merge@2.6.1/node_modules/tailwind-merge/dist/bundle-mjs.cjs +2 -0
- package/dist/cjs/node_modules/.pnpm/tailwind-merge@2.6.1/node_modules/tailwind-merge/dist/bundle-mjs.cjs.map +1 -0
- package/dist/cjs/utils/cn.cjs +2 -0
- package/dist/cjs/utils/cn.cjs.map +1 -0
- package/dist/cjs/utils/contrast.cjs +2 -0
- package/dist/cjs/utils/contrast.cjs.map +1 -0
- package/dist/cjs/utils/iso2Flag.cjs +8 -0
- package/dist/cjs/utils/iso2Flag.cjs.map +1 -0
- package/dist/cjs/utils/useTokenForeground.cjs +3 -0
- package/dist/cjs/utils/useTokenForeground.cjs.map +1 -0
- package/dist/es/components/Badge.js +51 -0
- package/dist/es/components/Badge.js.map +1 -0
- package/dist/es/components/Blog/BlogCard.js +12 -0
- package/dist/es/components/Blog/BlogCard.js.map +1 -0
- package/dist/es/components/Blog/BlogSection.js +65 -0
- package/dist/es/components/Blog/BlogSection.js.map +1 -0
- package/dist/es/components/Blog/parts.js +29 -0
- package/dist/es/components/Blog/parts.js.map +1 -0
- package/dist/es/components/Blog/variants/Card.js +46 -0
- package/dist/es/components/Blog/variants/Card.js.map +1 -0
- package/dist/es/components/Blog/variants/Row.js +33 -0
- package/dist/es/components/Blog/variants/Row.js.map +1 -0
- package/dist/es/components/Button.js +73 -0
- package/dist/es/components/Button.js.map +1 -0
- package/dist/es/components/CTA/CTA.js +11 -0
- package/dist/es/components/CTA/CTA.js.map +1 -0
- package/dist/es/components/CTA/parts.js +26 -0
- package/dist/es/components/CTA/parts.js.map +1 -0
- package/dist/es/components/CTA/variants/Inverse.js +47 -0
- package/dist/es/components/CTA/variants/Inverse.js.map +1 -0
- package/dist/es/components/CTA/variants/Panel.js +63 -0
- package/dist/es/components/CTA/variants/Panel.js.map +1 -0
- package/dist/es/components/CTA/variants/Surface.js +28 -0
- package/dist/es/components/CTA/variants/Surface.js.map +1 -0
- package/dist/es/components/Card.js +63 -0
- package/dist/es/components/Card.js.map +1 -0
- package/dist/es/components/Container.js +58 -0
- package/dist/es/components/Container.js.map +1 -0
- package/dist/es/components/FAQ/FAQ.js +40 -0
- package/dist/es/components/FAQ/FAQ.js.map +1 -0
- package/dist/es/components/FAQ/parts.js +56 -0
- package/dist/es/components/FAQ/parts.js.map +1 -0
- package/dist/es/components/FAQ/variants/Accordion.js +43 -0
- package/dist/es/components/FAQ/variants/Accordion.js.map +1 -0
- package/dist/es/components/FAQ/variants/Cards.js +33 -0
- package/dist/es/components/FAQ/variants/Cards.js.map +1 -0
- package/dist/es/components/FAQ/variants/Split.js +35 -0
- package/dist/es/components/FAQ/variants/Split.js.map +1 -0
- package/dist/es/components/Features/FeatureCard.js +40 -0
- package/dist/es/components/Features/FeatureCard.js.map +1 -0
- package/dist/es/components/Features/FeatureGrid.js +13 -0
- package/dist/es/components/Features/FeatureGrid.js.map +1 -0
- package/dist/es/components/Features/parts.js +17 -0
- package/dist/es/components/Features/parts.js.map +1 -0
- package/dist/es/components/Features/variants/Bento.js +27 -0
- package/dist/es/components/Features/variants/Bento.js.map +1 -0
- package/dist/es/components/Features/variants/Columns.js +13 -0
- package/dist/es/components/Features/variants/Columns.js.map +1 -0
- package/dist/es/components/Features/variants/EditorialRows.js +25 -0
- package/dist/es/components/Features/variants/EditorialRows.js.map +1 -0
- package/dist/es/components/Footer/Footer.js +10 -0
- package/dist/es/components/Footer/Footer.js.map +1 -0
- package/dist/es/components/Footer/parts.js +65 -0
- package/dist/es/components/Footer/parts.js.map +1 -0
- package/dist/es/components/Footer/variants/Classic.js +43 -0
- package/dist/es/components/Footer/variants/Classic.js.map +1 -0
- package/dist/es/components/Footer/variants/Editorial.js +39 -0
- package/dist/es/components/Footer/variants/Editorial.js.map +1 -0
- package/dist/es/components/Footer/variants/Minimal.js +20 -0
- package/dist/es/components/Footer/variants/Minimal.js.map +1 -0
- package/dist/es/components/Hero/Hero.js +11 -0
- package/dist/es/components/Hero/Hero.js.map +1 -0
- package/dist/es/components/Hero/parts.js +21 -0
- package/dist/es/components/Hero/parts.js.map +1 -0
- package/dist/es/components/Hero/variants/Centered.js +41 -0
- package/dist/es/components/Hero/variants/Centered.js.map +1 -0
- package/dist/es/components/Hero/variants/Split.js +36 -0
- package/dist/es/components/Hero/variants/Split.js.map +1 -0
- package/dist/es/components/Hero/variants/Statement.js +46 -0
- package/dist/es/components/Hero/variants/Statement.js.map +1 -0
- package/dist/es/components/LanguageSwitcher/LanguageSwitcher.js +34 -0
- package/dist/es/components/LanguageSwitcher/LanguageSwitcher.js.map +1 -0
- package/dist/es/components/LanguageSwitcher/parts.js +107 -0
- package/dist/es/components/LanguageSwitcher/parts.js.map +1 -0
- package/dist/es/components/LanguageSwitcher/useLanguageSwitcher.js +13 -0
- package/dist/es/components/LanguageSwitcher/useLanguageSwitcher.js.map +1 -0
- package/dist/es/components/LanguageSwitcher/variants/Dropdown.js +87 -0
- package/dist/es/components/LanguageSwitcher/variants/Dropdown.js.map +1 -0
- package/dist/es/components/LanguageSwitcher/variants/Modal.js +54 -0
- package/dist/es/components/LanguageSwitcher/variants/Modal.js.map +1 -0
- package/dist/es/components/LogoCloud/LogoCloud.js +13 -0
- package/dist/es/components/LogoCloud/LogoCloud.js.map +1 -0
- package/dist/es/components/LogoCloud/parts.js +22 -0
- package/dist/es/components/LogoCloud/parts.js.map +1 -0
- package/dist/es/components/LogoCloud/variants/Marquee.js +18 -0
- package/dist/es/components/LogoCloud/variants/Marquee.js.map +1 -0
- package/dist/es/components/LogoCloud/variants/Quiet.js +15 -0
- package/dist/es/components/LogoCloud/variants/Quiet.js.map +1 -0
- package/dist/es/components/LogoCloud/variants/Strip.js +15 -0
- package/dist/es/components/LogoCloud/variants/Strip.js.map +1 -0
- package/dist/es/components/MegaMenu/MegaMenu.js +371 -0
- package/dist/es/components/MegaMenu/MegaMenu.js.map +1 -0
- package/dist/es/components/Modal.js +81 -0
- package/dist/es/components/Modal.js.map +1 -0
- package/dist/es/components/Navbar/Navbar.js +135 -0
- package/dist/es/components/Navbar/Navbar.js.map +1 -0
- package/dist/es/components/Newsletter/Newsletter.js +13 -0
- package/dist/es/components/Newsletter/Newsletter.js.map +1 -0
- package/dist/es/components/Newsletter/parts.js +18 -0
- package/dist/es/components/Newsletter/parts.js.map +1 -0
- package/dist/es/components/Newsletter/useNewsletterForm.js +20 -0
- package/dist/es/components/Newsletter/useNewsletterForm.js.map +1 -0
- package/dist/es/components/Newsletter/variants/Card.js +55 -0
- package/dist/es/components/Newsletter/variants/Card.js.map +1 -0
- package/dist/es/components/Newsletter/variants/Inline.js +51 -0
- package/dist/es/components/Newsletter/variants/Inline.js.map +1 -0
- package/dist/es/components/Newsletter/variants/Underline.js +51 -0
- package/dist/es/components/Newsletter/variants/Underline.js.map +1 -0
- package/dist/es/components/Pricing/Pricing.js +32 -0
- package/dist/es/components/Pricing/Pricing.js.map +1 -0
- package/dist/es/components/Pricing/parts.js +119 -0
- package/dist/es/components/Pricing/parts.js.map +1 -0
- package/dist/es/components/Pricing/variants/Bento.js +47 -0
- package/dist/es/components/Pricing/variants/Bento.js.map +1 -0
- package/dist/es/components/Pricing/variants/Cards.js +49 -0
- package/dist/es/components/Pricing/variants/Cards.js.map +1 -0
- package/dist/es/components/Pricing/variants/Compact.js +49 -0
- package/dist/es/components/Pricing/variants/Compact.js.map +1 -0
- package/dist/es/components/Prose.js +36 -0
- package/dist/es/components/Prose.js.map +1 -0
- package/dist/es/components/Section.js +69 -0
- package/dist/es/components/Section.js.map +1 -0
- package/dist/es/components/Slot.js +33 -0
- package/dist/es/components/Slot.js.map +1 -0
- package/dist/es/components/Stats/Stats.js +14 -0
- package/dist/es/components/Stats/Stats.js.map +1 -0
- package/dist/es/components/Stats/parts.js +32 -0
- package/dist/es/components/Stats/parts.js.map +1 -0
- package/dist/es/components/Stats/variants/Cells.js +28 -0
- package/dist/es/components/Stats/variants/Cells.js.map +1 -0
- package/dist/es/components/Stats/variants/Editorial.js +32 -0
- package/dist/es/components/Stats/variants/Editorial.js.map +1 -0
- package/dist/es/components/Stats/variants/Hairline.js +25 -0
- package/dist/es/components/Stats/variants/Hairline.js.map +1 -0
- package/dist/es/components/Stats/variants/Ticker.js +29 -0
- package/dist/es/components/Stats/variants/Ticker.js.map +1 -0
- package/dist/es/components/Testimonials/TestimonialCard.js +50 -0
- package/dist/es/components/Testimonials/TestimonialCard.js.map +1 -0
- package/dist/es/components/Testimonials/Testimonials.js +13 -0
- package/dist/es/components/Testimonials/Testimonials.js.map +1 -0
- package/dist/es/components/Testimonials/parts.js +5 -0
- package/dist/es/components/Testimonials/parts.js.map +1 -0
- package/dist/es/components/Testimonials/variants/Carousel.js +83 -0
- package/dist/es/components/Testimonials/variants/Carousel.js.map +1 -0
- package/dist/es/components/Testimonials/variants/Grid.js +12 -0
- package/dist/es/components/Testimonials/variants/Grid.js.map +1 -0
- package/dist/es/components/Testimonials/variants/Marquee.js +15 -0
- package/dist/es/components/Testimonials/variants/Marquee.js.map +1 -0
- package/dist/es/icons.js +158 -0
- package/dist/es/icons.js.map +1 -0
- package/dist/es/index.js +106 -0
- package/dist/es/index.js.map +1 -0
- package/dist/es/node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.js +17 -0
- package/dist/es/node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.js.map +1 -0
- package/dist/es/node_modules/.pnpm/tailwind-merge@2.6.1/node_modules/tailwind-merge/dist/bundle-mjs.js +2266 -0
- package/dist/es/node_modules/.pnpm/tailwind-merge@2.6.1/node_modules/tailwind-merge/dist/bundle-mjs.js.map +1 -0
- package/dist/es/utils/cn.js +9 -0
- package/dist/es/utils/cn.js.map +1 -0
- package/dist/es/utils/contrast.js +48 -0
- package/dist/es/utils/contrast.js.map +1 -0
- package/dist/es/utils/iso2Flag.js +17 -0
- package/dist/es/utils/iso2Flag.js.map +1 -0
- package/dist/es/utils/useTokenForeground.js +28 -0
- package/dist/es/utils/useTokenForeground.js.map +1 -0
- package/package.json +5 -5
- package/dist/index.cjs +0 -8
- package/dist/index.cjs.map +0 -1
- package/dist/index.js +0 -5128
- package/dist/index.js.map +0 -1
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),f=require("react"),s=require("../utils/cn.cjs"),p=require("../utils/contrast.cjs"),x="inline-flex items-center rounded-full font-medium tracking-tight transition-colors duration-200",m={sm:"px-2.5 py-0.5 text-xs gap-1",md:"px-3 py-1 text-[13px] gap-1.5"},y={solid:"bg-primary text-on-primary",soft:"bg-primary-soft text-primary",outline:"text-muted-foreground ring-1 ring-inset ring-border",dot:"text-foreground ring-1 ring-inset ring-border bg-surface"},a=f.forwardRef(({className:o,variant:t="soft",size:d="md",icon:n,customColor:e,style:i,children:c,...g},l)=>{const u=e?{...i,backgroundColor:e,color:p.getContrastText(e,"#111111","#ffffff")}:i;return r.jsxs("span",{ref:l,style:u,className:s.cn(x,m[d],e?void 0:y[t],o),...g,children:[t==="dot"?r.jsx("span",{"aria-hidden":!0,className:s.cn("h-1.5 w-1.5 shrink-0 rounded-full",e?"currentColor":"bg-primary"),style:e?{backgroundColor:e}:void 0}):null,n?r.jsx("span",{className:"shrink-0 opacity-70",children:n}):null,c]})});a.displayName="Badge";exports.Badge=a;
|
|
2
|
+
//# sourceMappingURL=Badge.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Badge.cjs","sources":["../../../src/components/Badge.tsx"],"sourcesContent":["import { forwardRef, type HTMLAttributes, type ReactNode } from \"react\";\nimport { cn } from \"../utils/cn\";\nimport { getContrastText } from \"../utils/contrast\";\n\nexport type BadgeVariant = \"solid\" | \"soft\" | \"outline\" | \"dot\";\nexport type BadgeSize = \"sm\" | \"md\";\n\nexport interface BadgeProps extends HTMLAttributes<HTMLSpanElement> {\n variant?: BadgeVariant;\n size?: BadgeSize;\n icon?: ReactNode;\n /** Paints the chip with an arbitrary CSS color; text color is computed for contrast. */\n customColor?: string;\n}\n\nconst base =\n \"inline-flex items-center rounded-full font-medium tracking-tight transition-colors duration-200\";\n\nconst sizes: Record<BadgeSize, string> = {\n sm: \"px-2.5 py-0.5 text-xs gap-1\",\n md: \"px-3 py-1 text-[13px] gap-1.5\",\n};\n\nconst variants: Record<BadgeVariant, string> = {\n solid: \"bg-primary text-on-primary\",\n soft: \"bg-primary-soft text-primary\",\n outline: \"text-muted-foreground ring-1 ring-inset ring-border\",\n dot: \"text-foreground ring-1 ring-inset ring-border bg-surface\",\n};\n\nexport const Badge = forwardRef<HTMLSpanElement, BadgeProps>(\n (\n { className, variant = \"soft\", size = \"md\", icon, customColor, style, children, ...props },\n ref,\n ) => {\n const customStyle = customColor\n ? { ...style, backgroundColor: customColor, color: getContrastText(customColor, \"#111111\", \"#ffffff\") }\n : style;\n\n return (\n <span\n ref={ref}\n style={customStyle}\n className={cn(\n base,\n sizes[size],\n customColor ? undefined : variants[variant],\n className,\n )}\n {...props}\n >\n {variant === \"dot\" ? (\n <span\n aria-hidden\n className={cn(\n \"h-1.5 w-1.5 shrink-0 rounded-full\",\n customColor ? \"currentColor\" : \"bg-primary\",\n )}\n style={customColor ? { backgroundColor: customColor } : undefined}\n />\n ) : null}\n {icon ? <span className=\"shrink-0 opacity-70\">{icon}</span> : null}\n {children}\n </span>\n );\n },\n);\nBadge.displayName = \"Badge\";"],"names":["base","sizes","variants","Badge","forwardRef","className","variant","size","icon","customColor","style","children","props","ref","customStyle","getContrastText","jsxs","cn","jsx"],"mappings":"wMAeMA,EACJ,kGAEIC,EAAmC,CACvC,GAAI,8BACJ,GAAI,+BACN,EAEMC,EAAyC,CAC7C,MAAO,6BACP,KAAM,+BACN,QAAS,sDACT,IAAK,0DACP,EAEaC,EAAQC,EAAAA,WACnB,CACE,CAAE,UAAAC,EAAW,QAAAC,EAAU,OAAQ,KAAAC,EAAO,KAAM,KAAAC,EAAM,YAAAC,EAAa,MAAAC,EAAO,SAAAC,EAAU,GAAGC,CAAA,EACnFC,IACG,CACH,MAAMC,EAAcL,EAChB,CAAE,GAAGC,EAAO,gBAAiBD,EAAa,MAAOM,EAAAA,gBAAgBN,EAAa,UAAW,SAAS,GAClGC,EAEJ,OACEM,EAAAA,KAAC,OAAA,CACC,IAAAH,EACA,MAAOC,EACP,UAAWG,EAAAA,GACTjB,EACAC,EAAMM,CAAI,EACVE,EAAc,OAAYP,EAASI,CAAO,EAC1CD,CAAA,EAED,GAAGO,EAEH,SAAA,CAAAN,IAAY,MACXY,EAAAA,IAAC,OAAA,CACC,cAAW,GACX,UAAWD,EAAAA,GACT,oCACAR,EAAc,eAAiB,YAAA,EAEjC,MAAOA,EAAc,CAAE,gBAAiBA,GAAgB,MAAA,CAAA,EAExD,KACHD,EAAOU,EAAAA,IAAC,OAAA,CAAK,UAAU,sBAAuB,WAAK,EAAU,KAC7DP,CAAA,CAAA,CAAA,CAGP,CACF,EACAR,EAAM,YAAc"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),d=require("react"),i=require("./variants/Card.cjs"),n=require("./variants/Row.cjs"),t=d.forwardRef(({option:a="card",...r},e)=>a==="row"?o.jsx(n.BlogCardRow,{ref:e,...r}):o.jsx(i.BlogCardCard,{ref:e,...r}));t.displayName="BlogCard";exports.BlogCard=t;
|
|
2
|
+
//# sourceMappingURL=BlogCard.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlogCard.cjs","sources":["../../../../src/components/Blog/BlogCard.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport type { BlogCardProps } from \"./types\";\nimport { BlogCardCard } from \"./variants/Card\";\nimport { BlogCardRow } from \"./variants/Row\";\n\nexport const BlogCard = forwardRef<HTMLAnchorElement, BlogCardProps>(\n ({ option = \"card\", ...props }, ref) => {\n if (option === \"row\") return <BlogCardRow ref={ref} {...props} />;\n return <BlogCardCard ref={ref} {...props} />;\n },\n);\nBlogCard.displayName = \"BlogCard\";"],"names":["BlogCard","forwardRef","option","props","ref","BlogCardRow","jsx","BlogCardCard"],"mappings":"yMAKaA,EAAWC,EAAAA,WACtB,CAAC,CAAE,OAAAC,EAAS,OAAQ,GAAGC,CAAA,EAASC,IAC1BF,IAAW,YAAeG,EAAAA,YAAA,CAAY,IAAAD,EAAW,GAAGD,EAAO,EACxDG,EAAAA,IAACC,EAAAA,aAAA,CAAa,IAAAH,EAAW,GAAGD,CAAA,CAAO,CAE9C,EACAH,EAAS,YAAc"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),v=require("react"),o=require("../../utils/cn.cjs"),y=require("../../icons.cjs"),q=require("../Container.cjs"),m=require("./BlogCard.cjs"),B={2:"sm:grid-cols-2",3:"sm:grid-cols-2 lg:grid-cols-3"},g=v.forwardRef(({className:u,posts:c,limit:d,columns:p=3,option:f="card",eyebrow:s,eyebrowStyle:t="caps",title:i,description:n,showAllLabel:h,showAllHref:l,LinkComponent:a,...j},b)=>{const x=d?c.slice(0,d):c,N=a??"a";return e.jsx("section",{ref:b,className:o.cn("w-full py-20 sm:py-24",u),...j,children:e.jsxs(q.Container,{children:[(s||i||n||l)&&e.jsxs("div",{className:"mb-12 flex flex-col gap-6 sm:flex-row sm:items-end sm:justify-between",children:[e.jsxs("div",{className:"max-w-2xl",children:[s?e.jsx("p",{className:o.cn("text-xs font-semibold uppercase tracking-[0.18em]",t==="caps"&&"text-foreground/50",t==="soft"&&"inline-flex items-center rounded-full bg-primary-soft px-3 py-1.5 text-primary",t==="plain"&&"text-primary"),children:s}):null,i?e.jsx("h2",{className:"mt-4 font-display text-balance text-3xl font-semibold leading-[1.08] tracking-tight text-foreground sm:text-4xl",children:i}):null,n?e.jsx("p",{className:"mt-4 text-pretty text-base leading-7 text-muted-foreground",children:n}):null]}),l?e.jsxs(N,{href:l,className:"group inline-flex shrink-0 cursor-pointer items-center gap-1.5 text-sm font-semibold text-foreground transition-colors duration-150 hover:text-primary",children:[h??"All posts",e.jsx(y.ArrowRight,{className:"h-4 w-4 transition-transform duration-200 group-hover:translate-x-0.5"})]}):null]}),f==="row"?e.jsx("div",{className:"divide-y divide-border border-t border-border",children:x.map(r=>e.jsx(m.BlogCard,{post:r,option:"row",LinkComponent:a},r.title))}):e.jsx("div",{className:o.cn("grid grid-cols-1 gap-4",B[p]),children:x.map(r=>e.jsx(m.BlogCard,{post:r,option:"card",LinkComponent:a},r.title))})]})})});g.displayName="BlogSection";exports.BlogSection=g;
|
|
2
|
+
//# sourceMappingURL=BlogSection.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlogSection.cjs","sources":["../../../../src/components/Blog/BlogSection.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { ArrowRight } from \"../../icons\";\nimport { Container } from \"../Container\";\nimport { BlogCard } from \"./BlogCard\";\nimport type { BlogSectionProps } from \"./types\";\n\nconst gridCols: Record<2 | 3, string> = {\n 2: \"sm:grid-cols-2\",\n 3: \"sm:grid-cols-2 lg:grid-cols-3\",\n};\n\nexport const BlogSection = forwardRef<HTMLElement, BlogSectionProps>(\n (\n {\n className,\n posts,\n limit,\n columns = 3,\n option = \"card\",\n eyebrow,\n eyebrowStyle = \"caps\",\n title,\n description,\n showAllLabel,\n showAllHref,\n LinkComponent,\n ...props\n },\n ref,\n ) => {\n const visible = limit ? posts.slice(0, limit) : posts;\n const Link = LinkComponent ?? \"a\";\n\n return (\n <section ref={ref} className={cn(\"w-full py-20 sm:py-24\", className)} {...props}>\n <Container>\n {(eyebrow || title || description || showAllHref) && (\n <div className=\"mb-12 flex flex-col gap-6 sm:flex-row sm:items-end sm:justify-between\">\n <div className=\"max-w-2xl\">\n {eyebrow ? (\n <p\n className={cn(\n \"text-xs font-semibold uppercase tracking-[0.18em]\",\n eyebrowStyle === \"caps\" && \"text-foreground/50\",\n eyebrowStyle === \"soft\" &&\n \"inline-flex items-center rounded-full bg-primary-soft px-3 py-1.5 text-primary\",\n eyebrowStyle === \"plain\" && \"text-primary\",\n )}\n >\n {eyebrow}\n </p>\n ) : null}\n {title ? (\n <h2 className=\"mt-4 font-display text-balance text-3xl font-semibold leading-[1.08] tracking-tight text-foreground sm:text-4xl\">\n {title}\n </h2>\n ) : null}\n {description ? (\n <p className=\"mt-4 text-pretty text-base leading-7 text-muted-foreground\">\n {description}\n </p>\n ) : null}\n </div>\n {showAllHref ? (\n <Link\n href={showAllHref}\n className=\"group inline-flex shrink-0 cursor-pointer items-center gap-1.5 text-sm font-semibold text-foreground transition-colors duration-150 hover:text-primary\"\n >\n {showAllLabel ?? \"All posts\"}\n <ArrowRight className=\"h-4 w-4 transition-transform duration-200 group-hover:translate-x-0.5\" />\n </Link>\n ) : null}\n </div>\n )}\n\n {option === \"row\" ? (\n <div className=\"divide-y divide-border border-t border-border\">\n {visible.map((post) => (\n <BlogCard key={post.title} post={post} option=\"row\" LinkComponent={LinkComponent} />\n ))}\n </div>\n ) : (\n <div className={cn(\"grid grid-cols-1 gap-4\", gridCols[columns])}>\n {visible.map((post) => (\n <BlogCard key={post.title} post={post} option=\"card\" LinkComponent={LinkComponent} />\n ))}\n </div>\n )}\n </Container>\n </section>\n );\n },\n);\nBlogSection.displayName = \"BlogSection\";"],"names":["gridCols","BlogSection","forwardRef","className","posts","limit","columns","option","eyebrow","eyebrowStyle","title","description","showAllLabel","showAllHref","LinkComponent","props","ref","visible","Link","jsx","cn","jsxs","Container","ArrowRight","post","BlogCard"],"mappings":"+PAOMA,EAAkC,CACtC,EAAG,iBACH,EAAG,+BACL,EAEaC,EAAcC,EAAAA,WACzB,CACE,CACE,UAAAC,EACA,MAAAC,EACA,MAAAC,EACA,QAAAC,EAAU,EACV,OAAAC,EAAS,OACT,QAAAC,EACA,aAAAC,EAAe,OACf,MAAAC,EACA,YAAAC,EACA,aAAAC,EACA,YAAAC,EACA,cAAAC,EACA,GAAGC,CAAA,EAELC,IACG,CACH,MAAMC,EAAUZ,EAAQD,EAAM,MAAM,EAAGC,CAAK,EAAID,EAC1Cc,EAAOJ,GAAiB,IAE9B,OACEK,EAAAA,IAAC,UAAA,CAAQ,IAAAH,EAAU,UAAWI,EAAAA,GAAG,wBAAyBjB,CAAS,EAAI,GAAGY,EACxE,SAAAM,EAAAA,KAACC,EAAAA,UAAA,CACG,SAAA,EAAAd,GAAWE,GAASC,GAAeE,IACnCQ,OAAC,MAAA,CAAI,UAAU,wEACb,SAAA,CAAAA,EAAAA,KAAC,MAAA,CAAI,UAAU,YACZ,SAAA,CAAAb,EACCW,EAAAA,IAAC,IAAA,CACC,UAAWC,EAAAA,GACT,oDACAX,IAAiB,QAAU,qBAC3BA,IAAiB,QACf,iFACFA,IAAiB,SAAW,cAAA,EAG7B,SAAAD,CAAA,CAAA,EAED,KACHE,EACCS,EAAAA,IAAC,KAAA,CAAG,UAAU,kHACX,WACH,EACE,KACHR,EACCQ,EAAAA,IAAC,IAAA,CAAE,UAAU,6DACV,WACH,EACE,IAAA,EACN,EACCN,EACCQ,EAAAA,KAACH,EAAA,CACC,KAAML,EACN,UAAU,yJAET,SAAA,CAAAD,GAAgB,YACjBO,EAAAA,IAACI,EAAAA,WAAA,CAAW,UAAU,uEAAA,CAAwE,CAAA,CAAA,CAAA,EAE9F,IAAA,EACN,EAGDhB,IAAW,MACVY,EAAAA,IAAC,OAAI,UAAU,gDACZ,WAAQ,IAAKK,GACZL,EAAAA,IAACM,EAAAA,SAAA,CAA0B,KAAAD,EAAY,OAAO,MAAM,cAAAV,GAArCU,EAAK,KAA8D,CACnF,EACH,QAEC,MAAA,CAAI,UAAWJ,EAAAA,GAAG,yBAA0BpB,EAASM,CAAO,CAAC,EAC3D,WAAQ,IAAKkB,GACZL,MAACM,EAAAA,SAAA,CAA0B,KAAAD,EAAY,OAAO,OAAO,cAAAV,GAAtCU,EAAK,KAA+D,CACpF,CAAA,CACH,CAAA,CAAA,CAEJ,CAAA,CACF,CAEJ,CACF,EACAvB,EAAY,YAAc"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("react/jsx-runtime");function n({name:e,avatar:r}){if(r)return r;const t=e.split(" ").map(a=>a[0]).join("").slice(0,2).toUpperCase();return c.jsx("span",{className:"grid h-8 w-8 shrink-0 place-items-center rounded-full bg-primary-soft text-[11px] font-bold text-primary",children:t})}const l=({post:e})=>{var r,t;return e.cover?c.jsx("img",{src:e.cover,alt:"",loading:"lazy",className:"aspect-[16/10] w-full object-cover"}):c.jsx("div",{className:"grid aspect-[16/10] w-full place-items-center bg-surface-strong",style:e.accent?{background:`linear-gradient(135deg, ${e.accent}22, ${e.accent}11)`}:void 0,children:c.jsx("span",{className:"font-display text-4xl font-bold tracking-[-0.04em]",style:{color:e.accent??"rgb(var(--color-foreground) / 0.12)"},children:(t=(r=e.category)==null?void 0:r[0])==null?void 0:t.toUpperCase()})})};exports.AuthorMark=n;exports.Cover=l;
|
|
2
|
+
//# sourceMappingURL=parts.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parts.cjs","sources":["../../../../src/components/Blog/parts.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport type { BlogPost } from \"./types\";\n\nexport function AuthorMark({ name, avatar }: { name: string; avatar?: ReactNode }) {\n if (avatar) return avatar;\n const initials = name\n .split(\" \")\n .map((p) => p[0])\n .join(\"\")\n .slice(0, 2)\n .toUpperCase();\n return (\n <span className=\"grid h-8 w-8 shrink-0 place-items-center rounded-full bg-primary-soft text-[11px] font-bold text-primary\">\n {initials}\n </span>\n );\n}\n\nexport const Cover = ({ post }: { post: BlogPost }) =>\n post.cover ? (\n <img src={post.cover} alt=\"\" loading=\"lazy\" className=\"aspect-[16/10] w-full object-cover\" />\n ) : (\n <div\n className=\"grid aspect-[16/10] w-full place-items-center bg-surface-strong\"\n style={\n post.accent\n ? { background: `linear-gradient(135deg, ${post.accent}22, ${post.accent}11)` }\n : undefined\n }\n >\n <span\n className=\"font-display text-4xl font-bold tracking-[-0.04em]\"\n style={{ color: post.accent ?? \"rgb(var(--color-foreground) / 0.12)\" }}\n >\n {post.category?.[0]?.toUpperCase()}\n </span>\n </div>\n );"],"names":["AuthorMark","name","avatar","initials","p","jsx","Cover","post","_b","_a"],"mappings":"qHAGO,SAASA,EAAW,CAAE,KAAAC,EAAM,OAAAC,GAAgD,CACjF,GAAIA,EAAQ,OAAOA,EACnB,MAAMC,EAAWF,EACd,MAAM,GAAG,EACT,IAAKG,GAAMA,EAAE,CAAC,CAAC,EACf,KAAK,EAAE,EACP,MAAM,EAAG,CAAC,EACV,YAAA,EACH,OACEC,EAAAA,IAAC,OAAA,CAAK,UAAU,2GACb,SAAAF,EACH,CAEJ,CAEO,MAAMG,EAAQ,CAAC,CAAE,KAAAC,KAAK,SAC3B,OAAAA,EAAK,MACHF,EAAAA,IAAC,MAAA,CAAI,IAAKE,EAAK,MAAO,IAAI,GAAG,QAAQ,OAAO,UAAU,qCAAqC,EAE3FF,EAAAA,IAAC,MAAA,CACC,UAAU,kEACV,MACEE,EAAK,OACD,CAAE,WAAY,2BAA2BA,EAAK,MAAM,OAAOA,EAAK,MAAM,KAAA,EACtE,OAGN,SAAAF,EAAAA,IAAC,OAAA,CACC,UAAU,qDACV,MAAO,CAAE,MAAOE,EAAK,QAAU,qCAAA,EAE9B,UAAAC,GAAAC,EAAAF,EAAK,WAAL,YAAAE,EAAgB,KAAhB,YAAAD,EAAoB,aAAY,CAAA,CACnC,CACF"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),c=require("react"),x=require("../../../utils/cn.cjs"),u=require("../../../icons.cjs"),m=require("../../Badge.cjs"),a=require("../parts.cjs"),s=c.forwardRef(({className:n,post:r,LinkComponent:l,...o},d)=>{const i=l??"a",t=r.author;return e.jsxs(i,{ref:d,href:r.href??"#",className:x.cn("group flex h-full cursor-pointer flex-col overflow-hidden rounded-xl border border-border bg-surface transition-colors duration-200 hover:border-foreground/20",n),...o,children:[e.jsx("div",{className:"overflow-hidden",children:e.jsx(a.Cover,{post:r})}),e.jsxs("div",{className:"flex flex-1 flex-col p-6",children:[e.jsxs("div",{className:"flex items-center justify-between gap-3",children:[r.category?e.jsx(m.Badge,{variant:"soft",size:"sm",children:r.category}):e.jsx("span",{}),r.readTime?e.jsx("span",{className:"text-xs text-muted-foreground",children:r.readTime}):null]}),e.jsx("h3",{className:"mt-4 font-display text-lg font-semibold leading-snug tracking-tight text-foreground sm:text-xl",children:r.title}),r.excerpt?e.jsx("p",{className:"mt-2.5 line-clamp-2 text-sm leading-6 text-muted-foreground",children:r.excerpt}):null,e.jsxs("div",{className:"mt-5 flex items-center justify-between gap-3 border-t border-border pt-4",children:[t?e.jsxs("span",{className:"flex min-w-0 items-center gap-2.5",children:[e.jsx(a.AuthorMark,{name:t.name,avatar:t.avatar}),e.jsx("span",{className:"truncate text-xs font-medium text-foreground",children:t.name})]}):e.jsx("span",{className:"text-xs tabular-nums text-muted-foreground",children:r.date}),e.jsx(u.ArrowRight,{className:"h-4 w-4 text-foreground/35 transition-all duration-200 group-hover:translate-x-0.5 group-hover:text-foreground"})]})]})]})});s.displayName="BlogCardCard";exports.BlogCardCard=s;
|
|
2
|
+
//# sourceMappingURL=Card.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Card.cjs","sources":["../../../../../src/components/Blog/variants/Card.tsx"],"sourcesContent":["import { forwardRef, type ElementType } from \"react\";\nimport { cn } from \"../../../utils/cn\";\nimport { ArrowRight } from \"../../../icons\";\nimport { Badge } from \"../../Badge\";\nimport { AuthorMark, Cover } from \"../parts\";\nimport type { BlogPost } from \"../types\";\n\ninterface BlogCardCardProps {\n post: BlogPost;\n LinkComponent?: ElementType;\n className?: string;\n}\n\nexport const BlogCardCard = forwardRef<HTMLAnchorElement, BlogCardCardProps>(\n ({ className, post, LinkComponent, ...props }, ref) => {\n const Link = LinkComponent ?? \"a\";\n const author = post.author;\n return (\n <Link\n ref={ref}\n href={post.href ?? \"#\"}\n className={cn(\n \"group flex h-full cursor-pointer flex-col overflow-hidden rounded-xl border border-border bg-surface transition-colors duration-200 hover:border-foreground/20\",\n className,\n )}\n {...props}\n >\n <div className=\"overflow-hidden\">\n <Cover post={post} />\n </div>\n <div className=\"flex flex-1 flex-col p-6\">\n <div className=\"flex items-center justify-between gap-3\">\n {post.category ? <Badge variant=\"soft\" size=\"sm\">{post.category}</Badge> : <span />}\n {post.readTime ? (\n <span className=\"text-xs text-muted-foreground\">{post.readTime}</span>\n ) : null}\n </div>\n <h3 className=\"mt-4 font-display text-lg font-semibold leading-snug tracking-tight text-foreground sm:text-xl\">\n {post.title}\n </h3>\n {post.excerpt ? (\n <p className=\"mt-2.5 line-clamp-2 text-sm leading-6 text-muted-foreground\">\n {post.excerpt}\n </p>\n ) : null}\n <div className=\"mt-5 flex items-center justify-between gap-3 border-t border-border pt-4\">\n {author ? (\n <span className=\"flex min-w-0 items-center gap-2.5\">\n <AuthorMark name={author.name} avatar={author.avatar} />\n <span className=\"truncate text-xs font-medium text-foreground\">{author.name}</span>\n </span>\n ) : (\n <span className=\"text-xs tabular-nums text-muted-foreground\">{post.date}</span>\n )}\n <ArrowRight className=\"h-4 w-4 text-foreground/35 transition-all duration-200 group-hover:translate-x-0.5 group-hover:text-foreground\" />\n </div>\n </div>\n </Link>\n );\n },\n);\nBlogCardCard.displayName = \"BlogCardCard\";"],"names":["BlogCardCard","forwardRef","className","post","LinkComponent","props","ref","Link","author","jsxs","cn","jsx","Cover","Badge","AuthorMark","ArrowRight"],"mappings":"kQAaaA,EAAeC,EAAAA,WAC1B,CAAC,CAAE,UAAAC,EAAW,KAAAC,EAAM,cAAAC,EAAe,GAAGC,CAAA,EAASC,IAAQ,CACrD,MAAMC,EAAOH,GAAiB,IACxBI,EAASL,EAAK,OACpB,OACEM,EAAAA,KAACF,EAAA,CACC,IAAAD,EACA,KAAMH,EAAK,MAAQ,IACnB,UAAWO,EAAAA,GACT,iKACAR,CAAA,EAED,GAAGG,EAEJ,SAAA,CAAAM,EAAAA,IAAC,OAAI,UAAU,kBACb,SAAAA,EAAAA,IAACC,QAAA,CAAM,KAAAT,EAAY,EACrB,EACAM,EAAAA,KAAC,MAAA,CAAI,UAAU,2BACb,SAAA,CAAAA,EAAAA,KAAC,MAAA,CAAI,UAAU,0CACZ,SAAA,CAAAN,EAAK,SAAWQ,EAAAA,IAACE,EAAAA,MAAA,CAAM,QAAQ,OAAO,KAAK,KAAM,SAAAV,EAAK,QAAA,CAAS,EAAWQ,EAAAA,IAAC,OAAA,EAAK,EAChFR,EAAK,SACJQ,MAAC,OAAA,CAAK,UAAU,gCAAiC,SAAAR,EAAK,SAAS,EAC7D,IAAA,EACN,EACAQ,EAAAA,IAAC,KAAA,CAAG,UAAU,iGACX,WAAK,MACR,EACCR,EAAK,QACJQ,MAAC,IAAA,CAAE,UAAU,8DACV,SAAAR,EAAK,QACR,EACE,KACJM,EAAAA,KAAC,MAAA,CAAI,UAAU,2EACZ,SAAA,CAAAD,EACCC,EAAAA,KAAC,OAAA,CAAK,UAAU,oCACd,SAAA,CAAAE,MAACG,EAAAA,YAAW,KAAMN,EAAO,KAAM,OAAQA,EAAO,OAAQ,EACtDG,EAAAA,IAAC,OAAA,CAAK,UAAU,+CAAgD,WAAO,IAAA,CAAK,CAAA,EAC9E,EAEAA,MAAC,OAAA,CAAK,UAAU,6CAA8C,WAAK,KAAK,EAE1EA,EAAAA,IAACI,EAAAA,WAAA,CAAW,UAAU,gHAAA,CAAiH,CAAA,CAAA,CACzI,CAAA,CAAA,CACF,CAAA,CAAA,CAAA,CAGN,CACF,EACAf,EAAa,YAAc"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),l=require("react"),c=require("../../../utils/cn.cjs"),d=require("../../../icons.cjs"),t=l.forwardRef(({className:a,post:r,LinkComponent:s,...n},o)=>{const i=s??"a";return e.jsxs(i,{ref:o,href:r.href??"#",className:c.cn("group flex cursor-pointer items-baseline gap-5 py-6",a),...n,children:[e.jsxs("div",{className:"min-w-0 flex-1",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[r.category?e.jsx("span",{className:"rounded-full bg-primary-soft px-2.5 py-0.5 text-xs font-semibold text-primary",children:r.category}):null,e.jsxs("span",{className:"text-xs tabular-nums text-muted-foreground",children:[r.date,r.readTime?` · ${r.readTime}`:""]})]}),e.jsx("h3",{className:"mt-2.5 font-display text-xl font-semibold tracking-tight text-foreground transition-transform duration-200 group-hover:translate-x-1 sm:text-2xl",children:r.title})]}),e.jsx("span",{className:"text-foreground/30 transition-all duration-200 group-hover:translate-x-0.5 group-hover:text-foreground",children:e.jsx(d.ArrowUpRight,{className:"h-5 w-5"})})]})});t.displayName="BlogCardRow";exports.BlogCardRow=t;
|
|
2
|
+
//# sourceMappingURL=Row.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Row.cjs","sources":["../../../../../src/components/Blog/variants/Row.tsx"],"sourcesContent":["import { forwardRef, type ElementType } from \"react\";\nimport { cn } from \"../../../utils/cn\";\nimport { ArrowUpRight } from \"../../../icons\";\nimport type { BlogPost } from \"../types\";\n\ninterface BlogCardRowProps {\n post: BlogPost;\n LinkComponent?: ElementType;\n className?: string;\n}\n\nexport const BlogCardRow = forwardRef<HTMLAnchorElement, BlogCardRowProps>(\n ({ className, post, LinkComponent, ...props }, ref) => {\n const Link = LinkComponent ?? \"a\";\n return (\n <Link\n ref={ref}\n href={post.href ?? \"#\"}\n className={cn(\"group flex cursor-pointer items-baseline gap-5 py-6\", className)}\n {...props}\n >\n <div className=\"min-w-0 flex-1\">\n <div className=\"flex items-center gap-3\">\n {post.category ? <span className=\"rounded-full bg-primary-soft px-2.5 py-0.5 text-xs font-semibold text-primary\">{post.category}</span> : null}\n <span className=\"text-xs tabular-nums text-muted-foreground\">\n {post.date}\n {post.readTime ? ` · ${post.readTime}` : \"\"}\n </span>\n </div>\n <h3 className=\"mt-2.5 font-display text-xl font-semibold tracking-tight text-foreground transition-transform duration-200 group-hover:translate-x-1 sm:text-2xl\">\n {post.title}\n </h3>\n </div>\n <span className=\"text-foreground/30 transition-all duration-200 group-hover:translate-x-0.5 group-hover:text-foreground\">\n <ArrowUpRight className=\"h-5 w-5\" />\n </span>\n </Link>\n );\n },\n);\nBlogCardRow.displayName = \"BlogCardRow\";"],"names":["BlogCardRow","forwardRef","className","post","LinkComponent","props","ref","Link","jsxs","cn","jsx","ArrowUpRight"],"mappings":"2MAWaA,EAAcC,EAAAA,WACzB,CAAC,CAAE,UAAAC,EAAW,KAAAC,EAAM,cAAAC,EAAe,GAAGC,CAAA,EAASC,IAAQ,CACrD,MAAMC,EAAOH,GAAiB,IAC9B,OACEI,EAAAA,KAACD,EAAA,CACC,IAAAD,EACA,KAAMH,EAAK,MAAQ,IACnB,UAAWM,EAAAA,GAAG,sDAAuDP,CAAS,EAC7E,GAAGG,EAEJ,SAAA,CAAAG,EAAAA,KAAC,MAAA,CAAI,UAAU,iBACb,SAAA,CAAAA,EAAAA,KAAC,MAAA,CAAI,UAAU,0BACZ,SAAA,CAAAL,EAAK,SAAWO,MAAC,OAAA,CAAK,UAAU,gFAAiF,SAAAP,EAAK,SAAS,EAAU,KAC1IK,EAAAA,KAAC,OAAA,CAAK,UAAU,6CACb,SAAA,CAAAL,EAAK,KACLA,EAAK,SAAW,MAAMA,EAAK,QAAQ,GAAK,EAAA,CAAA,CAC3C,CAAA,EACF,EACAO,EAAAA,IAAC,KAAA,CAAG,UAAU,mJACX,WAAK,KAAA,CACR,CAAA,EACF,EACAA,EAAAA,IAAC,QAAK,UAAU,yGACd,eAACC,eAAA,CAAa,UAAU,UAAU,CAAA,CACpC,CAAA,CAAA,CAAA,CAGN,CACF,EACAX,EAAY,YAAc"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),v=require("react"),o=require("../utils/cn.cjs"),y=require("../utils/contrast.cjs"),k=require("./Slot.cjs"),j={primary:"bg-primary text-on-primary hover:bg-primary-hover",dark:"bg-secondary text-on-secondary hover:bg-secondary-hover",outline:"border border-border bg-transparent text-foreground hover:border-foreground/30 hover:bg-surface",ghost:"text-foreground hover:bg-surface",link:"px-0 h-auto text-primary hover:text-primary-hover"},q={sm:"h-9 px-4 text-[13px] gap-1.5",md:"h-11 px-5 text-sm gap-2",lg:"h-12 px-7 text-[15px] gap-2"},N="group inline-flex select-none items-center justify-center rounded-lg font-medium tracking-tight transition-[background-color,border-color,color,box-shadow] duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50 cursor-pointer",b=v.forwardRef(({className:p,variant:n="primary",size:x="md",iconLeft:s,iconRight:i,customColor:e,fullWidth:f,asChild:h,style:a,type:m="button",children:c,...u},l)=>{const d=e?{...a,backgroundColor:e,color:y.getContrastText(e)}:a,t=n==="link",g=o.cn(N,q[x],e?"hover:brightness-95":j[n],t&&"underline-offset-4 hover:underline",f&&"w-full",p);return h?r.jsx(k.Slot,{ref:l,style:d,className:g,...u,children:c}):r.jsxs("button",{ref:l,type:m,style:d,className:g,...u,children:[s?r.jsx("span",{className:o.cn("shrink-0",!t&&"opacity-70"),children:s}):null,c,i?r.jsx("span",{className:o.cn("shrink-0 transition-transform duration-200",!t&&"opacity-70 group-hover:translate-x-0.5"),children:i}):null]})});b.displayName="Button";exports.Button=b;
|
|
2
|
+
//# sourceMappingURL=Button.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Button.cjs","sources":["../../../src/components/Button.tsx"],"sourcesContent":["import { forwardRef, type ButtonHTMLAttributes, type CSSProperties, type ReactNode } from \"react\";\nimport { cn } from \"../utils/cn\";\nimport { getContrastText } from \"../utils/contrast\";\nimport { Slot } from \"./Slot\";\n\nexport type ButtonVariant = \"primary\" | \"dark\" | \"outline\" | \"ghost\" | \"link\";\nexport type ButtonSize = \"sm\" | \"md\" | \"lg\";\n\nexport interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {\n variant?: ButtonVariant;\n size?: ButtonSize;\n iconLeft?: ReactNode;\n iconRight?: ReactNode;\n /** Paints the button with an arbitrary CSS color; text color is computed for contrast. */\n customColor?: string;\n fullWidth?: boolean;\n /**\n * When `true`, the button styling is applied to a single child element\n * instead of a `<button>`. Use it to render a framework router `<Link>`\n * (Next.js, Remix, React Router…). `iconLeft` / `iconRight` are ignored;\n * pass icons inside the child instead.\n */\n asChild?: boolean;\n}\n\nconst variants: Record<ButtonVariant, string> = {\n primary: \"bg-primary text-on-primary hover:bg-primary-hover\",\n dark: \"bg-secondary text-on-secondary hover:bg-secondary-hover\",\n outline:\n \"border border-border bg-transparent text-foreground hover:border-foreground/30 hover:bg-surface\",\n ghost: \"text-foreground hover:bg-surface\",\n link: \"px-0 h-auto text-primary hover:text-primary-hover\",\n};\n\nconst sizes: Record<ButtonSize, string> = {\n sm: \"h-9 px-4 text-[13px] gap-1.5\",\n md: \"h-11 px-5 text-sm gap-2\",\n lg: \"h-12 px-7 text-[15px] gap-2\",\n};\n\nconst base =\n \"group inline-flex select-none items-center justify-center rounded-lg font-medium tracking-tight transition-[background-color,border-color,color,box-shadow] duration-200 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background disabled:pointer-events-none disabled:opacity-50 cursor-pointer\";\n\nexport const Button = forwardRef<HTMLButtonElement, ButtonProps>(\n (\n {\n className,\n variant = \"primary\",\n size = \"md\",\n iconLeft,\n iconRight,\n customColor,\n fullWidth,\n asChild,\n style,\n type = \"button\",\n children,\n ...props\n },\n ref,\n ) => {\n const customStyle: CSSProperties | undefined = customColor\n ? {\n ...style,\n backgroundColor: customColor,\n color: getContrastText(customColor),\n }\n : style;\n\n const isLink = variant === \"link\";\n\n const classes = cn(\n base,\n sizes[size],\n customColor ? \"hover:brightness-95\" : variants[variant],\n isLink && \"underline-offset-4 hover:underline\",\n fullWidth && \"w-full\",\n className,\n );\n\n if (asChild) {\n return (\n <Slot ref={ref} style={customStyle} className={classes} {...props}>\n {children}\n </Slot>\n );\n }\n\n return (\n <button\n ref={ref}\n type={type}\n style={customStyle}\n className={classes}\n {...props}\n >\n {iconLeft ? <span className={cn(\"shrink-0\", !isLink && \"opacity-70\")}>{iconLeft}</span> : null}\n {children}\n {iconRight ? (\n <span\n className={cn(\n \"shrink-0 transition-transform duration-200\",\n !isLink && \"opacity-70 group-hover:translate-x-0.5\",\n )}\n >\n {iconRight}\n </span>\n ) : null}\n </button>\n );\n },\n);\nButton.displayName = \"Button\";"],"names":["variants","sizes","base","Button","forwardRef","className","variant","size","iconLeft","iconRight","customColor","fullWidth","asChild","style","type","children","props","ref","customStyle","getContrastText","isLink","classes","cn","jsx","Slot","jsxs"],"mappings":"gOAyBMA,EAA0C,CAC9C,QAAS,oDACT,KAAM,0DACN,QACE,kGACF,MAAO,mCACP,KAAM,mDACR,EAEMC,EAAoC,CACxC,GAAI,+BACJ,GAAI,0BACJ,GAAI,6BACN,EAEMC,EACJ,oXAEWC,EAASC,EAAAA,WACpB,CACE,CACE,UAAAC,EACA,QAAAC,EAAU,UACV,KAAAC,EAAO,KACP,SAAAC,EACA,UAAAC,EACA,YAAAC,EACA,UAAAC,EACA,QAAAC,EACA,MAAAC,EACA,KAAAC,EAAO,SACP,SAAAC,EACA,GAAGC,CAAA,EAELC,IACG,CACH,MAAMC,EAAyCR,EAC3C,CACE,GAAGG,EACH,gBAAiBH,EACjB,MAAOS,EAAAA,gBAAgBT,CAAW,CAAA,EAEpCG,EAEEO,EAASd,IAAY,OAErBe,EAAUC,EAAAA,GACdpB,EACAD,EAAMM,CAAI,EACVG,EAAc,sBAAwBV,EAASM,CAAO,EACtDc,GAAU,qCACVT,GAAa,SACbN,CAAA,EAGF,OAAIO,EAEAW,MAACC,EAAAA,MAAK,IAAAP,EAAU,MAAOC,EAAa,UAAWG,EAAU,GAAGL,EACzD,SAAAD,CAAA,CACH,EAKFU,EAAAA,KAAC,SAAA,CACC,IAAAR,EACA,KAAAH,EACA,MAAOI,EACP,UAAWG,EACV,GAAGL,EAEH,SAAA,CAAAR,EAAWe,EAAAA,IAAC,OAAA,CAAK,UAAWD,EAAAA,GAAG,WAAY,CAACF,GAAU,YAAY,EAAI,SAAAZ,CAAA,CAAS,EAAU,KACzFO,EACAN,EACCc,EAAAA,IAAC,OAAA,CACC,UAAWD,EAAAA,GACT,6CACA,CAACF,GAAU,wCAAA,EAGZ,SAAAX,CAAA,CAAA,EAED,IAAA,CAAA,CAAA,CAGV,CACF,EACAN,EAAO,YAAc"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),u=require("react"),a=require("./variants/Panel.cjs"),c=require("./variants/Surface.cjs"),i=require("./variants/Inverse.cjs"),s=u.forwardRef(({option:t="panel",...e},r)=>t==="surface"?n.jsx(c.CTASurface,{ref:r,...e}):t==="inverse"?n.jsx(i.CTAInverse,{ref:r,...e}):n.jsx(a.CTAPanel,{ref:r,...e}));s.displayName="CTA";exports.CTA=s;
|
|
2
|
+
//# sourceMappingURL=CTA.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CTA.cjs","sources":["../../../../src/components/CTA/CTA.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport type { CTAProps } from \"./types\";\nimport { CTAPanel } from \"./variants/Panel\";\nimport { CTASurface } from \"./variants/Surface\";\nimport { CTAInverse } from \"./variants/Inverse\";\n\nexport const CTA = forwardRef<HTMLElement, CTAProps>(({ option = \"panel\", ...props }, ref) => {\n if (option === \"surface\") return <CTASurface ref={ref} {...props} />;\n if (option === \"inverse\") return <CTAInverse ref={ref} {...props} />;\n return <CTAPanel ref={ref} {...props} />;\n});\nCTA.displayName = \"CTA\";"],"names":["CTA","forwardRef","option","props","ref","CTASurface","CTAInverse","jsx","CTAPanel"],"mappings":"kPAMaA,EAAMC,EAAAA,WAAkC,CAAC,CAAE,OAAAC,EAAS,QAAS,GAAGC,CAAA,EAASC,IAChFF,IAAW,gBAAmBG,EAAAA,WAAA,CAAW,IAAAD,EAAW,GAAGD,EAAO,EAC9DD,IAAW,gBAAmBI,EAAAA,WAAA,CAAW,IAAAF,EAAW,GAAGD,EAAO,EAC3DI,EAAAA,IAACC,EAAAA,SAAA,CAAS,IAAAJ,EAAW,GAAGD,CAAA,CAAO,CACvC,EACDH,EAAI,YAAc"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("react/jsx-runtime"),i=require("../../utils/cn.cjs");function s({action:e,secondaryAction:t,align:n,actionClassName:r="flex flex-wrap items-center gap-4"}){return c.jsxs("div",{className:i.cn(r,n==="center"&&"justify-center"),children:[e,t]})}exports.CTAActions=s;
|
|
2
|
+
//# sourceMappingURL=parts.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parts.cjs","sources":["../../../../src/components/CTA/parts.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn\";\n\nexport function CTAActions({\n action,\n secondaryAction,\n align,\n actionClassName = \"flex flex-wrap items-center gap-4\",\n}: {\n action?: ReactNode;\n secondaryAction?: ReactNode;\n align?: \"left\" | \"center\";\n actionClassName?: string;\n}) {\n return (\n <div\n className={cn(\n actionClassName,\n align === \"center\" && \"justify-center\",\n )}\n >\n {action}\n {secondaryAction}\n </div>\n );\n}"],"names":["CTAActions","action","secondaryAction","align","actionClassName","jsxs","cn"],"mappings":"qJAGO,SAASA,EAAW,CACzB,OAAAC,EACA,gBAAAC,EACA,MAAAC,EACA,gBAAAC,EAAkB,mCACpB,EAKG,CACD,OACEC,EAAAA,KAAC,MAAA,CACC,UAAWC,EAAAA,GACTF,EACAD,IAAU,UAAY,gBAAA,EAGvB,SAAA,CAAAF,EACAC,CAAA,CAAA,CAAA,CAGP"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),u=require("react"),t=require("../../../utils/cn.cjs"),p=require("../../Container.cjs"),v=require("../../../utils/useTokenForeground.cjs"),y=require("../parts.cjs"),n=u.forwardRef(({className:l,title:o,description:s,action:c,secondaryAction:a,align:r="left",id:i,...d},x)=>{const m=v.useTokenForeground("--color-secondary");return e.jsx("section",{ref:x,id:i,className:t.cn("w-full py-6 pb-20",l),...d,children:e.jsx(p.Container,{children:e.jsxs("div",{className:"relative overflow-hidden rounded-[1.75rem] px-7 py-16 sm:px-16 sm:py-20",style:{backgroundColor:"rgb(var(--color-secondary))",color:m},children:[e.jsx("div",{"aria-hidden":!0,className:"pointer-events-none absolute inset-0 grain opacity-[0.09] mix-blend-overlay"}),e.jsxs("div",{className:t.cn("relative flex flex-col items-start gap-10",r==="center"&&"items-center text-center","lg:flex-row lg:items-end lg:justify-between"),children:[e.jsxs("div",{className:t.cn("max-w-3xl",r==="center"&&"mx-auto"),children:[e.jsx("h2",{className:"font-display text-balance text-4xl font-semibold leading-[1.02] tracking-[-0.03em] sm:text-6xl",children:o}),s?e.jsx("p",{className:t.cn("mt-5 max-w-xl text-pretty text-base leading-7 sm:text-lg",r==="center"&&"mx-auto"),children:s}):null]}),e.jsx(y.CTAActions,{action:c,secondaryAction:a,align:r})]})]})})})});n.displayName="CTAInverse";exports.CTAInverse=n;
|
|
3
|
+
//# sourceMappingURL=Inverse.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Inverse.cjs","sources":["../../../../../src/components/CTA/variants/Inverse.tsx"],"sourcesContent":["\"use client\";\nimport { forwardRef } from \"react\";\nimport { cn } from \"../../../utils/cn\";\nimport { Container } from \"../../Container\";\nimport { useTokenForeground } from \"../../../utils/useTokenForeground\";\nimport { CTAActions } from \"../parts\";\nimport type { CTAProps } from \"../types\";\n\n/** inverse — ink panel with a wide left-aligned split. */\nexport const CTAInverse = forwardRef<HTMLElement, CTAProps>(\n ({ className, title, description, action, secondaryAction, align = \"left\", id, ...props }, ref) => {\n const fg = useTokenForeground(\"--color-secondary\");\n\n return (\n <section ref={ref} id={id} className={cn(\"w-full py-6 pb-20\", className)} {...props}>\n <Container>\n <div\n className=\"relative overflow-hidden rounded-[1.75rem] px-7 py-16 sm:px-16 sm:py-20\"\n style={{\n backgroundColor: \"rgb(var(--color-secondary))\",\n color: fg,\n }}\n >\n <div aria-hidden className=\"pointer-events-none absolute inset-0 grain opacity-[0.09] mix-blend-overlay\" />\n <div\n className={cn(\n \"relative flex flex-col items-start gap-10\",\n align === \"center\" && \"items-center text-center\",\n \"lg:flex-row lg:items-end lg:justify-between\",\n )}\n >\n <div className={cn(\"max-w-3xl\", align === \"center\" && \"mx-auto\")}>\n <h2 className=\"font-display text-balance text-4xl font-semibold leading-[1.02] tracking-[-0.03em] sm:text-6xl\">\n {title}\n </h2>\n {description ? (\n <p className={cn(\"mt-5 max-w-xl text-pretty text-base leading-7 sm:text-lg\", align === \"center\" && \"mx-auto\")}>\n {description}\n </p>\n ) : null}\n </div>\n <CTAActions action={action} secondaryAction={secondaryAction} align={align} />\n </div>\n </div>\n </Container>\n </section>\n );\n },\n);\nCTAInverse.displayName = \"CTAInverse\";"],"names":["CTAInverse","forwardRef","className","title","description","action","secondaryAction","align","id","props","ref","fg","useTokenForeground","jsx","cn","Container","jsxs","CTAActions"],"mappings":"yRASaA,EAAaC,EAAAA,WACxB,CAAC,CAAE,UAAAC,EAAW,MAAAC,EAAO,YAAAC,EAAa,OAAAC,EAAQ,gBAAAC,EAAiB,MAAAC,EAAQ,OAAQ,GAAAC,EAAI,GAAGC,CAAA,EAASC,IAAQ,CACjG,MAAMC,EAAKC,EAAAA,mBAAmB,mBAAmB,EAEjD,OACEC,EAAAA,IAAC,UAAA,CAAQ,IAAAH,EAAU,GAAAF,EAAQ,UAAWM,KAAG,oBAAqBZ,CAAS,EAAI,GAAGO,EAC5E,SAAAI,EAAAA,IAACE,EAAAA,UAAA,CACC,SAAAC,EAAAA,KAAC,MAAA,CACC,UAAU,0EACV,MAAO,CACL,gBAAiB,8BACjB,MAAOL,CAAA,EAGT,SAAA,CAAAE,EAAAA,IAAC,MAAA,CAAI,cAAW,GAAC,UAAU,8EAA8E,EACzGG,EAAAA,KAAC,MAAA,CACC,UAAWF,EAAAA,GACT,4CACAP,IAAU,UAAY,2BACtB,6CAAA,EAGF,SAAA,CAAAS,OAAC,OAAI,UAAWF,EAAAA,GAAG,YAAaP,IAAU,UAAY,SAAS,EAC7D,SAAA,CAAAM,EAAAA,IAAC,KAAA,CAAG,UAAU,iGACX,SAAAV,EACH,EACCC,EACCS,EAAAA,IAAC,IAAA,CAAE,UAAWC,EAAAA,GAAG,2DAA4DP,IAAU,UAAY,SAAS,EACzG,SAAAH,CAAA,CACH,EACE,IAAA,EACN,EACAS,EAAAA,IAACI,EAAAA,WAAA,CAAW,OAAAZ,EAAgB,gBAAAC,EAAkC,MAAAC,CAAA,CAAc,CAAA,CAAA,CAAA,CAC9E,CAAA,CAAA,EAEJ,CAAA,CACF,CAEJ,CACF,EACAP,EAAW,YAAc"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),u=require("react"),t=require("../../../utils/cn.cjs"),p=require("../../Container.cjs"),v=require("../../../utils/useTokenForeground.cjs"),y=require("../parts.cjs"),n=u.forwardRef(({className:s,title:l,description:a,action:o,secondaryAction:c,align:r="left",id:i,...d},x)=>{const m=v.useTokenForeground("--color-primary");return e.jsx("section",{ref:x,id:i,className:t.cn("w-full py-6 pb-20",s),...d,children:e.jsx(p.Container,{children:e.jsxs("div",{className:"relative overflow-hidden rounded-[1.75rem] px-7 py-14 sm:px-14 sm:py-20",style:{background:"radial-gradient(120% 160% at 0% 0%, rgb(var(--color-primary)), rgb(var(--color-primary-hover)) 55%, rgb(var(--color-primary) / 0.85))",color:m},children:[e.jsx("div",{"aria-hidden":!0,className:"pointer-events-none absolute inset-0 grain opacity-[0.07] mix-blend-overlay"}),e.jsx("div",{"aria-hidden":!0,className:"pointer-events-none absolute -right-24 -top-24 h-72 w-72 rounded-full",style:{background:"rgb(var(--color-accent))",opacity:.35,filter:"blur(60px)"}}),e.jsxs("div",{className:t.cn("relative flex flex-col gap-9",r==="center"?"items-center text-center":"items-start"),children:[e.jsxs("div",{className:t.cn("max-w-2xl",r==="center"&&"mx-auto"),children:[e.jsx("h2",{className:"font-display text-balance text-3xl font-semibold leading-[1.06] tracking-[-0.02em] sm:text-5xl",children:l}),a?e.jsx("p",{className:t.cn("mt-4 text-pretty text-base leading-7 sm:text-lg",r==="center"&&"mx-auto max-w-xl"),children:a}):null]}),e.jsx(y.CTAActions,{action:o,secondaryAction:c,align:r})]})]})})})});n.displayName="CTAPanel";exports.CTAPanel=n;
|
|
3
|
+
//# sourceMappingURL=Panel.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Panel.cjs","sources":["../../../../../src/components/CTA/variants/Panel.tsx"],"sourcesContent":["\"use client\";\nimport { forwardRef } from \"react\";\nimport { cn } from \"../../../utils/cn\";\nimport { Container } from \"../../Container\";\nimport { useTokenForeground } from \"../../../utils/useTokenForeground\";\nimport { CTAActions } from \"../parts\";\nimport type { CTAProps } from \"../types\";\n\n/** panel — brand gradient panel, rounded corners. */\nexport const CTAPanel = forwardRef<HTMLElement, CTAProps>(\n ({ className, title, description, action, secondaryAction, align = \"left\", id, ...props }, ref) => {\n const fg = useTokenForeground(\"--color-primary\");\n\n return (\n <section ref={ref} id={id} className={cn(\"w-full py-6 pb-20\", className)} {...props}>\n <Container>\n <div\n className=\"relative overflow-hidden rounded-[1.75rem] px-7 py-14 sm:px-14 sm:py-20\"\n style={{\n background:\n \"radial-gradient(120% 160% at 0% 0%, rgb(var(--color-primary)), rgb(var(--color-primary-hover)) 55%, rgb(var(--color-primary) / 0.85))\",\n color: fg,\n }}\n >\n <div aria-hidden className=\"pointer-events-none absolute inset-0 grain opacity-[0.07] mix-blend-overlay\" />\n <div\n aria-hidden\n className=\"pointer-events-none absolute -right-24 -top-24 h-72 w-72 rounded-full\"\n style={{ background: \"rgb(var(--color-accent))\", opacity: 0.35, filter: \"blur(60px)\" }}\n />\n <div\n className={cn(\n \"relative flex flex-col gap-9\",\n align === \"center\" ? \"items-center text-center\" : \"items-start\",\n )}\n >\n <div className={cn(\"max-w-2xl\", align === \"center\" && \"mx-auto\")}>\n <h2 className=\"font-display text-balance text-3xl font-semibold leading-[1.06] tracking-[-0.02em] sm:text-5xl\">\n {title}\n </h2>\n {description ? (\n <p\n className={cn(\n \"mt-4 text-pretty text-base leading-7 sm:text-lg\",\n align === \"center\" && \"mx-auto max-w-xl\",\n )}\n >\n {description}\n </p>\n ) : null}\n </div>\n <CTAActions action={action} secondaryAction={secondaryAction} align={align} />\n </div>\n </div>\n </Container>\n </section>\n );\n },\n);\nCTAPanel.displayName = \"CTAPanel\";"],"names":["CTAPanel","forwardRef","className","title","description","action","secondaryAction","align","id","props","ref","fg","useTokenForeground","jsx","cn","Container","jsxs","CTAActions"],"mappings":"yRASaA,EAAWC,EAAAA,WACtB,CAAC,CAAE,UAAAC,EAAW,MAAAC,EAAO,YAAAC,EAAa,OAAAC,EAAQ,gBAAAC,EAAiB,MAAAC,EAAQ,OAAQ,GAAAC,EAAI,GAAGC,CAAA,EAASC,IAAQ,CACjG,MAAMC,EAAKC,EAAAA,mBAAmB,iBAAiB,EAE/C,OACEC,EAAAA,IAAC,UAAA,CAAQ,IAAAH,EAAU,GAAAF,EAAQ,UAAWM,KAAG,oBAAqBZ,CAAS,EAAI,GAAGO,EAC5E,SAAAI,EAAAA,IAACE,EAAAA,UAAA,CACC,SAAAC,EAAAA,KAAC,MAAA,CACC,UAAU,0EACV,MAAO,CACL,WACE,wIACF,MAAOL,CAAA,EAGT,SAAA,CAAAE,EAAAA,IAAC,MAAA,CAAI,cAAW,GAAC,UAAU,8EAA8E,EACzGA,EAAAA,IAAC,MAAA,CACC,cAAW,GACX,UAAU,wEACV,MAAO,CAAE,WAAY,2BAA4B,QAAS,IAAM,OAAQ,YAAA,CAAa,CAAA,EAEvFG,EAAAA,KAAC,MAAA,CACC,UAAWF,EAAAA,GACT,+BACAP,IAAU,SAAW,2BAA6B,aAAA,EAGpD,SAAA,CAAAS,OAAC,OAAI,UAAWF,EAAAA,GAAG,YAAaP,IAAU,UAAY,SAAS,EAC7D,SAAA,CAAAM,EAAAA,IAAC,KAAA,CAAG,UAAU,iGACX,SAAAV,EACH,EACCC,EACCS,EAAAA,IAAC,IAAA,CACC,UAAWC,EAAAA,GACT,kDACAP,IAAU,UAAY,kBAAA,EAGvB,SAAAH,CAAA,CAAA,EAED,IAAA,EACN,EACAS,EAAAA,IAACI,EAAAA,WAAA,CAAW,OAAAZ,EAAgB,gBAAAC,EAAkC,MAAAC,CAAA,CAAc,CAAA,CAAA,CAAA,CAC9E,CAAA,CAAA,EAEJ,CAAA,CACF,CAEJ,CACF,EACAP,EAAS,YAAc"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),d=require("react"),s=require("../../../utils/cn.cjs"),u=require("../../Container.cjs"),f=require("../parts.cjs"),c=d.forwardRef(({className:n,title:l,description:r,action:a,secondaryAction:m,align:t="left",id:o,...x},i)=>e.jsx("section",{ref:i,id:o,className:s.cn("w-full",n),...x,children:e.jsx(u.Container,{className:"py-20 sm:py-24",children:e.jsxs("div",{className:s.cn("flex flex-col gap-10 border-t border-border pt-14 sm:flex-row sm:items-end sm:justify-between sm:pt-16",t==="center"&&"items-center text-center sm:flex-col sm:items-center"),children:[e.jsxs("div",{className:s.cn("max-w-3xl",t==="center"&&"mx-auto"),children:[e.jsx("h2",{className:"font-display text-4xl font-semibold leading-[1.03] tracking-[-0.03em] text-balance text-foreground sm:text-6xl",children:l}),r?e.jsx("p",{className:s.cn("mt-5 max-w-xl text-pretty text-base leading-7 text-muted-foreground sm:text-lg",t==="center"&&"mx-auto"),children:r}):null]}),e.jsx(f.CTAActions,{action:a,secondaryAction:m,align:t})]})})}));c.displayName="CTASurface";exports.CTASurface=c;
|
|
2
|
+
//# sourceMappingURL=Surface.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Surface.cjs","sources":["../../../../../src/components/CTA/variants/Surface.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport { cn } from \"../../../utils/cn\";\nimport { Container } from \"../../Container\";\nimport { CTAActions } from \"../parts\";\nimport type { CTAProps } from \"../types\";\n\n/** surface — quiet paper band: hairline rule, big display type, actions right. */\nexport const CTASurface = forwardRef<HTMLElement, CTAProps>(\n ({ className, title, description, action, secondaryAction, align = \"left\", id, ...props }, ref) => (\n <section ref={ref} id={id} className={cn(\"w-full\", className)} {...props}>\n <Container className=\"py-20 sm:py-24\">\n <div\n className={cn(\n \"flex flex-col gap-10 border-t border-border pt-14 sm:flex-row sm:items-end sm:justify-between sm:pt-16\",\n align === \"center\" && \"items-center text-center sm:flex-col sm:items-center\",\n )}\n >\n <div className={cn(\"max-w-3xl\", align === \"center\" && \"mx-auto\")}>\n <h2 className=\"font-display text-4xl font-semibold leading-[1.03] tracking-[-0.03em] text-balance text-foreground sm:text-6xl\">\n {title}\n </h2>\n {description ? (\n <p className={cn(\"mt-5 max-w-xl text-pretty text-base leading-7 text-muted-foreground sm:text-lg\", align === \"center\" && \"mx-auto\")}>\n {description}\n </p>\n ) : null}\n </div>\n <CTAActions action={action} secondaryAction={secondaryAction} align={align} />\n </div>\n </Container>\n </section>\n ),\n);\nCTASurface.displayName = \"CTASurface\";"],"names":["CTASurface","forwardRef","className","title","description","action","secondaryAction","align","id","props","ref","jsx","cn","Container","jsxs","CTAActions"],"mappings":"sOAOaA,EAAaC,EAAAA,WACxB,CAAC,CAAE,UAAAC,EAAW,MAAAC,EAAO,YAAAC,EAAa,OAAAC,EAAQ,gBAAAC,EAAiB,MAAAC,EAAQ,OAAQ,GAAAC,EAAI,GAAGC,CAAA,EAASC,IACzFC,EAAAA,IAAC,UAAA,CAAQ,IAAAD,EAAU,GAAAF,EAAQ,UAAWI,EAAAA,GAAG,SAAUV,CAAS,EAAI,GAAGO,EACjE,SAAAE,EAAAA,IAACE,EAAAA,UAAA,CAAU,UAAU,iBACnB,SAAAC,EAAAA,KAAC,MAAA,CACC,UAAWF,EAAAA,GACT,yGACAL,IAAU,UAAY,sDAAA,EAGxB,SAAA,CAAAO,OAAC,OAAI,UAAWF,EAAAA,GAAG,YAAaL,IAAU,UAAY,SAAS,EAC7D,SAAA,CAAAI,EAAAA,IAAC,KAAA,CAAG,UAAU,iHACX,SAAAR,EACH,EACCC,EACCO,EAAAA,IAAC,IAAA,CAAE,UAAWC,EAAAA,GAAG,iFAAkFL,IAAU,UAAY,SAAS,EAC/H,SAAAH,CAAA,CACH,EACE,IAAA,EACN,EACAO,EAAAA,IAACI,EAAAA,WAAA,CAAW,OAAAV,EAAgB,gBAAAC,EAAkC,MAAAC,CAAA,CAAc,CAAA,CAAA,CAAA,EAEhF,CAAA,CACF,CAEJ,EACAP,EAAW,YAAc"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),s=require("react"),d=require("../utils/cn.cjs"),g={outlined:"border border-border bg-surface",elevated:"border border-border bg-surface shadow-soft",inset:"bg-surface-strong"},i=s.forwardRef(({className:r,variant:e="outlined",interactive:o=!1,...t},n)=>a.jsx("div",{ref:n,className:d.cn("rounded-xl transition-[border-color,box-shadow,transform] duration-200",g[e],o&&"cursor-pointer hover:-translate-y-0.5 hover:border-foreground/20 hover:shadow-raised","focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background",r),...t}));i.displayName="Card";const c=s.forwardRef(({className:r,icon:e,children:o,...t},n)=>a.jsxs("div",{ref:n,className:d.cn("flex flex-col gap-2 p-6 pb-0",r),...t,children:[e?a.jsx("div",{className:"mb-1.5",children:e}):null,o]}));c.displayName="CardHeader";const l=s.forwardRef(({className:r,...e},o)=>a.jsx("h3",{ref:o,className:d.cn("font-display text-lg font-semibold tracking-tight text-foreground",r),...e}));l.displayName="CardTitle";const f=s.forwardRef(({className:r,...e},o)=>a.jsx("p",{ref:o,className:d.cn("text-sm leading-6 text-muted-foreground",r),...e}));f.displayName="CardDescription";const u=s.forwardRef(({className:r,...e},o)=>a.jsx("div",{ref:o,className:d.cn("p-6 pt-5",r),...e}));u.displayName="CardContent";const b=s.forwardRef(({className:r,...e},o)=>a.jsx("div",{ref:o,className:d.cn("flex items-center gap-3 border-t border-border/70 p-6 pt-5",r),...e}));b.displayName="CardFooter";exports.Card=i;exports.CardContent=u;exports.CardDescription=f;exports.CardFooter=b;exports.CardHeader=c;exports.CardTitle=l;
|
|
2
|
+
//# sourceMappingURL=Card.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Card.cjs","sources":["../../../src/components/Card.tsx"],"sourcesContent":["import { forwardRef, type HTMLAttributes, type ReactNode } from \"react\";\nimport { cn } from \"../utils/cn\";\n\nexport type CardVariant = \"outlined\" | \"elevated\" | \"inset\";\n\nexport interface CardProps extends HTMLAttributes<HTMLDivElement> {\n variant?: CardVariant;\n /** Softens the whole card with hover lift + border tint. */\n interactive?: boolean;\n}\n\nconst variants: Record<CardVariant, string> = {\n outlined: \"border border-border bg-surface\",\n elevated: \"border border-border bg-surface shadow-soft\",\n inset: \"bg-surface-strong\",\n};\n\nexport const Card = forwardRef<HTMLDivElement, CardProps>(\n ({ className, variant = \"outlined\", interactive = false, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"rounded-xl transition-[border-color,box-shadow,transform] duration-200\",\n variants[variant],\n interactive &&\n \"cursor-pointer hover:-translate-y-0.5 hover:border-foreground/20 hover:shadow-raised\",\n \"focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\",\n className,\n )}\n {...props}\n />\n ),\n);\nCard.displayName = \"Card\";\n\nexport interface CardHeaderProps extends HTMLAttributes<HTMLDivElement> {\n icon?: ReactNode;\n}\n\nexport const CardHeader = forwardRef<HTMLDivElement, CardHeaderProps>(\n ({ className, icon, children, ...props }, ref) => (\n <div ref={ref} className={cn(\"flex flex-col gap-2 p-6 pb-0\", className)} {...props}>\n {icon ? <div className=\"mb-1.5\">{icon}</div> : null}\n {children}\n </div>\n ),\n);\nCardHeader.displayName = \"CardHeader\";\n\nexport const CardTitle = forwardRef<HTMLHeadingElement, HTMLAttributes<HTMLHeadingElement>>(\n ({ className, ...props }, ref) => (\n <h3\n ref={ref}\n className={cn(\"font-display text-lg font-semibold tracking-tight text-foreground\", className)}\n {...props}\n />\n ),\n);\nCardTitle.displayName = \"CardTitle\";\n\nexport const CardDescription = forwardRef<HTMLParagraphElement, HTMLAttributes<HTMLParagraphElement>>(\n ({ className, ...props }, ref) => (\n <p ref={ref} className={cn(\"text-sm leading-6 text-muted-foreground\", className)} {...props} />\n ),\n);\nCardDescription.displayName = \"CardDescription\";\n\nexport const CardContent = forwardRef<HTMLDivElement, HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"p-6 pt-5\", className)} {...props} />\n ),\n);\nCardContent.displayName = \"CardContent\";\n\nexport const CardFooter = forwardRef<HTMLDivElement, HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn(\"flex items-center gap-3 border-t border-border/70 p-6 pt-5\", className)} {...props} />\n ),\n);\nCardFooter.displayName = \"CardFooter\";"],"names":["variants","Card","forwardRef","className","variant","interactive","props","ref","jsx","cn","CardHeader","icon","children","jsxs","CardTitle","CardDescription","CardContent","CardFooter"],"mappings":"qKAWMA,EAAwC,CAC5C,SAAU,kCACV,SAAU,8CACV,MAAO,mBACT,EAEaC,EAAOC,EAAAA,WAClB,CAAC,CAAE,UAAAC,EAAW,QAAAC,EAAU,WAAY,YAAAC,EAAc,GAAO,GAAGC,GAASC,IACnEC,EAAAA,IAAC,MAAA,CACC,IAAAD,EACA,UAAWE,EAAAA,GACT,yEACAT,EAASI,CAAO,EAChBC,GACE,uFACF,2IACAF,CAAA,EAED,GAAGG,CAAA,CAAA,CAGV,EACAL,EAAK,YAAc,OAMZ,MAAMS,EAAaR,EAAAA,WACxB,CAAC,CAAE,UAAAC,EAAW,KAAAQ,EAAM,SAAAC,EAAU,GAAGN,GAASC,IACxCM,OAAC,MAAA,CAAI,IAAAN,EAAU,UAAWE,KAAG,+BAAgCN,CAAS,EAAI,GAAGG,EAC1E,SAAA,CAAAK,EAAOH,EAAAA,IAAC,MAAA,CAAI,UAAU,SAAU,WAAK,EAAS,KAC9CI,CAAA,CAAA,CACH,CAEJ,EACAF,EAAW,YAAc,aAElB,MAAMI,EAAYZ,EAAAA,WACvB,CAAC,CAAE,UAAAC,EAAW,GAAGG,CAAA,EAASC,IACxBC,EAAAA,IAAC,KAAA,CACC,IAAAD,EACA,UAAWE,EAAAA,GAAG,oEAAqEN,CAAS,EAC3F,GAAGG,CAAA,CAAA,CAGV,EACAQ,EAAU,YAAc,YAEjB,MAAMC,EAAkBb,EAAAA,WAC7B,CAAC,CAAE,UAAAC,EAAW,GAAGG,CAAA,EAASC,IACxBC,EAAAA,IAAC,IAAA,CAAE,IAAAD,EAAU,UAAWE,EAAAA,GAAG,0CAA2CN,CAAS,EAAI,GAAGG,CAAA,CAAO,CAEjG,EACAS,EAAgB,YAAc,kBAEvB,MAAMC,EAAcd,EAAAA,WACzB,CAAC,CAAE,UAAAC,EAAW,GAAGG,CAAA,EAASC,IACxBC,EAAAA,IAAC,MAAA,CAAI,IAAAD,EAAU,UAAWE,EAAAA,GAAG,WAAYN,CAAS,EAAI,GAAGG,CAAA,CAAO,CAEpE,EACAU,EAAY,YAAc,cAEnB,MAAMC,EAAaf,EAAAA,WACxB,CAAC,CAAE,UAAAC,EAAW,GAAGG,CAAA,EAASC,IACxBC,EAAAA,IAAC,MAAA,CAAI,IAAAD,EAAU,UAAWE,EAAAA,GAAG,6DAA8DN,CAAS,EAAI,GAAGG,CAAA,CAAO,CAEtH,EACAW,EAAW,YAAc"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),n=require("react"),c=require("../utils/cn.cjs"),i={sm:"max-w-xl",md:"max-w-3xl",lg:"max-w-5xl",xl:"max-w-6xl"},o=n.forwardRef(({className:e,as:t,size:a="xl",gutters:s=!0,...l},p)=>{const g=t??"div";return r.jsx(g,{ref:p,className:c.cn("mx-auto w-full",a!=="full"&&i[a],s&&"px-5 sm:px-8",e),...l})});o.displayName="Container";const m={0:"gap-0",1:"gap-1",2:"gap-2",3:"gap-3",4:"gap-4",5:"gap-5",6:"gap-6",8:"gap-8",10:"gap-10",12:"gap-12",16:"gap-16",20:"gap-20"},x=n.forwardRef(({className:e,gap:t=4,horizontal:a=!1,...s},l)=>r.jsx("div",{ref:l,className:c.cn("flex",a?"flex-row flex-wrap items-center":"flex-col",m[t],e),...s}));x.displayName="Stack";exports.Container=o;exports.Stack=x;
|
|
2
|
+
//# sourceMappingURL=Container.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Container.cjs","sources":["../../../src/components/Container.tsx"],"sourcesContent":["import { forwardRef, type ElementType, type HTMLAttributes } from \"react\";\nimport { cn } from \"../utils/cn\";\n\nexport type ContainerSize = \"sm\" | \"md\" | \"lg\" | \"xl\" | \"full\";\n\nexport interface ContainerProps extends HTMLAttributes<HTMLElement> {\n /** Render as a specific element (section, header, …). */\n as?: ElementType;\n /**\n * Maximum content width:\n * `sm` → prose · `md` → reading · `lg` → plans/splits ·\n * `xl` → default marketing page · `full` → edge-to-edge.\n */\n size?: ContainerSize;\n /** Responsive gutters (px-5 / sm:px-8). Disable for flush content. */\n gutters?: boolean;\n}\n\nconst sizes: Record<Exclude<ContainerSize, \"full\">, string> = {\n sm: \"max-w-xl\",\n md: \"max-w-3xl\",\n lg: \"max-w-5xl\",\n xl: \"max-w-6xl\",\n};\n\n/**\n * Shared layout wrapper — the single source of the container + gutter rules\n * used across Section, Footer, CTA, templates…\n */\nexport const Container = forwardRef<HTMLElement, ContainerProps>(\n ({ className, as, size = \"xl\", gutters = true, ...props }, ref) => {\n const Tag = (as ?? \"div\") as ElementType;\n return (\n <Tag\n ref={ref as never}\n className={cn(\n \"mx-auto w-full\",\n size !== \"full\" && sizes[size],\n gutters && \"px-5 sm:px-8\",\n className,\n )}\n {...props}\n />\n );\n },\n);\nContainer.displayName = \"Container\";\n\nexport type StackGap = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 12 | 16 | 20;\n\nconst gaps: Record<StackGap, string> = {\n 0: \"gap-0\",\n 1: \"gap-1\",\n 2: \"gap-2\",\n 3: \"gap-3\",\n 4: \"gap-4\",\n 5: \"gap-5\",\n 6: \"gap-6\",\n 8: \"gap-8\",\n 10: \"gap-10\",\n 12: \"gap-12\",\n 16: \"gap-16\",\n 20: \"gap-20\",\n};\n\nexport interface StackProps extends HTMLAttributes<HTMLDivElement> {\n gap?: StackGap;\n horizontal?: boolean;\n}\n\n/** Vertical (or horizontal) rhythm helper using flex gaps. */\nexport const Stack = forwardRef<HTMLDivElement, StackProps>(\n ({ className, gap = 4, horizontal = false, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"flex\",\n horizontal ? \"flex-row flex-wrap items-center\" : \"flex-col\",\n gaps[gap],\n className,\n )}\n {...props}\n />\n ),\n);\nStack.displayName = \"Stack\";"],"names":["sizes","Container","forwardRef","className","as","size","gutters","props","ref","Tag","jsx","cn","gaps","Stack","gap","horizontal"],"mappings":"qKAkBMA,EAAwD,CAC5D,GAAI,WACJ,GAAI,YACJ,GAAI,YACJ,GAAI,WACN,EAMaC,EAAYC,EAAAA,WACvB,CAAC,CAAE,UAAAC,EAAW,GAAAC,EAAI,KAAAC,EAAO,KAAM,QAAAC,EAAU,GAAM,GAAGC,CAAA,EAASC,IAAQ,CACjE,MAAMC,EAAOL,GAAM,MACnB,OACEM,EAAAA,IAACD,EAAA,CACC,IAAAD,EACA,UAAWG,EAAAA,GACT,iBACAN,IAAS,QAAUL,EAAMK,CAAI,EAC7BC,GAAW,eACXH,CAAA,EAED,GAAGI,CAAA,CAAA,CAGV,CACF,EACAN,EAAU,YAAc,YAIxB,MAAMW,EAAiC,CACrC,EAAG,QACH,EAAG,QACH,EAAG,QACH,EAAG,QACH,EAAG,QACH,EAAG,QACH,EAAG,QACH,EAAG,QACH,GAAI,SACJ,GAAI,SACJ,GAAI,SACJ,GAAI,QACN,EAQaC,EAAQX,EAAAA,WACnB,CAAC,CAAE,UAAAC,EAAW,IAAAW,EAAM,EAAG,WAAAC,EAAa,GAAO,GAAGR,GAASC,IACrDE,EAAAA,IAAC,MAAA,CACC,IAAAF,EACA,UAAWG,EAAAA,GACT,OACAI,EAAa,kCAAoC,WACjDH,EAAKE,CAAG,EACRX,CAAA,EAED,GAAGI,CAAA,CAAA,CAGV,EACAM,EAAM,YAAc"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),x=require("./variants/Cards.cjs"),q=require("./variants/Accordion.cjs"),j=require("./variants/Split.cjs"),u=({className:i,items:c,option:e="accordion",allowMultiple:t=!1,defaultOpen:n=[],eyebrow:s,title:a,description:d,...o})=>e==="cards"?r.jsx(x.FaqCards,{className:i,items:c,eyebrow:s,...o}):e==="split"?r.jsx(j.FaqSplit,{className:i,items:c,allowMultiple:t,defaultOpen:n,eyebrow:s,title:a,description:d,...o}):r.jsx("div",{className:"mx-auto w-full max-w-3xl",children:r.jsx(q.FaqAccordion,{className:i,items:c,allowMultiple:t,defaultOpen:n})});u.displayName="FAQ";exports.FAQ=u;
|
|
2
|
+
//# sourceMappingURL=FAQ.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FAQ.cjs","sources":["../../../../src/components/FAQ/FAQ.tsx"],"sourcesContent":["import type { FAQProps } from \"./types\";\nimport { FaqCards } from \"./variants/Cards\";\nimport { FaqAccordion } from \"./variants/Accordion\";\nimport { FaqSplit } from \"./variants/Split\";\n\nexport const FAQ = ({\n className,\n items,\n option = \"accordion\",\n allowMultiple = false,\n defaultOpen = [],\n eyebrow,\n title,\n description,\n ...props\n}: FAQProps) => {\n if (option === \"cards\") {\n return <FaqCards className={className} items={items} eyebrow={eyebrow} {...props} />;\n }\n\n if (option === \"split\") {\n return (\n <FaqSplit\n className={className}\n items={items}\n allowMultiple={allowMultiple}\n defaultOpen={defaultOpen}\n eyebrow={eyebrow}\n title={title}\n description={description}\n {...props}\n />\n );\n }\n\n // accordion\n return (\n <div className=\"mx-auto w-full max-w-3xl\">\n <FaqAccordion\n className={className}\n items={items}\n allowMultiple={allowMultiple}\n defaultOpen={defaultOpen}\n />\n </div>\n );\n};\nFAQ.displayName = \"FAQ\";"],"names":["FAQ","className","items","option","allowMultiple","defaultOpen","eyebrow","title","description","props","FaqCards","jsx","FaqSplit","FaqAccordion"],"mappings":"+NAKaA,EAAM,CAAC,CAClB,UAAAC,EACA,MAAAC,EACA,OAAAC,EAAS,YACT,cAAAC,EAAgB,GAChB,YAAAC,EAAc,CAAA,EACd,QAAAC,EACA,MAAAC,EACA,YAAAC,EACA,GAAGC,CACL,IACMN,IAAW,cACLO,EAAAA,SAAA,CAAS,UAAAT,EAAsB,MAAAC,EAAc,QAAAI,EAAmB,GAAGG,EAAO,EAGhFN,IAAW,QAEXQ,EAAAA,IAACC,EAAAA,SAAA,CACC,UAAAX,EACA,MAAAC,EACA,cAAAE,EACA,YAAAC,EACA,QAAAC,EACA,MAAAC,EACA,YAAAC,EACC,GAAGC,CAAA,CAAA,EAORE,EAAAA,IAAC,MAAA,CAAI,UAAU,2BACb,SAAAA,EAAAA,IAACE,EAAAA,aAAA,CACC,UAAAZ,EACA,MAAAC,EACA,cAAAE,EACA,YAAAC,CAAA,CAAA,EAEJ,EAGJL,EAAI,YAAc"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime"),u=require("react"),c=require("../../utils/cn.cjs"),l=require("../../icons.cjs");function x(e,t){const[o,i]=u.useState(()=>new Set(e?t:t.slice(0,1)));return{openSet:o,toggle:r=>{i(a=>{const s=new Set(a);return s.has(r)?s.delete(r):(e||s.clear(),s.add(r)),s})},isOpen:r=>o.has(r)}}function d({item:e,open:t,onToggle:o,style:i}){return n.jsxs("div",{children:[n.jsx("h3",{children:n.jsxs("button",{type:"button","aria-expanded":t,onClick:o,className:i==="boxed"?"flex w-full cursor-pointer items-center justify-between gap-4 px-6 py-5 text-left text-[15px] font-medium text-foreground transition-colors duration-150 hover:bg-surface-strong/60 focus-visible:outline-none":"flex w-full cursor-pointer items-center justify-between gap-4 py-5 text-left text-base font-semibold text-foreground transition-colors duration-150 focus-visible:outline-none",children:[e.question,n.jsx(l.Plus,{className:c.cn("h-4.5 w-4.5 shrink-0 text-foreground/45 transition-transform duration-200 sm:h-5 sm:w-5",t&&"rotate-45 text-primary")})]})}),t?n.jsx("p",{className:i==="boxed"?"px-6 pb-6 text-sm leading-7 text-muted-foreground":"pb-6 text-sm leading-7 text-muted-foreground",children:e.answer}):null]})}function f({label:e}){return n.jsx("p",{className:"text-xs font-semibold uppercase tracking-[0.18em] text-primary",children:e})}exports.FaqEyebrow=f;exports.FaqItemRow=d;exports.useFaqState=x;
|
|
3
|
+
//# sourceMappingURL=parts.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parts.cjs","sources":["../../../../src/components/FAQ/parts.tsx"],"sourcesContent":["\"use client\";\nimport { useState } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { Plus } from \"../../icons\";\nimport type { FaqItem } from \"./types\";\n\nexport function useFaqState(allowMultiple: boolean, defaultOpen: number[]) {\n const [openSet, setOpenSet] = useState<Set<number>>(\n () => new Set(allowMultiple ? defaultOpen : defaultOpen.slice(0, 1)),\n );\n\n const toggle = (index: number) => {\n setOpenSet((prev) => {\n const next = new Set(prev);\n if (next.has(index)) {\n next.delete(index);\n } else {\n if (!allowMultiple) next.clear();\n next.add(index);\n }\n return next;\n });\n };\n\n return { openSet, toggle, isOpen: (i: number) => openSet.has(i) };\n}\n\nexport function FaqItemRow({\n item,\n open,\n onToggle,\n style,\n}: {\n item: FaqItem;\n open: boolean;\n onToggle: () => void;\n style: \"boxed\" | \"bare\";\n}) {\n return (\n <div>\n <h3>\n <button\n type=\"button\"\n aria-expanded={open}\n onClick={onToggle}\n className={\n style === \"boxed\"\n ? \"flex w-full cursor-pointer items-center justify-between gap-4 px-6 py-5 text-left text-[15px] font-medium text-foreground transition-colors duration-150 hover:bg-surface-strong/60 focus-visible:outline-none\"\n : \"flex w-full cursor-pointer items-center justify-between gap-4 py-5 text-left text-base font-semibold text-foreground transition-colors duration-150 focus-visible:outline-none\"\n }\n >\n {item.question}\n <Plus\n className={cn(\n \"h-4.5 w-4.5 shrink-0 text-foreground/45 transition-transform duration-200 sm:h-5 sm:w-5\",\n open && \"rotate-45 text-primary\",\n )}\n />\n </button>\n </h3>\n {open ? (\n <p className={style === \"boxed\" ? \"px-6 pb-6 text-sm leading-7 text-muted-foreground\" : \"pb-6 text-sm leading-7 text-muted-foreground\"}>\n {item.answer}\n </p>\n ) : null}\n </div>\n );\n}\n\nexport function FaqEyebrow({ label }: { label: string }) {\n return (\n <p className=\"text-xs font-semibold uppercase tracking-[0.18em] text-primary\">{label}</p>\n );\n}"],"names":["useFaqState","allowMultiple","defaultOpen","openSet","setOpenSet","useState","index","prev","next","i","FaqItemRow","item","open","onToggle","style","jsx","jsxs","Plus","cn","FaqEyebrow","label"],"mappings":"qMAMO,SAASA,EAAYC,EAAwBC,EAAuB,CACzE,KAAM,CAACC,EAASC,CAAU,EAAIC,EAAAA,SAC5B,IAAM,IAAI,IAAIJ,EAAgBC,EAAcA,EAAY,MAAM,EAAG,CAAC,CAAC,CAAA,EAgBrE,MAAO,CAAE,QAAAC,EAAS,OAbFG,GAAkB,CAChCF,EAAYG,GAAS,CACnB,MAAMC,EAAO,IAAI,IAAID,CAAI,EACzB,OAAIC,EAAK,IAAIF,CAAK,EAChBE,EAAK,OAAOF,CAAK,GAEZL,GAAeO,EAAK,MAAA,EACzBA,EAAK,IAAIF,CAAK,GAETE,CACT,CAAC,CACH,EAE0B,OAASC,GAAcN,EAAQ,IAAIM,CAAC,CAAA,CAChE,CAEO,SAASC,EAAW,CACzB,KAAAC,EACA,KAAAC,EACA,SAAAC,EACA,MAAAC,CACF,EAKG,CACD,cACG,MAAA,CACC,SAAA,CAAAC,MAAC,KAAA,CACC,SAAAC,EAAAA,KAAC,SAAA,CACC,KAAK,SACL,gBAAeJ,EACf,QAASC,EACT,UACEC,IAAU,QACN,iNACA,iLAGL,SAAA,CAAAH,EAAK,SACNI,EAAAA,IAACE,EAAAA,KAAA,CACC,UAAWC,EAAAA,GACT,0FACAN,GAAQ,wBAAA,CACV,CAAA,CACF,CAAA,CAAA,EAEJ,EACCA,EACCG,EAAAA,IAAC,IAAA,CAAE,UAAWD,IAAU,QAAU,oDAAsD,+CACrF,SAAAH,EAAK,MAAA,CACR,EACE,IAAA,EACN,CAEJ,CAEO,SAASQ,EAAW,CAAE,MAAAC,GAA4B,CACvD,OACEL,EAAAA,IAAC,IAAA,CAAE,UAAU,iEAAkE,SAAAK,EAAM,CAEzF"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),q=require("../../../utils/cn.cjs"),s=require("../parts.cjs"),i=({className:n,items:c,allowMultiple:d=!1,defaultOpen:a=[],bare:e=!1,option:p,title:g,eyebrow:y,description:m,...l})=>{const{isOpen:u,toggle:b}=s.useFaqState(d,a);return t.jsx("div",{className:q.cn(!e&&"divide-y divide-border rounded-2xl border border-border bg-surface",n),...l,children:c.map((o,r)=>t.jsx(s.FaqItemRow,{item:o,open:u(r),onToggle:()=>b(r),style:e?"bare":"boxed"},o.question))})};i.displayName="FaqAccordion";exports.FaqAccordion=i;
|
|
3
|
+
//# sourceMappingURL=Accordion.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Accordion.cjs","sources":["../../../../../src/components/FAQ/variants/Accordion.tsx"],"sourcesContent":["\"use client\";\nimport { cn } from \"../../../utils/cn\";\nimport { useFaqState, FaqItemRow } from \"../parts\";\nimport type { FAQProps } from \"../types\";\n\ninterface AccordionProps extends FAQProps {\n allowMultiple?: boolean;\n defaultOpen?: number[];\n bare?: boolean;\n}\n\nexport const FaqAccordion = ({\n className,\n items,\n allowMultiple = false,\n defaultOpen = [],\n bare = false,\n option,\n title,\n eyebrow,\n description,\n ...props\n}: AccordionProps) => {\n const { isOpen, toggle } = useFaqState(allowMultiple, defaultOpen);\n\n return (\n <div\n className={cn(\n !bare && \"divide-y divide-border rounded-2xl border border-border bg-surface\",\n className,\n )}\n {...props}\n >\n {items.map((item, index) => (\n <FaqItemRow\n key={item.question}\n item={item}\n open={isOpen(index)}\n onToggle={() => toggle(index)}\n style={bare ? \"bare\" : \"boxed\"}\n />\n ))}\n </div>\n );\n};\nFaqAccordion.displayName = \"FaqAccordion\";"],"names":["FaqAccordion","className","items","allowMultiple","defaultOpen","bare","option","title","eyebrow","description","props","isOpen","toggle","useFaqState","jsx","cn","item","index","FaqItemRow"],"mappings":"kLAWaA,EAAe,CAAC,CAC3B,UAAAC,EACA,MAAAC,EACA,cAAAC,EAAgB,GAChB,YAAAC,EAAc,CAAA,EACd,KAAAC,EAAO,GACP,OAAAC,EACA,MAAAC,EACA,QAAAC,EACA,YAAAC,EACA,GAAGC,CACL,IAAsB,CACpB,KAAM,CAAE,OAAAC,EAAQ,OAAAC,CAAA,EAAWC,EAAAA,YAAYV,EAAeC,CAAW,EAEjE,OACEU,EAAAA,IAAC,MAAA,CACC,UAAWC,EAAAA,GACT,CAACV,GAAQ,qEACTJ,CAAA,EAED,GAAGS,EAEH,SAAAR,EAAM,IAAI,CAACc,EAAMC,IAChBH,EAAAA,IAACI,EAAAA,WAAA,CAEC,KAAAF,EACA,KAAML,EAAOM,CAAK,EAClB,SAAU,IAAML,EAAOK,CAAK,EAC5B,MAAOZ,EAAO,OAAS,OAAA,EAJlBW,EAAK,QAAA,CAMb,CAAA,CAAA,CAGP,EACAhB,EAAa,YAAc"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),n=require("../../../utils/cn.cjs"),o=require("../parts.cjs"),t=({className:a,items:d,eyebrow:r,title:c,description:m,option:x,...l})=>e.jsxs("div",{className:n.cn("w-full",a),...l,children:[r?e.jsx("div",{className:"mb-10",children:e.jsx(o.FaqEyebrow,{label:String(r)})}):null,e.jsx("div",{className:"grid grid-cols-1 gap-4 md:grid-cols-2",children:d.map((s,i)=>e.jsxs("div",{className:"flex flex-col rounded-xl border border-border bg-surface p-7",children:[e.jsxs("div",{className:"flex items-baseline gap-4",children:[e.jsx("span",{className:"font-display text-sm font-semibold tabular-nums text-foreground/35",children:String(i+1).padStart(2,"0")}),e.jsx("h3",{className:"font-display text-lg font-semibold tracking-tight text-foreground",children:s.question})]}),e.jsx("p",{className:"mt-4 border-t border-border pt-4 text-sm leading-6 text-muted-foreground",children:s.answer})]},s.question))})]});t.displayName="FaqCards";exports.FaqCards=t;
|
|
2
|
+
//# sourceMappingURL=Cards.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Cards.cjs","sources":["../../../../../src/components/FAQ/variants/Cards.tsx"],"sourcesContent":["import { cn } from \"../../../utils/cn\";\nimport { FaqEyebrow } from \"../parts\";\nimport type { FAQProps } from \"../types\";\n\ninterface CardsProps extends FAQProps {}\n\nexport const FaqCards = ({\n className,\n items,\n eyebrow,\n title,\n description,\n option,\n ...props\n}: CardsProps) => (\n <div className={cn(\"w-full\", className)} {...props}>\n {eyebrow ? <div className=\"mb-10\"><FaqEyebrow label={String(eyebrow)} /></div> : null}\n <div className=\"grid grid-cols-1 gap-4 md:grid-cols-2\">\n {items.map((item, i) => (\n <div\n key={item.question}\n className=\"flex flex-col rounded-xl border border-border bg-surface p-7\"\n >\n <div className=\"flex items-baseline gap-4\">\n <span className=\"font-display text-sm font-semibold tabular-nums text-foreground/35\">\n {String(i + 1).padStart(2, \"0\")}\n </span>\n <h3 className=\"font-display text-lg font-semibold tracking-tight text-foreground\">\n {item.question}\n </h3>\n </div>\n <p className=\"mt-4 border-t border-border pt-4 text-sm leading-6 text-muted-foreground\">\n {item.answer}\n </p>\n </div>\n ))}\n </div>\n </div>\n);\nFaqCards.displayName = \"FaqCards\";"],"names":["FaqCards","className","items","eyebrow","title","description","option","props","jsxs","cn","jsx","FaqEyebrow","item"],"mappings":"kLAMaA,EAAW,CAAC,CACvB,UAAAC,EACA,MAAAC,EACA,QAAAC,EACA,MAAAC,EACA,YAAAC,EACA,OAAAC,EACA,GAAGC,CACL,IACEC,EAAAA,KAAC,OAAI,UAAWC,EAAAA,GAAG,SAAUR,CAAS,EAAI,GAAGM,EAC1C,SAAA,CAAAJ,EAAUO,EAAAA,IAAC,MAAA,CAAI,UAAU,QAAQ,SAAAA,EAAAA,IAACC,EAAAA,WAAA,CAAW,MAAO,OAAOR,CAAO,CAAA,CAAG,CAAA,CAAE,EAAS,KACjFO,EAAAA,IAAC,OAAI,UAAU,wCACZ,WAAM,IAAI,CAACE,EAAM,IAChBJ,EAAAA,KAAC,MAAA,CAEC,UAAU,+DAEV,SAAA,CAAAA,EAAAA,KAAC,MAAA,CAAI,UAAU,4BACb,SAAA,CAAAE,EAAAA,IAAC,OAAA,CAAK,UAAU,qEACb,SAAA,OAAO,EAAI,CAAC,EAAE,SAAS,EAAG,GAAG,CAAA,CAChC,EACAA,EAAAA,IAAC,KAAA,CAAG,UAAU,oEACX,WAAK,QAAA,CACR,CAAA,EACF,EACAA,EAAAA,IAAC,IAAA,CAAE,UAAU,2EACV,WAAK,MAAA,CACR,CAAA,CAAA,EAbKE,EAAK,QAAA,CAeb,CAAA,CACH,CAAA,CAAA,CACF,EAEFZ,EAAS,YAAc"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),o=require("../../../utils/cn.cjs"),g=require("../parts.cjs"),u=require("./Accordion.cjs"),r=({className:i,items:a,allowMultiple:n=!1,defaultOpen:d=[],eyebrow:t,title:l,description:s,option:x,...c})=>e.jsxs("div",{className:o.cn("grid w-full gap-10 lg:grid-cols-[0.9fr_1.1fr] lg:gap-20",i),...c,children:[e.jsxs("div",{className:"lg:sticky lg:top-24 lg:self-start",children:[t?e.jsx(g.FaqEyebrow,{label:String(t)}):null,l?e.jsx("h2",{className:"mt-4 font-display text-3xl font-semibold leading-[1.08] tracking-tight text-foreground sm:text-4xl",children:l}):null,s?e.jsx("p",{className:"mt-4 text-pretty text-base leading-7 text-muted-foreground",children:s}):null]}),e.jsx("div",{className:"divide-y divide-border",children:e.jsx(u.FaqAccordion,{items:a,allowMultiple:n,defaultOpen:d,bare:!0})})]});r.displayName="FaqSplit";exports.FaqSplit=r;
|
|
2
|
+
//# sourceMappingURL=Split.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Split.cjs","sources":["../../../../../src/components/FAQ/variants/Split.tsx"],"sourcesContent":["import { cn } from \"../../../utils/cn\";\nimport { FaqEyebrow } from \"../parts\";\nimport { FaqAccordion } from \"./Accordion\";\nimport type { FAQProps } from \"../types\";\n\ninterface SplitProps extends FAQProps {\n allowMultiple?: boolean;\n defaultOpen?: number[];\n}\n\nexport const FaqSplit = ({\n className,\n items,\n allowMultiple = false,\n defaultOpen = [],\n eyebrow,\n title,\n description,\n option,\n ...props\n}: SplitProps) => (\n <div className={cn(\"grid w-full gap-10 lg:grid-cols-[0.9fr_1.1fr] lg:gap-20\", className)} {...props}>\n <div className=\"lg:sticky lg:top-24 lg:self-start\">\n {eyebrow ? <FaqEyebrow label={String(eyebrow)} /> : null}\n {title ? (\n <h2 className=\"mt-4 font-display text-3xl font-semibold leading-[1.08] tracking-tight text-foreground sm:text-4xl\">\n {title}\n </h2>\n ) : null}\n {description ? (\n <p className=\"mt-4 text-pretty text-base leading-7 text-muted-foreground\">{description}</p>\n ) : null}\n </div>\n <div className=\"divide-y divide-border\">\n <FaqAccordion\n items={items}\n allowMultiple={allowMultiple}\n defaultOpen={defaultOpen}\n bare\n />\n </div>\n </div>\n);\nFaqSplit.displayName = \"FaqSplit\";"],"names":["FaqSplit","className","items","allowMultiple","defaultOpen","eyebrow","title","description","option","props","jsxs","cn","FaqEyebrow","jsx","FaqAccordion"],"mappings":"+MAUaA,EAAW,CAAC,CACvB,UAAAC,EACA,MAAAC,EACA,cAAAC,EAAgB,GAChB,YAAAC,EAAc,CAAA,EACd,QAAAC,EACA,MAAAC,EACA,YAAAC,EACA,OAAAC,EACA,GAAGC,CACL,IACEC,EAAAA,KAAC,OAAI,UAAWC,EAAAA,GAAG,0DAA2DV,CAAS,EAAI,GAAGQ,EAC5F,SAAA,CAAAC,EAAAA,KAAC,MAAA,CAAI,UAAU,oCACZ,SAAA,CAAAL,QAAWO,EAAAA,WAAA,CAAW,MAAO,OAAOP,CAAO,EAAG,EAAK,KACnDC,EACCO,EAAAA,IAAC,KAAA,CAAG,UAAU,qGACX,WACH,EACE,KACHN,EACCM,EAAAA,IAAC,IAAA,CAAE,UAAU,6DAA8D,WAAY,EACrF,IAAA,EACN,EACAA,EAAAA,IAAC,MAAA,CAAI,UAAU,yBACb,SAAAA,EAAAA,IAACC,EAAAA,aAAA,CACC,MAAAZ,EACA,cAAAC,EACA,YAAAC,EACA,KAAI,EAAA,CAAA,CACN,CACF,CAAA,CAAA,CACF,EAEFJ,EAAS,YAAc"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),f=require("react"),t=require("../../utils/cn.cjs"),x=require("../../utils/contrast.cjs"),s=f.forwardRef(({className:d,icon:o,title:a,description:l,accent:e,large:n=!1,...i},u)=>{const c=e?{backgroundColor:e,color:x.getContrastText(e,"#111111","#ffffff")}:void 0;return r.jsxs("div",{ref:u,className:t.cn("group relative flex h-full flex-col rounded-xl border border-border bg-surface p-7 transition-colors duration-200 hover:border-foreground/15",d),...i,children:[o?r.jsx("div",{className:t.cn("mb-5 inline-flex h-10 w-10 items-center justify-center rounded-lg text-[1.05rem]",!e&&"bg-primary-soft text-primary"),style:c,children:o}):null,r.jsx("h3",{className:t.cn("font-display font-semibold tracking-tight text-foreground",n?"text-2xl":"text-lg"),children:a}),l?r.jsx("p",{className:t.cn("mt-2.5 text-pretty leading-relaxed text-muted-foreground",n?"text-[15px]":"text-sm"),children:l}):null]})});s.displayName="FeatureCard";exports.FeatureCard=s;
|
|
2
|
+
//# sourceMappingURL=FeatureCard.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FeatureCard.cjs","sources":["../../../../src/components/Features/FeatureCard.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { getContrastText } from \"../../utils/contrast\";\nimport type { FeatureCardProps } from \"./types\";\n\nexport const FeatureCard = forwardRef<HTMLDivElement, FeatureCardProps>(\n ({ className, icon, title, description, accent, large = false, ...props }, ref) => {\n const chipStyle = accent\n ? { backgroundColor: accent, color: getContrastText(accent, \"#111111\", \"#ffffff\") }\n : undefined;\n\n return (\n <div\n ref={ref}\n className={cn(\n \"group relative flex h-full flex-col rounded-xl border border-border bg-surface p-7 transition-colors duration-200 hover:border-foreground/15\",\n className,\n )}\n {...props}\n >\n {icon ? (\n <div\n className={cn(\n \"mb-5 inline-flex h-10 w-10 items-center justify-center rounded-lg text-[1.05rem]\",\n !accent && \"bg-primary-soft text-primary\",\n )}\n style={chipStyle}\n >\n {icon}\n </div>\n ) : null}\n <h3 className={cn(\"font-display font-semibold tracking-tight text-foreground\", large ? \"text-2xl\" : \"text-lg\")}>\n {title}\n </h3>\n {description ? (\n <p className={cn(\"mt-2.5 text-pretty leading-relaxed text-muted-foreground\", large ? \"text-[15px]\" : \"text-sm\")}>\n {description}\n </p>\n ) : null}\n </div>\n );\n },\n);\nFeatureCard.displayName = \"FeatureCard\";"],"names":["FeatureCard","forwardRef","className","icon","title","description","accent","large","props","ref","chipStyle","getContrastText","jsxs","cn","jsx"],"mappings":"8MAKaA,EAAcC,EAAAA,WACzB,CAAC,CAAE,UAAAC,EAAW,KAAAC,EAAM,MAAAC,EAAO,YAAAC,EAAa,OAAAC,EAAQ,MAAAC,EAAQ,GAAO,GAAGC,CAAA,EAASC,IAAQ,CACjF,MAAMC,EAAYJ,EACd,CAAE,gBAAiBA,EAAQ,MAAOK,EAAAA,gBAAgBL,EAAQ,UAAW,SAAS,CAAA,EAC9E,OAEJ,OACEM,EAAAA,KAAC,MAAA,CACC,IAAAH,EACA,UAAWI,EAAAA,GACT,+IACAX,CAAA,EAED,GAAGM,EAEH,SAAA,CAAAL,EACCW,EAAAA,IAAC,MAAA,CACC,UAAWD,EAAAA,GACT,mFACA,CAACP,GAAU,8BAAA,EAEb,MAAOI,EAEN,SAAAP,CAAA,CAAA,EAED,KACJW,EAAAA,IAAC,MAAG,UAAWD,EAAAA,GAAG,4DAA6DN,EAAQ,WAAa,SAAS,EAC1G,SAAAH,CAAA,CACH,EACCC,EACCS,EAAAA,IAAC,IAAA,CAAE,UAAWD,EAAAA,GAAG,2DAA4DN,EAAQ,cAAgB,SAAS,EAC3G,SAAAF,CAAA,CACH,EACE,IAAA,CAAA,CAAA,CAGV,CACF,EACAL,EAAY,YAAc"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),n=require("react"),s=require("./variants/Columns.cjs"),a=require("./variants/Bento.cjs"),c=require("./variants/EditorialRows.cjs"),i=n.forwardRef(({option:u="columns",columns:o=3,...e},r)=>u==="editorialRows"?t.jsx(c.FeatureEditorialRows,{ref:r,...e}):u==="bento"?t.jsx(a.FeatureBento,{ref:r,...e}):t.jsx(s.FeatureColumns,{ref:r,columns:o,...e}));i.displayName="FeatureGrid";exports.FeatureGrid=i;
|
|
2
|
+
//# sourceMappingURL=FeatureGrid.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FeatureGrid.cjs","sources":["../../../../src/components/Features/FeatureGrid.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport type { FeatureGridProps } from \"./types\";\nimport { FeatureColumns } from \"./variants/Columns\";\nimport { FeatureBento } from \"./variants/Bento\";\nimport { FeatureEditorialRows } from \"./variants/EditorialRows\";\n\nexport const FeatureGrid = forwardRef<HTMLDivElement, FeatureGridProps>(\n ({ option = \"columns\", columns = 3, ...props }, ref) => {\n if (option === \"editorialRows\") return <FeatureEditorialRows ref={ref} {...props} />;\n if (option === \"bento\") return <FeatureBento ref={ref} {...props} />;\n return <FeatureColumns ref={ref} columns={columns} {...props} />;\n },\n);\nFeatureGrid.displayName = \"FeatureGrid\";"],"names":["FeatureGrid","forwardRef","option","columns","props","ref","FeatureEditorialRows","FeatureBento","jsx","FeatureColumns"],"mappings":"wPAMaA,EAAcC,EAAAA,WACzB,CAAC,CAAE,OAAAC,EAAS,UAAW,QAAAC,EAAU,EAAG,GAAGC,CAAA,EAASC,IAC1CH,IAAW,sBAAyBI,EAAAA,qBAAA,CAAqB,IAAAD,EAAW,GAAGD,EAAO,EAC9EF,IAAW,cAAiBK,EAAAA,aAAA,CAAa,IAAAF,EAAW,GAAGD,EAAO,EAC3DI,EAAAA,IAACC,EAAAA,eAAA,CAAe,IAAAJ,EAAU,QAAAF,EAAmB,GAAGC,EAAO,CAElE,EACAJ,EAAY,YAAc"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const s={2:"sm:grid-cols-2",3:"sm:grid-cols-2 lg:grid-cols-3",4:"sm:grid-cols-2 lg:grid-cols-4"},o=["sm:col-span-2 lg:row-span-2","","","lg:col-span-2","","lg:col-span-2"];exports.bentoSpans=o;exports.gridCols=s;
|
|
2
|
+
//# sourceMappingURL=parts.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parts.cjs","sources":["../../../../src/components/Features/parts.ts"],"sourcesContent":["export const gridCols: Record<2 | 3 | 4, string> = {\n 2: \"sm:grid-cols-2\",\n 3: \"sm:grid-cols-2 lg:grid-cols-3\",\n 4: \"sm:grid-cols-2 lg:grid-cols-4\",\n};\n\n/** Asymmetric bento layout for up to 6 features. */\nexport const bentoSpans: string[] = [\n \"sm:col-span-2 lg:row-span-2\",\n \"\",\n \"\",\n \"lg:col-span-2\",\n \"\",\n \"lg:col-span-2\",\n];"],"names":["gridCols","bentoSpans"],"mappings":"gFAAO,MAAMA,EAAsC,CACjD,EAAG,iBACH,EAAG,gCACH,EAAG,+BACL,EAGaC,EAAuB,CAClC,8BACA,GACA,GACA,gBACA,GACA,eACF"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),i=require("react"),s=require("../../../utils/cn.cjs"),d=require("../FeatureCard.cjs"),t=require("../parts.cjs"),n=i.forwardRef(({className:l,features:o,...c},u)=>r.jsx("div",{ref:u,className:s.cn("grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4 lg:auto-rows-[minmax(9rem,auto)]","w-full",l),...c,children:o.map((a,e)=>a?r.jsx("div",{className:s.cn(e<t.bentoSpans.length&&t.bentoSpans[e]),children:r.jsx(d.FeatureCard,{...a,large:e===0,className:"h-full"})},e):null)}));n.displayName="FeatureBento";exports.FeatureBento=n;
|
|
2
|
+
//# sourceMappingURL=Bento.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Bento.cjs","sources":["../../../../../src/components/Features/variants/Bento.tsx"],"sourcesContent":["import { forwardRef, type HTMLAttributes } from \"react\";\nimport { cn } from \"../../../utils/cn\";\nimport { FeatureCard } from \"../FeatureCard\";\nimport { bentoSpans } from \"../parts\";\nimport type { FeatureItem } from \"../types\";\n\ninterface BentoProps extends HTMLAttributes<HTMLDivElement> {\n features: FeatureItem[];\n}\n\nexport const FeatureBento = forwardRef<HTMLDivElement, BentoProps>(\n ({ className, features, ...props }, ref) => (\n <div\n ref={ref}\n className={cn(\n \"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-4 lg:auto-rows-[minmax(9rem,auto)]\",\n \"w-full\",\n className,\n )}\n {...props}\n >\n {features.map((feature, i) =>\n feature ? (\n <div key={i} className={cn(i < bentoSpans.length && bentoSpans[i])}>\n <FeatureCard {...feature} large={i === 0} className=\"h-full\" />\n </div>\n ) : null,\n )}\n </div>\n ),\n);\nFeatureBento.displayName = \"FeatureBento\";"],"names":["FeatureBento","forwardRef","className","features","props","ref","jsx","cn","feature","i","bentoSpans","FeatureCard"],"mappings":"qOAUaA,EAAeC,EAAAA,WAC1B,CAAC,CAAE,UAAAC,EAAW,SAAAC,EAAU,GAAGC,CAAA,EAASC,IAClCC,EAAAA,IAAC,MAAA,CACC,IAAAD,EACA,UAAWE,EAAAA,GACT,wFACA,SACAL,CAAA,EAED,GAAGE,EAEH,SAAAD,EAAS,IAAI,CAACK,EAASC,IACtBD,EACEF,EAAAA,IAAC,MAAA,CAAY,UAAWC,EAAAA,GAAGE,EAAIC,EAAAA,WAAW,QAAUA,EAAAA,WAAWD,CAAC,CAAC,EAC/D,SAAAH,EAAAA,IAACK,EAAAA,YAAA,CAAa,GAAGH,EAAS,MAAOC,IAAM,EAAG,UAAU,QAAA,CAAS,CAAA,EADrDA,CAEV,EACE,IAAA,CACN,CAAA,CAGN,EACAT,EAAa,YAAc"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),i=require("react"),n=require("../../../utils/cn.cjs"),d=require("../FeatureCard.cjs"),m=require("../parts.cjs"),r=i.forwardRef(({className:s,features:a,columns:t,...u},l)=>e.jsx("div",{ref:l,className:n.cn("grid w-full grid-cols-1 gap-4",m.gridCols[t],s),...u,children:a.map((o,c)=>e.jsx(d.FeatureCard,{...o,className:"h-full"},c))}));r.displayName="FeatureColumns";exports.FeatureColumns=r;
|
|
2
|
+
//# sourceMappingURL=Columns.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Columns.cjs","sources":["../../../../../src/components/Features/variants/Columns.tsx"],"sourcesContent":["import { forwardRef, type HTMLAttributes } from \"react\";\nimport { cn } from \"../../../utils/cn\";\nimport { FeatureCard } from \"../FeatureCard\";\nimport { gridCols } from \"../parts\";\nimport type { FeatureItem } from \"../types\";\n\ninterface ColumnsProps extends HTMLAttributes<HTMLDivElement> {\n features: FeatureItem[];\n columns: 2 | 3 | 4;\n}\n\nexport const FeatureColumns = forwardRef<HTMLDivElement, ColumnsProps>(\n ({ className, features, columns, ...props }, ref) => (\n <div ref={ref} className={cn(\"grid w-full grid-cols-1 gap-4\", gridCols[columns], className)} {...props}>\n {features.map((feature, i) => (\n <FeatureCard key={i} {...feature} className=\"h-full\" />\n ))}\n </div>\n ),\n);\nFeatureColumns.displayName = \"FeatureColumns\";"],"names":["FeatureColumns","forwardRef","className","features","columns","props","ref","cn","gridCols","feature","i","jsx","FeatureCard"],"mappings":"qOAWaA,EAAiBC,EAAAA,WAC5B,CAAC,CAAE,UAAAC,EAAW,SAAAC,EAAU,QAAAC,EAAS,GAAGC,CAAA,EAASC,UAC1C,MAAA,CAAI,IAAAA,EAAU,UAAWC,EAAAA,GAAG,gCAAiCC,EAAAA,SAASJ,CAAO,EAAGF,CAAS,EAAI,GAAGG,EAC9F,SAAAF,EAAS,IAAI,CAACM,EAASC,IACtBC,EAAAA,IAACC,EAAAA,YAAA,CAAqB,GAAGH,EAAS,UAAU,QAAA,EAA1BC,CAAmC,CACtD,CAAA,CACH,CAEJ,EACAV,EAAe,YAAc"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),a=require("react"),o=require("../../../utils/cn.cjs"),i=a.forwardRef(({className:r,features:l,...d},n)=>e.jsx("div",{ref:n,className:o.cn("w-full",r),...d,children:e.jsx("div",{className:"divide-y divide-border border-t border-b border-border",children:l.map((s,t)=>e.jsxs("div",{className:"group flex flex-col gap-3 py-6 transition-colors duration-200 sm:flex-row sm:items-baseline sm:gap-10",children:[e.jsx("span",{className:"text-sm font-medium tabular-nums text-muted-foreground/60 sm:w-12",children:String(t+1).padStart(2,"0")}),e.jsxs("div",{className:"flex-1 sm:flex sm:items-baseline sm:justify-between sm:gap-10",children:[e.jsx("h3",{className:"font-display text-xl font-semibold tracking-tight text-foreground sm:w-2/5",children:s.title}),e.jsx("p",{className:"mt-1.5 text-sm leading-7 text-muted-foreground sm:mt-0 sm:w-1/2",children:s.description})]}),s.icon?e.jsx("span",{className:"hidden text-foreground/30 sm:inline-flex",children:s.icon}):null]},t))})}));i.displayName="FeatureEditorialRows";exports.FeatureEditorialRows=i;
|
|
2
|
+
//# sourceMappingURL=EditorialRows.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EditorialRows.cjs","sources":["../../../../../src/components/Features/variants/EditorialRows.tsx"],"sourcesContent":["import { forwardRef, type HTMLAttributes } from \"react\";\nimport { cn } from \"../../../utils/cn\";\nimport type { FeatureItem } from \"../types\";\n\ninterface EditorialRowsProps extends HTMLAttributes<HTMLDivElement> {\n features: FeatureItem[];\n}\n\nexport const FeatureEditorialRows = forwardRef<HTMLDivElement, EditorialRowsProps>(\n ({ className, features, ...props }, ref) => (\n <div ref={ref} className={cn(\"w-full\", className)} {...props}>\n <div className=\"divide-y divide-border border-t border-b border-border\">\n {features.map((feature, i) => (\n <div\n key={i}\n className=\"group flex flex-col gap-3 py-6 transition-colors duration-200 sm:flex-row sm:items-baseline sm:gap-10\"\n >\n <span className=\"text-sm font-medium tabular-nums text-muted-foreground/60 sm:w-12\">\n {String(i + 1).padStart(2, \"0\")}\n </span>\n <div className=\"flex-1 sm:flex sm:items-baseline sm:justify-between sm:gap-10\">\n <h3 className=\"font-display text-xl font-semibold tracking-tight text-foreground sm:w-2/5\">\n {feature.title}\n </h3>\n <p className=\"mt-1.5 text-sm leading-7 text-muted-foreground sm:mt-0 sm:w-1/2\">\n {feature.description}\n </p>\n </div>\n {feature.icon ? (\n <span className=\"hidden text-foreground/30 sm:inline-flex\">{feature.icon}</span>\n ) : null}\n </div>\n ))}\n </div>\n </div>\n ),\n);\nFeatureEditorialRows.displayName = \"FeatureEditorialRows\";"],"names":["FeatureEditorialRows","forwardRef","className","features","props","ref","jsx","cn","feature","i","jsxs"],"mappings":"2KAQaA,EAAuBC,EAAAA,WAClC,CAAC,CAAE,UAAAC,EAAW,SAAAC,EAAU,GAAGC,CAAA,EAASC,IAClCC,MAAC,MAAA,CAAI,IAAAD,EAAU,UAAWE,EAAAA,GAAG,SAAUL,CAAS,EAAI,GAAGE,EACrD,SAAAE,MAAC,MAAA,CAAI,UAAU,yDACZ,SAAAH,EAAS,IAAI,CAACK,EAASC,IACtBC,EAAAA,KAAC,MAAA,CAEC,UAAU,wGAEV,SAAA,CAAAJ,EAAAA,IAAC,OAAA,CAAK,UAAU,oEACb,SAAA,OAAOG,EAAI,CAAC,EAAE,SAAS,EAAG,GAAG,CAAA,CAChC,EACAC,EAAAA,KAAC,MAAA,CAAI,UAAU,gEACb,SAAA,CAAAJ,EAAAA,IAAC,KAAA,CAAG,UAAU,6EACX,SAAAE,EAAQ,MACX,EACAF,EAAAA,IAAC,IAAA,CAAE,UAAU,kEACV,WAAQ,WAAA,CACX,CAAA,EACF,EACCE,EAAQ,KACPF,MAAC,OAAA,CAAK,UAAU,2CAA4C,SAAAE,EAAQ,KAAK,EACvE,IAAA,CAAA,EAhBCC,CAAA,CAkBR,EACH,CAAA,CACF,CAEJ,EACAT,EAAqB,YAAc"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const i=require("react/jsx-runtime"),o=require("./variants/Classic.cjs"),s=require("./variants/Minimal.cjs"),a=require("./variants/Editorial.cjs"),t=({option:r="classic",...e})=>r==="minimal"?i.jsx(s.FooterMinimal,{...e}):r==="editorial"?i.jsx(a.FooterEditorial,{...e}):i.jsx(o.FooterClassic,{...e});t.displayName="Footer";exports.Footer=t;
|
|
2
|
+
//# sourceMappingURL=Footer.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Footer.cjs","sources":["../../../../src/components/Footer/Footer.tsx"],"sourcesContent":["import type { FooterProps } from \"./types\";\nimport { FooterClassic } from \"./variants/Classic\";\nimport { FooterMinimal } from \"./variants/Minimal\";\nimport { FooterEditorial } from \"./variants/Editorial\";\n\nexport const Footer = ({ option = \"classic\", ...props }: FooterProps) => {\n if (option === \"minimal\") return <FooterMinimal {...props} />;\n if (option === \"editorial\") return <FooterEditorial {...props} />;\n return <FooterClassic {...props} />;\n};\nFooter.displayName = \"Footer\";"],"names":["Footer","option","props","jsx","FooterMinimal","FooterEditorial","FooterClassic"],"mappings":"mOAKaA,EAAS,CAAC,CAAE,OAAAC,EAAS,UAAW,GAAGC,KAC1CD,IAAW,UAAkBE,EAAAA,IAACC,EAAAA,cAAA,CAAe,GAAGF,EAAO,EACvDD,IAAW,YAAoBE,EAAAA,IAACE,EAAAA,gBAAA,CAAiB,GAAGH,EAAO,EACxDC,MAACG,EAAAA,cAAA,CAAe,GAAGJ,CAAA,CAAO,EAEnCF,EAAO,YAAc"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),l=require("../../utils/cn.cjs");function a({logo:r,logoSrc:s,logoAlt:n,logoClassName:o,brand:t,imageClassName:i="h-7 w-auto"}){return r||(s?e.jsx("img",{src:s,alt:n??(typeof t=="string"?t:"Logo"),className:l.cn(i,o)}):null)}function c({brand:r}){return e.jsxs("span",{className:"flex items-center gap-2 font-display text-lg font-bold tracking-tight",children:[e.jsx("span",{"aria-hidden":!0,className:"inline-block h-2.5 w-2.5 rounded-sm bg-current"}),r]})}function d({brand:r}){return e.jsx("span",{className:"font-display text-5xl font-bold tracking-[-0.03em] text-foreground sm:text-7xl",children:r})}function m({columns:r,Link:s,linkClassName:n}){return e.jsx("div",{className:"grid grid-cols-2 gap-8 md:grid-cols-4",children:r.map(o=>e.jsxs("div",{children:[e.jsx("h3",{className:"text-xs font-semibold uppercase tracking-[0.16em] text-muted-foreground",children:o.title}),e.jsx("ul",{className:"mt-4 space-y-2.5",children:o.links.map(t=>e.jsx("li",{children:e.jsx(s,{href:t.href,className:n,children:t.label})},t.href))})]},o.title))})}function u({bottom:r,languageSwitcher:s,brand:n,wrapperClassName:o,textClassName:t}){return e.jsxs("div",{className:o,children:[e.jsx("span",{className:l.cn(t),children:r}),s?e.jsx("div",{children:s}):null,e.jsxs("span",{className:l.cn(t),children:["© ",new Date().getFullYear()," ",n,". All rights reserved."]})]})}exports.FooterBottomBar=u;exports.FooterColumnsBlock=m;exports.FooterEditorialWordmark=d;exports.FooterLogoNode=a;exports.FooterWordmark=c;
|
|
2
|
+
//# sourceMappingURL=parts.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parts.cjs","sources":["../../../../src/components/Footer/parts.tsx"],"sourcesContent":["import type { ElementType, ReactNode } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport type { FooterColumn } from \"./types\";\n\nexport function FooterLogoNode({\n logo,\n logoSrc,\n logoAlt,\n logoClassName,\n brand,\n imageClassName = \"h-7 w-auto\",\n}: {\n logo?: ReactNode;\n logoSrc?: string;\n logoAlt?: string;\n logoClassName?: string;\n brand?: ReactNode;\n imageClassName?: string;\n}) {\n if (logo) return logo;\n if (logoSrc) {\n return (\n <img\n src={logoSrc}\n alt={logoAlt ?? (typeof brand === \"string\" ? brand : \"Logo\")}\n className={cn(imageClassName, logoClassName)}\n />\n );\n }\n return null;\n}\n\nexport function FooterWordmark({ brand }: { brand?: ReactNode }) {\n return (\n <span className=\"flex items-center gap-2 font-display text-lg font-bold tracking-tight\">\n <span aria-hidden className=\"inline-block h-2.5 w-2.5 rounded-sm bg-current\" />\n {brand}\n </span>\n );\n}\n\nexport function FooterEditorialWordmark({ brand }: { brand?: ReactNode }) {\n return (\n <span className=\"font-display text-5xl font-bold tracking-[-0.03em] text-foreground sm:text-7xl\">\n {brand}\n </span>\n );\n}\n\nexport function FooterColumnsBlock({\n columns,\n Link,\n linkClassName,\n}: {\n columns: FooterColumn[];\n Link: ElementType;\n linkClassName: string;\n}) {\n return (\n <div className=\"grid grid-cols-2 gap-8 md:grid-cols-4\">\n {columns.map((column) => (\n <div key={column.title}>\n <h3 className=\"text-xs font-semibold uppercase tracking-[0.16em] text-muted-foreground\">\n {column.title}\n </h3>\n <ul className=\"mt-4 space-y-2.5\">\n {column.links.map((link) => (\n <li key={link.href}>\n <Link href={link.href} className={linkClassName}>\n {link.label}\n </Link>\n </li>\n ))}\n </ul>\n </div>\n ))}\n </div>\n );\n}\n\nexport function FooterBottomBar({\n bottom,\n languageSwitcher,\n brand,\n wrapperClassName,\n textClassName,\n}: {\n bottom?: ReactNode;\n languageSwitcher?: ReactNode;\n brand?: ReactNode;\n wrapperClassName: string;\n textClassName: string;\n}) {\n return (\n <div className={wrapperClassName}>\n <span className={cn(textClassName)}>{bottom}</span>\n {languageSwitcher ? <div>{languageSwitcher}</div> : null}\n <span className={cn(textClassName)}>© {new Date().getFullYear()} {brand}. All rights reserved.</span>\n </div>\n );\n}"],"names":["FooterLogoNode","logo","logoSrc","logoAlt","logoClassName","brand","imageClassName","jsx","cn","FooterWordmark","jsxs","FooterEditorialWordmark","FooterColumnsBlock","columns","Link","linkClassName","column","link","FooterBottomBar","bottom","languageSwitcher","wrapperClassName","textClassName"],"mappings":"qJAIO,SAASA,EAAe,CAC7B,KAAAC,EACA,QAAAC,EACA,QAAAC,EACA,cAAAC,EACA,MAAAC,EACA,eAAAC,EAAiB,YACnB,EAOG,CACD,OAAIL,IACAC,EAEAK,EAAAA,IAAC,MAAA,CACC,IAAKL,EACL,IAAKC,IAAY,OAAOE,GAAU,SAAWA,EAAQ,QACrD,UAAWG,EAAAA,GAAGF,EAAgBF,CAAa,CAAA,CAAA,EAI1C,KACT,CAEO,SAASK,EAAe,CAAE,MAAAJ,GAAgC,CAC/D,OACEK,EAAAA,KAAC,OAAA,CAAK,UAAU,wEACd,SAAA,CAAAH,EAAAA,IAAC,OAAA,CAAK,cAAW,GAAC,UAAU,iDAAiD,EAC5EF,CAAA,EACH,CAEJ,CAEO,SAASM,EAAwB,CAAE,MAAAN,GAAgC,CACxE,OACEE,EAAAA,IAAC,OAAA,CAAK,UAAU,iFACb,SAAAF,EACH,CAEJ,CAEO,SAASO,EAAmB,CACjC,QAAAC,EACA,KAAAC,EACA,cAAAC,CACF,EAIG,CACD,OACER,EAAAA,IAAC,OAAI,UAAU,wCACZ,WAAQ,IAAKS,GACZN,EAAAA,KAAC,MAAA,CACC,SAAA,CAAAH,EAAAA,IAAC,KAAA,CAAG,UAAU,0EACX,SAAAS,EAAO,MACV,EACAT,EAAAA,IAAC,KAAA,CAAG,UAAU,mBACX,SAAAS,EAAO,MAAM,IAAKC,GACjBV,EAAAA,IAAC,KAAA,CACC,SAAAA,EAAAA,IAACO,GAAK,KAAMG,EAAK,KAAM,UAAWF,EAC/B,SAAAE,EAAK,MACR,CAAA,EAHOA,EAAK,IAId,CACD,CAAA,CACH,CAAA,CAAA,EAZQD,EAAO,KAajB,CACD,EACH,CAEJ,CAEO,SAASE,EAAgB,CAC9B,OAAAC,EACA,iBAAAC,EACA,MAAAf,EACA,iBAAAgB,EACA,cAAAC,CACF,EAMG,CACD,OACEZ,EAAAA,KAAC,MAAA,CAAI,UAAWW,EACd,SAAA,CAAAd,MAAC,OAAA,CAAK,UAAWC,EAAAA,GAAGc,CAAa,EAAI,SAAAH,EAAO,EAC3CC,EAAmBb,EAAAA,IAAC,MAAA,CAAK,SAAAa,CAAA,CAAiB,EAAS,KACpDV,EAAAA,KAAC,OAAA,CAAK,UAAWF,EAAAA,GAAGc,CAAa,EAAG,SAAA,CAAA,KAAG,IAAI,KAAA,EAAO,YAAA,EAAc,IAAEjB,EAAM,wBAAA,CAAA,CAAsB,CAAA,EAChG,CAEJ"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),v=require("../../../utils/cn.cjs"),b=require("../../Container.cjs"),o=require("../parts.cjs");function c({className:i,brand:s,logo:d,logoSrc:x,logoAlt:m,logoClassName:h,description:a,columns:j,socials:l,bottom:p,languageSwitcher:u,badge:n,LinkComponent:y,...N}){const g=y??"a",f=o.FooterLogoNode({logo:d,logoSrc:x,logoAlt:m,logoClassName:h,brand:s})??e.jsx(o.FooterWordmark,{brand:s});return e.jsx("footer",{className:v.cn("w-full bg-secondary text-on-secondary",i),...N,children:e.jsxs(b.Container,{className:"py-16",children:[e.jsxs("div",{className:"grid grid-cols-2 gap-10 md:grid-cols-4 lg:grid-cols-6",children:[e.jsxs("div",{className:"col-span-2",children:[e.jsx("span",{style:{color:"rgb(var(--color-on-secondary))"},children:f}),a?e.jsx("p",{className:"mt-4 max-w-xs text-sm leading-6 text-on-secondary/60",children:a}):null,l?e.jsx("div",{className:"mt-6 flex items-center gap-3",children:l}):null,n?e.jsx("div",{className:"mt-6",children:n}):null]}),j.map(r=>e.jsxs("div",{children:[e.jsx("h3",{className:"text-xs font-semibold uppercase tracking-[0.16em] text-on-secondary/50",children:r.title}),e.jsx("ul",{className:"mt-4 space-y-2.5",children:r.links.map(t=>e.jsx("li",{children:e.jsx(g,{href:t.href,className:"text-sm text-on-secondary/70 transition-colors duration-150 hover:text-on-secondary",children:t.label})},t.href))})]},r.title))]}),e.jsx(o.FooterBottomBar,{bottom:p,languageSwitcher:u,brand:s,wrapperClassName:"mt-14 flex flex-col items-center justify-between gap-4 border-t border-white/10 pt-8 text-sm text-on-secondary/50 sm:flex-row",textClassName:""})]})})}c.displayName="FooterClassic";exports.FooterClassic=c;
|
|
2
|
+
//# sourceMappingURL=Classic.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Classic.cjs","sources":["../../../../../src/components/Footer/variants/Classic.tsx"],"sourcesContent":["import { cn } from \"../../../utils/cn\";\nimport { Container } from \"../../Container\";\nimport type { FooterProps } from \"../types\";\nimport {\n FooterWordmark,\n FooterLogoNode,\n FooterBottomBar,\n} from \"../parts\";\n\ninterface ClassicProps extends FooterProps {}\n\nexport function FooterClassic({ className, brand, logo, logoSrc, logoAlt, logoClassName, description, columns, socials, bottom, languageSwitcher, badge, LinkComponent, ...props }: ClassicProps) {\n const Link = LinkComponent ?? \"a\";\n const brandNode = FooterLogoNode({ logo, logoSrc, logoAlt, logoClassName, brand }) ?? <FooterWordmark brand={brand} />;\n\n return (\n <footer className={cn(\"w-full bg-secondary text-on-secondary\", className)} {...props}>\n <Container className=\"py-16\">\n <div className=\"grid grid-cols-2 gap-10 md:grid-cols-4 lg:grid-cols-6\">\n <div className=\"col-span-2\">\n <span style={{ color: \"rgb(var(--color-on-secondary))\" }}>{brandNode}</span>\n {description ? (\n <p className=\"mt-4 max-w-xs text-sm leading-6 text-on-secondary/60\">{description}</p>\n ) : null}\n {socials ? <div className=\"mt-6 flex items-center gap-3\">{socials}</div> : null}\n {badge ? <div className=\"mt-6\">{badge}</div> : null}\n </div>\n {columns.map((column) => (\n <div key={column.title}>\n <h3 className=\"text-xs font-semibold uppercase tracking-[0.16em] text-on-secondary/50\">\n {column.title}\n </h3>\n <ul className=\"mt-4 space-y-2.5\">\n {column.links.map((link) => (\n <li key={link.href}>\n <Link\n href={link.href}\n className=\"text-sm text-on-secondary/70 transition-colors duration-150 hover:text-on-secondary\"\n >\n {link.label}\n </Link>\n </li>\n ))}\n </ul>\n </div>\n ))}\n </div>\n <FooterBottomBar\n bottom={bottom}\n languageSwitcher={languageSwitcher}\n brand={brand}\n wrapperClassName=\"mt-14 flex flex-col items-center justify-between gap-4 border-t border-white/10 pt-8 text-sm text-on-secondary/50 sm:flex-row\"\n textClassName=\"\"\n />\n </Container>\n </footer>\n );\n}\nFooterClassic.displayName = \"FooterClassic\";"],"names":["FooterClassic","className","brand","logo","logoSrc","logoAlt","logoClassName","description","columns","socials","bottom","languageSwitcher","badge","LinkComponent","props","Link","brandNode","FooterLogoNode","jsx","FooterWordmark","cn","jsxs","Container","column","link","FooterBottomBar"],"mappings":"mNAWO,SAASA,EAAc,CAAE,UAAAC,EAAW,MAAAC,EAAO,KAAAC,EAAM,QAAAC,EAAS,QAAAC,EAAS,cAAAC,EAAe,YAAAC,EAAa,QAAAC,EAAS,QAAAC,EAAS,OAAAC,EAAQ,iBAAAC,EAAkB,MAAAC,EAAO,cAAAC,EAAe,GAAGC,GAAuB,CAChM,MAAMC,EAAOF,GAAiB,IACxBG,EAAYC,EAAAA,eAAe,CAAE,KAAAd,EAAM,QAAAC,EAAS,QAAAC,EAAS,cAAAC,EAAe,MAAAJ,CAAA,CAAO,GAAKgB,EAAAA,IAACC,EAAAA,eAAA,CAAe,MAAAjB,CAAA,CAAc,EAEpH,OACEgB,EAAAA,IAAC,SAAA,CAAO,UAAWE,EAAAA,GAAG,wCAAyCnB,CAAS,EAAI,GAAGa,EAC7E,SAAAO,EAAAA,KAACC,EAAAA,UAAA,CAAU,UAAU,QACnB,SAAA,CAAAD,EAAAA,KAAC,MAAA,CAAI,UAAU,wDACb,SAAA,CAAAA,EAAAA,KAAC,MAAA,CAAI,UAAU,aACb,SAAA,CAAAH,MAAC,QAAK,MAAO,CAAE,MAAO,gCAAA,EAAqC,SAAAF,EAAU,EACpET,EACCW,EAAAA,IAAC,IAAA,CAAE,UAAU,uDAAwD,WAAY,EAC/E,KACHT,EAAUS,EAAAA,IAAC,MAAA,CAAI,UAAU,+BAAgC,WAAQ,EAAS,KAC1EN,EAAQM,EAAAA,IAAC,MAAA,CAAI,UAAU,OAAQ,WAAM,EAAS,IAAA,EACjD,EACCV,EAAQ,IAAKe,UACX,MAAA,CACC,SAAA,CAAAL,EAAAA,IAAC,KAAA,CAAG,UAAU,yEACX,SAAAK,EAAO,MACV,EACAL,EAAAA,IAAC,KAAA,CAAG,UAAU,mBACX,SAAAK,EAAO,MAAM,IAAKC,GACjBN,EAAAA,IAAC,KAAA,CACC,SAAAA,EAAAA,IAACH,EAAA,CACC,KAAMS,EAAK,KACX,UAAU,sFAET,SAAAA,EAAK,KAAA,CAAA,GALDA,EAAK,IAOd,CACD,CAAA,CACH,CAAA,CAAA,EAfQD,EAAO,KAgBjB,CACD,CAAA,EACH,EACAL,EAAAA,IAACO,EAAAA,gBAAA,CACC,OAAAf,EACA,iBAAAC,EACA,MAAAT,EACA,iBAAiB,gIACjB,cAAc,EAAA,CAAA,CAChB,CAAA,CACF,CAAA,CACF,CAEJ,CACAF,EAAc,YAAc"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),p=require("../../../utils/cn.cjs"),N=require("../../Container.cjs"),r=require("../parts.cjs");function l({className:a,brand:t,logo:n,logoSrc:i,logoAlt:d,logoClassName:m,description:o,columns:c,socials:s,bottom:x,languageSwitcher:u,LinkComponent:f,...b}){const g=f??"a",j=r.FooterLogoNode({logo:n,logoSrc:i,logoAlt:d,logoClassName:m,brand:t,imageClassName:"h-12 w-auto"})??e.jsx(r.FooterEditorialWordmark,{brand:t});return e.jsx("footer",{className:p.cn("w-full border-t border-border bg-background",a),...b,children:e.jsxs(N.Container,{className:"py-16 sm:py-20",children:[e.jsxs("div",{className:"mb-14 flex flex-col justify-between gap-8 sm:flex-row sm:items-end",children:[e.jsxs("div",{children:[j,o?e.jsx("p",{className:"mt-3 max-w-sm text-sm leading-6 text-muted-foreground",children:o}):null]}),s?e.jsx("div",{className:"flex items-center gap-3",children:s}):null]}),e.jsx("div",{className:"border-t border-border pt-12",children:e.jsx(r.FooterColumnsBlock,{columns:c,Link:g,linkClassName:"text-[15px] text-foreground/80 transition-colors duration-150 hover:text-foreground"})}),e.jsx(r.FooterBottomBar,{bottom:x,languageSwitcher:u,brand:t,wrapperClassName:"mt-12 flex flex-col items-center justify-between gap-4 border-t border-border pt-8 text-sm text-muted-foreground sm:flex-row",textClassName:""})]})})}l.displayName="FooterEditorial";exports.FooterEditorial=l;
|
|
2
|
+
//# sourceMappingURL=Editorial.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Editorial.cjs","sources":["../../../../../src/components/Footer/variants/Editorial.tsx"],"sourcesContent":["import { cn } from \"../../../utils/cn\";\nimport { Container } from \"../../Container\";\nimport type { FooterProps } from \"../types\";\nimport {\n FooterColumnsBlock,\n FooterEditorialWordmark,\n FooterLogoNode,\n FooterBottomBar,\n} from \"../parts\";\n\ninterface EditorialProps extends FooterProps {}\n\nexport function FooterEditorial({ className, brand, logo, logoSrc, logoAlt, logoClassName, description, columns, socials, bottom, languageSwitcher, LinkComponent, ...props }: EditorialProps) {\n const Link = LinkComponent ?? \"a\";\n const brandNode = FooterLogoNode({ logo, logoSrc, logoAlt, logoClassName, brand, imageClassName: \"h-12 w-auto\" }) ?? <FooterEditorialWordmark brand={brand} />;\n\n return (\n <footer className={cn(\"w-full border-t border-border bg-background\", className)} {...props}>\n <Container className=\"py-16 sm:py-20\">\n <div className=\"mb-14 flex flex-col justify-between gap-8 sm:flex-row sm:items-end\">\n <div>\n {brandNode}\n {description ? (\n <p className=\"mt-3 max-w-sm text-sm leading-6 text-muted-foreground\">{description}</p>\n ) : null}\n </div>\n {socials ? <div className=\"flex items-center gap-3\">{socials}</div> : null}\n </div>\n <div className=\"border-t border-border pt-12\">\n <FooterColumnsBlock\n columns={columns}\n Link={Link}\n linkClassName=\"text-[15px] text-foreground/80 transition-colors duration-150 hover:text-foreground\"\n />\n </div>\n <FooterBottomBar\n bottom={bottom}\n languageSwitcher={languageSwitcher}\n brand={brand}\n wrapperClassName=\"mt-12 flex flex-col items-center justify-between gap-4 border-t border-border pt-8 text-sm text-muted-foreground sm:flex-row\"\n textClassName=\"\"\n />\n </Container>\n </footer>\n );\n}\nFooterEditorial.displayName = \"FooterEditorial\";"],"names":["FooterEditorial","className","brand","logo","logoSrc","logoAlt","logoClassName","description","columns","socials","bottom","languageSwitcher","LinkComponent","props","Link","brandNode","FooterLogoNode","jsx","FooterEditorialWordmark","cn","jsxs","Container","FooterColumnsBlock","FooterBottomBar"],"mappings":"mNAYO,SAASA,EAAgB,CAAE,UAAAC,EAAW,MAAAC,EAAO,KAAAC,EAAM,QAAAC,EAAS,QAAAC,EAAS,cAAAC,EAAe,YAAAC,EAAa,QAAAC,EAAS,QAAAC,EAAS,OAAAC,EAAQ,iBAAAC,EAAkB,cAAAC,EAAe,GAAGC,GAAyB,CAC7L,MAAMC,EAAOF,GAAiB,IACxBG,EAAYC,EAAAA,eAAe,CAAE,KAAAb,EAAM,QAAAC,EAAS,QAAAC,EAAS,cAAAC,EAAe,MAAAJ,EAAO,eAAgB,aAAA,CAAe,GAAKe,EAAAA,IAACC,EAAAA,yBAAwB,MAAAhB,EAAc,EAE5J,OACEe,EAAAA,IAAC,SAAA,CAAO,UAAWE,EAAAA,GAAG,8CAA+ClB,CAAS,EAAI,GAAGY,EACnF,SAAAO,EAAAA,KAACC,EAAAA,UAAA,CAAU,UAAU,iBACnB,SAAA,CAAAD,EAAAA,KAAC,MAAA,CAAI,UAAU,qEACb,SAAA,CAAAA,OAAC,MAAA,CACE,SAAA,CAAAL,EACAR,EACCU,EAAAA,IAAC,IAAA,CAAE,UAAU,wDAAyD,WAAY,EAChF,IAAA,EACN,EACCR,EAAUQ,EAAAA,IAAC,MAAA,CAAI,UAAU,0BAA2B,WAAQ,EAAS,IAAA,EACxE,EACAA,EAAAA,IAAC,MAAA,CAAI,UAAU,+BACb,SAAAA,EAAAA,IAACK,EAAAA,mBAAA,CACC,QAAAd,EACA,KAAAM,EACA,cAAc,qFAAA,CAAA,EAElB,EACAG,EAAAA,IAACM,EAAAA,gBAAA,CACC,OAAAb,EACA,iBAAAC,EACA,MAAAT,EACA,iBAAiB,+HACjB,cAAc,EAAA,CAAA,CAChB,CAAA,CACF,CAAA,CACF,CAEJ,CACAF,EAAgB,YAAc"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),p=require("../../../utils/cn.cjs"),g=require("../../Container.cjs"),s=require("../parts.cjs");function n({className:l,brand:t,logo:i,logoSrc:a,logoAlt:c,logoClassName:d,columns:x,languageSwitcher:o,bottom:m,LinkComponent:u,...f}){const j=u??"a",h=s.FooterLogoNode({logo:i,logoSrc:a,logoAlt:c,logoClassName:d,brand:t})??e.jsx(s.FooterWordmark,{brand:t});return e.jsx("footer",{className:p.cn("w-full border-t border-border bg-background",l),...f,children:e.jsxs(g.Container,{className:"flex flex-col items-center justify-between gap-6 py-10 sm:flex-row",children:[h,e.jsx("ul",{className:"flex flex-wrap items-center justify-center gap-x-8 gap-y-3",children:x.flatMap(r=>r.links).slice(0,6).map(r=>e.jsx("li",{children:e.jsx(j,{href:r.href,className:"text-sm text-muted-foreground transition-colors duration-150 hover:text-foreground",children:r.label})},r.href))}),e.jsxs("div",{className:"flex flex-col items-center gap-3",children:[o?e.jsx("div",{children:o}):null,e.jsx("div",{className:"text-sm text-muted-foreground",children:m})]})]})})}n.displayName="FooterMinimal";exports.FooterMinimal=n;
|
|
2
|
+
//# sourceMappingURL=Minimal.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Minimal.cjs","sources":["../../../../../src/components/Footer/variants/Minimal.tsx"],"sourcesContent":["import { cn } from \"../../../utils/cn\";\nimport { Container } from \"../../Container\";\nimport type { FooterProps } from \"../types\";\nimport { FooterWordmark, FooterLogoNode } from \"../parts\";\n\ninterface MinimalProps extends FooterProps {}\n\nexport function FooterMinimal({ className, brand, logo, logoSrc, logoAlt, logoClassName, columns, languageSwitcher, bottom, LinkComponent, ...props }: MinimalProps) {\n const Link = LinkComponent ?? \"a\";\n const brandNode = FooterLogoNode({ logo, logoSrc, logoAlt, logoClassName, brand }) ?? <FooterWordmark brand={brand} />;\n\n return (\n <footer className={cn(\"w-full border-t border-border bg-background\", className)} {...props}>\n <Container className=\"flex flex-col items-center justify-between gap-6 py-10 sm:flex-row\">\n {brandNode}\n <ul className=\"flex flex-wrap items-center justify-center gap-x-8 gap-y-3\">\n {columns.flatMap((c) => c.links).slice(0, 6).map((link) => (\n <li key={link.href}>\n <Link href={link.href} className=\"text-sm text-muted-foreground transition-colors duration-150 hover:text-foreground\">\n {link.label}\n </Link>\n </li>\n ))}\n </ul>\n <div className=\"flex flex-col items-center gap-3\">\n {languageSwitcher ? <div>{languageSwitcher}</div> : null}\n <div className=\"text-sm text-muted-foreground\">{bottom}</div>\n </div>\n </Container>\n </footer>\n );\n}\nFooterMinimal.displayName = \"FooterMinimal\";"],"names":["FooterMinimal","className","brand","logo","logoSrc","logoAlt","logoClassName","columns","languageSwitcher","bottom","LinkComponent","props","Link","brandNode","FooterLogoNode","jsx","FooterWordmark","cn","jsxs","Container","c","link"],"mappings":"mNAOO,SAASA,EAAc,CAAE,UAAAC,EAAW,MAAAC,EAAO,KAAAC,EAAM,QAAAC,EAAS,QAAAC,EAAS,cAAAC,EAAe,QAAAC,EAAS,iBAAAC,EAAkB,OAAAC,EAAQ,cAAAC,EAAe,GAAGC,GAAuB,CACnK,MAAMC,EAAOF,GAAiB,IACxBG,EAAYC,EAAAA,eAAe,CAAE,KAAAX,EAAM,QAAAC,EAAS,QAAAC,EAAS,cAAAC,EAAe,MAAAJ,CAAA,CAAO,GAAKa,EAAAA,IAACC,EAAAA,eAAA,CAAe,MAAAd,CAAA,CAAc,EAEpH,OACEa,EAAAA,IAAC,SAAA,CAAO,UAAWE,EAAAA,GAAG,8CAA+ChB,CAAS,EAAI,GAAGU,EACnF,SAAAO,EAAAA,KAACC,EAAAA,UAAA,CAAU,UAAU,qEAClB,SAAA,CAAAN,EACDE,EAAAA,IAAC,KAAA,CAAG,UAAU,6DACX,WAAQ,QAASK,GAAMA,EAAE,KAAK,EAAE,MAAM,EAAG,CAAC,EAAE,IAAKC,GAChDN,EAAAA,IAAC,KAAA,CACC,SAAAA,MAACH,EAAA,CAAK,KAAMS,EAAK,KAAM,UAAU,qFAC9B,WAAK,KAAA,CACR,CAAA,EAHOA,EAAK,IAId,CACD,EACH,EACAH,EAAAA,KAAC,MAAA,CAAI,UAAU,mCACZ,SAAA,CAAAV,EAAmBO,EAAAA,IAAC,MAAA,CAAK,SAAAP,CAAA,CAAiB,EAAS,KACpDO,EAAAA,IAAC,MAAA,CAAI,UAAU,gCAAiC,SAAAN,CAAA,CAAO,CAAA,CAAA,CACzD,CAAA,CAAA,CACF,CAAA,CACF,CAEJ,CACAT,EAAc,YAAc"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const r=require("react/jsx-runtime"),i=require("react"),s=require("./variants/Split.cjs"),u=require("./variants/Centered.cjs"),c=require("./variants/Statement.cjs"),o=i.forwardRef(({variant:n="split",...e},t)=>n==="centered"?r.jsx(u.HeroCentered,{ref:t,...e}):n==="statement"?r.jsx(c.HeroStatement,{ref:t,...e}):r.jsx(s.HeroSplit,{ref:t,...e}));o.displayName="Hero";exports.Hero=o;
|
|
2
|
+
//# sourceMappingURL=Hero.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Hero.cjs","sources":["../../../../src/components/Hero/Hero.tsx"],"sourcesContent":["import { forwardRef } from \"react\";\nimport type { HeroProps } from \"./types\";\nimport { HeroSplit } from \"./variants/Split\";\nimport { HeroCentered } from \"./variants/Centered\";\nimport { HeroStatement } from \"./variants/Statement\";\n\nexport const Hero = forwardRef<HTMLElement, HeroProps>(({ variant = \"split\", ...props }, ref) => {\n if (variant === \"centered\") return <HeroCentered ref={ref} {...props} />;\n if (variant === \"statement\") return <HeroStatement ref={ref} {...props} />;\n return <HeroSplit ref={ref} {...props} />;\n});\nHero.displayName = \"Hero\";"],"names":["Hero","forwardRef","variant","props","ref","HeroCentered","HeroStatement","jsx","HeroSplit"],"mappings":"qPAMaA,EAAOC,EAAAA,WAAmC,CAAC,CAAE,QAAAC,EAAU,QAAS,GAAGC,CAAA,EAASC,IACnFF,IAAY,iBAAoBG,EAAAA,aAAA,CAAa,IAAAD,EAAW,GAAGD,EAAO,EAClED,IAAY,kBAAqBI,EAAAA,cAAA,CAAc,IAAAF,EAAW,GAAGD,EAAO,EACjEI,EAAAA,IAACC,EAAAA,UAAA,CAAU,IAAAJ,EAAW,GAAGD,CAAA,CAAO,CACxC,EACDH,EAAK,YAAc"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),n="relative mx-auto flex w-full max-w-6xl flex-col items-center px-5 sm:px-8",i="font-display font-semibold tracking-[-0.03em] text-balance text-foreground";function l({eyebrow:e}){return typeof e=="string"?t.jsx("p",{className:"text-xs font-semibold uppercase tracking-[0.2em] text-primary",children:e}):e?t.jsx("div",{children:e}):null}function o({primaryAction:e,secondaryAction:r}){return!e&&!r?null:t.jsxs("div",{className:"flex flex-wrap items-center gap-4",children:[e,r]})}exports.HeroActions=o;exports.HeroEyebrow=l;exports.heroContainer=n;exports.heroTitleBase=i;
|
|
2
|
+
//# sourceMappingURL=parts.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parts.cjs","sources":["../../../../src/components/Hero/parts.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\n\nexport const heroContainer =\n \"relative mx-auto flex w-full max-w-6xl flex-col items-center px-5 sm:px-8\";\n\nexport const heroTitleBase =\n \"font-display font-semibold tracking-[-0.03em] text-balance text-foreground\";\n\nexport function HeroEyebrow({ eyebrow }: { eyebrow?: ReactNode }) {\n if (typeof eyebrow === \"string\") {\n return (\n <p className=\"text-xs font-semibold uppercase tracking-[0.2em] text-primary\">\n {eyebrow}\n </p>\n );\n }\n return eyebrow ? <div>{eyebrow}</div> : null;\n}\n\nexport function HeroActions({\n primaryAction,\n secondaryAction,\n}: {\n primaryAction?: ReactNode;\n secondaryAction?: ReactNode;\n}) {\n if (!primaryAction && !secondaryAction) return null;\n return <div className=\"flex flex-wrap items-center gap-4\">{primaryAction}{secondaryAction}</div>;\n}"],"names":["heroContainer","heroTitleBase","HeroEyebrow","eyebrow","jsx","HeroActions","primaryAction","secondaryAction","jsxs"],"mappings":"qHAEaA,EACX,4EAEWC,EACX,6EAEK,SAASC,EAAY,CAAE,QAAAC,GAAoC,CAChE,OAAI,OAAOA,GAAY,SAEnBC,EAAAA,IAAC,IAAA,CAAE,UAAU,gEACV,SAAAD,EACH,EAGGA,EAAUC,EAAAA,IAAC,MAAA,CAAK,SAAAD,CAAA,CAAQ,EAAS,IAC1C,CAEO,SAASE,EAAY,CAC1B,cAAAC,EACA,gBAAAC,CACF,EAGG,CACD,MAAI,CAACD,GAAiB,CAACC,EAAwB,KACxCC,EAAAA,KAAC,MAAA,CAAI,UAAU,oCAAqC,SAAA,CAAAF,EAAeC,CAAA,EAAgB,CAC5F"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),p=require("react"),l=require("../../../utils/cn.cjs"),t=require("../parts.cjs"),o=p.forwardRef(({className:d,eyebrow:i,title:m,description:s,primaryAction:n,secondaryAction:a,media:c,meta:x,id:u,...b},j)=>e.jsx("section",{ref:j,id:u,className:l.cn("relative w-full border-b border-border bg-background",d),...b,children:e.jsxs("div",{className:l.cn(t.heroContainer,"pt-24 pb-20 text-center sm:pt-32 sm:pb-24"),children:[e.jsx(t.HeroEyebrow,{eyebrow:i}),e.jsx("h1",{className:l.cn(t.heroTitleBase,"mt-7 max-w-4xl text-5xl leading-[1.04] sm:text-6xl lg:text-7xl"),children:m}),s?e.jsx("p",{className:"mx-auto mt-7 max-w-xl text-pretty leading-relaxed text-muted-foreground sm:text-lg",children:s}):null,n||a?e.jsx("div",{className:"mt-10 justify-center",children:e.jsx(t.HeroActions,{primaryAction:n,secondaryAction:a})}):null,x?e.jsx("ul",{className:"mt-14 flex flex-wrap items-center justify-center gap-x-9 gap-y-3",children:x.map((r,g)=>e.jsxs("li",{className:l.cn("flex items-center gap-2 text-sm text-muted-foreground",g>0&&"sm:border-l sm:border-border sm:pl-9"),children:[r.icon?e.jsx("span",{className:"text-foreground/35",children:r.icon}):null,r.label]},r.label))}):null,c?e.jsx("div",{className:"mt-16 w-full",children:c}):null]})}));o.displayName="HeroCentered";exports.HeroCentered=o;
|
|
2
|
+
//# sourceMappingURL=Centered.cjs.map
|