@via-profit/ui-kit 0.3.0 → 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 +91 -35
- 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 +1 -0
- 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 +122 -0
- package/Calendar/CalendarCell.js +11 -4
- package/Calendar/CalendarComponent.d.ts +15 -4
- package/Calendar/CalendarComponent.js +150 -55
- 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 +1 -1
- 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 +7 -2
- package/Color/Color.d.ts +4 -4
- package/Color/Color.js +9 -5
- package/Color/ColorGenerator.d.ts +5 -1
- 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 +19 -6
- package/DatePicker/index.js +59 -12
- 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 +9 -6
- package/Menu/MenuContainer.d.ts +8 -0
- package/Menu/MenuContainer.js +101 -30
- package/Menu/MenuItem.js +1 -1
- package/Menu/context.js +5 -0
- 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 +28 -8
- package/Popper/usePopper.d.ts +21 -31
- 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/index.d.ts +18 -2
- package/Selectbox/index.js +23 -7
- 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 +233 -90
- 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 +1 -1
- package/TextField/TextFieldInput.js +2 -0
- package/TextField/TextFieldInputWrapper.d.ts +2 -0
- package/TextField/TextFieldInputWrapper.js +12 -2
- package/TextField/index.js +1 -1
- 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/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
|
@@ -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>
|
|
@@ -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
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/usePopper.d.ts
CHANGED
|
@@ -2,9 +2,8 @@ import React from 'react';
|
|
|
2
2
|
import { PositionStrategy } from './PopperContainer';
|
|
3
3
|
/**
|
|
4
4
|
* Base directions for popper positioning.
|
|
5
|
-
*
|
|
5
|
+
* The popper is centered along the chosen side of the anchor.
|
|
6
6
|
*
|
|
7
|
-
* @default 'bottom' (when used as anchorPos)
|
|
8
7
|
* @example
|
|
9
8
|
* ```tsx
|
|
10
9
|
* type Direction = 'top' | 'bottom' | 'left' | 'right';
|
|
@@ -12,38 +11,31 @@ import { PositionStrategy } from './PopperContainer';
|
|
|
12
11
|
*/
|
|
13
12
|
export type Direction = 'top' | 'left' | 'right' | 'bottom';
|
|
14
13
|
/**
|
|
15
|
-
* Auto placement
|
|
16
|
-
*
|
|
17
|
-
* - `auto`:
|
|
18
|
-
*
|
|
14
|
+
* Auto placements. With `autoFlip` the popper picks the first placement that fits in the viewport.
|
|
15
|
+
* - `auto`: Tries all placements starting with the bottom ones
|
|
16
|
+
* - `auto-top`, `auto-bottom`, `auto-left`, `auto-right`: Tries all placements starting with the specified side
|
|
17
|
+
*
|
|
18
|
+
* Without `autoFlip` `auto` works as `bottom`, `auto-top` as `top` and so on.
|
|
19
19
|
*
|
|
20
20
|
* @example
|
|
21
21
|
* ```tsx
|
|
22
22
|
* // Will try to place on top first, but will flip if needed
|
|
23
|
-
* <Popper anchorPos="auto-top">...</Popper>
|
|
24
|
-
*
|
|
25
|
-
* // Will try all directions equally
|
|
26
|
-
* <Popper anchorPos="auto">...</Popper>
|
|
23
|
+
* <Popper anchorPos="auto-top" autoFlip>...</Popper>
|
|
27
24
|
* ```
|
|
28
25
|
*/
|
|
29
26
|
export type AutoModifier = 'auto' | 'auto-top' | 'auto-bottom' | 'auto-left' | 'auto-right';
|
|
30
27
|
/**
|
|
31
|
-
*
|
|
32
|
-
*
|
|
33
|
-
* - `
|
|
34
|
-
* - `
|
|
35
|
-
* - `
|
|
28
|
+
* Placements that combine a side with an alignment along it:
|
|
29
|
+
* - `start`/`end`: Aligns to the left/right edge of the anchor (text direction is not taken into account)
|
|
30
|
+
* - `left`/`right`: Same as `start`/`end`
|
|
31
|
+
* - `top`/`bottom`: Vertical alignment for the left and right sides
|
|
32
|
+
* - `fill`: Stretches the popper to the anchor width
|
|
36
33
|
*
|
|
37
34
|
* @example
|
|
38
35
|
* ```tsx
|
|
39
|
-
*
|
|
40
|
-
* <Popper anchorPos="top
|
|
41
|
-
*
|
|
42
|
-
* // Logical placements (RTL-friendly)
|
|
43
|
-
* <Popper anchorPos="bottom-start">Aligns to bottom edge, start side</Popper>
|
|
44
|
-
*
|
|
45
|
-
* // Side alignments
|
|
46
|
-
* <Popper anchorPos="left-top">Aligns to left side, top edge</Popper>
|
|
36
|
+
* <Popper anchorPos="bottom-start">Below the anchor, aligned to its left edge</Popper>
|
|
37
|
+
* <Popper anchorPos="left-top">Left of the anchor, aligned to its top edge</Popper>
|
|
38
|
+
* <Popper anchorPos="bottom-fill">Below the anchor, as wide as the anchor</Popper>
|
|
47
39
|
* ```
|
|
48
40
|
*/
|
|
49
41
|
export type Modifier = 'top-start' | 'top-end' | 'top-left' | 'top-right' | 'bottom-end' | 'bottom-start' | 'bottom-right' | 'bottom-left' | 'left-top' | 'left-bottom' | 'right-top' | 'right-bottom' | 'bottom-fill' | 'top-fill';
|
|
@@ -54,12 +46,13 @@ export type Modifier = 'top-start' | 'top-end' | 'top-left' | 'top-right' | 'bot
|
|
|
54
46
|
*
|
|
55
47
|
* Categories:
|
|
56
48
|
* - **Basic directions**: `top`, `bottom`, `left`, `right` - Centered placement
|
|
57
|
-
* - **
|
|
58
|
-
*
|
|
49
|
+
* - **Edge placements**: `top-start`, `top-end`, `bottom-start`, `bottom-end`
|
|
50
|
+
* and their aliases `top-left`, `top-right`, `bottom-left`, `bottom-right`
|
|
59
51
|
* - **Side alignments**: `left-top`, `left-bottom`, `right-top`, `right-bottom` - Edge-aligned
|
|
60
|
-
* - **
|
|
52
|
+
* - **Fill placements**: `top-fill`, `bottom-fill` - As wide as the anchor
|
|
53
|
+
* - **Auto placements**: `auto`, `auto-top`, `auto-bottom`, `auto-left`, `auto-right` - Picked by `autoFlip`
|
|
61
54
|
*
|
|
62
|
-
* @default '
|
|
55
|
+
* @default 'auto'
|
|
63
56
|
* @example
|
|
64
57
|
* ```tsx
|
|
65
58
|
* // Basic centered placement
|
|
@@ -69,10 +62,7 @@ export type Modifier = 'top-start' | 'top-end' | 'top-left' | 'top-right' | 'bot
|
|
|
69
62
|
* <Popper anchorPos="top-right">Attached to top-right corner</Popper>
|
|
70
63
|
*
|
|
71
64
|
* // Auto placement with priority
|
|
72
|
-
* <Popper anchorPos="auto-left">Try left first, then find best fit</Popper>
|
|
73
|
-
*
|
|
74
|
-
* // RTL-aware placement
|
|
75
|
-
* <Popper anchorPos="top-start">Respects text direction</Popper>
|
|
65
|
+
* <Popper anchorPos="auto-left" autoFlip>Try left first, then find best fit</Popper>
|
|
76
66
|
* ```
|
|
77
67
|
*/
|
|
78
68
|
export type AnchorPos = Direction | Modifier | AutoModifier;
|
package/README.md
CHANGED
|
@@ -1,17 +1,34 @@
|
|
|
1
|
-
|
|
1
|
+
# @via-profit/ui-kit
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
- react
|
|
6
|
-
- react-dom
|
|
7
|
-
- @emotion/styled - CSS In JS
|
|
8
|
-
- @emotion/react - CSS In JS React
|
|
9
|
-
- react-popper - Выпадающие меню
|
|
3
|
+
Набор React-компонентов для интерфейсов: поля ввода, кнопки, календарь, меню, модальные окна и другие. Компоненты оформлены по теме, которую вы задаёте один раз для всего приложения.
|
|
10
4
|
|
|
5
|
+
## Установка
|
|
11
6
|
|
|
12
7
|
```bash
|
|
13
|
-
|
|
8
|
+
npm install @via-profit/ui-kit @emotion/react @emotion/styled react react-dom
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
Пакету нужны `react` и `react-dom` версии 18.2 и новее, `@emotion/react` и `@emotion/styled` версии 11.10.6 и новее.
|
|
12
|
+
|
|
13
|
+
## Быстрый старт
|
|
14
14
|
|
|
15
|
+
```tsx
|
|
16
|
+
import React from 'react';
|
|
17
|
+
import { createRoot } from 'react-dom/client';
|
|
18
|
+
import ThemeProvider, { createTheme } from '@via-profit/ui-kit/ThemeProvider';
|
|
19
|
+
import Button from '@via-profit/ui-kit/Button';
|
|
20
|
+
|
|
21
|
+
const theme = createTheme();
|
|
22
|
+
|
|
23
|
+
createRoot(document.getElementById('app')!).render(
|
|
24
|
+
<ThemeProvider theme={theme}>
|
|
25
|
+
<Button color="primary">Привет</Button>
|
|
26
|
+
</ThemeProvider>,
|
|
27
|
+
);
|
|
15
28
|
```
|
|
16
29
|
|
|
17
|
-
## Документация
|
|
30
|
+
## Документация
|
|
31
|
+
|
|
32
|
+
[Документация](https://github.com/via-profit/ui-kit/blob/master/packages/ui-kit/docs/README.md) — установка, тема оформления, общие принципы и описание всех компонентов.
|
|
33
|
+
|
|
34
|
+
[Список изменений](./CHANGELOG.md)
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
export type RadioBoxProps = Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type'> & {
|
|
3
|
+
/**
|
|
4
|
+
* Paints the border with the error color
|
|
5
|
+
*/
|
|
6
|
+
readonly error?: boolean;
|
|
7
|
+
};
|
|
8
|
+
declare const _default: React.ForwardRefExoticComponent<Omit<React.InputHTMLAttributes<HTMLInputElement>, "type"> & {
|
|
9
|
+
/**
|
|
10
|
+
* Paints the border with the error color
|
|
11
|
+
*/
|
|
12
|
+
readonly error?: boolean | undefined;
|
|
13
|
+
} & React.RefAttributes<HTMLInputElement>>;
|
|
14
|
+
export default _default;
|