@nextworks/blocks-sections 0.2.0-alpha.11 → 0.2.0-alpha.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/About.d.ts.map +1 -1
- package/dist/components/About.jsx +27 -25
- package/dist/components/CTA.d.ts.map +1 -1
- package/dist/components/CTA.jsx +33 -31
- package/dist/components/Contact.d.ts.map +1 -1
- package/dist/components/Contact.jsx +31 -26
- package/dist/components/FAQ.d.ts.map +1 -1
- package/dist/components/FAQ.jsx +24 -22
- package/dist/components/Features.d.ts.map +1 -1
- package/dist/components/Features.jsx +15 -13
- package/dist/components/Footer.d.ts +3 -0
- package/dist/components/Footer.d.ts.map +1 -1
- package/dist/components/Footer.jsx +39 -37
- package/dist/components/HeroMotion.d.ts.map +1 -1
- package/dist/components/HeroMotion.jsx +43 -41
- package/dist/components/HeroOverlay.d.ts.map +1 -1
- package/dist/components/HeroOverlay.jsx +33 -31
- package/dist/components/HeroProductDemo.d.ts +54 -0
- package/dist/components/HeroProductDemo.d.ts.map +1 -0
- package/dist/components/HeroProductDemo.jsx +81 -0
- package/dist/components/HeroSplit.d.ts.map +1 -1
- package/dist/components/HeroSplit.jsx +37 -35
- package/dist/components/Navbar.d.ts.map +1 -1
- package/dist/components/Navbar.jsx +51 -51
- package/dist/components/Newsletter.d.ts +3 -2
- package/dist/components/Newsletter.d.ts.map +1 -1
- package/dist/components/Newsletter.jsx +25 -22
- package/dist/components/PortfolioSimple.d.ts.map +1 -1
- package/dist/components/PortfolioSimple.jsx +82 -80
- package/dist/components/Pricing.d.ts.map +1 -1
- package/dist/components/Pricing.jsx +14 -12
- package/dist/components/ProcessTimeline.d.ts.map +1 -1
- package/dist/components/ProcessTimeline.jsx +65 -63
- package/dist/components/ServicesGrid.d.ts.map +1 -1
- package/dist/components/ServicesGrid.jsx +27 -25
- package/dist/components/Team.d.ts.map +1 -1
- package/dist/components/Team.jsx +30 -28
- package/dist/components/Testimonials.d.ts.map +1 -1
- package/dist/components/Testimonials.jsx +14 -12
- package/dist/components/TrustBadges.d.ts.map +1 -1
- package/dist/components/TrustBadges.jsx +20 -18
- package/dist/components/index.d.ts +1 -0
- package/dist/components/index.d.ts.map +1 -1
- package/dist/components/index.js +1 -0
- package/dist/components/product-demo/ApprovalInboxPanel.d.ts +7 -0
- package/dist/components/product-demo/ApprovalInboxPanel.d.ts.map +1 -0
- package/dist/components/product-demo/ApprovalInboxPanel.jsx +70 -0
- package/dist/components/product-demo/DemoStage.d.ts +14 -0
- package/dist/components/product-demo/DemoStage.d.ts.map +1 -0
- package/dist/components/product-demo/DemoStage.jsx +226 -0
- package/dist/components/product-demo/DemoWindow.d.ts +17 -0
- package/dist/components/product-demo/DemoWindow.d.ts.map +1 -0
- package/dist/components/product-demo/DemoWindow.jsx +57 -0
- package/dist/components/product-demo/KnowledgePanel.d.ts +7 -0
- package/dist/components/product-demo/KnowledgePanel.d.ts.map +1 -0
- package/dist/components/product-demo/KnowledgePanel.jsx +75 -0
- package/dist/components/product-demo/RunConsolePanel.d.ts +7 -0
- package/dist/components/product-demo/RunConsolePanel.d.ts.map +1 -0
- package/dist/components/product-demo/RunConsolePanel.jsx +89 -0
- package/dist/components/product-demo/WorkflowStudioPanel.d.ts +7 -0
- package/dist/components/product-demo/WorkflowStudioPanel.d.ts.map +1 -0
- package/dist/components/product-demo/WorkflowStudioPanel.jsx +109 -0
- package/dist/components/product-demo/types.d.ts +162 -0
- package/dist/components/product-demo/types.d.ts.map +1 -0
- package/dist/components/product-demo/types.js +3 -0
- package/dist-types/components/About.d.ts.map +1 -1
- package/dist-types/components/CTA.d.ts.map +1 -1
- package/dist-types/components/Contact.d.ts.map +1 -1
- package/dist-types/components/FAQ.d.ts.map +1 -1
- package/dist-types/components/Features.d.ts.map +1 -1
- package/dist-types/components/Footer.d.ts +3 -0
- package/dist-types/components/Footer.d.ts.map +1 -1
- package/dist-types/components/HeroMotion.d.ts.map +1 -1
- package/dist-types/components/HeroOverlay.d.ts.map +1 -1
- package/dist-types/components/HeroProductDemo.d.ts +54 -0
- package/dist-types/components/HeroProductDemo.d.ts.map +1 -0
- package/dist-types/components/HeroSplit.d.ts.map +1 -1
- package/dist-types/components/Navbar.d.ts.map +1 -1
- package/dist-types/components/Newsletter.d.ts +3 -2
- package/dist-types/components/Newsletter.d.ts.map +1 -1
- package/dist-types/components/PortfolioSimple.d.ts.map +1 -1
- package/dist-types/components/Pricing.d.ts.map +1 -1
- package/dist-types/components/ProcessTimeline.d.ts.map +1 -1
- package/dist-types/components/ServicesGrid.d.ts.map +1 -1
- package/dist-types/components/Team.d.ts.map +1 -1
- package/dist-types/components/Testimonials.d.ts.map +1 -1
- package/dist-types/components/TrustBadges.d.ts.map +1 -1
- package/dist-types/components/index.d.ts +1 -0
- package/dist-types/components/index.d.ts.map +1 -1
- package/dist-types/components/product-demo/ApprovalInboxPanel.d.ts +7 -0
- package/dist-types/components/product-demo/ApprovalInboxPanel.d.ts.map +1 -0
- package/dist-types/components/product-demo/DemoStage.d.ts +14 -0
- package/dist-types/components/product-demo/DemoStage.d.ts.map +1 -0
- package/dist-types/components/product-demo/DemoWindow.d.ts +17 -0
- package/dist-types/components/product-demo/DemoWindow.d.ts.map +1 -0
- package/dist-types/components/product-demo/KnowledgePanel.d.ts +7 -0
- package/dist-types/components/product-demo/KnowledgePanel.d.ts.map +1 -0
- package/dist-types/components/product-demo/RunConsolePanel.d.ts +7 -0
- package/dist-types/components/product-demo/RunConsolePanel.d.ts.map +1 -0
- package/dist-types/components/product-demo/WorkflowStudioPanel.d.ts +7 -0
- package/dist-types/components/product-demo/WorkflowStudioPanel.d.ts.map +1 -0
- package/dist-types/components/product-demo/types.d.ts +162 -0
- package/dist-types/components/product-demo/types.d.ts.map +1 -0
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Newsletter.d.ts","sourceRoot":"","sources":["../../src/components/Newsletter.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Newsletter.d.ts","sourceRoot":"","sources":["../../src/components/Newsletter.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AAEhD;;;;;;GAMG;AACH,MAAM,WAAW,eAAe;IAC9B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,iEAAiE;IACjE,QAAQ,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAExE,2BAA2B;IAC3B,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjC,SAAS,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnC,MAAM,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAChC,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjC,UAAU,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACpC,IAAI,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9B,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACjC,KAAK,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC/B,MAAM,CAAC,EAAE;QACP,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,CAAC,SAAS,CAAC,CAAC;QACzD,IAAI,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;QACnD,QAAQ,CAAC,EAAE,OAAO,CAAC;KACpB,CAAC;IAEF,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAkBD;;;;;;;GAOG;AACH,wBAAgB,UAAU,CAAC,EACzB,EAAE,EACF,SAAS,EACT,WAAgC,EAChC,cAAiE,EACjE,QAAQ,EACR,OAAO,EACP,SAAS,EACT,MAAM,EACN,OAAO,EACP,UAAU,EACV,IAAI,EACJ,OAAO,EACP,KAAK,EACL,MAAM,EACN,YAAmB,EACnB,SAAuC,GACxC,EAAE,eAAe,qBA8DjB"}
|
|
@@ -1,7 +1,10 @@
|
|
|
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 { cn } from "@nextworks/blocks-core";
|
|
4
|
-
import { Input
|
|
6
|
+
import { Input } from "@nextworks/blocks-core";
|
|
7
|
+
import { Button } from "@nextworks/blocks-core";
|
|
5
8
|
// Default classes used for slot merging. Consumers' slot.className will be merged after these.
|
|
6
9
|
const DEFAULT_SECTION = "py-12 bg-[var(--card-bg)] text-[var(--card-fg)]";
|
|
7
10
|
const DEFAULT_CONTAINER = "max-w-3xl mx-auto px-4";
|
|
@@ -28,27 +31,27 @@ export function Newsletter({ id, className, headingText = "Stay in the loop", su
|
|
|
28
31
|
// Optimistic clear; consumer can override behavior via onSubmit
|
|
29
32
|
setEmail("");
|
|
30
33
|
};
|
|
31
|
-
return (<section id={id} className={cn(DEFAULT_SECTION, section === null || section === void 0 ? void 0 : section.className, className)} aria-label={ariaLabel}>
|
|
32
|
-
<div className={cn(DEFAULT_CONTAINER, container === null || container === void 0 ? void 0 : container.className)}>
|
|
33
|
-
<div className={cn(DEFAULT_HEADER, header === null || header === void 0 ? void 0 : header.className)}>
|
|
34
|
-
<h2 className={cn(DEFAULT_HEADING, heading === null || heading === void 0 ? void 0 : heading.className)}>
|
|
35
|
-
{headingText}
|
|
36
|
-
</h2>
|
|
37
|
-
<p className={cn(DEFAULT_SUBHEADING, subheading === null || subheading === void 0 ? void 0 : subheading.className)}>
|
|
38
|
-
{subheadingText}
|
|
39
|
-
</p>
|
|
40
|
-
</div>
|
|
41
|
-
|
|
42
|
-
<form className={cn(DEFAULT_FORM, form === null || form === void 0 ? void 0 : form.className)} onSubmit={handleSubmit} aria-label="Newsletter signup form">
|
|
43
|
-
<div className={cn(DEFAULT_FORM_ROW, formRow === null || formRow === void 0 ? void 0 : formRow.className)}>
|
|
44
|
-
<Input id="newsletter-email" name="email" type="email" value={email} onChange={(e) => setEmail(e.target.value)} placeholder="Your email address" required aria-label="Email address" className={cn(DEFAULT_INPUT, input === null || input === void 0 ? void 0 : input.className)}/>
|
|
45
|
-
|
|
34
|
+
return (<section id={id} className={cn(DEFAULT_SECTION, section === null || section === void 0 ? void 0 : section.className, className)} aria-label={ariaLabel}>
|
|
35
|
+
<div className={cn(DEFAULT_CONTAINER, container === null || container === void 0 ? void 0 : container.className)}>
|
|
36
|
+
<div className={cn(DEFAULT_HEADER, header === null || header === void 0 ? void 0 : header.className)}>
|
|
37
|
+
<h2 className={cn(DEFAULT_HEADING, heading === null || heading === void 0 ? void 0 : heading.className)}>
|
|
38
|
+
{headingText}
|
|
39
|
+
</h2>
|
|
40
|
+
<p className={cn(DEFAULT_SUBHEADING, subheading === null || subheading === void 0 ? void 0 : subheading.className)}>
|
|
41
|
+
{subheadingText}
|
|
42
|
+
</p>
|
|
43
|
+
</div>
|
|
44
|
+
|
|
45
|
+
<form className={cn(DEFAULT_FORM, form === null || form === void 0 ? void 0 : form.className)} onSubmit={handleSubmit} aria-label="Newsletter signup form">
|
|
46
|
+
<div className={cn(DEFAULT_FORM_ROW, formRow === null || formRow === void 0 ? void 0 : formRow.className)}>
|
|
47
|
+
<Input id="newsletter-email" name="email" type="email" value={email} onChange={(e) => setEmail(e.target.value)} placeholder="Your email address" required aria-label="Email address" className={cn(DEFAULT_INPUT, input === null || input === void 0 ? void 0 : input.className)}/>
|
|
48
|
+
|
|
46
49
|
<Button type="submit" unstyled={button === null || button === void 0 ? void 0 : button.unstyled} variant={button === null || button === void 0 ? void 0 : button.variant} size={button === null || button === void 0 ? void 0 : button.size} className={cn(DEFAULT_BUTTON, button === null || button === void 0 ? void 0 : button.className, !enableMotion &&
|
|
47
|
-
"transition-none hover:!translate-y-0 hover:shadow-none")}>
|
|
48
|
-
Subscribe
|
|
49
|
-
</Button>
|
|
50
|
-
</div>
|
|
51
|
-
</form>
|
|
52
|
-
</div>
|
|
50
|
+
"transition-none hover:!translate-y-0 hover:shadow-none")}>
|
|
51
|
+
Subscribe
|
|
52
|
+
</Button>
|
|
53
|
+
</div>
|
|
54
|
+
</form>
|
|
55
|
+
</div>
|
|
53
56
|
</section>);
|
|
54
57
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PortfolioSimple.d.ts","sourceRoot":"","sources":["../../src/components/PortfolioSimple.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PortfolioSimple.d.ts","sourceRoot":"","sources":["../../src/components/PortfolioSimple.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, { useState } from "react";
|
|
3
5
|
import { motion } from "motion/react";
|
|
@@ -18,20 +20,20 @@ const ProjectImage = ({ project, onClick, imageContainer = {
|
|
|
18
20
|
};
|
|
19
21
|
const fallbackBg = colorClasses[project.color] ||
|
|
20
22
|
colorClasses.blue;
|
|
21
|
-
return (<div className={imageContainer.className} onClick={onClick}>
|
|
22
|
-
{project.image ? (<Image src={project.image} alt={project.title} fill className="object-cover" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw"/>) : (<div className={`flex h-full w-full items-center justify-center ${fallbackBg}`}>
|
|
23
|
-
<div className="p-8 text-center">
|
|
24
|
-
<div className="bg-background/20 dark:bg-foreground/20 mx-auto mb-4 flex h-16 w-16 items-center justify-center rounded-full">
|
|
25
|
-
<ExternalLink className="h-8 w-8 text-[var(--card-muted-fg)]"/>
|
|
26
|
-
</div>
|
|
27
|
-
<h3 className="mb-2 text-lg font-semibold text-[var(--card-title-fg)]">
|
|
28
|
-
{project.title}
|
|
29
|
-
</h3>
|
|
30
|
-
<p className="text-sm text-[var(--card-muted-fg)]">
|
|
31
|
-
{project.category}
|
|
32
|
-
</p>
|
|
33
|
-
</div>
|
|
34
|
-
</div>)}
|
|
23
|
+
return (<div className={imageContainer.className} onClick={onClick}>
|
|
24
|
+
{project.image ? (<Image src={project.image} alt={project.title} fill className="object-cover" sizes="(max-width: 768px) 100vw, (max-width: 1200px) 50vw, 33vw"/>) : (<div className={`flex h-full w-full items-center justify-center ${fallbackBg}`}>
|
|
25
|
+
<div className="p-8 text-center">
|
|
26
|
+
<div className="bg-background/20 dark:bg-foreground/20 mx-auto mb-4 flex h-16 w-16 items-center justify-center rounded-full">
|
|
27
|
+
<ExternalLink className="h-8 w-8 text-[var(--card-muted-fg)]"/>
|
|
28
|
+
</div>
|
|
29
|
+
<h3 className="mb-2 text-lg font-semibold text-[var(--card-title-fg)]">
|
|
30
|
+
{project.title}
|
|
31
|
+
</h3>
|
|
32
|
+
<p className="text-sm text-[var(--card-muted-fg)]">
|
|
33
|
+
{project.category}
|
|
34
|
+
</p>
|
|
35
|
+
</div>
|
|
36
|
+
</div>)}
|
|
35
37
|
</div>);
|
|
36
38
|
};
|
|
37
39
|
const defaultProjects = [
|
|
@@ -169,25 +171,25 @@ export function PortfolioSimple({ id, className, projects = defaultProjects, fil
|
|
|
169
171
|
}, onProjectClick, onPrimaryCtaClick, onSecondaryCtaClick, ariaLabel = "Portfolio showcase section", }) {
|
|
170
172
|
const [activeFilter, setActiveFilter] = useState(filters[0] || "All Projects");
|
|
171
173
|
const filteredProjects = projects.filter((project) => activeFilter === "All Projects" || project.category === activeFilter);
|
|
172
|
-
return (<section id={id} className={cn(section.className, className)} aria-label={ariaLabel}>
|
|
173
|
-
<div className={container.className}>
|
|
174
|
-
{/* Section Header */}
|
|
175
|
-
<div className={header.className}>
|
|
176
|
-
<h2 className={title.className}>{sectionTitle}</h2>
|
|
177
|
-
<p className={subtitle.className}>{sectionSubtitle}</p>
|
|
178
|
-
|
|
179
|
-
{/* Filter Buttons */}
|
|
180
|
-
<div className={filterContainer.className}>
|
|
174
|
+
return (<section id={id} className={cn(section.className, className)} aria-label={ariaLabel}>
|
|
175
|
+
<div className={container.className}>
|
|
176
|
+
{/* Section Header */}
|
|
177
|
+
<div className={header.className}>
|
|
178
|
+
<h2 className={title.className}>{sectionTitle}</h2>
|
|
179
|
+
<p className={subtitle.className}>{sectionSubtitle}</p>
|
|
180
|
+
|
|
181
|
+
{/* Filter Buttons */}
|
|
182
|
+
<div className={filterContainer.className}>
|
|
181
183
|
{filters.map((filter) => (<button key={filter} className={activeFilter === filter
|
|
182
184
|
? activeFilterButton.className
|
|
183
|
-
: filterButton.className} onClick={() => setActiveFilter(filter)}>
|
|
184
|
-
{filter}
|
|
185
|
-
</button>))}
|
|
186
|
-
</div>
|
|
187
|
-
</div>
|
|
188
|
-
|
|
189
|
-
{/* Portfolio Grid */}
|
|
190
|
-
<div className={grid.className}>
|
|
185
|
+
: filterButton.className} onClick={() => setActiveFilter(filter)}>
|
|
186
|
+
{filter}
|
|
187
|
+
</button>))}
|
|
188
|
+
</div>
|
|
189
|
+
</div>
|
|
190
|
+
|
|
191
|
+
{/* Portfolio Grid */}
|
|
192
|
+
<div className={grid.className}>
|
|
191
193
|
{filteredProjects.map((project, index) => (<motion.div key={project.id} initial={enableMotion ? { opacity: 0, y: 12 } : { opacity: 1, y: 0 }} whileInView={enableMotion ? { opacity: 1, y: 0 } : { opacity: 1, y: 0 }} viewport={enableMotion
|
|
192
194
|
? { once: true, amount: 0.2 }
|
|
193
195
|
: { once: true, amount: 0 }} transition={enableMotion
|
|
@@ -198,62 +200,62 @@ export function PortfolioSimple({ id, className, projects = defaultProjects, fil
|
|
|
198
200
|
mass: 1,
|
|
199
201
|
delay: 0.1 + index * 0.05,
|
|
200
202
|
}
|
|
201
|
-
: { type: "tween", duration: 0 }} className="motion-reduce:transform-none motion-reduce:transition-none">
|
|
203
|
+
: { type: "tween", duration: 0 }} className="motion-reduce:transform-none motion-reduce:transition-none">
|
|
202
204
|
<div className={cn(projectCard.className, enableMotion
|
|
203
205
|
? "transition-all duration-200 hover:-translate-y-1"
|
|
204
|
-
: "cursor-default transition-none hover:!translate-y-0 hover:shadow-none")}>
|
|
205
|
-
<div className="space-y-4">
|
|
206
|
-
{/* Project Image */}
|
|
207
|
-
<ProjectImage project={project} onClick={() => onProjectClick === null || onProjectClick === void 0 ? void 0 : onProjectClick(project)} imageContainer={imageContainer}/>
|
|
208
|
-
|
|
209
|
-
{/* Project Info */}
|
|
210
|
-
<div className={projectInfo.className}>
|
|
211
|
-
<div className="flex w-full items-start justify-between">
|
|
212
|
-
<div className="flex-1 space-y-2">
|
|
213
|
-
<h3 className={projectTitle.className}>
|
|
214
|
-
{project.title}
|
|
215
|
-
</h3>
|
|
216
|
-
<p className={projectDescription.className}>
|
|
217
|
-
{project.description}
|
|
218
|
-
</p>
|
|
219
|
-
</div>
|
|
220
|
-
</div>
|
|
221
|
-
|
|
222
|
-
{/* Tags & Result */}
|
|
223
|
-
<div className="flex w-full items-center justify-between">
|
|
224
|
-
<div className={tagsContainer.className}>
|
|
225
|
-
{project.tags.map((tag, index) => (<span key={index} className={tagStyle.className}>
|
|
226
|
-
{tag}
|
|
227
|
-
</span>))}
|
|
228
|
-
</div>
|
|
229
|
-
<div className="flex items-center gap-2">
|
|
230
|
-
<TrendingUp className="h-4 w-4 text-[var(--metric-fg)]"/>
|
|
231
|
-
<span className={result.className}>
|
|
232
|
-
{project.result}
|
|
233
|
-
</span>
|
|
234
|
-
</div>
|
|
235
|
-
</div>
|
|
236
|
-
</div>
|
|
237
|
-
</div>
|
|
238
|
-
</div>
|
|
239
|
-
</motion.div>))}
|
|
240
|
-
</div>
|
|
241
|
-
|
|
242
|
-
{/* CTA Section */}
|
|
243
|
-
<div className={ctaSection.className}>
|
|
244
|
-
<h3 className={ctaTitleStyle.className}>{ctaTitle}</h3>
|
|
245
|
-
<p className={ctaDescriptionStyle.className}>{ctaDescription}</p>
|
|
246
|
-
<div className={ctaButtons.className}>
|
|
206
|
+
: "cursor-default transition-none hover:!translate-y-0 hover:shadow-none")}>
|
|
207
|
+
<div className="space-y-4">
|
|
208
|
+
{/* Project Image */}
|
|
209
|
+
<ProjectImage project={project} onClick={() => onProjectClick === null || onProjectClick === void 0 ? void 0 : onProjectClick(project)} imageContainer={imageContainer}/>
|
|
210
|
+
|
|
211
|
+
{/* Project Info */}
|
|
212
|
+
<div className={projectInfo.className}>
|
|
213
|
+
<div className="flex w-full items-start justify-between">
|
|
214
|
+
<div className="flex-1 space-y-2">
|
|
215
|
+
<h3 className={projectTitle.className}>
|
|
216
|
+
{project.title}
|
|
217
|
+
</h3>
|
|
218
|
+
<p className={projectDescription.className}>
|
|
219
|
+
{project.description}
|
|
220
|
+
</p>
|
|
221
|
+
</div>
|
|
222
|
+
</div>
|
|
223
|
+
|
|
224
|
+
{/* Tags & Result */}
|
|
225
|
+
<div className="flex w-full items-center justify-between">
|
|
226
|
+
<div className={tagsContainer.className}>
|
|
227
|
+
{project.tags.map((tag, index) => (<span key={index} className={tagStyle.className}>
|
|
228
|
+
{tag}
|
|
229
|
+
</span>))}
|
|
230
|
+
</div>
|
|
231
|
+
<div className="flex items-center gap-2">
|
|
232
|
+
<TrendingUp className="h-4 w-4 text-[var(--metric-fg)]"/>
|
|
233
|
+
<span className={result.className}>
|
|
234
|
+
{project.result}
|
|
235
|
+
</span>
|
|
236
|
+
</div>
|
|
237
|
+
</div>
|
|
238
|
+
</div>
|
|
239
|
+
</div>
|
|
240
|
+
</div>
|
|
241
|
+
</motion.div>))}
|
|
242
|
+
</div>
|
|
243
|
+
|
|
244
|
+
{/* CTA Section */}
|
|
245
|
+
<div className={ctaSection.className}>
|
|
246
|
+
<h3 className={ctaTitleStyle.className}>{ctaTitle}</h3>
|
|
247
|
+
<p className={ctaDescriptionStyle.className}>{ctaDescription}</p>
|
|
248
|
+
<div className={ctaButtons.className}>
|
|
247
249
|
<CTAButton ctaButtonLabel={cta1Label} ctaButtonHref={cta1Href} button={{
|
|
248
250
|
className: cta1Button.className,
|
|
249
|
-
}} onClick={onPrimaryCtaClick}/>
|
|
251
|
+
}} onClick={onPrimaryCtaClick}/>
|
|
250
252
|
{cta2Label && (<CTAButton ctaButtonLabel={cta2Label} ctaButtonHref={cta2Href} button={{
|
|
251
253
|
variant: "outline",
|
|
252
254
|
size: "lg",
|
|
253
255
|
className: cta2Button.className,
|
|
254
|
-
}} onClick={onSecondaryCtaClick}/>)}
|
|
255
|
-
</div>
|
|
256
|
-
</div>
|
|
257
|
-
</div>
|
|
256
|
+
}} onClick={onSecondaryCtaClick}/>)}
|
|
257
|
+
</div>
|
|
258
|
+
</div>
|
|
259
|
+
</div>
|
|
258
260
|
</section>);
|
|
259
261
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Pricing.d.ts","sourceRoot":"","sources":["../../src/components/Pricing.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Pricing.d.ts","sourceRoot":"","sources":["../../src/components/Pricing.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,sCAAsC;IACtC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,qCAAqC;IACrC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,2BAA2B;IAC3B,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC/B,uBAAuB;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,sBAAsB;IACtB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,8CAA8C;IAC9C,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED;;;;;;;GAOG;AACH,UAAU,YAAY;IACpB,mDAAmD;IACnD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,8BAA8B;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,iGAAiG;IACjG,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,qFAAqF;IACrF,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAE7B,qEAAqE;IACrE,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,oCAAoC;IACpC,OAAO,CAAC,EAAE;QACR,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,SAAS,CAAC,EAAE;QACV,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,OAAO,CAAC,EAAE;QACR,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,IAAI,CAAC,EAAE;QACL,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,IAAI,CAAC,EAAE;QACL,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,MAAM,CAAC,EAAE;QACP,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,KAAK,CAAC,EAAE;QACN,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,KAAK,CAAC,EAAE;QACN,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,QAAQ,CAAC,EAAE;QACT,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,WAAW,CAAC,EAAE;QACZ,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,GAAG,CAAC,EAAE;QACJ,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,KAAK,CAAC,EAAE,KAAK,CAAC,aAAa,CAAC;QAC5B,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;KACpB,CAAC;IACF,YAAY,CAAC,EAAE;QACb,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IAEF,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAmCD;;;;;;;;;;GAUG;AACH,wBAAgB,OAAO,CAAC,EACtB,EAAE,EACF,SAAS,EACT,YAAiC,EACjC,kBAAuC,EACvC,YAAmB,EACnB,OAEC,EACD,SAEC,EACD,OAGC,EACD,IAEC,EACD,IAGC,EACD,MAEC,EACD,KAGC,EACD,KAGC,EACD,QAEC,EACD,WAGC,EACD,GAKC,EACD,YAGC,EACD,SAA6B,GAC9B,EAAE,YAAY,qBAmEd"}
|
|
@@ -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 { motion } from "motion/react";
|
|
@@ -73,13 +75,13 @@ export function Pricing({ id, className, pricingPlans = defaultPricingData, pric
|
|
|
73
75
|
}, popularBadge = {
|
|
74
76
|
className: "absolute -top-3 left-1/2 transform -translate-x-1/2 bg-primary text-primary-foreground px-4 py-1 rounded-full text-sm font-medium bg-[var(--badge-bg)] text-[var(--badge-fg)] border-[var(--badge-border)]",
|
|
75
77
|
}, ariaLabel = "Pricing section", }) {
|
|
76
|
-
return (<section id={id || "pricing"} className={cn(section.className, className)} aria-label={ariaLabel}>
|
|
77
|
-
<div className={container.className}>
|
|
78
|
-
{/* Section heading */}
|
|
79
|
-
<h2 className={heading.className}>{pricingHeadingText}</h2>
|
|
80
|
-
|
|
81
|
-
{/* Pricing cards grid */}
|
|
82
|
-
<div className={grid.className}>
|
|
78
|
+
return (<section id={id || "pricing"} className={cn(section.className, className)} aria-label={ariaLabel}>
|
|
79
|
+
<div className={container.className}>
|
|
80
|
+
{/* Section heading */}
|
|
81
|
+
<h2 className={heading.className}>{pricingHeadingText}</h2>
|
|
82
|
+
|
|
83
|
+
{/* Pricing cards grid */}
|
|
84
|
+
<div className={grid.className}>
|
|
83
85
|
{pricingPlans.map((plan, index) => (<motion.div key={index} initial={enableMotion ? { opacity: 0, y: 12 } : { opacity: 1, y: 0 }} whileInView={{ opacity: 1, y: 0 }} viewport={enableMotion
|
|
84
86
|
? { once: true, amount: 0.2 }
|
|
85
87
|
: { once: true, amount: 0 }} transition={enableMotion
|
|
@@ -90,14 +92,14 @@ export function Pricing({ id, className, pricingPlans = defaultPricingData, pric
|
|
|
90
92
|
mass: 1,
|
|
91
93
|
delay: 0.12 + index * 0.06,
|
|
92
94
|
}
|
|
93
|
-
: { type: "tween", duration: 0 }} className="motion-reduce:transform-none motion-reduce:transition-none">
|
|
95
|
+
: { type: "tween", duration: 0 }} className="motion-reduce:transform-none motion-reduce:transition-none">
|
|
94
96
|
<PricingCard pricingCardTitle={plan.pricingPlanHeaderText} pricingCardPrice={plan.pricingPlanPrice} pricingCardFeatures={plan.pricingPlanFeatures} pricingCardCTALabel={plan.pricingPlanCTALabel} pricingCardCTAHref={plan.pricingPlanCTAHref} isPopular={plan.isPopular} card={{
|
|
95
97
|
className: cn(card.className, enableMotion
|
|
96
98
|
? "transition-all duration-200 hover:-translate-y-1 motion-reduce:transform-none motion-reduce:transition-none"
|
|
97
99
|
: "transition-none hover:!translate-y-0 hover:shadow-none"),
|
|
98
|
-
}} header={header} title={title} price={price} features={features} featureItem={featureItem} cta={cta} popularBadge={popularBadge}/>
|
|
99
|
-
</motion.div>))}
|
|
100
|
-
</div>
|
|
101
|
-
</div>
|
|
100
|
+
}} header={header} title={title} price={price} features={features} featureItem={featureItem} cta={cta} popularBadge={popularBadge}/>
|
|
101
|
+
</motion.div>))}
|
|
102
|
+
</div>
|
|
103
|
+
</div>
|
|
102
104
|
</section>);
|
|
103
105
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProcessTimeline.d.ts","sourceRoot":"","sources":["../../src/components/ProcessTimeline.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ProcessTimeline.d.ts","sourceRoot":"","sources":["../../src/components/ProcessTimeline.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 { cn } from "@nextworks/blocks-core";
|
|
@@ -84,68 +86,68 @@ export function ProcessTimeline({ id, className, steps = [
|
|
|
84
86
|
}, mobileStepDescription = {
|
|
85
87
|
className: "text-sm md:text-base font-inter leading-relaxed text-[var(--description-fg)]",
|
|
86
88
|
}, ariaLabel = "Process timeline section", }) {
|
|
87
|
-
return (<section id={id} className={cn(section.className, className)} aria-label={ariaLabel}>
|
|
88
|
-
<div className={container.className}>
|
|
89
|
-
{/* Section Header */}
|
|
90
|
-
<div className={header.className}>
|
|
91
|
-
<h2 className={headingStyle.className}>{heading}</h2>
|
|
92
|
-
{subheading && (<p className={subheadingStyle.className}>{subheading}</p>)}
|
|
93
|
-
</div>
|
|
94
|
-
|
|
95
|
-
{/* Timeline Steps */}
|
|
96
|
-
<div className={timelineContainer.className}>
|
|
97
|
-
{/* Desktop: Horizontal Layout */}
|
|
98
|
-
<div className={desktopTimeline.className}>
|
|
99
|
-
{/* Connecting Line */}
|
|
100
|
-
<div className={connectingLine.className}/>
|
|
101
|
-
|
|
102
|
-
{steps.map((step) => (<div key={step.stepNumber} className={stepContainer.className}>
|
|
103
|
-
{/* Step Circle with Number */}
|
|
104
|
-
<div className={stepCircle.className}>
|
|
105
|
-
<span className={stepNumber.className}>
|
|
106
|
-
{step.stepNumber}
|
|
107
|
-
</span>
|
|
108
|
-
</div>
|
|
109
|
-
|
|
110
|
-
{/* Step Icon */}
|
|
111
|
-
{step.icon && (<div className={stepIcon.className}>{step.icon}</div>)}
|
|
112
|
-
|
|
113
|
-
{/* Step Content */}
|
|
114
|
-
<div className={stepContent.className}>
|
|
115
|
-
<h3 className={stepTitle.className}>{step.title}</h3>
|
|
116
|
-
<p className={stepDescription.className}>
|
|
117
|
-
{step.description}
|
|
118
|
-
</p>
|
|
119
|
-
</div>
|
|
120
|
-
</div>))}
|
|
121
|
-
</div>
|
|
122
|
-
|
|
123
|
-
{/* Mobile: Vertical Layout */}
|
|
124
|
-
<div className={mobileTimeline.className}>
|
|
125
|
-
{steps.map((step, index) => (<div key={step.stepNumber} className={mobileStep.className}>
|
|
126
|
-
{/* Vertical Line */}
|
|
127
|
-
{index < steps.length - 1 && (<div className={mobileVerticalLine.className}/>)}
|
|
128
|
-
|
|
129
|
-
{/* Step Circle */}
|
|
130
|
-
<div className={mobileStepCircle.className}>
|
|
131
|
-
<span className={stepNumber.className}>
|
|
132
|
-
{step.stepNumber}
|
|
133
|
-
</span>
|
|
134
|
-
</div>
|
|
135
|
-
|
|
136
|
-
{/* Step Content */}
|
|
137
|
-
<div className={mobileStepContent.className}>
|
|
138
|
-
{/* Step Icon */}
|
|
139
|
-
{step.icon && (<div className={mobileStepIcon.className}>{step.icon}</div>)}
|
|
140
|
-
|
|
141
|
-
<h3 className={mobileStepTitle.className}>{step.title}</h3>
|
|
142
|
-
<p className={mobileStepDescription.className}>
|
|
143
|
-
{step.description}
|
|
144
|
-
</p>
|
|
145
|
-
</div>
|
|
146
|
-
</div>))}
|
|
147
|
-
</div>
|
|
148
|
-
</div>
|
|
149
|
-
</div>
|
|
89
|
+
return (<section id={id} className={cn(section.className, className)} aria-label={ariaLabel}>
|
|
90
|
+
<div className={container.className}>
|
|
91
|
+
{/* Section Header */}
|
|
92
|
+
<div className={header.className}>
|
|
93
|
+
<h2 className={headingStyle.className}>{heading}</h2>
|
|
94
|
+
{subheading && (<p className={subheadingStyle.className}>{subheading}</p>)}
|
|
95
|
+
</div>
|
|
96
|
+
|
|
97
|
+
{/* Timeline Steps */}
|
|
98
|
+
<div className={timelineContainer.className}>
|
|
99
|
+
{/* Desktop: Horizontal Layout */}
|
|
100
|
+
<div className={desktopTimeline.className}>
|
|
101
|
+
{/* Connecting Line */}
|
|
102
|
+
<div className={connectingLine.className}/>
|
|
103
|
+
|
|
104
|
+
{steps.map((step) => (<div key={step.stepNumber} className={stepContainer.className}>
|
|
105
|
+
{/* Step Circle with Number */}
|
|
106
|
+
<div className={stepCircle.className}>
|
|
107
|
+
<span className={stepNumber.className}>
|
|
108
|
+
{step.stepNumber}
|
|
109
|
+
</span>
|
|
110
|
+
</div>
|
|
111
|
+
|
|
112
|
+
{/* Step Icon */}
|
|
113
|
+
{step.icon && (<div className={stepIcon.className}>{step.icon}</div>)}
|
|
114
|
+
|
|
115
|
+
{/* Step Content */}
|
|
116
|
+
<div className={stepContent.className}>
|
|
117
|
+
<h3 className={stepTitle.className}>{step.title}</h3>
|
|
118
|
+
<p className={stepDescription.className}>
|
|
119
|
+
{step.description}
|
|
120
|
+
</p>
|
|
121
|
+
</div>
|
|
122
|
+
</div>))}
|
|
123
|
+
</div>
|
|
124
|
+
|
|
125
|
+
{/* Mobile: Vertical Layout */}
|
|
126
|
+
<div className={mobileTimeline.className}>
|
|
127
|
+
{steps.map((step, index) => (<div key={step.stepNumber} className={mobileStep.className}>
|
|
128
|
+
{/* Vertical Line */}
|
|
129
|
+
{index < steps.length - 1 && (<div className={mobileVerticalLine.className}/>)}
|
|
130
|
+
|
|
131
|
+
{/* Step Circle */}
|
|
132
|
+
<div className={mobileStepCircle.className}>
|
|
133
|
+
<span className={stepNumber.className}>
|
|
134
|
+
{step.stepNumber}
|
|
135
|
+
</span>
|
|
136
|
+
</div>
|
|
137
|
+
|
|
138
|
+
{/* Step Content */}
|
|
139
|
+
<div className={mobileStepContent.className}>
|
|
140
|
+
{/* Step Icon */}
|
|
141
|
+
{step.icon && (<div className={mobileStepIcon.className}>{step.icon}</div>)}
|
|
142
|
+
|
|
143
|
+
<h3 className={mobileStepTitle.className}>{step.title}</h3>
|
|
144
|
+
<p className={mobileStepDescription.className}>
|
|
145
|
+
{step.description}
|
|
146
|
+
</p>
|
|
147
|
+
</div>
|
|
148
|
+
</div>))}
|
|
149
|
+
</div>
|
|
150
|
+
</div>
|
|
151
|
+
</div>
|
|
150
152
|
</section>);
|
|
151
153
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServicesGrid.d.ts","sourceRoot":"","sources":["../../src/components/ServicesGrid.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ServicesGrid.d.ts","sourceRoot":"","sources":["../../src/components/ServicesGrid.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,0BAA0B;IAC1B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,8CAA8C;IAC9C,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,YAAY,CAAC,EAAE,eAAe,EAAE,CAAC;IACjC,qEAAqE;IACrE,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,oCAAoC;IACpC,OAAO,CAAC,EAAE;QACR,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,SAAS,CAAC,EAAE;QACV,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,OAAO,CAAC,EAAE;QACR,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,IAAI,CAAC,EAAE;QACL,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,IAAI,CAAC,EAAE;QACL,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,WAAW,CAAC,EAAE;QACZ,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,IAAI,CAAC,EAAE;QACL,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,KAAK,CAAC,EAAE;QACN,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,WAAW,CAAC,EAAE;QACZ,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,0CAA0C;IAC1C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AA8BD;;;;;;;;;GASG;AACH,wBAAgB,YAAY,CAAC,EAC3B,EAAE,EACF,SAAS,EACT,cAA+B,EAC/B,YAAkC,EAClC,YAAmB,EACnB,OAEC,EACD,SAEC,EACD,OAGC,EACD,IAEC,EACD,IAGC,EACD,WAEC,EACD,IAEC,EACD,KAGC,EACD,WAGC,EACD,SAA8B,GAC/B,EAAE,iBAAiB,qBA0EnB"}
|
|
@@ -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 { motion } from "motion/react";
|
|
@@ -56,13 +58,13 @@ export function ServicesGrid({ id, className, sectionHeading = "Our Services", s
|
|
|
56
58
|
}, description = {
|
|
57
59
|
className: "text-sm md:text-base font-inter leading-relaxed flex-1 text-[var(--card-muted-fg)]",
|
|
58
60
|
}, ariaLabel = "Services section", }) {
|
|
59
|
-
return (<section id={id} className={cn(section.className, className)} aria-label={ariaLabel}>
|
|
60
|
-
<div className={container.className}>
|
|
61
|
-
{/* Section Heading */}
|
|
62
|
-
<h2 className={heading.className}>{sectionHeading}</h2>
|
|
63
|
-
|
|
64
|
-
{/* Services Grid */}
|
|
65
|
-
<div className={grid.className}>
|
|
61
|
+
return (<section id={id} className={cn(section.className, className)} aria-label={ariaLabel}>
|
|
62
|
+
<div className={container.className}>
|
|
63
|
+
{/* Section Heading */}
|
|
64
|
+
<h2 className={heading.className}>{sectionHeading}</h2>
|
|
65
|
+
|
|
66
|
+
{/* Services Grid */}
|
|
67
|
+
<div className={grid.className}>
|
|
66
68
|
{servicesData.map((service, index) => (<motion.div key={index} initial={enableMotion ? { opacity: 0, y: 12 } : { opacity: 1, y: 0 }} whileInView={enableMotion ? { opacity: 1, y: 0 } : { opacity: 1, y: 0 }} viewport={enableMotion
|
|
67
69
|
? { once: true, amount: 0.2 }
|
|
68
70
|
: { once: true, amount: 0 }} transition={enableMotion
|
|
@@ -73,25 +75,25 @@ export function ServicesGrid({ id, className, sectionHeading = "Our Services", s
|
|
|
73
75
|
mass: 1,
|
|
74
76
|
delay: 0.12 + index * 0.05,
|
|
75
77
|
}
|
|
76
|
-
: { type: "tween", duration: 0 }} className={cn("h-full motion-reduce:transform-none motion-reduce:transition-none")}>
|
|
78
|
+
: { type: "tween", duration: 0 }} className={cn("h-full motion-reduce:transform-none motion-reduce:transition-none")}>
|
|
77
79
|
<div className={cn(card.className, "flex h-full flex-col", enableMotion
|
|
78
80
|
? "transition-transform duration-200 hover:-translate-y-1"
|
|
79
|
-
: "transition-none hover:!translate-y-0 hover:shadow-none")}>
|
|
80
|
-
<div className={cardContent.className}>
|
|
81
|
-
{/* Service Icon */}
|
|
82
|
-
<div className={icon.className} role="img" aria-label={service.title}>
|
|
83
|
-
{service.icon}
|
|
84
|
-
</div>
|
|
85
|
-
|
|
86
|
-
{/* Service Title */}
|
|
87
|
-
<h3 className={title.className}>{service.title}</h3>
|
|
88
|
-
|
|
89
|
-
{/* Service Description */}
|
|
90
|
-
<p className={description.className}>{service.description}</p>
|
|
91
|
-
</div>
|
|
92
|
-
</div>
|
|
93
|
-
</motion.div>))}
|
|
94
|
-
</div>
|
|
95
|
-
</div>
|
|
81
|
+
: "transition-none hover:!translate-y-0 hover:shadow-none")}>
|
|
82
|
+
<div className={cardContent.className}>
|
|
83
|
+
{/* Service Icon */}
|
|
84
|
+
<div className={icon.className} role="img" aria-label={service.title}>
|
|
85
|
+
{service.icon}
|
|
86
|
+
</div>
|
|
87
|
+
|
|
88
|
+
{/* Service Title */}
|
|
89
|
+
<h3 className={title.className}>{service.title}</h3>
|
|
90
|
+
|
|
91
|
+
{/* Service Description */}
|
|
92
|
+
<p className={description.className}>{service.description}</p>
|
|
93
|
+
</div>
|
|
94
|
+
</div>
|
|
95
|
+
</motion.div>))}
|
|
96
|
+
</div>
|
|
97
|
+
</div>
|
|
96
98
|
</section>);
|
|
97
99
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Team.d.ts","sourceRoot":"","sources":["../../src/components/Team.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Team.d.ts","sourceRoot":"","sources":["../../src/components/Team.tsx"],"names":[],"mappings":"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"}
|