@ryuzaki13/react-foundation-ui 1.5.2 → 1.5.4
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/ui.module-BfaIVBba.js.map +1 -1
- package/dist/disclosure/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +1 -1
- package/src/styles/mixins/_controls.scss +3 -3
- package/storybook-static/assets/{Badge-DdvnnE8F.js → Badge-Ca25nduW.js} +1 -1
- package/storybook-static/assets/{Badge.stories-BUKUom98.js → Badge.stories-DikvfaY2.js} +1 -1
- package/storybook-static/assets/{Button-CghMveZ5.js → Button-2-1lrrp0.js} +1 -1
- package/storybook-static/assets/{Button-Co_JCRHU.js → Button-CeLeq7MM.js} +1 -1
- package/storybook-static/assets/{Button.stories-CGj8XyOO.js → Button.stories-B1fVv9qq.js} +1 -1
- package/storybook-static/assets/{CalendarView-CaphwAt-.js → CalendarView-CLSJCqD5.js} +1 -1
- package/storybook-static/assets/{CheckBox-BQcaUjLx.js → CheckBox-BXgijhji.js} +1 -1
- package/storybook-static/assets/{CheckBox-DAffOBou.js → CheckBox-DDxhhLj6.js} +1 -1
- package/storybook-static/assets/{CheckBox.stories-D_pMeQfu.js → CheckBox.stories-p6vAtxwI.js} +1 -1
- package/storybook-static/assets/{Color-6AOWCN3U--6e3-dEn.js → Color-6AOWCN3U-LMLu57eB.js} +1 -1
- package/storybook-static/assets/{ContextMenu-CCwVy2bU.js → ContextMenu-CaQlZt-v.js} +1 -1
- package/storybook-static/assets/{ContextMenu-CCuLOUEi.js → ContextMenu-RmJEzv9e.js} +1 -1
- package/storybook-static/assets/{ContextMenu.stories-DvArgxXF.js → ContextMenu.stories-DP6GcoCb.js} +1 -1
- package/storybook-static/assets/{DateInput-DNJ3WoMQ.js → DateInput-BuCyQJPb.js} +1 -1
- package/storybook-static/assets/{DateInput-2WtbeZR7.js → DateInput-C4kPIiEw.js} +1 -1
- package/storybook-static/assets/{DateInput.stories-v5ti6IEo.js → DateInput.stories-ChNl-afC.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-CPxgZfAB.js → DateRangePresetSelect-C9ZhGO09.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-q30Gumdf.js → DateRangePresetSelect-CWk1QygX.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect.stories-DdOS7cEa.js → DateRangePresetSelect.stories-CGRrUct8.js} +1 -1
- package/storybook-static/assets/{Detail-DIuLwIa1.js → Detail-CEkse7HD.js} +1 -1
- package/storybook-static/assets/{Detail.stories-D3P1LkKH.js → Detail.stories-Bs-2bZex.js} +1 -1
- package/storybook-static/assets/{Dialog-zxssjiyA.js → Dialog-B9lYwQct.js} +1 -1
- package/storybook-static/assets/{Dialog-zOHAVMnY.js → Dialog-E_-_KwBe.js} +1 -1
- package/storybook-static/assets/{Dialog.stories-CPdleZZG.js → Dialog.stories-BzWr_tEG.js} +1 -1
- package/storybook-static/assets/{Disclosure-X-fwyTOO.js → Disclosure-DhmCAOqI.js} +1 -1
- package/storybook-static/assets/{Disclosure.stories-DhBj8XEl.js → Disclosure.stories-BtIUbxfa.js} +1 -1
- package/storybook-static/assets/DisclosureGroup-BBYuBGIn.css +1 -0
- package/storybook-static/assets/{DisclosureGroup-COBTA8iF.js → DisclosureGroup-CXOF5bww.js} +1 -1
- package/storybook-static/assets/{DocsRenderer-JROSPFPF-DBKu16F9.js → DocsRenderer-JROSPFPF-CLOBXXVf.js} +1 -1
- package/storybook-static/assets/{DropZone-C8pMmwdl.js → DropZone-BUSFKNkC.js} +1 -1
- package/storybook-static/assets/{DropZone-BxSCEj48.js → DropZone-sMjEir0f.js} +1 -1
- package/storybook-static/assets/{DropZone.stories-BCAhhItK.js → DropZone.stories-BqZH37UD.js} +1 -1
- package/storybook-static/assets/{DropdownMenu-Bi3Tiwls.js → DropdownMenu-bAQ5wKRG.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel-CBwWx_Nv.js → ExpandableActionPanel-aHZGT5B4.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel.stories-BkYsUqoo.js → ExpandableActionPanel.stories-chZL1EHm.js} +1 -1
- package/storybook-static/assets/{Flex-CO947dLM.js → Flex-PrMA6Yym.js} +1 -1
- package/storybook-static/assets/{Flex.stories-DMUThbwO.js → Flex.stories-CCBIBnic.js} +1 -1
- package/storybook-static/assets/{FloatingPopover-BlMi_zjk.js → FloatingPopover-C3FcvRMt.js} +1 -1
- package/storybook-static/assets/{FormattedTableCell-DDNLMP5K.js → FormattedTableCell-Dtz4pIL3.js} +1 -1
- package/storybook-static/assets/{Grid-39TY8m4Z.js → Grid-DrDkoSUc.js} +1 -1
- package/storybook-static/assets/{Grid.stories-DYvrXiSG.js → Grid.stories-BYHTyDvo.js} +1 -1
- package/storybook-static/assets/{ImageCropper.stories-B9ltINOC.js → ImageCropper.stories-CUhEXFgU.js} +1 -1
- package/storybook-static/assets/{ImageRenderer-DA--Akcn.js → ImageRenderer-DJIigrqW.js} +1 -1
- package/storybook-static/assets/{ImageRenderer.stories-BVdd0zeh.js → ImageRenderer.stories-FS9uVX-x.js} +1 -1
- package/storybook-static/assets/{ImageView.stories-DIQCaBWQ.js → ImageView.stories-DLumKJF4.js} +1 -1
- package/storybook-static/assets/{ImageViewer.stories-CyYc6RrG.js → ImageViewer.stories-D5MFaKgj.js} +2 -2
- package/storybook-static/assets/{ImageViewerRuntime-eZU4pDw8.js → ImageViewerRuntime-BVRC2t7U.js} +1 -1
- package/storybook-static/assets/{Input-DvVsbr8K.js → Input-TNrA13az.js} +1 -1
- package/storybook-static/assets/{Input-VmS-QVKm.js → Input-skLAGDK6.js} +1 -1
- package/storybook-static/assets/{Input.stories-mATd9a0c.js → Input.stories-kdWp9-vA.js} +1 -1
- package/storybook-static/assets/{InputDateTime-BSnv1V99.js → InputDateTime-CvtehdH_.js} +1 -1
- package/storybook-static/assets/{InputDateTime.stories-BHseZWJW.js → InputDateTime.stories-D-VZboXS.js} +1 -1
- package/storybook-static/assets/{InputFile-Du6kJw8h.js → InputFile-D0kivEqF.js} +1 -1
- package/storybook-static/assets/{InputFile-YpStVIKr.js → InputFile-yeMXHX2g.js} +1 -1
- package/storybook-static/assets/{InputFile.stories-B9bGCSU3.js → InputFile.stories-DVIMOJFA.js} +1 -1
- package/storybook-static/assets/{InputFiles-BNhs2jEI.js → InputFiles-D9QDOmYY.js} +1 -1
- package/storybook-static/assets/{InputFiles-PUk0s7uQ.js → InputFiles-WM3NWy8f.js} +1 -1
- package/storybook-static/assets/{InputFiles.stories-CxVfsYaA.js → InputFiles.stories-Wnoxpg4C.js} +1 -1
- package/storybook-static/assets/{InputFilesList-_rwKzQPQ.js → InputFilesList-CwgPtddv.js} +1 -1
- package/storybook-static/assets/{InputImage-XAl4ina5.js → InputImage-C1ZemGke.js} +1 -1
- package/storybook-static/assets/{InputImage-Trwkv0rb.js → InputImage-CPbXR06w.js} +1 -1
- package/storybook-static/assets/{InputImage.stories-Dddz-oRL.js → InputImage.stories-DmyG1SBq.js} +1 -1
- package/storybook-static/assets/{InteractiveComponents.stories-BZZTxt_C.js → InteractiveComponents.stories-OjaPrjbC.js} +1 -1
- package/storybook-static/assets/{LayoutPicker-BzGJmYT0.js → LayoutPicker-BBcQR4eE.js} +1 -1
- package/storybook-static/assets/{LayoutPicker-z5o3xDMb.js → LayoutPicker-BM3JQW6-.js} +1 -1
- package/storybook-static/assets/{LayoutPicker.stories-Du2gCRWE.js → LayoutPicker.stories-DzOns37u.js} +1 -1
- package/storybook-static/assets/{Listbox-C4QRr_MP.js → Listbox-Db9xJM_x.js} +1 -1
- package/storybook-static/assets/{Listbox-DuZWJ8ZZ.js → Listbox-xBsSzB7c.js} +1 -1
- package/storybook-static/assets/{Listbox.stories-Y-8RgXM_.js → Listbox.stories-B95lW5nW.js} +1 -1
- package/storybook-static/assets/{Modal-D9Zfvpww.js → Modal-B5mZhN_w.js} +1 -1
- package/storybook-static/assets/{Modal.stories-BnFP5Zrr.js → Modal.stories-DXQpo-2P.js} +1 -1
- package/storybook-static/assets/{ModalManagerProvider-Duey-HBY.js → ModalManagerProvider-CygTKozo.js} +1 -1
- package/storybook-static/assets/{MultiSelect-BeQ2iAxN.js → MultiSelect-BZKxCQ9J.js} +1 -1
- package/storybook-static/assets/{MultiSelect-BhMW5jH5.js → MultiSelect-C9bI4WfW.js} +1 -1
- package/storybook-static/assets/{MultiSelect.stories-Cayi9A_V.js → MultiSelect.stories-DhF6adqK.js} +1 -1
- package/storybook-static/assets/{NoData-CeHT8LTg.js → NoData-DIx6Xhy8.js} +1 -1
- package/storybook-static/assets/{NotificationsHost-_4XSnTo2.js → NotificationsHost-BxuA7Hrr.js} +1 -1
- package/storybook-static/assets/{NotificationsHost.stories-C-2ucbpq.js → NotificationsHost.stories-B65ogFlZ.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect-DILkVUzB.js → ODataMultiSelect-BOwgJ_-D.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect.stories-odWzDl6l.js → ODataMultiSelect.stories-Dvzj-vEu.js} +1 -1
- package/storybook-static/assets/{ODataSelect-BUAhfvPU.js → ODataSelect-D-3qFFy5.js} +1 -1
- package/storybook-static/assets/{ODataSelect.stories-PpNPmCz2.js → ODataSelect.stories-DxS4IELn.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect-BH7nIL9w.js → ODataTreeMultiSelect-DAr606Rn.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect.stories-C4zOROB1.js → ODataTreeMultiSelect.stories-Cjspkpmy.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect-CkJq3807.js → ODataTreeSelect-C0EZg1pY.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect.stories-BcbRGbmJ.js → ODataTreeSelect.stories-Bm6lHlR1.js} +1 -1
- package/storybook-static/assets/{OneStepScroller-BGIjsObI.js → OneStepScroller-BBvYn_e2.js} +1 -1
- package/storybook-static/assets/{PeriodSelect-DvAMLr40.js → PeriodSelect-BWrhMQt1.js} +1 -1
- package/storybook-static/assets/{PeriodSelect-BcG6A50F.js → PeriodSelect-Dxy-Udif.js} +1 -1
- package/storybook-static/assets/{PeriodSelect.stories-DmvK-wEi.js → PeriodSelect.stories-6voDDnhV.js} +1 -1
- package/storybook-static/assets/{PickerSelectionToolbar-Cas1QrbP.js → PickerSelectionToolbar-Bgz5a4gK.js} +1 -1
- package/storybook-static/assets/{PickerTriggerActions-DUcQfADH.js → PickerTriggerActions-DfajdlA-.js} +1 -1
- package/storybook-static/assets/{Popover-mm3LuMCX.js → Popover-BaNd4KC-.js} +1 -1
- package/storybook-static/assets/{Popover-Dl9KlVW0.js → Popover-CL1-w2Po.js} +1 -1
- package/storybook-static/assets/{Popover.stories-BqlULHhR.js → Popover.stories-D3kquryU.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-Dp-RORYt.js → PresetRangeDateInput-BgCkUEAq.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-84a4mW00.js → PresetRangeDateInput-Kn0jZ58w.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput.stories-Bw3dSWVM.js → PresetRangeDateInput.stories-Dwr5XQZc.js} +1 -1
- package/storybook-static/assets/{PresetSelect-DbMc37dQ.js → PresetSelect-BB875dDE.js} +1 -1
- package/storybook-static/assets/{RadioButton-Ceuq5i6x.js → RadioButton-B02A58Qr.js} +1 -1
- package/storybook-static/assets/{RadioButton-DhaK8UUD.js → RadioButton-CKbmaXdk.js} +1 -1
- package/storybook-static/assets/{RadioButton.stories-S98_hDUl.js → RadioButton.stories-Dt9HjR8q.js} +1 -1
- package/storybook-static/assets/{RadioGroup-BqSOcKQI.js → RadioGroup-Cbuy7LfH.js} +1 -1
- package/storybook-static/assets/{RadioGroup-Di55rXi_.js → RadioGroup-D5sQH9R3.js} +1 -1
- package/storybook-static/assets/{RadioGroup.stories-7RFD3uHM.js → RadioGroup.stories-DSjK5djt.js} +1 -1
- package/storybook-static/assets/{Scrollable-B0p5mrx8.js → Scrollable-D3aXHtrY.js} +1 -1
- package/storybook-static/assets/{Select-CIqhX4mK.js → Select-BCAG7pr7.js} +1 -1
- package/storybook-static/assets/{Select-BS9Its_r.js → Select-BXAaQy9V.js} +1 -1
- package/storybook-static/assets/{Select.stories-DNhv8-zb.js → Select.stories-DN4dV7yi.js} +1 -1
- package/storybook-static/assets/{SelectOptionContent-DXq8ymaG.js → SelectOptionContent-B4SEPdOb.js} +1 -1
- package/storybook-static/assets/{SerializableSelect-Wq154MOD.js → SerializableSelect-ILpc54MV.js} +1 -1
- package/storybook-static/assets/{SerializableSelect.stories-5sc1J9RV.js → SerializableSelect.stories-39INaLuZ.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-D7sbOu36.js → SingleDateTimeInput-B4A_9baT.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-Bkv6gIle.js → SingleDateTimeInput-Wj_T1lBu.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput.stories-DWWk1ufW.js → SingleDateTimeInput.stories-ixznenUc.js} +1 -1
- package/storybook-static/assets/{Slider-BGsWuJAm.js → Slider-D_fu_5jT.js} +1 -1
- package/storybook-static/assets/{Slider-BxM1AhD9.js → Slider-DhcQ-HpF.js} +1 -1
- package/storybook-static/assets/{Slider.stories-VJI4Rnlr.js → Slider.stories-DJ6up3Xr.js} +1 -1
- package/storybook-static/assets/{SliderInput-D4y-O8R2.js → SliderInput-CF2Ze83S.js} +1 -1
- package/storybook-static/assets/{SliderInput-CzLa4eqn.js → SliderInput-Dzln6u1B.js} +1 -1
- package/storybook-static/assets/{SliderInput.stories-g0Kwo7dl.js → SliderInput.stories-BHMiGG3v.js} +1 -1
- package/storybook-static/assets/{Sortable-CgA1YBUW.js → Sortable-SND-zBFN.js} +1 -1
- package/storybook-static/assets/{Sortable.stories-x3gePcSZ.js → Sortable.stories-CygFptcG.js} +1 -1
- package/storybook-static/assets/{Splitter-BgFyt-RI.js → Splitter-ka4Y_Utp.js} +1 -1
- package/storybook-static/assets/{Splitter.stories-CkN8ukyN.js → Splitter.stories-DT_HUx9d.js} +1 -1
- package/storybook-static/assets/{StateSelect-DSuIDlz9.js → StateSelect-C_3pLhBP.js} +1 -1
- package/storybook-static/assets/{StateSelect-Ce4t44r8.js → StateSelect-aZvleWHV.js} +1 -1
- package/storybook-static/assets/{StateSelect.stories-BPomWgn7.js → StateSelect.stories-wAgivDC6.js} +1 -1
- package/storybook-static/assets/{StringToggle.stories-CnMi5EAT.js → StringToggle.stories-CTkeaRdq.js} +1 -1
- package/storybook-static/assets/{Switch-DDCJrhcQ.js → Switch-CndShiDg.js} +1 -1
- package/storybook-static/assets/{Switch-OWLmHmHZ.js → Switch-lkwmdlzy.js} +1 -1
- package/storybook-static/assets/{Switch.stories-BDu-Afks.js → Switch.stories-LeYJbZbp.js} +1 -1
- package/storybook-static/assets/{Table-DZg-HjgT.js → Table-CdEQzjrK.js} +1 -1
- package/storybook-static/assets/{Table.stories-C1tWXfqI.js → Table.stories-BupokYzH.js} +1 -1
- package/storybook-static/assets/{Tabs-DRfMQ8Jx.js → Tabs-BGMLmjPE.js} +1 -1
- package/storybook-static/assets/{Tabs.stories-Dgdc1lZD.js → Tabs.stories-BffAgcfh.js} +1 -1
- package/storybook-static/assets/{TabsBox-DljUVTsd.js → TabsBox-rDhSlrdo.js} +1 -1
- package/storybook-static/assets/{TagInput-BCS6WLcW.js → TagInput-DjNOYO1Z.js} +1 -1
- package/storybook-static/assets/{TagInput.stories-Dy5AVzAj.js → TagInput.stories-CDyr8BNh.js} +1 -1
- package/storybook-static/assets/{Text-C4TWqy0Q.js → Text-CqOk_yW2.js} +1 -1
- package/storybook-static/assets/{Textarea-5Gx2U0_d.js → Textarea-Bt1H7Gn6.js} +1 -1
- package/storybook-static/assets/{Textarea-BZrJEPN7.js → Textarea-HkRYNZSt.js} +1 -1
- package/storybook-static/assets/{Textarea.stories-BvdLNmb_.js → Textarea.stories-B1zVrf9T.js} +1 -1
- package/storybook-static/assets/{TimePanel-D3QC0eS8.js → TimePanel-BihIX0hh.js} +1 -1
- package/storybook-static/assets/{TimePanel.stories-BZOB234n.js → TimePanel.stories-Bu5T9YMk.js} +1 -1
- package/storybook-static/assets/{Toggle-DarFnpF4.js → Toggle-COxGcMq3.js} +1 -1
- package/storybook-static/assets/{Toggle-BpzUjB13.js → Toggle-zpuNtBpW.js} +1 -1
- package/storybook-static/assets/{Toggle.stories-DyPUelGH.js → Toggle.stories-Dq3RkU5L.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-DNjTWvVq.js → TreeMultiSelect-COx_tG1G.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-DqpIhAuh.js → TreeMultiSelect-CnB02Va9.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect.stories-Uc9jwEfE.js → TreeMultiSelect.stories-CN-P1qhr.js} +1 -1
- package/storybook-static/assets/{TreePickerBase-BRKipsrA.js → TreePickerBase-CkzGEdab.js} +1 -1
- package/storybook-static/assets/{TreeSelect-Bp1Zik9B.js → TreeSelect-CTIgz4OY.js} +1 -1
- package/storybook-static/assets/{TreeSelect-CrLx5V7M.js → TreeSelect-CjGiZrPi.js} +1 -1
- package/storybook-static/assets/{TreeSelect.stories-RlHKzmuz.js → TreeSelect.stories-eCmLnrwX.js} +1 -1
- package/storybook-static/assets/{TreeTable-DhQ6u1Pe.js → TreeTable-DbO9bLwE.js} +1 -1
- package/storybook-static/assets/{TreeTable.stories-CAs-UAM0.js → TreeTable.stories-CLyKRCRw.js} +1 -1
- package/storybook-static/assets/{async-B2DliTcn.js → async-AJXObkk8.js} +1 -1
- package/storybook-static/assets/{blocks-CGuhQMXa.js → blocks-S8USJ7mc.js} +3 -3
- package/storybook-static/assets/{browserAndReact-C-OypV8y.js → browserAndReact-ByX1-6Mk.js} +1 -1
- package/storybook-static/assets/{check-Bw0XnpCV.js → check-Cceu88S-.js} +1 -1
- package/storybook-static/assets/{chevron-down-CfrX73tO.js → chevron-down-Bv0OkOLP.js} +1 -1
- package/storybook-static/assets/{chevron-left-DpeXiQaY.js → chevron-left-Bez2FiAQ.js} +1 -1
- package/storybook-static/assets/{chevron-right-BFJM6q51.js → chevron-right-RK8P2lCp.js} +1 -1
- package/storybook-static/assets/{chunk-W22LQPXL-Bt3_v9HM.js → chunk-W22LQPXL-DMsqimWd.js} +1 -1
- package/storybook-static/assets/{circle-alert-y52RJRUz.js → circle-alert-Z1a6ryvr.js} +1 -1
- package/storybook-static/assets/{circle-check-D-VabHaY.js → circle-check-CGxX-ikz.js} +1 -1
- package/storybook-static/assets/{components-I69uHPsH.js → components-DigsnlCp.js} +3 -3
- package/storybook-static/assets/{contextMenu-DfPU9cBt.js → contextMenu-BizVJ2kJ.js} +1 -1
- package/storybook-static/assets/{defaultRenderers-Bkg6olnb.js → defaultRenderers-CYvY-_uC.js} +1 -1
- package/storybook-static/assets/{download-CtH__7oe.js → download-BNW2gFpz.js} +1 -1
- package/storybook-static/assets/{filesAndExcel-BkVmFKKv.js → filesAndExcel-C3cUVT6g.js} +1 -1
- package/storybook-static/assets/{floating-ui.react-CxI0EsOT.js → floating-ui.react-CRcGGmKm.js} +1 -1
- package/storybook-static/assets/{formatters-D37vYORi.js → formatters-CF-jRopB.js} +1 -1
- package/storybook-static/assets/{formatters-runtime-D3X8TbPs.js → formatters-runtime-BptIp4jD.js} +1 -1
- package/storybook-static/assets/{foundationLib-DozGtKQB.js → foundationLib-CrwiKDTD.js} +1 -1
- package/storybook-static/assets/{hooks-Df19Nsi2.js → hooks-DOz4JYQm.js} +1 -1
- package/storybook-static/assets/{iframe-BQrLcg06.js → iframe-DaJPX7QV.js} +3 -3
- package/storybook-static/assets/iframe-Lygnuvz9.js +1 -0
- package/storybook-static/assets/{iframe-D7iJQEr5.css → iframe-wwpu8YXD.css} +1 -1
- package/storybook-static/assets/{info-BeGxRQvx.js → info-D9yLM4SV.js} +1 -1
- package/storybook-static/assets/{odata-BDmwSB0b.js → odata-CJRvocvl.js} +1 -1
- package/storybook-static/assets/{odataAndTables-CdiAn8YJ.js → odataAndTables-BacaIRQo.js} +1 -1
- package/storybook-static/assets/{odataFetchFn-B4sQvu6J.js → odataFetchFn-BN6G0MmO.js} +1 -1
- package/storybook-static/assets/{odataStoryFixtures-DJ_pv2Rq.js → odataStoryFixtures-CRxia982.js} +1 -1
- package/storybook-static/assets/{persisted-Cryvs_Te.js → persisted-8yiU0lN6.js} +1 -1
- package/storybook-static/assets/{pureUtilities-YEJFcbIT.js → pureUtilities-BWFw6hv9.js} +1 -1
- package/storybook-static/assets/{react-D5HGS0WP.js → react-B7DFunao.js} +1 -1
- package/storybook-static/assets/{refresh-cw-BtYtkXmi.js → refresh-cw-Bqxte4Jl.js} +1 -1
- package/storybook-static/assets/{runtimeAndState-Bc0p1zM-.js → runtimeAndState-B8ahqJFX.js} +1 -1
- package/storybook-static/assets/{settings-2-BTaug5uU.js → settings-2-BSQQ4rDm.js} +1 -1
- package/storybook-static/assets/{sortable-CV5Mg3jp.js → sortable-Cl1OSO7j.js} +1 -1
- package/storybook-static/assets/{syntaxhighlighter-T5IQBZDB-CyWSuE24.js → syntaxhighlighter-T5IQBZDB-D27QWwvd.js} +1 -1
- package/storybook-static/assets/{trash-2-Bcxa3Ezm.js → trash-2-C7n9T7wV.js} +1 -1
- package/storybook-static/assets/{triangle-alert-Cy0xZ6CK.js → triangle-alert-DTEFPKA6.js} +1 -1
- package/storybook-static/assets/{ui-CD51AD-_.css → ui-BHYElZUt.css} +1 -1
- package/storybook-static/assets/{uiClasses-BS9RPcty.js → uiClasses-DS_Gz-HQ.js} +1 -1
- package/storybook-static/assets/{useODataSelectBase-rnvEwUEf.js → useODataSelectBase-C7akxSM3.js} +1 -1
- package/storybook-static/assets/{useODataTreeData-DFL7fNez.js → useODataTreeData-C_E7UDtN.js} +1 -1
- package/storybook-static/assets/{usePickerQuery-BpbIXzlf.js → usePickerQuery-D01d0TZO.js} +1 -1
- package/storybook-static/assets/{usePickerTriggerController-CLjquchr.js → usePickerTriggerController-B-AurKCR.js} +1 -1
- package/storybook-static/assets/{x-CTu2RxD8.js → x-BUr2A9Su.js} +1 -1
- package/storybook-static/iframe.html +3 -3
- package/storybook-static/project.json +1 -1
- package/storybook-static/assets/DisclosureGroup-CNoH2D1R.css +0 -1
- package/storybook-static/assets/iframe-lJqBcWzL.js +0 -1
- /package/storybook-static/assets/{ui.module-kfCm3RIG.js → ui.module-B48csOVs.js} +0 -0
package/storybook-static/assets/{ODataSelect.stories-PpNPmCz2.js → ODataSelect.stories-DxS4IELn.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{n as r}from"./iframe-
|
|
1
|
+
import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{n as r}from"./iframe-DaJPX7QV.js";import{r as i,s as a}from"./odata-CJRvocvl.js";import{n as o,t as s}from"./SelectOptionContent-B4SEPdOb.js";import{c,s as l}from"./Input-TNrA13az.js";import{n as u,t as d}from"./Select-BXAaQy9V.js";import{r as f,t as p}from"./useODataSelectBase-C7akxSM3.js";import{a as m,i as h,l as g,n as _,o as v,r as y,s as b,t as x}from"./odataStoryFixtures-CRxia982.js";function S({odata:e,segment:t,model:n,value:r,dependencies:i,onChange:a}){let o=f({odata:e,segment:t,model:n,value:r?[r]:[],dependencies:i}),s=o.selectedItems[0],c=(0,C.useMemo)(()=>s?[s,...o.filteredItems]:o.filteredItems,[o.filteredItems,s]),l=e=>{a(e?.[o.selectionKey])};return{...o,selectedItem:s,options:c,handleChange:l}}var C;function w(){return(w=e((()=>{C=n(),p()})))()}function T(e,t,n){return e?t||Object.keys(e).find(e=>e!==n)||n:t||n}var E,D;function O(){return(O=e((()=>{n(),a(),c(),w(),u(),o(),E=r(),D=({odata:e,segment:t,model:n,size:r,label:a,description:o,disabled:c,value:u,dependencies:f,onChange:p,clearable:m})=>{let h=S({odata:e,segment:t,model:i(n),value:u,dependencies:f,onChange:p});if(h.isLoading)return(0,E.jsx)(l,{size:r,label:a,description:o});let g=t.hideCode??e.hideCode,_=T(h.selectedItem??h.options[0],h.textKey,h.codeKey);return(0,E.jsx)(d,{size:r,label:a,description:o,options:h.options,value:h.selectedItem,onChange:h.handleChange,getOptionKey:e=>e[h.codeKey],getOptionLabel:e=>e[_],getOptionCode:g?void 0:e=>e[h.codeKey],getOptionAriaLabel:e=>g||e[_]===e[h.codeKey]?String(e[_]):`${e[_]} ${e[h.codeKey]}`,renderValue:e=>(0,E.jsx)(s,{label:e[_],code:g?void 0:e[h.codeKey]}),renderOption:e=>(0,E.jsx)(s,{label:e[_],code:g?void 0:e[h.codeKey],highlight:h.debouncedQuery}),searchable:!0,query:h.query,onQuery:h.setQuery,defaultFilter:!1,disabled:c||h.isLoading,placeholder:h.placeholder,loadingState:`Загрузка...`,errorState:h.isError?`Ошибка загрузки`:void 0,emptyState:!h.isLoading&&!h.isError?`Нет данных`:void 0,clearable:m})},D.__docgenInfo={description:``,methods:[],displayName:`ODataSelect`,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:``},clearable:{required:!1,tsType:{name:`boolean`},description:``}}}})))()}var k=t({BasicDivision:()=>F,CollectionError:()=>H,HideCode:()=>I,LinkedFilters:()=>z,LoadingState:()=>B,MetadataError:()=>V,SelectTextValue:()=>L,StaticDependency:()=>R,__namedExportsOrder:()=>U,default:()=>P});function A({initialValue:e,odata:t=_,model:n=x,segment:r=y,dependencies:i,label:a=`OData Select`,description:o}){let[s,c]=(0,M.useState)(e);return(0,N.jsxs)(`div`,{style:{display:`grid`,gap:12,maxWidth:520},children:[(0,N.jsx)(D,{label:a,description:o,odata:t,model:n,segment:r,value:s,dependencies:i,onChange:c}),(0,N.jsxs)(`div`,{style:{fontSize:`var(--font-size-sm)`,color:`var(--content-1)`},children:[`Текущее значение: `,s||`пусто`]})]})}function j(){let[e,t]=(0,M.useState)(b.region),[n,r]=(0,M.useState)(b.branch),[i,a]=(0,M.useState)(b.team),[o,s]=(0,M.useState)(b.owner),c=e?{REGION:[e]}:void 0,l=e&&n?{REGION:[e],BRANCH:[n]}:c,u=e&&n&&i?{REGION:[e],BRANCH:[n],TEAM:[i]}:l;return(0,N.jsxs)(`div`,{style:{display:`grid`,gap:16,maxWidth:720},children:[(0,N.jsx)(D,{label:`Регион`,description:`Первый фильтр в цепочке. Меняет доступный набор подразделений.`,odata:_,model:{...x,codeKey:`REGION`},segment:{placeholder:`Регион`},value:e,onChange:e=>{t(e),r(void 0),a(void 0),s(void 0)}}),(0,N.jsx)(D,{label:`Подразделение`,description:`Второй фильтр зависит от выбранного региона.`,odata:_,model:{...x,codeKey:`BRANCH`},segment:{placeholder:`Подразделение`},dependencies:c,value:n,onChange:e=>{r(e),a(void 0),s(void 0)}}),(0,N.jsx)(D,{label:`Команда`,description:`Третий фильтр зависит от сочетания региона и подразделения.`,odata:_,model:{...x,codeKey:`TEAM`},segment:{placeholder:`Команда`},dependencies:l,value:i,onChange:e=>{a(e),s(void 0)}}),(0,N.jsx)(D,{label:`Ответственный`,description:`Последний фильтр показывает leaf-узлы для выбранного пути.`,odata:_,model:{...x,codeKey:`OWNER`},segment:{placeholder:`Ответственный`},dependencies:u,value:o,onChange:s}),(0,N.jsxs)(`div`,{style:{display:`grid`,gap:4,fontSize:`var(--font-size-sm)`,color:`var(--content-1)`},children:[(0,N.jsxs)(`div`,{children:[`Регион: `,e||`пусто`]}),(0,N.jsxs)(`div`,{children:[`Подразделение: `,n||`пусто`]}),(0,N.jsxs)(`div`,{children:[`Команда: `,i||`пусто`]}),(0,N.jsxs)(`div`,{children:[`Ответственный: `,o||`пусто`]})]})]})}var M,N,P,F,I,L,R,z,B,V,H,U;function W(){return(W=e((()=>{M=n(),O(),h(),N=r(),P={title:`Shared/UI/ODataSelect`,component:D,decorators:[g],beforeEach:m,parameters:{atomicCanvas:!0,layout:`padded`,odataMockMode:`success`},args:{label:`Регион`,description:`Пример OData Select на основе конфигурации ui control.`,odata:_,model:x,segment:y,value:void 0,onChange:()=>{}},argTypes:{onChange:{control:!1},value:{control:!1},dependencies:{control:!1}}},F={name:`Базовый регион`,render:()=>(0,N.jsx)(A,{label:`Регион`,description:`Базовая настройка single-select для выбора кода REGION.`,model:{...x,codeKey:`REGION`},segment:{placeholder:`Регион`},initialValue:b.region})},I={name:`Скрытый код`,render:()=>(0,N.jsx)(A,{label:`Подразделение`,description:`Код скрыт и в выпадающем списке, и в выбранном значении.`,model:{...x,codeKey:`BRANCH`},segment:{placeholder:`Подразделение`,hideCode:!0},initialValue:b.branch})},L={name:`Выбор текста вместо кода`,render:()=>(0,N.jsx)(A,{label:`Регион по тексту`,description:`Снаружи хранится текстовое значение, а не код.`,model:{...x,codeKey:`REGION`},segment:{placeholder:`Регион`,selectText:!0},initialValue:b.regionText})},R={name:`Зависимость от региона`,render:()=>(0,N.jsx)(A,{label:`Подразделение c зависимостью`,description:`Фильтрация подразделений по уже выбранному региону через props.dependencies.`,model:{...x,codeKey:`BRANCH`},segment:{placeholder:`Подразделение`},dependencies:{REGION:[b.region]},initialValue:b.branch})},z={name:`Связанная цепочка фильтров`,render:()=>(0,N.jsx)(j,{})},B={name:`Состояние загрузки`,parameters:{odataMockMode:`loading`},render:()=>(0,N.jsx)(A,{odata:v.loading,label:`Команда`,description:`Mock с задержкой ответа, чтобы проверить loading-state.`,model:{...x,codeKey:`TEAM`},segment:{placeholder:`Команда`}})},V={name:`Ошибка metadata`,parameters:{odataMockMode:`metadataError`},render:()=>(0,N.jsx)(A,{odata:v.metadataError,label:`Регион`,description:`Сервис возвращает ошибку metadata.`,model:{...x,codeKey:`REGION`},segment:{placeholder:`Регион`}})},H={name:`Деградация при ошибке коллекции`,parameters:{odataMockMode:`collectionError`},render:()=>(0,N.jsx)(A,{odata:v.collectionError,label:`Ответственный`,description:`Transport возвращает 500, а текущий API-контракт безопасно показывает пустой список.`,model:{...x,codeKey:`OWNER`},segment:{placeholder:`Ответственный`}})},F.parameters={...F.parameters,docs:{...F.parameters?.docs,source:{originalSource:`{
|
|
2
2
|
name: "Базовый регион",
|
|
3
3
|
render: () => <StatefulODataSelect label="Регион" description="Базовая настройка single-select для выбора кода REGION." model={{
|
|
4
4
|
...baseModel,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-DaJPX7QV.js";import{i as n,r}from"./react-qN2cStNd.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-S8USJ7mc.js";import{a as p,c as m,i as h,l as g,n as _,o as v,r as y,s as b,t as x}from"./ODataTreeMultiSelect.stories-Cjspkpmy.js";function S(e){let t={code:`code`,h2:`h2`,p:`p`,...n(),...e.components};return(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(s,{of:b,parameters:{docs:{toc:!0}}}),`
|
|
2
2
|
`,(0,w.jsx)(u,{children:`ODataTreeMultiSelect`}),`
|
|
3
3
|
`,(0,w.jsx)(o,{children:`Мультивыбор по одной OData-цепочке в виде дерева`}),`
|
|
4
4
|
`,(0,w.jsxs)(t.p,{children:[(0,w.jsx)(t.code,{children:`ODataTreeMultiSelect`}),` строит дерево из одной OData-цепочки и отдает наружу канонизированный выбор в формате `,(0,w.jsx)(t.code,{children:`Record<string, string[]>`}),`.`]}),`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{n as r}from"./iframe-
|
|
1
|
+
import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{n as r}from"./iframe-DaJPX7QV.js";import{n as i,t as a}from"./useODataTreeData-C_E7UDtN.js";import{n as o,t as s}from"./TreeMultiSelect-CnB02Va9.js";import{a as c,c as l,i as u,l as d,n as f,o as p,s as m}from"./odataStoryFixtures-CRxia982.js";function h({label:e,description:t,disabled:n,size:r,placeholder:a,query:o,defaultQuery:c,onQuery:l,optionsLayout:u,value:d,onChange:f,odata:p,segments:m,model:h,defaultExpandedCodeKeys:_}){let v=i({odata:p,segments:m,model:h});return(0,g.jsx)(s,{label:e,description:t,disabled:n||v.isLoading,size:r,placeholder:a??v.placeholder,nodes:v.nodes,value:d,onChange:f,query:o,defaultQuery:c,onQuery:l,optionsLayout:u,defaultExpandedCodeKeys:_,isLoading:v.isLoading,error:v.isError?`Ошибка загрузки`:void 0})}var g;function _(){return(_=e((()=>{a(),o(),g=r(),h.__docgenInfo={description:``,methods:[],displayName:`ODataTreeMultiSelect`,props:{model:{required:!1,tsType:{name:`ODataDependentBaseProps["model"]`,raw:`ODataDependentBaseProps["model"]`},description:``},placeholder:{required:!1,tsType:{name:`string`},description:``},query:{required:!1,tsType:{name:`string`},description:``},defaultQuery:{required:!1,tsType:{name:`string`},description:``},onQuery:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(value: string) => void`,signature:{arguments:[{type:{name:`string`},name:`value`}],return:{name:`void`}}},description:``},optionsLayout:{required:!1,tsType:{name:`union`,raw:`"tree" | "columns"`,elements:[{name:`literal`,value:`"tree"`},{name:`literal`,value:`"columns"`}]},description:`Переключает способ показа загруженного OData-дерева, не меняя формат value и запросов.`},defaultExpandedCodeKeys:{required:!1,tsType:{name:`unknown`},description:"Ключи OData-уровней, раскрываемых после появления загруженных узлов.\nВ режиме `columns` дерево по-прежнему отображается полностью раскрытым."}},composes:[`Omit`]}})))()}var v=t({BalancedColumns:()=>D,Basic:()=>w,ErrorState:()=>A,LargeRootGroupsColumns:()=>O,LoadingState:()=>k,MixedSelection:()=>E,ParentCompression:()=>T,__namedExportsOrder:()=>j,default:()=>C});function y({initialValue:e={},odata:t=f,segments:n=l,label:r=`ODataTreeMultiSelect`,description:i,optionsLayout:a=`tree`,defaultExpandedCodeKeys:o}){let[s,c]=(0,b.useState)(e);return(0,x.jsxs)(`div`,{style:{display:`grid`,gap:12,maxWidth:520},children:[(0,x.jsx)(h,{label:r,description:i,odata:t,segments:n,value:s,onChange:c,optionsLayout:a,defaultExpandedCodeKeys:o}),(0,x.jsxs)(`div`,{style:{fontSize:`var(--font-size-sm)`,color:`var(--content-1)`},children:[`Текущее значение: `,JSON.stringify(s)]})]})}var b,x,S,C,w,T,E,D,O,k,A,j;function M(){return(M=e((()=>{b=n(),u(),_(),x=r(),S={REGION:l.REGION,OWNER:l.OWNER},C={title:`Shared/UI/ODataTreeMultiSelect`,component:h,decorators:[d],beforeEach:c,parameters:{atomicCanvas:!0,layout:`padded`,odataMockMode:`success`},args:{label:`OData дерево`,description:`Multi-select поверх одной OData-цепочки.`,odata:f,segments:l,value:{},onChange:()=>{}},argTypes:{segments:{control:!1},value:{control:!1},onChange:{control:!1}}},w={render:()=>(0,x.jsx)(y,{initialValue:{OWNER:[m.owner]}})},T={render:()=>(0,x.jsx)(y,{label:`Компрессия subtree`,description:`Пример, когда наружу уходит узел верхнего уровня вместо полного списка потомков.`,initialValue:{REGION:[m.region]}})},E={render:()=>(0,x.jsx)(y,{label:`Смешанный выбор`,description:`Смешанный frontier по соседним уровням в OData-дереве.`,initialValue:{BRANCH:[m.branch],OWNER:[m.ownerAlt]}})},D={render:()=>(0,x.jsx)(y,{label:`OData tree в столбцах`,description:`Режим columns открывает все уровни независимо от пустой настройки defaultExpandedCodeKeys.`,optionsLayout:`columns`,defaultExpandedCodeKeys:[],initialValue:{BRANCH:[m.branch]}})},O={render:()=>(0,x.jsx)(y,{label:`Крупные OData-группы`,description:`Сокращённая цепочка REGION → OWNER создаёт несколько root-групп для проверки порога из трёх строк.`,optionsLayout:`columns`,segments:S})},k={parameters:{odataMockMode:`loading`},render:()=>(0,x.jsx)(y,{odata:p.loading,description:`Сценарий загрузки дерева.`})},A={parameters:{odataMockMode:`metadataError`},render:()=>(0,x.jsx)(y,{odata:p.metadataError,description:`Сценарий ошибки metadata дерева.`})},w.parameters={...w.parameters,docs:{...w.parameters?.docs,source:{originalSource:`{
|
|
2
2
|
render: () => <StatefulODataTreeMultiSelect initialValue={{
|
|
3
3
|
OWNER: [storyValues.owner]
|
|
4
4
|
}} />
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-DaJPX7QV.js";import{i as n,r}from"./react-qN2cStNd.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-S8USJ7mc.js";import{a as p,i as m,n as h,o as g,r as _,s as v,t as y}from"./ODataTreeSelect.stories-Bm6lHlR1.js";function b(e){let t={code:`code`,h2:`h2`,p:`p`,...n(),...e.components};return(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(s,{of:m,parameters:{docs:{toc:!0}}}),`
|
|
2
2
|
`,(0,S.jsx)(u,{children:`ODataTreeSelect`}),`
|
|
3
3
|
`,(0,S.jsx)(o,{children:`Single-select по одной OData-цепочке в виде дерева`}),`
|
|
4
4
|
`,(0,S.jsxs)(t.p,{children:[(0,S.jsx)(t.code,{children:`ODataTreeSelect`}),` загружает одну OData-коллекцию, строит дерево по цепочке codeKey и позволяет выбрать любой узел.`]}),`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{n as r}from"./iframe-
|
|
1
|
+
import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{n as r}from"./iframe-DaJPX7QV.js";import{n as i,t as a}from"./useODataTreeData-C_E7UDtN.js";import{n as o,t as s}from"./TreeSelect-CjGiZrPi.js";import{a as c,c as l,i as u,l as d,n as f,o as p,s as m}from"./odataStoryFixtures-CRxia982.js";function h({label:e,description:t,disabled:n,size:r,placeholder:a,query:o,defaultQuery:c,onQuery:l,value:u,onChange:d,odata:f,segments:p,model:m,clearable:h,defaultExpandedCodeKeys:_}){let v=i({odata:f,segments:p,model:m});return(0,g.jsx)(s,{label:e,description:t,disabled:n||v.isLoading,size:r,placeholder:a??v.placeholder,nodes:v.nodes,value:u,onChange:d,query:o,defaultQuery:c,onQuery:l,defaultExpandedCodeKeys:_,isLoading:v.isLoading,error:v.isError?`Ошибка загрузки`:void 0,clearable:h})}var g;function _(){return(_=e((()=>{a(),o(),g=r(),h.__docgenInfo={description:``,methods:[],displayName:`ODataTreeSelect`,props:{model:{required:!1,tsType:{name:`ODataDependentBaseProps["model"]`,raw:`ODataDependentBaseProps["model"]`},description:``},placeholder:{required:!1,tsType:{name:`string`},description:``},query:{required:!1,tsType:{name:`string`},description:``},defaultQuery:{required:!1,tsType:{name:`string`},description:``},onQuery:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(value: string) => void`,signature:{arguments:[{type:{name:`string`},name:`value`}],return:{name:`void`}}},description:``},clearable:{required:!1,tsType:{name:`boolean`},description:``},defaultExpandedCodeKeys:{required:!1,tsType:{name:`unknown`},description:`Ключи OData-уровней, раскрываемых после появления загруженных узлов.
|
|
2
2
|
Настройка влияет только на представление и не изменяет OData-запросы.`}},composes:[`Omit`]}})))()}var v=t({Basic:()=>C,ErrorState:()=>D,LoadingState:()=>E,OnlySecondLevelExpanded:()=>T,SelectParent:()=>w,__namedExportsOrder:()=>O,default:()=>S});function y({initialValue:e,odata:t=f,segments:n=l,label:r=`ODataTreeSelect`,description:i,defaultExpandedCodeKeys:a}){let[o,s]=(0,b.useState)(e);return(0,x.jsxs)(`div`,{style:{display:`grid`,gap:12,maxWidth:520},children:[(0,x.jsx)(h,{label:r,description:i,odata:t,segments:n,value:o,onChange:s,defaultExpandedCodeKeys:a}),(0,x.jsxs)(`div`,{style:{fontSize:`var(--font-size-sm)`,color:`var(--content-1)`},children:[`Текущее значение: `,o?`${o.codeKey}=${o.value}`:`пусто`]})]})}var b,x,S,C,w,T,E,D,O;function k(){return(k=e((()=>{b=n(),u(),_(),x=r(),S={title:`Shared/UI/ODataTreeSelect`,component:h,decorators:[d],beforeEach:c,parameters:{atomicCanvas:!0,layout:`padded`,odataMockMode:`success`},args:{label:`OData дерево`,description:`Single-select поверх одной OData-цепочки.`,odata:f,segments:l,value:void 0,onChange:()=>{}},argTypes:{segments:{control:!1},value:{control:!1},onChange:{control:!1}}},C={render:()=>(0,x.jsx)(y,{initialValue:{codeKey:`OWNER`,value:m.owner}})},w={render:()=>(0,x.jsx)(y,{label:`Выбор родителя`,description:`Проверка выбора узла верхнего уровня из OData-дерева.`,initialValue:{codeKey:`REGION`,value:m.region}})},T={render:()=>(0,x.jsx)(y,{label:`Раскрывается только второй уровень`,description:`REGION остаётся закрытым. После его ручного открытия узлы BRANCH уже раскрыты по умолчанию.`,defaultExpandedCodeKeys:[`BRANCH`]})},E={parameters:{odataMockMode:`loading`},render:()=>(0,x.jsx)(y,{odata:p.loading,description:`Сценарий загрузки дерева.`})},D={parameters:{odataMockMode:`metadataError`},render:()=>(0,x.jsx)(y,{odata:p.metadataError,description:`Сценарий ошибки metadata дерева.`})},C.parameters={...C.parameters,docs:{...C.parameters?.docs,source:{originalSource:`{
|
|
3
3
|
render: () => <StatefulODataTreeSelect initialValue={{
|
|
4
4
|
codeKey: "OWNER",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e,o as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{n as r,t as i}from"./chevron-left-
|
|
1
|
+
import{n as e,o as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{n as r,t as i}from"./chevron-left-Bez2FiAQ.js";import{n as a,t as o}from"./chevron-right-RK8P2lCp.js";import{n as s}from"./iframe-DaJPX7QV.js";import{a as c,i as l}from"./utils-DUM89eIj.js";var u,d,f,p,m;function h(){return(h=e((()=>{u=`_7xUQBN`,d=`AonLqg`,f=`j-5yFn`,p=`pOIq63`,m={oneStepScroller:u,ossViewport:d,ossScroller:f,ossButton:p}})))()}function g(e){return Math.max(0,e.scrollWidth-e.clientWidth)}var _,v,y,b;function x(){return(x=e((()=>{_=t(n(),1),l(),r(),a(),h(),v=s(),y=1,b=({children:e,className:t,itemSelector:n,scrollPadding:r=6,smooth:a=!0})=>{let s=(0,_.useRef)(null),l=(0,_.useRef)(null),[u,d]=(0,_.useState)(!1),[f,p]=(0,_.useState)(!1),h=(0,_.useCallback)(()=>{let e=s.current;return e?n?Array.from(e.querySelectorAll(n)):Array.from(e.children).filter(e=>e instanceof HTMLElement):[]},[n]),b=(0,_.useCallback)(e=>{let t=s.current;if(!t)return null;if(n){let r=e.closest(n);return r&&t.contains(r)?r:null}let r=e;for(;r&&r.parentElement&&r.parentElement!==t;)r=r.parentElement;return r&&r.parentElement===t?r:null},[n]),x=(0,_.useCallback)(()=>{let e=s.current;if(!e){d(!1),p(!1);return}let t=Math.max(0,e.scrollWidth-e.clientWidth),n=Math.max(0,Math.min(e.scrollLeft,t)),r=n>y,i=n<t-y;d(e=>e===r?e:r),p(e=>e===i?e:i)},[]),S=(0,_.useCallback)(()=>{l.current===null&&(l.current=requestAnimationFrame(()=>{l.current=null,x()}))},[x]),C=(0,_.useCallback)(e=>{let t=s.current;if(!t)return;let n=h()[0];if(!n)return;let r=n.getBoundingClientRect().width;if(!r)return;let i=Math.round(e*r),o=Math.max(0,t.scrollWidth-t.clientWidth),c=Math.max(0,Math.min(t.scrollLeft+i,o));t.scrollTo({left:c,behavior:a?`smooth`:`auto`})},[h,a]),w=(0,_.useCallback)(e=>{let t=s.current;if(!t)return;let n=t.getBoundingClientRect(),i=e.getBoundingClientRect(),o=i.left-n.left+t.scrollLeft,c=o+i.width,l=t.scrollLeft,u=t.scrollLeft+t.clientWidth;if(o>=l+y&&c<=u-y)return;let d=t.scrollLeft;o<l?d=Math.max(0,o-r):c>u&&(d=Math.min(g(t),c-t.clientWidth+r)),t.scrollTo({left:Math.round(d),behavior:a?`smooth`:`auto`})},[r,a]);(0,_.useEffect)(()=>{let e=s.current;if(!e)return;let t=e=>{let t=e.target;if(!(t instanceof HTMLElement))return;let n=b(t);n&&w(n)};return e.addEventListener(`focusin`,t),()=>e.removeEventListener(`focusin`,t)},[w,b]),(0,_.useEffect)(()=>{let e=s.current;if(!e)return;let t=()=>S();e.addEventListener(`scroll`,t,{passive:!0});let n=null;typeof ResizeObserver<`u`&&(n=new ResizeObserver(S),n.observe(e));let r=null;return typeof MutationObserver<`u`&&(r=new MutationObserver(S),r.observe(e,{childList:!0,subtree:!1})),S(),()=>{e.removeEventListener(`scroll`,t),n?.disconnect(),r?.disconnect(),l.current!==null&&(cancelAnimationFrame(l.current),l.current=null)}},[S]),(0,_.useEffect)(()=>{S()},[e,S]);let T=()=>C(-1),E=()=>C(1),D=e=>{e.key===`ArrowLeft`?(e.preventDefault(),T()):e.key===`ArrowRight`&&(e.preventDefault(),E())},O=u||f;return(0,v.jsxs)(`div`,{className:c(m.oneStepScroller,t),style:{position:`relative`},children:[O&&(0,v.jsx)(`button`,{type:`button`,"aria-label":`Прокрутить шаг влево`,className:m.ossButton,onClick:T,disabled:!u,children:(0,v.jsx)(i,{})}),(0,v.jsx)(`div`,{className:m.ossViewport,onKeyDown:D,role:`group`,"aria-label":`Элементы прокрутки`,children:(0,v.jsx)(`div`,{className:m.ossScroller,ref:s,"aria-live":`polite`,children:e})}),O&&(0,v.jsx)(`button`,{type:`button`,"aria-label":`Прокрутить шаг вправо`,className:m.ossButton,onClick:E,disabled:!f,children:(0,v.jsx)(o,{})})]})},b.__docgenInfo={description:`Горизонтальный скроллер "по одному элементу".
|
|
2
2
|
|
|
3
3
|
Ожидает элементы фиксированной ширины (или близкой к фиксированной),
|
|
4
4
|
чтобы шаг скролла соответствовал ширине одного элемента.`,methods:[],displayName:`OneStepScroller`,props:{children:{required:!0,tsType:{name:`ReactReactNode`,raw:`React.ReactNode`},description:``},className:{required:!1,tsType:{name:`string`},description:``},itemSelector:{required:!1,tsType:{name:`string`},description:`CSS-селектор элементов, которые считаются "шагами" скролла.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-DaJPX7QV.js";import{i as n,r}from"./react-qN2cStNd.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-S8USJ7mc.js";import{a as p,c as m,i as h,n as g,o as _,r as v,s as y,t as b}from"./PeriodSelect.stories-6voDDnhV.js";function x(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(s,{of:y,parameters:{docs:{toc:!0}}}),`
|
|
2
2
|
`,(0,C.jsx)(u,{children:`PeriodSelect`}),`
|
|
3
3
|
`,(0,C.jsx)(o,{children:`Выбор периода детализации дат с ограничением вариантов по связанному диапазону`}),`
|
|
4
4
|
`,(0,C.jsxs)(t.p,{children:[`PeriodSelect используется для выбора уровня детализации: `,(0,C.jsx)(t.code,{children:`day`}),`, `,(0,C.jsx)(t.code,{children:`week`}),`, `,(0,C.jsx)(t.code,{children:`month`}),` или `,(0,C.jsx)(t.code,{children:`year`}),`. Компонент хранит только id выбранного периода, а недоступность вариантов вычисляет по переданному `,(0,C.jsx)(t.code,{children:`dateRange`}),` и порогам `,(0,C.jsx)(t.code,{children:`maxDayRangeDays`}),` / `,(0,C.jsx)(t.code,{children:`maxWeekRangeWeeks`}),`.`]}),`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{t}from"./react-C21x__mS.js";import{n}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{t}from"./react-C21x__mS.js";import{n}from"./iframe-DaJPX7QV.js";import{l as r,s as i}from"./odata-service-B5w4YBao-BW9QLSrS.js";import{a,y as o}from"./formatters-CVj-3Vn0-BFaHJqZL.js";import{n as s,o as c,r as l,t as u}from"./PresetSelect-BB875dDE.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 i=r(e),a=r(t);return _.map(e=>{let t={...e,label:n?.[e.id]??e.label};return e.id===`day`&&i!==void 0?{...t,maxRangeDays:i}:e.id===`week`&&a!==void 0?{...t,maxRangeDays:a*7}:t})}function h(e,t){let n=r(e.maxRangeDays);if(n===void 0||t===void 0)return!1;let i=a(t);return i!==null&&i>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(),i(),_=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
2
|
канонический порядок и правила доступности.
|
|
3
3
|
Не применяется, когда передан собственный \`options\`.`},presetIds:{required:!1,tsType:{name:`unknown`},description:`Разрешенные встроенные варианты периода. Значение нормализуется в канонический
|
|
4
4
|
порядок, а пустой либо невалидный список безопасно заменяется полным набором.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{n}from"./iframe-
|
|
1
|
+
import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{n}from"./iframe-DaJPX7QV.js";import{n as r,t as i}from"./Text-CqOk_yW2.js";import{a,b as o,y as s}from"./formatters-CVj-3Vn0-BFaHJqZL.js";import{r as c,t as l}from"./DateInput-BuCyQJPb.js";import{n as u,t as d}from"./GridContainer-qDguE1HS.js";import{i as f,n as p,r as m,t as h}from"./PeriodSelect-Dxy-Udif.js";var g=t({AllAllowedOptionsDisabled:()=>k,AlternativeLabels:()=>O,AutoSwitchByRange:()=>E,Controlled:()=>T,Disabled:()=>A,MonthAndYear:()=>D,__namedExportsOrder:()=>j,default:()=>w});function _(e){return e!==void 0&&o(e)?e:null}function v(e){let[,t]=b(),n=_(e.dateRange),r=a(e.dateRange??null);return(0,y.jsxs)(d,{gap:`md`,children:[(0,y.jsx)(h,{...e,onChange:n=>{e.onChange(n),t({value:n})}}),(0,y.jsx)(l,{label:`Связанный диапазон дат`,placeholder:`дд.мм.гггг - дд.мм.гггг`,value:n,onChange:e=>t({dateRange:e??void 0})}),(0,y.jsxs)(i,{as:`p`,color:`secondary`,"aria-live":`polite`,children:[`Выбрано: `,(0,y.jsx)(i,{as:`code`,children:e.value??`не выбрано`}),`. Дней в диапазоне:`,` `,(0,y.jsx)(i,{as:`code`,children:r??`не задано`}),`.`]})]})}var y,b,x,S,C,w,T,E,D,O,k,A,j;function M(){return(M=e((()=>{s(),c(),u(),r(),f(),p(),y=n(),{useArgs:b}=__STORYBOOK_MODULE_PREVIEW_API__,{fn:x}=__STORYBOOK_MODULE_TEST__,S=[new Date(2026,2,1,0,0,0),new Date(2026,2,14,23,59,59)],C=[new Date(2026,0,1,0,0,0),new Date(2026,4,20,23,59,59)],w={title:`Shared/UI/PeriodSelect`,component:h,args:{label:`Период детализации`,description:`Выберите уровень группировки дат.`,placeholder:`Выберите период`,value:`day`,onChange:x(),presetIds:m,dateRange:S,maxDayRangeDays:31,maxWeekRangeWeeks:26,disabled:!1,size:`md`},parameters:{atomicCanvas:!0,layout:`padded`,docs:{description:{component:`Select периода детализации дат. Компонент работает с id периода и может блокировать слишком детальные варианты по переданному диапазону дат.`}}},argTypes:{label:{description:`Заголовок поля.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},placeholder:{description:`Текст, когда период не выбран.`,control:`text`},value:{description:`Текущий id периода.`,control:`select`,options:m},onChange:{description:`Вызывается с id выбранного периода.`,control:!1},options:{description:"Кастомный список периодов по контракту `PeriodSelectOption`; имеет приоритет над `presetIds`, `labels` и порогами диапазона.",control:!1},labels:{description:`Частичные подписи встроенных периодов поверх канонического каталога.`,control:`object`},presetIds:{description:"Разрешенные встроенные периоды. Порядок отображения остается `day → week → month → year`.",control:`check`,options:m},dateRange:{description:`Диапазон дат, по которому вычисляются заблокированные периоды.`,control:!1},maxDayRangeDays:{description:"Максимальное количество дней, при котором доступен период `day`.",control:{type:`number`,min:1,step:1}},maxWeekRangeWeeks:{description:"Максимальное количество недель, при котором доступен период `week`.",control:{type:`number`,min:1,step:1}},disabled:{description:`Блокирует взаимодействие с полем.`,control:`boolean`},size:{description:`Размер поля и подписей.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]}}},T={name:`Контролируемый выбор`,render:function(e){return(0,y.jsx)(v,{...e})}},E={name:`Автопереключение по диапазону`,args:{value:`day`,dateRange:C,maxDayRangeDays:31,maxWeekRangeWeeks:8},render:function(e){return(0,y.jsx)(v,{...e})}},D={name:`Только месяцы и годы`,args:{value:`month`,presetIds:[`month`,`year`]},render:function(e){return(0,y.jsx)(v,{...e})}},O={name:`Альтернативные подписи`,args:{value:`month`,labels:{day:`за день`,week:`за неделю`,month:`за месяц`,year:`за год`}},render:function(e){return(0,y.jsx)(v,{...e})}},k={name:`Все разрешенные варианты недоступны`,args:{value:`day`,presetIds:[`day`,`week`],dateRange:C,maxDayRangeDays:31,maxWeekRangeWeeks:8},render:function(e){return(0,y.jsx)(v,{...e})}},A={name:`Заблокированный контрол`,args:{disabled:!0,value:`week`}},T.parameters={...T.parameters,docs:{...T.parameters?.docs,source:{originalSource:`{
|
|
2
2
|
name: "Контролируемый выбор",
|
|
3
3
|
render: function Render(args) {
|
|
4
4
|
return <PeriodSelectStoryCanvas {...args} />;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-DaJPX7QV.js";import{n,t as r}from"./Grid-BCzygAqy.js";import{d as i,f as a}from"./usePickerTriggerController-B-AurKCR.js";function o({onSelectAll:e,onDeselectAll:t,selectAllButtonRef:n}){return(0,s.jsxs)(r.Container,{gap:`xs`,templateColumns:`1fr 1fr`,children:[(0,s.jsx)(`button`,{ref:n,type:`button`,className:i.selectionActionButton,onClick:e,"data-ui":`picker-select-all`,"data-action":`select-all`,children:`Выбрать все`}),(0,s.jsx)(`button`,{type:`button`,className:i.selectionActionButton,onClick:t,"data-ui":`picker-deselect-all`,"data-action":`deselect-all`,children:`Снять выбор`})]})}var s;function c(){return(c=e((()=>{n(),a(),s=t(),o.__docgenInfo={description:`Общая панель массовых действий для picker-компонентов с множественным выбором.
|
|
2
2
|
Компонент не знает формат значения и делегирует изменение владельцу selection-модели.`,methods:[],displayName:`PickerSelectionToolbar`,props:{onSelectAll:{required:!0,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},onDeselectAll:{required:!0,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},selectAllButtonRef:{required:!1,tsType:{name:`Ref`,elements:[{name:`HTMLButtonElement`}],raw:`Ref<HTMLButtonElement>`},description:``}}}})))()}export{c as n,o as t};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t,t as n}from"./chevron-down-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t,t as n}from"./chevron-down-Bv0OkOLP.js";import{n as r}from"./iframe-DaJPX7QV.js";import{a as i,i as a}from"./utils-DUM89eIj.js";import{n as o,t as s}from"./ui.module-B48csOVs.js";function c({open:e,disabled:t,children:r,onToggleMouseDown:a,onToggleClick:s,openAriaLabel:c=`Открыть список`,closeAriaLabel:u=`Закрыть список`}){return(0,l.jsxs)(`div`,{className:o.uiToggleButtonContainer,"data-disabled":t||void 0,children:[r,(0,l.jsx)(`div`,{className:o.uiButtonSeparator}),(0,l.jsx)(`button`,{type:`button`,"aria-label":e?u:c,className:o.uiToggleButton,onMouseDown:a,onClick:s,children:(0,l.jsx)(n,{className:i(o.uiToggleIcon,e&&o.uiToggleIconOpen)})})]})}var l;function u(){return(u=e((()=>{a(),t(),s(),l=r(),c.__docgenInfo={description:``,methods:[],displayName:`PickerTriggerActions`,props:{open:{required:!0,tsType:{name:`boolean`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},children:{required:!1,tsType:{name:`ReactNode`},description:``},onToggleMouseDown:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(event: MouseEvent<HTMLButtonElement>) => void`,signature:{arguments:[{type:{name:`MouseEvent`,elements:[{name:`HTMLButtonElement`}],raw:`MouseEvent<HTMLButtonElement>`},name:`event`}],return:{name:`void`}}},description:``},onToggleClick:{required:!0,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},openAriaLabel:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"Открыть список"`,computed:!1}},closeAriaLabel:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"Закрыть список"`,computed:!1}}}}})))()}export{u as n,c as t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-DaJPX7QV.js";import{i as n,r}from"./react-qN2cStNd.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-S8USJ7mc.js";import{a as p,i as m,n as h,o as g,r as _,t as v}from"./Popover.stories-D3kquryU.js";function y(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(s,{of:m,parameters:{docs:{toc:!0}}}),`
|
|
2
2
|
`,(0,x.jsx)(u,{children:`Popover`}),`
|
|
3
3
|
`,(0,x.jsx)(o,{children:`Всплывающий контейнер, привязанный к trigger-элементу и поддерживающий управляемое открытие`}),`
|
|
4
4
|
`,(0,x.jsx)(t.p,{children:`Popover уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{n as e,o as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{n as r}from"./iframe-
|
|
1
|
+
import{n as e,o as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{n as r}from"./iframe-DaJPX7QV.js";import{a as i,i as a}from"./utils-DUM89eIj.js";import{a as o,d as s,g as c,l,m as u,n as d,p as f,r as p}from"./floating-ui.react-CRcGGmKm.js";import{a as m,i as h,n as g,r as _}from"./dom-B3G_GtJw.js";import{i as v,r as y}from"./FloatingPopover-C3FcvRMt.js";import{n as b}from"./error-BZrNlEUO.js";var x,S,C,w;function T(){return(T=e((()=>{x=`JK2Y7t`,S=`_5QtpCJ`,C=`hZuysP`,w={popover:x,primary:S,secondary:C}})))()}function E(){let e=(0,D.useContext)(O);if(!e)throw b({hookName:`usePopoverContext`,providerName:`Popover`});return e}var D,O;function k(){return(k=e((()=>{D=n(),O=(0,D.createContext)(null)})))()}var A,j,M;function N(){return(N=e((()=>{A=t(n(),1),p(),_(),a(),v(),T(),k(),j=r(),M=({children:e,onClose:t,closeOnOutside:n=!0,closeOnEscape:r=!0,disableOutsideClick:a=!1,background:o=`secondary`})=>{let{open:s,setOpen:c,refs:l,floatingStyles:u,middlewareData:f,placement:p,arrowRef:_}=E(),v=(0,A.useRef)(null),b=(0,A.useCallback)(e=>{v.current=e,l.setFloating(e)},[l]),x=m({active:s,initialFocus:`container`,restoreFocus:!0,containerRef:v}),S=(0,A.useCallback)(()=>{s&&(c(!1),t?.())},[c,t,s]);g({active:s,enabled:r,onDismiss:S,containerRef:x});let C=(0,A.useCallback)(()=>{!s||a||n&&S()},[s,a,n,S]);return h([l.floating,l.reference],C),s?(0,j.jsx)(d,{children:(0,j.jsxs)(`div`,{ref:b,style:u,className:i(w.popover,w[o]),role:`dialog`,"aria-modal":`true`,tabIndex:-1,children:[typeof e==`function`?e({setClose:S}):e,(0,j.jsx)(y,{ref:_,placement:p,middlewareData:f})]})}):null},M.__docgenInfo={description:`Содержимое Popover, отображаемое в портале.`,methods:[],displayName:`PopoverContent`,props:{children:{required:!0,tsType:{name:`union`,raw:`React.ReactNode | ((ctx: { setClose: () => void }) => React.ReactNode)`,elements:[{name:`ReactReactNode`,raw:`React.ReactNode`},{name:`unknown`}]},description:``},onClose:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},closeOnOutside:{required:!1,tsType:{name:`boolean`},description:``,defaultValue:{value:`true`,computed:!1}},closeOnEscape:{required:!1,tsType:{name:`boolean`},description:``,defaultValue:{value:`true`,computed:!1}},disableOutsideClick:{required:!1,tsType:{name:`boolean`},description:``,defaultValue:{value:`false`,computed:!1}},background:{required:!1,tsType:{name:`union`,raw:`"primary" | "secondary"`,elements:[{name:`literal`,value:`"primary"`},{name:`literal`,value:`"secondary"`}]},description:``,defaultValue:{value:`"secondary"`,computed:!1}}}}})))()}var P,F;function I(){return(I=e((()=>{P=n(),k(),F=({passive:e,children:t})=>{let{open:n,setOpen:r,refs:i}=E(),a=(0,P.useCallback)(n=>{t.props.onClick&&t.props.onClick(n),!n.defaultPrevented&&(n.preventDefault(),n.stopPropagation(),!e&&r(e=>!e))},[t,r,e]);return(0,P.cloneElement)(t,{ref:i.setReference,"aria-expanded":n,onClick:a})},F.__docgenInfo={description:``,methods:[],displayName:`PopoverTrigger`,props:{passive:{required:!1,tsType:{name:`literal`,value:`true`},description:``},children:{required:!0,tsType:{name:`ReactReactElement`,raw:`React.ReactElement<React.HTMLAttributes<Element> & { ref?: React.Ref<Element> }>`,elements:[{name:`intersection`,raw:`React.HTMLAttributes<Element> & { ref?: React.Ref<Element> }`,elements:[{name:`ReactHTMLAttributes`,raw:`React.HTMLAttributes<Element>`,elements:[{name:`Element`}]},{name:`signature`,type:`object`,raw:`{ ref?: React.Ref<Element> }`,signature:{properties:[{key:`ref`,value:{name:`ReactRef`,raw:`React.Ref<Element>`,elements:[{name:`Element`}],required:!1}}]}}]}]},description:``}}}})))()}var L,R,z,B;function V(){return(V=e((()=>{L=t(n(),1),p(),N(),k(),I(),R=r(),z=({children:e,open:t,defaultOpen:n,onOpenChange:r,placement:i=`bottom`})=>{let[a,d]=(0,L.useState)(n??!1),p=t!==void 0,m=p?t:a,h=(0,L.useCallback)(e=>{let t=typeof e==`function`?e(m):e;p||d(t),r?.(t)},[p,r,m]),g=(0,L.useRef)(null),{refs:_,floatingStyles:v,middlewareData:y,placement:b}=o({open:m,onOpenChange:h,placement:i,middleware:[f(8),s(),u({padding:16}),l({element:g.current})],whileElementsMounted:c});return(0,R.jsx)(O.Provider,{value:{open:m,setOpen:h,refs:_,floatingStyles:v,placement:b,middlewareData:y,arrowRef:g},children:e})},B=Object.assign(z,{Trigger:F,Content:M}),z.__docgenInfo={description:`Контролируемый Popover.
|
|
2
2
|
Используется в связке с Popover.Trigger и Popover.Content.`,methods:[],displayName:`PopoverRoot`,props:{children:{required:!0,tsType:{name:`ReactReactNode`,raw:`React.ReactNode`},description:``},placement:{required:!1,tsType:{name:`Placement`},description:``,defaultValue:{value:`"bottom"`,computed:!1}},open:{required:!1,tsType:{name:`boolean`},description:``},defaultOpen:{required:!1,tsType:{name:`boolean`},description:``},onOpenChange:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(open: boolean) => void`,signature:{arguments:[{type:{name:`boolean`},name:`open`}],return:{name:`void`}}},description:``}}}})))()}export{V as n,B as t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{n as r}from"./iframe-
|
|
1
|
+
import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{n as r}from"./iframe-DaJPX7QV.js";import{n as i,t as a}from"./Popover-CL1-w2Po.js";import{n as o,t as s}from"./Button-2-1lrrp0.js";import{c,t as l}from"./Input-TNrA13az.js";var u=t({AnchorPlacement:()=>g,Controlled:()=>h,Default:()=>m,WithInteractiveContent:()=>_,__namedExportsOrder:()=>v,default:()=>p}),d,f,p,m,h,g,_,v;function y(){return(y=e((()=>{d=n(),o(),c(),i(),f=r(),p={title:`Shared/UI/Popover`,component:a,parameters:{atomicCanvas:!0,layout:`centered`}},m={render:()=>(0,f.jsxs)(a,{children:[(0,f.jsx)(a.Trigger,{children:(0,f.jsx)(`button`,{children:`Открыть`})}),(0,f.jsx)(a.Content,{children:e=>(0,f.jsxs)(`div`,{style:{padding:12,maxWidth:160},children:[(0,f.jsx)(`p`,{children:`Пример простого поповера`}),(0,f.jsx)(`button`,{onClick:e.setClose,children:`Закрыть`})]})})]})},h={render:()=>{let[e,t]=(0,d.useState)(!1);return(0,f.jsxs)(a,{open:e,onOpenChange:t,children:[(0,f.jsx)(a.Trigger,{children:(0,f.jsx)(`button`,{children:e?`Закрыть`:`Открыть`})}),(0,f.jsx)(a.Content,{children:(0,f.jsx)(`div`,{style:{padding:12},children:`Контролируемый режим`})})]})}},g={render:()=>(0,f.jsx)(`div`,{style:{display:`flex`,gap:32,flexWrap:`wrap`,justifyContent:`center`},children:[`top`,`bottom`,`left`,`right`,`top-start`,`bottom-end`].map(e=>(0,f.jsxs)(a,{placement:e,children:[(0,f.jsx)(a.Trigger,{children:(0,f.jsx)(`button`,{children:e})}),(0,f.jsx)(a.Content,{children:(0,f.jsx)(`div`,{style:{padding:8},children:e})})]},e))})},_={render:()=>(0,f.jsxs)(a,{children:[(0,f.jsx)(a.Trigger,{children:(0,f.jsx)(`button`,{children:`Форма`})}),(0,f.jsx)(a.Content,{children:e=>(0,f.jsxs)(`form`,{onSubmit:t=>{t.preventDefault(),e.setClose()},style:{display:`flex`,flexDirection:`column`,gap:8,padding:12,width:180},children:[(0,f.jsx)(l,{label:`Имя`,placeholder:`Введите имя`,value:``,onChange:()=>{}}),(0,f.jsx)(s,{children:`Отправить`})]})})]})},m.parameters={...m.parameters,docs:{...m.parameters?.docs,source:{originalSource:`{
|
|
2
2
|
render: () => <Popover>
|
|
3
3
|
<Popover.Trigger>
|
|
4
4
|
<button>Открыть</button>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-DaJPX7QV.js";import{i as n,r}from"./react-qN2cStNd.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-S8USJ7mc.js";import{n as p,r as m,t as h}from"./PresetRangeDateInput.stories-Dwr5XQZc.js";function g(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,v.jsxs)(v.Fragment,{children:[(0,v.jsx)(s,{of:p,parameters:{docs:{toc:!0}}}),`
|
|
2
2
|
`,(0,v.jsx)(u,{children:`PresetRangeDateInput`}),`
|
|
3
3
|
`,(0,v.jsx)(o,{children:`Составной контрол диапазона дат с синхронизацией ручного ввода и готовых пресетов`}),`
|
|
4
4
|
`,(0,v.jsx)(t.p,{children:`PresetRangeDateInput уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{t}from"./react-C21x__mS.js";import{n}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{t}from"./react-C21x__mS.js";import{n}from"./iframe-DaJPX7QV.js";import{n as r,t as i}from"./FlexContainer-LmZIdhq2.js";import{r as a,t as o}from"./DateInput-BuCyQJPb.js";import{a as s,c,i as l,n as u,o as d,r as f,s as p,t as m}from"./DateRangePresetSelect-C9ZhGO09.js";function h(e){return e??`__empty__`}function g({value:e,onChange:t,presetId:n,onPresetIdChange:r,referenceDate:a,presetIds:l,presetOptions:u,presetLabel:g,presetDescription:y,presetPlaceholder:b=`Выберите пресет диапазона`,presetDisabled:x,...S}){let[C]=(0,_.useState)(()=>new Date),w=a??C,T=(0,_.useMemo)(()=>u??p(s(l,f)),[l,u]),E=e??null,D=(0,_.useMemo)(()=>d(E,w,T),[E,T,w]),O=n??D??void 0,k=(0,_.useRef)(``),A=(0,_.useCallback)(e=>{if(!r)return;let t=h(e);t!==k.current&&(k.current=t,r(e))},[r]),j=e=>{let n=c(e,w,T);if(!n){A(null);return}A(n.id),t(n.range)},M=e=>{t(e),A(d(e,w,T))};return(0,v.jsxs)(i,{gap:`sm`,align:`end`,children:[(0,v.jsx)(m,{size:S.size,label:g,description:y,placeholder:b,disabled:x??S.disabled,value:O,onChange:j,options:T,referenceDate:w}),(0,v.jsx)(o,{...S,value:E,onChange:M})]})}var _,v;function y(){return(y=e((()=>{_=t(),a(),u(),l(),r(),v=n(),g.__docgenInfo={description:`Составной компонент выбора диапазона дат через пресет или ручной ввод.`,methods:[],displayName:`PresetRangeDateInput`,props:{presetId:{required:!1,tsType:{name:`union`,raw:`DateRangePresetOption["id"] | null`,elements:[{name:`DateRangePresetOption["id"]`,raw:`DateRangePresetOption["id"]`},{name:`null`}]},description:``},onPresetIdChange:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(presetId: DateRangePresetOption["id"] | null) => void`,signature:{arguments:[{type:{name:`union`,raw:`DateRangePresetOption["id"] | null`,elements:[{name:`DateRangePresetOption["id"]`,raw:`DateRangePresetOption["id"]`},{name:`null`}]},name:`presetId`}],return:{name:`void`}}},description:``},referenceDate:{required:!1,tsType:{name:`Date`},description:``},presetIds:{required:!1,tsType:{name:`unknown`},description:``},presetOptions:{required:!1,tsType:{name:`unknown`},description:``},presetLabel:{required:!1,tsType:{name:`ReactNode`},description:``},presetDescription:{required:!1,tsType:{name:`string`},description:``},presetPlaceholder:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"Выберите пресет диапазона"`,computed:!1}},presetDisabled:{required:!1,tsType:{name:`boolean`},description:``}},composes:[`Omit`]}})))()}export{y as n,g as t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{n as r}from"./iframe-
|
|
1
|
+
import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{n as r}from"./iframe-DaJPX7QV.js";import{n as i,t as a}from"./Text-CqOk_yW2.js";import{n as o,t as s}from"./FlexContainer-LmZIdhq2.js";import{n as c,t as l}from"./PresetRangeDateInput-Kn0jZ58w.js";var u=t({Default:()=>m,__namedExportsOrder:()=>h,default:()=>p}),d,f,p,m,h;function g(){return(g=e((()=>{d=n(),o(),i(),c(),f=r(),p={title:`Shared/UI/PresetRangeDateInput`,component:l,args:{value:null,onChange:()=>{}},parameters:{atomicCanvas:!0,layout:`padded`}},m={render:()=>{let[e,t]=(0,d.useState)([new Date(2026,2,10,0,0,0),new Date(2026,2,10,23,59,59)]),[n,r]=(0,d.useState)(`today`);return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(s,{gap:`sm`,align:`end`,children:(0,f.jsx)(l,{value:e,onChange:t,presetId:n,onPresetIdChange:r,referenceDate:new Date(2026,2,10,12,0,0),presetLabel:`Быстрый диапазон`,size:`md`})}),(0,f.jsxs)(a,{as:`p`,className:`marginBlockSm`,children:[`Активный presetId: `,(0,f.jsx)(a,{as:`code`,children:n??`null`})]})]})}},m.parameters={...m.parameters,docs:{...m.parameters?.docs,source:{originalSource:`{
|
|
2
2
|
render: () => {
|
|
3
3
|
const [value, setValue] = useState<NullableDateRange | null>([new Date(2026, 2, 10, 0, 0, 0), new Date(2026, 2, 10, 23, 59, 59)]);
|
|
4
4
|
const [presetId, setPresetId] = useState<string | null>("today");
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-DaJPX7QV.js";import{n,t as r}from"./Select-BXAaQy9V.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) => ReactNode`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`ReactNode`}}},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
2
|
active: boolean;
|
|
3
3
|
selected: boolean;
|
|
4
4
|
disabled: boolean;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{n as e,o as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{i as r,n as i,r as a}from"./iframe-
|
|
1
|
+
import{n as e,o as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{i as r,n as i,r as a}from"./iframe-DaJPX7QV.js";import{a as o,i as s}from"./utils-DUM89eIj.js";import{n as c,t as l}from"./ui.module-B48csOVs.js";import{n as u,r as d}from"./uiClasses-DS_Gz-HQ.js";import{n as f,t as p}from"./CheckBox.module-CM_GPl_E.js";var m,h;function g(){return(g=e((()=>{r(),m=[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}]],h=a(`circle`,m)})))()}var _,v;function y(){return(y=e((()=>{_=`gu8UMB`,v={radioInput:_}})))()}var b,x,S;function C(){return(C=e((()=>{b=t(n(),1),s(),g(),f(),l(),d(),y(),x=i(),S=({label:e,description:t,placeholder:n,disabled:r,size:i,className:a,onChange:s,value:l,id:d,tone:f=`neutral`,...m})=>{let g=(0,b.useId)(),_=d??g,y=t?`${_}-description`:void 0,S=e??n,C=l??!1;return(0,x.jsxs)(`div`,{className:o(c.uiElement,i&&c.uiSizable,i&&c[i],r&&c.disabled,a),children:[(0,x.jsxs)(`div`,{className:p.row,children:[(0,x.jsxs)(`div`,{className:o(p.wrapper,u(f)),children:[(0,x.jsx)(`input`,{...m,id:_,type:`checkbox`,role:`radio`,checked:C,disabled:r,"aria-disabled":r,"aria-checked":C,"aria-describedby":y,className:o(c.uiSelectionControl,p.input,v.radioInput),onChange:()=>s?.(!C)}),(0,x.jsx)(`div`,{className:o(c.uiSelectionIcon,p.icon),"aria-hidden":`true`,children:(0,x.jsx)(h,{fill:`currentColor`})})]}),S&&(0,x.jsx)(`label`,{htmlFor:_,className:c.uiLabel,children:S})]}),t&&(0,x.jsx)(`p`,{id:y,className:c.uiDescription,children:t})]})},S.__docgenInfo={description:`Компонент радиокнопки для выбора одного варианта.
|
|
2
2
|
Поддерживает tone + appearance и использует общие selection utility-классы из ui.module.scss.`,methods:[],displayName:`RadioButton`,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:``},tone:{required:!1,tsType:{name:`union`,raw:`"neutral" | "error" | "warning" | "success" | "info"`,elements:[{name:`literal`,value:`"neutral"`},{name:`literal`,value:`"error"`},{name:`literal`,value:`"warning"`},{name:`literal`,value:`"success"`},{name:`literal`,value:`"info"`}]},description:``,defaultValue:{value:`"neutral"`,computed:!1}}},composes:[`Omit`]}})))()}export{C as n,S as t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-DaJPX7QV.js";import{i as n,r}from"./react-qN2cStNd.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-S8USJ7mc.js";import{a as p,i as m,n as h,r as g,t as _}from"./RadioButton.stories-Dt9HjR8q.js";function v(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(s,{of:m,parameters:{docs:{toc:!0}}}),`
|
|
2
2
|
`,(0,b.jsx)(u,{children:`RadioButton`}),`
|
|
3
3
|
`,(0,b.jsx)(o,{children:`Одиночная radio-кнопка для ручной сборки наборов выбора и специальных компоновок`}),`
|
|
4
4
|
`,(0,b.jsx)(t.p,{children:`RadioButton уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
|
package/storybook-static/assets/{RadioButton.stories-S98_hDUl.js → RadioButton.stories-Dt9HjR8q.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{n as r,t as i}from"./RadioButton-
|
|
1
|
+
import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{n as r,t as i}from"./RadioButton-B02A58Qr.js";import{n as a}from"./iframe-DaJPX7QV.js";var o=t({Controlled:()=>u,Disabled:()=>f,Group:()=>d,__namedExportsOrder:()=>p,default:()=>l}),s,c,l,u,d,f,p;function m(){return(m=e((()=>{s=n(),r(),c=a(),l={title:`Shared/UI/RadioButton`,component:i,args:{value:!1,onChange:()=>{}},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Текст подписи радиокнопки.`,control:`text`},description:{description:`Дополнительное описание под элементом.`,control:`text`},placeholder:{description:"Резервная подпись, если `label` не задан.",control:`text`},value:{description:`Признак выбранного состояния.`,control:`boolean`},onChange:{description:`Вызывается при изменении выбранности.`,control:!1},disabled:{description:`Блокирует взаимодействие.`,control:`boolean`},size:{description:`Размер визуального контрола и подписи.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]},tone:{description:`Семантический тон радиокнопки.`,control:`inline-radio`,options:[`neutral`,`error`,`warning`,`success`,`info`]},name:{description:"HTML `name` для группировки кнопок.",control:`text`}}},u={render:e=>{let[t,n]=(0,s.useState)(e.value??!1);return(0,c.jsx)(i,{...e,value:t,onChange:n})},args:{label:`Выбрать опцию`,description:`Одиночная радиокнопка в controlled-режиме.`,value:!1,name:`single-radio`,tone:`neutral`}},d={render:()=>{let[e,t]=(0,s.useState)(`email`);return(0,c.jsxs)(`div`,{role:`radiogroup`,"aria-label":`Канал уведомлений`,style:{display:`grid`,gap:12},children:[(0,c.jsx)(i,{name:`notify-channel`,label:`Email`,value:e===`email`,onChange:e=>e&&t(`email`),tone:`info`}),(0,c.jsx)(i,{name:`notify-channel`,label:`SMS`,value:e===`sms`,onChange:e=>e&&t(`sms`),tone:`info`})]})},args:{value:void 0}},f={args:{label:`Недоступная опция`,description:`Заблокировано политикой конфигурации.`,value:!0,disabled:!0,tone:`neutral`}},u.parameters={...u.parameters,docs:{...u.parameters?.docs,source:{originalSource:`{
|
|
2
2
|
render: args => {
|
|
3
3
|
const [value, setValue] = useState(args.value ?? false);
|
|
4
4
|
return <RadioButton {...args} value={value} onChange={setValue} />;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-DaJPX7QV.js";import{i as n,r}from"./react-qN2cStNd.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-S8USJ7mc.js";import{a as p,i as m,n as h,r as g,t as _}from"./RadioGroup.stories-DSjK5djt.js";function v(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(s,{of:g,parameters:{docs:{toc:!0}}}),`
|
|
2
2
|
`,(0,b.jsx)(u,{children:`RadioGroup`}),`
|
|
3
3
|
`,(0,b.jsx)(o,{children:`Группа взаимоисключающих опций с поддержкой горизонтальной и вертикальной раскладки`}),`
|
|
4
4
|
`,(0,b.jsx)(t.p,{children:`RadioGroup уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,o as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{n as r}from"./iframe-
|
|
1
|
+
import{n as e,o as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{n as r}from"./iframe-DaJPX7QV.js";import{a as i,i as a,n as o,o as s}from"./utils-DUM89eIj.js";import{n as c,t as l}from"./ui.module-B48csOVs.js";var u,d,f,p,m,h,g;function _(){return(_=e((()=>{u=`nINbA6`,d=`GL-UWx`,f=`_6PeF-i`,p=`_5wP4aR`,m=`S3MnZI`,h=`KHJ0ja`,g={radioGroup:u,noWrap:d,horizontal:f,vertical:p,radioItem:m,checked:h}})))()}function v({value:e,onChange:t,label:n,description:r,disabled:a,className:o,noWrap:s,orientation:l=`horizontal`,"aria-label":u,children:d}){let f=(0,b.useId)(),p=n?`${f}-label`:void 0,m=r?`${f}-description`:void 0,[h,_]=(0,b.useState)([]),v=(0,b.useCallback)(e=>t?.(e),[t]),y=(0,b.useCallback)(e=>(_(t=>t.includes(e)?t:[...t,e]),()=>{_(t=>t.filter(t=>t!==e))}),[]),C=(0,b.useMemo)(()=>({value:e,onChange:v,disabled:a,orientation:l,groupId:f,labelId:p,descriptionId:m,firstOptionId:h[0],registerOption:y}),[m,a,f,v,p,l,y,h,e]);return(0,x.jsxs)(`div`,{className:i(c.uiElement,a&&c.disabled,o),children:[n&&(0,x.jsx)(`div`,{id:p,className:c.uiLabel,children:n}),r&&(0,x.jsx)(`div`,{id:m,className:c.uiDescription,children:r}),(0,x.jsx)(S.Provider,{value:C,children:(0,x.jsx)(`div`,{role:`radiogroup`,"aria-labelledby":p,"aria-label":p?void 0:u,"aria-describedby":m,"aria-disabled":a||void 0,"data-disabled":a||void 0,className:i(c.uiInputControl,g.radioGroup,s&&g.noWrap,g[l]),children:d})})]})}function y({value:e,label:t,description:n,className:r}){let a=(0,b.useContext)(S),c=(0,b.useId)(),l=a?.registerOption;if((0,b.useLayoutEffect)(()=>{if(l)return l(c)},[l,c]),!a)return(0,x.jsxs)(`div`,{className:i(g.radioItem,r),children:[(0,x.jsx)(`p`,{className:`textNoWrap`,children:t}),n&&(0,x.jsx)(`div`,{className:`fontSizeSm content2`,children:n})]});let u=Object.is(a.value,e),d=a.disabled===!0,f=a.value===void 0&&a.firstOptionId===c,p=()=>{d||u||a.onChange?.(e)};return(0,x.jsxs)(`button`,{id:`${a.groupId}-option-${c}`,type:`button`,role:`radio`,"aria-checked":u,disabled:d,tabIndex:u||f?0:-1,className:i(g.radioItem,u&&g.checked,r),"data-ui":`radio-option`,"data-action":`select-radio-option`,onClick:p,onKeyDown:e=>{if(d||o(e,p))return;let t=e.currentTarget,n=t.closest(`[role="radiogroup"]`),r=Array.from(n?.querySelectorAll(`[role="radio"]:not([disabled])`)??[]);if(!r.length)return;let i=r.indexOf(t);if(i===-1)return;let c=s({currentIndex:i,itemCount:r.length,key:e.key,orientation:a.orientation});c!==null&&(e.preventDefault(),r[c]?.focus(),r[c]?.click())},children:[(0,x.jsx)(`span`,{className:`textNoWrap`,children:t}),n&&(0,x.jsx)(`span`,{className:`fontSizeSm`,children:n})]})}var b,x,S;function C(){return(C=e((()=>{b=t(n(),1),a(),l(),_(),x=r(),S=(0,b.createContext)(null),v.Option=y,v.__docgenInfo={description:`Группа радиокнопок с общим состоянием выбранного значения. Обеспечивает единый API выбора и контекст для дочерних опций.`,methods:[{name:`Option`,docblock:null,modifiers:[`static`],params:[{name:`{ value, label, description, className }: OptionProps<T>`,optional:!1,type:{name:`OptionProps`,elements:[{name:`T`}],raw:`OptionProps<T>`,alias:`OptionProps`}}],returns:null}],displayName:`RadioGroup`,props:{value:{required:!1,tsType:{name:`T`},description:``},onChange:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(value: T) => void`,signature:{arguments:[{type:{name:`T`},name:`value`}],return:{name:`void`}}},description:``},label:{required:!1,tsType:{name:`string`},description:``},description:{required:!1,tsType:{name:`string`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},className:{required:!1,tsType:{name:`string`},description:``},noWrap:{required:!1,tsType:{name:`literal`,value:`true`},description:``},orientation:{required:!1,tsType:{name:`union`,raw:`"vertical" | "horizontal"`,elements:[{name:`literal`,value:`"vertical"`},{name:`literal`,value:`"horizontal"`}]},description:``,defaultValue:{value:`"horizontal"`,computed:!1}},"aria-label":{required:!1,tsType:{name:`string`},description:``},children:{required:!0,tsType:{name:`ReactReactNode`,raw:`React.ReactNode`},description:``}}},y.__docgenInfo={description:"Опция внутри `RadioGroup`, представляющая одно выбираемое значение. Отрисовывает подпись, описание и состояние выбора.",methods:[],displayName:`Option`,props:{value:{required:!0,tsType:{name:`T`},description:``},label:{required:!0,tsType:{name:`ReactNode`},description:``},description:{required:!1,tsType:{name:`ReactNode`},description:``},className:{required:!1,tsType:{name:`string`},description:``}}}})))()}export{C as n,v as t};
|
package/storybook-static/assets/{RadioGroup.stories-7RFD3uHM.js → RadioGroup.stories-DSjK5djt.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{n as r}from"./iframe-
|
|
1
|
+
import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{n as r}from"./iframe-DaJPX7QV.js";import{n as i,t as a}from"./RadioGroup-D5sQH9R3.js";var o=t({Controlled:()=>d,Disabled:()=>p,Vertical:()=>f,__namedExportsOrder:()=>m,default:()=>u});function s(e){return(0,l.jsx)(a,{...e})}var c,l,u,d,f,p,m;function h(){return(h=e((()=>{c=n(),i(),l=r(),u={title:`Shared/UI/RadioGroup`,component:s,args:{value:`email`,onChange:()=>{},orientation:`horizontal`,label:`Канал уведомлений`,description:`Выберите основной канал доставки`,disabled:!1},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{value:{description:`Текущее выбранное значение.`,control:`text`},onChange:{description:`Вызывается при смене выбранной опции.`,control:!1},label:{description:`Заголовок группы опций.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},disabled:{description:`Блокирует выбор опций.`,control:`boolean`},noWrap:{description:`Запрещает перенос опций на новую строку.`,control:`boolean`},orientation:{description:`Ориентация расположения опций.`,control:`inline-radio`,options:[`horizontal`,`vertical`]},className:{description:`Дополнительный CSS-класс контейнера.`,control:`text`},children:{description:"Элементы `RadioGroup.Option` внутри группы.",control:!1}}},d={render:e=>{let[t,n]=(0,c.useState)(`email`);return(0,l.jsxs)(`div`,{style:{display:`grid`,gap:10},children:[(0,l.jsxs)(s,{...e,value:t,onChange:n,children:[(0,l.jsx)(a.Option,{value:`email`,label:`Email`,description:`Письма на корпоративную почту`}),(0,l.jsx)(a.Option,{value:`sms`,label:`SMS`,description:`Сообщения на телефон`}),(0,l.jsx)(a.Option,{value:`push`,label:`Push`,description:`Уведомления в приложении`})]}),(0,l.jsxs)(`div`,{children:[`Выбрано: `,t]})]})},args:{children:void 0}},f={render:e=>{let[t,n]=(0,c.useState)(`draft`);return(0,l.jsxs)(s,{...e,value:t,onChange:n,orientation:`vertical`,label:`Статус документа`,children:[(0,l.jsx)(a.Option,{value:`draft`,label:`Черновик`}),(0,l.jsx)(a.Option,{value:`review`,label:`На согласовании`}),(0,l.jsx)(a.Option,{value:`approved`,label:`Утвержден`})]})},args:{orientation:`vertical`,children:void 0}},p={render:e=>(0,l.jsxs)(s,{...e,disabled:!0,children:[(0,l.jsx)(a.Option,{value:`yes`,label:`Да`}),(0,l.jsx)(a.Option,{value:`no`,label:`Нет`})]}),args:{disabled:!0,value:`yes`,children:void 0}},d.parameters={...d.parameters,docs:{...d.parameters?.docs,source:{originalSource:`{
|
|
2
2
|
render: args => {
|
|
3
3
|
const [value, setValue] = useState("email");
|
|
4
4
|
return <div style={{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{t}from"./react-C21x__mS.js";import{n}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{t}from"./react-C21x__mS.js";import{n}from"./iframe-DaJPX7QV.js";import{a as r,i}from"./utils-DUM89eIj.js";var a,o,s,c;function l(){return(l=e((()=>{a=t(),i(),o=n(),s=(0,a.forwardRef)(({children:e,height:t,stable:n,overscroll:i,className:a},s)=>(0,o.jsx)(`div`,{ref:s,className:r(`scrollable`,n&&`stable`,i&&`overscroll`,a),style:{height:t},children:e})),c=(0,a.forwardRef)(({blockClassName:e,...t},n)=>(0,o.jsx)(`div`,{className:r(e,`overflowHidden w100 h100`),children:(0,o.jsx)(s,{ref:n,...t})})),s.__docgenInfo={description:``,methods:[],displayName:`Scrollable`,props:{className:{required:!1,tsType:{name:`string`},description:``},height:{required:!1,tsType:{name:`union`,raw:`string | number`,elements:[{name:`string`},{name:`number`}]},description:``},stable:{required:!1,tsType:{name:`boolean`},description:``},overscroll:{required:!1,tsType:{name:`boolean`},description:``}},composes:[`PropsWithChildren`]},c.__docgenInfo={description:``,methods:[],displayName:`ScrollableBlock`,props:{className:{required:!1,tsType:{name:`string`},description:``},height:{required:!1,tsType:{name:`union`,raw:`string | number`,elements:[{name:`string`},{name:`number`}]},description:``},stable:{required:!1,tsType:{name:`boolean`},description:``},overscroll:{required:!1,tsType:{name:`boolean`},description:``},blockClassName:{required:!1,tsType:{name:`string`},description:``}},composes:[`PropsWithChildren`]}})))()}export{l as n,s as t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-DaJPX7QV.js";import{i as n,r}from"./react-qN2cStNd.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-S8USJ7mc.js";import{a as p,c as m,i as h,n as g,o as _,r as v,s as y,t as b}from"./Select.stories-DN4dV7yi.js";function x(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(s,{of:y,parameters:{docs:{toc:!0}}}),`
|
|
2
2
|
`,(0,C.jsx)(u,{children:`Select`}),`
|
|
3
3
|
`,(0,C.jsx)(o,{children:`Getter-based select для примитивов и сложных объектных option`}),`
|
|
4
4
|
`,(0,C.jsx)(t.p,{children:`Select уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{t}from"./react-C21x__mS.js";import{n,t as r}from"./check-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{t}from"./react-C21x__mS.js";import{n,t as r}from"./check-Cceu88S-.js";import{n as i,t as a}from"./x-BUr2A9Su.js";import{n as o}from"./iframe-DaJPX7QV.js";import{a as s,i as c}from"./utils-DUM89eIj.js";import{n as l,t as u}from"./ui.module-B48csOVs.js";import{c as d,g as f,h as ee,i as te,l as ne,n as re,r as p,s as ie,t as m,u as h}from"./usePickerTriggerController-B-AurKCR.js";import{i as g,n as ae,r as oe,t as _}from"./usePickerQuery-D01d0TZO.js";import{n as v,t as se}from"./PickerTriggerActions-DfajdlA-.js";import{n as y,t as b}from"./usePickerDefaultFilter-Be420WNF.js";function x(e){if(typeof e==`string`||typeof e==`number`)return String(e);if(Array.isArray(e)){let t=e.map(x).filter(e=>!!e);return t.length?t.join(` `):void 0}}function ce({option:e,getOptionLabel:t,getOptionCode:n,getOptionGroup:r}){return[x(t(e)),x(n?.(e)),x(r?.(e)?.label)].filter(e=>!!e).join(` `).toLowerCase()}function S(){return(S=e((()=>{})))()}function le(e,t){let n=[];return e.forEach((e,r)=>{let i=t(e),a=n.at(-1),o=a?.group?.key===i?.key;if(a&&o){a.items.push({option:e,index:r});return}n.push({group:i,items:[{option:e,index:r}]})}),n}var C,w,T;function E(){return(E=e((()=>{C=`aEEqH1`,w=`_4HQKa7`,T={inputWithOverlay:C,valueOverlay:w}})))()}function D(e){let{label:t,description:n,disabled:i,placeholder:o,size:c,options:u,value:d,onChange:f,getOptionKey:p,getOptionLabel:m,getOptionCode:h,getOptionDisabled:g,getOptionAriaLabel:_,getOptionGroup:v,getOptionClassName:b,renderOption:S,renderValue:C,className:w,buttonClassName:E,optionsClassName:D,optionsMaxWidth:A,optionsContentClassName:ue,searchable:j=!1,defaultFilter:M=!0,query:de,defaultQuery:fe,onQuery:pe,renderPopupHeader:me,emptyState:he,loadingState:ge,errorState:_e,placement:ve=`bottom-start`,clearable:N=!1}=e,P=f,F=(0,O.useRef)(null),[I,ye]=(0,O.useState)(!1),L=j?`search-single`:`display`,R=d===void 0?void 0:p(d),z=R===void 0?void 0:u.find(e=>p(e)===R)??d,{query:B,setQuery:V,resetQueryOnClose:be}=ae({query:de,defaultQuery:fe,onQuery:pe,triggerMode:L}),xe=e=>{I&&!e&&be&&V(``),ye(e)},Se=(0,O.useCallback)(e=>ce({option:e,getOptionLabel:m,getOptionCode:h,getOptionGroup:v}),[h,v,m]),H=y({options:u,query:B,enabled:j&&M,getSearchText:Se}),U=(0,O.useMemo)(()=>v?le(H,v):void 0,[v,H]),W=R===void 0?-1:H.findIndex(e=>p(e)===R),{activeIndex:Ce,context:we,floatingStyles:Te,getFloatingProps:Ee,setReference:De,setFloating:Oe,setOptionRef:ke,close:G,openList:Ae,toggleOpen:je,selectOption:Me,selectActiveOption:Ne,handleReferenceKeyDown:Pe,handleFloatingKeyDown:Fe,getOptionId:Ie,getActiveOptionId:K}=te({options:H,selectedIndex:W,open:I,onOpenChange:xe,getOptionDisabled:g,onSelect:P,disabled:i,placement:ve,triggerMode:L}),q=H.length>0,J=z===void 0?void 0:m(z),Y=z===void 0?void 0:C?C(z):J,Le=x(J),Re=z===void 0?void 0:x(h?.(z)),ze=x(Y)??Le??Re??(R===void 0?``:String(R)),X=j&&(I||B.length>0),Be=X?B:z===void 0?``:ze,Z=z!==void 0&&Y!==void 0&&x(Y)===void 0&&!X,Q=re({mode:L,open:I,currentQuery:B,hasDisplayValue:z!==void 0,inputRef:F,setQuery:V,openList:Ae,close:G,toggleOpen:je}),Ve=e=>{F.current=e},He=()=>{N&&P(void 0),V(``),G()},$=(e,t,n)=>{let i=p(t),a=R!==void 0&&i===R,o=n===Ce,c=g?.(t)??!1,u={active:o,selected:a,disabled:c};return(0,k.jsx)(`div`,{id:Ie(e,n),ref:e=>ke(n,e),role:`option`,"aria-selected":a,"aria-disabled":c||void 0,"aria-label":_?.(t),className:s(l.uiPopupOption,c&&l.disabled,o&&l.uiPopupOptionActive,a&&l.selected,b?.(t,u)),onClick:()=>Me(t),children:S?S(t,u):(0,k.jsxs)(k.Fragment,{children:[a?(0,k.jsx)(r,{className:l.uiPopupOptionIcon}):(0,k.jsx)(`span`,{className:l.uiPopupOptionIcon}),(0,k.jsx)(`div`,{className:l.uiOptionText,children:m(t)}),h&&(0,k.jsx)(`div`,{className:l.uiOptionCode,children:h(t)})]})},i)};return(0,k.jsx)(ee,{label:t,description:n,disabled:i,size:c,className:w,children:({controlId:e,labelId:n,describedBy:r})=>{let c=`${e}-listbox`;return(0,k.jsxs)(k.Fragment,{children:[(0,k.jsx)(ie,{ref:Ve,rootRef:De,id:e,type:`text`,disabled:i,readOnly:!j,autoComplete:`off`,role:`combobox`,value:Be,placeholder:z===void 0||X?`${o??t??``} <${u.length}>`:void 0,"aria-labelledby":n,"aria-describedby":r,"aria-haspopup":`listbox`,"aria-expanded":I,"aria-controls":I?c:void 0,"aria-autocomplete":j?`list`:`none`,"aria-activedescendant":I?K(c):void 0,inputClassName:s(Z&&T.inputWithOverlay,E,`textOverflow`),overlay:Z?(0,k.jsx)(`div`,{className:T.valueOverlay,children:Y}):void 0,endAdornment:(0,k.jsx)(se,{open:I,disabled:i,onToggleMouseDown:Q.handleToggleMouseDown,onToggleClick:Q.handleToggleClick,children:N&&z!==void 0&&!i?(0,k.jsx)(`button`,{type:`button`,className:l.uiClearButton,"data-ui":`select-clear-button`,"data-action":`clear-select`,onMouseDown:e=>{e.preventDefault(),e.stopPropagation()},onClick:e=>{e.preventDefault(),e.stopPropagation(),He()},"aria-label":`Очистить выбор`,children:(0,k.jsx)(a,{})}):null}),onChange:e=>{j&&Q.handleTriggerInputChange(e.target.value)},onClick:Q.handleTriggerClick,onFocus:e=>{Q.handleTriggerFocus(e.currentTarget)},onKeyDown:e=>{Pe(e),!e.defaultPrevented&&Q.handleTriggerKeyDown({event:e,onActivateWhenOpen:Ne,enableSpaceActivation:!j})}}),(0,k.jsx)(ne,{open:I,context:we,floatingStyles:Te,listId:c,labelId:n,descriptionId:r,activeOptionId:q?K(c):void 0,setFloating:Oe,getFloatingProps:Ee,onKeyDown:Fe,className:s(l.uiPopupOptions,D),maxWidth:A,header:me,children:(0,k.jsx)(`div`,{className:s(ue,`h100 scrollable`),children:q?U?U.map((e,t)=>{let n=e.group?`${c}-group-${t}`:void 0,r=e.items.map(({option:e,index:t})=>$(c,e,t));return e.group?(0,k.jsxs)(`div`,{role:`group`,"aria-labelledby":n,children:[(0,k.jsx)(`div`,{id:n,className:l.uiPopupGroupLabel,children:e.group.label}),r]},`group-${String(e.group.key)}-${t}`):(0,k.jsx)(O.Fragment,{children:r},`options-${t}`)}):H.map((e,t)=>$(c,e,t)):(0,k.jsx)(oe,{emptyState:he,loadingState:ge,errorState:_e})})})]})}})}var O,k;function A(){return(A=e((()=>{O=t(),c(),n(),i(),f(),h(),g(),v(),d(),b(),p(),_(),m(),u(),S(),E(),k=o(),D.__docgenInfo={description:`Выпадающий список выбора значения из набора опций. Подходит для форм, фильтров и простых справочников.`,methods:[],displayName:`Select`,props:{options:{required:!0,tsType:{name:`unknown`},description:``},getOptionKey:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => SelectOptionKey`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`union`,raw:`string | number`,elements:[{name:`string`},{name:`number`}]}}},description:``},getOptionLabel:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => ReactNode`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`ReactNode`}}},description:``},getOptionCode:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => ReactNode`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`ReactNode`}}},description:``},getOptionDisabled:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => boolean`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`boolean`}}},description:``},getOptionAriaLabel:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => string`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`string`}}},description:``},getOptionGroup:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption) => SelectOptionGroup | undefined`,signature:{arguments:[{type:{name:`TOption`},name:`option`}],return:{name:`union`,raw:`SelectOptionGroup | undefined`,elements:[{name:`signature`,type:`object`,raw:`{
|
|
2
2
|
readonly key: SelectOptionKey;
|
|
3
3
|
readonly label: ReactNode;
|
|
4
4
|
}`,signature:{properties:[{key:`key`,value:{name:`union`,raw:`string | number`,elements:[{name:`string`},{name:`number`}],required:!0}},{key:`label`,value:{name:`ReactNode`,required:!0}}]}},{name:`undefined`}]}}},description:``},getOptionClassName:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(option: TOption, state: SelectOptionState) => string | undefined`,signature:{arguments:[{type:{name:`TOption`},name:`option`},{type:{name:`signature`,type:`object`,raw:`{
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{n as r}from"./iframe-
|
|
1
|
+
import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{n as r}from"./iframe-DaJPX7QV.js";import{n as i,t as a}from"./Select-BXAaQy9V.js";var o=t({ControlledObjects:()=>f,CustomOptionLayout:()=>g,Disabled:()=>_,GroupedOptions:()=>h,Placeholder:()=>m,PrimitiveOptions:()=>p,__namedExportsOrder:()=>v,default:()=>d}),s,c,l,u,d,f,p,m,h,g,_,v;function y(){return(y=e((()=>{s=n(),i(),c=r(),l=[{id:1,name:`Отдел продаж`,code:`SLS`,manager:`Елена Миронова`,direction:`Коммерческий блок`},{id:2,name:`Закупки`,code:`PRC`,manager:`Антон Мелихов`,direction:`Коммерческий блок`},{id:3,name:`Логистика`,code:`LGS`,manager:`Мария Климова`,direction:`Операционный блок`,disabled:!0},{id:4,name:`Поддержка клиентов`,code:`SUP`,manager:`Ирина Белова`,direction:`Операционный блок`}],u=[`Новый`,`В работе`,`Завершён`,`Архив`],d={title:`Shared/UI/Select`,component:a,args:{label:`Подразделение`,description:`Выберите подразделение из списка.`,placeholder:`Не выбрано`,value:void 0,options:l,onChange:()=>{},getOptionKey:e=>e.id,getOptionLabel:e=>e.name,getOptionCode:e=>e.code,getOptionDisabled:e=>e.disabled??!1,size:`md`},parameters:{atomicCanvas:!0,layout:`padded`,docs:{description:{component:`Низкоуровневый getter-based select. Подходит для произвольных структур данных, примитивов и сложного кастомного рендера. Компонент возвращает наружу саму выбранную option. Для сериализуемых конфигов и сценариев с optionKey/optionLabel используйте SerializableSelect.`}}},argTypes:{label:{description:`Заголовок поля.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},placeholder:{description:`Текст, когда значение ещё не выбрано.`,control:`text`},value:{description:`Текущая выбранная option целиком.`,control:!1},options:{description:`Массив опций любого поддерживаемого формата.`,control:!1},onChange:{description:`Вызывается с выбранной option.`,control:!1},getOptionKey:{description:`Функция получения уникального ключа option.`,control:!1},getOptionLabel:{description:`Функция получения основного текста option.`,control:!1},getOptionCode:{description:`Опциональный рендер дополнительного кода справа.`,control:!1},getOptionDisabled:{description:`Опциональная функция блокировки отдельных option.`,control:!1},getOptionAriaLabel:{description:`Опциональная функция для aria-label option.`,control:!1},getOptionGroup:{description:`Опциональная функция, которая объединяет соседние option под доступным заголовком группы.`,control:!1},getOptionClassName:{description:`Опциональная функция CSS-класса option по её состоянию.`,control:!1},renderOption:{description:`Полностью кастомный рендер option в списке.`,control:!1},renderValue:{description:`Кастомный рендер выбранного значения в кнопке.`,control:!1},className:{description:`Дополнительный CSS-класс корневого контейнера.`,control:`text`},buttonClassName:{description:`Дополнительный CSS-класс кнопки выбора.`,control:`text`},optionsClassName:{description:`Дополнительный CSS-класс контейнера списка.`,control:`text`},optionsMaxWidth:{description:`Максимальная ширина выпадающего списка в любом допустимом CSS-формате.`,control:`text`},size:{description:`Размер поля и подписей.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]},placement:{description:`Позиционирование выпадающего списка.`,control:`select`,options:[`bottom-start`,`bottom-end`,`top-start`,`top-end`]},disabled:{description:`Блокирует взаимодействие с полем.`,control:`boolean`}}},f={name:`Объекты`,render:e=>{let[t,n]=(0,s.useState)(l[1]);return(0,c.jsx)(a,{...e,value:t,onChange:n})}},p={name:`Примитивы`,render:()=>{let[e,t]=(0,s.useState)(u[1]);return(0,c.jsx)(a,{label:`Статус`,description:`Пример использования низкоуровневого Select со строковыми значениями.`,placeholder:`Выберите статус`,options:u,value:e,onChange:t,getOptionKey:e=>e,getOptionLabel:e=>e,size:`md`})}},m={render:e=>{let[t,n]=(0,s.useState)(void 0);return(0,c.jsx)(a,{...e,value:t,onChange:n})}},h={name:`Группированные опции`,render:e=>{let[t,n]=(0,s.useState)();return(0,c.jsx)(a,{...e,value:t,onChange:n,getOptionGroup:e=>({key:e.direction,label:e.direction}),optionsMaxWidth:`40rem`})}},g={name:`Кастомный рендер`,render:e=>{let[t,n]=(0,s.useState)(l[0]);return(0,c.jsx)(a,{...e,value:t,onChange:n,renderValue:e=>`${e.code} · ${e.name}`,renderOption:(e,t)=>(0,c.jsxs)(c.Fragment,{children:[(0,c.jsxs)(`div`,{className:`flexEllipsis`,children:[(0,c.jsx)(`div`,{children:e.name}),(0,c.jsx)(`div`,{className:`fontSizeSm content2`,children:e.manager})]}),(0,c.jsx)(`div`,{style:{opacity:t.selected?1:.5},children:e.code})]})})}},_={args:{disabled:!0,value:l[0]}},f.parameters={...f.parameters,docs:{...f.parameters?.docs,source:{originalSource:`{
|
|
2
2
|
name: "Объекты",
|
|
3
3
|
render: args => {
|
|
4
4
|
const [value, setValue] = useState<DepartmentOption | undefined>(departmentOptions[1]);
|
package/storybook-static/assets/{SelectOptionContent-DXq8ymaG.js → SelectOptionContent-B4SEPdOb.js}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-DaJPX7QV.js";import{a as n,i as r}from"./utils-DUM89eIj.js";import{n as i,t as a}from"./ui.module-B48csOVs.js";var o,s;function c(){return(c=e((()=>{o=t(),s=({text:e,highlight:t})=>t?e.split(RegExp(`(${t})`,`gi`)).map((e,n)=>e.toLowerCase()===t.toLowerCase()?(0,o.jsx)(`mark`,{children:e},n):e):e})))()}function l({label:e,code:t,highlight:r,labelClassName:a,codeClassName:o}){return(0,u.jsxs)(`div`,{className:i.uiOptionBase,children:[(0,u.jsx)(`div`,{className:n(i.uiOptionText,`flexEllipsis`,a),children:(0,u.jsx)(s,{text:e,highlight:r})}),t&&(0,u.jsx)(`div`,{className:n(i.uiOptionCode,o),children:(0,u.jsx)(s,{text:t,highlight:r})})]})}var u;function d(){return(d=e((()=>{r(),c(),a(),u=t(),l.__docgenInfo={description:`Универсальный рендерер опции. Используется и в single-select, и в multi-select.`,methods:[],displayName:`SelectOptionContent`,props:{label:{required:!0,tsType:{name:`string`},description:``},code:{required:!1,tsType:{name:`string`},description:``},highlight:{required:!1,tsType:{name:`string`},description:``},labelClassName:{required:!1,tsType:{name:`string`},description:`Приватный визуальный modifier label для специализированного владельца option.`},codeClassName:{required:!1,tsType:{name:`string`},description:`Отдельный modifier code, потому что code задаёт собственный variable-font weight.`}}}})))()}export{d as n,l as t};
|
package/storybook-static/assets/{SerializableSelect-Wq154MOD.js → SerializableSelect-ILpc54MV.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{n as t}from"./iframe-DaJPX7QV.js";import{i as n,r}from"./react-qN2cStNd.js";import{a as i,d as a,f as o,l as s,m as c,n as l,p as u,r as d,u as f}from"./blocks-S8USJ7mc.js";import{a as p,i as m,n as h,o as g,r as _,s as v,t as y}from"./SerializableSelect.stories-39INaLuZ.js";function b(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(s,{of:p,parameters:{docs:{toc:!0}}}),`
|
|
2
2
|
`,(0,S.jsx)(u,{children:`SerializableSelect`}),`
|
|
3
3
|
`,(0,S.jsx)(o,{children:`Select для сериализуемых значений и конфигурационных сценариев с key/label описанием option`}),`
|
|
4
4
|
`,(0,S.jsx)(t.p,{children:`SerializableSelect уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
|