@szymonpiatek/designsystem 0.0.5 → 0.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1,9 +1,12 @@
1
1
  'use strict';
2
2
 
3
- var React = require('react');
3
+ var react = require('react');
4
4
  var styles = require('@mui/material/styles');
5
- var CircularProgress = require('@mui/material/CircularProgress');
5
+ var material = require('@mui/material');
6
6
  var jsxRuntime = require('react/jsx-runtime');
7
+ var ShoppingCartIcon = require('@mui/icons-material/ShoppingCart');
8
+ var FavoriteIcon = require('@mui/icons-material/Favorite');
9
+ var FavoriteBorderIcon = require('@mui/icons-material/FavoriteBorder');
7
10
  var ExpandMoreIcon = require('@mui/icons-material/ExpandMore');
8
11
  var FileUploadIcon = require('@mui/icons-material/FileUpload');
9
12
  var CloudUploadMuiIcon = require('@mui/icons-material/CloudUpload');
@@ -21,41 +24,32 @@ var ChevronLeftIcon = require('@mui/icons-material/ChevronLeft');
21
24
  var ChevronRightIcon = require('@mui/icons-material/ChevronRight');
22
25
  var KeyboardArrowUpIcon = require('@mui/icons-material/KeyboardArrowUp');
23
26
  var KeyboardArrowDownIcon = require('@mui/icons-material/KeyboardArrowDown');
24
- var react = require('@emotion/react');
27
+ var react$1 = require('@emotion/react');
28
+ var ImageIcon = require('@mui/icons-material/Image');
25
29
  var ArticleIcon = require('@mui/icons-material/Article');
26
30
  var CheckCircleOutlinedIcon = require('@mui/icons-material/CheckCircleOutlined');
27
31
  var HighlightOffIcon = require('@mui/icons-material/HighlightOff');
32
+ var CreditCardOutlinedIcon = require('@mui/icons-material/CreditCardOutlined');
33
+ var LocalShippingOutlinedIcon = require('@mui/icons-material/LocalShippingOutlined');
34
+ var GridViewIcon = require('@mui/icons-material/GridView');
35
+ var ViewListIcon = require('@mui/icons-material/ViewList');
28
36
  var reactDom = require('react-dom');
29
37
  var KeyboardDoubleArrowLeftIcon = require('@mui/icons-material/KeyboardDoubleArrowLeft');
30
38
  var KeyboardDoubleArrowRightIcon = require('@mui/icons-material/KeyboardDoubleArrowRight');
39
+ var InfoOutlinedIcon = require('@mui/icons-material/InfoOutlined');
40
+ var WarningAmberOutlinedIcon = require('@mui/icons-material/WarningAmberOutlined');
41
+ var ErrorOutlineOutlinedIcon = require('@mui/icons-material/ErrorOutlineOutlined');
42
+ var InboxOutlinedIcon = require('@mui/icons-material/InboxOutlined');
43
+ var VerifiedIcon = require('@mui/icons-material/Verified');
44
+ var ThumbUpOutlinedIcon = require('@mui/icons-material/ThumbUpOutlined');
31
45
  var ArrowForwardIcon = require('@mui/icons-material/ArrowForward');
32
46
  var MenuIcon = require('@mui/icons-material/Menu');
33
- var CssBaseline = require('@mui/material/CssBaseline');
34
- var navigation = require('next/navigation');
35
- var createCache = require('@emotion/cache');
36
47
 
37
48
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
38
49
 
39
- function _interopNamespace(e) {
40
- if (e && e.__esModule) return e;
41
- var n = Object.create(null);
42
- if (e) {
43
- Object.keys(e).forEach(function (k) {
44
- if (k !== 'default') {
45
- var d = Object.getOwnPropertyDescriptor(e, k);
46
- Object.defineProperty(n, k, d.get ? d : {
47
- enumerable: true,
48
- get: function () { return e[k]; }
49
- });
50
- }
51
- });
52
- }
53
- n.default = e;
54
- return Object.freeze(n);
55
- }
56
-
57
- var React__namespace = /*#__PURE__*/_interopNamespace(React);
58
- var CircularProgress__default = /*#__PURE__*/_interopDefault(CircularProgress);
50
+ var ShoppingCartIcon__default = /*#__PURE__*/_interopDefault(ShoppingCartIcon);
51
+ var FavoriteIcon__default = /*#__PURE__*/_interopDefault(FavoriteIcon);
52
+ var FavoriteBorderIcon__default = /*#__PURE__*/_interopDefault(FavoriteBorderIcon);
59
53
  var ExpandMoreIcon__default = /*#__PURE__*/_interopDefault(ExpandMoreIcon);
60
54
  var FileUploadIcon__default = /*#__PURE__*/_interopDefault(FileUploadIcon);
61
55
  var CloudUploadMuiIcon__default = /*#__PURE__*/_interopDefault(CloudUploadMuiIcon);
@@ -72,15 +66,24 @@ var ChevronLeftIcon__default = /*#__PURE__*/_interopDefault(ChevronLeftIcon);
72
66
  var ChevronRightIcon__default = /*#__PURE__*/_interopDefault(ChevronRightIcon);
73
67
  var KeyboardArrowUpIcon__default = /*#__PURE__*/_interopDefault(KeyboardArrowUpIcon);
74
68
  var KeyboardArrowDownIcon__default = /*#__PURE__*/_interopDefault(KeyboardArrowDownIcon);
69
+ var ImageIcon__default = /*#__PURE__*/_interopDefault(ImageIcon);
75
70
  var ArticleIcon__default = /*#__PURE__*/_interopDefault(ArticleIcon);
76
71
  var CheckCircleOutlinedIcon__default = /*#__PURE__*/_interopDefault(CheckCircleOutlinedIcon);
77
72
  var HighlightOffIcon__default = /*#__PURE__*/_interopDefault(HighlightOffIcon);
73
+ var CreditCardOutlinedIcon__default = /*#__PURE__*/_interopDefault(CreditCardOutlinedIcon);
74
+ var LocalShippingOutlinedIcon__default = /*#__PURE__*/_interopDefault(LocalShippingOutlinedIcon);
75
+ var GridViewIcon__default = /*#__PURE__*/_interopDefault(GridViewIcon);
76
+ var ViewListIcon__default = /*#__PURE__*/_interopDefault(ViewListIcon);
78
77
  var KeyboardDoubleArrowLeftIcon__default = /*#__PURE__*/_interopDefault(KeyboardDoubleArrowLeftIcon);
79
78
  var KeyboardDoubleArrowRightIcon__default = /*#__PURE__*/_interopDefault(KeyboardDoubleArrowRightIcon);
79
+ var InfoOutlinedIcon__default = /*#__PURE__*/_interopDefault(InfoOutlinedIcon);
80
+ var WarningAmberOutlinedIcon__default = /*#__PURE__*/_interopDefault(WarningAmberOutlinedIcon);
81
+ var ErrorOutlineOutlinedIcon__default = /*#__PURE__*/_interopDefault(ErrorOutlineOutlinedIcon);
82
+ var InboxOutlinedIcon__default = /*#__PURE__*/_interopDefault(InboxOutlinedIcon);
83
+ var VerifiedIcon__default = /*#__PURE__*/_interopDefault(VerifiedIcon);
84
+ var ThumbUpOutlinedIcon__default = /*#__PURE__*/_interopDefault(ThumbUpOutlinedIcon);
80
85
  var ArrowForwardIcon__default = /*#__PURE__*/_interopDefault(ArrowForwardIcon);
81
86
  var MenuIcon__default = /*#__PURE__*/_interopDefault(MenuIcon);
82
- var CssBaseline__default = /*#__PURE__*/_interopDefault(CssBaseline);
83
- var createCache__default = /*#__PURE__*/_interopDefault(createCache);
84
87
 
85
88
  // src/components/atoms/buttons/Button/Button.tsx
