@ugurdemirel/landcraft 0.1.12 → 0.1.13

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.
@@ -0,0 +1,3 @@
1
+ "use client";
2
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),g=require("react"),r=require("../../utils/cn.cjs"),x=require("../../icons.cjs"),o=({className:l,items:n,defaultActive:a=0,...d})=>{const[c,u]=g.useState(a);return e.jsxs("div",{className:r.cn("grid w-full gap-x-16 gap-y-12 lg:grid-cols-2 lg:items-center lg:gap-y-0",l),...d,children:[e.jsx("div",{className:"divide-y divide-border",children:n.map((s,t)=>{const i=t===c;return e.jsxs("div",{children:[e.jsx("h3",{children:e.jsxs("button",{type:"button","aria-expanded":i,onClick:()=>u(t),className:"group flex w-full cursor-pointer items-center justify-between gap-6 py-5 text-left focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background",children:[e.jsx("span",{className:"font-display text-[1.375rem] font-semibold leading-tight tracking-tight text-foreground sm:text-[1.625rem]",children:s.title}),e.jsx(x.ChevronDown,{className:r.cn("h-5 w-5 shrink-0 text-foreground/40 transition-transform duration-300 sm:h-6 sm:w-6",i&&"rotate-180 text-foreground")})]})}),i&&s.description?e.jsx("div",{className:"pb-8 pr-10",children:e.jsx("p",{className:"max-w-md text-pretty text-base leading-7 text-muted-foreground sm:text-lg",children:s.description})}):null]},s.title)})}),e.jsx("div",{className:"relative",children:n.map((s,t)=>e.jsx("div",{className:r.cn(t===c?"block":"hidden"),children:s.visual},s.title))})]})};o.displayName="AccordionShowcase";exports.AccordionShowcase=o;
3
+ //# sourceMappingURL=AccordionShowcase.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccordionShowcase.cjs","sources":["../../../../src/components/AccordionShowcase/AccordionShowcase.tsx"],"sourcesContent":["\"use client\";\nimport { useState } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { ChevronDown } from \"../../icons\";\nimport type { AccordionShowcaseProps } from \"./types\";\n\nexport const AccordionShowcase = ({\n className,\n items,\n defaultActive = 0,\n ...props\n}: AccordionShowcaseProps) => {\n const [active, setActive] = useState(defaultActive);\n\n return (\n <div className={cn(\"grid w-full gap-x-16 gap-y-12 lg:grid-cols-2 lg:items-center lg:gap-y-0\", className)} {...props}>\n {/* Interactive list */}\n <div className=\"divide-y divide-border\">\n {items.map((item, index) => {\n const open = index === active;\n return (\n <div key={item.title}>\n <h3>\n <button\n type=\"button\"\n aria-expanded={open}\n onClick={() => setActive(index)}\n className=\"group flex w-full cursor-pointer items-center justify-between gap-6 py-5 text-left focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\"\n >\n <span className=\"font-display text-[1.375rem] font-semibold leading-tight tracking-tight text-foreground sm:text-[1.625rem]\">\n {item.title}\n </span>\n <ChevronDown\n className={cn(\n \"h-5 w-5 shrink-0 text-foreground/40 transition-transform duration-300 sm:h-6 sm:w-6\",\n open && \"rotate-180 text-foreground\",\n )}\n />\n </button>\n </h3>\n {open && item.description ? (\n <div className=\"pb-8 pr-10\">\n <p className=\"max-w-md text-pretty text-base leading-7 text-muted-foreground sm:text-lg\">\n {item.description}\n </p>\n </div>\n ) : null}\n </div>\n );\n })}\n </div>\n\n {/* Swapping visual */}\n <div className=\"relative\">\n {items.map((item, index) => (\n <div key={item.title} className={cn(index === active ? \"block\" : \"hidden\")}>\n {item.visual}\n </div>\n ))}\n </div>\n </div>\n );\n};\nAccordionShowcase.displayName = \"AccordionShowcase\";\n"],"names":["AccordionShowcase","className","items","defaultActive","props","active","setActive","useState","jsxs","cn","jsx","item","index","open","ChevronDown"],"mappings":"qMAMaA,EAAoB,CAAC,CAChC,UAAAC,EACA,MAAAC,EACA,cAAAC,EAAgB,EAChB,GAAGC,CACL,IAA8B,CAC5B,KAAM,CAACC,EAAQC,CAAS,EAAIC,EAAAA,SAASJ,CAAa,EAElD,OACEK,EAAAA,KAAC,OAAI,UAAWC,EAAAA,GAAG,0EAA2ER,CAAS,EAAI,GAAGG,EAE5G,SAAA,CAAAM,MAAC,OAAI,UAAU,yBACZ,WAAM,IAAI,CAACC,EAAMC,IAAU,CAC1B,MAAMC,EAAOD,IAAUP,EACvB,cACG,MAAA,CACC,SAAA,CAAAK,MAAC,KAAA,CACC,SAAAF,EAAAA,KAAC,SAAA,CACC,KAAK,SACL,gBAAeK,EACf,QAAS,IAAMP,EAAUM,CAAK,EAC9B,UAAU,8NAEV,SAAA,CAAAF,EAAAA,IAAC,OAAA,CAAK,UAAU,6GACb,SAAAC,EAAK,MACR,EACAD,EAAAA,IAACI,EAAAA,YAAA,CACC,UAAWL,EAAAA,GACT,sFACAI,GAAQ,4BAAA,CACV,CAAA,CACF,CAAA,CAAA,EAEJ,EACCA,GAAQF,EAAK,YACZD,EAAAA,IAAC,OAAI,UAAU,aACb,SAAAA,EAAAA,IAAC,IAAA,CAAE,UAAU,4EACV,SAAAC,EAAK,WAAA,CACR,EACF,EACE,IAAA,CAAA,EAzBIA,EAAK,KA0Bf,CAEJ,CAAC,CAAA,CACH,EAGAD,EAAAA,IAAC,OAAI,UAAU,WACZ,WAAM,IAAI,CAACC,EAAMC,IAChBF,EAAAA,IAAC,MAAA,CAAqB,UAAWD,EAAAA,GAAGG,IAAUP,EAAS,QAAU,QAAQ,EACtE,WAAK,MAAA,EADEM,EAAK,KAEf,CACD,CAAA,CACH,CAAA,EACF,CAEJ,EACAX,EAAkB,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"),g=require("../../icons.cjs"),o=({className:c,items:d,visual:i,mediaSide:x="left",eyebrow:r,title:l,description:t,...u})=>{const a=x==="left";return e.jsxs("div",{className:n.cn("w-full",c),...u,children:[r||l||t?e.jsxs("div",{className:"max-w-2xl",children:[r?e.jsx("p",{className:"text-xs font-semibold uppercase tracking-[0.18em] text-primary",children:r}):null,l?e.jsx("h2",{className:"mt-4 font-display text-balance text-[1.9rem] font-semibold leading-[1.08] tracking-tight text-foreground sm:text-4xl",children:l}):null,t?e.jsx("p",{className:"mt-4 text-pretty text-base leading-7 text-muted-foreground sm:text-lg",children:t}):null]}):null,e.jsxs("div",{className:"mt-12 grid w-full items-center gap-10 lg:grid-cols-[1.05fr_0.95fr] lg:gap-20",children:[i?e.jsx("div",{className:n.cn("relative",a?"lg:order-1":"lg:order-2"),children:i}):null,e.jsx("div",{className:n.cn("flex flex-col divide-y divide-border",a?"lg:order-2":"lg:order-1"),children:d.map((s,f)=>e.jsxs("div",{className:"flex gap-5 py-7 first:pt-0 last:pb-0 sm:gap-6",children:[s.icon?e.jsx("div",{className:"inline-flex h-12 w-12 shrink-0 items-center justify-center rounded-xl border border-border bg-surface text-lg text-foreground shadow-soft",children:s.icon}):null,e.jsxs("div",{children:[e.jsx("h3",{className:"font-display text-lg font-semibold tracking-tight text-foreground",children:s.title}),s.description?e.jsx("p",{className:"mt-2 text-pretty text-sm leading-6 text-muted-foreground sm:text-[15px]",children:s.description}):null,s.link?e.jsx("div",{className:"mt-3",children:s.link}):s.href?e.jsxs("a",{href:s.href,className:"group/link mt-3 inline-flex items-center gap-1.5 text-sm font-medium text-primary transition-colors hover:text-primary-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background",children:[s.linkLabel??"Learn more",e.jsx(g.ArrowRight,{className:"h-4 w-4 transition-transform duration-200 group-hover/link:translate-x-0.5"})]}):null]})]},f))})]})]})};o.displayName="FeatureShowcase";exports.FeatureShowcase=o;
2
+ //# sourceMappingURL=FeatureShowcase.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FeatureShowcase.cjs","sources":["../../../../src/components/FeatureShowcase/FeatureShowcase.tsx"],"sourcesContent":["import { cn } from \"../../utils/cn\";\nimport { ArrowRight } from \"../../icons\";\nimport type { FeatureShowcaseProps } from \"./types\";\n\nexport const FeatureShowcase = ({\n className,\n items,\n visual,\n mediaSide = \"left\",\n eyebrow,\n title,\n description,\n ...props\n}: FeatureShowcaseProps) => {\n const mediaLeft = mediaSide === \"left\";\n\n return (\n <div className={cn(\"w-full\", className)} {...props}>\n {eyebrow || title || description ? (\n <div className=\"max-w-2xl\">\n {eyebrow ? (\n <p className=\"text-xs font-semibold uppercase tracking-[0.18em] text-primary\">{eyebrow}</p>\n ) : null}\n {title ? (\n <h2 className=\"mt-4 font-display text-balance text-[1.9rem] 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 sm:text-lg\">\n {description}\n </p>\n ) : null}\n </div>\n ) : null}\n\n <div className=\"mt-12 grid w-full items-center gap-10 lg:grid-cols-[1.05fr_0.95fr] lg:gap-20\">\n {visual ? (\n <div className={cn(\"relative\", mediaLeft ? \"lg:order-1\" : \"lg:order-2\")}>{visual}</div>\n ) : null}\n\n <div\n className={cn(\n \"flex flex-col divide-y divide-border\",\n mediaLeft ? \"lg:order-2\" : \"lg:order-1\",\n )}\n >\n {items.map((item, index) => (\n <div key={index} className=\"flex gap-5 py-7 first:pt-0 last:pb-0 sm:gap-6\">\n {item.icon ? (\n <div className=\"inline-flex h-12 w-12 shrink-0 items-center justify-center rounded-xl border border-border bg-surface text-lg text-foreground shadow-soft\">\n {item.icon}\n </div>\n ) : null}\n <div>\n <h3 className=\"font-display text-lg font-semibold tracking-tight text-foreground\">\n {item.title}\n </h3>\n {item.description ? (\n <p className=\"mt-2 text-pretty text-sm leading-6 text-muted-foreground sm:text-[15px]\">\n {item.description}\n </p>\n ) : null}\n {item.link ? (\n <div className=\"mt-3\">{item.link}</div>\n ) : item.href ? (\n <a\n href={item.href}\n className=\"group/link mt-3 inline-flex items-center gap-1.5 text-sm font-medium text-primary transition-colors hover:text-primary-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\"\n >\n {item.linkLabel ?? \"Learn more\"}\n <ArrowRight className=\"h-4 w-4 transition-transform duration-200 group-hover/link:translate-x-0.5\" />\n </a>\n ) : null}\n </div>\n </div>\n ))}\n </div>\n </div>\n </div>\n );\n};\nFeatureShowcase.displayName = \"FeatureShowcase\";\n"],"names":["FeatureShowcase","className","items","visual","mediaSide","eyebrow","title","description","props","mediaLeft","jsxs","cn","jsx","item","index","ArrowRight"],"mappings":"kLAIaA,EAAkB,CAAC,CAC9B,UAAAC,EACA,MAAAC,EACA,OAAAC,EACA,UAAAC,EAAY,OACZ,QAAAC,EACA,MAAAC,EACA,YAAAC,EACA,GAAGC,CACL,IAA4B,CAC1B,MAAMC,EAAYL,IAAc,OAEhC,OACEM,EAAAA,KAAC,OAAI,UAAWC,EAAAA,GAAG,SAAUV,CAAS,EAAI,GAAGO,EAC1C,SAAA,CAAAH,GAAWC,GAASC,EACnBG,EAAAA,KAAC,MAAA,CAAI,UAAU,YACZ,SAAA,CAAAL,EACCO,EAAAA,IAAC,IAAA,CAAE,UAAU,iEAAkE,WAAQ,EACrF,KACHN,EACCM,EAAAA,IAAC,KAAA,CAAG,UAAU,uHACX,WACH,EACE,KACHL,EACCK,EAAAA,IAAC,IAAA,CAAE,UAAU,wEACV,WACH,EACE,IAAA,CAAA,CACN,EACE,KAEJF,EAAAA,KAAC,MAAA,CAAI,UAAU,+EACZ,SAAA,CAAAP,EACCS,EAAAA,IAAC,MAAA,CAAI,UAAWD,EAAAA,GAAG,WAAYF,EAAY,aAAe,YAAY,EAAI,SAAAN,CAAA,CAAO,EAC/E,KAEJS,EAAAA,IAAC,MAAA,CACC,UAAWD,EAAAA,GACT,uCACAF,EAAY,aAAe,YAAA,EAG5B,SAAAP,EAAM,IAAI,CAACW,EAAMC,IAChBJ,EAAAA,KAAC,MAAA,CAAgB,UAAU,gDACxB,SAAA,CAAAG,EAAK,KACJD,MAAC,MAAA,CAAI,UAAU,4IACZ,SAAAC,EAAK,KACR,EACE,YACH,MAAA,CACC,SAAA,CAAAD,EAAAA,IAAC,KAAA,CAAG,UAAU,oEACX,SAAAC,EAAK,MACR,EACCA,EAAK,YACJD,MAAC,IAAA,CAAE,UAAU,0EACV,SAAAC,EAAK,YACR,EACE,KACHA,EAAK,KACJD,EAAAA,IAAC,MAAA,CAAI,UAAU,OAAQ,SAAAC,EAAK,IAAA,CAAK,EAC/BA,EAAK,KACPH,EAAAA,KAAC,IAAA,CACC,KAAMG,EAAK,KACX,UAAU,wQAET,SAAA,CAAAA,EAAK,WAAa,aACnBD,EAAAA,IAACG,EAAAA,WAAA,CAAW,UAAU,4EAAA,CAA6E,CAAA,CAAA,CAAA,EAEnG,IAAA,CAAA,CACN,CAAA,CAAA,EA1BQD,CA2BV,CACD,CAAA,CAAA,CACH,CAAA,CACF,CAAA,EACF,CAEJ,EACAd,EAAgB,YAAc"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./components/Button.cjs"),i=require("./components/Slot.cjs"),s=require("./components/Badge.cjs"),r=require("./components/Card.cjs"),o=require("./components/Section.cjs"),u=require("./components/Modal.cjs"),t=require("./components/Prose.cjs"),a=require("./components/Container.cjs"),c=require("./utils/cn.cjs"),l=require("./utils/contrast.cjs"),d=require("./utils/useTokenForeground.cjs"),C=require("./utils/iso2Flag.cjs"),e=require("./icons.cjs"),g=require("./components/Blog/BlogCard.cjs"),S=require("./components/Blog/BlogSection.cjs"),q=require("./components/CTA/CTA.cjs"),h=require("./components/FAQ/FAQ.cjs"),T=require("./components/Features/FeatureCard.cjs"),F=require("./components/Features/FeatureGrid.cjs"),w=require("./components/Footer/Footer.cjs"),k=require("./components/Hero/Hero.cjs"),B=require("./components/LanguageSwitcher/LanguageSwitcher.cjs"),L=require("./components/LogoCloud/LogoCloud.cjs"),P=require("./components/MegaMenu/MegaMenu.cjs"),A=require("./components/Navbar/Navbar.cjs"),M=require("./components/Newsletter/Newsletter.cjs"),m=require("./components/Pricing/Pricing.cjs"),p=require("./components/Stats/Stats.cjs"),v=require("./components/Testimonials/TestimonialCard.cjs"),D=require("./components/Testimonials/Testimonials.cjs");exports.Button=n.Button;exports.Slot=i.Slot;exports.Badge=s.Badge;exports.Card=r.Card;exports.CardContent=r.CardContent;exports.CardDescription=r.CardDescription;exports.CardFooter=r.CardFooter;exports.CardHeader=r.CardHeader;exports.CardTitle=r.CardTitle;exports.Section=o.Section;exports.SectionHeader=o.SectionHeader;exports.Modal=u.Modal;exports.Prose=t.Prose;exports.ProseLead=t.ProseLead;exports.Container=a.Container;exports.Stack=a.Stack;exports.cn=c.cn;exports.getContrastText=l.getContrastText;exports.useTokenForeground=d.useTokenForeground;exports.iso2ToFlagEmoji=C.iso2ToFlagEmoji;exports.ArrowDown=e.ArrowDown;exports.ArrowRight=e.ArrowRight;exports.ArrowUp=e.ArrowUp;exports.ArrowUpRight=e.ArrowUpRight;exports.BarChart=e.BarChart;exports.Box=e.Box;exports.Check=e.Check;exports.ChevronDown=e.ChevronDown;exports.ChevronLeft=e.ChevronLeft;exports.ChevronRight=e.ChevronRight;exports.Clock=e.Clock;exports.Code=e.Code;exports.Cpu=e.Cpu;exports.Database=e.Database;exports.DollarSign=e.DollarSign;exports.ExternalLink=e.ExternalLink;exports.Gauge=e.Gauge;exports.Globe=e.Globe;exports.Layers=e.Layers;exports.Lock=e.Lock;exports.Mail=e.Mail;exports.Menu=e.Menu;exports.Palette=e.Palette;exports.Play=e.Play;exports.Plus=e.Plus;exports.Quote=e.Quote;exports.Rocket=e.Rocket;exports.Send=e.Send;exports.ShieldCheck=e.ShieldCheck;exports.Sliders=e.Sliders;exports.Smartphone=e.Smartphone;exports.Star=e.Star;exports.Terminal=e.Terminal;exports.Users=e.Users;exports.X=e.X;exports.Zap=e.Zap;exports.BlogCard=g.BlogCard;exports.BlogSection=S.BlogSection;exports.CTA=q.CTA;exports.FAQ=h.FAQ;exports.FeatureCard=T.FeatureCard;exports.FeatureGrid=F.FeatureGrid;exports.Footer=w.Footer;exports.Hero=k.Hero;exports.LanguageSwitcher=B.LanguageSwitcher;exports.LogoCloud=L.LogoCloud;exports.MegaMenu=P.MegaMenu;exports.Navbar=A.Navbar;exports.Newsletter=M.Newsletter;exports.Pricing=m.Pricing;exports.Stats=p.Stats;exports.TestimonialCard=v.TestimonialCard;exports.Testimonials=D.Testimonials;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("./components/Button.cjs"),i=require("./components/Slot.cjs"),s=require("./components/Badge.cjs"),r=require("./components/Card.cjs"),o=require("./components/Section.cjs"),c=require("./components/Modal.cjs"),t=require("./components/Prose.cjs"),a=require("./components/Container.cjs"),u=require("./utils/cn.cjs"),d=require("./utils/contrast.cjs"),l=require("./utils/useTokenForeground.cjs"),C=require("./utils/iso2Flag.cjs"),e=require("./icons.cjs"),g=require("./components/AccordionShowcase/AccordionShowcase.cjs"),S=require("./components/Blog/BlogCard.cjs"),q=require("./components/Blog/BlogSection.cjs"),h=require("./components/CTA/CTA.cjs"),w=require("./components/FAQ/FAQ.cjs"),F=require("./components/Features/FeatureCard.cjs"),T=require("./components/Features/FeatureGrid.cjs"),k=require("./components/FeatureShowcase/FeatureShowcase.cjs"),A=require("./components/Footer/Footer.cjs"),B=require("./components/Hero/Hero.cjs"),L=require("./components/LanguageSwitcher/LanguageSwitcher.cjs"),P=require("./components/LogoCloud/LogoCloud.cjs"),M=require("./components/MegaMenu/MegaMenu.cjs"),m=require("./components/Navbar/Navbar.cjs"),p=require("./components/Newsletter/Newsletter.cjs"),v=require("./components/Pricing/Pricing.cjs"),D=require("./components/Stats/Stats.cjs"),b=require("./components/Testimonials/TestimonialCard.cjs"),R=require("./components/Testimonials/Testimonials.cjs");exports.Button=n.Button;exports.Slot=i.Slot;exports.Badge=s.Badge;exports.Card=r.Card;exports.CardContent=r.CardContent;exports.CardDescription=r.CardDescription;exports.CardFooter=r.CardFooter;exports.CardHeader=r.CardHeader;exports.CardTitle=r.CardTitle;exports.Section=o.Section;exports.SectionHeader=o.SectionHeader;exports.Modal=c.Modal;exports.Prose=t.Prose;exports.ProseLead=t.ProseLead;exports.Container=a.Container;exports.Stack=a.Stack;exports.cn=u.cn;exports.getContrastText=d.getContrastText;exports.useTokenForeground=l.useTokenForeground;exports.iso2ToFlagEmoji=C.iso2ToFlagEmoji;exports.ArrowDown=e.ArrowDown;exports.ArrowRight=e.ArrowRight;exports.ArrowUp=e.ArrowUp;exports.ArrowUpRight=e.ArrowUpRight;exports.BarChart=e.BarChart;exports.Box=e.Box;exports.Check=e.Check;exports.ChevronDown=e.ChevronDown;exports.ChevronLeft=e.ChevronLeft;exports.ChevronRight=e.ChevronRight;exports.Clock=e.Clock;exports.Code=e.Code;exports.Cpu=e.Cpu;exports.Database=e.Database;exports.DollarSign=e.DollarSign;exports.ExternalLink=e.ExternalLink;exports.Gauge=e.Gauge;exports.Globe=e.Globe;exports.Layers=e.Layers;exports.Lock=e.Lock;exports.Mail=e.Mail;exports.Menu=e.Menu;exports.Palette=e.Palette;exports.Play=e.Play;exports.Plus=e.Plus;exports.Quote=e.Quote;exports.Rocket=e.Rocket;exports.Send=e.Send;exports.ShieldCheck=e.ShieldCheck;exports.Sliders=e.Sliders;exports.Smartphone=e.Smartphone;exports.Star=e.Star;exports.Terminal=e.Terminal;exports.Users=e.Users;exports.X=e.X;exports.Zap=e.Zap;exports.AccordionShowcase=g.AccordionShowcase;exports.BlogCard=S.BlogCard;exports.BlogSection=q.BlogSection;exports.CTA=h.CTA;exports.FAQ=w.FAQ;exports.FeatureCard=F.FeatureCard;exports.FeatureGrid=T.FeatureGrid;exports.FeatureShowcase=k.FeatureShowcase;exports.Footer=A.Footer;exports.Hero=B.Hero;exports.LanguageSwitcher=L.LanguageSwitcher;exports.LogoCloud=P.LogoCloud;exports.MegaMenu=M.MegaMenu;exports.Navbar=m.Navbar;exports.Newsletter=p.Newsletter;exports.Pricing=v.Pricing;exports.Stats=D.Stats;exports.TestimonialCard=b.TestimonialCard;exports.Testimonials=R.Testimonials;
2
2
  //# sourceMappingURL=index.cjs.map
