@itcase/ui 1.2.34 → 1.3.0
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/Badge-B9tt2YPa.js +76 -0
- package/dist/{Badge-DBjlLLfX.js → Badge-DMRagi5O.js} +7 -45
- package/dist/Button-CX3x7Z6Q.js +99 -0
- package/dist/Button-P0c3lMg1.js +103 -0
- package/dist/Divider-DBvDCUqP.js +30 -0
- package/dist/Divider-Goh6mpPK.js +34 -0
- package/dist/DropdownItem-BuMJdUAk.js +92 -0
- package/dist/DropdownItem-DaN20LFe.js +97 -0
- package/dist/Group-B9L2NTgM.js +34 -0
- package/dist/Group-D6CXN4hS.js +38 -0
- package/dist/Icon-CZrDqG76.js +61 -0
- package/dist/Icon-hqYZoh4h.js +65 -0
- package/dist/Image-6dFSePnG.js +17 -0
- package/dist/Image-Dx4AWHLO.js +15 -0
- package/dist/Input-BrV5_NoV.js +95 -0
- package/dist/Input-ffioh1sj.js +100 -0
- package/dist/Label-DQyB2ThM.js +93 -0
- package/dist/Label-HKRKV3mn.js +97 -0
- package/dist/Link-DGj-cNje.js +53 -0
- package/dist/{Link-CeQuavin.js → Link-_A9ZfNln.js} +6 -52
- package/dist/Loader-Dn036JwE.js +56 -0
- package/dist/Loader-K_DJmah6.js +52 -0
- package/dist/MenuItem-Dokk3UXj.js +40 -0
- package/dist/MenuItem-LyqjzhjP.js +44 -0
- package/dist/Overlay-Dy6JQwJn.js +15 -0
- package/dist/Overlay-HlYxCGtp.js +17 -0
- package/dist/Text-Beslj4Ns.js +34 -0
- package/dist/Text-JayJa3hj.js +30 -0
- package/dist/Title-CHgrIarR.js +48 -0
- package/dist/Title-DBaHcpvB.js +52 -0
- package/dist/Tooltip-1Jbub0K6.js +89 -0
- package/dist/Tooltip-CNua1g76.js +93 -0
- package/dist/cjs/components/Accordion.js +14 -65
- package/dist/cjs/components/Avatar.js +14 -28
- package/dist/cjs/components/Badge.js +4 -3
- package/dist/cjs/components/Breadcrumbs.js +16 -48
- package/dist/cjs/components/Button.js +9 -9
- package/dist/cjs/components/Caption.js +5 -14
- package/dist/cjs/components/Card.js +7 -12
- package/dist/cjs/components/Cell.js +11 -61
- package/dist/cjs/components/Checkbox.js +15 -61
- package/dist/cjs/components/Chips.js +9 -55
- package/dist/cjs/components/Choice.js +20 -85
- package/dist/cjs/components/Code.js +9 -80
- package/dist/cjs/components/CookiesWarning.js +13 -22
- package/dist/cjs/components/DadataHintField.js +4 -4
- package/dist/cjs/components/DatePicker.js +20 -23
- package/dist/cjs/components/Divider.js +4 -2
- package/dist/cjs/components/Dot.js +5 -22
- package/dist/cjs/components/Drawer.js +3 -3
- package/dist/cjs/components/Dropdown.js +7 -6
- package/dist/cjs/components/Flex.js +8 -95
- package/dist/cjs/components/Grid.js +12 -125
- package/dist/cjs/components/Group.js +4 -2
- package/dist/cjs/components/HTMLContent.js +5 -74
- package/dist/cjs/components/Icon.js +7 -6
- package/dist/cjs/components/Image.js +3 -2
- package/dist/cjs/components/Input.js +5 -2
- package/dist/cjs/components/InputMask.js +27 -109
- package/dist/cjs/components/InputPassword.js +20 -83
- package/dist/cjs/components/Label.js +6 -5
- package/dist/cjs/components/Link.js +2 -2
- package/dist/cjs/components/List.js +15 -31
- package/dist/cjs/components/Loader.js +5 -3
- package/dist/cjs/components/Logo.js +8 -21
- package/dist/cjs/components/Menu.js +9 -23
- package/dist/cjs/components/MenuItem.js +6 -5
- package/dist/cjs/components/Modal.js +11 -43
- package/dist/cjs/components/ModalSheetBottom.js +4 -15
- package/dist/cjs/components/Notification.js +9 -18
- package/dist/cjs/components/Overlay.js +3 -2
- package/dist/cjs/components/Pagination.js +16 -36
- package/dist/cjs/components/Panel.js +10 -78
- package/dist/cjs/components/Radio.js +17 -61
- package/dist/cjs/components/RangeSlider.js +7 -39
- package/dist/cjs/components/Response.js +20 -65
- package/dist/cjs/components/SVGContent.js +5 -10
- package/dist/cjs/components/ScrollOnDrag.js +5 -35
- package/dist/cjs/components/ScrollToView.js +5 -46
- package/dist/cjs/components/Search.js +19 -81
- package/dist/cjs/components/Segmented.js +11 -53
- package/dist/cjs/components/Select.js +42 -160
- package/dist/cjs/components/SiteMenu.js +13 -15
- package/dist/cjs/components/Swiper.js +9 -22
- package/dist/cjs/components/Switch.js +5 -2
- package/dist/cjs/components/Tab.js +16 -112
- package/dist/cjs/components/Text.js +4 -2
- package/dist/cjs/components/Textarea.js +17 -76
- package/dist/cjs/components/Tile.js +11 -46
- package/dist/cjs/components/Title.js +4 -2
- package/dist/cjs/components/Tooltip.js +6 -4
- package/dist/cjs/components/Video.js +5 -5
- package/dist/cjs/components/Wrapper.js +5 -30
- package/dist/cjs/hooks/useDeviceTargetClassGenerator.interface.js +2 -0
- package/dist/cjs/hooks/useDeviceTargetClassGenerator.js +97 -0
- package/dist/components/Accordion.js +14 -65
- package/dist/components/Avatar.js +14 -29
- package/dist/components/Badge.js +4 -3
- package/dist/components/Breadcrumbs.js +16 -48
- package/dist/components/Button.js +9 -9
- package/dist/components/Caption.js +5 -14
- package/dist/components/Card.js +7 -12
- package/dist/components/Cell.js +11 -61
- package/dist/components/Checkbox.js +14 -62
- package/dist/components/Chips.js +9 -55
- package/dist/components/Choice.js +20 -86
- package/dist/components/Code.js +9 -81
- package/dist/components/CookiesWarning.js +13 -22
- package/dist/components/DadataHintField.js +4 -4
- package/dist/components/DatePicker.js +20 -24
- package/dist/components/Divider.js +3 -2
- package/dist/components/Dot.js +5 -22
- package/dist/components/Drawer.js +3 -3
- package/dist/components/Dropdown.js +6 -6
- package/dist/components/Flex.js +8 -95
- package/dist/components/Grid.js +12 -125
- package/dist/components/Group.js +3 -2
- package/dist/components/HTMLContent.js +5 -74
- package/dist/components/Icon.js +6 -6
- package/dist/components/Image.js +3 -2
- package/dist/components/Input.js +3 -2
- package/dist/components/InputMask.js +28 -110
- package/dist/components/InputPassword.js +19 -84
- package/dist/components/Label.js +6 -5
- package/dist/components/Link.js +2 -2
- package/dist/components/List.js +15 -31
- package/dist/components/Loader.js +4 -3
- package/dist/components/Logo.js +8 -21
- package/dist/components/Menu.js +9 -23
- package/dist/components/MenuItem.js +5 -5
- package/dist/components/Modal.js +11 -44
- package/dist/components/ModalSheetBottom.js +4 -15
- package/dist/components/Notification.js +9 -18
- package/dist/components/Overlay.js +3 -2
- package/dist/components/Pagination.js +16 -37
- package/dist/components/Panel.js +10 -78
- package/dist/components/Radio.js +16 -62
- package/dist/components/RangeSlider.js +7 -39
- package/dist/components/Response.js +20 -65
- package/dist/components/SVGContent.js +5 -10
- package/dist/components/ScrollOnDrag.js +5 -35
- package/dist/components/ScrollToView.js +5 -46
- package/dist/components/Search.js +19 -82
- package/dist/components/Segmented.js +11 -54
- package/dist/components/Select.js +43 -161
- package/dist/components/SiteMenu.js +13 -16
- package/dist/components/Swiper.js +10 -23
- package/dist/components/Switch.js +5 -3
- package/dist/components/Tab.js +16 -112
- package/dist/components/Text.js +3 -2
- package/dist/components/Textarea.js +16 -77
- package/dist/components/Tile.js +11 -47
- package/dist/components/Title.js +3 -2
- package/dist/components/Tooltip.js +5 -4
- package/dist/components/Video.js +5 -5
- package/dist/components/Wrapper.js +5 -30
- package/dist/css/components/Avatar/Avatar.css +7 -6
- package/dist/css/components/Code/Code.css +0 -8
- package/dist/css/components/Code/Code.tokens.css +3 -0
- package/dist/hooks/useDeviceTargetClassGenerator.interface.js +1 -0
- package/dist/hooks/useDeviceTargetClassGenerator.js +95 -0
- package/dist/stories/Appearance.stories.js +2 -3
- package/dist/stories/Badge.stories.js +1 -1
- package/dist/stories/Button.stories.js +1 -2
- package/dist/stories/Group.stories.js +2 -3
- package/dist/stories/Icon.stories.js +2 -4
- package/dist/stories/Select.stories.js +69 -6
- package/dist/stories/Size.stories.js +1 -2
- package/dist/stories/State.stories.js +1 -2
- package/dist/stories/Tile.stories.js +1 -2
- package/dist/stories/appearance.mdx +6 -11
- package/dist/types/components/Accordion/Accordion.interface.d.ts +2 -0
- package/dist/types/components/Avatar/Avatar.d.ts +2 -2
- package/dist/types/components/Avatar/Avatar.interface.d.ts +8 -5
- package/dist/types/components/Avatar/index.d.ts +1 -0
- package/dist/types/components/Badge/Badge.d.ts +3 -3
- package/dist/types/components/Badge/Badge.interface.d.ts +10 -7
- package/dist/types/components/Breadcrumbs/Breadcrumbs.d.ts +2 -2
- package/dist/types/components/Breadcrumbs/Breadcrumbs.interface.d.ts +11 -9
- package/dist/types/components/Breadcrumbs/BreadcrumbsItem.d.ts +2 -2
- package/dist/types/components/Button/Button.appearance.d.ts +2 -2
- package/dist/types/components/Button/Button.d.ts +3 -3
- package/dist/types/components/Button/Button.interface.d.ts +18 -15
- package/dist/types/components/Caption/Caption.d.ts +2 -2
- package/dist/types/components/Caption/Caption.interface.d.ts +7 -6
- package/dist/types/components/Card/Card.d.ts +2 -2
- package/dist/types/components/Card/Card.interface.d.ts +11 -10
- package/dist/types/components/Cell/Cell.d.ts +2 -2
- package/dist/types/components/Cell/Cell.interface.d.ts +5 -4
- package/dist/types/components/Checkbox/Checkbox.interface.d.ts +4 -1
- package/dist/types/components/Checkbox/index.d.ts +1 -0
- package/dist/types/components/Chips/Chips.interface.d.ts +4 -1
- package/dist/types/components/Choice/Choice.d.ts +2 -2
- package/dist/types/components/Choice/Choice.interface.d.ts +3 -0
- package/dist/types/components/Choice/index.d.ts +1 -0
- package/dist/types/components/Code/Code.d.ts +2 -2
- package/dist/types/components/Code/Code.interface.d.ts +8 -5
- package/dist/types/components/Code/index.d.ts +1 -0
- package/dist/types/components/CookiesWarning/CookiesWarning.d.ts +2 -2
- package/dist/types/components/CookiesWarning/CookiesWarning.interface.d.ts +6 -5
- package/dist/types/components/DadataHintField/DadataHintField.d.ts +2 -2
- package/dist/types/components/DadataHintField/DadataHintField.interface.d.ts +4 -4
- package/dist/types/components/DatePicker/DatePicker.d.ts +3 -3
- package/dist/types/components/DatePicker/DatePicker.interface.d.ts +11 -8
- package/dist/types/components/DatePicker/index.d.ts +1 -0
- package/dist/types/components/Divider/Divider.d.ts +2 -2
- package/dist/types/components/Divider/Divider.interface.d.ts +8 -5
- package/dist/types/components/Divider/index.d.ts +1 -0
- package/dist/types/components/Dot/Dot.d.ts +2 -2
- package/dist/types/components/Dot/Dot.interface.d.ts +4 -3
- package/dist/types/components/Dropdown/Dropdown.d.ts +2 -2
- package/dist/types/components/Dropdown/Dropdown.interface.d.ts +9 -5
- package/dist/types/components/Dropdown/DropdownItem.d.ts +2 -2
- package/dist/types/components/Dropdown/index.d.ts +2 -1
- package/dist/types/components/Flex/Flex.d.ts +2 -2
- package/dist/types/components/Flex/Flex.interface.d.ts +5 -3
- package/dist/types/components/Flex/FlexItem.d.ts +2 -2
- package/dist/types/components/Grid/Grid.d.ts +2 -2
- package/dist/types/components/Grid/Grid.interface.d.ts +7 -4
- package/dist/types/components/Grid/GridItem.d.ts +2 -2
- package/dist/types/components/Grid/GridRow.d.ts +2 -2
- package/dist/types/components/Group/Group.d.ts +3 -3
- package/dist/types/components/Group/Group.interface.d.ts +8 -5
- package/dist/types/components/Group/index.d.ts +1 -0
- package/dist/types/components/HTMLContent/HTMLContent.d.ts +2 -2
- package/dist/types/components/HTMLContent/HTMLContent.interface.d.ts +3 -2
- package/dist/types/components/Icon/Icon.d.ts +1 -1
- package/dist/types/components/Icon/Icon.interface.d.ts +1 -0
- package/dist/types/components/Icon/index.d.ts +1 -0
- package/dist/types/components/Image/Image.d.ts +2 -2
- package/dist/types/components/Image/Image.interface.d.ts +3 -2
- package/dist/types/components/Input/Input.d.ts +1 -1
- package/dist/types/components/Input/Input.interface.d.ts +4 -1
- package/dist/types/components/Input/index.d.ts +1 -0
- package/dist/types/components/InputMask/Input.d.ts +2 -2
- package/dist/types/components/InputMask/Input.interface.d.ts +10 -7
- package/dist/types/components/InputPassword/InputPassword.d.ts +3 -3
- package/dist/types/components/InputPassword/InputPassword.interface.d.ts +9 -6
- package/dist/types/components/InputPassword/index.d.ts +1 -0
- package/dist/types/components/Label/Label.d.ts +3 -3
- package/dist/types/components/Label/Label.interface.d.ts +10 -7
- package/dist/types/components/Link/Link.d.ts +4 -4
- package/dist/types/components/Link/Link.interface.d.ts +7 -6
- package/dist/types/components/List/List.d.ts +2 -2
- package/dist/types/components/List/List.interface.d.ts +5 -3
- package/dist/types/components/List/ListItem.d.ts +2 -2
- package/dist/types/components/Loader/Loader.d.ts +3 -3
- package/dist/types/components/Loader/Loader.interface.d.ts +9 -6
- package/dist/types/components/Loader/index.d.ts +1 -0
- package/dist/types/components/Logo/Logo.d.ts +3 -3
- package/dist/types/components/Logo/Logo.interface.d.ts +10 -7
- package/dist/types/components/Menu/Menu.d.ts +2 -2
- package/dist/types/components/Menu/Menu.interface.d.ts +3 -2
- package/dist/types/components/MenuItem/MenuItem.d.ts +3 -3
- package/dist/types/components/MenuItem/MenuItem.interface.d.ts +9 -6
- package/dist/types/components/MenuItem/index.d.ts +1 -0
- package/dist/types/components/Modal/Modal.d.ts +2 -2
- package/dist/types/components/Modal/Modal.interface.d.ts +8 -5
- package/dist/types/components/Modal/ModalLoader.d.ts +1 -1
- package/dist/types/components/Modal/index.d.ts +2 -1
- package/dist/types/components/ModalSheetBottom/ModalSheetBottom.d.ts +1 -1
- package/dist/types/components/ModalSheetBottom/ModalSheetBottom.interface.d.ts +3 -0
- package/dist/types/components/Notification/Notification.interface.d.ts +10 -7
- package/dist/types/components/Notification/NotificationItem.d.ts +3 -3
- package/dist/types/components/Notification/NotificationList.d.ts +2 -2
- package/dist/types/components/Overlay/Overlay.d.ts +1 -1
- package/dist/types/components/Overlay/Overlay.interface.d.ts +1 -0
- package/dist/types/components/Pagination/Pagination.d.ts +2 -2
- package/dist/types/components/Pagination/Pagination.interface.d.ts +9 -6
- package/dist/types/components/Pagination/index.d.ts +1 -0
- package/dist/types/components/Panel/Panel.d.ts +3 -3
- package/dist/types/components/Panel/Panel.interface.d.ts +9 -6
- package/dist/types/components/Radio/Radio.d.ts +3 -3
- package/dist/types/components/Radio/Radio.interface.d.ts +13 -10
- package/dist/types/components/Radio/index.d.ts +1 -0
- package/dist/types/components/RangeSlider/RangeSlider.d.ts +2 -2
- package/dist/types/components/RangeSlider/RangeSlider.interface.d.ts +3 -2
- package/dist/types/components/Response/Response.d.ts +3 -3
- package/dist/types/components/Response/Response.interface.d.ts +11 -8
- package/dist/types/components/SVGContent/SVGContent.d.ts +2 -2
- package/dist/types/components/SVGContent/SVGContent.interface.d.ts +2 -1
- package/dist/types/components/ScrollOnDrag/ScrollOnDrag.d.ts +2 -2
- package/dist/types/components/ScrollOnDrag/ScrollOnDrag.interface.d.ts +3 -2
- package/dist/types/components/Scrollbar/Scrollbar.d.ts +2 -2
- package/dist/types/components/Scrollbar/Scrollbar.interface.d.ts +2 -2
- package/dist/types/components/Search/Search.interface.d.ts +11 -7
- package/dist/types/components/Search/SearchInput.d.ts +3 -3
- package/dist/types/components/Search/SearchResult.d.ts +1 -2
- package/dist/types/components/Search/index.d.ts +2 -1
- package/dist/types/components/Segmented/Segmented.d.ts +3 -3
- package/dist/types/components/Segmented/Segmented.interface.d.ts +15 -9
- package/dist/types/components/Segmented/index.d.ts +1 -0
- package/dist/types/components/Select/Select.interface.d.ts +2 -0
- package/dist/types/components/Select/SelectContainer.d.ts +4 -3
- package/dist/types/components/Select/index.d.ts +1 -3
- package/dist/types/components/SiteMenu/SiteMenu.d.ts +2 -2
- package/dist/types/components/SiteMenu/SiteMenu.interface.d.ts +9 -6
- package/dist/types/components/SiteMenu/SiteMenuButton.d.ts +2 -2
- package/dist/types/components/SiteMenu/index.d.ts +2 -1
- package/dist/types/components/Swiper/Swiper.d.ts +2 -2
- package/dist/types/components/Swiper/Swiper.interface.d.ts +9 -8
- package/dist/types/components/Switch/Switch.d.ts +2 -2
- package/dist/types/components/Switch/Switch.interface.d.ts +4 -4
- package/dist/types/components/Switch/index.d.ts +1 -0
- package/dist/types/components/Tab/Tab.d.ts +1 -1
- package/dist/types/components/Tab/Tab.interface.d.ts +4 -0
- package/dist/types/components/Tab/TabGroup.d.ts +1 -1
- package/dist/types/components/Text/Text.interface.d.ts +4 -1
- package/dist/types/components/Text/index.d.ts +1 -0
- package/dist/types/components/Textarea/Textarea.d.ts +3 -3
- package/dist/types/components/Textarea/Textarea.interface.d.ts +13 -10
- package/dist/types/components/Textarea/index.d.ts +1 -0
- package/dist/types/components/Tile/Tile.d.ts +2 -2
- package/dist/types/components/Tile/Tile.interface.d.ts +8 -5
- package/dist/types/components/Tile/index.d.ts +1 -0
- package/dist/types/components/Title/Title.d.ts +3 -3
- package/dist/types/components/Title/Title.interface.d.ts +17 -14
- package/dist/types/components/Title/index.d.ts +1 -0
- package/dist/types/components/Tooltip/Tooltip.d.ts +3 -3
- package/dist/types/components/Tooltip/Tooltip.interface.d.ts +9 -6
- package/dist/types/components/Tooltip/index.d.ts +1 -0
- package/dist/types/components/Video/Video.d.ts +2 -2
- package/dist/types/components/Video/Video.interface.d.ts +1 -1
- package/dist/types/components/Wrapper/Wrapper.d.ts +2 -2
- package/dist/types/components/Wrapper/Wrapper.interface.d.ts +4 -3
- package/dist/types/config/forms/index.d.ts +1 -2
- package/dist/types/hooks/useDeviceTargetClassGenerator.d.ts +3 -0
- package/dist/types/hooks/useDeviceTargetClassGenerator.interface.d.ts +20 -0
- package/dist/types/types/componentProps/appearanceKeys.d.ts +1 -1
- package/package.json +8 -7
- package/dist/Badge-_xQzAcyN.js +0 -114
- package/dist/Button-C8MATksY.js +0 -150
- package/dist/Button-ChSAts3j.js +0 -154
- package/dist/Divider-BoB-f9Gr.js +0 -74
- package/dist/Divider-DHIuQUsH.js +0 -71
- package/dist/DropdownItem-B8IMNQww.js +0 -182
- package/dist/DropdownItem-E9HkOU63.js +0 -186
- package/dist/Group-BCvs5UxK.js +0 -136
- package/dist/Group-u6YDbMxn.js +0 -139
- package/dist/Icon-C8ACV9r7.js +0 -122
- package/dist/Icon-DptCmI_y.js +0 -119
- package/dist/Image-8t6PvsaZ.js +0 -65
- package/dist/Image-DrUlRMHa.js +0 -67
- package/dist/Input-CgjHxZmK.js +0 -188
- package/dist/Input-KgHOW5DR.js +0 -191
- package/dist/Label-B06hLCqo.js +0 -139
- package/dist/Label-zOLL6ePu.js +0 -135
- package/dist/Link-CqWzwh8V.js +0 -99
- package/dist/Loader-DHNcD09o.js +0 -82
- package/dist/Loader-DReoCdZ2.js +0 -85
- package/dist/MenuItem-BXogEsbS.js +0 -104
- package/dist/MenuItem-C7frDyBO.js +0 -101
- package/dist/Overlay-CFXouKnl.js +0 -27
- package/dist/Overlay-DO5dnSRE.js +0 -25
- package/dist/Text-C4Bg2Mv6.js +0 -81
- package/dist/Text-R6XNq6Ca.js +0 -84
- package/dist/Title-DWIc05TX.js +0 -114
- package/dist/Title-YVzIwk68.js +0 -111
- package/dist/Tooltip--c-4Qp04.js +0 -150
- package/dist/Tooltip-BswHy19O.js +0 -153
- package/dist/cjs/components/ContextMenu.js +0 -52
- package/dist/cjs/components/LanguageSelector.js +0 -33
- package/dist/cjs/components/Page.js +0 -48
- package/dist/components/ContextMenu.js +0 -49
- package/dist/components/LanguageSelector.js +0 -31
- package/dist/components/Page.js +0 -46
- package/dist/css/components/ContextMenu/ContextMenu.css +0 -38
- package/dist/css/components/ContextMenu/css/__item/context-menu__item.css +0 -9
- package/dist/css/components/Page/Page.css +0 -8
- package/dist/types/components/ContextMenu/ContextMenu.d.ts +0 -3
- package/dist/types/components/ContextMenu/ContextMenu.interface.d.ts +0 -36
- package/dist/types/components/ContextMenu/ContextMenuItem.d.ts +0 -3
- package/dist/types/components/ContextMenu/index.d.ts +0 -3
- package/dist/types/components/LanguageSelector/Label.interface.d.ts +0 -20
- package/dist/types/components/LanguageSelector/LanguageSelector.d.ts +0 -3
- package/dist/types/components/LanguageSelector/index.d.ts +0 -1
- package/dist/types/components/Page/Page.d.ts +0 -3
- package/dist/types/components/Page/Page.interface.d.ts +0 -18
- package/dist/types/components/Page/index.d.ts +0 -1
- package/dist/types/config/forms/select.d.ts +0 -50
- package/dist/types/hooks/useDeviceTargetClass.d.ts +0 -1
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var clsx = require('clsx');
|
|
5
|
+
var useDeviceTargetClassGenerator = require('./cjs/hooks/useDeviceTargetClassGenerator.js');
|
|
6
|
+
var useStyles = require('./cjs/hooks/useStyles.js');
|
|
7
|
+
var Text = require('./Text-Beslj4Ns.js');
|
|
8
|
+
|
|
9
|
+
var badgeAppearance = {
|
|
10
|
+
accent: {
|
|
11
|
+
fill: 'accentPrimary',
|
|
12
|
+
fillHover: 'accentPrimaryHover',
|
|
13
|
+
textColor: 'accentTextPrimary',
|
|
14
|
+
},
|
|
15
|
+
primary: {
|
|
16
|
+
fill: 'primaryPrimary',
|
|
17
|
+
fillHover: 'primaryPrimaryHover',
|
|
18
|
+
textColor: 'primaryTextPrimary',
|
|
19
|
+
},
|
|
20
|
+
surfacePrimary: {
|
|
21
|
+
fill: 'surfacePrimary',
|
|
22
|
+
fillHover: 'surfacePrimaryHover',
|
|
23
|
+
textColor: 'surfaceTextPrimary',
|
|
24
|
+
},
|
|
25
|
+
surfaceSecondary: {
|
|
26
|
+
fill: 'surfaceSecondary',
|
|
27
|
+
fillHover: 'surfaceSecondaryHover',
|
|
28
|
+
textColor: 'surfaceTextPrimary',
|
|
29
|
+
},
|
|
30
|
+
surfaceTertiary: {
|
|
31
|
+
fill: 'surfaceTertiary',
|
|
32
|
+
fillHover: 'surfaceTertiaryHover',
|
|
33
|
+
textColor: 'surfaceTextPrimary',
|
|
34
|
+
},
|
|
35
|
+
surfaceQuaternary: {
|
|
36
|
+
fill: 'surfaceQuaternary',
|
|
37
|
+
fillHover: 'surfaceTertiaryHover',
|
|
38
|
+
textColor: 'surfaceTextInverse',
|
|
39
|
+
},
|
|
40
|
+
secondary: {
|
|
41
|
+
fill: 'secondaryPrimary',
|
|
42
|
+
fillHover: 'secondaryPrimaryHover',
|
|
43
|
+
textColor: 'secondaryTextPrimary',
|
|
44
|
+
},
|
|
45
|
+
disabled: {
|
|
46
|
+
fill: 'accentDisabled',
|
|
47
|
+
fillHover: 'none',
|
|
48
|
+
textColor: 'accentTextDisabled',
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
var badgeConfig = {
|
|
53
|
+
appearance: badgeAppearance,
|
|
54
|
+
setAppearance: function (newComponent) {
|
|
55
|
+
badgeConfig.appearance = newComponent;
|
|
56
|
+
},
|
|
57
|
+
};
|
|
58
|
+
function Badge(props) {
|
|
59
|
+
var children = props.children, appearance = props.appearance, className = props.className, mode = props.mode, textColor = props.textColor, textSize = props.textSize, value = props.value;
|
|
60
|
+
// @ts-expect-error
|
|
61
|
+
var appearanceConfig = badgeConfig.appearance && badgeConfig.appearance[appearance];
|
|
62
|
+
var classGenerator = useDeviceTargetClassGenerator.useDeviceTargetClassGenerator(props, appearanceConfig);
|
|
63
|
+
var borderColorClass = classGenerator.borderColorClass, borderColorHoverClass = classGenerator.borderColorHoverClass, borderTypeClass = classGenerator.borderTypeClass, borderWidthClass = classGenerator.borderWidthClass, fillClass = classGenerator.fillClass, fillHoverClass = classGenerator.fillHoverClass, positionClass = classGenerator.positionClass, shapeClass = classGenerator.shapeClass, sizeClass = classGenerator.sizeClass;
|
|
64
|
+
// @ts-expect-error
|
|
65
|
+
var badgeStyles = useStyles.useStyles(props).styles;
|
|
66
|
+
return (jsxRuntime.jsx("div", { className: clsx(className, 'badge', !value && 'badge_type_status', mode && "badge_mode_".concat(mode), borderColorClass && "border-color_".concat(borderColorClass), borderColorHoverClass && "border-color_hover_".concat(borderColorHoverClass), borderWidthClass && "border-width_".concat(borderWidthClass), borderTypeClass && "border_type_".concat(borderTypeClass), fillClass && "fill_".concat(fillClass), fillHoverClass && "fill_hover_".concat(fillHoverClass), positionClass && "position_".concat(positionClass), sizeClass && "badge_size_".concat(sizeClass), shapeClass && "badge_shape_".concat(shapeClass)), style: badgeStyles, children: children ||
|
|
67
|
+
(value && (jsxRuntime.jsx(Text.Text, { size: textSize, textColor: textColor || (appearanceConfig === null || appearanceConfig === void 0 ? void 0 : appearanceConfig.textColor), children: value }))) }));
|
|
68
|
+
}
|
|
69
|
+
Badge.defaultProps = {
|
|
70
|
+
shape: 'circular',
|
|
71
|
+
size: 'm',
|
|
72
|
+
};
|
|
73
|
+
|
|
74
|
+
exports.Badge = Badge;
|
|
75
|
+
exports.badgeAppearance = badgeAppearance;
|
|
76
|
+
exports.badgeConfig = badgeConfig;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsx } from 'react/jsx-runtime';
|
|
2
2
|
import clsx from 'clsx';
|
|
3
|
-
import {
|
|
3
|
+
import { useDeviceTargetClassGenerator } from './hooks/useDeviceTargetClassGenerator.js';
|
|
4
4
|
import { useStyles } from './hooks/useStyles.js';
|
|
5
|
-
import { T as Text } from './Text-
|
|
5
|
+
import { T as Text } from './Text-JayJa3hj.js';
|
|
6
6
|
|
|
7
7
|
var badgeAppearance = {
|
|
8
8
|
accent: {
|
|
@@ -54,52 +54,14 @@ var badgeConfig = {
|
|
|
54
54
|
},
|
|
55
55
|
};
|
|
56
56
|
function Badge(props) {
|
|
57
|
-
var _a, _b;
|
|
58
57
|
var children = props.children, appearance = props.appearance, className = props.className, mode = props.mode, textColor = props.textColor, textSize = props.textSize, value = props.value;
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
var borderColorHoverClass = useDeviceTargetClass(props, {
|
|
64
|
-
prefix: 'border-color_hover_',
|
|
65
|
-
propsKey: 'borderColorHover',
|
|
66
|
-
});
|
|
67
|
-
var borderWidthClass = useDeviceTargetClass(props, {
|
|
68
|
-
prefix: 'border-width_',
|
|
69
|
-
propsKey: 'borderWidth',
|
|
70
|
-
});
|
|
71
|
-
var borderTypeClass = useDeviceTargetClass(props, {
|
|
72
|
-
prefix: 'border_type_',
|
|
73
|
-
propsKey: 'borderType',
|
|
74
|
-
});
|
|
75
|
-
var fillClass = useDeviceTargetClass(props, {
|
|
76
|
-
prefix: 'fill_',
|
|
77
|
-
propsKey: 'fill',
|
|
78
|
-
});
|
|
79
|
-
var fillHoverClass = useDeviceTargetClass(props, {
|
|
80
|
-
prefix: 'fill_hover_',
|
|
81
|
-
propsKey: 'fillHover',
|
|
82
|
-
});
|
|
83
|
-
var positionClass = useDeviceTargetClass(props, {
|
|
84
|
-
prefix: 'position_',
|
|
85
|
-
propsKey: 'position',
|
|
86
|
-
});
|
|
87
|
-
var sizeClass = useDeviceTargetClass(props, {
|
|
88
|
-
prefix: 'badge_size_',
|
|
89
|
-
propsKey: 'size',
|
|
90
|
-
});
|
|
91
|
-
var shapeClass = useDeviceTargetClass(props, {
|
|
92
|
-
prefix: 'badge_shape_',
|
|
93
|
-
propsKey: 'shape',
|
|
94
|
-
});
|
|
58
|
+
// @ts-expect-error
|
|
59
|
+
var appearanceConfig = badgeConfig.appearance && badgeConfig.appearance[appearance];
|
|
60
|
+
var classGenerator = useDeviceTargetClassGenerator(props, appearanceConfig);
|
|
61
|
+
var borderColorClass = classGenerator.borderColorClass, borderColorHoverClass = classGenerator.borderColorHoverClass, borderTypeClass = classGenerator.borderTypeClass, borderWidthClass = classGenerator.borderWidthClass, fillClass = classGenerator.fillClass, fillHoverClass = classGenerator.fillHoverClass, positionClass = classGenerator.positionClass, shapeClass = classGenerator.shapeClass, sizeClass = classGenerator.sizeClass;
|
|
95
62
|
// @ts-expect-error
|
|
96
63
|
var badgeStyles = useStyles(props).styles;
|
|
97
|
-
|
|
98
|
-
return (jsx("div", { className: clsx(className, 'badge', !value && 'badge_type_status', mode && "badge_mode_".concat(mode), borderColorClass, borderColorHoverClass, borderWidthClass, borderTypeClass, fillClass ||
|
|
99
|
-
((appearanceConfig === null || appearanceConfig === void 0 ? void 0 : appearanceConfig.fill) &&
|
|
100
|
-
((_a = "fill_".concat(appearanceConfig.fill)) === null || _a === void 0 ? void 0 : _a.replace(/([A-Z])/g, '-$1').toLowerCase())), fillHoverClass ||
|
|
101
|
-
((appearanceConfig === null || appearanceConfig === void 0 ? void 0 : appearanceConfig.fillHover) &&
|
|
102
|
-
((_b = "fill_hover_".concat(appearanceConfig.fillHover)) === null || _b === void 0 ? void 0 : _b.replace(/([A-Z])/g, '-$1').toLowerCase())), positionClass, sizeClass, shapeClass), style: badgeStyles, children: children ||
|
|
64
|
+
return (jsx("div", { className: clsx(className, 'badge', !value && 'badge_type_status', mode && "badge_mode_".concat(mode), borderColorClass && "border-color_".concat(borderColorClass), borderColorHoverClass && "border-color_hover_".concat(borderColorHoverClass), borderWidthClass && "border-width_".concat(borderWidthClass), borderTypeClass && "border_type_".concat(borderTypeClass), fillClass && "fill_".concat(fillClass), fillHoverClass && "fill_hover_".concat(fillHoverClass), positionClass && "position_".concat(positionClass), sizeClass && "badge_size_".concat(sizeClass), shapeClass && "badge_shape_".concat(shapeClass)), style: badgeStyles, children: children ||
|
|
103
65
|
(value && (jsx(Text, { size: textSize, textColor: textColor || (appearanceConfig === null || appearanceConfig === void 0 ? void 0 : appearanceConfig.textColor), children: value }))) }));
|
|
104
66
|
}
|
|
105
67
|
Badge.defaultProps = {
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import clsx from 'clsx';
|
|
4
|
+
import { useDeviceTargetClassGenerator } from './hooks/useDeviceTargetClassGenerator.js';
|
|
5
|
+
import { useStyles } from './hooks/useStyles.js';
|
|
6
|
+
import { I as Icon } from './Icon-CZrDqG76.js';
|
|
7
|
+
import { a as LinkWrapper } from './Link-_A9ZfNln.js';
|
|
8
|
+
import { L as Loader } from './Loader-K_DJmah6.js';
|
|
9
|
+
import { T as Text } from './Text-JayJa3hj.js';
|
|
10
|
+
|
|
11
|
+
var buttonAppearance = {
|
|
12
|
+
dev: {
|
|
13
|
+
fill: 'surfaceSecondary',
|
|
14
|
+
fillHover: 'surfaceSecondaryHover',
|
|
15
|
+
label: 'Button',
|
|
16
|
+
labelTextColor: 'surfaceTextPrimary',
|
|
17
|
+
labelTextSize: 'l',
|
|
18
|
+
shape: 'rounded',
|
|
19
|
+
size: 'xxl',
|
|
20
|
+
},
|
|
21
|
+
accent: {
|
|
22
|
+
fill: 'accentPrimary',
|
|
23
|
+
fillHover: 'accentPrimaryHover',
|
|
24
|
+
labelTextColor: 'accentTextPrimary',
|
|
25
|
+
labelTextColorHover: 'accentTextPrimary',
|
|
26
|
+
loaderFill: 'accentPrimary',
|
|
27
|
+
loaderItemFill: 'accentItemPrimary',
|
|
28
|
+
},
|
|
29
|
+
accentSecondary: {
|
|
30
|
+
fill: 'accentSecondary',
|
|
31
|
+
fillHover: 'accentPrimaryHover',
|
|
32
|
+
labelTextColor: 'accentTextPrimary',
|
|
33
|
+
labelTextColorHover: 'accentTextPrimary',
|
|
34
|
+
loaderFill: 'accentPrimary',
|
|
35
|
+
loaderItemFill: 'accentItemPrimary',
|
|
36
|
+
},
|
|
37
|
+
primary: {
|
|
38
|
+
fill: 'primaryPrimary',
|
|
39
|
+
fillHover: 'primaryPrimaryHover',
|
|
40
|
+
labelTextColor: 'primaryTextPrimary',
|
|
41
|
+
},
|
|
42
|
+
secondary: {
|
|
43
|
+
fill: 'secondaryPrimary',
|
|
44
|
+
fillHover: 'secondaryPrimaryHover',
|
|
45
|
+
labelTextColor: 'secondaryTextPrimary',
|
|
46
|
+
},
|
|
47
|
+
surfacePrimary: {
|
|
48
|
+
fill: 'surfacePrimary',
|
|
49
|
+
fillHover: 'surfacePrimaryHover',
|
|
50
|
+
labelTextColor: 'surfaceTextPrimary',
|
|
51
|
+
},
|
|
52
|
+
surfaceSecondary: {
|
|
53
|
+
fill: 'surfaceSecondary',
|
|
54
|
+
fillHover: 'surfaceSecondaryHover',
|
|
55
|
+
labelTextColor: 'surfaceTextPrimary',
|
|
56
|
+
loaderFill: 'surfaceSecondary',
|
|
57
|
+
loaderItemFill: 'surfaceItemPrimary',
|
|
58
|
+
},
|
|
59
|
+
surfaceTertiary: {
|
|
60
|
+
fill: 'surfaceTertiary',
|
|
61
|
+
fillHover: 'surfaceTertiaryHover',
|
|
62
|
+
labelTextColor: 'surfaceTextPrimary',
|
|
63
|
+
},
|
|
64
|
+
surfaceDisabled: {
|
|
65
|
+
fill: 'surfaceDisabled',
|
|
66
|
+
fillHover: 'surfaceDisabled',
|
|
67
|
+
labelTextColor: 'surfaceTextPrimary',
|
|
68
|
+
},
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
var buttonConfig = {
|
|
72
|
+
appearance: buttonAppearance,
|
|
73
|
+
setAppearance: function (newComponent) {
|
|
74
|
+
buttonConfig.appearance = newComponent;
|
|
75
|
+
},
|
|
76
|
+
};
|
|
77
|
+
var Button = React.forwardRef(function Button(props, ref) {
|
|
78
|
+
var children = props.children, isDisabled = props.isDisabled, after = props.after, appearance = props.appearance, Badge = props.Badge, before = props.before, className = props.className, dataTestId = props.dataTestId, dataTour = props.dataTour, fillIcon = props.fillIcon, fillIconAfter = props.fillIconAfter, fillIconBefore = props.fillIconBefore, href = props.href, _a = props.htmlType, htmlType = _a === void 0 ? 'button' : _a, icon = props.icon, iconAfter = props.iconAfter, iconAfterFill = props.iconAfterFill, iconAfterFillSize = props.iconAfterFillSize, iconAfterShape = props.iconAfterShape, iconAfterSize = props.iconAfterSize, iconAfterSrc = props.iconAfterSrc, iconBefore = props.iconBefore, iconBeforeFill = props.iconBeforeFill, iconBeforeFillSize = props.iconBeforeFillSize, iconBeforeShape = props.iconBeforeShape, iconBeforeSize = props.iconBeforeSize, iconBeforeSrc = props.iconBeforeSrc, iconFill = props.iconFill, iconFillSize = props.iconFillSize, iconShape = props.iconShape, iconSize = props.iconSize, iconSrc = props.iconSrc, label = props.label, labelTextColor = props.labelTextColor, labelTextColorHover = props.labelTextColorHover, labelTextSize = props.labelTextSize, labelTextSizeMobile = props.labelTextSizeMobile, labelTextTruncate = props.labelTextTruncate, labelTextWeight = props.labelTextWeight, labelTextWidth = props.labelTextWidth, labelTextWrap = props.labelTextWrap, link = props.link, loaderFill = props.loaderFill, loaderItemFill = props.loaderItemFill, _b = props.loaderSet, loaderSet = _b === void 0 ? 'simple' : _b, _c = props.loading, loading = _c === void 0 ? false : _c, rel = props.rel, set = props.set, target = props.target, onClick = props.onClick, onMouseDown = props.onMouseDown;
|
|
79
|
+
// @ts-expect-error
|
|
80
|
+
var appearanceConfig = buttonConfig.appearance && buttonConfig.appearance[appearance];
|
|
81
|
+
var classGenerator = useDeviceTargetClassGenerator(props, appearanceConfig);
|
|
82
|
+
var borderColorClass = classGenerator.borderColorClass, borderTypeClass = classGenerator.borderTypeClass, borderWidthClass = classGenerator.borderWidthClass, elevationClass = classGenerator.elevationClass, fillClass = classGenerator.fillClass, fillHoverClass = classGenerator.fillHoverClass, shapeClass = classGenerator.shapeClass, sizeClass = classGenerator.sizeClass, widthClass = classGenerator.widthClass;
|
|
83
|
+
// @ts-expect-error
|
|
84
|
+
var _d = useStyles(props), labelStyles = _d.label, buttonStyles = _d.styles;
|
|
85
|
+
return (jsx(LinkWrapper, { className: clsx(className, 'button', label && 'button_type_label', !label &&
|
|
86
|
+
(iconBefore || iconBeforeSrc || iconAfter || iconAfterSrc || icon || iconSrc) &&
|
|
87
|
+
'button_type_icon', label &&
|
|
88
|
+
(after ||
|
|
89
|
+
before ||
|
|
90
|
+
icon ||
|
|
91
|
+
iconAfter ||
|
|
92
|
+
iconAfterSrc ||
|
|
93
|
+
iconBefore ||
|
|
94
|
+
iconBeforeSrc ||
|
|
95
|
+
iconSrc) &&
|
|
96
|
+
'button_type_with-icon', borderColorClass ? 'button_set_outlined' : set ? "button_set_".concat(set) : 'button_set_filled', borderWidthClass && "border-width_".concat(borderWidthClass), borderColorClass && "border-color_".concat(borderColorClass), borderTypeClass && "border_type_".concat(borderTypeClass), fillClass && "fill_".concat(fillClass), fillHoverClass && "fill_hover_".concat(fillHoverClass), shapeClass && "button_shape_".concat(shapeClass), sizeClass && "button_size_".concat(sizeClass), widthClass && "button_width_".concat(widthClass), elevationClass && "elevation_".concat(elevationClass), onClick && 'cursor_type_pointer', isDisabled && 'cursor_type_default', Badge && 'button_type_badge', loading && 'button_state_loading'), "data-test-id": dataTestId && "".concat(dataTestId, "Button"), "data-tour": dataTour, DefaultComponent: "button", disabled: isDisabled, href: link || href, rel: rel, style: buttonStyles, target: target, type: htmlType, onClick: onClick, onMouseDown: onMouseDown, children: jsxs("div", { className: "button__wrapper", ref: ref, children: [loading && (jsx(Loader, { className: clsx(className, 'button__loader', shapeClass), fill: loaderFill || (appearanceConfig === null || appearanceConfig === void 0 ? void 0 : appearanceConfig.loaderFill), itemFill: loaderItemFill || (appearanceConfig === null || appearanceConfig === void 0 ? void 0 : appearanceConfig.loaderItemFill), set: loaderSet })), before, (iconBefore || iconBeforeSrc) && (jsx(Icon, { className: "button__icon_before", fill: fillIconBefore, fillSize: iconBeforeFillSize, iconFill: iconBeforeFill || (appearanceConfig === null || appearanceConfig === void 0 ? void 0 : appearanceConfig.iconBeforeFill), imageSrc: iconBeforeSrc, shape: iconBeforeShape, size: iconBeforeSize, SvgImage: iconBefore })), (icon || iconSrc) && (jsx(Icon, { className: "button__icon", fill: fillIcon, fillSize: iconFillSize, iconFill: iconFill || (appearanceConfig === null || appearanceConfig === void 0 ? void 0 : appearanceConfig.iconFill), imageSrc: iconSrc, shape: iconShape, size: iconSize, SvgImage: icon })), (children || label || (appearanceConfig === null || appearanceConfig === void 0 ? void 0 : appearanceConfig.label)) && (jsx(Text, { className: "button__label", width: labelTextWidth, size: labelTextSize || (appearanceConfig === null || appearanceConfig === void 0 ? void 0 : appearanceConfig.labelTextSize) || undefined, sizeMobile: labelTextSizeMobile, style: labelStyles, textColor: labelTextColor || (appearanceConfig === null || appearanceConfig === void 0 ? void 0 : appearanceConfig.labelTextColor), textColorHover: labelTextColorHover || (appearanceConfig === null || appearanceConfig === void 0 ? void 0 : appearanceConfig.labelTextColorHover), textTruncate: labelTextTruncate, textWeight: labelTextWeight, textWrap: labelTextWrap, children: children || label || (appearanceConfig === null || appearanceConfig === void 0 ? void 0 : appearanceConfig.label) })), (iconAfter || iconAfterSrc) && (jsx(Icon, { className: "button__icon_after", fill: fillIconAfter, fillSize: iconAfterFillSize, iconFill: iconAfterFill || (appearanceConfig === null || appearanceConfig === void 0 ? void 0 : appearanceConfig.iconAfterFill), imageSrc: iconAfterSrc, shape: iconAfterShape, size: iconAfterSize, SvgImage: iconAfter })), Badge, after] }) }));
|
|
97
|
+
});
|
|
98
|
+
|
|
99
|
+
export { Button as B, buttonAppearance as a, buttonConfig as b };
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
var clsx = require('clsx');
|
|
6
|
+
var useDeviceTargetClassGenerator = require('./cjs/hooks/useDeviceTargetClassGenerator.js');
|
|
7
|
+
var useStyles = require('./cjs/hooks/useStyles.js');
|
|
8
|
+
var Icon = require('./Icon-hqYZoh4h.js');
|
|
9
|
+
var Link = require('./Link-DGj-cNje.js');
|
|
10
|
+
var Loader = require('./Loader-Dn036JwE.js');
|
|
11
|
+
var Text = require('./Text-Beslj4Ns.js');
|
|
12
|
+
|
|
13
|
+
var buttonAppearance = {
|
|
14
|
+
dev: {
|
|
15
|
+
fill: 'surfaceSecondary',
|
|
16
|
+
fillHover: 'surfaceSecondaryHover',
|
|
17
|
+
label: 'Button',
|
|
18
|
+
labelTextColor: 'surfaceTextPrimary',
|
|
19
|
+
labelTextSize: 'l',
|
|
20
|
+
shape: 'rounded',
|
|
21
|
+
size: 'xxl',
|
|
22
|
+
},
|
|
23
|
+
accent: {
|
|
24
|
+
fill: 'accentPrimary',
|
|
25
|
+
fillHover: 'accentPrimaryHover',
|
|
26
|
+
labelTextColor: 'accentTextPrimary',
|
|
27
|
+
labelTextColorHover: 'accentTextPrimary',
|
|
28
|
+
loaderFill: 'accentPrimary',
|
|
29
|
+
loaderItemFill: 'accentItemPrimary',
|
|
30
|
+
},
|
|
31
|
+
accentSecondary: {
|
|
32
|
+
fill: 'accentSecondary',
|
|
33
|
+
fillHover: 'accentPrimaryHover',
|
|
34
|
+
labelTextColor: 'accentTextPrimary',
|
|
35
|
+
labelTextColorHover: 'accentTextPrimary',
|
|
36
|
+
loaderFill: 'accentPrimary',
|
|
37
|
+
loaderItemFill: 'accentItemPrimary',
|
|
38
|
+
},
|
|
39
|
+
primary: {
|
|
40
|
+
fill: 'primaryPrimary',
|
|
41
|
+
fillHover: 'primaryPrimaryHover',
|
|
42
|
+
labelTextColor: 'primaryTextPrimary',
|
|
43
|
+
},
|
|
44
|
+
secondary: {
|
|
45
|
+
fill: 'secondaryPrimary',
|
|
46
|
+
fillHover: 'secondaryPrimaryHover',
|
|
47
|
+
labelTextColor: 'secondaryTextPrimary',
|
|
48
|
+
},
|
|
49
|
+
surfacePrimary: {
|
|
50
|
+
fill: 'surfacePrimary',
|
|
51
|
+
fillHover: 'surfacePrimaryHover',
|
|
52
|
+
labelTextColor: 'surfaceTextPrimary',
|
|
53
|
+
},
|
|
54
|
+
surfaceSecondary: {
|
|
55
|
+
fill: 'surfaceSecondary',
|
|
56
|
+
fillHover: 'surfaceSecondaryHover',
|
|
57
|
+
labelTextColor: 'surfaceTextPrimary',
|
|
58
|
+
loaderFill: 'surfaceSecondary',
|
|
59
|
+
loaderItemFill: 'surfaceItemPrimary',
|
|
60
|
+
},
|
|
61
|
+
surfaceTertiary: {
|
|
62
|
+
fill: 'surfaceTertiary',
|
|
63
|
+
fillHover: 'surfaceTertiaryHover',
|
|
64
|
+
labelTextColor: 'surfaceTextPrimary',
|
|
65
|
+
},
|
|
66
|
+
surfaceDisabled: {
|
|
67
|
+
fill: 'surfaceDisabled',
|
|
68
|
+
fillHover: 'surfaceDisabled',
|
|
69
|
+
labelTextColor: 'surfaceTextPrimary',
|
|
70
|
+
},
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
var buttonConfig = {
|
|
74
|
+
appearance: buttonAppearance,
|
|
75
|
+
setAppearance: function (newComponent) {
|
|
76
|
+
buttonConfig.appearance = newComponent;
|
|
77
|
+
},
|
|
78
|
+
};
|
|
79
|
+
var Button = React.forwardRef(function Button(props, ref) {
|
|
80
|
+
var children = props.children, isDisabled = props.isDisabled, after = props.after, appearance = props.appearance, Badge = props.Badge, before = props.before, className = props.className, dataTestId = props.dataTestId, dataTour = props.dataTour, fillIcon = props.fillIcon, fillIconAfter = props.fillIconAfter, fillIconBefore = props.fillIconBefore, href = props.href, _a = props.htmlType, htmlType = _a === void 0 ? 'button' : _a, icon = props.icon, iconAfter = props.iconAfter, iconAfterFill = props.iconAfterFill, iconAfterFillSize = props.iconAfterFillSize, iconAfterShape = props.iconAfterShape, iconAfterSize = props.iconAfterSize, iconAfterSrc = props.iconAfterSrc, iconBefore = props.iconBefore, iconBeforeFill = props.iconBeforeFill, iconBeforeFillSize = props.iconBeforeFillSize, iconBeforeShape = props.iconBeforeShape, iconBeforeSize = props.iconBeforeSize, iconBeforeSrc = props.iconBeforeSrc, iconFill = props.iconFill, iconFillSize = props.iconFillSize, iconShape = props.iconShape, iconSize = props.iconSize, iconSrc = props.iconSrc, label = props.label, labelTextColor = props.labelTextColor, labelTextColorHover = props.labelTextColorHover, labelTextSize = props.labelTextSize, labelTextSizeMobile = props.labelTextSizeMobile, labelTextTruncate = props.labelTextTruncate, labelTextWeight = props.labelTextWeight, labelTextWidth = props.labelTextWidth, labelTextWrap = props.labelTextWrap, link = props.link, loaderFill = props.loaderFill, loaderItemFill = props.loaderItemFill, _b = props.loaderSet, loaderSet = _b === void 0 ? 'simple' : _b, _c = props.loading, loading = _c === void 0 ? false : _c, rel = props.rel, set = props.set, target = props.target, onClick = props.onClick, onMouseDown = props.onMouseDown;
|
|
81
|
+
// @ts-expect-error
|
|
82
|
+
var appearanceConfig = buttonConfig.appearance && buttonConfig.appearance[appearance];
|
|
83
|
+
var classGenerator = useDeviceTargetClassGenerator.useDeviceTargetClassGenerator(props, appearanceConfig);
|
|
84
|
+
var borderColorClass = classGenerator.borderColorClass, borderTypeClass = classGenerator.borderTypeClass, borderWidthClass = classGenerator.borderWidthClass, elevationClass = classGenerator.elevationClass, fillClass = classGenerator.fillClass, fillHoverClass = classGenerator.fillHoverClass, shapeClass = classGenerator.shapeClass, sizeClass = classGenerator.sizeClass, widthClass = classGenerator.widthClass;
|
|
85
|
+
// @ts-expect-error
|
|
86
|
+
var _d = useStyles.useStyles(props), labelStyles = _d.label, buttonStyles = _d.styles;
|
|
87
|
+
return (jsxRuntime.jsx(Link.LinkWrapper, { className: clsx(className, 'button', label && 'button_type_label', !label &&
|
|
88
|
+
(iconBefore || iconBeforeSrc || iconAfter || iconAfterSrc || icon || iconSrc) &&
|
|
89
|
+
'button_type_icon', label &&
|
|
90
|
+
(after ||
|
|
91
|
+
before ||
|
|
92
|
+
icon ||
|
|
93
|
+
iconAfter ||
|
|
94
|
+
iconAfterSrc ||
|
|
95
|
+
iconBefore ||
|
|
96
|
+
iconBeforeSrc ||
|
|
97
|
+
iconSrc) &&
|
|
98
|
+
'button_type_with-icon', borderColorClass ? 'button_set_outlined' : set ? "button_set_".concat(set) : 'button_set_filled', borderWidthClass && "border-width_".concat(borderWidthClass), borderColorClass && "border-color_".concat(borderColorClass), borderTypeClass && "border_type_".concat(borderTypeClass), fillClass && "fill_".concat(fillClass), fillHoverClass && "fill_hover_".concat(fillHoverClass), shapeClass && "button_shape_".concat(shapeClass), sizeClass && "button_size_".concat(sizeClass), widthClass && "button_width_".concat(widthClass), elevationClass && "elevation_".concat(elevationClass), onClick && 'cursor_type_pointer', isDisabled && 'cursor_type_default', Badge && 'button_type_badge', loading && 'button_state_loading'), "data-test-id": dataTestId && "".concat(dataTestId, "Button"), "data-tour": dataTour, DefaultComponent: "button", disabled: isDisabled, href: link || href, rel: rel, style: buttonStyles, target: target, type: htmlType, onClick: onClick, onMouseDown: onMouseDown, children: jsxRuntime.jsxs("div", { className: "button__wrapper", ref: ref, children: [loading && (jsxRuntime.jsx(Loader.Loader, { className: clsx(className, 'button__loader', shapeClass), fill: loaderFill || (appearanceConfig === null || appearanceConfig === void 0 ? void 0 : appearanceConfig.loaderFill), itemFill: loaderItemFill || (appearanceConfig === null || appearanceConfig === void 0 ? void 0 : appearanceConfig.loaderItemFill), set: loaderSet })), before, (iconBefore || iconBeforeSrc) && (jsxRuntime.jsx(Icon.Icon, { className: "button__icon_before", fill: fillIconBefore, fillSize: iconBeforeFillSize, iconFill: iconBeforeFill || (appearanceConfig === null || appearanceConfig === void 0 ? void 0 : appearanceConfig.iconBeforeFill), imageSrc: iconBeforeSrc, shape: iconBeforeShape, size: iconBeforeSize, SvgImage: iconBefore })), (icon || iconSrc) && (jsxRuntime.jsx(Icon.Icon, { className: "button__icon", fill: fillIcon, fillSize: iconFillSize, iconFill: iconFill || (appearanceConfig === null || appearanceConfig === void 0 ? void 0 : appearanceConfig.iconFill), imageSrc: iconSrc, shape: iconShape, size: iconSize, SvgImage: icon })), (children || label || (appearanceConfig === null || appearanceConfig === void 0 ? void 0 : appearanceConfig.label)) && (jsxRuntime.jsx(Text.Text, { className: "button__label", width: labelTextWidth, size: labelTextSize || (appearanceConfig === null || appearanceConfig === void 0 ? void 0 : appearanceConfig.labelTextSize) || undefined, sizeMobile: labelTextSizeMobile, style: labelStyles, textColor: labelTextColor || (appearanceConfig === null || appearanceConfig === void 0 ? void 0 : appearanceConfig.labelTextColor), textColorHover: labelTextColorHover || (appearanceConfig === null || appearanceConfig === void 0 ? void 0 : appearanceConfig.labelTextColorHover), textTruncate: labelTextTruncate, textWeight: labelTextWeight, textWrap: labelTextWrap, children: children || label || (appearanceConfig === null || appearanceConfig === void 0 ? void 0 : appearanceConfig.label) })), (iconAfter || iconAfterSrc) && (jsxRuntime.jsx(Icon.Icon, { className: "button__icon_after", fill: fillIconAfter, fillSize: iconAfterFillSize, iconFill: iconAfterFill || (appearanceConfig === null || appearanceConfig === void 0 ? void 0 : appearanceConfig.iconAfterFill), imageSrc: iconAfterSrc, shape: iconAfterShape, size: iconAfterSize, SvgImage: iconAfter })), Badge, after] }) }));
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
exports.Button = Button;
|
|
102
|
+
exports.buttonAppearance = buttonAppearance;
|
|
103
|
+
exports.buttonConfig = buttonConfig;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import clsx from 'clsx';
|
|
3
|
+
import { useDeviceTargetClassGenerator } from './hooks/useDeviceTargetClassGenerator.js';
|
|
4
|
+
import { useStyles } from './hooks/useStyles.js';
|
|
5
|
+
|
|
6
|
+
var dividerAppearance = {
|
|
7
|
+
dev: {},
|
|
8
|
+
};
|
|
9
|
+
|
|
10
|
+
var dividerConfig = {
|
|
11
|
+
appearance: dividerAppearance,
|
|
12
|
+
setAppearance: function (newComponent) {
|
|
13
|
+
dividerConfig.appearance = newComponent;
|
|
14
|
+
},
|
|
15
|
+
};
|
|
16
|
+
function Divider(props) {
|
|
17
|
+
var appearance = props.appearance, className = props.className;
|
|
18
|
+
// @ts-expect-error
|
|
19
|
+
var appearanceConfig = dividerConfig.appearance && dividerConfig.appearance[appearance];
|
|
20
|
+
var classGenerator = useDeviceTargetClassGenerator(props, appearanceConfig);
|
|
21
|
+
var directionClass = classGenerator.directionClass, fillActiveClass = classGenerator.fillActiveClass, fillActiveHoverClass = classGenerator.fillActiveHoverClass, fillClass = classGenerator.fillClass, fillDisabledClass = classGenerator.fillDisabledClass, fillHoverClass = classGenerator.fillHoverClass, sizeClass = classGenerator.sizeClass, widthClass = classGenerator.widthClass;
|
|
22
|
+
// @ts-expect-error
|
|
23
|
+
var hrStyles = useStyles(props).styles;
|
|
24
|
+
return (jsx("hr", { className: clsx(className, 'divider', widthClass && "width_".concat(widthClass), directionClass && "divider_direction_".concat(directionClass), sizeClass && "divider_size_".concat(sizeClass), fillClass && "fill_".concat(fillClass), fillHoverClass && "fill_hover_".concat(fillHoverClass), fillActiveClass && "fill_active_".concat(fillActiveClass), fillActiveHoverClass && "fill_active_hover_".concat(fillActiveHoverClass), fillDisabledClass && "fill_disabled_".concat(fillDisabledClass)), style: hrStyles }));
|
|
25
|
+
}
|
|
26
|
+
Divider.defaultProps = {
|
|
27
|
+
size: 'xs',
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export { Divider as D, dividerAppearance as a, dividerConfig as d };
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var clsx = require('clsx');
|
|
5
|
+
var useDeviceTargetClassGenerator = require('./cjs/hooks/useDeviceTargetClassGenerator.js');
|
|
6
|
+
var useStyles = require('./cjs/hooks/useStyles.js');
|
|
7
|
+
|
|
8
|
+
var dividerAppearance = {
|
|
9
|
+
dev: {},
|
|
10
|
+
};
|
|
11
|
+
|
|
12
|
+
var dividerConfig = {
|
|
13
|
+
appearance: dividerAppearance,
|
|
14
|
+
setAppearance: function (newComponent) {
|
|
15
|
+
dividerConfig.appearance = newComponent;
|
|
16
|
+
},
|
|
17
|
+
};
|
|
18
|
+
function Divider(props) {
|
|
19
|
+
var appearance = props.appearance, className = props.className;
|
|
20
|
+
// @ts-expect-error
|
|
21
|
+
var appearanceConfig = dividerConfig.appearance && dividerConfig.appearance[appearance];
|
|
22
|
+
var classGenerator = useDeviceTargetClassGenerator.useDeviceTargetClassGenerator(props, appearanceConfig);
|
|
23
|
+
var directionClass = classGenerator.directionClass, fillActiveClass = classGenerator.fillActiveClass, fillActiveHoverClass = classGenerator.fillActiveHoverClass, fillClass = classGenerator.fillClass, fillDisabledClass = classGenerator.fillDisabledClass, fillHoverClass = classGenerator.fillHoverClass, sizeClass = classGenerator.sizeClass, widthClass = classGenerator.widthClass;
|
|
24
|
+
// @ts-expect-error
|
|
25
|
+
var hrStyles = useStyles.useStyles(props).styles;
|
|
26
|
+
return (jsxRuntime.jsx("hr", { className: clsx(className, 'divider', widthClass && "width_".concat(widthClass), directionClass && "divider_direction_".concat(directionClass), sizeClass && "divider_size_".concat(sizeClass), fillClass && "fill_".concat(fillClass), fillHoverClass && "fill_hover_".concat(fillHoverClass), fillActiveClass && "fill_active_".concat(fillActiveClass), fillActiveHoverClass && "fill_active_hover_".concat(fillActiveHoverClass), fillDisabledClass && "fill_disabled_".concat(fillDisabledClass)), style: hrStyles }));
|
|
27
|
+
}
|
|
28
|
+
Divider.defaultProps = {
|
|
29
|
+
size: 'xs',
|
|
30
|
+
};
|
|
31
|
+
|
|
32
|
+
exports.Divider = Divider;
|
|
33
|
+
exports.dividerAppearance = dividerAppearance;
|
|
34
|
+
exports.dividerConfig = dividerConfig;
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import React, { useRef, useState, useCallback, useEffect } from 'react';
|
|
3
|
+
import clsx from 'clsx';
|
|
4
|
+
import { useDeviceTargetClassGenerator } from './hooks/useDeviceTargetClassGenerator.js';
|
|
5
|
+
import { useStyles } from './hooks/useStyles.js';
|
|
6
|
+
import { D as Divider } from './Divider-DBvDCUqP.js';
|
|
7
|
+
import { L as Link } from './Link-_A9ZfNln.js';
|
|
8
|
+
import { T as Text } from './Text-JayJa3hj.js';
|
|
9
|
+
|
|
10
|
+
function Dropdown(props) {
|
|
11
|
+
var children = props.children, isOpen = props.isOpen, after = props.after, _a = props.animationClose, animationClose = _a === void 0 ? 'dropdown_animation_close' : _a, _b = props.animationOpen, animationOpen = _b === void 0 ? 'dropdown_animation_open' : _b, before = props.before, className = props.className, _c = props.set, set = _c === void 0 ? 'normal' : _c, setIsOpen = props.setIsOpen;
|
|
12
|
+
var dropdownRef = useRef(null);
|
|
13
|
+
// const [isOpen, setIsOpen] = useState(false)
|
|
14
|
+
var _d = useState({
|
|
15
|
+
className: '',
|
|
16
|
+
}), animationState = _d[0], setAnimationState = _d[1];
|
|
17
|
+
var onAnimationEnd = useCallback(function () {
|
|
18
|
+
// When component is change his visibility(display) in DOM,
|
|
19
|
+
// animation of close can run unnecessary on showing element.
|
|
20
|
+
// const dropdownElement = dropdownRef.current
|
|
21
|
+
setAnimationState(function (prevState) { return ({
|
|
22
|
+
className: isOpen ? prevState.className : '',
|
|
23
|
+
}); });
|
|
24
|
+
}, [isOpen]);
|
|
25
|
+
useEffect(function () {
|
|
26
|
+
if (animationOpen && animationClose) {
|
|
27
|
+
setAnimationState(function () { return ({
|
|
28
|
+
className: isOpen ? animationOpen : animationClose,
|
|
29
|
+
}); });
|
|
30
|
+
}
|
|
31
|
+
}, [isOpen]);
|
|
32
|
+
// Close dropdown by click outside
|
|
33
|
+
useEffect(function () {
|
|
34
|
+
// Add a handler to keep track of the click target.
|
|
35
|
+
function onClickWindow(event) {
|
|
36
|
+
var dropdownElement = dropdownRef.current;
|
|
37
|
+
if (dropdownElement && animationOpen) {
|
|
38
|
+
// Is event target inside of dropdown element
|
|
39
|
+
var isContainsTarget = dropdownElement.contains(event.target);
|
|
40
|
+
// Is dropdown element has "open" class
|
|
41
|
+
var hasOpenClass = dropdownElement.classList.contains(animationOpen);
|
|
42
|
+
if (!isContainsTarget && hasOpenClass) {
|
|
43
|
+
// Trigger close event with animation
|
|
44
|
+
// dropdownElement.click() - trigger "onClickWindow" again
|
|
45
|
+
setIsOpen(false);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
// Add event listener for current dropdown on first render
|
|
50
|
+
window.addEventListener('click', onClickWindow);
|
|
51
|
+
return function () {
|
|
52
|
+
// Remove event listener for current dropdown on unmount
|
|
53
|
+
window.removeEventListener('click', onClickWindow);
|
|
54
|
+
};
|
|
55
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
56
|
+
}, []);
|
|
57
|
+
var classGenerator = useDeviceTargetClassGenerator(props);
|
|
58
|
+
var alignmentClass = classGenerator.alignmentClass, elevationClass = classGenerator.elevationClass, fillClass = classGenerator.fillClass, fillHoverClass = classGenerator.fillHoverClass, shapeClass = classGenerator.shapeClass;
|
|
59
|
+
// @ts-expect-error
|
|
60
|
+
var styles = useStyles(props).styles;
|
|
61
|
+
return (jsxs("div", { className: clsx(className, 'dropdown', alignmentClass && "alignment_".concat(alignmentClass), set && "dropdown_set_".concat(set), shapeClass && "dropdown_shape_".concat(shapeClass), elevationClass && "elevation_".concat(elevationClass), isOpen ? 'dropdown_state_open' : 'dropdown_state_close', animationState.className), ref: dropdownRef, style: styles, children: [before, children && (jsx("div", { className: clsx('dropdown__wrapper', fillClass && "fill_".concat(fillClass), fillHoverClass && "fill_hover_".concat(fillHoverClass)),
|
|
62
|
+
// Add "onAnimationEnd" only for wrapper for ignore dropdown button
|
|
63
|
+
onAnimationEnd: onAnimationEnd, children: children })), after] }));
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
var dropdownItemAppearance = {
|
|
67
|
+
dev: {},
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
var dropdownItemConfig = {
|
|
71
|
+
appearance: dropdownItemAppearance,
|
|
72
|
+
setAppearance: function (newComponent) {
|
|
73
|
+
dropdownItemConfig.appearance = newComponent;
|
|
74
|
+
},
|
|
75
|
+
};
|
|
76
|
+
function DropdownItem(props) {
|
|
77
|
+
var children = props.children, isActive = props.isActive, isHover = props.isHover, after = props.after, appearance = props.appearance, before = props.before, className = props.className, desc = props.desc, descTextColor = props.descTextColor, descTextColorHover = props.descTextColorHover, descTextGradient = props.descTextGradient, descTextSize = props.descTextSize, descTextStyle = props.descTextStyle, descTextWeight = props.descTextWeight, descTextWrap = props.descTextWrap, dividerDirection = props.dividerDirection, dividerFill = props.dividerFill, dividerSize = props.dividerSize, href = props.href, label = props.label, labelTextAlign = props.labelTextAlign, labelTextColor = props.labelTextColor, labelTextColorActive = props.labelTextColorActive, labelTextColorHover = props.labelTextColorHover, labelTextGradient = props.labelTextGradient, labelTextSize = props.labelTextSize, labelTextStyle = props.labelTextStyle, labelTextWeight = props.labelTextWeight, labelTextWrap = props.labelTextWrap, link = props.link, linkFill = props.linkFill, rel = props.rel, set = props.set, showDivider = props.showDivider, target = props.target, underline = props.underline, onClick = props.onClick, onMouseEnter = props.onMouseEnter;
|
|
78
|
+
// prettier-ignore
|
|
79
|
+
var appearanceConfig = (dropdownItemConfig.appearance && dropdownItemConfig.appearance[appearance]);
|
|
80
|
+
var classGenerator = useDeviceTargetClassGenerator(props, appearanceConfig);
|
|
81
|
+
var alignClass = classGenerator.alignClass, alignDirectionClass = classGenerator.alignDirectionClass, directionClass = classGenerator.directionClass, fillActiveClass = classGenerator.fillActiveClass, fillActiveHoverClass = classGenerator.fillActiveHoverClass, fillClass = classGenerator.fillClass, fillDisabledClass = classGenerator.fillDisabledClass, fillHoverClass = classGenerator.fillHoverClass, justifyContentClass = classGenerator.justifyContentClass, shapeClass = classGenerator.shapeClass, sizeClass = classGenerator.sizeClass, typeClass = classGenerator.typeClass, widthClass = classGenerator.widthClass;
|
|
82
|
+
// @ts-expect-error
|
|
83
|
+
var dropdownItem = useStyles(props).styles;
|
|
84
|
+
return (jsxs("div", { className: clsx('dropdown__item', isActive && 'dropdown__item_state_active', isHover && 'dropdown__item_state_hover', directionClass && "dropdown__item_direction_".concat(directionClass), className, fillClass && "fill_".concat(fillClass), fillHoverClass && "fill_hover_".concat(fillHoverClass), fillActiveClass && "fill_active_".concat(fillActiveClass), fillActiveHoverClass && "fill_active_hover_".concat(fillActiveHoverClass), fillDisabledClass && "fill_disabled_".concat(fillDisabledClass), sizeClass && "dropdown__item_size_".concat(sizeClass), shapeClass && "dropdown__item_shape_".concat(shapeClass), typeClass && "dropdown__item_type_".concat(typeClass), widthClass && "dropdown__item_width_".concat(widthClass), onClick && 'cursor_type_pointer', set && "dropdown__item_set_".concat(set), justifyContentClass && "dropdown__item_justify-content_".concat(justifyContentClass)), style: dropdownItem, onClick: onClick, onMouseEnter: onMouseEnter, children: [jsx("div", { className: "dropdown__item-wrapper", children: jsx(Link, { className: clsx('dropdown__item-link', alignDirectionClass && "align_".concat(alignDirectionClass), alignClass && "align_".concat(alignClass)), fill: linkFill, href: link || href, rel: rel, target: target, underline: underline, children: jsxs(React.Fragment, { children: [before, children || (jsxs(React.Fragment, { children: [label && (jsx(Text, { className: "dropdown__item-label", size: labelTextSize || (appearanceConfig === null || appearanceConfig === void 0 ? void 0 : appearanceConfig.labelTextSize), textAlign: labelTextAlign, textColor: labelTextColor || (appearanceConfig === null || appearanceConfig === void 0 ? void 0 : appearanceConfig.labelTextColor), textColorActive: isActive ? labelTextColorActive : undefined, textColorGradient: labelTextGradient, textColorHover: labelTextColorHover, textStyle: labelTextStyle, textWeight: labelTextWeight, textWrap: labelTextWrap, children: label })), desc && (jsx(Text, { className: "dropdown__item-desc", size: descTextSize || (appearanceConfig === null || appearanceConfig === void 0 ? void 0 : appearanceConfig.descTextSize), textColor: descTextColor || (appearanceConfig === null || appearanceConfig === void 0 ? void 0 : appearanceConfig.descTextColor), textColorGradient: descTextGradient, textColorHover: descTextColorHover, textStyle: descTextStyle, textWeight: descTextWeight, textWrap: descTextWrap, children: desc }))] })), after] }) }) }), showDivider && (jsx(Divider, { width: "fill", fill: dividerFill || 'surfaceTertiary', direction: dividerDirection, size: dividerSize }))] }));
|
|
85
|
+
}
|
|
86
|
+
DropdownItem.defaultProps = {
|
|
87
|
+
width: 'fixed',
|
|
88
|
+
LinkComponent: 'a',
|
|
89
|
+
size: 'l',
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
export { Dropdown as D, DropdownItem as a, dropdownItemConfig as b, dropdownItemAppearance as d };
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
4
|
+
var React = require('react');
|
|
5
|
+
var clsx = require('clsx');
|
|
6
|
+
var useDeviceTargetClassGenerator = require('./cjs/hooks/useDeviceTargetClassGenerator.js');
|
|
7
|
+
var useStyles = require('./cjs/hooks/useStyles.js');
|
|
8
|
+
var Divider = require('./Divider-Goh6mpPK.js');
|
|
9
|
+
var Link = require('./Link-DGj-cNje.js');
|
|
10
|
+
var Text = require('./Text-Beslj4Ns.js');
|
|
11
|
+
|
|
12
|
+
function Dropdown(props) {
|
|
13
|
+
var children = props.children, isOpen = props.isOpen, after = props.after, _a = props.animationClose, animationClose = _a === void 0 ? 'dropdown_animation_close' : _a, _b = props.animationOpen, animationOpen = _b === void 0 ? 'dropdown_animation_open' : _b, before = props.before, className = props.className, _c = props.set, set = _c === void 0 ? 'normal' : _c, setIsOpen = props.setIsOpen;
|
|
14
|
+
var dropdownRef = React.useRef(null);
|
|
15
|
+
// const [isOpen, setIsOpen] = useState(false)
|
|
16
|
+
var _d = React.useState({
|
|
17
|
+
className: '',
|
|
18
|
+
}), animationState = _d[0], setAnimationState = _d[1];
|
|
19
|
+
var onAnimationEnd = React.useCallback(function () {
|
|
20
|
+
// When component is change his visibility(display) in DOM,
|
|
21
|
+
// animation of close can run unnecessary on showing element.
|
|
22
|
+
// const dropdownElement = dropdownRef.current
|
|
23
|
+
setAnimationState(function (prevState) { return ({
|
|
24
|
+
className: isOpen ? prevState.className : '',
|
|
25
|
+
}); });
|
|
26
|
+
}, [isOpen]);
|
|
27
|
+
React.useEffect(function () {
|
|
28
|
+
if (animationOpen && animationClose) {
|
|
29
|
+
setAnimationState(function () { return ({
|
|
30
|
+
className: isOpen ? animationOpen : animationClose,
|
|
31
|
+
}); });
|
|
32
|
+
}
|
|
33
|
+
}, [isOpen]);
|
|
34
|
+
// Close dropdown by click outside
|
|
35
|
+
React.useEffect(function () {
|
|
36
|
+
// Add a handler to keep track of the click target.
|
|
37
|
+
function onClickWindow(event) {
|
|
38
|
+
var dropdownElement = dropdownRef.current;
|
|
39
|
+
if (dropdownElement && animationOpen) {
|
|
40
|
+
// Is event target inside of dropdown element
|
|
41
|
+
var isContainsTarget = dropdownElement.contains(event.target);
|
|
42
|
+
// Is dropdown element has "open" class
|
|
43
|
+
var hasOpenClass = dropdownElement.classList.contains(animationOpen);
|
|
44
|
+
if (!isContainsTarget && hasOpenClass) {
|
|
45
|
+
// Trigger close event with animation
|
|
46
|
+
// dropdownElement.click() - trigger "onClickWindow" again
|
|
47
|
+
setIsOpen(false);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
// Add event listener for current dropdown on first render
|
|
52
|
+
window.addEventListener('click', onClickWindow);
|
|
53
|
+
return function () {
|
|
54
|
+
// Remove event listener for current dropdown on unmount
|
|
55
|
+
window.removeEventListener('click', onClickWindow);
|
|
56
|
+
};
|
|
57
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
58
|
+
}, []);
|
|
59
|
+
var classGenerator = useDeviceTargetClassGenerator.useDeviceTargetClassGenerator(props);
|
|
60
|
+
var alignmentClass = classGenerator.alignmentClass, elevationClass = classGenerator.elevationClass, fillClass = classGenerator.fillClass, fillHoverClass = classGenerator.fillHoverClass, shapeClass = classGenerator.shapeClass;
|
|
61
|
+
// @ts-expect-error
|
|
62
|
+
var styles = useStyles.useStyles(props).styles;
|
|
63
|
+
return (jsxRuntime.jsxs("div", { className: clsx(className, 'dropdown', alignmentClass && "alignment_".concat(alignmentClass), set && "dropdown_set_".concat(set), shapeClass && "dropdown_shape_".concat(shapeClass), elevationClass && "elevation_".concat(elevationClass), isOpen ? 'dropdown_state_open' : 'dropdown_state_close', animationState.className), ref: dropdownRef, style: styles, children: [before, children && (jsxRuntime.jsx("div", { className: clsx('dropdown__wrapper', fillClass && "fill_".concat(fillClass), fillHoverClass && "fill_hover_".concat(fillHoverClass)),
|
|
64
|
+
// Add "onAnimationEnd" only for wrapper for ignore dropdown button
|
|
65
|
+
onAnimationEnd: onAnimationEnd, children: children })), after] }));
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
var dropdownItemAppearance = {
|
|
69
|
+
dev: {},
|
|
70
|
+
};
|
|
71
|
+
|
|
72
|
+
var dropdownItemConfig = {
|
|
73
|
+
appearance: dropdownItemAppearance,
|
|
74
|
+
setAppearance: function (newComponent) {
|
|
75
|
+
dropdownItemConfig.appearance = newComponent;
|
|
76
|
+
},
|
|
77
|
+
};
|
|
78
|
+
function DropdownItem(props) {
|
|
79
|
+
var children = props.children, isActive = props.isActive, isHover = props.isHover, after = props.after, appearance = props.appearance, before = props.before, className = props.className, desc = props.desc, descTextColor = props.descTextColor, descTextColorHover = props.descTextColorHover, descTextGradient = props.descTextGradient, descTextSize = props.descTextSize, descTextStyle = props.descTextStyle, descTextWeight = props.descTextWeight, descTextWrap = props.descTextWrap, dividerDirection = props.dividerDirection, dividerFill = props.dividerFill, dividerSize = props.dividerSize, href = props.href, label = props.label, labelTextAlign = props.labelTextAlign, labelTextColor = props.labelTextColor, labelTextColorActive = props.labelTextColorActive, labelTextColorHover = props.labelTextColorHover, labelTextGradient = props.labelTextGradient, labelTextSize = props.labelTextSize, labelTextStyle = props.labelTextStyle, labelTextWeight = props.labelTextWeight, labelTextWrap = props.labelTextWrap, link = props.link, linkFill = props.linkFill, rel = props.rel, set = props.set, showDivider = props.showDivider, target = props.target, underline = props.underline, onClick = props.onClick, onMouseEnter = props.onMouseEnter;
|
|
80
|
+
// prettier-ignore
|
|
81
|
+
var appearanceConfig = (dropdownItemConfig.appearance && dropdownItemConfig.appearance[appearance]);
|
|
82
|
+
var classGenerator = useDeviceTargetClassGenerator.useDeviceTargetClassGenerator(props, appearanceConfig);
|
|
83
|
+
var alignClass = classGenerator.alignClass, alignDirectionClass = classGenerator.alignDirectionClass, directionClass = classGenerator.directionClass, fillActiveClass = classGenerator.fillActiveClass, fillActiveHoverClass = classGenerator.fillActiveHoverClass, fillClass = classGenerator.fillClass, fillDisabledClass = classGenerator.fillDisabledClass, fillHoverClass = classGenerator.fillHoverClass, justifyContentClass = classGenerator.justifyContentClass, shapeClass = classGenerator.shapeClass, sizeClass = classGenerator.sizeClass, typeClass = classGenerator.typeClass, widthClass = classGenerator.widthClass;
|
|
84
|
+
// @ts-expect-error
|
|
85
|
+
var dropdownItem = useStyles.useStyles(props).styles;
|
|
86
|
+
return (jsxRuntime.jsxs("div", { className: clsx('dropdown__item', isActive && 'dropdown__item_state_active', isHover && 'dropdown__item_state_hover', directionClass && "dropdown__item_direction_".concat(directionClass), className, fillClass && "fill_".concat(fillClass), fillHoverClass && "fill_hover_".concat(fillHoverClass), fillActiveClass && "fill_active_".concat(fillActiveClass), fillActiveHoverClass && "fill_active_hover_".concat(fillActiveHoverClass), fillDisabledClass && "fill_disabled_".concat(fillDisabledClass), sizeClass && "dropdown__item_size_".concat(sizeClass), shapeClass && "dropdown__item_shape_".concat(shapeClass), typeClass && "dropdown__item_type_".concat(typeClass), widthClass && "dropdown__item_width_".concat(widthClass), onClick && 'cursor_type_pointer', set && "dropdown__item_set_".concat(set), justifyContentClass && "dropdown__item_justify-content_".concat(justifyContentClass)), style: dropdownItem, onClick: onClick, onMouseEnter: onMouseEnter, children: [jsxRuntime.jsx("div", { className: "dropdown__item-wrapper", children: jsxRuntime.jsx(Link.Link, { className: clsx('dropdown__item-link', alignDirectionClass && "align_".concat(alignDirectionClass), alignClass && "align_".concat(alignClass)), fill: linkFill, href: link || href, rel: rel, target: target, underline: underline, children: jsxRuntime.jsxs(React.Fragment, { children: [before, children || (jsxRuntime.jsxs(React.Fragment, { children: [label && (jsxRuntime.jsx(Text.Text, { className: "dropdown__item-label", size: labelTextSize || (appearanceConfig === null || appearanceConfig === void 0 ? void 0 : appearanceConfig.labelTextSize), textAlign: labelTextAlign, textColor: labelTextColor || (appearanceConfig === null || appearanceConfig === void 0 ? void 0 : appearanceConfig.labelTextColor), textColorActive: isActive ? labelTextColorActive : undefined, textColorGradient: labelTextGradient, textColorHover: labelTextColorHover, textStyle: labelTextStyle, textWeight: labelTextWeight, textWrap: labelTextWrap, children: label })), desc && (jsxRuntime.jsx(Text.Text, { className: "dropdown__item-desc", size: descTextSize || (appearanceConfig === null || appearanceConfig === void 0 ? void 0 : appearanceConfig.descTextSize), textColor: descTextColor || (appearanceConfig === null || appearanceConfig === void 0 ? void 0 : appearanceConfig.descTextColor), textColorGradient: descTextGradient, textColorHover: descTextColorHover, textStyle: descTextStyle, textWeight: descTextWeight, textWrap: descTextWrap, children: desc }))] })), after] }) }) }), showDivider && (jsxRuntime.jsx(Divider.Divider, { width: "fill", fill: dividerFill || 'surfaceTertiary', direction: dividerDirection, size: dividerSize }))] }));
|
|
87
|
+
}
|
|
88
|
+
DropdownItem.defaultProps = {
|
|
89
|
+
width: 'fixed',
|
|
90
|
+
LinkComponent: 'a',
|
|
91
|
+
size: 'l',
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
exports.Dropdown = Dropdown;
|
|
95
|
+
exports.DropdownItem = DropdownItem;
|
|
96
|
+
exports.dropdownItemAppearance = dropdownItemAppearance;
|
|
97
|
+
exports.dropdownItemConfig = dropdownItemConfig;
|