@szymonpiatek/designsystem 0.0.5 → 0.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,8 +1,10 @@
1
- import * as React from 'react';
2
1
  import { forwardRef, useId, useRef, useEffect, useState, useCallback, useMemo, Fragment as Fragment$1 } from 'react';
3
2
  import { styled, alpha, keyframes, createTheme, useTheme, ThemeProvider } from '@mui/material/styles';
4
- import CircularProgress from '@mui/material/CircularProgress';
3
+ import { CircularProgress, CssBaseline } from '@mui/material';
5
4
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
5
+ import ShoppingCartIcon from '@mui/icons-material/ShoppingCart';
6
+ import FavoriteIcon from '@mui/icons-material/Favorite';
7
+ import FavoriteBorderIcon from '@mui/icons-material/FavoriteBorder';
6
8
  import ExpandMoreIcon from '@mui/icons-material/ExpandMore';
7
9
  import FileUploadIcon from '@mui/icons-material/FileUpload';
8
10
  import CloudUploadMuiIcon from '@mui/icons-material/CloudUpload';
@@ -20,18 +22,26 @@ import ChevronLeftIcon from '@mui/icons-material/ChevronLeft';
20
22
  import ChevronRightIcon from '@mui/icons-material/ChevronRight';
21
23
  import KeyboardArrowUpIcon from '@mui/icons-material/KeyboardArrowUp';
22
24
  import KeyboardArrowDownIcon from '@mui/icons-material/KeyboardArrowDown';
23
- import { keyframes as keyframes$1, CacheProvider } from '@emotion/react';
25
+ import { keyframes as keyframes$1 } from '@emotion/react';
26
+ import ImageIcon from '@mui/icons-material/Image';
24
27
  import ArticleIcon from '@mui/icons-material/Article';
25
28
  import CheckCircleOutlinedIcon from '@mui/icons-material/CheckCircleOutlined';
26
29
  import HighlightOffIcon from '@mui/icons-material/HighlightOff';
30
+ import CreditCardOutlinedIcon from '@mui/icons-material/CreditCardOutlined';
31
+ import LocalShippingOutlinedIcon from '@mui/icons-material/LocalShippingOutlined';
32
+ import GridViewIcon from '@mui/icons-material/GridView';
33
+ import ViewListIcon from '@mui/icons-material/ViewList';
27
34
  import { createPortal } from 'react-dom';
28
35
  import KeyboardDoubleArrowLeftIcon from '@mui/icons-material/KeyboardDoubleArrowLeft';
29
36
  import KeyboardDoubleArrowRightIcon from '@mui/icons-material/KeyboardDoubleArrowRight';
37
+ import InfoOutlinedIcon from '@mui/icons-material/InfoOutlined';
38
+ import WarningAmberOutlinedIcon from '@mui/icons-material/WarningAmberOutlined';
39
+ import ErrorOutlineOutlinedIcon from '@mui/icons-material/ErrorOutlineOutlined';
40
+ import InboxOutlinedIcon from '@mui/icons-material/InboxOutlined';
41
+ import VerifiedIcon from '@mui/icons-material/Verified';
42
+ import ThumbUpOutlinedIcon from '@mui/icons-material/ThumbUpOutlined';
30
43
  import ArrowForwardIcon from '@mui/icons-material/ArrowForward';
31
44
  import MenuIcon from '@mui/icons-material/Menu';
32
- import CssBaseline from '@mui/material/CssBaseline';
33
- import { useServerInsertedHTML } from 'next/navigation';
34
- import createCache from '@emotion/cache';
35
45
 
36
46
  // src/components/atoms/buttons/Button/Button.tsx
37
47
  var sizeMap = {
@@ -142,6 +152,102 @@ var Button = forwardRef(
142
152
  )
143
153
  );
144
154
  Button.displayName = "Button";