@@ -0,0 +1,48 @@
1
+ "use client";
2
+ import { jsxs as s, jsx as e } from "react/jsx-runtime";
3
+ import { useState as g } from "react";
4
+ import { cn as o } from "../../utils/cn.js";
5
+ import { ChevronDown as p } from "../../icons.js";
6
+ const f = ({
7
+ className: a,
8
+ items: n,
9
+ defaultActive: c = 0,
10
+ ...d
11
+ }) => {
12
+ const [l, m] = g(c);
13
+ return /* @__PURE__ */ s("div", { className: o("grid w-full gap-x-16 gap-y-12 lg:grid-cols-2 lg:items-center lg:gap-y-0", a), ...d, children: [
14
+ /* @__PURE__ */ e("div", { className: "divide-y divide-border", children: n.map((t, i) => {
15
+ const r = i === l;
16
+ return /* @__PURE__ */ s("div", { children: [
17
+ /* @__PURE__ */ e("h3", { children: /* @__PURE__ */ s(
18
+ "button",
19
+ {
20
+ type: "button",
21
+ "aria-expanded": r,
22
+ onClick: () => m(i),
23
+ className: "group flex w-full cursor-pointer items-center justify-between gap-6 py-5 text-left focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background",
24
+ children: [
25
+ /* @__PURE__ */ e("span", { className: "font-display text-[1.375rem] font-semibold leading-tight tracking-tight text-foreground sm:text-[1.625rem]", children: t.title }),
26
+ /* @__PURE__ */ e(
27
+ p,
28
+ {
29
+ className: o(
30
+ "h-5 w-5 shrink-0 text-foreground/40 transition-transform duration-300 sm:h-6 sm:w-6",
31
+ r && "rotate-180 text-foreground"
32
+ )
33
+ }
34
+ )
35
+ ]
36
+ }
37
+ ) }),
38
+ r && t.description ? /* @__PURE__ */ e("div", { className: "pb-8 pr-10", children: /* @__PURE__ */ e("p", { className: "max-w-md text-pretty text-base leading-7 text-muted-foreground sm:text-lg", children: t.description }) }) : null
39
+ ] }, t.title);
40
+ }) }),
41
+ /* @__PURE__ */ e("div", { className: "relative", children: n.map((t, i) => /* @__PURE__ */ e("div", { className: o(i === l ? "block" : "hidden"), children: t.visual }, t.title)) })
42
+ ] });
43
+ };
44
+ f.displayName = "AccordionShowcase";
45
+ export {
46
+ f as AccordionShowcase
47
+ };
48
+ //# sourceMappingURL=AccordionShowcase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AccordionShowcase.js","sources":["../../../../src/components/AccordionShowcase/AccordionShowcase.tsx"],"sourcesContent":["\"use client\";\nimport { useState } from \"react\";\nimport { cn } from \"../../utils/cn\";\nimport { ChevronDown } from \"../../icons\";\nimport type { AccordionShowcaseProps } from \"./types\";\n\nexport const AccordionShowcase = ({\n className,\n items,\n defaultActive = 0,\n ...props\n}: AccordionShowcaseProps) => {\n const [active, setActive] = useState(defaultActive);\n\n return (\n <div className={cn(\"grid w-full gap-x-16 gap-y-12 lg:grid-cols-2 lg:items-center lg:gap-y-0\", className)} {...props}>\n {/* Interactive list */}\n <div className=\"divide-y divide-border\">\n {items.map((item, index) => {\n const open = index === active;\n return (\n <div key={item.title}>\n <h3>\n <button\n type=\"button\"\n aria-expanded={open}\n onClick={() => setActive(index)}\n className=\"group flex w-full cursor-pointer items-center justify-between gap-6 py-5 text-left focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\"\n >\n <span className=\"font-display text-[1.375rem] font-semibold leading-tight tracking-tight text-foreground sm:text-[1.625rem]\">\n {item.title}\n </span>\n <ChevronDown\n className={cn(\n \"h-5 w-5 shrink-0 text-foreground/40 transition-transform duration-300 sm:h-6 sm:w-6\",\n open && \"rotate-180 text-foreground\",\n )}\n />\n </button>\n </h3>\n {open && item.description ? (\n <div className=\"pb-8 pr-10\">\n <p className=\"max-w-md text-pretty text-base leading-7 text-muted-foreground sm:text-lg\">\n {item.description}\n </p>\n </div>\n ) : null}\n </div>\n );\n })}\n </div>\n\n {/* Swapping visual */}\n <div className=\"relative\">\n {items.map((item, index) => (\n <div key={item.title} className={cn(index === active ? \"block\" : \"hidden\")}>\n {item.visual}\n </div>\n ))}\n </div>\n </div>\n );\n};\nAccordionShowcase.displayName = \"AccordionShowcase\";\n"],"names":["AccordionShowcase","className","items","defaultActive","props","active","setActive","useState","jsxs","cn","jsx","item","index","open","ChevronDown"],"mappings":";;;;AAMO,MAAMA,IAAoB,CAAC;AAAA,EAChC,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,eAAAC,IAAgB;AAAA,EAChB,GAAGC;AACL,MAA8B;AAC5B,QAAM,CAACC,GAAQC,CAAS,IAAIC,EAASJ,CAAa;AAElD,SACE,gBAAAK,EAAC,SAAI,WAAWC,EAAG,2EAA2ER,CAAS,GAAI,GAAGG,GAE5G,UAAA;AAAA,IAAA,gBAAAM,EAAC,SAAI,WAAU,0BACZ,YAAM,IAAI,CAACC,GAAMC,MAAU;AAC1B,YAAMC,IAAOD,MAAUP;AACvB,+BACG,OAAA,EACC,UAAA;AAAA,QAAA,gBAAAK,EAAC,MAAA,EACC,UAAA,gBAAAF;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,MAAK;AAAA,YACL,iBAAeK;AAAA,YACf,SAAS,MAAMP,EAAUM,CAAK;AAAA,YAC9B,WAAU;AAAA,YAEV,UAAA;AAAA,cAAA,gBAAAF,EAAC,QAAA,EAAK,WAAU,8GACb,UAAAC,EAAK,OACR;AAAA,cACA,gBAAAD;AAAA,gBAACI;AAAA,gBAAA;AAAA,kBACC,WAAWL;AAAA,oBACT;AAAA,oBACAI,KAAQ;AAAA,kBAAA;AAAA,gBACV;AAAA,cAAA;AAAA,YACF;AAAA,UAAA;AAAA,QAAA,GAEJ;AAAA,QACCA,KAAQF,EAAK,cACZ,gBAAAD,EAAC,SAAI,WAAU,cACb,UAAA,gBAAAA,EAAC,KAAA,EAAE,WAAU,6EACV,UAAAC,EAAK,YAAA,CACR,GACF,IACE;AAAA,MAAA,EAAA,GAzBIA,EAAK,KA0Bf;AAAA,IAEJ,CAAC,EAAA,CACH;AAAA,IAGA,gBAAAD,EAAC,SAAI,WAAU,YACZ,YAAM,IAAI,CAACC,GAAMC,MAChB,gBAAAF,EAAC,OAAA,EAAqB,WAAWD,EAAGG,MAAUP,IAAS,UAAU,QAAQ,GACtE,YAAK,OAAA,GADEM,EAAK,KAEf,CACD,EAAA,CACH;AAAA,EAAA,GACF;AAEJ;AACAX,EAAkB,cAAc;"}
@@ -0,0 +1,57 @@
1
+ import { jsxs as l, jsx as r } from "react/jsx-runtime";
2
+ import { cn as s } from "../../utils/cn.js";
3
+ import { ArrowRight as x } from "../../icons.js";
4
+ const u = ({
5
+ className: d,
6
+ items: c,
7
+ visual: a,
8
+ mediaSide: m = "left",
9
+ eyebrow: t,
10
+ title: i,
11
+ description: n,
12
+ ...f
13
+ }) => {
14
+ const o = m === "left";
15
+ return /* @__PURE__ */ l("div", { className: s("w-full", d), ...f, children: [
16
+ t || i || n ? /* @__PURE__ */ l("div", { className: "max-w-2xl", children: [
17
+ t ? /* @__PURE__ */ r("p", { className: "text-xs font-semibold uppercase tracking-[0.18em] text-primary", children: t }) : null,
18
+ i ? /* @__PURE__ */ r("h2", { className: "mt-4 font-display text-balance text-[1.9rem] font-semibold leading-[1.08] tracking-tight text-foreground sm:text-4xl", children: i }) : null,
19
+ n ? /* @__PURE__ */ r("p", { className: "mt-4 text-pretty text-base leading-7 text-muted-foreground sm:text-lg", children: n }) : null
20
+ ] }) : null,
21
+ /* @__PURE__ */ l("div", { className: "mt-12 grid w-full items-center gap-10 lg:grid-cols-[1.05fr_0.95fr] lg:gap-20", children: [
22
+ a ? /* @__PURE__ */ r("div", { className: s("relative", o ? "lg:order-1" : "lg:order-2"), children: a }) : null,
23
+ /* @__PURE__ */ r(
24
+ "div",
25
+ {
26
+ className: s(
27
+ "flex flex-col divide-y divide-border",
28
+ o ? "lg:order-2" : "lg:order-1"
29
+ ),
30
+ children: c.map((e, g) => /* @__PURE__ */ l("div", { className: "flex gap-5 py-7 first:pt-0 last:pb-0 sm:gap-6", children: [
31
+ e.icon ? /* @__PURE__ */ r("div", { className: "inline-flex h-12 w-12 shrink-0 items-center justify-center rounded-xl border border-border bg-surface text-lg text-foreground shadow-soft", children: e.icon }) : null,
32
+ /* @__PURE__ */ l("div", { children: [
33
+ /* @__PURE__ */ r("h3", { className: "font-display text-lg font-semibold tracking-tight text-foreground", children: e.title }),
34
+ e.description ? /* @__PURE__ */ r("p", { className: "mt-2 text-pretty text-sm leading-6 text-muted-foreground sm:text-[15px]", children: e.description }) : null,
35
+ e.link ? /* @__PURE__ */ r("div", { className: "mt-3", children: e.link }) : e.href ? /* @__PURE__ */ l(
36
+ "a",
37
+ {
38
+ href: e.href,
39
+ className: "group/link mt-3 inline-flex items-center gap-1.5 text-sm font-medium text-primary transition-colors hover:text-primary-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background",
40
+ children: [
41
+ e.linkLabel ?? "Learn more",
42
+ /* @__PURE__ */ r(x, { className: "h-4 w-4 transition-transform duration-200 group-hover/link:translate-x-0.5" })
43
+ ]
44
+ }
45
+ ) : null
46
+ ] })
47
+ ] }, g))
48
+ }
49
+ )
50
+ ] })
51
+ ] });
52
+ };
53
+ u.displayName = "FeatureShowcase";
54
+ export {
55
+ u as FeatureShowcase
56
+ };
57
+ //# sourceMappingURL=FeatureShowcase.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FeatureShowcase.js","sources":["../../../../src/components/FeatureShowcase/FeatureShowcase.tsx"],"sourcesContent":["import { cn } from \"../../utils/cn\";\nimport { ArrowRight } from \"../../icons\";\nimport type { FeatureShowcaseProps } from \"./types\";\n\nexport const FeatureShowcase = ({\n className,\n items,\n visual,\n mediaSide = \"left\",\n eyebrow,\n title,\n description,\n ...props\n}: FeatureShowcaseProps) => {\n const mediaLeft = mediaSide === \"left\";\n\n return (\n <div className={cn(\"w-full\", className)} {...props}>\n {eyebrow || title || description ? (\n <div className=\"max-w-2xl\">\n {eyebrow ? (\n <p className=\"text-xs font-semibold uppercase tracking-[0.18em] text-primary\">{eyebrow}</p>\n ) : null}\n {title ? (\n <h2 className=\"mt-4 font-display text-balance text-[1.9rem] 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 sm:text-lg\">\n {description}\n </p>\n ) : null}\n </div>\n ) : null}\n\n <div className=\"mt-12 grid w-full items-center gap-10 lg:grid-cols-[1.05fr_0.95fr] lg:gap-20\">\n {visual ? (\n <div className={cn(\"relative\", mediaLeft ? \"lg:order-1\" : \"lg:order-2\")}>{visual}</div>\n ) : null}\n\n <div\n className={cn(\n \"flex flex-col divide-y divide-border\",\n mediaLeft ? \"lg:order-2\" : \"lg:order-1\",\n )}\n >\n {items.map((item, index) => (\n <div key={index} className=\"flex gap-5 py-7 first:pt-0 last:pb-0 sm:gap-6\">\n {item.icon ? (\n <div className=\"inline-flex h-12 w-12 shrink-0 items-center justify-center rounded-xl border border-border bg-surface text-lg text-foreground shadow-soft\">\n {item.icon}\n </div>\n ) : null}\n <div>\n <h3 className=\"font-display text-lg font-semibold tracking-tight text-foreground\">\n {item.title}\n </h3>\n {item.description ? (\n <p className=\"mt-2 text-pretty text-sm leading-6 text-muted-foreground sm:text-[15px]\">\n {item.description}\n </p>\n ) : null}\n {item.link ? (\n <div className=\"mt-3\">{item.link}</div>\n ) : item.href ? (\n <a\n href={item.href}\n className=\"group/link mt-3 inline-flex items-center gap-1.5 text-sm font-medium text-primary transition-colors hover:text-primary-hover focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 focus-visible:ring-offset-background\"\n >\n {item.linkLabel ?? \"Learn more\"}\n <ArrowRight className=\"h-4 w-4 transition-transform duration-200 group-hover/link:translate-x-0.5\" />\n </a>\n ) : null}\n </div>\n </div>\n ))}\n </div>\n </div>\n </div>\n );\n};\nFeatureShowcase.displayName = \"FeatureShowcase\";\n"],"names":["FeatureShowcase","className","items","visual","mediaSide","eyebrow","title","description","props","mediaLeft","jsxs","cn","jsx","item","index","ArrowRight"],"mappings":";;;AAIO,MAAMA,IAAkB,CAAC;AAAA,EAC9B,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,QAAAC;AAAA,EACA,WAAAC,IAAY;AAAA,EACZ,SAAAC;AAAA,EACA,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA,GAAGC;AACL,MAA4B;AAC1B,QAAMC,IAAYL,MAAc;AAEhC,SACE,gBAAAM,EAAC,SAAI,WAAWC,EAAG,UAAUV,CAAS,GAAI,GAAGO,GAC1C,UAAA;AAAA,IAAAH,KAAWC,KAASC,IACnB,gBAAAG,EAAC,OAAA,EAAI,WAAU,aACZ,UAAA;AAAA,MAAAL,IACC,gBAAAO,EAAC,KAAA,EAAE,WAAU,kEAAkE,aAAQ,IACrF;AAAA,MACHN,IACC,gBAAAM,EAAC,MAAA,EAAG,WAAU,wHACX,aACH,IACE;AAAA,MACHL,IACC,gBAAAK,EAAC,KAAA,EAAE,WAAU,yEACV,aACH,IACE;AAAA,IAAA,EAAA,CACN,IACE;AAAA,IAEJ,gBAAAF,EAAC,OAAA,EAAI,WAAU,gFACZ,UAAA;AAAA,MAAAP,IACC,gBAAAS,EAAC,OAAA,EAAI,WAAWD,EAAG,YAAYF,IAAY,eAAe,YAAY,GAAI,UAAAN,EAAA,CAAO,IAC/E;AAAA,MAEJ,gBAAAS;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAWD;AAAA,YACT;AAAA,YACAF,IAAY,eAAe;AAAA,UAAA;AAAA,UAG5B,UAAAP,EAAM,IAAI,CAACW,GAAMC,MAChB,gBAAAJ,EAAC,OAAA,EAAgB,WAAU,iDACxB,UAAA;AAAA,YAAAG,EAAK,OACJ,gBAAAD,EAAC,OAAA,EAAI,WAAU,6IACZ,UAAAC,EAAK,MACR,IACE;AAAA,8BACH,OAAA,EACC,UAAA;AAAA,cAAA,gBAAAD,EAAC,MAAA,EAAG,WAAU,qEACX,UAAAC,EAAK,OACR;AAAA,cACCA,EAAK,cACJ,gBAAAD,EAAC,KAAA,EAAE,WAAU,2EACV,UAAAC,EAAK,aACR,IACE;AAAA,cACHA,EAAK,OACJ,gBAAAD,EAAC,OAAA,EAAI,WAAU,QAAQ,UAAAC,EAAK,KAAA,CAAK,IAC/BA,EAAK,OACP,gBAAAH;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,MAAMG,EAAK;AAAA,kBACX,WAAU;AAAA,kBAET,UAAA;AAAA,oBAAAA,EAAK,aAAa;AAAA,oBACnB,gBAAAD,EAACG,GAAA,EAAW,WAAU,6EAAA,CAA6E;AAAA,kBAAA;AAAA,gBAAA;AAAA,cAAA,IAEnG;AAAA,YAAA,EAAA,CACN;AAAA,UAAA,EAAA,GA1BQD,CA2BV,CACD;AAAA,QAAA;AAAA,MAAA;AAAA,IACH,EAAA,CACF;AAAA,EAAA,GACF;AAEJ;AACAd,EAAgB,cAAc;"}
package/dist/es/index.js CHANGED
@@ -1,103 +1,107 @@
1
1
  import { Button as e } from "./components/Button.js";
