@ryuzaki13/react-foundation-ui 1.8.19 → 1.9.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/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/package.json +1 -1
- package/storybook-static/assets/{Badge-CAM2jkFm.js → Badge-BdiEdu3X.js} +1 -1
- package/storybook-static/assets/{Badge.stories-DRjjmR32.js → Badge.stories-BBlMEKKX.js} +1 -1
- package/storybook-static/assets/{BadgeList-D4Swhp3V.js → BadgeList-DHXNitzx.js} +1 -1
- package/storybook-static/assets/{Button-4YB5_DwT.js → Button-B5mHumU3.js} +1 -1
- package/storybook-static/assets/{Button-1UZNz2k4.js → Button-BRUTThZH.js} +1 -1
- package/storybook-static/assets/{Button.stories-B0sdwFqZ.js → Button.stories-CtVoHZDd.js} +1 -1
- package/storybook-static/assets/CalendarView-9vjui-A9.js +1 -0
- package/storybook-static/assets/{CheckBox-BdGaGy4_.js → CheckBox-Bpb5rOM2.js} +1 -1
- package/storybook-static/assets/{CheckBox-Cpt5rjSg.js → CheckBox-DOwmpgu4.js} +1 -1
- package/storybook-static/assets/{CheckBox.stories-6d6-rkNo.js → CheckBox.stories-Bq4FvTOe.js} +1 -1
- package/storybook-static/assets/{Color-6AOWCN3U-sKBB2RBT.js → Color-6AOWCN3U-CdTnOOMs.js} +1 -1
- package/storybook-static/assets/{ContextMenu-BLnt5p2W.js → ContextMenu-Bv-YVzbh.js} +1 -1
- package/storybook-static/assets/{ContextMenu-B155_m2F.js → ContextMenu-vPJ8-UVA.js} +1 -1
- package/storybook-static/assets/{ContextMenu.stories-B8sv4v3Q.js → ContextMenu.stories-BC8gxAbT.js} +1 -1
- package/storybook-static/assets/{CustomOptionButton-hKfsqWNH.js → CustomOptionButton-CXPoWAC9.js} +1 -1
- package/storybook-static/assets/{DateInput-DvIl6s-f.js → DateInput-CWlAW7Ie.js} +1 -1
- package/storybook-static/assets/DateInput-DaTdvZ9c.js +1 -0
- package/storybook-static/assets/DateInput.stories-if3hOb9H.js +121 -0
- package/storybook-static/assets/{DateRangePresetSelect-BCLZcXdv.js → DateRangePresetSelect-BDR0ZE-d.js} +1 -1
- package/storybook-static/assets/DateRangePresetSelect-Bn63CxTl.js +3 -0
- package/storybook-static/assets/{DateRangePresetSelect.stories-D8zuTlHo.js → DateRangePresetSelect.stories-DWxkSAE1.js} +1 -1
- package/storybook-static/assets/{Detail-Ct95dA1k.js → Detail-Cc8B_cbH.js} +1 -1
- package/storybook-static/assets/{Detail.stories-Chedt7EX.js → Detail.stories-re1F74In.js} +1 -1
- package/storybook-static/assets/{Dialog-BX3QZOnt.js → Dialog-CRh6y7YF.js} +1 -1
- package/storybook-static/assets/{Dialog-C7Duw0PA.js → Dialog-CkT3w8Tz.js} +1 -1
- package/storybook-static/assets/{Dialog.stories-J0w0R0Db.js → Dialog.stories-BwuXGfri.js} +1 -1
- package/storybook-static/assets/{Disclosure-BzlV54RK.js → Disclosure-M__BDUDu.js} +1 -1
- package/storybook-static/assets/{Disclosure.stories-z7gnOr5h.js → Disclosure.stories-CqQQe2YZ.js} +1 -1
- package/storybook-static/assets/{DisclosureGroup-c179TOi5.js → DisclosureGroup-f-4zp0ps.js} +1 -1
- package/storybook-static/assets/{DocsRenderer-JROSPFPF-Ba9N3QAD.js → DocsRenderer-JROSPFPF-D8q-dgQB.js} +1 -1
- package/storybook-static/assets/{DropZone-D5X0oV8O.js → DropZone-C__isXrZ.js} +1 -1
- package/storybook-static/assets/{DropZone-vxUU2p-k.js → DropZone-DFSvHjLA.js} +1 -1
- package/storybook-static/assets/{DropZone.stories-iNXgESGM.js → DropZone.stories-CeQUhopO.js} +1 -1
- package/storybook-static/assets/{DropdownMenu-CJlpP3HB.js → DropdownMenu-DEhxHl0U.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel-CmkEByID.js → ExpandableActionPanel-CqLgcklx.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel.stories-DmRLaVxn.js → ExpandableActionPanel.stories-DxBFS6no.js} +1 -1
- package/storybook-static/assets/{Flex-tVAYZ-nU.js → Flex-CDgo5pNt.js} +1 -1
- package/storybook-static/assets/{Flex.stories-CVYDcbvw.js → Flex.stories-CJO_64A3.js} +1 -1
- package/storybook-static/assets/{FloatingPopover-DMTLPzR3.js → FloatingPopover-D9zppnn5.js} +1 -1
- package/storybook-static/assets/{FormattedTableCell-DP6-D86D.js → FormattedTableCell-rZ8kctY-.js} +1 -1
- package/storybook-static/assets/{Grid-Vm-amT-a.js → Grid-C3nthJLr.js} +1 -1
- package/storybook-static/assets/{Grid.stories-B0beH9CK.js → Grid.stories-Dm-B_m-Z.js} +1 -1
- package/storybook-static/assets/{ImageCropper.stories-Dt-IA4EB.js → ImageCropper.stories-Bel8XXCC.js} +1 -1
- package/storybook-static/assets/{ImageRenderer-DudkQ-3G.js → ImageRenderer-8X4aePCm.js} +1 -1
- package/storybook-static/assets/{ImageRenderer.stories-CNeSiXkj.js → ImageRenderer.stories-rakzIJeM.js} +1 -1
- package/storybook-static/assets/{ImageView.stories-DMtpy--X.js → ImageView.stories-BngnteYS.js} +1 -1
- package/storybook-static/assets/{ImageViewer.stories-BkoV0li4.js → ImageViewer.stories-D6EfVS78.js} +2 -2
- package/storybook-static/assets/{ImageViewerRuntime-BLgQCsSL.js → ImageViewerRuntime-B9fSNH2J.js} +1 -1
- package/storybook-static/assets/{Input-WhTMStKL.js → Input-BDLSUyRg.js} +1 -1
- package/storybook-static/assets/{Input-MPCFEMQm.js → Input-CqM32-9V.js} +1 -1
- package/storybook-static/assets/{Input.stories-B50KKSiz.js → Input.stories-C_A4MaI3.js} +1 -1
- package/storybook-static/assets/{InputDateTime-1zTFbNEF.js → InputDateTime-92L9Mqna.js} +1 -1
- package/storybook-static/assets/InputDateTime.stories-ejRQiayx.js +30 -0
- package/storybook-static/assets/{InputFile-DYHuD6B8.js → InputFile-BR48hRH2.js} +1 -1
- package/storybook-static/assets/{InputFile-B3QB0SLD.js → InputFile-D0Ea1tHj.js} +1 -1
- package/storybook-static/assets/{InputFile.stories-B-hrCtm_.js → InputFile.stories-Cvlw95nu.js} +1 -1
- package/storybook-static/assets/{InputFiles-CPPAJxgC.js → InputFiles-D2okuEQ-.js} +1 -1
- package/storybook-static/assets/{InputFiles-Dpa2BiyZ.js → InputFiles-DlkPD_x4.js} +1 -1
- package/storybook-static/assets/{InputFiles.stories-1ocz2wNw.js → InputFiles.stories-DUgyxezy.js} +1 -1
- package/storybook-static/assets/{InputFilesList-D2Ro-1Hm.js → InputFilesList-Ddy39MYy.js} +1 -1
- package/storybook-static/assets/{InputImage-BDC2lyVo.js → InputImage-DPV4mZz8.js} +1 -1
- package/storybook-static/assets/{InputImage-DPmkvGcl.js → InputImage-qtuAX13r.js} +1 -1
- package/storybook-static/assets/{InputImage.stories-D3hWZBtn.js → InputImage.stories-C-SFhxE6.js} +1 -1
- package/storybook-static/assets/{InteractiveComponents-Djz3CtkU.js → InteractiveComponents-CSwd2lr5.js} +1 -1
- package/storybook-static/assets/{InteractiveComponents.stories-CJ2VWPLD.js → InteractiveComponents.stories-DYrXXpQP.js} +1 -1
- package/storybook-static/assets/{LayoutPicker-BFShZhhi.js → LayoutPicker-CGV2Oqmj.js} +1 -1
- package/storybook-static/assets/{LayoutPicker-CMMEs83d.js → LayoutPicker-eOc5SXGR.js} +1 -1
- package/storybook-static/assets/{LayoutPicker.stories-Cdb_UnBI.js → LayoutPicker.stories-okRllC5n.js} +1 -1
- package/storybook-static/assets/{Listbox-B7nZijLJ.js → Listbox-Br9uGogi.js} +1 -1
- package/storybook-static/assets/{Listbox-DM1vuGVD.js → Listbox-Mh0MABSb.js} +1 -1
- package/storybook-static/assets/{Listbox.stories-DTs-ANe9.js → Listbox.stories-zUU9z46B.js} +1 -1
- package/storybook-static/assets/{Modal-D0dkB7lh.js → Modal-Cj-Ow00n.js} +1 -1
- package/storybook-static/assets/{Modal.stories-BOh10Fkn.js → Modal.stories-BxT21M2R.js} +1 -1
- package/storybook-static/assets/{ModalManagerProvider-CEEmviJU.js → ModalManagerProvider-DpQxs9eQ.js} +1 -1
- package/storybook-static/assets/{MultiSelect-CbrRNOEZ.js → MultiSelect-BDfeA4b0.js} +1 -1
- package/storybook-static/assets/{MultiSelect-oJhMsKuC.js → MultiSelect-Cb-HPsri.js} +1 -1
- package/storybook-static/assets/{MultiSelect.stories-mLWhd-au.js → MultiSelect.stories-D-YS-6OI.js} +1 -1
- package/storybook-static/assets/{NoData-C7Kj62Zk.js → NoData-ImBI0Hv6.js} +1 -1
- package/storybook-static/assets/{NotificationsHost-D_i7EsJA.js → NotificationsHost-BliKo_02.js} +1 -1
- package/storybook-static/assets/NotificationsHost.stories--TTbnnBF.js +29 -0
- package/storybook-static/assets/{ODataMultiSelect-B6hKhD2q.js → ODataMultiSelect-CcDSzbIX.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect.stories-BO7WaR9I.js → ODataMultiSelect.stories-BGON1kcj.js} +1 -1
- package/storybook-static/assets/{ODataSelect-BW8S-U91.js → ODataSelect-BT_lo66n.js} +1 -1
- package/storybook-static/assets/{ODataSelect.stories-rVZ8RYIu.js → ODataSelect.stories-B6TVTSPG.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect-BhvUurca.js → ODataTreeMultiSelect-BixVdzv4.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect.stories-CM8wiVsI.js → ODataTreeMultiSelect.stories-BRFGx0jL.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect-B96PJWcL.js → ODataTreeSelect-UCvRNTLZ.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect.stories-HHLJZrD8.js → ODataTreeSelect.stories-54VnROAp.js} +1 -1
- package/storybook-static/assets/{OneStepScroller-DzrN3WVZ.js → OneStepScroller-CkfGyrJX.js} +1 -1
- package/storybook-static/assets/{Option-BwWLsS-Q.js → Option-BeKIvBIk.js} +1 -1
- package/storybook-static/assets/{OptionButton-CdYqQAwC.js → OptionButton-Bqx2W-q_.js} +1 -1
- package/storybook-static/assets/{PeriodSelect-_GvgXTKk.js → PeriodSelect-BsiqeAmw.js} +1 -1
- package/storybook-static/assets/PeriodSelect-BtIqHisX.js +5 -0
- package/storybook-static/assets/{PeriodSelect.stories-CGNmEIBG.js → PeriodSelect.stories-0SkuLb9d.js} +1 -1
- package/storybook-static/assets/{PickerTriggerActions-apA_Ruie.js → PickerTriggerActions-DKa2kW7b.js} +1 -1
- package/storybook-static/assets/{Popover-CDeopGLJ.js → Popover-CQY1gjtg.js} +1 -1
- package/storybook-static/assets/{Popover-BYGM8Bjj.js → Popover-DdTT_axF.js} +1 -1
- package/storybook-static/assets/{Popover.stories-DTeZeyAB.js → Popover.stories-jZhqI65s.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-BdFjz9Ed.js → PresetRangeDateInput-DqdQb2uL.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-D3FBpZqV.js → PresetRangeDateInput-OipniP2I.js} +1 -1
- package/storybook-static/assets/PresetRangeDateInput.stories-CTOW-jxq.js +3 -0
- package/storybook-static/assets/PresetSelect-C2L55zt0.js +5 -0
- package/storybook-static/assets/{README-B5QVQmyU.js → README-1ts4pZ40.js} +1 -1
- package/storybook-static/assets/{README-1tFUbU_N.js → README-4iQkemCY.js} +1 -1
- package/storybook-static/assets/{README-BTp9nnLv.js → README-8wArWW60.js} +1 -1
- package/storybook-static/assets/{README-CuYqzgi0.js → README-B0VIX1Xl.js} +1 -1
- package/storybook-static/assets/{README-C_uOxFAl.js → README-B3Clzlvu.js} +1 -1
- package/storybook-static/assets/{README-CBhnA3Kz.js → README-B3sPVnOE.js} +1 -1
- package/storybook-static/assets/{README-n3wmMhlD.js → README-BPfV8W9d.js} +1 -1
- package/storybook-static/assets/{README-bhX-QiSo.js → README-BRe8A9eI.js} +1 -1
- package/storybook-static/assets/{README-HhDoM8Gq.js → README-BYLYAHQU.js} +1 -1
- package/storybook-static/assets/{README-C8K3rQpu.js → README-BcYYGr5T.js} +1 -1
- package/storybook-static/assets/{README-Dq0P8Ach.js → README-BdrVbLE_.js} +1 -1
- package/storybook-static/assets/{README-m0xvi4o1.js → README-BeJ7F8ya.js} +1 -1
- package/storybook-static/assets/{README-B8dyxeZz.js → README-BgTr2m0r.js} +1 -1
- package/storybook-static/assets/{README-g3WhSoX3.js → README-Bghuw4xh.js} +1 -1
- package/storybook-static/assets/{README-DldTDL_-.js → README-BjeYppkt.js} +1 -1
- package/storybook-static/assets/{README-eqGIA1ao.js → README-Bky95mjX.js} +1 -1
- package/storybook-static/assets/{README-OGP9mnSD.js → README-BqEEzTrM.js} +1 -1
- package/storybook-static/assets/{README-C2rr_CMA.js → README-C-YkymJ5.js} +1 -1
- package/storybook-static/assets/{README-DNDYDuQ4.js → README-C2qgf9R6.js} +1 -1
- package/storybook-static/assets/{README-BSrGqFaw.js → README-C6M0Rol8.js} +1 -1
- package/storybook-static/assets/{README-DLBEUtiL.js → README-CAwFoCOE.js} +1 -1
- package/storybook-static/assets/{README-CvrH-776.js → README-CAxxVPk8.js} +1 -1
- package/storybook-static/assets/{README-fLJ5n8A8.js → README-CCB-uZ8s.js} +1 -1
- package/storybook-static/assets/{README-Bv9s5Hlv.js → README-CJvZ27X8.js} +1 -1
- package/storybook-static/assets/{README-NwNz8xro.js → README-CNwm447z.js} +1 -1
- package/storybook-static/assets/{README-CxsAd0Iq.js → README-CPveHb_v.js} +1 -1
- package/storybook-static/assets/{README-Br9h1slQ.js → README-CS7WQBvL.js} +1 -1
- package/storybook-static/assets/{README-z2leBvSk.js → README-CYOE6et3.js} +1 -1
- package/storybook-static/assets/{README-DHJwCm5f.js → README-Cgp-ece7.js} +1 -1
- package/storybook-static/assets/{README-VwNH_K60.js → README-ChqcviHm.js} +1 -1
- package/storybook-static/assets/{README-Cuj7DFn9.js → README-CqEjYaCY.js} +1 -1
- package/storybook-static/assets/{README-Dju2IqV_.js → README-Csbh_2gB.js} +1 -1
- package/storybook-static/assets/{README-mXAkjKF0.js → README-Ct695emV.js} +1 -1
- package/storybook-static/assets/{README-DYKVnI5h.js → README-CwQXFeiK.js} +1 -1
- package/storybook-static/assets/{README-Se6780nc.js → README-CymBtyk-.js} +1 -1
- package/storybook-static/assets/{README-DGTIYOSH.js → README-D4rXs7IY.js} +1 -1
- package/storybook-static/assets/{README-GstpCBI6.js → README-D7p9ZEE8.js} +1 -1
- package/storybook-static/assets/{README-Bht25HeR.js → README-DDIGs5FV.js} +1 -1
- package/storybook-static/assets/{README-BtPehMeb.js → README-DGPDttIF.js} +1 -1
- package/storybook-static/assets/{README-CeuRBAf6.js → README-DK32zRi9.js} +1 -1
- package/storybook-static/assets/{README-9flk-o3B.js → README-DZaEpUZo.js} +1 -1
- package/storybook-static/assets/{README-I0-Ly9-N.js → README-DahT1clt.js} +1 -1
- package/storybook-static/assets/{README-DcJ05Rnh.js → README-Djr0kn_c.js} +1 -1
- package/storybook-static/assets/{README-DQSMXoRa.js → README-Dy57h6rC.js} +1 -1
- package/storybook-static/assets/{README-BRnZl0of.js → README-H0WY3yYQ.js} +1 -1
- package/storybook-static/assets/{README-BUkpxX-E.js → README-Nx5uZoe7.js} +1 -1
- package/storybook-static/assets/{README-_aVIdcMd.js → README-QX5i3QAl.js} +1 -1
- package/storybook-static/assets/{README-DZmDqmSd.js → README-hMP4GXT8.js} +1 -1
- package/storybook-static/assets/{README-Chc7eGGc.js → README-pvPRMGSJ.js} +1 -1
- package/storybook-static/assets/{README-BJEbnNWP.js → README-tppL5ecv.js} +1 -1
- package/storybook-static/assets/{README-Cl2jxLna.js → README-uUB7TAeH.js} +1 -1
- package/storybook-static/assets/{README-DSsqg62x.js → README-wbQq3fFQ.js} +1 -1
- package/storybook-static/assets/{RadioButton-JEqzXOJN.js → RadioButton-DUd4aKQn.js} +1 -1
- package/storybook-static/assets/{RadioButton-DqEZ3dh2.js → RadioButton-qsIX84d0.js} +1 -1
- package/storybook-static/assets/{RadioButton.stories-CzIM9dix.js → RadioButton.stories-D0zad2lq.js} +1 -1
- package/storybook-static/assets/{RadioGroup-COIsrK0r.js → RadioGroup-Cw14BgsE.js} +1 -1
- package/storybook-static/assets/{RadioGroup-D4EHkLTb.js → RadioGroup-DmG5QMQ9.js} +1 -1
- package/storybook-static/assets/{RadioGroup.stories-BdAv58pJ.js → RadioGroup.stories-z1TGty8R.js} +1 -1
- package/storybook-static/assets/{Scrollable-noVIQseX.js → Scrollable-qQFF0nas.js} +1 -1
- package/storybook-static/assets/{Select-DgPcfbEp.js → Select-BSYhoWB3.js} +1 -1
- package/storybook-static/assets/{Select-9v7A23y8.js → Select-Dm8oWRkH.js} +1 -1
- package/storybook-static/assets/{Select.stories-yIRnlqrF.js → Select.stories-B4dbfZL4.js} +1 -1
- package/storybook-static/assets/{SerializableSelect-CnPwQtgN.js → SerializableSelect-D3pqtaZ-.js} +1 -1
- package/storybook-static/assets/{SerializableSelect.stories-9QxpRX-K.js → SerializableSelect.stories-DoQUJ2qN.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-DBrfgnnn.js → SingleDateTimeInput-fC4akHMV.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-CxKz7tUP.js → SingleDateTimeInput-tDOK3NEI.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput.stories-lOLyuR7U.js → SingleDateTimeInput.stories-DJyIL1_5.js} +1 -1
- package/storybook-static/assets/{Slider-KC0hs5nY.js → Slider-2fU9KS2a.js} +1 -1
- package/storybook-static/assets/{Slider-Cn1YHOVt.js → Slider-hMTRxUyp.js} +1 -1
- package/storybook-static/assets/{Slider.stories-C-IjisOs.js → Slider.stories-mEEEJYzv.js} +1 -1
- package/storybook-static/assets/{SliderInput-Bz4D-xc3.js → SliderInput-BKpG69HS.js} +1 -1
- package/storybook-static/assets/{SliderInput-BVDFbjAz.js → SliderInput-BdUv_9U6.js} +1 -1
- package/storybook-static/assets/{SliderInput.stories-SlhRnTWN.js → SliderInput.stories-kaRIf1Q_.js} +1 -1
- package/storybook-static/assets/{Sortable-d-UOB6NI.js → Sortable-BiOdJGGW.js} +1 -1
- package/storybook-static/assets/Sortable.stories-BFnb_E1K.js +44 -0
- package/storybook-static/assets/{Splitter-t2bV_zrF.js → Splitter-P-gipnDD.js} +1 -1
- package/storybook-static/assets/{Splitter.stories-CTTTfgXu.js → Splitter.stories-CmPV58QG.js} +1 -1
- package/storybook-static/assets/{StateSelect-CR5WR-IW.js → StateSelect-Baf6fFgF.js} +1 -1
- package/storybook-static/assets/{StateSelect-CX7Xf-aX.js → StateSelect-FkOhrCr9.js} +1 -1
- package/storybook-static/assets/{StateSelect.stories-3KkvmQ80.js → StateSelect.stories-Bjm6ViKF.js} +1 -1
- package/storybook-static/assets/StringToggle.stories-DnIMcTnQ.js +3 -0
- package/storybook-static/assets/{Switch-DB4EZ32N.js → Switch-BJlzRnGw.js} +1 -1
- package/storybook-static/assets/{Switch-Deae3h9G.js → Switch-mXvV4t1H.js} +1 -1
- package/storybook-static/assets/{Switch.stories-CZxayDtX.js → Switch.stories-DJZIDERM.js} +1 -1
- package/storybook-static/assets/{Table-CrxyY7zt.js → Table-K7vWFWG8.js} +1 -1
- package/storybook-static/assets/Table.stories-xjQmGz84.js +178 -0
- package/storybook-static/assets/{Tabs-L4LxDqx4.js → Tabs-CFUVKIYw.js} +1 -1
- package/storybook-static/assets/{Tabs.stories-C4XMXjqd.js → Tabs.stories-BkFpMlaH.js} +1 -1
- package/storybook-static/assets/{TabsBox-Bnvm4jMi.js → TabsBox-sGh3mFuh.js} +1 -1
- package/storybook-static/assets/{TagInput-DW0JzYQ3.js → TagInput-MMc3kCmm.js} +1 -1
- package/storybook-static/assets/{TagInput.stories-zF7cV7Cp.js → TagInput.stories-CXbk7JvC.js} +1 -1
- package/storybook-static/assets/{Text-ByhnRSgp.js → Text-D5ufzjYF.js} +1 -1
- package/storybook-static/assets/{Textarea-BySrQxab.js → Textarea-CAw638rV.js} +1 -1
- package/storybook-static/assets/{Textarea-WtjTIiyq.js → Textarea-u0pGVMAg.js} +1 -1
- package/storybook-static/assets/{Textarea.stories-jFSqX_4h.js → Textarea.stories-UCnx8Jlm.js} +1 -1
- package/storybook-static/assets/{TimePanel-B-rvi-xm.js → TimePanel-4-p_MbKh.js} +1 -1
- package/storybook-static/assets/TimePanel.stories-CJahZ6UZ.js +10 -0
- package/storybook-static/assets/{Toggle-BfRh792z.js → Toggle-BGSrHL11.js} +1 -1
- package/storybook-static/assets/{Toggle-BkglFvBx.js → Toggle-BYqoCrdS.js} +1 -1
- package/storybook-static/assets/{Toggle.stories-BonTJbH-.js → Toggle.stories-DVbuGhF4.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-7E1j6lHT.js → TreeMultiSelect-Cwco4INR.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-CKr7kx7s.js → TreeMultiSelect-DWzF3hw_.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect.stories-DQ9N-EPu.js → TreeMultiSelect.stories-DMPaVgUx.js} +1 -1
- package/storybook-static/assets/{TreePickerBase-DwoQyBMk.js → TreePickerBase-BJjZsULU.js} +1 -1
- package/storybook-static/assets/{TreeSelect-BLc7zLho.js → TreeSelect-BHiWw9pP.js} +1 -1
- package/storybook-static/assets/{TreeSelect-BP_YoVCu.js → TreeSelect-iViu6Pfi.js} +1 -1
- package/storybook-static/assets/{TreeSelect.stories-CyurXsU_.js → TreeSelect.stories-xQyoBz63.js} +1 -1
- package/storybook-static/assets/{TreeTable-wfgjChnU.js → TreeTable-DLU_2E8g.js} +1 -1
- package/storybook-static/assets/TreeTable.stories-D9RB_dXs.js +138 -0
- package/storybook-static/assets/{blocks-DNj8uFSt.js → blocks-stFM1w3P.js} +3 -3
- package/storybook-static/assets/{check-CS2caYIB.js → check-BjiExazt.js} +1 -1
- package/storybook-static/assets/{chevron-down-DXkNPvpX.js → chevron-down-D2Tt4h6A.js} +1 -1
- package/storybook-static/assets/{chevron-left-5q-SFjrm.js → chevron-left-D0bJoN7k.js} +1 -1
- package/storybook-static/assets/{chevron-right-u6yLjLrs.js → chevron-right-Di-SG_gl.js} +1 -1
- package/storybook-static/assets/{chunk-W22LQPXL-CfJGLIdy.js → chunk-W22LQPXL-BXYzyYQP.js} +1 -1
- package/storybook-static/assets/{circle-alert-Cs1OuREv.js → circle-alert-DYz5cJBA.js} +1 -1
- package/storybook-static/assets/{circle-check-Cvppn-HO.js → circle-check-D3yaxNuZ.js} +1 -1
- package/storybook-static/assets/{components-B6cPezpK.js → components-DE5Blgve.js} +3 -3
- package/storybook-static/assets/{contextMenu-CX8Geuik.js → contextMenu-Wg3CrAi4.js} +1 -1
- package/storybook-static/assets/{download-DY_RFHLw.js → download-DsSR6AhR.js} +1 -1
- package/storybook-static/assets/{floating-ui.react-CCV40RlP.js → floating-ui.react-BwaqgYtp.js} +1 -1
- package/storybook-static/assets/{foundationApi-naPnCFLL.js → foundationApi-admd5xgy.js} +1 -1
- package/storybook-static/assets/{foundationLib-CSxKMNQk.js → foundationLib-CQpc9i83.js} +1 -1
- package/storybook-static/assets/{hooks-CK4me-dJ.js → hooks-CNazPa7h.js} +1 -1
- package/storybook-static/assets/{iframe-YrfSEgEg.js → iframe-DlXl0oyG.js} +3 -3
- package/storybook-static/assets/iframe-HeWj5Jc7.js +1 -0
- package/storybook-static/assets/{info-BEkn6tJB.js → info-gwA4taJ1.js} +1 -1
- package/storybook-static/assets/odata-D7wfZ6gu.js +1 -0
- package/storybook-static/assets/odataStoryFixtures-p30wd7rH.js +25 -0
- package/storybook-static/assets/{react-BihcRTyZ.js → react-f3n7_Ult.js} +1 -1
- package/storybook-static/assets/{refresh-cw-uKRX7BI0.js → refresh-cw-DfwG3t58.js} +1 -1
- package/storybook-static/assets/{settings-2-DTKuqR8p.js → settings-2-nuXQ2F5d.js} +1 -1
- package/storybook-static/assets/{sortable-sVqTZjeF.js → sortable-BHJzSt7m.js} +1 -1
- package/storybook-static/assets/{syntaxhighlighter-QEQV7K2Y-GFZ4bA4u.js → syntaxhighlighter-QEQV7K2Y-BycmHfs1.js} +1 -1
- package/storybook-static/assets/{trash-2-C6QVfyTq.js → trash-2-D7B_KFrV.js} +1 -1
- package/storybook-static/assets/{triangle-alert-DKkTKSAW.js → triangle-alert-BXqJ5rX_.js} +1 -1
- package/storybook-static/assets/{useODataSelectBase-BxPpoJje.js → useODataSelectBase-th7LMnVn.js} +1 -1
- package/storybook-static/assets/{useODataTreeData-Ct-ZR8pA.js → useODataTreeData-DOfK9vBg.js} +1 -1
- package/storybook-static/assets/{usePickerQuery-DJMG-4Gl.js → usePickerQuery-Cbg_YqXW.js} +1 -1
- package/storybook-static/assets/{usePickerTriggerController-DeZhyi9h.js → usePickerTriggerController-Dl_kYSNR.js} +1 -1
- package/storybook-static/assets/{x-cU42PK2s.js → x-Ex-P2uaI.js} +1 -1
- package/storybook-static/iframe.html +2 -2
- 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-sSyZ5jCR.js +0 -1
- package/storybook-static/assets/DateInput-XvSKmvqi.js +0 -1
- package/storybook-static/assets/DateInput.stories-SU41oukh.js +0 -115
- package/storybook-static/assets/DateRangePresetSelect-tz-3m9UI.js +0 -3
- package/storybook-static/assets/InputDateTime.stories-B7W4BkU6.js +0 -38
- package/storybook-static/assets/NotificationsHost.stories-5GPO8lQl.js +0 -29
- package/storybook-static/assets/PeriodSelect-CJejEx-e.js +0 -5
- package/storybook-static/assets/PresetRangeDateInput.stories-B2HCz7Tw.js +0 -3
- package/storybook-static/assets/PresetSelect-BgzVe_NB.js +0 -5
- package/storybook-static/assets/Sortable.stories-DWywtUOf.js +0 -77
- package/storybook-static/assets/StringToggle.stories-D7r-Du4d.js +0 -5
- package/storybook-static/assets/Table.stories-Cwxd5T2K.js +0 -207
- package/storybook-static/assets/TimePanel.stories-BQJruT0g.js +0 -14
- package/storybook-static/assets/TreeTable.stories-DUBR67SN.js +0 -168
- package/storybook-static/assets/iframe-uYND_WUi.js +0 -1
- package/storybook-static/assets/odata-j4p1dw3i.js +0 -1
- package/storybook-static/assets/odataStoryFixtures-B_1MKEB-.js +0 -25
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"date-input-DXCIZbyc.js","names":[],"sources":["../../src/date-input/lib/dateInputValue.ts","../../src/date-input/model/useDateInput.ts","../../src/date-input/ui/DateInput.module.scss","../../src/date-input/ui/DateInput.tsx"],"sourcesContent":["import {\n\tDEFAULT_DATE_PRESET_NAMES,\n\tformatDate,\n\tformatDateRange,\n\tgetCalendarPeriod,\n\tgetDatePreset,\n\tisDateRangeTuple,\n\tparseDateByFormat,\n\tresolveDateFormatName,\n\ttype CalendarPeriodOptions,\n\ttype DateFormatPrecision,\n\ttype DateRangeInput,\n\ttype NullableDateRange\n} from \"@ryuzaki13/react-foundation-lib/formatters\";\n\n/**\n * Пресет даты по умолчанию для текстового поля.\n */\nexport const DEFAULT_DATE_INPUT_PRESET = DEFAULT_DATE_PRESET_NAMES.date;\n\n/**\n * @deprecated Используйте `DEFAULT_DATE_INPUT_PRESET`.\n */\nexport const DEFAULT_DATE_INPUT_FORMAT = \"dd.MM.yyyy\";\n\nconst RANGE_SEPARATOR = \" - \";\n\nexport type DateInputValueOptions = {\n\t/**\n\t * Имя пресета форматирования даты.\n\t */\n\tdatePreset?: string;\n\t/**\n\t * Точность календарного значения.\n\t */\n\tdatePickerLevel?: DateFormatPrecision;\n\t/**\n\t * Размер периода, который выбирается и нормализуется полем.\n\t */\n\tselectionMode?: CalendarPeriodOptions[\"selectionMode\"];\n\t/**\n\t * Последний включённый день недели для режима выбора недели.\n\t */\n\tweekEndDay?: CalendarPeriodOptions[\"weekEndDay\"];\n\t/**\n\t * Опорная дата для пресетов без года, например `month-long`.\n\t */\n\treferenceDate?: Date;\n};\n\nexport type DateInputValueOptionsInput = string | DateInputValueOptions | undefined;\n\n/**\n * Возвращает точность форматирования поля даты.\n */\nfunction resolveDateInputPrecision(options: DateInputValueOptions): DateFormatPrecision {\n\tif (options.selectionMode === \"day\" || options.selectionMode === \"week\") {\n\t\treturn \"day\";\n\t}\n\n\tif (options.selectionMode === \"month\" || options.selectionMode === \"year\") {\n\t\treturn options.selectionMode;\n\t}\n\n\treturn options.datePickerLevel ?? \"day\";\n}\n\nfunction resolveCalendarPeriodOptions(options?: DateInputValueOptions): CalendarPeriodOptions {\n\treturn {\n\t\tselectionMode: options?.selectionMode,\n\t\tweekEndDay: options?.weekEndDay\n\t};\n}\n\n/**\n * Нормализует объектные опции и позиционный вызов с именем пресета.\n */\nfunction normalizeDateInputValueOptions(\n\toptionsOrPreset?: DateInputValueOptionsInput,\n\tdatePickerLevel?: DateFormatPrecision\n): DateInputValueOptions {\n\tif (typeof optionsOrPreset === \"string\" || optionsOrPreset === undefined) {\n\t\treturn {\n\t\t\tdatePreset: optionsOrPreset,\n\t\t\tdatePickerLevel\n\t\t};\n\t}\n\n\tif (datePickerLevel && optionsOrPreset.datePickerLevel === undefined) {\n\t\treturn {\n\t\t\t...optionsOrPreset,\n\t\t\tdatePickerLevel\n\t\t};\n\t}\n\n\treturn optionsOrPreset;\n}\n\n/**\n * Проверяет новый `datePreset` и возвращает только зарегистрированное имя пресета.\n */\nfunction resolveDateInputPresetName(datePreset?: string): string {\n\tconst resolvedPresetName = resolveDateFormatName(datePreset, DEFAULT_DATE_INPUT_PRESET);\n\treturn getDatePreset(resolvedPresetName) ? resolvedPresetName : DEFAULT_DATE_INPUT_PRESET;\n}\n\n/**\n * Приводит результат универсального парсинга к календарной дате.\n */\nfunction parseDateTimeValue(value: string, options: DateInputValueOptions): Date | null {\n\treturn (\n\t\tparseDateByFormat(value, resolveDateInputPresetName(options.datePreset), {\n\t\t\tdefaultFormat: DEFAULT_DATE_INPUT_PRESET,\n\t\t\tprecision: resolveDateInputPrecision(options),\n\t\t\treferenceDate: options.referenceDate\n\t\t})?.date ?? null\n\t);\n}\n\n/**\n * Приводит одиночную дату к началу выбранного календарного периода.\n */\nexport function normalizeSingleDateValue(date: Date | null, options?: DateInputValueOptions): Date | null {\n\treturn getCalendarPeriod(date, resolveCalendarPeriodOptions(options))?.start ?? null;\n}\n\n/**\n * Приводит диапазон дат к границам выбранных календарных периодов.\n */\nexport function normalizeRangeDateValue(range: NullableDateRange | null, options?: DateInputValueOptions): NullableDateRange | null {\n\tif (!isDateRangeTuple(range)) return null;\n\n\tconst [startDate, endDate] = range;\n\treturn [normalizeSingleDateValue(startDate, options), normalizeRangeEndDateValue(endDate, options)];\n}\n\n/**\n * Приводит конечную дату диапазона к концу выбранного календарного периода.\n */\nexport function normalizeRangeEndDateValue(date: Date | null, options?: DateInputValueOptions): Date | null {\n\treturn getCalendarPeriod(date, resolveCalendarPeriodOptions(options))?.end ?? null;\n}\n\nfunction getDateTime(date: Date | null): number | null {\n\treturn date?.getTime() ?? null;\n}\n\n/**\n * Сравнивает одиночные даты после нормализации к точности поля ввода.\n */\nexport function areSingleDateValuesEqual(left: Date | null, right: Date | null, options?: DateInputValueOptions): boolean {\n\treturn getDateTime(normalizeSingleDateValue(left, options)) === getDateTime(normalizeSingleDateValue(right, options));\n}\n\n/**\n * Сравнивает диапазоны дат после нормализации к границам выбранных периодов.\n */\nexport function areRangeDateValuesEqual(\n\tleft: NullableDateRange | null,\n\tright: NullableDateRange | null,\n\toptions?: DateInputValueOptions\n): boolean {\n\tconst normalizedLeft = normalizeRangeDateValue(left, options);\n\tconst normalizedRight = normalizeRangeDateValue(right, options);\n\n\treturn (\n\t\tgetDateTime(normalizedLeft?.[0] ?? null) === getDateTime(normalizedRight?.[0] ?? null) &&\n\t\tgetDateTime(normalizedLeft?.[1] ?? null) === getDateTime(normalizedRight?.[1] ?? null)\n\t);\n}\n\n/**\n * Форматирует одиночную дату для текстового поля.\n */\nexport function formatSingleDateValue(\n\tdate: Date | null,\n\toptionsOrPreset?: DateInputValueOptionsInput,\n\tdatePickerLevel?: DateFormatPrecision\n): string {\n\tif (!date) return \"\";\n\n\tconst options = normalizeDateInputValueOptions(optionsOrPreset, datePickerLevel);\n\tconst period = getCalendarPeriod(date, resolveCalendarPeriodOptions(options));\n\n\t// Single-поле хранит начало недели, но показывает обе включительные границы выбранного периода.\n\tif (options.selectionMode === \"week\" && period) {\n\t\treturn formatDateRange(period.start, period.end, resolveDateInputPresetName(options.datePreset), {\n\t\t\tprecision: resolveDateInputPrecision(options)\n\t\t});\n\t}\n\n\treturn formatDate(date, resolveDateInputPresetName(options.datePreset), {\n\t\tprecision: resolveDateInputPrecision(options)\n\t});\n}\n\n/**\n * Форматирует диапазон дат для текстового поля.\n */\nexport function formatRangeDateValue(\n\trange: NullableDateRange | null,\n\toptionsOrPreset?: DateInputValueOptionsInput,\n\tdatePickerLevel?: DateFormatPrecision\n): string {\n\tif (!isDateRangeTuple(range)) return \"\";\n\n\tconst options = normalizeDateInputValueOptions(optionsOrPreset, datePickerLevel);\n\tconst [startDate, endDate] = range;\n\tif (startDate && endDate) {\n\t\treturn formatDateRange(startDate, endDate, resolveDateInputPresetName(options.datePreset), {\n\t\t\tprecision: resolveDateInputPrecision(options)\n\t\t});\n\t}\n\n\tif (startDate) {\n\t\treturn `${formatDate(startDate, resolveDateInputPresetName(options.datePreset), {\n\t\t\tprecision: resolveDateInputPrecision(options)\n\t\t})}${RANGE_SEPARATOR}`;\n\t}\n\n\treturn \"\";\n}\n\n/**\n * Унифицирует форматирование значения поля даты.\n */\nexport function formatDateInputValue(\n\tvalue: DateRangeInput,\n\toptionsOrPreset?: DateInputValueOptionsInput,\n\tdatePickerLevel?: DateFormatPrecision\n): string {\n\tif (isDateRangeTuple(value)) {\n\t\treturn formatRangeDateValue(value, optionsOrPreset, datePickerLevel);\n\t}\n\n\treturn formatSingleDateValue(value, optionsOrPreset, datePickerLevel);\n}\n\n/**\n * Парсит строку одиночной даты по заданному пресету.\n */\nexport function parseSingleDateValue(\n\tvalue: string,\n\toptionsOrPreset?: DateInputValueOptionsInput,\n\tdatePickerLevel?: DateFormatPrecision\n): Date | null {\n\tconst options = normalizeDateInputValueOptions(optionsOrPreset, datePickerLevel);\n\t// Для отображаемого диапазона single-week источником значения остаётся его первая граница.\n\tconst singleValue = options.selectionMode === \"week\" ? (value.split(RANGE_SEPARATOR)[0] ?? \"\") : value;\n\n\treturn normalizeSingleDateValue(parseDateTimeValue(singleValue, options), options);\n}\n\n/**\n * Парсит строку диапазона дат по заданному пресету.\n */\nexport function parseRangeDateValue(\n\tvalue: string,\n\toptionsOrPreset?: DateInputValueOptionsInput,\n\tdatePickerLevel?: DateFormatPrecision\n): NullableDateRange {\n\tconst options = normalizeDateInputValueOptions(optionsOrPreset, datePickerLevel);\n\tconst [startPart = \"\", endPart = \"\"] = value.split(RANGE_SEPARATOR);\n\n\treturn [parseSingleDateValue(startPart, options), parseRangeEndDateValue(endPart, options)];\n}\n\n/**\n * Парсит конечную дату диапазона и нормализует её к концу суток.\n */\nexport function parseRangeEndDateValue(\n\tvalue: string,\n\toptionsOrPreset?: DateInputValueOptionsInput,\n\tdatePickerLevel?: DateFormatPrecision\n): Date | null {\n\tconst options = normalizeDateInputValueOptions(optionsOrPreset, datePickerLevel);\n\treturn normalizeRangeEndDateValue(parseDateTimeValue(value, options), options);\n}\n","import { useMemo, useState } from \"react\";\n\nimport { isDateRangeTuple, type NullableDateRange } from \"@ryuzaki13/react-foundation-lib/formatters\";\n\nimport {\n\tDateInputValueOptions,\n\tformatDateInputValue,\n\tnormalizeRangeDateValue,\n\tnormalizeRangeEndDateValue,\n\tnormalizeSingleDateValue,\n\tparseRangeDateValue,\n\tparseSingleDateValue,\n\ttype DateInputOptions\n} from \"../lib\";\n\nfunction resolveReferenceDate(value: Date | NullableDateRange | null): Date | undefined {\n\tif (isDateRangeTuple(value)) {\n\t\treturn value[0] ?? value[1] ?? undefined;\n\t}\n\n\treturn value ?? undefined;\n}\n\n/**\n * Хук управляет текстовым представлением и выбранным значением поля даты.\n */\nexport const useDateInput = (options: DateInputOptions) => {\n\tconst externalSelectedDate = useMemo(() => {\n\t\tconst selectionOptions: DateInputValueOptions = {\n\t\t\tselectionMode: options.selectionMode,\n\t\t\tweekEndDay: options.weekEndDay\n\t\t};\n\n\t\tif (options.selectsRange) {\n\t\t\treturn normalizeRangeDateValue(options.value as NullableDateRange | null, selectionOptions);\n\t\t}\n\n\t\treturn normalizeSingleDateValue(options.value as Date | null, selectionOptions);\n\t}, [options.selectsRange, options.selectionMode, options.value, options.weekEndDay]);\n\tconst formatOptions = useMemo<DateInputValueOptions>(\n\t\t() => ({\n\t\t\tdatePreset: options.datePreset,\n\t\t\tdatePickerLevel: options.datePickerLevel,\n\t\t\tselectionMode: options.selectionMode,\n\t\t\tweekEndDay: options.weekEndDay\n\t\t}),\n\t\t[options.datePickerLevel, options.datePreset, options.selectionMode, options.weekEndDay]\n\t);\n\tconst externalInputValue = formatDateInputValue(externalSelectedDate, formatOptions);\n\tconst externalStateSignature = JSON.stringify([\n\t\toptions.selectsRange,\n\t\toptions.datePreset ?? null,\n\t\toptions.datePickerLevel ?? null,\n\t\toptions.selectionMode ?? null,\n\t\toptions.weekEndDay ?? null,\n\t\tisDateRangeTuple(externalSelectedDate)\n\t\t\t? [externalSelectedDate[0]?.getTime() ?? null, externalSelectedDate[1]?.getTime() ?? null]\n\t\t\t: (externalSelectedDate?.getTime() ?? null)\n\t]);\n\tconst [draftState, setDraftState] = useState(() => ({\n\t\tsourceSignature: externalStateSignature,\n\t\tselectedDate: externalSelectedDate,\n\t\tinputValue: externalInputValue\n\t}));\n\tconst hasCurrentDraft = draftState.sourceSignature === externalStateSignature;\n\tconst selectedDate = hasCurrentDraft ? draftState.selectedDate : externalSelectedDate;\n\tconst inputValue = hasCurrentDraft ? draftState.inputValue : externalInputValue;\n\n\t/**\n\t * Сохраняет пользовательский текст только относительно текущего controlled-снимка.\n\t * При внешней смене value или формата отображение сразу выводится из новых props.\n\t */\n\tconst setInputValue = (nextInputValue: string) => {\n\t\tsetDraftState((currentState) => {\n\t\t\tconst currentSelectedDate =\n\t\t\t\tcurrentState.sourceSignature === externalStateSignature ? currentState.selectedDate : externalSelectedDate;\n\n\t\t\treturn {\n\t\t\t\tsourceSignature: externalStateSignature,\n\t\t\t\tselectedDate: currentSelectedDate,\n\t\t\t\tinputValue: nextInputValue\n\t\t\t};\n\t\t});\n\t};\n\n\t/**\n\t * Обновляет локальный незавершённый выбор, не зеркаля controlled value через effect.\n\t */\n\tconst setSelectedDate = (nextSelectedDate: Date | NullableDateRange | null) => {\n\t\tsetDraftState((currentState) => {\n\t\t\tconst currentInputValue =\n\t\t\t\tcurrentState.sourceSignature === externalStateSignature ? currentState.inputValue : externalInputValue;\n\n\t\t\treturn {\n\t\t\t\tsourceSignature: externalStateSignature,\n\t\t\t\tselectedDate: nextSelectedDate,\n\t\t\t\tinputValue: currentInputValue\n\t\t\t};\n\t\t});\n\t};\n\n\t/**\n\t * Форматирует значение поля даты согласно текущему пресету.\n\t */\n\tconst formatValue = (value: Date | NullableDateRange | null): string => formatDateInputValue(value, formatOptions);\n\n\t/**\n\t * Парсит строковое значение поля в дату или диапазон дат.\n\t */\n\tconst parseDate = (dateString: string): Date | NullableDateRange | null => {\n\t\tconst parseOptions: DateInputValueOptions = {\n\t\t\t...formatOptions,\n\t\t\treferenceDate: resolveReferenceDate(selectedDate)\n\t\t};\n\n\t\tif (options.selectsRange) {\n\t\t\treturn parseRangeDateValue(dateString, parseOptions);\n\t\t}\n\n\t\treturn parseSingleDateValue(dateString, parseOptions);\n\t};\n\n\t/**\n\t * Обрабатывает выбор даты из календаря.\n\t */\n\tconst handleSelect = (date: Date | NullableDateRange) => {\n\t\tconst [selectedStartDate, selectedEndDate] = (Array.isArray(date) ? date : [date, null]) as NullableDateRange;\n\n\t\tif (options.selectsRange) {\n\t\t\tconst normalizedStartDate = normalizeSingleDateValue(selectedStartDate, formatOptions);\n\t\t\tconst normalizedEndDate = normalizeRangeEndDateValue(selectedEndDate, formatOptions);\n\n\t\t\tif (normalizedStartDate && normalizedEndDate) {\n\t\t\t\tif (normalizedEndDate < normalizedStartDate) {\n\t\t\t\t\tconst swappedRange: NullableDateRange = [\n\t\t\t\t\t\tnormalizeSingleDateValue(selectedEndDate, formatOptions),\n\t\t\t\t\t\tnormalizeRangeEndDateValue(selectedStartDate, formatOptions)\n\t\t\t\t\t];\n\t\t\t\t\tsetDraftState({\n\t\t\t\t\t\tsourceSignature: externalStateSignature,\n\t\t\t\t\t\tselectedDate: swappedRange,\n\t\t\t\t\t\tinputValue: formatValue(swappedRange)\n\t\t\t\t\t});\n\t\t\t\t\toptions.onChange(swappedRange);\n\t\t\t\t} else {\n\t\t\t\t\tconst nextRange: NullableDateRange = [normalizedStartDate, normalizedEndDate];\n\t\t\t\t\tsetDraftState({\n\t\t\t\t\t\tsourceSignature: externalStateSignature,\n\t\t\t\t\t\tselectedDate: nextRange,\n\t\t\t\t\t\tinputValue: formatValue(nextRange)\n\t\t\t\t\t});\n\t\t\t\t\toptions.onChange(nextRange);\n\t\t\t\t}\n\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tconst nextRange: NullableDateRange = [normalizedStartDate, null];\n\t\t\tsetDraftState({\n\t\t\t\tsourceSignature: externalStateSignature,\n\t\t\t\tselectedDate: nextRange,\n\t\t\t\tinputValue: formatValue(nextRange)\n\t\t\t});\n\t\t\treturn false;\n\t\t}\n\n\t\tconst normalizedDate = normalizeSingleDateValue(selectedStartDate, formatOptions);\n\t\tsetDraftState({\n\t\t\tsourceSignature: externalStateSignature,\n\t\t\tselectedDate: normalizedDate,\n\t\t\tinputValue: formatValue(normalizedDate)\n\t\t});\n\t\toptions.onChange(normalizedDate);\n\n\t\treturn true;\n\t};\n\n\treturn {\n\t\tinputValue,\n\t\tsetInputValue,\n\t\tselectedDate,\n\t\tsetSelectedDate,\n\t\thandleSelect,\n\t\tformatDate: formatValue,\n\t\tparseDate\n\t};\n};\n",".selectionModeControl {\n\tmargin-top: var(--space-sm);\n\tpadding-top: var(--space-sm);\n\tborder-top: var(--border);\n}\n","import { JSX, useCallback, useEffect, useRef, useState } from \"react\";\n\nimport { isDateRangeTuple, type NullableDateRange } from \"@ryuzaki13/react-foundation-lib/formatters\";\nimport { CalendarDaysIcon } from \"lucide-react\";\n\nimport { InputText } from \"../../input\";\nimport { Popover } from \"../../popover\";\nimport { RadioGroup } from \"../../radio-group\";\nimport { UiBaseProps } from \"../../types\";\nimport uiStyles from \"../../ui.module.scss\";\nimport {\n\tareRangeDateValuesEqual,\n\tareSingleDateValuesEqual,\n\tDATE_INPUT_SELECTION_MODES,\n\tisDatePickerLevelAvailable,\n\tresolveAvailableDatePickerLevel,\n\ttype DateInputSelectionMode,\n\ttype DateInputWeekEndDay,\n\ttype DatePickerLevel\n} from \"../lib\";\nimport { useDateInput } from \"../model\";\n\nimport { CalendarView } from \"./CalendarView\";\nimport styles from \"./DateInput.module.scss\";\n\ninterface BaseDateInputProps {\n\terror?: string;\n\tonClearError?: () => void;\n\n\tminDate?: Date;\n\tmaxDate?: Date;\n\n\tdatePreset?: string;\n\n\t/**\n\t * Минимальный уровень календарной навигации. Размер выбранного периода задаёт `selectionMode`.\n\t */\n\tdatePickerLevel?: DatePickerLevel;\n\t/**\n\t * Размер периода, который выбирает поле: день, неделя, месяц или год.\n\t */\n\tselectionMode?: DateInputSelectionMode;\n\t/**\n\t * Последний включённый день недели для `selectionMode=\"week\"`.\n\t */\n\tweekEndDay?: DateInputWeekEndDay;\n\t/**\n\t * Показывает переключатель `selectionMode` под календарём.\n\t */\n\tallowSelectionModeChange?: boolean;\n\t/**\n\t * Ограничивает набор режимов в runtime-переключателе.\n\t */\n\tselectionModeOptions?: readonly DateInputSelectionMode[];\n\t/**\n\t * Сообщает наружу о runtime-смене режима выбора.\n\t */\n\tonSelectionModeChange?: (selectionMode: DateInputSelectionMode) => void;\n}\n\nexport interface DateSingleInputProps extends BaseDateInputProps, UiBaseProps<Date | null> {\n\tselectsRange?: false;\n}\nexport interface DateRangeInputProps extends BaseDateInputProps, UiBaseProps<NullableDateRange | null> {\n\tselectsRange: true;\n}\n\ntype DateInputProps = DateSingleInputProps | DateRangeInputProps;\n\ninterface CalendarTypeState {\n\treadonly view: DatePickerLevel;\n\treadonly selectionMode: DateInputSelectionMode;\n\treadonly minDatePickerLevel: DatePickerLevel;\n}\n\nconst selectionModeLabels: Record<DateInputSelectionMode, string> = {\n\tday: \"День\",\n\tweek: \"Неделя\",\n\tmonth: \"Месяц\",\n\tyear: \"Год\"\n};\n\nfunction resolveSelectionModeOptions(\n\tselectionModeOptions: readonly DateInputSelectionMode[] | undefined,\n\tselectionMode: DateInputSelectionMode\n): readonly DateInputSelectionMode[] {\n\tconst enabledModes = new Set(selectionModeOptions?.length ? selectionModeOptions : DATE_INPUT_SELECTION_MODES);\n\tenabledModes.add(selectionMode);\n\n\treturn DATE_INPUT_SELECTION_MODES.filter((mode) => enabledModes.has(mode));\n}\n\nfunction DateInput(props: DateSingleInputProps): JSX.Element;\nfunction DateInput(props: DateRangeInputProps): JSX.Element;\nfunction DateInput({\n\tplaceholder,\n\tdisabled,\n\terror,\n\tonClearError,\n\tminDate,\n\tmaxDate,\n\tdatePickerLevel,\n\tselectionMode: controlledSelectionMode,\n\tweekEndDay = \"sunday\",\n\tallowSelectionModeChange,\n\tselectionModeOptions,\n\tonSelectionModeChange,\n\t...props\n}: DateInputProps) {\n\tconst [open, setOpen] = useState(false);\n\tconst [uncontrolledSelectionMode, setUncontrolledSelectionMode] = useState<DateInputSelectionMode>(controlledSelectionMode ?? \"day\");\n\tconst selectionMode = controlledSelectionMode ?? uncontrolledSelectionMode;\n\tconst minDatePickerLevel = datePickerLevel ?? \"day\";\n\tconst preferredCalendarType = resolveAvailableDatePickerLevel(selectionMode, minDatePickerLevel);\n\tconst [calendarTypeState, setCalendarTypeState] = useState<CalendarTypeState>(() => ({\n\t\tview: preferredCalendarType,\n\t\tselectionMode,\n\t\tminDatePickerLevel\n\t}));\n\tconst calendarType =\n\t\tcalendarTypeState.selectionMode === selectionMode &&\n\t\tcalendarTypeState.minDatePickerLevel === minDatePickerLevel &&\n\t\tisDatePickerLevelAvailable(calendarTypeState.view, minDatePickerLevel)\n\t\t\t? calendarTypeState.view\n\t\t\t: preferredCalendarType;\n\n\tconst initialDateRef = useRef(props.value);\n\tconst dateInputValueOptions = {\n\t\tselectionMode,\n\t\tweekEndDay\n\t};\n\n\tconst { inputValue, setInputValue, selectedDate, setSelectedDate, handleSelect, formatDate, parseDate } = useDateInput({\n\t\t...props,\n\t\tdatePickerLevel: minDatePickerLevel,\n\t\tselectionMode,\n\t\tweekEndDay\n\t});\n\tconst rangeOnChange = props.selectsRange ? props.onChange : undefined;\n\n\tconst updateCalendarType = useCallback(\n\t\t(calendarType: DatePickerLevel) => {\n\t\t\tif (isDatePickerLevelAvailable(calendarType, minDatePickerLevel)) {\n\t\t\t\tsetCalendarTypeState({\n\t\t\t\t\tview: calendarType,\n\t\t\t\t\tselectionMode,\n\t\t\t\t\tminDatePickerLevel\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\t[minDatePickerLevel, selectionMode]\n\t);\n\n\tuseEffect(() => {\n\t\tinitialDateRef.current = props.value;\n\t}, [props.value]);\n\n\tconst handleInputBlur = () => {\n\t\tif (inputValue) {\n\t\t\tconst parsedDate = parseDate(inputValue);\n\t\t\tif (parsedDate) {\n\t\t\t\tsetInputValue(formatDate(parsedDate));\n\n\t\t\t\tif (props.selectsRange && isDateRangeTuple(parsedDate)) {\n\t\t\t\t\tconst selectedRange = isDateRangeTuple(selectedDate) ? selectedDate : null;\n\n\t\t\t\t\tif (areRangeDateValuesEqual(parsedDate, selectedRange, dateInputValueOptions)) return;\n\n\t\t\t\t\tsetSelectedDate(parsedDate);\n\t\t\t\t\tprops.onChange(parsedDate);\n\t\t\t\t} else if (!props.selectsRange && parsedDate instanceof Date) {\n\t\t\t\t\tconst selectedSingleDate = selectedDate instanceof Date ? selectedDate : null;\n\n\t\t\t\t\tif (areSingleDateValuesEqual(parsedDate, selectedSingleDate, dateInputValueOptions)) return;\n\n\t\t\t\t\tsetSelectedDate(parsedDate);\n\t\t\t\t\tprops.onChange(parsedDate);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\tconst handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n\t\tif (event.key === \"Enter\") {\n\t\t\tevent.preventDefault();\n\t\t\thandleInputBlur();\n\t\t}\n\t};\n\n\tconst handleCalendarDateSelect = useCallback(\n\t\t(value: Date | NullableDateRange) => {\n\t\t\tif (handleSelect(value)) {\n\t\t\t\tsetOpen(false);\n\t\t\t}\n\t\t},\n\t\t[handleSelect]\n\t);\n\n\tconst handleSelectionModeChange = useCallback(\n\t\t(nextSelectionMode: DateInputSelectionMode) => {\n\t\t\tif (controlledSelectionMode === undefined) {\n\t\t\t\tsetUncontrolledSelectionMode(nextSelectionMode);\n\t\t\t}\n\n\t\t\tonSelectionModeChange?.(nextSelectionMode);\n\t\t\tsetCalendarTypeState({\n\t\t\t\tview: resolveAvailableDatePickerLevel(nextSelectionMode, minDatePickerLevel),\n\t\t\t\tselectionMode: nextSelectionMode,\n\t\t\t\tminDatePickerLevel\n\t\t\t});\n\t\t},\n\t\t[controlledSelectionMode, minDatePickerLevel, onSelectionModeChange]\n\t);\n\n\tconst handleCancel = useCallback(() => {\n\t\t// Восстановить исходное состояние при отмене\n\t\tif (rangeOnChange) {\n\t\t\tconst [, selectedEndDate] = isDateRangeTuple(selectedDate) ? selectedDate : [null, null];\n\n\t\t\tif (!selectedEndDate) {\n\t\t\t\t// Восстановить исходное состояние диапазона\n\t\t\t\tconst initialValue = initialDateRef.current;\n\t\t\t\tconst initialRange = Array.isArray(initialValue) ? initialValue : null;\n\t\t\t\tconst initialStart = initialRange?.[0] ?? null;\n\t\t\t\tconst initialEnd = initialRange?.[1] ?? null;\n\n\t\t\t\tif (initialStart && initialEnd) {\n\t\t\t\t\tconst initialSelectedDate: NullableDateRange = [initialStart, initialEnd];\n\t\t\t\t\tsetSelectedDate(initialSelectedDate);\n\t\t\t\t\tsetInputValue(formatDate(initialSelectedDate));\n\n\t\t\t\t\trangeOnChange(initialSelectedDate);\n\t\t\t\t} else {\n\t\t\t\t\t// Если начального диапазона нет, очистить всё\n\t\t\t\t\tsetSelectedDate([null, null]);\n\t\t\t\t\tsetInputValue(\"\");\n\n\t\t\t\t\trangeOnChange([null, null]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}, [rangeOnChange, selectedDate, setSelectedDate, setInputValue, formatDate]);\n\n\tconst availableSelectionModes = resolveSelectionModeOptions(selectionModeOptions, selectionMode);\n\tconst showSelectionModeControl = allowSelectionModeChange && availableSelectionModes.length > 1;\n\n\treturn (\n\t\t<Popover\n\t\t\topen={open}\n\t\t\tonOpenChange={(value) => {\n\t\t\t\tsetOpen(value);\n\t\t\t\tif (!value) {\n\t\t\t\t\thandleCancel();\n\t\t\t\t}\n\t\t\t}}>\n\t\t\t<InputText\n\t\t\t\tlabel={props.label}\n\t\t\t\tdescription={props.description}\n\t\t\t\tsize={props.size}\n\t\t\t\tvalue={inputValue}\n\t\t\t\tonChange={setInputValue}\n\t\t\t\tonBlur={handleInputBlur}\n\t\t\t\tonKeyUp={handleKeyDown}\n\t\t\t\tplaceholder={placeholder}\n\t\t\t\tdisabled={disabled}\n\t\t\t\terror={error}\n\t\t\t\tonClearError={onClearError}\n\t\t\t\tendAdornmentWidth=\"var(--control-height)\"\n\t\t\t\tendAdornment={\n\t\t\t\t\t<Popover.Trigger>\n\t\t\t\t\t\t<div className={uiStyles.uiToggleButtonContainer}>\n\t\t\t\t\t\t\t<button type=\"button\" disabled={disabled} aria-label=\"Открыть календарь\" className={uiStyles.uiToggleButton}>\n\t\t\t\t\t\t\t\t<CalendarDaysIcon />\n\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</Popover.Trigger>\n\t\t\t\t}\n\t\t\t/>\n\n\t\t\t<Popover.Content background=\"primary\">\n\t\t\t\t<CalendarView\n\t\t\t\t\tview={calendarType}\n\t\t\t\t\tdatePickerLevel={minDatePickerLevel}\n\t\t\t\t\tselectionMode={selectionMode}\n\t\t\t\t\tweekEndDay={weekEndDay}\n\t\t\t\t\tonViewChange={updateCalendarType}\n\t\t\t\t\tvalue={selectedDate ?? null}\n\t\t\t\t\tonChange={handleCalendarDateSelect}\n\t\t\t\t\tminDate={minDate}\n\t\t\t\t\tmaxDate={maxDate}\n\t\t\t\t\tselectsRange={!!props.selectsRange}\n\t\t\t\t/>\n\t\t\t\t{showSelectionModeControl && (\n\t\t\t\t\t<div className={styles.selectionModeControl}>\n\t\t\t\t\t\t<RadioGroup<DateInputSelectionMode>\n\t\t\t\t\t\t\tvalue={selectionMode}\n\t\t\t\t\t\t\tonChange={handleSelectionModeChange}\n\t\t\t\t\t\t\tnoWrap\n\t\t\t\t\t\t\taria-label=\"Режим выбора даты\">\n\t\t\t\t\t\t\t{availableSelectionModes.map((mode) => (\n\t\t\t\t\t\t\t\t<RadioGroup.Option key={mode} value={mode} label={selectionModeLabels[mode]} />\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</RadioGroup>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</Popover.Content>\n\t\t</Popover>\n\t);\n}\n\nexport function SingleDateInput(props: Omit<DateSingleInputProps, \"selectsRange\">) {\n\treturn <DateInput {...props} />;\n}\n\nexport function RangeDateInput(props: Omit<DateRangeInputProps, \"selectsRange\">) {\n\treturn <DateInput {...props} selectsRange={true} />;\n}\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{n,t as r}from"./chevron-left-5q-SFjrm.js";import{n as i,t as a}from"./chevron-right-u6yLjLrs.js";import{i as o,n as s,r as c}from"./iframe-YrfSEgEg.js";import{a as l,i as u}from"./utils-tg3ibbzi.js";import{C as d,b as f,c as p,h as m,m as h,n as g,o as _,w as v,x as y,y as b}from"./formatters-D33Uh3si-Df97arf9.js";import{n as x,t as S}from"./Button-1UZNz2k4.js";var C,w;function T(){return(T=e((()=>{o(),C=[[`path`,{d:`M8 2v3`,key:`1ioesn`}],[`path`,{d:`M16 2v3`,key:`otl347`}],[`rect`,{x:`3`,y:`3`,width:`18`,height:`18`,rx:`2`,key:`h1oib`}],[`path`,{d:`M3 9h18`,key:`1pudct`}],[`path`,{d:`M8 13h.01`,key:`1sbv64`}],[`path`,{d:`M12 13h.01`,key:`y0uutt`}],[`path`,{d:`M16 13h.01`,key:`wip0gl`}],[`path`,{d:`M8 17h.01`,key:`p3bg7i`}],[`path`,{d:`M12 17h.01`,key:`p32p05`}],[`path`,{d:`M16 17h.01`,key:`ql8jdd`}]],w=c(`calendar-days`,C)})))()}function ee(e){return e===`month`?`month`:e===`year`?`year`:`day`}function E(e,t){return k.indexOf(e)>=k.indexOf(t)}function te(e,t){let n=ee(e);return E(n,t)?n:t}function D(e,t){return!e||!t?!1:e.start.getTime()===t.start.getTime()&&e.end.getTime()===t.end.getTime()}function ne(e,t,n){if(!e||!t||!n)return!1;let r=Math.min(t.start.getTime(),n.start.getTime()),i=Math.max(t.end.getTime(),n.end.getTime());return e.start.getTime()>=r&&e.end.getTime()<=i}function O({date:e,value:t,hoveredDate:n,selectsRange:r,selectionOptions:i}){let a=g(e,i),o=!r&&t instanceof Date?t:null,s=g(o,i);if(!r||!Array.isArray(t))return{selected:_(e,s),range:!1,rangeStart:!1,rangeEnd:!1};let[c,l]=t,u=g(c,i),d=g(l??(c?n:null),i),f=D(a,u),p=D(a,d);return{selected:!1,range:ne(a,u,d)&&!f&&!p,rangeStart:f,rangeEnd:p}}var k,re,ie;function A(){return(A=e((()=>{b(),k=[`day`,`month`,`year`],re=[`day`,`week`,`month`,`year`],ie=[`friday`,`saturday`,`sunday`]})))()}var ae,oe,se,ce,le,ue,de,fe,j,M,N,P,F,I,L,R,z;function B(){return(B=e((()=>{ae=`Dshr-j`,oe=`esetVt`,se=`i-LJYe`,ce=`XZsnCH`,le=`_2KDjTS`,ue=`o-freG`,de=`GcV08-`,fe=`UCrE-I`,j=`L2V3uq`,M=`Te9oCq`,N=`cUF2pQ`,P=`d1L5uw`,F=`LU0M9Y`,I=`MR3y5p`,L=`VDqDpm`,R=`CLR-7m`,z={dayView:ae,weekdays:oe,weekday:se,daysGrid:ce,week:le,day:ue,disabled:de,outsideMonth:fe,periodSelection:j,periodPreview:M,selected:N,range:P,rangeStart:F,rangeEnd:I,weekend:L,now:R}})))()}var V,H,pe,me,U;function he(){return(he=e((()=>{V=t(),b(),u(),B(),H=s(),pe=[`Пн`,`Вт`,`Ср`,`Чт`,`Пт`,`Сб`,`Вс`],me=new Intl.DateTimeFormat(`ru-RU`,{weekday:`long`,year:`numeric`,month:`long`,day:`numeric`}),U=({now:e,currentDate:t,value:n,onChange:r,minDate:i,maxDate:a,selectsRange:o,selectionMode:s=`day`,weekEndDay:c=`sunday`})=>{let[u,f]=(0,V.useState)(null),m={selectionMode:s,weekEndDay:c},v=(()=>{let e=t.getFullYear(),n=t.getMonth(),r=h(e,n,1),i=h(e,n+1,0),a=r.getDay()===0?6:r.getDay()-1,o=42-(a+i.getDate()),s=[],c=h(e,n,0).getDate();for(let t=a;t>0;--t)s.push(h(e,n-1,c-t+1));for(let t=1;t<=i.getDate();t+=1)s.push(h(e,n,t));for(let t=1;t<=o;t+=1)s.push(h(e,n+1,t));let l=[];for(let e=0;e<s.length;e+=7)l.push(s.slice(e,e+7));return l})(),b=o&&Array.isArray(n)?n[0]:null,x=o&&Array.isArray(n)?n[1]:null,S=g(o?null:n,m),C=g(u,m),w=x??(b?C?.end??null:null),T=s===`week`,ee=T&&(!o||!b),E=e=>{if(!o||!b||!w)return!1;let t=d(e).getTime(),n=b.getTime(),r=w.getTime();return t>=Math.min(n,r)&&t<=Math.max(n,r)},te=e=>!y(g(e,m),{minDate:i,maxDate:a}),D=(e,t)=>{t||(T&&f(e),!(!o||!b||x)&&(T||f(e)))};return(0,H.jsxs)(`div`,{className:z.dayView,children:[(0,H.jsx)(`div`,{className:z.weekdays,children:pe.map(e=>(0,H.jsx)(`div`,{className:z.weekday,children:e},e))}),(0,H.jsx)(`div`,{className:z.daysGrid,onMouseLeave:()=>{(T||!x)&&f(null)},children:v.map((n,i)=>(0,H.jsx)(`div`,{className:z.week,children:n.map((n,a)=>{let o=n.getMonth()===t.getMonth(),c=_(n,S),u=ee&&_(n,C),d=E(n),f=p(n,b),m=p(n,w),h=p(n,e),g=te(n);return(0,H.jsx)(`button`,{type:`button`,onClick:()=>!g&&r(n),onMouseEnter:()=>D(n,g),disabled:g,"data-ui":`calendar-day-button`,"data-action":`select-calendar-day`,className:l(z.day,{[z.outsideMonth]:!o,[z.periodSelection]:s===`week`,[z.periodPreview]:u&&!c,[z.selected]:c,[z.range]:d&&!f&&!m,[z.rangeStart]:f,[z.rangeEnd]:m,[z.disabled]:g,[z.weekend]:a>4,[z.now]:h}),"aria-label":me.format(n),"aria-pressed":c||d||f||m,children:n.getDate()},`${i}-${a}`)})},i))})]})},U.__docgenInfo={description:`Отображает сетку дней месяца в календарной семантике без timezone-сдвига.`,methods:[],displayName:`CalendarDayView`,props:{selectionMode:{defaultValue:{value:`"day"`,computed:!1},required:!1},weekEndDay:{defaultValue:{value:`"sunday"`,computed:!1},required:!1}}}})))()}var ge,_e,ve,ye,be,xe,W,Se,G;function Ce(){return(Ce=e((()=>{ge=`p5pRGW`,_e=`pUHpxD`,ve=`lwWv-z`,ye=`_8gn-3z`,be=`b57d-c`,xe=`nGc5FO`,W=`JLqjri`,Se=`UQMYwg`,G={monthView:ge,monthsGrid:_e,month:ve,disabled:ye,range:be,selected:xe,rangeStart:W,rangeEnd:Se}})))()}var we,K,Te,Ee,q;function De(){return(De=e((()=>{we=t(),b(),u(),A(),Ce(),K=s(),Te=new Intl.DateTimeFormat(`ru-RU`,{month:`short`}),Ee=new Intl.DateTimeFormat(`ru-RU`,{month:`long`,year:`numeric`}),q=({currentDate:e,value:t,onChange:n,minDate:r,maxDate:i,selectsRange:a,selectsPeriod:o,selectionMode:s=`day`,weekEndDay:c=`sunday`})=>{let[u,d]=(0,we.useState)(null),f=Array.from({length:12},(e,t)=>t),p=e.getFullYear(),m={selectionMode:s,weekEndDay:c},_=a&&Array.isArray(t)?t[0]:null,v=a&&Array.isArray(t)?t[1]:null,b=e=>Te.format(h(p,e,1)),x=e=>{if(!r&&!i)return!1;let t=h(p,e,1),n=h(p,e+1,0,23,59,59);return o?!y(g(t,m),{minDate:r,maxDate:i}):!!(r&&n<r||i&&t>i)},S=(e,t)=>{!a||!_||v||t||d(e)};return(0,K.jsx)(`div`,{className:G.monthView,children:(0,K.jsx)(`div`,{className:G.monthsGrid,onMouseLeave:()=>{v||d(null)},children:f.map(e=>{let r=x(e),i=h(p,e,1),o=O({date:i,value:t,hoveredDate:u,selectsRange:a,selectionOptions:m});return(0,K.jsx)(`button`,{type:`button`,onClick:()=>!r&&n(i),onMouseEnter:()=>S(i,r),disabled:r,"data-ui":`calendar-month-button`,"data-action":`select-calendar-month`,className:l(G.month,{[G.selected]:o.selected,[G.range]:o.range,[G.rangeStart]:o.rangeStart,[G.rangeEnd]:o.rangeEnd,[G.disabled]:r}),"aria-label":Ee.format(i),"aria-pressed":o.selected||o.range||o.rangeStart||o.rangeEnd,children:b(e)},e)})})})},q.__docgenInfo={description:`Отображает выбор месяца в календарной семантике без timezone-сдвига.`,methods:[],displayName:`CalendarMonthView`,props:{selectionMode:{defaultValue:{value:`"day"`,computed:!1},required:!1},weekEndDay:{defaultValue:{value:`"sunday"`,computed:!1},required:!1}}}})))()}var Oe,ke,J;function Ae(){return(Ae=e((()=>{Oe=`E35KE6`,ke=`L14Qef`,J={calendarView:Oe,calendarHeader:ke}})))()}var je,Me,Ne,Pe,Fe,Ie,Le,Re,Y;function ze(){return(ze=e((()=>{je=`_--xW7O`,Me=`-N-5Jk`,Ne=`hhY92S`,Pe=`IhX7jj`,Fe=`NWNpWj`,Ie=`d1SfcV`,Le=`Gkui4r`,Re=`_0dVZLW`,Y={yearView:je,yearsGrid:Me,year:Ne,disabled:Pe,range:Fe,selected:Ie,rangeStart:Le,rangeEnd:Re}})))()}var Be,X,Z;function Ve(){return(Ve=e((()=>{Be=t(),b(),u(),A(),ze(),X=s(),Z=({currentDate:e,value:t,onChange:n,minDate:r,maxDate:i,selectsRange:a,selectsPeriod:o,selectionMode:s=`day`,weekEndDay:c=`sunday`})=>{let[u,d]=(0,Be.useState)(null),f=Math.floor(e.getFullYear()/12)*12,p=Array.from({length:12},(e,t)=>f+t),m={selectionMode:s,weekEndDay:c},_=a&&Array.isArray(t)?t[0]:null,v=a&&Array.isArray(t)?t[1]:null,b=e=>{if(!r&&!i)return!1;let t=h(e,0,1),n=h(e,11,31,23,59,59);return o?!y(g(t,m),{minDate:r,maxDate:i}):!!(r&&n<r||i&&t>i)},x=(e,t)=>{!a||!_||v||t||d(e)};return(0,X.jsx)(`div`,{className:Y.yearView,children:(0,X.jsx)(`div`,{className:Y.yearsGrid,onMouseLeave:()=>{v||d(null)},children:p.map(e=>{let r=b(e),i=h(e,0,1),o=O({date:i,value:t,hoveredDate:u,selectsRange:a,selectionOptions:m});return(0,X.jsx)(`button`,{type:`button`,onClick:()=>!r&&n(i),onMouseEnter:()=>x(i,r),disabled:r,"data-ui":`calendar-year-button`,"data-action":`select-calendar-year`,className:l(Y.year,{[Y.selected]:o.selected,[Y.range]:o.range,[Y.rangeStart]:o.rangeStart,[Y.rangeEnd]:o.rangeEnd,[Y.disabled]:r}),"aria-label":e.toString(),"aria-pressed":o.selected||o.range||o.rangeStart||o.rangeEnd,children:e},e)})})})},Z.__docgenInfo={description:`Отображает выбор года в календарной семантике без timezone-сдвига.`,methods:[],displayName:`CalendarYearView`,props:{selectionMode:{defaultValue:{value:`"day"`,computed:!1},required:!1},weekEndDay:{defaultValue:{value:`"sunday"`,computed:!1},required:!1}}}})))()}function He(e,t){if(t&&f(e)&&e[0]instanceof Date)return e[0];if(!t&&e instanceof Date)return e}function Ue({view:e,datePickerLevel:t,selectionMode:n=`day`,weekEndDay:i=`sunday`,onViewChange:o,...s}){let[c]=(0,Q.useState)(()=>d(new Date)),l=He(s.value,s.selectsRange),u=l?.getTime()??null,[f,p]=(0,Q.useState)(()=>({sourceValueTime:u,currentDate:l??d(new Date)})),h=l&&f.sourceValueTime!==u?l:f.currentDate,_=s.currentDate??h,b={selectionMode:n,weekEndDay:i},x=e=>{let t=typeof e==`function`?e(_):e;s.currentDate===void 0&&p({sourceValueTime:u,currentDate:t}),s.onCurrentDateChange?.(t)},C=()=>{if(e===`day`){x(e=>m(e,-1));return}if(e===`month`){x(e=>v(e,-1));return}x(e=>v(e,-12))},w=()=>{if(e===`day`){x(e=>m(e,1));return}if(e===`month`){x(e=>v(e,1));return}x(e=>v(e,12))};return(0,$.jsxs)(`div`,{className:J.calendarView,children:[(()=>{let t=``;if(e===`day`)t=_.toLocaleDateString(`ru-RU`,{month:`long`,year:`numeric`});else if(e===`month`)t=_.getFullYear().toString();else{let e=Math.floor(_.getFullYear()/12)*12;t=`${e} - ${e+11}`}return(0,$.jsxs)(`div`,{className:J.calendarHeader,children:[(0,$.jsx)(S,{icon:(0,$.jsx)(r,{}),onClick:C,variant:`ghost`,"aria-label":`Предыдущий`,"data-action":`calendar-previous`}),(0,$.jsx)(S,{onClick:()=>{e===`day`?o(`month`):e===`month`&&o(`year`)},variant:`ghost`,className:`flex1`,"data-ui":`calendar-view-switch-button`,"data-action":`calendar-switch-view`,children:t}),(0,$.jsx)(S,{icon:(0,$.jsx)(a,{}),onClick:w,variant:`ghost`,"aria-label":`Следующий`,"data-ui":`calendar-next-button`,"data-action":`calendar-next`})]})})(),(()=>{let r=e=>{let t=g(e,b);if(!(!t||!y(t,{minDate:s.minDate,maxDate:s.maxDate}))){if(s.selectsRange){let e=null,n=null;if(Array.isArray(s.value)&&([e,n]=s.value),!e||n){s.onChange([t.start,null]);return}let r=g(e,b);if(!r)return;if(t.start<r.start){s.onChange([t.start,r.end]);return}s.onChange([r.start,t.end]);return}s.onChange(t.start)}},a=e=>{if(x(e),n===`month`||!E(`day`,t)){r(e);return}o(`day`)},l=e=>{if(x(e),n===`year`||!E(`month`,t)){r(e);return}o(`month`)};switch(e){case`day`:return(0,$.jsx)(U,{now:c,currentDate:_,value:s.value,onChange:r,minDate:s.minDate,maxDate:s.maxDate,selectsRange:s.selectsRange,selectionMode:n,weekEndDay:i});case`month`:return(0,$.jsx)(q,{currentDate:_,value:s.value,onChange:a,minDate:s.minDate,maxDate:s.maxDate,selectsRange:s.selectsRange,selectsPeriod:n===`month`||!E(`day`,t),selectionMode:n,weekEndDay:i});case`year`:return(0,$.jsx)(Z,{currentDate:_,value:s.value,onChange:l,minDate:s.minDate,maxDate:s.maxDate,selectsRange:s.selectsRange,selectsPeriod:n===`year`||!E(`month`,t),selectionMode:n,weekEndDay:i});default:return null}})()]})}var Q,$;function We(){return(We=e((()=>{Q=t(),b(),n(),i(),x(),A(),he(),De(),Ae(),Ve(),$=s(),Ue.__docgenInfo={description:`Отображает календарь выбора даты в календарной семантике без timezone-сдвига.`,methods:[],displayName:`CalendarView`,props:{view:{required:!0,tsType:{name:`union`,raw:`"day" | "month" | "year"`,elements:[{name:`literal`,value:`"day"`},{name:`literal`,value:`"month"`},{name:`literal`,value:`"year"`}]},description:``},datePickerLevel:{required:!0,tsType:{name:`union`,raw:`"day" | "month" | "year"`,elements:[{name:`literal`,value:`"day"`},{name:`literal`,value:`"month"`},{name:`literal`,value:`"year"`}]},description:``},selectionMode:{required:!1,tsType:{name:`CalendarPeriodSelectionMode`},description:``,defaultValue:{value:`"day"`,computed:!1}},weekEndDay:{required:!1,tsType:{name:`CalendarWeekEndDay`},description:``,defaultValue:{value:`"sunday"`,computed:!1}},onViewChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(view: CalendarType) => void`,signature:{arguments:[{type:{name:`union`,raw:`"day" | "month" | "year"`,elements:[{name:`literal`,value:`"day"`},{name:`literal`,value:`"month"`},{name:`literal`,value:`"year"`}]},name:`view`}],return:{name:`void`}}},description:``},selectsRange:{required:!1,tsType:{name:`boolean`},description:``},value:{required:!0,tsType:{name:`union`,raw:`Date | NullableDateRange | null`,elements:[{name:`Date`},{name:`NullableDateRange`},{name:`null`}]},description:``},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(date: Date | NullableDateRange) => void`,signature:{arguments:[{type:{name:`union`,raw:`Date | NullableDateRange`,elements:[{name:`Date`},{name:`NullableDateRange`}]},name:`date`}],return:{name:`void`}}},description:``},minDate:{required:!1,tsType:{name:`Date`},description:``},maxDate:{required:!1,tsType:{name:`Date`},description:``},currentDate:{required:!1,tsType:{name:`Date`},description:``},onCurrentDateChange:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(date: Date) => void`,signature:{arguments:[{type:{name:`Date`},name:`date`}],return:{name:`void`}}},description:``}}}})))()}export{A as a,w as c,ie as i,T as l,We as n,E as o,re as r,te as s,Ue as t};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{a as n,c as r,l as i,n as a,o,r as s,s as c,t as l}from"./CalendarView-sSyZ5jCR.js";import{n as u,t as d}from"./RadioGroup-D4EHkLTb.js";import{n as f}from"./iframe-YrfSEgEg.js";import{_ as p,c as m,d as h,g,l as _,n as v,x as y}from"./odata-service-CWkHASdw-CXhFi03v.js";import{b,n as x,y as S}from"./formatters-D33Uh3si-Df97arf9.js";import{n as C,t as w}from"./Popover-CDeopGLJ.js";import{n as T,t as E}from"./ui.module-BDnTp43_.js";import{l as D,o as ee}from"./Input-WhTMStKL.js";function O(e){return e.selectionMode===`day`||e.selectionMode===`week`?`day`:e.selectionMode===`month`||e.selectionMode===`year`?e.selectionMode:e.datePickerLevel??`day`}function k(e){return{selectionMode:e?.selectionMode,weekEndDay:e?.weekEndDay}}function A(e,t){return typeof e==`string`||e===void 0?{datePreset:e,datePickerLevel:t}:t&&e.datePickerLevel===void 0?{...e,datePickerLevel:t}:e}function j(e){let t=_(e,H);return h(t)?t:H}function M(e,t){return m(e,j(t.datePreset),{defaultFormat:H,precision:O(t),referenceDate:t.referenceDate})?.date??null}function N(e,t){return x(e,k(t))?.start??null}function P(e,t){if(!b(e))return null;let[n,r]=e;return[N(n,t),F(r,t)]}function F(e,t){return x(e,k(t))?.end??null}function I(e){return e?.getTime()??null}function te(e,t,n){return I(N(e,n))===I(N(t,n))}function ne(e,t,n){let r=P(e,n),i=P(t,n);return I(r?.[0]??null)===I(i?.[0]??null)&&I(r?.[1]??null)===I(i?.[1]??null)}function L(e,t,n){if(!e)return``;let r=A(t,n),i=x(e,k(r));return r.selectionMode===`week`&&i?p(i.start,i.end,j(r.datePreset),{precision:O(r)}):v(e,j(r.datePreset),{precision:O(r)})}function R(e,t,n){if(!b(e))return``;let r=A(t,n),[i,a]=e;return i&&a?p(i,a,j(r.datePreset),{precision:O(r)}):i?`${v(i,j(r.datePreset),{precision:O(r)})}${U}`:``}function z(e,t,n){return b(e)?R(e,t,n):L(e,t,n)}function B(e,t,n){let r=A(t,n);return N(M(r.selectionMode===`week`?e.split(U)[0]??``:e,r),r)}function re(e,t,n){let r=A(t,n),[i=``,a=``]=e.split(U);return[B(i,r),V(a,r)]}function V(e,t,n){let r=A(t,n);return F(M(e,r),r)}var H,U;function W(){return(W=e((()=>{g(),S(),H=y.date,U=` - `})))()}function G(e){return b(e)?e[0]??e[1]??void 0:e??void 0}var K,q;function J(){return(J=e((()=>{K=t(),S(),W(),q=e=>{let t=(0,K.useMemo)(()=>{let t={selectionMode:e.selectionMode,weekEndDay:e.weekEndDay};return e.selectsRange?P(e.value,t):N(e.value,t)},[e.selectsRange,e.selectionMode,e.value,e.weekEndDay]),n=(0,K.useMemo)(()=>({datePreset:e.datePreset,datePickerLevel:e.datePickerLevel,selectionMode:e.selectionMode,weekEndDay:e.weekEndDay}),[e.datePickerLevel,e.datePreset,e.selectionMode,e.weekEndDay]),r=z(t,n),i=JSON.stringify([e.selectsRange,e.datePreset??null,e.datePickerLevel??null,e.selectionMode??null,e.weekEndDay??null,b(t)?[t[0]?.getTime()??null,t[1]?.getTime()??null]:t?.getTime()??null]),[a,o]=(0,K.useState)(()=>({sourceSignature:i,selectedDate:t,inputValue:r})),s=a.sourceSignature===i,c=s?a.selectedDate:t,l=s?a.inputValue:r,u=e=>{o(n=>{let r=n.sourceSignature===i?n.selectedDate:t;return{sourceSignature:i,selectedDate:r,inputValue:e}})},d=e=>{o(t=>{let n=t.sourceSignature===i?t.inputValue:r;return{sourceSignature:i,selectedDate:e,inputValue:n}})},f=e=>z(e,n);return{inputValue:l,setInputValue:u,selectedDate:c,setSelectedDate:d,handleSelect:t=>{let[r,a]=Array.isArray(t)?t:[t,null];if(e.selectsRange){let t=N(r,n),s=F(a,n);if(t&&s){if(s<t){let t=[N(a,n),F(r,n)];o({sourceSignature:i,selectedDate:t,inputValue:f(t)}),e.onChange(t)}else{let n=[t,s];o({sourceSignature:i,selectedDate:n,inputValue:f(n)}),e.onChange(n)}return!0}let c=[t,null];return o({sourceSignature:i,selectedDate:c,inputValue:f(c)}),!1}let s=N(r,n);return o({sourceSignature:i,selectedDate:s,inputValue:f(s)}),e.onChange(s),!0},formatDate:f,parseDate:t=>{let r={...n,referenceDate:G(c)};return e.selectsRange?re(t,r):B(t,r)}}}})))()}var Y,X;function ie(){return(ie=e((()=>{Y=`-tM-kj`,X={selectionModeControl:Y}})))()}function ae(e,t){let n=new Set(e?.length?e:s);return n.add(t),s.filter(e=>n.has(e))}function oe({placeholder:e,disabled:t,error:n,onClearError:i,minDate:a,maxDate:s,datePickerLevel:u,selectionMode:f,weekEndDay:p=`sunday`,allowSelectionModeChange:m,selectionModeOptions:h,onSelectionModeChange:g,..._}){let[v,y]=(0,Q.useState)(!1),[x,S]=(0,Q.useState)(f??`day`),C=f??x,E=u??`day`,D=c(C,E),[O,k]=(0,Q.useState)(()=>({view:D,selectionMode:C,minDatePickerLevel:E})),A=O.selectionMode===C&&O.minDatePickerLevel===E&&o(O.view,E)?O.view:D,j=(0,Q.useRef)(_.value),M={selectionMode:C,weekEndDay:p},{inputValue:N,setInputValue:P,selectedDate:F,setSelectedDate:I,handleSelect:L,formatDate:R,parseDate:z}=q({..._,datePickerLevel:E,selectionMode:C,weekEndDay:p}),B=_.selectsRange?_.onChange:void 0,re=(0,Q.useCallback)(e=>{o(e,E)&&k({view:e,selectionMode:C,minDatePickerLevel:E})},[E,C]);(0,Q.useEffect)(()=>{j.current=_.value},[_.value]);let V=()=>{if(N){let e=z(N);if(e){if(P(R(e)),_.selectsRange&&b(e)){if(ne(e,b(F)?F:null,M))return;I(e),_.onChange(e)}else if(!_.selectsRange&&e instanceof Date){if(te(e,F instanceof Date?F:null,M))return;I(e),_.onChange(e)}}}},H=e=>{e.key===`Enter`&&(e.preventDefault(),V())},U=(0,Q.useCallback)(e=>{L(e)&&y(!1)},[L]),W=(0,Q.useCallback)(e=>{f===void 0&&S(e),g?.(e),k({view:c(e,E),selectionMode:e,minDatePickerLevel:E})},[f,E,g]),G=(0,Q.useCallback)(()=>{if(B){let[,e]=b(F)?F:[null,null];if(!e){let e=j.current,t=Array.isArray(e)?e:null,n=t?.[0]??null,r=t?.[1]??null;if(n&&r){let e=[n,r];I(e),P(R(e)),B(e)}else I([null,null]),P(``),B([null,null])}}},[B,F,I,P,R]),K=ae(h,C),J=m&&K.length>1;return(0,$.jsxs)(w,{open:v,onOpenChange:e=>{y(e),e||G()},children:[(0,$.jsx)(ee,{label:_.label,description:_.description,size:_.size,value:N,onChange:P,onBlur:V,onKeyUp:H,placeholder:e,disabled:t,error:n,onClearError:i,endAdornmentWidth:`var(--control-height)`,endAdornment:(0,$.jsx)(w.Trigger,{children:(0,$.jsx)(`div`,{className:T.uiToggleButtonContainer,children:(0,$.jsx)(`button`,{type:`button`,disabled:t,"aria-label":`Открыть календарь`,className:T.uiToggleButton,children:(0,$.jsx)(r,{})})})})}),(0,$.jsxs)(w.Content,{background:`primary`,children:[(0,$.jsx)(l,{view:A,datePickerLevel:E,selectionMode:C,weekEndDay:p,onViewChange:re,value:F??null,onChange:U,minDate:a,maxDate:s,selectsRange:!!_.selectsRange}),J&&(0,$.jsx)(`div`,{className:X.selectionModeControl,children:(0,$.jsx)(d,{value:C,onChange:W,noWrap:!0,"aria-label":`Режим выбора даты`,children:K.map(e=>(0,$.jsx)(d.Option,{value:e,label:ce[e]},e))})})]})]})}function Z(e){return(0,$.jsx)(oe,{...e})}function se(e){return(0,$.jsx)(oe,{...e,selectsRange:!0})}var Q,$,ce;function le(){return(le=e((()=>{Q=t(),S(),i(),D(),C(),u(),E(),W(),n(),J(),a(),ie(),$=f(),ce={day:`День`,week:`Неделя`,month:`Месяц`,year:`Год`},Z.__docgenInfo={description:``,methods:[],displayName:`SingleDateInput`},se.__docgenInfo={description:``,methods:[],displayName:`RangeDateInput`}})))()}export{Z as n,le as r,se as t};
|
|
@@ -1,115 +0,0 @@
|
|
|
1
|
-
import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{a as n,i as r,r as i}from"./CalendarView-sSyZ5jCR.js";import{n as a}from"./iframe-YrfSEgEg.js";import{n as o,r as s,t as c}from"./DateInput-XvSKmvqi.js";var l=t({PickerLevels:()=>v,Range:()=>h,RuntimeSelectionMode:()=>y,Single:()=>m,Sizes:()=>b,WeekSelection:()=>_,WithLimits:()=>g,__namedExportsOrder:()=>x,default:()=>p});function u(e,t,n){e.onSelectionModeChange?.(n),t({selectionMode:n})}var d,f,p,m,h,g,_,v,y,b,x;function S(){return(S=e((()=>{n(),s(),d=a(),{useArgs:f}=__STORYBOOK_MODULE_PREVIEW_API__,p={title:`UI/DateInput`,component:o,args:{value:null,onChange:()=>{}},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Заголовок поля даты.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},placeholder:{description:`Плейсхолдер в текстовом поле даты.`,control:`text`},value:{description:"Текущее значение даты (`Date | null`).",control:!1},onChange:{description:`Вызывается при выборе даты или диапазона.`,control:!1},minDate:{description:`Минимально доступная дата в календаре.`,control:`date`},maxDate:{description:`Максимально доступная дата в календаре.`,control:`date`},datePreset:{description:`Имя пресета форматирования выбранной даты, например date-long, month-long или month-short.`,control:`text`},datePickerLevel:{description:`Минимальный уровень календарной навигации. Не определяет размер выбранного периода.`,control:`select`,options:[`day`,`month`,`year`]},selectionMode:{description:`Размер выбранного периода.`,control:`select`,options:i},weekEndDay:{description:`Последний включённый день недели для режима week.`,control:`select`,options:r},allowSelectionModeChange:{description:`Показывает переключатель режима выбора под календарём.`,control:`boolean`},selectionModeOptions:{description:`Ограничивает режимы в runtime-переключателе.`,control:`check`,options:i},onSelectionModeChange:{description:`Вызывается при runtime-смене режима выбора.`,control:!1},error:{description:`Текст ошибки под полем.`,control:`text`},onClearError:{description:`Сброс внешней ошибки при вводе.`,control:!1},size:{description:`Размер поля и подписи.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]},disabled:{description:`Блокирует ввод и открытие календаря.`,control:`boolean`}}},m={render:function(e){let[,t]=f();return(0,d.jsx)(o,{...e,value:e.value??null,onChange:n=>{e.onChange(n),t({value:n})},onSelectionModeChange:n=>u(e,t,n)})},args:{label:`Одиночная дата`,placeholder:`дд.мм.гггг`,value:new Date(2026,2,5,0,0,0)}},h={render:function(e){let[,t]=f();return(0,d.jsx)(c,{...e,value:e.value??null,onChange:n=>{e.onChange(n),t({value:n})},onSelectionModeChange:n=>u(e,t,n)})},args:{label:`Диапазон дат`,placeholder:`дд.мм.гггг - дд.мм.гггг`,value:[new Date(2026,2,5,0,0,0),new Date(2026,2,15,23,59,59)]}},g={render:function(e){let[,t]=f();return(0,d.jsx)(o,{...e,value:e.value??null,onChange:n=>{e.onChange(n),t({value:n})},onSelectionModeChange:n=>u(e,t,n)})},args:{label:`Дата отчёта`,description:`Доступен только март 2026.`,value:new Date(2026,2,10,0,0,0),minDate:new Date(2026,2,1,0,0,0),maxDate:new Date(2026,2,31,23,59,59)}},_={render:function(e){let[,t]=f();return(0,d.jsx)(c,{...e,value:e.value??null,onChange:n=>{e.onChange(n),t({value:n})},onSelectionModeChange:n=>u(e,t,n)})},args:{label:`Недели`,placeholder:`дд.мм.гггг - дд.мм.гггг`,value:[new Date(2026,2,2,0,0,0),new Date(2026,2,13,23,59,59)],selectionMode:`week`,weekEndDay:`friday`}},v={render:function(e){let[,t]=f();return(0,d.jsx)(o,{...e,value:e.value??null,onChange:n=>{e.onChange(n),t({value:n})},onSelectionModeChange:n=>u(e,t,n)})},args:{label:`Месяц`,placeholder:`месяц год`,value:new Date(2026,2,1,0,0,0),datePreset:`date-long`,selectionMode:`month`}},y={render:function(e){let[,t]=f();return(0,d.jsx)(c,{...e,value:e.value??null,onChange:n=>{e.onChange(n),t({value:n})},onSelectionModeChange:n=>u(e,t,n)})},args:{label:`Период`,placeholder:`дд.мм.гггг - дд.мм.гггг`,value:[new Date(2026,2,5,0,0,0),new Date(2026,2,15,23,59,59)],selectionMode:`day`,allowSelectionModeChange:!0}},b={render:function(e){let[,t]=f();return(0,d.jsx)(c,{...e,value:e.value??null,onChange:n=>{e.onChange(n),t({value:n})},onSelectionModeChange:n=>u(e,t,n)})},args:{size:`lg`,label:`Диапазон дат`,placeholder:`дд.мм.гггг - дд.мм.гггг`,value:[new Date(2026,2,5,0,0,0),new Date(2026,2,15,23,59,59)]}},m.parameters={...m.parameters,docs:{...m.parameters?.docs,source:{originalSource:`{
|
|
2
|
-
render: function Render(args) {
|
|
3
|
-
const [, updateArgs] = useArgs<SingleDateInputStoryArgs>();
|
|
4
|
-
return <SingleDateInput {...args} value={args.value ?? null} onChange={value => {
|
|
5
|
-
args.onChange(value);
|
|
6
|
-
updateArgs({
|
|
7
|
-
value
|
|
8
|
-
});
|
|
9
|
-
}} onSelectionModeChange={selectionMode => handleSelectionModeArgChange(args, updateArgs, selectionMode)} />;
|
|
10
|
-
},
|
|
11
|
-
args: {
|
|
12
|
-
label: "Одиночная дата",
|
|
13
|
-
placeholder: "дд.мм.гггг",
|
|
14
|
-
value: new Date(2026, 2, 5, 0, 0, 0)
|
|
15
|
-
}
|
|
16
|
-
}`,...m.parameters?.docs?.source},description:{story:`Демонстрирует выбор одной даты без timezone-сдвига.`,...m.parameters?.docs?.description}}},h.parameters={...h.parameters,docs:{...h.parameters?.docs,source:{originalSource:`{
|
|
17
|
-
render: function Render(args) {
|
|
18
|
-
const [, updateArgs] = useArgs<RangeDateInputStoryArgs>();
|
|
19
|
-
return <RangeDateInput {...args} value={args.value ?? null} onChange={value => {
|
|
20
|
-
args.onChange(value);
|
|
21
|
-
updateArgs({
|
|
22
|
-
value
|
|
23
|
-
});
|
|
24
|
-
}} onSelectionModeChange={selectionMode => handleSelectionModeArgChange(args, updateArgs, selectionMode)} />;
|
|
25
|
-
},
|
|
26
|
-
args: {
|
|
27
|
-
label: "Диапазон дат",
|
|
28
|
-
placeholder: "дд.мм.гггг - дд.мм.гггг",
|
|
29
|
-
value: [new Date(2026, 2, 5, 0, 0, 0), new Date(2026, 2, 15, 23, 59, 59)]
|
|
30
|
-
}
|
|
31
|
-
}`,...h.parameters?.docs?.source},description:{story:`Демонстрирует выбор диапазона дат без timezone-сдвига.`,...h.parameters?.docs?.description}}},g.parameters={...g.parameters,docs:{...g.parameters?.docs,source:{originalSource:`{
|
|
32
|
-
render: function Render(args) {
|
|
33
|
-
const [, updateArgs] = useArgs<SingleDateInputStoryArgs>();
|
|
34
|
-
return <SingleDateInput {...args} value={args.value ?? null} onChange={value => {
|
|
35
|
-
args.onChange(value);
|
|
36
|
-
updateArgs({
|
|
37
|
-
value
|
|
38
|
-
});
|
|
39
|
-
}} onSelectionModeChange={selectionMode => handleSelectionModeArgChange(args, updateArgs, selectionMode)} />;
|
|
40
|
-
},
|
|
41
|
-
args: {
|
|
42
|
-
label: "Дата отчёта",
|
|
43
|
-
description: "Доступен только март 2026.",
|
|
44
|
-
value: new Date(2026, 2, 10, 0, 0, 0),
|
|
45
|
-
minDate: new Date(2026, 2, 1, 0, 0, 0),
|
|
46
|
-
maxDate: new Date(2026, 2, 31, 23, 59, 59)
|
|
47
|
-
}
|
|
48
|
-
}`,...g.parameters?.docs?.source},description:{story:`Демонстрирует ограничения календаря.`,...g.parameters?.docs?.description}}},_.parameters={..._.parameters,docs:{..._.parameters?.docs,source:{originalSource:`{
|
|
49
|
-
render: function Render(args) {
|
|
50
|
-
const [, updateArgs] = useArgs<RangeDateInputStoryArgs>();
|
|
51
|
-
return <RangeDateInput {...args} value={args.value ?? null} onChange={value => {
|
|
52
|
-
args.onChange(value);
|
|
53
|
-
updateArgs({
|
|
54
|
-
value
|
|
55
|
-
});
|
|
56
|
-
}} onSelectionModeChange={selectionMode => handleSelectionModeArgChange(args, updateArgs, selectionMode)} />;
|
|
57
|
-
},
|
|
58
|
-
args: {
|
|
59
|
-
label: "Недели",
|
|
60
|
-
placeholder: "дд.мм.гггг - дд.мм.гггг",
|
|
61
|
-
value: [new Date(2026, 2, 2, 0, 0, 0), new Date(2026, 2, 13, 23, 59, 59)],
|
|
62
|
-
selectionMode: "week",
|
|
63
|
-
weekEndDay: "friday"
|
|
64
|
-
}
|
|
65
|
-
}`,..._.parameters?.docs?.source},description:{story:`Демонстрирует выбор недели строкой календаря.`,..._.parameters?.docs?.description}}},v.parameters={...v.parameters,docs:{...v.parameters?.docs,source:{originalSource:`{
|
|
66
|
-
render: function Render(args) {
|
|
67
|
-
const [, updateArgs] = useArgs<SingleDateInputStoryArgs>();
|
|
68
|
-
return <SingleDateInput {...args} value={args.value ?? null} onChange={value => {
|
|
69
|
-
args.onChange(value);
|
|
70
|
-
updateArgs({
|
|
71
|
-
value
|
|
72
|
-
});
|
|
73
|
-
}} onSelectionModeChange={selectionMode => handleSelectionModeArgChange(args, updateArgs, selectionMode)} />;
|
|
74
|
-
},
|
|
75
|
-
args: {
|
|
76
|
-
label: "Месяц",
|
|
77
|
-
placeholder: "месяц год",
|
|
78
|
-
value: new Date(2026, 2, 1, 0, 0, 0),
|
|
79
|
-
datePreset: "date-long",
|
|
80
|
-
selectionMode: "month"
|
|
81
|
-
}
|
|
82
|
-
}`,...v.parameters?.docs?.source},description:{story:`Демонстрирует связь формата отображения с режимом выбора периода.`,...v.parameters?.docs?.description}}},y.parameters={...y.parameters,docs:{...y.parameters?.docs,source:{originalSource:`{
|
|
83
|
-
render: function Render(args) {
|
|
84
|
-
const [, updateArgs] = useArgs<RangeDateInputStoryArgs>();
|
|
85
|
-
return <RangeDateInput {...args} value={args.value ?? null} onChange={value => {
|
|
86
|
-
args.onChange(value);
|
|
87
|
-
updateArgs({
|
|
88
|
-
value
|
|
89
|
-
});
|
|
90
|
-
}} onSelectionModeChange={selectionMode => handleSelectionModeArgChange(args, updateArgs, selectionMode)} />;
|
|
91
|
-
},
|
|
92
|
-
args: {
|
|
93
|
-
label: "Период",
|
|
94
|
-
placeholder: "дд.мм.гггг - дд.мм.гггг",
|
|
95
|
-
value: [new Date(2026, 2, 5, 0, 0, 0), new Date(2026, 2, 15, 23, 59, 59)],
|
|
96
|
-
selectionMode: "day",
|
|
97
|
-
allowSelectionModeChange: true
|
|
98
|
-
}
|
|
99
|
-
}`,...y.parameters?.docs?.source},description:{story:`Демонстрирует runtime-переключение режима выбора под календарём.`,...y.parameters?.docs?.description}}},b.parameters={...b.parameters,docs:{...b.parameters?.docs,source:{originalSource:`{
|
|
100
|
-
render: function Render(args) {
|
|
101
|
-
const [, updateArgs] = useArgs<RangeDateInputStoryArgs>();
|
|
102
|
-
return <RangeDateInput {...args} value={args.value ?? null} onChange={value => {
|
|
103
|
-
args.onChange(value);
|
|
104
|
-
updateArgs({
|
|
105
|
-
value
|
|
106
|
-
});
|
|
107
|
-
}} onSelectionModeChange={selectionMode => handleSelectionModeArgChange(args, updateArgs, selectionMode)} />;
|
|
108
|
-
},
|
|
109
|
-
args: {
|
|
110
|
-
size: "lg",
|
|
111
|
-
label: "Диапазон дат",
|
|
112
|
-
placeholder: "дд.мм.гггг - дд.мм.гггг",
|
|
113
|
-
value: [new Date(2026, 2, 5, 0, 0, 0), new Date(2026, 2, 15, 23, 59, 59)]
|
|
114
|
-
}
|
|
115
|
-
}`,...b.parameters?.docs?.source},description:{story:`Демонстрирует разные размеры.`,...b.parameters?.docs?.description}}},x=[`Single`,`Range`,`WithLimits`,`WeekSelection`,`PickerLevels`,`RuntimeSelectionMode`,`Sizes`]})))()}export{g as a,b as i,h as n,S as o,m as r,l as t};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{n}from"./iframe-YrfSEgEg.js";import{_ as r,f as i,p as a,s as o,t as s,y as c}from"./formatters-D33Uh3si-Df97arf9.js";import{a as l,n as u,o as d,r as f,t as p}from"./PresetSelect-BgzVe_NB.js";function m(e){return typeof e==`string`&&S.has(e)}function h(e,t=[]){return f(e,m,t)}function g(e,t=b){return d(e,t)}function _(e,t=C){return l(e,t)}function v(e,t=new Date,n=C){let r=_(e,n);return r?{id:r.id,label:r.label,range:r.resolveRange({referenceDate:t})}:null}function y(e,t=new Date,n=C){if(!Array.isArray(e))return null;let[r,i]=e;if(!(r instanceof Date)||!(i instanceof Date))return null;let a=r.getTime(),o=i.getTime();for(let e of n){let[n,r]=e.resolveRange({referenceDate:t});if(!(!(n instanceof Date)||!(r instanceof Date))&&n.getTime()===a&&r.getTime()===o)return e.id}return null}var b,x,S,C;function w(){return(w=e((()=>{c(),b=Object.freeze([{id:`monthStartToYesterday`,label:`С начала месяца по вчера`,resolveRange:i},{id:`monthStartToToday`,label:`С начала месяца по сегодня`,resolveRange:a},{id:`today`,label:`За сегодня`,resolveRange:o},{id:`yesterday`,label:`За вчера`,resolveRange:s},{id:`monthAgo`,label:`Месяц назад`,resolveRange:r}]),x=Object.freeze([`monthStartToYesterday`,`monthStartToToday`,`today`,`yesterday`]),S=new Set(b.map(e=>e.id)),C=Object.freeze(g(x))})))()}function T(e){if(!e)return`__empty__`;let[t,n]=e.range;return[e.id,t?.getTime()??`null`,n?.getTime()??`null`].join(`|`)}function E({value:e,onChange:t,options:n=C,referenceDate:r,onRangeChange:i,...a}){let[o]=(0,D.useState)(()=>new Date),s=r?.getTime()??o.getTime(),c=!!i,l=(0,D.useRef)(``),u=(0,D.useEffectEvent)(e=>{if(!i)return;let t=v(e,new Date(s),n),r=T(t);r!==l.current&&(l.current=r,i(t))});return(0,D.useEffect)(()=>{u(e)},[c,n,s,e]),(0,O.jsx)(p,{...a,options:n,value:e,onChange:t})}var D,O;function k(){return(k=e((()=>{D=t(),u(),w(),O=n(),E.__docgenInfo={description:`Выбор пресета диапазона дат с вычислением диапазона без timezone-сдвига.`,methods:[],displayName:`DateRangePresetSelect`,props:{label:{required:!1,tsType:{name:`ReactNode`},description:``},description:{required:!1,tsType:{name:`string`},description:``},placeholder:{required:!1,tsType:{name:`string`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},size:{required:!1,tsType:{name:`union`,raw:`"xs" | "sm" | "md" | "lg" | "xl"`,elements:[{name:`literal`,value:`"xs"`},{name:`literal`,value:`"sm"`},{name:`literal`,value:`"md"`},{name:`literal`,value:`"lg"`},{name:`literal`,value:`"xl"`}]},description:``},value:{required:!0,tsType:{name:`V`},description:"Если начальное состояние может быть `null | undefined`\nзначит `onChange` тоже должен ументь сбрасывать.\nПоэтому такой контрол явно должен передавать `UiBaseProps<AnyType | undefined>`"},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: T) => void`,signature:{arguments:[{type:{name:`C`},name:`value`}],return:{name:`void`}}},description:``},options:{required:!1,tsType:{name:`unknown`},description:``,defaultValue:{value:`Object.freeze(
|
|
2
|
-
resolveDateRangePresetOptionsByIds(DEFAULT_DATE_RANGE_PRESET_IDS)
|
|
3
|
-
)`,computed:!0}},referenceDate:{required:!1,tsType:{name:`Date`},description:``},onRangeChange:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(payload: DateRangePresetChangePayload | null) => void`,signature:{arguments:[{type:{name:`union`,raw:`DateRangePresetChangePayload | null`,elements:[{name:`DateRangePresetChangePayload`},{name:`null`}]},name:`payload`}],return:{name:`void`}}},description:``}}}})))()}export{w as a,g as c,C as i,v as l,k as n,h as o,x as r,y as s,E as t};
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{n as r}from"./iframe-YrfSEgEg.js";import{a as i,i as a}from"./utils-tg3ibbzi.js";import{n as o,t as s}from"./ui.module-BDnTp43_.js";import{d as c,l,n as u,r as d,s as f,u as p}from"./Input-WhTMStKL.js";import{a as m,i as h,n as g,r as _}from"./date-segments-DeoMkKv9.js";var v,y,b;function x(){return(x=e((()=>{v=`t1iysX`,y=`_-4oX-p`,b={segmentInput:v,separator:y}})))()}function S(e){return h(e).map(e=>e.kind===`editable`?{...e,type:e.id}:e)}function C(e,t){let n=g(e,t),r=new Map;return t.forEach((e,t)=>{e.kind===`editable`&&r.set(e.type,n.get(t)??``)}),r}function w(e,t){let n=new Map;return e.forEach((e,r)=>{e.kind===`editable`&&n.set(r,t.get(e.type)??``)}),m(e,n)}function T(){return(T=e((()=>{_()})))()}function E(e,t){let n=C(e,t),r=new Map;return t.forEach((e,t)=>{e.kind===`editable`&&r.set(t,n.get(e.type)??``)}),r}function D(e){let t=[];return e.forEach((e,n)=>{e.kind===`editable`&&t.push(n)}),t}function O({mask:e,value:t,onChange:n,onClearError:r,disabled:i}){let a=(0,k.useMemo)(()=>S(e),[e]),o=(0,k.useMemo)(()=>D(a),[a]),s=(0,k.useMemo)(()=>E(t,a),[t,a]),[c,l]=(0,k.useState)(null),[u,d]=(0,k.useState)(()=>t?.getTime()),f=t?.getTime();f!==u&&(d(f),l(null));let p=c??s,m=(0,k.useRef)(new Map),h=(0,k.useRef)(0),[g,_]=(0,k.useState)(!1),v=(0,k.useCallback)(e=>{let t=new Map;a.forEach((n,r)=>{n.kind===`editable`&&t.set(n.type,e.get(r)??``)});let r=w(a,t);r!==null&&n(r)},[a,n]),y=(0,k.useCallback)((e,t=!0)=>{let n=m.current.get(e);n&&(n.focus(),t&&requestAnimationFrame(()=>n.select()))},[]),b=(0,k.useCallback)(e=>{let t=o.indexOf(e);return t<o.length-1?o[t+1]:null},[o]),x=(0,k.useCallback)(e=>{let t=o.indexOf(e);return t>0?o[t-1]:null},[o]),C=(0,k.useCallback)((e,t)=>e.padStart(t.length,`0`),[]);return{segments:a,segmentValues:p,isFocused:g,registerRef:(0,k.useCallback)(e=>t=>{t?m.current.set(e,t):m.current.delete(e)},[]),handleInput:(0,k.useCallback)(e=>t=>{if(i)return;let n=a[e],o=t.target.value.replace(/\D/g,``).slice(0,n.length),s=new Map(p);if(s.set(e,o),l(s),r?.(),o.length===n.length){let t=b(e);t!==null&&requestAnimationFrame(()=>y(t))}v(s)},[i,a,p,r,b,y,v]),handleKeyDown:(0,k.useCallback)(e=>t=>{if(i)return;let n=a[e],r=p.get(e)??``,o=t.currentTarget;switch(t.key){case`ArrowRight`:if(o.selectionStart===r.length||r===``){t.preventDefault();let n=b(e);n!==null&&y(n)}break;case`ArrowLeft`:if(o.selectionStart===0||r===``){t.preventDefault();let n=x(e);n!==null&&y(n)}break;case`ArrowUp`:{t.preventDefault();let i=r===``?n.min:parseInt(r,10)+1;i>n.max&&(i=n.min);let a=C(i.toString(),n),s=new Map(p);s.set(e,a),l(s),v(s),requestAnimationFrame(()=>o.select());break}case`ArrowDown`:{t.preventDefault();let i=r===``?n.max:parseInt(r,10)-1;i<n.min&&(i=n.max);let a=C(i.toString(),n),s=new Map(p);s.set(e,a),l(s),v(s),requestAnimationFrame(()=>o.select());break}case`Backspace`:if(r===``){t.preventDefault();let n=x(e);n!==null&&y(n)}break;case`Delete`:{t.preventDefault();let n=new Map(p);n.set(e,``),l(n),v(n);break}}},[i,a,p,b,x,y,C,v]),handleFocus:(0,k.useCallback)(()=>e=>{e.target.select()},[]),handleContainerFocus:(0,k.useCallback)(()=>{clearTimeout(h.current),_(!0)},[]),handleContainerBlur:(0,k.useCallback)(()=>{h.current=window.setTimeout(()=>{_(!1),l(null)},0)},[]),focusFirstEmpty:(0,k.useCallback)(()=>{let e=o.find(e=>!(p.get(e)??``))??o[o.length-1];e!==void 0&&y(e)},[o,p,y])}}var k;function A(){return(A=e((()=>{k=n(),T()})))()}function j({mask:e,value:t,onChange:n,label:r,description:a,disabled:s,size:l,className:p,error:m,onClearError:h,onClear:g,"aria-label":_}){let{segments:v,segmentValues:y,registerRef:x,handleInput:S,handleKeyDown:C,handleFocus:w,handleContainerFocus:T,handleContainerBlur:E,focusFirstEmpty:D}=O({mask:e,value:t,onChange:n,onClearError:h,disabled:s}),{controlId:k,labelId:A,descriptionId:j,errorId:M,describedBy:N}=c({hasLabel:r!=null,hasDescription:!!a,hasError:!!m});return(0,F.jsx)(f,{label:r,description:a,disabled:s,className:p,size:l,error:m,labelId:A,descriptionId:j,errorId:M,children:(0,F.jsx)(d,{endAdornment:g?(0,F.jsx)(u,{onClick:g,disabled:s}):void 0,endAdornmentWidth:g?`var(--control-height)`:void 0,children:({controlClassName:e})=>(0,F.jsx)(`div`,{id:k,className:i(o.uiInputControlFake,e),"data-invalid":m?``:void 0,"data-disabled":s||void 0,role:`group`,"aria-invalid":!!m||void 0,"aria-label":_||(typeof r==`string`?r:void 0),"aria-labelledby":_?void 0:A,"aria-describedby":N,onFocus:T,onBlur:E,onClick:e=>{e.target===e.currentTarget&&D()},children:v.map((e,t)=>e.kind===`literal`?(0,F.jsx)(`span`,{className:b.separator,"data-disabled":s||void 0,children:e.text},t):(0,F.jsx)(`input`,{ref:x(t),type:`text`,inputMode:`numeric`,className:b.segmentInput,style:{width:`${e.length+.5}ch`},value:y.get(t)??``,placeholder:e.placeholder,maxLength:e.length,disabled:s,"aria-label":e.type,autoComplete:`off`,onChange:S(t),onKeyDown:C(t),onFocus:w()},t))})})})}function M({mask:e=`YYYY.MM.DD`,...t}){return(0,F.jsx)(j,{mask:e,...t})}function N({mask:e=`hh:mm`,...t}){return(0,F.jsx)(j,{mask:e,...t})}function P({mask:e=`YYYY.MM.DD hh:mm`,...t}){return(0,F.jsx)(j,{mask:e,...t})}var F;function I(){return(I=e((()=>{a(),l(),p(),s(),x(),A(),F=r(),M.__docgenInfo={description:``,methods:[],displayName:`InputDate`,props:{mask:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"YYYY.MM.DD"`,computed:!1}}}},N.__docgenInfo={description:``,methods:[],displayName:`InputTime`,props:{mask:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"hh:mm"`,computed:!1}}}},P.__docgenInfo={description:``,methods:[],displayName:`InputDateTime`,props:{mask:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"YYYY.MM.DD hh:mm"`,computed:!1}}}}})))()}var L=t({CustomMask:()=>K,DateAndTime:()=>G,DateOnly:()=>U,TimeOnly:()=>W,__namedExportsOrder:()=>q,default:()=>H});function R({component:e,...t}){let[,n]=B();return(0,z.jsx)(e,{...t,onChange:e=>{t.onChange(e),n({value:e})},onClear:()=>{t.onClear?.(),n({value:void 0})},onClearError:()=>{t.onClearError?.(),n({error:void 0})}})}var z,B,V,H,U,W,G,K,q;function J(){return(J=e((()=>{I(),z=r(),{useArgs:B}=__STORYBOOK_MODULE_PREVIEW_API__,{fn:V}=__STORYBOOK_MODULE_TEST__,H={title:`UI/InputDateTime`,component:M,args:{value:void 0,onChange:V()},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Заголовок поля.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},placeholder:{description:`Общий placeholder-параметр сегментного поля.`,control:`text`},value:{description:"Текущее значение в виде `Date`.",control:!1},onChange:{description:`Вызывается при формировании валидной даты/времени.`,control:!1},mask:{description:"Маска сегментов (`YYYY`, `MM`, `DD`, `hh`, `mm`, `ss`).",control:`text`},error:{description:`Текст ошибки под полем.`,control:`text`},onClearError:{description:`Сброс внешней ошибки при вводе.`,control:!1},onClear:{description:`Очищает значение и активирует кнопку очистки.`,control:!1},disabled:{description:`Блокирует редактирование сегментов.`,control:`boolean`},size:{description:`Размер поля и подписи.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]},"aria-label":{description:`Явное доступное имя контейнера сегментного ввода; заменяет связь с видимой подписью.`,control:`text`}}},U={render:function(e){return(0,z.jsx)(R,{...e,component:M})},args:{label:`Дата`,description:`Формат по умолчанию: YYYY.MM.DD`,value:new Date(2026,2,5)}},W={render:function(e){return(0,z.jsx)(R,{...e,component:N})},args:{label:`Время`,description:`Формат по умолчанию: hh:mm`,value:new Date(2026,2,5,14,30,0)}},G={render:function(e){return(0,z.jsx)(R,{...e,component:P})},args:{label:`Дата и время`,description:`Комбинированный ввод даты и времени.`,value:new Date(2026,2,5,9,15,0)}},K={render:function(e){return(0,z.jsx)(R,{...e,component:P})},args:{label:`Кастомная маска`,description:`Добавлены секунды: YYYY.MM.DD hh:mm:ss`,mask:`YYYY.MM.DD hh:mm:ss`,value:new Date(2026,2,5,9,15,42)}},U.parameters={...U.parameters,docs:{...U.parameters?.docs,source:{originalSource:`{
|
|
2
|
-
render: function Render(args) {
|
|
3
|
-
return <InputDateTimeStoryCanvas {...args} component={InputDate} />;
|
|
4
|
-
},
|
|
5
|
-
args: {
|
|
6
|
-
label: "Дата",
|
|
7
|
-
description: "Формат по умолчанию: YYYY.MM.DD",
|
|
8
|
-
value: new Date(2026, 2, 5)
|
|
9
|
-
}
|
|
10
|
-
}`,...U.parameters?.docs?.source}}},W.parameters={...W.parameters,docs:{...W.parameters?.docs,source:{originalSource:`{
|
|
11
|
-
render: function Render(args) {
|
|
12
|
-
return <InputDateTimeStoryCanvas {...args} component={InputTime} />;
|
|
13
|
-
},
|
|
14
|
-
args: {
|
|
15
|
-
label: "Время",
|
|
16
|
-
description: "Формат по умолчанию: hh:mm",
|
|
17
|
-
value: new Date(2026, 2, 5, 14, 30, 0)
|
|
18
|
-
}
|
|
19
|
-
}`,...W.parameters?.docs?.source}}},G.parameters={...G.parameters,docs:{...G.parameters?.docs,source:{originalSource:`{
|
|
20
|
-
render: function Render(args) {
|
|
21
|
-
return <InputDateTimeStoryCanvas {...args} component={InputDateTime} />;
|
|
22
|
-
},
|
|
23
|
-
args: {
|
|
24
|
-
label: "Дата и время",
|
|
25
|
-
description: "Комбинированный ввод даты и времени.",
|
|
26
|
-
value: new Date(2026, 2, 5, 9, 15, 0)
|
|
27
|
-
}
|
|
28
|
-
}`,...G.parameters?.docs?.source}}},K.parameters={...K.parameters,docs:{...K.parameters?.docs,source:{originalSource:`{
|
|
29
|
-
render: function Render(args) {
|
|
30
|
-
return <InputDateTimeStoryCanvas {...args} component={InputDateTime} />;
|
|
31
|
-
},
|
|
32
|
-
args: {
|
|
33
|
-
label: "Кастомная маска",
|
|
34
|
-
description: "Добавлены секунды: YYYY.MM.DD hh:mm:ss",
|
|
35
|
-
mask: "YYYY.MM.DD hh:mm:ss",
|
|
36
|
-
value: new Date(2026, 2, 5, 9, 15, 42)
|
|
37
|
-
}
|
|
38
|
-
}`,...K.parameters?.docs?.source}}},q=[`DateOnly`,`TimeOnly`,`DateAndTime`,`CustomMask`]})))()}export{W as a,L as i,G as n,J as o,U as r,K as t};
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{n as r,t as i}from"./check-CS2caYIB.js";import{n as a,t as o}from"./circle-alert-Cs1OuREv.js";import{n as s,t as c}from"./circle-check-Cvppn-HO.js";import{i as l,n as ee,r as te,t as ne}from"./info-BEkn6tJB.js";import{n as re,t as ie}from"./refresh-cw-uKRX7BI0.js";import{n as ae,t as oe}from"./trash-2-C6QVfyTq.js";import{n as se,t as u}from"./triangle-alert-DKkTKSAW.js";import{n as ce,t as le}from"./x-cU42PK2s.js";import{i as d,n as f,r as p}from"./iframe-YrfSEgEg.js";import{a as ue,i as de}from"./utils-tg3ibbzi.js";import{a as fe,i as pe,n as me,r as he}from"./react-GkniIHEK.js";import{n as ge}from"./error-De9R4E_F.js";import{n as _e,t as m}from"./FlexContainer-BWyPlTMB.js";import{n as h,t as g}from"./Button-1UZNz2k4.js";var _,v;function y(){return(y=e((()=>{d(),_=[[`path`,{d:`M10.268 21a2 2 0 0 0 3.464 0`,key:`vwvbt9`}],[`path`,{d:`M22 8c0-2.3-.8-4.3-2-6`,key:`5bb3ad`}],[`path`,{d:`M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326`,key:`11g9vi`}],[`path`,{d:`M4 2C2.8 3.7 2 5.7 2 8`,key:`tap9e0`}]],v=p(`bell-ring`,_)})))()}var b,x;function S(){return(S=e((()=>{d(),b=[[`path`,{d:`M10 2h4`,key:`n1abiw`}],[`path`,{d:`M12 14v-4`,key:`1evpnu`}],[`path`,{d:`M4 13a8 8 0 0 1 8-7 8 8 0 1 1-5.3 14L4 17.6`,key:`1ts96g`}],[`path`,{d:`M9 17H4v5`,key:`8t5av`}]],x=p(`timer-reset`,b)})))()}var C,w,T,E,D,O,k;function A(){return(A=e((()=>{fe(),C=null,w=e=>(C=e,()=>{C===e&&(C=null)}),T=()=>{if(!C)throw Error(`Notifications store is not bound. Wrap app with NotificationsProvider.`);return C},E=Object.freeze({push:e=>T().getState().actions.push(e),upsert:e=>T().getState().actions.upsert(e),update:(e,t)=>T().getState().actions.update(e,t),dismiss:e=>T().getState().actions.dismiss(e),clear:()=>T().getState().actions.clear(),success:(e,t)=>T().getState().actions.push({type:`success`,message:e,...t}),info:(e,t)=>T().getState().actions.push({type:`info`,message:e,...t}),warning:(e,t)=>T().getState().actions.push({type:`warning`,message:e,...t}),error:(e,t)=>T().getState().actions.push({type:`error`,message:e,...t}),progress:(e,t)=>{let n=T(),r=t?.id;r&&n.getState().actions.upsert({id:r,type:`info`,title:t?.title,message:e,dismissible:!1});let i=r??n.getState().actions.push({type:`info`,title:t?.title,message:e,dismissible:!1});return{id:i,update:e=>E.update(i,{message:e}),success:(e,t=2500)=>E.update(i,{type:`success`,message:e,dismissible:!0,ttlMs:t}),error:(e,t=5e3)=>E.update(i,{type:`error`,message:e,dismissible:!0,ttlMs:t}),dismiss:()=>E.dismiss(i)}}}),D=()=>`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,9)}`,O=6,k=()=>{let e=new Map,t=t=>{let n=e.get(t);n&&(window.clearTimeout(n),e.delete(t))},n=(n,r,i=1e4)=>{if(t(r),i<=0)return;let a=window.setTimeout(()=>{n.getState().actions.dismiss(r)},i);e.set(r,a)},r=pe()((i,a)=>({items:[],actions:{push:e=>{let t=e.id??D(),a=Date.now(),o={id:t,type:e.type,title:e.title,message:e.message,createdAt:a,ttlMs:e.ttlMs,dismissible:e.dismissible??!0,actions:e.actions};return i(e=>({items:[o,...e.items.filter(e=>e.id!==t)].slice(0,O)})),n(r,t,o.ttlMs),t},update:(e,t)=>{let{items:o}=a(),s=o.findIndex(t=>t.id===e);if(s===-1)return!1;let c=o[s],l={...c,...t,id:c.id,createdAt:c.createdAt};return i(t=>({items:t.items.map(t=>t.id===e?l:t)})),`ttlMs`in t&&n(r,e,l.ttlMs),!0},upsert:e=>a().actions.update(e.id,{type:e.type,title:e.title,message:e.message,ttlMs:e.ttlMs,dismissible:e.dismissible})?e.id:a().actions.push(e),dismiss:e=>{t(e),i(t=>({items:t.items.filter(t=>t.id!==e)}))},clear:()=>{e.forEach(e=>window.clearTimeout(e)),e.clear(),i({items:[]})}}}));return r}})))()}function j({children:e}){let t=(0,P.useMemo)(()=>k(),[]);return(0,P.useEffect)(()=>w(t),[t]),(0,F.jsx)(I.Provider,{value:t,children:e})}function M(){let e=(0,P.useContext)(I);if(!e)throw ge({hookName:`useNotificationApi`,providerName:`NotificationsProvider`});return e}function ve(){let e=M();return he(e,e=>e.items)}function N(){let e=M(),t=he(e,e=>e.actions),n=e=>(n,r)=>t.push({type:e,message:n,...r});return{...t,success:n(`success`),info:n(`info`),warning:n(`warning`),error:n(`error`)}}var P,F,I;function L(){return(L=e((()=>{P=n(),A(),me(),F=f(),I=(0,P.createContext)(null),j.__docgenInfo={description:`Провайдер уведомлений приложения. Хранит состояние списка уведомлений и предоставляет хуки доступа к нему.`,methods:[],displayName:`NotificationsProvider`}})))()}var R,z,B,V,H,ye,U,be,xe,Se,Ce,we,Te,Ee,W;function De(){return(De=e((()=>{R=`STGQ3g`,z=`RaiISE`,B=`cM81wO`,V=`nH2cuZ`,H=`A2glD7`,ye=`yWjijS`,U=`_1HO2ne`,be=`OyRJpj`,xe=`vrCrow`,Se=`A0X-ma`,Ce=`AkHvPV`,we=`_4YDLB5`,Te=`CK3Bqv`,Ee=`nLmQut`,W={container:R,card:z,info:B,success:V,warning:H,error:ye,header:U,content:be,copy:xe,icon:Se,kicker:Ce,title:we,message:Te,actions:Ee}})))()}function G(){let e=ve(),{dismiss:t}=N();return(0,K.jsx)(`div`,{className:W.container,"aria-label":`Область уведомлений`,"aria-live":`polite`,"aria-relevant":`additions text`,children:e.map(e=>{let n=Oe[e.type],r=e.title??n.title,i=n.Icon;return(0,K.jsx)(`article`,{role:e.type===`error`?`alert`:`status`,"aria-atomic":`true`,className:ue(W.card,W[e.type]),children:(0,K.jsxs)(m,{align:`start`,justify:`between`,gap:`sm`,className:W.header,children:[(0,K.jsxs)(m,{align:`start`,gap:`sm`,className:W.content,children:[(0,K.jsx)(`span`,{className:W.icon,"aria-hidden":`true`,children:(0,K.jsx)(i,{})}),(0,K.jsxs)(`div`,{className:W.copy,children:[(0,K.jsx)(`div`,{className:W.kicker,children:n.title}),e.title?(0,K.jsx)(`div`,{className:W.title,children:r}):null,(0,K.jsx)(`div`,{className:W.message,children:e.message}),e.actions?.length?(0,K.jsx)(`div`,{className:W.actions,children:e.actions.map(t=>(0,K.jsx)(g,{tone:t.tone??e.type,appearance:`outline`,"data-ui":`notification-action-button`,"data-action":`notification-action`,onClick:()=>void t.onClick(),children:t.label},t.label))}):null]})]}),e.dismissible===!1?null:(0,K.jsx)(g,{icon:(0,K.jsx)(le,{}),appearance:`ghost`,tone:e.type,onClick:()=>t(e.id),"aria-label":`Закрыть уведомление`,"data-ui":`notification-dismiss-button`,"data-action":`dismiss-notification`})]})},e.id)})})}var K,Oe;function ke(){return(ke=e((()=>{de(),a(),s(),ee(),se(),ce(),h(),_e(),L(),De(),K=f(),Oe={info:{title:`Информация`,Icon:ne},success:{title:`Успешно`,Icon:c},warning:{title:`Предупреждение`,Icon:u},error:{title:`Ошибка`,Icon:o}},G.__docgenInfo={description:`Хост для визуального отображения очереди уведомлений.
|
|
2
|
-
Обычно монтируется один раз на уровне приложения рядом с провайдером уведомлений.`,methods:[],displayName:`NotificationsHost`}})))()}var Ae=t({InteractivePlayground:()=>Q,Showcase:()=>Z,__namedExportsOrder:()=>He,default:()=>Le});function je(){let{clear:e}=N();return(0,q.useEffect)(()=>(e(),()=>{e()}),[e]),null}function Me({children:e,hostProps:t}){return(0,J.jsxs)(j,{children:[(0,J.jsx)(je,{}),(0,J.jsx)(`div`,{style:Re,children:(0,J.jsxs)(`div`,{style:ze,children:[(0,J.jsxs)(`div`,{style:Be,children:[(0,J.jsx)(`h2`,{style:{margin:0,fontSize:`var(--font-size-xl)`},children:`Демонстрация очереди уведомлений`}),(0,J.jsx)(`p`,{style:{margin:`12px 0 0`,color:`var(--content-1)`},children:"Хост закреплён в левом нижнем углу и использует общие токены проекта: `surface`, `content`, `status` и семантические `tone-*`. Внутри историй можно проверить лимит очереди, sticky-уведомления и сценарий длительной операции с обновлением одного уведомления."})]}),e]})}),(0,J.jsx)(G,{...t})]})}function Ne({children:e}){let[t]=Ie();return(0,J.jsx)(Me,{hostProps:t,children:e})}function Pe(){let{clear:e,push:t}=N();return(0,q.useEffect)(()=>(e(),t({type:`info`,title:`Сетевой статус`,message:`Подключение к серверу восстановлено.`,ttlMs:6e3}),t({type:`success`,title:`Профиль обновлён`,message:`Изменения сохранены и отправлены в очередь на синхронизацию.`,ttlMs:4500}),t({type:`warning`,title:`Требуется внимание`,message:`Срок действия сессии истекает через 5 минут.`}),t({type:`error`,title:`Ошибка импорта`,message:`Не удалось загрузить журнал операций.
|
|
3
|
-
Повторите запрос или обратитесь к администратору.`}),()=>{e()}),[e,t]),(0,J.jsxs)(`div`,{style:Y,children:[(0,J.jsx)(`h3`,{style:{margin:0},children:`Снимок состояний`}),(0,J.jsx)(`p`,{style:{margin:0,color:`var(--content-1)`},children:`История сразу заполняет очередь всеми типами уведомлений, чтобы оценить цвет, иконки, контраст и читаемость текста.`})]})}function Fe(){let e=N(),t=(0,q.useRef)(null),[n,r]=(0,q.useState)(!1),a=()=>{t.current=null,r(!1)},o=(n,r)=>{let i=t.current;i&&(!e.update(i,{message:n,...r})||r?.type)&&a()};return(0,J.jsxs)(`div`,{style:Ve,children:[(0,J.jsxs)(`section`,{style:Y,children:[(0,J.jsx)(`h3`,{style:{margin:0},children:`Базовые сценарии`}),(0,J.jsx)(`p`,{style:{margin:0,color:`var(--content-1)`},children:"Вызовы через `useNotify` подходят для UI-логики внутри React-компонентов."}),(0,J.jsxs)(`div`,{style:X,children:[(0,J.jsx)(g,{tone:`info`,appearance:`outline`,icon:(0,J.jsx)(ne,{}),onClick:()=>e.info(`Справочник обновлён по расписанию.`,{title:`Информация`,ttlMs:3500}),children:`Info`}),(0,J.jsx)(g,{tone:`success`,appearance:`solid`,icon:(0,J.jsx)(i,{}),onClick:()=>e.success(`Изменения сохранены.`,{title:`Операция завершена`,ttlMs:2500}),children:`Success`}),(0,J.jsx)(g,{tone:`warning`,appearance:`outline`,icon:(0,J.jsx)(u,{}),onClick:()=>e.warning(`Подтвердите действие в течение 2 минут.`,{title:`Требуется подтверждение`,dismissible:!1}),children:`Sticky warning`}),(0,J.jsx)(g,{tone:`error`,appearance:`solid`,icon:(0,J.jsx)(te,{}),onClick:()=>e.error(`Сервис проверки подписей недоступен.`,{title:`Критическая ошибка`}),children:`Error`})]})]}),(0,J.jsxs)(`section`,{style:Y,children:[(0,J.jsx)(`h3`,{style:{margin:0},children:`Долгая операция`}),(0,J.jsx)(`p`,{style:{margin:0,color:`var(--content-1)`},children:"Сценарий имитирует `notify.progress`: создаёт одно sticky-уведомление и затем обновляет его по тому же `id`."}),(0,J.jsxs)(`div`,{style:X,children:[(0,J.jsx)(g,{variant:`neutralOutline`,icon:(0,J.jsx)(v,{}),onClick:()=>{let n=e.push({type:`info`,title:`Экспорт архива`,message:`Подготавливаю пакет документов...`,dismissible:!1});t.current=n,r(!0)},children:`Запустить`}),(0,J.jsx)(g,{variant:`neutralOutline`,icon:(0,J.jsx)(ie,{}),onClick:()=>{o(`Обработано 68% записей. Формирую итоговый архив...`)},disabled:!n,children:`Обновить прогресс`}),(0,J.jsx)(g,{tone:`success`,appearance:`outline`,icon:(0,J.jsx)(i,{}),onClick:()=>{o(`Архив подготовлен и доступен для скачивания.`,{type:`success`,ttlMs:2500,dismissible:!0})},disabled:!n,children:`Завершить успешно`}),(0,J.jsx)(g,{tone:`error`,appearance:`outline`,icon:(0,J.jsx)(te,{}),onClick:()=>{o(`Не удалось собрать архив из-за ошибки чтения вложений.`,{type:`error`,ttlMs:5e3,dismissible:!0})},disabled:!n,children:`Завершить ошибкой`})]})]}),(0,J.jsxs)(`section`,{style:Y,children:[(0,J.jsx)(`h3`,{style:{margin:0},children:`Очередь и очистка`}),(0,J.jsx)(`p`,{style:{margin:0,color:`var(--content-1)`},children:`Стор сохраняет не более 6 уведомлений. Кнопка ниже специально создаёт 8 элементов, чтобы проверить отсечение старых записей.`}),(0,J.jsxs)(`div`,{style:X,children:[(0,J.jsx)(g,{variant:`neutralOutline`,icon:(0,J.jsx)(ie,{}),onClick:()=>{for(let t=1;t<=8;t+=1)e.info(`Пакет ${t} поставлен в очередь на обработку.`,{title:`Задача ${t}`,ttlMs:8e3})},children:`Заполнить очередь`}),(0,J.jsx)(g,{tone:`info`,appearance:`outline`,icon:(0,J.jsx)(x,{}),onClick:()=>e.info(`Это уведомление исчезнет автоматически через 2 секунды.`,{title:`TTL = 2000 мс`,ttlMs:2e3}),children:`Проверить TTL`}),(0,J.jsx)(g,{variant:`transparent`,icon:(0,J.jsx)(oe,{}),onClick:()=>{a(),e.clear()},children:`Очистить всё`})]})]})]})}var q,J,Ie,Le,Re,ze,Be,Ve,Y,X,Z,Q,He;function $(){return($=e((()=>{q=n(),y(),r(),ee(),re(),S(),ae(),se(),l(),h(),L(),ke(),J=f(),{useArgs:Ie}=__STORYBOOK_MODULE_PREVIEW_API__,Le={title:`UI/Notifications`,component:G,args:{},argTypes:{},parameters:{atomicCanvas:!0,layout:`fullscreen`,docs:{description:{component:`Компонент отображает очередь глобальных уведомлений поверх интерфейса. Истории ниже показывают внешний вид для разных статусов, работу автозакрытия, ограничение очереди и сценарий длительной операции с обновлением одного уведомления.`}}}},Re={minHeight:`100vh`,padding:`32px 24px 160px`,background:`linear-gradient(180deg, color-mix(in srgb, var(--surface-1) 82%, transparent) 0%, var(--surface-0) 100%)`,color:`var(--content-0)`},ze={maxWidth:1120,margin:`0 auto`,display:`grid`,gap:16},Be={padding:20,border:`var(--border)`,borderRadius:`var(--radius-md)`,background:`var(--surface-0)`,boxShadow:`var(--shadow-sm)`},Ve={display:`grid`,gap:16,gridTemplateColumns:`repeat(auto-fit, minmax(280px, 1fr))`},Y={padding:20,border:`var(--border)`,borderRadius:`var(--radius-md)`,background:`var(--surface-0)`,boxShadow:`var(--shadow-sm)`,display:`grid`,gap:12,alignContent:`start`},X={display:`flex`,flexWrap:`wrap`,gap:10},Z={render:function(){return(0,J.jsx)(Ne,{children:(0,J.jsx)(Pe,{})})},parameters:{docs:{description:{story:`Быстрый визуальный обзор: все статусы сразу добавляются в очередь после открытия истории.`}}}},Q={render:function(){return(0,J.jsx)(Ne,{children:(0,J.jsx)(Fe,{})})},parameters:{docs:{description:{story:`Интерактивный сценарий для проверки базовых уведомлений, длительной операции, лимита очереди и автозакрытия.`}}}},Z.parameters={...Z.parameters,docs:{...Z.parameters?.docs,source:{originalSource:`{
|
|
4
|
-
render: function Render() {
|
|
5
|
-
return <NotificationsStoryCanvas>
|
|
6
|
-
<ShowcaseSeed />
|
|
7
|
-
</NotificationsStoryCanvas>;
|
|
8
|
-
},
|
|
9
|
-
parameters: {
|
|
10
|
-
docs: {
|
|
11
|
-
description: {
|
|
12
|
-
story: "Быстрый визуальный обзор: все статусы сразу добавляются в очередь после открытия истории."
|
|
13
|
-
}
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
}`,...Z.parameters?.docs?.source}}},Q.parameters={...Q.parameters,docs:{...Q.parameters?.docs,source:{originalSource:`{
|
|
17
|
-
render: function Render() {
|
|
18
|
-
return <NotificationsStoryCanvas>
|
|
19
|
-
<PlaygroundPanel />
|
|
20
|
-
</NotificationsStoryCanvas>;
|
|
21
|
-
},
|
|
22
|
-
parameters: {
|
|
23
|
-
docs: {
|
|
24
|
-
description: {
|
|
25
|
-
story: "Интерактивный сценарий для проверки базовых уведомлений, длительной операции, лимита очереди и автозакрытия."
|
|
26
|
-
}
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
}`,...Q.parameters?.docs?.source}}},He=[`Showcase`,`InteractivePlayground`]})))()}export{$ as i,Ae as n,Z as r,Q as t};
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{n}from"./iframe-YrfSEgEg.js";import{g as r,m as i}from"./odata-service-CWkHASdw-CXhFi03v.js";import{a,y as o}from"./formatters-D33Uh3si-Df97arf9.js";import{n as s,o as c,r as l,t as u}from"./PresetSelect-BgzVe_NB.js";function d(e){return typeof e==`string`&&y.has(e)}function f(e,t=v){let n=l(e,d,t),r=n.length>0?n:v,i=new Set(r);return v.filter(e=>i.has(e))}function p(e,t=_){return c(e,t)}function m({maxDayRangeDays:e,maxWeekRangeWeeks:t,labels:n}={}){let r=i(e),a=i(t);return _.map(e=>{let t={...e,label:n?.[e.id]??e.label};return e.id===`day`&&r!==void 0?{...t,maxRangeDays:r}:e.id===`week`&&a!==void 0?{...t,maxRangeDays:a*7}:t})}function h(e,t){let n=i(e.maxRangeDays);if(n===void 0||t===void 0)return!1;let r=a(t);return r!==null&&r>n}function g(e,t,n){if(t.length===0)return;let r=e===void 0?-1:t.findIndex(t=>t.id===e),i=r>=0?t[r]:void 0;return i&&!h(i,n)?i.id:(r>=0?t.slice(r+1):t).find(e=>!h(e,n))?.id??t.find(e=>!h(e,n))?.id}var _,v,y;function b(){return(b=e((()=>{o(),r(),_=Object.freeze([{id:`day`,label:`по дням`},{id:`week`,label:`по неделям`},{id:`month`,label:`по месяцам`},{id:`year`,label:`по годам`}]),v=Object.freeze([`day`,`week`,`month`,`year`]),y=new Set(_.map(e=>e.id))})))()}function x({value:e,onChange:t,options:n,labels:r,presetIds:i,dateRange:a,maxDayRangeDays:o,maxWeekRangeWeeks:s,...c}){let l=(0,S.useMemo)(()=>n??p(f(i),m({maxDayRangeDays:o,maxWeekRangeWeeks:s,labels:r})),[r,o,s,n,i]),d=(0,S.useMemo)(()=>g(e,l,a),[a,l,e]),_=(0,S.useRef)(null),v=(0,S.useEffectEvent)(()=>{if(d===void 0||d===e){_.current=null;return}let n=_.current;n&&n.value===e&&n.availableValue===d||(_.current={value:e,availableValue:d},t(d))});return(0,S.useEffect)(()=>{v()},[d,e]),(0,C.jsx)(u,{...c,options:l,value:d,onChange:t,getOptionDisabled:e=>h(e,a)})}var S,C;function w(){return(w=e((()=>{S=t(),s(),b(),C=n(),x.__docgenInfo={description:`Select периода детализации, который может ограничивать доступные варианты по диапазону дат.`,methods:[],displayName:`PeriodSelect`,props:{label:{required:!1,tsType:{name:`ReactNode`},description:``},description:{required:!1,tsType:{name:`string`},description:``},placeholder:{required:!1,tsType:{name:`string`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},size:{required:!1,tsType:{name:`union`,raw:`"xs" | "sm" | "md" | "lg" | "xl"`,elements:[{name:`literal`,value:`"xs"`},{name:`literal`,value:`"sm"`},{name:`literal`,value:`"md"`},{name:`literal`,value:`"lg"`},{name:`literal`,value:`"xl"`}]},description:``},value:{required:!0,tsType:{name:`V`},description:"Если начальное состояние может быть `null | undefined`\nзначит `onChange` тоже должен ументь сбрасывать.\nПоэтому такой контрол явно должен передавать `UiBaseProps<AnyType | undefined>`"},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: T) => void`,signature:{arguments:[{type:{name:`C`},name:`value`}],return:{name:`void`}}},description:``},options:{required:!1,tsType:{name:`unknown`},description:"Полный список custom options с высшим приоритетом. При его передаче\nвстроенные `presetIds`, `labels` и пороги диапазона не применяются."},labels:{required:!1,tsType:{name:`Partial`,elements:[{name:`Readonly`,elements:[{name:`Record`,elements:[{name:`union`,raw:`"day" | "week" | "month" | "year"`,elements:[{name:`literal`,value:`"day"`},{name:`literal`,value:`"week"`},{name:`literal`,value:`"month"`},{name:`literal`,value:`"year"`}]},{name:`string`}],raw:`Record<PeriodSelectPresetId, string>`}],raw:`Readonly<Record<PeriodSelectPresetId, string>>`}],raw:`Partial<PeriodSelectLabels>`},description:`Частично заменяет подписи встроенных вариантов, не изменяя их id,
|
|
2
|
-
канонический порядок и правила доступности.
|
|
3
|
-
Не применяется, когда передан собственный \`options\`.`},presetIds:{required:!1,tsType:{name:`unknown`},description:`Разрешенные встроенные варианты периода. Значение нормализуется в канонический
|
|
4
|
-
порядок, а пустой либо невалидный список безопасно заменяется полным набором.
|
|
5
|
-
Не применяется, когда передан собственный \`options\`.`},dateRange:{required:!1,tsType:{name:`DateRangeInput`},description:``},maxDayRangeDays:{required:!1,tsType:{name:`number`},description:``},maxWeekRangeWeeks:{required:!1,tsType:{name:`number`},description:``}}}})))()}export{b as i,w as n,v as r,x as t};
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{a as n,i as r,r as i}from"./CalendarView-sSyZ5jCR.js";import{n as a}from"./iframe-YrfSEgEg.js";import{n as o,t as s}from"./Text-ByhnRSgp.js";import{n as c,t as l}from"./FlexContainer-BWyPlTMB.js";import{n as u,t as d}from"./createControlledStoryRender-BouhvX-R.js";import{a as f,r as p}from"./DateRangePresetSelect-tz-3m9UI.js";import{n as m,t as h}from"./PresetRangeDateInput-D3FBpZqV.js";var g=t({Default:()=>x,__namedExportsOrder:()=>S,default:()=>y}),_,v,y,b,x,S;function C(){return(C=e((()=>{n(),f(),u(),c(),o(),m(),_=a(),{fn:v}=__STORYBOOK_MODULE_TEST__,y={title:`UI/PresetRangeDateInput`,component:h,args:{label:`Диапазон дат`,placeholder:`дд.мм.гггг - дд.мм.гггг`,value:[new Date(2026,2,10,0,0,0),new Date(2026,2,10,23,59,59)],onChange:v(),presetId:`today`,onPresetIdChange:v(),referenceDate:new Date(2026,2,10,12,0,0),presetLabel:`Быстрый диапазон`,size:`md`},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{presetId:{description:"Контролируемый ID выбранного быстрого пресета. `null` снимает внешний выбор.",control:`select`,options:[...p,null]},onPresetIdChange:{description:`Вызывается, когда выбор пресета меняется из-за preset или ручного диапазона.`,control:!1},referenceDate:{description:`Опорная дата для вычисления встроенных быстрых диапазонов.`,control:`date`},presetIds:{description:"Разрешённые встроенные ID пресетов, если не передан `presetOptions`.",control:`check`,options:p},presetOptions:{description:`Кастомный каталог быстрых диапазонов с функциями вычисления.`,control:!1},presetLabel:{description:`Заголовок поля быстрого выбора.`,control:`text`},presetDescription:{description:`Описание под полем быстрого выбора.`,control:`text`},presetPlaceholder:{description:`Текст до выбора быстрого диапазона.`,control:`text`},presetDisabled:{description:`Блокирует только выбор быстрого пресета.`,control:`boolean`},label:{description:`Заголовок ручного поля диапазона.`,control:`text`},description:{description:`Описание ручного поля диапазона.`,control:`text`},placeholder:{description:`Текст до выбора ручного диапазона.`,control:`text`},value:{description:`Текущий ручной диапазон дат.`,control:!1},onChange:{description:`Вызывается при изменении ручного диапазона или выборе пресета.`,control:!1},error:{description:`Текст внешней ошибки ручного поля.`,control:`text`},onClearError:{description:`Сбрасывает внешнюю ошибку после ввода или выбора.`,control:!1},minDate:{description:`Минимально доступная дата ручного диапазона.`,control:`date`},maxDate:{description:`Максимально доступная дата ручного диапазона.`,control:`date`},datePreset:{description:`Пресет форматирования выбранного ручного диапазона.`,control:`text`},datePickerLevel:{description:`Минимальный уровень навигации календаря ручного поля.`,control:`select`,options:[`day`,`month`,`year`]},selectionMode:{description:`Размер периода, который выбирает ручное поле.`,control:`select`,options:i},weekEndDay:{description:`Последний включённый день недели в режиме week.`,control:`select`,options:r},allowSelectionModeChange:{description:`Показывает runtime-переключатель размера периода.`,control:`boolean`},selectionModeOptions:{description:`Ограничивает доступные режимы в runtime-переключателе.`,control:`check`,options:i},onSelectionModeChange:{description:`Вызывается при runtime-смене размера периода.`,control:!1},disabled:{description:"Блокирует ручное поле и, если `presetDisabled` не задан, быстрый выбор.",control:`boolean`},size:{description:`Размер обоих полей.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]}}},b=d((e,t)=>(0,_.jsxs)(_.Fragment,{children:[(0,_.jsx)(l,{gap:`sm`,align:`end`,children:(0,_.jsx)(h,{...e,value:e.value??null,onChange:n=>{e.onChange(n),t({value:n})},onPresetIdChange:n=>{e.onPresetIdChange?.(n),t({presetId:n})},onSelectionModeChange:n=>{e.onSelectionModeChange?.(n),t({selectionMode:n})},onClearError:()=>{e.onClearError?.(),t({error:void 0})}})}),(0,_.jsxs)(s,{as:`p`,className:`marginBlockSm`,children:[`Активный presetId: `,(0,_.jsx)(s,{as:`code`,children:e.presetId??`null`})]})]})),x={render:b},x.parameters={...x.parameters,docs:{...x.parameters?.docs,source:{originalSource:`{
|
|
2
|
-
render: renderPresetRangeDateInputStory
|
|
3
|
-
}`,...x.parameters?.docs?.source},description:{story:`Демонстрирует совместную работу пресета и ручного диапазона.`,...x.parameters?.docs?.description}}},S=[`Default`]})))()}export{g as n,C as r,x as t};
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-YrfSEgEg.js";import{n,t as r}from"./Select-DgPcfbEp.js";function i(e,t,n=[]){if(!Array.isArray(e))return[...n];let r=[];for(let n of e)!t(n)||r.includes(n)||r.push(n);return r}function a(e,t){let n=new Map(t.map(e=>[e.id,e])),r=[],i=new Set;for(let t of e){if(i.has(t))continue;let e=n.get(t);e&&(r.push(e),i.add(t))}return r}function o(e,t){return e?t.find(t=>t.id===e)??null:null}function s(){return(s=e((()=>{})))()}function c({options:e,value:t,onChange:n,getOptionDisabled:i,getOptionCode:a,getOptionAriaLabel:s,renderOption:c,renderValue:u,className:d,buttonClassName:f,optionsClassName:p,clearable:m,...h}){let g=o(t,e)??void 0;return(0,l.jsx)(r,{...h,options:e,value:g,onChange:e=>n(e?.id),getOptionKey:e=>e.id,getOptionLabel:e=>e.label,getOptionCode:a,getOptionDisabled:i,getOptionAriaLabel:s,renderOption:c,renderValue:u,className:d,buttonClassName:f,optionsClassName:p,clearable:m})}var l;function u(){return(u=e((()=>{n(),l=t(),c.__docgenInfo={description:"Базовый Select для пресетов с контрактом `id/label`.",methods:[],displayName:`PresetSelect`,props:{label:{required:!1,tsType:{name:`ReactNode`},description:``},description:{required:!1,tsType:{name:`string`},description:``},placeholder:{required:!1,tsType:{name:`string`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},size:{required:!1,tsType:{name:`union`,raw:`"xs" | "sm" | "md" | "lg" | "xl"`,elements:[{name:`literal`,value:`"xs"`},{name:`literal`,value:`"sm"`},{name:`literal`,value:`"md"`},{name:`literal`,value:`"lg"`},{name:`literal`,value:`"xl"`}]},description:``},value:{required:!0,tsType:{name:`V`},description:"Если начальное состояние может быть `null | undefined`\nзначит `onChange` тоже должен ументь сбрасывать.\nПоэтому такой контрол явно должен передавать `UiBaseProps<AnyType | undefined>`"},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: T) => void`,signature:{arguments:[{type:{name:`C`},name:`value`}],return:{name:`void`}}},description:``},options:{required:!0,tsType:{name:`unknown`},description:``},getOptionDisabled:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => boolean`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`boolean`}}},description:``},getOptionCode:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => string`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`string`}}},description:``},getOptionAriaLabel:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => string`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`string`}}},description:``},renderOption:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption, state: SelectOptionState) => ReactNode`,signature:{arguments:[{type:{name:`TOption`},name:`option`},{type:{name:`signature`,type:`object`,raw:`{
|
|
2
|
-
active: boolean;
|
|
3
|
-
selected: boolean;
|
|
4
|
-
disabled: boolean;
|
|
5
|
-
}`,signature:{properties:[{key:`active`,value:{name:`boolean`,required:!0}},{key:`selected`,value:{name:`boolean`,required:!0}},{key:`disabled`,value:{name:`boolean`,required:!0}}]}},name:`state`}],return:{name:`ReactNode`}}},description:``},renderValue:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => ReactNode`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`ReactNode`}}},description:``},className:{required:!1,tsType:{name:`string`},description:``},buttonClassName:{required:!1,tsType:{name:`string`},description:``},optionsClassName:{required:!1,tsType:{name:`string`},description:``},clearable:{required:!1,tsType:{name:`boolean`},description:``}}}})))()}export{o as a,s as i,u as n,a as o,i as r,c as t};
|
|
@@ -1,77 +0,0 @@
|
|
|
1
|
-
import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{i as r,n as i,r as a,t as o}from"./sortable-sVqTZjeF.js";import{n as s}from"./iframe-YrfSEgEg.js";var c=t({Basic:()=>x,DisabledItems:()=>w,GridCards:()=>C,HandleOnly:()=>T,HorizontalList:()=>S,NestedContainers:()=>E,SortablePreview:()=>d,__namedExportsOrder:()=>D,default:()=>b});function l(e,t,n){let r=[...e],[i]=r.splice(t,1);return r.splice(n,0,i),r}function u(e){switch(e){case`horizontal`:return{display:`flex`,gap:`var(--space-sm)`,overflowX:`auto`};case`grid`:return{display:`grid`,gap:`var(--space-sm)`,gridTemplateColumns:`repeat(auto-fill, minmax(12rem, 1fr))`};default:return{display:`grid`,gap:`var(--space-sm)`}}}function d(e){let[,t]=h(),n=e.initialItems,r=new Set(e.disabledIds??[]);return(0,m.jsxs)(`div`,{style:{display:`grid`,gap:12},children:[(0,m.jsx)(o.Root,{onDragEnd:r=>{let i=a({event:r,items:{[e.containerId]:n}});i&&t({initialItems:l(n,i.fromIndex,i.toIndex)})},children:(0,m.jsx)(o.Container,{containerId:e.containerId,items:n,layout:e.layout,children:(0,m.jsx)(`div`,{style:u(e.layout),children:n.map(t=>(0,m.jsxs)(o.Item,{id:t,disabled:r.has(t),style:{...g,minWidth:e.itemWidth},children:[(0,m.jsx)(o.DragHandle,{title:`Перетащить ${t}`}),(0,m.jsx)(`div`,{children:t})]},t))})})}),(0,m.jsx)(`div`,{style:{fontSize:14,opacity:.8},children:`Порядок элементов изменяется локально в рамках story.`})]})}function f({args:e,onTopItemsChange:t}){let n=e.initialItems,[r,i]=(0,p.useState)({"Группа A":[`A.1`,`A.2`,`A.3`],"Группа B":[`B.1`,`B.2`]});return(0,m.jsxs)(`div`,{style:{display:`grid`,gap:12},children:[(0,m.jsx)(o.Root,{onDragEnd:o=>{let s=a({event:o,items:{[e.containerId]:n,...Object.fromEntries(n.map(e=>[`parent:${e}`,r[e]??[]]))}});if(!s)return;if(s.containerId===e.containerId){t(l(n,s.fromIndex,s.toIndex));return}let c=String(s.containerId).slice(7);i(e=>({...e,[c]:l(e[c]??[],s.fromIndex,s.toIndex)}))},children:(0,m.jsx)(o.Container,{containerId:e.containerId,items:n,layout:e.layout,children:(0,m.jsx)(`div`,{style:{display:`grid`,gap:`var(--space-md)`},children:n.map(e=>(0,m.jsxs)(o.Item,{id:e,style:{...g,gridTemplateColumns:`var(--control-height) 1fr`,alignItems:`start`},children:[(0,m.jsx)(o.DragHandle,{title:`Перетащить ${e}`}),(0,m.jsxs)(`div`,{style:{display:`grid`,gap:`var(--space-sm)`},children:[(0,m.jsx)(`strong`,{children:e}),(0,m.jsx)(o.Container,{containerId:`parent:${e}`,items:r[e]??[],children:(0,m.jsx)(`div`,{style:{display:`grid`,gap:`var(--space-xs)`},children:(r[e]??[]).map(e=>(0,m.jsxs)(o.Item,{id:e,style:{...g,background:`var(--surface-1)`},children:[(0,m.jsx)(o.DragHandle,{title:`Перетащить ${e}`}),(0,m.jsx)(`div`,{children:e})]},e))})})]})]},e))})})}),(0,m.jsx)(`div`,{style:{fontSize:14,opacity:.8},children:"Вложенные контейнеры сортируются независимо и используют общий `Sortable.Root`."})]})}var p,m,h,g,_,v,y,b,x,S,C,w,T,E,D;function O(){return(O=e((()=>{p=n(),i(),r(),m=s(),{useArgs:h}=__STORYBOOK_MODULE_PREVIEW_API__,g={display:`grid`,gridTemplateColumns:`var(--control-height) 1fr`,alignItems:`center`,gap:`var(--space-sm)`,padding:`var(--space-sm)`,border:`var(--border)`,borderRadius:`var(--radius-sm)`,background:`var(--surface-0)`},_=[`Alpha`,`Bravo`,`Charlie`,`Delta`],v=[`Фильтры`,`Графики`,`Сводка`,`История`],y=[`Карточка 1`,`Карточка 2`,`Карточка 3`,`Карточка 4`,`Карточка 5`,`Карточка 6`],b={title:`UI/Sortable`,component:d,args:{containerId:`sortable-demo`,layout:`vertical`,initialItems:_,itemWidth:void 0,disabledIds:[]},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{containerId:{description:"Идентификатор `SortableContext`, который используется для вычисления reorder внутри контейнера.",control:`text`},layout:{description:`Режим раскладки и стратегия сортировки: вертикальный список, горизонтальный список или grid.`,control:`inline-radio`,options:[`vertical`,`horizontal`,`grid`]},initialItems:{description:`Текущий порядок элементов. После drag-and-drop обновляется в Storybook args.`,control:!1},itemWidth:{description:`Минимальная ширина карточки; полезна для горизонтального режима.`,control:`text`},disabledIds:{description:`Список id, для которых drag-handle отключен.`,control:!1}}},x={},S={args:{containerId:`sortable-horizontal`,layout:`horizontal`,initialItems:v,itemWidth:`12rem`}},C={args:{containerId:`sortable-grid`,layout:`grid`,initialItems:y}},w={args:{containerId:`sortable-disabled`,layout:`vertical`,initialItems:_,disabledIds:[`Bravo`,`Delta`]}},T={args:{containerId:`sortable-handle-only`,layout:`vertical`,initialItems:[`Пункт 1`,`Пункт 2`,`Пункт 3`,`Пункт 4`]}},E={args:{containerId:`top`,layout:`vertical`,initialItems:[`Группа A`,`Группа B`]},render:function(e){let[,t]=h();return(0,m.jsx)(f,{args:e,onTopItemsChange:e=>t({initialItems:e})})}},d.__docgenInfo={description:``,methods:[],displayName:`SortablePreview`,props:{containerId:{required:!0,tsType:{name:`string`},description:``},layout:{required:!0,tsType:{name:`union`,raw:`"vertical" | "horizontal" | "grid"`,elements:[{name:`literal`,value:`"vertical"`},{name:`literal`,value:`"horizontal"`},{name:`literal`,value:`"grid"`}]},description:``},initialItems:{required:!0,tsType:{name:`Array`,elements:[{name:`string`}],raw:`string[]`},description:``},itemWidth:{required:!1,tsType:{name:`string`},description:``},disabledIds:{required:!1,tsType:{name:`Array`,elements:[{name:`string`}],raw:`string[]`},description:``}}},d.parameters={...d.parameters,docs:{...d.parameters?.docs,source:{originalSource:`function SortablePreview(props: SortablePreviewProps) {
|
|
2
|
-
const [, updateArgs] = useArgs<SortablePreviewProps>();
|
|
3
|
-
const items = props.initialItems;
|
|
4
|
-
const disabledIdSet = new Set(props.disabledIds ?? []);
|
|
5
|
-
return <div style={{
|
|
6
|
-
display: "grid",
|
|
7
|
-
gap: 12
|
|
8
|
-
}}>
|
|
9
|
-
<Sortable.Root onDragEnd={event => {
|
|
10
|
-
const reorder = getSortableReorderResult({
|
|
11
|
-
event,
|
|
12
|
-
items: {
|
|
13
|
-
[props.containerId]: items
|
|
14
|
-
}
|
|
15
|
-
});
|
|
16
|
-
if (!reorder) return;
|
|
17
|
-
updateArgs({
|
|
18
|
-
initialItems: reorderItems(items, reorder.fromIndex, reorder.toIndex) as string[]
|
|
19
|
-
});
|
|
20
|
-
}}>
|
|
21
|
-
<Sortable.Container containerId={props.containerId} items={items} layout={props.layout}>
|
|
22
|
-
<div style={getContainerStyle(props.layout)}>
|
|
23
|
-
{items.map(item => <Sortable.Item key={item} id={item} disabled={disabledIdSet.has(item)} style={{
|
|
24
|
-
...itemStyle,
|
|
25
|
-
minWidth: props.itemWidth
|
|
26
|
-
}}>
|
|
27
|
-
<Sortable.DragHandle title={\`Перетащить \${item}\`} />
|
|
28
|
-
<div>{item}</div>
|
|
29
|
-
</Sortable.Item>)}
|
|
30
|
-
</div>
|
|
31
|
-
</Sortable.Container>
|
|
32
|
-
</Sortable.Root>
|
|
33
|
-
|
|
34
|
-
<div style={{
|
|
35
|
-
fontSize: 14,
|
|
36
|
-
opacity: 0.8
|
|
37
|
-
}}>Порядок элементов изменяется локально в рамках story.</div>
|
|
38
|
-
</div>;
|
|
39
|
-
}`,...d.parameters?.docs?.source}}},x.parameters={...x.parameters,docs:{...x.parameters?.docs,source:{originalSource:`{}`,...x.parameters?.docs?.source}}},S.parameters={...S.parameters,docs:{...S.parameters?.docs,source:{originalSource:`{
|
|
40
|
-
args: {
|
|
41
|
-
containerId: "sortable-horizontal",
|
|
42
|
-
layout: "horizontal",
|
|
43
|
-
initialItems: horizontalItems,
|
|
44
|
-
itemWidth: "12rem"
|
|
45
|
-
}
|
|
46
|
-
}`,...S.parameters?.docs?.source}}},C.parameters={...C.parameters,docs:{...C.parameters?.docs,source:{originalSource:`{
|
|
47
|
-
args: {
|
|
48
|
-
containerId: "sortable-grid",
|
|
49
|
-
layout: "grid",
|
|
50
|
-
initialItems: gridItems
|
|
51
|
-
}
|
|
52
|
-
}`,...C.parameters?.docs?.source}}},w.parameters={...w.parameters,docs:{...w.parameters?.docs,source:{originalSource:`{
|
|
53
|
-
args: {
|
|
54
|
-
containerId: "sortable-disabled",
|
|
55
|
-
layout: "vertical",
|
|
56
|
-
initialItems: verticalItems,
|
|
57
|
-
disabledIds: ["Bravo", "Delta"]
|
|
58
|
-
}
|
|
59
|
-
}`,...w.parameters?.docs?.source}}},T.parameters={...T.parameters,docs:{...T.parameters?.docs,source:{originalSource:`{
|
|
60
|
-
args: {
|
|
61
|
-
containerId: "sortable-handle-only",
|
|
62
|
-
layout: "vertical",
|
|
63
|
-
initialItems: ["Пункт 1", "Пункт 2", "Пункт 3", "Пункт 4"]
|
|
64
|
-
}
|
|
65
|
-
}`,...T.parameters?.docs?.source}}},E.parameters={...E.parameters,docs:{...E.parameters?.docs,source:{originalSource:`{
|
|
66
|
-
args: {
|
|
67
|
-
containerId: "top",
|
|
68
|
-
layout: "vertical",
|
|
69
|
-
initialItems: ["Группа A", "Группа B"]
|
|
70
|
-
},
|
|
71
|
-
render: function Render(args) {
|
|
72
|
-
const [, updateArgs] = useArgs<SortablePreviewProps>();
|
|
73
|
-
return <NestedContainersCanvas args={args} onTopItemsChange={initialItems => updateArgs({
|
|
74
|
-
initialItems
|
|
75
|
-
})} />;
|
|
76
|
-
}
|
|
77
|
-
}`,...E.parameters?.docs?.source}}},D=[`SortablePreview`,`Basic`,`HorizontalList`,`GridCards`,`DisabledItems`,`HandleOnly`,`NestedContainers`]})))()}export{S as a,O as c,T as i,w as n,E as o,C as r,c as s,x as t};
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-YrfSEgEg.js";import{n,t as r}from"./Toggle-BkglFvBx.js";function i(e,t){return typeof e==`string`?e:t}var a,o;function s(){return(s=e((()=>{a=`true`,o=`false`})))()}function c({value:e,onChange:t,checkedValue:n,uncheckedValue:s,defaultChecked:c,...u}){let d=i(n,a),f=i(s,o),p=e===d;return(0,l.jsx)(r,{...u,value:p,onChange:e=>t(e?d:f)})}var l;function u(){return(u=e((()=>{s(),n(),l=t(),c.__docgenInfo={description:`Адаптирует boolean-состояние Toggle к паре настраиваемых строковых значений.`,methods:[],displayName:`StringToggle`,props:{checkedValue:{required:!1,tsType:{name:`string`},description:``},uncheckedValue:{required:!1,tsType:{name:`string`},description:``},value:{required:!0,tsType:{name:`string`},description:``},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: string) => void`,signature:{arguments:[{type:{name:`string`},name:`value`}],return:{name:`void`}}},description:``}}}})))()}function d({args:e}){let[,t]=p();return(0,f.jsx)(c,{...e,onChange:n=>{e.onChange(n),t({value:n})}})}var f,p,m,h,g;function _(){return(_=e((()=>{u(),f=t(),{useArgs:p}=__STORYBOOK_MODULE_PREVIEW_API__,m={title:`UI/Toggle/StringToggle`,component:c,args:{value:`ZBP_MANAGER`,onChange:()=>void 0,checkedText:`за клиента`,uncheckedText:`за сделку`,checkedValue:`ZM_MANAGER`,uncheckedValue:`ZBP_MANAGER`},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Текст подписи переключателя.`,control:`text`},description:{description:`Описание под переключателем.`,control:`text`},placeholder:{description:"Резервная подпись, если `label` не задан.",control:`text`},value:{description:`Текущее строковое значение.`,control:`text`},onChange:{description:`Возвращает строку выбранного состояния.`,control:!1},checkedValue:{description:`Значение включённого состояния.`,control:`text`},uncheckedValue:{description:`Значение выключенного состояния.`,control:`text`},checkedText:{description:`Текст включённого состояния.`,control:`text`},uncheckedText:{description:`Текст выключенного состояния.`,control:`text`},labelPosition:{description:`Положение подписи относительно переключателя.`,control:`inline-radio`,options:[`before`,`after`]},disabled:{description:`Блокирует взаимодействие.`,control:`boolean`},size:{description:`Размер контрола и подписи.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]}}},h={render:function(e){return(0,f.jsx)(d,{args:e})}},h.parameters={...h.parameters,docs:{...h.parameters?.docs,source:{originalSource:`{
|
|
2
|
-
render: function Render(args) {
|
|
3
|
-
return <StringToggleStoryCanvas args={args} />;
|
|
4
|
-
}
|
|
5
|
-
}`,...h.parameters?.docs?.source}}},g=[`ManagerScope`]})))()}_();export{h as ManagerScope,g as __namedExportsOrder,m as default};
|