@via-profit/ui-kit 0.2.6 → 0.4.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/Accordion/AccordionContainer.js +11 -11
- package/Accordion/AccordionContent.js +16 -7
- package/Accordion/AccordionHeader.d.ts +22 -0
- package/Accordion/AccordionHeader.js +35 -18
- package/Accordion/Chevron.js +3 -3
- package/Accordion/index.d.ts +12 -8
- package/Accordion/index.js +21 -6
- package/Autocomplete/AutocompleteContainer.d.ts +5 -9
- package/Autocomplete/AutocompleteContainer.js +125 -57
- package/Autocomplete/AutocompleteTagsInput.d.ts +15 -0
- package/Autocomplete/AutocompleteTagsInput.js +65 -0
- package/Autocomplete/context.d.ts +1 -0
- package/Autocomplete/context.js +5 -5
- package/Autocomplete/index.js +10 -7
- package/Avatar/AvatarBase.js +1 -1
- package/Avatar/AvatarContainer.js +6 -11
- package/Avatar/AvatarPicture.d.ts +9 -1
- package/Avatar/AvatarPicture.js +4 -3
- package/Avatar/index.js +10 -10
- package/Badge/BadgeBase.d.ts +9 -0
- package/Badge/BadgeBase.js +21 -3
- package/Badge/BadgeContainer.js +2 -1
- package/Badge/BadgeDeleteButton.d.ts +1 -1
- package/Badge/BadgeOutlined.d.ts +1 -1
- package/Badge/BadgeOutlined.js +5 -80
- package/Badge/BadgeStandard.d.ts +1 -1
- package/Badge/BadgeStandard.js +5 -91
- package/Badge/BadgeStyled.d.ts +5 -0
- package/Badge/BadgeStyled.js +125 -0
- package/Badge/index.d.ts +2 -2
- package/Badge/index.js +3 -20
- package/Button/ButtonBase.js +8 -4
- package/Button/ButtonContainer.js +2 -0
- package/Button/ButtonIconWrapper.d.ts +1 -1
- package/Button/ButtonOutlined.d.ts +1 -1
- package/Button/ButtonOutlined.js +5 -80
- package/Button/ButtonPlain.d.ts +1 -1
- package/Button/ButtonPlain.js +5 -85
- package/Button/ButtonStandard.d.ts +1 -1
- package/Button/ButtonStandard.js +5 -97
- package/Button/ButtonStyled.d.ts +10 -0
- package/Button/ButtonStyled.js +205 -0
- package/Button/index.d.ts +5 -5
- package/Button/index.js +3 -24
- package/ButtonGroup/ButtonGroupContext.d.ts +21 -0
- package/ButtonGroup/ButtonGroupContext.js +11 -0
- package/ButtonGroup/index.d.ts +76 -0
- package/ButtonGroup/index.js +132 -0
- package/CHANGELOG.md +160 -0
- package/Calendar/CalendarCell.js +11 -4
- package/Calendar/CalendarComponent.d.ts +15 -4
- package/Calendar/CalendarComponent.js +201 -103
- package/Calendar/CalendarDayBadge.d.ts +1 -1
- package/Calendar/CalendarMonthCell.js +1 -11
- package/Calendar/CalendarWeekDayLabel.js +3 -1
- package/Calendar/CalendarWeekDaysBar.js +6 -1
- package/Calendar/CalendarYearCell.js +1 -16
- package/Calendar/CalendarYearsSelector.d.ts +0 -1
- package/Calendar/CalendarYearsSelector.js +33 -35
- package/Calendar/use-calendar.d.ts +4 -3
- package/Calendar/use-calendar.js +31 -24
- package/Checkbox/CheckboxAsterisk.d.ts +13 -0
- package/{Autocomplete2/Autocomplete2TextField.js → Checkbox/CheckboxAsterisk.js} +24 -10
- package/Checkbox/CheckboxBox.d.ts +22 -0
- package/Checkbox/CheckboxBox.js +88 -0
- package/Checkbox/CheckboxContainer.d.ts +27 -0
- package/Checkbox/CheckboxContainer.js +38 -0
- package/Checkbox/CheckboxErrorText.d.ts +6 -0
- package/Checkbox/CheckboxErrorText.js +76 -0
- package/Checkbox/CheckboxIcon.d.ts +10 -0
- package/Checkbox/CheckboxIcon.js +57 -0
- package/Checkbox/CheckboxTextWrapper.d.ts +4 -0
- package/Checkbox/CheckboxTextWrapper.js +29 -0
- package/Checkbox/CheckboxWrapper.d.ts +4 -0
- package/Checkbox/CheckboxWrapper.js +29 -0
- package/Checkbox/index.d.ts +144 -0
- package/Checkbox/index.js +71 -0
- package/Checkbox/useCheckboxColor.d.ts +6 -0
- package/Checkbox/useCheckboxColor.js +33 -0
- package/ClickOutside/index.d.ts +6 -0
- package/ClickOutside/index.js +19 -3
- package/Color/Color.d.ts +4 -4
- package/Color/Color.js +9 -5
- package/Color/ColorGenerator.d.ts +5 -1
- package/Color/ColorParser.d.ts +9 -0
- package/Color/ColorParser.js +52 -12
- package/CountryFlags/AC.js +5 -1
- package/CountryFlags/AD.js +5 -1
- package/CountryFlags/AE.js +5 -1
- package/CountryFlags/AF.js +5 -1
- package/CountryFlags/AG.js +5 -1
- package/CountryFlags/AI.js +5 -1
- package/CountryFlags/AL.js +5 -1
- package/CountryFlags/AM.js +5 -1
- package/CountryFlags/AO.js +5 -1
- package/CountryFlags/AQ.js +5 -1
- package/CountryFlags/AR.js +5 -1
- package/CountryFlags/AS.js +5 -1
- package/CountryFlags/AT.js +5 -1
- package/CountryFlags/AU.js +5 -1
- package/CountryFlags/AW.js +5 -1
- package/CountryFlags/AX.js +5 -1
- package/CountryFlags/AZ.js +5 -1
- package/CountryFlags/BA.js +5 -1
- package/CountryFlags/BB.js +5 -1
- package/CountryFlags/BD.js +5 -1
- package/CountryFlags/BE.js +5 -1
- package/CountryFlags/BF.js +5 -1
- package/CountryFlags/BG.js +5 -1
- package/CountryFlags/BH.js +5 -1
- package/CountryFlags/BI.js +5 -1
- package/CountryFlags/BJ.js +5 -1
- package/CountryFlags/BL.js +5 -1
- package/CountryFlags/BM.js +5 -1
- package/CountryFlags/BN.js +5 -1
- package/CountryFlags/BO.js +5 -1
- package/CountryFlags/BQ.js +5 -1
- package/CountryFlags/BR.js +5 -1
- package/CountryFlags/BS.js +5 -1
- package/CountryFlags/BT.js +5 -1
- package/CountryFlags/BV.js +5 -1
- package/CountryFlags/BW.js +5 -1
- package/CountryFlags/BY.js +5 -1
- package/CountryFlags/BZ.js +5 -1
- package/CountryFlags/CA.js +5 -1
- package/CountryFlags/CC.js +5 -1
- package/CountryFlags/CD.js +5 -1
- package/CountryFlags/CF.js +5 -1
- package/CountryFlags/CG.js +5 -1
- package/CountryFlags/CH.js +5 -1
- package/CountryFlags/CI.js +5 -1
- package/CountryFlags/CK.js +5 -1
- package/CountryFlags/CL.js +5 -1
- package/CountryFlags/CM.js +5 -1
- package/CountryFlags/CN.js +5 -1
- package/CountryFlags/CO.js +5 -1
- package/CountryFlags/CR.js +5 -1
- package/CountryFlags/CU.js +5 -1
- package/CountryFlags/CV.js +5 -1
- package/CountryFlags/CW.js +5 -1
- package/CountryFlags/CX.js +5 -1
- package/CountryFlags/CY.js +5 -1
- package/CountryFlags/CZ.js +5 -1
- package/CountryFlags/DE.js +5 -1
- package/CountryFlags/DJ.js +5 -1
- package/CountryFlags/DK.js +5 -1
- package/CountryFlags/DM.js +5 -1
- package/CountryFlags/DO.js +5 -1
- package/CountryFlags/DZ.js +5 -1
- package/CountryFlags/EC.js +5 -1
- package/CountryFlags/EE.js +5 -1
- package/CountryFlags/EG.js +5 -1
- package/CountryFlags/EH.js +5 -1
- package/CountryFlags/ER.js +5 -1
- package/CountryFlags/ES.js +5 -1
- package/CountryFlags/ET.js +5 -1
- package/CountryFlags/EU.js +5 -1
- package/CountryFlags/FI.js +5 -1
- package/CountryFlags/FJ.js +5 -1
- package/CountryFlags/FK.js +5 -1
- package/CountryFlags/FM.js +5 -1
- package/CountryFlags/FO.js +5 -1
- package/CountryFlags/FR.js +5 -1
- package/CountryFlags/GA.js +5 -1
- package/CountryFlags/GB.js +5 -1
- package/CountryFlags/GD.js +5 -1
- package/CountryFlags/GE.js +5 -1
- package/CountryFlags/GEAB.js +5 -1
- package/CountryFlags/GEOS.js +5 -1
- package/CountryFlags/GF.js +5 -1
- package/CountryFlags/GG.js +5 -1
- package/CountryFlags/GH.js +5 -1
- package/CountryFlags/GI.js +5 -1
- package/CountryFlags/GL.js +5 -1
- package/CountryFlags/GM.js +5 -1
- package/CountryFlags/GN.js +5 -1
- package/CountryFlags/GP.js +5 -1
- package/CountryFlags/GQ.js +5 -1
- package/CountryFlags/GR.js +5 -1
- package/CountryFlags/GS.js +5 -1
- package/CountryFlags/GT.js +5 -1
- package/CountryFlags/GU.js +5 -1
- package/CountryFlags/GW.js +5 -1
- package/CountryFlags/GY.js +5 -1
- package/CountryFlags/HK.js +5 -1
- package/CountryFlags/HM.js +5 -1
- package/CountryFlags/HN.js +5 -1
- package/CountryFlags/HR.js +5 -1
- package/CountryFlags/HT.js +5 -1
- package/CountryFlags/HU.js +5 -1
- package/CountryFlags/IC.js +5 -1
- package/CountryFlags/ID.js +5 -1
- package/CountryFlags/IE.js +5 -1
- package/CountryFlags/IL.js +5 -1
- package/CountryFlags/IM.js +5 -1
- package/CountryFlags/IN.js +5 -1
- package/CountryFlags/IO.js +5 -1
- package/CountryFlags/IQ.js +5 -1
- package/CountryFlags/IR.js +5 -1
- package/CountryFlags/IS.js +5 -1
- package/CountryFlags/IT.js +5 -1
- package/CountryFlags/JE.js +5 -1
- package/CountryFlags/JM.js +5 -1
- package/CountryFlags/JO.js +5 -1
- package/CountryFlags/JP.js +5 -1
- package/CountryFlags/KE.js +5 -1
- package/CountryFlags/KG.js +5 -1
- package/CountryFlags/KH.js +5 -1
- package/CountryFlags/KI.js +5 -1
- package/CountryFlags/KM.js +5 -1
- package/CountryFlags/KN.js +5 -1
- package/CountryFlags/KP.js +5 -1
- package/CountryFlags/KR.js +5 -1
- package/CountryFlags/KW.js +5 -1
- package/CountryFlags/KY.js +5 -1
- package/CountryFlags/KZ.js +5 -1
- package/CountryFlags/LA.js +5 -1
- package/CountryFlags/LB.js +5 -1
- package/CountryFlags/LC.js +5 -1
- package/CountryFlags/LI.js +5 -1
- package/CountryFlags/LK.js +5 -1
- package/CountryFlags/LR.js +5 -1
- package/CountryFlags/LS.js +5 -1
- package/CountryFlags/LT.js +5 -1
- package/CountryFlags/LU.js +5 -1
- package/CountryFlags/LV.js +5 -1
- package/CountryFlags/LY.js +5 -1
- package/CountryFlags/MA.js +5 -1
- package/CountryFlags/MC.js +5 -1
- package/CountryFlags/MD.js +5 -1
- package/CountryFlags/ME.js +5 -1
- package/CountryFlags/MF.js +5 -1
- package/CountryFlags/MG.js +5 -1
- package/CountryFlags/MH.js +5 -1
- package/CountryFlags/MK.js +5 -1
- package/CountryFlags/ML.js +5 -1
- package/CountryFlags/MM.js +5 -1
- package/CountryFlags/MN.js +5 -1
- package/CountryFlags/MO.js +5 -1
- package/CountryFlags/MP.js +5 -1
- package/CountryFlags/MQ.js +5 -1
- package/CountryFlags/MR.js +5 -1
- package/CountryFlags/MS.js +5 -1
- package/CountryFlags/MT.js +5 -1
- package/CountryFlags/MU.js +5 -1
- package/CountryFlags/MV.js +5 -1
- package/CountryFlags/MW.js +5 -1
- package/CountryFlags/MX.js +5 -1
- package/CountryFlags/MY.js +5 -1
- package/CountryFlags/MZ.js +5 -1
- package/CountryFlags/NA.js +5 -1
- package/CountryFlags/NC.js +5 -1
- package/CountryFlags/NE.js +5 -1
- package/CountryFlags/NF.js +5 -1
- package/CountryFlags/NG.js +5 -1
- package/CountryFlags/NI.js +5 -1
- package/CountryFlags/NL.js +5 -1
- package/CountryFlags/NO.js +5 -1
- package/CountryFlags/NP.js +5 -1
- package/CountryFlags/NR.js +5 -1
- package/CountryFlags/NU.js +5 -1
- package/CountryFlags/NZ.js +5 -1
- package/CountryFlags/OM.js +5 -1
- package/CountryFlags/PA.js +5 -1
- package/CountryFlags/PE.js +5 -1
- package/CountryFlags/PF.js +5 -1
- package/CountryFlags/PG.js +5 -1
- package/CountryFlags/PH.js +5 -1
- package/CountryFlags/PK.js +5 -1
- package/CountryFlags/PL.js +5 -1
- package/CountryFlags/PM.js +5 -1
- package/CountryFlags/PN.js +5 -1
- package/CountryFlags/PR.js +5 -1
- package/CountryFlags/PS.js +5 -1
- package/CountryFlags/PT.js +5 -1
- package/CountryFlags/PW.js +5 -1
- package/CountryFlags/PY.js +5 -1
- package/CountryFlags/QA.js +5 -1
- package/CountryFlags/RE.js +5 -1
- package/CountryFlags/RO.js +5 -1
- package/CountryFlags/RS.js +5 -1
- package/CountryFlags/RU.js +5 -1
- package/CountryFlags/RW.js +5 -1
- package/CountryFlags/SA.js +5 -1
- package/CountryFlags/SB.js +5 -1
- package/CountryFlags/SC.js +5 -1
- package/CountryFlags/SD.js +5 -1
- package/CountryFlags/SE.js +5 -1
- package/CountryFlags/SG.js +5 -1
- package/CountryFlags/SH.js +5 -1
- package/CountryFlags/SI.js +5 -1
- package/CountryFlags/SJ.js +5 -1
- package/CountryFlags/SK.js +5 -1
- package/CountryFlags/SL.js +5 -1
- package/CountryFlags/SM.js +5 -1
- package/CountryFlags/SN.js +5 -1
- package/CountryFlags/SO.js +5 -1
- package/CountryFlags/SR.js +5 -1
- package/CountryFlags/SS.js +5 -1
- package/CountryFlags/ST.js +5 -1
- package/CountryFlags/SV.js +5 -1
- package/CountryFlags/SX.js +5 -1
- package/CountryFlags/SY.js +5 -1
- package/CountryFlags/SZ.js +5 -1
- package/CountryFlags/TA.js +5 -1
- package/CountryFlags/TC.js +5 -1
- package/CountryFlags/TD.js +5 -1
- package/CountryFlags/TF.js +5 -1
- package/CountryFlags/TG.js +5 -1
- package/CountryFlags/TH.js +5 -1
- package/CountryFlags/TJ.js +5 -1
- package/CountryFlags/TK.js +5 -1
- package/CountryFlags/TL.js +5 -1
- package/CountryFlags/TM.js +5 -1
- package/CountryFlags/TN.js +5 -1
- package/CountryFlags/TO.js +5 -1
- package/CountryFlags/TR.js +5 -1
- package/CountryFlags/TT.js +5 -1
- package/CountryFlags/TV.js +5 -1
- package/CountryFlags/TW.js +5 -1
- package/CountryFlags/TZ.js +5 -1
- package/CountryFlags/UA.js +5 -1
- package/CountryFlags/UG.js +5 -1
- package/CountryFlags/UM.js +5 -1
- package/CountryFlags/US.js +5 -1
- package/CountryFlags/UY.js +5 -1
- package/CountryFlags/UZ.js +5 -1
- package/CountryFlags/Uknown.d.ts +7 -3
- package/CountryFlags/Uknown.js +9 -31
- package/CountryFlags/Unknown.d.ts +3 -0
- package/CountryFlags/Unknown.js +42 -0
- package/CountryFlags/VA.js +5 -1
- package/CountryFlags/VC.js +5 -1
- package/CountryFlags/VE.js +5 -1
- package/CountryFlags/VG.js +5 -1
- package/CountryFlags/VI.js +5 -1
- package/CountryFlags/VN.js +5 -1
- package/CountryFlags/VU.js +5 -1
- package/CountryFlags/WF.js +5 -1
- package/CountryFlags/WS.js +5 -1
- package/CountryFlags/XK.js +5 -1
- package/CountryFlags/YE.js +5 -1
- package/CountryFlags/YT.js +5 -1
- package/CountryFlags/ZA.js +5 -1
- package/CountryFlags/ZM.js +5 -1
- package/CountryFlags/ZW.js +5 -1
- package/CountryFlags/index.d.ts +2 -1
- package/CountryFlags/index.js +3 -1
- package/CountryFlags/isLabelled.d.ts +6 -0
- package/CountryFlags/isLabelled.js +7 -0
- package/DatePicker/index.d.ts +23 -6
- package/DatePicker/index.js +84 -23
- package/DatePicker/useDatePickerFormat.js +20 -3
- package/Grid/index.d.ts +60 -0
- package/Grid/index.js +43 -0
- package/Highlighted/index.d.ts +1 -1
- package/Highlighted/index.js +14 -10
- package/LoadingIndicator/LoadingOverlay.d.ts +11 -0
- package/LoadingIndicator/LoadingOverlay.js +63 -0
- package/LoadingIndicator/Spinner.d.ts +34 -5
- package/LoadingIndicator/Spinner.js +48 -37
- package/LoadingIndicator/SpinnerCircle.d.ts +14 -0
- package/LoadingIndicator/SpinnerCircle.js +34 -0
- package/LoadingIndicator/index.d.ts +8 -3
- package/LoadingIndicator/index.js +9 -15
- package/MaskedField/index.d.ts +3 -2
- package/MaskedField/index.js +7 -2
- package/MaskedField/templates.js +2 -0
- package/MaskedField/useMasked.js +26 -12
- package/Menu/MenuContainer.d.ts +11 -3
- package/Menu/MenuContainer.js +127 -65
- package/Menu/MenuItem.js +1 -1
- package/Menu/VirtualizedList.js +1 -3
- package/Menu/context.js +5 -0
- package/Modal/BaseModal/ModalWrapper.js +65 -38
- package/Modal/BaseModal/context.js +6 -0
- package/Modal/BaseModal/index.js +0 -8
- package/Modal/BaseModal/useDialogID.d.ts +6 -0
- package/Modal/BaseModal/useDialogID.js +12 -0
- package/Modal/ConfirmBox/ConfirmBoxContainer.js +5 -1
- package/Modal/ConfirmBox/index.js +2 -1
- package/Modal/Dialog/DialogInner.js +1 -1
- package/Modal/Dialog/index.js +12 -7
- package/Modal/Drawer/DrawerHeader.d.ts +20 -0
- package/Modal/Drawer/DrawerHeader.js +3 -3
- package/Modal/Drawer/DrawerInner.js +9 -1
- package/Modal/Drawer/index.d.ts +7 -0
- package/Modal/Drawer/index.js +12 -10
- package/Modal/MessageBox/MessageBoxContainer.js +1 -1
- package/Modal/MessageBox/index.js +2 -1
- package/PhoneField/CountryFlagComponent.js +2 -2
- package/PhoneField/UnknownFlag.d.ts +6 -3
- package/PhoneField/UnknownFlag.js +8 -31
- package/PhoneField/index.js +45 -55
- package/PhoneField/templates.js +13 -14
- package/PhoneField/usePhoneUtils.d.ts +15 -0
- package/PhoneField/usePhoneUtils.js +30 -37
- package/Popper/Popper.d.ts +30 -10
- package/Popper/Popper.js +9 -7
- package/Popper/usePopper.d.ts +21 -31
- package/Popper/usePopper.js +79 -46
- package/README.md +27 -10
- package/Radio/RadioBox.d.ts +14 -0
- package/Radio/RadioBox.js +100 -0
- package/Radio/RadioContainer.d.ts +27 -0
- package/Radio/RadioContainer.js +38 -0
- package/Radio/RadioTextWrapper.d.ts +4 -0
- package/Radio/RadioTextWrapper.js +29 -0
- package/Radio/index.d.ts +64 -0
- package/Radio/index.js +49 -0
- package/Radio/useRadioColor.d.ts +6 -0
- package/Radio/useRadioColor.js +33 -0
- package/RadioGroup/RadioGroupAsterisk.d.ts +13 -0
- package/RadioGroup/RadioGroupAsterisk.js +53 -0
- package/RadioGroup/RadioGroupContainer.d.ts +4 -0
- package/RadioGroup/RadioGroupContainer.js +36 -0
- package/RadioGroup/RadioGroupContext.d.ts +20 -0
- package/RadioGroup/RadioGroupContext.js +11 -0
- package/RadioGroup/RadioGroupErrorText.d.ts +6 -0
- package/RadioGroup/RadioGroupErrorText.js +76 -0
- package/RadioGroup/RadioGroupItems.d.ts +9 -0
- package/RadioGroup/RadioGroupItems.js +30 -0
- package/RadioGroup/RadioGroupLegend.d.ts +4 -0
- package/RadioGroup/RadioGroupLegend.js +37 -0
- package/RadioGroup/index.d.ts +134 -0
- package/RadioGroup/index.js +62 -0
- package/Selectbox/SelectboxMenu.d.ts +1 -1
- package/Selectbox/index.d.ts +18 -2
- package/Selectbox/index.js +32 -32
- package/Stack/index.d.ts +62 -0
- package/Stack/index.js +38 -0
- package/Surface/SurfaceContainer.js +6 -0
- package/Surface/index.js +7 -3
- package/Swiper/Swiper.d.ts +28 -2
- package/Swiper/Swiper.js +246 -91
- package/Swiper/SwiperContainer.js +0 -2
- package/Swiper/SwiperSlidesRenderer.d.ts +8 -0
- package/Swiper/SwiperSlidesRenderer.js +17 -14
- package/Swiper/SwiperTrack.d.ts +8 -0
- package/Swiper/SwiperTrack.js +8 -3
- package/Swiper/SwiperWrapper.js +9 -1
- package/Switch/SwitchContainer.d.ts +1 -1
- package/Switch/SwitchContainer.js +5 -5
- package/Switch/SwitchDot.js +13 -53
- package/Switch/SwitchToggleWrapper.d.ts +1 -1
- package/Switch/SwitchToggleWrapper.js +5 -6
- package/Switch/SwitchTrack.js +5 -41
- package/Switch/index.d.ts +4 -4
- package/Switch/index.js +21 -11
- package/Switch/useSwitchColor.d.ts +7 -0
- package/Switch/useSwitchColor.js +33 -0
- package/Table/Table.d.ts +6 -0
- package/Table/Table.js +7 -62
- package/Table/TableBody.d.ts +1 -1
- package/Table/TableBody.js +4 -2
- package/Table/TableCaption.d.ts +2 -2
- package/Table/TableCaption.js +2 -3
- package/Table/TableCell.js +2 -5
- package/Table/TableFooter.js +8 -7
- package/Table/TableHeader.js +6 -2
- package/Table/TableHeaderCell.js +8 -9
- package/Table/TableRow.js +1 -5
- package/TextArea/TextAreaIconWrapper.d.ts +1 -1
- package/TextArea/TextAreaInput.js +2 -0
- package/TextArea/index.js +7 -15
- package/TextField/TextFieldInput.js +2 -0
- package/TextField/TextFieldInputWrapper.d.ts +2 -0
- package/TextField/TextFieldInputWrapper.js +12 -2
- package/TextField/index.js +7 -19
- package/ThemeProvider/createTheme.js +2 -3
- package/ThemeProvider/index.d.ts +19 -2
- package/Typography/Base.d.ts +1 -1
- package/Typography/Base.js +1 -1
- package/Typography/Blockquote.js +1 -1
- package/Typography/Del.js +2 -2
- package/Typography/H4.js +1 -1
- package/Typography/H5.js +2 -2
- package/Typography/H6.d.ts +4 -0
- package/Typography/H6.js +28 -0
- package/Typography/SectionDescription.js +0 -1
- package/Typography/SectionTitle.d.ts +4 -7
- package/Typography/SectionTitle.js +26 -8
- package/Typography/index.d.ts +27 -0
- package/Typography/index.js +35 -0
- package/package.json +2 -4
- package/utils/TabManager.d.ts +7 -1
- package/utils/TabManager.js +39 -45
- package/utils/spacing.d.ts +11 -0
- package/utils/spacing.js +14 -0
- package/Autocomplete/OverrideMenuList.d.ts +0 -4
- package/Autocomplete/OverrideMenuList.js +0 -39
- package/Autocomplete2/Autocomplete2.d.ts +0 -12
- package/Autocomplete2/Autocomplete2.js +0 -83
- package/Autocomplete2/Autocomplete2TextField.d.ts +0 -7
- package/Autocomplete2/index.d.ts +0 -2
- package/Autocomplete2/index.js +0 -7
- package/CountryFlags/SwiperOverview.d.ts +0 -257
- package/CountryFlags/SwiperOverview.js +0 -524
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
+
var t = {};
|
|
4
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
+
t[p] = s[p];
|
|
6
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
+
t[p[i]] = s[p[i]];
|
|
10
|
+
}
|
|
11
|
+
return t;
|
|
12
|
+
};
|
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
const react_1 = __importDefault(require("react"));
|
|
18
|
+
const styled_1 = __importDefault(require("@emotion/styled"));
|
|
19
|
+
const react_2 = require("@emotion/react");
|
|
20
|
+
const Color_1 = __importDefault(require("../Color"));
|
|
21
|
+
const ButtonBase_1 = __importDefault(require("./ButtonBase"));
|
|
22
|
+
const ButtonGroupContext_1 = __importDefault(require("../ButtonGroup/ButtonGroupContext"));
|
|
23
|
+
const parseColor = (color, fallback) => {
|
|
24
|
+
try {
|
|
25
|
+
return Color_1.default.fromString(color);
|
|
26
|
+
}
|
|
27
|
+
catch (err) {
|
|
28
|
+
console.error(`invalid color value «${color}»`);
|
|
29
|
+
return fallback;
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Text and background colors of the standard variant
|
|
34
|
+
*/
|
|
35
|
+
const getStandardColors = (color, theme) => {
|
|
36
|
+
switch (true) {
|
|
37
|
+
case color === 'primary':
|
|
38
|
+
return { $color: theme.color.accentPrimaryContrast, $background: theme.color.accentPrimary };
|
|
39
|
+
case color === 'secondary':
|
|
40
|
+
return {
|
|
41
|
+
$color: theme.color.accentSecondaryContrast,
|
|
42
|
+
$background: theme.color.accentSecondary,
|
|
43
|
+
};
|
|
44
|
+
case typeof color === 'undefined':
|
|
45
|
+
case color === 'default':
|
|
46
|
+
return { $background: theme.color.surface, $color: theme.color.textPrimary };
|
|
47
|
+
default: {
|
|
48
|
+
const $background = parseColor(String(color), theme.color.surface);
|
|
49
|
+
return {
|
|
50
|
+
$background,
|
|
51
|
+
$color: $background.getContrast(theme.color.textPrimary) > 5
|
|
52
|
+
? theme.color.textPrimary
|
|
53
|
+
: theme.color.surface,
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
};
|
|
58
|
+
/**
|
|
59
|
+
* The main color of the outlined and plain variants (text and border)
|
|
60
|
+
*/
|
|
61
|
+
const getAccentColor = (color, theme) => {
|
|
62
|
+
switch (true) {
|
|
63
|
+
case color === 'primary':
|
|
64
|
+
return theme.color.accentPrimary;
|
|
65
|
+
case color === 'secondary':
|
|
66
|
+
return theme.color.accentSecondary;
|
|
67
|
+
case typeof color === 'undefined':
|
|
68
|
+
case color === 'default':
|
|
69
|
+
return theme.color.textPrimary;
|
|
70
|
+
default:
|
|
71
|
+
return parseColor(String(color), theme.color.textPrimary);
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
const focusOutlineColor = (color, theme) => color.rgbString() === theme.color.accentPrimary.rgbString()
|
|
75
|
+
? theme.color.textPrimary.toString()
|
|
76
|
+
: theme.color.accentPrimary.toString();
|
|
77
|
+
const standardStyles = ({ $color, $background, disabled, theme }) => (0, react_2.css) `
|
|
78
|
+
color: ${disabled ? $color.alpha(0.4).toString() : $color.toString()};
|
|
79
|
+
background-color: ${disabled
|
|
80
|
+
? $background.darken(40).toString()
|
|
81
|
+
: $background.darken(10).toString()};
|
|
82
|
+
|
|
83
|
+
${!disabled &&
|
|
84
|
+
(0, react_2.css) `
|
|
85
|
+
&:hover {
|
|
86
|
+
background-color: ${$background.darken(30).toString()};
|
|
87
|
+
}
|
|
88
|
+
&:active {
|
|
89
|
+
background-color: ${$background.darken(80).toString()};
|
|
90
|
+
}
|
|
91
|
+
&:focus-visible {
|
|
92
|
+
outline-style: solid;
|
|
93
|
+
outline-width: 0.14em;
|
|
94
|
+
outline-color: ${focusOutlineColor($background, theme)};
|
|
95
|
+
}
|
|
96
|
+
`}
|
|
97
|
+
`;
|
|
98
|
+
const outlinedStyles = ({ $color, disabled, theme }) => (0, react_2.css) `
|
|
99
|
+
color: ${disabled ? theme.color.textPrimary.alpha(0.4).toString() : $color.darken(30).toString()};
|
|
100
|
+
border-color: ${disabled
|
|
101
|
+
? theme.color.surface.darken(80).alpha(0.4).toString()
|
|
102
|
+
: $color.toString()};
|
|
103
|
+
background-color: transparent;
|
|
104
|
+
border-style: solid;
|
|
105
|
+
border-width: 0.14em;
|
|
106
|
+
|
|
107
|
+
${!disabled &&
|
|
108
|
+
(0, react_2.css) `
|
|
109
|
+
&:hover {
|
|
110
|
+
background-color: ${$color.darken(20).alpha(0.1).toString()};
|
|
111
|
+
}
|
|
112
|
+
&:active {
|
|
113
|
+
background-color: ${$color.darken(50).alpha(0.3).toString()};
|
|
114
|
+
}
|
|
115
|
+
&:focus-visible {
|
|
116
|
+
outline-color: ${focusOutlineColor($color, theme)};
|
|
117
|
+
}
|
|
118
|
+
`}
|
|
119
|
+
`;
|
|
120
|
+
const plainStyles = ({ $color, disabled, theme }) => (0, react_2.css) `
|
|
121
|
+
box-shadow: none;
|
|
122
|
+
color: ${disabled ? $color.alpha(0.4).toString() : $color.toString()};
|
|
123
|
+
background: none;
|
|
124
|
+
|
|
125
|
+
${!disabled &&
|
|
126
|
+
(0, react_2.css) `
|
|
127
|
+
&:hover {
|
|
128
|
+
color: ${$color.darken(30).toString()};
|
|
129
|
+
background-color: ${$color.alpha(0.1).toString()};
|
|
130
|
+
}
|
|
131
|
+
&:active {
|
|
132
|
+
color: ${$color.darken(80).toString()};
|
|
133
|
+
background-color: ${$color.alpha(0.3).toString()};
|
|
134
|
+
}
|
|
135
|
+
&:focus-visible {
|
|
136
|
+
outline-style: solid;
|
|
137
|
+
outline-width: 0.14em;
|
|
138
|
+
outline-color: ${focusOutlineColor($color, theme)};
|
|
139
|
+
}
|
|
140
|
+
`}
|
|
141
|
+
`;
|
|
142
|
+
/**
|
|
143
|
+
* Inside the ButtonGroup all the variants have the same border width, so the buttons have the same size
|
|
144
|
+
* and the selected (standard) button does not shrink. Two adjacent standard buttons are separated by a thin line
|
|
145
|
+
*/
|
|
146
|
+
const groupStyles = ({ $group, $variant, $color }) => $group &&
|
|
147
|
+
(0, react_2.css) `
|
|
148
|
+
border-style: solid;
|
|
149
|
+
border-width: 0.14em;
|
|
150
|
+
${$variant !== 'outlined' &&
|
|
151
|
+
(0, react_2.css) `
|
|
152
|
+
border-color: transparent;
|
|
153
|
+
`}
|
|
154
|
+
${$variant === 'standard' &&
|
|
155
|
+
(0, react_2.css) `
|
|
156
|
+
[data-group-variant='standard'] + & {
|
|
157
|
+
${$group === 'vertical' ? 'border-top-color' : 'border-left-color'}: ${$color
|
|
158
|
+
.alpha(0.25)
|
|
159
|
+
.toString()};
|
|
160
|
+
}
|
|
161
|
+
`}
|
|
162
|
+
`;
|
|
163
|
+
/**
|
|
164
|
+
* All the variants are one styled component: switching the variant (e.g. a toggle button)
|
|
165
|
+
* must not remount the element, otherwise the focused button loses the focus
|
|
166
|
+
*/
|
|
167
|
+
const StyledButton = (0, styled_1.default)(ButtonBase_1.default) `
|
|
168
|
+
${props => {
|
|
169
|
+
switch (props.$variant) {
|
|
170
|
+
case 'outlined':
|
|
171
|
+
return outlinedStyles(props);
|
|
172
|
+
case 'plain':
|
|
173
|
+
return plainStyles(props);
|
|
174
|
+
case 'standard':
|
|
175
|
+
default:
|
|
176
|
+
return standardStyles(props);
|
|
177
|
+
}
|
|
178
|
+
}}
|
|
179
|
+
${groupStyles}
|
|
180
|
+
`;
|
|
181
|
+
const ButtonStyled = (props, ref) => {
|
|
182
|
+
const group = react_1.default.useContext(ButtonGroupContext_1.default);
|
|
183
|
+
const { children, onClick } = props, buttonProps = __rest(props, ["children", "onClick"]);
|
|
184
|
+
const buttonValue = typeof buttonProps.value !== 'undefined' ? String(buttonProps.value) : undefined;
|
|
185
|
+
const isSelectable = Boolean((group === null || group === void 0 ? void 0 : group.selectable) && typeof buttonValue !== 'undefined');
|
|
186
|
+
const isSelected = isSelectable && Boolean(group === null || group === void 0 ? void 0 : group.isSelected(String(buttonValue)));
|
|
187
|
+
// Inside the ButtonGroup the own props of the button win over the props of the group
|
|
188
|
+
const { disabled = group === null || group === void 0 ? void 0 : group.disabled, color = isSelected ? group === null || group === void 0 ? void 0 : group.selectedColor : group === null || group === void 0 ? void 0 : group.color, variant = group ? (isSelected ? 'standard' : group.variant) : 'standard' } = buttonProps, restProps = __rest(buttonProps, ["disabled", "color", "variant"]);
|
|
189
|
+
const theme = (0, react_2.useTheme)();
|
|
190
|
+
const handleClick = event => {
|
|
191
|
+
onClick === null || onClick === void 0 ? void 0 : onClick(event);
|
|
192
|
+
if (isSelectable && !event.defaultPrevented && group) {
|
|
193
|
+
group.toggle(String(buttonValue));
|
|
194
|
+
}
|
|
195
|
+
};
|
|
196
|
+
const { $color, $background } = react_1.default.useMemo(() => {
|
|
197
|
+
if (variant === 'standard') {
|
|
198
|
+
return getStandardColors(color, theme);
|
|
199
|
+
}
|
|
200
|
+
const accent = getAccentColor(color, theme);
|
|
201
|
+
return { $color: accent, $background: accent };
|
|
202
|
+
}, [color, variant, theme]);
|
|
203
|
+
return (react_1.default.createElement(StyledButton, Object.assign({ "$variant": variant, "$color": $color, "$background": $background, "$group": group === null || group === void 0 ? void 0 : group.orientation, "data-group-variant": group ? variant : undefined, disabled: disabled, "aria-pressed": isSelectable ? isSelected : undefined }, restProps, { onClick: handleClick, ref: ref }), children));
|
|
204
|
+
};
|
|
205
|
+
exports.default = react_1.default.forwardRef(ButtonStyled);
|
package/Button/index.d.ts
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { ButtonStandardProps } from './ButtonStandard';
|
|
3
|
-
import { ButtonOutlinedProps } from './ButtonOutlined';
|
|
4
|
-
import { ButtonPlainProps } from './ButtonPlain';
|
|
2
|
+
import type { ButtonStandardProps } from './ButtonStandard';
|
|
3
|
+
import type { ButtonOutlinedProps } from './ButtonOutlined';
|
|
4
|
+
import type { ButtonPlainProps } from './ButtonPlain';
|
|
5
5
|
export type ButtonProps = (ButtonStandardProps | ButtonOutlinedProps | ButtonPlainProps) & {
|
|
6
6
|
/**
|
|
7
7
|
* Button style variant\
|
|
8
|
-
* Allowed variants: `standard`
|
|
8
|
+
* Allowed variants: `standard`, `outlined` or `plain`\
|
|
9
9
|
* \
|
|
10
10
|
* **Default**: `standard`
|
|
11
11
|
*/
|
|
@@ -14,7 +14,7 @@ export type ButtonProps = (ButtonStandardProps | ButtonOutlinedProps | ButtonPla
|
|
|
14
14
|
declare const _default: React.ForwardRefExoticComponent<import("./ButtonBase").ButtonBaseProps & {
|
|
15
15
|
/**
|
|
16
16
|
* Button style variant\
|
|
17
|
-
* Allowed variants: `standard`
|
|
17
|
+
* Allowed variants: `standard`, `outlined` or `plain`\
|
|
18
18
|
* \
|
|
19
19
|
* **Default**: `standard`
|
|
20
20
|
*/
|
package/Button/index.js
CHANGED
|
@@ -1,31 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
-
var t = {};
|
|
4
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
-
t[p] = s[p];
|
|
6
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
-
t[p[i]] = s[p[i]];
|
|
10
|
-
}
|
|
11
|
-
return t;
|
|
12
|
-
};
|
|
13
2
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
4
|
};
|
|
16
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
6
|
const react_1 = __importDefault(require("react"));
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
const
|
|
21
|
-
const Button = (props, ref) => {
|
|
22
|
-
const { variant } = props, buttonProps = __rest(props, ["variant"]);
|
|
23
|
-
if (variant === 'outlined') {
|
|
24
|
-
return react_1.default.createElement(ButtonOutlined_1.default, Object.assign({}, buttonProps, { ref: ref }));
|
|
25
|
-
}
|
|
26
|
-
if (variant === 'plain') {
|
|
27
|
-
return react_1.default.createElement(ButtonPlain_1.default, Object.assign({}, buttonProps, { ref: ref }));
|
|
28
|
-
}
|
|
29
|
-
return react_1.default.createElement(ButtonStandard_1.default, Object.assign({}, buttonProps, { ref: ref }));
|
|
30
|
-
};
|
|
7
|
+
const ButtonStyled_1 = __importDefault(require("./ButtonStyled"));
|
|
8
|
+
// One component for all the variants, so changing the variant does not remount the button
|
|
9
|
+
const Button = (props, ref) => (react_1.default.createElement(ButtonStyled_1.default, Object.assign({}, props, { ref: ref })));
|
|
31
10
|
exports.default = react_1.default.forwardRef(Button);
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ButtonVariant } from '../Button/ButtonStyled';
|
|
3
|
+
export type ButtonGroupOrientation = 'horizontal' | 'vertical';
|
|
4
|
+
export type ButtonGroupContextValue = {
|
|
5
|
+
readonly variant: ButtonVariant;
|
|
6
|
+
readonly color?: string;
|
|
7
|
+
readonly selectedColor: string;
|
|
8
|
+
readonly disabled?: boolean;
|
|
9
|
+
readonly orientation: ButtonGroupOrientation;
|
|
10
|
+
/**
|
|
11
|
+
* `true` when the group has the selection (value, defaultValue or onChange is passed)
|
|
12
|
+
*/
|
|
13
|
+
readonly selectable: boolean;
|
|
14
|
+
readonly isSelected: (value: string) => boolean;
|
|
15
|
+
readonly toggle: (value: string) => void;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Buttons inside the ButtonGroup read the common props and the selection from this context
|
|
19
|
+
*/
|
|
20
|
+
declare const ButtonGroupContext: React.Context<ButtonGroupContextValue | null>;
|
|
21
|
+
export default ButtonGroupContext;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const react_1 = __importDefault(require("react"));
|
|
7
|
+
/**
|
|
8
|
+
* Buttons inside the ButtonGroup read the common props and the selection from this context
|
|
9
|
+
*/
|
|
10
|
+
const ButtonGroupContext = react_1.default.createContext(null);
|
|
11
|
+
exports.default = ButtonGroupContext;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ButtonVariant } from '../Button/ButtonStyled';
|
|
3
|
+
import { ButtonGroupOrientation } from './ButtonGroupContext';
|
|
4
|
+
export type { ButtonGroupOrientation };
|
|
5
|
+
type ButtonGroupSelectionSingle = {
|
|
6
|
+
/**
|
|
7
|
+
* Only one button can be selected
|
|
8
|
+
*/
|
|
9
|
+
readonly multiple?: false;
|
|
10
|
+
/**
|
|
11
|
+
* The value of the selected button (controlled)
|
|
12
|
+
*/
|
|
13
|
+
readonly value?: string | null;
|
|
14
|
+
/**
|
|
15
|
+
* The value of the initially selected button (uncontrolled)
|
|
16
|
+
*/
|
|
17
|
+
readonly defaultValue?: string | null;
|
|
18
|
+
/**
|
|
19
|
+
* Called with the value of the new selected button
|
|
20
|
+
*/
|
|
21
|
+
readonly onChange?: (value: string | null) => void;
|
|
22
|
+
};
|
|
23
|
+
type ButtonGroupSelectionMultiple = {
|
|
24
|
+
/**
|
|
25
|
+
* Several buttons can be selected
|
|
26
|
+
*/
|
|
27
|
+
readonly multiple: true;
|
|
28
|
+
/**
|
|
29
|
+
* The values of the selected buttons (controlled)
|
|
30
|
+
*/
|
|
31
|
+
readonly value?: readonly string[];
|
|
32
|
+
/**
|
|
33
|
+
* The values of the initially selected buttons (uncontrolled)
|
|
34
|
+
*/
|
|
35
|
+
readonly defaultValue?: readonly string[];
|
|
36
|
+
/**
|
|
37
|
+
* Called with the values of the selected buttons
|
|
38
|
+
*/
|
|
39
|
+
readonly onChange?: (value: string[]) => void;
|
|
40
|
+
};
|
|
41
|
+
export type ButtonGroupProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'onChange' | 'defaultValue' | 'color'> & (ButtonGroupSelectionSingle | ButtonGroupSelectionMultiple) & {
|
|
42
|
+
/**
|
|
43
|
+
* The variant of the buttons. In the selection mode — of the not selected buttons\
|
|
44
|
+
* **Default:** `outlined`
|
|
45
|
+
*/
|
|
46
|
+
readonly variant?: ButtonVariant;
|
|
47
|
+
/**
|
|
48
|
+
* The color of the buttons. In the selection mode — of the not selected buttons\
|
|
49
|
+
* **Default:** `default`
|
|
50
|
+
*/
|
|
51
|
+
readonly color?: 'default' | 'primary' | 'secondary' | string;
|
|
52
|
+
/**
|
|
53
|
+
* The color of the selected buttons. The selected button is always the `standard` variant\
|
|
54
|
+
* **Default:** `primary`
|
|
55
|
+
*/
|
|
56
|
+
readonly selectedColor?: 'default' | 'primary' | 'secondary' | string;
|
|
57
|
+
/**
|
|
58
|
+
* Disables all the buttons
|
|
59
|
+
*/
|
|
60
|
+
readonly disabled?: boolean;
|
|
61
|
+
/**
|
|
62
|
+
* **Default:** `horizontal`
|
|
63
|
+
*/
|
|
64
|
+
readonly orientation?: ButtonGroupOrientation;
|
|
65
|
+
/**
|
|
66
|
+
* The group takes the full width, the buttons share it equally
|
|
67
|
+
*/
|
|
68
|
+
readonly fullWidth?: boolean;
|
|
69
|
+
/**
|
|
70
|
+
* Single selection only: clicking the selected button clears the selection\
|
|
71
|
+
* **Default:** `false`
|
|
72
|
+
*/
|
|
73
|
+
readonly deselectable?: boolean;
|
|
74
|
+
};
|
|
75
|
+
declare const _default: React.ForwardRefExoticComponent<ButtonGroupProps & React.RefAttributes<HTMLDivElement>>;
|
|
76
|
+
export default _default;
|
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
+
var t = {};
|
|
4
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
+
t[p] = s[p];
|
|
6
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
+
t[p[i]] = s[p[i]];
|
|
10
|
+
}
|
|
11
|
+
return t;
|
|
12
|
+
};
|
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
const react_1 = __importDefault(require("react"));
|
|
18
|
+
const styled_1 = __importDefault(require("@emotion/styled"));
|
|
19
|
+
const react_2 = require("@emotion/react");
|
|
20
|
+
const ButtonGroupContext_1 = __importDefault(require("./ButtonGroupContext"));
|
|
21
|
+
/**
|
|
22
|
+
* The buttons are glued: the inner corners are square and the borders overlap.
|
|
23
|
+
* `:not(...)` raises the specificity above the own styles of the button.
|
|
24
|
+
* `-of-type`, not `-child`: with SSR emotion inserts <style> elements between the children
|
|
25
|
+
*/
|
|
26
|
+
const StyledGroup = styled_1.default.div `
|
|
27
|
+
display: ${({ $fullWidth }) => ($fullWidth ? 'flex' : 'inline-flex')};
|
|
28
|
+
flex-direction: ${({ $orientation }) => ($orientation === 'vertical' ? 'column' : 'row')};
|
|
29
|
+
vertical-align: middle;
|
|
30
|
+
|
|
31
|
+
& > * {
|
|
32
|
+
position: relative;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
& > *:hover,
|
|
36
|
+
& > [aria-pressed='true'] {
|
|
37
|
+
z-index: 1;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
& > *:focus-visible {
|
|
41
|
+
z-index: 2;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
${({ $orientation }) => $orientation === 'vertical'
|
|
45
|
+
? (0, react_2.css) `
|
|
46
|
+
& > *:not(:first-of-type) {
|
|
47
|
+
margin-top: -0.14em;
|
|
48
|
+
border-top-left-radius: 0;
|
|
49
|
+
border-top-right-radius: 0;
|
|
50
|
+
}
|
|
51
|
+
& > *:not(:last-of-type) {
|
|
52
|
+
border-bottom-left-radius: 0;
|
|
53
|
+
border-bottom-right-radius: 0;
|
|
54
|
+
}
|
|
55
|
+
`
|
|
56
|
+
: (0, react_2.css) `
|
|
57
|
+
& > *:not(:first-of-type) {
|
|
58
|
+
margin-left: -0.14em;
|
|
59
|
+
border-top-left-radius: 0;
|
|
60
|
+
border-bottom-left-radius: 0;
|
|
61
|
+
}
|
|
62
|
+
& > *:not(:last-of-type) {
|
|
63
|
+
border-top-right-radius: 0;
|
|
64
|
+
border-bottom-right-radius: 0;
|
|
65
|
+
}
|
|
66
|
+
`}
|
|
67
|
+
|
|
68
|
+
${({ $fullWidth, $orientation }) => $fullWidth &&
|
|
69
|
+
(0, react_2.css) `
|
|
70
|
+
& > * {
|
|
71
|
+
${$orientation === 'vertical' ? 'width: 100%;' : 'flex: 1 1 0; justify-content: center;'}
|
|
72
|
+
}
|
|
73
|
+
`}
|
|
74
|
+
`;
|
|
75
|
+
const toArray = (value) => {
|
|
76
|
+
if (typeof value === 'undefined' || value === null) {
|
|
77
|
+
return [];
|
|
78
|
+
}
|
|
79
|
+
return typeof value === 'string' ? [value] : value;
|
|
80
|
+
};
|
|
81
|
+
const ButtonGroup = (props, ref) => {
|
|
82
|
+
const { children, multiple, value, defaultValue, onChange, variant = 'outlined', color, selectedColor = 'primary', disabled, orientation = 'horizontal', fullWidth = false, deselectable = false } = props, nativeProps = __rest(props, ["children", "multiple", "value", "defaultValue", "onChange", "variant", "color", "selectedColor", "disabled", "orientation", "fullWidth", "deselectable"]);
|
|
83
|
+
const selectable = typeof value !== 'undefined' ||
|
|
84
|
+
typeof defaultValue !== 'undefined' ||
|
|
85
|
+
typeof onChange !== 'undefined';
|
|
86
|
+
const isControlled = typeof value !== 'undefined';
|
|
87
|
+
const [internalValue, setInternalValue] = react_1.default.useState(() => toArray(defaultValue));
|
|
88
|
+
const selected = isControlled ? toArray(value) : internalValue;
|
|
89
|
+
// The latest values for the toggle callback, so the context value does not change on every render
|
|
90
|
+
const latest = react_1.default.useRef({ selected, multiple, deselectable, isControlled, onChange });
|
|
91
|
+
latest.current = { selected, multiple, deselectable, isControlled, onChange };
|
|
92
|
+
const toggle = react_1.default.useCallback((buttonValue) => {
|
|
93
|
+
var _a;
|
|
94
|
+
const { selected, multiple, deselectable, isControlled, onChange } = latest.current;
|
|
95
|
+
const isSelected = selected.includes(buttonValue);
|
|
96
|
+
let next;
|
|
97
|
+
if (multiple) {
|
|
98
|
+
next = isSelected
|
|
99
|
+
? selected.filter(item => item !== buttonValue)
|
|
100
|
+
: [...selected, buttonValue];
|
|
101
|
+
}
|
|
102
|
+
else {
|
|
103
|
+
if (isSelected && !deselectable) {
|
|
104
|
+
return;
|
|
105
|
+
}
|
|
106
|
+
next = isSelected ? [] : [buttonValue];
|
|
107
|
+
}
|
|
108
|
+
if (!isControlled) {
|
|
109
|
+
setInternalValue(next);
|
|
110
|
+
}
|
|
111
|
+
if (multiple) {
|
|
112
|
+
onChange === null || onChange === void 0 ? void 0 : onChange([...next]);
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
onChange === null || onChange === void 0 ? void 0 : onChange((_a = next[0]) !== null && _a !== void 0 ? _a : null);
|
|
116
|
+
}
|
|
117
|
+
}, []);
|
|
118
|
+
const selectedKey = selected.join('\u0000');
|
|
119
|
+
const contextValue = react_1.default.useMemo(() => ({
|
|
120
|
+
variant,
|
|
121
|
+
color,
|
|
122
|
+
selectedColor,
|
|
123
|
+
disabled,
|
|
124
|
+
orientation,
|
|
125
|
+
selectable,
|
|
126
|
+
isSelected: buttonValue => selectedKey !== '' && selectedKey.split('\u0000').includes(buttonValue),
|
|
127
|
+
toggle,
|
|
128
|
+
}), [variant, color, selectedColor, disabled, orientation, selectable, selectedKey, toggle]);
|
|
129
|
+
return (react_1.default.createElement(ButtonGroupContext_1.default.Provider, { value: contextValue },
|
|
130
|
+
react_1.default.createElement(StyledGroup, Object.assign({ role: "group" }, nativeProps, { "$orientation": orientation, "$fullWidth": fullWidth, ref: ref }), children)));
|
|
131
|
+
};
|
|
132
|
+
exports.default = react_1.default.forwardRef(ButtonGroup);
|