2
2
  import { Slot as a } from "./components/Slot.js";
3
3
  import { Badge as m } from "./components/Badge.js";
4
- import { Card as f, CardContent as n, CardDescription as i, CardFooter as C, CardHeader as l, CardTitle as d } from "./components/Card.js";
5
- import { Section as g, SectionHeader as c } from "./components/Section.js";
6
- import { Modal as S } from "./components/Modal.js";
7
- import { Prose as k, ProseLead as w } from "./components/Prose.js";
8
- import { Container as F, Stack as L } from "./components/Container.js";
4
+ import { Card as f, CardContent as n, CardDescription as i, CardFooter as C, CardHeader as d, CardTitle as l } from "./components/Card.js";
5
+ import { Section as c, SectionHeader as g } from "./components/Section.js";
6
+ import { Modal as h } from "./components/Modal.js";
7
+ import { Prose as w, ProseLead as k } from "./components/Prose.js";
8
+ import { Container as T, Stack as A } from "./components/Container.js";
9
9
  import { cn as B } from "./utils/cn.js";
10
10
  import { getContrastText as D } from "./utils/contrast.js";
11
11
  import { useTokenForeground as v } from "./utils/useTokenForeground.js";
12
12
  import { iso2ToFlagEmoji as b } from "./utils/iso2Flag.js";
