@coopdigital/react 0.53.0 → 0.55.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 (338) hide show
  1. package/README.md +3 -3
  2. package/dist/components/Button/Button.d.ts +1 -1
  3. package/dist/components/Button/Button.js +4 -3
  4. package/dist/components/Card/Card.js +2 -1
  5. package/dist/components/DatePicker/DatePicker.d.ts +2 -1
  6. package/dist/components/DatePicker/DatePicker.js +6 -5
  7. package/dist/components/Expandable/Expandable.js +5 -5
  8. package/dist/components/Pill/Pill.js +1 -1
  9. package/dist/components/Searchbox/Searchbox.d.ts +21 -5
  10. package/dist/components/Searchbox/Searchbox.js +41 -27
  11. package/dist/components/Squircle/Squircle.js +1 -1
  12. package/dist/components/TextInput/TextInput.d.ts +5 -1
  13. package/dist/components/TextInput/TextInput.js +8 -2
  14. package/dist/components/icons/AccountCircleFilledIcon.d.ts +6 -0
  15. package/dist/components/icons/AccountCircleFilledIcon.js +20 -0
  16. package/dist/components/icons/AccountCircleIcon.d.ts +6 -0
  17. package/dist/components/icons/AccountCircleIcon.js +20 -0
  18. package/dist/components/icons/AccountFilledIcon.d.ts +6 -0
  19. package/dist/components/icons/AccountFilledIcon.js +20 -0
  20. package/dist/components/icons/AccountIcon.d.ts +6 -0
  21. package/dist/components/icons/AccountIcon.js +20 -0
  22. package/dist/components/icons/AddIcon.js +2 -2
  23. package/dist/components/icons/AppsFilledIcon.d.ts +6 -0
  24. package/dist/components/icons/AppsFilledIcon.js +20 -0
  25. package/dist/components/icons/{CoopIcon.d.ts → AppsIcon.d.ts} +1 -1
  26. package/dist/components/icons/AppsIcon.js +20 -0
  27. package/dist/components/icons/ArrowDownIcon.js +2 -2
  28. package/dist/components/icons/ArrowLeftIcon.js +2 -2
  29. package/dist/components/icons/ArrowRightIcon.js +2 -2
  30. package/dist/components/icons/ArrowUpIcon.js +2 -2
  31. package/dist/components/icons/BackspaceFilledIcon.d.ts +6 -0
  32. package/dist/components/icons/BackspaceFilledIcon.js +20 -0
  33. package/dist/components/icons/{AvatarAltIcon.d.ts → BackspaceIcon.d.ts} +1 -1
  34. package/dist/components/icons/BackspaceIcon.js +20 -0
  35. package/dist/components/icons/{CoopLocationIcon.d.ts → BasketFilledIcon.d.ts} +1 -1
  36. package/dist/components/icons/BasketFilledIcon.js +20 -0
  37. package/dist/components/icons/BasketIcon.js +2 -2
  38. package/dist/components/icons/BellFilledIcon.d.ts +6 -0
  39. package/dist/components/icons/BellFilledIcon.js +20 -0
  40. package/dist/components/icons/BellIcon.d.ts +6 -0
  41. package/dist/components/icons/BellIcon.js +20 -0
  42. package/dist/components/icons/{CloseIcon.d.ts → BroomIcon.d.ts} +1 -1
  43. package/dist/components/icons/BroomIcon.js +20 -0
  44. package/dist/components/icons/CalendarFilledIcon.d.ts +6 -0
  45. package/dist/components/icons/CalendarFilledIcon.js +20 -0
  46. package/dist/components/icons/CalendarIcon.js +2 -2
  47. package/dist/components/icons/CashFilledIcon.d.ts +6 -0
  48. package/dist/components/icons/CashFilledIcon.js +20 -0
  49. package/dist/components/icons/CashIcon.d.ts +6 -0
  50. package/dist/components/icons/CashIcon.js +20 -0
  51. package/dist/components/icons/ChevronDownIcon.js +2 -2
  52. package/dist/components/icons/ChevronLeftIcon.js +2 -2
  53. package/dist/components/icons/ChevronRightIcon.js +2 -2
  54. package/dist/components/icons/ChevronUpIcon.js +2 -2
  55. package/dist/components/icons/CircleBurgerFilledIcon.d.ts +6 -0
  56. package/dist/components/icons/CircleBurgerFilledIcon.js +20 -0
  57. package/dist/components/icons/CircleBurgerIcon.d.ts +6 -0
  58. package/dist/components/icons/CircleBurgerIcon.js +20 -0
  59. package/dist/components/icons/ClipboardFilledIcon.d.ts +6 -0
  60. package/dist/components/icons/ClipboardFilledIcon.js +20 -0
  61. package/dist/components/icons/ClipboardIcon.d.ts +6 -0
  62. package/dist/components/icons/ClipboardIcon.js +20 -0
  63. package/dist/components/icons/{InformationIcon.d.ts → ClockFilledIcon.d.ts} +1 -1
  64. package/dist/components/icons/ClockFilledIcon.js +20 -0
  65. package/dist/components/icons/ClockIcon.js +2 -2
  66. package/dist/components/icons/CloseAltFilledIcon.d.ts +6 -0
  67. package/dist/components/icons/CloseAltFilledIcon.js +20 -0
  68. package/dist/components/icons/CloseAltIcon.js +2 -2
  69. package/dist/components/icons/{VanIcon.d.ts → CogIcon.d.ts} +1 -1
  70. package/dist/components/icons/CogIcon.js +20 -0
  71. package/dist/components/icons/CommunityFilledIcon.d.ts +6 -0
  72. package/dist/components/icons/CommunityFilledIcon.js +20 -0
  73. package/dist/components/icons/CommunityIcon.d.ts +6 -0
  74. package/dist/components/icons/CommunityIcon.js +20 -0
  75. package/dist/components/icons/{QuestionIcon.d.ts → ComputerIcon.d.ts} +1 -1
  76. package/dist/components/icons/ComputerIcon.js +20 -0
  77. package/dist/components/icons/ContactFilledIcon.d.ts +6 -0
  78. package/dist/components/icons/ContactFilledIcon.js +20 -0
  79. package/dist/components/icons/ContactIcon.d.ts +6 -0
  80. package/dist/components/icons/ContactIcon.js +20 -0
  81. package/dist/components/icons/ContactlessFilledIcon.d.ts +6 -0
  82. package/dist/components/icons/ContactlessFilledIcon.js +20 -0
  83. package/dist/components/icons/ContactlessIcon.d.ts +6 -0
  84. package/dist/components/icons/ContactlessIcon.js +20 -0
  85. package/dist/components/icons/{SettingsIcon.d.ts → CoopLiveIcon.d.ts} +1 -1
  86. package/dist/components/icons/CoopLiveIcon.js +20 -0
  87. package/dist/components/icons/CoopLocationFilledIcon.d.ts +6 -0
  88. package/dist/components/icons/{CoopLocationIcon.js → CoopLocationFilledIcon.js} +5 -5
  89. package/dist/components/icons/{CoopCardIcon.d.ts → CoopLogoIcon.d.ts} +1 -1
  90. package/dist/components/icons/CoopLogoIcon.js +20 -0
  91. package/dist/components/icons/CoopMembershipCardFilledIcon.d.ts +6 -0
  92. package/dist/components/icons/CoopMembershipCardFilledIcon.js +20 -0
  93. package/dist/components/icons/CreditCardFilledIcon.d.ts +6 -0
  94. package/dist/components/icons/CreditCardFilledIcon.js +20 -0
  95. package/dist/components/icons/CreditCardIcon.d.ts +6 -0
  96. package/dist/components/icons/CreditCardIcon.js +20 -0
  97. package/dist/components/icons/CrossIcon.d.ts +6 -0
  98. package/dist/components/icons/CrossIcon.js +20 -0
  99. package/dist/components/icons/DocumentIcon.d.ts +6 -0
  100. package/dist/components/icons/DocumentIcon.js +20 -0
  101. package/dist/components/icons/DownloadIcon.js +2 -2
  102. package/dist/components/icons/EnterStoreIcon.d.ts +6 -0
  103. package/dist/components/icons/EnterStoreIcon.js +20 -0
  104. package/dist/components/icons/ExitStoreIcon.d.ts +6 -0
  105. package/dist/components/icons/ExitStoreIcon.js +20 -0
  106. package/dist/components/icons/EyeFilledIcon.d.ts +6 -0
  107. package/dist/components/icons/EyeFilledIcon.js +20 -0
  108. package/dist/components/icons/EyeIcon.d.ts +6 -0
  109. package/dist/components/icons/EyeIcon.js +20 -0
  110. package/dist/components/icons/EyeStrikeFilledIcon.d.ts +6 -0
  111. package/dist/components/icons/EyeStrikeFilledIcon.js +20 -0
  112. package/dist/components/icons/EyeStrikeIcon.d.ts +6 -0
  113. package/dist/components/icons/EyeStrikeIcon.js +20 -0
  114. package/dist/components/icons/FeedbackFilledIcon.d.ts +6 -0
  115. package/dist/components/icons/FeedbackFilledIcon.js +20 -0
  116. package/dist/components/icons/FeedbackIcon.d.ts +6 -0
  117. package/dist/components/icons/FeedbackIcon.js +20 -0
  118. package/dist/components/icons/{AvatarIcon.d.ts → FilterIcon.d.ts} +1 -1
  119. package/dist/components/icons/FilterIcon.js +20 -0
  120. package/dist/components/icons/GiftCardFilledIcon.d.ts +6 -0
  121. package/dist/components/icons/GiftCardFilledIcon.js +20 -0
  122. package/dist/components/icons/GiftCardIcon.d.ts +6 -0
  123. package/dist/components/icons/GiftCardIcon.js +20 -0
  124. package/dist/components/icons/GiftFilledIcon.d.ts +6 -0
  125. package/dist/components/icons/GiftFilledIcon.js +20 -0
  126. package/dist/components/icons/GiftIcon.d.ts +6 -0
  127. package/dist/components/icons/GiftIcon.js +20 -0
  128. package/dist/components/icons/HelpFilledIcon.d.ts +6 -0
  129. package/dist/components/icons/HelpFilledIcon.js +20 -0
  130. package/dist/components/icons/HelpIcon.d.ts +6 -0
  131. package/dist/components/icons/HelpIcon.js +20 -0
  132. package/dist/components/icons/HomeFilledIcon.d.ts +6 -0
  133. package/dist/components/icons/HomeFilledIcon.js +20 -0
  134. package/dist/components/icons/HomeIcon.js +2 -2
  135. package/dist/components/icons/HowDoIAssistantIcon.d.ts +6 -0
  136. package/dist/components/icons/HowDoIAssistantIcon.js +20 -0
  137. package/dist/components/icons/InfoIcon.d.ts +6 -0
  138. package/dist/components/icons/InfoIcon.js +20 -0
  139. package/dist/components/icons/KebabIcon.d.ts +6 -0
  140. package/dist/components/icons/KebabIcon.js +20 -0
  141. package/dist/components/icons/LoadingIcon.js +3 -3
  142. package/dist/components/icons/LocationFilledIcon.d.ts +6 -0
  143. package/dist/components/icons/LocationFilledIcon.js +20 -0
  144. package/dist/components/icons/LocationIcon.js +2 -2
  145. package/dist/components/icons/LogoutIcon.d.ts +6 -0
  146. package/dist/components/icons/LogoutIcon.js +20 -0
  147. package/dist/components/icons/MailIcon.js +2 -2
  148. package/dist/components/icons/MenuIcon.js +2 -2
  149. package/dist/components/icons/MessageIcon.js +2 -2
  150. package/dist/components/icons/MinusIcon.js +2 -2
  151. package/dist/components/icons/NotesFilledIcon.d.ts +6 -0
  152. package/dist/components/icons/NotesFilledIcon.js +20 -0
  153. package/dist/components/icons/NotesIcon.d.ts +6 -0
  154. package/dist/components/icons/NotesIcon.js +20 -0
  155. package/dist/components/icons/OpenNewIcon.js +2 -2
  156. package/dist/components/icons/OwnBagIcon.d.ts +6 -0
  157. package/dist/components/icons/OwnBagIcon.js +20 -0
  158. package/dist/components/icons/PadlockIcon.d.ts +6 -0
  159. package/dist/components/icons/PadlockIcon.js +20 -0
  160. package/dist/components/icons/PencilIcon.js +2 -2
  161. package/dist/components/icons/PhoneIcon.js +2 -2
  162. package/dist/components/icons/PowerIcon.d.ts +6 -0
  163. package/dist/components/icons/PowerIcon.js +20 -0
  164. package/dist/components/icons/SaveFilledIcon.d.ts +6 -0
  165. package/dist/components/icons/SaveFilledIcon.js +20 -0
  166. package/dist/components/icons/SaveIcon.d.ts +6 -0
  167. package/dist/components/icons/SaveIcon.js +20 -0
  168. package/dist/components/icons/ScooterIcon.js +3 -3
  169. package/dist/components/icons/SearchFilledIcon.d.ts +6 -0
  170. package/dist/components/icons/SearchFilledIcon.js +20 -0
  171. package/dist/components/icons/SearchIcon.js +2 -2
  172. package/dist/components/icons/SendIcon.d.ts +6 -0
  173. package/dist/components/icons/SendIcon.js +20 -0
  174. package/dist/components/icons/SpannerIcon.d.ts +6 -0
  175. package/dist/components/icons/SpannerIcon.js +20 -0
  176. package/dist/components/icons/StarFilledIcon.d.ts +6 -0
  177. package/dist/components/icons/StarFilledIcon.js +20 -0
  178. package/dist/components/icons/StarIcon.d.ts +6 -0
  179. package/dist/components/icons/StarIcon.js +20 -0
  180. package/dist/components/icons/TickAltFilledIcon.d.ts +6 -0
  181. package/dist/components/icons/TickAltFilledIcon.js +20 -0
  182. package/dist/components/icons/TickAltIcon.js +2 -2
  183. package/dist/components/icons/TickIcon.js +2 -2
  184. package/dist/components/icons/TruckIcon.d.ts +6 -0
  185. package/dist/components/icons/TruckIcon.js +20 -0
  186. package/dist/components/icons/UserWipeIcon.d.ts +6 -0
  187. package/dist/components/icons/UserWipeIcon.js +20 -0
  188. package/dist/components/icons/VoucherFilledIcon.d.ts +6 -0
  189. package/dist/components/icons/VoucherFilledIcon.js +20 -0
  190. package/dist/components/icons/VoucherIcon.d.ts +6 -0
  191. package/dist/components/icons/VoucherIcon.js +20 -0
  192. package/dist/components/icons/WarningFilledIcon.d.ts +6 -0
  193. package/dist/components/icons/WarningFilledIcon.js +20 -0
  194. package/dist/components/icons/WarningIcon.js +2 -2
  195. package/dist/components/icons/WifiIcon.d.ts +6 -0
  196. package/dist/components/icons/WifiIcon.js +20 -0
  197. package/dist/components/icons/WriteIcon.js +2 -2
  198. package/dist/components/icons/index.d.ts +77 -10
  199. package/dist/components/icons/index.js +77 -10
  200. package/dist/types/colors.d.ts +1 -2
  201. package/dist/utils/index.d.ts +1 -0
  202. package/dist/utils/index.js +4 -1
  203. package/package.json +11 -11
  204. package/src/components/Button/Button.tsx +9 -13
  205. package/src/components/Card/Card.tsx +2 -1
  206. package/src/components/DatePicker/DatePicker.tsx +14 -13
  207. package/src/components/Expandable/Expandable.tsx +5 -10
  208. package/src/components/Pill/Pill.tsx +1 -1
  209. package/src/components/Searchbox/Searchbox.tsx +66 -56
  210. package/src/components/Squircle/Squircle.tsx +1 -1
  211. package/src/components/TextInput/TextInput.tsx +18 -2
  212. package/src/components/icons/AccountCircleFilledIcon.tsx +28 -0
  213. package/src/components/icons/AccountCircleIcon.tsx +28 -0
  214. package/src/components/icons/AccountFilledIcon.tsx +28 -0
  215. package/src/components/icons/AccountIcon.tsx +28 -0
  216. package/src/components/icons/AddIcon.tsx +2 -9
  217. package/src/components/icons/AppsFilledIcon.tsx +28 -0
  218. package/src/components/icons/AppsIcon.tsx +28 -0
  219. package/src/components/icons/ArrowDownIcon.tsx +2 -6
  220. package/src/components/icons/ArrowLeftIcon.tsx +2 -6
  221. package/src/components/icons/ArrowRightIcon.tsx +2 -6
  222. package/src/components/icons/ArrowUpIcon.tsx +2 -6
  223. package/src/components/icons/BackspaceFilledIcon.tsx +28 -0
  224. package/src/components/icons/BackspaceIcon.tsx +28 -0
  225. package/src/components/icons/BasketFilledIcon.tsx +28 -0
  226. package/src/components/icons/BasketIcon.tsx +2 -9
  227. package/src/components/icons/BellFilledIcon.tsx +29 -0
  228. package/src/components/icons/BellIcon.tsx +28 -0
  229. package/src/components/icons/BroomIcon.tsx +28 -0
  230. package/src/components/icons/CalendarFilledIcon.tsx +28 -0
  231. package/src/components/icons/CalendarIcon.tsx +2 -9
  232. package/src/components/icons/CashFilledIcon.tsx +28 -0
  233. package/src/components/icons/CashIcon.tsx +33 -0
  234. package/src/components/icons/ChevronDownIcon.tsx +2 -5
  235. package/src/components/icons/ChevronLeftIcon.tsx +2 -5
  236. package/src/components/icons/ChevronRightIcon.tsx +2 -5
  237. package/src/components/icons/ChevronUpIcon.tsx +2 -5
  238. package/src/components/icons/CircleBurgerFilledIcon.tsx +28 -0
  239. package/src/components/icons/CircleBurgerIcon.tsx +28 -0
  240. package/src/components/icons/ClipboardFilledIcon.tsx +28 -0
  241. package/src/components/icons/ClipboardIcon.tsx +28 -0
  242. package/src/components/icons/{InformationIcon.tsx → ClockFilledIcon.tsx} +6 -9
  243. package/src/components/icons/ClockIcon.tsx +2 -9
  244. package/src/components/icons/CloseAltFilledIcon.tsx +32 -0
  245. package/src/components/icons/CloseAltIcon.tsx +2 -13
  246. package/src/components/icons/CogIcon.tsx +28 -0
  247. package/src/components/icons/CommunityFilledIcon.tsx +28 -0
  248. package/src/components/icons/CommunityIcon.tsx +28 -0
  249. package/src/components/icons/ComputerIcon.tsx +28 -0
  250. package/src/components/icons/ContactFilledIcon.tsx +28 -0
  251. package/src/components/icons/ContactIcon.tsx +28 -0
  252. package/src/components/icons/ContactlessFilledIcon.tsx +28 -0
  253. package/src/components/icons/ContactlessIcon.tsx +28 -0
  254. package/src/components/icons/CoopLiveIcon.tsx +29 -0
  255. package/src/components/icons/CoopLocationFilledIcon.tsx +30 -0
  256. package/src/components/icons/CoopLogoIcon.tsx +28 -0
  257. package/src/components/icons/CoopMembershipCardFilledIcon.tsx +40 -0
  258. package/src/components/icons/CreditCardFilledIcon.tsx +42 -0
  259. package/src/components/icons/CreditCardIcon.tsx +28 -0
  260. package/src/components/icons/{CloseIcon.tsx → CrossIcon.tsx} +4 -11
  261. package/src/components/icons/DocumentIcon.tsx +28 -0
  262. package/src/components/icons/DownloadIcon.tsx +2 -13
  263. package/src/components/icons/EnterStoreIcon.tsx +28 -0
  264. package/src/components/icons/ExitStoreIcon.tsx +28 -0
  265. package/src/components/icons/EyeFilledIcon.tsx +28 -0
  266. package/src/components/icons/EyeIcon.tsx +28 -0
  267. package/src/components/icons/EyeStrikeFilledIcon.tsx +28 -0
  268. package/src/components/icons/EyeStrikeIcon.tsx +28 -0
  269. package/src/components/icons/FeedbackFilledIcon.tsx +35 -0
  270. package/src/components/icons/FeedbackIcon.tsx +28 -0
  271. package/src/components/icons/FilterIcon.tsx +28 -0
  272. package/src/components/icons/GiftCardFilledIcon.tsx +28 -0
  273. package/src/components/icons/GiftCardIcon.tsx +28 -0
  274. package/src/components/icons/GiftFilledIcon.tsx +28 -0
  275. package/src/components/icons/GiftIcon.tsx +28 -0
  276. package/src/components/icons/HelpFilledIcon.tsx +28 -0
  277. package/src/components/icons/HelpIcon.tsx +28 -0
  278. package/src/components/icons/HomeFilledIcon.tsx +28 -0
  279. package/src/components/icons/HomeIcon.tsx +2 -13
  280. package/src/components/icons/HowDoIAssistantIcon.tsx +28 -0
  281. package/src/components/icons/InfoIcon.tsx +28 -0
  282. package/src/components/icons/KebabIcon.tsx +28 -0
  283. package/src/components/icons/LoadingIcon.tsx +3 -6
  284. package/src/components/icons/LocationFilledIcon.tsx +28 -0
  285. package/src/components/icons/LocationIcon.tsx +2 -9
  286. package/src/components/icons/LogoutIcon.tsx +28 -0
  287. package/src/components/icons/MailIcon.tsx +2 -5
  288. package/src/components/icons/MenuIcon.tsx +2 -5
  289. package/src/components/icons/MessageIcon.tsx +2 -5
  290. package/src/components/icons/MinusIcon.tsx +2 -5
  291. package/src/components/icons/NotesFilledIcon.tsx +28 -0
  292. package/src/components/icons/NotesIcon.tsx +28 -0
  293. package/src/components/icons/OpenNewIcon.tsx +3 -9
  294. package/src/components/icons/OwnBagIcon.tsx +28 -0
  295. package/src/components/icons/PadlockIcon.tsx +28 -0
  296. package/src/components/icons/PencilIcon.tsx +2 -5
  297. package/src/components/icons/PhoneIcon.tsx +2 -5
  298. package/src/components/icons/PowerIcon.tsx +28 -0
  299. package/src/components/icons/SaveFilledIcon.tsx +28 -0
  300. package/src/components/icons/SaveIcon.tsx +28 -0
  301. package/src/components/icons/ScooterIcon.tsx +3 -22
  302. package/src/components/icons/SearchFilledIcon.tsx +28 -0
  303. package/src/components/icons/SearchIcon.tsx +9 -9
  304. package/src/components/icons/SendIcon.tsx +28 -0
  305. package/src/components/icons/SpannerIcon.tsx +28 -0
  306. package/src/components/icons/StarFilledIcon.tsx +31 -0
  307. package/src/components/icons/StarIcon.tsx +28 -0
  308. package/src/components/icons/TickAltFilledIcon.tsx +32 -0
  309. package/src/components/icons/TickAltIcon.tsx +2 -9
  310. package/src/components/icons/TickIcon.tsx +2 -5
  311. package/src/components/icons/TruckIcon.tsx +28 -0
  312. package/src/components/icons/UserWipeIcon.tsx +28 -0
  313. package/src/components/icons/VoucherFilledIcon.tsx +28 -0
  314. package/src/components/icons/VoucherIcon.tsx +28 -0
  315. package/src/components/icons/WarningFilledIcon.tsx +28 -0
  316. package/src/components/icons/WarningIcon.tsx +2 -9
  317. package/src/components/icons/WifiIcon.tsx +28 -0
  318. package/src/components/icons/WriteIcon.tsx +5 -17
  319. package/src/components/icons/index.ts +77 -10
  320. package/src/types/colors.ts +1 -3
  321. package/src/utils/index.ts +4 -0
  322. package/dist/components/icons/AvatarAltIcon.js +0 -20
  323. package/dist/components/icons/AvatarIcon.js +0 -20
  324. package/dist/components/icons/CloseIcon.js +0 -20
  325. package/dist/components/icons/CoopCardIcon.js +0 -20
  326. package/dist/components/icons/CoopIcon.js +0 -20
  327. package/dist/components/icons/InformationIcon.js +0 -20
  328. package/dist/components/icons/QuestionIcon.js +0 -20
  329. package/dist/components/icons/SettingsIcon.js +0 -20
  330. package/dist/components/icons/VanIcon.js +0 -20
  331. package/src/components/icons/AvatarAltIcon.tsx +0 -39
  332. package/src/components/icons/AvatarIcon.tsx +0 -35
  333. package/src/components/icons/CoopCardIcon.tsx +0 -32
  334. package/src/components/icons/CoopIcon.tsx +0 -32
  335. package/src/components/icons/CoopLocationIcon.tsx +0 -39
  336. package/src/components/icons/QuestionIcon.tsx +0 -35
  337. package/src/components/icons/SettingsIcon.tsx +0 -31
  338. package/src/components/icons/VanIcon.tsx +0 -31
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@coopdigital/react",
3
3
  "type": "module",
