@opensite/ui 2.0.2 → 2.0.4
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/hero-ai-powered-carousel.cjs +152 -77
- package/dist/hero-ai-powered-carousel.d.cts +5 -13
- package/dist/hero-ai-powered-carousel.d.ts +5 -13
- package/dist/hero-ai-powered-carousel.js +152 -77
- package/dist/hero-announcement-badge.cjs +679 -665
- package/dist/hero-announcement-badge.d.cts +1 -1
- package/dist/hero-announcement-badge.d.ts +1 -1
- package/dist/hero-announcement-badge.js +689 -675
- package/dist/hero-badge-shadow-overlay.cjs +79 -32
- package/dist/hero-badge-shadow-overlay.js +80 -33
- package/dist/hero-centered-image-grid.cjs +106 -95
- package/dist/hero-centered-image-grid.d.cts +2 -14
- package/dist/hero-centered-image-grid.d.ts +2 -14
- package/dist/hero-centered-image-grid.js +106 -95
- package/dist/hero-community-survey-cta.cjs +149 -58
- package/dist/hero-community-survey-cta.d.cts +1 -1
- package/dist/hero-community-survey-cta.d.ts +1 -1
- package/dist/hero-community-survey-cta.js +149 -58
- package/dist/hero-design-carousel-portfolio.cjs +158 -66
- package/dist/hero-design-carousel-portfolio.d.cts +7 -11
- package/dist/hero-design-carousel-portfolio.d.ts +7 -11
- package/dist/hero-design-carousel-portfolio.js +158 -66
- package/dist/hero-event-registration.cjs +765 -718
- package/dist/hero-event-registration.js +761 -714
- package/dist/hero-fullscreen-background-image.cjs +746 -649
- package/dist/hero-fullscreen-background-image.d.cts +12 -4
- package/dist/hero-fullscreen-background-image.d.ts +12 -4
- package/dist/hero-fullscreen-background-image.js +746 -649
- package/dist/hero-fullscreen-logo-cta.cjs +89 -31
- package/dist/hero-fullscreen-logo-cta.js +89 -31
- package/dist/hero-gradient-avatars-rating.cjs +847 -816
- package/dist/hero-gradient-avatars-rating.d.cts +1 -13
- package/dist/hero-gradient-avatars-rating.d.ts +1 -13
- package/dist/hero-gradient-avatars-rating.js +844 -813
- package/dist/hero-gradient-client-focused.cjs +690 -629
- package/dist/hero-gradient-client-focused.d.cts +1 -1
- package/dist/hero-gradient-client-focused.d.ts +1 -1
- package/dist/hero-gradient-client-focused.js +689 -628
- package/dist/hero-grid-pattern-efficiency.cjs +59 -47
- package/dist/hero-grid-pattern-efficiency.d.cts +1 -8
- package/dist/hero-grid-pattern-efficiency.d.ts +1 -8
- package/dist/hero-grid-pattern-efficiency.js +59 -47
- package/dist/hero-logo-centered-screenshot.cjs +1 -1
- package/dist/hero-logo-centered-screenshot.js +1 -1
- package/dist/hero-marketplace-scattered-images.cjs +2 -6
- package/dist/hero-marketplace-scattered-images.d.cts +1 -4
- package/dist/hero-marketplace-scattered-images.d.ts +1 -4
- package/dist/hero-marketplace-scattered-images.js +2 -6
- package/dist/hero-pattern-logo-tech-stack.cjs +1 -1
- package/dist/hero-pattern-logo-tech-stack.js +1 -1
- package/dist/hero-platform-features-grid.cjs +5 -5
- package/dist/hero-platform-features-grid.js +5 -5
- package/dist/hero-simple-centered-image.cjs +140 -44
- package/dist/hero-simple-centered-image.d.cts +1 -1
- package/dist/hero-simple-centered-image.d.ts +1 -1
- package/dist/hero-simple-centered-image.js +140 -44
- package/dist/hero-spiral-pattern-cards.cjs +857 -809
- package/dist/hero-spiral-pattern-cards.d.cts +5 -1
- package/dist/hero-spiral-pattern-cards.d.ts +5 -1
- package/dist/hero-spiral-pattern-cards.js +856 -808
- package/dist/hero-split-geometric-shapes.cjs +754 -723
- package/dist/hero-split-geometric-shapes.d.cts +5 -1
- package/dist/hero-split-geometric-shapes.d.ts +5 -1
- package/dist/hero-split-geometric-shapes.js +748 -717
- package/dist/hero-task-timer-animated.cjs +698 -650
- package/dist/hero-task-timer-animated.d.cts +5 -1
- package/dist/hero-task-timer-animated.d.ts +5 -1
- package/dist/hero-task-timer-animated.js +697 -649
- package/dist/hero-ui-library-showcase.cjs +734 -719
- package/dist/hero-ui-library-showcase.d.cts +5 -1
- package/dist/hero-ui-library-showcase.d.ts +5 -1
- package/dist/hero-ui-library-showcase.js +732 -717
- package/dist/registry.cjs +1035 -788
- package/dist/registry.js +1035 -788
- package/package.json +1 -1
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
'use strict';
|
|
3
3
|
|
|
4
|
-
var React = require('react');
|
|
5
4
|
var clsx = require('clsx');
|
|
6
5
|
var tailwindMerge = require('tailwind-merge');
|
|
7
6
|
var reactSlot = require('@radix-ui/react-slot');
|
|
8
7
|
var classVarianceAuthority = require('class-variance-authority');
|
|
9
8
|
var jsxRuntime = require('react/jsx-runtime');
|
|
9
|
+
var React = require('react');
|
|
10
10
|
var icon = require('@page-speed/icon');
|
|
11
11
|
var img = require('@page-speed/img');
|
|
12
12
|
|
|
@@ -30,7 +30,7 @@ function _interopNamespace(e) {
|
|
|
30
30
|
|
|
31
31
|
var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
32
32
|
|
|
33
|
-
//
|
|
33
|
+
// lib/utils.ts
|
|
34
34
|
function cn(...inputs) {
|
|
35
35
|
return tailwindMerge.twMerge(clsx.clsx(inputs));
|
|
36
36
|
}
|
|
@@ -863,43 +863,39 @@ var Section = React__namespace.default.forwardRef(
|
|
|
863
863
|
}
|
|
864
864
|
);
|
|
865
865
|
Section.displayName = "Section";
|
|
866
|
-
|
|
867
|
-
|
|
868
|
-
|
|
869
|
-
|
|
870
|
-
|
|
871
|
-
|
|
872
|
-
|
|
866
|
+
var MOBILE_CLASSES = {
|
|
867
|
+
"fit-left": "items-start md:items-center",
|
|
868
|
+
"fit-center": "items-center",
|
|
869
|
+
"fit-right": "items-end md:items-center",
|
|
870
|
+
"full-left": "items-stretch md:items-center",
|
|
871
|
+
"full-center": "items-stretch md:items-center",
|
|
872
|
+
"full-right": "items-stretch md:items-center"
|
|
873
|
+
};
|
|
874
|
+
function BlockActions({
|
|
875
|
+
mobileConfig,
|
|
876
|
+
actionsClassName,
|
|
877
|
+
verticalSpacing = "mt-4 md:mt-8",
|
|
873
878
|
actions,
|
|
874
|
-
actionsSlot
|
|
875
|
-
backgroundImageUrl,
|
|
876
|
-
optixFlowConfig,
|
|
877
|
-
background,
|
|
878
|
-
spacing = "py-0 md:py-0",
|
|
879
|
-
pattern,
|
|
880
|
-
patternOpacity,
|
|
881
|
-
className,
|
|
882
|
-
containerClassName = "mx-0 w-screen px-0 sm:px-0 lg:px-0 max-w-screen relative z-10 min-h-screen h-full",
|
|
883
|
-
announcementClassName,
|
|
884
|
-
headingClassName,
|
|
885
|
-
actionsClassName
|
|
879
|
+
actionsSlot
|
|
886
880
|
}) {
|
|
887
|
-
const
|
|
888
|
-
|
|
889
|
-
if (!actions || actions.length === 0) return null;
|
|
890
|
-
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("flex flex-col md:flex-row gap-4", actionsClassName), children: actions.map((action, index) => {
|
|
881
|
+
const renderAction = React__namespace.useCallback(
|
|
882
|
+
(action, idx) => {
|
|
891
883
|
const {
|
|
892
884
|
label,
|
|
893
885
|
icon,
|
|
894
886
|
iconAfter,
|
|
895
887
|
children,
|
|
888
|
+
href,
|
|
889
|
+
onClick,
|
|
896
890
|
className: actionClassName,
|
|
897
891
|
...pressableProps
|
|
898
892
|
} = action;
|
|
899
893
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
900
894
|
Pressable,
|
|
901
895
|
{
|
|
902
|
-
|
|
896
|
+
href,
|
|
897
|
+
onClick,
|
|
898
|
+
asButton: action.asButton || true,
|
|
903
899
|
className: actionClassName,
|
|
904
900
|
...pressableProps,
|
|
905
901
|
children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
@@ -908,10 +904,54 @@ function HeroBadgeShadowOverlay({
|
|
|
908
904
|
iconAfter
|
|
909
905
|
] })
|
|
910
906
|
},
|
|
911
|
-
|
|
907
|
+
idx
|
|
912
908
|
);
|
|
913
|
-
}
|
|
914
|
-
|
|
909
|
+
},
|
|
910
|
+
[]
|
|
911
|
+
);
|
|
912
|
+
const width = mobileConfig?.width ?? "full";
|
|
913
|
+
const position = mobileConfig?.position ?? "center";
|
|
914
|
+
const mobileLayoutClass = MOBILE_CLASSES[`${width}-${position}`];
|
|
915
|
+
if (actionsSlot) {
|
|
916
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { children: actionsSlot });
|
|
917
|
+
} else if (actions && actions?.length > 0) {
|
|
918
|
+
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
919
|
+
"div",
|
|
920
|
+
{
|
|
921
|
+
className: cn(
|
|
922
|
+
"flex flex-col md:flex-row flex-wrap gap-4",
|
|
923
|
+
mobileLayoutClass,
|
|
924
|
+
actionsClassName,
|
|
925
|
+
verticalSpacing
|
|
926
|
+
),
|
|
927
|
+
children: actions.map((action, index) => renderAction(action, index))
|
|
928
|
+
}
|
|
929
|
+
);
|
|
930
|
+
} else {
|
|
931
|
+
return null;
|
|
932
|
+
}
|
|
933
|
+
}
|
|
934
|
+
function HeroBadgeShadowOverlay({
|
|
935
|
+
announcementBadge,
|
|
936
|
+
announcementText,
|
|
937
|
+
announcementHref,
|
|
938
|
+
description,
|
|
939
|
+
descriptionClassName,
|
|
940
|
+
heading,
|
|
941
|
+
actions,
|
|
942
|
+
actionsSlot,
|
|
943
|
+
backgroundImageUrl,
|
|
944
|
+
optixFlowConfig,
|
|
945
|
+
background,
|
|
946
|
+
spacing = "py-0 md:py-0",
|
|
947
|
+
pattern,
|
|
948
|
+
patternOpacity,
|
|
949
|
+
className,
|
|
950
|
+
containerClassName = "mx-0 w-screen px-0 sm:px-0 lg:px-0 max-w-screen relative z-10 min-h-screen h-full",
|
|
951
|
+
announcementClassName,
|
|
952
|
+
headingClassName,
|
|
953
|
+
actionsClassName
|
|
954
|
+
}) {
|
|
915
955
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
916
956
|
Section,
|
|
917
957
|
{
|
|
@@ -922,7 +962,7 @@ function HeroBadgeShadowOverlay({
|
|
|
922
962
|
className: cn("relative flex items-center justify-center", className),
|
|
923
963
|
containerClassName,
|
|
924
964
|
children: [
|
|
925
|
-
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col min-h-screen h-full justify-center items-center", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center gap-
|
|
965
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col min-h-screen h-full justify-center items-center", children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col items-center gap-4 text-center px-6 max-full md:max-w-lg", children: [
|
|
926
966
|
(announcementBadge || announcementText) && /* @__PURE__ */ jsxRuntime.jsxs(
|
|
927
967
|
Pressable,
|
|
928
968
|
{
|
|
@@ -942,7 +982,7 @@ function HeroBadgeShadowOverlay({
|
|
|
942
982
|
"h1",
|
|
943
983
|
{
|
|
944
984
|
className: cn(
|
|
945
|
-
"text-4xl font-semibold lg:text-8xl text-white text-balance text-shadow-
|
|
985
|
+
"text-4xl font-semibold lg:text-8xl text-white text-balance text-shadow-2xl text-center",
|
|
946
986
|
headingClassName
|
|
947
987
|
),
|
|
948
988
|
children: heading
|
|
@@ -958,7 +998,14 @@ function HeroBadgeShadowOverlay({
|
|
|
958
998
|
children: description
|
|
959
999
|
}
|
|
960
1000
|
) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description })),
|
|
961
|
-
|
|
1001
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1002
|
+
BlockActions,
|
|
1003
|
+
{
|
|
1004
|
+
actions,
|
|
1005
|
+
actionsSlot,
|
|
1006
|
+
actionsClassName
|
|
1007
|
+
}
|
|
1008
|
+
)
|
|
962
1009
|
] }) }),
|
|
963
1010
|
backgroundImageUrl && /* @__PURE__ */ jsxRuntime.jsx(
|
|
964
1011
|
img.Img,
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import * as React from 'react';
|
|
3
|
-
import React__default, { useMemo } from 'react';
|
|
4
2
|
import { clsx } from 'clsx';
|
|
5
3
|
import { twMerge } from 'tailwind-merge';
|
|
6
4
|
import { Slot } from '@radix-ui/react-slot';
|
|
7
5
|
import { cva } from 'class-variance-authority';
|
|
8
6
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
7
|
+
import * as React from 'react';
|
|
8
|
+
import React__default from 'react';
|
|
9
9
|
import { Icon } from '@page-speed/icon';
|
|
10
10
|
import { Img } from '@page-speed/img';
|
|
11
11
|
|
|
12
|
-
//
|
|
12
|
+
// lib/utils.ts
|
|
13
13
|
function cn(...inputs) {
|
|
14
14
|
return twMerge(clsx(inputs));
|
|
15
15
|
}
|
|
@@ -842,43 +842,39 @@ var Section = React__default.forwardRef(
|
|
|
842
842
|
}
|
|
843
843
|
);
|
|
844
844
|
Section.displayName = "Section";
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
845
|
+
var MOBILE_CLASSES = {
|
|
846
|
+
"fit-left": "items-start md:items-center",
|
|
847
|
+
"fit-center": "items-center",
|
|
848
|
+
"fit-right": "items-end md:items-center",
|
|
849
|
+
"full-left": "items-stretch md:items-center",
|
|
850
|
+
"full-center": "items-stretch md:items-center",
|
|
851
|
+
"full-right": "items-stretch md:items-center"
|
|
852
|
+
};
|
|
853
|
+
function BlockActions({
|
|
854
|
+
mobileConfig,
|
|
855
|
+
actionsClassName,
|
|
856
|
+
verticalSpacing = "mt-4 md:mt-8",
|
|
852
857
|
actions,
|
|
853
|
-
actionsSlot
|
|
854
|
-
backgroundImageUrl,
|
|
855
|
-
optixFlowConfig,
|
|
856
|
-
background,
|
|
857
|
-
spacing = "py-0 md:py-0",
|
|
858
|
-
pattern,
|
|
859
|
-
patternOpacity,
|
|
860
|
-
className,
|
|
861
|
-
containerClassName = "mx-0 w-screen px-0 sm:px-0 lg:px-0 max-w-screen relative z-10 min-h-screen h-full",
|
|
862
|
-
announcementClassName,
|
|
863
|
-
headingClassName,
|
|
864
|
-
actionsClassName
|
|
858
|
+
actionsSlot
|
|
865
859
|
}) {
|
|
866
|
-
const
|
|
867
|
-
|
|
868
|
-
if (!actions || actions.length === 0) return null;
|
|
869
|
-
return /* @__PURE__ */ jsx("div", { className: cn("flex flex-col md:flex-row gap-4", actionsClassName), children: actions.map((action, index) => {
|
|
860
|
+
const renderAction = React.useCallback(
|
|
861
|
+
(action, idx) => {
|
|
870
862
|
const {
|
|
871
863
|
label,
|
|
872
864
|
icon,
|
|
873
865
|
iconAfter,
|
|
874
866
|
children,
|
|
867
|
+
href,
|
|
868
|
+
onClick,
|
|
875
869
|
className: actionClassName,
|
|
876
870
|
...pressableProps
|
|
877
871
|
} = action;
|
|
878
872
|
return /* @__PURE__ */ jsx(
|
|
879
873
|
Pressable,
|
|
880
874
|
{
|
|
881
|
-
|
|
875
|
+
href,
|
|
876
|
+
onClick,
|
|
877
|
+
asButton: action.asButton || true,
|
|
882
878
|
className: actionClassName,
|
|
883
879
|
...pressableProps,
|
|
884
880
|
children: children ?? /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
@@ -887,10 +883,54 @@ function HeroBadgeShadowOverlay({
|
|
|
887
883
|
iconAfter
|
|
888
884
|
] })
|
|
889
885
|
},
|
|
890
|
-
|
|
886
|
+
idx
|
|
891
887
|
);
|
|
892
|
-
}
|
|
893
|
-
|
|
888
|
+
},
|
|
889
|
+
[]
|
|
890
|
+
);
|
|
891
|
+
const width = mobileConfig?.width ?? "full";
|
|
892
|
+
const position = mobileConfig?.position ?? "center";
|
|
893
|
+
const mobileLayoutClass = MOBILE_CLASSES[`${width}-${position}`];
|
|
894
|
+
if (actionsSlot) {
|
|
895
|
+
return /* @__PURE__ */ jsx("div", { children: actionsSlot });
|
|
896
|
+
} else if (actions && actions?.length > 0) {
|
|
897
|
+
return /* @__PURE__ */ jsx(
|
|
898
|
+
"div",
|
|
899
|
+
{
|
|
900
|
+
className: cn(
|
|
901
|
+
"flex flex-col md:flex-row flex-wrap gap-4",
|
|
902
|
+
mobileLayoutClass,
|
|
903
|
+
actionsClassName,
|
|
904
|
+
verticalSpacing
|
|
905
|
+
),
|
|
906
|
+
children: actions.map((action, index) => renderAction(action, index))
|
|
907
|
+
}
|
|
908
|
+
);
|
|
909
|
+
} else {
|
|
910
|
+
return null;
|
|
911
|
+
}
|
|
912
|
+
}
|
|
913
|
+
function HeroBadgeShadowOverlay({
|
|
914
|
+
announcementBadge,
|
|
915
|
+
announcementText,
|
|
916
|
+
announcementHref,
|
|
917
|
+
description,
|
|
918
|
+
descriptionClassName,
|
|
919
|
+
heading,
|
|
920
|
+
actions,
|
|
921
|
+
actionsSlot,
|
|
922
|
+
backgroundImageUrl,
|
|
923
|
+
optixFlowConfig,
|
|
924
|
+
background,
|
|
925
|
+
spacing = "py-0 md:py-0",
|
|
926
|
+
pattern,
|
|
927
|
+
patternOpacity,
|
|
928
|
+
className,
|
|
929
|
+
containerClassName = "mx-0 w-screen px-0 sm:px-0 lg:px-0 max-w-screen relative z-10 min-h-screen h-full",
|
|
930
|
+
announcementClassName,
|
|
931
|
+
headingClassName,
|
|
932
|
+
actionsClassName
|
|
933
|
+
}) {
|
|
894
934
|
return /* @__PURE__ */ jsxs(
|
|
895
935
|
Section,
|
|
896
936
|
{
|
|
@@ -901,7 +941,7 @@ function HeroBadgeShadowOverlay({
|
|
|
901
941
|
className: cn("relative flex items-center justify-center", className),
|
|
902
942
|
containerClassName,
|
|
903
943
|
children: [
|
|
904
|
-
/* @__PURE__ */ jsx("div", { className: "flex flex-col min-h-screen h-full justify-center items-center", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-
|
|
944
|
+
/* @__PURE__ */ jsx("div", { className: "flex flex-col min-h-screen h-full justify-center items-center", children: /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-4 text-center px-6 max-full md:max-w-lg", children: [
|
|
905
945
|
(announcementBadge || announcementText) && /* @__PURE__ */ jsxs(
|
|
906
946
|
Pressable,
|
|
907
947
|
{
|
|
@@ -921,7 +961,7 @@ function HeroBadgeShadowOverlay({
|
|
|
921
961
|
"h1",
|
|
922
962
|
{
|
|
923
963
|
className: cn(
|
|
924
|
-
"text-4xl font-semibold lg:text-8xl text-white text-balance text-shadow-
|
|
964
|
+
"text-4xl font-semibold lg:text-8xl text-white text-balance text-shadow-2xl text-center",
|
|
925
965
|
headingClassName
|
|
926
966
|
),
|
|
927
967
|
children: heading
|
|
@@ -937,7 +977,14 @@ function HeroBadgeShadowOverlay({
|
|
|
937
977
|
children: description
|
|
938
978
|
}
|
|
939
979
|
) : /* @__PURE__ */ jsx("div", { className: descriptionClassName, children: description })),
|
|
940
|
-
|
|
980
|
+
/* @__PURE__ */ jsx(
|
|
981
|
+
BlockActions,
|
|
982
|
+
{
|
|
983
|
+
actions,
|
|
984
|
+
actionsSlot,
|
|
985
|
+
actionsClassName
|
|
986
|
+
}
|
|
987
|
+
)
|
|
941
988
|
] }) }),
|
|
942
989
|
backgroundImageUrl && /* @__PURE__ */ jsx(
|
|
943
990
|
Img,
|
|
@@ -32,32 +32,6 @@ var React__namespace = /*#__PURE__*/_interopNamespace(React);
|
|
|
32
32
|
function cn(...inputs) {
|
|
33
33
|
return tailwindMerge.twMerge(clsx.clsx(inputs));
|
|
34
34
|
}
|
|
35
|
-
function getTextColor(parentBg, variant = "default", options) {
|
|
36
|
-
const isDark = parentBg === "dark" || parentBg === "secondary" || parentBg === "primary";
|
|
37
|
-
if (isDark) {
|
|
38
|
-
switch (variant) {
|
|
39
|
-
case "default":
|
|
40
|
-
return "text-foreground";
|
|
41
|
-
case "muted":
|
|
42
|
-
return "text-foreground/80";
|
|
43
|
-
case "subtle":
|
|
44
|
-
return "text-foreground/60";
|
|
45
|
-
case "accent":
|
|
46
|
-
return "text-accent-foreground";
|
|
47
|
-
}
|
|
48
|
-
} else {
|
|
49
|
-
switch (variant) {
|
|
50
|
-
case "default":
|
|
51
|
-
return "text-foreground";
|
|
52
|
-
case "muted":
|
|
53
|
-
return "text-muted-foreground";
|
|
54
|
-
case "subtle":
|
|
55
|
-
return "text-muted-foreground/70";
|
|
56
|
-
case "accent":
|
|
57
|
-
return "text-primary";
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
35
|
function normalizePhoneNumber(input) {
|
|
62
36
|
const trimmed = input.trim();
|
|
63
37
|
if (trimmed.toLowerCase().startsWith("tel:")) {
|
|
@@ -859,27 +833,31 @@ function HeroCenteredImageGrid({
|
|
|
859
833
|
gridImages,
|
|
860
834
|
gridImagesSlot,
|
|
861
835
|
imageOverlayAction,
|
|
862
|
-
logos,
|
|
863
|
-
logosSlot,
|
|
864
836
|
background,
|
|
865
|
-
spacing,
|
|
866
837
|
pattern,
|
|
867
838
|
patternOpacity,
|
|
868
839
|
className,
|
|
869
|
-
containerClassName,
|
|
840
|
+
containerClassName = "px-6 sm:px-6 md:px-8 lg:px-8",
|
|
841
|
+
spacing = "xl",
|
|
870
842
|
contentClassName,
|
|
871
843
|
headingClassName,
|
|
872
844
|
descriptionClassName,
|
|
873
845
|
actionsClassName,
|
|
874
846
|
imageGridClassName,
|
|
875
|
-
logosClassName,
|
|
876
847
|
optixFlowConfig
|
|
877
848
|
}) {
|
|
878
849
|
const renderActions = React.useMemo(() => {
|
|
879
850
|
if (actionsSlot) return actionsSlot;
|
|
880
851
|
if (!actions || actions.length === 0) return null;
|
|
881
852
|
return actions.map((action, index) => {
|
|
882
|
-
const {
|
|
853
|
+
const {
|
|
854
|
+
label,
|
|
855
|
+
icon,
|
|
856
|
+
iconAfter,
|
|
857
|
+
children,
|
|
858
|
+
className: actionClassName,
|
|
859
|
+
...pressableProps
|
|
860
|
+
} = action;
|
|
883
861
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
884
862
|
Pressable,
|
|
885
863
|
{
|
|
@@ -898,38 +876,20 @@ function HeroCenteredImageGrid({
|
|
|
898
876
|
}, [actionsSlot, actions]);
|
|
899
877
|
const renderImageOverlayAction = React.useMemo(() => {
|
|
900
878
|
if (!imageOverlayAction) return null;
|
|
901
|
-
const {
|
|
902
|
-
|
|
903
|
-
|
|
904
|
-
|
|
905
|
-
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
|
|
909
|
-
|
|
910
|
-
|
|
911
|
-
|
|
912
|
-
|
|
913
|
-
|
|
914
|
-
);
|
|
879
|
+
const {
|
|
880
|
+
label,
|
|
881
|
+
icon,
|
|
882
|
+
iconAfter,
|
|
883
|
+
children,
|
|
884
|
+
className: actionClassName,
|
|
885
|
+
...pressableProps
|
|
886
|
+
} = imageOverlayAction;
|
|
887
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Pressable, { asButton: true, className: actionClassName, ...pressableProps, children: children ?? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
|
|
888
|
+
icon,
|
|
889
|
+
label,
|
|
890
|
+
iconAfter
|
|
891
|
+
] }) });
|
|
915
892
|
}, [imageOverlayAction]);
|
|
916
|
-
const renderLogos = React.useMemo(() => {
|
|
917
|
-
if (logosSlot) return logosSlot;
|
|
918
|
-
if (!logos || logos.length === 0) return null;
|
|
919
|
-
return logos.map((logo, index) => {
|
|
920
|
-
const src = typeof logo.src === "string" ? logo.src : logo.src.light;
|
|
921
|
-
typeof logo.src === "string" ? logo.src : logo.src.dark;
|
|
922
|
-
return /* @__PURE__ */ jsxRuntime.jsx(React__namespace.Fragment, { children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
923
|
-
img.Img,
|
|
924
|
-
{
|
|
925
|
-
src,
|
|
926
|
-
alt: logo.alt,
|
|
927
|
-
className: cn(logo.className, "dark:invert"),
|
|
928
|
-
optixFlowConfig
|
|
929
|
-
}
|
|
930
|
-
) }, index);
|
|
931
|
-
});
|
|
932
|
-
}, [logosSlot, logos, optixFlowConfig]);
|
|
933
893
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
934
894
|
Section,
|
|
935
895
|
{
|
|
@@ -937,39 +897,90 @@ function HeroCenteredImageGrid({
|
|
|
937
897
|
spacing,
|
|
938
898
|
pattern,
|
|
939
899
|
patternOpacity,
|
|
940
|
-
className
|
|
941
|
-
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
|
|
945
|
-
|
|
946
|
-
|
|
947
|
-
|
|
948
|
-
|
|
949
|
-
gridImagesSlot ? gridImagesSlot : /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cn("mx-auto mt-20 grid max-w-7xl gap-px bg-border p-px md:grid-cols-5", imageGridClassName), children: [
|
|
950
|
-
gridImages?.[0] && /* @__PURE__ */ jsxRuntime.jsx(
|
|
951
|
-
img.Img,
|
|
952
|
-
{
|
|
953
|
-
src: gridImages[0].src,
|
|
954
|
-
alt: gridImages[0].alt,
|
|
955
|
-
className: cn("h-full max-h-[500px] w-full object-cover md:col-span-3 dark:invert", gridImages[0].className),
|
|
956
|
-
optixFlowConfig
|
|
957
|
-
}
|
|
958
|
-
),
|
|
959
|
-
gridImages?.[1] && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative md:col-span-2", children: [
|
|
960
|
-
/* @__PURE__ */ jsxRuntime.jsx(
|
|
961
|
-
img.Img,
|
|
962
|
-
{
|
|
963
|
-
src: gridImages[1].src,
|
|
964
|
-
alt: gridImages[1].alt,
|
|
965
|
-
className: cn("h-full max-h-[500px] w-full object-cover dark:invert", gridImages[1].className),
|
|
966
|
-
optixFlowConfig
|
|
967
|
-
}
|
|
900
|
+
className,
|
|
901
|
+
containerClassName,
|
|
902
|
+
children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative", children: [
|
|
903
|
+
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "mx-auto flex max-w-5xl flex-col items-center", children: /* @__PURE__ */ jsxRuntime.jsxs(
|
|
904
|
+
"div",
|
|
905
|
+
{
|
|
906
|
+
className: cn(
|
|
907
|
+
"z-10 flex flex-col items-center gap-8 text-center",
|
|
908
|
+
contentClassName
|
|
968
909
|
),
|
|
969
|
-
|
|
970
|
-
|
|
971
|
-
|
|
972
|
-
|
|
910
|
+
children: [
|
|
911
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "max-w-3xl", children: [
|
|
912
|
+
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
913
|
+
"h1",
|
|
914
|
+
{
|
|
915
|
+
className: cn(
|
|
916
|
+
"mb-4 text-4xl font-semibold text-balance lg:text-6xl",
|
|
917
|
+
headingClassName
|
|
918
|
+
),
|
|
919
|
+
children: heading
|
|
920
|
+
}
|
|
921
|
+
) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: headingClassName, children: heading })),
|
|
922
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
923
|
+
"p",
|
|
924
|
+
{
|
|
925
|
+
className: cn(
|
|
926
|
+
"lg:text-xl text-balance",
|
|
927
|
+
descriptionClassName
|
|
928
|
+
),
|
|
929
|
+
children: description
|
|
930
|
+
}
|
|
931
|
+
) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: descriptionClassName, children: description }))
|
|
932
|
+
] }),
|
|
933
|
+
(actionsSlot || actions && actions.length > 0) && /* @__PURE__ */ jsxRuntime.jsx(
|
|
934
|
+
"div",
|
|
935
|
+
{
|
|
936
|
+
className: cn(
|
|
937
|
+
"flex w-full flex-col justify-center gap-2 sm:flex-row",
|
|
938
|
+
actionsClassName
|
|
939
|
+
),
|
|
940
|
+
children: renderActions
|
|
941
|
+
}
|
|
942
|
+
)
|
|
943
|
+
]
|
|
944
|
+
}
|
|
945
|
+
) }),
|
|
946
|
+
gridImagesSlot ? gridImagesSlot : /* @__PURE__ */ jsxRuntime.jsxs(
|
|
947
|
+
"div",
|
|
948
|
+
{
|
|
949
|
+
className: cn(
|
|
950
|
+
"mx-auto mt-20 grid max-w-7xl gap-px bg-border p-px md:grid-cols-5",
|
|
951
|
+
imageGridClassName
|
|
952
|
+
),
|
|
953
|
+
children: [
|
|
954
|
+
gridImages?.[0] && /* @__PURE__ */ jsxRuntime.jsx(
|
|
955
|
+
img.Img,
|
|
956
|
+
{
|
|
957
|
+
src: gridImages[0].src,
|
|
958
|
+
alt: gridImages[0].alt,
|
|
959
|
+
className: cn(
|
|
960
|
+
"h-full max-h-[500px] w-full object-cover md:col-span-3 dark:invert",
|
|
961
|
+
gridImages[0].className
|
|
962
|
+
),
|
|
963
|
+
optixFlowConfig
|
|
964
|
+
}
|
|
965
|
+
),
|
|
966
|
+
gridImages?.[1] && /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative md:col-span-2", children: [
|
|
967
|
+
/* @__PURE__ */ jsxRuntime.jsx(
|
|
968
|
+
img.Img,
|
|
969
|
+
{
|
|
970
|
+
src: gridImages[1].src,
|
|
971
|
+
alt: gridImages[1].alt,
|
|
972
|
+
className: cn(
|
|
973
|
+
"h-full max-h-[500px] w-full object-cover dark:invert",
|
|
974
|
+
gridImages[1].className
|
|
975
|
+
),
|
|
976
|
+
optixFlowConfig
|
|
977
|
+
}
|
|
978
|
+
),
|
|
979
|
+
renderImageOverlayAction
|
|
980
|
+
] })
|
|
981
|
+
]
|
|
982
|
+
}
|
|
983
|
+
)
|
|
973
984
|
] })
|
|
974
985
|
}
|
|
975
986
|
);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { f as SectionBackground, g as SectionSpacing, t as PatternName } from './community-initiatives-r_NhxVet.cjs';
|
|
3
|
-
import { A as ActionConfig, I as ImageItem,
|
|
3
|
+
import { A as ActionConfig, I as ImageItem, O as OptixFlowConfig } from './blocks-DP3Vofl4.cjs';
|
|
4
4
|
import 'react/jsx-runtime';
|
|
5
5
|
import 'class-variance-authority';
|
|
6
6
|
import './button-variants-CdNtNOuP.cjs';
|
|
@@ -35,14 +35,6 @@ interface HeroCenteredImageGridProps {
|
|
|
35
35
|
* Image overlay action configuration
|
|
36
36
|
*/
|
|
37
37
|
imageOverlayAction?: ActionConfig;
|
|
38
|
-
/**
|
|
39
|
-
* Array of logo items
|
|
40
|
-
*/
|
|
41
|
-
logos?: LogoItem[];
|
|
42
|
-
/**
|
|
43
|
-
* Custom slot for logos (overrides logos array)
|
|
44
|
-
*/
|
|
45
|
-
logosSlot?: React.ReactNode;
|
|
46
38
|
/**
|
|
47
39
|
* Background style for the section
|
|
48
40
|
*/
|
|
@@ -87,15 +79,11 @@ interface HeroCenteredImageGridProps {
|
|
|
87
79
|
* Additional CSS classes for the image grid
|
|
88
80
|
*/
|
|
89
81
|
imageGridClassName?: string;
|
|
90
|
-
/**
|
|
91
|
-
* Additional CSS classes for the logos container
|
|
92
|
-
*/
|
|
93
|
-
logosClassName?: string;
|
|
94
82
|
/**
|
|
95
83
|
* OptixFlow image optimization configuration
|
|
96
84
|
*/
|
|
97
85
|
optixFlowConfig?: OptixFlowConfig;
|
|
98
86
|
}
|
|
99
|
-
declare function HeroCenteredImageGrid({ heading, description, actions, actionsSlot, gridImages, gridImagesSlot, imageOverlayAction,
|
|
87
|
+
declare function HeroCenteredImageGrid({ heading, description, actions, actionsSlot, gridImages, gridImagesSlot, imageOverlayAction, background, pattern, patternOpacity, className, containerClassName, spacing, contentClassName, headingClassName, descriptionClassName, actionsClassName, imageGridClassName, optixFlowConfig, }: HeroCenteredImageGridProps): React.JSX.Element;
|
|
100
88
|
|
|
101
89
|
export { HeroCenteredImageGrid, type HeroCenteredImageGridProps };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as React from 'react';
|
|
2
2
|
import { f as SectionBackground, g as SectionSpacing, t as PatternName } from './community-initiatives-DmVsuoHE.js';
|
|
3
|
-
import { A as ActionConfig, I as ImageItem,
|
|
3
|
+
import { A as ActionConfig, I as ImageItem, O as OptixFlowConfig } from './blocks-XLPGq8A5.js';
|
|
4
4
|
import 'react/jsx-runtime';
|
|
5
5
|
import 'class-variance-authority';
|
|
6
6
|
import './button-variants-CdNtNOuP.js';
|
|
@@ -35,14 +35,6 @@ interface HeroCenteredImageGridProps {
|
|
|
35
35
|
* Image overlay action configuration
|
|
36
36
|
*/
|
|
37
37
|
imageOverlayAction?: ActionConfig;
|
|
38
|
-
/**
|
|
39
|
-
* Array of logo items
|
|
40
|
-
*/
|
|
41
|
-
logos?: LogoItem[];
|
|
42
|
-
/**
|
|
43
|
-
* Custom slot for logos (overrides logos array)
|
|
44
|
-
*/
|
|
45
|
-
logosSlot?: React.ReactNode;
|
|
46
38
|
/**
|
|
47
39
|
* Background style for the section
|
|
48
40
|
*/
|
|
@@ -87,15 +79,11 @@ interface HeroCenteredImageGridProps {
|
|
|
87
79
|
* Additional CSS classes for the image grid
|
|
88
80
|
*/
|
|
89
81
|
imageGridClassName?: string;
|
|
90
|
-
/**
|
|
91
|
-
* Additional CSS classes for the logos container
|
|
92
|
-
*/
|
|
93
|
-
logosClassName?: string;
|
|
94
82
|
/**
|
|
95
83
|
* OptixFlow image optimization configuration
|
|
96
84
|
*/
|
|
97
85
|
optixFlowConfig?: OptixFlowConfig;
|
|
98
86
|
}
|
|
99
|
-
declare function HeroCenteredImageGrid({ heading, description, actions, actionsSlot, gridImages, gridImagesSlot, imageOverlayAction,
|
|
87
|
+
declare function HeroCenteredImageGrid({ heading, description, actions, actionsSlot, gridImages, gridImagesSlot, imageOverlayAction, background, pattern, patternOpacity, className, containerClassName, spacing, contentClassName, headingClassName, descriptionClassName, actionsClassName, imageGridClassName, optixFlowConfig, }: HeroCenteredImageGridProps): React.JSX.Element;
|
|
100
88
|
|
|
101
89
|
export { HeroCenteredImageGrid, type HeroCenteredImageGridProps };
|