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.
- package/README.EN.md +35 -17
- package/README.md +34 -18
- package/package.json +152 -120
- package/src/Accordion/Accordion.tsx +30 -0
- package/src/Accordion/AccordionBody.tsx +127 -0
- package/src/Accordion/AccordionHeader.tsx +42 -0
- package/src/Alert/Alert.tsx +39 -0
- package/src/Avatar/AvatarContainer.tsx +22 -0
- package/src/Avatar/AvatarExtraText.tsx +19 -0
- package/src/Avatar/AvatarGroupContainer.tsx +23 -0
- package/src/Avatar/AvatarIcon.tsx +57 -0
- package/src/Avatar/AvatarPresence.tsx +24 -0
- package/src/Avatar/AvatarStatus.tsx +24 -0
- package/src/Avatar/AvatarWrapper.tsx +24 -0
- package/src/Badge/Badge.tsx +40 -0
- package/src/BottomNav/BottomNav.tsx +20 -0
- package/src/BottomNav/BottomNavItem.tsx +75 -0
- package/src/Breadcrumb/Breadcrumb.tsx +40 -0
- package/src/Button/Button.tsx +55 -0
- package/src/Callout/Callout.tsx +35 -0
- package/src/Callout/CalloutText.tsx +29 -0
- package/src/Callout/CalloutTitle.tsx +24 -0
- package/src/Card/Card.tsx +49 -0
- package/src/Card/CardBody.tsx +21 -0
- package/src/Card/CardCategory.tsx +48 -0
- package/src/Card/CardFooterCTA.tsx +19 -0
- package/src/Card/CardReadMore.tsx +35 -0
- package/src/Card/CardSignature.tsx +19 -0
- package/src/Card/CardTag.tsx +19 -0
- package/src/Card/CardTagsHeader.tsx +28 -0
- package/src/Card/CardText.tsx +19 -0
- package/src/Card/CardTitle.tsx +17 -0
- package/src/Chips/Chip.tsx +37 -0
- package/src/Chips/ChipLabel.tsx +19 -0
- package/src/Collapse/Collapse.tsx +100 -0
- package/src/CookieBar/CookieBar.tsx +19 -0
- package/src/CookieBar/CookieBarButton.tsx +27 -0
- package/src/CookieBar/CookieBarButtons.tsx +19 -0
- package/src/Dimmer/Dimmer.tsx +51 -0
- package/src/Dimmer/DimmerButtons.tsx +35 -0
- package/src/FontLoader/FontLoader.tsx +32 -0
- package/src/Forward/Forward.tsx +40 -0
- package/src/Grid/GridItem.tsx +23 -0
- package/src/Grid/GridItemText.tsx +20 -0
- package/src/Grid/GridItemTextWrapper.tsx +21 -0
- package/src/Grid/GridList.tsx +20 -0
- package/src/Grid/GridRow.tsx +20 -0
- package/src/Grid/index.ts +11 -0
- package/src/{components/Header/Header.js → Header/Header.tsx} +19 -24
- package/src/Header/HeaderBrand.tsx +90 -0
- package/src/Header/HeaderContent.tsx +42 -0
- package/src/Header/HeaderContext.tsx +9 -0
- package/src/Header/HeaderLinkZone.tsx +19 -0
- package/src/Header/HeaderRightZone.tsx +26 -0
- package/src/Header/HeaderSearch.tsx +33 -0
- package/src/Header/HeaderSocialsZone.tsx +26 -0
- package/src/Header/HeaderToggler.tsx +46 -0
- package/src/{components/Header/Headers.js → Header/Headers.tsx} +17 -22
- package/src/Hero/Hero.tsx +34 -0
- package/src/Hero/HeroBackground.tsx +25 -0
- package/src/Hero/HeroBody.tsx +21 -0
- package/src/Hero/HeroButton.tsx +19 -0
- package/src/Hero/HeroCategory.tsx +15 -0
- package/src/Hero/HeroTitle.tsx +16 -0
- package/src/Hero/index.ts +13 -0
- package/src/Icon/EmptyIcon.tsx +7 -0
- package/src/Icon/Icon.tsx +116 -0
- package/src/Icon/assets/ItArrowDown.tsx +9 -0
- package/src/Icon/assets/ItArrowDownCircle.tsx +9 -0
- package/src/Icon/assets/ItArrowDownTriangle.tsx +9 -0
- package/src/Icon/assets/ItArrowLeft.tsx +9 -0
- package/src/Icon/assets/ItArrowLeftCircle.tsx +9 -0
- package/src/Icon/assets/ItArrowLeftTriangle.tsx +9 -0
- package/src/Icon/assets/ItArrowRight.tsx +9 -0
- package/src/Icon/assets/ItArrowRightCircle.tsx +9 -0
- package/src/Icon/assets/ItArrowRightTriangle.tsx +9 -0
- package/src/Icon/assets/ItArrowUp.tsx +9 -0
- package/src/Icon/assets/ItArrowUpCircle.tsx +9 -0
- package/src/Icon/assets/ItArrowUpTriangle.tsx +9 -0
- package/src/Icon/assets/ItBan.tsx +9 -0
- package/src/Icon/assets/ItBehance.tsx +9 -0
- package/src/Icon/assets/ItBookmark.tsx +9 -0
- package/src/Icon/assets/ItBox.tsx +12 -0
- package/src/Icon/assets/ItBurger.tsx +9 -0
- package/src/Icon/assets/ItCalendar.tsx +9 -0
- package/src/Icon/assets/ItCamera.tsx +9 -0
- package/src/Icon/assets/ItCard.tsx +9 -0
- package/src/Icon/assets/ItChartLine.tsx +12 -0
- package/src/Icon/assets/ItCheck.tsx +9 -0
- package/src/Icon/assets/ItCheckCircle.tsx +9 -0
- package/src/Icon/assets/ItChevronLeft.tsx +8 -0
- package/src/Icon/assets/ItChevronRight.tsx +8 -0
- package/src/Icon/assets/ItClip.tsx +9 -0
- package/src/Icon/assets/ItClock.tsx +9 -0
- package/src/Icon/assets/ItClose.tsx +9 -0
- package/src/Icon/assets/ItCloseBig.tsx +9 -0
- package/src/Icon/assets/ItCloseCircle.tsx +9 -0
- package/src/Icon/assets/ItCodeCircle.tsx +9 -0
- package/src/Icon/assets/ItCollapse.tsx +8 -0
- package/src/Icon/assets/ItComment.tsx +9 -0
- package/src/Icon/assets/ItCopy.tsx +9 -0
- package/src/Icon/assets/ItDelete.tsx +12 -0
- package/src/Icon/assets/ItDesignersItalia.tsx +9 -0
- package/src/Icon/assets/ItDownload.tsx +9 -0
- package/src/Icon/assets/ItError.tsx +9 -0
- package/src/Icon/assets/ItExchangeCircle.tsx +9 -0
- package/src/Icon/assets/ItExpand.tsx +8 -0
- package/src/Icon/assets/ItExternalLink.tsx +9 -0
- package/src/Icon/assets/ItFacebook.tsx +9 -0
- package/src/Icon/assets/ItFacebookSquare.tsx +9 -0
- package/src/Icon/assets/ItFile.tsx +9 -0
- package/src/Icon/assets/ItFiles.tsx +9 -0
- package/src/Icon/assets/ItFlag.tsx +9 -0
- package/src/Icon/assets/ItFlickr.tsx +10 -0
- package/src/Icon/assets/ItFlickrSquare.tsx +9 -0
- package/src/Icon/assets/ItFolder.tsx +9 -0
- package/src/Icon/assets/ItFullscreen.tsx +11 -0
- package/src/Icon/assets/ItFunnel.tsx +9 -0
- package/src/Icon/assets/ItGithub.tsx +9 -0
- package/src/Icon/assets/ItHearing.tsx +9 -0
- package/src/Icon/assets/ItHelp.tsx +9 -0
- package/src/Icon/assets/ItHelpCircle.tsx +9 -0
- package/src/Icon/assets/ItHorn.tsx +9 -0
- package/src/Icon/assets/ItInbox.tsx +12 -0
- package/src/Icon/assets/ItInfoCircle.tsx +9 -0
- package/src/Icon/assets/ItInstagram.tsx +9 -0
- package/src/Icon/assets/ItKey.tsx +9 -0
- package/src/Icon/assets/ItLessCircle.tsx +12 -0
- package/src/Icon/assets/ItLink.tsx +9 -0
- package/src/Icon/assets/ItLinkedin.tsx +9 -0
- package/src/Icon/assets/ItLinkedinSquare.tsx +9 -0
- package/src/Icon/assets/ItList.tsx +9 -0
- package/src/Icon/assets/ItLock.tsx +12 -0
- package/src/Icon/assets/ItLocked.tsx +9 -0
- package/src/Icon/assets/ItMail.tsx +9 -0
- package/src/Icon/assets/ItMapMarker.tsx +9 -0
- package/src/Icon/assets/ItMapMarkerCircle.tsx +12 -0
- package/src/Icon/assets/ItMapMarkerMinus.tsx +9 -0
- package/src/Icon/assets/ItMapMarkerPlus.tsx +12 -0
- package/src/Icon/assets/ItMaximize.tsx +11 -0
- package/src/Icon/assets/ItMaximizeAlt.tsx +11 -0
- package/src/Icon/assets/ItMedium.tsx +9 -0
- package/src/Icon/assets/ItMediumSquare.tsx +9 -0
- package/src/Icon/assets/ItMinimize.tsx +11 -0
- package/src/Icon/assets/ItMinus.tsx +9 -0
- package/src/Icon/assets/ItMinusCircle.tsx +9 -0
- package/src/Icon/assets/ItMoreActions.tsx +9 -0
- package/src/Icon/assets/ItMoreItems.tsx +9 -0
- package/src/Icon/assets/ItNote.tsx +9 -0
- package/src/Icon/assets/ItOpenSource.tsx +9 -0
- package/src/Icon/assets/ItPa.tsx +9 -0
- package/src/Icon/assets/ItPasswordInvisible.tsx +9 -0
- package/src/Icon/assets/ItPasswordVisible.tsx +9 -0
- package/src/Icon/assets/ItPencil.tsx +9 -0
- package/src/Icon/assets/ItPiattaforme.tsx +10 -0
- package/src/Icon/assets/ItPin.tsx +9 -0
- package/src/Icon/assets/ItPlug.tsx +9 -0
- package/src/Icon/assets/ItPlus.tsx +9 -0
- package/src/Icon/assets/ItPlusCircle.tsx +9 -0
- package/src/Icon/assets/ItPresentation.tsx +9 -0
- package/src/Icon/assets/ItPrint.tsx +9 -0
- package/src/Icon/assets/ItRefresh.tsx +9 -0
- package/src/Icon/assets/ItRestore.tsx +9 -0
- package/src/Icon/assets/ItRss.tsx +11 -0
- package/src/Icon/assets/ItRssSquare.tsx +9 -0
- package/src/Icon/assets/ItSearch.tsx +9 -0
- package/src/Icon/assets/ItSettings.tsx +9 -0
- package/src/Icon/assets/ItShare.tsx +9 -0
- package/src/Icon/assets/ItSoftware.tsx +10 -0
- package/src/Icon/assets/ItStarFull.tsx +9 -0
- package/src/Icon/assets/ItStarOutline.tsx +9 -0
- package/src/Icon/assets/ItTeamDigitale.tsx +8 -0
- package/src/Icon/assets/ItTelegram.tsx +11 -0
- package/src/Icon/assets/ItTelephone.tsx +9 -0
- package/src/Icon/assets/ItTool.tsx +9 -0
- package/src/Icon/assets/ItTwitter.tsx +9 -0
- package/src/Icon/assets/ItTwitterSquare.tsx +9 -0
- package/src/Icon/assets/ItUnlocked.tsx +9 -0
- package/src/Icon/assets/ItUpload.tsx +9 -0
- package/src/Icon/assets/ItUser.tsx +9 -0
- package/src/Icon/assets/ItVideo.tsx +9 -0
- package/src/Icon/assets/ItWarning.tsx +9 -0
- package/src/Icon/assets/ItWarningCircle.tsx +9 -0
- package/src/Icon/assets/ItWhatsapp.tsx +9 -0
- package/src/Icon/assets/ItWhatsappSquare.tsx +10 -0
- package/src/Icon/assets/ItWifi.tsx +12 -0
- package/src/Icon/assets/ItYoutube.tsx +9 -0
- package/src/Icon/assets/ItZoomIn.tsx +9 -0
- package/src/Icon/assets/ItZoomOut.tsx +9 -0
- package/src/Icon/assets/index.tsx +504 -0
- package/src/Input/Input.tsx +342 -0
- package/src/Input/InputContainer.tsx +34 -0
- package/src/Input/TextArea.tsx +184 -0
- package/src/Input/TimeInput.tsx +303 -0
- package/src/Input/utils.tsx +166 -0
- package/src/LinkList/LinkList.tsx +65 -0
- package/src/LinkList/LinkListItem.tsx +98 -0
- package/src/Megamenu/Megamenu.tsx +37 -0
- package/src/Megamenu/MegamenuFooter.tsx +20 -0
- package/src/Megamenu/MegamenuHighlightColumn.tsx +33 -0
- package/src/Megamenu/MegamenuItem.tsx +27 -0
- package/src/Modal/Modal.tsx +79 -0
- package/src/Modal/ModalBody.tsx +11 -0
- package/src/Modal/ModalFooter.tsx +11 -0
- package/src/Modal/ModalHeader.tsx +70 -0
- package/src/Nav/Nav.tsx +56 -0
- package/src/Notification/Notification.tsx +60 -0
- package/src/Notification/NotificationContent.tsx +135 -0
- package/src/Notification/NotificationManager.tsx +65 -0
- package/src/Notification/core.tsx +46 -0
- package/src/Notification/index.ts +9 -0
- package/src/Notification/types.ts +12 -0
- package/src/Notification/usePosition.tsx +11 -0
- package/src/Pager/Pager.tsx +48 -0
- package/src/PasswordInput/PasswordInput.tsx +43 -0
- package/src/Progress/Progress.tsx +94 -0
- package/src/Rating/Rating.tsx +130 -0
- package/src/ResponsiveImage/ResponsiveImage.tsx +25 -0
- package/src/Section/Section.tsx +86 -0
- package/src/Select/Select.tsx +97 -0
- package/src/Select/shared.tsx +45 -0
- package/src/Sidebar/Sidebar.tsx +46 -0
- package/src/Skiplink/Skiplink.tsx +20 -0
- package/src/Skiplink/SkiplinkItem.tsx +29 -0
- package/src/Spinner/Spinner.tsx +55 -0
- package/src/Stepper/StepperContainer.tsx +30 -0
- package/src/Stepper/StepperContent.tsx +51 -0
- package/src/Stepper/StepperDots.tsx +21 -0
- package/src/Stepper/StepperHeader.tsx +19 -0
- package/src/Stepper/StepperHeaderElement.tsx +77 -0
- package/src/Stepper/StepperNav.tsx +19 -0
- package/src/ThumbNav/ThumbNav.tsx +37 -0
- package/src/ThumbNav/ThumbNavItem.tsx +35 -0
- package/src/Timeline/TimelinePin.tsx +67 -0
- package/src/Timeline/TimelineWrapper.tsx +19 -0
- package/src/Toggle/Toggle.tsx +29 -0
- package/src/Toolbar/Toolbar.tsx +28 -0
- package/src/Toolbar/ToolbarDividerItem.tsx +5 -0
- package/src/Toolbar/ToolbarItem.tsx +95 -0
- package/src/assets.d.ts +4 -0
- package/src/index.tsx +350 -0
- package/src/utils.tsx +26 -0
- package/.editorconfig +0 -18
- package/.eslintrc +0 -65
- package/.github/ISSUE_TEMPLATE/bug_report.md +0 -32
- package/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
- package/.github/PULL_REQUEST_TEMPLATE.md +0 -24
- package/AUTHORS +0 -3
- package/CODE_OF_CONDUCT.EN.md +0 -77
- package/CODE_OF_CONDUCT.md +0 -69
- package/dist/design-react-kit.cjs.js +0 -3698
- package/dist/design-react-kit.cjs.js.map +0 -1
- package/dist/design-react-kit.d.ts +0 -1704
- package/dist/design-react-kit.es.js +0 -3188
- package/dist/design-react-kit.es.js.map +0 -1
- package/dist/design-react-kit.full.js +0 -17596
- package/dist/design-react-kit.full.js.map +0 -1
- package/dist/design-react-kit.full.min.js +0 -2
- package/dist/design-react-kit.full.min.js.map +0 -1
- package/dist/design-react-kit.js +0 -13394
- package/dist/design-react-kit.js.map +0 -1
- package/dist/design-react-kit.min.js +0 -2
- package/dist/design-react-kit.min.js.map +0 -1
- package/src/Storyshots.test.js +0 -9
- package/src/components/Accordion/Accordion.js +0 -22
- package/src/components/Accordion/AccordionBody.js +0 -118
- package/src/components/Accordion/AccordionHeader.js +0 -37
- package/src/components/Autocomplete/Autocomplete.js +0 -255
- package/src/components/Avatar/AvatarContainer.js +0 -24
- package/src/components/Avatar/AvatarExtraText.js +0 -22
- package/src/components/Avatar/AvatarGroupContainer.js +0 -23
- package/src/components/Avatar/AvatarIcon.js +0 -32
- package/src/components/Avatar/AvatarPresence.js +0 -25
- package/src/components/Avatar/AvatarStatus.js +0 -25
- package/src/components/Avatar/AvatarWrapper.js +0 -25
- package/src/components/Badge/Badge.js +0 -28
- package/src/components/BottomNav/BottomNav.js +0 -27
- package/src/components/BottomNav/BottomNavItem.js +0 -69
- package/src/components/Button/Button.js +0 -26
- package/src/components/Callout/Callout.js +0 -33
- package/src/components/Callout/CalloutText.js +0 -37
- package/src/components/Callout/CalloutTitle.js +0 -27
- package/src/components/Card/Card.js +0 -50
- package/src/components/Card/CardCategory.js +0 -43
- package/src/components/Card/CardFooterCTA.js +0 -17
- package/src/components/Card/CardReadMore.js +0 -45
- package/src/components/Card/CardSignature.js +0 -17
- package/src/components/Card/CardTag.js +0 -23
- package/src/components/Card/CardTagsHeader.js +0 -21
- package/src/components/Chips/Chip.js +0 -50
- package/src/components/Chips/ChipLabel.js +0 -25
- package/src/components/Collapse/Collapse.js +0 -66
- package/src/components/CookieBar/CookieBar.js +0 -22
- package/src/components/CookieBar/CookieBarButton.js +0 -25
- package/src/components/CookieBar/CookieBarButtons.js +0 -23
- package/src/components/Dimmer/Dimmer.js +0 -38
- package/src/components/Dimmer/DimmerButtons.js +0 -35
- package/src/components/FontLoader/FontLoader.js +0 -22
- package/src/components/FormGroup/FormGroup.js +0 -137
- package/src/components/Forward/Forward.js +0 -32
- package/src/components/Header/HeaderBrand.js +0 -86
- package/src/components/Header/HeaderContent.js +0 -49
- package/src/components/Header/HeaderContext.js +0 -14
- package/src/components/Header/HeaderLinkZone.js +0 -24
- package/src/components/Header/HeaderRightZone.js +0 -33
- package/src/components/Header/HeaderSearch.js +0 -36
- package/src/components/Header/HeaderSocialsZone.js +0 -30
- package/src/components/Header/HeaderToggler.js +0 -50
- package/src/components/Hero/Hero.js +0 -10
- package/src/components/Icon/Icon.js +0 -42
- package/src/components/Input/Input.js +0 -261
- package/src/components/Input/InputContainer.js +0 -39
- package/src/components/Input/utils.js +0 -126
- package/src/components/LinkList/LinkList.js +0 -65
- package/src/components/LinkList/LinkListItem.js +0 -88
- package/src/components/Nav/Nav.js +0 -37
- package/src/components/Notification/Notification.js +0 -78
- package/src/components/Offcanvas/Offcanvas.js +0 -101
- package/src/components/Pager/Pager.js +0 -32
- package/src/components/PagerList/PagerList.js +0 -28
- package/src/components/PasswordInput/PasswordInput.js +0 -41
- package/src/components/PasswordMeter/PasswordMeter.js +0 -80
- package/src/components/Progress/Progress.js +0 -88
- package/src/components/Rating/Rating.js +0 -130
- package/src/components/Section/Section.js +0 -49
- package/src/components/Separator/Separator.js +0 -34
- package/src/components/Sidebar/Sidebar.js +0 -53
- package/src/components/Skiplink/Skiplink.js +0 -25
- package/src/components/Skiplink/SkiplinkItem.js +0 -25
- package/src/components/Spinner/Spinner.js +0 -65
- package/src/components/Stepper/StepperContainer.js +0 -33
- package/src/components/Stepper/StepperContent.js +0 -54
- package/src/components/Stepper/StepperDots.js +0 -27
- package/src/components/Stepper/StepperHeader.js +0 -27
- package/src/components/Stepper/StepperHeaderElement.js +0 -45
- package/src/components/Stepper/StepperNav.js +0 -27
- package/src/components/Table/Table.js +0 -68
- package/src/components/Timeline/TimelinePin.js +0 -59
- package/src/components/Timeline/TimelineWrapper.js +0 -21
- package/src/components/Toggle/Toggle.js +0 -27
- package/src/components/utils.js +0 -1
- package/src/index.js +0 -144
- package/static/favicons/android-chrome-192x192.png +0 -0
- package/static/favicons/android-chrome-512x512.png +0 -0
- package/static/favicons/apple-touch-icon.png +0 -0
- package/static/favicons/browserconfig.xml +0 -9
- package/static/favicons/favicon-16x16.png +0 -0
- package/static/favicons/favicon-32x32.png +0 -0
- package/static/favicons/favicon.ico +0 -0
- package/static/favicons/manifest.webmanifest +0 -21
- package/static/favicons/mstile-150x150.png +0 -0
- package/static/favicons/safari-pinned-tab.svg +0 -23
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React, { FC, HTMLAttributes } from 'react';
|
|
2
|
+
import classname from 'classnames';
|
|
3
|
+
|
|
4
|
+
export interface GridListProps extends HTMLAttributes<HTMLSpanElement> {
|
|
5
|
+
/** Classi aggiuntive da usare per il componente LinkListItem */
|
|
6
|
+
className?: string;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export const GridList: FC<GridListProps> = ({
|
|
10
|
+
className,
|
|
11
|
+
children,
|
|
12
|
+
...attributes
|
|
13
|
+
}) => {
|
|
14
|
+
const classes = classname('it-grid-list-wrapper', className);
|
|
15
|
+
return (
|
|
16
|
+
<div {...attributes} className={classes}>
|
|
17
|
+
{children}
|
|
18
|
+
</div>
|
|
19
|
+
);
|
|
20
|
+
};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import React, { FC, HTMLAttributes } from 'react';
|
|
2
|
+
import classname from 'classnames';
|
|
3
|
+
|
|
4
|
+
export interface GridRowProps extends HTMLAttributes<HTMLSpanElement> {
|
|
5
|
+
/** Classi aggiuntive da usare per il componente LinkListItem */
|
|
6
|
+
className?: string;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export const GridRow: FC<GridRowProps> = ({
|
|
10
|
+
className,
|
|
11
|
+
children,
|
|
12
|
+
...attributes
|
|
13
|
+
}) => {
|
|
14
|
+
const classes = classname('grid-row', className);
|
|
15
|
+
return (
|
|
16
|
+
<div {...attributes} className={classes}>
|
|
17
|
+
{children}
|
|
18
|
+
</div>
|
|
19
|
+
);
|
|
20
|
+
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export { GridItem } from './GridItem';
|
|
2
|
+
export { GridItemText } from './GridItemText';
|
|
3
|
+
export { GridItemTextWrapper } from './GridItemTextWrapper';
|
|
4
|
+
export { GridList } from './GridList';
|
|
5
|
+
export { GridRow } from './GridRow';
|
|
6
|
+
|
|
7
|
+
export type { GridItemProps } from './GridItem';
|
|
8
|
+
export type { GridItemTextProps } from './GridItemText';
|
|
9
|
+
export type { GridItemTextWrapperProps } from './GridItemTextWrapper';
|
|
10
|
+
export type { GridListProps } from './GridList';
|
|
11
|
+
export type { GridRowProps } from './GridRow';
|
|
@@ -1,29 +1,29 @@
|
|
|
1
|
-
import React from 'react'
|
|
2
|
-
import
|
|
3
|
-
import classNames from 'classnames'
|
|
1
|
+
import React, { FC, HTMLAttributes } from 'react';
|
|
2
|
+
import classNames from 'classnames';
|
|
4
3
|
|
|
5
|
-
import HeaderContext,
|
|
4
|
+
import { HeaderContext, CENTER, NAVBAR } from './HeaderContext';
|
|
6
5
|
|
|
7
|
-
|
|
8
|
-
/** Classi
|
|
9
|
-
className
|
|
10
|
-
// cannot use variables above here or storybook writes the full import stacktrace
|
|
6
|
+
export interface HeaderProps extends HTMLAttributes<HTMLElement> {
|
|
7
|
+
/** Classi aggiuntive da usare per il componente Header */
|
|
8
|
+
className?: string;
|
|
11
9
|
/** Tipo di componente Header: può essere solamente uno di questi tre tipi */
|
|
12
|
-
type:
|
|
10
|
+
type: 'slim' | 'center' | 'navbar';
|
|
13
11
|
/** Riduce la grandezza del componente Header. Funziona solamente con Header "center". */
|
|
14
|
-
small
|
|
12
|
+
small?: boolean;
|
|
15
13
|
/** Imposta il tema per il componente Header. Per gli Header di tipo "slim" o "center"
|
|
16
14
|
* il valore di default è "dark". Per l'Header di tipo "nav" il tema di default è "light"
|
|
17
15
|
* in mobile, mentre "dark" in versione desktop.
|
|
18
16
|
*/
|
|
19
|
-
theme
|
|
17
|
+
theme?: 'light' | 'dark' | '';
|
|
20
18
|
}
|
|
21
19
|
|
|
22
|
-
const
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
20
|
+
export const Header: FC<HeaderProps> = ({
|
|
21
|
+
className,
|
|
22
|
+
small = false,
|
|
23
|
+
theme = '',
|
|
24
|
+
type,
|
|
25
|
+
...attributes
|
|
26
|
+
}) => {
|
|
27
27
|
// use context here as theme
|
|
28
28
|
const classes = classNames(className, {
|
|
29
29
|
[`it-header-${type}-wrapper`]: type,
|
|
@@ -31,15 +31,10 @@ const Header = ({ className, small, theme, type, ...attributes }) => {
|
|
|
31
31
|
[`theme-${theme}`]: type !== NAVBAR && theme,
|
|
32
32
|
'theme-dark-mobile': type === NAVBAR && theme === 'dark',
|
|
33
33
|
'theme-light-desk': type === NAVBAR && theme === 'light'
|
|
34
|
-
})
|
|
34
|
+
});
|
|
35
35
|
return (
|
|
36
36
|
<HeaderContext.Provider value={{ type }}>
|
|
37
37
|
<div className={classes} {...attributes} />
|
|
38
38
|
</HeaderContext.Provider>
|
|
39
|
-
)
|
|
40
|
-
}
|
|
41
|
-
|
|
42
|
-
Header.propTypes = propTypes
|
|
43
|
-
Header.defaultProps = defaultProps
|
|
44
|
-
|
|
45
|
-
export default Header
|
|
39
|
+
);
|
|
40
|
+
};
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import React, {
|
|
2
|
+
AnchorHTMLAttributes,
|
|
3
|
+
ElementType,
|
|
4
|
+
ReactChild,
|
|
5
|
+
PureComponent
|
|
6
|
+
} from 'react';
|
|
7
|
+
import classNames from 'classnames';
|
|
8
|
+
import { CSSModule, NavbarBrand } from 'reactstrap';
|
|
9
|
+
import { HeaderContext, CENTER } from './HeaderContext';
|
|
10
|
+
import { Icon } from '../Icon/Icon';
|
|
11
|
+
|
|
12
|
+
export interface HeaderBrandProps
|
|
13
|
+
extends AnchorHTMLAttributes<HTMLAnchorElement> {
|
|
14
|
+
/** Utilizzarlo in caso di utilizzo di componenti personalizzati */
|
|
15
|
+
tag?: ElementType;
|
|
16
|
+
/** Classi aggiuntive da usare per il componente HeaderBrand */
|
|
17
|
+
className?: string;
|
|
18
|
+
/** Oggetto contenente la nuova mappatura per le classi CSS. */
|
|
19
|
+
cssModule?: CSSModule;
|
|
20
|
+
/** Da usare con il componente Header Nav in versione "responsive" */
|
|
21
|
+
responsive?: boolean;
|
|
22
|
+
/** Da utilizzare per specificare URL risorsa esterna. */
|
|
23
|
+
href?: string;
|
|
24
|
+
/** Icona da utilizzare nel componente. Utilizzata unicamente quando l'Header è di tipo Center. */
|
|
25
|
+
iconName?: string;
|
|
26
|
+
/** Elementi React da renderizzare al proprio interno. */
|
|
27
|
+
children: ReactChild | ReactChild[];
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
export class HeaderBrand extends PureComponent<HeaderBrandProps> {
|
|
31
|
+
static contextType = HeaderContext;
|
|
32
|
+
|
|
33
|
+
render() {
|
|
34
|
+
const {
|
|
35
|
+
className,
|
|
36
|
+
href,
|
|
37
|
+
iconName,
|
|
38
|
+
children,
|
|
39
|
+
tag = 'a',
|
|
40
|
+
responsive = false,
|
|
41
|
+
...attributes
|
|
42
|
+
} = this.props;
|
|
43
|
+
const { type } = this.context;
|
|
44
|
+
const defaultAttributes = { tag };
|
|
45
|
+
if (type !== CENTER) {
|
|
46
|
+
const classes = classNames('d-lg-block', className, {
|
|
47
|
+
'd-none': !responsive
|
|
48
|
+
});
|
|
49
|
+
return (
|
|
50
|
+
<NavbarBrand
|
|
51
|
+
className={classes}
|
|
52
|
+
href={href}
|
|
53
|
+
{...attributes}
|
|
54
|
+
{...defaultAttributes}
|
|
55
|
+
>
|
|
56
|
+
{children}
|
|
57
|
+
</NavbarBrand>
|
|
58
|
+
);
|
|
59
|
+
}
|
|
60
|
+
return (
|
|
61
|
+
<div className='it-brand-wrapper'>
|
|
62
|
+
<a href={href}>
|
|
63
|
+
{iconName && <Icon icon={iconName} />}
|
|
64
|
+
<div className='it-brand-text'>
|
|
65
|
+
{React.Children.map(children, (child, i) => {
|
|
66
|
+
if (
|
|
67
|
+
typeof child !== 'object' ||
|
|
68
|
+
child == null ||
|
|
69
|
+
!('props' in child)
|
|
70
|
+
) {
|
|
71
|
+
return child;
|
|
72
|
+
}
|
|
73
|
+
// convention here: first item is the main title, while others subtext
|
|
74
|
+
const className = classNames(
|
|
75
|
+
child.props.className,
|
|
76
|
+
{ 'd-none d-md-block': i } // subtext is anything but first element
|
|
77
|
+
);
|
|
78
|
+
|
|
79
|
+
const props = {
|
|
80
|
+
className
|
|
81
|
+
};
|
|
82
|
+
|
|
83
|
+
return React.cloneElement(child, props);
|
|
84
|
+
})}
|
|
85
|
+
</div>
|
|
86
|
+
</a>
|
|
87
|
+
</div>
|
|
88
|
+
);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import React, { HTMLAttributes, PureComponent } from 'react';
|
|
2
|
+
import classNames from 'classnames';
|
|
3
|
+
import { Navbar } from 'reactstrap';
|
|
4
|
+
|
|
5
|
+
import { HeaderContext, SLIM, CENTER, NAVBAR } from './HeaderContext';
|
|
6
|
+
|
|
7
|
+
export interface HeaderContentProps extends HTMLAttributes<HTMLElement> {
|
|
8
|
+
/** Classi aggiuntive da usare per il componente HeaderContent */
|
|
9
|
+
className?: string;
|
|
10
|
+
/** Da utilizzare per indicare che all'interno dell'Header verrà utilizzato un Megamenu */
|
|
11
|
+
megamenu?: boolean;
|
|
12
|
+
/** Parametro per il controllo responsive del componente secondo Bootstrap Italia. */
|
|
13
|
+
expand?: boolean | 'sm' | 'md' | 'lg' | 'xl';
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export class HeaderContent extends PureComponent<HeaderContentProps> {
|
|
17
|
+
static contextType = HeaderContext;
|
|
18
|
+
render() {
|
|
19
|
+
const { className, megamenu, ...attributes } = this.props;
|
|
20
|
+
const { type } = this.context;
|
|
21
|
+
const classes = classNames(className, {
|
|
22
|
+
'it-header-slim-wrapper-content': type === SLIM,
|
|
23
|
+
'it-header-center-content-wrapper': type === CENTER,
|
|
24
|
+
navbar: type === NAVBAR,
|
|
25
|
+
'has-megamenu': megamenu
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
const Content =
|
|
29
|
+
type === NAVBAR ? (
|
|
30
|
+
<Navbar className={classes} {...attributes} />
|
|
31
|
+
) : (
|
|
32
|
+
<div className={classes} {...attributes} />
|
|
33
|
+
);
|
|
34
|
+
return (
|
|
35
|
+
<div className='container'>
|
|
36
|
+
<div className='row'>
|
|
37
|
+
<div className='col-12'>{Content}</div>
|
|
38
|
+
</div>
|
|
39
|
+
</div>
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import React, { Context } from 'react';
|
|
2
|
+
|
|
3
|
+
export const SLIM = 'slim';
|
|
4
|
+
export const CENTER = 'center';
|
|
5
|
+
export const NAVBAR = 'navbar';
|
|
6
|
+
|
|
7
|
+
export const HeaderContext: Context<{
|
|
8
|
+
type?: typeof SLIM | typeof CENTER | typeof NAVBAR;
|
|
9
|
+
}> = React.createContext({});
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React, { FC, HTMLAttributes } from 'react';
|
|
2
|
+
import classNames from 'classnames';
|
|
3
|
+
|
|
4
|
+
export interface HeaderLinkZoneProps extends HTMLAttributes<HTMLElement> {
|
|
5
|
+
/** Classi addizionali per il componente HeaderLinkZone, applicata all'element "nav" annidato */
|
|
6
|
+
className?: string;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export const HeaderLinkZone: FC<HeaderLinkZoneProps> = ({
|
|
10
|
+
className,
|
|
11
|
+
...attributes
|
|
12
|
+
}) => {
|
|
13
|
+
const classes = classNames(className);
|
|
14
|
+
return (
|
|
15
|
+
<div className='nav-mobile'>
|
|
16
|
+
<nav className={classes} {...attributes} />
|
|
17
|
+
</div>
|
|
18
|
+
);
|
|
19
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import React, { PureComponent, HTMLAttributes } from 'react';
|
|
2
|
+
import classNames from 'classnames';
|
|
3
|
+
|
|
4
|
+
import { HeaderContext, SLIM } from './HeaderContext';
|
|
5
|
+
|
|
6
|
+
export interface HeaderRightZoneProps extends HTMLAttributes<HTMLElement> {
|
|
7
|
+
/** Classi addizionali per il componente HeaderLinkZone, applicata all'element "nav" annidato */
|
|
8
|
+
className?: string;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export class HeaderRightZone extends PureComponent<HeaderRightZoneProps> {
|
|
12
|
+
static contextType = HeaderContext;
|
|
13
|
+
|
|
14
|
+
render() {
|
|
15
|
+
const { className, ...attributes } = this.props;
|
|
16
|
+
const { type } = this.context;
|
|
17
|
+
const classes = classNames(className, {
|
|
18
|
+
// BI >= 1.3.6
|
|
19
|
+
'it-header-slim-right-zone': type === SLIM,
|
|
20
|
+
// BI < 1.3.6
|
|
21
|
+
'header-slim-right-zone': type === SLIM,
|
|
22
|
+
'it-right-zone': type !== SLIM
|
|
23
|
+
});
|
|
24
|
+
return <div className={classes} {...attributes} />;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import React, { FC, HTMLAttributes } from 'react';
|
|
2
|
+
import classNames from 'classnames';
|
|
3
|
+
|
|
4
|
+
import { Icon } from '../Icon/Icon';
|
|
5
|
+
|
|
6
|
+
export interface HeaderSearchProps extends HTMLAttributes<HTMLElement> {
|
|
7
|
+
/** Classi aggiuntive da usare per il componente HeaderSearch */
|
|
8
|
+
className?: string;
|
|
9
|
+
/** Etichetta di testo da applicare all'elemento. In caso di stringa vuota non verrà mostrato alcun testo */
|
|
10
|
+
label: string;
|
|
11
|
+
/** Nome dell'icona da utilizzare */
|
|
12
|
+
iconName: string;
|
|
13
|
+
/** Indirizzo di indirizzamento al click dell'icona */
|
|
14
|
+
href?: string;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export const HeaderSearch: FC<HeaderSearchProps> = ({
|
|
18
|
+
className,
|
|
19
|
+
label,
|
|
20
|
+
href,
|
|
21
|
+
iconName = 'it-search',
|
|
22
|
+
...attributes
|
|
23
|
+
}) => {
|
|
24
|
+
const classes = classNames('it-search-wrapper', className);
|
|
25
|
+
return (
|
|
26
|
+
<div className={classes} {...attributes}>
|
|
27
|
+
{label && <span className='d-none d-md-block'>{label}</span>}
|
|
28
|
+
<a className='search-link rounded-icon' aria-label={label} href={href}>
|
|
29
|
+
<Icon icon={iconName} />
|
|
30
|
+
</a>
|
|
31
|
+
</div>
|
|
32
|
+
);
|
|
33
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import React, { FC, HTMLAttributes, ReactChild } from 'react';
|
|
2
|
+
import classNames from 'classnames';
|
|
3
|
+
|
|
4
|
+
export interface HeaderSocialsZoneProps extends HTMLAttributes<HTMLElement> {
|
|
5
|
+
/** Classi addizionali per il componente HeaderSocialsZone, verrà applicato all'elemento wrapper più esterno. */
|
|
6
|
+
className?: string;
|
|
7
|
+
/** Etichetta utilizzata per presentare i social presenti. In caso di stringa vuota non verrà mostrata alcuna etichetta */
|
|
8
|
+
label?: string;
|
|
9
|
+
/** Utilizzato per elencare i social da mostrare */
|
|
10
|
+
children?: ReactChild;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export const HeaderSocialsZone: FC<HeaderSocialsZoneProps> = ({
|
|
14
|
+
className,
|
|
15
|
+
children,
|
|
16
|
+
label,
|
|
17
|
+
...attributes
|
|
18
|
+
}) => {
|
|
19
|
+
const classes = classNames('it-socials d-none d-md-flex', className);
|
|
20
|
+
return (
|
|
21
|
+
<div className={classes} {...attributes}>
|
|
22
|
+
{label && <span>{label}</span>}
|
|
23
|
+
{children}
|
|
24
|
+
</div>
|
|
25
|
+
);
|
|
26
|
+
};
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import React, { PureComponent, ElementType, ButtonHTMLAttributes } from 'react';
|
|
2
|
+
import classNames from 'classnames';
|
|
3
|
+
import { NavbarToggler } from 'reactstrap';
|
|
4
|
+
|
|
5
|
+
import { HeaderContext, SLIM, NAVBAR } from './HeaderContext';
|
|
6
|
+
|
|
7
|
+
export interface HeaderTogglerProps
|
|
8
|
+
extends ButtonHTMLAttributes<HTMLButtonElement> {
|
|
9
|
+
/** Tipo di elemento DOM da utilizzare: di default "a" per Header Slim, "button" per altri tipi di Header.
|
|
10
|
+
* Se fornito questo sovrascriverà il valore di default.
|
|
11
|
+
*/
|
|
12
|
+
tag?: ElementType;
|
|
13
|
+
/** Classi aggiuntive da usare per il componente HeaderToggler */
|
|
14
|
+
className?: string;
|
|
15
|
+
/** Indica l'attributo "type" sull'elemento DOM. Di default '' per Header Slim, "button" per altri tipi di Header.
|
|
16
|
+
* Se fornito questo sovrascriverà il valore di default.
|
|
17
|
+
*/
|
|
18
|
+
type?: 'button' | 'submit' | 'reset';
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export class HeaderToggler extends PureComponent<HeaderTogglerProps> {
|
|
22
|
+
static contextType = HeaderContext;
|
|
23
|
+
render() {
|
|
24
|
+
const { className, tag, type, ...attributes } = this.props;
|
|
25
|
+
const { type: HeaderType } = this.context;
|
|
26
|
+
const BUTTON = 'button';
|
|
27
|
+
const defaultTag = HeaderType === SLIM ? 'a' : BUTTON;
|
|
28
|
+
const defaultType = HeaderType === SLIM ? undefined : BUTTON;
|
|
29
|
+
const classes = classNames(
|
|
30
|
+
{
|
|
31
|
+
'it-opener d-lg-none': HeaderType === SLIM,
|
|
32
|
+
'custom-navbar-toggler': HeaderType === NAVBAR
|
|
33
|
+
},
|
|
34
|
+
className
|
|
35
|
+
);
|
|
36
|
+
return (
|
|
37
|
+
<NavbarToggler
|
|
38
|
+
className={classes}
|
|
39
|
+
{...attributes}
|
|
40
|
+
tag={tag || defaultTag}
|
|
41
|
+
type={type || defaultType}
|
|
42
|
+
href='#'
|
|
43
|
+
/>
|
|
44
|
+
);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
@@ -1,23 +1,22 @@
|
|
|
1
|
-
import React from 'react'
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import { Sticky, StickyProvider } from 'react-stickup'
|
|
1
|
+
import React, { FC, HTMLAttributes } from 'react';
|
|
2
|
+
import classNames from 'classnames';
|
|
3
|
+
import { Sticky, StickyProvider } from 'react-stickup';
|
|
5
4
|
|
|
6
|
-
|
|
5
|
+
export interface HeadersProps extends HTMLAttributes<HTMLElement> {
|
|
7
6
|
/** Aggiunge un ombra per enfatizzare il componente rispetto alla pagina in cui è contenuto */
|
|
8
|
-
shadow
|
|
7
|
+
shadow?: boolean;
|
|
9
8
|
/** Aggiunge il comportamento "sticky" ai componenti Header contenuti */
|
|
10
|
-
sticky
|
|
9
|
+
sticky?: boolean;
|
|
11
10
|
/** Classi addizionali per il componente Headers */
|
|
12
|
-
className
|
|
11
|
+
className?: string;
|
|
13
12
|
}
|
|
14
13
|
|
|
15
|
-
const
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
14
|
+
export const Headers: FC<HeadersProps> = ({
|
|
15
|
+
className,
|
|
16
|
+
shadow = false,
|
|
17
|
+
sticky = false,
|
|
18
|
+
...attributes
|
|
19
|
+
}) => {
|
|
21
20
|
const classes = classNames(
|
|
22
21
|
'it-header-wrapper',
|
|
23
22
|
{
|
|
@@ -25,9 +24,9 @@ const Headers = ({ className, shadow, sticky, ...attributes }) => {
|
|
|
25
24
|
'it-header-sticky': sticky
|
|
26
25
|
},
|
|
27
26
|
className
|
|
28
|
-
)
|
|
27
|
+
);
|
|
29
28
|
if (!sticky) {
|
|
30
|
-
return <div className={classes} {...attributes}></div
|
|
29
|
+
return <div className={classes} {...attributes}></div>;
|
|
31
30
|
}
|
|
32
31
|
return (
|
|
33
32
|
<StickyProvider>
|
|
@@ -35,9 +34,5 @@ const Headers = ({ className, shadow, sticky, ...attributes }) => {
|
|
|
35
34
|
<div className={classes} {...attributes}></div>
|
|
36
35
|
</Sticky>
|
|
37
36
|
</StickyProvider>
|
|
38
|
-
)
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
Headers.propTypes = propTypes
|
|
42
|
-
Headers.defaultProps = defaultProps
|
|
43
|
-
export default Headers
|
|
37
|
+
);
|
|
38
|
+
};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import React, { FC, HTMLAttributes, ElementType } from 'react';
|
|
2
|
+
import classname from 'classnames';
|
|
3
|
+
|
|
4
|
+
export interface HeroProps extends HTMLAttributes<HTMLElement> {
|
|
5
|
+
/** Utilizzarlo in caso di utilizzo di componenti personalizzati */
|
|
6
|
+
tag?: ElementType;
|
|
7
|
+
/** Indica se il componente Hero deve ridurre l'altezza */
|
|
8
|
+
small?: boolean;
|
|
9
|
+
/** Indica al componente Hero di centrare i contenuti testuali orizzontalmente */
|
|
10
|
+
centered?: boolean;
|
|
11
|
+
/** Da utilizzare per creare un testi in overlay su immagini, al fine di migliorare la leggibilità di testo */
|
|
12
|
+
overlay?: 'dark' | 'primary' | 'filter';
|
|
13
|
+
/** Aggiunge margine negativo in fondo al componente Hero per creare una sovrapposizione con il contenuto seguente. */
|
|
14
|
+
overlap?: boolean;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export const Hero: FC<HeroProps> = ({
|
|
18
|
+
tag: Tag = 'div',
|
|
19
|
+
small,
|
|
20
|
+
centered,
|
|
21
|
+
overlay,
|
|
22
|
+
overlap,
|
|
23
|
+
className,
|
|
24
|
+
...attributes
|
|
25
|
+
}) => {
|
|
26
|
+
const classes = classname('it-hero-wrapper', className, {
|
|
27
|
+
'it-overlay': overlay,
|
|
28
|
+
['it-' + overlay]: overlay,
|
|
29
|
+
'it-hero-small-size': small,
|
|
30
|
+
'it-text-centered': centered,
|
|
31
|
+
'it-bottom-overlapping-content': overlap
|
|
32
|
+
});
|
|
33
|
+
return <Tag className={classes} {...attributes} />;
|
|
34
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import React, { FC, HTMLAttributes } from 'react';
|
|
2
|
+
|
|
3
|
+
export interface HeroBackgroundProps extends HTMLAttributes<HTMLImageElement> {
|
|
4
|
+
/** Un testo alternativo per descrivere l'immagine mostrata */
|
|
5
|
+
alt: string;
|
|
6
|
+
/** L'URI dell'immagine da mostrare */
|
|
7
|
+
src: string;
|
|
8
|
+
/** Il titolo dell'immagine */
|
|
9
|
+
title?: string;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
export const HeroBackground: FC<HeroBackgroundProps> = ({
|
|
13
|
+
alt,
|
|
14
|
+
...attributes
|
|
15
|
+
}) => {
|
|
16
|
+
return (
|
|
17
|
+
<div className='img-responsive-wrapper'>
|
|
18
|
+
<div className='img-responsive'>
|
|
19
|
+
<div className='img-wrapper'>
|
|
20
|
+
<img {...attributes} alt={alt} />
|
|
21
|
+
</div>
|
|
22
|
+
</div>
|
|
23
|
+
</div>
|
|
24
|
+
);
|
|
25
|
+
};
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import React, { FC, HTMLAttributes } from 'react';
|
|
2
|
+
import classname from 'classnames';
|
|
3
|
+
import { Col, Container, Row } from 'reactstrap';
|
|
4
|
+
|
|
5
|
+
export interface HeroBodyProps extends HTMLAttributes<HTMLElement> {
|
|
6
|
+
/** Eventuali classi aggiuntive */
|
|
7
|
+
className?: string;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export const HeroBody: FC<HeroBodyProps> = ({ children, className }) => {
|
|
11
|
+
const classes = classname('it-hero-text-wrapper', 'bg-dark', className);
|
|
12
|
+
return (
|
|
13
|
+
<Container>
|
|
14
|
+
<Row>
|
|
15
|
+
<Col>
|
|
16
|
+
<div className={classes}>{children}</div>
|
|
17
|
+
</Col>
|
|
18
|
+
</Row>
|
|
19
|
+
</Container>
|
|
20
|
+
);
|
|
21
|
+
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React, { FC } from 'react';
|
|
2
|
+
import classname from 'classnames';
|
|
3
|
+
import { Button, ButtonProps } from '../Button/Button';
|
|
4
|
+
|
|
5
|
+
export interface HeroButtonProps extends ButtonProps {
|
|
6
|
+
wrapperClassName?: string;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export const HeroButton: FC<HeroButtonProps> = ({
|
|
10
|
+
wrapperClassName,
|
|
11
|
+
...attributes
|
|
12
|
+
}) => {
|
|
13
|
+
const classes = classname('it-btn-container', wrapperClassName);
|
|
14
|
+
return (
|
|
15
|
+
<div className={classes}>
|
|
16
|
+
<Button size='sm' {...attributes} />
|
|
17
|
+
</div>
|
|
18
|
+
);
|
|
19
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import React, { FC, HTMLAttributes } from 'react';
|
|
2
|
+
import classname from 'classnames';
|
|
3
|
+
|
|
4
|
+
export interface HeroCategoryProps extends HTMLAttributes<HTMLSpanElement> {
|
|
5
|
+
/** Eventuali classi aggiuntive per la categoria */
|
|
6
|
+
className?: string;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export const HeroCategory: FC<HeroCategoryProps> = ({
|
|
10
|
+
className,
|
|
11
|
+
...attributes
|
|
12
|
+
}) => {
|
|
13
|
+
const classes = classname('it-category', className);
|
|
14
|
+
return <span {...attributes} className={classes} />;
|
|
15
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React, { ElementType, FC, HTMLAttributes } from 'react';
|
|
2
|
+
import classname from 'classnames';
|
|
3
|
+
|
|
4
|
+
export interface HeroTitleProps extends HTMLAttributes<HTMLSpanElement> {
|
|
5
|
+
/** Indica il tag da utilizzare per il titolo */
|
|
6
|
+
tag?: ElementType;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export const HeroTitle: FC<HeroTitleProps> = ({
|
|
10
|
+
tag: Tag = 'h1',
|
|
11
|
+
className,
|
|
12
|
+
...attributes
|
|
13
|
+
}) => {
|
|
14
|
+
const classes = classname(className);
|
|
15
|
+
return <Tag {...attributes} className={classes} />;
|
|
16
|
+
};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export { Hero } from './Hero';
|
|
2
|
+
export { HeroBackground } from './HeroBackground';
|
|
3
|
+
export { HeroBody } from './HeroBody';
|
|
4
|
+
export { HeroButton } from './HeroButton';
|
|
5
|
+
export { HeroCategory } from './HeroCategory';
|
|
6
|
+
export { HeroTitle } from './HeroTitle';
|
|
7
|
+
|
|
8
|
+
export type { HeroProps } from './Hero';
|
|
9
|
+
export type { HeroBackgroundProps } from './HeroBackground';
|
|
10
|
+
export type { HeroBodyProps } from './HeroBody';
|
|
11
|
+
export type { HeroButtonProps } from './HeroButton';
|
|
12
|
+
export type { HeroCategoryProps } from './HeroCategory';
|
|
13
|
+
export type { HeroTitleProps } from './HeroTitle';
|