@ryuzaki13/react-foundation-ui 1.8.20 → 1.9.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/{CalendarView-BJx6akIp.js → CalendarView-j6rF-EWR.js} +82 -87
- package/dist/chunks/CalendarView-j6rF-EWR.js.map +1 -0
- package/dist/chunks/date-input-B4n6tceY.js +374 -0
- package/dist/chunks/date-input-B4n6tceY.js.map +1 -0
- package/dist/date-input/index.js +3 -3
- package/dist/date-input/lib/dateInputCalendar.d.ts +0 -1
- package/dist/date-input/lib/dateInputCalendar.d.ts.map +1 -1
- package/dist/date-input/lib/dateInputSelectionModes.d.ts +28 -0
- package/dist/date-input/lib/dateInputSelectionModes.d.ts.map +1 -0
- package/dist/date-input/lib/index.d.ts +1 -0
- package/dist/date-input/lib/index.d.ts.map +1 -1
- package/dist/date-input/lib/types.d.ts +4 -0
- package/dist/date-input/lib/types.d.ts.map +1 -1
- package/dist/date-input/ui/DateInput.d.ts +6 -1
- package/dist/date-input/ui/DateInput.d.ts.map +1 -1
- package/dist/date-time-input/index.js +1 -1
- package/dist/preset-range-date-input/index.js +1 -1
- package/dist/styles.css +1 -1
- package/package.json +1 -1
- package/src/styles/mixins/_controls.scss +3 -1
- package/src/styles/mixins/controls.test.ts +33 -0
- package/storybook-static/assets/{Badge-CtgCgcrE.js → Badge-DU2K0DrS.js} +1 -1
- package/storybook-static/assets/{Badge.stories-Bde8GdpE.js → Badge.stories-BhI5mIOF.js} +1 -1
- package/storybook-static/assets/{BadgeList-B354PiFh.js → BadgeList-R6DHHLqw.js} +1 -1
- package/storybook-static/assets/{Button-DdWXdL9L.js → Button-CT3yQqmz.js} +1 -1
- package/storybook-static/assets/{Button-BC1vJeBh.js → Button-ihg7_sUm.js} +1 -1
- package/storybook-static/assets/{Button.stories-CvsBKXsv.js → Button.stories-Bi7w3gzy.js} +1 -1
- package/storybook-static/assets/CalendarView-CsST9aAV.js +1 -0
- package/storybook-static/assets/{CheckBox-DlCG7Opb.js → CheckBox-BFc4IffJ.js} +1 -1
- package/storybook-static/assets/{CheckBox-BaKD1lsb.js → CheckBox-DxO5x6Qm.js} +1 -1
- package/storybook-static/assets/{CheckBox.stories-noW5T-OA.js → CheckBox.stories-CM_hz-pE.js} +1 -1
- package/storybook-static/assets/{Color-6AOWCN3U-DVSJ6tQm.js → Color-6AOWCN3U-B2Fbq2Wt.js} +1 -1
- package/storybook-static/assets/{ContextMenu-DL12BLWo.js → ContextMenu-BeMwFYT2.js} +1 -1
- package/storybook-static/assets/{ContextMenu-D79bky7p.js → ContextMenu-NqsNvodN.js} +1 -1
- package/storybook-static/assets/{ContextMenu.stories-BwyqG2jc.js → ContextMenu.stories-D1PGRVY1.js} +1 -1
- package/storybook-static/assets/{CustomOptionButton-oTNty8hW.js → CustomOptionButton-CpxY7Iiq.js} +1 -1
- package/storybook-static/assets/{DateInput-YyZk0Ov_.js → DateInput-C6TzbvH7.js} +1 -1
- package/storybook-static/assets/DateInput-CrBrOHph.js +1 -0
- package/storybook-static/assets/DateInput.stories-Bf-v693P.js +121 -0
- package/storybook-static/assets/{DateRangePresetSelect-C-AvOpuX.js → DateRangePresetSelect-Bkif-6sj.js} +1 -1
- package/storybook-static/assets/DateRangePresetSelect-D24fU1gP.js +3 -0
- package/storybook-static/assets/{DateRangePresetSelect.stories-XvgjFAh7.js → DateRangePresetSelect.stories-BrU0DAXz.js} +1 -1
- package/storybook-static/assets/{Detail-BpXehD7_.js → Detail-BAUedDN6.js} +1 -1
- package/storybook-static/assets/{Detail.stories-BQWhtlp0.js → Detail.stories-ZU-JhlJs.js} +1 -1
- package/storybook-static/assets/{Dialog-D3hJTgwE.js → Dialog-CgjAAIvA.js} +1 -1
- package/storybook-static/assets/{Dialog-DODbPv79.js → Dialog-CvUwrKr9.js} +1 -1
- package/storybook-static/assets/{Dialog.stories-DcgpUIUP.js → Dialog.stories-Bf8AfQvH.js} +1 -1
- package/storybook-static/assets/{Disclosure-5UdBgIbZ.js → Disclosure-B3UOiBPg.js} +1 -1
- package/storybook-static/assets/{Disclosure.stories-IYljEE4h.js → Disclosure.stories-Cg_-qaCd.js} +1 -1
- package/storybook-static/assets/{DisclosureGroup-Bbseg3US.js → DisclosureGroup-C3UeWwuT.js} +1 -1
- package/storybook-static/assets/{DocsRenderer-JROSPFPF-CADpK3Xb.js → DocsRenderer-JROSPFPF-Ct1wiaFH.js} +1 -1
- package/storybook-static/assets/{DropZone-CI5qAgz5.js → DropZone-88oF3x43.js} +1 -1
- package/storybook-static/assets/{DropZone-BKncWUns.js → DropZone-B3C44gN9.js} +1 -1
- package/storybook-static/assets/{DropZone.stories-CmLlcGx0.js → DropZone.stories-AqndqdBQ.js} +1 -1
- package/storybook-static/assets/{DropdownMenu-K7NYW8LX.js → DropdownMenu-Qa_Bfcqx.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel-DSHE6wTG.js → ExpandableActionPanel-fcel7uHB.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel.stories-BN_qe4FR.js → ExpandableActionPanel.stories-VOoQfaKt.js} +1 -1
- package/storybook-static/assets/{Flex-BP4dH1EM.js → Flex-D942bpk8.js} +1 -1
- package/storybook-static/assets/{Flex.stories-CG6MjVWv.js → Flex.stories-DcRudIOt.js} +1 -1
- package/storybook-static/assets/{FloatingPopover-CbuI645U.js → FloatingPopover-DH400R4C.js} +1 -1
- package/storybook-static/assets/{FormattedTableCell-SiBfPwwP.js → FormattedTableCell-DoHKYFCv.js} +1 -1
- package/storybook-static/assets/{Grid-CcYtG8qC.js → Grid-BZTOTMca.js} +1 -1
- package/storybook-static/assets/{Grid.stories-D8AkQcoe.js → Grid.stories-Xe-AxD7S.js} +1 -1
- package/storybook-static/assets/{ImageCropper.stories-DgYml-BE.js → ImageCropper.stories-fJ5huht0.js} +1 -1
- package/storybook-static/assets/{ImageRenderer-DdnnseXq.js → ImageRenderer-D-Cws3iv.js} +1 -1
- package/storybook-static/assets/{ImageRenderer.stories-BN4QxhBf.js → ImageRenderer.stories-DnS4rs8z.js} +1 -1
- package/storybook-static/assets/{ImageView.stories-2LMwV4qh.js → ImageView.stories-Boksr4ea.js} +1 -1
- package/storybook-static/assets/{ImageViewer.stories-D6BcidoN.js → ImageViewer.stories-CKW4vEZe.js} +2 -2
- package/storybook-static/assets/{ImageViewerRuntime-DVUlXl_G.js → ImageViewerRuntime-iZIRZ9Uu.js} +1 -1
- package/storybook-static/assets/{Input-Bb5uuJsd.js → Input-CBBDh08C.js} +1 -1
- package/storybook-static/assets/{Input-CWQgYEr9.js → Input-hjGPw0dP.js} +1 -1
- package/storybook-static/assets/{Input.stories-B0SSM1T_.js → Input.stories-CheYS3Jv.js} +1 -1
- package/storybook-static/assets/{InputDateTime-EefPx2jA.js → InputDateTime-DJ0UTVxZ.js} +1 -1
- package/storybook-static/assets/{InputDateTime.stories-B71jcVWG.js → InputDateTime.stories-XaTRC9bK.js} +1 -1
- package/storybook-static/assets/{InputFile-CktSGEBF.js → InputFile-CJZpgCtE.js} +1 -1
- package/storybook-static/assets/{InputFile-BqoeOsqC.js → InputFile-DtIL_5Nj.js} +1 -1
- package/storybook-static/assets/{InputFile.stories-Ce3mDoRs.js → InputFile.stories-B7320Wji.js} +1 -1
- package/storybook-static/assets/{InputFiles-B5O1fLjO.js → InputFiles-BnWQVqqx.js} +1 -1
- package/storybook-static/assets/{InputFiles-RrvJwhF3.js → InputFiles-DBBygHh4.js} +1 -1
- package/storybook-static/assets/{InputFiles.stories-BwWItttY.js → InputFiles.stories-6mB5Ntpo.js} +1 -1
- package/storybook-static/assets/{InputFilesList-DStssgki.js → InputFilesList-DdxwwWeV.js} +1 -1
- package/storybook-static/assets/{InputImage-CPGNaW07.js → InputImage-CW47-3UA.js} +1 -1
- package/storybook-static/assets/{InputImage-CvuIiNq_.js → InputImage-Ccqvh1AK.js} +1 -1
- package/storybook-static/assets/{InputImage.stories-CCG2g2Io.js → InputImage.stories-Bmy9dY7y.js} +1 -1
- package/storybook-static/assets/{InteractiveComponents-BgsmaSTZ.js → InteractiveComponents-BSV_Hfsg.js} +1 -1
- package/storybook-static/assets/{InteractiveComponents.stories-BwtQ8dqK.js → InteractiveComponents.stories-d_nfCVV2.js} +1 -1
- package/storybook-static/assets/{LayoutPicker-DsGelRcW.js → LayoutPicker-C5e7ZKFl.js} +1 -1
- package/storybook-static/assets/{LayoutPicker-DRtnMCPh.js → LayoutPicker-CZUlsLOk.js} +1 -1
- package/storybook-static/assets/{LayoutPicker.stories-BWnRDODR.js → LayoutPicker.stories-CiIAn6ds.js} +1 -1
- package/storybook-static/assets/{Listbox-IR21PF4n.js → Listbox-B3BjjkIo.js} +1 -1
- package/storybook-static/assets/{Listbox-DOUFsbK8.js → Listbox-DXO5bvfV.js} +1 -1
- package/storybook-static/assets/{Listbox.stories-qC0AcRTK.js → Listbox.stories-DOlPKZb5.js} +1 -1
- package/storybook-static/assets/{Modal-D8Il31Wx.js → Modal-BuBnRd_y.js} +1 -1
- package/storybook-static/assets/{Modal.stories-Vb_wvC7j.js → Modal.stories-B1jk3B2O.js} +1 -1
- package/storybook-static/assets/{ModalManagerProvider-DW29PIGA.js → ModalManagerProvider-Biub6PZf.js} +1 -1
- package/storybook-static/assets/{MultiSelect-Bi7awY_l.js → MultiSelect-NT4xvBVt.js} +1 -1
- package/storybook-static/assets/{MultiSelect-BTXEzEbr.js → MultiSelect-fhwrvdiU.js} +1 -1
- package/storybook-static/assets/{MultiSelect.stories-BHm7nyE0.js → MultiSelect.stories-CM1b37c9.js} +1 -1
- package/storybook-static/assets/{NoData-D2fqJN8_.js → NoData-B_dw4uDb.js} +1 -1
- package/storybook-static/assets/{NotificationsHost-CB4Caorz.js → NotificationsHost-CRdvl4Dd.js} +1 -1
- package/storybook-static/assets/{NotificationsHost.stories-ClREN7GD.js → NotificationsHost.stories-C49W3E4K.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect-DVqtuVtf.js → ODataMultiSelect-DNZ67x4G.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect.stories-BXspOSkv.js → ODataMultiSelect.stories-wl7smamU.js} +1 -1
- package/storybook-static/assets/{ODataSelect-ODT2BTTx.js → ODataSelect-Qp-_K1lt.js} +1 -1
- package/storybook-static/assets/{ODataSelect.stories-Czh9ONwP.js → ODataSelect.stories-DDJXizE5.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect-D2CfiHud.js → ODataTreeMultiSelect-MQjX4ZTL.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect.stories-C5CcMnCO.js → ODataTreeMultiSelect.stories-DKTuA2yA.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect-CtXGcTu6.js → ODataTreeSelect-Bb3BzyP8.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect.stories-D9C0TW7E.js → ODataTreeSelect.stories-OQC-rN4j.js} +1 -1
- package/storybook-static/assets/{OneStepScroller-DvNxIB4z.js → OneStepScroller-D87fQWV7.js} +1 -1
- package/storybook-static/assets/{Option-EvZAvPlO.js → Option-BQpKyj2M.js} +1 -1
- package/storybook-static/assets/{OptionButton-ClHPJWSS.js → OptionButton-C4AHWy8Y.js} +1 -1
- package/storybook-static/assets/PeriodSelect--DIkvDH2.js +5 -0
- package/storybook-static/assets/{PeriodSelect-CopVqvke.js → PeriodSelect-1RczCTvF.js} +1 -1
- package/storybook-static/assets/{PeriodSelect.stories-CdPRC5lO.js → PeriodSelect.stories-ChkRok4W.js} +1 -1
- package/storybook-static/assets/{PickerTriggerActions-CChnIvDY.js → PickerTriggerActions-BXo3P8jd.js} +1 -1
- package/storybook-static/assets/{Popover-GCefn4ZK.js → Popover-DVlKCUFT.js} +1 -1
- package/storybook-static/assets/{Popover-D84worS4.js → Popover-K0o6hTKI.js} +1 -1
- package/storybook-static/assets/{Popover.stories-Km8RZinG.js → Popover.stories-DqkVlxXC.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-CKkA7evU.js → PresetRangeDateInput-B3FObd-M.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-D8Nd8OKM.js → PresetRangeDateInput-DRPd1tPb.js} +1 -1
- package/storybook-static/assets/PresetRangeDateInput.stories-CcqRp3cD.js +3 -0
- package/storybook-static/assets/PresetSelect-v_UsKHrQ.js +5 -0
- package/storybook-static/assets/{README-DgVBKXxO.js → README-0FMW23cn.js} +1 -1
- package/storybook-static/assets/{README-DsG_VYny.js → README-2wnaSv5v.js} +1 -1
- package/storybook-static/assets/{README-oFnWsuXd.js → README-B1N66BJ6.js} +1 -1
- package/storybook-static/assets/{README-Ch_Q8rfx.js → README-B3u3h0VU.js} +1 -1
- package/storybook-static/assets/{README-EfW0h3H2.js → README-B5hYd7s9.js} +1 -1
- package/storybook-static/assets/{README-ByU9WtnE.js → README-B6-WdK-c.js} +1 -1
- package/storybook-static/assets/{README-CzVaDwCa.js → README-B9E6_SC9.js} +1 -1
- package/storybook-static/assets/{README-Dwu0rBCx.js → README-BD9KaHyV.js} +1 -1
- package/storybook-static/assets/{README-na4Tvba4.js → README-BFNtmbdu.js} +1 -1
- package/storybook-static/assets/{README-C7uZcWP5.js → README-BFlLDk-o.js} +1 -1
- package/storybook-static/assets/{README-CGtXxNWL.js → README-BHrFqCCt.js} +1 -1
- package/storybook-static/assets/{README-DBgowiDe.js → README-BI5pqsfw.js} +1 -1
- package/storybook-static/assets/{README-I-J1PF75.js → README-BI60FyCh.js} +1 -1
- package/storybook-static/assets/{README-BAsxlcAX.js → README-BIV-jN9Z.js} +1 -1
- package/storybook-static/assets/{README-foisdU5e.js → README-BR0thsbI.js} +1 -1
- package/storybook-static/assets/{README-D3ahQzwF.js → README-BU8P_I8z.js} +1 -1
- package/storybook-static/assets/{README-Du_uNuzw.js → README-BVqzmiUl.js} +1 -1
- package/storybook-static/assets/{README-GPrnGZGg.js → README-BsAgW1dS.js} +1 -1
- package/storybook-static/assets/{README-DIz7GaJX.js → README-Bw40QK-T.js} +1 -1
- package/storybook-static/assets/{README-B2OZG04f.js → README-C4nDae8W.js} +1 -1
- package/storybook-static/assets/{README-BZOXtBHM.js → README-CB9yRLao.js} +1 -1
- package/storybook-static/assets/{README-CU0nO91c.js → README-CL4tUus8.js} +1 -1
- package/storybook-static/assets/{README-cHwz_DGu.js → README-CL6mbKKB.js} +1 -1
- package/storybook-static/assets/{README-DEZR-nsP.js → README-COmxniMh.js} +1 -1
- package/storybook-static/assets/{README-BQw3k-Ra.js → README-CRecN7Cc.js} +1 -1
- package/storybook-static/assets/{README-efyzb9zY.js → README-CTxL9zli.js} +1 -1
- package/storybook-static/assets/{README-B2M46KR7.js → README-CV36sBs2.js} +1 -1
- package/storybook-static/assets/{README-CpJrFpd-.js → README-Cb-zfeS4.js} +1 -1
- package/storybook-static/assets/{README-Dga9VBXp.js → README-Cen-qPN9.js} +1 -1
- package/storybook-static/assets/{README-C65NMR4N.js → README-CgVbGyj-.js} +1 -1
- package/storybook-static/assets/{README-CeVilD38.js → README-Ck4EKs1N.js} +1 -1
- package/storybook-static/assets/{README-C-HfyZj6.js → README-Coqkm4tP.js} +1 -1
- package/storybook-static/assets/{README-BPyrojLC.js → README-Cw3YzXhC.js} +1 -1
- package/storybook-static/assets/{README-9g3GgWWF.js → README-D6Gdj2lp.js} +1 -1
- package/storybook-static/assets/{README-DBedFn2k.js → README-DCDL4MoA.js} +1 -1
- package/storybook-static/assets/{README-DazyZywt.js → README-DNz6VF3D.js} +1 -1
- package/storybook-static/assets/{README-BYe60A3Z.js → README-DPo1eUrT.js} +1 -1
- package/storybook-static/assets/{README-CJIysyPl.js → README-DUJYCh6-.js} +1 -1
- package/storybook-static/assets/{README-pdJ6FjLG.js → README-D_iWSy_c.js} +1 -1
- package/storybook-static/assets/{README-CV043M5l.js → README-DaMVfUGE.js} +1 -1
- package/storybook-static/assets/{README-DS9gKK_l.js → README-DcTbPuHc.js} +1 -1
- package/storybook-static/assets/{README-Bn52nDUU.js → README-DinJbR9c.js} +1 -1
- package/storybook-static/assets/{README-DsTcywLt.js → README-DjTRabqT.js} +1 -1
- package/storybook-static/assets/{README-Bu8NSN83.js → README-DlYoEeml.js} +1 -1
- package/storybook-static/assets/{README-C19FjXEc.js → README-Dm5MEGHL.js} +1 -1
- package/storybook-static/assets/{README-AVujzV-Q.js → README-G2wwMTLF.js} +1 -1
- package/storybook-static/assets/{README-DTM6S2tD.js → README-IFUvyXLo.js} +1 -1
- package/storybook-static/assets/{README-C3ootpC3.js → README-mtaK0waX.js} +1 -1
- package/storybook-static/assets/{README-DOwtu6P8.js → README-nhKJ9Afj.js} +1 -1
- package/storybook-static/assets/{README-C9g6HTtO.js → README-oEGxREVx.js} +1 -1
- package/storybook-static/assets/{README-DRlbzNwm.js → README-t13u8nVo.js} +1 -1
- package/storybook-static/assets/{README-Btc8dTTa.js → README-uzDmL9NB.js} +1 -1
- package/storybook-static/assets/{RadioButton-Dk52KGyn.js → RadioButton-BISJSNMA.js} +1 -1
- package/storybook-static/assets/{RadioButton-CFIAc4xz.js → RadioButton-D6v1Zs2j.js} +1 -1
- package/storybook-static/assets/{RadioButton.stories-B10De9DU.js → RadioButton.stories-FIaxkfbN.js} +1 -1
- package/storybook-static/assets/{RadioGroup-DHpLxYGV.js → RadioGroup-CK_5pd_1.js} +1 -1
- package/storybook-static/assets/{RadioGroup-B7X4Pr-l.js → RadioGroup-CXr0cMTX.js} +1 -1
- package/storybook-static/assets/{RadioGroup.stories-BAE8jGr_.js → RadioGroup.stories-CEGoDwED.js} +1 -1
- package/storybook-static/assets/{Scrollable-vhQ02gPl.js → Scrollable-Cmyv-Jo1.js} +1 -1
- package/storybook-static/assets/{Select-5pGJ-9Pp.js → Select-BL9g-Y_t.js} +1 -1
- package/storybook-static/assets/{Select-wSFMQijV.js → Select-CCx1jL-T.js} +1 -1
- package/storybook-static/assets/{Select.stories-D6_viZUX.js → Select.stories-BC65geR4.js} +1 -1
- package/storybook-static/assets/{SerializableSelect-DDx9-Bur.js → SerializableSelect-DKsYyPIC.js} +1 -1
- package/storybook-static/assets/{SerializableSelect.stories-lLHLEyB9.js → SerializableSelect.stories-Bk7ZT_QL.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-DKleuzaX.js → SingleDateTimeInput-BteA6Du0.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-B4vUIB4m.js → SingleDateTimeInput-d_kqQ9kt.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput.stories-U_d98CIX.js → SingleDateTimeInput.stories-DyVI3gAW.js} +1 -1
- package/storybook-static/assets/{Slider-C9EHsb-H.js → Slider-CcsBujQ0.js} +1 -1
- package/storybook-static/assets/{Slider-Dfj4alv-.js → Slider-rjwPGDzV.js} +1 -1
- package/storybook-static/assets/{Slider.stories-vZkWxSqT.js → Slider.stories-DvWMKL3H.js} +1 -1
- package/storybook-static/assets/{SliderInput-CzlPZSO9.js → SliderInput-DBLST-aR.js} +1 -1
- package/storybook-static/assets/{SliderInput-BdYHLdem.js → SliderInput-DUurBkFw.js} +1 -1
- package/storybook-static/assets/{SliderInput.stories-C6tBSbPb.js → SliderInput.stories-CRWtEuN4.js} +1 -1
- package/storybook-static/assets/{Sortable-BGVo-kNH.js → Sortable-quVk1Py9.js} +1 -1
- package/storybook-static/assets/{Sortable.stories-vIFl2X-p.js → Sortable.stories-BujP-vGu.js} +1 -1
- package/storybook-static/assets/{Splitter-BQWPhfku.js → Splitter-C0kwl_25.js} +1 -1
- package/storybook-static/assets/{Splitter.stories-ICS_ZBHX.js → Splitter.stories-CcIx4Pg-.js} +1 -1
- package/storybook-static/assets/{StateSelect-CyReXSM1.js → StateSelect-DYpIeKoe.js} +1 -1
- package/storybook-static/assets/{StateSelect-Dd6SpUUh.js → StateSelect-tTcqDLNP.js} +1 -1
- package/storybook-static/assets/{StateSelect.stories-D0-HsFXZ.js → StateSelect.stories--iWwJ8jg.js} +1 -1
- package/storybook-static/assets/{StringToggle.stories-pC48Sxqx.js → StringToggle.stories-CSruhQqc.js} +1 -1
- package/storybook-static/assets/{Switch-BqR-1lxY.js → Switch-CrcT4UFR.js} +1 -1
- package/storybook-static/assets/{Switch-Cj8-VcVg.js → Switch-rkz7_00r.js} +1 -1
- package/storybook-static/assets/{Switch.stories-WiYjSzuW.js → Switch.stories-DzOFYcL9.js} +1 -1
- package/storybook-static/assets/{Table-BxXretCJ.js → Table-DqHHDTTR.js} +1 -1
- package/storybook-static/assets/{Table.stories-BNQvlsuf.js → Table.stories-BUNtSJEX.js} +1 -1
- package/storybook-static/assets/{Tabs-Bfy1NJMT.js → Tabs-BbaqSmvI.js} +1 -1
- package/storybook-static/assets/{Tabs.stories-CPIuTwP2.js → Tabs.stories-IzLL08Yv.js} +1 -1
- package/storybook-static/assets/{TabsBox-jMCEuOZ4.js → TabsBox-DWQ5n-Xx.js} +1 -1
- package/storybook-static/assets/{TagInput-BUw0lagA.js → TagInput-D7nGIwZW.js} +1 -1
- package/storybook-static/assets/{TagInput.stories-DFt-q5Jo.js → TagInput.stories-B8kJzHwK.js} +1 -1
- package/storybook-static/assets/{Text-qYKrK4eb.js → Text-Dr2E7AR3.js} +1 -1
- package/storybook-static/assets/{Textarea-evU43JN1.js → Textarea-BrfmdZer.js} +1 -1
- package/storybook-static/assets/{Textarea-CHFjT8jC.js → Textarea-DCnUP_Bj.js} +1 -1
- package/storybook-static/assets/{Textarea.stories-DEIYLgZF.js → Textarea.stories-CrJ0BnOb.js} +1 -1
- package/storybook-static/assets/{TimePanel-DTiDfMFt.js → TimePanel-BCpjsBx4.js} +1 -1
- package/storybook-static/assets/{TimePanel.stories-Ct__ocID.js → TimePanel.stories-NpKRUFL_.js} +1 -1
- package/storybook-static/assets/{Toggle-IdtrAW0T.js → Toggle-D2INjZu2.js} +1 -1
- package/storybook-static/assets/{Toggle-IPvbQmMD.js → Toggle-nPZDBi9M.js} +1 -1
- package/storybook-static/assets/{Toggle.stories-BJ9VWYeG.js → Toggle.stories-CHUe4vQa.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-CH0Zc3KF.js → TreeMultiSelect-BJ4YHEJB.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-CSd33bKQ.js → TreeMultiSelect-BdpKV-JV.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect.stories-BJwU3XBe.js → TreeMultiSelect.stories-DMlwOdrJ.js} +1 -1
- package/storybook-static/assets/{TreePickerBase-CKnyu6AR.js → TreePickerBase-DkKRLKmS.js} +1 -1
- package/storybook-static/assets/{TreeSelect-DYJm99Z2.js → TreeSelect-CAzXci7W.js} +1 -1
- package/storybook-static/assets/{TreeSelect-DiiLtgN_.js → TreeSelect-CMJ9p_Id.js} +1 -1
- package/storybook-static/assets/{TreeSelect.stories-CEiN12BG.js → TreeSelect.stories-BseC2N0h.js} +1 -1
- package/storybook-static/assets/{TreeTable-CInX-hLX.js → TreeTable-vMWjBQAL.js} +1 -1
- package/storybook-static/assets/{TreeTable.stories-DQsXSocU.js → TreeTable.stories-CM4FKMlE.js} +1 -1
- package/storybook-static/assets/{blocks-v2XPznvF.js → blocks-CY4OKSog.js} +3 -3
- package/storybook-static/assets/{check-Cw2uZkgi.js → check-Deq19HNe.js} +1 -1
- package/storybook-static/assets/{chevron-down-DCcoFYMu.js → chevron-down-BnADIlJa.js} +1 -1
- package/storybook-static/assets/{chevron-left-DbTmcqTw.js → chevron-left-BWjIYIle.js} +1 -1
- package/storybook-static/assets/{chevron-right-BhBh36az.js → chevron-right-CiDR9fk2.js} +1 -1
- package/storybook-static/assets/{chunk-W22LQPXL-2pLErBcr.js → chunk-W22LQPXL-BhNSu_r7.js} +1 -1
- package/storybook-static/assets/{circle-alert-DztOdOaG.js → circle-alert-DYuo-mDo.js} +1 -1
- package/storybook-static/assets/{circle-check-CAdrHnV2.js → circle-check-BonZVO7U.js} +1 -1
- package/storybook-static/assets/{components-BTpiQE9n.js → components-B2RNHM2m.js} +3 -3
- package/storybook-static/assets/{contextMenu-DJ0HpnV6.js → contextMenu-YI4kf_HX.js} +1 -1
- package/storybook-static/assets/{download-BT_zAyTC.js → download-BdBADZzo.js} +1 -1
- package/storybook-static/assets/{floating-ui.react-Cvohd2Gw.js → floating-ui.react-DzVebNcN.js} +1 -1
- package/storybook-static/assets/{foundationApi-DJeCu7Ht.js → foundationApi-BPUrbuT4.js} +1 -1
- package/storybook-static/assets/{foundationLib-hGtcm5KL.js → foundationLib-DrKj8bGH.js} +1 -1
- package/storybook-static/assets/{hooks-BCeL5FKt.js → hooks-BRLROQyj.js} +1 -1
- package/storybook-static/assets/{iframe-BIt4o49Q.css → iframe-CVnDVOw3.css} +1 -1
- package/storybook-static/assets/iframe-Cvavo2uO.js +1 -0
- package/storybook-static/assets/{iframe-DlUmG4EA.js → iframe-DgjhrIIq.js} +3 -3
- package/storybook-static/assets/{info-BkC2CBYX.js → info-DoZraMvL.js} +1 -1
- package/storybook-static/assets/{odata-BMO7cuBZ.js → odata-DvaCm7pl.js} +1 -1
- package/storybook-static/assets/{odataStoryFixtures-CWldE9pM.js → odataStoryFixtures-Dd0bvzJx.js} +1 -1
- package/storybook-static/assets/{react-C0u6t2Tr.js → react-Bxn4ENip.js} +1 -1
- package/storybook-static/assets/{refresh-cw-BA16_2Dg.js → refresh-cw-JYreuMtq.js} +1 -1
- package/storybook-static/assets/{settings-2-C3fAar8h.js → settings-2-DhWCsgbM.js} +1 -1
- package/storybook-static/assets/{sortable-4U2uS5RT.js → sortable-dM4jvHUL.js} +1 -1
- package/storybook-static/assets/{syntaxhighlighter-QEQV7K2Y-e4tU0oKD.js → syntaxhighlighter-QEQV7K2Y-Cz6kuRwZ.js} +1 -1
- package/storybook-static/assets/{trash-2-DIhA8-QF.js → trash-2-NCt2I7tQ.js} +1 -1
- package/storybook-static/assets/{triangle-alert-CYOiH1yf.js → triangle-alert-BtGrXq-8.js} +1 -1
- package/storybook-static/assets/ui-DhCSehda.css +1 -0
- package/storybook-static/assets/{uiClasses-Cmg8Dx0X.js → uiClasses-CnHeFGXs.js} +1 -1
- package/storybook-static/assets/{useODataSelectBase-CcvoIMyY.js → useODataSelectBase-DwPIA4g8.js} +1 -1
- package/storybook-static/assets/{useODataTreeData-Vkqc6Vi_.js → useODataTreeData-I34k-Nw-.js} +1 -1
- package/storybook-static/assets/{usePickerQuery-7mnpDV7K.js → usePickerQuery-BmH_xMvh.js} +1 -1
- package/storybook-static/assets/{usePickerTriggerController-fH-NsvWu.js → usePickerTriggerController-BmXWZnu6.js} +1 -1
- package/storybook-static/assets/{x-BJ8ArZif.js → x-96G4_GmA.js} +1 -1
- package/storybook-static/iframe.html +3 -3
- package/storybook-static/project.json +1 -1
- package/dist/chunks/CalendarView-BJx6akIp.js.map +0 -1
- package/dist/chunks/date-input-DXCIZbyc.js +0 -341
- package/dist/chunks/date-input-DXCIZbyc.js.map +0 -1
- package/storybook-static/assets/CalendarView-CJkJU4EC.js +0 -1
- package/storybook-static/assets/DateInput-X20d2Q59.js +0 -1
- package/storybook-static/assets/DateInput.stories-DQoF9ZwI.js +0 -115
- package/storybook-static/assets/DateRangePresetSelect-BauBnnPB.js +0 -3
- package/storybook-static/assets/PeriodSelect-Cj4KFbL8.js +0 -5
- package/storybook-static/assets/PresetRangeDateInput.stories-mEsDYDGg.js +0 -3
- package/storybook-static/assets/PresetSelect-Bm-UK37m.js +0 -5
- package/storybook-static/assets/iframe-B-Rqywce.js +0 -1
- package/storybook-static/assets/ui-aDejsbZB.css +0 -1
- /package/storybook-static/assets/{ui.module-BDnTp43_.js → ui.module-_Tx8zoyB.js} +0 -0
|
@@ -10,34 +10,29 @@ var g = [
|
|
|
10
10
|
"month",
|
|
11
11
|
"year"
|
|
12
12
|
], _ = [
|
|
13
|
-
"day",
|
|
14
|
-
"week",
|
|
15
|
-
"month",
|
|
16
|
-
"year"
|
|
17
|
-
], v = [
|
|
18
13
|
"friday",
|
|
19
14
|
"saturday",
|
|
20
15
|
"sunday"
|
|
21
16
|
];
|
|
22
|
-
function
|
|
17
|
+
function v(e) {
|
|
23
18
|
return e === "month" ? "month" : e === "year" ? "year" : "day";
|
|
24
19
|
}
|
|
25
|
-
function
|
|
20
|
+
function y(e, t) {
|
|
26
21
|
return g.indexOf(e) >= g.indexOf(t);
|
|
27
22
|
}
|
|
28
|
-
function
|
|
29
|
-
let n =
|
|
30
|
-
return
|
|
23
|
+
function b(e, t) {
|
|
24
|
+
let n = v(e);
|
|
25
|
+
return y(n, t) ? n : t;
|
|
31
26
|
}
|
|
32
|
-
function
|
|
27
|
+
function x(e, t) {
|
|
33
28
|
return !e || !t ? !1 : e.start.getTime() === t.start.getTime() && e.end.getTime() === t.end.getTime();
|
|
34
29
|
}
|
|
35
|
-
function
|
|
30
|
+
function S(e, t, n) {
|
|
36
31
|
if (!e || !t || !n) return !1;
|
|
37
32
|
let r = Math.min(t.start.getTime(), n.start.getTime()), i = Math.max(t.end.getTime(), n.end.getTime());
|
|
38
33
|
return e.start.getTime() >= r && e.end.getTime() <= i;
|
|
39
34
|
}
|
|
40
|
-
function
|
|
35
|
+
function C({ date: e, value: t, hoveredDate: n, selectsRange: r, selectionOptions: i }) {
|
|
41
36
|
let a = u(e, i), o = !r && t instanceof Date ? t : null, s = u(o, i);
|
|
42
37
|
if (!r || !Array.isArray(t)) return {
|
|
43
38
|
selected: p(e, s),
|
|
@@ -45,15 +40,15 @@ function w({ date: e, value: t, hoveredDate: n, selectsRange: r, selectionOption
|
|
|
45
40
|
rangeStart: !1,
|
|
46
41
|
rangeEnd: !1
|
|
47
42
|
};
|
|
48
|
-
let [c, l] = t, d = u(c, i), f = u(l ?? (c ? n : null), i), m =
|
|
43
|
+
let [c, l] = t, d = u(c, i), f = u(l ?? (c ? n : null), i), m = x(a, d), h = x(a, f);
|
|
49
44
|
return {
|
|
50
45
|
selected: !1,
|
|
51
|
-
range:
|
|
46
|
+
range: S(a, d, f) && !m && !h,
|
|
52
47
|
rangeStart: m,
|
|
53
48
|
rangeEnd: h
|
|
54
49
|
};
|
|
55
50
|
}
|
|
56
|
-
var
|
|
51
|
+
var w = {
|
|
57
52
|
dayView: "Dshr-j",
|
|
58
53
|
weekdays: "esetVt",
|
|
59
54
|
weekday: "i-LJYe",
|
|
@@ -70,7 +65,7 @@ var T = {
|
|
|
70
65
|
rangeEnd: "MR3y5p",
|
|
71
66
|
weekend: "VDqDpm",
|
|
72
67
|
now: "CLR-7m"
|
|
73
|
-
},
|
|
68
|
+
}, T = [
|
|
74
69
|
"Пн",
|
|
75
70
|
"Вт",
|
|
76
71
|
"Ср",
|
|
@@ -78,12 +73,12 @@ var T = {
|
|
|
78
73
|
"Пт",
|
|
79
74
|
"Сб",
|
|
80
75
|
"Вс"
|
|
81
|
-
],
|
|
76
|
+
], E = new Intl.DateTimeFormat("ru-RU", {
|
|
82
77
|
weekday: "long",
|
|
83
78
|
year: "numeric",
|
|
84
79
|
month: "long",
|
|
85
80
|
day: "numeric"
|
|
86
|
-
}),
|
|
81
|
+
}), D = ({ now: e, currentDate: a, value: o, onChange: s, minDate: c, maxDate: m, selectsRange: g, selectionMode: _ = "day", weekEndDay: v = "sunday" }) => {
|
|
87
82
|
let [y, b] = t(null), x = {
|
|
88
83
|
selectionMode: _,
|
|
89
84
|
weekEndDay: v
|
|
@@ -95,7 +90,7 @@ var T = {
|
|
|
95
90
|
let u = [];
|
|
96
91
|
for (let e = 0; e < s.length; e += 7) u.push(s.slice(e, e + 7));
|
|
97
92
|
return u;
|
|
98
|
-
})(), C = g && Array.isArray(o) ? o[0] : null,
|
|
93
|
+
})(), C = g && Array.isArray(o) ? o[0] : null, D = g && Array.isArray(o) ? o[1] : null, O = u(g ? null : o, x), k = u(y, x), A = D ?? (C ? k?.end ?? null : null), j = _ === "week", M = j && (!g || !C), N = (e) => {
|
|
99
94
|
if (!g || !C || !A) return !1;
|
|
100
95
|
let t = d(e).getTime(), n = C.getTime(), r = A.getTime();
|
|
101
96
|
return t >= Math.min(n, r) && t <= Math.max(n, r);
|
|
@@ -103,23 +98,23 @@ var T = {
|
|
|
103
98
|
minDate: c,
|
|
104
99
|
maxDate: m
|
|
105
100
|
}), F = (e, t) => {
|
|
106
|
-
t || (j && b(e), !(!g || !C ||
|
|
101
|
+
t || (j && b(e), !(!g || !C || D) && (j || b(e)));
|
|
107
102
|
};
|
|
108
103
|
return /* @__PURE__ */ i("div", {
|
|
109
|
-
className:
|
|
104
|
+
className: w.dayView,
|
|
110
105
|
children: [/* @__PURE__ */ r("div", {
|
|
111
|
-
className:
|
|
112
|
-
children:
|
|
113
|
-
className:
|
|
106
|
+
className: w.weekdays,
|
|
107
|
+
children: T.map((e) => /* @__PURE__ */ r("div", {
|
|
108
|
+
className: w.weekday,
|
|
114
109
|
children: e
|
|
115
110
|
}, e))
|
|
116
111
|
}), /* @__PURE__ */ r("div", {
|
|
117
|
-
className:
|
|
112
|
+
className: w.daysGrid,
|
|
118
113
|
onMouseLeave: () => {
|
|
119
|
-
(j || !
|
|
114
|
+
(j || !D) && b(null);
|
|
120
115
|
},
|
|
121
116
|
children: S.map((t, i) => /* @__PURE__ */ r("div", {
|
|
122
|
-
className:
|
|
117
|
+
className: w.week,
|
|
123
118
|
children: t.map((t, o) => {
|
|
124
119
|
let c = t.getMonth() === a.getMonth(), l = p(t, O), u = M && p(t, k), d = N(t), f = h(t, C), m = h(t, A), g = h(t, e), v = P(t);
|
|
125
120
|
return /* @__PURE__ */ r("button", {
|
|
@@ -129,19 +124,19 @@ var T = {
|
|
|
129
124
|
disabled: v,
|
|
130
125
|
"data-ui": "calendar-day-button",
|
|
131
126
|
"data-action": "select-calendar-day",
|
|
132
|
-
className: n(
|
|
133
|
-
[
|
|
134
|
-
[
|
|
135
|
-
[
|
|
136
|
-
[
|
|
137
|
-
[
|
|
138
|
-
[
|
|
139
|
-
[
|
|
140
|
-
[
|
|
141
|
-
[
|
|
142
|
-
[
|
|
127
|
+
className: n(w.day, {
|
|
128
|
+
[w.outsideMonth]: !c,
|
|
129
|
+
[w.periodSelection]: _ === "week",
|
|
130
|
+
[w.periodPreview]: u && !l,
|
|
131
|
+
[w.selected]: l,
|
|
132
|
+
[w.range]: d && !f && !m,
|
|
133
|
+
[w.rangeStart]: f,
|
|
134
|
+
[w.rangeEnd]: m,
|
|
135
|
+
[w.disabled]: v,
|
|
136
|
+
[w.weekend]: o > 4,
|
|
137
|
+
[w.now]: g
|
|
143
138
|
}),
|
|
144
|
-
"aria-label":
|
|
139
|
+
"aria-label": E.format(t),
|
|
145
140
|
"aria-pressed": l || d || f || m,
|
|
146
141
|
children: t.getDate()
|
|
147
142
|
}, `${i}-${o}`);
|
|
@@ -149,7 +144,7 @@ var T = {
|
|
|
149
144
|
}, i))
|
|
150
145
|
})]
|
|
151
146
|
});
|
|
152
|
-
},
|
|
147
|
+
}, O = {
|
|
153
148
|
monthView: "p5pRGW",
|
|
154
149
|
monthsGrid: "pUHpxD",
|
|
155
150
|
month: "lwWv-z",
|
|
@@ -158,14 +153,14 @@ var T = {
|
|
|
158
153
|
selected: "nGc5FO",
|
|
159
154
|
rangeStart: "JLqjri",
|
|
160
155
|
rangeEnd: "UQMYwg"
|
|
161
|
-
},
|
|
156
|
+
}, k = new Intl.DateTimeFormat("ru-RU", { month: "short" }), A = new Intl.DateTimeFormat("ru-RU", {
|
|
162
157
|
month: "long",
|
|
163
158
|
year: "numeric"
|
|
164
|
-
}),
|
|
159
|
+
}), j = ({ currentDate: e, value: i, onChange: a, minDate: o, maxDate: s, selectsRange: c, selectsPeriod: d, selectionMode: p = "day", weekEndDay: m = "sunday" }) => {
|
|
165
160
|
let [h, g] = t(null), _ = Array.from({ length: 12 }, (e, t) => t), v = e.getFullYear(), y = {
|
|
166
161
|
selectionMode: p,
|
|
167
162
|
weekEndDay: m
|
|
168
|
-
}, b = c && Array.isArray(i) ? i[0] : null, x = c && Array.isArray(i) ? i[1] : null, S = (e) =>
|
|
163
|
+
}, b = c && Array.isArray(i) ? i[0] : null, x = c && Array.isArray(i) ? i[1] : null, S = (e) => k.format(l(v, e, 1)), w = (e) => {
|
|
169
164
|
if (!o && !s) return !1;
|
|
170
165
|
let t = l(v, e, 1), n = l(v, e + 1, 0, 23, 59, 59);
|
|
171
166
|
return d ? !f(u(t, y), {
|
|
@@ -176,14 +171,14 @@ var T = {
|
|
|
176
171
|
!c || !b || x || t || g(e);
|
|
177
172
|
};
|
|
178
173
|
return /* @__PURE__ */ r("div", {
|
|
179
|
-
className:
|
|
174
|
+
className: O.monthView,
|
|
180
175
|
children: /* @__PURE__ */ r("div", {
|
|
181
|
-
className:
|
|
176
|
+
className: O.monthsGrid,
|
|
182
177
|
onMouseLeave: () => {
|
|
183
178
|
x || g(null);
|
|
184
179
|
},
|
|
185
180
|
children: _.map((e) => {
|
|
186
|
-
let t =
|
|
181
|
+
let t = w(e), o = l(v, e, 1), s = C({
|
|
187
182
|
date: o,
|
|
188
183
|
value: i,
|
|
189
184
|
hoveredDate: h,
|
|
@@ -197,24 +192,24 @@ var T = {
|
|
|
197
192
|
disabled: t,
|
|
198
193
|
"data-ui": "calendar-month-button",
|
|
199
194
|
"data-action": "select-calendar-month",
|
|
200
|
-
className: n(
|
|
201
|
-
[
|
|
202
|
-
[
|
|
203
|
-
[
|
|
204
|
-
[
|
|
205
|
-
[
|
|
195
|
+
className: n(O.month, {
|
|
196
|
+
[O.selected]: s.selected,
|
|
197
|
+
[O.range]: s.range,
|
|
198
|
+
[O.rangeStart]: s.rangeStart,
|
|
199
|
+
[O.rangeEnd]: s.rangeEnd,
|
|
200
|
+
[O.disabled]: t
|
|
206
201
|
}),
|
|
207
|
-
"aria-label":
|
|
202
|
+
"aria-label": A.format(o),
|
|
208
203
|
"aria-pressed": s.selected || s.range || s.rangeStart || s.rangeEnd,
|
|
209
204
|
children: S(e)
|
|
210
205
|
}, e);
|
|
211
206
|
})
|
|
212
207
|
})
|
|
213
208
|
});
|
|
214
|
-
},
|
|
209
|
+
}, M = {
|
|
215
210
|
calendarView: "E35KE6",
|
|
216
211
|
calendarHeader: "L14Qef"
|
|
217
|
-
},
|
|
212
|
+
}, N = {
|
|
218
213
|
yearView: "_--xW7O",
|
|
219
214
|
yearsGrid: "-N-5Jk",
|
|
220
215
|
year: "hhY92S",
|
|
@@ -223,7 +218,7 @@ var T = {
|
|
|
223
218
|
selected: "d1SfcV",
|
|
224
219
|
rangeStart: "Gkui4r",
|
|
225
220
|
rangeEnd: "_0dVZLW"
|
|
226
|
-
},
|
|
221
|
+
}, P = ({ currentDate: e, value: i, onChange: a, minDate: o, maxDate: s, selectsRange: c, selectsPeriod: d, selectionMode: p = "day", weekEndDay: m = "sunday" }) => {
|
|
227
222
|
let [h, g] = t(null), _ = Math.floor(e.getFullYear() / 12) * 12, v = Array.from({ length: 12 }, (e, t) => _ + t), y = {
|
|
228
223
|
selectionMode: p,
|
|
229
224
|
weekEndDay: m
|
|
@@ -234,18 +229,18 @@ var T = {
|
|
|
234
229
|
minDate: o,
|
|
235
230
|
maxDate: s
|
|
236
231
|
}) : !!(o && n < o || s && t > s);
|
|
237
|
-
},
|
|
232
|
+
}, w = (e, t) => {
|
|
238
233
|
!c || !b || x || t || g(e);
|
|
239
234
|
};
|
|
240
235
|
return /* @__PURE__ */ r("div", {
|
|
241
|
-
className:
|
|
236
|
+
className: N.yearView,
|
|
242
237
|
children: /* @__PURE__ */ r("div", {
|
|
243
|
-
className:
|
|
238
|
+
className: N.yearsGrid,
|
|
244
239
|
onMouseLeave: () => {
|
|
245
240
|
x || g(null);
|
|
246
241
|
},
|
|
247
242
|
children: v.map((e) => {
|
|
248
|
-
let t = S(e), o = l(e, 0, 1), s =
|
|
243
|
+
let t = S(e), o = l(e, 0, 1), s = C({
|
|
249
244
|
date: o,
|
|
250
245
|
value: i,
|
|
251
246
|
hoveredDate: h,
|
|
@@ -255,16 +250,16 @@ var T = {
|
|
|
255
250
|
return /* @__PURE__ */ r("button", {
|
|
256
251
|
type: "button",
|
|
257
252
|
onClick: () => !t && a(o),
|
|
258
|
-
onMouseEnter: () =>
|
|
253
|
+
onMouseEnter: () => w(o, t),
|
|
259
254
|
disabled: t,
|
|
260
255
|
"data-ui": "calendar-year-button",
|
|
261
256
|
"data-action": "select-calendar-year",
|
|
262
|
-
className: n(
|
|
263
|
-
[
|
|
264
|
-
[
|
|
265
|
-
[
|
|
266
|
-
[
|
|
267
|
-
[
|
|
257
|
+
className: n(N.year, {
|
|
258
|
+
[N.selected]: s.selected,
|
|
259
|
+
[N.range]: s.range,
|
|
260
|
+
[N.rangeStart]: s.rangeStart,
|
|
261
|
+
[N.rangeEnd]: s.rangeEnd,
|
|
262
|
+
[N.disabled]: t
|
|
268
263
|
}),
|
|
269
264
|
"aria-label": e.toString(),
|
|
270
265
|
"aria-pressed": s.selected || s.range || s.rangeStart || s.rangeEnd,
|
|
@@ -276,24 +271,24 @@ var T = {
|
|
|
276
271
|
};
|
|
277
272
|
//#endregion
|
|
278
273
|
//#region src/date-input/ui/CalendarView.tsx
|
|
279
|
-
function
|
|
274
|
+
function F(e, t) {
|
|
280
275
|
if (t && m(e) && e[0] instanceof Date) return e[0];
|
|
281
276
|
if (!t && e instanceof Date) return e;
|
|
282
277
|
}
|
|
283
|
-
function
|
|
284
|
-
let [_] = t(() => d(/* @__PURE__ */ new Date())), v =
|
|
285
|
-
sourceValueTime:
|
|
278
|
+
function I({ view: n, datePickerLevel: l, selectionMode: p = "day", weekEndDay: m = "sunday", onViewChange: h, ...g }) {
|
|
279
|
+
let [_] = t(() => d(/* @__PURE__ */ new Date())), v = F(g.value, g.selectsRange), b = v?.getTime() ?? null, [x, S] = t(() => ({
|
|
280
|
+
sourceValueTime: b,
|
|
286
281
|
currentDate: v ?? d(/* @__PURE__ */ new Date())
|
|
287
|
-
})), C = v && x.sourceValueTime !==
|
|
282
|
+
})), C = v && x.sourceValueTime !== b ? v : x.currentDate, w = g.currentDate ?? C, T = {
|
|
288
283
|
selectionMode: p,
|
|
289
284
|
weekEndDay: m
|
|
290
285
|
}, E = (e) => {
|
|
291
286
|
let t = typeof e == "function" ? e(w) : e;
|
|
292
287
|
g.currentDate === void 0 && S({
|
|
293
|
-
sourceValueTime:
|
|
288
|
+
sourceValueTime: b,
|
|
294
289
|
currentDate: t
|
|
295
290
|
}), g.onCurrentDateChange?.(t);
|
|
296
|
-
},
|
|
291
|
+
}, O = () => {
|
|
297
292
|
if (n === "day") {
|
|
298
293
|
E((e) => s(e, -1));
|
|
299
294
|
return;
|
|
@@ -315,7 +310,7 @@ function L({ view: n, datePickerLevel: l, selectionMode: p = "day", weekEndDay:
|
|
|
315
310
|
E((e) => c(e, 12));
|
|
316
311
|
};
|
|
317
312
|
return /* @__PURE__ */ i("div", {
|
|
318
|
-
className:
|
|
313
|
+
className: M.calendarView,
|
|
319
314
|
children: [(() => {
|
|
320
315
|
let t = "";
|
|
321
316
|
if (n === "day") t = w.toLocaleDateString("ru-RU", {
|
|
@@ -328,11 +323,11 @@ function L({ view: n, datePickerLevel: l, selectionMode: p = "day", weekEndDay:
|
|
|
328
323
|
t = `${e} - ${e + 11}`;
|
|
329
324
|
}
|
|
330
325
|
return /* @__PURE__ */ i("div", {
|
|
331
|
-
className:
|
|
326
|
+
className: M.calendarHeader,
|
|
332
327
|
children: [
|
|
333
328
|
/* @__PURE__ */ r(e, {
|
|
334
329
|
icon: /* @__PURE__ */ r(a, {}),
|
|
335
|
-
onClick:
|
|
330
|
+
onClick: O,
|
|
336
331
|
variant: "ghost",
|
|
337
332
|
"aria-label": "Предыдущий",
|
|
338
333
|
"data-action": "calendar-previous"
|
|
@@ -382,20 +377,20 @@ function L({ view: n, datePickerLevel: l, selectionMode: p = "day", weekEndDay:
|
|
|
382
377
|
g.onChange(t.start);
|
|
383
378
|
}
|
|
384
379
|
}, t = (t) => {
|
|
385
|
-
if (E(t), p === "month" || !
|
|
380
|
+
if (E(t), p === "month" || !y("day", l)) {
|
|
386
381
|
e(t);
|
|
387
382
|
return;
|
|
388
383
|
}
|
|
389
384
|
h("day");
|
|
390
385
|
}, i = (t) => {
|
|
391
|
-
if (E(t), p === "year" || !
|
|
386
|
+
if (E(t), p === "year" || !y("month", l)) {
|
|
392
387
|
e(t);
|
|
393
388
|
return;
|
|
394
389
|
}
|
|
395
390
|
h("month");
|
|
396
391
|
};
|
|
397
392
|
switch (n) {
|
|
398
|
-
case "day": return /* @__PURE__ */ r(
|
|
393
|
+
case "day": return /* @__PURE__ */ r(D, {
|
|
399
394
|
now: _,
|
|
400
395
|
currentDate: w,
|
|
401
396
|
value: g.value,
|
|
@@ -406,25 +401,25 @@ function L({ view: n, datePickerLevel: l, selectionMode: p = "day", weekEndDay:
|
|
|
406
401
|
selectionMode: p,
|
|
407
402
|
weekEndDay: m
|
|
408
403
|
});
|
|
409
|
-
case "month": return /* @__PURE__ */ r(
|
|
404
|
+
case "month": return /* @__PURE__ */ r(j, {
|
|
410
405
|
currentDate: w,
|
|
411
406
|
value: g.value,
|
|
412
407
|
onChange: t,
|
|
413
408
|
minDate: g.minDate,
|
|
414
409
|
maxDate: g.maxDate,
|
|
415
410
|
selectsRange: g.selectsRange,
|
|
416
|
-
selectsPeriod: p === "month" || !
|
|
411
|
+
selectsPeriod: p === "month" || !y("day", l),
|
|
417
412
|
selectionMode: p,
|
|
418
413
|
weekEndDay: m
|
|
419
414
|
});
|
|
420
|
-
case "year": return /* @__PURE__ */ r(
|
|
415
|
+
case "year": return /* @__PURE__ */ r(P, {
|
|
421
416
|
currentDate: w,
|
|
422
417
|
value: g.value,
|
|
423
418
|
onChange: i,
|
|
424
419
|
minDate: g.minDate,
|
|
425
420
|
maxDate: g.maxDate,
|
|
426
421
|
selectsRange: g.selectsRange,
|
|
427
|
-
selectsPeriod: p === "year" || !
|
|
422
|
+
selectsPeriod: p === "year" || !y("month", l),
|
|
428
423
|
selectionMode: p,
|
|
429
424
|
weekEndDay: m
|
|
430
425
|
});
|
|
@@ -434,6 +429,6 @@ function L({ view: n, datePickerLevel: l, selectionMode: p = "day", weekEndDay:
|
|
|
434
429
|
});
|
|
435
430
|
}
|
|
436
431
|
//#endregion
|
|
437
|
-
export { y as a,
|
|
432
|
+
export { y as a, v as i, _ as n, b as o, g as r, C as s, I as t };
|
|
438
433
|
|
|
439
|
-
//# sourceMappingURL=CalendarView-
|
|
434
|
+
//# sourceMappingURL=CalendarView-j6rF-EWR.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CalendarView-j6rF-EWR.js","names":[],"sources":["../../src/date-input/lib/dateInputCalendar.ts","../../src/date-input/ui/CalendarDayView.module.scss","../../src/date-input/ui/CalendarDayView.tsx","../../src/date-input/ui/CalendarMonthView.module.scss","../../src/date-input/ui/CalendarMonthView.tsx","../../src/date-input/ui/CalendarView.module.scss","../../src/date-input/ui/CalendarYearView.module.scss","../../src/date-input/ui/CalendarYearView.tsx","../../src/date-input/ui/CalendarView.tsx"],"sourcesContent":["import {\n\tgetCalendarPeriod,\n\tisDateInsideCalendarPeriod,\n\ttype CalendarPeriod,\n\ttype CalendarPeriodOptions,\n\ttype DateRangeInput,\n\ttype NullableDateRange\n} from \"@ryuzaki13/react-foundation-lib/formatters\";\n\nimport type { DateInputSelectionMode, DateInputWeekEndDay, DatePickerLevel } from \"./types\";\n\nexport const DATE_PICKER_LEVELS = [\"day\", \"month\", \"year\"] as const satisfies readonly DatePickerLevel[];\nexport const DATE_INPUT_WEEK_END_DAYS = [\"friday\", \"saturday\", \"sunday\"] as const satisfies readonly DateInputWeekEndDay[];\n\n/**\n * Возвращает календарный вид, который удобнее всего открывать для выбранного размера периода.\n */\nexport function getDatePickerLevelForSelectionMode(selectionMode: DateInputSelectionMode): DatePickerLevel {\n\tif (selectionMode === \"month\") return \"month\";\n\tif (selectionMode === \"year\") return \"year\";\n\n\treturn \"day\";\n}\n\n/**\n * Проверяет, разрешён ли календарный вид относительно минимального уровня навигации.\n */\nexport function isDatePickerLevelAvailable(level: DatePickerLevel, minLevel: DatePickerLevel): boolean {\n\treturn DATE_PICKER_LEVELS.indexOf(level) >= DATE_PICKER_LEVELS.indexOf(minLevel);\n}\n\n/**\n * Подбирает вид календаря для режима выбора с учётом ограничения `datePickerLevel`.\n */\nexport function resolveAvailableDatePickerLevel(selectionMode: DateInputSelectionMode, minLevel: DatePickerLevel): DatePickerLevel {\n\tconst preferredLevel = getDatePickerLevelForSelectionMode(selectionMode);\n\n\treturn isDatePickerLevelAvailable(preferredLevel, minLevel) ? preferredLevel : minLevel;\n}\n\nexport interface DateInputPeriodRangeStateOptions {\n\treadonly date: Date;\n\treadonly value: DateRangeInput;\n\treadonly hoveredDate?: Date | null;\n\treadonly selectsRange?: boolean;\n\treadonly selectionOptions?: CalendarPeriodOptions;\n}\n\nexport interface DateInputPeriodRangeState {\n\treadonly selected: boolean;\n\treadonly range: boolean;\n\treadonly rangeStart: boolean;\n\treadonly rangeEnd: boolean;\n}\n\nfunction isSameCalendarPeriod(left: CalendarPeriod | null, right: CalendarPeriod | null): boolean {\n\tif (!left || !right) return false;\n\n\treturn left.start.getTime() === right.start.getTime() && left.end.getTime() === right.end.getTime();\n}\n\nfunction isCalendarPeriodInsideRange(\n\tperiod: CalendarPeriod | null,\n\tstartPeriod: CalendarPeriod | null,\n\tendPeriod: CalendarPeriod | null\n): boolean {\n\tif (!period || !startPeriod || !endPeriod) return false;\n\n\tconst startTime = Math.min(startPeriod.start.getTime(), endPeriod.start.getTime());\n\tconst endTime = Math.max(startPeriod.end.getTime(), endPeriod.end.getTime());\n\n\treturn period.start.getTime() >= startTime && period.end.getTime() <= endTime;\n}\n\n/**\n * Рассчитывает visual-state ячейки календарного периода для single/range режима.\n */\nexport function resolveDateInputPeriodRangeState({\n\tdate,\n\tvalue,\n\thoveredDate,\n\tselectsRange,\n\tselectionOptions\n}: DateInputPeriodRangeStateOptions): DateInputPeriodRangeState {\n\tconst period = getCalendarPeriod(date, selectionOptions);\n\tconst selectedDate = !selectsRange && value instanceof Date ? value : null;\n\tconst selectedSinglePeriod = getCalendarPeriod(selectedDate, selectionOptions);\n\n\tif (!selectsRange || !Array.isArray(value)) {\n\t\treturn {\n\t\t\tselected: isDateInsideCalendarPeriod(date, selectedSinglePeriod),\n\t\t\trange: false,\n\t\t\trangeStart: false,\n\t\t\trangeEnd: false\n\t\t};\n\t}\n\n\tconst [selectedStartDate, selectedEndDate] = value as NullableDateRange;\n\tconst selectedStartPeriod = getCalendarPeriod(selectedStartDate, selectionOptions);\n\tconst previewEndPeriod = getCalendarPeriod(selectedEndDate ?? (selectedStartDate ? hoveredDate : null), selectionOptions);\n\tconst rangeStart = isSameCalendarPeriod(period, selectedStartPeriod);\n\tconst rangeEnd = isSameCalendarPeriod(period, previewEndPeriod);\n\tconst range = isCalendarPeriodInsideRange(period, selectedStartPeriod, previewEndPeriod);\n\n\treturn {\n\t\tselected: false,\n\t\trange: range && !rangeStart && !rangeEnd,\n\t\trangeStart,\n\t\trangeEnd\n\t};\n}\n",".dayView {\n\tpadding: 0;\n}\n\n.weekdays {\n\tdisplay: grid;\n\tgrid-template-columns: repeat(7, 1fr);\n\ttext-align: center;\n\tmargin-bottom: var(--space-sm);\n\tcolor: var(--content-1);\n}\n\n.weekday {\n\tfont-size: var(--font-size-xs);\n}\n\n.daysGrid {\n\tdisplay: grid;\n\tgap: var(--border-width);\n}\n\n.week {\n\tdisplay: grid;\n\tgrid-template-columns: repeat(7, 1fr);\n\tgap: var(--border-width);\n}\n\n.day {\n\t--range-radius: calc(var(--control-height) / 2);\n\n\theight: var(--control-height);\n\tcursor: pointer;\n\tborder-radius: var(--radius-xs);\n\t// font-size: var(--font-size-sm);\n\n\tbackground-color: var(--surface-1);\n\n\t&:hover:not(.disabled) {\n\t\tbackground-color: var(--surface-accent);\n\t}\n\n\t&.outsideMonth {\n\t\tbackground-color: transparent;\n\t\tcolor: var(--content-2);\n\t}\n\n\t&.periodSelection:hover:not(.disabled):not(.periodPreview):not(.selected) {\n\t\tbackground-color: var(--surface-1);\n\t}\n\n\t&.periodSelection.outsideMonth:hover:not(.disabled):not(.periodPreview):not(.selected) {\n\t\tbackground-color: transparent;\n\t}\n\n\t&.periodPreview {\n\t\tbackground-color: var(--surface-accent);\n\t\tcolor: var(--content-0);\n\t}\n\n\t&.range {\n\t\tbackground-color: var(--surface-accent);\n\t\tcolor: var(--content-0);\n\t}\n\n\t&.rangeStart {\n\t\t// border-top-left-radius: var(--range-radius);\n\t\t// border-bottom-left-radius: var(--range-radius);\n\t}\n\n\t&.rangeEnd {\n\t\t// border-top-right-radius: var(--range-radius);\n\t\t// border-bottom-right-radius: var(--range-radius);\n\t}\n\n\t&.selected,\n\t&.rangeStart,\n\t&.rangeEnd {\n\t\tbackground-color: var(--surface-accent);\n\t\tcolor: var(--content-accent);\n\t\tfont-weight: 600;\n\t\tfont-variation-settings: \"wght\" 600;\n\t}\n\n\t&.weekend:not(.selected):not(.range):not(.rangeStart):not(.rangeEnd) {\n\t\tcolor: var(--status-error-fill);\n\t}\n\n\t&.disabled {\n\t\tcolor: var(--content-2);\n\t\tcursor: not-allowed;\n\n\t\t&:hover {\n\t\t\tbackground: none;\n\t\t}\n\t}\n\n\t&.now {\n\t\tborder: var(--border);\n\t\tcolor: var(--status-info-text);\n\t\tborder-color: var(--status-info-text);\n\t}\n}\n","import { useState } from \"react\";\n\nimport {\n\tcreateCalendarDate,\n\tgetCalendarPeriod,\n\tgetStartOfDay,\n\tisCalendarPeriodWithinDateBounds,\n\tisDateInsideCalendarPeriod,\n\tisSameCalendarDay,\n\ttype CalendarPeriodOptions,\n\ttype DateRangeInput\n} from \"@ryuzaki13/react-foundation-lib/formatters\";\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport { type DateInputSelectionMode, type DateInputWeekEndDay } from \"../lib\";\n\nimport styles from \"./CalendarDayView.module.scss\";\n\nconst weekDays = [\"Пн\", \"Вт\", \"Ср\", \"Чт\", \"Пт\", \"Сб\", \"Вс\"];\nconst dayLabelFormatter = new Intl.DateTimeFormat(\"ru-RU\", {\n\tweekday: \"long\",\n\tyear: \"numeric\",\n\tmonth: \"long\",\n\tday: \"numeric\"\n});\n\ninterface DayViewProps {\n\tnow: Date;\n\tcurrentDate: Date;\n\tvalue: DateRangeInput;\n\tonChange: (date: Date) => void;\n\tminDate?: Date;\n\tmaxDate?: Date;\n\tselectsRange?: boolean;\n\tselectionMode?: DateInputSelectionMode;\n\tweekEndDay?: DateInputWeekEndDay;\n}\n\n/**\n * Отображает сетку дней месяца в календарной семантике без timezone-сдвига.\n */\nexport const CalendarDayView: React.FC<DayViewProps> = ({\n\tnow,\n\tcurrentDate,\n\tvalue,\n\tonChange,\n\tminDate,\n\tmaxDate,\n\tselectsRange,\n\tselectionMode = \"day\",\n\tweekEndDay = \"sunday\"\n}) => {\n\tconst [hoveredDate, setHoveredDate] = useState<Date | null>(null);\n\tconst selectionOptions: CalendarPeriodOptions = {\n\t\tselectionMode,\n\t\tweekEndDay\n\t};\n\n\t/**\n\t * Генерирует недели для текущего месяца с учётом дней соседних месяцев.\n\t */\n\tconst generateCalendarDays = () => {\n\t\tconst year = currentDate.getFullYear();\n\t\tconst month = currentDate.getMonth();\n\n\t\tconst firstDay = createCalendarDate(year, month, 1);\n\t\tconst lastDay = createCalendarDate(year, month + 1, 0);\n\t\tconst prevMonthDays = firstDay.getDay() === 0 ? 6 : firstDay.getDay() - 1;\n\t\tconst nextMonthDays = 6 * 7 - (prevMonthDays + lastDay.getDate());\n\n\t\tconst days: Date[] = [];\n\t\tconst prevMonthLastDay = createCalendarDate(year, month, 0).getDate();\n\n\t\tfor (let index = prevMonthDays; index > 0; index -= 1) {\n\t\t\tdays.push(createCalendarDate(year, month - 1, prevMonthLastDay - index + 1));\n\t\t}\n\n\t\tfor (let day = 1; day <= lastDay.getDate(); day += 1) {\n\t\t\tdays.push(createCalendarDate(year, month, day));\n\t\t}\n\n\t\tfor (let day = 1; day <= nextMonthDays; day += 1) {\n\t\t\tdays.push(createCalendarDate(year, month + 1, day));\n\t\t}\n\n\t\tconst weeks: Date[][] = [];\n\t\tfor (let index = 0; index < days.length; index += 7) {\n\t\t\tweeks.push(days.slice(index, index + 7));\n\t\t}\n\n\t\treturn weeks;\n\t};\n\n\tconst weeks = generateCalendarDays();\n\tconst selectedStartDate = selectsRange && Array.isArray(value) ? value[0] : null;\n\tconst selectedEndDate = selectsRange && Array.isArray(value) ? value[1] : null;\n\tconst selectedDate = !selectsRange ? (value as Date | null) : null;\n\tconst selectedSinglePeriod = getCalendarPeriod(selectedDate, selectionOptions);\n\tconst hoveredPeriod = getCalendarPeriod(hoveredDate, selectionOptions);\n\tconst previewEndDate = selectedEndDate ?? (selectedStartDate ? (hoveredPeriod?.end ?? null) : null);\n\tconst previewsWeekPeriod = selectionMode === \"week\";\n\tconst previewsStandalonePeriod = previewsWeekPeriod && (!selectsRange || !selectedStartDate);\n\n\t/**\n\t * Проверяет, лежит ли день внутри выбранного или preview-диапазона.\n\t */\n\tconst isInRange = (date: Date) => {\n\t\tif (!selectsRange || !selectedStartDate || !previewEndDate) return false;\n\n\t\tconst dateMs = getStartOfDay(date).getTime();\n\t\tconst startMs = selectedStartDate.getTime();\n\t\tconst endMs = previewEndDate.getTime();\n\n\t\treturn dateMs >= Math.min(startMs, endMs) && dateMs <= Math.max(startMs, endMs);\n\t};\n\n\t/**\n\t * Проверяет ограничения на выбор даты.\n\t */\n\tconst isDisabled = (date: Date) => {\n\t\treturn !isCalendarPeriodWithinDateBounds(getCalendarPeriod(date, selectionOptions), { minDate, maxDate });\n\t};\n\n\t/**\n\t * Обновляет preview-конец диапазона при движении мыши.\n\t */\n\tconst handleDayHover = (date: Date, disabled: boolean) => {\n\t\tif (disabled) return;\n\n\t\tif (previewsWeekPeriod) {\n\t\t\tsetHoveredDate(date);\n\t\t}\n\n\t\tif (!selectsRange || !selectedStartDate || selectedEndDate) return;\n\t\tif (!previewsWeekPeriod) setHoveredDate(date);\n\t};\n\n\t/**\n\t * Сбрасывает preview незавершённого диапазона при уходе курсора.\n\t */\n\tconst handleGridLeave = () => {\n\t\tif (previewsWeekPeriod || !selectedEndDate) {\n\t\t\tsetHoveredDate(null);\n\t\t}\n\t};\n\n\treturn (\n\t\t<div className={styles.dayView}>\n\t\t\t<div className={styles.weekdays}>\n\t\t\t\t{weekDays.map((day) => (\n\t\t\t\t\t<div key={day} className={styles.weekday}>\n\t\t\t\t\t\t{day}\n\t\t\t\t\t</div>\n\t\t\t\t))}\n\t\t\t</div>\n\n\t\t\t<div className={styles.daysGrid} onMouseLeave={handleGridLeave}>\n\t\t\t\t{weeks.map((week, weekIndex) => (\n\t\t\t\t\t<div key={weekIndex} className={styles.week}>\n\t\t\t\t\t\t{week.map((day, dayIndex) => {\n\t\t\t\t\t\t\tconst isCurrentMonth = day.getMonth() === currentDate.getMonth();\n\t\t\t\t\t\t\tconst isSelected = isDateInsideCalendarPeriod(day, selectedSinglePeriod);\n\t\t\t\t\t\t\tconst isPeriodPreview = previewsStandalonePeriod && isDateInsideCalendarPeriod(day, hoveredPeriod);\n\t\t\t\t\t\t\tconst isRange = isInRange(day);\n\t\t\t\t\t\t\tconst isStart = isSameCalendarDay(day, selectedStartDate);\n\t\t\t\t\t\t\tconst isEnd = isSameCalendarDay(day, previewEndDate);\n\t\t\t\t\t\t\tconst isNow = isSameCalendarDay(day, now);\n\t\t\t\t\t\t\tconst disabled = isDisabled(day);\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\tkey={`${weekIndex}-${dayIndex}`}\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\tonClick={() => !disabled && onChange(day)}\n\t\t\t\t\t\t\t\t\tonMouseEnter={() => handleDayHover(day, disabled)}\n\t\t\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\t\t\tdata-ui=\"calendar-day-button\"\n\t\t\t\t\t\t\t\t\tdata-action=\"select-calendar-day\"\n\t\t\t\t\t\t\t\t\tclassName={cn(styles.day, {\n\t\t\t\t\t\t\t\t\t\t[styles.outsideMonth]: !isCurrentMonth,\n\t\t\t\t\t\t\t\t\t\t[styles.periodSelection]: selectionMode === \"week\",\n\t\t\t\t\t\t\t\t\t\t[styles.periodPreview]: isPeriodPreview && !isSelected,\n\t\t\t\t\t\t\t\t\t\t[styles.selected]: isSelected,\n\t\t\t\t\t\t\t\t\t\t[styles.range]: isRange && !isStart && !isEnd,\n\t\t\t\t\t\t\t\t\t\t[styles.rangeStart]: isStart,\n\t\t\t\t\t\t\t\t\t\t[styles.rangeEnd]: isEnd,\n\t\t\t\t\t\t\t\t\t\t[styles.disabled]: disabled,\n\t\t\t\t\t\t\t\t\t\t[styles.weekend]: dayIndex > 4,\n\t\t\t\t\t\t\t\t\t\t[styles.now]: isNow\n\t\t\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\t\t\taria-label={dayLabelFormatter.format(day)}\n\t\t\t\t\t\t\t\t\taria-pressed={isSelected || isRange || isStart || isEnd}>\n\t\t\t\t\t\t\t\t\t{day.getDate()}\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})}\n\t\t\t\t\t</div>\n\t\t\t\t))}\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n",".monthView {\n\tpadding: 0;\n}\n\n.monthsGrid {\n\tdisplay: grid;\n\tgrid-template-columns: repeat(3, 1fr);\n\tgap: var(--border-width);\n\talign-content: center;\n\n\t// min-height: calc(12em * var(--line-height));\n}\n\n.month {\n\theight: var(--control-height);\n\tcursor: pointer;\n\tborder-radius: var(--radius-xs);\n\t// font-size: var(--font-size-sm);\n\ttext-transform: capitalize;\n\n\tbackground-color: var(--surface-1);\n\n\t&:hover:not(.disabled) {\n\t\tbackground-color: var(--surface-accent);\n\t}\n\n\t&.range {\n\t\tbackground-color: var(--surface-accent);\n\t\tcolor: var(--content-0);\n\t}\n\n\t&.selected,\n\t&.rangeStart,\n\t&.rangeEnd {\n\t\tbackground-color: var(--surface-accent);\n\t\tcolor: var(--content-accent);\n\t\tfont-weight: 600;\n\t\tfont-variation-settings: \"wght\" 600;\n\t}\n\n\t&.disabled {\n\t\tcolor: var(--content-2);\n\t\tcursor: not-allowed;\n\n\t\t&:hover {\n\t\t\tbackground: none;\n\t\t}\n\t}\n}\n","import { useState } from \"react\";\n\nimport {\n\tcreateCalendarDate,\n\tgetCalendarPeriod,\n\tisCalendarPeriodWithinDateBounds,\n\ttype CalendarPeriodOptions,\n\ttype DateRangeInput\n} from \"@ryuzaki13/react-foundation-lib/formatters\";\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport { resolveDateInputPeriodRangeState } from \"../lib\";\n\nimport styles from \"./CalendarMonthView.module.scss\";\n\nimport type { DateInputSelectionMode, DateInputWeekEndDay } from \"../lib\";\n\nconst monthLabelFormatter = new Intl.DateTimeFormat(\"ru-RU\", { month: \"short\" });\nconst monthAriaFormatter = new Intl.DateTimeFormat(\"ru-RU\", { month: \"long\", year: \"numeric\" });\n\ninterface MonthViewProps {\n\tcurrentDate: Date;\n\tvalue: DateRangeInput;\n\tonChange: (date: Date) => void;\n\tminDate?: Date;\n\tmaxDate?: Date;\n\tselectsRange?: boolean;\n\tselectsPeriod?: boolean;\n\tselectionMode?: DateInputSelectionMode;\n\tweekEndDay?: DateInputWeekEndDay;\n}\n\n/**\n * Отображает выбор месяца в календарной семантике без timezone-сдвига.\n */\nexport const CalendarMonthView: React.FC<MonthViewProps> = ({\n\tcurrentDate,\n\tvalue,\n\tonChange,\n\tminDate,\n\tmaxDate,\n\tselectsRange,\n\tselectsPeriod,\n\tselectionMode = \"day\",\n\tweekEndDay = \"sunday\"\n}) => {\n\tconst [hoveredDate, setHoveredDate] = useState<Date | null>(null);\n\tconst months = Array.from({ length: 12 }, (_, index) => index);\n\tconst currentYear = currentDate.getFullYear();\n\tconst selectionOptions: CalendarPeriodOptions = {\n\t\tselectionMode,\n\t\tweekEndDay\n\t};\n\tconst selectedStartDate = selectsRange && Array.isArray(value) ? value[0] : null;\n\tconst selectedEndDate = selectsRange && Array.isArray(value) ? value[1] : null;\n\n\t/**\n\t * Возвращает сокращённое имя месяца.\n\t */\n\tconst getMonthName = (monthIndex: number) => monthLabelFormatter.format(createCalendarDate(currentYear, monthIndex, 1));\n\n\t/**\n\t * Проверяет, запрещён ли выбор месяца по ограничениям.\n\t */\n\tconst isDisabled = (monthIndex: number) => {\n\t\tif (!minDate && !maxDate) return false;\n\n\t\tconst monthStart = createCalendarDate(currentYear, monthIndex, 1);\n\t\tconst monthEnd = createCalendarDate(currentYear, monthIndex + 1, 0, 23, 59, 59);\n\n\t\tif (selectsPeriod) {\n\t\t\treturn !isCalendarPeriodWithinDateBounds(getCalendarPeriod(monthStart, selectionOptions), { minDate, maxDate });\n\t\t}\n\n\t\tif (minDate && monthEnd < minDate) return true;\n\t\tif (maxDate && monthStart > maxDate) return true;\n\n\t\treturn false;\n\t};\n\n\t/**\n\t * Обновляет preview-конец диапазона при движении мыши.\n\t */\n\tconst handleMonthHover = (date: Date, disabled: boolean) => {\n\t\tif (!selectsRange || !selectedStartDate || selectedEndDate || disabled) return;\n\t\tsetHoveredDate(date);\n\t};\n\n\t/**\n\t * Сбрасывает preview незавершённого диапазона при уходе курсора.\n\t */\n\tconst handleGridLeave = () => {\n\t\tif (!selectedEndDate) {\n\t\t\tsetHoveredDate(null);\n\t\t}\n\t};\n\n\treturn (\n\t\t<div className={styles.monthView}>\n\t\t\t<div className={styles.monthsGrid} onMouseLeave={handleGridLeave}>\n\t\t\t\t{months.map((monthIndex) => {\n\t\t\t\t\tconst disabled = isDisabled(monthIndex);\n\t\t\t\t\tconst monthDate = createCalendarDate(currentYear, monthIndex, 1);\n\t\t\t\t\tconst rangeState = resolveDateInputPeriodRangeState({\n\t\t\t\t\t\tdate: monthDate,\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\thoveredDate,\n\t\t\t\t\t\tselectsRange,\n\t\t\t\t\t\tselectionOptions\n\t\t\t\t\t});\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\tkey={monthIndex}\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tonClick={() => !disabled && onChange(monthDate)}\n\t\t\t\t\t\t\tonMouseEnter={() => handleMonthHover(monthDate, disabled)}\n\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\tdata-ui=\"calendar-month-button\"\n\t\t\t\t\t\t\tdata-action=\"select-calendar-month\"\n\t\t\t\t\t\t\tclassName={cn(styles.month, {\n\t\t\t\t\t\t\t\t[styles.selected]: rangeState.selected,\n\t\t\t\t\t\t\t\t[styles.range]: rangeState.range,\n\t\t\t\t\t\t\t\t[styles.rangeStart]: rangeState.rangeStart,\n\t\t\t\t\t\t\t\t[styles.rangeEnd]: rangeState.rangeEnd,\n\t\t\t\t\t\t\t\t[styles.disabled]: disabled\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\taria-label={monthAriaFormatter.format(monthDate)}\n\t\t\t\t\t\t\taria-pressed={rangeState.selected || rangeState.range || rangeState.rangeStart || rangeState.rangeEnd}>\n\t\t\t\t\t\t\t{getMonthName(monthIndex)}\n\t\t\t\t\t\t</button>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n",".calendarView {\n\twidth: calc(18em + var(--width-add));\n}\n\n.calendarHeader {\n\tdisplay: flex;\n\tjustify-content: space-between;\n\talign-items: center;\n\tpadding-bottom: var(--space-sm);\n\tmargin-bottom: var(--space-sm);\n\tgap: var(--space-sm);\n\tborder-bottom: var(--border);\n}\n",".yearView {\n\tpadding: 0;\n}\n\n.yearsGrid {\n\tdisplay: grid;\n\tgrid-template-columns: repeat(3, 1fr);\n\tgap: var(--border-width);\n}\n\n.year {\n\theight: var(--control-height);\n\tcursor: pointer;\n\tborder-radius: var(--radius-xs);\n\t// font-size: var(--font-size-sm);\n\n\tbackground-color: var(--surface-1);\n\n\t&:hover:not(.disabled) {\n\t\tbackground-color: var(--surface-accent);\n\t}\n\n\t&.range {\n\t\tbackground-color: var(--surface-accent);\n\t\tcolor: var(--content-0);\n\t}\n\n\t&.selected,\n\t&.rangeStart,\n\t&.rangeEnd {\n\t\tbackground-color: var(--surface-accent);\n\t\tcolor: var(--content-accent);\n\t\tfont-weight: 600;\n\t\tfont-variation-settings: \"wght\" 600;\n\t}\n\n\t&.disabled {\n\t\tcolor: var(--content-2);\n\t\tcursor: not-allowed;\n\n\t\t&:hover {\n\t\t\tbackground: none;\n\t\t}\n\t}\n}\n","import { useState } from \"react\";\n\nimport {\n\tcreateCalendarDate,\n\tgetCalendarPeriod,\n\tisCalendarPeriodWithinDateBounds,\n\ttype CalendarPeriodOptions,\n\ttype DateRangeInput\n} from \"@ryuzaki13/react-foundation-lib/formatters\";\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\n\nimport { resolveDateInputPeriodRangeState } from \"../lib\";\n\nimport styles from \"./CalendarYearView.module.scss\";\n\nimport type { DateInputSelectionMode, DateInputWeekEndDay } from \"../lib\";\n\ninterface YearViewProps {\n\tcurrentDate: Date;\n\tvalue: DateRangeInput;\n\tonChange: (date: Date) => void;\n\tminDate?: Date;\n\tmaxDate?: Date;\n\tselectsRange?: boolean;\n\tselectsPeriod?: boolean;\n\tselectionMode?: DateInputSelectionMode;\n\tweekEndDay?: DateInputWeekEndDay;\n}\n\n/**\n * Отображает выбор года в календарной семантике без timezone-сдвига.\n */\nexport const CalendarYearView: React.FC<YearViewProps> = ({\n\tcurrentDate,\n\tvalue,\n\tonChange,\n\tminDate,\n\tmaxDate,\n\tselectsRange,\n\tselectsPeriod,\n\tselectionMode = \"day\",\n\tweekEndDay = \"sunday\"\n}) => {\n\tconst [hoveredDate, setHoveredDate] = useState<Date | null>(null);\n\tconst startYear = Math.floor(currentDate.getFullYear() / 12) * 12;\n\tconst years = Array.from({ length: 12 }, (_, index) => startYear + index);\n\tconst selectionOptions: CalendarPeriodOptions = {\n\t\tselectionMode,\n\t\tweekEndDay\n\t};\n\tconst selectedStartDate = selectsRange && Array.isArray(value) ? value[0] : null;\n\tconst selectedEndDate = selectsRange && Array.isArray(value) ? value[1] : null;\n\n\t/**\n\t * Проверяет ограничения на выбор года.\n\t */\n\tconst isDisabled = (year: number) => {\n\t\tif (!minDate && !maxDate) return false;\n\n\t\tconst yearStart = createCalendarDate(year, 0, 1);\n\t\tconst yearEnd = createCalendarDate(year, 11, 31, 23, 59, 59);\n\n\t\tif (selectsPeriod) {\n\t\t\treturn !isCalendarPeriodWithinDateBounds(getCalendarPeriod(yearStart, selectionOptions), { minDate, maxDate });\n\t\t}\n\n\t\tif (minDate && yearEnd < minDate) return true;\n\t\tif (maxDate && yearStart > maxDate) return true;\n\n\t\treturn false;\n\t};\n\n\t/**\n\t * Обновляет preview-конец диапазона при движении мыши.\n\t */\n\tconst handleYearHover = (date: Date, disabled: boolean) => {\n\t\tif (!selectsRange || !selectedStartDate || selectedEndDate || disabled) return;\n\t\tsetHoveredDate(date);\n\t};\n\n\t/**\n\t * Сбрасывает preview незавершённого диапазона при уходе курсора.\n\t */\n\tconst handleGridLeave = () => {\n\t\tif (!selectedEndDate) {\n\t\t\tsetHoveredDate(null);\n\t\t}\n\t};\n\n\treturn (\n\t\t<div className={styles.yearView}>\n\t\t\t<div className={styles.yearsGrid} onMouseLeave={handleGridLeave}>\n\t\t\t\t{years.map((year) => {\n\t\t\t\t\tconst disabled = isDisabled(year);\n\t\t\t\t\tconst yearDate = createCalendarDate(year, 0, 1);\n\t\t\t\t\tconst rangeState = resolveDateInputPeriodRangeState({\n\t\t\t\t\t\tdate: yearDate,\n\t\t\t\t\t\tvalue,\n\t\t\t\t\t\thoveredDate,\n\t\t\t\t\t\tselectsRange,\n\t\t\t\t\t\tselectionOptions\n\t\t\t\t\t});\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\tkey={year}\n\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\tonClick={() => !disabled && onChange(yearDate)}\n\t\t\t\t\t\t\tonMouseEnter={() => handleYearHover(yearDate, disabled)}\n\t\t\t\t\t\t\tdisabled={disabled}\n\t\t\t\t\t\t\tdata-ui=\"calendar-year-button\"\n\t\t\t\t\t\t\tdata-action=\"select-calendar-year\"\n\t\t\t\t\t\t\tclassName={cn(styles.year, {\n\t\t\t\t\t\t\t\t[styles.selected]: rangeState.selected,\n\t\t\t\t\t\t\t\t[styles.range]: rangeState.range,\n\t\t\t\t\t\t\t\t[styles.rangeStart]: rangeState.rangeStart,\n\t\t\t\t\t\t\t\t[styles.rangeEnd]: rangeState.rangeEnd,\n\t\t\t\t\t\t\t\t[styles.disabled]: disabled\n\t\t\t\t\t\t\t})}\n\t\t\t\t\t\t\taria-label={year.toString()}\n\t\t\t\t\t\t\taria-pressed={rangeState.selected || rangeState.range || rangeState.rangeStart || rangeState.rangeEnd}>\n\t\t\t\t\t\t\t{year}\n\t\t\t\t\t\t</button>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\t\t</div>\n\t);\n};\n","import { useState } from \"react\";\n\nimport {\n\taddCalendarMonths,\n\taddCalendarYears,\n\tgetCalendarPeriod,\n\tgetStartOfDay,\n\tisCalendarPeriodWithinDateBounds,\n\tisDateRangeTuple,\n\ttype CalendarPeriodOptions,\n\ttype NullableDateRange\n} from \"@ryuzaki13/react-foundation-lib/formatters\";\nimport { ChevronLeft, ChevronRight } from \"lucide-react\";\n\nimport { Button } from \"../../button\";\nimport { isDatePickerLevelAvailable, type CalendarType, type DateInputSelectionMode, type DateInputWeekEndDay } from \"../lib\";\n\nimport { CalendarDayView } from \"./CalendarDayView\";\nimport { CalendarMonthView } from \"./CalendarMonthView\";\nimport styles from \"./CalendarView.module.scss\";\nimport { CalendarYearView } from \"./CalendarYearView\";\n\ninterface BaseCalendarViewProps {\n\tview: CalendarType;\n\tdatePickerLevel: CalendarType;\n\tselectionMode?: DateInputSelectionMode;\n\tweekEndDay?: DateInputWeekEndDay;\n\tonViewChange: (view: CalendarType) => void;\n}\n\ninterface CalendarViewProps extends BaseCalendarViewProps {\n\tselectsRange?: boolean;\n\tvalue: Date | NullableDateRange | null;\n\tonChange: (date: Date | NullableDateRange) => void;\n\tminDate?: Date;\n\tmaxDate?: Date;\n\tcurrentDate?: Date;\n\tonCurrentDateChange?: (date: Date) => void;\n}\n\n/** Возвращает дату, к периоду которой должен перейти uncontrolled-календарь после внешней смены value. */\nfunction resolveValueCurrentDate(value: Date | NullableDateRange | null, selectsRange?: boolean): Date | undefined {\n\tif (selectsRange && isDateRangeTuple(value) && value[0] instanceof Date) {\n\t\treturn value[0];\n\t}\n\n\tif (!selectsRange && value instanceof Date) {\n\t\treturn value;\n\t}\n\n\treturn undefined;\n}\n\n/**\n * Отображает календарь выбора даты в календарной семантике без timezone-сдвига.\n */\nexport function CalendarView({\n\tview,\n\tdatePickerLevel,\n\tselectionMode = \"day\",\n\tweekEndDay = \"sunday\",\n\tonViewChange,\n\t...props\n}: CalendarViewProps) {\n\tconst [dateNow] = useState(() => getStartOfDay(new Date()));\n\tconst valueCurrentDate = resolveValueCurrentDate(props.value, props.selectsRange);\n\tconst valueCurrentDateTime = valueCurrentDate?.getTime() ?? null;\n\tconst [uncontrolledState, setUncontrolledState] = useState(() => ({\n\t\tsourceValueTime: valueCurrentDateTime,\n\t\tcurrentDate: valueCurrentDate ?? getStartOfDay(new Date())\n\t}));\n\tconst uncontrolledCurrentDate =\n\t\tvalueCurrentDate && uncontrolledState.sourceValueTime !== valueCurrentDateTime ? valueCurrentDate : uncontrolledState.currentDate;\n\tconst currentDate = props.currentDate ?? uncontrolledCurrentDate;\n\tconst selectionOptions: CalendarPeriodOptions = {\n\t\tselectionMode,\n\t\tweekEndDay\n\t};\n\n\t/**\n\t * Обновляет видимую календарную дату в управляемом или неуправляемом режиме.\n\t */\n\tconst setCurrentDate = (value: Date | ((prevValue: Date) => Date)) => {\n\t\tconst nextValue = typeof value === \"function\" ? value(currentDate) : value;\n\n\t\tif (props.currentDate === undefined) {\n\t\t\tsetUncontrolledState({\n\t\t\t\tsourceValueTime: valueCurrentDateTime,\n\t\t\t\tcurrentDate: nextValue\n\t\t\t});\n\t\t}\n\n\t\tprops.onCurrentDateChange?.(nextValue);\n\t};\n\n\t/**\n\t * Переключает видимую область календаря назад.\n\t */\n\tconst goToPrevious = () => {\n\t\tif (view === \"day\") {\n\t\t\tsetCurrentDate((prev) => addCalendarMonths(prev, -1));\n\t\t\treturn;\n\t\t}\n\n\t\tif (view === \"month\") {\n\t\t\tsetCurrentDate((prev) => addCalendarYears(prev, -1));\n\t\t\treturn;\n\t\t}\n\n\t\tsetCurrentDate((prev) => addCalendarYears(prev, -12));\n\t};\n\n\t/**\n\t * Переключает видимую область календаря вперёд.\n\t */\n\tconst goToNext = () => {\n\t\tif (view === \"day\") {\n\t\t\tsetCurrentDate((prev) => addCalendarMonths(prev, 1));\n\t\t\treturn;\n\t\t}\n\n\t\tif (view === \"month\") {\n\t\t\tsetCurrentDate((prev) => addCalendarYears(prev, 1));\n\t\t\treturn;\n\t\t}\n\n\t\tsetCurrentDate((prev) => addCalendarYears(prev, 12));\n\t};\n\n\t/**\n\t * Возвращает заголовок текущего календарного вида.\n\t */\n\tconst renderHeader = () => {\n\t\tlet title = \"\";\n\t\tif (view === \"day\") {\n\t\t\ttitle = currentDate.toLocaleDateString(\"ru-RU\", {\n\t\t\t\tmonth: \"long\",\n\t\t\t\tyear: \"numeric\"\n\t\t\t});\n\t\t} else if (view === \"month\") {\n\t\t\ttitle = currentDate.getFullYear().toString();\n\t\t} else {\n\t\t\tconst startYear = Math.floor(currentDate.getFullYear() / 12) * 12;\n\t\t\tconst endYear = startYear + 11;\n\t\t\ttitle = `${startYear} - ${endYear}`;\n\t\t}\n\n\t\treturn (\n\t\t\t<div className={styles.calendarHeader}>\n\t\t\t\t<Button\n\t\t\t\t\ticon={<ChevronLeft />}\n\t\t\t\t\tonClick={goToPrevious}\n\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t\taria-label=\"Предыдущий\"\n\t\t\t\t\tdata-action=\"calendar-previous\"\n\t\t\t\t/>\n\n\t\t\t\t<Button\n\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\tif (view === \"day\") onViewChange(\"month\");\n\t\t\t\t\t\telse if (view === \"month\") onViewChange(\"year\");\n\t\t\t\t\t}}\n\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t\tclassName=\"flex1\"\n\t\t\t\t\tdata-ui=\"calendar-view-switch-button\"\n\t\t\t\t\tdata-action=\"calendar-switch-view\">\n\t\t\t\t\t{title}\n\t\t\t\t</Button>\n\n\t\t\t\t<Button\n\t\t\t\t\ticon={<ChevronRight />}\n\t\t\t\t\tonClick={goToNext}\n\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t\taria-label=\"Следующий\"\n\t\t\t\t\tdata-ui=\"calendar-next-button\"\n\t\t\t\t\tdata-action=\"calendar-next\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t};\n\n\t/**\n\t * Отрисовывает активный режим календаря.\n\t */\n\tconst renderView = () => {\n\t\tconst handleDateSelect = (date: Date) => {\n\t\t\tconst selectedPeriod = getCalendarPeriod(date, selectionOptions);\n\t\t\tif (!selectedPeriod || !isCalendarPeriodWithinDateBounds(selectedPeriod, { minDate: props.minDate, maxDate: props.maxDate }))\n\t\t\t\treturn;\n\n\t\t\tif (props.selectsRange) {\n\t\t\t\tlet selectedStartDate: Date | null = null;\n\t\t\t\tlet selectedEndDate: Date | null = null;\n\n\t\t\t\tif (Array.isArray(props.value)) {\n\t\t\t\t\t[selectedStartDate, selectedEndDate] = props.value;\n\t\t\t\t}\n\n\t\t\t\tif (!selectedStartDate || selectedEndDate) {\n\t\t\t\t\tprops.onChange([selectedPeriod.start, null]);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tconst startPeriod = getCalendarPeriod(selectedStartDate, selectionOptions);\n\t\t\t\tif (!startPeriod) return;\n\n\t\t\t\tif (selectedPeriod.start < startPeriod.start) {\n\t\t\t\t\tprops.onChange([selectedPeriod.start, startPeriod.end]);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tprops.onChange([startPeriod.start, selectedPeriod.end]);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tprops.onChange(selectedPeriod.start);\n\t\t};\n\n\t\tconst handleMonthSelect = (date: Date) => {\n\t\t\tsetCurrentDate(date);\n\n\t\t\tif (selectionMode === \"month\" || !isDatePickerLevelAvailable(\"day\", datePickerLevel)) {\n\t\t\t\thandleDateSelect(date);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tonViewChange(\"day\");\n\t\t};\n\n\t\tconst handleYearSelect = (date: Date) => {\n\t\t\tsetCurrentDate(date);\n\n\t\t\tif (selectionMode === \"year\" || !isDatePickerLevelAvailable(\"month\", datePickerLevel)) {\n\t\t\t\thandleDateSelect(date);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tonViewChange(\"month\");\n\t\t};\n\n\t\tswitch (view) {\n\t\t\tcase \"day\":\n\t\t\t\treturn (\n\t\t\t\t\t<CalendarDayView\n\t\t\t\t\t\tnow={dateNow}\n\t\t\t\t\t\tcurrentDate={currentDate}\n\t\t\t\t\t\tvalue={props.value}\n\t\t\t\t\t\tonChange={handleDateSelect}\n\t\t\t\t\t\tminDate={props.minDate}\n\t\t\t\t\t\tmaxDate={props.maxDate}\n\t\t\t\t\t\tselectsRange={props.selectsRange}\n\t\t\t\t\t\tselectionMode={selectionMode}\n\t\t\t\t\t\tweekEndDay={weekEndDay}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\tcase \"month\":\n\t\t\t\treturn (\n\t\t\t\t\t<CalendarMonthView\n\t\t\t\t\t\tcurrentDate={currentDate}\n\t\t\t\t\t\tvalue={props.value}\n\t\t\t\t\t\tonChange={handleMonthSelect}\n\t\t\t\t\t\tminDate={props.minDate}\n\t\t\t\t\t\tmaxDate={props.maxDate}\n\t\t\t\t\t\tselectsRange={props.selectsRange}\n\t\t\t\t\t\tselectsPeriod={selectionMode === \"month\" || !isDatePickerLevelAvailable(\"day\", datePickerLevel)}\n\t\t\t\t\t\tselectionMode={selectionMode}\n\t\t\t\t\t\tweekEndDay={weekEndDay}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\tcase \"year\":\n\t\t\t\treturn (\n\t\t\t\t\t<CalendarYearView\n\t\t\t\t\t\tcurrentDate={currentDate}\n\t\t\t\t\t\tvalue={props.value}\n\t\t\t\t\t\tonChange={handleYearSelect}\n\t\t\t\t\t\tminDate={props.minDate}\n\t\t\t\t\t\tmaxDate={props.maxDate}\n\t\t\t\t\t\tselectsRange={props.selectsRange}\n\t\t\t\t\t\tselectsPeriod={selectionMode === \"year\" || !isDatePickerLevelAvailable(\"month\", datePickerLevel)}\n\t\t\t\t\t\tselectionMode={selectionMode}\n\t\t\t\t\t\tweekEndDay={weekEndDay}\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\tdefault:\n\t\t\t\treturn null;\n\t\t}\n\t};\n\n\treturn (\n\t\t<div className={styles.calendarView}>\n\t\t\t{renderHeader()}\n\t\t\t{renderView()}\n\t\t</div>\n\t);\n}\n"],"mappings":";;;;;;;AAWA,IAAa,IAAqB;CAAC;CAAO;CAAS;AAAM,GAC5C,IAA2B;CAAC;CAAU;CAAY;AAAQ;AAKvE,SAAgB,EAAmC,GAAwD;CAI1G,OAHI,MAAkB,UAAgB,UAClC,MAAkB,SAAe,SAE9B;AACR;AAKA,SAAgB,EAA2B,GAAwB,GAAoC;CACtG,OAAO,EAAmB,QAAQ,CAAK,KAAK,EAAmB,QAAQ,CAAQ;AAChF;AAKA,SAAgB,EAAgC,GAAuC,GAA4C;CAClI,IAAM,IAAiB,EAAmC,CAAa;CAEvE,OAAO,EAA2B,GAAgB,CAAQ,IAAI,IAAiB;AAChF;AAiBA,SAAS,EAAqB,GAA6B,GAAuC;CAGjG,OAFI,CAAC,KAAQ,CAAC,IAAc,KAErB,EAAK,MAAM,QAAQ,MAAM,EAAM,MAAM,QAAQ,KAAK,EAAK,IAAI,QAAQ,MAAM,EAAM,IAAI,QAAQ;AACnG;AAEA,SAAS,EACR,GACA,GACA,GACU;CACV,IAAI,CAAC,KAAU,CAAC,KAAe,CAAC,GAAW,OAAO;CAElD,IAAM,IAAY,KAAK,IAAI,EAAY,MAAM,QAAQ,GAAG,EAAU,MAAM,QAAQ,CAAC,GAC3E,IAAU,KAAK,IAAI,EAAY,IAAI,QAAQ,GAAG,EAAU,IAAI,QAAQ,CAAC;CAE3E,OAAO,EAAO,MAAM,QAAQ,KAAK,KAAa,EAAO,IAAI,QAAQ,KAAK;AACvE;AAKA,SAAgB,EAAiC,EAChD,SACA,UACA,gBACA,iBACA,uBAC+D;CAC/D,IAAM,IAAS,EAAkB,GAAM,CAAgB,GACjD,IAAe,CAAC,KAAgB,aAAiB,OAAO,IAAQ,MAChE,IAAuB,EAAkB,GAAc,CAAgB;CAE7E,IAAI,CAAC,KAAgB,CAAC,MAAM,QAAQ,CAAK,GACxC,OAAO;EACN,UAAU,EAA2B,GAAM,CAAoB;EAC/D,OAAO;EACP,YAAY;EACZ,UAAU;CACX;CAGD,IAAM,CAAC,GAAmB,KAAmB,GACvC,IAAsB,EAAkB,GAAmB,CAAgB,GAC3E,IAAmB,EAAkB,MAAoB,IAAoB,IAAc,OAAO,CAAgB,GAClH,IAAa,EAAqB,GAAQ,CAAmB,GAC7D,IAAW,EAAqB,GAAQ,CAAgB;CAG9D,OAAO;EACN,UAAU;EACV,OAJa,EAA4B,GAAQ,GAAqB,CAI/D,KAAS,CAAC,KAAc,CAAC;EAChC;EACA;CACD;AACD;;;;;;;;;;;;;;;;;;GE5FM,IAAW;CAAC;CAAM;CAAM;CAAM;CAAM;CAAM;CAAM;AAAI,GACpD,IAAoB,IAAI,KAAK,eAAe,SAAS;CAC1D,SAAS;CACT,MAAM;CACN,OAAO;CACP,KAAK;AACN,CAAC,GAiBY,KAA2C,EACvD,QACA,gBACA,UACA,aACA,YACA,YACA,iBACA,mBAAgB,OAChB,gBAAa,eACR;CACL,IAAM,CAAC,GAAa,KAAkB,EAAsB,IAAI,GAC1D,IAA0C;EAC/C;EACA;CACD,GAqCM,WAhC6B;EAClC,IAAM,IAAO,EAAY,YAAY,GAC/B,IAAQ,EAAY,SAAS,GAE7B,IAAW,EAAmB,GAAM,GAAO,CAAC,GAC5C,IAAU,EAAmB,GAAM,IAAQ,GAAG,CAAC,GAC/C,IAAgB,EAAS,OAAO,MAAM,IAAI,IAAI,EAAS,OAAO,IAAI,GAClE,IAAgB,MAAS,IAAgB,EAAQ,QAAQ,IAEzD,IAAe,CAAC,GAChB,IAAmB,EAAmB,GAAM,GAAO,CAAC,CAAC,CAAC,QAAQ;EAEpE,KAAK,IAAI,IAAQ,GAAe,IAAQ,GAAG,KAC1C,EAAK,KAAK,EAAmB,GAAM,IAAQ,GAAG,IAAmB,IAAQ,CAAC,CAAC;EAG5E,KAAK,IAAI,IAAM,GAAG,KAAO,EAAQ,QAAQ,GAAG,KAAO,GAClD,EAAK,KAAK,EAAmB,GAAM,GAAO,CAAG,CAAC;EAG/C,KAAK,IAAI,IAAM,GAAG,KAAO,GAAe,KAAO,GAC9C,EAAK,KAAK,EAAmB,GAAM,IAAQ,GAAG,CAAG,CAAC;EAGnD,IAAM,IAAkB,CAAC;EACzB,KAAK,IAAI,IAAQ,GAAG,IAAQ,EAAK,QAAQ,KAAS,GACjD,EAAM,KAAK,EAAK,MAAM,GAAO,IAAQ,CAAC,CAAC;EAGxC,OAAO;CACR,EAEc,CAAqB,GAC7B,IAAoB,KAAgB,MAAM,QAAQ,CAAK,IAAI,EAAM,KAAK,MACtE,IAAkB,KAAgB,MAAM,QAAQ,CAAK,IAAI,EAAM,KAAK,MAEpE,IAAuB,EADP,IAAwC,OAAxB,GACuB,CAAgB,GACvE,IAAgB,EAAkB,GAAa,CAAgB,GAC/D,IAAiB,MAAoB,IAAqB,GAAe,OAAO,OAAQ,OACxF,IAAqB,MAAkB,QACvC,IAA2B,MAAuB,CAAC,KAAgB,CAAC,IAKpE,KAAa,MAAe;EACjC,IAAI,CAAC,KAAgB,CAAC,KAAqB,CAAC,GAAgB,OAAO;EAEnE,IAAM,IAAS,EAAc,CAAI,CAAC,CAAC,QAAQ,GACrC,IAAU,EAAkB,QAAQ,GACpC,IAAQ,EAAe,QAAQ;EAErC,OAAO,KAAU,KAAK,IAAI,GAAS,CAAK,KAAK,KAAU,KAAK,IAAI,GAAS,CAAK;CAC/E,GAKM,KAAc,MACZ,CAAC,EAAiC,EAAkB,GAAM,CAAgB,GAAG;EAAE;EAAS;CAAQ,CAAC,GAMnG,KAAkB,GAAY,MAAsB;EACrD,MAEA,KACH,EAAe,CAAI,GAGhB,GAAC,KAAgB,CAAC,KAAqB,OACtC,KAAoB,EAAe,CAAI;CAC7C;CAWA,OACC,kBAAC,OAAD;EAAK,WAAW,EAAO;EAAvB,UAAA,CACC,kBAAC,OAAD;GAAK,WAAW,EAAO;GACrB,UAAA,EAAS,KAAK,MACd,kBAAC,OAAD;IAAe,WAAW,EAAO;IAC/B,UAAA;GACG,GAFK,CAEL,CACL;EACG,CAAA,GAEL,kBAAC,OAAD;GAAK,WAAW,EAAO;GAAU,oBAhBL;IAC7B,CAAI,KAAsB,CAAC,MAC1B,EAAe,IAAI;GAErB;GAaI,UAAA,EAAM,KAAK,GAAM,MACjB,kBAAC,OAAD;IAAqB,WAAW,EAAO;IACrC,UAAA,EAAK,KAAK,GAAK,MAAa;KAC5B,IAAM,IAAiB,EAAI,SAAS,MAAM,EAAY,SAAS,GACzD,IAAa,EAA2B,GAAK,CAAoB,GACjE,IAAkB,KAA4B,EAA2B,GAAK,CAAa,GAC3F,IAAU,EAAU,CAAG,GACvB,IAAU,EAAkB,GAAK,CAAiB,GAClD,IAAQ,EAAkB,GAAK,CAAc,GAC7C,IAAQ,EAAkB,GAAK,CAAG,GAClC,IAAW,EAAW,CAAG;KAE/B,OACC,kBAAC,UAAD;MAEC,MAAK;MACL,eAAe,CAAC,KAAY,EAAS,CAAG;MACxC,oBAAoB,EAAe,GAAK,CAAQ;MACtC;MACV,WAAQ;MACR,eAAY;MACZ,WAAW,EAAG,EAAO,KAAK;QACxB,EAAO,eAAe,CAAC;QACvB,EAAO,kBAAkB,MAAkB;QAC3C,EAAO,gBAAgB,KAAmB,CAAC;QAC3C,EAAO,WAAW;QAClB,EAAO,QAAQ,KAAW,CAAC,KAAW,CAAC;QACvC,EAAO,aAAa;QACpB,EAAO,WAAW;QAClB,EAAO,WAAW;QAClB,EAAO,UAAU,IAAW;QAC5B,EAAO,MAAM;MACf,CAAC;MACD,cAAY,EAAkB,OAAO,CAAG;MACxC,gBAAc,KAAc,KAAW,KAAW;MACjD,UAAA,EAAI,QAAQ;KACN,GAtBF,GAAG,EAAU,GAAG,GAsBd;IAEV,CAAC;GACG,GAtCK,CAsCL,CACL;EACG,CAAA,CACD;;AAEP;;;;;;;;;GExLM,IAAsB,IAAI,KAAK,eAAe,SAAS,EAAE,OAAO,QAAQ,CAAC,GACzE,IAAqB,IAAI,KAAK,eAAe,SAAS;CAAE,OAAO;CAAQ,MAAM;AAAU,CAAC,GAiBjF,KAA+C,EAC3D,gBACA,UACA,aACA,YACA,YACA,iBACA,kBACA,mBAAgB,OAChB,gBAAa,eACR;CACL,IAAM,CAAC,GAAa,KAAkB,EAAsB,IAAI,GAC1D,IAAS,MAAM,KAAK,EAAE,QAAQ,GAAG,IAAI,GAAG,MAAU,CAAK,GACvD,IAAc,EAAY,YAAY,GACtC,IAA0C;EAC/C;EACA;CACD,GACM,IAAoB,KAAgB,MAAM,QAAQ,CAAK,IAAI,EAAM,KAAK,MACtE,IAAkB,KAAgB,MAAM,QAAQ,CAAK,IAAI,EAAM,KAAK,MAKpE,KAAgB,MAAuB,EAAoB,OAAO,EAAmB,GAAa,GAAY,CAAC,CAAC,GAKhH,KAAc,MAAuB;EAC1C,IAAI,CAAC,KAAW,CAAC,GAAS,OAAO;EAEjC,IAAM,IAAa,EAAmB,GAAa,GAAY,CAAC,GAC1D,IAAW,EAAmB,GAAa,IAAa,GAAG,GAAG,IAAI,IAAI,EAAE;EAS9E,OAPI,IACI,CAAC,EAAiC,EAAkB,GAAY,CAAgB,GAAG;GAAE;GAAS;EAAQ,CAAC,IAI/G,GADI,KAAW,IAAW,KACtB,KAAW,IAAa;CAG7B,GAKM,KAAoB,GAAY,MAAsB;EACvD,CAAC,KAAgB,CAAC,KAAqB,KAAmB,KAC9D,EAAe,CAAI;CACpB;CAWA,OACC,kBAAC,OAAD;EAAK,WAAW,EAAO;EACtB,UAAA,kBAAC,OAAD;GAAK,WAAW,EAAO;GAAY,oBARP;IAC7B,AAAK,KACJ,EAAe,IAAI;GAErB;GAKI,UAAA,EAAO,KAAK,MAAe;IAC3B,IAAM,IAAW,EAAW,CAAU,GAChC,IAAY,EAAmB,GAAa,GAAY,CAAC,GACzD,IAAa,EAAiC;KACnD,MAAM;KACN;KACA;KACA;KACA;IACD,CAAC;IAED,OACC,kBAAC,UAAD;KAEC,MAAK;KACL,eAAe,CAAC,KAAY,EAAS,CAAS;KAC9C,oBAAoB,EAAiB,GAAW,CAAQ;KAC9C;KACV,WAAQ;KACR,eAAY;KACZ,WAAW,EAAG,EAAO,OAAO;OAC1B,EAAO,WAAW,EAAW;OAC7B,EAAO,QAAQ,EAAW;OAC1B,EAAO,aAAa,EAAW;OAC/B,EAAO,WAAW,EAAW;OAC7B,EAAO,WAAW;KACpB,CAAC;KACD,cAAY,EAAmB,OAAO,CAAS;KAC/C,gBAAc,EAAW,YAAY,EAAW,SAAS,EAAW,cAAc,EAAW;KAC5F,UAAA,EAAa,CAAU;IACjB,GAjBF,CAiBE;GAEV,CAAC;EACG,CAAA;CACD,CAAA;AAEP;;;;;;;;;;;;GGxGa,KAA6C,EACzD,gBACA,UACA,aACA,YACA,YACA,iBACA,kBACA,mBAAgB,OAChB,gBAAa,eACR;CACL,IAAM,CAAC,GAAa,KAAkB,EAAsB,IAAI,GAC1D,IAAY,KAAK,MAAM,EAAY,YAAY,IAAI,EAAE,IAAI,IACzD,IAAQ,MAAM,KAAK,EAAE,QAAQ,GAAG,IAAI,GAAG,MAAU,IAAY,CAAK,GAClE,IAA0C;EAC/C;EACA;CACD,GACM,IAAoB,KAAgB,MAAM,QAAQ,CAAK,IAAI,EAAM,KAAK,MACtE,IAAkB,KAAgB,MAAM,QAAQ,CAAK,IAAI,EAAM,KAAK,MAKpE,KAAc,MAAiB;EACpC,IAAI,CAAC,KAAW,CAAC,GAAS,OAAO;EAEjC,IAAM,IAAY,EAAmB,GAAM,GAAG,CAAC,GACzC,IAAU,EAAmB,GAAM,IAAI,IAAI,IAAI,IAAI,EAAE;EAS3D,OAPI,IACI,CAAC,EAAiC,EAAkB,GAAW,CAAgB,GAAG;GAAE;GAAS;EAAQ,CAAC,IAI9G,GADI,KAAW,IAAU,KACrB,KAAW,IAAY;CAG5B,GAKM,KAAmB,GAAY,MAAsB;EACtD,CAAC,KAAgB,CAAC,KAAqB,KAAmB,KAC9D,EAAe,CAAI;CACpB;CAWA,OACC,kBAAC,OAAD;EAAK,WAAW,EAAO;EACtB,UAAA,kBAAC,OAAD;GAAK,WAAW,EAAO;GAAW,oBARN;IAC7B,AAAK,KACJ,EAAe,IAAI;GAErB;GAKI,UAAA,EAAM,KAAK,MAAS;IACpB,IAAM,IAAW,EAAW,CAAI,GAC1B,IAAW,EAAmB,GAAM,GAAG,CAAC,GACxC,IAAa,EAAiC;KACnD,MAAM;KACN;KACA;KACA;KACA;IACD,CAAC;IAED,OACC,kBAAC,UAAD;KAEC,MAAK;KACL,eAAe,CAAC,KAAY,EAAS,CAAQ;KAC7C,oBAAoB,EAAgB,GAAU,CAAQ;KAC5C;KACV,WAAQ;KACR,eAAY;KACZ,WAAW,EAAG,EAAO,MAAM;OACzB,EAAO,WAAW,EAAW;OAC7B,EAAO,QAAQ,EAAW;OAC1B,EAAO,aAAa,EAAW;OAC/B,EAAO,WAAW,EAAW;OAC7B,EAAO,WAAW;KACpB,CAAC;KACD,cAAY,EAAK,SAAS;KAC1B,gBAAc,EAAW,YAAY,EAAW,SAAS,EAAW,cAAc,EAAW;KAC5F,UAAA;IACM,GAjBF,CAiBE;GAEV,CAAC;EACG,CAAA;CACD,CAAA;AAEP;;;ACvFA,SAAS,EAAwB,GAAwC,GAA0C;CAClH,IAAI,KAAgB,EAAiB,CAAK,KAAK,EAAM,cAAc,MAClE,OAAO,EAAM;CAGd,IAAI,CAAC,KAAgB,aAAiB,MACrC,OAAO;AAIT;AAKA,SAAgB,EAAa,EAC5B,SACA,oBACA,mBAAgB,OAChB,gBAAa,UACb,iBACA,GAAG,KACkB;CACrB,IAAM,CAAC,KAAW,QAAe,kBAAc,IAAI,KAAK,CAAC,CAAC,GACpD,IAAmB,EAAwB,EAAM,OAAO,EAAM,YAAY,GAC1E,IAAuB,GAAkB,QAAQ,KAAK,MACtD,CAAC,GAAmB,KAAwB,SAAgB;EACjE,iBAAiB;EACjB,aAAa,KAAoB,kBAAc,IAAI,KAAK,CAAC;CAC1D,EAAE,GACI,IACL,KAAoB,EAAkB,oBAAoB,IAAuB,IAAmB,EAAkB,aACjH,IAAc,EAAM,eAAe,GACnC,IAA0C;EAC/C;EACA;CACD,GAKM,KAAkB,MAA8C;EACrE,IAAM,IAAY,OAAO,KAAU,aAAa,EAAM,CAAW,IAAI;EASrE,AAPI,EAAM,gBAAgB,KAAA,KACzB,EAAqB;GACpB,iBAAiB;GACjB,aAAa;EACd,CAAC,GAGF,EAAM,sBAAsB,CAAS;CACtC,GAKM,UAAqB;EAC1B,IAAI,MAAS,OAAO;GACnB,GAAgB,MAAS,EAAkB,GAAM,EAAE,CAAC;GACpD;EACD;EAEA,IAAI,MAAS,SAAS;GACrB,GAAgB,MAAS,EAAiB,GAAM,EAAE,CAAC;GACnD;EACD;EAEA,GAAgB,MAAS,EAAiB,GAAM,GAAG,CAAC;CACrD,GAKM,UAAiB;EACtB,IAAI,MAAS,OAAO;GACnB,GAAgB,MAAS,EAAkB,GAAM,CAAC,CAAC;GACnD;EACD;EAEA,IAAI,MAAS,SAAS;GACrB,GAAgB,MAAS,EAAiB,GAAM,CAAC,CAAC;GAClD;EACD;EAEA,GAAgB,MAAS,EAAiB,GAAM,EAAE,CAAC;CACpD;CAiKA,OACC,kBAAC,OAAD;EAAK,WAAW,EAAO;EAAvB,UAAA,QA7J0B;GAC1B,IAAI,IAAQ;GACZ,IAAI,MAAS,OACZ,IAAQ,EAAY,mBAAmB,SAAS;IAC/C,OAAO;IACP,MAAM;GACP,CAAC;QACK,IAAI,MAAS,SACnB,IAAQ,EAAY,YAAY,CAAC,CAAC,SAAS;QACrC;IACN,IAAM,IAAY,KAAK,MAAM,EAAY,YAAY,IAAI,EAAE,IAAI;IAE/D,IAAQ,GAAG,EAAU,KADL,IAAY;GAE7B;GAEA,OACC,kBAAC,OAAD;IAAK,WAAW,EAAO;IAAvB,UAAA;KACC,kBAAC,GAAD;MACC,MAAM,kBAAC,GAAD,CAAc,CAAA;MACpB,SAAS;MACT,SAAQ;MACR,cAAW;MACX,eAAY;KACZ,CAAA;KAED,kBAAC,GAAD;MACC,eAAe;OACd,AAAI,MAAS,QAAO,EAAa,OAAO,IAC/B,MAAS,WAAS,EAAa,MAAM;MAC/C;MACA,SAAQ;MACR,WAAU;MACV,WAAQ;MACR,eAAY;MACX,UAAA;KACM,CAAA;KAER,kBAAC,GAAD;MACC,MAAM,kBAAC,GAAD,CAAe,CAAA;MACrB,SAAS;MACT,SAAQ;MACR,cAAW;MACX,WAAQ;MACR,eAAY;KACZ,CAAA;IACG;;EAEP,EA+GG,CAAa,UA1GS;GACxB,IAAM,KAAoB,MAAe;IACxC,IAAM,IAAiB,EAAkB,GAAM,CAAgB;IAC3D,OAAC,KAAkB,CAAC,EAAiC,GAAgB;KAAE,SAAS,EAAM;KAAS,SAAS,EAAM;IAAQ,CAAC,IAG3H;SAAI,EAAM,cAAc;MACvB,IAAI,IAAiC,MACjC,IAA+B;MAMnC,IAJI,MAAM,QAAQ,EAAM,KAAK,MAC5B,CAAC,GAAmB,KAAmB,EAAM,QAG1C,CAAC,KAAqB,GAAiB;OAC1C,EAAM,SAAS,CAAC,EAAe,OAAO,IAAI,CAAC;OAC3C;MACD;MAEA,IAAM,IAAc,EAAkB,GAAmB,CAAgB;MACzE,IAAI,CAAC,GAAa;MAElB,IAAI,EAAe,QAAQ,EAAY,OAAO;OAC7C,EAAM,SAAS,CAAC,EAAe,OAAO,EAAY,GAAG,CAAC;OACtD;MACD;MAEA,EAAM,SAAS,CAAC,EAAY,OAAO,EAAe,GAAG,CAAC;MACtD;KACD;KAEA,EAAM,SAAS,EAAe,KAAK;IAFnC;GAGD,GAEM,KAAqB,MAAe;IAGzC,IAFA,EAAe,CAAI,GAEf,MAAkB,WAAW,CAAC,EAA2B,OAAO,CAAe,GAAG;KACrF,EAAiB,CAAI;KACrB;IACD;IAEA,EAAa,KAAK;GACnB,GAEM,KAAoB,MAAe;IAGxC,IAFA,EAAe,CAAI,GAEf,MAAkB,UAAU,CAAC,EAA2B,SAAS,CAAe,GAAG;KACtF,EAAiB,CAAI;KACrB;IACD;IAEA,EAAa,OAAO;GACrB;GAEA,QAAQ,GAAR;IACC,KAAK,OACJ,OACC,kBAAC,GAAD;KACC,KAAK;KACQ;KACb,OAAO,EAAM;KACb,UAAU;KACV,SAAS,EAAM;KACf,SAAS,EAAM;KACf,cAAc,EAAM;KACL;KACH;IACZ,CAAA;IAEH,KAAK,SACJ,OACC,kBAAC,GAAD;KACc;KACb,OAAO,EAAM;KACb,UAAU;KACV,SAAS,EAAM;KACf,SAAS,EAAM;KACf,cAAc,EAAM;KACpB,eAAe,MAAkB,WAAW,CAAC,EAA2B,OAAO,CAAe;KAC/E;KACH;IACZ,CAAA;IAEH,KAAK,QACJ,OACC,kBAAC,GAAD;KACc;KACb,OAAO,EAAM;KACb,UAAU;KACV,SAAS,EAAM;KACf,SAAS,EAAM;KACf,cAAc,EAAM;KACpB,eAAe,MAAkB,UAAU,CAAC,EAA2B,SAAS,CAAe;KAChF;KACH;IACZ,CAAA;IAEH,SACC,OAAO;GACT;EACD,EAKG,CAAW,CACR;;AAEP"}
|