@landtrustinc/design-system 1.2.21 → 1.2.23
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 +858 -146
- 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
|
]
|
|
@@ -5542,8 +5544,8 @@ var useWidgetContext = () => {
|
|
|
5542
5544
|
return ctx;
|
|
5543
5545
|
};
|
|
5544
5546
|
var WidgetTrigger = () => {
|
|
5545
|
-
const { expanded, toggle, triggerRef, icon, expandedIcon } = useWidgetContext();
|
|
5546
|
-
const currentIcon = expanded ? expandedIcon :
|
|
5547
|
+
const { expanded, toggle, triggerRef, icon: icon2, expandedIcon } = useWidgetContext();
|
|
5548
|
+
const currentIcon = expanded ? expandedIcon : icon2;
|
|
5547
5549
|
return /* @__PURE__ */ (0, import_jsx_runtime223.jsx)(import_jsx_runtime223.Fragment, { children: /* @__PURE__ */ (0, import_jsx_runtime223.jsx)(
|
|
5548
5550
|
Button_default,
|
|
5549
5551
|
{
|
|
@@ -5574,7 +5576,7 @@ var WidgetPanel = ({ className, style, children }) => {
|
|
|
5574
5576
|
};
|
|
5575
5577
|
var WidgetRoot = ({
|
|
5576
5578
|
ariaLabel,
|
|
5577
|
-
icon = "Plus",
|
|
5579
|
+
icon: icon2 = "Plus",
|
|
5578
5580
|
expandedIcon = "Xmark",
|
|
5579
5581
|
defaultExpanded = false,
|
|
5580
5582
|
expanded,
|
|
@@ -5637,11 +5639,11 @@ var WidgetRoot = ({
|
|
|
5637
5639
|
expanded: isExpanded,
|
|
5638
5640
|
toggle,
|
|
5639
5641
|
triggerRef,
|
|
5640
|
-
icon,
|
|
5642
|
+
icon: icon2,
|
|
5641
5643
|
expandedIcon,
|
|
5642
5644
|
panelWidth: panelWidth != null ? panelWidth : 480
|
|
5643
5645
|
}),
|
|
5644
|
-
[expandedIcon,
|
|
5646
|
+
[expandedIcon, icon2, isExpanded, panelWidth, toggle]
|
|
5645
5647
|
);
|
|
5646
5648
|
return /* @__PURE__ */ (0, import_jsx_runtime223.jsx)(
|
|
5647
5649
|
Box_default,
|
|
@@ -7876,55 +7878,686 @@ var Navigation = ({
|
|
|
7876
7878
|
};
|
|
7877
7879
|
var Navigation_default = Navigation;
|
|
7878
7880
|
|
|
7881
|
+
// src/ScrollingCarousel/components/ScrollingCarouselStep.tsx
|
|
7882
|
+
var import_react48 = require("react");
|
|
7883
|
+
var import_react_intersection_observer = require("react-intersection-observer");
|
|
7884
|
+
|
|
7885
|
+
// src/ScrollingCarousel/context/CarouselContext.tsx
|
|
7886
|
+
var import_react46 = __toESM(require("react"));
|
|
7887
|
+
var CarouselContext = import_react46.default.createContext(
|
|
7888
|
+
null
|
|
7889
|
+
);
|
|
7890
|
+
|
|
7891
|
+
// src/ScrollingCarousel/ScrollingCarousel.styles.ts
|
|
7892
|
+
var import_react47 = require("@emotion/react");
|
|
7893
|
+
var carouselRoot = import_react47.css`
|
|
7894
|
+
position: relative;
|
|
7895
|
+
`;
|
|
7896
|
+
var carousel = import_react47.css`
|
|
7897
|
+
display: flex;
|
|
7898
|
+
overflow-y: hidden;
|
|
7899
|
+
overflow-x: scroll;
|
|
7900
|
+
scroll-snap-type: x mandatory;
|
|
7901
|
+
-ms-overflow-style: none;
|
|
7902
|
+
scrollbar-width: none;
|
|
7903
|
+
|
|
7904
|
+
&::-webkit-scrollbar {
|
|
7905
|
+
display: none;
|
|
7906
|
+
}
|
|
7907
|
+
`;
|
|
7908
|
+
var step = import_react47.css`
|
|
7909
|
+
scroll-snap-align: center;
|
|
7910
|
+
flex-basis: 100%;
|
|
7911
|
+
flex-shrink: 0;
|
|
7912
|
+
|
|
7913
|
+
&:last-child {
|
|
7914
|
+
margin-right: 0;
|
|
7915
|
+
}
|
|
7916
|
+
|
|
7917
|
+
@media (min-width: 768px) {
|
|
7918
|
+
flex-basis: 100%;
|
|
7919
|
+
}
|
|
7920
|
+
`;
|
|
7921
|
+
var controls = (position2) => import_react47.css`
|
|
7922
|
+
${(position2 === "left-right" || position2 === "top-right") && `
|
|
7923
|
+
display: none;
|
|
7924
|
+
|
|
7925
|
+
@media (min-width: 768px) {
|
|
7926
|
+
display: block;
|
|
7927
|
+
}
|
|
7928
|
+
`}
|
|
7929
|
+
`;
|
|
7930
|
+
var iconWrapper = import_react47.css`
|
|
7931
|
+
display: flex;
|
|
7932
|
+
width: var(--spacing-7);
|
|
7933
|
+
height: var(--spacing-7);
|
|
7934
|
+
border-radius: 50%;
|
|
7935
|
+
background: var(--color-base-white);
|
|
7936
|
+
align-items: center;
|
|
7937
|
+
justify-content: center;
|
|
7938
|
+
box-shadow: var(--shadow-md);
|
|
7939
|
+
`;
|
|
7940
|
+
var button = (position2) => import_react47.css`
|
|
7941
|
+
background: transparent;
|
|
7942
|
+
border-color: transparent;
|
|
7943
|
+
outline: none;
|
|
7944
|
+
cursor: pointer;
|
|
7945
|
+
z-index: 15;
|
|
7946
|
+
position: absolute;
|
|
7947
|
+
opacity: 0.9;
|
|
7948
|
+
transition: transform 0.3s ease, opacity 0.3s ease;
|
|
7949
|
+
|
|
7950
|
+
${position2 === "left-right" && `
|
|
7951
|
+
top: calc(50% - (var(--spacing-12) / 2));
|
|
7952
|
+
`}
|
|
7953
|
+
|
|
7954
|
+
${position2 === "bottom" && `
|
|
7955
|
+
top: calc(100% + var(--spacing-4));
|
|
7956
|
+
|
|
7957
|
+
@media (min-width: 768px) {
|
|
7958
|
+
top: calc(100% + var(--spacing-8));
|
|
7959
|
+
}
|
|
7960
|
+
`}
|
|
7961
|
+
|
|
7962
|
+
${position2 === "top-right" && `
|
|
7963
|
+
top: calc(-1 * var(--spacing-24));
|
|
7964
|
+
`}
|
|
7965
|
+
|
|
7966
|
+
${position2 === "inner-bottom" && `
|
|
7967
|
+
bottom: calc(-1 * var(--spacing-1));
|
|
7968
|
+
`}
|
|
7969
|
+
`;
|
|
7970
|
+
var buttonLeft = (position2) => import_react47.css`
|
|
7971
|
+
${button(position2)}
|
|
7972
|
+
|
|
7973
|
+
${position2 === "left-right" && `
|
|
7974
|
+
left: 0;
|
|
7975
|
+
`}
|
|
7976
|
+
|
|
7977
|
+
${position2 === "bottom" && `
|
|
7978
|
+
left: calc(50% - var(--spacing-14));
|
|
7979
|
+
`}
|
|
7980
|
+
|
|
7981
|
+
${position2 === "top-right" && `
|
|
7982
|
+
right: 60px;
|
|
7983
|
+
padding: 0;
|
|
7984
|
+
`}
|
|
7985
|
+
|
|
7986
|
+
${position2 === "inner-bottom" && `
|
|
7987
|
+
left: calc(50% - var(--spacing-16));
|
|
7988
|
+
`}
|
|
7989
|
+
`;
|
|
7990
|
+
var customButtonLeft = (position2) => import_react47.css`
|
|
7991
|
+
${button(position2)}
|
|
7992
|
+
|
|
7993
|
+
${position2 === "left-right" && `
|
|
7994
|
+
left: 0;
|
|
7995
|
+
`}
|
|
7996
|
+
|
|
7997
|
+
${position2 === "bottom" && `
|
|
7998
|
+
left: calc(50% - var(--spacing-14));
|
|
7999
|
+
`}
|
|
8000
|
+
|
|
8001
|
+
${position2 === "top-right" && `
|
|
8002
|
+
right: var(--spacing-10);
|
|
8003
|
+
padding: 0;
|
|
8004
|
+
`}
|
|
8005
|
+
|
|
8006
|
+
${position2 === "inner-bottom" && `
|
|
8007
|
+
left: calc(50% - var(--spacing-16));
|
|
8008
|
+
`}
|
|
8009
|
+
`;
|
|
8010
|
+
var buttonRight = (position2) => import_react47.css`
|
|
8011
|
+
${button(position2)}
|
|
8012
|
+
|
|
8013
|
+
${position2 === "left-right" && `
|
|
8014
|
+
right: 0;
|
|
8015
|
+
`}
|
|
8016
|
+
|
|
8017
|
+
${position2 === "bottom" && `
|
|
8018
|
+
right: calc(50% - var(--spacing-14));
|
|
8019
|
+
`}
|
|
8020
|
+
|
|
8021
|
+
${position2 === "top-right" && `
|
|
8022
|
+
right: 0;
|
|
8023
|
+
padding: 0;
|
|
8024
|
+
`}
|
|
8025
|
+
|
|
8026
|
+
${position2 === "inner-bottom" && `
|
|
8027
|
+
right: calc(50% - var(--spacing-16));
|
|
8028
|
+
`}
|
|
8029
|
+
`;
|
|
8030
|
+
var icon = import_react47.css`
|
|
8031
|
+
width: var(--spacing-3);
|
|
8032
|
+
height: var(--spacing-3);
|
|
8033
|
+
color: var(--color-base-black);
|
|
8034
|
+
`;
|
|
8035
|
+
var dots = import_react47.css`
|
|
8036
|
+
position: absolute;
|
|
8037
|
+
bottom: var(--spacing-2);
|
|
8038
|
+
left: 0;
|
|
8039
|
+
right: 0;
|
|
8040
|
+
z-index: 10;
|
|
8041
|
+
display: flex;
|
|
8042
|
+
align-items: center;
|
|
8043
|
+
justify-content: center;
|
|
8044
|
+
`;
|
|
8045
|
+
var dotsInner = import_react47.css`
|
|
8046
|
+
display: flex;
|
|
8047
|
+
overflow: hidden;
|
|
8048
|
+
`;
|
|
8049
|
+
var dot = (dotsColor) => import_react47.css`
|
|
8050
|
+
position: relative;
|
|
8051
|
+
flex-shrink: 0;
|
|
8052
|
+
flex-grow: 0;
|
|
8053
|
+
transition: transform 500ms;
|
|
8054
|
+
background-color: transparent;
|
|
8055
|
+
border: 0;
|
|
8056
|
+
display: flex;
|
|
8057
|
+
align-items: center;
|
|
8058
|
+
justify-content: center;
|
|
8059
|
+
padding: 0;
|
|
8060
|
+
cursor: pointer;
|
|
8061
|
+
|
|
8062
|
+
&::after {
|
|
8063
|
+
content: '';
|
|
8064
|
+
display: block;
|
|
8065
|
+
position: absolute;
|
|
8066
|
+
top: 50%;
|
|
8067
|
+
left: 50%;
|
|
8068
|
+
height: 8px;
|
|
8069
|
+
width: 8px;
|
|
8070
|
+
border-radius: 50%;
|
|
8071
|
+
transition: opacity 500ms, transform 500ms;
|
|
8072
|
+
opacity: 0.75;
|
|
8073
|
+
transform: translate(-50%, -50%);
|
|
8074
|
+
|
|
8075
|
+
${dotsColor === "light" && `
|
|
8076
|
+
background-color: var(--color-base-white);
|
|
8077
|
+
`}
|
|
8078
|
+
|
|
8079
|
+
${dotsColor === "dark" && `
|
|
8080
|
+
background-color: var(--color-base-black);
|
|
8081
|
+
`}
|
|
8082
|
+
|
|
8083
|
+
${dotsColor === "neutral" && `
|
|
8084
|
+
background-color: var(--color-neutral-500);
|
|
8085
|
+
`}
|
|
8086
|
+
}
|
|
8087
|
+
`;
|
|
8088
|
+
var dotDistance2 = import_react47.css`
|
|
8089
|
+
&::after {
|
|
8090
|
+
transform: translate(-50%, -50%) scale(0.9);
|
|
8091
|
+
}
|
|
8092
|
+
`;
|
|
8093
|
+
var dotDistance3 = import_react47.css`
|
|
8094
|
+
&::after {
|
|
8095
|
+
transform: translate(-50%, -50%) scale(0.8);
|
|
8096
|
+
}
|
|
8097
|
+
`;
|
|
8098
|
+
var dotDistanceGreaterThan3 = import_react47.css`
|
|
8099
|
+
&::after {
|
|
8100
|
+
transform: translate(-50%, -50%) scale(0.7);
|
|
8101
|
+
}
|
|
8102
|
+
`;
|
|
8103
|
+
var dotVisible = import_react47.css`
|
|
8104
|
+
&::after {
|
|
8105
|
+
opacity: 1;
|
|
8106
|
+
transform: translate(-50%, -50%) scale(1.2);
|
|
8107
|
+
}
|
|
8108
|
+
`;
|
|
8109
|
+
|
|
8110
|
+
// src/ScrollingCarousel/components/ScrollingCarouselStep.tsx
|
|
8111
|
+
var import_jsx_runtime248 = require("@emotion/react/jsx-runtime");
|
|
8112
|
+
var ScrollingCarouselStep = ({
|
|
8113
|
+
children,
|
|
8114
|
+
index,
|
|
8115
|
+
className,
|
|
8116
|
+
parentId,
|
|
8117
|
+
onClick
|
|
8118
|
+
}) => {
|
|
8119
|
+
const context = (0, import_react48.useContext)(CarouselContext);
|
|
8120
|
+
if (!context) {
|
|
8121
|
+
throw new Error(
|
|
8122
|
+
"ScrollingCarouselStep must be used within ScrollingCarousel"
|
|
8123
|
+
);
|
|
8124
|
+
}
|
|
8125
|
+
const { carousel: carousel2, dispatch } = context;
|
|
8126
|
+
const [ref, inView] = (0, import_react_intersection_observer.useInView)({
|
|
8127
|
+
threshold: 0.75,
|
|
8128
|
+
root: carousel2.current
|
|
8129
|
+
});
|
|
8130
|
+
(0, import_react48.useEffect)(() => {
|
|
8131
|
+
if (typeof index !== "undefined") {
|
|
8132
|
+
dispatch({
|
|
8133
|
+
type: "set_child_visibility",
|
|
8134
|
+
payload: { index, visible: inView }
|
|
8135
|
+
});
|
|
8136
|
+
}
|
|
8137
|
+
}, [inView, index, dispatch]);
|
|
8138
|
+
const dataStep = { [`data-step-${parentId}`]: index };
|
|
8139
|
+
return /* @__PURE__ */ (0, import_jsx_runtime248.jsx)(
|
|
8140
|
+
"div",
|
|
8141
|
+
{
|
|
8142
|
+
ref,
|
|
8143
|
+
css: step,
|
|
8144
|
+
className,
|
|
8145
|
+
...dataStep,
|
|
8146
|
+
onClick,
|
|
8147
|
+
role: "group",
|
|
8148
|
+
"aria-roledescription": "slide",
|
|
8149
|
+
children
|
|
8150
|
+
}
|
|
8151
|
+
);
|
|
8152
|
+
};
|
|
8153
|
+
ScrollingCarouselStep.displayName = "ScrollingCarouselStep";
|
|
8154
|
+
|
|
8155
|
+
// src/ScrollingCarousel/ScrollingCarousel.tsx
|
|
8156
|
+
var import_react52 = __toESM(require("react"));
|
|
8157
|
+
|
|
8158
|
+
// src/ScrollingCarousel/hooks/useCarouselDots.ts
|
|
8159
|
+
var import_react49 = require("react");
|
|
8160
|
+
|
|
8161
|
+
// src/ScrollingCarousel/ScrollingCarousel.helpers.ts
|
|
8162
|
+
var childVisibilityReducer = (state, action) => {
|
|
8163
|
+
switch (action.type) {
|
|
8164
|
+
case "set_child_visibility": {
|
|
8165
|
+
const newChildVisibility = [...state.childVisibility];
|
|
8166
|
+
newChildVisibility[action.payload.index] = action.payload.visible;
|
|
8167
|
+
return {
|
|
8168
|
+
childVisibility: newChildVisibility
|
|
8169
|
+
};
|
|
8170
|
+
}
|
|
8171
|
+
default:
|
|
8172
|
+
return state;
|
|
8173
|
+
}
|
|
8174
|
+
};
|
|
8175
|
+
var calculateDotOffset = (dotIndex, visualPositionIndex, dotWidth, dotMovementNeeded) => {
|
|
8176
|
+
return (dotIndex + visualPositionIndex) * dotWidth - dotMovementNeeded * dotWidth;
|
|
8177
|
+
};
|
|
8178
|
+
var calculateDotDistances = (childVisibility, centerDotIndex) => {
|
|
8179
|
+
return childVisibility.map((_, i) => Math.abs(centerDotIndex - i));
|
|
8180
|
+
};
|
|
8181
|
+
|
|
8182
|
+
// src/ScrollingCarousel/hooks/useCarouselDots.ts
|
|
8183
|
+
var useCarouselDots = ({
|
|
8184
|
+
childVisibility,
|
|
8185
|
+
firstVisibleIndex,
|
|
8186
|
+
lastVisibleIndex,
|
|
8187
|
+
anyItemsVisible,
|
|
8188
|
+
numberOfDots
|
|
8189
|
+
}) => {
|
|
8190
|
+
const dotOffset = (0, import_react49.useRef)(0);
|
|
8191
|
+
const dotWidth = 12;
|
|
8192
|
+
const totalDots = childVisibility.length;
|
|
8193
|
+
const dotToCenterIndex = Math.round(
|
|
8194
|
+
(firstVisibleIndex + lastVisibleIndex) / 2
|
|
8195
|
+
);
|
|
8196
|
+
const dotMovementNeeded = Math.round(numberOfDots / 2) + 1;
|
|
8197
|
+
const centerDotNearStart = dotToCenterIndex < dotMovementNeeded - 1;
|
|
8198
|
+
const centerDotNearEnd = dotToCenterIndex > totalDots - dotMovementNeeded;
|
|
8199
|
+
if (anyItemsVisible) {
|
|
8200
|
+
if (centerDotNearStart) {
|
|
8201
|
+
dotOffset.current = 0;
|
|
8202
|
+
} else if (centerDotNearEnd) {
|
|
8203
|
+
dotOffset.current = dotWidth * (totalDots - numberOfDots);
|
|
8204
|
+
} else {
|
|
8205
|
+
dotOffset.current = calculateDotOffset(
|
|
8206
|
+
dotToCenterIndex,
|
|
8207
|
+
2,
|
|
8208
|
+
dotWidth,
|
|
8209
|
+
dotMovementNeeded
|
|
8210
|
+
);
|
|
8211
|
+
}
|
|
8212
|
+
}
|
|
8213
|
+
const dotDistances = calculateDotDistances(childVisibility, dotToCenterIndex);
|
|
8214
|
+
return {
|
|
8215
|
+
dotOffset,
|
|
8216
|
+
dotDistances,
|
|
8217
|
+
dotWidth
|
|
8218
|
+
};
|
|
8219
|
+
};
|
|
8220
|
+
|
|
8221
|
+
// src/ScrollingCarousel/hooks/useCarouselNavigation.ts
|
|
8222
|
+
var import_react50 = require("react");
|
|
8223
|
+
|
|
8224
|
+
// src/shared/helpers.ts
|
|
8225
|
+
var import_seamless_scroll_polyfill = require("seamless-scroll-polyfill");
|
|
8226
|
+
var isSafari = () => {
|
|
8227
|
+
if (typeof window === "undefined")
|
|
8228
|
+
return false;
|
|
8229
|
+
return /^((?!chrome|android).)*safari/i.test(window.navigator.userAgent);
|
|
8230
|
+
};
|
|
8231
|
+
var scrollTo = (el, config, parent) => {
|
|
8232
|
+
setTimeout(() => {
|
|
8233
|
+
if (isSafari()) {
|
|
8234
|
+
(0, import_seamless_scroll_polyfill.elementScrollIntoView)(el, config);
|
|
8235
|
+
} else {
|
|
8236
|
+
if (parent) {
|
|
8237
|
+
parent.scroll({ left: el.offsetLeft, behavior: "smooth" });
|
|
8238
|
+
} else {
|
|
8239
|
+
el.scrollIntoView(config);
|
|
8240
|
+
}
|
|
8241
|
+
}
|
|
8242
|
+
});
|
|
8243
|
+
};
|
|
8244
|
+
|
|
8245
|
+
// src/ScrollingCarousel/hooks/useCarouselNavigation.ts
|
|
8246
|
+
var useCarouselNavigation = ({
|
|
8247
|
+
carousel: carousel2,
|
|
8248
|
+
id,
|
|
8249
|
+
firstItemIsVisible,
|
|
8250
|
+
lastItemIsVisible,
|
|
8251
|
+
firstVisibleIndex,
|
|
8252
|
+
lastVisibleIndex,
|
|
8253
|
+
infiniteScroll,
|
|
8254
|
+
childVisibilityLength
|
|
8255
|
+
}) => {
|
|
8256
|
+
const getStepEl = (0, import_react50.useCallback)(
|
|
8257
|
+
(index) => {
|
|
8258
|
+
if (carousel2.current) {
|
|
8259
|
+
return carousel2.current.querySelectorAll(`[data-step-${id}]`)[index] || null;
|
|
8260
|
+
}
|
|
8261
|
+
return null;
|
|
8262
|
+
},
|
|
8263
|
+
[carousel2, id]
|
|
8264
|
+
);
|
|
8265
|
+
const next = (0, import_react50.useCallback)(
|
|
8266
|
+
(e) => {
|
|
8267
|
+
e.preventDefault();
|
|
8268
|
+
if (lastItemIsVisible && !infiniteScroll)
|
|
8269
|
+
return;
|
|
8270
|
+
const scrollToIndex = infiniteScroll && lastVisibleIndex === childVisibilityLength - 1 ? 0 : lastVisibleIndex + 1;
|
|
8271
|
+
const el = getStepEl(scrollToIndex);
|
|
8272
|
+
if (el) {
|
|
8273
|
+
scrollTo(
|
|
8274
|
+
el,
|
|
8275
|
+
{
|
|
8276
|
+
behavior: "smooth",
|
|
8277
|
+
inline: "start",
|
|
8278
|
+
block: "nearest"
|
|
8279
|
+
},
|
|
8280
|
+
carousel2.current
|
|
8281
|
+
);
|
|
8282
|
+
}
|
|
8283
|
+
},
|
|
8284
|
+
[
|
|
8285
|
+
lastItemIsVisible,
|
|
8286
|
+
lastVisibleIndex,
|
|
8287
|
+
infiniteScroll,
|
|
8288
|
+
childVisibilityLength,
|
|
8289
|
+
getStepEl,
|
|
8290
|
+
carousel2
|
|
8291
|
+
]
|
|
8292
|
+
);
|
|
8293
|
+
const back = (0, import_react50.useCallback)(
|
|
8294
|
+
(e) => {
|
|
8295
|
+
e.preventDefault();
|
|
8296
|
+
if (firstItemIsVisible && !infiniteScroll)
|
|
8297
|
+
return;
|
|
8298
|
+
const scrollToIndex = firstVisibleIndex === 0 && infiniteScroll ? childVisibilityLength - 1 : firstVisibleIndex - 1;
|
|
8299
|
+
const el = getStepEl(scrollToIndex);
|
|
8300
|
+
if (el) {
|
|
8301
|
+
scrollTo(
|
|
8302
|
+
el,
|
|
8303
|
+
{
|
|
8304
|
+
behavior: "smooth",
|
|
8305
|
+
inline: "end",
|
|
8306
|
+
block: "nearest"
|
|
8307
|
+
},
|
|
8308
|
+
carousel2.current
|
|
8309
|
+
);
|
|
8310
|
+
}
|
|
8311
|
+
},
|
|
8312
|
+
[
|
|
8313
|
+
firstItemIsVisible,
|
|
8314
|
+
firstVisibleIndex,
|
|
8315
|
+
infiniteScroll,
|
|
8316
|
+
childVisibilityLength,
|
|
8317
|
+
getStepEl,
|
|
8318
|
+
carousel2
|
|
8319
|
+
]
|
|
8320
|
+
);
|
|
8321
|
+
const goTo = (0, import_react50.useCallback)(
|
|
8322
|
+
(e, i) => {
|
|
8323
|
+
e.preventDefault();
|
|
8324
|
+
const el = getStepEl(i);
|
|
8325
|
+
if (el) {
|
|
8326
|
+
scrollTo(el, {
|
|
8327
|
+
behavior: "smooth",
|
|
8328
|
+
inline: "center",
|
|
8329
|
+
block: "center"
|
|
8330
|
+
});
|
|
8331
|
+
}
|
|
8332
|
+
},
|
|
8333
|
+
[getStepEl]
|
|
8334
|
+
);
|
|
8335
|
+
return { next, back, goTo };
|
|
8336
|
+
};
|
|
8337
|
+
|
|
8338
|
+
// src/ScrollingCarousel/hooks/useCarouselVisibility.ts
|
|
8339
|
+
var import_react51 = require("react");
|
|
8340
|
+
var useCarouselVisibility = (carousel2) => {
|
|
8341
|
+
const [state, dispatch] = (0, import_react51.useReducer)(childVisibilityReducer, {
|
|
8342
|
+
childVisibility: []
|
|
8343
|
+
});
|
|
8344
|
+
const carouselContextApi = (0, import_react51.useMemo)(
|
|
8345
|
+
() => ({ carousel: carousel2, dispatch }),
|
|
8346
|
+
[carousel2]
|
|
8347
|
+
);
|
|
8348
|
+
const firstVisibleIndex = state.childVisibility.indexOf(true);
|
|
8349
|
+
const firstItemIsVisible = firstVisibleIndex === 0;
|
|
8350
|
+
const lastVisibleIndex = state.childVisibility.lastIndexOf(true);
|
|
8351
|
+
const lastItemIsVisible = lastVisibleIndex === state.childVisibility.length - 1;
|
|
8352
|
+
const anyItemsVisible = !!(firstVisibleIndex >= 0 && lastVisibleIndex >= 0);
|
|
8353
|
+
return {
|
|
8354
|
+
state,
|
|
8355
|
+
carouselContextApi,
|
|
8356
|
+
firstVisibleIndex,
|
|
8357
|
+
lastVisibleIndex,
|
|
8358
|
+
firstItemIsVisible,
|
|
8359
|
+
lastItemIsVisible,
|
|
8360
|
+
anyItemsVisible
|
|
8361
|
+
};
|
|
8362
|
+
};
|
|
8363
|
+
|
|
8364
|
+
// src/ScrollingCarousel/ScrollingCarousel.tsx
|
|
8365
|
+
var import_jsx_runtime249 = require("@emotion/react/jsx-runtime");
|
|
8366
|
+
var ScrollingCarousel = ({
|
|
8367
|
+
className,
|
|
8368
|
+
children,
|
|
8369
|
+
showButtons = true,
|
|
8370
|
+
showDots = false,
|
|
8371
|
+
dotsColor = "light",
|
|
8372
|
+
numberOfDots = 5,
|
|
8373
|
+
buttonsPosition = "left-right",
|
|
8374
|
+
customLeftButton,
|
|
8375
|
+
infiniteScroll = false,
|
|
8376
|
+
customBackIcon = null,
|
|
8377
|
+
customNextIcon = null,
|
|
8378
|
+
showNavigationOnHover = false,
|
|
8379
|
+
id,
|
|
8380
|
+
current
|
|
8381
|
+
}) => {
|
|
8382
|
+
const carousel2 = (0, import_react52.useRef)(null);
|
|
8383
|
+
const [isHovering, setIsHovering] = (0, import_react52.useState)(false);
|
|
8384
|
+
const {
|
|
8385
|
+
state,
|
|
8386
|
+
carouselContextApi,
|
|
8387
|
+
firstVisibleIndex,
|
|
8388
|
+
lastVisibleIndex,
|
|
8389
|
+
firstItemIsVisible,
|
|
8390
|
+
lastItemIsVisible,
|
|
8391
|
+
anyItemsVisible
|
|
8392
|
+
} = useCarouselVisibility(carousel2);
|
|
8393
|
+
const { next, back, goTo } = useCarouselNavigation({
|
|
8394
|
+
carousel: carousel2,
|
|
8395
|
+
id,
|
|
8396
|
+
firstItemIsVisible,
|
|
8397
|
+
lastItemIsVisible,
|
|
8398
|
+
firstVisibleIndex,
|
|
8399
|
+
lastVisibleIndex,
|
|
8400
|
+
infiniteScroll,
|
|
8401
|
+
childVisibilityLength: state.childVisibility.length
|
|
8402
|
+
});
|
|
8403
|
+
(0, import_react52.useEffect)(() => {
|
|
8404
|
+
if (carousel2.current && typeof current === "number" && current >= 0) {
|
|
8405
|
+
const childrenArray = Array.from(carousel2.current.children);
|
|
8406
|
+
const selectedItem = childrenArray[current];
|
|
8407
|
+
if (selectedItem) {
|
|
8408
|
+
const selectedItemOffset = selectedItem.offsetLeft + selectedItem.offsetWidth / 2;
|
|
8409
|
+
const carouselCenter = carousel2.current.offsetWidth / 2;
|
|
8410
|
+
const scrollLeft = selectedItemOffset - carouselCenter;
|
|
8411
|
+
carousel2.current.scroll({
|
|
8412
|
+
left: scrollLeft,
|
|
8413
|
+
behavior: "smooth"
|
|
8414
|
+
});
|
|
8415
|
+
}
|
|
8416
|
+
}
|
|
8417
|
+
}, [current]);
|
|
8418
|
+
const childrenWithIndex = import_react52.default.Children.map(
|
|
8419
|
+
children,
|
|
8420
|
+
(child, index) => import_react52.default.cloneElement(child, { index })
|
|
8421
|
+
);
|
|
8422
|
+
const { dotOffset, dotDistances, dotWidth } = useCarouselDots({
|
|
8423
|
+
childVisibility: state.childVisibility,
|
|
8424
|
+
firstVisibleIndex,
|
|
8425
|
+
lastVisibleIndex,
|
|
8426
|
+
anyItemsVisible,
|
|
8427
|
+
numberOfDots
|
|
8428
|
+
});
|
|
8429
|
+
const hasMultipleChildren = state.childVisibility.length > 1;
|
|
8430
|
+
const shouldShowNavigation = showNavigationOnHover ? isHovering : true;
|
|
8431
|
+
return /* @__PURE__ */ (0, import_jsx_runtime249.jsxs)(
|
|
8432
|
+
"div",
|
|
8433
|
+
{
|
|
8434
|
+
css: carouselRoot,
|
|
8435
|
+
className,
|
|
8436
|
+
onMouseEnter: () => setIsHovering(true),
|
|
8437
|
+
onMouseLeave: () => setIsHovering(false),
|
|
8438
|
+
children: [
|
|
8439
|
+
/* @__PURE__ */ (0, import_jsx_runtime249.jsx)(
|
|
8440
|
+
"div",
|
|
8441
|
+
{
|
|
8442
|
+
css: carousel,
|
|
8443
|
+
ref: carousel2,
|
|
8444
|
+
"data-testid": "scrolling-carousel-carousel",
|
|
8445
|
+
role: "region",
|
|
8446
|
+
"aria-roledescription": "carousel",
|
|
8447
|
+
"aria-label": "Scrolling carousel",
|
|
8448
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime249.jsx)(CarouselContext.Provider, { value: carouselContextApi, children: childrenWithIndex })
|
|
8449
|
+
}
|
|
8450
|
+
),
|
|
8451
|
+
hasMultipleChildren && shouldShowNavigation && /* @__PURE__ */ (0, import_jsx_runtime249.jsxs)("div", { css: controls(buttonsPosition), children: [
|
|
8452
|
+
showButtons && (!firstItemIsVisible || infiniteScroll) && /* @__PURE__ */ (0, import_jsx_runtime249.jsx)(
|
|
8453
|
+
"button",
|
|
8454
|
+
{
|
|
8455
|
+
"aria-label": "Previous",
|
|
8456
|
+
type: "button",
|
|
8457
|
+
onClick: back,
|
|
8458
|
+
css: customLeftButton ? customButtonLeft(buttonsPosition) : buttonLeft(buttonsPosition),
|
|
8459
|
+
"data-testid": `scrolling-carousel-button-back-${id}`,
|
|
8460
|
+
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 }) })
|
|
8461
|
+
}
|
|
8462
|
+
),
|
|
8463
|
+
showButtons && (!lastItemIsVisible || infiniteScroll) && /* @__PURE__ */ (0, import_jsx_runtime249.jsx)(
|
|
8464
|
+
"button",
|
|
8465
|
+
{
|
|
8466
|
+
"aria-label": "Next",
|
|
8467
|
+
type: "button",
|
|
8468
|
+
onClick: next,
|
|
8469
|
+
css: buttonRight(buttonsPosition),
|
|
8470
|
+
"data-testid": `scrolling-carousel-button-next-${id}`,
|
|
8471
|
+
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 }) })
|
|
8472
|
+
}
|
|
8473
|
+
)
|
|
8474
|
+
] }),
|
|
8475
|
+
showDots && /* @__PURE__ */ (0, import_jsx_runtime249.jsx)("div", { css: dots, children: /* @__PURE__ */ (0, import_jsx_runtime249.jsx)(
|
|
8476
|
+
"div",
|
|
8477
|
+
{
|
|
8478
|
+
css: dotsInner,
|
|
8479
|
+
style: { maxWidth: `${dotWidth * numberOfDots}px` },
|
|
8480
|
+
children: state.childVisibility.map((childVisibility, i) => {
|
|
8481
|
+
var _a;
|
|
8482
|
+
const distance = (_a = dotDistances[i]) != null ? _a : 0;
|
|
8483
|
+
return /* @__PURE__ */ (0, import_jsx_runtime249.jsx)(
|
|
8484
|
+
"button",
|
|
8485
|
+
{
|
|
8486
|
+
type: "button",
|
|
8487
|
+
onClick: (e) => goTo(e, i),
|
|
8488
|
+
css: [
|
|
8489
|
+
dot(dotsColor),
|
|
8490
|
+
distance === 2 && dotDistance2,
|
|
8491
|
+
distance === 3 && dotDistance3,
|
|
8492
|
+
distance > 3 && dotDistanceGreaterThan3,
|
|
8493
|
+
childVisibility && dotVisible
|
|
8494
|
+
],
|
|
8495
|
+
style: {
|
|
8496
|
+
width: `${dotWidth}px`,
|
|
8497
|
+
height: `${dotWidth}px`,
|
|
8498
|
+
transform: `translateX(-${dotOffset.current}px)`
|
|
8499
|
+
},
|
|
8500
|
+
"aria-label": `Go to slide ${i + 1}`
|
|
8501
|
+
},
|
|
8502
|
+
`step-${i + 1}`
|
|
8503
|
+
);
|
|
8504
|
+
})
|
|
8505
|
+
}
|
|
8506
|
+
) })
|
|
8507
|
+
]
|
|
8508
|
+
}
|
|
8509
|
+
);
|
|
8510
|
+
};
|
|
8511
|
+
ScrollingCarousel.displayName = "ScrollingCarousel";
|
|
8512
|
+
|
|
7879
8513
|
// src/PackageCard/PackageCard.styles.ts
|
|
7880
|
-
var
|
|
7881
|
-
var cardContainerStyles3 =
|
|
8514
|
+
var import_react53 = require("@emotion/react");
|
|
8515
|
+
var cardContainerStyles3 = import_react53.css`
|
|
7882
8516
|
color: var(--text-primary);
|
|
7883
8517
|
position: relative;
|
|
7884
8518
|
width: 100%;
|
|
7885
|
-
|
|
8519
|
+
height: 100%;
|
|
7886
8520
|
background: white;
|
|
7887
|
-
border-radius: var(--spacing-4);
|
|
7888
8521
|
overflow: hidden;
|
|
7889
|
-
cursor: pointer;
|
|
7890
8522
|
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
8523
|
`;
|
|
7898
|
-
var imageContainerStyles =
|
|
8524
|
+
var imageContainerStyles = import_react53.css`
|
|
7899
8525
|
position: relative;
|
|
7900
8526
|
width: 100%;
|
|
7901
|
-
height:
|
|
8527
|
+
height: 260px;
|
|
7902
8528
|
overflow: hidden;
|
|
7903
8529
|
border-radius: var(--spacing-4);
|
|
7904
8530
|
`;
|
|
7905
|
-
var imageStyles2 =
|
|
8531
|
+
var imageStyles2 = import_react53.css`
|
|
7906
8532
|
width: 100%;
|
|
7907
|
-
height:
|
|
8533
|
+
height: 260px;
|
|
7908
8534
|
background-size: cover;
|
|
7909
8535
|
background-position: center;
|
|
7910
8536
|
background-repeat: no-repeat;
|
|
7911
|
-
|
|
8537
|
+
position: relative;
|
|
8538
|
+
background-color: lightgray;
|
|
7912
8539
|
`;
|
|
7913
|
-
var
|
|
8540
|
+
var badgeTopLeftStyles = import_react53.css`
|
|
7914
8541
|
position: absolute;
|
|
7915
8542
|
top: var(--spacing-3);
|
|
7916
8543
|
left: var(--spacing-3);
|
|
7917
8544
|
z-index: 2;
|
|
7918
8545
|
`;
|
|
7919
|
-
var
|
|
8546
|
+
var badgeBottomRightStyles = import_react53.css`
|
|
8547
|
+
position: absolute;
|
|
8548
|
+
bottom: var(--spacing-3);
|
|
8549
|
+
right: var(--spacing-3);
|
|
8550
|
+
z-index: 2;
|
|
8551
|
+
`;
|
|
8552
|
+
var heartIconStyles = import_react53.css`
|
|
7920
8553
|
position: absolute;
|
|
7921
8554
|
top: var(--spacing-3);
|
|
7922
8555
|
right: var(--spacing-3);
|
|
7923
8556
|
width: 32px;
|
|
7924
8557
|
height: 32px;
|
|
7925
|
-
background: rgba(255, 255, 255, 0.
|
|
7926
|
-
backdrop-filter: blur(8px);
|
|
8558
|
+
background: rgba(255, 255, 255, 0.4);
|
|
7927
8559
|
border-radius: 50%;
|
|
8560
|
+
border: 1px solid var(--border-primary);
|
|
7928
8561
|
display: flex;
|
|
7929
8562
|
align-items: center;
|
|
7930
8563
|
justify-content: center;
|
|
@@ -7938,103 +8571,180 @@ var heartIconStyles = import_react46.css`
|
|
|
7938
8571
|
transform: scale(1.1);
|
|
7939
8572
|
}
|
|
7940
8573
|
`;
|
|
7941
|
-
var
|
|
7942
|
-
padding: var(--spacing-3);
|
|
8574
|
+
var contentWithBackgroundStyles = import_react53.css`
|
|
8575
|
+
padding: var(--spacing-2) var(--spacing-3) var(--spacing-4) var(--spacing-3);
|
|
8576
|
+
background-color: var(--surface-page);
|
|
8577
|
+
`;
|
|
8578
|
+
var contentWithoutBackgroundStyles = import_react53.css`
|
|
8579
|
+
padding-top: var(--spacing-2);
|
|
8580
|
+
`;
|
|
8581
|
+
var overlayStyles = import_react53.css`
|
|
8582
|
+
position: absolute;
|
|
8583
|
+
top: 0;
|
|
8584
|
+
left: 0;
|
|
8585
|
+
width: 100%;
|
|
8586
|
+
height: 100%;
|
|
8587
|
+
background-color: rgba(0, 0, 0, 0.6);
|
|
8588
|
+
z-index: 1;
|
|
8589
|
+
border-radius: var(--spacing-4);
|
|
8590
|
+
display: block;
|
|
8591
|
+
pointer-events: none;
|
|
7943
8592
|
`;
|
|
7944
8593
|
|
|
7945
8594
|
// src/PackageCard/PackageCard.tsx
|
|
7946
|
-
var
|
|
8595
|
+
var import_jsx_runtime250 = require("@emotion/react/jsx-runtime");
|
|
7947
8596
|
var PackageCard = ({
|
|
7948
8597
|
images,
|
|
7949
8598
|
title,
|
|
7950
8599
|
subtitle,
|
|
7951
8600
|
startingPrice,
|
|
7952
|
-
tripsLeft,
|
|
7953
8601
|
isFavorited = false,
|
|
7954
8602
|
onFavoriteClick,
|
|
7955
8603
|
onClick,
|
|
7956
8604
|
className,
|
|
7957
|
-
|
|
7958
|
-
|
|
7959
|
-
|
|
8605
|
+
badges,
|
|
8606
|
+
availabilityBadges,
|
|
8607
|
+
id,
|
|
8608
|
+
hasContentBackground = false,
|
|
7960
8609
|
...rest
|
|
7961
8610
|
}) => {
|
|
7962
|
-
const
|
|
7963
|
-
|
|
7964
|
-
|
|
7965
|
-
|
|
7966
|
-
|
|
7967
|
-
|
|
7968
|
-
|
|
7969
|
-
|
|
7970
|
-
|
|
7971
|
-
|
|
7972
|
-
|
|
7973
|
-
|
|
7974
|
-
|
|
7975
|
-
|
|
7976
|
-
|
|
7977
|
-
|
|
7978
|
-
|
|
8611
|
+
const carouselId = id || `package-card-${title.replace(/\s+/g, "-")}`;
|
|
8612
|
+
const shouldShowOverlay = availabilityBadges == null ? void 0 : availabilityBadges.some(
|
|
8613
|
+
(badge2) => badge2.showOverlay
|
|
8614
|
+
);
|
|
8615
|
+
return /* @__PURE__ */ (0, import_jsx_runtime250.jsxs)(
|
|
8616
|
+
Box_default,
|
|
8617
|
+
{
|
|
8618
|
+
css: cardContainerStyles3,
|
|
8619
|
+
className,
|
|
8620
|
+
...rest,
|
|
8621
|
+
borderRadius: hasContentBackground ? "var(--spacing-4)" : "var(--spacing-4) var(--spacing-4) 0 0",
|
|
8622
|
+
children: [
|
|
8623
|
+
/* @__PURE__ */ (0, import_jsx_runtime250.jsxs)(Box_default, { css: imageContainerStyles, children: [
|
|
8624
|
+
availabilityBadges == null ? void 0 : availabilityBadges.map((badge2, index) => /* @__PURE__ */ (0, import_jsx_runtime250.jsx)(
|
|
8625
|
+
AvailabilityBadge_default,
|
|
8626
|
+
{
|
|
8627
|
+
variant: badge2.variant,
|
|
8628
|
+
css: badge2.position === "bottom-right" ? badgeBottomRightStyles : badgeTopLeftStyles,
|
|
8629
|
+
children: badge2.text
|
|
8630
|
+
},
|
|
8631
|
+
`availability-${index}`
|
|
8632
|
+
)),
|
|
8633
|
+
shouldShowOverlay && /* @__PURE__ */ (0, import_jsx_runtime250.jsx)(Box_default, { css: overlayStyles }),
|
|
8634
|
+
/* @__PURE__ */ (0, import_jsx_runtime250.jsx)(
|
|
8635
|
+
ScrollingCarousel,
|
|
8636
|
+
{
|
|
8637
|
+
showDots: images.length > 1,
|
|
8638
|
+
showNavigationOnHover: true,
|
|
8639
|
+
id: carouselId,
|
|
8640
|
+
children: images.filter((image) => !!image).map((image, index) => /* @__PURE__ */ (0, import_jsx_runtime250.jsx)(
|
|
8641
|
+
ScrollingCarouselStep,
|
|
8642
|
+
{
|
|
8643
|
+
parentId: carouselId,
|
|
8644
|
+
onClick,
|
|
8645
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime250.jsx)(
|
|
8646
|
+
Box_default,
|
|
8647
|
+
{
|
|
8648
|
+
css: [
|
|
8649
|
+
imageStyles2,
|
|
8650
|
+
{
|
|
8651
|
+
backgroundImage: `linear-gradient(181deg, rgba(0, 0, 0, 0.00) 75.32%, rgba(0, 0, 0, 0.40) 99.41%), url(${image})`
|
|
8652
|
+
}
|
|
8653
|
+
]
|
|
8654
|
+
}
|
|
8655
|
+
)
|
|
8656
|
+
},
|
|
8657
|
+
`image-${index}`
|
|
8658
|
+
))
|
|
8659
|
+
}
|
|
8660
|
+
),
|
|
8661
|
+
onFavoriteClick && /* @__PURE__ */ (0, import_jsx_runtime250.jsx)(
|
|
8662
|
+
Box_default,
|
|
7979
8663
|
{
|
|
7980
|
-
|
|
7981
|
-
|
|
8664
|
+
css: heartIconStyles,
|
|
8665
|
+
onClick: (e) => {
|
|
8666
|
+
e.preventDefault();
|
|
8667
|
+
e.stopPropagation();
|
|
8668
|
+
onFavoriteClick == null ? void 0 : onFavoriteClick();
|
|
8669
|
+
},
|
|
8670
|
+
children: isFavorited ? /* @__PURE__ */ (0, import_jsx_runtime250.jsx)(
|
|
8671
|
+
Icon_default,
|
|
8672
|
+
{
|
|
8673
|
+
variant: "HeartSolid",
|
|
8674
|
+
size: "small",
|
|
8675
|
+
fill: "var(--color-error-500)"
|
|
8676
|
+
}
|
|
8677
|
+
) : /* @__PURE__ */ (0, import_jsx_runtime250.jsx)(
|
|
8678
|
+
Icon_default,
|
|
8679
|
+
{
|
|
8680
|
+
variant: "Heart",
|
|
8681
|
+
size: "small",
|
|
8682
|
+
fill: "var(--color-base-black)"
|
|
8683
|
+
}
|
|
8684
|
+
)
|
|
7982
8685
|
}
|
|
7983
8686
|
)
|
|
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,
|
|
8687
|
+
] }),
|
|
8688
|
+
/* @__PURE__ */ (0, import_jsx_runtime250.jsxs)(
|
|
8689
|
+
Box_default,
|
|
8017
8690
|
{
|
|
8018
|
-
|
|
8019
|
-
|
|
8691
|
+
css: hasContentBackground ? contentWithBackgroundStyles : contentWithoutBackgroundStyles,
|
|
8692
|
+
children: [
|
|
8693
|
+
/* @__PURE__ */ (0, import_jsx_runtime250.jsxs)(
|
|
8694
|
+
Box_default,
|
|
8695
|
+
{
|
|
8696
|
+
onClick,
|
|
8697
|
+
display: "flex",
|
|
8698
|
+
flexDirection: "column",
|
|
8699
|
+
gap: "var(--spacing-1)",
|
|
8700
|
+
mb: "var(--spacing-1)",
|
|
8701
|
+
children: [
|
|
8702
|
+
/* @__PURE__ */ (0, import_jsx_runtime250.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime250.jsx)(Text_default, { size: "md", fontWeight: "bold", children: title }) }),
|
|
8703
|
+
/* @__PURE__ */ (0, import_jsx_runtime250.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime250.jsx)(Text_default, { size: "sm", fontWeight: "bold", children: subtitle }) }),
|
|
8704
|
+
/* @__PURE__ */ (0, import_jsx_runtime250.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime250.jsxs)(Text_default, { size: "sm", fontWeight: "normal", children: [
|
|
8705
|
+
"Starting Price ",
|
|
8706
|
+
startingPrice,
|
|
8707
|
+
" / Guest"
|
|
8708
|
+
] }) })
|
|
8709
|
+
]
|
|
8710
|
+
}
|
|
8711
|
+
),
|
|
8712
|
+
badges && badges.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime250.jsx)(
|
|
8713
|
+
Box_default,
|
|
8714
|
+
{
|
|
8715
|
+
display: "flex",
|
|
8716
|
+
gap: "var(--spacing-2) var(--spacing-4)",
|
|
8717
|
+
alignItems: "center",
|
|
8718
|
+
flexWrap: "wrap",
|
|
8719
|
+
children: badges.map((badge2, index) => /* @__PURE__ */ (0, import_jsx_runtime250.jsx)(
|
|
8720
|
+
IconLabel_default,
|
|
8721
|
+
{
|
|
8722
|
+
iconSize: badge2.iconSize || "medium",
|
|
8723
|
+
label: badge2.label,
|
|
8724
|
+
variant: badge2.variant
|
|
8725
|
+
},
|
|
8726
|
+
`badge-${badge2.variant}-${index}`
|
|
8727
|
+
))
|
|
8728
|
+
}
|
|
8729
|
+
)
|
|
8730
|
+
]
|
|
8020
8731
|
}
|
|
8021
|
-
)
|
|
8022
|
-
|
|
8023
|
-
|
|
8024
|
-
|
|
8025
|
-
] });
|
|
8732
|
+
)
|
|
8733
|
+
]
|
|
8734
|
+
}
|
|
8735
|
+
);
|
|
8026
8736
|
};
|
|
8027
8737
|
var PackageCard_default = PackageCard;
|
|
8028
8738
|
|
|
8029
8739
|
// src/PackageHeader/PackageHeader.tsx
|
|
8030
|
-
var
|
|
8740
|
+
var import_jsx_runtime251 = require("@emotion/react/jsx-runtime");
|
|
8031
8741
|
var PackageHeader = ({
|
|
8032
8742
|
header,
|
|
8033
8743
|
subheader,
|
|
8034
8744
|
features,
|
|
8035
8745
|
className
|
|
8036
8746
|
}) => {
|
|
8037
|
-
return /* @__PURE__ */ (0,
|
|
8747
|
+
return /* @__PURE__ */ (0, import_jsx_runtime251.jsxs)(
|
|
8038
8748
|
Box_default,
|
|
8039
8749
|
{
|
|
8040
8750
|
display: "flex",
|
|
@@ -8043,9 +8753,9 @@ var PackageHeader = ({
|
|
|
8043
8753
|
color: "var(--text-primary)",
|
|
8044
8754
|
className,
|
|
8045
8755
|
children: [
|
|
8046
|
-
/* @__PURE__ */ (0,
|
|
8047
|
-
subheader && /* @__PURE__ */ (0,
|
|
8048
|
-
features && /* @__PURE__ */ (0,
|
|
8756
|
+
/* @__PURE__ */ (0, import_jsx_runtime251.jsx)(Heading_default, { size: "xs", fontWeight: "bold", children: header }),
|
|
8757
|
+
subheader && /* @__PURE__ */ (0, import_jsx_runtime251.jsx)(Text_default, { children: subheader }),
|
|
8758
|
+
features && /* @__PURE__ */ (0, import_jsx_runtime251.jsx)(FeatureList_default, { items: features })
|
|
8049
8759
|
]
|
|
8050
8760
|
}
|
|
8051
8761
|
);
|
|
@@ -8053,8 +8763,8 @@ var PackageHeader = ({
|
|
|
8053
8763
|
var PackageHeader_default = PackageHeader;
|
|
8054
8764
|
|
|
8055
8765
|
// src/ReviewCard/components/ReviewImages.styles.ts
|
|
8056
|
-
var
|
|
8057
|
-
var imageStyles3 =
|
|
8766
|
+
var import_react54 = require("@emotion/react");
|
|
8767
|
+
var imageStyles3 = import_react54.css`
|
|
8058
8768
|
flex: 1;
|
|
8059
8769
|
min-width: 0;
|
|
8060
8770
|
max-width: 100%;
|
|
@@ -8065,13 +8775,13 @@ var imageStyles3 = import_react47.css`
|
|
|
8065
8775
|
`;
|
|
8066
8776
|
|
|
8067
8777
|
// src/ReviewCard/components/ReviewImages.tsx
|
|
8068
|
-
var
|
|
8778
|
+
var import_jsx_runtime252 = require("@emotion/react/jsx-runtime");
|
|
8069
8779
|
var ReviewImages = ({ images, maxImages = 3 }) => {
|
|
8070
8780
|
const displayImages = images.slice(0, maxImages);
|
|
8071
8781
|
if (displayImages.length === 0) {
|
|
8072
8782
|
return null;
|
|
8073
8783
|
}
|
|
8074
|
-
return /* @__PURE__ */ (0,
|
|
8784
|
+
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
8785
|
"img",
|
|
8076
8786
|
{
|
|
8077
8787
|
src: image,
|
|
@@ -8084,7 +8794,7 @@ var ReviewImages = ({ images, maxImages = 3 }) => {
|
|
|
8084
8794
|
var ReviewImages_default = ReviewImages;
|
|
8085
8795
|
|
|
8086
8796
|
// src/ReviewCard/components/ReviewReply.tsx
|
|
8087
|
-
var
|
|
8797
|
+
var import_jsx_runtime253 = require("@emotion/react/jsx-runtime");
|
|
8088
8798
|
var ReviewReply = ({
|
|
8089
8799
|
avatarSrc,
|
|
8090
8800
|
name,
|
|
@@ -8093,7 +8803,7 @@ var ReviewReply = ({
|
|
|
8093
8803
|
label,
|
|
8094
8804
|
rating
|
|
8095
8805
|
}) => {
|
|
8096
|
-
return /* @__PURE__ */ (0,
|
|
8806
|
+
return /* @__PURE__ */ (0, import_jsx_runtime253.jsxs)(
|
|
8097
8807
|
Box_default,
|
|
8098
8808
|
{
|
|
8099
8809
|
backgroundColor: "var(--surface-neutral)",
|
|
@@ -8103,7 +8813,7 @@ var ReviewReply = ({
|
|
|
8103
8813
|
flexDirection: "column",
|
|
8104
8814
|
gap: "var(--spacing-3)",
|
|
8105
8815
|
children: [
|
|
8106
|
-
/* @__PURE__ */ (0,
|
|
8816
|
+
/* @__PURE__ */ (0, import_jsx_runtime253.jsxs)(
|
|
8107
8817
|
Box_default,
|
|
8108
8818
|
{
|
|
8109
8819
|
display: "flex",
|
|
@@ -8111,7 +8821,7 @@ var ReviewReply = ({
|
|
|
8111
8821
|
justifyContent: "space-between",
|
|
8112
8822
|
gap: "var(--spacing-2)",
|
|
8113
8823
|
children: [
|
|
8114
|
-
/* @__PURE__ */ (0,
|
|
8824
|
+
/* @__PURE__ */ (0, import_jsx_runtime253.jsx)(
|
|
8115
8825
|
UserCard_default,
|
|
8116
8826
|
{
|
|
8117
8827
|
avatarSrc,
|
|
@@ -8120,11 +8830,11 @@ var ReviewReply = ({
|
|
|
8120
8830
|
rating
|
|
8121
8831
|
}
|
|
8122
8832
|
),
|
|
8123
|
-
/* @__PURE__ */ (0,
|
|
8833
|
+
/* @__PURE__ */ (0, import_jsx_runtime253.jsx)(AvailabilityBadge_default, { variant: "neutral", children: label })
|
|
8124
8834
|
]
|
|
8125
8835
|
}
|
|
8126
8836
|
),
|
|
8127
|
-
/* @__PURE__ */ (0,
|
|
8837
|
+
/* @__PURE__ */ (0, import_jsx_runtime253.jsx)(Text_default, { children: content })
|
|
8128
8838
|
]
|
|
8129
8839
|
}
|
|
8130
8840
|
);
|
|
@@ -8132,7 +8842,7 @@ var ReviewReply = ({
|
|
|
8132
8842
|
var ReviewReply_default = ReviewReply;
|
|
8133
8843
|
|
|
8134
8844
|
// src/ReviewCard/ReviewCard.tsx
|
|
8135
|
-
var
|
|
8845
|
+
var import_jsx_runtime254 = require("@emotion/react/jsx-runtime");
|
|
8136
8846
|
var ReviewCard = ({
|
|
8137
8847
|
avatarSrc,
|
|
8138
8848
|
name,
|
|
@@ -8144,7 +8854,7 @@ var ReviewCard = ({
|
|
|
8144
8854
|
replies = [],
|
|
8145
8855
|
className
|
|
8146
8856
|
}) => {
|
|
8147
|
-
return /* @__PURE__ */ (0,
|
|
8857
|
+
return /* @__PURE__ */ (0, import_jsx_runtime254.jsxs)(
|
|
8148
8858
|
Box_default,
|
|
8149
8859
|
{
|
|
8150
8860
|
backgroundColor: "white",
|
|
@@ -8155,7 +8865,7 @@ var ReviewCard = ({
|
|
|
8155
8865
|
gap: "var(--spacing-4)",
|
|
8156
8866
|
className,
|
|
8157
8867
|
children: [
|
|
8158
|
-
/* @__PURE__ */ (0,
|
|
8868
|
+
/* @__PURE__ */ (0, import_jsx_runtime254.jsx)(
|
|
8159
8869
|
UserCard_default,
|
|
8160
8870
|
{
|
|
8161
8871
|
avatarSrc,
|
|
@@ -8164,10 +8874,10 @@ var ReviewCard = ({
|
|
|
8164
8874
|
rating
|
|
8165
8875
|
}
|
|
8166
8876
|
),
|
|
8167
|
-
availabilityBadge && /* @__PURE__ */ (0,
|
|
8168
|
-
/* @__PURE__ */ (0,
|
|
8169
|
-
images.length > 0 && /* @__PURE__ */ (0,
|
|
8170
|
-
replies.length > 0 && /* @__PURE__ */ (0,
|
|
8877
|
+
availabilityBadge && /* @__PURE__ */ (0, import_jsx_runtime254.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime254.jsx)(AvailabilityBadge_default, { variant: availabilityBadge.variant, children: availabilityBadge.text }) }),
|
|
8878
|
+
/* @__PURE__ */ (0, import_jsx_runtime254.jsx)(Text_default, { size: "md", children: content }),
|
|
8879
|
+
images.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime254.jsx)(ReviewImages_default, { images }),
|
|
8880
|
+
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
8881
|
ReviewReply_default,
|
|
8172
8882
|
{
|
|
8173
8883
|
avatarSrc: reply.avatarSrc,
|
|
@@ -8186,12 +8896,12 @@ var ReviewCard = ({
|
|
|
8186
8896
|
var ReviewCard_default = ReviewCard;
|
|
8187
8897
|
|
|
8188
8898
|
// src/Reviews/Reviews.tsx
|
|
8189
|
-
var
|
|
8899
|
+
var import_react55 = require("@emotion/react");
|
|
8190
8900
|
|
|
8191
8901
|
// src/Reviews/components/ReviewItem.tsx
|
|
8192
|
-
var
|
|
8902
|
+
var import_jsx_runtime255 = require("@emotion/react/jsx-runtime");
|
|
8193
8903
|
var ReviewItem = ({ label, rating }) => {
|
|
8194
|
-
return /* @__PURE__ */ (0,
|
|
8904
|
+
return /* @__PURE__ */ (0, import_jsx_runtime255.jsxs)(
|
|
8195
8905
|
Box_default,
|
|
8196
8906
|
{
|
|
8197
8907
|
display: "flex",
|
|
@@ -8199,10 +8909,10 @@ var ReviewItem = ({ label, rating }) => {
|
|
|
8199
8909
|
alignItems: "center",
|
|
8200
8910
|
width: "100%",
|
|
8201
8911
|
children: [
|
|
8202
|
-
/* @__PURE__ */ (0,
|
|
8203
|
-
/* @__PURE__ */ (0,
|
|
8204
|
-
/* @__PURE__ */ (0,
|
|
8205
|
-
/* @__PURE__ */ (0,
|
|
8912
|
+
/* @__PURE__ */ (0, import_jsx_runtime255.jsx)(Text_default, { fontWeight: "semibold", children: label }),
|
|
8913
|
+
/* @__PURE__ */ (0, import_jsx_runtime255.jsxs)(Box_default, { display: "flex", alignItems: "center", gap: "var(--spacing-2)", children: [
|
|
8914
|
+
/* @__PURE__ */ (0, import_jsx_runtime255.jsx)(Icon_default, { variant: "StarSolid", size: "large", fill: "var(--surface-action-2)" }),
|
|
8915
|
+
/* @__PURE__ */ (0, import_jsx_runtime255.jsxs)(Text_default, { fontWeight: "semibold", children: [
|
|
8206
8916
|
rating,
|
|
8207
8917
|
"/5"
|
|
8208
8918
|
] })
|
|
@@ -8214,14 +8924,14 @@ var ReviewItem = ({ label, rating }) => {
|
|
|
8214
8924
|
var ReviewItem_default = ReviewItem;
|
|
8215
8925
|
|
|
8216
8926
|
// src/Reviews/Reviews.tsx
|
|
8217
|
-
var
|
|
8927
|
+
var import_jsx_runtime256 = require("@emotion/react/jsx-runtime");
|
|
8218
8928
|
var Reviews = ({
|
|
8219
8929
|
averageRating,
|
|
8220
8930
|
totalReviews,
|
|
8221
8931
|
items,
|
|
8222
8932
|
className
|
|
8223
8933
|
}) => {
|
|
8224
|
-
return /* @__PURE__ */ (0,
|
|
8934
|
+
return /* @__PURE__ */ (0, import_jsx_runtime256.jsxs)(
|
|
8225
8935
|
Box_default,
|
|
8226
8936
|
{
|
|
8227
8937
|
width: "100%",
|
|
@@ -8234,7 +8944,7 @@ var Reviews = ({
|
|
|
8234
8944
|
p: "var(--spacing-4)",
|
|
8235
8945
|
className,
|
|
8236
8946
|
children: [
|
|
8237
|
-
/* @__PURE__ */ (0,
|
|
8947
|
+
/* @__PURE__ */ (0, import_jsx_runtime256.jsxs)(
|
|
8238
8948
|
Box_default,
|
|
8239
8949
|
{
|
|
8240
8950
|
display: "flex",
|
|
@@ -8242,12 +8952,12 @@ var Reviews = ({
|
|
|
8242
8952
|
alignItems: "center",
|
|
8243
8953
|
gap: "var(--spacing-2)",
|
|
8244
8954
|
children: [
|
|
8245
|
-
/* @__PURE__ */ (0,
|
|
8246
|
-
/* @__PURE__ */ (0,
|
|
8955
|
+
/* @__PURE__ */ (0, import_jsx_runtime256.jsx)(Heading_default, { size: "sm", fontWeight: "bold", color: "text-primary", children: averageRating.toFixed(1) }),
|
|
8956
|
+
/* @__PURE__ */ (0, import_jsx_runtime256.jsx)(
|
|
8247
8957
|
StarRating_default,
|
|
8248
8958
|
{
|
|
8249
8959
|
rating: Math.floor(averageRating),
|
|
8250
|
-
css:
|
|
8960
|
+
css: import_react55.css`
|
|
8251
8961
|
> svg {
|
|
8252
8962
|
height: 40px;
|
|
8253
8963
|
width: 40px;
|
|
@@ -8255,7 +8965,7 @@ var Reviews = ({
|
|
|
8255
8965
|
`
|
|
8256
8966
|
}
|
|
8257
8967
|
),
|
|
8258
|
-
/* @__PURE__ */ (0,
|
|
8968
|
+
/* @__PURE__ */ (0, import_jsx_runtime256.jsxs)(Text_default, { size: "sm", color: "text-secondary", children: [
|
|
8259
8969
|
"Overall Rating \u2022 ",
|
|
8260
8970
|
totalReviews,
|
|
8261
8971
|
" Review",
|
|
@@ -8264,14 +8974,14 @@ var Reviews = ({
|
|
|
8264
8974
|
]
|
|
8265
8975
|
}
|
|
8266
8976
|
),
|
|
8267
|
-
/* @__PURE__ */ (0,
|
|
8977
|
+
/* @__PURE__ */ (0, import_jsx_runtime256.jsx)(
|
|
8268
8978
|
Box_default,
|
|
8269
8979
|
{
|
|
8270
8980
|
display: "flex",
|
|
8271
8981
|
flexDirection: "column",
|
|
8272
8982
|
gap: "var(--spacing-2)",
|
|
8273
8983
|
width: "100%",
|
|
8274
|
-
children: items.map((item, index) => /* @__PURE__ */ (0,
|
|
8984
|
+
children: items.map((item, index) => /* @__PURE__ */ (0, import_jsx_runtime256.jsx)(ReviewItem_default, { label: item.label, rating: item.rating }, index))
|
|
8275
8985
|
}
|
|
8276
8986
|
)
|
|
8277
8987
|
]
|
|
@@ -8281,7 +8991,7 @@ var Reviews = ({
|
|
|
8281
8991
|
var Reviews_default = Reviews;
|
|
8282
8992
|
|
|
8283
8993
|
// src/Reviews/ReviewsShowcase.tsx
|
|
8284
|
-
var
|
|
8994
|
+
var import_jsx_runtime257 = require("@emotion/react/jsx-runtime");
|
|
8285
8995
|
var ReviewsShowcase = () => {
|
|
8286
8996
|
const sampleData = {
|
|
8287
8997
|
averageRating: 4,
|
|
@@ -8303,7 +9013,7 @@ var ReviewsShowcase = () => {
|
|
|
8303
9013
|
{ label: "Game Abundance", rating: 5 }
|
|
8304
9014
|
]
|
|
8305
9015
|
};
|
|
8306
|
-
return /* @__PURE__ */ (0,
|
|
9016
|
+
return /* @__PURE__ */ (0, import_jsx_runtime257.jsxs)(
|
|
8307
9017
|
Box_default,
|
|
8308
9018
|
{
|
|
8309
9019
|
display: "flex",
|
|
@@ -8311,24 +9021,24 @@ var ReviewsShowcase = () => {
|
|
|
8311
9021
|
gap: "var(--spacing-8)",
|
|
8312
9022
|
p: "var(--spacing-6)",
|
|
8313
9023
|
children: [
|
|
8314
|
-
/* @__PURE__ */ (0,
|
|
8315
|
-
/* @__PURE__ */ (0,
|
|
8316
|
-
/* @__PURE__ */ (0,
|
|
8317
|
-
/* @__PURE__ */ (0,
|
|
9024
|
+
/* @__PURE__ */ (0, import_jsx_runtime257.jsx)(Heading_default, { size: "lg", children: "Reviews Component Showcase" }),
|
|
9025
|
+
/* @__PURE__ */ (0, import_jsx_runtime257.jsxs)(Box_default, { display: "flex", flexDirection: "column", gap: "var(--spacing-4)", children: [
|
|
9026
|
+
/* @__PURE__ */ (0, import_jsx_runtime257.jsx)(Heading_default, { size: "md", children: "Default Reviews" }),
|
|
9027
|
+
/* @__PURE__ */ (0, import_jsx_runtime257.jsx)(Box_default, { maxWidth: "400px", children: /* @__PURE__ */ (0, import_jsx_runtime257.jsx)(Reviews_default, { ...sampleData }) })
|
|
8318
9028
|
] }),
|
|
8319
|
-
/* @__PURE__ */ (0,
|
|
8320
|
-
/* @__PURE__ */ (0,
|
|
8321
|
-
/* @__PURE__ */ (0,
|
|
9029
|
+
/* @__PURE__ */ (0, import_jsx_runtime257.jsxs)(Box_default, { display: "flex", flexDirection: "column", gap: "var(--spacing-4)", children: [
|
|
9030
|
+
/* @__PURE__ */ (0, import_jsx_runtime257.jsx)(Heading_default, { size: "md", children: "High Rating Reviews" }),
|
|
9031
|
+
/* @__PURE__ */ (0, import_jsx_runtime257.jsx)(Box_default, { maxWidth: "400px", children: /* @__PURE__ */ (0, import_jsx_runtime257.jsx)(Reviews_default, { ...highRatingData }) })
|
|
8322
9032
|
] }),
|
|
8323
|
-
/* @__PURE__ */ (0,
|
|
8324
|
-
/* @__PURE__ */ (0,
|
|
8325
|
-
/* @__PURE__ */ (0,
|
|
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: "Mobile Layout (320px width)" }),
|
|
9035
|
+
/* @__PURE__ */ (0, import_jsx_runtime257.jsx)(
|
|
8326
9036
|
Box_default,
|
|
8327
9037
|
{
|
|
8328
9038
|
maxWidth: "320px",
|
|
8329
9039
|
border: "1px solid var(--color-neutral-200)",
|
|
8330
9040
|
p: "var(--spacing-4)",
|
|
8331
|
-
children: /* @__PURE__ */ (0,
|
|
9041
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime257.jsx)(Reviews_default, { ...sampleData })
|
|
8332
9042
|
}
|
|
8333
9043
|
)
|
|
8334
9044
|
] })
|
|
@@ -8374,6 +9084,8 @@ var ReviewsShowcase_default = ReviewsShowcase;
|
|
|
8374
9084
|
ReviewCard,
|
|
8375
9085
|
Reviews,
|
|
8376
9086
|
ReviewsShowcase,
|
|
9087
|
+
ScrollingCarousel,
|
|
9088
|
+
ScrollingCarouselStep,
|
|
8377
9089
|
Select,
|
|
8378
9090
|
Spinner,
|
|
8379
9091
|
StarRating,
|