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,30 @@
1
+ import React, { FC, HTMLAttributes, ElementType } from 'react';
2
+ import classNames from 'classnames';
3
+
4
+ export interface StepperContainerProps extends HTMLAttributes<HTMLElement> {
5
+ /** Utilizzarlo in caso di utilizzo di componenti personalizzati */
6
+ tag?: ElementType;
7
+ /** Classi aggiuntive da usare per il componente Badge */
8
+ className?: string;
9
+ /** Abilita il tema scuro per il componente Stepper */
10
+ dark?: boolean;
11
+ /** Abilita la navigazione per mobile */
12
+ mobile?: boolean;
13
+ }
14
+
15
+ export const StepperContainer: FC<StepperContainerProps> = ({
16
+ tag = 'div',
17
+ mobile,
18
+ dark,
19
+ className,
20
+ ...attributes
21
+ }) => {
22
+ const Tag = tag;
23
+ const wrapperClass = classNames(
24
+ 'steppers',
25
+ className,
26
+ { 'bg-dark': dark },
27
+ { 'mobile-examples': mobile }
28
+ );
29
+ return <Tag {...attributes} className={wrapperClass} />;
30
+ };
@@ -0,0 +1,51 @@
1
+ import React, { FC, HTMLAttributes, ElementType } from 'react';
2
+ import classNames from 'classnames';
3
+
4
+ export interface StepperContentProps extends HTMLAttributes<HTMLElement> {
5
+ /** Utilizzarlo in caso di utilizzo di componenti personalizzati */
6
+ tag?: ElementType;
7
+ /** Classi aggiuntive da usare per il componente Badge */
8
+ className?: string;
9
+ /** Abilita il tema scuro per il componente StepperContent */
10
+ dark?: boolean;
11
+ }
12
+
13
+ const contentStyleLight = {
14
+ height: '400px',
15
+ border: '2px dashed #eee',
16
+ background: '#fafafa',
17
+ display: 'flex',
18
+ justifyContent: 'center',
19
+ alignItems: 'center',
20
+ color: '#333'
21
+ };
22
+
23
+ const contentStyleDark = {
24
+ height: '400px',
25
+ border: '2px dashed #eee',
26
+ display: 'flex',
27
+ justifyContent: 'center',
28
+ alignItems: 'center',
29
+ color: '#EEE',
30
+ borderColor: '#aaa',
31
+ background: '#17324d',
32
+ opacity: 0.5
33
+ };
34
+
35
+ export const StepperContent: FC<StepperContentProps> = ({
36
+ tag = 'div',
37
+ className,
38
+ dark,
39
+ ...attributes
40
+ }) => {
41
+ const Tag = tag;
42
+ const classes = classNames('steppers-content', classNames);
43
+ return (
44
+ <Tag
45
+ {...attributes}
46
+ className={classes}
47
+ style={(dark && contentStyleDark) || contentStyleLight}
48
+ aria-live='polite'
49
+ />
50
+ );
51
+ };
@@ -0,0 +1,21 @@
1
+ import React, { FC, HTMLAttributes, ElementType } from 'react';
2
+ import classNames from 'classnames';
3
+
4
+ export interface StepperDotsProps extends HTMLAttributes<HTMLElement> {
5
+ /** Utilizzarlo in caso di utilizzo di componenti personalizzati */
6
+ tag?: ElementType;
7
+ /** Classi aggiuntive da usare per il componente Badge */
8
+ className?: string;
9
+ /** Abilita il tema scuro per il componente StepperDots */
10
+ dark?: boolean;
11
+ }
12
+
13
+ export const StepperDots: FC<StepperDotsProps> = ({
14
+ tag = 'ul',
15
+ className,
16
+ ...attributes
17
+ }) => {
18
+ const Tag = tag;
19
+ const wrapperClass = classNames('steppers-dots', className);
20
+ return <Tag {...attributes} className={wrapperClass} />;
21
+ };
@@ -0,0 +1,19 @@
1
+ import React, { FC, HTMLAttributes, ElementType } from 'react';
2
+ import classNames from 'classnames';
3
+
4
+ export interface StepperHeaderProps extends HTMLAttributes<HTMLElement> {
5
+ /** Utilizzarlo in caso di utilizzo di componenti personalizzati */
6
+ tag?: ElementType;
7
+ /** Classi aggiuntive da usare per il componente StepperHeader */
8
+ className?: string;
9
+ }
10
+
11
+ export const StepperHeader: FC<StepperHeaderProps> = ({
12
+ tag = 'ul',
13
+ className,
14
+ ...attributes
15
+ }) => {
16
+ const Tag = tag;
17
+ const wrapperClass = classNames('steppers-header', className);
18
+ return <Tag {...attributes} className={wrapperClass} />;
19
+ };
@@ -0,0 +1,77 @@
1
+ import React, { FC, HTMLAttributes, ElementType, ReactNode } from 'react';
2
+ import classNames from 'classnames';
3
+ import { Icon } from '../Icon/Icon';
4
+
5
+ const variants = {
6
+ confirmed: 'confirmed',
7
+ active: 'active',
8
+ done: 'done',
9
+ mobile: 'steppers-index',
10
+ // @deprecated
11
+ 'steppers-index': 'steppers-index'
12
+ } as const;
13
+
14
+ export interface StepperHeaderElementProps
15
+ extends HTMLAttributes<HTMLLIElement> {
16
+ /** Utilizzarlo in caso di utilizzo di componenti personalizzati */
17
+ tag?: ElementType;
18
+ /** Classi aggiuntive da usare per il componente StepperHeader */
19
+ className?: string;
20
+ /**
21
+ * Il tipo di step:
22
+ * * confirmed (confermato),
23
+ * * active (attivo - su mobile viene mostrato solo questo)
24
+ * * done (completato)
25
+ * * mobile (visibile solo su mobile, usato per mostrare lo stato attuale di progresso)
26
+ * * steppers-index (deprecato) usare mobile
27
+ * */
28
+ variant?: keyof typeof variants;
29
+ /** Icona da mostrare alla destra dell'etichetta dello step */
30
+ appendIcon?: string;
31
+ /** Icona da mostrare alla sinistra dell'etichetta dello step */
32
+ prependIcon?: string;
33
+ /** Utilizzare questo attributo per elementi aggiuntivi da mostrare su dispositivi mobile per lo step attivo */
34
+ stepperNumber?: ReactNode;
35
+ /** Nasconde il bordo inferiore azzurro per lo step */
36
+ noLine?: boolean;
37
+ /** @deprecated Usare `appendIcon` */
38
+ icon?: string;
39
+ /** @deprecated Usare `prependIcon` */
40
+ iconName?: string;
41
+ }
42
+
43
+ export const StepperHeaderElement: FC<StepperHeaderElementProps> = ({
44
+ tag = 'li',
45
+ variant,
46
+ appendIcon,
47
+ prependIcon,
48
+ icon,
49
+ iconName,
50
+ noLine,
51
+ stepperNumber,
52
+ children,
53
+ className,
54
+ ...attributes
55
+ }) => {
56
+ const Tag = tag;
57
+ const wrapperClasses = classNames(
58
+ variant ? variants[variant] : '',
59
+ className,
60
+ {
61
+ 'no-line': noLine
62
+ }
63
+ );
64
+ const iconClass = classNames('icon', 'steppers-success');
65
+ const spanClass = classNames('steppers-number');
66
+
67
+ const iconToAppend = appendIcon || icon;
68
+ const iconToPepend = prependIcon || iconName;
69
+ return (
70
+ <Tag {...attributes} className={wrapperClasses}>
71
+ {iconToPepend && <Icon icon={iconToPepend} />}
72
+ {stepperNumber && <span className={spanClass}>{stepperNumber}</span>}
73
+ {children}
74
+ {iconToAppend && <Icon icon={iconToAppend} className={iconClass} />}
75
+ </Tag>
76
+ );
77
+ };
@@ -0,0 +1,19 @@
1
+ import React, { FC, HTMLAttributes, ElementType } from 'react';
2
+ import classNames from 'classnames';
3
+
4
+ export interface StepperNavProps extends HTMLAttributes<HTMLElement> {
5
+ /** Utilizzarlo in caso di utilizzo di componenti personalizzati */
6
+ tag?: ElementType;
7
+ /** Classi aggiuntive da usare per il componente Badge */
8
+ className?: string;
9
+ }
10
+
11
+ export const StepperNav: FC<StepperNavProps> = ({
12
+ tag = 'nav',
13
+ className,
14
+ ...attributes
15
+ }) => {
16
+ const Tag = tag;
17
+ const wrapperClass = classNames('steppers-nav', className);
18
+ return <Tag {...attributes} className={wrapperClass} />;
19
+ };
@@ -0,0 +1,37 @@
1
+ import React, { FC, HTMLAttributes } from 'react';
2
+ import classNames from 'classnames';
3
+
4
+ export interface ThumbNavProps extends HTMLAttributes<HTMLUListElement> {
5
+ fixedWidth?: boolean;
6
+ isSmall?: boolean;
7
+ isVertical?: boolean;
8
+ noZoomOnHover?: boolean;
9
+ overlayOnHover?: 'black' | 'primary';
10
+ position?: 'top' | 'right' | 'bottom' | 'left';
11
+ rowItems?: 2 | 3 | 4 | 5;
12
+ }
13
+
14
+ export const ThumbNav: FC<ThumbNavProps> = ({
15
+ isSmall = false,
16
+ fixedWidth = false,
17
+ isVertical = false,
18
+ noZoomOnHover = false,
19
+ rowItems,
20
+ overlayOnHover,
21
+ position,
22
+ ...attributes
23
+ }) => {
24
+ const classes = classNames('thumb-nav', {
25
+ 'thumb-nav-fixed': fixedWidth,
26
+ 'thumb-nav-small': isSmall,
27
+ 'thumb-nav-vertical':
28
+ isVertical || position === 'left' || position === 'right',
29
+ 'thumb-nav-nozoom': noZoomOnHover,
30
+ [`thumb-nav-${overlayOnHover}`]: overlayOnHover,
31
+ [`thumb-nav-${position}`]: position,
32
+ 'thumb-nav-auto': rowItems != null,
33
+ [`thumb-nav-auto-${rowItems}`]: rowItems != null
34
+ });
35
+
36
+ return <ul className={classes} {...attributes} />;
37
+ };
@@ -0,0 +1,35 @@
1
+ import React, { FC, HTMLAttributes } from 'react';
2
+ import classNames from 'classnames';
3
+
4
+ import resizer from 'bootstrap-italia/dist/assets/resizer-3x2.svg';
5
+
6
+ export interface ThumbNavItemProps extends HTMLAttributes<HTMLLIElement> {
7
+ active?: boolean;
8
+ targetUrl?: string;
9
+ imageUrl: string;
10
+ actionDescription?: string;
11
+ }
12
+
13
+ export const ThumbNavItem: FC<ThumbNavItemProps> = ({
14
+ active = false,
15
+ targetUrl,
16
+ imageUrl,
17
+ actionDescription,
18
+ ...attributes
19
+ }) => {
20
+ const classes = classNames({ active: active });
21
+
22
+ return (
23
+ <li {...attributes}>
24
+ <img
25
+ src={resizer}
26
+ className='thumb-nav-resizer'
27
+ aria-hidden='true'
28
+ alt=''
29
+ />
30
+ <a href={targetUrl} className={classes}>
31
+ <img src={imageUrl} alt={actionDescription} />
32
+ </a>
33
+ </li>
34
+ );
35
+ };
@@ -0,0 +1,67 @@
1
+ import React, { FC, HTMLAttributes } from 'react';
2
+ import classNames from 'classnames';
3
+
4
+ import { Icon } from '../Icon/Icon';
5
+
6
+ export interface TimelinePinProps extends HTMLAttributes<HTMLElement> {
7
+ /** Classi aggiuntive da usare per il componente TimelinePin */
8
+ className?: string;
9
+ /** Mostra un'icona all'interno del TimelinePin. Passare il nome dell'icona per utilizzarlo. */
10
+ iconName?: string;
11
+ /**
12
+ * Mostra un'icona all'interno del TimelinePin. Passare il nome dell'icona per utilizzarlo.
13
+ * @deprecated. Utilizzare `iconName`.
14
+ * */
15
+ icon?: string;
16
+ /** Etichetta da associare all'elemento */
17
+ label: string;
18
+ /** Quando abilitato indica che l'evento TimelinePin è collocato nel presente (azzurro) */
19
+ now?: boolean;
20
+ /** Da utilizzare per mostrare un'etichetta per l'evento nel presente */
21
+ nowText?: string;
22
+ /** Quando abilitato indica che l'evento TimelinePin è collocato nel passato (blu scuro) */
23
+ past?: boolean;
24
+ }
25
+
26
+ export const TimelinePin: FC<TimelinePinProps> = ({
27
+ iconName = 'it-code-circle',
28
+ icon = 'it-code-circle',
29
+ label = ' ',
30
+ past,
31
+ now,
32
+ nowText,
33
+ className,
34
+ ...attributes
35
+ }) => {
36
+ const { children, ...rest } = attributes;
37
+ const classes = classNames('timeline-element', className);
38
+ const innerClasses = classNames('it-pin-wrapper', className, {
39
+ 'it-evidence': past,
40
+ 'it-now': now
41
+ });
42
+ const pinIcon = (
43
+ <div className='pin-icon'>
44
+ <Icon icon={iconName || icon} />
45
+ </div>
46
+ );
47
+ const pinLabel = (
48
+ <div className='pin-text'>
49
+ <span>{label}</span>
50
+ </div>
51
+ );
52
+
53
+ const pinTextNow = now && (
54
+ <span className='it-now-label d-none d-lg-flex'>{nowText}</span>
55
+ );
56
+
57
+ return (
58
+ <div className={classes}>
59
+ {pinTextNow}
60
+ <div className={innerClasses} {...rest}>
61
+ {pinIcon}
62
+ {pinLabel}
63
+ </div>
64
+ {children}
65
+ </div>
66
+ );
67
+ };
@@ -0,0 +1,19 @@
1
+ import React, { FC, HTMLAttributes } from 'react';
2
+ import classnames from 'classnames';
3
+
4
+ export interface TimelineProps extends HTMLAttributes<HTMLElement> {
5
+ /** Classi aggiuntive da usare per il componente TimelineProps */
6
+ className?: string;
7
+ }
8
+
9
+ export const Timeline: FC<TimelineProps> = (props) => {
10
+ const { className, ...attributes } = props;
11
+ const { children, ...rest } = attributes;
12
+ const timelineWrapper = classnames(className, 'it-timeline-wrapper');
13
+
14
+ return (
15
+ <div className={timelineWrapper} {...rest}>
16
+ {children}
17
+ </div>
18
+ );
19
+ };
@@ -0,0 +1,29 @@
1
+ import React, { ElementType, FC, ReactNode } from 'react';
2
+
3
+ import { Label, Input, CSSModule } from 'reactstrap';
4
+ import { InputProps } from '../Input/Input';
5
+
6
+ export interface ToggleProps extends InputProps {
7
+ /** Label da mostrare per il componente */
8
+ label: string | ReactNode;
9
+ /** Dimensioni ammissibili per il componente */
10
+ bsSize?: 'lg' | 'sm';
11
+ /** Utilizzarlo in caso di utilizzo di componenti personalizzati */
12
+ tag?: ElementType;
13
+ /** Da utilizzare per impostare un riferimento all'elemento DOM */
14
+ innerRef?: React.Ref<HTMLInputElement>;
15
+ /** Oggetto contenente la nuova mappatura per le classi CSS. */
16
+ cssModule?: CSSModule;
17
+ }
18
+
19
+ export const Toggle: FC<ToggleProps> = ({ label, ...rest }) => {
20
+ return (
21
+ <div className='toggles'>
22
+ <Label check>
23
+ {label}
24
+ <Input {...rest} type='checkbox' />
25
+ <span className='lever' />
26
+ </Label>
27
+ </div>
28
+ );
29
+ };
@@ -0,0 +1,28 @@
1
+ import React, { ElementType, FC, HTMLAttributes, createContext } from 'react';
2
+ import classnames from 'classnames';
3
+
4
+ export const SizeContext = createContext<ToolbarProps['size']>(undefined);
5
+
6
+ export interface ToolbarProps extends HTMLAttributes<HTMLElement> {
7
+ tag?: ElementType;
8
+ size?: 'large' | 'medium' | 'small';
9
+ }
10
+
11
+ export const Toolbar: FC<ToolbarProps> = ({
12
+ tag = 'nav',
13
+ size,
14
+ children,
15
+ ...attributes
16
+ }) => {
17
+ const Tag = tag;
18
+ const classes = classnames('toolbar', {
19
+ [`toolbar-${size}`]: size && size !== 'large'
20
+ });
21
+ return (
22
+ <SizeContext.Provider value={size || 'large'}>
23
+ <Tag className={classes} {...attributes}>
24
+ <ul>{children}</ul>
25
+ </Tag>
26
+ </SizeContext.Provider>
27
+ );
28
+ };
@@ -0,0 +1,5 @@
1
+ import React from 'react';
2
+
3
+ export const ToolbarDividerItem = () => (
4
+ <li className='toolbar-divider' aria-hidden={true} />
5
+ );
@@ -0,0 +1,95 @@
1
+ import React, {
2
+ ElementType,
3
+ FC,
4
+ HTMLAttributes,
5
+ MouseEvent,
6
+ useContext
7
+ } from 'react';
8
+ import classNames from 'classnames';
9
+ import { Icon } from '../Icon/Icon';
10
+ import { SizeContext, ToolbarProps } from './Toolbar';
11
+
12
+ export interface ToolbarItemProps extends HTMLAttributes<HTMLElement> {
13
+ tag?: ElementType;
14
+ active?: boolean;
15
+ disabled?: boolean;
16
+ url?: string;
17
+ label?: string;
18
+ iconName: string;
19
+ isIconSmall?: boolean;
20
+ alert?: boolean;
21
+ badge?: number;
22
+ onLinkClick?: (event: MouseEvent<HTMLAnchorElement>) => void;
23
+ }
24
+
25
+ const disabledMessage = ' elemento disabilitato';
26
+
27
+ function ToolbarItemLabel({
28
+ label,
29
+ size,
30
+ disabled
31
+ }: {
32
+ label: ToolbarItemProps['label'];
33
+ size: ToolbarProps['size'];
34
+ disabled: ToolbarItemProps['disabled'];
35
+ }) {
36
+ const showSrText = size && size !== 'large';
37
+ if (disabled) {
38
+ if (!label || showSrText) {
39
+ return <span className='sr-only'>{disabledMessage}</span>;
40
+ }
41
+ return (
42
+ <>
43
+ <span className='toolbar-label'>{label}</span>
44
+ <span className='sr-only'>{disabledMessage}</span>
45
+ </>
46
+ );
47
+ }
48
+ if (!label) {
49
+ return null;
50
+ }
51
+ return showSrText ? (
52
+ <span className='sr-only'>{label}</span>
53
+ ) : (
54
+ <span className='toolbar-label'>{label}</span>
55
+ );
56
+ }
57
+
58
+ export const ToolbarItem: FC<ToolbarItemProps> = ({
59
+ active = false,
60
+ badge,
61
+ url,
62
+ iconName,
63
+ label,
64
+ tag = 'a',
65
+ disabled,
66
+ ...attributes
67
+ }) => {
68
+ const Tag = tag;
69
+ const size = useContext(SizeContext);
70
+ const activeClass = classNames({ active, disabled });
71
+ const badgeWrapper = Boolean(badge) && (
72
+ <div className='badge-wrapper'>
73
+ <span className='toolbar-badge'>{badge}</span>
74
+ </div>
75
+ );
76
+
77
+ const ariaAttributes = {
78
+ ...(disabled && { 'aria-disabled': true })
79
+ };
80
+
81
+ return (
82
+ <li>
83
+ <Tag
84
+ href={url || '#'}
85
+ className={activeClass}
86
+ {...attributes}
87
+ {...ariaAttributes}
88
+ >
89
+ {badgeWrapper}
90
+ <Icon icon={iconName} size={size === 'small' ? 'sm' : ''} />
91
+ <ToolbarItemLabel label={label} size={size} disabled={disabled} />
92
+ </Tag>
93
+ </li>
94
+ );
95
+ };
@@ -0,0 +1,4 @@
1
+ declare module '*.svg' {
2
+ const svgUrl: string;
3
+ export default svgUrl;
4
+ }