@nextworks/blocks-sections 0.2.0-alpha.10 → 0.2.0-alpha.12

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.
Files changed (104) hide show
  1. package/dist/components/About.d.ts.map +1 -1
  2. package/dist/components/About.jsx +27 -25
  3. package/dist/components/CTA.d.ts.map +1 -1
  4. package/dist/components/CTA.jsx +33 -31
  5. package/dist/components/Contact.d.ts.map +1 -1
  6. package/dist/components/Contact.jsx +31 -26
  7. package/dist/components/FAQ.d.ts.map +1 -1
  8. package/dist/components/FAQ.jsx +24 -22
  9. package/dist/components/Features.d.ts.map +1 -1
  10. package/dist/components/Features.jsx +15 -13
  11. package/dist/components/Footer.d.ts +3 -0
  12. package/dist/components/Footer.d.ts.map +1 -1
  13. package/dist/components/Footer.jsx +39 -37
  14. package/dist/components/HeroMotion.d.ts.map +1 -1
  15. package/dist/components/HeroMotion.jsx +43 -41
  16. package/dist/components/HeroOverlay.d.ts.map +1 -1
  17. package/dist/components/HeroOverlay.jsx +33 -31
  18. package/dist/components/HeroProductDemo.d.ts +54 -0
  19. package/dist/components/HeroProductDemo.d.ts.map +1 -0
  20. package/dist/components/HeroProductDemo.jsx +81 -0
  21. package/dist/components/HeroSplit.d.ts.map +1 -1
  22. package/dist/components/HeroSplit.jsx +37 -35
  23. package/dist/components/Navbar.d.ts.map +1 -1
  24. package/dist/components/Navbar.jsx +51 -51
  25. package/dist/components/Newsletter.d.ts +3 -2
  26. package/dist/components/Newsletter.d.ts.map +1 -1
  27. package/dist/components/Newsletter.jsx +25 -22
  28. package/dist/components/PortfolioSimple.d.ts.map +1 -1
  29. package/dist/components/PortfolioSimple.jsx +82 -80
  30. package/dist/components/Pricing.d.ts.map +1 -1
  31. package/dist/components/Pricing.jsx +14 -12
  32. package/dist/components/ProcessTimeline.d.ts.map +1 -1
  33. package/dist/components/ProcessTimeline.jsx +65 -63
  34. package/dist/components/ServicesGrid.d.ts.map +1 -1
  35. package/dist/components/ServicesGrid.jsx +27 -25
  36. package/dist/components/Team.d.ts.map +1 -1
  37. package/dist/components/Team.jsx +30 -28
  38. package/dist/components/Testimonials.d.ts.map +1 -1
  39. package/dist/components/Testimonials.jsx +14 -12
  40. package/dist/components/TrustBadges.d.ts.map +1 -1
  41. package/dist/components/TrustBadges.jsx +20 -18
  42. package/dist/components/index.d.ts +1 -0
  43. package/dist/components/index.d.ts.map +1 -1
  44. package/dist/components/index.js +1 -0
  45. package/dist/components/product-demo/ApprovalInboxPanel.d.ts +7 -0
  46. package/dist/components/product-demo/ApprovalInboxPanel.d.ts.map +1 -0
  47. package/dist/components/product-demo/ApprovalInboxPanel.jsx +70 -0
  48. package/dist/components/product-demo/DemoStage.d.ts +14 -0
  49. package/dist/components/product-demo/DemoStage.d.ts.map +1 -0
  50. package/dist/components/product-demo/DemoStage.jsx +226 -0
  51. package/dist/components/product-demo/DemoWindow.d.ts +17 -0
  52. package/dist/components/product-demo/DemoWindow.d.ts.map +1 -0
  53. package/dist/components/product-demo/DemoWindow.jsx +57 -0
  54. package/dist/components/product-demo/KnowledgePanel.d.ts +7 -0
  55. package/dist/components/product-demo/KnowledgePanel.d.ts.map +1 -0
  56. package/dist/components/product-demo/KnowledgePanel.jsx +73 -0
  57. package/dist/components/product-demo/RunConsolePanel.d.ts +7 -0
  58. package/dist/components/product-demo/RunConsolePanel.d.ts.map +1 -0
  59. package/dist/components/product-demo/RunConsolePanel.jsx +85 -0
  60. package/dist/components/product-demo/WorkflowStudioPanel.d.ts +7 -0
  61. package/dist/components/product-demo/WorkflowStudioPanel.d.ts.map +1 -0
  62. package/dist/components/product-demo/WorkflowStudioPanel.jsx +108 -0
  63. package/dist/components/product-demo/types.d.ts +162 -0
  64. package/dist/components/product-demo/types.d.ts.map +1 -0
  65. package/dist/components/product-demo/types.js +3 -0
  66. package/dist-types/components/About.d.ts.map +1 -1
  67. package/dist-types/components/CTA.d.ts.map +1 -1
  68. package/dist-types/components/Contact.d.ts.map +1 -1
  69. package/dist-types/components/FAQ.d.ts.map +1 -1
  70. package/dist-types/components/Features.d.ts.map +1 -1
  71. package/dist-types/components/Footer.d.ts +3 -0
  72. package/dist-types/components/Footer.d.ts.map +1 -1
  73. package/dist-types/components/HeroMotion.d.ts.map +1 -1
  74. package/dist-types/components/HeroOverlay.d.ts.map +1 -1
  75. package/dist-types/components/HeroProductDemo.d.ts +54 -0
  76. package/dist-types/components/HeroProductDemo.d.ts.map +1 -0
  77. package/dist-types/components/HeroSplit.d.ts.map +1 -1
  78. package/dist-types/components/Navbar.d.ts.map +1 -1
  79. package/dist-types/components/Newsletter.d.ts +3 -2
  80. package/dist-types/components/Newsletter.d.ts.map +1 -1
  81. package/dist-types/components/PortfolioSimple.d.ts.map +1 -1
  82. package/dist-types/components/Pricing.d.ts.map +1 -1
  83. package/dist-types/components/ProcessTimeline.d.ts.map +1 -1
  84. package/dist-types/components/ServicesGrid.d.ts.map +1 -1
  85. package/dist-types/components/Team.d.ts.map +1 -1
  86. package/dist-types/components/Testimonials.d.ts.map +1 -1
  87. package/dist-types/components/TrustBadges.d.ts.map +1 -1
  88. package/dist-types/components/index.d.ts +1 -0
  89. package/dist-types/components/index.d.ts.map +1 -1
  90. package/dist-types/components/product-demo/ApprovalInboxPanel.d.ts +7 -0
  91. package/dist-types/components/product-demo/ApprovalInboxPanel.d.ts.map +1 -0
  92. package/dist-types/components/product-demo/DemoStage.d.ts +14 -0
  93. package/dist-types/components/product-demo/DemoStage.d.ts.map +1 -0
  94. package/dist-types/components/product-demo/DemoWindow.d.ts +17 -0
  95. package/dist-types/components/product-demo/DemoWindow.d.ts.map +1 -0
  96. package/dist-types/components/product-demo/KnowledgePanel.d.ts +7 -0
  97. package/dist-types/components/product-demo/KnowledgePanel.d.ts.map +1 -0
  98. package/dist-types/components/product-demo/RunConsolePanel.d.ts +7 -0
  99. package/dist-types/components/product-demo/RunConsolePanel.d.ts.map +1 -0
  100. package/dist-types/components/product-demo/WorkflowStudioPanel.d.ts +7 -0
  101. package/dist-types/components/product-demo/WorkflowStudioPanel.d.ts.map +1 -0
  102. package/dist-types/components/product-demo/types.d.ts +162 -0
  103. package/dist-types/components/product-demo/types.d.ts.map +1 -0
  104. package/package.json +2 -2
