@szymonpiatek/designsystem 0.0.8 → 0.0.9

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,6 +1,6 @@
1
1
  import { forwardRef, useId, useRef, useEffect, useState, useCallback, useMemo, Fragment as Fragment$1 } from 'react';
2
2
  import { styled, alpha, keyframes, createTheme, useTheme, ThemeProvider } from '@mui/material/styles';
3
- import { CircularProgress, Container as Container$1, CssBaseline } from '@mui/material';
3
+ import { CircularProgress, CssBaseline } from '@mui/material';
4
4
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
5
5
  import ShoppingCartIcon from '@mui/icons-material/ShoppingCart';
6
6
  import FavoriteIcon from '@mui/icons-material/Favorite';
@@ -33,6 +33,8 @@ import CreditCardOutlinedIcon from '@mui/icons-material/CreditCardOutlined';
33
33
  import LocalShippingOutlinedIcon from '@mui/icons-material/LocalShippingOutlined';
34
34
  import GridViewIcon from '@mui/icons-material/GridView';
35
35
  import ViewListIcon from '@mui/icons-material/ViewList';
36
+ import ThumbUpOutlinedIcon from '@mui/icons-material/ThumbUpOutlined';
37
+ import ReplyIcon from '@mui/icons-material/Reply';
36
38
  import { createPortal } from 'react-dom';
37
39
  import KeyboardDoubleArrowLeftIcon from '@mui/icons-material/KeyboardDoubleArrowLeft';
38
40
  import KeyboardDoubleArrowRightIcon from '@mui/icons-material/KeyboardDoubleArrowRight';
@@ -41,7 +43,6 @@ import WarningAmberOutlinedIcon from '@mui/icons-material/WarningAmberOutlined';
41
43
  import ErrorOutlineOutlinedIcon from '@mui/icons-material/ErrorOutlineOutlined';
42
44
  import InboxOutlinedIcon from '@mui/icons-material/InboxOutlined';
43
45
  import VerifiedIcon from '@mui/icons-material/Verified';
44
- import ThumbUpOutlinedIcon from '@mui/icons-material/ThumbUpOutlined';
45
46
  import ArrowForwardIcon from '@mui/icons-material/ArrowForward';
46
47
  import MenuIcon from '@mui/icons-material/Menu';
47
48
 
@@ -3326,6 +3327,19 @@ var COUNTRIES = countries_default.countries.map((c) => {
3326
3327
  };
3327
3328
  }).sort((a, b) => a.country.localeCompare(b.country, "pl"));
3328
3329
  var DEFAULT_COUNTRY = COUNTRIES.find((c) => c.flagCode === "US") ?? COUNTRIES[0];
3330
+ var COUNTRIES_BY_DIAL_CODE_LENGTH = [...COUNTRIES].sort(
3331
+ (a, b) => b.dialCode.length - a.dialCode.length
3332
+ );
3333
+ var parsePhoneValue = (full) => {
3334
+ if (full.startsWith("+")) {
3335
+ for (const c of COUNTRIES_BY_DIAL_CODE_LENGTH) {
3336
+ if (full.startsWith(c.dialCode)) {
3337
+ return { country: c, localDigits: full.slice(c.dialCode.length).replace(/\D/g, "") };
3338
+ }
3339
+ }
3340
+ }
3341
+ return { country: DEFAULT_COUNTRY, localDigits: full.replace(/\D/g, "") };
3342
+ };
3329
3343
  var wrapperColors = (theme, error, focused) => ({
3330
3344
  borderColor: focused ? error ? theme.palette.error.main : theme.palette.primary.main : error ? theme.palette.error.main : theme.palette.divider,
3331
3345
  boxShadow: focused ? `0 0 0 3px ${error ? theme.palette.error.main : theme.palette.primary.main}33` : "none",
@@ -3513,13 +3527,24 @@ var PhoneInput = forwardRef(
3513
3527
  () => COUNTRIES.find((c) => c.flagCode === defaultCountry) ?? DEFAULT_COUNTRY,
3514
3528
  [defaultCountry]
3515
3529
  );
3516
- const [selectedCountry, setSelectedCountry] = useState(initialCountry);
3530
+ const [selectedCountry, setSelectedCountry] = useState(() => {
3531
+ if (defaultValue?.startsWith("+")) return parsePhoneValue(defaultValue).country;
3532
+ return initialCountry;
3533
+ });
3517
3534
  const [isOpen, setIsOpen] = useState(false);
3518
3535
  const [searchQuery, setSearchQuery] = useState("");
3519
3536
  const [focused, setFocused] = useState(false);
3520
3537
  const isControlled = value !== void 0;
3521
- const [internalValue, setInternalValue] = useState(defaultValue);
3522
- const phoneValue = isControlled ? value : internalValue;
3538
+ const [internalDigits, setInternalDigits] = useState(() => {
3539
+ if (defaultValue?.startsWith("+")) return parsePhoneValue(defaultValue).localDigits;
3540
+ return defaultValue ?? "";
3541
+ });
3542
+ const parsedControlled = useMemo(() => {
3543
+ if (!isControlled || typeof value !== "string" || !value.startsWith("+")) return null;
3544
+ return parsePhoneValue(value);
3545
+ }, [isControlled, value]);
3546
+ const activeCountry = parsedControlled?.country ?? selectedCountry;
3547
+ const inputDisplayValue = isControlled ? parsedControlled?.localDigits ?? (typeof value === "string" ? value : "") ?? "" : internalDigits;
3523
3548
  const rootRef = useRef(null);
3524
3549
  const searchRef = useRef(null);
3525
3550
  const filteredCountries = useMemo(() => {
@@ -3544,21 +3569,29 @@ var PhoneInput = forwardRef(
3544
3569
  setSelectedCountry(country);
3545
3570
  onCountryChange?.(country);
3546
3571
  close();
3547
- if (!isControlled) setInternalValue("");
3548
- onChange?.("", { country, dialCode: country.dialCode, fullNumber: country.dialCode });
3572
+ if (!isControlled) setInternalDigits("");
3573
+ onChange?.(country.dialCode, { country, dialCode: country.dialCode, fullNumber: country.dialCode });
3549
3574
  };
3550
3575
  const handlePhoneChange = (e) => {
3551
- const raw = e.target.value.replace(/\D/g, "");
3552
- const clamped = raw.slice(0, selectedCountry.maxLength);
3553
- if (!isControlled) setInternalValue(clamped);
3554
- onChange?.(clamped, {
3555
- country: selectedCountry,
3556
- dialCode: selectedCountry.dialCode,
3557
- fullNumber: selectedCountry.dialCode + clamped
3558
- });
3576
+ const raw = e.target.value;
3577
+ if (raw.startsWith("+")) {
3578
+ const { country, localDigits } = parsePhoneValue(raw);
3579
+ const clamped = localDigits.slice(0, country.maxLength);
3580
+ setSelectedCountry(country);
3581
+ onCountryChange?.(country);
3582
+ if (!isControlled) setInternalDigits(clamped);
3583
+ const full = country.dialCode + clamped;
3584
+ onChange?.(full, { country, dialCode: country.dialCode, fullNumber: full });
3585
+ } else {
3586
+ const clamped = raw.replace(/\D/g, "").slice(0, activeCountry.maxLength);
3587
+ if (!isControlled) setInternalDigits(clamped);
3588
+ const full = activeCountry.dialCode + clamped;
3589
+ onChange?.(full, { country: activeCountry, dialCode: activeCountry.dialCode, fullNumber: full });
3590
+ }
3559
3591
  };
3560
3592
  const handlePhoneKeyDown = (e) => {
3561
3593
  if (e.ctrlKey || e.metaKey || e.altKey || e.key.length > 1) return;
3594
+ if (e.key === "+" && e.target.value === "") return;
3562
3595
  if (!/^\d$/.test(e.key)) e.preventDefault();
3563
3596
  };
3564
3597
  useEffect(() => {
@@ -3569,7 +3602,7 @@ var PhoneInput = forwardRef(
3569
3602
  document.addEventListener("mousedown", handler);
3570
3603
  return () => document.removeEventListener("mousedown", handler);
3571
3604
  }, [isOpen, close]);
3572
- const derivedPlaceholder = placeholder ?? (selectedCountry.minLength === selectedCountry.maxLength ? `${selectedCountry.maxLength} ${digitsLabel}` : `${selectedCountry.minLength}\u2013${selectedCountry.maxLength} ${digitsLabel}`);
3605
+ const derivedPlaceholder = placeholder ?? (activeCountry.minLength === activeCountry.maxLength ? `${activeCountry.maxLength} ${digitsLabel}` : `${activeCountry.minLength}\u2013${activeCountry.maxLength} ${digitsLabel}`);
3573
3606
  return /* @__PURE__ */ jsxs(Root8, { $fullWidth: fullWidth, ref: rootRef, children: [
3574
3607
  label && /* @__PURE__ */ jsx(Label, { htmlFor: inputId, error, size, children: label }),
3575
3608
  /* @__PURE__ */ jsxs(
@@ -3591,14 +3624,14 @@ var PhoneInput = forwardRef(
3591
3624
  "aria-haspopup": "listbox",
3592
3625
  "aria-expanded": isOpen,
3593
3626
  "aria-controls": isOpen ? listboxId : void 0,
3594
- "aria-label": countrySelectAriaLabel(selectedCountry.country, selectedCountry.dialCode),
3627
+ "aria-label": countrySelectAriaLabel(activeCountry.country, activeCountry.dialCode),
3595
3628
  onClick: openDropdown,
3596
3629
  onKeyDown: (e) => e.key === "Escape" && close(),
3597
3630
  onFocus: () => setFocused(true),
3598
3631
  onBlur: () => setFocused(false),
3599
3632
  children: [
3600
- /* @__PURE__ */ jsx(CountryFlag, { countryCode: selectedCountry.flagCode, size }),
3601
- /* @__PURE__ */ jsx(DialCode, { children: selectedCountry.dialCode }),
3633
+ /* @__PURE__ */ jsx(CountryFlag, { countryCode: activeCountry.flagCode, size }),
3634
+ /* @__PURE__ */ jsx(DialCode, { children: activeCountry.dialCode }),
3602
3635
  /* @__PURE__ */ jsx(ChevronIcon, { $open: isOpen, children: /* @__PURE__ */ jsx(Chevron, {}) })
3603
3636
  ]
3604
3637
  }
@@ -3612,14 +3645,14 @@ var PhoneInput = forwardRef(
3612
3645
  $size: size,
3613
3646
  type: "tel",
3614
3647
  inputMode: "numeric",
3615
- value: phoneValue,
3648
+ value: inputDisplayValue,
3616
3649
  onChange: handlePhoneChange,
3617
3650
  onKeyDown: handlePhoneKeyDown,
3618
3651
  onFocus: () => setFocused(true),
3619
3652
  onBlur: () => setFocused(false),
3620
3653
  disabled,
3621
3654
  placeholder: derivedPlaceholder,
3622
- maxLength: selectedCountry.maxLength,
3655
+ maxLength: activeCountry.maxLength,
3623
3656
  "aria-label": label ? void 0 : phoneAriaLabel
3624
3657
  }
3625
3658
  ),
@@ -3636,26 +3669,23 @@ var PhoneInput = forwardRef(
3636
3669
  "aria-label": countrySearchAriaLabel
3637
3670
  }
3638
3671
  ) }),
3639
- /* @__PURE__ */ jsx(OptionList, { children: filteredCountries.length === 0 ? /* @__PURE__ */ jsx(EmptyMessage, { children: "Nie znaleziono kraju" }) : filteredCountries.map((country) => {
3640
- const isSelected = country.flagCode === selectedCountry.flagCode;
3641
- return /* @__PURE__ */ jsxs(
3642
- OptionItem2,
3643
- {
3644
- role: "option",
3645
- "aria-selected": isSelected,
3646
- $selected: isSelected,
3647
- onClick: () => selectCountry(country),
3648
- onKeyDown: (e) => e.key === "Enter" && selectCountry(country),
3649
- tabIndex: 0,
3650
- children: [
3651
- /* @__PURE__ */ jsx(CountryFlag, { countryCode: country.flagCode, size: "sm" }),
3652
- /* @__PURE__ */ jsx(CountryName, { children: country.country }),
3653
- /* @__PURE__ */ jsx(OptionDialCode, { children: country.dialCode })
3654
- ]
3655
- },
3656
- country.flagCode
3657
- );
3658
- }) })
3672
+ /* @__PURE__ */ jsx(OptionList, { children: filteredCountries.length === 0 ? /* @__PURE__ */ jsx(EmptyMessage, { children: "Nie znaleziono kraju" }) : filteredCountries.map((country) => /* @__PURE__ */ jsxs(
3673
+ OptionItem2,
3674
+ {
3675
+ role: "option",
3676
+ "aria-selected": country.flagCode === activeCountry.flagCode,
3677
+ $selected: country.flagCode === activeCountry.flagCode,
3678
+ onClick: () => selectCountry(country),
3679
+ onKeyDown: (e) => e.key === "Enter" && selectCountry(country),
3680
+ tabIndex: 0,
3681
+ children: [
3682
+ /* @__PURE__ */ jsx(CountryFlag, { countryCode: country.flagCode, size: "sm" }),
3683
+ /* @__PURE__ */ jsx(CountryName, { children: country.country }),
3684
+ /* @__PURE__ */ jsx(OptionDialCode, { children: country.dialCode })
3685
+ ]
3686
+ },
3687
+ country.flagCode
3688
+ )) })
3659
3689
  ] })
3660
3690
  ]
3661
3691
  }
@@ -4790,55 +4820,51 @@ var cardVariants = [
4790
4820
  ];
4791
4821
  var cardPaddings = ["none", "sm", "md", "lg", "xl"];
4792
4822
  var cardRoundeds = ["none", "sm", "md", "lg", "full"];
