@nextworks/blocks-templates 0.2.0-alpha.0 → 0.2.0-alpha.11
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/README.md +15 -3
- package/dist/index.d.ts.map +1 -0
- package/dist/templates/digitalagency/Page.d.ts.map +1 -0
- package/dist/templates/digitalagency/Page.jsx +32 -0
- package/dist/templates/digitalagency/PresetThemeVars.d.ts.map +1 -0
- package/dist/templates/digitalagency/PresetThemeVars.jsx +31 -0
- package/dist/templates/digitalagency/components/About.d.ts.map +1 -0
- package/dist/templates/digitalagency/components/About.jsx +43 -0
- package/dist/templates/digitalagency/components/CTA.d.ts.map +1 -0
- package/dist/templates/digitalagency/components/CTA.jsx +31 -0
- package/dist/templates/digitalagency/components/Contact.d.ts.map +1 -0
- package/dist/templates/digitalagency/components/Contact.jsx +89 -0
- package/dist/templates/digitalagency/components/Footer.d.ts +8 -0
- package/dist/templates/digitalagency/components/Footer.d.ts.map +1 -0
- package/dist/templates/digitalagency/components/Footer.jsx +58 -0
- package/dist/templates/digitalagency/components/Hero.d.ts +7 -0
- package/dist/templates/digitalagency/components/Hero.d.ts.map +1 -0
- package/dist/templates/digitalagency/components/Hero.jsx +71 -0
- package/dist/templates/digitalagency/components/Navbar.d.ts +20 -0
- package/dist/templates/digitalagency/components/Navbar.d.ts.map +1 -0
- package/dist/templates/digitalagency/components/Navbar.jsx +85 -0
- package/dist/templates/digitalagency/components/NetworkPattern.d.ts +7 -0
- package/dist/templates/digitalagency/components/NetworkPattern.d.ts.map +1 -0
- package/dist/templates/digitalagency/components/NetworkPattern.jsx +125 -0
- package/dist/templates/digitalagency/components/Portfolio.d.ts.map +1 -0
- package/dist/templates/digitalagency/components/Portfolio.jsx +104 -0
- package/dist/templates/digitalagency/components/Pricing.d.ts.map +1 -0
- package/dist/templates/digitalagency/components/Process.d.ts.map +1 -0
- package/dist/templates/digitalagency/components/Services.d.ts.map +1 -0
- package/dist/templates/digitalagency/components/Team.d.ts.map +1 -0
- package/dist/templates/digitalagency/components/Testimonials.d.ts.map +1 -0
- package/dist/templates/gallery/PresetThemeVars.d.ts +15 -0
- package/dist/templates/gallery/PresetThemeVars.d.ts.map +1 -0
- package/dist/templates/gallery/PresetThemeVars.jsx +33 -0
- package/dist/templates/gallery/page.d.ts.map +1 -0
- package/dist/templates/gallery/page.jsx +215 -0
- package/dist/templates/productlaunch/Page.d.ts.map +1 -0
- package/dist/templates/productlaunch/PresetThemeVars.d.ts.map +1 -0
- package/dist/templates/productlaunch/PresetThemeVars.jsx +30 -0
- package/dist/templates/productlaunch/components/About.d.ts.map +1 -0
- package/dist/templates/productlaunch/components/About.jsx +55 -0
- package/dist/templates/productlaunch/components/CTA.d.ts.map +1 -0
- package/dist/templates/productlaunch/components/CTA.jsx +37 -0
- package/dist/templates/productlaunch/components/Contact.d.ts.map +1 -0
- package/dist/templates/productlaunch/components/Contact.jsx +91 -0
- package/dist/templates/productlaunch/components/FAQ.d.ts +5 -0
- package/dist/templates/productlaunch/components/FAQ.d.ts.map +1 -0
- package/dist/templates/productlaunch/components/FAQ.jsx +55 -0
- package/dist/templates/productlaunch/components/Features.d.ts +5 -0
- package/dist/templates/productlaunch/components/Features.d.ts.map +1 -0
- package/dist/templates/productlaunch/components/Features.jsx +50 -0
- package/dist/templates/productlaunch/components/Footer.d.ts +5 -0
- package/dist/templates/productlaunch/components/Footer.d.ts.map +1 -0
- package/dist/templates/productlaunch/components/Footer.jsx +102 -0
- package/dist/templates/productlaunch/components/Hero.d.ts +5 -0
- package/dist/templates/productlaunch/components/Hero.d.ts.map +1 -0
- package/dist/templates/productlaunch/components/Hero.jsx +68 -0
- package/dist/templates/productlaunch/components/Navbar.d.ts +25 -0
- package/dist/templates/productlaunch/components/Navbar.d.ts.map +1 -0
- package/dist/templates/productlaunch/components/Navbar.jsx +85 -0
- package/dist/templates/productlaunch/components/Pricing.d.ts +5 -0
- package/dist/templates/productlaunch/components/Pricing.d.ts.map +1 -0
- package/dist/templates/productlaunch/components/Pricing.jsx +76 -0
- package/dist/templates/productlaunch/components/ProcessTimeline.d.ts +5 -0
- package/dist/templates/productlaunch/components/ProcessTimeline.d.ts.map +1 -0
- package/dist/templates/productlaunch/components/ProcessTimeline.jsx +62 -0
- package/dist/templates/productlaunch/components/ServicesGrid.d.ts +5 -0
- package/dist/templates/productlaunch/components/ServicesGrid.d.ts.map +1 -0
- package/dist/templates/productlaunch/components/ServicesGrid.jsx +40 -0
- package/dist/templates/productlaunch/components/Team.d.ts +5 -0
- package/dist/templates/productlaunch/components/Team.d.ts.map +1 -0
- package/dist/templates/productlaunch/components/Team.jsx +71 -0
- package/dist/templates/productlaunch/components/Testimonials.d.ts +5 -0
- package/dist/templates/productlaunch/components/Testimonials.d.ts.map +1 -0
- package/dist/templates/productlaunch/components/Testimonials.jsx +54 -0
- package/dist/templates/productlaunch/components/TrustBadges.d.ts +5 -0
- package/dist/templates/productlaunch/components/TrustBadges.d.ts.map +1 -0
- package/dist/templates/productlaunch/components/TrustBadges.jsx +49 -0
- package/dist/templates/saasdashboard/Page.d.ts.map +1 -0
- package/dist/templates/saasdashboard/PresetThemeVars.d.ts.map +1 -0
- package/dist/templates/saasdashboard/PresetThemeVars.jsx +29 -0
- package/dist/templates/saasdashboard/components/Contact.d.ts.map +1 -0
- package/dist/templates/saasdashboard/components/Contact.jsx +89 -0
- package/dist/templates/saasdashboard/components/Dashboard.d.ts.map +1 -0
- package/dist/templates/saasdashboard/components/Dashboard.jsx +168 -0
- package/dist/templates/saasdashboard/components/FAQ.d.ts.map +1 -0
- package/dist/templates/saasdashboard/components/Features.d.ts.map +1 -0
- package/dist/templates/saasdashboard/components/Features.jsx +54 -0
- package/dist/templates/saasdashboard/components/Footer.d.ts.map +1 -0
- package/dist/templates/saasdashboard/components/Footer.jsx +51 -0
- package/dist/templates/saasdashboard/components/Hero.d.ts.map +1 -0
- package/dist/templates/saasdashboard/components/Hero.jsx +69 -0
- package/dist/templates/saasdashboard/components/Hero_mask.d.ts.map +1 -0
- package/dist/templates/saasdashboard/components/Hero_mask.jsx +84 -0
- package/dist/templates/saasdashboard/components/Navbar.d.ts +25 -0
- package/dist/templates/saasdashboard/components/Navbar.d.ts.map +1 -0
- package/dist/templates/saasdashboard/components/Navbar.jsx +83 -0
- package/dist/templates/saasdashboard/components/Pricing.d.ts.map +1 -0
- package/dist/templates/saasdashboard/components/Pricing.jsx +64 -0
- package/dist/templates/saasdashboard/components/SmoothScroll.d.ts.map +1 -0
- package/dist/templates/saasdashboard/components/SmoothScroll.jsx +86 -0
- package/dist/templates/saasdashboard/components/Testimonials.d.ts.map +1 -0
- package/dist/templates/saasdashboard/components/Testimonials.jsx +39 -0
- package/dist/templates/saasdashboard/components/TrustBadges.d.ts.map +1 -0
- package/dist/templates/saasdashboard/components/TrustBadges.jsx +36 -0
- package/package.json +34 -34
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { useEffect } from "react";
|
|
3
|
+
// Smoothly scrolls to section links with a faster duration
|
|
4
|
+
export function SmoothScroll() {
|
|
5
|
+
useEffect(() => {
|
|
6
|
+
let suppressClick = false;
|
|
7
|
+
const animateTo = (href) => {
|
|
8
|
+
const el = document.querySelector(href);
|
|
9
|
+
if (!el)
|
|
10
|
+
return;
|
|
11
|
+
const navbarOffsetPx = 64;
|
|
12
|
+
const start = window.scrollY;
|
|
13
|
+
const targetTop = el.getBoundingClientRect().top + window.scrollY - navbarOffsetPx;
|
|
14
|
+
const distance = targetTop - start;
|
|
15
|
+
const duration = 300;
|
|
16
|
+
const startTime = performance.now();
|
|
17
|
+
const easeOutQuart = (t) => 1 - Math.pow(1 - t, 4);
|
|
18
|
+
const step = (now) => {
|
|
19
|
+
const elapsed = now - startTime;
|
|
20
|
+
const t = Math.min(1, elapsed / duration);
|
|
21
|
+
const eased = easeOutQuart(t);
|
|
22
|
+
window.scrollTo(0, start + distance * eased);
|
|
23
|
+
if (t < 1)
|
|
24
|
+
requestAnimationFrame(step);
|
|
25
|
+
else
|
|
26
|
+
history.replaceState(null, "", href);
|
|
27
|
+
};
|
|
28
|
+
requestAnimationFrame(step);
|
|
29
|
+
};
|
|
30
|
+
const onPointerDown = (e) => {
|
|
31
|
+
const ev = e;
|
|
32
|
+
const target = e.currentTarget;
|
|
33
|
+
const href = target.getAttribute("href");
|
|
34
|
+
if (!href || !href.startsWith("#"))
|
|
35
|
+
return;
|
|
36
|
+
// Only primary button, no modifiers
|
|
37
|
+
if (ev.button !== 0 ||
|
|
38
|
+
ev.metaKey ||
|
|
39
|
+
ev.ctrlKey ||
|
|
40
|
+
ev.altKey ||
|
|
41
|
+
ev.shiftKey)
|
|
42
|
+
return;
|
|
43
|
+
e.preventDefault();
|
|
44
|
+
suppressClick = true;
|
|
45
|
+
animateTo(href);
|
|
46
|
+
};
|
|
47
|
+
const onClick = (e) => {
|
|
48
|
+
const target = e.currentTarget;
|
|
49
|
+
const href = target.getAttribute("href");
|
|
50
|
+
if (!href || !href.startsWith("#"))
|
|
51
|
+
return;
|
|
52
|
+
if (suppressClick) {
|
|
53
|
+
e.preventDefault();
|
|
54
|
+
suppressClick = false;
|
|
55
|
+
return;
|
|
56
|
+
}
|
|
57
|
+
e.preventDefault();
|
|
58
|
+
animateTo(href);
|
|
59
|
+
};
|
|
60
|
+
const onKeyDown = (e) => {
|
|
61
|
+
const ev = e;
|
|
62
|
+
if (ev.key !== "Enter" && ev.key !== " ")
|
|
63
|
+
return;
|
|
64
|
+
const target = e.currentTarget;
|
|
65
|
+
const href = target.getAttribute("href");
|
|
66
|
+
if (!href || !href.startsWith("#"))
|
|
67
|
+
return;
|
|
68
|
+
e.preventDefault();
|
|
69
|
+
animateTo(href);
|
|
70
|
+
};
|
|
71
|
+
const links = Array.from(document.querySelectorAll('a[href^="#"]'));
|
|
72
|
+
links.forEach((a) => {
|
|
73
|
+
a.addEventListener("pointerdown", onPointerDown);
|
|
74
|
+
a.addEventListener("click", onClick);
|
|
75
|
+
a.addEventListener("keydown", onKeyDown);
|
|
76
|
+
});
|
|
77
|
+
return () => {
|
|
78
|
+
links.forEach((a) => {
|
|
79
|
+
a.removeEventListener("pointerdown", onPointerDown);
|
|
80
|
+
a.removeEventListener("click", onClick);
|
|
81
|
+
a.removeEventListener("keydown", onKeyDown);
|
|
82
|
+
});
|
|
83
|
+
};
|
|
84
|
+
}, []);
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Testimonials.d.ts","sourceRoot":"","sources":["../../../../src/templates/saasdashboard/components/Testimonials.tsx"],"names":[],"mappings":"AAKA,wBAAgB,YAAY,gCAkE3B"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { Testimonials as SharedTestimonials } from "@nextworks/blocks-sections";
|
|
3
|
+
import { cn } from "@nextworks/blocks-core";
|
|
4
|
+
export function Testimonials() {
|
|
5
|
+
return (<div className="relative">
|
|
6
|
+
{/* Gradient mesh + fine noise overlays for depth */}
|
|
7
|
+
<div aria-hidden className="pointer-events-none absolute inset-0 -z-10 [background-image:radial-gradient(60rem_60rem_at_0%_0%,rgba(59,130,246,0.08),transparent_40%),radial-gradient(50rem_50rem_at_100%_100%,rgba(168,85,247,0.06),transparent_40%)] opacity-20"/>
|
|
8
|
+
<div aria-hidden className="pointer-events-none absolute inset-0 -z-10 [background-image:radial-gradient(rgba(255,255,255,0.07)_1px,transparent_1px)] [background-size:14px_14px] opacity-[0.05]"/>
|
|
9
|
+
<SharedTestimonials testimonials={[
|
|
10
|
+
{
|
|
11
|
+
testimonialText: "DashFlow replaced 6 different tools for us. Our team productivity increased 40% in the first month.",
|
|
12
|
+
testimonialAuthor: "- Sarah Chen, Marketing Director at TechStart",
|
|
13
|
+
testimonialAuthorInitials: "SC",
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
testimonialText: "Finally, a dashboard that actually makes sense. Setup took 10 minutes, not 10 hours.",
|
|
17
|
+
testimonialAuthor: "- Mike Rodriguez, Operations Manager",
|
|
18
|
+
testimonialAuthorInitials: "MR",
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
testimonialText: "The analytics alone pay for the subscription. We spot trends weeks earlier now.",
|
|
22
|
+
testimonialAuthor: "- Lisa Park, CEO of GrowthCo",
|
|
23
|
+
testimonialAuthorInitials: "LP",
|
|
24
|
+
},
|
|
25
|
+
]} testimonialSectionHeader="What Our Customers Say" className={cn("relative")} section={{ className: "py-16 px-6 bg-background" }} container={{ className: "max-w-7xl mx-auto" }} header={{ className: "text-center mb-12" }} heading={{
|
|
26
|
+
className: "text-3xl md:text-4xl font-bold font-inter text-[var(--heading-fg)]",
|
|
27
|
+
}} grid={{
|
|
28
|
+
className: "grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-8",
|
|
29
|
+
}} card={{
|
|
30
|
+
className: "p-6 rounded-lg transition-transform duration-200 hover:-translate-y-1 bg-[var(--card-bg)] text-[var(--card-fg)] border-[var(--card-border)] shadow-[var(--card-shadow)]",
|
|
31
|
+
}} text={{
|
|
32
|
+
className: "italic font-inter font-normal text-base text-[var(--card-fg)]",
|
|
33
|
+
}} author={{
|
|
34
|
+
className: "text-sm font-medium font-inter text-[var(--card-muted-fg)]",
|
|
35
|
+
}} avatar={{
|
|
36
|
+
className: "w-12 h-12 rounded-full flex items-center justify-center text-lg font-bold bg-[var(--badge-bg)] text-[var(--badge-fg)] border-[var(--badge-border)]",
|
|
37
|
+
}} avatarText={{ className: "font-bold" }} ariaLabel="Customer testimonials"/>
|
|
38
|
+
</div>);
|
|
39
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TrustBadges.d.ts","sourceRoot":"","sources":["../../../../src/templates/saasdashboard/components/TrustBadges.tsx"],"names":[],"mappings":"AA4BA,wBAAgB,WAAW,gCAwB1B"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { TrustBadges as SharedTrustBadges } from "@nextworks/blocks-sections";
|
|
3
|
+
import { cn } from "@nextworks/blocks-core";
|
|
4
|
+
const defaultBadgesInfo = [
|
|
5
|
+
{
|
|
6
|
+
badgeText: "10,000+ businesses",
|
|
7
|
+
badgeDescription: "Trusted by",
|
|
8
|
+
badgeIcon: "📊",
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
badgeText: "SOC 2 Compliant",
|
|
12
|
+
badgeDescription: "Enterprise security",
|
|
13
|
+
badgeIcon: "🔒",
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
badgeText: "99.9% Uptime",
|
|
17
|
+
badgeDescription: "Reliable service",
|
|
18
|
+
badgeIcon: "⚡",
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
badgeText: "4.9/5 Rating",
|
|
22
|
+
badgeDescription: "Customer satisfaction",
|
|
23
|
+
badgeIcon: "⭐",
|
|
24
|
+
},
|
|
25
|
+
];
|
|
26
|
+
export function TrustBadges() {
|
|
27
|
+
return (<SharedTrustBadges badges={defaultBadgesInfo} className={cn("relative")} section={{ className: "py-8 px-6 bg-blue-950/10 dark:bg-blue-950" }} heading={{
|
|
28
|
+
className: "text-2xl font-bold font-inter text-gray-700 dark:text-gray-200",
|
|
29
|
+
}} badgesContainer={{
|
|
30
|
+
className: "flex flex-wrap items-center justify-center gap-8",
|
|
31
|
+
}} badge={{
|
|
32
|
+
className: "transition-all duration-200 grayscale hover:grayscale-0 hover:-translate-y-0.5",
|
|
33
|
+
}} text={{
|
|
34
|
+
className: "text-base font-medium font-inter text-gray-900 dark:text-white",
|
|
35
|
+
}} ariaLabel="Trust badges section"/>);
|
|
36
|
+
}
|
package/package.json
CHANGED
|
@@ -1,34 +1,34 @@
|
|
|
1
|
-
{
|
|
2
|
-
"name": "@nextworks/blocks-templates",
|
|
3
|
-
"version": "0.2.0-alpha.
|
|
4
|
-
"private": false,
|
|
5
|
-
"main": "dist/index.js",
|
|
6
|
-
"types": "dist/index.d.ts",
|
|
7
|
-
"files": [
|
|
8
|
-
"dist",
|
|
9
|
-
"package.json",
|
|
10
|
-
"README.md"
|
|
11
|
-
],
|
|
12
|
-
"repository": "github:jblh/nextworks-cli",
|
|
13
|
-
"bugs": "https://github.com/jblh/nextworks-cli/issues",
|
|
14
|
-
"homepage": "https://github.com/jblh/nextworks-cli#readme",
|
|
15
|
-
"scripts": {
|
|
16
|
-
"build": "npx tsc -p tsconfig.json"
|
|
17
|
-
},
|
|
18
|
-
"dependencies": {
|
|
19
|
-
"@nextworks/blocks-core": "0.2.0-alpha.
|
|
20
|
-
"@nextworks/blocks-sections": "0.2.0-alpha.
|
|
21
|
-
"lucide-react": "^0.542.0"
|
|
22
|
-
},
|
|
23
|
-
"devDependencies": {
|
|
24
|
-
"typescript": "^5.9.3",
|
|
25
|
-
"@types/node": "^20",
|
|
26
|
-
"@types/react": "^19",
|
|
27
|
-
"@types/react-dom": "^19"
|
|
28
|
-
},
|
|
29
|
-
"peerDependencies": {
|
|
30
|
-
"react": "^19.0.0",
|
|
31
|
-
"react-dom": "^19.0.0",
|
|
32
|
-
"next": "^15.0.0 || ^16.0.0"
|
|
33
|
-
}
|
|
34
|
-
}
|
|
1
|
+
{
|
|
2
|
+
"name": "@nextworks/blocks-templates",
|
|
3
|
+
"version": "0.2.0-alpha.11",
|
|
4
|
+
"private": false,
|
|
5
|
+
"main": "dist/index.js",
|
|
6
|
+
"types": "dist/index.d.ts",
|
|
7
|
+
"files": [
|
|
8
|
+
"dist",
|
|
9
|
+
"package.json",
|
|
10
|
+
"README.md"
|
|
11
|
+
],
|
|
12
|
+
"repository": "github:jblh/nextworks-cli",
|
|
13
|
+
"bugs": "https://github.com/jblh/nextworks-cli/issues",
|
|
14
|
+
"homepage": "https://github.com/jblh/nextworks-cli#readme",
|
|
15
|
+
"scripts": {
|
|
16
|
+
"build": "npx tsc -p tsconfig.json"
|
|
17
|
+
},
|
|
18
|
+
"dependencies": {
|
|
19
|
+
"@nextworks/blocks-core": "0.2.0-alpha.11",
|
|
20
|
+
"@nextworks/blocks-sections": "0.2.0-alpha.11",
|
|
21
|
+
"lucide-react": "^0.542.0"
|
|
22
|
+
},
|
|
23
|
+
"devDependencies": {
|
|
24
|
+
"typescript": "^5.9.3",
|
|
25
|
+
"@types/node": "^20",
|
|
26
|
+
"@types/react": "^19",
|
|
27
|
+
"@types/react-dom": "^19"
|
|
28
|
+
},
|
|
29
|
+
"peerDependencies": {
|
|
30
|
+
"react": "^19.0.0",
|
|
31
|
+
"react-dom": "^19.0.0",
|
|
32
|
+
"next": "^15.0.0 || ^16.0.0"
|
|
33
|
+
}
|
|
34
|
+
}
|