@opensite/ui 3.3.7 → 3.3.9

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 (173) hide show
  1. package/dist/about-culture-tabs.cjs +14 -3
  2. package/dist/about-culture-tabs.js +14 -3
  3. package/dist/about-developer-profile.cjs +14 -3
  4. package/dist/about-developer-profile.js +14 -3
  5. package/dist/about-developer-story.cjs +13 -2
  6. package/dist/about-developer-story.js +14 -3
  7. package/dist/about-expandable-values.cjs +14 -3
  8. package/dist/about-expandable-values.js +14 -3
  9. package/dist/about-mission-dual-image.cjs +13 -2
  10. package/dist/about-mission-dual-image.js +14 -3
  11. package/dist/about-network-spotlight.cjs +13 -2
  12. package/dist/about-network-spotlight.js +14 -3
  13. package/dist/about-story-expertise.cjs +14 -3
  14. package/dist/about-story-expertise.js +14 -3
  15. package/dist/about-streamline-team.cjs +14 -3
  16. package/dist/about-streamline-team.js +14 -3
  17. package/dist/carousel-feature-badge.cjs +13 -2
  18. package/dist/carousel-feature-badge.js +14 -3
  19. package/dist/carousel-image-hero.cjs +13 -2
  20. package/dist/carousel-image-hero.js +14 -3
  21. package/dist/carousel-portfolio-hero.cjs +13 -2
  22. package/dist/carousel-portfolio-hero.js +14 -3
  23. package/dist/community-initiatives.cjs +13 -2
  24. package/dist/community-initiatives.js +14 -3
  25. package/dist/components.cjs +13 -2
  26. package/dist/components.js +13 -2
  27. package/dist/cta-feature-checklist.cjs +13 -2
  28. package/dist/cta-feature-checklist.js +14 -3
  29. package/dist/cta-video-background-hero.cjs +9 -0
  30. package/dist/cta-video-background-hero.js +9 -0
  31. package/dist/faq-numbered-grid.cjs +13 -2
  32. package/dist/faq-numbered-grid.js +14 -3
  33. package/dist/hero-ad-campaign-expert.cjs +13 -2
  34. package/dist/hero-ad-campaign-expert.js +14 -3
  35. package/dist/hero-adaptable-product-grid.cjs +13 -2
  36. package/dist/hero-adaptable-product-grid.js +14 -3
  37. package/dist/hero-agency-animated-images.cjs +13 -2
  38. package/dist/hero-agency-animated-images.js +14 -3
  39. package/dist/hero-ai-powered-carousel.cjs +13 -2
  40. package/dist/hero-ai-powered-carousel.js +14 -3
  41. package/dist/hero-announcement-badge.cjs +13 -2
  42. package/dist/hero-announcement-badge.js +14 -3
  43. package/dist/hero-badge-image-split.cjs +13 -2
  44. package/dist/hero-badge-image-split.js +14 -3
  45. package/dist/hero-badge-shadow-overlay.cjs +13 -2
  46. package/dist/hero-badge-shadow-overlay.js +14 -3
  47. package/dist/hero-business-carousel-dots.cjs +13 -2
  48. package/dist/hero-business-carousel-dots.js +14 -3
  49. package/dist/hero-business-operations-mosaic.cjs +13 -2
  50. package/dist/hero-business-operations-mosaic.js +14 -3
  51. package/dist/hero-centered-gradient-cta.cjs +13 -2
  52. package/dist/hero-centered-gradient-cta.js +14 -3
  53. package/dist/hero-community-survey-cta.cjs +13 -2
  54. package/dist/hero-community-survey-cta.js +14 -3
  55. package/dist/hero-conversation-intelligence.cjs +13 -2
  56. package/dist/hero-conversation-intelligence.js +14 -3
  57. package/dist/hero-conversion-video-play.cjs +9 -0
  58. package/dist/hero-conversion-video-play.js +9 -0
  59. package/dist/hero-creative-studio-stacked.cjs +22 -2
  60. package/dist/hero-creative-studio-stacked.js +23 -3
  61. package/dist/hero-crm-streamlined.cjs +13 -2
  62. package/dist/hero-crm-streamlined.js +14 -3
  63. package/dist/hero-customer-support-layered.cjs +13 -2
  64. package/dist/hero-customer-support-layered.js +14 -3
  65. package/dist/hero-design-carousel-portfolio.cjs +13 -2
  66. package/dist/hero-design-carousel-portfolio.js +14 -3
  67. package/dist/hero-design-showcase-logos.cjs +13 -2
  68. package/dist/hero-design-showcase-logos.js +14 -3
  69. package/dist/hero-design-system-3d.cjs +13 -2
  70. package/dist/hero-design-system-3d.js +14 -3
  71. package/dist/hero-developer-tools-code.cjs +13 -2
  72. package/dist/hero-developer-tools-code.js +14 -3
  73. package/dist/hero-digital-agency-fullscreen.cjs +13 -2
  74. package/dist/hero-digital-agency-fullscreen.js +14 -3
  75. package/dist/hero-ecommerce-product-showcase.cjs +14 -3
  76. package/dist/hero-ecommerce-product-showcase.js +14 -3
  77. package/dist/hero-enterprise-security.cjs +13 -2
  78. package/dist/hero-enterprise-security.js +14 -3
  79. package/dist/hero-event-registration.cjs +13 -2
  80. package/dist/hero-event-registration.js +14 -3
  81. package/dist/hero-feature-cards-grid.cjs +13 -2
  82. package/dist/hero-feature-cards-grid.js +14 -3
  83. package/dist/hero-floating-images.cjs +18 -10
  84. package/dist/hero-floating-images.js +19 -11
  85. package/dist/hero-fullscreen-background-image.cjs +13 -2
  86. package/dist/hero-fullscreen-background-image.js +14 -3
  87. package/dist/hero-gradient-avatars-rating.cjs +13 -2
  88. package/dist/hero-gradient-avatars-rating.js +14 -3
  89. package/dist/hero-gradient-client-focused.cjs +13 -2
  90. package/dist/hero-gradient-client-focused.js +14 -3
  91. package/dist/hero-grid-pattern-solutions.cjs +13 -2
  92. package/dist/hero-grid-pattern-solutions.js +14 -3
  93. package/dist/hero-hiring-animated-text.cjs +13 -2
  94. package/dist/hero-hiring-animated-text.js +14 -3
  95. package/dist/hero-image-left-content.cjs +13 -2
  96. package/dist/hero-image-left-content.js +14 -3
  97. package/dist/hero-image-slider.cjs +13 -2
  98. package/dist/hero-image-slider.js +14 -3
  99. package/dist/hero-innovation-image-grid.cjs +13 -2
  100. package/dist/hero-innovation-image-grid.js +14 -3
  101. package/dist/hero-mental-health-team.cjs +13 -2
  102. package/dist/hero-mental-health-team.js +14 -3
  103. package/dist/hero-mentorship-video-split.cjs +9 -0
  104. package/dist/hero-mentorship-video-split.js +9 -0
  105. package/dist/hero-minimal-centered-dark.cjs +14 -3
  106. package/dist/hero-minimal-centered-dark.js +14 -3
  107. package/dist/hero-overlay-cta-grid.cjs +13 -2
  108. package/dist/hero-overlay-cta-grid.js +14 -3
  109. package/dist/hero-presentation-platform-video.cjs +13 -2
  110. package/dist/hero-presentation-platform-video.js +14 -3
  111. package/dist/hero-product-showcase-floating.cjs +14 -3
  112. package/dist/hero-product-showcase-floating.js +14 -3
  113. package/dist/hero-shared-inbox-layered.cjs +13 -2
  114. package/dist/hero-shared-inbox-layered.js +14 -3
  115. package/dist/hero-simple-centered-image.cjs +13 -2
  116. package/dist/hero-simple-centered-image.js +14 -3
  117. package/dist/hero-software-growth-video-dialog.cjs +22 -2
  118. package/dist/hero-software-growth-video-dialog.js +23 -3
  119. package/dist/hero-spiral-pattern-cards.cjs +14 -3
  120. package/dist/hero-spiral-pattern-cards.js +14 -3
  121. package/dist/hero-split-geometric-shapes.cjs +13 -2
  122. package/dist/hero-split-geometric-shapes.js +14 -3
  123. package/dist/hero-startup-launch-cta.cjs +14 -3
  124. package/dist/hero-startup-launch-cta.js +14 -3
  125. package/dist/hero-stats-social-proof.cjs +14 -3
  126. package/dist/hero-stats-social-proof.js +14 -3
  127. package/dist/hero-task-timer-animated.cjs +13 -2
  128. package/dist/hero-task-timer-animated.js +14 -3
  129. package/dist/hero-testimonial-image-grid.cjs +13 -2
  130. package/dist/hero-testimonial-image-grid.js +14 -3
  131. package/dist/hero-therapy-testimonial-grid.cjs +13 -2
  132. package/dist/hero-therapy-testimonial-grid.js +14 -3
  133. package/dist/hero-ui-library-showcase.cjs +13 -2
  134. package/dist/hero-ui-library-showcase.js +14 -3
  135. package/dist/hero-video-background-dark.cjs +14 -3
  136. package/dist/hero-video-background-dark.js +14 -3
  137. package/dist/hero-video-dialog-gradient.cjs +22 -2
  138. package/dist/hero-video-dialog-gradient.js +23 -3
  139. package/dist/hero-video-overlay-stars.cjs +13 -2
  140. package/dist/hero-video-overlay-stars.js +14 -3
  141. package/dist/hero-welcome-asymmetric-images.cjs +13 -2
  142. package/dist/hero-welcome-asymmetric-images.js +14 -3
  143. package/dist/index.cjs +13 -2
  144. package/dist/index.js +13 -2
  145. package/dist/link-page-bento-layout.cjs +2 -2
  146. package/dist/link-page-bento-layout.js +2 -2
  147. package/dist/link-page-grid-cards.cjs +2 -2
  148. package/dist/link-page-grid-cards.js +2 -2
  149. package/dist/link-page-minimal-profile.cjs +2 -2
  150. package/dist/link-page-minimal-profile.js +2 -2
  151. package/dist/link-page-newsletter-social.cjs +2 -2
  152. package/dist/link-page-newsletter-social.js +2 -2
  153. package/dist/link-tree-block.cjs +2 -2
  154. package/dist/link-tree-block.js +2 -2
  155. package/dist/process-sticky-steps.cjs +29 -9
  156. package/dist/process-sticky-steps.js +30 -10
  157. package/dist/registry.cjs +99 -28
  158. package/dist/registry.js +99 -28
  159. package/dist/stats-growth-timeline.cjs +13 -2
  160. package/dist/stats-growth-timeline.js +14 -3
  161. package/dist/testimonials-grid-add-review.cjs +13 -2
  162. package/dist/testimonials-grid-add-review.js +14 -3
  163. package/dist/testimonials-masonry-grid.cjs +13 -2
  164. package/dist/testimonials-masonry-grid.js +14 -3
  165. package/dist/testimonials-simple-grid.cjs +13 -2
  166. package/dist/testimonials-simple-grid.js +14 -3
  167. package/dist/testimonials-stats-header.cjs +13 -2
  168. package/dist/testimonials-stats-header.js +14 -3
  169. package/dist/testimonials-twitter-cards.cjs +13 -2
  170. package/dist/testimonials-twitter-cards.js +14 -3
  171. package/dist/testimonials-wall-compact.cjs +13 -2
  172. package/dist/testimonials-wall-compact.js +14 -3
  173. package/package.json +2 -2
