@opensite/ui 2.0.6 → 2.0.8

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