@@ -1,3 +1,5 @@
1
+ // AUTO-GENERATED from cli/kits/blocks by scripts/sync-kit-to-packages.mjs
2
+ // Do not edit this file directly. Edit the kit source instead.
1
3
  "use client";
2
4
  import React from "react";
3
5
  import Link from "next/link";
@@ -7,7 +9,7 @@ import { cn } from "@nextworks/blocks-core";
7
9
  const defaultChildTransition = {
8
10
  type: "tween",
9
11
  duration: 0.5,
10
- ease: [0.22, 1, 0.36, 1], // smooth easeOut
12
+ ease: [0.22, 1, 0.36, 1],
11
13
  };
12
14
  /**
13
15
  * Motion-first hero with heading/highlight, optional description and CTAs.
@@ -25,9 +27,9 @@ const defaultChildTransition = {
25
27
  * primaryCta={{ label: 'Get Started', href: '#contact' }}
26
28
  * />
27
29
  */
28
- export function HeroMotion({ id, ariaLabel = "Hero section", className, heading = "Supercharge growth with", headingNode, highlight = "AI-powered insights", description = (<>
29
- Real-time trends, accurate user signals, and smarter, data-driven
30
- decisions.
30
+ export function HeroMotion({ id, ariaLabel = "Hero section", className, heading = "Supercharge growth with", headingNode, highlight = "AI-powered insights", description = (<>
31
+ Real-time trends, accurate user signals, and smarter, data-driven
32
+ decisions.
31
33
  </>), primaryCta = { label: "Get Started" }, secondaryCta = { label: "See Demo" }, section = { className: "bg-background relative overflow-hidden" }, container = { className: "mx-auto max-w-7xl px-6 py-24 sm:py-28 lg:py-32" }, content = { className: "mx-auto max-w-3xl text-center" }, headingText = {
32
34
  className: "transform-gpu will-change-transform text-foreground text-4xl font-semibold tracking-tight text-balance sm:text-5xl md:text-6xl",
33
35
  }, highlightText = {
@@ -49,47 +51,47 @@ export function HeroMotion({ id, ariaLabel = "Hero section", className, heading
49
51
  }
50
52
  : { once: true, amount: 0 };
51
53
  const transition = Object.assign(Object.assign({}, defaultChildTransition), ((_e = motionOptions === null || motionOptions === void 0 ? void 0 : motionOptions.transition) !== null && _e !== void 0 ? _e : {}));
52
- return (<section id={id} aria-label={ariaLabel} className={cn(section.className, className)}>
53
- {backgroundNode}
54
- <div className={cn(container.className)}>
55
- <motion.div className={cn(content.className)}>
54
+ return (<section id={id} aria-label={ariaLabel} className={cn(section.className, className)}>
55
+ {backgroundNode}
56
+ <div className={cn(container.className)}>
57
+ <motion.div className={cn(content.className)}>
56
58
  <motion.h1 initial={enableMotion ? { opacity: 0, y: 12 } : { opacity: 1, y: 0 }} whileInView={{ opacity: 1, y: 0 }} viewport={viewport} transition={enableMotion
57
- ? Object.assign(Object.assign({}, transition), { delay: (_f = motionOptions === null || motionOptions === void 0 ? void 0 : motionOptions.headingDelay) !== null && _f !== void 0 ? _f : 0.5 }) : { type: "tween", duration: 0 }} className={cn(headingText.className)}>
58
- {headingNode ? (headingNode) : (<>
59
- {heading}
60
- {highlight ? (<span className={cn(highlightText.className)}>
61
- {" "}
62
- {highlight}
63
- </span>) : null}
64
- </>)}
65
- </motion.h1>
66
-
59
+ ? Object.assign(Object.assign({}, transition), { delay: (_f = motionOptions === null || motionOptions === void 0 ? void 0 : motionOptions.headingDelay) !== null && _f !== void 0 ? _f : 0.5 }) : { type: "tween", duration: 0 }} className={cn(headingText.className)}>
60
+ {headingNode ? (headingNode) : (<>
61
+ {heading}
62
+ {highlight ? (<span className={cn(highlightText.className)}>
63
+ {" "}
64
+ {highlight}
65
+ </span>) : null}
66
+ </>)}
67
+ </motion.h1>
68
+
67
69
  {description ? (<motion.p initial={enableMotion ? { opacity: 0, y: 10 } : { opacity: 1, y: 0 }} whileInView={{ opacity: 1, y: 0 }} viewport={viewport} transition={enableMotion
68
- ? Object.assign(Object.assign({}, transition), { delay: (_g = motionOptions === null || motionOptions === void 0 ? void 0 : motionOptions.descriptionDelay) !== null && _g !== void 0 ? _g : 0.58 }) : { type: "tween", duration: 0 }} className={cn(descriptionText.className)}>
69
- {description}
70
- </motion.p>) : null}
71
-
70
+ ? Object.assign(Object.assign({}, transition), { delay: (_g = motionOptions === null || motionOptions === void 0 ? void 0 : motionOptions.descriptionDelay) !== null && _g !== void 0 ? _g : 0.58 }) : { type: "tween", duration: 0 }} className={cn(descriptionText.className)}>
71
+ {description}
72
+ </motion.p>) : null}
73
+
72
74
  {(primaryCta || secondaryCta) && (<motion.div initial={enableMotion ? { opacity: 0, y: 10 } : { opacity: 1, y: 0 }} whileInView={{ opacity: 1, y: 0 }} viewport={viewport} transition={enableMotion
73
- ? Object.assign(Object.assign({}, transition), { delay: (_h = motionOptions === null || motionOptions === void 0 ? void 0 : motionOptions.actionsDelay) !== null && _h !== void 0 ? _h : 0.66 }) : { type: "tween", duration: 0 }} className={cn(actions.className)}>
75
+ ? Object.assign(Object.assign({}, transition), { delay: (_h = motionOptions === null || motionOptions === void 0 ? void 0 : motionOptions.actionsDelay) !== null && _h !== void 0 ? _h : 0.66 }) : { type: "tween", duration: 0 }} className={cn(actions.className)}>
74
76
  {primaryCta &&
75
- (primaryCta.href ? (<Button asChild unstyled={primaryButtonStyle.unstyled} variant={primaryButtonStyle.variant} size={primaryButtonStyle.size} className={cn(primaryButtonStyle.className)} style={primaryButtonStyle.style}>
76
- <Link href={primaryCta.href} aria-label={primaryCta.label}>
77
- {primaryCta.label}
78
- </Link>
79
- </Button>) : (<Button variant={primaryButtonStyle.variant} size={primaryButtonStyle.size} className={cn(primaryButtonStyle.className)} unstyled={primaryButtonStyle.unstyled} style={primaryButtonStyle.style} aria-label={primaryCta.label}>
80
- {primaryCta.label}
81
- </Button>))}
82
-
77
+ (primaryCta.href ? (<Button asChild unstyled={primaryButtonStyle.unstyled} variant={primaryButtonStyle.variant} size={primaryButtonStyle.size} className={cn(primaryButtonStyle.className)} style={primaryButtonStyle.style}>
78
+ <Link href={primaryCta.href} aria-label={primaryCta.label}>
79
+ {primaryCta.label}
80
+ </Link>
81
+ </Button>) : (<Button variant={primaryButtonStyle.variant} size={primaryButtonStyle.size} className={cn(primaryButtonStyle.className)} unstyled={primaryButtonStyle.unstyled} style={primaryButtonStyle.style} aria-label={primaryCta.label}>
82
+ {primaryCta.label}
83
+ </Button>))}
84
+
83
85
  {secondaryCta &&
84
- (secondaryCta.href ? (<Button asChild unstyled={secondaryButtonStyle.unstyled} variant={secondaryButtonStyle.variant} size={secondaryButtonStyle.size} className={cn(secondaryButtonStyle.className)} style={secondaryButtonStyle.style}>
85
- <Link href={secondaryCta.href} aria-label={secondaryCta.label}>
86
- {secondaryCta.label}
87
- </Link>
88
- </Button>) : (<Button variant={secondaryButtonStyle.variant} size={secondaryButtonStyle.size} className={cn(secondaryButtonStyle.className)} unstyled={secondaryButtonStyle.unstyled} style={secondaryButtonStyle.style} aria-label={secondaryCta.label}>
89
- {secondaryCta.label}
90
- </Button>))}
91
- </motion.div>)}
92
- </motion.div>
93
- </div>
86
+ (secondaryCta.href ? (<Button asChild unstyled={secondaryButtonStyle.unstyled} variant={secondaryButtonStyle.variant} size={secondaryButtonStyle.size} className={cn(secondaryButtonStyle.className)} style={secondaryButtonStyle.style}>
87
+ <Link href={secondaryCta.href} aria-label={secondaryCta.label}>
88
+ {secondaryCta.label}
89
+ </Link>
90
+ </Button>) : (<Button variant={secondaryButtonStyle.variant} size={secondaryButtonStyle.size} className={cn(secondaryButtonStyle.className)} unstyled={secondaryButtonStyle.unstyled} style={secondaryButtonStyle.style} aria-label={secondaryCta.label}>
91
+ {secondaryCta.label}
92
+ </Button>))}
93
+ </motion.div>)}
94
+ </motion.div>
95
+ </div>
94
96
  </section>);