86
89
  var sizeMap = {
@@ -153,7 +156,7 @@ var IconSlot = styles.styled("span")({
153
156
  var Spinner = styles.styled("span")({
154
157
  display: "inline-flex"
155
158
  });
156
- var Button = React.forwardRef(
159
+ var Button = react.forwardRef(
157
160
  ({
158
161
  variant = "primary",
159
162
  size = "md",
@@ -183,7 +186,7 @@ var Button = React.forwardRef(
183
186
  "aria-label": ariaLabel,
184
187
  "aria-current": ariaCurrent,
185
188
  children: [
186
- loading ? /* @__PURE__ */ jsxRuntime.jsx(Spinner, { "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsx(CircularProgress__default.default, { size: "1em", color: "inherit", thickness: 5 }) }) : startIcon && /* @__PURE__ */ jsxRuntime.jsx(IconSlot, { children: startIcon }),
189
+ loading ? /* @__PURE__ */ jsxRuntime.jsx(Spinner, { "aria-hidden": "true", children: /* @__PURE__ */ jsxRuntime.jsx(material.CircularProgress, { size: "1em", color: "inherit", thickness: 5 }) }) : startIcon && /* @__PURE__ */ jsxRuntime.jsx(IconSlot, { children: startIcon }),
187
190
  /* @__PURE__ */ jsxRuntime.jsx("span", { children }),
188
191
  endIcon && /* @__PURE__ */ jsxRuntime.jsx(IconSlot, { children: endIcon })
189
192
  ]
@@ -191,6 +194,102 @@ var Button = React.forwardRef(
191
194
  )
192
195
  );
193
196
  Button.displayName = "Button";
197
+ var iconSizeMap = {
198
+ sm: 18,
199
+ md: 20,
200
+ lg: 24
201
+ };
202
+ var Root = styles.styled("span")({
203
+ position: "relative",
204
+ display: "inline-flex"
205
+ });
206
+ var Badge = styles.styled("span")(({ theme }) => ({
207
+ position: "absolute",
208
+ top: "-4px",
209
+ right: "-4px",
210
+ backgroundColor: theme.palette.primary.main,
211
+ color: "#fff",
212
+ borderRadius: "9999px",
213
+ fontSize: "0.625rem",
214
+ fontWeight: 700,
215
+ minWidth: "16px",
216
+ height: "16px",
217
+ display: "flex",
218
+ alignItems: "center",
219
+ justifyContent: "center",
220
+ padding: "0 3px",
221
+ pointerEvents: "none",
222
+ fontFamily: theme.typography.fontFamily,
223
+ lineHeight: 1
224
+ }));
225
+ var CartButton = react.forwardRef(
226
+ ({ count, size = "sm", label = "Koszyk", disabled, onClick, className, "aria-label": ariaLabel }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(Root, { className, children: [
227
+ /* @__PURE__ */ jsxRuntime.jsx(
228
+ Button,
229
+ {
230
+ ref,
231
+ variant: "ghost",
232
+ size,
233
+ disabled,
234
+ onClick,
235
+ "aria-label": ariaLabel ?? (count ? `${label} (${count})` : label),
236
+ children: /* @__PURE__ */ jsxRuntime.jsx("span", { style: { display: "flex" }, children: /* @__PURE__ */ jsxRuntime.jsx(ShoppingCartIcon__default.default, { "aria-hidden": true, style: { fontSize: iconSizeMap[size] } }) })
237
+ }
238
+ ),
239
+ count != null && count > 0 && /* @__PURE__ */ jsxRuntime.jsx(Badge, { "aria-hidden": true, children: count > 99 ? "99+" : count })
240
+ ] })
241
+ );
242
+ CartButton.displayName = "CartButton";
243
+ var sizeMap2 = {
244
+ sm: { iconSize: 16, padding: "0.375rem" },
245
+ md: { iconSize: 20, padding: "0.5rem" },
246
+ lg: { iconSize: 24, padding: "0.625rem" }
247
+ };
248
+ var Root2 = styles.styled("button")(
249
+ ({ theme, $active, $size }) => ({
250
+ appearance: "none",
251
+ border: `1px solid ${$active ? theme.palette.error.main : theme.palette.divider}`,
252
+ background: $active ? `${theme.palette.error.main}14` : "transparent",
253
+ cursor: "pointer",
254
+ display: "inline-flex",
255
+ alignItems: "center",
256
+ justifyContent: "center",
257
+ borderRadius: "50%",
258
+ padding: sizeMap2[$size].padding,
259
+ color: $active ? theme.palette.error.main : theme.palette.text.secondary,
260
+ transition: "color 150ms ease, background-color 150ms ease, border-color 150ms ease",
261
+ "&:hover:not(:disabled)": {
262
+ color: theme.palette.error.main,
263
+ borderColor: theme.palette.error.main,
264
+ backgroundColor: `${theme.palette.error.main}14`
265
+ },
266
+ "&:focus-visible": {
267
+ outline: `3px solid ${theme.palette.primary.main}`,
268
+ outlineOffset: "2px"
269
+ },
270
+ "&:disabled": {
271
+ opacity: 0.4,
272
+ cursor: "not-allowed"
273
+ }
274
+ })
275
+ );
276
+ var WishlistButton = react.forwardRef(
277
+ ({ active = false, loading = false, size = "md", label, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
278
+ Root2,
279
+ {
280
+ ref,
281
+ type: "button",
282
+ $active: active,
283
+ $size: size,
284
+ disabled: loading || props.disabled,
285
+ "aria-label": label ?? (active ? "Usu\u0144 z listy \u017Cycze\u0144" : "Dodaj do listy \u017Cycze\u0144"),
286
+ "aria-pressed": active,
287
+ ...props,
288
+ children: loading ? /* @__PURE__ */ jsxRuntime.jsx(material.CircularProgress, { size: sizeMap2[size].iconSize, color: "inherit", thickness: 5 }) : active ? /* @__PURE__ */ jsxRuntime.jsx(FavoriteIcon__default.default, { "aria-hidden": true, style: { fontSize: sizeMap2[size].iconSize } }) : /* @__PURE__ */ jsxRuntime.jsx(FavoriteBorderIcon__default.default, { "aria-hidden": true, style: { fontSize: sizeMap2[size].iconSize } })
289
+ }
290
+ )
291
+ );
292
+ WishlistButton.displayName = "WishlistButton";
194
293
  var StyledHelperText = styles.styled("p")(({ theme, $error }) => ({
195
294
  margin: "0.25rem 0 0",
196
295
  fontSize: "0.75rem",
@@ -247,7 +346,7 @@ var inputColors = (theme, error) => ({
247
346
  boxShadow: `0 0 0 3px ${error ? theme.palette.error.main : theme.palette.primary.main}33`
248
347
  }
249
348
  });
250
- var Root = styles.styled("div")(({ $fullWidth }) => ({
349
+ var Root3 = styles.styled("div")(({ $fullWidth }) => ({
251
350
  display: $fullWidth ? "block" : "inline-block",
252
351
  width: $fullWidth ? "100%" : "auto"
253
352
  }));
@@ -297,7 +396,7 @@ var Adornment = styles.styled("span")(({ theme }) => ({
297
396
  color: theme.palette.text.secondary,
298
397
  flexShrink: 0
299
398
  }));
300
- var BaseInput = React.forwardRef(
399
+ var BaseInput = react.forwardRef(
301
400
  ({
302
401
  label,
303
402
  helperText,
@@ -310,9 +409,9 @@ var BaseInput = React.forwardRef(
310
409
  id,
311
410
  ...rest
312
411
  }, ref) => {
313
- const autoId = React.useId();
412
+ const autoId = react.useId();
314
413
  const inputId = id ?? autoId;
315
- return /* @__PURE__ */ jsxRuntime.jsxs(Root, { $fullWidth: fullWidth, children: [
414
+ return /* @__PURE__ */ jsxRuntime.jsxs(Root3, { $fullWidth: fullWidth, children: [
316
415
  label && /* @__PURE__ */ jsxRuntime.jsx(Label, { htmlFor: inputId, error, size, children: label }),
317
416
  /* @__PURE__ */ jsxRuntime.jsxs(
318
417
  InputWrapper,
@@ -416,12 +515,12 @@ var LabelText = styles.styled("span")(
416
515
  userSelect: "none"
417
516
  })
418
517
  );
419
- var Root2 = styles.styled("span")(({ $disabled }) => ({
518
+ var Root4 = styles.styled("span")(({ $disabled }) => ({
420
519
  display: "inline-flex",
421
520
  flexDirection: "column",
422
521
  cursor: $disabled ? "not-allowed" : "pointer"
423
522
  }));
424
- var CheckboxInput = React.forwardRef(
523
+ var CheckboxInput = react.forwardRef(
425
524
  ({
426
525
  label,
427
526
  helperText,
@@ -432,15 +531,15 @@ var CheckboxInput = React.forwardRef(
432
531
  id,
433
532
  ...rest
434
533
  }, ref) => {
435
- const autoId = React.useId();
534
+ const autoId = react.useId();
436
535
  const inputId = id ?? autoId;
437
- const innerRef = React.useRef(null);
438
- React.useEffect(() => {
536
+ const innerRef = react.useRef(null);
537
+ react.useEffect(() => {
439
538
  if (innerRef.current) {
440
539
  innerRef.current.indeterminate = indeterminate;
441
540
  }
442
541
  }, [indeterminate]);
443
- return /* @__PURE__ */ jsxRuntime.jsxs(Root2, { $disabled: disabled, children: [
542
+ return /* @__PURE__ */ jsxRuntime.jsxs(Root4, { $disabled: disabled, children: [
444
543
  /* @__PURE__ */ jsxRuntime.jsxs(Row, { htmlFor: inputId, children: [
445
544
  /* @__PURE__ */ jsxRuntime.jsx(Box, { $size: size, $error: error, $disabled: disabled, children: /* @__PURE__ */ jsxRuntime.jsx(
446
545
  HiddenInput,
@@ -474,7 +573,7 @@ var CloudUploadIcon = ({ size }) => /* @__PURE__ */ jsxRuntime.jsx(CloudUploadMu
474
573
  var FileDocIcon = ({ size }) => /* @__PURE__ */ jsxRuntime.jsx(InsertDriveFileIcon__default.default, { "aria-hidden": true, style: { fontSize: size } });
475
574
  var TrashIcon = ({ size = 12 }) => /* @__PURE__ */ jsxRuntime.jsx(DeleteOutlinedIcon__default.default, { "aria-hidden": true, style: { fontSize: size } });
476
575
  var XIcon = () => /* @__PURE__ */ jsxRuntime.jsx(CloseIcon__default.default, { "aria-hidden": true, style: { fontSize: 11 } });
477
- var Root3 = styles.styled("div")(({ $fullWidth }) => ({
576
+ var Root5 = styles.styled("div")(({ $fullWidth }) => ({
478
577
  display: $fullWidth ? "block" : "inline-block",
479
578
  width: $fullWidth ? "100%" : "auto"
480
579
  }));
@@ -865,7 +964,7 @@ var FileActionBtn = styles.styled("button")(({
865
964
  "&:disabled": { opacity: 0.5, cursor: "not-allowed" }
866
965
  };
867
966
  });
868
- var FileInput = React.forwardRef(
967
+ var FileInput = react.forwardRef(
869
968
  ({
870
969
  label,
871
970
  helperText,
@@ -893,11 +992,11 @@ var FileInput = React.forwardRef(
893
992
  onChange,
894
993
  ...rest
895
994
  }, ref) => {
896
- const autoId = React.useId();
995
+ const autoId = react.useId();
897
996
  const inputId = id ?? autoId;
898
- const innerRef = React.useRef(null);
899
- const [files, setFiles] = React.useState([]);
900
- const [isDragging, setIsDragging] = React.useState(false);
997
+ const innerRef = react.useRef(null);
998
+ const [files, setFiles] = react.useState([]);
999
+ const [isDragging, setIsDragging] = react.useState(false);
901
1000
  const assignRef = (node) => {
902
1001
  innerRef.current = node;
903
1002
  if (typeof ref === "function") ref(node);
@@ -964,7 +1063,7 @@ var FileInput = React.forwardRef(
964
1063
  }
965
1064
  );
966
1065
  if (variant === "dropzone") {
967
- return /* @__PURE__ */ jsxRuntime.jsxs(Root3, { $fullWidth: fullWidth, children: [
1066
+ return /* @__PURE__ */ jsxRuntime.jsxs(Root5, { $fullWidth: fullWidth, children: [
968
1067
  label && /* @__PURE__ */ jsxRuntime.jsx(Label, { htmlFor: inputId, error, size, children: label }),
969
1068
  /* @__PURE__ */ jsxRuntime.jsxs(
970
1069
  DropzoneArea,
@@ -1092,7 +1191,7 @@ var FileInput = React.forwardRef(
1092
1191
  helperText && /* @__PURE__ */ jsxRuntime.jsx(HelperText, { error, children: helperText })
1093
1192
  ] });
1094
1193
  }
1095
- return /* @__PURE__ */ jsxRuntime.jsxs(Root3, { $fullWidth: fullWidth, children: [
1194
+ return /* @__PURE__ */ jsxRuntime.jsxs(Root5, { $fullWidth: fullWidth, children: [
1096
1195
  label && /* @__PURE__ */ jsxRuntime.jsx(Label, { htmlFor: inputId, error, size, children: label }),
1097
1196
  /* @__PURE__ */ jsxRuntime.jsxs(
1098
1197
  CompactWrapper,
@@ -1154,7 +1253,7 @@ var filterEmailString = (value) => {
1154
1253
  const domain = value.slice(atIdx + 1).replace(/@/g, "").replace(/[^a-zA-Z0-9.-]/g, "");
1155
1254
  return `${local}@${domain}`;
1156
1255
  };
1157
- var EmailInput = React.forwardRef(
1256
+ var EmailInput = react.forwardRef(
1158
1257
  ({ onKeyDown, onPaste, ...props }, ref) => {
1159
1258
  const handleKeyDown = (e) => {
1160
1259
  onKeyDown?.(e);
@@ -1211,7 +1310,7 @@ var triggerColors = (theme, error, open) => ({
1211
1310
  borderColor: error ? theme.palette.error.dark : theme.palette.text.secondary
1212
1311
  }
1213
1312
  });
1214
- var Root4 = styles.styled("div")(({ $fullWidth }) => ({
1313
+ var Root6 = styles.styled("div")(({ $fullWidth }) => ({
1215
1314
  display: $fullWidth ? "block" : "inline-block",
1216
1315
  width: $fullWidth ? "100%" : "auto",
1217
1316
  position: "relative"
@@ -1296,13 +1395,13 @@ var BaseSelectInput = ({
1296
1395
  id
1297
1396
  }) => {
1298
1397
  const checkSelected = isSelected ?? ((option) => option.value === value);
1299
- const autoId = React.useId();
1398
+ const autoId = react.useId();
1300
1399
  const inputId = id ?? autoId;
1301
1400
  const listboxId = `${inputId}-listbox`;
1302
- const [internalOpen, setInternalOpen] = React.useState(false);
1401
+ const [internalOpen, setInternalOpen] = react.useState(false);
1303
1402
  const isOpen = controlledOpen ?? internalOpen;
1304
- const rootRef = React.useRef(null);
1305
- const close = React.useCallback(() => {
1403
+ const rootRef = react.useRef(null);
1404
+ const close = react.useCallback(() => {
1306
1405
  setInternalOpen(false);
1307
1406
  onOpenChange?.(false);
1308
1407
  }, [onOpenChange]);
@@ -1316,7 +1415,7 @@ var BaseSelectInput = ({
1316
1415
  onSelect?.(option, close);
1317
1416
  }
1318
1417
  };
1319
- React.useEffect(() => {
1418
+ react.useEffect(() => {
1320
1419
  if (!isOpen) return;
1321
1420
  const handleMouseDown = (e) => {
1322
1421
  if (rootRef.current && !rootRef.current.contains(e.target)) {
@@ -1328,7 +1427,7 @@ var BaseSelectInput = ({
1328
1427
  }, [isOpen, close]);
1329
1428
  const selectedLabel = options.find((o) => o.value === value)?.label;
1330
1429
  const defaultTriggerContent = /* @__PURE__ */ jsxRuntime.jsx("span", { style: { opacity: selectedLabel ? 1 : 0.5 }, children: selectedLabel ?? placeholder });
1331
- return /* @__PURE__ */ jsxRuntime.jsxs(Root4, { $fullWidth: fullWidth, ref: rootRef, children: [
1430
+ return /* @__PURE__ */ jsxRuntime.jsxs(Root6, { $fullWidth: fullWidth, ref: rootRef, children: [
1332
1431
  label && /* @__PURE__ */ jsxRuntime.jsx(Label, { htmlFor: inputId, error, size, children: label }),
1333
1432
  /* @__PURE__ */ jsxRuntime.jsxs(
1334
1433
  Trigger,
@@ -1370,7 +1469,7 @@ var BaseSelectInput = ({
1370
1469
  ] });
1371
1470
  };
1372
1471
  BaseSelectInput.displayName = "BaseSelectInput";
1373
- var NumberInput = React.forwardRef(
1472
+ var NumberInput = react.forwardRef(
1374
1473
  (props, ref) => /* @__PURE__ */ jsxRuntime.jsx(BaseInput, { ref, type: "number", ...props })
1375
1474
  );
1376
1475
  NumberInput.displayName = "NumberInput";
@@ -1474,9 +1573,9 @@ var ToggleButton = styles.styled("button")(({ theme }) => ({
1474
1573
  }));
1475
1574
  var EyeIcon = () => /* @__PURE__ */ jsxRuntime.jsx(VisibilityIcon__default.default, { "aria-hidden": true, sx: { fontSize: "1em" } });
1476
1575
  var EyeOffIcon = () => /* @__PURE__ */ jsxRuntime.jsx(VisibilityOffIcon__default.default, { "aria-hidden": true, sx: { fontSize: "1em" } });
1477
- var PasswordInput = React.forwardRef(
1576
+ var PasswordInput = react.forwardRef(
1478
1577
  ({ disabled, showPasswordLabel = "Poka\u017C has\u0142o", hidePasswordLabel = "Ukryj has\u0142o", ...props }, ref) => {
1479
- const [show, setShow] = React.useState(false);
1578
+ const [show, setShow] = react.useState(false);
1480
1579
  return /* @__PURE__ */ jsxRuntime.jsx(
1481
1580
  BaseInput,
1482
1581
  {
@@ -1516,10 +1615,10 @@ var ClearButton = styles.styled("button")(({ theme }) => ({
1516
1615
  }));
1517
1616
  var SearchIcon = () => /* @__PURE__ */ jsxRuntime.jsx(SearchMuiIcon__default.default, { "aria-hidden": true, sx: { fontSize: "1em" } });
1518
1617
  var XIcon2 = () => /* @__PURE__ */ jsxRuntime.jsx(CloseIcon__default.default, { "aria-hidden": true, sx: { fontSize: "1em" } });
1519
- var SearchInput = React.forwardRef(
1618
+ var SearchInput = react.forwardRef(
1520
1619
  ({ value, onChange, onClear, clearAriaLabel = "Wyczy\u015B\u0107", ...props }, forwardedRef) => {
1521
- const innerRef = React.useRef(null);
1522
- const attachRef = React.useCallback(
1620
+ const innerRef = react.useRef(null);
1621
+ const attachRef = react.useCallback(
1523
1622
  (el) => {
1524
1623
  innerRef.current = el;
1525
1624
  if (typeof forwardedRef === "function") forwardedRef(el);
@@ -1529,7 +1628,7 @@ var SearchInput = React.forwardRef(
1529
1628
  [forwardedRef]
1530
1629
  );
1531
1630
  const isControlled = value !== void 0;
1532
- const [localValue, setLocalValue] = React.useState("");
1631
+ const [localValue, setLocalValue] = react.useState("");
1533
1632
  const hasValue = isControlled ? !!value : !!localValue;
1534
1633
  const handleChange = (e) => {
1535
1634
  if (!isControlled) setLocalValue(e.target.value);
@@ -1608,7 +1707,7 @@ var borderColors = (theme, error) => ({
1608
1707
  boxShadow: `0 0 0 3px ${error ? theme.palette.error.main : theme.palette.primary.main}33`
1609
1708
  }
1610
1709
  });
1611
- var Root5 = styles.styled("div")(({ $fullWidth }) => ({
1710
+ var Root7 = styles.styled("div")(({ $fullWidth }) => ({
1612
1711
  display: $fullWidth ? "block" : "inline-block",
1613
1712
  width: $fullWidth ? "100%" : "auto"
1614
1713
  }));
@@ -1635,7 +1734,7 @@ var StyledTextarea = styles.styled("textarea")(({ theme, $size, $fullWidth, $err
1635
1734
  color: theme.palette.text.disabled
1636
1735
  }
1637
1736
  }));
1638
- var TextareaInput = React.forwardRef(
1737
+ var TextareaInput = react.forwardRef(
1639
1738
  ({
1640
1739
  label,
1641
1740
  helperText,
@@ -1647,9 +1746,9 @@ var TextareaInput = React.forwardRef(
1647
1746
  id,
1648
1747
  ...rest
1649
1748
  }, ref) => {
1650
- const autoId = React.useId();
1749
+ const autoId = react.useId();
1651
1750
  const inputId = id ?? autoId;
1652
- return /* @__PURE__ */ jsxRuntime.jsxs(Root5, { $fullWidth: fullWidth, children: [
1751
+ return /* @__PURE__ */ jsxRuntime.jsxs(Root7, { $fullWidth: fullWidth, children: [
1653
1752
  label && /* @__PURE__ */ jsxRuntime.jsx(Label, { htmlFor: inputId, error, size, children: label }),
1654
1753
  /* @__PURE__ */ jsxRuntime.jsx(
1655
1754
  StyledTextarea,
@@ -1671,14 +1770,14 @@ var TextareaInput = React.forwardRef(
1671
1770
  }
1672
1771
  );
1673
1772
  TextareaInput.displayName = "TextareaInput";
1674
- var sizeMap2 = { sm: "1em", md: "1.25em", lg: "1.75em" };
1773
+ var sizeMap3 = { sm: "1em", md: "1.25em", lg: "1.75em" };
1675
1774
  var toFlagEmoji = (code) => code.toUpperCase().replace(/[A-Z]/g, (char) => String.fromCodePoint(127462 + char.charCodeAt(0) - 65));
1676
1775
  var CountryFlag = ({ countryCode, size = "md", style, ...rest }) => /* @__PURE__ */ jsxRuntime.jsx(
1677
1776
  "span",
1678
1777
  {
1679
1778
  role: "img",
1680
1779
  "aria-label": `Flag: ${countryCode}`,
1681
- style: { fontSize: sizeMap2[size], lineHeight: 1, display: "inline-flex", ...style },
1780
+ style: { fontSize: sizeMap3[size], lineHeight: 1, display: "inline-flex", ...style },
1682
1781
  ...rest,
1683
1782
  children: toFlagEmoji(countryCode)
1684
1783
  }
@@ -3274,7 +3373,7 @@ var wrapperColors = (theme, error, focused) => ({
3274
3373
  borderColor: !focused ? error ? theme.palette.error.dark : theme.palette.text.secondary : void 0
3275
3374
  }
3276
3375
  });
3277
- var Root6 = styles.styled("div")(({ $fullWidth }) => ({
3376
+ var Root8 = styles.styled("div")(({ $fullWidth }) => ({
3278
3377
  display: $fullWidth ? "block" : "inline-block",
3279
3378
  width: $fullWidth ? "100%" : "auto"
3280
3379
  }));
@@ -3425,7 +3524,7 @@ var EmptyMessage = styles.styled("p")(({ theme }) => ({
3425
3524
  fontSize: "0.875rem",
3426
3525
  color: theme.palette.text.secondary
3427
3526
  }));
3428
- var PhoneInput = React.forwardRef(
3527
+ var PhoneInput = react.forwardRef(
3429
3528
  ({
3430
3529
  value,
3431
3530
  defaultValue = "",
@@ -3447,30 +3546,30 @@ var PhoneInput = React.forwardRef(
3447
3546
  countrySearchAriaLabel = "Szukaj kraju",
3448
3547
  digitsLabel = "cyfr"
3449
3548
  }, ref) => {
3450
- const autoId = React.useId();
3549
+ const autoId = react.useId();
3451
3550
  const inputId = id ?? autoId;
3452
3551
  const listboxId = `${inputId}-listbox`;
3453
- const initialCountry = React.useMemo(
3552
+ const initialCountry = react.useMemo(
3454
3553
  () => COUNTRIES.find((c) => c.flagCode === defaultCountry) ?? DEFAULT_COUNTRY,
3455
3554
  [defaultCountry]
3456
3555
  );
3457
- const [selectedCountry, setSelectedCountry] = React.useState(initialCountry);
3458
- const [isOpen, setIsOpen] = React.useState(false);
3459
- const [searchQuery, setSearchQuery] = React.useState("");
3460
- const [focused, setFocused] = React.useState(false);
3556
+ const [selectedCountry, setSelectedCountry] = react.useState(initialCountry);
3557
+ const [isOpen, setIsOpen] = react.useState(false);
3558
+ const [searchQuery, setSearchQuery] = react.useState("");
3559
+ const [focused, setFocused] = react.useState(false);
3461
3560
  const isControlled = value !== void 0;
3462
- const [internalValue, setInternalValue] = React.useState(defaultValue);
3561
+ const [internalValue, setInternalValue] = react.useState(defaultValue);
3463
3562
  const phoneValue = isControlled ? value : internalValue;
3464
- const rootRef = React.useRef(null);
3465
- const searchRef = React.useRef(null);
3466
- const filteredCountries = React.useMemo(() => {
3563
+ const rootRef = react.useRef(null);
3564
+ const searchRef = react.useRef(null);
3565
+ const filteredCountries = react.useMemo(() => {
3467
3566
  const q = searchQuery.toLowerCase().trim();
3468
3567
  if (!q) return COUNTRIES;
3469
3568
  return COUNTRIES.filter(
3470
3569
  (c) => c.country.toLowerCase().includes(q) || c.flagCode.toLowerCase().includes(q) || c.dialCode.includes(q)
3471
3570
  );
3472
3571
  }, [searchQuery]);
3473
- const close = React.useCallback(() => {
3572
+ const close = react.useCallback(() => {
3474
3573
  setIsOpen(false);
3475
3574
  setSearchQuery("");
3476
3575
  }, []);
@@ -3502,7 +3601,7 @@ var PhoneInput = React.forwardRef(
3502
3601
  if (e.ctrlKey || e.metaKey || e.altKey || e.key.length > 1) return;
3503
3602
  if (!/^\d$/.test(e.key)) e.preventDefault();
3504
3603
  };
3505
- React.useEffect(() => {
3604
+ react.useEffect(() => {
3506
3605
  if (!isOpen) return;
3507
3606
  const handler = (e) => {
3508
3607
  if (rootRef.current && !rootRef.current.contains(e.target)) close();
@@ -3511,7 +3610,7 @@ var PhoneInput = React.forwardRef(
3511
3610
  return () => document.removeEventListener("mousedown", handler);
3512
3611
  }, [isOpen, close]);
3513
3612
  const derivedPlaceholder = placeholder ?? (selectedCountry.minLength === selectedCountry.maxLength ? `${selectedCountry.maxLength} ${digitsLabel}` : `${selectedCountry.minLength}\u2013${selectedCountry.maxLength} ${digitsLabel}`);
3514
- return /* @__PURE__ */ jsxRuntime.jsxs(Root6, { $fullWidth: fullWidth, ref: rootRef, children: [
3613
+ return /* @__PURE__ */ jsxRuntime.jsxs(Root8, { $fullWidth: fullWidth, ref: rootRef, children: [
3515
3614
  label && /* @__PURE__ */ jsxRuntime.jsx(Label, { htmlFor: inputId, error, size, children: label }),
3516
3615
  /* @__PURE__ */ jsxRuntime.jsxs(
3517
3616
  InputWrapper2,
@@ -3606,7 +3705,7 @@ var PhoneInput = React.forwardRef(
3606
3705
  }
3607
3706
  );
3608
3707
  PhoneInput.displayName = "PhoneInput";
3609
- var TextInput = React.forwardRef(
3708
+ var TextInput = react.forwardRef(
3610
3709
  ({ type = "text", ...rest }, ref) => /* @__PURE__ */ jsxRuntime.jsx(BaseInput, { ref, type, ...rest })
3611
3710
  );
3612
3711
  TextInput.displayName = "TextInput";
@@ -3626,7 +3725,7 @@ function getActiveColor(color, theme) {
3626
3725
  return theme.palette.primary.main;
3627
3726
  }
3628
3727
  }
3629
- var Root7 = styles.styled("span")(({ $disabled }) => ({
3728
+ var Root9 = styles.styled("span")(({ $disabled }) => ({
3630
3729
  display: "inline-flex",
3631
3730
  flexDirection: "column",
3632
3731
  cursor: $disabled ? "not-allowed" : "pointer"
@@ -3697,7 +3796,7 @@ var LabelText2 = styles.styled("span")(
3697
3796
  fontFamily: theme.typography.fontFamily
3698
3797
  })
3699
3798
  );
3700
- var SwitchInput = React.forwardRef(
3799
+ var SwitchInput = react.forwardRef(
3701
3800
  ({
3702
3801
  label,
3703
3802
  helperText,
@@ -3709,9 +3808,9 @@ var SwitchInput = React.forwardRef(
3709
3808
  id,
3710
3809
  ...rest
3711
3810
  }, ref) => {
3712
- const autoId = React.useId();
3811
+ const autoId = react.useId();
3713
3812
  const inputId = id ?? autoId;
3714
- return /* @__PURE__ */ jsxRuntime.jsxs(Root7, { $disabled: disabled, children: [
3813
+ return /* @__PURE__ */ jsxRuntime.jsxs(Root9, { $disabled: disabled, children: [
3715
3814
  /* @__PURE__ */ jsxRuntime.jsxs(Row2, { htmlFor: inputId, $placement: labelPlacement, children: [
3716
3815
  /* @__PURE__ */ jsxRuntime.jsxs(Track, { $size: size, $color: color, $error: error, $disabled: disabled, children: [
3717
3816
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -3737,7 +3836,7 @@ SwitchInput.displayName = "SwitchInput";
3737
3836
  var switchColors = ["primary", "secondary", "success", "danger"];
3738
3837
  var TRACK_H2 = { sm: "0.25rem", md: "0.375rem", lg: "0.5rem" };
3739
3838
  var THUMB_S2 = { sm: "0.875rem", md: "1.125rem", lg: "1.375rem" };
3740
- var Root8 = styles.styled("div")({
3839
+ var Root10 = styles.styled("div")({
3741
3840
  display: "flex",
3742
3841
  flexDirection: "column",
3743
3842
  gap: "0.5rem",
@@ -3813,7 +3912,7 @@ function pct(value, min, max) {
3813
3912
  function clamp(v, min, max) {
3814
3913
  return Math.min(max, Math.max(min, v));
3815
3914
  }
3816
- var RangeSlider = React.forwardRef(
3915
+ var RangeSlider = react.forwardRef(
3817
3916
  ({
3818
3917
  min = 0,
3819
3918
  max = 100,
@@ -3830,9 +3929,9 @@ var RangeSlider = React.forwardRef(
3830
3929
  id,
3831
3930
  ...props
3832
3931
  }, ref) => {
3833
- const autoId = React.useId();
3932
+ const autoId = react.useId();
3834
3933
  const inputId = id ?? autoId;
3835
- const getInitial = React.useCallback(() => {
3934
+ const getInitial = react.useCallback(() => {
3836
3935
  if (range) {
3837
3936
  const dv2 = defaultValue ?? controlledValue;
3838
3937
  return dv2 ?? [min, max];
@@ -3840,7 +3939,7 @@ var RangeSlider = React.forwardRef(
3840
3939
  const dv = defaultValue ?? controlledValue;
3841
3940
  return [dv ?? min, max];
3842
3941
  }, [range, defaultValue, controlledValue, min, max]);
3843
- const [internal, setInternal] = React.useState(getInitial);
3942
+ const [internal, setInternal] = react.useState(getInitial);
3844
3943
  const [lo, hi] = controlledValue !== void 0 ? range ? controlledValue : [controlledValue, max] : internal;
3845
3944
  const emit = (next) => {
3846
3945
  setInternal(next);
@@ -3860,7 +3959,7 @@ var RangeSlider = React.forwardRef(
3860
3959
  const loP = pct(lo, min, max);
3861
3960
  const hiP = pct(hi, min, max);
3862
3961
  const valueLabel = range ? `${formatValue2(lo)} \u2013 ${formatValue2(hi)}` : formatValue2(lo);
3863
- return /* @__PURE__ */ jsxRuntime.jsxs(Root8, { ref, ...props, children: [
3962
+ return /* @__PURE__ */ jsxRuntime.jsxs(Root10, { ref, ...props, children: [
3864
3963
  (label || showValue) && /* @__PURE__ */ jsxRuntime.jsxs(LabelRow, { children: [
3865
3964
  label && /* @__PURE__ */ jsxRuntime.jsx("span", { children: label }),
3866
3965
  showValue && /* @__PURE__ */ jsxRuntime.jsx("span", { children: valueLabel })
@@ -3990,7 +4089,7 @@ var inputColors2 = (theme, error) => ({
3990
4089
  boxShadow: `0 0 0 3px ${error ? theme.palette.error.main : theme.palette.primary.main}33`
3991
4090
  }
3992
4091
  });
3993
- var Root9 = styles.styled("div")(({ $fullWidth }) => ({
4092
+ var Root11 = styles.styled("div")(({ $fullWidth }) => ({
3994
4093
  display: $fullWidth ? "block" : "inline-block",
3995
4094
  width: $fullWidth ? "100%" : "auto",
3996
4095
  position: "relative"
@@ -4234,7 +4333,7 @@ function IconChevronDown() {
4234
4333
  function IconX() {
4235
4334
  return /* @__PURE__ */ jsxRuntime.jsx(CloseIcon__default.default, { "aria-hidden": "true", style: { fontSize: 14 } });
4236
4335
  }
4237
- var DateTimePicker = React.forwardRef(
4336
+ var DateTimePicker = react.forwardRef(
4238
4337
  ({
4239
4338
  value,
4240
4339
  defaultValue,
@@ -4251,26 +4350,26 @@ var DateTimePicker = React.forwardRef(
4251
4350
  max,
4252
4351
  id
4253
4352
  }, ref) => {
4254
- const autoId = React.useId();
4353
+ const autoId = react.useId();
4255
4354
  const inputId = id ?? autoId;
4256
- const rootRef = React.useRef(null);
4355
+ const rootRef = react.useRef(null);
4257
4356
  const isControlled = value !== void 0;
4258
- const [internalDate, setInternalDate] = React.useState(defaultValue ?? null);
4357
+ const [internalDate, setInternalDate] = react.useState(defaultValue ?? null);
4259
4358
  const selectedDate = isControlled ? value ?? null : internalDate;
4260
- const [open, setOpen] = React.useState(false);
4359
+ const [open, setOpen] = react.useState(false);
4261
4360
  const today = /* @__PURE__ */ new Date();
4262
- const [viewYear, setViewYear] = React.useState(selectedDate?.getFullYear() ?? today.getFullYear());
4263
- const [viewMonth, setViewMonth] = React.useState(selectedDate?.getMonth() ?? today.getMonth());
4264
- const [hours, setHours] = React.useState(selectedDate?.getHours() ?? 12);
4265
- const [minutes, setMinutes] = React.useState(selectedDate?.getMinutes() ?? 0);
4266
- const [hourInput, setHourInput] = React.useState(
4361
+ const [viewYear, setViewYear] = react.useState(selectedDate?.getFullYear() ?? today.getFullYear());
4362
+ const [viewMonth, setViewMonth] = react.useState(selectedDate?.getMonth() ?? today.getMonth());
4363
+ const [hours, setHours] = react.useState(selectedDate?.getHours() ?? 12);
4364
+ const [minutes, setMinutes] = react.useState(selectedDate?.getMinutes() ?? 0);
4365
+ const [hourInput, setHourInput] = react.useState(
4267
4366
  String(selectedDate?.getHours() ?? 12).padStart(2, "0")
4268
4367
  );
4269
- const [minInput, setMinInput] = React.useState(
4368
+ const [minInput, setMinInput] = react.useState(
4270
4369
  String(selectedDate?.getMinutes() ?? 0).padStart(2, "0")
4271
4370
  );
4272
- const [draftDate, setDraftDate] = React.useState(null);
4273
- const calendarDays = React.useMemo(
4371
+ const [draftDate, setDraftDate] = react.useState(null);
4372
+ const calendarDays = react.useMemo(
4274
4373
  () => buildCalendarDays(viewYear, viewMonth),
4275
4374
  [viewYear, viewMonth]
4276
4375
  );
@@ -4289,7 +4388,7 @@ var DateTimePicker = React.forwardRef(
4289
4388
  }
4290
4389
  setOpen(true);
4291
4390
  };
4292
- const commit = React.useCallback(
4391
+ const commit = react.useCallback(
4293
4392
  (d) => {
4294
4393
  if (!isControlled) setInternalDate(d);
4295
4394
  onChange?.(d);
@@ -4364,7 +4463,7 @@ var DateTimePicker = React.forwardRef(
4364
4463
  setMinutes(val);
4365
4464
  setMinInput(String(val).padStart(2, "0"));
4366
4465
  };
4367
- React.useEffect(() => {
4466
+ react.useEffect(() => {
4368
4467
  if (!open) return;
4369
4468
  const handler = (e) => {
4370
4469
  if (rootRef.current && !rootRef.current.contains(e.target)) setOpen(false);
@@ -4372,7 +4471,7 @@ var DateTimePicker = React.forwardRef(
4372
4471
  document.addEventListener("mousedown", handler);
4373
4472
  return () => document.removeEventListener("mousedown", handler);
4374
4473
  }, [open]);
4375
- React.useEffect(() => {
4474
+ react.useEffect(() => {
4376
4475
  if (!open) return;
4377
4476
  const handler = (e) => {
4378
4477
  if (e.key === "Escape") setOpen(false);
@@ -4385,7 +4484,7 @@ var DateTimePicker = React.forwardRef(
4385
4484
  const showCalendar = mode !== "time";
4386
4485
  const showTime = mode !== "date";
4387
4486
  const needsConfirm = mode !== "date";
4388
- return /* @__PURE__ */ jsxRuntime.jsxs(Root9, { ref: rootRef, $fullWidth: fullWidth, children: [
4487
+ return /* @__PURE__ */ jsxRuntime.jsxs(Root11, { ref: rootRef, $fullWidth: fullWidth, children: [
4389
4488
  label && /* @__PURE__ */ jsxRuntime.jsx(Label, { htmlFor: inputId, error, size, children: label }),
4390
4489
  /* @__PURE__ */ jsxRuntime.jsxs(
4391
4490
  InputWrapper3,
@@ -4701,7 +4800,7 @@ var StyledCard = styles.styled("div", {
4701
4800
  borderRadius: roundedMap[$rounded],
4702
4801
  ...getVariantStyles($variant, theme)
4703
4802
  }));
4704
- var Card = React.forwardRef(
4803
+ var Card = react.forwardRef(
4705
4804
  ({ variant = "default", padding = "md", rounded = "lg", ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(StyledCard, { ref, $variant: variant, $padding: padding, $rounded: rounded, ...props })
4706
4805
  );
4707
4806
  Card.displayName = "Card";
@@ -4792,7 +4891,7 @@ var StyledBadge = styles.styled("span", {
4792
4891
  fontFamily: theme.typography.fontFamily,
4793
4892
  ...getVariantStyles2($variant, theme)
4794
4893
  }));
4795
- function Badge({ variant = "default", ...props }) {
4894
+ function Badge2({ variant = "default", ...props }) {
4796
4895
  return /* @__PURE__ */ jsxRuntime.jsx(StyledBadge, { $variant: variant, ...props });
4797
4896
  }
4798
4897
  var badgeVariants = [
@@ -4804,7 +4903,41 @@ var badgeVariants = [
4804
4903
  "ghost",
4805
4904
  "promo"
4806
4905
  ];
4807
- var sizeMap3 = {
4906
+ function getBgColor(variant) {
4907
+ switch (variant) {
4908
+ case "flash":
4909
+ return "#f59e0b";
4910
+ case "new":
4911
+ return "#3b82f6";
4912
+ case "hot":
4913
+ return "#ef4444";
4914
+ default:
4915
+ return "#16a34a";
4916
+ }
4917
+ }
4918
+ var Root12 = styles.styled("span", {
4919
+ shouldForwardProp: (prop) => prop !== "$variant"
4920
+ })(({ theme, $variant }) => ({
4921
+ display: "inline-flex",
4922
+ alignItems: "center",
4923
+ gap: "0.25rem",
4924
+ borderRadius: "0.375rem",
4925
+ padding: "0.25rem 0.625rem",
4926
+ fontSize: "0.75rem",
4927
+ fontWeight: 700,
4928
+ lineHeight: 1,
4929
+ letterSpacing: "0.02em",
4930
+ fontFamily: theme.typography.fontFamily,
4931
+ backgroundColor: getBgColor($variant),
4932
+ color: "#ffffff",
4933
+ textTransform: "uppercase"
4934
+ }));
4935
+ function SaleBadge({ discount, label, variant = "default", ...props }) {
4936
+ const text = label ?? (discount !== void 0 ? `-${discount}%` : "SALE");
4937
+ return /* @__PURE__ */ jsxRuntime.jsx(Root12, { $variant: variant, ...props, children: text });
4938
+ }
4939
+ var saleBadgeVariants = ["default", "flash", "new", "hot"];
4940
+ var sizeMap4 = {
4808
4941
  sm: { width: "2rem", height: "2rem", fontSize: "0.75rem" },
4809
4942
  md: { width: "2.5rem", height: "2.5rem", fontSize: "0.875rem" },
4810
4943
  lg: { width: "3rem", height: "3rem", fontSize: "1rem" },
@@ -4840,7 +4973,7 @@ var StyledAvatar = styles.styled("div", {
4840
4973
  fontWeight: 600,
4841
4974
  fontFamily: theme.typography.fontFamily,
4842
4975
  userSelect: "none",
4843
- ...sizeMap3[$size],
4976
+ ...sizeMap4[$size],
4844
4977
  ...getColorStyles($color, theme)
4845
4978
  }));
4846
4979
  function Avatar({ initials, size = "md", color = "primary", ...props }) {
@@ -4890,7 +5023,7 @@ function SectionHeading({
4890
5023
  ] });
4891
5024
  }
4892
5025
  var sectionHeadingAligns = ["center", "left", "right"];
4893
- var shimmer = react.keyframes`
5026
+ var shimmer = react$1.keyframes`
4894
5027
  0% { background-position: -200% 0; }
4895
5028
  100% { background-position: 200% 0; }
4896
5029
  `;
@@ -4948,11 +5081,11 @@ var SIZE_MAP = {
4948
5081
  lg: "2rem",
4949
5082
  xl: "3rem"
4950
5083
  };
4951
- var spin = react.keyframes`to { transform: rotate(360deg); }`;
4952
- var fade = react.keyframes`0%,100%{opacity:.15} 50%{opacity:1}`;
4953
- var scalePulse = react.keyframes`0%,100%{transform:scale(0.6);opacity:.4} 50%{transform:scale(1);opacity:1}`;
4954
- var barAnim = react.keyframes`0%,100%{transform:scaleY(.4);opacity:.5} 50%{transform:scaleY(1);opacity:1}`;
4955
- var Root10 = styles.styled("span", {
5084
+ var spin = react$1.keyframes`to { transform: rotate(360deg); }`;
5085
+ var fade = react$1.keyframes`0%,100%{opacity:.15} 50%{opacity:1}`;
5086
+ var scalePulse = react$1.keyframes`0%,100%{transform:scale(0.6);opacity:.4} 50%{transform:scale(1);opacity:1}`;
5087
+ var barAnim = react$1.keyframes`0%,100%{transform:scaleY(.4);opacity:.5} 50%{transform:scaleY(1);opacity:1}`;
5088
+ var Root13 = styles.styled("span", {
4956
5089
  shouldForwardProp: (p) => !["$size", "$color"].includes(p)
4957
5090
  })(({ theme, $size, $color }) => {
4958
5091
  const colorMap = {
@@ -5040,8 +5173,8 @@ function Spinner3({
5040
5173
  label = "\u0141adowanie\u2026",
5041
5174
  ...props
5042
5175
  }) {
5043
- const Inner6 = VARIANTS[variant];
5044
- return /* @__PURE__ */ jsxRuntime.jsx(Root10, { $size: size, $color: color, role: "status", "aria-label": label, ...props, children: /* @__PURE__ */ jsxRuntime.jsx(Inner6, {}) });
5176
+ const Inner7 = VARIANTS[variant];
5177
+ return /* @__PURE__ */ jsxRuntime.jsx(Root13, { $size: size, $color: color, role: "status", "aria-label": label, ...props, children: /* @__PURE__ */ jsxRuntime.jsx(Inner7, {}) });
5045
5178
  }
5046
5179
  var spinnerVariants = ["ring", "dots", "pulse", "bars"];
5047
5180
  var spinnerSizes = ["xs", "sm", "md", "lg", "xl"];
@@ -5052,7 +5185,7 @@ var HEIGHT_MAP = {
5052
5185
  md: "0.75rem",
5053
5186
  lg: "1.25rem"
5054
5187
  };
5055
- var stripeAnim = react.keyframes`from{background-position:1rem 0}to{background-position:0 0}`;
5188
+ var stripeAnim = react$1.keyframes`from{background-position:1rem 0}to{background-position:0 0}`;
5056
5189
  function getFillColor(variant, theme) {
5057
5190
  switch (variant) {
5058
5191
  case "success":
@@ -5167,7 +5300,7 @@ var FONT_MAP = {
5167
5300
  lg: "1.125rem",
5168
5301
  xl: "1.5rem"
5169
5302
  };
5170
- var Root11 = styles.styled("div")({ position: "relative", display: "inline-flex", flexShrink: 0 });
5303
+ var Root14 = styles.styled("div")({ position: "relative", display: "inline-flex", flexShrink: 0 });
5171
5304
  var Label2 = styles.styled("div", {
5172
5305
  shouldForwardProp: (p) => p !== "$size"
5173
5306
  })(({ theme, $size }) => ({
@@ -5210,7 +5343,7 @@ function ProgressCircle({
5210
5343
  children,
5211
5344
  ...props
5212
5345
  }) {
5213
- const gradientId = React.useId().replace(/:/g, "");
5346
+ const gradientId = react.useId().replace(/:/g, "");
5214
5347
  const px = PX_MAP[size];
5215
5348
  const stroke = thickness ?? Math.max(3, px * 0.09);
5216
5349
  const r = (px - stroke) / 2;
@@ -5221,7 +5354,7 @@ function ProgressCircle({
5221
5354
  const { color, gradient } = useStrokeColor(variant, gradientId);
5222
5355
  const trackColor = theme.palette.mode === "dark" ? "rgba(255,255,255,0.1)" : "rgba(0,0,0,0.08)";
5223
5356
  return /* @__PURE__ */ jsxRuntime.jsxs(
5224
- Root11,
5357
+ Root14,
5225
5358
  {
5226
5359
  role: "progressbar",
5227
5360
  "aria-valuenow": value,
@@ -5343,7 +5476,7 @@ var StyledBox = styles.styled("div")(
5343
5476
  return css;
5344
5477
  }
5345
5478
  );
5346
- var Box2 = React.forwardRef(
5479
+ var Box2 = react.forwardRef(
5347
5480
  ({ direction = "row", wrap = "nowrap", gap = 0, cols, rows, children, ...rest }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
5348
5481
  StyledBox,
5349
5482
  {
@@ -5380,7 +5513,7 @@ var StyledContainer = styles.styled("div")(({ theme, $maxWidth }) => ({
5380
5513
  paddingRight: "2rem"
5381
5514
  }
5382
5515
  }));
5383
- var Container = React.forwardRef(
5516
+ var Container = react.forwardRef(
5384
5517
  ({ maxWidth = "xl", children, ...rest }, ref) => /* @__PURE__ */ jsxRuntime.jsx(StyledContainer, { ref, $maxWidth: maxWidth, ...rest, children })
5385
5518
  );
5386
5519
  Container.displayName = "Container";
@@ -5392,8 +5525,11 @@ var StyledSection = styles.styled("section")(({ theme }) => ({
5392
5525
  paddingBottom: "3rem"
5393
5526
  }
5394
5527
  }));
5395
- var Section = React.forwardRef(({ children, ...rest }, ref) => /* @__PURE__ */ jsxRuntime.jsx(StyledSection, { ref, ...rest, children }));
5528
+ var Section = react.forwardRef(({ children, ...rest }, ref) => /* @__PURE__ */ jsxRuntime.jsx(StyledSection, { ref, ...rest, children }));
5396
5529
  Section.displayName = "Section";
5530
+ var StyledMain = styles.styled("main")({});
5531
+ var Main = react.forwardRef(({ children, ...rest }, ref) => /* @__PURE__ */ jsxRuntime.jsx(StyledMain, { ref, ...rest, children }));
5532
+ Main.displayName = "Main";
5397
5533
  var getTypographyStyles = (theme) => ({
5398
5534
  fontFamily: theme.typography.fontFamily,
5399
5535
  "& h1": { fontSize: "2.25rem", fontWeight: 500, letterSpacing: "-0.025em" },
@@ -5549,16 +5685,11 @@ var getHeaderSpacingStyles = () => ({
5549
5685
  var spacingStyles = {
5550
5686
  "& > * + *": { marginTop: "1.5rem" }
5551
5687
  };
5552
- var StyledMain = styles.styled("main")(({ theme }) => ({
5553
- ...getTypographyStyles(theme)
5554
- }));
5555
- var Main = React.forwardRef(({ children, ...rest }, ref) => /* @__PURE__ */ jsxRuntime.jsx(StyledMain, { ref, ...rest, children }));
5556
- Main.displayName = "Main";
5557
5688
  var StyledProse = styles.styled("div")(({ theme }) => ({
5558
5689
  ...getTypographyStyles(theme),
5559
5690
  ...spacingStyles
5560
5691
  }));
5561
- var Prose = React.forwardRef(({ children, ...rest }, ref) => /* @__PURE__ */ jsxRuntime.jsx(StyledProse, { ref, ...rest, children }));
5692
+ var Prose = react.forwardRef(({ children, ...rest }, ref) => /* @__PURE__ */ jsxRuntime.jsx(StyledProse, { ref, ...rest, children }));
5562
5693
  Prose.displayName = "Prose";
5563
5694
  var StyledArticle = styles.styled("article")(({ theme }) => ({
5564
5695
  maxWidth: "56rem",
@@ -5568,14 +5699,112 @@ var StyledArticle = styles.styled("article")(({ theme }) => ({
5568
5699
  ...getHeaderSpacingStyles(),
5569
5700
  ...spacingStyles
5570
5701
  }));
5571
- var Article = React.forwardRef(({ children, ...rest }, ref) => /* @__PURE__ */ jsxRuntime.jsx(StyledArticle, { ref, ...rest, children }));
5702
+ var Article = react.forwardRef(({ children, ...rest }, ref) => /* @__PURE__ */ jsxRuntime.jsx(StyledArticle, { ref, ...rest, children }));
5572
5703
  Article.displayName = "Article";
5573
- var sizeMap4 = {
5704
+ var PRESET_MAP = {
5705
+ "1/1": 1,
5706
+ "4/3": 4 / 3,
5707
+ "3/2": 3 / 2,
5708
+ "16/9": 16 / 9,
5709
+ "21/9": 21 / 9,
5710
+ "9/16": 9 / 16,
5711
+ "3/4": 3 / 4,
5712
+ "2/3": 2 / 3
5713
+ };
5714
+ var Root15 = styles.styled("div")({
5715
+ position: "relative",
5716
+ width: "100%",
5717
+ "& > *": {
5718
+ position: "absolute",
5719
+ inset: 0,
5720
+ width: "100%",
5721
+ height: "100%",
5722
+ objectFit: "cover"
5723
+ }
5724
+ });
5725
+ var AspectRatio = react.forwardRef(
5726
+ ({ ratio = "16/9", children, style, ...props }, ref) => {
5727
+ const numericRatio = typeof ratio === "string" ? PRESET_MAP[ratio] ?? 16 / 9 : ratio;
5728
+ const paddingBottom = `${1 / numericRatio * 100}%`;
5729
+ return /* @__PURE__ */ jsxRuntime.jsx(Root15, { ref, style: { paddingBottom, ...style }, ...props, children });
5730
+ }
5731
+ );
5732
+ AspectRatio.displayName = "AspectRatio";
5733
+ var aspectRatioPresets = Object.keys(PRESET_MAP);
5734
+ var Root16 = styles.styled(Card)(({ theme }) => ({
5735
+ display: "flex",
5736
+ flexDirection: "column",
5737
+ overflow: "hidden",
5738
+ cursor: "pointer",
5739
+ transition: "box-shadow 150ms ease, transform 150ms ease",
5740
+ "&:hover": {
5741
+ boxShadow: theme.shadows[4],
5742
+ transform: "translateY(-2px)"
5743
+ }
5744
+ }));
5745
+ var ImageWrap = styles.styled("div")({
5746
+ margin: "-1.5rem -1.5rem 1rem"
5747
+ });
5748
+ var Image = styles.styled("img")({
5749
+ objectFit: "cover",
5750
+ width: "100%",
5751
+ height: "100%"
5752
+ });
5753
+ var ImagePlaceholder = styles.styled("div")(({ theme }) => ({
5754
+ width: "100%",
5755
+ height: "100%",
5756
+ backgroundColor: theme.palette.action.hover,
5757
+ display: "flex",
5758
+ alignItems: "center",
5759
+ justifyContent: "center",
5760
+ color: theme.palette.text.disabled
5761
+ }));
5762
+ var Content = styles.styled("div")({
5763
+ display: "flex",
5764
+ flexDirection: "column",
5765
+ gap: "0.25rem"
5766
+ });
5767
+ var Name = styles.styled("h3")(({ theme }) => ({
5768
+ margin: 0,
5769
+ color: theme.palette.text.primary,
5770
+ fontFamily: theme.typography.fontFamily,
5771
+ fontSize: "1rem",
5772
+ fontWeight: 700,
5773
+ lineHeight: 1.4
5774
+ }));
5775
+ var Count = styles.styled("span")(({ theme }) => ({
5776
+ color: theme.palette.text.secondary,
5777
+ fontFamily: theme.typography.fontFamily,
5778
+ fontSize: "0.875rem"
5779
+ }));
5780
+ var CardLink = styles.styled("a")({
5781
+ display: "block",
5782
+ textDecoration: "none",
5783
+ color: "inherit",
5784
+ outline: "none"
5785
+ });
5786
+ var CategoryCard = react.forwardRef(
5787
+ ({ name, imageUrl, imageAlt, count, href, ...props }, ref) => {
5788
+ const content = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
5789
+ /* @__PURE__ */ jsxRuntime.jsx(ImageWrap, { children: /* @__PURE__ */ jsxRuntime.jsx(AspectRatio, { ratio: "4/3", children: imageUrl ? /* @__PURE__ */ jsxRuntime.jsx(Image, { src: imageUrl, alt: imageAlt ?? name }) : /* @__PURE__ */ jsxRuntime.jsx(ImagePlaceholder, { "aria-label": imageAlt ?? name, children: /* @__PURE__ */ jsxRuntime.jsx(ImageIcon__default.default, { style: { fontSize: 48 } }) }) }) }),
5790
+ /* @__PURE__ */ jsxRuntime.jsxs(Content, { children: [
5791
+ /* @__PURE__ */ jsxRuntime.jsx(Name, { children: name }),
5792
+ count !== void 0 && /* @__PURE__ */ jsxRuntime.jsxs(Count, { children: [
5793
+ count,
5794
+ " produkt\xF3w"
5795
+ ] })
5796
+ ] })
5797
+ ] });
5798
+ return /* @__PURE__ */ jsxRuntime.jsx(Root16, { ref, variant: "default", padding: "md", rounded: "lg", ...props, children: href ? /* @__PURE__ */ jsxRuntime.jsx(CardLink, { href, children: content }) : content });
5799
+ }
5800
+ );
5801
+ CategoryCard.displayName = "CategoryCard";
5802
+ var sizeMap5 = {
5574
5803
  sm: "1rem",
5575
5804
  md: "1.25rem",
5576
5805
  lg: "1.5rem"
5577
5806
  };
5578
- var Root12 = styles.styled("div")(({ theme }) => ({
5807
+ var Root17 = styles.styled("div")(({ theme }) => ({
5579
5808
  display: "inline-flex",
5580
5809
  alignItems: "center",
5581
5810
  gap: "0.5rem",
@@ -5595,7 +5824,7 @@ var StarButton = styles.styled("button")(
5595
5824
  padding: 0,
5596
5825
  color: $active ? "#f59e0b" : theme.palette.action.disabled,
5597
5826
  cursor: "pointer",
5598
- fontSize: sizeMap4[$size],
5827
+ fontSize: sizeMap5[$size],
5599
5828
  lineHeight: 1,
5600
5829
  "&:disabled": {
5601
5830
  cursor: "default"
@@ -5606,11 +5835,11 @@ var Meta = styles.styled("span")(({ theme }) => ({
5606
5835
  fontSize: "0.875rem",
5607
5836
  color: theme.palette.text.secondary
5608
5837
  }));
5609
- var Rating = React.forwardRef(
5838
+ var Rating = react.forwardRef(
5610
5839
  ({ value, max = 5, readonly = true, size = "md", label, count, onChange, ...props }, ref) => {
5611
5840
  const roundedValue = Math.round(value);
5612
5841
  const meta = label ?? (count !== void 0 ? `(${count})` : void 0);
5613
- return /* @__PURE__ */ jsxRuntime.jsxs(Root12, { ref, "aria-label": `Ocena ${value} z ${max}`, ...props, children: [
5842
+ return /* @__PURE__ */ jsxRuntime.jsxs(Root17, { ref, "aria-label": `Ocena ${value} z ${max}`, ...props, children: [
5614
5843
  /* @__PURE__ */ jsxRuntime.jsx(
5615
5844
  Stars,
5616
5845
  {
@@ -5641,36 +5870,6 @@ var Rating = React.forwardRef(
5641
5870
  }
5642
5871
  );
5643
5872
  Rating.displayName = "Rating";
5644
- var PRESET_MAP = {
5645
- "1/1": 1,
5646
- "4/3": 4 / 3,
5647
- "3/2": 3 / 2,
5648
- "16/9": 16 / 9,
5649
- "21/9": 21 / 9,
5650
- "9/16": 9 / 16,
5651
- "3/4": 3 / 4,
5652
- "2/3": 2 / 3
5653
- };
5654
- var Root13 = styles.styled("div")({
5655
- position: "relative",
5656
- width: "100%",
5657
- "& > *": {
5658
- position: "absolute",
5659
- inset: 0,
5660
- width: "100%",
5661
- height: "100%",
5662
- objectFit: "cover"
5663
- }
5664
- });
5665
- var AspectRatio = React.forwardRef(
5666
- ({ ratio = "16/9", children, style, ...props }, ref) => {
5667
- const numericRatio = typeof ratio === "string" ? PRESET_MAP[ratio] ?? 16 / 9 : ratio;
5668
- const paddingBottom = `${1 / numericRatio * 100}%`;
5669
- return /* @__PURE__ */ jsxRuntime.jsx(Root13, { ref, style: { paddingBottom, ...style }, ...props, children });
5670
- }
5671
- );
5672
- AspectRatio.displayName = "AspectRatio";
5673
- var aspectRatioPresets = Object.keys(PRESET_MAP);
5674
5873
  var DEFAULT_OMNIBUS_LABEL = "Najni\u017Csza cena z ostatnich 30 dni";
5675
5874
  var FONT_SIZE = {
5676
5875
  sm: "0.875rem",
@@ -5678,7 +5877,7 @@ var FONT_SIZE = {
5678
5877
  lg: "1.5rem",
5679
5878
  xl: "2rem"
5680
5879
  };
5681
- var Root14 = styles.styled("div")({
5880
+ var Root18 = styles.styled("div")({
5682
5881
  display: "inline-flex",
5683
5882
  flexDirection: "column",
5684
5883
  gap: "0.25rem"
@@ -5744,7 +5943,7 @@ function formatPrice(amount, currency, locale) {
5744
5943
  function calcDiscount(price, original) {
5745
5944
  return Math.round((1 - price / original) * 100);
5746
5945
  }
5747
- var Price = React.forwardRef(
5946
+ var Price = react.forwardRef(
5748
5947
  ({
5749
5948
  price,
5750
5949
  originalPrice,
@@ -5759,7 +5958,7 @@ var Price = React.forwardRef(
5759
5958
  const onSale = originalPrice !== void 0 && originalPrice > price;
5760
5959
  const discount = onSale ? calcDiscount(price, originalPrice) : 0;
5761
5960
  const showOmnibus = lowestPrice !== void 0;
5762
- return /* @__PURE__ */ jsxRuntime.jsxs(Root14, { ref, ...props, children: [
5961
+ return /* @__PURE__ */ jsxRuntime.jsxs(Root18, { ref, ...props, children: [
5763
5962
  /* @__PURE__ */ jsxRuntime.jsxs(PriceRow, { children: [
5764
5963
  /* @__PURE__ */ jsxRuntime.jsx(
5765
5964
  Current,
@@ -5803,26 +6002,35 @@ var Price = React.forwardRef(
5803
6002
  );
5804
6003
  Price.displayName = "Price";
5805
6004
  var priceSizes = ["sm", "md", "lg", "xl"];
5806
- var Root15 = styles.styled(Card)({
6005
+ var Root19 = styles.styled(Card)({
5807
6006
  display: "flex",
5808
6007
  flexDirection: "column",
5809
6008
  height: "100%",
5810
6009
  overflow: "hidden"
5811
6010
  });
5812
- var ImageWrap = styles.styled("div")({
6011
+ var ImageWrap2 = styles.styled("div")({
5813
6012
  position: "relative",
5814
6013
  margin: "-1.5rem -1.5rem 1rem"
5815
6014
  });
5816
- var Image = styles.styled("img")(({ theme }) => ({
6015
+ var Image2 = styles.styled("img")(({ theme }) => ({
5817
6016
  objectFit: "cover",
5818
6017
  backgroundColor: theme.palette.action.hover
5819
6018
  }));
6019
+ var ImagePlaceholder2 = styles.styled("div")(({ theme }) => ({
6020
+ width: "100%",
6021
+ height: "100%",
6022
+ backgroundColor: theme.palette.action.hover,
6023
+ display: "flex",
6024
+ alignItems: "center",
6025
+ justifyContent: "center",
6026
+ color: theme.palette.text.disabled
6027
+ }));
5820
6028
  var BadgeSlot = styles.styled("div")({
5821
6029
  position: "absolute",
5822
6030
  left: "0.75rem",
5823
6031
  top: "0.75rem"
5824
6032
  });
5825
- var Name = styles.styled("h3")(({ theme }) => ({
6033
+ var Name2 = styles.styled("h3")(({ theme }) => ({
5826
6034
  margin: 0,
5827
6035
  color: theme.palette.text.primary,
5828
6036
  fontFamily: theme.typography.fontFamily,
@@ -5836,7 +6044,7 @@ var Footer = styles.styled("div")({
5836
6044
  marginTop: "auto",
5837
6045
  paddingTop: "1rem"
5838
6046
  });
5839
- var ProductCard = React.forwardRef(
6047
+ var ProductCard = react.forwardRef(
5840
6048
  ({
5841
6049
  name,
5842
6050
  imageUrl,
@@ -5853,12 +6061,12 @@ var ProductCard = React.forwardRef(
5853
6061
  ctaLabel = "Dodaj do koszyka",
5854
6062
  onAddToCart,
5855
6063
  ...props
5856
- }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(Root15, { ref, variant: "default", padding: "md", rounded: "lg", ...props, children: [
5857
- /* @__PURE__ */ jsxRuntime.jsx(ImageWrap, { children: /* @__PURE__ */ jsxRuntime.jsxs(AspectRatio, { ratio: "4/3", children: [
5858
- /* @__PURE__ */ jsxRuntime.jsx(Image, { src: imageUrl, alt: imageAlt ?? name }),
5859
- badge && /* @__PURE__ */ jsxRuntime.jsx(BadgeSlot, { children: /* @__PURE__ */ jsxRuntime.jsx(Badge, { variant: badgeVariant, children: badge }) })
6064
+ }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(Root19, { ref, variant: "default", padding: "md", rounded: "lg", ...props, children: [
6065
+ /* @__PURE__ */ jsxRuntime.jsx(ImageWrap2, { children: /* @__PURE__ */ jsxRuntime.jsxs(AspectRatio, { ratio: "4/3", children: [
6066
+ imageUrl ? /* @__PURE__ */ jsxRuntime.jsx(Image2, { src: imageUrl, alt: imageAlt ?? name }) : /* @__PURE__ */ jsxRuntime.jsx(ImagePlaceholder2, { "aria-label": imageAlt ?? name, children: /* @__PURE__ */ jsxRuntime.jsx(ImageIcon__default.default, { style: { fontSize: 48 } }) }),
6067
+ badge && /* @__PURE__ */ jsxRuntime.jsx(BadgeSlot, { children: /* @__PURE__ */ jsxRuntime.jsx(Badge2, { variant: badgeVariant, children: badge }) })
5860
6068
  ] }) }),
5861
- /* @__PURE__ */ jsxRuntime.jsx(Name, { children: name }),
6069
+ /* @__PURE__ */ jsxRuntime.jsx(Name2, { children: name }),
5862
6070
  rating !== void 0 && /* @__PURE__ */ jsxRuntime.jsx(Rating, { value: rating, count: reviewCount, size: "sm" }),
5863
6071
  /* @__PURE__ */ jsxRuntime.jsx(
5864
6072
  Price,
@@ -5871,53 +6079,179 @@ var ProductCard = React.forwardRef(
5871
6079
  style: { marginTop: "0.5rem" }
5872
6080
  }
5873
6081
  ),
5874
- /* @__PURE__ */ jsxRuntime.jsx(Footer, { children: /* @__PURE__ */ jsxRuntime.jsx(Button, { fullWidth: true, onClick: onAddToCart, children: ctaLabel }) })
6082
+ /* @__PURE__ */ jsxRuntime.jsx(Footer, { children: /* @__PURE__ */ jsxRuntime.jsx(Button, { fullWidth: true, onClick: (e) => {
6083
+ e.stopPropagation();
6084
+ onAddToCart?.();
6085
+ }, children: ctaLabel }) })
5875
6086
  ] })
5876
6087
  );
5877
6088
  ProductCard.displayName = "ProductCard";
5878
- var ImageWrapper = styles.styled("div", {
5879
- shouldForwardProp: (prop) => prop !== "$ar"
5880
- })(({ $ar }) => ({
5881
- position: "relative",
6089
+ var COLLAPSE_AT = "480px";
6090
+ var ContainerRoot = styles.styled("div")({
6091
+ containerType: "inline-size",
5882
6092
  width: "100%",
5883
- aspectRatio: $ar,
5884
- overflow: "hidden",
5885
- flexShrink: 0
5886
- }));
5887
- var Img = styles.styled("img")({
6093
+ height: "100%"
6094
+ });
6095
+ var Inner = styles.styled("div")({
6096
+ display: "flex",
6097
+ flexDirection: "row",
6098
+ height: "100%",
6099
+ [`@container (max-width: ${COLLAPSE_AT})`]: {
6100
+ flexDirection: "column"
6101
+ }
6102
+ });
6103
+ var ImageWrap3 = styles.styled("div")({
6104
+ position: "relative",
6105
+ flexShrink: 0,
6106
+ width: "clamp(120px, 33%, 200px)",
6107
+ alignSelf: "stretch",
6108
+ margin: "-1.5rem 1rem -1.5rem -1.5rem",
6109
+ [`@container (max-width: ${COLLAPSE_AT})`]: {
6110
+ width: "auto",
6111
+ alignSelf: "auto",
6112
+ margin: "-1.5rem -1.5rem 1rem",
6113
+ aspectRatio: "4 / 3"
6114
+ }
6115
+ });
6116
+ var Image3 = styles.styled("img")(({ theme }) => ({
6117
+ position: "absolute",
6118
+ inset: 0,
5888
6119
  width: "100%",
5889
6120
  height: "100%",
5890
6121
  objectFit: "cover",
5891
- display: "block"
5892
- });
5893
- var Placeholder2 = styles.styled("div")(({ theme }) => ({
6122
+ backgroundColor: theme.palette.action.hover
6123
+ }));
6124
+ var ImagePlaceholder3 = styles.styled("div")(({ theme }) => ({
6125
+ position: "absolute",
6126
+ inset: 0,
5894
6127
  width: "100%",
5895
6128
  height: "100%",
6129
+ backgroundColor: theme.palette.action.hover,
5896
6130
  display: "flex",
5897
6131
  alignItems: "center",
5898
6132
  justifyContent: "center",
5899
- backgroundColor: theme.palette.action.hover
6133
+ color: theme.palette.text.disabled
5900
6134
  }));
5901
- var Overlay = styles.styled("div")({
6135
+ var BadgeSlot2 = styles.styled("div")({
5902
6136
  position: "absolute",
5903
- inset: 0,
5904
- background: "linear-gradient(to bottom, rgba(0,0,0,0.3) 0%, transparent 50%)",
5905
- pointerEvents: "none"
6137
+ left: "0.75rem",
6138
+ top: "0.75rem",
6139
+ zIndex: 1
5906
6140
  });
5907
- var FileTextIcon = () => /* @__PURE__ */ jsxRuntime.jsx(ArticleIcon__default.default, { "aria-hidden": "true", style: { fontSize: 32, opacity: 0.3 } });
5908
- function toAspectRatioCss(ratio) {
5909
- if (typeof ratio === "number") return String(ratio);
5910
- return ratio.replace("/", " / ");
5911
- }
5912
- var PostCardImage = ({
5913
- src,
5914
- alt = "",
5915
- aspectRatio = "4/3",
5916
- overlay = false,
5917
- className,
6141
+ var Content2 = styles.styled("div")({
6142
+ display: "flex",
6143
+ flexDirection: "column",
6144
+ flex: 1,
6145
+ minWidth: 0
6146
+ });
6147
+ var Name3 = styles.styled("h3")(({ theme }) => ({
6148
+ margin: 0,
6149
+ color: theme.palette.text.primary,
6150
+ fontFamily: theme.typography.fontFamily,
6151
+ fontSize: "1rem",
6152
+ fontWeight: 700,
6153
+ lineHeight: 1.4
6154
+ }));
6155
+ var Footer2 = styles.styled("div")({
6156
+ display: "grid",
6157
+ gap: "1rem",
6158
+ marginTop: "auto",
6159
+ paddingTop: "1rem"
6160
+ });
6161
+ var ProductCardHorizontal = react.forwardRef(
6162
+ ({
6163
+ name,
6164
+ imageUrl,
6165
+ imageAlt,
6166
+ price,
6167
+ originalPrice,
6168
+ currency,
6169
+ locale,
6170
+ lowestPrice,
6171
+ badge,
6172
+ badgeVariant = "success",
6173
+ rating,
6174
+ reviewCount,
6175
+ ctaLabel = "Dodaj do koszyka",
6176
+ onAddToCart,
6177
+ ...props
6178
+ }, ref) => /* @__PURE__ */ jsxRuntime.jsx(Card, { ref, variant: "default", padding: "md", rounded: "lg", ...props, children: /* @__PURE__ */ jsxRuntime.jsx(ContainerRoot, { children: /* @__PURE__ */ jsxRuntime.jsxs(Inner, { children: [
6179
+ /* @__PURE__ */ jsxRuntime.jsxs(ImageWrap3, { children: [
6180
+ imageUrl ? /* @__PURE__ */ jsxRuntime.jsx(Image3, { src: imageUrl, alt: imageAlt ?? name }) : /* @__PURE__ */ jsxRuntime.jsx(ImagePlaceholder3, { "aria-label": imageAlt ?? name, children: /* @__PURE__ */ jsxRuntime.jsx(ImageIcon__default.default, { style: { fontSize: 48 } }) }),
6181
+ badge && /* @__PURE__ */ jsxRuntime.jsx(BadgeSlot2, { children: /* @__PURE__ */ jsxRuntime.jsx(Badge2, { variant: badgeVariant, children: badge }) })
6182
+ ] }),
6183
+ /* @__PURE__ */ jsxRuntime.jsxs(Content2, { children: [
6184
+ /* @__PURE__ */ jsxRuntime.jsx(Name3, { children: name }),
6185
+ rating !== void 0 && /* @__PURE__ */ jsxRuntime.jsx(Rating, { value: rating, count: reviewCount, size: "sm" }),
6186
+ /* @__PURE__ */ jsxRuntime.jsx(
6187
+ Price,
6188
+ {
6189
+ price,
6190
+ originalPrice,
6191
+ currency,
6192
+ locale,
6193
+ lowestPrice,
6194
+ style: { marginTop: "0.5rem" }
6195
+ }
6196
+ ),
6197
+ /* @__PURE__ */ jsxRuntime.jsx(Footer2, { children: /* @__PURE__ */ jsxRuntime.jsx(
6198
+ Button,
6199
+ {
6200
+ fullWidth: true,
6201
+ onClick: (e) => {
6202
+ e.stopPropagation();
6203
+ onAddToCart?.();
6204
+ },
6205
+ children: ctaLabel
6206
+ }
6207
+ ) })
6208
+ ] })
6209
+ ] }) }) })
6210
+ );
6211
+ ProductCardHorizontal.displayName = "ProductCardHorizontal";
6212
+ var ImageWrapper = styles.styled("div", {
6213
+ shouldForwardProp: (prop) => prop !== "$ar"
6214
+ })(({ $ar }) => ({
6215
+ position: "relative",
6216
+ width: "100%",
6217
+ aspectRatio: $ar,
6218
+ overflow: "hidden",
6219
+ flexShrink: 0
6220
+ }));
6221
+ var Img = styles.styled("img")({
6222
+ width: "100%",
6223
+ height: "100%",
6224
+ objectFit: "cover",
6225
+ display: "block"
6226
+ });
6227
+ var Placeholder2 = styles.styled("div")(({ theme }) => ({
6228
+ width: "100%",
6229
+ height: "100%",
6230
+ display: "flex",
6231
+ alignItems: "center",
6232
+ justifyContent: "center",
6233
+ backgroundColor: theme.palette.action.hover
6234
+ }));
6235
+ var Overlay = styles.styled("div")({
6236
+ position: "absolute",
6237
+ inset: 0,
6238
+ background: "linear-gradient(to bottom, rgba(0,0,0,0.3) 0%, transparent 50%)",
6239
+ pointerEvents: "none"
6240
+ });
6241
+ var FileTextIcon = () => /* @__PURE__ */ jsxRuntime.jsx(ArticleIcon__default.default, { "aria-hidden": "true", style: { fontSize: 32, opacity: 0.3 } });
6242
+ function toAspectRatioCss(ratio) {
6243
+ if (typeof ratio === "number") return String(ratio);
6244
+ return ratio.replace("/", " / ");
6245
+ }
6246
+ var PostCardImage = ({
6247
+ src,
6248
+ alt = "",
6249
+ aspectRatio = "4/3",
6250
+ overlay = false,
6251
+ className,
5918
6252
  style
5919
6253
  }) => {
5920
- const [imgError, setImgError] = React.useState(false);
6254
+ const [imgError, setImgError] = react.useState(false);
5921
6255
  const showPlaceholder = !src || imgError;
5922
6256
  return /* @__PURE__ */ jsxRuntime.jsxs(ImageWrapper, { $ar: toAspectRatioCss(aspectRatio), className, style, children: [
5923
6257
  showPlaceholder ? /* @__PURE__ */ jsxRuntime.jsx(Placeholder2, { children: /* @__PURE__ */ jsxRuntime.jsx(FileTextIcon, {}) }) : /* @__PURE__ */ jsxRuntime.jsx(Img, { src, alt, onError: () => setImgError(true) }),
@@ -5995,7 +6329,7 @@ var StyledInner = styles.styled("div", {
5995
6329
  height: "100%",
5996
6330
  ...getLayoutStyles($variant)
5997
6331
  }));
5998
- var CardLink = styles.styled("a")(({ theme }) => ({
6332
+ var CardLink2 = styles.styled("a")(({ theme }) => ({
5999
6333
  display: "block",
6000
6334
  textDecoration: "none",
6001
6335
  color: "inherit",
@@ -6080,7 +6414,7 @@ var FeaturedImageWrapper = styles.styled("div")({
6080
6414
  aspectRatio: "auto"
6081
6415
  }
6082
6416
  });
6083
- var PostCard = React.forwardRef(
6417
+ var PostCard = react.forwardRef(
6084
6418
  ({
6085
6419
  title,
6086
6420
  excerpt,
@@ -6101,13 +6435,13 @@ var PostCard = React.forwardRef(
6101
6435
  isFeatured && showImage && /* @__PURE__ */ jsxRuntime.jsx(FeaturedImageWrapper, { children: /* @__PURE__ */ jsxRuntime.jsx(PostCardImage, { src: imageUrl, alt: imageAlt, aspectRatio: "16/9", overlay: true }) }),
6102
6436
  !isFeatured && showImage && (isHorizontal ? /* @__PURE__ */ jsxRuntime.jsx(HorizontalImageWrapper, { children: /* @__PURE__ */ jsxRuntime.jsx(PostCardImage, { src: imageUrl, alt: imageAlt, aspectRatio: "4/3" }) }) : /* @__PURE__ */ jsxRuntime.jsx(PostCardImage, { src: imageUrl, alt: imageAlt, aspectRatio: "16/9" })),
6103
6437
  /* @__PURE__ */ jsxRuntime.jsxs(StyledContent, { $variant: variant, children: [
6104
- category && /* @__PURE__ */ jsxRuntime.jsx("div", { children: /* @__PURE__ */ jsxRuntime.jsx(Badge, { variant: isFeatured ? "ghost" : "default", children: category }) }),
6438
+ category && /* @__PURE__ */ jsxRuntime.jsx("div", { children: /* @__PURE__ */ jsxRuntime.jsx(Badge2, { variant: isFeatured ? "ghost" : "default", children: category }) }),
6105
6439
  /* @__PURE__ */ jsxRuntime.jsx(StyledTitle, { className: "post-card-title", $featured: isFeatured, children: title }),
6106
6440
  excerpt && variant !== "compact" && !isFeatured && /* @__PURE__ */ jsxRuntime.jsx(StyledExcerpt, { children: excerpt }),
6107
6441
  (date || author) && /* @__PURE__ */ jsxRuntime.jsx(PostCardMeta, { date, author, inverted: isFeatured })
6108
6442
  ] })
6109
6443
  ] });
6110
- return /* @__PURE__ */ jsxRuntime.jsx(Card, { ref, variant: cardVariant, padding: "none", rounded: "lg", ...rest, children: /* @__PURE__ */ jsxRuntime.jsx(StyledRoot, { children: href ? /* @__PURE__ */ jsxRuntime.jsx(CardLink, { href, "aria-label": title, children: inner }) : inner }) });
6444
+ return /* @__PURE__ */ jsxRuntime.jsx(Card, { ref, variant: cardVariant, padding: "none", rounded: "lg", ...rest, children: /* @__PURE__ */ jsxRuntime.jsx(StyledRoot, { children: href ? /* @__PURE__ */ jsxRuntime.jsx(CardLink2, { href, "aria-label": title, children: inner }) : inner }) });
6111
6445
  }
6112
6446
  );
6113
6447
  PostCard.displayName = "PostCard";
@@ -6119,7 +6453,7 @@ var postCardVariants = [
6119
6453
  "featured",
6120
6454
  "compact"
6121
6455
  ];
6122
- var Root16 = styles.styled(Card)({
6456
+ var Root20 = styles.styled(Card)({
6123
6457
  display: "flex",
6124
6458
  flexDirection: "column",
6125
6459
  height: "100%"
@@ -6130,7 +6464,7 @@ var NameRow = styles.styled("div")({
6130
6464
  justifyContent: "space-between",
6131
6465
  marginBottom: "0.75rem"
6132
6466
  });
6133
- var Name2 = styles.styled("p")(({ theme }) => ({
6467
+ var Name4 = styles.styled("p")(({ theme }) => ({
6134
6468
  margin: 0,
6135
6469
  fontFamily: theme.typography.fontFamily,
6136
6470
  fontWeight: 600,
@@ -6231,7 +6565,7 @@ function CheckIcon3() {
6231
6565
  function XIcon3() {
6232
6566
  return /* @__PURE__ */ jsxRuntime.jsx(HighlightOffIcon__default.default, { "aria-hidden": "true", style: { fontSize: 16, flexShrink: 0 } });
6233
6567
  }
6234
- var PricingCard = React.forwardRef(
6568
+ var PricingCard = react.forwardRef(
6235
6569
  ({
6236
6570
  name,
6237
6571
  price,
@@ -6250,10 +6584,10 @@ var PricingCard = React.forwardRef(
6250
6584
  }, ref) => {
6251
6585
  const resolvedCardVariant = cardVariant ?? (popular ? "gradient-primary" : "default");
6252
6586
  const resolvedCtaVariant = ctaVariant ?? (popular ? "primary" : "ghost");
6253
- return /* @__PURE__ */ jsxRuntime.jsxs(Root16, { ref, variant: resolvedCardVariant, padding: "lg", rounded: "lg", ...props, children: [
6587
+ return /* @__PURE__ */ jsxRuntime.jsxs(Root20, { ref, variant: resolvedCardVariant, padding: "lg", rounded: "lg", ...props, children: [
6254
6588
  /* @__PURE__ */ jsxRuntime.jsxs(NameRow, { children: [
6255
- /* @__PURE__ */ jsxRuntime.jsx(Name2, { children: name }),
6256
- popular && /* @__PURE__ */ jsxRuntime.jsx(Badge, { variant: "default", children: popularLabel })
6589
+ /* @__PURE__ */ jsxRuntime.jsx(Name4, { children: name }),
6590
+ popular && /* @__PURE__ */ jsxRuntime.jsx(Badge2, { variant: "default", children: popularLabel })
6257
6591
  ] }),
6258
6592
  /* @__PURE__ */ jsxRuntime.jsxs(PriceRow2, { children: [
6259
6593
  currency && /* @__PURE__ */ jsxRuntime.jsx(Currency, { children: currency }),
@@ -6276,7 +6610,7 @@ var PricingCard = React.forwardRef(
6276
6610
  }
6277
6611
  );
6278
6612
  PricingCard.displayName = "PricingCard";
6279
- var Root17 = styles.styled(Card, {
6613
+ var Root21 = styles.styled(Card, {
6280
6614
  shouldForwardProp: (prop) => prop !== "$align"
6281
6615
  })(({ $align }) => ({
6282
6616
  textAlign: $align,
@@ -6305,15 +6639,15 @@ var Description3 = styles.styled("p")(({ theme }) => ({
6305
6639
  color: theme.palette.text.secondary,
6306
6640
  lineHeight: 1.5
6307
6641
  }));
6308
- var StatCard = React.forwardRef(
6309
- ({ stat, cardVariant = "default", align = "center", ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(Root17, { ref, variant: cardVariant, padding: "lg", rounded: "lg", $align: align, ...props, children: [
6642
+ var StatCard = react.forwardRef(
6643
+ ({ stat, cardVariant = "default", align = "center", ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(Root21, { ref, variant: cardVariant, padding: "lg", rounded: "lg", $align: align, ...props, children: [
6310
6644
  /* @__PURE__ */ jsxRuntime.jsx(Value, { children: stat.value }),
6311
6645
  /* @__PURE__ */ jsxRuntime.jsx(Label3, { children: stat.label }),
6312
6646
  stat.description && /* @__PURE__ */ jsxRuntime.jsx(Description3, { children: stat.description })
6313
6647
  ] })
6314
6648
  );
6315
6649
  StatCard.displayName = "StatCard";
6316
- var Root18 = styles.styled(Card)({
6650
+ var Root22 = styles.styled(Card)({
6317
6651
  display: "flex",
6318
6652
  flexDirection: "column",
6319
6653
  gap: "1.25rem",
@@ -6339,7 +6673,7 @@ var Quote = styles.styled("blockquote")(({ theme }) => ({
6339
6673
  marginLeft: "0.125rem"
6340
6674
  }
6341
6675
  }));
6342
- var Footer2 = styles.styled("div")({
6676
+ var Footer3 = styles.styled("div")({
6343
6677
  display: "flex",
6344
6678
  alignItems: "center",
6345
6679
  gap: "0.75rem"
@@ -6367,13 +6701,13 @@ var AuthorRole = styles.styled("p")(({ theme }) => ({
6367
6701
  fontSize: "0.8125rem",
6368
6702
  color: theme.palette.text.secondary
6369
6703
  }));
6370
- var TestimonialCard = React.forwardRef(
6704
+ var TestimonialCard = react.forwardRef(
6371
6705
  ({ testimonial, cardVariant = "default", ...props }, ref) => {
6372
6706
  const initials = testimonial.authorInitials ?? testimonial.authorName.split(" ").filter(Boolean).slice(0, 2).map((p) => p[0]).join("").toUpperCase();
6373
- return /* @__PURE__ */ jsxRuntime.jsxs(Root18, { ref, variant: cardVariant, padding: "lg", rounded: "lg", ...props, children: [
6707
+ return /* @__PURE__ */ jsxRuntime.jsxs(Root22, { ref, variant: cardVariant, padding: "lg", rounded: "lg", ...props, children: [
6374
6708
  testimonial.rating && /* @__PURE__ */ jsxRuntime.jsx(Rating, { value: testimonial.rating, readonly: true, size: "sm" }),
6375
6709
  /* @__PURE__ */ jsxRuntime.jsx(Quote, { children: testimonial.quote }),
6376
- /* @__PURE__ */ jsxRuntime.jsxs(Footer2, { children: [
6710
+ /* @__PURE__ */ jsxRuntime.jsxs(Footer3, { children: [
6377
6711
  testimonial.authorAvatarUrl ? /* @__PURE__ */ jsxRuntime.jsx(AvatarImage, { src: testimonial.authorAvatarUrl, alt: testimonial.authorName }) : /* @__PURE__ */ jsxRuntime.jsx(Avatar, { initials, size: "md", color: "primary" }),
6378
6712
  /* @__PURE__ */ jsxRuntime.jsxs(AuthorInfo, { children: [
6379
6713
  /* @__PURE__ */ jsxRuntime.jsx(AuthorName, { children: testimonial.authorName }),
@@ -6384,7 +6718,7 @@ var TestimonialCard = React.forwardRef(
6384
6718
  }
6385
6719
  );
6386
6720
  TestimonialCard.displayName = "TestimonialCard";
6387
- var Root19 = styles.styled(Card)(({ theme }) => ({
6721
+ var Root23 = styles.styled(Card)(({ theme }) => ({
6388
6722
  display: "flex",
6389
6723
  alignItems: "center",
6390
6724
  gap: "1rem",
@@ -6403,10 +6737,10 @@ var AvatarImage2 = styles.styled("img")({
6403
6737
  borderRadius: "50%",
6404
6738
  objectFit: "cover"
6405
6739
  });
6406
- var Content = styles.styled("div")({
6740
+ var Content3 = styles.styled("div")({
6407
6741
  minWidth: 0
6408
6742
  });
6409
- var Name3 = styles.styled("h3")(({ theme }) => ({
6743
+ var Name5 = styles.styled("h3")(({ theme }) => ({
6410
6744
  margin: 0,
6411
6745
  color: theme.palette.text.primary,
6412
6746
  fontFamily: theme.typography.fontFamily,
@@ -6427,11 +6761,11 @@ function getInitials(member) {
6427
6761
  }
6428
6762
  return member.name.split(" ").filter(Boolean).slice(0, 2).map((part) => part[0]).join("").toUpperCase();
6429
6763
  }
6430
- var TeamMemberCard = React.forwardRef(
6431
- ({ member, cardVariant = "default", ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(Root19, { ref, variant: cardVariant, padding: "lg", rounded: "lg", ...props, children: [
6764
+ var TeamMemberCard = react.forwardRef(
6765
+ ({ member, cardVariant = "default", ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(Root23, { ref, variant: cardVariant, padding: "lg", rounded: "lg", ...props, children: [
6432
6766
  member.avatarUrl ? /* @__PURE__ */ jsxRuntime.jsx(AvatarImage2, { src: member.avatarUrl, alt: member.avatarAlt ?? member.name }) : /* @__PURE__ */ jsxRuntime.jsx(Avatar, { initials: getInitials(member), size: "xl", color: member.avatarColor ?? "primary" }),
6433
- /* @__PURE__ */ jsxRuntime.jsxs(Content, { children: [
6434
- /* @__PURE__ */ jsxRuntime.jsx(Name3, { children: member.name }),
6767
+ /* @__PURE__ */ jsxRuntime.jsxs(Content3, { children: [
6768
+ /* @__PURE__ */ jsxRuntime.jsx(Name5, { children: member.name }),
6435
6769
  /* @__PURE__ */ jsxRuntime.jsx(Role, { children: member.role })
6436
6770
  ] })
6437
6771
  ] })
@@ -6609,8 +6943,143 @@ function CompareTool({
6609
6943
  }) })
6610
6944
  ] }) });
6611
6945
  }
6946
+ function calcTimeLeft(target) {
6947
+ const diff = new Date(target).getTime() - Date.now();
6948
+ if (diff <= 0) return null;
6949
+ return {
6950
+ days: Math.floor(diff / 864e5),
6951
+ hours: Math.floor(diff % 864e5 / 36e5),
6952
+ minutes: Math.floor(diff % 36e5 / 6e4),
6953
+ seconds: Math.floor(diff % 6e4 / 1e3)
6954
+ };
6955
+ }
6956
+ function pad(n) {
6957
+ return String(n).padStart(2, "0");
6958
+ }
6959
+ var Root24 = styles.styled("div", {
6960
+ shouldForwardProp: (prop) => prop !== "$variant"
6961
+ })(({ theme, $variant }) => ({
6962
+ display: "inline-flex",
6963
+ alignItems: "center",
6964
+ justifyContent: "space-between",
6965
+ flexWrap: "wrap",
6966
+ gap: "0.5rem",
6967
+ fontFamily: theme.typography.fontFamily,
6968
+ ...$variant === "card" && {
6969
+ backgroundColor: theme.palette.background.paper,
6970
+ border: `1px solid ${theme.palette.divider}`,
6971
+ borderRadius: theme.shape.borderRadius,
6972
+ padding: "1rem 1.5rem"
6973
+ },
6974
+ ...$variant === "banner" && {
6975
+ backgroundColor: theme.palette.error.main,
6976
+ color: "#fff",
6977
+ borderRadius: theme.shape.borderRadius,
6978
+ padding: "0.75rem 1.25rem"
6979
+ }
6980
+ }));
6981
+ var TimerLabel = styles.styled("span", {
6982
+ shouldForwardProp: (prop) => prop !== "$variant"
6983
+ })(({ theme, $variant }) => ({
6984
+ fontSize: "0.875rem",
6985
+ fontWeight: 600,
6986
+ color: $variant === "banner" ? "rgba(255,255,255,0.85)" : theme.palette.text.secondary,
6987
+ marginRight: "0.25rem"
6988
+ }));
6989
+ var Segments = styles.styled("div")({
6990
+ display: "flex",
6991
+ alignItems: "center",
6992
+ gap: "0.25rem"
6993
+ });
6994
+ var Segment = styles.styled("div", {
6995
+ shouldForwardProp: (prop) => prop !== "$variant"
6996
+ })(({ theme, $variant }) => ({
6997
+ display: "flex",
6998
+ flexDirection: "column",
6999
+ alignItems: "center",
7000
+ minWidth: "2.5rem",
7001
+ ...$variant === "card" && {
7002
+ backgroundColor: theme.palette.action.hover,
7003
+ borderRadius: "0.375rem",
7004
+ padding: "0.375rem 0.5rem"
7005
+ }
7006
+ }));
7007
+ var Value2 = styles.styled("span", {
7008
+ shouldForwardProp: (prop) => prop !== "$variant"
7009
+ })(({ $variant }) => ({
7010
+ fontSize: $variant === "inline" ? "1rem" : "1.5rem",
7011
+ fontWeight: 700,
7012
+ lineHeight: 1,
7013
+ color: $variant === "banner" ? "#fff" : "inherit"
7014
+ }));
7015
+ var Unit = styles.styled("span", {
7016
+ shouldForwardProp: (prop) => prop !== "$variant"
7017
+ })(({ theme, $variant }) => ({
7018
+ fontSize: "0.6875rem",
7019
+ color: $variant === "banner" ? "rgba(255,255,255,0.7)" : theme.palette.text.secondary,
7020
+ marginTop: "0.125rem"
7021
+ }));
7022
+ var Colon = styles.styled("span", {
7023
+ shouldForwardProp: (prop) => prop !== "$variant"
7024
+ })(({ theme, $variant }) => ({
7025
+ fontSize: $variant === "inline" ? "1rem" : "1.5rem",
7026
+ fontWeight: 700,
7027
+ color: $variant === "banner" ? "rgba(255,255,255,0.6)" : theme.palette.text.disabled,
7028
+ alignSelf: $variant === "card" ? "flex-start" : "center",
7029
+ marginTop: $variant === "card" ? "0.375rem" : 0
7030
+ }));
7031
+ var UNITS = ["dni", "godz", "min", "sek"];
7032
+ var CountdownTimer = react.forwardRef(
7033
+ ({
7034
+ targetDate,
7035
+ variant = "inline",
7036
+ label,
7037
+ expiredLabel = "Promocja zako\u0144czona",
7038
+ onExpire,
7039
+ ...props
7040
+ }, ref) => {
7041
+ const [timeLeft, setTimeLeft] = react.useState(() => calcTimeLeft(targetDate));
7042
+ react.useEffect(() => {
7043
+ const id = setInterval(() => {
7044
+ const tl = calcTimeLeft(targetDate);
7045
+ setTimeLeft(tl);
7046
+ if (!tl) {
7047
+ clearInterval(id);
7048
+ onExpire?.();
7049
+ }
7050
+ }, 1e3);
7051
+ return () => clearInterval(id);
7052
+ }, [targetDate, onExpire]);
7053
+ if (!timeLeft) {
7054
+ return /* @__PURE__ */ jsxRuntime.jsx(Root24, { ref, $variant: variant, ...props, children: /* @__PURE__ */ jsxRuntime.jsx(TimerLabel, { $variant: variant, children: expiredLabel }) });
7055
+ }
7056
+ const parts = [timeLeft.days, timeLeft.hours, timeLeft.minutes, timeLeft.seconds];
7057
+ return /* @__PURE__ */ jsxRuntime.jsxs(
7058
+ Root24,
7059
+ {
7060
+ ref,
7061
+ $variant: variant,
7062
+ "aria-live": "polite",
7063
+ "aria-label": `Czas do ko\u0144ca promocji`,
7064
+ ...props,
7065
+ children: [
7066
+ label && /* @__PURE__ */ jsxRuntime.jsx(TimerLabel, { $variant: variant, children: label }),
7067
+ /* @__PURE__ */ jsxRuntime.jsx(Segments, { children: parts.map((val, i) => /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { display: "contents" }, children: [
7068
+ i > 0 && /* @__PURE__ */ jsxRuntime.jsx(Colon, { $variant: variant, children: ":" }),
7069
+ /* @__PURE__ */ jsxRuntime.jsxs(Segment, { $variant: variant, children: [
7070
+ /* @__PURE__ */ jsxRuntime.jsx(Value2, { $variant: variant, children: pad(val) }),
7071
+ variant !== "inline" && /* @__PURE__ */ jsxRuntime.jsx(Unit, { $variant: variant, children: UNITS[i] })
7072
+ ] })
7073
+ ] }, UNITS[i])) })
7074
+ ]
7075
+ }
7076
+ );
7077
+ }
7078
+ );
7079
+ CountdownTimer.displayName = "CountdownTimer";
7080
+ var countdownTimerVariants = ["inline", "card", "banner"];
6612
7081
  var spin2 = styles.keyframes`to { transform: rotate(360deg); }`;
6613
- var Root20 = styles.styled("div")({
7082
+ var Root25 = styles.styled("div")({
6614
7083
  display: "flex",
6615
7084
  flexDirection: "column",
6616
7085
  gap: "0.5rem"
@@ -6746,7 +7215,7 @@ function CouponInput({
6746
7215
  successMessage,
6747
7216
  className
6748
7217
  }) {
6749
- const id = React.useId();
7218
+ const id = react.useId();
6750
7219
  const errorId = `${id}-error`;
6751
7220
  const successId = `${id}-success`;
6752
7221
  const isDisabled = disabled || loading;
@@ -6757,7 +7226,7 @@ function CouponInput({
6757
7226
  if (e.key === "Enter") handleApply();
6758
7227
  };
6759
7228
  if (appliedCode) {
6760
- return /* @__PURE__ */ jsxRuntime.jsxs(Root20, { className, children: [
7229
+ return /* @__PURE__ */ jsxRuntime.jsxs(Root25, { className, children: [
6761
7230
  /* @__PURE__ */ jsxRuntime.jsxs(AppliedRow, { role: "status", "aria-label": `Kod rabatowy ${appliedCode} zastosowany`, children: [
6762
7231
  /* @__PURE__ */ jsxRuntime.jsx(AppliedCode, { children: appliedCode }),
6763
7232
  onRemove && /* @__PURE__ */ jsxRuntime.jsx(
@@ -6776,7 +7245,7 @@ function CouponInput({
6776
7245
  ] })
6777
7246
  ] });
6778
7247
  }
6779
- return /* @__PURE__ */ jsxRuntime.jsxs(Root20, { className, children: [
7248
+ return /* @__PURE__ */ jsxRuntime.jsxs(Root25, { className, children: [
6780
7249
  /* @__PURE__ */ jsxRuntime.jsxs(InputRow, { $hasError: Boolean(error), $applied: false, children: [
6781
7250
  /* @__PURE__ */ jsxRuntime.jsx(
6782
7251
  Input,
@@ -6808,7 +7277,82 @@ function CouponInput({
6808
7277
  error && /* @__PURE__ */ jsxRuntime.jsx(Message, { $type: "error", id: errorId, role: "alert", children: error })
6809
7278
  ] });
6810
7279
  }
6811
- var Root21 = styles.styled("div")({
7280
+ var Root26 = styles.styled("div")({
7281
+ display: "flex",
7282
+ flexDirection: "column",
7283
+ gap: "0.5rem"
7284
+ });
7285
+ var GroupLabel = styles.styled("span")(({ theme }) => ({
7286
+ fontSize: "0.875rem",
7287
+ fontWeight: 600,
7288
+ color: theme.palette.text.primary,
7289
+ fontFamily: theme.typography.fontFamily
7290
+ }));
7291
+ var MethodLabel = styles.styled("label", {
7292
+ shouldForwardProp: (prop) => prop !== "$selected"
7293
+ })(({ theme, $selected }) => ({
7294
+ display: "flex",
7295
+ alignItems: "center",
7296
+ gap: "0.875rem",
7297
+ padding: "0.875rem 1rem",
7298
+ border: `${$selected ? 2 : 1}px solid ${$selected ? theme.palette.primary.main : theme.palette.divider}`,
7299
+ borderRadius: theme.shape.borderRadius,
7300
+ cursor: "pointer",
7301
+ backgroundColor: $selected ? `${theme.palette.primary.main}08` : theme.palette.background.paper,
7302
+ transition: "border-color 150ms ease, background-color 150ms ease",
7303
+ fontFamily: theme.typography.fontFamily,
7304
+ "&:hover": { borderColor: theme.palette.primary.main }
7305
+ }));
7306
+ var Radio = styles.styled("input")({
7307
+ width: "1rem",
7308
+ height: "1rem",
7309
+ flexShrink: 0,
7310
+ cursor: "pointer"
7311
+ });
7312
+ var IconWrap = styles.styled("span")(({ theme }) => ({
7313
+ color: theme.palette.text.secondary,
7314
+ display: "flex"
7315
+ }));
7316
+ var Info = styles.styled("div")({ flex: 1 });
7317
+ var Name6 = styles.styled("div")(({ theme }) => ({
7318
+ fontSize: "0.9375rem",
7319
+ fontWeight: 600,
7320
+ color: theme.palette.text.primary
7321
+ }));
7322
+ var Desc = styles.styled("div")(({ theme }) => ({
7323
+ fontSize: "0.8125rem",
7324
+ color: theme.palette.text.secondary,
7325
+ marginTop: "0.125rem"
7326
+ }));
7327
+ var PaymentMethodSelector = react.forwardRef(
7328
+ ({ methods, value, onChange, label = "Metoda p\u0142atno\u015Bci", disabled, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(Root26, { ref, ...props, children: [
7329
+ /* @__PURE__ */ jsxRuntime.jsx(GroupLabel, { children: label }),
7330
+ methods.map((method) => {
7331
+ const selected = value === method.id;
7332
+ return /* @__PURE__ */ jsxRuntime.jsxs(MethodLabel, { $selected: selected, children: [
7333
+ /* @__PURE__ */ jsxRuntime.jsx(
7334
+ Radio,
7335
+ {
7336
+ type: "radio",
7337
+ name: "payment",
7338
+ value: method.id,
7339
+ checked: selected,
7340
+ disabled,
7341
+ onChange: () => onChange?.(method.id),
7342
+ "aria-label": method.label
7343
+ }
7344
+ ),
7345
+ /* @__PURE__ */ jsxRuntime.jsx(IconWrap, { children: method.icon ?? /* @__PURE__ */ jsxRuntime.jsx(CreditCardOutlinedIcon__default.default, { "aria-hidden": true }) }),
7346
+ /* @__PURE__ */ jsxRuntime.jsxs(Info, { children: [
7347
+ /* @__PURE__ */ jsxRuntime.jsx(Name6, { children: method.label }),
7348
+ method.description && /* @__PURE__ */ jsxRuntime.jsx(Desc, { children: method.description })
7349
+ ] })
7350
+ ] }, method.id);
7351
+ })
7352
+ ] })
7353
+ );
7354
+ PaymentMethodSelector.displayName = "PaymentMethodSelector";
7355
+ var Root27 = styles.styled("div")({
6812
7356
  display: "grid",
6813
7357
  gap: "0.75rem"
6814
7358
  });
@@ -6834,9 +7378,9 @@ var ThumbnailButton = styles.styled("button")(({ theme, $active }) => ({
6834
7378
  var ThumbnailImage = styles.styled("img")({
6835
7379
  objectFit: "cover"
6836
7380
  });
6837
- var ProductGallery = React.forwardRef(
7381
+ var ProductGallery = react.forwardRef(
6838
7382
  ({ images, selectedIndex, onSelect, ...props }, ref) => {
6839
- const [internalIndex, setInternalIndex] = React.useState(0);
7383
+ const [internalIndex, setInternalIndex] = react.useState(0);
6840
7384
  const activeIndex = selectedIndex ?? internalIndex;
6841
7385
  const activeImage = images[activeIndex] ?? images[0];
6842
7386
  const handleSelect = (index) => {
@@ -6846,7 +7390,7 @@ var ProductGallery = React.forwardRef(
6846
7390
  if (!activeImage) {
6847
7391
  return null;
6848
7392
  }
6849
- return /* @__PURE__ */ jsxRuntime.jsxs(Root21, { ref, ...props, children: [
7393
+ return /* @__PURE__ */ jsxRuntime.jsxs(Root27, { ref, ...props, children: [
6850
7394
  /* @__PURE__ */ jsxRuntime.jsx(AspectRatio, { ratio: "4/3", children: /* @__PURE__ */ jsxRuntime.jsx(MainImage, { src: activeImage.src, alt: activeImage.alt }) }),
6851
7395
  images.length > 1 && /* @__PURE__ */ jsxRuntime.jsx(Thumbnails, { children: images.map((image, index) => /* @__PURE__ */ jsxRuntime.jsx(
6852
7396
  ThumbnailButton,
@@ -6864,7 +7408,7 @@ var ProductGallery = React.forwardRef(
6864
7408
  }
6865
7409
  );
6866
7410
  ProductGallery.displayName = "ProductGallery";
6867
- var Root22 = styles.styled("div")(({ theme, $variant }) => ({
7411
+ var Root28 = styles.styled("div")(({ theme, $variant }) => ({
6868
7412
  display: "flex",
6869
7413
  alignItems: "center",
6870
7414
  justifyContent: "center",
@@ -6883,15 +7427,15 @@ var Link = styles.styled("a")(({ theme }) => ({
6883
7427
  textDecoration: "underline",
6884
7428
  textUnderlineOffset: "0.2em"
6885
7429
  }));
6886
- var PromoStrip = React.forwardRef(
6887
- ({ message, actionLabel, href, variant = "info", ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(Root22, { ref, $variant: variant, ...props, children: [
7430
+ var PromoStrip = react.forwardRef(
7431
+ ({ message, actionLabel, href, variant = "info", ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(Root28, { ref, $variant: variant, ...props, children: [
6888
7432
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: message }),
6889
7433
  actionLabel && href && /* @__PURE__ */ jsxRuntime.jsx(Link, { href, children: actionLabel })
6890
7434
  ] })
6891
7435
  );
6892
7436
  PromoStrip.displayName = "PromoStrip";
6893
7437
  var promoStripVariants = ["info", "success", "warning"];
6894
- var Root23 = styles.styled("div")(({ theme }) => ({
7438
+ var Root29 = styles.styled("div")(({ theme }) => ({
6895
7439
  display: "inline-grid",
6896
7440
  gridTemplateColumns: "2.25rem 3rem 2.25rem",
6897
7441
  alignItems: "center",
@@ -6913,7 +7457,7 @@ var Control = styles.styled("button")(({ theme }) => ({
6913
7457
  cursor: "not-allowed"
6914
7458
  }
6915
7459
  }));
6916
- var Value2 = styles.styled("span")(({ theme }) => ({
7460
+ var Value3 = styles.styled("span")(({ theme }) => ({
6917
7461
  display: "inline-flex",
6918
7462
  alignItems: "center",
6919
7463
  justifyContent: "center",
@@ -6923,11 +7467,11 @@ var Value2 = styles.styled("span")(({ theme }) => ({
6923
7467
  borderRight: `1px solid ${theme.palette.divider}`,
6924
7468
  fontWeight: 600
6925
7469
  }));
6926
- var QuantitySelector = React.forwardRef(
7470
+ var QuantitySelector = react.forwardRef(
6927
7471
  ({ value, min = 1, max = 99, step = 1, disabled = false, onChange, ...props }, ref) => {
6928
7472
  const decrease = Math.max(min, value - step);
6929
7473
  const increase = Math.min(max, value + step);
6930
- return /* @__PURE__ */ jsxRuntime.jsxs(Root23, { ref, "aria-label": "Wybierz ilo\u015B\u0107", ...props, children: [
7474
+ return /* @__PURE__ */ jsxRuntime.jsxs(Root29, { ref, "aria-label": "Wybierz ilo\u015B\u0107", ...props, children: [
6931
7475
  /* @__PURE__ */ jsxRuntime.jsx(
6932
7476
  Control,
6933
7477
  {
@@ -6938,7 +7482,7 @@ var QuantitySelector = React.forwardRef(
6938
7482
  children: "\u2212"
6939
7483
  }
6940
7484
  ),
6941
- /* @__PURE__ */ jsxRuntime.jsx(Value2, { "aria-live": "polite", children: value }),
7485
+ /* @__PURE__ */ jsxRuntime.jsx(Value3, { "aria-live": "polite", children: value }),
6942
7486
  /* @__PURE__ */ jsxRuntime.jsx(
6943
7487
  Control,
6944
7488
  {
@@ -6953,6 +7497,207 @@ var QuantitySelector = React.forwardRef(
6953
7497
  }
6954
7498
  );
6955
7499
  QuantitySelector.displayName = "QuantitySelector";
7500
+ var Root30 = styles.styled("div")({
7501
+ display: "flex",
7502
+ flexDirection: "column",
7503
+ gap: "0.5rem"
7504
+ });
7505
+ var GroupLabel2 = styles.styled("span")(({ theme }) => ({
7506
+ fontSize: "0.875rem",
7507
+ fontWeight: 600,
7508
+ color: theme.palette.text.primary,
7509
+ fontFamily: theme.typography.fontFamily
7510
+ }));
7511
+ var OptionLabel = styles.styled("label", {
7512
+ shouldForwardProp: (prop) => prop !== "$selected"
7513
+ })(({ theme, $selected }) => ({
7514
+ display: "flex",
7515
+ alignItems: "center",
7516
+ gap: "0.875rem",
7517
+ padding: "0.875rem 1rem",
7518
+ border: `${$selected ? 2 : 1}px solid ${$selected ? theme.palette.primary.main : theme.palette.divider}`,
7519
+ borderRadius: theme.shape.borderRadius,
7520
+ cursor: "pointer",
7521
+ backgroundColor: $selected ? `${theme.palette.primary.main}08` : theme.palette.background.paper,
7522
+ transition: "border-color 150ms ease, background-color 150ms ease",
7523
+ fontFamily: theme.typography.fontFamily,
7524
+ "&:hover": {
7525
+ borderColor: theme.palette.primary.main
7526
+ }
7527
+ }));
7528
+ var Radio2 = styles.styled("input")({
7529
+ width: "1rem",
7530
+ height: "1rem",
7531
+ flexShrink: 0,
7532
+ cursor: "pointer"
7533
+ });
7534
+ var IconWrap2 = styles.styled("span")(({ theme }) => ({
7535
+ color: theme.palette.text.secondary,
7536
+ display: "flex"
7537
+ }));
7538
+ var Info2 = styles.styled("div")({ flex: 1 });
7539
+ var Name7 = styles.styled("div")(({ theme }) => ({
7540
+ fontSize: "0.9375rem",
7541
+ fontWeight: 600,
7542
+ color: theme.palette.text.primary
7543
+ }));
7544
+ var Desc2 = styles.styled("div")(({ theme }) => ({
7545
+ fontSize: "0.8125rem",
7546
+ color: theme.palette.text.secondary,
7547
+ marginTop: "0.125rem"
7548
+ }));
7549
+ var Price3 = styles.styled("div", {
7550
+ shouldForwardProp: (prop) => prop !== "$selected"
7551
+ })(({ theme, $selected }) => ({
7552
+ fontSize: "0.9375rem",
7553
+ fontWeight: 700,
7554
+ color: $selected ? theme.palette.primary.main : theme.palette.text.primary,
7555
+ whiteSpace: "nowrap"
7556
+ }));
7557
+ var ShippingSelector = react.forwardRef(
7558
+ ({ options, value, onChange, label = "Metoda dostawy", disabled, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(Root30, { ref, ...props, children: [
7559
+ /* @__PURE__ */ jsxRuntime.jsx(GroupLabel2, { children: label }),
7560
+ options.map((opt) => {
7561
+ const selected = value === opt.id;
7562
+ return /* @__PURE__ */ jsxRuntime.jsxs(OptionLabel, { $selected: selected, children: [
7563
+ /* @__PURE__ */ jsxRuntime.jsx(
7564
+ Radio2,
7565
+ {
7566
+ type: "radio",
7567
+ name: "shipping",
7568
+ value: opt.id,
7569
+ checked: selected,
7570
+ disabled,
7571
+ onChange: () => onChange?.(opt.id),
7572
+ "aria-label": opt.label
7573
+ }
7574
+ ),
7575
+ /* @__PURE__ */ jsxRuntime.jsx(IconWrap2, { children: opt.icon ?? /* @__PURE__ */ jsxRuntime.jsx(LocalShippingOutlinedIcon__default.default, { "aria-hidden": true }) }),
7576
+ /* @__PURE__ */ jsxRuntime.jsxs(Info2, { children: [
7577
+ /* @__PURE__ */ jsxRuntime.jsx(Name7, { children: opt.label }),
7578
+ (opt.description || opt.estimatedDays) && /* @__PURE__ */ jsxRuntime.jsxs(Desc2, { children: [
7579
+ opt.description,
7580
+ opt.estimatedDays && ` \xB7 ${opt.estimatedDays}`
7581
+ ] })
7582
+ ] }),
7583
+ /* @__PURE__ */ jsxRuntime.jsx(Price3, { $selected: selected, children: opt.price })
7584
+ ] }, opt.id);
7585
+ })
7586
+ ] })
7587
+ );
7588
+ ShippingSelector.displayName = "ShippingSelector";
7589
+ var DEFAULT_SORT_OPTIONS = [
7590
+ { value: "popular", label: "Najpopularniejsze" },
7591
+ { value: "newest", label: "Najnowsze" },
7592
+ { value: "price-asc", label: "Cena rosn\u0105co" },
7593
+ { value: "price-desc", label: "Cena malej\u0105co" }
7594
+ ];
7595
+ var Root31 = styles.styled("div")(({ theme }) => ({
7596
+ display: "flex",
7597
+ alignItems: "center",
7598
+ justifyContent: "space-between",
7599
+ flexWrap: "wrap",
7600
+ gap: "0.75rem",
7601
+ padding: "0.75rem 0",
7602
+ borderBottom: `1px solid ${theme.palette.divider}`,
7603
+ fontFamily: theme.typography.fontFamily
7604
+ }));
7605
+ var TotalLabel = styles.styled("span")(({ theme }) => ({
7606
+ fontSize: "0.875rem",
7607
+ color: theme.palette.text.secondary
7608
+ }));
7609
+ var Controls = styles.styled("div")({
7610
+ display: "flex",
7611
+ alignItems: "center",
7612
+ gap: "0.75rem"
7613
+ });
7614
+ var SortLabel = styles.styled("label")(({ theme }) => ({
7615
+ fontSize: "0.875rem",
7616
+ color: theme.palette.text.secondary
7617
+ }));
7618
+ var Select = styles.styled("select")(({ theme }) => ({
7619
+ padding: "0.375rem 2rem 0.375rem 0.625rem",
7620
+ border: `1px solid ${theme.palette.divider}`,
7621
+ borderRadius: theme.shape.borderRadius,
7622
+ backgroundColor: theme.palette.background.paper,
7623
+ color: theme.palette.text.primary,
7624
+ fontFamily: theme.typography.fontFamily,
7625
+ fontSize: "0.875rem",
7626
+ cursor: "pointer",
7627
+ appearance: "none",
7628
+ backgroundImage: `url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24'%3E%3Cpath fill='%23666' d='M7 10l5 5 5-5z'/%3E%3C/svg%3E")`,
7629
+ backgroundRepeat: "no-repeat",
7630
+ backgroundPosition: "right 0.5rem center",
7631
+ "&:focus": { outline: `3px solid ${theme.palette.primary.main}`, outlineOffset: "2px" }
7632
+ }));
7633
+ var ViewToggle = styles.styled("div")(({ theme }) => ({
7634
+ display: "flex",
7635
+ border: `1px solid ${theme.palette.divider}`,
7636
+ borderRadius: theme.shape.borderRadius,
7637
+ overflow: "hidden"
7638
+ }));
7639
+ var ViewButton = styles.styled("button", {
7640
+ shouldForwardProp: (prop) => prop !== "$active"
7641
+ })(({ theme, $active }) => ({
7642
+ appearance: "none",
7643
+ border: "none",
7644
+ cursor: "pointer",
7645
+ display: "flex",
7646
+ alignItems: "center",
7647
+ padding: "0.375rem 0.5rem",
7648
+ backgroundColor: $active ? theme.palette.primary.main : "transparent",
7649
+ color: $active ? theme.palette.primary.contrastText : theme.palette.text.secondary,
7650
+ transition: "background-color 150ms ease, color 150ms ease",
7651
+ "&:hover:not(:disabled)": {
7652
+ backgroundColor: $active ? theme.palette.primary.dark : theme.palette.action.hover
7653
+ },
7654
+ "&:focus-visible": { outline: `3px solid ${theme.palette.primary.main}`, outlineOffset: "-1px" }
7655
+ }));
7656
+ var SortBar = react.forwardRef(
7657
+ ({
7658
+ total,
7659
+ totalLabel,
7660
+ sortOptions = DEFAULT_SORT_OPTIONS,
7661
+ sortValue,
7662
+ onSortChange,
7663
+ viewMode = "grid",
7664
+ onViewModeChange,
7665
+ showViewToggle = true,
7666
+ ...props
7667
+ }, ref) => {
7668
+ const resolvedLabel = totalLabel ?? (total !== void 0 ? `Znaleziono ${total} produkt\xF3w` : void 0);
7669
+ return /* @__PURE__ */ jsxRuntime.jsxs(Root31, { ref, ...props, children: [
7670
+ resolvedLabel && /* @__PURE__ */ jsxRuntime.jsx(TotalLabel, { children: resolvedLabel }),
7671
+ /* @__PURE__ */ jsxRuntime.jsxs(Controls, { children: [
7672
+ sortOptions.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
7673
+ /* @__PURE__ */ jsxRuntime.jsx(SortLabel, { htmlFor: "sort-select", children: "Sortuj:" }),
7674
+ /* @__PURE__ */ jsxRuntime.jsx(
7675
+ Select,
7676
+ {
7677
+ id: "sort-select",
7678
+ value: sortValue ?? "",
7679
+ onChange: (e) => onSortChange?.(e.target.value),
7680
+ children: sortOptions.map((opt) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: opt.value, children: opt.label }, opt.value))
7681
+ }
7682
+ )
7683
+ ] }),
7684
+ showViewToggle && /* @__PURE__ */ jsxRuntime.jsx(ViewToggle, { "aria-label": "Tryb widoku", children: ["grid", "list"].map((mode) => /* @__PURE__ */ jsxRuntime.jsx(
7685
+ ViewButton,
7686
+ {
7687
+ type: "button",
7688
+ $active: viewMode === mode,
7689
+ "aria-label": mode === "grid" ? "Widok siatki" : "Widok listy",
7690
+ "aria-pressed": viewMode === mode,
7691
+ onClick: () => onViewModeChange?.(mode),
7692
+ children: mode === "grid" ? /* @__PURE__ */ jsxRuntime.jsx(GridViewIcon__default.default, { "aria-hidden": true, style: { fontSize: 16 } }) : /* @__PURE__ */ jsxRuntime.jsx(ViewListIcon__default.default, { "aria-hidden": true, style: { fontSize: 16 } })
7693
+ },
7694
+ mode
7695
+ )) })
7696
+ ] })
7697
+ ] });
7698
+ }
7699
+ );
7700
+ SortBar.displayName = "SortBar";
6956
7701
  var COLOR_MAP = {
6957
7702
  "in-stock": "success",
6958
7703
  "low-stock": "warning",
@@ -6974,7 +7719,7 @@ function getDefaultLabel(status, count) {
6974
7719
  return "Dost\u0119pny na zam\xF3wienie";
6975
7720
  }
6976
7721
  }
6977
- var Root24 = styles.styled("div", {
7722
+ var Root32 = styles.styled("div", {
6978
7723
  shouldForwardProp: (p) => p !== "$color" && p !== "$size"
6979
7724
  })(({ theme, $color, $size }) => {
6980
7725
  const colorMap = {
@@ -7011,25 +7756,128 @@ var Dot2 = styles.styled("span", {
7011
7756
  flexShrink: 0
7012
7757
  };
7013
7758
  });
7014
- var StockStatus = React.forwardRef(
7759
+ var StockStatus = react.forwardRef(
7015
7760
  ({ status, count, label, showIcon = true, size = "md", ...props }, ref) => {
7016
7761
  const color = COLOR_MAP[status];
7017
7762
  const text = label ?? getDefaultLabel(status, count);
7018
- return /* @__PURE__ */ jsxRuntime.jsxs(Root24, { ref, $color: color, $size: size, role: "status", "aria-label": text, ...props, children: [
7763
+ return /* @__PURE__ */ jsxRuntime.jsxs(Root32, { ref, $color: color, $size: size, role: "status", "aria-label": text, ...props, children: [
7019
7764
  showIcon && /* @__PURE__ */ jsxRuntime.jsx(Dot2, { $color: color, "aria-hidden": "true" }),
7020
7765
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: text })
7021
7766
  ] });
7022
7767
  }
7023
7768
  );
7024
- StockStatus.displayName = "StockStatus";
7025
- var stockStatusValues = [
7026
- "in-stock",
7027
- "low-stock",
7028
- "out-of-stock",
7029
- "preorder",
7030
- "backorder"
7031
- ];
7032
- var Root25 = styles.styled("div")(({ theme }) => ({
7769
+ StockStatus.displayName = "StockStatus";
7770
+ var stockStatusValues = [
7771
+ "in-stock",
7772
+ "low-stock",
7773
+ "out-of-stock",
7774
+ "preorder",
7775
+ "backorder"
7776
+ ];
7777
+ var Root33 = styles.styled("div")({
7778
+ display: "flex",
7779
+ flexDirection: "column",
7780
+ gap: "0.5rem"
7781
+ });
7782
+ var Label4 = styles.styled("span")(({ theme }) => ({
7783
+ fontSize: "0.875rem",
7784
+ fontWeight: 600,
7785
+ color: theme.palette.text.primary,
7786
+ fontFamily: theme.typography.fontFamily
7787
+ }));
7788
+ var OptionsRow = styles.styled("div")({
7789
+ display: "flex",
7790
+ flexWrap: "wrap",
7791
+ gap: "0.5rem"
7792
+ });
7793
+ var OptionButton = styles.styled("button", {
7794
+ shouldForwardProp: (prop) => prop !== "$active" && prop !== "$mode"
7795
+ })(({ theme, $active, $mode }) => ({
7796
+ appearance: "none",
7797
+ cursor: "pointer",
7798
+ fontFamily: theme.typography.fontFamily,
7799
+ fontSize: "0.875rem",
7800
+ fontWeight: 500,
7801
+ transition: "border-color 150ms ease, background-color 150ms ease, box-shadow 150ms ease",
7802
+ "&:disabled": {
7803
+ opacity: 0.4,
7804
+ cursor: "not-allowed",
7805
+ textDecoration: $mode === "button" ? "line-through" : "none"
7806
+ },
7807
+ "&:focus-visible": {
7808
+ outline: `3px solid ${theme.palette.primary.main}`,
7809
+ outlineOffset: "2px"
7810
+ },
7811
+ ...$mode === "swatch" ? {
7812
+ width: "2rem",
7813
+ height: "2rem",
7814
+ borderRadius: "50%",
7815
+ border: $active ? `3px solid ${theme.palette.primary.main}` : `2px solid ${theme.palette.divider}`,
7816
+ boxShadow: $active ? `0 0 0 2px ${theme.palette.background.paper}, 0 0 0 4px ${theme.palette.primary.main}` : "none",
7817
+ padding: 0,
7818
+ background: "currentColor"
7819
+ } : {
7820
+ padding: "0.375rem 0.875rem",
7821
+ border: $active ? `2px solid ${theme.palette.primary.main}` : `1px solid ${theme.palette.divider}`,
7822
+ borderRadius: theme.shape.borderRadius,
7823
+ backgroundColor: $active ? `${theme.palette.primary.main}14` : "transparent",
7824
+ color: $active ? theme.palette.primary.main : theme.palette.text.primary
7825
+ }
7826
+ }));
7827
+ var Select2 = styles.styled("select")(({ theme }) => ({
7828
+ padding: "0.5rem 2rem 0.5rem 0.75rem",
7829
+ border: `1px solid ${theme.palette.divider}`,
7830
+ borderRadius: theme.shape.borderRadius,
7831
+ backgroundColor: theme.palette.background.paper,
7832
+ color: theme.palette.text.primary,
7833
+ fontFamily: theme.typography.fontFamily,
7834
+ fontSize: "0.875rem",
7835
+ cursor: "pointer",
7836
+ appearance: "none",
7837
+ backgroundImage: `url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24'%3E%3Cpath fill='%23666' d='M7 10l5 5 5-5z'/%3E%3C/svg%3E")`,
7838
+ backgroundRepeat: "no-repeat",
7839
+ backgroundPosition: "right 0.75rem center",
7840
+ "&:focus": {
7841
+ outline: `3px solid ${theme.palette.primary.main}`,
7842
+ outlineOffset: "2px"
7843
+ }
7844
+ }));
7845
+ var VariantSelector = react.forwardRef(
7846
+ ({ label, options, value, onChange, mode = "button", disabled, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(Root33, { ref, ...props, children: [
7847
+ /* @__PURE__ */ jsxRuntime.jsxs(Label4, { children: [
7848
+ label,
7849
+ value && mode !== "swatch" && /* @__PURE__ */ jsxRuntime.jsx("span", { style: { fontWeight: 400, marginLeft: "0.375rem" }, children: options.find((o) => o.value === value)?.label })
7850
+ ] }),
7851
+ mode === "dropdown" ? /* @__PURE__ */ jsxRuntime.jsx(
7852
+ Select2,
7853
+ {
7854
+ value: value ?? "",
7855
+ onChange: (e) => onChange?.(e.target.value),
7856
+ disabled,
7857
+ "aria-label": label,
7858
+ children: options.map((opt) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: opt.value, disabled: opt.disabled, children: opt.label }, opt.value))
7859
+ }
7860
+ ) : /* @__PURE__ */ jsxRuntime.jsx(OptionsRow, { role: "radiogroup", "aria-label": label, children: options.map((opt) => /* @__PURE__ */ jsxRuntime.jsx(
7861
+ OptionButton,
7862
+ {
7863
+ type: "button",
7864
+ $active: value === opt.value,
7865
+ $mode: mode,
7866
+ disabled: opt.disabled || disabled,
7867
+ style: mode === "swatch" ? { color: opt.color ?? "#ccc" } : void 0,
7868
+ title: opt.label,
7869
+ "aria-label": opt.label,
7870
+ "aria-pressed": value === opt.value,
7871
+ onClick: () => onChange?.(opt.value),
7872
+ children: mode === "button" && opt.label
7873
+ },
7874
+ opt.value
7875
+ )) })
7876
+ ] })
7877
+ );
7878
+ VariantSelector.displayName = "VariantSelector";
7879
+ var variantSelectorModes = ["button", "swatch", "dropdown"];
7880
+ var Root34 = styles.styled("div")(({ theme }) => ({
7033
7881
  borderBottom: `1px solid ${theme.palette.divider}`
7034
7882
  }));
7035
7883
  var Trigger2 = styles.styled("button")(({ theme }) => ({
@@ -7074,10 +7922,10 @@ var PanelInner = styles.styled("p")(({ theme }) => ({
7074
7922
  fontSize: "0.9375rem",
7075
7923
  lineHeight: 1.7
7076
7924
  }));
7077
- var FaqItem = React.forwardRef(
7925
+ var FaqItem = react.forwardRef(
7078
7926
  ({ item, defaultOpen = false, ...props }, ref) => {
7079
- const [open, setOpen] = React.useState(defaultOpen);
7080
- return /* @__PURE__ */ jsxRuntime.jsxs(Root25, { ref, ...props, children: [
7927
+ const [open, setOpen] = react.useState(defaultOpen);
7928
+ return /* @__PURE__ */ jsxRuntime.jsxs(Root34, { ref, ...props, children: [
7081
7929
  /* @__PURE__ */ jsxRuntime.jsxs(Trigger2, { type: "button", "aria-expanded": open, onClick: () => setOpen((prev) => !prev), children: [
7082
7930
  item.question,
7083
7931
  /* @__PURE__ */ jsxRuntime.jsx(ChevronIcon2, { $open: open, "aria-hidden": "true" })
@@ -7132,7 +7980,7 @@ var Description4 = styles.styled("p")(({ theme }) => ({
7132
7980
  color: theme.palette.text.secondary,
7133
7981
  lineHeight: 1.6
7134
7982
  }));
7135
- var FeatureItem2 = React.forwardRef(
7983
+ var FeatureItem2 = react.forwardRef(
7136
7984
  ({ feature, cardVariant = "default", layout = "card", ...props }, ref) => {
7137
7985
  if (layout === "icon-left") {
7138
7986
  return /* @__PURE__ */ jsxRuntime.jsxs(IconLeftRoot, { ref, ...props, children: [
@@ -7153,7 +8001,7 @@ var FeatureItem2 = React.forwardRef(
7153
8001
  }
7154
8002
  );
7155
8003
  FeatureItem2.displayName = "FeatureItem";
7156
- var Root26 = styles.styled("div")({
8004
+ var Root35 = styles.styled("div")({
7157
8005
  display: "flex",
7158
8006
  flexDirection: "column",
7159
8007
  alignItems: "center",
@@ -7200,8 +8048,8 @@ var Description5 = styles.styled("p")(({ theme }) => ({
7200
8048
  lineHeight: 1.6,
7201
8049
  maxWidth: "18rem"
7202
8050
  }));
7203
- var ProcessStep = React.forwardRef(
7204
- ({ step, title, description, icon, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(Root26, { ref, ...props, children: [
8051
+ var ProcessStep = react.forwardRef(
8052
+ ({ step, title, description, icon, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(Root35, { ref, ...props, children: [
7205
8053
  /* @__PURE__ */ jsxRuntime.jsx(StepBadge, { "aria-hidden": "true", children: icon ? /* @__PURE__ */ jsxRuntime.jsx(IconWrapper2, { children: icon }) : /* @__PURE__ */ jsxRuntime.jsx(StepNumber, { children: step }) }),
7206
8054
  /* @__PURE__ */ jsxRuntime.jsx(Title3, { children: title }),
7207
8055
  description && /* @__PURE__ */ jsxRuntime.jsx(Description5, { children: description })
@@ -7284,7 +8132,7 @@ function renderLogo(logo, monochrome, logoHeight) {
7284
8132
  }
7285
8133
  );
7286
8134
  }
7287
- var LogoTile = React.forwardRef(
8135
+ var LogoTile = react.forwardRef(
7288
8136
  ({ logo, variant = "plain", monochrome = true, logoHeight = 40, ...props }, ref) => {
7289
8137
  const content = renderLogo(logo, monochrome, logoHeight);
7290
8138
  if (logo.href) {
@@ -7387,7 +8235,7 @@ var Dot3 = styles.styled("span", {
7387
8235
  }
7388
8236
  }
7389
8237
  }));
7390
- var Content2 = styles.styled("div")({ flex: 1, minWidth: 0, paddingTop: "0.0625rem" });
8238
+ var Content4 = styles.styled("div")({ flex: 1, minWidth: 0, paddingTop: "0.0625rem" });
7391
8239
  var TitleRow = styles.styled("div")({
7392
8240
  display: "flex",
7393
8241
  alignItems: "baseline",
@@ -7432,7 +8280,7 @@ function TimelineItemComponent({
7432
8280
  const hasIcon = Boolean(item.icon);
7433
8281
  return /* @__PURE__ */ jsxRuntime.jsxs(ItemRow, { $compact: compact, $last: last, children: [
7434
8282
  /* @__PURE__ */ jsxRuntime.jsx(DotCol, { $last: last, children: /* @__PURE__ */ jsxRuntime.jsx(Dot3, { $status: status, $hasIcon: hasIcon, children: item.icon ?? /* @__PURE__ */ jsxRuntime.jsx(StatusIcon, { status }) }) }),
7435
- /* @__PURE__ */ jsxRuntime.jsxs(Content2, { children: [
8283
+ /* @__PURE__ */ jsxRuntime.jsxs(Content4, { children: [
7436
8284
  /* @__PURE__ */ jsxRuntime.jsxs(TitleRow, { children: [
7437
8285
  /* @__PURE__ */ jsxRuntime.jsx(Title4, { $compact: compact, children: item.title }),
7438
8286
  item.date && /* @__PURE__ */ jsxRuntime.jsx(Date2, { dateTime: item.date, children: item.date })
@@ -7441,7 +8289,7 @@ function TimelineItemComponent({
7441
8289
  ] })
7442
8290
  ] });
7443
8291
  }
7444
- var Timeline = React.forwardRef(
8292
+ var Timeline = react.forwardRef(
7445
8293
  ({ items, variant = "default", align: _align = "left", ...props }, ref) => {
7446
8294
  const compact = variant === "compact";
7447
8295
  return /* @__PURE__ */ jsxRuntime.jsx(List, { ref, "aria-label": "O\u015B czasu", ...props, children: items.map((item, i) => /* @__PURE__ */ jsxRuntime.jsx(
@@ -7463,7 +8311,7 @@ var timelineItemStatuses = [
7463
8311
  "pending",
7464
8312
  "error"
7465
8313
  ];
7466
- var Root27 = styles.styled("div")({
8314
+ var Root36 = styles.styled("div")({
7467
8315
  position: "relative",
7468
8316
  width: "100%",
7469
8317
  overflow: "hidden",
@@ -7547,23 +8395,23 @@ function Carousel({
7547
8395
  loop = true,
7548
8396
  className
7549
8397
  }) {
7550
- const [index, setIndex] = React.useState(0);
7551
- const timerRef = React.useRef(null);
8398
+ const [index, setIndex] = react.useState(0);
8399
+ const timerRef = react.useRef(null);
7552
8400
  const count = slides.length;
7553
- const prev = React.useCallback(() => {
8401
+ const prev = react.useCallback(() => {
7554
8402
  setIndex((i) => loop ? (i - 1 + count) % count : Math.max(0, i - 1));
7555
8403
  }, [count, loop]);
7556
- const next = React.useCallback(() => {
8404
+ const next = react.useCallback(() => {
7557
8405
  setIndex((i) => loop ? (i + 1) % count : Math.min(count - 1, i + 1));
7558
8406
  }, [count, loop]);
7559
- React.useEffect(() => {
8407
+ react.useEffect(() => {
7560
8408
  if (!autoPlay) return;
7561
8409
  timerRef.current = setInterval(next, autoPlayInterval);
7562
8410
  return () => {
7563
8411
  if (timerRef.current) clearInterval(timerRef.current);
7564
8412
  };
7565
8413
  }, [autoPlay, autoPlayInterval, next]);
7566
- React.useEffect(() => {
8414
+ react.useEffect(() => {
7567
8415
  const handleKey = (e) => {
7568
8416
  if (e.key === "ArrowLeft") prev();
7569
8417
  if (e.key === "ArrowRight") next();
@@ -7573,7 +8421,7 @@ function Carousel({
7573
8421
  }, [prev, next]);
7574
8422
  if (!count) return null;
7575
8423
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className, children: [
7576
- /* @__PURE__ */ jsxRuntime.jsxs(Root27, { "aria-roledescription": "carousel", children: [
8424
+ /* @__PURE__ */ jsxRuntime.jsxs(Root36, { "aria-roledescription": "carousel", children: [
7577
8425
  /* @__PURE__ */ jsxRuntime.jsx(Track4, { $index: index, "aria-live": "polite", children: slides.map((slide, i) => /* @__PURE__ */ jsxRuntime.jsx(
7578
8426
  Slide,
7579
8427
  {
@@ -7684,8 +8532,8 @@ function VideoPlayer({
7684
8532
  }
7685
8533
  ) }) });
7686
8534
  }
7687
- var fadeIn = react.keyframes`from { opacity: 0; } to { opacity: 1; }`;
7688
- var zoomIn = react.keyframes`from { opacity: 0; transform: scale(0.92); } to { opacity: 1; transform: scale(1); }`;
8535
+ var fadeIn = react$1.keyframes`from { opacity: 0; } to { opacity: 1; }`;
8536
+ var zoomIn = react$1.keyframes`from { opacity: 0; transform: scale(0.92); } to { opacity: 1; transform: scale(1); }`;
7689
8537
  var Grid = styles.styled("div", {
7690
8538
  shouldForwardProp: (prop) => !["$columns", "$gap"].includes(prop)
7691
8539
  })(({ $columns, $gap }) => ({
@@ -7828,19 +8676,19 @@ var Counter = styles.styled("span")({
7828
8676
  pointerEvents: "none"
7829
8677
  });
7830
8678
  function Lightbox({ images, columns = 3, gap = 8, className }) {
7831
- const [activeIndex, setActiveIndex] = React.useState(null);
8679
+ const [activeIndex, setActiveIndex] = react.useState(null);
7832
8680
  const isOpen = activeIndex !== null;
7833
8681
  const count = images.length;
7834
- const close = React.useCallback(() => setActiveIndex(null), []);
7835
- const prev = React.useCallback(
8682
+ const close = react.useCallback(() => setActiveIndex(null), []);
8683
+ const prev = react.useCallback(
7836
8684
  () => setActiveIndex((i) => i === null ? null : (i - 1 + count) % count),
7837
8685
  [count]
7838
8686
  );
7839
- const next = React.useCallback(
8687
+ const next = react.useCallback(
7840
8688
  () => setActiveIndex((i) => i === null ? null : (i + 1) % count),
7841
8689
  [count]
7842
8690
  );
7843
- React.useEffect(() => {
8691
+ react.useEffect(() => {
7844
8692
  if (!isOpen) return;
7845
8693
  const handler = (e) => {
7846
8694
  if (e.key === "Escape") close();
@@ -7944,7 +8792,7 @@ var Current2 = styles.styled("span")(({ theme }) => ({
7944
8792
  var Separator2 = styles.styled("span")(({ theme }) => ({
7945
8793
  color: theme.palette.text.disabled
7946
8794
  }));
7947
- var Breadcrumbs = React.forwardRef(
8795
+ var Breadcrumbs = react.forwardRef(
7948
8796
  ({ items, separator = "/", ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(Nav, { ref, "aria-label": "\u015Acie\u017Cka nawigacji", ...props, children: /* @__PURE__ */ jsxRuntime.jsx(List2, { children: items.map((item, index) => {
7949
8797
  const isLast = index === items.length - 1;
7950
8798
  return /* @__PURE__ */ jsxRuntime.jsxs("li", { children: [
@@ -7957,7 +8805,7 @@ var Breadcrumbs = React.forwardRef(
7957
8805
  }) }) })
7958
8806
  );
7959
8807
  Breadcrumbs.displayName = "Breadcrumbs";
7960
- var sizeMap5 = {
8808
+ var sizeMap6 = {
7961
8809
  sm: { minWidth: "1.75rem", height: "1.75rem", fontSize: "0.75rem" },
7962
8810
  md: { minWidth: "2rem", height: "2rem", fontSize: "0.875rem" },
7963
8811
  lg: { minWidth: "2.5rem", height: "2.5rem", fontSize: "1rem" }
@@ -7986,7 +8834,7 @@ var StyledButton2 = styles.styled("button")(({ theme, $isActive, $size }) => ({
7986
8834
  lineHeight: 1,
7987
8835
  padding: "0 0.25rem",
7988
8836
  transition: "background-color 150ms ease",
7989
- ...sizeMap5[$size],
8837
+ ...sizeMap6[$size],
7990
8838
  ...$isActive ? activeStyles(theme) : idleStyles(theme),
7991
8839
  "&:focus-visible": {
7992
8840
  outline: `3px solid ${theme.palette.primary.main}`,
@@ -7998,7 +8846,7 @@ var StyledButton2 = styles.styled("button")(({ theme, $isActive, $size }) => ({
7998
8846
  pointerEvents: "none"
7999
8847
  }
8000
8848
  }));
8001
- var PaginationButton = React.forwardRef(
8849
+ var PaginationButton = react.forwardRef(
8002
8850
  ({ onClick, isActive = false, disabled = false, size = "md", children, "aria-label": ariaLabel }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
8003
8851
  StyledButton2,
8004
8852
  {
@@ -8015,7 +8863,7 @@ var PaginationButton = React.forwardRef(
8015
8863
  )
8016
8864
  );
8017
8865
  PaginationButton.displayName = "PaginationButton";
8018
- var sizeMap6 = {
8866
+ var sizeMap7 = {
8019
8867
  sm: { minWidth: "1.75rem", height: "1.75rem", fontSize: "0.75rem" },
8020
8868
  md: { minWidth: "2rem", height: "2rem", fontSize: "0.875rem" },
8021
8869
  lg: { minWidth: "2.5rem", height: "2.5rem", fontSize: "1rem" }
@@ -8026,7 +8874,7 @@ var StyledEllipsis = styles.styled("span")(({ theme, $size }) => ({
8026
8874
  justifyContent: "center",
8027
8875
  color: theme.palette.text.secondary,
8028
8876
  userSelect: "none",
8029
- ...sizeMap6[$size]
8877
+ ...sizeMap7[$size]
8030
8878
  }));
8031
8879
  var PaginationEllipsis = ({ size = "md" }) => /* @__PURE__ */ jsxRuntime.jsx(StyledEllipsis, { $size: size, "aria-hidden": "true", children: "\u2026" });
8032
8880
  PaginationEllipsis.displayName = "PaginationEllipsis";
@@ -8136,7 +8984,7 @@ var PaginationBar = ({
8136
8984
  ] });
8137
8985
  };
8138
8986
  PaginationBar.displayName = "PaginationBar";
8139
- var Root28 = styles.styled("div", {
8987
+ var Root37 = styles.styled("div", {
8140
8988
  shouldForwardProp: (p) => p !== "$variant"
8141
8989
  })(({ theme, $variant }) => ({
8142
8990
  width: "100%",
@@ -8222,7 +9070,7 @@ var PanelContent = styles.styled("div")(({ theme }) => ({
8222
9070
  fontSize: "0.9375rem",
8223
9071
  lineHeight: 1.7
8224
9072
  }));
8225
- var Accordion = React.forwardRef(
9073
+ var Accordion = react.forwardRef(
8226
9074
  ({
8227
9075
  items,
8228
9076
  defaultOpenKeys = [],
@@ -8232,7 +9080,7 @@ var Accordion = React.forwardRef(
8232
9080
  variant = "default",
8233
9081
  ...props
8234
9082
  }, ref) => {
8235
- const [internalKeys, setInternalKeys] = React.useState(defaultOpenKeys);
9083
+ const [internalKeys, setInternalKeys] = react.useState(defaultOpenKeys);
8236
9084
  const openKeys = controlledKeys ?? internalKeys;
8237
9085
  const toggle = (key, disabled) => {
8238
9086
  if (disabled) return;
@@ -8246,7 +9094,7 @@ var Accordion = React.forwardRef(
8246
9094
  if (controlledKeys === void 0) setInternalKeys(next);
8247
9095
  onChange?.(next);
8248
9096
  };
8249
- return /* @__PURE__ */ jsxRuntime.jsx(Root28, { ref, $variant: variant, ...props, children: items.map((item) => {
9097
+ return /* @__PURE__ */ jsxRuntime.jsx(Root37, { ref, $variant: variant, ...props, children: items.map((item) => {
8250
9098
  const isOpen = openKeys.includes(item.key);
8251
9099
  const panelId = `accordion-panel-${item.key}`;
8252
9100
  const triggerId = `accordion-trigger-${item.key}`;
@@ -8275,8 +9123,76 @@ var Accordion = React.forwardRef(
8275
9123
  );
8276
9124
  Accordion.displayName = "Accordion";
8277
9125
  var accordionVariants = ["default", "bordered", "separated"];
8278
- var fadeIn2 = react.keyframes`from{opacity:0;transform:translateY(0.5rem)}to{opacity:1;transform:translateY(0)}`;
8279
- var fadeOut = react.keyframes`from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(0.5rem)}`;
9126
+ var SEVERITY_COLORS = {
9127
+ info: { bg: "rgba(25,118,210,0.08)", color: "#1565c0", border: "rgba(25,118,210,0.3)" },
9128
+ success: { bg: "rgba(34,197,94,0.1)", color: "#15803d", border: "rgba(34,197,94,0.35)" },
9129
+ warning: { bg: "rgba(245,158,11,0.1)", color: "#b45309", border: "rgba(245,158,11,0.35)" },
9130
+ error: { bg: "rgba(211,47,47,0.08)", color: "#c62828", border: "rgba(211,47,47,0.3)" }
9131
+ };
9132
+ var ICONS = {
9133
+ info: /* @__PURE__ */ jsxRuntime.jsx(InfoOutlinedIcon__default.default, { "aria-hidden": true, style: { fontSize: 20 } }),
9134
+ success: /* @__PURE__ */ jsxRuntime.jsx(CheckCircleOutlinedIcon__default.default, { "aria-hidden": true, style: { fontSize: 20 } }),
9135
+ warning: /* @__PURE__ */ jsxRuntime.jsx(WarningAmberOutlinedIcon__default.default, { "aria-hidden": true, style: { fontSize: 20 } }),
9136
+ error: /* @__PURE__ */ jsxRuntime.jsx(ErrorOutlineOutlinedIcon__default.default, { "aria-hidden": true, style: { fontSize: 20 } })
9137
+ };
9138
+ var Root38 = styles.styled("div", {
9139
+ shouldForwardProp: (prop) => prop !== "$severity"
9140
+ })(({ theme, $severity }) => {
9141
+ const c = SEVERITY_COLORS[$severity];
9142
+ return {
9143
+ display: "flex",
9144
+ gap: "0.75rem",
9145
+ padding: "0.875rem 1rem",
9146
+ borderRadius: theme.shape.borderRadius,
9147
+ border: `1px solid ${c.border}`,
9148
+ backgroundColor: c.bg,
9149
+ color: c.color,
9150
+ fontFamily: theme.typography.fontFamily,
9151
+ fontSize: "0.9375rem"
9152
+ };
9153
+ });
9154
+ var IconSlot2 = styles.styled("span")({
9155
+ flexShrink: 0,
9156
+ display: "flex",
9157
+ paddingTop: "0.0625rem"
9158
+ });
9159
+ var Body = styles.styled("div")({ flex: 1 });
9160
+ var Title5 = styles.styled("div")({
9161
+ fontWeight: 700,
9162
+ marginBottom: "0.25rem"
9163
+ });
9164
+ var CloseButton2 = styles.styled("button")(({ theme }) => ({
9165
+ appearance: "none",
9166
+ border: "none",
9167
+ background: "transparent",
9168
+ cursor: "pointer",
9169
+ display: "flex",
9170
+ alignItems: "center",
9171
+ padding: "0.125rem",
9172
+ color: "inherit",
9173
+ opacity: 0.6,
9174
+ borderRadius: "0.25rem",
9175
+ flexShrink: 0,
9176
+ "&:hover": { opacity: 1 },
9177
+ "&:focus-visible": {
9178
+ outline: `3px solid ${theme.palette.primary.main}`,
9179
+ outlineOffset: "2px"
9180
+ }
9181
+ }));
9182
+ var Alert = react.forwardRef(
9183
+ ({ severity = "info", title, children, onClose, icon, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(Root38, { ref, role: "alert", $severity: severity, ...props, children: [
9184
+ /* @__PURE__ */ jsxRuntime.jsx(IconSlot2, { children: icon ?? ICONS[severity] }),
9185
+ /* @__PURE__ */ jsxRuntime.jsxs(Body, { children: [
9186
+ title && /* @__PURE__ */ jsxRuntime.jsx(Title5, { children: title }),
9187
+ children
9188
+ ] }),
9189
+ onClose && /* @__PURE__ */ jsxRuntime.jsx(CloseButton2, { type: "button", onClick: onClose, "aria-label": "Zamknij", children: /* @__PURE__ */ jsxRuntime.jsx(CloseIcon__default.default, { "aria-hidden": true, style: { fontSize: 16 } }) })
9190
+ ] })
9191
+ );
9192
+ Alert.displayName = "Alert";
9193
+ var alertSeverities = ["info", "success", "warning", "error"];
9194
+ var fadeIn2 = react$1.keyframes`from{opacity:0;transform:translateY(0.5rem)}to{opacity:1;transform:translateY(0)}`;
9195
+ var fadeOut = react$1.keyframes`from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(0.5rem)}`;
8280
9196
  var POSITION_MAP = {
8281
9197
  "bottom-right": { right: "1.5rem", bottom: "1.5rem" },
8282
9198
  "bottom-left": { left: "1.5rem", bottom: "1.5rem" },
@@ -8336,9 +9252,9 @@ function BackToTop({
8336
9252
  label = "Wr\xF3\u0107 na g\xF3r\u0119",
8337
9253
  scrollTarget
8338
9254
  }) {
8339
- const [visible, setVisible] = React.useState(false);
8340
- const getTarget = React.useCallback(() => scrollTarget ? scrollTarget() : window, [scrollTarget]);
8341
- React.useEffect(() => {
9255
+ const [visible, setVisible] = react.useState(false);
9256
+ const getTarget = react.useCallback(() => scrollTarget ? scrollTarget() : window, [scrollTarget]);
9257
+ react.useEffect(() => {
8342
9258
  const target = getTarget();
8343
9259
  const onScroll = () => {
8344
9260
  const scrollY = target instanceof Window ? target.scrollY : target.scrollTop;
@@ -8436,12 +9352,12 @@ function clampToViewport(x, y, el) {
8436
9352
  y: Math.min(y, window.innerHeight - h - MENU_MARGIN)
8437
9353
  };
8438
9354
  }
8439
- var ContextMenu = React.forwardRef(
9355
+ var ContextMenu = react.forwardRef(
8440
9356
  ({ items, children, disabled = false, ...props }, ref) => {
8441
- const [pos, setPos] = React.useState(null);
8442
- const menuRef = React.useRef(null);
8443
- const close = React.useCallback(() => setPos(null), []);
8444
- const handleContextMenu = React.useCallback(
9357
+ const [pos, setPos] = react.useState(null);
9358
+ const menuRef = react.useRef(null);
9359
+ const close = react.useCallback(() => setPos(null), []);
9360
+ const handleContextMenu = react.useCallback(
8445
9361
  (e) => {
8446
9362
  if (disabled) return;
8447
9363
  e.preventDefault();
@@ -8449,7 +9365,7 @@ var ContextMenu = React.forwardRef(
8449
9365
  },
8450
9366
  [disabled]
8451
9367
  );
8452
- React.useEffect(() => {
9368
+ react.useEffect(() => {
8453
9369
  if (!pos) return;
8454
9370
  if (menuRef.current) {
8455
9371
  const clamped = clampToViewport(pos.x, pos.y, menuRef.current);
@@ -8514,6 +9430,44 @@ var ContextMenu = React.forwardRef(
8514
9430
  }
8515
9431
  );
8516
9432
  ContextMenu.displayName = "ContextMenu";
9433
+ var Root39 = styles.styled("div")(({ theme }) => ({
9434
+ display: "flex",
9435
+ flexDirection: "column",
9436
+ alignItems: "center",
9437
+ justifyContent: "center",
9438
+ gap: "1rem",
9439
+ padding: "3rem 1.5rem",
9440
+ textAlign: "center",
9441
+ fontFamily: theme.typography.fontFamily
9442
+ }));
9443
+ var IconWrap3 = styles.styled("div")(({ theme }) => ({
9444
+ color: theme.palette.text.disabled,
9445
+ display: "flex",
9446
+ "& svg": { fontSize: "3.5rem" }
9447
+ }));
9448
+ var Title6 = styles.styled("h3")(({ theme }) => ({
9449
+ margin: 0,
9450
+ fontSize: "1.125rem",
9451
+ fontWeight: 700,
9452
+ color: theme.palette.text.primary
9453
+ }));
9454
+ var Description7 = styles.styled("p")(({ theme }) => ({
9455
+ margin: 0,
9456
+ fontSize: "0.9375rem",
9457
+ color: theme.palette.text.secondary,
9458
+ maxWidth: "28rem"
9459
+ }));
9460
+ var EmptyState = react.forwardRef(
9461
+ ({ icon, title, description, action, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(Root39, { ref, ...props, children: [
9462
+ /* @__PURE__ */ jsxRuntime.jsx(IconWrap3, { "aria-hidden": true, children: icon ?? /* @__PURE__ */ jsxRuntime.jsx(InboxOutlinedIcon__default.default, {}) }),
9463
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
9464
+ /* @__PURE__ */ jsxRuntime.jsx(Title6, { children: title }),
9465
+ description && /* @__PURE__ */ jsxRuntime.jsx(Description7, { style: { marginTop: "0.5rem" }, children: description })
9466
+ ] }),
9467
+ action && /* @__PURE__ */ jsxRuntime.jsx("div", { children: action })
9468
+ ] })
9469
+ );
9470
+ EmptyState.displayName = "EmptyState";
8517
9471
  var PADDING = {
8518
9472
  sm: "0.5rem 0.75rem",
8519
9473
  md: "0.75rem 1rem",
@@ -8524,7 +9478,7 @@ var FONT_SIZE2 = {
8524
9478
  md: "0.9375rem",
8525
9479
  lg: "1rem"
8526
9480
  };
8527
- var Root29 = styles.styled("ul", {
9481
+ var Root40 = styles.styled("ul", {
8528
9482
  shouldForwardProp: (p) => p !== "$variant"
8529
9483
  })(({ theme, $variant }) => ({
8530
9484
  listStyle: "none",
@@ -8616,10 +9570,10 @@ var SuffixWrap = styles.styled("span")({
8616
9570
  display: "flex",
8617
9571
  alignItems: "center"
8618
9572
  });
8619
- var List3 = React.forwardRef(
9573
+ var List3 = react.forwardRef(
8620
9574
  ({ items, size = "md", variant = "default", dividers = true, ...props }, ref) => {
8621
9575
  const effectiveVariant = !dividers && variant === "default" ? "default" : variant;
8622
- return /* @__PURE__ */ jsxRuntime.jsx(Root29, { ref, $variant: effectiveVariant, role: "list", ...props, children: items.map((item) => /* @__PURE__ */ jsxRuntime.jsxs(
9576
+ return /* @__PURE__ */ jsxRuntime.jsx(Root40, { ref, $variant: effectiveVariant, role: "list", ...props, children: items.map((item) => /* @__PURE__ */ jsxRuntime.jsxs(
8623
9577
  Item2,
8624
9578
  {
8625
9579
  role: "listitem",
@@ -8658,7 +9612,7 @@ var speedDuration = {
8658
9612
  normal: "20s",
8659
9613
  fast: "10s"
8660
9614
  };
8661
- var Root30 = styles.styled("div")({
9615
+ var Root41 = styles.styled("div")({
8662
9616
  overflow: "hidden",
8663
9617
  width: "100%",
8664
9618
  userSelect: "none"
@@ -8682,21 +9636,21 @@ var ItemWrap = styles.styled("div", {
8682
9636
  flexShrink: 0,
8683
9637
  gap: $gap
8684
9638
  }));
8685
- var Marquee = React.forwardRef(
9639
+ var Marquee = react.forwardRef(
8686
9640
  ({ children, direction = "left", speed = "normal", pauseOnHover = true, gap = "2rem", ...props }, ref) => {
8687
9641
  const gapValue = typeof gap === "number" ? `${gap}px` : gap;
8688
9642
  const content = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
8689
9643
  /* @__PURE__ */ jsxRuntime.jsx(ItemWrap, { $gap: gapValue, "aria-hidden": "false", children }),
8690
9644
  /* @__PURE__ */ jsxRuntime.jsx(ItemWrap, { $gap: gapValue, "aria-hidden": "true", children })
8691
9645
  ] });
8692
- return /* @__PURE__ */ jsxRuntime.jsx(Root30, { ref, ...props, children: /* @__PURE__ */ jsxRuntime.jsx(Track5, { $direction: direction, $speed: speed, $pauseOnHover: pauseOnHover, $gap: gapValue, children: content }) });
9646
+ return /* @__PURE__ */ jsxRuntime.jsx(Root41, { ref, ...props, children: /* @__PURE__ */ jsxRuntime.jsx(Track5, { $direction: direction, $speed: speed, $pauseOnHover: pauseOnHover, $gap: gapValue, children: content }) });
8693
9647
  }
8694
9648
  );
8695
9649
  Marquee.displayName = "Marquee";
8696
9650
  var marqueeDirections = ["left", "right"];
8697
9651
  var marqueeSpeeds = ["slow", "normal", "fast"];
8698
- var fadeIn3 = react.keyframes`from { opacity: 0; } to { opacity: 1; }`;
8699
- var slideUp = react.keyframes`from { opacity: 0; transform: translateY(1rem) scale(0.98); } to { opacity: 1; transform: translateY(0) scale(1); }`;
9652
+ var fadeIn3 = react$1.keyframes`from { opacity: 0; } to { opacity: 1; }`;
9653
+ var slideUp = react$1.keyframes`from { opacity: 0; transform: translateY(1rem) scale(0.98); } to { opacity: 1; transform: translateY(0) scale(1); }`;
8700
9654
  var SIZE_MAP2 = {
8701
9655
  sm: "24rem",
8702
9656
  md: "32rem",
@@ -8743,7 +9697,7 @@ var Header = styles.styled("div")(({ theme }) => ({
8743
9697
  borderBottom: `1px solid ${theme.palette.divider}`,
8744
9698
  flexShrink: 0
8745
9699
  }));
8746
- var Title5 = styles.styled("h2")(({ theme }) => ({
9700
+ var Title7 = styles.styled("h2")(({ theme }) => ({
8747
9701
  margin: 0,
8748
9702
  fontFamily: theme.typography.fontFamily,
8749
9703
  fontSize: "1.125rem",
@@ -8751,7 +9705,7 @@ var Title5 = styles.styled("h2")(({ theme }) => ({
8751
9705
  color: theme.palette.text.primary,
8752
9706
  lineHeight: 1.4
8753
9707
  }));
8754
- var CloseButton2 = styles.styled("button")(({ theme }) => ({
9708
+ var CloseButton3 = styles.styled("button")(({ theme }) => ({
8755
9709
  appearance: "none",
8756
9710
  border: "none",
8757
9711
  background: "none",
@@ -8774,14 +9728,14 @@ var CloseButton2 = styles.styled("button")(({ theme }) => ({
8774
9728
  outlineOffset: "2px"
8775
9729
  }
8776
9730
  }));
8777
- var Body = styles.styled("div")(({ theme }) => ({
9731
+ var Body2 = styles.styled("div")(({ theme }) => ({
8778
9732
  padding: "1.5rem",
8779
9733
  overflowY: "auto",
8780
9734
  flex: 1,
8781
9735
  fontFamily: theme.typography.fontFamily,
8782
9736
  color: theme.palette.text.primary
8783
9737
  }));
8784
- var Footer3 = styles.styled("div")(({ theme }) => ({
9738
+ var Footer4 = styles.styled("div")(({ theme }) => ({
8785
9739
  padding: "1rem 1.5rem",
8786
9740
  borderTop: `1px solid ${theme.palette.divider}`,
8787
9741
  display: "flex",
@@ -8799,8 +9753,8 @@ function Modal({
8799
9753
  closeOnBackdrop = true,
8800
9754
  hideCloseButton = false
8801
9755
  }) {
8802
- const dialogRef = React.useRef(null);
8803
- React.useEffect(() => {
9756
+ const dialogRef = react.useRef(null);
9757
+ react.useEffect(() => {
8804
9758
  if (!open) return;
8805
9759
  const prev = document.body.style.overflow;
8806
9760
  document.body.style.overflow = "hidden";
@@ -8808,7 +9762,7 @@ function Modal({
8808
9762
  document.body.style.overflow = prev;
8809
9763
  };
8810
9764
  }, [open]);
8811
- React.useEffect(() => {
9765
+ react.useEffect(() => {
8812
9766
  if (!open) return;
8813
9767
  const handleKey = (e) => {
8814
9768
  if (e.key === "Escape") onClose();
@@ -8816,7 +9770,7 @@ function Modal({
8816
9770
  document.addEventListener("keydown", handleKey);
8817
9771
  return () => document.removeEventListener("keydown", handleKey);
8818
9772
  }, [open, onClose]);
8819
- React.useEffect(() => {
9773
+ react.useEffect(() => {
8820
9774
  if (open) dialogRef.current?.focus();
8821
9775
  }, [open]);
8822
9776
  if (!open) return null;
@@ -8833,11 +9787,11 @@ function Modal({
8833
9787
  onClick: (e) => e.stopPropagation(),
8834
9788
  children: [
8835
9789
  (title || !hideCloseButton) && /* @__PURE__ */ jsxRuntime.jsxs(Header, { children: [
8836
- title ? /* @__PURE__ */ jsxRuntime.jsx(Title5, { id: "modal-title", children: title }) : /* @__PURE__ */ jsxRuntime.jsx("span", {}),
8837
- !hideCloseButton && /* @__PURE__ */ jsxRuntime.jsx(CloseButton2, { "aria-label": "Zamknij", onClick: onClose, children: /* @__PURE__ */ jsxRuntime.jsx(CloseIcon__default.default, { "aria-hidden": true, style: { fontSize: 16 } }) })
9790
+ title ? /* @__PURE__ */ jsxRuntime.jsx(Title7, { id: "modal-title", children: title }) : /* @__PURE__ */ jsxRuntime.jsx("span", {}),
9791
+ !hideCloseButton && /* @__PURE__ */ jsxRuntime.jsx(CloseButton3, { "aria-label": "Zamknij", onClick: onClose, children: /* @__PURE__ */ jsxRuntime.jsx(CloseIcon__default.default, { "aria-hidden": true, style: { fontSize: 16 } }) })
8838
9792
  ] }),
8839
- children && /* @__PURE__ */ jsxRuntime.jsx(Body, { children }),
8840
- footer && /* @__PURE__ */ jsxRuntime.jsx(Footer3, { children: footer })
9793
+ children && /* @__PURE__ */ jsxRuntime.jsx(Body2, { children }),
9794
+ footer && /* @__PURE__ */ jsxRuntime.jsx(Footer4, { children: footer })
8841
9795
  ]
8842
9796
  }
8843
9797
  ) }),
@@ -8845,7 +9799,7 @@ function Modal({
8845
9799
  );
8846
9800
  }
8847
9801
  var modalSizes = ["sm", "md", "lg", "xl", "full"];
8848
- var Root31 = styles.styled("div")({ width: "100%" });
9802
+ var Root42 = styles.styled("div")({ width: "100%" });
8849
9803
  var TabList = styles.styled("div", {
8850
9804
  shouldForwardProp: (prop) => prop !== "$variant"
8851
9805
  })(({ theme, $variant }) => ({
@@ -8916,16 +9870,16 @@ var Panel2 = styles.styled("div")(({ theme }) => ({
8916
9870
  fontFamily: theme.typography.fontFamily,
8917
9871
  color: theme.palette.text.primary
8918
9872
  }));
8919
- var Tabs = React.forwardRef(
9873
+ var Tabs = react.forwardRef(
8920
9874
  ({ tabs, defaultActiveKey, activeKey: controlledKey, onChange, variant = "underline", ...props }, ref) => {
8921
- const [internalKey, setInternalKey] = React.useState(defaultActiveKey ?? tabs[0]?.key ?? "");
9875
+ const [internalKey, setInternalKey] = react.useState(defaultActiveKey ?? tabs[0]?.key ?? "");
8922
9876
  const activeKey = controlledKey ?? internalKey;
8923
9877
  const handleSelect = (key) => {
8924
9878
  if (controlledKey === void 0) setInternalKey(key);
8925
9879
  onChange?.(key);
8926
9880
  };
8927
9881
  const activeTab = tabs.find((t) => t.key === activeKey);
8928
- return /* @__PURE__ */ jsxRuntime.jsxs(Root31, { ref, ...props, children: [
9882
+ return /* @__PURE__ */ jsxRuntime.jsxs(Root42, { ref, ...props, children: [
8929
9883
  /* @__PURE__ */ jsxRuntime.jsx(TabList, { role: "tablist", $variant: variant, children: tabs.map((tab) => /* @__PURE__ */ jsxRuntime.jsx(
8930
9884
  TabButton,
8931
9885
  {
@@ -8983,7 +9937,7 @@ var Header2 = styles.styled("div")(({ theme }) => ({
8983
9937
  padding: "1rem 1.25rem",
8984
9938
  borderBottom: `1px solid ${theme.palette.divider}`
8985
9939
  }));
8986
- var Title6 = styles.styled("h2")(({ theme }) => ({
9940
+ var Title8 = styles.styled("h2")(({ theme }) => ({
8987
9941
  margin: 0,
8988
9942
  fontSize: "1.125rem",
8989
9943
  color: theme.palette.text.primary
@@ -9046,14 +10000,14 @@ var RemoveButton2 = styles.styled("button")(({ theme }) => ({
9046
10000
  padding: 0,
9047
10001
  fontSize: "0.875rem"
9048
10002
  }));
9049
- var Footer4 = styles.styled("div")(({ theme }) => ({
10003
+ var Footer5 = styles.styled("div")(({ theme }) => ({
9050
10004
  display: "grid",
9051
10005
  gap: "1rem",
9052
10006
  marginTop: "auto",
9053
10007
  padding: "1rem 1.25rem",
9054
10008
  borderTop: `1px solid ${theme.palette.divider}`
9055
10009
  }));
9056
- var CartDrawer = React.forwardRef(
10010
+ var CartDrawer = react.forwardRef(
9057
10011
  ({
9058
10012
  open,
9059
10013
  title = "Koszyk",
@@ -9068,7 +10022,7 @@ var CartDrawer = React.forwardRef(
9068
10022
  ...props
9069
10023
  }, ref) => /* @__PURE__ */ jsxRuntime.jsx(Overlay3, { $open: open, children: /* @__PURE__ */ jsxRuntime.jsxs(Panel3, { ref, "aria-hidden": !open, "aria-label": title, ...props, children: [
9070
10024
  /* @__PURE__ */ jsxRuntime.jsxs(Header2, { children: [
9071
- /* @__PURE__ */ jsxRuntime.jsx(Title6, { children: title }),
10025
+ /* @__PURE__ */ jsxRuntime.jsx(Title8, { children: title }),
9072
10026
  /* @__PURE__ */ jsxRuntime.jsx(IconButton, { type: "button", "aria-label": closeLabel, onClick: onClose, children: "\xD7" })
9073
10027
  ] }),
9074
10028
  /* @__PURE__ */ jsxRuntime.jsx(Items, { children: items.map((item) => /* @__PURE__ */ jsxRuntime.jsxs(Item3, { children: [
@@ -9091,7 +10045,7 @@ var CartDrawer = React.forwardRef(
9091
10045
  ] })
9092
10046
  ] })
9093
10047
  ] }, item.id)) }),
9094
- /* @__PURE__ */ jsxRuntime.jsxs(Footer4, { children: [
10048
+ /* @__PURE__ */ jsxRuntime.jsxs(Footer5, { children: [
9095
10049
  /* @__PURE__ */ jsxRuntime.jsxs(Row4, { children: [
9096
10050
  /* @__PURE__ */ jsxRuntime.jsx("strong", { children: "Suma" }),
9097
10051
  /* @__PURE__ */ jsxRuntime.jsx("strong", { children: subtotal })
@@ -9101,7 +10055,7 @@ var CartDrawer = React.forwardRef(
9101
10055
  ] }) })
9102
10056
  );
9103
10057
  CartDrawer.displayName = "CartDrawer";
9104
- var Root32 = styles.styled("aside")(({ theme }) => ({
10058
+ var Root43 = styles.styled("aside")(({ theme }) => ({
9105
10059
  display: "grid",
9106
10060
  gap: "1.5rem",
9107
10061
  width: "100%",
@@ -9118,7 +10072,7 @@ var Header3 = styles.styled("div")({
9118
10072
  justifyContent: "space-between",
9119
10073
  gap: "1rem"
9120
10074
  });
9121
- var Title7 = styles.styled("h2")(({ theme }) => ({
10075
+ var Title9 = styles.styled("h2")(({ theme }) => ({
9122
10076
  margin: 0,
9123
10077
  color: theme.palette.text.primary,
9124
10078
  fontSize: "1.125rem"
@@ -9136,7 +10090,7 @@ var Legend = styles.styled("legend")({
9136
10090
  marginBottom: "0.75rem",
9137
10091
  fontWeight: 800
9138
10092
  });
9139
- var OptionLabel = styles.styled("label")(({ theme }) => ({
10093
+ var OptionLabel2 = styles.styled("label")(({ theme }) => ({
9140
10094
  display: "flex",
9141
10095
  alignItems: "center",
9142
10096
  justifyContent: "space-between",
@@ -9163,7 +10117,7 @@ var NumberInput2 = styles.styled("input")(({ theme }) => ({
9163
10117
  fontFamily: theme.typography.fontFamily
9164
10118
  }));
9165
10119
  function renderOptions(options, selected, onToggle) {
9166
- return options.map((option) => /* @__PURE__ */ jsxRuntime.jsxs(OptionLabel, { children: [
10120
+ return options.map((option) => /* @__PURE__ */ jsxRuntime.jsxs(OptionLabel2, { children: [
9167
10121
  /* @__PURE__ */ jsxRuntime.jsxs(OptionText, { children: [
9168
10122
  /* @__PURE__ */ jsxRuntime.jsx(
9169
10123
  "input",
@@ -9178,7 +10132,7 @@ function renderOptions(options, selected, onToggle) {
9178
10132
  option.count !== void 0 && /* @__PURE__ */ jsxRuntime.jsx("span", { children: option.count })
9179
10133
  ] }, option.value));
9180
10134
  }
9181
- var FilterSidebar = React.forwardRef(
10135
+ var FilterSidebar = react.forwardRef(
9182
10136
  ({
9183
10137
  categories = [],
9184
10138
  colors = [],
@@ -9193,9 +10147,9 @@ var FilterSidebar = React.forwardRef(
9193
10147
  onPriceRangeChange,
9194
10148
  onClear,
9195
10149
  ...props
9196
- }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(Root32, { ref, "aria-label": "Filtry produkt\xF3w", ...props, children: [
10150
+ }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(Root43, { ref, "aria-label": "Filtry produkt\xF3w", ...props, children: [
9197
10151
  /* @__PURE__ */ jsxRuntime.jsxs(Header3, { children: [
9198
- /* @__PURE__ */ jsxRuntime.jsx(Title7, { children: "Filtry" }),
10152
+ /* @__PURE__ */ jsxRuntime.jsx(Title9, { children: "Filtry" }),
9199
10153
  onClear && /* @__PURE__ */ jsxRuntime.jsx(Button, { variant: "ghost", size: "sm", onClick: onClear, children: "Wyczy\u015B\u0107" })
9200
10154
  ] }),
9201
10155
  priceRange && /* @__PURE__ */ jsxRuntime.jsxs(Group, { children: [
@@ -9236,8 +10190,8 @@ var FilterSidebar = React.forwardRef(
9236
10190
  ] })
9237
10191
  );
9238
10192
  FilterSidebar.displayName = "FilterSidebar";
9239
- var Root33 = styles.styled(Card)({ display: "grid", gap: "1rem" });
9240
- var Title8 = styles.styled("h2")(({ theme }) => ({
10193
+ var Root44 = styles.styled(Card)({ display: "grid", gap: "1rem" });
10194
+ var Title10 = styles.styled("h2")(({ theme }) => ({
9241
10195
  margin: 0,
9242
10196
  fontFamily: theme.typography.fontFamily,
9243
10197
  fontSize: "1.125rem",
@@ -9322,7 +10276,7 @@ var TotalRow = styles.styled(Row5)(({ theme }) => ({
9322
10276
  fontSize: "1rem",
9323
10277
  fontWeight: 800
9324
10278
  }));
9325
- var OrderSummary = React.forwardRef(
10279
+ var OrderSummary = react.forwardRef(
9326
10280
  ({
9327
10281
  title = "Podsumowanie zam\xF3wienia",
9328
10282
  items = [],
@@ -9336,8 +10290,8 @@ var OrderSummary = React.forwardRef(
9336
10290
  ctaLabel = "Przejd\u017A do kasy",
9337
10291
  onCheckout,
9338
10292
  ...props
9339
- }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(Root33, { ref, variant: "default", padding: "lg", rounded: "lg", ...props, children: [
9340
- /* @__PURE__ */ jsxRuntime.jsx(Title8, { children: title }),
10293
+ }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(Root44, { ref, variant: "default", padding: "lg", rounded: "lg", ...props, children: [
10294
+ /* @__PURE__ */ jsxRuntime.jsx(Title10, { children: title }),
9341
10295
  items.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
9342
10296
  /* @__PURE__ */ jsxRuntime.jsx(SectionTitle, { children: itemsTitle }),
9343
10297
  /* @__PURE__ */ jsxRuntime.jsx(ItemList, { children: items.map((item) => /* @__PURE__ */ jsxRuntime.jsxs(Item4, { children: [
@@ -9388,10 +10342,211 @@ var OrderSummary = React.forwardRef(
9388
10342
  ] })
9389
10343
  );
9390
10344
  OrderSummary.displayName = "OrderSummary";
10345
+ var Root45 = styles.styled("div")(({ theme }) => ({
10346
+ fontFamily: theme.typography.fontFamily
10347
+ }));
10348
+ var Grid2 = styles.styled("div", {
10349
+ shouldForwardProp: (prop) => prop !== "$columns"
10350
+ })(({ theme, $columns }) => ({
10351
+ display: "grid",
10352
+ gridTemplateColumns: `repeat(1, 1fr)`,
10353
+ gap: "1.25rem",
10354
+ [theme.breakpoints.up("sm")]: {
10355
+ gridTemplateColumns: `repeat(${Math.min($columns, 2)}, 1fr)`
10356
+ },
10357
+ [theme.breakpoints.up("md")]: {
10358
+ gridTemplateColumns: `repeat(${Math.min($columns, 3)}, 1fr)`
10359
+ },
10360
+ [theme.breakpoints.up("lg")]: {
10361
+ gridTemplateColumns: `repeat(${Math.min($columns, 4)}, 1fr)`
10362
+ }
10363
+ }));
10364
+ var ScrollTrack = styles.styled("div")({
10365
+ display: "flex",
10366
+ gap: "1.25rem",
10367
+ overflowX: "auto",
10368
+ paddingBottom: "0.5rem",
10369
+ scrollSnapType: "x mandatory",
10370
+ "&::-webkit-scrollbar": { height: "4px" },
10371
+ "&::-webkit-scrollbar-track": { background: "transparent" },
10372
+ "&::-webkit-scrollbar-thumb": { borderRadius: "9999px", background: "rgba(0,0,0,0.2)" },
10373
+ "& > *": {
10374
+ flexShrink: 0,
10375
+ scrollSnapAlign: "start",
10376
+ width: "clamp(220px, 28vw, 280px)"
10377
+ }
10378
+ });
10379
+ var RelatedProducts = react.forwardRef(
10380
+ ({ products, title = "Podobne produkty", layout = "grid", columns = 4, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(Root45, { ref, ...props, children: [
10381
+ /* @__PURE__ */ jsxRuntime.jsx(SectionHeading, { title, align: "left", style: { marginBottom: "1.5rem" } }),
10382
+ layout === "scroll" ? /* @__PURE__ */ jsxRuntime.jsx(ScrollTrack, { children: products.map((product, i) => /* @__PURE__ */ jsxRuntime.jsx(ProductCard, { ...product }, product.name + i)) }) : /* @__PURE__ */ jsxRuntime.jsx(Grid2, { $columns: columns, children: products.map((product, i) => /* @__PURE__ */ jsxRuntime.jsx(ProductCard, { ...product }, product.name + i)) })
10383
+ ] })
10384
+ );
10385
+ RelatedProducts.displayName = "RelatedProducts";
10386
+ var relatedProductsLayouts = ["grid", "scroll"];
10387
+ var Root46 = styles.styled("div")(({ theme }) => ({
10388
+ fontFamily: theme.typography.fontFamily
10389
+ }));
10390
+ var Summary = styles.styled("div")(({ theme }) => ({
10391
+ display: "flex",
10392
+ alignItems: "center",
10393
+ gap: "2rem",
10394
+ flexWrap: "wrap",
10395
+ padding: "1.5rem",
10396
+ backgroundColor: theme.palette.action.hover,
10397
+ borderRadius: theme.shape.borderRadius,
10398
+ marginBottom: "2rem"
10399
+ }));
10400
+ var AverageBlock = styles.styled("div")({
10401
+ display: "flex",
10402
+ flexDirection: "column",
10403
+ alignItems: "center",
10404
+ gap: "0.25rem"
10405
+ });
10406
+ var AverageScore = styles.styled("span")(({ theme }) => ({
10407
+ fontSize: "3rem",
10408
+ fontWeight: 800,
10409
+ lineHeight: 1,
10410
+ color: theme.palette.text.primary
10411
+ }));
10412
+ var Distribution = styles.styled("div")({ flex: 1, display: "flex", flexDirection: "column", gap: "0.375rem" });
10413
+ var DistRow = styles.styled("div")({ display: "flex", alignItems: "center", gap: "0.75rem" });
10414
+ var DistLabel = styles.styled("span")(({ theme }) => ({
10415
+ fontSize: "0.8125rem",
10416
+ color: theme.palette.text.secondary,
10417
+ width: "1.5rem",
10418
+ textAlign: "right"
10419
+ }));
10420
+ var DistBar = styles.styled("div")(({ theme }) => ({
10421
+ flex: 1,
10422
+ height: "0.5rem",
10423
+ borderRadius: "9999px",
10424
+ backgroundColor: theme.palette.divider,
10425
+ overflow: "hidden"
10426
+ }));
10427
+ var DistFill = styles.styled("div", {
10428
+ shouldForwardProp: (prop) => prop !== "$pct"
10429
+ })(({ $pct }) => ({
10430
+ height: "100%",
10431
+ width: `${$pct}%`,
10432
+ backgroundColor: "#f59e0b",
10433
+ borderRadius: "9999px",
10434
+ transition: "width 400ms ease"
10435
+ }));
10436
+ var ReviewList = styles.styled("div")({
10437
+ display: "flex",
10438
+ flexDirection: "column",
10439
+ gap: "1.5rem"
10440
+ });
10441
+ var ReviewCard = styles.styled("div")(({ theme }) => ({
10442
+ padding: "1.25rem",
10443
+ border: `1px solid ${theme.palette.divider}`,
10444
+ borderRadius: theme.shape.borderRadius,
10445
+ display: "flex",
10446
+ flexDirection: "column",
10447
+ gap: "0.75rem"
10448
+ }));
10449
+ var ReviewHeader = styles.styled("div")({
10450
+ display: "flex",
10451
+ alignItems: "flex-start",
10452
+ gap: "0.875rem"
10453
+ });
10454
+ var AuthorInfo2 = styles.styled("div")({ flex: 1 });
10455
+ var AuthorName2 = styles.styled("div")(({ theme }) => ({
10456
+ display: "flex",
10457
+ alignItems: "center",
10458
+ gap: "0.375rem",
10459
+ fontSize: "0.9375rem",
10460
+ fontWeight: 700,
10461
+ color: theme.palette.text.primary
10462
+ }));
10463
+ var ReviewDate = styles.styled("div")(({ theme }) => ({
10464
+ fontSize: "0.8125rem",
10465
+ color: theme.palette.text.secondary,
10466
+ marginTop: "0.125rem"
10467
+ }));
10468
+ var ReviewTitle = styles.styled("div")(({ theme }) => ({
10469
+ fontSize: "0.9375rem",
10470
+ fontWeight: 700,
10471
+ color: theme.palette.text.primary
10472
+ }));
10473
+ var ReviewContent = styles.styled("p")(({ theme }) => ({
10474
+ margin: 0,
10475
+ fontSize: "0.9375rem",
10476
+ color: theme.palette.text.secondary,
10477
+ lineHeight: 1.6
10478
+ }));
10479
+ var HelpfulRow = styles.styled("div")(({ theme }) => ({
10480
+ display: "flex",
10481
+ alignItems: "center",
10482
+ gap: "0.375rem",
10483
+ fontSize: "0.8125rem",
10484
+ color: theme.palette.text.secondary
10485
+ }));
10486
+ function ReviewItem({ review }) {
10487
+ return /* @__PURE__ */ jsxRuntime.jsxs(ReviewCard, { children: [
10488
+ /* @__PURE__ */ jsxRuntime.jsxs(ReviewHeader, { children: [
10489
+ /* @__PURE__ */ jsxRuntime.jsx(
10490
+ Avatar,
10491
+ {
10492
+ initials: review.author.slice(0, 2).toUpperCase(),
10493
+ size: "sm"
10494
+ }
10495
+ ),
10496
+ /* @__PURE__ */ jsxRuntime.jsxs(AuthorInfo2, { children: [
10497
+ /* @__PURE__ */ jsxRuntime.jsxs(AuthorName2, { children: [
10498
+ review.author,
10499
+ review.verified && /* @__PURE__ */ jsxRuntime.jsx(VerifiedIcon__default.default, { "aria-label": "Zweryfikowany zakup", style: { fontSize: 14, color: "#16a34a" } })
10500
+ ] }),
10501
+ /* @__PURE__ */ jsxRuntime.jsx(ReviewDate, { children: review.date })
10502
+ ] }),
10503
+ /* @__PURE__ */ jsxRuntime.jsx(Rating, { value: review.rating, size: "sm", readonly: true })
10504
+ ] }),
10505
+ review.title && /* @__PURE__ */ jsxRuntime.jsx(ReviewTitle, { children: review.title }),
10506
+ /* @__PURE__ */ jsxRuntime.jsx(ReviewContent, { children: review.content }),
10507
+ review.helpfulCount !== void 0 && /* @__PURE__ */ jsxRuntime.jsxs(HelpfulRow, { children: [
10508
+ /* @__PURE__ */ jsxRuntime.jsx(ThumbUpOutlinedIcon__default.default, { "aria-hidden": true, style: { fontSize: 14 } }),
10509
+ review.helpfulCount,
10510
+ " os\xF3b uzna\u0142o t\u0119 recenzj\u0119 za pomocn\u0105"
10511
+ ] })
10512
+ ] });
10513
+ }
10514
+ var ReviewSection = react.forwardRef(
10515
+ ({ reviews, averageRating, totalReviews, title = "Opinie klient\xF3w", ratingDistribution, ...props }, ref) => {
10516
+ const totalDist = ratingDistribution ? Object.values(ratingDistribution).reduce((a, b) => a + b, 0) : 0;
10517
+ return /* @__PURE__ */ jsxRuntime.jsxs(Root46, { ref, ...props, children: [
10518
+ /* @__PURE__ */ jsxRuntime.jsx(SectionHeading, { title, align: "left", style: { marginBottom: "1.5rem" } }),
10519
+ (averageRating !== void 0 || ratingDistribution) && /* @__PURE__ */ jsxRuntime.jsxs(Summary, { children: [
10520
+ averageRating !== void 0 && /* @__PURE__ */ jsxRuntime.jsxs(AverageBlock, { children: [
10521
+ /* @__PURE__ */ jsxRuntime.jsx(AverageScore, { children: averageRating.toFixed(1) }),
10522
+ /* @__PURE__ */ jsxRuntime.jsx(Rating, { value: averageRating, size: "sm", readonly: true }),
10523
+ totalReviews !== void 0 && /* @__PURE__ */ jsxRuntime.jsxs("span", { style: { fontSize: "0.8125rem", marginTop: "0.25rem" }, children: [
10524
+ totalReviews,
10525
+ " opinii"
10526
+ ] })
10527
+ ] }),
10528
+ ratingDistribution && /* @__PURE__ */ jsxRuntime.jsx(Distribution, { children: [5, 4, 3, 2, 1].map((star) => {
10529
+ const count = ratingDistribution[star] ?? 0;
10530
+ const pct2 = totalDist > 0 ? count / totalDist * 100 : 0;
10531
+ return /* @__PURE__ */ jsxRuntime.jsxs(DistRow, { children: [
10532
+ /* @__PURE__ */ jsxRuntime.jsxs(DistLabel, { children: [
10533
+ star,
10534
+ "\u2605"
10535
+ ] }),
10536
+ /* @__PURE__ */ jsxRuntime.jsx(DistBar, { children: /* @__PURE__ */ jsxRuntime.jsx(DistFill, { $pct: pct2 }) }),
10537
+ /* @__PURE__ */ jsxRuntime.jsx(DistLabel, { style: { textAlign: "left" }, children: count })
10538
+ ] }, star);
10539
+ }) })
10540
+ ] }),
10541
+ /* @__PURE__ */ jsxRuntime.jsx(ReviewList, { children: reviews.map((review) => /* @__PURE__ */ jsxRuntime.jsx(ReviewItem, { review }, review.id)) })
10542
+ ] });
10543
+ }
10544
+ );
10545
+ ReviewSection.displayName = "ReviewSection";
9391
10546
  var List4 = styles.styled("div")(({ $hasHeading }) => ({
9392
10547
  marginTop: $hasHeading ? "2.5rem" : 0
9393
10548
  }));
9394
- var FaqSection = React.forwardRef(
10549
+ var FaqSection = react.forwardRef(
9395
10550
  ({
9396
10551
  title = "Najcz\u0119\u015Bciej zadawane pytania",
9397
10552
  description,
@@ -9416,7 +10571,7 @@ var FaqSection = React.forwardRef(
9416
10571
  }
9417
10572
  );
9418
10573
  FaqSection.displayName = "FaqSection";
9419
- var Grid2 = styles.styled("div", {
10574
+ var Grid3 = styles.styled("div", {
9420
10575
  shouldForwardProp: (prop) => !["$columns", "$hasHeading", "$iconLeft"].includes(prop)
9421
10576
  })(({ theme, $columns, $hasHeading, $iconLeft }) => ({
9422
10577
  display: "grid",
@@ -9430,7 +10585,7 @@ var Grid2 = styles.styled("div", {
9430
10585
  gridTemplateColumns: `repeat(${$columns}, minmax(0, 1fr))`
9431
10586
  }
9432
10587
  }));
9433
- var FeatureGrid = React.forwardRef(
10588
+ var FeatureGrid = react.forwardRef(
9434
10589
  ({
9435
10590
  title,
9436
10591
  description,
@@ -9445,7 +10600,7 @@ var FeatureGrid = React.forwardRef(
9445
10600
  const hasHeading = Boolean(title || description);
9446
10601
  return /* @__PURE__ */ jsxRuntime.jsx(Section, { ref, ...rest, children: /* @__PURE__ */ jsxRuntime.jsxs(Container, { maxWidth, children: [
9447
10602
  hasHeading && /* @__PURE__ */ jsxRuntime.jsx(SectionHeading, { title: title ?? "", description, align: headingAlign }),
9448
- /* @__PURE__ */ jsxRuntime.jsx(Grid2, { $columns: columns, $hasHeading: hasHeading, $iconLeft: itemLayout === "icon-left", children: features.map((feature, index) => /* @__PURE__ */ jsxRuntime.jsx(
10603
+ /* @__PURE__ */ jsxRuntime.jsx(Grid3, { $columns: columns, $hasHeading: hasHeading, $iconLeft: itemLayout === "icon-left", children: features.map((feature, index) => /* @__PURE__ */ jsxRuntime.jsx(
9449
10604
  FeatureItem2,
9450
10605
  {
9451
10606
  feature,
@@ -9459,7 +10614,7 @@ var FeatureGrid = React.forwardRef(
9459
10614
  );
9460
10615
  FeatureGrid.displayName = "FeatureGrid";
9461
10616
  var featureGridColumns = [2, 3, 4];
9462
- var Grid3 = styles.styled("div", {
10617
+ var Grid4 = styles.styled("div", {
9463
10618
  shouldForwardProp: (prop) => !["$columns", "$hasHeading"].includes(prop)
9464
10619
  })(({ theme, $columns, $hasHeading }) => ({
9465
10620
  display: "grid",
@@ -9474,7 +10629,7 @@ var Grid3 = styles.styled("div", {
9474
10629
  gridTemplateColumns: `repeat(${$columns}, minmax(0, 1fr))`
9475
10630
  }
9476
10631
  }));
9477
- var LogoCloud = React.forwardRef(
10632
+ var LogoCloud = react.forwardRef(
9478
10633
  ({
9479
10634
  title = "Zaufali nam",
9480
10635
  description,
@@ -9491,7 +10646,7 @@ var LogoCloud = React.forwardRef(
9491
10646
  return /* @__PURE__ */ jsxRuntime.jsx(Section, { ref, ...rest, children: /* @__PURE__ */ jsxRuntime.jsxs(Container, { maxWidth, children: [
9492
10647
  hasHeading && title && /* @__PURE__ */ jsxRuntime.jsx(SectionHeading, { title, description, align: headingAlign }),
9493
10648
  hasHeading && !title && description && /* @__PURE__ */ jsxRuntime.jsx(SectionHeading, { title: description, align: headingAlign, as: "h2" }),
9494
- /* @__PURE__ */ jsxRuntime.jsx(Grid3, { $columns: columns, $hasHeading: hasHeading, children: logos.map((logo) => {
10649
+ /* @__PURE__ */ jsxRuntime.jsx(Grid4, { $columns: columns, $hasHeading: hasHeading, children: logos.map((logo) => {
9495
10650
  const key = `${logo.name}-${logo.href ?? logo.logoUrl ?? "text"}`;
9496
10651
  return /* @__PURE__ */ jsxRuntime.jsx(
9497
10652
  LogoTile,
@@ -9575,7 +10730,7 @@ var SuccessMessage = styles.styled("p")(({ theme }) => ({
9575
10730
  fontFamily: theme.typography.fontFamily,
9576
10731
  textAlign: "center"
9577
10732
  }));
9578
- var NewsletterSection = React.forwardRef(
10733
+ var NewsletterSection = react.forwardRef(
9579
10734
  ({
9580
10735
  title = "B\u0105d\u017A na bie\u017C\u0105co",
9581
10736
  description = "Zapisz si\u0119 do newslettera i otrzymuj najnowsze informacje prosto na swoj\u0105 skrzynk\u0119.",
@@ -9590,8 +10745,8 @@ var NewsletterSection = React.forwardRef(
9590
10745
  onSubmit,
9591
10746
  ...rest
9592
10747
  }, ref) => {
9593
- const [email, setEmail] = React.useState("");
9594
- const [submitted, setSubmitted] = React.useState(false);
10748
+ const [email, setEmail] = react.useState("");
10749
+ const [submitted, setSubmitted] = react.useState(false);
9595
10750
  const handleSubmit = (e) => {
9596
10751
  e.preventDefault();
9597
10752
  if (!email) return;
@@ -9641,12 +10796,12 @@ var Section2 = styles.styled("section")(({ theme }) => ({
9641
10796
  padding: "5rem 1rem",
9642
10797
  backgroundColor: theme.palette.background.default
9643
10798
  }));
9644
- var Inner = styles.styled("div")({
10799
+ var Inner2 = styles.styled("div")({
9645
10800
  maxWidth: "80rem",
9646
10801
  marginLeft: "auto",
9647
10802
  marginRight: "auto"
9648
10803
  });
9649
- var Grid4 = styles.styled("div")(({ theme }) => ({
10804
+ var Grid5 = styles.styled("div")(({ theme }) => ({
9650
10805
  marginTop: "3rem",
9651
10806
  display: "grid",
9652
10807
  gridTemplateColumns: "1fr",
@@ -9659,16 +10814,16 @@ var Grid4 = styles.styled("div")(({ theme }) => ({
9659
10814
  }
9660
10815
  }));
9661
10816
  function PricingSection({ title, description, plans, ...props }) {
9662
- return /* @__PURE__ */ jsxRuntime.jsx(Section2, { ...props, children: /* @__PURE__ */ jsxRuntime.jsxs(Inner, { children: [
10817
+ return /* @__PURE__ */ jsxRuntime.jsx(Section2, { ...props, children: /* @__PURE__ */ jsxRuntime.jsxs(Inner2, { children: [
9663
10818
  (title || description) && /* @__PURE__ */ jsxRuntime.jsx(SectionHeading, { title: title ?? "", description, align: "center" }),
9664
- /* @__PURE__ */ jsxRuntime.jsx(Grid4, { children: plans.map((plan, i) => /* @__PURE__ */ jsxRuntime.jsx(PricingCard, { ...plan }, i)) })
10819
+ /* @__PURE__ */ jsxRuntime.jsx(Grid5, { children: plans.map((plan, i) => /* @__PURE__ */ jsxRuntime.jsx(PricingCard, { ...plan }, i)) })
9665
10820
  ] }) });
9666
10821
  }
9667
10822
  var Section3 = styles.styled("section")(({ theme }) => ({
9668
10823
  padding: "5rem 1rem",
9669
10824
  backgroundColor: theme.palette.background.default
9670
10825
  }));
9671
- var Inner2 = styles.styled("div")({
10826
+ var Inner3 = styles.styled("div")({
9672
10827
  maxWidth: "80rem",
9673
10828
  marginLeft: "auto",
9674
10829
  marginRight: "auto"
@@ -9706,9 +10861,9 @@ function ArrowIcon() {
9706
10861
  return /* @__PURE__ */ jsxRuntime.jsx(ArrowForwardIcon__default.default, { "aria-hidden": "true", style: { fontSize: 24 } });
9707
10862
  }
9708
10863
  function ProcessSection({ title, description, steps, ...props }) {
9709
- return /* @__PURE__ */ jsxRuntime.jsx(Section3, { ...props, children: /* @__PURE__ */ jsxRuntime.jsxs(Inner2, { children: [
10864
+ return /* @__PURE__ */ jsxRuntime.jsx(Section3, { ...props, children: /* @__PURE__ */ jsxRuntime.jsxs(Inner3, { children: [
9710
10865
  (title || description) && /* @__PURE__ */ jsxRuntime.jsx(SectionHeading, { title: title ?? "", description, align: "center" }),
9711
- /* @__PURE__ */ jsxRuntime.jsx(StepsRow, { children: steps.map((step, i) => /* @__PURE__ */ jsxRuntime.jsxs(React.Fragment, { children: [
10866
+ /* @__PURE__ */ jsxRuntime.jsx(StepsRow, { children: steps.map((step, i) => /* @__PURE__ */ jsxRuntime.jsxs(react.Fragment, { children: [
9712
10867
  /* @__PURE__ */ jsxRuntime.jsx(StepWrapper, { children: /* @__PURE__ */ jsxRuntime.jsx(
9713
10868
  ProcessStep,
9714
10869
  {
@@ -9722,7 +10877,7 @@ function ProcessSection({ title, description, steps, ...props }) {
9722
10877
  ] }, i)) })
9723
10878
  ] }) });
9724
10879
  }
9725
- var Grid5 = styles.styled("div", {
10880
+ var Grid6 = styles.styled("div", {
9726
10881
  shouldForwardProp: (prop) => !["$columns", "$hasHeading"].includes(prop)
9727
10882
  })(({ theme, $columns, $hasHeading }) => ({
9728
10883
  display: "grid",
@@ -9736,7 +10891,7 @@ var Grid5 = styles.styled("div", {
9736
10891
  gridTemplateColumns: `repeat(${$columns}, minmax(0, 1fr))`
9737
10892
  }
9738
10893
  }));
9739
- var StatsSection = React.forwardRef(
10894
+ var StatsSection = react.forwardRef(
9740
10895
  ({
9741
10896
  title,
9742
10897
  description,
@@ -9751,7 +10906,7 @@ var StatsSection = React.forwardRef(
9751
10906
  const hasHeading = Boolean(title || description);
9752
10907
  return /* @__PURE__ */ jsxRuntime.jsx(Section, { ref, ...rest, children: /* @__PURE__ */ jsxRuntime.jsxs(Container, { maxWidth, children: [
9753
10908
  hasHeading && /* @__PURE__ */ jsxRuntime.jsx(SectionHeading, { title: title ?? "", description, align: headingAlign }),
9754
- /* @__PURE__ */ jsxRuntime.jsx(Grid5, { $columns: columns, $hasHeading: hasHeading, children: stats.map((stat, index) => /* @__PURE__ */ jsxRuntime.jsx(
10909
+ /* @__PURE__ */ jsxRuntime.jsx(Grid6, { $columns: columns, $hasHeading: hasHeading, children: stats.map((stat, index) => /* @__PURE__ */ jsxRuntime.jsx(
9755
10910
  StatCard,
9756
10911
  {
9757
10912
  stat,
@@ -9765,7 +10920,7 @@ var StatsSection = React.forwardRef(
9765
10920
  );
9766
10921
  StatsSection.displayName = "StatsSection";
9767
10922
  var statsSectionColumns = [2, 3, 4];
9768
- var Grid6 = styles.styled("div", {
10923
+ var Grid7 = styles.styled("div", {
9769
10924
  shouldForwardProp: (prop) => !["$columns", "$hasHeading"].includes(prop)
9770
10925
  })(({ theme, $columns, $hasHeading }) => ({
9771
10926
  display: "grid",
@@ -9779,7 +10934,7 @@ var Grid6 = styles.styled("div", {
9779
10934
  gridTemplateColumns: `repeat(${$columns}, minmax(0, 1fr))`
9780
10935
  }
9781
10936
  }));
9782
- var TeamSection = React.forwardRef(
10937
+ var TeamSection = react.forwardRef(
9783
10938
  ({
9784
10939
  title = "Nasz zesp\xF3\u0142",
9785
10940
  description,
@@ -9794,7 +10949,7 @@ var TeamSection = React.forwardRef(
9794
10949
  return /* @__PURE__ */ jsxRuntime.jsx(Section, { ref, ...rest, children: /* @__PURE__ */ jsxRuntime.jsxs(Container, { maxWidth, children: [
9795
10950
  hasHeading && title && /* @__PURE__ */ jsxRuntime.jsx(SectionHeading, { title, description, align: headingAlign }),
9796
10951
  hasHeading && !title && description && /* @__PURE__ */ jsxRuntime.jsx(SectionHeading, { title: description, align: headingAlign, as: "h2" }),
9797
- /* @__PURE__ */ jsxRuntime.jsx(Grid6, { $columns: columns, $hasHeading: hasHeading, children: members.map((member) => /* @__PURE__ */ jsxRuntime.jsx(
10952
+ /* @__PURE__ */ jsxRuntime.jsx(Grid7, { $columns: columns, $hasHeading: hasHeading, children: members.map((member) => /* @__PURE__ */ jsxRuntime.jsx(
9798
10953
  TeamMemberCard,
9799
10954
  {
9800
10955
  member,
@@ -9807,7 +10962,7 @@ var TeamSection = React.forwardRef(
9807
10962
  );
9808
10963
  TeamSection.displayName = "TeamSection";
9809
10964
  var teamSectionColumns = [2, 3, 4];
9810
- var Grid7 = styles.styled("div", {
10965
+ var Grid8 = styles.styled("div", {
9811
10966
  shouldForwardProp: (prop) => !["$columns", "$hasHeading"].includes(prop)
9812
10967
  })(({ theme, $columns, $hasHeading }) => ({
9813
10968
  display: "grid",
@@ -9821,7 +10976,7 @@ var Grid7 = styles.styled("div", {
9821
10976
  gridTemplateColumns: `repeat(${$columns}, minmax(0, 1fr))`
9822
10977
  }
9823
10978
  }));
9824
- var TestimonialsSection = React.forwardRef(
10979
+ var TestimonialsSection = react.forwardRef(
9825
10980
  ({
9826
10981
  title = "Co m\xF3wi\u0105 nasi klienci",
9827
10982
  description,
@@ -9835,7 +10990,7 @@ var TestimonialsSection = React.forwardRef(
9835
10990
  const hasHeading = Boolean(title || description);
9836
10991
  return /* @__PURE__ */ jsxRuntime.jsx(Section, { ref, ...rest, children: /* @__PURE__ */ jsxRuntime.jsxs(Container, { maxWidth, children: [
9837
10992
  hasHeading && /* @__PURE__ */ jsxRuntime.jsx(SectionHeading, { title: title ?? "", description, align: headingAlign }),
9838
- /* @__PURE__ */ jsxRuntime.jsx(Grid7, { $columns: columns, $hasHeading: hasHeading, children: testimonials.map((testimonial, index) => /* @__PURE__ */ jsxRuntime.jsx(
10993
+ /* @__PURE__ */ jsxRuntime.jsx(Grid8, { $columns: columns, $hasHeading: hasHeading, children: testimonials.map((testimonial, index) => /* @__PURE__ */ jsxRuntime.jsx(
9839
10994
  TestimonialCard,
9840
10995
  {
9841
10996
  testimonial,
@@ -9848,11 +11003,11 @@ var TestimonialsSection = React.forwardRef(
9848
11003
  );
9849
11004
  TestimonialsSection.displayName = "TestimonialsSection";
9850
11005
  var testimonialsSectionColumns = [1, 2, 3];
9851
- var fadeIn4 = react.keyframes`
11006
+ var fadeIn4 = react$1.keyframes`
9852
11007
  from { opacity: 0; }
9853
11008
  to { opacity: 1; }
9854
11009
  `;
9855
- var slideDown = react.keyframes`
11010
+ var slideDown = react$1.keyframes`
9856
11011
  from { opacity: 0; transform: translateY(-8px) scale(0.98); }
9857
11012
  to { opacity: 1; transform: translateY(0) scale(1); }
9858
11013
  `;
@@ -9920,7 +11075,7 @@ var ResultsScroll = styles.styled("div")({
9920
11075
  flex: 1,
9921
11076
  padding: "0.375rem 0"
9922
11077
  });
9923
- var GroupLabel = styles.styled("div")(({ theme }) => ({
11078
+ var GroupLabel3 = styles.styled("div")(({ theme }) => ({
9924
11079
  padding: "0.5rem 1rem 0.25rem",
9925
11080
  fontFamily: theme.typography.fontFamily,
9926
11081
  fontSize: "0.75rem",
@@ -9988,14 +11143,14 @@ var Kbd = styles.styled("kbd")(({ theme }) => ({
9988
11143
  backgroundColor: theme.palette.action.hover,
9989
11144
  lineHeight: 1.6
9990
11145
  }));
9991
- var EmptyState = styles.styled("div")(({ theme }) => ({
11146
+ var EmptyState2 = styles.styled("div")(({ theme }) => ({
9992
11147
  padding: "2.5rem 1rem",
9993
11148
  textAlign: "center",
9994
11149
  fontFamily: theme.typography.fontFamily,
9995
11150
  fontSize: "0.9375rem",
9996
11151
  color: theme.palette.text.secondary
9997
11152
  }));
9998
- var Footer5 = styles.styled("div")(({ theme }) => ({
11153
+ var Footer6 = styles.styled("div")(({ theme }) => ({
9999
11154
  display: "flex",
10000
11155
  gap: "1.25rem",
10001
11156
  padding: "0.5rem 1rem",
@@ -10031,14 +11186,14 @@ function CommandPalette({
10031
11186
  emptyLabel = "Brak wynik\xF3w dla podanej frazy.",
10032
11187
  onSelect
10033
11188
  }) {
10034
- const id = React.useId();
10035
- const [query, setQuery] = React.useState("");
10036
- const [activeIndex, setActiveIndex] = React.useState(0);
10037
- const inputRef = React.useRef(null);
10038
- const activeItemRef = React.useRef(null);
11189
+ const id = react.useId();
11190
+ const [query, setQuery] = react.useState("");
11191
+ const [activeIndex, setActiveIndex] = react.useState(0);
11192
+ const inputRef = react.useRef(null);
11193
+ const activeItemRef = react.useRef(null);
10039
11194
  const filtered = filterGroups(groups, query);
10040
11195
  const flat = flatItems(filtered);
10041
- const handleSelect = React.useCallback(
11196
+ const handleSelect = react.useCallback(
10042
11197
  (item) => {
10043
11198
  item.onSelect?.();
10044
11199
  onSelect?.(item);
@@ -10046,20 +11201,20 @@ function CommandPalette({
10046
11201
  },
10047
11202
  [onSelect, onClose]
10048
11203
  );
10049
- React.useEffect(() => {
11204
+ react.useEffect(() => {
10050
11205
  if (open) {
10051
11206
  setQuery("");
10052
11207
  setActiveIndex(0);
10053
11208
  setTimeout(() => inputRef.current?.focus(), 0);
10054
11209
  }
10055
11210
  }, [open]);
10056
- React.useEffect(() => {
11211
+ react.useEffect(() => {
10057
11212
  setActiveIndex(0);
10058
11213
  }, [query]);
10059
- React.useEffect(() => {
11214
+ react.useEffect(() => {
10060
11215
  activeItemRef.current?.scrollIntoView?.({ block: "nearest" });
10061
11216
  }, [activeIndex]);
10062
- React.useEffect(() => {
11217
+ react.useEffect(() => {
10063
11218
  const handler = (e) => {
10064
11219
  if (!open) return;
10065
11220
  if (e.key === "Escape") {
@@ -10122,8 +11277,8 @@ function CommandPalette({
10122
11277
  ),
10123
11278
  /* @__PURE__ */ jsxRuntime.jsx(KbdHint, { children: "esc" })
10124
11279
  ] }),
10125
- /* @__PURE__ */ jsxRuntime.jsx(ResultsScroll, { id: `${id}-listbox`, role: "listbox", "aria-label": "Wyniki", children: flat.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(EmptyState, { children: emptyLabel }) : filtered.map((group) => /* @__PURE__ */ jsxRuntime.jsxs("div", { role: "group", "aria-labelledby": `${id}-group-${group.id}`, children: [
10126
- /* @__PURE__ */ jsxRuntime.jsx(GroupLabel, { id: `${id}-group-${group.id}`, children: group.label }),
11280
+ /* @__PURE__ */ jsxRuntime.jsx(ResultsScroll, { id: `${id}-listbox`, role: "listbox", "aria-label": "Wyniki", children: flat.length === 0 ? /* @__PURE__ */ jsxRuntime.jsx(EmptyState2, { children: emptyLabel }) : filtered.map((group) => /* @__PURE__ */ jsxRuntime.jsxs("div", { role: "group", "aria-labelledby": `${id}-group-${group.id}`, children: [
11281
+ /* @__PURE__ */ jsxRuntime.jsx(GroupLabel3, { id: `${id}-group-${group.id}`, children: group.label }),
10127
11282
  group.items.map((item) => {
10128
11283
  const idx = globalIndex++;
10129
11284
  const isActive = idx === activeIndex;
@@ -10150,7 +11305,7 @@ function CommandPalette({
10150
11305
  );
10151
11306
  })
10152
11307
  ] }, group.id)) }),
10153
- /* @__PURE__ */ jsxRuntime.jsxs(Footer5, { id: `${id}-hint`, "aria-hidden": "true", children: [
11308
+ /* @__PURE__ */ jsxRuntime.jsxs(Footer6, { id: `${id}-hint`, "aria-hidden": "true", children: [
10154
11309
  /* @__PURE__ */ jsxRuntime.jsxs(FooterHint, { children: [
10155
11310
  /* @__PURE__ */ jsxRuntime.jsx(Kbd, { children: "\u2191" }),
10156
11311
  /* @__PURE__ */ jsxRuntime.jsx(Kbd, { children: "\u2193" }),
@@ -10194,7 +11349,7 @@ var DEFAULT_CATEGORIES = [
10194
11349
  defaultEnabled: false
10195
11350
  }
10196
11351
  ];
10197
- var slideUp2 = react.keyframes`
11352
+ var slideUp2 = react$1.keyframes`
10198
11353
  from { opacity: 0; transform: translateY(100%); }
10199
11354
  to { opacity: 1; transform: translateY(0); }
10200
11355
  `;
@@ -10209,7 +11364,7 @@ var Bar2 = styles.styled("div")(({ theme }) => ({
10209
11364
  boxShadow: "0 -4px 24px rgba(0,0,0,0.12)",
10210
11365
  animation: `${slideUp2} 300ms cubic-bezier(0.16, 1, 0.3, 1)`
10211
11366
  }));
10212
- var Inner3 = styles.styled("div")({
11367
+ var Inner4 = styles.styled("div")({
10213
11368
  maxWidth: "72rem",
10214
11369
  margin: "0 auto",
10215
11370
  padding: "1.25rem 1.5rem",
@@ -10224,7 +11379,7 @@ var TopRow = styles.styled("div")({
10224
11379
  flexWrap: "wrap"
10225
11380
  });
10226
11381
  var TextBlock = styles.styled("div")({ flex: 1, minWidth: "16rem" });
10227
- var Title9 = styles.styled("p")(({ theme }) => ({
11382
+ var Title11 = styles.styled("p")(({ theme }) => ({
10228
11383
  margin: "0 0 0.25rem",
10229
11384
  fontFamily: theme.typography.fontFamily,
10230
11385
  fontSize: "1rem",
@@ -10232,7 +11387,7 @@ var Title9 = styles.styled("p")(({ theme }) => ({
10232
11387
  color: theme.palette.text.primary,
10233
11388
  lineHeight: 1.4
10234
11389
  }));
10235
- var Description7 = styles.styled("p")(({ theme }) => ({
11390
+ var Description8 = styles.styled("p")(({ theme }) => ({
10236
11391
  margin: 0,
10237
11392
  fontFamily: theme.typography.fontFamily,
10238
11393
  fontSize: "0.875rem",
@@ -10367,9 +11522,9 @@ function CookieConsent({
10367
11522
  privacyPolicyLabel,
10368
11523
  privacyPolicyHref
10369
11524
  }) {
10370
- const id = React.useId();
10371
- const [expanded, setExpanded] = React.useState(false);
10372
- const [prefs, setPrefs] = React.useState(
11525
+ const id = react.useId();
11526
+ const [expanded, setExpanded] = react.useState(false);
11527
+ const [prefs, setPrefs] = react.useState(
10373
11528
  () => Object.fromEntries(categories.map((c) => [c.id, c.defaultEnabled ?? false]))
10374
11529
  );
10375
11530
  if (!open) return null;
@@ -10386,11 +11541,11 @@ function CookieConsent({
10386
11541
  onSave?.(prefs);
10387
11542
  };
10388
11543
  return reactDom.createPortal(
10389
- /* @__PURE__ */ jsxRuntime.jsx(Bar2, { role: "region", "aria-label": "Zgoda na pliki cookie", "aria-live": "polite", children: /* @__PURE__ */ jsxRuntime.jsxs(Inner3, { children: [
11544
+ /* @__PURE__ */ jsxRuntime.jsx(Bar2, { role: "region", "aria-label": "Zgoda na pliki cookie", "aria-live": "polite", children: /* @__PURE__ */ jsxRuntime.jsxs(Inner4, { children: [
10390
11545
  /* @__PURE__ */ jsxRuntime.jsxs(TopRow, { children: [
10391
11546
  /* @__PURE__ */ jsxRuntime.jsxs(TextBlock, { children: [
10392
- /* @__PURE__ */ jsxRuntime.jsx(Title9, { children: title }),
10393
- /* @__PURE__ */ jsxRuntime.jsxs(Description7, { children: [
11547
+ /* @__PURE__ */ jsxRuntime.jsx(Title11, { children: title }),
11548
+ /* @__PURE__ */ jsxRuntime.jsxs(Description8, { children: [
10394
11549
  description,
10395
11550
  privacyPolicyLabel && privacyPolicyHref && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
10396
11551
  " ",
@@ -10440,12 +11595,12 @@ function CookieConsent({
10440
11595
  );
10441
11596
  }
10442
11597
  var defaultCookieCategories = DEFAULT_CATEGORIES;
10443
- var Root34 = styles.styled("footer")(({ theme }) => ({
11598
+ var Root47 = styles.styled("footer")(({ theme }) => ({
10444
11599
  width: "100%",
10445
11600
  backgroundColor: theme.palette.background.paper,
10446
11601
  borderTop: `1px solid ${theme.palette.divider}`
10447
11602
  }));
10448
- var Inner4 = styles.styled("div")({
11603
+ var Inner5 = styles.styled("div")({
10449
11604
  maxWidth: "72rem",
10450
11605
  margin: "0 auto",
10451
11606
  padding: "3rem 1.5rem 2rem"
@@ -10467,7 +11622,7 @@ var BrandBlock = styles.styled("div")({
10467
11622
  flexDirection: "column",
10468
11623
  gap: "0.75rem"
10469
11624
  });
10470
- var Description8 = styles.styled("p")(({ theme }) => ({
11625
+ var Description9 = styles.styled("p")(({ theme }) => ({
10471
11626
  margin: 0,
10472
11627
  fontFamily: theme.typography.fontFamily,
10473
11628
  fontSize: "0.875rem",
@@ -10573,7 +11728,7 @@ var SOCIAL_ICONS = {
10573
11728
  /* @__PURE__ */ jsxRuntime.jsx("polygon", { fill: "white", points: "9.75 15.02 15.5 12 9.75 8.98 9.75 15.02" })
10574
11729
  ] })
10575
11730
  };
10576
- function Footer6({
11731
+ function Footer7({
10577
11732
  logo,
10578
11733
  description,
10579
11734
  columns = [],
@@ -10581,11 +11736,11 @@ function Footer6({
10581
11736
  copyright
10582
11737
  }) {
10583
11738
  const colCount = columns.length;
10584
- return /* @__PURE__ */ jsxRuntime.jsx(Root34, { children: /* @__PURE__ */ jsxRuntime.jsxs(Inner4, { children: [
11739
+ return /* @__PURE__ */ jsxRuntime.jsx(Root47, { children: /* @__PURE__ */ jsxRuntime.jsxs(Inner5, { children: [
10585
11740
  (logo || description || colCount > 0) && /* @__PURE__ */ jsxRuntime.jsxs(TopRow2, { style: { "--col-count": colCount }, children: [
10586
11741
  (logo || description) && /* @__PURE__ */ jsxRuntime.jsxs(BrandBlock, { children: [
10587
11742
  logo,
10588
- description && /* @__PURE__ */ jsxRuntime.jsx(Description8, { children: description })
11743
+ description && /* @__PURE__ */ jsxRuntime.jsx(Description9, { children: description })
10589
11744
  ] }),
10590
11745
  columns.map((col) => /* @__PURE__ */ jsxRuntime.jsxs(Column, { children: [
10591
11746
  /* @__PURE__ */ jsxRuntime.jsx(ColumnTitle, { children: col.title }),
@@ -10608,7 +11763,7 @@ function Footer6({
10608
11763
  ] })
10609
11764
  ] }) });
10610
11765
  }
10611
- var Root35 = styles.styled("header", {
11766
+ var Root48 = styles.styled("header", {
10612
11767
  shouldForwardProp: (p) => p !== "$sticky" && p !== "$variant"
10613
11768
  })(({ theme, $sticky, $variant }) => ({
10614
11769
  position: $sticky ? "sticky" : "relative",
@@ -10619,15 +11774,17 @@ var Root35 = styles.styled("header", {
10619
11774
  borderBottom: $variant === "transparent" ? "none" : `1px solid ${theme.palette.divider}`,
10620
11775
  boxShadow: $variant === "transparent" ? "none" : "0 1px 4px rgba(0,0,0,0.08)"
10621
11776
  }));
10622
- var Inner5 = styles.styled("div")({
10623
- maxWidth: "72rem",
11777
+ var Inner6 = styles.styled("div", {
11778
+ shouldForwardProp: (p) => p !== "$maxWidth"
11779
+ })(({ $maxWidth }) => ({
11780
+ maxWidth: typeof $maxWidth === "number" ? `${$maxWidth}px` : $maxWidth,
10624
11781
  margin: "0 auto",
10625
11782
  padding: "0 1.5rem",
10626
11783
  height: "3.75rem",
10627
11784
  display: "flex",
10628
11785
  alignItems: "center",
10629
11786
  gap: "1.5rem"
10630
- });
11787
+ }));
10631
11788
  var LogoSlot = styles.styled("div")({
10632
11789
  flexShrink: 0,
10633
11790
  display: "flex",
@@ -10723,11 +11880,12 @@ function Navbar({
10723
11880
  navItems = [],
10724
11881
  actions,
10725
11882
  sticky = false,
10726
- variant = "filled"
11883
+ variant = "filled",
11884
+ maxWidth = "72rem"
10727
11885
  }) {
10728
- const [mobileOpen, setMobileOpen] = React.useState(false);
10729
- return /* @__PURE__ */ jsxRuntime.jsxs(Root35, { $sticky: sticky, $variant: variant, children: [
10730
- /* @__PURE__ */ jsxRuntime.jsxs(Inner5, { children: [
11886
+ const [mobileOpen, setMobileOpen] = react.useState(false);
11887
+ return /* @__PURE__ */ jsxRuntime.jsxs(Root48, { $sticky: sticky, $variant: variant, children: [
11888
+ /* @__PURE__ */ jsxRuntime.jsxs(Inner6, { $maxWidth: maxWidth, children: [
10731
11889
  logo && /* @__PURE__ */ jsxRuntime.jsx(LogoSlot, { children: logo }),
10732
11890
  /* @__PURE__ */ jsxRuntime.jsx(Nav3, { "aria-label": "Nawigacja g\u0142\xF3wna", children: navItems.map((item) => /* @__PURE__ */ jsxRuntime.jsx(NavLink, { href: item.href, $active: !!item.active, children: item.label }, item.href)) }),
10733
11891
  (actions || navItems.length > 0) && /* @__PURE__ */ jsxRuntime.jsxs(RightSlot, { children: [
@@ -10834,7 +11992,7 @@ var MyThemeProvider = ({
10834
11992
  disableCssBaseline = false,
10835
11993
  children
10836
11994
  }) => {
10837
- const resolvedTheme = React.useMemo(() => {
11995
+ const resolvedTheme = react.useMemo(() => {
10838
11996
  if (theme) return theme;
10839
11997
  switch (mode) {
10840
11998
  case "dark":
@@ -10847,52 +12005,18 @@ var MyThemeProvider = ({
10847
12005
  }
10848
12006
  }, [theme, mode]);
10849
12007
  return /* @__PURE__ */ jsxRuntime.jsxs(styles.ThemeProvider, { theme: resolvedTheme, children: [
10850
- !disableCssBaseline && /* @__PURE__ */ jsxRuntime.jsx(CssBaseline__default.default, {}),
12008
+ !disableCssBaseline && /* @__PURE__ */ jsxRuntime.jsx(material.CssBaseline, {}),
10851
12009
  children
10852
12010
  ] });
10853
12011
  };
10854
- function EmotionRegistry({ children }) {
10855
- const [{ cache, flush }] = React__namespace.useState(() => {
10856
- const c = createCache__default.default({ key: "css", prepend: true });
10857
- c.compat = true;
10858
- const prevInsert = c.insert.bind(c);
10859
- let inserted = [];
10860
- c.insert = (...args) => {
10861
- const serialized = args[1];
10862
- if (c.inserted[serialized.name] === void 0) {
10863
- inserted.push(serialized.name);
10864
- }
10865
- return prevInsert(...args);
10866
- };
10867
- return {
10868
- cache: c,
10869
- flush: () => {
10870
- const s = inserted;
10871
- inserted = [];
10872
- return s;
10873
- }
10874
- };
10875
- });
10876
- navigation.useServerInsertedHTML(() => {
10877
- const names = flush();
10878
- if (!names.length) return null;
10879
- return /* @__PURE__ */ jsxRuntime.jsx(
10880
- "style",
10881
- {
10882
- "data-emotion": `${cache.key} ${names.join(" ")}`,
10883
- dangerouslySetInnerHTML: { __html: names.map((n) => cache.inserted[n]).join("") }
10884
- }
10885
- );
10886
- });
10887
- return /* @__PURE__ */ jsxRuntime.jsx(react.CacheProvider, { value: cache, children });
10888
- }
10889
12012
 
10890
12013
  exports.Accordion = Accordion;
12014
+ exports.Alert = Alert;
10891
12015
  exports.Article = Article;
10892
12016
  exports.AspectRatio = AspectRatio;
10893
12017
  exports.Avatar = Avatar;
10894
12018
  exports.BackToTop = BackToTop;
10895
- exports.Badge = Badge;
12019
+ exports.Badge = Badge2;
10896
12020
  exports.BaseInput = BaseInput;
10897
12021
  exports.BaseSelectInput = BaseSelectInput;
10898
12022
  exports.Box = Box2;
@@ -10900,25 +12024,28 @@ exports.Breadcrumbs = Breadcrumbs;
10900
12024
  exports.Button = Button;
10901
12025
  exports.Card = Card;
10902
12026
  exports.Carousel = Carousel;
12027
+ exports.CartButton = CartButton;
10903
12028
  exports.CartDrawer = CartDrawer;
12029
+ exports.CategoryCard = CategoryCard;
10904
12030
  exports.CheckboxInput = CheckboxInput;
10905
12031
  exports.CommandPalette = CommandPalette;
10906
12032
  exports.CompareTool = CompareTool;
10907
12033
  exports.Container = Container;
10908
12034
  exports.ContextMenu = ContextMenu;
10909
12035
  exports.CookieConsent = CookieConsent;
12036
+ exports.CountdownTimer = CountdownTimer;
10910
12037
  exports.CountryFlag = CountryFlag;
10911
12038
  exports.CouponInput = CouponInput;
10912
12039
  exports.DateTimePicker = DateTimePicker;
10913
12040
  exports.EmailInput = EmailInput;
10914
- exports.EmotionRegistry = EmotionRegistry;
12041
+ exports.EmptyState = EmptyState;
10915
12042
  exports.FaqItem = FaqItem;
10916
12043
  exports.FaqSection = FaqSection;
10917
12044
  exports.FeatureGrid = FeatureGrid;
10918
12045
  exports.FeatureItem = FeatureItem2;
10919
12046
  exports.FileInput = FileInput;
10920
12047
  exports.FilterSidebar = FilterSidebar;
10921
- exports.Footer = Footer6;
12048
+ exports.Footer = Footer7;
10922
12049
  exports.Lightbox = Lightbox;
10923
12050
  exports.List = List3;
10924
12051
  exports.LogoCloud = LogoCloud;
@@ -10937,6 +12064,7 @@ exports.PaginationButton = PaginationButton;
10937
12064
  exports.PaginationEllipsis = PaginationEllipsis;
10938
12065
  exports.Partners = Partners;
10939
12066
  exports.PasswordInput = PasswordInput;
12067
+ exports.PaymentMethodSelector = PaymentMethodSelector;
10940
12068
  exports.PhoneInput = PhoneInput;
10941
12069
  exports.PostCard = PostCard;
10942
12070
  exports.PostCardImage = PostCardImage;
@@ -10947,6 +12075,7 @@ exports.PricingSection = PricingSection;
10947
12075
  exports.ProcessSection = ProcessSection;
10948
12076
  exports.ProcessStep = ProcessStep;
10949
12077
  exports.ProductCard = ProductCard;
12078
+ exports.ProductCardHorizontal = ProductCardHorizontal;
10950
12079
  exports.ProductGallery = ProductGallery;
10951
12080
  exports.ProgressBar = ProgressBar;
10952
12081
  exports.ProgressCircle = ProgressCircle;
@@ -10955,11 +12084,16 @@ exports.Prose = Prose;
10955
12084
  exports.QuantitySelector = QuantitySelector;
10956
12085
  exports.RangeSlider = RangeSlider;
10957
12086
  exports.Rating = Rating;
12087
+ exports.RelatedProducts = RelatedProducts;
12088
+ exports.ReviewSection = ReviewSection;
12089
+ exports.SaleBadge = SaleBadge;
10958
12090
  exports.SearchInput = SearchInput;
10959
12091
  exports.Section = Section;
10960
12092
  exports.SectionHeading = SectionHeading;
10961
12093
  exports.SelectInput = SelectInput;
12094
+ exports.ShippingSelector = ShippingSelector;
10962
12095
  exports.Skeleton = Skeleton;
12096
+ exports.SortBar = SortBar;
10963
12097
  exports.Spinner = Spinner3;
10964
12098
  exports.StatCard = StatCard;
10965
12099
  exports.StatsSection = StatsSection;
@@ -10973,8 +12107,11 @@ exports.TestimonialsSection = TestimonialsSection;
10973
12107
  exports.TextInput = TextInput;
10974
12108
  exports.TextareaInput = TextareaInput;
10975
12109
  exports.Timeline = Timeline;
12110
+ exports.VariantSelector = VariantSelector;
10976
12111
  exports.VideoPlayer = VideoPlayer;
12112
+ exports.WishlistButton = WishlistButton;
10977
12113
  exports.accordionVariants = accordionVariants;
12114
+ exports.alertSeverities = alertSeverities;
10978
12115
  exports.aspectRatioPresets = aspectRatioPresets;
10979
12116
  exports.avatarColors = avatarColors;
10980
12117
  exports.avatarSizes = avatarSizes;
@@ -10984,6 +12121,7 @@ exports.badgeVariants = badgeVariants;
10984
12121
  exports.cardPaddings = cardPaddings;
10985
12122
  exports.cardRoundeds = cardRoundeds;
10986
12123
  exports.cardVariants = cardVariants;
12124
+ exports.countdownTimerVariants = countdownTimerVariants;
10987
12125
  exports.createMyTheme = createMyTheme;
10988
12126
  exports.dateTimePickerModes = dateTimePickerModes;
10989
12127
  exports.defaultCookieCategories = defaultCookieCategories;
@@ -11006,6 +12144,8 @@ exports.progressCircleSizes = progressCircleSizes;
11006
12144
  exports.progressCircleVariants = progressCircleVariants;
11007
12145
  exports.promoStripVariants = promoStripVariants;
11008
12146
  exports.rangeSliderSizes = rangeSliderSizes;
12147
+ exports.relatedProductsLayouts = relatedProductsLayouts;
12148
+ exports.saleBadgeVariants = saleBadgeVariants;
11009
12149
  exports.sectionHeadingAligns = sectionHeadingAligns;
11010
12150
  exports.skeletonVariants = skeletonVariants;
11011
12151
  exports.spinnerColors = spinnerColors;
@@ -11022,5 +12162,6 @@ exports.themeHighContrast = themeHighContrast;
11022
12162
  exports.themeLight = themeLight;
11023
12163
  exports.timelineItemStatuses = timelineItemStatuses;
11024
12164
  exports.timelineVariants = timelineVariants;
12165
+ exports.variantSelectorModes = variantSelectorModes;
11025
12166
  //# sourceMappingURL=index.cjs.map
11026
12167
  //# sourceMappingURL=index.cjs.map