@laerdal/life-react-components 1.4.1-dev.2 → 1.4.1-dev.20
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/dist/Accordion/AccordionItem.cjs +77 -0
- package/dist/Accordion/AccordionItem.cjs.map +1 -0
- package/dist/Accordion/AccordionItem.d.ts +2 -0
- package/dist/Accordion/AccordionItem.js +8 -7
- package/dist/Accordion/AccordionItem.js.map +1 -1
- package/dist/Accordion/AccordionMenu.cjs +105 -0
- package/dist/Accordion/AccordionMenu.cjs.map +1 -0
- package/dist/Accordion/AccordionMenu.d.ts +2 -0
- package/dist/Accordion/AccordionMenu.js +8 -2
- package/dist/Accordion/AccordionMenu.js.map +1 -1
- package/dist/Accordion/ContentAccordion.cjs +172 -0
- package/dist/Accordion/ContentAccordion.cjs.map +1 -0
- package/dist/Accordion/ContentAccordion.d.ts +10 -1
- package/dist/Accordion/ContentAccordion.js +20 -19
- package/dist/Accordion/ContentAccordion.js.map +1 -1
- package/dist/Accordion/index.cjs +38 -0
- package/dist/Accordion/index.cjs.map +1 -0
- package/dist/Accordion/styles.cjs +45 -0
- package/dist/Accordion/styles.cjs.map +1 -0
- package/dist/Accordion/styles.d.ts +5 -5
- package/dist/Accordion/styles.js +9 -10
- package/dist/Accordion/styles.js.map +1 -1
- package/dist/AuthPage/AuthPage.cjs +80 -0
- package/dist/AuthPage/AuthPage.cjs.map +1 -0
- package/dist/AuthPage/Information.cjs +42 -0
- package/dist/AuthPage/Information.cjs.map +1 -0
- package/dist/AuthPage/ScreenSetsContainer.cjs +25 -0
- package/dist/AuthPage/ScreenSetsContainer.cjs.map +1 -0
- package/dist/AuthPage/_AuthPageSection.cjs +22 -0
- package/dist/AuthPage/_AuthPageSection.cjs.map +1 -0
- package/dist/AuthPage/index.cjs +64 -0
- package/dist/AuthPage/index.cjs.map +1 -0
- package/dist/AuthPage/screenSetsErrorMessages.cjs +13 -0
- package/dist/AuthPage/screenSetsErrorMessages.cjs.map +1 -0
- package/dist/Banners/Banner.cjs +291 -0
- package/dist/Banners/Banner.cjs.map +1 -0
- package/dist/Banners/Banner.js +5 -5
- package/dist/Banners/Banner.js.map +1 -1
- package/dist/Banners/OverviewBanner.cjs +55 -0
- package/dist/Banners/OverviewBanner.cjs.map +1 -0
- package/dist/Banners/index.cjs +24 -0
- package/dist/Banners/index.cjs.map +1 -0
- package/dist/Banners/styles.cjs +37 -0
- package/dist/Banners/styles.cjs.map +1 -0
- package/dist/Banners/styles.js +5 -4
- package/dist/Banners/styles.js.map +1 -1
- package/dist/Breadcrumb/Breadcrumb.cjs +169 -0
- package/dist/Breadcrumb/Breadcrumb.cjs.map +1 -0
- package/dist/Breadcrumb/BreadcrumbItem.cjs +6 -0
- package/dist/Breadcrumb/BreadcrumbItem.cjs.map +1 -0
- package/dist/Breadcrumb/index.cjs +16 -0
- package/dist/Breadcrumb/index.cjs.map +1 -0
- package/dist/Button/BackButton.cjs +75 -0
- package/dist/Button/BackButton.cjs.map +1 -0
- package/dist/Button/Button.cjs +340 -0
- package/dist/Button/Button.cjs.map +1 -0
- package/dist/Button/DualFunctionButton.cjs +162 -0
- package/dist/Button/DualFunctionButton.cjs.map +1 -0
- package/dist/Button/Iconbutton.cjs +195 -0
- package/dist/Button/Iconbutton.cjs.map +1 -0
- package/dist/Button/Iconbutton.d.ts +13 -0
- package/dist/Button/Iconbutton.js +2 -2
- package/dist/Button/Iconbutton.js.map +1 -1
- package/dist/Button/index.cjs +40 -0
- package/dist/Button/index.cjs.map +1 -0
- package/dist/Chips/ActionChip.cjs +81 -0
- package/dist/Chips/ActionChip.cjs.map +1 -0
- package/dist/Chips/ChipInput.cjs +199 -0
- package/dist/Chips/ChipInput.cjs.map +1 -0
- package/dist/Chips/ChipStyles.cjs +43 -0
- package/dist/Chips/ChipStyles.cjs.map +1 -0
- package/dist/Chips/ChipTypes.cjs +6 -0
- package/dist/Chips/ChipTypes.cjs.map +1 -0
- package/dist/Chips/ChoiceChips.cjs +94 -0
- package/dist/Chips/ChoiceChips.cjs.map +1 -0
- package/dist/Chips/FilterChip.cjs +81 -0
- package/dist/Chips/FilterChip.cjs.map +1 -0
- package/dist/Chips/InputChip.cjs +109 -0
- package/dist/Chips/InputChip.cjs.map +1 -0
- package/dist/Chips/index.cjs +48 -0
- package/dist/Chips/index.cjs.map +1 -0
- package/dist/Dropdown/BasicDropdown.cjs +300 -0
- package/dist/Dropdown/BasicDropdown.cjs.map +1 -0
- package/dist/Dropdown/ChipDropdownInput.cjs +435 -0
- package/dist/Dropdown/ChipDropdownInput.cjs.map +1 -0
- package/dist/Dropdown/CommonStyling.cjs +95 -0
- package/dist/Dropdown/CommonStyling.cjs.map +1 -0
- package/dist/Dropdown/DropdownButton.cjs +161 -0
- package/dist/Dropdown/DropdownButton.cjs.map +1 -0
- package/dist/Dropdown/DropdownButtonTypes.cjs +6 -0
- package/dist/Dropdown/DropdownButtonTypes.cjs.map +1 -0
- package/dist/Dropdown/DropdownContent.cjs +600 -0
- package/dist/Dropdown/DropdownContent.cjs.map +1 -0
- package/dist/Dropdown/DropdownFilter.cjs +357 -0
- package/dist/Dropdown/DropdownFilter.cjs.map +1 -0
- package/dist/Dropdown/index.cjs +40 -0
- package/dist/Dropdown/index.cjs.map +1 -0
- package/dist/Dropdown/index.d.ts +1 -0
- package/dist/Dropdown/index.js.map +1 -1
- package/dist/Footer/Components/FooterBottomLinks.cjs +69 -0
- package/dist/Footer/Components/FooterBottomLinks.cjs.map +1 -0
- package/dist/Footer/Components/FooterDropdownLinks.cjs +91 -0
- package/dist/Footer/Components/FooterDropdownLinks.cjs.map +1 -0
- package/dist/Footer/Components/FooterNavSection.cjs +90 -0
- package/dist/Footer/Components/FooterNavSection.cjs.map +1 -0
- package/dist/Footer/Components/FooterNewsletterAndSocialSection.cjs +129 -0
- package/dist/Footer/Components/FooterNewsletterAndSocialSection.cjs.map +1 -0
- package/dist/Footer/Components/FooterTop.cjs +91 -0
- package/dist/Footer/Components/FooterTop.cjs.map +1 -0
- package/dist/Footer/Footer.cjs +41 -0
- package/dist/Footer/Footer.cjs.map +1 -0
- package/dist/Footer/SiteFooter.cjs +89 -0
- package/dist/Footer/SiteFooter.cjs.map +1 -0
- package/dist/Footer/index.cjs +24 -0
- package/dist/Footer/index.cjs.map +1 -0
- package/dist/GlobalNavigationBar/Actions.cjs +185 -0
- package/dist/GlobalNavigationBar/Actions.cjs.map +1 -0
- package/dist/GlobalNavigationBar/Avatar.cjs +106 -0
- package/dist/GlobalNavigationBar/Avatar.cjs.map +1 -0
- package/dist/GlobalNavigationBar/ExtendedMainMenu.cjs +100 -0
- package/dist/GlobalNavigationBar/ExtendedMainMenu.cjs.map +1 -0
- package/dist/GlobalNavigationBar/GlobalNavigationBar.cjs +303 -0
- package/dist/GlobalNavigationBar/GlobalNavigationBar.cjs.map +1 -0
- package/dist/GlobalNavigationBar/Logo.cjs +102 -0
- package/dist/GlobalNavigationBar/Logo.cjs.map +1 -0
- package/dist/GlobalNavigationBar/MainMenu.cjs +169 -0
- package/dist/GlobalNavigationBar/MainMenu.cjs.map +1 -0
- package/dist/GlobalNavigationBar/RightSideNav.cjs +89 -0
- package/dist/GlobalNavigationBar/RightSideNav.cjs.map +1 -0
- package/dist/GlobalNavigationBar/UserMenu/MenuLink.cjs +108 -0
- package/dist/GlobalNavigationBar/UserMenu/MenuLink.cjs.map +1 -0
- package/dist/GlobalNavigationBar/UserMenu/MobileUserMenu.cjs +176 -0
- package/dist/GlobalNavigationBar/UserMenu/MobileUserMenu.cjs.map +1 -0
- package/dist/GlobalNavigationBar/UserMenu/UserMenu.cjs +168 -0
- package/dist/GlobalNavigationBar/UserMenu/UserMenu.cjs.map +1 -0
- package/dist/GlobalNavigationBar/index.cjs +36 -0
- package/dist/GlobalNavigationBar/index.cjs.map +1 -0
- package/dist/GlobalNavigationBar/mobile/CommonStyles.cjs +71 -0
- package/dist/GlobalNavigationBar/mobile/CommonStyles.cjs.map +1 -0
- package/dist/GlobalNavigationBar/mobile/ExitMenuButton.cjs +49 -0
- package/dist/GlobalNavigationBar/mobile/ExitMenuButton.cjs.map +1 -0
- package/dist/GlobalNavigationBar/mobile/MobileActionMenu.cjs +91 -0
- package/dist/GlobalNavigationBar/mobile/MobileActionMenu.cjs.map +1 -0
- package/dist/GlobalNavigationBar/mobile/MobileMenu.cjs +290 -0
- package/dist/GlobalNavigationBar/mobile/MobileMenu.cjs.map +1 -0
- package/dist/HyperLink/HyperLink.cjs +72 -0
- package/dist/HyperLink/HyperLink.cjs.map +1 -0
- package/dist/HyperLink/index.cjs +30 -0
- package/dist/HyperLink/index.cjs.map +1 -0
- package/dist/HyperLink/styling.cjs +22 -0
- package/dist/HyperLink/styling.cjs.map +1 -0
- package/dist/InputFields/Checkbox.cjs +126 -0
- package/dist/InputFields/Checkbox.cjs.map +1 -0
- package/dist/InputFields/Checkbox.d.ts +1 -0
- package/dist/InputFields/Checkbox.js +5 -3
- package/dist/InputFields/Checkbox.js.map +1 -1
- package/dist/InputFields/DatepickerField.cjs +252 -0
- package/dist/InputFields/DatepickerField.cjs.map +1 -0
- package/dist/InputFields/DatepickerFieldHeader.cjs +107 -0
- package/dist/InputFields/DatepickerFieldHeader.cjs.map +1 -0
- package/dist/InputFields/Label.cjs +104 -0
- package/dist/InputFields/Label.cjs.map +1 -0
- package/dist/InputFields/Label.js +1 -1
- package/dist/InputFields/Label.js.map +1 -1
- package/dist/InputFields/PasswordField.cjs +150 -0
- package/dist/InputFields/PasswordField.cjs.map +1 -0
- package/dist/InputFields/QuickSearch.cjs +201 -0
- package/dist/InputFields/QuickSearch.cjs.map +1 -0
- package/dist/InputFields/RadioButton.cjs +114 -0
- package/dist/InputFields/RadioButton.cjs.map +1 -0
- package/dist/InputFields/RadioButton.d.ts +1 -0
- package/dist/InputFields/RadioButton.js +5 -3
- package/dist/InputFields/RadioButton.js.map +1 -1
- package/dist/InputFields/ResponsiveComponentWrapper.cjs +72 -0
- package/dist/InputFields/ResponsiveComponentWrapper.cjs.map +1 -0
- package/dist/InputFields/SearchBar.cjs +146 -0
- package/dist/InputFields/SearchBar.cjs.map +1 -0
- package/dist/InputFields/TextField.cjs +126 -0
- package/dist/InputFields/TextField.cjs.map +1 -0
- package/dist/InputFields/Textarea.cjs +96 -0
- package/dist/InputFields/Textarea.cjs.map +1 -0
- package/dist/InputFields/components/SearchBarInput.cjs +99 -0
- package/dist/InputFields/components/SearchBarInput.cjs.map +1 -0
- package/dist/InputFields/components/SearchField.cjs +71 -0
- package/dist/InputFields/components/SearchField.cjs.map +1 -0
- package/dist/InputFields/index.cjs +80 -0
- package/dist/InputFields/index.cjs.map +1 -0
- package/dist/InputFields/styling.cjs +76 -0
- package/dist/InputFields/styling.cjs.map +1 -0
- package/dist/Layouts/index.cjs +56 -0
- package/dist/Layouts/index.cjs.map +1 -0
- package/dist/List/ListRow.cjs +143 -0
- package/dist/List/ListRow.cjs.map +1 -0
- package/dist/List/index.cjs +16 -0
- package/dist/List/index.cjs.map +1 -0
- package/dist/LoadingIndicator/LoadingIndicator.cjs +71 -0
- package/dist/LoadingIndicator/LoadingIndicator.cjs.map +1 -0
- package/dist/LoadingIndicator/index.cjs +16 -0
- package/dist/LoadingIndicator/index.cjs.map +1 -0
- package/dist/LoadingPage/GlobalLoadingPage.cjs +66 -0
- package/dist/LoadingPage/GlobalLoadingPage.cjs.map +1 -0
- package/dist/LoadingPage/index.cjs +16 -0
- package/dist/LoadingPage/index.cjs.map +1 -0
- package/dist/MiniProductCard/MiniProductCard.cjs +80 -0
- package/dist/MiniProductCard/MiniProductCard.cjs.map +1 -0
- package/dist/MiniProductCard/index.cjs +16 -0
- package/dist/MiniProductCard/index.cjs.map +1 -0
- package/dist/Modals/Modal.cjs +92 -0
- package/dist/Modals/Modal.cjs.map +1 -0
- package/dist/Modals/ModalContainer.cjs +176 -0
- package/dist/Modals/ModalContainer.cjs.map +1 -0
- package/dist/Modals/ModalContainer.js +1 -1
- package/dist/Modals/ModalContainer.js.map +1 -1
- package/dist/Modals/ModalDialog.cjs +363 -0
- package/dist/Modals/ModalDialog.cjs.map +1 -0
- package/dist/Modals/ModalDialog.d.ts +1 -0
- package/dist/Modals/ModalDialog.js +22 -2
- package/dist/Modals/ModalDialog.js.map +1 -1
- package/dist/Modals/ModalNote.cjs +93 -0
- package/dist/Modals/ModalNote.cjs.map +1 -0
- package/dist/Modals/ModalStyles.cjs +154 -0
- package/dist/Modals/ModalStyles.cjs.map +1 -0
- package/dist/Modals/ModalStyles.js +1 -1
- package/dist/Modals/ModalStyles.js.map +1 -1
- package/dist/Modals/ModalTypes.cjs +6 -0
- package/dist/Modals/ModalTypes.cjs.map +1 -0
- package/dist/Modals/index.cjs +70 -0
- package/dist/Modals/index.cjs.map +1 -0
- package/dist/Modals/index.d.ts +1 -0
- package/dist/Modals/index.js.map +1 -1
- package/dist/NavItem/NavItem.cjs +26 -0
- package/dist/NavItem/NavItem.cjs.map +1 -0
- package/dist/NavItem/index.cjs +16 -0
- package/dist/NavItem/index.cjs.map +1 -0
- package/dist/NotificationDot/NotificationDot.cjs +74 -0
- package/dist/NotificationDot/NotificationDot.cjs.map +1 -0
- package/dist/NotificationDot/index.cjs +16 -0
- package/dist/NotificationDot/index.cjs.map +1 -0
- package/dist/Paginator/Paginator.cjs +191 -0
- package/dist/Paginator/Paginator.cjs.map +1 -0
- package/dist/Paginator/index.cjs +16 -0
- package/dist/Paginator/index.cjs.map +1 -0
- package/dist/QuizButton/QuizButton.cjs +150 -0
- package/dist/QuizButton/QuizButton.cjs.map +1 -0
- package/dist/QuizButton/QuizButton.d.ts +15 -0
- package/dist/QuizButton/QuizButton.js +126 -0
- package/dist/QuizButton/QuizButton.js.map +1 -0
- package/dist/QuizButton/index.cjs +16 -0
- package/dist/QuizButton/index.cjs.map +1 -0
- package/dist/QuizButton/index.d.ts +1 -0
- package/dist/QuizButton/index.js +2 -0
- package/dist/QuizButton/index.js.map +1 -0
- package/dist/Services/functions.cjs +19 -0
- package/dist/Services/functions.cjs.map +1 -0
- package/dist/SkipToContent/SkipToContent.cjs +46 -0
- package/dist/SkipToContent/SkipToContent.cjs.map +1 -0
- package/dist/SkipToContent/index.cjs +16 -0
- package/dist/SkipToContent/index.cjs.map +1 -0
- package/dist/Switcher/MobileSwitcherMenu.cjs +120 -0
- package/dist/Switcher/MobileSwitcherMenu.cjs.map +1 -0
- package/dist/Switcher/SwitcherMenuItem.cjs +62 -0
- package/dist/Switcher/SwitcherMenuItem.cjs.map +1 -0
- package/dist/Switcher/index.cjs +24 -0
- package/dist/Switcher/index.cjs.map +1 -0
- package/dist/Table/Table.cjs +463 -0
- package/dist/Table/Table.cjs.map +1 -0
- package/dist/Table/TableBody.cjs +186 -0
- package/dist/Table/TableBody.cjs.map +1 -0
- package/dist/Table/TableFooter.cjs +119 -0
- package/dist/Table/TableFooter.cjs.map +1 -0
- package/dist/Table/TableHeaders.cjs +100 -0
- package/dist/Table/TableHeaders.cjs.map +1 -0
- package/dist/Table/TableStyles.cjs +104 -0
- package/dist/Table/TableStyles.cjs.map +1 -0
- package/dist/Table/TableTypes.cjs +6 -0
- package/dist/Table/TableTypes.cjs.map +1 -0
- package/dist/Table/index.cjs +16 -0
- package/dist/Table/index.cjs.map +1 -0
- package/dist/Table/index.d.ts +1 -0
- package/dist/Table/index.js.map +1 -1
- package/dist/Tabs/HorizontalTabs.cjs +98 -0
- package/dist/Tabs/HorizontalTabs.cjs.map +1 -0
- package/dist/Tabs/HorizontalTabs.d.ts +1 -1
- package/dist/Tabs/HorizontalTabs.js.map +1 -1
- package/dist/Tabs/TabLink.cjs +128 -0
- package/dist/Tabs/TabLink.cjs.map +1 -0
- package/dist/Tabs/Tabs.cjs +121 -0
- package/dist/Tabs/Tabs.cjs.map +1 -0
- package/dist/Tabs/VerticalTabs.cjs +68 -0
- package/dist/Tabs/VerticalTabs.cjs.map +1 -0
- package/dist/Tabs/index.cjs +24 -0
- package/dist/Tabs/index.cjs.map +1 -0
- package/dist/Tabs/index.d.ts +2 -0
- package/dist/Tabs/index.js.map +1 -1
- package/dist/Toasters/Toast.cjs +289 -0
- package/dist/Toasters/Toast.cjs.map +1 -0
- package/dist/Toasters/Toast.js +2 -2
- package/dist/Toasters/Toast.js.map +1 -1
- package/dist/Toasters/ToastContext.cjs +179 -0
- package/dist/Toasters/ToastContext.cjs.map +1 -0
- package/dist/Toasters/index.cjs +36 -0
- package/dist/Toasters/index.cjs.map +1 -0
- package/dist/Toggles/ToggleSwitch.cjs +73 -0
- package/dist/Toggles/ToggleSwitch.cjs.map +1 -0
- package/dist/Toggles/TogglerStyles.cjs +39 -0
- package/dist/Toggles/TogglerStyles.cjs.map +1 -0
- package/dist/Toggles/TogglerTypes.cjs +6 -0
- package/dist/Toggles/TogglerTypes.cjs.map +1 -0
- package/dist/Toggles/index.cjs +16 -0
- package/dist/Toggles/index.cjs.map +1 -0
- package/dist/Tooltips/TooltipStyles.cjs +96 -0
- package/dist/Tooltips/TooltipStyles.cjs.map +1 -0
- package/dist/Tooltips/TooltipTypes.cjs +11 -0
- package/dist/Tooltips/TooltipTypes.cjs.map +1 -0
- package/dist/Tooltips/TooltipWrapper.cjs +51 -0
- package/dist/Tooltips/TooltipWrapper.cjs.map +1 -0
- package/dist/Tooltips/index.cjs +36 -0
- package/dist/Tooltips/index.cjs.map +1 -0
- package/dist/Tooltips/index.d.ts +2 -2
- package/dist/Tooltips/index.js +2 -2
- package/dist/Tooltips/index.js.map +1 -1
- package/dist/assets/index.cjs +173 -0
- package/dist/assets/index.cjs.map +1 -0
- package/dist/common/EventHandlers.cjs +20 -0
- package/dist/common/EventHandlers.cjs.map +1 -0
- package/dist/common/FocusVisible.cjs +77 -0
- package/dist/common/FocusVisible.cjs.map +1 -0
- package/dist/common/InputStyling.cjs +20 -0
- package/dist/common/InputStyling.cjs.map +1 -0
- package/dist/common/index.cjs +30 -0
- package/dist/common/index.cjs.map +1 -0
- package/dist/common/index.d.ts +1 -0
- package/dist/common/index.js +1 -0
- package/dist/common/index.js.map +1 -1
- package/dist/hooks/useClickOutside.cjs +35 -0
- package/dist/hooks/useClickOutside.cjs.map +1 -0
- package/dist/icons/contenticons/ContentIcons.cjs +4530 -0
- package/dist/icons/contenticons/ContentIcons.cjs.map +1 -0
- package/dist/icons/index.cjs +147 -0
- package/dist/icons/index.cjs.map +1 -0
- package/dist/icons/systemicons/SystemIcons.cjs +4134 -0
- package/dist/icons/systemicons/SystemIcons.cjs.map +1 -0
- package/dist/index.cjs +422 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/styles/breakpoints.cjs +16 -0
- package/dist/styles/breakpoints.cjs.map +1 -0
- package/dist/styles/colors.cjs +108 -0
- package/dist/styles/colors.cjs.map +1 -0
- package/dist/styles/global.cjs +15 -0
- package/dist/styles/global.cjs.map +1 -0
- package/dist/styles/index.cjs +288 -0
- package/dist/styles/index.cjs.map +1 -0
- package/dist/styles/index.d.ts +1 -0
- package/dist/styles/index.js +1 -0
- package/dist/styles/index.js.map +1 -1
- package/dist/styles/shadowstyles.cjs +14 -0
- package/dist/styles/shadowstyles.cjs.map +1 -0
- package/dist/styles/typography.cjs +640 -0
- package/dist/styles/typography.cjs.map +1 -0
- package/dist/styles/z-indexes.cjs +22 -0
- package/dist/styles/z-indexes.cjs.map +1 -0
- package/dist/types.cjs +59 -0
- package/dist/types.cjs.map +1 -0
- package/package.json +13 -5
|
@@ -0,0 +1,195 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = exports.StyledSecondaryIconButton = exports.StyledPrimaryIconButton = void 0;
|
|
9
|
+
|
|
10
|
+
var _taggedTemplateLiteral2 = _interopRequireDefault(require("@babel/runtime/helpers/taggedTemplateLiteral"));
|
|
11
|
+
|
|
12
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
13
|
+
|
|
14
|
+
var _react = _interopRequireDefault(require("react"));
|
|
15
|
+
|
|
16
|
+
var _styledComponents = _interopRequireDefault(require("styled-components"));
|
|
17
|
+
|
|
18
|
+
var _styles = require("../styles");
|
|
19
|
+
|
|
20
|
+
var _common = require("../common");
|
|
21
|
+
|
|
22
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
23
|
+
|
|
24
|
+
var _templateObject, _templateObject2, _templateObject3;
|
|
25
|
+
|
|
26
|
+
var getBorderRadius = function getBorderRadius(props) {
|
|
27
|
+
return props.borderRadius ? "".concat(props.borderRadius, "px") : '4px';
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
var getBorderRadiusStyle = function getBorderRadiusStyle(props) {
|
|
31
|
+
var radius = getBorderRadius(props);
|
|
32
|
+
|
|
33
|
+
switch (props.flatEdge) {
|
|
34
|
+
case 'left':
|
|
35
|
+
return "0px ".concat(radius, " ").concat(radius, " 0px");
|
|
36
|
+
|
|
37
|
+
case 'right':
|
|
38
|
+
return "".concat(radius, " 0px 0px ").concat(radius);
|
|
39
|
+
|
|
40
|
+
case 'none':
|
|
41
|
+
default:
|
|
42
|
+
return "".concat(radius);
|
|
43
|
+
}
|
|
44
|
+
};
|
|
45
|
+
|
|
46
|
+
var StyledIconButton = _styledComponents.default.button(_templateObject || (_templateObject = (0, _taggedTemplateLiteral2.default)(["\n border-width: 0;\n cursor: pointer;\n height: 48px;\n width: 48px;\n background: transparent;\n\n display: ", ";\n ", " {\n display: block;\n }\n\n border-radius: ", ";\n div {\n height: 36px;\n width: 36px;\n border-radius: ", ";\n display: flex;\n justify-content: center;\n align-items: center;\n svg {\n height: ", ";\n width: ", ";\n padding: 0;\n }\n }\n &:only-child {\n margin: 0;\n }\n &:disabled {\n cursor: not-allowed;\n }\n &:focus:not(:disabled) {\n outline: none;\n div {\n outline: none;\n }\n }\n &:active:not(:disabled) {\n div {\n box-shadow: none !important;\n }\n }\n"])), function (props) {
|
|
47
|
+
return props.hideOnLowWidth ? 'none' : 'block';
|
|
48
|
+
}, _styles.BREAKPOINTS.MEDIUM, function (props) {
|
|
49
|
+
return props.borderRadius ? "".concat(props.borderRadius, "px") : '4px';
|
|
50
|
+
}, getBorderRadiusStyle, function (props) {
|
|
51
|
+
return props.unsetIconSize ? 'unset' : '24px';
|
|
52
|
+
}, function (props) {
|
|
53
|
+
return props.unsetIconSize ? 'unset' : '24px';
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
var StyledPrimaryIconButton = (0, _styledComponents.default)(StyledIconButton)(_templateObject2 || (_templateObject2 = (0, _taggedTemplateLiteral2.default)(["\n div {\n background-color: ", ";\n\n svg {\n fill: ", ";\n path {\n fill: ", ";\n }\n }\n }\n &:hover:not(:disabled) {\n div {\n background-color: ", ";\n }\n div svg path,\n div svg {\n fill: ", ";\n }\n }\n &:active:not(:disabled) {\n div {\n background: ", ";\n }\n div svg path,\n div svg {\n fill: ", ";\n }\n }\n &:disabled {\n div {\n background-color: ", ";\n }\n svg {\n path {\n fill: ", ";\n }\n fill: ", ";\n }\n }\n &:focus:not(:disabled) {\n div {\n background-color: ", " !important;\n box-shadow: 0px 4px 12px rgba(46, 127, 161, 0.25), 0px 0px 8px #2e7fa1;\n }\n div svg path,\n div svg {\n fill: ", ";\n }\n }\n"])), function (props) {
|
|
57
|
+
return props.useTransparentBackground ? 'transparent' : _styles.COLORS.primary_500;
|
|
58
|
+
}, function (props) {
|
|
59
|
+
return props.iconColor || _styles.COLORS.white;
|
|
60
|
+
}, function (props) {
|
|
61
|
+
return props.iconColor || _styles.COLORS.white;
|
|
62
|
+
}, _styles.COLORS.primary_700, _styles.COLORS.white, _styles.COLORS.primary_800, _styles.COLORS.white, _styles.COLORS.neutral_200, _styles.COLORS.white, _styles.COLORS.white, function (props) {
|
|
63
|
+
return props.focusBackgroundColor || _styles.COLORS.primary_700;
|
|
64
|
+
}, _styles.COLORS.white);
|
|
65
|
+
exports.StyledPrimaryIconButton = StyledPrimaryIconButton;
|
|
66
|
+
var StyledSecondaryIconButton = (0, _styledComponents.default)(StyledIconButton)(_templateObject3 || (_templateObject3 = (0, _taggedTemplateLiteral2.default)(["\n div {\n background-color: ", ";\n\n svg {\n fill: ", ";\n path {\n fill: ", ";\n }\n }\n }\n &:hover:not(:disabled) {\n div {\n background-color: ", ";\n }\n div svg path,\n div svg {\n fill: ", ";\n }\n }\n &:active:not(:disabled) {\n div {\n background: ", ";\n }\n div svg path,\n div svg {\n fill: ", ";\n }\n }\n\n &:disabled {\n div {\n background-color: ", ";\n }\n svg {\n path {\n fill: ", ";\n }\n fill: ", ";\n }\n }\n\n &:focus:not(:disabled) {\n div {\n background-color: ", ";\n box-shadow: 0px 0px 8px ", ", 0px 4px 12px rgba(46, 127, 161, 0.25);\n }\n div svg path,\n div svg {\n fill: ", ";\n }\n }\n"])), function (props) {
|
|
67
|
+
return props.useTransparentBackground ? 'transparent' : _styles.COLORS.white;
|
|
68
|
+
}, function (props) {
|
|
69
|
+
return props.iconColor || _styles.COLORS.neutral_600;
|
|
70
|
+
}, function (props) {
|
|
71
|
+
return props.iconColor || _styles.COLORS.neutral_600;
|
|
72
|
+
}, _styles.COLORS.primary_20, _styles.COLORS.primary_700, _styles.COLORS.primary_100, _styles.COLORS.primary_800, function (props) {
|
|
73
|
+
return props.useTransparentBackground ? 'transparent' : _styles.COLORS.white;
|
|
74
|
+
}, _styles.COLORS.neutral_300, _styles.COLORS.neutral_300, function (props) {
|
|
75
|
+
return props.focusBackgroundColor || 'transparent';
|
|
76
|
+
}, _styles.COLORS.primary_500, _styles.COLORS.neutral_600);
|
|
77
|
+
exports.StyledSecondaryIconButton = StyledSecondaryIconButton;
|
|
78
|
+
|
|
79
|
+
var IconButton = /*#__PURE__*/_react.default.forwardRef(function (_ref, ref) {
|
|
80
|
+
var id = _ref.id,
|
|
81
|
+
variant = _ref.variant,
|
|
82
|
+
shape = _ref.shape,
|
|
83
|
+
action = _ref.action,
|
|
84
|
+
hideOnLowWidth = _ref.hideOnLowWidth,
|
|
85
|
+
isInMobileMenu = _ref.isInMobileMenu,
|
|
86
|
+
children = _ref.children,
|
|
87
|
+
useTransparentBackground = _ref.useTransparentBackground,
|
|
88
|
+
disabled = _ref.disabled,
|
|
89
|
+
iconColor = _ref.iconColor,
|
|
90
|
+
unsetIconSize = _ref.unsetIconSize,
|
|
91
|
+
tabIndex = _ref.tabIndex,
|
|
92
|
+
flatEdge = _ref.flatEdge,
|
|
93
|
+
borderRadius = _ref.borderRadius,
|
|
94
|
+
onKeyPress = _ref.onKeyPress,
|
|
95
|
+
focusBackgroundColor = _ref.focusBackgroundColor,
|
|
96
|
+
type = _ref.type,
|
|
97
|
+
hidden = _ref.hidden;
|
|
98
|
+
|
|
99
|
+
var isPressingEnter = function isPressingEnter(e) {
|
|
100
|
+
if (e.key === 'Enter') {
|
|
101
|
+
e.preventDefault();
|
|
102
|
+
e.stopPropagation();
|
|
103
|
+
return true;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
return false;
|
|
107
|
+
}; // Let's render button
|
|
108
|
+
|
|
109
|
+
|
|
110
|
+
switch (variant) {
|
|
111
|
+
case 'secondary':
|
|
112
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(StyledSecondaryIconButton, {
|
|
113
|
+
id: id,
|
|
114
|
+
type: type !== null && type !== void 0 ? type : 'button',
|
|
115
|
+
"data-testid": id,
|
|
116
|
+
ref: ref,
|
|
117
|
+
onClick: function onClick(event) {
|
|
118
|
+
event.stopPropagation();
|
|
119
|
+
action(event);
|
|
120
|
+
},
|
|
121
|
+
onKeyDown: function onKeyDown(e) {
|
|
122
|
+
return isPressingEnter(e) ? action() : null;
|
|
123
|
+
},
|
|
124
|
+
disabled: disabled,
|
|
125
|
+
hideOnLowWidth: hideOnLowWidth || false,
|
|
126
|
+
inMobileMenu: isInMobileMenu,
|
|
127
|
+
useTransparentBackground: useTransparentBackground,
|
|
128
|
+
iconColor: iconColor,
|
|
129
|
+
unsetIconSize: unsetIconSize,
|
|
130
|
+
tabIndex: tabIndex || 0,
|
|
131
|
+
borderRadius: borderRadius || shape === 'circular' ? 18 : 0,
|
|
132
|
+
onMouseDown: _common.defaultOnMouseDownHandler,
|
|
133
|
+
onKeyPress: onKeyPress,
|
|
134
|
+
hidden: hidden,
|
|
135
|
+
focusBackgroundColor: focusBackgroundColor,
|
|
136
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
137
|
+
children: children
|
|
138
|
+
})
|
|
139
|
+
});
|
|
140
|
+
|
|
141
|
+
case 'primary':
|
|
142
|
+
default:
|
|
143
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(StyledPrimaryIconButton, {
|
|
144
|
+
id: id,
|
|
145
|
+
type: type !== null && type !== void 0 ? type : 'button',
|
|
146
|
+
"data-testid": id,
|
|
147
|
+
flatEdge: flatEdge,
|
|
148
|
+
ref: ref,
|
|
149
|
+
onClick: function onClick(event) {
|
|
150
|
+
event.stopPropagation();
|
|
151
|
+
action(event);
|
|
152
|
+
},
|
|
153
|
+
onKeyDown: function onKeyDown(e) {
|
|
154
|
+
return isPressingEnter(e) ? action() : null;
|
|
155
|
+
},
|
|
156
|
+
disabled: disabled,
|
|
157
|
+
hideOnLowWidth: hideOnLowWidth || false,
|
|
158
|
+
inMobileMenu: isInMobileMenu,
|
|
159
|
+
useTransparentBackground: useTransparentBackground,
|
|
160
|
+
iconColor: iconColor,
|
|
161
|
+
unsetIconSize: unsetIconSize,
|
|
162
|
+
tabIndex: tabIndex || 0,
|
|
163
|
+
borderRadius: borderRadius || shape === 'circular' ? 18 : 0,
|
|
164
|
+
onMouseDown: _common.defaultOnMouseDownHandler,
|
|
165
|
+
onKeyPress: onKeyPress,
|
|
166
|
+
hidden: hidden,
|
|
167
|
+
focusBackgroundColor: focusBackgroundColor,
|
|
168
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsx)("div", {
|
|
169
|
+
children: children
|
|
170
|
+
})
|
|
171
|
+
});
|
|
172
|
+
}
|
|
173
|
+
});
|
|
174
|
+
|
|
175
|
+
IconButton.propTypes = {
|
|
176
|
+
id: _propTypes.default.string,
|
|
177
|
+
variant: _propTypes.default.oneOf(['primary', 'secondary']),
|
|
178
|
+
shape: _propTypes.default.oneOf(['square', 'circular']),
|
|
179
|
+
action: _propTypes.default.func.isRequired,
|
|
180
|
+
hideOnLowWidth: _propTypes.default.bool,
|
|
181
|
+
isInMobileMenu: _propTypes.default.bool,
|
|
182
|
+
disabled: _propTypes.default.bool,
|
|
183
|
+
useTransparentBackground: _propTypes.default.bool,
|
|
184
|
+
iconColor: _propTypes.default.string,
|
|
185
|
+
unsetIconSize: _propTypes.default.bool,
|
|
186
|
+
tabIndex: _propTypes.default.number,
|
|
187
|
+
borderRadius: _propTypes.default.number,
|
|
188
|
+
onKeyPress: _propTypes.default.func,
|
|
189
|
+
focusBackgroundColor: _propTypes.default.string,
|
|
190
|
+
children: _propTypes.default.node,
|
|
191
|
+
hidden: _propTypes.default.bool
|
|
192
|
+
};
|
|
193
|
+
var _default = IconButton;
|
|
194
|
+
exports.default = _default;
|
|
195
|
+
//# sourceMappingURL=Iconbutton.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/Button/Iconbutton.tsx"],"names":["getBorderRadius","props","borderRadius","getBorderRadiusStyle","radius","flatEdge","StyledIconButton","styled","button","hideOnLowWidth","BREAKPOINTS","MEDIUM","unsetIconSize","StyledPrimaryIconButton","useTransparentBackground","COLORS","primary_500","iconColor","white","primary_700","primary_800","neutral_200","focusBackgroundColor","StyledSecondaryIconButton","neutral_600","primary_20","primary_100","neutral_300","IconButton","React","forwardRef","ref","id","variant","shape","action","isInMobileMenu","children","disabled","tabIndex","onKeyPress","type","hidden","isPressingEnter","e","key","preventDefault","stopPropagation","event","defaultOnMouseDownHandler"],"mappings":"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","sourcesContent":["import React from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { BREAKPOINTS, COLORS } from '../styles';\nimport {defaultOnMouseDownHandler} from '../common';\n\ninterface HeaderItemProps {\n hideOnLowWidth: boolean;\n inMobileMenu?: boolean;\n useTransparentBackground?: boolean;\n iconColor?: string;\n unsetIconSize?: boolean;\n borderRadius?: number;\n shape?: string;\n flatEdge?: string;\n focusBackgroundColor?: string;\n}\n\nconst getBorderRadius = (props:HeaderItemProps) => (props.borderRadius ? `${props.borderRadius}px` : '4px');\n\nconst getBorderRadiusStyle = (props:HeaderItemProps) => {\n const radius = getBorderRadius(props);\n switch(props.flatEdge)\n {\n case 'left':\n return `0px ${radius} ${radius} 0px`;\n \n case 'right':\n return `${radius} 0px 0px ${radius}`;\n\n case 'none':\n default:\n return `${radius}`;\n }\n};\n\nconst StyledIconButton = styled.button<HeaderItemProps>`\n border-width: 0;\n cursor: pointer;\n height: 48px;\n width: 48px;\n background: transparent;\n\n display: ${(props) => (props.hideOnLowWidth ? 'none' : 'block')};\n ${BREAKPOINTS.MEDIUM} {\n display: block;\n }\n\n border-radius: ${(props) => (props.borderRadius ? `${props.borderRadius}px` : '4px')};\n div {\n height: 36px;\n width: 36px;\n border-radius: ${getBorderRadiusStyle};\n display: flex;\n justify-content: center;\n align-items: center;\n svg {\n height: ${(props) => (props.unsetIconSize ? 'unset' : '24px')};\n width: ${(props) => (props.unsetIconSize ? 'unset' : '24px')};\n padding: 0;\n }\n }\n &:only-child {\n margin: 0;\n }\n &:disabled {\n cursor: not-allowed;\n }\n &:focus:not(:disabled) {\n outline: none;\n div {\n outline: none;\n }\n }\n &:active:not(:disabled) {\n div {\n box-shadow: none !important;\n }\n }\n`;\n\nexport const StyledPrimaryIconButton = styled(StyledIconButton)`\n div {\n background-color: ${(props) => (props.useTransparentBackground ? 'transparent' : COLORS.primary_500)};\n\n svg {\n fill: ${(props) => props.iconColor || COLORS.white};\n path {\n fill: ${(props) => props.iconColor || COLORS.white};\n }\n }\n }\n &:hover:not(:disabled) {\n div {\n background-color: ${COLORS.primary_700};\n }\n div svg path,\n div svg {\n fill: ${COLORS.white};\n }\n }\n &:active:not(:disabled) {\n div {\n background: ${COLORS.primary_800};\n }\n div svg path,\n div svg {\n fill: ${COLORS.white};\n }\n }\n &:disabled {\n div {\n background-color: ${COLORS.neutral_200};\n }\n svg {\n path {\n fill: ${COLORS.white};\n }\n fill: ${COLORS.white};\n }\n }\n &:focus:not(:disabled) {\n div {\n background-color: ${(props) => props.focusBackgroundColor || COLORS.primary_700} !important;\n box-shadow: 0px 4px 12px rgba(46, 127, 161, 0.25), 0px 0px 8px #2e7fa1;\n }\n div svg path,\n div svg {\n fill: ${COLORS.white};\n }\n }\n`;\n\nexport const StyledSecondaryIconButton = styled(StyledIconButton)`\n div {\n background-color: ${(props) => (props.useTransparentBackground ? 'transparent' : COLORS.white)};\n\n svg {\n fill: ${(props) => props.iconColor || COLORS.neutral_600};\n path {\n fill: ${(props) => props.iconColor || COLORS.neutral_600};\n }\n }\n }\n &:hover:not(:disabled) {\n div {\n background-color: ${COLORS.primary_20};\n }\n div svg path,\n div svg {\n fill: ${COLORS.primary_700};\n }\n }\n &:active:not(:disabled) {\n div {\n background: ${COLORS.primary_100};\n }\n div svg path,\n div svg {\n fill: ${COLORS.primary_800};\n }\n }\n\n &:disabled {\n div {\n background-color: ${(props) => (props.useTransparentBackground ? 'transparent' : COLORS.white)};\n }\n svg {\n path {\n fill: ${COLORS.neutral_300};\n }\n fill: ${COLORS.neutral_300};\n }\n }\n\n &:focus:not(:disabled) {\n div {\n background-color: ${(props) => props.focusBackgroundColor || 'transparent'};\n box-shadow: 0px 0px 8px ${COLORS.primary_500}, 0px 4px 12px rgba(46, 127, 161, 0.25);\n }\n div svg path,\n div svg {\n fill: ${COLORS.neutral_600};\n }\n }\n`;\n\nexport interface IconButtonProps {\n id?: string;\n variant?: 'primary' | 'secondary';\n shape?: 'square' | 'circular';\n action: (event?: React.MouseEvent<HTMLButtonElement>) => void;\n hideOnLowWidth?: boolean;\n flatEdge?: 'right' | 'left' | 'none' | undefined;\n isInMobileMenu?: boolean;\n disabled?: boolean;\n useTransparentBackground?: boolean;\n iconColor?: string;\n unsetIconSize?: boolean;\n tabIndex?: number;\n borderRadius?: number;\n onKeyPress?: React.KeyboardEventHandler<HTMLButtonElement>;\n focusBackgroundColor?: string;\n type?: 'submit' | 'reset' | 'button' | undefined;\n children?: React.ReactNode;\n hidden?: boolean;\n}\n\nconst IconButton = React.forwardRef<HTMLButtonElement, IconButtonProps>(({\n id,\n variant,\n shape,\n action,\n hideOnLowWidth,\n isInMobileMenu,\n children,\n useTransparentBackground,\n disabled,\n iconColor,\n unsetIconSize,\n tabIndex,\n flatEdge,\n borderRadius,\n onKeyPress,\n focusBackgroundColor,\n type,\n hidden\n}: IconButtonProps, ref) => {\n\n const isPressingEnter = (e: any) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n e.stopPropagation();\n return true;\n }\n return false;\n };\n\n // Let's render button\n switch (variant) {\n case 'secondary':\n return (\n <StyledSecondaryIconButton\n id={id}\n type={type ?? 'button'}\n data-testid={id}\n ref={ref}\n onClick={(event: React.MouseEvent<HTMLButtonElement>) => {event.stopPropagation(); action(event);}}\n onKeyDown={(e: any) => (isPressingEnter(e) ? action() : null)}\n disabled={disabled}\n hideOnLowWidth={hideOnLowWidth || false}\n inMobileMenu={isInMobileMenu}\n useTransparentBackground={useTransparentBackground}\n iconColor={iconColor}\n unsetIconSize={unsetIconSize}\n tabIndex={tabIndex || 0}\n borderRadius={borderRadius || shape === 'circular' ? 18 : 0}\n onMouseDown={defaultOnMouseDownHandler}\n onKeyPress={onKeyPress}\n hidden={hidden}\n focusBackgroundColor={focusBackgroundColor}>\n <div>{children}</div>\n </StyledSecondaryIconButton>\n );\n case 'primary':\n default:\n return (\n <StyledPrimaryIconButton\n id={id}\n type={type ?? 'button'}\n data-testid={id}\n flatEdge={flatEdge}\n ref={ref}\n onClick={(event: React.MouseEvent<HTMLButtonElement>) => {event.stopPropagation(); action(event);}}\n onKeyDown={(e: any) => (isPressingEnter(e) ? action() : null)}\n disabled={disabled}\n hideOnLowWidth={hideOnLowWidth || false}\n inMobileMenu={isInMobileMenu}\n useTransparentBackground={useTransparentBackground}\n iconColor={iconColor}\n unsetIconSize={unsetIconSize}\n tabIndex={tabIndex || 0}\n borderRadius={borderRadius || shape === 'circular' ? 18 : 0}\n onMouseDown={defaultOnMouseDownHandler}\n onKeyPress={onKeyPress}\n hidden={hidden}\n focusBackgroundColor={focusBackgroundColor}>\n <div>{children}</div>\n </StyledPrimaryIconButton>\n );\n }\n});\n\nexport default IconButton;\n"],"file":"Iconbutton.cjs"}
|
|
@@ -1,4 +1,17 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
interface HeaderItemProps {
|
|
3
|
+
hideOnLowWidth: boolean;
|
|
4
|
+
inMobileMenu?: boolean;
|
|
5
|
+
useTransparentBackground?: boolean;
|
|
6
|
+
iconColor?: string;
|
|
7
|
+
unsetIconSize?: boolean;
|
|
8
|
+
borderRadius?: number;
|
|
9
|
+
shape?: string;
|
|
10
|
+
flatEdge?: string;
|
|
11
|
+
focusBackgroundColor?: string;
|
|
12
|
+
}
|
|
13
|
+
export declare const StyledPrimaryIconButton: import("styled-components").StyledComponent<"button", any, HeaderItemProps, never>;
|
|
14
|
+
export declare const StyledSecondaryIconButton: import("styled-components").StyledComponent<"button", any, HeaderItemProps, never>;
|
|
2
15
|
export interface IconButtonProps {
|
|
3
16
|
id?: string;
|
|
4
17
|
variant?: 'primary' | 'secondary';
|
|
@@ -38,7 +38,7 @@ var StyledIconButton = styled.button(_templateObject || (_templateObject = _tagg
|
|
|
38
38
|
}, function (props) {
|
|
39
39
|
return props.unsetIconSize ? 'unset' : '24px';
|
|
40
40
|
});
|
|
41
|
-
var StyledPrimaryIconButton = styled(StyledIconButton)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n div {\n background-color: ", ";\n\n svg {\n fill: ", ";\n path {\n fill: ", ";\n }\n }\n }\n &:hover:not(:disabled) {\n div {\n background-color: ", ";\n }\n div svg path,\n div svg {\n fill: ", ";\n }\n }\n &:active:not(:disabled) {\n div {\n background: ", ";\n }\n div svg path,\n div svg {\n fill: ", ";\n }\n }\n &:disabled {\n div {\n background-color: ", ";\n }\n svg {\n path {\n fill: ", ";\n }\n fill: ", ";\n }\n }\n &:focus:not(:disabled) {\n div {\n background-color: ", " !important;\n box-shadow: 0px 4px 12px rgba(46, 127, 161, 0.25), 0px 0px 8px #2e7fa1;\n }\n div svg path,\n div svg {\n fill: ", ";\n }\n }\n"])), function (props) {
|
|
41
|
+
export var StyledPrimaryIconButton = styled(StyledIconButton)(_templateObject2 || (_templateObject2 = _taggedTemplateLiteral(["\n div {\n background-color: ", ";\n\n svg {\n fill: ", ";\n path {\n fill: ", ";\n }\n }\n }\n &:hover:not(:disabled) {\n div {\n background-color: ", ";\n }\n div svg path,\n div svg {\n fill: ", ";\n }\n }\n &:active:not(:disabled) {\n div {\n background: ", ";\n }\n div svg path,\n div svg {\n fill: ", ";\n }\n }\n &:disabled {\n div {\n background-color: ", ";\n }\n svg {\n path {\n fill: ", ";\n }\n fill: ", ";\n }\n }\n &:focus:not(:disabled) {\n div {\n background-color: ", " !important;\n box-shadow: 0px 4px 12px rgba(46, 127, 161, 0.25), 0px 0px 8px #2e7fa1;\n }\n div svg path,\n div svg {\n fill: ", ";\n }\n }\n"])), function (props) {
|
|
42
42
|
return props.useTransparentBackground ? 'transparent' : COLORS.primary_500;
|
|
43
43
|
}, function (props) {
|
|
44
44
|
return props.iconColor || COLORS.white;
|
|
@@ -47,7 +47,7 @@ var StyledPrimaryIconButton = styled(StyledIconButton)(_templateObject2 || (_tem
|
|
|
47
47
|
}, COLORS.primary_700, COLORS.white, COLORS.primary_800, COLORS.white, COLORS.neutral_200, COLORS.white, COLORS.white, function (props) {
|
|
48
48
|
return props.focusBackgroundColor || COLORS.primary_700;
|
|
49
49
|
}, COLORS.white);
|
|
50
|
-
var StyledSecondaryIconButton = styled(StyledIconButton)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n div {\n background-color: ", ";\n\n svg {\n fill: ", ";\n path {\n fill: ", ";\n }\n }\n }\n &:hover:not(:disabled) {\n div {\n background-color: ", ";\n }\n div svg path,\n div svg {\n fill: ", ";\n }\n }\n &:active:not(:disabled) {\n div {\n background: ", ";\n }\n div svg path,\n div svg {\n fill: ", ";\n }\n }\n\n &:disabled {\n div {\n background-color: ", ";\n }\n svg {\n path {\n fill: ", ";\n }\n fill: ", ";\n }\n }\n\n &:focus:not(:disabled) {\n div {\n background-color: ", "
|
|
50
|
+
export var StyledSecondaryIconButton = styled(StyledIconButton)(_templateObject3 || (_templateObject3 = _taggedTemplateLiteral(["\n div {\n background-color: ", ";\n\n svg {\n fill: ", ";\n path {\n fill: ", ";\n }\n }\n }\n &:hover:not(:disabled) {\n div {\n background-color: ", ";\n }\n div svg path,\n div svg {\n fill: ", ";\n }\n }\n &:active:not(:disabled) {\n div {\n background: ", ";\n }\n div svg path,\n div svg {\n fill: ", ";\n }\n }\n\n &:disabled {\n div {\n background-color: ", ";\n }\n svg {\n path {\n fill: ", ";\n }\n fill: ", ";\n }\n }\n\n &:focus:not(:disabled) {\n div {\n background-color: ", ";\n box-shadow: 0px 0px 8px ", ", 0px 4px 12px rgba(46, 127, 161, 0.25);\n }\n div svg path,\n div svg {\n fill: ", ";\n }\n }\n"])), function (props) {
|
|
51
51
|
return props.useTransparentBackground ? 'transparent' : COLORS.white;
|
|
52
52
|
}, function (props) {
|
|
53
53
|
return props.iconColor || COLORS.neutral_600;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../src/Button/Iconbutton.tsx"],"names":["React","styled","BREAKPOINTS","COLORS","defaultOnMouseDownHandler","getBorderRadius","props","borderRadius","getBorderRadiusStyle","radius","flatEdge","StyledIconButton","button","hideOnLowWidth","MEDIUM","unsetIconSize","StyledPrimaryIconButton","useTransparentBackground","primary_500","iconColor","white","primary_700","primary_800","neutral_200","focusBackgroundColor","StyledSecondaryIconButton","neutral_600","primary_20","primary_100","neutral_300","IconButton","forwardRef","ref","id","variant","shape","action","isInMobileMenu","children","disabled","tabIndex","onKeyPress","type","hidden","isPressingEnter","e","key","preventDefault","stopPropagation","event"],"mappings":"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","sourcesContent":["import React from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { BREAKPOINTS, COLORS } from '../styles';\nimport {defaultOnMouseDownHandler} from '../common';\n\ninterface HeaderItemProps {\n hideOnLowWidth: boolean;\n inMobileMenu?: boolean;\n useTransparentBackground?: boolean;\n iconColor?: string;\n unsetIconSize?: boolean;\n borderRadius?: number;\n shape?: string;\n flatEdge?: string;\n focusBackgroundColor?: string;\n}\n\nconst getBorderRadius = (props:HeaderItemProps) => (props.borderRadius ? `${props.borderRadius}px` : '4px');\n\nconst getBorderRadiusStyle = (props:HeaderItemProps) => {\n const radius = getBorderRadius(props);\n switch(props.flatEdge)\n {\n case 'left':\n return `0px ${radius} ${radius} 0px`;\n \n case 'right':\n return `${radius} 0px 0px ${radius}`;\n\n case 'none':\n default:\n return `${radius}`;\n }\n};\n\nconst StyledIconButton = styled.button<HeaderItemProps>`\n border-width: 0;\n cursor: pointer;\n height: 48px;\n width: 48px;\n background: transparent;\n\n display: ${(props) => (props.hideOnLowWidth ? 'none' : 'block')};\n ${BREAKPOINTS.MEDIUM} {\n display: block;\n }\n\n border-radius: ${(props) => (props.borderRadius ? `${props.borderRadius}px` : '4px')};\n div {\n height: 36px;\n width: 36px;\n border-radius: ${getBorderRadiusStyle};\n display: flex;\n justify-content: center;\n align-items: center;\n svg {\n height: ${(props) => (props.unsetIconSize ? 'unset' : '24px')};\n width: ${(props) => (props.unsetIconSize ? 'unset' : '24px')};\n padding: 0;\n }\n }\n &:only-child {\n margin: 0;\n }\n &:disabled {\n cursor: not-allowed;\n }\n &:focus:not(:disabled) {\n outline: none;\n div {\n outline: none;\n }\n }\n &:active:not(:disabled) {\n div {\n box-shadow: none !important;\n }\n }\n`;\n\nconst StyledPrimaryIconButton = styled(StyledIconButton)`\n div {\n background-color: ${(props) => (props.useTransparentBackground ? 'transparent' : COLORS.primary_500)};\n\n svg {\n fill: ${(props) => props.iconColor || COLORS.white};\n path {\n fill: ${(props) => props.iconColor || COLORS.white};\n }\n }\n }\n &:hover:not(:disabled) {\n div {\n background-color: ${COLORS.primary_700};\n }\n div svg path,\n div svg {\n fill: ${COLORS.white};\n }\n }\n &:active:not(:disabled) {\n div {\n background: ${COLORS.primary_800};\n }\n div svg path,\n div svg {\n fill: ${COLORS.white};\n }\n }\n &:disabled {\n div {\n background-color: ${COLORS.neutral_200};\n }\n svg {\n path {\n fill: ${COLORS.white};\n }\n fill: ${COLORS.white};\n }\n }\n &:focus:not(:disabled) {\n div {\n background-color: ${(props) => props.focusBackgroundColor || COLORS.primary_700} !important;\n box-shadow: 0px 4px 12px rgba(46, 127, 161, 0.25), 0px 0px 8px #2e7fa1;\n }\n div svg path,\n div svg {\n fill: ${COLORS.white};\n }\n }\n`;\n\nconst StyledSecondaryIconButton = styled(StyledIconButton)`\n div {\n background-color: ${(props) => (props.useTransparentBackground ? 'transparent' : COLORS.white)};\n\n svg {\n fill: ${(props) => props.iconColor || COLORS.neutral_600};\n path {\n fill: ${(props) => props.iconColor || COLORS.neutral_600};\n }\n }\n }\n &:hover:not(:disabled) {\n div {\n background-color: ${COLORS.primary_20};\n }\n div svg path,\n div svg {\n fill: ${COLORS.primary_700};\n }\n }\n &:active:not(:disabled) {\n div {\n background: ${COLORS.primary_100};\n }\n div svg path,\n div svg {\n fill: ${COLORS.primary_800};\n }\n }\n\n &:disabled {\n div {\n background-color: ${(props) => (props.useTransparentBackground ? 'transparent' : COLORS.white)};\n }\n svg {\n path {\n fill: ${COLORS.neutral_300};\n }\n fill: ${COLORS.neutral_300};\n }\n }\n\n &:focus:not(:disabled) {\n div {\n background-color: ${(props) => props.focusBackgroundColor || 'transparent'} !important;\n box-shadow: 0px 0px 8px ${COLORS.primary_500}, 0px 4px 12px rgba(46, 127, 161, 0.25);\n }\n div svg path,\n div svg {\n fill: ${COLORS.neutral_600};\n }\n }\n`;\n\nexport interface IconButtonProps {\n id?: string;\n variant?: 'primary' | 'secondary';\n shape?: 'square' | 'circular';\n action: (event?: React.MouseEvent<HTMLButtonElement>) => void;\n hideOnLowWidth?: boolean;\n flatEdge?: 'right' | 'left' | 'none' | undefined;\n isInMobileMenu?: boolean;\n disabled?: boolean;\n useTransparentBackground?: boolean;\n iconColor?: string;\n unsetIconSize?: boolean;\n tabIndex?: number;\n borderRadius?: number;\n onKeyPress?: React.KeyboardEventHandler<HTMLButtonElement>;\n focusBackgroundColor?: string;\n type?: 'submit' | 'reset' | 'button' | undefined;\n children?: React.ReactNode;\n hidden?: boolean;\n}\n\nconst IconButton = React.forwardRef<HTMLButtonElement, IconButtonProps>(({\n id,\n variant,\n shape,\n action,\n hideOnLowWidth,\n isInMobileMenu,\n children,\n useTransparentBackground,\n disabled,\n iconColor,\n unsetIconSize,\n tabIndex,\n flatEdge,\n borderRadius,\n onKeyPress,\n focusBackgroundColor,\n type,\n hidden\n}: IconButtonProps, ref) => {\n\n const isPressingEnter = (e: any) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n e.stopPropagation();\n return true;\n }\n return false;\n };\n\n // Let's render button\n switch (variant) {\n case 'secondary':\n return (\n <StyledSecondaryIconButton\n id={id}\n type={type ?? 'button'}\n data-testid={id}\n ref={ref}\n onClick={(event: React.MouseEvent<HTMLButtonElement>) => {event.stopPropagation(); action(event);}}\n onKeyDown={(e: any) => (isPressingEnter(e) ? action() : null)}\n disabled={disabled}\n hideOnLowWidth={hideOnLowWidth || false}\n inMobileMenu={isInMobileMenu}\n useTransparentBackground={useTransparentBackground}\n iconColor={iconColor}\n unsetIconSize={unsetIconSize}\n tabIndex={tabIndex || 0}\n borderRadius={borderRadius || shape === 'circular' ? 18 : 0}\n onMouseDown={defaultOnMouseDownHandler}\n onKeyPress={onKeyPress}\n hidden={hidden}\n focusBackgroundColor={focusBackgroundColor}>\n <div>{children}</div>\n </StyledSecondaryIconButton>\n );\n case 'primary':\n default:\n return (\n <StyledPrimaryIconButton\n id={id}\n type={type ?? 'button'}\n data-testid={id}\n flatEdge={flatEdge}\n ref={ref}\n onClick={(event: React.MouseEvent<HTMLButtonElement>) => {event.stopPropagation(); action(event);}}\n onKeyDown={(e: any) => (isPressingEnter(e) ? action() : null)}\n disabled={disabled}\n hideOnLowWidth={hideOnLowWidth || false}\n inMobileMenu={isInMobileMenu}\n useTransparentBackground={useTransparentBackground}\n iconColor={iconColor}\n unsetIconSize={unsetIconSize}\n tabIndex={tabIndex || 0}\n borderRadius={borderRadius || shape === 'circular' ? 18 : 0}\n onMouseDown={defaultOnMouseDownHandler}\n onKeyPress={onKeyPress}\n hidden={hidden}\n focusBackgroundColor={focusBackgroundColor}>\n <div>{children}</div>\n </StyledPrimaryIconButton>\n );\n }\n});\n\nexport default IconButton;\n"],"file":"Iconbutton.js"}
|
|
1
|
+
{"version":3,"sources":["../../src/Button/Iconbutton.tsx"],"names":["React","styled","BREAKPOINTS","COLORS","defaultOnMouseDownHandler","getBorderRadius","props","borderRadius","getBorderRadiusStyle","radius","flatEdge","StyledIconButton","button","hideOnLowWidth","MEDIUM","unsetIconSize","StyledPrimaryIconButton","useTransparentBackground","primary_500","iconColor","white","primary_700","primary_800","neutral_200","focusBackgroundColor","StyledSecondaryIconButton","neutral_600","primary_20","primary_100","neutral_300","IconButton","forwardRef","ref","id","variant","shape","action","isInMobileMenu","children","disabled","tabIndex","onKeyPress","type","hidden","isPressingEnter","e","key","preventDefault","stopPropagation","event"],"mappings":"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","sourcesContent":["import React from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { BREAKPOINTS, COLORS } from '../styles';\nimport {defaultOnMouseDownHandler} from '../common';\n\ninterface HeaderItemProps {\n hideOnLowWidth: boolean;\n inMobileMenu?: boolean;\n useTransparentBackground?: boolean;\n iconColor?: string;\n unsetIconSize?: boolean;\n borderRadius?: number;\n shape?: string;\n flatEdge?: string;\n focusBackgroundColor?: string;\n}\n\nconst getBorderRadius = (props:HeaderItemProps) => (props.borderRadius ? `${props.borderRadius}px` : '4px');\n\nconst getBorderRadiusStyle = (props:HeaderItemProps) => {\n const radius = getBorderRadius(props);\n switch(props.flatEdge)\n {\n case 'left':\n return `0px ${radius} ${radius} 0px`;\n \n case 'right':\n return `${radius} 0px 0px ${radius}`;\n\n case 'none':\n default:\n return `${radius}`;\n }\n};\n\nconst StyledIconButton = styled.button<HeaderItemProps>`\n border-width: 0;\n cursor: pointer;\n height: 48px;\n width: 48px;\n background: transparent;\n\n display: ${(props) => (props.hideOnLowWidth ? 'none' : 'block')};\n ${BREAKPOINTS.MEDIUM} {\n display: block;\n }\n\n border-radius: ${(props) => (props.borderRadius ? `${props.borderRadius}px` : '4px')};\n div {\n height: 36px;\n width: 36px;\n border-radius: ${getBorderRadiusStyle};\n display: flex;\n justify-content: center;\n align-items: center;\n svg {\n height: ${(props) => (props.unsetIconSize ? 'unset' : '24px')};\n width: ${(props) => (props.unsetIconSize ? 'unset' : '24px')};\n padding: 0;\n }\n }\n &:only-child {\n margin: 0;\n }\n &:disabled {\n cursor: not-allowed;\n }\n &:focus:not(:disabled) {\n outline: none;\n div {\n outline: none;\n }\n }\n &:active:not(:disabled) {\n div {\n box-shadow: none !important;\n }\n }\n`;\n\nexport const StyledPrimaryIconButton = styled(StyledIconButton)`\n div {\n background-color: ${(props) => (props.useTransparentBackground ? 'transparent' : COLORS.primary_500)};\n\n svg {\n fill: ${(props) => props.iconColor || COLORS.white};\n path {\n fill: ${(props) => props.iconColor || COLORS.white};\n }\n }\n }\n &:hover:not(:disabled) {\n div {\n background-color: ${COLORS.primary_700};\n }\n div svg path,\n div svg {\n fill: ${COLORS.white};\n }\n }\n &:active:not(:disabled) {\n div {\n background: ${COLORS.primary_800};\n }\n div svg path,\n div svg {\n fill: ${COLORS.white};\n }\n }\n &:disabled {\n div {\n background-color: ${COLORS.neutral_200};\n }\n svg {\n path {\n fill: ${COLORS.white};\n }\n fill: ${COLORS.white};\n }\n }\n &:focus:not(:disabled) {\n div {\n background-color: ${(props) => props.focusBackgroundColor || COLORS.primary_700} !important;\n box-shadow: 0px 4px 12px rgba(46, 127, 161, 0.25), 0px 0px 8px #2e7fa1;\n }\n div svg path,\n div svg {\n fill: ${COLORS.white};\n }\n }\n`;\n\nexport const StyledSecondaryIconButton = styled(StyledIconButton)`\n div {\n background-color: ${(props) => (props.useTransparentBackground ? 'transparent' : COLORS.white)};\n\n svg {\n fill: ${(props) => props.iconColor || COLORS.neutral_600};\n path {\n fill: ${(props) => props.iconColor || COLORS.neutral_600};\n }\n }\n }\n &:hover:not(:disabled) {\n div {\n background-color: ${COLORS.primary_20};\n }\n div svg path,\n div svg {\n fill: ${COLORS.primary_700};\n }\n }\n &:active:not(:disabled) {\n div {\n background: ${COLORS.primary_100};\n }\n div svg path,\n div svg {\n fill: ${COLORS.primary_800};\n }\n }\n\n &:disabled {\n div {\n background-color: ${(props) => (props.useTransparentBackground ? 'transparent' : COLORS.white)};\n }\n svg {\n path {\n fill: ${COLORS.neutral_300};\n }\n fill: ${COLORS.neutral_300};\n }\n }\n\n &:focus:not(:disabled) {\n div {\n background-color: ${(props) => props.focusBackgroundColor || 'transparent'};\n box-shadow: 0px 0px 8px ${COLORS.primary_500}, 0px 4px 12px rgba(46, 127, 161, 0.25);\n }\n div svg path,\n div svg {\n fill: ${COLORS.neutral_600};\n }\n }\n`;\n\nexport interface IconButtonProps {\n id?: string;\n variant?: 'primary' | 'secondary';\n shape?: 'square' | 'circular';\n action: (event?: React.MouseEvent<HTMLButtonElement>) => void;\n hideOnLowWidth?: boolean;\n flatEdge?: 'right' | 'left' | 'none' | undefined;\n isInMobileMenu?: boolean;\n disabled?: boolean;\n useTransparentBackground?: boolean;\n iconColor?: string;\n unsetIconSize?: boolean;\n tabIndex?: number;\n borderRadius?: number;\n onKeyPress?: React.KeyboardEventHandler<HTMLButtonElement>;\n focusBackgroundColor?: string;\n type?: 'submit' | 'reset' | 'button' | undefined;\n children?: React.ReactNode;\n hidden?: boolean;\n}\n\nconst IconButton = React.forwardRef<HTMLButtonElement, IconButtonProps>(({\n id,\n variant,\n shape,\n action,\n hideOnLowWidth,\n isInMobileMenu,\n children,\n useTransparentBackground,\n disabled,\n iconColor,\n unsetIconSize,\n tabIndex,\n flatEdge,\n borderRadius,\n onKeyPress,\n focusBackgroundColor,\n type,\n hidden\n}: IconButtonProps, ref) => {\n\n const isPressingEnter = (e: any) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n e.stopPropagation();\n return true;\n }\n return false;\n };\n\n // Let's render button\n switch (variant) {\n case 'secondary':\n return (\n <StyledSecondaryIconButton\n id={id}\n type={type ?? 'button'}\n data-testid={id}\n ref={ref}\n onClick={(event: React.MouseEvent<HTMLButtonElement>) => {event.stopPropagation(); action(event);}}\n onKeyDown={(e: any) => (isPressingEnter(e) ? action() : null)}\n disabled={disabled}\n hideOnLowWidth={hideOnLowWidth || false}\n inMobileMenu={isInMobileMenu}\n useTransparentBackground={useTransparentBackground}\n iconColor={iconColor}\n unsetIconSize={unsetIconSize}\n tabIndex={tabIndex || 0}\n borderRadius={borderRadius || shape === 'circular' ? 18 : 0}\n onMouseDown={defaultOnMouseDownHandler}\n onKeyPress={onKeyPress}\n hidden={hidden}\n focusBackgroundColor={focusBackgroundColor}>\n <div>{children}</div>\n </StyledSecondaryIconButton>\n );\n case 'primary':\n default:\n return (\n <StyledPrimaryIconButton\n id={id}\n type={type ?? 'button'}\n data-testid={id}\n flatEdge={flatEdge}\n ref={ref}\n onClick={(event: React.MouseEvent<HTMLButtonElement>) => {event.stopPropagation(); action(event);}}\n onKeyDown={(e: any) => (isPressingEnter(e) ? action() : null)}\n disabled={disabled}\n hideOnLowWidth={hideOnLowWidth || false}\n inMobileMenu={isInMobileMenu}\n useTransparentBackground={useTransparentBackground}\n iconColor={iconColor}\n unsetIconSize={unsetIconSize}\n tabIndex={tabIndex || 0}\n borderRadius={borderRadius || shape === 'circular' ? 18 : 0}\n onMouseDown={defaultOnMouseDownHandler}\n onKeyPress={onKeyPress}\n hidden={hidden}\n focusBackgroundColor={focusBackgroundColor}>\n <div>{children}</div>\n </StyledPrimaryIconButton>\n );\n }\n});\n\nexport default IconButton;\n"],"file":"Iconbutton.js"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
Object.defineProperty(exports, "BackButton", {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
get: function get() {
|
|
11
|
+
return _BackButton.default;
|
|
12
|
+
}
|
|
13
|
+
});
|
|
14
|
+
Object.defineProperty(exports, "Button", {
|
|
15
|
+
enumerable: true,
|
|
16
|
+
get: function get() {
|
|
17
|
+
return _Button.default;
|
|
18
|
+
}
|
|
19
|
+
});
|
|
20
|
+
Object.defineProperty(exports, "DualFunctionButton", {
|
|
21
|
+
enumerable: true,
|
|
22
|
+
get: function get() {
|
|
23
|
+
return _DualFunctionButton.default;
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
Object.defineProperty(exports, "IconButton", {
|
|
27
|
+
enumerable: true,
|
|
28
|
+
get: function get() {
|
|
29
|
+
return _Iconbutton.default;
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
var _Iconbutton = _interopRequireDefault(require("./Iconbutton"));
|
|
34
|
+
|
|
35
|
+
var _Button = _interopRequireDefault(require("./Button"));
|
|
36
|
+
|
|
37
|
+
var _BackButton = _interopRequireDefault(require("./BackButton"));
|
|
38
|
+
|
|
39
|
+
var _DualFunctionButton = _interopRequireDefault(require("./DualFunctionButton"));
|
|
40
|
+
//# sourceMappingURL=index.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/Button/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA","sourcesContent":["export {default as IconButton} from './Iconbutton';\nexport {default as Button} from './Button';\nexport {default as BackButton} from './BackButton';\nexport {default as DualFunctionButton} from './DualFunctionButton';\n"],"file":"index.cjs"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _typeof = require("@babel/runtime/helpers/typeof");
|
|
4
|
+
|
|
5
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.default = void 0;
|
|
9
|
+
|
|
10
|
+
var React = _interopRequireWildcard(require("react"));
|
|
11
|
+
|
|
12
|
+
var _index = require("../icons/index");
|
|
13
|
+
|
|
14
|
+
var _types = require("../types");
|
|
15
|
+
|
|
16
|
+
var _ChipStyles = require("./ChipStyles");
|
|
17
|
+
|
|
18
|
+
var _jsxRuntime = require("react/jsx-runtime");
|
|
19
|
+
|
|
20
|
+
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
21
|
+
|
|
22
|
+
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Import React libraries.
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Import custom components.
|
|
30
|
+
*/
|
|
31
|
+
|
|
32
|
+
/**
|
|
33
|
+
* Import custom styles.
|
|
34
|
+
*/
|
|
35
|
+
var ActionChip = function ActionChip(_ref) {
|
|
36
|
+
var icon = _ref.icon,
|
|
37
|
+
text = _ref.text,
|
|
38
|
+
variant = _ref.variant,
|
|
39
|
+
size = _ref.size,
|
|
40
|
+
disabled = _ref.disabled,
|
|
41
|
+
_onClick = _ref.onClick;
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Retrieves icon size based on the chip size.
|
|
45
|
+
* @returns A string indicating the icon size.
|
|
46
|
+
*/
|
|
47
|
+
var getIconSize = function getIconSize() {
|
|
48
|
+
var iconSize; // Calculate correct icon size
|
|
49
|
+
|
|
50
|
+
if (size === _types.Size.Small) {
|
|
51
|
+
iconSize = '16px';
|
|
52
|
+
} else if (size === _types.Size.Medium) {
|
|
53
|
+
iconSize = '20px';
|
|
54
|
+
} else {
|
|
55
|
+
iconSize = '24px';
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
return iconSize;
|
|
59
|
+
};
|
|
60
|
+
/**
|
|
61
|
+
* Return Action Chip component.
|
|
62
|
+
*/
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
return /*#__PURE__*/(0, _jsxRuntime.jsx)(_jsxRuntime.Fragment, {
|
|
66
|
+
children: /*#__PURE__*/(0, _jsxRuntime.jsxs)(_ChipStyles.ActionChipContainer, {
|
|
67
|
+
className: "".concat(size, " ").concat(disabled ? 'disabled' : variant, " ").concat(icon && 'icon-chip'),
|
|
68
|
+
onClick: function onClick() {
|
|
69
|
+
return _onClick();
|
|
70
|
+
},
|
|
71
|
+
children: [icon && _index.SystemIcons[icon]({
|
|
72
|
+
size: getIconSize(),
|
|
73
|
+
className: 'icon'
|
|
74
|
+
}), text]
|
|
75
|
+
})
|
|
76
|
+
});
|
|
77
|
+
};
|
|
78
|
+
|
|
79
|
+
var _default = ActionChip;
|
|
80
|
+
exports.default = _default;
|
|
81
|
+
//# sourceMappingURL=ActionChip.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../src/Chips/ActionChip.tsx"],"names":["ActionChip","icon","text","variant","size","disabled","onClick","getIconSize","iconSize","Size","Small","Medium","icons","className"],"mappings":";;;;;;;;;AAGC;;AAKA;;AACA;;AAIA;;;;;;;;AAbD;AACA;AACA;;AAGC;AACD;AACA;;AAGC;AACD;AACA;AAQC,IAAMA,UAAoD,GAAG,SAAvDA,UAAuD,OAAuE;AAAA,MAApEC,IAAoE,QAApEA,IAAoE;AAAA,MAA9DC,IAA8D,QAA9DA,IAA8D;AAAA,MAAxDC,OAAwD,QAAxDA,OAAwD;AAAA,MAA/CC,IAA+C,QAA/CA,IAA+C;AAAA,MAAzCC,QAAyC,QAAzCA,QAAyC;AAAA,MAA/BC,QAA+B,QAA/BA,OAA+B;;AAClI;AACH;AACA;AACA;AACG,MAAMC,WAAW,GAAG,SAAdA,WAAc,GAAc;AAChC,QAAIC,QAAJ,CADgC,CAGhC;;AACA,QAAIJ,IAAI,KAAKK,YAAKC,KAAlB,EAAyB;AACvBF,MAAAA,QAAQ,GAAG,MAAX;AACD,KAFD,MAEO,IAAIJ,IAAI,KAAKK,YAAKE,MAAlB,EAA0B;AAC/BH,MAAAA,QAAQ,GAAG,MAAX;AACD,KAFM,MAEA;AACLA,MAAAA,QAAQ,GAAG,MAAX;AACD;;AAED,WAAOA,QAAP;AACD,GAbD;AAeA;AACH;AACA;;;AACG,sBACE;AAAA,2BACE,sBAAC,+BAAD;AAAqB,MAAA,SAAS,YAAKJ,IAAL,cAAaC,QAAQ,GAAG,UAAH,GAAgBF,OAArC,cAAgDF,IAAI,IAAI,WAAxD,CAA9B;AAAqG,MAAA,OAAO,EAAE;AAAA,eAAMK,QAAO,EAAb;AAAA,OAA9G;AAAA,iBAEGL,IAAI,IAAIW,mBAAMX,IAAN,EAAY;AAAEG,QAAAA,IAAI,EAAEG,WAAW,EAAnB;AAAuBM,QAAAA,SAAS,EAAE;AAAlC,OAAZ,CAFX,EAKGX,IALH;AAAA;AADF,IADF;AAWD,CAlCD;;eAoCeF,U","sourcesContent":["/**\n * Import React libraries.\n */\n import * as React from 'react';\n\n /**\n * Import custom components.\n */\n import {SystemIcons as icons} from '../icons/index';\n import {Size} from '../types'; \n /**\n * Import custom styles.\n */\n import { ActionChipContainer } from './ChipStyles';\n \n /**\n * Import custom types.\n */\n import { ActionChipProps } from './ChipTypes';\n \n const ActionChip: React.FunctionComponent<ActionChipProps> = ({ icon, text, variant, size, disabled, onClick }: ActionChipProps) => {\n /**\n * Retrieves icon size based on the chip size.\n * @returns A string indicating the icon size.\n */\n const getIconSize = (): string => {\n let iconSize: string;\n \n // Calculate correct icon size\n if (size === Size.Small) {\n iconSize = '16px';\n } else if (size === Size.Medium) {\n iconSize = '20px';\n } else {\n iconSize = '24px';\n }\n \n return iconSize;\n }\n \n /**\n * Return Action Chip component.\n */\n return (\n <>\n <ActionChipContainer className={`${size} ${disabled ? 'disabled' : variant} ${icon && 'icon-chip'}`} onClick={() => onClick()}>\n { /* Let's render icon if it is passed */ }\n {icon && icons[icon]({ size: getIconSize(), className: 'icon' })}\n \n { /* Let's render text */ }\n {text}\n </ActionChipContainer>\n </>\n );\n };\n \n export default ActionChip;\n "],"file":"ActionChip.cjs"}
|