@coopdigital/react 0.17.0 → 0.18.1

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 (92) hide show
  1. package/README.md +2 -2
  2. package/dist/components/Expandable/Expandable.d.ts +1 -1
  3. package/dist/components/Expandable/Expandable.js +1 -1
  4. package/dist/components/Icon/AddIcon.d.ts +6 -1
  5. package/dist/components/Icon/ArrowDownIcon.d.ts +6 -1
  6. package/dist/components/Icon/ArrowLeftIcon.d.ts +6 -1
  7. package/dist/components/Icon/ArrowRightIcon.d.ts +6 -1
  8. package/dist/components/Icon/ArrowUpIcon.d.ts +6 -1
  9. package/dist/components/Icon/AvatarAltIcon.d.ts +6 -1
  10. package/dist/components/Icon/AvatarIcon.d.ts +6 -1
  11. package/dist/components/Icon/BasketIcon.d.ts +6 -1
  12. package/dist/components/Icon/CalendarIcon.d.ts +6 -1
  13. package/dist/components/Icon/ChevronDownIcon.d.ts +6 -1
  14. package/dist/components/Icon/ChevronLeftIcon.d.ts +6 -1
  15. package/dist/components/Icon/ChevronRightIcon.d.ts +6 -1
  16. package/dist/components/Icon/ChevronUpIcon.d.ts +6 -1
  17. package/dist/components/Icon/ClockIcon.d.ts +6 -1
  18. package/dist/components/Icon/CloseAltIcon.d.ts +6 -1
  19. package/dist/components/Icon/CloseIcon.d.ts +6 -1
  20. package/dist/components/Icon/CoopCardIcon.d.ts +6 -1
  21. package/dist/components/Icon/CoopIcon.d.ts +6 -1
  22. package/dist/components/Icon/CoopLocationIcon.d.ts +6 -1
  23. package/dist/components/Icon/DownloadIcon.d.ts +6 -1
  24. package/dist/components/Icon/HomeIcon.d.ts +6 -1
  25. package/dist/components/Icon/InformationIcon.d.ts +6 -1
  26. package/dist/components/Icon/LocationIcon.d.ts +6 -1
  27. package/dist/components/Icon/MailIcon.d.ts +6 -1
  28. package/dist/components/Icon/MenuIcon.d.ts +6 -1
  29. package/dist/components/Icon/MessageIcon.d.ts +6 -1
  30. package/dist/components/Icon/MinusIcon.d.ts +6 -1
  31. package/dist/components/Icon/OpenNewIcon.d.ts +6 -1
  32. package/dist/components/Icon/PencilIcon.d.ts +6 -1
  33. package/dist/components/Icon/PhoneIcon.d.ts +6 -1
  34. package/dist/components/Icon/QuestionIcon.d.ts +6 -1
  35. package/dist/components/Icon/ScooterIcon.d.ts +6 -1
  36. package/dist/components/Icon/SearchIcon.d.ts +6 -1
  37. package/dist/components/Icon/SearchIcon.js +12 -0
  38. package/dist/components/Icon/SettingsIcon.d.ts +6 -1
  39. package/dist/components/Icon/TickAltIcon.d.ts +6 -1
  40. package/dist/components/Icon/TickIcon.d.ts +6 -1
  41. package/dist/components/Icon/VanIcon.d.ts +6 -1
  42. package/dist/components/Icon/WarningIcon.d.ts +6 -1
  43. package/dist/components/Icon/WriteIcon.d.ts +6 -1
  44. package/dist/components/SearchBox/SearchBox.d.ts +48 -0
  45. package/dist/components/SearchBox/SearchBox.js +67 -0
  46. package/dist/components/SearchBox/index.d.ts +4 -0
  47. package/dist/index.d.ts +1 -0
  48. package/dist/index.js +1 -0
  49. package/package.json +10 -9
  50. package/src/components/Expandable/Expandable.tsx +13 -2
  51. package/src/components/Icon/AddIcon.tsx +19 -2
  52. package/src/components/Icon/ArrowDownIcon.tsx +19 -2
  53. package/src/components/Icon/ArrowLeftIcon.tsx +19 -2
  54. package/src/components/Icon/ArrowRightIcon.tsx +19 -2
  55. package/src/components/Icon/ArrowUpIcon.tsx +19 -2
  56. package/src/components/Icon/AvatarAltIcon.tsx +19 -2
  57. package/src/components/Icon/AvatarIcon.tsx +19 -2
  58. package/src/components/Icon/BasketIcon.tsx +19 -2
  59. package/src/components/Icon/CalendarIcon.tsx +19 -2
  60. package/src/components/Icon/ChevronDownIcon.tsx +19 -2
  61. package/src/components/Icon/ChevronLeftIcon.tsx +19 -2
  62. package/src/components/Icon/ChevronRightIcon.tsx +19 -2
  63. package/src/components/Icon/ChevronUpIcon.tsx +19 -2
  64. package/src/components/Icon/ClockIcon.tsx +19 -2
  65. package/src/components/Icon/CloseAltIcon.tsx +19 -2
  66. package/src/components/Icon/CloseIcon.tsx +19 -2
  67. package/src/components/Icon/CoopCardIcon.tsx +20 -2
  68. package/src/components/Icon/CoopIcon.tsx +20 -2
  69. package/src/components/Icon/CoopLocationIcon.tsx +19 -2
  70. package/src/components/Icon/DownloadIcon.tsx +19 -2
  71. package/src/components/Icon/HomeIcon.tsx +19 -2
  72. package/src/components/Icon/InformationIcon.tsx +19 -2
  73. package/src/components/Icon/LocationIcon.tsx +19 -2
  74. package/src/components/Icon/MailIcon.tsx +19 -2
  75. package/src/components/Icon/MenuIcon.tsx +19 -2
  76. package/src/components/Icon/MessageIcon.tsx +19 -2
  77. package/src/components/Icon/MinusIcon.tsx +19 -2
  78. package/src/components/Icon/OpenNewIcon.tsx +19 -2
  79. package/src/components/Icon/PencilIcon.tsx +19 -2
  80. package/src/components/Icon/PhoneIcon.tsx +19 -2
  81. package/src/components/Icon/QuestionIcon.tsx +19 -2
  82. package/src/components/Icon/ScooterIcon.tsx +19 -2
  83. package/src/components/Icon/SearchIcon.tsx +19 -2
  84. package/src/components/Icon/SettingsIcon.tsx +19 -2
  85. package/src/components/Icon/TickAltIcon.tsx +19 -2
  86. package/src/components/Icon/TickIcon.tsx +19 -2
  87. package/src/components/Icon/VanIcon.tsx +19 -2
  88. package/src/components/Icon/WarningIcon.tsx +19 -2
  89. package/src/components/Icon/WriteIcon.tsx +19 -2
  90. package/src/components/SearchBox/SearchBox.tsx +131 -0
  91. package/src/components/SearchBox/index.ts +5 -0
  92. package/src/index.ts +1 -0