13
- import { ArrowDown as H, ArrowRight as U, ArrowUp as y, ArrowUpRight as E, BarChart as N, Box as Q, Check as j, ChevronDown as X, ChevronLeft as Z, ChevronRight as q, Clock as z, Code as I, Cpu as J, Database as K, DollarSign as O, ExternalLink as V, Gauge as W, Globe as Y, Layers as _, Lock as $, Mail as rr, Menu as or, Palette as er, Play as tr, Plus as ar, Quote as pr, Rocket as mr, Send as xr, ShieldCheck as fr, Sliders as nr, Smartphone as ir, Star as Cr, Terminal as lr, Users as dr, X as sr, Zap as gr } from "./icons.js";
14
- import { BlogCard as ur } from "./components/Blog/BlogCard.js";
15
- import { BlogSection as hr } from "./components/Blog/BlogSection.js";
16
- import { CTA as wr } from "./components/CTA/CTA.js";
17
- import { FAQ as Fr } from "./components/FAQ/FAQ.js";
18
- import { FeatureCard as Ar } from "./components/Features/FeatureCard.js";
19
- import { FeatureGrid as Pr } from "./components/Features/FeatureGrid.js";
20
- import { Footer as Mr } from "./components/Footer/Footer.js";
21
- import { Hero as Rr } from "./components/Hero/Hero.js";
22
- import { LanguageSwitcher as Gr } from "./components/LanguageSwitcher/LanguageSwitcher.js";
23
- import { LogoCloud as Ur } from "./components/LogoCloud/LogoCloud.js";
24
- import { MegaMenu as Er } from "./components/MegaMenu/MegaMenu.js";
25
- import { Navbar as Qr } from "./components/Navbar/Navbar.js";
26
- import { Newsletter as Xr } from "./components/Newsletter/Newsletter.js";
27
- import { Pricing as qr } from "./components/Pricing/Pricing.js";
28
- import { Stats as Ir } from "./components/Stats/Stats.js";
29
- import { TestimonialCard as Kr } from "./components/Testimonials/TestimonialCard.js";
30
- import { Testimonials as Vr } from "./components/Testimonials/Testimonials.js";
13
+ import { ArrowDown as H, ArrowRight as U, ArrowUp as y, ArrowUpRight as E, BarChart as N, Box as Q, Check as j, ChevronDown as X, ChevronLeft as Z, ChevronRight as q, Clock as z, Code as I, Cpu as J, Database as K, DollarSign as O, ExternalLink as V, Gauge as W, Globe as Y, Layers as _, Lock as $, Mail as oo, Menu as ro, Palette as eo, Play as to, Plus as ao, Quote as po, Rocket as mo, Send as xo, ShieldCheck as fo, Sliders as no, Smartphone as io, Star as Co, Terminal as lo, Users as so, X as co, Zap as go } from "./icons.js";
14
+ import { AccordionShowcase as ho } from "./components/AccordionShowcase/AccordionShowcase.js";
15
+ import { BlogCard as wo } from "./components/Blog/BlogCard.js";
16
+ import { BlogSection as Fo } from "./components/Blog/BlogSection.js";
17
+ import { CTA as Ao } from "./components/CTA/CTA.js";
18
+ import { FAQ as Bo } from "./components/FAQ/FAQ.js";
19
+ import { FeatureCard as Do } from "./components/Features/FeatureCard.js";
20
+ import { FeatureGrid as vo } from "./components/Features/FeatureGrid.js";
21
+ import { FeatureShowcase as bo } from "./components/FeatureShowcase/FeatureShowcase.js";
22
+ import { Footer as Ho } from "./components/Footer/Footer.js";
23
+ import { Hero as yo } from "./components/Hero/Hero.js";
24
+ import { LanguageSwitcher as No } from "./components/LanguageSwitcher/LanguageSwitcher.js";
25
+ import { LogoCloud as jo } from "./components/LogoCloud/LogoCloud.js";
26
+ import { MegaMenu as Zo } from "./components/MegaMenu/MegaMenu.js";
27
+ import { Navbar as zo } from "./components/Navbar/Navbar.js";
28
+ import { Newsletter as Jo } from "./components/Newsletter/Newsletter.js";
29
+ import { Pricing as Oo } from "./components/Pricing/Pricing.js";
30
+ import { Stats as Wo } from "./components/Stats/Stats.js";
31
+ import { TestimonialCard as _o } from "./components/Testimonials/TestimonialCard.js";
32
+ import { Testimonials as or } from "./components/Testimonials/Testimonials.js";
31
33
  export {
34
+ ho as AccordionShowcase,
32
35
  H as ArrowDown,
33
36
  U as ArrowRight,
34
37
  y as ArrowUp,
35
38
  E as ArrowUpRight,
36
39
  m as Badge,
37
40
  N as BarChart,
38
- ur as BlogCard,
39
- hr as BlogSection,
41
+ wo as BlogCard,
42
+ Fo as BlogSection,
40
43
  Q as Box,
41
44
  e as Button,
42
- wr as CTA,
45
+ Ao as CTA,
43
46
  f as Card,
44
47
  n as CardContent,
45
48
  i as CardDescription,
46
49
  C as CardFooter,
47
- l as CardHeader,
48
- d as CardTitle,
50
+ d as CardHeader,
51
+ l as CardTitle,
49
52
  j as Check,
50
53
  X as ChevronDown,
51
54
  Z as ChevronLeft,
52
55
  q as ChevronRight,
53
56
  z as Clock,
54
57
  I as Code,
55
- F as Container,
58
+ T as Container,
56
59
  J as Cpu,
57
60
  K as Database,
58
61
  O as DollarSign,
59
62
  V as ExternalLink,
60
- Fr as FAQ,
61
- Ar as FeatureCard,
62
- Pr as FeatureGrid,
63
- Mr as Footer,
63
+ Bo as FAQ,
64
+ Do as FeatureCard,
65
+ vo as FeatureGrid,
66
+ bo as FeatureShowcase,
67
+ Ho as Footer,
64
68
  W as Gauge,
65
69
  Y as Globe,
66
- Rr as Hero,
67
- Gr as LanguageSwitcher,
70
+ yo as Hero,
71
+ No as LanguageSwitcher,
68
72
  _ as Layers,
69
73
  $ as Lock,
70
- Ur as LogoCloud,
71
- rr as Mail,
72
- Er as MegaMenu,
73
- or as Menu,
74
- S as Modal,
75
- Qr as Navbar,
76
- Xr as Newsletter,
77
- er as Palette,
78
- tr as Play,
79
- ar as Plus,
80
- qr as Pricing,
81
- k as Prose,
82
- w as ProseLead,
83
- pr as Quote,
84
- mr as Rocket,
85
- g as Section,
86
- c as SectionHeader,
87
- xr as Send,
88
- fr as ShieldCheck,
89
- nr as Sliders,
74
+ jo as LogoCloud,
75
+ oo as Mail,
76
+ Zo as MegaMenu,
77
+ ro as Menu,
78
+ h as Modal,
79
+ zo as Navbar,
80
+ Jo as Newsletter,
81
+ eo as Palette,
82
+ to as Play,
83
+ ao as Plus,
84
+ Oo as Pricing,
85
+ w as Prose,
86
+ k as ProseLead,
87
+ po as Quote,
88
+ mo as Rocket,
89
+ c as Section,
90
+ g as SectionHeader,
91
+ xo as Send,
92
+ fo as ShieldCheck,
93
+ no as Sliders,
90
94
  a as Slot,
91
- ir as Smartphone,
92
- L as Stack,
93
- Cr as Star,
94
- Ir as Stats,
95
- lr as Terminal,
96
- Kr as TestimonialCard,
97
- Vr as Testimonials,
98
- dr as Users,
99
- sr as X,
100
- gr as Zap,
95
+ io as Smartphone,
96
+ A as Stack,
97
+ Co as Star,
98
+ Wo as Stats,
99
+ lo as Terminal,
100
+ _o as TestimonialCard,
101
+ or as Testimonials,
102
+ so as Users,
103
+ co as X,
104
+ go as Zap,
101
105
  B as cn,
102
106
  D as getContrastText,
103
107
  b as iso2ToFlagEmoji,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/index.d.ts CHANGED
@@ -8,6 +8,26 @@ import { ReactNode } from 'react';
8
8
  import { RefAttributes } from 'react';
9
9
  import { SVGProps } from 'react';
10
10
 
11
+ export declare const AccordionShowcase: {
12
+ ({ className, items, defaultActive, ...props }: AccordionShowcaseProps): JSX_2.Element;
13
+ displayName: string;
14
+ };
15
+
16
+ export declare interface AccordionShowcaseItem {
17
+ /** Accordion heading, e.g. an integration or product name. */
18
+ title: string;
19
+ /** Expandable copy shown when the item is active. */
20
+ description?: ReactNode;
21
+ /** Artwork swapped in on the right when the item is active. */
22
+ visual: ReactNode;
23
+ }
24
+
25
+ export declare interface AccordionShowcaseProps extends Omit<HTMLAttributes<HTMLDivElement>, "title"> {
26
+ items: AccordionShowcaseItem[];
27
+ /** Index opened on first render. */
28
+ defaultActive?: number;
29
+ }
30
+
11
31
  export declare const ArrowDown: (props: IconProps) => JSX_2.Element;
12
32
 
13
33
  export declare const ArrowRight: (props: IconProps) => JSX_2.Element;
@@ -251,6 +271,38 @@ export declare interface FeatureItem {
251
271
  accent?: string;
252
272
  }
253
273
 
274
+ export declare const FeatureShowcase: {
275
+ ({ className, items, visual, mediaSide, eyebrow, title, description, ...props }: FeatureShowcaseProps): JSX_2.Element;
276
+ displayName: string;
277
+ };
278
+
279
+ export declare interface FeatureShowcaseItem {
280
+ icon?: ReactNode;
281
+ title: ReactNode;
282
+ description?: ReactNode;
283
+ /** When set (and no `link` slot), a "Learn more"-style link is rendered. */
284
+ href?: string;
285
+ linkLabel?: ReactNode;
286
+ /**
287
+ * Slot for a fully custom link (router `<Link>`, anchor…) rendered as-is.
288
+ * Takes precedence over `href`.
289
+ */
290
+ link?: ReactNode;
291
+ }
292
+
293
+ export declare type FeatureShowcaseMediaSide = "left" | "right";
294
+
295
+ export declare interface FeatureShowcaseProps extends Omit<HTMLAttributes<HTMLDivElement>, "title"> {
296
+ items: FeatureShowcaseItem[];
297
+ /** Large control-panel / product screenshot. */
298
+ visual?: ReactNode;
299
+ /** Which side the visual sits on. Items sit opposite. Default: `"left"`. */
300
+ mediaSide?: FeatureShowcaseMediaSide;
301
+ eyebrow?: ReactNode;
302
+ title?: ReactNode;
303
+ description?: ReactNode;
304
+ }
305
+
254
306
  export declare const Footer: {
255
307
  ({ option, ...props }: FooterProps): JSX_2.Element;
256
308
  displayName: string;
package/dist/styles.css CHANGED
@@ -55,6 +55,7 @@
55
55
  --tracking-wide: 0.025em;
56
56
  --tracking-wider: 0.05em;
57
57
  --tracking-widest: 0.1em;
58
+ --leading-tight: 1.25;
58
59
  --leading-snug: 1.375;
59
60
  --leading-relaxed: 1.625;
60
61
  --radius-sm: 0.375rem;
@@ -1793,6 +1794,9 @@
1793
1794
  .w-11 {
1794
1795
  width: calc(var(--spacing) * 11);
1795
1796
  }
1797
+ .w-12 {
1798
+ width: calc(var(--spacing) * 12);
1799
+ }
1796
1800
  .w-28 {
1797
1801
  width: calc(var(--spacing) * 28);
1798
1802
  }
@@ -2026,6 +2030,9 @@
2026
2030
  .gap-x-12 {
2027
2031
  column-gap: calc(var(--spacing) * 12);
2028
2032
  }
2033
+ .gap-x-16 {
2034
+ column-gap: calc(var(--spacing) * 16);
2035
+ }
2029
2036
  .gap-y-2\.5 {
2030
2037
  row-gap: calc(var(--spacing) * 2.5);
2031
2038
  }
@@ -2409,6 +2416,9 @@
2409
2416
  .pr-8 {
2410
2417
  padding-right: calc(var(--spacing) * 8);
2411
2418
  }
2419
+ .pr-10 {
2420
+ padding-right: calc(var(--spacing) * 10);
2421
+ }
2412
2422
  .pr-14 {
2413
2423
  padding-right: calc(var(--spacing) * 14);
2414
2424
  }
@@ -2424,6 +2434,9 @@
2424
2434
  .pb-6 {
2425
2435
  padding-bottom: calc(var(--spacing) * 6);
2426
2436
  }
2437
+ .pb-8 {
2438
+ padding-bottom: calc(var(--spacing) * 8);
2439
+ }
2427
2440
  .pb-20 {
2428
2441
  padding-bottom: calc(var(--spacing) * 20);
2429
2442
  }
@@ -2487,6 +2500,9 @@
2487
2500
  .text-\[1\.9rem\] {
2488
2501
  font-size: 1.9rem;
2489
2502
  }
2503
+ .text-\[1\.375rem\] {
2504
+ font-size: 1.375rem;
2505
+ }
2490
2506
  .text-\[2\.6rem\] {
2491
2507
  font-size: 2.6rem;
2492
2508
  }
@@ -2552,6 +2568,10 @@
2552
2568
  --tw-leading: var(--leading-snug);
2553
2569
  line-height: var(--leading-snug);
2554
2570
  }
2571
+ .leading-tight {
2572
+ --tw-leading: var(--leading-tight);
2573
+ line-height: var(--leading-tight);
2574
+ }
2555
2575
  .font-bold {
2556
2576
  --tw-font-weight: var(--font-weight-bold);
2557
2577
  font-weight: var(--font-weight-bold);
@@ -2655,6 +2675,12 @@
2655
2675
  color: color-mix(in oklab, rgb(var(--color-foreground)) 35%, transparent);
2656
2676
  }
2657
2677
  }
