@coopdigital/react 1.19.1 → 1.20.0

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.
Files changed (152) hide show
  1. package/dist/components/AlertBanner/AlertBanner.js +5 -2
  2. package/dist/components/Author/Author.js +5 -2
  3. package/dist/components/Card/Card.d.ts +96 -49
  4. package/dist/components/Card/Card.js +61 -60
  5. package/dist/components/Card/index.d.ts +2 -2
  6. package/dist/components/Card/index.js +2 -2
  7. package/dist/components/Checkbox/Checkbox.js +5 -2
  8. package/dist/components/DatePicker/DatePicker.js +5 -4
  9. package/dist/components/DatePicker/datepicker-utils.js +12 -11
  10. package/dist/components/Dialog/Dialog.js +5 -2
  11. package/dist/components/Expandable/Expandable.js +5 -2
  12. package/dist/components/FieldMarkers/Error.js +5 -2
  13. package/dist/components/FieldMarkers/Hint.js +5 -2
  14. package/dist/components/FieldMarkers/Label.js +5 -2
  15. package/dist/components/Fieldset/Fieldset.js +10 -4
  16. package/dist/components/Flourish/Flourish.js +6 -3
  17. package/dist/components/Form/Form.js +5 -2
  18. package/dist/components/Image/Image.d.ts +3 -5
  19. package/dist/components/Image/Image.js +10 -7
  20. package/dist/components/LoadingSpinner/LoadingSpinner.js +5 -2
  21. package/dist/components/Logo/Logo.js +5 -2
  22. package/dist/components/Picture/Picture.d.ts +15 -0
  23. package/dist/components/Picture/Picture.js +17 -0
  24. package/dist/components/Picture/index.d.ts +2 -0
  25. package/dist/components/Picture/index.js +5 -0
  26. package/dist/components/Prose/Prose.js +5 -2
  27. package/dist/components/Radio/Radio.js +5 -2
  28. package/dist/components/Searchbox/Searchbox.js +3 -2
  29. package/dist/components/Select/Select.js +5 -2
  30. package/dist/components/Signpost/Signpost.js +6 -6
  31. package/dist/components/SkipNav/SkipNav.js +5 -2
  32. package/dist/components/Squircle/Squircle.js +5 -2
  33. package/dist/components/ValidationSummary/ValidationSummary.js +5 -2
  34. package/dist/components/icons/AccountCircleFilledIcon.js +5 -2
  35. package/dist/components/icons/AccountCircleIcon.js +5 -2
  36. package/dist/components/icons/AccountFilledIcon.js +5 -2
  37. package/dist/components/icons/AccountIcon.js +5 -2
  38. package/dist/components/icons/AddIcon.js +5 -2
  39. package/dist/components/icons/AppsFilledIcon.js +5 -2
  40. package/dist/components/icons/AppsIcon.js +5 -2
  41. package/dist/components/icons/ArrowDownIcon.js +5 -2
  42. package/dist/components/icons/ArrowLeftIcon.js +5 -2
  43. package/dist/components/icons/ArrowRightIcon.js +5 -2
  44. package/dist/components/icons/ArrowUpIcon.js +5 -2
  45. package/dist/components/icons/BackspaceFilledIcon.js +5 -2
  46. package/dist/components/icons/BackspaceIcon.js +5 -2
  47. package/dist/components/icons/BasketFilledIcon.js +5 -2
  48. package/dist/components/icons/BasketIcon.js +5 -2
  49. package/dist/components/icons/BellFilledIcon.js +5 -2
  50. package/dist/components/icons/BellIcon.js +5 -2
  51. package/dist/components/icons/BroomIcon.js +5 -2
  52. package/dist/components/icons/CalendarFilledIcon.js +5 -2
  53. package/dist/components/icons/CalendarIcon.js +5 -2
  54. package/dist/components/icons/CashFilledIcon.js +5 -2
  55. package/dist/components/icons/CashIcon.js +5 -2
  56. package/dist/components/icons/ChevronDownIcon.js +5 -2
  57. package/dist/components/icons/ChevronLeftIcon.js +5 -2
  58. package/dist/components/icons/ChevronRightIcon.js +5 -2
  59. package/dist/components/icons/ChevronUpIcon.js +5 -2
  60. package/dist/components/icons/CircleBurgerFilledIcon.js +5 -2
  61. package/dist/components/icons/CircleBurgerIcon.js +5 -2
  62. package/dist/components/icons/ClipboardFilledIcon.js +5 -2
  63. package/dist/components/icons/ClipboardIcon.js +5 -2
  64. package/dist/components/icons/ClockFilledIcon.js +5 -2
  65. package/dist/components/icons/ClockIcon.js +5 -2
  66. package/dist/components/icons/CloseAltFilledIcon.js +5 -2
  67. package/dist/components/icons/CloseAltIcon.js +5 -2
  68. package/dist/components/icons/CogIcon.js +5 -2
  69. package/dist/components/icons/CommunityFilledIcon.js +5 -2
  70. package/dist/components/icons/CommunityIcon.js +5 -2
  71. package/dist/components/icons/ComputerIcon.js +5 -2
  72. package/dist/components/icons/ContactFilledIcon.js +5 -2
  73. package/dist/components/icons/ContactIcon.js +5 -2
  74. package/dist/components/icons/ContactlessFilledIcon.js +5 -2
  75. package/dist/components/icons/ContactlessIcon.js +5 -2
  76. package/dist/components/icons/CoopLiveIcon.js +5 -2
  77. package/dist/components/icons/CoopLocationFilledIcon.js +5 -2
  78. package/dist/components/icons/CoopLogoIcon.js +5 -2
  79. package/dist/components/icons/CoopMembershipCardFilledIcon.js +5 -2
  80. package/dist/components/icons/CreditCardFilledIcon.js +5 -2
  81. package/dist/components/icons/CreditCardIcon.js +5 -2
  82. package/dist/components/icons/CrossIcon.js +5 -2
  83. package/dist/components/icons/DocumentIcon.js +5 -2
  84. package/dist/components/icons/DownloadIcon.js +5 -2
  85. package/dist/components/icons/EnterStoreIcon.js +5 -2
  86. package/dist/components/icons/ExitStoreIcon.js +5 -2
  87. package/dist/components/icons/EyeFilledIcon.js +5 -2
  88. package/dist/components/icons/EyeIcon.js +5 -2
  89. package/dist/components/icons/EyeStrikeFilledIcon.js +5 -2
  90. package/dist/components/icons/EyeStrikeIcon.js +5 -2
  91. package/dist/components/icons/FeedbackFilledIcon.js +5 -2
  92. package/dist/components/icons/FeedbackIcon.js +5 -2
  93. package/dist/components/icons/FilterIcon.js +5 -2
  94. package/dist/components/icons/GiftCardFilledIcon.js +5 -2
  95. package/dist/components/icons/GiftCardIcon.js +5 -2
  96. package/dist/components/icons/GiftFilledIcon.js +5 -2
  97. package/dist/components/icons/GiftIcon.js +5 -2
  98. package/dist/components/icons/HelpFilledIcon.js +5 -2
  99. package/dist/components/icons/HelpIcon.js +5 -2
  100. package/dist/components/icons/HomeFilledIcon.js +5 -2
  101. package/dist/components/icons/HomeIcon.js +5 -2
  102. package/dist/components/icons/HowDoIAssistantIcon.js +5 -2
  103. package/dist/components/icons/InfoIcon.js +5 -2
  104. package/dist/components/icons/KebabIcon.js +5 -2
  105. package/dist/components/icons/LoadingIcon.js +5 -2
  106. package/dist/components/icons/LocationFilledIcon.js +5 -2
  107. package/dist/components/icons/LocationIcon.js +5 -2
  108. package/dist/components/icons/LogoutIcon.js +5 -2
  109. package/dist/components/icons/MailIcon.js +5 -2
  110. package/dist/components/icons/MenuIcon.js +5 -2
  111. package/dist/components/icons/MessageIcon.js +5 -2
  112. package/dist/components/icons/MinusIcon.js +5 -2
  113. package/dist/components/icons/NotesFilledIcon.js +5 -2
  114. package/dist/components/icons/NotesIcon.js +5 -2
  115. package/dist/components/icons/OpenNewIcon.js +5 -2
  116. package/dist/components/icons/OwnBagIcon.js +5 -2
  117. package/dist/components/icons/PadlockIcon.js +5 -2
  118. package/dist/components/icons/PencilIcon.js +5 -2
  119. package/dist/components/icons/PhoneIcon.js +5 -2
  120. package/dist/components/icons/PowerIcon.js +5 -2
  121. package/dist/components/icons/SaveFilledIcon.js +5 -2
  122. package/dist/components/icons/SaveIcon.js +5 -2
  123. package/dist/components/icons/ScooterIcon.js +5 -2
  124. package/dist/components/icons/SearchFilledIcon.js +5 -2
  125. package/dist/components/icons/SearchIcon.js +5 -2
  126. package/dist/components/icons/SendIcon.js +5 -2
  127. package/dist/components/icons/SpannerIcon.js +5 -2
  128. package/dist/components/icons/StarFilledIcon.js +5 -2
  129. package/dist/components/icons/StarIcon.js +5 -2
  130. package/dist/components/icons/TickAltFilledIcon.js +5 -2
  131. package/dist/components/icons/TickAltIcon.js +5 -2
  132. package/dist/components/icons/TickIcon.js +5 -2
  133. package/dist/components/icons/TruckIcon.js +5 -2
  134. package/dist/components/icons/UserWipeIcon.js +5 -2
  135. package/dist/components/icons/VoucherFilledIcon.js +5 -2
  136. package/dist/components/icons/VoucherIcon.js +5 -2
  137. package/dist/components/icons/WarningCircleFilledIcon.js +5 -2
  138. package/dist/components/icons/WarningCircleIcon.js +5 -2
  139. package/dist/components/icons/WarningFilledIcon.js +5 -2
  140. package/dist/components/icons/WarningIcon.js +5 -2
  141. package/dist/components/icons/WifiIcon.js +5 -2
  142. package/dist/components/icons/WriteIcon.js +5 -2
  143. package/dist/hooks/useSlots.js +4 -3
  144. package/dist/index.d.ts +4 -2
  145. package/dist/index.js +3 -2
  146. package/package.json +10 -10
  147. package/src/components/Card/Card.tsx +146 -100
  148. package/src/components/Image/Image.tsx +15 -22
  149. package/src/components/Picture/Picture.tsx +36 -0
  150. package/src/components/Picture/index.ts +5 -0
  151. package/src/components/Signpost/Signpost.tsx +1 -1
  152. package/src/index.ts +1 -0
