design-react-kit 3.3.1 → 4.0.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 (352) hide show
  1. package/README.EN.md +35 -17
  2. package/README.md +34 -18
  3. package/package.json +152 -120
  4. package/src/Accordion/Accordion.tsx +30 -0
  5. package/src/Accordion/AccordionBody.tsx +127 -0
  6. package/src/Accordion/AccordionHeader.tsx +42 -0
  7. package/src/Alert/Alert.tsx +39 -0
  8. package/src/Avatar/AvatarContainer.tsx +22 -0
  9. package/src/Avatar/AvatarExtraText.tsx +19 -0
  10. package/src/Avatar/AvatarGroupContainer.tsx +23 -0
  11. package/src/Avatar/AvatarIcon.tsx +57 -0
  12. package/src/Avatar/AvatarPresence.tsx +24 -0
  13. package/src/Avatar/AvatarStatus.tsx +24 -0
  14. package/src/Avatar/AvatarWrapper.tsx +24 -0
  15. package/src/Badge/Badge.tsx +40 -0
  16. package/src/BottomNav/BottomNav.tsx +20 -0
  17. package/src/BottomNav/BottomNavItem.tsx +75 -0
  18. package/src/Breadcrumb/Breadcrumb.tsx +40 -0
  19. package/src/Button/Button.tsx +55 -0
  20. package/src/Callout/Callout.tsx +35 -0
  21. package/src/Callout/CalloutText.tsx +29 -0
  22. package/src/Callout/CalloutTitle.tsx +24 -0
  23. package/src/Card/Card.tsx +49 -0
  24. package/src/Card/CardBody.tsx +21 -0
  25. package/src/Card/CardCategory.tsx +48 -0
  26. package/src/Card/CardFooterCTA.tsx +19 -0
  27. package/src/Card/CardReadMore.tsx +35 -0
  28. package/src/Card/CardSignature.tsx +19 -0
  29. package/src/Card/CardTag.tsx +19 -0
  30. package/src/Card/CardTagsHeader.tsx +28 -0
  31. package/src/Card/CardText.tsx +19 -0
  32. package/src/Card/CardTitle.tsx +17 -0
  33. package/src/Chips/Chip.tsx +37 -0
  34. package/src/Chips/ChipLabel.tsx +19 -0
  35. package/src/Collapse/Collapse.tsx +100 -0
  36. package/src/CookieBar/CookieBar.tsx +19 -0
  37. package/src/CookieBar/CookieBarButton.tsx +27 -0
  38. package/src/CookieBar/CookieBarButtons.tsx +19 -0
  39. package/src/Dimmer/Dimmer.tsx +51 -0
  40. package/src/Dimmer/DimmerButtons.tsx +35 -0
  41. package/src/FontLoader/FontLoader.tsx +32 -0
  42. package/src/Forward/Forward.tsx +40 -0
  43. package/src/Grid/GridItem.tsx +23 -0
  44. package/src/Grid/GridItemText.tsx +20 -0
  45. package/src/Grid/GridItemTextWrapper.tsx +21 -0
  46. package/src/Grid/GridList.tsx +20 -0
  47. package/src/Grid/GridRow.tsx +20 -0
  48. package/src/Grid/index.ts +11 -0
  49. package/src/{components/Header/Header.js → Header/Header.tsx} +19 -24
  50. package/src/Header/HeaderBrand.tsx +90 -0
  51. package/src/Header/HeaderContent.tsx +42 -0
  52. package/src/Header/HeaderContext.tsx +9 -0
  53. package/src/Header/HeaderLinkZone.tsx +19 -0
  54. package/src/Header/HeaderRightZone.tsx +26 -0
  55. package/src/Header/HeaderSearch.tsx +33 -0
  56. package/src/Header/HeaderSocialsZone.tsx +26 -0
  57. package/src/Header/HeaderToggler.tsx +46 -0
  58. package/src/{components/Header/Headers.js → Header/Headers.tsx} +17 -22
  59. package/src/Hero/Hero.tsx +34 -0
  60. package/src/Hero/HeroBackground.tsx +25 -0
  61. package/src/Hero/HeroBody.tsx +21 -0
  62. package/src/Hero/HeroButton.tsx +19 -0
  63. package/src/Hero/HeroCategory.tsx +15 -0
  64. package/src/Hero/HeroTitle.tsx +16 -0
  65. package/src/Hero/index.ts +13 -0
  66. package/src/Icon/EmptyIcon.tsx +7 -0
  67. package/src/Icon/Icon.tsx +116 -0
  68. package/src/Icon/assets/ItArrowDown.tsx +9 -0
  69. package/src/Icon/assets/ItArrowDownCircle.tsx +9 -0
  70. package/src/Icon/assets/ItArrowDownTriangle.tsx +9 -0
  71. package/src/Icon/assets/ItArrowLeft.tsx +9 -0
  72. package/src/Icon/assets/ItArrowLeftCircle.tsx +9 -0
  73. package/src/Icon/assets/ItArrowLeftTriangle.tsx +9 -0
  74. package/src/Icon/assets/ItArrowRight.tsx +9 -0
  75. package/src/Icon/assets/ItArrowRightCircle.tsx +9 -0
  76. package/src/Icon/assets/ItArrowRightTriangle.tsx +9 -0
  77. package/src/Icon/assets/ItArrowUp.tsx +9 -0
  78. package/src/Icon/assets/ItArrowUpCircle.tsx +9 -0
  79. package/src/Icon/assets/ItArrowUpTriangle.tsx +9 -0
  80. package/src/Icon/assets/ItBan.tsx +9 -0
  81. package/src/Icon/assets/ItBehance.tsx +9 -0
  82. package/src/Icon/assets/ItBookmark.tsx +9 -0
  83. package/src/Icon/assets/ItBox.tsx +12 -0
  84. package/src/Icon/assets/ItBurger.tsx +9 -0
  85. package/src/Icon/assets/ItCalendar.tsx +9 -0
  86. package/src/Icon/assets/ItCamera.tsx +9 -0
  87. package/src/Icon/assets/ItCard.tsx +9 -0
  88. package/src/Icon/assets/ItChartLine.tsx +12 -0
  89. package/src/Icon/assets/ItCheck.tsx +9 -0
  90. package/src/Icon/assets/ItCheckCircle.tsx +9 -0
  91. package/src/Icon/assets/ItChevronLeft.tsx +8 -0
  92. package/src/Icon/assets/ItChevronRight.tsx +8 -0
  93. package/src/Icon/assets/ItClip.tsx +9 -0
  94. package/src/Icon/assets/ItClock.tsx +9 -0
  95. package/src/Icon/assets/ItClose.tsx +9 -0
  96. package/src/Icon/assets/ItCloseBig.tsx +9 -0
  97. package/src/Icon/assets/ItCloseCircle.tsx +9 -0
  98. package/src/Icon/assets/ItCodeCircle.tsx +9 -0
  99. package/src/Icon/assets/ItCollapse.tsx +8 -0
  100. package/src/Icon/assets/ItComment.tsx +9 -0
  101. package/src/Icon/assets/ItCopy.tsx +9 -0
  102. package/src/Icon/assets/ItDelete.tsx +12 -0
  103. package/src/Icon/assets/ItDesignersItalia.tsx +9 -0
  104. package/src/Icon/assets/ItDownload.tsx +9 -0
  105. package/src/Icon/assets/ItError.tsx +9 -0
  106. package/src/Icon/assets/ItExchangeCircle.tsx +9 -0
  107. package/src/Icon/assets/ItExpand.tsx +8 -0
  108. package/src/Icon/assets/ItExternalLink.tsx +9 -0
  109. package/src/Icon/assets/ItFacebook.tsx +9 -0
  110. package/src/Icon/assets/ItFacebookSquare.tsx +9 -0
  111. package/src/Icon/assets/ItFile.tsx +9 -0
  112. package/src/Icon/assets/ItFiles.tsx +9 -0
  113. package/src/Icon/assets/ItFlag.tsx +9 -0
  114. package/src/Icon/assets/ItFlickr.tsx +10 -0
  115. package/src/Icon/assets/ItFlickrSquare.tsx +9 -0
  116. package/src/Icon/assets/ItFolder.tsx +9 -0
  117. package/src/Icon/assets/ItFullscreen.tsx +11 -0
  118. package/src/Icon/assets/ItFunnel.tsx +9 -0
  119. package/src/Icon/assets/ItGithub.tsx +9 -0
  120. package/src/Icon/assets/ItHearing.tsx +9 -0
  121. package/src/Icon/assets/ItHelp.tsx +9 -0
  122. package/src/Icon/assets/ItHelpCircle.tsx +9 -0
  123. package/src/Icon/assets/ItHorn.tsx +9 -0
  124. package/src/Icon/assets/ItInbox.tsx +12 -0
  125. package/src/Icon/assets/ItInfoCircle.tsx +9 -0
  126. package/src/Icon/assets/ItInstagram.tsx +9 -0
  127. package/src/Icon/assets/ItKey.tsx +9 -0
  128. package/src/Icon/assets/ItLessCircle.tsx +12 -0
  129. package/src/Icon/assets/ItLink.tsx +9 -0
  130. package/src/Icon/assets/ItLinkedin.tsx +9 -0
  131. package/src/Icon/assets/ItLinkedinSquare.tsx +9 -0
  132. package/src/Icon/assets/ItList.tsx +9 -0
  133. package/src/Icon/assets/ItLock.tsx +12 -0
  134. package/src/Icon/assets/ItLocked.tsx +9 -0
  135. package/src/Icon/assets/ItMail.tsx +9 -0
  136. package/src/Icon/assets/ItMapMarker.tsx +9 -0
  137. package/src/Icon/assets/ItMapMarkerCircle.tsx +12 -0
  138. package/src/Icon/assets/ItMapMarkerMinus.tsx +9 -0
  139. package/src/Icon/assets/ItMapMarkerPlus.tsx +12 -0
  140. package/src/Icon/assets/ItMaximize.tsx +11 -0
  141. package/src/Icon/assets/ItMaximizeAlt.tsx +11 -0
  142. package/src/Icon/assets/ItMedium.tsx +9 -0
  143. package/src/Icon/assets/ItMediumSquare.tsx +9 -0
  144. package/src/Icon/assets/ItMinimize.tsx +11 -0
  145. package/src/Icon/assets/ItMinus.tsx +9 -0
  146. package/src/Icon/assets/ItMinusCircle.tsx +9 -0
  147. package/src/Icon/assets/ItMoreActions.tsx +9 -0
  148. package/src/Icon/assets/ItMoreItems.tsx +9 -0
  149. package/src/Icon/assets/ItNote.tsx +9 -0
  150. package/src/Icon/assets/ItOpenSource.tsx +9 -0
  151. package/src/Icon/assets/ItPa.tsx +9 -0
  152. package/src/Icon/assets/ItPasswordInvisible.tsx +9 -0
  153. package/src/Icon/assets/ItPasswordVisible.tsx +9 -0
  154. package/src/Icon/assets/ItPencil.tsx +9 -0
  155. package/src/Icon/assets/ItPiattaforme.tsx +10 -0
  156. package/src/Icon/assets/ItPin.tsx +9 -0
  157. package/src/Icon/assets/ItPlug.tsx +9 -0
  158. package/src/Icon/assets/ItPlus.tsx +9 -0
  159. package/src/Icon/assets/ItPlusCircle.tsx +9 -0
  160. package/src/Icon/assets/ItPresentation.tsx +9 -0
  161. package/src/Icon/assets/ItPrint.tsx +9 -0
  162. package/src/Icon/assets/ItRefresh.tsx +9 -0
  163. package/src/Icon/assets/ItRestore.tsx +9 -0
  164. package/src/Icon/assets/ItRss.tsx +11 -0
  165. package/src/Icon/assets/ItRssSquare.tsx +9 -0
  166. package/src/Icon/assets/ItSearch.tsx +9 -0
  167. package/src/Icon/assets/ItSettings.tsx +9 -0
  168. package/src/Icon/assets/ItShare.tsx +9 -0
  169. package/src/Icon/assets/ItSoftware.tsx +10 -0
  170. package/src/Icon/assets/ItStarFull.tsx +9 -0
  171. package/src/Icon/assets/ItStarOutline.tsx +9 -0
  172. package/src/Icon/assets/ItTeamDigitale.tsx +8 -0
  173. package/src/Icon/assets/ItTelegram.tsx +11 -0
  174. package/src/Icon/assets/ItTelephone.tsx +9 -0
  175. package/src/Icon/assets/ItTool.tsx +9 -0
  176. package/src/Icon/assets/ItTwitter.tsx +9 -0
  177. package/src/Icon/assets/ItTwitterSquare.tsx +9 -0
  178. package/src/Icon/assets/ItUnlocked.tsx +9 -0
  179. package/src/Icon/assets/ItUpload.tsx +9 -0
  180. package/src/Icon/assets/ItUser.tsx +9 -0
  181. package/src/Icon/assets/ItVideo.tsx +9 -0
  182. package/src/Icon/assets/ItWarning.tsx +9 -0
  183. package/src/Icon/assets/ItWarningCircle.tsx +9 -0
  184. package/src/Icon/assets/ItWhatsapp.tsx +9 -0
  185. package/src/Icon/assets/ItWhatsappSquare.tsx +10 -0
  186. package/src/Icon/assets/ItWifi.tsx +12 -0
  187. package/src/Icon/assets/ItYoutube.tsx +9 -0
  188. package/src/Icon/assets/ItZoomIn.tsx +9 -0
  189. package/src/Icon/assets/ItZoomOut.tsx +9 -0
  190. package/src/Icon/assets/index.tsx +504 -0
  191. package/src/Input/Input.tsx +342 -0
  192. package/src/Input/InputContainer.tsx +34 -0
  193. package/src/Input/TextArea.tsx +184 -0
  194. package/src/Input/TimeInput.tsx +303 -0
  195. package/src/Input/utils.tsx +166 -0
  196. package/src/LinkList/LinkList.tsx +65 -0
  197. package/src/LinkList/LinkListItem.tsx +98 -0
  198. package/src/Megamenu/Megamenu.tsx +37 -0
  199. package/src/Megamenu/MegamenuFooter.tsx +20 -0
  200. package/src/Megamenu/MegamenuHighlightColumn.tsx +33 -0
  201. package/src/Megamenu/MegamenuItem.tsx +27 -0
  202. package/src/Modal/Modal.tsx +79 -0
  203. package/src/Modal/ModalBody.tsx +11 -0
  204. package/src/Modal/ModalFooter.tsx +11 -0
  205. package/src/Modal/ModalHeader.tsx +70 -0
  206. package/src/Nav/Nav.tsx +56 -0
  207. package/src/Notification/Notification.tsx +60 -0
  208. package/src/Notification/NotificationContent.tsx +135 -0
  209. package/src/Notification/NotificationManager.tsx +65 -0
  210. package/src/Notification/core.tsx +46 -0
  211. package/src/Notification/index.ts +9 -0
  212. package/src/Notification/types.ts +12 -0
  213. package/src/Notification/usePosition.tsx +11 -0
  214. package/src/Pager/Pager.tsx +48 -0
  215. package/src/PasswordInput/PasswordInput.tsx +43 -0
  216. package/src/Progress/Progress.tsx +94 -0
  217. package/src/Rating/Rating.tsx +130 -0
  218. package/src/ResponsiveImage/ResponsiveImage.tsx +25 -0
  219. package/src/Section/Section.tsx +86 -0
  220. package/src/Select/Select.tsx +97 -0
  221. package/src/Select/shared.tsx +45 -0
  222. package/src/Sidebar/Sidebar.tsx +46 -0
  223. package/src/Skiplink/Skiplink.tsx +20 -0
  224. package/src/Skiplink/SkiplinkItem.tsx +29 -0
  225. package/src/Spinner/Spinner.tsx +55 -0
  226. package/src/Stepper/StepperContainer.tsx +30 -0
  227. package/src/Stepper/StepperContent.tsx +51 -0
  228. package/src/Stepper/StepperDots.tsx +21 -0
  229. package/src/Stepper/StepperHeader.tsx +19 -0
  230. package/src/Stepper/StepperHeaderElement.tsx +77 -0
  231. package/src/Stepper/StepperNav.tsx +19 -0
  232. package/src/ThumbNav/ThumbNav.tsx +37 -0
  233. package/src/ThumbNav/ThumbNavItem.tsx +35 -0
  234. package/src/Timeline/TimelinePin.tsx +67 -0
  235. package/src/Timeline/TimelineWrapper.tsx +19 -0
  236. package/src/Toggle/Toggle.tsx +29 -0
  237. package/src/Toolbar/Toolbar.tsx +28 -0
  238. package/src/Toolbar/ToolbarDividerItem.tsx +5 -0
  239. package/src/Toolbar/ToolbarItem.tsx +95 -0
  240. package/src/assets.d.ts +4 -0
  241. package/src/index.tsx +350 -0
  242. package/src/utils.tsx +26 -0
  243. package/.editorconfig +0 -18
  244. package/.eslintrc +0 -65
  245. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -32
  246. package/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
  247. package/.github/PULL_REQUEST_TEMPLATE.md +0 -24
  248. package/AUTHORS +0 -3
  249. package/CODE_OF_CONDUCT.EN.md +0 -77
  250. package/CODE_OF_CONDUCT.md +0 -69
  251. package/dist/design-react-kit.cjs.js +0 -3698
  252. package/dist/design-react-kit.cjs.js.map +0 -1
  253. package/dist/design-react-kit.d.ts +0 -1704
  254. package/dist/design-react-kit.es.js +0 -3188
  255. package/dist/design-react-kit.es.js.map +0 -1
  256. package/dist/design-react-kit.full.js +0 -17596
  257. package/dist/design-react-kit.full.js.map +0 -1
  258. package/dist/design-react-kit.full.min.js +0 -2
  259. package/dist/design-react-kit.full.min.js.map +0 -1
  260. package/dist/design-react-kit.js +0 -13394
  261. package/dist/design-react-kit.js.map +0 -1
  262. package/dist/design-react-kit.min.js +0 -2
  263. package/dist/design-react-kit.min.js.map +0 -1
  264. package/src/Storyshots.test.js +0 -9
  265. package/src/components/Accordion/Accordion.js +0 -22
  266. package/src/components/Accordion/AccordionBody.js +0 -118
  267. package/src/components/Accordion/AccordionHeader.js +0 -37
  268. package/src/components/Autocomplete/Autocomplete.js +0 -255
  269. package/src/components/Avatar/AvatarContainer.js +0 -24
  270. package/src/components/Avatar/AvatarExtraText.js +0 -22
  271. package/src/components/Avatar/AvatarGroupContainer.js +0 -23
  272. package/src/components/Avatar/AvatarIcon.js +0 -32
  273. package/src/components/Avatar/AvatarPresence.js +0 -25
  274. package/src/components/Avatar/AvatarStatus.js +0 -25
  275. package/src/components/Avatar/AvatarWrapper.js +0 -25
  276. package/src/components/Badge/Badge.js +0 -28
  277. package/src/components/BottomNav/BottomNav.js +0 -27
  278. package/src/components/BottomNav/BottomNavItem.js +0 -69
  279. package/src/components/Button/Button.js +0 -26
  280. package/src/components/Callout/Callout.js +0 -33
  281. package/src/components/Callout/CalloutText.js +0 -37
  282. package/src/components/Callout/CalloutTitle.js +0 -27
  283. package/src/components/Card/Card.js +0 -50
  284. package/src/components/Card/CardCategory.js +0 -43
  285. package/src/components/Card/CardFooterCTA.js +0 -17
  286. package/src/components/Card/CardReadMore.js +0 -45
  287. package/src/components/Card/CardSignature.js +0 -17
  288. package/src/components/Card/CardTag.js +0 -23
  289. package/src/components/Card/CardTagsHeader.js +0 -21
  290. package/src/components/Chips/Chip.js +0 -50
  291. package/src/components/Chips/ChipLabel.js +0 -25
  292. package/src/components/Collapse/Collapse.js +0 -66
  293. package/src/components/CookieBar/CookieBar.js +0 -22
  294. package/src/components/CookieBar/CookieBarButton.js +0 -25
  295. package/src/components/CookieBar/CookieBarButtons.js +0 -23
  296. package/src/components/Dimmer/Dimmer.js +0 -38
  297. package/src/components/Dimmer/DimmerButtons.js +0 -35
  298. package/src/components/FontLoader/FontLoader.js +0 -22
  299. package/src/components/FormGroup/FormGroup.js +0 -137
  300. package/src/components/Forward/Forward.js +0 -32
  301. package/src/components/Header/HeaderBrand.js +0 -86
  302. package/src/components/Header/HeaderContent.js +0 -49
  303. package/src/components/Header/HeaderContext.js +0 -14
  304. package/src/components/Header/HeaderLinkZone.js +0 -24
  305. package/src/components/Header/HeaderRightZone.js +0 -33
  306. package/src/components/Header/HeaderSearch.js +0 -36
  307. package/src/components/Header/HeaderSocialsZone.js +0 -30
  308. package/src/components/Header/HeaderToggler.js +0 -50
  309. package/src/components/Hero/Hero.js +0 -10
  310. package/src/components/Icon/Icon.js +0 -42
  311. package/src/components/Input/Input.js +0 -261
  312. package/src/components/Input/InputContainer.js +0 -39
  313. package/src/components/Input/utils.js +0 -126
  314. package/src/components/LinkList/LinkList.js +0 -65
  315. package/src/components/LinkList/LinkListItem.js +0 -88
  316. package/src/components/Nav/Nav.js +0 -37
  317. package/src/components/Notification/Notification.js +0 -78
  318. package/src/components/Offcanvas/Offcanvas.js +0 -101
  319. package/src/components/Pager/Pager.js +0 -32
  320. package/src/components/PagerList/PagerList.js +0 -28
  321. package/src/components/PasswordInput/PasswordInput.js +0 -41
  322. package/src/components/PasswordMeter/PasswordMeter.js +0 -80
  323. package/src/components/Progress/Progress.js +0 -88
  324. package/src/components/Rating/Rating.js +0 -130
  325. package/src/components/Section/Section.js +0 -49
  326. package/src/components/Separator/Separator.js +0 -34
  327. package/src/components/Sidebar/Sidebar.js +0 -53
  328. package/src/components/Skiplink/Skiplink.js +0 -25
  329. package/src/components/Skiplink/SkiplinkItem.js +0 -25
  330. package/src/components/Spinner/Spinner.js +0 -65
  331. package/src/components/Stepper/StepperContainer.js +0 -33
  332. package/src/components/Stepper/StepperContent.js +0 -54
  333. package/src/components/Stepper/StepperDots.js +0 -27
  334. package/src/components/Stepper/StepperHeader.js +0 -27
  335. package/src/components/Stepper/StepperHeaderElement.js +0 -45
  336. package/src/components/Stepper/StepperNav.js +0 -27
  337. package/src/components/Table/Table.js +0 -68
  338. package/src/components/Timeline/TimelinePin.js +0 -59
  339. package/src/components/Timeline/TimelineWrapper.js +0 -21
  340. package/src/components/Toggle/Toggle.js +0 -27
  341. package/src/components/utils.js +0 -1
  342. package/src/index.js +0 -144
  343. package/static/favicons/android-chrome-192x192.png +0 -0
  344. package/static/favicons/android-chrome-512x512.png +0 -0
  345. package/static/favicons/apple-touch-icon.png +0 -0
  346. package/static/favicons/browserconfig.xml +0 -9
  347. package/static/favicons/favicon-16x16.png +0 -0
  348. package/static/favicons/favicon-32x32.png +0 -0
  349. package/static/favicons/favicon.ico +0 -0
  350. package/static/favicons/manifest.webmanifest +0 -21
  351. package/static/favicons/mstile-150x150.png +0 -0
  352. package/static/favicons/safari-pinned-tab.svg +0 -23