2678
+ .text-foreground\/40 {
2679
+ color: color-mix(in srgb, rgb(rgb(var(--color-foreground))) 40%, transparent);
2680
+ @supports (color: color-mix(in lab, red, red)) {
2681
+ color: color-mix(in oklab, rgb(var(--color-foreground)) 40%, transparent);
2682
+ }
2683
+ }
2658
2684
  .text-foreground\/45 {
2659
2685
  color: color-mix(in srgb, rgb(rgb(var(--color-foreground))) 45%, transparent);
2660
2686
  @supports (color: color-mix(in lab, red, red)) {
@@ -2875,6 +2901,10 @@
2875
2901
  --tw-duration: 200ms;
2876
2902
  transition-duration: 200ms;
2877
2903
  }
2904
+ .duration-300 {
2905
+ --tw-duration: 300ms;
2906
+ transition-duration: 300ms;
2907
+ }
2878
2908
  .prose-neutral {
2879
2909
  --tw-prose-body: oklch(37.1% 0 none);
2880
2910
  --tw-prose-headings: oklch(20.5% 0 none);
@@ -2939,10 +2969,20 @@
2939
2969
  --tw-grayscale: grayscale(0%);
2940
2970
  filter: var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,);
2941
2971
  }
2972
+ .group-hover\/link\:translate-x-0\.5:is(:where(.group\/link):hover *) {
2973
+ --tw-translate-x: calc(var(--spacing) * 0.5);
2974
+ translate: var(--tw-translate-x) var(--tw-translate-y);
2975
+ }
2942
2976
  }
