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,48 @@
1
+ import React, { FC, HTMLAttributes, MouseEvent } from 'react';
2
+ import classNames from 'classnames';
3
+
4
+ import { Icon } from '../Icon/Icon';
5
+
6
+ export interface CardCategoryProps extends HTMLAttributes<HTMLElement> {
7
+ /** Mostra un'icona nella Card. Passare il nome dell'icona per utilizzarlo. */
8
+ iconName?: string;
9
+ /** Mostra la data nella Card. Passare una data già formattata come stringa. */
10
+ date?: string;
11
+ /** Se usato come link, passare l'URL target. */
12
+ href?: string;
13
+ /** Da utilizzare al posto di url quando la gestione del click è in JS */
14
+ onClick?: (event: MouseEvent<HTMLAnchorElement>) => void;
15
+ }
16
+
17
+ export const CardCategory: FC<CardCategoryProps> = ({
18
+ iconName,
19
+ date,
20
+ href,
21
+ onClick,
22
+ children,
23
+ ...rest
24
+ }) => {
25
+ const classes = classNames({
26
+ 'category-top': date || ' ',
27
+ 'categoryicon-top': iconName
28
+ });
29
+ // Simple category link
30
+ const categoryLink = !iconName && (
31
+ <a href={href} className='category' onClick={onClick}>
32
+ {children}
33
+ </a>
34
+ );
35
+ const categoryDate = date && <span className='data'>{date}</span>;
36
+ // Category with icon
37
+ const categoryText = iconName && <span className='text'>{children}</span>;
38
+ const categoryIcon = iconName && <Icon icon={iconName} />;
39
+
40
+ return (
41
+ <div className={classes} {...rest}>
42
+ {categoryLink}
43
+ {categoryIcon}
44
+ {categoryText}
45
+ {categoryDate}
46
+ </div>
47
+ );
48
+ };
@@ -0,0 +1,19 @@
1
+ import React, { FC, HTMLAttributes, ElementType } from 'react';
2
+ import classNames from 'classnames';
3
+
4
+ export interface CardFooterCTAProps extends HTMLAttributes<HTMLElement> {
5
+ /** Utilizzarlo in caso di utilizzo di componenti personalizzati */
6
+ tag?: ElementType;
7
+ /** Classi aggiuntive da usare per il componente CardFooterCTA*/
8
+ className?: string;
9
+ }
10
+
11
+ export const CardFooterCTA: FC<CardFooterCTAProps> = ({
12
+ className,
13
+ tag = 'div',
14
+ ...attributes
15
+ }) => {
16
+ const Tag = tag;
17
+ const classes = classNames(className, 'it-card-footer');
18
+ return <Tag className={classes} {...attributes} />;
19
+ };
@@ -0,0 +1,35 @@
1
+ import React, { FC, HTMLAttributes, ElementType } from 'react';
2
+ import classNames from 'classnames';
3
+
4
+ import { Icon } from '../Icon/Icon';
5
+
6
+ export interface CardReadMoreProps extends HTMLAttributes<HTMLElement> {
7
+ /** Utilizzarlo in caso di utilizzo di componenti personalizzati */
8
+ tag?: ElementType;
9
+ /** Classi aggiuntive da usare per il componente CardReadMore*/
10
+ className?: string;
11
+ /** Il contenuto in testo da mostrare */
12
+ text: string;
13
+ /** Passare l'URL target. */
14
+ href?: string;
15
+ /** Mostra un'icona nella Card per l'azione "Leggi di più". Passare il nome dell'icona per utilizzarlo. */
16
+ iconName?: string;
17
+ }
18
+
19
+ export const CardReadMore: FC<CardReadMoreProps> = ({
20
+ className,
21
+ text,
22
+ iconName = 'it-arrow-right',
23
+ tag = 'a',
24
+ href,
25
+ ...attributes
26
+ }) => {
27
+ const Tag = tag;
28
+ const classes = classNames(className, 'read-more');
29
+ return (
30
+ <Tag className={classes} href={href} {...attributes}>
31
+ <span className='text'>{text}</span>
32
+ {iconName && <Icon icon={iconName} />}
33
+ </Tag>
34
+ );
35
+ };
@@ -0,0 +1,19 @@
1
+ import React, { FC, HTMLAttributes, ElementType } from 'react';
2
+ import classNames from 'classnames';
3
+
4
+ export interface CardSignatureProps extends HTMLAttributes<HTMLElement> {
5
+ /** Utilizzarlo in caso di utilizzo di componenti personalizzati */
6
+ tag?: ElementType;
7
+ /** Classi aggiuntive da usare per il componente CardSignature*/
8
+ className?: string;
9
+ }
10
+
11
+ export const CardSignature: FC<CardSignatureProps> = ({
12
+ className,
13
+ tag = 'span',
14
+ ...attributes
15
+ }) => {
16
+ const Tag = tag;
17
+ const classes = classNames(className, 'card-signature');
18
+ return <Tag className={classes} {...attributes} />;
19
+ };
@@ -0,0 +1,19 @@
1
+ import React, { AnchorHTMLAttributes, FC, ElementType } from 'react';
2
+ import classNames from 'classnames';
3
+
4
+ export interface CardTagProps extends AnchorHTMLAttributes<HTMLAnchorElement> {
5
+ /** Utilizzarlo in caso di utilizzo di componenti personalizzati */
6
+ tag?: ElementType;
7
+ /** Classi aggiuntive da usare per il componente CardTag*/
8
+ className?: string;
9
+ }
10
+
11
+ export const CardTag: FC<CardTagProps> = ({
12
+ className,
13
+ tag = 'a',
14
+ ...attributes
15
+ }) => {
16
+ const Tag = tag;
17
+ const classes = classNames(className, 'card-tag');
18
+ return <Tag className={classes} {...attributes} />;
19
+ };
@@ -0,0 +1,28 @@
1
+ import React, { FC, HTMLAttributes, ElementType } from 'react';
2
+ import classNames from 'classnames';
3
+
4
+ export interface CardTagsHeaderProps extends HTMLAttributes<HTMLElement> {
5
+ /** Mostra la data nella Card. Passare una data già formattata come stringa. */
6
+ date?: string;
7
+ /** Utilizzarlo in caso di utilizzo di componenti personalizzati */
8
+ tag?: ElementType;
9
+ /** Classi aggiuntive da usare per il componente CardTagsHeader */
10
+ className?: string;
11
+ }
12
+
13
+ export const CardTagsHeader: FC<CardTagsHeaderProps> = ({
14
+ date,
15
+ children,
16
+ className,
17
+ tag = 'div',
18
+ ...attributes
19
+ }) => {
20
+ const Tag = tag;
21
+ const classes = classNames('head-tags', className);
22
+ return (
23
+ <Tag className={classes} {...attributes}>
24
+ {children}
25
+ {date && <span className='data'>{date}</span>}
26
+ </Tag>
27
+ );
28
+ };
@@ -0,0 +1,19 @@
1
+ import React, { FC, HTMLAttributes, ElementType } from 'react';
2
+ import { CardText as InnerCardText, CSSModule } from 'reactstrap';
3
+
4
+ // Note: this is a wrapper class around a reactstrap component.
5
+ // TODO: remove this class and restore the direct import when
6
+ // https://github.com/storybookjs/storybook/issues/10536 gets resolved
7
+
8
+ export interface CardTextProps extends HTMLAttributes<HTMLElement> {
9
+ /** Utilizzarlo in caso di utilizzo di componenti personalizzati */
10
+ tag?: ElementType;
11
+ /** Classi aggiuntive da usare per il componente CardText */
12
+ className?: string;
13
+ /** Oggetto contenente la nuova mappatura per le classi CSS. */
14
+ cssModule?: CSSModule;
15
+ }
16
+
17
+ export const CardText: FC<CardTextProps> = (props) => {
18
+ return <InnerCardText {...props} />;
19
+ };
@@ -0,0 +1,17 @@
1
+ import React, { FC, HTMLAttributes, ElementType } from 'react';
2
+ import { CardTitle as InnerCardTitle } from 'reactstrap';
3
+
4
+ // Note: this is a wrapper class around a reactstrap component.
5
+ // TODO: remove this class and restore the direct import when
6
+ // https://github.com/storybookjs/storybook/issues/10536 gets resolved
7
+
8
+ export interface CardTitleProps extends HTMLAttributes<HTMLElement> {
9
+ /** Utilizzarlo in caso di utilizzo di componenti personalizzati */
10
+ tag?: ElementType;
11
+ /** Classi aggiuntive da usare per il componente CardTitle */
12
+ className?: string;
13
+ }
14
+
15
+ export const CardTitle: FC<CardTitleProps> = (props) => {
16
+ return <InnerCardTitle {...props} />;
17
+ };
@@ -0,0 +1,37 @@
1
+ import React, { HTMLAttributes, FC, ElementType } from 'react';
2
+ import classNames from 'classnames';
3
+
4
+ export interface ChipProps extends HTMLAttributes<HTMLElement> {
5
+ /** Utilizzarlo in caso di utilizzo di componenti personalizzati */
6
+ tag?: ElementType;
7
+ /** Classi aggiuntive da usare per il componente Chip */
8
+ className?: string;
9
+ /** Impostarlo su `true` per centrare la label all'interno */
10
+ simple?: boolean;
11
+ /** Impostarlo su `true` per una versione più grande del componente Chip. */
12
+ large?: boolean;
13
+ /** Impostarlo su `true` per renderizzare il componente Chip come disabilitato */
14
+ disabled?: boolean;
15
+ /** Le varianti di colore definite in Bootstrap Italia */
16
+ color?: 'primary' | 'secondary' | 'success' | 'danger' | 'warning' | string;
17
+ }
18
+
19
+ export const Chip: FC<ChipProps> = ({
20
+ className,
21
+ color = '',
22
+ tag = 'div',
23
+ simple = false,
24
+ large = false,
25
+ disabled = false,
26
+ ...attributes
27
+ }) => {
28
+ const Tag = tag;
29
+ const classes = classNames('chip', className, {
30
+ 'chip-simple': simple,
31
+ 'chip-lg': large,
32
+ 'chip-disabled': disabled,
33
+ [`chip-${color}`]: color
34
+ });
35
+
36
+ return <Tag className={classes} {...attributes} />;
37
+ };
@@ -0,0 +1,19 @@
1
+ import React, { ElementType, FC, HTMLAttributes } from 'react';
2
+ import classNames from 'classnames';
3
+
4
+ export interface ChipLabelProps extends HTMLAttributes<HTMLElement> {
5
+ /** Utilizzarlo in caso di utilizzo di componenti personalizzati */
6
+ tag?: ElementType;
7
+ /** Classi aggiuntive da usare per il componente ChipLabel */
8
+ className?: string;
9
+ }
10
+
11
+ export const ChipLabel: FC<ChipLabelProps> = ({
12
+ className,
13
+ tag = 'span',
14
+ ...attributes
15
+ }) => {
16
+ const Tag = tag;
17
+ const classes = classNames(className, 'chip-label');
18
+ return <Tag {...attributes} className={classes} />;
19
+ };
@@ -0,0 +1,100 @@
1
+ import React, { ElementType, FC, HTMLAttributes, Ref } from 'react';
2
+ import classNames from 'classnames';
3
+
4
+ import { Collapse as CollapseBase, CSSModule } from 'reactstrap';
5
+
6
+ // Copy over from reactstrap and add new ones
7
+ export interface CollapseProps extends HTMLAttributes<HTMLElement> {
8
+ /** Indica se il menu HeaderNav sia aperto o meno. Usato unicamente nel caso della HeaderNav, ovvero con navbar e header entrambi true */
9
+ isOpen?: boolean;
10
+ /** Oggetto contenente la nuova mappatura per le classi CSS. */
11
+ cssModule?: CSSModule;
12
+ /** Utilizzarlo in caso di utilizzo di componenti personalizzati */
13
+ tag?: ElementType;
14
+ /** Indica se il componente Collapse è usato all'interno di un componente navbar */
15
+ navbar?: boolean;
16
+ /** Indica se il componente Collapse ha al suo interno un Megamenu */
17
+ megamenu?: boolean;
18
+ /** Indica se il componente Collapse è usato all'interno di un componente Header */
19
+ header?: boolean;
20
+ delay?: {
21
+ show: number;
22
+ hide: number;
23
+ };
24
+ /** Funzione chiamata all'apertura del componente Collapse */
25
+ onOpened?: () => void;
26
+ /** Funzione chiamata alla chiusura del componente Collapse */
27
+ onClosed?: () => void;
28
+ /** Funzione chiamata durante la trasizione di apertura del componente Collapse */
29
+ onEntering?: () => void;
30
+ /** Funzione chiamata al termine della trasizione di apertura del componente Collapse */
31
+ onEntered?: () => void;
32
+ onExit?: () => void;
33
+ /** Funzione chiamata durante la trasizione di chiusura del componente Collapse */
34
+ onExiting?: () => void;
35
+ /** Funzione chiamata al termine della trasizione di chiusura del componente Collapse */
36
+ onExited?: () => void;
37
+ /** Funzione chiamata su click di overlay dell'HeaderNav aperto. Usato unicamente nel caso della HeaderNav, ovvero con navbar e header entrambi true */
38
+ onOverlayClick?: () => void;
39
+ /** Da utilizzare per impostare un riferimento all'elemento DOM */
40
+ innerRef?: Ref<HTMLElement>;
41
+ }
42
+
43
+ export const Collapse: FC<CollapseProps> = ({
44
+ header = false,
45
+ className,
46
+ navbar,
47
+ megamenu,
48
+ children,
49
+ isOpen = false,
50
+ onOverlayClick,
51
+ cssModule,
52
+ ...attributes
53
+ }) => {
54
+ const newCssModule = {
55
+ 'navbar-collapse': 'navbar-collapsable',
56
+ ...cssModule
57
+ };
58
+ if (megamenu || navbar || header) {
59
+ const classes = classNames(className, 'navbar-collapse', {
60
+ expanded: isOpen
61
+ });
62
+ const style = { display: isOpen ? 'block' : 'none' };
63
+ return (
64
+ <CollapseBase
65
+ className={classes}
66
+ cssModule={newCssModule}
67
+ navbar={navbar}
68
+ style={style}
69
+ {...attributes}
70
+ >
71
+ <div className='overlay' style={style} onClick={onOverlayClick}></div>
72
+ <div className='close-div sr-only'>
73
+ <button className='btn close-menu' type='button'>
74
+ <span className='it-close'></span>close
75
+ </button>
76
+ </div>
77
+ {megamenu ? (
78
+ <div className='menu-wrapper'>{children}</div>
79
+ ) : (
80
+ <>{children}</>
81
+ )}
82
+ </CollapseBase>
83
+ );
84
+ }
85
+ const classes = classNames(className, {
86
+ 'link-list-wrapper': header
87
+ });
88
+
89
+ return (
90
+ <CollapseBase
91
+ className={classes}
92
+ cssModule={newCssModule}
93
+ {...attributes}
94
+ navbar={navbar}
95
+ isOpen={isOpen}
96
+ >
97
+ {children}
98
+ </CollapseBase>
99
+ );
100
+ };
@@ -0,0 +1,19 @@
1
+ import React, { ElementType, FC, HTMLAttributes } from 'react';
2
+ import classNames from 'classnames';
3
+
4
+ export interface CookieBarProps extends HTMLAttributes<HTMLElement> {
5
+ /** Utilizzarlo in caso di utilizzo di componenti personalizzati */
6
+ tag?: ElementType;
7
+ /** Classi aggiuntive da usare per il componente Cookie */
8
+ className?: string;
9
+ }
10
+
11
+ export const CookieBar: FC<CookieBarProps> = ({
12
+ tag = 'div',
13
+ className,
14
+ ...attributes
15
+ }) => {
16
+ const Tag = tag;
17
+ const wrapperClasses = classNames('cookiebar show', className);
18
+ return <Tag {...attributes} className={wrapperClasses} />;
19
+ };
@@ -0,0 +1,27 @@
1
+ import React, {
2
+ ElementType,
3
+ FC,
4
+ ButtonHTMLAttributes,
5
+ AnchorHTMLAttributes
6
+ } from 'react';
7
+ import classNames from 'classnames';
8
+
9
+ export type CookieBarButtonProps = {
10
+ /** Utilizzarlo in caso di utilizzo di componenti personalizzati */
11
+ tag?: ElementType;
12
+ /** Classi aggiuntive da usare per il componente CookieBarButton */
13
+ className?: string;
14
+ } & (
15
+ | ButtonHTMLAttributes<HTMLButtonElement>
16
+ | AnchorHTMLAttributes<HTMLAnchorElement>
17
+ );
18
+
19
+ export const CookieBarButton: FC<CookieBarButtonProps> = ({
20
+ tag = 'button',
21
+ className,
22
+ ...attributes
23
+ }) => {
24
+ const Tag = tag;
25
+ const activeClass = classNames(className, 'cookiebar-btn');
26
+ return <Tag className={activeClass} {...attributes} />;
27
+ };
@@ -0,0 +1,19 @@
1
+ import React, { ElementType, FC, HTMLAttributes } from 'react';
2
+ import classNames from 'classnames';
3
+
4
+ export interface CookieBarButtonsProps extends HTMLAttributes<HTMLElement> {
5
+ /** Utilizzarlo in caso di utilizzo di componenti personalizzati */
6
+ tag?: ElementType;
7
+ /** Classi aggiuntive da usare per il componente CookieBarButtons */
8
+ className?: string;
9
+ }
10
+
11
+ export const CookieBarButtons: FC<CookieBarButtonsProps> = ({
12
+ className,
13
+ tag = 'div',
14
+ ...attributes
15
+ }) => {
16
+ const Tag = tag;
17
+ const buttonClasses = classNames(className, 'cookiebar-buttons');
18
+ return <Tag className={buttonClasses} {...attributes} />;
19
+ };
@@ -0,0 +1,51 @@
1
+ import React, { FC, HTMLAttributes } from 'react';
2
+ import classNames from 'classnames';
3
+
4
+ import { Icon } from '../Icon/Icon';
5
+
6
+ export interface DimmerProps extends HTMLAttributes<HTMLElement> {
7
+ /** Il nome dell'icona da mostrare. Per una lista completa vedi: @TODO-URL */
8
+ icon?: string;
9
+ /** Le varianti di colore definite in Bootstrap Italia */
10
+ color?: 'success' | 'warning' | 'danger' | 'note' | 'important' | string;
11
+ /** Classi aggiuntive da usare per il componente Dimmer */
12
+ className?: string;
13
+ /**
14
+ * Classi aggiuntive da usare per il componente contenitore del Dimmer
15
+ * Per replicare il comportamento precedente, in cui `className` veniva applicato anche al wrapper,
16
+ * passare `true`.
17
+ * */
18
+ wrapperClassName?: string | true;
19
+ }
20
+
21
+ export const Dimmer: FC<DimmerProps> = ({
22
+ icon,
23
+ color,
24
+ className,
25
+ wrapperClassName,
26
+ ...attributes
27
+ }) => {
28
+ const { children, ...rest } = attributes;
29
+ const classes = classNames(
30
+ 'dimmer',
31
+ wrapperClassName === true ? className : wrapperClassName,
32
+ {
33
+ [`dimmer-${color}`]: color
34
+ }
35
+ );
36
+ const innerClasses = classNames('dimmer-inner', className);
37
+ const dimmerIcon = icon && (
38
+ <div className='dimmer-icon'>
39
+ <Icon icon={icon} />
40
+ </div>
41
+ );
42
+
43
+ return (
44
+ <div className={classes} {...rest} style={{ display: 'flex' }}>
45
+ <div className={innerClasses} {...rest}>
46
+ {dimmerIcon}
47
+ {children}
48
+ </div>
49
+ </div>
50
+ );
51
+ };
@@ -0,0 +1,35 @@
1
+ import React, { FC, HTMLAttributes } from 'react';
2
+ import classNames from 'classnames';
3
+
4
+ export interface DimmerButtonsProps extends HTMLAttributes<HTMLElement> {
5
+ /** Le varianti di colore definite in Bootstrap Italia per il componente Dimmer */
6
+ color?: 'primary' | string;
7
+ /** Classi aggiuntive da usare per il componente Dimmer */
8
+ className?: string;
9
+ /** Da utilizzare in presenza di un singolo bottone: quando abilitato ne centra il contenuto. */
10
+ single?: boolean;
11
+ /** Da utilizzare con `false` per abilitare il precedente comportamento senza sfondo scuro.
12
+ * @deprecated
13
+ */
14
+ dark?: boolean;
15
+ }
16
+
17
+ export const DimmerButtons: FC<DimmerButtonsProps> = ({
18
+ color,
19
+ className,
20
+ single = false,
21
+ dark = true,
22
+ ...attributes
23
+ }) => {
24
+ const { children, ...rest } = attributes;
25
+ const classes = classNames('dimmer-buttons', className, {
26
+ 'bg-dark': dark,
27
+ 'single-button': single
28
+ });
29
+
30
+ return (
31
+ <div className={classes} {...rest}>
32
+ {children}
33
+ </div>
34
+ );
35
+ };
@@ -0,0 +1,32 @@
1
+ import { Component } from 'react';
2
+
3
+ export interface FontLoaderProps {
4
+ /**
5
+ * Una lista di font aggiuntivi da caricare.
6
+ * I font di default Titillium Web, Lora and Roboto Mono vengono aggiunti a questa lista e caricati sempre.
7
+ * */
8
+ fonts?: string[];
9
+ }
10
+
11
+ const defaultFonts = [
12
+ 'Titillium Web:300,400,600,700:latin-ext',
13
+ 'Lora:400,700:latin-ext',
14
+ 'Roboto Mono:400,700:latin-ext'
15
+ ];
16
+
17
+ export class FontLoader extends Component<FontLoaderProps> {
18
+ componentDidMount() {
19
+ if (typeof window !== 'undefined') {
20
+ const WebFont = require('webfontloader');
21
+ WebFont.load({
22
+ custom: {
23
+ families: [...defaultFonts, ...(this.props.fonts || [])]
24
+ }
25
+ });
26
+ }
27
+ }
28
+
29
+ render() {
30
+ return null;
31
+ }
32
+ }
@@ -0,0 +1,40 @@
1
+ import React, { FC, AnchorHTMLAttributes, MutableRefObject } from 'react';
2
+ import classNames from 'classnames';
3
+
4
+ // SSR does have no access to the Element global variable, so mock it
5
+ if (typeof window === 'undefined') {
6
+ global.Element =
7
+ typeof Element === 'undefined'
8
+ ? (function () {} as typeof Element)
9
+ : Element;
10
+ }
11
+
12
+ export interface ForwardProps extends AnchorHTMLAttributes<HTMLAnchorElement> {
13
+ /** Classi aggiuntive da usare per il componente Forward */
14
+ className?: string;
15
+ /** Riferimento al nodo a cui scorrere quando premuto */
16
+ scrollToRef: MutableRefObject<Element>;
17
+ }
18
+
19
+ export const Forward: FC<ForwardProps> = ({
20
+ className,
21
+ scrollToRef,
22
+ children,
23
+ ...attributes
24
+ }) => {
25
+ const classes = classNames(className, 'forward');
26
+ return (
27
+ <a
28
+ className={classes}
29
+ onClick={() =>
30
+ scrollToRef.current.scrollIntoView({
31
+ behavior: 'smooth',
32
+ block: 'start'
33
+ })
34
+ }
35
+ {...attributes}
36
+ >
37
+ {children}
38
+ </a>
39
+ );
40
+ };
@@ -0,0 +1,23 @@
1
+ import React, { ElementType, FC, HTMLAttributes } from 'react';
2
+ import classname from 'classnames';
3
+
4
+ export interface GridItemProps extends HTMLAttributes<HTMLSpanElement> {
5
+ /** Classi aggiuntive da usare per il componente LinkListItem */
6
+ className?: string;
7
+ /** Indica il tag da utilizzare per il titolo */
8
+ tag?: ElementType;
9
+ }
10
+
11
+ export const GridItem: FC<GridItemProps> = ({
12
+ tag: Tag = 'div',
13
+ className,
14
+ children,
15
+ ...attributes
16
+ }) => {
17
+ const classes = classname('it-grid-item-wrapper', className);
18
+ return (
19
+ <Tag {...attributes} className={classes}>
20
+ {children}
21
+ </Tag>
22
+ );
23
+ };
@@ -0,0 +1,20 @@
1
+ import React, { FC, HTMLAttributes } from 'react';
2
+ import classname from 'classnames';
3
+
4
+ export interface GridItemTextProps extends HTMLAttributes<HTMLSpanElement> {
5
+ /** Classi aggiuntive da usare per l'elemento */
6
+ className?: string;
7
+ }
8
+
9
+ export const GridItemText: FC<GridItemTextProps> = ({
10
+ className,
11
+ children,
12
+ ...attributes
13
+ }) => {
14
+ const classes = classname('it-griditem-text', className);
15
+ return (
16
+ <span {...attributes} className={classes}>
17
+ {children}
18
+ </span>
19
+ );
20
+ };
@@ -0,0 +1,21 @@
1
+ import React, { FC, HTMLAttributes } from 'react';
2
+ import classname from 'classnames';
3
+
4
+ export interface GridItemTextWrapperProps
5
+ extends HTMLAttributes<HTMLSpanElement> {
6
+ /** Classi aggiuntive da usare per l'elemento */
7
+ className?: string;
8
+ }
9
+
10
+ export const GridItemTextWrapper: FC<GridItemTextWrapperProps> = ({
11
+ className,
12
+ children,
13
+ ...attributes
14
+ }) => {
15
+ const classes = classname('it-griditem-text-wrapper', className);
16
+ return (
17
+ <span {...attributes} className={classes}>
18
+ {children}
19
+ </span>
20
+ );
21
+ };