@coopdigital/react 0.19.5 → 0.19.6

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 (158) hide show
  1. package/dist/components/AlertBanner/AlertBanner.d.ts +3 -3
  2. package/dist/components/AlertBanner/AlertBanner.js +3 -2
  3. package/dist/components/Author/Author.d.ts +4 -4
  4. package/dist/components/Author/Author.js +3 -2
  5. package/dist/components/Button/Button.d.ts +10 -10
  6. package/dist/components/Button/Button.js +3 -2
  7. package/dist/components/Card/Card.d.ts +14 -14
  8. package/dist/components/Card/Card.js +1 -1
  9. package/dist/components/Expandable/Expandable.d.ts +4 -4
  10. package/dist/components/Expandable/Expandable.js +4 -2
  11. package/dist/components/Icon/AddIcon.d.ts +1 -1
  12. package/dist/components/Icon/AddIcon.js +4 -3
  13. package/dist/components/Icon/ArrowDownIcon.d.ts +1 -1
  14. package/dist/components/Icon/ArrowDownIcon.js +4 -3
  15. package/dist/components/Icon/ArrowLeftIcon.d.ts +1 -1
  16. package/dist/components/Icon/ArrowLeftIcon.js +4 -3
  17. package/dist/components/Icon/ArrowRightIcon.d.ts +1 -1
  18. package/dist/components/Icon/ArrowRightIcon.js +4 -3
  19. package/dist/components/Icon/ArrowUpIcon.d.ts +1 -1
  20. package/dist/components/Icon/ArrowUpIcon.js +4 -3
  21. package/dist/components/Icon/AvatarAltIcon.d.ts +1 -1
  22. package/dist/components/Icon/AvatarAltIcon.js +4 -3
  23. package/dist/components/Icon/AvatarIcon.d.ts +1 -1
  24. package/dist/components/Icon/AvatarIcon.js +4 -3
  25. package/dist/components/Icon/BasketIcon.d.ts +1 -1
  26. package/dist/components/Icon/BasketIcon.js +4 -3
  27. package/dist/components/Icon/CalendarIcon.d.ts +1 -1
  28. package/dist/components/Icon/CalendarIcon.js +4 -3
  29. package/dist/components/Icon/ChevronDownIcon.d.ts +1 -1
  30. package/dist/components/Icon/ChevronDownIcon.js +4 -3
  31. package/dist/components/Icon/ChevronLeftIcon.d.ts +1 -1
  32. package/dist/components/Icon/ChevronLeftIcon.js +4 -3
  33. package/dist/components/Icon/ChevronRightIcon.d.ts +1 -1
  34. package/dist/components/Icon/ChevronRightIcon.js +4 -3
  35. package/dist/components/Icon/ChevronUpIcon.d.ts +1 -1
  36. package/dist/components/Icon/ChevronUpIcon.js +4 -3
  37. package/dist/components/Icon/ClockIcon.d.ts +1 -1
  38. package/dist/components/Icon/ClockIcon.js +4 -3
  39. package/dist/components/Icon/CloseAltIcon.d.ts +1 -1
  40. package/dist/components/Icon/CloseAltIcon.js +4 -3
  41. package/dist/components/Icon/CloseIcon.d.ts +1 -1
  42. package/dist/components/Icon/CloseIcon.js +4 -3
  43. package/dist/components/Icon/CoopCardIcon.d.ts +1 -1
  44. package/dist/components/Icon/CoopCardIcon.js +4 -3
  45. package/dist/components/Icon/CoopIcon.d.ts +1 -1
  46. package/dist/components/Icon/CoopIcon.js +4 -3
  47. package/dist/components/Icon/CoopLocationIcon.d.ts +1 -1
  48. package/dist/components/Icon/CoopLocationIcon.js +4 -3
  49. package/dist/components/Icon/DownloadIcon.d.ts +1 -1
  50. package/dist/components/Icon/DownloadIcon.js +4 -3
  51. package/dist/components/Icon/HomeIcon.d.ts +1 -1
  52. package/dist/components/Icon/HomeIcon.js +4 -3
  53. package/dist/components/Icon/InformationIcon.d.ts +1 -1
  54. package/dist/components/Icon/InformationIcon.js +4 -3
  55. package/dist/components/Icon/LoadingIcon.d.ts +1 -1
  56. package/dist/components/Icon/LoadingIcon.js +4 -3
  57. package/dist/components/Icon/LocationIcon.d.ts +1 -1
  58. package/dist/components/Icon/LocationIcon.js +4 -3
  59. package/dist/components/Icon/MailIcon.d.ts +1 -1
  60. package/dist/components/Icon/MailIcon.js +4 -3
  61. package/dist/components/Icon/MenuIcon.d.ts +1 -1
  62. package/dist/components/Icon/MenuIcon.js +4 -3
  63. package/dist/components/Icon/MessageIcon.d.ts +1 -1
  64. package/dist/components/Icon/MessageIcon.js +4 -3
  65. package/dist/components/Icon/MinusIcon.d.ts +1 -1
  66. package/dist/components/Icon/MinusIcon.js +4 -3
  67. package/dist/components/Icon/OpenNewIcon.d.ts +1 -1
  68. package/dist/components/Icon/OpenNewIcon.js +4 -3
  69. package/dist/components/Icon/PencilIcon.d.ts +1 -1
  70. package/dist/components/Icon/PencilIcon.js +4 -3
  71. package/dist/components/Icon/PhoneIcon.d.ts +1 -1
  72. package/dist/components/Icon/PhoneIcon.js +4 -3
  73. package/dist/components/Icon/QuestionIcon.d.ts +1 -1
  74. package/dist/components/Icon/QuestionIcon.js +4 -3
  75. package/dist/components/Icon/ScooterIcon.d.ts +1 -1
  76. package/dist/components/Icon/ScooterIcon.js +4 -3
  77. package/dist/components/Icon/SearchIcon.d.ts +1 -1
  78. package/dist/components/Icon/SearchIcon.js +4 -3
  79. package/dist/components/Icon/SettingsIcon.d.ts +1 -1
  80. package/dist/components/Icon/SettingsIcon.js +4 -3
  81. package/dist/components/Icon/TickAltIcon.d.ts +1 -1
  82. package/dist/components/Icon/TickAltIcon.js +4 -3
  83. package/dist/components/Icon/TickIcon.d.ts +1 -1
  84. package/dist/components/Icon/TickIcon.js +4 -3
  85. package/dist/components/Icon/VanIcon.d.ts +1 -1
  86. package/dist/components/Icon/VanIcon.js +4 -3
  87. package/dist/components/Icon/WarningIcon.d.ts +1 -1
  88. package/dist/components/Icon/WarningIcon.js +4 -3
  89. package/dist/components/Icon/WriteIcon.d.ts +1 -1
  90. package/dist/components/Icon/WriteIcon.js +4 -3
  91. package/dist/components/Image/Image.d.ts +5 -5
  92. package/dist/components/Pill/Pill.d.ts +8 -8
  93. package/dist/components/Pill/Pill.js +1 -1
  94. package/dist/components/RootSVG/RootSVG.js +1 -1
  95. package/dist/components/SearchBox/SearchBox.d.ts +10 -10
  96. package/dist/components/SearchBox/SearchBox.js +2 -1
  97. package/dist/components/Signpost/Signpost.d.ts +6 -6
  98. package/dist/components/Signpost/Signpost.js +3 -2
  99. package/dist/components/SkipNav/SkipNav.d.ts +4 -6
  100. package/dist/components/SkipNav/SkipNav.js +3 -2
  101. package/dist/components/Squircle/Squircle.d.ts +4 -4
  102. package/dist/components/Squircle/Squircle.js +2 -1
  103. package/dist/components/Tag/Tag.d.ts +5 -5
  104. package/dist/components/Tag/Tag.js +1 -1
  105. package/package.json +3 -3
  106. package/src/components/AlertBanner/AlertBanner.tsx +7 -5
  107. package/src/components/Author/Author.tsx +8 -6
  108. package/src/components/Button/Button.tsx +13 -12
  109. package/src/components/Card/Card.tsx +17 -18
  110. package/src/components/Expandable/Expandable.tsx +12 -14
  111. package/src/components/Icon/AddIcon.tsx +6 -5
  112. package/src/components/Icon/ArrowDownIcon.tsx +6 -5
  113. package/src/components/Icon/ArrowLeftIcon.tsx +6 -5
  114. package/src/components/Icon/ArrowRightIcon.tsx +6 -5
  115. package/src/components/Icon/ArrowUpIcon.tsx +6 -5
  116. package/src/components/Icon/AvatarAltIcon.tsx +7 -6
  117. package/src/components/Icon/AvatarIcon.tsx +6 -5
  118. package/src/components/Icon/BasketIcon.tsx +6 -5
  119. package/src/components/Icon/CalendarIcon.tsx +6 -5
  120. package/src/components/Icon/ChevronDownIcon.tsx +5 -4
  121. package/src/components/Icon/ChevronLeftIcon.tsx +5 -4
  122. package/src/components/Icon/ChevronRightIcon.tsx +5 -4
  123. package/src/components/Icon/ChevronUpIcon.tsx +5 -4
  124. package/src/components/Icon/ClockIcon.tsx +6 -5
  125. package/src/components/Icon/CloseAltIcon.tsx +7 -6
  126. package/src/components/Icon/CloseIcon.tsx +6 -5
  127. package/src/components/Icon/CoopCardIcon.tsx +5 -4
  128. package/src/components/Icon/CoopIcon.tsx +5 -4
  129. package/src/components/Icon/CoopLocationIcon.tsx +7 -6
  130. package/src/components/Icon/DownloadIcon.tsx +10 -6
  131. package/src/components/Icon/HomeIcon.tsx +7 -6
  132. package/src/components/Icon/InformationIcon.tsx +6 -5
  133. package/src/components/Icon/LoadingIcon.tsx +5 -4
  134. package/src/components/Icon/LocationIcon.tsx +6 -5
  135. package/src/components/Icon/MailIcon.tsx +5 -4
  136. package/src/components/Icon/MenuIcon.tsx +5 -4
  137. package/src/components/Icon/MessageIcon.tsx +5 -4
  138. package/src/components/Icon/MinusIcon.tsx +5 -4
  139. package/src/components/Icon/OpenNewIcon.tsx +6 -5
  140. package/src/components/Icon/PencilIcon.tsx +5 -4
  141. package/src/components/Icon/PhoneIcon.tsx +5 -4
  142. package/src/components/Icon/QuestionIcon.tsx +6 -5
  143. package/src/components/Icon/ScooterIcon.tsx +7 -6
  144. package/src/components/Icon/SearchIcon.tsx +6 -5
  145. package/src/components/Icon/SettingsIcon.tsx +5 -4
  146. package/src/components/Icon/TickAltIcon.tsx +6 -5
  147. package/src/components/Icon/TickIcon.tsx +5 -4
  148. package/src/components/Icon/VanIcon.tsx +5 -4
  149. package/src/components/Icon/WarningIcon.tsx +6 -5
  150. package/src/components/Icon/WriteIcon.tsx +8 -7
  151. package/src/components/Image/Image.tsx +5 -5
  152. package/src/components/Pill/Pill.tsx +9 -9
  153. package/src/components/RootSVG/RootSVG.tsx +1 -1
  154. package/src/components/SearchBox/SearchBox.tsx +12 -11
  155. package/src/components/Signpost/Signpost.tsx +11 -11
  156. package/src/components/SkipNav/SkipNav.tsx +8 -8
  157. package/src/components/Squircle/Squircle.tsx +7 -5
  158. package/src/components/Tag/Tag.tsx +6 -6
