@szymonpiatek/designsystem 0.0.6 → 0.0.8

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
@@ -2,8 +2,11 @@
2
2
 
3
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');
@@ -22,19 +25,33 @@ 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
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 ContentCopyIcon = require('@mui/icons-material/ContentCopy');
33
+ var LocalOfferIcon = require('@mui/icons-material/LocalOffer');
34
+ var CreditCardOutlinedIcon = require('@mui/icons-material/CreditCardOutlined');
35
+ var LocalShippingOutlinedIcon = require('@mui/icons-material/LocalShippingOutlined');
36
+ var GridViewIcon = require('@mui/icons-material/GridView');
37
+ var ViewListIcon = require('@mui/icons-material/ViewList');
28
38
  var reactDom = require('react-dom');
29
39
  var KeyboardDoubleArrowLeftIcon = require('@mui/icons-material/KeyboardDoubleArrowLeft');
30
40
  var KeyboardDoubleArrowRightIcon = require('@mui/icons-material/KeyboardDoubleArrowRight');
41
+ var InfoOutlinedIcon = require('@mui/icons-material/InfoOutlined');
42
+ var WarningAmberOutlinedIcon = require('@mui/icons-material/WarningAmberOutlined');
43
+ var ErrorOutlineOutlinedIcon = require('@mui/icons-material/ErrorOutlineOutlined');
44
+ var InboxOutlinedIcon = require('@mui/icons-material/InboxOutlined');
45
+ var VerifiedIcon = require('@mui/icons-material/Verified');
46
+ var ThumbUpOutlinedIcon = require('@mui/icons-material/ThumbUpOutlined');
31
47
  var ArrowForwardIcon = require('@mui/icons-material/ArrowForward');
32
48
  var MenuIcon = require('@mui/icons-material/Menu');
33
- var CssBaseline = require('@mui/material/CssBaseline');
34
49
 
35
50
  function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
36
51
 
37
- var CircularProgress__default = /*#__PURE__*/_interopDefault(CircularProgress);
52
+ var ShoppingCartIcon__default = /*#__PURE__*/_interopDefault(ShoppingCartIcon);
53
+ var FavoriteIcon__default = /*#__PURE__*/_interopDefault(FavoriteIcon);
54
+ var FavoriteBorderIcon__default = /*#__PURE__*/_interopDefault(FavoriteBorderIcon);
38
55
  var ExpandMoreIcon__default = /*#__PURE__*/_interopDefault(ExpandMoreIcon);
39
56
  var FileUploadIcon__default = /*#__PURE__*/_interopDefault(FileUploadIcon);
40
57
  var CloudUploadMuiIcon__default = /*#__PURE__*/_interopDefault(CloudUploadMuiIcon);
@@ -51,14 +68,26 @@ var ChevronLeftIcon__default = /*#__PURE__*/_interopDefault(ChevronLeftIcon);
51
68
  var ChevronRightIcon__default = /*#__PURE__*/_interopDefault(ChevronRightIcon);
52
69
  var KeyboardArrowUpIcon__default = /*#__PURE__*/_interopDefault(KeyboardArrowUpIcon);
53
70
  var KeyboardArrowDownIcon__default = /*#__PURE__*/_interopDefault(KeyboardArrowDownIcon);
71
+ var ImageIcon__default = /*#__PURE__*/_interopDefault(ImageIcon);
54
72
  var ArticleIcon__default = /*#__PURE__*/_interopDefault(ArticleIcon);
55
73
  var CheckCircleOutlinedIcon__default = /*#__PURE__*/_interopDefault(CheckCircleOutlinedIcon);
56
74
  var HighlightOffIcon__default = /*#__PURE__*/_interopDefault(HighlightOffIcon);
75
+ var ContentCopyIcon__default = /*#__PURE__*/_interopDefault(ContentCopyIcon);
76
+ var LocalOfferIcon__default = /*#__PURE__*/_interopDefault(LocalOfferIcon);
77
+ var CreditCardOutlinedIcon__default = /*#__PURE__*/_interopDefault(CreditCardOutlinedIcon);
78
+ var LocalShippingOutlinedIcon__default = /*#__PURE__*/_interopDefault(LocalShippingOutlinedIcon);
79
+ var GridViewIcon__default = /*#__PURE__*/_interopDefault(GridViewIcon);
80
+ var ViewListIcon__default = /*#__PURE__*/_interopDefault(ViewListIcon);
57
81
  var KeyboardDoubleArrowLeftIcon__default = /*#__PURE__*/_interopDefault(KeyboardDoubleArrowLeftIcon);
58
82
  var KeyboardDoubleArrowRightIcon__default = /*#__PURE__*/_interopDefault(KeyboardDoubleArrowRightIcon);
83
+ var InfoOutlinedIcon__default = /*#__PURE__*/_interopDefault(InfoOutlinedIcon);
84
+ var WarningAmberOutlinedIcon__default = /*#__PURE__*/_interopDefault(WarningAmberOutlinedIcon);
85
+ var ErrorOutlineOutlinedIcon__default = /*#__PURE__*/_interopDefault(ErrorOutlineOutlinedIcon);
86
+ var InboxOutlinedIcon__default = /*#__PURE__*/_interopDefault(InboxOutlinedIcon);
87
+ var VerifiedIcon__default = /*#__PURE__*/_interopDefault(VerifiedIcon);
88
+ var ThumbUpOutlinedIcon__default = /*#__PURE__*/_interopDefault(ThumbUpOutlinedIcon);
59
89
  var ArrowForwardIcon__default = /*#__PURE__*/_interopDefault(ArrowForwardIcon);
60
90
  var MenuIcon__default = /*#__PURE__*/_interopDefault(MenuIcon);
61
- var CssBaseline__default = /*#__PURE__*/_interopDefault(CssBaseline);
62
91
 
63
92
  // src/components/atoms/buttons/Button/Button.tsx
64
93
  var sizeMap = {
@@ -161,7 +190,7 @@ var Button = react.forwardRef(
161
190
  "aria-label": ariaLabel,
162
191
  "aria-current": ariaCurrent,
163
192
  children: [
164
- 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 }),
193
+ 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 }),
165
194
  /* @__PURE__ */ jsxRuntime.jsx("span", { children }),
166
195
  endIcon && /* @__PURE__ */ jsxRuntime.jsx(IconSlot, { children: endIcon })
167
196
  ]
@@ -169,6 +198,102 @@ var Button = react.forwardRef(
169
198
  )
170
199
  );
171
200
  Button.displayName = "Button";
