@ryuzaki13/react-foundation-ui 1.5.5 → 1.5.6
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/disclosure/index.js +2 -3
- package/dist/disclosure/index.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +1 -1
- package/storybook-static/assets/{Badge-Cy0HXIr5.js → Badge-BiiRjdOi.js} +1 -1
- package/storybook-static/assets/{Badge.stories-CmzQahZl.js → Badge.stories-lSXnbNqy.js} +1 -1
- package/storybook-static/assets/{Button-BYDec2zN.js → Button-CjaNN6rV.js} +1 -1
- package/storybook-static/assets/{Button-G_ZnGyXY.js → Button-DMlznmSQ.js} +1 -1
- package/storybook-static/assets/{Button.stories-DKtOUA8L.js → Button.stories-BYtMxH0y.js} +1 -1
- package/storybook-static/assets/{CalendarView-D4HgymQc.js → CalendarView-BMJ6hyvh.js} +1 -1
- package/storybook-static/assets/{CheckBox-DdyYpHip.js → CheckBox-BTR1-W6r.js} +1 -1
- package/storybook-static/assets/{CheckBox-C99Hl-lm.js → CheckBox-PJCZFi85.js} +1 -1
- package/storybook-static/assets/{CheckBox.stories-CEKyfP3d.js → CheckBox.stories-COqnnc3-.js} +1 -1
- package/storybook-static/assets/{Color-6AOWCN3U-lPm5uN2n.js → Color-6AOWCN3U-VUHIzkg_.js} +1 -1
- package/storybook-static/assets/{ContextMenu-DQv1v1zy.js → ContextMenu-0zHy_xbK.js} +1 -1
- package/storybook-static/assets/{ContextMenu-BMqXGc8f.js → ContextMenu-Bh4oHP6K.js} +1 -1
- package/storybook-static/assets/{ContextMenu.stories-Dv0PbUYq.js → ContextMenu.stories-NMukUvNY.js} +1 -1
- package/storybook-static/assets/{DateInput-DakqiSFb.js → DateInput-CNO6uPbo.js} +1 -1
- package/storybook-static/assets/{DateInput-Bv6Hhu6A.js → DateInput-kNvOe_qw.js} +1 -1
- package/storybook-static/assets/{DateInput.stories-Cba_7cj5.js → DateInput.stories-DGrl1NRg.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-R8gpZJUt.js → DateRangePresetSelect-CfuLAxW0.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-BmEPKVFD.js → DateRangePresetSelect-DVe-KZEx.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect.stories-BugmuzbR.js → DateRangePresetSelect.stories-28swhHV5.js} +1 -1
- package/storybook-static/assets/{Detail-BBic5raN.js → Detail-DjP_T3Yg.js} +1 -1
- package/storybook-static/assets/{Detail.stories-Dcvx2XeS.js → Detail.stories-CUigXvmv.js} +1 -1
- package/storybook-static/assets/{Dialog-NVtu2Lfd.js → Dialog-BbfwcIzl.js} +1 -1
- package/storybook-static/assets/{Dialog-aECS25qq.js → Dialog-PPguLwie.js} +1 -1
- package/storybook-static/assets/{Dialog.stories-BlE8KyqF.js → Dialog.stories-CDKvce2w.js} +1 -1
- package/storybook-static/assets/{Disclosure-CMtpfiPs.js → Disclosure-DfjeNfkn.js} +1 -1
- package/storybook-static/assets/{Disclosure.stories-CQtDJC0Y.js → Disclosure.stories-Dz3sSy2W.js} +1 -1
- package/storybook-static/assets/DisclosureGroup-BFWSlYOk.css +1 -0
- package/storybook-static/assets/DisclosureGroup-C4o0IITt.js +2 -0
- package/storybook-static/assets/{DocsRenderer-JROSPFPF-CpcMEXZo.js → DocsRenderer-JROSPFPF-BiMFt7_A.js} +1 -1
- package/storybook-static/assets/{DropZone-CGk3TQs_.js → DropZone-C3oRa6sQ.js} +1 -1
- package/storybook-static/assets/{DropZone-DSkgQNJy.js → DropZone-Cw3X-9Xt.js} +1 -1
- package/storybook-static/assets/{DropZone.stories-gbnC2zmJ.js → DropZone.stories-LfxThH0b.js} +1 -1
- package/storybook-static/assets/{DropdownMenu-CIwvcBv7.js → DropdownMenu-CPj2r3k-.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel-C-xRvGLK.js → ExpandableActionPanel-DAzBwv3l.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel.stories-DLM9Ngrq.js → ExpandableActionPanel.stories-CJwc_cQU.js} +1 -1
- package/storybook-static/assets/{Flex-BZPZFjuo.js → Flex-Rsf5s2Qh.js} +1 -1
- package/storybook-static/assets/{Flex.stories-C-GWEtfM.js → Flex.stories-C4LjuUoy.js} +1 -1
- package/storybook-static/assets/{FloatingPopover-DPYP9R5G.js → FloatingPopover-QXZeXRkJ.js} +1 -1
- package/storybook-static/assets/{FormattedTableCell-DAa1fbw9.js → FormattedTableCell-YhiJaAK4.js} +1 -1
- package/storybook-static/assets/{Grid-CouPzQim.js → Grid-BnEITS4J.js} +1 -1
- package/storybook-static/assets/{Grid.stories-DRy5MjMl.js → Grid.stories-CpCGadoX.js} +1 -1
- package/storybook-static/assets/{ImageCropper.stories-UkAS9yEp.js → ImageCropper.stories-CQZ6x_Ob.js} +1 -1
- package/storybook-static/assets/{ImageRenderer-DG9JMH12.js → ImageRenderer-CQSICbwz.js} +1 -1
- package/storybook-static/assets/{ImageRenderer.stories-BTTGZ1gl.js → ImageRenderer.stories-CGFEpwg9.js} +1 -1
- package/storybook-static/assets/{ImageView.stories-kHf-FdmO.js → ImageView.stories-Cu4_LfLg.js} +1 -1
- package/storybook-static/assets/{ImageViewer.stories-D09Y8qy7.js → ImageViewer.stories-B2zHeVgq.js} +2 -2
- package/storybook-static/assets/{ImageViewerRuntime-Bj8A9MgR.js → ImageViewerRuntime-CQBT2XUj.js} +1 -1
- package/storybook-static/assets/{Input-g2XrzU2e.js → Input-C2Lss7is.js} +1 -1
- package/storybook-static/assets/{Input-CLXuEb2-.js → Input-D7iiHnIH.js} +1 -1
- package/storybook-static/assets/{Input.stories-ia7ttPQv.js → Input.stories-BWwVCwT-.js} +1 -1
- package/storybook-static/assets/{InputDateTime-9jtVktvp.js → InputDateTime-DM3BFpr1.js} +1 -1
- package/storybook-static/assets/{InputDateTime.stories-QMtC2jN7.js → InputDateTime.stories-DYonovnC.js} +1 -1
- package/storybook-static/assets/{InputFile-CniSRV0z.js → InputFile-BSVH6QKl.js} +1 -1
- package/storybook-static/assets/{InputFile-Dv5BpleO.js → InputFile-G-H8FqNn.js} +1 -1
- package/storybook-static/assets/{InputFile.stories-CM1CpvyA.js → InputFile.stories-CN-yFeRD.js} +1 -1
- package/storybook-static/assets/{InputFiles-BTOdLOY4.js → InputFiles-CA7eAjuN.js} +1 -1
- package/storybook-static/assets/{InputFiles-CsbUWxMN.js → InputFiles-DnYodbhi.js} +1 -1
- package/storybook-static/assets/{InputFiles.stories-CSGb3Fg6.js → InputFiles.stories--iCRqdJV.js} +1 -1
- package/storybook-static/assets/{InputFilesList-YZLWgLqU.js → InputFilesList-BhOSPaGs.js} +1 -1
- package/storybook-static/assets/{InputImage-CoqzaT5z.js → InputImage-BPmp_DbZ.js} +1 -1
- package/storybook-static/assets/{InputImage-Ct2PIHnB.js → InputImage-BwWAi8ze.js} +1 -1
- package/storybook-static/assets/{InputImage.stories-48QPNNvb.js → InputImage.stories-_XP04DfA.js} +1 -1
- package/storybook-static/assets/{InteractiveComponents.stories-DKpEH8Wn.js → InteractiveComponents.stories-CLEBQnZj.js} +2 -2
- package/storybook-static/assets/{LayoutPicker-C14HuoJT.js → LayoutPicker-Bz8Vo6L7.js} +1 -1
- package/storybook-static/assets/{LayoutPicker-CBKIOA6m.js → LayoutPicker-DrQx5OwE.js} +1 -1
- package/storybook-static/assets/{LayoutPicker.stories-Cbdev2zd.js → LayoutPicker.stories-CBqPwt3h.js} +1 -1
- package/storybook-static/assets/{Listbox-DGdrVenc.js → Listbox-B7Z7L_t3.js} +1 -1
- package/storybook-static/assets/{Listbox-Mqn7EoPt.js → Listbox-BbSsDx2u.js} +1 -1
- package/storybook-static/assets/{Listbox.stories-hZtjBKIX.js → Listbox.stories-BeFIh3J1.js} +1 -1
- package/storybook-static/assets/{Modal-DZgFrzRQ.js → Modal-Cob4DPKq.js} +1 -1
- package/storybook-static/assets/{Modal.stories-W1kjdQpw.js → Modal.stories-DYsHSBH7.js} +1 -1
- package/storybook-static/assets/{ModalManagerProvider-CDpI_bMR.js → ModalManagerProvider-DPGYpfId.js} +1 -1
- package/storybook-static/assets/{MultiSelect-CYLKB_VV.js → MultiSelect-BgMw4DIC.js} +1 -1
- package/storybook-static/assets/{MultiSelect-Cujmvoxp.js → MultiSelect-DKv6Qe08.js} +1 -1
- package/storybook-static/assets/{MultiSelect.stories-BnmOPMcq.js → MultiSelect.stories-BdRVZGqL.js} +1 -1
- package/storybook-static/assets/{NoData-B4H6VMN9.js → NoData-B33Cn4pA.js} +1 -1
- package/storybook-static/assets/{NotificationsHost-DGolEXP8.js → NotificationsHost-DDcfMtWv.js} +1 -1
- package/storybook-static/assets/{NotificationsHost.stories-DOZprbOB.js → NotificationsHost.stories-sQMqBW2S.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect-zz9GzQ4E.js → ODataMultiSelect-CT4h5T5J.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect.stories-DDakF7DF.js → ODataMultiSelect.stories-D7bd1KpX.js} +1 -1
- package/storybook-static/assets/{ODataSelect-Dh1wVGqr.js → ODataSelect-_FeWsMNO.js} +1 -1
- package/storybook-static/assets/{ODataSelect.stories-Bd7IqAJz.js → ODataSelect.stories-D9x-rhIV.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect-CcSYG9z8.js → ODataTreeMultiSelect-Lfa06t8R.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect.stories-DzgVS2uv.js → ODataTreeMultiSelect.stories-BZwup1O6.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect-DJIwvxiv.js → ODataTreeSelect-CoVG8YGb.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect.stories-DjUg9PpL.js → ODataTreeSelect.stories-CFEOk1B4.js} +1 -1
- package/storybook-static/assets/{OneStepScroller-Dtw3XxR_.js → OneStepScroller-Ba810Z0K.js} +1 -1
- package/storybook-static/assets/{PeriodSelect-BFLetGco.js → PeriodSelect-U8W5a0AG.js} +1 -1
- package/storybook-static/assets/{PeriodSelect-BlHfE2Sb.js → PeriodSelect-p_hunoMx.js} +1 -1
- package/storybook-static/assets/{PeriodSelect.stories-DhVcKcfE.js → PeriodSelect.stories-iXos1Qm2.js} +1 -1
- package/storybook-static/assets/{PickerSelectionToolbar-DzMAzpep.js → PickerSelectionToolbar-BQvUp2gy.js} +1 -1
- package/storybook-static/assets/{PickerTriggerActions-BKQ28AXr.js → PickerTriggerActions-Bn7w0HQj.js} +1 -1
- package/storybook-static/assets/{Popover-BrEAV6tC.js → Popover-CAmdlvk7.js} +1 -1
- package/storybook-static/assets/{Popover-3iAlzyR9.js → Popover-D5X_VDjs.js} +1 -1
- package/storybook-static/assets/{Popover.stories-EbIGa6Xz.js → Popover.stories-4L2FVe7h.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-BxBcwRrC.js → PresetRangeDateInput-BSoQmjSq.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-Cmyn-fEA.js → PresetRangeDateInput-D_uUOybG.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput.stories-BEiKgo4b.js → PresetRangeDateInput.stories-fPfgo6Ou.js} +1 -1
- package/storybook-static/assets/{PresetSelect-DzafFdIZ.js → PresetSelect-ClINdcBe.js} +1 -1
- package/storybook-static/assets/{RadioButton-CP2MTHNG.js → RadioButton-CTQ3NULx.js} +1 -1
- package/storybook-static/assets/{RadioButton-BelOYlsv.js → RadioButton-sTaoMULx.js} +1 -1
- package/storybook-static/assets/{RadioButton.stories-C2At3zOQ.js → RadioButton.stories-QM_hXT2F.js} +1 -1
- package/storybook-static/assets/{RadioGroup-CMerSWPc.js → RadioGroup-Bi6nDRg3.js} +1 -1
- package/storybook-static/assets/{RadioGroup-zJ6x863B.js → RadioGroup-ByD3Q99Y.js} +1 -1
- package/storybook-static/assets/{RadioGroup.stories-DP0Rb8kU.js → RadioGroup.stories-Msf4GGu2.js} +1 -1
- package/storybook-static/assets/{Scrollable-bLa141TT.js → Scrollable-BX1lUjOe.js} +1 -1
- package/storybook-static/assets/{Select-BuBKmTxm.js → Select-BIdQZ63S.js} +1 -1
- package/storybook-static/assets/{Select-iRRHKOR9.js → Select-DZI40eOj.js} +1 -1
- package/storybook-static/assets/{Select.stories-DsK2KAnc.js → Select.stories-DYH2fWV8.js} +1 -1
- package/storybook-static/assets/{SelectOptionContent-C5EAnQ_6.js → SelectOptionContent-BBkx-6Ex.js} +1 -1
- package/storybook-static/assets/{SerializableSelect-D8W_hXze.js → SerializableSelect-D8xPL7XQ.js} +1 -1
- package/storybook-static/assets/{SerializableSelect.stories-DwSCbcn8.js → SerializableSelect.stories-BWHyUHbr.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-qTqbSGck.js → SingleDateTimeInput-CTvNbcZ6.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-CuTy_t_1.js → SingleDateTimeInput-DfsGAFoU.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput.stories-C_KdNabz.js → SingleDateTimeInput.stories-CoRPRZ4N.js} +1 -1
- package/storybook-static/assets/{Slider-D2-xtMN2.js → Slider-DLtF6vGD.js} +1 -1
- package/storybook-static/assets/{Slider-Zza_tIz2.js → Slider-DjX_Irjn.js} +1 -1
- package/storybook-static/assets/{Slider.stories-Bbgt-EWg.js → Slider.stories-fWpiVW0P.js} +1 -1
- package/storybook-static/assets/{SliderInput-BT-DMyS-.js → SliderInput-BqvH8eHy.js} +1 -1
- package/storybook-static/assets/{SliderInput-C8OO6jI-.js → SliderInput-UCsxAR-B.js} +1 -1
- package/storybook-static/assets/{SliderInput.stories-BZxKunf6.js → SliderInput.stories-hTeZ6jCT.js} +1 -1
- package/storybook-static/assets/{Sortable-BC2UlTFz.js → Sortable-CNtgLPiY.js} +1 -1
- package/storybook-static/assets/{Sortable.stories-i35oL30b.js → Sortable.stories-DaJFxCXl.js} +1 -1
- package/storybook-static/assets/{Splitter-BOMgf1Rr.js → Splitter-PsRXvIfb.js} +1 -1
- package/storybook-static/assets/{Splitter.stories-DayYmTEb.js → Splitter.stories-CNpgsRiE.js} +1 -1
- package/storybook-static/assets/{StateSelect-DRHlFj9s.js → StateSelect-BxRXr-2U.js} +1 -1
- package/storybook-static/assets/{StateSelect-CjBaZyCH.js → StateSelect-_vJdEQd4.js} +1 -1
- package/storybook-static/assets/{StateSelect.stories-CapA4Oy1.js → StateSelect.stories-Drn802U8.js} +1 -1
- package/storybook-static/assets/{StringToggle.stories-B9p8YjZk.js → StringToggle.stories-D7jGapnI.js} +1 -1
- package/storybook-static/assets/{Switch-D3OypknC.js → Switch-B_3CFRDw.js} +1 -1
- package/storybook-static/assets/{Switch-Bs4yhyjR.js → Switch-CZpcIIzj.js} +1 -1
- package/storybook-static/assets/{Switch.stories-Eli-Nxhy.js → Switch.stories-7stb2lKH.js} +1 -1
- package/storybook-static/assets/{Table-B4yXrSY8.js → Table-ozF5MS3q.js} +1 -1
- package/storybook-static/assets/{Table.stories-DKbzDmyV.js → Table.stories-BiQiy3QV.js} +1 -1
- package/storybook-static/assets/{Tabs-WGjWEgV9.js → Tabs-Dr4gaN0z.js} +1 -1
- package/storybook-static/assets/{Tabs.stories-u3YDpejg.js → Tabs.stories-Kz9Mnt73.js} +1 -1
- package/storybook-static/assets/{TabsBox-B37Xpp9P.js → TabsBox-6G7F_Vo9.js} +1 -1
- package/storybook-static/assets/{TagInput-Blo36mAx.js → TagInput-CIsnKs98.js} +1 -1
- package/storybook-static/assets/{TagInput.stories-BanBYkO8.js → TagInput.stories-Cbk6A71f.js} +1 -1
- package/storybook-static/assets/{Text-C1at2dMq.js → Text-DEUhj_FL.js} +1 -1
- package/storybook-static/assets/{Textarea-S7xMlxUP.js → Textarea-BoLolqIc.js} +1 -1
- package/storybook-static/assets/{Textarea-B02c6Ggv.js → Textarea-Cv8Iiqm7.js} +1 -1
- package/storybook-static/assets/{Textarea.stories-CFLZGItr.js → Textarea.stories-D8wfZGw3.js} +1 -1
- package/storybook-static/assets/{TimePanel-CZ2CNXd5.js → TimePanel-DbWoLCxS.js} +1 -1
- package/storybook-static/assets/{TimePanel.stories-DbgZ63KX.js → TimePanel.stories-BX3XAzvM.js} +1 -1
- package/storybook-static/assets/{Toggle-BjyGbAMN.js → Toggle-BAhzEihH.js} +1 -1
- package/storybook-static/assets/{Toggle-BZsOOBwn.js → Toggle-DN84PUdA.js} +1 -1
- package/storybook-static/assets/{Toggle.stories-Cb3o7efj.js → Toggle.stories-DF-aBY0T.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-CFNKXcU5.js → TreeMultiSelect-BTe_-dq5.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-Bp9Ypu3w.js → TreeMultiSelect-C1iVfpMl.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect.stories-39QVC3ju.js → TreeMultiSelect.stories-DobJG0cZ.js} +1 -1
- package/storybook-static/assets/{TreePickerBase-B4nW8V67.js → TreePickerBase-DayQwVwR.js} +1 -1
- package/storybook-static/assets/{TreeSelect-6lILMCzp.js → TreeSelect-CJV0O91H.js} +1 -1
- package/storybook-static/assets/{TreeSelect-DHjzbXxe.js → TreeSelect-D6L3D0h4.js} +1 -1
- package/storybook-static/assets/{TreeSelect.stories-D7olQgJr.js → TreeSelect.stories-s3-wydcP.js} +1 -1
- package/storybook-static/assets/{TreeTable-Dw2YFyUT.js → TreeTable-fbVtFU3l.js} +1 -1
- package/storybook-static/assets/{TreeTable.stories-DdrbXMIl.js → TreeTable.stories-WSlQn2jk.js} +1 -1
- package/storybook-static/assets/{async-CbzeGif1.js → async-D6nAWhc1.js} +1 -1
- package/storybook-static/assets/{blocks-DQl3eTFV.js → blocks-DCcg3Usb.js} +3 -3
- package/storybook-static/assets/{browserAndReact-CC7HF1qC.js → browserAndReact-CcRiDbNd.js} +1 -1
- package/storybook-static/assets/{check-D-psTYia.js → check-CmUKUPJO.js} +1 -1
- package/storybook-static/assets/{chevron-down-Das8TW8b.js → chevron-down-BDWEK49G.js} +1 -1
- package/storybook-static/assets/{chevron-left-Dq0qJ7av.js → chevron-left-CGk7Zpej.js} +1 -1
- package/storybook-static/assets/{chevron-right-Ctnpw34b.js → chevron-right-CT64vlCm.js} +1 -1
- package/storybook-static/assets/{chunk-W22LQPXL-D-HehNH1.js → chunk-W22LQPXL-CxBe5sB2.js} +1 -1
- package/storybook-static/assets/{circle-alert-25c5aKIP.js → circle-alert-POx9wimX.js} +1 -1
- package/storybook-static/assets/{circle-check-DXXEdCIE.js → circle-check-BlI17qP5.js} +1 -1
- package/storybook-static/assets/{components-Dg-CCU90.js → components-D__s8Hie.js} +3 -3
- package/storybook-static/assets/{contextMenu-DTmHIVHM.js → contextMenu-DK_TntWE.js} +1 -1
- package/storybook-static/assets/{defaultRenderers-IYkjKXvR.js → defaultRenderers-DBXPZtpT.js} +1 -1
- package/storybook-static/assets/{download-D5fSxET6.js → download-RGyJzMcA.js} +1 -1
- package/storybook-static/assets/{filesAndExcel-CHPqG7k9.js → filesAndExcel-DcPYf9n5.js} +1 -1
- package/storybook-static/assets/{floating-ui.react-Z3F8qO7F.js → floating-ui.react-CMX7peH7.js} +1 -1
- package/storybook-static/assets/{formatters-BH5xiyRy.js → formatters-BwvzqJ-Y.js} +1 -1
- package/storybook-static/assets/{formatters-runtime-D9WhzCIX.js → formatters-runtime-DrmDzmeG.js} +1 -1
- package/storybook-static/assets/{foundationLib-BMiwtR-Z.js → foundationLib-x4242gln.js} +1 -1
- package/storybook-static/assets/{hooks-Ck7lIgxa.js → hooks-FBRSoUmb.js} +1 -1
- package/storybook-static/assets/{iframe-CYobheWD.js → iframe-DBSrNt2a.js} +3 -3
- package/storybook-static/assets/iframe-xDaji_wj.js +1 -0
- package/storybook-static/assets/{info-YO6kz7oI.js → info-Wi50bdLM.js} +1 -1
- package/storybook-static/assets/{odata-DY-n4qXl.js → odata-BBTqO7nX.js} +1 -1
- package/storybook-static/assets/{odataAndTables-CEDAX_B4.js → odataAndTables-DEn1lG-3.js} +1 -1
- package/storybook-static/assets/{odataFetchFn-OTPWXX4r.js → odataFetchFn-BT59Jmrl.js} +1 -1
- package/storybook-static/assets/{odataStoryFixtures-BtTotZS_.js → odataStoryFixtures-CYqFNpE_.js} +1 -1
- package/storybook-static/assets/{persisted-XkVJ2BSX.js → persisted-CZnECRrd.js} +1 -1
- package/storybook-static/assets/{pureUtilities-CXYqAXzu.js → pureUtilities-BIPiVbpd.js} +1 -1
- package/storybook-static/assets/{react-CNEBWIpL.js → react-vWCcOuxm.js} +1 -1
- package/storybook-static/assets/{refresh-cw-tPAOjIhX.js → refresh-cw-CnbDJa0D.js} +1 -1
- package/storybook-static/assets/{runtimeAndState-4rwCbfx1.js → runtimeAndState-BqhoW8HS.js} +1 -1
- package/storybook-static/assets/{settings-2-Aj50ai8G.js → settings-2-CtlfzeoJ.js} +1 -1
- package/storybook-static/assets/{sortable-CzYI9YKz.js → sortable-MoyiSprv.js} +1 -1
- package/storybook-static/assets/{syntaxhighlighter-T5IQBZDB-IJFHSaoq.js → syntaxhighlighter-T5IQBZDB-CLTW-on9.js} +1 -1
- package/storybook-static/assets/{trash-2-C0LHJG3P.js → trash-2-D4ETgmHQ.js} +1 -1
- package/storybook-static/assets/{triangle-alert-D1MS3de_.js → triangle-alert-BhoF9j4U.js} +1 -1
- package/storybook-static/assets/{useODataSelectBase-ComGcCMU.js → useODataSelectBase-oxkyJY_R.js} +1 -1
- package/storybook-static/assets/{useODataTreeData-zmGHo0kF.js → useODataTreeData-B2phJvDl.js} +1 -1
- package/storybook-static/assets/{usePickerQuery-C1tepQnh.js → usePickerQuery-BN54SBQ9.js} +1 -1
- package/storybook-static/assets/{usePickerTriggerController-Cxo7izm1.js → usePickerTriggerController-6XAF3prJ.js} +1 -1
- package/storybook-static/assets/{x-Dzd3S4ku.js → x-CdBCVC44.js} +1 -1
- package/storybook-static/iframe.html +2 -2
- package/storybook-static/project.json +1 -1
- package/storybook-static/assets/DisclosureGroup-BBYuBGIn.css +0 -1
- package/storybook-static/assets/DisclosureGroup-C7kadoVD.js +0 -2
- package/storybook-static/assets/iframe-Ba8ub8fM.js +0 -1
|
@@ -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"./Switch-Bs4yhyjR.js";import{i as a,n as o,r as s,t as ee}from"./DisclosureGroup-C7kadoVD.js";import{n as c,t as te}from"./ExpandableActionPanel-C-xRvGLK.js";import{n as ne,t as re}from"./RadioButton-BelOYlsv.js";import{n as l,t as ie}from"./SingleDateTimeInput-CuTy_t_1.js";import{n as u,t as ae}from"./CheckBox-DdyYpHip.js";import{n as d,t as oe}from"./DropZone-DSkgQNJy.js";import{n as f}from"./iframe-CYobheWD.js";import{n as p,t as m}from"./Popover-BrEAV6tC.js";import{n as se,t as h}from"./Button-G_ZnGyXY.js";import{n as ce,t as g}from"./ContextMenu-DQv1v1zy.js";import{a as le,i as ue,n as de,r as fe,s as pe,t as me}from"./ModalManagerProvider-CDpI_bMR.js";import{n as _,t as v}from"./DropdownMenu-CIwvcBv7.js";import{n as he,r as ge}from"./DateInput-DakqiSFb.js";import{a as y,c as b,i as x,t as _e}from"./Input-g2XrzU2e.js";import{n as ve,t as S}from"./RadioGroup-CMerSWPc.js";import{n as C,t as ye}from"./Select-iRRHKOR9.js";import{n as w,t as be}from"./DateRangePresetSelect-R8gpZJUt.js";import{n as T,t as xe}from"./Dialog-aECS25qq.js";import{n as E,t as Se}from"./InputFiles-BTOdLOY4.js";import{n as D,t as Ce}from"./InputFile-CniSRV0z.js";import{n as O,t as we}from"./InputImage-CoqzaT5z.js";import{n as k,t as Te}from"./LayoutPicker-C14HuoJT.js";import{n as A,t as Ee}from"./Listbox-Mqn7EoPt.js";import{n as j,t as De}from"./MultiSelect-Cujmvoxp.js";import{n as M,t as Oe}from"./PeriodSelect-BFLetGco.js";import{n as N,t as ke}from"./PresetRangeDateInput-BxBcwRrC.js";import{i as Ae,t as je}from"./Slider-D2-xtMN2.js";import{r as Me,t as Ne}from"./SliderInput-C8OO6jI-.js";import{n as Pe,t as Fe}from"./StateSelect-DRHlFj9s.js";import{n as Ie,t as Le}from"./TabsBox-B37Xpp9P.js";import{n as Re,t as ze}from"./TagInput-Blo36mAx.js";import{n as P,t as Be}from"./Textarea-B02c6Ggv.js";import{n as F,t as Ve}from"./Toggle-BjyGbAMN.js";import{n as He,t as I}from"./TreeMultiSelect-CFNKXcU5.js";import{n as Ue,t as We}from"./treeStoryFixtures-Ci7STpiz.js";function Ge({onChange:e,...t}){let[n,r]=(0,L.useState)(()=>t.defaultValue??t.value??``),[i,a]=(0,L.useState)(()=>t.defaultValue??t.value??``),o=t=>{let n=t.trim();n!==i&&(a(n),e(n))},s=()=>{r(``),a(``),e(``)},ee=e=>{e.key===`Enter`&&(e.preventDefault(),o(n))},c=()=>{o(n)},te=e=>{r(e)};return(0,R.jsx)(_e,{...t,value:n,onChange:te,onKeyDown:ee,onBlur:c,onClear:s})}var L,R;function z(){return(z=e((()=>{L=t(n(),1),b(),R=f(),Ge.__docgenInfo={description:``,methods:[],displayName:`InputSearch`,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:`T`},description:"Если начальное состояние может быть `null | undefined`\nзначит `onChange` тоже должен ументь сбрасывать.\nПоэтому такой контрол явно должен передавать `UiBaseProps<AnyType | undefined>`"},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: string) => void`,signature:{arguments:[{type:{name:`string`},name:`value`}],return:{name:`void`}}},description:``},onClear:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},error:{required:!1,tsType:{name:`string`},description:``},onClearError:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},defaultValue:{required:!1,tsType:{name:`string`},description:``},endAdornment:{required:!1,tsType:{name:`ReactNode`},description:``},endAdornmentClassName:{required:!1,tsType:{name:`string`},description:``},endAdornmentWidth:{required:!1,tsType:{name:`string`},description:``}},composes:[`Omit`]}})))()}function B({title:e,children:t}){return(0,U.jsxs)(`section`,{style:W,children:[(0,U.jsx)(`div`,{style:G,children:e}),t]})}function Ke({initialValue:e={},label:t=`TreeMultiSelect`,description:n,optionsLayout:r=`tree`,nodes:i=We,defaultExpandedCodeKeys:a}){let[o,s]=(0,H.useState)(e);return(0,U.jsxs)(`div`,{style:{display:`grid`,gap:12,maxWidth:520},children:[(0,U.jsx)(I,{label:t,description:n,nodes:i,value:o,onChange:s,optionsLayout:r,defaultExpandedCodeKeys:a}),(0,U.jsxs)(`div`,{style:{fontSize:`var(--font-size-sm)`,color:`var(--content-1)`},children:[`Текущее значение: `,JSON.stringify(o)]})]})}function V(){let[e,t]=(0,H.useState)(`Значение`),[n,r]=(0,H.useState)(42),[a,o]=(0,H.useState)(``),[c,ne]=(0,H.useState)(`Комментарий`),[l,u]=(0,H.useState)(!0),[d,f]=(0,H.useState)(!1),[p,se]=(0,H.useState)(`first`),[ce,de]=(0,H.useState)(!0),[pe,_]=(0,H.useState)(!1),[ge,b]=(0,H.useState)(60),[_e,ve]=(0,H.useState)(60),[C,w]=(0,H.useState)(q[0]),[T,E]=(0,H.useState)([J[0]]),[D,O]=(0,H.useState)([`UI`,`Стили`]),[k,A]=(0,H.useState)(`week`),[j,M]=(0,H.useState)(`information`),[N,Ae]=(0,H.useState)(`two-columns`),[Me,Pe]=(0,H.useState)(new Date(2026,2,10)),[Ie,Re]=(0,H.useState)(new Date(2026,2,10,10,30)),[P,F]=(0,H.useState)(`today`),[He,I]=(0,H.useState)([new Date(2026,2,1),new Date(2026,2,10)]),[Ue,We]=(0,H.useState)(`month`),[L,R]=(0,H.useState)(),[z,V]=(0,H.useState)([]),[W,G]=(0,H.useState)(),[Y,X]=(0,H.useState)([]),[Z,Q]=(0,H.useState)(!1),[Ye,$]=(0,H.useState)(!1);return(0,U.jsxs)(`div`,{style:qe,children:[(0,U.jsxs)(B,{title:`Button`,children:[(0,U.jsx)(h,{variant:`transparent`,children:`Действие`}),(0,U.jsx)(h,{variant:`ghost`,children:`Действие`}),(0,U.jsx)(h,{variant:`neutral`,children:`Действие`}),(0,U.jsx)(h,{variant:`neutralOutline`,children:`Действие`}),(0,U.jsx)(h,{variant:`info`,children:`Действие`}),(0,U.jsx)(h,{variant:`infoOutline`,children:`Действие`})]}),(0,U.jsxs)(B,{title:`InputText`,children:[(0,U.jsx)(y,{label:`Текст`,description:`Поле ввода текста`,placeholder:`Введите текст`,disabled:!0,value:e,onChange:t}),(0,U.jsx)(y,{label:`Текст`,description:`Поле ввода текста`,placeholder:`Введите текст`,value:e,onChange:t}),(0,U.jsx)(y,{required:!0,label:`Текст`,description:`Поле ввода текста`,placeholder:`Введите текст`,value:e,onChange:t,onClear:()=>t(``)})]}),(0,U.jsxs)(B,{title:`InputNumber`,children:[(0,U.jsx)(x,{label:`Количество`,value:n,min:0,onChange:r,disabled:!0}),(0,U.jsx)(x,{label:`Количество`,value:n,min:0,onChange:r,required:!0}),(0,U.jsx)(x,{label:`Количество`,value:n,min:0,onChange:r}),(0,U.jsx)(x,{label:`Количество`,value:n,min:0,onChange:r,onClear:()=>r(void 0)})]}),(0,U.jsx)(B,{title:`InputSearch`,children:(0,U.jsx)(Ge,{label:`Поиск`,placeholder:`Найти`,value:a,onChange:o})}),(0,U.jsx)(B,{title:`Textarea`,children:(0,U.jsx)(Be,{label:`Комментарий`,required:!0,placeholder:`Многострочный комментарий`,rows:6,value:c,onChange:ne})}),(0,U.jsxs)(B,{title:`CheckBox`,children:[(0,U.jsx)(ae,{label:`Опция включена`,disabled:!0,value:l,onChange:u}),(0,U.jsx)(ae,{label:`Опция включена`,value:l,onChange:u,indeterminate:!0})]}),(0,U.jsxs)(B,{title:`RadioButton`,children:[(0,U.jsx)(re,{label:`Выбранная опция`,disabled:!0,value:d,onChange:f}),(0,U.jsx)(re,{label:`Выбранная опция`,value:d,onChange:f})]}),(0,U.jsx)(B,{title:`RadioGroup`,children:(0,U.jsxs)(S,{value:p,onChange:se,orientation:`vertical`,"aria-label":`Вариант`,children:[(0,U.jsx)(S.Option,{value:`first`,label:`Первый`}),(0,U.jsx)(S.Option,{value:`second`,label:`Второй`})]})}),(0,U.jsx)(B,{title:`Switch`,children:(0,U.jsx)(i,{label:`Уведомления`,value:ce,onChange:de})}),(0,U.jsx)(B,{title:`Toggle`,children:(0,U.jsx)(Ve,{label:`Режим`,value:pe,onChange:_,checkedText:`Вкл`,uncheckedText:`Выкл`})}),(0,U.jsx)(B,{title:`Slider`,children:(0,U.jsx)(je,{label:`Уровень`,value:ge,min:0,max:100,onChange:b})}),(0,U.jsx)(B,{title:`SliderInput`,children:(0,U.jsx)(Ne,{label:`Порог`,value:_e,min:0,max:100,onChange:ve})}),(0,U.jsxs)(B,{title:`Select`,children:[(0,U.jsx)(ye,{label:`Статус`,options:q,value:C,onChange:w,getOptionKey:e=>e.id,getOptionLabel:e=>e.label}),(0,U.jsx)(ye,{label:`Статус`,searchable:!0,options:q,value:C,onChange:w,getOptionKey:e=>e.id,getOptionLabel:e=>e.label})]}),(0,U.jsx)(B,{title:`MultiSelect`,children:(0,U.jsx)(De,{label:`Города`,items:J,value:T,query:``,codeKey:`code`,textKey:`label`,onChange:E,onQuery:()=>void 0,onOpen:()=>void 0,onClose:()=>void 0})}),(0,U.jsx)(B,{title:`TreeMultiSelect`,children:(0,U.jsx)(Ke,{})}),(0,U.jsx)(B,{title:`TagInput`,children:(0,U.jsx)(ze,{label:`Теги`,placeholder:`Добавить`,value:D,onChange:O})}),(0,U.jsx)(B,{title:`Listbox`,children:(0,U.jsx)(Ee,{options:Je,value:k,onChange:e=>A(e)})}),(0,U.jsx)(B,{title:`StateSelect`,children:(0,U.jsx)(Fe,{label:`Состояние`,value:j,onChange:M})}),(0,U.jsx)(B,{title:`LayoutPicker`,children:(0,U.jsx)(Te,{label:`Раскладка`,value:N,onChange:Ae,showPlaceholder:!0})}),(0,U.jsx)(B,{title:`SingleDateInput`,children:(0,U.jsx)(he,{label:`Дата`,value:Me,onChange:Pe})}),(0,U.jsx)(B,{title:`SingleDateTimeInput`,children:(0,U.jsx)(ie,{label:`Дата и время`,value:Ie,onChange:Re})}),(0,U.jsx)(B,{title:`DateRangePresetSelect`,children:(0,U.jsx)(be,{label:`Период`,value:P??void 0,onChange:e=>F(e??null),onRangeChange:e=>I(e?.range??null),referenceDate:new Date(2026,2,10,12)})}),(0,U.jsx)(B,{title:`PresetRangeDateInput`,children:(0,U.jsx)(ke,{value:He,onChange:I,presetId:P??null,onPresetIdChange:e=>F(e??null),referenceDate:new Date(2026,2,10,12),presetLabel:`Быстрый диапазон`})}),(0,U.jsx)(B,{title:`PeriodSelect`,children:(0,U.jsx)(Oe,{label:`Группировка`,value:Ue,onChange:We})}),(0,U.jsx)(B,{title:`InputFile`,children:(0,U.jsx)(Ce,{label:`Файл`,placeholder:`Выберите файл`,value:L,onChange:R,onClear:()=>R(void 0),readMode:`data-url`})}),(0,U.jsx)(B,{title:`InputFiles`,children:(0,U.jsx)(Se,{label:`Файлы`,placeholder:`Выберите файлы`,value:z,onChange:V,readMode:`data-url`})}),(0,U.jsx)(B,{title:`InputImage`,children:(0,U.jsx)(we,{label:`Изображение`,value:W,onChange:G,onClear:()=>G(void 0)})}),(0,U.jsx)(B,{title:`DropZone`,children:(0,U.jsx)(oe,{value:Y,multiple:!0,readMode:`data-url`,onChange:e=>X(e),children:(0,U.jsx)(`div`,{style:{display:`grid`,placeItems:`center`,minHeight:`6em`,textAlign:`center`},children:Y.length?`Файлов: ${Y.length}`:`Перетащите файлы`})})}),(0,U.jsx)(B,{title:`TabsBox`,children:(0,U.jsx)(Le,{defaultValue:`first`,bordered:!0,items:[{id:`first`,title:`Первый`,content:`Содержимое`},{id:`second`,title:`Второй`,content:`Другая панель`},{id:`third`,title:`Ещё одна`,content:`Другая панель`},{id:`quat`,title:`Четвертая`,content:`Другая панель`}]})}),(0,U.jsx)(B,{title:`TabsBox`,children:(0,U.jsx)(Le,{defaultValue:`first`,orientation:`vertical`,bordered:!0,items:[{id:`first`,title:`Первый`,content:`Содержимое`},{id:`second`,title:`Второй`,content:`Другая панель`},{id:`third`,title:`Ещё одна`,content:`Другая панель`},{id:`quat`,title:`Четвертая`,content:`Другая панель`}]})}),(0,U.jsxs)(B,{title:`Disclosure`,children:[(0,U.jsxs)(ee,{children:[(0,U.jsx)(s,{label:`Раскрыть 1`,children:`Содержимое панели 1`}),(0,U.jsx)(s,{label:`Раскрыть 2`,children:`Содержимое панели 2`}),(0,U.jsx)(s,{label:`Раскрыть 3`,children:`Содержимое панели 3`}),(0,U.jsx)(s,{label:`Раскрыть 4`,children:`Содержимое панели 4`})]}),(0,U.jsx)(s,{label:`Раскрыть 1`,children:`Содержимое панели 1`})]}),(0,U.jsx)(B,{title:`ExpandableActionPanel`,children:(0,U.jsx)(te,{children:(0,U.jsx)(h,{variant:`transparent`,children:`Действие`})})}),(0,U.jsx)(B,{title:`Popover`,children:(0,U.jsxs)(m,{children:[(0,U.jsx)(m.Trigger,{children:(0,U.jsx)(h,{style:K,children:`Открыть`})}),(0,U.jsx)(m.Content,{children:({setClose:e})=>(0,U.jsxs)(`div`,{style:{display:`grid`,gap:`0.75em`,padding:`1em`,maxWidth:`14em`},children:[(0,U.jsx)(`div`,{children:`Содержимое popover`}),(0,U.jsx)(h,{onClick:e,children:`Закрыть`})]})})]})}),(0,U.jsx)(B,{title:`DropdownMenu`,children:(0,U.jsxs)(v,{children:[(0,U.jsx)(v.Trigger,{children:(0,U.jsx)(h,{style:K,children:`Действия`})}),(0,U.jsxs)(v.Content,{children:[(0,U.jsx)(v.Item,{children:`Редактировать`}),(0,U.jsx)(v.Item,{children:`Удалить`})]})]})}),(0,U.jsx)(B,{title:`ContextMenu`,children:(0,U.jsxs)(g,{children:[(0,U.jsx)(g.Trigger,{children:(0,U.jsx)(`div`,{style:{display:`grid`,placeItems:`center`,minHeight:`6em`,padding:`0.75em`,border:`var(--border)`,borderRadius:`var(--radius-sm)`,textAlign:`center`},children:`Правая кнопка мыши`})}),(0,U.jsxs)(g.Content,{children:[(0,U.jsx)(g.Item,{children:`Переименовать`}),(0,U.jsx)(g.Item,{children:`Удалить`})]})]})}),(0,U.jsxs)(B,{title:`Dialog`,children:[(0,U.jsx)(h,{style:K,onClick:()=>Q(!0),children:`Открыть диалог`}),(0,U.jsx)(xe,{title:`Подтверждение`,description:`Подтвердите действие`,open:Z,onClose:()=>Q(!1),children:(0,U.jsx)(h,{onClick:()=>Q(!1),children:`Закрыть`})})]}),(0,U.jsx)(B,{title:`Modal`,children:(0,U.jsxs)(me,{children:[(0,U.jsx)(h,{style:K,onClick:()=>$(!0),children:`Открыть модалку`}),(0,U.jsxs)(fe,{title:`Параметры`,isOpen:Ye,onClose:()=>$(!1),children:[(0,U.jsx)(ue,{children:`Содержимое модального окна`}),(0,U.jsx)(le,{children:(0,U.jsx)(h,{onClick:()=>$(!1),children:`Готово`})})]})]})})]})}var H,U,qe,W,G,K,q,J,Je,Y,X,Z;function Q(){return(Q=e((()=>{H=n(),se(),u(),ce(),_(),ge(),w(),l(),T(),a(),o(),d(),c(),b(),D(),E(),O(),z(),k(),A(),pe(),de(),j(),M(),p(),N(),ne(),ve(),C(),Ae(),Me(),Pe(),r(),Ie(),Re(),P(),F(),He(),Ue(),U=f(),qe={display:`grid`,gridTemplateColumns:`repeat(auto-fit, minmax(var(--ui-width-xl), 1fr))`,alignItems:`start`,gap:`2em`,padding:`2em`},W={display:`grid`,alignContent:`start`,gridTemplateColumns:`100%`,gap:`0.5em`,padding:`1em`,overflow:`hidden`,borderRadius:`var(--radius-md)`,background:`var(--surface-0)`,boxShadow:`var(--shadow-lg)`},G={fontWeight:700,color:`var(--content-0)`},K={width:`100%`},q=[{id:`draft`,label:`Черновик`},{id:`review`,label:`На согласовании`},{id:`published`,label:`Опубликован`}],J=[{code:`EKB`,label:`Екатеринбург`},{code:`KZN`,label:`Казань`},{code:`MOW`,label:`Москва`}],Je=[{value:`day`,label:`День`},{value:`week`,label:`Неделя`},{value:`month`,label:`Месяц`}],Y={title:`Development/Interactive components`,component:V,parameters:{layout:`fullscreen`,docs:{description:{component:`Быстрая витрина интерактивных UI-компонентов для разработки и проверки общих стилей.`}}}},X={},V.__docgenInfo={description:``,methods:[],displayName:`InteractiveComponents`},V.parameters={...V.parameters,docs:{...V.parameters?.docs,source:{originalSource:`function InteractiveComponents() {
|
|
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"./Switch-CZpcIIzj.js";import{i as a,n as o,r as s,t as ee}from"./DisclosureGroup-C4o0IITt.js";import{n as c,t as te}from"./ExpandableActionPanel-DAzBwv3l.js";import{n as ne,t as re}from"./RadioButton-sTaoMULx.js";import{n as l,t as ie}from"./SingleDateTimeInput-DfsGAFoU.js";import{n as u,t as ae}from"./CheckBox-BTR1-W6r.js";import{n as d,t as oe}from"./DropZone-Cw3X-9Xt.js";import{n as f}from"./iframe-DBSrNt2a.js";import{n as p,t as m}from"./Popover-CAmdlvk7.js";import{n as se,t as h}from"./Button-DMlznmSQ.js";import{n as ce,t as g}from"./ContextMenu-0zHy_xbK.js";import{a as le,i as ue,n as de,r as fe,s as pe,t as me}from"./ModalManagerProvider-DPGYpfId.js";import{n as _,t as v}from"./DropdownMenu-CPj2r3k-.js";import{n as he,r as ge}from"./DateInput-CNO6uPbo.js";import{a as y,c as b,i as x,t as _e}from"./Input-C2Lss7is.js";import{n as ve,t as S}from"./RadioGroup-Bi6nDRg3.js";import{n as C,t as ye}from"./Select-DZI40eOj.js";import{n as w,t as be}from"./DateRangePresetSelect-CfuLAxW0.js";import{n as T,t as xe}from"./Dialog-PPguLwie.js";import{n as E,t as Se}from"./InputFiles-CA7eAjuN.js";import{n as D,t as Ce}from"./InputFile-BSVH6QKl.js";import{n as O,t as we}from"./InputImage-BPmp_DbZ.js";import{n as k,t as Te}from"./LayoutPicker-Bz8Vo6L7.js";import{n as A,t as Ee}from"./Listbox-BbSsDx2u.js";import{n as j,t as De}from"./MultiSelect-DKv6Qe08.js";import{n as M,t as Oe}from"./PeriodSelect-U8W5a0AG.js";import{n as N,t as ke}from"./PresetRangeDateInput-BSoQmjSq.js";import{i as Ae,t as je}from"./Slider-DLtF6vGD.js";import{r as Me,t as Ne}from"./SliderInput-UCsxAR-B.js";import{n as Pe,t as Fe}from"./StateSelect-BxRXr-2U.js";import{n as Ie,t as Le}from"./TabsBox-6G7F_Vo9.js";import{n as Re,t as ze}from"./TagInput-CIsnKs98.js";import{n as P,t as Be}from"./Textarea-Cv8Iiqm7.js";import{n as F,t as Ve}from"./Toggle-BAhzEihH.js";import{n as He,t as I}from"./TreeMultiSelect-BTe_-dq5.js";import{n as Ue,t as We}from"./treeStoryFixtures-Ci7STpiz.js";function Ge({onChange:e,...t}){let[n,r]=(0,L.useState)(()=>t.defaultValue??t.value??``),[i,a]=(0,L.useState)(()=>t.defaultValue??t.value??``),o=t=>{let n=t.trim();n!==i&&(a(n),e(n))},s=()=>{r(``),a(``),e(``)},ee=e=>{e.key===`Enter`&&(e.preventDefault(),o(n))},c=()=>{o(n)},te=e=>{r(e)};return(0,R.jsx)(_e,{...t,value:n,onChange:te,onKeyDown:ee,onBlur:c,onClear:s})}var L,R;function z(){return(z=e((()=>{L=t(n(),1),b(),R=f(),Ge.__docgenInfo={description:``,methods:[],displayName:`InputSearch`,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:`T`},description:"Если начальное состояние может быть `null | undefined`\nзначит `onChange` тоже должен ументь сбрасывать.\nПоэтому такой контрол явно должен передавать `UiBaseProps<AnyType | undefined>`"},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: string) => void`,signature:{arguments:[{type:{name:`string`},name:`value`}],return:{name:`void`}}},description:``},onClear:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},error:{required:!1,tsType:{name:`string`},description:``},onClearError:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},defaultValue:{required:!1,tsType:{name:`string`},description:``},endAdornment:{required:!1,tsType:{name:`ReactNode`},description:``},endAdornmentClassName:{required:!1,tsType:{name:`string`},description:``},endAdornmentWidth:{required:!1,tsType:{name:`string`},description:``}},composes:[`Omit`]}})))()}function B({title:e,children:t}){return(0,U.jsxs)(`section`,{style:W,children:[(0,U.jsx)(`div`,{style:G,children:e}),t]})}function Ke({initialValue:e={},label:t=`TreeMultiSelect`,description:n,optionsLayout:r=`tree`,nodes:i=We,defaultExpandedCodeKeys:a}){let[o,s]=(0,H.useState)(e);return(0,U.jsxs)(`div`,{style:{display:`grid`,gap:12,maxWidth:520},children:[(0,U.jsx)(I,{label:t,description:n,nodes:i,value:o,onChange:s,optionsLayout:r,defaultExpandedCodeKeys:a}),(0,U.jsxs)(`div`,{style:{fontSize:`var(--font-size-sm)`,color:`var(--content-1)`},children:[`Текущее значение: `,JSON.stringify(o)]})]})}function V(){let[e,t]=(0,H.useState)(`Значение`),[n,r]=(0,H.useState)(42),[a,o]=(0,H.useState)(``),[c,ne]=(0,H.useState)(`Комментарий`),[l,u]=(0,H.useState)(!0),[d,f]=(0,H.useState)(!1),[p,se]=(0,H.useState)(`first`),[ce,de]=(0,H.useState)(!0),[pe,_]=(0,H.useState)(!1),[ge,b]=(0,H.useState)(60),[_e,ve]=(0,H.useState)(60),[C,w]=(0,H.useState)(q[0]),[T,E]=(0,H.useState)([J[0]]),[D,O]=(0,H.useState)([`UI`,`Стили`]),[k,A]=(0,H.useState)(`week`),[j,M]=(0,H.useState)(`information`),[N,Ae]=(0,H.useState)(`two-columns`),[Me,Pe]=(0,H.useState)(new Date(2026,2,10)),[Ie,Re]=(0,H.useState)(new Date(2026,2,10,10,30)),[P,F]=(0,H.useState)(`today`),[He,I]=(0,H.useState)([new Date(2026,2,1),new Date(2026,2,10)]),[Ue,We]=(0,H.useState)(`month`),[L,R]=(0,H.useState)(),[z,V]=(0,H.useState)([]),[W,G]=(0,H.useState)(),[Y,X]=(0,H.useState)([]),[Z,Q]=(0,H.useState)(!1),[Ye,$]=(0,H.useState)(!1);return(0,U.jsxs)(`div`,{style:qe,children:[(0,U.jsxs)(B,{title:`Button`,children:[(0,U.jsx)(h,{variant:`transparent`,children:`Действие`}),(0,U.jsx)(h,{variant:`ghost`,children:`Действие`}),(0,U.jsx)(h,{variant:`neutral`,children:`Действие`}),(0,U.jsx)(h,{variant:`neutralOutline`,children:`Действие`}),(0,U.jsx)(h,{variant:`info`,children:`Действие`}),(0,U.jsx)(h,{variant:`infoOutline`,children:`Действие`})]}),(0,U.jsxs)(B,{title:`InputText`,children:[(0,U.jsx)(y,{label:`Текст`,description:`Поле ввода текста`,placeholder:`Введите текст`,disabled:!0,value:e,onChange:t}),(0,U.jsx)(y,{label:`Текст`,description:`Поле ввода текста`,placeholder:`Введите текст`,value:e,onChange:t}),(0,U.jsx)(y,{required:!0,label:`Текст`,description:`Поле ввода текста`,placeholder:`Введите текст`,value:e,onChange:t,onClear:()=>t(``)})]}),(0,U.jsxs)(B,{title:`InputNumber`,children:[(0,U.jsx)(x,{label:`Количество`,value:n,min:0,onChange:r,disabled:!0}),(0,U.jsx)(x,{label:`Количество`,value:n,min:0,onChange:r,required:!0}),(0,U.jsx)(x,{label:`Количество`,value:n,min:0,onChange:r}),(0,U.jsx)(x,{label:`Количество`,value:n,min:0,onChange:r,onClear:()=>r(void 0)})]}),(0,U.jsx)(B,{title:`InputSearch`,children:(0,U.jsx)(Ge,{label:`Поиск`,placeholder:`Найти`,value:a,onChange:o})}),(0,U.jsx)(B,{title:`Textarea`,children:(0,U.jsx)(Be,{label:`Комментарий`,required:!0,placeholder:`Многострочный комментарий`,rows:6,value:c,onChange:ne})}),(0,U.jsxs)(B,{title:`CheckBox`,children:[(0,U.jsx)(ae,{label:`Опция включена`,disabled:!0,value:l,onChange:u}),(0,U.jsx)(ae,{label:`Опция включена`,value:l,onChange:u,indeterminate:!0})]}),(0,U.jsxs)(B,{title:`RadioButton`,children:[(0,U.jsx)(re,{label:`Выбранная опция`,disabled:!0,value:d,onChange:f}),(0,U.jsx)(re,{label:`Выбранная опция`,value:d,onChange:f})]}),(0,U.jsx)(B,{title:`RadioGroup`,children:(0,U.jsxs)(S,{value:p,onChange:se,orientation:`vertical`,"aria-label":`Вариант`,children:[(0,U.jsx)(S.Option,{value:`first`,label:`Первый`}),(0,U.jsx)(S.Option,{value:`second`,label:`Второй`})]})}),(0,U.jsx)(B,{title:`Switch`,children:(0,U.jsx)(i,{label:`Уведомления`,value:ce,onChange:de})}),(0,U.jsx)(B,{title:`Toggle`,children:(0,U.jsx)(Ve,{label:`Режим`,value:pe,onChange:_,checkedText:`Вкл`,uncheckedText:`Выкл`})}),(0,U.jsx)(B,{title:`Slider`,children:(0,U.jsx)(je,{label:`Уровень`,value:ge,min:0,max:100,onChange:b})}),(0,U.jsx)(B,{title:`SliderInput`,children:(0,U.jsx)(Ne,{label:`Порог`,value:_e,min:0,max:100,onChange:ve})}),(0,U.jsxs)(B,{title:`Select`,children:[(0,U.jsx)(ye,{label:`Статус`,options:q,value:C,onChange:w,getOptionKey:e=>e.id,getOptionLabel:e=>e.label}),(0,U.jsx)(ye,{label:`Статус`,searchable:!0,options:q,value:C,onChange:w,getOptionKey:e=>e.id,getOptionLabel:e=>e.label})]}),(0,U.jsx)(B,{title:`MultiSelect`,children:(0,U.jsx)(De,{label:`Города`,items:J,value:T,query:``,codeKey:`code`,textKey:`label`,onChange:E,onQuery:()=>void 0,onOpen:()=>void 0,onClose:()=>void 0})}),(0,U.jsx)(B,{title:`TreeMultiSelect`,children:(0,U.jsx)(Ke,{})}),(0,U.jsx)(B,{title:`TagInput`,children:(0,U.jsx)(ze,{label:`Теги`,placeholder:`Добавить`,value:D,onChange:O})}),(0,U.jsx)(B,{title:`Listbox`,children:(0,U.jsx)(Ee,{options:Je,value:k,onChange:e=>A(e)})}),(0,U.jsx)(B,{title:`StateSelect`,children:(0,U.jsx)(Fe,{label:`Состояние`,value:j,onChange:M})}),(0,U.jsx)(B,{title:`LayoutPicker`,children:(0,U.jsx)(Te,{label:`Раскладка`,value:N,onChange:Ae,showPlaceholder:!0})}),(0,U.jsx)(B,{title:`SingleDateInput`,children:(0,U.jsx)(he,{label:`Дата`,value:Me,onChange:Pe,selectionMode:`week`})}),(0,U.jsx)(B,{title:`SingleDateTimeInput`,children:(0,U.jsx)(ie,{label:`Дата и время`,value:Ie,onChange:Re})}),(0,U.jsx)(B,{title:`DateRangePresetSelect`,children:(0,U.jsx)(be,{label:`Период`,value:P??void 0,onChange:e=>F(e??null),onRangeChange:e=>I(e?.range??null),referenceDate:new Date(2026,2,10,12)})}),(0,U.jsx)(B,{title:`PresetRangeDateInput`,children:(0,U.jsx)(ke,{value:He,onChange:I,presetId:P??null,onPresetIdChange:e=>F(e??null),referenceDate:new Date(2026,2,10,12),presetLabel:`Быстрый диапазон`})}),(0,U.jsx)(B,{title:`PeriodSelect`,children:(0,U.jsx)(Oe,{label:`Группировка`,value:Ue,onChange:We})}),(0,U.jsx)(B,{title:`InputFile`,children:(0,U.jsx)(Ce,{label:`Файл`,placeholder:`Выберите файл`,value:L,onChange:R,onClear:()=>R(void 0),readMode:`data-url`})}),(0,U.jsx)(B,{title:`InputFiles`,children:(0,U.jsx)(Se,{label:`Файлы`,placeholder:`Выберите файлы`,value:z,onChange:V,readMode:`data-url`})}),(0,U.jsx)(B,{title:`InputImage`,children:(0,U.jsx)(we,{label:`Изображение`,value:W,onChange:G,onClear:()=>G(void 0)})}),(0,U.jsx)(B,{title:`DropZone`,children:(0,U.jsx)(oe,{value:Y,multiple:!0,readMode:`data-url`,onChange:e=>X(e),children:(0,U.jsx)(`div`,{style:{display:`grid`,placeItems:`center`,minHeight:`6em`,textAlign:`center`},children:Y.length?`Файлов: ${Y.length}`:`Перетащите файлы`})})}),(0,U.jsx)(B,{title:`TabsBox`,children:(0,U.jsx)(Le,{defaultValue:`first`,bordered:!0,items:[{id:`first`,title:`Первый`,content:`Содержимое`},{id:`second`,title:`Второй`,content:`Другая панель`},{id:`third`,title:`Ещё одна`,content:`Другая панель`},{id:`quat`,title:`Четвертая`,content:`Другая панель`}]})}),(0,U.jsx)(B,{title:`TabsBox`,children:(0,U.jsx)(Le,{defaultValue:`first`,orientation:`vertical`,bordered:!0,items:[{id:`first`,title:`Первый`,content:`Содержимое`},{id:`second`,title:`Второй`,content:`Другая панель`},{id:`third`,title:`Ещё одна`,content:`Другая панель`},{id:`quat`,title:`Четвертая`,content:`Другая панель`}]})}),(0,U.jsxs)(B,{title:`Disclosure`,children:[(0,U.jsxs)(ee,{children:[(0,U.jsx)(s,{label:`Раскрыть 1`,children:`Содержимое панели 1`}),(0,U.jsx)(s,{label:`Раскрыть 2`,children:`Содержимое панели 2`}),(0,U.jsx)(s,{label:`Раскрыть 3`,children:`Содержимое панели 3`}),(0,U.jsx)(s,{label:`Раскрыть 4`,children:`Содержимое панели 4`})]}),(0,U.jsx)(s,{label:`Раскрыть 1`,children:`Содержимое панели 1`})]}),(0,U.jsx)(B,{title:`ExpandableActionPanel`,children:(0,U.jsx)(te,{children:(0,U.jsx)(h,{variant:`transparent`,children:`Действие`})})}),(0,U.jsx)(B,{title:`Popover`,children:(0,U.jsxs)(m,{children:[(0,U.jsx)(m.Trigger,{children:(0,U.jsx)(h,{style:K,children:`Открыть`})}),(0,U.jsx)(m.Content,{children:({setClose:e})=>(0,U.jsxs)(`div`,{style:{display:`grid`,gap:`0.75em`,padding:`1em`,maxWidth:`14em`},children:[(0,U.jsx)(`div`,{children:`Содержимое popover`}),(0,U.jsx)(h,{onClick:e,children:`Закрыть`})]})})]})}),(0,U.jsx)(B,{title:`DropdownMenu`,children:(0,U.jsxs)(v,{children:[(0,U.jsx)(v.Trigger,{children:(0,U.jsx)(h,{style:K,children:`Действия`})}),(0,U.jsxs)(v.Content,{children:[(0,U.jsx)(v.Item,{children:`Редактировать`}),(0,U.jsx)(v.Item,{children:`Удалить`})]})]})}),(0,U.jsx)(B,{title:`ContextMenu`,children:(0,U.jsxs)(g,{children:[(0,U.jsx)(g.Trigger,{children:(0,U.jsx)(`div`,{style:{display:`grid`,placeItems:`center`,minHeight:`6em`,padding:`0.75em`,border:`var(--border)`,borderRadius:`var(--radius-sm)`,textAlign:`center`},children:`Правая кнопка мыши`})}),(0,U.jsxs)(g.Content,{children:[(0,U.jsx)(g.Item,{children:`Переименовать`}),(0,U.jsx)(g.Item,{children:`Удалить`})]})]})}),(0,U.jsxs)(B,{title:`Dialog`,children:[(0,U.jsx)(h,{style:K,onClick:()=>Q(!0),children:`Открыть диалог`}),(0,U.jsx)(xe,{title:`Подтверждение`,description:`Подтвердите действие`,open:Z,onClose:()=>Q(!1),children:(0,U.jsx)(h,{onClick:()=>Q(!1),children:`Закрыть`})})]}),(0,U.jsx)(B,{title:`Modal`,children:(0,U.jsxs)(me,{children:[(0,U.jsx)(h,{style:K,onClick:()=>$(!0),children:`Открыть модалку`}),(0,U.jsxs)(fe,{title:`Параметры`,isOpen:Ye,onClose:()=>$(!1),children:[(0,U.jsx)(ue,{children:`Содержимое модального окна`}),(0,U.jsx)(le,{children:(0,U.jsx)(h,{onClick:()=>$(!1),children:`Готово`})})]})]})})]})}var H,U,qe,W,G,K,q,J,Je,Y,X,Z;function Q(){return(Q=e((()=>{H=n(),se(),u(),ce(),_(),ge(),w(),l(),T(),a(),o(),d(),c(),b(),D(),E(),O(),z(),k(),A(),pe(),de(),j(),M(),p(),N(),ne(),ve(),C(),Ae(),Me(),Pe(),r(),Ie(),Re(),P(),F(),He(),Ue(),U=f(),qe={display:`grid`,gridTemplateColumns:`repeat(auto-fit, minmax(var(--ui-width-xl), 1fr))`,alignItems:`start`,gap:`2em`,padding:`2em`},W={display:`grid`,alignContent:`start`,gridTemplateColumns:`100%`,gap:`0.5em`,padding:`1em`,overflow:`hidden`,borderRadius:`var(--radius-md)`,background:`var(--surface-0)`,boxShadow:`var(--shadow-lg)`},G={fontWeight:700,color:`var(--content-0)`},K={width:`100%`},q=[{id:`draft`,label:`Черновик`},{id:`review`,label:`На согласовании`},{id:`published`,label:`Опубликован`}],J=[{code:`EKB`,label:`Екатеринбург`},{code:`KZN`,label:`Казань`},{code:`MOW`,label:`Москва`}],Je=[{value:`day`,label:`День`},{value:`week`,label:`Неделя`},{value:`month`,label:`Месяц`}],Y={title:`Development/Interactive components`,component:V,parameters:{layout:`fullscreen`,docs:{description:{component:`Быстрая витрина интерактивных UI-компонентов для разработки и проверки общих стилей.`}}}},X={},V.__docgenInfo={description:``,methods:[],displayName:`InteractiveComponents`},V.parameters={...V.parameters,docs:{...V.parameters?.docs,source:{originalSource:`function InteractiveComponents() {
|
|
2
2
|
const [text, setText] = useState("Значение");
|
|
3
3
|
const [number, setNumber] = useState<number | undefined>(42);
|
|
4
4
|
const [search, setSearch] = useState("");
|
|
@@ -121,7 +121,7 @@ import{n as e,o as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./r
|
|
|
121
121
|
</ComponentCard>
|
|
122
122
|
|
|
123
123
|
<ComponentCard title="SingleDateInput">
|
|
124
|
-
<SingleDateInput label="Дата" value={date} onChange={setDate} />
|
|
124
|
+
<SingleDateInput label="Дата" value={date} onChange={setDate} selectionMode="week" />
|
|
125
125
|
</ComponentCard>
|
|
126
126
|
|
|
127
127
|
<ComponentCard title="SingleDateTimeInput">
|
|
@@ -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-CYobheWD.js";import{a as r,i}from"./utils-DUM89eIj.js";import{n as a,t as o}from"./ui.module-CHEKb9Cb.js";import{c as s,g as c,h as l,i as u,l as d,n as f,r as p,s as m,t as h,u as g}from"./usePickerTriggerController-Cxo7izm1.js";import{n as _,t as v}from"./PickerTriggerActions-BKQ28AXr.js";function y(e,t){return{gridTemplateColumns:`repeat(${e.columns}, minmax(0, 1fr))`,gridTemplateRows:`repeat(${e.rows}, minmax(${t??0}em, 1fr))`}}function b(e){return{gridColumn:`${e.column} / span ${e.columnSpan??1}`,gridRow:`${e.row} / span ${e.rowSpan??1}`}}var x;function S(){return(S=e((()=>{x=[{id:`1x1`,label:`1x1`,columns:1,rows:1,cells:[{id:`c11`,row:1,column:1}]},{id:`1x2`,label:`1x2`,columns:2,rows:1,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2}]},{id:`1x3`,label:`1x3`,columns:3,rows:1,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3}]},{id:`2x1`,label:`2x1`,columns:1,rows:2,cells:[{id:`c11`,row:1,column:1},{id:`c21`,row:2,column:1}]},{id:`2x2`,label:`2x2`,columns:2,rows:2,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2}]},{id:`2x3`,label:`2x3`,columns:3,rows:2,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3}]},{id:`3x1`,label:`3x1`,columns:1,rows:3,cells:[{id:`c11`,row:1,column:1},{id:`c21`,row:2,column:1},{id:`c31`,row:3,column:1}]},{id:`3x2`,label:`3x2`,columns:2,rows:3,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2}]},{id:`3x3`,label:`3x3`,columns:3,rows:3,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c33`,row:3,column:3}]},{id:`4x1`,label:`4x1`,columns:1,rows:4,cells:[{id:`c11`,row:1,column:1},{id:`c21`,row:2,column:1},{id:`c31`,row:3,column:1},{id:`c41`,row:4,column:1}]},{id:`4x2`,label:`4x2`,columns:2,rows:4,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c41`,row:4,column:1},{id:`c42`,row:4,column:2}]},{id:`4x3`,label:`4x3`,columns:3,rows:4,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c33`,row:3,column:3},{id:`c41`,row:4,column:1},{id:`c42`,row:4,column:2},{id:`c43`,row:4,column:3}]},{id:`2x2-l`,label:`Большая слева + две справа`,columns:2,rows:2,cells:[{id:`left`,row:1,column:1,rowSpan:2},{id:`rt`,row:1,column:2},{id:`rb`,row:2,column:2}]},{id:`2x2-r`,label:`Две слева + большая справа`,columns:2,rows:2,cells:[{id:`lt`,row:1,column:1},{id:`lb`,row:2,column:1},{id:`right`,row:1,column:2,rowSpan:2}]},{id:`2x2-t`,label:`Широкая сверху + две снизу`,columns:2,rows:2,cells:[{id:`top`,row:1,column:1,columnSpan:2},{id:`bl`,row:2,column:1},{id:`br`,row:2,column:2}]},{id:`2x2-b`,label:`Две сверху + широкая снизу`,columns:2,rows:2,cells:[{id:`tl`,row:1,column:1},{id:`tr`,row:1,column:2},{id:`bottom`,row:2,column:1,columnSpan:2}]},{id:`3x2-t`,label:`Широкая сверху + 2x2`,columns:2,rows:3,cells:[{id:`top`,row:1,column:1,columnSpan:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2}]},{id:`3x2-b`,label:`2x2 + широкая снизу`,columns:2,rows:3,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`bottom`,row:3,column:1,columnSpan:2}]},{id:`3x2-m`,label:`Широкая по центру`,columns:2,rows:3,cells:[{id:`tl`,row:1,column:1},{id:`tr`,row:1,column:2},{id:`middle`,row:2,column:1,columnSpan:2},{id:`bl`,row:3,column:1},{id:`br`,row:3,column:2}]},{id:`3x3-l`,label:`Большая слева + 2x3 справа`,columns:3,rows:3,cells:[{id:`left`,row:1,column:1,rowSpan:3},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`c32`,row:3,column:2},{id:`c33`,row:3,column:3}]},{id:`3x3-r`,label:`2x3 слева + большая справа`,columns:3,rows:3,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`right`,row:1,column:3,rowSpan:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2}]},{id:`3x3-t`,label:`Широкая сверху + 2x3`,columns:3,rows:3,cells:[{id:`top`,row:1,column:1,columnSpan:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c33`,row:3,column:3}]},{id:`3x3-b`,label:`2x3 + широкая снизу`,columns:3,rows:3,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`bottom`,row:3,column:1,columnSpan:3}]},{id:`4x2-t`,label:`Широкая сверху + 3x2`,columns:2,rows:4,cells:[{id:`top`,row:1,column:1,columnSpan:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c41`,row:4,column:1},{id:`c42`,row:4,column:2}]},{id:`4x2-b`,label:`3x2 + широкая снизу`,columns:2,rows:4,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`bottom`,row:4,column:1,columnSpan:2}]},{id:`4x3-t`,label:`Широкая сверху + 3x3`,columns:3,rows:4,cells:[{id:`top`,row:1,column:1,columnSpan:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c33`,row:3,column:3},{id:`c41`,row:4,column:1},{id:`c42`,row:4,column:2},{id:`c43`,row:4,column:3}]},{id:`4x3-b`,label:`3x3 + широкая снизу`,columns:3,rows:4,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c33`,row:3,column:3},{id:`bottom`,row:4,column:1,columnSpan:3}]}]})))()}var C,w,T,E,D,O,k,A,j,M,N,P,F,I,L,R;function z(){return(z=e((()=>{C=`_959ulH`,w=`Ch-SZL`,T=`SmdPit`,E=`giOtGs`,D=`_57Tr0T`,O=`Tkhulr`,k=`VQlniu`,A=`wb39Kf`,j=`HGvQdT`,M=`rZuYyb`,N=`VrHnjN`,P=`vNV6Q2`,F=`koxYU-`,I=`k8xLa2`,L=`_5pd3Bb`,R={valueOverlay:C,triggerInput:w,triggerText:T,popup:E,popupLayout:D,popupBody:O,options:k,option:A,optionActive:j,optionSelected:M,previewCell:N,optionPreviewWrap:P,preview:F,previewPlaceholder:I,previewCompact:L}})))()}function B({preset:e,compact:t=!1}){return(0,U.jsx)(`span`,{className:r(R.preview,t&&R.previewCompact),style:y(e),"aria-hidden":`true`,"data-ui":`layout-picker-preview`,children:e.cells.map(t=>(0,U.jsx)(`span`,{className:R.previewCell,style:b(t)},`${e.id}:${t.id}`))})}function V({id:e,label:t,description:n,value:i,onChange:o,presets:s=x,disabled:c,getPresetDisabled:p,placeholder:h=W,showPlaceholder:g=!1,size:_,ariaLabel:y,className:b,triggerClassName:S,popupClassName:C,placement:w=`bottom-start`}){let T=(0,H.useRef)(null),[E,D]=(0,H.useState)(!1),O=s.findIndex(e=>e.id===i),k=O>=0?s[O]:void 0,A=k??s[0],j=k?.label??h,{activeIndex:M,context:N,floatingStyles:P,getFloatingProps:F,setReference:I,setFloating:L,setOptionRef:z,close:V,openList:G,toggleOpen:K,selectOption:q,selectActiveOption:J,handleReferenceKeyDown:Y,handleFloatingKeyDown:X,getOptionId:Z,getActiveOptionId:Q}=u({options:s,selectedIndex:O,open:E,onOpenChange:D,getOptionDisabled:p,onSelect:e=>o(e.id),disabled:c,placement:w,triggerMode:`display`}),$=f({mode:`display`,open:E,currentQuery:``,hasDisplayValue:k!==void 0,inputRef:T,openList:G,close:V,toggleOpen:K}),ee=e=>{T.current=e};return(0,U.jsx)(l,{id:e,label:t,description:n,disabled:c,size:_,className:b,children:({controlId:e,labelId:t,describedBy:n})=>{let i=`${e}-listbox`;return(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(m,{ref:ee,rootRef:I,id:e,type:`button`,disabled:c,readOnly:!0,autoComplete:`off`,role:`combobox`,value:j,"aria-haspopup":`listbox`,"aria-expanded":E,"aria-controls":E?i:void 0,"aria-labelledby":t,"aria-describedby":n,"aria-autocomplete":`none`,"aria-activedescendant":E?Q(i):void 0,"aria-label":t?void 0:y??`Выбрать layout. Текущее значение: ${j}`,"data-ui":`layout-picker-trigger`,rootClassName:S,inputClassName:R.triggerInput,overlay:(0,U.jsxs)(`div`,{className:R.valueOverlay,children:[A?(0,U.jsx)(B,{preset:A,compact:!0}):(0,U.jsx)(`span`,{className:R.previewPlaceholder}),g?(0,U.jsx)(`span`,{className:r(R.triggerText,a.uiPlaceholder),"data-ui":`layout-picker-placeholder`,children:h}):null]}),endAdornment:(0,U.jsx)(v,{open:E,disabled:c,onToggleMouseDown:$.handleToggleMouseDown,onToggleClick:$.handleToggleClick,openAriaLabel:`Открыть список layout`,closeAriaLabel:`Закрыть список layout`}),onClick:$.handleTriggerClick,onFocus:e=>{$.handleTriggerFocus(e.currentTarget)},onKeyDown:e=>{Y(e),!e.defaultPrevented&&$.handleTriggerKeyDown({event:e,onActivateWhenOpen:J,enableSpaceActivation:!0})}}),(0,U.jsx)(d,{open:E,context:N,floatingStyles:P,listId:i,labelId:t,descriptionId:n,activeOptionId:Q(i),setFloating:L,getFloatingProps:F,onKeyDown:X,className:r(a.uiPopupOptions,R.popup,C),layoutClassName:R.popupLayout,bodyClassName:R.popupBody,children:(0,U.jsx)(`div`,{className:R.options,children:s.map((e,t)=>{let n=t===O,a=t===M,o=p?.(e)??!1,s=Z(i,t);return(0,U.jsx)(`button`,{id:s,ref:e=>z(t,e),type:`button`,role:`option`,tabIndex:-1,disabled:o,"aria-selected":n,"aria-disabled":o||void 0,"aria-label":e.description?`${e.label}. ${e.description}`:e.label,className:r(R.option,n&&R.optionSelected,a&&R.optionActive),"data-ui":`layout-picker-option`,"data-selected":n||void 0,onMouseDown:e=>e.preventDefault(),onClick:()=>q(e),children:(0,U.jsx)(`span`,{className:R.optionPreviewWrap,children:(0,U.jsx)(B,{preset:e})})},e.id)})})})]})}})}var H,U,W;function G(){return(G=e((()=>{H=t(),i(),c(),g(),_(),s(),p(),h(),o(),S(),z(),U=n(),W=`Выберите раскладку`,V.__docgenInfo={description:`Контрол выбора layout-пресета. Не хранит бизнес-логику содержимого ячеек.`,methods:[],displayName:`LayoutPicker`,props:{label:{required:!1,tsType:{name:`ReactNode`},description:``},description:{required:!1,tsType:{name:`string`},description:``},placeholder:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"Выберите раскладку"`,computed:!1}},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:``},id:{required:!1,tsType:{name:`string`},description:``},presets:{required:!1,tsType:{name:`unknown`},description:``,defaultValue:{value:`[
|
|
1
|
+
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{t}from"./react-C21x__mS.js";import{n}from"./iframe-DBSrNt2a.js";import{a as r,i}from"./utils-DUM89eIj.js";import{n as a,t as o}from"./ui.module-CHEKb9Cb.js";import{c as s,g as c,h as l,i as u,l as d,n as f,r as p,s as m,t as h,u as g}from"./usePickerTriggerController-6XAF3prJ.js";import{n as _,t as v}from"./PickerTriggerActions-Bn7w0HQj.js";function y(e,t){return{gridTemplateColumns:`repeat(${e.columns}, minmax(0, 1fr))`,gridTemplateRows:`repeat(${e.rows}, minmax(${t??0}em, 1fr))`}}function b(e){return{gridColumn:`${e.column} / span ${e.columnSpan??1}`,gridRow:`${e.row} / span ${e.rowSpan??1}`}}var x;function S(){return(S=e((()=>{x=[{id:`1x1`,label:`1x1`,columns:1,rows:1,cells:[{id:`c11`,row:1,column:1}]},{id:`1x2`,label:`1x2`,columns:2,rows:1,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2}]},{id:`1x3`,label:`1x3`,columns:3,rows:1,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3}]},{id:`2x1`,label:`2x1`,columns:1,rows:2,cells:[{id:`c11`,row:1,column:1},{id:`c21`,row:2,column:1}]},{id:`2x2`,label:`2x2`,columns:2,rows:2,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2}]},{id:`2x3`,label:`2x3`,columns:3,rows:2,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3}]},{id:`3x1`,label:`3x1`,columns:1,rows:3,cells:[{id:`c11`,row:1,column:1},{id:`c21`,row:2,column:1},{id:`c31`,row:3,column:1}]},{id:`3x2`,label:`3x2`,columns:2,rows:3,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2}]},{id:`3x3`,label:`3x3`,columns:3,rows:3,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c33`,row:3,column:3}]},{id:`4x1`,label:`4x1`,columns:1,rows:4,cells:[{id:`c11`,row:1,column:1},{id:`c21`,row:2,column:1},{id:`c31`,row:3,column:1},{id:`c41`,row:4,column:1}]},{id:`4x2`,label:`4x2`,columns:2,rows:4,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c41`,row:4,column:1},{id:`c42`,row:4,column:2}]},{id:`4x3`,label:`4x3`,columns:3,rows:4,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c33`,row:3,column:3},{id:`c41`,row:4,column:1},{id:`c42`,row:4,column:2},{id:`c43`,row:4,column:3}]},{id:`2x2-l`,label:`Большая слева + две справа`,columns:2,rows:2,cells:[{id:`left`,row:1,column:1,rowSpan:2},{id:`rt`,row:1,column:2},{id:`rb`,row:2,column:2}]},{id:`2x2-r`,label:`Две слева + большая справа`,columns:2,rows:2,cells:[{id:`lt`,row:1,column:1},{id:`lb`,row:2,column:1},{id:`right`,row:1,column:2,rowSpan:2}]},{id:`2x2-t`,label:`Широкая сверху + две снизу`,columns:2,rows:2,cells:[{id:`top`,row:1,column:1,columnSpan:2},{id:`bl`,row:2,column:1},{id:`br`,row:2,column:2}]},{id:`2x2-b`,label:`Две сверху + широкая снизу`,columns:2,rows:2,cells:[{id:`tl`,row:1,column:1},{id:`tr`,row:1,column:2},{id:`bottom`,row:2,column:1,columnSpan:2}]},{id:`3x2-t`,label:`Широкая сверху + 2x2`,columns:2,rows:3,cells:[{id:`top`,row:1,column:1,columnSpan:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2}]},{id:`3x2-b`,label:`2x2 + широкая снизу`,columns:2,rows:3,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`bottom`,row:3,column:1,columnSpan:2}]},{id:`3x2-m`,label:`Широкая по центру`,columns:2,rows:3,cells:[{id:`tl`,row:1,column:1},{id:`tr`,row:1,column:2},{id:`middle`,row:2,column:1,columnSpan:2},{id:`bl`,row:3,column:1},{id:`br`,row:3,column:2}]},{id:`3x3-l`,label:`Большая слева + 2x3 справа`,columns:3,rows:3,cells:[{id:`left`,row:1,column:1,rowSpan:3},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`c32`,row:3,column:2},{id:`c33`,row:3,column:3}]},{id:`3x3-r`,label:`2x3 слева + большая справа`,columns:3,rows:3,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`right`,row:1,column:3,rowSpan:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2}]},{id:`3x3-t`,label:`Широкая сверху + 2x3`,columns:3,rows:3,cells:[{id:`top`,row:1,column:1,columnSpan:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c33`,row:3,column:3}]},{id:`3x3-b`,label:`2x3 + широкая снизу`,columns:3,rows:3,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`bottom`,row:3,column:1,columnSpan:3}]},{id:`4x2-t`,label:`Широкая сверху + 3x2`,columns:2,rows:4,cells:[{id:`top`,row:1,column:1,columnSpan:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c41`,row:4,column:1},{id:`c42`,row:4,column:2}]},{id:`4x2-b`,label:`3x2 + широкая снизу`,columns:2,rows:4,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`bottom`,row:4,column:1,columnSpan:2}]},{id:`4x3-t`,label:`Широкая сверху + 3x3`,columns:3,rows:4,cells:[{id:`top`,row:1,column:1,columnSpan:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c33`,row:3,column:3},{id:`c41`,row:4,column:1},{id:`c42`,row:4,column:2},{id:`c43`,row:4,column:3}]},{id:`4x3-b`,label:`3x3 + широкая снизу`,columns:3,rows:4,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c33`,row:3,column:3},{id:`bottom`,row:4,column:1,columnSpan:3}]}]})))()}var C,w,T,E,D,O,k,A,j,M,N,P,F,I,L,R;function z(){return(z=e((()=>{C=`_959ulH`,w=`Ch-SZL`,T=`SmdPit`,E=`giOtGs`,D=`_57Tr0T`,O=`Tkhulr`,k=`VQlniu`,A=`wb39Kf`,j=`HGvQdT`,M=`rZuYyb`,N=`VrHnjN`,P=`vNV6Q2`,F=`koxYU-`,I=`k8xLa2`,L=`_5pd3Bb`,R={valueOverlay:C,triggerInput:w,triggerText:T,popup:E,popupLayout:D,popupBody:O,options:k,option:A,optionActive:j,optionSelected:M,previewCell:N,optionPreviewWrap:P,preview:F,previewPlaceholder:I,previewCompact:L}})))()}function B({preset:e,compact:t=!1}){return(0,U.jsx)(`span`,{className:r(R.preview,t&&R.previewCompact),style:y(e),"aria-hidden":`true`,"data-ui":`layout-picker-preview`,children:e.cells.map(t=>(0,U.jsx)(`span`,{className:R.previewCell,style:b(t)},`${e.id}:${t.id}`))})}function V({id:e,label:t,description:n,value:i,onChange:o,presets:s=x,disabled:c,getPresetDisabled:p,placeholder:h=W,showPlaceholder:g=!1,size:_,ariaLabel:y,className:b,triggerClassName:S,popupClassName:C,placement:w=`bottom-start`}){let T=(0,H.useRef)(null),[E,D]=(0,H.useState)(!1),O=s.findIndex(e=>e.id===i),k=O>=0?s[O]:void 0,A=k??s[0],j=k?.label??h,{activeIndex:M,context:N,floatingStyles:P,getFloatingProps:F,setReference:I,setFloating:L,setOptionRef:z,close:V,openList:G,toggleOpen:K,selectOption:q,selectActiveOption:J,handleReferenceKeyDown:Y,handleFloatingKeyDown:X,getOptionId:Z,getActiveOptionId:Q}=u({options:s,selectedIndex:O,open:E,onOpenChange:D,getOptionDisabled:p,onSelect:e=>o(e.id),disabled:c,placement:w,triggerMode:`display`}),$=f({mode:`display`,open:E,currentQuery:``,hasDisplayValue:k!==void 0,inputRef:T,openList:G,close:V,toggleOpen:K}),ee=e=>{T.current=e};return(0,U.jsx)(l,{id:e,label:t,description:n,disabled:c,size:_,className:b,children:({controlId:e,labelId:t,describedBy:n})=>{let i=`${e}-listbox`;return(0,U.jsxs)(U.Fragment,{children:[(0,U.jsx)(m,{ref:ee,rootRef:I,id:e,type:`button`,disabled:c,readOnly:!0,autoComplete:`off`,role:`combobox`,value:j,"aria-haspopup":`listbox`,"aria-expanded":E,"aria-controls":E?i:void 0,"aria-labelledby":t,"aria-describedby":n,"aria-autocomplete":`none`,"aria-activedescendant":E?Q(i):void 0,"aria-label":t?void 0:y??`Выбрать layout. Текущее значение: ${j}`,"data-ui":`layout-picker-trigger`,rootClassName:S,inputClassName:R.triggerInput,overlay:(0,U.jsxs)(`div`,{className:R.valueOverlay,children:[A?(0,U.jsx)(B,{preset:A,compact:!0}):(0,U.jsx)(`span`,{className:R.previewPlaceholder}),g?(0,U.jsx)(`span`,{className:r(R.triggerText,a.uiPlaceholder),"data-ui":`layout-picker-placeholder`,children:h}):null]}),endAdornment:(0,U.jsx)(v,{open:E,disabled:c,onToggleMouseDown:$.handleToggleMouseDown,onToggleClick:$.handleToggleClick,openAriaLabel:`Открыть список layout`,closeAriaLabel:`Закрыть список layout`}),onClick:$.handleTriggerClick,onFocus:e=>{$.handleTriggerFocus(e.currentTarget)},onKeyDown:e=>{Y(e),!e.defaultPrevented&&$.handleTriggerKeyDown({event:e,onActivateWhenOpen:J,enableSpaceActivation:!0})}}),(0,U.jsx)(d,{open:E,context:N,floatingStyles:P,listId:i,labelId:t,descriptionId:n,activeOptionId:Q(i),setFloating:L,getFloatingProps:F,onKeyDown:X,className:r(a.uiPopupOptions,R.popup,C),layoutClassName:R.popupLayout,bodyClassName:R.popupBody,children:(0,U.jsx)(`div`,{className:R.options,children:s.map((e,t)=>{let n=t===O,a=t===M,o=p?.(e)??!1,s=Z(i,t);return(0,U.jsx)(`button`,{id:s,ref:e=>z(t,e),type:`button`,role:`option`,tabIndex:-1,disabled:o,"aria-selected":n,"aria-disabled":o||void 0,"aria-label":e.description?`${e.label}. ${e.description}`:e.label,className:r(R.option,n&&R.optionSelected,a&&R.optionActive),"data-ui":`layout-picker-option`,"data-selected":n||void 0,onMouseDown:e=>e.preventDefault(),onClick:()=>q(e),children:(0,U.jsx)(`span`,{className:R.optionPreviewWrap,children:(0,U.jsx)(B,{preset:e})})},e.id)})})})]})}})}var H,U,W;function G(){return(G=e((()=>{H=t(),i(),c(),g(),_(),s(),p(),h(),o(),S(),z(),U=n(),W=`Выберите раскладку`,V.__docgenInfo={description:`Контрол выбора layout-пресета. Не хранит бизнес-логику содержимого ячеек.`,methods:[],displayName:`LayoutPicker`,props:{label:{required:!1,tsType:{name:`ReactNode`},description:``},description:{required:!1,tsType:{name:`string`},description:``},placeholder:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"Выберите раскладку"`,computed:!1}},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:``},id:{required:!1,tsType:{name:`string`},description:``},presets:{required:!1,tsType:{name:`unknown`},description:``,defaultValue:{value:`[
|
|
2
2
|
{
|
|
3
3
|
id: "1x1",
|
|
4
4
|
label: "1x1",
|
|
@@ -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-DBSrNt2a.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-DCcg3Usb.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"./LayoutPicker.stories-CBqPwt3h.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:_,parameters:{docs:{toc:!0}}}),`
|
|
2
2
|
`,(0,C.jsx)(u,{children:`LayoutPicker`}),`
|
|
3
3
|
`,(0,C.jsx)(o,{children:`Контролируемый выбор layout-пресета со схематичным превью`}),`
|
|
4
4
|
`,(0,C.jsxs)(t.p,{children:[(0,C.jsx)(t.code,{children:`LayoutPicker`}),` нужен для выбора схемы размещения независимых областей: графиков, панелей, секций дашборда или другого UI, где сама раскладка хранится во внешней модели.
|
|
@@ -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-DBSrNt2a.js";import{i,n as a,r as o,t as s}from"./LayoutPicker-Bz8Vo6L7.js";var c,l,u,d,f,p,m,h,g,_;function v(){return(v=e((()=>{c=`buT8ds`,l=`vDpJVR`,u=`-GMI1h`,d=`Xgkzn9`,f=`X--lo-`,p=`W5rEjx`,m=`BgilL7`,h=`ALGrVl`,g=`IrqK1d`,_={canvas:c,toolbar:l,summary:u,summaryItem:d,summaryValue:f,muted:p,layoutPreview:m,layoutCell:h,layoutCellTitle:g}})))()}var y=t({Controlled:()=>A,CustomPresets:()=>M,Disabled:()=>F,DisabledPresets:()=>N,InToolbar:()=>P,Placeholder:()=>j,__namedExportsOrder:()=>I,default:()=>k});function b(e,t){return t.find(t=>t.id===e)}function x({value:e,presets:t}){let n=b(e,t);return(0,T.jsxs)(`div`,{className:_.summary,"aria-live":`polite`,children:[(0,T.jsxs)(`div`,{className:_.summaryItem,children:[(0,T.jsx)(`span`,{children:`ID`}),(0,T.jsx)(`span`,{className:_.summaryValue,children:e||`не выбрано`})]}),(0,T.jsxs)(`div`,{className:_.summaryItem,children:[(0,T.jsx)(`span`,{children:`Название`}),(0,T.jsx)(`span`,{className:_.summaryValue,children:n?.label??`Layout не выбран`})]}),(0,T.jsxs)(`div`,{className:_.summaryItem,children:[(0,T.jsx)(`span`,{children:`Сетка`}),(0,T.jsx)(`span`,{className:_.summaryValue,children:n?`${n.columns} x ${n.rows}`:`нет данных`})]}),(0,T.jsxs)(`div`,{className:_.summaryItem,children:[(0,T.jsx)(`span`,{children:`Ячеек`}),(0,T.jsx)(`span`,{className:_.summaryValue,children:n?.cells.length??0})]})]})}function S({value:e,presets:t}){let n=b(e,t);if(!n)return null;let r=n.columns,i=n.rows,a=n.cells;return(0,T.jsx)(`div`,{className:_.layoutPreview,style:{gridTemplateColumns:`repeat(${r}, minmax(0, 1fr))`,gridTemplateRows:`repeat(${i}, minmax(0, 1fr))`},children:a.map((e,t)=>(0,T.jsxs)(`div`,{className:_.layoutCell,style:{gridColumn:`${e.column} / span ${e.columnSpan}`,gridRow:`${e.row} / span ${e.rowSpan}`},children:[(0,T.jsxs)(`span`,{className:_.layoutCellTitle,children:[`Область `,t+1]}),(0,T.jsxs)(`span`,{className:_.muted,children:[`Колонка `,e.column,`, строка `,e.row,`; span `,e.columnSpan,` x `,e.rowSpan]})]},e.id))})}function C(){let[e,t]=(0,w.useState)(`1x2`);return(0,T.jsxs)(`div`,{className:_.canvas,children:[(0,T.jsx)(`div`,{className:_.toolbar,children:(0,T.jsx)(s,{label:`Layout панели`,value:e,onChange:t,ariaLabel:`Выбрать layout панели`})}),(0,T.jsx)(x,{value:e,presets:o}),(0,T.jsx)(S,{value:e,presets:o})]})}var w,T,E,D,O,k,A,j,M,N,P,F,I;function L(){return(L=e((()=>{w=n(),i(),a(),v(),T=r(),{useArgs:E}=__STORYBOOK_MODULE_PREVIEW_API__,{fn:D}=__STORYBOOK_MODULE_TEST__,O=[{id:`dashboard-summary`,label:`Сводка + детали`,description:`Один широкий блок сверху и две области детализации снизу.`,columns:2,rows:2,cells:[{id:`summary`,column:1,columnSpan:2,row:1,rowSpan:1},{id:`left-detail`,column:1,columnSpan:1,row:2,rowSpan:1},{id:`right-detail`,column:2,columnSpan:1,row:2,rowSpan:1}]},{id:`dashboard-main-aside`,label:`Основной блок + сайдбар`,description:`Большая рабочая область слева и вертикальная колонка справа.`,columns:3,rows:2,cells:[{id:`main`,column:1,columnSpan:2,row:1,rowSpan:2},{id:`aside-top`,column:3,columnSpan:1,row:1,rowSpan:1},{id:`aside-bottom`,column:3,columnSpan:1,row:2,rowSpan:1}]},{id:`dashboard-quad`,label:`Четыре равных блока`,description:`Плотная сетка для сравнения нескольких независимых виджетов.`,columns:2,rows:2,cells:[{id:`top-left`,column:1,columnSpan:1,row:1,rowSpan:1},{id:`top-right`,column:2,columnSpan:1,row:1,rowSpan:1},{id:`bottom-left`,column:1,columnSpan:1,row:2,rowSpan:1},{id:`bottom-right`,column:2,columnSpan:1,row:2,rowSpan:1}]}],k={title:`Shared/UI/LayoutPicker`,component:s,args:{label:`Layout панели`,description:`Выберите схему размещения областей.`,value:o[0].id,onChange:D(),presets:o,disabled:!1,placeholder:`Выберите layout`,showPlaceholder:!1,ariaLabel:`Выбрать layout`,placement:`bottom-start`},parameters:{atomicCanvas:!0,layout:`padded`,docs:{description:{component:`Контролируемый выбор layout-пресета со схематичным превью. Компонент хранит только UI-состояние popup и возвращает наружу ID выбранного пресета.`}}},argTypes:{id:{description:"ID кнопки выбора. Если не передан, компонент создаёт стабильный `useId`.",control:`text`},label:{description:`Заголовок поля.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},value:{description:`ID текущего выбранного layout-пресета.`,control:`text`},onChange:{description:`Вызывается с ID выбранного layout-пресета.`,control:!1},presets:{description:"Список layout-пресетов. По умолчанию используется `DEFAULT_LAYOUT_PICKER_PRESETS`.",control:!1},disabled:{description:`Блокирует кнопку выбора и открытие popup.`,control:`boolean`},getPresetDisabled:{description:`Позволяет заблокировать отдельные пресеты внутри popup.`,control:!1},placeholder:{description:"Текст, который можно явно показать рядом с превью через `showPlaceholder`.",control:`text`},showPlaceholder:{description:"Показывает рядом с превью именно строку `placeholder`. По умолчанию trigger содержит только иконку.",control:`boolean`},ariaLabel:{description:`Доступное имя trigger-кнопки. Если не передано, строится из текущего значения.`,control:`text`},size:{description:"Размер поля из общего `UiBaseProps`.",control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]},className:{description:`Дополнительный CSS-класс корневого контейнера.`,control:`text`},triggerClassName:{description:`Дополнительный CSS-класс trigger-кнопки.`,control:`text`},popupClassName:{description:`Дополнительный CSS-класс popup.`,control:`text`},placement:{description:`Позиционирование popup относительно trigger.`,control:`select`,options:[`bottom-start`,`bottom-end`,`top-start`,`top-end`,`right-start`,`left-start`]}}},A={args:{value:`2x1`},name:`Контролируемый выбор`,render:function(e){let[,t]=E(),n=e.presets??o;return(0,T.jsxs)(`div`,{className:_.canvas,children:[(0,T.jsx)(s,{...e,presets:n,onChange:n=>{e.onChange(n),t({value:n})}}),(0,T.jsx)(x,{value:e.value??``,presets:n})]})}},j={name:`Без выбранного значения`,render:e=>{let[t,n]=(0,w.useState)(``),r=e.presets??o;return(0,T.jsxs)(`div`,{className:_.canvas,children:[(0,T.jsx)(s,{...e,value:t,presets:r,placeholder:`Layout ещё не выбран`,showPlaceholder:!0,onChange:t=>{n(t),e.onChange(t)}}),(0,T.jsx)(x,{value:t,presets:r})]})},args:{value:``}},M={name:`Кастомные пресеты`,render:e=>{let[t,n]=(0,w.useState)(O[0].id);return(0,T.jsxs)(`div`,{className:_.canvas,children:[(0,T.jsx)(s,{...e,value:t,presets:O,ariaLabel:`Выбрать layout дашборда`,onChange:t=>{n(t),e.onChange(t)}}),(0,T.jsx)(x,{value:t,presets:O}),(0,T.jsx)(S,{value:t,presets:O})]})},args:{value:O[0].id,presets:O}},N={name:`Заблокированные пресеты`,render:e=>{let[t,n]=(0,w.useState)(`1x1`);return(0,T.jsxs)(`div`,{className:_.canvas,children:[(0,T.jsx)(s,{...e,value:t,getPresetDisabled:e=>e.id===`1x2`||e.id===`2x2-l`,onChange:t=>{n(t),e.onChange(t)}}),(0,T.jsx)(`div`,{className:_.muted,children:`Пресеты с двумя колонками в этом сценарии недоступны.`}),(0,T.jsx)(x,{value:t,presets:o})]})}},P={name:`В панели настройки`,render:()=>(0,T.jsx)(C,{})},F={name:`Заблокированный контрол`,args:{disabled:!0,value:`1x2`}},A.parameters={...A.parameters,docs:{...A.parameters?.docs,source:{originalSource:`{
|
|
2
2
|
args: {
|
|
3
3
|
value: "2x1"
|
|
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-DBSrNt2a.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-DCcg3Usb.js";import{a as p,i as m,n as h,o as g,r as _,t as v}from"./Listbox.stories-BeFIh3J1.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:_,parameters:{docs:{toc:!0}}}),`
|
|
2
2
|
`,(0,x.jsx)(u,{children:`Listbox`}),`
|
|
3
3
|
`,(0,x.jsx)(o,{children:`Список выбора для single- и multi-select сценариев, кастомного рендера элементов и блокированного состояния`}),`
|
|
4
4
|
`,(0,x.jsx)(t.p,{children:`Listbox уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
|
|
@@ -1 +1 @@
|
|
|
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-CmUKUPJO.js";import{n as i}from"./iframe-DBSrNt2a.js";import{a,i as o,n as s,r as c,s as l,t as u}from"./utils-DUM89eIj.js";import{n as d,t as f}from"./ui.module-CHEKb9Cb.js";function p(e,t,n){if(n){if(Array.isArray(t)&&t.length>0){let n=e.findIndex(e=>t.includes(e.value)&&!e.disabled);if(n>=0)return n}return c(e,_)}if(t!==void 0){let n=e.findIndex(e=>e.value===t&&!e.disabled);if(n>=0)return n}return c(e,_)}function m(e){let{value:t,defaultValue:n,multiple:i,disabled:o,focusOnMount:f,renderItem:m,getKey:v,options:y,onChange:b,id:x,...S}=e,C=t!==void 0,w=(0,h.useId)(),T=x??`${w}-listbox`,[E,D]=(0,h.useState)(n),O=(0,h.useRef)(null),[k,A]=(0,h.useState)(()=>p(y,t??n,i)),j=(0,h.useRef)(!1),M=(0,h.useMemo)(()=>(C?t:E)??(i?[]:null),[E,C,i,t]),N=k,P=t=>{if(o||t.disabled)return;let n;if(e.multiple){let r=Array.isArray(M)?M:[];n=r.includes(t.value)?r.filter(e=>e!==t.value):[...r,t.value],e.onChange?.(n,t)}else n=t.value,e.onChange?.(n,t);C||D(n)};return(0,h.useEffect)(()=>{if(!j.current)return;j.current=!1;let e=O.current?.querySelectorAll(`[role="option"]`)[N];e&&e.scrollIntoView({block:`nearest`})},[N]),(0,h.useLayoutEffect)(()=>{f&&O.current?.focus()},[f]),(0,g.jsx)(`ul`,{ref:O,id:T,role:`listbox`,"aria-multiselectable":i||void 0,"aria-activedescendant":N>=0?`${T}-option-${N}`:void 0,onKeyDown:e=>{if(!o){if(e.key===`ArrowDown`)e.preventDefault(),j.current=!0,A(e=>u(y,e,1,_));else if(e.key===`ArrowUp`)e.preventDefault(),j.current=!0,A(e=>u(y,e,-1,_));else if(e.key===`Home`)e.preventDefault(),j.current=!0,A(c(y,_));else if(e.key===`End`)e.preventDefault(),j.current=!0,A(l(y,_));else if(s(e,()=>{let e=y[N];e&&P(e)}))return}},...S,"aria-disabled":o||void 0,tabIndex:o?-1:0,className:a(d.uiPanel,`scrollable surface1`,o&&d.disabled),children:y.map((e,t)=>{let n=i?Array.isArray(M)&&M.includes(e.value):M===e.value,s=t===N;return(0,g.jsxs)(`li`,{id:`${T}-option-${t}`,role:`option`,"aria-selected":n,"aria-disabled":o||e.disabled||void 0,onMouseDown:n=>{n.preventDefault(),!(o||e.disabled)&&(A(t),P(e))},tabIndex:-1,className:a(d.uiPopupOption,(o||e.disabled)&&d.disabled,s&&d.uiPopupOptionActive,n&&d.selected),children:[n?(0,g.jsx)(r,{className:d.uiPopupOptionIcon}):(0,g.jsx)(`span`,{className:d.uiPopupOptionIcon}),(0,g.jsx)(`div`,{children:m?m(e,n,s):e.label??String(e.value)})]},v?v(e,t):t)})})}var h,g,_;function v(){return(v=e((()=>{h=t(),o(),n(),f(),g=i(),_=e=>e.disabled===!0,m.__docgenInfo={description:``,methods:[],displayName:`Listbox`}})))()}export{v as n,m 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-DBSrNt2a.js";import{n as i,t as a}from"./Listbox-BbSsDx2u.js";var o=t({CustomRender:()=>p,Disabled:()=>m,MultiSelect:()=>f,SingleSelect:()=>d,__namedExportsOrder:()=>h,default:()=>u});function s(e){return e.multiple?(0,l.jsx)(a,{...e,multiple:!0}):(0,l.jsx)(a,{...e})}var c,l,u,d,f,p,m,h;function g(){return(g=e((()=>{c=n(),i(),l=r(),u={title:`Shared/UI/Listbox`,component:s,args:{options:[{id:`low`,label:`Низкий`},{id:`medium`,label:`Средний`},{id:`high`,label:`Высокий`},{id:`critical`,label:`Критический`,disabled:!0}],multiple:!1,value:`medium`,onChange:()=>{}},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{options:{description:`Массив доступных опций списка.`,control:!1},multiple:{description:`Режим множественного выбора.`,control:`boolean`},value:{description:`Текущее выбранное значение (или массив значений).`,control:!1},defaultValue:{description:`Начальное значение для uncontrolled-режима.`,control:!1},disabled:{description:`Блокирует фокусировку, навигацию и изменение выбора.`,control:`boolean`},onChange:{description:`Вызывается при выборе опции.`,control:!1},focusOnMount:{description:`Автофокус списка при монтировании.`,control:`boolean`},renderItem:{description:`Кастомный рендер строки списка.`,control:!1},getKey:{description:`Функция генерации ключа для опции.`,control:!1},className:{description:`Дополнительный CSS-класс.`,control:`text`}}},d={render:e=>{let[t,n]=(0,c.useState)(`medium`);return(0,l.jsxs)(`div`,{style:{display:`grid`,gap:12,maxWidth:280},children:[(0,l.jsx)(s,{...e,multiple:!1,value:t,onChange:e=>{typeof e==`string`&&n(e)}}),(0,l.jsxs)(`div`,{children:[`Выбрано: `,t]})]})}},f={render:e=>{let[t,n]=(0,c.useState)([`low`,`high`]);return(0,l.jsxs)(`div`,{style:{display:`grid`,gap:12,maxWidth:320},children:[(0,l.jsx)(s,{...e,multiple:!0,value:t,onChange:e=>{Array.isArray(e)&&n(e)}}),(0,l.jsxs)(`div`,{children:[`Выбрано: `,t.join(`, `)||`пусто`]})]})},args:{multiple:!0}},p={render:e=>{let[t,n]=(0,c.useState)(`low`);return(0,l.jsx)(s,{...e,value:t,onChange:e=>{typeof e==`string`&&n(e)},renderItem:(e,t,n)=>(0,l.jsxs)(`div`,{style:{display:`flex`,justifyContent:`space-between`,width:`100%`,opacity:e.disabled?.5:1},children:[(0,l.jsx)(`span`,{children:e.label}),(0,l.jsx)(`span`,{children:t?`Выбрано`:n?`Фокус`:``})]})})}},m={args:{disabled:!0,value:`medium`},render:e=>(0,l.jsx)(s,{...e})},d.parameters={...d.parameters,docs:{...d.parameters?.docs,source:{originalSource:`{
|
|
2
2
|
render: args => {
|
|
3
3
|
const [value, setValue] = useState<string>("medium");
|
|
4
4
|
return <div style={{
|
|
@@ -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-DBSrNt2a.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-DCcg3Usb.js";import{a as p,i as m,n as h,o as g,r as _,s as v,t as y}from"./Modal.stories-DYsHSBH7.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:h,parameters:{docs:{toc:!0}}}),`
|
|
2
2
|
`,(0,S.jsx)(u,{children:`Modal`}),`
|
|
3
3
|
`,(0,S.jsx)(o,{children:`Составная модалка с контентом, toolbar и footer для пользовательских диалоговых сценариев`}),`
|
|
4
4
|
`,(0,S.jsx)(t.p,{children:`Modal уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
|
|
@@ -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-DBSrNt2a.js";import{n as i,t as a}from"./Button-DMlznmSQ.js";import{a as o,i as s,n as c,o as l,r as u,s as d,t as f}from"./ModalManagerProvider-DPGYpfId.js";import{c as p,t as m}from"./Input-C2Lss7is.js";var h=t({Controlled:()=>x,ScrollableContent:()=>C,Sizes:()=>w,StackedModals:()=>T,WithToolbarAndFooter:()=>S,__namedExportsOrder:()=>E,default:()=>b});function g({children:e}){return(0,y.jsx)(`div`,{style:{minHeight:`60dvh`,padding:24,display:`flex`,alignItems:`center`,justifyContent:`center`},children:e})}function _(){let[e,t]=(0,v.useState)(`Алексей`),[n,r]=(0,v.useState)(`Департамент автоматизации бизнеса`);return(0,y.jsxs)(`div`,{style:{display:`grid`,gap:16},children:[(0,y.jsx)(m,{label:`Имя`,value:e,onChange:t,placeholder:`Введите имя`}),(0,y.jsx)(m,{label:`Подразделение`,value:n,onChange:r,placeholder:`Введите подразделение`}),(0,y.jsxs)(`div`,{style:{padding:12,borderRadius:8,background:`var(--surface-1)`,border:`1px solid var(--border-1)`},children:[`Текущие значения: `,e||`не указано`,`, `,n||`не указано`]})]})}var v,y,b,x,S,C,w,T,E;function D(){return(D=e((()=>{v=n(),i(),p(),d(),c(),y=r(),b={title:`Shared/UI/Modal`,component:u,parameters:{atomicCanvas:!0,layout:`fullscreen`,docs:{description:{component:"Композиционная модалка с `Toolbar`, `Content` и `Footer`, поддержкой focus trap, возврата фокуса, закрытия по `Escape` и менеджером стека через `ModalManagerProvider`."}}},decorators:[e=>(0,y.jsx)(f,{children:(0,y.jsx)(g,{children:e()})})],args:{isOpen:!1,title:`Редактирование профиля`,size:`md`,height:void 0,onClose:()=>{},children:(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(s,{children:(0,y.jsx)(_,{})}),(0,y.jsxs)(o,{children:[(0,y.jsx)(a,{variant:`transparent`,children:`Отмена`}),(0,y.jsx)(a,{children:`Сохранить`})]})]})},argTypes:{isOpen:{description:`Управляет видимостью модального окна.`,control:`boolean`},title:{description:`Заголовок модального окна.`,control:`text`},size:{description:`Предустановленный размер модального окна.`,control:`inline-radio`,options:[`sm`,`md`,`lg`,`xl`,`inside`]},height:{description:`Явная высота body-области модалки.`,control:`text`},onClose:{description:"Вызывается при закрытии по кнопке, `Escape` или пользовательскому действию.",control:!1},children:{description:"Композиция из `ModalToolbar`, `ModalContent`, `ModalFooter`.",control:!1}}},x={name:`Управляемая модалка`,render:e=>{let[t,n]=(0,v.useState)(!1);return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(a,{onClick:()=>n(!0),children:`Открыть модалку`}),(0,y.jsxs)(u,{...e,isOpen:t,onClose:()=>n(!1),children:[(0,y.jsx)(s,{children:(0,y.jsx)(_,{})}),(0,y.jsxs)(o,{children:[(0,y.jsx)(a,{variant:`transparent`,onClick:()=>n(!1),children:`Отмена`}),(0,y.jsx)(a,{onClick:()=>n(!1),children:`Сохранить`})]})]})]})}},S={name:`Полная композиция`,render:e=>{let[t,n]=(0,v.useState)(!1);return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(a,{onClick:()=>n(!0),children:`Открыть сценарий редактирования`}),(0,y.jsxs)(u,{...e,isOpen:t,onClose:()=>n(!1),height:`min(34rem, 70dvh)`,children:[(0,y.jsx)(l,{children:(0,y.jsxs)(`div`,{style:{display:`flex`,alignItems:`center`,justifyContent:`space-between`,gap:12,padding:12,borderRadius:8,background:`var(--surface-1)`,border:`1px solid var(--border-1)`},children:[(0,y.jsxs)(`div`,{children:[(0,y.jsx)(`div`,{style:{fontWeight:600},children:`Черновик обновлён автоматически`}),(0,y.jsx)(`div`,{style:{opacity:.72},children:`Последнее сохранение: 2 минуты назад`})]}),(0,y.jsx)(a,{variant:`transparent`,children:`Сбросить`})]})}),(0,y.jsx)(s,{children:(0,y.jsx)(_,{})}),(0,y.jsxs)(o,{children:[(0,y.jsx)(a,{variant:`transparent`,onClick:()=>n(!1),children:`Отмена`}),(0,y.jsx)(a,{variant:`success`,onClick:()=>n(!1),children:`Применить`})]})]})]})}},C={name:`Длинный контент`,render:e=>{let[t,n]=(0,v.useState)(!1);return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(a,{onClick:()=>n(!0),children:`Открыть длинный контент`}),(0,y.jsxs)(u,{...e,isOpen:t,onClose:()=>n(!1),size:`lg`,height:`min(38rem, 75dvh)`,title:`Журнал изменений`,children:[(0,y.jsx)(s,{children:(0,y.jsx)(`div`,{style:{display:`grid`,gap:12},children:Array.from({length:18},(e,t)=>(0,y.jsxs)(`div`,{style:{padding:12,borderRadius:8,border:`1px solid var(--border-1)`,background:`var(--surface-1)`},children:[(0,y.jsxs)(`div`,{style:{fontWeight:600},children:[`Событие #`,t+1]}),(0,y.jsx)(`div`,{style:{opacity:.72},children:`Пользователь обновил настройки карточки, изменил состав полей и подтвердил сохранение конфигурации.`})]},t))})}),(0,y.jsx)(o,{children:(0,y.jsx)(a,{onClick:()=>n(!1),children:`Закрыть`})})]})]})}},w={name:`Размеры`,render:()=>{let[e,t]=(0,v.useState)(null);return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(`div`,{style:{display:`flex`,flexWrap:`wrap`,gap:12,justifyContent:`center`},children:[`sm`,`md`,`lg`,`xl`,`inside`].map(e=>(0,y.jsx)(a,{variant:`transparent`,onClick:()=>t(e),children:e.toUpperCase()},e))}),e&&(0,y.jsxs)(u,{isOpen:!0,onClose:()=>t(null),size:e,title:`Размер ${e.toUpperCase()}`,children:[(0,y.jsx)(s,{children:(0,y.jsxs)(`div`,{style:{display:`grid`,gap:12},children:[(0,y.jsx)(`div`,{children:`Этот сценарий помогает быстро сравнить ширину и поведение модалки для разных размеров.`}),(0,y.jsx)(`div`,{style:{opacity:.72},children:"Проверьте отступы, читабельность и поведение при `Escape`."})]})}),(0,y.jsx)(o,{children:(0,y.jsx)(a,{onClick:()=>t(null),children:`Понятно`})})]})]})}},T={name:`Стек модалок`,render:e=>{let[t,n]=(0,v.useState)(!1),[r,i]=(0,v.useState)(!1);return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(a,{onClick:()=>n(!0),children:`Открыть первую модалку`}),(0,y.jsxs)(u,{...e,isOpen:t,onClose:()=>{i(!1),n(!1)},size:`lg`,title:`Первая модалка`,children:[(0,y.jsx)(s,{children:(0,y.jsxs)(`div`,{style:{display:`grid`,gap:16},children:[(0,y.jsx)(`div`,{children:"Откройте вторую модалку и проверьте, что `Escape` закрывает только верхний слой."}),(0,y.jsx)(a,{variant:`transparent`,onClick:()=>i(!0),children:`Открыть вторую модалку`})]})}),(0,y.jsx)(o,{children:(0,y.jsx)(a,{variant:`transparent`,onClick:()=>n(!1),children:`Закрыть первую`})})]}),(0,y.jsxs)(u,{isOpen:r,onClose:()=>i(!1),size:`sm`,title:`Вторая модалка`,children:[(0,y.jsx)(s,{children:(0,y.jsxs)(`div`,{style:{display:`grid`,gap:12},children:[(0,y.jsx)(`div`,{children:`Эта модалка должна считаться верхней в стеке.`}),(0,y.jsx)(m,{label:`Короткое поле`,value:`Фокус внутри`,onChange:()=>{}})]})}),(0,y.jsx)(o,{children:(0,y.jsx)(a,{onClick:()=>i(!1),children:`Закрыть вторую`})})]})]})}},x.parameters={...x.parameters,docs:{...x.parameters?.docs,source:{originalSource:`{
|
|
2
2
|
name: "Управляемая модалка",
|
|
3
3
|
render: args => {
|
|
4
4
|
const [open, setOpen] = useState(false);
|
|
@@ -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,t as i}from"./x-
|
|
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"./x-CdBCVC44.js";import{n as a}from"./iframe-DBSrNt2a.js";import{t as o}from"./react-dom-2o2phaJG.js";import{a as s,i as c}from"./utils-DUM89eIj.js";import{a as l,n as u,r as d,t as ee}from"./dom-B3G_GtJw.js";import{n as f,t as p}from"./FlexContainer-LmZIdhq2.js";import{n as m,t as te}from"./Button-DMlznmSQ.js";import{a as ne,c as h,l as g,n as re,o as _,r as ie,s as v,t as y}from"./react-vWCcOuxm.js";import{n as b,t as ae}from"./GridContainer-qDguE1HS.js";import{n as x,t as S}from"./Scrollable-BX1lUjOe.js";function oe(){!v.current&&ne();let[e]=(0,C.useState)(g.current);return e}var C;function w(){return(w=e((()=>{h(),_(),C=n()})))()}var T,E,D,O,k,A,j,M,N,P,F,I;function L(){return(L=e((()=>{T=`vGPUKV`,E=`O7gb7P`,D=`RVq8v3`,O=`PCSUAL`,k=`XDCHzq`,A=`t1kl8L`,j=`o3PEEB`,M=`WhUkxm`,N=`NDgdMi`,P=`JDlse5`,F=`FaDKSt`,I={modal:T,sm:E,md:D,lg:O,xl:k,xxl:A,inside:j,header:M,body:N,headerText:P,headerButton:F}})))()}var R,z,se;function B(){return(B=e((()=>{R={hidden:{opacity:0,scale:.96,y:12},visible:{opacity:1,scale:1,y:0}},z={duration:.18,ease:[.22,1,.36,1]},se={duration:0}})))()}var V,H,U;function W(){return(W=e((()=>{V=n(),H=(0,V.createContext)({modals:[],openModal:()=>{},closeModal:()=>{},isTopModal:()=>!1}),U=()=>(0,V.useContext)(H)})))()}var G,K,q,J,Y,X,ce;function le(){return(le=e((()=>{G=t(n(),1),d(),c(),r(),y(),K=o(),m(),f(),b(),x(),L(),B(),W(),q=a(),J=({children:e,className:t})=>(0,q.jsx)(`div`,{className:s(`surface2 paddingMd borderBottom`,t),children:e}),J.displayName=`Modal.Toolbar`,Y=({children:e,className:t,scrollable:n})=>(0,q.jsx)(`div`,{className:s(`paddingMd h100 overflowHidden`,t),children:n?(0,q.jsx)(S,{className:`h100`,children:e}):e}),Y.displayName=`Modal.Content`,X=({children:e,className:t})=>(0,q.jsx)(`div`,{className:s(`surface2 borderTop paddingMd`,t),children:(0,q.jsx)(p,{gap:`sm`,align:`center`,justify:`end`,children:e})}),X.displayName=`Modal.Footer`,ce=({isOpen:e,title:t,size:n=`sm`,height:r,onClose:a,children:o})=>{let c=(0,G.useId)(),d=(0,G.useId)(),{modals:f,openModal:p,closeModal:m,isTopModal:ne}=U(),h=oe(),g=(0,G.useRef)(null),_=(0,G.useRef)(0),v=e&&(f.length===0||ne(c));(0,G.useEffect)(()=>{e&&(g.current=document.activeElement instanceof HTMLElement?document.activeElement:null)},[e]);let y=l({active:e||!1,trapFocus:!0,restoreFocus:!1});u({active:v||!1,onDismiss:a,containerRef:y}),(0,G.useEffect)(()=>{e&&p(c)},[e,c,p]),(0,G.useEffect)(()=>()=>{window.cancelAnimationFrame(_.current),m(c)},[m,c]);function b(){m(c);let e=g.current;_.current=window.requestAnimationFrame(()=>{e?.isConnected&&e.focus(),g.current=null})}let x=ee(`modal-root`);if(!x)return null;let S=null,C=null,w=null,T=G.Children.toArray(o);for(let e of T)switch(e.type.displayName){case J.displayName:if(S)throw Error(`Modal: duplicate <Toolbar> found`);S=e;break;case X.displayName:if(w)throw Error(`Modal: duplicate <Footer> found`);w=e;break;case Y.displayName:if(C)throw Error(`Modal: duplicate <Content> found`);C=e}return(0,K.createPortal)((0,q.jsx)(ie,{onExitComplete:b,children:e?(0,q.jsxs)(re.div,{ref:y,className:s(I.modal,I[n]),style:{height:r},role:`dialog`,"aria-modal":`true`,"aria-labelledby":d,"aria-describedby":`${d}-content`,initial:`hidden`,animate:`visible`,exit:`hidden`,variants:R,transition:h?se:z,children:[(0,q.jsxs)(`div`,{className:s(I.header,S?``:`borderBottom`),children:[(0,q.jsx)(`h3`,{className:I.headerText,id:d,children:t}),(0,q.jsx)(te,{icon:(0,q.jsx)(i,{}),className:I.headerButton,variant:`ghost`,"aria-label":`Закрыть модальное окно`,onClick:a})]}),(0,q.jsxs)(ae,{id:`${d}-content`,templateRows:`${S?`auto`:``} 1fr ${w?`auto`:``}`.trim(),className:I.body,children:[S,C,w]})]}):null}),x)},J.__docgenInfo={description:``,methods:[],displayName:`Modal.Toolbar`,props:{children:{required:!0,tsType:{name:`ReactReactNode`,raw:`React.ReactNode`},description:``},className:{required:!1,tsType:{name:`string`},description:``}}},Y.__docgenInfo={description:``,methods:[],displayName:`Modal.Content`,props:{children:{required:!0,tsType:{name:`ReactReactNode`,raw:`React.ReactNode`},description:``},className:{required:!1,tsType:{name:`string`},description:``},scrollable:{required:!1,tsType:{name:`boolean`},description:``}}},X.__docgenInfo={description:``,methods:[],displayName:`Modal.Footer`,props:{children:{required:!0,tsType:{name:`ReactReactNode`,raw:`React.ReactNode`},description:``},className:{required:!1,tsType:{name:`string`},description:``}}}})))()}function ue({children:e,compensateScrollbar:t=!1}){let[n,r]=(0,Z.useState)([]),i=(0,Z.useRef)(0),a=(0,Z.useRef)(0),o=(0,Z.useRef)(``),s=(0,Z.useRef)(!1),c=(0,Z.useCallback)(e=>{r(t=>[...t,e])},[]),l=(0,Z.useCallback)(e=>{r(t=>t.filter(t=>t!==e))},[]),u=(0,Z.useCallback)(e=>n[n.length-1]===e,[n]);return(0,Z.useEffect)(()=>{let e=i.current===0;if(e&&n.length>0){let e=window.scrollY,r=document.querySelector(`#app-root`);a.current=Math.max(0,window.innerWidth-document.documentElement.clientWidth),o.current=document.body.style.paddingRight,document.body.style.position=`fixed`,document.body.style.top=`-${e}px`,document.body.style.width=`100%`,t&&(document.body.style.paddingRight=`${a.current}px`,s.current=!0),r?.setAttribute(`inert`,`true`),i.current=n.length;return}if(!e&&n.length>0&&t!==s.current&&(document.body.style.paddingRight=t?`${a.current}px`:o.current,s.current=t),!e&&n.length===0){let e=document.querySelector(`#app-root`),t=parseInt(document.body.style.top||`0`)*-1;document.body.style.position=``,document.body.style.top=``,document.body.style.width=``,s.current&&=(document.body.style.paddingRight=o.current,!1),e?.removeAttribute(`inert`),window.scrollTo({top:t,left:0,behavior:`instant`})}i.current=n.length},[t,n.length]),(0,Q.jsx)(H.Provider,{value:{modals:n,openModal:c,closeModal:l,isTopModal:u},children:e})}var Z,Q;function $(){return($=e((()=>{Z=t(n(),1),W(),Q=a(),ue.__docgenInfo={description:`Провайдер для централизованного управления стеком модальных окон. Дает вложенным компонентам доступ к открытию и закрытию модалок через контекст.`,methods:[],displayName:`ModalManagerProvider`,props:{children:{required:!0,tsType:{name:`ReactReactNode`,raw:`React.ReactNode`},description:``},compensateScrollbar:{required:!1,tsType:{name:`boolean`},description:`Компенсирует исчезновение скроллбара правым padding у body.`,defaultValue:{value:`false`,computed:!1}}}}})))()}export{X as a,w as c,Y as i,$ as n,J as o,ce as r,le as s,ue 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-DBSrNt2a.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-DCcg3Usb.js";import{a as p,i as m,n as h,o as g,r as _,t as v}from"./MultiSelect.stories-BdRVZGqL.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:p,parameters:{docs:{toc:!0}}}),`
|
|
2
2
|
`,(0,x.jsx)(u,{children:`MultiSelect`}),`
|
|
3
3
|
`,(0,x.jsx)(o,{children:`Мультиселект для локальных коллекций с токенами, поиском и состояниями загрузки`}),`
|
|
4
4
|
`,(0,x.jsx)(t.p,{children:`MultiSelect уже имеет живые 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,t as i}from"./CheckBox-
|
|
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"./CheckBox-BTR1-W6r.js";import{n as a,t as ee}from"./x-CdBCVC44.js";import{n as o}from"./iframe-DBSrNt2a.js";import{a as te,i as s}from"./utils-DUM89eIj.js";import{n as c,t as l}from"./Text-DEUhj_FL.js";import{n as u,t as d}from"./ui.module-CHEKb9Cb.js";import{c as f,g as p,h as m,i as h,l as g,m as _,n as ne,p as re,r as v,s as ie,t as ae,u as y}from"./usePickerTriggerController-6XAF3prJ.js";import{i as b,n as oe,r as x,t as S}from"./usePickerQuery-BN54SBQ9.js";import{n as C,t as se}from"./PickerTriggerActions-Bn7w0HQj.js";import{n as w,t as T}from"./usePickerDefaultFilter-Be420WNF.js";import{a as ce,d as le,f as ue,i as E,l as de,n as fe,o as pe,t as me,u as D}from"./defaultRenderers-DBXPZtpT.js";function O({text:e,isError:t}){return(0,k.jsxs)(`div`,{className:u.uiPopupOption,children:[(0,k.jsx)(`span`,{className:u.uiPopupOptionIcon}),(0,k.jsx)(l,{color:t?`error`:`primary`,children:e})]})}var k;function A(){return(A=e((()=>{c(),d(),k=o(),O.__docgenInfo={description:"Скелетон строки опции для `MultiSelect`. Используется во время загрузки или при отображении ошибок получения списка.",methods:[],displayName:`MultiSelectOptionSkeleton`,props:{text:{required:!0,tsType:{name:`string`},description:``},isError:{required:!1,tsType:{name:`boolean`},description:``}}}})))()}function he({isNoData:e,isLoading:t,error:n,children:r}){return e?(0,P.jsx)(x,{emptyState:(0,P.jsx)(O,{text:`Нет данных`})}):t?(0,P.jsx)(x,{loadingState:(0,P.jsx)(O,{text:`Загрузка...`})}):n?(0,P.jsx)(x,{errorState:(0,P.jsx)(O,{isError:!0,text:`Ошибка загрузки`})}):(0,P.jsx)(P.Fragment,{children:r})}function j(e,t){return e[t]}function ge(e,t,n){return Array.from(new Set([e[n],e[t],...Object.values(e)]))}function _e(e,t,n){if(e.length!==t.length)return!1;let r=new Set(t.map(e=>j(e,n)));return e.every(e=>r.has(j(e,n)))}function M({entries:e,listId:t,activeIndex:n,selectedKeys:r,codeKey:a,query:ee,highlightQuery:o,getOptionDisabled:s,getOptionId:c,setOptionRef:l,toggleOption:d,selectOnlyOption:f,renderItem:p}){return e.map(({item:e,index:m})=>{let h=m===n,g=r.has(j(e,a)),_=s?.(e)??!1;return(0,P.jsxs)(`div`,{id:c(t,m),ref:e=>l(m,e),role:`option`,"aria-selected":g,"aria-disabled":_||void 0,className:te(u.uiSelectOption,_&&u.disabled,g&&u.selected,h&&u.uiPopupOptionActive),onMouseDown:e=>{e.preventDefault()},children:[(0,P.jsx)(`div`,{onClick:e=>{e.stopPropagation()},children:(0,P.jsx)(i,{value:g,disabled:_,onChange:()=>{_||d(e)},onClick:e=>{e.stopPropagation()},onMouseDown:e=>{e.stopPropagation()}})}),(0,P.jsx)(`div`,{className:`overflowHidden`,onClick:()=>{_||f(e)},children:p(e,{selected:g,active:h,disabled:_,query:ee,highlightQuery:o})})]},`${j(e,a)}-${m}`)})}var N,P,F,I;function L(){return(L=e((()=>{N=t(n(),1),s(),a(),r(),p(),y(),b(),C(),f(),T(),v(),S(),le(),ae(),_(),d(),E(),D(),A(),P=o(),F=[],I=(0,N.forwardRef)(({codeKey:e,textKey:t,hideCode:n,items:r,value:i,onChange:a,label:o,description:te,placeholder:s,size:c,query:l,defaultQuery:d,highlightQuery:f,onQuery:p,defaultFilter:_=!0,onOpen:v,onClose:ae,getOptionDisabled:y,disabled:b,error:x,isLoading:S,renderToken:C,renderToolbar:T,renderItem:le},E)=>{let D=(0,N.useRef)(null),[O,k]=(0,N.useState)(!1),A=`search-multi`,I=i??F,L=(0,N.useMemo)(()=>new Set(I.map(t=>j(t,e))),[e,I]),R=(0,N.useMemo)(()=>r.filter(t=>!L.has(j(t,e))),[e,L,r]),z=(0,N.useMemo)(()=>pe([...I,...r],e,t),[e,I,r,t]),{query:B,setQuery:ve,resetQueryOnClose:ye}=oe({query:l,defaultQuery:d,onQuery:p,triggerMode:A}),be=e=>{O&&!e&&ye&&ve(``),k(e)},V=w({options:I,query:B,enabled:_,getSearchText:t=>ge(t,e,z)}),H=w({options:R,query:B,enabled:_,getSearchText:t=>ge(t,e,z)}),U=(0,N.useMemo)(()=>[...V,...H],[H,V]),xe=V.length>0?0:-1,{draftValue:W,setDraftValue:G,prepareOpen:Se}=ue({value:I,open:O,onCommit:a,onOpen:v,onClose:ae,isEqual:(t,n)=>_e(t,n,e)}),K=(0,N.useMemo)(()=>new Set(W.map(t=>j(t,e))),[e,W]),Ce=(0,N.useMemo)(()=>({selectedItems:W,committedSelectedItems:I,selectedKeys:K,open:O}),[I,W,O,K]),q=(0,N.useCallback)(e=>y?.(e,Ce)??!1,[y,Ce]),{activeIndex:J,context:we,floatingStyles:Te,getFloatingProps:Ee,setReference:De,setFloating:Oe,setOptionRef:ke,close:Ae,openList:je,toggleOpen:Me,selectActiveOption:Ne,handleReferenceKeyDown:Pe,handleFloatingKeyDown:Fe,getOptionId:Ie,getActiveOptionId:Le}=h({options:U,selectedIndex:xe,open:O,onOpenChange:be,onSelect:void 0,disabled:b,getOptionDisabled:q,closeOnSelect:!1,allowOpenWithoutOptions:!0,triggerMode:A}),Re=f??B,Y=t=>{let n=j(t,e);G(r=>r.some(t=>j(t,e)===n)?r.filter(t=>j(t,e)!==n):q(t)?r:[...r,t])},ze=e=>{if(D.current=e,typeof E==`function`){E(e);return}E&&(E.current=e)},Be=()=>{G([]),O||a([])},Ve=()=>{G(t=>{let n=[...t],r=new Set(t.map(t=>j(t,e)));for(let t of U){let i=j(t,e);!r.has(i)&&!q(t)&&(r.add(i),n.push(t))}return n})},He=()=>{G([])},Ue=e=>{q(e)||(G([e]),Ae())},We=O?W:I,X=We.length>0,Ge={selectedItems:We,committedSelectedItems:I,availableItems:H,query:B,open:O,clearSelection:Be,selectAll:Ve,deselectAll:He},Ke=C===void 0?fe({codeKey:e,textKey:z}):C,qe=T===void 0?ce:T,Z=le??me({codeKey:e,textKey:z,hideCode:n}),Je=typeof Ke==`function`?Ke(Ge):null,Ye=typeof qe==`function`?qe(Ge):null,Q=V.map((e,t)=>({item:e,index:t})),Xe=H.map((e,t)=>({item:e,index:t+Q.length})),Ze=!S&&!x&&U.length===0,$=ne({mode:A,open:O,currentQuery:B,hasDisplayValue:!1,inputRef:D,setQuery:ve,openList:je,close:Ae,toggleOpen:Me,onBeforeOpen:()=>{O||Se()}});return(0,P.jsx)(m,{label:o,description:te,disabled:b,size:c,className:de.multiSelect,children:({controlId:t,labelId:n,describedBy:i})=>{let a=`${t}-listbox`;return(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(ie,{ref:ze,rootRef:De,id:t,type:`text`,role:`combobox`,autoComplete:`off`,disabled:b,value:B,placeholder:X?void 0:`${s??o??`Выберите значения`} <${r.length}>`,"aria-labelledby":n,"aria-describedby":i,"aria-haspopup":`listbox`,"aria-expanded":O,"aria-controls":O?a:void 0,"aria-autocomplete":`list`,"aria-activedescendant":O?Le(a):void 0,rootClassName:`flex alignItemsCenter`,endAdornment:(0,P.jsx)(se,{open:O,disabled:b,onToggleMouseDown:$.handleToggleMouseDown,onToggleClick:$.handleToggleClick,children:(0,P.jsx)(`button`,{type:`button`,disabled:!X,className:u.uiClearButton,"data-ui":`multi-select-clear-button`,"data-action":`clear-multi-select`,onClick:Be,"aria-label":`Очистить все`,children:(0,P.jsx)(ee,{})})}),overlay:Je,onChange:e=>{$.handleTriggerInputChange(e.target.value)},onClick:$.handleTriggerClick,onFocus:e=>{$.handleTriggerFocus(e.currentTarget)},onKeyDown:e=>{Pe(e),!e.defaultPrevented&&$.handleTriggerKeyDown({event:e,onActivateWhenOpen:()=>{if(J>=0){let e=U[J];if(e){Y(e);return}}Ne()},enableClosedArrowDownOpen:!0,suppressClosedArrowUp:!0})}}),(0,P.jsx)(g,{open:O,context:we,floatingStyles:Te,listId:a,labelId:n,descriptionId:i,activeOptionId:O?Le(a):void 0,setFloating:Oe,getFloatingProps:Ee,onKeyDown:Fe,initialFocus:-1,returnFocus:!1,tabIndex:-1,className:u.uiPopupOptions,header:Ye,children:(0,P.jsx)(he,{isNoData:Ze,isLoading:S,error:x,children:(0,P.jsxs)(`div`,{className:`scrollable h100`,children:[(0,P.jsx)(M,{entries:Q,listId:a,activeIndex:J,selectedKeys:K,codeKey:e,query:B,highlightQuery:Re,getOptionDisabled:q,getOptionId:Ie,setOptionRef:ke,toggleOption:Y,selectOnlyOption:Ue,renderItem:Z}),Q.length>0&&R.length>0&&(0,P.jsx)(re,{className:`marginBlockSm`}),(0,P.jsx)(M,{entries:Xe,listId:a,activeIndex:J,selectedKeys:K,codeKey:e,query:B,highlightQuery:Re,getOptionDisabled:q,getOptionId:Ie,setOptionRef:ke,toggleOption:Y,selectOnlyOption:Ue,renderItem:Z})]})})})]})}})}),I.displayName=`MultiSelect`,I.__docgenInfo={description:`Поле множественного выбора с внутренним черновиком значений и подтверждением выбора при закрытии списка.
|
|
2
2
|
Подходит как для самостоятельного использования, так и как базовый слой для OData-оберток.`,methods:[],displayName:`MultiSelect`,props:{renderToken:{required:!1,tsType:{name:`union`,raw:`((context: TContext) => React.ReactNode) | null | false`,elements:[{name:`unknown`},{name:`null`},{name:`literal`,value:`false`}]},description:``},renderToolbar:{required:!1,tsType:{name:`union`,raw:`((context: TContext) => React.ReactNode) | null | false`,elements:[{name:`unknown`},{name:`null`},{name:`literal`,value:`false`}]},description:``},renderItem:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(item: CollectionItem, state: MultiSelectItemState) => React.ReactNode`,signature:{arguments:[{type:{name:`CollectionItem`},name:`item`},{type:{name:`MultiSelectItemState`},name:`state`}],return:{name:`ReactReactNode`,raw:`React.ReactNode`}}},description:``},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:``},codeKey:{required:!0,tsType:{name:`string`},description:``},textKey:{required:!1,tsType:{name:`string`},description:``},hideCode:{required:!1,tsType:{name:`boolean`},description:``},query:{required:!1,tsType:{name:`string`},description:``},defaultQuery:{required:!1,tsType:{name:`string`},description:``},highlightQuery:{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:``},defaultFilter:{required:!1,tsType:{name:`boolean`},description:``,defaultValue:{value:`true`,computed:!1}},items:{required:!0,tsType:{name:`Array`,elements:[{name:`TOption`}],raw:`TOption[]`},description:``},getOptionDisabled:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(item: TOption, context: MultiSelectOptionDisableContext) => boolean`,signature:{arguments:[{type:{name:`TOption`},name:`item`},{type:{name:`MultiSelectOptionDisableContext`},name:`context`}],return:{name:`boolean`}}},description:``},onOpen:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},onClose:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(value: TOption[]) => void`,signature:{arguments:[{type:{name:`Array`,elements:[{name:`TOption`}],raw:`TOption[]`},name:`value`}],return:{name:`void`}}},description:``},error:{required:!1,tsType:{name:`string`},description:``},isLoading:{required:!1,tsType:{name:`boolean`},description:``}}}})))()}export{L as n,I as t};
|
package/storybook-static/assets/{MultiSelect.stories-BnmOPMcq.js → MultiSelect.stories-BdRVZGqL.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-DBSrNt2a.js";import{n as i,t as a}from"./MultiSelect-DKv6Qe08.js";var o=t({Basic:()=>d,Empty:()=>m,ErrorState:()=>p,Loading:()=>f,__namedExportsOrder:()=>h,default:()=>u}),s,c,l,u,d,f,p,m,h;function g(){return(g=e((()=>{s=n(),i(),c=r(),l=[{code:`MOW`,label:`Москва`},{code:`SPB`,label:`Санкт-Петербург`},{code:`EKB`,label:`Екатеринбург`},{code:`KZN`,label:`Казань`},{code:`NSK`,label:`Новосибирск`}],u={title:`Shared/UI/MultiSelect`,component:a,args:{label:`Города`,description:`Выберите несколько значений.`,placeholder:`Начните вводить`,value:[],onChange:()=>{},codeKey:`code`,textKey:`label`,items:l,query:``,onQuery:()=>{},onOpen:()=>{},onClose:()=>{},size:`md`,disabled:!1},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{value:{control:!1},onChange:{control:!1},items:{control:!1},onQuery:{control:!1},onOpen:{control:!1},onClose:{control:!1},renderToken:{control:!1},renderToolbar:{control:!1},renderItem:{control:!1},size:{control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]}}},d={render:e=>{let[t,n]=(0,s.useState)([l[1]]),[r,i]=(0,s.useState)(``),o=(0,s.useMemo)(()=>{let e=r.trim().toLowerCase();return e?l.filter(t=>t.label.toLowerCase().includes(e)||t.code.toLowerCase().includes(e)):l},[r]);return(0,c.jsx)(a,{...e,value:t,items:o,query:r,onQuery:i,onChange:n})}},f={render:e=>{let[t,n]=(0,s.useState)([]);return(0,c.jsx)(a,{...e,value:t,items:[],isLoading:!0,onChange:n})}},p={render:e=>{let[t,n]=(0,s.useState)([]);return(0,c.jsx)(a,{...e,value:t,items:[],error:`Ошибка загрузки`,onChange:n})}},m={render:e=>{let[t,n]=(0,s.useState)([]);return(0,c.jsx)(a,{...e,value:t,items:[],onChange:n})}},d.parameters={...d.parameters,docs:{...d.parameters?.docs,source:{originalSource:`{
|
|
2
2
|
render: args => {
|
|
3
3
|
const [value, setValue] = useState<CollectionItem[]>([catalog[1]]);
|
|
4
4
|
const [query, setQuery] = useState("");
|
|
@@ -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-DBSrNt2a.js";import{a as n,i as r}from"./utils-DUM89eIj.js";import{n as i,t as a}from"./Text-DEUhj_FL.js";var o,s;function c(){return(c=e((()=>{r(),o=t(),s=({className:e,minHeight:t,children:r,style:i,...a})=>{let s=t===void 0?i:{...i,minHeight:t};return(0,o.jsx)(`div`,{...a,className:n(`flexCenter h100`,e),style:s,children:r})},s.__docgenInfo={description:``,methods:[],displayName:`FlexCenter`,props:{children:{required:!1,tsType:{name:`ReactNode`},description:``},minHeight:{required:!1,tsType:{name:`union`,raw:`string | number`,elements:[{name:`string`},{name:`number`}]},description:``}},composes:[`Omit`]}})))()}var l,u;function d(){return(d=e((()=>{l=`qgIKVo`,u={componentLoader:l}})))()}var f,p;function m(){return(m=e((()=>{r(),c(),i(),f=t(),p=({className:e,children:t,color:r=`muted`,minHeight:i,uppercase:o=!0})=>(0,f.jsx)(s,{className:n(`paddingMd textCenter`,e),minHeight:i,children:(0,f.jsx)(a,{as:`div`,weight:`bold`,color:r,uppercase:o,children:t})}),p.__docgenInfo={description:``,methods:[],displayName:`Message`,props:{color:{defaultValue:{value:`"muted"`,computed:!1},required:!1},uppercase:{defaultValue:{value:`true`,computed:!1},required:!1}}}})))()}function h({className:e,logo:t,text:r}){return(0,g.jsxs)(p,{className:n(u.componentLoader,t?void 0:`skeletonLine`,e),children:[t,r||`Загрузка...`]})}var g;function _(){return(_=e((()=>{r(),d(),m(),g=t(),h.__docgenInfo={description:``,methods:[],displayName:`LoadingMessage`,props:{className:{required:!1,tsType:{name:`string`},description:``},logo:{required:!1,tsType:{name:`ReactNode`},description:`Готовый брендовый знак, которым host-проект при необходимости дополняет сообщение о загрузке.`},text:{required:!1,tsType:{name:`string`},description:``}}}})))()}var v,y;function b(){return(b=e((()=>{m(),v=t(),y=({className:e,text:t,minHeight:n=`5em`})=>(0,v.jsx)(p,{className:e,color:`muted`,minHeight:n,children:t||`Нет данных`}),y.__docgenInfo={description:``,methods:[],displayName:`NoData`,props:{className:{required:!1,tsType:{name:`string`},description:``},text:{required:!1,tsType:{name:`string`},description:``},minHeight:{required:!1,tsType:{name:`union`,raw:`string | number`,elements:[{name:`string`},{name:`number`}]},description:``,defaultValue:{value:`"5em"`,computed:!1}}}}})))()}export{_ as i,b as n,h as r,y as t};
|
package/storybook-static/assets/{NotificationsHost-DGolEXP8.js → NotificationsHost-DDcfMtWv.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{i as t,n,r,t as i}from"./NotificationsHost.stories-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{i as t,n,r,t as i}from"./NotificationsHost.stories-sQMqBW2S.js";import{n as a}from"./iframe-DBSrNt2a.js";import{i as o,r as s}from"./react-qN2cStNd.js";import{a as c,d as l,f as u,l as d,m as f,n as p,p as m,r as h,u as g}from"./blocks-DCcg3Usb.js";function _(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...o(),...e.components};return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(d,{of:n,parameters:{docs:{toc:!0}}}),`
|
|
2
2
|
`,(0,y.jsx)(m,{children:`NotificationsHost`}),`
|
|
3
3
|
`,(0,y.jsx)(u,{children:`Хост глобальных уведомлений для очереди toast-сообщений и длинных пользовательских операций`}),`
|
|
4
4
|
`,(0,y.jsx)(t.p,{children:`NotificationsHost уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
|
|
@@ -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"./check-
|
|
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"./check-CmUKUPJO.js";import{n as a,t as o}from"./circle-alert-POx9wimX.js";import{n as s,t as c}from"./circle-check-BlI17qP5.js";import{i as l,n as ee,r as u,t as d}from"./info-Wi50bdLM.js";import{n as te,t as f}from"./refresh-cw-CnbDJa0D.js";import{n as ne,t as re}from"./trash-2-D4ETgmHQ.js";import{n as p,t as m}from"./triangle-alert-BhoF9j4U.js";import{n as ie,t as ae}from"./x-CdBCVC44.js";import{i as oe,n as h,r as se}from"./iframe-DBSrNt2a.js";import{a as ce,i as le}from"./utils-DUM89eIj.js";import{n as ue}from"./error-BZrNlEUO.js";import{n as de,t as fe}from"./FlexContainer-LmZIdhq2.js";import{n as pe,t as g}from"./Button-DMlznmSQ.js";import{a as me,i as he,n as ge,r as _}from"./react-CvkUhHUq.js";var v,y;function b(){return(b=e((()=>{oe(),v=[[`path`,{d:`M10.268 21a2 2 0 0 0 3.464 0`,key:`vwvbt9`}],[`path`,{d:`M22 8c0-2.3-.8-4.3-2-6`,key:`5bb3ad`}],[`path`,{d:`M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326`,key:`11g9vi`}],[`path`,{d:`M4 2C2.8 3.7 2 5.7 2 8`,key:`tap9e0`}]],y=se(`bell-ring`,v)})))()}var x,S;function C(){return(C=e((()=>{oe(),x=[[`path`,{d:`M10 2h4`,key:`n1abiw`}],[`path`,{d:`M12 14v-4`,key:`1evpnu`}],[`path`,{d:`M4 13a8 8 0 0 1 8-7 8 8 0 1 1-5.3 14L4 17.6`,key:`1ts96g`}],[`path`,{d:`M9 17H4v5`,key:`8t5av`}]],S=se(`timer-reset`,x)})))()}var w,T,E,D,O,k,A;function j(){return(j=e((()=>{me(),w=null,T=e=>(w=e,()=>{w===e&&(w=null)}),E=()=>{if(!w)throw Error(`Notifications store is not bound. Wrap app with NotificationsProvider.`);return w},D=Object.freeze({push:e=>E().getState().actions.push(e),upsert:e=>E().getState().actions.upsert(e),update:(e,t)=>E().getState().actions.update(e,t),dismiss:e=>E().getState().actions.dismiss(e),clear:()=>E().getState().actions.clear(),success:(e,t)=>E().getState().actions.push({type:`success`,message:e,...t}),info:(e,t)=>E().getState().actions.push({type:`info`,message:e,...t}),warning:(e,t)=>E().getState().actions.push({type:`warning`,message:e,...t}),error:(e,t)=>E().getState().actions.push({type:`error`,message:e,...t}),progress:(e,t)=>{let n=E(),r=t?.id;r&&n.getState().actions.upsert({id:r,type:`info`,title:t?.title,message:e,dismissible:!1});let i=r??n.getState().actions.push({type:`info`,title:t?.title,message:e,dismissible:!1});return{id:i,update:e=>D.update(i,{message:e}),success:(e,t=2500)=>D.update(i,{type:`success`,message:e,dismissible:!0,ttlMs:t}),error:(e,t=5e3)=>D.update(i,{type:`error`,message:e,dismissible:!0,ttlMs:t}),dismiss:()=>D.dismiss(i)}}}),O=()=>`${Date.now().toString(36)}-${Math.random().toString(36).slice(2,9)}`,k=6,A=()=>{let e=new Map,t=t=>{let n=e.get(t);n&&(window.clearTimeout(n),e.delete(t))},n=(n,r,i=1e4)=>{if(t(r),i<=0)return;let a=window.setTimeout(()=>{n.getState().actions.dismiss(r)},i);e.set(r,a)},r=he()((i,a)=>({items:[],actions:{push:e=>{let t=e.id??O(),a=Date.now(),o={id:t,type:e.type,title:e.title,message:e.message,createdAt:a,ttlMs:e.ttlMs,dismissible:e.dismissible??!0,actions:e.actions};return i(e=>({items:[o,...e.items.filter(e=>e.id!==t)].slice(0,k)})),n(r,t,o.ttlMs),t},update:(e,t)=>{let{items:o}=a(),s=o.findIndex(t=>t.id===e);if(s===-1)return!1;let c=o[s],l={...c,...t,id:c.id,createdAt:c.createdAt};return i(t=>({items:t.items.map(t=>t.id===e?l:t)})),`ttlMs`in t&&n(r,e,l.ttlMs),!0},upsert:e=>a().actions.update(e.id,{type:e.type,title:e.title,message:e.message,ttlMs:e.ttlMs,dismissible:e.dismissible})?e.id:a().actions.push(e),dismiss:e=>{t(e),i(t=>({items:t.items.filter(t=>t.id!==e)}))},clear:()=>{e.forEach(e=>window.clearTimeout(e)),e.clear(),i({items:[]})}}}));return r}})))()}function M({children:e}){let t=(0,F.useMemo)(()=>A(),[]);return(0,F.useEffect)(()=>T(t),[t]),(0,I.jsx)(L.Provider,{value:t,children:e})}function N(){let e=(0,F.useContext)(L);if(!e)throw ue({hookName:`useNotificationApi`,providerName:`NotificationsProvider`});return e}function _e(){let e=N();return _(e,e=>e.items)}function P(){let e=N(),t=_(e,e=>e.actions),n=e=>(n,r)=>t.push({type:e,message:n,...r});return{...t,success:n(`success`),info:n(`info`),warning:n(`warning`),error:n(`error`)}}var F,I,L;function R(){return(R=e((()=>{F=n(),j(),ge(),I=h(),L=(0,F.createContext)(null),M.__docgenInfo={description:`Провайдер уведомлений приложения. Хранит состояние списка уведомлений и предоставляет хуки доступа к нему.`,methods:[],displayName:`NotificationsProvider`}})))()}var z,B,V,H,U,W,ve,ye,be,xe,Se,Ce,we,Te,G;function Ee(){return(Ee=e((()=>{z=`STGQ3g`,B=`RaiISE`,V=`cM81wO`,H=`nH2cuZ`,U=`A2glD7`,W=`yWjijS`,ve=`_1HO2ne`,ye=`OyRJpj`,be=`vrCrow`,xe=`A0X-ma`,Se=`AkHvPV`,Ce=`_4YDLB5`,we=`CK3Bqv`,Te=`nLmQut`,G={container:z,card:B,info:V,success:H,warning:U,error:W,header:ve,content:ye,copy:be,icon:xe,kicker:Se,title:Ce,message:we,actions:Te}})))()}function K(){let e=_e(),{dismiss:t}=P();return(0,q.jsx)(`div`,{className:G.container,"aria-label":`Область уведомлений`,"aria-live":`polite`,"aria-relevant":`additions text`,children:e.map(e=>{let n=De[e.type],r=e.title??n.title,i=n.Icon;return(0,q.jsx)(`article`,{role:e.type===`error`?`alert`:`status`,"aria-atomic":`true`,className:ce(G.card,G[e.type]),children:(0,q.jsxs)(fe,{align:`start`,justify:`between`,gap:`sm`,className:G.header,children:[(0,q.jsxs)(fe,{align:`start`,gap:`sm`,className:G.content,children:[(0,q.jsx)(`span`,{className:G.icon,"aria-hidden":`true`,children:(0,q.jsx)(i,{})}),(0,q.jsxs)(`div`,{className:G.copy,children:[(0,q.jsx)(`div`,{className:G.kicker,children:n.title}),e.title?(0,q.jsx)(`div`,{className:G.title,children:r}):null,(0,q.jsx)(`div`,{className:G.message,children:e.message}),e.actions?.length?(0,q.jsx)(`div`,{className:G.actions,children:e.actions.map(t=>(0,q.jsx)(g,{tone:t.tone??e.type,appearance:`outline`,"data-ui":`notification-action-button`,"data-action":`notification-action`,onClick:()=>void t.onClick(),children:t.label},t.label))}):null]})]}),e.dismissible===!1?null:(0,q.jsx)(g,{icon:(0,q.jsx)(ae,{}),appearance:`ghost`,tone:e.type,onClick:()=>t(e.id),"aria-label":`Закрыть уведомление`,"data-ui":`notification-dismiss-button`,"data-action":`dismiss-notification`})]})},e.id)})})}var q,De;function Oe(){return(Oe=e((()=>{le(),a(),s(),ee(),p(),ie(),pe(),de(),R(),Ee(),q=h(),De={info:{title:`Информация`,Icon:d},success:{title:`Успешно`,Icon:c},warning:{title:`Предупреждение`,Icon:m},error:{title:`Ошибка`,Icon:o}},K.__docgenInfo={description:`Хост для визуального отображения очереди уведомлений.
|
|
2
2
|
Обычно монтируется один раз на уровне приложения рядом с провайдером уведомлений.`,methods:[],displayName:`NotificationsHost`}})))()}var ke=t({InteractivePlayground:()=>$,Showcase:()=>Q,__namedExportsOrder:()=>ze,default:()=>Pe});function Ae(){let{clear:e}=P();return(0,J.useEffect)(()=>(e(),()=>{e()}),[e]),null}function je({children:e}){return(0,Y.jsxs)(M,{children:[(0,Y.jsx)(Ae,{}),(0,Y.jsx)(`div`,{style:Fe,children:(0,Y.jsxs)(`div`,{style:Ie,children:[(0,Y.jsxs)(`div`,{style:Le,children:[(0,Y.jsx)(`h2`,{style:{margin:0,fontSize:`var(--font-size-xl)`},children:`Демонстрация очереди уведомлений`}),(0,Y.jsx)(`p`,{style:{margin:`12px 0 0`,color:`var(--content-1)`},children:"Хост закреплён в левом нижнем углу и использует общие токены проекта: `surface`, `content`, `status` и семантические `tone-*`. Внутри историй можно проверить лимит очереди, sticky-уведомления и сценарий длительной операции с обновлением одного уведомления."})]}),e]})}),(0,Y.jsx)(K,{})]})}function Me(){let{clear:e,push:t}=P();return(0,J.useEffect)(()=>(e(),t({type:`info`,title:`Сетевой статус`,message:`Подключение к серверу восстановлено.`,ttlMs:6e3}),t({type:`success`,title:`Профиль обновлён`,message:`Изменения сохранены и отправлены в очередь на синхронизацию.`,ttlMs:4500}),t({type:`warning`,title:`Требуется внимание`,message:`Срок действия сессии истекает через 5 минут.`}),t({type:`error`,title:`Ошибка импорта`,message:`Не удалось загрузить журнал операций.
|
|
3
3
|
Повторите запрос или обратитесь к администратору.`}),()=>{e()}),[e,t]),(0,Y.jsxs)(`div`,{style:X,children:[(0,Y.jsx)(`h3`,{style:{margin:0},children:`Снимок состояний`}),(0,Y.jsx)(`p`,{style:{margin:0,color:`var(--content-1)`},children:`История сразу заполняет очередь всеми типами уведомлений, чтобы оценить цвет, иконки, контраст и читаемость текста.`})]})}function Ne(){let e=P(),t=(0,J.useRef)(null),[n,r]=(0,J.useState)(!1),a=()=>{t.current=null,r(!1)},o=(n,r)=>{let i=t.current;i&&(!e.update(i,{message:n,...r})||r?.type)&&a()};return(0,Y.jsxs)(`div`,{style:Re,children:[(0,Y.jsxs)(`section`,{style:X,children:[(0,Y.jsx)(`h3`,{style:{margin:0},children:`Базовые сценарии`}),(0,Y.jsx)(`p`,{style:{margin:0,color:`var(--content-1)`},children:"Вызовы через `useNotify` подходят для UI-логики внутри React-компонентов."}),(0,Y.jsxs)(`div`,{style:Z,children:[(0,Y.jsx)(g,{tone:`info`,appearance:`outline`,icon:(0,Y.jsx)(d,{}),onClick:()=>e.info(`Справочник обновлён по расписанию.`,{title:`Информация`,ttlMs:3500}),children:`Info`}),(0,Y.jsx)(g,{tone:`success`,appearance:`solid`,icon:(0,Y.jsx)(i,{}),onClick:()=>e.success(`Изменения сохранены.`,{title:`Операция завершена`,ttlMs:2500}),children:`Success`}),(0,Y.jsx)(g,{tone:`warning`,appearance:`outline`,icon:(0,Y.jsx)(m,{}),onClick:()=>e.warning(`Подтвердите действие в течение 2 минут.`,{title:`Требуется подтверждение`,dismissible:!1}),children:`Sticky warning`}),(0,Y.jsx)(g,{tone:`error`,appearance:`solid`,icon:(0,Y.jsx)(u,{}),onClick:()=>e.error(`Сервис проверки подписей недоступен.`,{title:`Критическая ошибка`}),children:`Error`})]})]}),(0,Y.jsxs)(`section`,{style:X,children:[(0,Y.jsx)(`h3`,{style:{margin:0},children:`Долгая операция`}),(0,Y.jsx)(`p`,{style:{margin:0,color:`var(--content-1)`},children:"Сценарий имитирует `notify.progress`: создаёт одно sticky-уведомление и затем обновляет его по тому же `id`."}),(0,Y.jsxs)(`div`,{style:Z,children:[(0,Y.jsx)(g,{variant:`neutralOutline`,icon:(0,Y.jsx)(y,{}),onClick:()=>{let n=e.push({type:`info`,title:`Экспорт архива`,message:`Подготавливаю пакет документов...`,dismissible:!1});t.current=n,r(!0)},children:`Запустить`}),(0,Y.jsx)(g,{variant:`neutralOutline`,icon:(0,Y.jsx)(f,{}),onClick:()=>{o(`Обработано 68% записей. Формирую итоговый архив...`)},disabled:!n,children:`Обновить прогресс`}),(0,Y.jsx)(g,{tone:`success`,appearance:`outline`,icon:(0,Y.jsx)(i,{}),onClick:()=>{o(`Архив подготовлен и доступен для скачивания.`,{type:`success`,ttlMs:2500,dismissible:!0})},disabled:!n,children:`Завершить успешно`}),(0,Y.jsx)(g,{tone:`error`,appearance:`outline`,icon:(0,Y.jsx)(u,{}),onClick:()=>{o(`Не удалось собрать архив из-за ошибки чтения вложений.`,{type:`error`,ttlMs:5e3,dismissible:!0})},disabled:!n,children:`Завершить ошибкой`})]})]}),(0,Y.jsxs)(`section`,{style:X,children:[(0,Y.jsx)(`h3`,{style:{margin:0},children:`Очередь и очистка`}),(0,Y.jsx)(`p`,{style:{margin:0,color:`var(--content-1)`},children:`Стор сохраняет не более 6 уведомлений. Кнопка ниже специально создаёт 8 элементов, чтобы проверить отсечение старых записей.`}),(0,Y.jsxs)(`div`,{style:Z,children:[(0,Y.jsx)(g,{variant:`neutralOutline`,icon:(0,Y.jsx)(f,{}),onClick:()=>{for(let t=1;t<=8;t+=1)e.info(`Пакет ${t} поставлен в очередь на обработку.`,{title:`Задача ${t}`,ttlMs:8e3})},children:`Заполнить очередь`}),(0,Y.jsx)(g,{tone:`info`,appearance:`outline`,icon:(0,Y.jsx)(S,{}),onClick:()=>e.info(`Это уведомление исчезнет автоматически через 2 секунды.`,{title:`TTL = 2000 мс`,ttlMs:2e3}),children:`Проверить TTL`}),(0,Y.jsx)(g,{variant:`transparent`,icon:(0,Y.jsx)(re,{}),onClick:()=>{a(),e.clear()},children:`Очистить всё`})]})]})]})}var J,Y,Pe,Fe,Ie,Le,Re,X,Z,Q,$,ze;function Be(){return(Be=e((()=>{J=n(),b(),r(),ee(),te(),C(),ne(),p(),l(),pe(),R(),Oe(),Y=h(),Pe={title:`Shared/UI/Notifications`,component:K,parameters:{atomicCanvas:!0,layout:`fullscreen`,docs:{description:{component:`Компонент отображает очередь глобальных уведомлений поверх интерфейса. Истории ниже показывают внешний вид для разных статусов, работу автозакрытия, ограничение очереди и сценарий длительной операции с обновлением одного уведомления.`}}}},Fe={minHeight:`100vh`,padding:`32px 24px 160px`,background:`linear-gradient(180deg, color-mix(in srgb, var(--surface-1) 82%, transparent) 0%, var(--surface-0) 100%)`,color:`var(--content-0)`},Ie={maxWidth:1120,margin:`0 auto`,display:`grid`,gap:16},Le={padding:20,border:`var(--border)`,borderRadius:`var(--radius-md)`,background:`var(--surface-0)`,boxShadow:`var(--shadow-sm)`},Re={display:`grid`,gap:16,gridTemplateColumns:`repeat(auto-fit, minmax(280px, 1fr))`},X={padding:20,border:`var(--border)`,borderRadius:`var(--radius-md)`,background:`var(--surface-0)`,boxShadow:`var(--shadow-sm)`,display:`grid`,gap:12,alignContent:`start`},Z={display:`flex`,flexWrap:`wrap`,gap:10},Q={render:()=>(0,Y.jsx)(je,{children:(0,Y.jsx)(Me,{})}),parameters:{docs:{description:{story:`Быстрый визуальный обзор: все статусы сразу добавляются в очередь после открытия истории.`}}}},$={render:()=>(0,Y.jsx)(je,{children:(0,Y.jsx)(Ne,{})}),parameters:{docs:{description:{story:`Интерактивный сценарий для проверки базовых уведомлений, длительной операции, лимита очереди и автозакрытия.`}}}},Q.parameters={...Q.parameters,docs:{...Q.parameters?.docs,source:{originalSource:`{
|
|
4
4
|
render: () => <NotificationsStoryShell>
|
package/storybook-static/assets/{ODataMultiSelect-zz9GzQ4E.js → ODataMultiSelect-CT4h5T5J.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-DBSrNt2a.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-DCcg3Usb.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,u as S}from"./ODataMultiSelect.stories-D7bd1KpX.js";function C(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(s,{of:b,parameters:{docs:{toc:!0}}}),`
|
|
2
2
|
`,(0,T.jsx)(u,{children:`ODataMultiSelect`}),`
|
|
3
3
|
`,(0,T.jsx)(o,{children:`Мультиселект с загрузкой коллекций по OData и зависимостями от внешних фильтров`}),`
|
|
4
4
|
`,(0,T.jsx)(t.p,{children:`ODataMultiSelect уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
|
|
@@ -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-DBSrNt2a.js";import{r as i,s as a}from"./odata-BBTqO7nX.js";import{n as o,r as s,t as c}from"./useODataSelectBase-oxkyJY_R.js";import{n as l,t as u}from"./MultiSelect-DKv6Qe08.js";import{a as d,i as f,l as p,n as m,o as h,r as g,s as _,t as v}from"./odataStoryFixtures-CYqFNpE_.js";function y({odata:e,segment:t,model:n,value:r,dependencies:i,onChange:a}){let c=s({odata:e,segment:t,model:n,value:r,dependencies:i}),l=e=>{a(o(e,c.selectionKey))};return{...c,handleChange:l}}function b(){return(b=e((()=>{c()})))()}var x,S;function C(){return(C=e((()=>{n(),a(),b(),l(),x=r(),S=({odata:e,segment:t,model:n,label:r,description:a,disabled:o,value:s,dependencies:c,onChange:l,size:d})=>{let f=y({odata:e,segment:t,model:i(n),value:s,dependencies:c,onChange:l});return(0,x.jsx)(u,{label:r,description:a,size:d,codeKey:f.codeKey,textKey:f.textKey,hideCode:t.hideCode??e.hideCode,items:f.filteredItems,value:f.selectedItems,onChange:f.handleChange,onQuery:f.setQuery,query:f.query,defaultFilter:!1,highlightQuery:f.debouncedQuery,disabled:o||f.isLoading,placeholder:f.placeholder,error:f.isError?`Ошибка загрузки`:void 0})},S.__docgenInfo={description:``,methods:[],displayName:`ODataMultiSelect`}})))()}var w=t({BasicDivision:()=>A,CollectionError:()=>L,HideCode:()=>j,LinkedFilters:()=>P,LoadingState:()=>F,MetadataError:()=>I,SelectTextValue:()=>M,StaticDependency:()=>N,__namedExportsOrder:()=>R,default:()=>k});function T({initialValue:e=[],odata:t=m,model:n=v,segment:r=g,dependencies:i,label:a=`OData MultiSelect`,description:o}){let[s,c]=(0,D.useState)(e);return(0,O.jsxs)(`div`,{style:{display:`grid`,gap:12,maxWidth:520},children:[(0,O.jsx)(S,{label:a,description:o,odata:t,model:n,segment:r,value:s,dependencies:i,onChange:c}),(0,O.jsxs)(`div`,{style:{fontSize:`var(--font-size-sm)`,color:`var(--content-1)`},children:[`Текущее значение: `,s.length?s.join(`, `):`пусто`]})]})}function E(){let[e,t]=(0,D.useState)([_.region]),[n,r]=(0,D.useState)([_.branch,_.branchAlt]),[i,a]=(0,D.useState)([_.team]),[o,s]=(0,D.useState)([_.owner,_.ownerAlt]),c=e.length?{REGION:e}:void 0,l=e.length&&n.length?{REGION:e,BRANCH:n}:c,u=e.length&&n.length&&i.length?{REGION:e,BRANCH:n,TEAM:i}:l;return(0,O.jsxs)(`div`,{style:{display:`grid`,gap:16,maxWidth:720},children:[(0,O.jsx)(S,{label:`Регион`,description:`Корневой фильтр для цепочки. После смены значения downstream-фильтры сбрасываются.`,odata:m,model:{...v,codeKey:`REGION`},segment:{placeholder:`Регион`},value:e,onChange:e=>{t(e),r([]),a([]),s([])}}),(0,O.jsx)(S,{label:`Подразделение`,description:`Выбор нескольких подразделений внутри выбранных регионов.`,odata:m,model:{...v,codeKey:`BRANCH`},segment:{placeholder:`Подразделение`},dependencies:c,value:n,onChange:e=>{r(e),a([]),s([])}}),(0,O.jsx)(S,{label:`Команда`,description:`Третий уровень зависит от текущего набора подразделений.`,odata:m,model:{...v,codeKey:`TEAM`},segment:{placeholder:`Команда`},dependencies:l,value:i,onChange:e=>{a(e),s([])}}),(0,O.jsx)(S,{label:`Ответственный`,description:`Leaf-уровень для выбранных команд.`,odata:m,model:{...v,codeKey:`OWNER`},segment:{placeholder:`Ответственный`},dependencies:u,value:o,onChange:s}),(0,O.jsxs)(`div`,{style:{display:`grid`,gap:4,fontSize:`var(--font-size-sm)`,color:`var(--content-1)`},children:[(0,O.jsxs)(`div`,{children:[`Регион: `,e.length?e.join(`, `):`пусто`]}),(0,O.jsxs)(`div`,{children:[`Подразделение: `,n.length?n.join(`, `):`пусто`]}),(0,O.jsxs)(`div`,{children:[`Команда: `,i.length?i.join(`, `):`пусто`]}),(0,O.jsxs)(`div`,{children:[`Ответственный: `,o.length?o.join(`, `):`пусто`]})]})]})}var D,O,k,A,j,M,N,P,F,I,L,R;function z(){return(z=e((()=>{D=n(),f(),C(),O=r(),k={title:`Shared/UI/ODataMultiSelect`,component:S,decorators:[p],beforeEach:d,parameters:{atomicCanvas:!0,layout:`padded`,odataMockMode:`success`},args:{label:`Регион`,description:`Пример OData MultiSelect на основе конфигурации ui control.`,odata:m,model:v,segment:g,value:[],onChange:()=>{}},argTypes:{onChange:{control:!1},value:{control:!1},dependencies:{control:!1}}},A={name:`Базовый регион`,render:()=>(0,O.jsx)(T,{label:`Регион`,description:`Базовая настройка из multiSelectConfig: выбор кодов REGION с текстовым отображением.`,model:{...v,codeKey:`REGION`},segment:{placeholder:`Регион`},initialValue:[_.region]})},j={name:`Скрытый код`,render:()=>(0,O.jsx)(T,{label:`Подразделение`,description:`Сценарий segment.hideCode: в списке и токене показывается только текст без кода.`,model:{...v,codeKey:`BRANCH`},segment:{placeholder:`Подразделение`,hideCode:!0},initialValue:[_.branch,_.branchAlt]})},M={name:`Выбор текста вместо кода`,render:()=>(0,O.jsx)(T,{label:`Регион по тексту`,description:`Сценарий segment.selectText: наружу возвращаются текстовые значения, а не коды.`,model:{...v,codeKey:`REGION`},segment:{placeholder:`Регион`,selectText:!0},initialValue:[_.regionText]})},N={name:`Зависимость от региона`,render:()=>(0,O.jsx)(T,{label:`Подразделение c зависимостью`,description:`Фильтрация подразделений по уже выбранному региону через props.dependencies.`,model:{...v,codeKey:`BRANCH`},segment:{placeholder:`Подразделение`},dependencies:{REGION:[_.region]},initialValue:[_.branch]})},P={name:`Связанная цепочка фильтров`,render:()=>(0,O.jsx)(E,{})},F={name:`Состояние загрузки`,parameters:{odataMockMode:`loading`},render:()=>(0,O.jsx)(T,{odata:h.loading,label:`Команда`,description:`Mock с задержкой ответа, чтобы проверить loading-state и skeleton.`,model:{...v,codeKey:`TEAM`},segment:{placeholder:`Команда`}})},I={name:`Ошибка metadata`,parameters:{odataMockMode:`metadataError`},render:()=>(0,O.jsx)(T,{odata:h.metadataError,label:`Регион`,description:`Сервис возвращает ошибку metadata. Полезно для проверки поведения хука useODataEntity.`,model:{...v,codeKey:`REGION`},segment:{placeholder:`Регион`}})},L={name:`Деградация при ошибке коллекции`,parameters:{odataMockMode:`collectionError`},render:()=>(0,O.jsx)(T,{odata:h.collectionError,label:`Ответственный`,description:`Transport возвращает 500, а текущий API-контракт безопасно показывает пустой список.`,model:{...v,codeKey:`OWNER`},segment:{placeholder:`Ответственный`}})},A.parameters={...A.parameters,docs:{...A.parameters?.docs,source:{originalSource:`{
|
|
2
2
|
name: "Базовый регион",
|
|
3
3
|
render: () => <StatefulODataMultiSelect label="Регион" description="Базовая настройка из multiSelectConfig: выбор кодов 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-DBSrNt2a.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-DCcg3Usb.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,u as S}from"./ODataSelect.stories-D9x-rhIV.js";function C(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,T.jsxs)(T.Fragment,{children:[(0,T.jsx)(s,{of:b,parameters:{docs:{toc:!0}}}),`
|
|
2
2
|
`,(0,T.jsx)(u,{children:`ODataSelect`}),`
|
|
3
3
|
`,(0,T.jsx)(o,{children:`Single-select с загрузкой OData-справочника, поиском и зависимостями от внешних фильтров`}),`
|
|
4
4
|
`,(0,T.jsx)(t.p,{children:`ODataSelect уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
|