@shopito/design-system-fe 0.1.0 → 0.1.2

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.
Files changed (39) hide show
  1. package/README.md +2 -2
  2. package/dist/common/Alert/Alert.d.ts.map +1 -1
  3. package/dist/common/Avatar/Avatar.d.ts.map +1 -1
  4. package/dist/common/Badge/Badge.d.ts.map +1 -1
  5. package/dist/common/Button/Button.d.ts.map +1 -1
  6. package/dist/common/Checkbox/Checkbox.d.ts.map +1 -1
  7. package/dist/common/IconButton/IconButton.d.ts +13 -0
  8. package/dist/common/IconButton/IconButton.d.ts.map +1 -0
  9. package/dist/common/IconButton/index.d.ts +3 -0
  10. package/dist/common/IconButton/index.d.ts.map +1 -0
  11. package/dist/common/Input/Input.d.ts.map +1 -1
  12. package/dist/common/LoadingSpin/LoadingSpin.d.ts +7 -0
  13. package/dist/common/LoadingSpin/LoadingSpin.d.ts.map +1 -0
  14. package/dist/common/LoadingSpin/index.d.ts +2 -0
  15. package/dist/common/LoadingSpin/index.d.ts.map +1 -0
  16. package/dist/common/Pagination/Pagination.d.ts +1 -1
  17. package/dist/common/Pagination/Pagination.d.ts.map +1 -1
  18. package/dist/common/Select/Select.d.ts.map +1 -1
  19. package/dist/common/Spinner/Spinner.d.ts.map +1 -1
  20. package/dist/common/Stack/Stack.d.ts +11 -0
  21. package/dist/common/Stack/Stack.d.ts.map +1 -0
  22. package/dist/common/Tabs/Tabs.d.ts.map +1 -1
  23. package/dist/common/Toggle/Toggle.d.ts.map +1 -1
  24. package/dist/common/Typography/Heading.d.ts +12 -0
  25. package/dist/common/Typography/Heading.d.ts.map +1 -0
  26. package/dist/common/Typography/Text.d.ts +12 -0
  27. package/dist/common/Typography/Text.d.ts.map +1 -0
  28. package/dist/common/Typography/index.d.ts +2 -1
  29. package/dist/common/Typography/index.d.ts.map +1 -1
  30. package/dist/index.cjs +1 -1
  31. package/dist/index.cjs.map +1 -1
  32. package/dist/index.d.ts +9 -7
  33. package/dist/index.d.ts.map +1 -1
  34. package/dist/index.js +637 -829
  35. package/dist/index.js.map +1 -1
  36. package/dist/style.css +2 -2
  37. package/package.json +4 -1
  38. package/dist/common/Typography/Typography.d.ts +0 -20
  39. package/dist/common/Typography/Typography.d.ts.map +0 -1
