@landtrustinc/design-system 1.2.20 → 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 +863 -149
- 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
|
]
|
|
@@ -4295,7 +4297,7 @@ var markdownContentStyles = import_react10.css`
|
|
|
4295
4297
|
border-left: 3px solid var(--border-primary);
|
|
4296
4298
|
margin: var(--spacing-4) 0;
|
|
4297
4299
|
padding-left: var(--spacing-4);
|
|
4298
|
-
color: var(--text-
|
|
4300
|
+
color: var(--text-primary);
|
|
4299
4301
|
font-style: italic;
|
|
4300
4302
|
line-height: 1.6;
|
|
4301
4303
|
}
|
|
@@ -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,
|
|
@@ -5926,8 +5928,10 @@ var ChatWidget = ({
|
|
|
5926
5928
|
const messagesChanged = messages.length !== previousMessagesLength.current;
|
|
5927
5929
|
previousMessagesLength.current = messages.length;
|
|
5928
5930
|
if (messagesChanged || isThinking) {
|
|
5929
|
-
|
|
5930
|
-
|
|
5931
|
+
requestAnimationFrame(() => {
|
|
5932
|
+
el.scrollTo({ top: el.scrollHeight, behavior: "smooth" });
|
|
5933
|
+
savedScrollPosition.current = el.scrollHeight;
|
|
5934
|
+
});
|
|
5931
5935
|
}
|
|
5932
5936
|
}, [messages, isThinking, isExpanded]);
|
|
5933
5937
|
const messagesToRender = messages.length === 0 ? emptyState : messages;
|
|
@@ -7874,55 +7878,686 @@ var Navigation = ({
|
|
|
7874
7878
|
};
|
|
7875
7879
|
var Navigation_default = Navigation;
|
|
7876
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
|
+
|
|
7877
8513
|
// src/PackageCard/PackageCard.styles.ts
|
|
7878
|
-
var
|
|
7879
|
-
var cardContainerStyles3 =
|
|
8514
|
+
var import_react53 = require("@emotion/react");
|
|
8515
|
+
var cardContainerStyles3 = import_react53.css`
|
|
7880
8516
|
color: var(--text-primary);
|
|
7881
8517
|
position: relative;
|
|
7882
8518
|
width: 100%;
|
|
7883
|
-
|
|
8519
|
+
height: 100%;
|
|
7884
8520
|
background: white;
|
|
7885
|
-
border-radius: var(--spacing-4);
|
|
7886
8521
|
overflow: hidden;
|
|
7887
|
-
cursor: pointer;
|
|
7888
8522
|
transition: all 0.2s ease;
|
|
7889
|
-
box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
|
|
7890
|
-
|
|
7891
|
-
&:hover {
|
|
7892
|
-
transform: translateY(-2px);
|
|
7893
|
-
box-shadow: 0 4px 16px rgba(0, 0, 0, 0.15);
|
|
7894
|
-
}
|
|
7895
8523
|
`;
|
|
7896
|
-
var imageContainerStyles =
|
|
8524
|
+
var imageContainerStyles = import_react53.css`
|
|
7897
8525
|
position: relative;
|
|
7898
8526
|
width: 100%;
|
|
7899
|
-
height:
|
|
8527
|
+
height: 260px;
|
|
7900
8528
|
overflow: hidden;
|
|
7901
8529
|
border-radius: var(--spacing-4);
|
|
7902
8530
|
`;
|
|
7903
|
-
var imageStyles2 =
|
|
8531
|
+
var imageStyles2 = import_react53.css`
|
|
7904
8532
|
width: 100%;
|
|
7905
|
-
height:
|
|
8533
|
+
height: 260px;
|
|
7906
8534
|
background-size: cover;
|
|
7907
8535
|
background-position: center;
|
|
7908
8536
|
background-repeat: no-repeat;
|
|
7909
|
-
|
|
8537
|
+
position: relative;
|
|
8538
|
+
background-color: lightgray;
|
|
7910
8539
|
`;
|
|
7911
|
-
var
|
|
8540
|
+
var badgeTopLeftStyles = import_react53.css`
|
|
7912
8541
|
position: absolute;
|
|
7913
8542
|
top: var(--spacing-3);
|
|
7914
8543
|
left: var(--spacing-3);
|
|
7915
8544
|
z-index: 2;
|
|
7916
8545
|
`;
|
|
7917
|
-
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`
|
|
7918
8553
|
position: absolute;
|
|
7919
8554
|
top: var(--spacing-3);
|
|
7920
8555
|
right: var(--spacing-3);
|
|
7921
8556
|
width: 32px;
|
|
7922
8557
|
height: 32px;
|
|
7923
|
-
background: rgba(255, 255, 255, 0.
|
|
7924
|
-
backdrop-filter: blur(8px);
|
|
8558
|
+
background: rgba(255, 255, 255, 0.4);
|
|
7925
8559
|
border-radius: 50%;
|
|
8560
|
+
border: 1px solid var(--border-primary);
|
|
7926
8561
|
display: flex;
|
|
7927
8562
|
align-items: center;
|
|
7928
8563
|
justify-content: center;
|
|
@@ -7936,103 +8571,180 @@ var heartIconStyles = import_react46.css`
|
|
|
7936
8571
|
transform: scale(1.1);
|
|
7937
8572
|
}
|
|
7938
8573
|
`;
|
|
7939
|
-
var
|
|
7940
|
-
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;
|
|
7941
8592
|
`;
|
|
7942
8593
|
|
|
7943
8594
|
// src/PackageCard/PackageCard.tsx
|
|
7944
|
-
var
|
|
8595
|
+
var import_jsx_runtime250 = require("@emotion/react/jsx-runtime");
|
|
7945
8596
|
var PackageCard = ({
|
|
7946
8597
|
images,
|
|
7947
8598
|
title,
|
|
7948
8599
|
subtitle,
|
|
7949
8600
|
startingPrice,
|
|
7950
|
-
tripsLeft,
|
|
7951
8601
|
isFavorited = false,
|
|
7952
8602
|
onFavoriteClick,
|
|
7953
8603
|
onClick,
|
|
7954
8604
|
className,
|
|
7955
|
-
|
|
7956
|
-
|
|
7957
|
-
|
|
8605
|
+
badges,
|
|
8606
|
+
availabilityBadges,
|
|
8607
|
+
id,
|
|
8608
|
+
hasContentBackground = false,
|
|
7958
8609
|
...rest
|
|
7959
8610
|
}) => {
|
|
7960
|
-
const
|
|
7961
|
-
|
|
7962
|
-
|
|
7963
|
-
|
|
7964
|
-
|
|
7965
|
-
|
|
7966
|
-
|
|
7967
|
-
|
|
7968
|
-
|
|
7969
|
-
|
|
7970
|
-
|
|
7971
|
-
|
|
7972
|
-
|
|
7973
|
-
|
|
7974
|
-
|
|
7975
|
-
|
|
7976
|
-
|
|
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,
|
|
7977
8663
|
{
|
|
7978
|
-
|
|
7979
|
-
|
|
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
|
+
)
|
|
7980
8685
|
}
|
|
7981
8686
|
)
|
|
7982
|
-
}
|
|
7983
|
-
|
|
7984
|
-
|
|
7985
|
-
/* @__PURE__ */ (0, import_jsx_runtime248.jsxs)(Box_default, { css: contentStyles2, children: [
|
|
7986
|
-
/* @__PURE__ */ (0, import_jsx_runtime248.jsxs)(
|
|
7987
|
-
Box_default,
|
|
7988
|
-
{
|
|
7989
|
-
onClick,
|
|
7990
|
-
display: "flex",
|
|
7991
|
-
flexDirection: "column",
|
|
7992
|
-
gap: "var(--spacing-1)",
|
|
7993
|
-
mb: "var(--spacing-4)",
|
|
7994
|
-
children: [
|
|
7995
|
-
/* @__PURE__ */ (0, import_jsx_runtime248.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime248.jsx)(Text_default, { size: "md", fontWeight: "bold", children: title }) }),
|
|
7996
|
-
/* @__PURE__ */ (0, import_jsx_runtime248.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime248.jsx)(Text_default, { size: "xs", fontWeight: "bold", children: subtitle }) }),
|
|
7997
|
-
/* @__PURE__ */ (0, import_jsx_runtime248.jsx)(Box_default, { children: /* @__PURE__ */ (0, import_jsx_runtime248.jsxs)(Text_default, { size: "xs", fontWeight: "normal", children: [
|
|
7998
|
-
"Starting Price ",
|
|
7999
|
-
startingPrice,
|
|
8000
|
-
" / Guest"
|
|
8001
|
-
] }) })
|
|
8002
|
-
]
|
|
8003
|
-
}
|
|
8004
|
-
),
|
|
8005
|
-
/* @__PURE__ */ (0, import_jsx_runtime248.jsxs)(Box_default, { display: "flex", gap: "var(--spacing-3)", alignItems: "center", children: [
|
|
8006
|
-
days && /* @__PURE__ */ (0, import_jsx_runtime248.jsx)(
|
|
8007
|
-
IconLabel_default,
|
|
8008
|
-
{
|
|
8009
|
-
variant: "Calendar",
|
|
8010
|
-
label: `${days} Day${days !== 1 ? "s" : ""}`
|
|
8011
|
-
}
|
|
8012
|
-
),
|
|
8013
|
-
guests && /* @__PURE__ */ (0, import_jsx_runtime248.jsx)(
|
|
8014
|
-
IconLabel_default,
|
|
8687
|
+
] }),
|
|
8688
|
+
/* @__PURE__ */ (0, import_jsx_runtime250.jsxs)(
|
|
8689
|
+
Box_default,
|
|
8015
8690
|
{
|
|
8016
|
-
|
|
8017
|
-
|
|
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
|
+
]
|
|
8018
8731
|
}
|
|
8019
|
-
)
|
|
8020
|
-
|
|
8021
|
-
|
|
8022
|
-
|
|
8023
|
-
] });
|
|
8732
|
+
)
|
|
8733
|
+
]
|
|
8734
|
+
}
|
|
8735
|
+
);
|
|
8024
8736
|
};
|
|
8025
8737
|
var PackageCard_default = PackageCard;
|
|
8026
8738
|
|
|
8027
8739
|
// src/PackageHeader/PackageHeader.tsx
|
|
8028
|
-
var
|
|
8740
|
+
var import_jsx_runtime251 = require("@emotion/react/jsx-runtime");
|
|
8029
8741
|
var PackageHeader = ({
|
|
8030
8742
|
header,
|
|
8031
8743
|
subheader,
|
|
8032
8744
|
features,
|
|
8033
8745
|
className
|
|
8034
8746
|
}) => {
|
|
8035
|
-
return /* @__PURE__ */ (0,
|
|
8747
|
+
return /* @__PURE__ */ (0, import_jsx_runtime251.jsxs)(
|
|
8036
8748
|
Box_default,
|
|
8037
8749
|
{
|
|
8038
8750
|
display: "flex",
|
|
@@ -8041,9 +8753,9 @@ var PackageHeader = ({
|
|
|
8041
8753
|
color: "var(--text-primary)",
|
|
8042
8754
|
className,
|
|
8043
8755
|
children: [
|
|
8044
|
-
/* @__PURE__ */ (0,
|
|
8045
|
-
subheader && /* @__PURE__ */ (0,
|
|
8046
|
-
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 })
|
|
8047
8759
|
]
|
|
8048
8760
|
}
|
|
8049
8761
|
);
|
|
@@ -8051,8 +8763,8 @@ var PackageHeader = ({
|
|
|
8051
8763
|
var PackageHeader_default = PackageHeader;
|
|
8052
8764
|
|
|
8053
8765
|
// src/ReviewCard/components/ReviewImages.styles.ts
|
|
8054
|
-
var
|
|
8055
|
-
var imageStyles3 =
|
|
8766
|
+
var import_react54 = require("@emotion/react");
|
|
8767
|
+
var imageStyles3 = import_react54.css`
|
|
8056
8768
|
flex: 1;
|
|
8057
8769
|
min-width: 0;
|
|
8058
8770
|
max-width: 100%;
|
|
@@ -8063,13 +8775,13 @@ var imageStyles3 = import_react47.css`
|
|
|
8063
8775
|
`;
|
|
8064
8776
|
|
|
8065
8777
|
// src/ReviewCard/components/ReviewImages.tsx
|
|
8066
|
-
var
|
|
8778
|
+
var import_jsx_runtime252 = require("@emotion/react/jsx-runtime");
|
|
8067
8779
|
var ReviewImages = ({ images, maxImages = 3 }) => {
|
|
8068
8780
|
const displayImages = images.slice(0, maxImages);
|
|
8069
8781
|
if (displayImages.length === 0) {
|
|
8070
8782
|
return null;
|
|
8071
8783
|
}
|
|
8072
|
-
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)(
|
|
8073
8785
|
"img",
|
|
8074
8786
|
{
|
|
8075
8787
|
src: image,
|
|
@@ -8082,7 +8794,7 @@ var ReviewImages = ({ images, maxImages = 3 }) => {
|
|
|
8082
8794
|
var ReviewImages_default = ReviewImages;
|
|
8083
8795
|
|
|
8084
8796
|
// src/ReviewCard/components/ReviewReply.tsx
|
|
8085
|
-
var
|
|
8797
|
+
var import_jsx_runtime253 = require("@emotion/react/jsx-runtime");
|
|
8086
8798
|
var ReviewReply = ({
|
|
8087
8799
|
avatarSrc,
|
|
8088
8800
|
name,
|
|
@@ -8091,7 +8803,7 @@ var ReviewReply = ({
|
|
|
8091
8803
|
label,
|
|
8092
8804
|
rating
|
|
8093
8805
|
}) => {
|
|
8094
|
-
return /* @__PURE__ */ (0,
|
|
8806
|
+
return /* @__PURE__ */ (0, import_jsx_runtime253.jsxs)(
|
|
8095
8807
|
Box_default,
|
|
8096
8808
|
{
|
|
8097
8809
|
backgroundColor: "var(--surface-neutral)",
|
|
@@ -8101,7 +8813,7 @@ var ReviewReply = ({
|
|
|
8101
8813
|
flexDirection: "column",
|
|
8102
8814
|
gap: "var(--spacing-3)",
|
|
8103
8815
|
children: [
|
|
8104
|
-
/* @__PURE__ */ (0,
|
|
8816
|
+
/* @__PURE__ */ (0, import_jsx_runtime253.jsxs)(
|
|
8105
8817
|
Box_default,
|
|
8106
8818
|
{
|
|
8107
8819
|
display: "flex",
|
|
@@ -8109,7 +8821,7 @@ var ReviewReply = ({
|
|
|
8109
8821
|
justifyContent: "space-between",
|
|
8110
8822
|
gap: "var(--spacing-2)",
|
|
8111
8823
|
children: [
|
|
8112
|
-
/* @__PURE__ */ (0,
|
|
8824
|
+
/* @__PURE__ */ (0, import_jsx_runtime253.jsx)(
|
|
8113
8825
|
UserCard_default,
|
|
8114
8826
|
{
|
|
8115
8827
|
avatarSrc,
|
|
@@ -8118,11 +8830,11 @@ var ReviewReply = ({
|
|
|
8118
8830
|
rating
|
|
8119
8831
|
}
|
|
8120
8832
|
),
|
|
8121
|
-
/* @__PURE__ */ (0,
|
|
8833
|
+
/* @__PURE__ */ (0, import_jsx_runtime253.jsx)(AvailabilityBadge_default, { variant: "neutral", children: label })
|
|
8122
8834
|
]
|
|
8123
8835
|
}
|
|
8124
8836
|
),
|
|
8125
|
-
/* @__PURE__ */ (0,
|
|
8837
|
+
/* @__PURE__ */ (0, import_jsx_runtime253.jsx)(Text_default, { children: content })
|
|
8126
8838
|
]
|
|
8127
8839
|
}
|
|
8128
8840
|
);
|
|
@@ -8130,7 +8842,7 @@ var ReviewReply = ({
|
|
|
8130
8842
|
var ReviewReply_default = ReviewReply;
|
|
8131
8843
|
|
|
8132
8844
|
// src/ReviewCard/ReviewCard.tsx
|
|
8133
|
-
var
|
|
8845
|
+
var import_jsx_runtime254 = require("@emotion/react/jsx-runtime");
|
|
8134
8846
|
var ReviewCard = ({
|
|
8135
8847
|
avatarSrc,
|
|
8136
8848
|
name,
|
|
@@ -8142,7 +8854,7 @@ var ReviewCard = ({
|
|
|
8142
8854
|
replies = [],
|
|
8143
8855
|
className
|
|
8144
8856
|
}) => {
|
|
8145
|
-
return /* @__PURE__ */ (0,
|
|
8857
|
+
return /* @__PURE__ */ (0, import_jsx_runtime254.jsxs)(
|
|
8146
8858
|
Box_default,
|
|
8147
8859
|
{
|
|
8148
8860
|
backgroundColor: "white",
|
|
@@ -8153,7 +8865,7 @@ var ReviewCard = ({
|
|
|
8153
8865
|
gap: "var(--spacing-4)",
|
|
8154
8866
|
className,
|
|
8155
8867
|
children: [
|
|
8156
|
-
/* @__PURE__ */ (0,
|
|
8868
|
+
/* @__PURE__ */ (0, import_jsx_runtime254.jsx)(
|
|
8157
8869
|
UserCard_default,
|
|
8158
8870
|
{
|
|
8159
8871
|
avatarSrc,
|
|
@@ -8162,10 +8874,10 @@ var ReviewCard = ({
|
|
|
8162
8874
|
rating
|
|
8163
8875
|
}
|
|
8164
8876
|
),
|
|
8165
|
-
availabilityBadge && /* @__PURE__ */ (0,
|
|
8166
|
-
/* @__PURE__ */ (0,
|
|
8167
|
-
images.length > 0 && /* @__PURE__ */ (0,
|
|
8168
|
-
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)(
|
|
8169
8881
|
ReviewReply_default,
|
|
8170
8882
|
{
|
|
8171
8883
|
avatarSrc: reply.avatarSrc,
|
|
@@ -8184,12 +8896,12 @@ var ReviewCard = ({
|
|
|
8184
8896
|
var ReviewCard_default = ReviewCard;
|
|
8185
8897
|
|
|
8186
8898
|
// src/Reviews/Reviews.tsx
|
|
8187
|
-
var
|
|
8899
|
+
var import_react55 = require("@emotion/react");
|
|
8188
8900
|
|
|
8189
8901
|
// src/Reviews/components/ReviewItem.tsx
|
|
8190
|
-
var
|
|
8902
|
+
var import_jsx_runtime255 = require("@emotion/react/jsx-runtime");
|
|
8191
8903
|
var ReviewItem = ({ label, rating }) => {
|
|
8192
|
-
return /* @__PURE__ */ (0,
|
|
8904
|
+
return /* @__PURE__ */ (0, import_jsx_runtime255.jsxs)(
|
|
8193
8905
|
Box_default,
|
|
8194
8906
|
{
|
|
8195
8907
|
display: "flex",
|
|
@@ -8197,10 +8909,10 @@ var ReviewItem = ({ label, rating }) => {
|
|
|
8197
8909
|
alignItems: "center",
|
|
8198
8910
|
width: "100%",
|
|
8199
8911
|
children: [
|
|
8200
|
-
/* @__PURE__ */ (0,
|
|
8201
|
-
/* @__PURE__ */ (0,
|
|
8202
|
-
/* @__PURE__ */ (0,
|
|
8203
|
-
/* @__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: [
|
|
8204
8916
|
rating,
|
|
8205
8917
|
"/5"
|
|
8206
8918
|
] })
|
|
@@ -8212,14 +8924,14 @@ var ReviewItem = ({ label, rating }) => {
|
|
|
8212
8924
|
var ReviewItem_default = ReviewItem;
|
|
8213
8925
|
|
|
8214
8926
|
// src/Reviews/Reviews.tsx
|
|
8215
|
-
var
|
|
8927
|
+
var import_jsx_runtime256 = require("@emotion/react/jsx-runtime");
|
|
8216
8928
|
var Reviews = ({
|
|
8217
8929
|
averageRating,
|
|
8218
8930
|
totalReviews,
|
|
8219
8931
|
items,
|
|
8220
8932
|
className
|
|
8221
8933
|
}) => {
|
|
8222
|
-
return /* @__PURE__ */ (0,
|
|
8934
|
+
return /* @__PURE__ */ (0, import_jsx_runtime256.jsxs)(
|
|
8223
8935
|
Box_default,
|
|
8224
8936
|
{
|
|
8225
8937
|
width: "100%",
|
|
@@ -8232,7 +8944,7 @@ var Reviews = ({
|
|
|
8232
8944
|
p: "var(--spacing-4)",
|
|
8233
8945
|
className,
|
|
8234
8946
|
children: [
|
|
8235
|
-
/* @__PURE__ */ (0,
|
|
8947
|
+
/* @__PURE__ */ (0, import_jsx_runtime256.jsxs)(
|
|
8236
8948
|
Box_default,
|
|
8237
8949
|
{
|
|
8238
8950
|
display: "flex",
|
|
@@ -8240,12 +8952,12 @@ var Reviews = ({
|
|
|
8240
8952
|
alignItems: "center",
|
|
8241
8953
|
gap: "var(--spacing-2)",
|
|
8242
8954
|
children: [
|
|
8243
|
-
/* @__PURE__ */ (0,
|
|
8244
|
-
/* @__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)(
|
|
8245
8957
|
StarRating_default,
|
|
8246
8958
|
{
|
|
8247
8959
|
rating: Math.floor(averageRating),
|
|
8248
|
-
css:
|
|
8960
|
+
css: import_react55.css`
|
|
8249
8961
|
> svg {
|
|
8250
8962
|
height: 40px;
|
|
8251
8963
|
width: 40px;
|
|
@@ -8253,7 +8965,7 @@ var Reviews = ({
|
|
|
8253
8965
|
`
|
|
8254
8966
|
}
|
|
8255
8967
|
),
|
|
8256
|
-
/* @__PURE__ */ (0,
|
|
8968
|
+
/* @__PURE__ */ (0, import_jsx_runtime256.jsxs)(Text_default, { size: "sm", color: "text-secondary", children: [
|
|
8257
8969
|
"Overall Rating \u2022 ",
|
|
8258
8970
|
totalReviews,
|
|
8259
8971
|
" Review",
|
|
@@ -8262,14 +8974,14 @@ var Reviews = ({
|
|
|
8262
8974
|
]
|
|
8263
8975
|
}
|
|
8264
8976
|
),
|
|
8265
|
-
/* @__PURE__ */ (0,
|
|
8977
|
+
/* @__PURE__ */ (0, import_jsx_runtime256.jsx)(
|
|
8266
8978
|
Box_default,
|
|
8267
8979
|
{
|
|
8268
8980
|
display: "flex",
|
|
8269
8981
|
flexDirection: "column",
|
|
8270
8982
|
gap: "var(--spacing-2)",
|
|
8271
8983
|
width: "100%",
|
|
8272
|
-
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))
|
|
8273
8985
|
}
|
|
8274
8986
|
)
|
|
8275
8987
|
]
|
|
@@ -8279,7 +8991,7 @@ var Reviews = ({
|
|
|
8279
8991
|
var Reviews_default = Reviews;
|
|
8280
8992
|
|
|
8281
8993
|
// src/Reviews/ReviewsShowcase.tsx
|
|
8282
|
-
var
|
|
8994
|
+
var import_jsx_runtime257 = require("@emotion/react/jsx-runtime");
|
|
8283
8995
|
var ReviewsShowcase = () => {
|
|
8284
8996
|
const sampleData = {
|
|
8285
8997
|
averageRating: 4,
|
|
@@ -8301,7 +9013,7 @@ var ReviewsShowcase = () => {
|
|
|
8301
9013
|
{ label: "Game Abundance", rating: 5 }
|
|
8302
9014
|
]
|
|
8303
9015
|
};
|
|
8304
|
-
return /* @__PURE__ */ (0,
|
|
9016
|
+
return /* @__PURE__ */ (0, import_jsx_runtime257.jsxs)(
|
|
8305
9017
|
Box_default,
|
|
8306
9018
|
{
|
|
8307
9019
|
display: "flex",
|
|
@@ -8309,24 +9021,24 @@ var ReviewsShowcase = () => {
|
|
|
8309
9021
|
gap: "var(--spacing-8)",
|
|
8310
9022
|
p: "var(--spacing-6)",
|
|
8311
9023
|
children: [
|
|
8312
|
-
/* @__PURE__ */ (0,
|
|
8313
|
-
/* @__PURE__ */ (0,
|
|
8314
|
-
/* @__PURE__ */ (0,
|
|
8315
|
-
/* @__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 }) })
|
|
8316
9028
|
] }),
|
|
8317
|
-
/* @__PURE__ */ (0,
|
|
8318
|
-
/* @__PURE__ */ (0,
|
|
8319
|
-
/* @__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 }) })
|
|
8320
9032
|
] }),
|
|
8321
|
-
/* @__PURE__ */ (0,
|
|
8322
|
-
/* @__PURE__ */ (0,
|
|
8323
|
-
/* @__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)(
|
|
8324
9036
|
Box_default,
|
|
8325
9037
|
{
|
|
8326
9038
|
maxWidth: "320px",
|
|
8327
9039
|
border: "1px solid var(--color-neutral-200)",
|
|
8328
9040
|
p: "var(--spacing-4)",
|
|
8329
|
-
children: /* @__PURE__ */ (0,
|
|
9041
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime257.jsx)(Reviews_default, { ...sampleData })
|
|
8330
9042
|
}
|
|
8331
9043
|
)
|
|
8332
9044
|
] })
|
|
@@ -8372,6 +9084,8 @@ var ReviewsShowcase_default = ReviewsShowcase;
|
|
|
8372
9084
|
ReviewCard,
|
|
8373
9085
|
Reviews,
|
|
8374
9086
|
ReviewsShowcase,
|
|
9087
|
+
ScrollingCarousel,
|
|
9088
|
+
ScrollingCarouselStep,
|
|
8375
9089
|
Select,
|
|
8376
9090
|
Spinner,
|
|
8377
9091
|
StarRating,
|