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,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
|
+
};
|