@opensite/ui 2.7.4 → 2.7.6

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 (35) hide show
  1. package/dist/about-network-spotlight.cjs +1 -2
  2. package/dist/about-network-spotlight.js +1 -2
  3. package/dist/about-story-expertise.cjs +33 -43
  4. package/dist/about-story-expertise.js +33 -43
  5. package/dist/blog-tech-insights.cjs +2 -2
  6. package/dist/blog-tech-insights.js +2 -2
  7. package/dist/cta-case-study-testimonial.cjs +6 -41
  8. package/dist/cta-case-study-testimonial.d.cts +3 -10
  9. package/dist/cta-case-study-testimonial.d.ts +3 -10
  10. package/dist/cta-case-study-testimonial.js +6 -41
  11. package/dist/cta-documentation-links.cjs +6 -31
  12. package/dist/cta-documentation-links.d.cts +1 -1
  13. package/dist/cta-documentation-links.d.ts +1 -1
  14. package/dist/cta-documentation-links.js +6 -31
  15. package/dist/cta-enterprise-split.cjs +4 -3
  16. package/dist/cta-enterprise-split.d.cts +1 -1
  17. package/dist/cta-enterprise-split.d.ts +1 -1
  18. package/dist/cta-enterprise-split.js +4 -3
  19. package/dist/cta-feature-cards-grid.cjs +9 -46
  20. package/dist/cta-feature-cards-grid.d.cts +1 -1
  21. package/dist/cta-feature-cards-grid.d.ts +1 -1
  22. package/dist/cta-feature-cards-grid.js +9 -46
  23. package/dist/cta-feature-checklist.cjs +666 -687
  24. package/dist/cta-feature-checklist.d.cts +1 -1
  25. package/dist/cta-feature-checklist.d.ts +1 -1
  26. package/dist/cta-feature-checklist.js +665 -686
  27. package/dist/feature-animated-carousel.cjs +1 -1
  28. package/dist/feature-animated-carousel.js +1 -1
  29. package/dist/hero-ad-campaign-expert.cjs +54 -36
  30. package/dist/hero-ad-campaign-expert.js +54 -36
  31. package/dist/registry.cjs +176 -199
  32. package/dist/registry.js +176 -199
  33. package/dist/stats-impact-grid.cjs +48 -39
  34. package/dist/stats-impact-grid.js +48 -39
  35. package/package.json +1 -1
@@ -1,12 +1,12 @@
1
1
  "use client";
2
2
  'use strict';
3
3
 
4
- var React = require('react');
4
+ var React3 = require('react');
5
5
  var clsx = require('clsx');
6
6
  var tailwindMerge = require('tailwind-merge');
7
- var classVarianceAuthority = require('class-variance-authority');
8
- var jsxRuntime = require('react/jsx-runtime');
9
7
  var icon = require('@page-speed/icon');
8
+ var jsxRuntime = require('react/jsx-runtime');
9
+ var classVarianceAuthority = require('class-variance-authority');
10
10
 
