@hotelcard/ui 0.0.4 → 0.0.6

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.

Potentially problematic release.


This version of @hotelcard/ui might be problematic. Click here for more details.

package/dist/index.js CHANGED
@@ -1,51 +1,8 @@
1
- "use strict";
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
- var __getOwnPropNames = Object.getOwnPropertyNames;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __export = (target, all) => {
7
- for (var name in all)
8
- __defProp(target, name, { get: all[name], enumerable: true });
9
- };
10
- var __copyProps = (to, from, except, desc) => {
11
- if (from && typeof from === "object" || typeof from === "function") {
12
- for (let key of __getOwnPropNames(from))
13
- if (!__hasOwnProp.call(to, key) && key !== except)
14
- __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
- }
16
- return to;
17
- };
18
- var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
-
20
- // src/index.ts
21
- var index_exports = {};
22
- __export(index_exports, {
23
- Badge: () => Badge,
24
- Button: () => Button,
25
- Card: () => Card,
26
- Checkbox: () => Checkbox,
27
- ChevronLeftIcon: () => ChevronLeftIcon,
28
- ChevronRightIcon: () => ChevronRightIcon2,
29
- Chip: () => Chip,
30
- CompactCard: () => CompactCard,
31
- Divider: () => Divider,
32
- Dropdown: () => Dropdown,
33
- HeartIcon: () => HeartIcon,
34
- Input: () => Input,
35
- Modal: () => Modal,
36
- PinIcon: () => PinIcon,
37
- RadioButton: () => RadioButton,
38
- Rating: () => Rating,
39
- SectionHeader: () => SectionHeader,
40
- StarIcon: () => StarIcon4
41
- });
42
- module.exports = __toCommonJS(index_exports);
43
-
44
1
  // src/components/Button/Button.tsx
45
- var import_react = require("react");
46
- var import_jsx_runtime = require("react/jsx-runtime");
2
+ import { forwardRef } from "react";
3
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
47
4
  var cx = (className) => `hc-btn-${className}`;
