@landtrustinc/design-system 1.2.21 → 1.2.25
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/helpers.ts +34 -0
- package/dist/index.d.ts +148 -20
- package/dist/index.js +966 -246
- package/dist/index.js.map +1 -1
- package/dist/index.ts +1 -0
- package/package.json +4 -2
package/dist/index.js
CHANGED
|
@@ -65,6 +65,8 @@ __export(src_exports, {
|
|
|
65
65
|
ReviewCard: () => ReviewCard_default,
|
|
66
66
|
Reviews: () => Reviews_default,
|
|
67
67
|
ReviewsShowcase: () => ReviewsShowcase_default,
|
|
68
|
+
ScrollingCarousel: () => ScrollingCarousel,
|
|
69
|
+
ScrollingCarouselStep: () => ScrollingCarouselStep,
|
|
68
70
|
Select: () => Select,
|
|
69
71
|
Spinner: () => Spinner_default2,
|
|
70
72
|
StarRating: () => StarRating_default,
|
|
@@ -3716,12 +3718,12 @@ var Button = import_react6.default.forwardRef(
|
|
|
3716
3718
|
isLoading = false,
|
|
3717
3719
|
className = "",
|
|
3718
3720
|
labelStyleOverrides = import_react5.css``,
|
|
3719
|
-
icon,
|
|
3721
|
+
icon: icon2,
|
|
3720
3722
|
...props
|
|
3721
3723
|
}, ref) => {
|
|
3722
3724
|
const componentType = Component === "button" ? type : void 0;
|
|
3723
3725
|
const sizeKey = `size${(0, import_lodash.upperFirst)(size)}`;
|
|
3724
|
-
const isIconOnly =
|
|
3726
|
+
const isIconOnly = icon2 && !children;
|
|
3725
3727
|
return /* @__PURE__ */ (0, import_jsx_runtime208.jsxs)(
|
|
3726
3728
|
Component,
|
|
3727
3729
|
{
|
|
@@ -3736,7 +3738,7 @@ var Button = import_react6.default.forwardRef(
|
|
|
3736
3738
|
isIconOnly && size === "lg" && styles.iconOnlyLg,
|
|
3737
3739
|
isIconOnly && size !== "lg" && styles.iconOnly,
|
|
3738
3740
|
(isLoading || disabled) && styles.disabled,
|
|
3739
|
-
|
|
3741
|
+
icon2 && children && styles.withIcon
|
|
3740
3742
|
],
|
|
3741
3743
|
...props,
|
|
3742
3744
|
onClick: (e) => {
|
|
@@ -3748,7 +3750,7 @@ var Button = import_react6.default.forwardRef(
|
|
|
3748
3750
|
(_a = props.onClick) == null ? void 0 : _a.call(props, e);
|
|
3749
3751
|
},
|
|
3750
3752
|
children: [
|
|
3751
|
-
|
|
3753
|
+
icon2,
|
|
3752
3754
|
children && /* @__PURE__ */ (0, import_jsx_runtime208.jsx)("span", { css: [labelStyles(!isLoading), labelStyleOverrides], children }),
|
|
3753
3755
|
isLoading && /* @__PURE__ */ (0, import_jsx_runtime208.jsx)(Spinner_default2, { css: spinnerStyles2(variant) })
|
|
3754
3756
|
]
|
|
@@ -5028,12 +5030,10 @@ var avatarSizeStyles = {
|
|
|
5028
5030
|
var avatarBaseStyles = import_react16.css`
|
|
5029
5031
|
border-radius: 50%;
|
|
5030
5032
|
object-fit: cover;
|
|
5031
|
-
border: 1px solid var(--color-neutral-200);
|
|
5032
5033
|
display: block;
|
|
5033
5034
|
`;
|
|
5034
5035
|
var avatarTextStyles = import_react16.css`
|
|
5035
5036
|
border-radius: 50%;
|
|
5036
|
-
border: 1px solid var(--color-neutral-200);
|
|
5037
5037
|
background-color: var(--surface-action);
|
|
5038
5038
|
color: white;
|
|
5039
5039
|
display: flex;
|
|
@@ -5044,7 +5044,6 @@ var avatarTextStyles = import_react16.css`
|
|
|
5044
5044
|
`;
|
|
5045
5045
|
var avatarFallbackStyles = import_react16.css`
|
|
5046
5046
|
border-radius: 50%;
|
|
5047
|
-
border: 1px solid var(--color-neutral-200);
|
|
5048
5047
|
background-color: var(--color-neutral-100);
|
|
5049
5048
|
color: var(--color-neutral-500);
|
|
5050
5049
|
display: flex;
|
|
@@ -5542,8 +5541,8 @@ var useWidgetContext = () => {
|
|
|
5542
5541
|
return ctx;
|
|
5543
5542
|
};
|
|
5544
5543
|
var WidgetTrigger = () => {
|
|
5545
|
-
const { expanded, toggle, triggerRef, icon, expandedIcon } = useWidgetContext();
|
|
5546
|
-
const currentIcon = expanded ? expandedIcon :
|
|
5544
|
+
const { expanded, toggle, triggerRef, icon: icon2, expandedIcon } = useWidgetContext();
|
|
5545
|
+
const currentIcon = expanded ? expandedIcon : icon2;
|
|
5547
5546
|
return /* @__PURE__ */ (0, import_jsx_runtime223.jsx)(import_jsx_runtime223.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime223.jsx)(
|
|
5548
5547
|
Button_default,
|
|
5549
5548
|
{
|
|
@@ -5574,7 +5573,7 @@ var WidgetPanel = ({ className, style, children }) => {
|
|
|
5574
5573
|
};
|
|
5575
5574
|
var WidgetRoot = ({
|
|
5576
5575
|
ariaLabel,
|
|
5577
|
-
icon = "Plus",
|
|
5576
|
+
icon: icon2 = "Plus",
|
|
5578
5577
|
expandedIcon = "Xmark",
|
|
5579
5578
|
defaultExpanded = false,
|
|
5580
5579
|
expanded,
|
|
@@ -5637,11 +5636,11 @@ var WidgetRoot = ({
|
|
|
5637
5636
|
expanded: isExpanded,
|
|
5638
5637
|
toggle,
|
|
5639
5638
|
triggerRef,
|
|
5640
|
-
icon,
|
|
5639
|
+
icon: icon2,
|
|
5641
5640
|
expandedIcon,
|
|
5642
5641
|
panelWidth: panelWidth != null ? panelWidth : 480
|
|
5643
5642
|
}),
|
|
5644
|
-
[expandedIcon,
|
|
5643
|
+
[expandedIcon, icon2, isExpanded, panelWidth, toggle]
|
|
5645
5644
|
);
|
|
5646
5645
|
return /* @__PURE__ */ (0, import_jsx_runtime223.jsx)(
|
|
5647
5646
|
Box_default,
|
|
@@ -6084,6 +6083,7 @@ var ChatWidget = ({
|
|
|
6084
6083
|
var ChatWidget_default = ChatWidget;
|
|
6085
6084
|
|
|
6086
6085
|
// src/FeatureList/components/FeatureListItem.tsx
|
|
6086
|
+
var import_react31 = require("@emotion/react");
|
|
6087
6087
|
var import_react_loading_skeleton = __toESM(require("react-loading-skeleton"));
|
|
6088
6088
|
var import_jsx_runtime226 = require("@emotion/react/jsx-runtime");
|
|
6089
6089
|
var FeatureListItem = ({
|
|
@@ -6146,7 +6146,17 @@ var FeatureListItem = ({
|
|
|
6146
6146
|
className,
|
|
6147
6147
|
...rest,
|
|
6148
6148
|
children: [
|
|
6149
|
-
iconVariant && /* @__PURE__ */ (0, import_jsx_runtime226.jsx)(
|
|
6149
|
+
iconVariant && /* @__PURE__ */ (0, import_jsx_runtime226.jsx)(
|
|
6150
|
+
Icon_default,
|
|
6151
|
+
{
|
|
6152
|
+
variant: iconVariant,
|
|
6153
|
+
size: iconSize,
|
|
6154
|
+
fill: iconColor,
|
|
6155
|
+
css: import_react31.css`
|
|
6156
|
+
flex-shrink: 0;
|
|
6157
|
+
`
|
|
6158
|
+
}
|
|
6159
|
+
),
|
|
6150
6160
|
/* @__PURE__ */ (0, import_jsx_runtime226.jsx)(Text_default, { fontWeight: "semibold", size: labelSize, children: label })
|
|
6151
6161
|
]
|
|
6152
6162
|
}
|
|
@@ -6179,8 +6189,8 @@ var FeatureList = ({ heading, items, className }) => {
|
|
|
6179
6189
|
var FeatureList_default = FeatureList;
|
|
6180
6190
|
|
|
6181
6191
|
// src/FieldNoteCard/FieldNoteCard.styles.ts
|
|
6182
|
-
var
|
|
6183
|
-
var cardContainerStyles =
|
|
6192
|
+
var import_react32 = require("@emotion/react");
|
|
6193
|
+
var cardContainerStyles = import_react32.css`
|
|
6184
6194
|
position: relative;
|
|
6185
6195
|
height: 335px;
|
|
6186
6196
|
|
|
@@ -6188,12 +6198,12 @@ var cardContainerStyles = import_react31.css`
|
|
|
6188
6198
|
height: 480px;
|
|
6189
6199
|
}
|
|
6190
6200
|
`;
|
|
6191
|
-
var cardContentStyles =
|
|
6201
|
+
var cardContentStyles = import_react32.css`
|
|
6192
6202
|
position: relative;
|
|
6193
6203
|
border-radius: var(--spacing-4);
|
|
6194
6204
|
overflow: hidden;
|
|
6195
6205
|
`;
|
|
6196
|
-
var getBackgroundWithGradient = (imageUrl) =>
|
|
6206
|
+
var getBackgroundWithGradient = (imageUrl) => import_react32.css`
|
|
6197
6207
|
background-image: linear-gradient(
|
|
6198
6208
|
180deg,
|
|
6199
6209
|
rgba(0, 0, 0, 0) 48.36%,
|
|
@@ -6243,14 +6253,14 @@ var FieldNoteCard = ({
|
|
|
6243
6253
|
var FieldNoteCard_default = FieldNoteCard;
|
|
6244
6254
|
|
|
6245
6255
|
// src/Form/FormField.tsx
|
|
6246
|
-
var
|
|
6256
|
+
var import_react33 = require("@emotion/react");
|
|
6247
6257
|
var import_jsx_runtime229 = require("@emotion/react/jsx-runtime");
|
|
6248
|
-
var fieldContainerStyles =
|
|
6258
|
+
var fieldContainerStyles = import_react33.css`
|
|
6249
6259
|
display: flex;
|
|
6250
6260
|
flex-direction: column;
|
|
6251
6261
|
gap: ${space["2"]};
|
|
6252
6262
|
`;
|
|
6253
|
-
var labelStyles2 =
|
|
6263
|
+
var labelStyles2 = import_react33.css`
|
|
6254
6264
|
font-family: ${fonts.base};
|
|
6255
6265
|
font-size: ${fontSizes.sm};
|
|
6256
6266
|
font-weight: ${fontWeights.medium};
|
|
@@ -6258,17 +6268,17 @@ var labelStyles2 = import_react32.css`
|
|
|
6258
6268
|
color: ${colors.gray["900"]};
|
|
6259
6269
|
margin-bottom: ${space["1"]};
|
|
6260
6270
|
`;
|
|
6261
|
-
var requiredIndicatorStyles =
|
|
6271
|
+
var requiredIndicatorStyles = import_react33.css`
|
|
6262
6272
|
color: ${colors.red["500"]};
|
|
6263
6273
|
margin-left: ${space["1"]};
|
|
6264
6274
|
`;
|
|
6265
|
-
var helpTextStyles =
|
|
6275
|
+
var helpTextStyles = import_react33.css`
|
|
6266
6276
|
font-family: ${fonts.base};
|
|
6267
6277
|
font-size: ${fontSizes.sm};
|
|
6268
6278
|
line-height: ${lineHeights.tight};
|
|
6269
6279
|
color: ${colors.gray["600"]};
|
|
6270
6280
|
`;
|
|
6271
|
-
var errorTextStyles =
|
|
6281
|
+
var errorTextStyles = import_react33.css`
|
|
6272
6282
|
font-family: ${fonts.base};
|
|
6273
6283
|
font-size: ${fontSizes.sm};
|
|
6274
6284
|
line-height: ${lineHeights.tight};
|
|
@@ -6277,7 +6287,7 @@ var errorTextStyles = import_react32.css`
|
|
|
6277
6287
|
align-items: center;
|
|
6278
6288
|
gap: ${space["1"]};
|
|
6279
6289
|
`;
|
|
6280
|
-
var successTextStyles =
|
|
6290
|
+
var successTextStyles = import_react33.css`
|
|
6281
6291
|
font-family: ${fonts.base};
|
|
6282
6292
|
font-size: ${fontSizes.sm};
|
|
6283
6293
|
line-height: ${lineHeights.tight};
|
|
@@ -6286,7 +6296,7 @@ var successTextStyles = import_react32.css`
|
|
|
6286
6296
|
align-items: center;
|
|
6287
6297
|
gap: ${space["1"]};
|
|
6288
6298
|
`;
|
|
6289
|
-
var visuallyHiddenStyles =
|
|
6299
|
+
var visuallyHiddenStyles = import_react33.css`
|
|
6290
6300
|
position: absolute;
|
|
6291
6301
|
width: 1px;
|
|
6292
6302
|
height: 1px;
|
|
@@ -6351,10 +6361,10 @@ var FormField = ({
|
|
|
6351
6361
|
};
|
|
6352
6362
|
|
|
6353
6363
|
// src/Form/Input.tsx
|
|
6354
|
-
var
|
|
6355
|
-
var
|
|
6364
|
+
var import_react34 = require("@emotion/react");
|
|
6365
|
+
var import_react35 = require("react");
|
|
6356
6366
|
var import_jsx_runtime230 = require("@emotion/react/jsx-runtime");
|
|
6357
|
-
var inputStyles =
|
|
6367
|
+
var inputStyles = import_react34.css`
|
|
6358
6368
|
position: relative;
|
|
6359
6369
|
width: 100%;
|
|
6360
6370
|
font-family: ${fonts.base};
|
|
@@ -6391,19 +6401,19 @@ var inputStyles = import_react33.css`
|
|
|
6391
6401
|
}
|
|
6392
6402
|
`;
|
|
6393
6403
|
var sizeStyles = {
|
|
6394
|
-
sm:
|
|
6404
|
+
sm: import_react34.css`
|
|
6395
6405
|
padding: ${space["2"]} ${space["3"]};
|
|
6396
6406
|
font-size: ${fontSizes.sm};
|
|
6397
6407
|
line-height: ${lineHeights.tight};
|
|
6398
6408
|
height: ${space["8"]};
|
|
6399
6409
|
`,
|
|
6400
|
-
md:
|
|
6410
|
+
md: import_react34.css`
|
|
6401
6411
|
padding: ${space["3"]} ${space["4"]};
|
|
6402
6412
|
font-size: ${fontSizes.base};
|
|
6403
6413
|
line-height: ${lineHeights.normal};
|
|
6404
6414
|
height: ${space["10"]};
|
|
6405
6415
|
`,
|
|
6406
|
-
lg:
|
|
6416
|
+
lg: import_react34.css`
|
|
6407
6417
|
padding: ${space["4"]} ${space["5"]};
|
|
6408
6418
|
font-size: ${fontSizes.lg};
|
|
6409
6419
|
line-height: ${lineHeights.normal};
|
|
@@ -6411,8 +6421,8 @@ var sizeStyles = {
|
|
|
6411
6421
|
`
|
|
6412
6422
|
};
|
|
6413
6423
|
var variantStyles = {
|
|
6414
|
-
default:
|
|
6415
|
-
error:
|
|
6424
|
+
default: import_react34.css``,
|
|
6425
|
+
error: import_react34.css`
|
|
6416
6426
|
border-color: ${colors.red["500"]};
|
|
6417
6427
|
|
|
6418
6428
|
&:focus {
|
|
@@ -6420,7 +6430,7 @@ var variantStyles = {
|
|
|
6420
6430
|
box-shadow: 0 0 0 3px ${colors.red["100"]};
|
|
6421
6431
|
}
|
|
6422
6432
|
`,
|
|
6423
|
-
success:
|
|
6433
|
+
success: import_react34.css`
|
|
6424
6434
|
border-color: ${colors.accent.green};
|
|
6425
6435
|
|
|
6426
6436
|
&:focus {
|
|
@@ -6429,7 +6439,7 @@ var variantStyles = {
|
|
|
6429
6439
|
}
|
|
6430
6440
|
`
|
|
6431
6441
|
};
|
|
6432
|
-
var inputWithIconStyles =
|
|
6442
|
+
var inputWithIconStyles = import_react34.css`
|
|
6433
6443
|
padding-left: ${space["10"]};
|
|
6434
6444
|
|
|
6435
6445
|
&.has-end-icon {
|
|
@@ -6440,7 +6450,7 @@ var inputWithIconStyles = import_react33.css`
|
|
|
6440
6450
|
padding-left: ${space["10"]};
|
|
6441
6451
|
}
|
|
6442
6452
|
`;
|
|
6443
|
-
var iconContainerStyles =
|
|
6453
|
+
var iconContainerStyles = import_react34.css`
|
|
6444
6454
|
position: absolute;
|
|
6445
6455
|
top: 50%;
|
|
6446
6456
|
transform: translateY(-50%);
|
|
@@ -6451,20 +6461,20 @@ var iconContainerStyles = import_react33.css`
|
|
|
6451
6461
|
pointer-events: none;
|
|
6452
6462
|
z-index: 1;
|
|
6453
6463
|
`;
|
|
6454
|
-
var startIconStyles =
|
|
6464
|
+
var startIconStyles = import_react34.css`
|
|
6455
6465
|
${iconContainerStyles}
|
|
6456
6466
|
left: ${space["3"]};
|
|
6457
6467
|
`;
|
|
6458
|
-
var endIconStyles =
|
|
6468
|
+
var endIconStyles = import_react34.css`
|
|
6459
6469
|
${iconContainerStyles}
|
|
6460
6470
|
right: ${space["3"]};
|
|
6461
6471
|
`;
|
|
6462
|
-
var inputWrapperStyles =
|
|
6472
|
+
var inputWrapperStyles = import_react34.css`
|
|
6463
6473
|
position: relative;
|
|
6464
6474
|
display: inline-block;
|
|
6465
6475
|
width: 100%;
|
|
6466
6476
|
`;
|
|
6467
|
-
var Input = (0,
|
|
6477
|
+
var Input = (0, import_react35.forwardRef)(
|
|
6468
6478
|
({
|
|
6469
6479
|
size = "md",
|
|
6470
6480
|
variant = "default",
|
|
@@ -6509,10 +6519,10 @@ var Input = (0, import_react34.forwardRef)(
|
|
|
6509
6519
|
Input.displayName = "Input";
|
|
6510
6520
|
|
|
6511
6521
|
// src/Form/Select.tsx
|
|
6512
|
-
var
|
|
6513
|
-
var
|
|
6522
|
+
var import_react36 = require("@emotion/react");
|
|
6523
|
+
var import_react37 = require("react");
|
|
6514
6524
|
var import_jsx_runtime231 = require("@emotion/react/jsx-runtime");
|
|
6515
|
-
var selectStyles =
|
|
6525
|
+
var selectStyles = import_react36.css`
|
|
6516
6526
|
position: relative;
|
|
6517
6527
|
width: 100%;
|
|
6518
6528
|
font-family: ${fonts.base};
|
|
@@ -6551,19 +6561,19 @@ var selectStyles = import_react35.css`
|
|
|
6551
6561
|
}
|
|
6552
6562
|
`;
|
|
6553
6563
|
var sizeStyles2 = {
|
|
6554
|
-
sm:
|
|
6564
|
+
sm: import_react36.css`
|
|
6555
6565
|
padding: ${space["2"]} ${space["3"]};
|
|
6556
6566
|
font-size: ${fontSizes.sm};
|
|
6557
6567
|
line-height: ${lineHeights.tight};
|
|
6558
6568
|
height: ${space["8"]};
|
|
6559
6569
|
`,
|
|
6560
|
-
md:
|
|
6570
|
+
md: import_react36.css`
|
|
6561
6571
|
padding: ${space["3"]} ${space["4"]};
|
|
6562
6572
|
font-size: ${fontSizes.base};
|
|
6563
6573
|
line-height: ${lineHeights.normal};
|
|
6564
6574
|
height: ${space["10"]};
|
|
6565
6575
|
`,
|
|
6566
|
-
lg:
|
|
6576
|
+
lg: import_react36.css`
|
|
6567
6577
|
padding: ${space["4"]} ${space["5"]};
|
|
6568
6578
|
font-size: ${fontSizes.lg};
|
|
6569
6579
|
line-height: ${lineHeights.normal};
|
|
@@ -6571,8 +6581,8 @@ var sizeStyles2 = {
|
|
|
6571
6581
|
`
|
|
6572
6582
|
};
|
|
6573
6583
|
var variantStyles2 = {
|
|
6574
|
-
default:
|
|
6575
|
-
error:
|
|
6584
|
+
default: import_react36.css``,
|
|
6585
|
+
error: import_react36.css`
|
|
6576
6586
|
border-color: ${colors.red["500"]};
|
|
6577
6587
|
|
|
6578
6588
|
&:focus {
|
|
@@ -6580,7 +6590,7 @@ var variantStyles2 = {
|
|
|
6580
6590
|
box-shadow: 0 0 0 3px ${colors.red["100"]};
|
|
6581
6591
|
}
|
|
6582
6592
|
`,
|
|
6583
|
-
success:
|
|
6593
|
+
success: import_react36.css`
|
|
6584
6594
|
border-color: ${colors.accent.green};
|
|
6585
6595
|
|
|
6586
6596
|
&:focus {
|
|
@@ -6589,7 +6599,7 @@ var variantStyles2 = {
|
|
|
6589
6599
|
}
|
|
6590
6600
|
`
|
|
6591
6601
|
};
|
|
6592
|
-
var optionStyles =
|
|
6602
|
+
var optionStyles = import_react36.css`
|
|
6593
6603
|
background-color: ${colors.light["100"]};
|
|
6594
6604
|
color: ${colors.gray["900"]};
|
|
6595
6605
|
|
|
@@ -6598,7 +6608,7 @@ var optionStyles = import_react35.css`
|
|
|
6598
6608
|
background-color: ${colors.gray["100"]};
|
|
6599
6609
|
}
|
|
6600
6610
|
`;
|
|
6601
|
-
var Select = (0,
|
|
6611
|
+
var Select = (0, import_react37.forwardRef)(
|
|
6602
6612
|
({
|
|
6603
6613
|
size = "md",
|
|
6604
6614
|
variant = "default",
|
|
@@ -6636,10 +6646,10 @@ var Select = (0, import_react36.forwardRef)(
|
|
|
6636
6646
|
Select.displayName = "Select";
|
|
6637
6647
|
|
|
6638
6648
|
// src/Grid/Column.tsx
|
|
6639
|
-
var
|
|
6649
|
+
var import_react39 = require("@emotion/react");
|
|
6640
6650
|
|
|
6641
6651
|
// src/Grid/utils.ts
|
|
6642
|
-
var
|
|
6652
|
+
var import_react38 = require("@emotion/react");
|
|
6643
6653
|
var LayoutTokens = {
|
|
6644
6654
|
containers: {
|
|
6645
6655
|
sm: screens.sm,
|
|
@@ -6679,11 +6689,11 @@ var getResponsiveValue = (value) => {
|
|
|
6679
6689
|
var generateGridColumns = (columns) => {
|
|
6680
6690
|
const baseColumns = getResponsiveValue(columns);
|
|
6681
6691
|
if (typeof columns === "number") {
|
|
6682
|
-
return
|
|
6692
|
+
return import_react38.css`
|
|
6683
6693
|
grid-template-columns: repeat(${columns}, 1fr);
|
|
6684
6694
|
`;
|
|
6685
6695
|
}
|
|
6686
|
-
return
|
|
6696
|
+
return import_react38.css`
|
|
6687
6697
|
grid-template-columns: repeat(${baseColumns}, 1fr);
|
|
6688
6698
|
|
|
6689
6699
|
${media.sm} {
|
|
@@ -6715,11 +6725,11 @@ var generateGridColumns = (columns) => {
|
|
|
6715
6725
|
var generateGapStyles = (gap2) => {
|
|
6716
6726
|
const baseGap = getResponsiveValue(gap2);
|
|
6717
6727
|
if (typeof gap2 === "string" || typeof gap2 === "number") {
|
|
6718
|
-
return
|
|
6728
|
+
return import_react38.css`
|
|
6719
6729
|
gap: ${space[gap2]};
|
|
6720
6730
|
`;
|
|
6721
6731
|
}
|
|
6722
|
-
return
|
|
6732
|
+
return import_react38.css`
|
|
6723
6733
|
gap: ${space[baseGap]};
|
|
6724
6734
|
|
|
6725
6735
|
${media.sm} {
|
|
@@ -6742,11 +6752,11 @@ var generateGapStyles = (gap2) => {
|
|
|
6742
6752
|
var generateRowGapStyles = (rowGap) => {
|
|
6743
6753
|
const baseRowGap = getResponsiveValue(rowGap);
|
|
6744
6754
|
if (typeof rowGap === "string" || typeof rowGap === "number") {
|
|
6745
|
-
return
|
|
6755
|
+
return import_react38.css`
|
|
6746
6756
|
row-gap: ${space[rowGap]};
|
|
6747
6757
|
`;
|
|
6748
6758
|
}
|
|
6749
|
-
return
|
|
6759
|
+
return import_react38.css`
|
|
6750
6760
|
row-gap: ${space[baseRowGap]};
|
|
6751
6761
|
|
|
6752
6762
|
${media.sm} {
|
|
@@ -6769,11 +6779,11 @@ var generateRowGapStyles = (rowGap) => {
|
|
|
6769
6779
|
var generateColumnGapStyles = (columnGap) => {
|
|
6770
6780
|
const baseColumnGap = getResponsiveValue(columnGap);
|
|
6771
6781
|
if (typeof columnGap === "string" || typeof columnGap === "number") {
|
|
6772
|
-
return
|
|
6782
|
+
return import_react38.css`
|
|
6773
6783
|
column-gap: ${space[columnGap]};
|
|
6774
6784
|
`;
|
|
6775
6785
|
}
|
|
6776
|
-
return
|
|
6786
|
+
return import_react38.css`
|
|
6777
6787
|
column-gap: ${space[baseColumnGap]};
|
|
6778
6788
|
|
|
6779
6789
|
${media.sm} {
|
|
@@ -6796,11 +6806,11 @@ var generateColumnGapStyles = (columnGap) => {
|
|
|
6796
6806
|
var generateColumnSpan = (span) => {
|
|
6797
6807
|
const baseSpan = getResponsiveValue(span);
|
|
6798
6808
|
if (typeof span === "string" || typeof span === "number") {
|
|
6799
|
-
return
|
|
6809
|
+
return import_react38.css`
|
|
6800
6810
|
grid-column: ${span === "auto" ? "auto" : `span ${span}`};
|
|
6801
6811
|
`;
|
|
6802
6812
|
}
|
|
6803
|
-
return
|
|
6813
|
+
return import_react38.css`
|
|
6804
6814
|
grid-column: ${baseSpan === "auto" ? "auto" : `span ${baseSpan}`};
|
|
6805
6815
|
|
|
6806
6816
|
${media.sm} {
|
|
@@ -6823,11 +6833,11 @@ var generateColumnSpan = (span) => {
|
|
|
6823
6833
|
var generateAlignItems = (alignItems) => {
|
|
6824
6834
|
const baseAlign = getResponsiveValue(alignItems);
|
|
6825
6835
|
if (typeof alignItems === "string") {
|
|
6826
|
-
return
|
|
6836
|
+
return import_react38.css`
|
|
6827
6837
|
align-items: ${alignItems};
|
|
6828
6838
|
`;
|
|
6829
6839
|
}
|
|
6830
|
-
return
|
|
6840
|
+
return import_react38.css`
|
|
6831
6841
|
align-items: ${baseAlign};
|
|
6832
6842
|
|
|
6833
6843
|
${media.sm} {
|
|
@@ -6850,11 +6860,11 @@ var generateAlignItems = (alignItems) => {
|
|
|
6850
6860
|
var generateJustifyItems = (justifyItems) => {
|
|
6851
6861
|
const baseJustify = getResponsiveValue(justifyItems);
|
|
6852
6862
|
if (typeof justifyItems === "string") {
|
|
6853
|
-
return
|
|
6863
|
+
return import_react38.css`
|
|
6854
6864
|
justify-items: ${justifyItems};
|
|
6855
6865
|
`;
|
|
6856
6866
|
}
|
|
6857
|
-
return
|
|
6867
|
+
return import_react38.css`
|
|
6858
6868
|
justify-items: ${baseJustify};
|
|
6859
6869
|
|
|
6860
6870
|
${media.sm} {
|
|
@@ -6889,19 +6899,19 @@ var Column = ({
|
|
|
6889
6899
|
}) => {
|
|
6890
6900
|
const columnStyles = [
|
|
6891
6901
|
span && generateColumnSpan(span),
|
|
6892
|
-
start &&
|
|
6902
|
+
start && import_react39.css`
|
|
6893
6903
|
grid-column-start: ${start};
|
|
6894
6904
|
`,
|
|
6895
|
-
end &&
|
|
6905
|
+
end && import_react39.css`
|
|
6896
6906
|
grid-column-end: ${end};
|
|
6897
6907
|
`,
|
|
6898
|
-
row &&
|
|
6908
|
+
row && import_react39.css`
|
|
6899
6909
|
grid-row: ${row};
|
|
6900
6910
|
`,
|
|
6901
|
-
rowSpan &&
|
|
6911
|
+
rowSpan && import_react39.css`
|
|
6902
6912
|
grid-row: span ${rowSpan};
|
|
6903
6913
|
`,
|
|
6904
|
-
area &&
|
|
6914
|
+
area && import_react39.css`
|
|
6905
6915
|
grid-area: ${area};
|
|
6906
6916
|
`
|
|
6907
6917
|
].filter(Boolean);
|
|
@@ -6910,9 +6920,9 @@ var Column = ({
|
|
|
6910
6920
|
var Column_default = Column;
|
|
6911
6921
|
|
|
6912
6922
|
// src/Grid/Grid.tsx
|
|
6913
|
-
var
|
|
6923
|
+
var import_react40 = require("@emotion/react");
|
|
6914
6924
|
var import_jsx_runtime233 = require("@emotion/react/jsx-runtime");
|
|
6915
|
-
var baseGridStyles =
|
|
6925
|
+
var baseGridStyles = import_react40.css`
|
|
6916
6926
|
display: grid;
|
|
6917
6927
|
`;
|
|
6918
6928
|
var Grid = ({
|
|
@@ -6937,16 +6947,16 @@ var Grid = ({
|
|
|
6937
6947
|
columnGap && generateColumnGapStyles(columnGap),
|
|
6938
6948
|
alignItems && generateAlignItems(alignItems),
|
|
6939
6949
|
justifyItems && generateJustifyItems(justifyItems),
|
|
6940
|
-
autoRows &&
|
|
6950
|
+
autoRows && import_react40.css`
|
|
6941
6951
|
grid-auto-rows: ${autoRows};
|
|
6942
6952
|
`,
|
|
6943
|
-
autoColumns &&
|
|
6953
|
+
autoColumns && import_react40.css`
|
|
6944
6954
|
grid-auto-columns: ${autoColumns};
|
|
6945
6955
|
`,
|
|
6946
|
-
templateAreas &&
|
|
6956
|
+
templateAreas && import_react40.css`
|
|
6947
6957
|
grid-template-areas: ${typeof templateAreas === "string" ? templateAreas : templateAreas._};
|
|
6948
6958
|
`,
|
|
6949
|
-
justifyContent &&
|
|
6959
|
+
justifyContent && import_react40.css`
|
|
6950
6960
|
justify-content: ${typeof justifyContent === "string" ? justifyContent : justifyContent._};
|
|
6951
6961
|
`
|
|
6952
6962
|
].filter(Boolean);
|
|
@@ -6955,9 +6965,9 @@ var Grid = ({
|
|
|
6955
6965
|
var Grid_default = Grid;
|
|
6956
6966
|
|
|
6957
6967
|
// src/Grid/GridContainer.tsx
|
|
6958
|
-
var
|
|
6968
|
+
var import_react41 = require("@emotion/react");
|
|
6959
6969
|
var import_jsx_runtime234 = require("@emotion/react/jsx-runtime");
|
|
6960
|
-
var baseContainerStyles =
|
|
6970
|
+
var baseContainerStyles = import_react41.css`
|
|
6961
6971
|
width: 100%;
|
|
6962
6972
|
margin: 0 auto;
|
|
6963
6973
|
padding-left: 1rem;
|
|
@@ -6965,14 +6975,14 @@ var baseContainerStyles = import_react40.css`
|
|
|
6965
6975
|
`;
|
|
6966
6976
|
var generateMaxWidthStyles = (maxWidth) => {
|
|
6967
6977
|
if (maxWidth === "full") {
|
|
6968
|
-
return
|
|
6978
|
+
return import_react41.css`
|
|
6969
6979
|
max-width: 100%;
|
|
6970
6980
|
padding-left: 0;
|
|
6971
6981
|
padding-right: 0;
|
|
6972
6982
|
`;
|
|
6973
6983
|
}
|
|
6974
6984
|
const width2 = LayoutTokens.containers[maxWidth] || maxWidth;
|
|
6975
|
-
return
|
|
6985
|
+
return import_react41.css`
|
|
6976
6986
|
max-width: ${width2};
|
|
6977
6987
|
|
|
6978
6988
|
${media.sm} {
|
|
@@ -7006,8 +7016,8 @@ var GridContainer = ({
|
|
|
7006
7016
|
var GridContainer_default = GridContainer;
|
|
7007
7017
|
|
|
7008
7018
|
// src/HuntCard/HuntCard.styles.ts
|
|
7009
|
-
var
|
|
7010
|
-
var cardContainerStyles2 =
|
|
7019
|
+
var import_react42 = require("@emotion/react");
|
|
7020
|
+
var cardContainerStyles2 = import_react42.css`
|
|
7011
7021
|
position: relative;
|
|
7012
7022
|
height: 335px;
|
|
7013
7023
|
|
|
@@ -7015,12 +7025,12 @@ var cardContainerStyles2 = import_react41.css`
|
|
|
7015
7025
|
height: 480px;
|
|
7016
7026
|
}
|
|
7017
7027
|
`;
|
|
7018
|
-
var cardContentStyles2 =
|
|
7028
|
+
var cardContentStyles2 = import_react42.css`
|
|
7019
7029
|
position: relative;
|
|
7020
7030
|
border-radius: var(--spacing-4);
|
|
7021
7031
|
overflow: hidden;
|
|
7022
7032
|
`;
|
|
7023
|
-
var getBackgroundWithGradient2 = (imageUrl) =>
|
|
7033
|
+
var getBackgroundWithGradient2 = (imageUrl) => import_react42.css`
|
|
7024
7034
|
background-image: linear-gradient(
|
|
7025
7035
|
180deg,
|
|
7026
7036
|
rgba(0, 0, 0, 0) 48.36%,
|
|
@@ -7333,11 +7343,11 @@ var LandownerProfile = ({
|
|
|
7333
7343
|
var LandownerProfile_default = LandownerProfile;
|
|
7334
7344
|
|
|
7335
7345
|
// src/ListingChat/ListingChat.tsx
|
|
7336
|
-
var
|
|
7346
|
+
var import_react44 = require("react");
|
|
7337
7347
|
|
|
7338
7348
|
// src/ListingChat/ListingChat.styles.ts
|
|
7339
|
-
var
|
|
7340
|
-
var containerStyles2 =
|
|
7349
|
+
var import_react43 = require("@emotion/react");
|
|
7350
|
+
var containerStyles2 = import_react43.css`
|
|
7341
7351
|
display: flex;
|
|
7342
7352
|
flex-direction: column;
|
|
7343
7353
|
gap: var(--spacing-4);
|
|
@@ -7345,13 +7355,13 @@ var containerStyles2 = import_react42.css`
|
|
|
7345
7355
|
border-radius: var(--radius-lg);
|
|
7346
7356
|
background: var(--surface-success);
|
|
7347
7357
|
`;
|
|
7348
|
-
var headerStyles =
|
|
7358
|
+
var headerStyles = import_react43.css`
|
|
7349
7359
|
display: flex;
|
|
7350
7360
|
align-items: flex-start;
|
|
7351
7361
|
justify-content: space-between;
|
|
7352
7362
|
gap: var(--spacing-2);
|
|
7353
7363
|
`;
|
|
7354
|
-
var chipsContainerStyles =
|
|
7364
|
+
var chipsContainerStyles = import_react43.css`
|
|
7355
7365
|
display: flex;
|
|
7356
7366
|
flex-wrap: wrap;
|
|
7357
7367
|
gap: var(--spacing-4);
|
|
@@ -7364,10 +7374,10 @@ var chipsContainerStyles = import_react42.css`
|
|
|
7364
7374
|
cursor: pointer;
|
|
7365
7375
|
}
|
|
7366
7376
|
`;
|
|
7367
|
-
var textAreaStyles =
|
|
7377
|
+
var textAreaStyles = import_react43.css`
|
|
7368
7378
|
min-height: 62px;
|
|
7369
7379
|
`;
|
|
7370
|
-
var inputWrapperStyles2 =
|
|
7380
|
+
var inputWrapperStyles2 = import_react43.css`
|
|
7371
7381
|
position: relative;
|
|
7372
7382
|
`;
|
|
7373
7383
|
|
|
@@ -7382,15 +7392,15 @@ var ListingChat = ({
|
|
|
7382
7392
|
disabled = false,
|
|
7383
7393
|
...rest
|
|
7384
7394
|
}) => {
|
|
7385
|
-
const [value, setValue] = (0,
|
|
7386
|
-
const handleSubmit = (0,
|
|
7395
|
+
const [value, setValue] = (0, import_react44.useState)("");
|
|
7396
|
+
const handleSubmit = (0, import_react44.useCallback)(() => {
|
|
7387
7397
|
const trimmed = value.trim();
|
|
7388
7398
|
if (!trimmed)
|
|
7389
7399
|
return;
|
|
7390
7400
|
onSubmit(trimmed);
|
|
7391
7401
|
setValue("");
|
|
7392
7402
|
}, [onSubmit, value]);
|
|
7393
|
-
const handleTagClick = (0,
|
|
7403
|
+
const handleTagClick = (0, import_react44.useCallback)(
|
|
7394
7404
|
(tag) => () => {
|
|
7395
7405
|
const trimmed = tag.trim();
|
|
7396
7406
|
if (!trimmed)
|
|
@@ -7442,7 +7452,7 @@ var ListingChat = ({
|
|
|
7442
7452
|
var ListingChat_default = ListingChat;
|
|
7443
7453
|
|
|
7444
7454
|
// src/Logo/Logo.tsx
|
|
7445
|
-
var
|
|
7455
|
+
var import_react45 = require("@emotion/react");
|
|
7446
7456
|
|
|
7447
7457
|
// src/Logo/components/LandtrustPlusDark.tsx
|
|
7448
7458
|
var import_jsx_runtime242 = require("@emotion/react/jsx-runtime");
|
|
@@ -7664,7 +7674,7 @@ var LandtrustStandardLight_default = SvgLandtrustStandardLight;
|
|
|
7664
7674
|
|
|
7665
7675
|
// src/Logo/Logo.tsx
|
|
7666
7676
|
var import_jsx_runtime246 = require("@emotion/react/jsx-runtime");
|
|
7667
|
-
var logoStyles = (size) =>
|
|
7677
|
+
var logoStyles = (size) => import_react45.css`
|
|
7668
7678
|
width: ${space[size]};
|
|
7669
7679
|
height: auto;
|
|
7670
7680
|
display: block;
|
|
@@ -7697,13 +7707,13 @@ var Logo = ({
|
|
|
7697
7707
|
var Logo_default = Logo;
|
|
7698
7708
|
|
|
7699
7709
|
// src/Navigation/Navigation.styles.ts
|
|
7700
|
-
var
|
|
7701
|
-
var navigationStyles =
|
|
7710
|
+
var import_react46 = require("@emotion/react");
|
|
7711
|
+
var navigationStyles = import_react46.css`
|
|
7702
7712
|
width: 100%;
|
|
7703
7713
|
background-color: white;
|
|
7704
7714
|
border-bottom: 1px solid #e5e5e5;
|
|
7705
7715
|
`;
|
|
7706
|
-
var hamburgerButtonStyles =
|
|
7716
|
+
var hamburgerButtonStyles = import_react46.css`
|
|
7707
7717
|
cursor: pointer;
|
|
7708
7718
|
&:focus {
|
|
7709
7719
|
outline: 2px solid #4f46e5;
|
|
@@ -7714,7 +7724,7 @@ var hamburgerButtonStyles = import_react45.css`
|
|
|
7714
7724
|
display: none;
|
|
7715
7725
|
}
|
|
7716
7726
|
`;
|
|
7717
|
-
var centeredLogoStyles =
|
|
7727
|
+
var centeredLogoStyles = import_react46.css`
|
|
7718
7728
|
transform: translate(-50%, -50%);
|
|
7719
7729
|
max-width: 150px;
|
|
7720
7730
|
|
|
@@ -7722,27 +7732,27 @@ var centeredLogoStyles = import_react45.css`
|
|
|
7722
7732
|
display: none;
|
|
7723
7733
|
}
|
|
7724
7734
|
`;
|
|
7725
|
-
var desktopLogoStyles =
|
|
7735
|
+
var desktopLogoStyles = import_react46.css`
|
|
7726
7736
|
display: none;
|
|
7727
7737
|
|
|
7728
7738
|
@media (min-width: 768px) {
|
|
7729
7739
|
display: block;
|
|
7730
7740
|
}
|
|
7731
7741
|
`;
|
|
7732
|
-
var containerStyles3 =
|
|
7742
|
+
var containerStyles3 = import_react46.css`
|
|
7733
7743
|
@media (min-width: 768px) {
|
|
7734
7744
|
justify-content: space-between;
|
|
7735
7745
|
position: static;
|
|
7736
7746
|
}
|
|
7737
7747
|
`;
|
|
7738
|
-
var logoStyles2 =
|
|
7748
|
+
var logoStyles2 = import_react46.css`
|
|
7739
7749
|
width: 100%;
|
|
7740
7750
|
|
|
7741
7751
|
@media (min-width: 768px) {
|
|
7742
7752
|
width: initial;
|
|
7743
7753
|
}
|
|
7744
7754
|
`;
|
|
7745
|
-
var desktopNavStyles =
|
|
7755
|
+
var desktopNavStyles = import_react46.css`
|
|
7746
7756
|
display: none;
|
|
7747
7757
|
|
|
7748
7758
|
@media (min-width: 768px) {
|
|
@@ -7751,7 +7761,7 @@ var desktopNavStyles = import_react45.css`
|
|
|
7751
7761
|
gap: 32px;
|
|
7752
7762
|
}
|
|
7753
7763
|
`;
|
|
7754
|
-
var navLinksStyles =
|
|
7764
|
+
var navLinksStyles = import_react46.css`
|
|
7755
7765
|
display: flex;
|
|
7756
7766
|
align-items: center;
|
|
7757
7767
|
gap: 24px;
|
|
@@ -7759,7 +7769,7 @@ var navLinksStyles = import_react45.css`
|
|
|
7759
7769
|
margin: 0;
|
|
7760
7770
|
padding: 0;
|
|
7761
7771
|
`;
|
|
7762
|
-
var navLinkStyles =
|
|
7772
|
+
var navLinkStyles = import_react46.css`
|
|
7763
7773
|
text-decoration: none;
|
|
7764
7774
|
color: #374151;
|
|
7765
7775
|
font-weight: 500;
|
|
@@ -7775,7 +7785,7 @@ var navLinkStyles = import_react45.css`
|
|
|
7775
7785
|
outline-offset: 2px;
|
|
7776
7786
|
}
|
|
7777
7787
|
`;
|
|
7778
|
-
var avatarPlaceholderStyles =
|
|
7788
|
+
var avatarPlaceholderStyles = import_react46.css`
|
|
7779
7789
|
width: 32px;
|
|
7780
7790
|
height: 32px;
|
|
7781
7791
|
border-radius: 50%;
|
|
@@ -7876,55 +7886,686 @@ var Navigation = ({
|
|
|
7876
7886
|
};
|
|
7877
7887
|
var Navigation_default = Navigation;
|
|
7878
7888
|
|
|
7889
|
+
// src/ScrollingCarousel/components/ScrollingCarouselStep.tsx
|
|
7890
|
+
var import_react49 = require("react");
|
|
7891
|
+
var import_react_intersection_observer = require("react-intersection-observer");
|
|
7892
|
+
|
|
7893
|
+
// src/ScrollingCarousel/context/CarouselContext.tsx
|
|
7894
|
+
var import_react47 = __toESM(require("react"));
|
|
7895
|
+
var CarouselContext = import_react47.default.createContext(
|
|
7896
|
+
null
|
|
7897
|
+
);
|
|
7898
|
+
|
|
7899
|
+
// src/ScrollingCarousel/ScrollingCarousel.styles.ts
|
|
7900
|
+
var import_react48 = require("@emotion/react");
|
|
7901
|
+
var carouselRoot = import_react48.css`
|
|
7902
|
+
position: relative;
|
|
7903
|
+
`;
|
|
7904
|
+
var carousel = import_react48.css`
|
|
7905
|
+
display: flex;
|
|
7906
|
+
overflow-y: hidden;
|
|
7907
|
+
overflow-x: scroll;
|
|
7908
|
+
scroll-snap-type: x mandatory;
|
|
7909
|
+
-ms-overflow-style: none;
|
|
7910
|
+
scrollbar-width: none;
|
|
7911
|
+
|
|
7912
|
+
&::-webkit-scrollbar {
|
|
7913
|
+
display: none;
|
|
7914
|
+
}
|
|
7915
|
+
`;
|
|
7916
|
+
var step = import_react48.css`
|
|
7917
|
+
scroll-snap-align: center;
|
|
7918
|
+
flex-basis: 100%;
|
|
7919
|
+
flex-shrink: 0;
|
|
7920
|
+
|
|
7921
|
+
&:last-child {
|
|
7922
|
+
margin-right: 0;
|
|
7923
|
+
}
|
|
7924
|
+
|
|
7925
|
+
@media (min-width: 768px) {
|
|
7926
|
+
flex-basis: 100%;
|
|
7927
|
+
}
|
|
7928
|
+
`;
|
|
7929
|
+
var controls = (position2) => import_react48.css`
|
|
7930
|
+
${(position2 === "left-right" || position2 === "top-right") && `
|
|
7931
|
+
display: none;
|
|
7932
|
+
|
|
7933
|
+
@media (min-width: 768px) {
|
|
7934
|
+
display: block;
|
|
7935
|
+
}
|
|
7936
|
+
`}
|
|
7937
|
+
`;
|
|
7938
|
+
var iconWrapper = import_react48.css`
|
|
7939
|
+
display: flex;
|
|
7940
|
+
width: var(--spacing-7);
|
|
7941
|
+
height: var(--spacing-7);
|
|
7942
|
+
border-radius: 50%;
|
|
7943
|
+
background: var(--color-base-white);
|
|
7944
|
+
align-items: center;
|
|
7945
|
+
justify-content: center;
|
|
7946
|
+
box-shadow: var(--shadow-md);
|
|
7947
|
+
`;
|
|
7948
|
+
var button = (position2) => import_react48.css`
|
|
7949
|
+
background: transparent;
|
|
7950
|
+
border-color: transparent;
|
|
7951
|
+
outline: none;
|
|
7952
|
+
cursor: pointer;
|
|
7953
|
+
z-index: 15;
|
|
7954
|
+
position: absolute;
|
|
7955
|
+
opacity: 0.9;
|
|
7956
|
+
transition: transform 0.3s ease, opacity 0.3s ease;
|
|
7957
|
+
|
|
7958
|
+
${position2 === "left-right" && `
|
|
7959
|
+
top: calc(50% - (var(--spacing-12) / 2));
|
|
7960
|
+
`}
|
|
7961
|
+
|
|
7962
|
+
${position2 === "bottom" && `
|
|
7963
|
+
top: calc(100% + var(--spacing-4));
|
|
7964
|
+
|
|
7965
|
+
@media (min-width: 768px) {
|
|
7966
|
+
top: calc(100% + var(--spacing-8));
|
|
7967
|
+
}
|
|
7968
|
+
`}
|
|
7969
|
+
|
|
7970
|
+
${position2 === "top-right" && `
|
|
7971
|
+
top: calc(-1 * var(--spacing-24));
|
|
7972
|
+
`}
|
|
7973
|
+
|
|
7974
|
+
${position2 === "inner-bottom" && `
|
|
7975
|
+
bottom: calc(-1 * var(--spacing-1));
|
|
7976
|
+
`}
|
|
7977
|
+
`;
|
|
7978
|
+
var buttonLeft = (position2) => import_react48.css`
|
|
7979
|
+
${button(position2)}
|
|
7980
|
+
|
|
7981
|
+
${position2 === "left-right" && `
|
|
7982
|
+
left: 0;
|
|
7983
|
+
`}
|
|
7984
|
+
|
|
7985
|
+
${position2 === "bottom" && `
|
|
7986
|
+
left: calc(50% - var(--spacing-14));
|
|
7987
|
+
`}
|
|
7988
|
+
|
|
7989
|
+
${position2 === "top-right" && `
|
|
7990
|
+
right: 60px;
|
|
7991
|
+
padding: 0;
|
|
7992
|
+
`}
|
|
7993
|
+
|
|
7994
|
+
${position2 === "inner-bottom" && `
|
|
7995
|
+
left: calc(50% - var(--spacing-16));
|
|
7996
|
+
`}
|
|
7997
|
+
`;
|
|
7998
|
+
var customButtonLeft = (position2) => import_react48.css`
|
|
7999
|
+
${button(position2)}
|
|
8000
|
+
|
|
8001
|
+
${position2 === "left-right" && `
|
|
8002
|
+
left: 0;
|
|
8003
|
+
`}
|
|
8004
|
+
|
|
8005
|
+
${position2 === "bottom" && `
|
|
8006
|
+
left: calc(50% - var(--spacing-14));
|
|
8007
|
+
`}
|
|
8008
|
+
|
|
8009
|
+
${position2 === "top-right" && `
|
|
8010
|
+
right: var(--spacing-10);
|
|
8011
|
+
padding: 0;
|
|
8012
|
+
`}
|
|
8013
|
+
|
|
8014
|
+
${position2 === "inner-bottom" && `
|
|
8015
|
+
left: calc(50% - var(--spacing-16));
|
|
8016
|
+
`}
|
|
8017
|
+
`;
|
|
8018
|
+
var buttonRight = (position2) => import_react48.css`
|
|
8019
|
+
${button(position2)}
|
|
8020
|
+
|
|
8021
|
+
${position2 === "left-right" && `
|
|
8022
|
+
right: 0;
|
|
8023
|
+
`}
|
|
8024
|
+
|
|
8025
|
+
${position2 === "bottom" && `
|
|
8026
|
+
right: calc(50% - var(--spacing-14));
|
|
8027
|
+
`}
|
|
8028
|
+
|
|
8029
|
+
${position2 === "top-right" && `
|
|
8030
|
+
right: 0;
|
|
8031
|
+
padding: 0;
|
|
8032
|
+
`}
|
|
8033
|
+
|
|
8034
|
+
${position2 === "inner-bottom" && `
|
|
8035
|
+
right: calc(50% - var(--spacing-16));
|
|
8036
|
+
`}
|
|
8037
|
+
`;
|
|
8038
|
+
var icon = import_react48.css`
|
|
8039
|
+
width: var(--spacing-3);
|
|
8040
|
+
height: var(--spacing-3);
|
|
8041
|
+
color: var(--color-base-black);
|
|
8042
|
+
`;
|
|
8043
|
+
var dots = import_react48.css`
|
|
8044
|
+
position: absolute;
|
|
8045
|
+
bottom: var(--spacing-2);
|
|
8046
|
+
left: 0;
|
|
8047
|
+
right: 0;
|
|
8048
|
+
z-index: 10;
|
|
8049
|
+
display: flex;
|
|
8050
|
+
align-items: center;
|
|
8051
|
+
justify-content: center;
|
|
8052
|
+
`;
|
|
8053
|
+
var dotsInner = import_react48.css`
|
|
8054
|
+
display: flex;
|
|
8055
|
+
overflow: hidden;
|
|
8056
|
+
`;
|
|
8057
|
+
var dot = (dotsColor) => import_react48.css`
|
|
8058
|
+
position: relative;
|
|
8059
|
+
flex-shrink: 0;
|
|
8060
|
+
flex-grow: 0;
|
|
8061
|
+
transition: transform 500ms;
|
|
8062
|
+
background-color: transparent;
|
|
8063
|
+
border: 0;
|
|
8064
|
+
display: flex;
|
|
8065
|
+
align-items: center;
|
|
8066
|
+
justify-content: center;
|
|
8067
|
+
padding: 0;
|
|
8068
|
+
cursor: pointer;
|
|
8069
|
+
|
|
8070
|
+
&::after {
|
|
8071
|
+
content: '';
|
|
8072
|
+
display: block;
|
|
8073
|
+
position: absolute;
|
|
8074
|
+
top: 50%;
|
|
8075
|
+
left: 50%;
|
|
8076
|
+
height: 8px;
|
|
8077
|
+
width: 8px;
|
|
8078
|
+
border-radius: 50%;
|
|
8079
|
+
transition: opacity 500ms, transform 500ms;
|
|
8080
|
+
opacity: 0.75;
|
|
8081
|
+
transform: translate(-50%, -50%);
|
|
8082
|
+
|
|
8083
|
+
${dotsColor === "light" && `
|
|
8084
|
+
background-color: var(--color-base-white);
|
|
8085
|
+
`}
|
|
8086
|
+
|
|
8087
|
+
${dotsColor === "dark" && `
|
|
8088
|
+
background-color: var(--color-base-black);
|
|
8089
|
+
`}
|
|
8090
|
+
|
|
8091
|
+
${dotsColor === "neutral" && `
|
|
8092
|
+
background-color: var(--color-neutral-500);
|
|
8093
|
+
`}
|
|
8094
|
+
}
|
|
8095
|
+
`;
|
|
8096
|
+
var dotDistance2 = import_react48.css`
|
|
8097
|
+
&::after {
|
|
8098
|
+
transform: translate(-50%, -50%) scale(0.9);
|
|
8099
|
+
}
|
|
8100
|
+
`;
|
|
8101
|
+
var dotDistance3 = import_react48.css`
|
|
8102
|
+
&::after {
|
|
8103
|
+
transform: translate(-50%, -50%) scale(0.8);
|
|
8104
|
+
}
|
|
8105
|
+
`;
|
|
8106
|
+
var dotDistanceGreaterThan3 = import_react48.css`
|
|
8107
|
+
&::after {
|
|
8108
|
+
transform: translate(-50%, -50%) scale(0.7);
|
|
8109
|
+
}
|
|
8110
|
+
`;
|
|
8111
|
+
var dotVisible = import_react48.css`
|
|
8112
|
+
&::after {
|
|
8113
|
+
opacity: 1;
|
|
8114
|
+
transform: translate(-50%, -50%) scale(1.2);
|
|
8115
|
+
}
|
|
8116
|
+
`;
|
|
8117
|
+
|
|
8118
|
+
// src/ScrollingCarousel/components/ScrollingCarouselStep.tsx
|
|
8119
|
+
var import_jsx_runtime248 = require("@emotion/react/jsx-runtime");
|
|
8120
|
+
var ScrollingCarouselStep = ({
|
|
8121
|
+
children,
|
|
8122
|
+
index,
|
|
8123
|
+
className,
|
|
8124
|
+
parentId,
|
|
8125
|
+
onClick
|
|
8126
|
+
}) => {
|
|
8127
|
+
const context = (0, import_react49.useContext)(CarouselContext);
|
|
8128
|
+
if (!context) {
|
|
8129
|
+
throw new Error(
|
|
8130
|
+
"ScrollingCarouselStep must be used within ScrollingCarousel"
|
|
8131
|
+
);
|
|
8132
|
+
}
|
|
8133
|
+
const { carousel: carousel2, dispatch } = context;
|
|
8134
|
+
const [ref, inView] = (0, import_react_intersection_observer.useInView)({
|
|
8135
|
+
threshold: 0.75,
|
|
8136
|
+
root: carousel2.current
|
|
8137
|
+
});
|
|
8138
|
+
(0, import_react49.useEffect)(() => {
|
|
8139
|
+
if (typeof index !== "undefined") {
|
|
8140
|
+
dispatch({
|
|
8141
|
+
type: "set_child_visibility",
|
|
8142
|
+
payload: { index, visible: inView }
|
|
8143
|
+
});
|
|
8144
|
+
}
|
|
8145
|
+
}, [inView, index, dispatch]);
|
|
8146
|
+
const dataStep = { [`data-step-${parentId}`]: index };
|
|
8147
|
+
return /* @__PURE__ */ (0, import_jsx_runtime248.jsx)(
|
|
8148
|
+
"div",
|
|
8149
|
+
{
|
|
8150
|
+
ref,
|
|
8151
|
+
css: step,
|
|
8152
|
+
className,
|
|
8153
|
+
...dataStep,
|
|
8154
|
+
onClick,
|
|
8155
|
+
role: "group",
|
|
8156
|
+
"aria-roledescription": "slide",
|
|
8157
|
+
children
|
|
8158
|
+
}
|
|
8159
|
+
);
|
|
8160
|
+
};
|
|
8161
|
+
ScrollingCarouselStep.displayName = "ScrollingCarouselStep";
|
|
8162
|
+
|
|
8163
|
+
// src/ScrollingCarousel/ScrollingCarousel.tsx
|
|
8164
|
+
var import_react53 = __toESM(require("react"));
|
|
8165
|
+
|
|
8166
|
+
// src/ScrollingCarousel/hooks/useCarouselDots.ts
|
|
8167
|
+
var import_react50 = require("react");
|
|
8168
|
+
|
|
8169
|
+
// src/ScrollingCarousel/ScrollingCarousel.helpers.ts
|
|
8170
|
+
var childVisibilityReducer = (state, action) => {
|
|
8171
|
+
switch (action.type) {
|
|
8172
|
+
case "set_child_visibility": {
|
|
8173
|
+
const newChildVisibility = [...state.childVisibility];
|
|
8174
|
+
newChildVisibility[action.payload.index] = action.payload.visible;
|
|
8175
|
+
return {
|
|
8176
|
+
childVisibility: newChildVisibility
|
|
8177
|
+
};
|
|
8178
|
+
}
|
|
8179
|
+
default:
|
|
8180
|
+
return state;
|
|
8181
|
+
}
|
|
8182
|
+
};
|
|
8183
|
+
var calculateDotOffset = (dotIndex, visualPositionIndex, dotWidth, dotMovementNeeded) => {
|
|
8184
|
+
return (dotIndex + visualPositionIndex) * dotWidth - dotMovementNeeded * dotWidth;
|
|
8185
|
+
};
|
|
8186
|
+
var calculateDotDistances = (childVisibility, centerDotIndex) => {
|
|
8187
|
+
return childVisibility.map((_, i) => Math.abs(centerDotIndex - i));
|
|
8188
|
+
};
|
|
8189
|
+
|
|
8190
|
+
// src/ScrollingCarousel/hooks/useCarouselDots.ts
|
|
8191
|
+
var useCarouselDots = ({
|
|
8192
|
+
childVisibility,
|
|
8193
|
+
firstVisibleIndex,
|
|
8194
|
+
lastVisibleIndex,
|
|
8195
|
+
anyItemsVisible,
|
|
8196
|
+
numberOfDots
|
|
8197
|
+
}) => {
|
|
8198
|
+
const dotOffset = (0, import_react50.useRef)(0);
|
|
8199
|
+
const dotWidth = 12;
|
|
8200
|
+
const totalDots = childVisibility.length;
|
|
8201
|
+
const dotToCenterIndex = Math.round(
|
|
8202
|
+
(firstVisibleIndex + lastVisibleIndex) / 2
|
|
8203
|
+
);
|
|
8204
|
+
const dotMovementNeeded = Math.round(numberOfDots / 2) + 1;
|
|
8205
|
+
const centerDotNearStart = dotToCenterIndex < dotMovementNeeded - 1;
|
|
8206
|
+
const centerDotNearEnd = dotToCenterIndex > totalDots - dotMovementNeeded;
|
|
8207
|
+
if (anyItemsVisible) {
|
|
8208
|
+
if (centerDotNearStart) {
|
|
8209
|
+
dotOffset.current = 0;
|
|
8210
|
+
} else if (centerDotNearEnd) {
|
|
8211
|
+
dotOffset.current = dotWidth * (totalDots - numberOfDots);
|
|
8212
|
+
} else {
|
|
8213
|
+
dotOffset.current = calculateDotOffset(
|
|
8214
|
+
dotToCenterIndex,
|
|
8215
|
+
2,
|
|
8216
|
+
dotWidth,
|
|
8217
|
+
dotMovementNeeded
|
|
8218
|
+
);
|
|
8219
|
+
}
|
|
8220
|
+
}
|
|
8221
|
+
const dotDistances = calculateDotDistances(childVisibility, dotToCenterIndex);
|
|
8222
|
+
return {
|
|
8223
|
+
dotOffset,
|
|
8224
|
+
dotDistances,
|
|
8225
|
+
dotWidth
|
|
8226
|
+
};
|
|
8227
|
+
};
|
|
8228
|
+
|
|
8229
|
+
// src/ScrollingCarousel/hooks/useCarouselNavigation.ts
|
|
8230
|
+
var import_react51 = require("react");
|
|
8231
|
+
|
|
8232
|
+
// src/shared/helpers.ts
|
|
8233
|
+
var import_seamless_scroll_polyfill = require("seamless-scroll-polyfill");
|
|
8234
|
+
var isSafari = () => {
|
|
8235
|
+
if (typeof window === "undefined")
|
|
8236
|
+
return false;
|
|
8237
|
+
return /^((?!chrome|android).)*safari/i.test(window.navigator.userAgent);
|
|
8238
|
+
};
|
|
8239
|
+
var scrollTo = (el, config, parent) => {
|
|
8240
|
+
setTimeout(() => {
|
|
8241
|
+
if (isSafari()) {
|
|
8242
|
+
(0, import_seamless_scroll_polyfill.elementScrollIntoView)(el, config);
|
|
8243
|
+
} else {
|
|
8244
|
+
if (parent) {
|
|
8245
|
+
parent.scroll({ left: el.offsetLeft, behavior: "smooth" });
|
|
8246
|
+
} else {
|
|
8247
|
+
el.scrollIntoView(config);
|
|
8248
|
+
}
|
|
8249
|
+
}
|
|
8250
|
+
});
|
|
8251
|
+
};
|
|
8252
|
+
|
|
8253
|
+
// src/ScrollingCarousel/hooks/useCarouselNavigation.ts
|
|
8254
|
+
var useCarouselNavigation = ({
|
|
8255
|
+
carousel: carousel2,
|
|
8256
|
+
id,
|
|
8257
|
+
firstItemIsVisible,
|
|
8258
|
+
lastItemIsVisible,
|
|
8259
|
+
firstVisibleIndex,
|
|
8260
|
+
lastVisibleIndex,
|
|
8261
|
+
infiniteScroll,
|
|
8262
|
+
childVisibilityLength
|
|
8263
|
+
}) => {
|
|
8264
|
+
const getStepEl = (0, import_react51.useCallback)(
|
|
8265
|
+
(index) => {
|
|
8266
|
+
if (carousel2.current) {
|
|
8267
|
+
return carousel2.current.querySelectorAll(`[data-step-${id}]`)[index] || null;
|
|
8268
|
+
}
|
|
8269
|
+
return null;
|
|
8270
|
+
},
|
|
8271
|
+
[carousel2, id]
|
|
8272
|
+
);
|
|
8273
|
+
const next = (0, import_react51.useCallback)(
|
|
8274
|
+
(e) => {
|
|
8275
|
+
e.preventDefault();
|
|
8276
|
+
if (lastItemIsVisible && !infiniteScroll)
|
|
8277
|
+
return;
|
|
8278
|
+
const scrollToIndex = infiniteScroll && lastVisibleIndex === childVisibilityLength - 1 ? 0 : lastVisibleIndex + 1;
|
|
8279
|
+
const el = getStepEl(scrollToIndex);
|
|
8280
|
+
if (el) {
|
|
8281
|
+
scrollTo(
|
|
8282
|
+
el,
|
|
8283
|
+
{
|
|
8284
|
+
behavior: "smooth",
|
|
8285
|
+
inline: "start",
|
|
8286
|
+
block: "nearest"
|
|
8287
|
+
},
|
|
8288
|
+
carousel2.current
|
|
8289
|
+
);
|
|
8290
|
+
}
|
|
8291
|
+
},
|
|
8292
|
+
[
|
|
8293
|
+
lastItemIsVisible,
|
|
8294
|
+
lastVisibleIndex,
|
|
8295
|
+
infiniteScroll,
|
|
8296
|
+
childVisibilityLength,
|
|
8297
|
+
getStepEl,
|
|
8298
|
+
carousel2
|
|
8299
|
+
]
|
|
8300
|
+
);
|
|
8301
|
+
const back = (0, import_react51.useCallback)(
|
|
8302
|
+
(e) => {
|
|
8303
|
+
e.preventDefault();
|
|
8304
|
+
if (firstItemIsVisible && !infiniteScroll)
|
|
8305
|
+
return;
|
|
8306
|
+
const scrollToIndex = firstVisibleIndex === 0 && infiniteScroll ? childVisibilityLength - 1 : firstVisibleIndex - 1;
|
|
8307
|
+
const el = getStepEl(scrollToIndex);
|
|
8308
|
+
if (el) {
|
|
8309
|
+
scrollTo(
|
|
8310
|
+
el,
|
|
8311
|
+
{
|
|
8312
|
+
behavior: "smooth",
|
|
8313
|
+
inline: "end",
|
|
8314
|
+
block: "nearest"
|
|
8315
|
+
},
|
|
8316
|
+
carousel2.current
|
|
8317
|
+
);
|
|
8318
|
+
}
|
|
8319
|
+
},
|
|
8320
|
+
[
|
|
8321
|
+
firstItemIsVisible,
|
|
8322
|
+
firstVisibleIndex,
|
|
8323
|
+
infiniteScroll,
|
|
8324
|
+
childVisibilityLength,
|
|
8325
|
+
getStepEl,
|
|
8326
|
+
carousel2
|
|
8327
|
+
]
|
|
8328
|
+
);
|
|
8329
|
+
const goTo = (0, import_react51.useCallback)(
|
|
8330
|
+
(e, i) => {
|
|
8331
|
+
e.preventDefault();
|
|
8332
|
+
const el = getStepEl(i);
|
|
8333
|
+
if (el) {
|
|
8334
|
+
scrollTo(el, {
|
|
8335
|
+
behavior: "smooth",
|
|
8336
|
+
inline: "center",
|
|
8337
|
+
block: "center"
|
|
8338
|
+
});
|
|
8339
|
+
}
|
|
8340
|
+
},
|
|
8341
|
+
[getStepEl]
|
|
8342
|
+
);
|
|
8343
|
+
return { next, back, goTo };
|
|
8344
|
+
};
|
|
8345
|
+
|
|
8346
|
+
// src/ScrollingCarousel/hooks/useCarouselVisibility.ts
|
|
8347
|
+
var import_react52 = require("react");
|
|
8348
|
+
var useCarouselVisibility = (carousel2) => {
|
|
8349
|
+
const [state, dispatch] = (0, import_react52.useReducer)(childVisibilityReducer, {
|
|
8350
|
+
childVisibility: []
|
|
8351
|
+
});
|
|
8352
|
+
const carouselContextApi = (0, import_react52.useMemo)(
|
|
8353
|
+
() => ({ carousel: carousel2, dispatch }),
|
|
8354
|
+
[carousel2]
|
|
8355
|
+
);
|
|
8356
|
+
const firstVisibleIndex = state.childVisibility.indexOf(true);
|
|
8357
|
+
const firstItemIsVisible = firstVisibleIndex === 0;
|
|
8358
|
+
const lastVisibleIndex = state.childVisibility.lastIndexOf(true);
|
|
8359
|
+
const lastItemIsVisible = lastVisibleIndex === state.childVisibility.length - 1;
|
|
8360
|
+
const anyItemsVisible = !!(firstVisibleIndex >= 0 && lastVisibleIndex >= 0);
|
|
8361
|
+
return {
|
|
8362
|
+
state,
|
|
8363
|
+
carouselContextApi,
|
|
8364
|
+
firstVisibleIndex,
|
|
8365
|
+
lastVisibleIndex,
|
|
8366
|
+
firstItemIsVisible,
|
|
8367
|
+
lastItemIsVisible,
|
|
8368
|
+
anyItemsVisible
|
|
8369
|
+
};
|
|
8370
|
+
};
|
|
8371
|
+
|
|
8372
|
+
// src/ScrollingCarousel/ScrollingCarousel.tsx
|
|
8373
|
+
var import_jsx_runtime249 = require("@emotion/react/jsx-runtime");
|
|
8374
|
+
var ScrollingCarousel = ({
|
|
8375
|
+
className,
|
|
8376
|
+
children,
|
|
8377
|
+
showButtons = true,
|
|
8378
|
+
showDots = false,
|
|
8379
|
+
dotsColor = "light",
|
|
8380
|
+
numberOfDots = 5,
|
|
8381
|
+
buttonsPosition = "left-right",
|
|
8382
|
+
customLeftButton,
|
|
8383
|
+
infiniteScroll = false,
|
|
8384
|
+
customBackIcon = null,
|
|
8385
|
+
customNextIcon = null,
|
|
8386
|
+
showNavigationOnHover = false,
|
|
8387
|
+
id,
|
|
8388
|
+
current
|
|
8389
|
+
}) => {
|
|
8390
|
+
const carousel2 = (0, import_react53.useRef)(null);
|
|
8391
|
+
const [isHovering, setIsHovering] = (0, import_react53.useState)(false);
|
|
8392
|
+
const {
|
|
8393
|
+
state,
|
|
8394
|
+
carouselContextApi,
|
|
8395
|
+
firstVisibleIndex,
|
|
8396
|
+
lastVisibleIndex,
|
|
8397
|
+
firstItemIsVisible,
|
|
8398
|
+
lastItemIsVisible,
|
|
8399
|
+
anyItemsVisible
|
|
8400
|
+
} = useCarouselVisibility(carousel2);
|
|
8401
|
+
const { next, back, goTo } = useCarouselNavigation({
|
|
8402
|
+
carousel: carousel2,
|
|
8403
|
+
id,
|
|
8404
|
+
firstItemIsVisible,
|
|
8405
|
+
lastItemIsVisible,
|
|
8406
|
+
firstVisibleIndex,
|
|
8407
|
+
lastVisibleIndex,
|
|
8408
|
+
infiniteScroll,
|
|
8409
|
+
childVisibilityLength: state.childVisibility.length
|
|
8410
|
+
});
|
|
8411
|
+
(0, import_react53.useEffect)(() => {
|
|
8412
|
+
if (carousel2.current && typeof current === "number" && current >= 0) {
|
|
8413
|
+
const childrenArray = Array.from(carousel2.current.children);
|
|
8414
|
+
const selectedItem = childrenArray[current];
|
|
8415
|
+
if (selectedItem) {
|
|
8416
|
+
const selectedItemOffset = selectedItem.offsetLeft + selectedItem.offsetWidth / 2;
|
|
8417
|
+
const carouselCenter = carousel2.current.offsetWidth / 2;
|
|
8418
|
+
const scrollLeft = selectedItemOffset - carouselCenter;
|
|
8419
|
+
carousel2.current.scroll({
|
|
8420
|
+
left: scrollLeft,
|
|
8421
|
+
behavior: "smooth"
|
|
8422
|
+
});
|
|
8423
|
+
}
|
|
8424
|
+
}
|
|
8425
|
+
}, [current]);
|
|
8426
|
+
const childrenWithIndex = import_react53.default.Children.map(
|
|
8427
|
+
children,
|
|
8428
|
+
(child, index) => import_react53.default.cloneElement(child, { index })
|
|
8429
|
+
);
|
|
8430
|
+
const { dotOffset, dotDistances, dotWidth } = useCarouselDots({
|
|
8431
|
+
childVisibility: state.childVisibility,
|
|
8432
|
+
firstVisibleIndex,
|
|
8433
|
+
lastVisibleIndex,
|
|
8434
|
+
anyItemsVisible,
|
|
8435
|
+
numberOfDots
|
|
8436
|
+
});
|
|
8437
|
+
const hasMultipleChildren = state.childVisibility.length > 1;
|
|
8438
|
+
const shouldShowNavigation = showNavigationOnHover ? isHovering : true;
|
|
8439
|
+
return /* @__PURE__ */ (0, import_jsx_runtime249.jsxs)(
|
|
8440
|
+
"div",
|
|
8441
|
+
{
|
|
8442
|
+
css: carouselRoot,
|
|
8443
|
+
className,
|
|
8444
|
+
onMouseEnter: () => setIsHovering(true),
|
|
8445
|
+
onMouseLeave: () => setIsHovering(false),
|
|
8446
|
+
children: [
|
|
8447
|
+
/* @__PURE__ */ (0, import_jsx_runtime249.jsx)(
|
|
8448
|
+
"div",
|
|
8449
|
+
{
|
|
8450
|
+
css: carousel,
|
|
8451
|
+
ref: carousel2,
|
|
8452
|
+
"data-testid": "scrolling-carousel-carousel",
|
|
8453
|
+
role: "region",
|
|
8454
|
+
"aria-roledescription": "carousel",
|
|
8455
|
+
"aria-label": "Scrolling carousel",
|
|
8456
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime249.jsx)(CarouselContext.Provider, { value: carouselContextApi, children: childrenWithIndex })
|
|
8457
|
+
}
|
|
8458
|
+
),
|
|
8459
|
+
hasMultipleChildren && shouldShowNavigation && /* @__PURE__ */ (0, import_jsx_runtime249.jsxs)("div", { css: controls(buttonsPosition), children: [
|
|
8460
|
+
showButtons && (!firstItemIsVisible || infiniteScroll) && /* @__PURE__ */ (0, import_jsx_runtime249.jsx)(
|
|
8461
|
+
"button",
|
|
8462
|
+
{
|
|
8463
|
+
"aria-label": "Previous",
|
|
8464
|
+
type: "button",
|
|
8465
|
+
onClick: back,
|
|
8466
|
+
css: customLeftButton ? customButtonLeft(buttonsPosition) : buttonLeft(buttonsPosition),
|
|
8467
|
+
"data-testid": `scrolling-carousel-button-back-${id}`,
|
|
8468
|
+
children: customBackIcon ? customBackIcon : /* @__PURE__ */ (0, import_jsx_runtime249.jsx)("span", { css: iconWrapper, children: /* @__PURE__ */ (0, import_jsx_runtime249.jsx)(Icon_default, { variant: "AngleLeft", css: icon }) })
|
|
8469
|
+
}
|
|
8470
|
+
),
|
|
8471
|
+
showButtons && (!lastItemIsVisible || infiniteScroll) && /* @__PURE__ */ (0, import_jsx_runtime249.jsx)(
|
|
8472
|
+
"button",
|
|
8473
|
+
{
|
|
8474
|
+
"aria-label": "Next",
|
|
8475
|
+
type: "button",
|
|
8476
|
+
onClick: next,
|
|
8477
|
+
css: buttonRight(buttonsPosition),
|
|
8478
|
+
"data-testid": `scrolling-carousel-button-next-${id}`,
|
|
8479
|
+
children: customNextIcon ? customNextIcon : /* @__PURE__ */ (0, import_jsx_runtime249.jsx)("span", { css: iconWrapper, children: /* @__PURE__ */ (0, import_jsx_runtime249.jsx)(Icon_default, { variant: "AngleRight", css: icon }) })
|
|
8480
|
+
}
|
|
8481
|
+
)
|
|
8482
|
+
] }),
|
|
8483
|
+
showDots && /* @__PURE__ */ (0, import_jsx_runtime249.jsx)("div", { css: dots, children: /* @__PURE__ */ (0, import_jsx_runtime249.jsx)(
|
|
8484
|
+
"div",
|
|
8485
|
+
{
|
|
8486
|
+
css: dotsInner,
|
|
8487
|
+
style: { maxWidth: `${dotWidth * numberOfDots}px` },
|
|
8488
|
+
children: state.childVisibility.map((childVisibility, i) => {
|
|
8489
|
+
var _a;
|
|
8490
|
+
const distance = (_a = dotDistances[i]) != null ? _a : 0;
|
|
8491
|
+
return /* @__PURE__ */ (0, import_jsx_runtime249.jsx)(
|
|
8492
|
+
"button",
|
|
8493
|
+
{
|
|
8494
|
+
type: "button",
|
|
8495
|
+
onClick: (e) => goTo(e, i),
|
|
8496
|
+
css: [
|
|
8497
|
+
dot(dotsColor),
|
|
8498
|
+
distance === 2 && dotDistance2,
|
|
8499
|
+
distance === 3 && dotDistance3,
|
|
8500
|
+
distance > 3 && dotDistanceGreaterThan3,
|
|
8501
|
+
childVisibility && dotVisible
|
|
8502
|
+
],
|
|
8503
|
+
style: {
|
|
8504
|
+
width: `${dotWidth}px`,
|
|
8505
|
+
height: `${dotWidth}px`,
|
|
8506
|
+
transform: `translateX(-${dotOffset.current}px)`
|
|
8507
|
+
},
|
|
8508
|
+
"aria-label": `Go to slide ${i + 1}`
|
|
8509
|
+
},
|
|
8510
|
+
`step-${i + 1}`
|
|
8511
|
+
);
|
|
8512
|
+
})
|
|
8513
|
+
}
|
|
8514
|
+
) })
|
|
8515
|
+
]
|
|
8516
|
+
}
|
|
8517
|
+
);
|
|
8518
|
+
};
|
|
8519
|
+
ScrollingCarousel.displayName = "ScrollingCarousel";
|
|
8520
|
+
|
|
7879
8521
|
// src/PackageCard/PackageCard.styles.ts
|
|
7880
|
-
var
|
|
7881
|
-
var cardContainerStyles3 =
|
|
8522
|
+
var import_react54 = require("@emotion/react");
|
|
8523
|
+
var cardContainerStyles3 = import_react54.css`
|
|
7882
8524
|
color: var(--text-primary);
|
|
7883
8525
|
position: relative;
|
|
7884
8526
|
width: 100%;
|
|
7885
|
-
|
|
8527
|
+
height: 100%;
|
|
7886
8528
|
background: white;
|
|
7887
|
-
border-radius: var(--spacing-4);
|
|
7888
8529
|
overflow: hidden;
|
|
7889
|
-
cursor: pointer;
|
|
7890
8530
|
transition: all 0.2s ease;
|
|
7891
|
-
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
|
7892
|
-
|
|
7893
|
-
&:hover {
|
|
7894
|
-
transform: translateY(-2px);
|
|
7895
|
-
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
|
|
7896
|
-
}
|
|
7897
8531
|
`;
|
|
7898
|
-
var imageContainerStyles =
|
|
8532
|
+
var imageContainerStyles = import_react54.css`
|
|
7899
8533
|
position: relative;
|
|
7900
8534
|
width: 100%;
|
|
7901
|
-
height:
|
|
8535
|
+
height: 260px;
|
|
7902
8536
|
overflow: hidden;
|
|
7903
8537
|
border-radius: var(--spacing-4);
|
|
7904
8538
|
`;
|
|
7905
|
-
var imageStyles2 =
|
|
8539
|
+
var imageStyles2 = import_react54.css`
|
|
7906
8540
|
width: 100%;
|
|
7907
|
-
height:
|
|
8541
|
+
height: 260px;
|
|
7908
8542
|
background-size: cover;
|
|
7909
8543
|
background-position: center;
|
|
7910
8544
|
background-repeat: no-repeat;
|
|
7911
|
-
|
|
8545
|
+
position: relative;
|
|
8546
|
+
background-color: lightgray;
|
|
7912
8547
|
`;
|
|
7913
|
-
var
|
|
8548
|
+
var badgeTopLeftStyles = import_react54.css`
|
|
7914
8549
|
position: absolute;
|
|
7915
8550
|
top: var(--spacing-3);
|
|
7916
8551
|
left: var(--spacing-3);
|
|
7917
8552
|
z-index: 2;
|
|
7918
8553
|
`;
|
|
7919
|
-
var
|
|
8554
|
+
var badgeBottomRightStyles = import_react54.css`
|
|
8555
|
+
position: absolute;
|
|
8556
|
+
bottom: var(--spacing-3);
|
|
8557
|
+
right: var(--spacing-3);
|
|
8558
|
+
z-index: 2;
|
|
8559
|
+
`;
|
|
8560
|
+
var heartIconStyles = import_react54.css`
|
|
7920
8561
|
position: absolute;
|
|
7921
8562
|
top: var(--spacing-3);
|
|
7922
8563
|
right: var(--spacing-3);
|
|
7923
8564
|
width: 32px;
|
|
7924
8565
|
height: 32px;
|
|
7925
|
-
background: rgba(255, 255, 255, 0.
|
|
7926
|
-
backdrop-filter: blur(8px);
|
|
8566
|
+
background: rgba(255, 255, 255, 0.4);
|
|
7927
8567
|
border-radius: 50%;
|
|
8568
|
+
border: 1px solid var(--border-primary);
|
|
7928
8569
|
display: flex;
|
|
7929
8570
|
align-items: center;
|
|
7930
8571
|
justify-content: center;
|
|
@@ -7938,103 +8579,180 @@ var heartIconStyles = import_react46.css`
|
|
|
7938
8579
|
transform: scale(1.1);
|
|
7939
8580
|
}
|
|
7940
8581
|
`;
|
|
7941
|
-
var
|
|
7942
|
-
padding: var(--spacing-3);
|
|
8582
|
+
var contentWithBackgroundStyles = import_react54.css`
|
|
8583
|
+
padding: var(--spacing-2) var(--spacing-3) var(--spacing-4) var(--spacing-3);
|
|
8584
|
+
background-color: var(--surface-page);
|
|
8585
|
+
`;
|
|
8586
|
+
var contentWithoutBackgroundStyles = import_react54.css`
|
|
8587
|
+
padding-top: var(--spacing-2);
|
|
8588
|
+
`;
|
|
8589
|
+
var overlayStyles = import_react54.css`
|
|
8590
|
+
position: absolute;
|
|
8591
|
+
top: 0;
|
|
8592
|
+
left: 0;
|
|
8593
|
+
width: 100%;
|
|
8594
|
+
height: 100%;
|
|
8595
|
+
background-color: rgba(0, 0, 0, 0.6);
|
|
8596
|
+
z-index: 1;
|
|
8597
|
+
border-radius: var(--spacing-4);
|
|
8598
|
+
display: block;
|
|
8599
|
+
pointer-events: none;
|
|
7943
8600
|
`;
|
|
7944
8601
|
|
|
7945
8602
|
// src/PackageCard/PackageCard.tsx
|
|
7946
|
-
var
|
|
8603
|
+
var import_jsx_runtime250 = require("@emotion/react/jsx-runtime");
|
|
7947
8604
|
var PackageCard = ({
|
|
7948
8605
|
images,
|
|
7949
8606
|
title,
|
|
7950
8607
|
subtitle,
|
|
7951
8608
|
startingPrice,
|
|
7952
|
-
tripsLeft,
|
|
7953
8609
|
isFavorited = false,
|
|
7954
8610
|
onFavoriteClick,
|
|
7955
8611
|
onClick,
|
|
7956
8612
|
className,
|
|
7957
|
-
|
|
7958
|
-
|
|
7959
|
-
|
|
8613
|
+
badges,
|
|
8614
|
+
availabilityBadges,
|
|
8615
|
+
id,
|
|
8616
|
+
hasContentBackground = false,
|
|
7960
8617
|
...rest
|
|
7961
8618
|
}) => {
|
|
7962
|
-
const
|
|
7963
|
-
|
|
7964
|
-
|
|
7965
|
-
|
|
7966
|
-
|
|
7967
|
-
|
|
7968
|
-
|
|
7969
|
-
|
|
7970
|
-
|
|
7971
|
-
|
|
7972
|
-
|
|
7973
|
-
|
|
7974
|
-
|
|
7975
|
-
|
|
7976
|
-
|
|
7977
|
-
|
|
7978
|
-
|
|
8619
|
+
const carouselId = id || `package-card-${title.replace(/\s+/g, "-")}`;
|
|
8620
|
+
const shouldShowOverlay = availabilityBadges == null ? void 0 : availabilityBadges.some(
|
|
8621
|
+
(badge2) => badge2.showOverlay
|
|
8622
|
+
);
|
|
8623
|
+
return /* @__PURE__ */ (0, import_jsx_runtime250.jsxs)(
|
|
8624
|
+
Box_default,
|
|
8625
|
+
{
|
|
8626
|
+
css: cardContainerStyles3,
|
|
8627
|
+
className,
|
|
8628
|
+
...rest,
|
|
8629
|
+
borderRadius: hasContentBackground ? "var(--spacing-4)" : "var(--spacing-4) var(--spacing-4) 0 0",
|
|
8630
|
+
children: [
|
|
8631
|
+
/* @__PURE__ */ (0, import_jsx_runtime250.jsxs)(Box_default, { css: imageContainerStyles, children: [
|
|
8632
|
+
availabilityBadges == null ? void 0 : availabilityBadges.map((badge2, index) => /* @__PURE__ */ (0, import_jsx_runtime250.jsx)(
|
|
8633
|
+
AvailabilityBadge_default,
|
|
8634
|
+
{
|
|
8635
|
+
variant: badge2.variant,
|
|
8636
|
+
css: badge2.position === "bottom-right" ? badgeBottomRightStyles : badgeTopLeftStyles,
|
|
8637
|
+
children: badge2.text
|
|
8638
|
+
},
|
|
8639
|
+
`availability-${index}`
|
|
8640
|
+
)),
|
|
8641
|
+
shouldShowOverlay && /* @__PURE__ */ (0, import_jsx_runtime250.jsx)(Box_default, { css: overlayStyles }),
|
|
8642
|
+
/* @__PURE__ */ (0, import_jsx_runtime250.jsx)(
|
|
8643
|
+
ScrollingCarousel,
|
|
7979
8644
|
{
|
|
7980
|
-
|
|
7981
|
-
|
|
8645
|
+
showDots: images.length > 1,
|
|
8646
|
+
showNavigationOnHover: true,
|
|
8647
|
+
id: carouselId,
|
|
8648
|
+
children: images.filter((image) => !!image).map((image, index) => /* @__PURE__ */ (0, import_jsx_runtime250.jsx)(
|
|
8649
|
+
ScrollingCarouselStep,
|
|
8650
|
+
{
|
|
8651
|
+
parentId: carouselId,
|
|
8652
|
+
onClick,
|
|
8653
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime250.jsx)(
|
|
8654
|
+
Box_default,
|
|
8655
|
+
{
|
|
8656
|
+
css: [
|
|
8657
|
+
imageStyles2,
|
|
8658
|
+
{
|
|
8659
|
+
backgroundImage: `linear-gradient(181deg, rgba(0, 0, 0, 0.00) 75.32%, rgba(0, 0, 0, 0.40) 99.41%), url(${image})`
|
|
8660
|
+
}
|
|
8661
|
+
]
|
|
8662
|
+
}
|
|
8663
|
+
)
|
|
8664
|
+
},
|
|
8665
|
+
`image-${index}`
|
|
8666
|
+
))
|
|
8667
|
+
}
|
|
8668
|
+
),
|
|
8669
|
+
onFavoriteClick && /* @__PURE__ */ (0, import_jsx_runtime250.jsx)(
|
|
8670
|
+
Box_default,
|
|
8671
|
+
{
|
|
8672
|
+
css: heartIconStyles,
|
|
8673
|
+
onClick: (e) => {
|
|
8674
|
+
e.preventDefault();
|
|
8675
|
+
e.stopPropagation();
|
|
8676
|
+
onFavoriteClick == null ? void 0 : onFavoriteClick();
|
|
8677
|
+
},
|
|
8678
|
+
children: isFavorited ? /* @__PURE__ */ (0, import_jsx_runtime250.jsx)(
|
|
8679
|
+
Icon_default,
|
|
8680
|
+
{
|
|
8681
|
+
variant: "HeartSolid",
|
|
8682
|
+
size: "small",
|
|
8683
|
+
fill: "var(--color-error-500)"
|
|
8684
|
+
}
|
|
8685
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime250.jsx)(
|
|
8686
|
+
Icon_default,
|
|
8687
|
+
{
|
|
8688
|
+
variant: "Heart",
|
|
8689
|
+
size: "small",
|
|
8690
|
+
fill: "var(--color-base-black)"
|
|
8691
|
+
}
|
|
8692
|
+
)
|
|
7982
8693
|
}
|
|
7983
8694
|
)
|
|
7984
|
-
}
|
|
7985
|
-
|
|
7986
|
-
|
|
7987
|
-
/* @__PURE__ */ (0, import_jsx_runtime248.jsxs)(Box_default, { css: contentStyles2, children: [
|
|
7988
|
-
/* @__PURE__ */ (0, import_jsx_runtime248.jsxs)(
|
|
7989
|
-
Box_default,
|
|
7990
|
-
{
|
|
7991
|
-
onClick,
|
|
7992
|
-
display: "flex",
|
|
7993
|
-
flexDirection: "column",
|
|
7994
|
-
gap: "var(--spacing-1)",
|
|
7995
|
-
mb: "var(--spacing-4)",
|
|
7996
|
-
children: [
|
|
7997
|
-
/* @__PURE__ */ (0, import_jsx_runtime248.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime248.jsx)(Text_default, { size: "md", fontWeight: "bold", children: title }) }),
|
|
7998
|
-
/* @__PURE__ */ (0, import_jsx_runtime248.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime248.jsx)(Text_default, { size: "xs", fontWeight: "bold", children: subtitle }) }),
|
|
7999
|
-
/* @__PURE__ */ (0, import_jsx_runtime248.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime248.jsxs)(Text_default, { size: "xs", fontWeight: "normal", children: [
|
|
8000
|
-
"Starting Price ",
|
|
8001
|
-
startingPrice,
|
|
8002
|
-
" / Guest"
|
|
8003
|
-
] }) })
|
|
8004
|
-
]
|
|
8005
|
-
}
|
|
8006
|
-
),
|
|
8007
|
-
/* @__PURE__ */ (0, import_jsx_runtime248.jsxs)(Box_default, { display: "flex", gap: "var(--spacing-3)", alignItems: "center", children: [
|
|
8008
|
-
days && /* @__PURE__ */ (0, import_jsx_runtime248.jsx)(
|
|
8009
|
-
IconLabel_default,
|
|
8010
|
-
{
|
|
8011
|
-
variant: "Calendar",
|
|
8012
|
-
label: `${days} Day${days !== 1 ? "s" : ""}`
|
|
8013
|
-
}
|
|
8014
|
-
),
|
|
8015
|
-
guests && /* @__PURE__ */ (0, import_jsx_runtime248.jsx)(
|
|
8016
|
-
IconLabel_default,
|
|
8695
|
+
] }),
|
|
8696
|
+
/* @__PURE__ */ (0, import_jsx_runtime250.jsxs)(
|
|
8697
|
+
Box_default,
|
|
8017
8698
|
{
|
|
8018
|
-
|
|
8019
|
-
|
|
8699
|
+
css: hasContentBackground ? contentWithBackgroundStyles : contentWithoutBackgroundStyles,
|
|
8700
|
+
children: [
|
|
8701
|
+
/* @__PURE__ */ (0, import_jsx_runtime250.jsxs)(
|
|
8702
|
+
Box_default,
|
|
8703
|
+
{
|
|
8704
|
+
onClick,
|
|
8705
|
+
display: "flex",
|
|
8706
|
+
flexDirection: "column",
|
|
8707
|
+
gap: "var(--spacing-1)",
|
|
8708
|
+
mb: "var(--spacing-1)",
|
|
8709
|
+
children: [
|
|
8710
|
+
/* @__PURE__ */ (0, import_jsx_runtime250.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime250.jsx)(Text_default, { size: "md", fontWeight: "bold", children: title }) }),
|
|
8711
|
+
/* @__PURE__ */ (0, import_jsx_runtime250.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime250.jsx)(Text_default, { size: "sm", fontWeight: "bold", children: subtitle }) }),
|
|
8712
|
+
/* @__PURE__ */ (0, import_jsx_runtime250.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime250.jsxs)(Text_default, { size: "sm", fontWeight: "normal", children: [
|
|
8713
|
+
"Starting Price ",
|
|
8714
|
+
startingPrice,
|
|
8715
|
+
" / Guest"
|
|
8716
|
+
] }) })
|
|
8717
|
+
]
|
|
8718
|
+
}
|
|
8719
|
+
),
|
|
8720
|
+
badges && badges.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime250.jsx)(
|
|
8721
|
+
Box_default,
|
|
8722
|
+
{
|
|
8723
|
+
display: "flex",
|
|
8724
|
+
gap: "var(--spacing-2) var(--spacing-4)",
|
|
8725
|
+
alignItems: "center",
|
|
8726
|
+
flexWrap: "wrap",
|
|
8727
|
+
children: badges.map((badge2, index) => /* @__PURE__ */ (0, import_jsx_runtime250.jsx)(
|
|
8728
|
+
IconLabel_default,
|
|
8729
|
+
{
|
|
8730
|
+
iconSize: badge2.iconSize || "medium",
|
|
8731
|
+
label: badge2.label,
|
|
8732
|
+
variant: badge2.variant
|
|
8733
|
+
},
|
|
8734
|
+
`badge-${badge2.variant}-${index}`
|
|
8735
|
+
))
|
|
8736
|
+
}
|
|
8737
|
+
)
|
|
8738
|
+
]
|
|
8020
8739
|
}
|
|
8021
|
-
)
|
|
8022
|
-
|
|
8023
|
-
|
|
8024
|
-
|
|
8025
|
-
] });
|
|
8740
|
+
)
|
|
8741
|
+
]
|
|
8742
|
+
}
|
|
8743
|
+
);
|
|
8026
8744
|
};
|
|
8027
8745
|
var PackageCard_default = PackageCard;
|
|
8028
8746
|
|
|
8029
8747
|
// src/PackageHeader/PackageHeader.tsx
|
|
8030
|
-
var
|
|
8748
|
+
var import_jsx_runtime251 = require("@emotion/react/jsx-runtime");
|
|
8031
8749
|
var PackageHeader = ({
|
|
8032
8750
|
header,
|
|
8033
8751
|
subheader,
|
|
8034
8752
|
features,
|
|
8035
8753
|
className
|
|
8036
8754
|
}) => {
|
|
8037
|
-
return /* @__PURE__ */ (0,
|
|
8755
|
+
return /* @__PURE__ */ (0, import_jsx_runtime251.jsxs)(
|
|
8038
8756
|
Box_default,
|
|
8039
8757
|
{
|
|
8040
8758
|
display: "flex",
|
|
@@ -8043,9 +8761,9 @@ var PackageHeader = ({
|
|
|
8043
8761
|
color: "var(--text-primary)",
|
|
8044
8762
|
className,
|
|
8045
8763
|
children: [
|
|
8046
|
-
/* @__PURE__ */ (0,
|
|
8047
|
-
subheader && /* @__PURE__ */ (0,
|
|
8048
|
-
features && /* @__PURE__ */ (0,
|
|
8764
|
+
/* @__PURE__ */ (0, import_jsx_runtime251.jsx)(Heading_default, { size: "xs", fontWeight: "bold", children: header }),
|
|
8765
|
+
subheader && /* @__PURE__ */ (0, import_jsx_runtime251.jsx)(Text_default, { children: subheader }),
|
|
8766
|
+
features && /* @__PURE__ */ (0, import_jsx_runtime251.jsx)(FeatureList_default, { items: features })
|
|
8049
8767
|
]
|
|
8050
8768
|
}
|
|
8051
8769
|
);
|
|
@@ -8053,8 +8771,8 @@ var PackageHeader = ({
|
|
|
8053
8771
|
var PackageHeader_default = PackageHeader;
|
|
8054
8772
|
|
|
8055
8773
|
// src/ReviewCard/components/ReviewImages.styles.ts
|
|
8056
|
-
var
|
|
8057
|
-
var imageStyles3 =
|
|
8774
|
+
var import_react55 = require("@emotion/react");
|
|
8775
|
+
var imageStyles3 = import_react55.css`
|
|
8058
8776
|
flex: 1;
|
|
8059
8777
|
min-width: 0;
|
|
8060
8778
|
max-width: 100%;
|
|
@@ -8065,13 +8783,13 @@ var imageStyles3 = import_react47.css`
|
|
|
8065
8783
|
`;
|
|
8066
8784
|
|
|
8067
8785
|
// src/ReviewCard/components/ReviewImages.tsx
|
|
8068
|
-
var
|
|
8786
|
+
var import_jsx_runtime252 = require("@emotion/react/jsx-runtime");
|
|
8069
8787
|
var ReviewImages = ({ images, maxImages = 3 }) => {
|
|
8070
8788
|
const displayImages = images.slice(0, maxImages);
|
|
8071
8789
|
if (displayImages.length === 0) {
|
|
8072
8790
|
return null;
|
|
8073
8791
|
}
|
|
8074
|
-
return /* @__PURE__ */ (0,
|
|
8792
|
+
return /* @__PURE__ */ (0, import_jsx_runtime252.jsx)(Box_default, { display: "flex", gap: "var(--spacing-2)", flexWrap: "wrap", children: displayImages.map((image, index) => /* @__PURE__ */ (0, import_jsx_runtime252.jsx)(
|
|
8075
8793
|
"img",
|
|
8076
8794
|
{
|
|
8077
8795
|
src: image,
|
|
@@ -8084,7 +8802,7 @@ var ReviewImages = ({ images, maxImages = 3 }) => {
|
|
|
8084
8802
|
var ReviewImages_default = ReviewImages;
|
|
8085
8803
|
|
|
8086
8804
|
// src/ReviewCard/components/ReviewReply.tsx
|
|
8087
|
-
var
|
|
8805
|
+
var import_jsx_runtime253 = require("@emotion/react/jsx-runtime");
|
|
8088
8806
|
var ReviewReply = ({
|
|
8089
8807
|
avatarSrc,
|
|
8090
8808
|
name,
|
|
@@ -8093,7 +8811,7 @@ var ReviewReply = ({
|
|
|
8093
8811
|
label,
|
|
8094
8812
|
rating
|
|
8095
8813
|
}) => {
|
|
8096
|
-
return /* @__PURE__ */ (0,
|
|
8814
|
+
return /* @__PURE__ */ (0, import_jsx_runtime253.jsxs)(
|
|
8097
8815
|
Box_default,
|
|
8098
8816
|
{
|
|
8099
8817
|
backgroundColor: "var(--surface-neutral)",
|
|
@@ -8103,7 +8821,7 @@ var ReviewReply = ({
|
|
|
8103
8821
|
flexDirection: "column",
|
|
8104
8822
|
gap: "var(--spacing-3)",
|
|
8105
8823
|
children: [
|
|
8106
|
-
/* @__PURE__ */ (0,
|
|
8824
|
+
/* @__PURE__ */ (0, import_jsx_runtime253.jsxs)(
|
|
8107
8825
|
Box_default,
|
|
8108
8826
|
{
|
|
8109
8827
|
display: "flex",
|
|
@@ -8111,7 +8829,7 @@ var ReviewReply = ({
|
|
|
8111
8829
|
justifyContent: "space-between",
|
|
8112
8830
|
gap: "var(--spacing-2)",
|
|
8113
8831
|
children: [
|
|
8114
|
-
/* @__PURE__ */ (0,
|
|
8832
|
+
/* @__PURE__ */ (0, import_jsx_runtime253.jsx)(
|
|
8115
8833
|
UserCard_default,
|
|
8116
8834
|
{
|
|
8117
8835
|
avatarSrc,
|
|
@@ -8120,11 +8838,11 @@ var ReviewReply = ({
|
|
|
8120
8838
|
rating
|
|
8121
8839
|
}
|
|
8122
8840
|
),
|
|
8123
|
-
/* @__PURE__ */ (0,
|
|
8841
|
+
/* @__PURE__ */ (0, import_jsx_runtime253.jsx)(AvailabilityBadge_default, { variant: "neutral", children: label })
|
|
8124
8842
|
]
|
|
8125
8843
|
}
|
|
8126
8844
|
),
|
|
8127
|
-
/* @__PURE__ */ (0,
|
|
8845
|
+
/* @__PURE__ */ (0, import_jsx_runtime253.jsx)(Text_default, { children: content })
|
|
8128
8846
|
]
|
|
8129
8847
|
}
|
|
8130
8848
|
);
|
|
@@ -8132,7 +8850,7 @@ var ReviewReply = ({
|
|
|
8132
8850
|
var ReviewReply_default = ReviewReply;
|
|
8133
8851
|
|
|
8134
8852
|
// src/ReviewCard/ReviewCard.tsx
|
|
8135
|
-
var
|
|
8853
|
+
var import_jsx_runtime254 = require("@emotion/react/jsx-runtime");
|
|
8136
8854
|
var ReviewCard = ({
|
|
8137
8855
|
avatarSrc,
|
|
8138
8856
|
name,
|
|
@@ -8144,7 +8862,7 @@ var ReviewCard = ({
|
|
|
8144
8862
|
replies = [],
|
|
8145
8863
|
className
|
|
8146
8864
|
}) => {
|
|
8147
|
-
return /* @__PURE__ */ (0,
|
|
8865
|
+
return /* @__PURE__ */ (0, import_jsx_runtime254.jsxs)(
|
|
8148
8866
|
Box_default,
|
|
8149
8867
|
{
|
|
8150
8868
|
backgroundColor: "white",
|
|
@@ -8155,7 +8873,7 @@ var ReviewCard = ({
|
|
|
8155
8873
|
gap: "var(--spacing-4)",
|
|
8156
8874
|
className,
|
|
8157
8875
|
children: [
|
|
8158
|
-
/* @__PURE__ */ (0,
|
|
8876
|
+
/* @__PURE__ */ (0, import_jsx_runtime254.jsx)(
|
|
8159
8877
|
UserCard_default,
|
|
8160
8878
|
{
|
|
8161
8879
|
avatarSrc,
|
|
@@ -8164,10 +8882,10 @@ var ReviewCard = ({
|
|
|
8164
8882
|
rating
|
|
8165
8883
|
}
|
|
8166
8884
|
),
|
|
8167
|
-
availabilityBadge && /* @__PURE__ */ (0,
|
|
8168
|
-
/* @__PURE__ */ (0,
|
|
8169
|
-
images.length > 0 && /* @__PURE__ */ (0,
|
|
8170
|
-
replies.length > 0 && /* @__PURE__ */ (0,
|
|
8885
|
+
availabilityBadge && /* @__PURE__ */ (0, import_jsx_runtime254.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime254.jsx)(AvailabilityBadge_default, { variant: availabilityBadge.variant, children: availabilityBadge.text }) }),
|
|
8886
|
+
/* @__PURE__ */ (0, import_jsx_runtime254.jsx)(Text_default, { size: "md", children: content }),
|
|
8887
|
+
images.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime254.jsx)(ReviewImages_default, { images }),
|
|
8888
|
+
replies.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime254.jsx)(Box_default, { display: "flex", flexDirection: "column", gap: "var(--spacing-3)", children: replies.map((reply, index) => /* @__PURE__ */ (0, import_jsx_runtime254.jsx)(
|
|
8171
8889
|
ReviewReply_default,
|
|
8172
8890
|
{
|
|
8173
8891
|
avatarSrc: reply.avatarSrc,
|
|
@@ -8186,12 +8904,12 @@ var ReviewCard = ({
|
|
|
8186
8904
|
var ReviewCard_default = ReviewCard;
|
|
8187
8905
|
|
|
8188
8906
|
// src/Reviews/Reviews.tsx
|
|
8189
|
-
var
|
|
8907
|
+
var import_react56 = require("@emotion/react");
|
|
8190
8908
|
|
|
8191
8909
|
// src/Reviews/components/ReviewItem.tsx
|
|
8192
|
-
var
|
|
8910
|
+
var import_jsx_runtime255 = require("@emotion/react/jsx-runtime");
|
|
8193
8911
|
var ReviewItem = ({ label, rating }) => {
|
|
8194
|
-
return /* @__PURE__ */ (0,
|
|
8912
|
+
return /* @__PURE__ */ (0, import_jsx_runtime255.jsxs)(
|
|
8195
8913
|
Box_default,
|
|
8196
8914
|
{
|
|
8197
8915
|
display: "flex",
|
|
@@ -8199,10 +8917,10 @@ var ReviewItem = ({ label, rating }) => {
|
|
|
8199
8917
|
alignItems: "center",
|
|
8200
8918
|
width: "100%",
|
|
8201
8919
|
children: [
|
|
8202
|
-
/* @__PURE__ */ (0,
|
|
8203
|
-
/* @__PURE__ */ (0,
|
|
8204
|
-
/* @__PURE__ */ (0,
|
|
8205
|
-
/* @__PURE__ */ (0,
|
|
8920
|
+
/* @__PURE__ */ (0, import_jsx_runtime255.jsx)(Text_default, { fontWeight: "semibold", children: label }),
|
|
8921
|
+
/* @__PURE__ */ (0, import_jsx_runtime255.jsxs)(Box_default, { display: "flex", alignItems: "center", gap: "var(--spacing-2)", children: [
|
|
8922
|
+
/* @__PURE__ */ (0, import_jsx_runtime255.jsx)(Icon_default, { variant: "StarSolid", size: "large", fill: "var(--surface-action-2)" }),
|
|
8923
|
+
/* @__PURE__ */ (0, import_jsx_runtime255.jsxs)(Text_default, { fontWeight: "semibold", children: [
|
|
8206
8924
|
rating,
|
|
8207
8925
|
"/5"
|
|
8208
8926
|
] })
|
|
@@ -8214,14 +8932,14 @@ var ReviewItem = ({ label, rating }) => {
|
|
|
8214
8932
|
var ReviewItem_default = ReviewItem;
|
|
8215
8933
|
|
|
8216
8934
|
// src/Reviews/Reviews.tsx
|
|
8217
|
-
var
|
|
8935
|
+
var import_jsx_runtime256 = require("@emotion/react/jsx-runtime");
|
|
8218
8936
|
var Reviews = ({
|
|
8219
8937
|
averageRating,
|
|
8220
8938
|
totalReviews,
|
|
8221
8939
|
items,
|
|
8222
8940
|
className
|
|
8223
8941
|
}) => {
|
|
8224
|
-
return /* @__PURE__ */ (0,
|
|
8942
|
+
return /* @__PURE__ */ (0, import_jsx_runtime256.jsxs)(
|
|
8225
8943
|
Box_default,
|
|
8226
8944
|
{
|
|
8227
8945
|
width: "100%",
|
|
@@ -8234,7 +8952,7 @@ var Reviews = ({
|
|
|
8234
8952
|
p: "var(--spacing-4)",
|
|
8235
8953
|
className,
|
|
8236
8954
|
children: [
|
|
8237
|
-
/* @__PURE__ */ (0,
|
|
8955
|
+
/* @__PURE__ */ (0, import_jsx_runtime256.jsxs)(
|
|
8238
8956
|
Box_default,
|
|
8239
8957
|
{
|
|
8240
8958
|
display: "flex",
|
|
@@ -8242,12 +8960,12 @@ var Reviews = ({
|
|
|
8242
8960
|
alignItems: "center",
|
|
8243
8961
|
gap: "var(--spacing-2)",
|
|
8244
8962
|
children: [
|
|
8245
|
-
/* @__PURE__ */ (0,
|
|
8246
|
-
/* @__PURE__ */ (0,
|
|
8963
|
+
/* @__PURE__ */ (0, import_jsx_runtime256.jsx)(Heading_default, { size: "sm", fontWeight: "bold", color: "text-primary", children: averageRating.toFixed(1) }),
|
|
8964
|
+
/* @__PURE__ */ (0, import_jsx_runtime256.jsx)(
|
|
8247
8965
|
StarRating_default,
|
|
8248
8966
|
{
|
|
8249
8967
|
rating: Math.floor(averageRating),
|
|
8250
|
-
css:
|
|
8968
|
+
css: import_react56.css`
|
|
8251
8969
|
> svg {
|
|
8252
8970
|
height: 40px;
|
|
8253
8971
|
width: 40px;
|
|
@@ -8255,7 +8973,7 @@ var Reviews = ({
|
|
|
8255
8973
|
`
|
|
8256
8974
|
}
|
|
8257
8975
|
),
|
|
8258
|
-
/* @__PURE__ */ (0,
|
|
8976
|
+
/* @__PURE__ */ (0, import_jsx_runtime256.jsxs)(Text_default, { size: "sm", color: "text-secondary", children: [
|
|
8259
8977
|
"Overall Rating \u2022 ",
|
|
8260
8978
|
totalReviews,
|
|
8261
8979
|
" Review",
|
|
@@ -8264,14 +8982,14 @@ var Reviews = ({
|
|
|
8264
8982
|
]
|
|
8265
8983
|
}
|
|
8266
8984
|
),
|
|
8267
|
-
/* @__PURE__ */ (0,
|
|
8985
|
+
/* @__PURE__ */ (0, import_jsx_runtime256.jsx)(
|
|
8268
8986
|
Box_default,
|
|
8269
8987
|
{
|
|
8270
8988
|
display: "flex",
|
|
8271
8989
|
flexDirection: "column",
|
|
8272
8990
|
gap: "var(--spacing-2)",
|
|
8273
8991
|
width: "100%",
|
|
8274
|
-
children: items.map((item, index) => /* @__PURE__ */ (0,
|
|
8992
|
+
children: items.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime256.jsx)(ReviewItem_default, { label: item.label, rating: item.rating }, index))
|
|
8275
8993
|
}
|
|
8276
8994
|
)
|
|
8277
8995
|
]
|
|
@@ -8281,7 +8999,7 @@ var Reviews = ({
|
|
|
8281
8999
|
var Reviews_default = Reviews;
|
|
8282
9000
|
|
|
8283
9001
|
// src/Reviews/ReviewsShowcase.tsx
|
|
8284
|
-
var
|
|
9002
|
+
var import_jsx_runtime257 = require("@emotion/react/jsx-runtime");
|
|
8285
9003
|
var ReviewsShowcase = () => {
|
|
8286
9004
|
const sampleData = {
|
|
8287
9005
|
averageRating: 4,
|
|
@@ -8303,7 +9021,7 @@ var ReviewsShowcase = () => {
|
|
|
8303
9021
|
{ label: "Game Abundance", rating: 5 }
|
|
8304
9022
|
]
|
|
8305
9023
|
};
|
|
8306
|
-
return /* @__PURE__ */ (0,
|
|
9024
|
+
return /* @__PURE__ */ (0, import_jsx_runtime257.jsxs)(
|
|
8307
9025
|
Box_default,
|
|
8308
9026
|
{
|
|
8309
9027
|
display: "flex",
|
|
@@ -8311,24 +9029,24 @@ var ReviewsShowcase = () => {
|
|
|
8311
9029
|
gap: "var(--spacing-8)",
|
|
8312
9030
|
p: "var(--spacing-6)",
|
|
8313
9031
|
children: [
|
|
8314
|
-
/* @__PURE__ */ (0,
|
|
8315
|
-
/* @__PURE__ */ (0,
|
|
8316
|
-
/* @__PURE__ */ (0,
|
|
8317
|
-
/* @__PURE__ */ (0,
|
|
9032
|
+
/* @__PURE__ */ (0, import_jsx_runtime257.jsx)(Heading_default, { size: "lg", children: "Reviews Component Showcase" }),
|
|
9033
|
+
/* @__PURE__ */ (0, import_jsx_runtime257.jsxs)(Box_default, { display: "flex", flexDirection: "column", gap: "var(--spacing-4)", children: [
|
|
9034
|
+
/* @__PURE__ */ (0, import_jsx_runtime257.jsx)(Heading_default, { size: "md", children: "Default Reviews" }),
|
|
9035
|
+
/* @__PURE__ */ (0, import_jsx_runtime257.jsx)(Box_default, { maxWidth: "400px", children: /* @__PURE__ */ (0, import_jsx_runtime257.jsx)(Reviews_default, { ...sampleData }) })
|
|
8318
9036
|
] }),
|
|
8319
|
-
/* @__PURE__ */ (0,
|
|
8320
|
-
/* @__PURE__ */ (0,
|
|
8321
|
-
/* @__PURE__ */ (0,
|
|
9037
|
+
/* @__PURE__ */ (0, import_jsx_runtime257.jsxs)(Box_default, { display: "flex", flexDirection: "column", gap: "var(--spacing-4)", children: [
|
|
9038
|
+
/* @__PURE__ */ (0, import_jsx_runtime257.jsx)(Heading_default, { size: "md", children: "High Rating Reviews" }),
|
|
9039
|
+
/* @__PURE__ */ (0, import_jsx_runtime257.jsx)(Box_default, { maxWidth: "400px", children: /* @__PURE__ */ (0, import_jsx_runtime257.jsx)(Reviews_default, { ...highRatingData }) })
|
|
8322
9040
|
] }),
|
|
8323
|
-
/* @__PURE__ */ (0,
|
|
8324
|
-
/* @__PURE__ */ (0,
|
|
8325
|
-
/* @__PURE__ */ (0,
|
|
9041
|
+
/* @__PURE__ */ (0, import_jsx_runtime257.jsxs)(Box_default, { display: "flex", flexDirection: "column", gap: "var(--spacing-4)", children: [
|
|
9042
|
+
/* @__PURE__ */ (0, import_jsx_runtime257.jsx)(Heading_default, { size: "md", children: "Mobile Layout (320px width)" }),
|
|
9043
|
+
/* @__PURE__ */ (0, import_jsx_runtime257.jsx)(
|
|
8326
9044
|
Box_default,
|
|
8327
9045
|
{
|
|
8328
9046
|
maxWidth: "320px",
|
|
8329
9047
|
border: "1px solid var(--color-neutral-200)",
|
|
8330
9048
|
p: "var(--spacing-4)",
|
|
8331
|
-
children: /* @__PURE__ */ (0,
|
|
9049
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime257.jsx)(Reviews_default, { ...sampleData })
|
|
8332
9050
|
}
|
|
8333
9051
|
)
|
|
8334
9052
|
] })
|
|
@@ -8374,6 +9092,8 @@ var ReviewsShowcase_default = ReviewsShowcase;
|
|
|
8374
9092
|
ReviewCard,
|
|
8375
9093
|
Reviews,
|
|
8376
9094
|
ReviewsShowcase,
|
|
9095
|
+
ScrollingCarousel,
|
|
9096
|
+
ScrollingCarouselStep,
|
|
8377
9097
|
Select,
|
|
8378
9098
|
Spinner,
|
|
8379
9099
|
StarRating,
|