@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
|
@@ -54,13 +54,35 @@ const CalendarIconPrev_1 = __importDefault(require("./CalendarIconPrev"));
|
|
|
54
54
|
const CalendarIconNext_1 = __importDefault(require("./CalendarIconNext"));
|
|
55
55
|
const CalendarWeekDaysBar_1 = __importDefault(require("./CalendarWeekDaysBar"));
|
|
56
56
|
const use_calendar_1 = require("./use-calendar");
|
|
57
|
-
const Swiper_1 = __importStar(require("../Swiper"));
|
|
58
57
|
const styled_1 = __importDefault(require("@emotion/styled"));
|
|
58
|
+
const react_2 = require("@emotion/react");
|
|
59
59
|
__exportStar(require("./use-calendar"), exports);
|
|
60
60
|
__exportStar(require("./CalendarWeekDaysBar"), exports);
|
|
61
|
-
const
|
|
62
|
-
|
|
61
|
+
const viewAppear = (0, react_2.keyframes) `
|
|
62
|
+
from {
|
|
63
|
+
opacity: 0;
|
|
64
|
+
transform: scale(0.97);
|
|
65
|
+
}
|
|
66
|
+
to {
|
|
67
|
+
opacity: 1;
|
|
68
|
+
transform: none;
|
|
69
|
+
}
|
|
63
70
|
`;
|
|
71
|
+
/**
|
|
72
|
+
* Only the active view is rendered: the hidden views are not focusable and not announced
|
|
73
|
+
*/
|
|
74
|
+
const ViewContainer = styled_1.default.div `
|
|
75
|
+
flex: 1;
|
|
76
|
+
display: flex;
|
|
77
|
+
flex-direction: column;
|
|
78
|
+
min-height: 0;
|
|
79
|
+
animation: ${viewAppear} 0.2s ease-out;
|
|
80
|
+
|
|
81
|
+
@media (prefers-reduced-motion: reduce) {
|
|
82
|
+
animation: none;
|
|
83
|
+
}
|
|
84
|
+
`;
|
|
85
|
+
const dateKey = (date) => `${date.getFullYear()}-${date.getMonth()}-${date.getDate()}`;
|
|
64
86
|
const isRangeValue = (value) => {
|
|
65
87
|
if (value instanceof Array) {
|
|
66
88
|
return value.every(v => v instanceof Date || v === null);
|
|
@@ -80,21 +102,12 @@ const computeViews = (inputViews, range) => {
|
|
|
80
102
|
const computeView = (inputParams) => {
|
|
81
103
|
var _a;
|
|
82
104
|
const { inputView, inputViews, inputInitialView } = inputParams;
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
if (typeof inputView === 'undefined' && inputViews) {
|
|
87
|
-
return inputViews[0];
|
|
88
|
-
}
|
|
89
|
-
if (inputViews && typeof inputView === 'string') {
|
|
90
|
-
if (!inputViews.includes(inputView)) {
|
|
91
|
-
throw new Error('Property views must be contained property initialView');
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
if (typeof inputView === 'string') {
|
|
95
|
-
return inputView;
|
|
105
|
+
const requested = inputView !== null && inputView !== void 0 ? inputView : inputInitialView;
|
|
106
|
+
if (requested && inputViews && !inputViews.includes(requested)) {
|
|
107
|
+
throw new Error(`The view «${requested}» must be one of the \`views\`: ${inputViews.join(', ')}`);
|
|
96
108
|
}
|
|
97
|
-
|
|
109
|
+
// The requested view wins over the first of the views
|
|
110
|
+
return (_a = requested !== null && requested !== void 0 ? requested : inputViews === null || inputViews === void 0 ? void 0 : inputViews[0]) !== null && _a !== void 0 ? _a : 'days';
|
|
98
111
|
};
|
|
99
112
|
const computeCalendarDate = (params) => {
|
|
100
113
|
const { inputValue, defaultValue } = params;
|
|
@@ -135,7 +148,7 @@ const computeCalendarDate = (params) => {
|
|
|
135
148
|
};
|
|
136
149
|
const CalendarComponent = react_1.default.forwardRef((props, ref) => {
|
|
137
150
|
var _a;
|
|
138
|
-
const { minDate
|
|
151
|
+
const { minDate: inputMinDate, maxDate: inputMaxDate, weekStartDay = 'monday', locale = 'ru-RU', displayLeadingZero = false, onChange, badges = [], markToday = true, weekDayLabelFormat = 'short', accentColor = 'primary', defaultValue, value: inputValue, initialView: inputInitialView, view: inputView, views: inputViews, resetButtonLabel, todayButtonLabel, heading, subheading, footer, overrides, range = false, prevButtonLabel = 'Previous', nextButtonLabel = 'Next', } = props;
|
|
139
152
|
/**
|
|
140
153
|
* Validations
|
|
141
154
|
*/
|
|
@@ -160,12 +173,21 @@ const CalendarComponent = react_1.default.forwardRef((props, ref) => {
|
|
|
160
173
|
throw new Error('The `weeks` view allowed only in range mode');
|
|
161
174
|
}
|
|
162
175
|
}
|
|
163
|
-
if (
|
|
176
|
+
if (typeof inputValue !== 'undefined' && typeof onChange !== 'function') {
|
|
164
177
|
throw new Error('You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange`.');
|
|
165
178
|
}
|
|
166
179
|
if (inputView && inputInitialView) {
|
|
167
180
|
throw new Error('You can not use view and initialView at the same time.');
|
|
168
181
|
}
|
|
182
|
+
// Default limits are created once, otherwise every render gets new Date instances
|
|
183
|
+
// and invalidates all memoized values depending on them
|
|
184
|
+
const minDate = react_1.default.useMemo(() => inputMinDate !== null && inputMinDate !== void 0 ? inputMinDate : new Date(new Date().getFullYear() - 100, 0, 1, 0, 0, 0), [inputMinDate]);
|
|
185
|
+
const maxDate = react_1.default.useMemo(() => inputMaxDate !== null && inputMaxDate !== void 0 ? inputMaxDate : new Date(new Date().getFullYear() + 100, 0, 1, 0, 0, 0), [inputMaxDate]);
|
|
186
|
+
const emitChange = react_1.default.useCallback((newValue) => {
|
|
187
|
+
if (typeof onChange === 'function') {
|
|
188
|
+
onChange(newValue);
|
|
189
|
+
}
|
|
190
|
+
}, [onChange]);
|
|
169
191
|
/**
|
|
170
192
|
* Overrides
|
|
171
193
|
*/
|
|
@@ -193,7 +215,7 @@ const CalendarComponent = react_1.default.forwardRef((props, ref) => {
|
|
|
193
215
|
WeekRowButton: (overrides === null || overrides === void 0 ? void 0 : overrides.WeekRowButton) || CalendarWeekRowButton_1.default,
|
|
194
216
|
WeekDayWeekNumber: (overrides === null || overrides === void 0 ? void 0 : overrides.WeekDayWeekNumber) || CalendarWeekDayWeekNumber_1.default,
|
|
195
217
|
}), [overrides]);
|
|
196
|
-
const
|
|
218
|
+
const dateContainerRef = react_1.default.useRef(null);
|
|
197
219
|
/**
|
|
198
220
|
* Inside date value
|
|
199
221
|
*/
|
|
@@ -205,7 +227,16 @@ const CalendarComponent = react_1.default.forwardRef((props, ref) => {
|
|
|
205
227
|
* Selected value
|
|
206
228
|
*/
|
|
207
229
|
const inputValueRef = react_1.default.useRef(inputValue);
|
|
208
|
-
const [
|
|
230
|
+
const [internalValue, setValue] = react_1.default.useState((_a = inputValue !== null && inputValue !== void 0 ? inputValue : defaultValue) !== null && _a !== void 0 ? _a : null);
|
|
231
|
+
// Controlled: the value is always the `value` property, even if the parent did not accept the change
|
|
232
|
+
const value = typeof inputValue !== 'undefined'
|
|
233
|
+
? inputValue
|
|
234
|
+
: internalValue;
|
|
235
|
+
/**
|
|
236
|
+
* The day with the keyboard focus in the days view (roving tabindex)
|
|
237
|
+
*/
|
|
238
|
+
const [focusedDate, setFocusedDate] = react_1.default.useState(null);
|
|
239
|
+
const shouldMoveFocus = react_1.default.useRef(false);
|
|
209
240
|
/**
|
|
210
241
|
* Current view mode
|
|
211
242
|
*/
|
|
@@ -220,16 +251,22 @@ const CalendarComponent = react_1.default.forwardRef((props, ref) => {
|
|
|
220
251
|
const [views, setComputedViews] = react_1.default.useState(() => computeViews(inputViews, range));
|
|
221
252
|
const setViews = react_1.default.useCallback((variants) => setComputedViews(variants), []);
|
|
222
253
|
const selectView = react_1.default.useCallback((view) => {
|
|
223
|
-
|
|
224
|
-
if (
|
|
225
|
-
setViews(
|
|
254
|
+
const nextViews = views.includes(view) ? views : [...views, view];
|
|
255
|
+
if (nextViews !== views) {
|
|
256
|
+
setViews(nextViews);
|
|
226
257
|
}
|
|
227
258
|
setView(view);
|
|
228
|
-
const index = views.findIndex(v => v === view);
|
|
229
|
-
if (index > -1) {
|
|
230
|
-
(_a = swiperRef.current) === null || _a === void 0 ? void 0 : _a.goToIndex(index);
|
|
231
|
-
}
|
|
232
259
|
}, [setViews, views]);
|
|
260
|
+
/**
|
|
261
|
+
* Controlled `view` property was changed
|
|
262
|
+
*/
|
|
263
|
+
const inputViewRef = react_1.default.useRef(inputView);
|
|
264
|
+
react_1.default.useEffect(() => {
|
|
265
|
+
if (inputView && inputView !== inputViewRef.current) {
|
|
266
|
+
inputViewRef.current = inputView;
|
|
267
|
+
selectView(inputView);
|
|
268
|
+
}
|
|
269
|
+
}, [inputView, selectView]);
|
|
233
270
|
const resetVariablesRef = react_1.default.useRef({
|
|
234
271
|
calendarDate,
|
|
235
272
|
value,
|
|
@@ -292,10 +329,10 @@ const CalendarComponent = react_1.default.forwardRef((props, ref) => {
|
|
|
292
329
|
}
|
|
293
330
|
if (view === 'months') {
|
|
294
331
|
if (type === 'prev') {
|
|
295
|
-
newCalendarDate.setFullYear(newCalendarDate.getFullYear()
|
|
332
|
+
newCalendarDate.setFullYear(newCalendarDate.getFullYear() - 1);
|
|
296
333
|
}
|
|
297
334
|
else {
|
|
298
|
-
newCalendarDate.setFullYear(newCalendarDate.getFullYear()
|
|
335
|
+
newCalendarDate.setFullYear(newCalendarDate.getFullYear() + 1);
|
|
299
336
|
}
|
|
300
337
|
}
|
|
301
338
|
if (view === 'days' || view === 'weeks') {
|
|
@@ -310,51 +347,36 @@ const CalendarComponent = react_1.default.forwardRef((props, ref) => {
|
|
|
310
347
|
}, [calendarDate, view]);
|
|
311
348
|
const handleCellDateClick = react_1.default.useCallback((selectedDate) => () => {
|
|
312
349
|
var _a;
|
|
350
|
+
setFocusedDate(selectedDate);
|
|
313
351
|
const nextView = getNextAvailableView();
|
|
314
352
|
if (nextView) {
|
|
315
353
|
setView(nextView);
|
|
316
354
|
}
|
|
317
355
|
// Single-date mode
|
|
318
356
|
if (!range) {
|
|
319
|
-
|
|
357
|
+
emitChange(selectedDate);
|
|
320
358
|
setValue(selectedDate);
|
|
321
359
|
return;
|
|
322
360
|
}
|
|
323
361
|
// Range-date mode
|
|
324
362
|
const [from, to] = (_a = value) !== null && _a !== void 0 ? _a : [];
|
|
325
|
-
//
|
|
326
|
-
if (from && to) {
|
|
327
|
-
setValue([selectedDate, null]);
|
|
328
|
-
onChange([selectedDate, null]);
|
|
329
|
-
return;
|
|
330
|
-
}
|
|
331
|
-
// если выбрана только первая дата или обе даты равны - завершение периода
|
|
332
|
-
if ((from && to === null) || (from && to && from.getTime() === to.getTime())) {
|
|
363
|
+
// выбрана только первая дата - завершение периода
|
|
364
|
+
if (from && !to) {
|
|
333
365
|
/// check to swap
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
else {
|
|
339
|
-
onChange([from, selectedDate]);
|
|
340
|
-
setValue([from, selectedDate]);
|
|
341
|
-
}
|
|
342
|
-
}
|
|
343
|
-
else {
|
|
344
|
-
// обе даты выбраны или ничего не выбрано ([Date, Date] | [null, null] | null) - начало нового периода
|
|
345
|
-
if ((from && to) || (from === null && to === null) || value === null) {
|
|
346
|
-
setValue([selectedDate, null]);
|
|
347
|
-
return;
|
|
348
|
-
}
|
|
366
|
+
const newValue = selectedDate.getTime() < from.getTime() ? [selectedDate, from] : [from, selectedDate];
|
|
367
|
+
emitChange(newValue);
|
|
368
|
+
setValue(newValue);
|
|
369
|
+
return;
|
|
349
370
|
}
|
|
350
|
-
|
|
371
|
+
// обе даты выбраны или ничего не выбрано ([Date, Date] | [null, null] | null) - начало нового периода
|
|
372
|
+
setValue([selectedDate, null]);
|
|
373
|
+
emitChange([selectedDate, null]);
|
|
374
|
+
}, [emitChange, getNextAvailableView, range, value]);
|
|
351
375
|
/**
|
|
352
376
|
* Handle of click on year item
|
|
353
377
|
*/
|
|
354
378
|
const handleYearSelected = react_1.default.useCallback((selectedYear) => () => {
|
|
355
|
-
const newDate = new Date(
|
|
356
|
-
newDate.setFullYear(selectedYear, 0, 1);
|
|
357
|
-
newDate.setHours(0, 0, 0);
|
|
379
|
+
const newDate = new Date(selectedYear, 0, 1, 0, 0, 0, 0);
|
|
358
380
|
setCalendarDate(newDate);
|
|
359
381
|
const nextView = getNextAvailableView();
|
|
360
382
|
if (nextView) {
|
|
@@ -362,23 +384,19 @@ const CalendarComponent = react_1.default.forwardRef((props, ref) => {
|
|
|
362
384
|
}
|
|
363
385
|
// if the next `view` does not exist
|
|
364
386
|
if (!nextView && typeof onChange === 'function') {
|
|
365
|
-
const a = new Date();
|
|
366
|
-
a.setFullYear(newDate.getFullYear(), 11, 31);
|
|
367
|
-
a.setHours(23, 59, 59);
|
|
387
|
+
const a = new Date(newDate.getFullYear(), 11, 31, 23, 59, 59, 999);
|
|
368
388
|
const selectedValue = range ? [newDate, a] : newDate;
|
|
369
389
|
onChange(selectedValue);
|
|
370
390
|
if (!inputValue) {
|
|
371
391
|
setValue(selectedValue);
|
|
372
392
|
}
|
|
373
393
|
}
|
|
374
|
-
}, [
|
|
394
|
+
}, [getNextAvailableView, onChange, selectView, range, inputValue]);
|
|
375
395
|
/**
|
|
376
396
|
* Handle of click on month item
|
|
377
397
|
*/
|
|
378
398
|
const handleMonthSelected = react_1.default.useCallback((monthIndex) => () => {
|
|
379
|
-
const newDate = new Date();
|
|
380
|
-
newDate.setFullYear(calendarDate.getFullYear(), monthIndex, 1);
|
|
381
|
-
newDate.setHours(0, 0, 0);
|
|
399
|
+
const newDate = new Date(calendarDate.getFullYear(), monthIndex, 1, 0, 0, 0, 0);
|
|
382
400
|
setCalendarDate(newDate);
|
|
383
401
|
const nextView = getNextAvailableView();
|
|
384
402
|
if (nextView) {
|
|
@@ -386,9 +404,8 @@ const CalendarComponent = react_1.default.forwardRef((props, ref) => {
|
|
|
386
404
|
}
|
|
387
405
|
// if the next `view` does not exist
|
|
388
406
|
if (!nextView && typeof onChange === 'function') {
|
|
389
|
-
|
|
390
|
-
a
|
|
391
|
-
a.setHours(0, 0, 0);
|
|
407
|
+
// The end of the last day of the month, the same way as for the year range
|
|
408
|
+
const a = new Date(newDate.getFullYear(), newDate.getMonth() + 1, 0, 23, 59, 59, 999);
|
|
392
409
|
const selectedValue = range ? [newDate, a] : newDate;
|
|
393
410
|
onChange(selectedValue);
|
|
394
411
|
if (!inputValue) {
|
|
@@ -411,12 +428,16 @@ const CalendarComponent = react_1.default.forwardRef((props, ref) => {
|
|
|
411
428
|
* Handle click on «Today» button
|
|
412
429
|
*/
|
|
413
430
|
const handleToday = react_1.default.useCallback(() => {
|
|
414
|
-
const
|
|
415
|
-
today.
|
|
431
|
+
const now = new Date();
|
|
432
|
+
const today = new Date(now.getFullYear(), now.getMonth(), now.getDate(), 0, 0, 0, 0);
|
|
433
|
+
const newValue = (range ? [today, today] : today);
|
|
416
434
|
setCalendarDate(today);
|
|
417
|
-
setValue(
|
|
418
|
-
|
|
419
|
-
|
|
435
|
+
setValue(newValue);
|
|
436
|
+
emitChange(newValue);
|
|
437
|
+
if (view !== 'days' && views.includes('days')) {
|
|
438
|
+
selectView('days');
|
|
439
|
+
}
|
|
440
|
+
}, [emitChange, range, selectView, view, views]);
|
|
420
441
|
const handleClickWeek = react_1.default.useCallback((week) => () => {
|
|
421
442
|
const days = week.days;
|
|
422
443
|
const dates = [days[0].date, days[days.length - 1].date];
|
|
@@ -445,8 +466,98 @@ const CalendarComponent = react_1.default.forwardRef((props, ref) => {
|
|
|
445
466
|
}, [views, range, selectView, onChange]);
|
|
446
467
|
const weeks = react_1.default.useMemo(() => getWeeks(calendarDate), [calendarDate, getWeeks]);
|
|
447
468
|
const yearsRange = react_1.default.useMemo(() => getYearsRange(minDate, maxDate), [minDate, maxDate, getYearsRange]);
|
|
448
|
-
const monthsRange = react_1.default.useMemo(() => getMonthsRange(minDate, maxDate), [minDate, maxDate, getMonthsRange]);
|
|
449
|
-
const
|
|
469
|
+
const monthsRange = react_1.default.useMemo(() => getMonthsRange(minDate, maxDate, calendarDate.getFullYear()), [minDate, maxDate, getMonthsRange, calendarDate]);
|
|
470
|
+
const minDay = react_1.default.useMemo(() => new Date(minDate.getFullYear(), minDate.getMonth(), minDate.getDate()), [minDate]);
|
|
471
|
+
const maxDay = react_1.default.useMemo(() => new Date(maxDate.getFullYear(), maxDate.getMonth(), maxDate.getDate()), [maxDate]);
|
|
472
|
+
const dayLabelFormatter = react_1.default.useMemo(() => typeof Intl !== 'undefined'
|
|
473
|
+
? new Intl.DateTimeFormat(locale, {
|
|
474
|
+
weekday: 'long',
|
|
475
|
+
day: 'numeric',
|
|
476
|
+
month: 'long',
|
|
477
|
+
year: 'numeric',
|
|
478
|
+
})
|
|
479
|
+
: null, [locale]);
|
|
480
|
+
/**
|
|
481
|
+
* The only day in the tab order: the focused, the selected, today or the first available one
|
|
482
|
+
*/
|
|
483
|
+
const tabbableDateKey = react_1.default.useMemo(() => {
|
|
484
|
+
const month = calendarDate.getMonth();
|
|
485
|
+
const days = weeks
|
|
486
|
+
.flatMap(week => week.days)
|
|
487
|
+
.filter(day => day.date.getMonth() === month && !day.isDisabled);
|
|
488
|
+
const selected = isRangeValue(value) ? value === null || value === void 0 ? void 0 : value[0] : isNotRangeValue(value) ? value : null;
|
|
489
|
+
const candidates = [focusedDate, selected, new Date()];
|
|
490
|
+
const found = candidates
|
|
491
|
+
.map(candidate => candidate && days.find(day => isSameDay(day.date, candidate)))
|
|
492
|
+
.find(Boolean);
|
|
493
|
+
return found ? dateKey(found.date) : days[0] ? dateKey(days[0].date) : null;
|
|
494
|
+
}, [calendarDate, weeks, value, focusedDate, isSameDay]);
|
|
495
|
+
/**
|
|
496
|
+
* Arrows move by a day and a week, Home/End — to the start/end of the week,
|
|
497
|
+
* PageUp/PageDown — by a month. Crossing the month border switches the month
|
|
498
|
+
*/
|
|
499
|
+
const handleDaysKeyDown = react_1.default.useCallback((event) => {
|
|
500
|
+
var _a;
|
|
501
|
+
const key = (_a = event.target.closest('[data-date]')) === null || _a === void 0 ? void 0 : _a.dataset.date;
|
|
502
|
+
if (!key)
|
|
503
|
+
return;
|
|
504
|
+
const [y, m, d] = key.split('-').map(Number);
|
|
505
|
+
const current = new Date(y, m, d);
|
|
506
|
+
const weekDay = (current.getDay() -
|
|
507
|
+
['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'].indexOf(weekStartDay) +
|
|
508
|
+
7) %
|
|
509
|
+
7;
|
|
510
|
+
let target;
|
|
511
|
+
switch (event.key) {
|
|
512
|
+
case 'ArrowLeft':
|
|
513
|
+
target = new Date(y, m, d - 1);
|
|
514
|
+
break;
|
|
515
|
+
case 'ArrowRight':
|
|
516
|
+
target = new Date(y, m, d + 1);
|
|
517
|
+
break;
|
|
518
|
+
case 'ArrowUp':
|
|
519
|
+
target = new Date(y, m, d - 7);
|
|
520
|
+
break;
|
|
521
|
+
case 'ArrowDown':
|
|
522
|
+
target = new Date(y, m, d + 7);
|
|
523
|
+
break;
|
|
524
|
+
case 'Home':
|
|
525
|
+
target = new Date(y, m, d - weekDay);
|
|
526
|
+
break;
|
|
527
|
+
case 'End':
|
|
528
|
+
target = new Date(y, m, d + 6 - weekDay);
|
|
529
|
+
break;
|
|
530
|
+
case 'PageUp':
|
|
531
|
+
target = new Date(y, m - 1, Math.min(d, new Date(y, m, 0).getDate()));
|
|
532
|
+
break;
|
|
533
|
+
case 'PageDown':
|
|
534
|
+
target = new Date(y, m + 1, Math.min(d, new Date(y, m + 2, 0).getDate()));
|
|
535
|
+
break;
|
|
536
|
+
default:
|
|
537
|
+
return;
|
|
538
|
+
}
|
|
539
|
+
event.preventDefault();
|
|
540
|
+
// Stay inside minDate/maxDate
|
|
541
|
+
if (target.getTime() < minDay.getTime())
|
|
542
|
+
target = minDay;
|
|
543
|
+
if (target.getTime() > maxDay.getTime())
|
|
544
|
+
target = maxDay;
|
|
545
|
+
setFocusedDate(target);
|
|
546
|
+
shouldMoveFocus.current = true;
|
|
547
|
+
if (target.getMonth() !== calendarDate.getMonth() ||
|
|
548
|
+
target.getFullYear() !== calendarDate.getFullYear()) {
|
|
549
|
+
setCalendarDate(new Date(target.getFullYear(), target.getMonth(), 1));
|
|
550
|
+
}
|
|
551
|
+
}, [weekStartDay, minDay, maxDay, calendarDate]);
|
|
552
|
+
// Move the DOM focus after the keyboard navigation has rendered the new day
|
|
553
|
+
react_1.default.useEffect(() => {
|
|
554
|
+
var _a, _b;
|
|
555
|
+
if (shouldMoveFocus.current && focusedDate) {
|
|
556
|
+
shouldMoveFocus.current = false;
|
|
557
|
+
(_b = (_a = dateContainerRef.current) === null || _a === void 0 ? void 0 : _a.querySelector(`[data-date="${dateKey(focusedDate)}"]`)) === null || _b === void 0 ? void 0 : _b.focus();
|
|
558
|
+
}
|
|
559
|
+
}, [focusedDate, calendarDate]);
|
|
560
|
+
const renderViewDays = react_1.default.useCallback(() => (react_1.default.createElement(overridesMap.DateContainer, { ref: dateContainerRef, onKeyDown: handleDaysKeyDown }, weeks.map(week => (react_1.default.createElement(overridesMap.WeekRow, { key: week.weekNumber }, week.days.map(day => {
|
|
450
561
|
if (day.date.getMonth() === calendarDate.getMonth()) {
|
|
451
562
|
const badge = badges.find(b => isSameDay(b.date, day.date));
|
|
452
563
|
let fill = false;
|
|
@@ -462,26 +573,30 @@ const CalendarComponent = react_1.default.forwardRef((props, ref) => {
|
|
|
462
573
|
else if (isNotRangeValue(value)) {
|
|
463
574
|
isSelected = Boolean(value && isSameDay(value, day.date));
|
|
464
575
|
}
|
|
465
|
-
|
|
576
|
+
const key = dateKey(day.date);
|
|
577
|
+
return (react_1.default.createElement(overridesMap.Cell, { key: day.date.getTime(), "data-date": key, tabIndex: key === tabbableDateKey ? 0 : -1, "aria-label": dayLabelFormatter === null || dayLabelFormatter === void 0 ? void 0 : dayLabelFormatter.format(day.date), "aria-pressed": isSelected || fill, "aria-current": day.isToday ? 'date' : undefined, isToday: markToday && day.isToday, isDisabled: day.isDisabled, accentColor: accentColor, isSelected: isSelected, fill: fill, onClick: handleCellDateClick(day.date) },
|
|
466
578
|
getDayLabel(day.date),
|
|
467
579
|
badge && (react_1.default.createElement(overridesMap.DayBadge, { badgeContent: badge.badgeContent, isToday: day.isToday, accentColor: badge.accentColor }))));
|
|
468
580
|
}
|
|
469
|
-
return (react_1.default.createElement(overridesMap.EmptyCell, { key: day.date.getTime() }, getDayLabel(day.date)));
|
|
581
|
+
return (react_1.default.createElement(overridesMap.EmptyCell, { key: day.date.getTime(), "aria-hidden": true }, getDayLabel(day.date)));
|
|
470
582
|
})))))), [
|
|
471
583
|
accentColor,
|
|
472
584
|
badges,
|
|
473
585
|
calendarDate,
|
|
586
|
+
dayLabelFormatter,
|
|
474
587
|
getDayLabel,
|
|
475
|
-
getWeeks,
|
|
476
588
|
handleCellDateClick,
|
|
589
|
+
handleDaysKeyDown,
|
|
477
590
|
isSameDay,
|
|
478
591
|
markToday,
|
|
479
592
|
overridesMap,
|
|
593
|
+
tabbableDateKey,
|
|
480
594
|
value,
|
|
595
|
+
weeks,
|
|
481
596
|
]);
|
|
482
597
|
const renderViewMonths = react_1.default.useCallback(() => (react_1.default.createElement(overridesMap.MonthsSelector, null, monthsRange.map(monthIndex => {
|
|
483
598
|
const isSelected = calendarDate.getMonth() === monthIndex;
|
|
484
|
-
return (react_1.default.createElement(overridesMap.MonthCell, { key: monthIndex
|
|
599
|
+
return (react_1.default.createElement(overridesMap.MonthCell, { key: monthIndex, accentColor: accentColor, isSelected: isSelected, "aria-pressed": isSelected, onClick: handleMonthSelected(monthIndex) }, getMonthLabel(new Date(calendarDate.getFullYear(), monthIndex, 1, 0, 0, 0, 0))));
|
|
485
600
|
}))), [accentColor, calendarDate, getMonthLabel, handleMonthSelected, monthsRange, overridesMap]);
|
|
486
601
|
const renderViewYears = react_1.default.useCallback(() => (react_1.default.createElement(overridesMap.YearsSelector, { accentColor: accentColor, date: calendarDate, onChange: y => handleYearSelected(y)(), years: yearsRange, locale: locale, minDate: minDate, maxDate: maxDate })), [
|
|
487
602
|
accentColor,
|
|
@@ -525,7 +640,6 @@ const CalendarComponent = react_1.default.forwardRef((props, ref) => {
|
|
|
525
640
|
overridesMap,
|
|
526
641
|
value,
|
|
527
642
|
]);
|
|
528
|
-
const initialIndex = react_1.default.useMemo(() => views.findIndex(v => v === view), [views, view]);
|
|
529
643
|
const getActiveView = react_1.default.useCallback(() => view, [view]);
|
|
530
644
|
const getCalendarDate = react_1.default.useCallback(() => calendarDate, [calendarDate]);
|
|
531
645
|
/**
|
|
@@ -545,7 +659,7 @@ const CalendarComponent = react_1.default.forwardRef((props, ref) => {
|
|
|
545
659
|
typeof heading !== 'undefined' && react_1.default.createElement(overridesMap.Heading, null, heading),
|
|
546
660
|
typeof subheading !== 'undefined' && (react_1.default.createElement(overridesMap.Subheading, null, subheading)),
|
|
547
661
|
react_1.default.createElement(overridesMap.Toolbar, null,
|
|
548
|
-
react_1.default.createElement(overridesMap.ControlButton, { iconOnly: true, onClick: handlePrevNextClick('prev'), disabled:
|
|
662
|
+
react_1.default.createElement(overridesMap.ControlButton, { iconOnly: true, onClick: handlePrevNextClick('prev'), disabled: view === 'years', "aria-label": prevButtonLabel, title: prevButtonLabel },
|
|
549
663
|
react_1.default.createElement(overridesMap.IconPrev, null)),
|
|
550
664
|
react_1.default.createElement(overridesMap.ControlButton, { disabled: !views.includes('months'), onClick: () => {
|
|
551
665
|
if (view === 'months' && views.includes('days')) {
|
|
@@ -563,31 +677,15 @@ const CalendarComponent = react_1.default.forwardRef((props, ref) => {
|
|
|
563
677
|
selectView('years');
|
|
564
678
|
}
|
|
565
679
|
} }, getYearLabel(calendarDate)),
|
|
566
|
-
react_1.default.createElement(overridesMap.ControlButton, { iconOnly: true, onClick: handlePrevNextClick('next'), disabled:
|
|
680
|
+
react_1.default.createElement(overridesMap.ControlButton, { iconOnly: true, onClick: handlePrevNextClick('next'), disabled: view === 'years', "aria-label": nextButtonLabel, title: nextButtonLabel },
|
|
567
681
|
react_1.default.createElement(overridesMap.IconNext, null)))),
|
|
568
682
|
view === 'days' && (react_1.default.createElement(overridesMap.WeekDaysBar, { locale: locale, week: weeks[0], format: weekDayLabelFormat || 'short' })),
|
|
569
683
|
react_1.default.createElement(overridesMap.Body, null,
|
|
570
|
-
react_1.default.createElement(
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
break;
|
|
576
|
-
case 'weeks':
|
|
577
|
-
renderedView = renderViewWeeks();
|
|
578
|
-
break;
|
|
579
|
-
case 'months':
|
|
580
|
-
renderedView = renderViewMonths();
|
|
581
|
-
break;
|
|
582
|
-
case 'years':
|
|
583
|
-
renderedView = renderViewYears();
|
|
584
|
-
break;
|
|
585
|
-
default:
|
|
586
|
-
renderedView = null;
|
|
587
|
-
break;
|
|
588
|
-
}
|
|
589
|
-
return react_1.default.createElement(Swiper_1.SwiperSlide, { key: viewName }, renderedView);
|
|
590
|
-
}))),
|
|
684
|
+
react_1.default.createElement(ViewContainer, { key: view },
|
|
685
|
+
view === 'days' && renderViewDays(),
|
|
686
|
+
view === 'weeks' && renderViewWeeks(),
|
|
687
|
+
view === 'months' && renderViewMonths(),
|
|
688
|
+
view === 'years' && renderViewYears())),
|
|
591
689
|
(typeof resetButtonLabel !== 'undefined' ||
|
|
592
690
|
typeof todayButtonLabel !== 'undefined' ||
|
|
593
691
|
typeof footer !== 'undefined') && (react_1.default.createElement(overridesMap.Footer, null,
|
|
@@ -4,5 +4,5 @@ export interface CalendarDayBadgeProps extends React.HTMLAttributes<HTMLSpanElem
|
|
|
4
4
|
readonly isToday: boolean;
|
|
5
5
|
readonly badgeContent: React.ReactNode;
|
|
6
6
|
}
|
|
7
|
-
declare const _default: React.ForwardRefExoticComponent<CalendarDayBadgeProps & React.RefAttributes<
|
|
7
|
+
declare const _default: React.ForwardRefExoticComponent<CalendarDayBadgeProps & React.RefAttributes<HTMLSpanElement>>;
|
|
8
8
|
export default _default;
|
|
@@ -24,20 +24,10 @@ const Btn = (0, styled_1.default)(Button_1.default) `
|
|
|
24
24
|
font-size: 0.8em;
|
|
25
25
|
margin: 0;
|
|
26
26
|
min-width: 0;
|
|
27
|
-
outline: none;
|
|
28
27
|
flex-basis: 50%;
|
|
29
28
|
`;
|
|
30
29
|
const CalendarMonthCell = (props, ref) => {
|
|
31
30
|
const { children, isSelected, accentColor } = props, restProps = __rest(props, ["children", "isSelected", "accentColor"]);
|
|
32
|
-
|
|
33
|
-
return (react_1.default.createElement(Btn, Object.assign({}, restProps, { type: "button", variant: isSelected ? 'standard' : 'plain', color: isSelected ? accentColor : 'default', ref: el => {
|
|
34
|
-
if (typeof ref === 'function') {
|
|
35
|
-
ref(el);
|
|
36
|
-
}
|
|
37
|
-
if (ref && typeof ref === 'object') {
|
|
38
|
-
ref.current = el;
|
|
39
|
-
}
|
|
40
|
-
myRef.current = el;
|
|
41
|
-
} }), children));
|
|
31
|
+
return (react_1.default.createElement(Btn, Object.assign({}, restProps, { type: "button", variant: isSelected ? 'standard' : 'plain', color: isSelected ? accentColor : 'default', ref: ref }), children));
|
|
42
32
|
};
|
|
43
33
|
exports.default = react_1.default.forwardRef(CalendarMonthCell);
|
|
@@ -6,7 +6,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
6
6
|
const react_1 = __importDefault(require("react"));
|
|
7
7
|
const styled_1 = __importDefault(require("@emotion/styled"));
|
|
8
8
|
const CalendarWeekDayLabel = styled_1.default.div `
|
|
9
|
-
|
|
9
|
+
display: flex;
|
|
10
|
+
align-items: center;
|
|
11
|
+
justify-content: center;
|
|
10
12
|
font-weight: 200;
|
|
11
13
|
font-size: 0.8em;
|
|
12
14
|
user-select: none;
|
|
@@ -29,6 +29,11 @@ const CalendarWeekDaysBar = (props, ref) => {
|
|
|
29
29
|
weekday: format,
|
|
30
30
|
}).format(day.date)
|
|
31
31
|
: '\u{0020}'), [format, locale, week]);
|
|
32
|
-
return (
|
|
32
|
+
return (
|
|
33
|
+
// Hidden from screen readers: every day cell has the full date label with the weekday
|
|
34
|
+
react_1.default.createElement(Container, Object.assign({ "aria-hidden": true }, restProps, { ref: ref }), weekDayLabels.map((label, index) => (
|
|
35
|
+
// The narrow labels repeat (e.g. «С» for Wednesday and Saturday), so the key is the index
|
|
36
|
+
// eslint-disable-next-line react/no-array-index-key
|
|
37
|
+
react_1.default.createElement(CalendarWeekDayLabel_1.default, { key: index }, label)))));
|
|
33
38
|
};
|
|
34
39
|
exports.default = react_1.default.forwardRef(CalendarWeekDaysBar);
|
|
@@ -24,25 +24,10 @@ const Btn = (0, styled_1.default)(Button_1.default) `
|
|
|
24
24
|
font-size: 0.9em;
|
|
25
25
|
margin: 0;
|
|
26
26
|
min-width: 0;
|
|
27
|
-
outline: none;
|
|
28
27
|
flex-basis: 33%;
|
|
29
28
|
`;
|
|
30
29
|
const CalendarYearCell = (props, ref) => {
|
|
31
30
|
const { children, isSelected, accentColor } = props, restProps = __rest(props, ["children", "isSelected", "accentColor"]);
|
|
32
|
-
|
|
33
|
-
// React.useEffect(() => {
|
|
34
|
-
// if (isSelected && myRef.current) {
|
|
35
|
-
// myRef.current.scrollIntoView({ behavior: 'instant' });
|
|
36
|
-
// }
|
|
37
|
-
// }, [isSelected]);
|
|
38
|
-
return (react_1.default.createElement(Btn, Object.assign({}, restProps, { type: "button", variant: isSelected ? 'standard' : 'plain', color: isSelected ? accentColor : 'default', ref: el => {
|
|
39
|
-
if (typeof ref === 'function') {
|
|
40
|
-
ref(el);
|
|
41
|
-
}
|
|
42
|
-
if (ref && typeof ref === 'object') {
|
|
43
|
-
ref.current = el;
|
|
44
|
-
}
|
|
45
|
-
myRef.current = el;
|
|
46
|
-
} }), children));
|
|
31
|
+
return (react_1.default.createElement(Btn, Object.assign({}, restProps, { type: "button", variant: isSelected ? 'standard' : 'plain', color: isSelected ? accentColor : 'default', ref: ref }), children));
|
|
47
32
|
};
|
|
48
33
|
exports.default = react_1.default.forwardRef(CalendarYearCell);
|