2943
2977
  .placeholder\:text-muted-foreground::placeholder {
2944
2978
  color: rgb(var(--color-muted-foreground));
2945
2979
  }
2980
+ .first\:pt-0:first-child {
2981
+ padding-top: 0px;
2982
+ }
2983
+ .last\:pb-0:last-child {
2984
+ padding-bottom: 0px;
2985
+ }
2946
2986
  .focus-within\:border-foreground:focus-within {
2947
2987
  border-color: rgb(var(--color-foreground));
2948
2988
  }
@@ -3132,6 +3172,9 @@
3132
3172
  .sm\:h-5 {
3133
3173
  height: calc(var(--spacing) * 5);
3134
3174
  }
3175
+ .sm\:h-6 {
3176
+ height: calc(var(--spacing) * 6);
3177
+ }
3135
3178
  .sm\:w-1\/2 {
3136
3179
  width: calc(1 / 2 * 100%);
3137
3180
  }
@@ -3141,6 +3184,9 @@
3141
3184
  .sm\:w-5 {
3142
3185
  width: calc(var(--spacing) * 5);
3143
3186
  }
3187
+ .sm\:w-6 {
3188
+ width: calc(var(--spacing) * 6);
3189
+ }
3144
3190
  .sm\:w-12 {
3145
3191
  width: calc(var(--spacing) * 12);
3146
3192
  }