4793
- function getVariantStyles2(variant, theme) {
4794
- const primary = theme.palette.primary.main;
4795
- const secondary = theme.palette.secondary.main;
4796
- const error = theme.palette.error.main;
4797
- switch (variant) {
4798
- case "default":
4799
- return {
4800
- backgroundColor: `${primary}26`,
4801
- color: primary,
4802
- border: "1px solid transparent"
4803
- };
4804
- case "secondary":
4805
- return {
4806
- backgroundColor: `${secondary}26`,
4807
- color: secondary,
4808
- border: "1px solid transparent"
4809
- };
4810
- case "outline":
4811
- return {
4812
- backgroundColor: "transparent",
4813
- border: `1px solid ${theme.palette.divider}`,
4814
- color: theme.palette.text.primary
4815
- };
4816
- case "destructive":
4817
- return {
4818
- backgroundColor: `${error}26`,
4819
- color: error,
4820
- border: "1px solid transparent"
4821
- };
4822
- case "success":
4823
- return {
4824
- backgroundColor: "rgba(34,197,94,0.15)",
4825
- color: theme.palette.mode === "dark" ? "rgb(134,239,172)" : "rgb(22,163,74)",
4826
- border: "1px solid transparent"
4827
- };
4828
- case "ghost":
4829
- return {
4830
- backgroundColor: "rgba(255,255,255,0.15)",
4831
- color: theme.palette.common.white,
4832
- border: "1px solid rgba(255,255,255,0.4)"
4833
- };
4834
- case "promo":
4835
- return {
4836
- backgroundColor: theme.palette.mode === "dark" ? "rgb(22,163,74)" : "rgb(22,163,74)",
4837
- color: "#ffffff",
4838
- border: "1px solid transparent"
4839
- };
4840
- }
4841
- }
4823
+
4824
+ // src/components/atoms/badges/Badge/Badge.variants.ts
4825
+ var variantStyles2 = {
4826
+ default: (theme) => ({
4827
+ backgroundColor: theme.palette.primary.main,
4828
+ color: "#fff",
4829
+ border: "1px solid transparent"
4830
+ }),
4831
+ secondary: (theme) => ({
4832
+ backgroundColor: theme.palette.secondary.main,
4833
+ color: "#fff",
4834
+ border: "1px solid transparent"
4835
+ }),
4836
+ outline: (theme) => ({
4837
+ backgroundColor: "transparent",
4838
+ border: `1px solid ${theme.palette.divider}`,
4839
+ color: theme.palette.text.primary
4840
+ }),
4841
+ destructive: (theme) => ({
4842
+ backgroundColor: theme.palette.error.main,
4843
+ color: "#fff",
4844
+ border: "1px solid transparent"
4845
+ }),
4846
+ success: (theme) => ({
4847
+ backgroundColor: theme.palette.success.main,
4848
+ color: "#fff",
4849
+ border: "1px solid transparent"
4850
+ }),
4851
+ ghost: (theme) => ({
4852
+ backgroundColor: "rgba(255,255,255,0.15)",
4853
+ color: theme.palette.common.white,
4854
+ border: "1px solid rgba(255,255,255,0.4)"
4855
+ }),
4856
+ warning: (theme) => ({
4857
+ backgroundColor: theme.palette.warning.main,
4858
+ color: "#fff",
4859
+ border: "1px solid transparent"
4860
+ }),
4861
+ promo: (theme) => ({
4862
+ backgroundColor: theme.palette.success.main,
4863
+ color: "#fff",
4864
+ border: "1px solid transparent"
4865
+ })
4866
+ };
4867
+ var badgeVariants = Object.keys(variantStyles2);
4842
4868
  var StyledBadge = styled("span", {
4843
4869
  shouldForwardProp: (prop) => prop !== "$variant"
4844
4870
  })(({ theme, $variant }) => ({
@@ -4849,54 +4875,11 @@ var StyledBadge = styled("span", {
4849
4875
  fontWeight: 500,
4850
4876
  lineHeight: 1,
4851
4877
  fontFamily: theme.typography.fontFamily,
4852
- ...getVariantStyles2($variant, theme)
4878
+ ...variantStyles2[$variant](theme)
4853
4879
  }));
4854
4880
  function Badge2({ variant = "default", ...props }) {
4855
4881
  return /* @__PURE__ */ jsx(StyledBadge, { $variant: variant, ...props });
4856
4882
  }
4857
- var badgeVariants = [
4858
- "default",
4859
- "secondary",
4860
- "outline",
4861
- "destructive",
4862
- "success",
4863
- "ghost",
4864
- "promo"
4865
- ];
4866
- function getBgColor(variant) {
4867
- switch (variant) {
4868
- case "flash":
4869
- return "#f59e0b";
4870
- case "new":
4871
- return "#3b82f6";
4872
- case "hot":
4873
- return "#ef4444";
4874
- default:
4875
- return "#16a34a";
4876
- }
4877
- }
4878
- var Root12 = styled("span", {
4879
- shouldForwardProp: (prop) => prop !== "$variant"
4880
- })(({ theme, $variant }) => ({
4881
- display: "inline-flex",
4882
- alignItems: "center",
4883
- gap: "0.25rem",
4884
- borderRadius: "0.375rem",
4885
- padding: "0.25rem 0.625rem",
4886
- fontSize: "0.75rem",
4887
- fontWeight: 700,
4888
- lineHeight: 1,
4889
- letterSpacing: "0.02em",
4890
- fontFamily: theme.typography.fontFamily,
4891
- backgroundColor: getBgColor($variant),
4892
- color: "#ffffff",
4893
- textTransform: "uppercase"
4894
- }));
4895
- function SaleBadge({ discount, label, variant = "default", ...props }) {
4896
- const text = label ?? (discount !== void 0 ? `-${discount}%` : "SALE");
4897
- return /* @__PURE__ */ jsx(Root12, { $variant: variant, ...props, children: text });
4898
- }
4899
- var saleBadgeVariants = ["default", "flash", "new", "hot"];
4900
4883
  var sizeMap4 = {
4901
4884
  sm: { width: "2rem", height: "2rem", fontSize: "0.75rem" },
4902
4885
  md: { width: "2.5rem", height: "2.5rem", fontSize: "0.875rem" },
@@ -5045,7 +5028,7 @@ var spin = keyframes$1`to { transform: rotate(360deg); }`;
5045
5028
  var fade = keyframes$1`0%,100%{opacity:.15} 50%{opacity:1}`;
5046
5029
  var scalePulse = keyframes$1`0%,100%{transform:scale(0.6);opacity:.4} 50%{transform:scale(1);opacity:1}`;
5047
5030
  var barAnim = keyframes$1`0%,100%{transform:scaleY(.4);opacity:.5} 50%{transform:scaleY(1);opacity:1}`;
5048
- var Root13 = styled("span", {
5031
+ var Root12 = styled("span", {
5049
5032
  shouldForwardProp: (p) => !["$size", "$color"].includes(p)
5050
5033
  })(({ theme, $size, $color }) => {
5051
5034
  const colorMap = {
@@ -5134,7 +5117,7 @@ function Spinner3({
5134
5117
  ...props
5135
5118
  }) {
5136
5119
  const Inner5 = VARIANTS[variant];
5137
- return /* @__PURE__ */ jsx(Root13, { $size: size, $color: color, role: "status", "aria-label": label, ...props, children: /* @__PURE__ */ jsx(Inner5, {}) });
5120
+ return /* @__PURE__ */ jsx(Root12, { $size: size, $color: color, role: "status", "aria-label": label, ...props, children: /* @__PURE__ */ jsx(Inner5, {}) });
5138
5121
  }
5139
5122
  var spinnerVariants = ["ring", "dots", "pulse", "bars"];
5140
5123
  var spinnerSizes = ["xs", "sm", "md", "lg", "xl"];
@@ -5260,7 +5243,7 @@ var FONT_MAP = {
5260
5243
  lg: "1.125rem",
5261
5244
  xl: "1.5rem"
5262
5245
  };
5263
- var Root14 = styled("div")({ position: "relative", display: "inline-flex", flexShrink: 0 });
5246
+ var Root13 = styled("div")({ position: "relative", display: "inline-flex", flexShrink: 0 });
5264
5247
  var Label2 = styled("div", {
5265
5248
  shouldForwardProp: (p) => p !== "$size"
5266
5249
  })(({ theme, $size }) => ({
@@ -5314,7 +5297,7 @@ function ProgressCircle({
5314
5297
  const { color, gradient } = useStrokeColor(variant, gradientId);
5315
5298
  const trackColor = theme.palette.mode === "dark" ? "rgba(255,255,255,0.1)" : "rgba(0,0,0,0.08)";
5316
5299
  return /* @__PURE__ */ jsxs(
5317
- Root14,
5300
+ Root13,
5318
5301
  {
5319
5302
  role: "progressbar",
5320
5303
  "aria-valuenow": value,
@@ -5671,9 +5654,10 @@ var PRESET_MAP = {
5671
5654
  "3/4": 3 / 4,
5672
5655
  "2/3": 2 / 3
5673
5656
  };
5674
- var Root15 = styled("div")({
5657
+ var Root14 = styled("div")({
5675
5658
  position: "relative",
5676
5659
  width: "100%",
5660
+ aspectRatio: "var(--ar)",
5677
5661
  "& > *": {
5678
5662
  position: "absolute",
5679
5663
  inset: 0,
@@ -5685,8 +5669,15 @@ var Root15 = styled("div")({
5685
5669
  var AspectRatio = forwardRef(
5686
5670
  ({ ratio = "16/9", children, style, ...props }, ref) => {
5687
5671
  const numericRatio = typeof ratio === "string" ? PRESET_MAP[ratio] ?? 16 / 9 : ratio;
5688
- const paddingBottom = `${1 / numericRatio * 100}%`;
5689
- return /* @__PURE__ */ jsx(Root15, { ref, style: { paddingBottom, ...style }, ...props, children });
5672
+ return /* @__PURE__ */ jsx(
5673
+ Root14,
5674
+ {
5675
+ ref,
5676
+ style: { "--ar": String(numericRatio), ...style },
5677
+ ...props,
5678
+ children
5679
+ }
5680
+ );
5690
5681
  }
5691
5682
  );
5692
5683
  AspectRatio.displayName = "AspectRatio";
@@ -5707,7 +5698,7 @@ var Placeholder2 = styled("div")(({ theme }) => ({
5707
5698
  }));
5708
5699
  var CategoryCardImage = ({ src, alt }) => /* @__PURE__ */ jsx(AspectRatio, { ratio: "4/3", children: src ? /* @__PURE__ */ jsx(Img, { src, alt }) : /* @__PURE__ */ jsx(Placeholder2, { "aria-label": alt, children: /* @__PURE__ */ jsx(ImageIcon, { style: { fontSize: 48 } }) }) });
5709
5700
  CategoryCardImage.displayName = "CategoryCardImage";
5710
- var Root16 = styled("div")({
5701
+ var Root15 = styled("div")({
5711
5702
  display: "flex",
5712
5703
  flexDirection: "column",
5713
5704
  gap: "0.25rem"
@@ -5729,7 +5720,7 @@ var CategoryCardInfo = ({
5729
5720
  name,
5730
5721
  count,
5731
5722
  countLabel = "produkt\xF3w"
5732
- }) => /* @__PURE__ */ jsxs(Root16, { children: [
5723
+ }) => /* @__PURE__ */ jsxs(Root15, { children: [
5733
5724
  /* @__PURE__ */ jsx(Name, { children: name }),
5734
5725
  count !== void 0 && /* @__PURE__ */ jsxs(Count, { children: [
5735
5726
  count,
@@ -5738,7 +5729,7 @@ var CategoryCardInfo = ({
5738
5729
  ] })
5739
5730
  ] });
5740
5731
  CategoryCardInfo.displayName = "CategoryCardInfo";
5741
- var Root17 = styled(Card)(({ theme }) => ({
5732
+ var Root16 = styled(Card)(({ theme }) => ({
5742
5733
  display: "flex",
5743
5734
  flexDirection: "column",
5744
5735
  overflow: "hidden",
@@ -5764,10 +5755,92 @@ var CategoryCard = forwardRef(
5764
5755
  /* @__PURE__ */ jsx(ImageWrap, { children: /* @__PURE__ */ jsx(CategoryCardImage, { src: imageUrl, alt: imageAlt ?? name }) }),
5765
5756
  /* @__PURE__ */ jsx(CategoryCardInfo, { name, count })
5766
5757
  ] });
5767
- return /* @__PURE__ */ jsx(Root17, { ref, variant: "default", padding: "md", rounded: "lg", ...props, children: href ? /* @__PURE__ */ jsx(CardLink, { href, children: content }) : content });
5758
+ return /* @__PURE__ */ jsx(Root16, { ref, variant: "default", padding: "md", rounded: "lg", ...props, children: href ? /* @__PURE__ */ jsx(CardLink, { href, children: content }) : content });
5768
5759
  }
5769
5760
  );
5770
5761
  CategoryCard.displayName = "CategoryCard";
5762
+ function deriveInitials(name) {
5763
+ return name.split(/\s+/).filter(Boolean).slice(0, 2).map((p) => p[0]?.toUpperCase() ?? "").join("");
5764
+ }
5765
+ var Root17 = styled(Card)({
5766
+ display: "flex",
5767
+ alignItems: "center",
5768
+ justifyContent: "space-between",
5769
+ gap: "1rem",
5770
+ flexWrap: "wrap"
5771
+ });
5772
+ var AvatarImg = styled("img")({
5773
+ borderRadius: "50%",
5774
+ objectFit: "cover",
5775
+ flexShrink: 0
5776
+ });
5777
+ var Identity = styled("div")({
5778
+ display: "flex",
5779
+ alignItems: "center",
5780
+ gap: "1rem",
5781
+ flex: 1,
5782
+ minWidth: 0
5783
+ });
5784
+ var TextBlock = styled("div")({ minWidth: 0 });
5785
+ var Name2 = styled("h2")(({ theme }) => ({
5786
+ margin: 0,
5787
+ fontFamily: theme.typography.fontFamily,
5788
+ fontSize: "1.25rem",
5789
+ fontWeight: 700,
5790
+ color: theme.palette.text.primary,
5791
+ whiteSpace: "nowrap",
5792
+ overflow: "hidden",
5793
+ textOverflow: "ellipsis"
5794
+ }));
5795
+ var Subtitle = styled("p")(({ theme }) => ({
5796
+ margin: "0.25rem 0 0",
5797
+ fontFamily: theme.typography.fontFamily,
5798
+ fontSize: "0.875rem",
5799
+ color: theme.palette.text.secondary,
5800
+ whiteSpace: "nowrap",
5801
+ overflow: "hidden",
5802
+ textOverflow: "ellipsis"
5803
+ }));
5804
+ var Actions = styled("div")({
5805
+ display: "flex",
5806
+ alignItems: "center",
5807
+ gap: "0.75rem",
5808
+ flexWrap: "wrap",
5809
+ justifyContent: "flex-end"
5810
+ });
5811
+ var sizeMap5 = {
5812
+ sm: "2rem",
5813
+ md: "2.5rem",
5814
+ lg: "3rem",
5815
+ xl: "4rem"
5816
+ };
5817
+ var ProfileCard = forwardRef(
5818
+ ({
5819
+ name,
5820
+ subtitle,
5821
+ initials,
5822
+ avatarUrl,
5823
+ avatarColor = "primary",
5824
+ avatarSize = "xl",
5825
+ actions,
5826
+ cardVariant = "default",
5827
+ ...props
5828
+ }, ref) => {
5829
+ const resolvedInitials = initials ?? deriveInitials(name);
5830
+ const imgSize = sizeMap5[avatarSize] ?? "4rem";
5831
+ return /* @__PURE__ */ jsxs(Root17, { ref, variant: cardVariant, padding: "lg", rounded: "lg", ...props, children: [
5832
+ /* @__PURE__ */ jsxs(Identity, { children: [
5833
+ avatarUrl ? /* @__PURE__ */ jsx(AvatarImg, { src: avatarUrl, alt: name, style: { width: imgSize, height: imgSize } }) : /* @__PURE__ */ jsx(Avatar, { initials: resolvedInitials, size: avatarSize, color: avatarColor }),
5834
+ /* @__PURE__ */ jsxs(TextBlock, { children: [
5835
+ /* @__PURE__ */ jsx(Name2, { children: name }),
5836
+ subtitle && /* @__PURE__ */ jsx(Subtitle, { children: subtitle })
5837
+ ] })
5838
+ ] }),
5839
+ actions && /* @__PURE__ */ jsx(Actions, { children: actions })
5840
+ ] });
5841
+ }
5842
+ );
5843
+ ProfileCard.displayName = "ProfileCard";
5771
5844
  var DEFAULT_OMNIBUS_LABEL = "Najni\u017Csza cena z ostatnich 30 dni";
5772
5845
  var FONT_SIZE = {
5773
5846
  sm: "0.875rem",
@@ -6045,7 +6118,7 @@ var ImageWrap2 = styled("div")({
6045
6118
  position: "relative",
6046
6119
  margin: "-1.5rem -1.5rem 1rem"
6047
6120
  });
6048
- var Name2 = styled("h3")(({ theme }) => ({
6121
+ var Name3 = styled("h3")(({ theme }) => ({
6049
6122
  margin: 0,
6050
6123
  color: theme.palette.text.primary,
6051
6124
  fontFamily: theme.typography.fontFamily,
@@ -6075,7 +6148,7 @@ var DealCard = forwardRef(
6075
6148
  }, ref) => {
6076
6149
  return /* @__PURE__ */ jsxs(Root20, { ref, variant: "default", padding: "md", rounded: "lg", ...props, children: [
6077
6150
  /* @__PURE__ */ jsx(ImageWrap2, { children: /* @__PURE__ */ jsx(ProductCardImage, { src: imageUrl, alt: imageAlt ?? name }) }),
6078
- /* @__PURE__ */ jsx(Name2, { children: name }),
6151
+ /* @__PURE__ */ jsx(Name3, { children: name }),
6079
6152
  /* @__PURE__ */ jsx(
6080
6153
  Price,
6081
6154
  {
@@ -6325,6 +6398,7 @@ var PostCard = forwardRef(
6325
6398
  author,
6326
6399
  href,
6327
6400
  category,
6401
+ categoryBadgeVariant,
6328
6402
  variant = "vertical",
6329
6403
  cardVariant = "default",
6330
6404
  ...rest
@@ -6336,7 +6410,7 @@ var PostCard = forwardRef(
6336
6410
  isFeatured && showImage && /* @__PURE__ */ jsx(FeaturedImageWrapper, { children: /* @__PURE__ */ jsx(PostCardImage, { src: imageUrl, alt: imageAlt, aspectRatio: "16/9", overlay: true }) }),
6337
6411
  !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" })),
6338
6412
  /* @__PURE__ */ jsxs(StyledContent, { $variant: variant, children: [
6339
- category && /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(Badge2, { variant: isFeatured ? "ghost" : "default", children: category }) }),
6413
+ category && /* @__PURE__ */ jsx("div", { children: /* @__PURE__ */ jsx(Badge2, { variant: categoryBadgeVariant ?? (isFeatured ? "ghost" : "default"), children: category }) }),
6340
6414
  /* @__PURE__ */ jsx(StyledTitle, { className: "post-card-title", $featured: isFeatured, children: title }),
6341
6415
  excerpt && variant !== "compact" && !isFeatured && /* @__PURE__ */ jsx(StyledExcerpt, { children: excerpt }),
6342
6416
  (date || author) && /* @__PURE__ */ jsx(PostCardMeta, { date, author, inverted: isFeatured })
@@ -6428,7 +6502,7 @@ var NameRow = styled("div")({
6428
6502
  justifyContent: "space-between",
6429
6503
  marginBottom: "0.75rem"
6430
6504
  });
6431
- var Name3 = styled("p")(({ theme }) => ({
6505
+ var Name4 = styled("p")(({ theme }) => ({
6432
6506
  margin: 0,
6433
6507
  fontFamily: theme.typography.fontFamily,
6434
6508
  fontWeight: 600,
@@ -6493,6 +6567,7 @@ var PricingCard = forwardRef(
6493
6567
  href,
6494
6568
  popular = false,
6495
6569
  popularLabel = "Najpopularniejszy",
6570
+ popularBadgeVariant = "default",
6496
6571
  cardVariant,
6497
6572
  ...props
6498
6573
  }, ref) => {
@@ -6500,8 +6575,8 @@ var PricingCard = forwardRef(
6500
6575
  const resolvedCtaVariant = ctaVariant ?? (popular ? "primary" : "ghost");
6501
6576
  return /* @__PURE__ */ jsxs(Root21, { ref, variant: resolvedCardVariant, padding: "lg", rounded: "lg", ...props, children: [
6502
6577
  /* @__PURE__ */ jsxs(NameRow, { children: [
6503
- /* @__PURE__ */ jsx(Name3, { children: name }),
6504
- popular && /* @__PURE__ */ jsx(Badge2, { variant: "default", children: popularLabel })
6578
+ /* @__PURE__ */ jsx(Name4, { children: name }),
6579
+ popular && /* @__PURE__ */ jsx(Badge2, { variant: popularBadgeVariant, children: popularLabel })
6505
6580
  ] }),
6506
6581
  /* @__PURE__ */ jsx(PricingCardPrice, { price, currency, period }),
6507
6582
  description && /* @__PURE__ */ jsx(Description2, { children: description }),
@@ -6514,7 +6589,7 @@ var PricingCard = forwardRef(
6514
6589
  }
6515
6590
  );
6516
6591
  PricingCard.displayName = "PricingCard";
6517
- var sizeMap5 = {
6592
+ var sizeMap6 = {
6518
6593
  sm: "1rem",
6519
6594
  md: "1.25rem",
6520
6595
  lg: "1.5rem"
@@ -6539,7 +6614,7 @@ var StarButton = styled("button")(
6539
6614
  padding: 0,
6540
6615
  color: $active ? "#f59e0b" : theme.palette.action.disabled,
6541
6616
  cursor: "pointer",
6542
- fontSize: sizeMap5[$size],
6617
+ fontSize: sizeMap6[$size],
6543
6618
  lineHeight: 1,
6544
6619
  "&:disabled": {
6545
6620
  cursor: "default"
@@ -6585,6 +6660,10 @@ var Rating = forwardRef(
6585
6660
  }
6586
6661
  );
6587
6662
  Rating.displayName = "Rating";
6663
+ var Container2 = styled("div")({
6664
+ width: "100%",
6665
+ height: "100%"
6666
+ });
6588
6667
  var Img3 = styled("img")(({ theme }) => ({
6589
6668
  position: "absolute",
6590
6669
  inset: 0,
@@ -6615,7 +6694,7 @@ var ProductCardImage = ({
6615
6694
  alt,
6616
6695
  badge,
6617
6696
  badgeVariant = "success"
6618
- }) => /* @__PURE__ */ jsxs(Fragment, { children: [
6697
+ }) => /* @__PURE__ */ jsxs(Container2, { children: [
6619
6698
  src ? /* @__PURE__ */ jsx(Img3, { src, alt }) : /* @__PURE__ */ jsx(Placeholder4, { "aria-label": alt, children: /* @__PURE__ */ jsx(ImageIcon, { style: { fontSize: 48 } }) }),
6620
6699
  badge && /* @__PURE__ */ jsx(BadgeSlot, { children: /* @__PURE__ */ jsx(Badge2, { variant: badgeVariant, children: badge }) })
6621
6700
  ] });
@@ -6626,12 +6705,7 @@ var Root23 = styled(Card)({
6626
6705
  height: "100%",
6627
6706
  overflow: "hidden"
6628
6707
  });
6629
- var ImageWrap3 = styled("div")({
6630
- position: "relative",
6631
- aspectRatio: "4 / 3",
6632
- margin: "-1.5rem -1.5rem 1rem"
6633
- });
6634
- var Name4 = styled("h3")(({ theme }) => ({
6708
+ var Name5 = styled("h3")(({ theme }) => ({
6635
6709
  margin: 0,
6636
6710
  color: theme.palette.text.primary,
6637
6711
  fontFamily: theme.typography.fontFamily,
@@ -6657,14 +6731,26 @@ var ProductCard = forwardRef(
6657
6731
  lowestPrice,
6658
6732
  badge,
6659
6733
  badgeVariant = "success",
6734
+ imageRatio = "4/3",
6660
6735
  rating,
6661
6736
  reviewCount,
6662
6737
  ctaLabel = "Dodaj do koszyka",
6663
6738
  onAddToCart,
6739
+ buttonVariant = "primary",
6740
+ disabledButton = false,
6741
+ hideButton = false,
6664
6742
  ...props
6665
6743
  }, ref) => /* @__PURE__ */ jsxs(Root23, { ref, variant: "default", padding: "md", rounded: "lg", ...props, children: [
6666
- /* @__PURE__ */ jsx(ImageWrap3, { children: /* @__PURE__ */ jsx(ProductCardImage, { src: imageUrl, alt: imageAlt ?? name, badge, badgeVariant }) }),
6667
- /* @__PURE__ */ jsx(Name4, { children: name }),
6744
+ /* @__PURE__ */ jsx(AspectRatio, { ratio: imageRatio, style: { margin: "-1.5rem -1.5rem 1rem", width: "calc(100% + 3rem)" }, children: /* @__PURE__ */ jsx(
6745
+ ProductCardImage,
6746
+ {
6747
+ src: imageUrl,
6748
+ alt: imageAlt ?? name,
6749
+ badge,
6750
+ badgeVariant
6751
+ }
6752
+ ) }),
6753
+ /* @__PURE__ */ jsx(Name5, { children: name }),
6668
6754
  rating !== void 0 && /* @__PURE__ */ jsx(Rating, { value: rating, count: reviewCount, size: "sm" }),
6669
6755
  /* @__PURE__ */ jsx(
6670
6756
  Price,
@@ -6677,10 +6763,19 @@ var ProductCard = forwardRef(
6677
6763
  style: { marginTop: "0.5rem" }
6678
6764
  }
6679
6765
  ),
6680
- /* @__PURE__ */ jsx(Footer2, { children: /* @__PURE__ */ jsx(Button, { fullWidth: true, onClick: (e) => {
6681
- e.stopPropagation();
6682
- onAddToCart?.();
6683
- }, children: ctaLabel }) })
6766
+ !hideButton && /* @__PURE__ */ jsx(Footer2, { children: /* @__PURE__ */ jsx(
6767
+ Button,
6768
+ {
6769
+ fullWidth: true,
6770
+ variant: buttonVariant,
6771
+ disabled: disabledButton,
6772
+ onClick: (e) => {
6773
+ e.stopPropagation();
6774
+ onAddToCart?.();
6775
+ },
6776
+ children: ctaLabel
6777
+ }
6778
+ ) })
6684
6779
  ] })
6685
6780
  );
6686
6781
  ProductCard.displayName = "ProductCard";
@@ -6698,7 +6793,7 @@ var Inner = styled("div")({
6698
6793
  flexDirection: "column"
6699
6794
  }
6700
6795
  });
6701
- var ImageWrap4 = styled("div")({
6796
+ var ImageWrap3 = styled("div")({
6702
6797
  position: "relative",
6703
6798
  flexShrink: 0,
6704
6799
  width: "clamp(120px, 33%, 200px)",
@@ -6717,7 +6812,7 @@ var Content = styled("div")({
6717
6812
  flex: 1,
6718
6813
  minWidth: 0
6719
6814
  });
6720
- var Name5 = styled("h3")(({ theme }) => ({
6815
+ var Name6 = styled("h3")(({ theme }) => ({
6721
6816
  margin: 0,
6722
6817
  color: theme.palette.text.primary,
6723
6818
  fontFamily: theme.typography.fontFamily,
@@ -6749,9 +6844,9 @@ var ProductCardHorizontal = forwardRef(
6749
6844
  onAddToCart,
6750
6845
  ...props
6751
6846
  }, ref) => /* @__PURE__ */ jsx(Card, { ref, variant: "default", padding: "md", rounded: "lg", ...props, children: /* @__PURE__ */ jsx(ContainerRoot, { children: /* @__PURE__ */ jsxs(Inner, { children: [
6752
- /* @__PURE__ */ jsx(ImageWrap4, { children: /* @__PURE__ */ jsx(ProductCardImage, { src: imageUrl, alt: imageAlt ?? name, badge, badgeVariant }) }),
6847
+ /* @__PURE__ */ jsx(ImageWrap3, { children: /* @__PURE__ */ jsx(ProductCardImage, { src: imageUrl, alt: imageAlt ?? name, badge, badgeVariant }) }),
6753
6848
  /* @__PURE__ */ jsxs(Content, { children: [
6754
- /* @__PURE__ */ jsx(Name5, { children: name }),
6849
+ /* @__PURE__ */ jsx(Name6, { children: name }),
6755
6850
  rating !== void 0 && /* @__PURE__ */ jsx(Rating, { value: rating, count: reviewCount, size: "sm" }),
6756
6851
  /* @__PURE__ */ jsx(
6757
6852
  Price,
@@ -6823,7 +6918,7 @@ var Img4 = styled("img")({
6823
6918
  borderRadius: "50%",
6824
6919
  objectFit: "cover"
6825
6920
  });
6826
- function deriveInitials(name) {
6921
+ function deriveInitials2(name) {
6827
6922
  return name.split(" ").filter(Boolean).slice(0, 2).map((part) => part[0]).join("").toUpperCase();
6828
6923
  }
6829
6924
  var TeamMemberAvatar = ({
@@ -6836,18 +6931,11 @@ var TeamMemberAvatar = ({
6836
6931
  if (avatarUrl) {
6837
6932
  return /* @__PURE__ */ jsx(Img4, { src: avatarUrl, alt: avatarAlt ?? name });
6838
6933
  }
6839
- return /* @__PURE__ */ jsx(
6840
- Avatar,
6841
- {
6842
- initials: initials ?? deriveInitials(name),
6843
- size: "xl",
6844
- color: avatarColor
6845
- }
6846
- );
6934
+ return /* @__PURE__ */ jsx(Avatar, { initials: initials ?? deriveInitials2(name), size: "xl", color: avatarColor });
6847
6935
  };
6848
6936
  TeamMemberAvatar.displayName = "TeamMemberAvatar";
6849
6937
  var Root25 = styled("div")({ minWidth: 0 });
6850
- var Name6 = styled("h3")(({ theme }) => ({
6938
+ var Name7 = styled("h3")(({ theme }) => ({
6851
6939
  margin: 0,
6852
6940
  color: theme.palette.text.primary,
6853
6941
  fontFamily: theme.typography.fontFamily,
@@ -6863,7 +6951,7 @@ var Role = styled("p")(({ theme }) => ({
6863
6951
  lineHeight: 1.5
6864
6952
  }));
6865
6953
  var TeamMemberInfo = ({ name, role }) => /* @__PURE__ */ jsxs(Root25, { children: [
6866
- /* @__PURE__ */ jsx(Name6, { children: name }),
6954
+ /* @__PURE__ */ jsx(Name7, { children: name }),
6867
6955
  role && /* @__PURE__ */ jsx(Role, { children: role })
6868
6956
  ] });
6869
6957
  TeamMemberInfo.displayName = "TeamMemberInfo";
@@ -6922,7 +7010,7 @@ var Root27 = styled("div")({
6922
7010
  alignItems: "center",
6923
7011
  gap: "0.75rem"
6924
7012
  });
6925
- var AvatarImg = styled("img")({
7013
+ var AvatarImg2 = styled("img")({
6926
7014
  width: "2.5rem",
6927
7015
  height: "2.5rem",
6928
7016
  borderRadius: "50%",
@@ -6930,7 +7018,7 @@ var AvatarImg = styled("img")({
6930
7018
  flexShrink: 0
6931
7019
  });
6932
7020
  var Info = styled("div")({ minWidth: 0 });
6933
- var Name7 = styled("p")(({ theme }) => ({
7021
+ var Name8 = styled("p")(({ theme }) => ({
6934
7022
  margin: 0,
6935
7023
  fontFamily: theme.typography.fontFamily,
6936
7024
  fontSize: "0.875rem",
@@ -6943,7 +7031,7 @@ var Role2 = styled("p")(({ theme }) => ({
6943
7031
  fontSize: "0.8125rem",
6944
7032
  color: theme.palette.text.secondary
6945
7033
  }));
6946
- function deriveInitials2(name) {
7034
+ function deriveInitials3(name) {
6947
7035
  return name.split(" ").filter(Boolean).slice(0, 2).map((p) => p[0]).join("").toUpperCase();
6948
7036
  }
6949
7037
  var TestimonialAuthor = ({
@@ -6952,9 +7040,9 @@ var TestimonialAuthor = ({
6952
7040
  authorAvatarUrl,
6953
7041
  authorInitials
6954
7042
  }) => /* @__PURE__ */ jsxs(Root27, { children: [
6955
- authorAvatarUrl ? /* @__PURE__ */ jsx(AvatarImg, { src: authorAvatarUrl, alt: authorName }) : /* @__PURE__ */ jsx(Avatar, { initials: authorInitials ?? deriveInitials2(authorName), size: "md", color: "primary" }),
7043
+ authorAvatarUrl ? /* @__PURE__ */ jsx(AvatarImg2, { src: authorAvatarUrl, alt: authorName }) : /* @__PURE__ */ jsx(Avatar, { initials: authorInitials ?? deriveInitials3(authorName), size: "md", color: "primary" }),
6956
7044
  /* @__PURE__ */ jsxs(Info, { children: [
6957
- /* @__PURE__ */ jsx(Name7, { children: authorName }),
7045
+ /* @__PURE__ */ jsx(Name8, { children: authorName }),
6958
7046
  authorRole && /* @__PURE__ */ jsx(Role2, { children: authorRole })
6959
7047
  ] })
6960
7048
  ] });
@@ -7479,7 +7567,7 @@ var IconWrap = styled("span")(({ theme }) => ({
7479
7567
  display: "flex"
7480
7568
  }));
7481
7569
  var Info2 = styled("div")({ flex: 1 });
7482
- var Name8 = styled("div")(({ theme }) => ({
7570
+ var Name9 = styled("div")(({ theme }) => ({
7483
7571
  fontSize: "0.9375rem",
7484
7572
  fontWeight: 600,
7485
7573
  color: theme.palette.text.primary
@@ -7509,7 +7597,7 @@ var PaymentMethodSelector = forwardRef(
7509
7597
  ),
7510
7598
  /* @__PURE__ */ jsx(IconWrap, { children: method.icon ?? /* @__PURE__ */ jsx(CreditCardOutlinedIcon, { "aria-hidden": true }) }),
7511
7599
  /* @__PURE__ */ jsxs(Info2, { children: [
7512
- /* @__PURE__ */ jsx(Name8, { children: method.label }),
7600
+ /* @__PURE__ */ jsx(Name9, { children: method.label }),
7513
7601
  method.description && /* @__PURE__ */ jsx(Desc, { children: method.description })
7514
7602
  ] })
7515
7603
  ] }, method.id);
@@ -7544,7 +7632,7 @@ var ThumbnailImage = styled("img")({
7544
7632
  objectFit: "cover"
7545
7633
  });
7546
7634
  var ProductGallery = forwardRef(
7547
- ({ images, selectedIndex, onSelect, ...props }, ref) => {
7635
+ ({ images, selectedIndex, onSelect, imageRatio = "4/3", ...props }, ref) => {
7548
7636
  const [internalIndex, setInternalIndex] = useState(0);
7549
7637
  const activeIndex = selectedIndex ?? internalIndex;
7550
7638
  const activeImage = images[activeIndex] ?? images[0];
@@ -7556,7 +7644,7 @@ var ProductGallery = forwardRef(
7556
7644
  return null;
7557
7645
  }
7558
7646
  return /* @__PURE__ */ jsxs(Root32, { ref, ...props, children: [
7559
- /* @__PURE__ */ jsx(AspectRatio, { ratio: "4/3", children: /* @__PURE__ */ jsx(MainImage, { src: activeImage.src, alt: activeImage.alt }) }),
7647
+ /* @__PURE__ */ jsx(AspectRatio, { ratio: imageRatio, children: /* @__PURE__ */ jsx(MainImage, { src: activeImage.src, alt: activeImage.alt }) }),
7560
7648
  images.length > 1 && /* @__PURE__ */ jsx(Thumbnails, { children: images.map((image, index) => /* @__PURE__ */ jsx(
7561
7649
  ThumbnailButton,
7562
7650
  {
@@ -7701,7 +7789,7 @@ var IconWrap2 = styled("span")(({ theme }) => ({
7701
7789
  display: "flex"
7702
7790
  }));
7703
7791
  var Info3 = styled("div")({ flex: 1 });
7704
- var Name9 = styled("div")(({ theme }) => ({
7792
+ var Name10 = styled("div")(({ theme }) => ({
7705
7793
  fontSize: "0.9375rem",
7706
7794
  fontWeight: 600,
7707
7795
  color: theme.palette.text.primary
@@ -7739,7 +7827,7 @@ var ShippingSelector = forwardRef(
7739
7827
  ),
7740
7828
  /* @__PURE__ */ jsx(IconWrap2, { children: opt.icon ?? /* @__PURE__ */ jsx(LocalShippingOutlinedIcon, { "aria-hidden": true }) }),
7741
7829
  /* @__PURE__ */ jsxs(Info3, { children: [
7742
- /* @__PURE__ */ jsx(Name9, { children: opt.label }),
7830
+ /* @__PURE__ */ jsx(Name10, { children: opt.label }),
7743
7831
  (opt.description || opt.estimatedDays) && /* @__PURE__ */ jsxs(Desc2, { children: [
7744
7832
  opt.description,
7745
7833
  opt.estimatedDays && ` \xB7 ${opt.estimatedDays}`
@@ -8042,7 +8130,150 @@ var VariantSelector = forwardRef(
8042
8130
  );
8043
8131
  VariantSelector.displayName = "VariantSelector";
8044
8132
  var variantSelectorModes = ["button", "swatch", "dropdown"];
8045
- var Root39 = styled("div")(({ theme }) => ({
8133
+ function deriveInitials4(name) {
8134
+ return name.split(" ").filter(Boolean).slice(0, 2).map((p) => p[0]).join("").toUpperCase();
8135
+ }
8136
+ var Root39 = styled("div")({
8137
+ display: "flex",
8138
+ alignItems: "center",
8139
+ gap: "0.75rem"
8140
+ });
8141
+ var AvatarImg3 = styled("img")({
8142
+ width: "2.5rem",
8143
+ height: "2.5rem",
8144
+ borderRadius: "50%",
8145
+ objectFit: "cover",
8146
+ flexShrink: 0
8147
+ });
8148
+ var Info4 = styled("div")({ minWidth: 0 });
8149
+ var NameRow2 = styled("div")({
8150
+ display: "flex",
8151
+ alignItems: "center",
8152
+ gap: "0.5rem",
8153
+ flexWrap: "wrap"
8154
+ });
8155
+ var Name11 = styled("span")(({ theme }) => ({
8156
+ fontFamily: theme.typography.fontFamily,
8157
+ fontSize: "0.9375rem",
8158
+ fontWeight: 700,
8159
+ color: theme.palette.text.primary
8160
+ }));
8161
+ var AuthorBadge = styled("span")(({ theme }) => ({
8162
+ display: "inline-flex",
8163
+ alignItems: "center",
8164
+ fontSize: "0.6875rem",
8165
+ fontWeight: 600,
8166
+ padding: "0.125rem 0.5rem",
8167
+ borderRadius: "999px",
8168
+ backgroundColor: theme.palette.primary.main,
8169
+ color: theme.palette.primary.contrastText,
8170
+ fontFamily: theme.typography.fontFamily,
8171
+ letterSpacing: "0.03em",
8172
+ textTransform: "uppercase"
8173
+ }));
8174
+ var DateText = styled("time")(({ theme }) => ({
8175
+ display: "block",
8176
+ marginTop: "0.125rem",
8177
+ fontFamily: theme.typography.fontFamily,
8178
+ fontSize: "0.8125rem",
8179
+ color: theme.palette.text.secondary
8180
+ }));
8181
+ function CommentMeta({ author, date }) {
8182
+ return /* @__PURE__ */ jsxs(Root39, { children: [
8183
+ author.avatarUrl ? /* @__PURE__ */ jsx(AvatarImg3, { src: author.avatarUrl, alt: author.name }) : /* @__PURE__ */ jsx(Avatar, { initials: deriveInitials4(author.name), size: "md", color: "primary" }),
8184
+ /* @__PURE__ */ jsxs(Info4, { children: [
8185
+ /* @__PURE__ */ jsxs(NameRow2, { children: [
8186
+ /* @__PURE__ */ jsx(Name11, { children: author.name }),
8187
+ author.isPostAuthor && /* @__PURE__ */ jsx(AuthorBadge, { children: "Autor" })
8188
+ ] }),
8189
+ /* @__PURE__ */ jsx(DateText, { dateTime: date, children: date })
8190
+ ] })
8191
+ ] });
8192
+ }
8193
+ CommentMeta.displayName = "CommentMeta";
8194
+ var Text = styled("p")(({ theme }) => ({
8195
+ margin: 0,
8196
+ fontFamily: theme.typography.fontFamily,
8197
+ fontSize: "0.9375rem",
8198
+ lineHeight: 1.7,
8199
+ color: theme.palette.text.primary
8200
+ }));
8201
+ function CommentBody({ content }) {
8202
+ return /* @__PURE__ */ jsx(Text, { children: content });
8203
+ }
8204
+ CommentBody.displayName = "CommentBody";
8205
+ var Root40 = styled("div")({
8206
+ display: "flex",
8207
+ alignItems: "center",
8208
+ gap: "0.25rem"
8209
+ });
8210
+ var ActionButton = styled("button")(({ theme }) => ({
8211
+ display: "inline-flex",
8212
+ alignItems: "center",
8213
+ gap: "0.375rem",
8214
+ padding: "0.3125rem 0.625rem",
8215
+ background: "none",
8216
+ border: "none",
8217
+ borderRadius: theme.shape.borderRadius,
8218
+ cursor: "pointer",
8219
+ color: theme.palette.text.secondary,
8220
+ fontFamily: theme.typography.fontFamily,
8221
+ fontSize: "0.8125rem",
8222
+ fontWeight: 500,
8223
+ lineHeight: 1,
8224
+ transition: "background-color 150ms ease, color 150ms ease",
8225
+ "&:hover": {
8226
+ backgroundColor: theme.palette.action.hover,
8227
+ color: theme.palette.primary.main
8228
+ },
8229
+ "&:focus-visible": {
8230
+ outline: `3px solid ${theme.palette.primary.main}`,
8231
+ outlineOffset: "2px"
8232
+ }
8233
+ }));
8234
+ function CommentActions({ commentId, likesCount, onLike, onReply }) {
8235
+ return /* @__PURE__ */ jsxs(Root40, { children: [
8236
+ /* @__PURE__ */ jsxs(ActionButton, { type: "button", "aria-label": "Lubi\u0119 to", onClick: () => onLike?.(commentId), children: [
8237
+ /* @__PURE__ */ jsx(ThumbUpOutlinedIcon, { style: { fontSize: "0.9375rem" }, "aria-hidden": "true" }),
8238
+ typeof likesCount === "number" && /* @__PURE__ */ jsx("span", { children: likesCount }),
8239
+ "Lubi\u0119 to"
8240
+ ] }),
8241
+ /* @__PURE__ */ jsxs(ActionButton, { type: "button", "aria-label": "Odpowiedz", onClick: () => onReply?.(commentId), children: [
8242
+ /* @__PURE__ */ jsx(ReplyIcon, { style: { fontSize: "0.9375rem" }, "aria-hidden": "true" }),
8243
+ "Odpowiedz"
8244
+ ] })
8245
+ ] });
8246
+ }
8247
+ CommentActions.displayName = "CommentActions";
8248
+ var Root41 = styled("div", {
8249
+ shouldForwardProp: (p) => p !== "$depth"
8250
+ })(({ theme, $depth }) => ({
8251
+ display: "flex",
8252
+ flexDirection: "column",
8253
+ gap: "0.75rem",
8254
+ ...$depth > 0 && {
8255
+ paddingLeft: "1.25rem",
8256
+ borderLeft: `3px solid ${theme.palette.divider}`,
8257
+ marginLeft: "1rem"
8258
+ }
8259
+ }));
8260
+ var CommentCard = forwardRef(
8261
+ ({ comment, depth = 0, onLike, onReply, ...props }, ref) => /* @__PURE__ */ jsxs(Root41, { ref, $depth: depth, ...props, children: [
8262
+ /* @__PURE__ */ jsx(CommentMeta, { author: comment.author, date: comment.date }),
8263
+ /* @__PURE__ */ jsx(CommentBody, { content: comment.content }),
8264
+ /* @__PURE__ */ jsx(
8265
+ CommentActions,
8266
+ {
8267
+ commentId: comment.id,
8268
+ likesCount: comment.likesCount,
8269
+ onLike,
8270
+ onReply
8271
+ }
8272
+ )
8273
+ ] })
8274
+ );
8275
+ CommentCard.displayName = "CommentCard";
8276
+ var Root42 = styled("div")(({ theme }) => ({
8046
8277
  borderBottom: `1px solid ${theme.palette.divider}`
8047
8278
  }));
8048
8279
  var Trigger2 = styled("button")(({ theme }) => ({
@@ -8090,7 +8321,7 @@ var PanelInner = styled("p")(({ theme }) => ({
8090
8321
  var FaqItem = forwardRef(
8091
8322
  ({ item, defaultOpen = false, ...props }, ref) => {
8092
8323
  const [open, setOpen] = useState(defaultOpen);
8093
- return /* @__PURE__ */ jsxs(Root39, { ref, ...props, children: [
8324
+ return /* @__PURE__ */ jsxs(Root42, { ref, ...props, children: [
8094
8325
  /* @__PURE__ */ jsxs(Trigger2, { type: "button", "aria-expanded": open, onClick: () => setOpen((prev) => !prev), children: [
8095
8326
  item.question,
8096
8327
  /* @__PURE__ */ jsx(ChevronIcon2, { $open: open, "aria-hidden": "true" })
@@ -8166,7 +8397,7 @@ var FeatureItem = forwardRef(
8166
8397
  }
8167
8398
  );
8168
8399
  FeatureItem.displayName = "FeatureItem";
8169
- var Root40 = styled("div")({
8400
+ var Root43 = styled("div")({
8170
8401
  display: "flex",
8171
8402
  flexDirection: "column",
8172
8403
  alignItems: "center",
@@ -8214,7 +8445,7 @@ var Description6 = styled("p")(({ theme }) => ({
8214
8445
  maxWidth: "18rem"
8215
8446
  }));
8216
8447
  var ProcessStep = forwardRef(
8217
- ({ step, title, description, icon, ...props }, ref) => /* @__PURE__ */ jsxs(Root40, { ref, ...props, children: [
8448
+ ({ step, title, description, icon, ...props }, ref) => /* @__PURE__ */ jsxs(Root43, { ref, ...props, children: [
8218
8449
  /* @__PURE__ */ jsx(StepBadge, { "aria-hidden": "true", children: icon ? /* @__PURE__ */ jsx(IconWrapper2, { children: icon }) : /* @__PURE__ */ jsx(StepNumber, { children: step }) }),
8219
8450
  /* @__PURE__ */ jsx(Title3, { children: title }),
8220
8451
  description && /* @__PURE__ */ jsx(Description6, { children: description })
@@ -8476,7 +8707,7 @@ var timelineItemStatuses = [
8476
8707
  "pending",
8477
8708
  "error"
8478
8709
  ];
8479
- var Root41 = styled("div")({
8710
+ var Root44 = styled("div")({
8480
8711
  position: "relative",
8481
8712
  width: "100%",
8482
8713
  overflow: "hidden",
@@ -8586,7 +8817,7 @@ function Carousel({
8586
8817
  }, [prev, next]);
8587
8818
  if (!count) return null;
8588
8819
  return /* @__PURE__ */ jsxs("div", { className, children: [
8589
- /* @__PURE__ */ jsxs(Root41, { "aria-roledescription": "carousel", children: [
8820
+ /* @__PURE__ */ jsxs(Root44, { "aria-roledescription": "carousel", children: [
8590
8821
  /* @__PURE__ */ jsx(Track4, { $index: index, "aria-live": "polite", children: slides.map((slide, i) => /* @__PURE__ */ jsx(
8591
8822
  Slide,
8592
8823
  {
@@ -8633,6 +8864,46 @@ function Carousel({
8633
8864
  )) })
8634
8865
  ] });
8635
8866
  }
8867
+ var Img5 = styled("img")({
8868
+ position: "absolute",
8869
+ inset: 0,
8870
+ width: "100%",
8871
+ height: "100%"
8872
+ });
8873
+ var Placeholder5 = styled("div")(({ theme }) => ({
8874
+ position: "absolute",
8875
+ inset: 0,
8876
+ width: "100%",
8877
+ height: "100%",
8878
+ backgroundColor: theme.palette.action.hover,
8879
+ display: "flex",
8880
+ alignItems: "center",
8881
+ justifyContent: "center",
8882
+ color: theme.palette.text.disabled
8883
+ }));
8884
+ var Image = forwardRef(
8885
+ ({
8886
+ src,
8887
+ alt = "",
8888
+ ratio = "16/9",
8889
+ objectFit = "cover",
8890
+ objectPosition = "center",
8891
+ loading = "lazy",
8892
+ style,
8893
+ ...props
8894
+ }, ref) => /* @__PURE__ */ jsx(AspectRatio, { ratio, children: src ? /* @__PURE__ */ jsx(
8895
+ Img5,
8896
+ {
8897
+ ref,
8898
+ src,
8899
+ alt,
8900
+ loading,
8901
+ style: { objectFit, objectPosition, ...style },
8902
+ ...props
8903
+ }
8904
+ ) : /* @__PURE__ */ jsx(Placeholder5, { "aria-label": alt || "Image placeholder", children: /* @__PURE__ */ jsx(ImageIcon, { style: { fontSize: 48 } }) }) })
8905
+ );
8906
+ Image.displayName = "Image";
8636
8907
  var Wrapper4 = styled("div")(({ theme }) => ({
8637
8908
  borderRadius: "0.75rem",
8638
8909
  overflow: "hidden",
@@ -8970,7 +9241,7 @@ var Breadcrumbs = forwardRef(
8970
9241
  }) }) })
8971
9242
  );
8972
9243
  Breadcrumbs.displayName = "Breadcrumbs";
8973
- var sizeMap6 = {
9244
+ var sizeMap7 = {
8974
9245
  sm: { minWidth: "1.75rem", height: "1.75rem", fontSize: "0.75rem" },
8975
9246
  md: { minWidth: "2rem", height: "2rem", fontSize: "0.875rem" },
8976
9247
  lg: { minWidth: "2.5rem", height: "2.5rem", fontSize: "1rem" }
@@ -8999,7 +9270,7 @@ var StyledButton2 = styled("button")(({ theme, $isActive, $size }) => ({
8999
9270
  lineHeight: 1,
9000
9271
  padding: "0 0.25rem",
9001
9272
  transition: "background-color 150ms ease",
9002
- ...sizeMap6[$size],
9273
+ ...sizeMap7[$size],
9003
9274
  ...$isActive ? activeStyles(theme) : idleStyles(theme),
9004
9275
  "&:focus-visible": {
9005
9276
  outline: `3px solid ${theme.palette.primary.main}`,
@@ -9028,7 +9299,7 @@ var PaginationButton = forwardRef(
9028
9299
  )
9029
9300
  );
9030
9301
  PaginationButton.displayName = "PaginationButton";
9031
- var sizeMap7 = {
9302
+ var sizeMap8 = {
9032
9303
  sm: { minWidth: "1.75rem", height: "1.75rem", fontSize: "0.75rem" },
9033
9304
  md: { minWidth: "2rem", height: "2rem", fontSize: "0.875rem" },
9034
9305
  lg: { minWidth: "2.5rem", height: "2.5rem", fontSize: "1rem" }
@@ -9039,7 +9310,7 @@ var StyledEllipsis = styled("span")(({ theme, $size }) => ({
9039
9310
  justifyContent: "center",
9040
9311
  color: theme.palette.text.secondary,
9041
9312
  userSelect: "none",
9042
- ...sizeMap7[$size]
9313
+ ...sizeMap8[$size]
9043
9314
  }));
9044
9315
  var PaginationEllipsis = ({ size = "md" }) => /* @__PURE__ */ jsx(StyledEllipsis, { $size: size, "aria-hidden": "true", children: "\u2026" });
9045
9316
  PaginationEllipsis.displayName = "PaginationEllipsis";
@@ -9149,7 +9420,7 @@ var PaginationBar = ({
9149
9420
  ] });
9150
9421
  };
9151
9422
  PaginationBar.displayName = "PaginationBar";
9152
- var Root42 = styled("div", {
9423
+ var Root45 = styled("div", {
9153
9424
  shouldForwardProp: (p) => p !== "$variant"
9154
9425
  })(({ theme, $variant }) => ({
9155
9426
  width: "100%",
@@ -9259,7 +9530,7 @@ var Accordion = forwardRef(
9259
9530
  if (controlledKeys === void 0) setInternalKeys(next);
9260
9531
  onChange?.(next);
9261
9532
  };
9262
- return /* @__PURE__ */ jsx(Root42, { ref, $variant: variant, ...props, children: items.map((item) => {
9533
+ return /* @__PURE__ */ jsx(Root45, { ref, $variant: variant, ...props, children: items.map((item) => {
9263
9534
  const isOpen = openKeys.includes(item.key);
9264
9535
  const panelId = `accordion-panel-${item.key}`;
9265
9536
  const triggerId = `accordion-trigger-${item.key}`;
@@ -9288,32 +9559,31 @@ var Accordion = forwardRef(
9288
9559
  );
9289
9560
  Accordion.displayName = "Accordion";
9290
9561
  var accordionVariants = ["default", "bordered", "separated"];
9291
- var SEVERITY_COLORS = {
9292
- info: { bg: "rgba(25,118,210,0.08)", color: "#1565c0", border: "rgba(25,118,210,0.3)" },
9293
- success: { bg: "rgba(34,197,94,0.1)", color: "#15803d", border: "rgba(34,197,94,0.35)" },
9294
- warning: { bg: "rgba(245,158,11,0.1)", color: "#b45309", border: "rgba(245,158,11,0.35)" },
9295
- error: { bg: "rgba(211,47,47,0.08)", color: "#c62828", border: "rgba(211,47,47,0.3)" }
9296
- };
9297
9562
  var ICONS = {
9298
9563
  info: /* @__PURE__ */ jsx(InfoOutlinedIcon, { "aria-hidden": true, style: { fontSize: 20 } }),
9299
9564
  success: /* @__PURE__ */ jsx(CheckCircleOutlinedIcon, { "aria-hidden": true, style: { fontSize: 20 } }),
9300
9565
  warning: /* @__PURE__ */ jsx(WarningAmberOutlinedIcon, { "aria-hidden": true, style: { fontSize: 20 } }),
9301
9566
  error: /* @__PURE__ */ jsx(ErrorOutlineOutlinedIcon, { "aria-hidden": true, style: { fontSize: 20 } })
9302
9567
  };
9303
- var Root43 = styled("div", {
9568
+ var Root46 = styled("div", {
9304
9569
  shouldForwardProp: (prop) => prop !== "$severity"
9305
9570
  })(({ theme, $severity }) => {
9306
- const c = SEVERITY_COLORS[$severity];
9571
+ const palette = {
9572
+ info: theme.palette.info,
9573
+ success: theme.palette.success,
9574
+ warning: theme.palette.warning,
9575
+ error: theme.palette.error
9576
+ }[$severity];
9307
9577
  return {
9308
9578
  display: "flex",
9309
9579
  gap: "0.75rem",
9310
9580
  padding: "0.875rem 1rem",
9311
9581
  borderRadius: theme.shape.borderRadius,
9312
- border: `1px solid ${c.border}`,
9313
- backgroundColor: c.bg,
9314
- color: c.color,
9582
+ border: `1px solid ${palette.dark}`,
9583
+ backgroundColor: palette.main,
9584
+ color: palette.contrastText,
9315
9585
  fontFamily: theme.typography.fontFamily,
9316
- fontSize: "0.9375rem"
9586
+ fontSize: "1rem"
9317
9587
  };
9318
9588
  });
9319
9589
  var IconSlot2 = styled("span")({
@@ -9345,11 +9615,11 @@ var CloseButton2 = styled("button")(({ theme }) => ({
9345
9615
  }
9346
9616
  }));
9347
9617
  var Alert = forwardRef(
9348
- ({ severity = "info", title, children, onClose, icon, ...props }, ref) => /* @__PURE__ */ jsxs(Root43, { ref, role: "alert", $severity: severity, ...props, children: [
9618
+ ({ severity = "info", title, children, onClose, icon, ...props }, ref) => /* @__PURE__ */ jsxs(Root46, { ref, role: "alert", $severity: severity, ...props, children: [
9349
9619
  /* @__PURE__ */ jsx(IconSlot2, { children: icon ?? ICONS[severity] }),
9350
9620
  /* @__PURE__ */ jsxs(Body, { children: [
9351
9621
  title && /* @__PURE__ */ jsx(Title5, { children: title }),
9352
- children
9622
+ typeof children === "string" ? /* @__PURE__ */ jsx("span", { dangerouslySetInnerHTML: { __html: children } }) : children
9353
9623
  ] }),
9354
9624
  onClose && /* @__PURE__ */ jsx(CloseButton2, { type: "button", onClick: onClose, "aria-label": "Zamknij", children: /* @__PURE__ */ jsx(CloseIcon, { "aria-hidden": true, style: { fontSize: 16 } }) })
9355
9625
  ] })
@@ -9366,7 +9636,7 @@ var POSITION_MAP = {
9366
9636
  var Btn = styled("button", {
9367
9637
  shouldForwardProp: (p) => !["$variant", "$visible", "$position"].includes(p)
9368
9638
  })(({ theme, $variant, $visible, $position }) => {
9369
- const variantStyles2 = {
9639
+ const variantStyles3 = {
9370
9640
  default: {
9371
9641
  backgroundColor: theme.palette.background.paper,
9372
9642
  border: `1px solid ${theme.palette.divider}`,
@@ -9407,7 +9677,7 @@ var Btn = styled("button", {
9407
9677
  outlineOffset: "3px"
9408
9678
  },
9409
9679
  ...POSITION_MAP[$position],
9410
- ...variantStyles2
9680
+ ...variantStyles3
9411
9681
  };
9412
9682
  });
9413
9683
  function BackToTop({
@@ -9595,7 +9865,7 @@ var ContextMenu = forwardRef(
9595
9865
  }
9596
9866
  );
9597
9867
  ContextMenu.displayName = "ContextMenu";
9598
- var Root44 = styled("div")(({ theme }) => ({
9868
+ var Root47 = styled("div")(({ theme }) => ({
9599
9869
  display: "flex",
9600
9870
  flexDirection: "column",
9601
9871
  alignItems: "center",
@@ -9623,7 +9893,7 @@ var Description8 = styled("p")(({ theme }) => ({
9623
9893
  maxWidth: "28rem"
9624
9894
  }));
9625
9895
  var EmptyState = forwardRef(
9626
- ({ icon, title, description, action, ...props }, ref) => /* @__PURE__ */ jsxs(Root44, { ref, ...props, children: [
9896
+ ({ icon, title, description, action, ...props }, ref) => /* @__PURE__ */ jsxs(Root47, { ref, ...props, children: [
9627
9897
  /* @__PURE__ */ jsx(IconWrap3, { "aria-hidden": true, children: icon ?? /* @__PURE__ */ jsx(InboxOutlinedIcon, {}) }),
9628
9898
  /* @__PURE__ */ jsxs("div", { children: [
9629
9899
  /* @__PURE__ */ jsx(Title6, { children: title }),
@@ -9643,7 +9913,7 @@ var FONT_SIZE2 = {
9643
9913
  md: "0.9375rem",
9644
9914
  lg: "1rem"
9645
9915
  };
9646
- var Root45 = styled("ul", {
9916
+ var Root48 = styled("ul", {
9647
9917
  shouldForwardProp: (p) => p !== "$variant"
9648
9918
  })(({ theme, $variant }) => ({
9649
9919
  listStyle: "none",
@@ -9738,7 +10008,7 @@ var SuffixWrap = styled("span")({
9738
10008
  var List4 = forwardRef(
9739
10009
  ({ items, size = "md", variant = "default", dividers = true, ...props }, ref) => {
9740
10010
  const effectiveVariant = !dividers && variant === "default" ? "default" : variant;
9741
- return /* @__PURE__ */ jsx(Root45, { ref, $variant: effectiveVariant, role: "list", ...props, children: items.map((item) => /* @__PURE__ */ jsxs(
10011
+ return /* @__PURE__ */ jsx(Root48, { ref, $variant: effectiveVariant, role: "list", ...props, children: items.map((item) => /* @__PURE__ */ jsxs(
9742
10012
  Item3,
9743
10013
  {
9744
10014
  role: "listitem",
@@ -9777,7 +10047,7 @@ var speedDuration = {
9777
10047
  normal: "20s",
9778
10048
  fast: "10s"
9779
10049
  };
9780
- var Root46 = styled("div")({
10050
+ var Root49 = styled("div")({
9781
10051
  overflow: "hidden",
9782
10052
  width: "100%",
9783
10053
  userSelect: "none"
@@ -9808,7 +10078,7 @@ var Marquee = forwardRef(
9808
10078
  /* @__PURE__ */ jsx(ItemWrap, { $gap: gapValue, "aria-hidden": "false", children }),
9809
10079
  /* @__PURE__ */ jsx(ItemWrap, { $gap: gapValue, "aria-hidden": "true", children })
9810
10080
  ] });
9811
- return /* @__PURE__ */ jsx(Root46, { ref, ...props, children: /* @__PURE__ */ jsx(Track5, { $direction: direction, $speed: speed, $pauseOnHover: pauseOnHover, $gap: gapValue, children: content }) });
10081
+ return /* @__PURE__ */ jsx(Root49, { ref, ...props, children: /* @__PURE__ */ jsx(Track5, { $direction: direction, $speed: speed, $pauseOnHover: pauseOnHover, $gap: gapValue, children: content }) });
9812
10082
  }
9813
10083
  );
9814
10084
  Marquee.displayName = "Marquee";
@@ -9964,7 +10234,7 @@ function Modal({
9964
10234
  );
9965
10235
  }
9966
10236
  var modalSizes = ["sm", "md", "lg", "xl", "full"];
9967
- var Root47 = styled("div")({ width: "100%" });
10237
+ var Root50 = styled("div")({ width: "100%" });
9968
10238
  var TabList = styled("div", {
9969
10239
  shouldForwardProp: (prop) => prop !== "$variant"
9970
10240
  })(({ theme, $variant }) => ({
@@ -10044,7 +10314,7 @@ var Tabs = forwardRef(
10044
10314
  onChange?.(key);
10045
10315
  };
10046
10316
  const activeTab = tabs.find((t) => t.key === activeKey);
10047
- return /* @__PURE__ */ jsxs(Root47, { ref, ...props, children: [
10317
+ return /* @__PURE__ */ jsxs(Root50, { ref, ...props, children: [
10048
10318
  /* @__PURE__ */ jsx(TabList, { role: "tablist", $variant: variant, children: tabs.map((tab) => /* @__PURE__ */ jsx(
10049
10319
  TabButton,
10050
10320
  {
@@ -10076,14 +10346,14 @@ var Tabs = forwardRef(
10076
10346
  );
10077
10347
  Tabs.displayName = "Tabs";
10078
10348
  var tabsVariants = ["underline", "pills", "bordered"];
10079
- var Root48 = styled("div")(({ theme }) => ({
10349
+ var Root51 = styled("div")(({ theme }) => ({
10080
10350
  display: "grid",
10081
10351
  gridTemplateColumns: "4.5rem 1fr",
10082
10352
  gap: "0.875rem",
10083
10353
  paddingBottom: "1rem",
10084
10354
  borderBottom: `1px solid ${theme.palette.divider}`
10085
10355
  }));
10086
- var ImageWrap5 = styled("div")(({ theme }) => ({
10356
+ var ImageWrap4 = styled("div")(({ theme }) => ({
10087
10357
  position: "relative",
10088
10358
  width: "4.5rem",
10089
10359
  height: "4.5rem",
@@ -10091,14 +10361,14 @@ var ImageWrap5 = styled("div")(({ theme }) => ({
10091
10361
  overflow: "hidden",
10092
10362
  flexShrink: 0
10093
10363
  }));
10094
- var Info4 = styled("div")({ display: "grid", gap: "0.5rem" });
10364
+ var Info5 = styled("div")({ display: "grid", gap: "0.5rem" });
10095
10365
  var Row5 = styled("div")({
10096
10366
  display: "flex",
10097
10367
  alignItems: "center",
10098
10368
  justifyContent: "space-between",
10099
10369
  gap: "0.75rem"
10100
10370
  });
10101
- var Name10 = styled("p")(({ theme }) => ({
10371
+ var Name12 = styled("p")(({ theme }) => ({
10102
10372
  margin: 0,
10103
10373
  color: theme.palette.text.primary,
10104
10374
  fontFamily: theme.typography.fontFamily,
@@ -10128,11 +10398,11 @@ var CartDrawerItem = ({
10128
10398
  imageAlt,
10129
10399
  onQuantityChange,
10130
10400
  onRemove
10131
- }) => /* @__PURE__ */ jsxs(Root48, { children: [
10132
- /* @__PURE__ */ jsx(ImageWrap5, { children: /* @__PURE__ */ jsx(ProductCardImage, { src: imageUrl, alt: imageAlt ?? name }) }),
10133
- /* @__PURE__ */ jsxs(Info4, { children: [
10401
+ }) => /* @__PURE__ */ jsxs(Root51, { children: [
10402
+ /* @__PURE__ */ jsx(ImageWrap4, { children: /* @__PURE__ */ jsx(ProductCardImage, { src: imageUrl, alt: imageAlt ?? name }) }),
10403
+ /* @__PURE__ */ jsxs(Info5, { children: [
10134
10404
  /* @__PURE__ */ jsxs(Row5, { children: [
10135
- /* @__PURE__ */ jsx(Name10, { children: name }),
10405
+ /* @__PURE__ */ jsx(Name12, { children: name }),
10136
10406
  /* @__PURE__ */ jsx(Price3, { children: price })
10137
10407
  ] }),
10138
10408
  /* @__PURE__ */ jsxs(Row5, { children: [
@@ -10243,7 +10513,7 @@ var CartDrawer = forwardRef(
10243
10513
  ] }) })
10244
10514
  );
10245
10515
  CartDrawer.displayName = "CartDrawer";
10246
- var Root49 = styled("aside")(({ theme }) => ({
10516
+ var Root52 = styled("aside")(({ theme }) => ({
10247
10517
  display: "grid",
10248
10518
  gap: "1.5rem",
10249
10519
  width: "100%",
@@ -10335,7 +10605,7 @@ var FilterSidebar = forwardRef(
10335
10605
  onPriceRangeChange,
10336
10606
  onClear,
10337
10607
  ...props
10338
- }, ref) => /* @__PURE__ */ jsxs(Root49, { ref, "aria-label": "Filtry produkt\xF3w", ...props, children: [
10608
+ }, ref) => /* @__PURE__ */ jsxs(Root52, { ref, "aria-label": "Filtry produkt\xF3w", ...props, children: [
10339
10609
  /* @__PURE__ */ jsxs(Header4, { children: [
10340
10610
  /* @__PURE__ */ jsx(Title9, { children: "Filtry" }),
10341
10611
  onClear && /* @__PURE__ */ jsx(Button, { variant: "ghost", size: "sm", onClick: onClear, children: "Wyczy\u015B\u0107" })
@@ -10378,13 +10648,13 @@ var FilterSidebar = forwardRef(
10378
10648
  ] })
10379
10649
  );
10380
10650
  FilterSidebar.displayName = "FilterSidebar";
10381
- var Root50 = styled("li")({
10651
+ var Root53 = styled("li")({
10382
10652
  display: "grid",
10383
10653
  gridTemplateColumns: "3.5rem 1fr auto",
10384
10654
  alignItems: "center",
10385
10655
  gap: "0.75rem"
10386
10656
  });
10387
- var ImageWrap6 = styled("div")(({ theme }) => ({
10657
+ var ImageWrap5 = styled("div")(({ theme }) => ({
10388
10658
  position: "relative",
10389
10659
  width: "3.5rem",
10390
10660
  height: "3.5rem",
@@ -10392,8 +10662,8 @@ var ImageWrap6 = styled("div")(({ theme }) => ({
10392
10662
  overflow: "hidden",
10393
10663
  flexShrink: 0
10394
10664
  }));
10395
- var Info5 = styled("div")({ minWidth: 0 });
10396
- var Name11 = styled("p")(({ theme }) => ({
10665
+ var Info6 = styled("div")({ minWidth: 0 });
10666
+ var Name13 = styled("p")(({ theme }) => ({
10397
10667
  margin: 0,
10398
10668
  color: theme.palette.text.primary,
10399
10669
  fontFamily: theme.typography.fontFamily,
@@ -10422,10 +10692,10 @@ var OrderSummaryItem = ({
10422
10692
  imageAlt,
10423
10693
  quantity,
10424
10694
  meta
10425
- }) => /* @__PURE__ */ jsxs(Root50, { children: [
10426
- /* @__PURE__ */ jsx(ImageWrap6, { children: /* @__PURE__ */ jsx(ProductCardImage, { src: imageUrl, alt: imageAlt ?? String(name) }) }),
10427
- /* @__PURE__ */ jsxs(Info5, { children: [
10428
- /* @__PURE__ */ jsx(Name11, { children: name }),
10695
+ }) => /* @__PURE__ */ jsxs(Root53, { children: [
10696
+ /* @__PURE__ */ jsx(ImageWrap5, { children: /* @__PURE__ */ jsx(ProductCardImage, { src: imageUrl, alt: imageAlt ?? String(name) }) }),
10697
+ /* @__PURE__ */ jsxs(Info6, { children: [
10698
+ /* @__PURE__ */ jsx(Name13, { children: name }),
10429
10699
  (quantity !== void 0 || meta) && /* @__PURE__ */ jsxs(Meta2, { children: [
10430
10700
  quantity !== void 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
10431
10701
  "Ilo\u015B\u0107: ",
@@ -10438,7 +10708,7 @@ var OrderSummaryItem = ({
10438
10708
  /* @__PURE__ */ jsx(Price4, { children: price })
10439
10709
  ] });
10440
10710
  OrderSummaryItem.displayName = "OrderSummaryItem";
10441
- var Root51 = styled("div", {
10711
+ var Root54 = styled("div", {
10442
10712
  shouldForwardProp: (prop) => prop !== "$total"
10443
10713
  })(({ theme, $total }) => ({
10444
10714
  display: "flex",
@@ -10450,12 +10720,12 @@ var Root51 = styled("div", {
10450
10720
  fontWeight: $total ? 800 : 400,
10451
10721
  "& dt, & dd": { margin: 0 }
10452
10722
  }));
10453
- var OrderSummaryRow = ({ label, value, total = false }) => /* @__PURE__ */ jsxs(Root51, { as: "div", $total: total, children: [
10723
+ var OrderSummaryRow = ({ label, value, total = false }) => /* @__PURE__ */ jsxs(Root54, { as: "div", $total: total, children: [
10454
10724
  /* @__PURE__ */ jsx("dt", { children: label }),
10455
10725
  /* @__PURE__ */ jsx("dd", { children: value })
10456
10726
  ] });
10457
10727
  OrderSummaryRow.displayName = "OrderSummaryRow";
10458
- var Root52 = styled(Card)({ display: "grid", gap: "1rem" });
10728
+ var Root55 = styled(Card)({ display: "grid", gap: "1rem" });
10459
10729
  var Title10 = styled("h2")(({ theme }) => ({
10460
10730
  margin: 0,
10461
10731
  fontFamily: theme.typography.fontFamily,
@@ -10497,7 +10767,7 @@ var OrderSummary = forwardRef(
10497
10767
  ctaLabel = "Przejd\u017A do kasy",
10498
10768
  onCheckout,
10499
10769
  ...props
10500
- }, ref) => /* @__PURE__ */ jsxs(Root52, { ref, variant: "default", padding: "lg", rounded: "lg", ...props, children: [
10770
+ }, ref) => /* @__PURE__ */ jsxs(Root55, { ref, variant: "default", padding: "lg", rounded: "lg", ...props, children: [
10501
10771
  /* @__PURE__ */ jsx(Title10, { children: title }),
10502
10772
  items.length > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
10503
10773
  /* @__PURE__ */ jsx(SectionTitle, { children: itemsTitle }),
@@ -10517,7 +10787,7 @@ var OrderSummary = forwardRef(
10517
10787
  ] })
10518
10788
  );
10519
10789
  OrderSummary.displayName = "OrderSummary";
10520
- var Root53 = styled("div")(({ theme }) => ({
10790
+ var Root56 = styled("div")(({ theme }) => ({
10521
10791
  fontFamily: theme.typography.fontFamily
10522
10792
  }));
10523
10793
  var Grid2 = styled("div", {
@@ -10552,7 +10822,7 @@ var ScrollTrack = styled("div")({
10552
10822
  }
10553
10823
  });
10554
10824
  var RelatedProducts = forwardRef(
10555
- ({ products, title = "Podobne produkty", layout = "grid", columns = 4, ...props }, ref) => /* @__PURE__ */ jsxs(Root53, { ref, ...props, children: [
10825
+ ({ products, title = "Podobne produkty", layout = "grid", columns = 4, ...props }, ref) => /* @__PURE__ */ jsxs(Root56, { ref, ...props, children: [
10556
10826
  /* @__PURE__ */ jsx(SectionHeading, { title, align: "left", style: { marginBottom: "1.5rem" } }),
10557
10827
  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)) })
10558
10828
  ] })
@@ -10611,7 +10881,13 @@ var ReviewItem = ({ review }) => /* @__PURE__ */ jsxs(Card2, { children: [
10611
10881
  /* @__PURE__ */ jsxs(AuthorInfo, { children: [
10612
10882
  /* @__PURE__ */ jsxs(AuthorName, { children: [
10613
10883
  review.author,
10614
- review.verified && /* @__PURE__ */ jsx(VerifiedIcon, { "aria-label": "Zweryfikowany zakup", style: { fontSize: 14, color: "#16a34a" } })
10884
+ review.verified && /* @__PURE__ */ jsx(
10885
+ VerifiedIcon,
10886
+ {
10887
+ "aria-label": "Zweryfikowany zakup",
10888
+ style: { fontSize: 14, color: "#16a34a" }
10889
+ }
10890
+ )
10615
10891
  ] }),
10616
10892
  /* @__PURE__ */ jsx(ReviewDate, { children: review.date })
10617
10893
  ] }),
@@ -10626,7 +10902,7 @@ var ReviewItem = ({ review }) => /* @__PURE__ */ jsxs(Card2, { children: [
10626
10902
  ] })
10627
10903
  ] });
10628
10904
  ReviewItem.displayName = "ReviewItem";
10629
- var Root54 = styled("div")(({ theme }) => ({
10905
+ var Root57 = styled("div")(({ theme }) => ({
10630
10906
  display: "flex",
10631
10907
  alignItems: "center",
10632
10908
  gap: "2rem",
@@ -10688,7 +10964,7 @@ var ReviewSummary = ({
10688
10964
  ratingDistribution
10689
10965
  }) => {
10690
10966
  const totalDist = ratingDistribution ? Object.values(ratingDistribution).reduce((a, b) => a + b, 0) : 0;
10691
- return /* @__PURE__ */ jsxs(Root54, { children: [
10967
+ return /* @__PURE__ */ jsxs(Root57, { children: [
10692
10968
  /* @__PURE__ */ jsxs(AverageBlock, { children: [
10693
10969
  /* @__PURE__ */ jsx(Score, { children: averageRating.toFixed(1) }),
10694
10970
  /* @__PURE__ */ jsx(Rating, { value: averageRating, size: "sm", readonly: true }),
@@ -10712,7 +10988,7 @@ var ReviewSummary = ({
10712
10988
  ] });
10713
10989
  };
10714
10990
  ReviewSummary.displayName = "ReviewSummary";
10715
- var Root55 = styled("div")(({ theme }) => ({
10991
+ var Root58 = styled("div")(({ theme }) => ({
10716
10992
  fontFamily: theme.typography.fontFamily
10717
10993
  }));
10718
10994
  var ReviewList = styled("div")({
@@ -10721,7 +10997,14 @@ var ReviewList = styled("div")({
10721
10997
  gap: "1.5rem"
10722
10998
  });
10723
10999
  var ReviewSection = forwardRef(
10724
- ({ reviews, averageRating, totalReviews, title = "Opinie klient\xF3w", ratingDistribution, ...props }, ref) => /* @__PURE__ */ jsxs(Root55, { ref, ...props, children: [
11000
+ ({
11001
+ reviews,
11002
+ averageRating,
11003
+ totalReviews,
11004
+ title = "Opinie klient\xF3w",
11005
+ ratingDistribution,
11006
+ ...props
11007
+ }, ref) => /* @__PURE__ */ jsxs(Root58, { ref, ...props, children: [
10725
11008
  /* @__PURE__ */ jsx(SectionHeading, { title, align: "left", style: { marginBottom: "1.5rem" } }),
10726
11009
  averageRating !== void 0 && /* @__PURE__ */ jsx("div", { style: { marginBottom: "2rem" }, children: /* @__PURE__ */ jsx(
10727
11010
  ReviewSummary,
@@ -10735,7 +11018,82 @@ var ReviewSection = forwardRef(
10735
11018
  ] })
10736
11019
  );
10737
11020
  ReviewSection.displayName = "ReviewSection";
10738
- var List5 = styled("div")(({ $hasHeading }) => ({
11021
+ var Heading = styled("h2")(({ theme }) => ({
11022
+ margin: "0 0 2rem",
11023
+ fontFamily: theme.typography.fontFamily,
11024
+ fontSize: "1.5rem",
11025
+ fontWeight: 700,
11026
+ color: theme.palette.text.primary
11027
+ }));
11028
+ var CommentCount = styled("span")(({ theme }) => ({
11029
+ marginLeft: "0.375rem",
11030
+ color: theme.palette.text.secondary,
11031
+ fontWeight: 400
11032
+ }));
11033
+ var List5 = styled("div")({
11034
+ display: "flex",
11035
+ flexDirection: "column"
11036
+ });
11037
+ var ThreadWrapper = styled("div")(({ theme }) => ({
11038
+ display: "flex",
11039
+ flexDirection: "column",
11040
+ gap: "1.5rem",
11041
+ paddingTop: "1.5rem",
11042
+ paddingBottom: "1.5rem",
11043
+ borderBottom: `1px solid ${theme.palette.divider}`,
11044
+ "&:first-of-type": {
11045
+ paddingTop: 0
11046
+ },
11047
+ "&:last-child": {
11048
+ borderBottom: "none",
11049
+ paddingBottom: 0
11050
+ }
11051
+ }));
11052
+ var Replies = styled("div")({
11053
+ display: "flex",
11054
+ flexDirection: "column",
11055
+ gap: "1.5rem"
11056
+ });
11057
+ function countTotal(comments) {
11058
+ return comments.reduce((acc, c) => acc + 1 + (c.replies?.length ?? 0), 0);
11059
+ }
11060
+ var CommentSection = forwardRef(
11061
+ ({
11062
+ title = "Komentarze",
11063
+ comments,
11064
+ maxWidth = "xl",
11065
+ onLike,
11066
+ onReply,
11067
+ ...rest
11068
+ }, ref) => {
11069
+ const total = countTotal(comments);
11070
+ return /* @__PURE__ */ jsx(Section, { ref, ...rest, children: /* @__PURE__ */ jsxs(Container, { maxWidth, children: [
11071
+ /* @__PURE__ */ jsxs(Heading, { children: [
11072
+ title,
11073
+ /* @__PURE__ */ jsxs(CommentCount, { children: [
11074
+ "(",
11075
+ total,
11076
+ ")"
11077
+ ] })
11078
+ ] }),
11079
+ /* @__PURE__ */ jsx(List5, { children: comments.map((comment) => /* @__PURE__ */ jsxs(ThreadWrapper, { children: [
11080
+ /* @__PURE__ */ jsx(CommentCard, { comment, depth: 0, onLike, onReply }),
11081
+ comment.replies && comment.replies.length > 0 && /* @__PURE__ */ jsx(Replies, { children: comment.replies.map((reply) => /* @__PURE__ */ jsx(
11082
+ CommentCard,
11083
+ {
11084
+ comment: reply,
11085
+ depth: 1,
11086
+ onLike,
11087
+ onReply
11088
+ },
11089
+ reply.id
11090
+ )) })
11091
+ ] }, comment.id)) })
11092
+ ] }) });
11093
+ }
11094
+ );
11095
+ CommentSection.displayName = "CommentSection";
11096
+ var List6 = styled("div")(({ $hasHeading }) => ({
10739
11097
  marginTop: $hasHeading ? "2.5rem" : 0
10740
11098
  }));
10741
11099
  var FaqSection = forwardRef(
@@ -10751,7 +11109,7 @@ var FaqSection = forwardRef(
10751
11109
  const hasHeading = Boolean(title || description);
10752
11110
  return /* @__PURE__ */ jsx(Section, { ref, ...rest, children: /* @__PURE__ */ jsxs(Container, { maxWidth, children: [
10753
11111
  hasHeading && /* @__PURE__ */ jsx(SectionHeading, { title: title ?? "", description, align: headingAlign }),
10754
- /* @__PURE__ */ jsx(List5, { $hasHeading: hasHeading, children: items.map((item, index) => /* @__PURE__ */ jsx(
11112
+ /* @__PURE__ */ jsx(List6, { $hasHeading: hasHeading, children: items.map((item, index) => /* @__PURE__ */ jsx(
10755
11113
  FaqItem,
10756
11114
  {
10757
11115
  item,
@@ -11570,7 +11928,7 @@ var TopRow = styled("div")({
11570
11928
  gap: "1rem",
11571
11929
  flexWrap: "wrap"
11572
11930
  });
11573
- var TextBlock = styled("div")({ flex: 1, minWidth: "16rem" });
11931
+ var TextBlock2 = styled("div")({ flex: 1, minWidth: "16rem" });
11574
11932
  var Title12 = styled("p")(({ theme }) => ({
11575
11933
  margin: "0 0 0.25rem",
11576
11934
  fontFamily: theme.typography.fontFamily,
@@ -11591,7 +11949,7 @@ var Link3 = styled("a")(({ theme }) => ({
11591
11949
  textDecoration: "underline",
11592
11950
  "&:hover": { opacity: 0.8 }
11593
11951
  }));
11594
- var Actions = styled("div")({
11952
+ var Actions2 = styled("div")({
11595
11953
  display: "flex",
11596
11954
  alignItems: "center",
11597
11955
  gap: "0.625rem",
@@ -11735,7 +12093,7 @@ function CookieConsent({
11735
12093
  return createPortal(
11736
12094
  /* @__PURE__ */ jsx(Bar2, { role: "region", "aria-label": "Zgoda na pliki cookie", "aria-live": "polite", children: /* @__PURE__ */ jsxs(Inner4, { children: [
11737
12095
  /* @__PURE__ */ jsxs(TopRow, { children: [
11738
- /* @__PURE__ */ jsxs(TextBlock, { children: [
12096
+ /* @__PURE__ */ jsxs(TextBlock2, { children: [
11739
12097
  /* @__PURE__ */ jsx(Title12, { children: title }),
11740
12098
  /* @__PURE__ */ jsxs(Description9, { children: [
11741
12099
  description,
@@ -11745,7 +12103,7 @@ function CookieConsent({
11745
12103
  ] })
11746
12104
  ] })
11747
12105
  ] }),
11748
- /* @__PURE__ */ jsxs(Actions, { children: [
12106
+ /* @__PURE__ */ jsxs(Actions2, { children: [
11749
12107
  /* @__PURE__ */ jsx(
11750
12108
  TextButton,
11751
12109
  {
@@ -11787,7 +12145,7 @@ function CookieConsent({
11787
12145
  );
11788
12146
  }
11789
12147
  var defaultCookieCategories = DEFAULT_CATEGORIES;
11790
- var Root56 = styled("footer")(({ theme }) => ({
12148
+ var Root59 = styled("footer")(({ theme }) => ({
11791
12149
  width: "100%",
11792
12150
  backgroundColor: theme.palette.background.paper,
11793
12151
  borderTop: `1px solid ${theme.palette.divider}`
@@ -11925,7 +12283,7 @@ function Footer7({
11925
12283
  style
11926
12284
  }) {
11927
12285
  const colCount = columns.length;
11928
- return /* @__PURE__ */ jsx(Root56, { style, children: /* @__PURE__ */ jsxs(Container$1, { maxWidth, sx: { pt: "3rem", pb: "2rem" }, children: [
12286
+ return /* @__PURE__ */ jsx(Root59, { style, children: /* @__PURE__ */ jsxs(Container, { maxWidth, style: { paddingTop: "3rem", paddingBottom: "2rem" }, children: [
11929
12287
  (logo || description || colCount > 0) && /* @__PURE__ */ jsxs(TopRow2, { style: { "--col-count": colCount }, children: [
11930
12288
  (logo || description) && /* @__PURE__ */ jsxs(BrandBlock, { children: [
11931
12289
  logo,
@@ -11952,7 +12310,7 @@ function Footer7({
11952
12310
  ] })
11953
12311
  ] }) });
11954
12312
  }
11955
- var Root57 = styled("header", {
12313
+ var Root60 = styled("header", {
11956
12314
  shouldForwardProp: (p) => p !== "$sticky" && p !== "$variant"
11957
12315
  })(({ theme, $sticky, $variant }) => ({
11958
12316
  position: $sticky ? "sticky" : "relative",
@@ -12064,12 +12422,12 @@ function Navbar({
12064
12422
  style
12065
12423
  }) {
12066
12424
  const [mobileOpen, setMobileOpen] = useState(false);
12067
- return /* @__PURE__ */ jsxs(Root57, { $sticky: sticky, $variant: variant, style, children: [
12425
+ return /* @__PURE__ */ jsxs(Root60, { $sticky: sticky, $variant: variant, style, children: [
12068
12426
  /* @__PURE__ */ jsxs(
12069
- Container$1,
12427
+ Container,
12070
12428
  {
12071
12429
  maxWidth,
12072
- sx: { height: "3.75rem", display: "flex", alignItems: "center", gap: "1.5rem" },
12430
+ style: { height: "3.75rem", display: "flex", alignItems: "center", gap: "1.5rem" },
12073
12431
  children: [
12074
12432
  logo && /* @__PURE__ */ jsx(LogoSlot, { children: logo }),
12075
12433
  /* @__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)) }),
@@ -12089,66 +12447,51 @@ function Navbar({
12089
12447
  ]
12090
12448
  }
12091
12449
  ),
12092
- navItems.length > 0 && /* @__PURE__ */ jsx(MobileDrawer, { $open: mobileOpen, "aria-label": "Menu mobilne", children: /* @__PURE__ */ jsx(Container$1, { maxWidth, children: navItems.map((item) => /* @__PURE__ */ jsx(MobileNavLink, { href: item.href, $active: !!item.active, children: item.label }, item.href)) }) })
12450
+ navItems.length > 0 && /* @__PURE__ */ jsx(MobileDrawer, { $open: mobileOpen, "aria-label": "Menu mobilne", children: /* @__PURE__ */ jsx(Container, { maxWidth, children: navItems.map((item) => /* @__PURE__ */ jsx(MobileNavLink, { href: item.href, $active: !!item.active, children: item.label }, item.href)) }) })
12093
12451
  ] });
12094
12452
  }
12095
- var ss = "sans-serif";
12453
+ var fontFamily = "'Lato', sans-serif";
12096
12454
  var typographyOptions = {
12097
- fontFamily: ["'Lato'", ss].join(","),
12098
- h1: {
12099
- fontFamily: ["'Lato'", ss].join(","),
12100
- fontSize: "1.75rem"
12101
- },
12102
- h2: {
12103
- fontFamily: ["'Lato'", ss].join(","),
12104
- fontSize: "1.375rem"
12105
- },
12106
- h3: {
12107
- fontFamily: ["'Lato'", ss].join(","),
12108
- fontSize: "1.125rem"
12109
- },
12110
- h4: {
12111
- fontFamily: ["'Lato'", ss].join(","),
12112
- fontSize: "1rem"
12113
- },
12114
- h5: {
12115
- fontFamily: ["'Lato'", ss].join(","),
12116
- fontSize: "0.875rem"
12117
- },
12118
- h6: {
12119
- fontFamily: ["'Lato'", ss].join(","),
12120
- fontSize: "0.75rem"
12121
- }
12455
+ fontFamily,
12456
+ h1: { fontSize: "1.75rem" },
12457
+ h2: { fontSize: "1.375rem" },
12458
+ h3: { fontSize: "1.125rem" },
12459
+ h4: { fontSize: "1rem" },
12460
+ h5: { fontSize: "0.875rem" },
12461
+ h6: { fontSize: "0.75rem" }
12122
12462
  };
12123
- var themeLight = createTheme({
12463
+ var themeBase = {
12124
12464
  typography: typographyOptions,
12465
+ palette: {
12466
+ error: { main: "#d32f2f", dark: "#b71c1c", light: "#ef5350", contrastText: "#ffffff" },
12467
+ success: { main: "#388e3c", dark: "#2e7d32", light: "#66bb6a", contrastText: "#ffffff" },
12468
+ warning: { main: "#f57c00", dark: "#ef6c00", light: "#ffb74d", contrastText: "#000000" },
12469
+ info: { main: "#1976d2", dark: "#1565c0", light: "#42a5f5", contrastText: "#ffffff" }
12470
+ }
12471
+ };
12472
+ var themeLight = createTheme(themeBase, {
12125
12473
  palette: {
12126
12474
  mode: "light",
12127
12475
  primary: { main: "#1976d2", dark: "#1565c0", light: "#42a5f5", contrastText: "#ffffff" },
12128
12476
  secondary: { main: "#6b7280", dark: "#4b5563", light: "#9ca3af", contrastText: "#ffffff" },
12129
- error: { main: "#d32f2f", dark: "#b71c1c", light: "#ef5350", contrastText: "#ffffff" },
12130
12477
  action: { disabled: "rgba(0,0,0,0.38)", disabledBackground: "rgba(0,0,0,0.12)" },
12131
12478
  background: { default: "#ffffff", paper: "#f5f5f5" }
12132
12479
  }
12133
12480
  });
12134
- var themeDark = createTheme({
12135
- typography: typographyOptions,
12481
+ var themeDark = createTheme(themeBase, {
12136
12482
  palette: {
12137
12483
  mode: "dark",
12138
12484
  primary: { main: "#90caf9", dark: "#42a5f5", light: "#bbdefb", contrastText: "#0d1b2a" },
12139
12485
  secondary: { main: "#9ca3af", dark: "#6b7280", light: "#d1d5db", contrastText: "#111827" },
12140
- error: { main: "#f48fb1", dark: "#f06292", light: "#fce4ec", contrastText: "#1a0010" },
12141
12486
  action: { disabled: "rgba(255,255,255,0.30)", disabledBackground: "rgba(255,255,255,0.12)" },
12142
12487
  background: { default: "#121212", paper: "#1e1e1e" }
12143
12488
  }
12144
12489
  });
12145
- var themeHighContrast = createTheme({
12146
- typography: typographyOptions,
12490
+ var themeHighContrast = createTheme(themeBase, {
12147
12491
  palette: {
12148
12492
  mode: "dark",
12149
12493
  primary: { main: "#ffffff", dark: "#e0e0e0", light: "#ffffff", contrastText: "#000000" },
12150
12494
  secondary: { main: "#ffff00", dark: "#cccc00", light: "#ffff66", contrastText: "#000000" },
12151
- error: { main: "#ff6b6b", dark: "#ff3333", light: "#ffaaaa", contrastText: "#000000" },
12152
12495
  action: { disabled: "rgba(255,255,255,0.38)", disabledBackground: "rgba(255,255,255,0.12)" },
12153
12496
  background: { default: "#000000", paper: "#1a1a1a" }
12154
12497
  }
@@ -12197,6 +12540,6 @@ var MyThemeProvider = ({
12197
12540
  ] });
12198
12541
  };
12199
12542
 
12200
- export { Accordion, Alert, Article, AspectRatio, Avatar, BackToTop, Badge2 as Badge, BaseInput, BaseSelectInput, Box2 as Box, Breadcrumbs, Button, Card, Carousel, CartButton, CartDrawer, CartDrawerItem as CartDrawerItemComponent, CategoryCard, CategoryCardImage, CategoryCardInfo, CheckboxInput, CommandPalette, CompareTool, Container, ContextMenu, CookieConsent, CountdownTimer, CountryFlag, CouponInput, DateTimePicker, DealCard, EmailInput, EmptyState, FaqItem, FaqSection, FeatureGrid, FeatureItem, FileInput, FilterSidebar, Footer7 as Footer, Lightbox, List4 as List, LogoCloud, LogoTile, Main, Marquee, Modal, MultiSelectInput, MyThemeProvider, Navbar, NewsletterSection, NumberInput, OrderSummary, OrderSummaryItem as OrderSummaryItemComponent, OrderSummaryRow, PaginationBar, PaginationButton, PaginationEllipsis, Partners, PasswordInput, PaymentMethodSelector, PhoneInput, PostCard, PostCardImage, PostCardMeta, Price, PricingCard, PricingCardFeatureList, PricingCardPrice, PricingSection, ProcessSection, ProcessStep, ProductCard, ProductCardHorizontal, ProductCardImage, ProductGallery, ProgressBar, ProgressCircle, PromoStrip, Prose, QuantitySelector, RangeSlider, Rating, RelatedProducts, ReviewItem, ReviewSection, ReviewSummary, SaleBadge, SearchInput, Section, SectionHeading, SelectInput, ShippingSelector, Skeleton, SortBar, Spinner3 as Spinner, StatCard, StatsSection, StockStatus, SwitchInput, Tabs, TeamMemberAvatar, TeamMemberCard, TeamMemberInfo, TeamSection, TestimonialAuthor, TestimonialCard, TestimonialQuote, TestimonialsSection, TextInput, TextareaInput, Timeline, VariantSelector, VideoPlayer, VoucherCard, 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 };
12543
+ export { Accordion, Alert, Article, AspectRatio, Avatar, BackToTop, Badge2 as Badge, BaseInput, BaseSelectInput, Box2 as Box, Breadcrumbs, Button, Card, Carousel, CartButton, CartDrawer, CartDrawerItem as CartDrawerItemComponent, CategoryCard, CategoryCardImage, CategoryCardInfo, CheckboxInput, CommandPalette, CommentActions, CommentBody, CommentCard, CommentMeta, CommentSection, CompareTool, Container, ContextMenu, CookieConsent, CountdownTimer, CountryFlag, CouponInput, DateTimePicker, DealCard, EmailInput, EmptyState, FaqItem, FaqSection, FeatureGrid, FeatureItem, FileInput, FilterSidebar, Footer7 as Footer, Image, Lightbox, List4 as List, LogoCloud, LogoTile, Main, Marquee, Modal, MultiSelectInput, MyThemeProvider, Navbar, NewsletterSection, NumberInput, OrderSummary, OrderSummaryItem as OrderSummaryItemComponent, OrderSummaryRow, PaginationBar, PaginationButton, PaginationEllipsis, Partners, PasswordInput, PaymentMethodSelector, PhoneInput, PostCard, PostCardImage, PostCardMeta, Price, PricingCard, PricingCardFeatureList, PricingCardPrice, PricingSection, ProcessSection, ProcessStep, ProductCard, ProductCardHorizontal, ProductCardImage, ProductGallery, ProfileCard, ProgressBar, ProgressCircle, PromoStrip, Prose, QuantitySelector, RangeSlider, Rating, RelatedProducts, ReviewItem, ReviewSection, ReviewSummary, SearchInput, Section, SectionHeading, SelectInput, ShippingSelector, Skeleton, SortBar, Spinner3 as Spinner, StatCard, StatsSection, StockStatus, SwitchInput, Tabs, TeamMemberAvatar, TeamMemberCard, TeamMemberInfo, TeamSection, TestimonialAuthor, TestimonialCard, TestimonialQuote, TestimonialsSection, TextInput, TextareaInput, Timeline, VariantSelector, VideoPlayer, VoucherCard, 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, sectionHeadingAligns, skeletonVariants, spinnerColors, spinnerSizes, spinnerVariants, statsSectionColumns, stockStatusValues, switchColors, tabsVariants, teamSectionColumns, testimonialsSectionColumns, themeDark, themeHighContrast, themeLight, timelineItemStatuses, timelineVariants, variantSelectorModes };
12201
12544
  //# sourceMappingURL=index.js.map
12202
12545
  //# sourceMappingURL=index.js.map