@@ -2,7 +2,18 @@ import type { DetailsHTMLAttributes, JSX } from "react"
2
2
 
3
3
  export interface ExpandableProps extends DetailsHTMLAttributes<HTMLDetailsElement> {
4
4
  /** **(Optional)** Specifies the Expandable background color from the available options. */
5
- background?: "grey" | "purple" | "pink" | "green" | "orange" | "red" | "yellow" | "lilac" | "blue"
5
+ background?:
6
+ | "grey"
7
+ | "purple"
8
+ | "pink"
9
+ | "green"
10
+ | "orange"
11
+ | "red"
12
+ | "yellow"
13
+ | "lilac"
14
+ | "blue"
15
+ | "white"
16
+ | "transparent"
6
17
  /** Represents the content inside the Expandable component, only visible when expanded. It can be any valid JSX or string. */
7
18
  children: React.ReactNode
8
19
  /** **(Optional)** Receives any className to be applied to Expandable component. */
@@ -17,7 +28,7 @@ export interface ExpandableProps extends DetailsHTMLAttributes<HTMLDetailsElemen
17
28
  */
18
29
 
19
30
  export const Expandable = ({
20
- background,
31
+ background = "grey",
21
32
  children,
22
33
  className = "",
23
34
  summary,
@@ -1,6 +1,23 @@
1
- export const AddIcon = () => {
1
+ import { type SVGProps, useId } from "react"
2
+
3
+ interface IconProps extends SVGProps<SVGSVGElement> {
4
+ alt?: string
5
+ }
6
+
7
+ export const AddIcon = ({ alt, className, ...props }: IconProps) => {
8
+ const id = useId()
9
+ const componentProps = {
10
+ "aria-labelledby": alt ? id : undefined,
11
+ className: `coop-icon ${className ?? ""}`.trim(),
12
+ "data-icon": "add",
13
+ fill: "none",
14
+ role: alt ? "img" : undefined,
15
+ viewBox: "0 0 32 32",
16
+ ...props,
17
+ }
2
18
  return (
3
- <svg className="coop-icon" fill="none" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
19
+ <svg {...componentProps}>
20
+ {alt ? <title id={id}>{alt}</title> : null}
4
21
  <path
5
22
  d="M24.7 16.72a1 1 0 0 1-.7.28H8a1 1 0 1 1 0-2h16a1 1 0 0 1 1 1 1 1 0 0 1-.3.72"
6
23
  fill="currentColor"
@@ -1,6 +1,23 @@
1
- export const ArrowDownIcon = () => {
1
+ import { type SVGProps, useId } from "react"
2
+
3
+ interface IconProps extends SVGProps<SVGSVGElement> {
4
+ alt?: string
5
+ }
6
+
7
+ export const ArrowDownIcon = ({ alt, className, ...props }: IconProps) => {
8
+ const id = useId()
9
+ const componentProps = {
10
+ "aria-labelledby": alt ? id : undefined,
11
+ className: `coop-icon ${className ?? ""}`.trim(),
12
+ "data-icon": "arrow-down",
13
+ fill: "none",
14
+ role: alt ? "img" : undefined,
15
+ viewBox: "0 0 32 32",
16
+ ...props,
17
+ }
2
18
  return (
3
- <svg className="coop-icon" fill="none" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
19
+ <svg {...componentProps}>
20
+ {alt ? <title id={id}>{alt}</title> : null}
4
21
  <path d="M15 28.66V3a1 1 0 0 1 2 0v25.66a1 1 0 0 1-2 0" fill="currentColor" />
5
22
  <path
6
23
  d="M3 17a1 1 0 0 1 .29-.71 1 1 0 0 1 1.42 0L16 27.58l11.29-11.29a1 1 0 0 1 1.42 0 1 1 0 0 1 0 1.41l-12 12a1 1 0 0 1-1.41 0l-12-12A1 1 0 0 1 3 17"
@@ -1,6 +1,23 @@
1
- export const ArrowLeftIcon = () => {
1
+ import { type SVGProps, useId } from "react"
2
+
3
+ interface IconProps extends SVGProps<SVGSVGElement> {
4
+ alt?: string
5
+ }
6
+
7
+ export const ArrowLeftIcon = ({ alt, className, ...props }: IconProps) => {
8
+ const id = useId()
9
+ const componentProps = {
10
+ "aria-labelledby": alt ? id : undefined,
11
+ className: `coop-icon ${className ?? ""}`.trim(),
12
+ "data-icon": "arrow-left",
13
+ fill: "none",
14
+ role: alt ? "img" : undefined,
15
+ viewBox: "0 0 32 32",
16
+ ...props,
17
+ }
2
18
  return (
3
- <svg className="coop-icon" fill="none" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
19
+ <svg {...componentProps}>
20
+ {alt ? <title id={id}>{alt}</title> : null}
4
21
  <path d="M3.34 17H29a1 1 0 0 0 0-2H3.34a1 1 0 0 0 0 2" fill="currentColor" />
5
22
  <path
6
23
  d="M15 29a1 1 0 0 0 .71-.29 1 1 0 0 0 0-1.42L5.12 16.71a1 1 0 0 1 0-1.42L15.71 4.71a1 1 0 0 0 0-1.42 1 1 0 0 0-1.41 0l-12 12a1 1 0 0 0 0 1.42l12 12a1 1 0 0 0 .7.29"
@@ -1,6 +1,23 @@
1
- export const ArrowRightIcon = () => {
1
+ import { type SVGProps, useId } from "react"
2
+
3
+ interface IconProps extends SVGProps<SVGSVGElement> {
4
+ alt?: string
5
+ }
6
+
7
+ export const ArrowRightIcon = ({ alt, className, ...props }: IconProps) => {
8
+ const id = useId()
9
+ const componentProps = {
10
+ "aria-labelledby": alt ? id : undefined,
11
+ className: `coop-icon ${className ?? ""}`.trim(),
12
+ "data-icon": "arrow-right",
13
+ fill: "none",
14
+ role: alt ? "img" : undefined,
15
+ viewBox: "0 0 32 32",
16
+ ...props,
17
+ }
2
18
  return (
3
- <svg className="coop-icon" fill="none" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
19
+ <svg {...componentProps}>
20
+ {alt ? <title id={id}>{alt}</title> : null}
4
21
  <path d="M28.7 15H3a1 1 0 0 0 0 2h25.7a1 1 0 0 0 0-2" fill="currentColor" />
5
22
  <path
6
23
  d="M17 3a1 1 0 0 0-.7.3 1 1 0 0 0 0 1.4l10.6 10.6a1 1 0 0 1 0 1.4L16.3 27.3a1 1 0 0 0 0 1.4 1 1 0 0 0 1.4 0l12-12a1 1 0 0 0 0-1.4l-12-12A1 1 0 0 0 17 3"
@@ -1,6 +1,23 @@
1
- export const ArrowUpIcon = () => {
1
+ import { type SVGProps, useId } from "react"
2
+
3
+ interface IconProps extends SVGProps<SVGSVGElement> {
4
+ alt?: string
5
+ }
6
+
7
+ export const ArrowUpIcon = ({ alt, className, ...props }: IconProps) => {
8
+ const id = useId()
9
+ const componentProps = {
10
+ "aria-labelledby": alt ? id : undefined,
11
+ className: `coop-icon ${className ?? ""}`.trim(),
12
+ "data-icon": "arrow-up",
13
+ fill: "none",
14
+ role: alt ? "img" : undefined,
15
+ viewBox: "0 0 32 32",
16
+ ...props,
17
+ }
2
18
  return (
3
- <svg className="coop-icon" fill="none" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
19
+ <svg {...componentProps}>
20
+ {alt ? <title id={id}>{alt}</title> : null}
4
21
  <path d="M17 3.34V29a1 1 0 0 1-2 0V3.34a1 1 0 0 1 2 0" fill="currentColor" />
5
22
  <path
6
23
  d="M29 15a1 1 0 0 1-.29.71 1 1 0 0 1-1.42 0L16 4.42 4.71 15.71a1 1 0 0 1-1.42 0 1 1 0 0 1 0-1.41l12-12a1 1 0 0 1 1.41 0l12 12a1 1 0 0 1 .3.7"
@@ -1,6 +1,23 @@
1
- export const AvatarAltIcon = () => {
1
+ import { type SVGProps, useId } from "react"
2
+
3
+ interface IconProps extends SVGProps<SVGSVGElement> {
4
+ alt?: string
5
+ }
6
+
7
+ export const AvatarAltIcon = ({ alt, className, ...props }: IconProps) => {
8
+ const id = useId()
9
+ const componentProps = {
10
+ "aria-labelledby": alt ? id : undefined,
11
+ className: `coop-icon ${className ?? ""}`.trim(),
12
+ "data-icon": "avatar-alt",
13
+ fill: "none",
14
+ role: alt ? "img" : undefined,
15
+ viewBox: "0 0 32 32",
16
+ ...props,
17
+ }
2
18
  return (
3
- <svg className="coop-icon" fill="none" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
19
+ <svg {...componentProps}>
20
+ {alt ? <title id={id}>{alt}</title> : null}
4
21
  <path
5
22
  d="M16 32a16 16 0 1 1 16-16 16 16 0 0 1-16 16m0-30a14 14 0 1 0 14 14A14 14 0 0 0 16 2"
6
23
  fill="currentColor"
@@ -1,6 +1,23 @@
1
- export const AvatarIcon = () => {
1
+ import { type SVGProps, useId } from "react"
2
+
3
+ interface IconProps extends SVGProps<SVGSVGElement> {
4
+ alt?: string
5
+ }
6
+
7
+ export const AvatarIcon = ({ alt, className, ...props }: IconProps) => {
8
+ const id = useId()
9
+ const componentProps = {
10
+ "aria-labelledby": alt ? id : undefined,
11
+ className: `coop-icon ${className ?? ""}`.trim(),
12
+ "data-icon": "avatar",
13
+ fill: "none",
14
+ role: alt ? "img" : undefined,
15
+ viewBox: "0 0 32 32",
16
+ ...props,
17
+ }
2
18
  return (
3
- <svg className="coop-icon" fill="none" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
19
+ <svg {...componentProps}>
20
+ {alt ? <title id={id}>{alt}</title> : null}
4
21
  <path
5
22
  d="M16 31a18.24 18.24 0 0 1-12.64-5.1A1.19 1.19 0 0 1 3 24.86a12.31 12.31 0 0 1 12-10h2a12.31 12.31 0 0 1 12 10 1.19 1.19 0 0 1-.34 1.06A18.24 18.24 0 0 1 16 31M5.42 24.68a15.9 15.9 0 0 0 21.16 0A10 10 0 0 0 17 17.17h-2a10 10 0 0 0-9.58 7.51"
6
23
  fill="currentColor"
@@ -1,6 +1,23 @@
1
- export const BasketIcon = () => {
1
+ import { type SVGProps, useId } from "react"
2
+
3
+ interface IconProps extends SVGProps<SVGSVGElement> {
4
+ alt?: string
5
+ }
6
+
7
+ export const BasketIcon = ({ alt, className, ...props }: IconProps) => {
8
+ const id = useId()
9
+ const componentProps = {
10
+ "aria-labelledby": alt ? id : undefined,
11
+ className: `coop-icon ${className ?? ""}`.trim(),
12
+ "data-icon": "basket",
13
+ fill: "none",
14
+ role: alt ? "img" : undefined,
15
+ viewBox: "0 0 32 32",
16
+ ...props,
17
+ }
2
18
  return (
3
- <svg className="coop-icon" fill="none" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
19
+ <svg {...componentProps}>
20
+ {alt ? <title id={id}>{alt}</title> : null}
4
21
  <path
5
22
  d="M16.07 26a1 1 0 0 0 1-1v-4.08a1 1 0 1 0-2 0V25a1 1 0 0 0 1 1M21.5 26h.17a1 1 0 0 0 1-.85l.68-4.07a1 1 0 0 0-.82-1.18 1 1 0 0 0-1.16.84l-.67 4.07a1 1 0 0 0 .8 1.19M10.43 26h.17a1 1 0 0 0 .82-1.18l-.68-4.07a1 1 0 0 0-1.15-.84 1 1 0 0 0-.82 1.18l.67 4.07a1 1 0 0 0 .99.84"
6
23
  fill="currentColor"
@@ -1,6 +1,23 @@
1
- export const CalendarIcon = () => {
1
+ import { type SVGProps, useId } from "react"
2
+
3
+ interface IconProps extends SVGProps<SVGSVGElement> {
4
+ alt?: string
5
+ }
6
+
7
+ export const CalendarIcon = ({ alt, className, ...props }: IconProps) => {
8
+ const id = useId()
9
+ const componentProps = {
10
+ "aria-labelledby": alt ? id : undefined,
11
+ className: `coop-icon ${className ?? ""}`.trim(),
12
+ "data-icon": "calendar",
13
+ fill: "none",
14
+ role: alt ? "img" : undefined,
15
+ viewBox: "0 0 32 32",
16
+ ...props,
17
+ }
2
18
  return (
3
- <svg className="coop-icon" fill="none" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
19
+ <svg {...componentProps}>
20
+ {alt ? <title id={id}>{alt}</title> : null}
4
21
  <path
5
22
  d="M31 2h-4V1a1 1 0 0 0-2 0v1H7V1a1 1 0 0 0-2 0v1H1a1 1 0 0 0-1 1v28a1 1 0 0 0 1 1h30a1 1 0 0 0 1-1V3a1 1 0 0 0-1-1m-1 28H2V10h28Zm0-22H2V4h3v1a1 1 0 0 0 2 0V4h18v1a1 1 0 0 0 2 0V4h3Z"
6
23
  fill="currentColor"
@@ -1,6 +1,23 @@
1
- export const ChevronDownIcon = () => {
1
+ import { type SVGProps, useId } from "react"
2
+
3
+ interface IconProps extends SVGProps<SVGSVGElement> {
4
+ alt?: string
5
+ }
6
+
7
+ export const ChevronDownIcon = ({ alt, className, ...props }: IconProps) => {
8
+ const id = useId()
9
+ const componentProps = {
10
+ "aria-labelledby": alt ? id : undefined,
11
+ className: `coop-icon ${className ?? ""}`.trim(),
12
+ "data-icon": "chevron-down",
13
+ fill: "none",
14
+ role: alt ? "img" : undefined,
15
+ viewBox: "0 0 32 32",
16
+ ...props,
17
+ }
2
18
  return (
3
- <svg className="coop-icon" fill="none" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
19
+ <svg {...componentProps}>
20
+ {alt ? <title id={id}>{alt}</title> : null}
4
21
  <path
5
22
  d="M31 9a1 1 0 0 0-.29-.71 1 1 0 0 0-1.42 0L16 21.59 2.71 8.3a1 1 0 0 0-1.42 0 1 1 0 0 0 0 1.41l14 14a1 1 0 0 0 1.41 0l14-14A1 1 0 0 0 31 9"
6
23
  fill="currentColor"
@@ -1,6 +1,23 @@
1
- export const ChevronLeftIcon = () => {
1
+ import { type SVGProps, useId } from "react"
2
+
3
+ interface IconProps extends SVGProps<SVGSVGElement> {
4
+ alt?: string
5
+ }
6
+
7
+ export const ChevronLeftIcon = ({ alt, className, ...props }: IconProps) => {
8
+ const id = useId()
9
+ const componentProps = {
10
+ "aria-labelledby": alt ? id : undefined,
11
+ className: `coop-icon ${className ?? ""}`.trim(),
12
+ "data-icon": "chevron-left",
13
+ fill: "none",
14
+ role: alt ? "img" : undefined,
15
+ viewBox: "0 0 32 32",
16
+ ...props,
17
+ }
2
18
  return (
3
- <svg className="coop-icon" fill="none" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
19
+ <svg {...componentProps}>
20
+ {alt ? <title id={id}>{alt}</title> : null}
4
21
  <path
5
22
  d="M22.5 30a1 1 0 0 0 .71-.29 1 1 0 0 0 0-1.42L10.91 16 23.2 3.71a1 1 0 0 0 0-1.41 1 1 0 0 0-1.41 0l-13 13a1 1 0 0 0 0 1.41l13 13a1 1 0 0 0 .71.29"
6
23
  fill="currentColor"
@@ -1,6 +1,23 @@
1
- export const ChevronRightIcon = () => {
1
+ import { type SVGProps, useId } from "react"
2
+
3
+ interface IconProps extends SVGProps<SVGSVGElement> {
4
+ alt?: string
5
+ }
6
+
7
+ export const ChevronRightIcon = ({ alt, className, ...props }: IconProps) => {
8
+ const id = useId()
9
+ const componentProps = {
10
+ "aria-labelledby": alt ? id : undefined,
11
+ className: `coop-icon ${className ?? ""}`.trim(),
12
+ "data-icon": "chevron-right",
13
+ fill: "none",
14
+ role: alt ? "img" : undefined,
15
+ viewBox: "0 0 32 32",
16
+ ...props,
17
+ }
2
18
  return (
3
- <svg className="coop-icon" fill="none" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
19
+ <svg {...componentProps}>
20
+ {alt ? <title id={id}>{alt}</title> : null}
4
21
  <path
5
22
  d="M9.49 2a1 1 0 0 0-.71 1.71L21.07 16 8.79 28.3a1 1 0 1 0 1.41 1.41l13-13a1 1 0 0 0 0-1.42l-13-13A1 1 0 0 0 9.49 2"
6
23
  fill="currentColor"
@@ -1,6 +1,23 @@
1
- export const ChevronUpIcon = () => {
1
+ import { type SVGProps, useId } from "react"
2
+
3
+ interface IconProps extends SVGProps<SVGSVGElement> {
4
+ alt?: string
5
+ }
6
+
7
+ export const ChevronUpIcon = ({ alt, className, ...props }: IconProps) => {
8
+ const id = useId()
9
+ const componentProps = {
10
+ "aria-labelledby": alt ? id : undefined,
11
+ className: `coop-icon ${className ?? ""}`.trim(),
12
+ "data-icon": "chevron-up",
13
+ fill: "none",
14
+ role: alt ? "img" : undefined,
15
+ viewBox: "0 0 32 32",
16
+ ...props,
17
+ }
2
18
  return (
3
- <svg className="coop-icon" fill="none" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
19
+ <svg {...componentProps}>
20
+ {alt ? <title id={id}>{alt}</title> : null}
4
21
  <path
5
22
  d="M1 23a1 1 0 0 0 .29.71 1 1 0 0 0 1.42 0L16 10.41 29.29 23.7a1 1 0 0 0 1.42 0 1 1 0 0 0 0-1.41l-14-14a1 1 0 0 0-1.41 0l-14 14A1 1 0 0 0 1 23"
6
23
  fill="currentColor"
@@ -1,6 +1,23 @@
1
- export const ClockIcon = () => {
1
+ import { type SVGProps, useId } from "react"
2
+
3
+ interface IconProps extends SVGProps<SVGSVGElement> {
4
+ alt?: string
5
+ }
6
+
7
+ export const ClockIcon = ({ alt, className, ...props }: IconProps) => {
8
+ const id = useId()
9
+ const componentProps = {
10
+ "aria-labelledby": alt ? id : undefined,
11
+ className: `coop-icon ${className ?? ""}`.trim(),
12
+ "data-icon": "clock",
13
+ fill: "none",
14
+ role: alt ? "img" : undefined,
15
+ viewBox: "0 0 32 32",
16
+ ...props,
17
+ }
2
18
  return (
3
- <svg className="coop-icon" fill="none" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
19
+ <svg {...componentProps}>
20
+ {alt ? <title id={id}>{alt}</title> : null}
4
21
  <path
5
22
  d="M23 21.05a.93.93 0 0 1-.5-.14L15 16.58v-9.5a1 1 0 0 1 1-1 1 1 0 0 1 1 1v8.35l6.47 3.77a1 1 0 0 1 .36 1.36 1 1 0 0 1-.83.49"
6
23
  fill="currentColor"
@@ -1,6 +1,23 @@
1
- export const CloseAltIcon = () => {
1
+ import { type SVGProps, useId } from "react"
2
+
3
+ interface IconProps extends SVGProps<SVGSVGElement> {
4
+ alt?: string
5
+ }
6
+
7
+ export const CloseAltIcon = ({ alt, className, ...props }: IconProps) => {
8
+ const id = useId()
9
+ const componentProps = {
10
+ "aria-labelledby": alt ? id : undefined,
11
+ className: `coop-icon ${className ?? ""}`.trim(),
12
+ "data-icon": "close-alt",
13
+ fill: "none",
14
+ role: alt ? "img" : undefined,
15
+ viewBox: "0 0 32 32",
16
+ ...props,
17
+ }
2
18
  return (
3
- <svg className="coop-icon" fill="none" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
19
+ <svg {...componentProps}>
20
+ {alt ? <title id={id}>{alt}</title> : null}
4
21
  <path
5
22
  d="M21.55 22.51a1 1 0 0 1-.7-.3l-11-11a1 1 0 0 1 1.41-1.41l11 11a1 1 0 0 1 0 1.41 1 1 0 0 1-.71.3"
6
23
  fill="currentColor"
@@ -1,6 +1,23 @@
1
- export const CloseIcon = () => {
1
+ import { type SVGProps, useId } from "react"
2
+
3
+ interface IconProps extends SVGProps<SVGSVGElement> {
4
+ alt?: string
5
+ }
6
+
7
+ export const CloseIcon = ({ alt, className, ...props }: IconProps) => {
8
+ const id = useId()
9
+ const componentProps = {
10
+ "aria-labelledby": alt ? id : undefined,
11
+ className: `coop-icon ${className ?? ""}`.trim(),
12
+ "data-icon": "close",
13
+ fill: "none",
14
+ role: alt ? "img" : undefined,
15
+ viewBox: "0 0 32 32",
16
+ ...props,
17
+ }
2
18
  return (
3
- <svg className="coop-icon" fill="none" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
19
+ <svg {...componentProps}>
20
+ {alt ? <title id={id}>{alt}</title> : null}
4
21
  <path
5
22
  d="M27 28a1 1 0 0 1-.71-.29l-22-22a1 1 0 0 1 1.42-1.42l22 22a1 1 0 0 1 0 1.42A1 1 0 0 1 27 28"
6
23
  fill="currentColor"
@@ -1,8 +1,26 @@
1
- export const CoopCardIcon = () => {
1
+ import { type SVGProps, useId } from "react"
2
+
3
+ interface IconProps extends SVGProps<SVGSVGElement> {
4
+ alt?: string
5
+ }
6
+
7
+ export const CoopCardIcon = ({ alt, className, ...props }: IconProps) => {
8
+ const id = useId()
9
+ const componentProps = {
10
+ "aria-labelledby": alt ? id : undefined,
11
+ className: `coop-icon ${className ?? ""}`.trim(),
12
+ "data-icon": "coop-card",
13
+ fill: "none",
14
+ role: alt ? "img" : undefined,
15
+ viewBox: "0 0 32 32",
16
+ ...props,
17
+ }
2
18
  return (
3
- <svg className="coop-icon" fill="none" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
19
+ <svg {...componentProps}>
20
+ {alt ? <title id={id}>{alt}</title> : null}
4
21
  <path
5
22
  d="M6.67 0a1.34 1.34 0 0 0-1.34 1.33v29.34A1.34 1.34 0 0 0 6.67 32h18.66a1.34 1.34 0 0 0 1.34-1.33V1.33A1.34 1.34 0 0 0 25.33 0ZM23 4.77a6.4 6.4 0 0 1 .21 1.62A6.8 6.8 0 0 1 22.94 8a2.1 2.1 0 0 1-.48.85 2.3 2.3 0 0 1-.82.55 6.3 6.3 0 0 1-1.93.31 5.3 5.3 0 0 1-1.94-.31 2.2 2.2 0 0 1-.8-.55 2.3 2.3 0 0 1-.49-.85 5.94 5.94 0 0 1 0-3.24 2.2 2.2 0 0 1 .52-.84 2.1 2.1 0 0 1 .82-.54 5.84 5.84 0 0 1 3.87 0 2.24 2.24 0 0 1 .81.55 2.3 2.3 0 0 1 .5.84m-2 2.4a2.5 2.5 0 0 0 .12-.78 2.4 2.4 0 0 0-.13-.8 1 1 0 0 0-.28-.45 1.15 1.15 0 0 0-.47-.23 2.8 2.8 0 0 0-1 0 1 1 0 0 0-.47.24.9.9 0 0 0-.29.44 2.66 2.66 0 0 0 0 1.58 1 1 0 0 0 .28.45 1.1 1.1 0 0 0 .48.23 2.8 2.8 0 0 0 1 0 1.1 1.1 0 0 0 .47-.24 1 1 0 0 0 .23-.44Zm-5.5 4.75a5.9 5.9 0 0 1 0 3.23 2.07 2.07 0 0 1-1.3 1.4 5.84 5.84 0 0 1-3.87 0 2.16 2.16 0 0 1-.81-.55 2.1 2.1 0 0 1-.52-.85 5.9 5.9 0 0 1 0-3.23 2.1 2.1 0 0 1 .48-.85 2.16 2.16 0 0 1 .82-.55 5.84 5.84 0 0 1 3.87 0 2.19 2.19 0 0 1 1.3 1.4Zm-2 2.41a2.5 2.5 0 0 0 .12-.77 2.7 2.7 0 0 0-.12-.8 1 1 0 0 0-.28-.45 1 1 0 0 0-.48-.23 2.8 2.8 0 0 0-1 0 1 1 0 0 0-.47.24 1 1 0 0 0-.28.44 2.63 2.63 0 0 0 0 1.57.9.9 0 0 0 .28.45 1 1 0 0 0 .47.23 2.8 2.8 0 0 0 1 0 1 1 0 0 0 .47-.23 1 1 0 0 0 .29-.45m2.22-8h-2.1a3.3 3.3 0 0 0-.1-.78 1 1 0 0 0-.29-.45 1.1 1.1 0 0 0-.47-.23 2.8 2.8 0 0 0-1 0 1.05 1.05 0 0 0-.47.24 1.1 1.1 0 0 0-.29.44 2.66 2.66 0 0 0 0 1.58 1 1 0 0 0 .28.45 1.1 1.1 0 0 0 .48.23 2.8 2.8 0 0 0 1 0 1.1 1.1 0 0 0 .47-.24 1.1 1.1 0 0 0 .29-.44 2.3 2.3 0 0 0 .07-.36l2 .92a3 3 0 0 0-.09.31 2.1 2.1 0 0 1-.49.85 2.16 2.16 0 0 1-.81.55 6.4 6.4 0 0 1-1.94.31 5.7 5.7 0 0 1-1.93-.31 2.1 2.1 0 0 1-.8-.55A2.16 2.16 0 0 1 9 8a5.94 5.94 0 0 1 0-3.23 2.06 2.06 0 0 1 .48-.85 2 2 0 0 1 .82-.54 5.84 5.84 0 0 1 3.87 0 2.2 2.2 0 0 1 .8.55 2 2 0 0 1 .49.84 6.7 6.7 0 0 1 .26 1.6Zm.5 7.18a6.2 6.2 0 0 1 .21-1.61 2.06 2.06 0 0 1 .51-.85 2 2 0 0 1 .85-.5 5.84 5.84 0 0 1 3.87 0 2.16 2.16 0 0 1 .81.55 2.1 2.1 0 0 1 .53.9 5.9 5.9 0 0 1 0 3.23 2.1 2.1 0 0 1-.48.85 2.16 2.16 0 0 1-.82.55 6.7 6.7 0 0 1-1.93.32L19 15h.2a2.8 2.8 0 0 0 1 0 1 1 0 0 0 .46-.24 1.05 1.05 0 0 0 .27-.44 2.66 2.66 0 0 0 0-1.58 1 1 0 0 0-.28-.44 1 1 0 0 0-.47-.23 2.4 2.4 0 0 0-1 0 .9.9 0 0 0-.47.23.9.9 0 0 0-.29.44 2.3 2.3 0 0 0-.11.78v4.73h-2.1Z"
23
+ fill="currentColor"
6
24
  fillRule="evenodd"
7
25
  />
8
26
  </svg>
@@ -1,8 +1,26 @@
1
- export const CoopIcon = () => {
1
+ import { type SVGProps, useId } from "react"
2
+
3
+ interface IconProps extends SVGProps<SVGSVGElement> {
4
+ alt?: string
5
+ }
6
+
7
+ export const CoopIcon = ({ alt, className, ...props }: IconProps) => {
8
+ const id = useId()
9
+ const componentProps = {
10
+ "aria-labelledby": alt ? id : undefined,
11
+ className: `coop-icon ${className ?? ""}`.trim(),
12
+ "data-icon": "coop",
13
+ fill: "none",
14
+ role: alt ? "img" : undefined,
15
+ viewBox: "0 0 32 32",
16
+ ...props,
17
+ }
2
18
  return (
3
- <svg className="coop-icon" fill="none" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
19
+ <svg {...componentProps}>
20
+ {alt ? <title id={id}>{alt}</title> : null}
4
21
  <path
5
22
  d="M28.77 5.17a11.33 11.33 0 0 1 0 5.93 4 4 0 0 1-.88 1.57 4.1 4.1 0 0 1-1.5 1 12 12 0 0 1-3.56.58 9.8 9.8 0 0 1-3.56-.58 4.2 4.2 0 0 1-1.47-1 4.1 4.1 0 0 1-.9-1.55 10.9 10.9 0 0 1 0-5.94 3.8 3.8 0 0 1 .89-1.56 3.8 3.8 0 0 1 1.49-1 10.73 10.73 0 0 1 7.12 0 3.9 3.9 0 0 1 1.48 1 3.9 3.9 0 0 1 .89 1.55m-3.67 4.4a4.9 4.9 0 0 0 .21-1.43 4.9 4.9 0 0 0-.23-1.47 1.8 1.8 0 0 0-.53-.82 1.77 1.77 0 0 0-.87-.42 5.1 5.1 0 0 0-1.83 0 2 2 0 0 0-.87.43 1.9 1.9 0 0 0-.53.81 4.94 4.94 0 0 0 0 2.9 1.86 1.86 0 0 0 .52.82 1.8 1.8 0 0 0 .88.43 5.1 5.1 0 0 0 1.83 0 1.88 1.88 0 0 0 1.4-1.25Zm-10 8.73a10.9 10.9 0 0 1 0 5.94 3.75 3.75 0 0 1-.88 1.58 3.8 3.8 0 0 1-1.5 1 10.7 10.7 0 0 1-7.11 0 4 4 0 0 1-1.49-1 4.1 4.1 0 0 1-.9-1.56 10.9 10.9 0 0 1 0-5.94 3.9 3.9 0 0 1 .89-1.57 3.8 3.8 0 0 1 1.5-1 10.7 10.7 0 0 1 7.11 0 4 4 0 0 1 1.48 1 3.9 3.9 0 0 1 .88 1.55Zm-3.66 4.44a5 5 0 0 0 .22-1.43 5.2 5.2 0 0 0-.22-1.47 1.9 1.9 0 0 0-.54-.84 1.8 1.8 0 0 0-.88-.43 5.6 5.6 0 0 0-1.83 0 2 2 0 0 0-.87.44 1.9 1.9 0 0 0-.52.81 4.8 4.8 0 0 0 0 2.9 1.7 1.7 0 0 0 .52.82 1.65 1.65 0 0 0 .87.42A4.7 4.7 0 0 0 10 24a1.83 1.83 0 0 0 .87-.43 2 2 0 0 0 .55-.83Zm4.05-14.63h-3.85a6.3 6.3 0 0 0-.19-1.43 1.8 1.8 0 0 0-.52-.82 1.8 1.8 0 0 0-.88-.42 5.1 5.1 0 0 0-1.83 0 1.93 1.93 0 0 0-.87.43 1.9 1.9 0 0 0-.53.81 4.94 4.94 0 0 0 0 2.9 1.86 1.86 0 0 0 .52.82 1.8 1.8 0 0 0 .88.43 5.1 5.1 0 0 0 1.83 0 2 2 0 0 0 .87-.44 2 2 0 0 0 .53-.81 4.5 4.5 0 0 0 .14-.66l3.63 1.69c-.05.16-.1.33-.14.5a4 4 0 0 1-.88 1.57 4.1 4.1 0 0 1-1.5 1 12 12 0 0 1-3.56.58 10.7 10.7 0 0 1-3.55-.58 4.2 4.2 0 0 1-1.48-1 4 4 0 0 1-.89-1.55 10.9 10.9 0 0 1 0-5.94A3.9 3.9 0 0 1 4.1 3.6a4 4 0 0 1 1.5-1 10.7 10.7 0 0 1 7.11 0 3.9 3.9 0 0 1 1.49 1 4 4 0 0 1 .9 1.55 11.3 11.3 0 0 1 .39 2.96m.93 13.19a11 11 0 0 1 .39-3 3.6 3.6 0 0 1 .93-1.55 3.7 3.7 0 0 1 1.56-.92 10.7 10.7 0 0 1 7.11 0 3.9 3.9 0 0 1 1.49 1 4 4 0 0 1 .9 1.55 10.93 10.93 0 0 1 0 5.95 3.8 3.8 0 0 1-.89 1.56 3.74 3.74 0 0 1-1.5 1 11.5 11.5 0 0 1-3.55.59l-1.32-3.59h.15l.21.06a5.2 5.2 0 0 0 1.84 0 1.84 1.84 0 0 0 .84-.44 1.9 1.9 0 0 0 .52-.8 4.94 4.94 0 0 0 0-2.9 1.83 1.83 0 0 0-1.4-1.25 5.1 5.1 0 0 0-1.83 0A2 2 0 0 0 21 19a1.9 1.9 0 0 0-.53.81 4.6 4.6 0 0 0-.2 1.42V30h-3.85Z"
23
+ fill="currentColor"
6
24
  fillRule="evenodd"
7
25
  />
8
26
  </svg>
@@ -1,6 +1,23 @@
1
- export const CoopLocationIcon = () => {
1
+ import { type SVGProps, useId } from "react"
2
+
3
+ interface IconProps extends SVGProps<SVGSVGElement> {
4
+ alt?: string
5
+ }
6
+
7
+ export const CoopLocationIcon = ({ alt, className, ...props }: IconProps) => {
8
+ const id = useId()
9
+ const componentProps = {
10
+ "aria-labelledby": alt ? id : undefined,
11
+ className: `coop-icon ${className ?? ""}`.trim(),
12
+ "data-icon": "coop-location",
13
+ fill: "none",
14
+ role: alt ? "img" : undefined,
15
+ viewBox: "0 0 32 32",
16
+ ...props,
17
+ }
2
18
  return (
3
- <svg className="coop-icon" fill="none" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
19
+ <svg {...componentProps}>
20
+ {alt ? <title id={id}>{alt}</title> : null}
4
21
  <path
5
22
  d="M20.48 6.51a2.4 2.4 0 0 0-.54 0 2.3 2.3 0 0 0-.53 0 1 1 0 0 0-.8.71 2.75 2.75 0 0 0 0 1.67 1.07 1.07 0 0 0 .8.71 3 3 0 0 0 .53.05 3.3 3.3 0 0 0 .54-.05 1.07 1.07 0 0 0 .8-.71 3 3 0 0 0 0-1.67 1 1 0 0 0-.8-.71"
6
23
  fill="currentColor"
@@ -1,6 +1,23 @@
1
- export const DownloadIcon = () => {
1
+ import { type SVGProps, useId } from "react"
2
+
3
+ interface IconProps extends SVGProps<SVGSVGElement> {
4
+ alt?: string
5
+ }
6
+
7
+ export const DownloadIcon = ({ alt, className, ...props }: IconProps) => {
8
+ const id = useId()
9
+ const componentProps = {
10
+ "aria-labelledby": alt ? id : undefined,
11
+ className: `coop-icon ${className ?? ""}`.trim(),
12
+ "data-icon": "download",
13
+ fill: "none",
14
+ role: alt ? "img" : undefined,
15
+ viewBox: "0 0 32 32",
16
+ ...props,
17
+ }
2
18
  return (
3
- <svg className="coop-icon" fill="none" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
19
+ <svg {...componentProps}>
20
+ {alt ? <title id={id}>{alt}</title> : null}
4
21
  <path d="M16 22.56a1 1 0 0 1-1-1V1a1 1 0 0 1 2 0v20.56a1 1 0 0 1-1 1" fill="currentColor" />
5
22
  <path
6
23
  d="M16 23a1 1 0 0 1-.7-.3l-9.76-9.77A1 1 0 0 1 7 11.52l9 9 9-9a1 1 0 0 1 1.41 0 1 1 0 0 1 0 1.42l-9.73 9.72A1 1 0 0 1 16 23"
@@ -1,6 +1,23 @@
1
- export const HomeIcon = () => {
1
+ import { type SVGProps, useId } from "react"
2
+
3
+ interface IconProps extends SVGProps<SVGSVGElement> {
4
+ alt?: string
5
+ }
6
+
7
+ export const HomeIcon = ({ alt, className, ...props }: IconProps) => {
8
+ const id = useId()
9
+ const componentProps = {
10
+ "aria-labelledby": alt ? id : undefined,
11
+ className: `coop-icon ${className ?? ""}`.trim(),
12
+ "data-icon": "home",
13
+ fill: "none",
14
+ role: alt ? "img" : undefined,
15
+ viewBox: "0 0 32 32",
16
+ ...props,
17
+ }
2
18
  return (
3
- <svg className="coop-icon" fill="none" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
19
+ <svg {...componentProps}>
20
+ {alt ? <title id={id}>{alt}</title> : null}
4
21
  <path
5
22
  d="M29 31H3a1 1 0 0 1-1-1V15a1 1 0 0 1 2 0v14h24V15a1 1 0 0 1 2 0v15a1 1 0 0 1-1 1"
6
23
  fill="currentColor"
@@ -1,6 +1,23 @@
1
- export const InformationIcon = () => {
1
+ import { type SVGProps, useId } from "react"
2
+
3
+ interface IconProps extends SVGProps<SVGSVGElement> {
4
+ alt?: string
5
+ }
6
+
7
+ export const InformationIcon = ({ alt, className, ...props }: IconProps) => {
8
+ const id = useId()
9
+ const componentProps = {
10
+ "aria-labelledby": alt ? id : undefined,
11
+ className: `coop-icon ${className ?? ""}`.trim(),
12
+ "data-icon": "information",
13
+ fill: "none",
14
+ role: alt ? "img" : undefined,
15
+ viewBox: "0 0 32 32",
16
+ ...props,
17
+ }
2
18
  return (
3
- <svg className="coop-icon" fill="none" viewBox="0 0 32 32" xmlns="http://www.w3.org/2000/svg">
19
+ <svg {...componentProps}>
20
+ {alt ? <title id={id}>{alt}</title> : null}
4
21
  <path
5
22
  d="M14.46 10.19a1.4 1.4 0 0 1 .43-1A1.5 1.5 0 0 1 16 8.75a1.6 1.6 0 0 1 1.11.41 1.35 1.35 0 0 1 .45 1 1.32 1.32 0 0 1-.45 1 1.56 1.56 0 0 1-1.11.41 1.47 1.47 0 0 1-1.09-.43 1.35 1.35 0 0 1-.45-.95m.34 3.26h2.4v9.6h-2.4Z"
6
23
  fill="currentColor"