@opensite/ui 3.3.8 → 3.4.0
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.
- package/dist/about-culture-tabs.cjs +17 -3
- package/dist/about-culture-tabs.js +17 -3
- package/dist/about-developer-profile.cjs +17 -3
- package/dist/about-developer-profile.js +17 -3
- package/dist/about-developer-story.cjs +16 -2
- package/dist/about-developer-story.js +17 -3
- package/dist/about-expandable-values.cjs +17 -3
- package/dist/about-expandable-values.js +17 -3
- package/dist/about-mission-dual-image.cjs +16 -2
- package/dist/about-mission-dual-image.js +17 -3
- package/dist/about-network-spotlight.cjs +16 -2
- package/dist/about-network-spotlight.js +17 -3
- package/dist/about-story-expertise.cjs +17 -3
- package/dist/about-story-expertise.js +17 -3
- package/dist/about-streamline-team.cjs +17 -3
- package/dist/about-streamline-team.js +17 -3
- package/dist/carousel-feature-badge.cjs +16 -2
- package/dist/carousel-feature-badge.js +17 -3
- package/dist/carousel-image-hero.cjs +16 -2
- package/dist/carousel-image-hero.js +17 -3
- package/dist/carousel-portfolio-hero.cjs +16 -2
- package/dist/carousel-portfolio-hero.js +17 -3
- package/dist/community-initiatives.cjs +16 -2
- package/dist/community-initiatives.js +17 -3
- package/dist/components.cjs +16 -2
- package/dist/components.js +16 -2
- package/dist/cta-feature-checklist.cjs +16 -2
- package/dist/cta-feature-checklist.js +17 -3
- package/dist/faq-numbered-grid.cjs +16 -2
- package/dist/faq-numbered-grid.js +17 -3
- package/dist/hero-ad-campaign-expert.cjs +16 -2
- package/dist/hero-ad-campaign-expert.js +17 -3
- package/dist/hero-adaptable-product-grid.cjs +16 -2
- package/dist/hero-adaptable-product-grid.js +17 -3
- package/dist/hero-agency-animated-images.cjs +16 -2
- package/dist/hero-agency-animated-images.js +17 -3
- package/dist/hero-ai-powered-carousel.cjs +16 -2
- package/dist/hero-ai-powered-carousel.js +17 -3
- package/dist/hero-announcement-badge.cjs +16 -2
- package/dist/hero-announcement-badge.js +17 -3
- package/dist/hero-badge-image-split.cjs +16 -2
- package/dist/hero-badge-image-split.js +17 -3
- package/dist/hero-badge-shadow-overlay.cjs +16 -2
- package/dist/hero-badge-shadow-overlay.js +17 -3
- package/dist/hero-business-carousel-dots.cjs +16 -2
- package/dist/hero-business-carousel-dots.js +17 -3
- package/dist/hero-business-operations-mosaic.cjs +16 -2
- package/dist/hero-business-operations-mosaic.js +17 -3
- package/dist/hero-centered-gradient-cta.cjs +16 -2
- package/dist/hero-centered-gradient-cta.js +17 -3
- package/dist/hero-community-survey-cta.cjs +16 -2
- package/dist/hero-community-survey-cta.js +17 -3
- package/dist/hero-conversation-intelligence.cjs +16 -2
- package/dist/hero-conversation-intelligence.js +17 -3
- package/dist/hero-creative-studio-stacked.cjs +16 -2
- package/dist/hero-creative-studio-stacked.js +17 -3
- package/dist/hero-crm-streamlined.cjs +16 -2
- package/dist/hero-crm-streamlined.js +17 -3
- package/dist/hero-customer-support-layered.cjs +16 -2
- package/dist/hero-customer-support-layered.js +17 -3
- package/dist/hero-design-carousel-portfolio.cjs +16 -2
- package/dist/hero-design-carousel-portfolio.js +17 -3
- package/dist/hero-design-showcase-logos.cjs +16 -2
- package/dist/hero-design-showcase-logos.js +17 -3
- package/dist/hero-design-system-3d.cjs +16 -2
- package/dist/hero-design-system-3d.js +17 -3
- package/dist/hero-developer-tools-code.cjs +16 -2
- package/dist/hero-developer-tools-code.js +17 -3
- package/dist/hero-digital-agency-fullscreen.cjs +16 -2
- package/dist/hero-digital-agency-fullscreen.js +17 -3
- package/dist/hero-ecommerce-product-showcase.cjs +17 -3
- package/dist/hero-ecommerce-product-showcase.js +17 -3
- package/dist/hero-enterprise-security.cjs +16 -2
- package/dist/hero-enterprise-security.js +17 -3
- package/dist/hero-event-registration.cjs +16 -2
- package/dist/hero-event-registration.js +17 -3
- package/dist/hero-feature-cards-grid.cjs +16 -2
- package/dist/hero-feature-cards-grid.js +17 -3
- package/dist/hero-floating-images.cjs +16 -2
- package/dist/hero-floating-images.js +17 -3
- package/dist/hero-fullscreen-background-image.cjs +16 -2
- package/dist/hero-fullscreen-background-image.js +17 -3
- package/dist/hero-gradient-avatars-rating.cjs +16 -2
- package/dist/hero-gradient-avatars-rating.js +17 -3
- package/dist/hero-gradient-client-focused.cjs +16 -2
- package/dist/hero-gradient-client-focused.js +17 -3
- package/dist/hero-grid-pattern-solutions.cjs +16 -2
- package/dist/hero-grid-pattern-solutions.js +17 -3
- package/dist/hero-hiring-animated-text.cjs +16 -2
- package/dist/hero-hiring-animated-text.js +17 -3
- package/dist/hero-image-left-content.cjs +16 -2
- package/dist/hero-image-left-content.js +17 -3
- package/dist/hero-image-slider.cjs +16 -2
- package/dist/hero-image-slider.js +17 -3
- package/dist/hero-innovation-image-grid.cjs +16 -2
- package/dist/hero-innovation-image-grid.js +17 -3
- package/dist/hero-mental-health-team.cjs +16 -2
- package/dist/hero-mental-health-team.js +17 -3
- package/dist/hero-minimal-centered-dark.cjs +17 -3
- package/dist/hero-minimal-centered-dark.js +17 -3
- package/dist/hero-overlay-cta-grid.cjs +16 -2
- package/dist/hero-overlay-cta-grid.js +17 -3
- package/dist/hero-presentation-platform-video.cjs +16 -2
- package/dist/hero-presentation-platform-video.js +17 -3
- package/dist/hero-product-showcase-floating.cjs +17 -3
- package/dist/hero-product-showcase-floating.js +17 -3
- package/dist/hero-shared-inbox-layered.cjs +16 -2
- package/dist/hero-shared-inbox-layered.js +17 -3
- package/dist/hero-simple-centered-image.cjs +16 -2
- package/dist/hero-simple-centered-image.js +17 -3
- package/dist/hero-software-growth-video-dialog.cjs +16 -2
- package/dist/hero-software-growth-video-dialog.js +17 -3
- package/dist/hero-spiral-pattern-cards.cjs +17 -3
- package/dist/hero-spiral-pattern-cards.js +17 -3
- package/dist/hero-split-geometric-shapes.cjs +16 -2
- package/dist/hero-split-geometric-shapes.js +17 -3
- package/dist/hero-startup-launch-cta.cjs +17 -3
- package/dist/hero-startup-launch-cta.js +17 -3
- package/dist/hero-stats-social-proof.cjs +17 -3
- package/dist/hero-stats-social-proof.js +17 -3
- package/dist/hero-task-timer-animated.cjs +16 -2
- package/dist/hero-task-timer-animated.js +17 -3
- package/dist/hero-testimonial-image-grid.cjs +16 -2
- package/dist/hero-testimonial-image-grid.js +17 -3
- package/dist/hero-therapy-testimonial-grid.cjs +16 -2
- package/dist/hero-therapy-testimonial-grid.js +17 -3
- package/dist/hero-ui-library-showcase.cjs +16 -2
- package/dist/hero-ui-library-showcase.js +17 -3
- package/dist/hero-video-background-dark.cjs +17 -3
- package/dist/hero-video-background-dark.js +17 -3
- package/dist/hero-video-dialog-gradient.cjs +16 -2
- package/dist/hero-video-dialog-gradient.js +17 -3
- package/dist/hero-video-overlay-stars.cjs +16 -2
- package/dist/hero-video-overlay-stars.js +17 -3
- package/dist/hero-welcome-asymmetric-images.cjs +16 -2
- package/dist/hero-welcome-asymmetric-images.js +17 -3
- package/dist/index.cjs +16 -2
- package/dist/index.js +16 -2
- package/dist/process-sticky-steps.cjs +19 -5
- package/dist/process-sticky-steps.js +20 -6
- package/dist/registry.cjs +20 -6
- package/dist/registry.js +20 -6
- package/dist/social-link-icon.d.cts +1 -1
- package/dist/social-link-icon.d.ts +1 -1
- package/dist/stats-growth-timeline.cjs +16 -2
- package/dist/stats-growth-timeline.js +17 -3
- package/dist/testimonials-grid-add-review.cjs +16 -2
- package/dist/testimonials-grid-add-review.js +17 -3
- package/dist/testimonials-masonry-grid.cjs +16 -2
- package/dist/testimonials-masonry-grid.js +17 -3
- package/dist/testimonials-simple-grid.cjs +16 -2
- package/dist/testimonials-simple-grid.js +17 -3
- package/dist/testimonials-stats-header.cjs +16 -2
- package/dist/testimonials-stats-header.js +17 -3
- package/dist/testimonials-twitter-cards.cjs +16 -2
- package/dist/testimonials-twitter-cards.js +17 -3
- package/dist/testimonials-wall-compact.cjs +16 -2
- package/dist/testimonials-wall-compact.js +17 -3
- package/package.json +2 -2
|
@@ -6,7 +6,7 @@ import { twMerge } from 'tailwind-merge';
|
|
|
6
6
|
import { Video } from '@page-speed/video';
|
|
7
7
|
import { Icon } from '@page-speed/icon';
|
|
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
|
|
|
11
11
|
// components/blocks/hero/hero-video-overlay-stars.tsx
|
|
12
12
|
function cn(...inputs) {
|
|
@@ -446,16 +446,30 @@ 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:
|
|
458
|
-
|
|
463
|
+
asButton: shouldStyleAsButton,
|
|
464
|
+
variant: resolvedVariant,
|
|
465
|
+
size: resolvedSize,
|
|
466
|
+
"data-slot": shouldStyleAsButton ? "button" : void 0,
|
|
467
|
+
"data-variant": resolvedVariant,
|
|
468
|
+
"data-size": resolvedSize,
|
|
469
|
+
className: cn(
|
|
470
|
+
shouldStyleAsButton && buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
|
|
471
|
+
actionClassName
|
|
472
|
+
),
|
|
459
473
|
...pressableProps,
|
|
460
474
|
children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
461
475
|
icon,
|
|
@@ -437,16 +437,30 @@ 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:
|
|
449
|
-
|
|
454
|
+
asButton: shouldStyleAsButton,
|
|
455
|
+
variant: resolvedVariant,
|
|
456
|
+
size: resolvedSize,
|
|
457
|
+
"data-slot": shouldStyleAsButton ? "button" : void 0,
|
|
458
|
+
"data-variant": resolvedVariant,
|
|
459
|
+
"data-size": resolvedSize,
|
|
460
|
+
className: cn(
|
|
461
|
+
shouldStyleAsButton && pressable.buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
|
|
462
|
+
actionClassName
|
|
463
|
+
),
|
|
450
464
|
...pressableProps,
|
|
451
465
|
children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
452
466
|
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-welcome-asymmetric-images.tsx
|
|
10
10
|
function cn(...inputs) {
|
|
@@ -431,16 +431,30 @@ 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:
|
|
443
|
-
|
|
448
|
+
asButton: shouldStyleAsButton,
|
|
449
|
+
variant: resolvedVariant,
|
|
450
|
+
size: resolvedSize,
|
|
451
|
+
"data-slot": shouldStyleAsButton ? "button" : void 0,
|
|
452
|
+
"data-variant": resolvedVariant,
|
|
453
|
+
"data-size": resolvedSize,
|
|
454
|
+
className: cn(
|
|
455
|
+
shouldStyleAsButton && buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
|
|
456
|
+
actionClassName
|
|
457
|
+
),
|
|
444
458
|
...pressableProps,
|
|
445
459
|
children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
446
460
|
icon,
|
package/dist/index.cjs
CHANGED
|
@@ -2024,16 +2024,30 @@ function ActionComponent({ action }) {
|
|
|
2024
2024
|
children,
|
|
2025
2025
|
href,
|
|
2026
2026
|
onClick,
|
|
2027
|
+
asButton,
|
|
2028
|
+
variant,
|
|
2029
|
+
size,
|
|
2027
2030
|
className: actionClassName,
|
|
2028
2031
|
...pressableProps
|
|
2029
2032
|
} = action;
|
|
2033
|
+
const shouldStyleAsButton = asButton ?? true;
|
|
2034
|
+
const resolvedVariant = shouldStyleAsButton ? variant ?? "default" : void 0;
|
|
2035
|
+
const resolvedSize = shouldStyleAsButton ? size ?? "default" : void 0;
|
|
2030
2036
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
2031
2037
|
pressable.Pressable,
|
|
2032
2038
|
{
|
|
2033
2039
|
href,
|
|
2034
2040
|
onClick,
|
|
2035
|
-
asButton:
|
|
2036
|
-
|
|
2041
|
+
asButton: shouldStyleAsButton,
|
|
2042
|
+
variant: resolvedVariant,
|
|
2043
|
+
size: resolvedSize,
|
|
2044
|
+
"data-slot": shouldStyleAsButton ? "button" : void 0,
|
|
2045
|
+
"data-variant": resolvedVariant,
|
|
2046
|
+
"data-size": resolvedSize,
|
|
2047
|
+
className: cn(
|
|
2048
|
+
shouldStyleAsButton && pressable.buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
|
|
2049
|
+
actionClassName
|
|
2050
|
+
),
|
|
2037
2051
|
...pressableProps,
|
|
2038
2052
|
children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
2039
2053
|
icon,
|
package/dist/index.js
CHANGED
|
@@ -2002,16 +2002,30 @@ function ActionComponent({ action }) {
|
|
|
2002
2002
|
children,
|
|
2003
2003
|
href,
|
|
2004
2004
|
onClick,
|
|
2005
|
+
asButton,
|
|
2006
|
+
variant,
|
|
2007
|
+
size,
|
|
2005
2008
|
className: actionClassName,
|
|
2006
2009
|
...pressableProps
|
|
2007
2010
|
} = action;
|
|
2011
|
+
const shouldStyleAsButton = asButton ?? true;
|
|
2012
|
+
const resolvedVariant = shouldStyleAsButton ? variant ?? "default" : void 0;
|
|
2013
|
+
const resolvedSize = shouldStyleAsButton ? size ?? "default" : void 0;
|
|
2008
2014
|
return /* @__PURE__ */ jsx(
|
|
2009
2015
|
Pressable,
|
|
2010
2016
|
{
|
|
2011
2017
|
href,
|
|
2012
2018
|
onClick,
|
|
2013
|
-
asButton:
|
|
2014
|
-
|
|
2019
|
+
asButton: shouldStyleAsButton,
|
|
2020
|
+
variant: resolvedVariant,
|
|
2021
|
+
size: resolvedSize,
|
|
2022
|
+
"data-slot": shouldStyleAsButton ? "button" : void 0,
|
|
2023
|
+
"data-variant": resolvedVariant,
|
|
2024
|
+
"data-size": resolvedSize,
|
|
2025
|
+
className: cn(
|
|
2026
|
+
shouldStyleAsButton && buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
|
|
2027
|
+
actionClassName
|
|
2028
|
+
),
|
|
2015
2029
|
...pressableProps,
|
|
2016
2030
|
children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
2017
2031
|
icon,
|
|
@@ -466,16 +466,30 @@ 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:
|
|
478
|
-
|
|
483
|
+
asButton: shouldStyleAsButton,
|
|
484
|
+
variant: resolvedVariant,
|
|
485
|
+
size: resolvedSize,
|
|
486
|
+
"data-slot": shouldStyleAsButton ? "button" : void 0,
|
|
487
|
+
"data-variant": resolvedVariant,
|
|
488
|
+
"data-size": resolvedSize,
|
|
489
|
+
className: cn(
|
|
490
|
+
shouldStyleAsButton && pressable.buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
|
|
491
|
+
actionClassName
|
|
492
|
+
),
|
|
479
493
|
...pressableProps,
|
|
480
494
|
children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
481
495
|
icon,
|
|
@@ -546,7 +560,7 @@ function ProcessStickySteps({
|
|
|
546
560
|
const renderSteps = React.useMemo(() => {
|
|
547
561
|
if (stepsSlot) return stepsSlot;
|
|
548
562
|
if (!steps?.length) return null;
|
|
549
|
-
return /* @__PURE__ */ jsxRuntime.jsx("ul", { className: cn("relative col-span-4 w-full lg:pl-
|
|
563
|
+
return /* @__PURE__ */ jsxRuntime.jsx("ul", { className: cn("relative col-span-4 w-full lg:pl-28", stepsClassName), children: steps.map((step, index) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
550
564
|
"li",
|
|
551
565
|
{
|
|
552
566
|
className: cn(
|
|
@@ -597,7 +611,7 @@ function ProcessStickySteps({
|
|
|
597
611
|
"div",
|
|
598
612
|
{
|
|
599
613
|
className: cn(
|
|
600
|
-
"grid grid-cols-1 gap-5 lg:grid-cols-6 lg:gap-
|
|
614
|
+
"grid grid-cols-1 gap-5 lg:grid-cols-6 lg:gap-24",
|
|
601
615
|
contentClassName
|
|
602
616
|
),
|
|
603
617
|
children: [
|
|
@@ -609,7 +623,7 @@ function ProcessStickySteps({
|
|
|
609
623
|
{
|
|
610
624
|
name: "lucide/asterisk",
|
|
611
625
|
size: 40,
|
|
612
|
-
className: "absolute -top-2 -right-2 md:size-10 lg:-right-
|
|
626
|
+
className: "absolute -top-2 -right-2 md:size-10 lg:-right-10"
|
|
613
627
|
}
|
|
614
628
|
)
|
|
615
629
|
] }),
|
|
@@ -3,7 +3,7 @@ import * as React from 'react';
|
|
|
3
3
|
import React__default, { useMemo } 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
|
|
|
@@ -445,16 +445,30 @@ 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:
|
|
457
|
-
|
|
462
|
+
asButton: shouldStyleAsButton,
|
|
463
|
+
variant: resolvedVariant,
|
|
464
|
+
size: resolvedSize,
|
|
465
|
+
"data-slot": shouldStyleAsButton ? "button" : void 0,
|
|
466
|
+
"data-variant": resolvedVariant,
|
|
467
|
+
"data-size": resolvedSize,
|
|
468
|
+
className: cn(
|
|
469
|
+
shouldStyleAsButton && buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
|
|
470
|
+
actionClassName
|
|
471
|
+
),
|
|
458
472
|
...pressableProps,
|
|
459
473
|
children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
460
474
|
icon,
|
|
@@ -525,7 +539,7 @@ function ProcessStickySteps({
|
|
|
525
539
|
const renderSteps = useMemo(() => {
|
|
526
540
|
if (stepsSlot) return stepsSlot;
|
|
527
541
|
if (!steps?.length) return null;
|
|
528
|
-
return /* @__PURE__ */ jsx("ul", { className: cn("relative col-span-4 w-full lg:pl-
|
|
542
|
+
return /* @__PURE__ */ jsx("ul", { className: cn("relative col-span-4 w-full lg:pl-28", stepsClassName), children: steps.map((step, index) => /* @__PURE__ */ jsxs(
|
|
529
543
|
"li",
|
|
530
544
|
{
|
|
531
545
|
className: cn(
|
|
@@ -576,7 +590,7 @@ function ProcessStickySteps({
|
|
|
576
590
|
"div",
|
|
577
591
|
{
|
|
578
592
|
className: cn(
|
|
579
|
-
"grid grid-cols-1 gap-5 lg:grid-cols-6 lg:gap-
|
|
593
|
+
"grid grid-cols-1 gap-5 lg:grid-cols-6 lg:gap-24",
|
|
580
594
|
contentClassName
|
|
581
595
|
),
|
|
582
596
|
children: [
|
|
@@ -588,7 +602,7 @@ function ProcessStickySteps({
|
|
|
588
602
|
{
|
|
589
603
|
name: "lucide/asterisk",
|
|
590
604
|
size: 40,
|
|
591
|
-
className: "absolute -top-2 -right-2 md:size-10 lg:-right-
|
|
605
|
+
className: "absolute -top-2 -right-2 md:size-10 lg:-right-10"
|
|
592
606
|
}
|
|
593
607
|
)
|
|
594
608
|
] }),
|
package/dist/registry.cjs
CHANGED
|
@@ -7,11 +7,11 @@ var jsxRuntime = require('react/jsx-runtime');
|
|
|
7
7
|
var img = require('@page-speed/img');
|
|
8
8
|
var react = require('motion/react');
|
|
9
9
|
var AspectRatioPrimitive = require('@radix-ui/react-aspect-ratio');
|
|
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
13
|
var PopoverPrimitive = require('@radix-ui/react-popover');
|
|
13
14
|
var icon = require('@page-speed/icon');
|
|
14
|
-
var pressable = require('@page-speed/pressable');
|
|
15
15
|
var usePlatformFromUrl = require('@opensite/hooks/usePlatformFromUrl');
|
|
16
16
|
var TabsPrimitive = require('@radix-ui/react-tabs');
|
|
17
17
|
var integration = require('@page-speed/forms/integration');
|
|
@@ -1758,16 +1758,30 @@ function ActionComponent({ action }) {
|
|
|
1758
1758
|
children,
|
|
1759
1759
|
href,
|
|
1760
1760
|
onClick,
|
|
1761
|
+
asButton,
|
|
1762
|
+
variant,
|
|
1763
|
+
size,
|
|
1761
1764
|
className: actionClassName,
|
|
1762
1765
|
...pressableProps
|
|
1763
1766
|
} = action;
|
|
1767
|
+
const shouldStyleAsButton = asButton ?? true;
|
|
1768
|
+
const resolvedVariant = shouldStyleAsButton ? variant ?? "default" : void 0;
|
|
1769
|
+
const resolvedSize = shouldStyleAsButton ? size ?? "default" : void 0;
|
|
1764
1770
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1765
1771
|
pressable.Pressable,
|
|
1766
1772
|
{
|
|
1767
1773
|
href,
|
|
1768
1774
|
onClick,
|
|
1769
|
-
asButton:
|
|
1770
|
-
|
|
1775
|
+
asButton: shouldStyleAsButton,
|
|
1776
|
+
variant: resolvedVariant,
|
|
1777
|
+
size: resolvedSize,
|
|
1778
|
+
"data-slot": shouldStyleAsButton ? "button" : void 0,
|
|
1779
|
+
"data-variant": resolvedVariant,
|
|
1780
|
+
"data-size": resolvedSize,
|
|
1781
|
+
className: cn(
|
|
1782
|
+
shouldStyleAsButton && pressable.buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
|
|
1783
|
+
actionClassName
|
|
1784
|
+
),
|
|
1771
1785
|
...pressableProps,
|
|
1772
1786
|
children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
1773
1787
|
icon,
|
|
@@ -78312,7 +78326,7 @@ function ProcessStickySteps({
|
|
|
78312
78326
|
const renderSteps = React30.useMemo(() => {
|
|
78313
78327
|
if (stepsSlot) return stepsSlot;
|
|
78314
78328
|
if (!steps?.length) return null;
|
|
78315
|
-
return /* @__PURE__ */ jsxRuntime.jsx("ul", { className: cn("relative col-span-4 w-full lg:pl-
|
|
78329
|
+
return /* @__PURE__ */ jsxRuntime.jsx("ul", { className: cn("relative col-span-4 w-full lg:pl-28", stepsClassName), children: steps.map((step, index) => /* @__PURE__ */ jsxRuntime.jsxs(
|
|
78316
78330
|
"li",
|
|
78317
78331
|
{
|
|
78318
78332
|
className: cn(
|
|
@@ -78363,7 +78377,7 @@ function ProcessStickySteps({
|
|
|
78363
78377
|
"div",
|
|
78364
78378
|
{
|
|
78365
78379
|
className: cn(
|
|
78366
|
-
"grid grid-cols-1 gap-5 lg:grid-cols-6 lg:gap-
|
|
78380
|
+
"grid grid-cols-1 gap-5 lg:grid-cols-6 lg:gap-24",
|
|
78367
78381
|
contentClassName
|
|
78368
78382
|
),
|
|
78369
78383
|
children: [
|
|
@@ -78375,7 +78389,7 @@ function ProcessStickySteps({
|
|
|
78375
78389
|
{
|
|
78376
78390
|
name: "lucide/asterisk",
|
|
78377
78391
|
size: 40,
|
|
78378
|
-
className: "absolute -top-2 -right-2 md:size-10 lg:-right-
|
|
78392
|
+
className: "absolute -top-2 -right-2 md:size-10 lg:-right-10"
|
|
78379
78393
|
}
|
|
78380
78394
|
)
|
|
78381
78395
|
] }),
|
package/dist/registry.js
CHANGED
|
@@ -6,11 +6,11 @@ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
|
6
6
|
import { Img } from '@page-speed/img';
|
|
7
7
|
import { motion as motion$1, AnimatePresence as AnimatePresence$1 } from 'motion/react';
|
|
8
8
|
import * as AspectRatioPrimitive from '@radix-ui/react-aspect-ratio';
|
|
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
12
|
import * as PopoverPrimitive from '@radix-ui/react-popover';
|
|
12
13
|
import { Icon } from '@page-speed/icon';
|
|
13
|
-
import { Pressable } from '@page-speed/pressable';
|
|
14
14
|
import { usePlatformFromUrl } from '@opensite/hooks/usePlatformFromUrl';
|
|
15
15
|
import * as TabsPrimitive from '@radix-ui/react-tabs';
|
|
16
16
|
import { FormEngine, useFileUpload, useContactForm, DynamicFormField, submitPageSpeedForm, PageSpeedFormSubmissionError, isValidEmail } from '@page-speed/forms/integration';
|
|
@@ -1718,16 +1718,30 @@ function ActionComponent({ action }) {
|
|
|
1718
1718
|
children,
|
|
1719
1719
|
href,
|
|
1720
1720
|
onClick,
|
|
1721
|
+
asButton,
|
|
1722
|
+
variant,
|
|
1723
|
+
size,
|
|
1721
1724
|
className: actionClassName,
|
|
1722
1725
|
...pressableProps
|
|
1723
1726
|
} = action;
|
|
1727
|
+
const shouldStyleAsButton = asButton ?? true;
|
|
1728
|
+
const resolvedVariant = shouldStyleAsButton ? variant ?? "default" : void 0;
|
|
1729
|
+
const resolvedSize = shouldStyleAsButton ? size ?? "default" : void 0;
|
|
1724
1730
|
return /* @__PURE__ */ jsx(
|
|
1725
1731
|
Pressable,
|
|
1726
1732
|
{
|
|
1727
1733
|
href,
|
|
1728
1734
|
onClick,
|
|
1729
|
-
asButton:
|
|
1730
|
-
|
|
1735
|
+
asButton: shouldStyleAsButton,
|
|
1736
|
+
variant: resolvedVariant,
|
|
1737
|
+
size: resolvedSize,
|
|
1738
|
+
"data-slot": shouldStyleAsButton ? "button" : void 0,
|
|
1739
|
+
"data-variant": resolvedVariant,
|
|
1740
|
+
"data-size": resolvedSize,
|
|
1741
|
+
className: cn(
|
|
1742
|
+
shouldStyleAsButton && buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
|
|
1743
|
+
actionClassName
|
|
1744
|
+
),
|
|
1731
1745
|
...pressableProps,
|
|
1732
1746
|
children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
1733
1747
|
icon,
|
|
@@ -78272,7 +78286,7 @@ function ProcessStickySteps({
|
|
|
78272
78286
|
const renderSteps = useMemo(() => {
|
|
78273
78287
|
if (stepsSlot) return stepsSlot;
|
|
78274
78288
|
if (!steps?.length) return null;
|
|
78275
|
-
return /* @__PURE__ */ jsx("ul", { className: cn("relative col-span-4 w-full lg:pl-
|
|
78289
|
+
return /* @__PURE__ */ jsx("ul", { className: cn("relative col-span-4 w-full lg:pl-28", stepsClassName), children: steps.map((step, index) => /* @__PURE__ */ jsxs(
|
|
78276
78290
|
"li",
|
|
78277
78291
|
{
|
|
78278
78292
|
className: cn(
|
|
@@ -78323,7 +78337,7 @@ function ProcessStickySteps({
|
|
|
78323
78337
|
"div",
|
|
78324
78338
|
{
|
|
78325
78339
|
className: cn(
|
|
78326
|
-
"grid grid-cols-1 gap-5 lg:grid-cols-6 lg:gap-
|
|
78340
|
+
"grid grid-cols-1 gap-5 lg:grid-cols-6 lg:gap-24",
|
|
78327
78341
|
contentClassName
|
|
78328
78342
|
),
|
|
78329
78343
|
children: [
|
|
@@ -78335,7 +78349,7 @@ function ProcessStickySteps({
|
|
|
78335
78349
|
{
|
|
78336
78350
|
name: "lucide/asterisk",
|
|
78337
78351
|
size: 40,
|
|
78338
|
-
className: "absolute -top-2 -right-2 md:size-10 lg:-right-
|
|
78352
|
+
className: "absolute -top-2 -right-2 md:size-10 lg:-right-10"
|
|
78339
78353
|
}
|
|
78340
78354
|
)
|
|
78341
78355
|
] }),
|
|
@@ -77,6 +77,6 @@ interface SocialLinkIconProps extends Omit<PressableProps, "children">, SocialLi
|
|
|
77
77
|
* />
|
|
78
78
|
* ```
|
|
79
79
|
*/
|
|
80
|
-
declare const SocialLinkIcon: React.ForwardRefExoticComponent<SocialLinkIconProps & React.RefAttributes<
|
|
80
|
+
declare const SocialLinkIcon: React.ForwardRefExoticComponent<SocialLinkIconProps & React.RefAttributes<HTMLAnchorElement | HTMLButtonElement | HTMLSpanElement>>;
|
|
81
81
|
|
|
82
82
|
export { SocialLinkIcon, type SocialLinkIconDynamicIconProps, type SocialLinkIconProps };
|
|
@@ -77,6 +77,6 @@ interface SocialLinkIconProps extends Omit<PressableProps, "children">, SocialLi
|
|
|
77
77
|
* />
|
|
78
78
|
* ```
|
|
79
79
|
*/
|
|
80
|
-
declare const SocialLinkIcon: React.ForwardRefExoticComponent<SocialLinkIconProps & React.RefAttributes<
|
|
80
|
+
declare const SocialLinkIcon: React.ForwardRefExoticComponent<SocialLinkIconProps & React.RefAttributes<HTMLAnchorElement | HTMLButtonElement | HTMLSpanElement>>;
|
|
81
81
|
|
|
82
82
|
export { SocialLinkIcon, type SocialLinkIconDynamicIconProps, type SocialLinkIconProps };
|
|
@@ -500,16 +500,30 @@ 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:
|
|
512
|
-
|
|
517
|
+
asButton: shouldStyleAsButton,
|
|
518
|
+
variant: resolvedVariant,
|
|
519
|
+
size: resolvedSize,
|
|
520
|
+
"data-slot": shouldStyleAsButton ? "button" : void 0,
|
|
521
|
+
"data-variant": resolvedVariant,
|
|
522
|
+
"data-size": resolvedSize,
|
|
523
|
+
className: cn(
|
|
524
|
+
shouldStyleAsButton && pressable.buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
|
|
525
|
+
actionClassName
|
|
526
|
+
),
|
|
513
527
|
...pressableProps,
|
|
514
528
|
children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
515
529
|
icon,
|
|
@@ -7,7 +7,7 @@ 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
9
|
import { Icon } from '@page-speed/icon';
|
|
10
|
-
import { Pressable } from '@page-speed/pressable';
|
|
10
|
+
import { Pressable, buttonVariants } from '@page-speed/pressable';
|
|
11
11
|
|
|
12
12
|
// components/blocks/stats/stats-growth-timeline.tsx
|
|
13
13
|
function cn(...inputs) {
|
|
@@ -479,16 +479,30 @@ 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:
|
|
491
|
-
|
|
496
|
+
asButton: shouldStyleAsButton,
|
|
497
|
+
variant: resolvedVariant,
|
|
498
|
+
size: resolvedSize,
|
|
499
|
+
"data-slot": shouldStyleAsButton ? "button" : void 0,
|
|
500
|
+
"data-variant": resolvedVariant,
|
|
501
|
+
"data-size": resolvedSize,
|
|
502
|
+
className: cn(
|
|
503
|
+
shouldStyleAsButton && buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
|
|
504
|
+
actionClassName
|
|
505
|
+
),
|
|
492
506
|
...pressableProps,
|
|
493
507
|
children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
494
508
|
icon,
|
|
@@ -553,16 +553,30 @@ function ActionComponent({ action }) {
|
|
|
553
553
|
children,
|
|
554
554
|
href,
|
|
555
555
|
onClick,
|
|
556
|
+
asButton,
|
|
557
|
+
variant,
|
|
558
|
+
size,
|
|
556
559
|
className: actionClassName,
|
|
557
560
|
...pressableProps
|
|
558
561
|
} = action;
|
|
562
|
+
const shouldStyleAsButton = asButton ?? true;
|
|
563
|
+
const resolvedVariant = shouldStyleAsButton ? variant ?? "default" : void 0;
|
|
564
|
+
const resolvedSize = shouldStyleAsButton ? size ?? "default" : void 0;
|
|
559
565
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
560
566
|
pressable.Pressable,
|
|
561
567
|
{
|
|
562
568
|
href,
|
|
563
569
|
onClick,
|
|
564
|
-
asButton:
|
|
565
|
-
|
|
570
|
+
asButton: shouldStyleAsButton,
|
|
571
|
+
variant: resolvedVariant,
|
|
572
|
+
size: resolvedSize,
|
|
573
|
+
"data-slot": shouldStyleAsButton ? "button" : void 0,
|
|
574
|
+
"data-variant": resolvedVariant,
|
|
575
|
+
"data-size": resolvedSize,
|
|
576
|
+
className: cn(
|
|
577
|
+
shouldStyleAsButton && pressable.buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
|
|
578
|
+
actionClassName
|
|
579
|
+
),
|
|
566
580
|
...pressableProps,
|
|
567
581
|
children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
568
582
|
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 * as AvatarPrimitive from '@radix-ui/react-avatar';
|
|
9
|
-
import { Pressable } from '@page-speed/pressable';
|
|
9
|
+
import { Pressable, buttonVariants } from '@page-speed/pressable';
|
|
10
10
|
|
|
11
11
|
// components/blocks/testimonials/testimonials-grid-add-review.tsx
|
|
12
12
|
function cn(...inputs) {
|
|
@@ -531,16 +531,30 @@ function ActionComponent({ action }) {
|
|
|
531
531
|
children,
|
|
532
532
|
href,
|
|
533
533
|
onClick,
|
|
534
|
+
asButton,
|
|
535
|
+
variant,
|
|
536
|
+
size,
|
|
534
537
|
className: actionClassName,
|
|
535
538
|
...pressableProps
|
|
536
539
|
} = action;
|
|
540
|
+
const shouldStyleAsButton = asButton ?? true;
|
|
541
|
+
const resolvedVariant = shouldStyleAsButton ? variant ?? "default" : void 0;
|
|
542
|
+
const resolvedSize = shouldStyleAsButton ? size ?? "default" : void 0;
|
|
537
543
|
return /* @__PURE__ */ jsx(
|
|
538
544
|
Pressable,
|
|
539
545
|
{
|
|
540
546
|
href,
|
|
541
547
|
onClick,
|
|
542
|
-
asButton:
|
|
543
|
-
|
|
548
|
+
asButton: shouldStyleAsButton,
|
|
549
|
+
variant: resolvedVariant,
|
|
550
|
+
size: resolvedSize,
|
|
551
|
+
"data-slot": shouldStyleAsButton ? "button" : void 0,
|
|
552
|
+
"data-variant": resolvedVariant,
|
|
553
|
+
"data-size": resolvedSize,
|
|
554
|
+
className: cn(
|
|
555
|
+
shouldStyleAsButton && buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
|
|
556
|
+
actionClassName
|
|
557
|
+
),
|
|
544
558
|
...pressableProps,
|
|
545
559
|
children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
546
560
|
icon,
|
|
@@ -501,16 +501,30 @@ function ActionComponent({ action }) {
|
|
|
501
501
|
children,
|
|
502
502
|
href,
|
|
503
503
|
onClick,
|
|
504
|
+
asButton,
|
|
505
|
+
variant,
|
|
506
|
+
size,
|
|
504
507
|
className: actionClassName,
|
|
505
508
|
...pressableProps
|
|
506
509
|
} = action;
|
|
510
|
+
const shouldStyleAsButton = asButton ?? true;
|
|
511
|
+
const resolvedVariant = shouldStyleAsButton ? variant ?? "default" : void 0;
|
|
512
|
+
const resolvedSize = shouldStyleAsButton ? size ?? "default" : void 0;
|
|
507
513
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
508
514
|
pressable.Pressable,
|
|
509
515
|
{
|
|
510
516
|
href,
|
|
511
517
|
onClick,
|
|
512
|
-
asButton:
|
|
513
|
-
|
|
518
|
+
asButton: shouldStyleAsButton,
|
|
519
|
+
variant: resolvedVariant,
|
|
520
|
+
size: resolvedSize,
|
|
521
|
+
"data-slot": shouldStyleAsButton ? "button" : void 0,
|
|
522
|
+
"data-variant": resolvedVariant,
|
|
523
|
+
"data-size": resolvedSize,
|
|
524
|
+
className: cn(
|
|
525
|
+
shouldStyleAsButton && pressable.buttonVariants({ variant: resolvedVariant, size: resolvedSize }),
|
|
526
|
+
actionClassName
|
|
527
|
+
),
|
|
514
528
|
...pressableProps,
|
|
515
529
|
children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
516
530
|
icon,
|