@szymonpiatek/designsystem 0.0.13 → 0.0.14

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
@@ -194,14 +194,32 @@ function getVariantStyles(variant, theme) {
194
194
  }
195
195
  }
196
196
  var StyledCard = styled("div", {
197
- shouldForwardProp: (prop) => !["$variant", "$padding", "$rounded"].includes(prop)
198
- })(({ theme, $variant, $padding, $rounded }) => ({
197
+ shouldForwardProp: (prop) => !["$variant", "$padding", "$rounded", "$hoverEffect"].includes(prop)
198
+ })(({ theme, $variant, $padding, $rounded, $hoverEffect }) => ({
199
199
  padding: paddingMap[$padding],
200
200
  borderRadius: roundedMap[$rounded],
201
- ...getVariantStyles($variant, theme)
201
+ ...getVariantStyles($variant, theme),
202
+ ...$hoverEffect && {
203
+ cursor: "pointer",
204
+ transition: "box-shadow 150ms ease, transform 150ms ease",
205
+ "&:hover": {
206
+ boxShadow: theme.shadows[4],
207
+ transform: "translateY(-2px)"
208
+ }
209
+ }
202
210
  }));
203
211
  var Card = forwardRef(
204
- ({ variant = "default", padding = "md", rounded = "lg", ...props }, ref) => /* @__PURE__ */ jsx(StyledCard, { ref, $variant: variant, $padding: padding, $rounded: rounded, ...props })
212
+ ({ variant = "default", padding = "md", rounded = "lg", hoverEffect = false, ...props }, ref) => /* @__PURE__ */ jsx(
213
+ StyledCard,
214
+ {
215
+ ref,
216
+ $variant: variant,
217
+ $padding: padding,
218
+ $rounded: rounded,
219
+ $hoverEffect: hoverEffect,
220
+ ...props
221
+ }
222
+ )
205
223
  );
206
224
  Card.displayName = "Card";
207
225
  var cardVariants = [
@@ -496,14 +514,16 @@ var Accordion = forwardRef(
496
514
  Accordion.displayName = "Accordion";
497
515
  var accordionVariants = ["default", "bordered", "separated"];
498
516
  var iconSizeMap = {
499
- sm: 18,
500
- md: 20,
501
- lg: 24
517
+ sm: 16,
518
+ md: 18,
519
+ lg: 20,
520
+ xl: 24
502
521
  };
503
522
  var sizeMap3 = {
504
- sm: { height: "2rem", paddingInline: "0.75rem", fontSize: "0.75rem", gap: "0.25rem" },
505
- md: { height: "2.5rem", paddingInline: "1.25rem", fontSize: "0.875rem", gap: "0.375rem" },
506
- lg: { height: "3rem", paddingInline: "1.75rem", fontSize: "1rem", gap: "0.5rem" }
523
+ sm: { height: "1.625rem", paddingInline: "0.5rem", fontSize: "0.625rem", gap: "0.125rem" },
524
+ md: { height: "2rem", paddingInline: "0.75rem", fontSize: "0.75rem", gap: "0.25rem" },
525
+ lg: { height: "2.5rem", paddingInline: "1.25rem", fontSize: "0.875rem", gap: "0.375rem" },
526
+ xl: { height: "3rem", paddingInline: "1.75rem", fontSize: "1rem", gap: "0.5rem" }
507
527
  };
508
528
  var variantStyles = {
509
529
  primary: (theme) => ({
@@ -1020,7 +1040,7 @@ var ContextMenu = forwardRef(
1020
1040
  }
1021
1041
  );
1022
1042
  ContextMenu.displayName = "ContextMenu";
1023
- var sizeMap4 = { sm: "1em", md: "1.25em", lg: "1.75em" };
1043
+ var sizeMap4 = { sm: "1em", md: "1.25em", lg: "1.75em", xl: "2.25em" };
1024
1044
  var toFlagEmoji = (code) => code.toUpperCase().replace(/[A-Z]/g, (char) => String.fromCodePoint(127462 + char.charCodeAt(0) - 65));
1025
1045
  var CountryFlag = ({ countryCode, size = "md", style, ...rest }) => /* @__PURE__ */ jsx(
1026
1046
  "span",
@@ -1076,12 +1096,14 @@ EmptyState.displayName = "EmptyState";
1076
1096
  var inputSizeMap = {
1077
1097
  sm: { padding: "0.25rem 0.5rem", fontSize: "0.75rem", gap: "0.25rem" },
1078
1098
  md: { padding: "0.375rem 0.75rem", fontSize: "0.875rem", gap: "0.375rem" },
1079
- lg: { padding: "0.5rem 1rem", fontSize: "1rem", gap: "0.5rem" }
1099
+ lg: { padding: "0.5rem 1rem", fontSize: "1rem", gap: "0.5rem" },
1100
+ xl: { padding: "0.625rem 1.25rem", fontSize: "1.125rem", gap: "0.625rem" }
1080
1101
  };
1081
1102
  var inputHeightMap = {
1082
1103
  sm: "26px",
1083
1104
  md: "32px",
1084
- lg: "38.5px"
1105
+ lg: "40px",
1106
+ xl: "48px"
1085
1107
  };
1086
1108
  var DropdownPanel = styled("div")(({ theme }) => ({
1087
1109
  position: "absolute",
@@ -1097,7 +1119,8 @@ var Chevron = () => /* @__PURE__ */ jsx(ExpandMoreIcon, { "aria-hidden": true, s
1097
1119
  var labelSizeMap = {
1098
1120
  sm: "0.625rem",
1099
1121
  md: "0.75rem",
1100
- lg: "0.875rem"
1122
+ lg: "0.875rem",
1123
+ xl: "1rem"
1101
1124
  };
1102
1125
  var StyledLabel = styled("label")(({ theme, $error, $size }) => ({
1103
1126
  display: "block",
@@ -1107,7 +1130,16 @@ var StyledLabel = styled("label")(({ theme, $error, $size }) => ({
1107
1130
  fontFamily: theme.typography.fontFamily,
1108
1131
  color: $error ? theme.palette.error.main : theme.palette.text.primary
1109
1132
  }));
1110
- var Label = ({ error = false, size = "md", children, ...rest }) => /* @__PURE__ */ jsx(StyledLabel, { $error: error, $size: size, ...rest, children });
1133
+ var RequiredAsterisk = styled("span")(({ theme }) => ({
1134
+ marginLeft: "0.2em",
1135
+ color: theme.palette.error.main,
1136
+ fontWeight: 600,
1137
+ lineHeight: 1
1138
+ }));
1139
+ var Label = ({ error = false, size = "md", required, children, ...rest }) => /* @__PURE__ */ jsxs(StyledLabel, { $error: error, $size: size, ...rest, children: [
1140
+ children,
1141
+ required && /* @__PURE__ */ jsx(RequiredAsterisk, { "aria-hidden": "true", children: "*" })
1142
+ ] });
1111
1143
  Label.displayName = "Label";
1112
1144
  var StyledHelperText = styled("p")(({ theme, $error }) => ({
1113
1145
  margin: "0.25rem 0 0",
@@ -1187,13 +1219,14 @@ var BaseInput = forwardRef(
1187
1219
  startAdornment,
1188
1220
  endAdornment,
1189
1221
  disabled = false,
1222
+ required,
1190
1223
  id,
1191
1224
  ...rest
1192
1225
  }, ref) => {
1193
1226
  const autoId = useId();
1194
1227
  const inputId = id ?? autoId;
1195
1228
  return /* @__PURE__ */ jsxs(Root5, { $fullWidth: fullWidth, children: [
1196
- label && /* @__PURE__ */ jsx(Label, { htmlFor: inputId, error, size, children: label }),
1229
+ label && /* @__PURE__ */ jsx(Label, { htmlFor: inputId, error, size, required, children: label }),
1197
1230
  /* @__PURE__ */ jsxs(
1198
1231
  InputWrapper,
1199
1232
  {
@@ -1204,7 +1237,7 @@ var BaseInput = forwardRef(
1204
1237
  "data-disabled": disabled || void 0,
1205
1238
  children: [
1206
1239
  startAdornment && /* @__PURE__ */ jsx(Adornment, { children: startAdornment }),
1207
- /* @__PURE__ */ jsx(StyledInput, { ref, id: inputId, disabled, ...rest }),
1240
+ /* @__PURE__ */ jsx(StyledInput, { ref, id: inputId, disabled, required, ...rest }),
1208
1241
  endAdornment && /* @__PURE__ */ jsx(Adornment, { children: endAdornment })
1209
1242
  ]
1210
1243
  }
@@ -1217,12 +1250,14 @@ BaseInput.displayName = "BaseInput";
1217
1250
  var checkboxSizeMap = {
1218
1251
  sm: "14px",
1219
1252
  md: "16px",
1220
- lg: "20px"
1253
+ lg: "20px",
1254
+ xl: "24px"
1221
1255
  };
1222
1256
  var labelFontSizeMap = {
1223
1257
  sm: "0.75rem",
1224
1258
  md: "0.875rem",
1225
- lg: "1rem"
1259
+ lg: "1rem",
1260
+ xl: "1.125rem"
1226
1261
  };
1227
1262
  var checkedColor = (theme, error) => error ? theme.palette.error.main : theme.palette.primary.main;
1228
1263
  var Box = styled("span")(({ theme, $size, $error, $disabled }) => ({
@@ -1296,6 +1331,12 @@ var LabelText = styled("span")(
1296
1331
  userSelect: "none"
1297
1332
  })
1298
1333
  );
1334
+ var RequiredAsterisk2 = styled("span")(({ theme }) => ({
1335
+ marginLeft: "0.2em",
1336
+ color: theme.palette.error.main,
1337
+ fontWeight: 600,
1338
+ lineHeight: 1
1339
+ }));
1299
1340
  var Root6 = styled("span")(({ $disabled }) => ({
1300
1341
  display: "inline-flex",
1301
1342
  flexDirection: "column",
@@ -1309,6 +1350,7 @@ var CheckboxInput = forwardRef(
1309
1350
  size = "md",
1310
1351
  disabled = false,
1311
1352
  indeterminate = false,
1353
+ required,
1312
1354
  id,
1313
1355
  ...rest
1314
1356
  }, ref) => {
@@ -1334,10 +1376,14 @@ var CheckboxInput = forwardRef(
1334
1376
  id: inputId,
1335
1377
  type: "checkbox",
1336
1378
  disabled,
1379
+ required,
1337
1380
  ...rest
1338
1381
  }
1339
1382
  ) }),
1340
- label && /* @__PURE__ */ jsx(LabelText, { $size: size, $disabled: disabled, $error: error, children: label })
1383
+ label && /* @__PURE__ */ jsxs(LabelText, { $size: size, $disabled: disabled, $error: error, children: [
1384
+ label,
1385
+ required && /* @__PURE__ */ jsx(RequiredAsterisk2, { "aria-hidden": "true", children: "*" })
1386
+ ] })
1341
1387
  ] }),
1342
1388
  helperText && /* @__PURE__ */ jsx(HelperText, { error, children: helperText })
1343
1389
  ] });
@@ -1347,12 +1393,14 @@ CheckboxInput.displayName = "CheckboxInput";
1347
1393
  var radioSizeMap = {
1348
1394
  sm: "14px",
1349
1395
  md: "16px",
1350
- lg: "20px"
1396
+ lg: "20px",
1397
+ xl: "24px"
1351
1398
  };
1352
1399
  var labelFontSizeMap2 = {
1353
1400
  sm: "0.75rem",
1354
1401
  md: "0.875rem",
1355
- lg: "1rem"
1402
+ lg: "1rem",
1403
+ xl: "1.125rem"
1356
1404
  };
1357
1405
  var checkedColor2 = (theme, error) => error ? theme.palette.error.main : theme.palette.primary.main;
1358
1406
  var Circle = styled("span")(({ theme, $size, $error, $disabled }) => ({
@@ -1406,19 +1454,28 @@ var LabelText2 = styled("span")(
1406
1454
  userSelect: "none"
1407
1455
  })
1408
1456
  );
1457
+ var RequiredAsterisk3 = styled("span")(({ theme }) => ({
1458
+ marginLeft: "0.2em",
1459
+ color: theme.palette.error.main,
1460
+ fontWeight: 600,
1461
+ lineHeight: 1
1462
+ }));
1409
1463
  var Root7 = styled("span")(({ $disabled }) => ({
1410
1464
  display: "inline-flex",
1411
1465
  flexDirection: "column",
1412
1466
  cursor: $disabled ? "not-allowed" : "pointer"
1413
1467
  }));
1414
1468
  var RadioInput = forwardRef(
1415
- ({ label, helperText, error = false, size = "md", disabled = false, id, ...rest }, ref) => {
1469
+ ({ label, helperText, error = false, size = "md", disabled = false, required, id, ...rest }, ref) => {
1416
1470
  const autoId = useId();
1417
1471
  const inputId = id ?? autoId;
1418
1472
  return /* @__PURE__ */ jsxs(Root7, { $disabled: disabled, children: [
1419
1473
  /* @__PURE__ */ jsxs(Row2, { htmlFor: inputId, children: [
1420
- /* @__PURE__ */ jsx(Circle, { $size: size, $error: error, $disabled: disabled, children: /* @__PURE__ */ jsx(HiddenInput2, { ref, id: inputId, type: "radio", disabled, ...rest }) }),
1421
- label && /* @__PURE__ */ jsx(LabelText2, { $size: size, $disabled: disabled, $error: error, children: label })
1474
+ /* @__PURE__ */ jsx(Circle, { $size: size, $error: error, $disabled: disabled, children: /* @__PURE__ */ jsx(HiddenInput2, { ref, id: inputId, type: "radio", disabled, required, ...rest }) }),
1475
+ label && /* @__PURE__ */ jsxs(LabelText2, { $size: size, $disabled: disabled, $error: error, children: [
1476
+ label,
1477
+ required && /* @__PURE__ */ jsx(RequiredAsterisk3, { "aria-hidden": "true", children: "*" })
1478
+ ] })
1422
1479
  ] }),
1423
1480
  helperText && /* @__PURE__ */ jsx(HelperText, { error, children: helperText })
1424
1481
  ] });
@@ -1604,6 +1661,15 @@ var dropzoneSizes = {
1604
1661
  fontSize: "1rem",
1605
1662
  subFontSize: "0.875rem",
1606
1663
  gap: "0.625rem"
1664
+ },
1665
+ xl: {
1666
+ minHeight: "220px",
1667
+ padding: "2.5rem",
1668
+ iconSize: 32,
1669
+ circleSize: "4.25rem",
1670
+ fontSize: "1.125rem",
1671
+ subFontSize: "1rem",
1672
+ gap: "0.75rem"
1607
1673
  }
1608
1674
  };
1609
1675
  var DropzoneArea = styled("div")(({ theme, $size, $fullWidth, $error, $disabled, $isDragging, $hasFile }) => {
@@ -2254,6 +2320,7 @@ var BaseSelectInput = ({
2254
2320
  size = "md",
2255
2321
  fullWidth = false,
2256
2322
  disabled = false,
2323
+ required,
2257
2324
  id
2258
2325
  }) => {
2259
2326
  const checkSelected = isSelected ?? ((option) => option.value === value);
@@ -2290,7 +2357,7 @@ var BaseSelectInput = ({
2290
2357
  const selectedLabel = options.find((o) => o.value === value)?.label;
2291
2358
  const defaultTriggerContent = /* @__PURE__ */ jsx("span", { style: { opacity: selectedLabel ? 1 : 0.5 }, children: selectedLabel ?? placeholder });
2292
2359
  return /* @__PURE__ */ jsxs(Root9, { $fullWidth: fullWidth, ref: rootRef, children: [
2293
- label && /* @__PURE__ */ jsx(Label, { htmlFor: inputId, error, size, children: label }),
2360
+ label && /* @__PURE__ */ jsx(Label, { htmlFor: inputId, error, size, required, children: label }),
2294
2361
  /* @__PURE__ */ jsxs(
2295
2362
  Trigger2,
2296
2363
  {
@@ -2605,13 +2672,14 @@ var TextareaInput = forwardRef(
2605
2672
  fullWidth = false,
2606
2673
  rows = 4,
2607
2674
  disabled = false,
2675
+ required,
2608
2676
  id,
2609
2677
  ...rest
2610
2678
  }, ref) => {
2611
2679
  const autoId = useId();
2612
2680
  const inputId = id ?? autoId;
2613
2681
  return /* @__PURE__ */ jsxs(Root10, { $fullWidth: fullWidth, children: [
2614
- label && /* @__PURE__ */ jsx(Label, { htmlFor: inputId, error, size, children: label }),
2682
+ label && /* @__PURE__ */ jsx(Label, { htmlFor: inputId, error, size, required, children: label }),
2615
2683
  /* @__PURE__ */ jsx(
2616
2684
  StyledTextarea,
2617
2685
  {
@@ -2619,6 +2687,7 @@ var TextareaInput = forwardRef(
2619
2687
  id: inputId,
2620
2688
  rows,
2621
2689
  disabled,
2690
+ required,
2622
2691
  $size: size,
2623
2692
  $fullWidth: fullWidth,
2624
2693
  $error: error,
@@ -4587,10 +4656,10 @@ var TextInput = forwardRef(
4587
4656
  ({ type = "text", ...rest }, ref) => /* @__PURE__ */ jsx(BaseInput, { ref, type, ...rest })
4588
4657
  );
4589
4658
  TextInput.displayName = "TextInput";
4590
- var TRACK_W = { sm: "1.75rem", md: "2.25rem", lg: "2.75rem" };
4591
- var TRACK_H = { sm: "1rem", md: "1.25rem", lg: "1.5rem" };
4592
- var THUMB_S = { sm: "0.75rem", md: "1rem", lg: "1.25rem" };
4593
- var FONT_S = { sm: "0.75rem", md: "0.875rem", lg: "1rem" };
4659
+ var TRACK_W = { sm: "1.75rem", md: "2.25rem", lg: "2.75rem", xl: "3.25rem" };
4660
+ var TRACK_H = { sm: "1rem", md: "1.25rem", lg: "1.5rem", xl: "1.75rem" };
4661
+ var THUMB_S = { sm: "0.75rem", md: "1rem", lg: "1.25rem", xl: "1.5rem" };
4662
+ var FONT_S = { sm: "0.75rem", md: "0.875rem", lg: "1rem", xl: "1.125rem" };
4594
4663
  function getActiveColor(color, theme) {
4595
4664
  switch (color) {
4596
4665
  case "secondary":
@@ -6737,15 +6806,15 @@ function CookieConsent({
6737
6806
  Button,
6738
6807
  {
6739
6808
  variant: "text",
6740
- size: "sm",
6809
+ size: "md",
6741
6810
  "aria-expanded": expanded,
6742
6811
  "aria-controls": `${id}-panel`,
6743
6812
  onClick: () => setExpanded((v) => !v),
6744
6813
  children: manageLabel
6745
6814
  }
6746
6815
  ),
6747
- /* @__PURE__ */ jsx(Button, { variant: "ghost", size: "sm", onClick: handleRejectAll, children: rejectLabel }),
6748
- /* @__PURE__ */ jsx(Button, { variant: "primary", size: "sm", onClick: handleAcceptAll, children: acceptAllLabel })
6816
+ /* @__PURE__ */ jsx(Button, { variant: "ghost", size: "md", onClick: handleRejectAll, children: rejectLabel }),
6817
+ /* @__PURE__ */ jsx(Button, { variant: "primary", size: "md", onClick: handleAcceptAll, children: acceptAllLabel })
6749
6818
  ] })
6750
6819
  ] }),
6751
6820
  expanded && /* @__PURE__ */ jsxs(Panel3, { id: `${id}-panel`, role: "group", "aria-label": "Kategorie plik\xF3w cookie", children: [
@@ -6768,7 +6837,7 @@ function CookieConsent({
6768
6837
  }
6769
6838
  )
6770
6839
  ] }, cat.id)),
6771
- /* @__PURE__ */ jsx(SaveRow, { children: /* @__PURE__ */ jsx(Button, { variant: "primary", size: "sm", onClick: handleSave, children: saveLabel }) })
6840
+ /* @__PURE__ */ jsx(SaveRow, { children: /* @__PURE__ */ jsx(Button, { variant: "primary", size: "md", onClick: handleSave, children: saveLabel }) })
6772
6841
  ] })
6773
6842
  ] }) }),
6774
6843
  document.body
@@ -6866,7 +6935,7 @@ function CommentActions({ commentId, onReply, onShare }) {
6866
6935
  onClick: () => onReply?.(commentId),
6867
6936
  variant: "text",
6868
6937
  startIcon: /* @__PURE__ */ jsx(ReplyIcon, { style: { fontSize: "inherit" } }),
6869
- size: "sm",
6938
+ size: "md",
6870
6939
  children: "Odpowiedz"
6871
6940
  }
6872
6941
  ),
@@ -6878,7 +6947,7 @@ function CommentActions({ commentId, onReply, onShare }) {
6878
6947
  onClick: () => onShare?.(commentId),
6879
6948
  variant: "text",
6880
6949
  startIcon: /* @__PURE__ */ jsx(ReplyIcon, { style: { fontSize: "inherit" } }),
6881
- size: "sm",
6950
+ size: "md",
6882
6951
  children: "Udost\u0119pnij"
6883
6952
  }
6884
6953
  )
@@ -7443,7 +7512,7 @@ var NewsletterSection = forwardRef(
7443
7512
  "aria-label": inputPlaceholder
7444
7513
  }
7445
7514
  ),
7446
- /* @__PURE__ */ jsx(Button, { type: "submit", variant: "primary", size: "md", children: submitLabel })
7515
+ /* @__PURE__ */ jsx(Button, { type: "submit", variant: "primary", size: "lg", children: submitLabel })
7447
7516
  ] }),
7448
7517
  privacyNote && /* @__PURE__ */ jsx(PrivacyNote, { children: privacyNote })
7449
7518
  ] });
@@ -9570,25 +9639,12 @@ var Nav2 = styled("nav")({
9570
9639
  display: "none"
9571
9640
  }
9572
9641
  });
9573
- var NavLink = styled("a", {
9642
+ var NavButton2 = styled(Button, {
9574
9643
  shouldForwardProp: (p) => p !== "$active"
9575
9644
  })(({ theme, $active }) => ({
9576
- padding: "0.375rem 0.75rem",
9577
- borderRadius: theme.shape.borderRadius,
9578
- fontFamily: theme.typography.fontFamily,
9579
9645
  fontSize: "0.9375rem",
9580
9646
  fontWeight: $active ? 600 : 400,
9581
- color: $active ? theme.palette.primary.main : theme.palette.text.primary,
9582
- textDecoration: "none",
9583
- transition: "background-color 150ms ease, color 150ms ease",
9584
- "&:hover": {
9585
- backgroundColor: theme.palette.action.hover,
9586
- color: theme.palette.primary.main
9587
- },
9588
- "&:focus-visible": {
9589
- outline: `3px solid ${theme.palette.primary.main}`,
9590
- outlineOffset: "2px"
9591
- }
9647
+ color: $active ? theme.palette.primary.main : theme.palette.text.primary
9592
9648
  }));
9593
9649
  var RightSlot = styled("div")({
9594
9650
  marginLeft: "auto",
@@ -9616,20 +9672,14 @@ var MobileDrawer = styled("div", {
9616
9672
  display: "none"
9617
9673
  }
9618
9674
  }));
9619
- var MobileNavLink = styled("a", {
9675
+ var MobileNavButton = styled(Button, {
9620
9676
  shouldForwardProp: (p) => p !== "$active"
9621
9677
  })(({ theme, $active }) => ({
9622
- padding: "0.625rem 0.75rem",
9623
- borderRadius: theme.shape.borderRadius,
9624
- fontFamily: theme.typography.fontFamily,
9625
9678
  fontSize: "1rem",
9626
9679
  fontWeight: $active ? 600 : 400,
9627
9680
  color: $active ? theme.palette.primary.main : theme.palette.text.primary,
9628
- textDecoration: "none",
9629
- transition: "background-color 150ms ease",
9630
- "&:hover": {
9631
- backgroundColor: theme.palette.action.hover
9632
- }
9681
+ justifyContent: "flex-start",
9682
+ width: "100%"
9633
9683
  }));
9634
9684
  function HamburgerIcon({ open }) {
9635
9685
  return open ? /* @__PURE__ */ jsx(CloseIcon, { "aria-hidden": "true", style: { fontSize: "inherit" } }) : /* @__PURE__ */ jsx(MenuIcon, { "aria-hidden": "true", style: { fontSize: "inherit" } });
@@ -9652,7 +9702,17 @@ function Navbar({
9652
9702
  style: { height: "3.75rem", display: "flex", alignItems: "center", gap: "1.5rem" },
9653
9703
  children: [
9654
9704
  logo && /* @__PURE__ */ jsx(LogoSlot, { children: logo }),
9655
- /* @__PURE__ */ jsx(Nav2, { "aria-label": "Nawigacja g\u0142\xF3wna", children: navItems.map((item) => /* @__PURE__ */ jsx(NavLink, { href: item.href, $active: !!item.active, children: item.label }, item.href)) }),
9705
+ /* @__PURE__ */ jsx(Nav2, { "aria-label": "Nawigacja g\u0142\xF3wna", children: navItems.map((item) => /* @__PURE__ */ jsx(
9706
+ NavButton2,
9707
+ {
9708
+ variant: "text",
9709
+ $active: !!item.active,
9710
+ "aria-current": item.active ? "page" : void 0,
9711
+ onClick: () => window.location.assign(item.href),
9712
+ children: item.label
9713
+ },
9714
+ item.href
9715
+ )) }),
9656
9716
  (actions || navItems.length > 0) && /* @__PURE__ */ jsxs(RightSlot, { children: [
9657
9717
  actions,
9658
9718
  navItems.length > 0 && /* @__PURE__ */ jsx(
@@ -9660,7 +9720,7 @@ function Navbar({
9660
9720
  {
9661
9721
  variant: "primary",
9662
9722
  shape: "square",
9663
- size: "sm",
9723
+ size: "md",
9664
9724
  "aria-label": mobileOpen ? "Zamknij menu" : "Otw\xF3rz menu",
9665
9725
  "aria-expanded": mobileOpen,
9666
9726
  onClick: () => setMobileOpen((v) => !v),
@@ -9671,13 +9731,24 @@ function Navbar({
9671
9731
  ]
9672
9732
  }
9673
9733
  ),
9674
- 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)) }) })
9734
+ navItems.length > 0 && /* @__PURE__ */ jsx(MobileDrawer, { $open: mobileOpen, "aria-label": "Menu mobilne", children: /* @__PURE__ */ jsx(Container, { maxWidth, children: navItems.map((item) => /* @__PURE__ */ jsx(
9735
+ MobileNavButton,
9736
+ {
9737
+ variant: "text",
9738
+ $active: !!item.active,
9739
+ "aria-current": item.active ? "page" : void 0,
9740
+ onClick: () => window.location.assign(item.href),
9741
+ children: item.label
9742
+ },
9743
+ item.href
9744
+ )) }) })
9675
9745
  ] });
9676
9746
  }
9677
9747
  var sizeOverrides = {
9678
9748
  sm: { minWidth: "1.75rem", height: "1.75rem" },
9679
9749
  md: { minWidth: "2rem", height: "2rem" },
9680
- lg: { minWidth: "2.5rem", height: "2.5rem" }
9750
+ lg: { minWidth: "2.5rem", height: "2.5rem" },
9751
+ xl: { minWidth: "3rem", height: "3rem" }
9681
9752
  };
9682
9753
  var activeStyles = (theme) => ({
9683
9754
  backgroundColor: theme.palette.primary.main,
@@ -9830,7 +9901,8 @@ PaginationBar.displayName = "PaginationBar";
9830
9901
  var sizeMap6 = {
9831
9902
  sm: { minWidth: "1.75rem", height: "1.75rem", fontSize: "0.75rem" },
9832
9903
  md: { minWidth: "2rem", height: "2rem", fontSize: "0.875rem" },
9833
- lg: { minWidth: "2.5rem", height: "2.5rem", fontSize: "1rem" }
9904
+ lg: { minWidth: "2.5rem", height: "2.5rem", fontSize: "1rem" },
9905
+ xl: { minWidth: "3rem", height: "3rem", fontSize: "1.125rem" }
9834
9906
  };
9835
9907
  var StyledEllipsis = styled("span")(({ theme, $size }) => ({
9836
9908
  display: "inline-flex",
@@ -10191,13 +10263,14 @@ var Badge2 = styled("span")(({ theme }) => ({
10191
10263
  lineHeight: 1
10192
10264
  }));
10193
10265
  var CartButton = forwardRef(
10194
- ({ count, size = "sm", label = "Koszyk", disabled, onClick, className, "aria-label": ariaLabel }, ref) => /* @__PURE__ */ jsxs(Root36, { className, children: [
10266
+ ({ count, size = "sm", shape, label = "Koszyk", disabled, onClick, className, "aria-label": ariaLabel }, ref) => /* @__PURE__ */ jsxs(Root36, { className, children: [
10195
10267
  /* @__PURE__ */ jsx(
10196
10268
  Button,
10197
10269
  {
10198
10270
  ref,
10199
10271
  variant: "ghost",
10200
10272
  size,
10273
+ shape,
10201
10274
  disabled,
10202
10275
  onClick,
10203
10276
  "aria-label": ariaLabel ?? (count ? `${label} (${count})` : label),
@@ -10250,12 +10323,14 @@ ProductCardImage.displayName = "ProductCardImage";
10250
10323
  var controlWidthMap = {
10251
10324
  sm: "26px",
10252
10325
  md: "32px",
10253
- lg: "38.5px"
10326
+ lg: "40px",
10327
+ xl: "48px"
10254
10328
  };
10255
10329
  var valueWidthMap = {
10256
10330
  sm: "2rem",
10257
10331
  md: "2.5rem",
10258
- lg: "3rem"
10332
+ lg: "3rem",
10333
+ xl: "3.5rem"
10259
10334
  };
10260
10335
  var Root37 = styled("div", { shouldForwardProp: (p) => p !== "size" })(
10261
10336
  ({ theme, size }) => ({
@@ -10595,17 +10670,11 @@ var CountdownTimer = forwardRef(
10595
10670
  );
10596
10671
  CountdownTimer.displayName = "CountdownTimer";
10597
10672
  var countdownTimerVariants = ["inline", "card", "banner"];
10598
- var Root40 = styled(Card)(({ theme }) => ({
10673
+ var Root40 = styled(Card)({
10599
10674
  display: "flex",
10600
10675
  flexDirection: "column",
10601
- overflow: "hidden",
10602
- cursor: "pointer",
10603
- transition: "box-shadow 150ms ease, transform 150ms ease",
10604
- "&:hover": {
10605
- boxShadow: theme.shadows[4],
10606
- transform: "translateY(-2px)"
10607
- }
10608
- }));
10676
+ overflow: "hidden"
10677
+ });
10609
10678
  var ImageWrap2 = styled("div")({
10610
10679
  margin: "-1.5rem -1.5rem 1rem"
10611
10680
  });
@@ -10621,7 +10690,7 @@ var CategoryCard = forwardRef(
10621
10690
  /* @__PURE__ */ jsx(ImageWrap2, { children: /* @__PURE__ */ jsx(CategoryCardImage, { src: imageUrl, alt: imageAlt ?? name }) }),
10622
10691
  /* @__PURE__ */ jsx(CategoryCardInfo, { name, count })
10623
10692
  ] });
10624
- return /* @__PURE__ */ jsx(Root40, { ref, variant: "default", padding: "md", rounded: "lg", ...props, children: href ? /* @__PURE__ */ jsx(CardLink2, { href, children: content }) : content });
10693
+ return /* @__PURE__ */ jsx(Root40, { ref, variant: "default", padding: "md", rounded: "lg", hoverEffect: true, ...props, children: href ? /* @__PURE__ */ jsx(CardLink2, { href, children: content }) : content });
10625
10694
  }
10626
10695
  );
10627
10696
  CategoryCard.displayName = "CategoryCard";
@@ -10844,100 +10913,22 @@ function CompareTool({
10844
10913
  }) })
10845
10914
  ] }) });
10846
10915
  }
10847
- var spin2 = keyframes$1`to { transform: rotate(360deg); }`;
10848
10916
  var Root42 = styled("div")({
10849
10917
  display: "flex",
10850
10918
  flexDirection: "column",
10851
10919
  gap: "0.5rem"
10852
10920
  });
10853
- var InputRow2 = styled("div", {
10854
- shouldForwardProp: (p) => p !== "$hasError" && p !== "$applied"
10855
- })(({ theme, $hasError, $applied }) => ({
10921
+ var InputRow2 = styled("div")({
10856
10922
  display: "flex",
10857
- border: `1.5px solid ${$hasError ? theme.palette.error.main : $applied ? theme.palette.success.main : theme.palette.divider}`,
10858
- borderRadius: "0.5rem",
10859
- overflow: "hidden",
10860
- transition: "border-color 150ms ease",
10861
- "&:focus-within": {
10862
- borderColor: $hasError ? theme.palette.error.main : $applied ? theme.palette.success.main : theme.palette.primary.main,
10863
- boxShadow: `0 0 0 3px ${$hasError ? `${theme.palette.error.main}22` : $applied ? `${theme.palette.success.main}22` : `${theme.palette.primary.main}22`}`
10864
- }
10865
- }));
10866
- var Input = styled("input")(({ theme }) => ({
10867
- flex: 1,
10868
- border: "none",
10869
- outline: "none",
10870
- padding: "0.625rem 0.875rem",
10871
- fontFamily: theme.typography.fontFamily,
10872
- fontSize: "0.9375rem",
10873
- color: theme.palette.text.primary,
10874
- backgroundColor: "transparent",
10875
- textTransform: "uppercase",
10876
- letterSpacing: "0.05em",
10877
- "&::placeholder": {
10878
- color: theme.palette.text.disabled,
10879
- textTransform: "none",
10880
- letterSpacing: "normal"
10881
- },
10882
- "&:disabled": {
10883
- cursor: "not-allowed",
10884
- color: theme.palette.text.disabled
10885
- }
10886
- }));
10887
- var ApplyButton = styled("button", {
10888
- shouldForwardProp: (p) => p !== "$applied"
10889
- })(({ theme, $applied }) => ({
10890
- appearance: "none",
10891
- border: "none",
10892
- borderLeft: `1.5px solid ${theme.palette.divider}`,
10893
- padding: "0 1rem",
10894
- cursor: "pointer",
10895
- fontFamily: theme.typography.fontFamily,
10896
- fontSize: "0.875rem",
10897
- fontWeight: 700,
10898
- whiteSpace: "nowrap",
10899
- backgroundColor: $applied ? theme.palette.success.main : theme.palette.primary.main,
10900
- color: $applied ? theme.palette.success.contrastText : theme.palette.primary.contrastText,
10901
- transition: "background-color 150ms ease, opacity 150ms ease",
10902
- "&:hover:not(:disabled)": {
10903
- opacity: 0.88
10904
- },
10905
- "&:disabled": {
10906
- opacity: 0.5,
10907
- cursor: "not-allowed"
10908
- },
10909
- "&:focus-visible": {
10910
- outline: `3px solid ${theme.palette.primary.main}`,
10911
- outlineOffset: "-3px"
10912
- }
10913
- }));
10914
- var Spinner4 = styled("span")({
10915
- display: "inline-block",
10916
- width: "0.875rem",
10917
- height: "0.875rem",
10918
- border: "2px solid rgba(255,255,255,0.3)",
10919
- borderTopColor: "#fff",
10920
- borderRadius: "50%",
10921
- animation: `${spin2} 600ms linear infinite`,
10922
- verticalAlign: "middle"
10923
+ alignItems: "flex-start",
10924
+ gap: "0.5rem"
10923
10925
  });
10924
- var Message = styled("p", {
10925
- shouldForwardProp: (p) => p !== "$type"
10926
- })(({ theme, $type }) => ({
10927
- margin: 0,
10928
- fontSize: "0.8125rem",
10929
- fontFamily: theme.typography.fontFamily,
10930
- color: $type === "error" ? theme.palette.error.main : theme.palette.success.main,
10931
- display: "flex",
10932
- alignItems: "center",
10933
- gap: "0.25rem"
10934
- }));
10935
10926
  var AppliedRow = styled("div")(({ theme }) => ({
10936
10927
  display: "flex",
10937
10928
  alignItems: "center",
10938
10929
  justifyContent: "space-between",
10939
10930
  padding: "0.5rem 0.875rem",
10940
- borderRadius: "0.5rem",
10931
+ borderRadius: theme.shape.borderRadius,
10941
10932
  backgroundColor: `${theme.palette.success.main}14`,
10942
10933
  border: `1.5px solid ${theme.palette.success.main}`
10943
10934
  }));
@@ -10949,22 +10940,14 @@ var AppliedCode = styled("span")(({ theme }) => ({
10949
10940
  textTransform: "uppercase",
10950
10941
  letterSpacing: "0.05em"
10951
10942
  }));
10952
- var RemoveButton2 = styled("button")(({ theme }) => ({
10953
- appearance: "none",
10954
- border: "none",
10955
- background: "none",
10956
- cursor: "pointer",
10957
- fontFamily: theme.typography.fontFamily,
10943
+ var SuccessMessage2 = styled("p")(({ theme }) => ({
10944
+ margin: 0,
10958
10945
  fontSize: "0.8125rem",
10959
- fontWeight: 600,
10960
- color: theme.palette.error.main,
10961
- padding: "0.25rem",
10962
- "&:hover": { textDecoration: "underline" },
10963
- "&:focus-visible": {
10964
- outline: `2px solid ${theme.palette.error.main}`,
10965
- outlineOffset: "2px",
10966
- borderRadius: "3px"
10967
- }
10946
+ fontFamily: theme.typography.fontFamily,
10947
+ color: theme.palette.success.main,
10948
+ display: "flex",
10949
+ alignItems: "center",
10950
+ gap: "0.25rem"
10968
10951
  }));
10969
10952
  function CouponInput({
10970
10953
  value,
@@ -10979,12 +10962,9 @@ function CouponInput({
10979
10962
  disabled = false,
10980
10963
  error,
10981
10964
  successMessage,
10965
+ size = "md",
10982
10966
  className
10983
10967
  }) {
10984
- const id = useId();
10985
- const errorId = `${id}-error`;
10986
- const successId = `${id}-success`;
10987
- const isDisabled = disabled || loading;
10988
10968
  const handleApply = () => {
10989
10969
  if (value.trim()) onApply(value.trim());
10990
10970
  };
@@ -10996,52 +10976,52 @@ function CouponInput({
10996
10976
  /* @__PURE__ */ jsxs(AppliedRow, { role: "status", "aria-label": `Kod rabatowy ${appliedCode} zastosowany`, children: [
10997
10977
  /* @__PURE__ */ jsx(AppliedCode, { children: appliedCode }),
10998
10978
  onRemove && /* @__PURE__ */ jsx(
10999
- RemoveButton2,
10979
+ Button,
11000
10980
  {
11001
- type: "button",
11002
- "aria-label": `${removeLabel} kod ${appliedCode}`,
10981
+ variant: "danger",
10982
+ size: "md",
11003
10983
  onClick: onRemove,
10984
+ "aria-label": `${removeLabel} kod ${appliedCode}`,
11004
10985
  children: removeLabel
11005
10986
  }
11006
10987
  )
11007
10988
  ] }),
11008
- successMessage && /* @__PURE__ */ jsxs(Message, { $type: "success", id: successId, role: "status", children: [
10989
+ successMessage && /* @__PURE__ */ jsxs(SuccessMessage2, { role: "status", children: [
11009
10990
  "\u2713 ",
11010
10991
  successMessage
11011
10992
  ] })
11012
10993
  ] });
11013
10994
  }
11014
- return /* @__PURE__ */ jsxs(Root42, { className, children: [
11015
- /* @__PURE__ */ jsxs(InputRow2, { $hasError: Boolean(error), $applied: false, children: [
11016
- /* @__PURE__ */ jsx(
11017
- Input,
11018
- {
11019
- id,
11020
- type: "text",
11021
- value,
11022
- placeholder,
11023
- disabled: isDisabled,
11024
- "aria-label": "Kod rabatowy",
11025
- "aria-invalid": Boolean(error),
11026
- "aria-describedby": error ? errorId : void 0,
11027
- onChange: (e) => onChange(e.target.value),
11028
- onKeyDown: handleKeyDown
11029
- }
11030
- ),
11031
- /* @__PURE__ */ jsx(
11032
- ApplyButton,
11033
- {
11034
- type: "button",
11035
- $applied: false,
11036
- disabled: isDisabled || !value.trim(),
11037
- "aria-label": applyLabel,
11038
- onClick: handleApply,
11039
- children: loading ? /* @__PURE__ */ jsx(Spinner4, { "aria-hidden": "true" }) : applyLabel
11040
- }
11041
- )
11042
- ] }),
11043
- error && /* @__PURE__ */ jsx(Message, { $type: "error", id: errorId, role: "alert", children: error })
11044
- ] });
10995
+ return /* @__PURE__ */ jsx(Root42, { className, children: /* @__PURE__ */ jsxs(InputRow2, { children: [
10996
+ /* @__PURE__ */ jsx(
10997
+ TextInput,
10998
+ {
10999
+ value,
11000
+ placeholder,
11001
+ disabled: disabled || loading,
11002
+ "aria-label": "Kod rabatowy",
11003
+ "aria-invalid": Boolean(error),
11004
+ onChange: (e) => onChange(e.target.value),
11005
+ onKeyDown: handleKeyDown,
11006
+ size,
11007
+ fullWidth: true,
11008
+ error: Boolean(error),
11009
+ helperText: error,
11010
+ style: { textTransform: "uppercase" }
11011
+ }
11012
+ ),
11013
+ /* @__PURE__ */ jsx(
11014
+ Button,
11015
+ {
11016
+ size,
11017
+ loading,
11018
+ disabled: disabled || !value.trim(),
11019
+ "aria-label": applyLabel,
11020
+ onClick: handleApply,
11021
+ children: applyLabel
11022
+ }
11023
+ )
11024
+ ] }) });
11045
11025
  }
11046
11026
  var DEFAULT_OMNIBUS_LABEL = "Najni\u017Csza cena z ostatnich 30 dni";
11047
11027
  var FONT_SIZE2 = {
@@ -11345,7 +11325,7 @@ var FilterSidebar = forwardRef(
11345
11325
  }, ref) => /* @__PURE__ */ jsxs(Root45, { ref, "aria-label": "Filtry produkt\xF3w", ...props, children: [
11346
11326
  /* @__PURE__ */ jsxs(Header3, { children: [
11347
11327
  /* @__PURE__ */ jsx(Title10, { children: "Filtry" }),
11348
- onClear && /* @__PURE__ */ jsx(Button, { variant: "ghost", size: "sm", onClick: onClear, children: "Wyczy\u015B\u0107" })
11328
+ onClear && /* @__PURE__ */ jsx(Button, { variant: "ghost", size: "md", onClick: onClear, children: "Wyczy\u015B\u0107" })
11349
11329
  ] }),
11350
11330
  priceRange && /* @__PURE__ */ jsxs(Group, { children: [
11351
11331
  /* @__PURE__ */ jsx(Legend, { children: "Cena" }),
@@ -11639,51 +11619,63 @@ var ProductCard = forwardRef(
11639
11619
  buttonVariant = "primary",
11640
11620
  disabledButton = false,
11641
11621
  hideButton = false,
11622
+ hoverEffect = true,
11642
11623
  ...props
11643
- }, ref) => /* @__PURE__ */ jsxs(Root50, { ref, variant: "default", padding: "md", rounded: "lg", ...props, children: [
11644
- /* @__PURE__ */ jsx(
11645
- AspectRatio,
11646
- {
11647
- ratio: imageRatio,
11648
- style: { margin: "-1.5rem -1.5rem 1rem", width: "calc(100% + 3rem)" },
11649
- children: /* @__PURE__ */ jsx(
11650
- ProductCardImage,
11624
+ }, ref) => /* @__PURE__ */ jsxs(
11625
+ Root50,
11626
+ {
11627
+ ref,
11628
+ variant: "default",
11629
+ padding: "md",
11630
+ rounded: "lg",
11631
+ hoverEffect,
11632
+ ...props,
11633
+ children: [
11634
+ /* @__PURE__ */ jsx(
11635
+ AspectRatio,
11651
11636
  {
11652
- src: imageUrl,
11653
- alt: imageAlt ?? name,
11654
- badge,
11655
- badgeVariant
11637
+ ratio: imageRatio,
11638
+ style: { margin: "-1.5rem -1.5rem 1rem", width: "calc(100% + 3rem)" },
11639
+ children: /* @__PURE__ */ jsx(
11640
+ ProductCardImage,
11641
+ {
11642
+ src: imageUrl,
11643
+ alt: imageAlt ?? name,
11644
+ badge,
11645
+ badgeVariant
11646
+ }
11647
+ )
11656
11648
  }
11657
- )
11658
- }
11659
- ),
11660
- /* @__PURE__ */ jsx(Name11, { children: name }),
11661
- rating !== void 0 && /* @__PURE__ */ jsx(Rating, { value: rating, count: reviewCount, size: "sm" }),
11662
- /* @__PURE__ */ jsx(
11663
- Price2,
11664
- {
11665
- price,
11666
- originalPrice,
11667
- currency,
11668
- locale,
11669
- lowestPrice,
11670
- style: { marginTop: "0.5rem" }
11671
- }
11672
- ),
11673
- !hideButton && /* @__PURE__ */ jsx(Footer6, { children: /* @__PURE__ */ jsx(
11674
- Button,
11675
- {
11676
- fullWidth: true,
11677
- variant: buttonVariant,
11678
- disabled: disabledButton,
11679
- onClick: (e) => {
11680
- e.stopPropagation();
11681
- onAddToCart?.();
11682
- },
11683
- children: ctaLabel
11684
- }
11685
- ) })
11686
- ] })
11649
+ ),
11650
+ /* @__PURE__ */ jsx(Name11, { children: name }),
11651
+ rating !== void 0 && /* @__PURE__ */ jsx(Rating, { value: rating, count: reviewCount, size: "sm" }),
11652
+ /* @__PURE__ */ jsx(
11653
+ Price2,
11654
+ {
11655
+ price,
11656
+ originalPrice,
11657
+ currency,
11658
+ locale,
11659
+ lowestPrice,
11660
+ style: { marginTop: "0.5rem" }
11661
+ }
11662
+ ),
11663
+ !hideButton && /* @__PURE__ */ jsx(Footer6, { children: /* @__PURE__ */ jsx(
11664
+ Button,
11665
+ {
11666
+ fullWidth: true,
11667
+ variant: buttonVariant,
11668
+ disabled: disabledButton,
11669
+ onClick: (e) => {
11670
+ e.stopPropagation();
11671
+ onAddToCart?.();
11672
+ },
11673
+ children: ctaLabel
11674
+ }
11675
+ ) })
11676
+ ]
11677
+ }
11678
+ )
11687
11679
  );
11688
11680
  ProductCard.displayName = "ProductCard";
11689
11681
  var COLLAPSE_AT = "480px";