@@ -0,0 +1,116 @@
1
+ import React, {
2
+ FC,
3
+ ImgHTMLAttributes,
4
+ SVGProps,
5
+ useEffect,
6
+ useState
7
+ } from 'react';
8
+ import classNames from 'classnames';
9
+ import { isBundledIcon, loadIcon, allIcons, IconName } from './assets';
10
+ import { EmptyIcon } from './EmptyIcon';
11
+ export type { IconName } from './assets';
12
+
13
+ export const iconsList = allIcons;
14
+
15
+ let iconsCache: Record<IconName, FC<SVGProps<SVGSVGElement>>> = {};
16
+
17
+ /**
18
+ * Preload a list of icons in cache
19
+ * @param icons - the list of icons to preload
20
+ * @returns true if the icons have been preloaded
21
+ */
22
+ export async function preloadIcons(icons: IconName[]) {
23
+ const preloadedIcons = await Promise.all(icons.map((icon) => loadIcon(icon)));
24
+ preloadedIcons.forEach(({ component }, i) => {
25
+ iconsCache[icons[i]] = ((() => component) as unknown) as FC<
26
+ SVGProps<SVGSVGElement>
27
+ >;
28
+ });
29
+ return true;
30
+ }
31
+
32
+ /**
33
+ * Removes icons from cache
34
+ * @param icon? - the icon to remove, or nothing to clear the whole cache
35
+ * @returns an object containing the removed icons
36
+ */
37
+ export const clearIconCache = (iconName?: IconName) => {
38
+ let deletedItems;
39
+ if (iconName) {
40
+ deletedItems = { iconName: iconsCache[iconName] };
41
+ delete iconsCache[iconName];
42
+ } else {
43
+ deletedItems = { ...iconsCache };
44
+ iconsCache = {};
45
+ }
46
+ return deletedItems;
47
+ };
48
+
49
+ export interface IconProps extends SVGProps<SVGSVGElement> {
50
+ /** Classi aggiuntive da usare per il componente Badge */
51
+ className?: string;
52
+ /** Le varianti di colore definite in Bootstrap Italia */
53
+ color?: 'success' | 'warning' | 'danger' | 'note' | 'important' | string;
54
+ /** Le dimensioni dell'icona. In ordine dalla più grande alla più piccola: "xl", "lg", '' (stringa vuota), "sm", "xs". */
55
+ size?: 'xl' | 'lg' | '' | 'sm' | 'xs';
56
+ /**
57
+ * Il nome dell'icona da mostrare. Per una lista completa vedi:
58
+ * <a href="https://italia.github.io/design-react-kit/?path=/story/componenti-icon--lista-icone" target="_blank">Lista icone</a>
59
+ * */
60
+ icon: string;
61
+ /** Quando abilitato riduce la dimensione dell'icona all'interno del contenitore. */
62
+ padding?: boolean;
63
+ /** Funzione chiamata al caricamento dell'icona */
64
+ onIconLoad?: () => void;
65
+ }
66
+
67
+ export const Icon: FC<IconProps> = ({
68
+ color = '',
69
+ size = '',
70
+ icon = '',
71
+ className,
72
+ padding = false,
73
+ onIconLoad,
74
+ ...attributes
75
+ }) => {
76
+ const [IconComponent, setCurrentIcon] = useState<FC<SVGProps<SVGSVGElement>>>(
77
+ iconsCache[icon]
78
+ );
79
+ const classes = classNames('icon', className, {
80
+ [`icon-${color}`]: color,
81
+ [`icon-${size}`]: size,
82
+ 'icon-padded': padding
83
+ });
84
+
85
+ useEffect(() => {
86
+ if (isBundledIcon(icon) && !iconsCache[icon]) {
87
+ loadIcon(icon).then(({ component }) => {
88
+ iconsCache[icon] = ((() => component) as unknown) as FC<
89
+ SVGProps<SVGSVGElement>
90
+ >;
91
+ setCurrentIcon(iconsCache[icon]);
92
+ onIconLoad?.();
93
+ });
94
+ } else {
95
+ onIconLoad?.();
96
+ }
97
+ }, [icon, onIconLoad]);
98
+
99
+ if (!isBundledIcon(icon)) {
100
+ // assume it's an image and let the browser do its job
101
+ return (
102
+ // eslint-disable-next-line jsx-a11y/alt-text
103
+ <img
104
+ src={icon}
105
+ className={classes}
106
+ {...(attributes as ImgHTMLAttributes<HTMLImageElement>)}
107
+ />
108
+ );
109
+ }
110
+
111
+ if (!IconComponent) {
112
+ return <EmptyIcon className={classes} role='img' {...attributes} />;
113
+ }
114
+
115
+ return <IconComponent className={classes} role='img' {...attributes} />;
116
+ };
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ export const component = (props: React.SVGProps<SVGSVGElement>) => {
3
+ return (
4
+ <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' {...props}>
5
+ <path d='M17.9 13.2l-5.4 5.3V3h-1v15.5l-5.4-5.3-.7.7 6.6 6.5 6.6-6.5zM12 19z' />
6
+ <path fill='none' d='M0 0h24v24H0z' />
7
+ </svg>
8
+ );
9
+ };
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ export const component = (props: React.SVGProps<SVGSVGElement>) => {
3
+ return (
4
+ <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' {...props}>
5
+ <path d='M15.6 13.2l.7.7-4.3 4.3-4.3-4.3.7-.7 3.1 3.1V7h1v9.2zM22 12A10 10 0 1112 2a10 10 0 0110 10zm-1 0a9 9 0 10-9 9 9 9 0 009-9z' />
6
+ <path fill='none' d='M0 0h24v24H0z' />
7
+ </svg>
8
+ );
9
+ };
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ export const component = (props: React.SVGProps<SVGSVGElement>) => {
3
+ return (
4
+ <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' {...props}>
5
+ <path d='M9.2 12h5.6a1 1 0 01.7 1.7L12 17.3l-3.5-3.6a1 1 0 01.7-1.7z' />
6
+ <path fill='none' d='M0 0h24v24H0z' />
7
+ </svg>
8
+ );
9
+ };
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ export const component = (props: React.SVGProps<SVGSVGElement>) => {
3
+ return (
4
+ <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' {...props}>
5
+ <path d='M21 11.5H5.5l5.3-5.4-.7-.7L3.6 12l6.5 6.6.7-.7-5.3-5.4H21zM5 12z' />
6
+ <path fill='none' d='M0 0h24v24H0z' />
7
+ </svg>
8
+ );
9
+ };
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ export const component = (props: React.SVGProps<SVGSVGElement>) => {
3
+ return (
4
+ <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' {...props}>
5
+ <path d='M7.7 11.5H17v1H7.8l3 3.1-.7.7L5.8 12l4.3-4.3.7.7zM22 12A10 10 0 1112 2a10 10 0 0110 10zm-1 0a9 9 0 10-9 9 9 9 0 009-9z' />
6
+ <path fill='none' d='M0 0h24v24H0z' />
7
+ </svg>
8
+ );
9
+ };
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ export const component = (props: React.SVGProps<SVGSVGElement>) => {
3
+ return (
4
+ <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' {...props}>
5
+ <path d='M12 9.2v5.6a1 1 0 01-1.7.7L6.8 12l3.5-3.5a1 1 0 011.7.7z' />
6
+ <path fill='none' d='M0 0h24v24H0z' />
7
+ </svg>
8
+ );
9
+ };
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ export const component = (props: React.SVGProps<SVGSVGElement>) => {
3
+ return (
4
+ <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' {...props}>
5
+ <path d='M13.9 5.4l-.7.7 5.3 5.4H3v1h15.5l-5.3 5.4.7.7 6.6-6.6zM19 12z' />
6
+ <path fill='none' d='M0 0h24v24H0z' />
7
+ </svg>
8
+ );
9
+ };
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ export const component = (props: React.SVGProps<SVGSVGElement>) => {
3
+ return (
4
+ <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' {...props}>
5
+ <path d='M13.9 7.7l4.3 4.3-4.3 4.3-.7-.7 3.1-3.1H7v-1h9.2l-3-3.1zM22 12A10 10 0 1112 2a10 10 0 0110 10zm-1 0a9 9 0 10-9 9 9 9 0 009-9z' />
6
+ <path fill='none' d='M0 0h24v24H0z' />
7
+ </svg>
8
+ );
9
+ };
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ export const component = (props: React.SVGProps<SVGSVGElement>) => {
3
+ return (
4
+ <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' {...props}>
5
+ <path d='M12 14.8V9.2a1 1 0 011.7-.7l3.5 3.5-3.5 3.5a1 1 0 01-1.7-.7z' />
6
+ <path fill='none' d='M0 0h24v24H0z' />
7
+ </svg>
8
+ );
9
+ };
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ export const component = (props: React.SVGProps<SVGSVGElement>) => {
3
+ return (
4
+ <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' {...props}>
5
+ <path d='M18.6 10.1L12 3.5l-6.6 6.6.7.7 5.4-5.3V21h1V5.5l5.4 5.3zM12 5z' />
6
+ <path fill='none' d='M0 0h24v24H0z' />
7
+ </svg>
8
+ );
9
+ };
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ export const component = (props: React.SVGProps<SVGSVGElement>) => {
3
+ return (
4
+ <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' {...props}>
5
+ <path d='M12 5.8l4.3 4.3-.7.7-3.1-3.1V17h-1V7.8l-3.1 3-.7-.7zM22 12A10 10 0 1112 2a10 10 0 0110 10zm-1 0a9 9 0 10-9 9 9 9 0 009-9z' />
6
+ <path fill='none' d='M0 0h24v24H0z' />
7
+ </svg>
8
+ );
9
+ };
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ export const component = (props: React.SVGProps<SVGSVGElement>) => {
3
+ return (
4
+ <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' {...props}>
5
+ <path d='M14.8 12H9.2a1 1 0 01-.7-1.7L12 6.8l3.5 3.5a1 1 0 01-.7 1.7z' />
6
+ <path fill='none' d='M0 0h24v24H0z' />
7
+ </svg>
8
+ );
9
+ };
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ export const component = (props: React.SVGProps<SVGSVGElement>) => {
3
+ return (
4
+ <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' {...props}>
5
+ <path d='M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zM5.2 17.6C3.8 16 3.1 14 3.1 11.9s.7-4.1 2.1-5.7l12.7 12.7C14 22 8.3 21.4 5.2 17.6zm13.4.5L5.9 5.4c3.7-3.3 9.4-3 12.7.7 3.1 3.4 3.1 8.6 0 12z' />
6
+ <path fill='none' d='M0 0h24v24H0z' />
7
+ </svg>
8
+ );
9
+ };
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ export const component = (props: React.SVGProps<SVGSVGElement>) => {
3
+ return (
4
+ <svg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' {...props}>
5
+ <path fill='none' d='M0 0h24v24H0z' />
6
+ <path d='M7.83 5.75a8 8 0 011.6.15 3.38 3.38 0 011.24.51c.345.233.62.554.8.93.202.456.298.952.28 1.45a2.68 2.68 0 01-.42 1.54 3.05 3.05 0 01-1.25 1 2.92 2.92 0 011.68 1.15c.393.59.59 1.29.56 2a3.39 3.39 0 01-.32 1.59 3.08 3.08 0 01-1 1.11 4.27 4.27 0 01-1.4.64A6 6 0 018 18H2V5.75h5.83zm-.35 5a2 2 0 001.19-.35c.328-.27.5-.687.46-1.11A1.47 1.47 0 009 8.54a1.16 1.16 0 00-.42-.43A1.8 1.8 0 008 7.9a3.26 3.26 0 00-.7-.06H4.74v2.87l2.74.04zm.15 5.22c.252.003.503-.02.75-.07a2 2 0 00.62-.3 1.39 1.39 0 00.44-.49 1.73 1.73 0 00.16-.8A1.64 1.64 0 009.09 13a2.33 2.33 0 00-1.41-.4H4.74v3.38l2.89-.01zm8.54-.08a2.18 2.18 0 001.58.54 2.24 2.24 0 001.25-.37 1.6 1.6 0 00.65-.79h2.15a4.06 4.06 0 01-1.58 2.29 4.64 4.64 0 01-2.58.69 5.23 5.23 0 01-1.9-.33 4 4 0 01-2.33-2.44 5.25 5.25 0 01-.32-1.89 5.12 5.12 0 01.33-1.86 4.14 4.14 0 01.93-1.49 4.48 4.48 0 011.44-1 4.59 4.59 0 011.85-.36 4.31 4.31 0 012 .44A4 4 0 0121 10.5c.37.505.636 1.08.78 1.69a6.18 6.18 0 01.17 2h-6.38a2.5 2.5 0 00.6 1.7zM19 11.22a1.83 1.83 0 00-1.38-.49 2 2 0 00-1 .2 1.8 1.8 0 00-.62.49 1.62 1.62 0 00-.33.62 2.87 2.87 0 00-.11.59h4a2.4 2.4 0 00-.56-1.41zm-3.93-4.65h4.98v1.21h-4.98V6.57z' />
7
+ </svg>
8
+ );
9
+ };
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ export const component = (props: React.SVGProps<SVGSVGElement>) => {
3
+ return (
4
+ <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' {...props}>
5
+ <path d='M18 22.7l-6-6-6 6V2h12v20.7zm-6-7.4l5 5V3H7v17.3l5-5z' />
6
+ <path fill='none' d='M0 0h24v24H0z' />
7
+ </svg>
8
+ );
9
+ };
@@ -0,0 +1,12 @@
1
+ import * as React from 'react';
2
+ export const component = (props: React.SVGProps<SVGSVGElement>) => {
3
+ return (
4
+ <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' {...props}>
5
+ <path d='M21 2H3v4h1v16h16V6h1V2zm-2 19H5V6h14v15zm1-16H4V3h16v2z' />
6
+ <path d='M8 8h8v1H8z' />
7
+ <g>
8
+ <path fill='none' d='M0 0h24v24H0z' />
9
+ </g>
10
+ </svg>
11
+ );
12
+ };
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ export const component = (props: React.SVGProps<SVGSVGElement>) => {
3
+ return (
4
+ <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' {...props}>
5
+ <path d='M22 5v1H2V5zM2 12.5h20v-1H2zM2 19h20v-1H2z' />
6
+ <path fill='none' d='M0 0h24v24H0z' />
7
+ </svg>
8
+ );
9
+ };
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ export const component = (props: React.SVGProps<SVGSVGElement>) => {
3
+ return (
4
+ <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' {...props}>
5
+ <path d='M20.5 4H17V3h-1v1H8V3H7v1H3.5A1.5 1.5 0 002 5.5v13A1.5 1.5 0 003.5 20h17a1.5 1.5 0 001.5-1.5v-13A1.5 1.5 0 0020.5 4zm.5 14.5a.5.5 0 01-.5.5h-17a.5.5 0 01-.5-.5v-13a.5.5 0 01.5-.5H7v1h1V5h8v1h1V5h3.5a.5.5 0 01.5.5zM4 8h16v1H4z' />
6
+ <path fill='none' d='M0 0h24v24H0z' />
7
+ </svg>
8
+ );
9
+ };
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ export const component = (props: React.SVGProps<SVGSVGElement>) => {
3
+ return (
4
+ <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' {...props}>
5
+ <path d='M20.5 20h-17A1.5 1.5 0 012 18.5v-10A1.5 1.5 0 013.5 7h4.3l1.5-2.3a1.5 1.5 0 011.2-.7h3a1.5 1.5 0 011.2.7L16.2 7h4.3A1.5 1.5 0 0122 8.5v10a1.5 1.5 0 01-1.5 1.5zM3.5 8a.5.5 0 00-.5.5v10a.5.5 0 00.5.5h17a.5.5 0 00.5-.5v-10a.5.5 0 00-.5-.5h-4.8l-1.8-2.8-.4-.2h-3l-.4.2L8.3 8zM12 18a5 5 0 115-5 5 5 0 01-5 5zm0-9a4 4 0 104 4 4 4 0 00-4-4zM7 5H4v1h3z' />
6
+ <path fill='none' d='M0 0h24v24H0z' />
7
+ </svg>
8
+ );
9
+ };
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ export const component = (props: React.SVGProps<SVGSVGElement>) => {
3
+ return (
4
+ <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' {...props}>
5
+ <path d='M20.5 5h-17A1.5 1.5 0 002 6.5v11A1.5 1.5 0 003.5 19h17a1.5 1.5 0 001.5-1.5v-11A1.5 1.5 0 0020.5 5zM3 9h18v3H3zm18 8.5a.5.5 0 01-.5.5h-17a.5.5 0 01-.5-.5V13h18zM3 8V6.5a.5.5 0 01.5-.5h17a.5.5 0 01.5.5V8zm5 7H4v-1h4z' />
6
+ <path fill='none' d='M0 0h24v24H0z' />
7
+ </svg>
8
+ );
9
+ };
@@ -0,0 +1,12 @@
1
+ import * as React from 'react';
2
+ export const component = (props: React.SVGProps<SVGSVGElement>) => {
3
+ return (
4
+ <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' {...props}>
5
+ <path d='M21 20v1H3V3h1v17z' />
6
+ <path d='M10.5 9.2l2.5 2.5 6-6v3.8h1V4h-5.5v1h3.8L13 10.3l-2.5-2.5-4.3 4.3.6.8z' />
7
+ <g>
8
+ <path fill='none' d='M0 0h24v24H0z' />
9
+ </g>
10
+ </svg>
11
+ );
12
+ };
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ export const component = (props: React.SVGProps<SVGSVGElement>) => {
3
+ return (
4
+ <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' {...props}>
5
+ <path d='M9.6 16.9L4 11.4l.8-.7 4.8 4.8 8.5-8.4.7.7z' />
6
+ <path fill='none' d='M0 0h24v24H0z' />
7
+ </svg>
8
+ );
9
+ };
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ export const component = (props: React.SVGProps<SVGSVGElement>) => {
3
+ return (
4
+ <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' {...props}>
5
+ <path d='M17.1 7.9l.7.7-7.8 7.6-4.7-4.6.7-.7 4 3.9zM22 12A10 10 0 1112 2a10 10 0 0110 10zm-1 0a9 9 0 10-9 9 9 9 0 009-9z' />
6
+ <path fill='none' d='M0 0h24v24H0z' />
7
+ </svg>
8
+ );
9
+ };
@@ -0,0 +1,8 @@
1
+ import * as React from 'react';
2
+ export const component = (props: React.SVGProps<SVGSVGElement>) => {
3
+ return (
4
+ <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' {...props}>
5
+ <path d='M14.6 17.2L9 11.6 14.6 6l.8.7-4.9 4.9 4.9 4.9z' />
6
+ </svg>
7
+ );
8
+ };
@@ -0,0 +1,8 @@
1
+ import * as React from 'react';
2
+ export const component = (props: React.SVGProps<SVGSVGElement>) => {
3
+ return (
4
+ <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' {...props}>
5
+ <path d='M9.8 17.2l-.8-.7 4.9-4.9L9 6.7l.8-.7 5.6 5.6z' />
6
+ </svg>
7
+ );
8
+ };
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ export const component = (props: React.SVGProps<SVGSVGElement>) => {
3
+ return (
4
+ <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' {...props}>
5
+ <path d='M11 22a2.9 2.9 0 01-3-3V6a4 4 0 018 0v10h-1V6a3 3 0 00-6 0v13a2 2 0 004 0V8a1 1 0 00-2 0v8h-1V8a2 2 0 014 0v11a2.9 2.9 0 01-3 3z' />
6
+ <path fill='none' d='M0 0h24v24H0z' />
7
+ </svg>
8
+ );
9
+ };
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ export const component = (props: React.SVGProps<SVGSVGElement>) => {
3
+ return (
4
+ <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' {...props}>
5
+ <path d='M11.5 5h1v7.5H7v-1h4.5zM22 12A10 10 0 1112 2a10 10 0 0110 10zm-1 0a9 9 0 10-9 9 9 9 0 009-9z' />
6
+ <path fill='none' d='M0 0h24v24H0z' />
7
+ </svg>
8
+ );
9
+ };
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ export const component = (props: React.SVGProps<SVGSVGElement>) => {
3
+ return (
4
+ <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' {...props}>
5
+ <path d='M12.7 12l3.7 3.6-.8.8-3.6-3.7-3.6 3.7-.8-.8 3.7-3.6-3.7-3.6.8-.8 3.6 3.7 3.6-3.7.8.8z' />
6
+ <path fill='none' d='M0 0h24v24H0z' />
7
+ </svg>
8
+ );
9
+ };
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ export const component = (props: React.SVGProps<SVGSVGElement>) => {
3
+ return (
4
+ <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' {...props}>
5
+ <path d='M12.7 12l6.7 6.6-.8.8-6.6-6.7-6.6 6.7-.8-.8 6.7-6.6-6.7-6.6.8-.8 6.6 6.7 6.6-6.7.8.8z' />
6
+ <path fill='none' d='M0 0h24v24H0z' />
7
+ </svg>
8
+ );
9
+ };
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ export const component = (props: React.SVGProps<SVGSVGElement>) => {
3
+ return (
4
+ <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' {...props}>
5
+ <path d='M16.3 8.3L12.6 12l3.7 3.6-.7.7-3.7-3.6-3.6 3.6-.7-.7 3.6-3.6-3.6-3.7.7-.7 3.6 3.7 3.7-3.7zM22 12A10 10 0 1112 2a10 10 0 0110 10zm-1 0a9 9 0 10-9 9 9 9 0 009-9z' />
6
+ <path fill='none' d='M0 0h24v24H0z' />
7
+ </svg>
8
+ );
9
+ };
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ export const component = (props: React.SVGProps<SVGSVGElement>) => {
3
+ return (
4
+ <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' {...props}>
5
+ <path d='M19 12l-2.9 2.9-.7-.8 2.1-2.1-2.1-2.1.7-.8zM7.9 9.1L5 12l2.9 2.9.7-.8L6.5 12l2.1-2.1zM22 12A10 10 0 1112 2a10 10 0 0110 10zm-1 0a9 9 0 10-9 9 9 9 0 009-9zM9.6 16.5l1 .3 3.7-9.3-.9-.3z' />
6
+ <path fill='none' d='M0 0h24v24H0z' />
7
+ </svg>
8
+ );
9
+ };
@@ -0,0 +1,8 @@
1
+ import * as React from 'react';
2
+ export const component = (props: React.SVGProps<SVGSVGElement>) => {
3
+ return (
4
+ <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' {...props}>
5
+ <path d='M16.5 15.4l-4.9-4.9-4.9 4.9-.7-.8L11.6 9l5.6 5.6z' />
6
+ </svg>
7
+ );
8
+ };
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ export const component = (props: React.SVGProps<SVGSVGElement>) => {
3
+ return (
4
+ <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' {...props}>
5
+ <path d='M19 3H5a2 2 0 00-2 2v10a2 2 0 002 2h2v5.4l1.7-1.7 3.7-3.7H19a2 2 0 002-2V5a2 2 0 00-2-2zm1 12a.9.9 0 01-1 1h-7l-4 4v-4H5a.9.9 0 01-1-1V5a.9.9 0 011-1h14a.9.9 0 011 1zM9 10a.9.9 0 01-1 1 .9.9 0 01-1-1 .9.9 0 011-1 .9.9 0 011 1zm4 0a1 1 0 01-2 0 1 1 0 012 0zm4 0a1 1 0 01-2 0 1 1 0 012 0z' />
6
+ <path fill='none' d='M0 0h24v24H0z' />
7
+ </svg>
8
+ );
9
+ };
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ export const component = (props: React.SVGProps<SVGSVGElement>) => {
3
+ return (
4
+ <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' {...props}>
5
+ <path d='M19.5 4H18v-.6A1.5 1.5 0 0016.5 2h-11A1.5 1.5 0 004 3.4v15.2A1.5 1.5 0 005.5 20H7v.6A1.5 1.5 0 008.5 22h11a1.5 1.5 0 001.5-1.4V5.4A1.5 1.5 0 0019.5 4zM5 18.6V3.4a.5.5 0 01.5-.4h11a.5.5 0 01.5.4v15.2a.5.5 0 01-.5.4h-11a.5.5 0 01-.5-.4zm15 2a.5.5 0 01-.5.4h-11a.5.5 0 01-.5-.4V20h8.5a1.5 1.5 0 001.5-1.4V5h1.5a.5.5 0 01.5.4z' />
6
+ <path fill='none' d='M0 0h24v24H0z' />
7
+ </svg>
8
+ );
9
+ };
@@ -0,0 +1,12 @@
1
+ import * as React from 'react';
2
+ export const component = (props: React.SVGProps<SVGSVGElement>) => {
3
+ return (
4
+ <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' {...props}>
5
+ <path d='M15.5 4v-.5c0-.8-.7-1.5-1.5-1.5h-4c-.8 0-1.5.7-1.5 1.5V4H3v1h2v15.5c0 .8.7 1.5 1.5 1.5h11c.8 0 1.5-.7 1.5-1.5V5h2V4h-5.5zm-6-.5c0-.3.2-.5.5-.5h4c.3 0 .5.2.5.5V4h-5v-.5zm8.5 17c0 .3-.2.5-.5.5h-11c-.3 0-.5-.2-.5-.5V5h12v15.5z' />
6
+ <path d='M11.5 8h1v10h-1zM8 8h1v10H8zM15 8h1v10h-1z' />
7
+ <g>
8
+ <path fill='none' d='M0 0h24v24H0z' />
9
+ </g>
10
+ </svg>
11
+ );
12
+ };
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ export const component = (props: React.SVGProps<SVGSVGElement>) => {
3
+ return (
4
+ <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' {...props}>
5
+ <path d='M8.7 20.2v-13h3.6v13.1l-3.6-.1zM23 10.1h-3.3v6.5c0 .2.1.4.3.6s.4.2.8.2h2.1l.2 2.8c-1.2.3-2.1.4-2.8.4-1.6 0-2.7-.3-3.3-1.1-.6-.7-.9-2-.9-3.9v-12h3.6v3.6H23v2.9zm-19.8 1c-.6 0-1.2-.2-1.6-.6-.4-.4-.6-.9-.6-1.5s.2-1.1.6-1.5c.4-.5.9-.7 1.6-.7s1.1.2 1.5.6c.4.5.6 1 .6 1.6s-.2 1.1-.6 1.5c-.4.4-.9.6-1.5.6z' />
6
+ <path fill='none' d='M0 0h24v24H0z' />
7
+ </svg>
8
+ );
9
+ };
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ export const component = (props: React.SVGProps<SVGSVGElement>) => {
3
+ return (
4
+ <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' {...props}>
5
+ <path d='M12 14.2L7.7 9.9l.7-.7 3.1 3.1V3h1v9.2l3.1-3 .7.7zm7-2.2v7.5a.5.5 0 01-.5.5h-13a.5.5 0 01-.5-.5V12H4v7.5A1.5 1.5 0 005.5 21h13a1.5 1.5 0 001.5-1.5V12z' />
6
+ <path fill='none' d='M0 0h24v24H0z' />
7
+ </svg>
8
+ );
9
+ };
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ export const component = (props: React.SVGProps<SVGSVGElement>) => {
3
+ return (
4
+ <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' {...props}>
5
+ <path d='M11.5 14.2V5.7h1.2v8.5zm-.1 4.1h1.2v-1.8h-1.2zM22 7.9v8.3L16.1 22H7.9L2 16.2V7.9L7.9 2h8.2zm-1 .4L15.7 3H8.3L3 8.3v7.5L8.3 21h7.4l5.3-5.2z' />
6
+ <path fill='none' d='M0 0h24v24H0z' />
7
+ </svg>
8
+ );
9
+ };
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ export const component = (props: React.SVGProps<SVGSVGElement>) => {
3
+ return (
4
+ <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' {...props}>
5
+ <path d='M12 2a10 10 0 1010 10A10 10 0 0012 2zm0 19a9 9 0 119-9 9 9 0 01-9 9zm5.1-8.9l.8.8-4.3 4.3a1.5 1.5 0 01-1.1.4 1.5 1.5 0 01-1.1-.4L9 14.7V17H8v-4h4v1H9.7l2.4 2.5h.8zm-6-4.6l-4.2 4.4-.8-.8 4.3-4.3a1.5 1.5 0 011.1-.4 1.5 1.5 0 011.1.4L15 9.3V7h1v4h-4v-1h2.3l-2.4-2.5h-.8z' />
6
+ <path fill='none' d='M0 0h24v24H0z' />
7
+ </svg>
8
+ );
9
+ };
@@ -0,0 +1,8 @@
1
+ import * as React from 'react';
2
+ export const component = (props: React.SVGProps<SVGSVGElement>) => {
3
+ return (
4
+ <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' {...props}>
5
+ <path d='M11.6 15.4L6 9.8l.7-.8 4.9 4.9L16.5 9l.7.8z' />
6
+ </svg>
7
+ );
8
+ };
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ export const component = (props: React.SVGProps<SVGSVGElement>) => {
3
+ return (
4
+ <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' {...props}>
5
+ <path d='M21 3v6h-1V4.7l-7.6 7.7-.8-.8L19.3 4H15V3zm-4 16.5a.5.5 0 01-.5.5h-12a.5.5 0 01-.5-.5v-12a.5.5 0 01.5-.5H12V6H4.5A1.5 1.5 0 003 7.5v12A1.5 1.5 0 004.5 21h12a1.5 1.5 0 001.5-1.5V12h-1z' />
6
+ <path fill='none' d='M0 0h24v24H0z' />
7
+ </svg>
8
+ );
9
+ };
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ export const component = (props: React.SVGProps<SVGSVGElement>) => {
3
+ return (
4
+ <svg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' {...props}>
5
+ <path fill='none' d='M0 0h24v24H0z' />
6
+ <path d='M13.55 22v-9.11h3.07l.46-3.56h-3.53V7.05c0-1 .29-1.73 1.77-1.73h1.87V2.14A25.14 25.14 0 0014.45 2c-2.72 0-4.58 1.66-4.58 4.7v2.62H6.81v3.57h3.06V22h3.68z' />
7
+ </svg>
8
+ );
9
+ };
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ export const component = (props: React.SVGProps<SVGSVGElement>) => {
3
+ return (
4
+ <svg viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg' {...props}>
5
+ <path fill='none' d='M0 0h24v24H0z' />
6
+ <path d='M20 3H4a1 1 0 00-1 1v16a1 1 0 001 1h8.63v-6.95h-2.37v-2.74h2.34v-2a3.28 3.28 0 013.5-3.6c.705 0 1.41.04 2.11.12v2.44h-1.44c-1.13 0-1.34.53-1.34 1.32v1.74h2.7l-.35 2.72h-2.35v7H20a1 1 0 001-1V4a1 1 0 00-1-1z' />
7
+ </svg>
8
+ );
9
+ };
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ export const component = (props: React.SVGProps<SVGSVGElement>) => {
3
+ return (
4
+ <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' {...props}>
5
+ <path d='M14.7 2H6.5A1.5 1.5 0 005 3.5v17A1.5 1.5 0 006.5 22h11a1.5 1.5 0 001.5-1.5V6.3zm.3 1.7L17.3 6h-1.8a.5.5 0 01-.5-.5zM17.5 21h-11a.5.5 0 01-.5-.5v-17a.5.5 0 01.5-.5H14v2.5A1.5 1.5 0 0015.5 7H18v13.5a.5.5 0 01-.5.5zM8 9h8v1H8zm0 2h8v1H8zm0 2h4v1H8z' />
6
+ <path fill='none' d='M0 0h24v24H0z' />
7
+ </svg>
8
+ );
9
+ };
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ export const component = (props: React.SVGProps<SVGSVGElement>) => {
3
+ return (
4
+ <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' {...props}>
5
+ <path d='M15.7 2H7.5A1.5 1.5 0 006 3.5V4h-.5A1.5 1.5 0 004 5.5v15A1.5 1.5 0 005.5 22h11a1.5 1.5 0 001.5-1.5V20h.5a1.5 1.5 0 001.5-1.5V6.3zm.3 1.7L18.3 6h-1.8a.5.5 0 01-.5-.5zm1 16.8a.5.5 0 01-.5.5h-11a.5.5 0 01-.5-.5v-15a.5.5 0 01.5-.5H6v13.5A1.5 1.5 0 007.5 20H17zm1.5-1.5h-11a.5.5 0 01-.5-.5v-15a.5.5 0 01.5-.5H15v2.5A1.5 1.5 0 0016.5 7H19v11.5a.5.5 0 01-.5.5zM9 9h8v1H9zm0 2h8v1H9zm0 2h4v1H9z' />
6
+ <path fill='none' d='M0 0h24v24H0z' />
7
+ </svg>
8
+ );
9
+ };
@@ -0,0 +1,9 @@
1
+ import * as React from 'react';
2
+ export const component = (props: React.SVGProps<SVGSVGElement>) => {
3
+ return (
4
+ <svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' {...props}>
5
+ <path d='M17.1 8l3.3-5H5V2H4v20h1v-9h15.4l-3.3-5zM5 4h13.6l-2.7 4 2.7 4H5V4z' />
6
+ <path fill='none' d='M0 0h24v24H0z' />
7
+ </svg>
8
+ );
9
+ };