@@ -3168,6 +3214,9 @@
3168
3214
  .sm\:justify-between {
3169
3215
  justify-content: space-between;
3170
3216
  }
3217
+ .sm\:gap-6 {
3218
+ gap: calc(var(--spacing) * 6);
3219
+ }
3171
3220
  .sm\:gap-10 {
3172
3221
  gap: calc(var(--spacing) * 10);
3173
3222
  }
@@ -3257,9 +3306,15 @@
3257
3306
  font-size: var(--text-xl);
3258
3307
  line-height: var(--tw-leading, var(--text-xl--line-height));
3259
3308
  }
3309
+ .sm\:text-\[1\.625rem\] {
3310
+ font-size: 1.625rem;
3311
+ }
3260
3312
  .sm\:text-\[3rem\] {
3261
3313
  font-size: 3rem;
3262
3314
  }
3315
+ .sm\:text-\[15px\] {
3316
+ font-size: 15px;
3317
+ }
3263
3318
  }
3264
3319
  @media (width >= 48rem) {
3265
3320
  .md\:flex {
@@ -3288,6 +3343,12 @@
3288
3343
  .lg\:top-24 {
3289
3344
  top: calc(var(--spacing) * 24);
3290
3345
  }
3346
+ .lg\:order-1 {
3347
+ order: 1;
3348
+ }
3349
+ .lg\:order-2 {
3350
+ order: 2;
3351
+ }
3291
3352
  .lg\:col-span-2 {
3292
3353
  grid-column: span 2 / span 2;
3293
3354
  }
@@ -3342,6 +3403,9 @@
3342
3403
  .lg\:flex-row {
3343
3404
  flex-direction: row;
3344
3405
  }
3406
+ .lg\:items-center {
3407
+ align-items: center;
3408
+ }
3345
3409
  .lg\:items-end {
3346
3410
  align-items: flex-end;
3347
3411
  }
@@ -3354,6 +3418,9 @@
3354
3418
  .lg\:gap-20 {
3355
3419
  gap: calc(var(--spacing) * 20);
3356
3420
  }
3421
+ .lg\:gap-y-0 {
3422
+ row-gap: 0px;
3423
+ }
3357
3424
  .lg\:self-start {
3358
3425
  align-self: flex-start;
3359
3426
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ugurdemirel/landcraft",
3
- "version": "0.1.12",
3
+ "version": "0.1.13",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },