@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
@@ -5,7 +5,7 @@ import { Video } from '@page-speed/video';
5
5
  import { clsx } from 'clsx';
6
6
  import { twMerge } from 'tailwind-merge';
7
7
  import { jsx, jsxs, Fragment } 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/hero/hero-presentation-platform-video.tsx
11
11
  function cn(...inputs) {
@@ -464,16 +464,27 @@ function ActionComponent({ action }) {
464
464
  children,
465
465
  href,
466
466
  onClick,
467
+ asButton,
468
+ variant,
469
+ size,
467
470
  className: actionClassName,
468
471
  ...pressableProps
469
472
  } = action;
473
+ const shouldStyleAsButton = asButton ?? true;
474
+ const resolvedVariant = shouldStyleAsButton ? variant ?? "default" : void 0;
475
+ const resolvedSize = shouldStyleAsButton ? size ?? "default" : void 0;
470
476
  return /* @__PURE__ */ jsx(
471
477
  Pressable,
472
478
  {
473
479
  href,
474
480
  onClick,
475
- asButton: action.asButton ?? true,
476
- className: actionClassName,
481
+ asButton: shouldStyleAsButton,
482
+ variant: resolvedVariant,
483
+ size: resolvedSize,
484
+ className: cn(
485
+ shouldStyleAsButton && buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
486
+ actionClassName
487
+ ),
477
488
  ...pressableProps,
478
489
  children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
479
490
  icon,
@@ -7,9 +7,9 @@ var tailwindMerge = require('tailwind-merge');
7
7
  var icon = require('@page-speed/icon');
8
8
  var jsxRuntime = require('react/jsx-runtime');
9
9
  var img = require('@page-speed/img');
10
+ var pressable = require('@page-speed/pressable');
10
11
  var reactSlot = require('@radix-ui/react-slot');
11
12
  var classVarianceAuthority = require('class-variance-authority');
12
- var pressable = require('@page-speed/pressable');
13
13
 
14
14
  function _interopNamespace(e) {
15
15
  if (e && e.__esModule) return e;
@@ -533,16 +533,27 @@ function ActionComponent({ action }) {
533
533
  children,
534
534
  href,
535
535
  onClick,
536
+ asButton,
537
+ variant,
538
+ size,
536
539
  className: actionClassName,
537
540
  ...pressableProps
538
541
  } = action;
542
+ const shouldStyleAsButton = asButton ?? true;
543
+ const resolvedVariant = shouldStyleAsButton ? variant ?? "default" : void 0;
544
+ const resolvedSize = shouldStyleAsButton ? size ?? "default" : void 0;
539
545
  return /* @__PURE__ */ jsxRuntime.jsx(
540
546
  pressable.Pressable,
541
547
  {
542
548
  href,
543
549
  onClick,
544
- asButton: action.asButton ?? true,
545
- className: actionClassName,
550
+ asButton: shouldStyleAsButton,
551
+ variant: resolvedVariant,
552
+ size: resolvedSize,
553
+ className: cn(
554
+ shouldStyleAsButton && pressable.buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
555
+ actionClassName
556
+ ),
546
557
  ...pressableProps,
547
558
  children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
548
559
  icon,
@@ -6,9 +6,9 @@ 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, buttonVariants } from '@page-speed/pressable';
9
10
  import { Slot } from '@radix-ui/react-slot';
10
11
  import { cva } from 'class-variance-authority';
11
- import { Pressable } from '@page-speed/pressable';
12
12
 
13
13
  // components/blocks/hero/hero-product-showcase-floating.tsx
14
14
  function cn(...inputs) {
@@ -512,16 +512,27 @@ function ActionComponent({ action }) {
512
512
  children,
513
513
  href,
514
514
  onClick,
515
+ asButton,
516
+ variant,
517
+ size,
515
518
  className: actionClassName,
516
519
  ...pressableProps
517
520
  } = action;
521
+ const shouldStyleAsButton = asButton ?? true;
522
+ const resolvedVariant = shouldStyleAsButton ? variant ?? "default" : void 0;
523
+ const resolvedSize = shouldStyleAsButton ? size ?? "default" : void 0;
518
524
  return /* @__PURE__ */ jsx(
519
525
  Pressable,
520
526
  {
521
527
  href,
522
528
  onClick,
523
- asButton: action.asButton ?? true,
524
- className: actionClassName,
529
+ asButton: shouldStyleAsButton,
530
+ variant: resolvedVariant,
531
+ size: resolvedSize,
532
+ className: cn(
533
+ shouldStyleAsButton && buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
534
+ actionClassName
535
+ ),
525
536
  ...pressableProps,
526
537
  children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
527
538
  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-shared-inbox-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,
@@ -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,
@@ -2,7 +2,7 @@
2
2
  import React, { useMemo } from 'react';
3
3
  import { clsx } from 'clsx';
4
4
  import { twMerge } from 'tailwind-merge';
5
- import { Pressable } from '@page-speed/pressable';
5
+ import { Pressable, buttonVariants } from '@page-speed/pressable';
6
6
  import { Img } from '@page-speed/img';
7
7
  import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
8
8
 
@@ -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,
@@ -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,
@@ -571,10 +582,19 @@ function HeroSoftwareGrowthVideoDialog({
571
582
  const [skinClasses, setSkinClasses] = React.useState(null);
572
583
  const [skinStyle, setSkinStyle] = React.useState(null);
573
584
  React.useEffect(() => {
585
+ let isMounted = true;
574
586
  skins.loadSkinFromJsDelivr("0.1.2", "skins/video/base.json").then((skin) => {
587
+ if (!isMounted) return;
575
588
  setSkinClasses(skins.resolveVideoClasses(skin));
576
589
  setSkinStyle(skins.getSkinStyleObject(skin));
590
+ }).catch(() => {
591
+ if (!isMounted) return;
592
+ setSkinClasses(null);
593
+ setSkinStyle(null);
577
594
  });
595
+ return () => {
596
+ isMounted = false;
597
+ };
578
598
  }, []);
579
599
  const handleVideoClick = () => {
580
600
  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-software-growth-video-dialog.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,
@@ -548,10 +559,19 @@ function HeroSoftwareGrowthVideoDialog({
548
559
  const [skinClasses, setSkinClasses] = useState(null);
549
560
  const [skinStyle, setSkinStyle] = useState(null);
550
561
  useEffect(() => {
562
+ let isMounted = true;
551
563
  loadSkinFromJsDelivr("0.1.2", "skins/video/base.json").then((skin) => {
564
+ if (!isMounted) return;
552
565
  setSkinClasses(resolveVideoClasses(skin));
553
566
  setSkinStyle(getSkinStyleObject(skin));
567
+ }).catch(() => {
568
+ if (!isMounted) return;
569
+ setSkinClasses(null);
570
+ setSkinStyle(null);
554
571
  });
572
+ return () => {
573
+ isMounted = false;
574
+ };
555
575
  }, []);
556
576
  const handleVideoClick = () => {
557
577
  if (onVideoClick) {
@@ -6,9 +6,9 @@ var clsx = require('clsx');
6
6
  var tailwindMerge = require('tailwind-merge');
7
7
  var img = require('@page-speed/img');
8
8
  var jsxRuntime = require('react/jsx-runtime');
9
+ var pressable = require('@page-speed/pressable');
9
10
  var reactSlot = require('@radix-ui/react-slot');
10
11
  var classVarianceAuthority = require('class-variance-authority');
11
- var pressable = require('@page-speed/pressable');
12
12
 
13
13
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
14
14
 
@@ -471,16 +471,27 @@ function ActionComponent({ action }) {
471
471
  children,
472
472
  href,
473
473
  onClick,
474
+ asButton,
475
+ variant,
476
+ size,
474
477
  className: actionClassName,
475
478
  ...pressableProps
476
479
  } = action;
480
+ const shouldStyleAsButton = asButton ?? true;
481
+ const resolvedVariant = shouldStyleAsButton ? variant ?? "default" : void 0;
482
+ const resolvedSize = shouldStyleAsButton ? size ?? "default" : void 0;
477
483
  return /* @__PURE__ */ jsxRuntime.jsx(
478
484
  pressable.Pressable,
479
485
  {
480
486
  href,
481
487
  onClick,
482
- asButton: action.asButton ?? true,
483
- className: actionClassName,
488
+ asButton: shouldStyleAsButton,
489
+ variant: resolvedVariant,
490
+ size: resolvedSize,
491
+ className: cn(
492
+ shouldStyleAsButton && pressable.buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
493
+ actionClassName
494
+ ),
484
495
  ...pressableProps,
485
496
  children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
486
497
  icon,
@@ -4,9 +4,9 @@ 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, buttonVariants } from '@page-speed/pressable';
7
8
  import { Slot } from '@radix-ui/react-slot';
8
9
  import { cva } from 'class-variance-authority';
9
- import { Pressable } from '@page-speed/pressable';
10
10
 
11
11
  // components/blocks/hero/hero-spiral-pattern-cards.tsx
12
12
  function cn(...inputs) {
@@ -465,16 +465,27 @@ function ActionComponent({ action }) {
465
465
  children,
466
466
  href,
467
467
  onClick,
468
+ asButton,
469
+ variant,
470
+ size,
468
471
  className: actionClassName,
469
472
  ...pressableProps
470
473
  } = action;
474
+ const shouldStyleAsButton = asButton ?? true;
475
+ const resolvedVariant = shouldStyleAsButton ? variant ?? "default" : void 0;
476
+ const resolvedSize = shouldStyleAsButton ? size ?? "default" : void 0;
471
477
  return /* @__PURE__ */ jsx(
472
478
  Pressable,
473
479
  {
474
480
  href,
475
481
  onClick,
476
- asButton: action.asButton ?? true,
477
- className: actionClassName,
482
+ asButton: shouldStyleAsButton,
483
+ variant: resolvedVariant,
484
+ size: resolvedSize,
485
+ className: cn(
486
+ shouldStyleAsButton && buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
487
+ actionClassName
488
+ ),
478
489
  ...pressableProps,
479
490
  children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
480
491
  icon,
@@ -438,16 +438,27 @@ function ActionComponent({ action }) {
438
438
  children,
439
439
  href,
440
440
  onClick,
441
+ asButton,
442
+ variant,
443
+ size,
441
444
  className: actionClassName,
442
445
  ...pressableProps
443
446
  } = action;
447
+ const shouldStyleAsButton = asButton ?? true;
448
+ const resolvedVariant = shouldStyleAsButton ? variant ?? "default" : void 0;
449
+ const resolvedSize = shouldStyleAsButton ? size ?? "default" : void 0;
444
450
  return /* @__PURE__ */ jsxRuntime.jsx(
445
451
  pressable.Pressable,
446
452
  {
447
453
  href,
448
454
  onClick,
449
- asButton: action.asButton ?? true,
450
- className: actionClassName,
455
+ asButton: shouldStyleAsButton,
456
+ variant: resolvedVariant,
457
+ size: resolvedSize,
458
+ className: cn(
459
+ shouldStyleAsButton && pressable.buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
460
+ actionClassName
461
+ ),
451
462
  ...pressableProps,
452
463
  children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
453
464
  icon,
@@ -5,7 +5,7 @@ import { twMerge } from 'tailwind-merge';
5
5
  import { Img } from '@page-speed/img';
6
6
  import { Lightbox } from '@page-speed/lightbox';
7
7
  import { jsx, jsxs, Fragment } 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/hero/hero-split-geometric-shapes.tsx
11
11
  function cn(...inputs) {
@@ -432,16 +432,27 @@ function ActionComponent({ action }) {
432
432
  children,
433
433
  href,
434
434
  onClick,
435
+ asButton,
436
+ variant,
437
+ size,
435
438
  className: actionClassName,
436
439
  ...pressableProps
437
440
  } = action;
441
+ const shouldStyleAsButton = asButton ?? true;
442
+ const resolvedVariant = shouldStyleAsButton ? variant ?? "default" : void 0;
443
+ const resolvedSize = shouldStyleAsButton ? size ?? "default" : void 0;
438
444
  return /* @__PURE__ */ jsx(
439
445
  Pressable,
440
446
  {
441
447
  href,
442
448
  onClick,
443
- asButton: action.asButton ?? true,
444
- className: actionClassName,
449
+ asButton: shouldStyleAsButton,
450
+ variant: resolvedVariant,
451
+ size: resolvedSize,
452
+ className: cn(
453
+ shouldStyleAsButton && buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
454
+ actionClassName
455
+ ),
445
456
  ...pressableProps,
446
457
  children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
447
458
  icon,
@@ -6,9 +6,9 @@ var clsx = require('clsx');
6
6
  var tailwindMerge = require('tailwind-merge');
7
7
  var img = require('@page-speed/img');
8
8
  var jsxRuntime = require('react/jsx-runtime');
9
+ var pressable = require('@page-speed/pressable');
9
10
  var reactSlot = require('@radix-ui/react-slot');
10
11
  var classVarianceAuthority = require('class-variance-authority');
11
- var pressable = require('@page-speed/pressable');
12
12
 
13
13
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
14
14
 
@@ -471,16 +471,27 @@ function ActionComponent({ action }) {
471
471
  children,
472
472
  href,
473
473
  onClick,
474
+ asButton,
475
+ variant,
476
+ size,
474
477
  className: actionClassName,
475
478
  ...pressableProps
476
479
  } = action;
480
+ const shouldStyleAsButton = asButton ?? true;
481
+ const resolvedVariant = shouldStyleAsButton ? variant ?? "default" : void 0;
482
+ const resolvedSize = shouldStyleAsButton ? size ?? "default" : void 0;
477
483
  return /* @__PURE__ */ jsxRuntime.jsx(
478
484
  pressable.Pressable,
479
485
  {
480
486
  href,
481
487
  onClick,
482
- asButton: action.asButton ?? true,
483
- className: actionClassName,
488
+ asButton: shouldStyleAsButton,
489
+ variant: resolvedVariant,
490
+ size: resolvedSize,
491
+ className: cn(
492
+ shouldStyleAsButton && pressable.buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
493
+ actionClassName
494
+ ),
484
495
  ...pressableProps,
485
496
  children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
486
497
  icon,
@@ -4,9 +4,9 @@ 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, buttonVariants } from '@page-speed/pressable';
7
8
  import { Slot } from '@radix-ui/react-slot';
8
9
  import { cva } from 'class-variance-authority';
9
- import { Pressable } from '@page-speed/pressable';
10
10
 
11
11
  // components/blocks/hero/hero-startup-launch-cta.tsx
12
12
  function cn(...inputs) {
@@ -465,16 +465,27 @@ function ActionComponent({ action }) {
465
465
  children,
466
466
  href,
467
467
  onClick,
468
+ asButton,
469
+ variant,
470
+ size,
468
471
  className: actionClassName,
469
472
  ...pressableProps
470
473
  } = action;
474
+ const shouldStyleAsButton = asButton ?? true;
475
+ const resolvedVariant = shouldStyleAsButton ? variant ?? "default" : void 0;
476
+ const resolvedSize = shouldStyleAsButton ? size ?? "default" : void 0;
471
477
  return /* @__PURE__ */ jsx(
472
478
  Pressable,
473
479
  {
474
480
  href,
475
481
  onClick,
476
- asButton: action.asButton ?? true,
477
- className: actionClassName,
482
+ asButton: shouldStyleAsButton,
483
+ variant: resolvedVariant,
484
+ size: resolvedSize,
485
+ className: cn(
486
+ shouldStyleAsButton && buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
487
+ actionClassName
488
+ ),
478
489
  ...pressableProps,
479
490
  children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
480
491
  icon,
@@ -6,9 +6,9 @@ var clsx = require('clsx');
6
6
  var tailwindMerge = require('tailwind-merge');
7
7
  var img = require('@page-speed/img');
8
8
  var jsxRuntime = require('react/jsx-runtime');
9
+ var pressable = require('@page-speed/pressable');
9
10
  var reactSlot = require('@radix-ui/react-slot');
10
11
  var classVarianceAuthority = require('class-variance-authority');
11
- var pressable = require('@page-speed/pressable');
12
12
 
13
13
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
14
14
 
@@ -471,16 +471,27 @@ function ActionComponent({ action }) {
471
471
  children,
472
472
  href,
473
473
  onClick,
474
+ asButton,
475
+ variant,
476
+ size,
474
477
  className: actionClassName,
475
478
  ...pressableProps
476
479
  } = action;
480
+ const shouldStyleAsButton = asButton ?? true;
481
+ const resolvedVariant = shouldStyleAsButton ? variant ?? "default" : void 0;
482
+ const resolvedSize = shouldStyleAsButton ? size ?? "default" : void 0;
477
483
  return /* @__PURE__ */ jsxRuntime.jsx(
478
484
  pressable.Pressable,
479
485
  {
480
486
  href,
481
487
  onClick,
482
- asButton: action.asButton ?? true,
483
- className: actionClassName,
488
+ asButton: shouldStyleAsButton,
489
+ variant: resolvedVariant,
490
+ size: resolvedSize,
491
+ className: cn(
492
+ shouldStyleAsButton && pressable.buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
493
+ actionClassName
494
+ ),
484
495
  ...pressableProps,
485
496
  children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
486
497
  icon,