@nextworks/blocks-sections 0.1.0-alpha.8 → 0.2.0-alpha.2

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 (65) hide show
  1. package/README.md +16 -11
  2. package/dist/components/Features.d.ts +4 -2
  3. package/dist/components/Features.d.ts.map +1 -1
  4. package/dist/components/Features.jsx +2 -2
  5. package/dist/components/HeroMotion.d.ts +4 -2
  6. package/dist/components/HeroMotion.d.ts.map +1 -1
  7. package/dist-types/components/About.d.ts +93 -0
  8. package/dist-types/components/About.d.ts.map +1 -0
  9. package/dist-types/components/CTA.d.ts +118 -0
  10. package/dist-types/components/CTA.d.ts.map +1 -0
  11. package/dist-types/components/Contact.d.ts +111 -0
  12. package/dist-types/components/Contact.d.ts.map +1 -0
  13. package/dist-types/components/FAQ.d.ts +89 -0
  14. package/dist-types/components/FAQ.d.ts.map +1 -0
  15. package/dist-types/components/Features.d.ts +113 -0
  16. package/dist-types/components/Features.d.ts.map +1 -0
  17. package/dist-types/components/Footer.d.ts +120 -0
  18. package/dist-types/components/Footer.d.ts.map +1 -0
  19. package/dist-types/components/HeroMotion.d.ts +109 -0
  20. package/dist-types/components/HeroMotion.d.ts.map +1 -0
  21. package/dist-types/components/HeroOverlay.d.ts +116 -0
  22. package/dist-types/components/HeroOverlay.d.ts.map +1 -0
  23. package/dist-types/components/HeroSplit.d.ts +98 -0
  24. package/dist-types/components/HeroSplit.d.ts.map +1 -0
  25. package/dist-types/components/Navbar.d.ts +112 -0
  26. package/dist-types/components/Navbar.d.ts.map +1 -0
  27. package/dist-types/components/Newsletter.d.ts +59 -0
  28. package/dist-types/components/Newsletter.d.ts.map +1 -0
  29. package/dist-types/components/PortfolioSimple.d.ts +137 -0
  30. package/dist-types/components/PortfolioSimple.d.ts.map +1 -0
  31. package/dist-types/components/Pricing.d.ts +96 -0
  32. package/dist-types/components/Pricing.d.ts.map +1 -0
  33. package/dist-types/components/ProcessTimeline.d.ts +121 -0
  34. package/dist-types/components/ProcessTimeline.d.ts.map +1 -0
  35. package/dist-types/components/ServicesGrid.d.ts +64 -0
  36. package/dist-types/components/ServicesGrid.d.ts.map +1 -0
  37. package/dist-types/components/Team.d.ts +115 -0
  38. package/dist-types/components/Team.d.ts.map +1 -0
  39. package/dist-types/components/Testimonials.d.ts +81 -0
  40. package/dist-types/components/Testimonials.d.ts.map +1 -0
  41. package/dist-types/components/TrustBadges.d.ts +80 -0
  42. package/dist-types/components/TrustBadges.d.ts.map +1 -0
  43. package/dist-types/components/index.d.ts +21 -0
  44. package/dist-types/components/index.d.ts.map +1 -0
  45. package/dist-types/index.d.ts +2 -0
  46. package/dist-types/index.d.ts.map +1 -0
  47. package/package.json +8 -6
  48. package/dist/components/About.js +0 -129
  49. package/dist/components/CTA.js +0 -58
  50. package/dist/components/Contact.js +0 -82
  51. package/dist/components/FAQ.js +0 -78
  52. package/dist/components/Features.js +0 -109
  53. package/dist/components/Footer.js +0 -101
  54. package/dist/components/HeroMotion.js +0 -55
  55. package/dist/components/HeroOverlay.js +0 -111
  56. package/dist/components/HeroSplit.js +0 -100
  57. package/dist/components/Navbar.js +0 -80
  58. package/dist/components/Newsletter.js +0 -34
  59. package/dist/components/PortfolioSimple.js +0 -180
  60. package/dist/components/Pricing.js +0 -91
  61. package/dist/components/ProcessTimeline.js +0 -88
  62. package/dist/components/ServicesGrid.js +0 -72
  63. package/dist/components/Team.js +0 -107
  64. package/dist/components/Testimonials.js +0 -46
  65. package/dist/components/TrustBadges.js +0 -46