155
+ var iconSizeMap = {
156
+ sm: 18,
157
+ md: 20,
158
+ lg: 24
159
+ };
160
+ var Root = styled("span")({
161
+ position: "relative",
162
+ display: "inline-flex"
163
+ });
164
+ var Badge = styled("span")(({ theme }) => ({
165
+ position: "absolute",
166
+ top: "-4px",
167
+ right: "-4px",
168
+ backgroundColor: theme.palette.primary.main,
169
+ color: "#fff",
170
+ borderRadius: "9999px",
171
+ fontSize: "0.625rem",
172
+ fontWeight: 700,
173
+ minWidth: "16px",
174
+ height: "16px",
175
+ display: "flex",
176
+ alignItems: "center",
177
+ justifyContent: "center",
178
+ padding: "0 3px",
179
+ pointerEvents: "none",
180
+ fontFamily: theme.typography.fontFamily,
181
+ lineHeight: 1
182
+ }));
183
+ var CartButton = forwardRef(
184
+ ({ count, size = "sm", label = "Koszyk", disabled, onClick, className, "aria-label": ariaLabel }, ref) => /* @__PURE__ */ jsxs(Root, { className, children: [
185
+ /* @__PURE__ */ jsx(
186
+ Button,
187
+ {
188
+ ref,
189
+ variant: "ghost",
190
+ size,
191
+ disabled,
192
+ onClick,
193
+ "aria-label": ariaLabel ?? (count ? `${label} (${count})` : label),
194
+ children: /* @__PURE__ */ jsx("span", { style: { display: "flex" }, children: /* @__PURE__ */ jsx(ShoppingCartIcon, { "aria-hidden": true, style: { fontSize: iconSizeMap[size] } }) })
195
+ }
196
+ ),
197
+ count != null && count > 0 && /* @__PURE__ */ jsx(Badge, { "aria-hidden": true, children: count > 99 ? "99+" : count })
198
+ ] })
199
+ );
200
+ CartButton.displayName = "CartButton";
201
+ var sizeMap2 = {
202
+ sm: { iconSize: 16, padding: "0.375rem" },
203
+ md: { iconSize: 20, padding: "0.5rem" },
204
+ lg: { iconSize: 24, padding: "0.625rem" }
205
+ };
206
+ var Root2 = styled("button")(
207
+ ({ theme, $active, $size }) => ({
208
+ appearance: "none",
209
+ border: `1px solid ${$active ? theme.palette.error.main : theme.palette.divider}`,
210
+ background: $active ? `${theme.palette.error.main}14` : "transparent",
211
+ cursor: "pointer",
212
+ display: "inline-flex",
213
+ alignItems: "center",
214
+ justifyContent: "center",
215
+ borderRadius: "50%",
216
+ padding: sizeMap2[$size].padding,
217
+ color: $active ? theme.palette.error.main : theme.palette.text.secondary,
218
+ transition: "color 150ms ease, background-color 150ms ease, border-color 150ms ease",
219
+ "&:hover:not(:disabled)": {
220
+ color: theme.palette.error.main,
221
+ borderColor: theme.palette.error.main,
222
+ backgroundColor: `${theme.palette.error.main}14`
223
+ },
224
+ "&:focus-visible": {
225
+ outline: `3px solid ${theme.palette.primary.main}`,
226
+ outlineOffset: "2px"
227
+ },
228
+ "&:disabled": {
229
+ opacity: 0.4,
230
+ cursor: "not-allowed"
231
+ }
232
+ })
233
+ );
234
+ var WishlistButton = forwardRef(
235
+ ({ active = false, loading = false, size = "md", label, ...props }, ref) => /* @__PURE__ */ jsx(
236
+ Root2,
237
+ {
238
+ ref,
239
+ type: "button",
240
+ $active: active,
241
+ $size: size,
242
+ disabled: loading || props.disabled,
243
+ "aria-label": label ?? (active ? "Usu\u0144 z listy \u017Cycze\u0144" : "Dodaj do listy \u017Cycze\u0144"),
244
+ "aria-pressed": active,
245
+ ...props,
246
+ children: loading ? /* @__PURE__ */ jsx(CircularProgress, { size: sizeMap2[size].iconSize, color: "inherit", thickness: 5 }) : active ? /* @__PURE__ */ jsx(FavoriteIcon, { "aria-hidden": true, style: { fontSize: sizeMap2[size].iconSize } }) : /* @__PURE__ */ jsx(FavoriteBorderIcon, { "aria-hidden": true, style: { fontSize: sizeMap2[size].iconSize } })
247
+ }
248
+ )
249
+ );
250
+ WishlistButton.displayName = "WishlistButton";
145
251
  var StyledHelperText = styled("p")(({ theme, $error }) => ({
146
252
  margin: "0.25rem 0 0",
147
253
  fontSize: "0.75rem",
@@ -198,7 +304,7 @@ var inputColors = (theme, error) => ({
198
304
  boxShadow: `0 0 0 3px ${error ? theme.palette.error.main : theme.palette.primary.main}33`
199
305
  }
200
306
  });
201
- var Root = styled("div")(({ $fullWidth }) => ({
307
+ var Root3 = styled("div")(({ $fullWidth }) => ({
202
308
  display: $fullWidth ? "block" : "inline-block",
203
309
  width: $fullWidth ? "100%" : "auto"
204
310
  }));
@@ -263,7 +369,7 @@ var BaseInput = forwardRef(
263
369
  }, ref) => {
264
370
  const autoId = useId();
265
371
  const inputId = id ?? autoId;
266
- return /* @__PURE__ */ jsxs(Root, { $fullWidth: fullWidth, children: [
372
+ return /* @__PURE__ */ jsxs(Root3, { $fullWidth: fullWidth, children: [
267
373
  label && /* @__PURE__ */ jsx(Label, { htmlFor: inputId, error, size, children: label }),
268
374
  /* @__PURE__ */ jsxs(
269
375
  InputWrapper,
@@ -367,7 +473,7 @@ var LabelText = styled("span")(
367
473
  userSelect: "none"
368
474
  })
369
475
  );
370
- var Root2 = styled("span")(({ $disabled }) => ({
476
+ var Root4 = styled("span")(({ $disabled }) => ({
371
477
  display: "inline-flex",
372
478
  flexDirection: "column",
373
479
  cursor: $disabled ? "not-allowed" : "pointer"
@@ -391,7 +497,7 @@ var CheckboxInput = forwardRef(
391
497
  innerRef.current.indeterminate = indeterminate;
392
498
  }
393
499
  }, [indeterminate]);
394
- return /* @__PURE__ */ jsxs(Root2, { $disabled: disabled, children: [
500
+ return /* @__PURE__ */ jsxs(Root4, { $disabled: disabled, children: [
395
501
  /* @__PURE__ */ jsxs(Row, { htmlFor: inputId, children: [
396
502
  /* @__PURE__ */ jsx(Box, { $size: size, $error: error, $disabled: disabled, children: /* @__PURE__ */ jsx(
397
503
  HiddenInput,
@@ -425,7 +531,7 @@ var CloudUploadIcon = ({ size }) => /* @__PURE__ */ jsx(CloudUploadMuiIcon, { "a
425
531
  var FileDocIcon = ({ size }) => /* @__PURE__ */ jsx(InsertDriveFileIcon, { "aria-hidden": true, style: { fontSize: size } });
426
532
  var TrashIcon = ({ size = 12 }) => /* @__PURE__ */ jsx(DeleteOutlinedIcon, { "aria-hidden": true, style: { fontSize: size } });
427
533
  var XIcon = () => /* @__PURE__ */ jsx(CloseIcon, { "aria-hidden": true, style: { fontSize: 11 } });
428
- var Root3 = styled("div")(({ $fullWidth }) => ({
534
+ var Root5 = styled("div")(({ $fullWidth }) => ({
429
535
  display: $fullWidth ? "block" : "inline-block",
430
536
  width: $fullWidth ? "100%" : "auto"
431
537
  }));
@@ -915,7 +1021,7 @@ var FileInput = forwardRef(
915
1021
  }
916
1022
  );
917
1023
  if (variant === "dropzone") {
918
- return /* @__PURE__ */ jsxs(Root3, { $fullWidth: fullWidth, children: [
1024
+ return /* @__PURE__ */ jsxs(Root5, { $fullWidth: fullWidth, children: [
919
1025
  label && /* @__PURE__ */ jsx(Label, { htmlFor: inputId, error, size, children: label }),
920
1026
  /* @__PURE__ */ jsxs(
921
1027
  DropzoneArea,
@@ -1043,7 +1149,7 @@ var FileInput = forwardRef(
1043
1149
  helperText && /* @__PURE__ */ jsx(HelperText, { error, children: helperText })
1044
1150
  ] });
1045
1151
  }
1046
- return /* @__PURE__ */ jsxs(Root3, { $fullWidth: fullWidth, children: [
1152
+ return /* @__PURE__ */ jsxs(Root5, { $fullWidth: fullWidth, children: [
1047
1153
  label && /* @__PURE__ */ jsx(Label, { htmlFor: inputId, error, size, children: label }),
1048
1154
  /* @__PURE__ */ jsxs(
1049
1155
  CompactWrapper,
@@ -1162,7 +1268,7 @@ var triggerColors = (theme, error, open) => ({
1162
1268
  borderColor: error ? theme.palette.error.dark : theme.palette.text.secondary
1163
1269
  }
1164
1270
  });
1165
- var Root4 = styled("div")(({ $fullWidth }) => ({
1271
+ var Root6 = styled("div")(({ $fullWidth }) => ({
1166
1272
  display: $fullWidth ? "block" : "inline-block",
1167
1273
  width: $fullWidth ? "100%" : "auto",
1168
1274
  position: "relative"
@@ -1279,7 +1385,7 @@ var BaseSelectInput = ({
1279
1385
  }, [isOpen, close]);
1280
1386
  const selectedLabel = options.find((o) => o.value === value)?.label;
1281
1387
  const defaultTriggerContent = /* @__PURE__ */ jsx("span", { style: { opacity: selectedLabel ? 1 : 0.5 }, children: selectedLabel ?? placeholder });
1282
- return /* @__PURE__ */ jsxs(Root4, { $fullWidth: fullWidth, ref: rootRef, children: [
1388
+ return /* @__PURE__ */ jsxs(Root6, { $fullWidth: fullWidth, ref: rootRef, children: [
1283
1389
  label && /* @__PURE__ */ jsx(Label, { htmlFor: inputId, error, size, children: label }),
1284
1390
  /* @__PURE__ */ jsxs(
1285
1391
  Trigger,
@@ -1559,7 +1665,7 @@ var borderColors = (theme, error) => ({
1559
1665
  boxShadow: `0 0 0 3px ${error ? theme.palette.error.main : theme.palette.primary.main}33`
1560
1666
  }
1561
1667
  });
1562
- var Root5 = styled("div")(({ $fullWidth }) => ({
1668
+ var Root7 = styled("div")(({ $fullWidth }) => ({
1563
1669
  display: $fullWidth ? "block" : "inline-block",
1564
1670
  width: $fullWidth ? "100%" : "auto"
1565
1671
  }));
@@ -1600,7 +1706,7 @@ var TextareaInput = forwardRef(
1600
1706
  }, ref) => {
1601
1707
  const autoId = useId();
1602
1708
  const inputId = id ?? autoId;
1603
- return /* @__PURE__ */ jsxs(Root5, { $fullWidth: fullWidth, children: [
1709
+ return /* @__PURE__ */ jsxs(Root7, { $fullWidth: fullWidth, children: [
1604
1710
  label && /* @__PURE__ */ jsx(Label, { htmlFor: inputId, error, size, children: label }),
1605
1711
  /* @__PURE__ */ jsx(
1606
1712
  StyledTextarea,
@@ -1622,14 +1728,14 @@ var TextareaInput = forwardRef(
1622
1728
  }
1623
1729
  );
1624
1730
  TextareaInput.displayName = "TextareaInput";
1625
- var sizeMap2 = { sm: "1em", md: "1.25em", lg: "1.75em" };
1731
+ var sizeMap3 = { sm: "1em", md: "1.25em", lg: "1.75em" };
1626
1732
  var toFlagEmoji = (code) => code.toUpperCase().replace(/[A-Z]/g, (char) => String.fromCodePoint(127462 + char.charCodeAt(0) - 65));
1627
1733
  var CountryFlag = ({ countryCode, size = "md", style, ...rest }) => /* @__PURE__ */ jsx(
1628
1734
  "span",
1629
1735
  {
1630
1736
  role: "img",
1631
1737
  "aria-label": `Flag: ${countryCode}`,
1632
- style: { fontSize: sizeMap2[size], lineHeight: 1, display: "inline-flex", ...style },
1738
+ style: { fontSize: sizeMap3[size], lineHeight: 1, display: "inline-flex", ...style },
1633
1739
  ...rest,
1634
1740
  children: toFlagEmoji(countryCode)
1635
1741
  }
@@ -3225,7 +3331,7 @@ var wrapperColors = (theme, error, focused) => ({
3225
3331
  borderColor: !focused ? error ? theme.palette.error.dark : theme.palette.text.secondary : void 0
3226
3332
  }
3227
3333
  });
3228
- var Root6 = styled("div")(({ $fullWidth }) => ({
3334
+ var Root8 = styled("div")(({ $fullWidth }) => ({
3229
3335
  display: $fullWidth ? "block" : "inline-block",
3230
3336
  width: $fullWidth ? "100%" : "auto"
3231
3337
  }));
@@ -3462,7 +3568,7 @@ var PhoneInput = forwardRef(
3462
3568
  return () => document.removeEventListener("mousedown", handler);
3463
3569
  }, [isOpen, close]);
3464
3570
  const derivedPlaceholder = placeholder ?? (selectedCountry.minLength === selectedCountry.maxLength ? `${selectedCountry.maxLength} ${digitsLabel}` : `${selectedCountry.minLength}\u2013${selectedCountry.maxLength} ${digitsLabel}`);
3465
- return /* @__PURE__ */ jsxs(Root6, { $fullWidth: fullWidth, ref: rootRef, children: [
3571
+ return /* @__PURE__ */ jsxs(Root8, { $fullWidth: fullWidth, ref: rootRef, children: [
3466
3572
  label && /* @__PURE__ */ jsx(Label, { htmlFor: inputId, error, size, children: label }),
3467
3573
  /* @__PURE__ */ jsxs(
3468
3574
  InputWrapper2,
@@ -3577,7 +3683,7 @@ function getActiveColor(color, theme) {
3577
3683
  return theme.palette.primary.main;
3578
3684
  }
3579
3685
  }
3580
- var Root7 = styled("span")(({ $disabled }) => ({
3686
+ var Root9 = styled("span")(({ $disabled }) => ({
3581
3687
  display: "inline-flex",
3582
3688
  flexDirection: "column",
3583
3689
  cursor: $disabled ? "not-allowed" : "pointer"
@@ -3662,7 +3768,7 @@ var SwitchInput = forwardRef(
3662
3768
  }, ref) => {
3663
3769
  const autoId = useId();
3664
3770
  const inputId = id ?? autoId;
3665
- return /* @__PURE__ */ jsxs(Root7, { $disabled: disabled, children: [
3771
+ return /* @__PURE__ */ jsxs(Root9, { $disabled: disabled, children: [
3666
3772
  /* @__PURE__ */ jsxs(Row2, { htmlFor: inputId, $placement: labelPlacement, children: [
3667
3773
  /* @__PURE__ */ jsxs(Track, { $size: size, $color: color, $error: error, $disabled: disabled, children: [
3668
3774
  /* @__PURE__ */ jsx(
@@ -3688,7 +3794,7 @@ SwitchInput.displayName = "SwitchInput";
3688
3794
  var switchColors = ["primary", "secondary", "success", "danger"];
3689
3795
  var TRACK_H2 = { sm: "0.25rem", md: "0.375rem", lg: "0.5rem" };
3690
3796
  var THUMB_S2 = { sm: "0.875rem", md: "1.125rem", lg: "1.375rem" };
3691
- var Root8 = styled("div")({
3797
+ var Root10 = styled("div")({
3692
3798
  display: "flex",
3693
3799
  flexDirection: "column",
3694
3800
  gap: "0.5rem",
@@ -3811,7 +3917,7 @@ var RangeSlider = forwardRef(
3811
3917
  const loP = pct(lo, min, max);
3812
3918
  const hiP = pct(hi, min, max);
3813
3919
  const valueLabel = range ? `${formatValue2(lo)} \u2013 ${formatValue2(hi)}` : formatValue2(lo);
3814
- return /* @__PURE__ */ jsxs(Root8, { ref, ...props, children: [
3920
+ return /* @__PURE__ */ jsxs(Root10, { ref, ...props, children: [
3815
3921
  (label || showValue) && /* @__PURE__ */ jsxs(LabelRow, { children: [
3816
3922
  label && /* @__PURE__ */ jsx("span", { children: label }),
3817
3923
  showValue && /* @__PURE__ */ jsx("span", { children: valueLabel })
@@ -3941,7 +4047,7 @@ var inputColors2 = (theme, error) => ({
3941
4047
  boxShadow: `0 0 0 3px ${error ? theme.palette.error.main : theme.palette.primary.main}33`
3942
4048
  }
3943
4049
  });
3944
- var Root9 = styled("div")(({ $fullWidth }) => ({
4050
+ var Root11 = styled("div")(({ $fullWidth }) => ({
3945
4051
  display: $fullWidth ? "block" : "inline-block",
3946
4052
  width: $fullWidth ? "100%" : "auto",
3947
4053
  position: "relative"
@@ -4336,7 +4442,7 @@ var DateTimePicker = forwardRef(
4336
4442
  const showCalendar = mode !== "time";
4337
4443
  const showTime = mode !== "date";
4338
4444
  const needsConfirm = mode !== "date";
4339
- return /* @__PURE__ */ jsxs(Root9, { ref: rootRef, $fullWidth: fullWidth, children: [
4445
+ return /* @__PURE__ */ jsxs(Root11, { ref: rootRef, $fullWidth: fullWidth, children: [
4340
4446
  label && /* @__PURE__ */ jsx(Label, { htmlFor: inputId, error, size, children: label }),
4341
4447
  /* @__PURE__ */ jsxs(
4342
4448
  InputWrapper3,
@@ -4743,7 +4849,7 @@ var StyledBadge = styled("span", {
4743
4849
  fontFamily: theme.typography.fontFamily,
4744
4850
  ...getVariantStyles2($variant, theme)
4745
4851
  }));
4746
- function Badge({ variant = "default", ...props }) {
4852
+ function Badge2({ variant = "default", ...props }) {
4747
4853
  return /* @__PURE__ */ jsx(StyledBadge, { $variant: variant, ...props });
4748
4854
  }
4749
4855
  var badgeVariants = [
@@ -4755,7 +4861,41 @@ var badgeVariants = [
4755
4861
  "ghost",
4756
4862
  "promo"
4757
4863
  ];
4758
- var sizeMap3 = {
4864
+ function getBgColor(variant) {
4865
+ switch (variant) {
4866
+ case "flash":
4867
+ return "#f59e0b";
4868
+ case "new":
4869
+ return "#3b82f6";
4870
+ case "hot":
4871
+ return "#ef4444";
4872
+ default:
4873
+ return "#16a34a";
4874
+ }
4875
+ }
4876
+ var Root12 = styled("span", {
4877
+ shouldForwardProp: (prop) => prop !== "$variant"
4878
+ })(({ theme, $variant }) => ({
4879
+ display: "inline-flex",
4880
+ alignItems: "center",
4881
+ gap: "0.25rem",
4882
+ borderRadius: "0.375rem",
4883
+ padding: "0.25rem 0.625rem",
4884
+ fontSize: "0.75rem",
4885
+ fontWeight: 700,
4886
+ lineHeight: 1,
4887
+ letterSpacing: "0.02em",
4888
+ fontFamily: theme.typography.fontFamily,
4889
+ backgroundColor: getBgColor($variant),
4890
+ color: "#ffffff",
4891
+ textTransform: "uppercase"
4892
+ }));
4893
+ function SaleBadge({ discount, label, variant = "default", ...props }) {
4894
+ const text = label ?? (discount !== void 0 ? `-${discount}%` : "SALE");
4895
+ return /* @__PURE__ */ jsx(Root12, { $variant: variant, ...props, children: text });
4896
+ }
4897
+ var saleBadgeVariants = ["default", "flash", "new", "hot"];
4898
+ var sizeMap4 = {
4759
4899
  sm: { width: "2rem", height: "2rem", fontSize: "0.75rem" },
4760
4900
  md: { width: "2.5rem", height: "2.5rem", fontSize: "0.875rem" },
4761
4901
  lg: { width: "3rem", height: "3rem", fontSize: "1rem" },
@@ -4791,7 +4931,7 @@ var StyledAvatar = styled("div", {
4791
4931
  fontWeight: 600,
4792
4932
  fontFamily: theme.typography.fontFamily,
4793
4933
  userSelect: "none",
4794
- ...sizeMap3[$size],
4934
+ ...sizeMap4[$size],
4795
4935
  ...getColorStyles($color, theme)
4796
4936
  }));
4797
4937
  function Avatar({ initials, size = "md", color = "primary", ...props }) {
@@ -4903,7 +5043,7 @@ var spin = keyframes$1`to { transform: rotate(360deg); }`;
4903
5043
  var fade = keyframes$1`0%,100%{opacity:.15} 50%{opacity:1}`;
4904
5044
  var scalePulse = keyframes$1`0%,100%{transform:scale(0.6);opacity:.4} 50%{transform:scale(1);opacity:1}`;
4905
5045
  var barAnim = keyframes$1`0%,100%{transform:scaleY(.4);opacity:.5} 50%{transform:scaleY(1);opacity:1}`;
4906
- var Root10 = styled("span", {
5046
+ var Root13 = styled("span", {
4907
5047
  shouldForwardProp: (p) => !["$size", "$color"].includes(p)
4908
5048
  })(({ theme, $size, $color }) => {
4909
5049
  const colorMap = {
@@ -4991,8 +5131,8 @@ function Spinner3({
4991
5131
  label = "\u0141adowanie\u2026",
4992
5132
  ...props
4993
5133
  }) {
4994
- const Inner6 = VARIANTS[variant];
4995
- return /* @__PURE__ */ jsx(Root10, { $size: size, $color: color, role: "status", "aria-label": label, ...props, children: /* @__PURE__ */ jsx(Inner6, {}) });
5134
+ const Inner7 = VARIANTS[variant];
5135
+ return /* @__PURE__ */ jsx(Root13, { $size: size, $color: color, role: "status", "aria-label": label, ...props, children: /* @__PURE__ */ jsx(Inner7, {}) });
4996
5136
  }
4997
5137
  var spinnerVariants = ["ring", "dots", "pulse", "bars"];
4998
5138
  var spinnerSizes = ["xs", "sm", "md", "lg", "xl"];
@@ -5118,7 +5258,7 @@ var FONT_MAP = {
5118
5258
  lg: "1.125rem",
5119
5259
  xl: "1.5rem"
5120
5260
  };
5121
- var Root11 = styled("div")({ position: "relative", display: "inline-flex", flexShrink: 0 });
5261
+ var Root14 = styled("div")({ position: "relative", display: "inline-flex", flexShrink: 0 });
5122
5262
  var Label2 = styled("div", {
5123
5263
  shouldForwardProp: (p) => p !== "$size"
5124
5264
  })(({ theme, $size }) => ({
@@ -5172,7 +5312,7 @@ function ProgressCircle({
5172
5312
  const { color, gradient } = useStrokeColor(variant, gradientId);
5173
5313
  const trackColor = theme.palette.mode === "dark" ? "rgba(255,255,255,0.1)" : "rgba(0,0,0,0.08)";
5174
5314
  return /* @__PURE__ */ jsxs(
5175
- Root11,
5315
+ Root14,
5176
5316
  {
5177
5317
  role: "progressbar",
5178
5318
  "aria-valuenow": value,
@@ -5345,6 +5485,9 @@ var StyledSection = styled("section")(({ theme }) => ({
5345
5485
  }));
5346
5486
  var Section = forwardRef(({ children, ...rest }, ref) => /* @__PURE__ */ jsx(StyledSection, { ref, ...rest, children }));
5347
5487
  Section.displayName = "Section";
5488
+ var StyledMain = styled("main")({});
5489
+ var Main = forwardRef(({ children, ...rest }, ref) => /* @__PURE__ */ jsx(StyledMain, { ref, ...rest, children }));
5490
+ Main.displayName = "Main";
5348
5491
  var getTypographyStyles = (theme) => ({
5349
5492
  fontFamily: theme.typography.fontFamily,
5350
5493
  "& h1": { fontSize: "2.25rem", fontWeight: 500, letterSpacing: "-0.025em" },
@@ -5500,11 +5643,6 @@ var getHeaderSpacingStyles = () => ({
5500
5643
  var spacingStyles = {
5501
5644
  "& > * + *": { marginTop: "1.5rem" }
5502
5645
  };
5503
- var StyledMain = styled("main")(({ theme }) => ({
5504
- ...getTypographyStyles(theme)
5505
- }));
5506
- var Main = forwardRef(({ children, ...rest }, ref) => /* @__PURE__ */ jsx(StyledMain, { ref, ...rest, children }));
5507
- Main.displayName = "Main";
5508
5646
  var StyledProse = styled("div")(({ theme }) => ({
5509
5647
  ...getTypographyStyles(theme),
5510
5648
  ...spacingStyles
@@ -5521,12 +5659,110 @@ var StyledArticle = styled("article")(({ theme }) => ({
5521
5659
  }));
5522
5660
  var Article = forwardRef(({ children, ...rest }, ref) => /* @__PURE__ */ jsx(StyledArticle, { ref, ...rest, children }));
5523
5661
  Article.displayName = "Article";
5524
- var sizeMap4 = {
5662
+ var PRESET_MAP = {
5663
+ "1/1": 1,
5664
+ "4/3": 4 / 3,
5665
+ "3/2": 3 / 2,
5666
+ "16/9": 16 / 9,
5667
+ "21/9": 21 / 9,
5668
+ "9/16": 9 / 16,
5669
+ "3/4": 3 / 4,
5670
+ "2/3": 2 / 3
5671
+ };
5672
+ var Root15 = styled("div")({
5673
+ position: "relative",
5674
+ width: "100%",
5675
+ "& > *": {
5676
+ position: "absolute",
5677
+ inset: 0,
5678
+ width: "100%",
5679
+ height: "100%",
5680
+ objectFit: "cover"
5681
+ }
5682
+ });
5683
+ var AspectRatio = forwardRef(
5684
+ ({ ratio = "16/9", children, style, ...props }, ref) => {
5685
+ const numericRatio = typeof ratio === "string" ? PRESET_MAP[ratio] ?? 16 / 9 : ratio;
5686
+ const paddingBottom = `${1 / numericRatio * 100}%`;
5687
+ return /* @__PURE__ */ jsx(Root15, { ref, style: { paddingBottom, ...style }, ...props, children });
5688
+ }
5689
+ );
5690
+ AspectRatio.displayName = "AspectRatio";
5691
+ var aspectRatioPresets = Object.keys(PRESET_MAP);
5692
+ var Root16 = styled(Card)(({ theme }) => ({
5693
+ display: "flex",
5694
+ flexDirection: "column",
5695
+ overflow: "hidden",
5696
+ cursor: "pointer",
5697
+ transition: "box-shadow 150ms ease, transform 150ms ease",
5698
+ "&:hover": {
5699
+ boxShadow: theme.shadows[4],
5700
+ transform: "translateY(-2px)"
5701
+ }
5702
+ }));
5703
+ var ImageWrap = styled("div")({
5704
+ margin: "-1.5rem -1.5rem 1rem"
5705
+ });
5706
+ var Image = styled("img")({
5707
+ objectFit: "cover",
5708
+ width: "100%",
5709
+ height: "100%"
5710
+ });
5711
+ var ImagePlaceholder = styled("div")(({ theme }) => ({
5712
+ width: "100%",
5713
+ height: "100%",
5714
+ backgroundColor: theme.palette.action.hover,
5715
+ display: "flex",
5716
+ alignItems: "center",
5717
+ justifyContent: "center",
5718
+ color: theme.palette.text.disabled
5719
+ }));
5720
+ var Content = styled("div")({
5721
+ display: "flex",
5722
+ flexDirection: "column",
5723
+ gap: "0.25rem"
5724
+ });
5725
+ var Name = styled("h3")(({ theme }) => ({
5726
+ margin: 0,
5727
+ color: theme.palette.text.primary,
5728
+ fontFamily: theme.typography.fontFamily,
5729
+ fontSize: "1rem",
5730
+ fontWeight: 700,
5731
+ lineHeight: 1.4
5732
+ }));
5733
+ var Count = styled("span")(({ theme }) => ({
5734
+ color: theme.palette.text.secondary,
5735
+ fontFamily: theme.typography.fontFamily,
5736
+ fontSize: "0.875rem"
5737
+ }));
5738
+ var CardLink = styled("a")({
5739
+ display: "block",
5740
+ textDecoration: "none",
5741
+ color: "inherit",
5742
+ outline: "none"
5743
+ });
5744
+ var CategoryCard = forwardRef(
5745
+ ({ name, imageUrl, imageAlt, count, href, ...props }, ref) => {
5746
+ const content = /* @__PURE__ */ jsxs(Fragment, { children: [
5747
+ /* @__PURE__ */ jsx(ImageWrap, { children: /* @__PURE__ */ jsx(AspectRatio, { ratio: "4/3", children: imageUrl ? /* @__PURE__ */ jsx(Image, { src: imageUrl, alt: imageAlt ?? name }) : /* @__PURE__ */ jsx(ImagePlaceholder, { "aria-label": imageAlt ?? name, children: /* @__PURE__ */ jsx(ImageIcon, { style: { fontSize: 48 } }) }) }) }),
5748
+ /* @__PURE__ */ jsxs(Content, { children: [
5749
+ /* @__PURE__ */ jsx(Name, { children: name }),
5750
+ count !== void 0 && /* @__PURE__ */ jsxs(Count, { children: [
5751
+ count,
5752
+ " produkt\xF3w"
5753
+ ] })
5754
+ ] })
5755
+ ] });
5756
+ return /* @__PURE__ */ jsx(Root16, { ref, variant: "default", padding: "md", rounded: "lg", ...props, children: href ? /* @__PURE__ */ jsx(CardLink, { href, children: content }) : content });
5757
+ }
5758
+ );
5759
+ CategoryCard.displayName = "CategoryCard";
5760
+ var sizeMap5 = {
5525
5761
  sm: "1rem",
5526
5762
  md: "1.25rem",
5527
5763
  lg: "1.5rem"
5528
5764
  };
5529
- var Root12 = styled("div")(({ theme }) => ({
5765
+ var Root17 = styled("div")(({ theme }) => ({
5530
5766
  display: "inline-flex",
5531
5767
  alignItems: "center",
5532
5768
  gap: "0.5rem",
@@ -5546,7 +5782,7 @@ var StarButton = styled("button")(
5546
5782
  padding: 0,
5547
5783
  color: $active ? "#f59e0b" : theme.palette.action.disabled,
5548
5784
  cursor: "pointer",
5549
- fontSize: sizeMap4[$size],
5785
+ fontSize: sizeMap5[$size],
5550
5786
  lineHeight: 1,
5551
5787
  "&:disabled": {
5552
5788
  cursor: "default"
@@ -5561,7 +5797,7 @@ var Rating = forwardRef(
5561
5797
  ({ value, max = 5, readonly = true, size = "md", label, count, onChange, ...props }, ref) => {
5562
5798
  const roundedValue = Math.round(value);
5563
5799
  const meta = label ?? (count !== void 0 ? `(${count})` : void 0);
5564
- return /* @__PURE__ */ jsxs(Root12, { ref, "aria-label": `Ocena ${value} z ${max}`, ...props, children: [
5800
+ return /* @__PURE__ */ jsxs(Root17, { ref, "aria-label": `Ocena ${value} z ${max}`, ...props, children: [
5565
5801
  /* @__PURE__ */ jsx(
5566
5802
  Stars,
5567
5803
  {
@@ -5592,36 +5828,6 @@ var Rating = forwardRef(
5592
5828
  }
5593
5829
  );
5594
5830
  Rating.displayName = "Rating";
5595
- var PRESET_MAP = {
5596
- "1/1": 1,
5597
- "4/3": 4 / 3,
5598
- "3/2": 3 / 2,
5599
- "16/9": 16 / 9,
5600
- "21/9": 21 / 9,
5601
- "9/16": 9 / 16,
5602
- "3/4": 3 / 4,
5603
- "2/3": 2 / 3
5604
- };
5605
- var Root13 = styled("div")({
5606
- position: "relative",
5607
- width: "100%",
5608
- "& > *": {
5609
- position: "absolute",
5610
- inset: 0,
5611
- width: "100%",
5612
- height: "100%",
5613
- objectFit: "cover"
5614
- }
5615
- });
5616
- var AspectRatio = forwardRef(
5617
- ({ ratio = "16/9", children, style, ...props }, ref) => {
5618
- const numericRatio = typeof ratio === "string" ? PRESET_MAP[ratio] ?? 16 / 9 : ratio;
5619
- const paddingBottom = `${1 / numericRatio * 100}%`;
5620
- return /* @__PURE__ */ jsx(Root13, { ref, style: { paddingBottom, ...style }, ...props, children });
5621
- }
5622
- );
5623
- AspectRatio.displayName = "AspectRatio";
5624
- var aspectRatioPresets = Object.keys(PRESET_MAP);
5625
5831
  var DEFAULT_OMNIBUS_LABEL = "Najni\u017Csza cena z ostatnich 30 dni";
5626
5832
  var FONT_SIZE = {
5627
5833
  sm: "0.875rem",
@@ -5629,7 +5835,7 @@ var FONT_SIZE = {
5629
5835
  lg: "1.5rem",
5630
5836
  xl: "2rem"
5631
5837
  };
5632
- var Root14 = styled("div")({
5838
+ var Root18 = styled("div")({
5633
5839
  display: "inline-flex",
5634
5840
  flexDirection: "column",
5635
5841
  gap: "0.25rem"
@@ -5710,7 +5916,7 @@ var Price = forwardRef(
5710
5916
  const onSale = originalPrice !== void 0 && originalPrice > price;
5711
5917
  const discount = onSale ? calcDiscount(price, originalPrice) : 0;
5712
5918
  const showOmnibus = lowestPrice !== void 0;
5713
- return /* @__PURE__ */ jsxs(Root14, { ref, ...props, children: [
5919
+ return /* @__PURE__ */ jsxs(Root18, { ref, ...props, children: [
5714
5920
  /* @__PURE__ */ jsxs(PriceRow, { children: [
5715
5921
  /* @__PURE__ */ jsx(
5716
5922
  Current,
@@ -5754,26 +5960,35 @@ var Price = forwardRef(
5754
5960
  );
5755
5961
  Price.displayName = "Price";
5756
5962
  var priceSizes = ["sm", "md", "lg", "xl"];
5757
- var Root15 = styled(Card)({
5963
+ var Root19 = styled(Card)({
5758
5964
  display: "flex",
5759
5965
  flexDirection: "column",
5760
5966
  height: "100%",
5761
5967
  overflow: "hidden"
5762
5968
  });
5763
- var ImageWrap = styled("div")({
5969
+ var ImageWrap2 = styled("div")({
5764
5970
  position: "relative",
5765
5971
  margin: "-1.5rem -1.5rem 1rem"
5766
5972
  });
5767
- var Image = styled("img")(({ theme }) => ({
5973
+ var Image2 = styled("img")(({ theme }) => ({
5768
5974
  objectFit: "cover",
5769
5975
  backgroundColor: theme.palette.action.hover
5770
5976
  }));
5977
+ var ImagePlaceholder2 = styled("div")(({ theme }) => ({
5978
+ width: "100%",
5979
+ height: "100%",
5980
+ backgroundColor: theme.palette.action.hover,
5981
+ display: "flex",
5982
+ alignItems: "center",
5983
+ justifyContent: "center",
5984
+ color: theme.palette.text.disabled
5985
+ }));
5771
5986
  var BadgeSlot = styled("div")({
5772
5987
  position: "absolute",
5773
5988
  left: "0.75rem",
5774
5989
  top: "0.75rem"
5775
5990
  });
5776
- var Name = styled("h3")(({ theme }) => ({
5991
+ var Name2 = styled("h3")(({ theme }) => ({
5777
5992
  margin: 0,
5778
5993
  color: theme.palette.text.primary,
5779
5994
  fontFamily: theme.typography.fontFamily,
@@ -5804,12 +6019,12 @@ var ProductCard = forwardRef(
5804
6019
  ctaLabel = "Dodaj do koszyka",
5805
6020
  onAddToCart,
5806
6021
  ...props
5807
- }, ref) => /* @__PURE__ */ jsxs(Root15, { ref, variant: "default", padding: "md", rounded: "lg", ...props, children: [
5808
- /* @__PURE__ */ jsx(ImageWrap, { children: /* @__PURE__ */ jsxs(AspectRatio, { ratio: "4/3", children: [
5809
- /* @__PURE__ */ jsx(Image, { src: imageUrl, alt: imageAlt ?? name }),
5810
- badge && /* @__PURE__ */ jsx(BadgeSlot, { children: /* @__PURE__ */ jsx(Badge, { variant: badgeVariant, children: badge }) })
6022
+ }, ref) => /* @__PURE__ */ jsxs(Root19, { ref, variant: "default", padding: "md", rounded: "lg", ...props, children: [
6023
+ /* @__PURE__ */ jsx(ImageWrap2, { children: /* @__PURE__ */ jsxs(AspectRatio, { ratio: "4/3", children: [
6024
+ imageUrl ? /* @__PURE__ */ jsx(Image2, { src: imageUrl, alt: imageAlt ?? name }) : /* @__PURE__ */ jsx(ImagePlaceholder2, { "aria-label": imageAlt ?? name, children: /* @__PURE__ */ jsx(ImageIcon, { style: { fontSize: 48 } }) }),
6025
+ badge && /* @__PURE__ */ jsx(BadgeSlot, { children: /* @__PURE__ */ jsx(Badge2, { variant: badgeVariant, children: badge }) })
5811
6026
  ] }) }),
5812
- /* @__PURE__ */ jsx(Name, { children: name }),
6027
+ /* @__PURE__ */ jsx(Name2, { children: name }),
5813
6028
  rating !== void 0 && /* @__PURE__ */ jsx(Rating, { value: rating, count: reviewCount, size: "sm" }),
5814
6029
  /* @__PURE__ */ jsx(
5815
6030
  Price,
@@ -5822,50 +6037,176 @@ var ProductCard = forwardRef(
5822
6037
  style: { marginTop: "0.5rem" }
5823
6038
  }
5824
6039
  ),
5825
- /* @__PURE__ */ jsx(Footer, { children: /* @__PURE__ */ jsx(Button, { fullWidth: true, onClick: onAddToCart, children: ctaLabel }) })
6040
+ /* @__PURE__ */ jsx(Footer, { children: /* @__PURE__ */ jsx(Button, { fullWidth: true, onClick: (e) => {
6041
+ e.stopPropagation();
6042
+ onAddToCart?.();
6043
+ }, children: ctaLabel }) })
5826
6044
  ] })
5827
6045
  );
5828
6046
  ProductCard.displayName = "ProductCard";
5829
- var ImageWrapper = styled("div", {
5830
- shouldForwardProp: (prop) => prop !== "$ar"
5831
- })(({ $ar }) => ({
5832
- position: "relative",
6047
+ var COLLAPSE_AT = "480px";
6048
+ var ContainerRoot = styled("div")({
6049
+ containerType: "inline-size",
5833
6050
  width: "100%",
5834
- aspectRatio: $ar,
5835
- overflow: "hidden",
5836
- flexShrink: 0
5837
- }));
5838
- var Img = styled("img")({
6051
+ height: "100%"
6052
+ });
6053
+ var Inner = styled("div")({
6054
+ display: "flex",
6055
+ flexDirection: "row",
6056
+ height: "100%",
6057
+ [`@container (max-width: ${COLLAPSE_AT})`]: {
6058
+ flexDirection: "column"
6059
+ }
6060
+ });
6061
+ var ImageWrap3 = styled("div")({
6062
+ position: "relative",
6063
+ flexShrink: 0,
6064
+ width: "clamp(120px, 33%, 200px)",
6065
+ alignSelf: "stretch",
6066
+ margin: "-1.5rem 1rem -1.5rem -1.5rem",
6067
+ [`@container (max-width: ${COLLAPSE_AT})`]: {
6068
+ width: "auto",
6069
+ alignSelf: "auto",
6070
+ margin: "-1.5rem -1.5rem 1rem",
6071
+ aspectRatio: "4 / 3"
6072
+ }
6073
+ });
6074
+ var Image3 = styled("img")(({ theme }) => ({
6075
+ position: "absolute",
6076
+ inset: 0,
5839
6077
  width: "100%",
5840
6078
  height: "100%",
5841
6079
  objectFit: "cover",
5842
- display: "block"
5843
- });
5844
- var Placeholder2 = styled("div")(({ theme }) => ({
6080
+ backgroundColor: theme.palette.action.hover
6081
+ }));
6082
+ var ImagePlaceholder3 = styled("div")(({ theme }) => ({
6083
+ position: "absolute",
6084
+ inset: 0,
5845
6085
  width: "100%",
5846
6086
  height: "100%",
6087
+ backgroundColor: theme.palette.action.hover,
5847
6088
  display: "flex",
5848
6089
  alignItems: "center",
5849
6090
  justifyContent: "center",
5850
- backgroundColor: theme.palette.action.hover
6091
+ color: theme.palette.text.disabled
5851
6092
  }));
5852
- var Overlay = styled("div")({
6093
+ var BadgeSlot2 = styled("div")({
5853
6094
  position: "absolute",
5854
- inset: 0,
5855
- background: "linear-gradient(to bottom, rgba(0,0,0,0.3) 0%, transparent 50%)",
5856
- pointerEvents: "none"
6095
+ left: "0.75rem",
6096
+ top: "0.75rem",
6097
+ zIndex: 1
5857
6098
  });
5858
- var FileTextIcon = () => /* @__PURE__ */ jsx(ArticleIcon, { "aria-hidden": "true", style: { fontSize: 32, opacity: 0.3 } });
5859
- function toAspectRatioCss(ratio) {
5860
- if (typeof ratio === "number") return String(ratio);
5861
- return ratio.replace("/", " / ");
5862
- }
5863
- var PostCardImage = ({
5864
- src,
5865
- alt = "",
5866
- aspectRatio = "4/3",
5867
- overlay = false,
5868
- className,
6099
+ var Content2 = styled("div")({
6100
+ display: "flex",
6101
+ flexDirection: "column",
6102
+ flex: 1,
6103
+ minWidth: 0
6104
+ });
6105
+ var Name3 = styled("h3")(({ theme }) => ({
6106
+ margin: 0,
6107
+ color: theme.palette.text.primary,
6108
+ fontFamily: theme.typography.fontFamily,
6109
+ fontSize: "1rem",
6110
+ fontWeight: 700,
6111
+ lineHeight: 1.4
6112
+ }));
6113
+ var Footer2 = styled("div")({
6114
+ display: "grid",
6115
+ gap: "1rem",
6116
+ marginTop: "auto",
6117
+ paddingTop: "1rem"
6118
+ });
6119
+ var ProductCardHorizontal = forwardRef(
6120
+ ({
6121
+ name,
6122
+ imageUrl,
6123
+ imageAlt,
6124
+ price,
6125
+ originalPrice,
6126
+ currency,
6127
+ locale,
6128
+ lowestPrice,
6129
+ badge,
6130
+ badgeVariant = "success",
6131
+ rating,
6132
+ reviewCount,
6133
+ ctaLabel = "Dodaj do koszyka",
6134
+ onAddToCart,
6135
+ ...props
6136
+ }, ref) => /* @__PURE__ */ jsx(Card, { ref, variant: "default", padding: "md", rounded: "lg", ...props, children: /* @__PURE__ */ jsx(ContainerRoot, { children: /* @__PURE__ */ jsxs(Inner, { children: [
6137
+ /* @__PURE__ */ jsxs(ImageWrap3, { children: [
6138
+ imageUrl ? /* @__PURE__ */ jsx(Image3, { src: imageUrl, alt: imageAlt ?? name }) : /* @__PURE__ */ jsx(ImagePlaceholder3, { "aria-label": imageAlt ?? name, children: /* @__PURE__ */ jsx(ImageIcon, { style: { fontSize: 48 } }) }),
6139
+ badge && /* @__PURE__ */ jsx(BadgeSlot2, { children: /* @__PURE__ */ jsx(Badge2, { variant: badgeVariant, children: badge }) })
6140
+ ] }),
6141
+ /* @__PURE__ */ jsxs(Content2, { children: [
6142
+ /* @__PURE__ */ jsx(Name3, { children: name }),
6143
+ rating !== void 0 && /* @__PURE__ */ jsx(Rating, { value: rating, count: reviewCount, size: "sm" }),
6144
+ /* @__PURE__ */ jsx(
6145
+ Price,
6146
+ {
6147
+ price,
6148
+ originalPrice,
6149
+ currency,
6150
+ locale,
6151
+ lowestPrice,
6152
+ style: { marginTop: "0.5rem" }
6153
+ }
6154
+ ),
6155
+ /* @__PURE__ */ jsx(Footer2, { children: /* @__PURE__ */ jsx(
6156
+ Button,
6157
+ {
6158
+ fullWidth: true,
6159
+ onClick: (e) => {
6160
+ e.stopPropagation();
6161
+ onAddToCart?.();
6162
+ },
6163
+ children: ctaLabel
6164
+ }
6165
+ ) })
6166
+ ] })
6167
+ ] }) }) })
6168
+ );
6169
+ ProductCardHorizontal.displayName = "ProductCardHorizontal";
6170
+ var ImageWrapper = styled("div", {
6171
+ shouldForwardProp: (prop) => prop !== "$ar"
6172
+ })(({ $ar }) => ({
6173
+ position: "relative",
6174
+ width: "100%",
6175
+ aspectRatio: $ar,
6176
+ overflow: "hidden",
6177
+ flexShrink: 0
6178
+ }));
6179
+ var Img = styled("img")({
6180
+ width: "100%",
6181
+ height: "100%",
6182
+ objectFit: "cover",
6183
+ display: "block"
6184
+ });
6185
+ var Placeholder2 = styled("div")(({ theme }) => ({
6186
+ width: "100%",
6187
+ height: "100%",
6188
+ display: "flex",
6189
+ alignItems: "center",
6190
+ justifyContent: "center",
6191
+ backgroundColor: theme.palette.action.hover
6192
+ }));
6193
+ var Overlay = styled("div")({
6194
+ position: "absolute",
6195
+ inset: 0,
6196
+ background: "linear-gradient(to bottom, rgba(0,0,0,0.3) 0%, transparent 50%)",
6197
+ pointerEvents: "none"
6198
+ });
6199
+ var FileTextIcon = () => /* @__PURE__ */ jsx(ArticleIcon, { "aria-hidden": "true", style: { fontSize: 32, opacity: 0.3 } });
6200
+ function toAspectRatioCss(ratio) {
6201
+ if (typeof ratio === "number") return String(ratio);
6202
+ return ratio.replace("/", " / ");
6203
+ }
6204
+ var PostCardImage = ({
6205
+ src,
6206
+ alt = "",
6207
+ aspectRatio = "4/3",
6208
+ overlay = false,
6209
+ className,
5869
6210
  style
5870
6211
  }) => {
5871
6212
  const [imgError, setImgError] = useState(false);
@@ -5946,7 +6287,7 @@ var StyledInner = styled("div", {
5946
6287
  height: "100%",
5947
6288
  ...getLayoutStyles($variant)
5948
6289
  }));
5949
- var CardLink = styled("a")(({ theme }) => ({
6290
+ var CardLink2 = styled("a")(({ theme }) => ({
5950
6291
  display: "block",
5951
6292
  textDecoration: "none",
5952
6293
  color: "inherit",
@@ -6052,13 +6393,13 @@ var PostCard = forwardRef(
6052
6393
  isFeatured && showImage && /* @__PURE__ */ jsx(FeaturedImageWrapper, { children: /* @__PURE__ */ jsx(PostCardImage, { src: imageUrl, alt: imageAlt, aspectRatio: "16/9", overlay: true }) }),
6053
6394
  !isFeatured && showImage && (isHorizontal ? /* @__PURE__ */ jsx(HorizontalImageWrapper, { children: /* @__PURE__ */ jsx(PostCardImage, { src: imageUrl, alt: imageAlt, aspectRatio: "4/3" }) }) : /* @__PURE__ */ jsx(PostCardImage, { src: imageUrl, alt: imageAlt, aspectRatio: "16/9" })),
6054
6395
  /* @__PURE__ */ jsxs(StyledContent, { $variant: variant, children: [
6055
- category && /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(Badge, { variant: isFeatured ? "ghost" : "default", children: category }) }),
6396
+ category && /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(Badge2, { variant: isFeatured ? "ghost" : "default", children: category }) }),
6056
6397
  /* @__PURE__ */ jsx(StyledTitle, { className: "post-card-title", $featured: isFeatured, children: title }),
6057
6398
  excerpt && variant !== "compact" && !isFeatured && /* @__PURE__ */ jsx(StyledExcerpt, { children: excerpt }),
6058
6399
  (date || author) && /* @__PURE__ */ jsx(PostCardMeta, { date, author, inverted: isFeatured })
6059
6400
  ] })
6060
6401
  ] });
6061
- return /* @__PURE__ */ jsx(Card, { ref, variant: cardVariant, padding: "none", rounded: "lg", ...rest, children: /* @__PURE__ */ jsx(StyledRoot, { children: href ? /* @__PURE__ */ jsx(CardLink, { href, "aria-label": title, children: inner }) : inner }) });
6402
+ return /* @__PURE__ */ jsx(Card, { ref, variant: cardVariant, padding: "none", rounded: "lg", ...rest, children: /* @__PURE__ */ jsx(StyledRoot, { children: href ? /* @__PURE__ */ jsx(CardLink2, { href, "aria-label": title, children: inner }) : inner }) });
6062
6403
  }
6063
6404
  );
6064
6405
  PostCard.displayName = "PostCard";
@@ -6070,7 +6411,7 @@ var postCardVariants = [
6070
6411
  "featured",
6071
6412
  "compact"
6072
6413
  ];
6073
- var Root16 = styled(Card)({
6414
+ var Root20 = styled(Card)({
6074
6415
  display: "flex",
6075
6416
  flexDirection: "column",
6076
6417
  height: "100%"
@@ -6081,7 +6422,7 @@ var NameRow = styled("div")({
6081
6422
  justifyContent: "space-between",
6082
6423
  marginBottom: "0.75rem"
6083
6424
  });
6084
- var Name2 = styled("p")(({ theme }) => ({
6425
+ var Name4 = styled("p")(({ theme }) => ({
6085
6426
  margin: 0,
6086
6427
  fontFamily: theme.typography.fontFamily,
6087
6428
  fontWeight: 600,
@@ -6201,10 +6542,10 @@ var PricingCard = forwardRef(
6201
6542
  }, ref) => {
6202
6543
  const resolvedCardVariant = cardVariant ?? (popular ? "gradient-primary" : "default");
6203
6544
  const resolvedCtaVariant = ctaVariant ?? (popular ? "primary" : "ghost");
6204
- return /* @__PURE__ */ jsxs(Root16, { ref, variant: resolvedCardVariant, padding: "lg", rounded: "lg", ...props, children: [
6545
+ return /* @__PURE__ */ jsxs(Root20, { ref, variant: resolvedCardVariant, padding: "lg", rounded: "lg", ...props, children: [
6205
6546
  /* @__PURE__ */ jsxs(NameRow, { children: [
6206
- /* @__PURE__ */ jsx(Name2, { children: name }),
6207
- popular && /* @__PURE__ */ jsx(Badge, { variant: "default", children: popularLabel })
6547
+ /* @__PURE__ */ jsx(Name4, { children: name }),
6548
+ popular && /* @__PURE__ */ jsx(Badge2, { variant: "default", children: popularLabel })
6208
6549
  ] }),
6209
6550
  /* @__PURE__ */ jsxs(PriceRow2, { children: [
6210
6551
  currency && /* @__PURE__ */ jsx(Currency, { children: currency }),
@@ -6227,7 +6568,7 @@ var PricingCard = forwardRef(
6227
6568
  }
6228
6569
  );
6229
6570
  PricingCard.displayName = "PricingCard";
6230
- var Root17 = styled(Card, {
6571
+ var Root21 = styled(Card, {
6231
6572
  shouldForwardProp: (prop) => prop !== "$align"
6232
6573
  })(({ $align }) => ({
6233
6574
  textAlign: $align,
@@ -6257,14 +6598,14 @@ var Description3 = styled("p")(({ theme }) => ({
6257
6598
  lineHeight: 1.5
6258
6599
  }));
6259
6600
  var StatCard = forwardRef(
6260
- ({ stat, cardVariant = "default", align = "center", ...props }, ref) => /* @__PURE__ */ jsxs(Root17, { ref, variant: cardVariant, padding: "lg", rounded: "lg", $align: align, ...props, children: [
6601
+ ({ stat, cardVariant = "default", align = "center", ...props }, ref) => /* @__PURE__ */ jsxs(Root21, { ref, variant: cardVariant, padding: "lg", rounded: "lg", $align: align, ...props, children: [
6261
6602
  /* @__PURE__ */ jsx(Value, { children: stat.value }),
6262
6603
  /* @__PURE__ */ jsx(Label3, { children: stat.label }),
6263
6604
  stat.description && /* @__PURE__ */ jsx(Description3, { children: stat.description })
6264
6605
  ] })
6265
6606
  );
6266
6607
  StatCard.displayName = "StatCard";
6267
- var Root18 = styled(Card)({
6608
+ var Root22 = styled(Card)({
6268
6609
  display: "flex",
6269
6610
  flexDirection: "column",
6270
6611
  gap: "1.25rem",
@@ -6290,7 +6631,7 @@ var Quote = styled("blockquote")(({ theme }) => ({
6290
6631
  marginLeft: "0.125rem"
6291
6632
  }
6292
6633
  }));
6293
- var Footer2 = styled("div")({
6634
+ var Footer3 = styled("div")({
6294
6635
  display: "flex",
6295
6636
  alignItems: "center",
6296
6637
  gap: "0.75rem"
@@ -6321,10 +6662,10 @@ var AuthorRole = styled("p")(({ theme }) => ({
6321
6662
  var TestimonialCard = forwardRef(
6322
6663
  ({ testimonial, cardVariant = "default", ...props }, ref) => {
6323
6664
  const initials = testimonial.authorInitials ?? testimonial.authorName.split(" ").filter(Boolean).slice(0, 2).map((p) => p[0]).join("").toUpperCase();
6324
- return /* @__PURE__ */ jsxs(Root18, { ref, variant: cardVariant, padding: "lg", rounded: "lg", ...props, children: [
6665
+ return /* @__PURE__ */ jsxs(Root22, { ref, variant: cardVariant, padding: "lg", rounded: "lg", ...props, children: [
6325
6666
  testimonial.rating && /* @__PURE__ */ jsx(Rating, { value: testimonial.rating, readonly: true, size: "sm" }),
6326
6667
  /* @__PURE__ */ jsx(Quote, { children: testimonial.quote }),
6327
- /* @__PURE__ */ jsxs(Footer2, { children: [
6668
+ /* @__PURE__ */ jsxs(Footer3, { children: [
6328
6669
  testimonial.authorAvatarUrl ? /* @__PURE__ */ jsx(AvatarImage, { src: testimonial.authorAvatarUrl, alt: testimonial.authorName }) : /* @__PURE__ */ jsx(Avatar, { initials, size: "md", color: "primary" }),
6329
6670
  /* @__PURE__ */ jsxs(AuthorInfo, { children: [
6330
6671
  /* @__PURE__ */ jsx(AuthorName, { children: testimonial.authorName }),
@@ -6335,7 +6676,7 @@ var TestimonialCard = forwardRef(
6335
6676
  }
6336
6677
  );
6337
6678
  TestimonialCard.displayName = "TestimonialCard";
6338
- var Root19 = styled(Card)(({ theme }) => ({
6679
+ var Root23 = styled(Card)(({ theme }) => ({
6339
6680
  display: "flex",
6340
6681
  alignItems: "center",
6341
6682
  gap: "1rem",
@@ -6354,10 +6695,10 @@ var AvatarImage2 = styled("img")({
6354
6695
  borderRadius: "50%",
6355
6696
  objectFit: "cover"
6356
6697
  });
6357
- var Content = styled("div")({
6698
+ var Content3 = styled("div")({
6358
6699
  minWidth: 0
6359
6700
  });
6360
- var Name3 = styled("h3")(({ theme }) => ({
6701
+ var Name5 = styled("h3")(({ theme }) => ({
6361
6702
  margin: 0,
6362
6703
  color: theme.palette.text.primary,
6363
6704
  fontFamily: theme.typography.fontFamily,
@@ -6379,10 +6720,10 @@ function getInitials(member) {
6379
6720
  return member.name.split(" ").filter(Boolean).slice(0, 2).map((part) => part[0]).join("").toUpperCase();
6380
6721
  }
6381
6722
  var TeamMemberCard = forwardRef(
6382
- ({ member, cardVariant = "default", ...props }, ref) => /* @__PURE__ */ jsxs(Root19, { ref, variant: cardVariant, padding: "lg", rounded: "lg", ...props, children: [
6723
+ ({ member, cardVariant = "default", ...props }, ref) => /* @__PURE__ */ jsxs(Root23, { ref, variant: cardVariant, padding: "lg", rounded: "lg", ...props, children: [
6383
6724
  member.avatarUrl ? /* @__PURE__ */ jsx(AvatarImage2, { src: member.avatarUrl, alt: member.avatarAlt ?? member.name }) : /* @__PURE__ */ jsx(Avatar, { initials: getInitials(member), size: "xl", color: member.avatarColor ?? "primary" }),
6384
- /* @__PURE__ */ jsxs(Content, { children: [
6385
- /* @__PURE__ */ jsx(Name3, { children: member.name }),
6725
+ /* @__PURE__ */ jsxs(Content3, { children: [
6726
+ /* @__PURE__ */ jsx(Name5, { children: member.name }),
6386
6727
  /* @__PURE__ */ jsx(Role, { children: member.role })
6387
6728
  ] })
6388
6729
  ] })
@@ -6560,8 +6901,143 @@ function CompareTool({
6560
6901
  }) })
6561
6902
  ] }) });
6562
6903
  }
6904
+ function calcTimeLeft(target) {
6905
+ const diff = new Date(target).getTime() - Date.now();
6906
+ if (diff <= 0) return null;
6907
+ return {
6908
+ days: Math.floor(diff / 864e5),
6909
+ hours: Math.floor(diff % 864e5 / 36e5),
6910
+ minutes: Math.floor(diff % 36e5 / 6e4),
6911
+ seconds: Math.floor(diff % 6e4 / 1e3)
6912
+ };
6913
+ }
6914
+ function pad(n) {
6915
+ return String(n).padStart(2, "0");
6916
+ }
6917
+ var Root24 = styled("div", {
6918
+ shouldForwardProp: (prop) => prop !== "$variant"
6919
+ })(({ theme, $variant }) => ({
6920
+ display: "inline-flex",
6921
+ alignItems: "center",
6922
+ justifyContent: "space-between",
6923
+ flexWrap: "wrap",
6924
+ gap: "0.5rem",
6925
+ fontFamily: theme.typography.fontFamily,
6926
+ ...$variant === "card" && {
6927
+ backgroundColor: theme.palette.background.paper,
6928
+ border: `1px solid ${theme.palette.divider}`,
6929
+ borderRadius: theme.shape.borderRadius,
6930
+ padding: "1rem 1.5rem"
6931
+ },
6932
+ ...$variant === "banner" && {
6933
+ backgroundColor: theme.palette.error.main,
6934
+ color: "#fff",
6935
+ borderRadius: theme.shape.borderRadius,
6936
+ padding: "0.75rem 1.25rem"
6937
+ }
6938
+ }));
6939
+ var TimerLabel = styled("span", {
6940
+ shouldForwardProp: (prop) => prop !== "$variant"
6941
+ })(({ theme, $variant }) => ({
6942
+ fontSize: "0.875rem",
6943
+ fontWeight: 600,
6944
+ color: $variant === "banner" ? "rgba(255,255,255,0.85)" : theme.palette.text.secondary,
6945
+ marginRight: "0.25rem"
6946
+ }));
6947
+ var Segments = styled("div")({
6948
+ display: "flex",
6949
+ alignItems: "center",
6950
+ gap: "0.25rem"
6951
+ });
6952
+ var Segment = styled("div", {
6953
+ shouldForwardProp: (prop) => prop !== "$variant"
6954
+ })(({ theme, $variant }) => ({
6955
+ display: "flex",
6956
+ flexDirection: "column",
6957
+ alignItems: "center",
6958
+ minWidth: "2.5rem",
6959
+ ...$variant === "card" && {
6960
+ backgroundColor: theme.palette.action.hover,
6961
+ borderRadius: "0.375rem",
6962
+ padding: "0.375rem 0.5rem"
6963
+ }
6964
+ }));
6965
+ var Value2 = styled("span", {
6966
+ shouldForwardProp: (prop) => prop !== "$variant"
6967
+ })(({ $variant }) => ({
6968
+ fontSize: $variant === "inline" ? "1rem" : "1.5rem",
6969
+ fontWeight: 700,
6970
+ lineHeight: 1,
6971
+ color: $variant === "banner" ? "#fff" : "inherit"
6972
+ }));
6973
+ var Unit = styled("span", {
6974
+ shouldForwardProp: (prop) => prop !== "$variant"
6975
+ })(({ theme, $variant }) => ({
6976
+ fontSize: "0.6875rem",
6977
+ color: $variant === "banner" ? "rgba(255,255,255,0.7)" : theme.palette.text.secondary,
6978
+ marginTop: "0.125rem"
6979
+ }));
6980
+ var Colon = styled("span", {
6981
+ shouldForwardProp: (prop) => prop !== "$variant"
6982
+ })(({ theme, $variant }) => ({
6983
+ fontSize: $variant === "inline" ? "1rem" : "1.5rem",
6984
+ fontWeight: 700,
6985
+ color: $variant === "banner" ? "rgba(255,255,255,0.6)" : theme.palette.text.disabled,
6986
+ alignSelf: $variant === "card" ? "flex-start" : "center",
6987
+ marginTop: $variant === "card" ? "0.375rem" : 0
6988
+ }));
6989
+ var UNITS = ["dni", "godz", "min", "sek"];
6990
+ var CountdownTimer = forwardRef(
6991
+ ({
6992
+ targetDate,
6993
+ variant = "inline",
6994
+ label,
6995
+ expiredLabel = "Promocja zako\u0144czona",
6996
+ onExpire,
6997
+ ...props
6998
+ }, ref) => {
6999
+ const [timeLeft, setTimeLeft] = useState(() => calcTimeLeft(targetDate));
7000
+ useEffect(() => {
7001
+ const id = setInterval(() => {
7002
+ const tl = calcTimeLeft(targetDate);
7003
+ setTimeLeft(tl);
7004
+ if (!tl) {
7005
+ clearInterval(id);
7006
+ onExpire?.();
7007
+ }
7008
+ }, 1e3);
7009
+ return () => clearInterval(id);
7010
+ }, [targetDate, onExpire]);
7011
+ if (!timeLeft) {
7012
+ return /* @__PURE__ */ jsx(Root24, { ref, $variant: variant, ...props, children: /* @__PURE__ */ jsx(TimerLabel, { $variant: variant, children: expiredLabel }) });
7013
+ }
7014
+ const parts = [timeLeft.days, timeLeft.hours, timeLeft.minutes, timeLeft.seconds];
7015
+ return /* @__PURE__ */ jsxs(
7016
+ Root24,
7017
+ {
7018
+ ref,
7019
+ $variant: variant,
7020
+ "aria-live": "polite",
7021
+ "aria-label": `Czas do ko\u0144ca promocji`,
7022
+ ...props,
7023
+ children: [
7024
+ label && /* @__PURE__ */ jsx(TimerLabel, { $variant: variant, children: label }),
7025
+ /* @__PURE__ */ jsx(Segments, { children: parts.map((val, i) => /* @__PURE__ */ jsxs("div", { style: { display: "contents" }, children: [
7026
+ i > 0 && /* @__PURE__ */ jsx(Colon, { $variant: variant, children: ":" }),
7027
+ /* @__PURE__ */ jsxs(Segment, { $variant: variant, children: [
7028
+ /* @__PURE__ */ jsx(Value2, { $variant: variant, children: pad(val) }),
7029
+ variant !== "inline" && /* @__PURE__ */ jsx(Unit, { $variant: variant, children: UNITS[i] })
7030
+ ] })
7031
+ ] }, UNITS[i])) })
7032
+ ]
7033
+ }
7034
+ );
7035
+ }
7036
+ );
7037
+ CountdownTimer.displayName = "CountdownTimer";
7038
+ var countdownTimerVariants = ["inline", "card", "banner"];
6563
7039
  var spin2 = keyframes`to { transform: rotate(360deg); }`;
6564
- var Root20 = styled("div")({
7040
+ var Root25 = styled("div")({
6565
7041
  display: "flex",
6566
7042
  flexDirection: "column",
6567
7043
  gap: "0.5rem"
@@ -6708,7 +7184,7 @@ function CouponInput({
6708
7184
  if (e.key === "Enter") handleApply();
6709
7185
  };
6710
7186
  if (appliedCode) {
6711
- return /* @__PURE__ */ jsxs(Root20, { className, children: [
7187
+ return /* @__PURE__ */ jsxs(Root25, { className, children: [
6712
7188
  /* @__PURE__ */ jsxs(AppliedRow, { role: "status", "aria-label": `Kod rabatowy ${appliedCode} zastosowany`, children: [
6713
7189
  /* @__PURE__ */ jsx(AppliedCode, { children: appliedCode }),
6714
7190
  onRemove && /* @__PURE__ */ jsx(
@@ -6727,7 +7203,7 @@ function CouponInput({
6727
7203
  ] })
6728
7204
  ] });
6729
7205
  }
6730
- return /* @__PURE__ */ jsxs(Root20, { className, children: [
7206
+ return /* @__PURE__ */ jsxs(Root25, { className, children: [
6731
7207
  /* @__PURE__ */ jsxs(InputRow, { $hasError: Boolean(error), $applied: false, children: [
6732
7208
  /* @__PURE__ */ jsx(
6733
7209
  Input,
@@ -6759,7 +7235,82 @@ function CouponInput({
6759
7235
  error && /* @__PURE__ */ jsx(Message, { $type: "error", id: errorId, role: "alert", children: error })
6760
7236
  ] });
6761
7237
  }
6762
- var Root21 = styled("div")({
7238
+ var Root26 = styled("div")({
7239
+ display: "flex",
7240
+ flexDirection: "column",
7241
+ gap: "0.5rem"
7242
+ });
7243
+ var GroupLabel = styled("span")(({ theme }) => ({
7244
+ fontSize: "0.875rem",
7245
+ fontWeight: 600,
7246
+ color: theme.palette.text.primary,
7247
+ fontFamily: theme.typography.fontFamily
7248
+ }));
7249
+ var MethodLabel = styled("label", {
7250
+ shouldForwardProp: (prop) => prop !== "$selected"
7251
+ })(({ theme, $selected }) => ({
7252
+ display: "flex",
7253
+ alignItems: "center",
7254
+ gap: "0.875rem",
7255
+ padding: "0.875rem 1rem",
7256
+ border: `${$selected ? 2 : 1}px solid ${$selected ? theme.palette.primary.main : theme.palette.divider}`,
7257
+ borderRadius: theme.shape.borderRadius,
7258
+ cursor: "pointer",
7259
+ backgroundColor: $selected ? `${theme.palette.primary.main}08` : theme.palette.background.paper,
7260
+ transition: "border-color 150ms ease, background-color 150ms ease",
7261
+ fontFamily: theme.typography.fontFamily,
7262
+ "&:hover": { borderColor: theme.palette.primary.main }
7263
+ }));
7264
+ var Radio = styled("input")({
7265
+ width: "1rem",
7266
+ height: "1rem",
7267
+ flexShrink: 0,
7268
+ cursor: "pointer"
7269
+ });
7270
+ var IconWrap = styled("span")(({ theme }) => ({
7271
+ color: theme.palette.text.secondary,
7272
+ display: "flex"
7273
+ }));
7274
+ var Info = styled("div")({ flex: 1 });
7275
+ var Name6 = styled("div")(({ theme }) => ({
7276
+ fontSize: "0.9375rem",
7277
+ fontWeight: 600,
7278
+ color: theme.palette.text.primary
7279
+ }));
7280
+ var Desc = styled("div")(({ theme }) => ({
7281
+ fontSize: "0.8125rem",
7282
+ color: theme.palette.text.secondary,
7283
+ marginTop: "0.125rem"
7284
+ }));
7285
+ var PaymentMethodSelector = forwardRef(
7286
+ ({ methods, value, onChange, label = "Metoda p\u0142atno\u015Bci", disabled, ...props }, ref) => /* @__PURE__ */ jsxs(Root26, { ref, ...props, children: [
7287
+ /* @__PURE__ */ jsx(GroupLabel, { children: label }),
7288
+ methods.map((method) => {
7289
+ const selected = value === method.id;
7290
+ return /* @__PURE__ */ jsxs(MethodLabel, { $selected: selected, children: [
7291
+ /* @__PURE__ */ jsx(
7292
+ Radio,
7293
+ {
7294
+ type: "radio",
7295
+ name: "payment",
7296
+ value: method.id,
7297
+ checked: selected,
7298
+ disabled,
7299
+ onChange: () => onChange?.(method.id),
7300
+ "aria-label": method.label
7301
+ }
7302
+ ),
7303
+ /* @__PURE__ */ jsx(IconWrap, { children: method.icon ?? /* @__PURE__ */ jsx(CreditCardOutlinedIcon, { "aria-hidden": true }) }),
7304
+ /* @__PURE__ */ jsxs(Info, { children: [
7305
+ /* @__PURE__ */ jsx(Name6, { children: method.label }),
7306
+ method.description && /* @__PURE__ */ jsx(Desc, { children: method.description })
7307
+ ] })
7308
+ ] }, method.id);
7309
+ })
7310
+ ] })
7311
+ );
7312
+ PaymentMethodSelector.displayName = "PaymentMethodSelector";
7313
+ var Root27 = styled("div")({
6763
7314
  display: "grid",
6764
7315
  gap: "0.75rem"
6765
7316
  });
@@ -6797,7 +7348,7 @@ var ProductGallery = forwardRef(
6797
7348
  if (!activeImage) {
6798
7349
  return null;
6799
7350
  }
6800
- return /* @__PURE__ */ jsxs(Root21, { ref, ...props, children: [
7351
+ return /* @__PURE__ */ jsxs(Root27, { ref, ...props, children: [
6801
7352
  /* @__PURE__ */ jsx(AspectRatio, { ratio: "4/3", children: /* @__PURE__ */ jsx(MainImage, { src: activeImage.src, alt: activeImage.alt }) }),
6802
7353
  images.length > 1 && /* @__PURE__ */ jsx(Thumbnails, { children: images.map((image, index) => /* @__PURE__ */ jsx(
6803
7354
  ThumbnailButton,
@@ -6815,7 +7366,7 @@ var ProductGallery = forwardRef(
6815
7366
  }
6816
7367
  );
6817
7368
  ProductGallery.displayName = "ProductGallery";
6818
- var Root22 = styled("div")(({ theme, $variant }) => ({
7369
+ var Root28 = styled("div")(({ theme, $variant }) => ({
6819
7370
  display: "flex",
6820
7371
  alignItems: "center",
6821
7372
  justifyContent: "center",
@@ -6835,14 +7386,14 @@ var Link = styled("a")(({ theme }) => ({
6835
7386
  textUnderlineOffset: "0.2em"
6836
7387
  }));
6837
7388
  var PromoStrip = forwardRef(
6838
- ({ message, actionLabel, href, variant = "info", ...props }, ref) => /* @__PURE__ */ jsxs(Root22, { ref, $variant: variant, ...props, children: [
7389
+ ({ message, actionLabel, href, variant = "info", ...props }, ref) => /* @__PURE__ */ jsxs(Root28, { ref, $variant: variant, ...props, children: [
6839
7390
  /* @__PURE__ */ jsx("span", { children: message }),
6840
7391
  actionLabel && href && /* @__PURE__ */ jsx(Link, { href, children: actionLabel })
6841
7392
  ] })
6842
7393
  );
6843
7394
  PromoStrip.displayName = "PromoStrip";
6844
7395
  var promoStripVariants = ["info", "success", "warning"];
6845
- var Root23 = styled("div")(({ theme }) => ({
7396
+ var Root29 = styled("div")(({ theme }) => ({
6846
7397
  display: "inline-grid",
6847
7398
  gridTemplateColumns: "2.25rem 3rem 2.25rem",
6848
7399
  alignItems: "center",
@@ -6864,7 +7415,7 @@ var Control = styled("button")(({ theme }) => ({
6864
7415
  cursor: "not-allowed"
6865
7416
  }
6866
7417
  }));
6867
- var Value2 = styled("span")(({ theme }) => ({
7418
+ var Value3 = styled("span")(({ theme }) => ({
6868
7419
  display: "inline-flex",
6869
7420
  alignItems: "center",
6870
7421
  justifyContent: "center",
@@ -6878,7 +7429,7 @@ var QuantitySelector = forwardRef(
6878
7429
  ({ value, min = 1, max = 99, step = 1, disabled = false, onChange, ...props }, ref) => {
6879
7430
  const decrease = Math.max(min, value - step);
6880
7431
  const increase = Math.min(max, value + step);
6881
- return /* @__PURE__ */ jsxs(Root23, { ref, "aria-label": "Wybierz ilo\u015B\u0107", ...props, children: [
7432
+ return /* @__PURE__ */ jsxs(Root29, { ref, "aria-label": "Wybierz ilo\u015B\u0107", ...props, children: [
6882
7433
  /* @__PURE__ */ jsx(
6883
7434
  Control,
6884
7435
  {
@@ -6889,7 +7440,7 @@ var QuantitySelector = forwardRef(
6889
7440
  children: "\u2212"
6890
7441
  }
6891
7442
  ),
6892
- /* @__PURE__ */ jsx(Value2, { "aria-live": "polite", children: value }),
7443
+ /* @__PURE__ */ jsx(Value3, { "aria-live": "polite", children: value }),
6893
7444
  /* @__PURE__ */ jsx(
6894
7445
  Control,
6895
7446
  {
@@ -6904,6 +7455,207 @@ var QuantitySelector = forwardRef(
6904
7455
  }
6905
7456
  );
6906
7457
  QuantitySelector.displayName = "QuantitySelector";
7458
+ var Root30 = styled("div")({
7459
+ display: "flex",
7460
+ flexDirection: "column",
7461
+ gap: "0.5rem"
7462
+ });
7463
+ var GroupLabel2 = styled("span")(({ theme }) => ({
7464
+ fontSize: "0.875rem",
7465
+ fontWeight: 600,
7466
+ color: theme.palette.text.primary,
7467
+ fontFamily: theme.typography.fontFamily
7468
+ }));
7469
+ var OptionLabel = styled("label", {
7470
+ shouldForwardProp: (prop) => prop !== "$selected"
7471
+ })(({ theme, $selected }) => ({
7472
+ display: "flex",
7473
+ alignItems: "center",
7474
+ gap: "0.875rem",
7475
+ padding: "0.875rem 1rem",
7476
+ border: `${$selected ? 2 : 1}px solid ${$selected ? theme.palette.primary.main : theme.palette.divider}`,
7477
+ borderRadius: theme.shape.borderRadius,
7478
+ cursor: "pointer",
7479
+ backgroundColor: $selected ? `${theme.palette.primary.main}08` : theme.palette.background.paper,
7480
+ transition: "border-color 150ms ease, background-color 150ms ease",
7481
+ fontFamily: theme.typography.fontFamily,
7482
+ "&:hover": {
7483
+ borderColor: theme.palette.primary.main
7484
+ }
7485
+ }));
7486
+ var Radio2 = styled("input")({
7487
+ width: "1rem",
7488
+ height: "1rem",
7489
+ flexShrink: 0,
7490
+ cursor: "pointer"
7491
+ });
7492
+ var IconWrap2 = styled("span")(({ theme }) => ({
7493
+ color: theme.palette.text.secondary,
7494
+ display: "flex"
7495
+ }));
7496
+ var Info2 = styled("div")({ flex: 1 });
7497
+ var Name7 = styled("div")(({ theme }) => ({
7498
+ fontSize: "0.9375rem",
7499
+ fontWeight: 600,
7500
+ color: theme.palette.text.primary
7501
+ }));
7502
+ var Desc2 = styled("div")(({ theme }) => ({
7503
+ fontSize: "0.8125rem",
7504
+ color: theme.palette.text.secondary,
7505
+ marginTop: "0.125rem"
7506
+ }));
7507
+ var Price3 = styled("div", {
7508
+ shouldForwardProp: (prop) => prop !== "$selected"
7509
+ })(({ theme, $selected }) => ({
7510
+ fontSize: "0.9375rem",
7511
+ fontWeight: 700,
7512
+ color: $selected ? theme.palette.primary.main : theme.palette.text.primary,
7513
+ whiteSpace: "nowrap"
7514
+ }));
7515
+ var ShippingSelector = forwardRef(
7516
+ ({ options, value, onChange, label = "Metoda dostawy", disabled, ...props }, ref) => /* @__PURE__ */ jsxs(Root30, { ref, ...props, children: [
7517
+ /* @__PURE__ */ jsx(GroupLabel2, { children: label }),
7518
+ options.map((opt) => {
7519
+ const selected = value === opt.id;
7520
+ return /* @__PURE__ */ jsxs(OptionLabel, { $selected: selected, children: [
7521
+ /* @__PURE__ */ jsx(
7522
+ Radio2,
7523
+ {
7524
+ type: "radio",
7525
+ name: "shipping",
7526
+ value: opt.id,
7527
+ checked: selected,
7528
+ disabled,
7529
+ onChange: () => onChange?.(opt.id),
7530
+ "aria-label": opt.label
7531
+ }
7532
+ ),
7533
+ /* @__PURE__ */ jsx(IconWrap2, { children: opt.icon ?? /* @__PURE__ */ jsx(LocalShippingOutlinedIcon, { "aria-hidden": true }) }),
7534
+ /* @__PURE__ */ jsxs(Info2, { children: [
7535
+ /* @__PURE__ */ jsx(Name7, { children: opt.label }),
7536
+ (opt.description || opt.estimatedDays) && /* @__PURE__ */ jsxs(Desc2, { children: [
7537
+ opt.description,
7538
+ opt.estimatedDays && ` \xB7 ${opt.estimatedDays}`
7539
+ ] })
7540
+ ] }),
7541
+ /* @__PURE__ */ jsx(Price3, { $selected: selected, children: opt.price })
7542
+ ] }, opt.id);
7543
+ })
7544
+ ] })
7545
+ );
7546
+ ShippingSelector.displayName = "ShippingSelector";
7547
+ var DEFAULT_SORT_OPTIONS = [
7548
+ { value: "popular", label: "Najpopularniejsze" },
7549
+ { value: "newest", label: "Najnowsze" },
7550
+ { value: "price-asc", label: "Cena rosn\u0105co" },
7551
+ { value: "price-desc", label: "Cena malej\u0105co" }
7552
+ ];
7553
+ var Root31 = styled("div")(({ theme }) => ({
7554
+ display: "flex",
7555
+ alignItems: "center",
7556
+ justifyContent: "space-between",
7557
+ flexWrap: "wrap",
7558
+ gap: "0.75rem",
7559
+ padding: "0.75rem 0",
7560
+ borderBottom: `1px solid ${theme.palette.divider}`,
7561
+ fontFamily: theme.typography.fontFamily
7562
+ }));
7563
+ var TotalLabel = styled("span")(({ theme }) => ({
7564
+ fontSize: "0.875rem",
7565
+ color: theme.palette.text.secondary
7566
+ }));
7567
+ var Controls = styled("div")({
7568
+ display: "flex",
7569
+ alignItems: "center",
7570
+ gap: "0.75rem"
7571
+ });
7572
+ var SortLabel = styled("label")(({ theme }) => ({
7573
+ fontSize: "0.875rem",
7574
+ color: theme.palette.text.secondary
7575
+ }));
7576
+ var Select = styled("select")(({ theme }) => ({
7577
+ padding: "0.375rem 2rem 0.375rem 0.625rem",
7578
+ border: `1px solid ${theme.palette.divider}`,
7579
+ borderRadius: theme.shape.borderRadius,
7580
+ backgroundColor: theme.palette.background.paper,
7581
+ color: theme.palette.text.primary,
7582
+ fontFamily: theme.typography.fontFamily,
7583
+ fontSize: "0.875rem",
7584
+ cursor: "pointer",
7585
+ appearance: "none",
7586
+ 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")`,
7587
+ backgroundRepeat: "no-repeat",
7588
+ backgroundPosition: "right 0.5rem center",
7589
+ "&:focus": { outline: `3px solid ${theme.palette.primary.main}`, outlineOffset: "2px" }
7590
+ }));
7591
+ var ViewToggle = styled("div")(({ theme }) => ({
7592
+ display: "flex",
7593
+ border: `1px solid ${theme.palette.divider}`,
7594
+ borderRadius: theme.shape.borderRadius,
7595
+ overflow: "hidden"
7596
+ }));
7597
+ var ViewButton = styled("button", {
7598
+ shouldForwardProp: (prop) => prop !== "$active"
7599
+ })(({ theme, $active }) => ({
7600
+ appearance: "none",
7601
+ border: "none",
7602
+ cursor: "pointer",
7603
+ display: "flex",
7604
+ alignItems: "center",
7605
+ padding: "0.375rem 0.5rem",
7606
+ backgroundColor: $active ? theme.palette.primary.main : "transparent",
7607
+ color: $active ? theme.palette.primary.contrastText : theme.palette.text.secondary,
7608
+ transition: "background-color 150ms ease, color 150ms ease",
7609
+ "&:hover:not(:disabled)": {
7610
+ backgroundColor: $active ? theme.palette.primary.dark : theme.palette.action.hover
7611
+ },
7612
+ "&:focus-visible": { outline: `3px solid ${theme.palette.primary.main}`, outlineOffset: "-1px" }
7613
+ }));
7614
+ var SortBar = forwardRef(
7615
+ ({
7616
+ total,
7617
+ totalLabel,
7618
+ sortOptions = DEFAULT_SORT_OPTIONS,
7619
+ sortValue,
7620
+ onSortChange,
7621
+ viewMode = "grid",
7622
+ onViewModeChange,
7623
+ showViewToggle = true,
7624
+ ...props
7625
+ }, ref) => {
7626
+ const resolvedLabel = totalLabel ?? (total !== void 0 ? `Znaleziono ${total} produkt\xF3w` : void 0);
7627
+ return /* @__PURE__ */ jsxs(Root31, { ref, ...props, children: [
7628
+ resolvedLabel && /* @__PURE__ */ jsx(TotalLabel, { children: resolvedLabel }),
7629
+ /* @__PURE__ */ jsxs(Controls, { children: [
7630
+ sortOptions.length > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
7631
+ /* @__PURE__ */ jsx(SortLabel, { htmlFor: "sort-select", children: "Sortuj:" }),
7632
+ /* @__PURE__ */ jsx(
7633
+ Select,
7634
+ {
7635
+ id: "sort-select",
7636
+ value: sortValue ?? "",
7637
+ onChange: (e) => onSortChange?.(e.target.value),
7638
+ children: sortOptions.map((opt) => /* @__PURE__ */ jsx("option", { value: opt.value, children: opt.label }, opt.value))
7639
+ }
7640
+ )
7641
+ ] }),
7642
+ showViewToggle && /* @__PURE__ */ jsx(ViewToggle, { "aria-label": "Tryb widoku", children: ["grid", "list"].map((mode) => /* @__PURE__ */ jsx(
7643
+ ViewButton,
7644
+ {
7645
+ type: "button",
7646
+ $active: viewMode === mode,
7647
+ "aria-label": mode === "grid" ? "Widok siatki" : "Widok listy",
7648
+ "aria-pressed": viewMode === mode,
7649
+ onClick: () => onViewModeChange?.(mode),
7650
+ children: mode === "grid" ? /* @__PURE__ */ jsx(GridViewIcon, { "aria-hidden": true, style: { fontSize: 16 } }) : /* @__PURE__ */ jsx(ViewListIcon, { "aria-hidden": true, style: { fontSize: 16 } })
7651
+ },
7652
+ mode
7653
+ )) })
7654
+ ] })
7655
+ ] });
7656
+ }
7657
+ );
7658
+ SortBar.displayName = "SortBar";
6907
7659
  var COLOR_MAP = {
6908
7660
  "in-stock": "success",
6909
7661
  "low-stock": "warning",
@@ -6925,7 +7677,7 @@ function getDefaultLabel(status, count) {
6925
7677
  return "Dost\u0119pny na zam\xF3wienie";
6926
7678
  }
6927
7679
  }
6928
- var Root24 = styled("div", {
7680
+ var Root32 = styled("div", {
6929
7681
  shouldForwardProp: (p) => p !== "$color" && p !== "$size"
6930
7682
  })(({ theme, $color, $size }) => {
6931
7683
  const colorMap = {
@@ -6966,21 +7718,124 @@ var StockStatus = forwardRef(
6966
7718
  ({ status, count, label, showIcon = true, size = "md", ...props }, ref) => {
6967
7719
  const color = COLOR_MAP[status];
6968
7720
  const text = label ?? getDefaultLabel(status, count);
6969
- return /* @__PURE__ */ jsxs(Root24, { ref, $color: color, $size: size, role: "status", "aria-label": text, ...props, children: [
7721
+ return /* @__PURE__ */ jsxs(Root32, { ref, $color: color, $size: size, role: "status", "aria-label": text, ...props, children: [
6970
7722
  showIcon && /* @__PURE__ */ jsx(Dot2, { $color: color, "aria-hidden": "true" }),
6971
7723
  /* @__PURE__ */ jsx("span", { children: text })
6972
7724
  ] });
6973
7725
  }
6974
7726
  );
6975
- StockStatus.displayName = "StockStatus";
6976
- var stockStatusValues = [
6977
- "in-stock",
6978
- "low-stock",
6979
- "out-of-stock",
6980
- "preorder",
6981
- "backorder"
6982
- ];
6983
- var Root25 = styled("div")(({ theme }) => ({
7727
+ StockStatus.displayName = "StockStatus";
7728
+ var stockStatusValues = [
7729
+ "in-stock",
7730
+ "low-stock",
7731
+ "out-of-stock",
7732
+ "preorder",
7733
+ "backorder"
7734
+ ];
7735
+ var Root33 = styled("div")({
7736
+ display: "flex",
7737
+ flexDirection: "column",
7738
+ gap: "0.5rem"
7739
+ });
7740
+ var Label4 = styled("span")(({ theme }) => ({
7741
+ fontSize: "0.875rem",
7742
+ fontWeight: 600,
7743
+ color: theme.palette.text.primary,
7744
+ fontFamily: theme.typography.fontFamily
7745
+ }));
7746
+ var OptionsRow = styled("div")({
7747
+ display: "flex",
7748
+ flexWrap: "wrap",
7749
+ gap: "0.5rem"
7750
+ });
7751
+ var OptionButton = styled("button", {
7752
+ shouldForwardProp: (prop) => prop !== "$active" && prop !== "$mode"
7753
+ })(({ theme, $active, $mode }) => ({
7754
+ appearance: "none",
7755
+ cursor: "pointer",
7756
+ fontFamily: theme.typography.fontFamily,
7757
+ fontSize: "0.875rem",
7758
+ fontWeight: 500,
7759
+ transition: "border-color 150ms ease, background-color 150ms ease, box-shadow 150ms ease",
7760
+ "&:disabled": {
7761
+ opacity: 0.4,
7762
+ cursor: "not-allowed",
7763
+ textDecoration: $mode === "button" ? "line-through" : "none"
7764
+ },
7765
+ "&:focus-visible": {
7766
+ outline: `3px solid ${theme.palette.primary.main}`,
7767
+ outlineOffset: "2px"
7768
+ },
7769
+ ...$mode === "swatch" ? {
7770
+ width: "2rem",
7771
+ height: "2rem",
7772
+ borderRadius: "50%",
7773
+ border: $active ? `3px solid ${theme.palette.primary.main}` : `2px solid ${theme.palette.divider}`,
7774
+ boxShadow: $active ? `0 0 0 2px ${theme.palette.background.paper}, 0 0 0 4px ${theme.palette.primary.main}` : "none",
7775
+ padding: 0,
7776
+ background: "currentColor"
7777
+ } : {
7778
+ padding: "0.375rem 0.875rem",
7779
+ border: $active ? `2px solid ${theme.palette.primary.main}` : `1px solid ${theme.palette.divider}`,
7780
+ borderRadius: theme.shape.borderRadius,
7781
+ backgroundColor: $active ? `${theme.palette.primary.main}14` : "transparent",
7782
+ color: $active ? theme.palette.primary.main : theme.palette.text.primary
7783
+ }
7784
+ }));
7785
+ var Select2 = styled("select")(({ theme }) => ({
7786
+ padding: "0.5rem 2rem 0.5rem 0.75rem",
7787
+ border: `1px solid ${theme.palette.divider}`,
7788
+ borderRadius: theme.shape.borderRadius,
7789
+ backgroundColor: theme.palette.background.paper,
7790
+ color: theme.palette.text.primary,
7791
+ fontFamily: theme.typography.fontFamily,
7792
+ fontSize: "0.875rem",
7793
+ cursor: "pointer",
7794
+ appearance: "none",
7795
+ 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")`,
7796
+ backgroundRepeat: "no-repeat",
7797
+ backgroundPosition: "right 0.75rem center",
7798
+ "&:focus": {
7799
+ outline: `3px solid ${theme.palette.primary.main}`,
7800
+ outlineOffset: "2px"
7801
+ }
7802
+ }));
7803
+ var VariantSelector = forwardRef(
7804
+ ({ label, options, value, onChange, mode = "button", disabled, ...props }, ref) => /* @__PURE__ */ jsxs(Root33, { ref, ...props, children: [
7805
+ /* @__PURE__ */ jsxs(Label4, { children: [
7806
+ label,
7807
+ value && mode !== "swatch" && /* @__PURE__ */ jsx("span", { style: { fontWeight: 400, marginLeft: "0.375rem" }, children: options.find((o) => o.value === value)?.label })
7808
+ ] }),
7809
+ mode === "dropdown" ? /* @__PURE__ */ jsx(
7810
+ Select2,
7811
+ {
7812
+ value: value ?? "",
7813
+ onChange: (e) => onChange?.(e.target.value),
7814
+ disabled,
7815
+ "aria-label": label,
7816
+ children: options.map((opt) => /* @__PURE__ */ jsx("option", { value: opt.value, disabled: opt.disabled, children: opt.label }, opt.value))
7817
+ }
7818
+ ) : /* @__PURE__ */ jsx(OptionsRow, { role: "radiogroup", "aria-label": label, children: options.map((opt) => /* @__PURE__ */ jsx(
7819
+ OptionButton,
7820
+ {
7821
+ type: "button",
7822
+ $active: value === opt.value,
7823
+ $mode: mode,
7824
+ disabled: opt.disabled || disabled,
7825
+ style: mode === "swatch" ? { color: opt.color ?? "#ccc" } : void 0,
7826
+ title: opt.label,
7827
+ "aria-label": opt.label,
7828
+ "aria-pressed": value === opt.value,
7829
+ onClick: () => onChange?.(opt.value),
7830
+ children: mode === "button" && opt.label
7831
+ },
7832
+ opt.value
7833
+ )) })
7834
+ ] })
7835
+ );
7836
+ VariantSelector.displayName = "VariantSelector";
7837
+ var variantSelectorModes = ["button", "swatch", "dropdown"];
7838
+ var Root34 = styled("div")(({ theme }) => ({
6984
7839
  borderBottom: `1px solid ${theme.palette.divider}`
6985
7840
  }));
6986
7841
  var Trigger2 = styled("button")(({ theme }) => ({
@@ -7028,7 +7883,7 @@ var PanelInner = styled("p")(({ theme }) => ({
7028
7883
  var FaqItem = forwardRef(
7029
7884
  ({ item, defaultOpen = false, ...props }, ref) => {
7030
7885
  const [open, setOpen] = useState(defaultOpen);
7031
- return /* @__PURE__ */ jsxs(Root25, { ref, ...props, children: [
7886
+ return /* @__PURE__ */ jsxs(Root34, { ref, ...props, children: [
7032
7887
  /* @__PURE__ */ jsxs(Trigger2, { type: "button", "aria-expanded": open, onClick: () => setOpen((prev) => !prev), children: [
7033
7888
  item.question,
7034
7889
  /* @__PURE__ */ jsx(ChevronIcon2, { $open: open, "aria-hidden": "true" })
@@ -7104,7 +7959,7 @@ var FeatureItem2 = forwardRef(
7104
7959
  }
7105
7960
  );
7106
7961
  FeatureItem2.displayName = "FeatureItem";
7107
- var Root26 = styled("div")({
7962
+ var Root35 = styled("div")({
7108
7963
  display: "flex",
7109
7964
  flexDirection: "column",
7110
7965
  alignItems: "center",
@@ -7152,7 +8007,7 @@ var Description5 = styled("p")(({ theme }) => ({
7152
8007
  maxWidth: "18rem"
7153
8008
  }));
7154
8009
  var ProcessStep = forwardRef(
7155
- ({ step, title, description, icon, ...props }, ref) => /* @__PURE__ */ jsxs(Root26, { ref, ...props, children: [
8010
+ ({ step, title, description, icon, ...props }, ref) => /* @__PURE__ */ jsxs(Root35, { ref, ...props, children: [
7156
8011
  /* @__PURE__ */ jsx(StepBadge, { "aria-hidden": "true", children: icon ? /* @__PURE__ */ jsx(IconWrapper2, { children: icon }) : /* @__PURE__ */ jsx(StepNumber, { children: step }) }),
7157
8012
  /* @__PURE__ */ jsx(Title3, { children: title }),
7158
8013
  description && /* @__PURE__ */ jsx(Description5, { children: description })
@@ -7338,7 +8193,7 @@ var Dot3 = styled("span", {
7338
8193
  }
7339
8194
  }
7340
8195
  }));
7341
- var Content2 = styled("div")({ flex: 1, minWidth: 0, paddingTop: "0.0625rem" });
8196
+ var Content4 = styled("div")({ flex: 1, minWidth: 0, paddingTop: "0.0625rem" });
7342
8197
  var TitleRow = styled("div")({
7343
8198
  display: "flex",
7344
8199
  alignItems: "baseline",
@@ -7383,7 +8238,7 @@ function TimelineItemComponent({
7383
8238
  const hasIcon = Boolean(item.icon);
7384
8239
  return /* @__PURE__ */ jsxs(ItemRow, { $compact: compact, $last: last, children: [
7385
8240
  /* @__PURE__ */ jsx(DotCol, { $last: last, children: /* @__PURE__ */ jsx(Dot3, { $status: status, $hasIcon: hasIcon, children: item.icon ?? /* @__PURE__ */ jsx(StatusIcon, { status }) }) }),
7386
- /* @__PURE__ */ jsxs(Content2, { children: [
8241
+ /* @__PURE__ */ jsxs(Content4, { children: [
7387
8242
  /* @__PURE__ */ jsxs(TitleRow, { children: [
7388
8243
  /* @__PURE__ */ jsx(Title4, { $compact: compact, children: item.title }),
7389
8244
  item.date && /* @__PURE__ */ jsx(Date2, { dateTime: item.date, children: item.date })
@@ -7414,7 +8269,7 @@ var timelineItemStatuses = [
7414
8269
  "pending",
7415
8270
  "error"
7416
8271
  ];
7417
- var Root27 = styled("div")({
8272
+ var Root36 = styled("div")({
7418
8273
  position: "relative",
7419
8274
  width: "100%",
7420
8275
  overflow: "hidden",
@@ -7524,7 +8379,7 @@ function Carousel({
7524
8379
  }, [prev, next]);
7525
8380
  if (!count) return null;
7526
8381
  return /* @__PURE__ */ jsxs("div", { className, children: [
7527
- /* @__PURE__ */ jsxs(Root27, { "aria-roledescription": "carousel", children: [
8382
+ /* @__PURE__ */ jsxs(Root36, { "aria-roledescription": "carousel", children: [
7528
8383
  /* @__PURE__ */ jsx(Track4, { $index: index, "aria-live": "polite", children: slides.map((slide, i) => /* @__PURE__ */ jsx(
7529
8384
  Slide,
7530
8385
  {
@@ -7908,7 +8763,7 @@ var Breadcrumbs = forwardRef(
7908
8763
  }) }) })
7909
8764
  );
7910
8765
  Breadcrumbs.displayName = "Breadcrumbs";
7911
- var sizeMap5 = {
8766
+ var sizeMap6 = {
7912
8767
  sm: { minWidth: "1.75rem", height: "1.75rem", fontSize: "0.75rem" },
7913
8768
  md: { minWidth: "2rem", height: "2rem", fontSize: "0.875rem" },
7914
8769
  lg: { minWidth: "2.5rem", height: "2.5rem", fontSize: "1rem" }
@@ -7937,7 +8792,7 @@ var StyledButton2 = styled("button")(({ theme, $isActive, $size }) => ({
7937
8792
  lineHeight: 1,
7938
8793
  padding: "0 0.25rem",
7939
8794
  transition: "background-color 150ms ease",
7940
- ...sizeMap5[$size],
8795
+ ...sizeMap6[$size],
7941
8796
  ...$isActive ? activeStyles(theme) : idleStyles(theme),
7942
8797
  "&:focus-visible": {
7943
8798
  outline: `3px solid ${theme.palette.primary.main}`,
@@ -7966,7 +8821,7 @@ var PaginationButton = forwardRef(
7966
8821
  )
7967
8822
  );
7968
8823
  PaginationButton.displayName = "PaginationButton";
7969
- var sizeMap6 = {
8824
+ var sizeMap7 = {
7970
8825
  sm: { minWidth: "1.75rem", height: "1.75rem", fontSize: "0.75rem" },
7971
8826
  md: { minWidth: "2rem", height: "2rem", fontSize: "0.875rem" },
7972
8827
  lg: { minWidth: "2.5rem", height: "2.5rem", fontSize: "1rem" }
@@ -7977,7 +8832,7 @@ var StyledEllipsis = styled("span")(({ theme, $size }) => ({
7977
8832
  justifyContent: "center",
7978
8833
  color: theme.palette.text.secondary,
7979
8834
  userSelect: "none",
7980
- ...sizeMap6[$size]
8835
+ ...sizeMap7[$size]
7981
8836
  }));
7982
8837
  var PaginationEllipsis = ({ size = "md" }) => /* @__PURE__ */ jsx(StyledEllipsis, { $size: size, "aria-hidden": "true", children: "\u2026" });
7983
8838
  PaginationEllipsis.displayName = "PaginationEllipsis";
@@ -8087,7 +8942,7 @@ var PaginationBar = ({
8087
8942
  ] });
8088
8943
  };
8089
8944
  PaginationBar.displayName = "PaginationBar";
8090
- var Root28 = styled("div", {
8945
+ var Root37 = styled("div", {
8091
8946
  shouldForwardProp: (p) => p !== "$variant"
8092
8947
  })(({ theme, $variant }) => ({
8093
8948
  width: "100%",
@@ -8197,7 +9052,7 @@ var Accordion = forwardRef(
8197
9052
  if (controlledKeys === void 0) setInternalKeys(next);
8198
9053
  onChange?.(next);
8199
9054
  };
8200
- return /* @__PURE__ */ jsx(Root28, { ref, $variant: variant, ...props, children: items.map((item) => {
9055
+ return /* @__PURE__ */ jsx(Root37, { ref, $variant: variant, ...props, children: items.map((item) => {
8201
9056
  const isOpen = openKeys.includes(item.key);
8202
9057
  const panelId = `accordion-panel-${item.key}`;
8203
9058
  const triggerId = `accordion-trigger-${item.key}`;
@@ -8226,6 +9081,74 @@ var Accordion = forwardRef(
8226
9081
  );
8227
9082
  Accordion.displayName = "Accordion";
8228
9083
  var accordionVariants = ["default", "bordered", "separated"];
9084
+ var SEVERITY_COLORS = {
9085
+ info: { bg: "rgba(25,118,210,0.08)", color: "#1565c0", border: "rgba(25,118,210,0.3)" },
9086
+ success: { bg: "rgba(34,197,94,0.1)", color: "#15803d", border: "rgba(34,197,94,0.35)" },
9087
+ warning: { bg: "rgba(245,158,11,0.1)", color: "#b45309", border: "rgba(245,158,11,0.35)" },
9088
+ error: { bg: "rgba(211,47,47,0.08)", color: "#c62828", border: "rgba(211,47,47,0.3)" }
9089
+ };
9090
+ var ICONS = {
9091
+ info: /* @__PURE__ */ jsx(InfoOutlinedIcon, { "aria-hidden": true, style: { fontSize: 20 } }),
9092
+ success: /* @__PURE__ */ jsx(CheckCircleOutlinedIcon, { "aria-hidden": true, style: { fontSize: 20 } }),
9093
+ warning: /* @__PURE__ */ jsx(WarningAmberOutlinedIcon, { "aria-hidden": true, style: { fontSize: 20 } }),
9094
+ error: /* @__PURE__ */ jsx(ErrorOutlineOutlinedIcon, { "aria-hidden": true, style: { fontSize: 20 } })
9095
+ };
9096
+ var Root38 = styled("div", {
9097
+ shouldForwardProp: (prop) => prop !== "$severity"
9098
+ })(({ theme, $severity }) => {
9099
+ const c = SEVERITY_COLORS[$severity];
9100
+ return {
9101
+ display: "flex",
9102
+ gap: "0.75rem",
9103
+ padding: "0.875rem 1rem",
9104
+ borderRadius: theme.shape.borderRadius,
9105
+ border: `1px solid ${c.border}`,
9106
+ backgroundColor: c.bg,
9107
+ color: c.color,
9108
+ fontFamily: theme.typography.fontFamily,
9109
+ fontSize: "0.9375rem"
9110
+ };
9111
+ });
9112
+ var IconSlot2 = styled("span")({
9113
+ flexShrink: 0,
9114
+ display: "flex",
9115
+ paddingTop: "0.0625rem"
9116
+ });
9117
+ var Body = styled("div")({ flex: 1 });
9118
+ var Title5 = styled("div")({
9119
+ fontWeight: 700,
9120
+ marginBottom: "0.25rem"
9121
+ });
9122
+ var CloseButton2 = styled("button")(({ theme }) => ({
9123
+ appearance: "none",
9124
+ border: "none",
9125
+ background: "transparent",
9126
+ cursor: "pointer",
9127
+ display: "flex",
9128
+ alignItems: "center",
9129
+ padding: "0.125rem",
9130
+ color: "inherit",
9131
+ opacity: 0.6,
9132
+ borderRadius: "0.25rem",
9133
+ flexShrink: 0,
9134
+ "&:hover": { opacity: 1 },
9135
+ "&:focus-visible": {
9136
+ outline: `3px solid ${theme.palette.primary.main}`,
9137
+ outlineOffset: "2px"
9138
+ }
9139
+ }));
9140
+ var Alert = forwardRef(
9141
+ ({ severity = "info", title, children, onClose, icon, ...props }, ref) => /* @__PURE__ */ jsxs(Root38, { ref, role: "alert", $severity: severity, ...props, children: [
9142
+ /* @__PURE__ */ jsx(IconSlot2, { children: icon ?? ICONS[severity] }),
9143
+ /* @__PURE__ */ jsxs(Body, { children: [
9144
+ title && /* @__PURE__ */ jsx(Title5, { children: title }),
9145
+ children
9146
+ ] }),
9147
+ onClose && /* @__PURE__ */ jsx(CloseButton2, { type: "button", onClick: onClose, "aria-label": "Zamknij", children: /* @__PURE__ */ jsx(CloseIcon, { "aria-hidden": true, style: { fontSize: 16 } }) })
9148
+ ] })
9149
+ );
9150
+ Alert.displayName = "Alert";
9151
+ var alertSeverities = ["info", "success", "warning", "error"];
8229
9152
  var fadeIn2 = keyframes$1`from{opacity:0;transform:translateY(0.5rem)}to{opacity:1;transform:translateY(0)}`;
8230
9153
  var fadeOut = keyframes$1`from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(0.5rem)}`;
8231
9154
  var POSITION_MAP = {
@@ -8465,6 +9388,44 @@ var ContextMenu = forwardRef(
8465
9388
  }
8466
9389
  );
8467
9390
  ContextMenu.displayName = "ContextMenu";
9391
+ var Root39 = styled("div")(({ theme }) => ({
9392
+ display: "flex",
9393
+ flexDirection: "column",
9394
+ alignItems: "center",
9395
+ justifyContent: "center",
9396
+ gap: "1rem",
9397
+ padding: "3rem 1.5rem",
9398
+ textAlign: "center",
9399
+ fontFamily: theme.typography.fontFamily
9400
+ }));
9401
+ var IconWrap3 = styled("div")(({ theme }) => ({
9402
+ color: theme.palette.text.disabled,
9403
+ display: "flex",
9404
+ "& svg": { fontSize: "3.5rem" }
9405
+ }));
9406
+ var Title6 = styled("h3")(({ theme }) => ({
9407
+ margin: 0,
9408
+ fontSize: "1.125rem",
9409
+ fontWeight: 700,
9410
+ color: theme.palette.text.primary
9411
+ }));
9412
+ var Description7 = styled("p")(({ theme }) => ({
9413
+ margin: 0,
9414
+ fontSize: "0.9375rem",
9415
+ color: theme.palette.text.secondary,
9416
+ maxWidth: "28rem"
9417
+ }));
9418
+ var EmptyState = forwardRef(
9419
+ ({ icon, title, description, action, ...props }, ref) => /* @__PURE__ */ jsxs(Root39, { ref, ...props, children: [
9420
+ /* @__PURE__ */ jsx(IconWrap3, { "aria-hidden": true, children: icon ?? /* @__PURE__ */ jsx(InboxOutlinedIcon, {}) }),
9421
+ /* @__PURE__ */ jsxs("div", { children: [
9422
+ /* @__PURE__ */ jsx(Title6, { children: title }),
9423
+ description && /* @__PURE__ */ jsx(Description7, { style: { marginTop: "0.5rem" }, children: description })
9424
+ ] }),
9425
+ action && /* @__PURE__ */ jsx("div", { children: action })
9426
+ ] })
9427
+ );
9428
+ EmptyState.displayName = "EmptyState";
8468
9429
  var PADDING = {
8469
9430
  sm: "0.5rem 0.75rem",
8470
9431
  md: "0.75rem 1rem",
@@ -8475,7 +9436,7 @@ var FONT_SIZE2 = {
8475
9436
  md: "0.9375rem",
8476
9437
  lg: "1rem"
8477
9438
  };
8478
- var Root29 = styled("ul", {
9439
+ var Root40 = styled("ul", {
8479
9440
  shouldForwardProp: (p) => p !== "$variant"
8480
9441
  })(({ theme, $variant }) => ({
8481
9442
  listStyle: "none",
@@ -8570,7 +9531,7 @@ var SuffixWrap = styled("span")({
8570
9531
  var List3 = forwardRef(
8571
9532
  ({ items, size = "md", variant = "default", dividers = true, ...props }, ref) => {
8572
9533
  const effectiveVariant = !dividers && variant === "default" ? "default" : variant;
8573
- return /* @__PURE__ */ jsx(Root29, { ref, $variant: effectiveVariant, role: "list", ...props, children: items.map((item) => /* @__PURE__ */ jsxs(
9534
+ return /* @__PURE__ */ jsx(Root40, { ref, $variant: effectiveVariant, role: "list", ...props, children: items.map((item) => /* @__PURE__ */ jsxs(
8574
9535
  Item2,
8575
9536
  {
8576
9537
  role: "listitem",
@@ -8609,7 +9570,7 @@ var speedDuration = {
8609
9570
  normal: "20s",
8610
9571
  fast: "10s"
8611
9572
  };
8612
- var Root30 = styled("div")({
9573
+ var Root41 = styled("div")({
8613
9574
  overflow: "hidden",
8614
9575
  width: "100%",
8615
9576
  userSelect: "none"
@@ -8640,7 +9601,7 @@ var Marquee = forwardRef(
8640
9601
  /* @__PURE__ */ jsx(ItemWrap, { $gap: gapValue, "aria-hidden": "false", children }),
8641
9602
  /* @__PURE__ */ jsx(ItemWrap, { $gap: gapValue, "aria-hidden": "true", children })
8642
9603
  ] });
8643
- return /* @__PURE__ */ jsx(Root30, { ref, ...props, children: /* @__PURE__ */ jsx(Track5, { $direction: direction, $speed: speed, $pauseOnHover: pauseOnHover, $gap: gapValue, children: content }) });
9604
+ return /* @__PURE__ */ jsx(Root41, { ref, ...props, children: /* @__PURE__ */ jsx(Track5, { $direction: direction, $speed: speed, $pauseOnHover: pauseOnHover, $gap: gapValue, children: content }) });
8644
9605
  }
8645
9606
  );
8646
9607
  Marquee.displayName = "Marquee";
@@ -8694,7 +9655,7 @@ var Header = styled("div")(({ theme }) => ({
8694
9655
  borderBottom: `1px solid ${theme.palette.divider}`,
8695
9656
  flexShrink: 0
8696
9657
  }));
8697
- var Title5 = styled("h2")(({ theme }) => ({
9658
+ var Title7 = styled("h2")(({ theme }) => ({
8698
9659
  margin: 0,
8699
9660
  fontFamily: theme.typography.fontFamily,
8700
9661
  fontSize: "1.125rem",
@@ -8702,7 +9663,7 @@ var Title5 = styled("h2")(({ theme }) => ({
8702
9663
  color: theme.palette.text.primary,
8703
9664
  lineHeight: 1.4
8704
9665
  }));
8705
- var CloseButton2 = styled("button")(({ theme }) => ({
9666
+ var CloseButton3 = styled("button")(({ theme }) => ({
8706
9667
  appearance: "none",
8707
9668
  border: "none",
8708
9669
  background: "none",
@@ -8725,14 +9686,14 @@ var CloseButton2 = styled("button")(({ theme }) => ({
8725
9686
  outlineOffset: "2px"
8726
9687
  }
8727
9688
  }));
8728
- var Body = styled("div")(({ theme }) => ({
9689
+ var Body2 = styled("div")(({ theme }) => ({
8729
9690
  padding: "1.5rem",
8730
9691
  overflowY: "auto",
8731
9692
  flex: 1,
8732
9693
  fontFamily: theme.typography.fontFamily,
8733
9694
  color: theme.palette.text.primary
8734
9695
  }));
8735
- var Footer3 = styled("div")(({ theme }) => ({
9696
+ var Footer4 = styled("div")(({ theme }) => ({
8736
9697
  padding: "1rem 1.5rem",
8737
9698
  borderTop: `1px solid ${theme.palette.divider}`,
8738
9699
  display: "flex",
@@ -8784,11 +9745,11 @@ function Modal({
8784
9745
  onClick: (e) => e.stopPropagation(),
8785
9746
  children: [
8786
9747
  (title || !hideCloseButton) && /* @__PURE__ */ jsxs(Header, { children: [
8787
- title ? /* @__PURE__ */ jsx(Title5, { id: "modal-title", children: title }) : /* @__PURE__ */ jsx("span", {}),
8788
- !hideCloseButton && /* @__PURE__ */ jsx(CloseButton2, { "aria-label": "Zamknij", onClick: onClose, children: /* @__PURE__ */ jsx(CloseIcon, { "aria-hidden": true, style: { fontSize: 16 } }) })
9748
+ title ? /* @__PURE__ */ jsx(Title7, { id: "modal-title", children: title }) : /* @__PURE__ */ jsx("span", {}),
9749
+ !hideCloseButton && /* @__PURE__ */ jsx(CloseButton3, { "aria-label": "Zamknij", onClick: onClose, children: /* @__PURE__ */ jsx(CloseIcon, { "aria-hidden": true, style: { fontSize: 16 } }) })
8789
9750
  ] }),
8790
- children && /* @__PURE__ */ jsx(Body, { children }),
8791
- footer && /* @__PURE__ */ jsx(Footer3, { children: footer })
9751
+ children && /* @__PURE__ */ jsx(Body2, { children }),
9752
+ footer && /* @__PURE__ */ jsx(Footer4, { children: footer })
8792
9753
  ]
8793
9754
  }
8794
9755
  ) }),
@@ -8796,7 +9757,7 @@ function Modal({
8796
9757
  );
8797
9758
  }
8798
9759
  var modalSizes = ["sm", "md", "lg", "xl", "full"];
8799
- var Root31 = styled("div")({ width: "100%" });
9760
+ var Root42 = styled("div")({ width: "100%" });
8800
9761
  var TabList = styled("div", {
8801
9762
  shouldForwardProp: (prop) => prop !== "$variant"
8802
9763
  })(({ theme, $variant }) => ({
@@ -8876,7 +9837,7 @@ var Tabs = forwardRef(
8876
9837
  onChange?.(key);
8877
9838
  };
8878
9839
  const activeTab = tabs.find((t) => t.key === activeKey);
8879
- return /* @__PURE__ */ jsxs(Root31, { ref, ...props, children: [
9840
+ return /* @__PURE__ */ jsxs(Root42, { ref, ...props, children: [
8880
9841
  /* @__PURE__ */ jsx(TabList, { role: "tablist", $variant: variant, children: tabs.map((tab) => /* @__PURE__ */ jsx(
8881
9842
  TabButton,
8882
9843
  {
@@ -8934,7 +9895,7 @@ var Header2 = styled("div")(({ theme }) => ({
8934
9895
  padding: "1rem 1.25rem",
8935
9896
  borderBottom: `1px solid ${theme.palette.divider}`
8936
9897
  }));
8937
- var Title6 = styled("h2")(({ theme }) => ({
9898
+ var Title8 = styled("h2")(({ theme }) => ({
8938
9899
  margin: 0,
8939
9900
  fontSize: "1.125rem",
8940
9901
  color: theme.palette.text.primary
@@ -8997,7 +9958,7 @@ var RemoveButton2 = styled("button")(({ theme }) => ({
8997
9958
  padding: 0,
8998
9959
  fontSize: "0.875rem"
8999
9960
  }));
9000
- var Footer4 = styled("div")(({ theme }) => ({
9961
+ var Footer5 = styled("div")(({ theme }) => ({
9001
9962
  display: "grid",
9002
9963
  gap: "1rem",
9003
9964
  marginTop: "auto",
@@ -9019,7 +9980,7 @@ var CartDrawer = forwardRef(
9019
9980
  ...props
9020
9981
  }, ref) => /* @__PURE__ */ jsx(Overlay3, { $open: open, children: /* @__PURE__ */ jsxs(Panel3, { ref, "aria-hidden": !open, "aria-label": title, ...props, children: [
9021
9982
  /* @__PURE__ */ jsxs(Header2, { children: [
9022
- /* @__PURE__ */ jsx(Title6, { children: title }),
9983
+ /* @__PURE__ */ jsx(Title8, { children: title }),
9023
9984
  /* @__PURE__ */ jsx(IconButton, { type: "button", "aria-label": closeLabel, onClick: onClose, children: "\xD7" })
9024
9985
  ] }),
9025
9986
  /* @__PURE__ */ jsx(Items, { children: items.map((item) => /* @__PURE__ */ jsxs(Item3, { children: [
@@ -9042,7 +10003,7 @@ var CartDrawer = forwardRef(
9042
10003
  ] })
9043
10004
  ] })
9044
10005
  ] }, item.id)) }),
9045
- /* @__PURE__ */ jsxs(Footer4, { children: [
10006
+ /* @__PURE__ */ jsxs(Footer5, { children: [
9046
10007
  /* @__PURE__ */ jsxs(Row4, { children: [
9047
10008
  /* @__PURE__ */ jsx("strong", { children: "Suma" }),
9048
10009
  /* @__PURE__ */ jsx("strong", { children: subtotal })
@@ -9052,7 +10013,7 @@ var CartDrawer = forwardRef(
9052
10013
  ] }) })
9053
10014
  );
9054
10015
  CartDrawer.displayName = "CartDrawer";
9055
- var Root32 = styled("aside")(({ theme }) => ({
10016
+ var Root43 = styled("aside")(({ theme }) => ({
9056
10017
  display: "grid",
9057
10018
  gap: "1.5rem",
9058
10019
  width: "100%",
@@ -9069,7 +10030,7 @@ var Header3 = styled("div")({
9069
10030
  justifyContent: "space-between",
9070
10031
  gap: "1rem"
9071
10032
  });
9072
- var Title7 = styled("h2")(({ theme }) => ({
10033
+ var Title9 = styled("h2")(({ theme }) => ({
9073
10034
  margin: 0,
9074
10035
  color: theme.palette.text.primary,
9075
10036
  fontSize: "1.125rem"
@@ -9087,7 +10048,7 @@ var Legend = styled("legend")({
9087
10048
  marginBottom: "0.75rem",
9088
10049
  fontWeight: 800
9089
10050
  });
9090
- var OptionLabel = styled("label")(({ theme }) => ({
10051
+ var OptionLabel2 = styled("label")(({ theme }) => ({
9091
10052
  display: "flex",
9092
10053
  alignItems: "center",
9093
10054
  justifyContent: "space-between",
@@ -9114,7 +10075,7 @@ var NumberInput2 = styled("input")(({ theme }) => ({
9114
10075
  fontFamily: theme.typography.fontFamily
9115
10076
  }));
9116
10077
  function renderOptions(options, selected, onToggle) {
9117
- return options.map((option) => /* @__PURE__ */ jsxs(OptionLabel, { children: [
10078
+ return options.map((option) => /* @__PURE__ */ jsxs(OptionLabel2, { children: [
9118
10079
  /* @__PURE__ */ jsxs(OptionText, { children: [
9119
10080
  /* @__PURE__ */ jsx(
9120
10081
  "input",
@@ -9144,9 +10105,9 @@ var FilterSidebar = forwardRef(
9144
10105
  onPriceRangeChange,
9145
10106
  onClear,
9146
10107
  ...props
9147
- }, ref) => /* @__PURE__ */ jsxs(Root32, { ref, "aria-label": "Filtry produkt\xF3w", ...props, children: [
10108
+ }, ref) => /* @__PURE__ */ jsxs(Root43, { ref, "aria-label": "Filtry produkt\xF3w", ...props, children: [
9148
10109
  /* @__PURE__ */ jsxs(Header3, { children: [
9149
- /* @__PURE__ */ jsx(Title7, { children: "Filtry" }),
10110
+ /* @__PURE__ */ jsx(Title9, { children: "Filtry" }),
9150
10111
  onClear && /* @__PURE__ */ jsx(Button, { variant: "ghost", size: "sm", onClick: onClear, children: "Wyczy\u015B\u0107" })
9151
10112
  ] }),
9152
10113
  priceRange && /* @__PURE__ */ jsxs(Group, { children: [
@@ -9187,8 +10148,8 @@ var FilterSidebar = forwardRef(
9187
10148
  ] })
9188
10149
  );
9189
10150
  FilterSidebar.displayName = "FilterSidebar";
9190
- var Root33 = styled(Card)({ display: "grid", gap: "1rem" });
9191
- var Title8 = styled("h2")(({ theme }) => ({
10151
+ var Root44 = styled(Card)({ display: "grid", gap: "1rem" });
10152
+ var Title10 = styled("h2")(({ theme }) => ({
9192
10153
  margin: 0,
9193
10154
  fontFamily: theme.typography.fontFamily,
9194
10155
  fontSize: "1.125rem",
@@ -9287,8 +10248,8 @@ var OrderSummary = forwardRef(
9287
10248
  ctaLabel = "Przejd\u017A do kasy",
9288
10249
  onCheckout,
9289
10250
  ...props
9290
- }, ref) => /* @__PURE__ */ jsxs(Root33, { ref, variant: "default", padding: "lg", rounded: "lg", ...props, children: [
9291
- /* @__PURE__ */ jsx(Title8, { children: title }),
10251
+ }, ref) => /* @__PURE__ */ jsxs(Root44, { ref, variant: "default", padding: "lg", rounded: "lg", ...props, children: [
10252
+ /* @__PURE__ */ jsx(Title10, { children: title }),
9292
10253
  items.length > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
9293
10254
  /* @__PURE__ */ jsx(SectionTitle, { children: itemsTitle }),
9294
10255
  /* @__PURE__ */ jsx(ItemList, { children: items.map((item) => /* @__PURE__ */ jsxs(Item4, { children: [
@@ -9339,6 +10300,207 @@ var OrderSummary = forwardRef(
9339
10300
  ] })
9340
10301
  );
9341
10302
  OrderSummary.displayName = "OrderSummary";
10303
+ var Root45 = styled("div")(({ theme }) => ({
10304
+ fontFamily: theme.typography.fontFamily
10305
+ }));
10306
+ var Grid2 = styled("div", {
10307
+ shouldForwardProp: (prop) => prop !== "$columns"
10308
+ })(({ theme, $columns }) => ({
10309
+ display: "grid",
10310
+ gridTemplateColumns: `repeat(1, 1fr)`,
10311
+ gap: "1.25rem",
10312
+ [theme.breakpoints.up("sm")]: {
10313
+ gridTemplateColumns: `repeat(${Math.min($columns, 2)}, 1fr)`
10314
+ },
10315
+ [theme.breakpoints.up("md")]: {
10316
+ gridTemplateColumns: `repeat(${Math.min($columns, 3)}, 1fr)`
10317
+ },
10318
+ [theme.breakpoints.up("lg")]: {
10319
+ gridTemplateColumns: `repeat(${Math.min($columns, 4)}, 1fr)`
10320
+ }
10321
+ }));
10322
+ var ScrollTrack = styled("div")({
10323
+ display: "flex",
10324
+ gap: "1.25rem",
10325
+ overflowX: "auto",
10326
+ paddingBottom: "0.5rem",
10327
+ scrollSnapType: "x mandatory",
10328
+ "&::-webkit-scrollbar": { height: "4px" },
10329
+ "&::-webkit-scrollbar-track": { background: "transparent" },
10330
+ "&::-webkit-scrollbar-thumb": { borderRadius: "9999px", background: "rgba(0,0,0,0.2)" },
10331
+ "& > *": {
10332
+ flexShrink: 0,
10333
+ scrollSnapAlign: "start",
10334
+ width: "clamp(220px, 28vw, 280px)"
10335
+ }
10336
+ });
10337
+ var RelatedProducts = forwardRef(
10338
+ ({ products, title = "Podobne produkty", layout = "grid", columns = 4, ...props }, ref) => /* @__PURE__ */ jsxs(Root45, { ref, ...props, children: [
10339
+ /* @__PURE__ */ jsx(SectionHeading, { title, align: "left", style: { marginBottom: "1.5rem" } }),
10340
+ layout === "scroll" ? /* @__PURE__ */ jsx(ScrollTrack, { children: products.map((product, i) => /* @__PURE__ */ jsx(ProductCard, { ...product }, product.name + i)) }) : /* @__PURE__ */ jsx(Grid2, { $columns: columns, children: products.map((product, i) => /* @__PURE__ */ jsx(ProductCard, { ...product }, product.name + i)) })
10341
+ ] })
10342
+ );
10343
+ RelatedProducts.displayName = "RelatedProducts";
10344
+ var relatedProductsLayouts = ["grid", "scroll"];
10345
+ var Root46 = styled("div")(({ theme }) => ({
10346
+ fontFamily: theme.typography.fontFamily
10347
+ }));
10348
+ var Summary = styled("div")(({ theme }) => ({
10349
+ display: "flex",
10350
+ alignItems: "center",
10351
+ gap: "2rem",
10352
+ flexWrap: "wrap",
10353
+ padding: "1.5rem",
10354
+ backgroundColor: theme.palette.action.hover,
10355
+ borderRadius: theme.shape.borderRadius,
10356
+ marginBottom: "2rem"
10357
+ }));
10358
+ var AverageBlock = styled("div")({
10359
+ display: "flex",
10360
+ flexDirection: "column",
10361
+ alignItems: "center",
10362
+ gap: "0.25rem"
10363
+ });
10364
+ var AverageScore = styled("span")(({ theme }) => ({
10365
+ fontSize: "3rem",
10366
+ fontWeight: 800,
10367
+ lineHeight: 1,
10368
+ color: theme.palette.text.primary
10369
+ }));
10370
+ var Distribution = styled("div")({ flex: 1, display: "flex", flexDirection: "column", gap: "0.375rem" });
10371
+ var DistRow = styled("div")({ display: "flex", alignItems: "center", gap: "0.75rem" });
10372
+ var DistLabel = styled("span")(({ theme }) => ({
10373
+ fontSize: "0.8125rem",
10374
+ color: theme.palette.text.secondary,
10375
+ width: "1.5rem",
10376
+ textAlign: "right"
10377
+ }));
10378
+ var DistBar = styled("div")(({ theme }) => ({
10379
+ flex: 1,
10380
+ height: "0.5rem",
10381
+ borderRadius: "9999px",
10382
+ backgroundColor: theme.palette.divider,
10383
+ overflow: "hidden"
10384
+ }));
10385
+ var DistFill = styled("div", {
10386
+ shouldForwardProp: (prop) => prop !== "$pct"
10387
+ })(({ $pct }) => ({
10388
+ height: "100%",
10389
+ width: `${$pct}%`,
10390
+ backgroundColor: "#f59e0b",
10391
+ borderRadius: "9999px",
10392
+ transition: "width 400ms ease"
10393
+ }));
10394
+ var ReviewList = styled("div")({
10395
+ display: "flex",
10396
+ flexDirection: "column",
10397
+ gap: "1.5rem"
10398
+ });
10399
+ var ReviewCard = styled("div")(({ theme }) => ({
10400
+ padding: "1.25rem",
10401
+ border: `1px solid ${theme.palette.divider}`,
10402
+ borderRadius: theme.shape.borderRadius,
10403
+ display: "flex",
10404
+ flexDirection: "column",
10405
+ gap: "0.75rem"
10406
+ }));
10407
+ var ReviewHeader = styled("div")({
10408
+ display: "flex",
10409
+ alignItems: "flex-start",
10410
+ gap: "0.875rem"
10411
+ });
10412
+ var AuthorInfo2 = styled("div")({ flex: 1 });
10413
+ var AuthorName2 = styled("div")(({ theme }) => ({
10414
+ display: "flex",
10415
+ alignItems: "center",
10416
+ gap: "0.375rem",
10417
+ fontSize: "0.9375rem",
10418
+ fontWeight: 700,
10419
+ color: theme.palette.text.primary
10420
+ }));
10421
+ var ReviewDate = styled("div")(({ theme }) => ({
10422
+ fontSize: "0.8125rem",
10423
+ color: theme.palette.text.secondary,
10424
+ marginTop: "0.125rem"
10425
+ }));
10426
+ var ReviewTitle = styled("div")(({ theme }) => ({
10427
+ fontSize: "0.9375rem",
10428
+ fontWeight: 700,
10429
+ color: theme.palette.text.primary
10430
+ }));
10431
+ var ReviewContent = styled("p")(({ theme }) => ({
10432
+ margin: 0,
10433
+ fontSize: "0.9375rem",
10434
+ color: theme.palette.text.secondary,
10435
+ lineHeight: 1.6
10436
+ }));
10437
+ var HelpfulRow = styled("div")(({ theme }) => ({
10438
+ display: "flex",
10439
+ alignItems: "center",
10440
+ gap: "0.375rem",
10441
+ fontSize: "0.8125rem",
10442
+ color: theme.palette.text.secondary
10443
+ }));
10444
+ function ReviewItem({ review }) {
10445
+ return /* @__PURE__ */ jsxs(ReviewCard, { children: [
10446
+ /* @__PURE__ */ jsxs(ReviewHeader, { children: [
10447
+ /* @__PURE__ */ jsx(
10448
+ Avatar,
10449
+ {
10450
+ initials: review.author.slice(0, 2).toUpperCase(),
10451
+ size: "sm"
10452
+ }
10453
+ ),
10454
+ /* @__PURE__ */ jsxs(AuthorInfo2, { children: [
10455
+ /* @__PURE__ */ jsxs(AuthorName2, { children: [
10456
+ review.author,
10457
+ review.verified && /* @__PURE__ */ jsx(VerifiedIcon, { "aria-label": "Zweryfikowany zakup", style: { fontSize: 14, color: "#16a34a" } })
10458
+ ] }),
10459
+ /* @__PURE__ */ jsx(ReviewDate, { children: review.date })
10460
+ ] }),
10461
+ /* @__PURE__ */ jsx(Rating, { value: review.rating, size: "sm", readonly: true })
10462
+ ] }),
10463
+ review.title && /* @__PURE__ */ jsx(ReviewTitle, { children: review.title }),
10464
+ /* @__PURE__ */ jsx(ReviewContent, { children: review.content }),
10465
+ review.helpfulCount !== void 0 && /* @__PURE__ */ jsxs(HelpfulRow, { children: [
10466
+ /* @__PURE__ */ jsx(ThumbUpOutlinedIcon, { "aria-hidden": true, style: { fontSize: 14 } }),
10467
+ review.helpfulCount,
10468
+ " os\xF3b uzna\u0142o t\u0119 recenzj\u0119 za pomocn\u0105"
10469
+ ] })
10470
+ ] });
10471
+ }
10472
+ var ReviewSection = forwardRef(
10473
+ ({ reviews, averageRating, totalReviews, title = "Opinie klient\xF3w", ratingDistribution, ...props }, ref) => {
10474
+ const totalDist = ratingDistribution ? Object.values(ratingDistribution).reduce((a, b) => a + b, 0) : 0;
10475
+ return /* @__PURE__ */ jsxs(Root46, { ref, ...props, children: [
10476
+ /* @__PURE__ */ jsx(SectionHeading, { title, align: "left", style: { marginBottom: "1.5rem" } }),
10477
+ (averageRating !== void 0 || ratingDistribution) && /* @__PURE__ */ jsxs(Summary, { children: [
10478
+ averageRating !== void 0 && /* @__PURE__ */ jsxs(AverageBlock, { children: [
10479
+ /* @__PURE__ */ jsx(AverageScore, { children: averageRating.toFixed(1) }),
10480
+ /* @__PURE__ */ jsx(Rating, { value: averageRating, size: "sm", readonly: true }),
10481
+ totalReviews !== void 0 && /* @__PURE__ */ jsxs("span", { style: { fontSize: "0.8125rem", marginTop: "0.25rem" }, children: [
10482
+ totalReviews,
10483
+ " opinii"
10484
+ ] })
10485
+ ] }),
10486
+ ratingDistribution && /* @__PURE__ */ jsx(Distribution, { children: [5, 4, 3, 2, 1].map((star) => {
10487
+ const count = ratingDistribution[star] ?? 0;
10488
+ const pct2 = totalDist > 0 ? count / totalDist * 100 : 0;
10489
+ return /* @__PURE__ */ jsxs(DistRow, { children: [
10490
+ /* @__PURE__ */ jsxs(DistLabel, { children: [
10491
+ star,
10492
+ "\u2605"
10493
+ ] }),
10494
+ /* @__PURE__ */ jsx(DistBar, { children: /* @__PURE__ */ jsx(DistFill, { $pct: pct2 }) }),
10495
+ /* @__PURE__ */ jsx(DistLabel, { style: { textAlign: "left" }, children: count })
10496
+ ] }, star);
10497
+ }) })
10498
+ ] }),
10499
+ /* @__PURE__ */ jsx(ReviewList, { children: reviews.map((review) => /* @__PURE__ */ jsx(ReviewItem, { review }, review.id)) })
10500
+ ] });
10501
+ }
10502
+ );
10503
+ ReviewSection.displayName = "ReviewSection";
9342
10504
  var List4 = styled("div")(({ $hasHeading }) => ({
9343
10505
  marginTop: $hasHeading ? "2.5rem" : 0
9344
10506
  }));
@@ -9367,7 +10529,7 @@ var FaqSection = forwardRef(
9367
10529
  }
9368
10530
  );
9369
10531
  FaqSection.displayName = "FaqSection";
9370
- var Grid2 = styled("div", {
10532
+ var Grid3 = styled("div", {
9371
10533
  shouldForwardProp: (prop) => !["$columns", "$hasHeading", "$iconLeft"].includes(prop)
9372
10534
  })(({ theme, $columns, $hasHeading, $iconLeft }) => ({
9373
10535
  display: "grid",
@@ -9396,7 +10558,7 @@ var FeatureGrid = forwardRef(
9396
10558
  const hasHeading = Boolean(title || description);
9397
10559
  return /* @__PURE__ */ jsx(Section, { ref, ...rest, children: /* @__PURE__ */ jsxs(Container, { maxWidth, children: [
9398
10560
  hasHeading && /* @__PURE__ */ jsx(SectionHeading, { title: title ?? "", description, align: headingAlign }),
9399
- /* @__PURE__ */ jsx(Grid2, { $columns: columns, $hasHeading: hasHeading, $iconLeft: itemLayout === "icon-left", children: features.map((feature, index) => /* @__PURE__ */ jsx(
10561
+ /* @__PURE__ */ jsx(Grid3, { $columns: columns, $hasHeading: hasHeading, $iconLeft: itemLayout === "icon-left", children: features.map((feature, index) => /* @__PURE__ */ jsx(
9400
10562
  FeatureItem2,
9401
10563
  {
9402
10564
  feature,
@@ -9410,7 +10572,7 @@ var FeatureGrid = forwardRef(
9410
10572
  );
9411
10573
  FeatureGrid.displayName = "FeatureGrid";
9412
10574
  var featureGridColumns = [2, 3, 4];
9413
- var Grid3 = styled("div", {
10575
+ var Grid4 = styled("div", {
9414
10576
  shouldForwardProp: (prop) => !["$columns", "$hasHeading"].includes(prop)
9415
10577
  })(({ theme, $columns, $hasHeading }) => ({
9416
10578
  display: "grid",
@@ -9442,7 +10604,7 @@ var LogoCloud = forwardRef(
9442
10604
  return /* @__PURE__ */ jsx(Section, { ref, ...rest, children: /* @__PURE__ */ jsxs(Container, { maxWidth, children: [
9443
10605
  hasHeading && title && /* @__PURE__ */ jsx(SectionHeading, { title, description, align: headingAlign }),
9444
10606
  hasHeading && !title && description && /* @__PURE__ */ jsx(SectionHeading, { title: description, align: headingAlign, as: "h2" }),
9445
- /* @__PURE__ */ jsx(Grid3, { $columns: columns, $hasHeading: hasHeading, children: logos.map((logo) => {
10607
+ /* @__PURE__ */ jsx(Grid4, { $columns: columns, $hasHeading: hasHeading, children: logos.map((logo) => {
9446
10608
  const key = `${logo.name}-${logo.href ?? logo.logoUrl ?? "text"}`;
9447
10609
  return /* @__PURE__ */ jsx(
9448
10610
  LogoTile,
@@ -9592,12 +10754,12 @@ var Section2 = styled("section")(({ theme }) => ({
9592
10754
  padding: "5rem 1rem",
9593
10755
  backgroundColor: theme.palette.background.default
9594
10756
  }));
9595
- var Inner = styled("div")({
10757
+ var Inner2 = styled("div")({
9596
10758
  maxWidth: "80rem",
9597
10759
  marginLeft: "auto",
9598
10760
  marginRight: "auto"
9599
10761
  });
9600
- var Grid4 = styled("div")(({ theme }) => ({
10762
+ var Grid5 = styled("div")(({ theme }) => ({
9601
10763
  marginTop: "3rem",
9602
10764
  display: "grid",
9603
10765
  gridTemplateColumns: "1fr",
@@ -9610,16 +10772,16 @@ var Grid4 = styled("div")(({ theme }) => ({
9610
10772
  }
9611
10773
  }));
9612
10774
  function PricingSection({ title, description, plans, ...props }) {
9613
- return /* @__PURE__ */ jsx(Section2, { ...props, children: /* @__PURE__ */ jsxs(Inner, { children: [
10775
+ return /* @__PURE__ */ jsx(Section2, { ...props, children: /* @__PURE__ */ jsxs(Inner2, { children: [
9614
10776
  (title || description) && /* @__PURE__ */ jsx(SectionHeading, { title: title ?? "", description, align: "center" }),
9615
- /* @__PURE__ */ jsx(Grid4, { children: plans.map((plan, i) => /* @__PURE__ */ jsx(PricingCard, { ...plan }, i)) })
10777
+ /* @__PURE__ */ jsx(Grid5, { children: plans.map((plan, i) => /* @__PURE__ */ jsx(PricingCard, { ...plan }, i)) })
9616
10778
  ] }) });
9617
10779
  }
9618
10780
  var Section3 = styled("section")(({ theme }) => ({
9619
10781
  padding: "5rem 1rem",
9620
10782
  backgroundColor: theme.palette.background.default
9621
10783
  }));
9622
- var Inner2 = styled("div")({
10784
+ var Inner3 = styled("div")({
9623
10785
  maxWidth: "80rem",
9624
10786
  marginLeft: "auto",
9625
10787
  marginRight: "auto"
@@ -9657,7 +10819,7 @@ function ArrowIcon() {
9657
10819
  return /* @__PURE__ */ jsx(ArrowForwardIcon, { "aria-hidden": "true", style: { fontSize: 24 } });
9658
10820
  }
9659
10821
  function ProcessSection({ title, description, steps, ...props }) {
9660
- return /* @__PURE__ */ jsx(Section3, { ...props, children: /* @__PURE__ */ jsxs(Inner2, { children: [
10822
+ return /* @__PURE__ */ jsx(Section3, { ...props, children: /* @__PURE__ */ jsxs(Inner3, { children: [
9661
10823
  (title || description) && /* @__PURE__ */ jsx(SectionHeading, { title: title ?? "", description, align: "center" }),
9662
10824
  /* @__PURE__ */ jsx(StepsRow, { children: steps.map((step, i) => /* @__PURE__ */ jsxs(Fragment$1, { children: [
9663
10825
  /* @__PURE__ */ jsx(StepWrapper, { children: /* @__PURE__ */ jsx(
@@ -9673,7 +10835,7 @@ function ProcessSection({ title, description, steps, ...props }) {
9673
10835
  ] }, i)) })
9674
10836
  ] }) });
9675
10837
  }
9676
- var Grid5 = styled("div", {
10838
+ var Grid6 = styled("div", {
9677
10839
  shouldForwardProp: (prop) => !["$columns", "$hasHeading"].includes(prop)
9678
10840
  })(({ theme, $columns, $hasHeading }) => ({
9679
10841
  display: "grid",
@@ -9702,7 +10864,7 @@ var StatsSection = forwardRef(
9702
10864
  const hasHeading = Boolean(title || description);
9703
10865
  return /* @__PURE__ */ jsx(Section, { ref, ...rest, children: /* @__PURE__ */ jsxs(Container, { maxWidth, children: [
9704
10866
  hasHeading && /* @__PURE__ */ jsx(SectionHeading, { title: title ?? "", description, align: headingAlign }),
9705
- /* @__PURE__ */ jsx(Grid5, { $columns: columns, $hasHeading: hasHeading, children: stats.map((stat, index) => /* @__PURE__ */ jsx(
10867
+ /* @__PURE__ */ jsx(Grid6, { $columns: columns, $hasHeading: hasHeading, children: stats.map((stat, index) => /* @__PURE__ */ jsx(
9706
10868
  StatCard,
9707
10869
  {
9708
10870
  stat,
@@ -9716,7 +10878,7 @@ var StatsSection = forwardRef(
9716
10878
  );
9717
10879
  StatsSection.displayName = "StatsSection";
9718
10880
  var statsSectionColumns = [2, 3, 4];
9719
- var Grid6 = styled("div", {
10881
+ var Grid7 = styled("div", {
9720
10882
  shouldForwardProp: (prop) => !["$columns", "$hasHeading"].includes(prop)
9721
10883
  })(({ theme, $columns, $hasHeading }) => ({
9722
10884
  display: "grid",
@@ -9745,7 +10907,7 @@ var TeamSection = forwardRef(
9745
10907
  return /* @__PURE__ */ jsx(Section, { ref, ...rest, children: /* @__PURE__ */ jsxs(Container, { maxWidth, children: [
9746
10908
  hasHeading && title && /* @__PURE__ */ jsx(SectionHeading, { title, description, align: headingAlign }),
9747
10909
  hasHeading && !title && description && /* @__PURE__ */ jsx(SectionHeading, { title: description, align: headingAlign, as: "h2" }),
9748
- /* @__PURE__ */ jsx(Grid6, { $columns: columns, $hasHeading: hasHeading, children: members.map((member) => /* @__PURE__ */ jsx(
10910
+ /* @__PURE__ */ jsx(Grid7, { $columns: columns, $hasHeading: hasHeading, children: members.map((member) => /* @__PURE__ */ jsx(
9749
10911
  TeamMemberCard,
9750
10912
  {
9751
10913
  member,
@@ -9758,7 +10920,7 @@ var TeamSection = forwardRef(
9758
10920
  );
9759
10921
  TeamSection.displayName = "TeamSection";
9760
10922
  var teamSectionColumns = [2, 3, 4];
9761
- var Grid7 = styled("div", {
10923
+ var Grid8 = styled("div", {
9762
10924
  shouldForwardProp: (prop) => !["$columns", "$hasHeading"].includes(prop)
9763
10925
  })(({ theme, $columns, $hasHeading }) => ({
9764
10926
  display: "grid",
@@ -9786,7 +10948,7 @@ var TestimonialsSection = forwardRef(
9786
10948
  const hasHeading = Boolean(title || description);
9787
10949
  return /* @__PURE__ */ jsx(Section, { ref, ...rest, children: /* @__PURE__ */ jsxs(Container, { maxWidth, children: [
9788
10950
  hasHeading && /* @__PURE__ */ jsx(SectionHeading, { title: title ?? "", description, align: headingAlign }),
9789
- /* @__PURE__ */ jsx(Grid7, { $columns: columns, $hasHeading: hasHeading, children: testimonials.map((testimonial, index) => /* @__PURE__ */ jsx(
10951
+ /* @__PURE__ */ jsx(Grid8, { $columns: columns, $hasHeading: hasHeading, children: testimonials.map((testimonial, index) => /* @__PURE__ */ jsx(
9790
10952
  TestimonialCard,
9791
10953
  {
9792
10954
  testimonial,
@@ -9871,7 +11033,7 @@ var ResultsScroll = styled("div")({
9871
11033
  flex: 1,
9872
11034
  padding: "0.375rem 0"
9873
11035
  });
9874
- var GroupLabel = styled("div")(({ theme }) => ({
11036
+ var GroupLabel3 = styled("div")(({ theme }) => ({
9875
11037
  padding: "0.5rem 1rem 0.25rem",
9876
11038
  fontFamily: theme.typography.fontFamily,
9877
11039
  fontSize: "0.75rem",
@@ -9939,14 +11101,14 @@ var Kbd = styled("kbd")(({ theme }) => ({
9939
11101
  backgroundColor: theme.palette.action.hover,
9940
11102
  lineHeight: 1.6
9941
11103
  }));
9942
- var EmptyState = styled("div")(({ theme }) => ({
11104
+ var EmptyState2 = styled("div")(({ theme }) => ({
9943
11105
  padding: "2.5rem 1rem",
9944
11106
  textAlign: "center",
9945
11107
  fontFamily: theme.typography.fontFamily,
9946
11108
  fontSize: "0.9375rem",
9947
11109
  color: theme.palette.text.secondary
9948
11110
  }));
9949
- var Footer5 = styled("div")(({ theme }) => ({
11111
+ var Footer6 = styled("div")(({ theme }) => ({
9950
11112
  display: "flex",
9951
11113
  gap: "1.25rem",
9952
11114
  padding: "0.5rem 1rem",
@@ -10073,8 +11235,8 @@ function CommandPalette({
10073
11235
  ),
10074
11236
  /* @__PURE__ */ jsx(KbdHint, { children: "esc" })
10075
11237
  ] }),
10076
- /* @__PURE__ */ jsx(ResultsScroll, { id: `${id}-listbox`, role: "listbox", "aria-label": "Wyniki", children: flat.length === 0 ? /* @__PURE__ */ jsx(EmptyState, { children: emptyLabel }) : filtered.map((group) => /* @__PURE__ */ jsxs("div", { role: "group", "aria-labelledby": `${id}-group-${group.id}`, children: [
10077
- /* @__PURE__ */ jsx(GroupLabel, { id: `${id}-group-${group.id}`, children: group.label }),
11238
+ /* @__PURE__ */ jsx(ResultsScroll, { id: `${id}-listbox`, role: "listbox", "aria-label": "Wyniki", children: flat.length === 0 ? /* @__PURE__ */ jsx(EmptyState2, { children: emptyLabel }) : filtered.map((group) => /* @__PURE__ */ jsxs("div", { role: "group", "aria-labelledby": `${id}-group-${group.id}`, children: [
11239
+ /* @__PURE__ */ jsx(GroupLabel3, { id: `${id}-group-${group.id}`, children: group.label }),
10078
11240
  group.items.map((item) => {
10079
11241
  const idx = globalIndex++;
10080
11242
  const isActive = idx === activeIndex;
@@ -10101,7 +11263,7 @@ function CommandPalette({
10101
11263
  );
10102
11264
  })
10103
11265
  ] }, group.id)) }),
10104
- /* @__PURE__ */ jsxs(Footer5, { id: `${id}-hint`, "aria-hidden": "true", children: [
11266
+ /* @__PURE__ */ jsxs(Footer6, { id: `${id}-hint`, "aria-hidden": "true", children: [
10105
11267
  /* @__PURE__ */ jsxs(FooterHint, { children: [
10106
11268
  /* @__PURE__ */ jsx(Kbd, { children: "\u2191" }),
10107
11269
  /* @__PURE__ */ jsx(Kbd, { children: "\u2193" }),
@@ -10160,7 +11322,7 @@ var Bar2 = styled("div")(({ theme }) => ({
10160
11322
  boxShadow: "0 -4px 24px rgba(0,0,0,0.12)",
10161
11323
  animation: `${slideUp2} 300ms cubic-bezier(0.16, 1, 0.3, 1)`
10162
11324
  }));
10163
- var Inner3 = styled("div")({
11325
+ var Inner4 = styled("div")({
10164
11326
  maxWidth: "72rem",
10165
11327
  margin: "0 auto",
10166
11328
  padding: "1.25rem 1.5rem",
@@ -10175,7 +11337,7 @@ var TopRow = styled("div")({
10175
11337
  flexWrap: "wrap"
10176
11338
  });
10177
11339
  var TextBlock = styled("div")({ flex: 1, minWidth: "16rem" });
10178
- var Title9 = styled("p")(({ theme }) => ({
11340
+ var Title11 = styled("p")(({ theme }) => ({
10179
11341
  margin: "0 0 0.25rem",
10180
11342
  fontFamily: theme.typography.fontFamily,
10181
11343
  fontSize: "1rem",
@@ -10183,7 +11345,7 @@ var Title9 = styled("p")(({ theme }) => ({
10183
11345
  color: theme.palette.text.primary,
10184
11346
  lineHeight: 1.4
10185
11347
  }));
10186
- var Description7 = styled("p")(({ theme }) => ({
11348
+ var Description8 = styled("p")(({ theme }) => ({
10187
11349
  margin: 0,
10188
11350
  fontFamily: theme.typography.fontFamily,
10189
11351
  fontSize: "0.875rem",
@@ -10337,11 +11499,11 @@ function CookieConsent({
10337
11499
  onSave?.(prefs);
10338
11500
  };
10339
11501
  return createPortal(
10340
- /* @__PURE__ */ jsx(Bar2, { role: "region", "aria-label": "Zgoda na pliki cookie", "aria-live": "polite", children: /* @__PURE__ */ jsxs(Inner3, { children: [
11502
+ /* @__PURE__ */ jsx(Bar2, { role: "region", "aria-label": "Zgoda na pliki cookie", "aria-live": "polite", children: /* @__PURE__ */ jsxs(Inner4, { children: [
10341
11503
  /* @__PURE__ */ jsxs(TopRow, { children: [
10342
11504
  /* @__PURE__ */ jsxs(TextBlock, { children: [
10343
- /* @__PURE__ */ jsx(Title9, { children: title }),
10344
- /* @__PURE__ */ jsxs(Description7, { children: [
11505
+ /* @__PURE__ */ jsx(Title11, { children: title }),
11506
+ /* @__PURE__ */ jsxs(Description8, { children: [
10345
11507
  description,
10346
11508
  privacyPolicyLabel && privacyPolicyHref && /* @__PURE__ */ jsxs(Fragment, { children: [
10347
11509
  " ",
@@ -10391,12 +11553,12 @@ function CookieConsent({
10391
11553
  );
10392
11554
  }
10393
11555
  var defaultCookieCategories = DEFAULT_CATEGORIES;
10394
- var Root34 = styled("footer")(({ theme }) => ({
11556
+ var Root47 = styled("footer")(({ theme }) => ({
10395
11557
  width: "100%",
10396
11558
  backgroundColor: theme.palette.background.paper,
10397
11559
  borderTop: `1px solid ${theme.palette.divider}`
10398
11560
  }));
10399
- var Inner4 = styled("div")({
11561
+ var Inner5 = styled("div")({
10400
11562
  maxWidth: "72rem",
10401
11563
  margin: "0 auto",
10402
11564
  padding: "3rem 1.5rem 2rem"
@@ -10418,7 +11580,7 @@ var BrandBlock = styled("div")({
10418
11580
  flexDirection: "column",
10419
11581
  gap: "0.75rem"
10420
11582
  });
10421
- var Description8 = styled("p")(({ theme }) => ({
11583
+ var Description9 = styled("p")(({ theme }) => ({
10422
11584
  margin: 0,
10423
11585
  fontFamily: theme.typography.fontFamily,
10424
11586
  fontSize: "0.875rem",
@@ -10524,7 +11686,7 @@ var SOCIAL_ICONS = {
10524
11686
  /* @__PURE__ */ jsx("polygon", { fill: "white", points: "9.75 15.02 15.5 12 9.75 8.98 9.75 15.02" })
10525
11687
  ] })
10526
11688
  };
10527
- function Footer6({
11689
+ function Footer7({
10528
11690
  logo,
10529
11691
  description,
10530
11692
  columns = [],
@@ -10532,11 +11694,11 @@ function Footer6({
10532
11694
  copyright
10533
11695
  }) {
10534
11696
  const colCount = columns.length;
10535
- return /* @__PURE__ */ jsx(Root34, { children: /* @__PURE__ */ jsxs(Inner4, { children: [
11697
+ return /* @__PURE__ */ jsx(Root47, { children: /* @__PURE__ */ jsxs(Inner5, { children: [
10536
11698
  (logo || description || colCount > 0) && /* @__PURE__ */ jsxs(TopRow2, { style: { "--col-count": colCount }, children: [
10537
11699
  (logo || description) && /* @__PURE__ */ jsxs(BrandBlock, { children: [
10538
11700
  logo,
10539
- description && /* @__PURE__ */ jsx(Description8, { children: description })
11701
+ description && /* @__PURE__ */ jsx(Description9, { children: description })
10540
11702
  ] }),
10541
11703
  columns.map((col) => /* @__PURE__ */ jsxs(Column, { children: [
10542
11704
  /* @__PURE__ */ jsx(ColumnTitle, { children: col.title }),
@@ -10559,7 +11721,7 @@ function Footer6({
10559
11721
  ] })
10560
11722
  ] }) });
10561
11723
  }
10562
- var Root35 = styled("header", {
11724
+ var Root48 = styled("header", {
10563
11725
  shouldForwardProp: (p) => p !== "$sticky" && p !== "$variant"
10564
11726
  })(({ theme, $sticky, $variant }) => ({
10565
11727
  position: $sticky ? "sticky" : "relative",
@@ -10570,15 +11732,17 @@ var Root35 = styled("header", {
10570
11732
  borderBottom: $variant === "transparent" ? "none" : `1px solid ${theme.palette.divider}`,
10571
11733
  boxShadow: $variant === "transparent" ? "none" : "0 1px 4px rgba(0,0,0,0.08)"
10572
11734
  }));
10573
- var Inner5 = styled("div")({
10574
- maxWidth: "72rem",
11735
+ var Inner6 = styled("div", {
11736
+ shouldForwardProp: (p) => p !== "$maxWidth"
11737
+ })(({ $maxWidth }) => ({
11738
+ maxWidth: typeof $maxWidth === "number" ? `${$maxWidth}px` : $maxWidth,
10575
11739
  margin: "0 auto",
10576
11740
  padding: "0 1.5rem",
10577
11741
  height: "3.75rem",
10578
11742
  display: "flex",
10579
11743
  alignItems: "center",
10580
11744
  gap: "1.5rem"
10581
- });
11745
+ }));
10582
11746
  var LogoSlot = styled("div")({
10583
11747
  flexShrink: 0,
10584
11748
  display: "flex",
@@ -10674,11 +11838,12 @@ function Navbar({
10674
11838
  navItems = [],
10675
11839
  actions,
10676
11840
  sticky = false,
10677
- variant = "filled"
11841
+ variant = "filled",
11842
+ maxWidth = "72rem"
10678
11843
  }) {
10679
11844
  const [mobileOpen, setMobileOpen] = useState(false);
10680
- return /* @__PURE__ */ jsxs(Root35, { $sticky: sticky, $variant: variant, children: [
10681
- /* @__PURE__ */ jsxs(Inner5, { children: [
11845
+ return /* @__PURE__ */ jsxs(Root48, { $sticky: sticky, $variant: variant, children: [
11846
+ /* @__PURE__ */ jsxs(Inner6, { $maxWidth: maxWidth, children: [
10682
11847
  logo && /* @__PURE__ */ jsx(LogoSlot, { children: logo }),
10683
11848
  /* @__PURE__ */ jsx(Nav3, { "aria-label": "Nawigacja g\u0142\xF3wna", children: navItems.map((item) => /* @__PURE__ */ jsx(NavLink, { href: item.href, $active: !!item.active, children: item.label }, item.href)) }),
10684
11849
  (actions || navItems.length > 0) && /* @__PURE__ */ jsxs(RightSlot, { children: [
@@ -10802,42 +11967,7 @@ var MyThemeProvider = ({
10802
11967
  children
10803
11968
  ] });
10804
11969
  };
10805
- function EmotionRegistry({ children }) {
10806
- const [{ cache, flush }] = React.useState(() => {
10807
- const c = createCache({ key: "css", prepend: true });
10808
- c.compat = true;
10809
- const prevInsert = c.insert.bind(c);
10810
- let inserted = [];
10811
- c.insert = (...args) => {
10812
- const serialized = args[1];
10813
- if (c.inserted[serialized.name] === void 0) {
10814
- inserted.push(serialized.name);
10815
- }
10816
- return prevInsert(...args);
10817
- };
10818
- return {
10819
- cache: c,
10820
- flush: () => {
10821
- const s = inserted;
10822
- inserted = [];
10823
- return s;
10824
- }
10825
- };
10826
- });
10827
- useServerInsertedHTML(() => {
10828
- const names = flush();
10829
- if (!names.length) return null;
10830
- return /* @__PURE__ */ jsx(
10831
- "style",
10832
- {
10833
- "data-emotion": `${cache.key} ${names.join(" ")}`,
10834
- dangerouslySetInnerHTML: { __html: names.map((n) => cache.inserted[n]).join("") }
10835
- }
10836
- );
10837
- });
10838
- return /* @__PURE__ */ jsx(CacheProvider, { value: cache, children });
10839
- }
10840
11970
 
10841
- export { Accordion, Article, AspectRatio, Avatar, BackToTop, Badge, BaseInput, BaseSelectInput, Box2 as Box, Breadcrumbs, Button, Card, Carousel, CartDrawer, CheckboxInput, CommandPalette, CompareTool, Container, ContextMenu, CookieConsent, CountryFlag, CouponInput, DateTimePicker, EmailInput, EmotionRegistry, FaqItem, FaqSection, FeatureGrid, FeatureItem2 as FeatureItem, FileInput, FilterSidebar, Footer6 as Footer, Lightbox, List3 as List, LogoCloud, LogoTile, Main, Marquee, Modal, MultiSelectInput, MyThemeProvider, Navbar, NewsletterSection, NumberInput, OrderSummary, PaginationBar, PaginationButton, PaginationEllipsis, Partners, PasswordInput, PhoneInput, PostCard, PostCardImage, PostCardMeta, Price, PricingCard, PricingSection, ProcessSection, ProcessStep, ProductCard, ProductGallery, ProgressBar, ProgressCircle, PromoStrip, Prose, QuantitySelector, RangeSlider, Rating, SearchInput, Section, SectionHeading, SelectInput, Skeleton, Spinner3 as Spinner, StatCard, StatsSection, StockStatus, SwitchInput, Tabs, TeamMemberCard, TeamSection, TestimonialCard, TestimonialsSection, TextInput, TextareaInput, Timeline, VideoPlayer, accordionVariants, aspectRatioPresets, avatarColors, avatarSizes, backToTopPositions, backToTopVariants, badgeVariants, cardPaddings, cardRoundeds, cardVariants, createMyTheme, dateTimePickerModes, defaultCookieCategories, featureGridColumns, listSizes, listVariants, logoCloudColumns, logoCloudVariants, logoTileVariants, marqueeDirections, marqueeSpeeds, modalSizes, myTheme, newsletterLayouts, postCardVariants, priceSizes, progressBarSizes, progressBarVariants, progressCircleSizes, progressCircleVariants, promoStripVariants, rangeSliderSizes, sectionHeadingAligns, skeletonVariants, spinnerColors, spinnerSizes, spinnerVariants, statsSectionColumns, stockStatusValues, switchColors, tabsVariants, teamSectionColumns, testimonialsSectionColumns, themeDark, themeHighContrast, themeLight, timelineItemStatuses, timelineVariants };
11971
+ export { Accordion, Alert, Article, AspectRatio, Avatar, BackToTop, Badge2 as Badge, BaseInput, BaseSelectInput, Box2 as Box, Breadcrumbs, Button, Card, Carousel, CartButton, CartDrawer, CategoryCard, CheckboxInput, CommandPalette, CompareTool, Container, ContextMenu, CookieConsent, CountdownTimer, CountryFlag, CouponInput, DateTimePicker, EmailInput, EmptyState, FaqItem, FaqSection, FeatureGrid, FeatureItem2 as FeatureItem, FileInput, FilterSidebar, Footer7 as Footer, Lightbox, List3 as List, LogoCloud, LogoTile, Main, Marquee, Modal, MultiSelectInput, MyThemeProvider, Navbar, NewsletterSection, NumberInput, OrderSummary, PaginationBar, PaginationButton, PaginationEllipsis, Partners, PasswordInput, PaymentMethodSelector, PhoneInput, PostCard, PostCardImage, PostCardMeta, Price, PricingCard, PricingSection, ProcessSection, ProcessStep, ProductCard, ProductCardHorizontal, ProductGallery, ProgressBar, ProgressCircle, PromoStrip, Prose, QuantitySelector, RangeSlider, Rating, RelatedProducts, ReviewSection, SaleBadge, SearchInput, Section, SectionHeading, SelectInput, ShippingSelector, Skeleton, SortBar, Spinner3 as Spinner, StatCard, StatsSection, StockStatus, SwitchInput, Tabs, TeamMemberCard, TeamSection, TestimonialCard, TestimonialsSection, TextInput, TextareaInput, Timeline, VariantSelector, VideoPlayer, WishlistButton, accordionVariants, alertSeverities, aspectRatioPresets, avatarColors, avatarSizes, backToTopPositions, backToTopVariants, badgeVariants, cardPaddings, cardRoundeds, cardVariants, countdownTimerVariants, createMyTheme, dateTimePickerModes, defaultCookieCategories, featureGridColumns, listSizes, listVariants, logoCloudColumns, logoCloudVariants, logoTileVariants, marqueeDirections, marqueeSpeeds, modalSizes, myTheme, newsletterLayouts, postCardVariants, priceSizes, progressBarSizes, progressBarVariants, progressCircleSizes, progressCircleVariants, promoStripVariants, rangeSliderSizes, relatedProductsLayouts, saleBadgeVariants, sectionHeadingAligns, skeletonVariants, spinnerColors, spinnerSizes, spinnerVariants, statsSectionColumns, stockStatusValues, switchColors, tabsVariants, teamSectionColumns, testimonialsSectionColumns, themeDark, themeHighContrast, themeLight, timelineItemStatuses, timelineVariants, variantSelectorModes };
10842
11972
  //# sourceMappingURL=index.js.map
10843
11973
  //# sourceMappingURL=index.js.map