@mdxui/named 6.4.0 → 7.0.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.d.ts +1 -51
- package/dist/components/index.js +32 -453
- package/dist/components/index.js.map +1 -1
- package/dist/index.d.ts +1 -2
- package/dist/index.js +48 -324
- package/dist/index.js.map +1 -1
- package/dist/schemas/index.d.ts +2 -10
- package/dist/schemas/index.js +1 -72
- package/dist/schemas/index.js.map +1 -1
- package/dist/view/index.d.ts +3 -55
- package/dist/view/index.js +10 -488
- package/dist/view/index.js.map +1 -1
- package/package.json +1 -1
- package/dist/problem-B2-XszSB.d.ts +0 -22
package/dist/index.js
CHANGED
|
@@ -599,73 +599,13 @@ function FAQ({ heading = "FAQs", faqs = defaultFaqs, backgroundColor = "bg-backg
|
|
|
599
599
|
] }) });
|
|
600
600
|
}
|
|
601
601
|
|
|
602
|
-
// src/components/problem/problem.tsx
|
|
603
|
-
import { FaInbox, FaCalendarAlt, FaListUl, FaFileAlt, FaRocket, FaProjectDiagram, FaBug, FaLightbulb } from "react-icons/fa";
|
|
604
|
-
import { jsx as jsx10, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
605
|
-
var defaultWorkflows = [
|
|
606
|
-
{ icon: FaInbox, label: "Issue triage" },
|
|
607
|
-
{ icon: FaCalendarAlt, label: "Sprint planning" },
|
|
608
|
-
{ icon: FaListUl, label: "Backlog grooming" },
|
|
609
|
-
{ icon: FaFileAlt, label: "Status updates" },
|
|
610
|
-
{ icon: FaRocket, label: "Release planning" },
|
|
611
|
-
{ icon: FaProjectDiagram, label: "Dependency tracking" },
|
|
612
|
-
{ icon: FaBug, label: "Bug prioritization" },
|
|
613
|
-
{ icon: FaLightbulb, label: "Feature requests" }
|
|
614
|
-
];
|
|
615
|
-
function Problem({
|
|
616
|
-
heading = "Product managers <strong>spend 15+ hours</strong> per week on busywork",
|
|
617
|
-
workflows = defaultWorkflows,
|
|
618
|
-
subheading = "What if all of that just... ",
|
|
619
|
-
subheadingHighlight = "happened automatically?",
|
|
620
|
-
highlightColor = "bg-primary/20",
|
|
621
|
-
marqueeDuration = "30s",
|
|
622
|
-
marqueeGap = "0.5rem",
|
|
623
|
-
backgroundColor = "bg-background",
|
|
624
|
-
className
|
|
625
|
-
}) {
|
|
626
|
-
return /* @__PURE__ */ jsx10("section", { id: "problem", className: cn(`py-20 md:pb-32 px-6 lg:px-12 ${backgroundColor}`, className), children: /* @__PURE__ */ jsx10("div", { className: "max-w-4xl mx-auto", children: /* @__PURE__ */ jsxs7("div", { className: "text-center space-y-8", children: [
|
|
627
|
-
/* @__PURE__ */ jsx10(ScrollReveal, { direction: "up", delay: 0.1, children: /* @__PURE__ */ jsx10(
|
|
628
|
-
"h2",
|
|
629
|
-
{
|
|
630
|
-
className: "font-normal text-[clamp(36px,4vw,40px)] leading-tight text-foreground",
|
|
631
|
-
dangerouslySetInnerHTML: { __html: heading }
|
|
632
|
-
}
|
|
633
|
-
) }),
|
|
634
|
-
/* @__PURE__ */ jsx10(ScrollReveal, { direction: "none", delay: 0.2, children: /* @__PURE__ */ jsxs7("div", { className: "relative py-6", children: [
|
|
635
|
-
/* @__PURE__ */ jsx10("div", { className: "absolute left-0 top-0 bottom-0 w-32 bg-gradient-to-r from-background to-transparent z-10 pointer-events-none" }),
|
|
636
|
-
/* @__PURE__ */ jsx10("div", { className: "absolute right-0 top-0 bottom-0 w-32 bg-gradient-to-l from-background to-transparent z-10 pointer-events-none" }),
|
|
637
|
-
/* @__PURE__ */ jsx10(
|
|
638
|
-
Marquee,
|
|
639
|
-
{
|
|
640
|
-
className: "[--duration:30s] [--gap:0.5rem]",
|
|
641
|
-
style: {
|
|
642
|
-
"--duration": marqueeDuration,
|
|
643
|
-
"--gap": marqueeGap
|
|
644
|
-
},
|
|
645
|
-
children: workflows.map((workflow, index) => /* @__PURE__ */ jsxs7("div", { className: "flex items-center gap-2.5 pl-1.5 pr-3.5 py-1.5 bg-card border border-border rounded-full", children: [
|
|
646
|
-
/* @__PURE__ */ jsx10("div", { className: "flex items-center justify-center w-7 h-7 rounded-full bg-background", children: /* @__PURE__ */ jsx10(workflow.icon, { className: "w-3.5 h-3.5 text-foreground" }) }),
|
|
647
|
-
/* @__PURE__ */ jsx10("span", { className: "text-sm text-foreground whitespace-nowrap", children: workflow.label })
|
|
648
|
-
] }, index))
|
|
649
|
-
}
|
|
650
|
-
)
|
|
651
|
-
] }) }),
|
|
652
|
-
/* @__PURE__ */ jsx10(ScrollReveal, { direction: "up", delay: 0.3, children: /* @__PURE__ */ jsx10("div", { className: "pt-2 md:pt-4", children: /* @__PURE__ */ jsxs7("h3", { className: "font-normal text-[clamp(26px,3.5vw,32px)] leading-tight text-foreground", children: [
|
|
653
|
-
subheading,
|
|
654
|
-
/* @__PURE__ */ jsxs7("span", { className: "relative inline-block", children: [
|
|
655
|
-
/* @__PURE__ */ jsx10("span", { className: "relative z-10", children: subheadingHighlight }),
|
|
656
|
-
/* @__PURE__ */ jsx10("span", { className: `absolute bottom-1 left-0 w-full h-3 ${highlightColor} opacity-30 -rotate-1` })
|
|
657
|
-
] })
|
|
658
|
-
] }) }) })
|
|
659
|
-
] }) }) });
|
|
660
|
-
}
|
|
661
|
-
|
|
662
602
|
// src/components/navigation/navigation.tsx
|
|
663
603
|
import { useState, useEffect } from "react";
|
|
664
604
|
import Link from "next/link";
|
|
665
605
|
import { Menu, X } from "lucide-react";
|
|
666
606
|
import { motion as motion2, AnimatePresence } from "motion/react";
|
|
667
607
|
import { Button as Button5 } from "@mdxui/primitives";
|
|
668
|
-
import { jsx as
|
|
608
|
+
import { jsx as jsx10, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
669
609
|
function Navigation({
|
|
670
610
|
logo = "Priya",
|
|
671
611
|
logoHref = "/",
|
|
@@ -705,7 +645,7 @@ function Navigation({
|
|
|
705
645
|
"7xl": "max-w-7xl",
|
|
706
646
|
full: "max-w-full"
|
|
707
647
|
}[maxWidth];
|
|
708
|
-
return /* @__PURE__ */
|
|
648
|
+
return /* @__PURE__ */ jsx10(
|
|
709
649
|
"nav",
|
|
710
650
|
{
|
|
711
651
|
className: cn(
|
|
@@ -714,14 +654,14 @@ function Navigation({
|
|
|
714
654
|
showScrollEffect && isScrolled ? "bg-background/95 backdrop-blur-md" : "bg-background",
|
|
715
655
|
className
|
|
716
656
|
),
|
|
717
|
-
children: /* @__PURE__ */
|
|
718
|
-
/* @__PURE__ */
|
|
719
|
-
/* @__PURE__ */
|
|
720
|
-
links && links.length > 0 && /* @__PURE__ */
|
|
721
|
-
ctaText && ctaHref && /* @__PURE__ */
|
|
722
|
-
/* @__PURE__ */
|
|
657
|
+
children: /* @__PURE__ */ jsxs7("div", { className: cn(maxWidthClass, "mx-auto px-6 lg:px-12 py-4"), children: [
|
|
658
|
+
/* @__PURE__ */ jsxs7("div", { className: "flex items-center justify-between", children: [
|
|
659
|
+
/* @__PURE__ */ jsx10("div", { className: "flex items-center", children: /* @__PURE__ */ jsx10(Link, { href: logoHref, className: "flex items-center", children: typeof logo === "string" ? /* @__PURE__ */ jsx10("span", { className: "text-3xl font-base text-foreground", children: logo }) : logo }) }),
|
|
660
|
+
links && links.length > 0 && /* @__PURE__ */ jsx10("div", { className: "hidden lg:flex items-center gap-8", children: links.map((link) => /* @__PURE__ */ jsx10("a", { href: link.href, className: "text-sm text-foreground hover:opacity-60 transition-opacity", children: link.label }, link.href)) }),
|
|
661
|
+
ctaText && ctaHref && /* @__PURE__ */ jsx10("div", { className: "hidden lg:flex items-center", children: /* @__PURE__ */ jsx10(Button5, { asChild: true, variant: ctaVariant, children: /* @__PURE__ */ jsx10("a", { href: ctaHref, children: ctaText }) }) }),
|
|
662
|
+
/* @__PURE__ */ jsx10("button", { className: "lg:hidden p-2 text-foreground", onClick: () => setMobileMenuOpen(!mobileMenuOpen), "aria-label": "Toggle menu", children: mobileMenuOpen ? /* @__PURE__ */ jsx10(X, { className: "w-6 h-6" }) : /* @__PURE__ */ jsx10(Menu, { className: "w-6 h-6" }) })
|
|
723
663
|
] }),
|
|
724
|
-
/* @__PURE__ */
|
|
664
|
+
/* @__PURE__ */ jsx10(AnimatePresence, { children: mobileMenuOpen && /* @__PURE__ */ jsx10(
|
|
725
665
|
motion2.div,
|
|
726
666
|
{
|
|
727
667
|
initial: { opacity: 0, height: 0 },
|
|
@@ -729,9 +669,9 @@ function Navigation({
|
|
|
729
669
|
exit: { opacity: 0, height: 0 },
|
|
730
670
|
transition: { duration: 0.3, ease: "easeInOut" },
|
|
731
671
|
className: "lg:hidden overflow-hidden",
|
|
732
|
-
children: /* @__PURE__ */
|
|
733
|
-
links.map((link) => /* @__PURE__ */
|
|
734
|
-
ctaText && ctaHref && /* @__PURE__ */
|
|
672
|
+
children: /* @__PURE__ */ jsx10("div", { className: "mt-4 py-4 rounded-xl bg-card", children: /* @__PURE__ */ jsxs7("div", { className: "flex flex-col gap-4 px-6", children: [
|
|
673
|
+
links.map((link) => /* @__PURE__ */ jsx10("a", { href: link.href, className: "py-2 text-foreground hover:opacity-70 transition-colors", onClick: () => setMobileMenuOpen(false), children: link.label }, link.href)),
|
|
674
|
+
ctaText && ctaHref && /* @__PURE__ */ jsx10(Button5, { asChild: true, variant: ctaVariant, className: "mt-2", onClick: () => setMobileMenuOpen(false), children: /* @__PURE__ */ jsx10("a", { href: ctaHref, children: ctaText }) })
|
|
735
675
|
] }) })
|
|
736
676
|
}
|
|
737
677
|
) })
|
|
@@ -746,7 +686,7 @@ import { FaGithub, FaXTwitter } from "react-icons/fa6";
|
|
|
746
686
|
import { SiNpm } from "react-icons/si";
|
|
747
687
|
import { FaArrowRight } from "react-icons/fa6";
|
|
748
688
|
import { Input } from "@mdxui/primitives";
|
|
749
|
-
import { jsx as
|
|
689
|
+
import { jsx as jsx11, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
750
690
|
function Footer({
|
|
751
691
|
logo = "Priya",
|
|
752
692
|
description = "Your AI Product Manager for GitHub. Automate issue triage, sprint planning, and backlog grooming.",
|
|
@@ -776,14 +716,14 @@ function Footer({
|
|
|
776
716
|
}
|
|
777
717
|
form.reset();
|
|
778
718
|
};
|
|
779
|
-
return /* @__PURE__ */
|
|
780
|
-
/* @__PURE__ */
|
|
781
|
-
/* @__PURE__ */
|
|
782
|
-
/* @__PURE__ */
|
|
783
|
-
/* @__PURE__ */
|
|
784
|
-
/* @__PURE__ */
|
|
719
|
+
return /* @__PURE__ */ jsx11("footer", { className: cn("py-16 px-6 lg:px-12 bg-card text-card-foreground", className), children: /* @__PURE__ */ jsxs8("div", { className: "max-w-7xl mx-auto", children: [
|
|
720
|
+
/* @__PURE__ */ jsxs8("div", { className: "grid md:grid-cols-5 gap-12 mb-12", children: [
|
|
721
|
+
/* @__PURE__ */ jsxs8("div", { className: "md:col-span-2", children: [
|
|
722
|
+
/* @__PURE__ */ jsx11(Link2, { href: "/", className: "inline-block mb-4", children: /* @__PURE__ */ jsx11("div", { className: "text-3xl font-base text-card-foreground", children: logo }) }),
|
|
723
|
+
/* @__PURE__ */ jsx11("p", { className: "max-w-md text-sm leading-relaxed text-muted-foreground mb-6", children: description }),
|
|
724
|
+
/* @__PURE__ */ jsx11("div", { className: "flex items-center gap-4", children: socialLinks.map((link) => {
|
|
785
725
|
const Icon = link.icon;
|
|
786
|
-
return /* @__PURE__ */
|
|
726
|
+
return /* @__PURE__ */ jsx11(
|
|
787
727
|
Link2,
|
|
788
728
|
{
|
|
789
729
|
href: link.href,
|
|
@@ -791,20 +731,20 @@ function Footer({
|
|
|
791
731
|
rel: "noopener noreferrer",
|
|
792
732
|
className: "text-muted-foreground transition-colors hover:text-card-foreground",
|
|
793
733
|
"aria-label": link.label,
|
|
794
|
-
children: /* @__PURE__ */
|
|
734
|
+
children: /* @__PURE__ */ jsx11(Icon, { className: "w-5 h-5" })
|
|
795
735
|
},
|
|
796
736
|
link.label
|
|
797
737
|
);
|
|
798
738
|
}) })
|
|
799
739
|
] }),
|
|
800
|
-
/* @__PURE__ */
|
|
801
|
-
/* @__PURE__ */
|
|
802
|
-
/* @__PURE__ */
|
|
740
|
+
/* @__PURE__ */ jsxs8("div", { children: [
|
|
741
|
+
/* @__PURE__ */ jsx11("h3", { className: "font-semibold text-base mb-4 text-card-foreground", children: "Quick Links" }),
|
|
742
|
+
/* @__PURE__ */ jsx11("ul", { className: "space-y-2", children: quickLinks.map((link) => /* @__PURE__ */ jsx11("li", { children: /* @__PURE__ */ jsx11(Link2, { href: link.href, className: "text-sm text-muted-foreground transition-colors hover:text-card-foreground", children: link.label }) }, link.label)) })
|
|
803
743
|
] }),
|
|
804
|
-
/* @__PURE__ */
|
|
805
|
-
/* @__PURE__ */
|
|
806
|
-
/* @__PURE__ */
|
|
807
|
-
/* @__PURE__ */
|
|
744
|
+
/* @__PURE__ */ jsx11("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: [
|
|
745
|
+
/* @__PURE__ */ jsx11("h3", { className: "font-semibold text-base mb-4 text-card-foreground", children: contactTitle }),
|
|
746
|
+
/* @__PURE__ */ jsxs8("form", { onSubmit: handleEmailSubmit, className: "relative", children: [
|
|
747
|
+
/* @__PURE__ */ jsx11(
|
|
808
748
|
Input,
|
|
809
749
|
{
|
|
810
750
|
type: "email",
|
|
@@ -814,118 +754,26 @@ function Footer({
|
|
|
814
754
|
className: "w-full bg-muted border-border text-card-foreground placeholder:text-muted-foreground pr-12"
|
|
815
755
|
}
|
|
816
756
|
),
|
|
817
|
-
/* @__PURE__ */
|
|
757
|
+
/* @__PURE__ */ jsx11(
|
|
818
758
|
"button",
|
|
819
759
|
{
|
|
820
760
|
type: "submit",
|
|
821
761
|
className: "absolute right-1 top-1/2 -translate-y-1/2 bg-card text-foreground hover:bg-card active:bg-card active:text-card-foreground px-3 py-3 rounded-md transition-colors",
|
|
822
762
|
"aria-label": "Submit email",
|
|
823
|
-
children: /* @__PURE__ */
|
|
763
|
+
children: /* @__PURE__ */ jsx11(FaArrowRight, { className: "w-3 h-3" })
|
|
824
764
|
}
|
|
825
765
|
)
|
|
826
766
|
] })
|
|
827
767
|
] }) })
|
|
828
768
|
] }),
|
|
829
|
-
/* @__PURE__ */
|
|
769
|
+
/* @__PURE__ */ jsx11("div", { className: "border-t border-border pt-8", children: /* @__PURE__ */ jsx11("div", { className: "flex flex-col md:flex-row justify-between items-center gap-4", children: /* @__PURE__ */ jsx11("p", { className: "text-sm text-muted-foreground", children: copyrightText }) }) })
|
|
830
770
|
] }) });
|
|
831
771
|
}
|
|
832
772
|
|
|
833
|
-
// src/components/contact/contact.tsx
|
|
834
|
-
import { useState as useState2 } from "react";
|
|
835
|
-
import { Button as Button6, Input as Input2, Label, Textarea } from "@mdxui/primitives";
|
|
836
|
-
import { jsx as jsx13, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
837
|
-
var defaultFields = [
|
|
838
|
-
{
|
|
839
|
-
id: "name",
|
|
840
|
-
label: "Name",
|
|
841
|
-
type: "text",
|
|
842
|
-
required: true
|
|
843
|
-
},
|
|
844
|
-
{
|
|
845
|
-
id: "email",
|
|
846
|
-
label: "Company Email",
|
|
847
|
-
type: "email",
|
|
848
|
-
required: true
|
|
849
|
-
},
|
|
850
|
-
{
|
|
851
|
-
id: "message",
|
|
852
|
-
label: "Message",
|
|
853
|
-
type: "textarea",
|
|
854
|
-
placeholder: "Tell us about your use case, team size, or any other questions you may have.",
|
|
855
|
-
required: true
|
|
856
|
-
}
|
|
857
|
-
];
|
|
858
|
-
function Contact({
|
|
859
|
-
heading = "Get in touch",
|
|
860
|
-
subheading = "Have questions about use cases, pricing, or anything else? Let's chat!",
|
|
861
|
-
fields = defaultFields,
|
|
862
|
-
submitButtonText = "Submit",
|
|
863
|
-
successMessage = "Thanks for reaching out! I'll get back to you within 24 hours.",
|
|
864
|
-
errorMessage = "Hmm, something went wrong. Mind trying again?",
|
|
865
|
-
onSubmit,
|
|
866
|
-
backgroundColor = "bg-background",
|
|
867
|
-
className
|
|
868
|
-
}) {
|
|
869
|
-
const [isSubmitting, setIsSubmitting] = useState2(false);
|
|
870
|
-
const [formData, setFormData] = useState2({});
|
|
871
|
-
const [submitStatus, setSubmitStatus] = useState2("idle");
|
|
872
|
-
const handleSubmit = async (e) => {
|
|
873
|
-
e.preventDefault();
|
|
874
|
-
setIsSubmitting(true);
|
|
875
|
-
setSubmitStatus("idle");
|
|
876
|
-
try {
|
|
877
|
-
if (onSubmit) {
|
|
878
|
-
await onSubmit(formData);
|
|
879
|
-
}
|
|
880
|
-
setSubmitStatus("success");
|
|
881
|
-
setFormData({});
|
|
882
|
-
e.target.reset();
|
|
883
|
-
} catch {
|
|
884
|
-
setSubmitStatus("error");
|
|
885
|
-
} finally {
|
|
886
|
-
setIsSubmitting(false);
|
|
887
|
-
}
|
|
888
|
-
};
|
|
889
|
-
const handleChange = (e) => {
|
|
890
|
-
setFormData((prev) => ({
|
|
891
|
-
...prev,
|
|
892
|
-
[e.target.id]: e.target.value
|
|
893
|
-
}));
|
|
894
|
-
};
|
|
895
|
-
return /* @__PURE__ */ jsx13("section", { className: cn(`relative py-12 md:py-32 px-6 lg:px-12 ${backgroundColor}`, className), children: /* @__PURE__ */ jsxs10("div", { className: "max-w-3xl mx-auto", children: [
|
|
896
|
-
/* @__PURE__ */ jsx13(ScrollReveal, { direction: "up", delay: 0.1, children: /* @__PURE__ */ jsxs10("div", { className: "mb-14 text-center", children: [
|
|
897
|
-
/* @__PURE__ */ jsx13("h1", { className: "font-normal text-[clamp(32px,4vw,40px)] leading-tight text-foreground mb-4", children: heading }),
|
|
898
|
-
/* @__PURE__ */ jsx13("p", { className: "text-base text-muted-foreground max-w-2xl mx-auto", children: subheading })
|
|
899
|
-
] }) }),
|
|
900
|
-
/* @__PURE__ */ jsx13(ScrollReveal, { direction: "up", delay: 0.2, children: /* @__PURE__ */ jsxs10(
|
|
901
|
-
"form",
|
|
902
|
-
{
|
|
903
|
-
onSubmit: handleSubmit,
|
|
904
|
-
className: "mx-auto flex max-w-lg flex-col gap-6 bg-card p-6 md:p-8 rounded-3xl border border-border feature-card-shadow",
|
|
905
|
-
children: [
|
|
906
|
-
fields.map((field) => /* @__PURE__ */ jsxs10("div", { className: "grid w-full items-center gap-2", children: [
|
|
907
|
-
/* @__PURE__ */ jsxs10(Label, { htmlFor: field.id, className: "text-foreground", children: [
|
|
908
|
-
field.label,
|
|
909
|
-
field.required && /* @__PURE__ */ jsx13("span", { className: "text-destructive ml-1", children: "*" })
|
|
910
|
-
] }),
|
|
911
|
-
field.type === "textarea" ? /* @__PURE__ */ jsx13(Textarea, { id: field.id, placeholder: field.placeholder, required: field.required, onChange: handleChange, className: "min-h-[120px]" }) : /* @__PURE__ */ jsx13(Input2, { type: field.type, id: field.id, placeholder: field.placeholder, required: field.required, onChange: handleChange })
|
|
912
|
-
] }, field.id)),
|
|
913
|
-
/* @__PURE__ */ jsx13(Button6, { type: "submit", className: "w-full", disabled: isSubmitting, children: isSubmitting ? "Submitting..." : submitButtonText }),
|
|
914
|
-
submitStatus === "success" && /* @__PURE__ */ jsx13("p", { className: "text-primary text-sm text-center", children: successMessage }),
|
|
915
|
-
submitStatus === "error" && /* @__PURE__ */ jsx13("p", { className: "text-destructive text-sm text-center", children: errorMessage })
|
|
916
|
-
]
|
|
917
|
-
}
|
|
918
|
-
) })
|
|
919
|
-
] }) });
|
|
920
|
-
}
|
|
921
|
-
|
|
922
|
-
// src/components/integration/integration.tsx
|
|
923
|
-
import { forwardRef, useRef, useEffect as useEffect3, useState as useState4 } from "react";
|
|
924
|
-
|
|
925
773
|
// src/shared/animated-beam/animated-beam.tsx
|
|
926
|
-
import { useEffect as useEffect2, useId, useState as
|
|
774
|
+
import { useEffect as useEffect2, useId, useState as useState2 } from "react";
|
|
927
775
|
import { motion as motion3 } from "motion/react";
|
|
928
|
-
import { jsx as
|
|
776
|
+
import { jsx as jsx12, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
929
777
|
function AnimatedBeam({
|
|
930
778
|
className,
|
|
931
779
|
containerRef,
|
|
@@ -946,8 +794,8 @@ function AnimatedBeam({
|
|
|
946
794
|
endYOffset = 0
|
|
947
795
|
}) {
|
|
948
796
|
const id = useId();
|
|
949
|
-
const [pathD, setPathD] =
|
|
950
|
-
const [svgDimensions, setSvgDimensions] =
|
|
797
|
+
const [pathD, setPathD] = useState2("");
|
|
798
|
+
const [svgDimensions, setSvgDimensions] = useState2({ width: 0, height: 0 });
|
|
951
799
|
const gradientCoordinates = reverse ? {
|
|
952
800
|
x1: ["90%", "-10%"],
|
|
953
801
|
x2: ["100%", "0%"],
|
|
@@ -988,7 +836,7 @@ function AnimatedBeam({
|
|
|
988
836
|
resizeObserver.disconnect();
|
|
989
837
|
};
|
|
990
838
|
}, [containerRef, fromRef, toRef, curvature, startXOffset, startYOffset, endXOffset, endYOffset]);
|
|
991
|
-
return /* @__PURE__ */
|
|
839
|
+
return /* @__PURE__ */ jsxs9(
|
|
992
840
|
"svg",
|
|
993
841
|
{
|
|
994
842
|
fill: "none",
|
|
@@ -998,9 +846,9 @@ function AnimatedBeam({
|
|
|
998
846
|
className: cn("pointer-events-none absolute top-0 left-0 transform-gpu stroke-2", className),
|
|
999
847
|
viewBox: `0 0 ${svgDimensions.width} ${svgDimensions.height}`,
|
|
1000
848
|
children: [
|
|
1001
|
-
/* @__PURE__ */
|
|
1002
|
-
/* @__PURE__ */
|
|
1003
|
-
/* @__PURE__ */
|
|
849
|
+
/* @__PURE__ */ jsx12("path", { d: pathD, stroke: pathColor, strokeWidth: pathWidth, strokeOpacity: pathOpacity, strokeLinecap: "round" }),
|
|
850
|
+
/* @__PURE__ */ jsx12("path", { d: pathD, strokeWidth: pathWidth, stroke: `url(#${id})`, strokeOpacity: "1", strokeLinecap: "round" }),
|
|
851
|
+
/* @__PURE__ */ jsx12("defs", { children: /* @__PURE__ */ jsxs9(
|
|
1004
852
|
motion3.linearGradient,
|
|
1005
853
|
{
|
|
1006
854
|
className: "transform-gpu",
|
|
@@ -1026,10 +874,10 @@ function AnimatedBeam({
|
|
|
1026
874
|
repeatDelay: 0
|
|
1027
875
|
},
|
|
1028
876
|
children: [
|
|
1029
|
-
/* @__PURE__ */
|
|
1030
|
-
/* @__PURE__ */
|
|
1031
|
-
/* @__PURE__ */
|
|
1032
|
-
/* @__PURE__ */
|
|
877
|
+
/* @__PURE__ */ jsx12("stop", { stopColor: gradientStartColor, stopOpacity: "0" }),
|
|
878
|
+
/* @__PURE__ */ jsx12("stop", { stopColor: gradientStartColor }),
|
|
879
|
+
/* @__PURE__ */ jsx12("stop", { offset: "32.5%", stopColor: gradientStopColor }),
|
|
880
|
+
/* @__PURE__ */ jsx12("stop", { offset: "100%", stopColor: gradientStopColor, stopOpacity: "0" })
|
|
1033
881
|
]
|
|
1034
882
|
}
|
|
1035
883
|
) })
|
|
@@ -1040,7 +888,7 @@ function AnimatedBeam({
|
|
|
1040
888
|
|
|
1041
889
|
// src/shared/grid-pattern/grid-pattern.tsx
|
|
1042
890
|
import { useId as useId2 } from "react";
|
|
1043
|
-
import { jsx as
|
|
891
|
+
import { jsx as jsx13, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
1044
892
|
function GridPattern({
|
|
1045
893
|
width = 40,
|
|
1046
894
|
height = 40,
|
|
@@ -1052,157 +900,33 @@ function GridPattern({
|
|
|
1052
900
|
...props
|
|
1053
901
|
}) {
|
|
1054
902
|
const id = useId2();
|
|
1055
|
-
return /* @__PURE__ */
|
|
903
|
+
return /* @__PURE__ */ jsxs10(
|
|
1056
904
|
"svg",
|
|
1057
905
|
{
|
|
1058
906
|
"aria-hidden": "true",
|
|
1059
907
|
className: cn("pointer-events-none absolute inset-0 h-full w-full fill-muted-foreground/20 stroke-muted-foreground/20", className),
|
|
1060
908
|
...props,
|
|
1061
909
|
children: [
|
|
1062
|
-
/* @__PURE__ */
|
|
1063
|
-
/* @__PURE__ */
|
|
1064
|
-
squares && /* @__PURE__ */
|
|
910
|
+
/* @__PURE__ */ jsx13("defs", { children: /* @__PURE__ */ jsx13("pattern", { id, width, height, patternUnits: "userSpaceOnUse", x, y, children: /* @__PURE__ */ jsx13("path", { d: `M.5 ${height}V.5H${width}`, fill: "none", strokeDasharray }) }) }),
|
|
911
|
+
/* @__PURE__ */ jsx13("rect", { width: "100%", height: "100%", strokeWidth: 0, fill: `url(#${id})` }),
|
|
912
|
+
squares && /* @__PURE__ */ jsx13("svg", { x, y, className: "overflow-visible", children: squares.map(([sx, sy]) => /* @__PURE__ */ jsx13("rect", { strokeWidth: "0", width: width - 1, height: height - 1, x: sx * width + 1, y: sy * height + 1 }, `${sx}-${sy}`)) })
|
|
1065
913
|
]
|
|
1066
914
|
}
|
|
1067
915
|
);
|
|
1068
916
|
}
|
|
1069
|
-
|
|
1070
|
-
// src/components/integration/integration.tsx
|
|
1071
|
-
import Image3 from "next/image";
|
|
1072
|
-
import { Button as Button7 } from "@mdxui/primitives";
|
|
1073
|
-
import { Fragment as Fragment2, jsx as jsx16, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
1074
|
-
var Square = forwardRef(({ className, children }, ref) => {
|
|
1075
|
-
return /* @__PURE__ */ jsx16(
|
|
1076
|
-
"div",
|
|
1077
|
-
{
|
|
1078
|
-
ref,
|
|
1079
|
-
className: cn("z-10 flex size-16 items-center justify-center rounded-lg bg-card border border-border p-3 integration-square-shadow", className),
|
|
1080
|
-
children
|
|
1081
|
-
}
|
|
1082
|
-
);
|
|
1083
|
-
});
|
|
1084
|
-
Square.displayName = "Square";
|
|
1085
|
-
function Integration({
|
|
1086
|
-
title = "Connect in Seconds",
|
|
1087
|
-
description = "Just connect your account and get started immediately \u2013 no configuration, no setup, no hassle.",
|
|
1088
|
-
buttonText = "Get Started",
|
|
1089
|
-
buttonHref = "#pricing",
|
|
1090
|
-
leftNode,
|
|
1091
|
-
rightNode,
|
|
1092
|
-
beamAnimations = [
|
|
1093
|
-
{ startYOffset: 10, endYOffset: 10, curvature: -20, duration: 3 },
|
|
1094
|
-
{ startYOffset: -10, endYOffset: -10, curvature: 20, duration: 3, reverse: true }
|
|
1095
|
-
],
|
|
1096
|
-
gridPatternWidth = 30,
|
|
1097
|
-
gridPatternHeight = 30,
|
|
1098
|
-
maxWidth = "5xl",
|
|
1099
|
-
className,
|
|
1100
|
-
contentOrder = "left"
|
|
1101
|
-
}) {
|
|
1102
|
-
const containerRef = useRef(null);
|
|
1103
|
-
const leftRef = useRef(null);
|
|
1104
|
-
const rightRef = useRef(null);
|
|
1105
|
-
const [isDark, setIsDark] = useState4(false);
|
|
1106
|
-
useEffect3(() => {
|
|
1107
|
-
const checkDarkMode = () => {
|
|
1108
|
-
const isDarkMode = document.documentElement.classList.contains("dark") || window.matchMedia("(prefers-color-scheme: dark)").matches;
|
|
1109
|
-
setIsDark(isDarkMode);
|
|
1110
|
-
};
|
|
1111
|
-
checkDarkMode();
|
|
1112
|
-
const mediaQuery = window.matchMedia("(prefers-color-scheme: dark)");
|
|
1113
|
-
const observer = new MutationObserver(checkDarkMode);
|
|
1114
|
-
mediaQuery.addEventListener("change", checkDarkMode);
|
|
1115
|
-
observer.observe(document.documentElement, {
|
|
1116
|
-
attributes: true,
|
|
1117
|
-
attributeFilter: ["class"]
|
|
1118
|
-
});
|
|
1119
|
-
return () => {
|
|
1120
|
-
mediaQuery.removeEventListener("change", checkDarkMode);
|
|
1121
|
-
observer.disconnect();
|
|
1122
|
-
};
|
|
1123
|
-
}, []);
|
|
1124
|
-
const renderNode = (node, ref) => {
|
|
1125
|
-
const squareContent = (() => {
|
|
1126
|
-
if (node.type === "image" && typeof node.content === "string") {
|
|
1127
|
-
return /* @__PURE__ */ jsx16("div", { className: "relative w-full h-full", children: /* @__PURE__ */ jsx16(Image3, { src: node.content, alt: node.alt || "Integration", fill: true, className: "object-cover rounded-lg" }) });
|
|
1128
|
-
}
|
|
1129
|
-
if (node.type === "icon" && typeof node.content === "string") {
|
|
1130
|
-
return /* @__PURE__ */ jsx16("div", { className: cn("text-foreground", node.className), children: node.content });
|
|
1131
|
-
}
|
|
1132
|
-
return node.content;
|
|
1133
|
-
})();
|
|
1134
|
-
return /* @__PURE__ */ jsx16(Square, { ref, className: cn("size-20", node.type === "image" ? "p-0" : "", node.className), children: squareContent });
|
|
1135
|
-
};
|
|
1136
|
-
const maxWidthClasses = {
|
|
1137
|
-
sm: "max-w-sm",
|
|
1138
|
-
md: "max-w-md",
|
|
1139
|
-
lg: "max-w-lg",
|
|
1140
|
-
xl: "max-w-xl",
|
|
1141
|
-
"2xl": "max-w-2xl",
|
|
1142
|
-
"3xl": "max-w-3xl",
|
|
1143
|
-
"4xl": "max-w-4xl",
|
|
1144
|
-
"5xl": "max-w-5xl",
|
|
1145
|
-
"6xl": "max-w-6xl",
|
|
1146
|
-
"7xl": "max-w-7xl"
|
|
1147
|
-
};
|
|
1148
|
-
const content = /* @__PURE__ */ jsxs13("div", { className: "space-y-6", children: [
|
|
1149
|
-
/* @__PURE__ */ jsx16(ScrollReveal, { direction: "up", delay: 0.1, children: /* @__PURE__ */ jsx16("h2", { className: "font-normal text-[clamp(32px,4vw,40px)] leading-tight text-foreground", children: title }) }),
|
|
1150
|
-
/* @__PURE__ */ jsx16(ScrollReveal, { direction: "up", delay: 0.2, children: /* @__PURE__ */ jsx16("p", { className: "text-base text-muted-foreground max-w-lg", children: description }) }),
|
|
1151
|
-
buttonText && buttonHref && /* @__PURE__ */ jsx16(ScrollReveal, { direction: "up", delay: 0.3, children: /* @__PURE__ */ jsx16(Button7, { asChild: true, variant: "default", children: /* @__PURE__ */ jsx16("a", { href: buttonHref, children: buttonText }) }) })
|
|
1152
|
-
] });
|
|
1153
|
-
const animation = /* @__PURE__ */ jsx16(ScrollReveal, { direction: contentOrder === "left" ? "right" : "left", delay: 0.2, children: /* @__PURE__ */ jsxs13("div", { className: "relative flex aspect-square max-w-md mx-auto w-full items-center justify-center overflow-hidden rounded-lg", ref: containerRef, children: [
|
|
1154
|
-
/* @__PURE__ */ jsx16(
|
|
1155
|
-
GridPattern,
|
|
1156
|
-
{
|
|
1157
|
-
width: gridPatternWidth,
|
|
1158
|
-
height: gridPatternHeight,
|
|
1159
|
-
className: "opacity-30 mask-[radial-gradient(ellipse_at_center,black_40%,transparent_85%)] dark:mask-[radial-gradient(ellipse_at_center,white_40%,transparent_85%)]"
|
|
1160
|
-
}
|
|
1161
|
-
),
|
|
1162
|
-
/* @__PURE__ */ jsxs13("div", { className: "flex size-full flex-row items-center justify-center gap-20 relative z-10", children: [
|
|
1163
|
-
/* @__PURE__ */ jsx16("div", { className: "flex flex-col justify-center", children: renderNode(leftNode, leftRef) }),
|
|
1164
|
-
/* @__PURE__ */ jsx16("div", { className: "flex flex-col justify-center", children: renderNode(rightNode, rightRef) })
|
|
1165
|
-
] }),
|
|
1166
|
-
beamAnimations.map((config, index) => /* @__PURE__ */ jsx16(
|
|
1167
|
-
AnimatedBeam,
|
|
1168
|
-
{
|
|
1169
|
-
containerRef,
|
|
1170
|
-
fromRef: leftRef,
|
|
1171
|
-
toRef: rightRef,
|
|
1172
|
-
startYOffset: config.startYOffset,
|
|
1173
|
-
endYOffset: config.endYOffset,
|
|
1174
|
-
curvature: config.curvature,
|
|
1175
|
-
duration: config.duration,
|
|
1176
|
-
reverse: config.reverse,
|
|
1177
|
-
pathColor: isDark ? "rgba(255, 255, 255, 0.2)" : "rgba(0, 0, 0, 0.2)"
|
|
1178
|
-
},
|
|
1179
|
-
index
|
|
1180
|
-
))
|
|
1181
|
-
] }) });
|
|
1182
|
-
return /* @__PURE__ */ jsx16("section", { className: cn("pt-10 sm:pt-0 px-8 lg:px-24 bg-background", className), children: /* @__PURE__ */ jsx16("div", { className: cn(maxWidthClasses[maxWidth], "mx-auto"), children: /* @__PURE__ */ jsx16("div", { className: "grid lg:grid-cols-2 gap-1 items-center", children: contentOrder === "left" ? /* @__PURE__ */ jsxs13(Fragment2, { children: [
|
|
1183
|
-
content,
|
|
1184
|
-
animation
|
|
1185
|
-
] }) : /* @__PURE__ */ jsxs13(Fragment2, { children: [
|
|
1186
|
-
animation,
|
|
1187
|
-
content
|
|
1188
|
-
] }) }) }) });
|
|
1189
|
-
}
|
|
1190
917
|
export {
|
|
1191
918
|
AnimatedBeam,
|
|
1192
919
|
CTA,
|
|
1193
920
|
CodeWindow,
|
|
1194
|
-
Contact,
|
|
1195
921
|
FAQ,
|
|
1196
922
|
Features,
|
|
1197
923
|
Footer,
|
|
1198
924
|
GridPattern,
|
|
1199
925
|
Hero,
|
|
1200
|
-
Integration,
|
|
1201
926
|
Marquee,
|
|
1202
927
|
Navigation,
|
|
1203
928
|
Pricing,
|
|
1204
929
|
PricingTiers,
|
|
1205
|
-
Problem,
|
|
1206
930
|
ScrollReveal,
|
|
1207
931
|
cn
|
|
1208
932
|
};
|