11
11
  function _interopNamespace(e) {
12
12
  if (e && e.__esModule) return e;
@@ -26,68 +26,534 @@ function _interopNamespace(e) {
26
26
  return Object.freeze(n);
27
27
  }
28
28
 
29
- var React__namespace = /*#__PURE__*/_interopNamespace(React);
29
+ var React3__namespace = /*#__PURE__*/_interopNamespace(React3);
30
30
 
31
31
  // components/blocks/cta/cta-feature-checklist.tsx
32
32
  function cn(...inputs) {
33
33
  return tailwindMerge.twMerge(clsx.clsx(inputs));
34
34
  }
35
- function getNestedCardBg(parentBg, variant = "muted", options) {
36
- const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
37
- if (isDark) {
38
- switch (variant) {
39
- case "muted":
40
- return "bg-background";
41
- case "card":
42
- return "bg-card";
43
- case "accent":
44
- return "bg-accent";
45
- case "subtle":
46
- return "bg-background/50";
35
+ var DEFAULT_ICON_API_KEY = "au382bi7fsh96w9h9xlrnat2jglx";
36
+ function DynamicIcon({ apiKey, ...props }) {
37
+ return /* @__PURE__ */ jsxRuntime.jsx(icon.Icon, { ...props, apiKey: apiKey ?? DEFAULT_ICON_API_KEY });
38
+ }
39
+ var maxWidthStyles = {
40
+ sm: "max-w-screen-sm",
41
+ md: "max-w-screen-md",
42
+ lg: "max-w-screen-lg",
43
+ xl: "max-w-7xl",
44
+ "2xl": "max-w-screen-2xl",
45
+ "4xl": "max-w-[1536px]",
46
+ full: "max-w-full"
47
+ };
48
+ var Container = React3__namespace.default.forwardRef(
49
+ ({ children, maxWidth = "xl", className, as = "div", ...props }, ref) => {
50
+ const Component = as;
51
+ return /* @__PURE__ */ jsxRuntime.jsx(
52
+ Component,
53
+ {
54
+ ref,
55
+ className: cn(
56
+ "mx-auto w-full px-2 sm:px-4 lg:px-8",
57
+ maxWidthStyles[maxWidth],
58
+ className
59
+ ),
60
+ ...props,
61
+ children
62
+ }
63
+ );
64
+ }
65
+ );
66
+ Container.displayName = "Container";
67
+
68
+ // lib/patternSvgs.ts
69
+ var patternSvgs = {
70
+ squareAltGrid: "https://cdn.ing/assets/files/record/286187/4gpn0yq2ptra8iwlvmwwv860ggwv",
71
+ grid1: "https://cdn.ing/assets/files/record/286186/nbdflpgp4ostrno079hygibsflp3",
72
+ noise: "https://cdn.ing/assets/i/r/286188/zrqcp9hynh3j7p2laihwzfbujgrl/noise.png",
73
+ dots: "https://cdn.ing/assets/files/record/286198/yfsjx9thvtxzhl2qtshxyhkrm524",
74
+ dotPattern: "https://cdn.ing/assets/files/record/286192/7ig0cku8aqbboiza8nuk6hw0nnsr",
75
+ dotPattern2: "https://cdn.ing/assets/files/record/286189/arez6gd2s7isn9i1o6c7sexdq7bl",
76
+ circles: "https://cdn.ing/assets/files/record/286190/gtmia3sncjtzetdshc20zf1d3c17",
77
+ waves: "https://cdn.ing/assets/files/record/286191/mqlb33fzxz9cdth1bx7if0wmpkp1",
78
+ crossPattern: "https://cdn.ing/assets/files/record/286193/9yfqwdbnqaipbp7fsb3wbzzmq472",
79
+ architect: "https://cdn.ing/assets/files/record/286194/vgs88ugpvyhxu13wqgy0acvae6re",
80
+ tinyCheckers: "https://cdn.ing/assets/files/record/286195/65efaknsw8kcpf9o3c2gybytsl5b",
81
+ p6: "https://cdn.ing/assets/i/r/286196/6kl0rqnd6mjk8j7e525fo8fo0vkc/p6.webp"
82
+ };
83
+ var maskTop = "radial-gradient(ellipse 70% 60% at 50% 0%, #000 60%, transparent 100%)";
84
+ var maskBottom = "radial-gradient(ellipse 100% 80% at 50% 100%, #000 50%, transparent 90%)";
85
+ var maskCenter = "radial-gradient(ellipse 60% 60% at 50% 50%, #000 30%, transparent 70%)";
86
+ var maskTopLeft = "radial-gradient(ellipse 80% 80% at 0% 0%, #000 50%, transparent 90%)";
87
+ var maskTopRight = "radial-gradient(ellipse 80% 80% at 100% 0%, #000 50%, transparent 90%)";
88
+ var maskBottomLeft = "radial-gradient(ellipse 80% 80% at 0% 100%, #000 50%, transparent 90%)";
89
+ var maskBottomRight = "radial-gradient(ellipse 80% 80% at 100% 100%, #000 50%, transparent 90%)";
90
+ var circuitBoardPattern = (id, mask) => /* @__PURE__ */ jsxRuntime.jsxs(
91
+ "svg",
92
+ {
93
+ className: "h-full w-full",
94
+ xmlns: "http://www.w3.org/2000/svg",
95
+ style: mask ? {
96
+ maskImage: mask,
97
+ WebkitMaskImage: mask
98
+ } : void 0,
99
+ children: [
100
+ /* @__PURE__ */ jsxRuntime.jsx("defs", { children: /* @__PURE__ */ jsxRuntime.jsxs(
101
+ "pattern",
102
+ {
103
+ id,
104
+ x: "0",
105
+ y: "0",
106
+ width: "100",
107
+ height: "100",
108
+ patternUnits: "userSpaceOnUse",
109
+ children: [
110
+ /* @__PURE__ */ jsxRuntime.jsx(
111
+ "path",
112
+ {
113
+ d: "M0 50h40M60 50h40M50 0v40M50 60v40",
114
+ stroke: "hsl(var(--muted))",
115
+ strokeWidth: "1",
116
+ fill: "none"
117
+ }
118
+ ),
119
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "50", cy: "50", r: "3", fill: "hsl(var(--muted))" }),
120
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "0", cy: "50", r: "2", fill: "hsl(var(--muted))" }),
121
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "100", cy: "50", r: "2", fill: "hsl(var(--muted))" }),
122
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "50", cy: "0", r: "2", fill: "hsl(var(--muted))" }),
123
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "50", cy: "100", r: "2", fill: "hsl(var(--muted))" })
124
+ ]
125
+ }
126
+ ) }),
127
+ /* @__PURE__ */ jsxRuntime.jsx("rect", { width: "100%", height: "100%", fill: `url(#${id})` })
128
+ ]
129
+ }
130
+ );
131
+ var gridDotsPattern = (id, mask) => /* @__PURE__ */ jsxRuntime.jsxs(
132
+ "svg",
133
+ {
134
+ className: "h-full w-full",
135
+ xmlns: "http://www.w3.org/2000/svg",
136
+ style: mask ? {
137
+ maskImage: mask,
138
+ WebkitMaskImage: mask
139
+ } : void 0,
140
+ children: [
141
+ /* @__PURE__ */ jsxRuntime.jsx("defs", { children: /* @__PURE__ */ jsxRuntime.jsxs(
142
+ "pattern",
143
+ {
144
+ id,
145
+ x: "0",
146
+ y: "0",
147
+ width: "40",
148
+ height: "40",
149
+ patternUnits: "userSpaceOnUse",
150
+ children: [
151
+ /* @__PURE__ */ jsxRuntime.jsx(
152
+ "path",
153
+ {
154
+ d: "M0 20h40M20 0v40",
155
+ stroke: "hsl(var(--muted))",
156
+ strokeWidth: "0.5",
157
+ fill: "none"
158
+ }
159
+ ),
160
+ /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "20", cy: "20", r: "2", fill: "hsl(var(--muted))" })
161
+ ]
162
+ }
163
+ ) }),
164
+ /* @__PURE__ */ jsxRuntime.jsx("rect", { width: "100%", height: "100%", fill: `url(#${id})` })
165
+ ]
166
+ }
167
+ );
168
+ var gridPattern = (size, mask) => /* @__PURE__ */ jsxRuntime.jsx(
169
+ "div",
170
+ {
171
+ className: "h-full w-full bg-[linear-gradient(to_right,_hsl(var(--muted))_1px,_transparent_1px),linear-gradient(to_bottom,_hsl(var(--muted))_1px,_transparent_1px)]",
172
+ style: {
173
+ backgroundSize: `${size}px ${size}px`,
174
+ ...mask ? {
175
+ maskImage: mask,
176
+ WebkitMaskImage: mask
177
+ } : {}
47
178
  }
48
- } else {
49
- switch (variant) {
50
- case "muted":
51
- return "bg-muted";
52
- case "card":
53
- return "bg-card";
54
- case "accent":
55
- return "bg-accent";
56
- case "subtle":
57
- return "bg-muted/50";
179
+ }
180
+ );
181
+ var diagonalCrossPattern = (mask) => /* @__PURE__ */ jsxRuntime.jsx(
182
+ "div",
183
+ {
184
+ className: "h-full w-full",
185
+ style: {
186
+ backgroundImage: "repeating-linear-gradient(45deg, transparent, transparent 32px, hsl(var(--muted)) 32px, hsl(var(--muted)) 33px), repeating-linear-gradient(135deg, transparent, transparent 32px, hsl(var(--muted)) 32px, hsl(var(--muted)) 33px)",
187
+ ...mask ? {
188
+ maskImage: mask,
189
+ WebkitMaskImage: mask
190
+ } : {}
58
191
  }
59
192
  }
60
- }
61
- function getNestedCardTextColor(parentBg, options) {
62
- const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
63
- return isDark ? "text-foreground" : "";
64
- }
65
- function getTextColor(parentBg, variant = "default", options) {
66
- const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
67
- if (isDark) {
68
- switch (variant) {
69
- case "default":
70
- return "text-foreground";
71
- case "muted":
72
- return "text-foreground/80";
73
- case "subtle":
74
- return "text-foreground/60";
75
- case "accent":
76
- return "text-accent-foreground";
193
+ );
194
+ var dashedGridMaskBase = "repeating-linear-gradient(to right, black 0px, black 3px, transparent 3px, transparent 8px), repeating-linear-gradient(to bottom, black 0px, black 3px, transparent 3px, transparent 8px)";
195
+ var dashedGridPattern = (fadeMask) => {
196
+ const mask = fadeMask ? `${dashedGridMaskBase}, ${fadeMask}` : dashedGridMaskBase;
197
+ return /* @__PURE__ */ jsxRuntime.jsx(
198
+ "div",
199
+ {
200
+ className: "h-full w-full",
201
+ style: {
202
+ backgroundImage: "linear-gradient(to right, hsl(var(--muted)) 1px, transparent 1px), linear-gradient(to bottom, hsl(var(--muted)) 1px, transparent 1px)",
203
+ backgroundSize: "20px 20px",
204
+ backgroundPosition: "0 0, 0 0",
205
+ maskImage: mask,
206
+ WebkitMaskImage: mask,
207
+ maskComposite: "intersect",
208
+ WebkitMaskComposite: "source-in"
209
+ }
77
210
  }
78
- } else {
79
- switch (variant) {
80
- case "default":
81
- return "text-foreground";
82
- case "muted":
83
- return "text-muted-foreground";
84
- case "subtle":
85
- return "text-muted-foreground/70";
86
- case "accent":
87
- return "text-primary";
211
+ );
212
+ };
213
+ var gradientGlow = (position) => /* @__PURE__ */ jsxRuntime.jsx(
214
+ "div",
215
+ {
216
+ className: cn(
217
+ "pointer-events-none absolute left-1/2 z-0 aspect-square w-3/4 -translate-x-1/2 rounded-full opacity-50 blur-3xl",
218
+ position === "top" ? "-top-1/4" : "-bottom-1/4"
219
+ ),
220
+ style: {
221
+ background: "radial-gradient(circle, hsl(var(--primary)) 0%, transparent 70%)"
222
+ }
223
+ }
224
+ );
225
+ var spotlight = (position) => /* @__PURE__ */ jsxRuntime.jsx(
226
+ "div",
227
+ {
228
+ className: cn(
229
+ "pointer-events-none absolute top-1/2 z-0 aspect-square w-3/4 -translate-y-1/2 rounded-full opacity-40 blur-3xl",
230
+ position === "left" ? "-left-1/4" : "-right-1/4"
231
+ ),
232
+ style: {
233
+ background: "radial-gradient(circle, hsl(var(--primary)) 0%, transparent 70%)"
234
+ }
235
+ }
236
+ );
237
+ var patternOverlays = {
238
+ circuitBoardBasic: () => circuitBoardPattern("circuit-board-basic"),
239
+ circuitBoardFadeTop: () => circuitBoardPattern("circuit-board-fade-top", maskTop),
240
+ circuitBoardFadeBottom: () => circuitBoardPattern("circuit-board-fade-bottom", maskBottom),
241
+ circuitBoardFadeCenter: () => circuitBoardPattern("circuit-board-fade-center", maskCenter),
242
+ circuitBoardFadeTopLeft: () => circuitBoardPattern("circuit-board-fade-top-left", maskTopLeft),
243
+ circuitBoardFadeTopRight: () => circuitBoardPattern("circuit-board-fade-top-right", maskTopRight),
244
+ circuitBoardFadeBottomLeft: () => circuitBoardPattern("circuit-board-fade-bottom-left", maskBottomLeft),
245
+ circuitBoardFadeBottomRight: () => circuitBoardPattern("circuit-board-fade-bottom-right", maskBottomRight),
246
+ dashedGridBasic: () => dashedGridPattern(),
247
+ dashedGridFadeTop: () => dashedGridPattern(maskTop),
248
+ dashedGridFadeBottom: () => dashedGridPattern(maskBottom),
249
+ dashedGridFadeCenter: () => dashedGridPattern(maskCenter),
250
+ dashedGridFadeTopLeft: () => dashedGridPattern(maskTopLeft),
251
+ dashedGridFadeTopRight: () => dashedGridPattern(maskTopRight),
252
+ dashedGridFadeBottomLeft: () => dashedGridPattern(maskBottomLeft),
253
+ dashedGridFadeBottomRight: () => dashedGridPattern(maskBottomRight),
254
+ diagonalCrossBasic: () => diagonalCrossPattern(),
255
+ diagonalCrossFadeTop: () => diagonalCrossPattern(maskTop),
256
+ diagonalCrossFadeBottom: () => diagonalCrossPattern(maskBottom),
257
+ diagonalCrossFadeCenter: () => diagonalCrossPattern(maskCenter),
258
+ diagonalCrossFadeTopLeft: () => diagonalCrossPattern(maskTopLeft),
259
+ diagonalCrossFadeTopRight: () => diagonalCrossPattern(maskTopRight),
260
+ diagonalCrossFadeBottomLeft: () => diagonalCrossPattern(maskBottomLeft),
261
+ diagonalCrossFadeBottomRight: () => diagonalCrossPattern(maskBottomRight),
262
+ gridBasic: () => gridPattern(40),
263
+ gridFadeTop: () => gridPattern(32, maskTop),
264
+ gridFadeBottom: () => gridPattern(32, maskBottom),
265
+ gridFadeCenter: () => gridPattern(40, maskCenter),
266
+ gridFadeTopLeft: () => gridPattern(32, maskTopLeft),
267
+ gridFadeTopRight: () => gridPattern(32, maskTopRight),
268
+ gridFadeBottomLeft: () => gridPattern(32, maskBottomLeft),
269
+ gridFadeBottomRight: () => gridPattern(32, maskBottomRight),
270
+ gridDotsBasic: () => gridDotsPattern("grid-dots-basic"),
271
+ gridDotsFadeCenter: () => gridDotsPattern("grid-dots-fade-center", maskCenter),
272
+ gradientGlowTop: () => gradientGlow("top"),
273
+ gradientGlowBottom: () => gradientGlow("bottom"),
274
+ spotlightLeft: () => spotlight("left"),
275
+ spotlightRight: () => spotlight("right")
276
+ };
277
+ var inlinePatternStyles = {
278
+ radialGradientTop: {
279
+ background: "radial-gradient(125% 125% at 50% 10%, hsl(var(--background)) 40%, hsl(var(--primary)) 100%)"
280
+ },
281
+ radialGradientBottom: {
282
+ background: "radial-gradient(125% 125% at 50% 90%, hsl(var(--background)) 40%, hsl(var(--primary)) 100%)"
283
+ }
284
+ };
285
+ function PatternBackground({
286
+ pattern,
287
+ opacity = 0.08,
288
+ className,
289
+ style
290
+ }) {
291
+ if (!pattern) {
292
+ return null;
293
+ }
294
+ if (pattern in inlinePatternStyles) {
295
+ const inlineStyle = inlinePatternStyles[pattern];
296
+ return /* @__PURE__ */ jsxRuntime.jsx(
297
+ "div",
298
+ {
299
+ className: cn("pointer-events-none absolute inset-0 z-0", className),
300
+ style: { ...inlineStyle, opacity, ...style },
301
+ "aria-hidden": "true"
302
+ }
303
+ );
304
+ }
305
+ if (pattern in patternOverlays) {
306
+ const Overlay = patternOverlays[pattern];
307
+ return /* @__PURE__ */ jsxRuntime.jsx(
308
+ "div",
309
+ {
310
+ className: cn("pointer-events-none absolute inset-0 z-0", className),
311
+ style: { opacity, ...style },
312
+ "aria-hidden": "true",
313
+ children: Overlay()
314
+ }
315
+ );
316
+ }
317
+ const patternUrl = pattern in patternSvgs ? patternSvgs[pattern] : pattern;
318
+ return /* @__PURE__ */ jsxRuntime.jsx(
319
+ "div",
320
+ {
321
+ className: cn("pointer-events-none absolute inset-0 z-0", className),
322
+ style: {
323
+ backgroundImage: `url(${patternUrl})`,
324
+ backgroundRepeat: "repeat",
325
+ backgroundSize: "auto",
326
+ opacity,
327
+ ...style
328
+ },
329
+ "aria-hidden": "true"
330
+ }
331
+ );
332
+ }
333
+ var backgroundStyles = {
334
+ default: "bg-background text-foreground",
335
+ white: "bg-white text-dark",
336
+ gray: "bg-muted/30 text-foreground",
337
+ dark: "bg-foreground text-background",
338
+ transparent: "bg-transparent text-foreground",
339
+ gradient: "bg-linear-to-br from-primary via-primary/90 to-foreground text-primary-foreground",
340
+ primary: "bg-primary text-primary-foreground",
341
+ secondary: "bg-secondary text-secondary-foreground",
342
+ muted: "bg-muted text-muted-foreground"
343
+ };
344
+ var spacingStyles = {
345
+ none: "py-0 md:py-0",
346
+ sm: "py-12 md:py-16",
347
+ md: "py-16 md:py-24",
348
+ lg: "py-20 md:py-32",
349
+ xl: "py-24 md:py-40",
350
+ hero: "pt-32 pb-12 md:pt-40 md:pb-40"
351
+ };
352
+ var predefinedSpacings = ["none", "sm", "md", "lg", "xl", "hero"];
353
+ var isPredefinedSpacing = (spacing) => predefinedSpacings.includes(spacing);
354
+ var Section = React3__namespace.default.forwardRef(
355
+ ({
356
+ id,
357
+ title,
358
+ subtitle,
359
+ children,
360
+ className,
361
+ style,
362
+ background = "default",
363
+ spacing = "lg",
364
+ pattern,
365
+ patternOpacity,
366
+ patternClassName,
367
+ containerClassName,
368
+ containerMaxWidth = "xl",
369
+ ...props
370
+ }, ref) => {
371
+ const effectivePatternOpacity = patternOpacity !== void 0 ? patternOpacity : pattern ? 1 : 0;
372
+ return /* @__PURE__ */ jsxRuntime.jsxs(
373
+ "section",
374
+ {
375
+ ref,
376
+ id,
377
+ className: cn(
378
+ "relative",
379
+ pattern ? "overflow-hidden" : null,
380
+ backgroundStyles[background],
381
+ isPredefinedSpacing(spacing) ? spacingStyles[spacing] : spacing,
382
+ className
383
+ ),
384
+ style,
385
+ ...props,
386
+ children: [
387
+ /* @__PURE__ */ jsxRuntime.jsx(
388
+ PatternBackground,
389
+ {
390
+ pattern,
391
+ opacity: effectivePatternOpacity,
392
+ className: patternClassName
393
+ }
394
+ ),
395
+ /* @__PURE__ */ jsxRuntime.jsxs(
396
+ Container,
397
+ {
398
+ maxWidth: containerMaxWidth,
399
+ className: cn("relative z-10", containerClassName),
400
+ children: [
401
+ (title || subtitle) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-6 text-center md:mb-16", children: [
402
+ subtitle && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-sm font-semibold uppercase tracking-wider", children: subtitle }),
403
+ title && /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-3xl font-bold tracking-tight md:text-4xl lg:text-5xl", children: title })
404
+ ] }),
405
+ children
406
+ ]
407
+ }
408
+ )
409
+ ]
410
+ }
411
+ );
412
+ }
413
+ );
414
+ Section.displayName = "Section";
415
+ var baseStyles = [
416
+ // Layout
417
+ "inline-flex items-center justify-center gap-2 whitespace-nowrap shrink-0",
418
+ // Typography - using CSS variables with sensible defaults
419
+ "font-[var(--button-font-family,inherit)]",
420
+ "font-[var(--button-font-weight,500)]",
421
+ "tracking-[var(--button-letter-spacing,0)]",
422
+ "leading-[var(--button-line-height,1.25)]",
423
+ "[text-transform:var(--button-text-transform,none)]",
424
+ "text-sm",
425
+ // Border radius
426
+ "rounded-[var(--button-radius,var(--radius,0.375rem))]",
427
+ // Smooth transition - using [transition:...] to set full shorthand property (not just transition-property)
428
+ "[transition:var(--button-transition,all_250ms_cubic-bezier(0.4,0,0.2,1))]",
429
+ // Box shadow (master level) - using [box-shadow:...] for complex multi-value shadows
430
+ "[box-shadow:var(--button-shadow,none)]",
431
+ "hover:[box-shadow:var(--button-shadow-hover,var(--button-shadow,none))]",
432
+ // Disabled state
433
+ "disabled:pointer-events-none disabled:opacity-50",
434
+ // SVG handling
435
+ "[&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0",
436
+ // Focus styles
437
+ "outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
438
+ // Invalid state
439
+ "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive"
440
+ ].join(" ");
441
+ var buttonVariants = classVarianceAuthority.cva(baseStyles, {
442
+ variants: {
443
+ variant: {
444
+ // Default (Primary) variant - full customization
445
+ default: [
446
+ "bg-[var(--button-default-bg,hsl(var(--primary)))]",
447
+ "text-[var(--button-default-fg,hsl(var(--primary-foreground)))]",
448
+ "border-[length:var(--button-default-border-width,0px)]",
449
+ "border-[color:var(--button-default-border,transparent)]",
450
+ "[box-shadow:var(--button-default-shadow,var(--button-shadow,none))]",
451
+ "hover:bg-[var(--button-default-hover-bg,hsl(var(--primary)/0.9))]",
452
+ "hover:text-[var(--button-default-hover-fg,var(--button-default-fg,hsl(var(--primary-foreground))))]",
453
+ "hover:border-[color:var(--button-default-hover-border,var(--button-default-border,transparent))]",
454
+ "hover:[box-shadow:var(--button-default-shadow-hover,var(--button-shadow-hover,var(--button-default-shadow,var(--button-shadow,none))))]"
455
+ ].join(" "),
456
+ // Destructive variant - full customization
457
+ destructive: [
458
+ "bg-[var(--button-destructive-bg,hsl(var(--destructive)))]",
459
+ "text-[var(--button-destructive-fg,white)]",
460
+ "border-[length:var(--button-destructive-border-width,0px)]",
461
+ "border-[color:var(--button-destructive-border,transparent)]",
462
+ "[box-shadow:var(--button-destructive-shadow,var(--button-shadow,none))]",
463
+ "hover:bg-[var(--button-destructive-hover-bg,hsl(var(--destructive)/0.9))]",
464
+ "hover:text-[var(--button-destructive-hover-fg,var(--button-destructive-fg,white))]",
465
+ "hover:border-[color:var(--button-destructive-hover-border,var(--button-destructive-border,transparent))]",
466
+ "hover:[box-shadow:var(--button-destructive-shadow-hover,var(--button-shadow-hover,var(--button-destructive-shadow,var(--button-shadow,none))))]",
467
+ "focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40",
468
+ "dark:bg-destructive/60"
469
+ ].join(" "),
470
+ // Outline variant - full customization with proper border handling
471
+ outline: [
472
+ "bg-[var(--button-outline-bg,hsl(var(--background)))]",
473
+ "text-[var(--button-outline-fg,inherit)]",
474
+ "border-[length:var(--button-outline-border-width,1px)]",
475
+ "border-[color:var(--button-outline-border,hsl(var(--border)))]",
476
+ "[box-shadow:var(--button-outline-shadow,var(--button-shadow,0_1px_2px_0_rgb(0_0_0/0.05)))]",
477
+ "hover:bg-[var(--button-outline-hover-bg,hsl(var(--accent)))]",
478
+ "hover:text-[var(--button-outline-hover-fg,hsl(var(--accent-foreground)))]",
479
+ "hover:border-[color:var(--button-outline-hover-border,var(--button-outline-border,hsl(var(--border))))]",
480
+ "hover:[box-shadow:var(--button-outline-shadow-hover,var(--button-shadow-hover,var(--button-outline-shadow,var(--button-shadow,none))))]",
481
+ "dark:bg-input/30 dark:border-input dark:hover:bg-input/50"
482
+ ].join(" "),
483
+ // Secondary variant - full customization
484
+ secondary: [
485
+ "bg-[var(--button-secondary-bg,hsl(var(--secondary)))]",
486
+ "text-[var(--button-secondary-fg,hsl(var(--secondary-foreground)))]",
487
+ "border-[length:var(--button-secondary-border-width,0px)]",
488
+ "border-[color:var(--button-secondary-border,transparent)]",
489
+ "[box-shadow:var(--button-secondary-shadow,var(--button-shadow,none))]",
490
+ "hover:bg-[var(--button-secondary-hover-bg,hsl(var(--secondary)/0.8))]",
491
+ "hover:text-[var(--button-secondary-hover-fg,var(--button-secondary-fg,hsl(var(--secondary-foreground))))]",
492
+ "hover:border-[color:var(--button-secondary-hover-border,var(--button-secondary-border,transparent))]",
493
+ "hover:[box-shadow:var(--button-secondary-shadow-hover,var(--button-shadow-hover,var(--button-secondary-shadow,var(--button-shadow,none))))]"
494
+ ].join(" "),
495
+ // Ghost variant - full customization
496
+ ghost: [
497
+ "bg-[var(--button-ghost-bg,transparent)]",
498
+ "text-[var(--button-ghost-fg,inherit)]",
499
+ "border-[length:var(--button-ghost-border-width,0px)]",
500
+ "border-[color:var(--button-ghost-border,transparent)]",
501
+ "[box-shadow:var(--button-ghost-shadow,var(--button-shadow,none))]",
502
+ "hover:bg-[var(--button-ghost-hover-bg,hsl(var(--accent)))]",
503
+ "hover:text-[var(--button-ghost-hover-fg,hsl(var(--accent-foreground)))]",
504
+ "hover:border-[color:var(--button-ghost-hover-border,var(--button-ghost-border,transparent))]",
505
+ "hover:[box-shadow:var(--button-ghost-shadow-hover,var(--button-shadow-hover,var(--button-ghost-shadow,var(--button-shadow,none))))]",
506
+ "dark:hover:bg-accent/50"
507
+ ].join(" "),
508
+ // Link variant - full customization
509
+ link: [
510
+ "bg-[var(--button-link-bg,transparent)]",
511
+ "text-[var(--button-link-fg,hsl(var(--primary)))]",
512
+ "border-[length:var(--button-link-border-width,0px)]",
513
+ "border-[color:var(--button-link-border,transparent)]",
514
+ "[box-shadow:var(--button-link-shadow,none)]",
515
+ "hover:bg-[var(--button-link-hover-bg,transparent)]",
516
+ "hover:text-[var(--button-link-hover-fg,var(--button-link-fg,hsl(var(--primary))))]",
517
+ "hover:[box-shadow:var(--button-link-shadow-hover,none)]",
518
+ "underline-offset-4 hover:underline"
519
+ ].join(" ")
520
+ },
521
+ size: {
522
+ default: [
523
+ "h-[var(--button-height-md,2.25rem)]",
524
+ "px-[var(--button-padding-x-md,1rem)]",
525
+ "py-[var(--button-padding-y-md,0.5rem)]",
526
+ "has-[>svg]:px-[calc(var(--button-padding-x-md,1rem)*0.75)]"
527
+ ].join(" "),
528
+ sm: [
529
+ "h-[var(--button-height-sm,2rem)]",
530
+ "px-[var(--button-padding-x-sm,0.75rem)]",
531
+ "py-[var(--button-padding-y-sm,0.25rem)]",
532
+ "gap-1.5",
533
+ "has-[>svg]:px-[calc(var(--button-padding-x-sm,0.75rem)*0.83)]"
534
+ ].join(" "),
535
+ md: [
536
+ "h-[var(--button-height-md,2.25rem)]",
537
+ "px-[var(--button-padding-x-md,1rem)]",
538
+ "py-[var(--button-padding-y-md,0.5rem)]",
539
+ "has-[>svg]:px-[calc(var(--button-padding-x-md,1rem)*0.75)]"
540
+ ].join(" "),
541
+ lg: [
542
+ "h-[var(--button-height-lg,2.5rem)]",
543
+ "px-[var(--button-padding-x-lg,1.5rem)]",
544
+ "py-[var(--button-padding-y-lg,0.5rem)]",
545
+ "has-[>svg]:px-[calc(var(--button-padding-x-lg,1.5rem)*0.67)]"
546
+ ].join(" "),
547
+ icon: "size-[var(--button-height-md,2.25rem)]",
548
+ "icon-sm": "size-[var(--button-height-sm,2rem)]",
549
+ "icon-lg": "size-[var(--button-height-lg,2.5rem)]"
88
550
  }
551
+ },
552
+ defaultVariants: {
553
+ variant: "default",
554
+ size: "default"
89
555
  }
90
- }
556
+ });
91
557
  function normalizePhoneNumber(input) {
92
558
  const trimmed = input.trim();
93
559
  if (trimmed.toLowerCase().startsWith("tel:")) {
@@ -163,7 +629,7 @@ function useNavigation({
163
629
  href,
164
630
  onClick
165
631
  } = {}) {
166
- const linkType = React__namespace.useMemo(() => {
632
+ const linkType = React3__namespace.useMemo(() => {
167
633
  if (!href || href.trim() === "") {
168
634
  return onClick ? "none" : "none";
169
635
  }
@@ -184,7 +650,7 @@ function useNavigation({
184
650
  return "internal";
185
651
  }
186
652
  }, [href, onClick]);
187
- const normalizedHref = React__namespace.useMemo(() => {
653
+ const normalizedHref = React3__namespace.useMemo(() => {
188
654
  if (!href || href.trim() === "") {
189
655
  return void 0;
190
656
  }
@@ -202,7 +668,7 @@ function useNavigation({
202
668
  return trimmed;
203
669
  }
204
670
  }, [href, linkType]);
205
- const target = React__namespace.useMemo(() => {
671
+ const target = React3__namespace.useMemo(() => {
206
672
  switch (linkType) {
207
673
  case "external":
208
674
  return "_blank";
@@ -215,7 +681,7 @@ function useNavigation({
215
681
  return void 0;
216
682
  }
217
683
  }, [linkType]);
218
- const rel = React__namespace.useMemo(() => {
684
+ const rel = React3__namespace.useMemo(() => {
219
685
  if (linkType === "external") {
220
686
  return "noopener noreferrer";
221
687
  }
@@ -224,7 +690,7 @@ function useNavigation({
224
690
  const isExternal = linkType === "external";
225
691
  const isInternal = linkType === "internal";
226
692
  const shouldUseRouter = isInternal && typeof normalizedHref === "string" && normalizedHref.startsWith("/");
227
- const handleClick = React__namespace.useCallback(
693
+ const handleClick = React3__namespace.useCallback(
228
694
  (event) => {
229
695
  if (onClick) {
230
696
  try {
@@ -244,171 +710,29 @@ function useNavigation({
244
710
  try {
245
711
  const handled = handler(normalizedHref, event.nativeEvent || event);
246
712
  if (handled !== false) {
247
- event.preventDefault();
248
- }
249
- } catch (error) {
250
- console.error("Error in navigation handler:", error);
251
- }
252
- }
253
- }
254
- }
255
- },
256
- [onClick, shouldUseRouter, normalizedHref]
257
- );
258
- return {
259
- linkType,
260
- normalizedHref,
261
- target,
262
- rel,
263
- isExternal,
264
- isInternal,
265
- shouldUseRouter,
266
- handleClick
267
- };
268
- }
269
- var baseStyles = [
270
- // Layout
271
- "inline-flex items-center justify-center gap-2 whitespace-nowrap shrink-0",
272
- // Typography - using CSS variables with sensible defaults
273
- "font-[var(--button-font-family,inherit)]",
274
- "font-[var(--button-font-weight,500)]",
275
- "tracking-[var(--button-letter-spacing,0)]",
276
- "leading-[var(--button-line-height,1.25)]",
277
- "[text-transform:var(--button-text-transform,none)]",
278
- "text-sm",
279
- // Border radius
280
- "rounded-[var(--button-radius,var(--radius,0.375rem))]",
281
- // Smooth transition - using [transition:...] to set full shorthand property (not just transition-property)
282
- "[transition:var(--button-transition,all_250ms_cubic-bezier(0.4,0,0.2,1))]",
283
- // Box shadow (master level) - using [box-shadow:...] for complex multi-value shadows
284
- "[box-shadow:var(--button-shadow,none)]",
285
- "hover:[box-shadow:var(--button-shadow-hover,var(--button-shadow,none))]",
286
- // Disabled state
287
- "disabled:pointer-events-none disabled:opacity-50",
288
- // SVG handling
289
- "[&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 [&_svg]:shrink-0",
290
- // Focus styles
291
- "outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]",
292
- // Invalid state
293
- "aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive"
294
- ].join(" ");
295
- var buttonVariants = classVarianceAuthority.cva(baseStyles, {
296
- variants: {
297
- variant: {
298
- // Default (Primary) variant - full customization
299
- default: [
300
- "bg-[var(--button-default-bg,hsl(var(--primary)))]",
301
- "text-[var(--button-default-fg,hsl(var(--primary-foreground)))]",
302
- "border-[length:var(--button-default-border-width,0px)]",
303
- "border-[color:var(--button-default-border,transparent)]",
304
- "[box-shadow:var(--button-default-shadow,var(--button-shadow,none))]",
305
- "hover:bg-[var(--button-default-hover-bg,hsl(var(--primary)/0.9))]",
306
- "hover:text-[var(--button-default-hover-fg,var(--button-default-fg,hsl(var(--primary-foreground))))]",
307
- "hover:border-[color:var(--button-default-hover-border,var(--button-default-border,transparent))]",
308
- "hover:[box-shadow:var(--button-default-shadow-hover,var(--button-shadow-hover,var(--button-default-shadow,var(--button-shadow,none))))]"
309
- ].join(" "),
310
- // Destructive variant - full customization
311
- destructive: [
312
- "bg-[var(--button-destructive-bg,hsl(var(--destructive)))]",
313
- "text-[var(--button-destructive-fg,white)]",
314
- "border-[length:var(--button-destructive-border-width,0px)]",
315
- "border-[color:var(--button-destructive-border,transparent)]",
316
- "[box-shadow:var(--button-destructive-shadow,var(--button-shadow,none))]",
317
- "hover:bg-[var(--button-destructive-hover-bg,hsl(var(--destructive)/0.9))]",
318
- "hover:text-[var(--button-destructive-hover-fg,var(--button-destructive-fg,white))]",
319
- "hover:border-[color:var(--button-destructive-hover-border,var(--button-destructive-border,transparent))]",
320
- "hover:[box-shadow:var(--button-destructive-shadow-hover,var(--button-shadow-hover,var(--button-destructive-shadow,var(--button-shadow,none))))]",
321
- "focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40",
322
- "dark:bg-destructive/60"
323
- ].join(" "),
324
- // Outline variant - full customization with proper border handling
325
- outline: [
326
- "bg-[var(--button-outline-bg,hsl(var(--background)))]",
327
- "text-[var(--button-outline-fg,inherit)]",
328
- "border-[length:var(--button-outline-border-width,1px)]",
329
- "border-[color:var(--button-outline-border,hsl(var(--border)))]",
330
- "[box-shadow:var(--button-outline-shadow,var(--button-shadow,0_1px_2px_0_rgb(0_0_0/0.05)))]",
331
- "hover:bg-[var(--button-outline-hover-bg,hsl(var(--accent)))]",
332
- "hover:text-[var(--button-outline-hover-fg,hsl(var(--accent-foreground)))]",
333
- "hover:border-[color:var(--button-outline-hover-border,var(--button-outline-border,hsl(var(--border))))]",
334
- "hover:[box-shadow:var(--button-outline-shadow-hover,var(--button-shadow-hover,var(--button-outline-shadow,var(--button-shadow,none))))]",
335
- "dark:bg-input/30 dark:border-input dark:hover:bg-input/50"
336
- ].join(" "),
337
- // Secondary variant - full customization
338
- secondary: [
339
- "bg-[var(--button-secondary-bg,hsl(var(--secondary)))]",
340
- "text-[var(--button-secondary-fg,hsl(var(--secondary-foreground)))]",
341
- "border-[length:var(--button-secondary-border-width,0px)]",
342
- "border-[color:var(--button-secondary-border,transparent)]",
343
- "[box-shadow:var(--button-secondary-shadow,var(--button-shadow,none))]",
344
- "hover:bg-[var(--button-secondary-hover-bg,hsl(var(--secondary)/0.8))]",
345
- "hover:text-[var(--button-secondary-hover-fg,var(--button-secondary-fg,hsl(var(--secondary-foreground))))]",
346
- "hover:border-[color:var(--button-secondary-hover-border,var(--button-secondary-border,transparent))]",
347
- "hover:[box-shadow:var(--button-secondary-shadow-hover,var(--button-shadow-hover,var(--button-secondary-shadow,var(--button-shadow,none))))]"
348
- ].join(" "),
349
- // Ghost variant - full customization
350
- ghost: [
351
- "bg-[var(--button-ghost-bg,transparent)]",
352
- "text-[var(--button-ghost-fg,inherit)]",
353
- "border-[length:var(--button-ghost-border-width,0px)]",
354
- "border-[color:var(--button-ghost-border,transparent)]",
355
- "[box-shadow:var(--button-ghost-shadow,var(--button-shadow,none))]",
356
- "hover:bg-[var(--button-ghost-hover-bg,hsl(var(--accent)))]",
357
- "hover:text-[var(--button-ghost-hover-fg,hsl(var(--accent-foreground)))]",
358
- "hover:border-[color:var(--button-ghost-hover-border,var(--button-ghost-border,transparent))]",
359
- "hover:[box-shadow:var(--button-ghost-shadow-hover,var(--button-shadow-hover,var(--button-ghost-shadow,var(--button-shadow,none))))]",
360
- "dark:hover:bg-accent/50"
361
- ].join(" "),
362
- // Link variant - full customization
363
- link: [
364
- "bg-[var(--button-link-bg,transparent)]",
365
- "text-[var(--button-link-fg,hsl(var(--primary)))]",
366
- "border-[length:var(--button-link-border-width,0px)]",
367
- "border-[color:var(--button-link-border,transparent)]",
368
- "[box-shadow:var(--button-link-shadow,none)]",
369
- "hover:bg-[var(--button-link-hover-bg,transparent)]",
370
- "hover:text-[var(--button-link-hover-fg,var(--button-link-fg,hsl(var(--primary))))]",
371
- "hover:[box-shadow:var(--button-link-shadow-hover,none)]",
372
- "underline-offset-4 hover:underline"
373
- ].join(" ")
374
- },
375
- size: {
376
- default: [
377
- "h-[var(--button-height-md,2.25rem)]",
378
- "px-[var(--button-padding-x-md,1rem)]",
379
- "py-[var(--button-padding-y-md,0.5rem)]",
380
- "has-[>svg]:px-[calc(var(--button-padding-x-md,1rem)*0.75)]"
381
- ].join(" "),
382
- sm: [
383
- "h-[var(--button-height-sm,2rem)]",
384
- "px-[var(--button-padding-x-sm,0.75rem)]",
385
- "py-[var(--button-padding-y-sm,0.25rem)]",
386
- "gap-1.5",
387
- "has-[>svg]:px-[calc(var(--button-padding-x-sm,0.75rem)*0.83)]"
388
- ].join(" "),
389
- md: [
390
- "h-[var(--button-height-md,2.25rem)]",
391
- "px-[var(--button-padding-x-md,1rem)]",
392
- "py-[var(--button-padding-y-md,0.5rem)]",
393
- "has-[>svg]:px-[calc(var(--button-padding-x-md,1rem)*0.75)]"
394
- ].join(" "),
395
- lg: [
396
- "h-[var(--button-height-lg,2.5rem)]",
397
- "px-[var(--button-padding-x-lg,1.5rem)]",
398
- "py-[var(--button-padding-y-lg,0.5rem)]",
399
- "has-[>svg]:px-[calc(var(--button-padding-x-lg,1.5rem)*0.67)]"
400
- ].join(" "),
401
- icon: "size-[var(--button-height-md,2.25rem)]",
402
- "icon-sm": "size-[var(--button-height-sm,2rem)]",
403
- "icon-lg": "size-[var(--button-height-lg,2.5rem)]"
404
- }
405
- },
406
- defaultVariants: {
407
- variant: "default",
408
- size: "default"
409
- }
410
- });
411
- var Pressable = React__namespace.forwardRef(
713
+ event.preventDefault();
714
+ }
715
+ } catch (error) {
716
+ console.error("Error in navigation handler:", error);
717
+ }
718
+ }
719
+ }
720
+ }
721
+ },
722
+ [onClick, shouldUseRouter, normalizedHref]
723
+ );
724
+ return {
725
+ linkType,
726
+ normalizedHref,
727
+ target,
728
+ rel,
729
+ isExternal,
730
+ isInternal,
731
+ shouldUseRouter,
732
+ handleClick
733
+ };
734
+ }
735
+ var Pressable = React3__namespace.forwardRef(
412
736
  ({
413
737
  children,
414
738
  className,
@@ -446,446 +770,130 @@ var Pressable = React__namespace.forwardRef(
446
770
  Object.entries(props).filter(([key]) => key.startsWith("data-"))
447
771
  );
448
772
  const buttonDataAttributes = shouldApplyButtonStyles ? {
449
- "data-slot": "button",
450
- "data-variant": variant ?? "default",
451
- "data-size": size ?? "default"
452
- } : {};
453
- const commonProps = {
454
- className: combinedClassName,
455
- onClick: handleClick,
456
- "aria-label": ariaLabel,
457
- "aria-describedby": ariaDescribedby,
458
- id,
459
- ...dataProps,
460
- ...buttonDataAttributes
461
- };
462
- if (finalComponentType === "a" && shouldRenderLink) {
463
- return /* @__PURE__ */ jsxRuntime.jsx(
464
- "a",
465
- {
466
- ref,
467
- href: normalizedHref,
468
- target,
469
- rel,
470
- ...commonProps,
471
- ...props,
472
- children
473
- }
474
- );
475
- }
476
- if (finalComponentType === "button") {
477
- return /* @__PURE__ */ jsxRuntime.jsx(
478
- "button",
479
- {
480
- ref,
481
- type: props.type || "button",
482
- ...commonProps,
483
- ...props,
484
- children
485
- }
486
- );
487
- }
488
- if (finalComponentType === "div") {
489
- return /* @__PURE__ */ jsxRuntime.jsx(
490
- "div",
491
- {
492
- ref,
493
- ...commonProps,
494
- children
495
- }
496
- );
497
- }
498
- return /* @__PURE__ */ jsxRuntime.jsx(
499
- "span",
500
- {
501
- ref,
502
- ...commonProps,
503
- children
504
- }
505
- );
506
- }
507
- );
508
- Pressable.displayName = "Pressable";
509
- var DEFAULT_ICON_API_KEY = "au382bi7fsh96w9h9xlrnat2jglx";
510
- function DynamicIcon({ apiKey, ...props }) {
511
- return /* @__PURE__ */ jsxRuntime.jsx(icon.Icon, { ...props, apiKey: apiKey ?? DEFAULT_ICON_API_KEY });
512
- }
513
- var maxWidthStyles = {
514
- sm: "max-w-screen-sm",
515
- md: "max-w-screen-md",
516
- lg: "max-w-screen-lg",
517
- xl: "max-w-7xl",
518
- "2xl": "max-w-screen-2xl",
519
- "4xl": "max-w-[1536px]",
520
- full: "max-w-full"
521
- };
522
- var Container = React__namespace.default.forwardRef(
523
- ({ children, maxWidth = "xl", className, as = "div", ...props }, ref) => {
524
- const Component = as;
525
- return /* @__PURE__ */ jsxRuntime.jsx(
526
- Component,
527
- {
528
- ref,
529
- className: cn(
530
- "mx-auto w-full px-2 sm:px-4 lg:px-8",
531
- maxWidthStyles[maxWidth],
532
- className
533
- ),
534
- ...props,
535
- children
536
- }
537
- );
538
- }
539
- );
540
- Container.displayName = "Container";
541
-
542
- // lib/patternSvgs.ts
543
- var patternSvgs = {
544
- squareAltGrid: "https://cdn.ing/assets/files/record/286187/4gpn0yq2ptra8iwlvmwwv860ggwv",
545
- grid1: "https://cdn.ing/assets/files/record/286186/nbdflpgp4ostrno079hygibsflp3",
546
- noise: "https://cdn.ing/assets/i/r/286188/zrqcp9hynh3j7p2laihwzfbujgrl/noise.png",
547
- dots: "https://cdn.ing/assets/files/record/286198/yfsjx9thvtxzhl2qtshxyhkrm524",
548
- dotPattern: "https://cdn.ing/assets/files/record/286192/7ig0cku8aqbboiza8nuk6hw0nnsr",
549
- dotPattern2: "https://cdn.ing/assets/files/record/286189/arez6gd2s7isn9i1o6c7sexdq7bl",
550
- circles: "https://cdn.ing/assets/files/record/286190/gtmia3sncjtzetdshc20zf1d3c17",
551
- waves: "https://cdn.ing/assets/files/record/286191/mqlb33fzxz9cdth1bx7if0wmpkp1",
552
- crossPattern: "https://cdn.ing/assets/files/record/286193/9yfqwdbnqaipbp7fsb3wbzzmq472",
553
- architect: "https://cdn.ing/assets/files/record/286194/vgs88ugpvyhxu13wqgy0acvae6re",
554
- tinyCheckers: "https://cdn.ing/assets/files/record/286195/65efaknsw8kcpf9o3c2gybytsl5b",
555
- p6: "https://cdn.ing/assets/i/r/286196/6kl0rqnd6mjk8j7e525fo8fo0vkc/p6.webp"
556
- };
557
- var maskTop = "radial-gradient(ellipse 70% 60% at 50% 0%, #000 60%, transparent 100%)";
558
- var maskBottom = "radial-gradient(ellipse 100% 80% at 50% 100%, #000 50%, transparent 90%)";
559
- var maskCenter = "radial-gradient(ellipse 60% 60% at 50% 50%, #000 30%, transparent 70%)";
560
- var maskTopLeft = "radial-gradient(ellipse 80% 80% at 0% 0%, #000 50%, transparent 90%)";
561
- var maskTopRight = "radial-gradient(ellipse 80% 80% at 100% 0%, #000 50%, transparent 90%)";
562
- var maskBottomLeft = "radial-gradient(ellipse 80% 80% at 0% 100%, #000 50%, transparent 90%)";
563
- var maskBottomRight = "radial-gradient(ellipse 80% 80% at 100% 100%, #000 50%, transparent 90%)";
564
- var circuitBoardPattern = (id, mask) => /* @__PURE__ */ jsxRuntime.jsxs(
565
- "svg",
566
- {
567
- className: "h-full w-full",
568
- xmlns: "http://www.w3.org/2000/svg",
569
- style: mask ? {
570
- maskImage: mask,
571
- WebkitMaskImage: mask
572
- } : void 0,
573
- children: [
574
- /* @__PURE__ */ jsxRuntime.jsx("defs", { children: /* @__PURE__ */ jsxRuntime.jsxs(
575
- "pattern",
576
- {
577
- id,
578
- x: "0",
579
- y: "0",
580
- width: "100",
581
- height: "100",
582
- patternUnits: "userSpaceOnUse",
583
- children: [
584
- /* @__PURE__ */ jsxRuntime.jsx(
585
- "path",
586
- {
587
- d: "M0 50h40M60 50h40M50 0v40M50 60v40",
588
- stroke: "hsl(var(--muted))",
589
- strokeWidth: "1",
590
- fill: "none"
591
- }
592
- ),
593
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "50", cy: "50", r: "3", fill: "hsl(var(--muted))" }),
594
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "0", cy: "50", r: "2", fill: "hsl(var(--muted))" }),
595
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "100", cy: "50", r: "2", fill: "hsl(var(--muted))" }),
596
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "50", cy: "0", r: "2", fill: "hsl(var(--muted))" }),
597
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "50", cy: "100", r: "2", fill: "hsl(var(--muted))" })
598
- ]
599
- }
600
- ) }),
601
- /* @__PURE__ */ jsxRuntime.jsx("rect", { width: "100%", height: "100%", fill: `url(#${id})` })
602
- ]
603
- }
604
- );
605
- var gridDotsPattern = (id, mask) => /* @__PURE__ */ jsxRuntime.jsxs(
606
- "svg",
607
- {
608
- className: "h-full w-full",
609
- xmlns: "http://www.w3.org/2000/svg",
610
- style: mask ? {
611
- maskImage: mask,
612
- WebkitMaskImage: mask
613
- } : void 0,
614
- children: [
615
- /* @__PURE__ */ jsxRuntime.jsx("defs", { children: /* @__PURE__ */ jsxRuntime.jsxs(
616
- "pattern",
617
- {
618
- id,
619
- x: "0",
620
- y: "0",
621
- width: "40",
622
- height: "40",
623
- patternUnits: "userSpaceOnUse",
624
- children: [
625
- /* @__PURE__ */ jsxRuntime.jsx(
626
- "path",
627
- {
628
- d: "M0 20h40M20 0v40",
629
- stroke: "hsl(var(--muted))",
630
- strokeWidth: "0.5",
631
- fill: "none"
632
- }
633
- ),
634
- /* @__PURE__ */ jsxRuntime.jsx("circle", { cx: "20", cy: "20", r: "2", fill: "hsl(var(--muted))" })
635
- ]
636
- }
637
- ) }),
638
- /* @__PURE__ */ jsxRuntime.jsx("rect", { width: "100%", height: "100%", fill: `url(#${id})` })
639
- ]
640
- }
641
- );
642
- var gridPattern = (size, mask) => /* @__PURE__ */ jsxRuntime.jsx(
643
- "div",
644
- {
645
- className: "h-full w-full bg-[linear-gradient(to_right,_hsl(var(--muted))_1px,_transparent_1px),linear-gradient(to_bottom,_hsl(var(--muted))_1px,_transparent_1px)]",
646
- style: {
647
- backgroundSize: `${size}px ${size}px`,
648
- ...mask ? {
649
- maskImage: mask,
650
- WebkitMaskImage: mask
651
- } : {}
652
- }
653
- }
654
- );
655
- var diagonalCrossPattern = (mask) => /* @__PURE__ */ jsxRuntime.jsx(
656
- "div",
657
- {
658
- className: "h-full w-full",
659
- style: {
660
- backgroundImage: "repeating-linear-gradient(45deg, transparent, transparent 32px, hsl(var(--muted)) 32px, hsl(var(--muted)) 33px), repeating-linear-gradient(135deg, transparent, transparent 32px, hsl(var(--muted)) 32px, hsl(var(--muted)) 33px)",
661
- ...mask ? {
662
- maskImage: mask,
663
- WebkitMaskImage: mask
664
- } : {}
665
- }
666
- }
667
- );
668
- var dashedGridMaskBase = "repeating-linear-gradient(to right, black 0px, black 3px, transparent 3px, transparent 8px), repeating-linear-gradient(to bottom, black 0px, black 3px, transparent 3px, transparent 8px)";
669
- var dashedGridPattern = (fadeMask) => {
670
- const mask = fadeMask ? `${dashedGridMaskBase}, ${fadeMask}` : dashedGridMaskBase;
671
- return /* @__PURE__ */ jsxRuntime.jsx(
672
- "div",
673
- {
674
- className: "h-full w-full",
675
- style: {
676
- backgroundImage: "linear-gradient(to right, hsl(var(--muted)) 1px, transparent 1px), linear-gradient(to bottom, hsl(var(--muted)) 1px, transparent 1px)",
677
- backgroundSize: "20px 20px",
678
- backgroundPosition: "0 0, 0 0",
679
- maskImage: mask,
680
- WebkitMaskImage: mask,
681
- maskComposite: "intersect",
682
- WebkitMaskComposite: "source-in"
683
- }
773
+ "data-slot": "button",
774
+ "data-variant": variant ?? "default",
775
+ "data-size": size ?? "default"
776
+ } : {};
777
+ const commonProps = {
778
+ className: combinedClassName,
779
+ onClick: handleClick,
780
+ "aria-label": ariaLabel,
781
+ "aria-describedby": ariaDescribedby,
782
+ id,
783
+ ...dataProps,
784
+ ...buttonDataAttributes
785
+ };
786
+ if (finalComponentType === "a" && shouldRenderLink) {
787
+ return /* @__PURE__ */ jsxRuntime.jsx(
788
+ "a",
789
+ {
790
+ ref,
791
+ href: normalizedHref,
792
+ target,
793
+ rel,
794
+ ...commonProps,
795
+ ...props,
796
+ children
797
+ }
798
+ );
684
799
  }
685
- );
686
- };
687
- var gradientGlow = (position) => /* @__PURE__ */ jsxRuntime.jsx(
688
- "div",
689
- {
690
- className: cn(
691
- "pointer-events-none absolute left-1/2 z-0 aspect-square w-3/4 -translate-x-1/2 rounded-full opacity-50 blur-3xl",
692
- position === "top" ? "-top-1/4" : "-bottom-1/4"
693
- ),
694
- style: {
695
- background: "radial-gradient(circle, hsl(var(--primary)) 0%, transparent 70%)"
800
+ if (finalComponentType === "button") {
801
+ return /* @__PURE__ */ jsxRuntime.jsx(
802
+ "button",
803
+ {
804
+ ref,
805
+ type: props.type || "button",
806
+ ...commonProps,
807
+ ...props,
808
+ children
809
+ }
810
+ );
696
811
  }
697
- }
698
- );
699
- var spotlight = (position) => /* @__PURE__ */ jsxRuntime.jsx(
700
- "div",
701
- {
702
- className: cn(
703
- "pointer-events-none absolute top-1/2 z-0 aspect-square w-3/4 -translate-y-1/2 rounded-full opacity-40 blur-3xl",
704
- position === "left" ? "-left-1/4" : "-right-1/4"
705
- ),
706
- style: {
707
- background: "radial-gradient(circle, hsl(var(--primary)) 0%, transparent 70%)"
812
+ if (finalComponentType === "div") {
813
+ return /* @__PURE__ */ jsxRuntime.jsx(
814
+ "div",
815
+ {
816
+ ref,
817
+ ...commonProps,
818
+ children
819
+ }
820
+ );
708
821
  }
709
- }
710
- );
711
- var patternOverlays = {
712
- circuitBoardBasic: () => circuitBoardPattern("circuit-board-basic"),
713
- circuitBoardFadeTop: () => circuitBoardPattern("circuit-board-fade-top", maskTop),
714
- circuitBoardFadeBottom: () => circuitBoardPattern("circuit-board-fade-bottom", maskBottom),
715
- circuitBoardFadeCenter: () => circuitBoardPattern("circuit-board-fade-center", maskCenter),
716
- circuitBoardFadeTopLeft: () => circuitBoardPattern("circuit-board-fade-top-left", maskTopLeft),
717
- circuitBoardFadeTopRight: () => circuitBoardPattern("circuit-board-fade-top-right", maskTopRight),
718
- circuitBoardFadeBottomLeft: () => circuitBoardPattern("circuit-board-fade-bottom-left", maskBottomLeft),
719
- circuitBoardFadeBottomRight: () => circuitBoardPattern("circuit-board-fade-bottom-right", maskBottomRight),
720
- dashedGridBasic: () => dashedGridPattern(),
721
- dashedGridFadeTop: () => dashedGridPattern(maskTop),
722
- dashedGridFadeBottom: () => dashedGridPattern(maskBottom),
723
- dashedGridFadeCenter: () => dashedGridPattern(maskCenter),
724
- dashedGridFadeTopLeft: () => dashedGridPattern(maskTopLeft),
725
- dashedGridFadeTopRight: () => dashedGridPattern(maskTopRight),
726
- dashedGridFadeBottomLeft: () => dashedGridPattern(maskBottomLeft),
727
- dashedGridFadeBottomRight: () => dashedGridPattern(maskBottomRight),
728
- diagonalCrossBasic: () => diagonalCrossPattern(),
729
- diagonalCrossFadeTop: () => diagonalCrossPattern(maskTop),
730
- diagonalCrossFadeBottom: () => diagonalCrossPattern(maskBottom),
731
- diagonalCrossFadeCenter: () => diagonalCrossPattern(maskCenter),
732
- diagonalCrossFadeTopLeft: () => diagonalCrossPattern(maskTopLeft),
733
- diagonalCrossFadeTopRight: () => diagonalCrossPattern(maskTopRight),
734
- diagonalCrossFadeBottomLeft: () => diagonalCrossPattern(maskBottomLeft),
735
- diagonalCrossFadeBottomRight: () => diagonalCrossPattern(maskBottomRight),
736
- gridBasic: () => gridPattern(40),
737
- gridFadeTop: () => gridPattern(32, maskTop),
738
- gridFadeBottom: () => gridPattern(32, maskBottom),
739
- gridFadeCenter: () => gridPattern(40, maskCenter),
740
- gridFadeTopLeft: () => gridPattern(32, maskTopLeft),
741
- gridFadeTopRight: () => gridPattern(32, maskTopRight),
742
- gridFadeBottomLeft: () => gridPattern(32, maskBottomLeft),
743
- gridFadeBottomRight: () => gridPattern(32, maskBottomRight),
744
- gridDotsBasic: () => gridDotsPattern("grid-dots-basic"),
745
- gridDotsFadeCenter: () => gridDotsPattern("grid-dots-fade-center", maskCenter),
746
- gradientGlowTop: () => gradientGlow("top"),
747
- gradientGlowBottom: () => gradientGlow("bottom"),
748
- spotlightLeft: () => spotlight("left"),
749
- spotlightRight: () => spotlight("right")
750
- };
751
- var inlinePatternStyles = {
752
- radialGradientTop: {
753
- background: "radial-gradient(125% 125% at 50% 10%, hsl(var(--background)) 40%, hsl(var(--primary)) 100%)"
754
- },
755
- radialGradientBottom: {
756
- background: "radial-gradient(125% 125% at 50% 90%, hsl(var(--background)) 40%, hsl(var(--primary)) 100%)"
757
- }
758
- };
759
- function PatternBackground({
760
- pattern,
761
- opacity = 0.08,
762
- className,
763
- style
764
- }) {
765
- if (!pattern) {
766
- return null;
767
- }
768
- if (pattern in inlinePatternStyles) {
769
- const inlineStyle = inlinePatternStyles[pattern];
770
822
  return /* @__PURE__ */ jsxRuntime.jsx(
771
- "div",
823
+ "span",
772
824
  {
773
- className: cn("pointer-events-none absolute inset-0 z-0", className),
774
- style: { ...inlineStyle, opacity, ...style },
775
- "aria-hidden": "true"
825
+ ref,
826
+ ...commonProps,
827
+ children
776
828
  }
777
829
  );
778
830
  }
779
- if (pattern in patternOverlays) {
780
- const Overlay = patternOverlays[pattern];
831
+ );
832
+ Pressable.displayName = "Pressable";
833
+ var MOBILE_CLASSES = {
834
+ "fit-left": "items-start md:items-center",
835
+ "fit-center": "items-center",
836
+ "fit-right": "items-end md:items-center",
837
+ "full-left": "items-stretch md:items-center",
838
+ "full-center": "items-stretch md:items-center",
839
+ "full-right": "items-stretch md:items-center"
840
+ };
841
+ function BlockActions({
842
+ mobileConfig,
843
+ actionsClassName,
844
+ verticalSpacing = "mt-4 md:mt-8",
845
+ actions,
846
+ actionsSlot
847
+ }) {
848
+ const width = mobileConfig?.width ?? "full";
849
+ const position = mobileConfig?.position ?? "center";
850
+ const mobileLayoutClass = MOBILE_CLASSES[`${width}-${position}`];
851
+ if (actionsSlot) {
852
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { children: actionsSlot });
853
+ } else if (actions && actions?.length > 0) {
781
854
  return /* @__PURE__ */ jsxRuntime.jsx(
782
855
  "div",
783
856
  {
784
- className: cn("pointer-events-none absolute inset-0 z-0", className),
785
- style: { opacity, ...style },
786
- "aria-hidden": "true",
787
- children: Overlay()
857
+ className: cn(
858
+ "flex flex-col md:flex-row flex-wrap gap-4",
859
+ mobileLayoutClass,
860
+ actionsClassName,
861
+ verticalSpacing
862
+ ),
863
+ children: actions.map((action, index) => /* @__PURE__ */ jsxRuntime.jsx(ActionComponent, { action }, index))
788
864
  }
789
865
  );
866
+ } else {
867
+ return null;
790
868
  }
791
- const patternUrl = pattern in patternSvgs ? patternSvgs[pattern] : pattern;
869
+ }
870
+ function ActionComponent({ action }) {
871
+ const {
872
+ label,
873
+ icon,
874
+ iconAfter,
875
+ children,
876
+ href,
877
+ onClick,
878
+ className: actionClassName,
879
+ ...pressableProps
880
+ } = action;
792
881
  return /* @__PURE__ */ jsxRuntime.jsx(
793
- "div",
882
+ Pressable,
794
883
  {
795
- className: cn("pointer-events-none absolute inset-0 z-0", className),
796
- style: {
797
- backgroundImage: `url(${patternUrl})`,
798
- backgroundRepeat: "repeat",
799
- backgroundSize: "auto",
800
- opacity,
801
- ...style
802
- },
803
- "aria-hidden": "true"
884
+ href,
885
+ onClick,
886
+ asButton: action.asButton ?? true,
887
+ className: actionClassName,
888
+ ...pressableProps,
889
+ children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
890
+ icon,
891
+ label,
892
+ iconAfter
893
+ ] })
804
894
  }
805
895
  );
806
896
  }
807
- var backgroundStyles = {
808
- default: "bg-background text-foreground",
809
- white: "bg-white text-dark",
810
- gray: "bg-muted/30 text-foreground",
811
- dark: "bg-foreground text-background",
812
- transparent: "bg-transparent text-foreground",
813
- gradient: "bg-linear-to-br from-primary via-primary/90 to-foreground text-primary-foreground",
814
- primary: "bg-primary text-primary-foreground",
815
- secondary: "bg-secondary text-secondary-foreground",
816
- muted: "bg-muted text-muted-foreground"
817
- };
818
- var spacingStyles = {
819
- none: "py-0 md:py-0",
820
- sm: "py-12 md:py-16",
821
- md: "py-16 md:py-24",
822
- lg: "py-20 md:py-32",
823
- xl: "py-24 md:py-40",
824
- hero: "pt-32 pb-12 md:pt-40 md:pb-40"
825
- };
826
- var predefinedSpacings = ["none", "sm", "md", "lg", "xl", "hero"];
827
- var isPredefinedSpacing = (spacing) => predefinedSpacings.includes(spacing);
828
- var Section = React__namespace.default.forwardRef(
829
- ({
830
- id,
831
- title,
832
- subtitle,
833
- children,
834
- className,
835
- style,
836
- background = "default",
837
- spacing = "lg",
838
- pattern,
839
- patternOpacity,
840
- patternClassName,
841
- containerClassName,
842
- containerMaxWidth = "xl",
843
- ...props
844
- }, ref) => {
845
- const effectivePatternOpacity = patternOpacity !== void 0 ? patternOpacity : pattern ? 1 : 0;
846
- return /* @__PURE__ */ jsxRuntime.jsxs(
847
- "section",
848
- {
849
- ref,
850
- id,
851
- className: cn(
852
- "relative",
853
- pattern ? "overflow-hidden" : null,
854
- backgroundStyles[background],
855
- isPredefinedSpacing(spacing) ? spacingStyles[spacing] : spacing,
856
- className
857
- ),
858
- style,
859
- ...props,
860
- children: [
861
- /* @__PURE__ */ jsxRuntime.jsx(
862
- PatternBackground,
863
- {
864
- pattern,
865
- opacity: effectivePatternOpacity,
866
- className: patternClassName
867
- }
868
- ),
869
- /* @__PURE__ */ jsxRuntime.jsxs(
870
- Container,
871
- {
872
- maxWidth: containerMaxWidth,
873
- className: cn("relative z-10", containerClassName),
874
- children: [
875
- (title || subtitle) && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "mb-6 text-center md:mb-16", children: [
876
- subtitle && /* @__PURE__ */ jsxRuntime.jsx("p", { className: "mb-2 text-sm font-semibold uppercase tracking-wider", children: subtitle }),
877
- title && /* @__PURE__ */ jsxRuntime.jsx("h2", { className: "text-3xl font-bold tracking-tight md:text-4xl lg:text-5xl", children: title })
878
- ] }),
879
- children
880
- ]
881
- }
882
- )
883
- ]
884
- }
885
- );
886
- }
887
- );
888
- Section.displayName = "Section";
889
897
  function CtaFeatureChecklist({
890
898
  heading,
891
899
  description,
@@ -894,7 +902,6 @@ function CtaFeatureChecklist({
894
902
  items,
895
903
  itemsSlot,
896
904
  className,
897
- containerClassName,
898
905
  cardClassName,
899
906
  contentClassName,
900
907
  headingClassName,
@@ -903,40 +910,12 @@ function CtaFeatureChecklist({
903
910
  checklistClassName,
904
911
  checklistItemClassName,
905
912
  background,
906
- spacing,
913
+ containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
914
+ spacing = "py-32 md:py-32",
907
915
  pattern,
908
916
  patternOpacity
909
917
  }) {
910
- const actionsContent = React.useMemo(() => {
911
- if (actionsSlot) return actionsSlot;
912
- if (!actions || actions.length === 0) return null;
913
- return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mt-6", actionsClassName), children: actions.map((action, index) => /* @__PURE__ */ jsxRuntime.jsxs(
914
- Pressable,
915
- {
916
- href: action.href,
917
- onClick: action.onClick,
918
- variant: action.variant,
919
- size: action.size,
920
- className: action.className,
921
- "aria-label": action["aria-label"],
922
- asButton: true,
923
- children: [
924
- action.icon,
925
- action.children ?? action.label,
926
- action.iconAfter ?? /* @__PURE__ */ jsxRuntime.jsx(
927
- DynamicIcon,
928
- {
929
- name: "lucide/arrow-right",
930
- size: 16,
931
- className: "ml-2"
932
- }
933
- )
934
- ]
935
- },
936
- index
937
- )) });
938
- }, [actionsSlot, actions, actionsClassName]);
939
- const checklistContent = React.useMemo(() => {
918
+ const checklistContent = React3.useMemo(() => {
940
919
  if (itemsSlot) return itemsSlot;
941
920
  if (!items || items.length === 0) return null;
942
921
  return /* @__PURE__ */ jsxRuntime.jsx(
@@ -981,13 +960,12 @@ function CtaFeatureChecklist({
981
960
  className: cn(className),
982
961
  pattern,
983
962
  patternOpacity,
984
- children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("container mx-auto", containerClassName), children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex justify-center", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-w-5xl", children: /* @__PURE__ */ jsxRuntime.jsxs(
963
+ containerClassName,
964
+ children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "relative", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex justify-center", children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: "max-w-5xl", children: /* @__PURE__ */ jsxRuntime.jsxs(
985
965
  "div",
986
966
  {
987
967
  className: cn(
988
968
  "flex flex-col items-start justify-between gap-8 rounded-lg px-6 py-10 md:flex-row lg:px-20 lg:py-16",
989
- getNestedCardBg(background),
990
- getNestedCardTextColor(background),
991
969
  cardClassName
992
970
  ),
993
971
  children: [
@@ -1001,15 +979,16 @@ function CtaFeatureChecklist({
1001
979
  ),
1002
980
  children: heading
1003
981
  }
1004
- ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("mb-1", headingClassName), children: heading })),
1005
- description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
1006
- "p",
982
+ ) : heading),
983
+ description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn(descriptionClassName), children: description }) : description),
984
+ /* @__PURE__ */ jsxRuntime.jsx(
985
+ BlockActions,
1007
986
  {
1008
- className: cn(getTextColor(background, "muted"), descriptionClassName),
1009
- children: description
987
+ actions,
988
+ actionsClassName,
989
+ actionsSlot
1010
990
  }
1011
- ) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
1012
- actionsContent
991
+ )
1013
992
  ] }),
1014
993
  /* @__PURE__ */ jsxRuntime.jsx("div", { className: "md:w-1/3", children: checklistContent })
1015
994
  ]