4
- "version": "0.53.0",
4
+ "version": "0.55.0",
5
5
  "private": false,
6
6
  "publishConfig": {
7
7
  "access": "public"
@@ -58,22 +58,22 @@
58
58
  "license": "MIT",
59
59
  "description": "React components for the Experience Library design system",
60
60
  "devDependencies": {
61
- "@axe-core/playwright": "^4.11.0",
61
+ "@axe-core/playwright": "^4.11.1",
62
62
  "@playwright/test": "^1.58.1",
63
- "@storybook/addon-a11y": "^10.2.6",
64
- "@storybook/addon-docs": "^10.2.6",
65
- "@storybook/addon-onboarding": "^10.2.6",
66
- "@storybook/react-vite": "^10.2.6",
63
+ "@storybook/addon-a11y": "^10.2.7",
64
+ "@storybook/addon-docs": "^10.2.7",
65
+ "@storybook/addon-onboarding": "^10.2.7",
66
+ "@storybook/react-vite": "^10.2.7",
67
67
  "@testing-library/jest-dom": "^6.9.1",
68
68
  "@testing-library/react": "^16.3.2",
69
- "@types/react": "^19.2.10",
69
+ "@types/react": "^19.2.13",
70
70
  "@types/react-dom": "^19.2.3",
71
71
  "react": "^19.2.4",
72
72
  "react-dom": "^19.2.4",
73
73
  "resize-observer-polyfill": "^1.5.1",
74
74
  "serve": "^14.2.5",
75
- "storybook": "^10.2.6",
76
- "storybook-addon-tag-badges": "^3.0.5"
75
+ "storybook": "^10.2.7",
76
+ "storybook-addon-tag-badges": "^3.0.6"
77
77
  },
78
78
  "peerDependencies": {
79
79
  "react": "^19.1.0",
@@ -83,10 +83,10 @@
83
83
  "storybook": "$storybook"
84
84
  },
85
85
  "dependencies": {
86
- "@coopdigital/styles": "^0.44.0",
86
+ "@coopdigital/styles": "^0.46.0",
87
87
  "@radix-ui/react-popover": "^1.1.15",
88
88
  "clsx": "^2.1.1",
89
89
  "react-day-picker": "^9.12.0"
90
90
  },
91
- "gitHead": "d8324f6ee7c544c37f752b5e6eeb67cffff20237"
91
+ "gitHead": "a893acdaff1f6dc817bb01d77988b1bd9dd85ad1"
92
92
  }