@@ -2,9 +2,12 @@ import clsx from "clsx";
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  //#region src/components/Form/Form.tsx
4
4
  const Form = ({ children, className, ref, ...props }) => {
5
- return /* @__PURE__ */ jsx("form", {
5
+ const componentProps = {
6
6
  className: clsx("coop-form ", className),
7
- ...props,
7
+ ...props
8
+ };
9
+ return /* @__PURE__ */ jsx("form", {
10
+ ...componentProps,
8
11
  ref,
9
12
  children
10
13
  });
@@ -1,10 +1,8 @@
1
- import { HTMLAttributes, JSX, Ref } from "react";
1
+ import { ImgHTMLAttributes, JSX, Ref } from "react";
2
2
  //#region src/components/Image/Image.d.ts
3
- interface ImageProps extends HTMLAttributes<HTMLImageElement> {
3
+ interface ImageProps extends ImgHTMLAttributes<HTMLImageElement> {
4
4
  /** Specify text to describe the image. Refer to Experience Library guidelines on writing good alt text. */
5
5
  alt: string;
6
- /** **(Optional)** Specify the image crop mode. */
7
- crop?: "square" | "wide" | "none";
8
6
  /** **(Optional)** Specify the height of the image. */
9
7
  height?: string;
10
8
  /** **(Optional)** Specify a custom React ref for this component. */
@@ -15,7 +13,7 @@ interface ImageProps extends HTMLAttributes<HTMLImageElement> {
15
13
  width?: string;
16
14
  }
17
15
  declare const Image: {
18
- ({ alt, crop, height, ref, src, width, ...props }: ImageProps): JSX.Element;
16
+ ({ alt, height, ref, src, width, ...props }: ImageProps): JSX.Element;
19
17
  slot: {
20
18
  name: string;
21
19
  };
@@ -1,6 +1,6 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  //#region src/components/Image/Image.tsx
3
- const getContentfulParams = (src, width, height) => {
3
+ const getContentfulParams = ({ height, src, width }) => {
4
4
  const url = !src.startsWith("http") ? new URL("https://" + src) : new URL(src);
5
5
  [
6
6
  ["fm", "webp"],
@@ -9,7 +9,7 @@ const getContentfulParams = (src, width, height) => {
9
9
  ["w", width],
10
10
  ...height ? [["h", height]] : []
11
11
  ].forEach(([k, v]) => {
12
- if (!url.searchParams.has(k)) url.searchParams.set(k, v);
12
+ if (k && v && !url.searchParams.has(k)) url.searchParams.set(k, v);
13
13
  });
14
14
  return {
15
15
  height: url.searchParams.get("h") ?? height,
@@ -17,26 +17,29 @@ const getContentfulParams = (src, width, height) => {
17
17
  width: url.searchParams.get("w") ?? width
18
18
  };
19
19
  };
20
- const Image = ({ alt, crop, height, ref, src, width = "640", ...props }) => {
20
+ const Image = ({ alt, height, ref, src, width = "640", ...props }) => {
21
21
  let params = {
22
22
  height,
23
23
  src,
24
24
  width
25
25
  };
26
- if (src.includes("images.ctfassets.net")) params = getContentfulParams(src, width, height);
26
+ if (src.includes("images.ctfassets.net")) params = getContentfulParams({
27
+ height,
28
+ src,
29
+ width
30
+ });
27
31
  const dimensions = {
28
- "data-crop": crop,
29
32
  height: params.height,
30
33
  width: params.width
31
34
  };
32
- return /* @__PURE__ */ jsx("picture", { children: /* @__PURE__ */ jsx("img", {
35
+ return /* @__PURE__ */ jsx("img", {
33
36
  alt,
34
37
  loading: "lazy",
35
38
  src: params.src,
36
39
  ...dimensions,
37
40
  ...props,
38
41
  ref
39
- }) });
42
+ });
40
43
  };
41
44
  Image.slot = { name: "Image" };
42
45
  //#endregion
@@ -3,11 +3,14 @@ import clsx from "clsx";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
  //#region src/components/LoadingSpinner/LoadingSpinner.tsx
5
5
  const LoadingSpinner = ({ className, ref, stroke = "currentColor", strokeWidth = "1px", ...props }) => {
6
- return /* @__PURE__ */ jsx(LoadingIcon, {
6
+ const componentProps = {
7
7
  className: clsx("coop-loading-spinner ", className),
8
8
  stroke,
9
9
  strokeWidth,
10
- ...props,
10
+ ...props
11
+ };
12
+ return /* @__PURE__ */ jsx(LoadingIcon, {
13
+ ...componentProps,
11
14
  ref
12
15
  });
13
16
  };
@@ -2,7 +2,7 @@ import clsx from "clsx";
2
2
  import { jsx, jsxs } from "react/jsx-runtime";
3
3
  //#region src/components/Logo/Logo.tsx
4
4
  const Logo = ({ alt = "Co-op", className, fill = "brand-blue", height, id, ref, width, ...props }) => {
5
- return /* @__PURE__ */ jsxs("svg", {
5
+ const componentProps = {
6
6
  alt,
7
7
  className: clsx("coop-logo", className),
8
8
  fill: fill === "brand-blue" ? void 0 : `var(--color-${fill})`,
@@ -11,7 +11,10 @@ const Logo = ({ alt = "Co-op", className, fill = "brand-blue", height, id, ref,
11
11
  role: "img",
12
12
  viewBox: "0 0 38 40",
13
13
  width,
14
- ...props,
14
+ ...props
15
+ };
16
+ return /* @__PURE__ */ jsxs("svg", {
17
+ ...componentProps,
15
18
  ref,
16
19
  children: [/* @__PURE__ */ jsx("title", { children: alt }), /* @__PURE__ */ jsx("path", { d: "M37.8 8.8c0-1.4-.2-2.8-.6-4.2-.5-1.7-1.8-3-3.4-3.7a14.9 14.9 0 0 0-10.2 0c-1.7.6-2.9 2-3.4 3.7-.8 2.8-.8 5.7 0 8.5.5 1.7 1.8 3 3.4 3.7 1.6.6 3.4.9 5.1.8 1.7 0 3.5-.3 5.1-.8 1.7-.6 2.9-2 3.4-3.7.4-1.5.6-2.9.6-4.3zm-5.5 0c0 .7-.1 1.4-.3 2-.3.9-1 1.6-2 1.8-.9.2-1.8.2-2.6 0-.9-.2-1.7-.8-2-1.8-.4-1.3-.4-2.8 0-4.1.3-.9 1-1.6 2-1.8.9-.2 1.8-.2 2.6 0 .9.2 1.7.8 2 1.8.2.7.3 1.4.3 2.1m-14.6 23c.8-2.8.8-5.7 0-8.5-.5-1.7-1.8-3-3.4-3.7a14.9 14.9 0 0 0-10.2 0c-1.7.6-2.9 2-3.4 3.7-.8 2.8-.8 5.7 0 8.5.5 1.7 1.8 3 3.4 3.7 3.3 1.2 6.9 1.2 10.2 0 1.6-.6 2.9-2 3.4-3.7m-4.9-4.2c0 .7-.1 1.4-.3 2-.3.9-1 1.6-2 1.8-.9.2-1.8.2-2.6 0-.9-.2-1.7-.8-2-1.8-.4-1.4-.4-2.8 0-4.1.3-.9 1-1.6 2-1.8.9-.2 1.8-.2 2.6 0 .9.2 1.7.8 2 1.8.2.7.3 1.4.3 2.1m0-18.9h5.5c0-1.4-.2-2.8-.6-4.2-.5-1.7-1.8-3-3.4-3.7C11-.3 7.4-.3 4.1.9c-1.7.6-2.9 2-3.4 3.7-.8 2.8-.8 5.7 0 8.5.5 1.7 1.8 3 3.4 3.7 1.6.6 3.4.8 5.1.8s3.5-.3 5.1-.8c1.7-.6 2.9-2 3.4-3.7.1-.2.1-.5.2-.7L12.7 10c-.1.3-.1.6-.2.9-.3.9-1 1.6-2 1.8-.9.2-1.8.2-2.6 0-.9-.2-1.7-.8-2-1.8-.4-1.4-.4-2.9 0-4.2.3-.9 1-1.6 2-1.8.9-.2 1.8-.2 2.6 0 .9.2 1.7.8 2 1.8.2.7.3 1.3.3 2m7.4 14.6c-.4 1.4-.6 2.8-.6 4.2V40h5.5V27.6c0-.7.1-1.4.3-2 .3-.9 1-1.6 2-1.8.9-.2 1.8-.2 2.6 0 .9.2 1.7.8 2 1.8.4 1.4.4 2.8 0 4.1-.3.9-1 1.6-1.9 1.8-.9.2-1.8.2-2.6 0-.2-.1-.4-.1-.5-.2l1.9 5.1c1.7 0 3.5-.3 5.1-.8 1.7-.6 2.9-2 3.4-3.7.8-2.8.8-5.7 0-8.5-.5-1.7-1.8-3-3.4-3.7a14.9 14.9 0 0 0-10.2 0c-1.9.6-3.1 2-3.6 3.6" })]
17
20
  });
@@ -0,0 +1,15 @@
1
+ import { HTMLAttributes, JSX, ReactNode, Ref } from "react";
2
+ //#region src/components/Picture/Picture.d.ts
3
+ interface PictureProps extends HTMLAttributes<HTMLPictureElement> {
4
+ /** **(Optional)** Content inside the component. */
5
+ children?: string | ReactNode;
6
+ /** **(Optional)** Specify additional CSS classes. */
7
+ className?: string;
8
+ /** **(Optional)** Specify the image crop mode. */
9
+ crop?: "square" | "wide" | "thin" | "squircle" | "none";
10
+ /** **(Optional)** Specify a custom React ref for this component. */
11
+ ref?: Ref<HTMLPictureElement>;
12
+ }
13
+ declare const Picture: ({ children, className, crop, ref, ...props }: PictureProps) => JSX.Element;
14
+ //#endregion
15
+ export { Picture, Picture as default, PictureProps };
@@ -0,0 +1,17 @@
1
+ import clsx from "clsx";
2
+ import { jsx } from "react/jsx-runtime";
3
+ //#region src/components/Picture/Picture.tsx
4
+ const Picture = ({ children, className, crop, ref, ...props }) => {
5
+ const componentProps = {
6
+ className: clsx("coop-picture", className),
7
+ "data-crop": crop ?? void 0,
8
+ ...props
9
+ };
10
+ return /* @__PURE__ */ jsx("picture", {
11
+ ...componentProps,
12
+ ref,
13
+ children
14
+ });
15
+ };
16
+ //#endregion
17
+ export { Picture, Picture as default };
@@ -0,0 +1,2 @@
1
+ import { Picture, PictureProps } from "./Picture.js";
2
+ export { Picture, Picture as default, PictureProps };
@@ -0,0 +1,5 @@
1
+ import { Picture } from "./Picture.js";
2
+ //#region src/components/Picture/index.ts
3
+ var Picture_default = Picture;
4
+ //#endregion
5
+ export { Picture, Picture_default as default };
@@ -2,12 +2,15 @@ import clsx from "clsx";
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  //#region src/components/Prose/Prose.tsx
4
4
  const Prose = ({ children, className, full, ref, size, spacing, ...props }) => {
5
- return /* @__PURE__ */ jsx("div", {
5
+ const componentProps = {
6
6
  className: clsx("coop-prose ", className),
7
7
  "data-full": full ?? void 0,
8
8
  "data-size": size ?? void 0,
9
9
  "data-spacing": spacing ?? void 0,
10
- ...props,
10
+ ...props
11
+ };
12
+ return /* @__PURE__ */ jsx("div", {
13
+ ...componentProps,
11
14
  ref,
12
15
  children
13
16
  });
@@ -5,7 +5,7 @@ import { jsx } from "react/jsx-runtime";
5
5
  //#region src/components/Radio/Radio.tsx
6
6
  const Radio = ({ className, disabled, error = false, id, name, ref, size, ...props }) => {
7
7
  const field = useField();
8
- return /* @__PURE__ */ jsx("input", {
8
+ const componentProps = {
9
9
  className: clsx("coop-radio", className),
10
10
  "data-error": error || void 0,
11
11
  "data-size": size ?? void 0,
@@ -13,7 +13,10 @@ const Radio = ({ className, disabled, error = false, id, name, ref, size, ...pro
13
13
  id: id ?? field?.id,
14
14
  name,
15
15
  type: "radio",
16
- ...props,
16
+ ...props
17
+ };
18
+ return /* @__PURE__ */ jsx("input", {
19
+ ...componentProps,
17
20
  ref
18
21
  });
19
22
  };
@@ -66,7 +66,7 @@ const Searchbox = ({ action, children, className, id, label, labelVisible = fals
66
66
  };
67
67
  const SearchboxButton = ({ children, ...props }) => {
68
68
  const searchbox = useSearchbox();
69
- return /* @__PURE__ */ jsx(Button, {
69
+ const buttonProps = {
70
70
  children: children ?? /* @__PURE__ */ jsx(SearchIcon, {
71
71
  alt: "Search",
72
72
  id: searchbox.buttonId + "__icon",
@@ -77,7 +77,8 @@ const SearchboxButton = ({ children, ...props }) => {
77
77
  isLoading: searchbox.isLoading,
78
78
  size: searchbox.size,
79
79
  ...props
80
- });
80
+ };
81
+ return /* @__PURE__ */ jsx(Button, { ...buttonProps });
81
82
  };
82
83
  SearchboxButton.displayName = "Searchbox.Button";
83
84
  const SearchboxInput = (props) => {
@@ -5,7 +5,7 @@ import { jsx } from "react/jsx-runtime";
5
5
  //#region src/components/Select/Select.tsx
6
6
  const Select = ({ children, className, disabled, error, fit = false, id, name, ref, size, ...props }) => {
7
7
  const field = useField();
8
- return /* @__PURE__ */ jsx("select", {
8
+ const componentProps = {
9
9
  className: clsx("coop-select", className),
10
10
  "data-error": error ?? void 0,
11
11
  "data-fit": fit || void 0,
@@ -13,7 +13,10 @@ const Select = ({ children, className, disabled, error, fit = false, id, name, r
13
13
  disabled,
14
14
  id: id ?? field?.id,
15
15
  name,
16
- ...props,
16
+ ...props
17
+ };
18
+ return /* @__PURE__ */ jsx("select", {
19
+ ...componentProps,
17
20
  ref,
18
21
  children
19
22
  });
@@ -9,14 +9,14 @@ import React from "react";
9
9
  */
10
10
  const Signpost = ({ as, children, className, headingLevel = "h3", href, image, ref, ...props }) => {
11
11
  const element = as ?? "a";
12
- return /* @__PURE__ */ jsxs("div", {
12
+ const componentProps = {
13
13
  className: clsx("coop-signpost", className),
14
- ...props,
14
+ ...props
15
+ };
16
+ return /* @__PURE__ */ jsxs("div", {
17
+ ...componentProps,
15
18
  ref,
16
- children: [image && /* @__PURE__ */ jsx(Image, {
17
- crop: "wide",
18
- ...image
19
- }), React.createElement(element, { href }, /* @__PURE__ */ jsxs("div", {
19
+ children: [image && /* @__PURE__ */ jsx(Image, { ...image }), React.createElement(element, { href }, /* @__PURE__ */ jsxs("div", {
20
20
  className: "coop-signpost--content",
21
21
  children: [React.createElement(headingLevel, { className: "coop-signpost--heading" }, children), /* @__PURE__ */ jsx("span", {
22
22
  "aria-hidden": "true",
@@ -15,10 +15,13 @@ const SkipNav = ({ className, isVisible = false, links = defaultLinks, ref, ...p
15
15
  ...componentProps,
16
16
  ref,
17
17
  children: /* @__PURE__ */ jsx("ul", { children: navLinks.map((link) => {
18
- return /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx("a", {
18
+ const linkProps = {
19
19
  "data-visible": isVisible,
20
20
  href: link.href,
21
- label: link.label,
21
+ label: link.label
22
+ };
23
+ return /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx("a", {
24
+ ...linkProps,
22
25
  children: link.label
23
26
  }) }, link.href);
24
27
  }) })
@@ -3,10 +3,13 @@ import clsx from "clsx";
3
3
  import { jsx } from "react/jsx-runtime";
4
4
  //#region src/components/Squircle/Squircle.tsx
5
5
  const Squircle = ({ children, className, ref, size = "md", ...props }) => {
6
- return /* @__PURE__ */ jsx("figure", {
6
+ const componentProps = {
7
7
  className: clsx("coop-squircle", !hasUserBg(className) && "bg-offer", className),
8
8
  "data-size": size.length && size !== "md" ? size : void 0,
9
- ...props,
9
+ ...props
10
+ };
11
+ return /* @__PURE__ */ jsx("figure", {
12
+ ...componentProps,
10
13
  ref,
11
14
  children: /* @__PURE__ */ jsx("figcaption", { children })
12
15
  });
@@ -29,9 +29,12 @@ const ValidationSummary = ({ autoScroll = true, children, className, forceMount
29
29
  hasErrors
30
30
  ]);
31
31
  if (!hasErrors && !forceMount) return null;
32
- return /* @__PURE__ */ jsxs("div", {
32
+ const componentProps = {
33
33
  className: clsx("coop-validation-summary", className),
34
- ...props,
34
+ ...props
35
+ };
36
+ return /* @__PURE__ */ jsxs("div", {
37
+ ...componentProps,
35
38
  "aria-live": "assertive",
36
39
  ref: mergeRefs(internalRef, ref),
37
40
  role: "alert",
@@ -4,7 +4,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
4
4
  //#region src/components/icons/AccountCircleFilledIcon.tsx
5
5
  const AccountCircleFilledIcon = ({ alt, className, fill, id, ref, ...props }) => {
6
6
  const uid = useId(id);
7
- return /* @__PURE__ */ jsxs("svg", {
7
+ const componentProps = {
8
8
  "aria-labelledby": alt ? uid + "__title" : void 0,
9
9
  className: clsx("coop-icon", className),
10
10
  "data-icon": "account-circle-filled",
@@ -12,7 +12,10 @@ const AccountCircleFilledIcon = ({ alt, className, fill, id, ref, ...props }) =>
12
12
  id: uid,
13
13
  role: alt ? "img" : void 0,
14
14
  viewBox: "0 0 32 32",
15
- ...props,
15
+ ...props
16
+ };
17
+ return /* @__PURE__ */ jsxs("svg", {
18
+ ...componentProps,
16
19
  ref,
17
20
  children: [alt ? /* @__PURE__ */ jsx("title", {
18
21
  id: uid + "__title",
@@ -4,7 +4,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
4
4
  //#region src/components/icons/AccountCircleIcon.tsx
5
5
  const AccountCircleIcon = ({ alt, className, fill, id, ref, ...props }) => {
6
6
  const uid = useId(id);
7
- return /* @__PURE__ */ jsxs("svg", {
7
+ const componentProps = {
8
8
  "aria-labelledby": alt ? uid + "__title" : void 0,
9
9
  className: clsx("coop-icon", className),
10
10
  "data-icon": "account-circle",
@@ -12,7 +12,10 @@ const AccountCircleIcon = ({ alt, className, fill, id, ref, ...props }) => {
12
12
  id: uid,
13
13
  role: alt ? "img" : void 0,
14
14
  viewBox: "0 0 32 32",
15
- ...props,
15
+ ...props
16
+ };
17
+ return /* @__PURE__ */ jsxs("svg", {
18
+ ...componentProps,
16
19
  ref,
17
20
  children: [alt ? /* @__PURE__ */ jsx("title", {
18
21
  id: uid + "__title",
@@ -4,7 +4,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
4
4
  //#region src/components/icons/AccountFilledIcon.tsx
5
5
  const AccountFilledIcon = ({ alt, className, fill, id, ref, ...props }) => {
6
6
  const uid = useId(id);
7
- return /* @__PURE__ */ jsxs("svg", {
7
+ const componentProps = {
8
8
  "aria-labelledby": alt ? uid + "__title" : void 0,
9
9
  className: clsx("coop-icon", className),
10
10
  "data-icon": "account-filled",
@@ -12,7 +12,10 @@ const AccountFilledIcon = ({ alt, className, fill, id, ref, ...props }) => {
12
12
  id: uid,
13
13
  role: alt ? "img" : void 0,
14
14
  viewBox: "0 0 32 32",
15
- ...props,
15
+ ...props
16
+ };
17
+ return /* @__PURE__ */ jsxs("svg", {
18
+ ...componentProps,
16
19
  ref,
17
20
  children: [alt ? /* @__PURE__ */ jsx("title", {
18
21
  id: uid + "__title",
@@ -4,7 +4,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
4
4
  //#region src/components/icons/AccountIcon.tsx
5
5
  const AccountIcon = ({ alt, className, fill, id, ref, ...props }) => {
6
6
  const uid = useId(id);
7
- return /* @__PURE__ */ jsxs("svg", {
7
+ const componentProps = {
8
8
  "aria-labelledby": alt ? uid + "__title" : void 0,
9
9
  className: clsx("coop-icon", className),
10
10
  "data-icon": "account",
@@ -12,7 +12,10 @@ const AccountIcon = ({ alt, className, fill, id, ref, ...props }) => {
12
12
  id: uid,
13
13
  role: alt ? "img" : void 0,
14
14
  viewBox: "0 0 32 32",
15
- ...props,
15
+ ...props
16
+ };
17
+ return /* @__PURE__ */ jsxs("svg", {
18
+ ...componentProps,
16
19
  ref,
17
20
  children: [alt ? /* @__PURE__ */ jsx("title", {
18
21
  id: uid + "__title",
@@ -4,7 +4,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
4
4
  //#region src/components/icons/AddIcon.tsx
5
5
  const AddIcon = ({ alt, className, fill, id, ref, ...props }) => {
6
6
  const uid = useId(id);
7
- return /* @__PURE__ */ jsxs("svg", {
7
+ const componentProps = {
8
8
  "aria-labelledby": alt ? uid + "__title" : void 0,
9
9
  className: clsx("coop-icon", className),
10
10
  "data-icon": "add",
@@ -12,7 +12,10 @@ const AddIcon = ({ alt, className, fill, id, ref, ...props }) => {
12
12
  id: uid,
13
13
  role: alt ? "img" : void 0,
14
14
  viewBox: "0 0 32 32",
15
- ...props,
15
+ ...props
16
+ };
17
+ return /* @__PURE__ */ jsxs("svg", {
18
+ ...componentProps,
16
19
  ref,
17
20
  children: [alt ? /* @__PURE__ */ jsx("title", {
18
21
  id: uid + "__title",
@@ -4,7 +4,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
4
4
  //#region src/components/icons/AppsFilledIcon.tsx
5
5
  const AppsFilledIcon = ({ alt, className, fill, id, ref, ...props }) => {
6
6
  const uid = useId(id);
7
- return /* @__PURE__ */ jsxs("svg", {
7
+ const componentProps = {
8
8
  "aria-labelledby": alt ? uid + "__title" : void 0,
9
9
  className: clsx("coop-icon", className),
10
10
  "data-icon": "apps-filled",
@@ -12,7 +12,10 @@ const AppsFilledIcon = ({ alt, className, fill, id, ref, ...props }) => {
12
12
  id: uid,
13
13
  role: alt ? "img" : void 0,
14
14
  viewBox: "0 0 32 32",
15
- ...props,
15
+ ...props
16
+ };
17
+ return /* @__PURE__ */ jsxs("svg", {
18
+ ...componentProps,
16
19
  ref,
17
20
  children: [alt ? /* @__PURE__ */ jsx("title", {
18
21
  id: uid + "__title",
@@ -4,7 +4,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
4
4
  //#region src/components/icons/AppsIcon.tsx
5
5
  const AppsIcon = ({ alt, className, fill, id, ref, ...props }) => {
6
6
  const uid = useId(id);
7
- return /* @__PURE__ */ jsxs("svg", {
7
+ const componentProps = {
8
8
  "aria-labelledby": alt ? uid + "__title" : void 0,
9
9
  className: clsx("coop-icon", className),
10
10
  "data-icon": "apps",
@@ -12,7 +12,10 @@ const AppsIcon = ({ alt, className, fill, id, ref, ...props }) => {
12
12
  id: uid,
13
13
  role: alt ? "img" : void 0,
14
14
  viewBox: "0 0 32 32",
15
- ...props,
15
+ ...props
16
+ };
17
+ return /* @__PURE__ */ jsxs("svg", {
18
+ ...componentProps,
16
19
  ref,
17
20
  children: [alt ? /* @__PURE__ */ jsx("title", {
18
21
  id: uid + "__title",
@@ -4,7 +4,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
4
4
  //#region src/components/icons/ArrowDownIcon.tsx
5
5
  const ArrowDownIcon = ({ alt, className, fill, id, ref, ...props }) => {
6
6
  const uid = useId(id);
7
- return /* @__PURE__ */ jsxs("svg", {
7
+ const componentProps = {
8
8
  "aria-labelledby": alt ? uid + "__title" : void 0,
9
9
  className: clsx("coop-icon", className),
10
10
  "data-icon": "arrow-down",
@@ -12,7 +12,10 @@ const ArrowDownIcon = ({ alt, className, fill, id, ref, ...props }) => {
12
12
  id: uid,
13
13
  role: alt ? "img" : void 0,
14
14
  viewBox: "0 0 32 32",
15
- ...props,
15
+ ...props
16
+ };
17
+ return /* @__PURE__ */ jsxs("svg", {
18
+ ...componentProps,
16
19
  ref,
17
20
  children: [alt ? /* @__PURE__ */ jsx("title", {
18
21
  id: uid + "__title",
@@ -4,7 +4,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
4
4
  //#region src/components/icons/ArrowLeftIcon.tsx
5
5
  const ArrowLeftIcon = ({ alt, className, fill, id, ref, ...props }) => {
6
6
  const uid = useId(id);
7
- return /* @__PURE__ */ jsxs("svg", {
7
+ const componentProps = {
8
8
  "aria-labelledby": alt ? uid + "__title" : void 0,
9
9
  className: clsx("coop-icon", className),
10
10
  "data-icon": "arrow-left",
@@ -12,7 +12,10 @@ const ArrowLeftIcon = ({ alt, className, fill, id, ref, ...props }) => {
12
12
  id: uid,
13
13
  role: alt ? "img" : void 0,
14
14
  viewBox: "0 0 32 32",
15
- ...props,
15
+ ...props
16
+ };
17
+ return /* @__PURE__ */ jsxs("svg", {
18
+ ...componentProps,
16
19
  ref,
17
20
  children: [alt ? /* @__PURE__ */ jsx("title", {
18
21
  id: uid + "__title",
@@ -4,7 +4,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
4
4
  //#region src/components/icons/ArrowRightIcon.tsx
5
5
  const ArrowRightIcon = ({ alt, className, fill, id, ref, ...props }) => {
6
6
  const uid = useId(id);
7
- return /* @__PURE__ */ jsxs("svg", {
7
+ const componentProps = {
8
8
  "aria-labelledby": alt ? uid + "__title" : void 0,
9
9
  className: clsx("coop-icon", className),
10
10
  "data-icon": "arrow-right",
@@ -12,7 +12,10 @@ const ArrowRightIcon = ({ alt, className, fill, id, ref, ...props }) => {
12
12
  id: uid,
13
13
  role: alt ? "img" : void 0,
14
14
  viewBox: "0 0 32 32",
15
- ...props,
15
+ ...props
16
+ };
17
+ return /* @__PURE__ */ jsxs("svg", {
18
+ ...componentProps,
16
19
  ref,
17
20
  children: [alt ? /* @__PURE__ */ jsx("title", {
18
21
  id: uid + "__title",
@@ -4,7 +4,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
4
4
  //#region src/components/icons/ArrowUpIcon.tsx
5
5
  const ArrowUpIcon = ({ alt, className, fill, id, ref, ...props }) => {
6
6
  const uid = useId(id);
7
- return /* @__PURE__ */ jsxs("svg", {
7
+ const componentProps = {
8
8
  "aria-labelledby": alt ? uid + "__title" : void 0,
9
9
  className: clsx("coop-icon", className),
10
10
  "data-icon": "arrow-up",
@@ -12,7 +12,10 @@ const ArrowUpIcon = ({ alt, className, fill, id, ref, ...props }) => {
12
12
  id: uid,
13
13
  role: alt ? "img" : void 0,
14
14
  viewBox: "0 0 32 32",
15
- ...props,
15
+ ...props
16
+ };
17
+ return /* @__PURE__ */ jsxs("svg", {
18
+ ...componentProps,
16
19
  ref,
17
20
  children: [alt ? /* @__PURE__ */ jsx("title", {
18
21
  id: uid + "__title",
@@ -4,7 +4,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
4
4
  //#region src/components/icons/BackspaceFilledIcon.tsx
5
5
  const BackspaceFilledIcon = ({ alt, className, fill, id, ref, ...props }) => {
6
6
  const uid = useId(id);
7
- return /* @__PURE__ */ jsxs("svg", {
7
+ const componentProps = {
8
8
  "aria-labelledby": alt ? uid + "__title" : void 0,
9
9
  className: clsx("coop-icon", className),
10
10
  "data-icon": "backspace-filled",
@@ -12,7 +12,10 @@ const BackspaceFilledIcon = ({ alt, className, fill, id, ref, ...props }) => {
12
12
  id: uid,
13
13
  role: alt ? "img" : void 0,
14
14
  viewBox: "0 0 32 32",
15
- ...props,
15
+ ...props
16
+ };
17
+ return /* @__PURE__ */ jsxs("svg", {
18
+ ...componentProps,
16
19
  ref,
17
20
  children: [alt ? /* @__PURE__ */ jsx("title", {
18
21
  id: uid + "__title",
@@ -4,7 +4,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
4
4
  //#region src/components/icons/BackspaceIcon.tsx
5
5
  const BackspaceIcon = ({ alt, className, fill, id, ref, ...props }) => {
6
6
  const uid = useId(id);
7
- return /* @__PURE__ */ jsxs("svg", {
7
+ const componentProps = {
8
8
  "aria-labelledby": alt ? uid + "__title" : void 0,
9
9
  className: clsx("coop-icon", className),
10
10
  "data-icon": "backspace",
@@ -12,7 +12,10 @@ const BackspaceIcon = ({ alt, className, fill, id, ref, ...props }) => {
12
12
  id: uid,
13
13
  role: alt ? "img" : void 0,
14
14
  viewBox: "0 0 32 32",
15
- ...props,
15
+ ...props
16
+ };
17
+ return /* @__PURE__ */ jsxs("svg", {
18
+ ...componentProps,
16
19
  ref,
17
20
  children: [alt ? /* @__PURE__ */ jsx("title", {
18
21
  id: uid + "__title",
@@ -4,7 +4,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
4
4
  //#region src/components/icons/BasketFilledIcon.tsx
5
5
  const BasketFilledIcon = ({ alt, className, fill, id, ref, ...props }) => {
6
6
  const uid = useId(id);
7
- return /* @__PURE__ */ jsxs("svg", {
7
+ const componentProps = {
8
8
  "aria-labelledby": alt ? uid + "__title" : void 0,
9
9
  className: clsx("coop-icon", className),
10
10
  "data-icon": "basket-filled",
@@ -12,7 +12,10 @@ const BasketFilledIcon = ({ alt, className, fill, id, ref, ...props }) => {
12
12
  id: uid,
13
13
  role: alt ? "img" : void 0,
14
14
  viewBox: "0 0 32 32",
15
- ...props,
15
+ ...props
16
+ };
17
+ return /* @__PURE__ */ jsxs("svg", {
18
+ ...componentProps,
16
19
  ref,
17
20
  children: [alt ? /* @__PURE__ */ jsx("title", {
18
21
  id: uid + "__title",