@itcase/ui 1.3.31 → 1.3.33
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-BX4N91_C.js +250 -0
- package/dist/Badge-CGHosmYx.js +246 -0
- package/dist/Button-BtAUGGPc.js +287 -0
- package/dist/Button-HKkjJ38v.js +291 -0
- package/dist/Divider-BQcBkzt1.js +30 -0
- package/dist/Divider-ImOOytuN.js +34 -0
- package/dist/{DropdownItem-FNOztnTT.js → DropdownItem-BiiEhR49.js} +12 -16
- package/dist/{DropdownItem-Bq-oPnWX.js → DropdownItem-g5jWbyJy.js} +12 -16
- package/dist/Group-Chtnas-J.js +40 -0
- package/dist/Group-DiMnEfge.js +36 -0
- package/dist/{Icon-pUvizy3W.js → Icon-GVGrUu_Z.js} +6 -6
- package/dist/{Icon-BdHr6E6M.js → Icon-htF_V35Y.js} +7 -7
- package/dist/{Image-BbBG_UGI.js → Image-BEGwuGBM.js} +4 -4
- package/dist/{Image-D-QHhsrC.js → Image-DWfyapuD.js} +4 -4
- package/dist/{Input-BrV5_NoV.js → Input-COFdaiTe.js} +3 -3
- package/dist/{Input-ffioh1sj.js → Input-Dwvk-poq.js} +3 -3
- package/dist/Label-Dpeq55TV.js +233 -0
- package/dist/Label-XTFwl1aq.js +237 -0
- package/dist/{Link-CxWmYMyL.js → Link-B38Hn4G2.js} +5 -5
- package/dist/{Link-DN2LhPjD.js → Link-BhJ5BdyS.js} +6 -6
- package/dist/Loader-CBEbIRnd.js +69 -0
- package/dist/Loader-CsPvc-9g.js +65 -0
- package/dist/{MenuItem-CLDNk2l8.js → MenuItem-Cjlnmfwh.js} +6 -6
- package/dist/{MenuItem-amqx61Y0.js → MenuItem-PJkuGghn.js} +6 -6
- package/dist/{Overlay-B9nOIfLe.js → Overlay-BKh07Vb2.js} +4 -4
- package/dist/{Overlay-Yf9EEclM.js → Overlay-DiCjwUv4.js} +4 -4
- package/dist/{Text-Beslj4Ns.js → Text-C49zj3jO.js} +7 -7
- package/dist/{Text-JayJa3hj.js → Text-C6NSmetx.js} +7 -7
- package/dist/{Title-BfKF5WvZ.js → Title-BWWyRwLY.js} +4 -4
- package/dist/{Title-C7Qv9WfS.js → Title-Dck3eHNM.js} +4 -4
- package/dist/{Tooltip-AodzD-7D.js → Tooltip-BYgzNVYI.js} +18 -14
- package/dist/{Tooltip-BDEyAnd-.js → Tooltip-DpBQQoNo.js} +18 -14
- package/dist/cjs/components/Accordion.js +25 -29
- package/dist/cjs/components/Avatar.js +22 -20
- package/dist/cjs/components/Badge.js +12 -7
- package/dist/cjs/components/Breadcrumbs.js +16 -21
- package/dist/cjs/components/Button.js +13 -13
- package/dist/cjs/components/Card.js +9 -9
- package/dist/cjs/components/Cell.js +36 -17
- package/dist/cjs/components/Checkbox.js +13 -13
- package/dist/cjs/components/Checkmark.js +25 -23
- package/dist/cjs/components/Chips.js +22 -17
- package/dist/cjs/components/Choice.js +13 -13
- package/dist/cjs/components/Code.js +9 -19
- package/dist/cjs/components/CookiesWarning.js +15 -15
- package/dist/cjs/components/DadataHintField.js +4 -3
- package/dist/cjs/components/DatePicker.js +43 -19
- package/dist/cjs/components/Divider.js +7 -7
- package/dist/cjs/components/Dot.js +7 -7
- package/dist/cjs/components/Dropdown.js +9 -9
- package/dist/cjs/components/Flex.js +12 -11
- package/dist/cjs/components/Grid.js +12 -12
- package/dist/cjs/components/Group.js +6 -6
- package/dist/cjs/components/HTMLContent.js +7 -7
- package/dist/cjs/components/HeroTitle.js +9 -9
- package/dist/cjs/components/Icon.js +10 -10
- package/dist/cjs/components/Image.js +6 -6
- package/dist/cjs/components/Input.js +4 -3
- package/dist/cjs/components/InputMask.js +16 -15
- package/dist/cjs/components/InputPassword.js +12 -16
- package/dist/cjs/components/Label.js +10 -10
- package/dist/cjs/components/Link.js +6 -6
- package/dist/cjs/components/List.js +13 -12
- package/dist/cjs/components/Loader.js +8 -8
- package/dist/cjs/components/Logo.js +17 -15
- package/dist/cjs/components/Menu.js +11 -15
- package/dist/cjs/components/MenuItem.js +8 -8
- package/dist/cjs/components/Modal.js +11 -16
- package/dist/cjs/components/ModalSheetBottom.js +3 -3
- package/dist/cjs/components/Notification.js +8 -8
- package/dist/cjs/components/Overlay.js +6 -6
- package/dist/cjs/components/Pagination.js +14 -14
- package/dist/cjs/components/Panel.js +9 -9
- package/dist/cjs/components/Radio.js +16 -19
- package/dist/cjs/components/RangeSlider.js +7 -7
- package/dist/cjs/components/Response.js +15 -15
- package/dist/cjs/components/SVGContent.js +7 -7
- package/dist/cjs/components/ScrollOnDrag.js +8 -11
- package/dist/cjs/components/ScrollToView.js +9 -9
- package/dist/cjs/components/Search.js +16 -19
- package/dist/cjs/components/Segmented.js +8 -8
- package/dist/cjs/components/Select.js +34 -34
- package/dist/cjs/components/Swiper.js +11 -14
- package/dist/cjs/components/Switch.js +1 -1
- package/dist/cjs/components/Tab.js +76 -74
- package/dist/cjs/components/Text.js +6 -6
- package/dist/cjs/components/Textarea.js +8 -11
- package/dist/cjs/components/Tile.js +24 -20
- package/dist/cjs/components/Title.js +8 -8
- package/dist/cjs/components/Tooltip.js +9 -9
- package/dist/cjs/components/Video.js +4 -3
- package/dist/cjs/context/UIContext.js +48 -17
- package/dist/cjs/hooks/useDevicePropsGenerator/useDevicePropsGenerator.js +121 -0
- package/dist/cjs/hooks/useDevicePropsGenerator.js +17 -0
- package/dist/cjs/hooks/useDeviceTargetClass.js +8 -3
- package/dist/cjs/hooks/useMediaQueries/useMediaQueries.js +129 -0
- package/dist/cjs/hooks/useMediaQueries.js +4 -122
- package/dist/cjs/hooks/{styleAttributes.js → useStyles/styleAttributes.js} +8 -1
- package/dist/cjs/hooks/useStyles/useStyles.js +190 -0
- package/dist/cjs/hooks/useStyles.js +10 -174
- package/dist/components/Accordion.js +26 -30
- package/dist/components/Avatar.js +22 -20
- package/dist/components/Badge.js +13 -8
- package/dist/components/Breadcrumbs.js +17 -22
- package/dist/components/Button.js +13 -13
- package/dist/components/Card.js +10 -10
- package/dist/components/Cell.js +37 -18
- package/dist/components/Checkbox.js +14 -14
- package/dist/components/Checkmark.js +25 -23
- package/dist/components/Chips.js +22 -17
- package/dist/components/Choice.js +14 -14
- package/dist/components/Code.js +10 -20
- package/dist/components/CookiesWarning.js +16 -16
- package/dist/components/DadataHintField.js +5 -4
- package/dist/components/DatePicker.js +44 -20
- package/dist/components/Divider.js +7 -7
- package/dist/components/Dot.js +8 -8
- package/dist/components/Dropdown.js +10 -10
- package/dist/components/Flex.js +13 -12
- package/dist/components/Grid.js +13 -13
- package/dist/components/Group.js +7 -7
- package/dist/components/HTMLContent.js +8 -8
- package/dist/components/HeroTitle.js +9 -9
- package/dist/components/Icon.js +11 -11
- package/dist/components/Image.js +7 -7
- package/dist/components/Input.js +5 -4
- package/dist/components/InputMask.js +17 -16
- package/dist/components/InputPassword.js +13 -17
- package/dist/components/Label.js +10 -10
- package/dist/components/Link.js +7 -7
- package/dist/components/List.js +14 -13
- package/dist/components/Loader.js +8 -8
- package/dist/components/Logo.js +17 -15
- package/dist/components/Menu.js +12 -16
- package/dist/components/MenuItem.js +9 -9
- package/dist/components/Modal.js +12 -17
- package/dist/components/ModalSheetBottom.js +4 -4
- package/dist/components/Notification.js +9 -9
- package/dist/components/Overlay.js +7 -7
- package/dist/components/Pagination.js +15 -15
- package/dist/components/Panel.js +10 -10
- package/dist/components/Radio.js +17 -20
- package/dist/components/RangeSlider.js +8 -8
- package/dist/components/Response.js +16 -16
- package/dist/components/SVGContent.js +8 -8
- package/dist/components/ScrollOnDrag.js +9 -12
- package/dist/components/ScrollToView.js +10 -10
- package/dist/components/Search.js +17 -20
- package/dist/components/Segmented.js +9 -9
- package/dist/components/Select.js +35 -35
- package/dist/components/Swiper.js +12 -15
- package/dist/components/Switch.js +1 -1
- package/dist/components/Tab.js +76 -74
- package/dist/components/Text.js +7 -7
- package/dist/components/Textarea.js +9 -12
- package/dist/components/Tile.js +24 -20
- package/dist/components/Title.js +8 -8
- package/dist/components/Tooltip.js +9 -9
- package/dist/components/Video.js +4 -3
- package/dist/context/Notifications.js +1 -1
- package/dist/context/UIContext.js +50 -18
- package/dist/css/components/Accordion/Accordion.css +5 -8
- package/dist/css/components/Accordion/Accordion.tokens.css +2 -1
- package/dist/css/components/Avatar/Avatar.css +12 -8
- package/dist/css/components/Avatar/Avatar.tokens.css +2 -0
- package/dist/css/components/Badge/Badge.css +48 -26
- package/dist/css/components/Badge/Badge.tokens.css +48 -18
- package/dist/css/components/Button/Button.css +67 -303
- package/dist/css/components/Button/Button.tokens.css +37 -115
- package/dist/css/components/Cell/Cell.css +2 -2
- package/dist/css/components/Checkbox/Checkbox.css +10 -4
- package/dist/css/components/Checkbox/Checkbox.tokens.css +1 -1
- package/dist/css/components/Checkmark/Checkmark.css +11 -10
- package/dist/css/components/Checkmark/Checkmark.tokens.css +20 -14
- package/dist/css/components/Chips/Chips.css +47 -43
- package/dist/css/components/Chips/Chips.tokens.css +35 -7
- package/dist/css/components/Choice/Choice.css +13 -2
- package/dist/css/components/Choice/Choice.tokens.css +4 -3
- package/dist/css/components/DadataHintField/DadataHintField.css +0 -8
- package/dist/css/components/DadataHintField/DadataHintField.tokens.css +7 -2
- package/dist/css/components/DatePicker/DatePicker.css +126 -42
- package/dist/css/components/DatePicker/DatePicker.tokens.css +20 -7
- package/dist/css/components/Divider/Divider.css +17 -16
- package/dist/css/components/Divider/Divider.tokens.css +13 -0
- package/dist/css/components/Dot/Dot.css +10 -0
- package/dist/css/components/Drawer/Drawer.css +4 -0
- package/dist/css/components/Drawer/Drawer.tokens.css +4 -0
- package/dist/css/components/Dropdown/Dropdown.css +37 -0
- package/dist/css/components/Dropdown/Dropdown.tokens.css +6 -0
- package/dist/css/components/Flex/Flex.css +0 -1
- package/dist/css/components/Grid/Grid.css +1 -5
- package/dist/css/components/HeroTitle/HeroTitle.css +2 -2
- package/dist/css/components/Icon/Icon.css +14 -10
- package/dist/css/components/Icon/Icon.tokens.css +3 -1
- package/dist/css/components/Image/Image.css +3 -3
- package/dist/css/components/Input/Input.css +29 -0
- package/dist/css/components/InputPassword/InputPassword.css +23 -0
- package/dist/css/components/Label/Label.css +21 -2
- package/dist/css/components/Label/Label.tokens.css +3 -3
- package/dist/css/components/Loader/Loader.css +12 -5
- package/dist/css/components/Logo/Logo.css +3 -19
- package/dist/css/components/Logo/Logo.tokens.css +17 -2
- package/dist/css/components/Menu/Menu.css +9 -1
- package/dist/css/components/MenuItem/MenuItem.css +0 -10
- package/dist/css/components/MenuItem/MenuItem.tokens.css +12 -4
- package/dist/css/components/Modal/Modal.css +3 -0
- package/dist/css/components/Modal/Modal.tokens.css +3 -0
- package/dist/css/components/Pagination/Pagination.css +25 -0
- package/dist/css/components/Radio/Radio.css +0 -3
- package/dist/css/components/Radio/Radio.tokens.css +2 -1
- package/dist/css/components/ScrollToView/ScrollToView.css +4 -4
- package/dist/css/components/Search/Search.css +16 -0
- package/dist/css/components/Search/Search.tokens.css +6 -3
- package/dist/css/components/Segmented/Segmented.css +6 -0
- package/dist/css/components/Segmented/Segmented.tokens.css +2 -0
- package/dist/css/components/Select/Select.css +35 -8
- package/dist/css/components/Select/Select.tokens.css +12 -17
- package/dist/css/components/Select/css/__control/select__control_fill.css +4 -2
- package/dist/css/components/Select/css/__menu/select__menu-list-item_size.css +1 -1
- package/dist/css/components/Swiper/Swiper.css +2 -3
- package/dist/css/components/Switch/Switch.css +0 -7
- package/dist/css/components/Tab/Tab.css +28 -0
- package/dist/css/components/Text/Text.css +2 -2
- package/dist/css/components/Textarea/Textarea.css +7 -0
- package/dist/css/components/Title/Title.css +2 -2
- package/dist/css/components/Tooltip/Tooltip.css +15 -21
- package/dist/css/components/Tooltip/Tooltip.tokens.css +13 -0
- package/dist/css/styles/fill/fill.css +14 -9
- package/dist/css/styles/fill/fill_active.css +6 -3
- package/dist/css/styles/fill/fill_active_hover.css +8 -6
- package/dist/css/styles/fill/fill_disabled.css +6 -3
- package/dist/css/styles/fill/fill_hover.css +6 -3
- package/dist/css/styles/shape-strength/shape-strength.css +22 -0
- package/dist/css/styles/svg-color/svg_fill.css +27 -17
- package/dist/css/styles/svg-color/svg_fill_hover.css +12 -10
- package/dist/css/styles/svg-color/svg_path_fill.css +13 -9
- package/dist/hooks/useDevicePropsGenerator/useDevicePropsGenerator.js +119 -0
- package/dist/hooks/useDevicePropsGenerator.js +11 -0
- package/dist/hooks/useDeviceTargetClass.js +8 -3
- package/dist/hooks/useMediaQueries/useMediaQueries.js +127 -0
- package/dist/hooks/useMediaQueries.js +3 -125
- package/dist/hooks/{styleAttributes.js → useStyles/styleAttributes.js} +8 -1
- package/dist/hooks/useStyles/useStyles.js +188 -0
- package/dist/hooks/useStyles.js +9 -177
- package/dist/stories/AlignContent.mdx +1 -1
- package/dist/stories/AlignItems.mdx +1 -1
- package/dist/stories/AlignSelf.mdx +1 -1
- package/dist/stories/Appearance.mdx +1 -1
- package/dist/stories/Avatar.mdx +1 -1
- package/dist/stories/Checkbox.mdx +1 -1
- package/dist/stories/Checkmark.mdx +7 -3
- package/dist/stories/Chips.mdx +1 -1
- package/dist/stories/Choice.mdx +1 -1
- package/dist/stories/Code.mdx +1 -1
- package/dist/stories/Columns.mdx +1 -1
- package/dist/stories/Components.mdx +197 -0
- package/dist/stories/DatePicker.mdx +1 -1
- package/dist/stories/Dev.mdx +1 -1
- package/dist/stories/DevMode.mdx +1 -1
- package/dist/stories/Direction.mdx +1 -1
- package/dist/stories/Divider.mdx +1 -1
- package/dist/stories/Dot.mdx +1 -1
- package/dist/stories/Drawer.mdx +1 -1
- package/dist/stories/Dropdown.mdx +2 -2
- package/dist/stories/DropdownItem.mdx +1 -1
- package/dist/stories/Group.mdx +1 -1
- package/dist/stories/Grow.mdx +1 -1
- package/dist/stories/HeroTitle.mdx +1 -1
- package/dist/stories/Icon.mdx +1 -1
- package/dist/stories/Image.mdx +1 -1
- package/dist/stories/Input.mdx +1 -1
- package/dist/stories/InputPassword.mdx +1 -1
- package/dist/stories/JustifyContent.mdx +1 -1
- package/dist/stories/Label.mdx +1 -1
- package/dist/stories/Loader.mdx +1 -1
- package/dist/stories/Logo.mdx +1 -1
- package/dist/stories/MenuItem.mdx +1 -1
- package/dist/stories/Message.mdx +1 -1
- package/dist/stories/Notification.mdx +1 -1
- package/dist/stories/Order.mdx +1 -1
- package/dist/stories/Overview.mdx +1 -1
- package/dist/stories/Pagination.mdx +1 -1
- package/dist/stories/Playground.mdx +1 -1
- package/dist/stories/Radio.mdx +1 -1
- package/dist/stories/Response.mdx +1 -1
- package/dist/stories/SearchInput.mdx +1 -1
- package/dist/stories/Segmented.mdx +1 -1
- package/dist/stories/Size.mdx +1 -1
- package/dist/stories/Skeleton.mdx +1 -1
- package/dist/stories/State.mdx +1 -1
- package/dist/stories/Switch.mdx +1 -1
- package/dist/stories/Text.mdx +1 -1
- package/dist/stories/Textarea.mdx +1 -1
- package/dist/stories/Tile.mdx +1 -1
- package/dist/stories/Title.mdx +1 -1
- package/dist/stories/Tooltip.mdx +1 -1
- package/dist/stories/WithTooltip.mdx +1 -1
- package/dist/stories/Wrap.mdx +1 -1
- package/dist/{tslib.es6-Bwu1Cn-t.js → tslib.es6-5FtW-kfi.js} +1 -1
- package/dist/types/appearance/defaultAppearance.d.ts +33 -0
- package/dist/types/appearance/index.d.ts +3 -0
- package/dist/types/appearance/styleAppearance.d.ts +14 -0
- package/dist/types/components/Accordion/Accordion.interface.d.ts +1 -1
- package/dist/types/components/Avatar/Avatar.interface.d.ts +1 -1
- package/dist/types/components/Badge/Badge.d.ts +0 -6
- package/dist/types/components/Badge/Badge.interface.d.ts +1 -1
- package/dist/types/components/Badge/appearance/badgeAccent.d.ts +39 -0
- package/dist/types/components/Badge/appearance/badgeDanger.d.ts +11 -0
- package/dist/types/components/Badge/appearance/badgeDisabled.d.ts +10 -0
- package/dist/types/components/Badge/appearance/badgeError.d.ts +12 -0
- package/dist/types/components/Badge/appearance/badgeInfo.d.ts +18 -0
- package/dist/types/components/Badge/appearance/badgePrimary.d.ts +11 -0
- package/dist/types/components/Badge/appearance/badgeSecondary.d.ts +11 -0
- package/dist/types/components/Badge/appearance/badgeSize.d.ts +32 -0
- package/dist/types/components/Badge/appearance/badgeStyle.d.ts +16 -0
- package/dist/types/components/Badge/appearance/badgeSuccess.d.ts +11 -0
- package/dist/types/components/Badge/appearance/badgeSurface.d.ts +29 -0
- package/dist/types/components/Badge/appearance/badgeWarning.d.ts +11 -0
- package/dist/types/components/Breadcrumbs/Breadcrumbs.d.ts +0 -5
- package/dist/types/components/Breadcrumbs/Breadcrumbs.interface.d.ts +1 -1
- package/dist/types/components/Button/Button.interface.d.ts +1 -1
- package/dist/types/components/Button/appearance/buttonAccent.d.ts +50 -0
- package/dist/types/components/Button/appearance/buttonDanger.d.ts +11 -0
- package/dist/types/components/Button/appearance/buttonError.d.ts +11 -0
- package/dist/types/components/Button/appearance/buttonInfo.d.ts +21 -0
- package/dist/types/components/Button/appearance/buttonPrimary.d.ts +8 -0
- package/dist/types/components/Button/appearance/buttonSecondary.d.ts +8 -0
- package/dist/types/components/Button/appearance/buttonSize.d.ts +59 -0
- package/dist/types/components/Button/appearance/buttonStyle.d.ts +16 -0
- package/dist/types/components/Button/appearance/buttonSuccess.d.ts +11 -0
- package/dist/types/components/Button/appearance/buttonSurface.d.ts +25 -0
- package/dist/types/components/Button/appearance/buttonWarning.d.ts +11 -0
- package/dist/types/components/Button/stories/args.d.ts +49 -49
- package/dist/types/components/Card/Card.interface.d.ts +1 -1
- package/dist/types/components/Cell/Cell.interface.d.ts +1 -1
- package/dist/types/components/Checkbox/Checkbox.interface.d.ts +1 -1
- package/dist/types/components/Checkmark/Checkmark.interface.d.ts +1 -1
- package/dist/types/components/Chips/Chips.interface.d.ts +1 -1
- package/dist/types/components/Chips/stories/args.d.ts +2 -2
- package/dist/types/components/Choice/Choice.interface.d.ts +1 -1
- package/dist/types/components/Code/Code.d.ts +0 -15
- package/dist/types/components/Code/Code.interface.d.ts +1 -1
- package/dist/types/components/DadataHintField/DadataHintField.interface.d.ts +1 -1
- package/dist/types/components/Divider/Divider.d.ts +0 -5
- package/dist/types/components/Divider/Divider.interface.d.ts +1 -1
- package/dist/types/components/Dot/Dot.interface.d.ts +1 -1
- package/dist/types/components/Drawer/Drawer.interface.d.ts +1 -1
- package/dist/types/components/Dropdown/Dropdown.interface.d.ts +1 -1
- package/dist/types/components/Dropdown/DropdownItem.d.ts +0 -7
- package/dist/types/components/Flex/Flex.interface.d.ts +1 -1
- package/dist/types/components/Flex/stories/args.d.ts +1 -1
- package/dist/types/components/Grid/Grid.interface.d.ts +1 -1
- package/dist/types/components/Grid/stories/args.d.ts +2 -2
- package/dist/types/components/Group/Group.interface.d.ts +1 -1
- package/dist/types/components/Group/stories/args.d.ts +2 -2
- package/dist/types/components/HTMLContent/HTMLContent.interface.d.ts +1 -1
- package/dist/types/components/HeroTitle/HeroTitle.interface.d.ts +1 -1
- package/dist/types/components/Icon/Icon.interface.d.ts +1 -1
- package/dist/types/components/Image/Image.interface.d.ts +1 -1
- package/dist/types/components/Input/Input.interface.d.ts +1 -1
- package/dist/types/components/InputMask/Input.interface.d.ts +1 -1
- package/dist/types/components/InputPassword/InputPassword.d.ts +0 -6
- package/dist/types/components/InputPassword/InputPassword.interface.d.ts +1 -1
- package/dist/types/components/Label/Label.interface.d.ts +1 -1
- package/dist/types/components/Label/appearance/labelAccent.d.ts +13 -0
- package/dist/types/components/Label/appearance/labelDanger.d.ts +11 -0
- package/dist/types/components/Label/appearance/labelError.d.ts +11 -0
- package/dist/types/components/Label/appearance/labelGradient.d.ts +11 -0
- package/dist/types/components/Label/appearance/labelInfo.d.ts +21 -0
- package/dist/types/components/Label/appearance/labelPrimary.d.ts +8 -0
- package/dist/types/components/Label/appearance/labelSecondary.d.ts +8 -0
- package/dist/types/components/Label/appearance/labelSize.d.ts +59 -0
- package/dist/types/components/Label/appearance/labelStyle.d.ts +16 -0
- package/dist/types/components/Label/appearance/labelSuccess.d.ts +11 -0
- package/dist/types/components/Label/appearance/labelSurface.d.ts +24 -0
- package/dist/types/components/Label/appearance/labelWarning.d.ts +11 -0
- package/dist/types/components/Link/Link.interface.d.ts +1 -1
- package/dist/types/components/List/List.interface.d.ts +1 -1
- package/dist/types/components/Loader/Loader.interface.d.ts +1 -1
- package/dist/types/components/Loader/appearance/loaderAccent.d.ts +7 -0
- package/dist/types/components/Loader/appearance/loaderPrimary.d.ts +7 -0
- package/dist/types/components/Loader/appearance/loaderSecondary.d.ts +7 -0
- package/dist/types/components/Loader/appearance/loaderSurface.d.ts +15 -0
- package/dist/types/components/Logo/Logo.interface.d.ts +1 -1
- package/dist/types/components/Menu/Menu.d.ts +0 -5
- package/dist/types/components/Menu/Menu.interface.d.ts +1 -1
- package/dist/types/components/MenuItem/MenuItem.interface.d.ts +1 -1
- package/dist/types/components/Modal/Modal.interface.d.ts +1 -1
- package/dist/types/components/Notification/Notification.interface.d.ts +1 -1
- package/dist/types/components/Overlay/Overlay.interface.d.ts +1 -1
- package/dist/types/components/Pagination/Pagination.interface.d.ts +1 -1
- package/dist/types/components/Panel/Panel.interface.d.ts +1 -1
- package/dist/types/components/Radio/Radio.d.ts +0 -5
- package/dist/types/components/Radio/Radio.interface.d.ts +1 -1
- package/dist/types/components/RangeSlider/RangeSlider.interface.d.ts +1 -1
- package/dist/types/components/Response/Response.interface.d.ts +1 -1
- package/dist/types/components/Response/stories/args.d.ts +4 -4
- package/dist/types/components/SVGContent/SVGContent.interface.d.ts +1 -1
- package/dist/types/components/ScrollOnDrag/ScrollOnDrag.d.ts +0 -5
- package/dist/types/components/ScrollOnDrag/ScrollOnDrag.interface.d.ts +1 -1
- package/dist/types/components/Scrollbar/Scrollbar.interface.d.ts +1 -1
- package/dist/types/components/Search/Search.interface.d.ts +1 -1
- package/dist/types/components/Segmented/Segmented.interface.d.ts +1 -1
- package/dist/types/components/Swiper/Swiper.d.ts +0 -5
- package/dist/types/components/Swiper/Swiper.interface.d.ts +1 -1
- package/dist/types/components/Switch/Switch.interface.d.ts +1 -1
- package/dist/types/components/Tab/Tab.interface.d.ts +1 -1
- package/dist/types/components/Tab/stories/args.d.ts +3 -3
- package/dist/types/components/Text/Text.interface.d.ts +1 -1
- package/dist/types/components/Textarea/Textarea.d.ts +0 -5
- package/dist/types/components/Textarea/Textarea.interface.d.ts +1 -1
- package/dist/types/components/Tile/Tile.d.ts +0 -5
- package/dist/types/components/Tile/Tile.interface.d.ts +1 -1
- package/dist/types/components/Title/Title.interface.d.ts +1 -1
- package/dist/types/components/Tooltip/Tooltip.interface.d.ts +1 -1
- package/dist/types/components/Video/Video.interface.d.ts +1 -1
- package/dist/types/context/UIContext.d.ts +8 -12
- package/dist/types/hooks/useDevicePropsGenerator/index.d.ts +1 -0
- package/dist/types/hooks/useDevicePropsGenerator/useDevicePropsGenerator.d.ts +3 -0
- package/dist/types/hooks/{useDeviceTargetClassGenerator.interface.d.ts → useDevicePropsGenerator/useDevicePropsGenerator.interface.d.ts} +2 -2
- package/dist/types/hooks/useMediaQueries/index.d.ts +1 -0
- package/dist/types/hooks/useStyles/index.d.ts +1 -0
- package/dist/types/hooks/useStyles/styleAttributes.d.ts +4 -0
- package/dist/types/types/componentProps/appearanceKeys.d.ts +1 -1
- package/dist/types/types/componentProps/borderColor.d.ts +1 -1
- package/dist/types/types/componentProps/fill.d.ts +1 -1
- package/package.json +15 -12
- package/dist/Badge-5gtVywXB.js +0 -111
- package/dist/Badge-DhOJoJgc.js +0 -115
- package/dist/Button-BSnodY9v.js +0 -103
- package/dist/Button-Kcw2DdY0.js +0 -99
- package/dist/Divider-DBvDCUqP.js +0 -30
- package/dist/Divider-Goh6mpPK.js +0 -34
- package/dist/Group-BY8OkVsS.js +0 -38
- package/dist/Group-c3ZkPu8e.js +0 -34
- package/dist/Label-CBwPiUuf.js +0 -97
- package/dist/Label-DgyUhGTQ.js +0 -93
- package/dist/Loader-Dn036JwE.js +0 -56
- package/dist/Loader-K_DJmah6.js +0 -52
- package/dist/cjs/hooks/useDeviceTargetClassGenerator.interface.js +0 -3
- package/dist/cjs/hooks/useDeviceTargetClassGenerator.js +0 -98
- package/dist/css/styles/column-gap/column-gap.css +0 -7
- package/dist/css/styles/gap/gap.css +0 -7
- package/dist/css/styles/row-gap/row-gap.css +0 -7
- package/dist/hooks/useDeviceTargetClassGenerator.interface.js +0 -1
- package/dist/hooks/useDeviceTargetClassGenerator.js +0 -96
- package/dist/stories/Badge.mdx +0 -20
- package/dist/stories/Button.mdx +0 -47
- package/dist/types/components/Badge/stories/args.d.ts +0 -69
- package/dist/types/hooks/styleAttributes.d.ts +0 -2
- package/dist/types/hooks/useDeviceTargetClassGenerator.d.ts +0 -3
- /package/dist/cjs/{hooks.js → hooks/useDevicePropsGenerator/useDevicePropsGenerator.interface.js} +0 -0
- /package/dist/cjs/hooks/{styleAttributes.interface.js → useStyles/styleAttributes.interface.js} +0 -0
- /package/dist/{hooks.js → hooks/useDevicePropsGenerator/useDevicePropsGenerator.interface.js} +0 -0
- /package/dist/hooks/{styleAttributes.interface.js → useStyles/styleAttributes.interface.js} +0 -0
- /package/dist/types/hooks/{useMediaQueries.d.ts → useMediaQueries/useMediaQueries.d.ts} +0 -0
- /package/dist/types/hooks/{styleAttributes.interface.d.ts → useStyles/styleAttributes.interface.d.ts} +0 -0
- /package/dist/types/hooks/{useStyles.d.ts → useStyles/useStyles.d.ts} +0 -0
|
@@ -0,0 +1,119 @@
|
|
|
1
|
+
import { b as __spreadArray } from '../../tslib.es6-5FtW-kfi.js';
|
|
2
|
+
import { useMemo } from 'react';
|
|
3
|
+
import camelCase from 'lodash/camelCase';
|
|
4
|
+
import castArray from 'lodash/castArray';
|
|
5
|
+
import upperFirst from 'lodash/upperFirst';
|
|
6
|
+
import { useUserDeviceContext } from '../../context/UIContext.js';
|
|
7
|
+
import 'react/jsx-runtime';
|
|
8
|
+
import '../useMediaQueries/useMediaQueries.js';
|
|
9
|
+
import 'react-responsive';
|
|
10
|
+
import '../../utils/setViewportProperty.js';
|
|
11
|
+
|
|
12
|
+
function useDevicePropsGenerator(componentProps, appearanceConfig) {
|
|
13
|
+
/** Get or generate(classname) a prop depending on the user's device.
|
|
14
|
+
* Props:
|
|
15
|
+
* - "componentProps" - original "props" from component
|
|
16
|
+
* - "appearanceConfig" - special appearance dictionary with styles presets
|
|
17
|
+
*
|
|
18
|
+
* Usage for create class value:
|
|
19
|
+
* const appearanceConfig = (
|
|
20
|
+
* appearance && componentConfig.appearance && componentConfig.appearance[appearance]
|
|
21
|
+
* )
|
|
22
|
+
* const propsGenerator = useDevicePropsGenerator(props, appearanceConfig)
|
|
23
|
+
* ---------
|
|
24
|
+
* const fillClass = propsGenerator.getClassName('fill')
|
|
25
|
+
* "fillClass" - is "surface-secondary"
|
|
26
|
+
* ---------
|
|
27
|
+
* const fillClass = propsGenerator.getClassName('fill', { prefix: 'fill_' })
|
|
28
|
+
* "fillClass" - is "fill_surface-secondary"
|
|
29
|
+
* ---------
|
|
30
|
+
* const fillClass = propsGenerator.fillClass
|
|
31
|
+
* "fillClass" - is "surface-secondary"
|
|
32
|
+
* ---------
|
|
33
|
+
* const { fillClass } = propsGenerator
|
|
34
|
+
* "fillClass" - is "surface-secondary"
|
|
35
|
+
*
|
|
36
|
+
* Usage for props value for device:
|
|
37
|
+
* const { titleTextSize } = propsGenerator / const titleTextSize = propsGenerator.titleTextSize *
|
|
38
|
+
* "titleTextSize" - contain some value from props:
|
|
39
|
+
* - titleTextSize
|
|
40
|
+
* - titleTextSizeMobile
|
|
41
|
+
* - titleTextSizeTablet
|
|
42
|
+
* - titleTextSizeDesktop
|
|
43
|
+
* ---------
|
|
44
|
+
**/
|
|
45
|
+
var deviceCurrentMainType = useUserDeviceContext().deviceCurrentMainType;
|
|
46
|
+
var devicePropsGenerator = useMemo(function () {
|
|
47
|
+
var propsGenerator = {
|
|
48
|
+
getProp: function (propsKey) {
|
|
49
|
+
var propsForDeviceKey = "".concat(propsKey).concat(upperFirst(deviceCurrentMainType));
|
|
50
|
+
var valueForDevice = componentProps[propsForDeviceKey];
|
|
51
|
+
var valueDefault = componentProps[propsKey];
|
|
52
|
+
var appearanceForDevice = appearanceConfig === null || appearanceConfig === void 0 ? void 0 : appearanceConfig[propsForDeviceKey];
|
|
53
|
+
var appearanceDefault = appearanceConfig === null || appearanceConfig === void 0 ? void 0 : appearanceConfig[propsKey];
|
|
54
|
+
// prettier-ignore
|
|
55
|
+
var targetPropsValue = (
|
|
56
|
+
// Value for device from props is first priority
|
|
57
|
+
valueForDevice ||
|
|
58
|
+
// Value without device from props is second priority
|
|
59
|
+
valueDefault ||
|
|
60
|
+
// Value for device from appearance config is third priority
|
|
61
|
+
appearanceForDevice ||
|
|
62
|
+
// Value without device from appearance config is last priority
|
|
63
|
+
appearanceDefault);
|
|
64
|
+
return targetPropsValue;
|
|
65
|
+
},
|
|
66
|
+
// eslint-disable-next-line perfectionist/sort-objects
|
|
67
|
+
getClassName: function (propsKey, params) {
|
|
68
|
+
if (params === void 0) { params = {}; }
|
|
69
|
+
var _a = params.prefix, prefix = _a === void 0 ? '' : _a, _b = params.replace, replace = _b === void 0 ? [/([A-Z])/g, '-$1'] : _b;
|
|
70
|
+
// prettier-ignore
|
|
71
|
+
var targetClassValue = this.getProp(propsKey);
|
|
72
|
+
if (targetClassValue) {
|
|
73
|
+
var cleanClassValue = String(targetClassValue);
|
|
74
|
+
if (!cleanClassValue.includes('.')) {
|
|
75
|
+
cleanClassValue = camelCase(cleanClassValue);
|
|
76
|
+
}
|
|
77
|
+
if (replace) {
|
|
78
|
+
var replaceList = castArray(replace);
|
|
79
|
+
cleanClassValue = cleanClassValue.replace(replaceList[0], replaceList[1] || '');
|
|
80
|
+
}
|
|
81
|
+
return "".concat(prefix).concat(cleanClassValue).toLowerCase();
|
|
82
|
+
}
|
|
83
|
+
// If target key not exists in props and appearance config - return empty class
|
|
84
|
+
return '';
|
|
85
|
+
},
|
|
86
|
+
};
|
|
87
|
+
var generatorProxyHandler = {
|
|
88
|
+
get: function (target, prop, receiver) {
|
|
89
|
+
var args = [];
|
|
90
|
+
for (var _i = 3; _i < arguments.length; _i++) {
|
|
91
|
+
args[_i - 3] = arguments[_i];
|
|
92
|
+
}
|
|
93
|
+
if (typeof prop === 'string') {
|
|
94
|
+
// If object does not have the property being retrieved
|
|
95
|
+
if (!Reflect.has(target, prop)) {
|
|
96
|
+
// And property ended on "Class" keyword
|
|
97
|
+
if (prop.endsWith('Class')) {
|
|
98
|
+
var shortProp = prop.substring(0, prop.lastIndexOf('Class'));
|
|
99
|
+
// Return prop from props for device as formatted class name
|
|
100
|
+
return target.getClassName(shortProp);
|
|
101
|
+
}
|
|
102
|
+
// Return prop from props for device
|
|
103
|
+
return target.getProp(prop);
|
|
104
|
+
}
|
|
105
|
+
// Return object property. Original "get".
|
|
106
|
+
return Reflect.get.apply(Reflect, __spreadArray([target, prop, receiver], args, false));
|
|
107
|
+
}
|
|
108
|
+
// In some cases, like in Chrome browser, sometime "prop" is not string.
|
|
109
|
+
// We return this object as is.
|
|
110
|
+
return prop;
|
|
111
|
+
},
|
|
112
|
+
};
|
|
113
|
+
return new Proxy(propsGenerator, generatorProxyHandler);
|
|
114
|
+
// TODO: componentProps(react) and appearanceConfig(not memoized) is always new. maybe better check Object.values?
|
|
115
|
+
}, [componentProps, appearanceConfig, deviceCurrentMainType]);
|
|
116
|
+
return devicePropsGenerator;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
export { useDevicePropsGenerator };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export { useDevicePropsGenerator } from './useDevicePropsGenerator/useDevicePropsGenerator.js';
|
|
2
|
+
import '../tslib.es6-5FtW-kfi.js';
|
|
3
|
+
import 'react';
|
|
4
|
+
import 'lodash/camelCase';
|
|
5
|
+
import 'lodash/castArray';
|
|
6
|
+
import 'lodash/upperFirst';
|
|
7
|
+
import '../context/UIContext.js';
|
|
8
|
+
import 'react/jsx-runtime';
|
|
9
|
+
import './useMediaQueries/useMediaQueries.js';
|
|
10
|
+
import 'react-responsive';
|
|
11
|
+
import '../utils/setViewportProperty.js';
|
|
@@ -2,11 +2,16 @@ import { useMemo } from 'react';
|
|
|
2
2
|
import camelCase from 'lodash/camelCase';
|
|
3
3
|
import castArray from 'lodash/castArray';
|
|
4
4
|
import { useUserDeviceContext } from '../context/UIContext.js';
|
|
5
|
+
import '../tslib.es6-5FtW-kfi.js';
|
|
5
6
|
import 'react/jsx-runtime';
|
|
6
|
-
import './useMediaQueries.js';
|
|
7
|
+
import './useMediaQueries/useMediaQueries.js';
|
|
7
8
|
import 'react-responsive';
|
|
8
9
|
import '../utils/setViewportProperty.js';
|
|
9
10
|
|
|
11
|
+
/** TODO:
|
|
12
|
+
* Hook is still used in "itcase-forms".
|
|
13
|
+
* Need replace with "useDevicePropsGenerator" and delete this.
|
|
14
|
+
*/
|
|
10
15
|
function useDeviceTargetClass(componentProps, hookProps) {
|
|
11
16
|
/** Generate a class depending on the user's device.
|
|
12
17
|
*
|
|
@@ -33,8 +38,8 @@ function useDeviceTargetClass(componentProps, hookProps) {
|
|
|
33
38
|
} = useUserDeviceContext();
|
|
34
39
|
const targetClassValue = useMemo(() => {
|
|
35
40
|
// prettier-ignore
|
|
36
|
-
const
|
|
37
|
-
const valueForDevice = componentProps[`${propsKey}${
|
|
41
|
+
const deviceCurrentMainType = isMobile && 'Mobile' || isTablet && 'Tablet' || isDesktop && 'Desktop' || '';
|
|
42
|
+
const valueForDevice = componentProps[`${propsKey}${deviceCurrentMainType}`];
|
|
38
43
|
const valueDefault = componentProps[propsKey];
|
|
39
44
|
return valueForDevice || valueDefault;
|
|
40
45
|
}, [isMobile, isTablet, isDesktop, componentProps[propsKey], componentProps[`${propsKey}Mobile`], componentProps[`${propsKey}Tablet`], componentProps[`${propsKey}Desktop`]]);
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import { useMemo } from 'react';
|
|
2
|
+
import { useMediaQuery } from 'react-responsive';
|
|
3
|
+
|
|
4
|
+
var tablet = "48em";
|
|
5
|
+
var mediaQueries = {
|
|
6
|
+
"mobile-tiny": "15em",
|
|
7
|
+
"mobile-super-extra-large": "40em",
|
|
8
|
+
tablet: tablet,
|
|
9
|
+
"desktop-small": "60em",
|
|
10
|
+
"desktop-huge": "160em"
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
const isSSR = typeof window === 'undefined';
|
|
14
|
+
function useMediaQueries(userDevice = {}) {
|
|
15
|
+
// const isWarning = useMediaQuery({ maxWidth: mediaQueries['mobile-tiny'] })
|
|
16
|
+
|
|
17
|
+
// prettier-ignore
|
|
18
|
+
const isMobile = useMediaQuery({
|
|
19
|
+
minWidth: mediaQueries['mobile-tiny'],
|
|
20
|
+
maxWidth: mediaQueries['tablet']
|
|
21
|
+
}) || isSSR && Boolean(userDevice.isMobile);
|
|
22
|
+
|
|
23
|
+
// const isMobileTiny = useMediaQuery({
|
|
24
|
+
// minWidth: mediaQueries['mobile-tiny'],
|
|
25
|
+
// maxWidth: mediaQueries['mobile-small'],
|
|
26
|
+
// })
|
|
27
|
+
// const isMobileSmall = useMediaQuery({
|
|
28
|
+
// minWidth: mediaQueries['mobile-small'],
|
|
29
|
+
// maxWidth: mediaQueries['mobile-medium'],
|
|
30
|
+
// })
|
|
31
|
+
// const isMobileMedium = useMediaQuery({
|
|
32
|
+
// minWidth: mediaQueries['mobile-medium'],
|
|
33
|
+
// maxWidth: mediaQueries['mobile-normal'],
|
|
34
|
+
// })
|
|
35
|
+
// const isMobileNormal = useMediaQuery({
|
|
36
|
+
// minWidth: mediaQueries['mobile-normal'],
|
|
37
|
+
// maxWidth: mediaQueries['mobile-large'],
|
|
38
|
+
// })
|
|
39
|
+
// const isMobileStandart = useMediaQuery({
|
|
40
|
+
// minWidth: mediaQueries['mobile-large'],
|
|
41
|
+
// maxWidth: mediaQueries['mobile-extra-large'],
|
|
42
|
+
// })
|
|
43
|
+
// const isMobileLarge = useMediaQuery({
|
|
44
|
+
// minWidth: mediaQueries['mobile-extra-large'],
|
|
45
|
+
// maxWidth: mediaQueries['mobile-super-extra-large'],
|
|
46
|
+
// })
|
|
47
|
+
|
|
48
|
+
useMediaQuery({
|
|
49
|
+
minWidth: mediaQueries['mobile-super-extra-large'],
|
|
50
|
+
maxWidth: mediaQueries['tablet']
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
// prettier-ignore
|
|
54
|
+
const isTablet = useMediaQuery({
|
|
55
|
+
minWidth: mediaQueries['tablet'],
|
|
56
|
+
maxWidth: mediaQueries['desktop-small']
|
|
57
|
+
}) || isSSR && Boolean(userDevice.isTablet);
|
|
58
|
+
|
|
59
|
+
// const isTabletSmall = useMediaQuery({
|
|
60
|
+
// minWidth: mediaQueries['tablet-small'],
|
|
61
|
+
// maxWidth: mediaQueries['tablet'],
|
|
62
|
+
// })
|
|
63
|
+
// const isTabletLarge = useMediaQuery({
|
|
64
|
+
// minWidth: mediaQueries['tablet'],
|
|
65
|
+
// maxWidth: mediaQueries['tablet-large'],
|
|
66
|
+
// })
|
|
67
|
+
|
|
68
|
+
// prettier-ignore
|
|
69
|
+
const isDesktop = useMediaQuery({
|
|
70
|
+
minWidth: mediaQueries['desktop-small'],
|
|
71
|
+
maxWidth: mediaQueries['desktop-super-huge']
|
|
72
|
+
}) || isSSR && Boolean(userDevice.isDesktop);
|
|
73
|
+
|
|
74
|
+
// const isDesktopSmall = useMediaQuery({
|
|
75
|
+
// minWidth: mediaQueries['desktop-small'],
|
|
76
|
+
// maxWidth: mediaQueries['desktop-medium'],
|
|
77
|
+
// })
|
|
78
|
+
// const isDesktopMedium = useMediaQuery({
|
|
79
|
+
// minWidth: mediaQueries['desktop-medium'],
|
|
80
|
+
// maxWidth: mediaQueries['desktop-normal'],
|
|
81
|
+
// })
|
|
82
|
+
// const isDesktopNormal = useMediaQuery({
|
|
83
|
+
// minWidth: mediaQueries['desktop-normal'],
|
|
84
|
+
// maxWidth: mediaQueries['desktop-large'],
|
|
85
|
+
// })
|
|
86
|
+
// const isDesktopStandart = useMediaQuery({
|
|
87
|
+
// minWidth: mediaQueries['desktop-large'],
|
|
88
|
+
// maxWidth: mediaQueries['desktop-extra-large'],
|
|
89
|
+
// })
|
|
90
|
+
// const isDesktopLarge = useMediaQuery({
|
|
91
|
+
// minWidth: mediaQueries['desktop-extra-large'],
|
|
92
|
+
// maxWidth: mediaQueries['desktop-super-extra-large'],
|
|
93
|
+
// })
|
|
94
|
+
// const isDesktopHuge = useMediaQuery({
|
|
95
|
+
// minWidth: mediaQueries['desktop-super-extra-large'],
|
|
96
|
+
// maxWidth: mediaQueries['desktop-huge'],
|
|
97
|
+
// })
|
|
98
|
+
|
|
99
|
+
const isDesktopMega = useMediaQuery({
|
|
100
|
+
minWidth: mediaQueries['desktop-huge']
|
|
101
|
+
});
|
|
102
|
+
const deviceTypes = useMemo(() => ({
|
|
103
|
+
// isWarning,
|
|
104
|
+
isMobile: isMobile,
|
|
105
|
+
// isMobileTiny,
|
|
106
|
+
// isMobileSmall,
|
|
107
|
+
// isMobileMedium,
|
|
108
|
+
// isMobileNormal,
|
|
109
|
+
// isMobileStandart,
|
|
110
|
+
// isMobileLarge,
|
|
111
|
+
isMobileHuge: isMobile,
|
|
112
|
+
isTablet: isTablet,
|
|
113
|
+
// isTabletSmall,
|
|
114
|
+
// isTabletLarge,
|
|
115
|
+
isDesktop: isDesktop,
|
|
116
|
+
// isDesktopSmall,
|
|
117
|
+
// isDesktopMedium,
|
|
118
|
+
// isDesktopNormal,
|
|
119
|
+
// isDesktopStandart,
|
|
120
|
+
// isDesktopLarge,
|
|
121
|
+
// isDesktopHuge,
|
|
122
|
+
isDesktopMega: isDesktopMega
|
|
123
|
+
}), [isMobile, isTablet, isDesktop, isDesktopMega]);
|
|
124
|
+
return deviceTypes;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
export { useMediaQueries };
|
|
@@ -1,125 +1,3 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var mediaQueries = {
|
|
5
|
-
"mobile-tiny": "15em",
|
|
6
|
-
"mobile-super-extra-large": "40em",
|
|
7
|
-
tablet: tablet,
|
|
8
|
-
"desktop-small": "60em",
|
|
9
|
-
"desktop-huge": "160em"
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
const isSSR = typeof window === 'undefined';
|
|
13
|
-
function useMediaQueries(userDevice = {}) {
|
|
14
|
-
// const isWarning = useMediaQuery({ maxWidth: mediaQueries['mobile-tiny'] })
|
|
15
|
-
|
|
16
|
-
// prettier-ignore
|
|
17
|
-
const isMobile = useMediaQuery({
|
|
18
|
-
minWidth: mediaQueries['mobile-tiny'],
|
|
19
|
-
maxWidth: mediaQueries['tablet']
|
|
20
|
-
}) || isSSR && Boolean(userDevice.isMobile);
|
|
21
|
-
|
|
22
|
-
// const isMobileTiny = useMediaQuery({
|
|
23
|
-
// minWidth: mediaQueries['mobile-tiny'],
|
|
24
|
-
// maxWidth: mediaQueries['mobile-small'],
|
|
25
|
-
// })
|
|
26
|
-
// const isMobileSmall = useMediaQuery({
|
|
27
|
-
// minWidth: mediaQueries['mobile-small'],
|
|
28
|
-
// maxWidth: mediaQueries['mobile-medium'],
|
|
29
|
-
// })
|
|
30
|
-
// const isMobileMedium = useMediaQuery({
|
|
31
|
-
// minWidth: mediaQueries['mobile-medium'],
|
|
32
|
-
// maxWidth: mediaQueries['mobile-normal'],
|
|
33
|
-
// })
|
|
34
|
-
// const isMobileNormal = useMediaQuery({
|
|
35
|
-
// minWidth: mediaQueries['mobile-normal'],
|
|
36
|
-
// maxWidth: mediaQueries['mobile-large'],
|
|
37
|
-
// })
|
|
38
|
-
// const isMobileStandart = useMediaQuery({
|
|
39
|
-
// minWidth: mediaQueries['mobile-large'],
|
|
40
|
-
// maxWidth: mediaQueries['mobile-extra-large'],
|
|
41
|
-
// })
|
|
42
|
-
// const isMobileLarge = useMediaQuery({
|
|
43
|
-
// minWidth: mediaQueries['mobile-extra-large'],
|
|
44
|
-
// maxWidth: mediaQueries['mobile-super-extra-large'],
|
|
45
|
-
// })
|
|
46
|
-
|
|
47
|
-
useMediaQuery({
|
|
48
|
-
minWidth: mediaQueries['mobile-super-extra-large'],
|
|
49
|
-
maxWidth: mediaQueries['tablet']
|
|
50
|
-
});
|
|
51
|
-
|
|
52
|
-
// prettier-ignore
|
|
53
|
-
const isTablet = useMediaQuery({
|
|
54
|
-
minWidth: mediaQueries['tablet'],
|
|
55
|
-
maxWidth: mediaQueries['desktop-small']
|
|
56
|
-
}) || isSSR && Boolean(userDevice.isTablet);
|
|
57
|
-
|
|
58
|
-
// const isTabletSmall = useMediaQuery({
|
|
59
|
-
// minWidth: mediaQueries['tablet-small'],
|
|
60
|
-
// maxWidth: mediaQueries['tablet'],
|
|
61
|
-
// })
|
|
62
|
-
// const isTabletLarge = useMediaQuery({
|
|
63
|
-
// minWidth: mediaQueries['tablet'],
|
|
64
|
-
// maxWidth: mediaQueries['tablet-large'],
|
|
65
|
-
// })
|
|
66
|
-
|
|
67
|
-
// prettier-ignore
|
|
68
|
-
const isDesktop = useMediaQuery({
|
|
69
|
-
minWidth: mediaQueries['desktop-small'],
|
|
70
|
-
maxWidth: mediaQueries['desktop-super-huge']
|
|
71
|
-
}) || isSSR && Boolean(userDevice.isDesktop);
|
|
72
|
-
|
|
73
|
-
// const isDesktopSmall = useMediaQuery({
|
|
74
|
-
// minWidth: mediaQueries['desktop-small'],
|
|
75
|
-
// maxWidth: mediaQueries['desktop-medium'],
|
|
76
|
-
// })
|
|
77
|
-
// const isDesktopMedium = useMediaQuery({
|
|
78
|
-
// minWidth: mediaQueries['desktop-medium'],
|
|
79
|
-
// maxWidth: mediaQueries['desktop-normal'],
|
|
80
|
-
// })
|
|
81
|
-
// const isDesktopNormal = useMediaQuery({
|
|
82
|
-
// minWidth: mediaQueries['desktop-normal'],
|
|
83
|
-
// maxWidth: mediaQueries['desktop-large'],
|
|
84
|
-
// })
|
|
85
|
-
// const isDesktopStandart = useMediaQuery({
|
|
86
|
-
// minWidth: mediaQueries['desktop-large'],
|
|
87
|
-
// maxWidth: mediaQueries['desktop-extra-large'],
|
|
88
|
-
// })
|
|
89
|
-
// const isDesktopLarge = useMediaQuery({
|
|
90
|
-
// minWidth: mediaQueries['desktop-extra-large'],
|
|
91
|
-
// maxWidth: mediaQueries['desktop-super-extra-large'],
|
|
92
|
-
// })
|
|
93
|
-
// const isDesktopHuge = useMediaQuery({
|
|
94
|
-
// minWidth: mediaQueries['desktop-super-extra-large'],
|
|
95
|
-
// maxWidth: mediaQueries['desktop-huge'],
|
|
96
|
-
// })
|
|
97
|
-
|
|
98
|
-
const isDesktopMega = useMediaQuery({
|
|
99
|
-
minWidth: mediaQueries['desktop-huge']
|
|
100
|
-
});
|
|
101
|
-
return {
|
|
102
|
-
// isWarning,
|
|
103
|
-
isMobile: isMobile,
|
|
104
|
-
// isMobileTiny,
|
|
105
|
-
// isMobileSmall,
|
|
106
|
-
// isMobileMedium,
|
|
107
|
-
// isMobileNormal,
|
|
108
|
-
// isMobileStandart,
|
|
109
|
-
// isMobileLarge,
|
|
110
|
-
isMobileHuge: isMobile,
|
|
111
|
-
isTablet: isTablet,
|
|
112
|
-
// isTabletSmall,
|
|
113
|
-
// isTabletLarge,
|
|
114
|
-
isDesktop: isDesktop,
|
|
115
|
-
// isDesktopSmall,
|
|
116
|
-
// isDesktopMedium,
|
|
117
|
-
// isDesktopNormal,
|
|
118
|
-
// isDesktopStandart,
|
|
119
|
-
// isDesktopLarge,
|
|
120
|
-
// isDesktopHuge,
|
|
121
|
-
isDesktopMega: isDesktopMega
|
|
122
|
-
};
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
export { useMediaQueries };
|
|
1
|
+
export { useMediaQueries } from './useMediaQueries/useMediaQueries.js';
|
|
2
|
+
import 'react';
|
|
3
|
+
import 'react-responsive';
|
|
@@ -2,7 +2,14 @@ var styleAttributes = [
|
|
|
2
2
|
/**
|
|
3
3
|
* Layout
|
|
4
4
|
*/
|
|
5
|
-
'alignContent', 'alignItems', 'alignSelf', 'aspectRatio', 'border', 'borderBottomWidth', 'borderEndWidth', 'borderLeftWidth', 'borderRightWidth', 'borderStartWidth', 'borderTopWidth', 'borderWidth', 'bottom', 'display', 'flex', 'flexBasis', 'flexDirection', 'flexGrow', 'flexShrink', 'flexWrap', 'gap', 'rowGap', 'columnGap', 'columnWidth', 'height', 'justifyContent', 'left', 'margin', 'marginBottom', 'marginEnd', 'marginHorizontal', 'marginLeft', 'marginRight', 'marginStart', 'marginTop', 'marginVertical', 'maxHeight', 'maxWidth', 'minHeight', 'minWidth', 'overflow', 'padding', 'paddingBottom', 'paddingEnd', 'paddingHorizontal', 'paddingLeft', 'paddingRight', 'paddingStart', 'paddingTop', 'paddingVertical', 'position', 'right', 'top', 'width',
|
|
5
|
+
'alignContent', 'alignItems', 'alignSelf', 'aspectRatio', 'border', 'borderBottomWidth', 'borderEndWidth', 'borderLeftWidth', 'borderRightWidth', 'borderStartWidth', 'borderTopWidth', 'borderWidth', 'bottom', 'display', 'flex', 'flexBasis', 'flexDirection', 'flexGrow', 'flexShrink', 'flexWrap', 'gap', 'rowGap', 'columnGap', 'columnWidth', 'height', 'justifyContent', 'left', 'margin', 'marginBottom', 'marginEnd', 'marginHorizontal', 'marginLeft', 'marginRight', 'marginStart', 'marginTop', 'marginVertical', 'maxHeight', 'maxWidth', 'minHeight', 'minWidth', 'overflow', 'padding', 'paddingBottom', 'paddingEnd', 'paddingHorizontal', 'paddingLeft', 'paddingRight', 'paddingStart', 'paddingTop', 'paddingVertical', 'position', 'right', 'top', ['width', {
|
|
6
|
+
validate: value => {
|
|
7
|
+
// Pass only number value for "width" style.
|
|
8
|
+
// If width have custom value, like "fill", we must set class by this value.
|
|
9
|
+
// "\d" - digit; "+" - 1 or more
|
|
10
|
+
return /\d+/.test(value);
|
|
11
|
+
}
|
|
12
|
+
}], 'zIndex', 'order',
|
|
6
13
|
/**
|
|
7
14
|
* Shadow
|
|
8
15
|
*/
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
import { useMemo } from 'react';
|
|
2
|
+
import camelCase from 'lodash/camelCase';
|
|
3
|
+
import maxBy from 'lodash/maxBy';
|
|
4
|
+
import upperFirst from 'lodash/upperFirst';
|
|
5
|
+
import { useUserDeviceContext } from '../../context/UIContext.js';
|
|
6
|
+
import styleAttributes from './styleAttributes.js';
|
|
7
|
+
import '../../tslib.es6-5FtW-kfi.js';
|
|
8
|
+
import 'react/jsx-runtime';
|
|
9
|
+
import '../useMediaQueries/useMediaQueries.js';
|
|
10
|
+
import 'react-responsive';
|
|
11
|
+
import '../../utils/setViewportProperty.js';
|
|
12
|
+
|
|
13
|
+
/*
|
|
14
|
+
* rule of prop key:
|
|
15
|
+
*
|
|
16
|
+
* first is style second is div target third is device
|
|
17
|
+
* paddingHorizontal GridInnerWrapper MobileNormal
|
|
18
|
+
*
|
|
19
|
+
* paddingHorizontalGridInnerWrapperMobileNormal: "10px"
|
|
20
|
+
*/
|
|
21
|
+
function useStyles(props) {
|
|
22
|
+
const {
|
|
23
|
+
deviceCurrentMainType,
|
|
24
|
+
deviceCurrentType,
|
|
25
|
+
deviceTypesList
|
|
26
|
+
} = useUserDeviceContext();
|
|
27
|
+
const propsStyleAttributes = useMemo(() => {
|
|
28
|
+
const styles = Object.entries(props).reduce((result, [propKey, propValue]) => {
|
|
29
|
+
const styleAttributeKey = getTargetStyleAttributeKey(propKey, propValue);
|
|
30
|
+
if (styleAttributeKey) {
|
|
31
|
+
result[propKey] = propValue;
|
|
32
|
+
}
|
|
33
|
+
return result;
|
|
34
|
+
}, {});
|
|
35
|
+
return styles;
|
|
36
|
+
// "props" object maybe big and frequently changing
|
|
37
|
+
}, [props]);
|
|
38
|
+
const collectedStyles = useMemo(() => {
|
|
39
|
+
const resultStylesGroups = {};
|
|
40
|
+
for (const [propKey, propValue] of Object.entries(propsStyleAttributes)) {
|
|
41
|
+
let value = null;
|
|
42
|
+
const styleAttributeKey = getTargetStyleAttributeKey(propKey, propValue);
|
|
43
|
+
const isStyleForCurrentDevice = propKey.toLowerCase().endsWith(deviceCurrentType.toLowerCase());
|
|
44
|
+
|
|
45
|
+
// e.g. "GridWrapperInner"
|
|
46
|
+
const targetElementKey = removeDeviceType(propKey.replace(styleAttributeKey, ''), deviceTypesList);
|
|
47
|
+
const targetElementGroupKey = camelCase(targetElementKey) || 'styles';
|
|
48
|
+
if (!resultStylesGroups[targetElementGroupKey]) {
|
|
49
|
+
resultStylesGroups[targetElementGroupKey] = {};
|
|
50
|
+
}
|
|
51
|
+
if (isStyleForCurrentDevice) {
|
|
52
|
+
value = propValue;
|
|
53
|
+
} else {
|
|
54
|
+
const propKeyWithOutDeviceType = `${styleAttributeKey}${targetElementKey}`;
|
|
55
|
+
const propKeyWithBaseDeviceType = `${propKeyWithOutDeviceType}${upperFirst(deviceCurrentMainType)}`;
|
|
56
|
+
const defaultValue = props[propKeyWithBaseDeviceType] || props[propKeyWithOutDeviceType];
|
|
57
|
+
let currentValue = resultStylesGroups[targetElementGroupKey][styleAttributeKey];
|
|
58
|
+
if (propKeyWithOutDeviceType.includes('Horizontal')) {
|
|
59
|
+
const keyLeft = styleAttributeKey.replace('Horizontal', 'Left');
|
|
60
|
+
currentValue = resultStylesGroups[targetElementGroupKey][keyLeft];
|
|
61
|
+
} else if (propKeyWithOutDeviceType.includes('Vertical')) {
|
|
62
|
+
const keyTop = styleAttributeKey.replace('Vertical', 'Top');
|
|
63
|
+
currentValue = resultStylesGroups[targetElementGroupKey][keyTop];
|
|
64
|
+
}
|
|
65
|
+
if (!currentValue) {
|
|
66
|
+
value = defaultValue;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
if (value) {
|
|
70
|
+
// Check not digit symbols. Chars means some unit ("px", "em", "rem" or custom "m")
|
|
71
|
+
const isValueHasUnit = /\D/.test(value);
|
|
72
|
+
// If value has some unit
|
|
73
|
+
if (isValueHasUnit) {
|
|
74
|
+
// Check value on our custom "m"(module) unit
|
|
75
|
+
/** Pattern for:
|
|
76
|
+
* 1m
|
|
77
|
+
* 1.5m
|
|
78
|
+
* 1m 1m 1.5m
|
|
79
|
+
* 0 0 1m 1m
|
|
80
|
+
*/
|
|
81
|
+
const isValueHasModuleUnit = /\d+\.?\d*m\s?(?![a-zA-Z]+)/.test(value);
|
|
82
|
+
// If value has module unit
|
|
83
|
+
if (isValueHasModuleUnit) {
|
|
84
|
+
/** Order for shorthand properties:
|
|
85
|
+
* top
|
|
86
|
+
* right
|
|
87
|
+
* bottom
|
|
88
|
+
* left
|
|
89
|
+
* or:
|
|
90
|
+
* top
|
|
91
|
+
* right and left
|
|
92
|
+
* bottom
|
|
93
|
+
* or:
|
|
94
|
+
* top and bottom
|
|
95
|
+
* right and left
|
|
96
|
+
*/
|
|
97
|
+
|
|
98
|
+
const valuePxPartsList = value.split(' ').map(valuePart => {
|
|
99
|
+
const valueModule = valuePart.replace(/[a-z]/gi, '');
|
|
100
|
+
const valuePx = parseFloat(valueModule) * 8;
|
|
101
|
+
return `${valuePx}px`;
|
|
102
|
+
}, []);
|
|
103
|
+
value = valuePxPartsList.join(' ');
|
|
104
|
+
}
|
|
105
|
+
} else {
|
|
106
|
+
// Some properties doesn't have any units
|
|
107
|
+
const ignorePX = ['zIndex', 'order', 'flexGrow'].includes(styleAttributeKey);
|
|
108
|
+
if (!ignorePX) {
|
|
109
|
+
// Add px to non-unit value
|
|
110
|
+
value = `${value}px`;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
if (styleAttributeKey.includes('Horizontal')) {
|
|
114
|
+
const keyRight = styleAttributeKey.replace('Horizontal', 'Right');
|
|
115
|
+
const keyLeft = styleAttributeKey.replace('Horizontal', 'Left');
|
|
116
|
+
const valuePartsList = value.split(' ');
|
|
117
|
+
const valueRight = valuePartsList[0];
|
|
118
|
+
const valueLeft = valuePartsList[1] || valuePartsList[0];
|
|
119
|
+
resultStylesGroups[targetElementGroupKey][keyRight] = valueRight;
|
|
120
|
+
resultStylesGroups[targetElementGroupKey][keyLeft] = valueLeft;
|
|
121
|
+
} else if (styleAttributeKey.includes('Vertical')) {
|
|
122
|
+
const keyTop = styleAttributeKey.replace('Vertical', 'Top');
|
|
123
|
+
const keyBottom = styleAttributeKey.replace('Vertical', 'Bottom');
|
|
124
|
+
const valuePartsList = value.split(' ');
|
|
125
|
+
const valueTop = valuePartsList[0];
|
|
126
|
+
const valueBottom = valuePartsList[1] || valuePartsList[0];
|
|
127
|
+
resultStylesGroups[targetElementGroupKey][keyTop] = valueTop;
|
|
128
|
+
resultStylesGroups[targetElementGroupKey][keyBottom] = valueBottom;
|
|
129
|
+
} else {
|
|
130
|
+
resultStylesGroups[targetElementGroupKey][styleAttributeKey] = value;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
return resultStylesGroups;
|
|
135
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
136
|
+
}, [deviceCurrentMainType, deviceCurrentType, ...Object.values(propsStyleAttributes)]);
|
|
137
|
+
return collectedStyles;
|
|
138
|
+
}
|
|
139
|
+
const removeDeviceType = (originalKey, deviceTypesList) => {
|
|
140
|
+
// Remove "mobile"/"tablet"/"desktop"
|
|
141
|
+
const withOutDeviceType = deviceTypesList.reduce((cleanKey, deviceType) => {
|
|
142
|
+
if (cleanKey.endsWith(upperFirst(deviceType))) {
|
|
143
|
+
return cleanKey.replace(upperFirst(deviceType), '');
|
|
144
|
+
}
|
|
145
|
+
return cleanKey;
|
|
146
|
+
}, originalKey);
|
|
147
|
+
return withOutDeviceType;
|
|
148
|
+
};
|
|
149
|
+
const getTargetStyleAttributeKey = (styleKey, styleValue = '') => {
|
|
150
|
+
// Collect list of possible styles for propKey. e.g:
|
|
151
|
+
// "borderLeftWidthWrapperInnerMobileNormal" to ["border", "borderLeftWidth"]
|
|
152
|
+
const possibleStyleAttributesList = styleAttributes.filter(styleAttribute => {
|
|
153
|
+
// Attribute can be array with key on first position and params on second
|
|
154
|
+
if (Array.isArray(styleAttribute)) {
|
|
155
|
+
// First item always attribute key (e.g. border, width, etc)
|
|
156
|
+
const styleAttributeKey = styleAttribute[0];
|
|
157
|
+
// Second item always params with some settings or methods
|
|
158
|
+
const styleAttributeParams = styleAttribute[1] || {};
|
|
159
|
+
// If is target attribute key
|
|
160
|
+
if (styleKey.startsWith(styleAttributeKey)) {
|
|
161
|
+
// If target attribute params has validate method
|
|
162
|
+
if (styleAttributeParams.validate) {
|
|
163
|
+
// Return validation result for target attribute
|
|
164
|
+
return styleAttributeParams.validate(styleValue);
|
|
165
|
+
} else {
|
|
166
|
+
// Or always add to list
|
|
167
|
+
return true;
|
|
168
|
+
}
|
|
169
|
+
} else {
|
|
170
|
+
// Else ignore
|
|
171
|
+
return false;
|
|
172
|
+
}
|
|
173
|
+
} else {
|
|
174
|
+
// If is target attribute
|
|
175
|
+
return styleKey.startsWith(styleAttribute);
|
|
176
|
+
}
|
|
177
|
+
});
|
|
178
|
+
|
|
179
|
+
// Get longest style key (e.g. "borderLeftWidth")
|
|
180
|
+
const targetStyleAttribute = maxBy(possibleStyleAttributesList, styleAttribute => {
|
|
181
|
+
const styleAttributeKey = Array.isArray(styleAttribute) ? styleAttribute[0] : styleAttribute;
|
|
182
|
+
return styleAttributeKey.length;
|
|
183
|
+
});
|
|
184
|
+
const styleAttributeKey = Array.isArray(targetStyleAttribute) ? targetStyleAttribute[0] : targetStyleAttribute;
|
|
185
|
+
return styleAttributeKey;
|
|
186
|
+
};
|
|
187
|
+
|
|
188
|
+
export { useStyles };
|