@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
@@ -6,7 +6,7 @@ import { twMerge } from 'tailwind-merge';
6
6
  import { Slot } from '@radix-ui/react-slot';
7
7
  import { cva } from 'class-variance-authority';
8
8
  import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
9
- import { Pressable } from '@page-speed/pressable';
9
+ import { Pressable, buttonVariants } from '@page-speed/pressable';
10
10
  import { Icon } from '@page-speed/icon';
11
11
  import { Img } from '@page-speed/img';
12
12
  import useEmblaCarousel from 'embla-carousel-react';
@@ -571,16 +571,27 @@ function ActionComponent({ action }) {
571
571
  children,
572
572
  href,
573
573
  onClick,
574
+ asButton,
575
+ variant,
576
+ size,
574
577
  className: actionClassName,
575
578
  ...pressableProps
576
579
  } = action;
580
+ const shouldStyleAsButton = asButton ?? true;
581
+ const resolvedVariant = shouldStyleAsButton ? variant ?? "default" : void 0;
582
+ const resolvedSize = shouldStyleAsButton ? size ?? "default" : void 0;
577
583
  return /* @__PURE__ */ jsx(
578
584
  Pressable,
579
585
  {
580
586
  href,
581
587
  onClick,
582
- asButton: action.asButton ?? true,
583
- className: actionClassName,
588
+ asButton: shouldStyleAsButton,
589
+ variant: resolvedVariant,
590
+ size: resolvedSize,
591
+ className: cn(
592
+ shouldStyleAsButton && buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
593
+ actionClassName
594
+ ),
584
595
  ...pressableProps,
585
596
  children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
586
597
  icon,
@@ -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__ */ jsxRuntime.jsx(
509
515
  pressable.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 && pressable.buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
524
+ actionClassName
525
+ ),
515
526
  ...pressableProps,
516
527
  children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
517
528
  icon,
@@ -4,7 +4,7 @@ import React4__default from 'react';
4
4
  import { useMotionValue, useMotionTemplate, motion } from 'framer-motion';
5
5
  import { clsx } from 'clsx';
6
6
  import { twMerge } from 'tailwind-merge';
7
- import { Pressable } from '@page-speed/pressable';
7
+ import { Pressable, buttonVariants } from '@page-speed/pressable';
8
8
  import { Icon } from '@page-speed/icon';
9
9
  import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
10
10
  import { Img } from '@page-speed/img';
@@ -481,16 +481,27 @@ function ActionComponent({ action }) {
481
481
  children,
482
482
  href,
483
483
  onClick,
484
+ asButton,
485
+ variant,
486
+ size,
484
487
  className: actionClassName,
485
488
  ...pressableProps
486
489
  } = action;
490
+ const shouldStyleAsButton = asButton ?? true;
491
+ const resolvedVariant = shouldStyleAsButton ? variant ?? "default" : void 0;
492
+ const resolvedSize = shouldStyleAsButton ? size ?? "default" : void 0;
487
493
  return /* @__PURE__ */ jsx(
488
494
  Pressable,
489
495
  {
490
496
  href,
491
497
  onClick,
492
- asButton: action.asButton ?? true,
493
- className: actionClassName,
498
+ asButton: shouldStyleAsButton,
499
+ variant: resolvedVariant,
500
+ size: resolvedSize,
501
+ className: cn(
502
+ shouldStyleAsButton && buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
503
+ actionClassName
504
+ ),
494
505
  ...pressableProps,
495
506
  children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
496
507
  icon,
@@ -592,16 +592,27 @@ function ActionComponent({ action }) {
592
592
  children,
593
593
  href,
594
594
  onClick,
595
+ asButton,
596
+ variant,
597
+ size,
595
598
  className: actionClassName,
596
599
  ...pressableProps
597
600
  } = action;
601
+ const shouldStyleAsButton = asButton ?? true;
602
+ const resolvedVariant = shouldStyleAsButton ? variant ?? "default" : void 0;
603
+ const resolvedSize = shouldStyleAsButton ? size ?? "default" : void 0;
598
604
  return /* @__PURE__ */ jsxRuntime.jsx(
599
605
  pressable.Pressable,
600
606
  {
601
607
  href,
602
608
  onClick,
603
- asButton: action.asButton ?? true,
604
- className: actionClassName,
609
+ asButton: shouldStyleAsButton,
610
+ variant: resolvedVariant,
611
+ size: resolvedSize,
612
+ className: cn(
613
+ shouldStyleAsButton && pressable.buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
614
+ actionClassName
615
+ ),
605
616
  ...pressableProps,
606
617
  children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
607
618
  icon,
@@ -3,7 +3,7 @@ import * as React4 from 'react';
3
3
  import React4__default from 'react';
4
4
  import { clsx } from 'clsx';
5
5
  import { twMerge } from 'tailwind-merge';
6
- import { Pressable } from '@page-speed/pressable';
6
+ import { Pressable, buttonVariants } from '@page-speed/pressable';
7
7
  import { Icon } from '@page-speed/icon';
8
8
  import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
9
9
  import { Img } from '@page-speed/img';
@@ -571,16 +571,27 @@ function ActionComponent({ action }) {
571
571
  children,
572
572
  href,
573
573
  onClick,
574
+ asButton,
575
+ variant,
576
+ size,
574
577
  className: actionClassName,
575
578
  ...pressableProps
576
579
  } = action;
580
+ const shouldStyleAsButton = asButton ?? true;
581
+ const resolvedVariant = shouldStyleAsButton ? variant ?? "default" : void 0;
582
+ const resolvedSize = shouldStyleAsButton ? size ?? "default" : void 0;
577
583
  return /* @__PURE__ */ jsx(
578
584
  Pressable,
579
585
  {
580
586
  href,
581
587
  onClick,
582
- asButton: action.asButton ?? true,
583
- className: actionClassName,
588
+ asButton: shouldStyleAsButton,
589
+ variant: resolvedVariant,
590
+ size: resolvedSize,
591
+ className: cn(
592
+ shouldStyleAsButton && buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
593
+ actionClassName
594
+ ),
584
595
  ...pressableProps,
585
596
  children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
586
597
  icon,
@@ -584,16 +584,27 @@ function ActionComponent({ action }) {
584
584
  children,
585
585
  href,
586
586
  onClick,
587
+ asButton,
588
+ variant,
589
+ size,
587
590
  className: actionClassName,
588
591
  ...pressableProps
589
592
  } = action;
593
+ const shouldStyleAsButton = asButton ?? true;
594
+ const resolvedVariant = shouldStyleAsButton ? variant ?? "default" : void 0;
595
+ const resolvedSize = shouldStyleAsButton ? size ?? "default" : void 0;
590
596
  return /* @__PURE__ */ jsxRuntime.jsx(
591
597
  pressable.Pressable,
592
598
  {
593
599
  href,
594
600
  onClick,
595
- asButton: action.asButton ?? true,
596
- className: actionClassName,
601
+ asButton: shouldStyleAsButton,
602
+ variant: resolvedVariant,
603
+ size: resolvedSize,
604
+ className: cn(
605
+ shouldStyleAsButton && pressable.buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
606
+ actionClassName
607
+ ),
597
608
  ...pressableProps,
598
609
  children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
599
610
  icon,
@@ -9,7 +9,7 @@ import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
9
9
  import * as TabsPrimitive from '@radix-ui/react-tabs';
10
10
  import { Slot } from '@radix-ui/react-slot';
11
11
  import { cva } from 'class-variance-authority';
12
- import { Pressable } from '@page-speed/pressable';
12
+ import { Pressable, buttonVariants } from '@page-speed/pressable';
13
13
 
14
14
  // components/blocks/about/community-initiatives.tsx
15
15
  function cn(...inputs) {
@@ -562,16 +562,27 @@ function ActionComponent({ action }) {
562
562
  children,
563
563
  href,
564
564
  onClick,
565
+ asButton,
566
+ variant,
567
+ size,
565
568
  className: actionClassName,
566
569
  ...pressableProps
567
570
  } = action;
571
+ const shouldStyleAsButton = asButton ?? true;
572
+ const resolvedVariant = shouldStyleAsButton ? variant ?? "default" : void 0;
573
+ const resolvedSize = shouldStyleAsButton ? size ?? "default" : void 0;
568
574
  return /* @__PURE__ */ jsx(
569
575
  Pressable,
570
576
  {
571
577
  href,
572
578
  onClick,
573
- asButton: action.asButton ?? true,
574
- className: actionClassName,
579
+ asButton: shouldStyleAsButton,
580
+ variant: resolvedVariant,
581
+ size: resolvedSize,
582
+ className: cn(
583
+ shouldStyleAsButton && buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
584
+ actionClassName
585
+ ),
575
586
  ...pressableProps,
576
587
  children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
577
588
  icon,
@@ -1963,16 +1963,27 @@ function ActionComponent({ action }) {
1963
1963
  children,
1964
1964
  href,
1965
1965
  onClick,
1966
+ asButton,
1967
+ variant,
1968
+ size,
1966
1969
  className: actionClassName,
1967
1970
  ...pressableProps
1968
1971
  } = action;
1972
+ const shouldStyleAsButton = asButton ?? true;
1973
+ const resolvedVariant = shouldStyleAsButton ? variant ?? "default" : void 0;
1974
+ const resolvedSize = shouldStyleAsButton ? size ?? "default" : void 0;
1969
1975
  return /* @__PURE__ */ jsxRuntime.jsx(
1970
1976
  pressable.Pressable,
1971
1977
  {
1972
1978
  href,
1973
1979
  onClick,
1974
- asButton: action.asButton ?? true,
1975
- className: actionClassName,
1980
+ asButton: shouldStyleAsButton,
1981
+ variant: resolvedVariant,
1982
+ size: resolvedSize,
1983
+ className: cn(
1984
+ shouldStyleAsButton && pressable.buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
1985
+ actionClassName
1986
+ ),
1976
1987
  ...pressableProps,
1977
1988
  children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
1978
1989
  icon,
@@ -1940,16 +1940,27 @@ function ActionComponent({ action }) {
1940
1940
  children,
1941
1941
  href,
1942
1942
  onClick,
1943
+ asButton,
1944
+ variant,
1945
+ size,
1943
1946
  className: actionClassName,
1944
1947
  ...pressableProps
1945
1948
  } = action;
1949
+ const shouldStyleAsButton = asButton ?? true;
1950
+ const resolvedVariant = shouldStyleAsButton ? variant ?? "default" : void 0;
1951
+ const resolvedSize = shouldStyleAsButton ? size ?? "default" : void 0;
1946
1952
  return /* @__PURE__ */ jsx(
1947
1953
  Pressable,
1948
1954
  {
1949
1955
  href,
1950
1956
  onClick,
1951
- asButton: action.asButton ?? true,
1952
- className: actionClassName,
1957
+ asButton: shouldStyleAsButton,
1958
+ variant: resolvedVariant,
1959
+ size: resolvedSize,
1960
+ className: cn(
1961
+ shouldStyleAsButton && buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
1962
+ actionClassName
1963
+ ),
1953
1964
  ...pressableProps,
1954
1965
  children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
1955
1966
  icon,
@@ -466,16 +466,27 @@ function ActionComponent({ action }) {
466
466
  children,
467
467
  href,
468
468
  onClick,
469
+ asButton,
470
+ variant,
471
+ size,
469
472
  className: actionClassName,
470
473
  ...pressableProps
471
474
  } = action;
475
+ const shouldStyleAsButton = asButton ?? true;
476
+ const resolvedVariant = shouldStyleAsButton ? variant ?? "default" : void 0;
477
+ const resolvedSize = shouldStyleAsButton ? size ?? "default" : void 0;
472
478
  return /* @__PURE__ */ jsxRuntime.jsx(
473
479
  pressable.Pressable,
474
480
  {
475
481
  href,
476
482
  onClick,
477
- asButton: action.asButton ?? true,
478
- className: actionClassName,
483
+ asButton: shouldStyleAsButton,
484
+ variant: resolvedVariant,
485
+ size: resolvedSize,
486
+ className: cn(
487
+ shouldStyleAsButton && pressable.buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
488
+ actionClassName
489
+ ),
479
490
  ...pressableProps,
480
491
  children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
481
492
  icon,
@@ -5,7 +5,7 @@ import { clsx } from 'clsx';
5
5
  import { twMerge } from 'tailwind-merge';
6
6
  import { Icon } from '@page-speed/icon';
7
7
  import { jsx, Fragment, jsxs } from 'react/jsx-runtime';
8
- import { Pressable } from '@page-speed/pressable';
8
+ import { Pressable, buttonVariants } from '@page-speed/pressable';
9
9
 
10
10
  // components/blocks/cta/cta-feature-checklist.tsx
11
11
  function cn(...inputs) {
@@ -445,16 +445,27 @@ function ActionComponent({ action }) {
445
445
  children,
446
446
  href,
447
447
  onClick,
448
+ asButton,
449
+ variant,
450
+ size,
448
451
  className: actionClassName,
449
452
  ...pressableProps
450
453
  } = action;
454
+ const shouldStyleAsButton = asButton ?? true;
455
+ const resolvedVariant = shouldStyleAsButton ? variant ?? "default" : void 0;
456
+ const resolvedSize = shouldStyleAsButton ? size ?? "default" : void 0;
451
457
  return /* @__PURE__ */ jsx(
452
458
  Pressable,
453
459
  {
454
460
  href,
455
461
  onClick,
456
- asButton: action.asButton ?? true,
457
- className: actionClassName,
462
+ asButton: shouldStyleAsButton,
463
+ variant: resolvedVariant,
464
+ size: resolvedSize,
465
+ className: cn(
466
+ shouldStyleAsButton && buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
467
+ actionClassName
468
+ ),
458
469
  ...pressableProps,
459
470
  children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
460
471
  icon,
@@ -453,10 +453,19 @@ function CtaVideoBackgroundHero({
453
453
  const [skinClasses, setSkinClasses] = React.useState(null);
454
454
  const [skinStyle, setSkinStyle] = React.useState(null);
455
455
  React.useEffect(() => {
456
+ let isMounted = true;
456
457
  skins.loadSkinFromJsDelivr("0.1.2", "skins/video/base.json").then((skin) => {
458
+ if (!isMounted) return;
457
459
  setSkinClasses(skins.resolveVideoClasses(skin));
458
460
  setSkinStyle(skins.getSkinStyleObject(skin));
461
+ }).catch(() => {
462
+ if (!isMounted) return;
463
+ setSkinClasses(null);
464
+ setSkinStyle(null);
459
465
  });
466
+ return () => {
467
+ isMounted = false;
468
+ };
460
469
  }, []);
461
470
  const handleOpenModal = () => {
462
471
  setIsModalOpen(true);
@@ -432,10 +432,19 @@ function CtaVideoBackgroundHero({
432
432
  const [skinClasses, setSkinClasses] = useState(null);
433
433
  const [skinStyle, setSkinStyle] = useState(null);
434
434
  useEffect(() => {
435
+ let isMounted = true;
435
436
  loadSkinFromJsDelivr("0.1.2", "skins/video/base.json").then((skin) => {
437
+ if (!isMounted) return;
436
438
  setSkinClasses(resolveVideoClasses(skin));
437
439
  setSkinStyle(getSkinStyleObject(skin));
440
+ }).catch(() => {
441
+ if (!isMounted) return;
442
+ setSkinClasses(null);
443
+ setSkinStyle(null);
438
444
  });
445
+ return () => {
446
+ isMounted = false;
447
+ };
439
448
  }, []);
440
449
  const handleOpenModal = () => {
441
450
  setIsModalOpen(true);
@@ -484,16 +484,27 @@ function ActionComponent({ action }) {
484
484
  children,
485
485
  href,
486
486
  onClick,
487
+ asButton,
488
+ variant,
489
+ size,
487
490
  className: actionClassName,
488
491
  ...pressableProps
489
492
  } = action;
493
+ const shouldStyleAsButton = asButton ?? true;
494
+ const resolvedVariant = shouldStyleAsButton ? variant ?? "default" : void 0;
495
+ const resolvedSize = shouldStyleAsButton ? size ?? "default" : void 0;
490
496
  return /* @__PURE__ */ jsxRuntime.jsx(
491
497
  pressable.Pressable,
492
498
  {
493
499
  href,
494
500
  onClick,
495
- asButton: action.asButton ?? true,
496
- className: actionClassName,
501
+ asButton: shouldStyleAsButton,
502
+ variant: resolvedVariant,
503
+ size: resolvedSize,
504
+ className: cn(
505
+ shouldStyleAsButton && pressable.buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
506
+ actionClassName
507
+ ),
497
508
  ...pressableProps,
498
509
  children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
499
510
  icon,
@@ -4,7 +4,7 @@ import React4__default, { useMemo } from 'react';
4
4
  import { clsx } from 'clsx';
5
5
  import { twMerge } from 'tailwind-merge';
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/faq/faq-numbered-grid.tsx
10
10
  function cn(...inputs) {
@@ -463,16 +463,27 @@ function ActionComponent({ action }) {
463
463
  children,
464
464
  href,
465
465
  onClick,
466
+ asButton,
467
+ variant,
468
+ size,
466
469
  className: actionClassName,
467
470
  ...pressableProps
468
471
  } = action;
472
+ const shouldStyleAsButton = asButton ?? true;
473
+ const resolvedVariant = shouldStyleAsButton ? variant ?? "default" : void 0;
474
+ const resolvedSize = shouldStyleAsButton ? size ?? "default" : void 0;
469
475
  return /* @__PURE__ */ jsx(
470
476
  Pressable,
471
477
  {
472
478
  href,
473
479
  onClick,
474
- asButton: action.asButton ?? true,
475
- className: actionClassName,
480
+ asButton: shouldStyleAsButton,
481
+ variant: resolvedVariant,
482
+ size: resolvedSize,
483
+ className: cn(
484
+ shouldStyleAsButton && buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
485
+ actionClassName
486
+ ),
476
487
  ...pressableProps,
477
488
  children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
478
489
  icon,
@@ -665,16 +665,27 @@ function ActionComponent({ action }) {
665
665
  children,
666
666
  href,
667
667
  onClick,
668
+ asButton,
669
+ variant,
670
+ size,
668
671
  className: actionClassName,
669
672
  ...pressableProps
670
673
  } = action;
674
+ const shouldStyleAsButton = asButton ?? true;
675
+ const resolvedVariant = shouldStyleAsButton ? variant ?? "default" : void 0;
676
+ const resolvedSize = shouldStyleAsButton ? size ?? "default" : void 0;
671
677
  return /* @__PURE__ */ jsxRuntime.jsx(
672
678
  pressable.Pressable,
673
679
  {
674
680
  href,
675
681
  onClick,
676
- asButton: action.asButton ?? true,
677
- className: actionClassName,
682
+ asButton: shouldStyleAsButton,
683
+ variant: resolvedVariant,
684
+ size: resolvedSize,
685
+ className: cn(
686
+ shouldStyleAsButton && pressable.buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
687
+ actionClassName
688
+ ),
678
689
  ...pressableProps,
679
690
  children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
680
691
  icon,
@@ -6,7 +6,7 @@ import { twMerge } from 'tailwind-merge';
6
6
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
7
7
  import { Img } from '@page-speed/img';
8
8
  import * as AspectRatioPrimitive from '@radix-ui/react-aspect-ratio';
9
- import { Pressable } from '@page-speed/pressable';
9
+ import { Pressable, buttonVariants } from '@page-speed/pressable';
10
10
 
11
11
  // components/blocks/hero/hero-ad-campaign-expert.tsx
12
12
  function cn(...inputs) {
@@ -643,16 +643,27 @@ function ActionComponent({ action }) {
643
643
  children,
644
644
  href,
645
645
  onClick,
646
+ asButton,
647
+ variant,
648
+ size,
646
649
  className: actionClassName,
647
650
  ...pressableProps
648
651
  } = action;
652
+ const shouldStyleAsButton = asButton ?? true;
653
+ const resolvedVariant = shouldStyleAsButton ? variant ?? "default" : void 0;
654
+ const resolvedSize = shouldStyleAsButton ? size ?? "default" : void 0;
649
655
  return /* @__PURE__ */ jsx(
650
656
  Pressable,
651
657
  {
652
658
  href,
653
659
  onClick,
654
- asButton: action.asButton ?? true,
655
- className: actionClassName,
660
+ asButton: shouldStyleAsButton,
661
+ variant: resolvedVariant,
662
+ size: resolvedSize,
663
+ className: cn(
664
+ shouldStyleAsButton && buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
665
+ actionClassName
666
+ ),
656
667
  ...pressableProps,
657
668
  children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
658
669
  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 { 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,
@@ -463,16 +463,27 @@ function ActionComponent({ action }) {
463
463
  children,
464
464
  href,
465
465
  onClick,
466
+ asButton,
467
+ variant,
468
+ size,
466
469
  className: actionClassName,
467
470
  ...pressableProps
468
471
  } = action;
472
+ const shouldStyleAsButton = asButton ?? true;
473
+ const resolvedVariant = shouldStyleAsButton ? variant ?? "default" : void 0;
474
+ const resolvedSize = shouldStyleAsButton ? size ?? "default" : void 0;
469
475
  return /* @__PURE__ */ jsxRuntime.jsx(
470
476
  pressable.Pressable,
471
477
  {
472
478
  href,
473
479
  onClick,
474
- asButton: action.asButton ?? true,
475
- className: actionClassName,
480
+ asButton: shouldStyleAsButton,
481
+ variant: resolvedVariant,
482
+ size: resolvedSize,
483
+ className: cn(
484
+ shouldStyleAsButton && pressable.buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
485
+ actionClassName
486
+ ),
476
487
  ...pressableProps,
477
488
  children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
478
489
  icon,