201
+ var iconSizeMap = {
202
+ sm: 18,
203
+ md: 20,
204
+ lg: 24
205
+ };
206
+ var Root = styles.styled("span")({
207
+ position: "relative",
208
+ display: "inline-flex"
209
+ });
210
+ var Badge = styles.styled("span")(({ theme }) => ({
211
+ position: "absolute",
212
+ top: "-4px",
213
+ right: "-4px",
214
+ backgroundColor: theme.palette.primary.main,
215
+ color: "#fff",
216
+ borderRadius: "9999px",
217
+ fontSize: "0.625rem",
218
+ fontWeight: 700,
219
+ minWidth: "16px",
220
+ height: "16px",
221
+ display: "flex",
222
+ alignItems: "center",
223
+ justifyContent: "center",
224
+ padding: "0 3px",
225
+ pointerEvents: "none",
226
+ fontFamily: theme.typography.fontFamily,
227
+ lineHeight: 1
228
+ }));
229
+ var CartButton = react.forwardRef(
230
+ ({ count, size = "sm", label = "Koszyk", disabled, onClick, className, "aria-label": ariaLabel }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(Root, { className, children: [
231
+ /* @__PURE__ */ jsxRuntime.jsx(
232
+ Button,
233
+ {
234
+ ref,
235
+ variant: "ghost",
236
+ size,
237
+ disabled,
238
+ onClick,
239
+ "aria-label": ariaLabel ?? (count ? `${label} (${count})` : label),
240
+ children: /* @__PURE__ */ jsxRuntime.jsx("span", { style: { display: "flex" }, children: /* @__PURE__ */ jsxRuntime.jsx(ShoppingCartIcon__default.default, { "aria-hidden": true, style: { fontSize: iconSizeMap[size] } }) })
241
+ }
242
+ ),
243
+ count != null && count > 0 && /* @__PURE__ */ jsxRuntime.jsx(Badge, { "aria-hidden": true, children: count > 99 ? "99+" : count })
244
+ ] })
245
+ );
246
+ CartButton.displayName = "CartButton";
247
+ var sizeMap2 = {
248
+ sm: { iconSize: 16, padding: "0.375rem" },
249
+ md: { iconSize: 20, padding: "0.5rem" },
250
+ lg: { iconSize: 24, padding: "0.625rem" }
251
+ };
252
+ var Root2 = styles.styled("button")(
253
+ ({ theme, $active, $size }) => ({
254
+ appearance: "none",
255
+ border: `1px solid ${$active ? theme.palette.error.main : theme.palette.divider}`,
256
+ background: $active ? `${theme.palette.error.main}14` : "transparent",
257
+ cursor: "pointer",
258
+ display: "inline-flex",
259
+ alignItems: "center",
260
+ justifyContent: "center",
261
+ borderRadius: "50%",
262
+ padding: sizeMap2[$size].padding,
263
+ color: $active ? theme.palette.error.main : theme.palette.text.secondary,
264
+ transition: "color 150ms ease, background-color 150ms ease, border-color 150ms ease",
265
+ "&:hover:not(:disabled)": {
266
+ color: theme.palette.error.main,
267
+ borderColor: theme.palette.error.main,
268
+ backgroundColor: `${theme.palette.error.main}14`
269
+ },
270
+ "&:focus-visible": {
271
+ outline: `3px solid ${theme.palette.primary.main}`,
272
+ outlineOffset: "2px"
273
+ },
274
+ "&:disabled": {
275
+ opacity: 0.4,
276
+ cursor: "not-allowed"
277
+ }
278
+ })
279
+ );
280
+ var WishlistButton = react.forwardRef(
281
+ ({ active = false, loading = false, size = "md", label, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(
282
+ Root2,
283
+ {
284
+ ref,
285
+ type: "button",
286
+ $active: active,
287
+ $size: size,
288
+ disabled: loading || props.disabled,
289
+ "aria-label": label ?? (active ? "Usu\u0144 z listy \u017Cycze\u0144" : "Dodaj do listy \u017Cycze\u0144"),
290
+ "aria-pressed": active,
291
+ ...props,
292
+ 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 } })
293
+ }
294
+ )
295
+ );
296
+ WishlistButton.displayName = "WishlistButton";
172
297
  var StyledHelperText = styles.styled("p")(({ theme, $error }) => ({
173
298
  margin: "0.25rem 0 0",
174
299
  fontSize: "0.75rem",
@@ -225,7 +350,7 @@ var inputColors = (theme, error) => ({
225
350
  boxShadow: `0 0 0 3px ${error ? theme.palette.error.main : theme.palette.primary.main}33`
226
351
  }
227
352
  });
228
- var Root = styles.styled("div")(({ $fullWidth }) => ({
353
+ var Root3 = styles.styled("div")(({ $fullWidth }) => ({
229
354
  display: $fullWidth ? "block" : "inline-block",
230
355
  width: $fullWidth ? "100%" : "auto"
231
356
  }));
@@ -290,7 +415,7 @@ var BaseInput = react.forwardRef(
290
415
  }, ref) => {
291
416
  const autoId = react.useId();
292
417
  const inputId = id ?? autoId;
293
- return /* @__PURE__ */ jsxRuntime.jsxs(Root, { $fullWidth: fullWidth, children: [
418
+ return /* @__PURE__ */ jsxRuntime.jsxs(Root3, { $fullWidth: fullWidth, children: [
294
419
  label && /* @__PURE__ */ jsxRuntime.jsx(Label, { htmlFor: inputId, error, size, children: label }),
295
420
  /* @__PURE__ */ jsxRuntime.jsxs(
296
421
  InputWrapper,
@@ -394,7 +519,7 @@ var LabelText = styles.styled("span")(
394
519
  userSelect: "none"
395
520
  })
396
521
  );
397
- var Root2 = styles.styled("span")(({ $disabled }) => ({
522
+ var Root4 = styles.styled("span")(({ $disabled }) => ({
398
523
  display: "inline-flex",
399
524
  flexDirection: "column",
400
525
  cursor: $disabled ? "not-allowed" : "pointer"
@@ -418,7 +543,7 @@ var CheckboxInput = react.forwardRef(
418
543
  innerRef.current.indeterminate = indeterminate;
419
544
  }
420
545
  }, [indeterminate]);
421
- return /* @__PURE__ */ jsxRuntime.jsxs(Root2, { $disabled: disabled, children: [
546
+ return /* @__PURE__ */ jsxRuntime.jsxs(Root4, { $disabled: disabled, children: [
422
547
  /* @__PURE__ */ jsxRuntime.jsxs(Row, { htmlFor: inputId, children: [
423
548
  /* @__PURE__ */ jsxRuntime.jsx(Box, { $size: size, $error: error, $disabled: disabled, children: /* @__PURE__ */ jsxRuntime.jsx(
424
549
  HiddenInput,
@@ -452,7 +577,7 @@ var CloudUploadIcon = ({ size }) => /* @__PURE__ */ jsxRuntime.jsx(CloudUploadMu
452
577
  var FileDocIcon = ({ size }) => /* @__PURE__ */ jsxRuntime.jsx(InsertDriveFileIcon__default.default, { "aria-hidden": true, style: { fontSize: size } });
453
578
  var TrashIcon = ({ size = 12 }) => /* @__PURE__ */ jsxRuntime.jsx(DeleteOutlinedIcon__default.default, { "aria-hidden": true, style: { fontSize: size } });
454
579
  var XIcon = () => /* @__PURE__ */ jsxRuntime.jsx(CloseIcon__default.default, { "aria-hidden": true, style: { fontSize: 11 } });
455
- var Root3 = styles.styled("div")(({ $fullWidth }) => ({
580
+ var Root5 = styles.styled("div")(({ $fullWidth }) => ({
456
581
  display: $fullWidth ? "block" : "inline-block",
457
582
  width: $fullWidth ? "100%" : "auto"
458
583
  }));
@@ -942,7 +1067,7 @@ var FileInput = react.forwardRef(
942
1067
  }
943
1068
  );
944
1069
  if (variant === "dropzone") {
945
- return /* @__PURE__ */ jsxRuntime.jsxs(Root3, { $fullWidth: fullWidth, children: [
1070
+ return /* @__PURE__ */ jsxRuntime.jsxs(Root5, { $fullWidth: fullWidth, children: [
946
1071
  label && /* @__PURE__ */ jsxRuntime.jsx(Label, { htmlFor: inputId, error, size, children: label }),
947
1072
  /* @__PURE__ */ jsxRuntime.jsxs(
948
1073
  DropzoneArea,
@@ -1070,7 +1195,7 @@ var FileInput = react.forwardRef(
1070
1195
  helperText && /* @__PURE__ */ jsxRuntime.jsx(HelperText, { error, children: helperText })
1071
1196
  ] });
1072
1197
  }
1073
- return /* @__PURE__ */ jsxRuntime.jsxs(Root3, { $fullWidth: fullWidth, children: [
1198
+ return /* @__PURE__ */ jsxRuntime.jsxs(Root5, { $fullWidth: fullWidth, children: [
1074
1199
  label && /* @__PURE__ */ jsxRuntime.jsx(Label, { htmlFor: inputId, error, size, children: label }),
1075
1200
  /* @__PURE__ */ jsxRuntime.jsxs(
1076
1201
  CompactWrapper,
@@ -1189,7 +1314,7 @@ var triggerColors = (theme, error, open) => ({
1189
1314
  borderColor: error ? theme.palette.error.dark : theme.palette.text.secondary
1190
1315
  }
1191
1316
  });
1192
- var Root4 = styles.styled("div")(({ $fullWidth }) => ({
1317
+ var Root6 = styles.styled("div")(({ $fullWidth }) => ({
1193
1318
  display: $fullWidth ? "block" : "inline-block",
1194
1319
  width: $fullWidth ? "100%" : "auto",
1195
1320
  position: "relative"
@@ -1306,7 +1431,7 @@ var BaseSelectInput = ({
1306
1431
  }, [isOpen, close]);
1307
1432
  const selectedLabel = options.find((o) => o.value === value)?.label;
1308
1433
  const defaultTriggerContent = /* @__PURE__ */ jsxRuntime.jsx("span", { style: { opacity: selectedLabel ? 1 : 0.5 }, children: selectedLabel ?? placeholder });
1309
- return /* @__PURE__ */ jsxRuntime.jsxs(Root4, { $fullWidth: fullWidth, ref: rootRef, children: [
1434
+ return /* @__PURE__ */ jsxRuntime.jsxs(Root6, { $fullWidth: fullWidth, ref: rootRef, children: [
1310
1435
  label && /* @__PURE__ */ jsxRuntime.jsx(Label, { htmlFor: inputId, error, size, children: label }),
1311
1436
  /* @__PURE__ */ jsxRuntime.jsxs(
1312
1437
  Trigger,
@@ -1586,7 +1711,7 @@ var borderColors = (theme, error) => ({
1586
1711
  boxShadow: `0 0 0 3px ${error ? theme.palette.error.main : theme.palette.primary.main}33`
1587
1712
  }
1588
1713
  });
1589
- var Root5 = styles.styled("div")(({ $fullWidth }) => ({
1714
+ var Root7 = styles.styled("div")(({ $fullWidth }) => ({
1590
1715
  display: $fullWidth ? "block" : "inline-block",
1591
1716
  width: $fullWidth ? "100%" : "auto"
1592
1717
  }));
@@ -1627,7 +1752,7 @@ var TextareaInput = react.forwardRef(
1627
1752
  }, ref) => {
1628
1753
  const autoId = react.useId();
1629
1754
  const inputId = id ?? autoId;
1630
- return /* @__PURE__ */ jsxRuntime.jsxs(Root5, { $fullWidth: fullWidth, children: [
1755
+ return /* @__PURE__ */ jsxRuntime.jsxs(Root7, { $fullWidth: fullWidth, children: [
1631
1756
  label && /* @__PURE__ */ jsxRuntime.jsx(Label, { htmlFor: inputId, error, size, children: label }),
1632
1757
  /* @__PURE__ */ jsxRuntime.jsx(
1633
1758
  StyledTextarea,
@@ -1649,14 +1774,14 @@ var TextareaInput = react.forwardRef(
1649
1774
  }
1650
1775
  );
1651
1776
  TextareaInput.displayName = "TextareaInput";
1652
- var sizeMap2 = { sm: "1em", md: "1.25em", lg: "1.75em" };
1777
+ var sizeMap3 = { sm: "1em", md: "1.25em", lg: "1.75em" };
1653
1778
  var toFlagEmoji = (code) => code.toUpperCase().replace(/[A-Z]/g, (char) => String.fromCodePoint(127462 + char.charCodeAt(0) - 65));
1654
1779
  var CountryFlag = ({ countryCode, size = "md", style, ...rest }) => /* @__PURE__ */ jsxRuntime.jsx(
1655
1780
  "span",
1656
1781
  {
1657
1782
  role: "img",
1658
1783
  "aria-label": `Flag: ${countryCode}`,
1659
- style: { fontSize: sizeMap2[size], lineHeight: 1, display: "inline-flex", ...style },
1784
+ style: { fontSize: sizeMap3[size], lineHeight: 1, display: "inline-flex", ...style },
1660
1785
  ...rest,
1661
1786
  children: toFlagEmoji(countryCode)
1662
1787
  }
@@ -3252,7 +3377,7 @@ var wrapperColors = (theme, error, focused) => ({
3252
3377
  borderColor: !focused ? error ? theme.palette.error.dark : theme.palette.text.secondary : void 0
3253
3378
  }
3254
3379
  });
3255
- var Root6 = styles.styled("div")(({ $fullWidth }) => ({
3380
+ var Root8 = styles.styled("div")(({ $fullWidth }) => ({
3256
3381
  display: $fullWidth ? "block" : "inline-block",
3257
3382
  width: $fullWidth ? "100%" : "auto"
3258
3383
  }));
@@ -3489,7 +3614,7 @@ var PhoneInput = react.forwardRef(
3489
3614
  return () => document.removeEventListener("mousedown", handler);
3490
3615
  }, [isOpen, close]);
3491
3616
  const derivedPlaceholder = placeholder ?? (selectedCountry.minLength === selectedCountry.maxLength ? `${selectedCountry.maxLength} ${digitsLabel}` : `${selectedCountry.minLength}\u2013${selectedCountry.maxLength} ${digitsLabel}`);
3492
- return /* @__PURE__ */ jsxRuntime.jsxs(Root6, { $fullWidth: fullWidth, ref: rootRef, children: [
3617
+ return /* @__PURE__ */ jsxRuntime.jsxs(Root8, { $fullWidth: fullWidth, ref: rootRef, children: [
3493
3618
  label && /* @__PURE__ */ jsxRuntime.jsx(Label, { htmlFor: inputId, error, size, children: label }),
3494
3619
  /* @__PURE__ */ jsxRuntime.jsxs(
3495
3620
  InputWrapper2,
@@ -3604,7 +3729,7 @@ function getActiveColor(color, theme) {
3604
3729
  return theme.palette.primary.main;
3605
3730
  }
3606
3731
  }
3607
- var Root7 = styles.styled("span")(({ $disabled }) => ({
3732
+ var Root9 = styles.styled("span")(({ $disabled }) => ({
3608
3733
  display: "inline-flex",
3609
3734
  flexDirection: "column",
3610
3735
  cursor: $disabled ? "not-allowed" : "pointer"
@@ -3689,7 +3814,7 @@ var SwitchInput = react.forwardRef(
3689
3814
  }, ref) => {
3690
3815
  const autoId = react.useId();
3691
3816
  const inputId = id ?? autoId;
3692
- return /* @__PURE__ */ jsxRuntime.jsxs(Root7, { $disabled: disabled, children: [
3817
+ return /* @__PURE__ */ jsxRuntime.jsxs(Root9, { $disabled: disabled, children: [
3693
3818
  /* @__PURE__ */ jsxRuntime.jsxs(Row2, { htmlFor: inputId, $placement: labelPlacement, children: [
3694
3819
  /* @__PURE__ */ jsxRuntime.jsxs(Track, { $size: size, $color: color, $error: error, $disabled: disabled, children: [
3695
3820
  /* @__PURE__ */ jsxRuntime.jsx(
@@ -3715,7 +3840,7 @@ SwitchInput.displayName = "SwitchInput";
3715
3840
  var switchColors = ["primary", "secondary", "success", "danger"];
3716
3841
  var TRACK_H2 = { sm: "0.25rem", md: "0.375rem", lg: "0.5rem" };
3717
3842
  var THUMB_S2 = { sm: "0.875rem", md: "1.125rem", lg: "1.375rem" };
3718
- var Root8 = styles.styled("div")({
3843
+ var Root10 = styles.styled("div")({
3719
3844
  display: "flex",
3720
3845
  flexDirection: "column",
3721
3846
  gap: "0.5rem",
@@ -3838,7 +3963,7 @@ var RangeSlider = react.forwardRef(
3838
3963
  const loP = pct(lo, min, max);
3839
3964
  const hiP = pct(hi, min, max);
3840
3965
  const valueLabel = range ? `${formatValue2(lo)} \u2013 ${formatValue2(hi)}` : formatValue2(lo);
3841
- return /* @__PURE__ */ jsxRuntime.jsxs(Root8, { ref, ...props, children: [
3966
+ return /* @__PURE__ */ jsxRuntime.jsxs(Root10, { ref, ...props, children: [
3842
3967
  (label || showValue) && /* @__PURE__ */ jsxRuntime.jsxs(LabelRow, { children: [
3843
3968
  label && /* @__PURE__ */ jsxRuntime.jsx("span", { children: label }),
3844
3969
  showValue && /* @__PURE__ */ jsxRuntime.jsx("span", { children: valueLabel })
@@ -3968,7 +4093,7 @@ var inputColors2 = (theme, error) => ({
3968
4093
  boxShadow: `0 0 0 3px ${error ? theme.palette.error.main : theme.palette.primary.main}33`
3969
4094
  }
3970
4095
  });
3971
- var Root9 = styles.styled("div")(({ $fullWidth }) => ({
4096
+ var Root11 = styles.styled("div")(({ $fullWidth }) => ({
3972
4097
  display: $fullWidth ? "block" : "inline-block",
3973
4098
  width: $fullWidth ? "100%" : "auto",
3974
4099
  position: "relative"
@@ -4363,7 +4488,7 @@ var DateTimePicker = react.forwardRef(
4363
4488
  const showCalendar = mode !== "time";
4364
4489
  const showTime = mode !== "date";
4365
4490
  const needsConfirm = mode !== "date";
4366
- return /* @__PURE__ */ jsxRuntime.jsxs(Root9, { ref: rootRef, $fullWidth: fullWidth, children: [
4491
+ return /* @__PURE__ */ jsxRuntime.jsxs(Root11, { ref: rootRef, $fullWidth: fullWidth, children: [
4367
4492
  label && /* @__PURE__ */ jsxRuntime.jsx(Label, { htmlFor: inputId, error, size, children: label }),
4368
4493
  /* @__PURE__ */ jsxRuntime.jsxs(
4369
4494
  InputWrapper3,
@@ -4770,7 +4895,7 @@ var StyledBadge = styles.styled("span", {
4770
4895
  fontFamily: theme.typography.fontFamily,
4771
4896
  ...getVariantStyles2($variant, theme)
4772
4897
  }));
4773
- function Badge({ variant = "default", ...props }) {
4898
+ function Badge2({ variant = "default", ...props }) {
4774
4899
  return /* @__PURE__ */ jsxRuntime.jsx(StyledBadge, { $variant: variant, ...props });
4775
4900
  }
4776
4901
  var badgeVariants = [
@@ -4782,7 +4907,41 @@ var badgeVariants = [
4782
4907
  "ghost",
4783
4908
  "promo"
4784
4909
  ];
4785
- var sizeMap3 = {
4910
+ function getBgColor(variant) {
4911
+ switch (variant) {
4912
+ case "flash":
4913
+ return "#f59e0b";
4914
+ case "new":
4915
+ return "#3b82f6";
4916
+ case "hot":
4917
+ return "#ef4444";
4918
+ default:
4919
+ return "#16a34a";
4920
+ }
4921
+ }
4922
+ var Root12 = styles.styled("span", {
4923
+ shouldForwardProp: (prop) => prop !== "$variant"
4924
+ })(({ theme, $variant }) => ({
4925
+ display: "inline-flex",
4926
+ alignItems: "center",
4927
+ gap: "0.25rem",
4928
+ borderRadius: "0.375rem",
4929
+ padding: "0.25rem 0.625rem",
4930
+ fontSize: "0.75rem",
4931
+ fontWeight: 700,
4932
+ lineHeight: 1,
4933
+ letterSpacing: "0.02em",
4934
+ fontFamily: theme.typography.fontFamily,
4935
+ backgroundColor: getBgColor($variant),
4936
+ color: "#ffffff",
4937
+ textTransform: "uppercase"
4938
+ }));
4939
+ function SaleBadge({ discount, label, variant = "default", ...props }) {
4940
+ const text = label ?? (discount !== void 0 ? `-${discount}%` : "SALE");
4941
+ return /* @__PURE__ */ jsxRuntime.jsx(Root12, { $variant: variant, ...props, children: text });
4942
+ }
4943
+ var saleBadgeVariants = ["default", "flash", "new", "hot"];
4944
+ var sizeMap4 = {
4786
4945
  sm: { width: "2rem", height: "2rem", fontSize: "0.75rem" },
4787
4946
  md: { width: "2.5rem", height: "2.5rem", fontSize: "0.875rem" },
4788
4947
  lg: { width: "3rem", height: "3rem", fontSize: "1rem" },
@@ -4818,7 +4977,7 @@ var StyledAvatar = styles.styled("div", {
4818
4977
  fontWeight: 600,
4819
4978
  fontFamily: theme.typography.fontFamily,
4820
4979
  userSelect: "none",
4821
- ...sizeMap3[$size],
4980
+ ...sizeMap4[$size],
4822
4981
  ...getColorStyles($color, theme)
4823
4982
  }));
4824
4983
  function Avatar({ initials, size = "md", color = "primary", ...props }) {
@@ -4930,7 +5089,7 @@ var spin = react$1.keyframes`to { transform: rotate(360deg); }`;
4930
5089
  var fade = react$1.keyframes`0%,100%{opacity:.15} 50%{opacity:1}`;
4931
5090
  var scalePulse = react$1.keyframes`0%,100%{transform:scale(0.6);opacity:.4} 50%{transform:scale(1);opacity:1}`;
4932
5091
  var barAnim = react$1.keyframes`0%,100%{transform:scaleY(.4);opacity:.5} 50%{transform:scaleY(1);opacity:1}`;
4933
- var Root10 = styles.styled("span", {
5092
+ var Root13 = styles.styled("span", {
4934
5093
  shouldForwardProp: (p) => !["$size", "$color"].includes(p)
4935
5094
  })(({ theme, $size, $color }) => {
4936
5095
  const colorMap = {
@@ -5018,8 +5177,8 @@ function Spinner3({
5018
5177
  label = "\u0141adowanie\u2026",
5019
5178
  ...props
5020
5179
  }) {
5021
- const Inner6 = VARIANTS[variant];
5022
- return /* @__PURE__ */ jsxRuntime.jsx(Root10, { $size: size, $color: color, role: "status", "aria-label": label, ...props, children: /* @__PURE__ */ jsxRuntime.jsx(Inner6, {}) });
5180
+ const Inner5 = VARIANTS[variant];
5181
+ return /* @__PURE__ */ jsxRuntime.jsx(Root13, { $size: size, $color: color, role: "status", "aria-label": label, ...props, children: /* @__PURE__ */ jsxRuntime.jsx(Inner5, {}) });
5023
5182
  }
5024
5183
  var spinnerVariants = ["ring", "dots", "pulse", "bars"];
5025
5184
  var spinnerSizes = ["xs", "sm", "md", "lg", "xl"];
@@ -5145,7 +5304,7 @@ var FONT_MAP = {
5145
5304
  lg: "1.125rem",
5146
5305
  xl: "1.5rem"
5147
5306
  };
5148
- var Root11 = styles.styled("div")({ position: "relative", display: "inline-flex", flexShrink: 0 });
5307
+ var Root14 = styles.styled("div")({ position: "relative", display: "inline-flex", flexShrink: 0 });
5149
5308
  var Label2 = styles.styled("div", {
5150
5309
  shouldForwardProp: (p) => p !== "$size"
5151
5310
  })(({ theme, $size }) => ({
@@ -5199,7 +5358,7 @@ function ProgressCircle({
5199
5358
  const { color, gradient } = useStrokeColor(variant, gradientId);
5200
5359
  const trackColor = theme.palette.mode === "dark" ? "rgba(255,255,255,0.1)" : "rgba(0,0,0,0.08)";
5201
5360
  return /* @__PURE__ */ jsxRuntime.jsxs(
5202
- Root11,
5361
+ Root14,
5203
5362
  {
5204
5363
  role: "progressbar",
5205
5364
  "aria-valuenow": value,
@@ -5546,77 +5705,6 @@ var StyledArticle = styles.styled("article")(({ theme }) => ({
5546
5705
  }));
5547
5706
  var Article = react.forwardRef(({ children, ...rest }, ref) => /* @__PURE__ */ jsxRuntime.jsx(StyledArticle, { ref, ...rest, children }));
5548
5707
  Article.displayName = "Article";
5549
- var sizeMap4 = {
5550
- sm: "1rem",
5551
- md: "1.25rem",
5552
- lg: "1.5rem"
5553
- };
5554
- var Root12 = styles.styled("div")(({ theme }) => ({
5555
- display: "inline-flex",
5556
- alignItems: "center",
5557
- gap: "0.5rem",
5558
- color: theme.palette.text.secondary,
5559
- fontFamily: theme.typography.fontFamily
5560
- }));
5561
- var Stars = styles.styled("div")({
5562
- display: "inline-flex",
5563
- alignItems: "center",
5564
- gap: "0.125rem"
5565
- });
5566
- var StarButton = styles.styled("button")(
5567
- ({ theme, $size, $active }) => ({
5568
- appearance: "none",
5569
- border: 0,
5570
- background: "transparent",
5571
- padding: 0,
5572
- color: $active ? "#f59e0b" : theme.palette.action.disabled,
5573
- cursor: "pointer",
5574
- fontSize: sizeMap4[$size],
5575
- lineHeight: 1,
5576
- "&:disabled": {
5577
- cursor: "default"
5578
- }
5579
- })
5580
- );
5581
- var Meta = styles.styled("span")(({ theme }) => ({
5582
- fontSize: "0.875rem",
5583
- color: theme.palette.text.secondary
5584
- }));
5585
- var Rating = react.forwardRef(
5586
- ({ value, max = 5, readonly = true, size = "md", label, count, onChange, ...props }, ref) => {
5587
- const roundedValue = Math.round(value);
5588
- const meta = label ?? (count !== void 0 ? `(${count})` : void 0);
5589
- return /* @__PURE__ */ jsxRuntime.jsxs(Root12, { ref, "aria-label": `Ocena ${value} z ${max}`, ...props, children: [
5590
- /* @__PURE__ */ jsxRuntime.jsx(
5591
- Stars,
5592
- {
5593
- role: readonly ? "img" : "radiogroup",
5594
- "aria-label": readonly ? void 0 : "Wybierz ocen\u0119",
5595
- children: Array.from({ length: max }, (_, index) => {
5596
- const starValue = index + 1;
5597
- return /* @__PURE__ */ jsxRuntime.jsx(
5598
- StarButton,
5599
- {
5600
- type: "button",
5601
- $size: size,
5602
- $active: starValue <= roundedValue,
5603
- disabled: readonly,
5604
- "aria-label": `${starValue} z ${max}`,
5605
- "aria-checked": readonly ? void 0 : starValue === roundedValue,
5606
- role: readonly ? void 0 : "radio",
5607
- onClick: () => onChange?.(starValue),
5608
- children: "\u2605"
5609
- },
5610
- starValue
5611
- );
5612
- })
5613
- }
5614
- ),
5615
- meta && /* @__PURE__ */ jsxRuntime.jsx(Meta, { children: meta })
5616
- ] });
5617
- }
5618
- );
5619
- Rating.displayName = "Rating";
5620
5708
  var PRESET_MAP = {
5621
5709
  "1/1": 1,
5622
5710
  "4/3": 4 / 3,
@@ -5627,7 +5715,7 @@ var PRESET_MAP = {
5627
5715
  "3/4": 3 / 4,
5628
5716
  "2/3": 2 / 3
5629
5717
  };
5630
- var Root13 = styles.styled("div")({
5718
+ var Root15 = styles.styled("div")({
5631
5719
  position: "relative",
5632
5720
  width: "100%",
5633
5721
  "& > *": {
@@ -5642,11 +5730,88 @@ var AspectRatio = react.forwardRef(
5642
5730
  ({ ratio = "16/9", children, style, ...props }, ref) => {
5643
5731
  const numericRatio = typeof ratio === "string" ? PRESET_MAP[ratio] ?? 16 / 9 : ratio;
5644
5732
  const paddingBottom = `${1 / numericRatio * 100}%`;
5645
- return /* @__PURE__ */ jsxRuntime.jsx(Root13, { ref, style: { paddingBottom, ...style }, ...props, children });
5733
+ return /* @__PURE__ */ jsxRuntime.jsx(Root15, { ref, style: { paddingBottom, ...style }, ...props, children });
5646
5734
  }
5647
5735
  );
5648
5736
  AspectRatio.displayName = "AspectRatio";
5649
5737
  var aspectRatioPresets = Object.keys(PRESET_MAP);
5738
+ var Img = styles.styled("img")({
5739
+ objectFit: "cover",
5740
+ width: "100%",
5741
+ height: "100%"
5742
+ });
5743
+ var Placeholder2 = styles.styled("div")(({ theme }) => ({
5744
+ width: "100%",
5745
+ height: "100%",
5746
+ backgroundColor: theme.palette.action.hover,
5747
+ display: "flex",
5748
+ alignItems: "center",
5749
+ justifyContent: "center",
5750
+ color: theme.palette.text.disabled
5751
+ }));
5752
+ var CategoryCardImage = ({ src, alt }) => /* @__PURE__ */ jsxRuntime.jsx(AspectRatio, { ratio: "4/3", children: src ? /* @__PURE__ */ jsxRuntime.jsx(Img, { src, alt }) : /* @__PURE__ */ jsxRuntime.jsx(Placeholder2, { "aria-label": alt, children: /* @__PURE__ */ jsxRuntime.jsx(ImageIcon__default.default, { style: { fontSize: 48 } }) }) });
5753
+ CategoryCardImage.displayName = "CategoryCardImage";
5754
+ var Root16 = styles.styled("div")({
5755
+ display: "flex",
5756
+ flexDirection: "column",
5757
+ gap: "0.25rem"
5758
+ });
5759
+ var Name = styles.styled("h3")(({ theme }) => ({
5760
+ margin: 0,
5761
+ color: theme.palette.text.primary,
5762
+ fontFamily: theme.typography.fontFamily,
5763
+ fontSize: "1rem",
5764
+ fontWeight: 700,
5765
+ lineHeight: 1.4
5766
+ }));
5767
+ var Count = styles.styled("span")(({ theme }) => ({
5768
+ color: theme.palette.text.secondary,
5769
+ fontFamily: theme.typography.fontFamily,
5770
+ fontSize: "0.875rem"
5771
+ }));
5772
+ var CategoryCardInfo = ({
5773
+ name,
5774
+ count,
5775
+ countLabel = "produkt\xF3w"
5776
+ }) => /* @__PURE__ */ jsxRuntime.jsxs(Root16, { children: [
5777
+ /* @__PURE__ */ jsxRuntime.jsx(Name, { children: name }),
5778
+ count !== void 0 && /* @__PURE__ */ jsxRuntime.jsxs(Count, { children: [
5779
+ count,
5780
+ " ",
5781
+ countLabel
5782
+ ] })
5783
+ ] });
5784
+ CategoryCardInfo.displayName = "CategoryCardInfo";
5785
+ var Root17 = styles.styled(Card)(({ theme }) => ({
5786
+ display: "flex",
5787
+ flexDirection: "column",
5788
+ overflow: "hidden",
5789
+ cursor: "pointer",
5790
+ transition: "box-shadow 150ms ease, transform 150ms ease",
5791
+ "&:hover": {
5792
+ boxShadow: theme.shadows[4],
5793
+ transform: "translateY(-2px)"
5794
+ }
5795
+ }));
5796
+ var ImageWrap = styles.styled("div")({
5797
+ margin: "-1.5rem -1.5rem 1rem"
5798
+ });
5799
+ var CardLink = styles.styled("a")({
5800
+ display: "block",
5801
+ textDecoration: "none",
5802
+ color: "inherit",
5803
+ outline: "none"
5804
+ });
5805
+ var CategoryCard = react.forwardRef(
5806
+ ({ name, imageUrl, imageAlt, count, href, ...props }, ref) => {
5807
+ const content = /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
5808
+ /* @__PURE__ */ jsxRuntime.jsx(ImageWrap, { children: /* @__PURE__ */ jsxRuntime.jsx(CategoryCardImage, { src: imageUrl, alt: imageAlt ?? name }) }),
5809
+ /* @__PURE__ */ jsxRuntime.jsx(CategoryCardInfo, { name, count })
5810
+ ] });
5811
+ return /* @__PURE__ */ jsxRuntime.jsx(Root17, { ref, variant: "default", padding: "md", rounded: "lg", ...props, children: href ? /* @__PURE__ */ jsxRuntime.jsx(CardLink, { href, children: content }) : content });
5812
+ }
5813
+ );
5814
+ CategoryCard.displayName = "CategoryCard";
5650
5815
  var DEFAULT_OMNIBUS_LABEL = "Najni\u017Csza cena z ostatnich 30 dni";
5651
5816
  var FONT_SIZE = {
5652
5817
  sm: "0.875rem",
@@ -5654,7 +5819,7 @@ var FONT_SIZE = {
5654
5819
  lg: "1.5rem",
5655
5820
  xl: "2rem"
5656
5821
  };
5657
- var Root14 = styles.styled("div")({
5822
+ var Root18 = styles.styled("div")({
5658
5823
  display: "inline-flex",
5659
5824
  flexDirection: "column",
5660
5825
  gap: "0.25rem"
@@ -5735,7 +5900,7 @@ var Price = react.forwardRef(
5735
5900
  const onSale = originalPrice !== void 0 && originalPrice > price;
5736
5901
  const discount = onSale ? calcDiscount(price, originalPrice) : 0;
5737
5902
  const showOmnibus = lowestPrice !== void 0;
5738
- return /* @__PURE__ */ jsxRuntime.jsxs(Root14, { ref, ...props, children: [
5903
+ return /* @__PURE__ */ jsxRuntime.jsxs(Root18, { ref, ...props, children: [
5739
5904
  /* @__PURE__ */ jsxRuntime.jsxs(PriceRow, { children: [
5740
5905
  /* @__PURE__ */ jsxRuntime.jsx(
5741
5906
  Current,
@@ -5779,32 +5944,158 @@ var Price = react.forwardRef(
5779
5944
  );
5780
5945
  Price.displayName = "Price";
5781
5946
  var priceSizes = ["sm", "md", "lg", "xl"];
5782
- var Root15 = styles.styled(Card)({
5947
+ function calcTimeLeft(target) {
5948
+ const diff = new Date(target).getTime() - Date.now();
5949
+ if (diff <= 0) return null;
5950
+ return {
5951
+ days: Math.floor(diff / 864e5),
5952
+ hours: Math.floor(diff % 864e5 / 36e5),
5953
+ minutes: Math.floor(diff % 36e5 / 6e4),
5954
+ seconds: Math.floor(diff % 6e4 / 1e3)
5955
+ };
5956
+ }
5957
+ function pad(n) {
5958
+ return String(n).padStart(2, "0");
5959
+ }
5960
+ var Root19 = styles.styled("div", {
5961
+ shouldForwardProp: (prop) => prop !== "$variant"
5962
+ })(({ theme, $variant }) => ({
5963
+ display: "inline-flex",
5964
+ alignItems: "center",
5965
+ justifyContent: "space-between",
5966
+ flexWrap: "wrap",
5967
+ gap: "0.5rem",
5968
+ fontFamily: theme.typography.fontFamily,
5969
+ ...$variant === "card" && {
5970
+ backgroundColor: theme.palette.background.paper,
5971
+ border: `1px solid ${theme.palette.divider}`,
5972
+ borderRadius: theme.shape.borderRadius,
5973
+ padding: "1rem 1.5rem"
5974
+ },
5975
+ ...$variant === "banner" && {
5976
+ backgroundColor: theme.palette.error.main,
5977
+ color: "#fff",
5978
+ borderRadius: theme.shape.borderRadius,
5979
+ padding: "0.75rem 1.25rem"
5980
+ }
5981
+ }));
5982
+ var TimerLabel = styles.styled("span", {
5983
+ shouldForwardProp: (prop) => prop !== "$variant"
5984
+ })(({ theme, $variant }) => ({
5985
+ fontSize: "0.875rem",
5986
+ fontWeight: 600,
5987
+ color: $variant === "banner" ? "rgba(255,255,255,0.85)" : theme.palette.text.secondary,
5988
+ marginRight: "0.25rem"
5989
+ }));
5990
+ var Segments = styles.styled("div")({
5783
5991
  display: "flex",
5784
- flexDirection: "column",
5785
- height: "100%",
5786
- overflow: "hidden"
5787
- });
5788
- var ImageWrap = styles.styled("div")({
5789
- position: "relative",
5790
- margin: "-1.5rem -1.5rem 1rem"
5992
+ alignItems: "center",
5993
+ gap: "0.25rem"
5791
5994
  });
5792
- var Image = styles.styled("img")(({ theme }) => ({
5793
- objectFit: "cover",
5794
- backgroundColor: theme.palette.action.hover
5995
+ var Segment = styles.styled("div", {
5996
+ shouldForwardProp: (prop) => prop !== "$variant"
5997
+ })(({ theme, $variant }) => ({
5998
+ display: "flex",
5999
+ flexDirection: "column",
6000
+ alignItems: "center",
6001
+ minWidth: "2.5rem",
6002
+ ...$variant === "card" && {
6003
+ backgroundColor: theme.palette.action.hover,
6004
+ borderRadius: "0.375rem",
6005
+ padding: "0.375rem 0.5rem"
6006
+ }
5795
6007
  }));
5796
- var BadgeSlot = styles.styled("div")({
5797
- position: "absolute",
5798
- left: "0.75rem",
5799
- top: "0.75rem"
5800
- });
5801
- var Name = styles.styled("h3")(({ theme }) => ({
5802
- margin: 0,
5803
- color: theme.palette.text.primary,
5804
- fontFamily: theme.typography.fontFamily,
5805
- fontSize: "1rem",
6008
+ var Value = styles.styled("span", {
6009
+ shouldForwardProp: (prop) => prop !== "$variant"
6010
+ })(({ $variant }) => ({
6011
+ fontSize: $variant === "inline" ? "1rem" : "1.5rem",
5806
6012
  fontWeight: 700,
5807
- lineHeight: 1.4
6013
+ lineHeight: 1,
6014
+ color: $variant === "banner" ? "#fff" : "inherit"
6015
+ }));
6016
+ var Unit = styles.styled("span", {
6017
+ shouldForwardProp: (prop) => prop !== "$variant"
6018
+ })(({ theme, $variant }) => ({
6019
+ fontSize: "0.6875rem",
6020
+ color: $variant === "banner" ? "rgba(255,255,255,0.7)" : theme.palette.text.secondary,
6021
+ marginTop: "0.125rem"
6022
+ }));
6023
+ var Colon = styles.styled("span", {
6024
+ shouldForwardProp: (prop) => prop !== "$variant"
6025
+ })(({ theme, $variant }) => ({
6026
+ fontSize: $variant === "inline" ? "1rem" : "1.5rem",
6027
+ fontWeight: 700,
6028
+ color: $variant === "banner" ? "rgba(255,255,255,0.6)" : theme.palette.text.disabled,
6029
+ alignSelf: $variant === "card" ? "flex-start" : "center",
6030
+ marginTop: $variant === "card" ? "0.375rem" : 0
6031
+ }));
6032
+ var UNITS = ["dni", "godz", "min", "sek"];
6033
+ var CountdownTimer = react.forwardRef(
6034
+ ({
6035
+ targetDate,
6036
+ variant = "inline",
6037
+ label,
6038
+ expiredLabel = "Promocja zako\u0144czona",
6039
+ onExpire,
6040
+ ...props
6041
+ }, ref) => {
6042
+ const [timeLeft, setTimeLeft] = react.useState(() => calcTimeLeft(targetDate));
6043
+ react.useEffect(() => {
6044
+ const id = setInterval(() => {
6045
+ const tl = calcTimeLeft(targetDate);
6046
+ setTimeLeft(tl);
6047
+ if (!tl) {
6048
+ clearInterval(id);
6049
+ onExpire?.();
6050
+ }
6051
+ }, 1e3);
6052
+ return () => clearInterval(id);
6053
+ }, [targetDate, onExpire]);
6054
+ if (!timeLeft) {
6055
+ return /* @__PURE__ */ jsxRuntime.jsx(Root19, { ref, $variant: variant, ...props, children: /* @__PURE__ */ jsxRuntime.jsx(TimerLabel, { $variant: variant, children: expiredLabel }) });
6056
+ }
6057
+ const parts = [timeLeft.days, timeLeft.hours, timeLeft.minutes, timeLeft.seconds];
6058
+ return /* @__PURE__ */ jsxRuntime.jsxs(
6059
+ Root19,
6060
+ {
6061
+ ref,
6062
+ $variant: variant,
6063
+ "aria-live": "polite",
6064
+ "aria-label": `Czas do ko\u0144ca promocji`,
6065
+ ...props,
6066
+ children: [
6067
+ label && /* @__PURE__ */ jsxRuntime.jsx(TimerLabel, { $variant: variant, children: label }),
6068
+ /* @__PURE__ */ jsxRuntime.jsx(Segments, { children: parts.map((val, i) => /* @__PURE__ */ jsxRuntime.jsxs("div", { style: { display: "contents" }, children: [
6069
+ i > 0 && /* @__PURE__ */ jsxRuntime.jsx(Colon, { $variant: variant, children: ":" }),
6070
+ /* @__PURE__ */ jsxRuntime.jsxs(Segment, { $variant: variant, children: [
6071
+ /* @__PURE__ */ jsxRuntime.jsx(Value, { $variant: variant, children: pad(val) }),
6072
+ variant !== "inline" && /* @__PURE__ */ jsxRuntime.jsx(Unit, { $variant: variant, children: UNITS[i] })
6073
+ ] })
6074
+ ] }, UNITS[i])) })
6075
+ ]
6076
+ }
6077
+ );
6078
+ }
6079
+ );
6080
+ CountdownTimer.displayName = "CountdownTimer";
6081
+ var countdownTimerVariants = ["inline", "card", "banner"];
6082
+ var Root20 = styles.styled(Card)({
6083
+ display: "flex",
6084
+ flexDirection: "column",
6085
+ height: "100%",
6086
+ overflow: "hidden"
6087
+ });
6088
+ var ImageWrap2 = styles.styled("div")({
6089
+ position: "relative",
6090
+ margin: "-1.5rem -1.5rem 1rem"
6091
+ });
6092
+ var Name2 = styles.styled("h3")(({ theme }) => ({
6093
+ margin: 0,
6094
+ color: theme.palette.text.primary,
6095
+ fontFamily: theme.typography.fontFamily,
6096
+ fontSize: "1rem",
6097
+ fontWeight: 700,
6098
+ lineHeight: 1.4
5808
6099
  }));
5809
6100
  var Footer = styles.styled("div")({
5810
6101
  display: "grid",
@@ -5812,7 +6103,7 @@ var Footer = styles.styled("div")({
5812
6103
  marginTop: "auto",
5813
6104
  paddingTop: "1rem"
5814
6105
  });
5815
- var ProductCard = react.forwardRef(
6106
+ var DealCard = react.forwardRef(
5816
6107
  ({
5817
6108
  name,
5818
6109
  imageUrl,
@@ -5821,36 +6112,48 @@ var ProductCard = react.forwardRef(
5821
6112
  originalPrice,
5822
6113
  currency,
5823
6114
  locale,
5824
- lowestPrice,
5825
- badge,
5826
- badgeVariant = "success",
5827
- rating,
5828
- reviewCount,
5829
- ctaLabel = "Dodaj do koszyka",
6115
+ dealEndsAt,
6116
+ ctaLabel = "Kup teraz",
5830
6117
  onAddToCart,
5831
6118
  ...props
5832
- }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(Root15, { ref, variant: "default", padding: "md", rounded: "lg", ...props, children: [
5833
- /* @__PURE__ */ jsxRuntime.jsx(ImageWrap, { children: /* @__PURE__ */ jsxRuntime.jsxs(AspectRatio, { ratio: "4/3", children: [
5834
- /* @__PURE__ */ jsxRuntime.jsx(Image, { src: imageUrl, alt: imageAlt ?? name }),
5835
- badge && /* @__PURE__ */ jsxRuntime.jsx(BadgeSlot, { children: /* @__PURE__ */ jsxRuntime.jsx(Badge, { variant: badgeVariant, children: badge }) })
5836
- ] }) }),
5837
- /* @__PURE__ */ jsxRuntime.jsx(Name, { children: name }),
5838
- rating !== void 0 && /* @__PURE__ */ jsxRuntime.jsx(Rating, { value: rating, count: reviewCount, size: "sm" }),
5839
- /* @__PURE__ */ jsxRuntime.jsx(
5840
- Price,
5841
- {
5842
- price,
5843
- originalPrice,
5844
- currency,
5845
- locale,
5846
- lowestPrice,
5847
- style: { marginTop: "0.5rem" }
5848
- }
5849
- ),
5850
- /* @__PURE__ */ jsxRuntime.jsx(Footer, { children: /* @__PURE__ */ jsxRuntime.jsx(Button, { fullWidth: true, onClick: onAddToCart, children: ctaLabel }) })
5851
- ] })
6119
+ }, ref) => {
6120
+ return /* @__PURE__ */ jsxRuntime.jsxs(Root20, { ref, variant: "default", padding: "md", rounded: "lg", ...props, children: [
6121
+ /* @__PURE__ */ jsxRuntime.jsx(ImageWrap2, { children: /* @__PURE__ */ jsxRuntime.jsx(ProductCardImage, { src: imageUrl, alt: imageAlt ?? name }) }),
6122
+ /* @__PURE__ */ jsxRuntime.jsx(Name2, { children: name }),
6123
+ /* @__PURE__ */ jsxRuntime.jsx(
6124
+ Price,
6125
+ {
6126
+ price,
6127
+ originalPrice,
6128
+ currency,
6129
+ locale,
6130
+ style: { marginTop: "0.5rem" }
6131
+ }
6132
+ ),
6133
+ dealEndsAt && /* @__PURE__ */ jsxRuntime.jsx(
6134
+ CountdownTimer,
6135
+ {
6136
+ targetDate: dealEndsAt,
6137
+ label: "Oferta ko\u0144czy si\u0119 za:",
6138
+ style: { marginTop: "0.75rem" }
6139
+ }
6140
+ ),
6141
+ /* @__PURE__ */ jsxRuntime.jsx(Footer, { children: /* @__PURE__ */ jsxRuntime.jsx(
6142
+ Button,
6143
+ {
6144
+ fullWidth: true,
6145
+ variant: "primary",
6146
+ onClick: (e) => {
6147
+ e.stopPropagation();
6148
+ onAddToCart?.();
6149
+ },
6150
+ children: ctaLabel
6151
+ }
6152
+ ) })
6153
+ ] });
6154
+ }
5852
6155
  );
5853
- ProductCard.displayName = "ProductCard";
6156
+ DealCard.displayName = "DealCard";
5854
6157
  var ImageWrapper = styles.styled("div", {
5855
6158
  shouldForwardProp: (prop) => prop !== "$ar"
5856
6159
  })(({ $ar }) => ({
@@ -5860,13 +6163,13 @@ var ImageWrapper = styles.styled("div", {
5860
6163
  overflow: "hidden",
5861
6164
  flexShrink: 0
5862
6165
  }));
5863
- var Img = styles.styled("img")({
6166
+ var Img2 = styles.styled("img")({
5864
6167
  width: "100%",
5865
6168
  height: "100%",
5866
6169
  objectFit: "cover",
5867
6170
  display: "block"
5868
6171
  });
5869
- var Placeholder2 = styles.styled("div")(({ theme }) => ({
6172
+ var Placeholder3 = styles.styled("div")(({ theme }) => ({
5870
6173
  width: "100%",
5871
6174
  height: "100%",
5872
6175
  display: "flex",
@@ -5896,7 +6199,7 @@ var PostCardImage = ({
5896
6199
  const [imgError, setImgError] = react.useState(false);
5897
6200
  const showPlaceholder = !src || imgError;
5898
6201
  return /* @__PURE__ */ jsxRuntime.jsxs(ImageWrapper, { $ar: toAspectRatioCss(aspectRatio), className, style, children: [
5899
- showPlaceholder ? /* @__PURE__ */ jsxRuntime.jsx(Placeholder2, { children: /* @__PURE__ */ jsxRuntime.jsx(FileTextIcon, {}) }) : /* @__PURE__ */ jsxRuntime.jsx(Img, { src, alt, onError: () => setImgError(true) }),
6202
+ showPlaceholder ? /* @__PURE__ */ jsxRuntime.jsx(Placeholder3, { children: /* @__PURE__ */ jsxRuntime.jsx(FileTextIcon, {}) }) : /* @__PURE__ */ jsxRuntime.jsx(Img2, { src, alt, onError: () => setImgError(true) }),
5900
6203
  overlay && !showPlaceholder && /* @__PURE__ */ jsxRuntime.jsx(Overlay, {})
5901
6204
  ] });
5902
6205
  };
@@ -5971,7 +6274,7 @@ var StyledInner = styles.styled("div", {
5971
6274
  height: "100%",
5972
6275
  ...getLayoutStyles($variant)
5973
6276
  }));
5974
- var CardLink = styles.styled("a")(({ theme }) => ({
6277
+ var CardLink2 = styles.styled("a")(({ theme }) => ({
5975
6278
  display: "block",
5976
6279
  textDecoration: "none",
5977
6280
  color: "inherit",
@@ -6077,13 +6380,13 @@ var PostCard = react.forwardRef(
6077
6380
  isFeatured && showImage && /* @__PURE__ */ jsxRuntime.jsx(FeaturedImageWrapper, { children: /* @__PURE__ */ jsxRuntime.jsx(PostCardImage, { src: imageUrl, alt: imageAlt, aspectRatio: "16/9", overlay: true }) }),
6078
6381
  !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" })),
6079
6382
  /* @__PURE__ */ jsxRuntime.jsxs(StyledContent, { $variant: variant, children: [
6080
- category && /* @__PURE__ */ jsxRuntime.jsx("div", { children: /* @__PURE__ */ jsxRuntime.jsx(Badge, { variant: isFeatured ? "ghost" : "default", children: category }) }),
6383
+ category && /* @__PURE__ */ jsxRuntime.jsx("div", { children: /* @__PURE__ */ jsxRuntime.jsx(Badge2, { variant: isFeatured ? "ghost" : "default", children: category }) }),
6081
6384
  /* @__PURE__ */ jsxRuntime.jsx(StyledTitle, { className: "post-card-title", $featured: isFeatured, children: title }),
6082
6385
  excerpt && variant !== "compact" && !isFeatured && /* @__PURE__ */ jsxRuntime.jsx(StyledExcerpt, { children: excerpt }),
6083
6386
  (date || author) && /* @__PURE__ */ jsxRuntime.jsx(PostCardMeta, { date, author, inverted: isFeatured })
6084
6387
  ] })
6085
6388
  ] });
6086
- 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 }) });
6389
+ 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 }) });
6087
6390
  }
6088
6391
  );
6089
6392
  PostCard.displayName = "PostCard";
@@ -6095,25 +6398,7 @@ var postCardVariants = [
6095
6398
  "featured",
6096
6399
  "compact"
6097
6400
  ];
6098
- var Root16 = styles.styled(Card)({
6099
- display: "flex",
6100
- flexDirection: "column",
6101
- height: "100%"
6102
- });
6103
- var NameRow = styles.styled("div")({
6104
- display: "flex",
6105
- alignItems: "center",
6106
- justifyContent: "space-between",
6107
- marginBottom: "0.75rem"
6108
- });
6109
- var Name2 = styles.styled("p")(({ theme }) => ({
6110
- margin: 0,
6111
- fontFamily: theme.typography.fontFamily,
6112
- fontWeight: 600,
6113
- fontSize: "1rem",
6114
- color: theme.palette.text.primary
6115
- }));
6116
- var PriceRow2 = styles.styled("div")({
6401
+ var Row3 = styles.styled("div")({
6117
6402
  display: "flex",
6118
6403
  alignItems: "baseline",
6119
6404
  gap: "0.25rem"
@@ -6126,7 +6411,7 @@ var Currency = styles.styled("span")(({ theme }) => ({
6126
6411
  alignSelf: "flex-start",
6127
6412
  paddingTop: "0.375rem"
6128
6413
  }));
6129
- var Price2 = styles.styled("span")(({ theme }) => ({
6414
+ var Amount = styles.styled("span")(({ theme }) => ({
6130
6415
  fontFamily: theme.typography.fontFamily,
6131
6416
  fontWeight: 700,
6132
6417
  fontSize: "3rem",
@@ -6138,28 +6423,21 @@ var Period = styles.styled("span")(({ theme }) => ({
6138
6423
  fontSize: "0.875rem",
6139
6424
  color: theme.palette.text.secondary
6140
6425
  }));
6141
- var Description2 = styles.styled("p")(({ theme }) => ({
6142
- margin: "0.75rem 0 0",
6143
- fontFamily: theme.typography.fontFamily,
6144
- fontSize: "0.875rem",
6145
- color: theme.palette.text.secondary,
6146
- lineHeight: 1.6
6147
- }));
6148
- var Divider2 = styles.styled("hr")(({ theme }) => ({
6149
- border: "none",
6150
- borderTop: `1px solid ${theme.palette.divider}`,
6151
- margin: "1.25rem 0"
6152
- }));
6153
- var FeatureList = styles.styled("ul")({
6426
+ var PricingCardPrice = ({ price, currency, period }) => /* @__PURE__ */ jsxRuntime.jsxs(Row3, { children: [
6427
+ currency && /* @__PURE__ */ jsxRuntime.jsx(Currency, { children: currency }),
6428
+ /* @__PURE__ */ jsxRuntime.jsx(Amount, { children: price }),
6429
+ period && /* @__PURE__ */ jsxRuntime.jsx(Period, { children: period })
6430
+ ] });
6431
+ PricingCardPrice.displayName = "PricingCardPrice";
6432
+ var List = styles.styled("ul")({
6154
6433
  listStyle: "none",
6155
6434
  margin: 0,
6156
6435
  padding: 0,
6157
6436
  display: "flex",
6158
6437
  flexDirection: "column",
6159
- gap: "0.625rem",
6160
- flex: 1
6438
+ gap: "0.625rem"
6161
6439
  });
6162
- var FeatureItem = styles.styled("li", {
6440
+ var Item = styles.styled("li", {
6163
6441
  shouldForwardProp: (prop) => prop !== "$included"
6164
6442
  })(({ theme, $included }) => ({
6165
6443
  display: "flex",
@@ -6169,6 +6447,50 @@ var FeatureItem = styles.styled("li", {
6169
6447
  fontSize: "0.875rem",
6170
6448
  color: $included ? theme.palette.text.primary : theme.palette.text.disabled
6171
6449
  }));
6450
+ function CheckIcon3() {
6451
+ return /* @__PURE__ */ jsxRuntime.jsx(CheckCircleOutlinedIcon__default.default, { "aria-hidden": "true", style: { fontSize: 16, flexShrink: 0 } });
6452
+ }
6453
+ function XIcon3() {
6454
+ return /* @__PURE__ */ jsxRuntime.jsx(HighlightOffIcon__default.default, { "aria-hidden": "true", style: { fontSize: 16, flexShrink: 0 } });
6455
+ }
6456
+ var PricingCardFeatureList = ({ features }) => /* @__PURE__ */ jsxRuntime.jsx(List, { children: features.map((feature, i) => {
6457
+ const included = feature.included !== false;
6458
+ return /* @__PURE__ */ jsxRuntime.jsxs(Item, { $included: included, children: [
6459
+ included ? /* @__PURE__ */ jsxRuntime.jsx(CheckIcon3, {}) : /* @__PURE__ */ jsxRuntime.jsx(XIcon3, {}),
6460
+ feature.text
6461
+ ] }, i);
6462
+ }) });
6463
+ PricingCardFeatureList.displayName = "PricingCardFeatureList";
6464
+ var Root21 = styles.styled(Card)({
6465
+ display: "flex",
6466
+ flexDirection: "column",
6467
+ height: "100%"
6468
+ });
6469
+ var NameRow = styles.styled("div")({
6470
+ display: "flex",
6471
+ alignItems: "center",
6472
+ justifyContent: "space-between",
6473
+ marginBottom: "0.75rem"
6474
+ });
6475
+ var Name3 = styles.styled("p")(({ theme }) => ({
6476
+ margin: 0,
6477
+ fontFamily: theme.typography.fontFamily,
6478
+ fontWeight: 600,
6479
+ fontSize: "1rem",
6480
+ color: theme.palette.text.primary
6481
+ }));
6482
+ var Description2 = styles.styled("p")(({ theme }) => ({
6483
+ margin: "0.75rem 0 0",
6484
+ fontFamily: theme.typography.fontFamily,
6485
+ fontSize: "0.875rem",
6486
+ color: theme.palette.text.secondary,
6487
+ lineHeight: 1.6
6488
+ }));
6489
+ var Divider2 = styles.styled("hr")(({ theme }) => ({
6490
+ border: "none",
6491
+ borderTop: `1px solid ${theme.palette.divider}`,
6492
+ margin: "1.25rem 0"
6493
+ }));
6172
6494
  var CtaLink = styles.styled("a", {
6173
6495
  shouldForwardProp: (prop) => prop !== "$variant"
6174
6496
  })(({ theme, $variant }) => ({
@@ -6201,12 +6523,6 @@ var CtaLink = styles.styled("a", {
6201
6523
  var CtaWrapper = styles.styled("div")({
6202
6524
  marginTop: "1.5rem"
6203
6525
  });
6204
- function CheckIcon3() {
6205
- return /* @__PURE__ */ jsxRuntime.jsx(CheckCircleOutlinedIcon__default.default, { "aria-hidden": "true", style: { fontSize: 16, flexShrink: 0 } });
6206
- }
6207
- function XIcon3() {
6208
- return /* @__PURE__ */ jsxRuntime.jsx(HighlightOffIcon__default.default, { "aria-hidden": "true", style: { fontSize: 16, flexShrink: 0 } });
6209
- }
6210
6526
  var PricingCard = react.forwardRef(
6211
6527
  ({
6212
6528
  name,
@@ -6226,39 +6542,294 @@ var PricingCard = react.forwardRef(
6226
6542
  }, ref) => {
6227
6543
  const resolvedCardVariant = cardVariant ?? (popular ? "gradient-primary" : "default");
6228
6544
  const resolvedCtaVariant = ctaVariant ?? (popular ? "primary" : "ghost");
6229
- return /* @__PURE__ */ jsxRuntime.jsxs(Root16, { ref, variant: resolvedCardVariant, padding: "lg", rounded: "lg", ...props, children: [
6545
+ return /* @__PURE__ */ jsxRuntime.jsxs(Root21, { ref, variant: resolvedCardVariant, padding: "lg", rounded: "lg", ...props, children: [
6230
6546
  /* @__PURE__ */ jsxRuntime.jsxs(NameRow, { children: [
6231
- /* @__PURE__ */ jsxRuntime.jsx(Name2, { children: name }),
6232
- popular && /* @__PURE__ */ jsxRuntime.jsx(Badge, { variant: "default", children: popularLabel })
6233
- ] }),
6234
- /* @__PURE__ */ jsxRuntime.jsxs(PriceRow2, { children: [
6235
- currency && /* @__PURE__ */ jsxRuntime.jsx(Currency, { children: currency }),
6236
- /* @__PURE__ */ jsxRuntime.jsx(Price2, { children: price }),
6237
- period && /* @__PURE__ */ jsxRuntime.jsx(Period, { children: period })
6547
+ /* @__PURE__ */ jsxRuntime.jsx(Name3, { children: name }),
6548
+ popular && /* @__PURE__ */ jsxRuntime.jsx(Badge2, { variant: "default", children: popularLabel })
6238
6549
  ] }),
6550
+ /* @__PURE__ */ jsxRuntime.jsx(PricingCardPrice, { price, currency, period }),
6239
6551
  description && /* @__PURE__ */ jsxRuntime.jsx(Description2, { children: description }),
6240
6552
  features.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
6241
6553
  /* @__PURE__ */ jsxRuntime.jsx(Divider2, {}),
6242
- /* @__PURE__ */ jsxRuntime.jsx(FeatureList, { children: features.map((feature, i) => {
6243
- const included = feature.included !== false;
6244
- return /* @__PURE__ */ jsxRuntime.jsxs(FeatureItem, { $included: included, children: [
6245
- included ? /* @__PURE__ */ jsxRuntime.jsx(CheckIcon3, {}) : /* @__PURE__ */ jsxRuntime.jsx(XIcon3, {}),
6246
- feature.text
6247
- ] }, i);
6248
- }) })
6554
+ /* @__PURE__ */ jsxRuntime.jsx(PricingCardFeatureList, { features })
6249
6555
  ] }),
6250
6556
  /* @__PURE__ */ jsxRuntime.jsx(CtaWrapper, { children: href ? /* @__PURE__ */ jsxRuntime.jsx(CtaLink, { href, $variant: resolvedCtaVariant, children: ctaLabel }) : /* @__PURE__ */ jsxRuntime.jsx(Button, { variant: resolvedCtaVariant, fullWidth: true, onClick: onCtaClick, children: ctaLabel }) })
6251
6557
  ] });
6252
6558
  }
6253
6559
  );
6254
6560
  PricingCard.displayName = "PricingCard";
6255
- var Root17 = styles.styled(Card, {
6561
+ var sizeMap5 = {
6562
+ sm: "1rem",
6563
+ md: "1.25rem",
6564
+ lg: "1.5rem"
6565
+ };
6566
+ var Root22 = styles.styled("div")(({ theme }) => ({
6567
+ display: "inline-flex",
6568
+ alignItems: "center",
6569
+ gap: "0.5rem",
6570
+ color: theme.palette.text.secondary,
6571
+ fontFamily: theme.typography.fontFamily
6572
+ }));
6573
+ var Stars = styles.styled("div")({
6574
+ display: "inline-flex",
6575
+ alignItems: "center",
6576
+ gap: "0.125rem"
6577
+ });
6578
+ var StarButton = styles.styled("button")(
6579
+ ({ theme, $size, $active }) => ({
6580
+ appearance: "none",
6581
+ border: 0,
6582
+ background: "transparent",
6583
+ padding: 0,
6584
+ color: $active ? "#f59e0b" : theme.palette.action.disabled,
6585
+ cursor: "pointer",
6586
+ fontSize: sizeMap5[$size],
6587
+ lineHeight: 1,
6588
+ "&:disabled": {
6589
+ cursor: "default"
6590
+ }
6591
+ })
6592
+ );
6593
+ var Meta = styles.styled("span")(({ theme }) => ({
6594
+ fontSize: "0.875rem",
6595
+ color: theme.palette.text.secondary
6596
+ }));
6597
+ var Rating = react.forwardRef(
6598
+ ({ value, max = 5, readonly = true, size = "md", label, count, onChange, ...props }, ref) => {
6599
+ const roundedValue = Math.round(value);
6600
+ const meta = label ?? (count !== void 0 ? `(${count})` : void 0);
6601
+ return /* @__PURE__ */ jsxRuntime.jsxs(Root22, { ref, "aria-label": `Ocena ${value} z ${max}`, ...props, children: [
6602
+ /* @__PURE__ */ jsxRuntime.jsx(
6603
+ Stars,
6604
+ {
6605
+ role: readonly ? "img" : "radiogroup",
6606
+ "aria-label": readonly ? void 0 : "Wybierz ocen\u0119",
6607
+ children: Array.from({ length: max }, (_, index) => {
6608
+ const starValue = index + 1;
6609
+ return /* @__PURE__ */ jsxRuntime.jsx(
6610
+ StarButton,
6611
+ {
6612
+ type: "button",
6613
+ $size: size,
6614
+ $active: starValue <= roundedValue,
6615
+ disabled: readonly,
6616
+ "aria-label": `${starValue} z ${max}`,
6617
+ "aria-checked": readonly ? void 0 : starValue === roundedValue,
6618
+ role: readonly ? void 0 : "radio",
6619
+ onClick: () => onChange?.(starValue),
6620
+ children: "\u2605"
6621
+ },
6622
+ starValue
6623
+ );
6624
+ })
6625
+ }
6626
+ ),
6627
+ meta && /* @__PURE__ */ jsxRuntime.jsx(Meta, { children: meta })
6628
+ ] });
6629
+ }
6630
+ );
6631
+ Rating.displayName = "Rating";
6632
+ var Img3 = styles.styled("img")(({ theme }) => ({
6633
+ position: "absolute",
6634
+ inset: 0,
6635
+ width: "100%",
6636
+ height: "100%",
6637
+ objectFit: "cover",
6638
+ backgroundColor: theme.palette.action.hover
6639
+ }));
6640
+ var Placeholder4 = styles.styled("div")(({ theme }) => ({
6641
+ position: "absolute",
6642
+ inset: 0,
6643
+ width: "100%",
6644
+ height: "100%",
6645
+ backgroundColor: theme.palette.action.hover,
6646
+ display: "flex",
6647
+ alignItems: "center",
6648
+ justifyContent: "center",
6649
+ color: theme.palette.text.disabled
6650
+ }));
6651
+ var BadgeSlot = styles.styled("div")({
6652
+ position: "absolute",
6653
+ left: "0.75rem",
6654
+ top: "0.75rem",
6655
+ zIndex: 1
6656
+ });
6657
+ var ProductCardImage = ({
6658
+ src,
6659
+ alt,
6660
+ badge,
6661
+ badgeVariant = "success"
6662
+ }) => /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
6663
+ src ? /* @__PURE__ */ jsxRuntime.jsx(Img3, { src, alt }) : /* @__PURE__ */ jsxRuntime.jsx(Placeholder4, { "aria-label": alt, children: /* @__PURE__ */ jsxRuntime.jsx(ImageIcon__default.default, { style: { fontSize: 48 } }) }),
6664
+ badge && /* @__PURE__ */ jsxRuntime.jsx(BadgeSlot, { children: /* @__PURE__ */ jsxRuntime.jsx(Badge2, { variant: badgeVariant, children: badge }) })
6665
+ ] });
6666
+ ProductCardImage.displayName = "ProductCardImage";
6667
+ var Root23 = styles.styled(Card)({
6668
+ display: "flex",
6669
+ flexDirection: "column",
6670
+ height: "100%",
6671
+ overflow: "hidden"
6672
+ });
6673
+ var ImageWrap3 = styles.styled("div")({
6674
+ position: "relative",
6675
+ aspectRatio: "4 / 3",
6676
+ margin: "-1.5rem -1.5rem 1rem"
6677
+ });
6678
+ var Name4 = styles.styled("h3")(({ theme }) => ({
6679
+ margin: 0,
6680
+ color: theme.palette.text.primary,
6681
+ fontFamily: theme.typography.fontFamily,
6682
+ fontSize: "1rem",
6683
+ fontWeight: 700,
6684
+ lineHeight: 1.4
6685
+ }));
6686
+ var Footer2 = styles.styled("div")({
6687
+ display: "grid",
6688
+ gap: "1rem",
6689
+ marginTop: "auto",
6690
+ paddingTop: "1rem"
6691
+ });
6692
+ var ProductCard = react.forwardRef(
6693
+ ({
6694
+ name,
6695
+ imageUrl,
6696
+ imageAlt,
6697
+ price,
6698
+ originalPrice,
6699
+ currency,
6700
+ locale,
6701
+ lowestPrice,
6702
+ badge,
6703
+ badgeVariant = "success",
6704
+ rating,
6705
+ reviewCount,
6706
+ ctaLabel = "Dodaj do koszyka",
6707
+ onAddToCart,
6708
+ ...props
6709
+ }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(Root23, { ref, variant: "default", padding: "md", rounded: "lg", ...props, children: [
6710
+ /* @__PURE__ */ jsxRuntime.jsx(ImageWrap3, { children: /* @__PURE__ */ jsxRuntime.jsx(ProductCardImage, { src: imageUrl, alt: imageAlt ?? name, badge, badgeVariant }) }),
6711
+ /* @__PURE__ */ jsxRuntime.jsx(Name4, { children: name }),
6712
+ rating !== void 0 && /* @__PURE__ */ jsxRuntime.jsx(Rating, { value: rating, count: reviewCount, size: "sm" }),
6713
+ /* @__PURE__ */ jsxRuntime.jsx(
6714
+ Price,
6715
+ {
6716
+ price,
6717
+ originalPrice,
6718
+ currency,
6719
+ locale,
6720
+ lowestPrice,
6721
+ style: { marginTop: "0.5rem" }
6722
+ }
6723
+ ),
6724
+ /* @__PURE__ */ jsxRuntime.jsx(Footer2, { children: /* @__PURE__ */ jsxRuntime.jsx(Button, { fullWidth: true, onClick: (e) => {
6725
+ e.stopPropagation();
6726
+ onAddToCart?.();
6727
+ }, children: ctaLabel }) })
6728
+ ] })
6729
+ );
6730
+ ProductCard.displayName = "ProductCard";
6731
+ var COLLAPSE_AT = "480px";
6732
+ var ContainerRoot = styles.styled("div")({
6733
+ containerType: "inline-size",
6734
+ width: "100%",
6735
+ height: "100%"
6736
+ });
6737
+ var Inner = styles.styled("div")({
6738
+ display: "flex",
6739
+ flexDirection: "row",
6740
+ height: "100%",
6741
+ [`@container (max-width: ${COLLAPSE_AT})`]: {
6742
+ flexDirection: "column"
6743
+ }
6744
+ });
6745
+ var ImageWrap4 = styles.styled("div")({
6746
+ position: "relative",
6747
+ flexShrink: 0,
6748
+ width: "clamp(120px, 33%, 200px)",
6749
+ alignSelf: "stretch",
6750
+ margin: "-1.5rem 1rem -1.5rem -1.5rem",
6751
+ [`@container (max-width: ${COLLAPSE_AT})`]: {
6752
+ width: "auto",
6753
+ alignSelf: "auto",
6754
+ margin: "-1.5rem -1.5rem 1rem",
6755
+ aspectRatio: "4 / 3"
6756
+ }
6757
+ });
6758
+ var Content = styles.styled("div")({
6759
+ display: "flex",
6760
+ flexDirection: "column",
6761
+ flex: 1,
6762
+ minWidth: 0
6763
+ });
6764
+ var Name5 = styles.styled("h3")(({ theme }) => ({
6765
+ margin: 0,
6766
+ color: theme.palette.text.primary,
6767
+ fontFamily: theme.typography.fontFamily,
6768
+ fontSize: "1rem",
6769
+ fontWeight: 700,
6770
+ lineHeight: 1.4
6771
+ }));
6772
+ var Footer3 = styles.styled("div")({
6773
+ display: "grid",
6774
+ gap: "1rem",
6775
+ marginTop: "auto",
6776
+ paddingTop: "1rem"
6777
+ });
6778
+ var ProductCardHorizontal = react.forwardRef(
6779
+ ({
6780
+ name,
6781
+ imageUrl,
6782
+ imageAlt,
6783
+ price,
6784
+ originalPrice,
6785
+ currency,
6786
+ locale,
6787
+ lowestPrice,
6788
+ badge,
6789
+ badgeVariant = "success",
6790
+ rating,
6791
+ reviewCount,
6792
+ ctaLabel = "Dodaj do koszyka",
6793
+ onAddToCart,
6794
+ ...props
6795
+ }, ref) => /* @__PURE__ */ jsxRuntime.jsx(Card, { ref, variant: "default", padding: "md", rounded: "lg", ...props, children: /* @__PURE__ */ jsxRuntime.jsx(ContainerRoot, { children: /* @__PURE__ */ jsxRuntime.jsxs(Inner, { children: [
6796
+ /* @__PURE__ */ jsxRuntime.jsx(ImageWrap4, { children: /* @__PURE__ */ jsxRuntime.jsx(ProductCardImage, { src: imageUrl, alt: imageAlt ?? name, badge, badgeVariant }) }),
6797
+ /* @__PURE__ */ jsxRuntime.jsxs(Content, { children: [
6798
+ /* @__PURE__ */ jsxRuntime.jsx(Name5, { children: name }),
6799
+ rating !== void 0 && /* @__PURE__ */ jsxRuntime.jsx(Rating, { value: rating, count: reviewCount, size: "sm" }),
6800
+ /* @__PURE__ */ jsxRuntime.jsx(
6801
+ Price,
6802
+ {
6803
+ price,
6804
+ originalPrice,
6805
+ currency,
6806
+ locale,
6807
+ lowestPrice,
6808
+ style: { marginTop: "0.5rem" }
6809
+ }
6810
+ ),
6811
+ /* @__PURE__ */ jsxRuntime.jsx(Footer3, { children: /* @__PURE__ */ jsxRuntime.jsx(
6812
+ Button,
6813
+ {
6814
+ fullWidth: true,
6815
+ onClick: (e) => {
6816
+ e.stopPropagation();
6817
+ onAddToCart?.();
6818
+ },
6819
+ children: ctaLabel
6820
+ }
6821
+ ) })
6822
+ ] })
6823
+ ] }) }) })
6824
+ );
6825
+ ProductCardHorizontal.displayName = "ProductCardHorizontal";
6826
+ var Root24 = styles.styled(Card, {
6256
6827
  shouldForwardProp: (prop) => prop !== "$align"
6257
6828
  })(({ $align }) => ({
6258
6829
  textAlign: $align,
6259
6830
  height: "100%"
6260
6831
  }));
6261
- var Value = styles.styled("p")(({ theme }) => ({
6832
+ var Value2 = styles.styled("p")(({ theme }) => ({
6262
6833
  margin: 0,
6263
6834
  fontFamily: theme.typography.fontFamily,
6264
6835
  fontSize: "2.5rem",
@@ -6282,19 +6853,92 @@ var Description3 = styles.styled("p")(({ theme }) => ({
6282
6853
  lineHeight: 1.5
6283
6854
  }));
6284
6855
  var StatCard = react.forwardRef(
6285
- ({ stat, cardVariant = "default", align = "center", ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(Root17, { ref, variant: cardVariant, padding: "lg", rounded: "lg", $align: align, ...props, children: [
6286
- /* @__PURE__ */ jsxRuntime.jsx(Value, { children: stat.value }),
6856
+ ({ stat, cardVariant = "default", align = "center", ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(Root24, { ref, variant: cardVariant, padding: "lg", rounded: "lg", $align: align, ...props, children: [
6857
+ /* @__PURE__ */ jsxRuntime.jsx(Value2, { children: stat.value }),
6287
6858
  /* @__PURE__ */ jsxRuntime.jsx(Label3, { children: stat.label }),
6288
6859
  stat.description && /* @__PURE__ */ jsxRuntime.jsx(Description3, { children: stat.description })
6289
6860
  ] })
6290
6861
  );
6291
6862
  StatCard.displayName = "StatCard";
6292
- var Root18 = styles.styled(Card)({
6293
- display: "flex",
6294
- flexDirection: "column",
6295
- gap: "1.25rem",
6296
- height: "100%"
6863
+ var Img4 = styles.styled("img")({
6864
+ width: "4rem",
6865
+ height: "4rem",
6866
+ flexShrink: 0,
6867
+ borderRadius: "50%",
6868
+ objectFit: "cover"
6297
6869
  });
6870
+ function deriveInitials(name) {
6871
+ return name.split(" ").filter(Boolean).slice(0, 2).map((part) => part[0]).join("").toUpperCase();
6872
+ }
6873
+ var TeamMemberAvatar = ({
6874
+ name,
6875
+ avatarUrl,
6876
+ avatarAlt,
6877
+ initials,
6878
+ avatarColor = "primary"
6879
+ }) => {
6880
+ if (avatarUrl) {
6881
+ return /* @__PURE__ */ jsxRuntime.jsx(Img4, { src: avatarUrl, alt: avatarAlt ?? name });
6882
+ }
6883
+ return /* @__PURE__ */ jsxRuntime.jsx(
6884
+ Avatar,
6885
+ {
6886
+ initials: initials ?? deriveInitials(name),
6887
+ size: "xl",
6888
+ color: avatarColor
6889
+ }
6890
+ );
6891
+ };
6892
+ TeamMemberAvatar.displayName = "TeamMemberAvatar";
6893
+ var Root25 = styles.styled("div")({ minWidth: 0 });
6894
+ var Name6 = styles.styled("h3")(({ theme }) => ({
6895
+ margin: 0,
6896
+ color: theme.palette.text.primary,
6897
+ fontFamily: theme.typography.fontFamily,
6898
+ fontSize: "1rem",
6899
+ fontWeight: 700,
6900
+ lineHeight: 1.4
6901
+ }));
6902
+ var Role = styles.styled("p")(({ theme }) => ({
6903
+ margin: "0.25rem 0 0",
6904
+ color: theme.palette.text.secondary,
6905
+ fontFamily: theme.typography.fontFamily,
6906
+ fontSize: "0.875rem",
6907
+ lineHeight: 1.5
6908
+ }));
6909
+ var TeamMemberInfo = ({ name, role }) => /* @__PURE__ */ jsxRuntime.jsxs(Root25, { children: [
6910
+ /* @__PURE__ */ jsxRuntime.jsx(Name6, { children: name }),
6911
+ role && /* @__PURE__ */ jsxRuntime.jsx(Role, { children: role })
6912
+ ] });
6913
+ TeamMemberInfo.displayName = "TeamMemberInfo";
6914
+ var Root26 = styles.styled(Card)(({ theme }) => ({
6915
+ display: "flex",
6916
+ alignItems: "center",
6917
+ gap: "1rem",
6918
+ height: "100%",
6919
+ transition: "border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease",
6920
+ "&:hover": {
6921
+ borderColor: theme.palette.primary.main,
6922
+ boxShadow: theme.shadows[2],
6923
+ transform: "translateY(-2px)"
6924
+ }
6925
+ }));
6926
+ var TeamMemberCard = react.forwardRef(
6927
+ ({ member, cardVariant = "default", ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(Root26, { ref, variant: cardVariant, padding: "lg", rounded: "lg", ...props, children: [
6928
+ /* @__PURE__ */ jsxRuntime.jsx(
6929
+ TeamMemberAvatar,
6930
+ {
6931
+ name: member.name,
6932
+ avatarUrl: member.avatarUrl,
6933
+ avatarAlt: member.avatarAlt,
6934
+ initials: member.initials,
6935
+ avatarColor: member.avatarColor
6936
+ }
6937
+ ),
6938
+ /* @__PURE__ */ jsxRuntime.jsx(TeamMemberInfo, { name: member.name, role: member.role })
6939
+ ] })
6940
+ );
6941
+ TeamMemberCard.displayName = "TeamMemberCard";
6298
6942
  var Quote = styles.styled("blockquote")(({ theme }) => ({
6299
6943
  margin: 0,
6300
6944
  fontFamily: theme.typography.fontFamily,
@@ -6315,104 +6959,162 @@ var Quote = styles.styled("blockquote")(({ theme }) => ({
6315
6959
  marginLeft: "0.125rem"
6316
6960
  }
6317
6961
  }));
6318
- var Footer2 = styles.styled("div")({
6962
+ var TestimonialQuote = ({ quote }) => /* @__PURE__ */ jsxRuntime.jsx(Quote, { children: quote });
6963
+ TestimonialQuote.displayName = "TestimonialQuote";
6964
+ var Root27 = styles.styled("div")({
6319
6965
  display: "flex",
6320
6966
  alignItems: "center",
6321
6967
  gap: "0.75rem"
6322
6968
  });
6323
- var AvatarImage = styles.styled("img")({
6969
+ var AvatarImg = styles.styled("img")({
6324
6970
  width: "2.5rem",
6325
6971
  height: "2.5rem",
6326
6972
  borderRadius: "50%",
6327
6973
  objectFit: "cover",
6328
6974
  flexShrink: 0
6329
6975
  });
6330
- var AuthorInfo = styles.styled("div")({
6331
- minWidth: 0
6332
- });
6333
- var AuthorName = styles.styled("p")(({ theme }) => ({
6976
+ var Info = styles.styled("div")({ minWidth: 0 });
6977
+ var Name7 = styles.styled("p")(({ theme }) => ({
6334
6978
  margin: 0,
6335
6979
  fontFamily: theme.typography.fontFamily,
6336
6980
  fontSize: "0.875rem",
6337
6981
  fontWeight: 700,
6338
6982
  color: theme.palette.text.primary
6339
6983
  }));
6340
- var AuthorRole = styles.styled("p")(({ theme }) => ({
6984
+ var Role2 = styles.styled("p")(({ theme }) => ({
6341
6985
  margin: "0.125rem 0 0",
6342
6986
  fontFamily: theme.typography.fontFamily,
6343
6987
  fontSize: "0.8125rem",
6344
6988
  color: theme.palette.text.secondary
6345
6989
  }));
6990
+ function deriveInitials2(name) {
6991
+ return name.split(" ").filter(Boolean).slice(0, 2).map((p) => p[0]).join("").toUpperCase();
6992
+ }
6993
+ var TestimonialAuthor = ({
6994
+ authorName,
6995
+ authorRole,
6996
+ authorAvatarUrl,
6997
+ authorInitials
6998
+ }) => /* @__PURE__ */ jsxRuntime.jsxs(Root27, { children: [
6999
+ authorAvatarUrl ? /* @__PURE__ */ jsxRuntime.jsx(AvatarImg, { src: authorAvatarUrl, alt: authorName }) : /* @__PURE__ */ jsxRuntime.jsx(Avatar, { initials: authorInitials ?? deriveInitials2(authorName), size: "md", color: "primary" }),
7000
+ /* @__PURE__ */ jsxRuntime.jsxs(Info, { children: [
7001
+ /* @__PURE__ */ jsxRuntime.jsx(Name7, { children: authorName }),
7002
+ authorRole && /* @__PURE__ */ jsxRuntime.jsx(Role2, { children: authorRole })
7003
+ ] })
7004
+ ] });
7005
+ TestimonialAuthor.displayName = "TestimonialAuthor";
7006
+ var Root28 = styles.styled(Card)({
7007
+ display: "flex",
7008
+ flexDirection: "column",
7009
+ gap: "1.25rem",
7010
+ height: "100%"
7011
+ });
6346
7012
  var TestimonialCard = react.forwardRef(
6347
- ({ testimonial, cardVariant = "default", ...props }, ref) => {
6348
- const initials = testimonial.authorInitials ?? testimonial.authorName.split(" ").filter(Boolean).slice(0, 2).map((p) => p[0]).join("").toUpperCase();
6349
- return /* @__PURE__ */ jsxRuntime.jsxs(Root18, { ref, variant: cardVariant, padding: "lg", rounded: "lg", ...props, children: [
6350
- testimonial.rating && /* @__PURE__ */ jsxRuntime.jsx(Rating, { value: testimonial.rating, readonly: true, size: "sm" }),
6351
- /* @__PURE__ */ jsxRuntime.jsx(Quote, { children: testimonial.quote }),
6352
- /* @__PURE__ */ jsxRuntime.jsxs(Footer2, { children: [
6353
- testimonial.authorAvatarUrl ? /* @__PURE__ */ jsxRuntime.jsx(AvatarImage, { src: testimonial.authorAvatarUrl, alt: testimonial.authorName }) : /* @__PURE__ */ jsxRuntime.jsx(Avatar, { initials, size: "md", color: "primary" }),
6354
- /* @__PURE__ */ jsxRuntime.jsxs(AuthorInfo, { children: [
6355
- /* @__PURE__ */ jsxRuntime.jsx(AuthorName, { children: testimonial.authorName }),
6356
- testimonial.authorRole && /* @__PURE__ */ jsxRuntime.jsx(AuthorRole, { children: testimonial.authorRole })
6357
- ] })
6358
- ] })
6359
- ] });
6360
- }
7013
+ ({ testimonial, cardVariant = "default", ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(Root28, { ref, variant: cardVariant, padding: "lg", rounded: "lg", ...props, children: [
7014
+ testimonial.rating && /* @__PURE__ */ jsxRuntime.jsx(Rating, { value: testimonial.rating, readonly: true, size: "sm" }),
7015
+ /* @__PURE__ */ jsxRuntime.jsx(TestimonialQuote, { quote: testimonial.quote }),
7016
+ /* @__PURE__ */ jsxRuntime.jsx(
7017
+ TestimonialAuthor,
7018
+ {
7019
+ authorName: testimonial.authorName,
7020
+ authorRole: testimonial.authorRole,
7021
+ authorAvatarUrl: testimonial.authorAvatarUrl,
7022
+ authorInitials: testimonial.authorInitials
7023
+ }
7024
+ )
7025
+ ] })
6361
7026
  );
6362
7027
  TestimonialCard.displayName = "TestimonialCard";
6363
- var Root19 = styles.styled(Card)(({ theme }) => ({
7028
+ var Root29 = styles.styled("div")(({ theme }) => ({
7029
+ position: "relative",
7030
+ padding: "1.5rem",
7031
+ borderRadius: "1rem",
7032
+ border: `2px dashed ${theme.palette.primary.main}`,
7033
+ backgroundColor: theme.palette.background.paper,
7034
+ fontFamily: theme.typography.fontFamily,
6364
7035
  display: "flex",
6365
- alignItems: "center",
6366
- gap: "1rem",
6367
- height: "100%",
6368
- transition: "border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease",
6369
- "&:hover": {
6370
- borderColor: theme.palette.primary.main,
6371
- boxShadow: theme.shadows[2],
6372
- transform: "translateY(-2px)"
6373
- }
7036
+ flexDirection: "column",
7037
+ gap: "1rem"
6374
7038
  }));
6375
- var AvatarImage2 = styles.styled("img")({
6376
- width: "4rem",
6377
- height: "4rem",
6378
- flexShrink: 0,
6379
- borderRadius: "50%",
6380
- objectFit: "cover"
6381
- });
6382
- var Content = styles.styled("div")({
6383
- minWidth: 0
7039
+ var Header = styles.styled("div")({
7040
+ display: "flex",
7041
+ alignItems: "center",
7042
+ gap: "0.75rem"
6384
7043
  });
6385
- var Name3 = styles.styled("h3")(({ theme }) => ({
6386
- margin: 0,
6387
- color: theme.palette.text.primary,
6388
- fontFamily: theme.typography.fontFamily,
6389
- fontSize: "1rem",
6390
- fontWeight: 700,
6391
- lineHeight: 1.4
7044
+ var Discount = styles.styled("span")(({ theme }) => ({
7045
+ fontSize: "2rem",
7046
+ fontWeight: 800,
7047
+ lineHeight: 1,
7048
+ color: theme.palette.primary.main
6392
7049
  }));
6393
- var Role = styles.styled("p")(({ theme }) => ({
6394
- margin: "0.25rem 0 0",
6395
- color: theme.palette.text.secondary,
6396
- fontFamily: theme.typography.fontFamily,
7050
+ var Description4 = styles.styled("p")(({ theme }) => ({
7051
+ margin: 0,
6397
7052
  fontSize: "0.875rem",
7053
+ color: theme.palette.text.secondary,
6398
7054
  lineHeight: 1.5
6399
7055
  }));
6400
- function getInitials(member) {
6401
- if (member.initials) {
6402
- return member.initials;
7056
+ var CodeRow = styles.styled("div")(({ theme }) => ({
7057
+ display: "flex",
7058
+ alignItems: "center",
7059
+ gap: "0.5rem",
7060
+ padding: "0.625rem 1rem",
7061
+ backgroundColor: theme.palette.action.hover,
7062
+ borderRadius: theme.shape.borderRadius
7063
+ }));
7064
+ var Code = styles.styled("span")(({ theme }) => ({
7065
+ flex: 1,
7066
+ fontFamily: "monospace",
7067
+ fontSize: "1rem",
7068
+ fontWeight: 700,
7069
+ letterSpacing: "0.1em",
7070
+ color: theme.palette.text.primary,
7071
+ userSelect: "all"
7072
+ }));
7073
+ var CopyButton = styles.styled("button")(({ theme }) => ({
7074
+ border: 0,
7075
+ background: "transparent",
7076
+ color: theme.palette.primary.main,
7077
+ cursor: "pointer",
7078
+ padding: "0.25rem",
7079
+ display: "flex",
7080
+ alignItems: "center",
7081
+ borderRadius: theme.shape.borderRadius,
7082
+ transition: "background-color 150ms ease",
7083
+ "&:hover": {
7084
+ backgroundColor: theme.palette.action.hover
6403
7085
  }
6404
- return member.name.split(" ").filter(Boolean).slice(0, 2).map((part) => part[0]).join("").toUpperCase();
6405
- }
6406
- var TeamMemberCard = react.forwardRef(
6407
- ({ member, cardVariant = "default", ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(Root19, { ref, variant: cardVariant, padding: "lg", rounded: "lg", ...props, children: [
6408
- 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" }),
6409
- /* @__PURE__ */ jsxRuntime.jsxs(Content, { children: [
6410
- /* @__PURE__ */ jsxRuntime.jsx(Name3, { children: member.name }),
6411
- /* @__PURE__ */ jsxRuntime.jsx(Role, { children: member.role })
7086
+ }));
7087
+ var Expiry = styles.styled("p")(({ theme }) => ({
7088
+ margin: 0,
7089
+ fontSize: "0.75rem",
7090
+ color: theme.palette.text.disabled
7091
+ }));
7092
+ var VoucherCard = react.forwardRef(
7093
+ ({ code, discount, description, expiresAt, copied = false, onCopy, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(Root29, { ref, ...props, children: [
7094
+ /* @__PURE__ */ jsxRuntime.jsxs(Header, { children: [
7095
+ /* @__PURE__ */ jsxRuntime.jsx(LocalOfferIcon__default.default, { style: { fontSize: 20 }, color: "primary" }),
7096
+ /* @__PURE__ */ jsxRuntime.jsx(Discount, { children: discount })
7097
+ ] }),
7098
+ description && /* @__PURE__ */ jsxRuntime.jsx(Description4, { children: description }),
7099
+ /* @__PURE__ */ jsxRuntime.jsxs(CodeRow, { children: [
7100
+ /* @__PURE__ */ jsxRuntime.jsx(Code, { children: code }),
7101
+ /* @__PURE__ */ jsxRuntime.jsx(
7102
+ CopyButton,
7103
+ {
7104
+ type: "button",
7105
+ "aria-label": copied ? "Skopiowano" : "Kopiuj kod",
7106
+ onClick: () => onCopy?.(code),
7107
+ children: copied ? /* @__PURE__ */ jsxRuntime.jsx(CheckIcon__default.default, { style: { fontSize: 18, color: "green" } }) : /* @__PURE__ */ jsxRuntime.jsx(ContentCopyIcon__default.default, { style: { fontSize: 18 } })
7108
+ }
7109
+ )
7110
+ ] }),
7111
+ expiresAt && /* @__PURE__ */ jsxRuntime.jsxs(Expiry, { children: [
7112
+ "Wa\u017Cny do: ",
7113
+ expiresAt
6412
7114
  ] })
6413
7115
  ] })
6414
7116
  );
6415
- TeamMemberCard.displayName = "TeamMemberCard";
7117
+ VoucherCard.displayName = "VoucherCard";
6416
7118
  var Wrapper3 = styles.styled("div")({
6417
7119
  width: "100%",
6418
7120
  overflowX: "auto",
@@ -6497,7 +7199,7 @@ var RemoveBtn = styles.styled("button")(({ theme }) => ({
6497
7199
  }
6498
7200
  }));
6499
7201
  var Tbody = styles.styled("tbody")({});
6500
- var Row3 = styles.styled("tr", {
7202
+ var Row4 = styles.styled("tr", {
6501
7203
  shouldForwardProp: (p) => p !== "$diff"
6502
7204
  })(({ theme, $diff }) => ({
6503
7205
  backgroundColor: $diff ? theme.palette.mode === "dark" ? "rgba(255,255,255,0.03)" : "rgba(0,0,0,0.02)" : "transparent",
@@ -6574,7 +7276,7 @@ function CompareTool({
6574
7276
  ] }) }),
6575
7277
  /* @__PURE__ */ jsxRuntime.jsx(Tbody, { children: specKeys.map((key) => {
6576
7278
  const diff = highlightDifferences && isDiff(key, products);
6577
- return /* @__PURE__ */ jsxRuntime.jsxs(Row3, { $diff: diff, children: [
7279
+ return /* @__PURE__ */ jsxRuntime.jsxs(Row4, { $diff: diff, children: [
6578
7280
  /* @__PURE__ */ jsxRuntime.jsx(LabelCell, { as: "th", scope: "row", children: specLabels[key] ?? key }),
6579
7281
  products.map((p) => {
6580
7282
  const val = p.specs[key];
@@ -6586,7 +7288,7 @@ function CompareTool({
6586
7288
  ] }) });
6587
7289
  }
6588
7290
  var spin2 = styles.keyframes`to { transform: rotate(360deg); }`;
6589
- var Root20 = styles.styled("div")({
7291
+ var Root30 = styles.styled("div")({
6590
7292
  display: "flex",
6591
7293
  flexDirection: "column",
6592
7294
  gap: "0.5rem"
@@ -6733,7 +7435,7 @@ function CouponInput({
6733
7435
  if (e.key === "Enter") handleApply();
6734
7436
  };
6735
7437
  if (appliedCode) {
6736
- return /* @__PURE__ */ jsxRuntime.jsxs(Root20, { className, children: [
7438
+ return /* @__PURE__ */ jsxRuntime.jsxs(Root30, { className, children: [
6737
7439
  /* @__PURE__ */ jsxRuntime.jsxs(AppliedRow, { role: "status", "aria-label": `Kod rabatowy ${appliedCode} zastosowany`, children: [
6738
7440
  /* @__PURE__ */ jsxRuntime.jsx(AppliedCode, { children: appliedCode }),
6739
7441
  onRemove && /* @__PURE__ */ jsxRuntime.jsx(
@@ -6752,7 +7454,7 @@ function CouponInput({
6752
7454
  ] })
6753
7455
  ] });
6754
7456
  }
6755
- return /* @__PURE__ */ jsxRuntime.jsxs(Root20, { className, children: [
7457
+ return /* @__PURE__ */ jsxRuntime.jsxs(Root30, { className, children: [
6756
7458
  /* @__PURE__ */ jsxRuntime.jsxs(InputRow, { $hasError: Boolean(error), $applied: false, children: [
6757
7459
  /* @__PURE__ */ jsxRuntime.jsx(
6758
7460
  Input,
@@ -6784,7 +7486,82 @@ function CouponInput({
6784
7486
  error && /* @__PURE__ */ jsxRuntime.jsx(Message, { $type: "error", id: errorId, role: "alert", children: error })
6785
7487
  ] });
6786
7488
  }
6787
- var Root21 = styles.styled("div")({
7489
+ var Root31 = styles.styled("div")({
7490
+ display: "flex",
7491
+ flexDirection: "column",
7492
+ gap: "0.5rem"
7493
+ });
7494
+ var GroupLabel = styles.styled("span")(({ theme }) => ({
7495
+ fontSize: "0.875rem",
7496
+ fontWeight: 600,
7497
+ color: theme.palette.text.primary,
7498
+ fontFamily: theme.typography.fontFamily
7499
+ }));
7500
+ var MethodLabel = styles.styled("label", {
7501
+ shouldForwardProp: (prop) => prop !== "$selected"
7502
+ })(({ theme, $selected }) => ({
7503
+ display: "flex",
7504
+ alignItems: "center",
7505
+ gap: "0.875rem",
7506
+ padding: "0.875rem 1rem",
7507
+ border: `${$selected ? 2 : 1}px solid ${$selected ? theme.palette.primary.main : theme.palette.divider}`,
7508
+ borderRadius: theme.shape.borderRadius,
7509
+ cursor: "pointer",
7510
+ backgroundColor: $selected ? `${theme.palette.primary.main}08` : theme.palette.background.paper,
7511
+ transition: "border-color 150ms ease, background-color 150ms ease",
7512
+ fontFamily: theme.typography.fontFamily,
7513
+ "&:hover": { borderColor: theme.palette.primary.main }
7514
+ }));
7515
+ var Radio = styles.styled("input")({
7516
+ width: "1rem",
7517
+ height: "1rem",
7518
+ flexShrink: 0,
7519
+ cursor: "pointer"
7520
+ });
7521
+ var IconWrap = styles.styled("span")(({ theme }) => ({
7522
+ color: theme.palette.text.secondary,
7523
+ display: "flex"
7524
+ }));
7525
+ var Info2 = styles.styled("div")({ flex: 1 });
7526
+ var Name8 = styles.styled("div")(({ theme }) => ({
7527
+ fontSize: "0.9375rem",
7528
+ fontWeight: 600,
7529
+ color: theme.palette.text.primary
7530
+ }));
7531
+ var Desc = styles.styled("div")(({ theme }) => ({
7532
+ fontSize: "0.8125rem",
7533
+ color: theme.palette.text.secondary,
7534
+ marginTop: "0.125rem"
7535
+ }));
7536
+ var PaymentMethodSelector = react.forwardRef(
7537
+ ({ methods, value, onChange, label = "Metoda p\u0142atno\u015Bci", disabled, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(Root31, { ref, ...props, children: [
7538
+ /* @__PURE__ */ jsxRuntime.jsx(GroupLabel, { children: label }),
7539
+ methods.map((method) => {
7540
+ const selected = value === method.id;
7541
+ return /* @__PURE__ */ jsxRuntime.jsxs(MethodLabel, { $selected: selected, children: [
7542
+ /* @__PURE__ */ jsxRuntime.jsx(
7543
+ Radio,
7544
+ {
7545
+ type: "radio",
7546
+ name: "payment",
7547
+ value: method.id,
7548
+ checked: selected,
7549
+ disabled,
7550
+ onChange: () => onChange?.(method.id),
7551
+ "aria-label": method.label
7552
+ }
7553
+ ),
7554
+ /* @__PURE__ */ jsxRuntime.jsx(IconWrap, { children: method.icon ?? /* @__PURE__ */ jsxRuntime.jsx(CreditCardOutlinedIcon__default.default, { "aria-hidden": true }) }),
7555
+ /* @__PURE__ */ jsxRuntime.jsxs(Info2, { children: [
7556
+ /* @__PURE__ */ jsxRuntime.jsx(Name8, { children: method.label }),
7557
+ method.description && /* @__PURE__ */ jsxRuntime.jsx(Desc, { children: method.description })
7558
+ ] })
7559
+ ] }, method.id);
7560
+ })
7561
+ ] })
7562
+ );
7563
+ PaymentMethodSelector.displayName = "PaymentMethodSelector";
7564
+ var Root32 = styles.styled("div")({
6788
7565
  display: "grid",
6789
7566
  gap: "0.75rem"
6790
7567
  });
@@ -6822,7 +7599,7 @@ var ProductGallery = react.forwardRef(
6822
7599
  if (!activeImage) {
6823
7600
  return null;
6824
7601
  }
6825
- return /* @__PURE__ */ jsxRuntime.jsxs(Root21, { ref, ...props, children: [
7602
+ return /* @__PURE__ */ jsxRuntime.jsxs(Root32, { ref, ...props, children: [
6826
7603
  /* @__PURE__ */ jsxRuntime.jsx(AspectRatio, { ratio: "4/3", children: /* @__PURE__ */ jsxRuntime.jsx(MainImage, { src: activeImage.src, alt: activeImage.alt }) }),
6827
7604
  images.length > 1 && /* @__PURE__ */ jsxRuntime.jsx(Thumbnails, { children: images.map((image, index) => /* @__PURE__ */ jsxRuntime.jsx(
6828
7605
  ThumbnailButton,
@@ -6840,7 +7617,7 @@ var ProductGallery = react.forwardRef(
6840
7617
  }
6841
7618
  );
6842
7619
  ProductGallery.displayName = "ProductGallery";
6843
- var Root22 = styles.styled("div")(({ theme, $variant }) => ({
7620
+ var Root33 = styles.styled("div")(({ theme, $variant }) => ({
6844
7621
  display: "flex",
6845
7622
  alignItems: "center",
6846
7623
  justifyContent: "center",
@@ -6860,14 +7637,14 @@ var Link = styles.styled("a")(({ theme }) => ({
6860
7637
  textUnderlineOffset: "0.2em"
6861
7638
  }));
6862
7639
  var PromoStrip = react.forwardRef(
6863
- ({ message, actionLabel, href, variant = "info", ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(Root22, { ref, $variant: variant, ...props, children: [
7640
+ ({ message, actionLabel, href, variant = "info", ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(Root33, { ref, $variant: variant, ...props, children: [
6864
7641
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: message }),
6865
7642
  actionLabel && href && /* @__PURE__ */ jsxRuntime.jsx(Link, { href, children: actionLabel })
6866
7643
  ] })
6867
7644
  );
6868
7645
  PromoStrip.displayName = "PromoStrip";
6869
7646
  var promoStripVariants = ["info", "success", "warning"];
6870
- var Root23 = styles.styled("div")(({ theme }) => ({
7647
+ var Root34 = styles.styled("div")(({ theme }) => ({
6871
7648
  display: "inline-grid",
6872
7649
  gridTemplateColumns: "2.25rem 3rem 2.25rem",
6873
7650
  alignItems: "center",
@@ -6889,7 +7666,7 @@ var Control = styles.styled("button")(({ theme }) => ({
6889
7666
  cursor: "not-allowed"
6890
7667
  }
6891
7668
  }));
6892
- var Value2 = styles.styled("span")(({ theme }) => ({
7669
+ var Value3 = styles.styled("span")(({ theme }) => ({
6893
7670
  display: "inline-flex",
6894
7671
  alignItems: "center",
6895
7672
  justifyContent: "center",
@@ -6899,36 +7676,237 @@ var Value2 = styles.styled("span")(({ theme }) => ({
6899
7676
  borderRight: `1px solid ${theme.palette.divider}`,
6900
7677
  fontWeight: 600
6901
7678
  }));
6902
- var QuantitySelector = react.forwardRef(
6903
- ({ value, min = 1, max = 99, step = 1, disabled = false, onChange, ...props }, ref) => {
6904
- const decrease = Math.max(min, value - step);
6905
- const increase = Math.min(max, value + step);
6906
- return /* @__PURE__ */ jsxRuntime.jsxs(Root23, { ref, "aria-label": "Wybierz ilo\u015B\u0107", ...props, children: [
6907
- /* @__PURE__ */ jsxRuntime.jsx(
6908
- Control,
6909
- {
6910
- type: "button",
6911
- "aria-label": "Zmniejsz ilo\u015B\u0107",
6912
- disabled: disabled || value <= min,
6913
- onClick: () => onChange?.(decrease),
6914
- children: "\u2212"
6915
- }
6916
- ),
6917
- /* @__PURE__ */ jsxRuntime.jsx(Value2, { "aria-live": "polite", children: value }),
6918
- /* @__PURE__ */ jsxRuntime.jsx(
6919
- Control,
6920
- {
6921
- type: "button",
6922
- "aria-label": "Zwi\u0119ksz ilo\u015B\u0107",
6923
- disabled: disabled || value >= max,
6924
- onClick: () => onChange?.(increase),
6925
- children: "+"
6926
- }
6927
- )
7679
+ var QuantitySelector = react.forwardRef(
7680
+ ({ value, min = 1, max = 99, step = 1, disabled = false, onChange, ...props }, ref) => {
7681
+ const decrease = Math.max(min, value - step);
7682
+ const increase = Math.min(max, value + step);
7683
+ return /* @__PURE__ */ jsxRuntime.jsxs(Root34, { ref, "aria-label": "Wybierz ilo\u015B\u0107", ...props, children: [
7684
+ /* @__PURE__ */ jsxRuntime.jsx(
7685
+ Control,
7686
+ {
7687
+ type: "button",
7688
+ "aria-label": "Zmniejsz ilo\u015B\u0107",
7689
+ disabled: disabled || value <= min,
7690
+ onClick: () => onChange?.(decrease),
7691
+ children: "\u2212"
7692
+ }
7693
+ ),
7694
+ /* @__PURE__ */ jsxRuntime.jsx(Value3, { "aria-live": "polite", children: value }),
7695
+ /* @__PURE__ */ jsxRuntime.jsx(
7696
+ Control,
7697
+ {
7698
+ type: "button",
7699
+ "aria-label": "Zwi\u0119ksz ilo\u015B\u0107",
7700
+ disabled: disabled || value >= max,
7701
+ onClick: () => onChange?.(increase),
7702
+ children: "+"
7703
+ }
7704
+ )
7705
+ ] });
7706
+ }
7707
+ );
7708
+ QuantitySelector.displayName = "QuantitySelector";
7709
+ var Root35 = styles.styled("div")({
7710
+ display: "flex",
7711
+ flexDirection: "column",
7712
+ gap: "0.5rem"
7713
+ });
7714
+ var GroupLabel2 = styles.styled("span")(({ theme }) => ({
7715
+ fontSize: "0.875rem",
7716
+ fontWeight: 600,
7717
+ color: theme.palette.text.primary,
7718
+ fontFamily: theme.typography.fontFamily
7719
+ }));
7720
+ var OptionLabel = styles.styled("label", {
7721
+ shouldForwardProp: (prop) => prop !== "$selected"
7722
+ })(({ theme, $selected }) => ({
7723
+ display: "flex",
7724
+ alignItems: "center",
7725
+ gap: "0.875rem",
7726
+ padding: "0.875rem 1rem",
7727
+ border: `${$selected ? 2 : 1}px solid ${$selected ? theme.palette.primary.main : theme.palette.divider}`,
7728
+ borderRadius: theme.shape.borderRadius,
7729
+ cursor: "pointer",
7730
+ backgroundColor: $selected ? `${theme.palette.primary.main}08` : theme.palette.background.paper,
7731
+ transition: "border-color 150ms ease, background-color 150ms ease",
7732
+ fontFamily: theme.typography.fontFamily,
7733
+ "&:hover": {
7734
+ borderColor: theme.palette.primary.main
7735
+ }
7736
+ }));
7737
+ var Radio2 = styles.styled("input")({
7738
+ width: "1rem",
7739
+ height: "1rem",
7740
+ flexShrink: 0,
7741
+ cursor: "pointer"
7742
+ });
7743
+ var IconWrap2 = styles.styled("span")(({ theme }) => ({
7744
+ color: theme.palette.text.secondary,
7745
+ display: "flex"
7746
+ }));
7747
+ var Info3 = styles.styled("div")({ flex: 1 });
7748
+ var Name9 = styles.styled("div")(({ theme }) => ({
7749
+ fontSize: "0.9375rem",
7750
+ fontWeight: 600,
7751
+ color: theme.palette.text.primary
7752
+ }));
7753
+ var Desc2 = styles.styled("div")(({ theme }) => ({
7754
+ fontSize: "0.8125rem",
7755
+ color: theme.palette.text.secondary,
7756
+ marginTop: "0.125rem"
7757
+ }));
7758
+ var Price2 = styles.styled("div", {
7759
+ shouldForwardProp: (prop) => prop !== "$selected"
7760
+ })(({ theme, $selected }) => ({
7761
+ fontSize: "0.9375rem",
7762
+ fontWeight: 700,
7763
+ color: $selected ? theme.palette.primary.main : theme.palette.text.primary,
7764
+ whiteSpace: "nowrap"
7765
+ }));
7766
+ var ShippingSelector = react.forwardRef(
7767
+ ({ options, value, onChange, label = "Metoda dostawy", disabled, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(Root35, { ref, ...props, children: [
7768
+ /* @__PURE__ */ jsxRuntime.jsx(GroupLabel2, { children: label }),
7769
+ options.map((opt) => {
7770
+ const selected = value === opt.id;
7771
+ return /* @__PURE__ */ jsxRuntime.jsxs(OptionLabel, { $selected: selected, children: [
7772
+ /* @__PURE__ */ jsxRuntime.jsx(
7773
+ Radio2,
7774
+ {
7775
+ type: "radio",
7776
+ name: "shipping",
7777
+ value: opt.id,
7778
+ checked: selected,
7779
+ disabled,
7780
+ onChange: () => onChange?.(opt.id),
7781
+ "aria-label": opt.label
7782
+ }
7783
+ ),
7784
+ /* @__PURE__ */ jsxRuntime.jsx(IconWrap2, { children: opt.icon ?? /* @__PURE__ */ jsxRuntime.jsx(LocalShippingOutlinedIcon__default.default, { "aria-hidden": true }) }),
7785
+ /* @__PURE__ */ jsxRuntime.jsxs(Info3, { children: [
7786
+ /* @__PURE__ */ jsxRuntime.jsx(Name9, { children: opt.label }),
7787
+ (opt.description || opt.estimatedDays) && /* @__PURE__ */ jsxRuntime.jsxs(Desc2, { children: [
7788
+ opt.description,
7789
+ opt.estimatedDays && ` \xB7 ${opt.estimatedDays}`
7790
+ ] })
7791
+ ] }),
7792
+ /* @__PURE__ */ jsxRuntime.jsx(Price2, { $selected: selected, children: opt.price })
7793
+ ] }, opt.id);
7794
+ })
7795
+ ] })
7796
+ );
7797
+ ShippingSelector.displayName = "ShippingSelector";
7798
+ var DEFAULT_SORT_OPTIONS = [
7799
+ { value: "popular", label: "Najpopularniejsze" },
7800
+ { value: "newest", label: "Najnowsze" },
7801
+ { value: "price-asc", label: "Cena rosn\u0105co" },
7802
+ { value: "price-desc", label: "Cena malej\u0105co" }
7803
+ ];
7804
+ var Root36 = styles.styled("div")(({ theme }) => ({
7805
+ display: "flex",
7806
+ alignItems: "center",
7807
+ justifyContent: "space-between",
7808
+ flexWrap: "wrap",
7809
+ gap: "0.75rem",
7810
+ padding: "0.75rem 0",
7811
+ borderBottom: `1px solid ${theme.palette.divider}`,
7812
+ fontFamily: theme.typography.fontFamily
7813
+ }));
7814
+ var TotalLabel = styles.styled("span")(({ theme }) => ({
7815
+ fontSize: "0.875rem",
7816
+ color: theme.palette.text.secondary
7817
+ }));
7818
+ var Controls = styles.styled("div")({
7819
+ display: "flex",
7820
+ alignItems: "center",
7821
+ gap: "0.75rem"
7822
+ });
7823
+ var SortLabel = styles.styled("label")(({ theme }) => ({
7824
+ fontSize: "0.875rem",
7825
+ color: theme.palette.text.secondary
7826
+ }));
7827
+ var Select = styles.styled("select")(({ theme }) => ({
7828
+ padding: "0.375rem 2rem 0.375rem 0.625rem",
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.5rem center",
7840
+ "&:focus": { outline: `3px solid ${theme.palette.primary.main}`, outlineOffset: "2px" }
7841
+ }));
7842
+ var ViewToggle = styles.styled("div")(({ theme }) => ({
7843
+ display: "flex",
7844
+ border: `1px solid ${theme.palette.divider}`,
7845
+ borderRadius: theme.shape.borderRadius,
7846
+ overflow: "hidden"
7847
+ }));
7848
+ var ViewButton = styles.styled("button", {
7849
+ shouldForwardProp: (prop) => prop !== "$active"
7850
+ })(({ theme, $active }) => ({
7851
+ appearance: "none",
7852
+ border: "none",
7853
+ cursor: "pointer",
7854
+ display: "flex",
7855
+ alignItems: "center",
7856
+ padding: "0.375rem 0.5rem",
7857
+ backgroundColor: $active ? theme.palette.primary.main : "transparent",
7858
+ color: $active ? theme.palette.primary.contrastText : theme.palette.text.secondary,
7859
+ transition: "background-color 150ms ease, color 150ms ease",
7860
+ "&:hover:not(:disabled)": {
7861
+ backgroundColor: $active ? theme.palette.primary.dark : theme.palette.action.hover
7862
+ },
7863
+ "&:focus-visible": { outline: `3px solid ${theme.palette.primary.main}`, outlineOffset: "-1px" }
7864
+ }));
7865
+ var SortBar = react.forwardRef(
7866
+ ({
7867
+ total,
7868
+ totalLabel,
7869
+ sortOptions = DEFAULT_SORT_OPTIONS,
7870
+ sortValue,
7871
+ onSortChange,
7872
+ viewMode = "grid",
7873
+ onViewModeChange,
7874
+ showViewToggle = true,
7875
+ ...props
7876
+ }, ref) => {
7877
+ const resolvedLabel = totalLabel ?? (total !== void 0 ? `Znaleziono ${total} produkt\xF3w` : void 0);
7878
+ return /* @__PURE__ */ jsxRuntime.jsxs(Root36, { ref, ...props, children: [
7879
+ resolvedLabel && /* @__PURE__ */ jsxRuntime.jsx(TotalLabel, { children: resolvedLabel }),
7880
+ /* @__PURE__ */ jsxRuntime.jsxs(Controls, { children: [
7881
+ sortOptions.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
7882
+ /* @__PURE__ */ jsxRuntime.jsx(SortLabel, { htmlFor: "sort-select", children: "Sortuj:" }),
7883
+ /* @__PURE__ */ jsxRuntime.jsx(
7884
+ Select,
7885
+ {
7886
+ id: "sort-select",
7887
+ value: sortValue ?? "",
7888
+ onChange: (e) => onSortChange?.(e.target.value),
7889
+ children: sortOptions.map((opt) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: opt.value, children: opt.label }, opt.value))
7890
+ }
7891
+ )
7892
+ ] }),
7893
+ showViewToggle && /* @__PURE__ */ jsxRuntime.jsx(ViewToggle, { "aria-label": "Tryb widoku", children: ["grid", "list"].map((mode) => /* @__PURE__ */ jsxRuntime.jsx(
7894
+ ViewButton,
7895
+ {
7896
+ type: "button",
7897
+ $active: viewMode === mode,
7898
+ "aria-label": mode === "grid" ? "Widok siatki" : "Widok listy",
7899
+ "aria-pressed": viewMode === mode,
7900
+ onClick: () => onViewModeChange?.(mode),
7901
+ 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 } })
7902
+ },
7903
+ mode
7904
+ )) })
7905
+ ] })
6928
7906
  ] });
6929
7907
  }
6930
7908
  );
6931
- QuantitySelector.displayName = "QuantitySelector";
7909
+ SortBar.displayName = "SortBar";
6932
7910
  var COLOR_MAP = {
6933
7911
  "in-stock": "success",
6934
7912
  "low-stock": "warning",
@@ -6950,7 +7928,7 @@ function getDefaultLabel(status, count) {
6950
7928
  return "Dost\u0119pny na zam\xF3wienie";
6951
7929
  }
6952
7930
  }
6953
- var Root24 = styles.styled("div", {
7931
+ var Root37 = styles.styled("div", {
6954
7932
  shouldForwardProp: (p) => p !== "$color" && p !== "$size"
6955
7933
  })(({ theme, $color, $size }) => {
6956
7934
  const colorMap = {
@@ -6991,7 +7969,7 @@ var StockStatus = react.forwardRef(
6991
7969
  ({ status, count, label, showIcon = true, size = "md", ...props }, ref) => {
6992
7970
  const color = COLOR_MAP[status];
6993
7971
  const text = label ?? getDefaultLabel(status, count);
6994
- return /* @__PURE__ */ jsxRuntime.jsxs(Root24, { ref, $color: color, $size: size, role: "status", "aria-label": text, ...props, children: [
7972
+ return /* @__PURE__ */ jsxRuntime.jsxs(Root37, { ref, $color: color, $size: size, role: "status", "aria-label": text, ...props, children: [
6995
7973
  showIcon && /* @__PURE__ */ jsxRuntime.jsx(Dot2, { $color: color, "aria-hidden": "true" }),
6996
7974
  /* @__PURE__ */ jsxRuntime.jsx("span", { children: text })
6997
7975
  ] });
@@ -7005,7 +7983,110 @@ var stockStatusValues = [
7005
7983
  "preorder",
7006
7984
  "backorder"
7007
7985
  ];
7008
- var Root25 = styles.styled("div")(({ theme }) => ({
7986
+ var Root38 = styles.styled("div")({
7987
+ display: "flex",
7988
+ flexDirection: "column",
7989
+ gap: "0.5rem"
7990
+ });
7991
+ var Label4 = styles.styled("span")(({ theme }) => ({
7992
+ fontSize: "0.875rem",
7993
+ fontWeight: 600,
7994
+ color: theme.palette.text.primary,
7995
+ fontFamily: theme.typography.fontFamily
7996
+ }));
7997
+ var OptionsRow = styles.styled("div")({
7998
+ display: "flex",
7999
+ flexWrap: "wrap",
8000
+ gap: "0.5rem"
8001
+ });
8002
+ var OptionButton = styles.styled("button", {
8003
+ shouldForwardProp: (prop) => prop !== "$active" && prop !== "$mode"
8004
+ })(({ theme, $active, $mode }) => ({
8005
+ appearance: "none",
8006
+ cursor: "pointer",
8007
+ fontFamily: theme.typography.fontFamily,
8008
+ fontSize: "0.875rem",
8009
+ fontWeight: 500,
8010
+ transition: "border-color 150ms ease, background-color 150ms ease, box-shadow 150ms ease",
8011
+ "&:disabled": {
8012
+ opacity: 0.4,
8013
+ cursor: "not-allowed",
8014
+ textDecoration: $mode === "button" ? "line-through" : "none"
8015
+ },
8016
+ "&:focus-visible": {
8017
+ outline: `3px solid ${theme.palette.primary.main}`,
8018
+ outlineOffset: "2px"
8019
+ },
8020
+ ...$mode === "swatch" ? {
8021
+ width: "2rem",
8022
+ height: "2rem",
8023
+ borderRadius: "50%",
8024
+ border: $active ? `3px solid ${theme.palette.primary.main}` : `2px solid ${theme.palette.divider}`,
8025
+ boxShadow: $active ? `0 0 0 2px ${theme.palette.background.paper}, 0 0 0 4px ${theme.palette.primary.main}` : "none",
8026
+ padding: 0,
8027
+ background: "currentColor"
8028
+ } : {
8029
+ padding: "0.375rem 0.875rem",
8030
+ border: $active ? `2px solid ${theme.palette.primary.main}` : `1px solid ${theme.palette.divider}`,
8031
+ borderRadius: theme.shape.borderRadius,
8032
+ backgroundColor: $active ? `${theme.palette.primary.main}14` : "transparent",
8033
+ color: $active ? theme.palette.primary.main : theme.palette.text.primary
8034
+ }
8035
+ }));
8036
+ var Select2 = styles.styled("select")(({ theme }) => ({
8037
+ padding: "0.5rem 2rem 0.5rem 0.75rem",
8038
+ border: `1px solid ${theme.palette.divider}`,
8039
+ borderRadius: theme.shape.borderRadius,
8040
+ backgroundColor: theme.palette.background.paper,
8041
+ color: theme.palette.text.primary,
8042
+ fontFamily: theme.typography.fontFamily,
8043
+ fontSize: "0.875rem",
8044
+ cursor: "pointer",
8045
+ appearance: "none",
8046
+ 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")`,
8047
+ backgroundRepeat: "no-repeat",
8048
+ backgroundPosition: "right 0.75rem center",
8049
+ "&:focus": {
8050
+ outline: `3px solid ${theme.palette.primary.main}`,
8051
+ outlineOffset: "2px"
8052
+ }
8053
+ }));
8054
+ var VariantSelector = react.forwardRef(
8055
+ ({ label, options, value, onChange, mode = "button", disabled, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(Root38, { ref, ...props, children: [
8056
+ /* @__PURE__ */ jsxRuntime.jsxs(Label4, { children: [
8057
+ label,
8058
+ value && mode !== "swatch" && /* @__PURE__ */ jsxRuntime.jsx("span", { style: { fontWeight: 400, marginLeft: "0.375rem" }, children: options.find((o) => o.value === value)?.label })
8059
+ ] }),
8060
+ mode === "dropdown" ? /* @__PURE__ */ jsxRuntime.jsx(
8061
+ Select2,
8062
+ {
8063
+ value: value ?? "",
8064
+ onChange: (e) => onChange?.(e.target.value),
8065
+ disabled,
8066
+ "aria-label": label,
8067
+ children: options.map((opt) => /* @__PURE__ */ jsxRuntime.jsx("option", { value: opt.value, disabled: opt.disabled, children: opt.label }, opt.value))
8068
+ }
8069
+ ) : /* @__PURE__ */ jsxRuntime.jsx(OptionsRow, { role: "radiogroup", "aria-label": label, children: options.map((opt) => /* @__PURE__ */ jsxRuntime.jsx(
8070
+ OptionButton,
8071
+ {
8072
+ type: "button",
8073
+ $active: value === opt.value,
8074
+ $mode: mode,
8075
+ disabled: opt.disabled || disabled,
8076
+ style: mode === "swatch" ? { color: opt.color ?? "#ccc" } : void 0,
8077
+ title: opt.label,
8078
+ "aria-label": opt.label,
8079
+ "aria-pressed": value === opt.value,
8080
+ onClick: () => onChange?.(opt.value),
8081
+ children: mode === "button" && opt.label
8082
+ },
8083
+ opt.value
8084
+ )) })
8085
+ ] })
8086
+ );
8087
+ VariantSelector.displayName = "VariantSelector";
8088
+ var variantSelectorModes = ["button", "swatch", "dropdown"];
8089
+ var Root39 = styles.styled("div")(({ theme }) => ({
7009
8090
  borderBottom: `1px solid ${theme.palette.divider}`
7010
8091
  }));
7011
8092
  var Trigger2 = styles.styled("button")(({ theme }) => ({
@@ -7053,7 +8134,7 @@ var PanelInner = styles.styled("p")(({ theme }) => ({
7053
8134
  var FaqItem = react.forwardRef(
7054
8135
  ({ item, defaultOpen = false, ...props }, ref) => {
7055
8136
  const [open, setOpen] = react.useState(defaultOpen);
7056
- return /* @__PURE__ */ jsxRuntime.jsxs(Root25, { ref, ...props, children: [
8137
+ return /* @__PURE__ */ jsxRuntime.jsxs(Root39, { ref, ...props, children: [
7057
8138
  /* @__PURE__ */ jsxRuntime.jsxs(Trigger2, { type: "button", "aria-expanded": open, onClick: () => setOpen((prev) => !prev), children: [
7058
8139
  item.question,
7059
8140
  /* @__PURE__ */ jsxRuntime.jsx(ChevronIcon2, { $open: open, "aria-hidden": "true" })
@@ -7101,21 +8182,21 @@ var Title2 = styles.styled("h3")(({ theme }) => ({
7101
8182
  color: theme.palette.text.primary,
7102
8183
  lineHeight: 1.4
7103
8184
  }));
7104
- var Description4 = styles.styled("p")(({ theme }) => ({
8185
+ var Description5 = styles.styled("p")(({ theme }) => ({
7105
8186
  margin: "0.375rem 0 0",
7106
8187
  fontFamily: theme.typography.fontFamily,
7107
8188
  fontSize: "0.9rem",
7108
8189
  color: theme.palette.text.secondary,
7109
8190
  lineHeight: 1.6
7110
8191
  }));
7111
- var FeatureItem2 = react.forwardRef(
8192
+ var FeatureItem = react.forwardRef(
7112
8193
  ({ feature, cardVariant = "default", layout = "card", ...props }, ref) => {
7113
8194
  if (layout === "icon-left") {
7114
8195
  return /* @__PURE__ */ jsxRuntime.jsxs(IconLeftRoot, { ref, ...props, children: [
7115
8196
  feature.icon && /* @__PURE__ */ jsxRuntime.jsx(IconWrapper, { children: feature.icon }),
7116
8197
  /* @__PURE__ */ jsxRuntime.jsxs(TextGroup2, { children: [
7117
8198
  /* @__PURE__ */ jsxRuntime.jsx(Title2, { children: feature.title }),
7118
- /* @__PURE__ */ jsxRuntime.jsx(Description4, { children: feature.description })
8199
+ /* @__PURE__ */ jsxRuntime.jsx(Description5, { children: feature.description })
7119
8200
  ] })
7120
8201
  ] });
7121
8202
  }
@@ -7123,13 +8204,13 @@ var FeatureItem2 = react.forwardRef(
7123
8204
  feature.icon && /* @__PURE__ */ jsxRuntime.jsx(IconWrapper, { children: feature.icon }),
7124
8205
  /* @__PURE__ */ jsxRuntime.jsxs(TextGroup2, { children: [
7125
8206
  /* @__PURE__ */ jsxRuntime.jsx(Title2, { children: feature.title }),
7126
- /* @__PURE__ */ jsxRuntime.jsx(Description4, { children: feature.description })
8207
+ /* @__PURE__ */ jsxRuntime.jsx(Description5, { children: feature.description })
7127
8208
  ] })
7128
8209
  ] });
7129
8210
  }
7130
8211
  );
7131
- FeatureItem2.displayName = "FeatureItem";
7132
- var Root26 = styles.styled("div")({
8212
+ FeatureItem.displayName = "FeatureItem";
8213
+ var Root40 = styles.styled("div")({
7133
8214
  display: "flex",
7134
8215
  flexDirection: "column",
7135
8216
  alignItems: "center",
@@ -7168,7 +8249,7 @@ var Title3 = styles.styled("h3")(({ theme }) => ({
7168
8249
  fontSize: "1rem",
7169
8250
  color: theme.palette.text.primary
7170
8251
  }));
7171
- var Description5 = styles.styled("p")(({ theme }) => ({
8252
+ var Description6 = styles.styled("p")(({ theme }) => ({
7172
8253
  margin: 0,
7173
8254
  fontFamily: theme.typography.fontFamily,
7174
8255
  fontSize: "0.875rem",
@@ -7177,10 +8258,10 @@ var Description5 = styles.styled("p")(({ theme }) => ({
7177
8258
  maxWidth: "18rem"
7178
8259
  }));
7179
8260
  var ProcessStep = react.forwardRef(
7180
- ({ step, title, description, icon, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(Root26, { ref, ...props, children: [
8261
+ ({ step, title, description, icon, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(Root40, { ref, ...props, children: [
7181
8262
  /* @__PURE__ */ jsxRuntime.jsx(StepBadge, { "aria-hidden": "true", children: icon ? /* @__PURE__ */ jsxRuntime.jsx(IconWrapper2, { children: icon }) : /* @__PURE__ */ jsxRuntime.jsx(StepNumber, { children: step }) }),
7182
8263
  /* @__PURE__ */ jsxRuntime.jsx(Title3, { children: title }),
7183
- description && /* @__PURE__ */ jsxRuntime.jsx(Description5, { children: description })
8264
+ description && /* @__PURE__ */ jsxRuntime.jsx(Description6, { children: description })
7184
8265
  ] })
7185
8266
  );
7186
8267
  ProcessStep.displayName = "ProcessStep";
@@ -7303,7 +8384,7 @@ function getDotColor(status, theme) {
7303
8384
  return theme.palette.mode === "dark" ? "rgba(255,255,255,0.2)" : "rgba(0,0,0,0.15)";
7304
8385
  }
7305
8386
  }
7306
- var List = styles.styled("ol")({
8387
+ var List2 = styles.styled("ol")({
7307
8388
  listStyle: "none",
7308
8389
  margin: 0,
7309
8390
  padding: 0,
@@ -7386,7 +8467,7 @@ var Date2 = styles.styled("time")(({ theme }) => ({
7386
8467
  color: theme.palette.text.secondary,
7387
8468
  whiteSpace: "nowrap"
7388
8469
  }));
7389
- var Description6 = styles.styled("div")(({ theme }) => ({
8470
+ var Description7 = styles.styled("div")(({ theme }) => ({
7390
8471
  marginTop: "0.25rem",
7391
8472
  fontFamily: theme.typography.fontFamily,
7392
8473
  fontSize: "0.875rem",
@@ -7413,14 +8494,14 @@ function TimelineItemComponent({
7413
8494
  /* @__PURE__ */ jsxRuntime.jsx(Title4, { $compact: compact, children: item.title }),
7414
8495
  item.date && /* @__PURE__ */ jsxRuntime.jsx(Date2, { dateTime: item.date, children: item.date })
7415
8496
  ] }),
7416
- item.description && /* @__PURE__ */ jsxRuntime.jsx(Description6, { children: item.description })
8497
+ item.description && /* @__PURE__ */ jsxRuntime.jsx(Description7, { children: item.description })
7417
8498
  ] })
7418
8499
  ] });
7419
8500
  }
7420
8501
  var Timeline = react.forwardRef(
7421
8502
  ({ items, variant = "default", align: _align = "left", ...props }, ref) => {
7422
8503
  const compact = variant === "compact";
7423
- return /* @__PURE__ */ jsxRuntime.jsx(List, { ref, "aria-label": "O\u015B czasu", ...props, children: items.map((item, i) => /* @__PURE__ */ jsxRuntime.jsx(
8504
+ return /* @__PURE__ */ jsxRuntime.jsx(List2, { ref, "aria-label": "O\u015B czasu", ...props, children: items.map((item, i) => /* @__PURE__ */ jsxRuntime.jsx(
7424
8505
  TimelineItemComponent,
7425
8506
  {
7426
8507
  item,
@@ -7439,7 +8520,7 @@ var timelineItemStatuses = [
7439
8520
  "pending",
7440
8521
  "error"
7441
8522
  ];
7442
- var Root27 = styles.styled("div")({
8523
+ var Root41 = styles.styled("div")({
7443
8524
  position: "relative",
7444
8525
  width: "100%",
7445
8526
  overflow: "hidden",
@@ -7549,7 +8630,7 @@ function Carousel({
7549
8630
  }, [prev, next]);
7550
8631
  if (!count) return null;
7551
8632
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { className, children: [
7552
- /* @__PURE__ */ jsxRuntime.jsxs(Root27, { "aria-roledescription": "carousel", children: [
8633
+ /* @__PURE__ */ jsxRuntime.jsxs(Root41, { "aria-roledescription": "carousel", children: [
7553
8634
  /* @__PURE__ */ jsxRuntime.jsx(Track4, { $index: index, "aria-live": "polite", children: slides.map((slide, i) => /* @__PURE__ */ jsxRuntime.jsx(
7554
8635
  Slide,
7555
8636
  {
@@ -7897,7 +8978,7 @@ var Nav = styles.styled("nav")(({ theme }) => ({
7897
8978
  fontSize: "0.875rem",
7898
8979
  color: theme.palette.text.secondary
7899
8980
  }));
7900
- var List2 = styles.styled("ol")({
8981
+ var List3 = styles.styled("ol")({
7901
8982
  display: "flex",
7902
8983
  alignItems: "center",
7903
8984
  flexWrap: "wrap",
@@ -7921,7 +9002,7 @@ var Separator2 = styles.styled("span")(({ theme }) => ({
7921
9002
  color: theme.palette.text.disabled
7922
9003
  }));
7923
9004
  var Breadcrumbs = react.forwardRef(
7924
- ({ 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) => {
9005
+ ({ items, separator = "/", ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsx(Nav, { ref, "aria-label": "\u015Acie\u017Cka nawigacji", ...props, children: /* @__PURE__ */ jsxRuntime.jsx(List3, { children: items.map((item, index) => {
7925
9006
  const isLast = index === items.length - 1;
7926
9007
  return /* @__PURE__ */ jsxRuntime.jsxs("li", { children: [
7927
9008
  item.href && !isLast ? /* @__PURE__ */ jsxRuntime.jsx(Link2, { href: item.href, children: item.label }) : /* @__PURE__ */ jsxRuntime.jsx(Current2, { "aria-current": isLast ? "page" : void 0, children: item.label }),
@@ -7933,7 +9014,7 @@ var Breadcrumbs = react.forwardRef(
7933
9014
  }) }) })
7934
9015
  );
7935
9016
  Breadcrumbs.displayName = "Breadcrumbs";
7936
- var sizeMap5 = {
9017
+ var sizeMap6 = {
7937
9018
  sm: { minWidth: "1.75rem", height: "1.75rem", fontSize: "0.75rem" },
7938
9019
  md: { minWidth: "2rem", height: "2rem", fontSize: "0.875rem" },
7939
9020
  lg: { minWidth: "2.5rem", height: "2.5rem", fontSize: "1rem" }
@@ -7962,7 +9043,7 @@ var StyledButton2 = styles.styled("button")(({ theme, $isActive, $size }) => ({
7962
9043
  lineHeight: 1,
7963
9044
  padding: "0 0.25rem",
7964
9045
  transition: "background-color 150ms ease",
7965
- ...sizeMap5[$size],
9046
+ ...sizeMap6[$size],
7966
9047
  ...$isActive ? activeStyles(theme) : idleStyles(theme),
7967
9048
  "&:focus-visible": {
7968
9049
  outline: `3px solid ${theme.palette.primary.main}`,
@@ -7991,7 +9072,7 @@ var PaginationButton = react.forwardRef(
7991
9072
  )
7992
9073
  );
7993
9074
  PaginationButton.displayName = "PaginationButton";
7994
- var sizeMap6 = {
9075
+ var sizeMap7 = {
7995
9076
  sm: { minWidth: "1.75rem", height: "1.75rem", fontSize: "0.75rem" },
7996
9077
  md: { minWidth: "2rem", height: "2rem", fontSize: "0.875rem" },
7997
9078
  lg: { minWidth: "2.5rem", height: "2.5rem", fontSize: "1rem" }
@@ -8002,7 +9083,7 @@ var StyledEllipsis = styles.styled("span")(({ theme, $size }) => ({
8002
9083
  justifyContent: "center",
8003
9084
  color: theme.palette.text.secondary,
8004
9085
  userSelect: "none",
8005
- ...sizeMap6[$size]
9086
+ ...sizeMap7[$size]
8006
9087
  }));
8007
9088
  var PaginationEllipsis = ({ size = "md" }) => /* @__PURE__ */ jsxRuntime.jsx(StyledEllipsis, { $size: size, "aria-hidden": "true", children: "\u2026" });
8008
9089
  PaginationEllipsis.displayName = "PaginationEllipsis";
@@ -8112,7 +9193,7 @@ var PaginationBar = ({
8112
9193
  ] });
8113
9194
  };
8114
9195
  PaginationBar.displayName = "PaginationBar";
8115
- var Root28 = styles.styled("div", {
9196
+ var Root42 = styles.styled("div", {
8116
9197
  shouldForwardProp: (p) => p !== "$variant"
8117
9198
  })(({ theme, $variant }) => ({
8118
9199
  width: "100%",
@@ -8127,7 +9208,7 @@ var Root28 = styles.styled("div", {
8127
9208
  gap: "0.5rem"
8128
9209
  }
8129
9210
  }));
8130
- var Item = styles.styled("div", {
9211
+ var Item2 = styles.styled("div", {
8131
9212
  shouldForwardProp: (p) => !["$variant", "$disabled"].includes(p)
8132
9213
  })(({ theme, $variant, $disabled }) => ({
8133
9214
  opacity: $disabled ? 0.5 : 1,
@@ -8222,11 +9303,11 @@ var Accordion = react.forwardRef(
8222
9303
  if (controlledKeys === void 0) setInternalKeys(next);
8223
9304
  onChange?.(next);
8224
9305
  };
8225
- return /* @__PURE__ */ jsxRuntime.jsx(Root28, { ref, $variant: variant, ...props, children: items.map((item) => {
9306
+ return /* @__PURE__ */ jsxRuntime.jsx(Root42, { ref, $variant: variant, ...props, children: items.map((item) => {
8226
9307
  const isOpen = openKeys.includes(item.key);
8227
9308
  const panelId = `accordion-panel-${item.key}`;
8228
9309
  const triggerId = `accordion-trigger-${item.key}`;
8229
- return /* @__PURE__ */ jsxRuntime.jsxs(Item, { $variant: variant, $disabled: Boolean(item.disabled), children: [
9310
+ return /* @__PURE__ */ jsxRuntime.jsxs(Item2, { $variant: variant, $disabled: Boolean(item.disabled), children: [
8230
9311
  /* @__PURE__ */ jsxRuntime.jsxs(
8231
9312
  Trigger3,
8232
9313
  {
@@ -8251,6 +9332,74 @@ var Accordion = react.forwardRef(
8251
9332
  );
8252
9333
  Accordion.displayName = "Accordion";
8253
9334
  var accordionVariants = ["default", "bordered", "separated"];
9335
+ var SEVERITY_COLORS = {
9336
+ info: { bg: "rgba(25,118,210,0.08)", color: "#1565c0", border: "rgba(25,118,210,0.3)" },
9337
+ success: { bg: "rgba(34,197,94,0.1)", color: "#15803d", border: "rgba(34,197,94,0.35)" },
9338
+ warning: { bg: "rgba(245,158,11,0.1)", color: "#b45309", border: "rgba(245,158,11,0.35)" },
9339
+ error: { bg: "rgba(211,47,47,0.08)", color: "#c62828", border: "rgba(211,47,47,0.3)" }
9340
+ };
9341
+ var ICONS = {
9342
+ info: /* @__PURE__ */ jsxRuntime.jsx(InfoOutlinedIcon__default.default, { "aria-hidden": true, style: { fontSize: 20 } }),
9343
+ success: /* @__PURE__ */ jsxRuntime.jsx(CheckCircleOutlinedIcon__default.default, { "aria-hidden": true, style: { fontSize: 20 } }),
9344
+ warning: /* @__PURE__ */ jsxRuntime.jsx(WarningAmberOutlinedIcon__default.default, { "aria-hidden": true, style: { fontSize: 20 } }),
9345
+ error: /* @__PURE__ */ jsxRuntime.jsx(ErrorOutlineOutlinedIcon__default.default, { "aria-hidden": true, style: { fontSize: 20 } })
9346
+ };
9347
+ var Root43 = styles.styled("div", {
9348
+ shouldForwardProp: (prop) => prop !== "$severity"
9349
+ })(({ theme, $severity }) => {
9350
+ const c = SEVERITY_COLORS[$severity];
9351
+ return {
9352
+ display: "flex",
9353
+ gap: "0.75rem",
9354
+ padding: "0.875rem 1rem",
9355
+ borderRadius: theme.shape.borderRadius,
9356
+ border: `1px solid ${c.border}`,
9357
+ backgroundColor: c.bg,
9358
+ color: c.color,
9359
+ fontFamily: theme.typography.fontFamily,
9360
+ fontSize: "0.9375rem"
9361
+ };
9362
+ });
9363
+ var IconSlot2 = styles.styled("span")({
9364
+ flexShrink: 0,
9365
+ display: "flex",
9366
+ paddingTop: "0.0625rem"
9367
+ });
9368
+ var Body = styles.styled("div")({ flex: 1 });
9369
+ var Title5 = styles.styled("div")({
9370
+ fontWeight: 700,
9371
+ marginBottom: "0.25rem"
9372
+ });
9373
+ var CloseButton2 = styles.styled("button")(({ theme }) => ({
9374
+ appearance: "none",
9375
+ border: "none",
9376
+ background: "transparent",
9377
+ cursor: "pointer",
9378
+ display: "flex",
9379
+ alignItems: "center",
9380
+ padding: "0.125rem",
9381
+ color: "inherit",
9382
+ opacity: 0.6,
9383
+ borderRadius: "0.25rem",
9384
+ flexShrink: 0,
9385
+ "&:hover": { opacity: 1 },
9386
+ "&:focus-visible": {
9387
+ outline: `3px solid ${theme.palette.primary.main}`,
9388
+ outlineOffset: "2px"
9389
+ }
9390
+ }));
9391
+ var Alert = react.forwardRef(
9392
+ ({ severity = "info", title, children, onClose, icon, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(Root43, { ref, role: "alert", $severity: severity, ...props, children: [
9393
+ /* @__PURE__ */ jsxRuntime.jsx(IconSlot2, { children: icon ?? ICONS[severity] }),
9394
+ /* @__PURE__ */ jsxRuntime.jsxs(Body, { children: [
9395
+ title && /* @__PURE__ */ jsxRuntime.jsx(Title5, { children: title }),
9396
+ children
9397
+ ] }),
9398
+ 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 } }) })
9399
+ ] })
9400
+ );
9401
+ Alert.displayName = "Alert";
9402
+ var alertSeverities = ["info", "success", "warning", "error"];
8254
9403
  var fadeIn2 = react$1.keyframes`from{opacity:0;transform:translateY(0.5rem)}to{opacity:1;transform:translateY(0)}`;
8255
9404
  var fadeOut = react$1.keyframes`from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(0.5rem)}`;
8256
9405
  var POSITION_MAP = {
@@ -8490,6 +9639,44 @@ var ContextMenu = react.forwardRef(
8490
9639
  }
8491
9640
  );
8492
9641
  ContextMenu.displayName = "ContextMenu";
9642
+ var Root44 = styles.styled("div")(({ theme }) => ({
9643
+ display: "flex",
9644
+ flexDirection: "column",
9645
+ alignItems: "center",
9646
+ justifyContent: "center",
9647
+ gap: "1rem",
9648
+ padding: "3rem 1.5rem",
9649
+ textAlign: "center",
9650
+ fontFamily: theme.typography.fontFamily
9651
+ }));
9652
+ var IconWrap3 = styles.styled("div")(({ theme }) => ({
9653
+ color: theme.palette.text.disabled,
9654
+ display: "flex",
9655
+ "& svg": { fontSize: "3.5rem" }
9656
+ }));
9657
+ var Title6 = styles.styled("h3")(({ theme }) => ({
9658
+ margin: 0,
9659
+ fontSize: "1.125rem",
9660
+ fontWeight: 700,
9661
+ color: theme.palette.text.primary
9662
+ }));
9663
+ var Description8 = styles.styled("p")(({ theme }) => ({
9664
+ margin: 0,
9665
+ fontSize: "0.9375rem",
9666
+ color: theme.palette.text.secondary,
9667
+ maxWidth: "28rem"
9668
+ }));
9669
+ var EmptyState = react.forwardRef(
9670
+ ({ icon, title, description, action, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(Root44, { ref, ...props, children: [
9671
+ /* @__PURE__ */ jsxRuntime.jsx(IconWrap3, { "aria-hidden": true, children: icon ?? /* @__PURE__ */ jsxRuntime.jsx(InboxOutlinedIcon__default.default, {}) }),
9672
+ /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
9673
+ /* @__PURE__ */ jsxRuntime.jsx(Title6, { children: title }),
9674
+ description && /* @__PURE__ */ jsxRuntime.jsx(Description8, { style: { marginTop: "0.5rem" }, children: description })
9675
+ ] }),
9676
+ action && /* @__PURE__ */ jsxRuntime.jsx("div", { children: action })
9677
+ ] })
9678
+ );
9679
+ EmptyState.displayName = "EmptyState";
8493
9680
  var PADDING = {
8494
9681
  sm: "0.5rem 0.75rem",
8495
9682
  md: "0.75rem 1rem",
@@ -8500,7 +9687,7 @@ var FONT_SIZE2 = {
8500
9687
  md: "0.9375rem",
8501
9688
  lg: "1rem"
8502
9689
  };
8503
- var Root29 = styles.styled("ul", {
9690
+ var Root45 = styles.styled("ul", {
8504
9691
  shouldForwardProp: (p) => p !== "$variant"
8505
9692
  })(({ theme, $variant }) => ({
8506
9693
  listStyle: "none",
@@ -8518,7 +9705,7 @@ var Root29 = styles.styled("ul", {
8518
9705
  gap: "0.375rem"
8519
9706
  }
8520
9707
  }));
8521
- var Item2 = styles.styled("li", {
9708
+ var Item3 = styles.styled("li", {
8522
9709
  shouldForwardProp: (p) => !["$size", "$variant", "$clickable", "$disabled"].includes(p)
8523
9710
  })(({ theme, $size, $variant, $clickable, $disabled }) => ({
8524
9711
  display: "flex",
@@ -8592,11 +9779,11 @@ var SuffixWrap = styles.styled("span")({
8592
9779
  display: "flex",
8593
9780
  alignItems: "center"
8594
9781
  });
8595
- var List3 = react.forwardRef(
9782
+ var List4 = react.forwardRef(
8596
9783
  ({ items, size = "md", variant = "default", dividers = true, ...props }, ref) => {
8597
9784
  const effectiveVariant = !dividers && variant === "default" ? "default" : variant;
8598
- return /* @__PURE__ */ jsxRuntime.jsx(Root29, { ref, $variant: effectiveVariant, role: "list", ...props, children: items.map((item) => /* @__PURE__ */ jsxRuntime.jsxs(
8599
- Item2,
9785
+ return /* @__PURE__ */ jsxRuntime.jsx(Root45, { ref, $variant: effectiveVariant, role: "list", ...props, children: items.map((item) => /* @__PURE__ */ jsxRuntime.jsxs(
9786
+ Item3,
8600
9787
  {
8601
9788
  role: "listitem",
8602
9789
  $size: size,
@@ -8618,7 +9805,7 @@ var List3 = react.forwardRef(
8618
9805
  )) });
8619
9806
  }
8620
9807
  );
8621
- List3.displayName = "List";
9808
+ List4.displayName = "List";
8622
9809
  var listVariants = ["default", "bordered", "separated"];
8623
9810
  var listSizes = ["sm", "md", "lg"];
8624
9811
  var scrollLeft = styles.keyframes`
@@ -8634,7 +9821,7 @@ var speedDuration = {
8634
9821
  normal: "20s",
8635
9822
  fast: "10s"
8636
9823
  };
8637
- var Root30 = styles.styled("div")({
9824
+ var Root46 = styles.styled("div")({
8638
9825
  overflow: "hidden",
8639
9826
  width: "100%",
8640
9827
  userSelect: "none"
@@ -8665,7 +9852,7 @@ var Marquee = react.forwardRef(
8665
9852
  /* @__PURE__ */ jsxRuntime.jsx(ItemWrap, { $gap: gapValue, "aria-hidden": "false", children }),
8666
9853
  /* @__PURE__ */ jsxRuntime.jsx(ItemWrap, { $gap: gapValue, "aria-hidden": "true", children })
8667
9854
  ] });
8668
- return /* @__PURE__ */ jsxRuntime.jsx(Root30, { ref, ...props, children: /* @__PURE__ */ jsxRuntime.jsx(Track5, { $direction: direction, $speed: speed, $pauseOnHover: pauseOnHover, $gap: gapValue, children: content }) });
9855
+ return /* @__PURE__ */ jsxRuntime.jsx(Root46, { ref, ...props, children: /* @__PURE__ */ jsxRuntime.jsx(Track5, { $direction: direction, $speed: speed, $pauseOnHover: pauseOnHover, $gap: gapValue, children: content }) });
8669
9856
  }
8670
9857
  );
8671
9858
  Marquee.displayName = "Marquee";
@@ -8711,7 +9898,7 @@ var Dialog = styles.styled("div", {
8711
9898
  margin: 0
8712
9899
  }
8713
9900
  }));
8714
- var Header = styles.styled("div")(({ theme }) => ({
9901
+ var Header2 = styles.styled("div")(({ theme }) => ({
8715
9902
  display: "flex",
8716
9903
  alignItems: "center",
8717
9904
  justifyContent: "space-between",
@@ -8719,7 +9906,7 @@ var Header = styles.styled("div")(({ theme }) => ({
8719
9906
  borderBottom: `1px solid ${theme.palette.divider}`,
8720
9907
  flexShrink: 0
8721
9908
  }));
8722
- var Title5 = styles.styled("h2")(({ theme }) => ({
9909
+ var Title7 = styles.styled("h2")(({ theme }) => ({
8723
9910
  margin: 0,
8724
9911
  fontFamily: theme.typography.fontFamily,
8725
9912
  fontSize: "1.125rem",
@@ -8727,7 +9914,7 @@ var Title5 = styles.styled("h2")(({ theme }) => ({
8727
9914
  color: theme.palette.text.primary,
8728
9915
  lineHeight: 1.4
8729
9916
  }));
8730
- var CloseButton2 = styles.styled("button")(({ theme }) => ({
9917
+ var CloseButton3 = styles.styled("button")(({ theme }) => ({
8731
9918
  appearance: "none",
8732
9919
  border: "none",
8733
9920
  background: "none",
@@ -8750,14 +9937,14 @@ var CloseButton2 = styles.styled("button")(({ theme }) => ({
8750
9937
  outlineOffset: "2px"
8751
9938
  }
8752
9939
  }));
8753
- var Body = styles.styled("div")(({ theme }) => ({
9940
+ var Body2 = styles.styled("div")(({ theme }) => ({
8754
9941
  padding: "1.5rem",
8755
9942
  overflowY: "auto",
8756
9943
  flex: 1,
8757
9944
  fontFamily: theme.typography.fontFamily,
8758
9945
  color: theme.palette.text.primary
8759
9946
  }));
8760
- var Footer3 = styles.styled("div")(({ theme }) => ({
9947
+ var Footer4 = styles.styled("div")(({ theme }) => ({
8761
9948
  padding: "1rem 1.5rem",
8762
9949
  borderTop: `1px solid ${theme.palette.divider}`,
8763
9950
  display: "flex",
@@ -8808,12 +9995,12 @@ function Modal({
8808
9995
  tabIndex: -1,
8809
9996
  onClick: (e) => e.stopPropagation(),
8810
9997
  children: [
8811
- (title || !hideCloseButton) && /* @__PURE__ */ jsxRuntime.jsxs(Header, { children: [
8812
- title ? /* @__PURE__ */ jsxRuntime.jsx(Title5, { id: "modal-title", children: title }) : /* @__PURE__ */ jsxRuntime.jsx("span", {}),
8813
- !hideCloseButton && /* @__PURE__ */ jsxRuntime.jsx(CloseButton2, { "aria-label": "Zamknij", onClick: onClose, children: /* @__PURE__ */ jsxRuntime.jsx(CloseIcon__default.default, { "aria-hidden": true, style: { fontSize: 16 } }) })
9998
+ (title || !hideCloseButton) && /* @__PURE__ */ jsxRuntime.jsxs(Header2, { children: [
9999
+ title ? /* @__PURE__ */ jsxRuntime.jsx(Title7, { id: "modal-title", children: title }) : /* @__PURE__ */ jsxRuntime.jsx("span", {}),
10000
+ !hideCloseButton && /* @__PURE__ */ jsxRuntime.jsx(CloseButton3, { "aria-label": "Zamknij", onClick: onClose, children: /* @__PURE__ */ jsxRuntime.jsx(CloseIcon__default.default, { "aria-hidden": true, style: { fontSize: 16 } }) })
8814
10001
  ] }),
8815
- children && /* @__PURE__ */ jsxRuntime.jsx(Body, { children }),
8816
- footer && /* @__PURE__ */ jsxRuntime.jsx(Footer3, { children: footer })
10002
+ children && /* @__PURE__ */ jsxRuntime.jsx(Body2, { children }),
10003
+ footer && /* @__PURE__ */ jsxRuntime.jsx(Footer4, { children: footer })
8817
10004
  ]
8818
10005
  }
8819
10006
  ) }),
@@ -8821,7 +10008,7 @@ function Modal({
8821
10008
  );
8822
10009
  }
8823
10010
  var modalSizes = ["sm", "md", "lg", "xl", "full"];
8824
- var Root31 = styles.styled("div")({ width: "100%" });
10011
+ var Root47 = styles.styled("div")({ width: "100%" });
8825
10012
  var TabList = styles.styled("div", {
8826
10013
  shouldForwardProp: (prop) => prop !== "$variant"
8827
10014
  })(({ theme, $variant }) => ({
@@ -8901,7 +10088,7 @@ var Tabs = react.forwardRef(
8901
10088
  onChange?.(key);
8902
10089
  };
8903
10090
  const activeTab = tabs.find((t) => t.key === activeKey);
8904
- return /* @__PURE__ */ jsxRuntime.jsxs(Root31, { ref, ...props, children: [
10091
+ return /* @__PURE__ */ jsxRuntime.jsxs(Root47, { ref, ...props, children: [
8905
10092
  /* @__PURE__ */ jsxRuntime.jsx(TabList, { role: "tablist", $variant: variant, children: tabs.map((tab) => /* @__PURE__ */ jsxRuntime.jsx(
8906
10093
  TabButton,
8907
10094
  {
@@ -8933,6 +10120,79 @@ var Tabs = react.forwardRef(
8933
10120
  );
8934
10121
  Tabs.displayName = "Tabs";
8935
10122
  var tabsVariants = ["underline", "pills", "bordered"];
10123
+ var Root48 = styles.styled("div")(({ theme }) => ({
10124
+ display: "grid",
10125
+ gridTemplateColumns: "4.5rem 1fr",
10126
+ gap: "0.875rem",
10127
+ paddingBottom: "1rem",
10128
+ borderBottom: `1px solid ${theme.palette.divider}`
10129
+ }));
10130
+ var ImageWrap5 = styles.styled("div")(({ theme }) => ({
10131
+ position: "relative",
10132
+ width: "4.5rem",
10133
+ height: "4.5rem",
10134
+ borderRadius: theme.shape.borderRadius,
10135
+ overflow: "hidden",
10136
+ flexShrink: 0
10137
+ }));
10138
+ var Info4 = styles.styled("div")({ display: "grid", gap: "0.5rem" });
10139
+ var Row5 = styles.styled("div")({
10140
+ display: "flex",
10141
+ alignItems: "center",
10142
+ justifyContent: "space-between",
10143
+ gap: "0.75rem"
10144
+ });
10145
+ var Name10 = styles.styled("p")(({ theme }) => ({
10146
+ margin: 0,
10147
+ color: theme.palette.text.primary,
10148
+ fontFamily: theme.typography.fontFamily,
10149
+ fontWeight: 700
10150
+ }));
10151
+ var Price3 = styles.styled("p")(({ theme }) => ({
10152
+ margin: 0,
10153
+ color: theme.palette.text.secondary,
10154
+ fontFamily: theme.typography.fontFamily,
10155
+ fontSize: "0.875rem"
10156
+ }));
10157
+ var RemoveButton2 = styles.styled("button")(({ theme }) => ({
10158
+ border: 0,
10159
+ background: "transparent",
10160
+ color: theme.palette.error.main,
10161
+ cursor: "pointer",
10162
+ padding: 0,
10163
+ fontFamily: theme.typography.fontFamily,
10164
+ fontSize: "0.875rem"
10165
+ }));
10166
+ var CartDrawerItem = ({
10167
+ id,
10168
+ name,
10169
+ price,
10170
+ quantity,
10171
+ imageUrl,
10172
+ imageAlt,
10173
+ onQuantityChange,
10174
+ onRemove
10175
+ }) => /* @__PURE__ */ jsxRuntime.jsxs(Root48, { children: [
10176
+ /* @__PURE__ */ jsxRuntime.jsx(ImageWrap5, { children: /* @__PURE__ */ jsxRuntime.jsx(ProductCardImage, { src: imageUrl, alt: imageAlt ?? name }) }),
10177
+ /* @__PURE__ */ jsxRuntime.jsxs(Info4, { children: [
10178
+ /* @__PURE__ */ jsxRuntime.jsxs(Row5, { children: [
10179
+ /* @__PURE__ */ jsxRuntime.jsx(Name10, { children: name }),
10180
+ /* @__PURE__ */ jsxRuntime.jsx(Price3, { children: price })
10181
+ ] }),
10182
+ /* @__PURE__ */ jsxRuntime.jsxs(Row5, { children: [
10183
+ /* @__PURE__ */ jsxRuntime.jsx(
10184
+ QuantitySelector,
10185
+ {
10186
+ value: quantity,
10187
+ min: 1,
10188
+ onChange: (qty) => onQuantityChange?.(id, qty)
10189
+ }
10190
+ ),
10191
+ /* @__PURE__ */ jsxRuntime.jsx(RemoveButton2, { type: "button", onClick: () => onRemove?.(id), children: "Usu\u0144" })
10192
+ ] })
10193
+ ] })
10194
+ ] });
10195
+ CartDrawerItem.displayName = "CartDrawerItem";
8936
10196
  var Overlay3 = styles.styled("div")(({ $open }) => ({
8937
10197
  position: "fixed",
8938
10198
  inset: 0,
@@ -8952,14 +10212,14 @@ var Panel3 = styles.styled("aside")(({ theme }) => ({
8952
10212
  boxShadow: theme.shadows[5],
8953
10213
  fontFamily: theme.typography.fontFamily
8954
10214
  }));
8955
- var Header2 = styles.styled("div")(({ theme }) => ({
10215
+ var Header3 = styles.styled("div")(({ theme }) => ({
8956
10216
  display: "flex",
8957
10217
  alignItems: "center",
8958
10218
  justifyContent: "space-between",
8959
10219
  padding: "1rem 1.25rem",
8960
10220
  borderBottom: `1px solid ${theme.palette.divider}`
8961
10221
  }));
8962
- var Title6 = styles.styled("h2")(({ theme }) => ({
10222
+ var Title8 = styles.styled("h2")(({ theme }) => ({
8963
10223
  margin: 0,
8964
10224
  fontSize: "1.125rem",
8965
10225
  color: theme.palette.text.primary
@@ -8977,52 +10237,13 @@ var Items = styles.styled("div")({
8977
10237
  padding: "1rem 1.25rem",
8978
10238
  overflow: "auto"
8979
10239
  });
8980
- var Item3 = styles.styled("div")(({ theme }) => ({
8981
- display: "grid",
8982
- gridTemplateColumns: "4.5rem 1fr",
8983
- gap: "0.875rem",
8984
- paddingBottom: "1rem",
8985
- borderBottom: `1px solid ${theme.palette.divider}`
8986
- }));
8987
- var ItemImage = styles.styled("img")(({ theme }) => ({
8988
- width: "4.5rem",
8989
- height: "4.5rem",
8990
- borderRadius: theme.shape.borderRadius,
8991
- objectFit: "cover",
8992
- backgroundColor: theme.palette.action.hover
8993
- }));
8994
- var PlaceholderImage = styles.styled("div")(({ theme }) => ({
8995
- width: "4.5rem",
8996
- height: "4.5rem",
8997
- borderRadius: theme.shape.borderRadius,
8998
- backgroundColor: theme.palette.action.hover
8999
- }));
9000
- var ItemInfo = styles.styled("div")({ display: "grid", gap: "0.5rem" });
9001
- var ItemName = styles.styled("p")(({ theme }) => ({
9002
- margin: 0,
9003
- color: theme.palette.text.primary,
9004
- fontWeight: 700
9005
- }));
9006
- var ItemMeta = styles.styled("p")(({ theme }) => ({
9007
- margin: 0,
9008
- color: theme.palette.text.secondary,
9009
- fontSize: "0.875rem"
9010
- }));
9011
- var Row4 = styles.styled("div")({
9012
- display: "flex",
9013
- alignItems: "center",
9014
- justifyContent: "space-between",
9015
- gap: "0.75rem"
9016
- });
9017
- var RemoveButton2 = styles.styled("button")(({ theme }) => ({
9018
- border: 0,
9019
- background: "transparent",
9020
- color: theme.palette.error.main,
9021
- cursor: "pointer",
9022
- padding: 0,
9023
- fontSize: "0.875rem"
9024
- }));
9025
- var Footer4 = styles.styled("div")(({ theme }) => ({
10240
+ var Row6 = styles.styled("div")({
10241
+ display: "flex",
10242
+ alignItems: "center",
10243
+ justifyContent: "space-between",
10244
+ gap: "0.75rem"
10245
+ });
10246
+ var Footer5 = styles.styled("div")(({ theme }) => ({
9026
10247
  display: "grid",
9027
10248
  gap: "1rem",
9028
10249
  marginTop: "auto",
@@ -9043,32 +10264,21 @@ var CartDrawer = react.forwardRef(
9043
10264
  onRemove,
9044
10265
  ...props
9045
10266
  }, ref) => /* @__PURE__ */ jsxRuntime.jsx(Overlay3, { $open: open, children: /* @__PURE__ */ jsxRuntime.jsxs(Panel3, { ref, "aria-hidden": !open, "aria-label": title, ...props, children: [
9046
- /* @__PURE__ */ jsxRuntime.jsxs(Header2, { children: [
9047
- /* @__PURE__ */ jsxRuntime.jsx(Title6, { children: title }),
10267
+ /* @__PURE__ */ jsxRuntime.jsxs(Header3, { children: [
10268
+ /* @__PURE__ */ jsxRuntime.jsx(Title8, { children: title }),
9048
10269
  /* @__PURE__ */ jsxRuntime.jsx(IconButton, { type: "button", "aria-label": closeLabel, onClick: onClose, children: "\xD7" })
9049
10270
  ] }),
9050
- /* @__PURE__ */ jsxRuntime.jsx(Items, { children: items.map((item) => /* @__PURE__ */ jsxRuntime.jsxs(Item3, { children: [
9051
- item.imageUrl ? /* @__PURE__ */ jsxRuntime.jsx(ItemImage, { src: item.imageUrl, alt: item.imageAlt ?? item.name }) : /* @__PURE__ */ jsxRuntime.jsx(PlaceholderImage, {}),
9052
- /* @__PURE__ */ jsxRuntime.jsxs(ItemInfo, { children: [
9053
- /* @__PURE__ */ jsxRuntime.jsxs(Row4, { children: [
9054
- /* @__PURE__ */ jsxRuntime.jsx(ItemName, { children: item.name }),
9055
- /* @__PURE__ */ jsxRuntime.jsx(ItemMeta, { children: item.price })
9056
- ] }),
9057
- /* @__PURE__ */ jsxRuntime.jsxs(Row4, { children: [
9058
- /* @__PURE__ */ jsxRuntime.jsx(
9059
- QuantitySelector,
9060
- {
9061
- value: item.quantity,
9062
- min: 1,
9063
- onChange: (quantity) => onQuantityChange?.(item.id, quantity)
9064
- }
9065
- ),
9066
- /* @__PURE__ */ jsxRuntime.jsx(RemoveButton2, { type: "button", onClick: () => onRemove?.(item.id), children: "Usu\u0144" })
9067
- ] })
9068
- ] })
9069
- ] }, item.id)) }),
9070
- /* @__PURE__ */ jsxRuntime.jsxs(Footer4, { children: [
9071
- /* @__PURE__ */ jsxRuntime.jsxs(Row4, { children: [
10271
+ /* @__PURE__ */ jsxRuntime.jsx(Items, { children: items.map((item) => /* @__PURE__ */ jsxRuntime.jsx(
10272
+ CartDrawerItem,
10273
+ {
10274
+ ...item,
10275
+ onQuantityChange,
10276
+ onRemove
10277
+ },
10278
+ item.id
10279
+ )) }),
10280
+ /* @__PURE__ */ jsxRuntime.jsxs(Footer5, { children: [
10281
+ /* @__PURE__ */ jsxRuntime.jsxs(Row6, { children: [
9072
10282
  /* @__PURE__ */ jsxRuntime.jsx("strong", { children: "Suma" }),
9073
10283
  /* @__PURE__ */ jsxRuntime.jsx("strong", { children: subtotal })
9074
10284
  ] }),
@@ -9077,7 +10287,7 @@ var CartDrawer = react.forwardRef(
9077
10287
  ] }) })
9078
10288
  );
9079
10289
  CartDrawer.displayName = "CartDrawer";
9080
- var Root32 = styles.styled("aside")(({ theme }) => ({
10290
+ var Root49 = styles.styled("aside")(({ theme }) => ({
9081
10291
  display: "grid",
9082
10292
  gap: "1.5rem",
9083
10293
  width: "100%",
@@ -9088,13 +10298,13 @@ var Root32 = styles.styled("aside")(({ theme }) => ({
9088
10298
  backgroundColor: theme.palette.background.paper,
9089
10299
  fontFamily: theme.typography.fontFamily
9090
10300
  }));
9091
- var Header3 = styles.styled("div")({
10301
+ var Header4 = styles.styled("div")({
9092
10302
  display: "flex",
9093
10303
  alignItems: "center",
9094
10304
  justifyContent: "space-between",
9095
10305
  gap: "1rem"
9096
10306
  });
9097
- var Title7 = styles.styled("h2")(({ theme }) => ({
10307
+ var Title9 = styles.styled("h2")(({ theme }) => ({
9098
10308
  margin: 0,
9099
10309
  color: theme.palette.text.primary,
9100
10310
  fontSize: "1.125rem"
@@ -9112,7 +10322,7 @@ var Legend = styles.styled("legend")({
9112
10322
  marginBottom: "0.75rem",
9113
10323
  fontWeight: 800
9114
10324
  });
9115
- var OptionLabel = styles.styled("label")(({ theme }) => ({
10325
+ var OptionLabel2 = styles.styled("label")(({ theme }) => ({
9116
10326
  display: "flex",
9117
10327
  alignItems: "center",
9118
10328
  justifyContent: "space-between",
@@ -9139,7 +10349,7 @@ var NumberInput2 = styles.styled("input")(({ theme }) => ({
9139
10349
  fontFamily: theme.typography.fontFamily
9140
10350
  }));
9141
10351
  function renderOptions(options, selected, onToggle) {
9142
- return options.map((option) => /* @__PURE__ */ jsxRuntime.jsxs(OptionLabel, { children: [
10352
+ return options.map((option) => /* @__PURE__ */ jsxRuntime.jsxs(OptionLabel2, { children: [
9143
10353
  /* @__PURE__ */ jsxRuntime.jsxs(OptionText, { children: [
9144
10354
  /* @__PURE__ */ jsxRuntime.jsx(
9145
10355
  "input",
@@ -9169,9 +10379,9 @@ var FilterSidebar = react.forwardRef(
9169
10379
  onPriceRangeChange,
9170
10380
  onClear,
9171
10381
  ...props
9172
- }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(Root32, { ref, "aria-label": "Filtry produkt\xF3w", ...props, children: [
9173
- /* @__PURE__ */ jsxRuntime.jsxs(Header3, { children: [
9174
- /* @__PURE__ */ jsxRuntime.jsx(Title7, { children: "Filtry" }),
10382
+ }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(Root49, { ref, "aria-label": "Filtry produkt\xF3w", ...props, children: [
10383
+ /* @__PURE__ */ jsxRuntime.jsxs(Header4, { children: [
10384
+ /* @__PURE__ */ jsxRuntime.jsx(Title9, { children: "Filtry" }),
9175
10385
  onClear && /* @__PURE__ */ jsxRuntime.jsx(Button, { variant: "ghost", size: "sm", onClick: onClear, children: "Wyczy\u015B\u0107" })
9176
10386
  ] }),
9177
10387
  priceRange && /* @__PURE__ */ jsxRuntime.jsxs(Group, { children: [
@@ -9212,52 +10422,22 @@ var FilterSidebar = react.forwardRef(
9212
10422
  ] })
9213
10423
  );
9214
10424
  FilterSidebar.displayName = "FilterSidebar";
9215
- var Root33 = styles.styled(Card)({ display: "grid", gap: "1rem" });
9216
- var Title8 = styles.styled("h2")(({ theme }) => ({
9217
- margin: 0,
9218
- fontFamily: theme.typography.fontFamily,
9219
- fontSize: "1.125rem",
9220
- fontWeight: 800,
9221
- color: theme.palette.text.primary
9222
- }));
9223
- var Rows = styles.styled("dl")({ display: "grid", gap: "0.75rem", margin: 0 });
9224
- var SectionTitle = styles.styled("h3")(({ theme }) => ({
9225
- margin: 0,
9226
- fontFamily: theme.typography.fontFamily,
9227
- fontSize: "0.875rem",
9228
- fontWeight: 800,
9229
- color: theme.palette.text.primary
9230
- }));
9231
- var ItemList = styles.styled("ul")({
9232
- display: "grid",
9233
- gap: "0.875rem",
9234
- padding: 0,
9235
- margin: 0,
9236
- listStyle: "none"
9237
- });
9238
- var Item4 = styles.styled("li")({
10425
+ var Root50 = styles.styled("li")({
9239
10426
  display: "grid",
9240
10427
  gridTemplateColumns: "3.5rem 1fr auto",
9241
10428
  alignItems: "center",
9242
10429
  gap: "0.75rem"
9243
10430
  });
9244
- var ItemImage2 = styles.styled("img")(({ theme }) => ({
9245
- width: "3.5rem",
9246
- height: "3.5rem",
9247
- borderRadius: theme.shape.borderRadius,
9248
- objectFit: "cover",
9249
- backgroundColor: theme.palette.action.hover
9250
- }));
9251
- var ItemImagePlaceholder = styles.styled("div")(({ theme }) => ({
10431
+ var ImageWrap6 = styles.styled("div")(({ theme }) => ({
10432
+ position: "relative",
9252
10433
  width: "3.5rem",
9253
10434
  height: "3.5rem",
9254
10435
  borderRadius: theme.shape.borderRadius,
9255
- backgroundColor: theme.palette.action.hover
10436
+ overflow: "hidden",
10437
+ flexShrink: 0
9256
10438
  }));
9257
- var ItemInfo2 = styles.styled("div")({
9258
- minWidth: 0
9259
- });
9260
- var ItemName2 = styles.styled("p")(({ theme }) => ({
10439
+ var Info5 = styles.styled("div")({ minWidth: 0 });
10440
+ var Name11 = styles.styled("p")(({ theme }) => ({
9261
10441
  margin: 0,
9262
10442
  color: theme.palette.text.primary,
9263
10443
  fontFamily: theme.typography.fontFamily,
@@ -9265,39 +10445,88 @@ var ItemName2 = styles.styled("p")(({ theme }) => ({
9265
10445
  fontWeight: 700,
9266
10446
  lineHeight: 1.4
9267
10447
  }));
9268
- var ItemMeta2 = styles.styled("p")(({ theme }) => ({
10448
+ var Meta2 = styles.styled("p")(({ theme }) => ({
9269
10449
  margin: "0.25rem 0 0",
9270
10450
  color: theme.palette.text.secondary,
9271
10451
  fontFamily: theme.typography.fontFamily,
9272
10452
  fontSize: "0.8125rem",
9273
10453
  lineHeight: 1.4
9274
10454
  }));
9275
- var ItemPrice = styles.styled("span")(({ theme }) => ({
10455
+ var Price4 = styles.styled("span")(({ theme }) => ({
9276
10456
  color: theme.palette.text.primary,
9277
10457
  fontFamily: theme.typography.fontFamily,
9278
10458
  fontSize: "0.875rem",
9279
10459
  fontWeight: 800,
9280
10460
  whiteSpace: "nowrap"
9281
10461
  }));
9282
- var Row5 = styles.styled("div")(({ theme }) => ({
10462
+ var OrderSummaryItem = ({
10463
+ name,
10464
+ price,
10465
+ imageUrl,
10466
+ imageAlt,
10467
+ quantity,
10468
+ meta
10469
+ }) => /* @__PURE__ */ jsxRuntime.jsxs(Root50, { children: [
10470
+ /* @__PURE__ */ jsxRuntime.jsx(ImageWrap6, { children: /* @__PURE__ */ jsxRuntime.jsx(ProductCardImage, { src: imageUrl, alt: imageAlt ?? String(name) }) }),
10471
+ /* @__PURE__ */ jsxRuntime.jsxs(Info5, { children: [
10472
+ /* @__PURE__ */ jsxRuntime.jsx(Name11, { children: name }),
10473
+ (quantity !== void 0 || meta) && /* @__PURE__ */ jsxRuntime.jsxs(Meta2, { children: [
10474
+ quantity !== void 0 && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
10475
+ "Ilo\u015B\u0107: ",
10476
+ quantity
10477
+ ] }),
10478
+ quantity !== void 0 && meta && " \xB7 ",
10479
+ meta
10480
+ ] })
10481
+ ] }),
10482
+ /* @__PURE__ */ jsxRuntime.jsx(Price4, { children: price })
10483
+ ] });
10484
+ OrderSummaryItem.displayName = "OrderSummaryItem";
10485
+ var Root51 = styles.styled("div", {
10486
+ shouldForwardProp: (prop) => prop !== "$total"
10487
+ })(({ theme, $total }) => ({
9283
10488
  display: "flex",
9284
10489
  justifyContent: "space-between",
9285
10490
  gap: "1rem",
9286
- color: theme.palette.text.secondary,
10491
+ color: $total ? theme.palette.text.primary : theme.palette.text.secondary,
9287
10492
  fontFamily: theme.typography.fontFamily,
9288
- fontSize: "0.875rem",
10493
+ fontSize: $total ? "1rem" : "0.875rem",
10494
+ fontWeight: $total ? 800 : 400,
9289
10495
  "& dt, & dd": { margin: 0 }
9290
10496
  }));
10497
+ var OrderSummaryRow = ({ label, value, total = false }) => /* @__PURE__ */ jsxRuntime.jsxs(Root51, { as: "div", $total: total, children: [
10498
+ /* @__PURE__ */ jsxRuntime.jsx("dt", { children: label }),
10499
+ /* @__PURE__ */ jsxRuntime.jsx("dd", { children: value })
10500
+ ] });
10501
+ OrderSummaryRow.displayName = "OrderSummaryRow";
10502
+ var Root52 = styles.styled(Card)({ display: "grid", gap: "1rem" });
10503
+ var Title10 = styles.styled("h2")(({ theme }) => ({
10504
+ margin: 0,
10505
+ fontFamily: theme.typography.fontFamily,
10506
+ fontSize: "1.125rem",
10507
+ fontWeight: 800,
10508
+ color: theme.palette.text.primary
10509
+ }));
10510
+ var Rows = styles.styled("dl")({ display: "grid", gap: "0.75rem", margin: 0 });
10511
+ var SectionTitle = styles.styled("h3")(({ theme }) => ({
10512
+ margin: 0,
10513
+ fontFamily: theme.typography.fontFamily,
10514
+ fontSize: "0.875rem",
10515
+ fontWeight: 800,
10516
+ color: theme.palette.text.primary
10517
+ }));
10518
+ var ItemList = styles.styled("ul")({
10519
+ display: "grid",
10520
+ gap: "0.875rem",
10521
+ padding: 0,
10522
+ margin: 0,
10523
+ listStyle: "none"
10524
+ });
9291
10525
  var Divider3 = styles.styled("hr")(({ theme }) => ({
9292
10526
  width: "100%",
9293
10527
  border: 0,
9294
10528
  borderTop: `1px solid ${theme.palette.divider}`
9295
10529
  }));
9296
- var TotalRow = styles.styled(Row5)(({ theme }) => ({
9297
- color: theme.palette.text.primary,
9298
- fontSize: "1rem",
9299
- fontWeight: 800
9300
- }));
9301
10530
  var OrderSummary = react.forwardRef(
9302
10531
  ({
9303
10532
  title = "Podsumowanie zam\xF3wienia",
@@ -9312,59 +10541,245 @@ var OrderSummary = react.forwardRef(
9312
10541
  ctaLabel = "Przejd\u017A do kasy",
9313
10542
  onCheckout,
9314
10543
  ...props
9315
- }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(Root33, { ref, variant: "default", padding: "lg", rounded: "lg", ...props, children: [
9316
- /* @__PURE__ */ jsxRuntime.jsx(Title8, { children: title }),
10544
+ }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(Root52, { ref, variant: "default", padding: "lg", rounded: "lg", ...props, children: [
10545
+ /* @__PURE__ */ jsxRuntime.jsx(Title10, { children: title }),
9317
10546
  items.length > 0 && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
9318
10547
  /* @__PURE__ */ jsxRuntime.jsx(SectionTitle, { children: itemsTitle }),
9319
- /* @__PURE__ */ jsxRuntime.jsx(ItemList, { children: items.map((item) => /* @__PURE__ */ jsxRuntime.jsxs(Item4, { children: [
9320
- item.imageUrl ? /* @__PURE__ */ jsxRuntime.jsx(ItemImage2, { src: item.imageUrl, alt: item.imageAlt ?? String(item.name) }) : /* @__PURE__ */ jsxRuntime.jsx(ItemImagePlaceholder, { "aria-hidden": "true" }),
9321
- /* @__PURE__ */ jsxRuntime.jsxs(ItemInfo2, { children: [
9322
- /* @__PURE__ */ jsxRuntime.jsx(ItemName2, { children: item.name }),
9323
- (item.quantity !== void 0 || item.meta) && /* @__PURE__ */ jsxRuntime.jsxs(ItemMeta2, { children: [
9324
- item.quantity !== void 0 && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
9325
- "Ilo\u015B\u0107: ",
9326
- item.quantity
9327
- ] }),
9328
- item.quantity !== void 0 && item.meta && " \xB7 ",
9329
- item.meta
9330
- ] })
9331
- ] }),
9332
- /* @__PURE__ */ jsxRuntime.jsx(ItemPrice, { children: item.price })
9333
- ] }, item.id)) }),
10548
+ /* @__PURE__ */ jsxRuntime.jsx(ItemList, { children: items.map((item) => /* @__PURE__ */ jsxRuntime.jsx(OrderSummaryItem, { ...item }, item.id)) }),
9334
10549
  /* @__PURE__ */ jsxRuntime.jsx(Divider3, {})
9335
10550
  ] }),
9336
10551
  /* @__PURE__ */ jsxRuntime.jsxs(Rows, { children: [
9337
- /* @__PURE__ */ jsxRuntime.jsxs(Row5, { children: [
9338
- /* @__PURE__ */ jsxRuntime.jsx("dt", { children: "Warto\u015B\u0107 produkt\xF3w" }),
9339
- /* @__PURE__ */ jsxRuntime.jsx("dd", { children: subtotal })
9340
- ] }),
9341
- shipping !== void 0 && /* @__PURE__ */ jsxRuntime.jsxs(Row5, { children: [
9342
- /* @__PURE__ */ jsxRuntime.jsx("dt", { children: "Dostawa" }),
9343
- /* @__PURE__ */ jsxRuntime.jsx("dd", { children: shipping })
9344
- ] }),
9345
- tax !== void 0 && /* @__PURE__ */ jsxRuntime.jsxs(Row5, { children: [
9346
- /* @__PURE__ */ jsxRuntime.jsx("dt", { children: "Podatek" }),
9347
- /* @__PURE__ */ jsxRuntime.jsx("dd", { children: tax })
9348
- ] }),
9349
- discount !== void 0 && /* @__PURE__ */ jsxRuntime.jsxs(Row5, { children: [
9350
- /* @__PURE__ */ jsxRuntime.jsx("dt", { children: "Rabat" }),
9351
- /* @__PURE__ */ jsxRuntime.jsx("dd", { children: discount })
9352
- ] }),
9353
- lines.map((line, index) => /* @__PURE__ */ jsxRuntime.jsxs(Row5, { children: [
9354
- /* @__PURE__ */ jsxRuntime.jsx("dt", { children: line.label }),
9355
- /* @__PURE__ */ jsxRuntime.jsx("dd", { children: line.value })
9356
- ] }, index))
10552
+ /* @__PURE__ */ jsxRuntime.jsx(OrderSummaryRow, { label: "Warto\u015B\u0107 produkt\xF3w", value: subtotal }),
10553
+ shipping !== void 0 && /* @__PURE__ */ jsxRuntime.jsx(OrderSummaryRow, { label: "Dostawa", value: shipping }),
10554
+ tax !== void 0 && /* @__PURE__ */ jsxRuntime.jsx(OrderSummaryRow, { label: "Podatek", value: tax }),
10555
+ discount !== void 0 && /* @__PURE__ */ jsxRuntime.jsx(OrderSummaryRow, { label: "Rabat", value: discount }),
10556
+ lines.map((line, index) => /* @__PURE__ */ jsxRuntime.jsx(OrderSummaryRow, { label: line.label, value: line.value }, index))
9357
10557
  ] }),
9358
10558
  /* @__PURE__ */ jsxRuntime.jsx(Divider3, {}),
9359
- /* @__PURE__ */ jsxRuntime.jsx(Rows, { children: /* @__PURE__ */ jsxRuntime.jsxs(TotalRow, { children: [
9360
- /* @__PURE__ */ jsxRuntime.jsx("dt", { children: "Razem" }),
9361
- /* @__PURE__ */ jsxRuntime.jsx("dd", { children: total })
9362
- ] }) }),
10559
+ /* @__PURE__ */ jsxRuntime.jsx(Rows, { children: /* @__PURE__ */ jsxRuntime.jsx(OrderSummaryRow, { label: "Razem", value: total, total: true }) }),
9363
10560
  /* @__PURE__ */ jsxRuntime.jsx(Button, { fullWidth: true, onClick: onCheckout, children: ctaLabel })
9364
10561
  ] })
9365
10562
  );
9366
10563
  OrderSummary.displayName = "OrderSummary";
9367
- var List4 = styles.styled("div")(({ $hasHeading }) => ({
10564
+ var Root53 = styles.styled("div")(({ theme }) => ({
10565
+ fontFamily: theme.typography.fontFamily
10566
+ }));
10567
+ var Grid2 = styles.styled("div", {
10568
+ shouldForwardProp: (prop) => prop !== "$columns"
10569
+ })(({ theme, $columns }) => ({
10570
+ display: "grid",
10571
+ gridTemplateColumns: `repeat(1, 1fr)`,
10572
+ gap: "1.25rem",
10573
+ [theme.breakpoints.up("sm")]: {
10574
+ gridTemplateColumns: `repeat(${Math.min($columns, 2)}, 1fr)`
10575
+ },
10576
+ [theme.breakpoints.up("md")]: {
10577
+ gridTemplateColumns: `repeat(${Math.min($columns, 3)}, 1fr)`
10578
+ },
10579
+ [theme.breakpoints.up("lg")]: {
10580
+ gridTemplateColumns: `repeat(${Math.min($columns, 4)}, 1fr)`
10581
+ }
10582
+ }));
10583
+ var ScrollTrack = styles.styled("div")({
10584
+ display: "flex",
10585
+ gap: "1.25rem",
10586
+ overflowX: "auto",
10587
+ paddingBottom: "0.5rem",
10588
+ scrollSnapType: "x mandatory",
10589
+ "&::-webkit-scrollbar": { height: "4px" },
10590
+ "&::-webkit-scrollbar-track": { background: "transparent" },
10591
+ "&::-webkit-scrollbar-thumb": { borderRadius: "9999px", background: "rgba(0,0,0,0.2)" },
10592
+ "& > *": {
10593
+ flexShrink: 0,
10594
+ scrollSnapAlign: "start",
10595
+ width: "clamp(220px, 28vw, 280px)"
10596
+ }
10597
+ });
10598
+ var RelatedProducts = react.forwardRef(
10599
+ ({ products, title = "Podobne produkty", layout = "grid", columns = 4, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(Root53, { ref, ...props, children: [
10600
+ /* @__PURE__ */ jsxRuntime.jsx(SectionHeading, { title, align: "left", style: { marginBottom: "1.5rem" } }),
10601
+ 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)) })
10602
+ ] })
10603
+ );
10604
+ RelatedProducts.displayName = "RelatedProducts";
10605
+ var relatedProductsLayouts = ["grid", "scroll"];
10606
+ var Card2 = styles.styled("div")(({ theme }) => ({
10607
+ padding: "1.25rem",
10608
+ border: `1px solid ${theme.palette.divider}`,
10609
+ borderRadius: theme.shape.borderRadius,
10610
+ display: "flex",
10611
+ flexDirection: "column",
10612
+ gap: "0.75rem",
10613
+ fontFamily: theme.typography.fontFamily
10614
+ }));
10615
+ var Header5 = styles.styled("div")({
10616
+ display: "flex",
10617
+ alignItems: "flex-start",
10618
+ gap: "0.875rem"
10619
+ });
10620
+ var AuthorInfo = styles.styled("div")({ flex: 1 });
10621
+ var AuthorName = styles.styled("div")(({ theme }) => ({
10622
+ display: "flex",
10623
+ alignItems: "center",
10624
+ gap: "0.375rem",
10625
+ fontSize: "0.9375rem",
10626
+ fontWeight: 700,
10627
+ color: theme.palette.text.primary
10628
+ }));
10629
+ var ReviewDate = styles.styled("div")(({ theme }) => ({
10630
+ fontSize: "0.8125rem",
10631
+ color: theme.palette.text.secondary,
10632
+ marginTop: "0.125rem"
10633
+ }));
10634
+ var Title11 = styles.styled("div")(({ theme }) => ({
10635
+ fontSize: "0.9375rem",
10636
+ fontWeight: 700,
10637
+ color: theme.palette.text.primary
10638
+ }));
10639
+ var Content3 = styles.styled("p")(({ theme }) => ({
10640
+ margin: 0,
10641
+ fontSize: "0.9375rem",
10642
+ color: theme.palette.text.secondary,
10643
+ lineHeight: 1.6
10644
+ }));
10645
+ var HelpfulRow = styles.styled("div")(({ theme }) => ({
10646
+ display: "flex",
10647
+ alignItems: "center",
10648
+ gap: "0.375rem",
10649
+ fontSize: "0.8125rem",
10650
+ color: theme.palette.text.secondary
10651
+ }));
10652
+ var ReviewItem = ({ review }) => /* @__PURE__ */ jsxRuntime.jsxs(Card2, { children: [
10653
+ /* @__PURE__ */ jsxRuntime.jsxs(Header5, { children: [
10654
+ /* @__PURE__ */ jsxRuntime.jsx(Avatar, { initials: review.author.slice(0, 2).toUpperCase(), size: "sm" }),
10655
+ /* @__PURE__ */ jsxRuntime.jsxs(AuthorInfo, { children: [
10656
+ /* @__PURE__ */ jsxRuntime.jsxs(AuthorName, { children: [
10657
+ review.author,
10658
+ review.verified && /* @__PURE__ */ jsxRuntime.jsx(VerifiedIcon__default.default, { "aria-label": "Zweryfikowany zakup", style: { fontSize: 14, color: "#16a34a" } })
10659
+ ] }),
10660
+ /* @__PURE__ */ jsxRuntime.jsx(ReviewDate, { children: review.date })
10661
+ ] }),
10662
+ /* @__PURE__ */ jsxRuntime.jsx(Rating, { value: review.rating, size: "sm", readonly: true })
10663
+ ] }),
10664
+ review.title && /* @__PURE__ */ jsxRuntime.jsx(Title11, { children: review.title }),
10665
+ /* @__PURE__ */ jsxRuntime.jsx(Content3, { children: review.content }),
10666
+ review.helpfulCount !== void 0 && /* @__PURE__ */ jsxRuntime.jsxs(HelpfulRow, { children: [
10667
+ /* @__PURE__ */ jsxRuntime.jsx(ThumbUpOutlinedIcon__default.default, { "aria-hidden": true, style: { fontSize: 14 } }),
10668
+ review.helpfulCount,
10669
+ " os\xF3b uzna\u0142o t\u0119 recenzj\u0119 za pomocn\u0105"
10670
+ ] })
10671
+ ] });
10672
+ ReviewItem.displayName = "ReviewItem";
10673
+ var Root54 = styles.styled("div")(({ theme }) => ({
10674
+ display: "flex",
10675
+ alignItems: "center",
10676
+ gap: "2rem",
10677
+ flexWrap: "wrap",
10678
+ padding: "1.5rem",
10679
+ backgroundColor: theme.palette.action.hover,
10680
+ borderRadius: theme.shape.borderRadius,
10681
+ fontFamily: theme.typography.fontFamily
10682
+ }));
10683
+ var AverageBlock = styles.styled("div")({
10684
+ display: "flex",
10685
+ flexDirection: "column",
10686
+ alignItems: "center",
10687
+ gap: "0.25rem"
10688
+ });
10689
+ var Score = styles.styled("span")(({ theme }) => ({
10690
+ fontSize: "3rem",
10691
+ fontWeight: 800,
10692
+ lineHeight: 1,
10693
+ color: theme.palette.text.primary
10694
+ }));
10695
+ var ReviewCount = styles.styled("span")(({ theme }) => ({
10696
+ fontSize: "0.8125rem",
10697
+ marginTop: "0.25rem",
10698
+ color: theme.palette.text.secondary
10699
+ }));
10700
+ var Distribution = styles.styled("div")({
10701
+ flex: 1,
10702
+ display: "flex",
10703
+ flexDirection: "column",
10704
+ gap: "0.375rem"
10705
+ });
10706
+ var DistRow = styles.styled("div")({ display: "flex", alignItems: "center", gap: "0.75rem" });
10707
+ var DistLabel = styles.styled("span")(({ theme }) => ({
10708
+ fontSize: "0.8125rem",
10709
+ color: theme.palette.text.secondary,
10710
+ width: "1.5rem",
10711
+ textAlign: "right"
10712
+ }));
10713
+ var DistBar = styles.styled("div")(({ theme }) => ({
10714
+ flex: 1,
10715
+ height: "0.5rem",
10716
+ borderRadius: "9999px",
10717
+ backgroundColor: theme.palette.divider,
10718
+ overflow: "hidden"
10719
+ }));
10720
+ var DistFill = styles.styled("div", {
10721
+ shouldForwardProp: (prop) => prop !== "$pct"
10722
+ })(({ $pct }) => ({
10723
+ height: "100%",
10724
+ width: `${$pct}%`,
10725
+ backgroundColor: "#f59e0b",
10726
+ borderRadius: "9999px",
10727
+ transition: "width 400ms ease"
10728
+ }));
10729
+ var ReviewSummary = ({
10730
+ averageRating,
10731
+ totalReviews,
10732
+ ratingDistribution
10733
+ }) => {
10734
+ const totalDist = ratingDistribution ? Object.values(ratingDistribution).reduce((a, b) => a + b, 0) : 0;
10735
+ return /* @__PURE__ */ jsxRuntime.jsxs(Root54, { children: [
10736
+ /* @__PURE__ */ jsxRuntime.jsxs(AverageBlock, { children: [
10737
+ /* @__PURE__ */ jsxRuntime.jsx(Score, { children: averageRating.toFixed(1) }),
10738
+ /* @__PURE__ */ jsxRuntime.jsx(Rating, { value: averageRating, size: "sm", readonly: true }),
10739
+ totalReviews !== void 0 && /* @__PURE__ */ jsxRuntime.jsxs(ReviewCount, { children: [
10740
+ totalReviews,
10741
+ " opinii"
10742
+ ] })
10743
+ ] }),
10744
+ ratingDistribution && /* @__PURE__ */ jsxRuntime.jsx(Distribution, { children: [5, 4, 3, 2, 1].map((star) => {
10745
+ const count = ratingDistribution[star] ?? 0;
10746
+ const pct2 = totalDist > 0 ? count / totalDist * 100 : 0;
10747
+ return /* @__PURE__ */ jsxRuntime.jsxs(DistRow, { children: [
10748
+ /* @__PURE__ */ jsxRuntime.jsxs(DistLabel, { children: [
10749
+ star,
10750
+ "\u2605"
10751
+ ] }),
10752
+ /* @__PURE__ */ jsxRuntime.jsx(DistBar, { children: /* @__PURE__ */ jsxRuntime.jsx(DistFill, { $pct: pct2 }) }),
10753
+ /* @__PURE__ */ jsxRuntime.jsx(DistLabel, { style: { textAlign: "left" }, children: count })
10754
+ ] }, star);
10755
+ }) })
10756
+ ] });
10757
+ };
10758
+ ReviewSummary.displayName = "ReviewSummary";
10759
+ var Root55 = styles.styled("div")(({ theme }) => ({
10760
+ fontFamily: theme.typography.fontFamily
10761
+ }));
10762
+ var ReviewList = styles.styled("div")({
10763
+ display: "flex",
10764
+ flexDirection: "column",
10765
+ gap: "1.5rem"
10766
+ });
10767
+ var ReviewSection = react.forwardRef(
10768
+ ({ reviews, averageRating, totalReviews, title = "Opinie klient\xF3w", ratingDistribution, ...props }, ref) => /* @__PURE__ */ jsxRuntime.jsxs(Root55, { ref, ...props, children: [
10769
+ /* @__PURE__ */ jsxRuntime.jsx(SectionHeading, { title, align: "left", style: { marginBottom: "1.5rem" } }),
10770
+ averageRating !== void 0 && /* @__PURE__ */ jsxRuntime.jsx("div", { style: { marginBottom: "2rem" }, children: /* @__PURE__ */ jsxRuntime.jsx(
10771
+ ReviewSummary,
10772
+ {
10773
+ averageRating,
10774
+ totalReviews,
10775
+ ratingDistribution
10776
+ }
10777
+ ) }),
10778
+ /* @__PURE__ */ jsxRuntime.jsx(ReviewList, { children: reviews.map((review) => /* @__PURE__ */ jsxRuntime.jsx(ReviewItem, { review }, review.id)) })
10779
+ ] })
10780
+ );
10781
+ ReviewSection.displayName = "ReviewSection";
10782
+ var List5 = styles.styled("div")(({ $hasHeading }) => ({
9368
10783
  marginTop: $hasHeading ? "2.5rem" : 0
9369
10784
  }));
9370
10785
  var FaqSection = react.forwardRef(
@@ -9380,7 +10795,7 @@ var FaqSection = react.forwardRef(
9380
10795
  const hasHeading = Boolean(title || description);
9381
10796
  return /* @__PURE__ */ jsxRuntime.jsx(Section, { ref, ...rest, children: /* @__PURE__ */ jsxRuntime.jsxs(Container, { maxWidth, children: [
9382
10797
  hasHeading && /* @__PURE__ */ jsxRuntime.jsx(SectionHeading, { title: title ?? "", description, align: headingAlign }),
9383
- /* @__PURE__ */ jsxRuntime.jsx(List4, { $hasHeading: hasHeading, children: items.map((item, index) => /* @__PURE__ */ jsxRuntime.jsx(
10798
+ /* @__PURE__ */ jsxRuntime.jsx(List5, { $hasHeading: hasHeading, children: items.map((item, index) => /* @__PURE__ */ jsxRuntime.jsx(
9384
10799
  FaqItem,
9385
10800
  {
9386
10801
  item,
@@ -9392,7 +10807,7 @@ var FaqSection = react.forwardRef(
9392
10807
  }
9393
10808
  );
9394
10809
  FaqSection.displayName = "FaqSection";
9395
- var Grid2 = styles.styled("div", {
10810
+ var Grid3 = styles.styled("div", {
9396
10811
  shouldForwardProp: (prop) => !["$columns", "$hasHeading", "$iconLeft"].includes(prop)
9397
10812
  })(({ theme, $columns, $hasHeading, $iconLeft }) => ({
9398
10813
  display: "grid",
@@ -9421,8 +10836,8 @@ var FeatureGrid = react.forwardRef(
9421
10836
  const hasHeading = Boolean(title || description);
9422
10837
  return /* @__PURE__ */ jsxRuntime.jsx(Section, { ref, ...rest, children: /* @__PURE__ */ jsxRuntime.jsxs(Container, { maxWidth, children: [
9423
10838
  hasHeading && /* @__PURE__ */ jsxRuntime.jsx(SectionHeading, { title: title ?? "", description, align: headingAlign }),
9424
- /* @__PURE__ */ jsxRuntime.jsx(Grid2, { $columns: columns, $hasHeading: hasHeading, $iconLeft: itemLayout === "icon-left", children: features.map((feature, index) => /* @__PURE__ */ jsxRuntime.jsx(
9425
- FeatureItem2,
10839
+ /* @__PURE__ */ jsxRuntime.jsx(Grid3, { $columns: columns, $hasHeading: hasHeading, $iconLeft: itemLayout === "icon-left", children: features.map((feature, index) => /* @__PURE__ */ jsxRuntime.jsx(
10840
+ FeatureItem,
9426
10841
  {
9427
10842
  feature,
9428
10843
  cardVariant,
@@ -9435,7 +10850,7 @@ var FeatureGrid = react.forwardRef(
9435
10850
  );
9436
10851
  FeatureGrid.displayName = "FeatureGrid";
9437
10852
  var featureGridColumns = [2, 3, 4];
9438
- var Grid3 = styles.styled("div", {
10853
+ var Grid4 = styles.styled("div", {
9439
10854
  shouldForwardProp: (prop) => !["$columns", "$hasHeading"].includes(prop)
9440
10855
  })(({ theme, $columns, $hasHeading }) => ({
9441
10856
  display: "grid",
@@ -9467,7 +10882,7 @@ var LogoCloud = react.forwardRef(
9467
10882
  return /* @__PURE__ */ jsxRuntime.jsx(Section, { ref, ...rest, children: /* @__PURE__ */ jsxRuntime.jsxs(Container, { maxWidth, children: [
9468
10883
  hasHeading && title && /* @__PURE__ */ jsxRuntime.jsx(SectionHeading, { title, description, align: headingAlign }),
9469
10884
  hasHeading && !title && description && /* @__PURE__ */ jsxRuntime.jsx(SectionHeading, { title: description, align: headingAlign, as: "h2" }),
9470
- /* @__PURE__ */ jsxRuntime.jsx(Grid3, { $columns: columns, $hasHeading: hasHeading, children: logos.map((logo) => {
10885
+ /* @__PURE__ */ jsxRuntime.jsx(Grid4, { $columns: columns, $hasHeading: hasHeading, children: logos.map((logo) => {
9471
10886
  const key = `${logo.name}-${logo.href ?? logo.logoUrl ?? "text"}`;
9472
10887
  return /* @__PURE__ */ jsxRuntime.jsx(
9473
10888
  LogoTile,
@@ -9617,12 +11032,12 @@ var Section2 = styles.styled("section")(({ theme }) => ({
9617
11032
  padding: "5rem 1rem",
9618
11033
  backgroundColor: theme.palette.background.default
9619
11034
  }));
9620
- var Inner = styles.styled("div")({
11035
+ var Inner2 = styles.styled("div")({
9621
11036
  maxWidth: "80rem",
9622
11037
  marginLeft: "auto",
9623
11038
  marginRight: "auto"
9624
11039
  });
9625
- var Grid4 = styles.styled("div")(({ theme }) => ({
11040
+ var Grid5 = styles.styled("div")(({ theme }) => ({
9626
11041
  marginTop: "3rem",
9627
11042
  display: "grid",
9628
11043
  gridTemplateColumns: "1fr",
@@ -9635,16 +11050,16 @@ var Grid4 = styles.styled("div")(({ theme }) => ({
9635
11050
  }
9636
11051
  }));
9637
11052
  function PricingSection({ title, description, plans, ...props }) {
9638
- return /* @__PURE__ */ jsxRuntime.jsx(Section2, { ...props, children: /* @__PURE__ */ jsxRuntime.jsxs(Inner, { children: [
11053
+ return /* @__PURE__ */ jsxRuntime.jsx(Section2, { ...props, children: /* @__PURE__ */ jsxRuntime.jsxs(Inner2, { children: [
9639
11054
  (title || description) && /* @__PURE__ */ jsxRuntime.jsx(SectionHeading, { title: title ?? "", description, align: "center" }),
9640
- /* @__PURE__ */ jsxRuntime.jsx(Grid4, { children: plans.map((plan, i) => /* @__PURE__ */ jsxRuntime.jsx(PricingCard, { ...plan }, i)) })
11055
+ /* @__PURE__ */ jsxRuntime.jsx(Grid5, { children: plans.map((plan, i) => /* @__PURE__ */ jsxRuntime.jsx(PricingCard, { ...plan }, i)) })
9641
11056
  ] }) });
9642
11057
  }
9643
11058
  var Section3 = styles.styled("section")(({ theme }) => ({
9644
11059
  padding: "5rem 1rem",
9645
11060
  backgroundColor: theme.palette.background.default
9646
11061
  }));
9647
- var Inner2 = styles.styled("div")({
11062
+ var Inner3 = styles.styled("div")({
9648
11063
  maxWidth: "80rem",
9649
11064
  marginLeft: "auto",
9650
11065
  marginRight: "auto"
@@ -9682,7 +11097,7 @@ function ArrowIcon() {
9682
11097
  return /* @__PURE__ */ jsxRuntime.jsx(ArrowForwardIcon__default.default, { "aria-hidden": "true", style: { fontSize: 24 } });
9683
11098
  }
9684
11099
  function ProcessSection({ title, description, steps, ...props }) {
9685
- return /* @__PURE__ */ jsxRuntime.jsx(Section3, { ...props, children: /* @__PURE__ */ jsxRuntime.jsxs(Inner2, { children: [
11100
+ return /* @__PURE__ */ jsxRuntime.jsx(Section3, { ...props, children: /* @__PURE__ */ jsxRuntime.jsxs(Inner3, { children: [
9686
11101
  (title || description) && /* @__PURE__ */ jsxRuntime.jsx(SectionHeading, { title: title ?? "", description, align: "center" }),
9687
11102
  /* @__PURE__ */ jsxRuntime.jsx(StepsRow, { children: steps.map((step, i) => /* @__PURE__ */ jsxRuntime.jsxs(react.Fragment, { children: [
9688
11103
  /* @__PURE__ */ jsxRuntime.jsx(StepWrapper, { children: /* @__PURE__ */ jsxRuntime.jsx(
@@ -9698,7 +11113,7 @@ function ProcessSection({ title, description, steps, ...props }) {
9698
11113
  ] }, i)) })
9699
11114
  ] }) });
9700
11115
  }
9701
- var Grid5 = styles.styled("div", {
11116
+ var Grid6 = styles.styled("div", {
9702
11117
  shouldForwardProp: (prop) => !["$columns", "$hasHeading"].includes(prop)
9703
11118
  })(({ theme, $columns, $hasHeading }) => ({
9704
11119
  display: "grid",
@@ -9727,7 +11142,7 @@ var StatsSection = react.forwardRef(
9727
11142
  const hasHeading = Boolean(title || description);
9728
11143
  return /* @__PURE__ */ jsxRuntime.jsx(Section, { ref, ...rest, children: /* @__PURE__ */ jsxRuntime.jsxs(Container, { maxWidth, children: [
9729
11144
  hasHeading && /* @__PURE__ */ jsxRuntime.jsx(SectionHeading, { title: title ?? "", description, align: headingAlign }),
9730
- /* @__PURE__ */ jsxRuntime.jsx(Grid5, { $columns: columns, $hasHeading: hasHeading, children: stats.map((stat, index) => /* @__PURE__ */ jsxRuntime.jsx(
11145
+ /* @__PURE__ */ jsxRuntime.jsx(Grid6, { $columns: columns, $hasHeading: hasHeading, children: stats.map((stat, index) => /* @__PURE__ */ jsxRuntime.jsx(
9731
11146
  StatCard,
9732
11147
  {
9733
11148
  stat,
@@ -9741,7 +11156,7 @@ var StatsSection = react.forwardRef(
9741
11156
  );
9742
11157
  StatsSection.displayName = "StatsSection";
9743
11158
  var statsSectionColumns = [2, 3, 4];
9744
- var Grid6 = styles.styled("div", {
11159
+ var Grid7 = styles.styled("div", {
9745
11160
  shouldForwardProp: (prop) => !["$columns", "$hasHeading"].includes(prop)
9746
11161
  })(({ theme, $columns, $hasHeading }) => ({
9747
11162
  display: "grid",
@@ -9770,7 +11185,7 @@ var TeamSection = react.forwardRef(
9770
11185
  return /* @__PURE__ */ jsxRuntime.jsx(Section, { ref, ...rest, children: /* @__PURE__ */ jsxRuntime.jsxs(Container, { maxWidth, children: [
9771
11186
  hasHeading && title && /* @__PURE__ */ jsxRuntime.jsx(SectionHeading, { title, description, align: headingAlign }),
9772
11187
  hasHeading && !title && description && /* @__PURE__ */ jsxRuntime.jsx(SectionHeading, { title: description, align: headingAlign, as: "h2" }),
9773
- /* @__PURE__ */ jsxRuntime.jsx(Grid6, { $columns: columns, $hasHeading: hasHeading, children: members.map((member) => /* @__PURE__ */ jsxRuntime.jsx(
11188
+ /* @__PURE__ */ jsxRuntime.jsx(Grid7, { $columns: columns, $hasHeading: hasHeading, children: members.map((member) => /* @__PURE__ */ jsxRuntime.jsx(
9774
11189
  TeamMemberCard,
9775
11190
  {
9776
11191
  member,
@@ -9783,7 +11198,7 @@ var TeamSection = react.forwardRef(
9783
11198
  );
9784
11199
  TeamSection.displayName = "TeamSection";
9785
11200
  var teamSectionColumns = [2, 3, 4];
9786
- var Grid7 = styles.styled("div", {
11201
+ var Grid8 = styles.styled("div", {
9787
11202
  shouldForwardProp: (prop) => !["$columns", "$hasHeading"].includes(prop)
9788
11203
  })(({ theme, $columns, $hasHeading }) => ({
9789
11204
  display: "grid",
@@ -9811,7 +11226,7 @@ var TestimonialsSection = react.forwardRef(
9811
11226
  const hasHeading = Boolean(title || description);
9812
11227
  return /* @__PURE__ */ jsxRuntime.jsx(Section, { ref, ...rest, children: /* @__PURE__ */ jsxRuntime.jsxs(Container, { maxWidth, children: [
9813
11228
  hasHeading && /* @__PURE__ */ jsxRuntime.jsx(SectionHeading, { title: title ?? "", description, align: headingAlign }),
9814
- /* @__PURE__ */ jsxRuntime.jsx(Grid7, { $columns: columns, $hasHeading: hasHeading, children: testimonials.map((testimonial, index) => /* @__PURE__ */ jsxRuntime.jsx(
11229
+ /* @__PURE__ */ jsxRuntime.jsx(Grid8, { $columns: columns, $hasHeading: hasHeading, children: testimonials.map((testimonial, index) => /* @__PURE__ */ jsxRuntime.jsx(
9815
11230
  TestimonialCard,
9816
11231
  {
9817
11232
  testimonial,
@@ -9896,7 +11311,7 @@ var ResultsScroll = styles.styled("div")({
9896
11311
  flex: 1,
9897
11312
  padding: "0.375rem 0"
9898
11313
  });
9899
- var GroupLabel = styles.styled("div")(({ theme }) => ({
11314
+ var GroupLabel3 = styles.styled("div")(({ theme }) => ({
9900
11315
  padding: "0.5rem 1rem 0.25rem",
9901
11316
  fontFamily: theme.typography.fontFamily,
9902
11317
  fontSize: "0.75rem",
@@ -9905,7 +11320,7 @@ var GroupLabel = styles.styled("div")(({ theme }) => ({
9905
11320
  textTransform: "uppercase",
9906
11321
  letterSpacing: "0.06em"
9907
11322
  }));
9908
- var Item5 = styles.styled("div", {
11323
+ var Item4 = styles.styled("div", {
9909
11324
  shouldForwardProp: (p) => p !== "$active"
9910
11325
  })(({ theme, $active }) => ({
9911
11326
  display: "flex",
@@ -9964,14 +11379,14 @@ var Kbd = styles.styled("kbd")(({ theme }) => ({
9964
11379
  backgroundColor: theme.palette.action.hover,
9965
11380
  lineHeight: 1.6
9966
11381
  }));
9967
- var EmptyState = styles.styled("div")(({ theme }) => ({
11382
+ var EmptyState2 = styles.styled("div")(({ theme }) => ({
9968
11383
  padding: "2.5rem 1rem",
9969
11384
  textAlign: "center",
9970
11385
  fontFamily: theme.typography.fontFamily,
9971
11386
  fontSize: "0.9375rem",
9972
11387
  color: theme.palette.text.secondary
9973
11388
  }));
9974
- var Footer5 = styles.styled("div")(({ theme }) => ({
11389
+ var Footer6 = styles.styled("div")(({ theme }) => ({
9975
11390
  display: "flex",
9976
11391
  gap: "1.25rem",
9977
11392
  padding: "0.5rem 1rem",
@@ -10098,13 +11513,13 @@ function CommandPalette({
10098
11513
  ),
10099
11514
  /* @__PURE__ */ jsxRuntime.jsx(KbdHint, { children: "esc" })
10100
11515
  ] }),
10101
- /* @__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: [
10102
- /* @__PURE__ */ jsxRuntime.jsx(GroupLabel, { id: `${id}-group-${group.id}`, children: group.label }),
11516
+ /* @__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: [
11517
+ /* @__PURE__ */ jsxRuntime.jsx(GroupLabel3, { id: `${id}-group-${group.id}`, children: group.label }),
10103
11518
  group.items.map((item) => {
10104
11519
  const idx = globalIndex++;
10105
11520
  const isActive = idx === activeIndex;
10106
11521
  return /* @__PURE__ */ jsxRuntime.jsxs(
10107
- Item5,
11522
+ Item4,
10108
11523
  {
10109
11524
  id: `${id}-item-${item.id}`,
10110
11525
  role: "option",
@@ -10126,7 +11541,7 @@ function CommandPalette({
10126
11541
  );
10127
11542
  })
10128
11543
  ] }, group.id)) }),
10129
- /* @__PURE__ */ jsxRuntime.jsxs(Footer5, { id: `${id}-hint`, "aria-hidden": "true", children: [
11544
+ /* @__PURE__ */ jsxRuntime.jsxs(Footer6, { id: `${id}-hint`, "aria-hidden": "true", children: [
10130
11545
  /* @__PURE__ */ jsxRuntime.jsxs(FooterHint, { children: [
10131
11546
  /* @__PURE__ */ jsxRuntime.jsx(Kbd, { children: "\u2191" }),
10132
11547
  /* @__PURE__ */ jsxRuntime.jsx(Kbd, { children: "\u2193" }),
@@ -10185,7 +11600,7 @@ var Bar2 = styles.styled("div")(({ theme }) => ({
10185
11600
  boxShadow: "0 -4px 24px rgba(0,0,0,0.12)",
10186
11601
  animation: `${slideUp2} 300ms cubic-bezier(0.16, 1, 0.3, 1)`
10187
11602
  }));
10188
- var Inner3 = styles.styled("div")({
11603
+ var Inner4 = styles.styled("div")({
10189
11604
  maxWidth: "72rem",
10190
11605
  margin: "0 auto",
10191
11606
  padding: "1.25rem 1.5rem",
@@ -10200,7 +11615,7 @@ var TopRow = styles.styled("div")({
10200
11615
  flexWrap: "wrap"
10201
11616
  });
10202
11617
  var TextBlock = styles.styled("div")({ flex: 1, minWidth: "16rem" });
10203
- var Title9 = styles.styled("p")(({ theme }) => ({
11618
+ var Title12 = styles.styled("p")(({ theme }) => ({
10204
11619
  margin: "0 0 0.25rem",
10205
11620
  fontFamily: theme.typography.fontFamily,
10206
11621
  fontSize: "1rem",
@@ -10208,7 +11623,7 @@ var Title9 = styles.styled("p")(({ theme }) => ({
10208
11623
  color: theme.palette.text.primary,
10209
11624
  lineHeight: 1.4
10210
11625
  }));
10211
- var Description7 = styles.styled("p")(({ theme }) => ({
11626
+ var Description9 = styles.styled("p")(({ theme }) => ({
10212
11627
  margin: 0,
10213
11628
  fontFamily: theme.typography.fontFamily,
10214
11629
  fontSize: "0.875rem",
@@ -10362,11 +11777,11 @@ function CookieConsent({
10362
11777
  onSave?.(prefs);
10363
11778
  };
10364
11779
  return reactDom.createPortal(
10365
- /* @__PURE__ */ jsxRuntime.jsx(Bar2, { role: "region", "aria-label": "Zgoda na pliki cookie", "aria-live": "polite", children: /* @__PURE__ */ jsxRuntime.jsxs(Inner3, { children: [
11780
+ /* @__PURE__ */ jsxRuntime.jsx(Bar2, { role: "region", "aria-label": "Zgoda na pliki cookie", "aria-live": "polite", children: /* @__PURE__ */ jsxRuntime.jsxs(Inner4, { children: [
10366
11781
  /* @__PURE__ */ jsxRuntime.jsxs(TopRow, { children: [
10367
11782
  /* @__PURE__ */ jsxRuntime.jsxs(TextBlock, { children: [
10368
- /* @__PURE__ */ jsxRuntime.jsx(Title9, { children: title }),
10369
- /* @__PURE__ */ jsxRuntime.jsxs(Description7, { children: [
11783
+ /* @__PURE__ */ jsxRuntime.jsx(Title12, { children: title }),
11784
+ /* @__PURE__ */ jsxRuntime.jsxs(Description9, { children: [
10370
11785
  description,
10371
11786
  privacyPolicyLabel && privacyPolicyHref && /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [
10372
11787
  " ",
@@ -10416,16 +11831,11 @@ function CookieConsent({
10416
11831
  );
10417
11832
  }
10418
11833
  var defaultCookieCategories = DEFAULT_CATEGORIES;
10419
- var Root34 = styles.styled("footer")(({ theme }) => ({
11834
+ var Root56 = styles.styled("footer")(({ theme }) => ({
10420
11835
  width: "100%",
10421
11836
  backgroundColor: theme.palette.background.paper,
10422
11837
  borderTop: `1px solid ${theme.palette.divider}`
10423
11838
  }));
10424
- var Inner4 = styles.styled("div")({
10425
- maxWidth: "72rem",
10426
- margin: "0 auto",
10427
- padding: "3rem 1.5rem 2rem"
10428
- });
10429
11839
  var TopRow2 = styles.styled("div")({
10430
11840
  display: "grid",
10431
11841
  gridTemplateColumns: "1fr",
@@ -10443,7 +11853,7 @@ var BrandBlock = styles.styled("div")({
10443
11853
  flexDirection: "column",
10444
11854
  gap: "0.75rem"
10445
11855
  });
10446
- var Description8 = styles.styled("p")(({ theme }) => ({
11856
+ var Description10 = styles.styled("p")(({ theme }) => ({
10447
11857
  margin: 0,
10448
11858
  fontFamily: theme.typography.fontFamily,
10449
11859
  fontSize: "0.875rem",
@@ -10549,19 +11959,21 @@ var SOCIAL_ICONS = {
10549
11959
  /* @__PURE__ */ jsxRuntime.jsx("polygon", { fill: "white", points: "9.75 15.02 15.5 12 9.75 8.98 9.75 15.02" })
10550
11960
  ] })
10551
11961
  };
10552
- function Footer6({
11962
+ function Footer7({
10553
11963
  logo,
10554
11964
  description,
10555
11965
  columns = [],
10556
11966
  socialLinks = [],
10557
- copyright
11967
+ copyright,
11968
+ maxWidth = "lg",
11969
+ style
10558
11970
  }) {
10559
11971
  const colCount = columns.length;
10560
- return /* @__PURE__ */ jsxRuntime.jsx(Root34, { children: /* @__PURE__ */ jsxRuntime.jsxs(Inner4, { children: [
11972
+ return /* @__PURE__ */ jsxRuntime.jsx(Root56, { style, children: /* @__PURE__ */ jsxRuntime.jsxs(material.Container, { maxWidth, sx: { pt: "3rem", pb: "2rem" }, children: [
10561
11973
  (logo || description || colCount > 0) && /* @__PURE__ */ jsxRuntime.jsxs(TopRow2, { style: { "--col-count": colCount }, children: [
10562
11974
  (logo || description) && /* @__PURE__ */ jsxRuntime.jsxs(BrandBlock, { children: [
10563
11975
  logo,
10564
- description && /* @__PURE__ */ jsxRuntime.jsx(Description8, { children: description })
11976
+ description && /* @__PURE__ */ jsxRuntime.jsx(Description10, { children: description })
10565
11977
  ] }),
10566
11978
  columns.map((col) => /* @__PURE__ */ jsxRuntime.jsxs(Column, { children: [
10567
11979
  /* @__PURE__ */ jsxRuntime.jsx(ColumnTitle, { children: col.title }),
@@ -10584,7 +11996,7 @@ function Footer6({
10584
11996
  ] })
10585
11997
  ] }) });
10586
11998
  }
10587
- var Root35 = styles.styled("header", {
11999
+ var Root57 = styles.styled("header", {
10588
12000
  shouldForwardProp: (p) => p !== "$sticky" && p !== "$variant"
10589
12001
  })(({ theme, $sticky, $variant }) => ({
10590
12002
  position: $sticky ? "sticky" : "relative",
@@ -10595,15 +12007,6 @@ var Root35 = styles.styled("header", {
10595
12007
  borderBottom: $variant === "transparent" ? "none" : `1px solid ${theme.palette.divider}`,
10596
12008
  boxShadow: $variant === "transparent" ? "none" : "0 1px 4px rgba(0,0,0,0.08)"
10597
12009
  }));
10598
- var Inner5 = styles.styled("div")({
10599
- maxWidth: "72rem",
10600
- margin: "0 auto",
10601
- padding: "0 1.5rem",
10602
- height: "3.75rem",
10603
- display: "flex",
10604
- alignItems: "center",
10605
- gap: "1.5rem"
10606
- });
10607
12010
  var LogoSlot = styles.styled("div")({
10608
12011
  flexShrink: 0,
10609
12012
  display: "flex",
@@ -10669,7 +12072,8 @@ var MobileDrawer = styles.styled("div", {
10669
12072
  display: $open ? "flex" : "none",
10670
12073
  flexDirection: "column",
10671
12074
  gap: "0.25rem",
10672
- padding: "0.75rem 1.5rem 1rem",
12075
+ paddingTop: "0.75rem",
12076
+ paddingBottom: "1rem",
10673
12077
  borderTop: `1px solid ${theme.palette.divider}`,
10674
12078
  backgroundColor: theme.palette.background.paper,
10675
12079
  "@media (min-width: 768px)": {
@@ -10699,28 +12103,37 @@ function Navbar({
10699
12103
  navItems = [],
10700
12104
  actions,
10701
12105
  sticky = false,
10702
- variant = "filled"
12106
+ variant = "filled",
12107
+ maxWidth = "lg",
12108
+ style
10703
12109
  }) {
10704
12110
  const [mobileOpen, setMobileOpen] = react.useState(false);
10705
- return /* @__PURE__ */ jsxRuntime.jsxs(Root35, { $sticky: sticky, $variant: variant, children: [
10706
- /* @__PURE__ */ jsxRuntime.jsxs(Inner5, { children: [
10707
- logo && /* @__PURE__ */ jsxRuntime.jsx(LogoSlot, { children: logo }),
10708
- /* @__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)) }),
10709
- (actions || navItems.length > 0) && /* @__PURE__ */ jsxRuntime.jsxs(RightSlot, { children: [
10710
- actions,
10711
- navItems.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
10712
- HamburgerButton,
10713
- {
10714
- type: "button",
10715
- "aria-label": mobileOpen ? "Zamknij menu" : "Otw\xF3rz menu",
10716
- "aria-expanded": mobileOpen,
10717
- onClick: () => setMobileOpen((v) => !v),
10718
- children: /* @__PURE__ */ jsxRuntime.jsx(HamburgerIcon, { open: mobileOpen })
10719
- }
10720
- )
10721
- ] })
10722
- ] }),
10723
- navItems.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(MobileDrawer, { $open: mobileOpen, "aria-label": "Menu mobilne", children: navItems.map((item) => /* @__PURE__ */ jsxRuntime.jsx(MobileNavLink, { href: item.href, $active: !!item.active, children: item.label }, item.href)) })
12111
+ return /* @__PURE__ */ jsxRuntime.jsxs(Root57, { $sticky: sticky, $variant: variant, style, children: [
12112
+ /* @__PURE__ */ jsxRuntime.jsxs(
12113
+ material.Container,
12114
+ {
12115
+ maxWidth,
12116
+ sx: { height: "3.75rem", display: "flex", alignItems: "center", gap: "1.5rem" },
12117
+ children: [
12118
+ logo && /* @__PURE__ */ jsxRuntime.jsx(LogoSlot, { children: logo }),
12119
+ /* @__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)) }),
12120
+ (actions || navItems.length > 0) && /* @__PURE__ */ jsxRuntime.jsxs(RightSlot, { children: [
12121
+ actions,
12122
+ navItems.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(
12123
+ HamburgerButton,
12124
+ {
12125
+ type: "button",
12126
+ "aria-label": mobileOpen ? "Zamknij menu" : "Otw\xF3rz menu",
12127
+ "aria-expanded": mobileOpen,
12128
+ onClick: () => setMobileOpen((v) => !v),
12129
+ children: /* @__PURE__ */ jsxRuntime.jsx(HamburgerIcon, { open: mobileOpen })
12130
+ }
12131
+ )
12132
+ ] })
12133
+ ]
12134
+ }
12135
+ ),
12136
+ navItems.length > 0 && /* @__PURE__ */ jsxRuntime.jsx(MobileDrawer, { $open: mobileOpen, "aria-label": "Menu mobilne", children: /* @__PURE__ */ jsxRuntime.jsx(material.Container, { maxWidth, children: navItems.map((item) => /* @__PURE__ */ jsxRuntime.jsx(MobileNavLink, { href: item.href, $active: !!item.active, children: item.label }, item.href)) }) })
10724
12137
  ] });
10725
12138
  }
10726
12139
  var ss = "sans-serif";
@@ -10823,17 +12236,18 @@ var MyThemeProvider = ({
10823
12236
  }
10824
12237
  }, [theme, mode]);
10825
12238
  return /* @__PURE__ */ jsxRuntime.jsxs(styles.ThemeProvider, { theme: resolvedTheme, children: [
10826
- !disableCssBaseline && /* @__PURE__ */ jsxRuntime.jsx(CssBaseline__default.default, {}),
12239
+ !disableCssBaseline && /* @__PURE__ */ jsxRuntime.jsx(material.CssBaseline, {}),
10827
12240
  children
10828
12241
  ] });
10829
12242
  };
10830
12243
 
10831
12244
  exports.Accordion = Accordion;
12245
+ exports.Alert = Alert;
10832
12246
  exports.Article = Article;
10833
12247
  exports.AspectRatio = AspectRatio;
10834
12248
  exports.Avatar = Avatar;
10835
12249
  exports.BackToTop = BackToTop;
10836
- exports.Badge = Badge;
12250
+ exports.Badge = Badge2;
10837
12251
  exports.BaseInput = BaseInput;
10838
12252
  exports.BaseSelectInput = BaseSelectInput;
10839
12253
  exports.Box = Box2;
@@ -10841,26 +12255,34 @@ exports.Breadcrumbs = Breadcrumbs;
10841
12255
  exports.Button = Button;
10842
12256
  exports.Card = Card;
10843
12257
  exports.Carousel = Carousel;
12258
+ exports.CartButton = CartButton;
10844
12259
  exports.CartDrawer = CartDrawer;
12260
+ exports.CartDrawerItemComponent = CartDrawerItem;
12261
+ exports.CategoryCard = CategoryCard;
12262
+ exports.CategoryCardImage = CategoryCardImage;
12263
+ exports.CategoryCardInfo = CategoryCardInfo;
10845
12264
  exports.CheckboxInput = CheckboxInput;
10846
12265
  exports.CommandPalette = CommandPalette;
10847
12266
  exports.CompareTool = CompareTool;
10848
12267
  exports.Container = Container;
10849
12268
  exports.ContextMenu = ContextMenu;
10850
12269
  exports.CookieConsent = CookieConsent;
12270
+ exports.CountdownTimer = CountdownTimer;
10851
12271
  exports.CountryFlag = CountryFlag;
10852
12272
  exports.CouponInput = CouponInput;
10853
12273
  exports.DateTimePicker = DateTimePicker;
12274
+ exports.DealCard = DealCard;
10854
12275
  exports.EmailInput = EmailInput;
12276
+ exports.EmptyState = EmptyState;
10855
12277
  exports.FaqItem = FaqItem;
10856
12278
  exports.FaqSection = FaqSection;
10857
12279
  exports.FeatureGrid = FeatureGrid;
10858
- exports.FeatureItem = FeatureItem2;
12280
+ exports.FeatureItem = FeatureItem;
10859
12281
  exports.FileInput = FileInput;
10860
12282
  exports.FilterSidebar = FilterSidebar;
10861
- exports.Footer = Footer6;
12283
+ exports.Footer = Footer7;
10862
12284
  exports.Lightbox = Lightbox;
10863
- exports.List = List3;
12285
+ exports.List = List4;
10864
12286
  exports.LogoCloud = LogoCloud;
10865
12287
  exports.LogoTile = LogoTile;
10866
12288
  exports.Main = Main;
@@ -10872,21 +12294,28 @@ exports.Navbar = Navbar;
10872
12294
  exports.NewsletterSection = NewsletterSection;
10873
12295
  exports.NumberInput = NumberInput;
10874
12296
  exports.OrderSummary = OrderSummary;
12297
+ exports.OrderSummaryItemComponent = OrderSummaryItem;
12298
+ exports.OrderSummaryRow = OrderSummaryRow;
10875
12299
  exports.PaginationBar = PaginationBar;
10876
12300
  exports.PaginationButton = PaginationButton;
10877
12301
  exports.PaginationEllipsis = PaginationEllipsis;
10878
12302
  exports.Partners = Partners;
10879
12303
  exports.PasswordInput = PasswordInput;
12304
+ exports.PaymentMethodSelector = PaymentMethodSelector;
10880
12305
  exports.PhoneInput = PhoneInput;
10881
12306
  exports.PostCard = PostCard;
10882
12307
  exports.PostCardImage = PostCardImage;
10883
12308
  exports.PostCardMeta = PostCardMeta;
10884
12309
  exports.Price = Price;
10885
12310
  exports.PricingCard = PricingCard;
12311
+ exports.PricingCardFeatureList = PricingCardFeatureList;
12312
+ exports.PricingCardPrice = PricingCardPrice;
10886
12313
  exports.PricingSection = PricingSection;
10887
12314
  exports.ProcessSection = ProcessSection;
10888
12315
  exports.ProcessStep = ProcessStep;
10889
12316
  exports.ProductCard = ProductCard;
12317
+ exports.ProductCardHorizontal = ProductCardHorizontal;
12318
+ exports.ProductCardImage = ProductCardImage;
10890
12319
  exports.ProductGallery = ProductGallery;
10891
12320
  exports.ProgressBar = ProgressBar;
10892
12321
  exports.ProgressCircle = ProgressCircle;
@@ -10895,26 +12324,41 @@ exports.Prose = Prose;
10895
12324
  exports.QuantitySelector = QuantitySelector;
10896
12325
  exports.RangeSlider = RangeSlider;
10897
12326
  exports.Rating = Rating;
12327
+ exports.RelatedProducts = RelatedProducts;
12328
+ exports.ReviewItem = ReviewItem;
12329
+ exports.ReviewSection = ReviewSection;
12330
+ exports.ReviewSummary = ReviewSummary;
12331
+ exports.SaleBadge = SaleBadge;
10898
12332
  exports.SearchInput = SearchInput;
10899
12333
  exports.Section = Section;
10900
12334
  exports.SectionHeading = SectionHeading;
10901
12335
  exports.SelectInput = SelectInput;
12336
+ exports.ShippingSelector = ShippingSelector;
10902
12337
  exports.Skeleton = Skeleton;
12338
+ exports.SortBar = SortBar;
10903
12339
  exports.Spinner = Spinner3;
10904
12340
  exports.StatCard = StatCard;
10905
12341
  exports.StatsSection = StatsSection;
10906
12342
  exports.StockStatus = StockStatus;
10907
12343
  exports.SwitchInput = SwitchInput;
10908
12344
  exports.Tabs = Tabs;
12345
+ exports.TeamMemberAvatar = TeamMemberAvatar;
10909
12346
  exports.TeamMemberCard = TeamMemberCard;
12347
+ exports.TeamMemberInfo = TeamMemberInfo;
10910
12348
  exports.TeamSection = TeamSection;
12349
+ exports.TestimonialAuthor = TestimonialAuthor;
10911
12350
  exports.TestimonialCard = TestimonialCard;
12351
+ exports.TestimonialQuote = TestimonialQuote;
10912
12352
  exports.TestimonialsSection = TestimonialsSection;
10913
12353
  exports.TextInput = TextInput;
10914
12354
  exports.TextareaInput = TextareaInput;
10915
12355
  exports.Timeline = Timeline;
12356
+ exports.VariantSelector = VariantSelector;
10916
12357
  exports.VideoPlayer = VideoPlayer;
12358
+ exports.VoucherCard = VoucherCard;
12359
+ exports.WishlistButton = WishlistButton;
10917
12360
  exports.accordionVariants = accordionVariants;
12361
+ exports.alertSeverities = alertSeverities;
10918
12362
  exports.aspectRatioPresets = aspectRatioPresets;
10919
12363
  exports.avatarColors = avatarColors;
10920
12364
  exports.avatarSizes = avatarSizes;
@@ -10924,6 +12368,7 @@ exports.badgeVariants = badgeVariants;
10924
12368
  exports.cardPaddings = cardPaddings;
10925
12369
  exports.cardRoundeds = cardRoundeds;
10926
12370
  exports.cardVariants = cardVariants;
12371
+ exports.countdownTimerVariants = countdownTimerVariants;
10927
12372
  exports.createMyTheme = createMyTheme;
10928
12373
  exports.dateTimePickerModes = dateTimePickerModes;
10929
12374
  exports.defaultCookieCategories = defaultCookieCategories;
@@ -10946,6 +12391,8 @@ exports.progressCircleSizes = progressCircleSizes;
10946
12391
  exports.progressCircleVariants = progressCircleVariants;
10947
12392
  exports.promoStripVariants = promoStripVariants;
10948
12393
  exports.rangeSliderSizes = rangeSliderSizes;
12394
+ exports.relatedProductsLayouts = relatedProductsLayouts;
12395
+ exports.saleBadgeVariants = saleBadgeVariants;
10949
12396
  exports.sectionHeadingAligns = sectionHeadingAligns;
10950
12397
  exports.skeletonVariants = skeletonVariants;
10951
12398
  exports.spinnerColors = spinnerColors;
@@ -10962,5 +12409,6 @@ exports.themeHighContrast = themeHighContrast;
10962
12409
  exports.themeLight = themeLight;
10963
12410
  exports.timelineItemStatuses = timelineItemStatuses;
10964
12411
  exports.timelineVariants = timelineVariants;
12412
+ exports.variantSelectorModes = variantSelectorModes;
10965
12413
  //# sourceMappingURL=index.cjs.map
10966
12414
  //# sourceMappingURL=index.cjs.map