@@ -684,10 +684,19 @@ function HeroConversionVideoPlay({
684
684
  const [skinClasses, setSkinClasses] = React2.useState(null);
685
685
  const [skinStyle, setSkinStyle] = React2.useState(null);
686
686
  React2.useEffect(() => {
687
+ let isMounted = true;
687
688
  skins.loadSkinFromJsDelivr("0.1.2", "skins/video/base.json").then((skin) => {
689
+ if (!isMounted) return;
688
690
  setSkinClasses(skins.resolveVideoClasses(skin));
689
691
  setSkinStyle(skins.getSkinStyleObject(skin));
692
+ }).catch(() => {
693
+ if (!isMounted) return;
694
+ setSkinClasses(null);
695
+ setSkinStyle(null);
690
696
  });
697
+ return () => {
698
+ isMounted = false;
699
+ };
691
700
  }, []);
692
701
  const renderActions = React2.useMemo(() => {
693
702
  if (actionsSlot) return actionsSlot;
@@ -657,10 +657,19 @@ function HeroConversionVideoPlay({
657
657
  const [skinClasses, setSkinClasses] = useState(null);
658
658
  const [skinStyle, setSkinStyle] = useState(null);
659
659
  useEffect(() => {
660
+ let isMounted = true;
660
661
  loadSkinFromJsDelivr("0.1.2", "skins/video/base.json").then((skin) => {
662
+ if (!isMounted) return;
661
663
  setSkinClasses(resolveVideoClasses(skin));
662
664
  setSkinStyle(getSkinStyleObject(skin));
665
+ }).catch(() => {
666
+ if (!isMounted) return;
667
+ setSkinClasses(null);
668
+ setSkinStyle(null);
663
669
  });
670
+ return () => {
671
+ isMounted = false;
672
+ };
664
673
  }, []);
665
674
  const renderActions = useMemo(() => {
666
675
  if (actionsSlot) return actionsSlot;
@@ -525,16 +525,27 @@ function ActionComponent({ action }) {
525
525
  children,
526
526
  href,
527
527
  onClick,
528
+ asButton,
529
+ variant,
530
+ size,
528
531
  className: actionClassName,
529
532
  ...pressableProps
530
533
  } = action;
534
+ const shouldStyleAsButton = asButton ?? true;
535
+ const resolvedVariant = shouldStyleAsButton ? variant ?? "default" : void 0;
536
+ const resolvedSize = shouldStyleAsButton ? size ?? "default" : void 0;
531
537
  return /* @__PURE__ */ jsxRuntime.jsx(
532
538
  pressable.Pressable,
533
539
  {
534
540
  href,
535
541
  onClick,
536
- asButton: action.asButton ?? true,
537
- className: actionClassName,
542
+ asButton: shouldStyleAsButton,
543
+ variant: resolvedVariant,
544
+ size: resolvedSize,
545
+ className: cn(
546
+ shouldStyleAsButton && pressable.buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
547
+ actionClassName
548
+ ),
538
549
  ...pressableProps,
539
550
  children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
540
551
  icon,
@@ -576,10 +587,19 @@ function HeroCreativeStudioStacked({
576
587
  const [skinClasses, setSkinClasses] = React.useState(null);
577
588
  const [skinStyle, setSkinStyle] = React.useState(null);
578
589
  React.useEffect(() => {
590
+ let isMounted = true;
579
591
  skins.loadSkinFromJsDelivr("0.1.2", "skins/video/base.json").then((skin) => {
592
+ if (!isMounted) return;
580
593
  setSkinClasses(skins.resolveVideoClasses(skin));
581
594
  setSkinStyle(skins.getSkinStyleObject(skin));
595
+ }).catch(() => {
596
+ if (!isMounted) return;
597
+ setSkinClasses(null);
598
+ setSkinStyle(null);
582
599
  });
600
+ return () => {
601
+ isMounted = false;
602
+ };
583
603
  }, []);
584
604
  const handleVideoClick = () => {
585
605
  if (onVideoClick) {
@@ -10,7 +10,7 @@ import * as AspectRatioPrimitive from '@radix-ui/react-aspect-ratio';
10
10
  import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
11
11
  import * as DialogPrimitive from '@radix-ui/react-dialog';
12
12
  import { Icon } from '@page-speed/icon';
13
- import { Pressable } from '@page-speed/pressable';
13
+ import { Pressable, buttonVariants } from '@page-speed/pressable';
14
14
 
15
15
  // components/blocks/hero/hero-creative-studio-stacked.tsx
16
16
  function cn(...inputs) {
@@ -502,16 +502,27 @@ function ActionComponent({ action }) {
502
502
  children,
503
503
  href,
504
504
  onClick,
505
+ asButton,
506
+ variant,
507
+ size,
505
508
  className: actionClassName,
506
509
  ...pressableProps
507
510
  } = action;
511
+ const shouldStyleAsButton = asButton ?? true;
512
+ const resolvedVariant = shouldStyleAsButton ? variant ?? "default" : void 0;
513
+ const resolvedSize = shouldStyleAsButton ? size ?? "default" : void 0;
508
514
  return /* @__PURE__ */ jsx(
509
515
  Pressable,
510
516
  {
511
517
  href,
512
518
  onClick,
513
- asButton: action.asButton ?? true,
514
- className: actionClassName,
519
+ asButton: shouldStyleAsButton,
520
+ variant: resolvedVariant,
521
+ size: resolvedSize,
522
+ className: cn(
523
+ shouldStyleAsButton && buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
524
+ actionClassName
525
+ ),
515
526
  ...pressableProps,
516
527
  children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
517
528
  icon,
@@ -553,10 +564,19 @@ function HeroCreativeStudioStacked({
553
564
  const [skinClasses, setSkinClasses] = useState(null);
554
565
  const [skinStyle, setSkinStyle] = useState(null);
555
566
  useEffect(() => {
567
+ let isMounted = true;
556
568
  loadSkinFromJsDelivr("0.1.2", "skins/video/base.json").then((skin) => {
569
+ if (!isMounted) return;
557
570
  setSkinClasses(resolveVideoClasses(skin));
558
571
  setSkinStyle(getSkinStyleObject(skin));
572
+ }).catch(() => {
573
+ if (!isMounted) return;
574
+ setSkinClasses(null);
575
+ setSkinStyle(null);
559
576
  });
577
+ return () => {
578
+ isMounted = false;
579
+ };
560
580
  }, []);
561
581
  const handleVideoClick = () => {
562
582
  if (onVideoClick) {
@@ -437,16 +437,27 @@ function ActionComponent({ action }) {
437
437
  children,
438
438
  href,
439
439
  onClick,
440
+ asButton,
441
+ variant,
442
+ size,
440
443
  className: actionClassName,
441
444
  ...pressableProps
442
445
  } = action;
446
+ const shouldStyleAsButton = asButton ?? true;
447
+ const resolvedVariant = shouldStyleAsButton ? variant ?? "default" : void 0;
448
+ const resolvedSize = shouldStyleAsButton ? size ?? "default" : void 0;
443
449
  return /* @__PURE__ */ jsxRuntime.jsx(
444
450
  pressable.Pressable,
445
451
  {
446
452
  href,
447
453
  onClick,
448
- asButton: action.asButton ?? true,
449
- className: actionClassName,
454
+ asButton: shouldStyleAsButton,
455
+ variant: resolvedVariant,
456
+ size: resolvedSize,
457
+ className: cn(
458
+ shouldStyleAsButton && pressable.buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
459
+ actionClassName
460
+ ),
450
461
  ...pressableProps,
451
462
  children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
452
463
  icon,
@@ -4,7 +4,7 @@ import { twMerge } from 'tailwind-merge';
4
4
  import { Img } from '@page-speed/img';
5
5
  import React from 'react';
6
6
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
7
- import { Pressable } from '@page-speed/pressable';
7
+ import { Pressable, buttonVariants } from '@page-speed/pressable';
8
8
 
9
9
  // lib/utils.ts
10
10
  function cn(...inputs) {
@@ -431,16 +431,27 @@ function ActionComponent({ action }) {
431
431
  children,
432
432
  href,
433
433
  onClick,
434
+ asButton,
435
+ variant,
436
+ size,
434
437
  className: actionClassName,
435
438
  ...pressableProps
436
439
  } = action;
440
+ const shouldStyleAsButton = asButton ?? true;
441
+ const resolvedVariant = shouldStyleAsButton ? variant ?? "default" : void 0;
442
+ const resolvedSize = shouldStyleAsButton ? size ?? "default" : void 0;
437
443
  return /* @__PURE__ */ jsx(
438
444
  Pressable,
439
445
  {
440
446
  href,
441
447
  onClick,
442
- asButton: action.asButton ?? true,
443
- className: actionClassName,
448
+ asButton: shouldStyleAsButton,
449
+ variant: resolvedVariant,
450
+ size: resolvedSize,
451
+ className: cn(
452
+ shouldStyleAsButton && buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
453
+ actionClassName
454
+ ),
444
455
  ...pressableProps,
445
456
  children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
446
457
  icon,
@@ -437,16 +437,27 @@ function ActionComponent({ action }) {
437
437
  children,
438
438
  href,
439
439
  onClick,
440
+ asButton,
441
+ variant,
442
+ size,
440
443
  className: actionClassName,
441
444
  ...pressableProps
442
445
  } = action;
446
+ const shouldStyleAsButton = asButton ?? true;
447
+ const resolvedVariant = shouldStyleAsButton ? variant ?? "default" : void 0;
448
+ const resolvedSize = shouldStyleAsButton ? size ?? "default" : void 0;
443
449
  return /* @__PURE__ */ jsxRuntime.jsx(
444
450
  pressable.Pressable,
445
451
  {
446
452
  href,
447
453
  onClick,
448
- asButton: action.asButton ?? true,
449
- className: actionClassName,
454
+ asButton: shouldStyleAsButton,
455
+ variant: resolvedVariant,
456
+ size: resolvedSize,
457
+ className: cn(
458
+ shouldStyleAsButton && pressable.buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
459
+ actionClassName
460
+ ),
450
461
  ...pressableProps,
451
462
  children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
452
463
  icon,
@@ -4,7 +4,7 @@ import { clsx } from 'clsx';
4
4
  import { twMerge } from 'tailwind-merge';
5
5
  import { Img } from '@page-speed/img';
6
6
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
7
- import { Pressable } from '@page-speed/pressable';
7
+ import { Pressable, buttonVariants } from '@page-speed/pressable';
8
8
 
9
9
  // components/blocks/hero/hero-customer-support-layered.tsx
10
10
  function cn(...inputs) {
@@ -431,16 +431,27 @@ function ActionComponent({ action }) {
431
431
  children,
432
432
  href,
433
433
  onClick,
434
+ asButton,
435
+ variant,
436
+ size,
434
437
  className: actionClassName,
435
438
  ...pressableProps
436
439
  } = action;
440
+ const shouldStyleAsButton = asButton ?? true;
441
+ const resolvedVariant = shouldStyleAsButton ? variant ?? "default" : void 0;
442
+ const resolvedSize = shouldStyleAsButton ? size ?? "default" : void 0;
437
443
  return /* @__PURE__ */ jsx(
438
444
  Pressable,
439
445
  {
440
446
  href,
441
447
  onClick,
442
- asButton: action.asButton ?? true,
443
- className: actionClassName,
448
+ asButton: shouldStyleAsButton,
449
+ variant: resolvedVariant,
450
+ size: resolvedSize,
451
+ className: cn(
452
+ shouldStyleAsButton && buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
453
+ actionClassName
454
+ ),
444
455
  ...pressableProps,
445
456
  children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
446
457
  icon,
@@ -604,16 +604,27 @@ function ActionComponent({ action }) {
604
604
  children,
605
605
  href,
606
606
  onClick,
607
+ asButton,
608
+ variant,
609
+ size,
607
610
  className: actionClassName,
608
611
  ...pressableProps
609
612
  } = action;
613
+ const shouldStyleAsButton = asButton ?? true;
614
+ const resolvedVariant = shouldStyleAsButton ? variant ?? "default" : void 0;
615
+ const resolvedSize = shouldStyleAsButton ? size ?? "default" : void 0;
610
616
  return /* @__PURE__ */ jsxRuntime.jsx(
611
617
  pressable.Pressable,
612
618
  {
613
619
  href,
614
620
  onClick,
615
- asButton: action.asButton ?? true,
616
- className: actionClassName,
621
+ asButton: shouldStyleAsButton,
622
+ variant: resolvedVariant,
623
+ size: resolvedSize,
624
+ className: cn(
625
+ shouldStyleAsButton && pressable.buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
626
+ actionClassName
627
+ ),
617
628
  ...pressableProps,
618
629
  children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
619
630
  icon,
@@ -9,7 +9,7 @@ import { Icon } from '@page-speed/icon';
9
9
  import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
10
10
  import { Img } from '@page-speed/img';
11
11
  import useEmblaCarousel from 'embla-carousel-react';
12
- import { Pressable } from '@page-speed/pressable';
12
+ import { Pressable, buttonVariants } from '@page-speed/pressable';
13
13
 
14
14
  // components/blocks/hero/hero-design-carousel-portfolio.tsx
15
15
  function cn(...inputs) {
@@ -578,16 +578,27 @@ function ActionComponent({ action }) {
578
578
  children,
579
579
  href,
580
580
  onClick,
581
+ asButton,
582
+ variant,
583
+ size,
581
584
  className: actionClassName,
582
585
  ...pressableProps
583
586
  } = action;
587
+ const shouldStyleAsButton = asButton ?? true;
588
+ const resolvedVariant = shouldStyleAsButton ? variant ?? "default" : void 0;
589
+ const resolvedSize = shouldStyleAsButton ? size ?? "default" : void 0;
584
590
  return /* @__PURE__ */ jsx(
585
591
  Pressable,
586
592
  {
587
593
  href,
588
594
  onClick,
589
- asButton: action.asButton ?? true,
590
- className: actionClassName,
595
+ asButton: shouldStyleAsButton,
596
+ variant: resolvedVariant,
597
+ size: resolvedSize,
598
+ className: cn(
599
+ shouldStyleAsButton && buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
600
+ actionClassName
601
+ ),
591
602
  ...pressableProps,
592
603
  children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
593
604
  icon,
@@ -437,16 +437,27 @@ function ActionComponent({ action }) {
437
437
  children,
438
438
  href,
439
439
  onClick,
440
+ asButton,
441
+ variant,
442
+ size,
440
443
  className: actionClassName,
441
444
  ...pressableProps
442
445
  } = action;
446
+ const shouldStyleAsButton = asButton ?? true;
447
+ const resolvedVariant = shouldStyleAsButton ? variant ?? "default" : void 0;
448
+ const resolvedSize = shouldStyleAsButton ? size ?? "default" : void 0;
443
449
  return /* @__PURE__ */ jsxRuntime.jsx(
444
450
  pressable.Pressable,
445
451
  {
446
452
  href,
447
453
  onClick,
448
- asButton: action.asButton ?? true,
449
- className: actionClassName,
454
+ asButton: shouldStyleAsButton,
455
+ variant: resolvedVariant,
456
+ size: resolvedSize,
457
+ className: cn(
458
+ shouldStyleAsButton && pressable.buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
459
+ actionClassName
460
+ ),
450
461
  ...pressableProps,
451
462
  children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
452
463
  icon,
@@ -4,7 +4,7 @@ import { clsx } from 'clsx';
4
4
  import { twMerge } from 'tailwind-merge';
5
5
  import { Img } from '@page-speed/img';
6
6
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
7
- import { Pressable } from '@page-speed/pressable';
7
+ import { Pressable, buttonVariants } from '@page-speed/pressable';
8
8
 
9
9
  // components/blocks/hero/hero-design-showcase-logos.tsx
10
10
  function cn(...inputs) {
@@ -431,16 +431,27 @@ function ActionComponent({ action }) {
431
431
  children,
432
432
  href,
433
433
  onClick,
434
+ asButton,
435
+ variant,
436
+ size,
434
437
  className: actionClassName,
435
438
  ...pressableProps
436
439
  } = action;
440
+ const shouldStyleAsButton = asButton ?? true;
441
+ const resolvedVariant = shouldStyleAsButton ? variant ?? "default" : void 0;
442
+ const resolvedSize = shouldStyleAsButton ? size ?? "default" : void 0;
437
443
  return /* @__PURE__ */ jsx(
438
444
  Pressable,
439
445
  {
440
446
  href,
441
447
  onClick,
442
- asButton: action.asButton ?? true,
443
- className: actionClassName,
448
+ asButton: shouldStyleAsButton,
449
+ variant: resolvedVariant,
450
+ size: resolvedSize,
451
+ className: cn(
452
+ shouldStyleAsButton && buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
453
+ actionClassName
454
+ ),
444
455
  ...pressableProps,
445
456
  children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
446
457
  icon,
@@ -467,16 +467,27 @@ function ActionComponent({ action }) {
467
467
  children,
468
468
  href,
469
469
  onClick,
470
+ asButton,
471
+ variant,
472
+ size,
470
473
  className: actionClassName,
471
474
  ...pressableProps
472
475
  } = action;
476
+ const shouldStyleAsButton = asButton ?? true;
477
+ const resolvedVariant = shouldStyleAsButton ? variant ?? "default" : void 0;
478
+ const resolvedSize = shouldStyleAsButton ? size ?? "default" : void 0;
473
479
  return /* @__PURE__ */ jsxRuntime.jsx(
474
480
  pressable.Pressable,
475
481
  {
476
482
  href,
477
483
  onClick,
478
- asButton: action.asButton ?? true,
479
- className: actionClassName,
484
+ asButton: shouldStyleAsButton,
485
+ variant: resolvedVariant,
486
+ size: resolvedSize,
487
+ className: cn(
488
+ shouldStyleAsButton && pressable.buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
489
+ actionClassName
490
+ ),
480
491
  ...pressableProps,
481
492
  children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
482
493
  icon,
@@ -6,7 +6,7 @@ import { twMerge } from 'tailwind-merge';
6
6
  import { Icon } from '@page-speed/icon';
7
7
  import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
8
8
  import { Img } from '@page-speed/img';
9
- import { Pressable } from '@page-speed/pressable';
9
+ import { Pressable, buttonVariants } from '@page-speed/pressable';
10
10
 
11
11
  // components/blocks/hero/hero-design-system-3d.tsx
12
12
  function cn(...inputs) {
@@ -446,16 +446,27 @@ function ActionComponent({ action }) {
446
446
  children,
447
447
  href,
448
448
  onClick,
449
+ asButton,
450
+ variant,
451
+ size,
449
452
  className: actionClassName,
450
453
  ...pressableProps
451
454
  } = action;
455
+ const shouldStyleAsButton = asButton ?? true;
456
+ const resolvedVariant = shouldStyleAsButton ? variant ?? "default" : void 0;
457
+ const resolvedSize = shouldStyleAsButton ? size ?? "default" : void 0;
452
458
  return /* @__PURE__ */ jsx(
453
459
  Pressable,
454
460
  {
455
461
  href,
456
462
  onClick,
457
- asButton: action.asButton ?? true,
458
- className: actionClassName,
463
+ asButton: shouldStyleAsButton,
464
+ variant: resolvedVariant,
465
+ size: resolvedSize,
466
+ className: cn(
467
+ shouldStyleAsButton && buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
468
+ actionClassName
469
+ ),
459
470
  ...pressableProps,
460
471
  children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
461
472
  icon,
@@ -500,16 +500,27 @@ function ActionComponent({ action }) {
500
500
  children,
501
501
  href,
502
502
  onClick,
503
+ asButton,
504
+ variant,
505
+ size,
503
506
  className: actionClassName,
504
507
  ...pressableProps
505
508
  } = action;
509
+ const shouldStyleAsButton = asButton ?? true;
510
+ const resolvedVariant = shouldStyleAsButton ? variant ?? "default" : void 0;
511
+ const resolvedSize = shouldStyleAsButton ? size ?? "default" : void 0;
506
512
  return /* @__PURE__ */ jsxRuntime.jsx(
507
513
  pressable.Pressable,
508
514
  {
509
515
  href,
510
516
  onClick,
511
- asButton: action.asButton ?? true,
512
- className: actionClassName,
517
+ asButton: shouldStyleAsButton,
518
+ variant: resolvedVariant,
519
+ size: resolvedSize,
520
+ className: cn(
521
+ shouldStyleAsButton && pressable.buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
522
+ actionClassName
523
+ ),
513
524
  ...pressableProps,
514
525
  children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
515
526
  icon,
@@ -7,7 +7,7 @@ import { Icon } from '@page-speed/icon';
7
7
  import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
8
8
  import { Slot } from '@radix-ui/react-slot';
9
9
  import { cva } from 'class-variance-authority';
10
- import { Pressable } from '@page-speed/pressable';
10
+ import { Pressable, buttonVariants } from '@page-speed/pressable';
11
11
 
12
12
  // components/blocks/hero/hero-developer-tools-code.tsx
13
13
  function cn(...inputs) {
@@ -479,16 +479,27 @@ function ActionComponent({ action }) {
479
479
  children,
480
480
  href,
481
481
  onClick,
482
+ asButton,
483
+ variant,
484
+ size,
482
485
  className: actionClassName,
483
486
  ...pressableProps
484
487
  } = action;
488
+ const shouldStyleAsButton = asButton ?? true;
489
+ const resolvedVariant = shouldStyleAsButton ? variant ?? "default" : void 0;
490
+ const resolvedSize = shouldStyleAsButton ? size ?? "default" : void 0;
485
491
  return /* @__PURE__ */ jsx(
486
492
  Pressable,
487
493
  {
488
494
  href,
489
495
  onClick,
490
- asButton: action.asButton ?? true,
491
- className: actionClassName,
496
+ asButton: shouldStyleAsButton,
497
+ variant: resolvedVariant,
498
+ size: resolvedSize,
499
+ className: cn(
500
+ shouldStyleAsButton && buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
501
+ actionClassName
502
+ ),
492
503
  ...pressableProps,
493
504
  children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
494
505
  icon,
@@ -437,16 +437,27 @@ function ActionComponent({ action }) {
437
437
  children,
438
438
  href,
439
439
  onClick,
440
+ asButton,
441
+ variant,
442
+ size,
440
443
  className: actionClassName,
441
444
  ...pressableProps
442
445
  } = action;
446
+ const shouldStyleAsButton = asButton ?? true;
447
+ const resolvedVariant = shouldStyleAsButton ? variant ?? "default" : void 0;
448
+ const resolvedSize = shouldStyleAsButton ? size ?? "default" : void 0;
443
449
  return /* @__PURE__ */ jsxRuntime.jsx(
444
450
  pressable.Pressable,
445
451
  {
446
452
  href,
447
453
  onClick,
448
- asButton: action.asButton ?? true,
449
- className: actionClassName,
454
+ asButton: shouldStyleAsButton,
455
+ variant: resolvedVariant,
456
+ size: resolvedSize,
457
+ className: cn(
458
+ shouldStyleAsButton && pressable.buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
459
+ actionClassName
460
+ ),
450
461
  ...pressableProps,
451
462
  children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
452
463
  icon,
@@ -4,7 +4,7 @@ import { clsx } from 'clsx';
4
4
  import { twMerge } from 'tailwind-merge';
5
5
  import { Img } from '@page-speed/img';
6
6
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
7
- import { Pressable } from '@page-speed/pressable';
7
+ import { Pressable, buttonVariants } from '@page-speed/pressable';
8
8
 
9
9
  // components/blocks/hero/hero-digital-agency-fullscreen.tsx
10
10
  function cn(...inputs) {
@@ -431,16 +431,27 @@ function ActionComponent({ action }) {
431
431
  children,
432
432
  href,
433
433
  onClick,
434
+ asButton,
435
+ variant,
436
+ size,
434
437
  className: actionClassName,
435
438
  ...pressableProps
436
439
  } = action;
440
+ const shouldStyleAsButton = asButton ?? true;
441
+ const resolvedVariant = shouldStyleAsButton ? variant ?? "default" : void 0;
442
+ const resolvedSize = shouldStyleAsButton ? size ?? "default" : void 0;
437
443
  return /* @__PURE__ */ jsx(
438
444
  Pressable,
439
445
  {
440
446
  href,
441
447
  onClick,
442
- asButton: action.asButton ?? true,
443
- className: actionClassName,
448
+ asButton: shouldStyleAsButton,
449
+ variant: resolvedVariant,
450
+ size: resolvedSize,
451
+ className: cn(
452
+ shouldStyleAsButton && buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
453
+ actionClassName
454
+ ),
444
455
  ...pressableProps,
445
456
  children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
446
457
  icon,