@shipsite.dev/components 0.1.0
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/components.json +532 -0
- package/dist/blog/BlogArticle.d.ts +8 -0
- package/dist/blog/BlogArticle.d.ts.map +1 -0
- package/dist/blog/BlogArticle.js +5 -0
- package/dist/blog/BlogArticle.js.map +1 -0
- package/dist/blog/BlogCTA.d.ts +8 -0
- package/dist/blog/BlogCTA.d.ts.map +1 -0
- package/dist/blog/BlogCTA.js +6 -0
- package/dist/blog/BlogCTA.js.map +1 -0
- package/dist/blog/BlogCTABanner.d.ts +9 -0
- package/dist/blog/BlogCTABanner.d.ts.map +1 -0
- package/dist/blog/BlogCTABanner.js +7 -0
- package/dist/blog/BlogCTABanner.js.map +1 -0
- package/dist/blog/BlogFAQ.d.ts +10 -0
- package/dist/blog/BlogFAQ.d.ts.map +1 -0
- package/dist/blog/BlogFAQ.js +7 -0
- package/dist/blog/BlogFAQ.js.map +1 -0
- package/dist/blog/BlogIndex.d.ts +9 -0
- package/dist/blog/BlogIndex.d.ts.map +1 -0
- package/dist/blog/BlogIndex.js +6 -0
- package/dist/blog/BlogIndex.js.map +1 -0
- package/dist/blog/BlogIntro.d.ts +5 -0
- package/dist/blog/BlogIntro.d.ts.map +1 -0
- package/dist/blog/BlogIntro.js +5 -0
- package/dist/blog/BlogIntro.js.map +1 -0
- package/dist/blog/BlogTable.d.ts +7 -0
- package/dist/blog/BlogTable.d.ts.map +1 -0
- package/dist/blog/BlogTable.js +5 -0
- package/dist/blog/BlogTable.js.map +1 -0
- package/dist/blog/BlogTip.d.ts +8 -0
- package/dist/blog/BlogTip.d.ts.map +1 -0
- package/dist/blog/BlogTip.js +5 -0
- package/dist/blog/BlogTip.js.map +1 -0
- package/dist/blog/StartFreeNowCTA.d.ts +9 -0
- package/dist/blog/StartFreeNowCTA.d.ts.map +1 -0
- package/dist/blog/StartFreeNowCTA.js +7 -0
- package/dist/blog/StartFreeNowCTA.js.map +1 -0
- package/dist/context/ShipSiteProvider.d.ts +54 -0
- package/dist/context/ShipSiteProvider.d.ts.map +1 -0
- package/dist/context/ShipSiteProvider.js +33 -0
- package/dist/context/ShipSiteProvider.js.map +1 -0
- package/dist/context/ThemeProvider.d.ts +5 -0
- package/dist/context/ThemeProvider.d.ts.map +1 -0
- package/dist/context/ThemeProvider.js +15 -0
- package/dist/context/ThemeProvider.js.map +1 -0
- package/dist/index.d.ts +36 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +42 -0
- package/dist/index.js.map +1 -0
- package/dist/layout/Footer.d.ts +2 -0
- package/dist/layout/Footer.d.ts.map +1 -0
- package/dist/layout/Footer.js +11 -0
- package/dist/layout/Footer.js.map +1 -0
- package/dist/layout/Header.d.ts +2 -0
- package/dist/layout/Header.d.ts.map +1 -0
- package/dist/layout/Header.js +15 -0
- package/dist/layout/Header.js.map +1 -0
- package/dist/legal/LegalPage.d.ts +14 -0
- package/dist/legal/LegalPage.d.ts.map +1 -0
- package/dist/legal/LegalPage.js +8 -0
- package/dist/legal/LegalPage.js.map +1 -0
- package/dist/lib/utils.d.ts +3 -0
- package/dist/lib/utils.d.ts.map +1 -0
- package/dist/lib/utils.js +6 -0
- package/dist/lib/utils.js.map +1 -0
- package/dist/marketing/AlternatingFeatures.d.ts +24 -0
- package/dist/marketing/AlternatingFeatures.d.ts.map +1 -0
- package/dist/marketing/AlternatingFeatures.js +13 -0
- package/dist/marketing/AlternatingFeatures.js.map +1 -0
- package/dist/marketing/BannerCTA.d.ts +15 -0
- package/dist/marketing/BannerCTA.d.ts.map +1 -0
- package/dist/marketing/BannerCTA.js +11 -0
- package/dist/marketing/BannerCTA.js.map +1 -0
- package/dist/marketing/BentoGrid.d.ts +17 -0
- package/dist/marketing/BentoGrid.d.ts.map +1 -0
- package/dist/marketing/BentoGrid.js +10 -0
- package/dist/marketing/BentoGrid.js.map +1 -0
- package/dist/marketing/CalloutCard.d.ts +10 -0
- package/dist/marketing/CalloutCard.d.ts.map +1 -0
- package/dist/marketing/CalloutCard.js +11 -0
- package/dist/marketing/CalloutCard.js.map +1 -0
- package/dist/marketing/CardGrid.d.ts +15 -0
- package/dist/marketing/CardGrid.d.ts.map +1 -0
- package/dist/marketing/CardGrid.js +10 -0
- package/dist/marketing/CardGrid.js.map +1 -0
- package/dist/marketing/Carousel.d.ts +16 -0
- package/dist/marketing/Carousel.d.ts.map +1 -0
- package/dist/marketing/Carousel.js +22 -0
- package/dist/marketing/Carousel.js.map +1 -0
- package/dist/marketing/Companies.d.ts +16 -0
- package/dist/marketing/Companies.d.ts.map +1 -0
- package/dist/marketing/Companies.js +11 -0
- package/dist/marketing/Companies.js.map +1 -0
- package/dist/marketing/FAQ.d.ts +14 -0
- package/dist/marketing/FAQ.d.ts.map +1 -0
- package/dist/marketing/FAQ.js +11 -0
- package/dist/marketing/FAQ.js.map +1 -0
- package/dist/marketing/Features.d.ts +16 -0
- package/dist/marketing/Features.d.ts.map +1 -0
- package/dist/marketing/Features.js +10 -0
- package/dist/marketing/Features.js.map +1 -0
- package/dist/marketing/Gallery.d.ts +16 -0
- package/dist/marketing/Gallery.d.ts.map +1 -0
- package/dist/marketing/Gallery.js +15 -0
- package/dist/marketing/Gallery.js.map +1 -0
- package/dist/marketing/Hero.d.ts +19 -0
- package/dist/marketing/Hero.d.ts.map +1 -0
- package/dist/marketing/Hero.js +10 -0
- package/dist/marketing/Hero.js.map +1 -0
- package/dist/marketing/PageHero.d.ts +10 -0
- package/dist/marketing/PageHero.d.ts.map +1 -0
- package/dist/marketing/PageHero.js +7 -0
- package/dist/marketing/PageHero.js.map +1 -0
- package/dist/marketing/PricingSection.d.ts +34 -0
- package/dist/marketing/PricingSection.d.ts.map +1 -0
- package/dist/marketing/PricingSection.js +41 -0
- package/dist/marketing/PricingSection.js.map +1 -0
- package/dist/marketing/SocialProof.d.ts +8 -0
- package/dist/marketing/SocialProof.d.ts.map +1 -0
- package/dist/marketing/SocialProof.js +6 -0
- package/dist/marketing/SocialProof.js.map +1 -0
- package/dist/marketing/Stats.d.ts +15 -0
- package/dist/marketing/Stats.d.ts.map +1 -0
- package/dist/marketing/Stats.js +16 -0
- package/dist/marketing/Stats.js.map +1 -0
- package/dist/marketing/Steps.d.ts +14 -0
- package/dist/marketing/Steps.d.ts.map +1 -0
- package/dist/marketing/Steps.js +16 -0
- package/dist/marketing/Steps.js.map +1 -0
- package/dist/marketing/TabsSection.d.ts +17 -0
- package/dist/marketing/TabsSection.d.ts.map +1 -0
- package/dist/marketing/TabsSection.js +22 -0
- package/dist/marketing/TabsSection.js.map +1 -0
- package/dist/marketing/Testimonial.d.ts +10 -0
- package/dist/marketing/Testimonial.d.ts.map +1 -0
- package/dist/marketing/Testimonial.js +6 -0
- package/dist/marketing/Testimonial.js.map +1 -0
- package/dist/marketing/Testimonials.d.ts +19 -0
- package/dist/marketing/Testimonials.d.ts.map +1 -0
- package/dist/marketing/Testimonials.js +10 -0
- package/dist/marketing/Testimonials.js.map +1 -0
- package/dist/ui/accordion.d.ts +8 -0
- package/dist/ui/accordion.d.ts.map +1 -0
- package/dist/ui/accordion.js +19 -0
- package/dist/ui/accordion.js.map +1 -0
- package/dist/ui/badge.d.ts +11 -0
- package/dist/ui/badge.d.ts.map +1 -0
- package/dist/ui/badge.js +30 -0
- package/dist/ui/badge.js.map +1 -0
- package/dist/ui/button.d.ts +11 -0
- package/dist/ui/button.d.ts.map +1 -0
- package/dist/ui/button.js +34 -0
- package/dist/ui/button.js.map +1 -0
- package/dist/ui/card.d.ts +9 -0
- package/dist/ui/card.d.ts.map +1 -0
- package/dist/ui/card.js +22 -0
- package/dist/ui/card.js.map +1 -0
- package/dist/ui/footer.d.ts +7 -0
- package/dist/ui/footer.d.ts.map +1 -0
- package/dist/ui/footer.js +16 -0
- package/dist/ui/footer.js.map +1 -0
- package/dist/ui/glow.d.ts +8 -0
- package/dist/ui/glow.d.ts.map +1 -0
- package/dist/ui/glow.js +22 -0
- package/dist/ui/glow.js.map +1 -0
- package/dist/ui/item.d.ts +7 -0
- package/dist/ui/item.d.ts.map +1 -0
- package/dist/ui/item.js +16 -0
- package/dist/ui/item.js.map +1 -0
- package/dist/ui/mockup.d.ts +16 -0
- package/dist/ui/mockup.d.ts.map +1 -0
- package/dist/ui/mockup.js +33 -0
- package/dist/ui/mockup.js.map +1 -0
- package/dist/ui/navbar.d.ts +7 -0
- package/dist/ui/navbar.d.ts.map +1 -0
- package/dist/ui/navbar.js +16 -0
- package/dist/ui/navbar.js.map +1 -0
- package/dist/ui/section.d.ts +4 -0
- package/dist/ui/section.d.ts.map +1 -0
- package/dist/ui/section.js +7 -0
- package/dist/ui/section.js.map +1 -0
- package/dist/ui/sheet.d.ts +14 -0
- package/dist/ui/sheet.d.ts.map +1 -0
- package/dist/ui/sheet.js +41 -0
- package/dist/ui/sheet.js.map +1 -0
- package/dist/ui/theme-toggle.d.ts +4 -0
- package/dist/ui/theme-toggle.d.ts.map +1 -0
- package/dist/ui/theme-toggle.js +17 -0
- package/dist/ui/theme-toggle.js.map +1 -0
- package/package.json +52 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlogCTABanner.d.ts","sourceRoot":"","sources":["../../src/blog/BlogCTABanner.tsx"],"names":[],"mappings":"AAIA,UAAU,kBAAkB;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,kBAAkB,2CAa/F"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Button } from '../ui/button';
|
|
3
|
+
import Glow from '../ui/glow';
|
|
4
|
+
export function BlogCTABanner({ title, description, buttonText, buttonLink }) {
|
|
5
|
+
return (_jsxs("div", { className: "my-12 rounded-2xl glass-4 p-10 text-center relative overflow-hidden", children: [_jsx(Glow, { variant: "center" }), _jsxs("div", { className: "relative z-10", children: [_jsx("h3", { className: "text-2xl font-bold text-foreground mb-3", children: title }), _jsx("p", { className: "text-muted-foreground mb-6 max-w-lg mx-auto", children: description }), _jsx(Button, { asChild: true, children: _jsx("a", { href: buttonLink, children: buttonText }) })] })] }));
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=BlogCTABanner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlogCTABanner.js","sourceRoot":"","sources":["../../src/blog/BlogCTABanner.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,IAAI,MAAM,YAAY,CAAC;AAS9B,MAAM,UAAU,aAAa,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAsB;IAC9F,OAAO,CACL,eAAK,SAAS,EAAC,qEAAqE,aAClF,KAAC,IAAI,IAAC,OAAO,EAAC,QAAQ,GAAG,EACzB,eAAK,SAAS,EAAC,eAAe,aAC5B,aAAI,SAAS,EAAC,yCAAyC,YAAE,KAAK,GAAM,EACpE,YAAG,SAAS,EAAC,6CAA6C,YAAE,WAAW,GAAK,EAC5E,KAAC,MAAM,IAAC,OAAO,kBACb,YAAG,IAAI,EAAE,UAAU,YAAG,UAAU,GAAK,GAC9B,IACL,IACF,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
interface BlogFAQProps {
|
|
2
|
+
title: string;
|
|
3
|
+
items: Array<{
|
|
4
|
+
question: string;
|
|
5
|
+
answer: string;
|
|
6
|
+
}>;
|
|
7
|
+
}
|
|
8
|
+
export declare function BlogFAQ({ title, items }: BlogFAQProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export {};
|
|
10
|
+
//# sourceMappingURL=BlogFAQ.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlogFAQ.d.ts","sourceRoot":"","sources":["../../src/blog/BlogFAQ.tsx"],"names":[],"mappings":"AAUA,UAAU,YAAY;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACpD;AAED,wBAAgB,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,YAAY,2CAgBrD"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Accordion, AccordionItem, AccordionTrigger, AccordionContent, } from '../ui/accordion';
|
|
4
|
+
export function BlogFAQ({ title, items }) {
|
|
5
|
+
return (_jsxs("div", { className: "my-12", children: [_jsx("h2", { className: "text-2xl font-bold text-foreground mb-6", children: title }), _jsx(Accordion, { type: "single", collapsible: true, children: items.map((item, i) => (_jsxs(AccordionItem, { value: `faq-${i}`, children: [_jsx(AccordionTrigger, { children: item.question }), _jsx(AccordionContent, { children: _jsx("div", { className: "text-muted-foreground leading-relaxed", children: item.answer }) })] }, i))) })] }));
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=BlogFAQ.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlogFAQ.js","sourceRoot":"","sources":["../../src/blog/BlogFAQ.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EACL,SAAS,EACT,aAAa,EACb,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAOzB,MAAM,UAAU,OAAO,CAAC,EAAE,KAAK,EAAE,KAAK,EAAgB;IACpD,OAAO,CACL,eAAK,SAAS,EAAC,OAAO,aACpB,aAAI,SAAS,EAAC,yCAAyC,YAAE,KAAK,GAAM,EACpE,KAAC,SAAS,IAAC,IAAI,EAAC,QAAQ,EAAC,WAAW,kBACjC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CACtB,MAAC,aAAa,IAAS,KAAK,EAAE,OAAO,CAAC,EAAE,aACtC,KAAC,gBAAgB,cAAE,IAAI,CAAC,QAAQ,GAAoB,EACpD,KAAC,gBAAgB,cACf,cAAK,SAAS,EAAC,uCAAuC,YAAE,IAAI,CAAC,MAAM,GAAO,GACzD,KAJD,CAAC,CAKL,CACjB,CAAC,GACQ,IACR,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface BlogIndexProps {
|
|
3
|
+
title?: string;
|
|
4
|
+
description?: string;
|
|
5
|
+
children?: React.ReactNode;
|
|
6
|
+
}
|
|
7
|
+
export declare function BlogIndex({ title, description, children }: BlogIndexProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=BlogIndex.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlogIndex.d.ts","sourceRoot":"","sources":["../../src/blog/BlogIndex.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,UAAU,cAAc;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,cAAc,2CAczE"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Section } from '../ui/section';
|
|
3
|
+
export function BlogIndex({ title, description, children }) {
|
|
4
|
+
return (_jsx(Section, { children: _jsxs("div", { className: "container-main", children: [(title || description) && (_jsxs("div", { className: "text-center mb-12", children: [title && _jsx("h2", { className: "text-3xl md:text-4xl font-bold text-foreground mb-4", children: title }), description && _jsx("p", { className: "text-lg text-muted-foreground", children: description })] })), children] }) }));
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=BlogIndex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlogIndex.js","sourceRoot":"","sources":["../../src/blog/BlogIndex.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAQxC,MAAM,UAAU,SAAS,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAkB;IACxE,OAAO,CACL,KAAC,OAAO,cACN,eAAK,SAAS,EAAC,gBAAgB,aAC5B,CAAC,KAAK,IAAI,WAAW,CAAC,IAAI,CACzB,eAAK,SAAS,EAAC,mBAAmB,aAC/B,KAAK,IAAI,aAAI,SAAS,EAAC,qDAAqD,YAAE,KAAK,GAAM,EACzF,WAAW,IAAI,YAAG,SAAS,EAAC,+BAA+B,YAAE,WAAW,GAAK,IAC1E,CACP,EACA,QAAQ,IACL,GACE,CACX,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlogIntro.d.ts","sourceRoot":"","sources":["../../src/blog/BlogIntro.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,wBAAgB,SAAS,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,2CAMpE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlogIntro.js","sourceRoot":"","sources":["../../src/blog/BlogIntro.tsx"],"names":[],"mappings":";AAEA,MAAM,UAAU,SAAS,CAAC,EAAE,QAAQ,EAAiC;IACnE,OAAO,CACL,cAAK,SAAS,EAAC,+DAA+D,YAC3E,QAAQ,GACL,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlogTable.d.ts","sourceRoot":"","sources":["../../src/blog/BlogTable.tsx"],"names":[],"mappings":"AAEA,UAAU,cAAc;IACtB,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;CAClB;AAED,wBAAgB,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,cAAc,2CAmB1D"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
export function BlogTable({ headers, rows }) {
|
|
3
|
+
return (_jsx("div", { className: "my-8 overflow-x-auto rounded-lg border border-border", children: _jsxs("table", { className: "w-full text-sm", children: [_jsx("thead", { children: _jsx("tr", { className: "bg-muted", children: headers.map((h, i) => _jsx("th", { className: "text-left py-3 px-4 font-semibold text-foreground", children: h }, i)) }) }), _jsx("tbody", { children: rows.map((row, i) => (_jsx("tr", { className: "border-t border-border", children: row.map((cell, j) => _jsx("td", { className: "py-3 px-4 text-muted-foreground", children: cell }, j)) }, i))) })] }) }));
|
|
4
|
+
}
|
|
5
|
+
//# sourceMappingURL=BlogTable.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlogTable.js","sourceRoot":"","sources":["../../src/blog/BlogTable.tsx"],"names":[],"mappings":";AAOA,MAAM,UAAU,SAAS,CAAC,EAAE,OAAO,EAAE,IAAI,EAAkB;IACzD,OAAO,CACL,cAAK,SAAS,EAAC,sDAAsD,YACnE,iBAAO,SAAS,EAAC,gBAAgB,aAC/B,0BACE,aAAI,SAAS,EAAC,UAAU,YACrB,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,aAAY,SAAS,EAAC,mDAAmD,YAAE,CAAC,IAAnE,CAAC,CAAwE,CAAC,GACvG,GACC,EACR,0BACG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,CACpB,aAAY,SAAS,EAAC,wBAAwB,YAC3C,GAAG,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,aAAY,SAAS,EAAC,iCAAiC,YAAE,IAAI,IAApD,CAAC,CAAyD,CAAC,IADnF,CAAC,CAEL,CACN,CAAC,GACI,IACF,GACJ,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface BlogTipProps {
|
|
3
|
+
title?: string;
|
|
4
|
+
children: React.ReactNode;
|
|
5
|
+
}
|
|
6
|
+
export declare function BlogTip({ title, children }: BlogTipProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export {};
|
|
8
|
+
//# sourceMappingURL=BlogTip.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlogTip.d.ts","sourceRoot":"","sources":["../../src/blog/BlogTip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,UAAU,YAAY;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,wBAAgB,OAAO,CAAC,EAAE,KAAa,EAAE,QAAQ,EAAE,EAAE,YAAY,2CAOhE"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
export function BlogTip({ title = 'Tip', children }) {
|
|
3
|
+
return (_jsxs("div", { className: "my-6 p-5 rounded-lg bg-emerald-50 border border-emerald-200", children: [_jsx("p", { className: "font-semibold text-emerald-700 text-sm mb-1", children: title }), _jsx("div", { className: "text-sm text-muted-foreground", children: children })] }));
|
|
4
|
+
}
|
|
5
|
+
//# sourceMappingURL=BlogTip.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BlogTip.js","sourceRoot":"","sources":["../../src/blog/BlogTip.tsx"],"names":[],"mappings":";AAOA,MAAM,UAAU,OAAO,CAAC,EAAE,KAAK,GAAG,KAAK,EAAE,QAAQ,EAAgB;IAC/D,OAAO,CACL,eAAK,SAAS,EAAC,6DAA6D,aAC1E,YAAG,SAAS,EAAC,6CAA6C,YAAE,KAAK,GAAK,EACtE,cAAK,SAAS,EAAC,+BAA+B,YAAE,QAAQ,GAAO,IAC3D,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
interface StartFreeNowCTAProps {
|
|
2
|
+
title: string;
|
|
3
|
+
bullets: string[];
|
|
4
|
+
buttonText: string;
|
|
5
|
+
buttonHref: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function StartFreeNowCTA({ title, bullets, buttonText, buttonHref }: StartFreeNowCTAProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=StartFreeNowCTA.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StartFreeNowCTA.d.ts","sourceRoot":"","sources":["../../src/blog/StartFreeNowCTA.tsx"],"names":[],"mappings":"AAIA,UAAU,oBAAoB;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,EAAE,oBAAoB,2CAiB/F"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Check } from 'lucide-react';
|
|
3
|
+
import { Button } from '../ui/button';
|
|
4
|
+
export function StartFreeNowCTA({ title, bullets, buttonText, buttonHref }) {
|
|
5
|
+
return (_jsxs("div", { className: "my-12 p-8 rounded-2xl glass-3", children: [_jsx("h3", { className: "text-xl font-bold text-foreground mb-4", children: title }), _jsx("ul", { className: "space-y-2 mb-6", children: bullets.map((bullet, i) => (_jsxs("li", { className: "flex items-center gap-2 text-sm text-muted-foreground", children: [_jsx(Check, { className: "w-4 h-4 text-primary shrink-0" }), bullet] }, i))) }), _jsx(Button, { asChild: true, children: _jsx("a", { href: buttonHref, children: buttonText }) })] }));
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=StartFreeNowCTA.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StartFreeNowCTA.js","sourceRoot":"","sources":["../../src/blog/StartFreeNowCTA.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AACrC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAStC,MAAM,UAAU,eAAe,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAwB;IAC9F,OAAO,CACL,eAAK,SAAS,EAAC,+BAA+B,aAC5C,aAAI,SAAS,EAAC,wCAAwC,YAAE,KAAK,GAAM,EACnE,aAAI,SAAS,EAAC,gBAAgB,YAC3B,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAC1B,cAAY,SAAS,EAAC,uDAAuD,aAC3E,KAAC,KAAK,IAAC,SAAS,EAAC,+BAA+B,GAAG,EAClD,MAAM,KAFA,CAAC,CAGL,CACN,CAAC,GACC,EACL,KAAC,MAAM,IAAC,OAAO,kBACb,YAAG,IAAI,EAAE,UAAU,YAAG,UAAU,GAAK,GAC9B,IACL,CACP,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export interface ShipSiteContextValue {
|
|
3
|
+
siteName: string;
|
|
4
|
+
siteUrl: string;
|
|
5
|
+
logo?: string | {
|
|
6
|
+
light: string;
|
|
7
|
+
dark: string;
|
|
8
|
+
};
|
|
9
|
+
ogImage?: string;
|
|
10
|
+
colors: {
|
|
11
|
+
primary: string;
|
|
12
|
+
accent: string;
|
|
13
|
+
background: string;
|
|
14
|
+
text: string;
|
|
15
|
+
};
|
|
16
|
+
navigation: {
|
|
17
|
+
items: Array<{
|
|
18
|
+
label: string;
|
|
19
|
+
href: string;
|
|
20
|
+
}>;
|
|
21
|
+
cta?: {
|
|
22
|
+
label: string;
|
|
23
|
+
href: string;
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
footer: {
|
|
27
|
+
columns?: Array<{
|
|
28
|
+
title: string;
|
|
29
|
+
links: Array<{
|
|
30
|
+
label: string;
|
|
31
|
+
href: string;
|
|
32
|
+
}>;
|
|
33
|
+
}>;
|
|
34
|
+
social?: Array<{
|
|
35
|
+
platform: string;
|
|
36
|
+
href: string;
|
|
37
|
+
}>;
|
|
38
|
+
copyright?: string;
|
|
39
|
+
};
|
|
40
|
+
navLinks: Record<string, string>;
|
|
41
|
+
alternatePathMap: Record<string, Record<string, string>>;
|
|
42
|
+
locale: string;
|
|
43
|
+
locales: string[];
|
|
44
|
+
defaultLocale: string;
|
|
45
|
+
}
|
|
46
|
+
export declare function ShipSiteProvider({ children, value, }: {
|
|
47
|
+
children: React.ReactNode;
|
|
48
|
+
value: ShipSiteContextValue;
|
|
49
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
50
|
+
export declare function useShipSite(): ShipSiteContextValue;
|
|
51
|
+
export declare function useNavLinks(): Record<string, string>;
|
|
52
|
+
export declare function useResolveHref(): (href: string) => string;
|
|
53
|
+
export declare function useAlternateLinks(): Record<string, Record<string, string>>;
|
|
54
|
+
//# sourceMappingURL=ShipSiteProvider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShipSiteProvider.d.ts","sourceRoot":"","sources":["../../src/context/ShipSiteProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAoC,MAAM,OAAO,CAAC;AAEzD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,GAAG;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IAChD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE;QACN,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,UAAU,EAAE;QACV,KAAK,EAAE,KAAK,CAAC;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC9C,GAAG,CAAC,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;KACvC,CAAC;IACF,MAAM,EAAE;QACN,OAAO,CAAC,EAAE,KAAK,CAAC;YACd,KAAK,EAAE,MAAM,CAAC;YACd,KAAK,EAAE,KAAK,CAAC;gBAAE,KAAK,EAAE,MAAM,CAAC;gBAAC,IAAI,EAAE,MAAM,CAAA;aAAE,CAAC,CAAC;SAC/C,CAAC,CAAC;QACH,MAAM,CAAC,EAAE,KAAK,CAAC;YAAE,QAAQ,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACnD,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;IACzD,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;CACvB;AAID,wBAAgB,gBAAgB,CAAC,EAC/B,QAAQ,EACR,KAAK,GACN,EAAE;IACD,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,KAAK,EAAE,oBAAoB,CAAC;CAC7B,2CAIA;AAED,wBAAgB,WAAW,yBAM1B;AAED,wBAAgB,WAAW,2BAE1B;AAED,wBAAgB,cAAc,KAEpB,MAAM,MAAM,KAAG,MAAM,CAW9B;AAED,wBAAgB,iBAAiB,2CAEhC"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { createContext, useContext } from 'react';
|
|
4
|
+
const ShipSiteContext = createContext(null);
|
|
5
|
+
export function ShipSiteProvider({ children, value, }) {
|
|
6
|
+
return (_jsx(ShipSiteContext.Provider, { value: value, children: children }));
|
|
7
|
+
}
|
|
8
|
+
export function useShipSite() {
|
|
9
|
+
const context = useContext(ShipSiteContext);
|
|
10
|
+
if (!context) {
|
|
11
|
+
throw new Error('useShipSite must be used within a ShipSiteProvider');
|
|
12
|
+
}
|
|
13
|
+
return context;
|
|
14
|
+
}
|
|
15
|
+
export function useNavLinks() {
|
|
16
|
+
return useShipSite().navLinks;
|
|
17
|
+
}
|
|
18
|
+
export function useResolveHref() {
|
|
19
|
+
const { navLinks } = useShipSite();
|
|
20
|
+
return (href) => {
|
|
21
|
+
if (href.startsWith('http') ||
|
|
22
|
+
href.startsWith('#') ||
|
|
23
|
+
href.startsWith('mailto:')) {
|
|
24
|
+
return href;
|
|
25
|
+
}
|
|
26
|
+
const slug = href.startsWith('/') ? href.slice(1) : href;
|
|
27
|
+
return navLinks[slug] ?? href;
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
export function useAlternateLinks() {
|
|
31
|
+
return useShipSite().alternatePathMap;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=ShipSiteProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ShipSiteProvider.js","sourceRoot":"","sources":["../../src/context/ShipSiteProvider.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAc,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAgCzD,MAAM,eAAe,GAAG,aAAa,CAA8B,IAAI,CAAC,CAAC;AAEzE,MAAM,UAAU,gBAAgB,CAAC,EAC/B,QAAQ,EACR,KAAK,GAIN;IACC,OAAO,CACL,KAAC,eAAe,CAAC,QAAQ,IAAC,KAAK,EAAE,KAAK,YAAG,QAAQ,GAA4B,CAC9E,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,MAAM,OAAO,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;IAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,MAAM,UAAU,WAAW;IACzB,OAAO,WAAW,EAAE,CAAC,QAAQ,CAAC;AAChC,CAAC;AAED,MAAM,UAAU,cAAc;IAC5B,MAAM,EAAE,QAAQ,EAAE,GAAG,WAAW,EAAE,CAAC;IACnC,OAAO,CAAC,IAAY,EAAU,EAAE;QAC9B,IACE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;YACvB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YACpB,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAC1B,CAAC;YACD,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACzD,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;IAChC,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB;IAC/B,OAAO,WAAW,EAAE,CAAC,gBAAgB,CAAC;AACxC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ThemeProvider.d.ts","sourceRoot":"","sources":["../../src/context/ThemeProvider.tsx"],"names":[],"mappings":"AAEA,OAAO,KAA8B,MAAM,OAAO,CAAC;AAGnD,wBAAgB,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE;IAAE,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAA;CAAE,2CAoBxE"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { Fragment as _Fragment, jsx as _jsx } from "react/jsx-runtime";
|
|
3
|
+
import { useEffect, useState } from 'react';
|
|
4
|
+
import { ThemeProvider as NextThemeProvider } from 'next-themes';
|
|
5
|
+
export function ThemeProvider({ children }) {
|
|
6
|
+
const [mounted, setMounted] = useState(false);
|
|
7
|
+
useEffect(() => {
|
|
8
|
+
setMounted(true);
|
|
9
|
+
}, []);
|
|
10
|
+
if (!mounted) {
|
|
11
|
+
return _jsx(_Fragment, { children: children });
|
|
12
|
+
}
|
|
13
|
+
return (_jsx(NextThemeProvider, { attribute: "class", defaultTheme: "dark", enableSystem: true, children: children }));
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=ThemeProvider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ThemeProvider.js","sourceRoot":"","sources":["../../src/context/ThemeProvider.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACnD,OAAO,EAAE,aAAa,IAAI,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAEjE,MAAM,UAAU,aAAa,CAAC,EAAE,QAAQ,EAAiC;IACvE,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE9C,SAAS,CAAC,GAAG,EAAE;QACb,UAAU,CAAC,IAAI,CAAC,CAAC;IACnB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,4BAAG,QAAQ,GAAI,CAAC;IACzB,CAAC;IAED,OAAO,CACL,KAAC,iBAAiB,IAChB,SAAS,EAAC,OAAO,EACjB,YAAY,EAAC,MAAM,EACnB,YAAY,kBAEX,QAAQ,GACS,CACrB,CAAC;AACJ,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
export { ShipSiteProvider, useShipSite, useNavLinks, useResolveHref, useAlternateLinks, } from './context/ShipSiteProvider';
|
|
2
|
+
export type { ShipSiteContextValue } from './context/ShipSiteProvider';
|
|
3
|
+
export { ThemeProvider } from './context/ThemeProvider';
|
|
4
|
+
export { ThemeToggle } from './ui/theme-toggle';
|
|
5
|
+
export { Header } from './layout/Header';
|
|
6
|
+
export { Footer } from './layout/Footer';
|
|
7
|
+
export { Hero } from './marketing/Hero';
|
|
8
|
+
export { PageHero } from './marketing/PageHero';
|
|
9
|
+
export { Features, Feature } from './marketing/Features';
|
|
10
|
+
export { AlternatingFeatures, AlternatingFeatureRow, AlternatingFeatureItem, } from './marketing/AlternatingFeatures';
|
|
11
|
+
export { PricingSection, PricingPlan, ComparisonRow, ComparisonCategory, } from './marketing/PricingSection';
|
|
12
|
+
export { Companies } from './marketing/Companies';
|
|
13
|
+
export { Testimonial } from './marketing/Testimonial';
|
|
14
|
+
export { BannerCTA, BannerFeature } from './marketing/BannerCTA';
|
|
15
|
+
export { FAQ, FAQItem } from './marketing/FAQ';
|
|
16
|
+
export { Steps, Step } from './marketing/Steps';
|
|
17
|
+
export { CardGrid, CardGridItem } from './marketing/CardGrid';
|
|
18
|
+
export { CalloutCard } from './marketing/CalloutCard';
|
|
19
|
+
export { Stats, Stat } from './marketing/Stats';
|
|
20
|
+
export { Testimonials, TestimonialCard } from './marketing/Testimonials';
|
|
21
|
+
export { BentoGrid, BentoItem } from './marketing/BentoGrid';
|
|
22
|
+
export { Gallery, GalleryItem } from './marketing/Gallery';
|
|
23
|
+
export { SocialProof } from './marketing/SocialProof';
|
|
24
|
+
export { Carousel, CarouselItem } from './marketing/Carousel';
|
|
25
|
+
export { TabsSection, TabItem } from './marketing/TabsSection';
|
|
26
|
+
export { BlogArticle } from './blog/BlogArticle';
|
|
27
|
+
export { BlogIndex } from './blog/BlogIndex';
|
|
28
|
+
export { BlogCTA } from './blog/BlogCTA';
|
|
29
|
+
export { BlogCTABanner } from './blog/BlogCTABanner';
|
|
30
|
+
export { BlogFAQ } from './blog/BlogFAQ';
|
|
31
|
+
export { BlogIntro } from './blog/BlogIntro';
|
|
32
|
+
export { BlogTable } from './blog/BlogTable';
|
|
33
|
+
export { BlogTip } from './blog/BlogTip';
|
|
34
|
+
export { StartFreeNowCTA } from './blog/StartFreeNowCTA';
|
|
35
|
+
export { LegalPage, LegalSection } from './legal/LegalPage';
|
|
36
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,cAAc,EACd,iBAAiB,GAClB,MAAM,4BAA4B,CAAC;AACpC,YAAY,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAGvE,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAGzC,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,cAAc,EACd,WAAW,EACX,aAAa,EACb,kBAAkB,GACnB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAG/D,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAGzD,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
// @shipsite.dev/components — MDX Component Registry
|
|
2
|
+
// Context
|
|
3
|
+
export { ShipSiteProvider, useShipSite, useNavLinks, useResolveHref, useAlternateLinks, } from './context/ShipSiteProvider';
|
|
4
|
+
// Theme
|
|
5
|
+
export { ThemeProvider } from './context/ThemeProvider';
|
|
6
|
+
export { ThemeToggle } from './ui/theme-toggle';
|
|
7
|
+
// Layout
|
|
8
|
+
export { Header } from './layout/Header';
|
|
9
|
+
export { Footer } from './layout/Footer';
|
|
10
|
+
// Marketing
|
|
11
|
+
export { Hero } from './marketing/Hero';
|
|
12
|
+
export { PageHero } from './marketing/PageHero';
|
|
13
|
+
export { Features, Feature } from './marketing/Features';
|
|
14
|
+
export { AlternatingFeatures, AlternatingFeatureRow, AlternatingFeatureItem, } from './marketing/AlternatingFeatures';
|
|
15
|
+
export { PricingSection, PricingPlan, ComparisonRow, ComparisonCategory, } from './marketing/PricingSection';
|
|
16
|
+
export { Companies } from './marketing/Companies';
|
|
17
|
+
export { Testimonial } from './marketing/Testimonial';
|
|
18
|
+
export { BannerCTA, BannerFeature } from './marketing/BannerCTA';
|
|
19
|
+
export { FAQ, FAQItem } from './marketing/FAQ';
|
|
20
|
+
export { Steps, Step } from './marketing/Steps';
|
|
21
|
+
export { CardGrid, CardGridItem } from './marketing/CardGrid';
|
|
22
|
+
export { CalloutCard } from './marketing/CalloutCard';
|
|
23
|
+
export { Stats, Stat } from './marketing/Stats';
|
|
24
|
+
export { Testimonials, TestimonialCard } from './marketing/Testimonials';
|
|
25
|
+
export { BentoGrid, BentoItem } from './marketing/BentoGrid';
|
|
26
|
+
export { Gallery, GalleryItem } from './marketing/Gallery';
|
|
27
|
+
export { SocialProof } from './marketing/SocialProof';
|
|
28
|
+
export { Carousel, CarouselItem } from './marketing/Carousel';
|
|
29
|
+
export { TabsSection, TabItem } from './marketing/TabsSection';
|
|
30
|
+
// Blog
|
|
31
|
+
export { BlogArticle } from './blog/BlogArticle';
|
|
32
|
+
export { BlogIndex } from './blog/BlogIndex';
|
|
33
|
+
export { BlogCTA } from './blog/BlogCTA';
|
|
34
|
+
export { BlogCTABanner } from './blog/BlogCTABanner';
|
|
35
|
+
export { BlogFAQ } from './blog/BlogFAQ';
|
|
36
|
+
export { BlogIntro } from './blog/BlogIntro';
|
|
37
|
+
export { BlogTable } from './blog/BlogTable';
|
|
38
|
+
export { BlogTip } from './blog/BlogTip';
|
|
39
|
+
export { StartFreeNowCTA } from './blog/StartFreeNowCTA';
|
|
40
|
+
// Legal
|
|
41
|
+
export { LegalPage, LegalSection } from './legal/LegalPage';
|
|
42
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,oDAAoD;AAEpD,UAAU;AACV,OAAO,EACL,gBAAgB,EAChB,WAAW,EACX,WAAW,EACX,cAAc,EACd,iBAAiB,GAClB,MAAM,4BAA4B,CAAC;AAGpC,QAAQ;AACR,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEhD,SAAS;AACT,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAEzC,YAAY;AACZ,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AACzD,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,iCAAiC,CAAC;AACzC,OAAO,EACL,cAAc,EACd,WAAW,EACX,aAAa,EACb,kBAAkB,GACnB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AACtD,OAAO,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAE/D,OAAO;AACP,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,QAAQ;AACR,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Footer.d.ts","sourceRoot":"","sources":["../../src/layout/Footer.tsx"],"names":[],"mappings":"AAWA,wBAAgB,MAAM,4CAwDrB"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { useShipSite, useResolveHref } from '../context/ShipSiteProvider';
|
|
4
|
+
import { FooterRoot, FooterContent, FooterColumn, FooterBottom, } from '../ui/footer';
|
|
5
|
+
export function Footer() {
|
|
6
|
+
const { siteName, footer } = useShipSite();
|
|
7
|
+
const resolveHref = useResolveHref();
|
|
8
|
+
return (_jsx("footer", { className: "border-t border-border", children: _jsx(FooterRoot, { children: _jsxs("div", { className: "container-main", children: [_jsx(FooterContent, { children: footer.columns?.map((column) => (_jsxs(FooterColumn, { children: [_jsx("h3", { className: "text-sm font-semibold text-foreground", children: column.title }), _jsx("ul", { className: "flex flex-col gap-2", children: column.links.map((link) => (_jsx("li", { children: _jsx("a", { href: resolveHref(link.href), className: "text-sm text-muted-foreground hover:text-foreground transition-colors", children: link.label }) }, link.href))) })] }, column.title))) }), _jsxs(FooterBottom, { children: [_jsx("p", { children: footer.copyright ||
|
|
9
|
+
`\u00A9 ${new Date().getFullYear()} ${siteName}` }), footer.social && footer.social.length > 0 && (_jsx("div", { className: "flex items-center gap-4", children: footer.social.map((social) => (_jsx("a", { href: social.href, target: "_blank", rel: "noopener noreferrer", className: "hover:text-foreground transition-colors capitalize", children: social.platform }, social.href))) }))] })] }) }) }));
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=Footer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Footer.js","sourceRoot":"","sources":["../../src/layout/Footer.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC1E,OAAO,EACL,UAAU,EACV,aAAa,EACb,YAAY,EACZ,YAAY,GACb,MAAM,cAAc,CAAC;AAEtB,MAAM,UAAU,MAAM;IACpB,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;IAC3C,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IAErC,OAAO,CACL,iBAAQ,SAAS,EAAC,wBAAwB,YACxC,KAAC,UAAU,cACT,eAAK,SAAS,EAAC,gBAAgB,aAC7B,KAAC,aAAa,cACX,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAC/B,MAAC,YAAY,eACX,aAAI,SAAS,EAAC,uCAAuC,YAClD,MAAM,CAAC,KAAK,GACV,EACL,aAAI,SAAS,EAAC,qBAAqB,YAChC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAC1B,uBACE,YACE,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAC5B,SAAS,EAAC,uEAAuE,YAEhF,IAAI,CAAC,KAAK,GACT,IANG,IAAI,CAAC,IAAI,CAOb,CACN,CAAC,GACC,KAfY,MAAM,CAAC,KAAK,CAgBhB,CAChB,CAAC,GACY,EAEhB,MAAC,YAAY,eACX,sBACG,MAAM,CAAC,SAAS;oCACf,UAAU,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,IAAI,QAAQ,EAAE,GAChD,EAEH,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAC5C,cAAK,SAAS,EAAC,yBAAyB,YACrC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAC7B,YAEE,IAAI,EAAE,MAAM,CAAC,IAAI,EACjB,MAAM,EAAC,QAAQ,EACf,GAAG,EAAC,qBAAqB,EACzB,SAAS,EAAC,oDAAoD,YAE7D,MAAM,CAAC,QAAQ,IANX,MAAM,CAAC,IAAI,CAOd,CACL,CAAC,GACE,CACP,IACY,IACX,GACK,GACN,CACV,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Header.d.ts","sourceRoot":"","sources":["../../src/layout/Header.tsx"],"names":[],"mappings":"AAgBA,wBAAgB,MAAM,4CA8ErB"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
|
+
import { Menu } from 'lucide-react';
|
|
4
|
+
import { useShipSite, useResolveHref } from '../context/ShipSiteProvider';
|
|
5
|
+
import { Button } from '../ui/button';
|
|
6
|
+
import { Navbar, NavbarLeft, NavbarRight } from '../ui/navbar';
|
|
7
|
+
import { Sheet, SheetTrigger, SheetContent, SheetTitle, } from '../ui/sheet';
|
|
8
|
+
import { ThemeToggle } from '../ui/theme-toggle';
|
|
9
|
+
export function Header() {
|
|
10
|
+
const { siteName, logo, navigation, locale, defaultLocale } = useShipSite();
|
|
11
|
+
const resolveHref = useResolveHref();
|
|
12
|
+
const logoSrc = typeof logo === 'string' ? logo : logo?.light;
|
|
13
|
+
return (_jsx("header", { className: "sticky top-0 z-50 bg-background/80 backdrop-blur-lg border-b border-border", children: _jsx("div", { className: "container-main", children: _jsxs(Navbar, { children: [_jsx(NavbarLeft, { children: _jsxs("a", { href: locale === defaultLocale ? '/' : `/${locale}`, className: "flex items-center gap-2", children: [logoSrc && (_jsx("img", { src: logoSrc, alt: siteName, className: "h-8 w-auto" })), _jsx("span", { className: "font-semibold text-lg text-foreground", children: siteName })] }) }), _jsxs(NavbarRight, { className: "hidden md:flex", children: [navigation.items.map((item) => (_jsx("a", { href: resolveHref(item.href), className: "text-sm font-medium text-muted-foreground hover:text-foreground transition-colors", children: item.label }, item.href))), _jsx(ThemeToggle, {}), navigation.cta && (_jsx(Button, { asChild: true, size: "sm", children: _jsx("a", { href: navigation.cta.href, children: navigation.cta.label }) }))] }), _jsx("div", { className: "md:hidden", children: _jsxs(Sheet, { children: [_jsx(SheetTrigger, { asChild: true, children: _jsx(Button, { variant: "ghost", size: "icon", "aria-label": "Toggle menu", children: _jsx(Menu, { className: "size-5" }) }) }), _jsxs(SheetContent, { side: "right", children: [_jsx(SheetTitle, { className: "sr-only", children: "Navigation" }), _jsxs("nav", { className: "flex flex-col gap-4 mt-8", children: [navigation.items.map((item) => (_jsx("a", { href: resolveHref(item.href), className: "text-sm font-medium text-muted-foreground hover:text-foreground transition-colors", children: item.label }, item.href))), navigation.cta && (_jsx(Button, { asChild: true, className: "mt-2", children: _jsx("a", { href: navigation.cta.href, children: navigation.cta.label }) }))] })] })] }) })] }) }) }));
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=Header.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Header.js","sourceRoot":"","sources":["../../src/layout/Header.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAGb,OAAO,EAAE,IAAI,EAAE,MAAM,cAAc,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE1E,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AACtC,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EACL,KAAK,EACL,YAAY,EACZ,YAAY,EACZ,UAAU,GACX,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEjD,MAAM,UAAU,MAAM;IACpB,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,GAAG,WAAW,EAAE,CAAC;IAC5E,MAAM,WAAW,GAAG,cAAc,EAAE,CAAC;IAErC,MAAM,OAAO,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,KAAK,CAAC;IAE9D,OAAO,CACL,iBAAQ,SAAS,EAAC,4EAA4E,YAC5F,cAAK,SAAS,EAAC,gBAAgB,YAC7B,MAAC,MAAM,eACL,KAAC,UAAU,cACT,aACE,IAAI,EAAE,MAAM,KAAK,aAAa,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,MAAM,EAAE,EACnD,SAAS,EAAC,yBAAyB,aAElC,OAAO,IAAI,CACV,cAAK,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE,QAAQ,EAAE,SAAS,EAAC,YAAY,GAAG,CAC5D,EACD,eAAM,SAAS,EAAC,uCAAuC,YACpD,QAAQ,GACJ,IACL,GACO,EAEb,MAAC,WAAW,IAAC,SAAS,EAAC,gBAAgB,aACpC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAC9B,YAEE,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAC5B,SAAS,EAAC,mFAAmF,YAE5F,IAAI,CAAC,KAAK,IAJN,IAAI,CAAC,IAAI,CAKZ,CACL,CAAC,EACF,KAAC,WAAW,KAAG,EACd,UAAU,CAAC,GAAG,IAAI,CACjB,KAAC,MAAM,IAAC,OAAO,QAAC,IAAI,EAAC,IAAI,YACvB,YAAG,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,YACzB,UAAU,CAAC,GAAG,CAAC,KAAK,GACnB,GACG,CACV,IACW,EAEd,cAAK,SAAS,EAAC,WAAW,YACxB,MAAC,KAAK,eACJ,KAAC,YAAY,IAAC,OAAO,kBACnB,KAAC,MAAM,IAAC,OAAO,EAAC,OAAO,EAAC,IAAI,EAAC,MAAM,gBAAY,aAAa,YAC1D,KAAC,IAAI,IAAC,SAAS,EAAC,QAAQ,GAAG,GACpB,GACI,EACf,MAAC,YAAY,IAAC,IAAI,EAAC,OAAO,aACxB,KAAC,UAAU,IAAC,SAAS,EAAC,SAAS,2BAAwB,EACvD,eAAK,SAAS,EAAC,0BAA0B,aACtC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAC9B,YAEE,IAAI,EAAE,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,EAC5B,SAAS,EAAC,mFAAmF,YAE5F,IAAI,CAAC,KAAK,IAJN,IAAI,CAAC,IAAI,CAKZ,CACL,CAAC,EACD,UAAU,CAAC,GAAG,IAAI,CACjB,KAAC,MAAM,IAAC,OAAO,QAAC,SAAS,EAAC,MAAM,YAC9B,YAAG,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,IAAI,YACzB,UAAU,CAAC,GAAG,CAAC,KAAK,GACnB,GACG,CACV,IACG,IACO,IACT,GACJ,IACC,GACL,GACC,CACV,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface LegalSectionProps {
|
|
3
|
+
title: string;
|
|
4
|
+
children: React.ReactNode;
|
|
5
|
+
}
|
|
6
|
+
export declare function LegalSection({ title, children }: LegalSectionProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
interface LegalPageProps {
|
|
8
|
+
title: string;
|
|
9
|
+
lastUpdated?: string;
|
|
10
|
+
children: React.ReactNode;
|
|
11
|
+
}
|
|
12
|
+
export declare function LegalPage({ title, lastUpdated, children }: LegalPageProps): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
export {};
|
|
14
|
+
//# sourceMappingURL=LegalPage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LegalPage.d.ts","sourceRoot":"","sources":["../../src/legal/LegalPage.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,UAAU,iBAAiB;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,wBAAgB,YAAY,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,iBAAiB,2CASlE;AAED,UAAU,cAAc;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,cAAc,2CAUzE"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
export function LegalSection({ title, children }) {
|
|
3
|
+
return (_jsxs("div", { className: "mb-8", children: [_jsx("h2", { className: "text-xl font-bold text-foreground mb-4", children: title }), _jsx("div", { className: "text-muted-foreground text-sm leading-relaxed [&>p]:mb-3 [&>ul]:list-disc [&>ul]:pl-5 [&>ul]:mb-3", children: children })] }));
|
|
4
|
+
}
|
|
5
|
+
export function LegalPage({ title, lastUpdated, children }) {
|
|
6
|
+
return (_jsx("section", { className: "py-12 md:py-20", children: _jsxs("div", { className: "container-main max-w-3xl", children: [_jsx("h1", { className: "text-3xl md:text-4xl font-bold text-foreground mb-2", children: title }), lastUpdated && _jsxs("p", { className: "text-sm text-muted-foreground mb-8", children: ["Last updated: ", lastUpdated] }), children] }) }));
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=LegalPage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LegalPage.js","sourceRoot":"","sources":["../../src/legal/LegalPage.tsx"],"names":[],"mappings":";AAOA,MAAM,UAAU,YAAY,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAqB;IACjE,OAAO,CACL,eAAK,SAAS,EAAC,MAAM,aACnB,aAAI,SAAS,EAAC,wCAAwC,YAAE,KAAK,GAAM,EACnE,cAAK,SAAS,EAAC,mGAAmG,YAC/G,QAAQ,GACL,IACF,CACP,CAAC;AACJ,CAAC;AAQD,MAAM,UAAU,SAAS,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAkB;IACxE,OAAO,CACL,kBAAS,SAAS,EAAC,gBAAgB,YACjC,eAAK,SAAS,EAAC,0BAA0B,aACvC,aAAI,SAAS,EAAC,qDAAqD,YAAE,KAAK,GAAM,EAC/E,WAAW,IAAI,aAAG,SAAS,EAAC,oCAAoC,+BAAgB,WAAW,IAAK,EAChG,QAAQ,IACL,GACE,CACX,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAQ,MAAM,MAAM,CAAC;AAG7C,wBAAgB,EAAE,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,UAEzC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,IAAI,EAAE,MAAM,MAAM,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAEzC,MAAM,UAAU,EAAE,CAAC,GAAG,MAAoB;IACxC,OAAO,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;AAC/B,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface AlternatingFeatureItemProps {
|
|
3
|
+
icon?: string;
|
|
4
|
+
title: string;
|
|
5
|
+
description: string;
|
|
6
|
+
}
|
|
7
|
+
export declare function AlternatingFeatureItem({ icon, title, description }: AlternatingFeatureItemProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
interface AlternatingFeatureRowProps {
|
|
9
|
+
title: string;
|
|
10
|
+
description?: string;
|
|
11
|
+
image: string;
|
|
12
|
+
imageDark?: string;
|
|
13
|
+
imageAlt?: string;
|
|
14
|
+
children?: React.ReactNode;
|
|
15
|
+
}
|
|
16
|
+
export declare function AlternatingFeatureRow({ title, description, image, imageDark, imageAlt, children }: AlternatingFeatureRowProps): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
interface AlternatingFeaturesProps {
|
|
18
|
+
title?: string;
|
|
19
|
+
description?: string;
|
|
20
|
+
children: React.ReactNode;
|
|
21
|
+
}
|
|
22
|
+
export declare function AlternatingFeatures({ title, description, children }: AlternatingFeaturesProps): import("react/jsx-runtime").JSX.Element;
|
|
23
|
+
export {};
|
|
24
|
+
//# sourceMappingURL=AlternatingFeatures.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AlternatingFeatures.d.ts","sourceRoot":"","sources":["../../src/marketing/AlternatingFeatures.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B,UAAU,2BAA2B;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,wBAAgB,sBAAsB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAAE,EAAE,2BAA2B,2CAU/F;AAED,UAAU,0BAA0B;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,wBAAgB,qBAAqB,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,0BAA0B,2CAoB7H;AAED,UAAU,wBAAwB;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B;AAED,wBAAgB,mBAAmB,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,wBAAwB,2CAc7F"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
import { Section } from '../ui/section';
|
|
3
|
+
import { Mockup } from '../ui/mockup';
|
|
4
|
+
export function AlternatingFeatureItem({ icon, title, description }) {
|
|
5
|
+
return (_jsxs("div", { className: "flex gap-3 items-start", children: [icon && _jsx("span", { className: "text-primary text-xl mt-0.5", children: icon }), _jsxs("div", { children: [_jsx("h4", { className: "font-semibold text-foreground mb-1", children: title }), _jsx("p", { className: "text-sm text-muted-foreground", children: description })] })] }));
|
|
6
|
+
}
|
|
7
|
+
export function AlternatingFeatureRow({ title, description, image, imageDark, imageAlt, children }) {
|
|
8
|
+
return (_jsxs("div", { className: "grid grid-cols-1 md:grid-cols-2 gap-12 items-center py-12 [&:nth-child(even)>div:first-child]:md:order-2", children: [_jsxs("div", { children: [_jsx("h3", { className: "text-2xl md:text-3xl font-bold text-foreground mb-4", children: title }), description && _jsx("p", { className: "text-muted-foreground mb-6", children: description }), children && _jsx("div", { className: "space-y-4", children: children })] }), _jsx(Mockup, { type: "responsive", children: imageDark ? (_jsxs(_Fragment, { children: [_jsx("img", { src: image, alt: imageAlt || title, className: "w-full dark:hidden" }), _jsx("img", { src: imageDark, alt: imageAlt || title, className: "w-full hidden dark:block" })] })) : (_jsx("img", { src: image, alt: imageAlt || title, className: "w-full" })) })] }));
|
|
9
|
+
}
|
|
10
|
+
export function AlternatingFeatures({ title, description, children }) {
|
|
11
|
+
return (_jsx(Section, { children: _jsxs("div", { className: "container-main", children: [(title || description) && (_jsxs("div", { className: "text-center mb-16", children: [title && _jsx("h2", { className: "text-3xl md:text-4xl font-bold text-foreground mb-4", children: title }), description && _jsx("p", { className: "text-lg text-muted-foreground max-w-2xl mx-auto", children: description })] })), _jsx("div", { className: "divide-y divide-border", children: children })] }) }));
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=AlternatingFeatures.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AlternatingFeatures.js","sourceRoot":"","sources":["../../src/marketing/AlternatingFeatures.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAQtC,MAAM,UAAU,sBAAsB,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,WAAW,EAA+B;IAC9F,OAAO,CACL,eAAK,SAAS,EAAC,wBAAwB,aACpC,IAAI,IAAI,eAAM,SAAS,EAAC,6BAA6B,YAAE,IAAI,GAAQ,EACpE,0BACE,aAAI,SAAS,EAAC,oCAAoC,YAAE,KAAK,GAAM,EAC/D,YAAG,SAAS,EAAC,+BAA+B,YAAE,WAAW,GAAK,IAC1D,IACF,CACP,CAAC;AACJ,CAAC;AAWD,MAAM,UAAU,qBAAqB,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAA8B;IAC5H,OAAO,CACL,eAAK,SAAS,EAAC,0GAA0G,aACvH,0BACE,aAAI,SAAS,EAAC,qDAAqD,YAAE,KAAK,GAAM,EAC/E,WAAW,IAAI,YAAG,SAAS,EAAC,4BAA4B,YAAE,WAAW,GAAK,EAC1E,QAAQ,IAAI,cAAK,SAAS,EAAC,WAAW,YAAE,QAAQ,GAAO,IACpD,EACN,KAAC,MAAM,IAAC,IAAI,EAAC,YAAY,YACtB,SAAS,CAAC,CAAC,CAAC,CACX,8BACE,cAAK,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,IAAI,KAAK,EAAE,SAAS,EAAC,oBAAoB,GAAG,EAC1E,cAAK,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,QAAQ,IAAI,KAAK,EAAE,SAAS,EAAC,0BAA0B,GAAG,IACnF,CACJ,CAAC,CAAC,CAAC,CACF,cAAK,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,QAAQ,IAAI,KAAK,EAAE,SAAS,EAAC,QAAQ,GAAG,CAC/D,GACM,IACL,CACP,CAAC;AACJ,CAAC;AAQD,MAAM,UAAU,mBAAmB,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,QAAQ,EAA4B;IAC5F,OAAO,CACL,KAAC,OAAO,cACN,eAAK,SAAS,EAAC,gBAAgB,aAC5B,CAAC,KAAK,IAAI,WAAW,CAAC,IAAI,CACzB,eAAK,SAAS,EAAC,mBAAmB,aAC/B,KAAK,IAAI,aAAI,SAAS,EAAC,qDAAqD,YAAE,KAAK,GAAM,EACzF,WAAW,IAAI,YAAG,SAAS,EAAC,iDAAiD,YAAE,WAAW,GAAK,IAC5F,CACP,EACD,cAAK,SAAS,EAAC,wBAAwB,YAAE,QAAQ,GAAO,IACpD,GACE,CACX,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
interface BannerCTAProps {
|
|
3
|
+
title: string;
|
|
4
|
+
buttonText: string;
|
|
5
|
+
buttonHref?: string;
|
|
6
|
+
subtext?: string;
|
|
7
|
+
children?: React.ReactNode;
|
|
8
|
+
}
|
|
9
|
+
export declare function BannerCTA({ title, buttonText, buttonHref, subtext, children }: BannerCTAProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export declare function BannerFeature({ title, icon }: {
|
|
11
|
+
title: string;
|
|
12
|
+
icon?: string;
|
|
13
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export {};
|
|
15
|
+
//# sourceMappingURL=BannerCTA.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BannerCTA.d.ts","sourceRoot":"","sources":["../../src/marketing/BannerCTA.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,UAAU,cAAc;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC5B;AAED,wBAAgB,SAAS,CAAC,EAAE,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,cAAc,2CAoB7F;AAED,wBAAgB,aAAa,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,2CAO9E"}
|