@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
|
@@ -51,11 +51,11 @@ const StyledDrawerCloseButton = (0, styled_1.default)(Button_1.default) `
|
|
|
51
51
|
cursor: pointer;
|
|
52
52
|
`;
|
|
53
53
|
const DrawerHeader = (props, ref) => {
|
|
54
|
-
const { header, children, showCloseButton, onRequestClose } = props, nativeProps = __rest(props, ["header", "children", "showCloseButton", "onRequestClose"]);
|
|
54
|
+
const { header, children, showCloseButton, closeButtonLabel = 'Close', dialogID, onRequestClose } = props, nativeProps = __rest(props, ["header", "children", "showCloseButton", "closeButtonLabel", "dialogID", "onRequestClose"]);
|
|
55
55
|
return (react_1.default.createElement(StyledDrawerHeader, Object.assign({}, nativeProps, { ref: ref }),
|
|
56
|
-
typeof header !== 'undefined' && react_1.default.createElement(DrawerTitle,
|
|
56
|
+
typeof header !== 'undefined' && (react_1.default.createElement(DrawerTitle, { id: dialogID ? `${dialogID}-title` : undefined }, header)),
|
|
57
57
|
typeof children !== 'undefined' && react_1.default.createElement(DrawerToolbar, null, children),
|
|
58
|
-
typeof onRequestClose === 'function' && showCloseButton && (react_1.default.createElement(StyledDrawerCloseButton, { type: "button", "$withToolbar":
|
|
58
|
+
typeof onRequestClose === 'function' && showCloseButton && (react_1.default.createElement(StyledDrawerCloseButton, { type: "button", "$withToolbar": typeof children !== 'undefined' && children !== null, "aria-label": closeButtonLabel, onClick: onRequestClose },
|
|
59
59
|
react_1.default.createElement(DrawerCloseIcon_1.default, null)))));
|
|
60
60
|
};
|
|
61
61
|
exports.default = react_1.default.forwardRef(DrawerHeader);
|
|
@@ -30,6 +30,8 @@ const StyledDrawerBottomInner = (0, styled_1.default)(ModalInner_1.default) `
|
|
|
30
30
|
flex-direction: column;
|
|
31
31
|
z-index: ${({ theme }) => theme.zIndex.modal};
|
|
32
32
|
background-color: ${({ theme }) => theme.color.surface.toString()};
|
|
33
|
+
/* Only the corners facing the page are rounded: the others touch the edge of the window */
|
|
34
|
+
border-radius: 0;
|
|
33
35
|
border-top-left-radius: ${({ theme }) => theme.shape.radiusFactor * 2}em;
|
|
34
36
|
border-top-right-radius: ${({ theme }) => theme.shape.radiusFactor * 2}em;
|
|
35
37
|
transition:
|
|
@@ -56,6 +58,8 @@ const StyledDrawerTopInner = (0, styled_1.default)(ModalInner_1.default) `
|
|
|
56
58
|
flex-direction: column;
|
|
57
59
|
z-index: ${({ theme }) => theme.zIndex.modal};
|
|
58
60
|
background-color: ${({ theme }) => theme.color.surface.toString()};
|
|
61
|
+
/* Only the corners facing the page are rounded: the others touch the edge of the window */
|
|
62
|
+
border-radius: 0;
|
|
59
63
|
border-bottom-left-radius: ${({ theme }) => theme.shape.radiusFactor * 2}em;
|
|
60
64
|
border-bottom-right-radius: ${({ theme }) => theme.shape.radiusFactor * 2}em;
|
|
61
65
|
transition:
|
|
@@ -82,6 +86,8 @@ const StyledDrawerRightInner = (0, styled_1.default)(ModalInner_1.default) `
|
|
|
82
86
|
flex-direction: column;
|
|
83
87
|
z-index: ${({ theme }) => theme.zIndex.modal};
|
|
84
88
|
background-color: ${({ theme }) => theme.color.surface.toString()};
|
|
89
|
+
/* Only the corners facing the page are rounded: the others touch the edge of the window */
|
|
90
|
+
border-radius: 0;
|
|
85
91
|
border-top-left-radius: ${({ theme }) => theme.shape.radiusFactor * 2}em;
|
|
86
92
|
border-bottom-left-radius: ${({ theme }) => theme.shape.radiusFactor * 2}em;
|
|
87
93
|
transition:
|
|
@@ -108,6 +114,8 @@ const StyledDrawerLeftInner = (0, styled_1.default)(ModalInner_1.default) `
|
|
|
108
114
|
flex-direction: column;
|
|
109
115
|
z-index: ${({ theme }) => theme.zIndex.modal};
|
|
110
116
|
background-color: ${({ theme }) => theme.color.surface.toString()};
|
|
117
|
+
/* Only the corners facing the page are rounded: the others touch the edge of the window */
|
|
118
|
+
border-radius: 0;
|
|
111
119
|
border-top-right-radius: ${({ theme }) => theme.shape.radiusFactor * 2}em;
|
|
112
120
|
border-bottom-right-radius: ${({ theme }) => theme.shape.radiusFactor * 2}em;
|
|
113
121
|
transition:
|
|
@@ -137,6 +145,6 @@ const DrawerInner = (props, ref) => {
|
|
|
137
145
|
return StyledDrawerBottomInner;
|
|
138
146
|
}
|
|
139
147
|
}, [anchor]);
|
|
140
|
-
return (react_1.default.createElement(Element, Object.assign({ isOpen: isOpen, id: `${dialogID}-description`, onRequestClose: onRequestClose }, nativeProps, { ref: ref }), children));
|
|
148
|
+
return (react_1.default.createElement(Element, Object.assign({ role: "dialog", "aria-modal": "true", isOpen: isOpen, id: `${dialogID}-description`, onRequestClose: onRequestClose }, nativeProps, { ref: ref }), children));
|
|
141
149
|
};
|
|
142
150
|
exports.default = react_1.default.forwardRef(DrawerInner);
|
package/Modal/Drawer/index.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ import { DrawerHeaderProps } from './DrawerHeader';
|
|
|
6
6
|
import { DrawerContentProps } from './DrawerContent';
|
|
7
7
|
import { DrawerFooterProps } from './DrawerFooter';
|
|
8
8
|
import { ModalOverlayProps } from '../BaseModal/ModalOverlay';
|
|
9
|
+
export type { AnchorVariant } from './DrawerInner';
|
|
9
10
|
export interface DrawerProps extends Omit<BaseModalProps, 'overrides'> {
|
|
10
11
|
/**
|
|
11
12
|
* Drawer position\
|
|
@@ -34,6 +35,12 @@ export interface DrawerProps extends Omit<BaseModalProps, 'overrides'> {
|
|
|
34
35
|
* Display close button in the header
|
|
35
36
|
*/
|
|
36
37
|
readonly showCloseButton?: boolean;
|
|
38
|
+
/**
|
|
39
|
+
* Accessible label of the close button (it contains only an icon)\
|
|
40
|
+
* \
|
|
41
|
+
* **Default**: `'Close'`
|
|
42
|
+
*/
|
|
43
|
+
readonly closeButtonLabel?: string;
|
|
37
44
|
/**
|
|
38
45
|
* Overridable components map
|
|
39
46
|
*/
|
package/Modal/Drawer/index.js
CHANGED
|
@@ -45,13 +45,20 @@ const DrawerHeader_1 = __importDefault(require("./DrawerHeader"));
|
|
|
45
45
|
const DrawerContent_1 = __importDefault(require("./DrawerContent"));
|
|
46
46
|
const DrawerFooter_1 = __importDefault(require("./DrawerFooter"));
|
|
47
47
|
const ModalOverlay_1 = __importDefault(require("../BaseModal/ModalOverlay"));
|
|
48
|
+
const useDialogID_1 = __importDefault(require("../BaseModal/useDialogID"));
|
|
48
49
|
const Drawer = props => {
|
|
49
|
-
const { children, onRequestClose, showCloseButton, header, anchor, toolbar, footer, overrides } = props, otherProps = __rest(props, ["children", "onRequestClose", "showCloseButton", "header", "anchor", "toolbar", "footer", "overrides"]);
|
|
50
|
+
const { children, onRequestClose, showCloseButton, header, closeButtonLabel, anchor, toolbar, footer, overrides } = props, otherProps = __rest(props, ["children", "onRequestClose", "showCloseButton", "header", "closeButtonLabel", "anchor", "toolbar", "footer", "overrides"]);
|
|
50
51
|
const hasFooter = React.useMemo(() => typeof footer !== 'undefined' && footer !== null, [footer]);
|
|
51
52
|
const hasHeader = React.useMemo(() => typeof header !== 'undefined' ||
|
|
52
53
|
typeof toolbar !== 'undefined' ||
|
|
53
54
|
typeof showCloseButton !== 'undefined', [showCloseButton, header, toolbar]);
|
|
54
|
-
const dialogID =
|
|
55
|
+
const dialogID = (0, useDialogID_1.default)('drawer');
|
|
56
|
+
const hasTitle = typeof header !== 'undefined' && header !== null;
|
|
57
|
+
// Created once: a component created during the render is a new type on every render,
|
|
58
|
+
// so React would remount the whole drawer content (inputs lose the focus and the state)
|
|
59
|
+
const Inner = React.useMemo(() => React.forwardRef(function Inner(innerProps, ref) {
|
|
60
|
+
return (React.createElement(DrawerInner_1.default, Object.assign({ anchor: anchor, dialogID: dialogID, "aria-labelledby": hasTitle ? `${dialogID}-title` : undefined, ref: ref }, innerProps)));
|
|
61
|
+
}), [anchor, dialogID, hasTitle]);
|
|
55
62
|
const overridesMap = React.useMemo(() => ({
|
|
56
63
|
Container: (overrides === null || overrides === void 0 ? void 0 : overrides.Container) || DrawerContainer_1.default,
|
|
57
64
|
Header: (overrides === null || overrides === void 0 ? void 0 : overrides.Header) || DrawerHeader_1.default,
|
|
@@ -59,16 +66,11 @@ const Drawer = props => {
|
|
|
59
66
|
Footer: (overrides === null || overrides === void 0 ? void 0 : overrides.Footer) || DrawerFooter_1.default,
|
|
60
67
|
Overlay: (overrides === null || overrides === void 0 ? void 0 : overrides.Overlay) || ModalOverlay_1.default,
|
|
61
68
|
}), [overrides]);
|
|
69
|
+
const modalOverrides = React.useMemo(() => ({ Overlay: overridesMap.Overlay, Inner }), [overridesMap.Overlay, Inner]);
|
|
62
70
|
return (React.createElement(React.Fragment, null,
|
|
63
|
-
React.createElement(BaseModal_1.default, Object.assign({ onRequestClose: onRequestClose }, otherProps, { overrides:
|
|
64
|
-
Overlay: overridesMap.Overlay,
|
|
65
|
-
Inner: React.forwardRef(function Inner(props, ref) {
|
|
66
|
-
const { children } = props;
|
|
67
|
-
return (React.createElement(DrawerInner_1.default, Object.assign({ anchor: anchor, dialogID: dialogID, ref: ref }, props), children));
|
|
68
|
-
}),
|
|
69
|
-
} }),
|
|
71
|
+
React.createElement(BaseModal_1.default, Object.assign({ onRequestClose: onRequestClose }, otherProps, { overrides: modalOverrides }),
|
|
70
72
|
React.createElement(overridesMap.Container, { anchor: anchor },
|
|
71
|
-
hasHeader && (React.createElement(overridesMap.Header, { showCloseButton: showCloseButton, header: header, onRequestClose: onRequestClose }, toolbar)),
|
|
73
|
+
hasHeader && (React.createElement(overridesMap.Header, { showCloseButton: showCloseButton, closeButtonLabel: closeButtonLabel, dialogID: dialogID, header: header, onRequestClose: onRequestClose }, toolbar)),
|
|
72
74
|
React.createElement(overridesMap.Content, { anchor: anchor }, children),
|
|
73
75
|
hasFooter && React.createElement(overridesMap.Footer, { anchor: anchor }, footer)))));
|
|
74
76
|
};
|
|
@@ -23,6 +23,6 @@ const Container = styled_1.default.div `
|
|
|
23
23
|
`;
|
|
24
24
|
const MessageBoxContainer = (props, ref) => {
|
|
25
25
|
const { children, dialogID } = props, nativeProps = __rest(props, ["children", "dialogID"]);
|
|
26
|
-
return (react_1.default.createElement(Container, Object.assign({ role: "modal
|
|
26
|
+
return (react_1.default.createElement(Container, Object.assign({ role: "dialog", "aria-modal": "true", "aria-labelledby": `${dialogID}-title`, "aria-describedby": `${dialogID}-description` }, nativeProps, { ref: ref }), children));
|
|
27
27
|
};
|
|
28
28
|
exports.default = react_1.default.forwardRef(MessageBoxContainer);
|
|
@@ -44,9 +44,10 @@ const MessageBoxContent_1 = __importDefault(require("./MessageBoxContent"));
|
|
|
44
44
|
const MessageBoxFooter_1 = __importDefault(require("./MessageBoxFooter"));
|
|
45
45
|
const MessageBoxHeader_1 = __importDefault(require("./MessageBoxHeader"));
|
|
46
46
|
const ModalOverlay_1 = __importDefault(require("../BaseModal/ModalOverlay"));
|
|
47
|
+
const useDialogID_1 = __importDefault(require("../BaseModal/useDialogID"));
|
|
47
48
|
const MessageBox = props => {
|
|
48
49
|
const { header, children, onRequestClose, overrides, okButtonLabel, isOpen } = props, otherProps = __rest(props, ["header", "children", "onRequestClose", "overrides", "okButtonLabel", "isOpen"]);
|
|
49
|
-
const dialogID =
|
|
50
|
+
const dialogID = (0, useDialogID_1.default)('dialog-message');
|
|
50
51
|
const buttonRef = React.useRef(null);
|
|
51
52
|
React.useEffect(() => {
|
|
52
53
|
setTimeout(() => {
|
|
@@ -16,7 +16,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
17
|
const react_1 = __importDefault(require("react"));
|
|
18
18
|
const styled_1 = __importDefault(require("@emotion/styled"));
|
|
19
|
-
const
|
|
19
|
+
const Unknown_1 = __importDefault(require("../CountryFlags/Unknown"));
|
|
20
20
|
const CountryFlagContainer = styled_1.default.span `
|
|
21
21
|
display: flex;
|
|
22
22
|
align-items: center;
|
|
@@ -39,6 +39,6 @@ const CountryFlagContainer = styled_1.default.span `
|
|
|
39
39
|
`;
|
|
40
40
|
const CountryFlagComponent = props => {
|
|
41
41
|
const { flag } = props, otherProps = __rest(props, ["flag"]);
|
|
42
|
-
return (react_1.default.createElement(CountryFlagContainer, Object.assign({}, otherProps), typeof flag === 'undefined' || flag === null ? react_1.default.createElement(
|
|
42
|
+
return (react_1.default.createElement(CountryFlagContainer, Object.assign({}, otherProps), typeof flag === 'undefined' || flag === null ? react_1.default.createElement(Unknown_1.default, null) : flag));
|
|
43
43
|
};
|
|
44
44
|
exports.default = CountryFlagComponent;
|
|
@@ -1,3 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
1
|
+
/// <reference types="react" />
|
|
2
|
+
/**
|
|
3
|
+
* @deprecated Use `Unknown` from `@via-profit/ui-kit/CountryFlags/Unknown`
|
|
4
|
+
*/
|
|
5
|
+
declare const UnknownFlag: import("react").ForwardRefExoticComponent<Omit<import("react").SVGProps<SVGSVGElement>, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
|
|
6
|
+
export default UnknownFlag;
|
|
@@ -1,34 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var
|
|
3
|
-
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
-
if (mod && mod.__esModule) return mod;
|
|
20
|
-
var result = {};
|
|
21
|
-
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
-
__setModuleDefault(result, mod);
|
|
23
|
-
return result;
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
24
4
|
};
|
|
25
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
const
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
React.createElement("path", { transform: "translate(78.682 31.951)", d: "m177.32 288.09q-4.915 0-8.0953-3.1803-3.1803-3.4694-3.1803-8.3844 0-11.854 5.7824-25.153 5.7823-13.299 15.612-22.551l7.2279-6.6497q9.83-9.2518 15.323-15.323 5.4932-6.3606 8.9626-15.034 3.7585-8.9626 3.7585-20.527 0-11.276-5.4932-20.527-5.4932-9.5409-15.612-15.034-10.119-5.4932-23.129-5.4932-21.395 0-34.116 13.01-12.432 12.721-12.432 33.248 0 4.915-3.1803 8.0953-2.8912 2.8912-7.8062 2.8912t-8.0953-2.8912q-3.1803-3.1803-3.1803-8.0953 0-19.66 8.6735-34.983 8.6735-15.323 24.286-23.997 15.612-8.6735 35.851-8.6735 19.082 0 34.116 8.3844 15.323 8.0953 23.708 22.551 8.6735 14.456 8.6735 32.67 0 14.167-4.6259 24.864-4.6259 10.408-11.854 18.503-6.9388 8.0953-19.949 19.949l-5.2041 4.6259q-8.0953 7.2279-11.565 17.058-3.1803 9.5409-3.1803 19.082 0 4.915-3.1803 8.3844-3.1803 3.1803-8.0953 3.1803zm0 51.174q-7.2279 0-12.143-4.915-4.6259-4.915-4.6259-11.854 0-7.2279 4.915-12.143 4.915-4.915 11.854-4.915t11.854 4.915q5.2041 4.915 5.2041 12.143 0 6.9388-5.2041 11.854-4.915 4.915-11.854 4.915z", fill: color.textPrimary.toString(), strokeWidth: ".72279" })));
|
|
33
|
-
};
|
|
34
|
-
exports.default = React.forwardRef(UnknownFlag);
|
|
6
|
+
const Unknown_1 = __importDefault(require("../CountryFlags/Unknown"));
|
|
7
|
+
/**
|
|
8
|
+
* @deprecated Use `Unknown` from `@via-profit/ui-kit/CountryFlags/Unknown`
|
|
9
|
+
*/
|
|
10
|
+
const UnknownFlag = Unknown_1.default;
|
|
11
|
+
exports.default = UnknownFlag;
|
package/PhoneField/index.js
CHANGED
|
@@ -29,71 +29,61 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
29
29
|
};
|
|
30
30
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
31
31
|
const react_1 = __importDefault(require("react"));
|
|
32
|
-
const
|
|
32
|
+
const MaskedField_1 = __importDefault(require("../MaskedField"));
|
|
33
33
|
const usePhoneUtils_1 = require("./usePhoneUtils");
|
|
34
34
|
const CountryFlagComponent_1 = __importDefault(require("./CountryFlagComponent"));
|
|
35
35
|
const PhoneField = (props, ref) => {
|
|
36
|
+
var _a, _b;
|
|
36
37
|
const { value, templates, inputRef, withoutCountryFlag, onChange } = props, textFieldProps = __rest(props, ["value", "templates", "inputRef", "withoutCountryFlag", "onChange"]);
|
|
37
|
-
const {
|
|
38
|
+
const { parseInput, parseAndFormat, getTemplateInfo } = (0, usePhoneUtils_1.usePhoneUtils)({ templates });
|
|
38
39
|
const textInputRef = react_1.default.useRef(null);
|
|
39
|
-
|
|
40
|
-
const [
|
|
41
|
-
|
|
42
|
-
return {
|
|
43
|
-
currentValue: text,
|
|
44
|
-
number,
|
|
45
|
-
countryCode,
|
|
46
|
-
placeholder,
|
|
47
|
-
CountryFlag,
|
|
48
|
-
};
|
|
49
|
-
});
|
|
50
|
-
const { countryCode, currentValue, placeholder, CountryFlag } = state;
|
|
40
|
+
// The current text of the field: the flag and the placeholder follow it
|
|
41
|
+
const [currentValue, setCurrentValue] = react_1.default.useState(() => parseAndFormat(String(value)).text);
|
|
42
|
+
const lastValue = react_1.default.useRef(value);
|
|
51
43
|
react_1.default.useEffect(() => {
|
|
52
|
-
if (
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
if (formatted.text !== currentValue) {
|
|
56
|
-
setState(prev => (Object.assign(Object.assign({}, prev), { currentValue: formatted.text, countryCode: formatted.countryCode, placeholder: formatted.placeholder, CountryFlag: formatted.CountryFlag })));
|
|
57
|
-
}
|
|
44
|
+
if (lastValue.current !== value) {
|
|
45
|
+
lastValue.current = value;
|
|
46
|
+
setCurrentValue(parseAndFormat(String(value)).text);
|
|
58
47
|
}
|
|
59
|
-
}, [
|
|
60
|
-
const
|
|
48
|
+
}, [parseAndFormat, value]);
|
|
49
|
+
const { CountryFlag, placeholder } = react_1.default.useMemo(() => parseAndFormat(currentValue), [parseAndFormat, currentValue]);
|
|
50
|
+
// <MaskedField> gets the phone-specific parsing and the mask of the detected template
|
|
51
|
+
const parsePhone = react_1.default.useCallback((input, _mask, caret) => (0, usePhoneUtils_1.dropExtraPluses)(parseInput(input, caret)), [parseInput]);
|
|
52
|
+
const getMask = react_1.default.useCallback((input) => (0, usePhoneUtils_1.templateToMask)(getTemplateInfo(parsePhone(input, []).text).template), [getTemplateInfo, parsePhone]);
|
|
53
|
+
const handleChange = react_1.default.useCallback((payload, event) => {
|
|
61
54
|
var _a;
|
|
62
|
-
const
|
|
63
|
-
|
|
64
|
-
onChange(
|
|
65
|
-
value: text,
|
|
66
|
-
placeholder,
|
|
67
|
-
CountryFlag,
|
|
68
|
-
template,
|
|
69
|
-
countryCode,
|
|
70
|
-
callingCode,
|
|
71
|
-
number,
|
|
72
|
-
isValid,
|
|
73
|
-
combined: `${callingCode !== null &&
|
|
55
|
+
const formatted = parseAndFormat(payload.text);
|
|
56
|
+
setCurrentValue(payload.text);
|
|
57
|
+
onChange(event, {
|
|
58
|
+
value: payload.text,
|
|
59
|
+
placeholder: formatted.placeholder,
|
|
60
|
+
CountryFlag: formatted.CountryFlag,
|
|
61
|
+
template: formatted.template,
|
|
62
|
+
countryCode: formatted.countryCode,
|
|
63
|
+
callingCode: formatted.callingCode,
|
|
64
|
+
number: formatted.number,
|
|
65
|
+
isValid: formatted.isValid,
|
|
66
|
+
combined: `${(_a = formatted.callingCode) !== null && _a !== void 0 ? _a : ''}${formatted.number}`,
|
|
74
67
|
});
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
textInputRef.current = input;
|
|
90
|
-
if (typeof inputRef === 'function') {
|
|
91
|
-
inputRef(input);
|
|
92
|
-
}
|
|
93
|
-
if (inputRef && typeof inputRef === 'object') {
|
|
94
|
-
inputRef.current = input;
|
|
68
|
+
}, [onChange, parseAndFormat]);
|
|
69
|
+
const setInputRef = react_1.default.useCallback((input) => {
|
|
70
|
+
textInputRef.current = input;
|
|
71
|
+
if (typeof inputRef === 'function') {
|
|
72
|
+
inputRef(input);
|
|
73
|
+
}
|
|
74
|
+
if (inputRef && typeof inputRef === 'object') {
|
|
75
|
+
inputRef.current = input;
|
|
76
|
+
}
|
|
77
|
+
}, [inputRef]);
|
|
78
|
+
const startIcon = react_1.default.useMemo(() => withoutCountryFlag ? undefined : (react_1.default.createElement(CountryFlagComponent_1.default, { flag: CountryFlag, onClick: () => {
|
|
79
|
+
if (textInputRef.current) {
|
|
80
|
+
textInputRef.current.select();
|
|
81
|
+
textInputRef.current.focus();
|
|
95
82
|
}
|
|
96
|
-
} })));
|
|
83
|
+
} })), [CountryFlag, withoutCountryFlag]);
|
|
84
|
+
return (react_1.default.createElement(MaskedField_1.default, Object.assign({ ref: ref }, textFieldProps, {
|
|
85
|
+
// An explicit `startIcon={undefined}` (e.g. from <Autocomplete>) must not hide the flag
|
|
86
|
+
startIcon: (_a = textFieldProps.startIcon) !== null && _a !== void 0 ? _a : startIcon, value: value, mask: getMask, parseInput: parsePhone, placeholder: (_b = textFieldProps.placeholder) !== null && _b !== void 0 ? _b : placeholder, onChange: handleChange, inputRef: setInputRef })));
|
|
97
87
|
};
|
|
98
88
|
exports.default = react_1.default.forwardRef(PhoneField);
|
|
99
89
|
__exportStar(require("./usePhoneUtils"), exports);
|
package/PhoneField/templates.js
CHANGED
|
@@ -17,30 +17,29 @@ const CN_1 = __importDefault(require("../CountryFlags/CN"));
|
|
|
17
17
|
exports.templates = [
|
|
18
18
|
// Russian template
|
|
19
19
|
['RU', react_1.default.createElement(RU_1.default, { key: "ru-1" }), '7', '+x (xxx) xxx-xx-xx', '+7 (987) 654-32-10', /^\+$/], // must be at first (Default RU)
|
|
20
|
-
|
|
20
|
+
// 81... is Japan without «+»: Russian area codes never start with 1
|
|
21
|
+
['RU', react_1.default.createElement(RU_1.default, { key: "ru-2" }), '7', '8 (xxx) xxx-xx-xx', '8 (987) 654-32-10', /^8(?!1)/], // 8912...
|
|
21
22
|
[
|
|
22
23
|
'RU',
|
|
23
24
|
react_1.default.createElement(RU_1.default, { key: "ru-3" }),
|
|
24
25
|
'7',
|
|
25
26
|
'+7 (xxx) xxx-xx-xx',
|
|
26
27
|
'+7 (987) 654-32-10',
|
|
27
|
-
|
|
28
|
+
// Also matches a bare «+7» while typing, so the flag does not blink; 76 and 77 are Kazakhstan
|
|
29
|
+
/^\+{0,1}7(?![67])/,
|
|
28
30
|
], // +79...
|
|
29
31
|
// Other fucking countries
|
|
30
32
|
['BY', react_1.default.createElement(BY_1.default, { key: "by" }), '375', '+375 (xx) xxx-xx-xx', '+375 (98) 765-43-21', /^\+{0,1}375/],
|
|
31
33
|
['CN', react_1.default.createElement(CN_1.default, { key: "cn" }), '86', '+86 (xxx) xxxx-xxxx', '+86 (138) 0013-8000', /^\+{0,1}86/],
|
|
32
|
-
['KZ', react_1.default.createElement(KZ_1.default, { key: "kz-1" }), '
|
|
33
|
-
[
|
|
34
|
-
'KZ',
|
|
35
|
-
react_1.default.createElement(KZ_1.default, { key: "kz-2" }),
|
|
36
|
-
'7',
|
|
37
|
-
'+7 (xxx) xxx-xx-xx',
|
|
38
|
-
'+7 (600) 765-43-21',
|
|
39
|
-
/^\+{0,1}7[6-7][0-9][0-9]/,
|
|
40
|
-
], // +7600 - +7700
|
|
34
|
+
['KZ', react_1.default.createElement(KZ_1.default, { key: "kz-1" }), '997', '+997 (xx) xxx-xx-xx', '+997 (98) 765-43-21', /^\+{0,1}997/],
|
|
35
|
+
['KZ', react_1.default.createElement(KZ_1.default, { key: "kz-2" }), '7', '+7 (xxx) xxx-xx-xx', '+7 (600) 765-43-21', /^\+{0,1}7[67]/], // +76, +77
|
|
41
36
|
['UA', react_1.default.createElement(UA_1.default, { key: "ua" }), '380', '+380 (xx) xxx-xxxx', '+380 (98) 765-4321', /^\+{0,1}380/],
|
|
42
|
-
|
|
43
|
-
['
|
|
44
|
-
['
|
|
37
|
+
// Mobile numbers (070, 080, 090) have 10 digits, landlines have 9
|
|
38
|
+
['JP', react_1.default.createElement(JP_1.default, { key: "jp-1" }), '81', '+81 (xx) xxxx-xxxx', '+81 (90) 1234-5678', /^\+{0,1}81[789]0/],
|
|
39
|
+
['JP', react_1.default.createElement(JP_1.default, { key: "jp-2" }), '81', '+81 (xx) xxx-xxxx', '+81 (98) 765-4321', /^\+{0,1}81/],
|
|
40
|
+
['US', react_1.default.createElement(US_1.default, { key: "us" }), '1', '+1 (xxx) xxx-xxxx', '+1 (987) 654-3210', /^\+{0,1}1/],
|
|
41
|
+
// Mobile (5x) and VoIP (7x) numbers have 9 digits, landlines have 8
|
|
42
|
+
['IL', react_1.default.createElement(IL_1.default, { key: "il-1" }), '972', '+972 xx xxx-xx-xx', '+972 50 432-10-01', /^\+{0,1}972[57]/],
|
|
43
|
+
['IL', react_1.default.createElement(IL_1.default, { key: "il-2" }), '972', '+972 x xxx-xxxx', '+972 3 432-1001', /^\+{0,1}972/],
|
|
45
44
|
];
|
|
46
45
|
exports.default = exports.templates;
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { CountryCode, PhoneTemplate, CountryFlag } from './templates';
|
|
2
|
+
import { Mask } from '../MaskedField/useMasked';
|
|
2
3
|
export interface Formatted {
|
|
3
4
|
readonly text: string;
|
|
4
5
|
readonly caret: number;
|
|
@@ -26,6 +27,20 @@ type Validate = (inputValue: string, template: string) => boolean;
|
|
|
26
27
|
type Format = (text: string, caret: number, defaultCountry?: string | null) => Formatted;
|
|
27
28
|
type ParseAndValidate = (inputValue: string) => boolean;
|
|
28
29
|
type ParseAndFormat = (inputValue: string, caret?: number) => Formatted;
|
|
30
|
+
/**
|
|
31
|
+
* Converts a phone template to a mask: «x» is a digit, other chars are literals
|
|
32
|
+
*/
|
|
33
|
+
export declare const templateToMask: (template: string) => Mask;
|
|
34
|
+
/**
|
|
35
|
+
* «+» is allowed only as the first char of a parsed phone, the other ones are dropped
|
|
36
|
+
*/
|
|
37
|
+
export declare const dropExtraPluses: (parsed: {
|
|
38
|
+
readonly text: string;
|
|
39
|
+
readonly caret: number;
|
|
40
|
+
}) => {
|
|
41
|
+
text: string;
|
|
42
|
+
caret: number;
|
|
43
|
+
};
|
|
29
44
|
export declare const usePhoneUtils: (params: {
|
|
30
45
|
templates: readonly PhoneTemplate[];
|
|
31
46
|
}) => {
|
|
@@ -3,15 +3,34 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.usePhoneUtils = void 0;
|
|
6
|
+
exports.usePhoneUtils = exports.dropExtraPluses = exports.templateToMask = void 0;
|
|
7
7
|
const react_1 = __importDefault(require("react"));
|
|
8
|
-
const
|
|
8
|
+
const Unknown_1 = __importDefault(require("../CountryFlags/Unknown"));
|
|
9
|
+
const useMasked_1 = require("../MaskedField/useMasked");
|
|
10
|
+
/**
|
|
11
|
+
* Converts a phone template to a mask: «x» is a digit, other chars are literals
|
|
12
|
+
*/
|
|
13
|
+
const templateToMask = (template) => template.split('').map(char => (char === 'x' ? /\d/ : char));
|
|
14
|
+
exports.templateToMask = templateToMask;
|
|
15
|
+
/**
|
|
16
|
+
* «+» is allowed only as the first char of a parsed phone, the other ones are dropped
|
|
17
|
+
*/
|
|
18
|
+
const dropExtraPluses = (parsed) => {
|
|
19
|
+
const { text, caret } = parsed;
|
|
20
|
+
const removedBeforeCaret = (text.slice(1, Math.max(caret, 1)).match(/\+/g) || []).length;
|
|
21
|
+
return {
|
|
22
|
+
text: text.charAt(0) + text.slice(1).replace(/\+/g, ''),
|
|
23
|
+
caret: caret - removedBeforeCaret,
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
exports.dropExtraPluses = dropExtraPluses;
|
|
9
27
|
const usePhoneUtils = (params) => {
|
|
10
28
|
const { templates } = params;
|
|
29
|
+
const masked = (0, useMasked_1.useMasked)();
|
|
11
30
|
const templatesList = react_1.default.useMemo(() => templates.concat([
|
|
12
31
|
[
|
|
13
32
|
null,
|
|
14
|
-
react_1.default.createElement(
|
|
33
|
+
react_1.default.createElement(Unknown_1.default, { key: "unknnown" }),
|
|
15
34
|
null,
|
|
16
35
|
'+x xxx xxx-xx-xx',
|
|
17
36
|
'+7 987 654-32-10',
|
|
@@ -61,44 +80,18 @@ const usePhoneUtils = (params) => {
|
|
|
61
80
|
if (inputValue === '') {
|
|
62
81
|
return data;
|
|
63
82
|
}
|
|
64
|
-
|
|
65
|
-
const
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
}
|
|
71
|
-
const char = inputValue[charIndex];
|
|
72
|
-
const template = mask[patternIndex];
|
|
73
|
-
// If put +, but not first
|
|
74
|
-
if (charIndex !== 0 && char === '+') {
|
|
75
|
-
break;
|
|
76
|
-
}
|
|
77
|
-
if (template instanceof RegExp && new RegExp(template).test(char)) {
|
|
78
|
-
data.text = `${data.text}${char}`;
|
|
79
|
-
charIndex += 1;
|
|
80
|
-
}
|
|
81
|
-
if (typeof template === 'string' && template === char) {
|
|
82
|
-
data.text = `${data.text}${char}`;
|
|
83
|
-
charIndex += 1;
|
|
84
|
-
}
|
|
85
|
-
if (typeof template === 'string' && template !== char) {
|
|
86
|
-
data.text = `${data.text}${template}`;
|
|
87
|
-
if (charIndex < caret) {
|
|
88
|
-
data.caret += 1;
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
}
|
|
92
|
-
// const templateLength = template.replace(/[^x\d]/g, '').split('').length;
|
|
93
|
-
// const valueLength = inputValue.replace(/[^\d]/g, '').split('').length;
|
|
94
|
-
const number = data.text.replace(/[^0-9]/g, '').substring((callingCode === null || callingCode === void 0 ? void 0 : callingCode.length) || 0);
|
|
95
|
-
return Object.assign(Object.assign({}, data), { countryCode,
|
|
83
|
+
// The mask engine is shared with <MaskedField>, only the template is phone-specific
|
|
84
|
+
const normalized = (0, exports.dropExtraPluses)({ text: inputValue, caret });
|
|
85
|
+
const { countryCode, callingCode, CountryFlag, template, placeholder } = getTemplateInfo(normalized.text);
|
|
86
|
+
const formatted = masked.formatParsedInput(normalized.text, (0, exports.templateToMask)(template), normalized.caret);
|
|
87
|
+
const number = formatted.text.replace(/[^0-9]/g, '').substring((callingCode === null || callingCode === void 0 ? void 0 : callingCode.length) || 0);
|
|
88
|
+
return Object.assign(Object.assign({}, data), { text: formatted.text, caret: formatted.caret, countryCode,
|
|
96
89
|
callingCode,
|
|
97
90
|
CountryFlag,
|
|
98
91
|
template,
|
|
99
92
|
placeholder,
|
|
100
|
-
number, isValid: validateParsedInput(
|
|
101
|
-
}, [getTemplateInfo, templatesList, validateParsedInput]);
|
|
93
|
+
number, isValid: validateParsedInput(formatted.text, template) });
|
|
94
|
+
}, [getTemplateInfo, templatesList, validateParsedInput, masked]);
|
|
102
95
|
/**
|
|
103
96
|
* Parse phone string
|
|
104
97
|
*/
|
package/Popper/Popper.d.ts
CHANGED
|
@@ -16,9 +16,9 @@ export interface PopperProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
16
16
|
readonly isOpen: boolean;
|
|
17
17
|
/**
|
|
18
18
|
* The HTML element to which the popper will be attached and positioned relative to.
|
|
19
|
-
*
|
|
19
|
+
* While it is `null`, the popper stays hidden even if `isOpen` is `true`.
|
|
20
20
|
*
|
|
21
|
-
* @
|
|
21
|
+
* @required
|
|
22
22
|
* @example
|
|
23
23
|
* ```tsx
|
|
24
24
|
* const [anchor, setAnchor] = useState<HTMLButtonElement | null>(null);
|
|
@@ -38,13 +38,33 @@ export interface PopperProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
38
38
|
* ```
|
|
39
39
|
*/
|
|
40
40
|
readonly anchorPos?: AnchorPos;
|
|
41
|
+
/**
|
|
42
|
+
* Placements to try right after `anchorPos` when `autoFlip` is enabled.
|
|
43
|
+
* For `auto` placements this is the full list of placements to try.
|
|
44
|
+
* For the other placements `auto` and `*-fill` values of this list are ignored.
|
|
45
|
+
*
|
|
46
|
+
* @default undefined
|
|
47
|
+
* @example
|
|
48
|
+
* ```tsx
|
|
49
|
+
* <Popper anchorPos="bottom-fill" autoFlip alternativePlacements={['top-fill']}>...</Popper>
|
|
50
|
+
* ```
|
|
51
|
+
*/
|
|
41
52
|
readonly alternativePlacements?: readonly AnchorPos[];
|
|
53
|
+
/**
|
|
54
|
+
* Called when the actual placement changes, e.g. after a flip caused by `autoFlip`
|
|
55
|
+
*
|
|
56
|
+
* @default undefined
|
|
57
|
+
* @example
|
|
58
|
+
* ```tsx
|
|
59
|
+
* <Popper autoFlip onAnchorPosChanged={placement => setArrowSide(placement)}>...</Popper>
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
42
62
|
readonly onAnchorPosChanged?: (anchorPos: AnchorPos) => void;
|
|
43
63
|
/**
|
|
44
64
|
* The z-index value for the popper container.
|
|
45
65
|
* Used to control the stacking order of the popper relative to other elements.
|
|
46
66
|
*
|
|
47
|
-
* @default theme.zIndex.modal
|
|
67
|
+
* @default theme.zIndex.modal for the `fixed` strategy, not set for `absolute`
|
|
48
68
|
* @example
|
|
49
69
|
* ```tsx
|
|
50
70
|
* <Popper zIndex={9999}>...</Popper>
|
|
@@ -56,7 +76,7 @@ export interface PopperProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
56
76
|
* if the preferred placement doesn't fit in the viewport.
|
|
57
77
|
* The component will iterate through possible placements until it finds one that fits.
|
|
58
78
|
*
|
|
59
|
-
* @default
|
|
79
|
+
* @default false
|
|
60
80
|
* @example
|
|
61
81
|
* ```tsx
|
|
62
82
|
* <Popper autoFlip={true}>...</Popper> // Will flip if needed
|
|
@@ -78,8 +98,9 @@ export interface PopperProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
78
98
|
readonly offset?: number;
|
|
79
99
|
/**
|
|
80
100
|
* The positioning strategy to use.
|
|
81
|
-
* - `'fixed'`:
|
|
82
|
-
*
|
|
101
|
+
* - `'fixed'`: Renders into a portal and positions relative to the viewport.
|
|
102
|
+
* The popper is kept inside the viewport and is not clipped by `overflow: hidden` parents.
|
|
103
|
+
* - `'absolute'`: Renders in place and positions relative to the nearest positioned ancestor.
|
|
83
104
|
* When using 'absolute', make sure a parent element has `position: relative`.
|
|
84
105
|
*
|
|
85
106
|
* @default 'fixed'
|
|
@@ -92,13 +113,12 @@ export interface PopperProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
|
92
113
|
readonly positionStrategy?: PositionStrategy;
|
|
93
114
|
/**
|
|
94
115
|
* Minimum distance (in pixels) that the popper must maintain from the viewport edges.
|
|
95
|
-
*
|
|
96
|
-
*
|
|
116
|
+
* With `autoFlip` a placement that breaks this margin is skipped.
|
|
117
|
+
* With the `fixed` strategy the popper is also shifted to keep this margin.
|
|
97
118
|
*
|
|
98
|
-
* @default
|
|
119
|
+
* @default 30
|
|
99
120
|
* @example
|
|
100
121
|
* ```tsx
|
|
101
|
-
* // Larger margin for better visibility
|
|
102
122
|
* <Popper viewportMargin={16}>...</Popper>
|
|
103
123
|
*
|
|
104
124
|
* // No margin (allow touching edges)
|
package/Popper/Popper.js
CHANGED
|
@@ -67,17 +67,19 @@ const Popper = (props, ref) => {
|
|
|
67
67
|
}
|
|
68
68
|
const newNode = window.document.createElement('div');
|
|
69
69
|
newNode.setAttribute('id', exports.PORTAL_ID);
|
|
70
|
-
if (positionStrategy === 'absolute') {
|
|
71
|
-
newNode.style.position = 'relative';
|
|
72
|
-
}
|
|
73
70
|
window.document.body.appendChild(newNode);
|
|
74
71
|
return newNode;
|
|
75
|
-
}, [
|
|
72
|
+
}, []);
|
|
73
|
+
const onAnchorPosChangedRef = react_1.default.useRef(onAnchorPosChanged);
|
|
74
|
+
onAnchorPosChangedRef.current = onAnchorPosChanged;
|
|
75
|
+
const prevPlacementRef = react_1.default.useRef(actualPlacement);
|
|
76
76
|
react_1.default.useEffect(() => {
|
|
77
|
-
|
|
78
|
-
|
|
77
|
+
var _a;
|
|
78
|
+
if (prevPlacementRef.current !== actualPlacement) {
|
|
79
|
+
prevPlacementRef.current = actualPlacement;
|
|
80
|
+
(_a = onAnchorPosChangedRef.current) === null || _a === void 0 ? void 0 : _a.call(onAnchorPosChangedRef, actualPlacement);
|
|
79
81
|
}
|
|
80
|
-
}, [
|
|
82
|
+
}, [actualPlacement]);
|
|
81
83
|
const childrenMemo = react_1.default.useMemo(() => children, [children]);
|
|
82
84
|
const renderNode = react_1.default.useCallback(() => (react_1.default.createElement(overridesMap.Container, Object.assign({}, nativeProps, { style: Object.assign(Object.assign(Object.assign(Object.assign({}, style), nativeProps.style), { opacity: isVisible ? 1 : 0, pointerEvents: isVisible ? 'auto' : 'none' }), (positionStrategy === 'fixed' && {
|
|
83
85
|
position: 'fixed',
|