@@ -1,16 +1,17 @@
1
+ import clsx from "clsx"
1
2
  import { type SVGProps, useId } from "react"
2
3
 
3
4
  interface IconProps extends SVGProps<SVGSVGElement> {
4
5
  alt?: string
5
6
  }
6
7
 
7
- export const PencilIcon = ({ alt, className, ...props }: IconProps) => {
8
+ export const PencilIcon = ({ alt, className, fill, ...props }: IconProps) => {
8
9
  const id = useId()
9
10
  const componentProps = {
10
11
  "aria-labelledby": alt ? id : undefined,
11
- className: `coop-icon ${className ?? ""}`.trim(),
12
+ className: clsx("coop-icon", className),
12
13
  "data-icon": "pencil",
13
- fill: "none",
14
+ fill: fill ?? "none",
14
15
  role: alt ? "img" : undefined,
15
16
  viewBox: "0 0 32 32",
16
17
  ...props,
@@ -20,7 +21,7 @@ export const PencilIcon = ({ alt, className, ...props }: IconProps) => {
20
21
  {alt ? <title id={id}>{alt}</title> : null}
21
22
  <path
22
23
  d="M31.7 6.12 25.88.3a1 1 0 0 0-1.4 0L1.3 23.47a.86.86 0 0 0-.3.6L0 30.9a1.14 1.14 0 0 0 .3.8.91.91 0 0 0 .7.3h.1l6.82-1a.61.61 0 0 0 .61-.3L31.7 7.52a1 1 0 0 0 0-1.4M7.22 29l-3.57.56L5.08 28a1 1 0 0 0 0-1.42 1 1 0 0 0-1.41.05L2.39 28l.52-3.29 1.91-1.91 4.12 4.52Zm3.14-3.11-4.12-4.54L25.18 2.41l4.41 4.41Z"
23
- fill="currentColor"
24
+ fill={fill ?? "currentColor"}
24
25
  />
25
26
  </svg>
26
27
  )
@@ -1,16 +1,17 @@
1
+ import clsx from "clsx"
1
2
  import { type SVGProps, useId } from "react"
2
3
 
3
4
  interface IconProps extends SVGProps<SVGSVGElement> {
4
5
  alt?: string
5
6
  }
6
7
 
7
- export const PhoneIcon = ({ alt, className, ...props }: IconProps) => {
8
+ export const PhoneIcon = ({ alt, className, fill, ...props }: IconProps) => {
8
9
  const id = useId()
9
10
  const componentProps = {
10
11
  "aria-labelledby": alt ? id : undefined,
11
- className: `coop-icon ${className ?? ""}`.trim(),
12
+ className: clsx("coop-icon", className),
12
13
  "data-icon": "phone",
13
- fill: "none",
14
+ fill: fill ?? "none",
14
15
  role: alt ? "img" : undefined,
15
16
  viewBox: "0 0 32 32",
16
17
  ...props,
@@ -20,7 +21,7 @@ export const PhoneIcon = ({ alt, className, ...props }: IconProps) => {
20
21
  {alt ? <title id={id}>{alt}</title> : null}
21
22
  <path
22
23
  d="M28.88 21.26c-2.26-1.72-5.46-2.84-7-1.42-.51.51-1.65 1.52-5.15-1.42-5.73-5.37-5.47-7.29-4.44-8.42 1.44-1.52.41-4.66-1.34-6.89C8.78.38 6.21-.63 4.14.38a6.53 6.53 0 0 0-4 4.67c-.94 4.66 3.49 10.64 7.3 14.89.72.81 1.45 1.52 2.17 2.33l.41.41C14.45 27 20.53 32 25.58 32a4.4 4.4 0 0 0 1.14-.1 6.64 6.64 0 0 0 5-3.95c.87-2.03-.16-4.56-2.84-6.69m-13.6-1.32c2.06 1.72 5.25 3.75 7.93 1.42.42-.3 2.37 0 4.44 1.52 1.44 1.12 2.78 2.84 2.06 4.12a4.45 4.45 0 0 1-3.4 2.84c-3.3.51-8.77-2.63-14.85-8.71l-.31-.31c-.72-.71-1.44-1.41-2.16-2.23H9C4 13.15 1.57 8.49 2.19 5.45a4.69 4.69 0 0 1 2.88-3.24c1.34-.71 3.09.71 4.13 2.13 1.54 2 1.85 3.95 1.44 4.35-2.89 3 .1 6.89 3.92 10.64"
23
- fill="currentColor"
24
+ fill={fill ?? "currentColor"}
24
25
  />
25
26
  </svg>
26
27
  )
@@ -1,16 +1,17 @@
1
+ import clsx from "clsx"
1
2
  import { type SVGProps, useId } from "react"
2
3
 
3
4
  interface IconProps extends SVGProps<SVGSVGElement> {
4
5
  alt?: string
5
6
  }
6
7
 
7
- export const QuestionIcon = ({ alt, className, ...props }: IconProps) => {
8
+ export const QuestionIcon = ({ alt, className, fill, ...props }: IconProps) => {
8
9
  const id = useId()
9
10
  const componentProps = {
10
11
  "aria-labelledby": alt ? id : undefined,
11
- className: `coop-icon ${className ?? ""}`.trim(),
12
+ className: clsx("coop-icon", className),
12
13
  "data-icon": "question",
13
- fill: "none",
14
+ fill: fill ?? "none",
14
15
  role: alt ? "img" : undefined,
15
16
  viewBox: "0 0 32 32",
16
17
  ...props,
@@ -20,11 +21,11 @@ export const QuestionIcon = ({ alt, className, ...props }: IconProps) => {
20
21
  {alt ? <title id={id}>{alt}</title> : null}
21
22
  <path
22
23
  d="M16 0a16 16 0 1 0 16 16A16 16 0 0 0 16 0m0 30a14 14 0 1 1 14-14 14 14 0 0 1-14 14"
23
- fill="currentColor"
24
+ fill={fill ?? "currentColor"}
24
25
  />
25
26
  <path
26
27
  d="M15.89 20.32a1.58 1.58 0 0 0-1.14.46 1.5 1.5 0 0 0-.47 1.1 1.3 1.3 0 0 0 .13.6 1.6 1.6 0 0 0 .35.48 1.7 1.7 0 0 0 .51.33 1.6 1.6 0 0 0 .62.12 1.55 1.55 0 0 0 1.11-.47 1.48 1.48 0 0 0 .47-1.1 1.4 1.4 0 0 0-.47-1.08 1.6 1.6 0 0 0-1.11-.44M19.11 9.71A4.3 4.3 0 0 0 17.74 9a5.2 5.2 0 0 0-1.63-.25 5.4 5.4 0 0 0-1.73.25 4.5 4.5 0 0 0-1.38.78 4.3 4.3 0 0 0-1 1.28 5 5 0 0 0-.51 1.71l2.41.23a2.7 2.7 0 0 1 .16-.78 1.9 1.9 0 0 1 .41-.67 2.1 2.1 0 0 1 .64-.46 1.9 1.9 0 0 1 .84-.17 1.78 1.78 0 0 1 1.39.53 1.84 1.84 0 0 1 .49 1.31 1.9 1.9 0 0 1-.27 1 4 4 0 0 1-.65.76l-.9.86a5.4 5.4 0 0 0-.63.68 3.05 3.05 0 0 0-.63 1.39 5.4 5.4 0 0 0-.07.86v.76h2.37v-.52a4 4 0 0 1 .06-.74 1.8 1.8 0 0 1 .21-.56 2.7 2.7 0 0 1 .4-.52c.17-.18.39-.38.65-.61s.59-.52.84-.77a5 5 0 0 0 .63-.77 3.4 3.4 0 0 0 .4-.88 4.2 4.2 0 0 0 .14-1.13 3.8 3.8 0 0 0-.38-1.64 3.6 3.6 0 0 0-.89-1.22"
27
- fill="currentColor"
28
+ fill={fill ?? "currentColor"}
28
29
  />
29
30
  </svg>
30
31
  )
@@ -1,16 +1,17 @@
1
+ import clsx from "clsx"
1
2
  import { type SVGProps, useId } from "react"
2
3
 
3
4
  interface IconProps extends SVGProps<SVGSVGElement> {
4
5
  alt?: string
5
6
  }
6
7
 
7
- export const ScooterIcon = ({ alt, className, ...props }: IconProps) => {
8
+ export const ScooterIcon = ({ alt, className, fill, ...props }: IconProps) => {
8
9
  const id = useId()
9
10
  const componentProps = {
10
11
  "aria-labelledby": alt ? id : undefined,
11
- className: `coop-icon ${className ?? ""}`.trim(),
12
+ className: clsx("coop-icon", className),
12
13
  "data-icon": "scooter",
13
- fill: "none",
14
+ fill: fill ?? "none",
14
15
  role: alt ? "img" : undefined,
15
16
  viewBox: "0 0 32 32",
16
17
  ...props,
@@ -22,15 +23,15 @@ export const ScooterIcon = ({ alt, className, ...props }: IconProps) => {
22
23
  <path d="M41.292 18.293a1 1 0 0 1 1.414 0C43.88 19.465 44.6 21.014 44.6 22.8c0 3.452-2.747 6.2-6.2 6.2-3.333 0-6.08-2.622-6.2-5.964a1 1 0 1 1 2-.072 4.19 4.19 0 0 0 4.2 4.036c2.348 0 4.2-1.852 4.2-4.2 0-1.214-.48-2.265-1.307-3.093a1 1 0 0 1 0-1.414M1.1 23a9.28 9.28 0 0 1 9.3-9.3 9.28 9.28 0 0 1 9.3 9.3 1 1 0 0 1-1 1H2.1a1 1 0 0 1-1-1m2.067-1h14.466a7.28 7.28 0 0 0-7.233-6.3A7.28 7.28 0 0 0 3.167 22" />
23
24
  <path
24
25
  d="M34.754 13.161c3.98-1.476 8.72.438 10.545 4.203a1 1 0 1 1-1.8.872c-1.374-2.834-5.032-4.32-8.052-3.199l-.006.003c-.933.339-1.796.939-2.494 1.724a1 1 0 0 1-1.495-1.328c.9-1.014 2.036-1.813 3.302-2.275M10.4 29.3a6.164 6.164 0 0 1-6.2-6.2h2c0 2.348 1.852 4.2 4.2 4.2s4.2-1.852 4.2-4.2h2c0 3.452-2.749 6.2-6.2 6.2"
25
- fill="currentColor"
26
+ fill={fill ?? "currentColor"}
26
27
  />
27
28
  <path
28
29
  d="M21.3 1a1 1 0 0 1 1-1h5.1a1 1 0 0 1 .869.503l7.1 12.4a1 1 0 1 1-1.736.994L26.821 2h-4.52a1 1 0 0 1-1-1M8.585 9.2c3.42-.1 6.556-.012 9.806 1.829 2.713 1.52 4.878 4.116 5.858 7.055a1 1 0 0 1-1.898.632c-.82-2.46-2.654-4.663-4.94-5.943l-.004-.003c-2.745-1.555-5.404-1.67-8.778-1.57H8a1 1 0 1 1 0-2z"
29
- fill="currentColor"
30
+ fill={fill ?? "currentColor"}
30
31
  />
31
32
  <path
32
33
  d="M45.33 17.434a1 1 0 0 1-.564 1.297l-12.2 4.8-.05.018c-.966.322-1.976.551-3.116.551H2.1a1 1 0 1 1 0-2h27.3c.851 0 1.634-.167 2.459-.44l12.174-4.79a1 1 0 0 1 1.297.564M0 5.7a1 1 0 0 1 1-1h9.9a1 1 0 1 1 0 2H1a1 1 0 0 1-1-1M1.8 10.2a1 1 0 0 1 1-1h2a1 1 0 1 1 0 2h-2a1 1 0 0 1-1-1M3.2 1a1 1 0 0 1 1-1h7.1a1 1 0 1 1 0 2H4.2a1 1 0 0 1-1-1"
33
- fill="currentColor"
34
+ fill={fill ?? "currentColor"}
34
35
  />
35
36
  </g>
36
37
  <defs>
@@ -1,16 +1,17 @@
1
+ import clsx from "clsx"
1
2
  import { type SVGProps, useId } from "react"
2
3
 
3
4
  interface IconProps extends SVGProps<SVGSVGElement> {
4
5
  alt?: string
5
6
  }
6
7
 
7
- export const SearchIcon = ({ alt, className, ...props }: IconProps) => {
8
+ export const SearchIcon = ({ alt, className, fill, ...props }: IconProps) => {
8
9
  const id = useId()
9
10
  const componentProps = {
10
11
  "aria-labelledby": alt ? id : undefined,
11
- className: `coop-icon ${className ?? ""}`.trim(),
12
+ className: clsx("coop-icon", className),
12
13
  "data-icon": "search",
13
- fill: "none",
14
+ fill: fill ?? "none",
14
15
  role: alt ? "img" : undefined,
15
16
  viewBox: "0 0 32 32",
16
17
  ...props,
@@ -20,11 +21,11 @@ export const SearchIcon = ({ alt, className, ...props }: IconProps) => {
20
21
  {alt ? <title id={id}>{alt}</title> : null}
21
22
  <path
22
23
  d="M13.25 25.49a12.25 12.25 0 1 1 12.24-12.24 12.25 12.25 0 0 1-12.24 12.24m0-22.61a10.37 10.37 0 1 0 10.36 10.37A10.38 10.38 0 0 0 13.25 2.88"
23
- fill="currentColor"
24
+ fill={fill ?? "currentColor"}
24
25
  />
25
26
  <path
26
27
  d="M30.06 31a.94.94 0 0 1-.67-.28l-8.81-8.81a.94.94 0 1 1 1.33-1.33l8.81 8.81a.94.94 0 0 1 0 1.33.9.9 0 0 1-.66.28"
27
- fill="currentColor"
28
+ fill={fill ?? "currentColor"}
28
29
  />
29
30
  </svg>
30
31
  )
@@ -1,16 +1,17 @@
1
+ import clsx from "clsx"
1
2
  import { type SVGProps, useId } from "react"
2
3
 
3
4
  interface IconProps extends SVGProps<SVGSVGElement> {
4
5
  alt?: string
5
6
  }
6
7
 
7
- export const SettingsIcon = ({ alt, className, ...props }: IconProps) => {
8
+ export const SettingsIcon = ({ alt, className, fill, ...props }: IconProps) => {
8
9
  const id = useId()
9
10
  const componentProps = {
10
11
  "aria-labelledby": alt ? id : undefined,
11
- className: `coop-icon ${className ?? ""}`.trim(),
12
+ className: clsx("coop-icon", className),
12
13
  "data-icon": "settings",
13
- fill: "none",
14
+ fill: fill ?? "none",
14
15
  role: alt ? "img" : undefined,
15
16
  viewBox: "0 0 32 32",
16
17
  ...props,
@@ -20,7 +21,7 @@ export const SettingsIcon = ({ alt, className, ...props }: IconProps) => {
20
21
  {alt ? <title id={id}>{alt}</title> : null}
21
22
  <path
22
23
  d="M16 2a14 14 0 0 1 2.13.16v3.57l1.34.47a10.2 10.2 0 0 1 3.27 1.89l1.08.91 1.23-.71 1.86-1.08a14 14 0 0 1 2.14 3.69L27.18 12l-1.18.7.26 1.39a10.6 10.6 0 0 1 0 3.8L26 19.28l1.23.71 1.88 1.09a14.2 14.2 0 0 1-2.14 3.69l-1.86-1.08-1.28-.69-1.07.92a10.6 10.6 0 0 1-3.3 1.9l-1.33.47v3.57A14 14 0 0 1 16 30a14 14 0 0 1-2.13-.16v-3.57l-1.34-.47a10.2 10.2 0 0 1-3.27-1.9L8.18 23 7 23.69l-1.91 1.08A14.1 14.1 0 0 1 3 21.08L4.82 20l1.23-.71-.26-1.39a10.6 10.6 0 0 1 0-3.8l.26-1.39L4.82 12 3 10.92a14.5 14.5 0 0 1 2.08-3.69l1.86 1.08L8.16 9l1.08-.9a10.6 10.6 0 0 1 3.3-1.9l1.33-.47V2.16A14 14 0 0 1 16 2m0 21a7 7 0 1 0-7-7 7 7 0 0 0 7 7m0-23a16 16 0 0 0-3.53.39.76.76 0 0 0-.6.75v3.18a12.7 12.7 0 0 0-3.93 2.26L5.2 5a.75.75 0 0 0-.38-.1.77.77 0 0 0-.57.25 15.9 15.9 0 0 0-3.53 6.1.78.78 0 0 0 .35.91l2.75 1.59a12.3 12.3 0 0 0 0 4.52l-2.75 1.58a.79.79 0 0 0-.35.9 16 16 0 0 0 3.53 6.11.8.8 0 0 0 .57.25.7.7 0 0 0 .38-.11L8 25.42a12.3 12.3 0 0 0 3.92 2.26v3.18a.77.77 0 0 0 .61.75A16.2 16.2 0 0 0 16 32a16 16 0 0 0 3.53-.39.76.76 0 0 0 .6-.75v-3.18a12.5 12.5 0 0 0 3.92-2.26L26.8 27a.79.79 0 0 0 1-.15 16 16 0 0 0 3.53-6.11.8.8 0 0 0-.36-.9l-2.75-1.59a12.8 12.8 0 0 0 0-4.53l2.75-1.59a.78.78 0 0 0 .35-.9 16.1 16.1 0 0 0-3.53-6.1.76.76 0 0 0-.57-.26.73.73 0 0 0-.42.13l-2.75 1.57a12.3 12.3 0 0 0-3.92-2.26V1.14a.77.77 0 0 0-.61-.75A16.2 16.2 0 0 0 16 0m0 21a5 5 0 1 1 5-5 5 5 0 0 1-5 5"
23
- fill="currentColor"
24
+ fill={fill ?? "currentColor"}
24
25
  />
25
26
  </svg>
26
27
  )
@@ -1,16 +1,17 @@
1
+ import clsx from "clsx"
1
2
  import { type SVGProps, useId } from "react"
2
3
 
3
4
  interface IconProps extends SVGProps<SVGSVGElement> {
4
5
  alt?: string
5
6
  }
6
7
 
7
- export const TickAltIcon = ({ alt, className, ...props }: IconProps) => {
8
+ export const TickAltIcon = ({ alt, className, fill, ...props }: IconProps) => {
8
9
  const id = useId()
9
10
  const componentProps = {
10
11
  "aria-labelledby": alt ? id : undefined,
11
- className: `coop-icon ${className ?? ""}`.trim(),
12
+ className: clsx("coop-icon", className),
12
13
  "data-icon": "tick-alt",
13
- fill: "none",
14
+ fill: fill ?? "none",
14
15
  role: alt ? "img" : undefined,
15
16
  viewBox: "0 0 32 32",
16
17
  ...props,
@@ -20,11 +21,11 @@ export const TickAltIcon = ({ alt, className, ...props }: IconProps) => {
20
21
  {alt ? <title id={id}>{alt}</title> : null}
21
22
  <path
22
23
  d="M12.7 22a1 1 0 0 1-.71-.29L8.3 18a1 1 0 0 1 0-1.42 1 1 0 0 1 1.41 0l3 3 9.41-9.38a1 1 0 0 1 1.42 0 1 1 0 0 1 0 1.41L13.4 21.69a1 1 0 0 1-.7.31"
23
- fill="currentColor"
24
+ fill={fill ?? "currentColor"}
24
25
  />
25
26
  <path
26
27
  d="M16 2A14 14 0 1 1 2 16 14 14 0 0 1 16 2m0-2a16 16 0 1 0 16 16A16 16 0 0 0 16 0"
27
- fill="currentColor"
28
+ fill={fill ?? "currentColor"}
28
29
  />
29
30
  </svg>
30
31
  )
@@ -1,16 +1,17 @@
1
+ import clsx from "clsx"
1
2
  import { type SVGProps, useId } from "react"
2
3
 
3
4
  interface IconProps extends SVGProps<SVGSVGElement> {
4
5
  alt?: string
5
6
  }
6
7
 
7
- export const TickIcon = ({ alt, className, ...props }: IconProps) => {
8
+ export const TickIcon = ({ alt, className, fill, ...props }: IconProps) => {
8
9
  const id = useId()
9
10
  const componentProps = {
10
11
  "aria-labelledby": alt ? id : undefined,
11
- className: `coop-icon ${className ?? ""}`.trim(),
12
+ className: clsx("coop-icon", className),
12
13
  "data-icon": "tick",
13
- fill: "none",
14
+ fill: fill ?? "none",
14
15
  role: alt ? "img" : undefined,
15
16
  viewBox: "0 0 32 32",
16
17
  ...props,
@@ -20,7 +21,7 @@ export const TickIcon = ({ alt, className, ...props }: IconProps) => {
20
21
  {alt ? <title id={id}>{alt}</title> : null}
21
22
  <path
22
23
  d="M10.41 26a1 1 0 0 1-.71-.3l-6.42-6.59a1 1 0 0 1 1.44-1.39l5.69 5.85L27.28 6.3a1 1 0 1 1 1.44 1.4l-17.59 18a1 1 0 0 1-.72.3"
23
- fill="currentColor"
24
+ fill={fill ?? "currentColor"}
24
25
  />
25
26
  </svg>
26
27
  )
@@ -1,16 +1,17 @@
1
+ import clsx from "clsx"
1
2
  import { type SVGProps, useId } from "react"
2
3
 
3
4
  interface IconProps extends SVGProps<SVGSVGElement> {
4
5
  alt?: string
5
6
  }
6
7
 
7
- export const VanIcon = ({ alt, className, ...props }: IconProps) => {
8
+ export const VanIcon = ({ alt, className, fill, ...props }: IconProps) => {
8
9
  const id = useId()
9
10
  const componentProps = {
10
11
  "aria-labelledby": alt ? id : undefined,
11
- className: `coop-icon ${className ?? ""}`.trim(),
12
+ className: clsx("coop-icon", className),
12
13
  "data-icon": "van",
13
- fill: "none",
14
+ fill: fill ?? "none",
14
15
  role: alt ? "img" : undefined,
15
16
  viewBox: "0 0 32 32",
16
17
  ...props,
@@ -20,7 +21,7 @@ export const VanIcon = ({ alt, className, ...props }: IconProps) => {
20
21
  {alt ? <title id={id}>{alt}</title> : null}
21
22
  <path
22
23
  d="M31.05 3H9.8a1 1 0 0 0-1 1v.2H3.06a1 1 0 0 0-1 .86L.89 12.64a1 1 0 0 0-.89 1v10a1 1 0 0 0 1 1h3a5 5 0 0 0 9.9 0H18a5 5 0 0 0 9.89 0h3.21a1 1 0 0 0 .72-.3 1 1 0 0 0 .18-.72V4a1 1 0 0 0-.95-1M3.91 6.24H8.8v6.38H2.93ZM8.92 27A3 3 0 0 1 6 24.71a2.9 2.9 0 0 1-.12-.83 3.1 3.1 0 0 1 .25-1.22 3 3 0 0 1 5.53 0 3.3 3.3 0 0 1 .24 1.22 3.3 3.3 0 0 1-.11.83A3 3 0 0 1 8.92 27M23 27a3 3 0 0 1-2.89-2.24 2.9 2.9 0 0 1-.12-.83 3.1 3.1 0 0 1 .25-1.22 3 3 0 0 1 5.53 0 3.3 3.3 0 0 1 .23 1.17 3.3 3.3 0 0 1-.11.83A3 3 0 0 1 23 27m4.87-4.29a5 5 0 0 0-9.74 0H13.8a5 5 0 0 0-9.75 0H2v-8h7.8a1 1 0 0 0 1-1V5.05H30v17.61Z"
23
- fill="currentColor"
24
+ fill={fill ?? "currentColor"}
24
25
  />
25
26
  </svg>
26
27
  )
@@ -1,16 +1,17 @@
1
+ import clsx from "clsx"
1
2
  import { type SVGProps, useId } from "react"
2
3
 
3
4
  interface IconProps extends SVGProps<SVGSVGElement> {
4
5
  alt?: string
5
6
  }
6
7
 
7
- export const WarningIcon = ({ alt, className, ...props }: IconProps) => {
8
+ export const WarningIcon = ({ alt, className, fill, ...props }: IconProps) => {
8
9
  const id = useId()
9
10
  const componentProps = {
10
11
  "aria-labelledby": alt ? id : undefined,
11
- className: `coop-icon ${className ?? ""}`.trim(),
12
+ className: clsx("coop-icon", className),
12
13
  "data-icon": "warning",
13
- fill: "none",
14
+ fill: fill ?? "none",
14
15
  role: alt ? "img" : undefined,
15
16
  viewBox: "0 0 32 32",
16
17
  ...props,
@@ -20,11 +21,11 @@ export const WarningIcon = ({ alt, className, ...props }: IconProps) => {
20
21
  {alt ? <title id={id}>{alt}</title> : null}
21
22
  <path
22
23
  d="M2.35 28.08 16.06 4.46l13.71 23.62Zm29.32-.7L17.56 3.07A1.73 1.73 0 0 0 16.06 2a1.94 1.94 0 0 0-1.5 1.1L.35 27.38C-.45 28.77.15 30 1.85 30h28.32a1.6 1.6 0 0 0 1.5-2.62"
23
- fill="currentColor"
24
+ fill={fill ?? "currentColor"}
24
25
  />
25
26
  <path
26
27
  d="M14.52 24.19A1.44 1.44 0 0 1 15 23.1a1.54 1.54 0 0 1 1.13-.46 1.63 1.63 0 0 1 1.12.44 1.39 1.39 0 0 1 .48 1.07 1.48 1.48 0 0 1-.47 1.1 1.62 1.62 0 0 1-1.74.34 1.6 1.6 0 0 1-.51-.32 1.3 1.3 0 0 1-.35-.48 1.3 1.3 0 0 1-.14-.6m2.8-3h-2.4v-9.71h2.4Z"
27
- fill="currentColor"
28
+ fill={fill ?? "currentColor"}
28
29
  />
29
30
  </svg>
30
31
  )
@@ -1,16 +1,17 @@
1
+ import clsx from "clsx"
1
2
  import { type SVGProps, useId } from "react"
2
3
 
3
4
  interface IconProps extends SVGProps<SVGSVGElement> {
4
5
  alt?: string
5
6
  }
6
7
 
7
- export const WriteIcon = ({ alt, className, ...props }: IconProps) => {
8
+ export const WriteIcon = ({ alt, className, fill, ...props }: IconProps) => {
8
9
  const id = useId()
9
10
  const componentProps = {
10
11
  "aria-labelledby": alt ? id : undefined,
11
- className: `coop-icon ${className ?? ""}`.trim(),
12
+ className: clsx("coop-icon", className),
12
13
  "data-icon": "write",
13
- fill: "none",
14
+ fill: fill ?? "none",
14
15
  role: alt ? "img" : undefined,
15
16
  viewBox: "0 0 32 32",
16
17
  ...props,
@@ -20,19 +21,19 @@ export const WriteIcon = ({ alt, className, ...props }: IconProps) => {
20
21
  {alt ? <title id={id}>{alt}</title> : null}
21
22
  <path
22
23
  d="M19.67 10.13 17.9 11.9H7a1 1 0 0 1 0-2h12a1 1 0 0 1 .67.23M14.9 14.9l-2 2H7a1 1 0 0 1 0-2ZM20 15.9a1 1 0 0 1-1 1h-1.87l2-2a1 1 0 0 1 .82.59.85.85 0 0 1 .05.41M19 21.9H7a1 1 0 0 1 0-2h12a1 1 0 1 1 0 2"
23
- fill="currentColor"
24
+ fill={fill ?? "currentColor"}
24
25
  />
25
26
  <path
26
27
  d="M24.08 10v20h-22V6h21.73l1.54-1.54a1.9 1.9 0 0 0-1-.44H2.07a2 2 0 0 0-2 2V30a2 2 0 0 0 2 2h22a2 2 0 0 0 2-2V8Z"
27
- fill="currentColor"
28
+ fill={fill ?? "currentColor"}
28
29
  />
29
30
  <path
30
31
  d="M30.62 3.41 28.5 1.29a1 1 0 0 0-1.42 0L22.38 6l-3.9 3.9-5 5-1.33 1.33a1 1 0 0 0-.27.48v.19l-.6 2.57a.8.8 0 0 0 0 .43 1 1 0 0 0 1.19.77l2.74-.67a.64.64 0 0 0 .29-.13.6.6 0 0 0 .19-.14l2.85-2.86 1.4-1.39L30.62 4.82a1 1 0 0 0 0-1.41M15 19.06l-2.75.63.62-2.75 6.82-6.81L23.81 6l1.54-1.54L27.79 2l2.13 2.12Z"
31
- fill="currentColor"
32
+ fill={fill ?? "currentColor"}
32
33
  />
33
34
  <path
34
35
  d="M31.33 2.7 29.21.58a2.06 2.06 0 0 0-2.83 0L11.44 15.52a2.1 2.1 0 0 0-.54 1l-.09.41-.54 2.34a2.18 2.18 0 0 0 .54 1.87 2 2 0 0 0 1.4.58 1.8 1.8 0 0 0 .46-.05l2.75-.67a2.1 2.1 0 0 0 1-.54L31.33 5.53a2 2 0 0 0 0-2.83M15 19.06l-2.75.63.62-2.75 6.82-6.81L23.81 6l1.54-1.54L27.79 2l2.13 2.12Z"
35
- fill="currentColor"
36
+ fill={fill ?? "currentColor"}
36
37
  />
37
38
  </svg>
38
39
  )
@@ -1,15 +1,15 @@
1
1
  import type { HTMLAttributes, JSX } from "react"
2
2
 
3
3
  export interface ImageProps extends HTMLAttributes<HTMLImageElement> {
4
- /** Specifies text that can replace the Image in the page */
4
+ /** Specify text to describe the image. Refer to Experience Library guidelines on writing good alt text. */
5
5
  alt: string
6
- /** **(Optional)** Specifies the Image crop mode */
6
+ /** **(Optional)** Specify the image crop mode. */
7
7
  crop?: "square" | "wide" | "none"
8
- /** **(Optional)** Specifies height of the Image */
8
+ /** **(Optional)** Specify the height of the image. */
9
9
  height?: string
10
- /** Specifies the Image URL */
10
+ /** Specify the Image source URL. */
11
11
  src: string
12
- /** **(Optional)** Specifies width of the Image */
12
+ /** **(Optional)** Specify the width of the image. */
13
13
  width?: string
14
14
  }
15
15
 
@@ -7,22 +7,22 @@ import { bgPropToClass } from "../../../src/utils"
7
7
  import { Darks, OfferRed, Tints } from "../../types/colors"
8
8
 
9
9
  export interface PillProps extends HTMLAttributes<HTMLAnchorElement> {
10
- /** **(Optional)** Specifies the custom element to override default `a` or `span`. */
10
+ /** **(Optional)** Specify a custom element to override default `a` or `span`. */
11
11
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
12
12
  as?: React.FC<AnchorHTMLAttributes<HTMLElement>> | ForwardRefExoticComponent<any> | string
13
- /** **(Optional)** Specifies the Pill background color from the available options. */
13
+ /** **(Optional)** Specify the Pill background color. */
14
14
  background?: Tints
15
- /** **(Optional)** Specifies what text Pill should display on the badge. */
15
+ /** **(Optional)** Specify text to display inside the badge. */
16
16
  badge?: string
17
- /** **(Optional)** Specifies the badge background color from the available options. */
17
+ /** **(Optional)** Specify the badge background color. */
18
18
  badgeBackground?: Darks | OfferRed
19
- /** **(Optional)** Represents the content inside the Pill component. It can be any valid JSX or string. */
19
+ /** **(Optional)** Main content inside the component. It can be any valid JSX or string. */
20
20
  children?: React.ReactNode
21
- /** **(Optional)** Receives any className to be applied to Pill component. */
21
+ /** **(Optional)** Specify additional CSS classes to be applied to the component. */
22
22
  className?: string
23
- /** **(Optional)** Specifies the URL that the Pill component will link to when clicked. */
23
+ /** **(Optional)** Specify the URL that the Pill component will link to when clicked. */
24
24
  href?: string
25
- /** **(Optional)** Specifies what should be the Pill size. */
25
+ /** **(Optional)** Specify the Pill size. */
26
26
  size?: "sm" | "md" | "lg" | "xl"
27
27
  }
28
28
 
@@ -32,7 +32,7 @@ export const Pill = ({
32
32
  badge,
33
33
  badgeBackground = "offer-red",
34
34
  children,
35
- className = "",
35
+ className,
36
36
  href,
37
37
  size = "md",
38
38
  ...props
@@ -2,7 +2,7 @@ export const RootSVG = () => {
2
2
  return (
3
3
  <svg height="0" width="0" xmlns="http://www.w3.org/2000/svg">
4
4
  <defs>
5
- <clipPath clipPathUnits="objectBoundingBox" id="squircle">
5
+ <clipPath clipPathUnits="objectBoundingBox" id="coop-squircle">
6
6
  <path d="M0,0.5 C0,0.165,0.165,0,0.5,0 S1,0.165,1,0.5 S0.835,1,0.5,1 S0,0.835,0,0.5"></path>
7
7
  </clipPath>
8
8
  </defs>
@@ -1,3 +1,4 @@
1
+ import clsx from "clsx"
1
2
  import React, { HTMLAttributes, useCallback, useId, useState } from "react"
2
3
  import { type JSX } from "react"
3
4
 
@@ -5,27 +6,27 @@ import { Button, type ButtonProps } from "../Button"
5
6
  import { SearchIcon } from "../Icon"
6
7
 
7
8
  export interface SearchBoxProps extends HTMLAttributes<HTMLInputElement> {
8
- /** **(Optional)** Server endpoint to submit the form. Will be ignored if onSubmit is also set. */
9
+ /** **(Optional)** Specify a server endpoint to submit the form. Will be ignored if onSubmit is also set. */
9
10
  action?: string
10
- /** **(Optional)** Whether or not to enable auto complete on the input field. Default: `off`. */
11
+ /** **(Optional)** Specify whether or not to enable autocomplete on the input field. Default: `off`. */
11
12
  autoComplete?: "off" | "on"
12
- /** **(Optional)** Props to forward to the Button element. Use `label` to set Button text. */
13
+ /** **(Optional)** Specify props to forward to the Button element. Use `label` to set Button text. */
13
14
  button?: Pick<ButtonProps, "className" | "loadingText"> & { label?: React.ReactNode }
14
- /** **(Optional)** Receives any className to be applied to SearchBox component. */
15
+ /** **(Optional)** Specify additional CSS classes to be applied to the component. */
15
16
  className?: string
16
- /** Receives the label to be applied to SearchBox component. */
17
+ /** Specify the label displayed above the search field. Hidden by default, but visible to screen readers. */
17
18
  label: string
18
- /** **(Optional)** Receives whether label is visible to human or only screen readers. */
19
+ /** **(Optional)** Specify whether the label should be visible to humans or screenreaders. */
19
20
  labelVisible?: boolean
20
- /** **(Optional)** Name of the input element, also used as the URL search parameter. Defaults to `query` */
21
+ /** **(Optional)** Specify the name of the input element, also used as the URL search parameter. Defaults to `query`. */
21
22
  name?: string
22
23
  /** **(Optional)** Callback to run when the form is submitted. If this is an async function, it will be awaited and the SearchBox will be in a pending state until the promise is resolved. */
23
24
  onSubmit?: React.FormEventHandler<HTMLElement> | undefined
24
- /** **(Optional)** Receives any placeholder for SearchBox component. */
25
+ /** **(Optional)** Specify placeholder text for the search field. Do not in place of a form label. */
25
26
  placeholder?: string
26
- /** **(Optional)** Receives any size to be applied to SearchBox component. */
27
+ /** **(Optional)** Specify the SearchBox size. */
27
28
  size?: string
28
- /** **(Optional)** Receives the variant to be applied to SearchBox component. */
29
+ /** **(Optional)** Specify the SearchBox variant. */
29
30
  variant?:
30
31
  | "green"
31
32
  | "blue"
@@ -81,7 +82,7 @@ export const SearchBox = ({
81
82
 
82
83
  const formProps = {
83
84
  action: action ?? undefined,
84
- className: `coop-search-box ${className ?? ""}`.trim(),
85
+ className: clsx("coop-search-box", className),
85
86
  "data-size": size.length && size !== "md" ? size : undefined,
86
87
  "data-variant": variant.length && variant !== "green" ? variant : undefined,
87
88
  onSubmit: onSubmit ? handleSubmit : undefined,
@@ -1,29 +1,31 @@
1
1
  import type { AnchorHTMLAttributes, ForwardRefExoticComponent, HTMLAttributes, JSX } from "react"
2
2
 
3
+ import clsx from "clsx"
3
4
  import React from "react"
4
5
 
6
+ import { ChevronRightIcon } from "../Icon"
5
7
  import { Image, ImageProps } from "../Image"
6
8
 
7
9
  export interface SignpostProps extends HTMLAttributes<HTMLDivElement> {
8
- /** **(Optional)** Specifies the custom element to override default `a` */
10
+ /** **(Optional)** Specify a custom element to override default `a`. */
9
11
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
10
12
  as?: React.FC<AnchorHTMLAttributes<HTMLElement>> | ForwardRefExoticComponent<any> | string
11
- /** Represents the heading inside the Signpost component. It can be any valid JSX or string. */
13
+ /** Main content inside the component. It can be any valid JSX or string. */
12
14
  children: React.ReactNode
13
- /** **(Optional)** Receives any className to be applied to Signpost component. */
15
+ /** **(Optional)** Specify additional CSS classes to be applied to the component. */
14
16
  className?: string
15
- /** **(Optional)** Specifies the heading level of the signpost's heading. */
17
+ /** **(Optional)** Specify the level of the Signpost heading. */
16
18
  headingLevel?: "h2" | "h3" | "h4" | "h5" | "h6"
17
- /** Specifies the URL that the Signpost component will link to when clicked. */
19
+ /** Specify the URL that the Signpost component will link to when clicked. */
18
20
  href: string
19
- /** **(Optional)** Specifies the image URL and alt text of the Signpost */
21
+ /** **(Optional)** Specify properties of the Signpost Image. */
20
22
  image?: ImageProps
21
23
  }
22
24
 
23
25
  export const Signpost = ({
24
26
  as,
25
27
  children,
26
- className = "",
28
+ className,
27
29
  headingLevel = "h3",
28
30
  href,
29
31
  image,
@@ -35,7 +37,7 @@ export const Signpost = ({
35
37
  }
36
38
 
37
39
  const componentProps = {
38
- className: `coop-signpost ${className}`,
40
+ className: clsx("coop-signpost", className),
39
41
  ...props,
40
42
  }
41
43
 
@@ -48,9 +50,7 @@ export const Signpost = ({
48
50
  <div className="coop-signpost--content">
49
51
  {React.createElement(headingLevel, { className: "coop-signpost--heading" }, children)}
50
52
  <span aria-hidden="true" className="coop-signpost--icon" role="presentation">
51
- <svg viewBox="0 0 16 29">
52
- <path d="M2 28.1a1.6 1.6 0 0 1-1.2-2.7l11-10.9-11-11A1.6 1.6 0 1 1 3 1.5l12 12a1.6 1.6 0 0 1 0 2.2l-12 12c-.3.4-.7.5-1 .5z" />
53
- </svg>
53
+ <ChevronRightIcon />
54
54
  </span>
55
55
  </div>
56
56
  )}
@@ -1,32 +1,32 @@
1
1
  import type { HTMLAttributes, JSX } from "react"
2
2
 
3
+ import clsx from "clsx"
4
+
3
5
  interface SkipNavLink {
4
6
  href: string
5
7
  label: string
6
8
  }
7
9
 
8
10
  export interface SkipNavProps extends HTMLAttributes<HTMLDivElement> {
9
- /** **(Optional)** Receives any className to be applied to Skip Nav component. */
11
+ /** **(Optional)** Specify additional CSS classes to be applied to the component. */
10
12
  className?: string
11
- /** **(Optional)** Specifies if the component is visible straight away or only when pressing 'Tab'. */
13
+ /** **(Optional)** Specify whether the SkipNav is visible immediately or only when tabbing. Useful for testing purposes only. */
12
14
  isVisible?: boolean
13
- /** **(Optional)** Specifies the links that are going to be shown on the Skip Nav.
14
- * It is an `array` of items and each item should have `href` and `label` information.
15
- *
16
- * Defaults to a single link anchored to `#main` */
15
+ /** **(Optional)** Specify links to show in the SkipNav.
16
+ * Each item needs a `href` and `label`. Defaults to a single link anchored to `#main`. */
17
17
  links?: SkipNavLink[]
18
18
  }
19
19
 
20
20
  const defaultLinks = [{ href: "#main", label: "Skip to main content" }]
21
21
 
22
22
  export const SkipNav = ({
23
- className = "",
23
+ className,
24
24
  isVisible = false,
25
25
  links = defaultLinks,
26
26
  ...props
27
27
  }: SkipNavProps): JSX.Element => {
28
28
  const componentProps = {
29
- className: `coop-skip-nav ${className}`,
29
+ className: clsx("coop-skip-nav", className),
30
30
  ...props,
31
31
  }
32
32
  const navLinks = links.length > 0 ? links : defaultLinks