@mdxui/named 8.0.0 → 8.2.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/dist/components/index.js +28 -19
- package/dist/components/index.js.map +1 -1
- package/dist/index.js +28 -19
- package/dist/index.js.map +1 -1
- package/dist/styles.css +410 -222
- package/dist/view/index.d.ts +1 -1
- package/dist/view/index.js +631 -22
- package/dist/view/index.js.map +1 -1
- package/package.json +1 -1
package/dist/view/index.js
CHANGED
|
@@ -196,7 +196,7 @@ function Hero({
|
|
|
196
196
|
const hasHeroImage = !!rightImageSrc && isRenderableSrc(rightImageSrc);
|
|
197
197
|
return /* @__PURE__ */ jsx4("section", { className: cn("relative py-12 md:py-16 px-6 lg:px-12 bg-background", className), children: /* @__PURE__ */ jsxs("div", { className: "max-w-7xl mx-auto p-0 sm:p-16 rounded-none sm:rounded-3xl md:[background:linear-gradient(180deg,var(--card)_0%,transparent_83.55%)]", children: [
|
|
198
198
|
/* @__PURE__ */ jsxs("div", { className: cn("grid gap-8 lg:gap-16 items-start mb-16 lg:mb-20", hasHeroImage && "lg:grid-cols-2"), children: [
|
|
199
|
-
/* @__PURE__ */ jsxs("div", { className: "space-y-6 lg:pt-8", children: [
|
|
199
|
+
/* @__PURE__ */ jsxs("div", { className: cn("space-y-6 lg:pt-8", !hasHeroImage && "mx-auto max-w-3xl text-center"), children: [
|
|
200
200
|
/* @__PURE__ */ jsx4(ScrollReveal, { direction: "down", delay: 0.1, children: /* @__PURE__ */ jsx4("div", { className: "inline-block", children: /* @__PURE__ */ jsxs(
|
|
201
201
|
"a",
|
|
202
202
|
{
|
|
@@ -211,8 +211,8 @@ function Hero({
|
|
|
211
211
|
}
|
|
212
212
|
) }) }),
|
|
213
213
|
/* @__PURE__ */ jsx4(ScrollReveal, { direction: "up", delay: 0.2, children: /* @__PURE__ */ jsx4("h1", { className: "font-halant font-normal text-[clamp(56px,6vw,72px)] leading-tight tracking-tight text-foreground", children: heading }) }),
|
|
214
|
-
/* @__PURE__ */ jsx4(ScrollReveal, { direction: "up", delay: 0.3, children: /* @__PURE__ */ jsx4("p", { className: "text-lg leading-relaxed max-w-lg", children: description }) }),
|
|
215
|
-
/* @__PURE__ */ jsx4(ScrollReveal, { direction: "up", delay: 0.4, trigger: "mount", children: /* @__PURE__ */ jsx4("div", { className: "flex flex-col sm:flex-row gap-3 pt-4", children: /* @__PURE__ */ jsx4(Button, { asChild: true, variant: ctaVariant, children: /* @__PURE__ */ jsxs("a", { href: ctaHref, children: [
|
|
214
|
+
/* @__PURE__ */ jsx4(ScrollReveal, { direction: "up", delay: 0.3, children: /* @__PURE__ */ jsx4("p", { className: cn("text-lg leading-relaxed max-w-lg", !hasHeroImage && "mx-auto"), children: description }) }),
|
|
215
|
+
/* @__PURE__ */ jsx4(ScrollReveal, { direction: "up", delay: 0.4, trigger: "mount", children: /* @__PURE__ */ jsx4("div", { className: cn("flex flex-col sm:flex-row gap-3 pt-4", !hasHeroImage && "sm:justify-center"), children: /* @__PURE__ */ jsx4(Button, { asChild: true, variant: ctaVariant, children: /* @__PURE__ */ jsxs("a", { href: ctaHref, children: [
|
|
216
216
|
ctaText,
|
|
217
217
|
/* @__PURE__ */ jsx4(HiChevronRight, { className: "w-4 h-4" })
|
|
218
218
|
] }) }) }) })
|
|
@@ -400,7 +400,7 @@ function Features({ heading = "How It Works", description = "Priya handles the r
|
|
|
400
400
|
code: feature.code,
|
|
401
401
|
language: feature.language,
|
|
402
402
|
themes: "github-dark-default",
|
|
403
|
-
className: "bg-
|
|
403
|
+
className: "bg-(--color-code) rounded-lg p-6 lg:p-8 text-sm leading-relaxed text-(--color-code-fg)"
|
|
404
404
|
}
|
|
405
405
|
) })
|
|
406
406
|
] }) }, index)) })
|
|
@@ -469,6 +469,7 @@ function Pricing({
|
|
|
469
469
|
import { Check as Check2 } from "lucide-react";
|
|
470
470
|
import Image2 from "next/image";
|
|
471
471
|
import { Fragment, jsx as jsx8, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
472
|
+
var hasTierImage = (tier) => !!tier.image && isRenderableSrc(tier.image);
|
|
472
473
|
var defaultTiers = [
|
|
473
474
|
{
|
|
474
475
|
title: "Business",
|
|
@@ -486,8 +487,6 @@ var defaultTiers = [
|
|
|
486
487
|
{ text: "Custom workflows" },
|
|
487
488
|
{ text: "Advanced analytics" }
|
|
488
489
|
],
|
|
489
|
-
image: "/images/hero/hero-main.png",
|
|
490
|
-
imageAlt: "Business Plan",
|
|
491
490
|
featured: true
|
|
492
491
|
},
|
|
493
492
|
{
|
|
@@ -510,18 +509,28 @@ function PricingTiers({
|
|
|
510
509
|
securityNote = "Priya only accesses GitHub Issues and Projects\u2014she cannot read your code or secrets.",
|
|
511
510
|
className
|
|
512
511
|
}) {
|
|
512
|
+
const columnCount = tiers.reduce((count, tier) => count + (tier.featured && hasTierImage(tier) ? 2 : 1), 0);
|
|
513
|
+
const gridColumns = {
|
|
514
|
+
1: "lg:grid-cols-1",
|
|
515
|
+
2: "lg:grid-cols-2",
|
|
516
|
+
3: "lg:grid-cols-3",
|
|
517
|
+
4: "lg:grid-cols-4",
|
|
518
|
+
5: "lg:grid-cols-5",
|
|
519
|
+
6: "lg:grid-cols-6"
|
|
520
|
+
}[columnCount] ?? "lg:grid-cols-3";
|
|
521
|
+
const gridMaxWidth = !tiers.some(hasTierImage) && tiers.length <= 2 ? "max-w-4xl mx-auto" : void 0;
|
|
513
522
|
return /* @__PURE__ */ jsx8("section", { id: "pricing", className: cn(`pt-12 md:pt-16 pb-10 sm:pb-20 ${backgroundColor}`, className), children: /* @__PURE__ */ jsxs4("div", { className: "max-w-7xl mx-auto p-6 sm:p-16 rounded-none sm:rounded-3xl pricing-gradient", children: [
|
|
514
523
|
/* @__PURE__ */ jsx8(ScrollReveal, { direction: "up", delay: 0.1, children: /* @__PURE__ */ jsxs4("div", { className: "text-center my-16 sm:my-12", children: [
|
|
515
524
|
/* @__PURE__ */ jsx8("h2", { className: "font-halant font-normal text-[clamp(32px,4vw,52px)] leading-tight text-foreground mb-4", children: heading }),
|
|
516
525
|
/* @__PURE__ */ jsx8("p", { className: "text-base text-muted-foreground max-w-2xl mx-auto", children: subheading })
|
|
517
526
|
] }) }),
|
|
518
|
-
/* @__PURE__ */ jsx8("ul", { className: "grid gap-6 lg:
|
|
527
|
+
/* @__PURE__ */ jsx8("ul", { className: cn("grid gap-6 lg:items-stretch", gridColumns, gridMaxWidth), children: tiers.map((tier, index) => /* @__PURE__ */ jsx8("li", { className: tier.featured && hasTierImage(tier) ? "lg:col-span-2 flex" : "lg:col-span-1 flex", children: /* @__PURE__ */ jsx8(ScrollReveal, { direction: "up", delay: 0.2 + index * 0.1, className: "w-full", children: /* @__PURE__ */ jsx8(
|
|
519
528
|
"div",
|
|
520
529
|
{
|
|
521
530
|
className: tier.featured ? "bg-card flex w-full h-full flex-col-reverse rounded-3xl border border-border feature-card-shadow md:flex-row" : "bg-card w-full h-full rounded-3xl border border-border feature-card-shadow p-6 md:p-8",
|
|
522
531
|
children: tier.featured ? /* @__PURE__ */ jsxs4(Fragment, { children: [
|
|
523
|
-
|
|
524
|
-
/* @__PURE__ */ jsxs4("div", { className: cn("flex flex-col p-6 md:p-8",
|
|
532
|
+
hasTierImage(tier) && /* @__PURE__ */ jsx8("div", { className: "hidden xl:block xl:w-1/2 pl-6 md:pl-8 py-6 md:py-8", children: /* @__PURE__ */ jsx8("div", { className: "h-full rounded-lg overflow-hidden relative min-h-96", children: /* @__PURE__ */ jsx8(Image2, { src: tier.image, alt: tier.imageAlt || tier.title, fill: true, className: "object-cover", sizes: "(max-width: 1280px) 0vw, 50vw" }) }) }),
|
|
533
|
+
/* @__PURE__ */ jsxs4("div", { className: cn("flex flex-col p-6 md:p-8", hasTierImage(tier) && "xl:w-1/2"), children: [
|
|
525
534
|
/* @__PURE__ */ jsxs4("div", { className: "flex-1", children: [
|
|
526
535
|
/* @__PURE__ */ jsx8("p", { className: "text-lg font-semibold text-foreground", children: tier.title }),
|
|
527
536
|
/* @__PURE__ */ jsx8("p", { className: "text-muted-foreground mt-3", children: tier.description }),
|
|
@@ -761,11 +770,11 @@ function Footer({
|
|
|
761
770
|
}
|
|
762
771
|
form.reset();
|
|
763
772
|
};
|
|
764
|
-
return /* @__PURE__ */ jsx13("footer", { className: cn("py-16 px-6 lg:px-12 bg-
|
|
773
|
+
return /* @__PURE__ */ jsx13("footer", { className: cn("py-16 px-6 lg:px-12 bg-(--color-footer) text-(--color-footer-fg)", className), children: /* @__PURE__ */ jsxs8("div", { className: "max-w-7xl mx-auto", children: [
|
|
765
774
|
/* @__PURE__ */ jsxs8("div", { className: "grid md:grid-cols-5 gap-12 mb-12", children: [
|
|
766
775
|
/* @__PURE__ */ jsxs8("div", { className: "md:col-span-2", children: [
|
|
767
|
-
/* @__PURE__ */ jsx13(Link2, { href: "/", className: "inline-block mb-4", children: /* @__PURE__ */ jsx13("div", { className: "text-3xl font-base text-
|
|
768
|
-
/* @__PURE__ */ jsx13("p", { className: "max-w-md text-sm leading-relaxed text-
|
|
776
|
+
/* @__PURE__ */ jsx13(Link2, { href: "/", className: "inline-block mb-4", children: /* @__PURE__ */ jsx13("div", { className: "text-3xl font-base text-(--color-footer-fg) font-halant", children: logo }) }),
|
|
777
|
+
/* @__PURE__ */ jsx13("p", { className: "max-w-md text-sm leading-relaxed text-(--color-footer-fg)/70 mb-6", children: description }),
|
|
769
778
|
/* @__PURE__ */ jsx13("div", { className: "flex items-center gap-4", children: socialLinks.map((link) => {
|
|
770
779
|
const Icon = link.icon;
|
|
771
780
|
return /* @__PURE__ */ jsx13(
|
|
@@ -774,7 +783,7 @@ function Footer({
|
|
|
774
783
|
href: link.href,
|
|
775
784
|
target: "_blank",
|
|
776
785
|
rel: "noopener noreferrer",
|
|
777
|
-
className: "text-
|
|
786
|
+
className: "text-(--color-footer-fg)/70 transition-colors hover:text-(--color-footer-fg)",
|
|
778
787
|
"aria-label": link.label,
|
|
779
788
|
children: /* @__PURE__ */ jsx13(Icon, { className: "w-5 h-5" })
|
|
780
789
|
},
|
|
@@ -783,11 +792,11 @@ function Footer({
|
|
|
783
792
|
}) })
|
|
784
793
|
] }),
|
|
785
794
|
/* @__PURE__ */ jsxs8("div", { children: [
|
|
786
|
-
/* @__PURE__ */ jsx13("h3", { className: "font-semibold text-base mb-4 text-
|
|
787
|
-
/* @__PURE__ */ jsx13("ul", { className: "space-y-2", children: quickLinks.map((link) => /* @__PURE__ */ jsx13("li", { children: /* @__PURE__ */ jsx13(Link2, { href: link.href, className: "text-sm text-
|
|
795
|
+
/* @__PURE__ */ jsx13("h3", { className: "font-semibold text-base mb-4 text-(--color-footer-fg)", children: "Quick Links" }),
|
|
796
|
+
/* @__PURE__ */ jsx13("ul", { className: "space-y-2", children: quickLinks.map((link) => /* @__PURE__ */ jsx13("li", { children: /* @__PURE__ */ jsx13(Link2, { href: link.href, className: "text-sm text-(--color-footer-fg)/70 transition-colors hover:text-(--color-footer-fg)", children: link.label }) }, link.label)) })
|
|
788
797
|
] }),
|
|
789
798
|
/* @__PURE__ */ jsx13("div", { className: "w-full md:col-span-2 md:flex md:flex-col md:items-end", children: /* @__PURE__ */ jsxs8("div", { className: "w-full md:max-w-sm", children: [
|
|
790
|
-
/* @__PURE__ */ jsx13("h3", { className: "font-semibold text-base mb-4 text-
|
|
799
|
+
/* @__PURE__ */ jsx13("h3", { className: "font-semibold text-base mb-4 text-(--color-footer-fg)", children: contactTitle }),
|
|
791
800
|
/* @__PURE__ */ jsxs8("form", { onSubmit: handleEmailSubmit, className: "relative", children: [
|
|
792
801
|
/* @__PURE__ */ jsx13(
|
|
793
802
|
Input,
|
|
@@ -796,14 +805,14 @@ function Footer({
|
|
|
796
805
|
name: "email",
|
|
797
806
|
placeholder: emailPlaceholder,
|
|
798
807
|
required: true,
|
|
799
|
-
className: "w-full bg-
|
|
808
|
+
className: "w-full bg-(--color-footer-fg)/10 border-(--color-footer-fg)/20 text-(--color-footer-fg) placeholder:text-(--color-footer-fg)/50 pr-12"
|
|
800
809
|
}
|
|
801
810
|
),
|
|
802
811
|
/* @__PURE__ */ jsx13(
|
|
803
812
|
"button",
|
|
804
813
|
{
|
|
805
814
|
type: "submit",
|
|
806
|
-
className: "absolute right-1 top-1/2 -translate-y-1/2 bg-
|
|
815
|
+
className: "absolute right-1 top-1/2 -translate-y-1/2 bg-(--color-footer-fg) text-(--color-footer) hover:bg-(--color-footer-fg)/90 active:bg-(--color-footer) active:text-(--color-footer-fg) px-3 py-3 rounded-md transition-colors",
|
|
807
816
|
"aria-label": "Submit email",
|
|
808
817
|
children: /* @__PURE__ */ jsx13(FaArrowRight, { className: "w-3 h-3" })
|
|
809
818
|
}
|
|
@@ -811,7 +820,7 @@ function Footer({
|
|
|
811
820
|
] })
|
|
812
821
|
] }) })
|
|
813
822
|
] }),
|
|
814
|
-
/* @__PURE__ */ jsx13("div", { className: "border-t border-
|
|
823
|
+
/* @__PURE__ */ jsx13("div", { className: "border-t border-(--color-footer-fg)/10 pt-8", children: /* @__PURE__ */ jsx13("div", { className: "flex flex-col md:flex-row justify-between items-center gap-4", children: /* @__PURE__ */ jsx13("p", { className: "text-sm text-(--color-footer-fg)/60", children: copyrightText }) }) })
|
|
815
824
|
] }) });
|
|
816
825
|
}
|
|
817
826
|
|
|
@@ -1059,7 +1068,7 @@ function ExecFeatures({
|
|
|
1059
1068
|
{
|
|
1060
1069
|
code: feature.code,
|
|
1061
1070
|
language: feature.language,
|
|
1062
|
-
className: "rounded-[2px] border border-(--color-border) bg-
|
|
1071
|
+
className: "rounded-[2px] border border-(--color-border) bg-(--color-code) p-5 text-left text-xs leading-relaxed text-(--color-code-fg)"
|
|
1063
1072
|
}
|
|
1064
1073
|
) })
|
|
1065
1074
|
] }) }) }, index)) })
|
|
@@ -1373,15 +1382,615 @@ function ExecutiveView({ content, brandName, hostname }) {
|
|
|
1373
1382
|
] });
|
|
1374
1383
|
}
|
|
1375
1384
|
|
|
1376
|
-
// src/
|
|
1385
|
+
// src/templates/gallery/components/navigation.tsx
|
|
1386
|
+
import { useState as useState4, useEffect as useEffect4 } from "react";
|
|
1387
|
+
import Link5 from "next/link";
|
|
1388
|
+
import { Menu as Menu3, X as X3 } from "lucide-react";
|
|
1389
|
+
|
|
1390
|
+
// src/templates/gallery/ui/button.tsx
|
|
1391
|
+
import * as React4 from "react";
|
|
1377
1392
|
import { jsx as jsx25 } from "react/jsx-runtime";
|
|
1393
|
+
var baseClasses3 = "inline-flex items-center justify-center gap-2 whitespace-nowrap uppercase tracking-[0.14em] font-medium transition-colors duration-150 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-(--color-ring) disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-3.5 [&_svg]:shrink-0 cursor-pointer rounded-[4px]";
|
|
1394
|
+
var variantClasses3 = {
|
|
1395
|
+
default: "bg-(--color-btn-primary-to) text-(--color-btn-primary-fg) hover:bg-(--color-accent)",
|
|
1396
|
+
/* `bone` lives ON the painted accent fields (closing room, featured
|
|
1397
|
+
edition) — it paints in the field's own type color (--color-accent-fg,
|
|
1398
|
+
light over the clamped-deep fields in BOTH modes), never the placard:
|
|
1399
|
+
placards follow the theme's card and go dark after hours, which sank
|
|
1400
|
+
this button dark-on-dark. */
|
|
1401
|
+
bone: "bg-(--color-accent-fg) text-(--color-accent-field) hover:bg-(--color-accent-fg)/90",
|
|
1402
|
+
secondary: "bg-transparent text-(--color-fg) border border-(--color-border-strong) hover:bg-(--color-hover)"
|
|
1403
|
+
};
|
|
1404
|
+
var sizeClasses3 = {
|
|
1405
|
+
default: "h-11 px-6 text-xs",
|
|
1406
|
+
sm: "h-9 px-4 text-[11px]"
|
|
1407
|
+
};
|
|
1408
|
+
var GalButton = React4.forwardRef(
|
|
1409
|
+
({ className, variant = "default", size = "default", asChild = false, children, ...props }, ref) => {
|
|
1410
|
+
const classes = cn(baseClasses3, variantClasses3[variant], sizeClasses3[size], className);
|
|
1411
|
+
if (asChild && React4.isValidElement(children)) {
|
|
1412
|
+
const child = children;
|
|
1413
|
+
return React4.cloneElement(child, {
|
|
1414
|
+
...props,
|
|
1415
|
+
className: cn(classes, child.props.className)
|
|
1416
|
+
});
|
|
1417
|
+
}
|
|
1418
|
+
return /* @__PURE__ */ jsx25("button", { ref, className: classes, ...props, children });
|
|
1419
|
+
}
|
|
1420
|
+
);
|
|
1421
|
+
GalButton.displayName = "GalButton";
|
|
1422
|
+
|
|
1423
|
+
// src/templates/gallery/ui/placard.tsx
|
|
1424
|
+
import { jsx as jsx26, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
1425
|
+
function GalLabel({ children, className }) {
|
|
1426
|
+
return /* @__PURE__ */ jsx26("span", { className: cn("gal-label block text-(--color-fg-muted)", className), children });
|
|
1427
|
+
}
|
|
1428
|
+
function GalDiamond({ className }) {
|
|
1429
|
+
return /* @__PURE__ */ jsx26(
|
|
1430
|
+
"span",
|
|
1431
|
+
{
|
|
1432
|
+
className: cn("inline-block size-[5px] rotate-45 bg-(--color-accent-strong)", className),
|
|
1433
|
+
"aria-hidden": "true"
|
|
1434
|
+
}
|
|
1435
|
+
);
|
|
1436
|
+
}
|
|
1437
|
+
function GalSectionHead({ heading, statement, className }) {
|
|
1438
|
+
return /* @__PURE__ */ jsxs19("div", { className: cn("grid gap-y-8 md:grid-cols-12 md:gap-x-6", className), children: [
|
|
1439
|
+
/* @__PURE__ */ jsx26("div", { className: "md:col-span-7", children: /* @__PURE__ */ jsx26("h2", { className: "text-[clamp(40px,5.5vw,76px)] text-(--color-fg)", children: heading }) }),
|
|
1440
|
+
statement && /* @__PURE__ */ jsx26("div", { className: "md:col-span-4 md:col-start-9 md:self-end", children: /* @__PURE__ */ jsx26("p", { className: "max-w-[40ch] text-base leading-relaxed text-(--color-fg-soft)", children: statement }) })
|
|
1441
|
+
] });
|
|
1442
|
+
}
|
|
1443
|
+
|
|
1444
|
+
// src/templates/gallery/components/navigation.tsx
|
|
1445
|
+
import { jsx as jsx27, jsxs as jsxs20 } from "react/jsx-runtime";
|
|
1446
|
+
function GalNavigation({
|
|
1447
|
+
logo = "Priya",
|
|
1448
|
+
logoHref = "/",
|
|
1449
|
+
links = [
|
|
1450
|
+
{ label: "Features", href: "#features" },
|
|
1451
|
+
{ label: "Pricing", href: "#pricing" },
|
|
1452
|
+
{ label: "FAQ", href: "#faq" }
|
|
1453
|
+
],
|
|
1454
|
+
ctaText = "Hire me",
|
|
1455
|
+
ctaHref = "#pricing",
|
|
1456
|
+
className
|
|
1457
|
+
}) {
|
|
1458
|
+
const [mobileMenuOpen, setMobileMenuOpen] = useState4(false);
|
|
1459
|
+
const [isScrolled, setIsScrolled] = useState4(false);
|
|
1460
|
+
useEffect4(() => {
|
|
1461
|
+
const handleScroll = () => setIsScrolled(window.scrollY > 10);
|
|
1462
|
+
window.addEventListener("scroll", handleScroll);
|
|
1463
|
+
return () => window.removeEventListener("scroll", handleScroll);
|
|
1464
|
+
}, []);
|
|
1465
|
+
return /* @__PURE__ */ jsx27(
|
|
1466
|
+
"nav",
|
|
1467
|
+
{
|
|
1468
|
+
className: cn(
|
|
1469
|
+
"sticky top-0 z-50 w-full border-b bg-(--color-surface) transition-[border-color] duration-200",
|
|
1470
|
+
isScrolled ? "border-(--color-border-strong)" : "border-(--color-border)",
|
|
1471
|
+
className
|
|
1472
|
+
),
|
|
1473
|
+
children: /* @__PURE__ */ jsxs20("div", { className: "mx-auto max-w-6xl px-6 py-5 lg:px-10", children: [
|
|
1474
|
+
/* @__PURE__ */ jsxs20("div", { className: "flex items-center justify-between", children: [
|
|
1475
|
+
/* @__PURE__ */ jsxs20(Link5, { href: logoHref, className: "flex items-center gap-2.5", children: [
|
|
1476
|
+
/* @__PURE__ */ jsx27("span", { className: "gal-display text-xl font-[560] tracking-[-0.01em] text-(--color-fg)", children: logo }),
|
|
1477
|
+
/* @__PURE__ */ jsx27(GalDiamond, {})
|
|
1478
|
+
] }),
|
|
1479
|
+
/* @__PURE__ */ jsx27("div", { className: "hidden items-center gap-10 lg:flex", children: links.map((link) => /* @__PURE__ */ jsx27(
|
|
1480
|
+
"a",
|
|
1481
|
+
{
|
|
1482
|
+
href: link.href,
|
|
1483
|
+
className: "gal-label text-(--color-fg-muted) transition-colors hover:text-(--color-fg)",
|
|
1484
|
+
children: link.label
|
|
1485
|
+
},
|
|
1486
|
+
link.href
|
|
1487
|
+
)) }),
|
|
1488
|
+
ctaText && ctaHref && /* @__PURE__ */ jsx27("div", { className: "hidden items-center lg:flex", children: /* @__PURE__ */ jsx27(GalButton, { asChild: true, variant: "secondary", size: "sm", children: /* @__PURE__ */ jsx27("a", { href: ctaHref, children: ctaText }) }) }),
|
|
1489
|
+
/* @__PURE__ */ jsx27(
|
|
1490
|
+
"button",
|
|
1491
|
+
{
|
|
1492
|
+
className: "p-2 text-(--color-fg) lg:hidden",
|
|
1493
|
+
onClick: () => setMobileMenuOpen(!mobileMenuOpen),
|
|
1494
|
+
"aria-label": "Toggle menu",
|
|
1495
|
+
children: mobileMenuOpen ? /* @__PURE__ */ jsx27(X3, { className: "h-5 w-5" }) : /* @__PURE__ */ jsx27(Menu3, { className: "h-5 w-5" })
|
|
1496
|
+
}
|
|
1497
|
+
)
|
|
1498
|
+
] }),
|
|
1499
|
+
mobileMenuOpen && /* @__PURE__ */ jsx27("div", { className: "mt-5 border-t border-(--color-border) lg:hidden", children: /* @__PURE__ */ jsxs20("div", { className: "flex flex-col py-2", children: [
|
|
1500
|
+
links.map((link) => /* @__PURE__ */ jsx27(
|
|
1501
|
+
"a",
|
|
1502
|
+
{
|
|
1503
|
+
href: link.href,
|
|
1504
|
+
className: "gal-label border-b border-(--color-border) py-4 text-(--color-fg) last:border-b-0",
|
|
1505
|
+
onClick: () => setMobileMenuOpen(false),
|
|
1506
|
+
children: link.label
|
|
1507
|
+
},
|
|
1508
|
+
link.href
|
|
1509
|
+
)),
|
|
1510
|
+
ctaText && ctaHref && /* @__PURE__ */ jsx27(
|
|
1511
|
+
GalButton,
|
|
1512
|
+
{
|
|
1513
|
+
asChild: true,
|
|
1514
|
+
variant: "secondary",
|
|
1515
|
+
size: "sm",
|
|
1516
|
+
className: "mt-4 self-start",
|
|
1517
|
+
onClick: () => setMobileMenuOpen(false),
|
|
1518
|
+
children: /* @__PURE__ */ jsx27("a", { href: ctaHref, children: ctaText })
|
|
1519
|
+
}
|
|
1520
|
+
)
|
|
1521
|
+
] }) })
|
|
1522
|
+
] })
|
|
1523
|
+
}
|
|
1524
|
+
);
|
|
1525
|
+
}
|
|
1526
|
+
|
|
1527
|
+
// src/templates/gallery/components/hero.tsx
|
|
1528
|
+
import { HiArrowRight as HiArrowRight4 } from "react-icons/hi";
|
|
1529
|
+
import { jsx as jsx28, jsxs as jsxs21 } from "react/jsx-runtime";
|
|
1530
|
+
function GalHero({
|
|
1531
|
+
presenter = "Priya",
|
|
1532
|
+
badgeText,
|
|
1533
|
+
heading = "Your AI Product Manager for GitHub",
|
|
1534
|
+
description = "Priya triages issues, plans sprints, and grooms your backlog automatically. You focus on building.",
|
|
1535
|
+
ctaText = "Get Started",
|
|
1536
|
+
ctaHref = "#pricing",
|
|
1537
|
+
secondaryCtaText,
|
|
1538
|
+
secondaryCtaHref,
|
|
1539
|
+
marqueeTitle = "Tools I work with",
|
|
1540
|
+
marqueeImages = [],
|
|
1541
|
+
className
|
|
1542
|
+
}) {
|
|
1543
|
+
const tools = marqueeImages.filter(
|
|
1544
|
+
(s) => !/^(https?:)?\/\//i.test(s.trim()) && !s.trim().startsWith("data:")
|
|
1545
|
+
);
|
|
1546
|
+
return /* @__PURE__ */ jsxs21("section", { className: cn("gal-wash bg-(--color-surface)", className), children: [
|
|
1547
|
+
/* @__PURE__ */ jsxs21("div", { className: "mx-auto max-w-6xl px-6 lg:px-10", children: [
|
|
1548
|
+
/* @__PURE__ */ jsx28(ScrollReveal, { direction: "none", trigger: "mount", children: /* @__PURE__ */ jsx28("div", { className: "pt-8 md:pt-16 md:text-center", children: /* @__PURE__ */ jsx28(GalLabel, { className: "text-(--color-fg)", children: badgeText ?? presenter }) }) }),
|
|
1549
|
+
/* @__PURE__ */ jsx28(ScrollReveal, { direction: "up", trigger: "mount", children: /* @__PURE__ */ jsx28("h1", { className: "max-w-[16ch] pt-8 text-[clamp(46px,6.5vw,96px)] text-(--color-fg) md:mx-auto md:pt-14 md:text-center", children: heading }) }),
|
|
1550
|
+
/* @__PURE__ */ jsx28("div", { className: "pt-7 pb-16 md:pt-12 md:pb-32", children: /* @__PURE__ */ jsxs21(ScrollReveal, { direction: "up", delay: 0.12, trigger: "mount", children: [
|
|
1551
|
+
/* @__PURE__ */ jsx28("p", { className: "max-w-[52ch] text-lg leading-relaxed text-(--color-fg-soft) md:mx-auto md:text-center md:text-xl", children: description }),
|
|
1552
|
+
/* @__PURE__ */ jsxs21("div", { className: "mt-9 flex flex-col gap-3 sm:flex-row md:justify-center", children: [
|
|
1553
|
+
/* @__PURE__ */ jsx28(GalButton, { asChild: true, children: /* @__PURE__ */ jsxs21("a", { href: ctaHref, children: [
|
|
1554
|
+
ctaText,
|
|
1555
|
+
/* @__PURE__ */ jsx28(HiArrowRight4, { className: "h-3.5 w-3.5" })
|
|
1556
|
+
] }) }),
|
|
1557
|
+
secondaryCtaText && secondaryCtaHref && /* @__PURE__ */ jsx28(GalButton, { asChild: true, variant: "secondary", children: /* @__PURE__ */ jsx28("a", { href: secondaryCtaHref, children: secondaryCtaText }) })
|
|
1558
|
+
] })
|
|
1559
|
+
] }) })
|
|
1560
|
+
] }),
|
|
1561
|
+
tools.length > 0 && /* @__PURE__ */ jsx28("div", { className: "border-t border-b border-(--color-border)", "aria-label": marqueeTitle, children: /* @__PURE__ */ jsx28(Marquee, { className: "py-3.5 [--duration:48s] [--gap:3rem]", children: tools.map((tool, i) => /* @__PURE__ */ jsxs21(
|
|
1562
|
+
"span",
|
|
1563
|
+
{
|
|
1564
|
+
className: "gal-label flex items-center gap-x-12 whitespace-nowrap text-(--color-fg-muted)",
|
|
1565
|
+
children: [
|
|
1566
|
+
brandLabel(tool),
|
|
1567
|
+
/* @__PURE__ */ jsx28(GalDiamond, { className: "size-1" })
|
|
1568
|
+
]
|
|
1569
|
+
},
|
|
1570
|
+
`${tool}-${i}`
|
|
1571
|
+
)) }) })
|
|
1572
|
+
] });
|
|
1573
|
+
}
|
|
1574
|
+
|
|
1575
|
+
// src/templates/gallery/components/features.tsx
|
|
1576
|
+
import { jsx as jsx29, jsxs as jsxs22 } from "react/jsx-runtime";
|
|
1577
|
+
var catalogueNo = (badge) => {
|
|
1578
|
+
const n = parseInt(badge, 10);
|
|
1579
|
+
return Number.isNaN(n) ? badge : String(n);
|
|
1580
|
+
};
|
|
1581
|
+
function GalFeatures({
|
|
1582
|
+
heading = "How It Works",
|
|
1583
|
+
description,
|
|
1584
|
+
features = [],
|
|
1585
|
+
className
|
|
1586
|
+
}) {
|
|
1587
|
+
return /* @__PURE__ */ jsx29("section", { id: "features", className: cn("bg-(--color-surface)", className), children: /* @__PURE__ */ jsxs22("div", { className: "mx-auto max-w-6xl px-6 py-28 md:py-40 lg:px-10", children: [
|
|
1588
|
+
/* @__PURE__ */ jsx29(ScrollReveal, { direction: "up", children: /* @__PURE__ */ jsx29(
|
|
1589
|
+
GalSectionHead,
|
|
1590
|
+
{
|
|
1591
|
+
heading,
|
|
1592
|
+
statement: description
|
|
1593
|
+
}
|
|
1594
|
+
) }),
|
|
1595
|
+
/* @__PURE__ */ jsx29("div", { className: "mt-24 space-y-28 md:mt-36 md:space-y-44", children: features.map((feature, index) => {
|
|
1596
|
+
const reversed = index % 2 === 1;
|
|
1597
|
+
const language = feature.language ?? "typescript";
|
|
1598
|
+
return /* @__PURE__ */ jsx29(ScrollReveal, { direction: "up", children: /* @__PURE__ */ jsxs22("article", { className: "grid items-center gap-y-10 md:grid-cols-12 md:gap-x-10", children: [
|
|
1599
|
+
feature.code && /* @__PURE__ */ jsx29("div", { className: cn("md:col-span-7", reversed && "md:order-2"), children: /* @__PURE__ */ jsx29("div", { className: "rounded-[2px] md:border md:border-(--color-vitrine-border) md:bg-(--color-placard) md:p-1.5 md:shadow-(--shadow-lg)", children: /* @__PURE__ */ jsx29(
|
|
1600
|
+
CodeWindow,
|
|
1601
|
+
{
|
|
1602
|
+
code: feature.code,
|
|
1603
|
+
language,
|
|
1604
|
+
className: "rounded-[2px] bg-(--color-vitrine) p-6 text-left text-xs leading-relaxed text-(--color-vitrine-fg) md:p-8"
|
|
1605
|
+
}
|
|
1606
|
+
) }) }),
|
|
1607
|
+
/* @__PURE__ */ jsx29(
|
|
1608
|
+
"div",
|
|
1609
|
+
{
|
|
1610
|
+
className: cn(
|
|
1611
|
+
feature.code ? "md:col-span-5" : "md:col-span-7",
|
|
1612
|
+
reversed && "md:order-1"
|
|
1613
|
+
),
|
|
1614
|
+
children: /* @__PURE__ */ jsxs22("div", { className: "rounded-[4px] border border-(--color-placard-border) bg-(--color-placard) p-7 text-(--color-placard-fg) shadow-(--shadow-md) md:p-9", children: [
|
|
1615
|
+
/* @__PURE__ */ jsx29("div", { className: "border-b border-(--color-placard-border) pb-4", children: /* @__PURE__ */ jsxs22("span", { className: "gal-no text-2xl text-(--color-accent-strong)", children: [
|
|
1616
|
+
"No. ",
|
|
1617
|
+
catalogueNo(feature.badge)
|
|
1618
|
+
] }) }),
|
|
1619
|
+
/* @__PURE__ */ jsx29("h3", { className: "mt-6 text-2xl font-semibold tracking-[-0.01em] text-(--color-placard-fg)", children: feature.title }),
|
|
1620
|
+
/* @__PURE__ */ jsx29("p", { className: "mt-5 text-sm leading-relaxed text-(--color-placard-soft)", children: feature.description }),
|
|
1621
|
+
feature.items.length > 0 && /* @__PURE__ */ jsx29("ul", { className: "mt-7 space-y-3 border-t border-(--color-placard-border) pt-5", children: feature.items.map((item, itemIndex) => /* @__PURE__ */ jsxs22(
|
|
1622
|
+
"li",
|
|
1623
|
+
{
|
|
1624
|
+
className: "flex items-baseline gap-3 text-sm text-(--color-placard-fg)",
|
|
1625
|
+
children: [
|
|
1626
|
+
/* @__PURE__ */ jsx29(GalDiamond, { className: "shrink-0 -translate-y-px" }),
|
|
1627
|
+
item.text
|
|
1628
|
+
]
|
|
1629
|
+
},
|
|
1630
|
+
itemIndex
|
|
1631
|
+
)) })
|
|
1632
|
+
] })
|
|
1633
|
+
}
|
|
1634
|
+
)
|
|
1635
|
+
] }) }, index);
|
|
1636
|
+
}) })
|
|
1637
|
+
] }) });
|
|
1638
|
+
}
|
|
1639
|
+
|
|
1640
|
+
// src/templates/gallery/components/pricing.tsx
|
|
1641
|
+
import { jsx as jsx30, jsxs as jsxs23 } from "react/jsx-runtime";
|
|
1642
|
+
function GalPricing({
|
|
1643
|
+
heading = "Simple, transparent pricing",
|
|
1644
|
+
subheading,
|
|
1645
|
+
price = "$16",
|
|
1646
|
+
priceUnit = "/ month",
|
|
1647
|
+
trialText,
|
|
1648
|
+
ctaText = "Get Started",
|
|
1649
|
+
ctaHref = "#contact",
|
|
1650
|
+
featuresHeading = "What's included",
|
|
1651
|
+
features = [],
|
|
1652
|
+
securityNote,
|
|
1653
|
+
className
|
|
1654
|
+
}) {
|
|
1655
|
+
return /* @__PURE__ */ jsx30("section", { id: "pricing", className: cn("bg-(--color-surface)", className), children: /* @__PURE__ */ jsxs23("div", { className: "mx-auto max-w-6xl px-6 py-28 md:py-40 lg:px-10", children: [
|
|
1656
|
+
/* @__PURE__ */ jsx30(ScrollReveal, { direction: "up", children: /* @__PURE__ */ jsx30(GalSectionHead, { heading, statement: subheading }) }),
|
|
1657
|
+
/* @__PURE__ */ jsx30(ScrollReveal, { direction: "up", children: /* @__PURE__ */ jsx30("div", { className: "mt-20 rounded-[4px] border border-(--color-placard-border) bg-(--color-placard) p-8 text-(--color-placard-fg) shadow-(--shadow-md) md:mt-28 md:p-12", children: /* @__PURE__ */ jsxs23("div", { className: "grid gap-y-10 md:grid-cols-12 md:gap-x-10", children: [
|
|
1658
|
+
/* @__PURE__ */ jsxs23("div", { className: "md:col-span-5", children: [
|
|
1659
|
+
/* @__PURE__ */ jsxs23("div", { className: "flex items-baseline gap-2.5", children: [
|
|
1660
|
+
/* @__PURE__ */ jsx30("span", { className: "gal-display text-7xl font-[560] tracking-[-0.02em] text-(--color-placard-fg) md:text-8xl", children: price }),
|
|
1661
|
+
/* @__PURE__ */ jsx30("span", { className: "text-sm text-(--color-placard-muted)", children: priceUnit })
|
|
1662
|
+
] }),
|
|
1663
|
+
trialText && /* @__PURE__ */ jsx30("p", { className: "mt-4 text-sm text-(--color-placard-soft)", children: trialText }),
|
|
1664
|
+
/* @__PURE__ */ jsx30("div", { className: "mt-9", children: /* @__PURE__ */ jsx30(GalButton, { asChild: true, children: /* @__PURE__ */ jsx30("a", { href: ctaHref, children: ctaText }) }) })
|
|
1665
|
+
] }),
|
|
1666
|
+
/* @__PURE__ */ jsxs23("div", { className: "md:col-span-6 md:col-start-7", children: [
|
|
1667
|
+
/* @__PURE__ */ jsx30(GalLabel, { className: "text-(--color-placard-muted)", children: featuresHeading }),
|
|
1668
|
+
/* @__PURE__ */ jsx30("ul", { className: "mt-5 columns-1 gap-x-10 sm:columns-2", children: features.map((feature, index) => /* @__PURE__ */ jsx30(
|
|
1669
|
+
"li",
|
|
1670
|
+
{
|
|
1671
|
+
className: "break-inside-avoid border-t border-(--color-placard-border) py-3 text-sm text-(--color-placard-fg)",
|
|
1672
|
+
children: feature.text
|
|
1673
|
+
},
|
|
1674
|
+
index
|
|
1675
|
+
)) })
|
|
1676
|
+
] })
|
|
1677
|
+
] }) }) }),
|
|
1678
|
+
securityNote && /* @__PURE__ */ jsx30("div", { className: "mt-14 border-t border-(--color-border) pt-6", children: /* @__PURE__ */ jsx30("p", { className: "max-w-[70ch] text-xs leading-relaxed text-(--color-fg-muted)", children: securityNote }) })
|
|
1679
|
+
] }) });
|
|
1680
|
+
}
|
|
1681
|
+
|
|
1682
|
+
// src/templates/gallery/components/pricing-tiers.tsx
|
|
1683
|
+
import { jsx as jsx31, jsxs as jsxs24 } from "react/jsx-runtime";
|
|
1684
|
+
function GalPricingTiers({
|
|
1685
|
+
heading = "Simple, transparent pricing",
|
|
1686
|
+
subheading,
|
|
1687
|
+
tiers = [],
|
|
1688
|
+
securityNote,
|
|
1689
|
+
className
|
|
1690
|
+
}) {
|
|
1691
|
+
return /* @__PURE__ */ jsx31("section", { id: "pricing", className: cn("bg-(--color-surface)", className), children: /* @__PURE__ */ jsxs24("div", { className: "mx-auto max-w-6xl px-6 py-28 md:py-40 lg:px-10", children: [
|
|
1692
|
+
/* @__PURE__ */ jsx31(ScrollReveal, { direction: "up", children: /* @__PURE__ */ jsx31(
|
|
1693
|
+
GalSectionHead,
|
|
1694
|
+
{
|
|
1695
|
+
heading,
|
|
1696
|
+
statement: subheading
|
|
1697
|
+
}
|
|
1698
|
+
) }),
|
|
1699
|
+
/* @__PURE__ */ jsx31("div", { className: "mt-20 grid gap-8 md:mt-28 md:grid-cols-2", children: tiers.map((tier, index) => {
|
|
1700
|
+
const featured = !!tier.featured;
|
|
1701
|
+
return /* @__PURE__ */ jsx31(ScrollReveal, { direction: "up", delay: index * 0.06, children: /* @__PURE__ */ jsxs24(
|
|
1702
|
+
"div",
|
|
1703
|
+
{
|
|
1704
|
+
className: cn(
|
|
1705
|
+
"flex h-full flex-col rounded-[4px] p-8 md:p-10",
|
|
1706
|
+
featured ? "bg-(--color-accent-field) text-(--color-accent-fg) shadow-(--shadow-xl)" : "border border-(--color-placard-border) bg-(--color-placard) text-(--color-placard-fg) shadow-(--shadow-md)"
|
|
1707
|
+
),
|
|
1708
|
+
children: [
|
|
1709
|
+
/* @__PURE__ */ jsx31(
|
|
1710
|
+
"h3",
|
|
1711
|
+
{
|
|
1712
|
+
className: cn(
|
|
1713
|
+
"text-2xl font-semibold tracking-[-0.01em]",
|
|
1714
|
+
featured ? "text-(--color-accent-fg)" : "text-(--color-placard-fg)"
|
|
1715
|
+
),
|
|
1716
|
+
children: tier.title
|
|
1717
|
+
}
|
|
1718
|
+
),
|
|
1719
|
+
/* @__PURE__ */ jsx31(
|
|
1720
|
+
"p",
|
|
1721
|
+
{
|
|
1722
|
+
className: cn(
|
|
1723
|
+
"mt-3 max-w-[44ch] text-sm leading-relaxed",
|
|
1724
|
+
featured ? "text-(--color-accent-fg)/80" : "text-(--color-placard-soft)"
|
|
1725
|
+
),
|
|
1726
|
+
children: tier.description
|
|
1727
|
+
}
|
|
1728
|
+
),
|
|
1729
|
+
/* @__PURE__ */ jsxs24("div", { className: "mt-10 flex items-baseline gap-2.5", children: [
|
|
1730
|
+
/* @__PURE__ */ jsx31(
|
|
1731
|
+
"span",
|
|
1732
|
+
{
|
|
1733
|
+
className: cn(
|
|
1734
|
+
"gal-display text-7xl font-[560] tracking-[-0.02em] md:text-8xl",
|
|
1735
|
+
featured ? "text-(--color-accent-fg)" : "text-(--color-placard-fg)"
|
|
1736
|
+
),
|
|
1737
|
+
children: tier.price
|
|
1738
|
+
}
|
|
1739
|
+
),
|
|
1740
|
+
/* @__PURE__ */ jsx31(
|
|
1741
|
+
"span",
|
|
1742
|
+
{
|
|
1743
|
+
className: cn(
|
|
1744
|
+
"text-sm",
|
|
1745
|
+
featured ? "text-(--color-accent-fg)/70" : "text-(--color-placard-muted)"
|
|
1746
|
+
),
|
|
1747
|
+
children: tier.priceUnit
|
|
1748
|
+
}
|
|
1749
|
+
)
|
|
1750
|
+
] }),
|
|
1751
|
+
/* @__PURE__ */ jsx31("div", { className: "mt-9", children: tier.ctaVariant === "secondary" ? /* @__PURE__ */ jsx31(
|
|
1752
|
+
GalButton,
|
|
1753
|
+
{
|
|
1754
|
+
asChild: true,
|
|
1755
|
+
variant: "secondary",
|
|
1756
|
+
className: cn(
|
|
1757
|
+
"w-full sm:w-auto",
|
|
1758
|
+
featured ? "border-(--color-accent-fg)/40 text-(--color-accent-fg) hover:bg-(--color-accent-fg)/10" : "border-(--color-placard-fg)/35 text-(--color-placard-fg) hover:bg-(--color-placard-fg)/5"
|
|
1759
|
+
),
|
|
1760
|
+
children: /* @__PURE__ */ jsx31("a", { href: tier.ctaHref || "#", children: tier.ctaText })
|
|
1761
|
+
}
|
|
1762
|
+
) : featured ? /* @__PURE__ */ jsx31(GalButton, { asChild: true, variant: "bone", className: "w-full sm:w-auto", children: /* @__PURE__ */ jsx31("a", { href: tier.ctaHref || "#", children: tier.ctaText }) }) : /* @__PURE__ */ jsx31(GalButton, { asChild: true, className: "w-full sm:w-auto", children: /* @__PURE__ */ jsx31("a", { href: tier.ctaHref || "#", children: tier.ctaText }) }) }),
|
|
1763
|
+
/* @__PURE__ */ jsx31("ul", { className: "mt-10 flex-1", children: tier.features.map((feature, featureIndex) => /* @__PURE__ */ jsx31(
|
|
1764
|
+
"li",
|
|
1765
|
+
{
|
|
1766
|
+
className: cn(
|
|
1767
|
+
"border-t py-3 text-sm first:border-t-0",
|
|
1768
|
+
featured ? "border-(--color-accent-fg)/20 text-(--color-accent-fg)/90" : "border-(--color-placard-border) text-(--color-placard-fg)"
|
|
1769
|
+
),
|
|
1770
|
+
children: feature.text
|
|
1771
|
+
},
|
|
1772
|
+
featureIndex
|
|
1773
|
+
)) })
|
|
1774
|
+
]
|
|
1775
|
+
}
|
|
1776
|
+
) }, index);
|
|
1777
|
+
}) }),
|
|
1778
|
+
securityNote && /* @__PURE__ */ jsx31("div", { className: "mt-14 border-t border-(--color-border) pt-6", children: /* @__PURE__ */ jsx31("p", { className: "max-w-[70ch] text-xs leading-relaxed text-(--color-fg-muted)", children: securityNote }) })
|
|
1779
|
+
] }) });
|
|
1780
|
+
}
|
|
1781
|
+
|
|
1782
|
+
// src/templates/gallery/components/faq.tsx
|
|
1783
|
+
import {
|
|
1784
|
+
Accordion as Accordion3,
|
|
1785
|
+
AccordionContent as AccordionContent3,
|
|
1786
|
+
AccordionItem as AccordionItem3,
|
|
1787
|
+
AccordionTrigger as AccordionTrigger3
|
|
1788
|
+
} from "@mdxui/primitives";
|
|
1789
|
+
import { jsx as jsx32, jsxs as jsxs25 } from "react/jsx-runtime";
|
|
1790
|
+
function GalFAQ({ heading = "FAQs", faqs = [], className }) {
|
|
1791
|
+
return /* @__PURE__ */ jsx32("section", { id: "faq", className: cn("bg-(--color-surface)", className), children: /* @__PURE__ */ jsxs25("div", { className: "mx-auto max-w-6xl px-6 py-28 md:py-40 lg:px-10", children: [
|
|
1792
|
+
/* @__PURE__ */ jsx32(ScrollReveal, { direction: "up", children: /* @__PURE__ */ jsx32(
|
|
1793
|
+
GalSectionHead,
|
|
1794
|
+
{
|
|
1795
|
+
heading
|
|
1796
|
+
}
|
|
1797
|
+
) }),
|
|
1798
|
+
/* @__PURE__ */ jsx32(Accordion3, { type: "single", collapsible: true, className: "mt-16 border-t border-(--color-border) md:mt-24", children: faqs.map((faq, index) => /* @__PURE__ */ jsxs25(
|
|
1799
|
+
AccordionItem3,
|
|
1800
|
+
{
|
|
1801
|
+
value: `item-${index}`,
|
|
1802
|
+
className: "rounded-none border-b border-(--color-border)",
|
|
1803
|
+
children: [
|
|
1804
|
+
/* @__PURE__ */ jsx32(AccordionTrigger3, { className: "gap-6 py-7 text-base font-medium text-(--color-fg) hover:no-underline", children: /* @__PURE__ */ jsxs25("span", { className: "flex items-baseline gap-6 text-left", children: [
|
|
1805
|
+
/* @__PURE__ */ jsxs25("span", { className: "gal-no shrink-0 text-sm text-(--color-accent-strong)", "aria-hidden": "true", children: [
|
|
1806
|
+
"No. ",
|
|
1807
|
+
index + 1
|
|
1808
|
+
] }),
|
|
1809
|
+
faq.question
|
|
1810
|
+
] }) }),
|
|
1811
|
+
/* @__PURE__ */ jsx32(AccordionContent3, { className: "max-w-[62ch] pb-8 pl-18 text-sm leading-relaxed text-(--color-fg-soft)", children: faq.answer })
|
|
1812
|
+
]
|
|
1813
|
+
},
|
|
1814
|
+
index
|
|
1815
|
+
)) })
|
|
1816
|
+
] }) });
|
|
1817
|
+
}
|
|
1818
|
+
|
|
1819
|
+
// src/templates/gallery/components/cta.tsx
|
|
1820
|
+
import { HiArrowRight as HiArrowRight5 } from "react-icons/hi";
|
|
1821
|
+
import { jsx as jsx33, jsxs as jsxs26 } from "react/jsx-runtime";
|
|
1822
|
+
function GalCTA({
|
|
1823
|
+
heading = "Ready to Save 15 Hours Per Week?",
|
|
1824
|
+
subheading,
|
|
1825
|
+
buttons = [{ text: "Get Started", href: "#pricing", variant: "primary", showArrow: true }],
|
|
1826
|
+
hostname,
|
|
1827
|
+
className
|
|
1828
|
+
}) {
|
|
1829
|
+
return /* @__PURE__ */ jsx33("section", { className: cn("bg-(--color-accent-field) text-(--color-accent-fg)", className), children: /* @__PURE__ */ jsx33("div", { className: "mx-auto max-w-6xl px-6 py-24 md:py-36 lg:px-10", children: /* @__PURE__ */ jsxs26(ScrollReveal, { direction: "up", children: [
|
|
1830
|
+
hostname && /* @__PURE__ */ jsxs26("div", { className: "flex items-center gap-3", children: [
|
|
1831
|
+
/* @__PURE__ */ jsx33(GalDiamond, { className: "bg-(--color-accent-fg)" }),
|
|
1832
|
+
/* @__PURE__ */ jsx33("span", { className: "gal-label text-(--color-accent-fg)/70", children: hostname })
|
|
1833
|
+
] }),
|
|
1834
|
+
/* @__PURE__ */ jsxs26("div", { className: "grid items-end gap-y-12 pt-10 md:grid-cols-12 md:gap-x-6 md:pt-14", children: [
|
|
1835
|
+
/* @__PURE__ */ jsxs26("div", { className: "md:col-span-8", children: [
|
|
1836
|
+
/* @__PURE__ */ jsx33("h2", { className: "max-w-[15ch] text-[clamp(44px,6.5vw,96px)] text-(--color-accent-fg)", children: heading }),
|
|
1837
|
+
subheading && /* @__PURE__ */ jsx33("p", { className: "mt-6 max-w-[44ch] text-lg leading-relaxed text-(--color-accent-fg)/80 md:text-xl", children: subheading })
|
|
1838
|
+
] }),
|
|
1839
|
+
/* @__PURE__ */ jsx33("div", { className: "md:col-span-4 md:flex md:justify-end", children: /* @__PURE__ */ jsx33("div", { className: "flex flex-col gap-3 sm:flex-row", children: buttons.map(
|
|
1840
|
+
(button, index) => button.variant === "primary" || !button.variant ? /* @__PURE__ */ jsx33(GalButton, { asChild: true, variant: "bone", children: /* @__PURE__ */ jsxs26("a", { href: button.href, children: [
|
|
1841
|
+
button.text,
|
|
1842
|
+
button.showArrow && /* @__PURE__ */ jsx33(HiArrowRight5, { className: "h-3.5 w-3.5" })
|
|
1843
|
+
] }) }, index) : /* @__PURE__ */ jsx33(
|
|
1844
|
+
GalButton,
|
|
1845
|
+
{
|
|
1846
|
+
asChild: true,
|
|
1847
|
+
variant: "secondary",
|
|
1848
|
+
className: "border-(--color-accent-fg)/40 text-(--color-accent-fg) hover:bg-(--color-accent-fg)/10",
|
|
1849
|
+
children: /* @__PURE__ */ jsxs26("a", { href: button.href, children: [
|
|
1850
|
+
button.text,
|
|
1851
|
+
button.showArrow && /* @__PURE__ */ jsx33(HiArrowRight5, { className: "h-3.5 w-3.5" })
|
|
1852
|
+
] })
|
|
1853
|
+
},
|
|
1854
|
+
index
|
|
1855
|
+
)
|
|
1856
|
+
) }) })
|
|
1857
|
+
] })
|
|
1858
|
+
] }) }) });
|
|
1859
|
+
}
|
|
1860
|
+
|
|
1861
|
+
// src/templates/gallery/components/footer.tsx
|
|
1862
|
+
import Link6 from "next/link";
|
|
1863
|
+
import { jsx as jsx34, jsxs as jsxs27 } from "react/jsx-runtime";
|
|
1864
|
+
function GalFooter({
|
|
1865
|
+
logo = "Priya",
|
|
1866
|
+
description = "Your AI Product Manager for GitHub. Automate issue triage, sprint planning, and backlog grooming.",
|
|
1867
|
+
quickLinks = [
|
|
1868
|
+
{ label: "Features", href: "/#features" },
|
|
1869
|
+
{ label: "Pricing", href: "/#pricing" },
|
|
1870
|
+
{ label: "FAQ", href: "/#faq" }
|
|
1871
|
+
],
|
|
1872
|
+
socialLinks = [
|
|
1873
|
+
{ label: "GitHub", href: "https://github.com" },
|
|
1874
|
+
{ label: "npm", href: "https://npmjs.com" },
|
|
1875
|
+
{ label: "X", href: "https://x.com/dotdo_ai" }
|
|
1876
|
+
],
|
|
1877
|
+
copyrightText = "Priya.do \xA9 2025. All rights reserved.",
|
|
1878
|
+
className
|
|
1879
|
+
}) {
|
|
1880
|
+
return /* @__PURE__ */ jsx34("footer", { className: cn("border-t border-(--color-border) bg-(--color-surface)", className), children: /* @__PURE__ */ jsx34("div", { className: "mx-auto max-w-6xl px-6 py-20 md:py-28 lg:px-10", children: /* @__PURE__ */ jsxs27("div", { className: "flex flex-col items-center text-center", children: [
|
|
1881
|
+
/* @__PURE__ */ jsx34(GalDiamond, { className: "size-2" }),
|
|
1882
|
+
/* @__PURE__ */ jsx34(Link6, { href: "/", className: "mt-6 inline-block", children: /* @__PURE__ */ jsx34("span", { className: "gal-display text-4xl font-[560] tracking-[-0.015em] text-(--color-fg) md:text-5xl", children: logo }) }),
|
|
1883
|
+
/* @__PURE__ */ jsx34("p", { className: "mt-5 max-w-[52ch] text-sm leading-relaxed text-(--color-fg-muted)", children: description }),
|
|
1884
|
+
/* @__PURE__ */ jsx34(
|
|
1885
|
+
"nav",
|
|
1886
|
+
{
|
|
1887
|
+
className: "mt-12 flex flex-wrap items-center justify-center gap-x-5 gap-y-4",
|
|
1888
|
+
"aria-label": "Footer",
|
|
1889
|
+
children: [...quickLinks, ...socialLinks].map((link, index, all) => {
|
|
1890
|
+
const external = /^https?:\/\//.test(link.href);
|
|
1891
|
+
return /* @__PURE__ */ jsxs27("span", { className: "flex items-center gap-x-5", children: [
|
|
1892
|
+
/* @__PURE__ */ jsx34(
|
|
1893
|
+
Link6,
|
|
1894
|
+
{
|
|
1895
|
+
href: link.href,
|
|
1896
|
+
...external ? { target: "_blank", rel: "noopener noreferrer" } : {},
|
|
1897
|
+
className: "gal-label text-(--color-fg-soft) transition-colors hover:text-(--color-fg)",
|
|
1898
|
+
children: link.label
|
|
1899
|
+
}
|
|
1900
|
+
),
|
|
1901
|
+
index < all.length - 1 && /* @__PURE__ */ jsx34(GalDiamond, { className: "size-1" })
|
|
1902
|
+
] }, `${link.label}-${index}`);
|
|
1903
|
+
})
|
|
1904
|
+
}
|
|
1905
|
+
),
|
|
1906
|
+
/* @__PURE__ */ jsx34("div", { className: "mt-14 w-full max-w-md border-t border-(--color-border) pt-6", children: /* @__PURE__ */ jsx34("p", { className: "text-xs leading-relaxed text-(--color-fg-muted)", children: copyrightText }) })
|
|
1907
|
+
] }) }) });
|
|
1908
|
+
}
|
|
1909
|
+
|
|
1910
|
+
// src/templates/gallery/view.tsx
|
|
1911
|
+
import { Fragment as Fragment4, jsx as jsx35, jsxs as jsxs28 } from "react/jsx-runtime";
|
|
1912
|
+
function GalleryView({ content, brandName, hostname }) {
|
|
1913
|
+
const { hero, features, pricing, faq, cta } = content;
|
|
1914
|
+
return /* @__PURE__ */ jsxs28(Fragment4, { children: [
|
|
1915
|
+
/* @__PURE__ */ jsx35(GalNavigation, { logo: brandName }),
|
|
1916
|
+
/* @__PURE__ */ jsxs28("main", { children: [
|
|
1917
|
+
/* @__PURE__ */ jsx35(
|
|
1918
|
+
GalHero,
|
|
1919
|
+
{
|
|
1920
|
+
presenter: brandName,
|
|
1921
|
+
badgeText: hero.badgeText,
|
|
1922
|
+
heading: hero.heading,
|
|
1923
|
+
description: hero.description,
|
|
1924
|
+
ctaText: hero.ctaText,
|
|
1925
|
+
ctaHref: hero.ctaHref,
|
|
1926
|
+
secondaryCtaText: hero.secondaryCtaText,
|
|
1927
|
+
secondaryCtaHref: hero.secondaryCtaHref,
|
|
1928
|
+
marqueeTitle: hero.marqueeTitle,
|
|
1929
|
+
marqueeImages: hero.marqueeImages
|
|
1930
|
+
}
|
|
1931
|
+
),
|
|
1932
|
+
/* @__PURE__ */ jsx35(
|
|
1933
|
+
GalFeatures,
|
|
1934
|
+
{
|
|
1935
|
+
heading: features.heading,
|
|
1936
|
+
description: features.description,
|
|
1937
|
+
features: features.features
|
|
1938
|
+
}
|
|
1939
|
+
),
|
|
1940
|
+
pricing.variant === "single" ? /* @__PURE__ */ jsx35(
|
|
1941
|
+
GalPricing,
|
|
1942
|
+
{
|
|
1943
|
+
heading: pricing.heading,
|
|
1944
|
+
subheading: pricing.subheading,
|
|
1945
|
+
price: pricing.price,
|
|
1946
|
+
priceUnit: pricing.priceUnit,
|
|
1947
|
+
trialText: pricing.trialText,
|
|
1948
|
+
ctaText: pricing.ctaText,
|
|
1949
|
+
ctaHref: pricing.ctaHref,
|
|
1950
|
+
featuresHeading: pricing.featuresHeading,
|
|
1951
|
+
features: pricing.features,
|
|
1952
|
+
securityNote: pricing.securityNote
|
|
1953
|
+
}
|
|
1954
|
+
) : /* @__PURE__ */ jsx35(
|
|
1955
|
+
GalPricingTiers,
|
|
1956
|
+
{
|
|
1957
|
+
heading: pricing.heading,
|
|
1958
|
+
subheading: pricing.subheading,
|
|
1959
|
+
tiers: pricing.tiers,
|
|
1960
|
+
securityNote: pricing.securityNote
|
|
1961
|
+
}
|
|
1962
|
+
),
|
|
1963
|
+
/* @__PURE__ */ jsx35(GalFAQ, { heading: faq.heading, faqs: faq.faqs }),
|
|
1964
|
+
/* @__PURE__ */ jsx35(
|
|
1965
|
+
GalCTA,
|
|
1966
|
+
{
|
|
1967
|
+
heading: cta.heading,
|
|
1968
|
+
subheading: cta.subheading,
|
|
1969
|
+
buttons: cta.buttons,
|
|
1970
|
+
hostname
|
|
1971
|
+
}
|
|
1972
|
+
)
|
|
1973
|
+
] }),
|
|
1974
|
+
/* @__PURE__ */ jsx35(
|
|
1975
|
+
GalFooter,
|
|
1976
|
+
{
|
|
1977
|
+
logo: brandName,
|
|
1978
|
+
description: hero.description,
|
|
1979
|
+
copyrightText: `${hostname} \xA9 ${(/* @__PURE__ */ new Date()).getFullYear()}. All rights reserved.`
|
|
1980
|
+
}
|
|
1981
|
+
)
|
|
1982
|
+
] });
|
|
1983
|
+
}
|
|
1984
|
+
|
|
1985
|
+
// src/view/view.tsx
|
|
1986
|
+
import { jsx as jsx36 } from "react/jsx-runtime";
|
|
1378
1987
|
function NamedAgentView({ content, theme, mode, brandName, hostname, template = "studio" }) {
|
|
1379
1988
|
return (
|
|
1380
1989
|
// texture={false}: DialectShell's NoiseTexture grain defaults on for the
|
|
1381
1990
|
// agent dialects, but the named baseline renders NO overlay — the fixed
|
|
1382
1991
|
// full-viewport speckle layer sits over every pixel and subtly shifts the
|
|
1383
1992
|
// whole palette off the baseline values.
|
|
1384
|
-
/* @__PURE__ */
|
|
1993
|
+
/* @__PURE__ */ jsx36(DialectShell, { theme, mode, texture: false, children: /* @__PURE__ */ jsx36("div", { "data-dialect": "named", "data-template": template, children: template === "executive" ? /* @__PURE__ */ jsx36(ExecutiveView, { content, brandName, hostname }) : template === "gallery" ? /* @__PURE__ */ jsx36(GalleryView, { content, brandName, hostname }) : /* @__PURE__ */ jsx36(StudioView, { content, brandName, hostname }) }) })
|
|
1385
1994
|
);
|
|
1386
1995
|
}
|
|
1387
1996
|
var view_default = NamedAgentView;
|