@@ -0,0 +1,112 @@
1
+ import React from "react";
2
+ import { type ThemeToggleProps } from "@nextworks/blocks-core";
3
+ /**
4
+ * Props for the Navbar component.
5
+ *
6
+ * @remarks
7
+ * Slot-style className overrides are available for structural parts. The mobile
8
+ * menu locks body scroll when open and restores it on close/unmount.
9
+ *
10
+ * @public
11
+ */
12
+ export interface NavbarProps {
13
+ /** Optional id to attach to the root nav element */
14
+ id?: string;
15
+ /** The height of the navbar as a Tailwind class. Example: "h-16" or "h-[13vh]" */
16
+ navHeight?: string;
17
+ /**
18
+ * The text displayed as the brand/logo.
19
+ * @defaultValue "Brand Name"
20
+ */
21
+ brand?: string;
22
+ /** Optional custom brand node (e.g., logo). Rendered left of brand text */
23
+ brandNode?: React.ReactNode;
24
+ /** Navigation links array. Each item has a label and href */
25
+ menuItems?: {
26
+ label: string;
27
+ href: string;
28
+ }[];
29
+ /**
30
+ * Call to action button config or null to hide it.
31
+ * Example: { label: "Get Started", href: "#contact" }
32
+ */
33
+ ctaButton?: {
34
+ label: string;
35
+ href: string;
36
+ } | null;
37
+ /**
38
+ * Whether to display the color mode toggle.
39
+ * @defaultValue true
40
+ */
41
+ showColorModeToggle?: boolean;
42
+ /**
43
+ * Whether navbar should stick to top when scrolling.
44
+ * @defaultValue true
45
+ */
46
+ sticky?: boolean;
47
+ /** Optional top-level class to override the nav root */
48
+ className?: string;
49
+ /** Styling configuration objects */
50
+ nav?: {
51
+ className?: string;
52
+ };
53
+ brandText?: {
54
+ className?: string;
55
+ };
56
+ links?: {
57
+ className?: string;
58
+ };
59
+ ctaButtonStyle?: {
60
+ unstyled?: boolean;
61
+ style?: React.CSSProperties;
62
+ variant?: "default" | "destructive" | "outline" | "secondary" | "ghost" | "link";
63
+ size?: "default" | "sm" | "lg" | "icon";
64
+ className?: string;
65
+ };
66
+ mobileMenu?: {
67
+ className?: string;
68
+ };
69
+ container?: {
70
+ className?: string;
71
+ };
72
+ brandWrapper?: {
73
+ className?: string;
74
+ };
75
+ desktopMenu?: {
76
+ className?: string;
77
+ };
78
+ toggleButton?: {
79
+ className?: string;
80
+ };
81
+ colorModeWrapper?: {
82
+ className?: string;
83
+ };
84
+ ctaButtonWrapper?: {
85
+ className?: string;
86
+ };
87
+ mobileMenuInner?: {
88
+ className?: string;
89
+ };
90
+ /** Additional class overrides for mobile menu link hover/background, etc. */
91
+ mobileLinks?: {
92
+ className?: string;
93
+ };
94
+ /** Props forwarded to ThemeToggle so templates can fully style it */
95
+ themeToggle?: ThemeToggleProps;
96
+ /** ARIA label for the navbar. */
97
+ ariaLabel?: string;
98
+ }
99
+ /**
100
+ * Responsive navbar with brand, menu links, color mode toggle, and optional CTA.
101
+ *
102
+ * @remarks
103
+ * - Sticky behavior is enabled by default (sticky top-0 z-50).
104
+ * - Mobile menu toggles with a button and traps body scroll while open.
105
+ * - Accessibility: Focus rings are applied to interactive elements; aria
106
+ * attributes are set on the toggle button for state.
107
+ *
108
+ * @example
109
+ * <Navbar brand="Acme" />
110
+ */
111
+ export declare function Navbar({ id, navHeight, brand, brandNode, menuItems, ctaButton, showColorModeToggle, sticky, className, nav, brandText, links, ctaButtonStyle, mobileMenu, container, brandWrapper, desktopMenu, toggleButton, colorModeWrapper, ctaButtonWrapper, mobileMenuInner, mobileLinks, themeToggle, ariaLabel, }: NavbarProps): React.JSX.Element;
112
+ //# sourceMappingURL=Navbar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Navbar.d.ts","sourceRoot":"","sources":["../../src/components/Navbar.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,59 @@
1
+ import React from "react";
2
+ /**
3
+ * Props for a compact newsletter/signup block.
4
+ *
5
+ * - Slot-style API (section, container, header, heading, subheading, form, formRow, input, button)
6
+ * - Merges consumer classes with sensible defaults via cn(...)
7
+ * - Uses CSS vars in defaults so token/theming overrides don't break
8
+ */
9
+ export interface NewsletterProps {
10
+ id?: string;
11
+ className?: string;
12
+ headingText?: string;
13
+ subheadingText?: string;
14
+ /** Called after successful submit (form event will be passed) */
15
+ onSubmit?: (e: React.FormEvent<HTMLFormElement>, email: string) => void;
16
+ /** Slot-style overrides */
17
+ section?: {
18
+ className?: string;
19
+ };
20
+ container?: {
21
+ className?: string;
22
+ };
23
+ header?: {
24
+ className?: string;
25
+ };
26
+ heading?: {
27
+ className?: string;
28
+ };
29
+ subheading?: {
30
+ className?: string;
31
+ };
32
+ form?: {
33
+ className?: string;
34
+ };
35
+ formRow?: {
36
+ className?: string;
37
+ };
38
+ input?: {
39
+ className?: string;
40
+ };
41
+ button?: {
42
+ className?: string;
43
+ variant?: any;
44
+ size?: any;
45
+ unstyled?: boolean;
46
+ };
47
+ enableMotion?: boolean;
48
+ ariaLabel?: string;
49
+ }
50
+ /**
51
+ * Compact newsletter/signup block.
52
+ *
53
+ * Usage:
54
+ * <Newsletter section={{ className: "bg-gradient-to-r ..." }} />
55
+ *
56
+ * Slots exposed: section, container, header, heading, subheading, form, formRow, input, button
57
+ */
58
+ export declare function Newsletter({ id, className, headingText, subheadingText, onSubmit, section, container, header, heading, subheading, form, formRow, input, button, enableMotion, ariaLabel, }: NewsletterProps): React.JSX.Element;
59
+ //# sourceMappingURL=Newsletter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Newsletter.d.ts","sourceRoot":"","sources":["../../src/components/Newsletter.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAC;AAI1B;;;;;;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,GAAG,CAAC;QACd,IAAI,CAAC,EAAE,GAAG,CAAC;QACX,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,qBAgEjB"}
@@ -0,0 +1,137 @@
1
+ import React from "react";
2
+ export interface PortfolioProject {
3
+ id: number;
4
+ title: string;
5
+ category: string;
6
+ industry: string;
7
+ result: string;
8
+ description: string;
9
+ image?: string;
10
+ tags: string[];
11
+ color: string;
12
+ url?: string;
13
+ }
14
+ /**
15
+ * Props for the PortfolioSimple section component.
16
+ *
17
+ * @remarks
18
+ * - Styling: slot-style className overrides are merged after defaults via cn().
19
+ * - Motion: entrance animations respect enableMotion; prefers-reduced-motion is supported.
20
+ *
21
+ * @public
22
+ */
23
+ interface PortfolioSimpleProps {
24
+ /** Optional id on root section */
25
+ id?: string;
26
+ /** Root className merged into section slot */
27
+ className?: string;
28
+ projects?: PortfolioProject[];
29
+ /**
30
+ * List of filter labels. Filtering matches project.category exactly.
31
+ * The first item is selected by default; a value of "All Projects" disables filtering.
32
+ */
33
+ filters?: string[];
34
+ /** When false, disables entrance animations and hover transitions. */
35
+ enableMotion?: boolean;
36
+ sectionTitle?: string;
37
+ sectionSubtitle?: string;
38
+ ctaTitle?: string;
39
+ ctaDescription?: string;
40
+ /** Label for the first call-to-action button */
41
+ cta1Label?: string;
42
+ /** URL or anchor target for the first CTA button */
43
+ cta1Href?: string;
44
+ /** Label for the second call-to-action button */
45
+ cta2Label?: string;
46
+ /** URL or anchor target for the second CTA button */
47
+ cta2Href?: string;
48
+ /** Styling configuration objects */
49
+ section?: {
50
+ className?: string;
51
+ };
52
+ container?: {
53
+ className?: string;
54
+ };
55
+ header?: {
56
+ className?: string;
57
+ };
58
+ title?: {
59
+ className?: string;
60
+ };
61
+ subtitle?: {
62
+ className?: string;
63
+ };
64
+ filterContainer?: {
65
+ className?: string;
66
+ };
67
+ filterButton?: {
68
+ className?: string;
69
+ };
70
+ activeFilterButton?: {
71
+ className?: string;
72
+ };
73
+ grid?: {
74
+ className?: string;
75
+ };
76
+ projectCard?: {
77
+ className?: string;
78
+ };
79
+ imageContainer?: {
80
+ className?: string;
81
+ };
82
+ projectInfo?: {
83
+ className?: string;
84
+ };
85
+ projectTitle?: {
86
+ className?: string;
87
+ };
88
+ projectDescription?: {
89
+ className?: string;
90
+ };
91
+ tagsContainer?: {
92
+ className?: string;
93
+ };
94
+ tagStyle?: {
95
+ className?: string;
96
+ };
97
+ result?: {
98
+ className?: string;
99
+ };
100
+ ctaSection?: {
101
+ className?: string;
102
+ };
103
+ ctaTitleStyle?: {
104
+ className?: string;
105
+ };
106
+ ctaDescriptionStyle?: {
107
+ className?: string;
108
+ };
109
+ ctaButtons?: {
110
+ className?: string;
111
+ };
112
+ cta1Button?: {
113
+ className?: string;
114
+ };
115
+ cta2Button?: {
116
+ className?: string;
117
+ };
118
+ /** Called when a project image or card is clicked. */
119
+ onProjectClick?: (project: PortfolioProject) => void;
120
+ onPrimaryCtaClick?: () => void;
121
+ onSecondaryCtaClick?: () => void;
122
+ /** ARIA label for the portfolio section */
123
+ ariaLabel?: string;
124
+ }
125
+ /**
126
+ * Responsive portfolio/gallery grid with simple category filtering and CTA block.
127
+ *
128
+ * @remarks
129
+ * - Filtering uses exact category match; include "All Projects" to disable filtering.
130
+ * - Accessibility: Renders a semantic <section> with aria-label; ensure images have informative titles or alt text.
131
+ *
132
+ * @example
133
+ * <PortfolioSimple sectionTitle="Our Work" />
134
+ */
135
+ export declare function PortfolioSimple({ id, className, projects, filters, enableMotion, sectionTitle, sectionSubtitle, ctaTitle, ctaDescription, cta1Label, cta1Href, cta2Label, cta2Href, section, container, header, title, subtitle, filterContainer, filterButton, activeFilterButton, grid, projectCard, imageContainer, projectInfo, projectTitle, projectDescription, tagsContainer, tagStyle, result, ctaSection, ctaTitleStyle, ctaDescriptionStyle, ctaButtons, cta1Button, cta2Button, onProjectClick, onPrimaryCtaClick, onSecondaryCtaClick, ariaLabel, }: PortfolioSimpleProps): React.JSX.Element;
136
+ export {};
137
+ //# sourceMappingURL=PortfolioSimple.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PortfolioSimple.d.ts","sourceRoot":"","sources":["../../src/components/PortfolioSimple.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,96 @@
1
+ import React from "react";
2
+ /**
3
+ * Represents individual pricing plan data.
4
+ * @public
5
+ */
6
+ export interface PricingData {
7
+ /** Title of the plan (e.g., "Pro") */
8
+ pricingPlanHeaderText?: string;
9
+ /** Display price (e.g., "$19.99") */
10
+ pricingPlanPrice?: string;
11
+ /** Feature list bullets */
12
+ pricingPlanFeatures?: string[];
13
+ /** CTA button label */
14
+ pricingPlanCTALabel?: string;
15
+ /** CTA button href */
16
+ pricingPlanCTAHref?: string;
17
+ /** Whether this plan should be highlighted */
18
+ isPopular?: boolean;
19
+ }
20
+ /**
21
+ * Props for the Pricing section component.
22
+ *
23
+ * @remarks
24
+ * - Styling: slot-style className overrides are merged after defaults via cn().
25
+ * - Motion: enableMotion toggles entrance animations and hover transitions.
26
+ * - Accessibility: uses a semantic <section> with an aria-label.
27
+ */
28
+ interface PricingProps {
29
+ /** Optional id on root. @defaultValue "pricing" */
30
+ id?: string;
31
+ /** Merge-in class for root */
32
+ className?: string;
33
+ /** Heading text displayed at the top of the pricing section. @defaultValue "Choose Your Plan" */
34
+ pricingHeadingText?: string;
35
+ /** Array of individual pricing plans to display. @defaultValue defaultPricingData */
36
+ pricingPlans?: PricingData[];
37
+ /** When false, disables entrance animations and hover transitions */
38
+ enableMotion?: boolean;
39
+ /** Styling configuration objects */
40
+ section?: {
41
+ className?: string;
42
+ };
43
+ container?: {
44
+ className?: string;
45
+ };
46
+ heading?: {
47
+ className?: string;
48
+ };
49
+ grid?: {
50
+ className?: string;
51
+ };
52
+ card?: {
53
+ className?: string;
54
+ };
55
+ header?: {
56
+ className?: string;
57
+ };
58
+ title?: {
59
+ className?: string;
60
+ };
61
+ price?: {
62
+ className?: string;
63
+ };
64
+ features?: {
65
+ className?: string;
66
+ };
67
+ featureItem?: {
68
+ className?: string;
69
+ };
70
+ cta?: {
71
+ unstyled?: boolean;
72
+ style?: React.CSSProperties;
73
+ variant?: "default" | "destructive" | "outline" | "secondary" | "ghost" | "link";
74
+ size?: "default" | "sm" | "lg" | "icon";
75
+ className?: string;
76
+ };
77
+ popularBadge?: {
78
+ className?: string;
79
+ };
80
+ /** ARIA label for the pricing section */
81
+ ariaLabel?: string;
82
+ }
83
+ /**
84
+ * Responsive pricing grid using PricingCard with optional motion.
85
+ *
86
+ * @remarks
87
+ * - Styling: exposes slot-style overrides (card, header, title, price, etc.).
88
+ * - Motion: enableMotion controls entrance animations and hover transitions.
89
+ * - Accessibility: semantic <section> with aria-label.
90
+ *
91
+ * @example
92
+ * <Pricing pricingPlans={[{ pricingPlanHeaderText: 'Pro', pricingPlanPrice: '$19' }]} />
93
+ */
94
+ export declare function Pricing({ id, className, pricingPlans, pricingHeadingText, enableMotion, section, container, heading, grid, card, header, title, price, features, featureItem, cta, popularBadge, ariaLabel, }: PricingProps): React.JSX.Element;
95
+ export {};
96
+ //# sourceMappingURL=Pricing.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Pricing.d.ts","sourceRoot":"","sources":["../../src/components/Pricing.tsx"],"names":[],"mappings":"AAEA,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"}
@@ -0,0 +1,121 @@
1
+ import React from "react";
2
+ /**
3
+ * Interface for individual process steps.
4
+ * @public
5
+ */
6
+ export interface ProcessStep {
7
+ /** Ordinal step number starting at 1 */
8
+ stepNumber: number;
9
+ /** Short title for the step */
10
+ title: string;
11
+ /** Description of what happens in this step */
12
+ description: string;
13
+ /** Optional icon or emoji to visually represent the step */
14
+ icon?: string;
15
+ }
16
+ /**
17
+ * Props for configuring the ProcessTimeline component (slot-style + cn).
18
+ *
19
+ * @remarks
20
+ * - Styling: exposes slot-style className overrides; consumer classes merge
21
+ * after defaults via cn().
22
+ * - Layout: renders a horizontal timeline on desktop and vertical on mobile.
23
+ * - Accessibility: semantic <section> with aria-label.
24
+ */
25
+ export interface ProcessTimelineProps {
26
+ /** Optional id on root */
27
+ id?: string;
28
+ /** Root className merged into section slot */
29
+ className?: string;
30
+ /** Array of steps to render. @defaultValue a 4-step discovery-to-launch flow */
31
+ steps?: ProcessStep[];
32
+ /** Section heading text. @defaultValue "Our Process" */
33
+ heading?: string;
34
+ /** Optional subheading text */
35
+ subheading?: string;
36
+ /** Styling configuration objects */
37
+ section?: {
38
+ className?: string;
39
+ };
40
+ container?: {
41
+ className?: string;
42
+ };
43
+ header?: {
44
+ className?: string;
45
+ };
46
+ headingStyle?: {
47
+ className?: string;
48
+ };
49
+ subheadingStyle?: {
50
+ className?: string;
51
+ };
52
+ timelineContainer?: {
53
+ className?: string;
54
+ };
55
+ desktopTimeline?: {
56
+ className?: string;
57
+ };
58
+ connectingLine?: {
59
+ className?: string;
60
+ };
61
+ stepContainer?: {
62
+ className?: string;
63
+ };
64
+ stepCircle?: {
65
+ className?: string;
66
+ };
67
+ stepNumber?: {
68
+ className?: string;
69
+ };
70
+ stepIcon?: {
71
+ className?: string;
72
+ };
73
+ stepContent?: {
74
+ className?: string;
75
+ };
76
+ stepTitle?: {
77
+ className?: string;
78
+ };
79
+ stepDescription?: {
80
+ className?: string;
81
+ };
82
+ mobileTimeline?: {
83
+ className?: string;
84
+ };
85
+ mobileStep?: {
86
+ className?: string;
87
+ };
88
+ mobileVerticalLine?: {
89
+ className?: string;
90
+ };
91
+ mobileStepCircle?: {
92
+ className?: string;
93
+ };
94
+ mobileStepContent?: {
95
+ className?: string;
96
+ };
97
+ mobileStepIcon?: {
98
+ className?: string;
99
+ };
100
+ mobileStepTitle?: {
101
+ className?: string;
102
+ };
103
+ mobileStepDescription?: {
104
+ className?: string;
105
+ };
106
+ /** ARIA label for the process timeline section */
107
+ ariaLabel?: string;
108
+ }
109
+ /**
110
+ * Responsive timeline showing a multi-step process for your workflow.
111
+ *
112
+ * @remarks
113
+ * - Renders horizontally on desktop and vertically on mobile.
114
+ * - Slot-style className overrides are merged after defaults via cn().
115
+ * - Uses a semantic <section> and supports aria-label.
116
+ *
117
+ * @example
118
+ * <ProcessTimeline steps={[{ stepNumber: 1, title: 'Plan', description: '...' }]} />
119
+ */
120
+ export declare function ProcessTimeline({ id, className, steps, heading, subheading, section, container, header, headingStyle, subheadingStyle, timelineContainer, desktopTimeline, connectingLine, stepContainer, stepCircle, stepNumber, stepIcon, stepContent, stepTitle, stepDescription, mobileTimeline, mobileStep, mobileVerticalLine, mobileStepCircle, mobileStepContent, mobileStepIcon, mobileStepTitle, mobileStepDescription, ariaLabel, }: ProcessTimelineProps): React.JSX.Element;
121
+ //# sourceMappingURL=ProcessTimeline.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProcessTimeline.d.ts","sourceRoot":"","sources":["../../src/components/ProcessTimeline.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,64 @@
1
+ import React from "react";
2
+ /**
3
+ * Data structure representing a single service card.
4
+ */
5
+ export interface ServiceCardData {
6
+ icon: string;
7
+ title: string;
8
+ description: string;
9
+ }
10
+ /**
11
+ * Props to configure the ServicesGrid component (upgraded slots + cn).
12
+ */
13
+ export interface ServicesGridProps {
14
+ /** Optional id on root */
15
+ id?: string;
16
+ /** Root className merged into section slot */
17
+ className?: string;
18
+ sectionHeading?: string;
19
+ servicesData?: ServiceCardData[];
20
+ /** When false, disables entrance animations and hover transitions */
21
+ enableMotion?: boolean;
22
+ /** Styling configuration objects */
23
+ section?: {
24
+ className?: string;
25
+ };
26
+ container?: {
27
+ className?: string;
28
+ };
29
+ heading?: {
30
+ className?: string;
31
+ };
32
+ grid?: {
33
+ className?: string;
34
+ };
35
+ card?: {
36
+ className?: string;
37
+ };
38
+ cardContent?: {
39
+ className?: string;
40
+ };
41
+ icon?: {
42
+ className?: string;
43
+ };
44
+ title?: {
45
+ className?: string;
46
+ };
47
+ description?: {
48
+ className?: string;
49
+ };
50
+ /** ARIA label for the services section */
51
+ ariaLabel?: string;
52
+ }
53
+ /**
54
+ * Responsive services grid with subtle motion and slot-style overrides.
55
+ *
56
+ * @remarks
57
+ * - Motion can be disabled globally with enableMotion.
58
+ * - Each card uses simple emoji icons by default; replace with real icons if preferred.
59
+ *
60
+ * @example
61
+ * <ServicesGrid servicesData={[{ icon: '⚙️', title: 'Automation', description: '...' }]} />
62
+ */
63
+ export declare function ServicesGrid({ id, className, sectionHeading, servicesData, enableMotion, section, container, heading, grid, card, cardContent, icon, title, description, ariaLabel, }: ServicesGridProps): React.JSX.Element;
64
+ //# sourceMappingURL=ServicesGrid.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ServicesGrid.d.ts","sourceRoot":"","sources":["../../src/components/ServicesGrid.tsx"],"names":[],"mappings":"AAEA,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"}