95
97
  }
@@ -1 +1 @@
1
- {"version":3,"file":"HeroOverlay.d.ts","sourceRoot":"","sources":["../../src/components/HeroOverlay.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HeroOverlay.d.ts","sourceRoot":"","sources":["../../src/components/HeroOverlay.tsx"],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ // AUTO-GENERATED from cli/kits/blocks by scripts/sync-kit-to-packages.mjs
2
+ // Do not edit this file directly. Edit the kit source instead.
1
3
  "use client";
2
4
  import React from "react";
3
5
  import Image from "next/image";
@@ -100,42 +102,42 @@ ctaContainer = {
100
102
  const mergedCta1 = Object.assign(Object.assign(Object.assign({}, defaultCta1), (cta1 !== null && cta1 !== void 0 ? cta1 : {})), { className: cn(defaultCta1.className, cta1 === null || cta1 === void 0 ? void 0 : cta1.className, buttonLift) });
101
103
  const mergedCta2 = cta2 || ctaBtn2Label || ctaBtn2Href
102
104
  ? Object.assign(Object.assign(Object.assign({}, defaultCta2), (cta2 !== null && cta2 !== void 0 ? cta2 : {})), { className: cn(defaultCta2.className, cta2 === null || cta2 === void 0 ? void 0 : cta2.className, buttonLift) }) : undefined;
103
- // ButtonLift defined above
105
+ // buttonLift defined above
104
106
  // Merge alias section.className with container.className
105
107
  const finalContainerClass = cn(container.className, section === null || section === void 0 ? void 0 : section.className);
106
108
  const showCta2 = !!(mergedCta2 === null || mergedCta2 === void 0 ? void 0 : mergedCta2.label);
107
- return (<section id={id} className={cn(finalContainerClass, className)} aria-label={ariaLabel}>
108
- <div className={imageContainer.className}>
109
+ return (<section id={id} className={cn(finalContainerClass, className)} aria-label={ariaLabel}>
110
+ <div className={imageContainer.className}>
109
111
  <Image src={effImage.src} alt={effImage.alt} fill sizes="100vw" quality={75} priority className={effImage.className} style={{
110
112
  objectFit: effImage.objectFit,
111
113
  objectPosition: effImage.objectPosition,
112
- }}/>
113
- </div>
114
-
115
- <div className={overlay.className} style={{ backgroundColor: overlayRGBA }} aria-hidden/>
116
- <div className={cn(overlay.className, "hidden dark:block")} style={{ backgroundColor: overlayDarkRGBA }} aria-hidden/>
117
-
118
- <div className={content.className}>
119
- <div className={textContainer.className}>
120
- <h1 className={normalizedHeading.className}>
121
- {normalizedHeading.text}
122
- </h1>
123
- <p className={normalizedSubheading.className}>
124
- {normalizedSubheading.text}
125
- </p>
126
- <div className={ctaContainer.className}>
127
- {mergedCta1.label && (<Button asChild variant={mergedCta1.variant} size={mergedCta1.size} className={mergedCta1.className} unstyled={mergedCta1.unstyled} style={mergedCta1.style}>
128
- <Link href={mergedCta1.href || "#"} aria-label={mergedCta1.label}>
129
- {mergedCta1.label}
130
- </Link>
131
- </Button>)}
132
- {showCta2 && (<Button asChild variant={mergedCta2.variant} size={mergedCta2.size} className={mergedCta2.className} unstyled={mergedCta2.unstyled} style={mergedCta2.style}>
133
- <Link href={mergedCta2.href || "#"} aria-label={mergedCta2.label}>
134
- {mergedCta2.label}
135
- </Link>
136
- </Button>)}
137
- </div>
138
- </div>
139
- </div>
114
+ }}/>
115
+ </div>
116
+
117
+ <div className={overlay.className} style={{ backgroundColor: overlayRGBA }} aria-hidden/>
118
+ <div className={cn(overlay.className, "hidden dark:block")} style={{ backgroundColor: overlayDarkRGBA }} aria-hidden/>
119
+
120
+ <div className={content.className}>
121
+ <div className={textContainer.className}>
122
+ <h1 className={normalizedHeading.className}>
123
+ {normalizedHeading.text}
124
+ </h1>
125
+ <p className={normalizedSubheading.className}>
126
+ {normalizedSubheading.text}
127
+ </p>
128
+ <div className={ctaContainer.className}>
129
+ {mergedCta1.label && (<Button asChild variant={mergedCta1.variant} size={mergedCta1.size} className={mergedCta1.className} unstyled={mergedCta1.unstyled} style={mergedCta1.style}>
130
+ <Link href={mergedCta1.href || "#"} aria-label={mergedCta1.label}>
131
+ {mergedCta1.label}
132
+ </Link>
133
+ </Button>)}
134
+ {showCta2 && (<Button asChild variant={mergedCta2.variant} size={mergedCta2.size} className={mergedCta2.className} unstyled={mergedCta2.unstyled} style={mergedCta2.style}>
135
+ <Link href={mergedCta2.href || "#"} aria-label={mergedCta2.label}>
136
+ {mergedCta2.label}
137
+ </Link>
138
+ </Button>)}
139
+ </div>
140
+ </div>
141
+ </div>
140
142
  </section>);
141
143
  }
@@ -0,0 +1,54 @@
1
+ import React from "react";
2
+ import type { ProductDemoScenario } from "./product-demo/types";
3
+ export interface HeroProductDemoTextContent {
4
+ text?: string;
5
+ className?: string;
6
+ }
7
+ export interface HeroProductDemoCta {
8
+ label?: string;
9
+ href?: string;
10
+ variant?: "default" | "destructive" | "outline" | "secondary" | "ghost" | "link";
11
+ size?: "default" | "sm" | "lg" | "icon";
12
+ className?: string;
13
+ unstyled?: boolean;
14
+ style?: React.CSSProperties;
15
+ }
16
+ export interface HeroProductDemoStageConfig {
17
+ scenarios?: ProductDemoScenario[];
18
+ initialScenarioIndex?: number;
19
+ activeScenarioKey?: string;
20
+ autoCycle?: boolean;
21
+ cycleIntervalMs?: number;
22
+ className?: string;
23
+ }
24
+ export interface HeroProductDemoSlots {
25
+ section?: {
26
+ className?: string;
27
+ };
28
+ container?: {
29
+ className?: string;
30
+ };
31
+ textContainer?: {
32
+ className?: string;
33
+ };
34
+ demoContainer?: {
35
+ className?: string;
36
+ };
37
+ buttonsContainer?: {
38
+ className?: string;
39
+ };
40
+ }
41
+ export interface HeroProductDemoProps extends HeroProductDemoSlots {
42
+ id?: string;
43
+ className?: string;
44
+ heading?: string | HeroProductDemoTextContent;
45
+ subheading?: string | HeroProductDemoTextContent;
46
+ cta1?: HeroProductDemoCta;
47
+ cta2?: HeroProductDemoCta;
48
+ stage?: HeroProductDemoStageConfig;
49
+ demo?: React.ReactNode;
50
+ ariaLabel?: string;
51
+ enableMotion?: boolean;
52
+ }
53
+ export declare function HeroProductDemo({ id, className, heading, subheading, cta1, cta2, stage, demo, section, container, textContainer, demoContainer, buttonsContainer, ariaLabel, enableMotion, }: HeroProductDemoProps): React.JSX.Element;
54
+ //# sourceMappingURL=HeroProductDemo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeroProductDemo.d.ts","sourceRoot":"","sources":["../../src/components/HeroProductDemo.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAEhE,MAAM,WAAW,0BAA0B;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,kBAAkB;IACjC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EACJ,SAAS,GACT,aAAa,GACb,SAAS,GACT,WAAW,GACX,OAAO,GACP,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;IACxC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;CAC7B;AAED,MAAM,WAAW,0BAA0B;IACzC,SAAS,CAAC,EAAE,mBAAmB,EAAE,CAAC;IAClC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjC,SAAS,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnC,aAAa,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACvC,aAAa,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACvC,gBAAgB,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CAC3C;AAED,MAAM,WAAW,oBAAqB,SAAQ,oBAAoB;IAChE,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,MAAM,GAAG,0BAA0B,CAAC;IAC9C,UAAU,CAAC,EAAE,MAAM,GAAG,0BAA0B,CAAC;IACjD,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B,IAAI,CAAC,EAAE,kBAAkB,CAAC;IAC1B,KAAK,CAAC,EAAE,0BAA0B,CAAC;IACnC,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAgBD,wBAAgB,eAAe,CAAC,EAC9B,EAAE,EACF,SAAS,EACT,OAAO,EACP,UAAU,EACV,IAAI,EACJ,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,OAAO,EACP,SAAS,EACT,aAAa,EACb,aAAa,EACb,gBAAgB,EAChB,SAAuC,EACvC,YAAmB,GACpB,EAAE,oBAAoB,qBAiJtB"}
@@ -0,0 +1,81 @@
1
+ // AUTO-GENERATED from cli/kits/blocks by scripts/sync-kit-to-packages.mjs
2
+ // Do not edit this file directly. Edit the kit source instead.
3
+ "use client";
4
+ import React from "react";
5
+ import Link from "next/link";
6
+ import { Button } from "@nextworks/blocks-core";
7
+ import { cn } from "@nextworks/blocks-core";
8
+ import { DemoStage } from "./product-demo/DemoStage";
9
+ function normalizeTextContent(value, defaults) {
10
+ var _a;
11
+ if (typeof value === "string") {
12
+ return { text: value, className: defaults.className };
13
+ }
14
+ return {
15
+ text: (_a = value === null || value === void 0 ? void 0 : value.text) !== null && _a !== void 0 ? _a : defaults.text,
16
+ className: cn(defaults.className, value === null || value === void 0 ? void 0 : value.className),
17
+ };
18
+ }
19
+ export function HeroProductDemo({ id, className, heading, subheading, cta1, cta2, stage, demo, section, container, textContainer, demoContainer, buttonsContainer, ariaLabel = "Product demo hero section", enableMotion = true, }) {
20
+ const defaultHeading = {
21
+ text: "Show your product in motion",
22
+ className: "text-4xl font-bold leading-tight tracking-tight text-foreground sm:text-5xl lg:text-6xl",
23
+ };
24
+ const defaultSubheading = {
25
+ text: "Pair clear positioning with a layered product demo that makes the workflow feel real before anyone clicks.",
26
+ className: "mt-6 max-w-2xl text-base text-muted-foreground sm:text-lg lg:text-xl",
27
+ };
28
+ const normalizedHeading = normalizeTextContent(heading, defaultHeading);
29
+ const normalizedSubheading = normalizeTextContent(subheading, defaultSubheading);
30
+ const buttonLift = enableMotion
31
+ ? "transition-all duration-200 hover:-translate-y-0.5"
32
+ : "transition-none hover:!translate-y-0";
33
+ const defaultCta1 = {
34
+ label: "Get Started",
35
+ href: "#contact",
36
+ variant: "default",
37
+ size: "lg",
38
+ className: "shadow-lg hover:shadow-xl",
39
+ };
40
+ const mergedCta1 = Object.assign(Object.assign(Object.assign({}, defaultCta1), (cta1 !== null && cta1 !== void 0 ? cta1 : {})), { className: cn(defaultCta1.className, cta1 === null || cta1 === void 0 ? void 0 : cta1.className, buttonLift) });
41
+ const defaultCta2 = {
42
+ label: "Learn More",
43
+ href: "#",
44
+ variant: "outline",
45
+ size: "lg",
46
+ className: "",
47
+ };
48
+ const mergedCta2 = cta2
49
+ ? Object.assign(Object.assign(Object.assign({}, defaultCta2), cta2), { className: cn(defaultCta2.className, cta2.className, buttonLift) }) : undefined;
50
+ return (<section id={id} className={cn("relative overflow-hidden px-6 py-16 sm:px-8 lg:px-10 lg:py-24", section === null || section === void 0 ? void 0 : section.className, className)} aria-label={ariaLabel}>
51
+ <div className={cn("mx-auto grid max-w-7xl items-center gap-12 lg:grid-cols-[minmax(0,0.84fr)_minmax(0,1.16fr)] lg:gap-12 xl:grid-cols-[minmax(0,0.8fr)_minmax(0,1.2fr)]", container === null || container === void 0 ? void 0 : container.className)}>
52
+ <div className={cn("relative z-10 flex flex-col items-start", textContainer === null || textContainer === void 0 ? void 0 : textContainer.className)}>
53
+ <h1 className={cn(normalizedHeading.className)}>
54
+ {normalizedHeading.text}
55
+ </h1>
56
+
57
+ <p className={cn(normalizedSubheading.className)}>
58
+ {normalizedSubheading.text}
59
+ </p>
60
+
61
+ <div className={cn("mt-8 flex flex-col items-start gap-4 sm:flex-row sm:items-center", buttonsContainer === null || buttonsContainer === void 0 ? void 0 : buttonsContainer.className)}>
62
+ {mergedCta1.label && (<Button asChild variant={mergedCta1.variant} size={mergedCta1.size} className={mergedCta1.className} unstyled={mergedCta1.unstyled} style={mergedCta1.style}>
63
+ <Link href={mergedCta1.href || "#"} aria-label={mergedCta1.label}>
64
+ {mergedCta1.label}
65
+ </Link>
66
+ </Button>)}
67
+
68
+ {(mergedCta2 === null || mergedCta2 === void 0 ? void 0 : mergedCta2.label) && (<Button asChild variant={mergedCta2.variant} size={mergedCta2.size} className={mergedCta2.className} unstyled={mergedCta2.unstyled} style={mergedCta2.style}>
69
+ <Link href={mergedCta2.href || "#"} aria-label={mergedCta2.label}>
70
+ {mergedCta2.label}
71
+ </Link>
72
+ </Button>)}
73
+ </div>
74
+ </div>
75
+
76
+ <div className={cn("relative", demoContainer === null || demoContainer === void 0 ? void 0 : demoContainer.className)}>
77
+ {demo !== null && demo !== void 0 ? demo : (<DemoStage scenarios={stage === null || stage === void 0 ? void 0 : stage.scenarios} initialScenarioIndex={stage === null || stage === void 0 ? void 0 : stage.initialScenarioIndex} activeScenarioKey={stage === null || stage === void 0 ? void 0 : stage.activeScenarioKey} autoCycle={stage === null || stage === void 0 ? void 0 : stage.autoCycle} cycleIntervalMs={stage === null || stage === void 0 ? void 0 : stage.cycleIntervalMs} className={stage === null || stage === void 0 ? void 0 : stage.className} enableMotion={enableMotion} ariaLabel="Layered product demo"/>)}
78
+ </div>
79
+ </div>
80
+ </section>);
81
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"HeroSplit.d.ts","sourceRoot":"","sources":["../../src/components/HeroSplit.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HeroSplit.d.ts","sourceRoot":"","sources":["../../src/components/HeroSplit.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B;;;;;;;;;;GAUG;AACH,UAAU,cAAc;IACtB,wDAAwD;IACxD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,4BAA4B;IAC5B,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjC,uDAAuD;IACvD,OAAO,CAAC,EAAE,MAAM,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzD,0DAA0D;IAC1D,UAAU,CAAC,EAAE,MAAM,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5D,gCAAgC;IAChC,IAAI,CAAC,EAAE;QACL,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EACJ,SAAS,GACT,aAAa,GACb,SAAS,GACT,WAAW,GACX,OAAO,GACP,MAAM,CAAC;QACX,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;QACxC,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,wFAAwF;QACxF,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,gDAAgD;QAChD,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;KAC7B,CAAC;IACF,kCAAkC;IAClC,IAAI,CAAC,EAAE;QACL,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,CAAC,EACJ,SAAS,GACT,aAAa,GACb,SAAS,GACT,WAAW,GACX,OAAO,GACP,MAAM,CAAC;QACX,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;QACxC,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,wFAAwF;QACxF,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,gDAAgD;QAChD,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;KAC7B,CAAC;IACF,0BAA0B;IAC1B,KAAK,CAAC,EAAE;QAAE,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,GAAG,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC3D,2BAA2B;IAC3B,cAAc,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACxC,0BAA0B;IAC1B,aAAa,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACvC,6BAA6B;IAC7B,gBAAgB,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,kEAAkE;IAClE,SAAS,CAAC,EAAE,MAAM,GAAG,QAAQ,GAAG,OAAO,CAAC;IACxC,wDAAwD;IACxD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,+DAA+D;IAC/D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kEAAkE;IAClE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,oHAAoH;IACpH,WAAW,CAAC,EAAE,QAAQ,GAAG,YAAY,CAAC;CACvC;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,CAAC,EACxB,EAAE,EACF,SAAS,EACT,OAAO,EACP,UAAU,EACV,OAAO,EACP,IAAI,EACJ,IAAI,EACJ,KAIC,EACD,cAAc,EACd,aAA2C,EAC3C,gBAAwE,EACxE,SAAoB,EACpB,QAAQ,EACR,SAA0B,EAC1B,YAAmB,EACnB,WAA0B,GAC3B,EAAE,cAAc,qBA0OhB"}
@@ -1,3 +1,5 @@
1
+ // AUTO-GENERATED from cli/kits/blocks by scripts/sync-kit-to-packages.mjs
2
+ // Do not edit this file directly. Edit the kit source instead.
1
3
  "use client";
2
4
  import React from "react";
3
5
  import Image from "next/image";
@@ -89,46 +91,46 @@ export function HeroSplit({ id, className, heading, subheading, section, cta1, c
89
91
  ? defaultImageContainerFull
90
92
  : defaultImageContainerPadded;
91
93
  const finalImageContainerClass = cn(baseImageContainerClass, imageContainer === null || imageContainer === void 0 ? void 0 : imageContainer.className);
92
- // Note: Avoid overriding the incoming image.className so callers can control object-fit (e.g., cover vs contain).
94
+ // Note: Don’t override `image.className` here—leave object-fit (e.g. `object-cover` / `object-contain`) up to the importing component.
93
95
  const finalImageClass = cn(image === null || image === void 0 ? void 0 : image.className, imageLayout === "full-bleed"
94
96
  ? "object-cover object-center md:object-right"
95
97
  : "object-contain object-center");
96
- return (<section id={id} className={cn(finalSectionClass, className)} aria-label={ariaLabel}>
98
+ return (<section id={id} className={cn(finalSectionClass, className)} aria-label={ariaLabel}>
97
99
  <div className={cn("flex flex-col items-stretch", imageLayout === "full-bleed"
98
100
  ? "md:block"
99
- : "md:flex-row md:items-start")}>
100
- {/* Text container - takes up left side on large screens */}
101
+ : "md:flex-row md:items-start")}>
102
+ {/* Text container - takes up left side on large screens */}
101
103
  <div className={cn("w-full", imageLayout === "full-bleed" &&
102
- "relative z-10 md:w-1/2 md:px-8 md:py-12", textContainer.className)}>
103
- <div className={cn("flex flex-col items-center", lgItemsAlignClasses[textAlign])}>
104
- <h1 className={cn("text-center", lgTextAlignClasses[textAlign], normalizedHeading.className)}>
105
- {normalizedHeading.text}
106
- </h1>
107
-
108
- <p className={cn("text-center", lgTextAlignClasses[textAlign], normalizedSubheading.className)}>
109
- {normalizedSubheading.text}
110
- </p>
111
-
112
- <div className={cn("flex flex-col items-center justify-center gap-4 sm:flex-row", lgJustifyAlignClasses[textAlign], lgItemsAlignClasses[textAlign], buttonsContainer.className)}>
113
- {mergedCta1.label && (<Button asChild variant={mergedCta1.variant} size={mergedCta1.size} className={mergedCta1.className} unstyled={mergedCta1.unstyled} style={mergedCta1.style}>
114
- <Link href={mergedCta1.href || "#"} aria-label={mergedCta1.label}>
115
- {mergedCta1.label}
116
- </Link>
117
- </Button>)}
118
-
119
- {(mergedCta2 === null || mergedCta2 === void 0 ? void 0 : mergedCta2.label) && (<Button asChild variant={mergedCta2.variant} size={mergedCta2.size} className={mergedCta2.className} unstyled={mergedCta2.unstyled} style={mergedCta2.style}>
120
- <Link href={mergedCta2.href || "#"} aria-label={mergedCta2.label}>
121
- {mergedCta2.label}
122
- </Link>
123
- </Button>)}
124
- </div>
125
- </div>
126
- </div>
127
-
128
- {/* Image container - absolutely positioned on right side for full-bleed */}
129
- <div className={cn(finalImageContainerClass)}>
130
- {(image === null || image === void 0 ? void 0 : image.src) ? (<Image priority fetchPriority="high" src={image.src} alt={image.alt || "Hero image"} className={finalImageClass} fill sizes="(min-width: 768px) 50vw, 100vw" quality={75}/>) : (<div className="absolute inset-0">{fallback || null}</div>)}
131
- </div>
132
- </div>
104
+ "relative z-10 md:w-1/2 md:px-8 md:py-12", textContainer.className)}>
105
+ <div className={cn("flex flex-col items-center", lgItemsAlignClasses[textAlign])}>
106
+ <h1 className={cn("text-center", lgTextAlignClasses[textAlign], normalizedHeading.className)}>
107
+ {normalizedHeading.text}
108
+ </h1>
109
+
110
+ <p className={cn("text-center", lgTextAlignClasses[textAlign], normalizedSubheading.className)}>
111
+ {normalizedSubheading.text}
112
+ </p>
113
+
114
+ <div className={cn("flex flex-col items-center justify-center gap-4 sm:flex-row", lgJustifyAlignClasses[textAlign], lgItemsAlignClasses[textAlign], buttonsContainer.className)}>
115
+ {mergedCta1.label && (<Button asChild variant={mergedCta1.variant} size={mergedCta1.size} className={mergedCta1.className} unstyled={mergedCta1.unstyled} style={mergedCta1.style}>
116
+ <Link href={mergedCta1.href || "#"} aria-label={mergedCta1.label}>
117
+ {mergedCta1.label}
118
+ </Link>
119
+ </Button>)}
120
+
121
+ {(mergedCta2 === null || mergedCta2 === void 0 ? void 0 : mergedCta2.label) && (<Button asChild variant={mergedCta2.variant} size={mergedCta2.size} className={mergedCta2.className} unstyled={mergedCta2.unstyled} style={mergedCta2.style}>
122
+ <Link href={mergedCta2.href || "#"} aria-label={mergedCta2.label}>
123
+ {mergedCta2.label}
124
+ </Link>
125
+ </Button>)}
126
+ </div>
127
+ </div>
128
+ </div>
129
+
130
+ {/* Image container - absolutely positioned on right side for full-bleed */}
131
+ <div className={cn(finalImageContainerClass)}>
132
+ {(image === null || image === void 0 ? void 0 : image.src) ? (<Image priority fetchPriority="high" src={image.src} alt={image.alt || "Hero image"} className={finalImageClass} fill sizes="(min-width: 768px) 50vw, 100vw" quality={75}/>) : (<div className="absolute inset-0">{fallback || null}</div>)}
133
+ </div>
134
+ </div>
133
135
  </section>);
134
136
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Navbar.d.ts","sourceRoot":"","sources":["../../src/components/Navbar.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Navbar.d.ts","sourceRoot":"","sources":["../../src/components/Navbar.tsx"],"names":[],"mappings":"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"}
@@ -1,9 +1,11 @@
1
+ // AUTO-GENERATED from cli/kits/blocks by scripts/sync-kit-to-packages.mjs
2
+ // Do not edit this file directly. Edit the kit source instead.
1
3
  // components/sections/Navbar.tsx
2
4
  "use client";
3
5
  import React, { useEffect, useRef, useState } from "react";
4
6
  import Link from "next/link";
5
7
  import { Button } from "@nextworks/blocks-core";
6
- import { ThemeToggle } from "@nextworks/blocks-core";
8
+ import { ThemeToggle, } from "@nextworks/blocks-core";
7
9
  import { cn } from "@nextworks/blocks-core";
8
10
  import { Menu, X } from "lucide-react";
9
11
  const defaultMenuItems = [
@@ -38,7 +40,7 @@ export function Navbar({ id, navHeight = "h-16", brand = "Brand Name", brandNode
38
40
  }, mobileMenu = {
39
41
  className: "border-t border-border",
40
42
  },
41
- /* New slot defaults */
43
+ /* Slot defaults */
42
44
  container = { className: "" }, brandWrapper = { className: "" }, desktopMenu = {
43
45
  className: "hidden items-center space-x-1 lg:flex lg:space-x-6",
44
46
  }, toggleButton = {
@@ -68,57 +70,55 @@ container = { className: "" }, brandWrapper = { className: "" }, desktopMenu = {
68
70
  document.body.style.overflow = originalOverflow || "";
69
71
  };
70
72
  }, [isMobileMenuOpen]);
71
- return (<nav id={id} className={cn("w-full", sticky && "sticky top-0 z-50", nav.className, className)} aria-label={ariaLabel}>
72
- <div ref={headerRef} className={cn("flex items-center justify-between px-4 py-2", navHeight, container.className)}>
73
- <div className={cn("mr-2 flex items-center gap-2 pl-2", brandWrapper.className)}>
74
- {brandNode}
75
- {brand && <h1 className={cn(brandText.className)}>{brand}</h1>}
76
- </div>
77
-
78
- <button aria-label="Toggle mobile menu" aria-expanded={isMobileMenuOpen} aria-controls={mobileMenuId} className={cn("lg:hidden", toggleButton.className)}
79
- // className={cn("lg:hidden", toggleButton.className)}
80
- onClick={() => setIsMobileMenuOpen(!isMobileMenuOpen)}>
81
- {isMobileMenuOpen ? (<X className="h-6 w-6"/>) : (<Menu className="h-6 w-6"/>)}
82
- </button>
83
-
84
- <div className={cn("hidden md:flex", desktopMenu.className)}>
85
- {menuItems.map((item) => (<Link key={item.label} href={item.href} className={cn("rounded-md px-2 py-2 transition-colors duration-200 lg:px-4", "focus:ring-ring focus:ring-2 focus:ring-offset-2 focus:outline-none", "focus-visible:ring-[var(--navbar-ring)]", links.className)}>
86
- {item.label}
87
- </Link>))}
88
-
89
- {showColorModeToggle && (<div className={cn(colorModeWrapper.className)}>
90
- <ThemeToggle {...themeToggle}/>
91
- </div>)}
92
-
93
- {ctaButton && (<Button asChild unstyled={ctaButtonStyle.unstyled} variant={ctaButtonStyle.variant} size={ctaButtonStyle.size} className={cn(ctaButtonWrapper.className, ctaButtonStyle.className)} style={ctaButtonStyle.style}>
94
- <Link href={ctaButton.href} aria-label={ctaButton.label}>
95
- {ctaButton.label}
96
- </Link>
97
- </Button>)}
98
- </div>
99
- </div>
100
-
73
+ return (<nav id={id} className={cn("w-full", sticky && "sticky top-0 z-50", nav.className, className)} aria-label={ariaLabel}>
74
+ <div ref={headerRef} className={cn("flex items-center justify-between px-4 py-2", navHeight, container.className)}>
75
+ <div className={cn("mr-2 flex items-center gap-2 pl-2", brandWrapper.className)}>
76
+ {brandNode}
77
+ {brand && <h1 className={cn(brandText.className)}>{brand}</h1>}
78
+ </div>
79
+
80
+ <button aria-label="Toggle mobile menu" aria-expanded={isMobileMenuOpen} aria-controls={mobileMenuId} className={cn("lg:hidden", toggleButton.className)} onClick={() => setIsMobileMenuOpen(!isMobileMenuOpen)}>
81
+ {isMobileMenuOpen ? (<X className="h-6 w-6"/>) : (<Menu className="h-6 w-6"/>)}
82
+ </button>
83
+
84
+ <div className={cn("hidden md:flex", desktopMenu.className)}>
85
+ {menuItems.map((item) => (<Link key={item.label} href={item.href} className={cn("rounded-md px-2 py-2 transition-colors duration-200 lg:px-4", "focus:ring-ring focus:ring-2 focus:ring-offset-2 focus:outline-none", "focus-visible:ring-[var(--navbar-ring)]", links.className)}>
86
+ {item.label}
87
+ </Link>))}
88
+
89
+ {showColorModeToggle && (<div className={cn(colorModeWrapper.className)}>
90
+ <ThemeToggle {...themeToggle}/>
91
+ </div>)}
92
+
93
+ {ctaButton && (<Button asChild unstyled={ctaButtonStyle.unstyled} variant={ctaButtonStyle.variant} size={ctaButtonStyle.size} className={cn(ctaButtonWrapper.className, ctaButtonStyle.className)} style={ctaButtonStyle.style}>
94
+ <Link href={ctaButton.href} aria-label={ctaButton.label}>
95
+ {ctaButton.label}
96
+ </Link>
97
+ </Button>)}
98
+ </div>
99
+ </div>
100
+
101
101
  {isMobileMenuOpen && (<div id={mobileMenuId} className={cn("md:hidden", "overflow-y-auto overscroll-y-contain", nav.className, mobileMenu.className)} style={{
102
102
  maxHeight: `calc(100dvh - ${headerHeightPx}px)`,
103
103
  WebkitOverflowScrolling: "touch",
104
- }}>
105
- <div className={cn(mobileMenuInner.className)}>
106
- {menuItems.map((item) => (<Link key={item.label} href={item.href} className={cn("block w-full rounded-md px-2 py-4 text-center transition-colors duration-200", mobileLinks.className, "focus:ring-ring focus:ring-2 focus:ring-offset-2 focus:outline-none", "focus-visible:ring-[var(--navbar-ring)]", links.className)} onClick={() => setIsMobileMenuOpen(false)}>
107
- {item.label}
108
- </Link>))}
109
-
110
- {showColorModeToggle && (<div className="flex w-full justify-center pt-4">
111
- <ThemeToggle {...themeToggle}/>
112
- </div>)}
113
-
114
- {ctaButton && (<div className="flex w-full justify-center pt-6">
115
- <Button asChild unstyled={ctaButtonStyle.unstyled} variant={ctaButtonStyle.variant} size={ctaButtonStyle.size} className={cn("w-full max-w-xs", ctaButtonStyle.className)} style={ctaButtonStyle.style}>
116
- <Link href={ctaButton.href} aria-label={ctaButton.label}>
117
- {ctaButton.label}
118
- </Link>
119
- </Button>
120
- </div>)}
121
- </div>
122
- </div>)}
104
+ }}>
105
+ <div className={cn(mobileMenuInner.className)}>
106
+ {menuItems.map((item) => (<Link key={item.label} href={item.href} className={cn("block w-full rounded-md px-2 py-4 text-center transition-colors duration-200", mobileLinks.className, "focus:ring-ring focus:ring-2 focus:ring-offset-2 focus:outline-none", "focus-visible:ring-[var(--navbar-ring)]", links.className)} onClick={() => setIsMobileMenuOpen(false)}>
107
+ {item.label}
108
+ </Link>))}
109
+
110
+ {showColorModeToggle && (<div className="flex w-full justify-center pt-4">
111
+ <ThemeToggle {...themeToggle}/>
112
+ </div>)}
113
+
114
+ {ctaButton && (<div className="flex w-full justify-center pt-6">
115
+ <Button asChild unstyled={ctaButtonStyle.unstyled} variant={ctaButtonStyle.variant} size={ctaButtonStyle.size} className={cn("w-full max-w-xs", ctaButtonStyle.className)} style={ctaButtonStyle.style}>
116
+ <Link href={ctaButton.href} aria-label={ctaButton.label}>
117
+ {ctaButton.label}
118
+ </Link>
119
+ </Button>
120
+ </div>)}
121
+ </div>
122
+ </div>)}
123
123
  </nav>);
124
124
  }
@@ -1,4 +1,5 @@
1
1
  import React from "react";
2
+ import { Button } from "@nextworks/blocks-core";
2
3
  /**
3
4
  * Props for a compact newsletter/signup block.
4
5
  *
@@ -40,8 +41,8 @@ export interface NewsletterProps {
40
41
  };
41
42
  button?: {
42
43
  className?: string;
43
- variant?: any;
44
- size?: any;
44
+ variant?: React.ComponentProps<typeof Button>["variant"];
45
+ size?: React.ComponentProps<typeof Button>["size"];
45
46
  unstyled?: boolean;
46
47
  };
47
48
  enableMotion?: boolean;