@@ -5,6 +5,7 @@ import type { ButtonHTMLAttributes, ForwardRefExoticComponent, JSX, Ref } from "
5
5
  import clsx from "clsx"
6
6
  import React, { useCallback, useState } from "react"
7
7
 
8
+ import { hasUserBg } from "../../utils"
8
9
  import { LoadingIcon } from "../icons"
9
10
 
10
11
  export interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
@@ -32,16 +33,7 @@ export interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
32
33
  /** **(Optional)** Specify the Button size. */
33
34
  size?: "sm" | "md" | "lg"
34
35
  /** **(Optional)** Specify the Button variant. */
35
- variant?:
36
- | "green"
37
- | "blue"
38
- | "white"
39
- | "grey"
40
- | "green-ghost"
41
- | "blue-ghost"
42
- | "white-ghost"
43
- | "grey-ghost"
44
- | "text"
36
+ variant?: "solid" | "ghost" | "text"
45
37
  }
46
38
 
47
39
  type OnClickHandler =
@@ -60,7 +52,7 @@ export const Button = ({
60
52
  onClick,
61
53
  ref,
62
54
  size = "md",
63
- variant = "green",
55
+ variant = "solid",
64
56
  ...props
65
57
  }: ButtonProps): JSX.Element => {
66
58
  const element: ButtonProps["as"] = as ?? (href ? "a" : "button")
@@ -85,7 +77,11 @@ export const Button = ({
85
77
  const componentProps = {
86
78
  "aria-disabled": isDisabled ? true : undefined,
87
79
  "aria-live": "assertive" as keyof ButtonHTMLAttributes<HTMLButtonElement>["aria-live"],
88
- className: clsx(variant == "text" ? "coop-link" : "coop-button", className),
80
+ className: clsx(
81
+ variant == "text" ? "coop-link" : "coop-button",
82
+ !hasUserBg(className) && variant === "solid" && "bg-teal",
83
+ className
84
+ ),
89
85
  "data-loading": isLoading || isPending ? true : undefined,
90
86
  "data-size": size.length && size !== "md" ? size : undefined,
91
87
  "data-variant": variant !== "text" ? variant : undefined,
@@ -99,7 +95,7 @@ export const Button = ({
99
95
  isPending || isLoading ? (
100
96
  <>
101
97
  {loadingText}
102
- <LoadingIcon />
98
+ <LoadingIcon stroke={"currentColor"} strokeWidth={"1px"} />
103
99
  </>
104
100
  ) : (
105
101
  children
@@ -4,6 +4,7 @@ import clsx from "clsx"
4
4
  import React from "react"
5
5
 
6
6
  import { useSlots } from "../../hooks/useSlots"
7
+ import { hasUserBg } from "../../utils"
7
8
  import { ChevronRightIcon } from "../icons/ChevronRightIcon"
8
9
  import { Image, ImageProps } from "../Image"
9
10
 
@@ -99,7 +100,7 @@ export const Card = ({
99
100
  const hasLinkWrapper = href && !slots.CardHeading
100
101
 
101
102
  const componentProps = {
102
- className: clsx("coop-card", className),
103
+ className: clsx("coop-card", !hasUserBg(className) && "bg-white", className),
103
104
  "data-image-pos": imagePosition,
104
105
  "data-orientation": orientation !== "vertical" ? orientation : undefined,
105
106
  ...props,
@@ -1,5 +1,5 @@
1
1
  "use client"
2
- import type { FormEvent, InputHTMLAttributes, JSX, Ref } from "react"
2
+ import type { ChangeEvent, InputHTMLAttributes, JSX, Ref } from "react"
3
3
  import type {
4
4
  DayPickerProps,
5
5
  Formatters,
@@ -24,7 +24,7 @@ import type {
24
24
 
25
25
  import { useId } from "../../hooks/useId"
26
26
  import Button from "../Button"
27
- import { CloseIcon, TickIcon } from "../icons"
27
+ import { CalendarIcon, CrossIcon, TickIcon } from "../icons"
28
28
  import Popover from "../Popover"
29
29
  import TextInput from "../TextInput"
30
30
  import {
@@ -74,12 +74,12 @@ export interface DatePickerProps extends Omit<
74
74
  error?: boolean
75
75
  /** **(Optional)** Specify the Date Picker id. Will be auto-generated if not set. */
76
76
  id?: string
77
- /** **(Optional)** Specify the initial month view for the picker.
77
+ /** **(Optional)** Specify the initial month view for the picker. Combine with `initialSelected` to pre-select a date.
78
78
  *
79
79
  * Default: today.
80
80
  */
81
81
  initialDate?: Date | DateRange
82
-
82
+ /** **(Optional)** Specify whether the initial date should be pre-selected. */
83
83
  initialSelected?: boolean
84
84
 
85
85
  /** **(Optional)** Specify the picker mode. */
@@ -230,7 +230,7 @@ export const DatePicker = ({
230
230
  )
231
231
 
232
232
  const updateFromInput = useCallback(
233
- (e: FormEvent<HTMLInputElement>) => {
233
+ (e: ChangeEvent<HTMLInputElement>) => {
234
234
  if (shouldSkipParsing(e.currentTarget.value)) {
235
235
  setState({
236
236
  message: undefined,
@@ -299,17 +299,18 @@ export const DatePicker = ({
299
299
  ref={ref}
300
300
  required={required}
301
301
  size={size}
302
+ suffix={
303
+ <Popover.Trigger aria-label="Choose date" className="coop-datepicker-trigger">
304
+ <CalendarIcon width={24} />
305
+ </Popover.Trigger>
306
+ }
307
+ suffixInline={true}
302
308
  value={state?.[mode]?.input ?? ""}
303
309
  />
304
- <Popover.Trigger asChild>
305
- <Button className="coop-datepicker-button" disabled={disabled} size={size}>
306
- Select
307
- </Button>
308
- </Popover.Trigger>
309
310
  </Popover.Anchor>
310
311
  <Popover.Content
311
312
  aria-label="Date picker"
312
- className="coop-datepicker-calendar"
313
+ className="coop-datepicker-calendar bg-white"
313
314
  collisionPadding={16}
314
315
  sideOffset={4}
315
316
  >
@@ -330,8 +331,8 @@ export const DatePicker = ({
330
331
  {...calendarProps[mode]}
331
332
  />
332
333
  <div className="coop-datepicker-actions">
333
- <Button aria-label="Cancel" onClick={resetState} size="sm" variant="grey">
334
- Clear <CloseIcon stroke="black" strokeWidth={1} />
334
+ <Button aria-label="Cancel" className="bg-tint-grey" onClick={resetState} size="sm">
335
+ Clear <CrossIcon stroke="black" strokeWidth={1} />
335
336
  </Button>
336
337
  <Popover.Close asChild>
337
338
  <Button aria-label="Accept" size="sm">
@@ -3,7 +3,7 @@ import type { DetailsHTMLAttributes, HTMLAttributes, JSX, Ref } from "react"
3
3
  import { clsx } from "clsx"
4
4
 
5
5
  import { useSlots } from "../../hooks/useSlots"
6
- import { bgClassToColor, hasUserBg } from "../../utils"
6
+ import { hasUserBg } from "../../utils"
7
7
  import { ChevronDownIcon } from "../icons"
8
8
 
9
9
  export interface ExpandableProps extends DetailsHTMLAttributes<HTMLDetailsElement> {
@@ -47,9 +47,9 @@ export const Expandable = ({
47
47
  ...props,
48
48
  }
49
49
 
50
- componentProps.style = {
51
- "--bg": `var(--color-${bgClassToColor(componentProps.className)})`,
52
- }
50
+ // componentProps.style = {
51
+ // "--bg": `var(--color-${bgClassToColor(componentProps.className)})`,
52
+ // }
53
53
 
54
54
  return (
55
55
  <details {...componentProps} ref={ref}>
@@ -63,12 +63,7 @@ const ExpandableSummary = ({ children, className, ...props }: ExpandableSummaryP
63
63
  return (
64
64
  <summary {...props} className={className}>
65
65
  {children}
66
- <ChevronDownIcon
67
- className="coop-expandable--icon"
68
- stroke="currentColor"
69
- strokeWidth={2}
70
- width="12"
71
- />
66
+ <ChevronDownIcon className="coop-expandable--icon" width="20" />
72
67
  </summary>
73
68
  )
74
69
  }
@@ -62,7 +62,7 @@ export const Pill = ({
62
62
 
63
63
  const PillBadge = ({ children, className }: PillBadgeProps) => {
64
64
  return (
65
- <span className={clsx("coop-pill--badge", !hasUserBg(className) && "bg-offer-red", className)}>
65
+ <span className={clsx("coop-pill--badge", !hasUserBg(className) && "bg-red", className)}>
66
66
  {children}
67
67
  </span>
68
68
  )
@@ -1,22 +1,20 @@
1
1
  "use client"
2
2
 
3
- import type { InputHTMLAttributes, JSX, Ref } from "react"
3
+ import type { FormHTMLAttributes, JSX, Ref } from "react"
4
4
 
5
5
  import clsx from "clsx"
6
6
  import React, { useCallback, useState } from "react"
7
7
 
8
8
  import { useId } from "../../hooks/useId"
9
+ import { useSlots } from "../../hooks/useSlots"
9
10
  import { StandardSizes } from "../../types"
11
+ import { hasUserBorder } from "../../utils"
10
12
  import { Button, type ButtonProps } from "../Button"
11
13
  import Field from "../Field"
12
- import { Label as FieldLabel } from "../FieldMarkers/Label"
13
14
  import { SearchIcon } from "../icons"
14
15
  import TextInput, { TextInputProps } from "../TextInput"
15
16
 
16
- export interface SearchboxProps extends Omit<
17
- InputHTMLAttributes<HTMLInputElement>,
18
- "size" | "type"
19
- > {
17
+ export interface SearchboxProps extends FormHTMLAttributes<HTMLFormElement> {
20
18
  /** **(Optional)** Specify a server endpoint to submit the form. Will be ignored if onSubmit is also set. */
21
19
  action?: string
22
20
  /** **(Optional)** Specify props to forward to the Button element. Use `label` to set Button text. */
@@ -32,7 +30,7 @@ export interface SearchboxProps extends Omit<
32
30
  /** **(Optional)** Specify the TextInput name, also used as the URL search parameter. Defaults to `query`. */
33
31
  name?: string
34
32
  /** **(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. */
35
- onSubmit?: React.FormEventHandler<HTMLElement> | undefined
33
+ onSubmit?: React.SubmitEventHandler<HTMLElement> | undefined
36
34
  /** **(Optional)** Specify the TextInput placeholder text Do not use in place of a form label. */
37
35
  placeholder?: string
38
36
  /** **(Optional)** Specify a custom React ref for this component. */
@@ -40,46 +38,40 @@ export interface SearchboxProps extends Omit<
40
38
  /** **(Optional)** Specify the Searchbox size. */
41
39
  size?: StandardSizes
42
40
  /** **(Optional)** Specify the Searchbox variant. */
43
- variant?:
44
- | "green"
45
- | "blue"
46
- | "white"
47
- | "grey"
48
- | "green-ghost"
49
- | "blue-ghost"
50
- | "white-ghost"
51
- | "grey-ghost"
41
+ variant?: "solid" | "ghost"
52
42
  }
53
43
 
54
- const defaultButtonProps: SearchboxProps["button"] = {
55
- label: React.createElement(SearchIcon, { alt: "Search", stroke: "currentColor", strokeWidth: 2 }),
56
- loadingText: "",
44
+ const componentSlots = {
45
+ SearchboxButton: null,
46
+ SearchboxInput: null,
57
47
  }
58
48
 
49
+ const defaultButtonText = React.createElement(SearchIcon, {
50
+ alt: "Search",
51
+ stroke: "currentColor",
52
+ width: 24,
53
+ })
54
+
59
55
  export const Searchbox = ({
60
56
  action,
61
- "aria-placeholder": ariaPlaceholder,
62
- autoCapitalize = "off",
63
- autoComplete = "off",
64
- button = defaultButtonProps,
57
+ children,
65
58
  className,
66
-
67
59
  id,
68
60
  label,
69
61
  labelVisible = false,
70
- name = "query",
71
62
  onSubmit,
72
- placeholder,
73
63
  ref,
74
64
  size = "md",
75
- variant = "green",
65
+ variant = "solid",
76
66
  ...props
77
67
  }: SearchboxProps): JSX.Element => {
68
+ const slots = useSlots(componentSlots, children)
69
+
78
70
  const [isPending, setIsPending] = useState(false)
79
71
  const uid = useId(id)
80
72
 
81
73
  const handleSubmit = useCallback(
82
- async (event: React.FormEvent<HTMLFormElement>) => {
74
+ async (event: React.SubmitEvent<HTMLFormElement>) => {
83
75
  event.preventDefault()
84
76
 
85
77
  if (isPending || !onSubmit) return
@@ -95,51 +87,69 @@ export const Searchbox = ({
95
87
  [onSubmit, isPending]
96
88
  )
97
89
 
90
+ let borderClass = ""
91
+ if (!hasUserBorder(className)) {
92
+ borderClass = variant === "ghost" ? "border-teal" : "border-grey"
93
+ }
94
+
98
95
  const formProps = {
99
96
  action: action ?? undefined,
100
- className: clsx("coop-searchbox", className),
97
+ className: clsx("coop-searchbox", borderClass, className),
101
98
  "data-size": size && size !== "md" ? size : undefined,
102
- "data-variant": variant.length && variant !== "green" ? variant : undefined,
103
- id: uid,
99
+ "data-variant": variant.length && variant !== "solid" ? variant : undefined,
100
+ id: uid + "-form",
104
101
  onSubmit: onSubmit ? handleSubmit : undefined,
102
+ ...props,
105
103
  }
106
104
 
107
- const buttonProps: ButtonProps = {
108
- className: button?.className,
109
- isLoading: isPending,
110
- loadingText: button?.loadingText ?? "",
111
- size,
112
- variant,
113
- }
105
+ slots.SearchboxButton = React.cloneElement(
106
+ slots.SearchboxButton as React.ReactElement<ButtonProps>,
107
+ {
108
+ isLoading: isPending,
109
+ size,
110
+ }
111
+ )
114
112
 
115
- const inputProps: TextInputProps = {
116
- "aria-placeholder": placeholder ?? ariaPlaceholder ?? undefined,
117
- autoCapitalize,
118
- autoComplete,
119
- id: uid + "--input",
120
- name,
121
- placeholder,
122
- size,
123
- type: "search",
124
- ...props,
125
- }
113
+ slots.SearchboxInput = React.cloneElement(
114
+ slots.SearchboxInput as React.ReactElement<TextInputProps>,
115
+ {
116
+ autoCapitalize: "off",
117
+ id: uid,
118
+ size,
119
+ }
120
+ )
126
121
 
127
122
  const labelProps = {
128
- htmlFor: uid + "--input",
123
+ htmlFor: uid,
129
124
  isVisible: labelVisible,
130
125
  }
131
126
 
132
127
  return (
133
128
  <form {...formProps} ref={ref}>
134
- {label && <FieldLabel {...labelProps}>{label}</FieldLabel>}
135
- <div className="coop-searchbox--inner">
136
- <Field>
137
- <TextInput {...inputProps} />
138
- </Field>
139
- <Button {...buttonProps}>{button.label}</Button>
129
+ {label && <Field.Label {...labelProps}>{label}</Field.Label>}
130
+ <div className={clsx("coop-searchbox--inner")}>
131
+ <Field>{slots.SearchboxInput}</Field>
132
+ {slots.SearchboxButton}
140
133
  </div>
141
134
  </form>
142
135
  )
143
136
  }
144
137
 
138
+ const SearchboxButton = ({ children, ...props }: ButtonProps) => {
139
+ const buttonProps = {
140
+ children: children ?? defaultButtonText,
141
+ ...props,
142
+ }
143
+
144
+ return <Button {...buttonProps} />
145
+ }
146
+
147
+ const SearchboxInput = (props: TextInputProps) => <TextInput {...props} />
148
+
149
+ Searchbox.Button = SearchboxButton
150
+ Searchbox.Input = SearchboxInput
151
+
152
+ SearchboxButton.config = { name: "SearchboxButton" }
153
+ SearchboxInput.config = { isField: true, name: "SearchboxInput" }
154
+
145
155
  export default Searchbox
@@ -22,7 +22,7 @@ export const Squircle = ({
22
22
  ...props
23
23
  }: SquircleProps): JSX.Element => {
24
24
  const componentProps = {
25
- className: clsx("coop-squircle", !hasUserBg(className) && "bg-offer-red", className),
25
+ className: clsx("coop-squircle", !hasUserBg(className) && "bg-offer", className),
26
26
  "data-size": size.length && size !== "lg" ? size : undefined,
27
27
  ...props,
28
28
  }
@@ -23,12 +23,16 @@ export interface TextInputProps extends Omit<
23
23
  placeholder?: string
24
24
  /** **(Optional)** Specify the prefix. It can be any valid JSX or string. */
25
25
  prefix?: React.ReactNode
26
+ /** **(Optional)** Specify whether the prefix should be rendered inside the input. */
27
+ prefixInline?: boolean
26
28
  /** **(Optional)** Specify a custom React ref for this component. */
27
29
  ref?: Ref<HTMLInputElement>
28
30
  /** **(Optional)** Specify the TextInput size. */
29
31
  size?: StandardSizes
30
32
  /** **(Optional)** Specify the suffix. It can be any valid JSX or string. */
31
33
  suffix?: React.ReactNode
34
+ /** **(Optional)** Specify whether the suffix should be rendered inside the input. */
35
+ suffixInline?: boolean
32
36
  /** **(Optional)** Specify the TextInput type. */
33
37
  type?:
34
38
  | "text"
@@ -54,9 +58,11 @@ export const TextInput = ({
54
58
  name,
55
59
  placeholder,
56
60
  prefix,
61
+ prefixInline = false,
57
62
  ref,
58
63
  size = "md",
59
64
  suffix,
65
+ suffixInline = false,
60
66
  type = "text",
61
67
  ...props
62
68
  }: TextInputProps): JSX.Element => {
@@ -74,12 +80,22 @@ export const TextInput = ({
74
80
  type,
75
81
  ...props,
76
82
  }
83
+
84
+ const prefixProps = prefix
85
+ ? { className: "coop-text-input--prefix", "data-inline": prefixInline || undefined }
86
+ : {}
87
+
88
+ const suffixProps = suffix
89
+ ? { className: "coop-text-input--suffix", "data-inline": suffixInline || undefined }
90
+ : {}
91
+
77
92
  //const formItemProps = { "aria-disabled": disabled ? true : undefined }
93
+
78
94
  return (
79
95
  <div className="coop-text-input-wrapper">
80
- {prefix && <span className="coop-text-input--prefix">{prefix}</span>}
96
+ {prefix && <span {...prefixProps}>{prefix}</span>}
81
97
  <input {...componentProps} ref={ref} />
82
- {suffix && <span className="coop-text-input--suffix">{suffix}</span>}
98
+ {suffix && <span {...suffixProps}>{suffix}</span>}
83
99
  </div>
84
100
  )
85
101
  }
@@ -0,0 +1,28 @@
1
+ import clsx from "clsx"
2
+ import { type SVGProps } from "react"
3
+
4
+ import { useId } from "../../hooks/useId"
5
+
6
+ interface IconProps extends SVGProps<SVGSVGElement> {
7
+ alt?: string
8
+ }
9
+
10
+ export const AccountCircleFilledIcon = ({ alt, className, fill, id, ref, ...props }: IconProps) => {
11
+ const uid = useId(id)
12
+ const componentProps = {
13
+ "aria-labelledby": alt ? uid + "-title" : undefined,
14
+ className: clsx("coop-icon", className),
15
+ "data-icon": "account-circle-filled",
16
+ fill: fill ?? "currentColor",
17
+ id: uid,
18
+ role: alt ? "img" : undefined,
19
+ viewBox: "0 0 32 32",
20
+ ...props,
21
+ }
22
+ return (
23
+ <svg {...componentProps} ref={ref}>
24
+ {alt ? <title id={uid + "-title"}>{alt}</title> : null}
25
+ <path d="M16 2c7.732 0 14 6.268 14 14 0 6.34-4.216 11.695-9.997 13.417l-.034.012-.029.008a14 14 0 0 1-3.453.553l-.037.002h-.022q-.211.007-.424.007L16 30 16 29.999V30q-.216 0-.432-.008h-.017l-.042-.003c-1.19-.04-2.34-.229-3.437-.549l-.035-.01-.075-.023a14 14 0 0 1-1.96-.755l-.06-.027-.011-.006C5.238 26.36 2 21.557 2 16 2 8.268 8.268 2 16 2m0 2C9.373 4 4 9.373 4 16a11.95 11.95 0 0 0 2.256 6.997 12.03 12.03 0 0 1 5.92-4.374 6 6 0 1 1 7.648 0 12.03 12.03 0 0 1 5.918 4.374A11.95 11.95 0 0 0 28 16c0-6.627-5.373-12-12-12" />
26
+ </svg>
27
+ )
28
+ }
@@ -0,0 +1,28 @@
1
+ import clsx from "clsx"
2
+ import { type SVGProps } from "react"
3
+
4
+ import { useId } from "../../hooks/useId"
5
+
6
+ interface IconProps extends SVGProps<SVGSVGElement> {
7
+ alt?: string
8
+ }
9
+
10
+ export const AccountCircleIcon = ({ alt, className, fill, id, ref, ...props }: IconProps) => {
11
+ const uid = useId(id)
12
+ const componentProps = {
13
+ "aria-labelledby": alt ? uid + "-title" : undefined,
14
+ className: clsx("coop-icon", className),
15
+ "data-icon": "account-circle",
16
+ fill: fill ?? "currentColor",
17
+ id: uid,
18
+ role: alt ? "img" : undefined,
19
+ viewBox: "0 0 32 32",
20
+ ...props,
21
+ }
22
+ return (
23
+ <svg {...componentProps} ref={ref}>
24
+ {alt ? <title id={uid + "-title"}>{alt}</title> : null}
25
+ <path d="M16 2c7.732 0 14 6.268 14 14 0 6.378-4.265 11.758-10.099 13.447l-.03.01q-.447.127-.904.227l-.038.007q-.126.027-.251.051l-.099.02a14 14 0 0 1-.558.091l-.09.013a13 13 0 0 1-.559.067l-.203.017-.115.01q-.153.011-.306.02l-.033.001a14 14 0 0 1-1.43 0q-.018 0-.034-.002l-.306-.019-.115-.01q-.102-.007-.203-.017l-.225-.025-.087-.01-.245-.03-.093-.014-.236-.037-.1-.016a15 15 0 0 1-.57-.109l-.039-.008a14 14 0 0 1-.903-.227l-.032-.01C6.264 27.757 2 22.377 2 16 2 8.268 8.268 2 16 2m.001 18a9.99 9.99 0 0 0-8.397 4.57A11.95 11.95 0 0 0 16 28c3.27 0 6.23-1.31 8.393-3.43A9.99 9.99 0 0 0 16 20M16 4C9.373 4 4 9.373 4 16a11.95 11.95 0 0 0 2.256 6.997 12.03 12.03 0 0 1 5.92-4.374 6 6 0 1 1 7.648 0 12.03 12.03 0 0 1 5.918 4.374A11.95 11.95 0 0 0 28 16c0-6.627-5.373-12-12-12m0 6a4 4 0 1 0 0 8 4 4 0 0 0 0-8" />
26
+ </svg>
27
+ )
28
+ }
@@ -0,0 +1,28 @@
1
+ import clsx from "clsx"
2
+ import { type SVGProps } from "react"
3
+
4
+ import { useId } from "../../hooks/useId"
5
+
6
+ interface IconProps extends SVGProps<SVGSVGElement> {
7
+ alt?: string
8
+ }
9
+
10
+ export const AccountFilledIcon = ({ alt, className, fill, id, ref, ...props }: IconProps) => {
11
+ const uid = useId(id)
12
+ const componentProps = {
13
+ "aria-labelledby": alt ? uid + "-title" : undefined,
14
+ className: clsx("coop-icon", className),
15
+ "data-icon": "account-filled",
16
+ fill: fill ?? "currentColor",
17
+ id: uid,
18
+ role: alt ? "img" : undefined,
19
+ viewBox: "0 0 32 32",
20
+ ...props,
21
+ }
22
+ return (
23
+ <svg {...componentProps} ref={ref}>
24
+ {alt ? <title id={uid + "-title"}>{alt}</title> : null}
25
+ <path d="M16 2a7 7 0 0 1 4.055 12.703l.075.027a12.03 12.03 0 0 1 7.514 8.36q.063.252.115.51-.117.18-.24.357a14.05 14.05 0 0 1-7.11 5.334A13.9 13.9 0 0 1 16 30c-4.93 0-9.266-2.55-11.76-6.401a12.02 12.02 0 0 1 7.63-8.87l.074-.026A7 7 0 0 1 16 2" />
26
+ </svg>
27
+ )
28
+ }
@@ -0,0 +1,28 @@
1
+ import clsx from "clsx"
2
+ import { type SVGProps } from "react"
3
+
4
+ import { useId } from "../../hooks/useId"
5
+
6
+ interface IconProps extends SVGProps<SVGSVGElement> {
7
+ alt?: string
8
+ }
9
+
10
+ export const AccountIcon = ({ alt, className, fill, id, ref, ...props }: IconProps) => {
11
+ const uid = useId(id)
12
+ const componentProps = {
13
+ "aria-labelledby": alt ? uid + "-title" : undefined,
14
+ className: clsx("coop-icon", className),
15
+ "data-icon": "account",
16
+ fill: fill ?? "currentColor",
17
+ id: uid,
18
+ role: alt ? "img" : undefined,
19
+ viewBox: "0 0 32 32",
20
+ ...props,
21
+ }
22
+ return (
23
+ <svg {...componentProps} ref={ref}>
24
+ {alt ? <title id={uid + "-title"}>{alt}</title> : null}
25
+ <path d="M16 2a7 7 0 0 1 4.055 12.703 12.03 12.03 0 0 1 7.565 8.304l.04.157q.054.216.099.435-.108.166-.22.329l-.075.105-.155.218-.097.13a14 14 0 0 1-.493.623l-.088.101A13.97 13.97 0 0 1 16 30a13.97 13.97 0 0 1-10.565-4.817l-.156-.18q-.085-.103-.169-.207l-.069-.085a13 13 0 0 1-.255-.331l-.097-.13-.155-.218-.074-.105a14 14 0 0 1-.22-.328q.045-.22.098-.436l.04-.157q.041-.165.089-.328.038-.128.078-.254l.066-.21a12 12 0 0 1 .128-.363 12.03 12.03 0 0 1 7.205-7.148A7 7 0 0 1 16 2m0 14c-4.55 0-8.387 3.04-9.598 7.2A11.98 11.98 0 0 0 16 28c3.926 0 7.407-1.887 9.596-4.802C24.385 19.04 20.55 16 16 16m0-12a5 5 0 1 0 0 10 5 5 0 0 0 0-10" />
26
+ </svg>
27
+ )
28
+ }
@@ -13,7 +13,7 @@ export const AddIcon = ({ alt, className, fill, id, ref, ...props }: IconProps)
13
13
  "aria-labelledby": alt ? uid + "-title" : undefined,
14
14
  className: clsx("coop-icon", className),
15
15
  "data-icon": "add",
16
- fill: fill ?? "none",
16
+ fill: fill ?? "currentColor",
17
17
  id: uid,
18
18
  role: alt ? "img" : undefined,
19
19
  viewBox: "0 0 32 32",
@@ -22,14 +22,7 @@ export const AddIcon = ({ alt, className, fill, id, ref, ...props }: IconProps)
22
22
  return (
23
23
  <svg {...componentProps} ref={ref}>
24
24
  {alt ? <title id={uid + "-title"}>{alt}</title> : null}
25
- <path
26
- 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"
27
- fill={fill ?? "currentColor"}
28
- />
29
- <path
30
- d="M16.72 24.7a1 1 0 0 1-.72.3 1 1 0 0 1-1-1V8a1 1 0 0 1 2 0v16a1 1 0 0 1-.28.7"
31
- fill={fill ?? "currentColor"}
32
- />
25
+ <path d="M15.957 4a1 1 0 0 1 1 1v10H27a1 1 0 1 1 0 2H16.957v10a1 1 0 0 1-2 0V17H5a1 1 0 1 1 0-2h9.957V5a1 1 0 0 1 1-1" />
33
26
  </svg>
34
27
  )
35
28
  }