package/dist/index.js CHANGED
@@ -1,146 +1,173 @@
1
- import { createContext as e, forwardRef as t, useCallback as n, useContext as r, useEffect as i, useRef as a, useState as o } from "react";
2
- import { Fragment as s, jsx as c, jsxs as l } from "react/jsx-runtime";
3
- import { createPortal as u } from "react-dom";
4
- //#region src/components/common/Button/Button.tsx
5
- var d = {
6
- primary: "bg-primary-600 text-white hover:bg-primary-700 active:bg-primary-800 focus-visible:ring-primary-500",
7
- secondary: "bg-gray-100 text-gray-900 hover:bg-gray-200 active:bg-gray-300 focus-visible:ring-gray-400",
8
- outline: "border border-gray-300 bg-white text-gray-700 hover:bg-gray-50 active:bg-gray-100 focus-visible:ring-gray-400",
9
- ghost: "bg-transparent text-gray-700 hover:bg-gray-100 active:bg-gray-200 focus-visible:ring-gray-400",
10
- danger: "bg-danger-600 text-white hover:bg-danger-700 active:bg-danger-800 focus-visible:ring-danger-500"
11
- }, f = {
12
- xs: "h-7 px-2.5 text-xs gap-1",
13
- sm: "h-8 px-3 text-sm gap-1.5",
14
- md: "h-10 px-4 text-sm gap-2",
15
- lg: "h-11 px-5 text-base gap-2"
16
- }, p = t(({ variant: e = "primary", size: t = "md", loading: n = !1, fullWidth: r = !1, disabled: i, children: a, className: o = "", ...s }, u) => /* @__PURE__ */ l("button", {
1
+ import { forwardRef as e, useCallback as t, useEffect as n, useRef as r, useState as i } from "react";
2
+ import { Fragment as a, jsx as o, jsxs as s } from "react/jsx-runtime";
3
+ import { createPortal as c } from "react-dom";
4
+ //#region \0rolldown/runtime.js
5
+ var l = Object.create, u = Object.defineProperty, d = Object.getOwnPropertyDescriptor, f = Object.getOwnPropertyNames, p = Object.getPrototypeOf, m = Object.prototype.hasOwnProperty, h = (e, t) => () => (t || (e((t = { exports: {} }).exports, t), e = null), t.exports), g = (e, t, n, r) => {
6
+ if (t && typeof t == "object" || typeof t == "function") for (var i = f(t), a = 0, o = i.length, s; a < o; a++) s = i[a], !m.call(e, s) && s !== n && u(e, s, {
7
+ get: ((e) => t[e]).bind(null, s),
8
+ enumerable: !(r = d(t, s)) || r.enumerable
9
+ });
10
+ return e;
11
+ }, _ = /* @__PURE__ */ ((e, t, n) => (n = e == null ? {} : l(p(e)), g(t || !e || !e.__esModule ? u(n, "default", {
12
+ value: e,
13
+ enumerable: !0
14
+ }) : n, e)))((/* @__PURE__ */ h(((e, t) => {
15
+ (function() {
16
+ var e = {}.hasOwnProperty;
17
+ function n() {
18
+ for (var e = "", t = 0; t < arguments.length; t++) {
19
+ var n = arguments[t];
20
+ n && (e = i(e, r(n)));
21
+ }
22
+ return e;
23
+ }
24
+ function r(t) {
25
+ if (typeof t == "string" || typeof t == "number") return t;
26
+ if (typeof t != "object") return "";
27
+ if (Array.isArray(t)) return n.apply(null, t);
28
+ if (t.toString !== Object.prototype.toString && !t.toString.toString().includes("[native code]")) return t.toString();
29
+ var r = "";
30
+ for (var a in t) e.call(t, a) && t[a] && (r = i(r, a));
31
+ return r;
32
+ }
33
+ function i(e, t) {
34
+ return t ? e ? e + " " + t : e + t : e;
35
+ }
36
+ t !== void 0 && t.exports ? (n.default = n, t.exports = n) : typeof define == "function" && typeof define.amd == "object" && define.amd ? define("classnames", [], function() {
37
+ return n;
38
+ }) : window.classNames = n;
39
+ })();
40
+ })))(), 1), v = e(({ variant: e = "primary", size: t = "md", loading: n = !1, fullWidth: r = !1, disabled: i, children: a, className: c = "", ...l }, u) => /* @__PURE__ */ s("button", {
17
41
  ref: u,
18
42
  disabled: i || n,
19
- className: [
20
- "inline-flex items-center justify-center rounded-md font-medium transition-colors",
21
- "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-offset-2",
22
- "disabled:pointer-events-none disabled:opacity-50",
23
- d[e],
24
- f[t],
25
- r ? "w-full" : "",
26
- o
27
- ].filter(Boolean).join(" "),
28
- ...s,
29
- children: [n && /* @__PURE__ */ l("svg", {
43
+ className: (0, _.default)("btn", e && `btn-${e}`, t && `btn-${t}`, r && "w-full", c),
44
+ ...l,
45
+ children: [n && /* @__PURE__ */ s("svg", {
30
46
  className: "animate-spin h-4 w-4 shrink-0",
31
47
  xmlns: "http://www.w3.org/2000/svg",
32
48
  fill: "none",
33
49
  viewBox: "0 0 24 24",
34
- children: [/* @__PURE__ */ c("circle", {
50
+ children: [/* @__PURE__ */ o("circle", {
35
51
  className: "opacity-25",
36
52
  cx: "12",
37
53
  cy: "12",
38
54
  r: "10",
39
55
  stroke: "currentColor",
40
56
  strokeWidth: "4"
41
- }), /* @__PURE__ */ c("path", {
57
+ }), /* @__PURE__ */ o("path", {
42
58
  className: "opacity-75",
43
59
  fill: "currentColor",
44
60
  d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"
45
61
  })]
46
62
  }), a]
47
63
  }));
48
- p.displayName = "Button";
64
+ v.displayName = "Button";
65
+ //#endregion
66
+ //#region src/components/common/LoadingSpin/LoadingSpin.tsx
67
+ var y = ({ size: e = "md" }) => /* @__PURE__ */ s("svg", {
68
+ className: (0, _.default)("loading-spin", `loading-spin-${e}`),
69
+ xmlns: "http://www.w3.org/2000/svg",
70
+ fill: "none",
71
+ viewBox: "0 0 24 24",
72
+ children: [/* @__PURE__ */ o("circle", {
73
+ className: "opacity-25",
74
+ cx: "12",
75
+ cy: "12",
76
+ r: "10",
77
+ stroke: "currentColor",
78
+ strokeWidth: "4"
79
+ }), /* @__PURE__ */ o("path", {
80
+ className: "opacity-75",
81
+ fill: "currentColor",
82
+ d: "M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z"
83
+ })]
84
+ }), b = e(({ icon: e, label: t, variant: n = "ghost", size: r = "md", loading: i = !1, disabled: a, className: s = "", ...c }, l) => /* @__PURE__ */ o("button", {
85
+ ref: l,
86
+ disabled: a || i,
87
+ "aria-label": t,
88
+ title: t,
89
+ className: (0, _.default)("icon-button", `icon-button-${n}`, `icon-button-${r}`, s),
90
+ ...c,
91
+ children: i ? /* @__PURE__ */ o(y, { size: r }) : e
92
+ }));
93
+ b.displayName = "IconButton";
49
94
  //#endregion
50
95
  //#region src/components/common/Input/Input.tsx
51
- var m = t(({ label: e, error: t, hint: n, leftIcon: r, rightIcon: i, fullWidth: a = !1, className: o = "", id: s, ...u }, d) => {
52
- let f = s ?? e?.toLowerCase().replace(/\s+/g, "-");
53
- return /* @__PURE__ */ l("div", {
96
+ var x = e(({ label: e, error: t, hint: n, leftIcon: r, rightIcon: i, fullWidth: a = !1, className: c = "", id: l, ...u }, d) => {
97
+ let f = l ?? e?.toLowerCase().replace(/\s+/g, "-");
98
+ return /* @__PURE__ */ s("div", {
54
99
  className: a ? "w-full" : "inline-block",
55
100
  children: [
56
- e && /* @__PURE__ */ c("label", {
101
+ e && /* @__PURE__ */ o("label", {
57
102
  htmlFor: f,
58
- className: "block text-sm font-medium text-gray-700 mb-1",
103
+ className: "input-label",
59
104
  children: e
60
105
  }),
61
- /* @__PURE__ */ l("div", {
106
+ /* @__PURE__ */ s("div", {
62
107
  className: "relative",
63
108
  children: [
64
- r && /* @__PURE__ */ c("span", {
65
- className: "absolute left-3 top-1/2 -translate-y-1/2 text-gray-400 pointer-events-none",
109
+ r && /* @__PURE__ */ o("span", {
110
+ className: "left-icon",
66
111
  children: r
67
112
  }),
68
- /* @__PURE__ */ c("input", {
113
+ /* @__PURE__ */ o("input", {
69
114
  ref: d,
70
115
  id: f,
71
- className: [
72
- "h-10 rounded-md border bg-white px-3 text-sm text-gray-900 placeholder:text-gray-400",
73
- "transition-colors outline-none",
74
- "focus:border-primary-500 focus:ring-2 focus:ring-primary-500/20",
75
- "disabled:cursor-not-allowed disabled:bg-gray-50 disabled:text-gray-500",
76
- t ? "border-danger-500 focus:border-danger-500 focus:ring-danger-500/20" : "border-gray-300",
77
- r ? "pl-9" : "",
78
- i ? "pr-9" : "",
79
- a ? "w-full" : "",
80
- o
81
- ].filter(Boolean).join(" "),
116
+ className: (0, _.default)("input", t && "has-error", !!r && "with-left-icon", !!i && "with-right-icon", a && "w-full", c),
82
117
  ...u
83
118
  }),
84
- i && /* @__PURE__ */ c("span", {
85
- className: "absolute right-3 top-1/2 -translate-y-1/2 text-gray-400 pointer-events-none",
119
+ i && /* @__PURE__ */ o("span", {
120
+ className: "right-icon",
86
121
  children: i
87
122
  })
88
123
  ]
89
124
  }),
90
- (t || n) && /* @__PURE__ */ c("p", {
91
- className: `mt-1 text-xs ${t ? "text-danger-600" : "text-gray-500"}`,
125
+ (t || n) && /* @__PURE__ */ o("p", {
126
+ className: (0, _.default)("helper-text", t && "has-error"),
92
127
  children: t ?? n
93
128
  })
94
129
  ]
95
130
  });
96
131
  });
97
- m.displayName = "Input";
132
+ x.displayName = "Input";
98
133
  //#endregion
99
134
  //#region src/components/common/Select/Select.tsx
100
- var h = t(({ label: e, error: t, hint: n, options: r, placeholder: i, fullWidth: a = !1, className: o = "", id: s, ...u }, d) => {
101
- let f = s ?? e?.toLowerCase().replace(/\s+/g, "-");
102
- return /* @__PURE__ */ l("div", {
103
- className: a ? "w-full" : "inline-block",
135
+ var S = e(({ label: e, error: t, hint: n, options: r, placeholder: i, fullWidth: a = !1, className: c = "", id: l, ...u }, d) => {
136
+ let f = l ?? e?.toLowerCase().replace(/\s+/g, "-");
137
+ return /* @__PURE__ */ s("div", {
138
+ className: (0, _.default)("select-wrapper", a && "w-full"),
104
139
  children: [
105
- e && /* @__PURE__ */ c("label", {
140
+ e && /* @__PURE__ */ o("label", {
106
141
  htmlFor: f,
107
- className: "block text-sm font-medium text-gray-700 mb-1",
142
+ className: "select-label",
108
143
  children: e
109
144
  }),
110
- /* @__PURE__ */ l("div", {
145
+ /* @__PURE__ */ s("div", {
111
146
  className: "relative",
112
- children: [/* @__PURE__ */ l("select", {
147
+ children: [/* @__PURE__ */ s("select", {
113
148
  ref: d,
114
149
  id: f,
115
- className: [
116
- "h-10 rounded-md border bg-white px-3 pr-8 text-sm text-gray-900",
117
- "appearance-none transition-colors outline-none",
118
- "focus:border-primary-500 focus:ring-2 focus:ring-primary-500/20",
119
- "disabled:cursor-not-allowed disabled:bg-gray-50 disabled:text-gray-500",
120
- t ? "border-danger-500 focus:border-danger-500 focus:ring-danger-500/20" : "border-gray-300",
121
- a ? "w-full" : "",
122
- o
123
- ].filter(Boolean).join(" "),
150
+ className: (0, _.default)("select", t && "has-error", a && "w-full", c),
124
151
  ...u,
125
- children: [i && /* @__PURE__ */ c("option", {
152
+ children: [i && /* @__PURE__ */ o("option", {
126
153
  value: "",
127
154
  disabled: !0,
128
155
  children: i
129
- }), r.map((e) => /* @__PURE__ */ c("option", {
156
+ }), r.map((e) => /* @__PURE__ */ o("option", {
130
157
  value: e.value,
131
158
  disabled: e.disabled,
132
159
  children: e.label
133
160
  }, e.value))]
134
- }), /* @__PURE__ */ c("span", {
135
- className: "pointer-events-none absolute right-2.5 top-1/2 -translate-y-1/2 text-gray-400",
136
- children: /* @__PURE__ */ c("svg", {
161
+ }), /* @__PURE__ */ o("span", {
162
+ className: "select-chevron-icon",
163
+ children: /* @__PURE__ */ o("svg", {
137
164
  xmlns: "http://www.w3.org/2000/svg",
138
165
  fill: "none",
139
166
  viewBox: "0 0 24 24",
140
167
  strokeWidth: 2,
141
168
  stroke: "currentColor",
142
169
  className: "w-4 h-4",
143
- children: /* @__PURE__ */ c("path", {
170
+ children: /* @__PURE__ */ o("path", {
144
171
  strokeLinecap: "round",
145
172
  strokeLinejoin: "round",
146
173
  d: "M19.5 8.25l-7.5 7.5-7.5-7.5"
@@ -148,129 +175,71 @@ var h = t(({ label: e, error: t, hint: n, options: r, placeholder: i, fullWidth:
148
175
  })
149
176
  })]
150
177
  }),
151
- (t || n) && /* @__PURE__ */ c("p", {
152
- className: `mt-1 text-xs ${t ? "text-danger-600" : "text-gray-500"}`,
178
+ (t || n) && /* @__PURE__ */ o("p", {
179
+ className: (0, _.default)("select-helper", t && "has-error"),
153
180
  children: t ?? n
154
181
  })
155
182
  ]
156
183
  });
157
184
  });
158
- h.displayName = "Select";
185
+ S.displayName = "Select";
159
186
  //#endregion
160
- //#region src/components/common/Typography/Typography.tsx
161
- var g = {
162
- 1: "text-4xl font-bold tracking-tight",
163
- 2: "text-3xl font-bold tracking-tight",
164
- 3: "text-2xl font-semibold",
165
- 4: "text-xl font-semibold",
166
- 5: "text-lg font-medium",
167
- 6: "text-base font-medium"
168
- }, _ = {
169
- body: "text-base",
170
- "body-sm": "text-sm",
171
- caption: "text-xs",
172
- overline: "text-xs font-semibold uppercase tracking-wider",
173
- code: "font-mono text-sm bg-gray-100 px-1.5 py-0.5 rounded"
174
- }, v = {
175
- default: "text-gray-900",
176
- muted: "text-gray-500",
177
- primary: "text-primary-600",
178
- success: "text-success-600",
179
- warning: "text-warning-600",
180
- danger: "text-danger-600",
181
- inherit: ""
182
- };
183
- function y({ as: e, level: t = 1, color: n = "default", className: r = "", children: i, ...a }) {
184
- return /* @__PURE__ */ c(e ?? `h${t}`, {
185
- className: [
186
- g[t],
187
- v[n],
188
- r
189
- ].filter(Boolean).join(" "),
190
- ...a,
191
- children: i
192
- });
193
- }
194
- function b({ variant: e = "body", color: t = "default", as: n = "p", className: r = "", children: i, ...a }) {
195
- return /* @__PURE__ */ c(n, {
196
- className: [
197
- _[e],
198
- v[t],
199
- r
200
- ].filter(Boolean).join(" "),
201
- ...a,
202
- children: i
203
- });
204
- }
187
+ //#region src/components/common/Typography/Heading.tsx
188
+ var C = ({ as: e, level: t = 1, color: n = "default", className: r = "", children: i, ...a }) => /* @__PURE__ */ o(e ?? `h${t}`, {
189
+ className: (0, _.default)(`text-color-${n}`, `heading-size-${t}`, r),
190
+ ...a,
191
+ children: i
192
+ }), w = ({ variant: e = "body", color: t = "default", as: n = "p", className: r = "", children: i, ...a }) => /* @__PURE__ */ o(n, {
193
+ className: (0, _.default)(`text-color-${t}`, `text-variant-${e}`, r),
194
+ ...a,
195
+ children: i
196
+ });
205
197
  //#endregion
206
198
  //#region src/components/common/Badge/Badge.tsx
207
- var x = {
208
- default: "bg-gray-100 text-gray-700",
209
- primary: "bg-primary-100 text-primary-700",
210
- success: "bg-success-50 text-success-700",
211
- warning: "bg-warning-50 text-warning-700",
212
- danger: "bg-danger-50 text-danger-700",
213
- outline: "border border-gray-300 text-gray-700 bg-transparent"
214
- }, S = {
215
- default: "bg-gray-500",
216
- primary: "bg-primary-500",
217
- success: "bg-success-500",
218
- warning: "bg-warning-500",
219
- danger: "bg-danger-500",
220
- outline: "bg-gray-400"
221
- }, C = {
222
- sm: "px-2 py-0.5 text-xs",
223
- md: "px-2.5 py-1 text-xs"
224
- };
225
- function w({ variant: e = "default", size: t = "md", dot: n = !1, className: r = "", children: i, ...a }) {
226
- return /* @__PURE__ */ l("span", {
227
- className: [
228
- "inline-flex items-center gap-1.5 rounded-full font-medium",
229
- x[e],
230
- C[t],
231
- r
232
- ].filter(Boolean).join(" "),
199
+ function T({ variant: e = "default", size: t = "md", dot: n = !1, className: r, children: i, ...a }) {
200
+ return /* @__PURE__ */ s("span", {
201
+ className: (0, _.default)("badge", `badge-${e}`, `badge-${t}`, r),
233
202
  ...a,
234
- children: [n && /* @__PURE__ */ c("span", { className: `inline-block w-1.5 h-1.5 rounded-full ${S[e]}` }), i]
203
+ children: [n && /* @__PURE__ */ o("span", { className: (0, _.default)("badge-dot", `badge-dot-${e}`) }), i]
235
204
  });
236
205
  }
237
206
  //#endregion
238
207
  //#region src/components/common/Card/Card.tsx
239
- var T = {
208
+ var E = {
240
209
  none: "",
241
210
  sm: "p-4",
242
211
  md: "p-6",
243
212
  lg: "p-8"
244
213
  };
245
- function E({ children: e, padding: t = "md", shadow: n = !0, border: r = !0, className: i = "", ...a }) {
246
- return /* @__PURE__ */ c("div", {
214
+ function D({ children: e, padding: t = "md", shadow: n = !0, border: r = !0, className: i = "", ...a }) {
215
+ return /* @__PURE__ */ o("div", {
247
216
  className: [
248
217
  "bg-white rounded-xl overflow-hidden",
249
218
  r ? "border border-gray-200" : "",
250
219
  n ? "shadow-sm" : "",
251
- T[t],
220
+ E[t],
252
221
  i
253
222
  ].filter(Boolean).join(" "),
254
223
  ...a,
255
224
  children: e
256
225
  });
257
226
  }
258
- function D({ children: e, className: t = "", ...n }) {
259
- return /* @__PURE__ */ c("div", {
227
+ function O({ children: e, className: t = "", ...n }) {
228
+ return /* @__PURE__ */ o("div", {
260
229
  className: ["px-6 py-4 border-b border-gray-100", t].filter(Boolean).join(" "),
261
230
  ...n,
262
231
  children: e
263
232
  });
264
233
  }
265
- function O({ children: e, className: t = "", ...n }) {
266
- return /* @__PURE__ */ c("div", {
234
+ function ee({ children: e, className: t = "", ...n }) {
235
+ return /* @__PURE__ */ o("div", {
267
236
  className: ["p-6", t].filter(Boolean).join(" "),
268
237
  ...n,
269
238
  children: e
270
239
  });
271
240
  }
272
- function ee({ children: e, className: t = "", ...n }) {
273
- return /* @__PURE__ */ c("div", {
241
+ function k({ children: e, className: t = "", ...n }) {
242
+ return /* @__PURE__ */ o("div", {
274
243
  className: ["px-6 py-4 border-t border-gray-100 bg-gray-50", t].filter(Boolean).join(" "),
275
244
  ...n,
276
245
  children: e
@@ -278,28 +247,13 @@ function ee({ children: e, className: t = "", ...n }) {
278
247
  }
279
248
  //#endregion
280
249
  //#region src/components/common/Spinner/Spinner.tsx
281
- var te = {
282
- xs: "w-3 h-3 border-[1.5px]",
283
- sm: "w-4 h-4 border-2",
284
- md: "w-6 h-6 border-2",
285
- lg: "w-8 h-8 border-[3px]",
286
- xl: "w-12 h-12 border-4"
287
- }, ne = {
288
- primary: "border-primary-200 border-t-primary-600",
289
- white: "border-white/30 border-t-white",
290
- gray: "border-gray-200 border-t-gray-600"
291
- };
292
- function re({ size: e = "md", color: t = "primary", label: n = "Loading…", className: r = "", ...i }) {
293
- return /* @__PURE__ */ l("span", {
250
+ function te({ size: e = "md", color: t = "primary", label: n = "Loading…", className: r = "", ...i }) {
251
+ return /* @__PURE__ */ s("span", {
294
252
  role: "status",
295
253
  "aria-label": n,
296
- className: ["inline-block", r].filter(Boolean).join(" "),
254
+ className: (0, _.default)("spinner-wrapper", r),
297
255
  ...i,
298
- children: [/* @__PURE__ */ c("span", { className: [
299
- "block rounded-full animate-spin",
300
- te[e],
301
- ne[t]
302
- ].join(" ") }), /* @__PURE__ */ c("span", {
256
+ children: [/* @__PURE__ */ o("span", { className: (0, _.default)("spinner", `spinner-${e}`, `spinner-${t}`) }), /* @__PURE__ */ o("span", {
303
257
  className: "sr-only",
304
258
  children: n
305
259
  })]
@@ -307,86 +261,65 @@ function re({ size: e = "md", color: t = "primary", label: n = "Loading…", cla
307
261
  }
308
262
  //#endregion
309
263
  //#region src/components/common/Alert/Alert.tsx
310
- var k = {
311
- info: {
312
- container: "bg-primary-50 border-primary-200 text-primary-800",
313
- icon: "text-primary-500",
314
- iconPath: /* @__PURE__ */ c("path", {
315
- strokeLinecap: "round",
316
- strokeLinejoin: "round",
317
- d: "M11.25 11.25l.041-.02a.75.75 0 011.063.852l-.708 2.836a.75.75 0 001.063.853l.041-.021M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9-3.75h.008v.008H12V8.25z"
318
- })
319
- },
320
- success: {
321
- container: "bg-success-50 border-success-200 text-success-800",
322
- icon: "text-success-500",
323
- iconPath: /* @__PURE__ */ c("path", {
324
- strokeLinecap: "round",
325
- strokeLinejoin: "round",
326
- d: "M9 12.75L11.25 15 15 9.75M21 12a9 9 0 11-18 0 9 9 0 0118 0z"
327
- })
328
- },
329
- warning: {
330
- container: "bg-warning-50 border-warning-200 text-warning-800",
331
- icon: "text-warning-500",
332
- iconPath: /* @__PURE__ */ c("path", {
333
- strokeLinecap: "round",
334
- strokeLinejoin: "round",
335
- d: "M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126zM12 15.75h.007v.008H12v-.008z"
336
- })
337
- },
338
- danger: {
339
- container: "bg-danger-50 border-danger-200 text-danger-800",
340
- icon: "text-danger-500",
341
- iconPath: /* @__PURE__ */ c("path", {
342
- strokeLinecap: "round",
343
- strokeLinejoin: "round",
344
- d: "M12 9v3.75m9-.75a9 9 0 11-18 0 9 9 0 0118 0zm-9 3.75h.008v.008H12v-.008z"
345
- })
346
- }
264
+ var ne = {
265
+ info: /* @__PURE__ */ o("path", {
266
+ strokeLinecap: "round",
267
+ strokeLinejoin: "round",
268
+ d: "M11.25 11.25l.041-.02a.75.75 0 011.063.852l-.708 2.836a.75.75 0 001.063.853l.041-.021M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9-3.75h.008v.008H12V8.25z"
269
+ }),
270
+ success: /* @__PURE__ */ o("path", {
271
+ strokeLinecap: "round",
272
+ strokeLinejoin: "round",
273
+ d: "M9 12.75L11.25 15 15 9.75M21 12a9 9 0 11-18 0 9 9 0 0118 0z"
274
+ }),
275
+ warning: /* @__PURE__ */ o("path", {
276
+ strokeLinecap: "round",
277
+ strokeLinejoin: "round",
278
+ d: "M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126zM12 15.75h.007v.008H12v-.008z"
279
+ }),
280
+ danger: /* @__PURE__ */ o("path", {
281
+ strokeLinecap: "round",
282
+ strokeLinejoin: "round",
283
+ d: "M12 9v3.75m9-.75a9 9 0 11-18 0 9 9 0 0118 0zm-9 3.75h.008v.008H12v-.008z"
284
+ })
347
285
  };
348
286
  function A({ variant: e = "info", title: t, children: n, onClose: r, className: i = "", ...a }) {
349
- let o = k[e];
350
- return /* @__PURE__ */ l("div", {
287
+ return /* @__PURE__ */ s("div", {
351
288
  role: "alert",
352
- className: [
353
- "flex gap-3 rounded-lg border p-4",
354
- o.container,
355
- i
356
- ].filter(Boolean).join(" "),
289
+ className: (0, _.default)("alert", `alert-${e}`, i),
357
290
  ...a,
358
291
  children: [
359
- /* @__PURE__ */ c("svg", {
292
+ /* @__PURE__ */ o("svg", {
360
293
  xmlns: "http://www.w3.org/2000/svg",
361
294
  fill: "none",
362
295
  viewBox: "0 0 24 24",
363
296
  strokeWidth: 1.5,
364
297
  stroke: "currentColor",
365
- className: `w-5 h-5 shrink-0 mt-0.5 ${o.icon}`,
366
- children: o.iconPath
298
+ className: (0, _.default)("alert-icon", `alert-icon-${e}`),
299
+ children: ne[e]
367
300
  }),
368
- /* @__PURE__ */ l("div", {
301
+ /* @__PURE__ */ s("div", {
369
302
  className: "flex-1 min-w-0",
370
- children: [t && /* @__PURE__ */ c("p", {
371
- className: "font-semibold text-sm mb-0.5",
303
+ children: [t && /* @__PURE__ */ o("p", {
304
+ className: "alert-title",
372
305
  children: t
373
- }), /* @__PURE__ */ c("div", {
374
- className: "text-sm",
306
+ }), /* @__PURE__ */ o("div", {
307
+ className: "alert-text",
375
308
  children: n
376
309
  })]
377
310
  }),
378
- r && /* @__PURE__ */ c("button", {
311
+ r && /* @__PURE__ */ o("button", {
379
312
  onClick: r,
380
- className: "shrink-0 opacity-60 hover:opacity-100 transition-opacity",
313
+ className: "alert-close-btn",
381
314
  "aria-label": "Close",
382
- children: /* @__PURE__ */ c("svg", {
315
+ children: /* @__PURE__ */ o("svg", {
383
316
  xmlns: "http://www.w3.org/2000/svg",
384
317
  fill: "none",
385
318
  viewBox: "0 0 24 24",
386
319
  strokeWidth: 1.5,
387
320
  stroke: "currentColor",
388
321
  className: "w-4 h-4",
389
- children: /* @__PURE__ */ c("path", {
322
+ children: /* @__PURE__ */ o("path", {
390
323
  strokeLinecap: "round",
391
324
  strokeLinejoin: "round",
392
325
  d: "M6 18L18 6M6 6l12 12"
@@ -398,57 +331,57 @@ function A({ variant: e = "info", title: t, children: n, onClose: r, className:
398
331
  }
399
332
  //#endregion
400
333
  //#region src/components/common/Modal/Modal.tsx
401
- var j = {
334
+ var re = {
402
335
  sm: "max-w-sm",
403
336
  md: "max-w-md",
404
337
  lg: "max-w-lg",
405
338
  xl: "max-w-xl",
406
339
  full: "max-w-full mx-4"
407
340
  };
408
- function M({ open: e, onClose: t, title: n, children: r, footer: o, size: s = "md", closeOnBackdrop: d = !0 }) {
409
- let f = a(null);
410
- return i(() => {
341
+ function j({ open: e, onClose: t, title: i, children: a, footer: l, size: u = "md", closeOnBackdrop: d = !0 }) {
342
+ let f = r(null);
343
+ return n(() => {
411
344
  if (!e) return;
412
345
  let t = document.body.style.overflow;
413
346
  return document.body.style.overflow = "hidden", () => {
414
347
  document.body.style.overflow = t;
415
348
  };
416
- }, [e]), i(() => {
349
+ }, [e]), n(() => {
417
350
  if (!e) return;
418
351
  let n = (e) => {
419
352
  e.key === "Escape" && t();
420
353
  };
421
354
  return document.addEventListener("keydown", n), () => document.removeEventListener("keydown", n);
422
- }, [e, t]), e ? u(/* @__PURE__ */ c("div", {
355
+ }, [e, t]), e ? c(/* @__PURE__ */ o("div", {
423
356
  ref: f,
424
357
  className: "fixed inset-0 z-50 flex items-center justify-center p-4 bg-black/50 backdrop-blur-sm",
425
358
  onClick: (e) => {
426
359
  d && e.target === f.current && t();
427
360
  },
428
- children: /* @__PURE__ */ l("div", {
361
+ children: /* @__PURE__ */ s("div", {
429
362
  role: "dialog",
430
363
  "aria-modal": "true",
431
- "aria-labelledby": n ? "modal-title" : void 0,
432
- className: ["relative w-full bg-white rounded-xl shadow-xl flex flex-col max-h-[90vh]", j[s]].join(" "),
364
+ "aria-labelledby": i ? "modal-title" : void 0,
365
+ className: ["relative w-full bg-white rounded-xl shadow-xl flex flex-col max-h-[90vh]", re[u]].join(" "),
433
366
  children: [
434
- n && /* @__PURE__ */ l("div", {
367
+ i && /* @__PURE__ */ s("div", {
435
368
  className: "flex items-center justify-between px-6 py-4 border-b border-gray-100 shrink-0",
436
- children: [/* @__PURE__ */ c("h2", {
369
+ children: [/* @__PURE__ */ o("h2", {
437
370
  id: "modal-title",
438
371
  className: "text-lg font-semibold text-gray-900",
439
- children: n
440
- }), /* @__PURE__ */ c("button", {
372
+ children: i
373
+ }), /* @__PURE__ */ o("button", {
441
374
  onClick: t,
442
375
  className: "text-gray-400 hover:text-gray-600 transition-colors",
443
376
  "aria-label": "Close modal",
444
- children: /* @__PURE__ */ c("svg", {
377
+ children: /* @__PURE__ */ o("svg", {
445
378
  xmlns: "http://www.w3.org/2000/svg",
446
379
  fill: "none",
447
380
  viewBox: "0 0 24 24",
448
381
  strokeWidth: 1.5,
449
382
  stroke: "currentColor",
450
383
  className: "w-5 h-5",
451
- children: /* @__PURE__ */ c("path", {
384
+ children: /* @__PURE__ */ o("path", {
452
385
  strokeLinecap: "round",
453
386
  strokeLinejoin: "round",
454
387
  d: "M6 18L18 6M6 6l12 12"
@@ -456,13 +389,13 @@ function M({ open: e, onClose: t, title: n, children: r, footer: o, size: s = "m
456
389
  })
457
390
  })]
458
391
  }),
459
- /* @__PURE__ */ c("div", {
392
+ /* @__PURE__ */ o("div", {
460
393
  className: "flex-1 overflow-y-auto px-6 py-4",
461
- children: r
394
+ children: a
462
395
  }),
463
- o && /* @__PURE__ */ c("div", {
396
+ l && /* @__PURE__ */ o("div", {
464
397
  className: "px-6 py-4 border-t border-gray-100 shrink-0 bg-gray-50 rounded-b-xl",
465
- children: o
398
+ children: l
466
399
  })
467
400
  ]
468
401
  })
@@ -470,108 +403,73 @@ function M({ open: e, onClose: t, title: n, children: r, footer: o, size: s = "m
470
403
  }
471
404
  //#endregion
472
405
  //#region src/components/common/Checkbox/Checkbox.tsx
473
- var N = t(({ label: e, description: t, error: n, indeterminate: r, className: i = "", id: a, ...o }, s) => {
406
+ var M = e(({ label: e, description: t, error: n, indeterminate: r, className: i = "", id: a, ...c }, l) => {
474
407
  let u = a ?? e?.toLowerCase().replace(/\s+/g, "-");
475
- return /* @__PURE__ */ l("div", {
476
- className: ["flex gap-3", i].filter(Boolean).join(" "),
477
- children: [/* @__PURE__ */ c("div", {
478
- className: "flex items-center h-5",
479
- children: /* @__PURE__ */ c("input", {
408
+ return /* @__PURE__ */ s("div", {
409
+ className: (0, _.default)("checkbox-wrapper", i),
410
+ children: [/* @__PURE__ */ o("div", {
411
+ className: "checkbox-wrapper-inner",
412
+ children: /* @__PURE__ */ o("input", {
480
413
  ref: (e) => {
481
- e && (e.indeterminate = r ?? !1), typeof s == "function" ? s(e) : s && (s.current = e);
414
+ e && (e.indeterminate = r ?? !1), typeof l == "function" ? l(e) : l && (l.current = e);
482
415
  },
483
416
  id: u,
484
417
  type: "checkbox",
485
- className: [
486
- "w-4 h-4 rounded border-gray-300 text-primary-600",
487
- "focus:ring-2 focus:ring-primary-500 focus:ring-offset-1",
488
- "disabled:cursor-not-allowed disabled:opacity-50",
489
- n ? "border-danger-500" : ""
490
- ].filter(Boolean).join(" "),
491
- ...o
418
+ className: (0, _.default)("checkbox", n && "has-error"),
419
+ ...c
492
420
  })
493
- }), (e || t) && /* @__PURE__ */ l("div", { children: [
494
- e && /* @__PURE__ */ c("label", {
421
+ }), (e || t) && /* @__PURE__ */ s("div", { children: [
422
+ e && /* @__PURE__ */ o("label", {
495
423
  htmlFor: u,
496
- className: "text-sm font-medium text-gray-900 cursor-pointer",
424
+ className: "checkbox-label",
497
425
  children: e
498
426
  }),
499
- t && /* @__PURE__ */ c("p", {
500
- className: "text-xs text-gray-500 mt-0.5",
427
+ t && /* @__PURE__ */ o("p", {
428
+ className: "checkbox-description",
501
429
  children: t
502
430
  }),
503
- n && /* @__PURE__ */ c("p", {
504
- className: "text-xs text-danger-600 mt-0.5",
431
+ n && /* @__PURE__ */ o("p", {
432
+ className: "checkbox-error",
505
433
  children: n
506
434
  })
507
435
  ] })]
508
436
  });
509
437
  });
510
- N.displayName = "Checkbox";
438
+ M.displayName = "Checkbox";
511
439
  //#endregion
512
440
  //#region src/components/common/Toggle/Toggle.tsx
513
- var ie = {
514
- sm: {
515
- wrapper: "w-8 h-4",
516
- thumb: "w-3 h-3 top-0.5 left-0.5",
517
- checkedTranslate: "peer-checked:translate-x-4"
518
- },
519
- md: {
520
- wrapper: "w-11 h-6",
521
- thumb: "w-5 h-5 top-0.5 left-0.5",
522
- checkedTranslate: "peer-checked:translate-x-5"
523
- },
524
- lg: {
525
- wrapper: "w-14 h-7",
526
- thumb: "w-6 h-6 top-0.5 left-0.5",
527
- checkedTranslate: "peer-checked:translate-x-7"
528
- }
529
- }, P = t(({ label: e, description: t, size: n = "md", className: r = "", id: i, ...a }, o) => {
530
- let s = i ?? e?.toLowerCase().replace(/\s+/g, "-"), { wrapper: u, thumb: d, checkedTranslate: f } = ie[n];
531
- return /* @__PURE__ */ l("label", {
532
- htmlFor: s,
533
- className: [
534
- "inline-flex items-start gap-3 cursor-pointer select-none",
535
- a.disabled ? "cursor-not-allowed opacity-50" : "",
536
- r
537
- ].filter(Boolean).join(" "),
538
- children: [/* @__PURE__ */ l("div", {
539
- className: `relative shrink-0 mt-0.5 ${u}`,
441
+ var N = e(({ label: e, description: t, size: n = "md", className: r = "", id: i, ...a }, c) => {
442
+ let l = i ?? e?.toLowerCase().replace(/\s+/g, "-");
443
+ return /* @__PURE__ */ s("label", {
444
+ htmlFor: l,
445
+ className: (0, _.default)("toggle", a.disabled && "toggle-disabled", r),
446
+ children: [/* @__PURE__ */ s("div", {
447
+ className: (0, _.default)("toggle-wrapper", `toggle-wrapper-${n}`),
540
448
  children: [
541
- /* @__PURE__ */ c("input", {
542
- ref: o,
543
- id: s,
449
+ /* @__PURE__ */ o("input", {
450
+ ref: c,
451
+ id: l,
544
452
  type: "checkbox",
545
453
  role: "switch",
546
454
  className: "sr-only peer",
547
455
  ...a
548
456
  }),
549
- /* @__PURE__ */ c("div", { className: "absolute inset-0 rounded-full bg-gray-200 peer-checked:bg-primary-600 transition-colors duration-200 peer-focus-visible:ring-2 peer-focus-visible:ring-primary-500 peer-focus-visible:ring-offset-2" }),
550
- /* @__PURE__ */ c("div", { className: `absolute ${d} rounded-full bg-white shadow-sm transition-transform duration-200 ${f}` })
457
+ /* @__PURE__ */ o("div", { className: "toggle-track" }),
458
+ /* @__PURE__ */ o("div", { className: (0, _.default)("toggle-thumb", `toggle-thumb-${n}`) })
551
459
  ]
552
- }), (e || t) && /* @__PURE__ */ l("div", { children: [e && /* @__PURE__ */ c("span", {
553
- className: "text-sm font-medium text-gray-900 block",
460
+ }), (e || t) && /* @__PURE__ */ s("div", { children: [e && /* @__PURE__ */ o("span", {
461
+ className: "toggle-label",
554
462
  children: e
555
- }), t && /* @__PURE__ */ c("span", {
556
- className: "text-xs text-gray-500 mt-0.5 block",
463
+ }), t && /* @__PURE__ */ o("span", {
464
+ className: "toggle-description",
557
465
  children: t
558
466
  })] })]
559
467
  });
560
468
  });
561
- P.displayName = "Toggle";
469
+ N.displayName = "Toggle";
562
470
  //#endregion
563
471
  //#region src/components/common/Avatar/Avatar.tsx
564
- var ae = {
565
- xs: "w-6 h-6 text-xs",
566
- sm: "w-8 h-8 text-sm",
567
- md: "w-10 h-10 text-sm",
568
- lg: "w-12 h-12 text-base",
569
- xl: "w-16 h-16 text-lg"
570
- };
571
- function oe(e) {
572
- return e.split(" ").slice(0, 2).map((e) => e[0]).join("").toUpperCase();
573
- }
574
- var F = [
472
+ var P = [
575
473
  "bg-red-500",
576
474
  "bg-orange-500",
577
475
  "bg-amber-500",
@@ -582,39 +480,38 @@ var F = [
582
480
  "bg-violet-500",
583
481
  "bg-pink-500"
584
482
  ];
585
- function se(e) {
586
- let t = 0;
587
- for (let n = 0; n < e.length; n++) t += e.charCodeAt(n);
588
- return F[t % F.length];
589
- }
590
- function ce({ src: e, alt: t, name: n, size: r = "md", className: i = "", ...a }) {
591
- let o = [
592
- "inline-flex items-center justify-center rounded-full overflow-hidden shrink-0 font-medium text-white",
593
- ae[r],
483
+ function F({ src: e, alt: t, name: n, size: r = "md", className: i, ...a }) {
484
+ let s = [
485
+ "avatar",
486
+ `avatar-${r}`,
594
487
  i
595
- ].filter(Boolean).join(" ");
596
- return e ? /* @__PURE__ */ c("span", {
597
- className: o,
488
+ ], c = (e) => {
489
+ let t = 0;
490
+ for (let n = 0; n < e.length; n++) t += e.charCodeAt(n);
491
+ return P[t % P.length];
492
+ }, l = (e) => e.split(" ").slice(0, 2).map((e) => e[0]).join("").toUpperCase();
493
+ return e ? /* @__PURE__ */ o("span", {
494
+ className: (0, _.default)(s),
598
495
  ...a,
599
- children: /* @__PURE__ */ c("img", {
496
+ children: /* @__PURE__ */ o("img", {
600
497
  src: e,
601
498
  alt: t ?? n ?? "",
602
499
  className: "w-full h-full object-cover"
603
500
  })
604
- }) : n ? /* @__PURE__ */ c("span", {
605
- className: `${o} ${se(n)}`,
501
+ }) : n ? /* @__PURE__ */ o("span", {
502
+ className: (0, _.default)(s, c(n)),
606
503
  "aria-label": n,
607
504
  ...a,
608
- children: oe(n)
609
- }) : /* @__PURE__ */ c("span", {
610
- className: `${o} bg-gray-200 text-gray-500`,
505
+ children: l(n)
506
+ }) : /* @__PURE__ */ o("span", {
507
+ className: (0, _.default)(s, "avatar-fallback"),
611
508
  ...a,
612
- children: /* @__PURE__ */ c("svg", {
509
+ children: /* @__PURE__ */ o("svg", {
613
510
  xmlns: "http://www.w3.org/2000/svg",
614
511
  fill: "currentColor",
615
512
  viewBox: "0 0 24 24",
616
513
  className: "w-3/5 h-3/5",
617
- children: /* @__PURE__ */ c("path", {
514
+ children: /* @__PURE__ */ o("path", {
618
515
  fillRule: "evenodd",
619
516
  d: "M7.5 6a4.5 4.5 0 119 0 4.5 4.5 0 01-9 0zM3.751 20.105a8.25 8.25 0 0116.498 0 .75.75 0 01-.437.695A18.683 18.683 0 0112 22.5c-2.786 0-5.433-.608-7.812-1.7a.75.75 0 01-.437-.695z",
620
517
  clipRule: "evenodd"
@@ -623,165 +520,76 @@ function ce({ src: e, alt: t, name: n, size: r = "md", className: i = "", ...a }
623
520
  });
624
521
  }
625
522
  //#endregion
626
- //#region src/components/common/Tabs/Tabs.tsx
627
- var I = e(null);
628
- function L() {
629
- let e = r(I);
630
- if (!e) throw Error("Tabs subcomponents must be used inside <Tabs>");
631
- return e;
632
- }
633
- function R({ defaultTab: e, variant: t = "underline", className: n = "", children: r, ...i }) {
634
- let [a, s] = o(e);
635
- return /* @__PURE__ */ c(I.Provider, {
636
- value: {
637
- activeTab: a,
638
- setActiveTab: s,
639
- variant: t
640
- },
641
- children: /* @__PURE__ */ c("div", {
642
- className: n,
643
- ...i,
644
- children: r
645
- })
646
- });
647
- }
648
- function z({ children: e, className: t = "", ...n }) {
649
- let { variant: r } = L();
650
- return /* @__PURE__ */ c("div", {
651
- role: "tablist",
652
- className: [{
653
- underline: "flex border-b border-gray-200 gap-1",
654
- pills: "flex gap-1 bg-gray-100 p-1 rounded-lg",
655
- bordered: "flex gap-0 border border-gray-200 rounded-lg overflow-hidden"
656
- }[r], t].filter(Boolean).join(" "),
657
- ...n,
658
- children: e
659
- });
660
- }
661
- function B({ id: e, children: t, className: n = "", ...r }) {
662
- let { activeTab: i, setActiveTab: a, variant: o } = L(), s = i === e, l = {
663
- underline: {
664
- active: "text-primary-600 border-b-2 border-primary-600 -mb-px",
665
- inactive: "text-gray-500 hover:text-gray-700 border-b-2 border-transparent -mb-px"
666
- },
667
- pills: {
668
- active: "bg-white text-gray-900 shadow-sm rounded-md",
669
- inactive: "text-gray-600 hover:text-gray-900 rounded-md"
670
- },
671
- bordered: {
672
- active: "bg-primary-50 text-primary-700 border-r border-gray-200 last:border-r-0",
673
- inactive: "text-gray-600 hover:bg-gray-50 border-r border-gray-200 last:border-r-0"
674
- }
675
- };
676
- return /* @__PURE__ */ c("button", {
677
- role: "tab",
678
- "aria-selected": s,
679
- "aria-controls": `tabpanel-${e}`,
680
- id: `tab-${e}`,
681
- onClick: () => a(e),
682
- className: [
683
- "inline-flex items-center px-4 py-2 text-sm font-medium transition-colors outline-none focus-visible:ring-2 focus-visible:ring-primary-500 whitespace-nowrap",
684
- s ? l[o].active : l[o].inactive,
685
- n
686
- ].filter(Boolean).join(" "),
687
- ...r,
688
- children: t
689
- });
690
- }
691
- function V({ id: e, children: t, className: n = "", ...r }) {
692
- let { activeTab: i } = L();
693
- return i === e ? /* @__PURE__ */ c("div", {
694
- role: "tabpanel",
695
- id: `tabpanel-${e}`,
696
- "aria-labelledby": `tab-${e}`,
697
- className: ["pt-4", n].filter(Boolean).join(" "),
698
- ...r,
699
- children: t
700
- }) : null;
701
- }
702
- //#endregion
703
523
  //#region src/components/common/Pagination/Pagination.tsx
704
- function H(e, t) {
705
- return Array.from({ length: t - e + 1 }, (t, n) => e + n);
706
- }
707
- function U(e, t, n) {
708
- if (t <= n * 2 + 5) return H(1, t);
524
+ var I = (e, t) => Array.from({ length: t - e + 1 }, (t, n) => e + n), ie = (e, t, n) => {
525
+ if (t <= n * 2 + 5) return I(1, t);
709
526
  let r = Math.max(e - n, 1), i = Math.min(e + n, t), a = r > 2, o = i < t - 1;
710
527
  return !a && o ? [
711
- ...H(1, 3 + n * 2),
528
+ ...I(1, 3 + n * 2),
712
529
  "…",
713
530
  t
714
531
  ] : a && !o ? [
715
532
  1,
716
533
  "…",
717
- ...H(t - (2 + n * 2), t)
534
+ ...I(t - (2 + n * 2), t)
718
535
  ] : [
719
536
  1,
720
537
  "…",
721
- ...H(r, i),
538
+ ...I(r, i),
722
539
  "…",
723
540
  t
724
541
  ];
725
- }
726
- function W({ active: e, disabled: t, children: n, ...r }) {
727
- return /* @__PURE__ */ c("button", {
728
- disabled: t,
729
- className: [
730
- "inline-flex items-center justify-center w-9 h-9 rounded-md text-sm font-medium transition-colors",
731
- "focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary-500",
732
- "disabled:pointer-events-none disabled:opacity-40",
733
- e ? "bg-primary-600 text-white" : "bg-white border border-gray-300 text-gray-700 hover:bg-gray-50"
734
- ].join(" "),
735
- ...r,
736
- children: n
737
- });
738
- }
739
- function G({ page: e, totalPages: t, onPageChange: n, siblingsCount: r = 1 }) {
740
- let i = U(e, t, r);
741
- return /* @__PURE__ */ l("nav", {
542
+ }, L = ({ active: e, disabled: t, children: n, ...r }) => /* @__PURE__ */ o("button", {
543
+ disabled: t,
544
+ className: (0, _.default)("pagination-button", `pagination-button-${e ? "active" : "inactive"}`),
545
+ ...r,
546
+ children: n
547
+ }), R = ({ page: e, totalPages: t, onPageChange: n, siblingsCount: r = 1 }) => {
548
+ let i = ie(e, t, r);
549
+ return /* @__PURE__ */ s("nav", {
742
550
  "aria-label": "Pagination",
743
- className: "flex items-center gap-1",
551
+ className: "pagination",
744
552
  children: [
745
- /* @__PURE__ */ c(W, {
553
+ /* @__PURE__ */ o(L, {
746
554
  disabled: e <= 1,
747
555
  onClick: () => n(e - 1),
748
556
  "aria-label": "Previous page",
749
- children: /* @__PURE__ */ c("svg", {
557
+ children: /* @__PURE__ */ o("svg", {
750
558
  xmlns: "http://www.w3.org/2000/svg",
751
559
  fill: "none",
752
560
  viewBox: "0 0 24 24",
753
561
  strokeWidth: 2,
754
562
  stroke: "currentColor",
755
563
  className: "w-4 h-4",
756
- children: /* @__PURE__ */ c("path", {
564
+ children: /* @__PURE__ */ o("path", {
757
565
  strokeLinecap: "round",
758
566
  strokeLinejoin: "round",
759
567
  d: "M15.75 19.5L8.25 12l7.5-7.5"
760
568
  })
761
569
  })
762
570
  }),
763
- i.map((t, r) => t === "…" ? /* @__PURE__ */ c("span", {
764
- className: "w-9 h-9 flex items-center justify-center text-gray-400 text-sm",
571
+ i.map((t, r) => t === "…" ? /* @__PURE__ */ o("span", {
572
+ className: "pagination-dots",
765
573
  children: "…"
766
- }, `dots-${r}`) : /* @__PURE__ */ c(W, {
574
+ }, `dots-${r}`) : /* @__PURE__ */ o(L, {
767
575
  active: t === e,
768
576
  onClick: () => n(t),
769
577
  "aria-label": `Page ${t}`,
770
578
  "aria-current": t === e ? "page" : void 0,
771
579
  children: t
772
580
  }, t)),
773
- /* @__PURE__ */ c(W, {
581
+ /* @__PURE__ */ o(L, {
774
582
  disabled: e >= t,
775
583
  onClick: () => n(e + 1),
776
584
  "aria-label": "Next page",
777
- children: /* @__PURE__ */ c("svg", {
585
+ children: /* @__PURE__ */ o("svg", {
778
586
  xmlns: "http://www.w3.org/2000/svg",
779
587
  fill: "none",
780
588
  viewBox: "0 0 24 24",
781
589
  strokeWidth: 2,
782
590
  stroke: "currentColor",
783
591
  className: "w-4 h-4",
784
- children: /* @__PURE__ */ c("path", {
592
+ children: /* @__PURE__ */ o("path", {
785
593
  strokeLinecap: "round",
786
594
  strokeLinejoin: "round",
787
595
  d: "M8.25 4.5l7.5 7.5-7.5 7.5"
@@ -790,12 +598,12 @@ function G({ page: e, totalPages: t, onPageChange: n, siblingsCount: r = 1 }) {
790
598
  })
791
599
  ]
792
600
  });
793
- }
601
+ };
794
602
  //#endregion
795
603
  //#region src/components/Header/Header.tsx
796
- function K({ trigger: e, items: t, onSelect: n, getKey: r, renderItem: i }) {
797
- let [s, u] = o(!1), d = a(null), f = () => u(!1);
798
- return /* @__PURE__ */ l("div", {
604
+ function z({ trigger: e, items: t, onSelect: n, getKey: a, renderItem: c }) {
605
+ let [l, u] = i(!1), d = r(null), f = () => u(!1);
606
+ return /* @__PURE__ */ s("div", {
799
607
  ref: d,
800
608
  className: "relative",
801
609
  onBlur: (e) => {
@@ -804,84 +612,84 @@ function K({ trigger: e, items: t, onSelect: n, getKey: r, renderItem: i }) {
804
612
  onKeyDown: (e) => {
805
613
  e.key === "Escape" && f();
806
614
  },
807
- children: [/* @__PURE__ */ c("div", {
615
+ children: [/* @__PURE__ */ o("div", {
808
616
  role: "button",
809
617
  tabIndex: 0,
810
618
  onClick: () => u((e) => !e),
811
619
  onKeyDown: (e) => e.key === "Enter" && u((e) => !e),
812
620
  className: "cursor-pointer",
813
621
  children: e
814
- }), s && /* @__PURE__ */ c("ul", {
622
+ }), l && /* @__PURE__ */ o("ul", {
815
623
  role: "menu",
816
624
  className: "absolute right-0 top-full mt-1 z-50 min-w-28 bg-white rounded-lg shadow-lg border border-gray-100 py-1 text-sm",
817
- children: t.map((e) => /* @__PURE__ */ c("li", {
625
+ children: t.map((e) => /* @__PURE__ */ o("li", {
818
626
  role: "none",
819
- children: /* @__PURE__ */ c("button", {
627
+ children: /* @__PURE__ */ o("button", {
820
628
  role: "menuitem",
821
629
  className: "w-full px-3 py-1.5 text-left hover:bg-gray-50 text-gray-700 whitespace-nowrap",
822
630
  onClick: () => {
823
631
  n(e), f();
824
632
  },
825
- children: i ? i(e) : e.label
633
+ children: c ? c(e) : e.label
826
634
  })
827
- }, r(e)))
635
+ }, a(e)))
828
636
  })]
829
637
  });
830
638
  }
831
- function le() {
832
- return /* @__PURE__ */ c("svg", {
639
+ function B() {
640
+ return /* @__PURE__ */ o("svg", {
833
641
  xmlns: "http://www.w3.org/2000/svg",
834
642
  fill: "none",
835
643
  viewBox: "0 0 24 24",
836
644
  strokeWidth: 1.5,
837
645
  stroke: "currentColor",
838
646
  className: "w-4 h-4",
839
- children: /* @__PURE__ */ c("path", {
647
+ children: /* @__PURE__ */ o("path", {
840
648
  strokeLinecap: "round",
841
649
  strokeLinejoin: "round",
842
650
  d: "M21 21l-5.197-5.197m0 0A7.5 7.5 0 105.196 15.803a7.5 7.5 0 0010.607 10.607z"
843
651
  })
844
652
  });
845
653
  }
846
- function ue({ logo: e, searchPlaceholder: t = "Hledat produkty…", onSearch: n, cartItemCount: r = 0, onCartClick: i, isLoggedIn: a = !1, customerName: u, onCustomerClick: d, currencies: f = [], selectedCurrency: p, onCurrencyChange: h, locales: g = [], selectedLocale: _, onLocaleChange: v, rightSlot: y }) {
847
- let [b, x] = o(""), S = f.find((e) => e.code === p), C = g.find((e) => e.code === _);
848
- return /* @__PURE__ */ c("header", {
654
+ function V({ logo: e, searchPlaceholder: t = "Hledat produkty…", onSearch: n, cartItemCount: r = 0, onCartClick: c, isLoggedIn: l = !1, customerName: u, onCustomerClick: d, currencies: f = [], selectedCurrency: p, onCurrencyChange: m, locales: h = [], selectedLocale: g, onLocaleChange: _, rightSlot: v }) {
655
+ let [y, b] = i(""), S = f.find((e) => e.code === p), C = h.find((e) => e.code === g);
656
+ return /* @__PURE__ */ o("header", {
849
657
  className: "bg-white border-b border-gray-200 sticky top-0 z-40",
850
- children: /* @__PURE__ */ l("div", {
658
+ children: /* @__PURE__ */ s("div", {
851
659
  className: "max-w-7xl mx-auto px-4 h-16 flex items-center gap-4",
852
660
  children: [
853
- /* @__PURE__ */ c("div", {
661
+ /* @__PURE__ */ o("div", {
854
662
  className: "shrink-0",
855
- children: e ?? /* @__PURE__ */ c("span", {
663
+ children: e ?? /* @__PURE__ */ o("span", {
856
664
  className: "text-xl font-bold text-primary-600 tracking-tight",
857
665
  children: "shopito"
858
666
  })
859
667
  }),
860
- /* @__PURE__ */ c("div", {
668
+ /* @__PURE__ */ o("div", {
861
669
  className: "flex-1 max-w-xl",
862
- children: /* @__PURE__ */ c(m, {
670
+ children: /* @__PURE__ */ o(x, {
863
671
  fullWidth: !0,
864
672
  placeholder: t,
865
- value: b,
866
- onChange: (e) => x(e.target.value),
673
+ value: y,
674
+ onChange: (e) => b(e.target.value),
867
675
  onKeyDown: (e) => {
868
- e.key === "Enter" && n?.(b);
676
+ e.key === "Enter" && n?.(y);
869
677
  },
870
- leftIcon: /* @__PURE__ */ c(le, {}),
871
- rightIcon: b ? /* @__PURE__ */ c("button", {
678
+ leftIcon: /* @__PURE__ */ o(B, {}),
679
+ rightIcon: y ? /* @__PURE__ */ o("button", {
872
680
  onClick: () => {
873
- x(""), n?.("");
681
+ b(""), n?.("");
874
682
  },
875
683
  className: "hover:text-gray-600 transition-colors",
876
684
  "aria-label": "Clear search",
877
- children: /* @__PURE__ */ c("svg", {
685
+ children: /* @__PURE__ */ o("svg", {
878
686
  xmlns: "http://www.w3.org/2000/svg",
879
687
  fill: "none",
880
688
  viewBox: "0 0 24 24",
881
689
  strokeWidth: 2,
882
690
  stroke: "currentColor",
883
691
  className: "w-3.5 h-3.5",
884
- children: /* @__PURE__ */ c("path", {
692
+ children: /* @__PURE__ */ o("path", {
885
693
  strokeLinecap: "round",
886
694
  strokeLinejoin: "round",
887
695
  d: "M6 18L18 6M6 6l12 12"
@@ -890,136 +698,136 @@ function ue({ logo: e, searchPlaceholder: t = "Hledat produkty…", onSearch: n,
890
698
  }) : void 0
891
699
  })
892
700
  }),
893
- /* @__PURE__ */ l("div", {
701
+ /* @__PURE__ */ s("div", {
894
702
  className: "flex items-center gap-1 shrink-0 ml-auto",
895
703
  children: [
896
- f.length > 0 && /* @__PURE__ */ c(K, {
897
- trigger: /* @__PURE__ */ l("button", {
704
+ f.length > 0 && /* @__PURE__ */ o(z, {
705
+ trigger: /* @__PURE__ */ s("button", {
898
706
  className: "flex items-center gap-1 px-2 py-1.5 rounded-md text-sm text-gray-600 hover:bg-gray-50 transition-colors font-medium",
899
707
  children: [
900
- /* @__PURE__ */ c("span", { children: S?.symbol ?? p }),
901
- /* @__PURE__ */ c("span", {
708
+ /* @__PURE__ */ o("span", { children: S?.symbol ?? p }),
709
+ /* @__PURE__ */ o("span", {
902
710
  className: "text-xs text-gray-400",
903
711
  children: S?.code ?? p
904
712
  }),
905
- /* @__PURE__ */ c(q, { className: "w-3 h-3 text-gray-400" })
713
+ /* @__PURE__ */ o(H, { className: "w-3 h-3 text-gray-400" })
906
714
  ]
907
715
  }),
908
716
  items: f,
909
717
  getKey: (e) => e.code,
910
- onSelect: (e) => h?.(e.code),
911
- renderItem: (e) => /* @__PURE__ */ l("span", {
718
+ onSelect: (e) => m?.(e.code),
719
+ renderItem: (e) => /* @__PURE__ */ s("span", {
912
720
  className: "flex items-center gap-2",
913
- children: [/* @__PURE__ */ c("span", {
721
+ children: [/* @__PURE__ */ o("span", {
914
722
  className: "w-6 text-center font-medium text-gray-500",
915
723
  children: e.symbol
916
- }), /* @__PURE__ */ c("span", { children: e.label })]
724
+ }), /* @__PURE__ */ o("span", { children: e.label })]
917
725
  })
918
726
  }),
919
- g.length > 0 && /* @__PURE__ */ c(K, {
920
- trigger: /* @__PURE__ */ l("button", {
727
+ h.length > 0 && /* @__PURE__ */ o(z, {
728
+ trigger: /* @__PURE__ */ s("button", {
921
729
  className: "flex items-center gap-1 px-2 py-1.5 rounded-md text-sm text-gray-600 hover:bg-gray-50 transition-colors",
922
730
  children: [
923
- C?.flag && /* @__PURE__ */ c("span", {
731
+ C?.flag && /* @__PURE__ */ o("span", {
924
732
  className: "text-base leading-none",
925
733
  children: C.flag
926
734
  }),
927
- /* @__PURE__ */ c("span", {
735
+ /* @__PURE__ */ o("span", {
928
736
  className: "font-medium uppercase",
929
- children: C?.code ?? _
737
+ children: C?.code ?? g
930
738
  }),
931
- /* @__PURE__ */ c(q, { className: "w-3 h-3 text-gray-400" })
739
+ /* @__PURE__ */ o(H, { className: "w-3 h-3 text-gray-400" })
932
740
  ]
933
741
  }),
934
- items: g,
742
+ items: h,
935
743
  getKey: (e) => e.code,
936
- onSelect: (e) => v?.(e.code),
937
- renderItem: (e) => /* @__PURE__ */ l("span", {
744
+ onSelect: (e) => _?.(e.code),
745
+ renderItem: (e) => /* @__PURE__ */ s("span", {
938
746
  className: "flex items-center gap-2",
939
- children: [e.flag && /* @__PURE__ */ c("span", {
747
+ children: [e.flag && /* @__PURE__ */ o("span", {
940
748
  className: "text-base",
941
749
  children: e.flag
942
- }), /* @__PURE__ */ c("span", { children: e.label })]
750
+ }), /* @__PURE__ */ o("span", { children: e.label })]
943
751
  })
944
752
  }),
945
- (f.length > 0 || g.length > 0) && /* @__PURE__ */ c("div", { className: "w-px h-5 bg-gray-200 mx-1" }),
946
- /* @__PURE__ */ c("button", {
753
+ (f.length > 0 || h.length > 0) && /* @__PURE__ */ o("div", { className: "w-px h-5 bg-gray-200 mx-1" }),
754
+ /* @__PURE__ */ o("button", {
947
755
  onClick: d,
948
756
  className: "flex items-center gap-1.5 px-2.5 py-1.5 rounded-md text-sm text-gray-600 hover:bg-gray-50 transition-colors",
949
- "aria-label": a ? "My account" : "Sign in",
950
- children: a ? /* @__PURE__ */ l(s, { children: [/* @__PURE__ */ c("div", {
757
+ "aria-label": l ? "My account" : "Sign in",
758
+ children: l ? /* @__PURE__ */ s(a, { children: [/* @__PURE__ */ o("div", {
951
759
  className: "w-6 h-6 rounded-full bg-primary-600 text-white flex items-center justify-center text-xs font-bold",
952
760
  children: (u ?? "U")[0].toUpperCase()
953
- }), u && /* @__PURE__ */ c("span", {
761
+ }), u && /* @__PURE__ */ o("span", {
954
762
  className: "hidden sm:block font-medium max-w-32 truncate",
955
763
  children: u
956
- })] }) : /* @__PURE__ */ l(s, { children: [/* @__PURE__ */ c(de, { className: "w-5 h-5" }), /* @__PURE__ */ c("span", {
764
+ })] }) : /* @__PURE__ */ s(a, { children: [/* @__PURE__ */ o(U, { className: "w-5 h-5" }), /* @__PURE__ */ o("span", {
957
765
  className: "hidden sm:block font-medium",
958
766
  children: "Přihlásit se"
959
767
  })] })
960
768
  }),
961
- /* @__PURE__ */ l("button", {
962
- onClick: i,
769
+ /* @__PURE__ */ s("button", {
770
+ onClick: c,
963
771
  className: "relative flex items-center gap-1.5 px-2.5 py-1.5 rounded-md text-sm text-gray-600 hover:bg-gray-50 transition-colors",
964
772
  "aria-label": `Cart, ${r} items`,
965
773
  children: [
966
- /* @__PURE__ */ c(fe, { className: "w-5 h-5" }),
967
- /* @__PURE__ */ c("span", {
774
+ /* @__PURE__ */ o(W, { className: "w-5 h-5" }),
775
+ /* @__PURE__ */ o("span", {
968
776
  className: "hidden sm:block font-medium",
969
777
  children: "Košík"
970
778
  }),
971
- r > 0 && /* @__PURE__ */ c("span", {
779
+ r > 0 && /* @__PURE__ */ o("span", {
972
780
  className: "absolute -top-0.5 -right-0.5 min-w-4.5 h-4.5 flex items-center justify-center rounded-full bg-primary-600 text-white text-[10px] font-bold leading-none px-1",
973
781
  children: r > 99 ? "99+" : r
974
782
  })
975
783
  ]
976
784
  }),
977
- y
785
+ v
978
786
  ]
979
787
  })
980
788
  ]
981
789
  })
982
790
  });
983
791
  }
984
- function q({ className: e }) {
985
- return /* @__PURE__ */ c("svg", {
792
+ function H({ className: e }) {
793
+ return /* @__PURE__ */ o("svg", {
986
794
  xmlns: "http://www.w3.org/2000/svg",
987
795
  fill: "none",
988
796
  viewBox: "0 0 24 24",
989
797
  strokeWidth: 2,
990
798
  stroke: "currentColor",
991
799
  className: e,
992
- children: /* @__PURE__ */ c("path", {
800
+ children: /* @__PURE__ */ o("path", {
993
801
  strokeLinecap: "round",
994
802
  strokeLinejoin: "round",
995
803
  d: "M19.5 8.25l-7.5 7.5-7.5-7.5"
996
804
  })
997
805
  });
998
806
  }
999
- function de({ className: e }) {
1000
- return /* @__PURE__ */ c("svg", {
807
+ function U({ className: e }) {
808
+ return /* @__PURE__ */ o("svg", {
1001
809
  xmlns: "http://www.w3.org/2000/svg",
1002
810
  fill: "none",
1003
811
  viewBox: "0 0 24 24",
1004
812
  strokeWidth: 1.5,
1005
813
  stroke: "currentColor",
1006
814
  className: e,
1007
- children: /* @__PURE__ */ c("path", {
815
+ children: /* @__PURE__ */ o("path", {
1008
816
  strokeLinecap: "round",
1009
817
  strokeLinejoin: "round",
1010
818
  d: "M15.75 6a3.75 3.75 0 11-7.5 0 3.75 3.75 0 017.5 0zM4.501 20.118a7.5 7.5 0 0114.998 0A17.933 17.933 0 0112 21.75c-2.676 0-5.216-.584-7.499-1.632z"
1011
819
  })
1012
820
  });
1013
821
  }
1014
- function fe({ className: e }) {
1015
- return /* @__PURE__ */ c("svg", {
822
+ function W({ className: e }) {
823
+ return /* @__PURE__ */ o("svg", {
1016
824
  xmlns: "http://www.w3.org/2000/svg",
1017
825
  fill: "none",
1018
826
  viewBox: "0 0 24 24",
1019
827
  strokeWidth: 1.5,
1020
828
  stroke: "currentColor",
1021
829
  className: e,
1022
- children: /* @__PURE__ */ c("path", {
830
+ children: /* @__PURE__ */ o("path", {
1023
831
  strokeLinecap: "round",
1024
832
  strokeLinejoin: "round",
1025
833
  d: "M2.25 3h1.386c.51 0 .955.343 1.087.835l.383 1.437M7.5 14.25a3 3 0 00-3 3h15.75m-12.75-3h11.218c1.121-2.3 2.1-4.684 2.924-7.138a60.114 60.114 0 00-16.536-1.84M7.5 14.25L5.106 5.272M6 20.25a.75.75 0 11-1.5 0 .75.75 0 011.5 0zm12.75 0a.75.75 0 11-1.5 0 .75.75 0 011.5 0z"
@@ -1028,83 +836,83 @@ function fe({ className: e }) {
1028
836
  }
1029
837
  //#endregion
1030
838
  //#region src/components/CategoryTree/CategoryTree.tsx
1031
- function J({ node: e, activeId: t, onSelect: n, showCounts: r, depth: i, defaultExpandAll: a }) {
1032
- let s = e.children && e.children.length > 0, [u, d] = o(a || Y(e, t)), f = e.id === t;
1033
- return /* @__PURE__ */ l("li", { children: [/* @__PURE__ */ l("div", {
839
+ function G({ node: e, activeId: t, onSelect: n, showCounts: r, depth: a, defaultExpandAll: c }) {
840
+ let l = e.children && e.children.length > 0, [u, d] = i(c || K(e, t)), f = e.id === t;
841
+ return /* @__PURE__ */ s("li", { children: [/* @__PURE__ */ s("div", {
1034
842
  className: [
1035
843
  "group flex items-center gap-1.5 rounded-lg px-2 py-1.5 cursor-pointer select-none",
1036
844
  "transition-colors text-sm",
1037
845
  f ? "bg-primary-50 text-primary-700 font-medium" : "text-gray-700 hover:bg-gray-50 hover:text-gray-900",
1038
- i > 0 ? `ml-${Math.min(i * 4, 8)}` : ""
846
+ a > 0 ? `ml-${Math.min(a * 4, 8)}` : ""
1039
847
  ].filter(Boolean).join(" "),
1040
- style: i > 0 ? { marginLeft: i * 16 } : void 0,
848
+ style: a > 0 ? { marginLeft: a * 16 } : void 0,
1041
849
  onClick: () => {
1042
- n(e), s && d((e) => !e);
850
+ n(e), l && d((e) => !e);
1043
851
  },
1044
852
  role: "button",
1045
853
  tabIndex: 0,
1046
854
  onKeyDown: (t) => {
1047
- (t.key === "Enter" || t.key === " ") && (t.preventDefault(), n(e), s && d((e) => !e));
855
+ (t.key === "Enter" || t.key === " ") && (t.preventDefault(), n(e), l && d((e) => !e));
1048
856
  },
1049
- "aria-expanded": s ? u : void 0,
857
+ "aria-expanded": l ? u : void 0,
1050
858
  children: [
1051
- s ? /* @__PURE__ */ c("span", {
859
+ l ? /* @__PURE__ */ o("span", {
1052
860
  className: `shrink-0 text-gray-400 transition-transform duration-150 ${u ? "rotate-90" : ""}`,
1053
- children: /* @__PURE__ */ c("svg", {
861
+ children: /* @__PURE__ */ o("svg", {
1054
862
  xmlns: "http://www.w3.org/2000/svg",
1055
863
  fill: "none",
1056
864
  viewBox: "0 0 24 24",
1057
865
  strokeWidth: 2,
1058
866
  stroke: "currentColor",
1059
867
  className: "w-3.5 h-3.5",
1060
- children: /* @__PURE__ */ c("path", {
868
+ children: /* @__PURE__ */ o("path", {
1061
869
  strokeLinecap: "round",
1062
870
  strokeLinejoin: "round",
1063
871
  d: "M8.25 4.5l7.5 7.5-7.5 7.5"
1064
872
  })
1065
873
  })
1066
- }) : /* @__PURE__ */ c("span", { className: "w-3.5 shrink-0" }),
1067
- e.icon && /* @__PURE__ */ c("span", {
874
+ }) : /* @__PURE__ */ o("span", { className: "w-3.5 shrink-0" }),
875
+ e.icon && /* @__PURE__ */ o("span", {
1068
876
  className: "text-base leading-none",
1069
877
  children: e.icon
1070
878
  }),
1071
- /* @__PURE__ */ c("span", {
879
+ /* @__PURE__ */ o("span", {
1072
880
  className: "flex-1 truncate",
1073
881
  children: e.label
1074
882
  }),
1075
- r && e.count !== void 0 && /* @__PURE__ */ c("span", {
883
+ r && e.count !== void 0 && /* @__PURE__ */ o("span", {
1076
884
  className: `text-xs rounded-full px-1.5 py-0.5 font-medium ${f ? "bg-primary-100 text-primary-600" : "bg-gray-100 text-gray-500"}`,
1077
885
  children: e.count
1078
886
  })
1079
887
  ]
1080
- }), s && u && /* @__PURE__ */ c("ul", {
888
+ }), l && u && /* @__PURE__ */ o("ul", {
1081
889
  role: "group",
1082
- children: e.children.map((e) => /* @__PURE__ */ c(J, {
890
+ children: e.children.map((e) => /* @__PURE__ */ o(G, {
1083
891
  node: e,
1084
892
  activeId: t,
1085
893
  onSelect: n,
1086
894
  showCounts: r,
1087
- depth: i + 1,
1088
- defaultExpandAll: a
895
+ depth: a + 1,
896
+ defaultExpandAll: c
1089
897
  }, e.id))
1090
898
  })] });
1091
899
  }
1092
- function Y(e, t) {
1093
- return !t || !e.children ? !1 : e.children.some((e) => e.id === t || Y(e, t));
900
+ function K(e, t) {
901
+ return !t || !e.children ? !1 : e.children.some((e) => e.id === t || K(e, t));
1094
902
  }
1095
- function pe({ categories: e, activeId: t, onSelect: n, showCounts: r = !0, defaultExpandAll: i = !1, className: a = "", ...o }) {
1096
- let s = (e) => n?.(e);
1097
- return /* @__PURE__ */ c("nav", {
903
+ function q({ categories: e, activeId: t, onSelect: n, showCounts: r = !0, defaultExpandAll: i = !1, className: a = "", ...s }) {
904
+ let c = (e) => n?.(e);
905
+ return /* @__PURE__ */ o("nav", {
1098
906
  "aria-label": "Category navigation",
1099
907
  className: ["w-full", a].filter(Boolean).join(" "),
1100
- ...o,
1101
- children: /* @__PURE__ */ c("ul", {
908
+ ...s,
909
+ children: /* @__PURE__ */ o("ul", {
1102
910
  role: "tree",
1103
911
  className: "space-y-0.5",
1104
- children: e.map((e) => /* @__PURE__ */ c(J, {
912
+ children: e.map((e) => /* @__PURE__ */ o(G, {
1105
913
  node: e,
1106
914
  activeId: t,
1107
- onSelect: s,
915
+ onSelect: c,
1108
916
  showCounts: r,
1109
917
  depth: 0,
1110
918
  defaultExpandAll: i
@@ -1114,59 +922,59 @@ function pe({ categories: e, activeId: t, onSelect: n, showCounts: r = !0, defau
1114
922
  }
1115
923
  //#endregion
1116
924
  //#region src/components/MegaMenu/MegaMenu.tsx
1117
- function me({ item: e, onNavigate: t, onClose: n }) {
1118
- return e.columns?.length ? /* @__PURE__ */ c("div", {
925
+ function J({ item: e, onNavigate: t, onClose: n }) {
926
+ return e.columns?.length ? /* @__PURE__ */ o("div", {
1119
927
  className: "absolute left-0 right-0 top-full z-50 bg-white border-b border-gray-200 shadow-lg",
1120
- children: /* @__PURE__ */ l("div", {
928
+ children: /* @__PURE__ */ s("div", {
1121
929
  className: "max-w-7xl mx-auto px-4 py-6 flex gap-8",
1122
- children: [/* @__PURE__ */ c("div", {
930
+ children: [/* @__PURE__ */ o("div", {
1123
931
  className: "flex-1 grid grid-cols-2 md:grid-cols-3 lg:grid-cols-4 gap-6",
1124
- children: e.columns.map((e, r) => /* @__PURE__ */ l("div", { children: [e.heading && /* @__PURE__ */ c("p", {
932
+ children: e.columns.map((e, r) => /* @__PURE__ */ s("div", { children: [e.heading && /* @__PURE__ */ o("p", {
1125
933
  className: "text-xs font-semibold uppercase tracking-wider text-gray-400 mb-2",
1126
934
  children: e.heading
1127
- }), /* @__PURE__ */ c("ul", {
935
+ }), /* @__PURE__ */ o("ul", {
1128
936
  className: "space-y-1",
1129
- children: e.items.map((e) => /* @__PURE__ */ c("li", { children: /* @__PURE__ */ l("button", {
937
+ children: e.items.map((e) => /* @__PURE__ */ o("li", { children: /* @__PURE__ */ s("button", {
1130
938
  className: "flex items-center gap-1.5 text-sm text-gray-700 hover:text-primary-600 transition-colors py-0.5",
1131
939
  onClick: () => {
1132
940
  t(e), n();
1133
941
  },
1134
- children: [e.label, e.badge && /* @__PURE__ */ c("span", {
942
+ children: [e.label, e.badge && /* @__PURE__ */ o("span", {
1135
943
  className: "text-[10px] font-semibold px-1.5 py-0.5 rounded-full bg-danger-50 text-danger-600 leading-none",
1136
944
  children: e.badge
1137
945
  })]
1138
946
  }) }, e.id))
1139
947
  })] }, r))
1140
- }), e.featured && /* @__PURE__ */ c("div", {
948
+ }), e.featured && /* @__PURE__ */ o("div", {
1141
949
  className: "w-52 shrink-0",
1142
- children: /* @__PURE__ */ l("button", {
950
+ children: /* @__PURE__ */ s("button", {
1143
951
  className: "group block w-full rounded-xl overflow-hidden border border-gray-100 text-left hover:shadow-md transition-shadow",
1144
952
  onClick: () => {
1145
953
  t(e), n();
1146
954
  },
1147
- children: [e.featured.image ? /* @__PURE__ */ c("img", {
955
+ children: [e.featured.image ? /* @__PURE__ */ o("img", {
1148
956
  src: e.featured.image,
1149
957
  alt: e.featured.title,
1150
958
  className: "w-full h-28 object-cover"
1151
- }) : /* @__PURE__ */ c("div", {
959
+ }) : /* @__PURE__ */ o("div", {
1152
960
  className: "w-full h-28 bg-linear-to-br from-primary-100 to-primary-200 flex items-center justify-center text-4xl",
1153
961
  children: e.icon ?? "🛍️"
1154
- }), /* @__PURE__ */ l("div", {
962
+ }), /* @__PURE__ */ s("div", {
1155
963
  className: "p-3",
1156
964
  children: [
1157
- e.featured.eyebrow && /* @__PURE__ */ c("p", {
965
+ e.featured.eyebrow && /* @__PURE__ */ o("p", {
1158
966
  className: "text-[10px] font-semibold uppercase tracking-wider text-primary-500 mb-0.5",
1159
967
  children: e.featured.eyebrow
1160
968
  }),
1161
- /* @__PURE__ */ c("p", {
969
+ /* @__PURE__ */ o("p", {
1162
970
  className: "text-sm font-semibold text-gray-900 group-hover:text-primary-600 transition-colors",
1163
971
  children: e.featured.title
1164
972
  }),
1165
- e.featured.description && /* @__PURE__ */ c("p", {
973
+ e.featured.description && /* @__PURE__ */ o("p", {
1166
974
  className: "text-xs text-gray-500 mt-0.5 line-clamp-2",
1167
975
  children: e.featured.description
1168
976
  }),
1169
- e.featured.cta && /* @__PURE__ */ l("span", {
977
+ e.featured.cta && /* @__PURE__ */ s("span", {
1170
978
  className: "inline-block mt-2 text-xs font-medium text-primary-600",
1171
979
  children: [e.featured.cta, " →"]
1172
980
  })
@@ -1177,56 +985,56 @@ function me({ item: e, onNavigate: t, onClose: n }) {
1177
985
  })
1178
986
  }) : null;
1179
987
  }
1180
- function he({ items: e, activeId: t, onNavigate: n }) {
1181
- let [r, i] = o(null), s = a(null), u = (e) => {
1182
- s.current && clearTimeout(s.current), i(e);
988
+ function Y({ items: e, activeId: t, onNavigate: n }) {
989
+ let [a, c] = i(null), l = r(null), u = (e) => {
990
+ l.current && clearTimeout(l.current), c(e);
1183
991
  }, d = () => {
1184
- s.current = setTimeout(() => i(null), 120);
992
+ l.current = setTimeout(() => c(null), 120);
1185
993
  }, f = () => {
1186
- s.current && clearTimeout(s.current);
1187
- }, p = e.find((e) => e.id === r);
1188
- return /* @__PURE__ */ l("nav", {
994
+ l.current && clearTimeout(l.current);
995
+ }, p = e.find((e) => e.id === a);
996
+ return /* @__PURE__ */ s("nav", {
1189
997
  "aria-label": "Main navigation",
1190
998
  className: "relative bg-white border-b border-gray-100",
1191
999
  onMouseLeave: d,
1192
- children: [/* @__PURE__ */ c("div", {
1000
+ children: [/* @__PURE__ */ o("div", {
1193
1001
  className: "max-w-7xl mx-auto px-4",
1194
- children: /* @__PURE__ */ c("ul", {
1002
+ children: /* @__PURE__ */ o("ul", {
1195
1003
  className: "flex items-center gap-0",
1196
1004
  role: "menubar",
1197
1005
  children: e.map((e) => {
1198
- let a = !!e.columns?.length, o = r === e.id, s = t === e.id;
1199
- return /* @__PURE__ */ c("li", {
1006
+ let r = !!e.columns?.length, i = a === e.id, l = t === e.id;
1007
+ return /* @__PURE__ */ o("li", {
1200
1008
  role: "none",
1201
- children: /* @__PURE__ */ l("button", {
1009
+ children: /* @__PURE__ */ s("button", {
1202
1010
  role: "menuitem",
1203
- "aria-haspopup": a ? "true" : void 0,
1204
- "aria-expanded": a ? o : void 0,
1011
+ "aria-haspopup": r ? "true" : void 0,
1012
+ "aria-expanded": r ? i : void 0,
1205
1013
  className: [
1206
1014
  "flex items-center gap-1.5 px-4 py-3.5 text-sm font-medium transition-colors relative",
1207
1015
  "outline-none focus-visible:ring-2 focus-visible:ring-inset focus-visible:ring-primary-500",
1208
- s || o ? "text-primary-600" : "text-gray-700 hover:text-gray-900",
1209
- o ? "after:absolute after:bottom-0 after:left-0 after:right-0 after:h-0.5 after:bg-primary-600" : ""
1016
+ l || i ? "text-primary-600" : "text-gray-700 hover:text-gray-900",
1017
+ i ? "after:absolute after:bottom-0 after:left-0 after:right-0 after:h-0.5 after:bg-primary-600" : ""
1210
1018
  ].filter(Boolean).join(" "),
1211
- onMouseEnter: () => a ? u(e.id) : i(null),
1212
- onFocus: () => a && u(e.id),
1019
+ onMouseEnter: () => r ? u(e.id) : c(null),
1020
+ onFocus: () => r && u(e.id),
1213
1021
  onClick: () => {
1214
- a || (n?.(e), i(null));
1022
+ r || (n?.(e), c(null));
1215
1023
  },
1216
1024
  children: [
1217
- e.icon && /* @__PURE__ */ c("span", {
1025
+ e.icon && /* @__PURE__ */ o("span", {
1218
1026
  className: "text-base leading-none",
1219
1027
  children: e.icon
1220
1028
  }),
1221
1029
  e.label,
1222
- a && /* @__PURE__ */ c("svg", {
1030
+ r && /* @__PURE__ */ o("svg", {
1223
1031
  xmlns: "http://www.w3.org/2000/svg",
1224
1032
  fill: "none",
1225
1033
  viewBox: "0 0 24 24",
1226
1034
  strokeWidth: 2,
1227
1035
  stroke: "currentColor",
1228
- className: `w-3.5 h-3.5 transition-transform duration-150 ${o ? "rotate-180" : ""}`,
1229
- children: /* @__PURE__ */ c("path", {
1036
+ className: `w-3.5 h-3.5 transition-transform duration-150 ${i ? "rotate-180" : ""}`,
1037
+ children: /* @__PURE__ */ o("path", {
1230
1038
  strokeLinecap: "round",
1231
1039
  strokeLinejoin: "round",
1232
1040
  d: "M19.5 8.25l-7.5 7.5-7.5-7.5"
@@ -1237,35 +1045,35 @@ function he({ items: e, activeId: t, onNavigate: n }) {
1237
1045
  }, e.id);
1238
1046
  })
1239
1047
  })
1240
- }), p?.columns?.length && /* @__PURE__ */ c("div", {
1048
+ }), p?.columns?.length && /* @__PURE__ */ o("div", {
1241
1049
  onMouseEnter: f,
1242
1050
  onMouseLeave: d,
1243
- children: /* @__PURE__ */ c(me, {
1051
+ children: /* @__PURE__ */ o(J, {
1244
1052
  item: p,
1245
1053
  onNavigate: (e) => n?.(e),
1246
- onClose: () => i(null)
1054
+ onClose: () => c(null)
1247
1055
  })
1248
1056
  })]
1249
1057
  });
1250
1058
  }
1251
1059
  //#endregion
1252
1060
  //#region src/components/BannerCarousel/BannerCarousel.tsx
1253
- function ge({ banners: e, autoPlay: t = !0, autoPlayInterval: r = 5e3, arrows: u = !0, dots: d = !0, className: f = "", aspectRatio: p = "3 / 1" }) {
1254
- let [m, h] = o(0), [g, _] = o(!1), v = a(null), y = a(null), b = e.length, x = n((e) => {
1061
+ function X({ banners: e, autoPlay: c = !0, autoPlayInterval: l = 5e3, arrows: u = !0, dots: d = !0, className: f = "", aspectRatio: p = "3 / 1" }) {
1062
+ let [m, h] = i(0), [g, _] = i(!1), v = r(null), y = r(null), b = e.length, x = t((e) => {
1255
1063
  h((e % b + b) % b);
1256
- }, [b]), S = () => x(m - 1), C = n(() => x(m + 1), [m, x]);
1257
- i(() => {
1258
- if (!(!t || g || b <= 1)) return v.current = setInterval(C, r), () => {
1064
+ }, [b]), S = () => x(m - 1), C = t(() => x(m + 1), [m, x]);
1065
+ n(() => {
1066
+ if (!(!c || g || b <= 1)) return v.current = setInterval(C, l), () => {
1259
1067
  v.current && clearInterval(v.current);
1260
1068
  };
1261
1069
  }, [
1262
- t,
1070
+ c,
1263
1071
  g,
1264
- r,
1072
+ l,
1265
1073
  C,
1266
1074
  b
1267
1075
  ]);
1268
- let w = a(null), T = (e) => {
1076
+ let w = r(null), T = (e) => {
1269
1077
  w.current = e.touches[0].clientX;
1270
1078
  }, E = (e) => {
1271
1079
  if (w.current === null) return;
@@ -1274,7 +1082,7 @@ function ge({ banners: e, autoPlay: t = !0, autoPlayInterval: r = 5e3, arrows: u
1274
1082
  };
1275
1083
  if (b === 0) return null;
1276
1084
  let D = e[m], O = D.textColor === "light" || !D.textColor;
1277
- return /* @__PURE__ */ l("div", {
1085
+ return /* @__PURE__ */ s("div", {
1278
1086
  className: ["relative overflow-hidden rounded-xl", f].filter(Boolean).join(" "),
1279
1087
  style: { aspectRatio: p },
1280
1088
  onMouseEnter: () => _(!0),
@@ -1282,41 +1090,41 @@ function ge({ banners: e, autoPlay: t = !0, autoPlayInterval: r = 5e3, arrows: u
1282
1090
  onTouchStart: T,
1283
1091
  onTouchEnd: E,
1284
1092
  children: [
1285
- /* @__PURE__ */ c("div", {
1093
+ /* @__PURE__ */ o("div", {
1286
1094
  ref: y,
1287
1095
  className: "relative w-full h-full",
1288
- children: e.map((e, t) => /* @__PURE__ */ l("div", {
1096
+ children: e.map((e, t) => /* @__PURE__ */ s("div", {
1289
1097
  "aria-hidden": t !== m,
1290
1098
  className: ["absolute inset-0 transition-opacity duration-700", t === m ? "opacity-100 z-10" : "opacity-0 z-0"].join(" "),
1291
1099
  style: { background: e.backgroundImage ? `url(${e.backgroundImage}) center/cover no-repeat` : e.backgroundColor ?? "linear-gradient(135deg, #1d4ed8 0%, #7c3aed 100%)" },
1292
- children: [e.backgroundImage && /* @__PURE__ */ c("div", { className: "absolute inset-0 bg-gradient-to-r from-black/50 via-black/20 to-transparent" }), /* @__PURE__ */ l("div", {
1100
+ children: [e.backgroundImage && /* @__PURE__ */ o("div", { className: "absolute inset-0 bg-gradient-to-r from-black/50 via-black/20 to-transparent" }), /* @__PURE__ */ s("div", {
1293
1101
  className: "relative z-10 h-full flex items-center px-8 md:px-12 gap-8",
1294
- children: [/* @__PURE__ */ l("div", {
1102
+ children: [/* @__PURE__ */ s("div", {
1295
1103
  className: "flex-1 max-w-lg",
1296
1104
  children: [
1297
- e.eyebrow && /* @__PURE__ */ c("p", {
1105
+ e.eyebrow && /* @__PURE__ */ o("p", {
1298
1106
  className: `text-xs font-semibold uppercase tracking-widest mb-2 ${O ? "text-white/70" : "text-gray-500"}`,
1299
1107
  children: e.eyebrow
1300
1108
  }),
1301
- /* @__PURE__ */ c("h2", {
1109
+ /* @__PURE__ */ o("h2", {
1302
1110
  className: `text-2xl md:text-3xl lg:text-4xl font-bold leading-tight ${O ? "text-white" : "text-gray-900"}`,
1303
1111
  children: e.title
1304
1112
  }),
1305
- e.subtitle && /* @__PURE__ */ c("p", {
1113
+ e.subtitle && /* @__PURE__ */ o("p", {
1306
1114
  className: `mt-2 text-sm md:text-base ${O ? "text-white/80" : "text-gray-600"}`,
1307
1115
  children: e.subtitle
1308
1116
  }),
1309
- e.ctaLabel && /* @__PURE__ */ l("button", {
1117
+ e.ctaLabel && /* @__PURE__ */ s("button", {
1310
1118
  onClick: e.onCtaClick,
1311
1119
  className: ["mt-5 inline-flex items-center gap-2 px-5 py-2.5 rounded-lg text-sm font-semibold transition-all", O ? "bg-white text-gray-900 hover:bg-gray-100" : "bg-primary-600 text-white hover:bg-primary-700"].join(" "),
1312
- children: [e.ctaLabel, /* @__PURE__ */ c("svg", {
1120
+ children: [e.ctaLabel, /* @__PURE__ */ o("svg", {
1313
1121
  xmlns: "http://www.w3.org/2000/svg",
1314
1122
  fill: "none",
1315
1123
  viewBox: "0 0 24 24",
1316
1124
  strokeWidth: 2,
1317
1125
  stroke: "currentColor",
1318
1126
  className: "w-4 h-4",
1319
- children: /* @__PURE__ */ c("path", {
1127
+ children: /* @__PURE__ */ o("path", {
1320
1128
  strokeLinecap: "round",
1321
1129
  strokeLinejoin: "round",
1322
1130
  d: "M8.25 4.5l7.5 7.5-7.5 7.5"
@@ -1324,9 +1132,9 @@ function ge({ banners: e, autoPlay: t = !0, autoPlayInterval: r = 5e3, arrows: u
1324
1132
  })]
1325
1133
  })
1326
1134
  ]
1327
- }), e.sideImage && /* @__PURE__ */ c("div", {
1135
+ }), e.sideImage && /* @__PURE__ */ o("div", {
1328
1136
  className: "hidden md:block flex-1 h-full flex items-end justify-end overflow-hidden",
1329
- children: /* @__PURE__ */ c("img", {
1137
+ children: /* @__PURE__ */ o("img", {
1330
1138
  src: e.sideImage,
1331
1139
  alt: "",
1332
1140
  className: "h-full w-auto object-contain object-bottom drop-shadow-2xl"
@@ -1335,54 +1143,54 @@ function ge({ banners: e, autoPlay: t = !0, autoPlayInterval: r = 5e3, arrows: u
1335
1143
  })]
1336
1144
  }, e.id))
1337
1145
  }),
1338
- u && b > 1 && /* @__PURE__ */ l(s, { children: [/* @__PURE__ */ c("button", {
1146
+ u && b > 1 && /* @__PURE__ */ s(a, { children: [/* @__PURE__ */ o("button", {
1339
1147
  onClick: S,
1340
1148
  className: "absolute left-3 top-1/2 -translate-y-1/2 z-20 w-9 h-9 flex items-center justify-center rounded-full bg-black/30 text-white hover:bg-black/50 transition-colors backdrop-blur-sm",
1341
1149
  "aria-label": "Previous banner",
1342
- children: /* @__PURE__ */ c("svg", {
1150
+ children: /* @__PURE__ */ o("svg", {
1343
1151
  xmlns: "http://www.w3.org/2000/svg",
1344
1152
  fill: "none",
1345
1153
  viewBox: "0 0 24 24",
1346
1154
  strokeWidth: 2,
1347
1155
  stroke: "currentColor",
1348
1156
  className: "w-5 h-5",
1349
- children: /* @__PURE__ */ c("path", {
1157
+ children: /* @__PURE__ */ o("path", {
1350
1158
  strokeLinecap: "round",
1351
1159
  strokeLinejoin: "round",
1352
1160
  d: "M15.75 19.5L8.25 12l7.5-7.5"
1353
1161
  })
1354
1162
  })
1355
- }), /* @__PURE__ */ c("button", {
1163
+ }), /* @__PURE__ */ o("button", {
1356
1164
  onClick: C,
1357
1165
  className: "absolute right-3 top-1/2 -translate-y-1/2 z-20 w-9 h-9 flex items-center justify-center rounded-full bg-black/30 text-white hover:bg-black/50 transition-colors backdrop-blur-sm",
1358
1166
  "aria-label": "Next banner",
1359
- children: /* @__PURE__ */ c("svg", {
1167
+ children: /* @__PURE__ */ o("svg", {
1360
1168
  xmlns: "http://www.w3.org/2000/svg",
1361
1169
  fill: "none",
1362
1170
  viewBox: "0 0 24 24",
1363
1171
  strokeWidth: 2,
1364
1172
  stroke: "currentColor",
1365
1173
  className: "w-5 h-5",
1366
- children: /* @__PURE__ */ c("path", {
1174
+ children: /* @__PURE__ */ o("path", {
1367
1175
  strokeLinecap: "round",
1368
1176
  strokeLinejoin: "round",
1369
1177
  d: "M8.25 4.5l7.5 7.5-7.5 7.5"
1370
1178
  })
1371
1179
  })
1372
1180
  })] }),
1373
- d && b > 1 && /* @__PURE__ */ c("div", {
1181
+ d && b > 1 && /* @__PURE__ */ o("div", {
1374
1182
  className: "absolute bottom-3 left-1/2 -translate-x-1/2 z-20 flex gap-1.5",
1375
- children: e.map((e, t) => /* @__PURE__ */ c("button", {
1183
+ children: e.map((e, t) => /* @__PURE__ */ o("button", {
1376
1184
  onClick: () => x(t),
1377
1185
  "aria-label": `Go to slide ${t + 1}`,
1378
1186
  className: ["rounded-full transition-all duration-300", t === m ? "w-5 h-2 bg-white" : "w-2 h-2 bg-white/50 hover:bg-white/80"].join(" ")
1379
1187
  }, t))
1380
1188
  }),
1381
- t && b > 1 && /* @__PURE__ */ c("div", {
1189
+ c && b > 1 && /* @__PURE__ */ o("div", {
1382
1190
  className: "absolute bottom-0 left-0 right-0 h-0.5 bg-white/20 z-20",
1383
- children: /* @__PURE__ */ c("div", {
1191
+ children: /* @__PURE__ */ o("div", {
1384
1192
  className: `h-full bg-white/60 ${g ? "" : "animate-progress"}`,
1385
- style: { animation: g ? "none" : `progress ${r}ms linear` }
1193
+ style: { animation: g ? "none" : `progress ${l}ms linear` }
1386
1194
  }, `${m}-${g}`)
1387
1195
  })
1388
1196
  ]
@@ -1390,23 +1198,23 @@ function ge({ banners: e, autoPlay: t = !0, autoPlayInterval: r = 5e3, arrows: u
1390
1198
  }
1391
1199
  //#endregion
1392
1200
  //#region src/components/ProductCard/ProductCard.tsx
1393
- function _e({ filled: e }) {
1394
- return /* @__PURE__ */ c("svg", {
1201
+ function ae({ filled: e }) {
1202
+ return /* @__PURE__ */ o("svg", {
1395
1203
  xmlns: "http://www.w3.org/2000/svg",
1396
1204
  viewBox: "0 0 24 24",
1397
1205
  className: `w-3.5 h-3.5 ${e ? "fill-amber-400 stroke-amber-400" : "fill-gray-200 stroke-gray-300"}`,
1398
1206
  strokeWidth: 1,
1399
- children: /* @__PURE__ */ c("path", {
1207
+ children: /* @__PURE__ */ o("path", {
1400
1208
  strokeLinecap: "round",
1401
1209
  strokeLinejoin: "round",
1402
1210
  d: "M11.48 3.499a.562.562 0 011.04 0l2.125 5.111a.563.563 0 00.475.345l5.518.442c.499.04.701.663.321.988l-4.204 3.602a.563.563 0 00-.182.557l1.285 5.385a.562.562 0 01-.84.61l-4.725-2.885a.563.563 0 00-.586 0L6.982 20.54a.562.562 0 01-.84-.61l1.285-5.386a.562.562 0 00-.182-.557l-4.204-3.602a.563.563 0 01.321-.988l5.518-.442a.563.563 0 00.475-.345L11.48 3.5z"
1403
1211
  })
1404
1212
  });
1405
1213
  }
1406
- function ve({ value: e, count: t }) {
1407
- return /* @__PURE__ */ l("div", {
1214
+ function oe({ value: e, count: t }) {
1215
+ return /* @__PURE__ */ s("div", {
1408
1216
  className: "flex items-center gap-1",
1409
- children: [/* @__PURE__ */ c("div", {
1217
+ children: [/* @__PURE__ */ o("div", {
1410
1218
  className: "flex gap-0.5",
1411
1219
  children: [
1412
1220
  1,
@@ -1414,8 +1222,8 @@ function ve({ value: e, count: t }) {
1414
1222
  3,
1415
1223
  4,
1416
1224
  5
1417
- ].map((t) => /* @__PURE__ */ c(_e, { filled: t <= Math.round(e) }, t))
1418
- }), t !== void 0 && /* @__PURE__ */ l("span", {
1225
+ ].map((t) => /* @__PURE__ */ o(ae, { filled: t <= Math.round(e) }, t))
1226
+ }), t !== void 0 && /* @__PURE__ */ s("span", {
1419
1227
  className: "text-xs text-gray-400",
1420
1228
  children: [
1421
1229
  "(",
@@ -1425,54 +1233,54 @@ function ve({ value: e, count: t }) {
1425
1233
  })]
1426
1234
  });
1427
1235
  }
1428
- function ye(e) {
1236
+ function se(e) {
1429
1237
  let t = e.toLowerCase();
1430
1238
  return t === "sale" || t === "akce" ? "danger" : t === "new" || t === "nové" ? "primary" : t === "hot" ? "warning" : "default";
1431
1239
  }
1432
- function X(e, t = "Kč") {
1240
+ function Z(e, t = "Kč") {
1433
1241
  return `${e.toLocaleString("cs-CZ")} ${t}`;
1434
1242
  }
1435
- function be(e, t) {
1243
+ function ce(e, t) {
1436
1244
  return Math.round((1 - t / e) * 100);
1437
1245
  }
1438
- function Z({ product: e, onAddToCart: t, onWishlistToggle: n, isWishlisted: r = !1, onProductClick: i, size: a = "default", className: s = "" }) {
1439
- let [u, d] = o(!1), [f, m] = o(!1), h = e.originalPrice !== void 0 && e.originalPrice > e.price;
1440
- return /* @__PURE__ */ l("article", {
1246
+ function Q({ product: e, onAddToCart: t, onWishlistToggle: n, isWishlisted: r = !1, onProductClick: a, size: c = "default", className: l = "" }) {
1247
+ let [u, d] = i(!1), [f, p] = i(!1), m = e.originalPrice !== void 0 && e.originalPrice > e.price;
1248
+ return /* @__PURE__ */ s("article", {
1441
1249
  className: [
1442
1250
  "group relative flex flex-col bg-white rounded-xl border border-gray-200",
1443
1251
  "hover:shadow-md transition-shadow duration-200 overflow-hidden cursor-pointer",
1444
- s
1252
+ l
1445
1253
  ].filter(Boolean).join(" "),
1446
- onClick: () => i?.(e),
1254
+ onClick: () => a?.(e),
1447
1255
  onMouseEnter: () => d(!0),
1448
1256
  onMouseLeave: () => d(!1),
1449
- children: [/* @__PURE__ */ l("div", {
1450
- className: `relative overflow-hidden bg-gray-50 ${a === "compact" ? "aspect-square" : "aspect-4/3"}`,
1257
+ children: [/* @__PURE__ */ s("div", {
1258
+ className: `relative overflow-hidden bg-gray-50 ${c === "compact" ? "aspect-square" : "aspect-4/3"}`,
1451
1259
  children: [
1452
- e.image ? /* @__PURE__ */ c("img", {
1260
+ e.image ? /* @__PURE__ */ o("img", {
1453
1261
  src: u && e.imageHover ? e.imageHover : e.image,
1454
1262
  alt: e.name,
1455
1263
  className: "w-full h-full object-contain p-4 transition-transform duration-300 group-hover:scale-105"
1456
- }) : /* @__PURE__ */ c("div", {
1264
+ }) : /* @__PURE__ */ o("div", {
1457
1265
  className: "w-full h-full flex items-center justify-center text-5xl bg-linear-to-br from-gray-100 to-gray-200",
1458
1266
  children: "🛍️"
1459
1267
  }),
1460
- e.badge && /* @__PURE__ */ c("div", {
1268
+ e.badge && /* @__PURE__ */ o("div", {
1461
1269
  className: "absolute top-2 left-2",
1462
- children: /* @__PURE__ */ c(w, {
1463
- variant: ye(e.badge),
1270
+ children: /* @__PURE__ */ o(T, {
1271
+ variant: se(e.badge),
1464
1272
  size: "sm",
1465
- children: e.badge === "sale" && h ? `-${be(e.originalPrice, e.price)}%` : e.badge
1273
+ children: e.badge === "sale" && m ? `-${ce(e.originalPrice, e.price)}%` : e.badge
1466
1274
  })
1467
1275
  }),
1468
- e.inStock === !1 && /* @__PURE__ */ c("div", {
1276
+ e.inStock === !1 && /* @__PURE__ */ o("div", {
1469
1277
  className: "absolute inset-0 bg-white/70 flex items-center justify-center",
1470
- children: /* @__PURE__ */ c("span", {
1278
+ children: /* @__PURE__ */ o("span", {
1471
1279
  className: "text-sm font-semibold text-gray-500 bg-white/90 px-3 py-1 rounded-full border border-gray-200",
1472
1280
  children: "Vyprodáno"
1473
1281
  })
1474
1282
  }),
1475
- /* @__PURE__ */ c("button", {
1283
+ /* @__PURE__ */ o("button", {
1476
1284
  onClick: (t) => {
1477
1285
  t.stopPropagation(), n?.(e);
1478
1286
  },
@@ -1483,41 +1291,41 @@ function Z({ product: e, onAddToCart: t, onWishlistToggle: n, isWishlisted: r =
1483
1291
  "opacity-0 group-hover:opacity-100 focus:opacity-100",
1484
1292
  r ? "text-danger-500" : "text-gray-400 hover:text-danger-400"
1485
1293
  ].join(" "),
1486
- children: /* @__PURE__ */ c("svg", {
1294
+ children: /* @__PURE__ */ o("svg", {
1487
1295
  xmlns: "http://www.w3.org/2000/svg",
1488
1296
  viewBox: "0 0 24 24",
1489
1297
  strokeWidth: 1.5,
1490
1298
  stroke: "currentColor",
1491
1299
  className: `w-4 h-4 ${r ? "fill-current" : "fill-none"}`,
1492
- children: /* @__PURE__ */ c("path", {
1300
+ children: /* @__PURE__ */ o("path", {
1493
1301
  strokeLinecap: "round",
1494
1302
  strokeLinejoin: "round",
1495
1303
  d: "M21 8.25c0-2.485-2.099-4.5-4.688-4.5-1.935 0-3.597 1.126-4.312 2.733-.715-1.607-2.377-2.733-4.313-2.733C5.1 3.75 3 5.765 3 8.25c0 7.22 9 12 9 12s9-4.78 9-12z"
1496
1304
  })
1497
1305
  })
1498
1306
  }),
1499
- /* @__PURE__ */ c("div", {
1307
+ /* @__PURE__ */ o("div", {
1500
1308
  className: ["absolute bottom-0 left-0 right-0 p-2 transition-transform duration-200", u ? "translate-y-0" : "translate-y-full"].join(" "),
1501
- children: /* @__PURE__ */ c(p, {
1309
+ children: /* @__PURE__ */ o(v, {
1502
1310
  variant: "primary",
1503
1311
  size: "sm",
1504
1312
  fullWidth: !0,
1505
1313
  loading: !1,
1506
1314
  disabled: e.inStock === !1,
1507
1315
  onClick: (n) => {
1508
- n.stopPropagation(), t?.(e), m(!0), setTimeout(() => m(!1), 1500);
1316
+ n.stopPropagation(), t?.(e), p(!0), setTimeout(() => p(!1), 1500);
1509
1317
  },
1510
1318
  className: "shadow-lg",
1511
- children: f ? /* @__PURE__ */ l("span", {
1319
+ children: f ? /* @__PURE__ */ s("span", {
1512
1320
  className: "flex items-center gap-1.5",
1513
- children: [/* @__PURE__ */ c("svg", {
1321
+ children: [/* @__PURE__ */ o("svg", {
1514
1322
  xmlns: "http://www.w3.org/2000/svg",
1515
1323
  fill: "none",
1516
1324
  viewBox: "0 0 24 24",
1517
1325
  strokeWidth: 2,
1518
1326
  stroke: "currentColor",
1519
1327
  className: "w-4 h-4",
1520
- children: /* @__PURE__ */ c("path", {
1328
+ children: /* @__PURE__ */ o("path", {
1521
1329
  strokeLinecap: "round",
1522
1330
  strokeLinejoin: "round",
1523
1331
  d: "M4.5 12.75l6 6 9-13.5"
@@ -1527,36 +1335,36 @@ function Z({ product: e, onAddToCart: t, onWishlistToggle: n, isWishlisted: r =
1527
1335
  })
1528
1336
  })
1529
1337
  ]
1530
- }), /* @__PURE__ */ l("div", {
1531
- className: `flex flex-col gap-1.5 ${a === "compact" ? "p-3" : "p-4"}`,
1338
+ }), /* @__PURE__ */ s("div", {
1339
+ className: `flex flex-col gap-1.5 ${c === "compact" ? "p-3" : "p-4"}`,
1532
1340
  children: [
1533
- e.variants && e.variants.length > 0 && /* @__PURE__ */ l("div", {
1341
+ e.variants && e.variants.length > 0 && /* @__PURE__ */ s("div", {
1534
1342
  className: "flex gap-1",
1535
- children: [e.variants.slice(0, 5).map((e) => /* @__PURE__ */ c("span", {
1343
+ children: [e.variants.slice(0, 5).map((e) => /* @__PURE__ */ o("span", {
1536
1344
  title: e.label,
1537
1345
  className: "w-4 h-4 rounded-full border border-gray-300 shrink-0",
1538
1346
  style: { backgroundColor: e.color ?? "#ccc" }
1539
- }, e.id)), e.variants.length > 5 && /* @__PURE__ */ l("span", {
1347
+ }, e.id)), e.variants.length > 5 && /* @__PURE__ */ s("span", {
1540
1348
  className: "text-xs text-gray-400",
1541
1349
  children: ["+", e.variants.length - 5]
1542
1350
  })]
1543
1351
  }),
1544
- /* @__PURE__ */ c("h3", {
1545
- className: `font-medium text-gray-900 leading-snug line-clamp-2 group-hover:text-primary-600 transition-colors ${a === "compact" ? "text-xs" : "text-sm"}`,
1352
+ /* @__PURE__ */ o("h3", {
1353
+ className: `font-medium text-gray-900 leading-snug line-clamp-2 group-hover:text-primary-600 transition-colors ${c === "compact" ? "text-xs" : "text-sm"}`,
1546
1354
  children: e.name
1547
1355
  }),
1548
- e.rating !== void 0 && /* @__PURE__ */ c(ve, {
1356
+ e.rating !== void 0 && /* @__PURE__ */ o(oe, {
1549
1357
  value: e.rating,
1550
1358
  count: e.reviewCount
1551
1359
  }),
1552
- /* @__PURE__ */ l("div", {
1360
+ /* @__PURE__ */ s("div", {
1553
1361
  className: "flex items-baseline gap-2 mt-auto pt-1",
1554
- children: [/* @__PURE__ */ c("span", {
1555
- className: `font-bold text-gray-900 ${a === "compact" ? "text-base" : "text-lg"}`,
1556
- children: X(e.price, e.currency)
1557
- }), h && /* @__PURE__ */ c("span", {
1362
+ children: [/* @__PURE__ */ o("span", {
1363
+ className: `font-bold text-gray-900 ${c === "compact" ? "text-base" : "text-lg"}`,
1364
+ children: Z(e.price, e.currency)
1365
+ }), m && /* @__PURE__ */ o("span", {
1558
1366
  className: "text-sm text-gray-400 line-through",
1559
- children: X(e.originalPrice, e.currency)
1367
+ children: Z(e.originalPrice, e.currency)
1560
1368
  })]
1561
1369
  })
1562
1370
  ]
@@ -1565,12 +1373,12 @@ function Z({ product: e, onAddToCart: t, onWishlistToggle: n, isWishlisted: r =
1565
1373
  }
1566
1374
  //#endregion
1567
1375
  //#region src/components/ProductGrid/ProductGrid.tsx
1568
- var Q = {
1376
+ var $ = {
1569
1377
  2: "grid-cols-2",
1570
1378
  3: "grid-cols-2 md:grid-cols-3",
1571
1379
  4: "grid-cols-2 sm:grid-cols-3 lg:grid-cols-4",
1572
1380
  5: "grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5"
1573
- }, xe = [
1381
+ }, le = [
1574
1382
  {
1575
1383
  value: "newest",
1576
1384
  label: "Nejnovější"
@@ -1592,50 +1400,50 @@ var Q = {
1592
1400
  label: "Bestsellery"
1593
1401
  }
1594
1402
  ];
1595
- function Se() {
1596
- return /* @__PURE__ */ l("div", {
1403
+ function ue() {
1404
+ return /* @__PURE__ */ s("div", {
1597
1405
  className: "rounded-xl border border-gray-100 overflow-hidden animate-pulse",
1598
- children: [/* @__PURE__ */ c("div", { className: "aspect-4/3 bg-gray-200" }), /* @__PURE__ */ l("div", {
1406
+ children: [/* @__PURE__ */ o("div", { className: "aspect-4/3 bg-gray-200" }), /* @__PURE__ */ s("div", {
1599
1407
  className: "p-4 space-y-2",
1600
1408
  children: [
1601
- /* @__PURE__ */ c("div", { className: "h-3 bg-gray-200 rounded w-3/4" }),
1602
- /* @__PURE__ */ c("div", { className: "h-3 bg-gray-200 rounded w-1/2" }),
1603
- /* @__PURE__ */ c("div", { className: "h-5 bg-gray-200 rounded w-1/3 mt-2" })
1409
+ /* @__PURE__ */ o("div", { className: "h-3 bg-gray-200 rounded w-3/4" }),
1410
+ /* @__PURE__ */ o("div", { className: "h-3 bg-gray-200 rounded w-1/2" }),
1411
+ /* @__PURE__ */ o("div", { className: "h-5 bg-gray-200 rounded w-1/3 mt-2" })
1604
1412
  ]
1605
1413
  })]
1606
1414
  });
1607
1415
  }
1608
- function Ce({ products: e, totalCount: t, page: n = 1, onPageChange: r, perPage: i = 20, columns: a = 4, sortOptions: o = xe, selectedSort: s, onSortChange: u, activeFilters: d = [], onRemoveFilter: f, onClearFilters: p, loading: m = !1, emptyState: g, onAddToCart: _, onWishlistToggle: v, onProductClick: y, wishlisted: b = [], className: x = "" }) {
1609
- let S = t ? Math.ceil(t / i) : void 0, C = a >= 5 ? "compact" : "default";
1610
- return /* @__PURE__ */ l("div", {
1611
- className: ["w-full", x].filter(Boolean).join(" "),
1416
+ function de({ products: e, totalCount: t, page: n = 1, onPageChange: r, perPage: i = 20, columns: a = 4, sortOptions: c = le, selectedSort: l, onSortChange: u, activeFilters: d = [], onRemoveFilter: f, onClearFilters: p, loading: m = !1, emptyState: h, onAddToCart: g, onWishlistToggle: _, onProductClick: v, wishlisted: y = [], className: b = "" }) {
1417
+ let x = t ? Math.ceil(t / i) : void 0, C = a >= 5 ? "compact" : "default";
1418
+ return /* @__PURE__ */ s("div", {
1419
+ className: ["w-full", b].filter(Boolean).join(" "),
1612
1420
  children: [
1613
- /* @__PURE__ */ l("div", {
1421
+ /* @__PURE__ */ s("div", {
1614
1422
  className: "flex flex-wrap items-center justify-between gap-3 mb-4",
1615
- children: [/* @__PURE__ */ l("div", {
1423
+ children: [/* @__PURE__ */ s("div", {
1616
1424
  className: "flex flex-wrap items-center gap-2",
1617
1425
  children: [
1618
- t !== void 0 && /* @__PURE__ */ l("span", {
1426
+ t !== void 0 && /* @__PURE__ */ s("span", {
1619
1427
  className: "text-sm text-gray-500",
1620
- children: [/* @__PURE__ */ c("span", {
1428
+ children: [/* @__PURE__ */ o("span", {
1621
1429
  className: "font-semibold text-gray-900",
1622
1430
  children: t
1623
1431
  }), " produktů"]
1624
1432
  }),
1625
- d.map((e) => /* @__PURE__ */ l("span", {
1433
+ d.map((e) => /* @__PURE__ */ s("span", {
1626
1434
  className: "inline-flex items-center gap-1 text-xs bg-primary-50 text-primary-700 border border-primary-200 rounded-full px-2.5 py-1",
1627
- children: [e, /* @__PURE__ */ c("button", {
1435
+ children: [e, /* @__PURE__ */ o("button", {
1628
1436
  onClick: () => f?.(e),
1629
1437
  "aria-label": `Remove filter ${e}`,
1630
1438
  className: "hover:text-primary-900 transition-colors",
1631
- children: /* @__PURE__ */ c("svg", {
1439
+ children: /* @__PURE__ */ o("svg", {
1632
1440
  xmlns: "http://www.w3.org/2000/svg",
1633
1441
  fill: "none",
1634
1442
  viewBox: "0 0 24 24",
1635
1443
  strokeWidth: 2,
1636
1444
  stroke: "currentColor",
1637
1445
  className: "w-3 h-3",
1638
- children: /* @__PURE__ */ c("path", {
1446
+ children: /* @__PURE__ */ o("path", {
1639
1447
  strokeLinecap: "round",
1640
1448
  strokeLinejoin: "round",
1641
1449
  d: "M6 18L18 6M6 6l12 12"
@@ -1643,63 +1451,63 @@ function Ce({ products: e, totalCount: t, page: n = 1, onPageChange: r, perPage:
1643
1451
  })
1644
1452
  })]
1645
1453
  }, e)),
1646
- d.length > 1 && /* @__PURE__ */ c("button", {
1454
+ d.length > 1 && /* @__PURE__ */ o("button", {
1647
1455
  onClick: p,
1648
1456
  className: "text-xs text-gray-400 hover:text-gray-600 underline underline-offset-2 transition-colors",
1649
1457
  children: "Zrušit vše"
1650
1458
  })
1651
1459
  ]
1652
- }), /* @__PURE__ */ c(h, {
1653
- options: o,
1654
- value: s ?? "",
1460
+ }), /* @__PURE__ */ o(S, {
1461
+ options: c,
1462
+ value: l ?? "",
1655
1463
  onChange: (e) => u?.(e.target.value),
1656
1464
  "aria-label": "Sort products",
1657
1465
  className: "text-sm"
1658
1466
  })]
1659
1467
  }),
1660
- m ? /* @__PURE__ */ c("div", {
1661
- className: `grid gap-4 ${Q[a]}`,
1662
- children: Array.from({ length: i > 12 ? 12 : i }).map((e, t) => /* @__PURE__ */ c(Se, {}, t))
1663
- }) : e.length === 0 ? /* @__PURE__ */ c("div", {
1468
+ m ? /* @__PURE__ */ o("div", {
1469
+ className: `grid gap-4 ${$[a]}`,
1470
+ children: Array.from({ length: i > 12 ? 12 : i }).map((e, t) => /* @__PURE__ */ o(ue, {}, t))
1471
+ }) : e.length === 0 ? /* @__PURE__ */ o("div", {
1664
1472
  className: "py-16 text-center",
1665
- children: g ?? /* @__PURE__ */ l("div", {
1473
+ children: h ?? /* @__PURE__ */ s("div", {
1666
1474
  className: "space-y-2",
1667
1475
  children: [
1668
- /* @__PURE__ */ c("p", {
1476
+ /* @__PURE__ */ o("p", {
1669
1477
  className: "text-4xl",
1670
1478
  children: "🔍"
1671
1479
  }),
1672
- /* @__PURE__ */ c("p", {
1480
+ /* @__PURE__ */ o("p", {
1673
1481
  className: "font-semibold text-gray-900",
1674
1482
  children: "Žádné produkty nenalezeny"
1675
1483
  }),
1676
- /* @__PURE__ */ c("p", {
1484
+ /* @__PURE__ */ o("p", {
1677
1485
  className: "text-sm text-gray-500",
1678
1486
  children: "Zkuste upravit filtry nebo hledat jinak."
1679
1487
  }),
1680
- d.length > 0 && /* @__PURE__ */ c("button", {
1488
+ d.length > 0 && /* @__PURE__ */ o("button", {
1681
1489
  onClick: p,
1682
1490
  className: "mt-3 text-sm text-primary-600 hover:underline",
1683
1491
  children: "Zrušit všechny filtry"
1684
1492
  })
1685
1493
  ]
1686
1494
  })
1687
- }) : /* @__PURE__ */ c("div", {
1688
- className: `grid gap-4 ${Q[a]}`,
1689
- children: e.map((e) => /* @__PURE__ */ c(Z, {
1495
+ }) : /* @__PURE__ */ o("div", {
1496
+ className: `grid gap-4 ${$[a]}`,
1497
+ children: e.map((e) => /* @__PURE__ */ o(Q, {
1690
1498
  product: e,
1691
1499
  size: C,
1692
- onAddToCart: _,
1693
- onWishlistToggle: v,
1694
- onProductClick: y,
1695
- isWishlisted: b.includes(e.id)
1500
+ onAddToCart: g,
1501
+ onWishlistToggle: _,
1502
+ onProductClick: v,
1503
+ isWishlisted: y.includes(e.id)
1696
1504
  }, e.id))
1697
1505
  }),
1698
- S && S > 1 && r && /* @__PURE__ */ c("div", {
1506
+ x && x > 1 && r && /* @__PURE__ */ o("div", {
1699
1507
  className: "flex justify-center mt-8",
1700
- children: /* @__PURE__ */ c(G, {
1508
+ children: /* @__PURE__ */ o(R, {
1701
1509
  page: n,
1702
- totalPages: S,
1510
+ totalPages: x,
1703
1511
  onPageChange: r
1704
1512
  })
1705
1513
  })
@@ -1708,14 +1516,14 @@ function Ce({ products: e, totalCount: t, page: n = 1, onPageChange: r, perPage:
1708
1516
  }
1709
1517
  //#endregion
1710
1518
  //#region src/components/CallToAction/CallToAction.tsx
1711
- var we = {
1519
+ var fe = {
1712
1520
  default: "bg-gray-50 border border-gray-200",
1713
1521
  primary: "bg-primary-600",
1714
1522
  dark: "bg-gray-900",
1715
1523
  gradient: "bg-linear-to-br from-primary-600 via-primary-700 to-violet-700",
1716
1524
  outline: "bg-white border-2 border-primary-600",
1717
1525
  image: "relative overflow-hidden"
1718
- }, Te = {
1526
+ }, pe = {
1719
1527
  default: {
1720
1528
  eyebrow: "text-primary-600",
1721
1529
  title: "text-gray-900",
@@ -1746,7 +1554,7 @@ var we = {
1746
1554
  title: "text-white",
1747
1555
  description: "text-white/80"
1748
1556
  }
1749
- }, Ee = {
1557
+ }, me = {
1750
1558
  sm: {
1751
1559
  wrapper: "px-6 py-6 rounded-xl",
1752
1560
  title: "text-xl font-bold",
@@ -1771,7 +1579,7 @@ var we = {
1771
1579
  description: "text-xl",
1772
1580
  eyebrow: "text-sm"
1773
1581
  }
1774
- }, De = {
1582
+ }, he = {
1775
1583
  left: {
1776
1584
  wrapper: "items-start text-left",
1777
1585
  actions: "justify-start"
@@ -1785,58 +1593,58 @@ var we = {
1785
1593
  actions: "justify-end"
1786
1594
  }
1787
1595
  };
1788
- function Oe({ eyebrow: e, title: t, description: n, actions: r = [], align: i = "center", layout: a = "stacked", size: o = "md", variant: s = "default", background: u, backgroundImage: d, media: f, className: m = "", style: h }) {
1789
- let g = Te[s], _ = Ee[o], v = De[i], y = a === "inline", b = {
1596
+ function ge({ eyebrow: e, title: t, description: n, actions: r = [], align: i = "center", layout: a = "stacked", size: c = "md", variant: l = "default", background: u, backgroundImage: d, media: f, className: p = "", style: m }) {
1597
+ let h = pe[l], g = me[c], _ = he[i], y = a === "inline", b = {
1790
1598
  ...u ? { background: u } : {},
1791
1599
  ...d ? {
1792
1600
  backgroundImage: `url(${d})`,
1793
1601
  backgroundSize: "cover",
1794
1602
  backgroundPosition: "center"
1795
1603
  } : {},
1796
- ...h
1604
+ ...m
1797
1605
  };
1798
- return /* @__PURE__ */ l("div", {
1606
+ return /* @__PURE__ */ s("div", {
1799
1607
  className: [
1800
1608
  "w-full",
1801
- we[s],
1802
- _.wrapper,
1803
- m
1609
+ fe[l],
1610
+ g.wrapper,
1611
+ p
1804
1612
  ].filter(Boolean).join(" "),
1805
1613
  style: Object.keys(b).length ? b : void 0,
1806
- children: [(s === "image" || d) && /* @__PURE__ */ c("div", { className: "absolute inset-0 bg-black/50" }), /* @__PURE__ */ l("div", {
1807
- className: `relative ${y ? "flex flex-wrap items-center justify-between gap-6" : `flex flex-col gap-4 ${v.wrapper}`}`,
1614
+ children: [(l === "image" || d) && /* @__PURE__ */ o("div", { className: "absolute inset-0 bg-black/50" }), /* @__PURE__ */ s("div", {
1615
+ className: `relative ${y ? "flex flex-wrap items-center justify-between gap-6" : `flex flex-col gap-4 ${_.wrapper}`}`,
1808
1616
  children: [
1809
- /* @__PURE__ */ l("div", {
1810
- className: `flex flex-col gap-2 ${y ? "flex-1 min-w-0" : v.wrapper}`,
1617
+ /* @__PURE__ */ s("div", {
1618
+ className: `flex flex-col gap-2 ${y ? "flex-1 min-w-0" : _.wrapper}`,
1811
1619
  children: [
1812
- e && /* @__PURE__ */ c("p", {
1813
- className: `font-semibold uppercase tracking-widest ${_.eyebrow} ${g.eyebrow}`,
1620
+ e && /* @__PURE__ */ o("p", {
1621
+ className: `font-semibold uppercase tracking-widest ${g.eyebrow} ${h.eyebrow}`,
1814
1622
  children: e
1815
1623
  }),
1816
- /* @__PURE__ */ c("h2", {
1817
- className: `${_.title} ${g.title}`,
1624
+ /* @__PURE__ */ o("h2", {
1625
+ className: `${g.title} ${h.title}`,
1818
1626
  children: t
1819
1627
  }),
1820
- n && /* @__PURE__ */ c("p", {
1821
- className: `max-w-2xl ${_.description} ${g.description}`,
1628
+ n && /* @__PURE__ */ o("p", {
1629
+ className: `max-w-2xl ${g.description} ${h.description}`,
1822
1630
  children: n
1823
1631
  })
1824
1632
  ]
1825
1633
  }),
1826
- f && !y && /* @__PURE__ */ c("div", {
1634
+ f && !y && /* @__PURE__ */ o("div", {
1827
1635
  className: "mt-2",
1828
1636
  children: f
1829
1637
  }),
1830
- r.length > 0 && /* @__PURE__ */ c("div", {
1831
- className: `flex flex-wrap gap-3 ${y ? "shrink-0" : v.actions}`,
1638
+ r.length > 0 && /* @__PURE__ */ o("div", {
1639
+ className: `flex flex-wrap gap-3 ${y ? "shrink-0" : _.actions}`,
1832
1640
  children: r.map((e, t) => {
1833
- let n = /* @__PURE__ */ c(p, {
1834
- variant: e.variant ?? (t === 0 ? ke(s) : "outline"),
1835
- size: e.size ?? (o === "sm" ? "sm" : o === "xl" ? "lg" : "md"),
1641
+ let n = /* @__PURE__ */ o(v, {
1642
+ variant: e.variant ?? (t === 0 ? _e(l) : "outline"),
1643
+ size: e.size ?? (c === "sm" ? "sm" : c === "xl" ? "lg" : "md"),
1836
1644
  onClick: e.onClick,
1837
1645
  children: e.label
1838
1646
  }, t);
1839
- return e.href ? /* @__PURE__ */ c("a", {
1647
+ return e.href ? /* @__PURE__ */ o("a", {
1840
1648
  href: e.href,
1841
1649
  className: "contents",
1842
1650
  children: n
@@ -1847,233 +1655,233 @@ function Oe({ eyebrow: e, title: t, description: n, actions: r = [], align: i =
1847
1655
  })]
1848
1656
  });
1849
1657
  }
1850
- function ke(e) {
1658
+ function _e(e) {
1851
1659
  return e === "default" || e === "outline" ? "primary" : "secondary";
1852
1660
  }
1853
1661
  //#endregion
1854
1662
  //#region src/components/Footer/Footer.tsx
1855
- function Ae() {
1856
- return /* @__PURE__ */ c("svg", {
1663
+ function ve() {
1664
+ return /* @__PURE__ */ o("svg", {
1857
1665
  xmlns: "http://www.w3.org/2000/svg",
1858
1666
  fill: "none",
1859
1667
  viewBox: "0 0 24 24",
1860
1668
  strokeWidth: 1.5,
1861
1669
  stroke: "currentColor",
1862
1670
  className: "w-4 h-4 shrink-0",
1863
- children: /* @__PURE__ */ c("path", {
1671
+ children: /* @__PURE__ */ o("path", {
1864
1672
  strokeLinecap: "round",
1865
1673
  strokeLinejoin: "round",
1866
1674
  d: "M2.25 6.75c0 8.284 6.716 15 15 15h2.25a2.25 2.25 0 002.25-2.25v-1.372c0-.516-.351-.966-.852-1.091l-4.423-1.106c-.44-.11-.902.055-1.173.417l-.97 1.293c-.282.376-.769.542-1.21.38a12.035 12.035 0 01-7.143-7.143c-.162-.441.004-.928.38-1.21l1.293-.97c.363-.271.527-.734.417-1.173L6.963 3.102a1.125 1.125 0 00-1.091-.852H4.5A2.25 2.25 0 002.25 4.5v2.25z"
1867
1675
  })
1868
1676
  });
1869
1677
  }
1870
- function je() {
1871
- return /* @__PURE__ */ c("svg", {
1678
+ function ye() {
1679
+ return /* @__PURE__ */ o("svg", {
1872
1680
  xmlns: "http://www.w3.org/2000/svg",
1873
1681
  fill: "none",
1874
1682
  viewBox: "0 0 24 24",
1875
1683
  strokeWidth: 1.5,
1876
1684
  stroke: "currentColor",
1877
1685
  className: "w-4 h-4 shrink-0",
1878
- children: /* @__PURE__ */ c("path", {
1686
+ children: /* @__PURE__ */ o("path", {
1879
1687
  strokeLinecap: "round",
1880
1688
  strokeLinejoin: "round",
1881
1689
  d: "M21.75 6.75v10.5a2.25 2.25 0 01-2.25 2.25h-15a2.25 2.25 0 01-2.25-2.25V6.75m19.5 0A2.25 2.25 0 0019.5 4.5h-15a2.25 2.25 0 00-2.25 2.25m19.5 0v.243a2.25 2.25 0 01-1.07 1.916l-7.5 4.615a2.25 2.25 0 01-2.36 0L3.32 8.91a2.25 2.25 0 01-1.07-1.916V6.75"
1882
1690
  })
1883
1691
  });
1884
1692
  }
1885
- function Me() {
1886
- return /* @__PURE__ */ l("svg", {
1693
+ function be() {
1694
+ return /* @__PURE__ */ s("svg", {
1887
1695
  xmlns: "http://www.w3.org/2000/svg",
1888
1696
  fill: "none",
1889
1697
  viewBox: "0 0 24 24",
1890
1698
  strokeWidth: 1.5,
1891
1699
  stroke: "currentColor",
1892
1700
  className: "w-4 h-4 shrink-0",
1893
- children: [/* @__PURE__ */ c("path", {
1701
+ children: [/* @__PURE__ */ o("path", {
1894
1702
  strokeLinecap: "round",
1895
1703
  strokeLinejoin: "round",
1896
1704
  d: "M15 10.5a3 3 0 11-6 0 3 3 0 016 0z"
1897
- }), /* @__PURE__ */ c("path", {
1705
+ }), /* @__PURE__ */ o("path", {
1898
1706
  strokeLinecap: "round",
1899
1707
  strokeLinejoin: "round",
1900
1708
  d: "M19.5 10.5c0 7.142-7.5 11.25-7.5 11.25S4.5 17.642 4.5 10.5a7.5 7.5 0 1115 0z"
1901
1709
  })]
1902
1710
  });
1903
1711
  }
1904
- function Ne() {
1905
- return /* @__PURE__ */ c("svg", {
1712
+ function xe() {
1713
+ return /* @__PURE__ */ o("svg", {
1906
1714
  xmlns: "http://www.w3.org/2000/svg",
1907
1715
  fill: "none",
1908
1716
  viewBox: "0 0 24 24",
1909
1717
  strokeWidth: 1.5,
1910
1718
  stroke: "currentColor",
1911
1719
  className: "w-4 h-4 shrink-0",
1912
- children: /* @__PURE__ */ c("path", {
1720
+ children: /* @__PURE__ */ o("path", {
1913
1721
  strokeLinecap: "round",
1914
1722
  strokeLinejoin: "round",
1915
1723
  d: "M12 6v6h4.5m4.5 0a9 9 0 11-18 0 9 9 0 0118 0z"
1916
1724
  })
1917
1725
  });
1918
1726
  }
1919
- function Pe() {
1920
- return /* @__PURE__ */ c("svg", {
1727
+ function Se() {
1728
+ return /* @__PURE__ */ o("svg", {
1921
1729
  xmlns: "http://www.w3.org/2000/svg",
1922
1730
  viewBox: "0 0 24 24",
1923
1731
  fill: "currentColor",
1924
1732
  className: "w-4 h-4",
1925
- children: /* @__PURE__ */ c("path", { d: "M24 12.073C24 5.405 18.627 0 12 0S0 5.405 0 12.073C0 18.1 4.388 23.094 10.125 24v-8.437H7.078v-3.49h3.047V9.41c0-3.025 1.792-4.697 4.533-4.697 1.312 0 2.686.236 2.686.236v2.97h-1.513c-1.491 0-1.956.93-1.956 1.886v2.267h3.328l-.532 3.49h-2.796V24C19.612 23.094 24 18.1 24 12.073z" })
1733
+ children: /* @__PURE__ */ o("path", { d: "M24 12.073C24 5.405 18.627 0 12 0S0 5.405 0 12.073C0 18.1 4.388 23.094 10.125 24v-8.437H7.078v-3.49h3.047V9.41c0-3.025 1.792-4.697 4.533-4.697 1.312 0 2.686.236 2.686.236v2.97h-1.513c-1.491 0-1.956.93-1.956 1.886v2.267h3.328l-.532 3.49h-2.796V24C19.612 23.094 24 18.1 24 12.073z" })
1926
1734
  });
1927
1735
  }
1928
- function $() {
1929
- return /* @__PURE__ */ c("svg", {
1736
+ function Ce() {
1737
+ return /* @__PURE__ */ o("svg", {
1930
1738
  xmlns: "http://www.w3.org/2000/svg",
1931
1739
  viewBox: "0 0 24 24",
1932
1740
  fill: "currentColor",
1933
1741
  className: "w-4 h-4",
1934
- children: /* @__PURE__ */ c("path", { d: "M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zm0-2.163c-3.259 0-3.667.014-4.947.072-4.358.2-6.78 2.618-6.98 6.98-.059 1.281-.073 1.689-.073 4.948 0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98 1.281.058 1.689.072 4.948.072 3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98-1.281-.059-1.69-.073-4.949-.073zm0 5.838a6.162 6.162 0 100 12.324 6.162 6.162 0 000-12.324zM12 16a4 4 0 110-8 4 4 0 010 8zm6.406-11.845a1.44 1.44 0 100 2.881 1.44 1.44 0 000-2.881z" })
1742
+ children: /* @__PURE__ */ o("path", { d: "M12 2.163c3.204 0 3.584.012 4.85.07 3.252.148 4.771 1.691 4.919 4.919.058 1.265.069 1.645.069 4.849 0 3.205-.012 3.584-.069 4.849-.149 3.225-1.664 4.771-4.919 4.919-1.266.058-1.644.07-4.85.07-3.204 0-3.584-.012-4.849-.07-3.26-.149-4.771-1.699-4.919-4.92-.058-1.265-.07-1.644-.07-4.849 0-3.204.013-3.583.07-4.849.149-3.227 1.664-4.771 4.919-4.919 1.266-.057 1.645-.069 4.849-.069zm0-2.163c-3.259 0-3.667.014-4.947.072-4.358.2-6.78 2.618-6.98 6.98-.059 1.281-.073 1.689-.073 4.948 0 3.259.014 3.668.072 4.948.2 4.358 2.618 6.78 6.98 6.98 1.281.058 1.689.072 4.948.072 3.259 0 3.668-.014 4.948-.072 4.354-.2 6.782-2.618 6.979-6.98.059-1.28.073-1.689.073-4.948 0-3.259-.014-3.667-.072-4.947-.196-4.354-2.617-6.78-6.979-6.98-1.281-.059-1.69-.073-4.949-.073zm0 5.838a6.162 6.162 0 100 12.324 6.162 6.162 0 000-12.324zM12 16a4 4 0 110-8 4 4 0 010 8zm6.406-11.845a1.44 1.44 0 100 2.881 1.44 1.44 0 000-2.881z" })
1935
1743
  });
1936
1744
  }
1937
- function Fe() {
1938
- return /* @__PURE__ */ c("svg", {
1745
+ function we() {
1746
+ return /* @__PURE__ */ o("svg", {
1939
1747
  xmlns: "http://www.w3.org/2000/svg",
1940
1748
  viewBox: "0 0 24 24",
1941
1749
  fill: "currentColor",
1942
1750
  className: "w-4 h-4",
1943
- children: /* @__PURE__ */ c("path", { d: "M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z" })
1751
+ children: /* @__PURE__ */ o("path", { d: "M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-5.214-6.817L4.99 21.75H1.68l7.73-8.835L1.254 2.25H8.08l4.713 6.231zm-1.161 17.52h1.833L7.084 4.126H5.117z" })
1944
1752
  });
1945
1753
  }
1946
- function Ie() {
1947
- return /* @__PURE__ */ c("svg", {
1754
+ function Te() {
1755
+ return /* @__PURE__ */ o("svg", {
1948
1756
  xmlns: "http://www.w3.org/2000/svg",
1949
1757
  viewBox: "0 0 24 24",
1950
1758
  fill: "currentColor",
1951
1759
  className: "w-4 h-4",
1952
- children: /* @__PURE__ */ c("path", { d: "M23.498 6.186a3.016 3.016 0 00-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 00.502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 002.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 002.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z" })
1760
+ children: /* @__PURE__ */ o("path", { d: "M23.498 6.186a3.016 3.016 0 00-2.122-2.136C19.505 3.545 12 3.545 12 3.545s-7.505 0-9.377.505A3.017 3.017 0 00.502 6.186C0 8.07 0 12 0 12s0 3.93.502 5.814a3.016 3.016 0 002.122 2.136c1.871.505 9.376.505 9.376.505s7.505 0 9.377-.505a3.015 3.015 0 002.122-2.136C24 15.93 24 12 24 12s0-3.93-.502-5.814zM9.545 15.568V8.432L15.818 12l-6.273 3.568z" })
1953
1761
  });
1954
1762
  }
1955
- function Le() {
1956
- return /* @__PURE__ */ c("svg", {
1763
+ function Ee() {
1764
+ return /* @__PURE__ */ o("svg", {
1957
1765
  xmlns: "http://www.w3.org/2000/svg",
1958
1766
  viewBox: "0 0 24 24",
1959
1767
  fill: "currentColor",
1960
1768
  className: "w-4 h-4",
1961
- children: /* @__PURE__ */ c("path", { d: "M19.59 6.69a4.83 4.83 0 01-3.77-4.25V2h-3.45v13.67a2.89 2.89 0 01-2.88 2.5 2.89 2.89 0 01-2.89-2.89 2.89 2.89 0 012.89-2.89c.28 0 .54.04.79.1V9.01a6.33 6.33 0 00-.79-.05 6.34 6.34 0 00-6.34 6.34 6.34 6.34 0 006.34 6.34 6.34 6.34 0 006.33-6.34V8.69a8.18 8.18 0 004.78 1.52V6.76a4.85 4.85 0 01-1.01-.07z" })
1769
+ children: /* @__PURE__ */ o("path", { d: "M19.59 6.69a4.83 4.83 0 01-3.77-4.25V2h-3.45v13.67a2.89 2.89 0 01-2.88 2.5 2.89 2.89 0 01-2.89-2.89 2.89 2.89 0 012.89-2.89c.28 0 .54.04.79.1V9.01a6.33 6.33 0 00-.79-.05 6.34 6.34 0 00-6.34 6.34 6.34 6.34 0 006.34 6.34 6.34 6.34 0 006.33-6.34V8.69a8.18 8.18 0 004.78 1.52V6.76a4.85 4.85 0 01-1.01-.07z" })
1962
1770
  });
1963
1771
  }
1964
- var Re = {
1965
- facebook: Pe,
1966
- instagram: $,
1967
- twitter: Fe,
1968
- youtube: Ie,
1969
- tiktok: Le
1970
- }, ze = {
1971
- phone: Ae,
1972
- email: je,
1973
- address: Me,
1974
- hours: Ne
1772
+ var De = {
1773
+ facebook: Se,
1774
+ instagram: Ce,
1775
+ twitter: we,
1776
+ youtube: Te,
1777
+ tiktok: Ee
1778
+ }, Oe = {
1779
+ phone: ve,
1780
+ email: ye,
1781
+ address: be,
1782
+ hours: xe
1975
1783
  };
1976
- function Be(e) {
1784
+ function ke(e) {
1977
1785
  if (!e) return null;
1978
1786
  if (typeof e == "string") {
1979
- let t = ze[e];
1980
- return t ? /* @__PURE__ */ c(t, {}) : null;
1787
+ let t = Oe[e];
1788
+ return t ? /* @__PURE__ */ o(t, {}) : null;
1981
1789
  }
1982
1790
  return e;
1983
1791
  }
1984
- function Ve(e) {
1792
+ function Ae(e) {
1985
1793
  if (typeof e == "string") {
1986
- let t = Re[e];
1987
- return t ? /* @__PURE__ */ c(t, {}) : null;
1794
+ let t = De[e];
1795
+ return t ? /* @__PURE__ */ o(t, {}) : null;
1988
1796
  }
1989
1797
  return e;
1990
1798
  }
1991
- function He({ logo: e, tagline: t, contactHeading: n = "Kontakty", contacts: r = [], linkGroups: i = [], socialLinks: a = [], copyright: o, bottomLinks: s = [], className: u = "" }) {
1799
+ function je({ logo: e, tagline: t, contactHeading: n = "Kontakty", contacts: r = [], linkGroups: i = [], socialLinks: a = [], copyright: c, bottomLinks: l = [], className: u = "" }) {
1992
1800
  let d = (/* @__PURE__ */ new Date()).getFullYear();
1993
- return /* @__PURE__ */ l("footer", {
1801
+ return /* @__PURE__ */ s("footer", {
1994
1802
  className: ["bg-gray-900 text-gray-300", u].filter(Boolean).join(" "),
1995
- children: [/* @__PURE__ */ l("div", {
1803
+ children: [/* @__PURE__ */ s("div", {
1996
1804
  className: "max-w-7xl mx-auto px-4 py-12 grid grid-cols-1 md:grid-cols-2 gap-10 lg:gap-16",
1997
- children: [/* @__PURE__ */ l("div", {
1805
+ children: [/* @__PURE__ */ s("div", {
1998
1806
  className: "flex flex-col gap-6",
1999
1807
  children: [
2000
- /* @__PURE__ */ l("div", { children: [e ? /* @__PURE__ */ c("div", {
1808
+ /* @__PURE__ */ s("div", { children: [e ? /* @__PURE__ */ o("div", {
2001
1809
  className: "mb-3",
2002
1810
  children: e
2003
- }) : /* @__PURE__ */ c("span", {
1811
+ }) : /* @__PURE__ */ o("span", {
2004
1812
  className: "text-xl font-bold text-white tracking-tight mb-3 block",
2005
1813
  children: "shopito"
2006
- }), t && /* @__PURE__ */ c("p", {
1814
+ }), t && /* @__PURE__ */ o("p", {
2007
1815
  className: "text-sm text-gray-400 max-w-xs",
2008
1816
  children: t
2009
1817
  })] }),
2010
- r.length > 0 && /* @__PURE__ */ l("div", { children: [/* @__PURE__ */ c("h3", {
1818
+ r.length > 0 && /* @__PURE__ */ s("div", { children: [/* @__PURE__ */ o("h3", {
2011
1819
  className: "text-xs font-semibold uppercase tracking-widest text-gray-500 mb-3",
2012
1820
  children: n
2013
- }), /* @__PURE__ */ c("ul", {
1821
+ }), /* @__PURE__ */ o("ul", {
2014
1822
  className: "space-y-3",
2015
1823
  children: r.map((e, t) => {
2016
- let n = Be(e.icon), r = /* @__PURE__ */ l("div", {
1824
+ let n = ke(e.icon), r = /* @__PURE__ */ s("div", {
2017
1825
  className: "flex items-start gap-2.5",
2018
- children: [n && /* @__PURE__ */ c("span", {
1826
+ children: [n && /* @__PURE__ */ o("span", {
2019
1827
  className: "mt-0.5 text-primary-400",
2020
1828
  children: n
2021
- }), /* @__PURE__ */ l("div", { children: [/* @__PURE__ */ c("p", {
1829
+ }), /* @__PURE__ */ s("div", { children: [/* @__PURE__ */ o("p", {
2022
1830
  className: "text-xs text-gray-500 leading-none mb-0.5",
2023
1831
  children: e.label
2024
- }), /* @__PURE__ */ c("p", {
1832
+ }), /* @__PURE__ */ o("p", {
2025
1833
  className: `text-sm text-gray-200 ${e.href ? "hover:text-white transition-colors" : ""}`,
2026
1834
  children: e.value
2027
1835
  })] })]
2028
1836
  });
2029
- return /* @__PURE__ */ c("li", { children: e.href ? /* @__PURE__ */ c("a", {
1837
+ return /* @__PURE__ */ o("li", { children: e.href ? /* @__PURE__ */ o("a", {
2030
1838
  href: e.href,
2031
1839
  children: r
2032
1840
  }) : r }, t);
2033
1841
  })
2034
1842
  })] }),
2035
- a.length > 0 && /* @__PURE__ */ c("div", {
1843
+ a.length > 0 && /* @__PURE__ */ o("div", {
2036
1844
  className: "flex gap-2 flex-wrap",
2037
- children: a.map((e, t) => /* @__PURE__ */ c("a", {
1845
+ children: a.map((e, t) => /* @__PURE__ */ o("a", {
2038
1846
  href: e.href,
2039
1847
  "aria-label": e.label,
2040
1848
  className: "w-8 h-8 flex items-center justify-center rounded-lg bg-gray-800 text-gray-400 hover:bg-primary-600 hover:text-white transition-colors",
2041
- children: Ve(e.icon)
1849
+ children: Ae(e.icon)
2042
1850
  }, t))
2043
1851
  })
2044
1852
  ]
2045
- }), i.length > 0 && /* @__PURE__ */ c("div", {
1853
+ }), i.length > 0 && /* @__PURE__ */ o("div", {
2046
1854
  className: `grid gap-8 ${i.length === 1 ? "grid-cols-1" : i.length === 2 ? "grid-cols-2" : "grid-cols-2 sm:grid-cols-3"}`,
2047
- children: i.map((e, t) => /* @__PURE__ */ l("div", { children: [/* @__PURE__ */ c("h3", {
1855
+ children: i.map((e, t) => /* @__PURE__ */ s("div", { children: [/* @__PURE__ */ o("h3", {
2048
1856
  className: "text-xs font-semibold uppercase tracking-widest text-gray-500 mb-3",
2049
1857
  children: e.heading
2050
- }), /* @__PURE__ */ c("ul", {
1858
+ }), /* @__PURE__ */ o("ul", {
2051
1859
  className: "space-y-2",
2052
- children: e.links.map((e, t) => /* @__PURE__ */ c("li", { children: e.href ? /* @__PURE__ */ c("a", {
1860
+ children: e.links.map((e, t) => /* @__PURE__ */ o("li", { children: e.href ? /* @__PURE__ */ o("a", {
2053
1861
  href: e.href,
2054
1862
  className: "text-sm text-gray-400 hover:text-white transition-colors",
2055
1863
  children: e.label
2056
- }) : /* @__PURE__ */ c("button", {
1864
+ }) : /* @__PURE__ */ o("button", {
2057
1865
  onClick: e.onClick,
2058
1866
  className: "text-sm text-gray-400 hover:text-white transition-colors text-left",
2059
1867
  children: e.label
2060
1868
  }) }, t))
2061
1869
  })] }, t))
2062
1870
  })]
2063
- }), /* @__PURE__ */ c("div", {
1871
+ }), /* @__PURE__ */ o("div", {
2064
1872
  className: "border-t border-gray-800",
2065
- children: /* @__PURE__ */ l("div", {
1873
+ children: /* @__PURE__ */ s("div", {
2066
1874
  className: "max-w-7xl mx-auto px-4 py-4 flex flex-wrap items-center justify-between gap-3",
2067
- children: [/* @__PURE__ */ c("p", {
1875
+ children: [/* @__PURE__ */ o("p", {
2068
1876
  className: "text-xs text-gray-500",
2069
- children: o ?? `© ${d} Shopito. Všechna práva vyhrazena.`
2070
- }), s.length > 0 && /* @__PURE__ */ c("nav", {
1877
+ children: c ?? `© ${d} Shopito. Všechna práva vyhrazena.`
1878
+ }), l.length > 0 && /* @__PURE__ */ o("nav", {
2071
1879
  className: "flex flex-wrap gap-4",
2072
- children: s.map((e, t) => e.href ? /* @__PURE__ */ c("a", {
1880
+ children: l.map((e, t) => e.href ? /* @__PURE__ */ o("a", {
2073
1881
  href: e.href,
2074
1882
  className: "text-xs text-gray-500 hover:text-gray-300 transition-colors",
2075
1883
  children: e.label
2076
- }, t) : /* @__PURE__ */ c("button", {
1884
+ }, t) : /* @__PURE__ */ o("button", {
2077
1885
  onClick: e.onClick,
2078
1886
  className: "text-xs text-gray-500 hover:text-gray-300 transition-colors",
2079
1887
  children: e.label
@@ -2084,6 +1892,6 @@ function He({ logo: e, tagline: t, contactHeading: n = "Kontakty", contacts: r =
2084
1892
  });
2085
1893
  }
2086
1894
  //#endregion
2087
- export { A as Alert, ce as Avatar, w as Badge, ge as BannerCarousel, p as Button, Oe as CallToAction, E as Card, O as CardBody, ee as CardFooter, D as CardHeader, pe as CategoryTree, N as Checkbox, He as Footer, ue as Header, y as Heading, m as Input, he as MegaMenu, M as Modal, G as Pagination, Z as ProductCard, Ce as ProductGrid, h as Select, re as Spinner, B as Tab, z as TabList, V as TabPanel, R as Tabs, b as Text, P as Toggle };
1895
+ export { A as Alert, F as Avatar, T as Badge, X as BannerCarousel, v as Button, ge as CallToAction, D as Card, ee as CardBody, k as CardFooter, O as CardHeader, q as CategoryTree, M as Checkbox, je as Footer, V as Header, C as Heading, b as IconButton, x as Input, y as LoadingSpin, Y as MegaMenu, j as Modal, R as Pagination, Q as ProductCard, de as ProductGrid, S as Select, te as Spinner, w as Text, N as Toggle };
2088
1896
 
2089
1897
  //# sourceMappingURL=index.js.map