@opensite/ui 1.2.0 → 1.2.1
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/auto-scroll-carousel.cjs +4 -4
- package/dist/auto-scroll-carousel.js +4 -4
- package/dist/blur-vignette-grid.cjs +19 -27
- package/dist/blur-vignette-grid.js +19 -27
- package/dist/carousel-badge-cards.cjs +1 -1
- package/dist/carousel-badge-cards.js +1 -1
- package/dist/carousel-gradient-overlay.cjs +1 -1
- package/dist/carousel-gradient-overlay.js +1 -1
- package/dist/carousel-icon-sidebar.cjs +33 -3
- package/dist/carousel-icon-sidebar.d.cts +19 -3
- package/dist/carousel-icon-sidebar.d.ts +19 -3
- package/dist/carousel-icon-sidebar.js +33 -3
- package/dist/carousel-icon-tabs.cjs +19 -5
- package/dist/carousel-icon-tabs.js +19 -5
- package/dist/carousel-scale-focus.cjs +4 -10
- package/dist/carousel-scale-focus.js +4 -10
- package/dist/carousel-tabs-content.cjs +4 -16
- package/dist/carousel-tabs-content.js +4 -16
- package/dist/expandable-case-study-cards.cjs +27 -73
- package/dist/expandable-case-study-cards.js +27 -73
- package/dist/interior-carousel.cjs +8 -11
- package/dist/interior-carousel.js +8 -11
- package/dist/masonry-motion-grid.cjs +4 -16
- package/dist/masonry-motion-grid.js +4 -16
- package/dist/registry.cjs +129 -163
- package/dist/registry.js +129 -163
- package/dist/testimonial-carousel-cards.cjs +6 -60
- package/dist/testimonial-carousel-cards.js +6 -60
- package/package.json +1 -1
|
@@ -1100,13 +1100,13 @@ function AutoScrollCarousel({
|
|
|
1100
1100
|
className: actionClass,
|
|
1101
1101
|
...pressableProps
|
|
1102
1102
|
} = action;
|
|
1103
|
-
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
1103
|
+
return /* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex text-left", children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1104
1104
|
Pressable,
|
|
1105
1105
|
{
|
|
1106
1106
|
variant: "link",
|
|
1107
1107
|
asButton: true,
|
|
1108
1108
|
className: cn(
|
|
1109
|
-
"font-medium flex items-center",
|
|
1109
|
+
"font-medium flex items-center text-xl",
|
|
1110
1110
|
actionClass,
|
|
1111
1111
|
actionClassName
|
|
1112
1112
|
),
|
|
@@ -1124,7 +1124,7 @@ function AutoScrollCarousel({
|
|
|
1124
1124
|
)
|
|
1125
1125
|
] })
|
|
1126
1126
|
}
|
|
1127
|
-
);
|
|
1127
|
+
) });
|
|
1128
1128
|
}, [actionSlot, action, actionClassName]);
|
|
1129
1129
|
const imagesContent = React4.useMemo(() => {
|
|
1130
1130
|
if (imagesSlot) return imagesSlot;
|
|
@@ -1164,7 +1164,7 @@ function AutoScrollCarousel({
|
|
|
1164
1164
|
),
|
|
1165
1165
|
children: [
|
|
1166
1166
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "flex flex-col gap-8 md:gap-12", children: heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1167
|
-
"
|
|
1167
|
+
"h2",
|
|
1168
1168
|
{
|
|
1169
1169
|
className: cn(
|
|
1170
1170
|
"text-3xl font-bold md:text-4xl",
|
|
@@ -1075,13 +1075,13 @@ function AutoScrollCarousel({
|
|
|
1075
1075
|
className: actionClass,
|
|
1076
1076
|
...pressableProps
|
|
1077
1077
|
} = action;
|
|
1078
|
-
return /* @__PURE__ */ jsx(
|
|
1078
|
+
return /* @__PURE__ */ jsx("div", { className: "flex text-left", children: /* @__PURE__ */ jsx(
|
|
1079
1079
|
Pressable,
|
|
1080
1080
|
{
|
|
1081
1081
|
variant: "link",
|
|
1082
1082
|
asButton: true,
|
|
1083
1083
|
className: cn(
|
|
1084
|
-
"font-medium flex items-center",
|
|
1084
|
+
"font-medium flex items-center text-xl",
|
|
1085
1085
|
actionClass,
|
|
1086
1086
|
actionClassName
|
|
1087
1087
|
),
|
|
@@ -1099,7 +1099,7 @@ function AutoScrollCarousel({
|
|
|
1099
1099
|
)
|
|
1100
1100
|
] })
|
|
1101
1101
|
}
|
|
1102
|
-
);
|
|
1102
|
+
) });
|
|
1103
1103
|
}, [actionSlot, action, actionClassName]);
|
|
1104
1104
|
const imagesContent = useMemo(() => {
|
|
1105
1105
|
if (imagesSlot) return imagesSlot;
|
|
@@ -1139,7 +1139,7 @@ function AutoScrollCarousel({
|
|
|
1139
1139
|
),
|
|
1140
1140
|
children: [
|
|
1141
1141
|
/* @__PURE__ */ jsx("div", { className: "flex flex-col gap-8 md:gap-12", children: heading && (typeof heading === "string" ? /* @__PURE__ */ jsx(
|
|
1142
|
-
"
|
|
1142
|
+
"h2",
|
|
1143
1143
|
{
|
|
1144
1144
|
className: cn(
|
|
1145
1145
|
"text-3xl font-bold md:text-4xl",
|
|
@@ -428,9 +428,9 @@ function BlurVignette({
|
|
|
428
428
|
--r: max(var(--transition-length), calc(var(--radius) - var(--inset)));
|
|
429
429
|
--corner-size: calc(var(--r) + var(--inset)) calc(var(--r) + var(--inset));
|
|
430
430
|
--corner-gradient: transparent 0px,
|
|
431
|
-
transparent calc(var(--r) - var(--transition-length)),
|
|
431
|
+
transparent calc(var(--r) - var(--transition-length)),
|
|
432
432
|
black var(--r);
|
|
433
|
-
--fill-gradient: black,
|
|
433
|
+
--fill-gradient: black,
|
|
434
434
|
black var(--inset),
|
|
435
435
|
transparent calc(var(--inset) + var(--transition-length)),
|
|
436
436
|
transparent calc(100% - var(--transition-length) - var(--inset)),
|
|
@@ -443,21 +443,21 @@ function BlurVignette({
|
|
|
443
443
|
radial-gradient(at bottom left, var(--corner-gradient)),
|
|
444
444
|
radial-gradient(at top left, var(--corner-gradient)),
|
|
445
445
|
radial-gradient(at top right, var(--corner-gradient));
|
|
446
|
-
-webkit-mask-size: 100% var(--fill-narrow-size),
|
|
446
|
+
-webkit-mask-size: 100% var(--fill-narrow-size),
|
|
447
447
|
var(--fill-narrow-size) 100%,
|
|
448
|
-
var(--corner-size),
|
|
449
|
-
var(--corner-size),
|
|
448
|
+
var(--corner-size),
|
|
449
|
+
var(--corner-size),
|
|
450
450
|
var(--corner-size),
|
|
451
451
|
var(--corner-size);
|
|
452
|
-
-webkit-mask-position: 0 var(--fill-farther-position),
|
|
452
|
+
-webkit-mask-position: 0 var(--fill-farther-position),
|
|
453
453
|
var(--fill-farther-position) 0,
|
|
454
|
-
0 0,
|
|
455
|
-
100% 0,
|
|
456
|
-
100% 100%,
|
|
454
|
+
0 0,
|
|
455
|
+
100% 0,
|
|
456
|
+
100% 100%,
|
|
457
457
|
0 100%;
|
|
458
458
|
-webkit-mask-repeat: no-repeat;
|
|
459
459
|
opacity: 0;
|
|
460
|
-
transition: opacity 0.3s ease;
|
|
460
|
+
transition: opacity 0.3s ease;
|
|
461
461
|
}
|
|
462
462
|
|
|
463
463
|
.blur-vignette.active {
|
|
@@ -556,33 +556,21 @@ function BlurVignetteGrid({
|
|
|
556
556
|
patternClassName,
|
|
557
557
|
className,
|
|
558
558
|
children: [
|
|
559
|
-
title || description ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-4", children: [
|
|
559
|
+
title || description ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-4 mb-16", children: [
|
|
560
560
|
title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
561
561
|
"h2",
|
|
562
562
|
{
|
|
563
563
|
className: cn(
|
|
564
|
-
"text-xl font-medium tracking-tight md:text-2xl lg:text-3xl",
|
|
564
|
+
"text-xl font-medium tracking-tight md:text-2xl lg:text-3xl text-balance",
|
|
565
565
|
titleClassName
|
|
566
566
|
),
|
|
567
567
|
children: title
|
|
568
568
|
}
|
|
569
569
|
) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: titleClassName, children: title })),
|
|
570
|
-
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
571
|
-
"p",
|
|
572
|
-
{
|
|
573
|
-
className: cn(
|
|
574
|
-
"max-w-lg text-muted-foreground",
|
|
575
|
-
descriptionClassName
|
|
576
|
-
),
|
|
577
|
-
children: description
|
|
578
|
-
}
|
|
579
|
-
) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
570
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("max-w-lg text-balance", descriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
580
571
|
"div",
|
|
581
572
|
{
|
|
582
|
-
className: cn(
|
|
583
|
-
"max-w-lg text-muted-foreground",
|
|
584
|
-
descriptionClassName
|
|
585
|
-
),
|
|
573
|
+
className: cn("max-w-lg text-balance", descriptionClassName),
|
|
586
574
|
children: description
|
|
587
575
|
}
|
|
588
576
|
))
|
|
@@ -590,7 +578,11 @@ function BlurVignetteGrid({
|
|
|
590
578
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
591
579
|
"div",
|
|
592
580
|
{
|
|
593
|
-
className: cn(
|
|
581
|
+
className: cn(
|
|
582
|
+
`grid grid-cols-1 md:grid-cols-${gridColumns}`,
|
|
583
|
+
gridGap,
|
|
584
|
+
gridClassName
|
|
585
|
+
),
|
|
594
586
|
children: imagesContent
|
|
595
587
|
}
|
|
596
588
|
)
|
|
@@ -422,9 +422,9 @@ function BlurVignette({
|
|
|
422
422
|
--r: max(var(--transition-length), calc(var(--radius) - var(--inset)));
|
|
423
423
|
--corner-size: calc(var(--r) + var(--inset)) calc(var(--r) + var(--inset));
|
|
424
424
|
--corner-gradient: transparent 0px,
|
|
425
|
-
transparent calc(var(--r) - var(--transition-length)),
|
|
425
|
+
transparent calc(var(--r) - var(--transition-length)),
|
|
426
426
|
black var(--r);
|
|
427
|
-
--fill-gradient: black,
|
|
427
|
+
--fill-gradient: black,
|
|
428
428
|
black var(--inset),
|
|
429
429
|
transparent calc(var(--inset) + var(--transition-length)),
|
|
430
430
|
transparent calc(100% - var(--transition-length) - var(--inset)),
|
|
@@ -437,21 +437,21 @@ function BlurVignette({
|
|
|
437
437
|
radial-gradient(at bottom left, var(--corner-gradient)),
|
|
438
438
|
radial-gradient(at top left, var(--corner-gradient)),
|
|
439
439
|
radial-gradient(at top right, var(--corner-gradient));
|
|
440
|
-
-webkit-mask-size: 100% var(--fill-narrow-size),
|
|
440
|
+
-webkit-mask-size: 100% var(--fill-narrow-size),
|
|
441
441
|
var(--fill-narrow-size) 100%,
|
|
442
|
-
var(--corner-size),
|
|
443
|
-
var(--corner-size),
|
|
442
|
+
var(--corner-size),
|
|
443
|
+
var(--corner-size),
|
|
444
444
|
var(--corner-size),
|
|
445
445
|
var(--corner-size);
|
|
446
|
-
-webkit-mask-position: 0 var(--fill-farther-position),
|
|
446
|
+
-webkit-mask-position: 0 var(--fill-farther-position),
|
|
447
447
|
var(--fill-farther-position) 0,
|
|
448
|
-
0 0,
|
|
449
|
-
100% 0,
|
|
450
|
-
100% 100%,
|
|
448
|
+
0 0,
|
|
449
|
+
100% 0,
|
|
450
|
+
100% 100%,
|
|
451
451
|
0 100%;
|
|
452
452
|
-webkit-mask-repeat: no-repeat;
|
|
453
453
|
opacity: 0;
|
|
454
|
-
transition: opacity 0.3s ease;
|
|
454
|
+
transition: opacity 0.3s ease;
|
|
455
455
|
}
|
|
456
456
|
|
|
457
457
|
.blur-vignette.active {
|
|
@@ -550,33 +550,21 @@ function BlurVignetteGrid({
|
|
|
550
550
|
patternClassName,
|
|
551
551
|
className,
|
|
552
552
|
children: [
|
|
553
|
-
title || description ? /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4", children: [
|
|
553
|
+
title || description ? /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4 mb-16", children: [
|
|
554
554
|
title && (typeof title === "string" ? /* @__PURE__ */ jsx(
|
|
555
555
|
"h2",
|
|
556
556
|
{
|
|
557
557
|
className: cn(
|
|
558
|
-
"text-xl font-medium tracking-tight md:text-2xl lg:text-3xl",
|
|
558
|
+
"text-xl font-medium tracking-tight md:text-2xl lg:text-3xl text-balance",
|
|
559
559
|
titleClassName
|
|
560
560
|
),
|
|
561
561
|
children: title
|
|
562
562
|
}
|
|
563
563
|
) : /* @__PURE__ */ jsx("div", { className: titleClassName, children: title })),
|
|
564
|
-
description && (typeof description === "string" ? /* @__PURE__ */ jsx(
|
|
565
|
-
"p",
|
|
566
|
-
{
|
|
567
|
-
className: cn(
|
|
568
|
-
"max-w-lg text-muted-foreground",
|
|
569
|
-
descriptionClassName
|
|
570
|
-
),
|
|
571
|
-
children: description
|
|
572
|
-
}
|
|
573
|
-
) : /* @__PURE__ */ jsx(
|
|
564
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("max-w-lg text-balance", descriptionClassName), children: description }) : /* @__PURE__ */ jsx(
|
|
574
565
|
"div",
|
|
575
566
|
{
|
|
576
|
-
className: cn(
|
|
577
|
-
"max-w-lg text-muted-foreground",
|
|
578
|
-
descriptionClassName
|
|
579
|
-
),
|
|
567
|
+
className: cn("max-w-lg text-balance", descriptionClassName),
|
|
580
568
|
children: description
|
|
581
569
|
}
|
|
582
570
|
))
|
|
@@ -584,7 +572,11 @@ function BlurVignetteGrid({
|
|
|
584
572
|
/* @__PURE__ */ jsx(
|
|
585
573
|
"div",
|
|
586
574
|
{
|
|
587
|
-
className: cn(
|
|
575
|
+
className: cn(
|
|
576
|
+
`grid grid-cols-1 md:grid-cols-${gridColumns}`,
|
|
577
|
+
gridGap,
|
|
578
|
+
gridClassName
|
|
579
|
+
),
|
|
588
580
|
children: imagesContent
|
|
589
581
|
}
|
|
590
582
|
)
|
|
@@ -1243,7 +1243,7 @@ function CarouselBadgeCards({
|
|
|
1243
1243
|
"div",
|
|
1244
1244
|
{
|
|
1245
1245
|
className: cn(
|
|
1246
|
-
"mb-8 flex items-end justify-between md:mb-14 lg:mb-16",
|
|
1246
|
+
"mb-8 flex items-end justify-between md:mb-14 lg:mb-16 px-6 md:px-0",
|
|
1247
1247
|
headerClassName
|
|
1248
1248
|
),
|
|
1249
1249
|
children: [
|
|
@@ -1219,7 +1219,7 @@ function CarouselBadgeCards({
|
|
|
1219
1219
|
"div",
|
|
1220
1220
|
{
|
|
1221
1221
|
className: cn(
|
|
1222
|
-
"mb-8 flex items-end justify-between md:mb-14 lg:mb-16",
|
|
1222
|
+
"mb-8 flex items-end justify-between md:mb-14 lg:mb-16 px-6 md:px-0",
|
|
1223
1223
|
headerClassName
|
|
1224
1224
|
),
|
|
1225
1225
|
children: [
|
|
@@ -1254,7 +1254,7 @@ function CarouselGradientOverlay({
|
|
|
1254
1254
|
]
|
|
1255
1255
|
}
|
|
1256
1256
|
),
|
|
1257
|
-
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "w-full -mx-4
|
|
1257
|
+
/* @__PURE__ */ jsxRuntime.jsxs("div", { className: "w-full -mx-4", children: [
|
|
1258
1258
|
/* @__PURE__ */ jsxRuntime.jsx(
|
|
1259
1259
|
Carousel,
|
|
1260
1260
|
{
|
|
@@ -1230,7 +1230,7 @@ function CarouselGradientOverlay({
|
|
|
1230
1230
|
]
|
|
1231
1231
|
}
|
|
1232
1232
|
),
|
|
1233
|
-
/* @__PURE__ */ jsxs("div", { className: "w-full -mx-4
|
|
1233
|
+
/* @__PURE__ */ jsxs("div", { className: "w-full -mx-4", children: [
|
|
1234
1234
|
/* @__PURE__ */ jsx(
|
|
1235
1235
|
Carousel,
|
|
1236
1236
|
{
|
|
@@ -1153,10 +1153,14 @@ var Section = React4__namespace.default.forwardRef(
|
|
|
1153
1153
|
);
|
|
1154
1154
|
Section.displayName = "Section";
|
|
1155
1155
|
function CarouselIconSidebar({
|
|
1156
|
+
title,
|
|
1157
|
+
description,
|
|
1156
1158
|
items,
|
|
1157
1159
|
itemsSlot,
|
|
1158
1160
|
sidebarSlot,
|
|
1159
1161
|
className,
|
|
1162
|
+
sectionTitleClassName,
|
|
1163
|
+
sectionDescriptionClassName,
|
|
1160
1164
|
sidebarClassName,
|
|
1161
1165
|
iconClassName,
|
|
1162
1166
|
titleClassName,
|
|
@@ -1274,13 +1278,13 @@ function CarouselIconSidebar({
|
|
|
1274
1278
|
const itemsContent = React4.useMemo(() => {
|
|
1275
1279
|
if (itemsSlot) return itemsSlot;
|
|
1276
1280
|
if (!items || items.length === 0) return null;
|
|
1277
|
-
return items.map((image, index) => /* @__PURE__ */ jsxRuntime.jsx(CarouselItem, { className: cn("h-full", itemClassName), children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("
|
|
1281
|
+
return items.map((image, index) => /* @__PURE__ */ jsxRuntime.jsx(CarouselItem, { className: cn("h-full", itemClassName), children: /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("h-full w-full", image.className), children: /* @__PURE__ */ jsxRuntime.jsx(
|
|
1278
1282
|
img.Img,
|
|
1279
1283
|
{
|
|
1280
1284
|
src: image.src,
|
|
1281
1285
|
alt: typeof image.title === "string" ? image.title : image.alt || "Carousel image",
|
|
1282
1286
|
className: cn(
|
|
1283
|
-
"h-full w-full rounded-lg object-cover cursor-pointer
|
|
1287
|
+
"h-full w-full rounded-lg object-cover cursor-pointer",
|
|
1284
1288
|
imageClassName
|
|
1285
1289
|
),
|
|
1286
1290
|
loading: "lazy",
|
|
@@ -1296,7 +1300,14 @@ function CarouselIconSidebar({
|
|
|
1296
1300
|
}
|
|
1297
1301
|
}
|
|
1298
1302
|
) }) }, index));
|
|
1299
|
-
}, [
|
|
1303
|
+
}, [
|
|
1304
|
+
itemsSlot,
|
|
1305
|
+
items,
|
|
1306
|
+
itemClassName,
|
|
1307
|
+
imageClassName,
|
|
1308
|
+
optixFlowConfig,
|
|
1309
|
+
handleImageClick
|
|
1310
|
+
]);
|
|
1300
1311
|
return /* @__PURE__ */ jsxRuntime.jsxs(
|
|
1301
1312
|
Section,
|
|
1302
1313
|
{
|
|
@@ -1307,6 +1318,25 @@ function CarouselIconSidebar({
|
|
|
1307
1318
|
patternClassName,
|
|
1308
1319
|
className,
|
|
1309
1320
|
children: [
|
|
1321
|
+
title || description ? /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "flex flex-col gap-4 mb-16", children: [
|
|
1322
|
+
title && (typeof title === "string" ? /* @__PURE__ */ jsxRuntime.jsx(
|
|
1323
|
+
"h2",
|
|
1324
|
+
{
|
|
1325
|
+
className: cn(
|
|
1326
|
+
"text-xl font-medium tracking-tight md:text-2xl lg:text-3xl text-balance",
|
|
1327
|
+
sectionTitleClassName
|
|
1328
|
+
),
|
|
1329
|
+
children: title
|
|
1330
|
+
}
|
|
1331
|
+
) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: sectionTitleClassName, children: title })),
|
|
1332
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsxRuntime.jsx("p", { className: cn("max-w-lg text-balance", sectionDescriptionClassName), children: description }) : /* @__PURE__ */ jsxRuntime.jsx(
|
|
1333
|
+
"div",
|
|
1334
|
+
{
|
|
1335
|
+
className: cn("max-w-lg text-balance", sectionDescriptionClassName),
|
|
1336
|
+
children: description
|
|
1337
|
+
}
|
|
1338
|
+
))
|
|
1339
|
+
] }) : null,
|
|
1310
1340
|
/* @__PURE__ */ jsxRuntime.jsx(Carousel, { setApi, className: cn("w-full", carouselClassName), children: /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "grid grid-cols-1 gap-6 md:grid-cols-5", children: [
|
|
1311
1341
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "md:col-span-2", children: sidebarContent }),
|
|
1312
1342
|
/* @__PURE__ */ jsxRuntime.jsx("div", { className: "h-full md:col-span-3", children: /* @__PURE__ */ jsxRuntime.jsx(CarouselContent, { className: carouselContentClassName, children: itemsContent }) })
|
|
@@ -36,6 +36,14 @@ interface CarouselIconSidebarItem {
|
|
|
36
36
|
className?: string;
|
|
37
37
|
}
|
|
38
38
|
interface CarouselIconSidebarProps {
|
|
39
|
+
/**
|
|
40
|
+
* Section title (displayed above the carousel)
|
|
41
|
+
*/
|
|
42
|
+
title?: React.ReactNode;
|
|
43
|
+
/**
|
|
44
|
+
* Section description (displayed above the carousel)
|
|
45
|
+
*/
|
|
46
|
+
description?: React.ReactNode;
|
|
39
47
|
/**
|
|
40
48
|
* Array of items to display
|
|
41
49
|
*/
|
|
@@ -52,6 +60,14 @@ interface CarouselIconSidebarProps {
|
|
|
52
60
|
* Additional CSS classes for the section
|
|
53
61
|
*/
|
|
54
62
|
className?: string;
|
|
63
|
+
/**
|
|
64
|
+
* Additional CSS classes for the section title
|
|
65
|
+
*/
|
|
66
|
+
sectionTitleClassName?: string;
|
|
67
|
+
/**
|
|
68
|
+
* Additional CSS classes for the section description
|
|
69
|
+
*/
|
|
70
|
+
sectionDescriptionClassName?: string;
|
|
55
71
|
/**
|
|
56
72
|
* Additional CSS classes for the sidebar panel
|
|
57
73
|
*/
|
|
@@ -61,11 +77,11 @@ interface CarouselIconSidebarProps {
|
|
|
61
77
|
*/
|
|
62
78
|
iconClassName?: string;
|
|
63
79
|
/**
|
|
64
|
-
* Additional CSS classes for the title
|
|
80
|
+
* Additional CSS classes for the sidebar item title
|
|
65
81
|
*/
|
|
66
82
|
titleClassName?: string;
|
|
67
83
|
/**
|
|
68
|
-
* Additional CSS classes for the description
|
|
84
|
+
* Additional CSS classes for the sidebar item description
|
|
69
85
|
*/
|
|
70
86
|
descriptionClassName?: string;
|
|
71
87
|
/**
|
|
@@ -136,6 +152,6 @@ interface CarouselIconSidebarProps {
|
|
|
136
152
|
* />
|
|
137
153
|
* ```
|
|
138
154
|
*/
|
|
139
|
-
declare function CarouselIconSidebar({ items, itemsSlot, sidebarSlot, className, sidebarClassName, iconClassName, titleClassName, descriptionClassName, controlsClassName, carouselClassName, carouselContentClassName, itemClassName, imageClassName, background, spacing, pattern, patternOpacity, patternClassName, optixFlowConfig, }: CarouselIconSidebarProps): React.JSX.Element;
|
|
155
|
+
declare function CarouselIconSidebar({ title, description, items, itemsSlot, sidebarSlot, className, sectionTitleClassName, sectionDescriptionClassName, sidebarClassName, iconClassName, titleClassName, descriptionClassName, controlsClassName, carouselClassName, carouselContentClassName, itemClassName, imageClassName, background, spacing, pattern, patternOpacity, patternClassName, optixFlowConfig, }: CarouselIconSidebarProps): React.JSX.Element;
|
|
140
156
|
|
|
141
157
|
export { CarouselIconSidebar, type CarouselIconSidebarItem, type CarouselIconSidebarProps };
|
|
@@ -36,6 +36,14 @@ interface CarouselIconSidebarItem {
|
|
|
36
36
|
className?: string;
|
|
37
37
|
}
|
|
38
38
|
interface CarouselIconSidebarProps {
|
|
39
|
+
/**
|
|
40
|
+
* Section title (displayed above the carousel)
|
|
41
|
+
*/
|
|
42
|
+
title?: React.ReactNode;
|
|
43
|
+
/**
|
|
44
|
+
* Section description (displayed above the carousel)
|
|
45
|
+
*/
|
|
46
|
+
description?: React.ReactNode;
|
|
39
47
|
/**
|
|
40
48
|
* Array of items to display
|
|
41
49
|
*/
|
|
@@ -52,6 +60,14 @@ interface CarouselIconSidebarProps {
|
|
|
52
60
|
* Additional CSS classes for the section
|
|
53
61
|
*/
|
|
54
62
|
className?: string;
|
|
63
|
+
/**
|
|
64
|
+
* Additional CSS classes for the section title
|
|
65
|
+
*/
|
|
66
|
+
sectionTitleClassName?: string;
|
|
67
|
+
/**
|
|
68
|
+
* Additional CSS classes for the section description
|
|
69
|
+
*/
|
|
70
|
+
sectionDescriptionClassName?: string;
|
|
55
71
|
/**
|
|
56
72
|
* Additional CSS classes for the sidebar panel
|
|
57
73
|
*/
|
|
@@ -61,11 +77,11 @@ interface CarouselIconSidebarProps {
|
|
|
61
77
|
*/
|
|
62
78
|
iconClassName?: string;
|
|
63
79
|
/**
|
|
64
|
-
* Additional CSS classes for the title
|
|
80
|
+
* Additional CSS classes for the sidebar item title
|
|
65
81
|
*/
|
|
66
82
|
titleClassName?: string;
|
|
67
83
|
/**
|
|
68
|
-
* Additional CSS classes for the description
|
|
84
|
+
* Additional CSS classes for the sidebar item description
|
|
69
85
|
*/
|
|
70
86
|
descriptionClassName?: string;
|
|
71
87
|
/**
|
|
@@ -136,6 +152,6 @@ interface CarouselIconSidebarProps {
|
|
|
136
152
|
* />
|
|
137
153
|
* ```
|
|
138
154
|
*/
|
|
139
|
-
declare function CarouselIconSidebar({ items, itemsSlot, sidebarSlot, className, sidebarClassName, iconClassName, titleClassName, descriptionClassName, controlsClassName, carouselClassName, carouselContentClassName, itemClassName, imageClassName, background, spacing, pattern, patternOpacity, patternClassName, optixFlowConfig, }: CarouselIconSidebarProps): React.JSX.Element;
|
|
155
|
+
declare function CarouselIconSidebar({ title, description, items, itemsSlot, sidebarSlot, className, sectionTitleClassName, sectionDescriptionClassName, sidebarClassName, iconClassName, titleClassName, descriptionClassName, controlsClassName, carouselClassName, carouselContentClassName, itemClassName, imageClassName, background, spacing, pattern, patternOpacity, patternClassName, optixFlowConfig, }: CarouselIconSidebarProps): React.JSX.Element;
|
|
140
156
|
|
|
141
157
|
export { CarouselIconSidebar, type CarouselIconSidebarItem, type CarouselIconSidebarProps };
|
|
@@ -1129,10 +1129,14 @@ var Section = React4__default.forwardRef(
|
|
|
1129
1129
|
);
|
|
1130
1130
|
Section.displayName = "Section";
|
|
1131
1131
|
function CarouselIconSidebar({
|
|
1132
|
+
title,
|
|
1133
|
+
description,
|
|
1132
1134
|
items,
|
|
1133
1135
|
itemsSlot,
|
|
1134
1136
|
sidebarSlot,
|
|
1135
1137
|
className,
|
|
1138
|
+
sectionTitleClassName,
|
|
1139
|
+
sectionDescriptionClassName,
|
|
1136
1140
|
sidebarClassName,
|
|
1137
1141
|
iconClassName,
|
|
1138
1142
|
titleClassName,
|
|
@@ -1250,13 +1254,13 @@ function CarouselIconSidebar({
|
|
|
1250
1254
|
const itemsContent = useMemo(() => {
|
|
1251
1255
|
if (itemsSlot) return itemsSlot;
|
|
1252
1256
|
if (!items || items.length === 0) return null;
|
|
1253
|
-
return items.map((image, index) => /* @__PURE__ */ jsx(CarouselItem, { className: cn("h-full", itemClassName), children: /* @__PURE__ */ jsx("div", { className: cn("
|
|
1257
|
+
return items.map((image, index) => /* @__PURE__ */ jsx(CarouselItem, { className: cn("h-full", itemClassName), children: /* @__PURE__ */ jsx("div", { className: cn("h-full w-full", image.className), children: /* @__PURE__ */ jsx(
|
|
1254
1258
|
Img,
|
|
1255
1259
|
{
|
|
1256
1260
|
src: image.src,
|
|
1257
1261
|
alt: typeof image.title === "string" ? image.title : image.alt || "Carousel image",
|
|
1258
1262
|
className: cn(
|
|
1259
|
-
"h-full w-full rounded-lg object-cover cursor-pointer
|
|
1263
|
+
"h-full w-full rounded-lg object-cover cursor-pointer",
|
|
1260
1264
|
imageClassName
|
|
1261
1265
|
),
|
|
1262
1266
|
loading: "lazy",
|
|
@@ -1272,7 +1276,14 @@ function CarouselIconSidebar({
|
|
|
1272
1276
|
}
|
|
1273
1277
|
}
|
|
1274
1278
|
) }) }, index));
|
|
1275
|
-
}, [
|
|
1279
|
+
}, [
|
|
1280
|
+
itemsSlot,
|
|
1281
|
+
items,
|
|
1282
|
+
itemClassName,
|
|
1283
|
+
imageClassName,
|
|
1284
|
+
optixFlowConfig,
|
|
1285
|
+
handleImageClick
|
|
1286
|
+
]);
|
|
1276
1287
|
return /* @__PURE__ */ jsxs(
|
|
1277
1288
|
Section,
|
|
1278
1289
|
{
|
|
@@ -1283,6 +1294,25 @@ function CarouselIconSidebar({
|
|
|
1283
1294
|
patternClassName,
|
|
1284
1295
|
className,
|
|
1285
1296
|
children: [
|
|
1297
|
+
title || description ? /* @__PURE__ */ jsxs("div", { className: "flex flex-col gap-4 mb-16", children: [
|
|
1298
|
+
title && (typeof title === "string" ? /* @__PURE__ */ jsx(
|
|
1299
|
+
"h2",
|
|
1300
|
+
{
|
|
1301
|
+
className: cn(
|
|
1302
|
+
"text-xl font-medium tracking-tight md:text-2xl lg:text-3xl text-balance",
|
|
1303
|
+
sectionTitleClassName
|
|
1304
|
+
),
|
|
1305
|
+
children: title
|
|
1306
|
+
}
|
|
1307
|
+
) : /* @__PURE__ */ jsx("div", { className: sectionTitleClassName, children: title })),
|
|
1308
|
+
description && (typeof description === "string" ? /* @__PURE__ */ jsx("p", { className: cn("max-w-lg text-balance", sectionDescriptionClassName), children: description }) : /* @__PURE__ */ jsx(
|
|
1309
|
+
"div",
|
|
1310
|
+
{
|
|
1311
|
+
className: cn("max-w-lg text-balance", sectionDescriptionClassName),
|
|
1312
|
+
children: description
|
|
1313
|
+
}
|
|
1314
|
+
))
|
|
1315
|
+
] }) : null,
|
|
1286
1316
|
/* @__PURE__ */ jsx(Carousel, { setApi, className: cn("w-full", carouselClassName), children: /* @__PURE__ */ jsxs("div", { className: "grid grid-cols-1 gap-6 md:grid-cols-5", children: [
|
|
1287
1317
|
/* @__PURE__ */ jsx("div", { className: "md:col-span-2", children: sidebarContent }),
|
|
1288
1318
|
/* @__PURE__ */ jsx("div", { className: "h-full md:col-span-3", children: /* @__PURE__ */ jsx(CarouselContent, { className: carouselContentClassName, children: itemsContent }) })
|
|
@@ -1222,11 +1222,11 @@ function CarouselIconTabs({
|
|
|
1222
1222
|
"div",
|
|
1223
1223
|
{
|
|
1224
1224
|
className: cn(
|
|
1225
|
-
"mb-20 flex flex-col items-center justify-center gap-8",
|
|
1225
|
+
"mb-8 md:mb-20 flex flex-col items-center justify-center gap-8",
|
|
1226
1226
|
headerClassName
|
|
1227
1227
|
),
|
|
1228
1228
|
children: [
|
|
1229
|
-
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("
|
|
1229
|
+
heading && (typeof heading === "string" ? /* @__PURE__ */ jsxRuntime.jsx("h2", { className: cn("text-4xl", headingClassName), children: heading }) : /* @__PURE__ */ jsxRuntime.jsx("div", { className: cn("text-4xl", headingClassName), children: heading })),
|
|
1230
1230
|
badge && /* @__PURE__ */ jsxRuntime.jsx(
|
|
1231
1231
|
Badge,
|
|
1232
1232
|
{
|
|
@@ -1238,7 +1238,14 @@ function CarouselIconTabs({
|
|
|
1238
1238
|
]
|
|
1239
1239
|
}
|
|
1240
1240
|
);
|
|
1241
|
-
}, [
|
|
1241
|
+
}, [
|
|
1242
|
+
headerSlot,
|
|
1243
|
+
headerClassName,
|
|
1244
|
+
heading,
|
|
1245
|
+
headingClassName,
|
|
1246
|
+
badge,
|
|
1247
|
+
badgeClassName
|
|
1248
|
+
]);
|
|
1242
1249
|
const sectionsContent = React4.useMemo(() => {
|
|
1243
1250
|
if (sectionsSlot) return sectionsSlot;
|
|
1244
1251
|
if (!sections || sections.length === 0) return null;
|
|
@@ -1253,7 +1260,7 @@ function CarouselIconTabs({
|
|
|
1253
1260
|
src: item.img,
|
|
1254
1261
|
alt: typeof item.title === "string" ? item.title : item.alt || "Tab image",
|
|
1255
1262
|
className: cn(
|
|
1256
|
-
"aspect-square h-full w-full object-cover md:aspect-2/1 cursor-pointer
|
|
1263
|
+
"aspect-square h-full w-full object-cover md:aspect-2/1 cursor-pointer rounded-xl shadow-xl",
|
|
1257
1264
|
imageClassName
|
|
1258
1265
|
),
|
|
1259
1266
|
loading: "lazy",
|
|
@@ -1278,7 +1285,14 @@ function CarouselIconTabs({
|
|
|
1278
1285
|
},
|
|
1279
1286
|
index
|
|
1280
1287
|
));
|
|
1281
|
-
}, [
|
|
1288
|
+
}, [
|
|
1289
|
+
sectionsSlot,
|
|
1290
|
+
sections,
|
|
1291
|
+
itemClassName,
|
|
1292
|
+
imageClassName,
|
|
1293
|
+
optixFlowConfig,
|
|
1294
|
+
handleImageClick
|
|
1295
|
+
]);
|
|
1282
1296
|
const tabsContent = React4.useMemo(() => {
|
|
1283
1297
|
if (!sections || sections.length === 0) return null;
|
|
1284
1298
|
return /* @__PURE__ */ jsxRuntime.jsx(
|
|
@@ -1198,11 +1198,11 @@ function CarouselIconTabs({
|
|
|
1198
1198
|
"div",
|
|
1199
1199
|
{
|
|
1200
1200
|
className: cn(
|
|
1201
|
-
"mb-20 flex flex-col items-center justify-center gap-8",
|
|
1201
|
+
"mb-8 md:mb-20 flex flex-col items-center justify-center gap-8",
|
|
1202
1202
|
headerClassName
|
|
1203
1203
|
),
|
|
1204
1204
|
children: [
|
|
1205
|
-
heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("
|
|
1205
|
+
heading && (typeof heading === "string" ? /* @__PURE__ */ jsx("h2", { className: cn("text-4xl", headingClassName), children: heading }) : /* @__PURE__ */ jsx("div", { className: cn("text-4xl", headingClassName), children: heading })),
|
|
1206
1206
|
badge && /* @__PURE__ */ jsx(
|
|
1207
1207
|
Badge,
|
|
1208
1208
|
{
|
|
@@ -1214,7 +1214,14 @@ function CarouselIconTabs({
|
|
|
1214
1214
|
]
|
|
1215
1215
|
}
|
|
1216
1216
|
);
|
|
1217
|
-
}, [
|
|
1217
|
+
}, [
|
|
1218
|
+
headerSlot,
|
|
1219
|
+
headerClassName,
|
|
1220
|
+
heading,
|
|
1221
|
+
headingClassName,
|
|
1222
|
+
badge,
|
|
1223
|
+
badgeClassName
|
|
1224
|
+
]);
|
|
1218
1225
|
const sectionsContent = useMemo(() => {
|
|
1219
1226
|
if (sectionsSlot) return sectionsSlot;
|
|
1220
1227
|
if (!sections || sections.length === 0) return null;
|
|
@@ -1229,7 +1236,7 @@ function CarouselIconTabs({
|
|
|
1229
1236
|
src: item.img,
|
|
1230
1237
|
alt: typeof item.title === "string" ? item.title : item.alt || "Tab image",
|
|
1231
1238
|
className: cn(
|
|
1232
|
-
"aspect-square h-full w-full object-cover md:aspect-2/1 cursor-pointer
|
|
1239
|
+
"aspect-square h-full w-full object-cover md:aspect-2/1 cursor-pointer rounded-xl shadow-xl",
|
|
1233
1240
|
imageClassName
|
|
1234
1241
|
),
|
|
1235
1242
|
loading: "lazy",
|
|
@@ -1254,7 +1261,14 @@ function CarouselIconTabs({
|
|
|
1254
1261
|
},
|
|
1255
1262
|
index
|
|
1256
1263
|
));
|
|
1257
|
-
}, [
|
|
1264
|
+
}, [
|
|
1265
|
+
sectionsSlot,
|
|
1266
|
+
sections,
|
|
1267
|
+
itemClassName,
|
|
1268
|
+
imageClassName,
|
|
1269
|
+
optixFlowConfig,
|
|
1270
|
+
handleImageClick
|
|
1271
|
+
]);
|
|
1258
1272
|
const tabsContent = useMemo(() => {
|
|
1259
1273
|
if (!sections || sections.length === 0) return null;
|
|
1260
1274
|
return /* @__PURE__ */ jsx(
|