48
- var Button = (0, import_react.forwardRef)(({
5
+ var Button = forwardRef(({
49
6
  variant = "primary",
50
7
  size = "medium",
51
8
  leftIcon,
@@ -75,7 +32,7 @@ var Button = (0, import_react.forwardRef)(({
75
32
  classes.push(cx(variant));
76
33
  return classes.join(" ");
77
34
  };
78
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
35
+ return /* @__PURE__ */ jsx(
79
36
  "button",
80
37
  {
81
38
  ref,
@@ -83,10 +40,10 @@ var Button = (0, import_react.forwardRef)(({
83
40
  className: `${getButtonClasses()} ${className}`,
84
41
  disabled,
85
42
  ...props,
86
- children: iconOnly ? children : /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
87
- leftIcon && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: cx("icon-wrapper"), children: leftIcon }),
88
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: cx("text-wrapper"), children }),
89
- rightIcon && /* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { className: cx("icon-wrapper"), children: rightIcon })
43
+ children: iconOnly ? children : /* @__PURE__ */ jsxs(Fragment, { children: [
44
+ leftIcon && /* @__PURE__ */ jsx("span", { className: cx("icon-wrapper"), children: leftIcon }),
45
+ /* @__PURE__ */ jsx("span", { className: cx("text-wrapper"), children }),
46
+ rightIcon && /* @__PURE__ */ jsx("span", { className: cx("icon-wrapper"), children: rightIcon })
90
47
  ] })
91
48
  }
92
49
  );
@@ -94,7 +51,7 @@ var Button = (0, import_react.forwardRef)(({
94
51
  Button.displayName = "Button";
95
52
 
96
53
  // src/components/Badge/Badge.tsx
97
- var import_jsx_runtime2 = require("react/jsx-runtime");
54
+ import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
98
55
  var cx2 = (className) => `hc-badge-${className}`;
99
56
  var Badge = ({
100
57
  color = "primary",
@@ -119,23 +76,23 @@ var Badge = ({
119
76
  cx2("text"),
120
77
  size === "large" && icon ? cx2("text--largeWithIcon") : ""
121
78
  ].filter(Boolean).join(" ");
122
- return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("div", { className: badgeClasses, children: [
123
- icon && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: iconClasses }),
124
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("div", { className: textClasses, children })
79
+ return /* @__PURE__ */ jsxs2("div", { className: badgeClasses, children: [
80
+ icon && /* @__PURE__ */ jsx2("div", { className: iconClasses }),
81
+ /* @__PURE__ */ jsx2("div", { className: textClasses, children })
125
82
  ] });
126
83
  };
127
84
  Badge.displayName = "Badge";
128
85
 
129
86
  // src/components/Rating/Rating.tsx
130
- var import_jsx_runtime3 = require("react/jsx-runtime");
87
+ import { jsx as jsx3, jsxs as jsxs3 } from "react/jsx-runtime";
131
88
  var cx3 = (className) => `hc-rating-${className}`;
132
- var StarIcon = () => /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", children: [
133
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("g", { clipPath: "url(#clip0_full)", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("path", { d: "M12.0004 0.5C12.393 0.5 12.7551 0.723172 12.9339 1.07325L16.1402 7.38333L23.1155 8.49482C23.5037 8.55608 23.8265 8.83176 23.9487 9.20809C24.0708 9.58442 23.9705 9.99576 23.6957 10.2758L18.7008 15.2863L19.8045 22.2834C19.8656 22.6728 19.7042 23.0667 19.3857 23.2986C19.0673 23.5305 18.6441 23.5655 18.2951 23.3861L12.0004 20.1742L5.70561 23.3861C5.35663 23.5655 4.93349 23.5305 4.61504 23.2986C4.29659 23.0667 4.13519 22.6772 4.19626 22.2834L5.29555 15.2863L0.305106 10.2758C0.0259198 9.99576 -0.0700504 9.58442 0.0520935 9.20809C0.174237 8.83176 0.492684 8.55608 0.885289 8.49482L7.86058 7.38333L11.0712 1.07325C11.2501 0.723172 11.6121 0.5 12.0047 0.5H12.0004Z", fill: "#FBB041" }) }),
134
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("defs", { children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("clipPath", { id: "clip0_full", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("rect", { width: "24", height: "24", fill: "white" }) }) })
89
+ var StarIcon = () => /* @__PURE__ */ jsxs3("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", children: [
90
+ /* @__PURE__ */ jsx3("g", { clipPath: "url(#clip0_full)", children: /* @__PURE__ */ jsx3("path", { d: "M12.0004 0.5C12.393 0.5 12.7551 0.723172 12.9339 1.07325L16.1402 7.38333L23.1155 8.49482C23.5037 8.55608 23.8265 8.83176 23.9487 9.20809C24.0708 9.58442 23.9705 9.99576 23.6957 10.2758L18.7008 15.2863L19.8045 22.2834C19.8656 22.6728 19.7042 23.0667 19.3857 23.2986C19.0673 23.5305 18.6441 23.5655 18.2951 23.3861L12.0004 20.1742L5.70561 23.3861C5.35663 23.5655 4.93349 23.5305 4.61504 23.2986C4.29659 23.0667 4.13519 22.6772 4.19626 22.2834L5.29555 15.2863L0.305106 10.2758C0.0259198 9.99576 -0.0700504 9.58442 0.0520935 9.20809C0.174237 8.83176 0.492684 8.55608 0.885289 8.49482L7.86058 7.38333L11.0712 1.07325C11.2501 0.723172 11.6121 0.5 12.0047 0.5H12.0004Z", fill: "#FBB041" }) }),
91
+ /* @__PURE__ */ jsx3("defs", { children: /* @__PURE__ */ jsx3("clipPath", { id: "clip0_full", children: /* @__PURE__ */ jsx3("rect", { width: "24", height: "24", fill: "white" }) }) })
135
92
  ] });
136
- var HalfStarIcon = () => /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", children: [
137
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("defs", { children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("clipPath", { id: "half", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("rect", { x: "0", y: "0", width: "12", height: "24" }) }) }),
138
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
93
+ var HalfStarIcon = () => /* @__PURE__ */ jsxs3("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", children: [
94
+ /* @__PURE__ */ jsx3("defs", { children: /* @__PURE__ */ jsx3("clipPath", { id: "half", children: /* @__PURE__ */ jsx3("rect", { x: "0", y: "0", width: "12", height: "24" }) }) }),
95
+ /* @__PURE__ */ jsx3(
139
96
  "path",
140
97
  {
141
98
  clipPath: "url(#half)",
@@ -143,7 +100,7 @@ var HalfStarIcon = () => /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("svg", {
143
100
  fill: "#FBB041"
144
101
  }
145
102
  ),
146
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
103
+ /* @__PURE__ */ jsx3(
147
104
  "path",
148
105
  {
149
106
  d: "M12.0004 0.5C12.393 0.5 12.7551 0.723172 12.9339 1.07325L16.1402 7.38333L23.1155 8.49482C23.5037 8.55608 23.8265 8.83176 23.9487 9.20809C24.0708 9.58442 23.9705 9.99576 23.6957 10.2758L18.7008 15.2863L19.8045 22.2834C19.8656 22.6728 19.7042 23.0667 19.3857 23.2986C19.0673 23.5305 18.6441 23.5655 18.2951 23.3861L12.0004 20.1742L5.70561 23.3861C5.35663 23.5655 4.93349 23.5305 4.61504 23.2986C4.29659 23.0667 4.13519 22.6772 4.19626 22.2834L5.29555 15.2863L0.305106 10.2758C0.0259198 9.99576 -0.0700504 9.58442 0.0520935 9.20809C0.174237 8.83176 0.492684 8.55608 0.885289 8.49482L7.86058 7.38333L11.0712 1.07325C11.2501 0.723172 11.6121 0.5 12.0047 0.5H12.0004ZM12.0004 3.86071L9.47898 8.81426C9.3263 9.11182 9.04275 9.32187 8.71122 9.37438L3.23656 10.2496L7.15389 14.1835C7.38945 14.4198 7.49851 14.7568 7.44616 15.0893L6.58243 20.5811L11.5249 18.0606C11.8215 17.9074 12.1749 17.9074 12.4759 18.0606L17.4183 20.5811L16.5546 15.0893C16.5023 14.7568 16.6113 14.4198 16.8469 14.1835L20.7642 10.2496L15.2895 9.37438C14.958 9.32187 14.6745 9.11182 14.5218 8.81426L12.0004 3.86071Z",
@@ -151,9 +108,9 @@ var HalfStarIcon = () => /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("svg", {
151
108
  }
152
109
  )
153
110
  ] });
154
- var EmptyStarIcon = () => /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", children: [
155
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("g", { clipPath: "url(#clip0_empty)", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("path", { d: "M12.0004 0.5C12.393 0.5 12.7551 0.723172 12.9339 1.07325L16.1402 7.38333L23.1155 8.49482C23.5037 8.55608 23.8265 8.83176 23.9487 9.20809C24.0708 9.58442 23.9705 9.99576 23.6957 10.2758L18.7008 15.2863L19.8045 22.2834C19.8656 22.6728 19.7042 23.0667 19.3857 23.2986C19.0673 23.5305 18.6441 23.5655 18.2951 23.3861L12.0004 20.1742L5.70561 23.3861C5.35663 23.5655 4.93349 23.5305 4.61504 23.2986C4.29659 23.0667 4.13519 22.6772 4.19626 22.2834L5.29555 15.2863L0.305106 10.2758C0.0259198 9.99576 -0.0700504 9.58442 0.0520935 9.20809C0.174237 8.83176 0.492684 8.55608 0.885289 8.49482L7.86058 7.38333L11.0712 1.07325C11.2501 0.723172 11.6121 0.5 12.0047 0.5H12.0004ZM12.0004 3.86071L9.47898 8.81426C9.3263 9.11182 9.04275 9.32187 8.71122 9.37438L3.23656 10.2496L7.15389 14.1835C7.38945 14.4198 7.49851 14.7568 7.44616 15.0893L6.58243 20.5811L11.5249 18.0606C11.8215 17.9074 12.1749 17.9074 12.4759 18.0606L17.4183 20.5811L16.5546 15.0893C16.5023 14.7568 16.6113 14.4198 16.8469 14.1835L20.7642 10.2496L15.2895 9.37438C14.958 9.32187 14.6745 9.11182 14.5218 8.81426L12.0004 3.86071Z", fill: "#9A5A00" }) }),
156
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("defs", { children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("clipPath", { id: "clip0_empty", children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("rect", { width: "24", height: "24", fill: "white" }) }) })
111
+ var EmptyStarIcon = () => /* @__PURE__ */ jsxs3("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", children: [
112
+ /* @__PURE__ */ jsx3("g", { clipPath: "url(#clip0_empty)", children: /* @__PURE__ */ jsx3("path", { d: "M12.0004 0.5C12.393 0.5 12.7551 0.723172 12.9339 1.07325L16.1402 7.38333L23.1155 8.49482C23.5037 8.55608 23.8265 8.83176 23.9487 9.20809C24.0708 9.58442 23.9705 9.99576 23.6957 10.2758L18.7008 15.2863L19.8045 22.2834C19.8656 22.6728 19.7042 23.0667 19.3857 23.2986C19.0673 23.5305 18.6441 23.5655 18.2951 23.3861L12.0004 20.1742L5.70561 23.3861C5.35663 23.5655 4.93349 23.5305 4.61504 23.2986C4.29659 23.0667 4.13519 22.6772 4.19626 22.2834L5.29555 15.2863L0.305106 10.2758C0.0259198 9.99576 -0.0700504 9.58442 0.0520935 9.20809C0.174237 8.83176 0.492684 8.55608 0.885289 8.49482L7.86058 7.38333L11.0712 1.07325C11.2501 0.723172 11.6121 0.5 12.0047 0.5H12.0004ZM12.0004 3.86071L9.47898 8.81426C9.3263 9.11182 9.04275 9.32187 8.71122 9.37438L3.23656 10.2496L7.15389 14.1835C7.38945 14.4198 7.49851 14.7568 7.44616 15.0893L6.58243 20.5811L11.5249 18.0606C11.8215 17.9074 12.1749 17.9074 12.4759 18.0606L17.4183 20.5811L16.5546 15.0893C16.5023 14.7568 16.6113 14.4198 16.8469 14.1835L20.7642 10.2496L15.2895 9.37438C14.958 9.32187 14.6745 9.11182 14.5218 8.81426L12.0004 3.86071Z", fill: "#9A5A00" }) }),
113
+ /* @__PURE__ */ jsx3("defs", { children: /* @__PURE__ */ jsx3("clipPath", { id: "clip0_empty", children: /* @__PURE__ */ jsx3("rect", { width: "24", height: "24", fill: "white" }) }) })
157
114
  ] });
158
115
  var Rating = ({
159
116
  variant = "stars",
@@ -178,51 +135,51 @@ var Rating = ({
178
135
  const stars = [];
179
136
  for (let i = 0; i < fullStars; i++) {
180
137
  stars.push(
181
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: starClasses, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(StarIcon, {}) }, `full-${i}`)
138
+ /* @__PURE__ */ jsx3("span", { className: starClasses, children: /* @__PURE__ */ jsx3(StarIcon, {}) }, `full-${i}`)
182
139
  );
183
140
  }
184
141
  if (hasHalfStar) {
185
142
  stars.push(
186
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: starClasses, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(HalfStarIcon, {}) }, "half")
143
+ /* @__PURE__ */ jsx3("span", { className: starClasses, children: /* @__PURE__ */ jsx3(HalfStarIcon, {}) }, "half")
187
144
  );
188
145
  }
189
146
  for (let i = 0; i < emptyStars; i++) {
190
147
  stars.push(
191
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: starClasses, children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(EmptyStarIcon, {}) }, `empty-${i}`)
148
+ /* @__PURE__ */ jsx3("span", { className: starClasses, children: /* @__PURE__ */ jsx3(EmptyStarIcon, {}) }, `empty-${i}`)
192
149
  );
193
150
  }
194
151
  return stars;
195
152
  };
196
153
  if (variant === "stars") {
197
154
  const containerClasses2 = [cx3("starsContainer"), className].filter(Boolean).join(" ");
198
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: containerClasses2, children: [
199
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { className: cx3("starContainer"), children: renderStars() }),
200
- showValue && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: cx3("valueDisplay"), children: clampedValue.toLocaleString("de-CH") })
155
+ return /* @__PURE__ */ jsxs3("div", { className: containerClasses2, children: [
156
+ /* @__PURE__ */ jsx3("div", { className: cx3("starContainer"), children: renderStars() }),
157
+ showValue && /* @__PURE__ */ jsx3("span", { className: cx3("valueDisplay"), children: clampedValue.toLocaleString("de-CH") })
201
158
  ] });
202
159
  }
203
160
  if (variant === "result") {
204
161
  const containerClasses2 = [cx3("resultContainer"), className].filter(Boolean).join(" ");
205
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: containerClasses2, children: [
206
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: cx3("resultChar"), children: "N" }),
207
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { children: renderStars() })
162
+ return /* @__PURE__ */ jsxs3("div", { className: containerClasses2, children: [
163
+ /* @__PURE__ */ jsx3("span", { className: cx3("resultChar"), children: "N" }),
164
+ /* @__PURE__ */ jsx3("div", { children: renderStars() })
208
165
  ] });
209
166
  }
210
167
  const containerClasses = [cx3("blockContainer"), className].filter(Boolean).join(" ");
211
- return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: containerClasses, children: [
212
- /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: cx3("blockHeader"), children: [
213
- /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("div", { className: cx3("blockHeaderLeft"), children: [
214
- name && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: cx3("blockName"), children: name }),
215
- /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("div", { children: renderStars() })
168
+ return /* @__PURE__ */ jsxs3("div", { className: containerClasses, children: [
169
+ /* @__PURE__ */ jsxs3("div", { className: cx3("blockHeader"), children: [
170
+ /* @__PURE__ */ jsxs3("div", { className: cx3("blockHeaderLeft"), children: [
171
+ name && /* @__PURE__ */ jsx3("span", { className: cx3("blockName"), children: name }),
172
+ /* @__PURE__ */ jsx3("div", { children: renderStars() })
216
173
  ] }),
217
- date && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: cx3("blockDate"), children: date })
174
+ date && /* @__PURE__ */ jsx3("span", { className: cx3("blockDate"), children: date })
218
175
  ] }),
219
- quote && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("p", { className: cx3("blockQuote"), children: quote })
176
+ quote && /* @__PURE__ */ jsx3("p", { className: cx3("blockQuote"), children: quote })
220
177
  ] });
221
178
  };
222
179
  Rating.displayName = "Rating";
223
180
 
224
181
  // src/components/Divider/Divider.tsx
225
- var import_jsx_runtime4 = require("react/jsx-runtime");
182
+ import { jsx as jsx4, jsxs as jsxs4 } from "react/jsx-runtime";
226
183
  var cx4 = (className) => `hc-divider-${className}`;
227
184
  var Divider = ({
228
185
  label,
@@ -232,7 +189,7 @@ var Divider = ({
232
189
  const isHorizontal = orientation === "horizontal";
233
190
  if (!label) {
234
191
  const lineClass2 = isHorizontal ? cx4("lineStandalone--horizontal") : cx4("lineStandalone--vertical");
235
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
192
+ return /* @__PURE__ */ jsx4(
236
193
  "div",
237
194
  {
238
195
  className: [lineClass2, className].filter(Boolean).join(" "),
@@ -248,7 +205,7 @@ var Divider = ({
248
205
  containerClass,
249
206
  className
250
207
  ].filter(Boolean).join(" ");
251
- return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)(
208
+ return /* @__PURE__ */ jsxs4(
252
209
  "div",
253
210
  {
254
211
  className: containerClasses,
@@ -256,9 +213,9 @@ var Divider = ({
256
213
  "aria-orientation": orientation,
257
214
  "aria-label": typeof label === "string" ? label : void 0,
258
215
  children: [
259
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: lineClass }),
260
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("span", { className: cx4("label"), children: label }),
261
- /* @__PURE__ */ (0, import_jsx_runtime4.jsx)("div", { className: lineClass })
216
+ /* @__PURE__ */ jsx4("div", { className: lineClass }),
217
+ /* @__PURE__ */ jsx4("span", { className: cx4("label"), children: label }),
218
+ /* @__PURE__ */ jsx4("div", { className: lineClass })
262
219
  ]
263
220
  }
264
221
  );
@@ -266,11 +223,11 @@ var Divider = ({
266
223
  Divider.displayName = "Divider";
267
224
 
268
225
  // src/components/Chip/Chip.tsx
269
- var import_jsx_runtime5 = require("react/jsx-runtime");
226
+ import { jsx as jsx5, jsxs as jsxs5 } from "react/jsx-runtime";
270
227
  var cx5 = (className) => `hc-chip-${className}`;
271
- var CloseIcon = () => /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", children: [
272
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("g", { clipPath: "url(#clip0_chip_close)", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("path", { d: "M12 2.25C14.5859 2.25 17.0658 3.27723 18.8943 5.10571C20.7228 6.93419 21.75 9.41414 21.75 12C21.75 14.5859 20.7228 17.0658 18.8943 18.8943C17.0658 20.7228 14.5859 21.75 12 21.75C9.41414 21.75 6.93419 20.7228 5.10571 18.8943C3.27723 17.0658 2.25 14.5859 2.25 12C2.25 9.41414 3.27723 6.93419 5.10571 5.10571C6.93419 3.27723 9.41414 2.25 12 2.25ZM12 24C15.1826 24 18.2348 22.7357 20.4853 20.4853C22.7357 18.2348 24 15.1826 24 12C24 8.8174 22.7357 5.76516 20.4853 3.51472C18.2348 1.26428 15.1826 0 12 0C8.8174 0 5.76516 1.26428 3.51472 3.51472C1.26428 5.76516 0 8.8174 0 12C0 15.1826 1.26428 18.2348 3.51472 20.4853C5.76516 22.7357 8.8174 24 12 24ZM7.82812 7.82812C7.3875 8.26875 7.3875 8.98125 7.82812 9.41719L10.4062 11.9953L7.82812 14.5734C7.3875 15.0141 7.3875 15.7266 7.82812 16.1625C8.26875 16.5984 8.98125 16.6031 9.41719 16.1625L11.9953 13.5844L14.5734 16.1625C15.0141 16.6031 15.7266 16.6031 16.1625 16.1625C16.5984 15.7219 16.6031 15.0094 16.1625 14.5734L13.5844 11.9953L16.1625 9.41719C16.6031 8.97656 16.6031 8.26406 16.1625 7.82812C15.7219 7.39219 15.0094 7.3875 14.5734 7.82812L11.9953 10.4062L9.41719 7.82812C8.97656 7.3875 8.26406 7.3875 7.82812 7.82812Z", fill: "currentColor" }) }),
273
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("defs", { children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("clipPath", { id: "clip0_chip_close", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("rect", { width: "24", height: "24", fill: "white" }) }) })
228
+ var CloseIcon = () => /* @__PURE__ */ jsxs5("svg", { xmlns: "http://www.w3.org/2000/svg", width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", children: [
229
+ /* @__PURE__ */ jsx5("g", { clipPath: "url(#clip0_chip_close)", children: /* @__PURE__ */ jsx5("path", { d: "M12 2.25C14.5859 2.25 17.0658 3.27723 18.8943 5.10571C20.7228 6.93419 21.75 9.41414 21.75 12C21.75 14.5859 20.7228 17.0658 18.8943 18.8943C17.0658 20.7228 14.5859 21.75 12 21.75C9.41414 21.75 6.93419 20.7228 5.10571 18.8943C3.27723 17.0658 2.25 14.5859 2.25 12C2.25 9.41414 3.27723 6.93419 5.10571 5.10571C6.93419 3.27723 9.41414 2.25 12 2.25ZM12 24C15.1826 24 18.2348 22.7357 20.4853 20.4853C22.7357 18.2348 24 15.1826 24 12C24 8.8174 22.7357 5.76516 20.4853 3.51472C18.2348 1.26428 15.1826 0 12 0C8.8174 0 5.76516 1.26428 3.51472 3.51472C1.26428 5.76516 0 8.8174 0 12C0 15.1826 1.26428 18.2348 3.51472 20.4853C5.76516 22.7357 8.8174 24 12 24ZM7.82812 7.82812C7.3875 8.26875 7.3875 8.98125 7.82812 9.41719L10.4062 11.9953L7.82812 14.5734C7.3875 15.0141 7.3875 15.7266 7.82812 16.1625C8.26875 16.5984 8.98125 16.6031 9.41719 16.1625L11.9953 13.5844L14.5734 16.1625C15.0141 16.6031 15.7266 16.6031 16.1625 16.1625C16.5984 15.7219 16.6031 15.0094 16.1625 14.5734L13.5844 11.9953L16.1625 9.41719C16.6031 8.97656 16.6031 8.26406 16.1625 7.82812C15.7219 7.39219 15.0094 7.3875 14.5734 7.82812L11.9953 10.4062L9.41719 7.82812C8.97656 7.3875 8.26406 7.3875 7.82812 7.82812Z", fill: "currentColor" }) }),
230
+ /* @__PURE__ */ jsx5("defs", { children: /* @__PURE__ */ jsx5("clipPath", { id: "clip0_chip_close", children: /* @__PURE__ */ jsx5("rect", { width: "24", height: "24", fill: "white" }) }) })
274
231
  ] });
275
232
  var Chip = ({
276
233
  label,
@@ -311,7 +268,7 @@ var Chip = ({
311
268
  }
312
269
  }
313
270
  };
314
- return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
271
+ return /* @__PURE__ */ jsxs5(
315
272
  "button",
316
273
  {
317
274
  type: "button",
@@ -321,9 +278,9 @@ var Chip = ({
321
278
  disabled,
322
279
  "aria-label": removable ? `Remove filter: ${label}` : label,
323
280
  children: [
324
- /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: labelClasses, children: label }),
325
- count !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: countBadgeClasses, children: count }),
326
- removable && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { className: cx5("closeIcon"), "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(CloseIcon, {}) })
281
+ /* @__PURE__ */ jsx5("span", { className: labelClasses, children: label }),
282
+ count !== void 0 && /* @__PURE__ */ jsx5("span", { className: countBadgeClasses, children: count }),
283
+ removable && /* @__PURE__ */ jsx5("span", { className: cx5("closeIcon"), "aria-hidden": "true", children: /* @__PURE__ */ jsx5(CloseIcon, {}) })
327
284
  ]
328
285
  }
329
286
  );
@@ -331,8 +288,8 @@ var Chip = ({
331
288
  Chip.displayName = "Chip";
332
289
 
333
290
  // src/components/Checkbox/Checkbox.tsx
334
- var import_react2 = require("react");
335
- var import_jsx_runtime6 = require("react/jsx-runtime");
291
+ import { useState } from "react";
292
+ import { jsx as jsx6, jsxs as jsxs6 } from "react/jsx-runtime";
336
293
  var cx6 = (className) => `hc-checkbox-${className}`;
337
294
  var Checkbox = ({
338
295
  label,
@@ -346,8 +303,8 @@ var Checkbox = ({
346
303
  className = "",
347
304
  size = "medium"
348
305
  }) => {
349
- const [localChecked, setLocalChecked] = (0, import_react2.useState)(defaultChecked);
350
- const [isFocused, setIsFocused] = (0, import_react2.useState)(false);
306
+ const [localChecked, setLocalChecked] = useState(defaultChecked);
307
+ const [isFocused, setIsFocused] = useState(false);
351
308
  const actualChecked = checked !== void 0 ? checked : localChecked;
352
309
  const handleChange = (e) => {
353
310
  const newChecked = e.target.checked;
@@ -387,10 +344,10 @@ var Checkbox = ({
387
344
  disabled && cx6("label--disabled"),
388
345
  error && !disabled && cx6("label--error")
389
346
  ].filter(Boolean).join(" ");
390
- return /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("label", { className: containerClasses, children: [
391
- /* @__PURE__ */ (0, import_jsx_runtime6.jsxs)("div", { className: wrapperClasses, children: [
392
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("div", { className: boxClasses }),
393
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
347
+ return /* @__PURE__ */ jsxs6("label", { className: containerClasses, children: [
348
+ /* @__PURE__ */ jsxs6("div", { className: wrapperClasses, children: [
349
+ /* @__PURE__ */ jsx6("div", { className: boxClasses }),
350
+ /* @__PURE__ */ jsx6(
394
351
  "input",
395
352
  {
396
353
  type: "checkbox",
@@ -405,14 +362,14 @@ var Checkbox = ({
405
362
  "aria-invalid": error
406
363
  }
407
364
  ),
408
- /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
365
+ /* @__PURE__ */ jsx6(
409
366
  "svg",
410
367
  {
411
368
  className: checkmarkClasses,
412
369
  viewBox: "0 0 12 12",
413
370
  fill: "none",
414
371
  xmlns: "http://www.w3.org/2000/svg",
415
- children: /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
372
+ children: /* @__PURE__ */ jsx6(
416
373
  "path",
417
374
  {
418
375
  d: "M2.5 6L5 8.5L9.5 3.5",
@@ -425,13 +382,13 @@ var Checkbox = ({
425
382
  }
426
383
  )
427
384
  ] }),
428
- label && /* @__PURE__ */ (0, import_jsx_runtime6.jsx)("span", { className: labelClasses, children: label })
385
+ label && /* @__PURE__ */ jsx6("span", { className: labelClasses, children: label })
429
386
  ] });
430
387
  };
431
388
  Checkbox.displayName = "Checkbox";
432
389
 
433
390
  // src/components/RadioButton/RadioButton.tsx
434
- var import_jsx_runtime7 = require("react/jsx-runtime");
391
+ import { jsx as jsx7, jsxs as jsxs7 } from "react/jsx-runtime";
435
392
  var cx7 = (className) => `hc-radio-${className}`;
436
393
  var RadioButton = ({
437
394
  id,
@@ -471,7 +428,7 @@ var RadioButton = ({
471
428
  cx7("innerDot"),
472
429
  checked && cx7("innerDot--checked")
473
430
  ].filter(Boolean).join(" ");
474
- return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
431
+ return /* @__PURE__ */ jsxs7(
475
432
  "div",
476
433
  {
477
434
  role: "radio",
@@ -482,8 +439,8 @@ var RadioButton = ({
482
439
  className: containerClasses,
483
440
  "aria-disabled": disabled,
484
441
  children: [
485
- /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)("div", { className: cx7("wrapper"), children: [
486
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
442
+ /* @__PURE__ */ jsxs7("div", { className: cx7("wrapper"), children: [
443
+ /* @__PURE__ */ jsx7(
487
444
  "input",
488
445
  {
489
446
  id,
@@ -498,10 +455,10 @@ var RadioButton = ({
498
455
  className: cx7("hiddenInput")
499
456
  }
500
457
  ),
501
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: outerCircleClasses }),
502
- /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("div", { className: innerDotClasses })
458
+ /* @__PURE__ */ jsx7("div", { className: outerCircleClasses }),
459
+ /* @__PURE__ */ jsx7("div", { className: innerDotClasses })
503
460
  ] }),
504
- label && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("label", { htmlFor: id, className: cx7("label"), children: label })
461
+ label && /* @__PURE__ */ jsx7("label", { htmlFor: id, className: cx7("label"), children: label })
505
462
  ]
506
463
  }
507
464
  );
@@ -509,9 +466,9 @@ var RadioButton = ({
509
466
  RadioButton.displayName = "RadioButton";
510
467
 
511
468
  // src/components/SectionHeader/SectionHeader.tsx
512
- var import_jsx_runtime8 = require("react/jsx-runtime");
469
+ import { jsx as jsx8, jsxs as jsxs8 } from "react/jsx-runtime";
513
470
  var cx8 = (className) => `hc-section-${className}`;
514
- var ChevronRightIcon = () => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
471
+ var ChevronRightIcon = () => /* @__PURE__ */ jsx8(
515
472
  "svg",
516
473
  {
517
474
  xmlns: "http://www.w3.org/2000/svg",
@@ -523,7 +480,7 @@ var ChevronRightIcon = () => /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
523
480
  strokeWidth: "2",
524
481
  strokeLinecap: "round",
525
482
  strokeLinejoin: "round",
526
- children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("polyline", { points: "9 18 15 12 9 6" })
483
+ children: /* @__PURE__ */ jsx8("polyline", { points: "9 18 15 12 9 6" })
527
484
  }
528
485
  );
529
486
  var SectionHeader = ({
@@ -533,22 +490,22 @@ var SectionHeader = ({
533
490
  className = ""
534
491
  }) => {
535
492
  const headerClasses = [cx8("header"), className].filter(Boolean).join(" ");
536
- return /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: headerClasses, children: [
537
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("h2", { className: cx8("title"), children: title }),
538
- showAllLabel && onShowAllClick && /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("button", { className: cx8("showAllButton"), onClick: onShowAllClick, children: [
539
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("span", { children: showAllLabel }),
540
- /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(ChevronRightIcon, {})
493
+ return /* @__PURE__ */ jsxs8("div", { className: headerClasses, children: [
494
+ /* @__PURE__ */ jsx8("h2", { className: cx8("title"), children: title }),
495
+ showAllLabel && onShowAllClick && /* @__PURE__ */ jsxs8("button", { className: cx8("showAllButton"), onClick: onShowAllClick, children: [
496
+ /* @__PURE__ */ jsx8("span", { children: showAllLabel }),
497
+ /* @__PURE__ */ jsx8(ChevronRightIcon, {})
541
498
  ] })
542
499
  ] });
543
500
  };
544
501
  SectionHeader.displayName = "SectionHeader";
545
502
 
546
503
  // src/components/Modal/Modal.tsx
547
- var import_react3 = require("react");
548
- var import_react_dom = require("react-dom");
549
- var import_jsx_runtime9 = require("react/jsx-runtime");
504
+ import { useEffect, useRef } from "react";
505
+ import { createPortal } from "react-dom";
506
+ import { jsx as jsx9, jsxs as jsxs9 } from "react/jsx-runtime";
550
507
  var cx9 = (className) => `hc-modal-${className}`;
551
- var CloseIcon2 = () => /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("svg", { xmlns: "http://www.w3.org/2000/svg", width: "18", height: "18", viewBox: "0 0 18 18", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
508
+ var CloseIcon2 = () => /* @__PURE__ */ jsx9("svg", { xmlns: "http://www.w3.org/2000/svg", width: "18", height: "18", viewBox: "0 0 18 18", fill: "none", children: /* @__PURE__ */ jsx9(
552
509
  "path",
553
510
  {
554
511
  d: "M0.330469 1.91953C-0.110156 1.47891 -0.110156 0.766406 0.330469 0.330469C0.771094 -0.105469 1.48359 -0.110156 1.91953 0.330469L8.99766 7.40859L16.0758 0.330469C16.5164 -0.110156 17.2289 -0.110156 17.6648 0.330469C18.1008 0.771094 18.1055 1.48359 17.6648 1.91953L10.5867 8.99766L17.6648 16.0758C18.1055 16.5164 18.1055 17.2289 17.6648 17.6648C17.2242 18.1008 16.5117 18.1055 16.0758 17.6648L8.99766 10.5867L1.91953 17.6648C1.47891 18.1055 0.766406 18.1055 0.330469 17.6648C-0.105469 17.2242 -0.110156 16.5117 0.330469 16.0758L7.40859 8.99766L0.330469 1.91953Z",
@@ -564,8 +521,8 @@ var Modal = ({
564
521
  showCloseButton = true,
565
522
  disableBackdropClick = false
566
523
  }) => {
567
- const modalRef = (0, import_react3.useRef)(null);
568
- (0, import_react3.useEffect)(() => {
524
+ const modalRef = useRef(null);
525
+ useEffect(() => {
569
526
  const handleEscape = (e) => {
570
527
  if (e.key === "Escape" && isOpen) {
571
528
  onClose();
@@ -587,20 +544,20 @@ var Modal = ({
587
544
  };
588
545
  if (!isOpen) return null;
589
546
  const modalClasses = [cx9("content"), className].filter(Boolean).join(" ");
590
- const modalContent = /* @__PURE__ */ (0, import_jsx_runtime9.jsx)("div", { className: cx9("backdrop"), onClick: handleBackdropClick, children: /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
547
+ const modalContent = /* @__PURE__ */ jsx9("div", { className: cx9("backdrop"), onClick: handleBackdropClick, children: /* @__PURE__ */ jsxs9(
591
548
  "div",
592
549
  {
593
550
  ref: modalRef,
594
551
  className: modalClasses,
595
552
  style: { maxWidth: width },
596
553
  children: [
597
- showCloseButton && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(
554
+ showCloseButton && /* @__PURE__ */ jsx9(
598
555
  "button",
599
556
  {
600
557
  className: cx9("closeButton"),
601
558
  onClick: onClose,
602
559
  "aria-label": "Close modal",
603
- children: /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(CloseIcon2, {})
560
+ children: /* @__PURE__ */ jsx9(CloseIcon2, {})
604
561
  }
605
562
  ),
606
563
  children
@@ -608,26 +565,26 @@ var Modal = ({
608
565
  }
609
566
  ) });
610
567
  if (typeof document !== "undefined") {
611
- return (0, import_react_dom.createPortal)(modalContent, document.body);
568
+ return createPortal(modalContent, document.body);
612
569
  }
613
570
  return modalContent;
614
571
  };
615
572
  Modal.displayName = "Modal";
616
573
 
617
574
  // src/components/Card/Card.tsx
618
- var import_jsx_runtime10 = require("react/jsx-runtime");
575
+ import { Fragment as Fragment2, jsx as jsx10, jsxs as jsxs10 } from "react/jsx-runtime";
619
576
  var cx10 = (className) => `hc-card-${className}`;
620
- var StarIcon2 = () => /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("svg", { xmlns: "http://www.w3.org/2000/svg", width: "9", height: "9", viewBox: "0 0 9 9", fill: "none", children: [
621
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("g", { clipPath: "url(#clip0_card_star)", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
577
+ var StarIcon2 = () => /* @__PURE__ */ jsxs10("svg", { xmlns: "http://www.w3.org/2000/svg", width: "9", height: "9", viewBox: "0 0 9 9", fill: "none", children: [
578
+ /* @__PURE__ */ jsx10("g", { clipPath: "url(#clip0_card_star)", children: /* @__PURE__ */ jsx10(
622
579
  "path",
623
580
  {
624
581
  d: "M4.80018 0.366577C4.93104 0.366577 5.05173 0.440968 5.11135 0.557659L6.18011 2.66102L8.50521 3.03152C8.63462 3.05194 8.74222 3.14383 8.78294 3.26927C8.82365 3.39472 8.79021 3.53183 8.6986 3.62518L7.03366 5.29533L7.40155 7.6277C7.42191 7.75752 7.3681 7.88879 7.26195 7.9661C7.15581 8.04341 7.01476 8.05508 6.89843 7.99528L4.80018 6.92463L2.70192 7.99528C2.58559 8.05508 2.44454 8.04341 2.33839 7.9661C2.23225 7.88879 2.17844 7.75898 2.1988 7.6277L2.56523 5.29533L0.901751 3.62518C0.808689 3.53183 0.776699 3.39472 0.817413 3.26927C0.858128 3.14383 0.964277 3.05194 1.09515 3.03152L3.42024 2.66102L4.49045 0.557659C4.55007 0.440968 4.67076 0.366577 4.80163 0.366577H4.80018Z",
625
582
  fill: "#1F2937"
626
583
  }
627
584
  ) }),
628
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("defs", { children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("clipPath", { id: "clip0_card_star", children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("rect", { width: "8", height: "8", fill: "white", transform: "translate(0.800049 0.199951)" }) }) })
585
+ /* @__PURE__ */ jsx10("defs", { children: /* @__PURE__ */ jsx10("clipPath", { id: "clip0_card_star", children: /* @__PURE__ */ jsx10("rect", { width: "8", height: "8", fill: "white", transform: "translate(0.800049 0.199951)" }) }) })
629
586
  ] });
630
- var CommentIcon = () => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("svg", { width: "24", height: "24", viewBox: "0 0 36 38", fill: "#478EFA", className: cx10("ratingSvg"), children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("path", { d: "M4 0C1.79086 0 0 1.79086 0 4V32V38L9 32H32C34.2091 32 36 30.2091 36 28V0H4Z" }) });
587
+ var CommentIcon = () => /* @__PURE__ */ jsx10("svg", { width: "24", height: "24", viewBox: "0 0 36 38", fill: "#478EFA", className: cx10("ratingSvg"), children: /* @__PURE__ */ jsx10("path", { d: "M4 0C1.79086 0 0 1.79086 0 4V32V38L9 32H32C34.2091 32 36 30.2091 36 28V0H4Z" }) });
631
588
  var PLACEHOLDER = 'data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" width="100" height="100" fill="%23e5e7eb"%3E%3Crect width="100" height="100" /%3E%3C/svg%3E';
632
589
  var repeat = (n, renderFn) => Array.from({ length: n }, (_, i) => renderFn(i));
633
590
  var Card = ({
@@ -684,13 +641,13 @@ var Card = ({
684
641
  };
685
642
  const renderRatingInfo = () => {
686
643
  if (!ratingInfo) return null;
687
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("span", { className: cx10("ratingInfo"), children: [
688
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(CommentIcon, {}),
689
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: cx10("ratingLabel"), children: ratingInfo.label }),
690
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: cx10("ratingValue"), children: ratingInfo.value })
644
+ return /* @__PURE__ */ jsxs10("span", { className: cx10("ratingInfo"), children: [
645
+ /* @__PURE__ */ jsx10(CommentIcon, {}),
646
+ /* @__PURE__ */ jsx10("span", { className: cx10("ratingLabel"), children: ratingInfo.label }),
647
+ /* @__PURE__ */ jsx10("span", { className: cx10("ratingValue"), children: ratingInfo.value })
691
648
  ] });
692
649
  };
693
- return /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(
650
+ return /* @__PURE__ */ jsxs10(
694
651
  "div",
695
652
  {
696
653
  className: containerClasses,
@@ -699,8 +656,8 @@ var Card = ({
699
656
  role: onClick ? "button" : void 0,
700
657
  tabIndex: onClick ? 0 : void 0,
701
658
  children: [
702
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: cx10("imageContainer"), children: [
703
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
659
+ /* @__PURE__ */ jsxs10("div", { className: cx10("imageContainer"), children: [
660
+ /* @__PURE__ */ jsx10(
704
661
  "img",
705
662
  {
706
663
  src: displayImage,
@@ -709,8 +666,8 @@ var Card = ({
709
666
  loading: "lazy"
710
667
  }
711
668
  ),
712
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: cx10("shadowOverlay") }),
713
- badge && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: cx10("badgeWrapper"), children: /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
669
+ /* @__PURE__ */ jsx10("div", { className: cx10("shadowOverlay") }),
670
+ badge && /* @__PURE__ */ jsx10("div", { className: cx10("badgeWrapper"), children: /* @__PURE__ */ jsx10(
714
671
  Badge,
715
672
  {
716
673
  color: badge.variant || "primary",
@@ -719,20 +676,20 @@ var Card = ({
719
676
  }
720
677
  ) })
721
678
  ] }),
722
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: cx10("textContainer"), children: [
723
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: starsRowClasses, children: stars !== void 0 && stars > 0 ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_jsx_runtime10.Fragment, { children: stars === 6 ? /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: cx10("swissLodge"), children: swissLodgeLabel }) : /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(import_jsx_runtime10.Fragment, { children: isDesktop ? /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_jsx_runtime10.Fragment, { children: [
724
- /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)("div", { className: cx10("starsContainer"), children: [
725
- repeat(Math.floor(stars), (i) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(StarIcon2, {}, i)),
726
- isSuperior && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: cx10("superiorBadge"), children: "(s)" })
679
+ /* @__PURE__ */ jsxs10("div", { className: cx10("textContainer"), children: [
680
+ /* @__PURE__ */ jsx10("div", { className: starsRowClasses, children: stars !== void 0 && stars > 0 ? /* @__PURE__ */ jsx10(Fragment2, { children: stars === 6 ? /* @__PURE__ */ jsx10("span", { className: cx10("swissLodge"), children: swissLodgeLabel }) : /* @__PURE__ */ jsx10(Fragment2, { children: isDesktop ? /* @__PURE__ */ jsxs10(Fragment2, { children: [
681
+ /* @__PURE__ */ jsxs10("div", { className: cx10("starsContainer"), children: [
682
+ repeat(Math.floor(stars), (i) => /* @__PURE__ */ jsx10(StarIcon2, {}, i)),
683
+ isSuperior && /* @__PURE__ */ jsx10("span", { className: cx10("superiorBadge"), children: "(s)" })
727
684
  ] }),
728
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { children: renderRatingInfo() })
729
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime10.jsxs)(import_jsx_runtime10.Fragment, { children: [
730
- /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: cx10("starsContainer"), children: repeat(Math.floor(stars), (i) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(StarIcon2, {}, i)) }),
731
- isSuperior && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("span", { className: cx10("superiorBadge"), children: "(s)" }),
685
+ /* @__PURE__ */ jsx10("div", { children: renderRatingInfo() })
686
+ ] }) : /* @__PURE__ */ jsxs10(Fragment2, { children: [
687
+ /* @__PURE__ */ jsx10("div", { className: cx10("starsContainer"), children: repeat(Math.floor(stars), (i) => /* @__PURE__ */ jsx10(StarIcon2, {}, i)) }),
688
+ isSuperior && /* @__PURE__ */ jsx10("span", { className: cx10("superiorBadge"), children: "(s)" }),
732
689
  renderRatingInfo()
733
- ] }) }) }) : /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: cx10("starsPlaceholder"), children: "\xA0" }) }),
734
- label && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: labelClasses, children: label }),
735
- price && /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("div", { className: priceClasses, children: price })
690
+ ] }) }) }) : /* @__PURE__ */ jsx10("div", { className: cx10("starsPlaceholder"), children: "\xA0" }) }),
691
+ label && /* @__PURE__ */ jsx10("div", { className: labelClasses, children: label }),
692
+ price && /* @__PURE__ */ jsx10("div", { className: priceClasses, children: price })
736
693
  ] })
737
694
  ]
738
695
  }
@@ -741,17 +698,17 @@ var Card = ({
741
698
  Card.displayName = "Card";
742
699
 
743
700
  // src/components/CompactCard/CompactCard.tsx
744
- var import_jsx_runtime11 = require("react/jsx-runtime");
701
+ import { Fragment as Fragment3, jsx as jsx11, jsxs as jsxs11 } from "react/jsx-runtime";
745
702
  var cx11 = (className) => `hc-compact-${className}`;
746
- var StarIcon3 = () => /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("svg", { xmlns: "http://www.w3.org/2000/svg", width: "9", height: "9", viewBox: "0 0 9 9", fill: "none", children: [
747
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("g", { clipPath: "url(#clip0_compact_star)", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
703
+ var StarIcon3 = () => /* @__PURE__ */ jsxs11("svg", { xmlns: "http://www.w3.org/2000/svg", width: "9", height: "9", viewBox: "0 0 9 9", fill: "none", children: [
704
+ /* @__PURE__ */ jsx11("g", { clipPath: "url(#clip0_compact_star)", children: /* @__PURE__ */ jsx11(
748
705
  "path",
749
706
  {
750
707
  d: "M4.80018 0.366577C4.93104 0.366577 5.05173 0.440968 5.11135 0.557659L6.18011 2.66102L8.50521 3.03152C8.63462 3.05194 8.74222 3.14383 8.78294 3.26927C8.82365 3.39472 8.79021 3.53183 8.6986 3.62518L7.03366 5.29533L7.40155 7.6277C7.42191 7.75752 7.3681 7.88879 7.26195 7.9661C7.15581 8.04341 7.01476 8.05508 6.89843 7.99528L4.80018 6.92463L2.70192 7.99528C2.58559 8.05508 2.44454 8.04341 2.33839 7.9661C2.23225 7.88879 2.17844 7.75898 2.1988 7.6277L2.56523 5.29533L0.901751 3.62518C0.808689 3.53183 0.776699 3.39472 0.817413 3.26927C0.858128 3.14383 0.964277 3.05194 1.09515 3.03152L3.42024 2.66102L4.49045 0.557659C4.55007 0.440968 4.67076 0.366577 4.80163 0.366577H4.80018Z",
751
708
  fill: "#1F2937"
752
709
  }
753
710
  ) }),
754
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("defs", { children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("clipPath", { id: "clip0_compact_star", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("rect", { width: "8", height: "8", fill: "white", transform: "translate(0.800049 0.199951)" }) }) })
711
+ /* @__PURE__ */ jsx11("defs", { children: /* @__PURE__ */ jsx11("clipPath", { id: "clip0_compact_star", children: /* @__PURE__ */ jsx11("rect", { width: "8", height: "8", fill: "white", transform: "translate(0.800049 0.199951)" }) }) })
755
712
  ] });
756
713
  var PLACEHOLDER2 = 'data:image/svg+xml,%3Csvg xmlns="http://www.w3.org/2000/svg" width="100" height="100" fill="%23e5e7eb"%3E%3Crect width="100" height="100" /%3E%3C/svg%3E';
757
714
  var repeat2 = (n, renderFn) => Array.from({ length: n }, (_, i) => renderFn(i));
@@ -788,7 +745,7 @@ var CompactCard = ({
788
745
  onClick();
789
746
  }
790
747
  };
791
- return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
748
+ return /* @__PURE__ */ jsxs11(
792
749
  "div",
793
750
  {
794
751
  className: containerClasses,
@@ -797,8 +754,8 @@ var CompactCard = ({
797
754
  role: onClick ? "button" : void 0,
798
755
  tabIndex: onClick ? 0 : void 0,
799
756
  children: [
800
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: cx11("imageContainer"), children: [
801
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
757
+ /* @__PURE__ */ jsxs11("div", { className: cx11("imageContainer"), children: [
758
+ /* @__PURE__ */ jsx11(
802
759
  "img",
803
760
  {
804
761
  src: displayImage,
@@ -807,8 +764,8 @@ var CompactCard = ({
807
764
  loading: "lazy"
808
765
  }
809
766
  ),
810
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: cx11("shadowOverlay") }),
811
- badge && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: cx11("badgeWrapper"), children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
767
+ /* @__PURE__ */ jsx11("div", { className: cx11("shadowOverlay") }),
768
+ badge && /* @__PURE__ */ jsx11("div", { className: cx11("badgeWrapper"), children: /* @__PURE__ */ jsx11(
812
769
  "span",
813
770
  {
814
771
  className: `${cx11("badge")} ${badge.variant === "secondary" ? cx11("badge--secondary") : cx11("badge--primary")}`,
@@ -816,16 +773,16 @@ var CompactCard = ({
816
773
  }
817
774
  ) })
818
775
  ] }),
819
- /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: cx11("textContainer"), children: [
820
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: cx11("starsRow"), children: stars !== void 0 && stars > 0 ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(import_jsx_runtime11.Fragment, { children: stars === 6 ? /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: cx11("swissLodge"), children: swissLodgeLabel }) : /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(import_jsx_runtime11.Fragment, { children: [
821
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: cx11("starsContainer"), children: repeat2(Math.floor(stars), (i) => /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(StarIcon3, {}, i)) }),
822
- isSuperior && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("span", { className: cx11("superiorBadge"), children: "(s)" })
776
+ /* @__PURE__ */ jsxs11("div", { className: cx11("textContainer"), children: [
777
+ /* @__PURE__ */ jsx11("div", { className: cx11("starsRow"), children: stars !== void 0 && stars > 0 ? /* @__PURE__ */ jsx11(Fragment3, { children: stars === 6 ? /* @__PURE__ */ jsx11("span", { className: cx11("swissLodge"), children: swissLodgeLabel }) : /* @__PURE__ */ jsxs11(Fragment3, { children: [
778
+ /* @__PURE__ */ jsx11("div", { className: cx11("starsContainer"), children: repeat2(Math.floor(stars), (i) => /* @__PURE__ */ jsx11(StarIcon3, {}, i)) }),
779
+ isSuperior && /* @__PURE__ */ jsx11("span", { className: cx11("superiorBadge"), children: "(s)" })
823
780
  ] }) }) : (
824
781
  // Empty space to maintain alignment
825
- /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: cx11("starsPlaceholder"), children: "\xA0" })
782
+ /* @__PURE__ */ jsx11("div", { className: cx11("starsPlaceholder"), children: "\xA0" })
826
783
  ) }),
827
- label && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: labelClasses, children: label }),
828
- price && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: priceClasses, children: price })
784
+ label && /* @__PURE__ */ jsx11("div", { className: labelClasses, children: label }),
785
+ price && /* @__PURE__ */ jsx11("div", { className: priceClasses, children: price })
829
786
  ] })
830
787
  ]
831
788
  }
@@ -834,10 +791,10 @@ var CompactCard = ({
834
791
  CompactCard.displayName = "CompactCard";
835
792
 
836
793
  // src/components/Dropdown/Dropdown.tsx
837
- var import_react4 = require("react");
838
- var import_jsx_runtime12 = require("react/jsx-runtime");
794
+ import { useState as useState2, useRef as useRef2, useEffect as useEffect2 } from "react";
795
+ import { jsx as jsx12, jsxs as jsxs12 } from "react/jsx-runtime";
839
796
  var cx12 = (className) => `hc-dropdown-${className}`;
840
- var ChevronIcon = () => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("svg", { width: "12", height: "8", viewBox: "0 0 12 8", fill: "none", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
797
+ var ChevronIcon = () => /* @__PURE__ */ jsx12("svg", { width: "12", height: "8", viewBox: "0 0 12 8", fill: "none", children: /* @__PURE__ */ jsx12(
841
798
  "path",
842
799
  {
843
800
  d: "M1 1L6 6L11 1",
@@ -859,13 +816,13 @@ var Dropdown = ({
859
816
  id,
860
817
  placeholder = "Select..."
861
818
  }) => {
862
- const [localValue, setLocalValue] = (0, import_react4.useState)(defaultValue || "");
863
- const [isOpen, setIsOpen] = (0, import_react4.useState)(false);
864
- const [isFocused, setIsFocused] = (0, import_react4.useState)(false);
865
- const dropdownRef = (0, import_react4.useRef)(null);
819
+ const [localValue, setLocalValue] = useState2(defaultValue || "");
820
+ const [isOpen, setIsOpen] = useState2(false);
821
+ const [isFocused, setIsFocused] = useState2(false);
822
+ const dropdownRef = useRef2(null);
866
823
  const actualValue = value !== void 0 ? value : localValue;
867
824
  const selectedLabel = options.find((o) => o.value === actualValue)?.label || placeholder;
868
- (0, import_react4.useEffect)(() => {
825
+ useEffect2(() => {
869
826
  const handleClickOutside = (event) => {
870
827
  if (dropdownRef.current && !dropdownRef.current.contains(event.target)) {
871
828
  setIsOpen(false);
@@ -910,8 +867,8 @@ var Dropdown = ({
910
867
  cx12("list"),
911
868
  isOpen && cx12("list--open")
912
869
  ].filter(Boolean).join(" ");
913
- return /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)("div", { ref: dropdownRef, className: containerClasses, children: [
914
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
870
+ return /* @__PURE__ */ jsxs12("div", { ref: dropdownRef, className: containerClasses, children: [
871
+ /* @__PURE__ */ jsxs12(
915
872
  "div",
916
873
  {
917
874
  className: buttonClasses,
@@ -925,12 +882,12 @@ var Dropdown = ({
925
882
  "aria-expanded": isOpen,
926
883
  "aria-disabled": disabled,
927
884
  children: [
928
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { children: selectedLabel }),
929
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("span", { className: chevronClasses, children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(ChevronIcon, {}) })
885
+ /* @__PURE__ */ jsx12("span", { children: selectedLabel }),
886
+ /* @__PURE__ */ jsx12("span", { className: chevronClasses, children: /* @__PURE__ */ jsx12(ChevronIcon, {}) })
930
887
  ]
931
888
  }
932
889
  ),
933
- /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("ul", { role: "listbox", className: listClasses, children: options.map((option) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
890
+ /* @__PURE__ */ jsx12("ul", { role: "listbox", className: listClasses, children: options.map((option) => /* @__PURE__ */ jsx12(
934
891
  "li",
935
892
  {
936
893
  role: "option",
@@ -941,7 +898,7 @@ var Dropdown = ({
941
898
  },
942
899
  option.value
943
900
  )) }),
944
- /* @__PURE__ */ (0, import_jsx_runtime12.jsxs)(
901
+ /* @__PURE__ */ jsxs12(
945
902
  "select",
946
903
  {
947
904
  id,
@@ -951,8 +908,8 @@ var Dropdown = ({
951
908
  disabled,
952
909
  className: cx12("hiddenSelect"),
953
910
  children: [
954
- !actualValue && /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("option", { value: "", children: placeholder }),
955
- options.map((opt) => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("option", { value: opt.value, children: opt.label }, opt.value))
911
+ !actualValue && /* @__PURE__ */ jsx12("option", { value: "", children: placeholder }),
912
+ options.map((opt) => /* @__PURE__ */ jsx12("option", { value: opt.value, children: opt.label }, opt.value))
956
913
  ]
957
914
  }
958
915
  )
@@ -961,8 +918,8 @@ var Dropdown = ({
961
918
  Dropdown.displayName = "Dropdown";
962
919
 
963
920
  // src/components/Input/Input.tsx
964
- var import_react5 = require("react");
965
- var import_jsx_runtime13 = require("react/jsx-runtime");
921
+ import { useState as useState3, useRef as useRef3 } from "react";
922
+ import { jsx as jsx13, jsxs as jsxs13 } from "react/jsx-runtime";
966
923
  var cx13 = (className) => `hc-input-${className}`;
967
924
  var Input = ({
968
925
  label,
@@ -990,9 +947,9 @@ var Input = ({
990
947
  readOnly = false,
991
948
  inputProps
992
949
  }) => {
993
- const [localValue, setLocalValue] = (0, import_react5.useState)(defaultValue);
994
- const [isFocused, setIsFocused] = (0, import_react5.useState)(false);
995
- const inputRef = (0, import_react5.useRef)(null);
950
+ const [localValue, setLocalValue] = useState3(defaultValue);
951
+ const [isFocused, setIsFocused] = useState3(false);
952
+ const inputRef = useRef3(null);
996
953
  const actualValue = value !== void 0 ? value : localValue;
997
954
  const handleChange = (e) => {
998
955
  const newValue = e.target.value;
@@ -1031,17 +988,17 @@ var Input = ({
1031
988
  error && cx13("helper--error"),
1032
989
  (disabled || readOnly) && cx13("helper--disabled")
1033
990
  ].filter(Boolean).join(" ");
1034
- return /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)("div", { className: containerClasses, children: [
1035
- label && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("label", { htmlFor: id, className: labelClasses, children: label }),
1036
- /* @__PURE__ */ (0, import_jsx_runtime13.jsxs)(
991
+ return /* @__PURE__ */ jsxs13("div", { className: containerClasses, children: [
992
+ label && /* @__PURE__ */ jsx13("label", { htmlFor: id, className: labelClasses, children: label }),
993
+ /* @__PURE__ */ jsxs13(
1037
994
  "div",
1038
995
  {
1039
996
  className: wrapperClasses,
1040
997
  onClick: () => !disabled && !readOnly && inputRef.current?.focus(),
1041
998
  children: [
1042
- leftIcon && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: cx13("icon"), children: leftIcon }),
1043
- prefix && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: cx13("prefix"), children: prefix }),
1044
- /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
999
+ leftIcon && /* @__PURE__ */ jsx13("div", { className: cx13("icon"), children: leftIcon }),
1000
+ prefix && /* @__PURE__ */ jsx13("div", { className: cx13("prefix"), children: prefix }),
1001
+ /* @__PURE__ */ jsx13(
1045
1002
  "input",
1046
1003
  {
1047
1004
  ref: inputRef,
@@ -1066,14 +1023,302 @@ var Input = ({
1066
1023
  ]
1067
1024
  }
1068
1025
  ),
1069
- helper && /* @__PURE__ */ (0, import_jsx_runtime13.jsx)("div", { className: helperClasses, children: helper })
1026
+ helper && /* @__PURE__ */ jsx13("div", { className: helperClasses, children: helper })
1070
1027
  ] });
1071
1028
  };
1072
1029
  Input.displayName = "Input";
1073
1030
 
1031
+ // src/components/Block/Block.tsx
1032
+ import { jsx as jsx14, jsxs as jsxs14 } from "react/jsx-runtime";
1033
+ var cx14 = (className) => `hc-block-${className}`;
1034
+ var Block = ({
1035
+ variant = "icon",
1036
+ visual,
1037
+ label,
1038
+ description,
1039
+ style = "primary",
1040
+ onClick,
1041
+ showArrow = true,
1042
+ className = ""
1043
+ }) => {
1044
+ if (variant === "icon") {
1045
+ const containerClasses2 = [
1046
+ cx14("icon"),
1047
+ onClick && cx14("icon--clickable"),
1048
+ className
1049
+ ].filter(Boolean).join(" ");
1050
+ const iconContainerClass = style === "primary" ? cx14("icon-container--primary") : cx14("icon-container--secondary");
1051
+ return /* @__PURE__ */ jsxs14(
1052
+ "div",
1053
+ {
1054
+ className: containerClasses2,
1055
+ onClick,
1056
+ role: onClick ? "button" : void 0,
1057
+ tabIndex: onClick ? 0 : void 0,
1058
+ children: [
1059
+ /* @__PURE__ */ jsx14("div", { className: iconContainerClass, children: visual }),
1060
+ /* @__PURE__ */ jsxs14("div", { className: cx14("text-container"), children: [
1061
+ /* @__PURE__ */ jsx14("div", { className: cx14("icon-label"), children: label }),
1062
+ description && /* @__PURE__ */ jsx14("div", { className: cx14("icon-description"), children: description })
1063
+ ] })
1064
+ ]
1065
+ }
1066
+ );
1067
+ }
1068
+ const containerClasses = [
1069
+ cx14("image"),
1070
+ onClick && cx14("image--clickable"),
1071
+ className
1072
+ ].filter(Boolean).join(" ");
1073
+ return /* @__PURE__ */ jsxs14(
1074
+ "div",
1075
+ {
1076
+ className: containerClasses,
1077
+ onClick,
1078
+ role: onClick ? "button" : void 0,
1079
+ tabIndex: onClick ? 0 : void 0,
1080
+ children: [
1081
+ /* @__PURE__ */ jsx14("div", { className: cx14("image-container"), children: visual }),
1082
+ /* @__PURE__ */ jsxs14("div", { className: cx14("footer"), children: [
1083
+ /* @__PURE__ */ jsx14("span", { className: cx14("image-label"), children: label }),
1084
+ showArrow && /* @__PURE__ */ jsx14("span", { className: cx14("arrow"), children: "\u2192" })
1085
+ ] })
1086
+ ]
1087
+ }
1088
+ );
1089
+ };
1090
+ Block.displayName = "Block";
1091
+
1092
+ // src/components/ReviewCard/ReviewCard.tsx
1093
+ import { jsx as jsx15, jsxs as jsxs15 } from "react/jsx-runtime";
1094
+ var cx15 = (className) => `hc-review-${className}`;
1095
+ var ReviewCard = ({
1096
+ name,
1097
+ date,
1098
+ rating,
1099
+ quote,
1100
+ className
1101
+ }) => {
1102
+ const containerClasses = [cx15("container"), className].filter(Boolean).join(" ");
1103
+ return /* @__PURE__ */ jsxs15("div", { className: containerClasses, children: [
1104
+ /* @__PURE__ */ jsx15("div", { className: cx15("name"), children: name }),
1105
+ /* @__PURE__ */ jsxs15("div", { className: cx15("frame"), children: [
1106
+ /* @__PURE__ */ jsx15("div", { className: cx15("stars"), children: /* @__PURE__ */ jsx15(Rating, { variant: "stars", value: rating, size: "medium" }) }),
1107
+ /* @__PURE__ */ jsx15("div", { className: cx15("quote"), children: quote })
1108
+ ] }),
1109
+ /* @__PURE__ */ jsx15("div", { className: cx15("date"), children: date })
1110
+ ] });
1111
+ };
1112
+ ReviewCard.displayName = "ReviewCard";
1113
+
1114
+ // src/components/FAQ/FAQ.tsx
1115
+ import { useState as useState4 } from "react";
1116
+ import { jsx as jsx16, jsxs as jsxs16 } from "react/jsx-runtime";
1117
+ var cx16 = (className) => `hc-faq-${className}`;
1118
+ var ChevronIcon2 = ({ isOpen }) => {
1119
+ const iconClasses = [
1120
+ cx16("chevron"),
1121
+ isOpen && cx16("chevron--open")
1122
+ ].filter(Boolean).join(" ");
1123
+ return /* @__PURE__ */ jsx16(
1124
+ "svg",
1125
+ {
1126
+ width: "24",
1127
+ height: "24",
1128
+ viewBox: "0 0 24 24",
1129
+ fill: "none",
1130
+ xmlns: "http://www.w3.org/2000/svg",
1131
+ className: iconClasses,
1132
+ children: /* @__PURE__ */ jsx16(
1133
+ "path",
1134
+ {
1135
+ d: "M6 9L12 15L18 9",
1136
+ stroke: "currentColor",
1137
+ strokeWidth: "2",
1138
+ strokeLinecap: "round",
1139
+ strokeLinejoin: "round"
1140
+ }
1141
+ )
1142
+ }
1143
+ );
1144
+ };
1145
+ var FAQ = ({
1146
+ items,
1147
+ defaultOpenIndex = null,
1148
+ allowMultiple = false,
1149
+ className
1150
+ }) => {
1151
+ const [openIndices, setOpenIndices] = useState4(
1152
+ defaultOpenIndex !== null ? /* @__PURE__ */ new Set([defaultOpenIndex]) : /* @__PURE__ */ new Set()
1153
+ );
1154
+ const toggleItem = (index) => {
1155
+ setOpenIndices((prev) => {
1156
+ const newSet = new Set(prev);
1157
+ if (newSet.has(index)) {
1158
+ newSet.delete(index);
1159
+ } else {
1160
+ if (!allowMultiple) {
1161
+ newSet.clear();
1162
+ }
1163
+ newSet.add(index);
1164
+ }
1165
+ return newSet;
1166
+ });
1167
+ };
1168
+ const containerClasses = [cx16("container"), className].filter(Boolean).join(" ");
1169
+ return /* @__PURE__ */ jsx16("div", { className: containerClasses, children: items.map((item, index) => {
1170
+ const isOpen = openIndices.has(index);
1171
+ const answerClasses = isOpen ? cx16("answer--open") : cx16("answer");
1172
+ return /* @__PURE__ */ jsxs16("div", { className: cx16("item"), children: [
1173
+ /* @__PURE__ */ jsx16(
1174
+ Button,
1175
+ {
1176
+ variant: "link",
1177
+ size: "medium",
1178
+ className: cx16("question-btn"),
1179
+ onClick: () => toggleItem(index),
1180
+ "aria-expanded": isOpen,
1181
+ "aria-controls": `faq-answer-${index}`,
1182
+ rightIcon: /* @__PURE__ */ jsx16("div", { className: cx16("icon-container"), children: /* @__PURE__ */ jsx16(ChevronIcon2, { isOpen }) }),
1183
+ children: /* @__PURE__ */ jsx16("span", { className: cx16("question-text"), children: item.question })
1184
+ }
1185
+ ),
1186
+ /* @__PURE__ */ jsx16("div", { id: `faq-answer-${index}`, className: answerClasses, children: /* @__PURE__ */ jsx16("p", { className: cx16("answer-text"), children: item.answer }) })
1187
+ ] }, index);
1188
+ }) });
1189
+ };
1190
+ FAQ.displayName = "FAQ";
1191
+
1192
+ // src/components/Benefits/Benefits.tsx
1193
+ import { jsx as jsx17, jsxs as jsxs17 } from "react/jsx-runtime";
1194
+ var cx17 = (className) => `hc-benefits-${className}`;
1195
+ var Benefits = ({
1196
+ title = "Ihre Vorteile mit HotelCard",
1197
+ subtitle = "Mit HotelCard sparen Sie bei jedem Aufenthalt",
1198
+ benefits = [
1199
+ {
1200
+ title: "\xDCber 500 Hotels",
1201
+ description: "Grosse Auswahl in der ganzen Schweiz"
1202
+ },
1203
+ {
1204
+ title: "Bis zu 50% Rabatt",
1205
+ description: "Exklusive Mitglieder-Preise"
1206
+ },
1207
+ {
1208
+ title: "Kein Buchungszwang",
1209
+ description: "Buchen Sie, wann Sie m\xF6chten"
1210
+ },
1211
+ {
1212
+ title: "Kostenlose Stornierung",
1213
+ description: "Flexible Buchungsbedingungen"
1214
+ }
1215
+ ],
1216
+ contactTitle = "Haben Sie Fragen?",
1217
+ contactDescription = "Unser Kundenservice hilft Ihnen gerne weiter",
1218
+ contactButtonText = "Kontakt aufnehmen",
1219
+ onContactClick,
1220
+ className
1221
+ }) => {
1222
+ const sectionClasses = [cx17("section"), className].filter(Boolean).join(" ");
1223
+ return /* @__PURE__ */ jsx17("section", { className: sectionClasses, children: /* @__PURE__ */ jsxs17("div", { className: cx17("container"), children: [
1224
+ /* @__PURE__ */ jsxs17("div", { className: cx17("header"), children: [
1225
+ /* @__PURE__ */ jsx17("h2", { className: cx17("title"), children: title }),
1226
+ subtitle && /* @__PURE__ */ jsx17("p", { className: cx17("subtitle"), children: subtitle })
1227
+ ] }),
1228
+ /* @__PURE__ */ jsx17("div", { className: cx17("grid"), children: benefits.map((benefit, index) => /* @__PURE__ */ jsxs17("div", { className: cx17("item"), children: [
1229
+ /* @__PURE__ */ jsx17("h3", { className: cx17("item-title"), children: benefit.title }),
1230
+ benefit.description && /* @__PURE__ */ jsx17("p", { className: cx17("item-description"), children: benefit.description })
1231
+ ] }, index)) }),
1232
+ contactTitle && /* @__PURE__ */ jsxs17("div", { className: cx17("contact-card"), children: [
1233
+ /* @__PURE__ */ jsx17("h3", { className: cx17("contact-title"), children: contactTitle }),
1234
+ contactDescription && /* @__PURE__ */ jsx17("p", { className: cx17("contact-description"), children: contactDescription }),
1235
+ contactButtonText && /* @__PURE__ */ jsx17(
1236
+ Button,
1237
+ {
1238
+ variant: "secondary",
1239
+ size: "medium",
1240
+ onClick: onContactClick,
1241
+ className: cx17("contact-btn"),
1242
+ children: contactButtonText
1243
+ }
1244
+ )
1245
+ ] })
1246
+ ] }) });
1247
+ };
1248
+ Benefits.displayName = "Benefits";
1249
+
1250
+ // src/components/Pin/Pin.tsx
1251
+ import { forwardRef as forwardRef2 } from "react";
1252
+ import { Fragment as Fragment4, jsx as jsx18, jsxs as jsxs18 } from "react/jsx-runtime";
1253
+ var cx18 = (className) => `hc-pin-${className}`;
1254
+ var HeartIcon = ({ className }) => /* @__PURE__ */ jsx18(
1255
+ "svg",
1256
+ {
1257
+ className,
1258
+ width: "16",
1259
+ height: "16",
1260
+ viewBox: "0 0 16 16",
1261
+ fill: "currentColor",
1262
+ xmlns: "http://www.w3.org/2000/svg",
1263
+ children: /* @__PURE__ */ jsx18("path", { d: "M8 14.2333L6.96667 13.2933C3.6 10.24 1.33333 8.18667 1.33333 5.66667C1.33333 3.61333 2.94667 2 5 2C6.16 2 7.27333 2.54 8 3.39333C8.72667 2.54 9.84 2 11 2C13.0533 2 14.6667 3.61333 14.6667 5.66667C14.6667 8.18667 12.4 10.24 9.03333 13.2933L8 14.2333Z" })
1264
+ }
1265
+ );
1266
+ var HomeIcon = ({ className }) => /* @__PURE__ */ jsx18(
1267
+ "svg",
1268
+ {
1269
+ className,
1270
+ width: "16",
1271
+ height: "16",
1272
+ viewBox: "0 0 16 16",
1273
+ fill: "currentColor",
1274
+ xmlns: "http://www.w3.org/2000/svg",
1275
+ children: /* @__PURE__ */ jsx18("path", { d: "M6.66667 13.3333V9.33333H9.33333V13.3333H12.6667V8H14.6667L8 2L1.33333 8H3.33333V13.3333H6.66667Z" })
1276
+ }
1277
+ );
1278
+ var Pin = forwardRef2(
1279
+ ({
1280
+ variant = "price",
1281
+ viewed = false,
1282
+ currency = "CHF",
1283
+ price = 0,
1284
+ showFavorite = false,
1285
+ disabled = false,
1286
+ onClick,
1287
+ className = ""
1288
+ }, ref) => {
1289
+ const styleVariant = viewed ? "secondary" : "primary";
1290
+ const pinClasses = [
1291
+ cx18("pin"),
1292
+ cx18(styleVariant),
1293
+ variant === "hotel" && cx18("hotel"),
1294
+ className
1295
+ ].filter(Boolean).join(" ");
1296
+ const formattedPrice = typeof price === "number" ? Math.round(price).toString() : price;
1297
+ return /* @__PURE__ */ jsxs18(
1298
+ "button",
1299
+ {
1300
+ ref,
1301
+ type: "button",
1302
+ className: pinClasses,
1303
+ disabled,
1304
+ onClick,
1305
+ children: [
1306
+ /* @__PURE__ */ jsx18("div", { className: cx18("body"), children: variant === "price" ? /* @__PURE__ */ jsxs18(Fragment4, { children: [
1307
+ /* @__PURE__ */ jsx18("span", { className: cx18("currency"), children: currency }),
1308
+ /* @__PURE__ */ jsx18("span", { className: cx18("price"), children: formattedPrice }),
1309
+ showFavorite && /* @__PURE__ */ jsx18("div", { className: cx18("favorite-container"), children: /* @__PURE__ */ jsx18(HeartIcon, { className: cx18("favorite-icon") }) })
1310
+ ] }) : /* @__PURE__ */ jsx18(HomeIcon, { className: cx18("hotel-icon") }) }),
1311
+ /* @__PURE__ */ jsx18("div", { className: cx18("pointer"), children: /* @__PURE__ */ jsx18("div", { className: cx18("pointer-inner") }) })
1312
+ ]
1313
+ }
1314
+ );
1315
+ }
1316
+ );
1317
+ Pin.displayName = "Pin";
1318
+
1074
1319
  // src/components/icons/HeartIcon.tsx
1075
- var import_jsx_runtime14 = require("react/jsx-runtime");
1076
- var HeartIcon = ({ filled = false, className = "", size = 24 }) => /* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
1320
+ import { jsx as jsx19 } from "react/jsx-runtime";
1321
+ var HeartIcon2 = ({ filled = false, className = "", size = 24 }) => /* @__PURE__ */ jsx19(
1077
1322
  "svg",
1078
1323
  {
1079
1324
  width: size,
@@ -1085,14 +1330,14 @@ var HeartIcon = ({ filled = false, className = "", size = 24 }) => /* @__PURE__
1085
1330
  strokeWidth: 2,
1086
1331
  strokeLinecap: "round",
1087
1332
  strokeLinejoin: "round",
1088
- children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("path", { d: "M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z" })
1333
+ children: /* @__PURE__ */ jsx19("path", { d: "M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z" })
1089
1334
  }
1090
1335
  );
1091
- HeartIcon.displayName = "HeartIcon";
1336
+ HeartIcon2.displayName = "HeartIcon";
1092
1337
 
1093
1338
  // src/components/icons/StarIcon.tsx
1094
- var import_jsx_runtime15 = require("react/jsx-runtime");
1095
- var StarIcon4 = ({ filled = true, className = "", size = 9 }) => /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
1339
+ import { jsx as jsx20, jsxs as jsxs19 } from "react/jsx-runtime";
1340
+ var StarIcon4 = ({ filled = true, className = "", size = 9 }) => /* @__PURE__ */ jsxs19(
1096
1341
  "svg",
1097
1342
  {
1098
1343
  xmlns: "http://www.w3.org/2000/svg",
@@ -1102,22 +1347,22 @@ var StarIcon4 = ({ filled = true, className = "", size = 9 }) => /* @__PURE__ */
1102
1347
  fill: "none",
1103
1348
  className,
1104
1349
  children: [
1105
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("g", { clipPath: "url(#clip0_star_icon)", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)(
1350
+ /* @__PURE__ */ jsx20("g", { clipPath: "url(#clip0_star_icon)", children: /* @__PURE__ */ jsx20(
1106
1351
  "path",
1107
1352
  {
1108
1353
  d: "M4.80018 0.366577C4.93104 0.366577 5.05173 0.440968 5.11135 0.557659L6.18011 2.66102L8.50521 3.03152C8.63462 3.05194 8.74222 3.14383 8.78294 3.26927C8.82365 3.39472 8.79021 3.53183 8.6986 3.62518L7.03366 5.29533L7.40155 7.6277C7.42191 7.75752 7.3681 7.88879 7.26195 7.9661C7.15581 8.04341 7.01476 8.05508 6.89843 7.99528L4.80018 6.92463L2.70192 7.99528C2.58559 8.05508 2.44454 8.04341 2.33839 7.9661C2.23225 7.88879 2.17844 7.75898 2.1988 7.6277L2.56523 5.29533L0.901751 3.62518C0.808689 3.53183 0.776699 3.39472 0.817413 3.26927C0.858128 3.14383 0.964277 3.05194 1.09515 3.03152L3.42024 2.66102L4.49045 0.557659C4.55007 0.440968 4.67076 0.366577 4.80163 0.366577H4.80018Z",
1109
1354
  fill: filled ? "#1F2937" : "#D1D5DB"
1110
1355
  }
1111
1356
  ) }),
1112
- /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("defs", { children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("clipPath", { id: "clip0_star_icon", children: /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("rect", { width: "8", height: "8", fill: "white", transform: "translate(0.800049 0.199951)" }) }) })
1357
+ /* @__PURE__ */ jsx20("defs", { children: /* @__PURE__ */ jsx20("clipPath", { id: "clip0_star_icon", children: /* @__PURE__ */ jsx20("rect", { width: "8", height: "8", fill: "white", transform: "translate(0.800049 0.199951)" }) }) })
1113
1358
  ]
1114
1359
  }
1115
1360
  );
1116
1361
  StarIcon4.displayName = "StarIcon";
1117
1362
 
1118
1363
  // src/components/icons/ChevronLeftIcon.tsx
1119
- var import_jsx_runtime16 = require("react/jsx-runtime");
1120
- var ChevronLeftIcon = ({ className = "", size = 20 }) => /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
1364
+ import { jsx as jsx21 } from "react/jsx-runtime";
1365
+ var ChevronLeftIcon = ({ className = "", size = 20 }) => /* @__PURE__ */ jsx21(
1121
1366
  "svg",
1122
1367
  {
1123
1368
  xmlns: "http://www.w3.org/2000/svg",
@@ -1130,14 +1375,14 @@ var ChevronLeftIcon = ({ className = "", size = 20 }) => /* @__PURE__ */ (0, imp
1130
1375
  strokeLinecap: "round",
1131
1376
  strokeLinejoin: "round",
1132
1377
  className,
1133
- children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("polyline", { points: "15 18 9 12 15 6" })
1378
+ children: /* @__PURE__ */ jsx21("polyline", { points: "15 18 9 12 15 6" })
1134
1379
  }
1135
1380
  );
1136
1381
  ChevronLeftIcon.displayName = "ChevronLeftIcon";
1137
1382
 
1138
1383
  // src/components/icons/ChevronRightIcon.tsx
1139
- var import_jsx_runtime17 = require("react/jsx-runtime");
1140
- var ChevronRightIcon2 = ({ className = "", size = 20 }) => /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
1384
+ import { jsx as jsx22 } from "react/jsx-runtime";
1385
+ var ChevronRightIcon2 = ({ className = "", size = 20 }) => /* @__PURE__ */ jsx22(
1141
1386
  "svg",
1142
1387
  {
1143
1388
  xmlns: "http://www.w3.org/2000/svg",
@@ -1150,14 +1395,14 @@ var ChevronRightIcon2 = ({ className = "", size = 20 }) => /* @__PURE__ */ (0, i
1150
1395
  strokeLinecap: "round",
1151
1396
  strokeLinejoin: "round",
1152
1397
  className,
1153
- children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("polyline", { points: "9 18 15 12 9 6" })
1398
+ children: /* @__PURE__ */ jsx22("polyline", { points: "9 18 15 12 9 6" })
1154
1399
  }
1155
1400
  );
1156
1401
  ChevronRightIcon2.displayName = "ChevronRightIcon";
1157
1402
 
1158
1403
  // src/components/icons/PinIcon.tsx
1159
- var import_jsx_runtime18 = require("react/jsx-runtime");
1160
- var PinIcon = ({ className = "", size = 16 }) => /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
1404
+ import { jsx as jsx23, jsxs as jsxs20 } from "react/jsx-runtime";
1405
+ var PinIcon = ({ className = "", size = 16 }) => /* @__PURE__ */ jsxs20(
1161
1406
  "svg",
1162
1407
  {
1163
1408
  xmlns: "http://www.w3.org/2000/svg",
@@ -1167,7 +1412,7 @@ var PinIcon = ({ className = "", size = 16 }) => /* @__PURE__ */ (0, import_jsx_
1167
1412
  fill: "none",
1168
1413
  className,
1169
1414
  children: [
1170
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1415
+ /* @__PURE__ */ jsx23(
1171
1416
  "path",
1172
1417
  {
1173
1418
  fillRule: "evenodd",
@@ -1176,7 +1421,7 @@ var PinIcon = ({ className = "", size = 16 }) => /* @__PURE__ */ (0, import_jsx_
1176
1421
  fill: "currentColor"
1177
1422
  }
1178
1423
  ),
1179
- /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(
1424
+ /* @__PURE__ */ jsx23(
1180
1425
  "path",
1181
1426
  {
1182
1427
  fillRule: "evenodd",
@@ -1189,25 +1434,29 @@ var PinIcon = ({ className = "", size = 16 }) => /* @__PURE__ */ (0, import_jsx_
1189
1434
  }
1190
1435
  );
1191
1436
  PinIcon.displayName = "PinIcon";
1192
- // Annotate the CommonJS export names for ESM import in node:
1193
- 0 && (module.exports = {
1437
+ export {
1194
1438
  Badge,
1439
+ Benefits,
1440
+ Block,
1195
1441
  Button,
1196
1442
  Card,
1197
1443
  Checkbox,
1198
1444
  ChevronLeftIcon,
1199
- ChevronRightIcon,
1445
+ ChevronRightIcon2 as ChevronRightIcon,
1200
1446
  Chip,
1201
1447
  CompactCard,
1202
1448
  Divider,
1203
1449
  Dropdown,
1204
- HeartIcon,
1450
+ FAQ,
1451
+ HeartIcon2 as HeartIcon,
1205
1452
  Input,
1206
1453
  Modal,
1454
+ Pin,
1207
1455
  PinIcon,
1208
1456
  RadioButton,
1209
1457
  Rating,
1458
+ ReviewCard,
1210
1459
  SectionHeader,
1211
- StarIcon
1212
- });
1460
+ StarIcon4 as StarIcon
1461
+ };
1213
1462
  //# sourceMappingURL=index.js.map