@ryuzaki13/react-foundation-ui 1.5.11 → 1.5.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/CheckBox.module-C5SjPwSj.js.map +1 -1
- package/dist/chunks/ui.module-DHVTOqZ0.js.map +1 -1
- package/dist/styles.css +1 -1
- package/package.json +1 -1
- package/src/styles/config/_index.scss +2 -2
- package/storybook-static/assets/{Badge-BRzsgtsW.js → Badge-BeE_wR-e.js} +1 -1
- package/storybook-static/assets/{Badge.stories-BEUzIGxR.js → Badge.stories-BMLNLp7n.js} +1 -1
- package/storybook-static/assets/{BadgeList-Dvi9mgiq.js → BadgeList-B1SSw9no.js} +1 -1
- package/storybook-static/assets/{Button-D9NRl_J-.js → Button-CS7C3s7J.js} +1 -1
- package/storybook-static/assets/{Button-B0yitxpz.js → Button-Vi1a4Q0N.js} +1 -1
- package/storybook-static/assets/{Button.stories-RTpFQ0lC.js → Button.stories-BAyszGDt.js} +1 -1
- package/storybook-static/assets/{CalendarView-hixokiLY.js → CalendarView-CroQMfFX.js} +1 -1
- package/storybook-static/assets/{CheckBox-CkP3wY1y.js → CheckBox-BSQDnjGm.js} +1 -1
- package/storybook-static/assets/CheckBox-BnO90VKX.css +1 -0
- package/storybook-static/assets/{CheckBox-DgcHpYEB.js → CheckBox-Cj9xdsq2.js} +1 -1
- package/storybook-static/assets/{CheckBox.stories-B6gt-Pyy.js → CheckBox.stories-JSQfqZK5.js} +1 -1
- package/storybook-static/assets/{Color-6AOWCN3U-CS57U4UC.js → Color-6AOWCN3U-D5PnNXqh.js} +1 -1
- package/storybook-static/assets/{ContextMenu-DfArrHyO.js → ContextMenu-CocuusYO.js} +1 -1
- package/storybook-static/assets/{ContextMenu-CvaQBpuB.js → ContextMenu-rzpDsRZx.js} +1 -1
- package/storybook-static/assets/{ContextMenu.stories-UUZnkfjK.js → ContextMenu.stories-CO9uACMA.js} +1 -1
- package/storybook-static/assets/{DateInput-D0Z39L0u.js → DateInput-BFUW6ZnL.js} +1 -1
- package/storybook-static/assets/{DateInput-BOJzcuf8.js → DateInput-Du3E2ET_.js} +1 -1
- package/storybook-static/assets/{DateInput.stories-B9oAtjEF.js → DateInput.stories-DDa04kSj.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-I9kq2B9z.js → DateRangePresetSelect-CSiFT5F5.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-Bhzy-5vR.js → DateRangePresetSelect-D6xM7__Q.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect.stories-CkkmtUCo.js → DateRangePresetSelect.stories-eF33IA75.js} +1 -1
- package/storybook-static/assets/{Detail-D038XLEh.js → Detail-BE-E18-T.js} +1 -1
- package/storybook-static/assets/{Detail.stories-Dy8sCrYr.js → Detail.stories-NCvSVTmL.js} +1 -1
- package/storybook-static/assets/{Dialog-DvcT-HcI.js → Dialog-C4HX9Sgs.js} +1 -1
- package/storybook-static/assets/{Dialog-BpBfxyHP.js → Dialog-DSmGfP7k.js} +1 -1
- package/storybook-static/assets/{Dialog.stories-CFwZCUTc.js → Dialog.stories-CVtvkV1R.js} +1 -1
- package/storybook-static/assets/{Disclosure-bS8JZMZH.js → Disclosure-CwhrFXI8.js} +1 -1
- package/storybook-static/assets/{Disclosure.stories-DoRb7eFP.js → Disclosure.stories-DHOMAfuS.js} +1 -1
- package/storybook-static/assets/{DisclosureGroup-C8bhahk2.js → DisclosureGroup-Be79LGlr.js} +1 -1
- package/storybook-static/assets/{DocsRenderer-JROSPFPF-BENO-TjP.js → DocsRenderer-JROSPFPF-DIVlRluw.js} +1 -1
- package/storybook-static/assets/{DropZone-CT2ql-iq.js → DropZone-5B0A-vFn.js} +1 -1
- package/storybook-static/assets/{DropZone-BFesDtXX.js → DropZone-BZCyapHh.js} +1 -1
- package/storybook-static/assets/{DropZone.stories-DjyWW5NR.js → DropZone.stories-BlTy-nE5.js} +1 -1
- package/storybook-static/assets/{DropdownMenu-DFIvsL7-.js → DropdownMenu-CqSO4Xln.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel-HfuTxNHC.js → ExpandableActionPanel-DGK_hHxg.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel.stories-hrKtH1J5.js → ExpandableActionPanel.stories-IH6Gcybn.js} +1 -1
- package/storybook-static/assets/{Flex-YpXsCy6o.js → Flex-D_Ov-qrX.js} +1 -1
- package/storybook-static/assets/{Flex.stories-Ck5prBoq.js → Flex.stories-DyibLGoC.js} +1 -1
- package/storybook-static/assets/{FloatingPopover-DOPDzLFT.js → FloatingPopover-Dt0czWS7.js} +1 -1
- package/storybook-static/assets/{FormattedTableCell-CpYotISk.js → FormattedTableCell-BkTdSSLq.js} +1 -1
- package/storybook-static/assets/{Grid-DUocH4TX.js → Grid-CwZOkx33.js} +1 -1
- package/storybook-static/assets/{Grid.stories-jnw37ukT.js → Grid.stories-Dsu31tqi.js} +1 -1
- package/storybook-static/assets/{ImageCropper.stories-CDLsJM59.js → ImageCropper.stories-BqRshYgd.js} +1 -1
- package/storybook-static/assets/{ImageRenderer-CZ7DKuFY.js → ImageRenderer-DiEaiphg.js} +1 -1
- package/storybook-static/assets/{ImageRenderer.stories-B8-aQ58B.js → ImageRenderer.stories-DXk_A_1N.js} +1 -1
- package/storybook-static/assets/{ImageView.stories-DLhqZ_GI.js → ImageView.stories-TuZxh1Fr.js} +1 -1
- package/storybook-static/assets/{ImageViewer.stories-o1yD_rZq.js → ImageViewer.stories-CL796ExX.js} +2 -2
- package/storybook-static/assets/{ImageViewerRuntime-CJlrAsfL.js → ImageViewerRuntime-CCVrFr6t.js} +1 -1
- package/storybook-static/assets/{Input-B8y70gW9.js → Input-CRRkPSmn.js} +1 -1
- package/storybook-static/assets/{Input-8dAj3L5M.js → Input-Dmum9ojv.js} +1 -1
- package/storybook-static/assets/{Input.stories-KAOo2cMb.js → Input.stories-C8y8Gzjn.js} +1 -1
- package/storybook-static/assets/{InputDateTime-C8iXQn7P.js → InputDateTime-DozxwdSK.js} +1 -1
- package/storybook-static/assets/{InputDateTime.stories-BOUfVN41.js → InputDateTime.stories-Dm86teu7.js} +1 -1
- package/storybook-static/assets/{InputFile-BlMNRcyL.js → InputFile-Cm1ipP_c.js} +1 -1
- package/storybook-static/assets/{InputFile-C-CwNpFJ.js → InputFile-DPYOyrse.js} +1 -1
- package/storybook-static/assets/{InputFile.stories-MD9cAu-W.js → InputFile.stories-A9sXRTPi.js} +1 -1
- package/storybook-static/assets/{InputFiles-BMjWaVN9.js → InputFiles-D6ibnj3Y.js} +1 -1
- package/storybook-static/assets/{InputFiles-D72fv8HQ.js → InputFiles-DqYEI0vF.js} +1 -1
- package/storybook-static/assets/{InputFiles.stories-BlD8cBmt.js → InputFiles.stories-CTK_G05d.js} +1 -1
- package/storybook-static/assets/{InputFilesList-Dol1dIX5.js → InputFilesList-Cw2vB_I4.js} +1 -1
- package/storybook-static/assets/{InputImage-uE0JlBq5.js → InputImage-YaDG8UBR.js} +1 -1
- package/storybook-static/assets/{InputImage-_sOF8mmB.js → InputImage-eWMt3Rpi.js} +1 -1
- package/storybook-static/assets/{InputImage.stories-R6HZFGuR.js → InputImage.stories-Ba5v3XyF.js} +1 -1
- package/storybook-static/assets/{InteractiveComponents-BDmyyudJ.js → InteractiveComponents-C3WdIF2c.js} +1 -1
- package/storybook-static/assets/{InteractiveComponents.stories-RsjV4QyY.js → InteractiveComponents.stories-CPqOBcYI.js} +1 -1
- package/storybook-static/assets/{LayoutPicker-CqpAicOL.js → LayoutPicker-CAIujH3t.js} +1 -1
- package/storybook-static/assets/{LayoutPicker-CywNkFMn.js → LayoutPicker-mQiBJ85c.js} +1 -1
- package/storybook-static/assets/{LayoutPicker.stories-BMiwqihl.js → LayoutPicker.stories-BAqhsvOh.js} +1 -1
- package/storybook-static/assets/{Listbox-Bznk_lrX.js → Listbox-BCfY4SYB.js} +1 -1
- package/storybook-static/assets/{Listbox-zQgffOs0.js → Listbox-vwKVwC47.js} +1 -1
- package/storybook-static/assets/{Listbox.stories-BeWjK-CY.js → Listbox.stories-CA7VrO6z.js} +1 -1
- package/storybook-static/assets/{Modal-unWtDqq_.js → Modal-DvisZoA2.js} +1 -1
- package/storybook-static/assets/{Modal.stories-DepzRvWp.js → Modal.stories-Dj66uXRY.js} +1 -1
- package/storybook-static/assets/{ModalManagerProvider-B1XUXs-1.js → ModalManagerProvider-CSsTef9-.js} +1 -1
- package/storybook-static/assets/{MultiSelect-U5XEaFTv.js → MultiSelect-C4uT-lwM.js} +1 -1
- package/storybook-static/assets/{MultiSelect-DBzuR4v6.js → MultiSelect-CpNX4wyD.js} +1 -1
- package/storybook-static/assets/{MultiSelect.stories-9xtLUsmK.js → MultiSelect.stories-CjIw1FBQ.js} +1 -1
- package/storybook-static/assets/{NoData-Did5-Vbj.js → NoData-J6gIe2DW.js} +1 -1
- package/storybook-static/assets/{NotificationsHost-C16jWWbh.js → NotificationsHost-B4vBCIUo.js} +1 -1
- package/storybook-static/assets/{NotificationsHost.stories-Df9Sciyb.js → NotificationsHost.stories-Btx0-jS4.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect-_5_Hrv8p.js → ODataMultiSelect-BRWRd-T0.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect.stories-DWTlih_F.js → ODataMultiSelect.stories-AcwmUSqN.js} +1 -1
- package/storybook-static/assets/{ODataSelect-xX8_14hD.js → ODataSelect-DKF1dPMT.js} +1 -1
- package/storybook-static/assets/{ODataSelect.stories-B_VSMkR5.js → ODataSelect.stories-BCCDQvG1.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect-CheCWkrj.js → ODataTreeMultiSelect-Jmrc7xEO.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect.stories-CAWAJxdC.js → ODataTreeMultiSelect.stories-BWX3TG9B.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect-ZQN9ZhPc.js → ODataTreeSelect-CGO2HVbN.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect.stories-CYC_eiFv.js → ODataTreeSelect.stories-DSmhE-Li.js} +1 -1
- package/storybook-static/assets/{OneStepScroller-KFcpHiAM.js → OneStepScroller-pU0sAFEq.js} +1 -1
- package/storybook-static/assets/{PeriodSelect-DN9SFKXh.js → PeriodSelect-DmogN2kp.js} +1 -1
- package/storybook-static/assets/{PeriodSelect-BgQWqB2a.js → PeriodSelect-DwozNnWV.js} +1 -1
- package/storybook-static/assets/{PeriodSelect.stories-DcUE2clK.js → PeriodSelect.stories-Cwad_AnS.js} +1 -1
- package/storybook-static/assets/{PickerSelectionToolbar-CvqU44D-.js → PickerSelectionToolbar-B3N3Sv51.js} +1 -1
- package/storybook-static/assets/{PickerTriggerActions-DZzNAe4M.js → PickerTriggerActions-BurXeCTR.js} +1 -1
- package/storybook-static/assets/{Popover-B1_qmzkr.js → Popover-Bi3JzbPI.js} +1 -1
- package/storybook-static/assets/{Popover-iSasApKA.js → Popover-DYoRYOJQ.js} +1 -1
- package/storybook-static/assets/{Popover.stories-CGLUaRgH.js → Popover.stories-jhxw-37b.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-D_ylm7hV.js → PresetRangeDateInput-4GkY4C-R.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-CxyBq2XS.js → PresetRangeDateInput-5o-VfEMw.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput.stories-DgrBel6_.js → PresetRangeDateInput.stories-BLrQFysM.js} +1 -1
- package/storybook-static/assets/{PresetSelect-CrdvEugF.js → PresetSelect-VSLjZIEN.js} +1 -1
- package/storybook-static/assets/{RadioButton-DwyUH5ms.js → RadioButton-BmDJRjUd.js} +1 -1
- package/storybook-static/assets/{RadioButton-DW4ph1Xp.js → RadioButton-DtZXxK2y.js} +1 -1
- package/storybook-static/assets/{RadioButton.stories-6q7CeUZY.js → RadioButton.stories-CnjoSTqx.js} +1 -1
- package/storybook-static/assets/{RadioGroup-DshEU96S.js → RadioGroup-C5avdavC.js} +1 -1
- package/storybook-static/assets/{RadioGroup-BumTRrwE.js → RadioGroup-DKQukpG2.js} +1 -1
- package/storybook-static/assets/{RadioGroup.stories-Bwv8Bgn8.js → RadioGroup.stories-D2RkFaPs.js} +1 -1
- package/storybook-static/assets/{Scrollable-ZI0zA9wz.js → Scrollable-BfWwu2om.js} +1 -1
- package/storybook-static/assets/{Select-CjuyI3wO.js → Select-C8NwIhWM.js} +1 -1
- package/storybook-static/assets/{Select-CP1Ijv9g.js → Select-wCbHE4lQ.js} +1 -1
- package/storybook-static/assets/{Select.stories-kCFhGvWP.js → Select.stories-a2seNrPn.js} +1 -1
- package/storybook-static/assets/{SelectOptionContent-C2DjqaM0.js → SelectOptionContent-ZSxvUFLm.js} +1 -1
- package/storybook-static/assets/{SerializableSelect-CoVoXwJS.js → SerializableSelect-4Goej9W_.js} +1 -1
- package/storybook-static/assets/{SerializableSelect.stories-UTJc7HQF.js → SerializableSelect.stories-BkCW3jp4.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-bIeFRT8c.js → SingleDateTimeInput-BfG4Wffa.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-DobT9m-7.js → SingleDateTimeInput-C2QxXHnT.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput.stories-CwAP5lI3.js → SingleDateTimeInput.stories-D1EHS_Lj.js} +1 -1
- package/storybook-static/assets/{Slider-DB7dm4uC.js → Slider-COfQFgR8.js} +1 -1
- package/storybook-static/assets/{Slider-CnhBAXNm.js → Slider-DutRipBc.js} +1 -1
- package/storybook-static/assets/{Slider.stories-D7ADzpCF.js → Slider.stories-DXNQd3RV.js} +1 -1
- package/storybook-static/assets/{SliderInput-DfMdXNjq.js → SliderInput-CKdp2Gmo.js} +1 -1
- package/storybook-static/assets/{SliderInput-CvmZ86d-.js → SliderInput-D15wYNK7.js} +1 -1
- package/storybook-static/assets/{SliderInput.stories-CKe5q8PZ.js → SliderInput.stories-BHmBapUE.js} +1 -1
- package/storybook-static/assets/{Sortable-D-PG0esR.js → Sortable-Cv98zRm4.js} +1 -1
- package/storybook-static/assets/{Sortable.stories-BUUu5LQR.js → Sortable.stories-VjnupnmR.js} +1 -1
- package/storybook-static/assets/{Splitter-Cbiph6ck.js → Splitter-jOqNKtm0.js} +1 -1
- package/storybook-static/assets/{Splitter.stories-z1_IuipN.js → Splitter.stories-BTJf67_i.js} +1 -1
- package/storybook-static/assets/{StateSelect-BfhvHQrQ.js → StateSelect-BNXXcX4c.js} +1 -1
- package/storybook-static/assets/{StateSelect-C6b0aolc.js → StateSelect-D8Zep8nb.js} +1 -1
- package/storybook-static/assets/{StateSelect.stories-yKKasuZq.js → StateSelect.stories-B0nR14db.js} +1 -1
- package/storybook-static/assets/{StringToggle.stories-mHQXke0Z.js → StringToggle.stories-Cat4CWpp.js} +1 -1
- package/storybook-static/assets/{Switch-DtYu0DX3.js → Switch-CNbwWtfu.js} +1 -1
- package/storybook-static/assets/{Switch--s8CABgk.js → Switch-CmxJq-nM.js} +1 -1
- package/storybook-static/assets/{Switch.stories-DqVmpD3F.js → Switch.stories-T7MZJAke.js} +1 -1
- package/storybook-static/assets/{Table-CS-8NjMS.js → Table-C7D3rt22.js} +1 -1
- package/storybook-static/assets/{Table.stories-BDEFvavq.js → Table.stories-C0jQhruO.js} +1 -1
- package/storybook-static/assets/{Tabs-DVAc2sEq.js → Tabs-BEO2hPOw.js} +1 -1
- package/storybook-static/assets/{Tabs.stories-Bx3SVBYV.js → Tabs.stories-CgVofLQc.js} +1 -1
- package/storybook-static/assets/{TabsBox-DIc3bAG9.js → TabsBox-C4gzhmdB.js} +1 -1
- package/storybook-static/assets/{TagInput-DvJOyiDa.js → TagInput-C_nlfbRh.js} +1 -1
- package/storybook-static/assets/{TagInput.stories-BfUUxxvB.js → TagInput.stories-BMCmW5eG.js} +1 -1
- package/storybook-static/assets/{Text-DDM_QNpo.js → Text-BqKrUz4Q.js} +1 -1
- package/storybook-static/assets/{Textarea-B8jfChqH.js → Textarea-BRstHvhs.js} +1 -1
- package/storybook-static/assets/{Textarea-CouwxZMS.js → Textarea-BbNW9GUS.js} +1 -1
- package/storybook-static/assets/{Textarea.stories-B5YnG6Hg.js → Textarea.stories-B_22Qe-e.js} +1 -1
- package/storybook-static/assets/{TimePanel-Ce44lmoA.js → TimePanel-9AlN21FL.js} +1 -1
- package/storybook-static/assets/{TimePanel.stories-dMXzRVpT.js → TimePanel.stories-yxNANrSL.js} +1 -1
- package/storybook-static/assets/{Toggle-C8qL0JdM.js → Toggle-Bl89R1NL.js} +1 -1
- package/storybook-static/assets/{Toggle-BLb3M4N1.js → Toggle-YLom0uCh.js} +1 -1
- package/storybook-static/assets/{Toggle.stories-CR8xCkXd.js → Toggle.stories-BGIwKyic.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-5fHQVUTd.js → TreeMultiSelect-C9hv75Z0.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-Bttryv5k.js → TreeMultiSelect-Dhl8PI6r.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect.stories-B4zkiRfC.js → TreeMultiSelect.stories-DefpU9Nq.js} +1 -1
- package/storybook-static/assets/{TreePickerBase-B_XyJaYL.js → TreePickerBase-B5guKjut.js} +1 -1
- package/storybook-static/assets/{TreeSelect-BmV5BgHm.js → TreeSelect-Cbtl72S2.js} +1 -1
- package/storybook-static/assets/{TreeSelect-_mFMic9T.js → TreeSelect-D1wgUUfD.js} +1 -1
- package/storybook-static/assets/{TreeSelect.stories-D-lz21y2.js → TreeSelect.stories-DK6Z_n2h.js} +1 -1
- package/storybook-static/assets/{TreeTable-BjnuFqoj.js → TreeTable-CC5CA5OL.js} +1 -1
- package/storybook-static/assets/{TreeTable.stories-OEii5uhT.js → TreeTable.stories-DVYLy82M.js} +1 -1
- package/storybook-static/assets/{async-BggDKhCa.js → async-CDaecudw.js} +1 -1
- package/storybook-static/assets/{blocks-DXv0kKnO.js → blocks-DFQ7gHL7.js} +3 -3
- package/storybook-static/assets/{browserAndReact-CJg4Htw7.js → browserAndReact-DNd3NO2z.js} +1 -1
- package/storybook-static/assets/{check-BDF3qN6C.js → check-CDGa2frI.js} +1 -1
- package/storybook-static/assets/{chevron-down-DycW5rEN.js → chevron-down-B5gF19ie.js} +1 -1
- package/storybook-static/assets/{chevron-left-C5fp0Uga.js → chevron-left-BhhrtQ5w.js} +1 -1
- package/storybook-static/assets/{chevron-right-BtcaEPgU.js → chevron-right-ULlpFrtQ.js} +1 -1
- package/storybook-static/assets/{chunk-W22LQPXL-DpbhHTe5.js → chunk-W22LQPXL-bz_jGWFd.js} +1 -1
- package/storybook-static/assets/{circle-alert-BHmYiVSQ.js → circle-alert-DG_0NWce.js} +1 -1
- package/storybook-static/assets/{circle-check-D-kWZdLj.js → circle-check-DKgLpHr-.js} +1 -1
- package/storybook-static/assets/{components-CiK0i2y5.js → components-CgxL1hHE.js} +3 -3
- package/storybook-static/assets/{contextMenu-BuB7GWKM.js → contextMenu-D_apFypV.js} +1 -1
- package/storybook-static/assets/{defaultRenderers-DKIVh61V.js → defaultRenderers-CK6DySTx.js} +1 -1
- package/storybook-static/assets/{download-CHMcYpj3.js → download-BMlQunb2.js} +1 -1
- package/storybook-static/assets/{filesAndExcel-DlArA_GW.js → filesAndExcel-BmDCLG9Y.js} +1 -1
- package/storybook-static/assets/{floating-ui.react-2n8Uyf0J.js → floating-ui.react-DaDI6aL_.js} +1 -1
- package/storybook-static/assets/{formatters-BwCs7xCt.js → formatters-C5iLXNhs.js} +1 -1
- package/storybook-static/assets/{formatters-runtime-ibdtp7C6.js → formatters-runtime-CsjNRxSG.js} +1 -1
- package/storybook-static/assets/{foundationLib-DAvQ9wk8.js → foundationLib-BcQgD58A.js} +1 -1
- package/storybook-static/assets/{hooks-D0mbXwcm.js → hooks-C9DxdAXO.js} +1 -1
- package/storybook-static/assets/{iframe-BnjRbLCp.js → iframe-BOYfiRbQ.js} +3 -3
- package/storybook-static/assets/iframe-Dy-1_8OT.js +1 -0
- package/storybook-static/assets/iframe-OPLBHfTR.css +1 -0
- package/storybook-static/assets/{info-B9srbxQP.js → info-BuKiC7d0.js} +1 -1
- package/storybook-static/assets/{odata-D9w_2DW1.js → odata-CGjX6csD.js} +1 -1
- package/storybook-static/assets/{odataAndTables-B7U8x4CV.js → odataAndTables-CyGjgcKX.js} +1 -1
- package/storybook-static/assets/{odataFetchFn-BrsJ-DlE.js → odataFetchFn-DQBb33CS.js} +1 -1
- package/storybook-static/assets/{odataStoryFixtures-CbO3dfw1.js → odataStoryFixtures-BYjSHUPv.js} +1 -1
- package/storybook-static/assets/{persisted-DXbdpvSU.js → persisted-BmsVMmao.js} +1 -1
- package/storybook-static/assets/{pureUtilities-BtrtdX0r.js → pureUtilities-BbRRZPJI.js} +1 -1
- package/storybook-static/assets/{react-DmKWdnt1.js → react-CPygFl97.js} +1 -1
- package/storybook-static/assets/{refresh-cw-C2Rk5OjE.js → refresh-cw-D9xWA1ag.js} +1 -1
- package/storybook-static/assets/{runtimeAndState-Be2a2JfZ.js → runtimeAndState-7kpVxxK8.js} +1 -1
- package/storybook-static/assets/{settings-2-CuAc9ekV.js → settings-2-D5vKtCuh.js} +1 -1
- package/storybook-static/assets/{sortable-DF8VgD8R.js → sortable-7ZhGDUUH.js} +1 -1
- package/storybook-static/assets/{syntaxhighlighter-T5IQBZDB-BnGJW0L9.js → syntaxhighlighter-T5IQBZDB-BgPG-zNQ.js} +1 -1
- package/storybook-static/assets/{trash-2-DRXwetzV.js → trash-2-COVTeKHf.js} +1 -1
- package/storybook-static/assets/{triangle-alert-D5785xcd.js → triangle-alert-Dc8CWEGx.js} +1 -1
- package/storybook-static/assets/{ui-vmPSPL8p.css → ui-BMhMvV6y.css} +1 -1
- package/storybook-static/assets/{uiClasses-CyX7wB6b.js → uiClasses-DiXn3Hc-.js} +1 -1
- package/storybook-static/assets/{useODataSelectBase-DfOi4e0X.js → useODataSelectBase-BllI2D0F.js} +1 -1
- package/storybook-static/assets/{useODataTreeData-BBSy4G6V.js → useODataTreeData-CNVWCnCt.js} +1 -1
- package/storybook-static/assets/{usePickerQuery-BYa25rmI.js → usePickerQuery-C0ti4hti.js} +1 -1
- package/storybook-static/assets/{usePickerTriggerController-CwgtrL5F.js → usePickerTriggerController-BSWvRSBy.js} +1 -1
- package/storybook-static/assets/{x-DvnP0o1b.js → x-BVvgKMRp.js} +1 -1
- package/storybook-static/iframe.html +3 -3
- package/storybook-static/project.json +1 -1
- package/storybook-static/assets/CheckBox-Dw4nDCv8.css +0 -1
- package/storybook-static/assets/iframe-B1M7f4Qn.js +0 -1
- package/storybook-static/assets/iframe-J8XUsZxh.css +0 -1
- /package/storybook-static/assets/{CheckBox.module-CM_GPl_E.js → CheckBox.module-BNQm6HXI.js} +0 -0
- /package/storybook-static/assets/{ui.module-Bh9yvZgk.js → ui.module-CiLQZm_L.js} +0 -0
package/storybook-static/assets/{Sortable.stories-BUUu5LQR.js → Sortable.stories-VjnupnmR.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{i as r,n as i,r as a,t as o}from"./sortable-
|
|
1
|
+
import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{i as r,n as i,r as a,t as o}from"./sortable-7ZhGDUUH.js";import{n as s}from"./iframe-BOYfiRbQ.js";var c=t({Basic:()=>x,DisabledItems:()=>w,GridCards:()=>C,HandleOnly:()=>T,HorizontalList:()=>S,NestedContainers:()=>E,SortablePreview:()=>d,__namedExportsOrder:()=>D,default:()=>b});function l(e,t,n){let r=[...e],[i]=r.splice(t,1);return r.splice(n,0,i),r}function u(e){switch(e){case`horizontal`:return{display:`flex`,gap:`var(--space-sm)`,overflowX:`auto`};case`grid`:return{display:`grid`,gap:`var(--space-sm)`,gridTemplateColumns:`repeat(auto-fill, minmax(12rem, 1fr))`};default:return{display:`grid`,gap:`var(--space-sm)`}}}function d(e){let[,t]=h(),n=e.initialItems,r=new Set(e.disabledIds??[]);return(0,m.jsxs)(`div`,{style:{display:`grid`,gap:12},children:[(0,m.jsx)(o.Root,{onDragEnd:r=>{let i=a({event:r,items:{[e.containerId]:n}});i&&t({initialItems:l(n,i.fromIndex,i.toIndex)})},children:(0,m.jsx)(o.Container,{containerId:e.containerId,items:n,layout:e.layout,children:(0,m.jsx)(`div`,{style:u(e.layout),children:n.map(t=>(0,m.jsxs)(o.Item,{id:t,disabled:r.has(t),style:{...g,minWidth:e.itemWidth},children:[(0,m.jsx)(o.DragHandle,{title:`Перетащить ${t}`}),(0,m.jsx)(`div`,{children:t})]},t))})})}),(0,m.jsx)(`div`,{style:{fontSize:14,opacity:.8},children:`Порядок элементов изменяется локально в рамках story.`})]})}function f({args:e,onTopItemsChange:t}){let n=e.initialItems,[r,i]=(0,p.useState)({"Группа A":[`A.1`,`A.2`,`A.3`],"Группа B":[`B.1`,`B.2`]});return(0,m.jsxs)(`div`,{style:{display:`grid`,gap:12},children:[(0,m.jsx)(o.Root,{onDragEnd:o=>{let s=a({event:o,items:{[e.containerId]:n,...Object.fromEntries(n.map(e=>[`parent:${e}`,r[e]??[]]))}});if(!s)return;if(s.containerId===e.containerId){t(l(n,s.fromIndex,s.toIndex));return}let c=String(s.containerId).slice(7);i(e=>({...e,[c]:l(e[c]??[],s.fromIndex,s.toIndex)}))},children:(0,m.jsx)(o.Container,{containerId:e.containerId,items:n,layout:e.layout,children:(0,m.jsx)(`div`,{style:{display:`grid`,gap:`var(--space-md)`},children:n.map(e=>(0,m.jsxs)(o.Item,{id:e,style:{...g,gridTemplateColumns:`var(--control-height) 1fr`,alignItems:`start`},children:[(0,m.jsx)(o.DragHandle,{title:`Перетащить ${e}`}),(0,m.jsxs)(`div`,{style:{display:`grid`,gap:`var(--space-sm)`},children:[(0,m.jsx)(`strong`,{children:e}),(0,m.jsx)(o.Container,{containerId:`parent:${e}`,items:r[e]??[],children:(0,m.jsx)(`div`,{style:{display:`grid`,gap:`var(--space-xs)`},children:(r[e]??[]).map(e=>(0,m.jsxs)(o.Item,{id:e,style:{...g,background:`var(--surface-1)`},children:[(0,m.jsx)(o.DragHandle,{title:`Перетащить ${e}`}),(0,m.jsx)(`div`,{children:e})]},e))})})]})]},e))})})}),(0,m.jsx)(`div`,{style:{fontSize:14,opacity:.8},children:"Вложенные контейнеры сортируются независимо и используют общий `Sortable.Root`."})]})}var p,m,h,g,_,v,y,b,x,S,C,w,T,E,D;function O(){return(O=e((()=>{p=n(),i(),r(),m=s(),{useArgs:h}=__STORYBOOK_MODULE_PREVIEW_API__,g={display:`grid`,gridTemplateColumns:`var(--control-height) 1fr`,alignItems:`center`,gap:`var(--space-sm)`,padding:`var(--space-sm)`,border:`var(--border)`,borderRadius:`var(--radius-sm)`,background:`var(--surface-0)`},_=[`Alpha`,`Bravo`,`Charlie`,`Delta`],v=[`Фильтры`,`Графики`,`Сводка`,`История`],y=[`Карточка 1`,`Карточка 2`,`Карточка 3`,`Карточка 4`,`Карточка 5`,`Карточка 6`],b={title:`Shared/UI/Sortable`,component:d,args:{containerId:`sortable-demo`,layout:`vertical`,initialItems:_,itemWidth:void 0,disabledIds:[]},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{containerId:{description:"Идентификатор `SortableContext`, который используется для вычисления reorder внутри контейнера.",control:`text`},layout:{description:`Режим раскладки и стратегия сортировки: вертикальный список, горизонтальный список или grid.`,control:`inline-radio`,options:[`vertical`,`horizontal`,`grid`]},initialItems:{description:`Текущий порядок элементов. После drag-and-drop обновляется в Storybook args.`,control:!1},itemWidth:{description:`Минимальная ширина карточки; полезна для горизонтального режима.`,control:`text`},disabledIds:{description:`Список id, для которых drag-handle отключен.`,control:!1}}},x={},S={args:{containerId:`sortable-horizontal`,layout:`horizontal`,initialItems:v,itemWidth:`12rem`}},C={args:{containerId:`sortable-grid`,layout:`grid`,initialItems:y}},w={args:{containerId:`sortable-disabled`,layout:`vertical`,initialItems:_,disabledIds:[`Bravo`,`Delta`]}},T={args:{containerId:`sortable-handle-only`,layout:`vertical`,initialItems:[`Пункт 1`,`Пункт 2`,`Пункт 3`,`Пункт 4`]}},E={args:{containerId:`top`,layout:`vertical`,initialItems:[`Группа A`,`Группа B`]},render:function(e){let[,t]=h();return(0,m.jsx)(f,{args:e,onTopItemsChange:e=>t({initialItems:e})})}},d.__docgenInfo={description:``,methods:[],displayName:`SortablePreview`,props:{containerId:{required:!0,tsType:{name:`string`},description:``},layout:{required:!0,tsType:{name:`union`,raw:`"vertical" | "horizontal" | "grid"`,elements:[{name:`literal`,value:`"vertical"`},{name:`literal`,value:`"horizontal"`},{name:`literal`,value:`"grid"`}]},description:``},initialItems:{required:!0,tsType:{name:`Array`,elements:[{name:`string`}],raw:`string[]`},description:``},itemWidth:{required:!1,tsType:{name:`string`},description:``},disabledIds:{required:!1,tsType:{name:`Array`,elements:[{name:`string`}],raw:`string[]`},description:``}}},d.parameters={...d.parameters,docs:{...d.parameters?.docs,source:{originalSource:`function SortablePreview(props: SortablePreviewProps) {
|
|
2
2
|
const [, updateArgs] = useArgs<SortablePreviewProps>();
|
|
3
3
|
const items = props.initialItems;
|
|
4
4
|
const disabledIdSet = new Set(props.disabledIds ?? []);
|
|
@@ -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-BOYfiRbQ.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-DFQ7gHL7.js";import{a as p,i as m,n as h,o as g,r as _,t as v}from"./Splitter.stories-BTJf67_i.js";function y(e){let t={code:`code`,h2:`h2`,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:`Splitter`}),`
|
|
3
3
|
`,(0,x.jsx)(o,{children:(0,x.jsx)(t.p,{children:`Компонент для интерактивного разделения рабочей области на две панели с поддержкой вложенности, клавиатуры и ограничений по размеру`})}),`
|
|
4
4
|
`,(0,x.jsxs)(t.p,{children:[(0,x.jsx)(t.code,{children:`Splitter`}),` подходит для интерфейсов, где пользователь должен самостоятельно перераспределять пространство между соседними областями: навигацией и контентом, таблицей и деталями, превью и журналом событий.`]}),`
|
package/storybook-static/assets/{Splitter.stories-z1_IuipN.js → Splitter.stories-BTJf67_i.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-BOYfiRbQ.js";import{a as i,i as a}from"./utils-DUM89eIj.js";var o,s,c,l,u,d,f;function p(){return(p=e((()=>{o=`wAovST`,s=`QVVMwe`,c=`H43AJ8`,l=`pgo8sW`,u=`_8fCvqA`,d=`t6RFcI`,f={splitter:o,vertical:s,separator:c,horizontal:l,topLeft:u,bottomRight:d}})))()}function m(e,t,n){return Math.min(n,Math.max(t,e))}function h(e,t){return Number.isFinite(e)?m(e,0,1):t}function g(e,t){let n=h(e,E),r=h(t,D);return n<=r?[n,r]:[r,n]}function _(e,t){return e===`vertical`?t.clientX:t.clientY}function v(e,t){return e===`vertical`?t.width:t.height}function y(e,t){if(e===`vertical`){if(t===`ArrowLeft`)return-.02;if(t===`ArrowRight`)return k}if(e===`horizontal`){if(t===`ArrowUp`)return-.02;if(t===`ArrowDown`)return k}return null}function b(e,t){return t===`start`?0:t===`end`?1:e}function x({direction:e,initial:t,min:n,max:r,collapsedPane:i}){let[a,o]=g(n,r),s=(0,w.useRef)(null),c=(0,w.useRef)(null),l=(0,w.useRef)(null),u=(0,w.useRef)(null),d=(0,w.useRef)(null),f=(0,w.useRef)(null),p=(0,w.useRef)(0),x=(0,w.useRef)(m(h(t,O),a,o)),S=(0,w.useRef)(t),[C,T]=(0,w.useState)(()=>m(h(t,O),a,o)),E=(0,w.useRef)(C),D=(0,w.useCallback)(e=>{E.current=e,c.current?.style.setProperty(`flex-basis`,`${b(e,i)*100}%`),l.current?.setAttribute(`aria-valuenow`,`${Math.round(e*100)}`)},[i]),k=()=>{if(f.current!==null&&(cancelAnimationFrame(f.current),f.current=null),d.current===null)return E.current;let e=d.current;return d.current=null,D(e),e},A=e=>{d.current=e,f.current===null&&(f.current=requestAnimationFrame(()=>{f.current=null,d.current!==null&&D(d.current)}))},j=()=>{u.current?.(),u.current=null},M=e=>{k(),T(m(e,a,o))};return(0,w.useLayoutEffect)(()=>{D(C)},[D,C]),(0,w.useEffect)(()=>{T(e=>{let n=S.current!==t;return S.current=t,m(n?h(t,O):e,a,o)})},[t,a,o]),(0,w.useEffect)(()=>()=>{j(),f.current!==null&&cancelAnimationFrame(f.current)},[]),{containerRef:s,topLeftRef:c,separatorRef:l,ratio:C,minRatio:a,maxRatio:o,handleSeparatorPointerDown:t=>{if(t.button!==0)return;t.preventDefault();let n=s.current;if(!n)return;j();try{t.currentTarget.setPointerCapture?.(t.pointerId)}catch{}p.current=_(e,t),x.current=E.current;let r=t=>{let r=v(e,n.getBoundingClientRect());if(r<=0)return;let i=_(e,t)-p.current,s=m(x.current+i/r,a,o);A(s)},i=()=>{j(),T(k())};u.current=()=>{document.removeEventListener(`pointermove`,r),document.removeEventListener(`pointerup`,i),document.removeEventListener(`pointercancel`,i)},document.addEventListener(`pointermove`,r),document.addEventListener(`pointerup`,i),document.addEventListener(`pointercancel`,i)},handleSeparatorKeyDown:t=>{let n=y(e,t.key);if(n!==null){t.preventDefault(),M(E.current+n);return}if(t.key===`Home`){t.preventDefault(),M(a);return}t.key===`End`&&(t.preventDefault(),M(o))}}}function S({className:e,direction:t,left:n,right:r,collapsedPane:a,logic:o}){let{containerRef:s,topLeftRef:c,separatorRef:l,ratio:u,minRatio:d,maxRatio:p,handleSeparatorPointerDown:m,handleSeparatorKeyDown:h}=o,g=b(u,a),_=a===`start`,v=a===`end`,y=a===null;return(0,T.jsxs)(`div`,{ref:s,className:i(f.splitter,f[t],e),children:[(0,T.jsx)(`div`,{ref:c,className:f.topLeft,style:{flexBasis:`${g*100}%`},hidden:_,children:n}),(0,T.jsx)(`div`,{ref:l,hidden:!y,role:`separator`,"aria-orientation":t===`vertical`?`vertical`:`horizontal`,"aria-valuemin":Math.round(d*100),"aria-valuemax":Math.round(p*100),"aria-valuenow":Math.round(u*100),tabIndex:y?0:-1,onPointerDown:m,onKeyDown:h,className:f.separator}),(0,T.jsx)(`div`,{className:f.bottomRight,hidden:v,children:r})]})}function C({direction:e=`vertical`,initial:t=O,min:n=E,max:r=D,className:i,collapsedPane:a=null,children:o}){let[s,c]=w.Children.toArray(o),l=x({direction:e,initial:t,min:n,max:r,collapsedPane:a});return c?(0,T.jsx)(S,{className:i,direction:e,left:s,right:c,collapsedPane:a,logic:l}):s}var w,T,E,D,O,k;function A(){return(A=e((()=>{w=n(),a(),p(),T=r(),E=.1,D=.9,O=.7,k=.02,C.__docgenInfo={description:``,methods:[],displayName:`Splitter`,props:{direction:{defaultValue:{value:`"vertical"`,computed:!1},required:!1},initial:{defaultValue:{value:`0.7`,computed:!1},required:!1},min:{defaultValue:{value:`0.1`,computed:!1},required:!1},max:{defaultValue:{value:`0.9`,computed:!1},required:!1},collapsedPane:{defaultValue:{value:`null`,computed:!1},required:!1}}}})))()}var j=t({Basic:()=>B,Constrained:()=>U,Horizontal:()=>V,NestedFourPanels:()=>H,__namedExportsOrder:()=>W,default:()=>z});function M({children:e}){return(0,L.jsx)(`div`,{style:{height:490},children:e})}function N({title:e,description:t,items:n=[]}){return(0,L.jsxs)(`div`,{style:{height:`100%`,padding:`var(--space-md)`,borderRadius:`var(--radius-md)`,border:`var(--border)`,display:`grid`,alignContent:`start`,gap:`var(--space-md)`},className:`scrollable`,children:[(0,L.jsxs)(`div`,{children:[(0,L.jsx)(`h2`,{children:e}),(0,L.jsx)(`p`,{children:t})]}),n.length>0&&(0,L.jsx)(`div`,{style:{display:`grid`,gap:`var(--space-sm)`},children:n.map(e=>(0,L.jsx)(`div`,{style:{padding:`var(--space-sm) var(--space-md)`,borderRadius:`var(--radius-sm)`,background:`var(--surface-1)`},children:e},e))})]})}function P(e){return(0,L.jsx)(M,{children:(0,L.jsxs)(C,{...e,children:[(0,L.jsx)(N,{title:`Навигация`,description:`Левая панель подходит для фильтров, дерева разделов, списка сущностей или структуры документа.`,items:[`Раздел 1`,`Раздел 2`,`Раздел 3`,`Раздел 4`]}),(0,L.jsx)(N,{title:`Рабочая область`,description:`Правая панель обычно содержит детальный контент: таблицу, карточку объекта, форму или вкладки.`,items:[`Текущий документ`,`История изменений`,`Комментарии`,`Связанные объекты`,`Параметры отображения`]})]})})}function F(e){return(0,L.jsx)(M,{children:(0,L.jsxs)(C,{...e,children:[(0,L.jsxs)(C,{direction:`horizontal`,initial:.58,min:.25,max:.75,children:[(0,L.jsx)(N,{title:`Список`,description:`Верхняя левая панель может держать навигацию или результат поиска.`,items:[`Поиск`,`Фильтр по статусу`,`Группы`,`Быстрые действия`]}),(0,L.jsx)(N,{title:`Подробности`,description:`Нижняя левая панель подходит для связанного контента по выбранному элементу.`,items:[`Свойства`,`Ответственный`,`Теги`,`Контекст`]})]}),(0,L.jsxs)(C,{direction:`horizontal`,initial:.36,min:.2,max:.8,children:[(0,L.jsx)(N,{title:`Превью`,description:`Верхняя правая панель может содержать документ, схему, карту или live-просмотр.`,items:[`Предпросмотр файла`,`Масштаб 100%`,`Слой подсветки`]}),(0,L.jsx)(N,{title:`Журнал`,description:`Нижняя правая панель часто используется для событий, логов или вспомогательных данных.`,items:[`10:31 Импорт завершён`,`10:34 Индексация`,`10:36 Синхронизация`,`10:38 Проверка целостности`]})]})]})})}function I(e){return(0,L.jsx)(M,{children:(0,L.jsxs)(C,{...e,children:[(0,L.jsx)(N,{title:`Фиксированные ограничения`,description:"У этой панели ужаты границы `min` и `max`, поэтому splitter нельзя увести слишком далеко.",items:[`Нажмите на разделитель`,`Используйте стрелки`,`Home = минимум`,`End = максимум`]}),(0,L.jsx)(N,{title:`Проверка доступности`,description:`Сценарий помогает проверить клавиатурное управление, устойчивость границ и отсутствие рывков при drag.`,items:[`ArrowLeft / ArrowRight`,`ArrowUp / ArrowDown`,`Перетаскивание мышью`,`Перетаскивание на тач-устройстве`]})]})})}var L,R,z,B,V,H,U,W;function G(){return(G=e((()=>{A(),L=r(),{useArgs:R}=__STORYBOOK_MODULE_PREVIEW_API__,z={title:`Shared/UI/Splitter`,component:C,parameters:{atomicCanvas:!0,layout:`padded`},args:{direction:`vertical`,initial:.45,min:.15,max:.85},argTypes:{direction:{description:`Направление разделения: вертикальное по ширине или горизонтальное по высоте.`,control:`inline-radio`,options:[`vertical`,`horizontal`]},initial:{description:`Начальная доля первой панели в диапазоне от 0 до 1.`,control:{type:`range`,min:0,max:1,step:.01}},min:{description:`Минимальная доля первой панели. Значение автоматически нормализуется в диапазон 0..1.`,control:{type:`range`,min:0,max:1,step:.01}},max:{description:"Максимальная доля первой панели. Если `min` и `max` перепутаны местами, компонент сам исправит диапазон.",control:{type:`range`,min:0,max:1,step:.01}},collapsedPane:{description:`Сворачивает начальную или конечную панель.`,control:`inline-radio`,options:[null,`start`,`end`]},children:{description:`Splitter ожидает ровно два прямых дочерних элемента. Для большего количества областей используйте вложенные Splitter.`,control:!1}}},B={name:`Две панели`,render:function(){let[e]=R();return(0,L.jsx)(P,{...e})}},V={name:`Горизонтальное разделение`,render:function(){let[e]=R();return(0,L.jsx)(P,{...e})},args:{direction:`horizontal`,initial:.55}},H={name:`Четыре панели через вложенность`,render:function(){let[e]=R();return(0,L.jsx)(F,{...e})},args:{initial:.48,min:.25,max:.75}},U={name:`Ограничения и клавиатура`,render:function(){let[e]=R();return(0,L.jsx)(I,{...e})},args:{initial:.35,min:.25,max:.55}},B.parameters={...B.parameters,docs:{...B.parameters?.docs,source:{originalSource:`{
|
|
2
2
|
name: "Две панели",
|
|
3
3
|
render: function Render() {
|
|
4
4
|
const [args] = useArgs<ComponentProps<typeof Splitter>>();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{t}from"./react-C21x__mS.js";import{n}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{t}from"./react-C21x__mS.js";import{n}from"./iframe-BOYfiRbQ.js";import{a as r,i}from"./utils-DUM89eIj.js";import{d as a,l as o,y as s}from"./formatters-CVj-3Vn0-BFaHJqZL.js";import{n as c,t as l}from"./Select-C8NwIhWM.js";var u,d,f,p,m,h,g,_,v,y,b,x;function S(){return(S=e((()=>{u=`p4nQdZ`,d=`_94tg5v`,f=`HyK7Zs`,p=`Mm4hrB`,m=`clxxBQ`,h=`_5pJ7o-`,g=`VV6hKN`,_=`cuQNP0`,v=`w7nIOT`,y=`ed-Afj`,b=`Lbxloe`,x={button:u,valueContainer:d,swatch:f,optionsPalette:p,optionsDetailed:m,option:h,optionPalette:g,optionDetailed:_,optionMeta:v,optionMetaIcon:y,optionMetaLabel:b}})))()}function C({state:e,className:t}){return(0,A.jsx)(`span`,{className:r(x.swatch,t),"data-empty":e===`none`?``:void 0,style:{"--state-color":a[e]}})}function w(e){return!!(e?.icon||e?.label)}function T(e,t){return typeof t?.label==`string`&&t.label.trim()?t.label:e||`empty`}function E(e){return w(e)?(0,A.jsxs)(`span`,{className:x.optionMeta,children:[e?.icon?(0,A.jsx)(`span`,{className:x.optionMetaIcon,children:e.icon}):null,e?.label?(0,A.jsx)(`span`,{className:x.optionMetaLabel,children:e.label}):null]}):null}function D(e,t){return(0,A.jsxs)(`div`,{className:x.valueContainer,children:[(0,A.jsx)(C,{state:e}),E(t)]})}function O({label:e,description:t,disabled:n,placeholder:i,size:a,value:s,onChange:c,options:u=o,stateMeta:d,className:f,clearable:p}){let m=(0,k.useMemo)(()=>Array.from(new Set(u)),[u]),h=m.some(e=>w(d?.[e])),g={getOptionKey:e=>e||`__empty_state__`,getOptionLabel:e=>d?.[e]?.label??e,getOptionAriaLabel:e=>T(e,d?.[e]),renderValue:e=>D(e,d?.[e]),renderOption:e=>(0,A.jsxs)(A.Fragment,{children:[(0,A.jsx)(C,{state:e}),h?E(d?.[e]):null]}),buttonClassName:x.button,optionsContentClassName:r(h?x.optionsDetailed:x.optionsPalette),getOptionClassName:()=>r(x.option,h?x.optionDetailed:x.optionPalette)};return(0,A.jsx)(l,{label:e,description:t,disabled:n,placeholder:i,size:a,value:s,onChange:c,options:m,className:f,clearable:p,...g})}var k,A;function j(){return(j=e((()=>{k=t(),s(),i(),c(),S(),A=n(),O.__docgenInfo={description:`Специализированный селект для выбора цветового или статусного состояния. Используется там, где значению соответствует визуальный swatch.`,methods:[],displayName:`StateSelect`,props:{placeholder:{required:!1,tsType:{name:`string`},description:``},options:{required:!1,tsType:{name:`unknown`},description:``,defaultValue:{value:`DEFAULT_VALUE_STATES`,computed:!0}},stateMeta:{required:!1,tsType:{name:`Partial`,elements:[{name:`Record`,elements:[{name:`State`},{name:`signature`,type:`object`,raw:`{
|
|
2
2
|
label?: ReactNode;
|
|
3
3
|
icon?: ReactNode;
|
|
4
4
|
}`,signature:{properties:[{key:`label`,value:{name:`ReactNode`,required:!1}},{key:`icon`,value:{name:`ReactNode`,required:!1}}]}}],raw:`Record<State, StateMeta>`}],raw:`Partial<Record<State, StateMeta>>`},description:``},className:{required:!1,tsType:{name:`string`},description:``},clearable:{required:!1,tsType:{name:`boolean`},description:``}},composes:[`Omit`]}})))()}export{j as n,O 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-BOYfiRbQ.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-DFQ7gHL7.js";import{a as p,i as m,n as h,r as g,t as _}from"./StateSelect.stories-B0nR14db.js";function v(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(s,{of:g,parameters:{docs:{toc:!0}}}),`
|
|
2
2
|
`,(0,b.jsx)(u,{children:`StateSelect`}),`
|
|
3
3
|
`,(0,b.jsx)(o,{children:`Специализированный select для выбора визуального статуса или семантического состояния`}),`
|
|
4
4
|
`,(0,b.jsx)(t.p,{children:`StateSelect уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
|
package/storybook-static/assets/{StateSelect.stories-yKKasuZq.js → StateSelect.stories-B0nR14db.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{n,t as r}from"./circle-check-
|
|
1
|
+
import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{n,t as r}from"./circle-check-DKgLpHr-.js";import{i,n as a,r as o,t as s}from"./info-BuKiC7d0.js";import{n as c,t as l}from"./triangle-alert-Dc8CWEGx.js";import{i as u,n as d,r as f}from"./iframe-BOYfiRbQ.js";import{n as p,t as m}from"./StateSelect-BNXXcX4c.js";var h,g;function _(){return(_=e((()=>{u(),h=[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M8 12h8`,key:`1wcyev`}]],g=f(`circle-minus`,h)})))()}var v=t({Controlled:()=>C,PaletteOnly:()=>T,WithMeta:()=>w,__namedExportsOrder:()=>E,default:()=>S}),y,b,x,S,C,w,T,E;function D(){return(D=e((()=>{c(),n(),a(),_(),i(),p(),y=d(),{useArgs:b}=__STORYBOOK_MODULE_PREVIEW_API__,{fn:x}=__STORYBOOK_MODULE_TEST__,S={title:`Shared/UI/StateSelect`,component:m,args:{label:`Состояние`,description:`Выберите визуальный статус.`,placeholder:`Выберите значение`,value:`information`,onChange:x(),disabled:!1,size:`md`},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Заголовок поля выбора состояния.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},placeholder:{description:`Текст, когда значение не выбрано.`,control:`text`},value:{description:`Текущее состояние.`,control:`select`,options:[``,`none`,`information`,`success`,`warning`,`error`]},onChange:{description:`Вызывается при выборе состояния.`,control:!1},options:{description:`Кастомный набор доступных состояний.`,control:!1},stateMeta:{description:`Кастомные иконки и подписи для значений.`,control:!1},disabled:{description:`Блокирует взаимодействие с полем.`,control:`boolean`},clearable:{description:`Показывает действие очистки выбранного состояния.`,control:`boolean`},size:{description:`Размер поля и подписей.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]}}},C={render:function(e){let[,t]=b();return(0,y.jsx)(m,{...e,value:e.value??`information`,onChange:n=>{e.onChange(n),t({value:n})}})}},w={render:function(e){let[,t]=b();return(0,y.jsx)(m,{...e,value:e.value??`warning`,onChange:n=>{e.onChange(n),t({value:n})},stateMeta:{none:{label:`Без статуса`,icon:(0,y.jsx)(g,{})},information:{label:`Инфо`,icon:(0,y.jsx)(s,{})},success:{label:`Успех`,icon:(0,y.jsx)(r,{})},warning:{label:`Предупреждение`,icon:(0,y.jsx)(l,{})},error:{label:`Ошибка`,icon:(0,y.jsx)(o,{})}}})},args:{value:`warning`}},T={render:function(e){let[,t]=b();return(0,y.jsx)(m,{...e,value:e.value??`none`,onChange:n=>{e.onChange(n),t({value:n})},options:[`none`,`success`,`error`]})},args:{options:[`none`,`success`,`error`],value:`none`}},C.parameters={...C.parameters,docs:{...C.parameters?.docs,source:{originalSource:`{
|
|
2
2
|
render: function Render(args) {
|
|
3
3
|
const [, updateArgs] = useArgs<StateSelectProps>();
|
|
4
4
|
return <StateSelect {...args} value={args.value ?? "information"} onChange={value => {
|
|
@@ -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-BOYfiRbQ.js";import{n,t as r}from"./Toggle-YLom0uCh.js";function i(e,t){return typeof e==`string`?e:t}var a,o;function s(){return(s=e((()=>{a=`true`,o=`false`})))()}function c({value:e,onChange:t,checkedValue:n,uncheckedValue:s,defaultChecked:c,...u}){let d=i(n,a),f=i(s,o),p=e===d;return(0,l.jsx)(r,{...u,value:p,onChange:e=>t(e?d:f)})}var l;function u(){return(u=e((()=>{s(),n(),l=t(),c.__docgenInfo={description:`Адаптирует boolean-состояние Toggle к паре настраиваемых строковых значений.`,methods:[],displayName:`StringToggle`,props:{checkedValue:{required:!1,tsType:{name:`string`},description:``},uncheckedValue:{required:!1,tsType:{name:`string`},description:``},value:{required:!0,tsType:{name:`string`},description:``},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: string) => void`,signature:{arguments:[{type:{name:`string`},name:`value`}],return:{name:`void`}}},description:``}}}})))()}function d({args:e}){let[,t]=p();return(0,f.jsx)(c,{...e,onChange:n=>{e.onChange(n),t({value:n})}})}var f,p,m,h,g;function _(){return(_=e((()=>{u(),f=t(),{useArgs:p}=__STORYBOOK_MODULE_PREVIEW_API__,m={title:`Shared/UI/Toggle/StringToggle`,component:c,args:{value:`ZBP_MANAGER`,onChange:()=>void 0,checkedText:`за клиента`,uncheckedText:`за сделку`,checkedValue:`ZM_MANAGER`,uncheckedValue:`ZBP_MANAGER`},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Текст подписи переключателя.`,control:`text`},description:{description:`Описание под переключателем.`,control:`text`},placeholder:{description:"Резервная подпись, если `label` не задан.",control:`text`},value:{description:`Текущее строковое значение.`,control:`text`},onChange:{description:`Возвращает строку выбранного состояния.`,control:!1},checkedValue:{description:`Значение включённого состояния.`,control:`text`},uncheckedValue:{description:`Значение выключенного состояния.`,control:`text`},checkedText:{description:`Текст включённого состояния.`,control:`text`},uncheckedText:{description:`Текст выключенного состояния.`,control:`text`},labelPosition:{description:`Положение подписи относительно переключателя.`,control:`inline-radio`,options:[`before`,`after`]},disabled:{description:`Блокирует взаимодействие.`,control:`boolean`},size:{description:`Размер контрола и подписи.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]}}},h={render:function(e){return(0,f.jsx)(d,{args:e})}},h.parameters={...h.parameters,docs:{...h.parameters?.docs,source:{originalSource:`{
|
|
2
2
|
render: function Render(args) {
|
|
3
3
|
return <StringToggleStoryCanvas args={args} />;
|
|
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-BOYfiRbQ.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-DFQ7gHL7.js";import{a as p,i as m,n as h,r as g,t as _}from"./Switch.stories-T7MZJAke.js";function v(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(s,{of:g,parameters:{docs:{toc:!0}}}),`
|
|
2
2
|
`,(0,b.jsx)(u,{children:`Switch`}),`
|
|
3
3
|
`,(0,b.jsx)(o,{children:`Переключатель в виде слайдера для быстрых включений, отключений и tri-state сценариев`}),`
|
|
4
4
|
`,(0,b.jsx)(t.p,{children:`Switch уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,o as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{n as r,t as i}from"./circle-check-
|
|
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"./circle-check-DKgLpHr-.js";import{i as a,n as o,r as s}from"./iframe-BOYfiRbQ.js";import{a as c,i as l}from"./utils-DUM89eIj.js";import{n as u,t as d}from"./ui.module-CiLQZm_L.js";var f,p;function m(){return(m=e((()=>{a(),f=[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M4.929 4.929 19.07 19.071`,key:`196cmz`}]],p=s(`ban`,f)})))()}var h,g,_,v,y;function b(){return(b=e((()=>{h=`Or5LYA`,g=`w0AMfA`,_=`P1x4lq`,v=`-ZVOZo`,y={switchWrapper:h,switch:`qge3io`,iconWrapper:g,auto:_,checked:v}})))()}function x(e){let{label:t,description:n,disabled:r,checkedIcon:a=(0,C.jsx)(i,{}),uncheckedIcon:o=(0,C.jsx)(p,{}),className:s,type:l,id:d,size:f,placeholder:m,onChange:h,value:g,triState:_,...v}=e,b=(0,S.useId)(),x=d??b,w=n?`${x}-description`:void 0,T=t?`${x}-label`:void 0,E=()=>{if(!e.triState){e.onChange(!e.value);return}if(e.value===void 0){e.onChange(!0);return}if(e.value===!0){e.onChange(!1);return}e.value===!1&&e.onChange(void 0)},D=typeof e.value==`boolean`&&e.value,O=e.triState&&typeof e.value!=`boolean`,k=v[`aria-label`]??(t?void 0:`Переключатель`);return(0,C.jsxs)(`div`,{className:c(u.uiElement,r&&u.disabled),"aria-disabled":r||void 0,children:[t&&(0,C.jsxs)(`div`,{id:T,className:u.uiLabel,children:[t,`:`]}),n&&(0,C.jsx)(`p`,{id:w,className:u.uiDescription,children:n}),(0,C.jsx)(`button`,{...v,id:x,type:l??`button`,role:`switch`,disabled:r,"aria-checked":D,"aria-describedby":w,"aria-labelledby":T,"aria-label":k,"aria-disabled":r,"data-ui":`switch`,"data-action":`toggle-switch`,onClick:E,className:c(u.uiInputControl,y.switchWrapper,s),children:(0,C.jsx)(`div`,{className:y.switch,"data-disabled":r||void 0,children:O?(0,C.jsx)(`div`,{className:c(y.iconWrapper,y.auto,y.checked),children:`Auto`}):(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(`div`,{className:c(y.iconWrapper,!e.value&&y.checked),children:o}),(0,C.jsx)(`div`,{className:c(y.iconWrapper,e.value&&y.checked),children:a})]})})})]})}var S,C;function w(){return(w=e((()=>{S=t(n(),1),l(),m(),r(),d(),b(),C=o(),x.__docgenInfo={description:`Переключатель boolean-состояния в виде слайдера. Подходит для быстрых настроек и включения/отключения опций.`,methods:[],displayName:`Switch`}})))()}export{w as n,x as t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{n,t as r}from"./Switch
|
|
1
|
+
import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{n,t as r}from"./Switch-CmxJq-nM.js";import{n as i}from"./iframe-BOYfiRbQ.js";import{n as a,t as o}from"./createControlledStoryRender-DHsyXc1B.js";var s=t({BiState:()=>f,Disabled:()=>m,TriState:()=>p,__namedExportsOrder:()=>h,default:()=>d}),c,l,u,d,f,p,m,h;function g(){return(g=e((()=>{a(),n(),c=i(),l=o((e,t)=>(0,c.jsx)(r,{...e,triState:!1,value:e.value??!1,onChange:n=>{e.onChange(n),t({value:n})}})),u=o((e,t)=>(0,c.jsxs)(`div`,{style:{display:`grid`,gap:8},children:[(0,c.jsx)(r,{...e,triState:!0,value:e.value,onChange:n=>{e.onChange(n),t({value:n})}}),(0,c.jsxs)(`div`,{children:[`Текущее значение: `,String(e.value)]})]})),d={title:`Shared/UI/Switch`,component:r,args:{label:`Режим обработки`,description:`Переключение состояния`,value:!1,onChange:()=>{},triState:!1,disabled:!1},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Заголовок переключателя.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},value:{description:"Текущее значение (`boolean` или `undefined` в tri-state).",control:`boolean`},onChange:{description:`Вызывается при изменении состояния.`,control:!1},triState:{description:"Включает трехсостоянный режим (`undefined → true → false`).",control:`boolean`},checkedIcon:{description:"Кастомная иконка для состояния `true`.",control:!1},uncheckedIcon:{description:"Кастомная иконка для состояния `false`.",control:!1},disabled:{description:`Блокирует переключение.`,control:`boolean`}}},f={render:l},p={render:u,args:{triState:!0,value:void 0}},m={render:l,args:{disabled:!0,value:!0}},f.parameters={...f.parameters,docs:{...f.parameters?.docs,source:{originalSource:`{
|
|
2
2
|
render: renderBiStateSwitchStory
|
|
3
3
|
}`,...f.parameters?.docs?.source}}},p.parameters={...p.parameters,docs:{...p.parameters?.docs,source:{originalSource:`{
|
|
4
4
|
render: renderTriStateSwitchStory,
|
|
@@ -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-BOYfiRbQ.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-DFQ7gHL7.js";import{_ as p,a as m,c as h,d as g,f as _,g as v,h as y,i as b,l as x,m as S,n as C,o as w,p as T,r as E,s as D,t as O,u as k}from"./Table.stories-C0jQhruO.js";function A(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(s,{of:D,parameters:{docs:{toc:!0}}}),`
|
|
2
2
|
`,(0,M.jsx)(u,{children:`Table`}),`
|
|
3
3
|
`,(0,M.jsxs)(o,{children:[`Плоская таблица как React-альтернатива `,(0,M.jsx)(t.code,{children:`sap.m.Table`})]}),`
|
|
4
4
|
`,(0,M.jsxs)(t.p,{children:[(0,M.jsx)(t.code,{children:`Table`}),` предназначен для плоских данных и по поведению осознанно сближен с `,(0,M.jsx)(t.code,{children:`TreeTable`}),`.
|
|
@@ -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-BOYfiRbQ.js";import{D as i,E as a,T as ee,c as te,l as ne,n as re,s as ie,v as ae,w as oe}from"./odata-CGjX6csD.js";import{i as se,y as ce}from"./formatters-CVj-3Vn0-BFaHJqZL.js";import{S as le,_ as ue,a as de,b as fe,c as pe,d as me,f as he,g as ge,h as _e,i as ve,l as ye,m as be,n as xe,o as Se,p as Ce,r as we,s as o,t as Te,u as Ee,v as De,x as Oe,y as ke}from"./FormattedTableCell-BkTdSSLq.js";var s,c,l;function u(){return(u=e((()=>{s=`hKghZt`,c=`QsLRvS`,l={selectedIndicatorCell:s,sentinel:c}})))()}function Ae(e,t){return String(t)}function d({title:e,isLoading:t,isFetching:n,data:r,columns:i,selectionMode:a=`none`,selectedRowIds:ee,getRowId:ne,className:re,minHeight:ie,tableClassName:ae,columnVisibility:oe,defaultColumnVisibility:ce,columnOrder:de,defaultColumnOrder:fe,columnSizing:me,defaultColumnSizing:ge,columnPinning:ve,defaultColumnPinning:ye,enableColumnResizing:be=!1,enableColumnReordering:xe=!1,columnResizeMinWidth:o,onColumnVisibilityChange:ke,onColumnOrderChange:s,onColumnSizingChange:c,onColumnPinningChange:u,onRowClick:d,onRowSelectionChange:m,onReachEnd:h,getRowCanSelect:g,getRowClassName:je,renderHeaderContextMenu:Me,renderCellContent:_}){let v=(0,f.useMemo)(()=>r??[],[r]),y=(0,f.useMemo)(()=>_e(i),[i]),b=ne??Ae,x=(0,f.useMemo)(()=>new Map(v.map((e,t)=>[b(e,t),e])),[b,v]),S=(0,f.useMemo)(()=>Array.from(x.keys()),[x]),C=(0,f.useRef)(null),w=(0,f.useRef)(null),{rowSelection:T,activateRowSelection:E}=te({availableRowIds:S,rowById:x,selectionMode:a,selectedRowIds:ee,onRowSelectionChange:m}),{columnVisibility:D,onColumnVisibilityChange:O}=Se({columnVisibility:oe,defaultColumnVisibility:ce,onColumnVisibilityChange:ke}),{columnOrder:k,onColumnOrderChange:Ne}=he({columnOrder:de,defaultColumnOrder:fe,onColumnOrderChange:s}),{columnSizing:A,onColumnSizingChange:Pe}=pe({columnSizing:me,defaultColumnSizing:ge,columnResizeMinWidth:o,onColumnSizingChange:c}),{columnPinning:j,onColumnPinningChange:M}=Ee({columnPinning:ve,defaultColumnPinning:ye,onColumnPinningChange:u}),N=(0,f.useMemo)(()=>({columnOrder:k,columnPinning:j,columnSizing:A,columnVisibility:D}),[k,j,A,D]),Fe=(0,f.useEffectEvent)(()=>{h?.()});(0,f.useEffect)(()=>{if(!h||!C.current||!w.current||t)return;let e=new IntersectionObserver(e=>{e[0]?.isIntersecting&&Fe()},{root:C.current,threshold:.1});return e.observe(w.current),()=>e.disconnect()},[t,h,v.length]);let P=Oe({data:v,columns:i,state:{columnOrder:k,columnPinning:j,columnSizing:A,columnVisibility:D,rowSelection:T},onColumnOrderChange:Ne,onColumnPinningChange:M,onColumnSizingChange:Pe,onColumnVisibilityChange:O,getRowId:(e,t)=>b(e,t),getCoreRowModel:le(),enableMultiRowSelection:a===`multi`,enableRowSelection:e=>a===`none`?!1:!g||g(e.original)}),F=De(P,N),I=P.getRowModel().rows,L=(0,f.useMemo)(()=>Ce({rows:I,columns:F}),[I,F]),R=F[0]?.id;return(0,p.jsx)(we,{table:P,columnState:N,title:e,isLoading:t,isFetching:n,className:re,minHeight:ie,tableClassName:ae,selectionMode:a,scrollableRef:C,onActivateRow:a!==`none`||d?e=>{E(e.id,e.getCanSelect()),d?.(e.original)}:void 0,isRowInteractive:e=>!!(d||a!==`none`&&e.getCanSelect()),getRowClassName:e=>je?.(e.original),getCellClassName:({row:e,cell:t})=>t.column.id===R&&e.getIsSelected()?l.selectedIndicatorCell:void 0,getCellLayout:({cell:e})=>L.get(e.id),renderHeaderContextMenu:Me,enableColumnResizing:be,enableColumnReordering:xe,columnResizeMinWidth:o,renderCellContent:e=>{let t=se({field:y.runtimeByColumnId[e.cell.column.id],rawValue:e.cell.getValue(),rowData:e.row.original,rowKind:`plain`}),n=ue({columnId:e.cell.column.id,runtimeByColumnId:y.runtimeByColumnId,customCellColumnIds:y.customCellColumnIds})?(0,p.jsx)(Te,{displayValue:t,align:e.columnMeta?.align}):e.defaultContent;return _?_({...e,defaultContent:n,displayValue:t}):n},afterTableContent:h?(0,p.jsx)(`div`,{ref:w,className:l.sentinel,"aria-hidden":`true`}):null})}var f,p;function m(){return(m=e((()=>{f=n(),ce(),ae(),fe(),ve(),be(),ge(),xe(),ke(),me(),ye(),o(),de(),u(),p=r(),d.__docgenInfo={description:"Плоская таблица на базе TanStack Table как React-альтернатива `sap.m.Table`.",methods:[],displayName:`Table`,props:{title:{required:!1,tsType:{name:`string`},description:`Необязательный заголовок над таблицей.`},isLoading:{required:!1,tsType:{name:`boolean`},description:`Признак первичной загрузки.`},isFetching:{required:!1,tsType:{name:`boolean`},description:`Признак фоновой догрузки или обновления данных.`},data:{required:!0,tsType:{name:`union`,raw:`readonly TData[] | undefined | null`,elements:[{name:`unknown`},{name:`undefined`},{name:`null`}]},description:`Плоский источник строк.`},columns:{required:!0,tsType:{name:`unknown`},description:`Описание колонок таблицы.`},selectionMode:{required:!1,tsType:{name:`TableSelectionMode`},description:`Режим выбора строк.`,defaultValue:{value:`"none"`,computed:!1}},selectedRowIds:{required:!1,tsType:{name:`unknown`},description:`Внешний список выбранных строк.
|
|
2
2
|
|
|
3
3
|
Если передан, таблица синхронизирует визуальное выделение с этим набором id.`},getRowId:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(row: TData, index: number) => string`,signature:{arguments:[{type:{name:`TData`},name:`row`},{type:{name:`number`},name:`index`}],return:{name:`string`}}},description:`Стабильный идентификатор строки.
|
|
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-BOYfiRbQ.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}from"./blocks-DFQ7gHL7.js";import{a as f,c as p,i as m,l as h,n as g,o as _,r as v,s as y,t as b,u as x}from"./Tabs.stories-CgVofLQc.js";function S(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,w.jsxs)(w.Fragment,{children:[(0,w.jsx)(s,{of:h,parameters:{docs:{toc:!0}}}),`
|
|
2
2
|
`,(0,w.jsx)(u,{children:`Tabs`}),`
|
|
3
3
|
`,(0,w.jsx)(o,{children:`Набор tabs-компонентов с разделением простого scroll-сценария и составного panel-layout сценария`}),`
|
|
4
4
|
`,(0,w.jsxs)(t.p,{children:[`После рефакторинга `,(0,w.jsx)(t.code,{children:`tabs`}),` разделены на два независимых сценария:`]}),`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e,o as t,r as n}from"./rolldown-runtime-C0FnF6B9.js";import{t as r}from"./react-C21x__mS.js";import{n as i}from"./iframe-
|
|
1
|
+
import{n as e,o as t,r as n}from"./rolldown-runtime-C0FnF6B9.js";import{t as r}from"./react-C21x__mS.js";import{n as i}from"./iframe-BOYfiRbQ.js";import{a,i as o}from"./utils-DUM89eIj.js";import{n as ee,t as s}from"./ui.module-CiLQZm_L.js";import{i as c,n as te}from"./uiClasses-DiXn3Hc-.js";import{n as l,t as u}from"./createControlledStoryRender-DHsyXc1B.js";import{n as d,t as f}from"./Scrollable-BfWwu2om.js";import{a as ne,c as p,f as re,i as m,l as h,n as g,o as _,r as ie,s as v,t as y,u as ae}from"./TabsBox-C4gzhmdB.js";function oe(e){let{type:t}=e;if(typeof t==`function`){let e=t;return e.displayName??e.name??null}if(typeof t==`object`&&t&&`displayName`in t){let e=t;return typeof e.displayName==`string`?e.displayName:null}return null}function b(e,t){return(0,T.isValidElement)(e)&&oe(e)===t}function x({children:e}){return(0,E.jsx)(E.Fragment,{children:e})}function S({children:e}){return(0,E.jsx)(E.Fragment,{children:e})}function C({children:e}){return(0,E.jsx)(E.Fragment,{children:e})}function w({children:e}){return(0,E.jsx)(E.Fragment,{children:e})}function se(e,t){let n=null,r=null,i=null;for(let a of T.Children.toArray(e)){if(!(0,T.isValidElement)(a))throw Error(`TabsLayout.Tab "${t}" поддерживает только дочерние элементы TabsLayout.Toolbar, TabsLayout.Content и TabsLayout.Footer.`);if(b(a,O)){if(n)throw Error(`TabsLayout.Tab "${t}" содержит более одного блока TabsLayout.Toolbar.`);n=a.props;continue}if(b(a,k)){if(r)throw Error(`TabsLayout.Tab "${t}" содержит более одного блока TabsLayout.Content.`);r=a.props;continue}if(b(a,A)){if(i)throw Error(`TabsLayout.Tab "${t}" содержит более одного блока TabsLayout.Footer.`);i=a.props;continue}throw Error(`TabsLayout.Tab "${t}" поддерживает только дочерние элементы TabsLayout.Toolbar, TabsLayout.Content и TabsLayout.Footer.`)}if(!r)throw Error(`TabsLayout.Tab "${t}" должен содержать блок TabsLayout.Content.`);return{toolbar:n,content:r,footer:i}}function ce(e){return T.Children.toArray(e).map(e=>{if(!b(e,D))throw Error(`TabsLayout принимает только дочерние элементы TabsLayout.Tab.`);return{id:e.props.id,title:e.props.title,disabled:e.props.disabled,...se(e.props.children,e.props.id)}})}var T,E,D,O,k,A,j,M;function N(){return(N=e((()=>{T=t(r(),1),o(),s(),c(),h(),p(),_(),m(),E=i(),D=`TabsLayout.Tab`,O=`TabsLayout.Toolbar`,k=`TabsLayout.Content`,A=`TabsLayout.Footer`,x.displayName=D,S.displayName=O,C.displayName=k,w.displayName=A,j=({children:e,value:t,defaultValue:n,onValueChange:r,className:i,orientation:o=`horizontal`,activationMode:s=`manual`,mountStrategy:c=`lazy`,loop:l=!0,tone:u=`primary`,clean:d=!1,"aria-label":f,"aria-labelledby":p})=>{let m=(0,T.useMemo)(()=>ce(e),[e]),h=ae({items:m,value:t,defaultValue:n,onValueChange:r,orientation:o,activationMode:s,loop:l}),g=a(v.tabsContainer,d?v.clean:ee.uiFilledPanel,v[o],te(u),i),_=a(v.panels,v.layoutPanels);return(0,E.jsxs)(`div`,{className:g,children:[(0,E.jsx)(ie,{items:m,state:h,className:v.tabs,ariaLabel:f,ariaLabelledBy:p}),(0,E.jsx)(`div`,{className:_,children:m.map(e=>{let t=e.id===h.selectedTabId;if(!re({mountStrategy:c,isSelected:t,isVisited:h.isVisited(e.id)}))return null;let n=`${e.toolbar?`auto `:``}minmax(0, 1fr)${e.footer?` auto`:``}`;return(0,E.jsx)(ne,{tabId:e.id,isSelected:t,className:v.panel,getTabElementId:h.getTabElementId,getPanelElementId:h.getPanelElementId,children:(0,E.jsxs)(`div`,{className:v.layoutPanel,style:{gridTemplateRows:n},children:[e.toolbar?(0,E.jsx)(`div`,{className:a(v.layoutSection,e.toolbar.className),children:e.toolbar.children}):null,(0,E.jsx)(`div`,{className:a(v.layoutSection,v.layoutContent,e.content.className),children:e.content.children}),e.footer?(0,E.jsx)(`div`,{className:a(v.layoutSection,e.footer.className),children:e.footer.children}):null]})},e.id)})})]})},j.displayName=`TabsLayout`,M=Object.assign(j,{Tab:x,Toolbar:S,Content:C,Footer:w}),j.__docgenInfo={description:`Compound-оболочка tabs для составных panel-layout сценариев.
|
|
2
2
|
Сам компонент управляет только переключением и каркасом панели.`,methods:[],displayName:`TabsLayout`,props:{value:{required:!1,tsType:{name:`string`},description:``},defaultValue:{required:!1,tsType:{name:`string`},description:``},onValueChange:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(value: string) => void`,signature:{arguments:[{type:{name:`string`},name:`value`}],return:{name:`void`}}},description:``},orientation:{required:!1,tsType:{name:`union`,raw:`"horizontal" | "vertical"`,elements:[{name:`literal`,value:`"horizontal"`},{name:`literal`,value:`"vertical"`}]},description:``,defaultValue:{value:`"horizontal"`,computed:!1}},activationMode:{required:!1,tsType:{name:`union`,raw:`"automatic" | "manual"`,elements:[{name:`literal`,value:`"automatic"`},{name:`literal`,value:`"manual"`}]},description:``,defaultValue:{value:`"manual"`,computed:!1}},mountStrategy:{required:!1,tsType:{name:`union`,raw:`"unmount" | "lazy" | "keep-mounted"`,elements:[{name:`literal`,value:`"unmount"`},{name:`literal`,value:`"lazy"`},{name:`literal`,value:`"keep-mounted"`}]},description:``,defaultValue:{value:`"lazy"`,computed:!1}},loop:{required:!1,tsType:{name:`boolean`},description:``,defaultValue:{value:`true`,computed:!1}},tone:{required:!1,tsType:{name:`union`,raw:`"primary" | "secondary" | "tertiary"`,elements:[{name:`literal`,value:`"primary"`},{name:`literal`,value:`"secondary"`},{name:`literal`,value:`"tertiary"`}]},description:``,defaultValue:{value:`"primary"`,computed:!1}},clean:{required:!1,tsType:{name:`boolean`},description:``,defaultValue:{value:`false`,computed:!1}},className:{required:!1,tsType:{name:`string`},description:``},"aria-label":{required:!1,tsType:{name:`string`},description:``},"aria-labelledby":{required:!1,tsType:{name:`string`},description:``},children:{required:!0,tsType:{name:`ReactNode`},description:``}}}})))()}var le=n({BoxBasic:()=>K,BoxControlled:()=>q,BoxMountStrategies:()=>Y,BoxVertical:()=>J,DisabledTabs:()=>X,Empty:()=>$,LayoutPanels:()=>Z,Loading:()=>Q,__namedExportsOrder:()=>ue,default:()=>W});function P({label:e}){let[t,n]=(0,I.useState)(0);return(0,L.jsxs)(`div`,{style:z,children:[(0,L.jsxs)(`div`,{children:[`Панель: `,e]}),(0,L.jsxs)(`div`,{children:[`Локальный счётчик: `,t]}),(0,L.jsx)(`button`,{type:`button`,onClick:()=>n(e=>e+1),children:`Увеличить`})]})}function F(e){return u((t,n)=>{let r=t.value??t.defaultValue,i=(0,L.jsx)(y,{...t,value:r,onValueChange:e=>{t.onValueChange?.(e),n({value:e})}});return e===void 0?i:(0,L.jsx)(`div`,{style:{height:e},children:i})})}var I,L,R,z,B,V,H,U,W,G,K,q,J,Y,X,Z,Q,$,ue;function de(){return(de=e((()=>{I=r(),g(),N(),l(),d(),L=i(),{fn:R}=__STORYBOOK_MODULE_TEST__,z={padding:16,display:`grid`,gap:12},B=[{id:`profile`,title:`Профиль`,content:(0,L.jsx)(`div`,{style:z,children:`Карточка пользователя и основные поля профиля.`})},{id:`settings`,title:`Настройки`,content:(0,L.jsx)(`div`,{style:z,children:`Параметры интерфейса, уведомлений и доступа.`})},{id:`history`,title:`История`,content:(0,L.jsx)(`div`,{style:z,children:`Последние действия, комментарии и изменения.`})}],V=[{id:`first`,title:`Первая`,content:(0,L.jsx)(P,{label:`Первая`})},{id:`second`,title:`Вторая`,content:(0,L.jsx)(P,{label:`Вторая`})},{id:`third`,title:`Третья`,content:(0,L.jsx)(P,{label:`Третья`})}],H=[{id:`overview`,title:`Обзор`,content:(0,L.jsx)(`div`,{style:z,children:`Раздел доступен сразу.`})},{id:`analytics`,title:`Аналитика`,disabled:!0,content:(0,L.jsx)(`div`,{style:z,children:`Пока недоступно.`})},{id:`history`,title:`История`,content:(0,L.jsx)(`div`,{style:z,children:`История изменений и действий.`})}],U=Array.from({length:12},(e,t)=>`Элемент ${t+1}`),W={title:`Shared/UI/Tabs`,component:y,args:{items:B,value:`profile`,onValueChange:R(),orientation:`horizontal`,activationMode:`automatic`,mountStrategy:`unmount`,isLoading:!1,loadingText:`Загрузка вкладок...`,clean:!1,loop:!0},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{items:{description:"Набор вкладок для `TabsBox`. Каждая вкладка задаётся через `id`, `title`, `content` и опциональный `disabled`.",control:!1},value:{description:`Активная вкладка в controlled-режиме.`,control:`text`},defaultValue:{description:`Начальная вкладка в uncontrolled-режиме.`,control:`text`},onValueChange:{description:`Вызывается при смене активной вкладки.`,control:!1},orientation:{description:`Направление списка вкладок.`,control:`inline-radio`,options:[`horizontal`,`vertical`]},activationMode:{description:"Режим клавиатурной активации: `automatic` меняет вкладку стрелками, `manual` только переводит фокус.",control:`inline-radio`,options:[`automatic`,`manual`]},mountStrategy:{description:"Политика монтирования панелей: `unmount`, `lazy` или `keep-mounted`.",control:`inline-radio`,options:[`unmount`,`lazy`,`keep-mounted`]},clean:{description:`Убирает базовые padding и surface-оформление panel-области.`,control:`boolean`},loop:{description:`Разрешает циклическую навигацию стрелками и Home/End.`,control:`boolean`},isLoading:{description:"Показывает loading-состояние `TabsBox`.",control:`boolean`},loadingText:{description:`Текст внутри loading-состояния.`,control:`text`},"aria-label":{description:"Собственное доступное имя `tablist`, если рядом нет видимого заголовка.",control:`text`},"aria-labelledby":{description:"Ссылка на внешний заголовок `tablist` вместо текстовой ARIA-метки.",control:`text`}}},G=u((e,t)=>{let n=e.value??e.defaultValue??`details`;return(0,L.jsx)(`div`,{style:{height:360},children:(0,L.jsxs)(M,{value:n,defaultValue:e.defaultValue,onValueChange:n=>{e.onValueChange?.(n),t({value:n})},orientation:e.orientation,activationMode:e.activationMode,mountStrategy:e.mountStrategy,loop:e.loop,clean:e.clean,className:e.className,"aria-label":e[`aria-label`],"aria-labelledby":e[`aria-labelledby`],children:[(0,L.jsxs)(M.Tab,{id:`details`,title:`Детали`,children:[(0,L.jsx)(M.Toolbar,{children:(0,L.jsx)(`div`,{className:`surface0 border radiusSm paddingSm`,children:`Панель инструментов вне scroll-области.`})}),(0,L.jsx)(M.Content,{children:(0,L.jsxs)(`div`,{style:{display:`grid`,gridTemplateColumns:`1fr 1fr`,gap:12,height:`100%`},children:[(0,L.jsx)(f,{className:`surface0 border radiusSm paddingSm h100`,children:U.map(e=>(0,L.jsxs)(`div`,{className:`paddingBlockXs`,children:[`Левая колонка: `,e]},`left-${e}`))}),(0,L.jsx)(f,{className:`surface0 border radiusSm paddingSm h100`,children:U.map(e=>(0,L.jsxs)(`div`,{className:`paddingBlockXs`,children:[`Правая колонка: `,e]},`right-${e}`))})]})}),(0,L.jsx)(M.Footer,{children:(0,L.jsx)(`div`,{className:`surface0 border radiusSm paddingSm`,children:`Футер тоже исключён из scroll-контента.`})})]}),(0,L.jsx)(M.Tab,{id:`history`,title:`История`,children:(0,L.jsx)(M.Content,{children:(0,L.jsx)(f,{className:`surface0 border radiusSm paddingSm h100`,children:U.map(e=>(0,L.jsxs)(`div`,{className:`paddingBlockXs`,children:[`История изменения: `,e]},`history-${e}`))})})})]})})}),K={args:{"aria-label":`Основные разделы профиля`},render:F()},q={args:{value:`settings`,"aria-label":`Управляемые вкладки`},render:F()},J={args:{orientation:`vertical`,"aria-label":`Вертикальные вкладки`},render:F(320)},Y={args:{items:V,mountStrategy:`lazy`,"aria-label":`Демонстрация стратегий монтирования`},render:F()},X={args:{items:H,value:`overview`,"aria-label":`Вкладки с недоступным разделом`},render:F()},Z={args:{value:`details`,onValueChange:R(),orientation:`horizontal`,activationMode:`manual`,mountStrategy:`lazy`,clean:!1,loop:!0,"aria-label":`Составные панели документа`},render:G},Q={args:{isLoading:!0,items:B},render:F()},$={args:{items:[],value:void 0},render:F()},K.parameters={...K.parameters,docs:{...K.parameters?.docs,source:{originalSource:`{
|
|
3
3
|
args: {
|
|
4
4
|
"aria-label": "Основные разделы профиля"
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{t}from"./react-C21x__mS.js";import{n}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{t}from"./react-C21x__mS.js";import{n}from"./iframe-BOYfiRbQ.js";import{a as r,i,o as a}from"./utils-DUM89eIj.js";import{n as o,t as s}from"./ui.module-CiLQZm_L.js";import{i as c,n as l}from"./uiClasses-DiXn3Hc-.js";import{i as u,n as d,r as f,t as p}from"./NoData-J6gIe2DW.js";import{n as m,t as h}from"./OneStepScroller-pU0sAFEq.js";function g(e){return e.find(e=>!e.disabled)?.id??null}function _(e,t){return t?e.find(e=>e.id===t&&!e.disabled)?.id??g(e):g(e)}function v(e){return e.filter(e=>!e.disabled)}function y({mountStrategy:e,isSelected:t,isVisited:n}){return e===`keep-mounted`||t||e===`lazy`&&n}function b(){return(b=e((()=>{})))()}function x({items:e,value:t,defaultValue:n,onValueChange:r,orientation:i=`horizontal`,activationMode:o=`automatic`,loop:s=!0}){let c=t!==void 0,l=(0,S.useMemo)(()=>v(e),[e]),u=l[0]?.id??null,[d,f]=(0,S.useState)(()=>_(e,n)),[p,m]=(0,S.useState)(()=>_(e,t??n)),h=_(e,t??n),[g,y]=(0,S.useState)(()=>h?new Set([h]):new Set),b=(0,S.useId)(),x=(0,S.useRef)({}),C=_(e,c?t:d),w=_(e,p)??C??u,T=(0,S.useMemo)(()=>{if(!C||g.has(C))return g;let e=new Set(g);return e.add(C),e},[C,g]),E=t=>{let n=_(e,t);n&&(y(e=>{if(e.has(n))return e;let t=new Set(e);return t.add(n),t}),c||f(n),r?.(n))},D=e=>{x.current[e]?.focus()},O=e=>{if(l.length<2)return;let t=Math.max(0,l.findIndex(e=>e.id===(w??C??u))),n=a({currentIndex:t,itemCount:l.length,key:e.key,orientation:i,wrap:s});if(n===null)return;e.preventDefault();let r=l[n]?.id;r&&(m(r),D(r),o===`automatic`&&E(r))},k=e=>{let t=e.relatedTarget;t instanceof Node&&e.currentTarget.contains(t)||m(C??u)},A=e=>`${b}-tab-${e}`,j=e=>`${b}-panel-${e}`;return{activationMode:o,orientation:i,selectedTabId:C,tabbableTabId:w,onTabListKeyDown:O,onTabListBlur:k,getTabElementId:A,getPanelElementId:j,getTabButtonProps:e=>{let t=e.id===C,n=e.id===w;return{ref:t=>{x.current[e.id]=t},type:`button`,role:`tab`,id:A(e.id),disabled:e.disabled,"aria-selected":t,"aria-controls":j(e.id),"aria-disabled":e.disabled||void 0,tabIndex:e.disabled?-1:n?0:-1,onFocus:()=>m(e.id),onClick:()=>E(e.id)}},isVisited:e=>T.has(e)}}var S;function C(){return(C=e((()=>{S=t(),i()})))()}var w,T,E,D,O,k,A,j,M,N,P,F,I,L,R,z;function B(){return(B=e((()=>{w=`pcMjuj`,T=`NLOw2z`,E=`ZSAoAa`,D=`psYhsZ`,O=`mNDq9-`,k=`_28F3fs`,A=`g156KO`,j=`C2mO1e`,M=`UKZXTZ`,N=`jiTafe`,P=`nhD0k7`,F=`G8FICe`,I=`W50XHh`,L=`vnjXkU`,R=`Nzvfhw`,z={tabsContainer:w,clean:T,tabs:E,panels:D,horizontal:O,tab:k,vertical:A,panelScrollable:j,selected:M,panel:N,panelBody:P,layoutPanels:F,layoutPanel:I,layoutSection:L,layoutContent:R}})))()}function V({containerClassName:e,tabListClassName:t,panelsClassName:n,panelClassName:i,panelBodyClassName:a,loadingText:o}){return(0,H.jsxs)(`div`,{className:e,children:[(0,H.jsx)(`div`,{className:t,"aria-hidden":`true`,children:(0,H.jsx)(`button`,{type:`button`,disabled:!0,"data-disabled":``,className:r(z.tab,`skeletonLine`),children:`Загрузка...`})}),(0,H.jsx)(`div`,{className:n,"aria-busy":`true`,children:(0,H.jsx)(`div`,{className:i,children:(0,H.jsx)(`div`,{className:a,children:(0,H.jsx)(f,{text:o,className:`radiusSm`})})})})]})}var H;function U(){return(U=e((()=>{i(),u(),B(),H=n(),V.__docgenInfo={description:"Служебное loading-состояние для `TabsBox`.",methods:[],displayName:`TabsLoadingState`,props:{containerClassName:{required:!0,tsType:{name:`string`},description:``},tabListClassName:{required:!0,tsType:{name:`string`},description:``},panelsClassName:{required:!0,tsType:{name:`string`},description:``},panelClassName:{required:!0,tsType:{name:`string`},description:``},panelBodyClassName:{required:!0,tsType:{name:`string`},description:``},loadingText:{required:!1,tsType:{name:`string`},description:``}}}})))()}function W({containerClassName:e,panelsClassName:t,panelClassName:n,panelBodyClassName:r}){return(0,G.jsx)(`div`,{className:e,children:(0,G.jsx)(`div`,{className:t,children:(0,G.jsx)(`div`,{className:n,children:(0,G.jsx)(`div`,{className:r,children:(0,G.jsx)(p,{className:`radiusSm`})})})})})}var G;function K(){return(K=e((()=>{d(),G=n(),W.__docgenInfo={description:"Служебное empty-состояние для `TabsBox`.",methods:[],displayName:`TabsNoDataState`,props:{containerClassName:{required:!0,tsType:{name:`string`},description:``},panelsClassName:{required:!0,tsType:{name:`string`},description:``},panelClassName:{required:!0,tsType:{name:`string`},description:``},panelBodyClassName:{required:!0,tsType:{name:`string`},description:``}}}})))()}function q({tabId:e,isSelected:t,className:n,getTabElementId:r,getPanelElementId:i,children:a}){return(0,J.jsx)(`div`,{role:`tabpanel`,id:i(e),"aria-labelledby":r(e),hidden:!t,className:n,children:a})}var J;function Y(){return(Y=e((()=>{t(),J=n(),q.__docgenInfo={description:``,methods:[],displayName:`TabsPanel`,props:{tabId:{required:!0,tsType:{name:`string`},description:``},isSelected:{required:!0,tsType:{name:`boolean`},description:``},className:{required:!1,tsType:{name:`string`},description:``},getTabElementId:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(tabId: string) => string`,signature:{arguments:[{type:{name:`string`},name:`tabId`}],return:{name:`string`}}},description:``},getPanelElementId:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(tabId: string) => string`,signature:{arguments:[{type:{name:`string`},name:`tabId`}],return:{name:`string`}}},description:``},children:{required:!0,tsType:{name:`ReactReactNode`,raw:`React.ReactNode`},description:``}}}})))()}function X({items:e,state:t,className:n,ariaLabel:i,ariaLabelledBy:a}){return(0,Z.jsx)(`div`,{className:n,role:`tablist`,"aria-orientation":t.orientation,"aria-label":i,"aria-labelledby":a,onKeyDown:t.onTabListKeyDown,onBlur:t.onTabListBlur,children:(e=>t.orientation===`horizontal`?(0,Z.jsx)(h,{children:e}):(0,Z.jsx)(Z.Fragment,{children:e}))(e.map(e=>(0,Z.jsx)(`button`,{...t.getTabButtonProps(e),"data-ui":`tabs-tab`,"data-action":`select-tab`,className:r(z.tab,`textWrap`,e.id===t.selectedTabId&&z.selected),children:e.title},e.id)))})}var Z;function Q(){return(Q=e((()=>{i(),m(),B(),Z=n(),X.__docgenInfo={description:``,methods:[],displayName:`TabsTabList`,props:{items:{required:!0,tsType:{name:`Array`,elements:[{name:`TabsDescriptor`}],raw:`TabsDescriptor[]`},description:``},state:{required:!0,tsType:{name:`TabsStateModel`},description:``},className:{required:!1,tsType:{name:`string`},description:``},ariaLabel:{required:!1,tsType:{name:`string`},description:``},ariaLabelledBy:{required:!1,tsType:{name:`string`},description:``}}}})))()}function ee({items:e,value:t,defaultValue:n,onValueChange:i,className:a,isLoading:s,loadingText:c,orientation:u=`horizontal`,activationMode:d=`automatic`,mountStrategy:f=`unmount`,loop:p=!0,tone:m=`primary`,clean:h=!1,"aria-label":g,"aria-labelledby":_}){let v=x({items:e,value:t,defaultValue:n,onValueChange:i,orientation:u,activationMode:d,loop:p}),b=r(z.tabsContainer,h?z.clean:o.uiFilledPanel,z[u],l(m),a),S=z.tabs,C=r(z.panels,z.panelScrollable,`scrollable overscroll`),w=z.panel,T=z.panelBody;return s?(0,$.jsx)(V,{containerClassName:b,tabListClassName:S,panelsClassName:C,panelClassName:w,panelBodyClassName:T,loadingText:c}):e.length?(0,$.jsxs)(`div`,{className:b,children:[(0,$.jsx)(X,{items:e,state:v,className:S,ariaLabel:g,ariaLabelledBy:_}),(0,$.jsx)(`div`,{className:C,children:e.map(e=>{let t=e.id===v.selectedTabId;return y({mountStrategy:f,isSelected:t,isVisited:v.isVisited(e.id)})?(0,$.jsx)(q,{tabId:e.id,isSelected:t,className:w,getTabElementId:v.getTabElementId,getPanelElementId:v.getPanelElementId,children:(0,$.jsx)(`div`,{className:T,children:e.content})},e.id):null})})]}):(0,$.jsx)(W,{containerClassName:b,panelsClassName:C,panelClassName:w,panelBodyClassName:T})}var $;function te(){return(te=e((()=>{i(),s(),c(),C(),B(),U(),K(),Y(),Q(),$=n(),ee.__docgenInfo={description:`Простой items-based tabs-компонент.
|
|
2
2
|
Сам управляет областью панели и её прокруткой.`,methods:[],displayName:`TabsBox`,props:{value:{required:!1,tsType:{name:`string`},description:``},defaultValue:{required:!1,tsType:{name:`string`},description:``},onValueChange:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(value: string) => void`,signature:{arguments:[{type:{name:`string`},name:`value`}],return:{name:`void`}}},description:``},orientation:{required:!1,tsType:{name:`union`,raw:`"horizontal" | "vertical"`,elements:[{name:`literal`,value:`"horizontal"`},{name:`literal`,value:`"vertical"`}]},description:``,defaultValue:{value:`"horizontal"`,computed:!1}},activationMode:{required:!1,tsType:{name:`union`,raw:`"automatic" | "manual"`,elements:[{name:`literal`,value:`"automatic"`},{name:`literal`,value:`"manual"`}]},description:``,defaultValue:{value:`"automatic"`,computed:!1}},mountStrategy:{required:!1,tsType:{name:`union`,raw:`"unmount" | "lazy" | "keep-mounted"`,elements:[{name:`literal`,value:`"unmount"`},{name:`literal`,value:`"lazy"`},{name:`literal`,value:`"keep-mounted"`}]},description:``,defaultValue:{value:`"unmount"`,computed:!1}},loop:{required:!1,tsType:{name:`boolean`},description:``,defaultValue:{value:`true`,computed:!1}},tone:{required:!1,tsType:{name:`union`,raw:`"primary" | "secondary" | "tertiary"`,elements:[{name:`literal`,value:`"primary"`},{name:`literal`,value:`"secondary"`},{name:`literal`,value:`"tertiary"`}]},description:``,defaultValue:{value:`"primary"`,computed:!1}},clean:{required:!1,tsType:{name:`boolean`},description:``,defaultValue:{value:`false`,computed:!1}},className:{required:!1,tsType:{name:`string`},description:``},"aria-label":{required:!1,tsType:{name:`string`},description:``},"aria-labelledby":{required:!1,tsType:{name:`string`},description:``},items:{required:!0,tsType:{name:`Array`,elements:[{name:`TabsBoxItem`}],raw:`TabsBoxItem[]`},description:``},isLoading:{required:!1,tsType:{name:`boolean`},description:``},loadingText:{required:!1,tsType:{name:`string`},description:``}}}})))()}export{q as a,B as c,b as d,y as f,Q as i,C as l,te as n,Y as o,X as r,z as s,ee as t,x as u};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{t}from"./react-C21x__mS.js";import{n,t as r}from"./x-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{t}from"./react-C21x__mS.js";import{n,t as r}from"./x-BVvgKMRp.js";import{n as i}from"./iframe-BOYfiRbQ.js";import{a,i as o}from"./utils-DUM89eIj.js";import{n as s,t as c}from"./ui.module-CiLQZm_L.js";import{c as l,l as u,o as ee,u as d}from"./Input-Dmum9ojv.js";function f(...e){return e.filter(Boolean).join(` `)||void 0}function p(e){return e.trim()}function m(e){return e}function h(e){return`Удалить тег «${e}»`}var g,_,v,y,b,x,S;function C(){return(C=e((()=>{g=`AoFB3K`,_=`PvaUEA`,v=`FZ-xEM`,y=`-RCqfG`,b=`ggY643`,x=`hiZq-y`,S={control:g,tagList:_,tag:v,tagText:y,removeButton:b,input:x}})))()}function w({ref:e,value:t,onChange:n,label:i,description:o,placeholder:c,size:l,disabled:u,readOnly:g=!1,error:_,onClearError:v,maxTags:y,normalizeTag:b=p,getTagKey:x=m,addOnBlur:C=!0,getRemoveButtonAriaLabel:w=h,tokensAriaLabel:k=`Добавленные теги`,inputClassName:A,className:j,id:M,name:N,form:P,required:te,maxLength:F,onKeyDown:ne,onPaste:re,onBlur:ie,onCompositionStart:ae,onCompositionEnd:oe,"aria-describedby":I,"aria-labelledby":L,...R}){let z=(0,T.useRef)(null),B=(0,T.useRef)(null),V=(0,T.useRef)(!1),[H,U]=(0,T.useState)(``),[W,G]=(0,T.useState)(``),{controlId:K,labelId:q,descriptionId:se,errorId:ce,describedBy:le}=d({id:M,hasLabel:i!=null,hasDescription:!!o,hasError:!!_}),J=y===void 0?1/0:Math.max(0,Math.floor(y)),Y=u||g,X=f(le,I),ue=f(q,L);(0,T.useImperativeHandle)(e,()=>{let e=z.current;if(!e)throw Error(`TagInput: внутренний input недоступен при создании imperative handle.`);return e},[]);let Z=e=>{if(Y)return;v?.();let r=[...t],i=new Set(r.map(e=>x(e))),a=[],o=0,s=!1;for(let t of e){let e=b(t);if(!e)continue;if(F!==void 0&&e.length>F){G(`Тег «${e}» длиннее допустимого значения.`);continue}let n=x(e);if(i.has(n)){o+=1;continue}if(r.length>=J){s=!0;break}i.add(n),r.push(e),a.push(e)}a.length>0?(n(r),G(a.length===1?`Добавлен тег «${a[0]}».`:`Добавлено тегов: ${a.length}.`)):s?G(`Достигнуто максимальное количество тегов: ${J}.`):o>0&&G(`Такой тег уже добавлен.`)},Q=()=>H?(Z(H.split(O)),U(``),!0):!1,$=e=>{if(Y)return;let r=t[e];r!==void 0&&(n(t.filter((t,n)=>n!==e)),v?.(),G(`Удалён тег «${r}».`),z.current?.focus())},de=e=>{if(ne?.(e),!(e.defaultPrevented||e.nativeEvent.isComposing||V.current||Y)){if(e.key===`Enter`||e.key===`,`){(Q()||e.key===`,`)&&e.preventDefault();return}e.key===`Backspace`&&H.length===0&&t.length>0&&(e.preventDefault(),$(t.length-1))}},fe=e=>{if(re?.(e),e.defaultPrevented||Y)return;let t=e.clipboardData.getData(`text`);if(!D.test(t))return;e.preventDefault();let n=e.currentTarget.selectionStart??H.length,r=e.currentTarget.selectionEnd??n,i=`${H.slice(0,n)}${t}${H.slice(r)}`;Z(i.split(O)),U(``)};return(0,E.jsxs)(ee,{label:i,description:o,disabled:u,className:j,size:l,error:_,controlId:K,labelId:q,descriptionId:se,errorId:ce,children:[(0,E.jsxs)(`div`,{ref:B,className:a(s.uiControl,_&&s.invalid,S.control),"data-disabled":u?``:void 0,"data-readonly":g?``:void 0,"data-invalid":_?``:void 0,onClick:()=>z.current?.focus(),children:[t.length>0&&(0,E.jsx)(`ul`,{className:S.tagList,"aria-label":k,children:t.map((e,t)=>(0,E.jsxs)(`li`,{className:S.tag,children:[(0,E.jsx)(`span`,{className:S.tagText,children:e}),!Y&&(0,E.jsx)(`button`,{type:`button`,className:S.removeButton,onClick:e=>{e.stopPropagation(),$(t)},"aria-label":w(e,t),children:(0,E.jsx)(r,{"aria-hidden":`true`})})]},`${x(e)}-${t}`))}),(0,E.jsx)(`input`,{...R,ref:z,id:K,form:P,disabled:u,readOnly:g,required:te&&t.length===0,maxLength:F,value:H,placeholder:t.length===0?c:void 0,"aria-invalid":!!_||void 0,"aria-labelledby":ue,"aria-describedby":X,className:a(S.input,A),onChange:e=>{let t=e.target.value,n=D.test(t);if(V.current)U(t);else if(n){let e=t.split(O),n=D.test(t.at(-1)??``)?``:e.pop()??``;Z(e),U(n)}else U(t);(V.current||!n)&&v?.()},onKeyDown:de,onPaste:fe,onCompositionStart:e=>{V.current=!0,ae?.(e)},onCompositionEnd:e=>{V.current=!1,oe?.(e)},onBlur:e=>{ie?.(e);let t=e.relatedTarget,n=t instanceof Node&&B.current?.contains(t);!e.defaultPrevented&&!n&&C&&!Y&&Q()}}),N&&t.map((e,t)=>(0,E.jsx)(`input`,{type:`hidden`,name:N,value:e,form:P,disabled:u},`${x(e)}-${t}`))]}),(0,E.jsx)(`span`,{className:`visuallyHidden`,"aria-live":`polite`,"aria-atomic":`true`,children:W})]})}var T,E,D,O;function k(){return(k=e((()=>{T=t(),o(),n(),l(),u(),c(),C(),E=i(),D=/[,\r\n]/,O=/[,\r\n]+/,w.__docgenInfo={description:"Controlled-поле для создания коротких строковых тегов.\n\nНовое значение фиксируется по `Enter`, запятой, вставке списка или потере фокуса. Компонент хранит\nтолько незавершённый текст input, а окончательный набор всегда принадлежит потребителю через `value`.",methods:[],displayName:`TagInput`,props:{label:{required:!1,tsType:{name:`ReactNode`},description:``},description:{required:!1,tsType:{name:`string`},description:``},placeholder:{required:!1,tsType:{name:`string`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},size:{required:!1,tsType:{name:`union`,raw:`"xs" | "sm" | "md" | "lg" | "xl"`,elements:[{name:`literal`,value:`"xs"`},{name:`literal`,value:`"sm"`},{name:`literal`,value:`"md"`},{name:`literal`,value:`"lg"`},{name:`literal`,value:`"xl"`}]},description:``},value:{required:!0,tsType:{name:`V`},description:"Если начальное состояние может быть `null | undefined`\nзначит `onChange` тоже должен ументь сбрасывать.\nПоэтому такой контрол явно должен передавать `UiBaseProps<AnyType | undefined>`"},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: T) => void`,signature:{arguments:[{type:{name:`C`},name:`value`}],return:{name:`void`}}},description:``},ref:{required:!1,tsType:{name:`Ref`,elements:[{name:`HTMLInputElement`}],raw:`Ref<HTMLInputElement>`},description:"Ссылка на внутренний нативный `input`, передаваемая напрямую как React 19 prop."},error:{required:!1,tsType:{name:`string`},description:"Сообщение валидации, связанное с полем через `aria-describedby`."},onClearError:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:`Сбрасывает внешнюю ошибку после изменения черновика или набора тегов.`},readOnly:{required:!1,tsType:{name:`boolean`},description:`Запрещает изменение набора тегов, сохраняя возможность выделять и копировать текст.`,defaultValue:{value:`false`,computed:!1}},maxTags:{required:!1,tsType:{name:`number`},description:`Максимальное количество тегов. Отсутствие значения не ограничивает набор.`},normalizeTag:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(value: string) => string`,signature:{arguments:[{type:{name:`string`},name:`value`}],return:{name:`string`}}},description:`Нормализует введённое значение перед проверкой дубликата и добавлением.
|
|
2
2
|
По умолчанию удаляет пробелы в начале и конце.`,defaultValue:{value:`function defaultNormalizeTag(value: string) {
|
|
3
3
|
return value.trim();
|
|
4
4
|
}`,computed:!1}},getTagKey:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(value: string) => string`,signature:{arguments:[{type:{name:`string`},name:`value`}],return:{name:`string`}}},description:`Возвращает ключ сравнения тегов. Позволяет, например, запретить дубликаты без учёта регистра.
|
package/storybook-static/assets/{TagInput.stories-BfUUxxvB.js → TagInput.stories-BMCmW5eG.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{n}from"./iframe-
|
|
1
|
+
import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{n}from"./iframe-BOYfiRbQ.js";import{n as r,t as i}from"./createControlledStoryRender-DHsyXc1B.js";import{n as a,t as o}from"./TagInput-C_nlfbRh.js";var s=t({Controlled:()=>d,ReadOnly:()=>f,__namedExportsOrder:()=>p,default:()=>u}),c,l,u,d,f,p;function m(){return(m=e((()=>{r(),a(),c=n(),l=i((e,t)=>(0,c.jsx)(o,{...e,value:e.value??[],onChange:n=>{e.onChange?.(n),t({value:n})},onClearError:()=>{e.onClearError?.(),t({error:void 0})}})),u={title:`Shared/UI/TagInput`,component:o,args:{value:[],onChange:()=>void 0},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Заголовок поля тегов.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},placeholder:{description:`Подсказка для черновика нового тега.`,control:`text`},value:{description:`Controlled-набор добавленных тегов.`,control:`object`},onChange:{description:`Возвращает новый набор после добавления или удаления тега.`,control:!1},error:{description:"Текст ошибки, связанный с полем через `aria-describedby`.",control:`text`},onClearError:{description:`Вызывается после изменения черновика или набора тегов.`,control:!1},disabled:{description:`Блокирует ввод и изменение набора тегов.`,control:`boolean`},size:{description:`Размер поля и подписи.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]},maxTags:{description:`Максимальное количество тегов.`,control:{type:`number`,min:0,step:1}},readOnly:{description:`Показывает теги без действий добавления и удаления, сохраняя возможность копирования.`,control:`boolean`},normalizeTag:{description:`Нормализует введенный тег до проверки дубликата и добавления.`,control:!1},getTagKey:{description:`Формирует ключ для сравнения тегов и поиска дубликатов.`,control:!1},addOnBlur:{description:`Добавляет непустой черновик при уходе фокуса с поля.`,control:`boolean`},getRemoveButtonAriaLabel:{description:`Формирует доступное имя кнопки удаления конкретного тега.`,control:!1},tokensAriaLabel:{description:`Доступное имя списка уже добавленных тегов.`,control:`text`},inputClassName:{description:`CSS-класс внутреннего поля черновика тега.`,control:`text`}}},d={render:l,args:{label:`Теги материала`,description:`Введите значение и нажмите Enter или запятую. Можно вставить сразу несколько строк.`,placeholder:`Добавить тег`,value:[`Новости`,`Колледж`],maxTags:10,getTagKey:e=>e.toLocaleLowerCase(`ru`)}},f={render:l,args:{label:`Теги материала`,value:[`Новости`,`Колледж`],readOnly:!0}},d.parameters={...d.parameters,docs:{...d.parameters?.docs,source:{originalSource:`{
|
|
2
2
|
render: renderTagInputStory,
|
|
3
3
|
args: {
|
|
4
4
|
label: "Теги материала",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e,o as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{n as r}from"./iframe-
|
|
1
|
+
import{n as e,o as t}from"./rolldown-runtime-C0FnF6B9.js";import{t as n}from"./react-C21x__mS.js";import{n as r}from"./iframe-BOYfiRbQ.js";import{a as i,i as a}from"./utils-DUM89eIj.js";var o,s,c,l,u,d,f,p;function m(){return(m=e((()=>{o=t(n(),1),a(),s=r(),c={primary:`content0`,secondary:`content1`,muted:`content2`,info:`statusInfo`,success:`statusSuccess`,warning:`statusWarning`,error:`statusError`,brand:`statusBrand`,accent:`contentAccent`},l={xs:`fontSizeXs`,sm:`fontSizeSm`,md:`fontSizeMd`,lg:`fontSizeLg`,xl:`fontSizeXl`},u={lighter:`fontLighter`,light:`fontLight`,regular:`fontRegular`,medium:`fontMedium`,bold:`fontBold`,bolder:`fontBolder`},d={wrap:`textWrap`,noWrap:`textNoWrap`},f=({size:e,color:t,weight:n,italic:r,uppercase:a,wrap:s,className:f})=>(0,o.useMemo)(()=>{let o=[];return e&&o.push(l[e]),n&&o.push(u[n]),s&&o.push(d[s]),r&&o.push(`fontItalic`),a&&o.push(`textUppercase`),t&&o.push(c[t]),i(...o,f)},[e,n,t,r,a,s,f]),p=({children:e,as:t,style:n,...r})=>{let i=f(r);return(0,s.jsx)(t||`span`,{className:i,style:n,children:e})},p.__docgenInfo={description:``,methods:[],displayName:`Text`,props:{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:``},color:{required:!1,tsType:{name:`union`,raw:`"primary" | "secondary" | "muted" | "error" | "warning" | "success" | "info" | "brand" | "accent"`,elements:[{name:`literal`,value:`"primary"`},{name:`literal`,value:`"secondary"`},{name:`literal`,value:`"muted"`},{name:`literal`,value:`"error"`},{name:`literal`,value:`"warning"`},{name:`literal`,value:`"success"`},{name:`literal`,value:`"info"`},{name:`literal`,value:`"brand"`},{name:`literal`,value:`"accent"`}]},description:``},weight:{required:!1,tsType:{name:`union`,raw:`"lighter" | "light" | "regular" | "medium" | "bold" | "bolder"`,elements:[{name:`literal`,value:`"lighter"`},{name:`literal`,value:`"light"`},{name:`literal`,value:`"regular"`},{name:`literal`,value:`"medium"`},{name:`literal`,value:`"bold"`},{name:`literal`,value:`"bolder"`}]},description:``},italic:{required:!1,tsType:{name:`boolean`},description:``},uppercase:{required:!1,tsType:{name:`boolean`},description:``},wrap:{required:!1,tsType:{name:`union`,raw:`"wrap" | "noWrap"`,elements:[{name:`literal`,value:`"wrap"`},{name:`literal`,value:`"noWrap"`}]},description:``},className:{required:!1,tsType:{name:`string`},description:``},style:{required:!1,tsType:{name:`CSSProperties`},description:``},children:{required:!0,tsType:{name:`ReactReactNode`,raw:`React.ReactNode`},description:``},as:{required:!1,tsType:{name:`union`,raw:`"code" | "span" | "p" | "div" | "h2" | "h3" | "h4" | "h5" | "h6"`,elements:[{name:`literal`,value:`"code"`},{name:`literal`,value:`"span"`},{name:`literal`,value:`"p"`},{name:`literal`,value:`"div"`},{name:`literal`,value:`"h2"`},{name:`literal`,value:`"h3"`},{name:`literal`,value:`"h4"`},{name:`literal`,value:`"h5"`},{name:`literal`,value:`"h6"`}]},description:``}}}})))()}export{m as n,p 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-BOYfiRbQ.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-DFQ7gHL7.js";import{a as p,i as m,n as h,r as g,t as _}from"./Textarea.stories-B_22Qe-e.js";function v(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(s,{of:g,parameters:{docs:{toc:!0}}}),`
|
|
2
2
|
`,(0,b.jsx)(u,{children:`Textarea`}),`
|
|
3
3
|
`,(0,b.jsx)(o,{children:`Многострочное текстовое поле для описаний, комментариев и заметок`}),`
|
|
4
4
|
`,(0,b.jsx)(t.p,{children:`Textarea уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
|
|
@@ -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-BOYfiRbQ.js";import{a as n,i as r}from"./utils-DUM89eIj.js";import{n as i,t as a}from"./ui.module-CiLQZm_L.js";import{c as o,l as s,o as c,u as l}from"./Input-Dmum9ojv.js";var u,d;function f(){return(f=e((()=>{u=`TjY2iu`,d={textarea:u}})))()}function p({label:e,description:t,className:r,disabled:a,size:o,value:s,onChange:u,error:f,onClearError:p,id:h,...g}){let{controlId:_,labelId:v,descriptionId:y,errorId:b,describedBy:x}=l({id:h,hasLabel:e!=null,hasDescription:!!t,hasError:!!f});return(0,m.jsx)(c,{label:e,description:t,disabled:a,required:g.required,size:o,error:f,controlId:_,labelId:v,descriptionId:y,errorId:b,children:(0,m.jsx)(`textarea`,{...g,id:_,disabled:a,value:s,"aria-invalid":!!f||void 0,"aria-labelledby":v,"aria-describedby":x,"data-invalid":f?``:void 0,className:n(i.uiControl,d.textarea,`scrollable`,r),onChange:e=>{u?.(e.target.value),f&&p&&p()}})})}var m;function h(){return(h=e((()=>{r(),o(),s(),a(),f(),m=t(),p.__docgenInfo={description:`Многострочное текстовое поле для ввода свободного текста. Поддерживает подпись, описание, ошибки и единый визуальный стиль формы.`,methods:[],displayName:`Textarea`,props:{label:{required:!1,tsType:{name:`ReactNode`},description:``},description:{required:!1,tsType:{name:`string`},description:``},placeholder:{required:!1,tsType:{name:`string`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},size:{required:!1,tsType:{name:`union`,raw:`"xs" | "sm" | "md" | "lg" | "xl"`,elements:[{name:`literal`,value:`"xs"`},{name:`literal`,value:`"sm"`},{name:`literal`,value:`"md"`},{name:`literal`,value:`"lg"`},{name:`literal`,value:`"xl"`}]},description:``},value:{required:!0,tsType:{name:`V`},description:"Если начальное состояние может быть `null | undefined`\nзначит `onChange` тоже должен ументь сбрасывать.\nПоэтому такой контрол явно должен передавать `UiBaseProps<AnyType | undefined>`"},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: T) => void`,signature:{arguments:[{type:{name:`C`},name:`value`}],return:{name:`void`}}},description:``},error:{required:!1,tsType:{name:`string`},description:``},onClearError:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``}},composes:[`Omit`]}})))()}export{h as n,p as t};
|
package/storybook-static/assets/{Textarea.stories-B5YnG6Hg.js → Textarea.stories-B_22Qe-e.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{n}from"./iframe-
|
|
1
|
+
import{n as e,r as t}from"./rolldown-runtime-C0FnF6B9.js";import{n}from"./iframe-BOYfiRbQ.js";import{n as r,t as i}from"./createControlledStoryRender-DHsyXc1B.js";import{n as a,t as o}from"./Textarea-BbNW9GUS.js";var s=t({Controlled:()=>d,Disabled:()=>p,WithValue:()=>f,__namedExportsOrder:()=>m,default:()=>u}),c,l,u,d,f,p,m;function h(){return(h=e((()=>{r(),a(),c=n(),l=i((e,t)=>(0,c.jsx)(o,{...e,value:e.value??``,onChange:n=>{e.onChange?.(n),t({value:n})},onClearError:()=>{e.onClearError?.(),t({error:void 0})}})),u={title:`Shared/UI/Textarea`,component:o,args:{label:`Комментарий`,description:`Оставьте примечание к документу.`,placeholder:`Введите текст...`,disabled:!1,value:``,onChange:()=>void 0},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Заголовок текстовой области.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},placeholder:{description:`Плейсхолдер поля ввода.`,control:`text`},value:{description:`Текущее значение текстовой области.`,control:`text`},onChange:{description:`Вызывается при изменении текста.`,control:!1},error:{description:`Текст ошибки под полем.`,control:`text`},onClearError:{description:`Вызывается при вводе для сброса внешней ошибки.`,control:!1},disabled:{description:`Блокирует редактирование.`,control:`boolean`},size:{description:`Размер поля и подписи.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]}}},d={args:{value:`Первичный комментарий`},render:l},f={args:{value:`Шаблонный текст для редактирования.`},render:l},p={args:{disabled:!0,value:`Редактирование недоступно.`},render:l},d.parameters={...d.parameters,docs:{...d.parameters?.docs,source:{originalSource:`{
|
|
2
2
|
args: {
|
|
3
3
|
value: "Первичный комментарий"
|
|
4
4
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{t}from"./react-C21x__mS.js";import{n}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-C0FnF6B9.js";import{t}from"./react-C21x__mS.js";import{n}from"./iframe-BOYfiRbQ.js";import{a as r,i}from"./utils-DUM89eIj.js";import{b as a,g as o}from"./odata-service-B5w4YBao-BW9QLSrS.js";import{m as s,y as c}from"./formatters-CVj-3Vn0-BFaHJqZL.js";import{i as l,r as u}from"./date-segments-D3HouZ37.js";function d(e=0,t=0){return s(S,C,w,e,t,0,0)}function f(e=`date-time`){return e===`time`?x:b}function p(e,t=`date-time`){if(e==null)return null;let n=o(e);return n?t===`time`?d(n.getHours(),n.getMinutes()):n:null}function m(e,t,n,r=`date-time`){let i=p(e,r);if(!i)return!1;if(r===`time`){let e=i.getHours()*60+i.getMinutes(),r=t?p(t,`time`):null,a=n?p(n,`time`):null;return!(r&&e<r.getHours()*60+r.getMinutes()||a&&e>a.getHours()*60+a.getMinutes())}return!(t&&i<t||n&&i>n)}function h(e,t){let n=p(t),r=n?.getHours()??0,i=n?.getMinutes()??0;return s(e.getFullYear(),e.getMonth(),e.getDate(),r,i,0,0)}function g(e,t,n,r=`date-time`){return r===`time`?d(t,n):s(e.getFullYear(),e.getMonth(),e.getDate(),t,n,0,0)}function _(e,t,n=`date-time`){return n===`time`?p(e,`time`)??d():p(e,n)??t}function v(e,t,n,r=`date-time`){let i=p(e,r)??e,a=t?p(t,r):null,o=n?p(n,r):null,s=!!a&&i.getFullYear()===a.getFullYear()&&i.getMonth()===a.getMonth()&&i.getDate()===a.getDate(),c=!!o&&i.getFullYear()===o.getFullYear()&&i.getMonth()===o.getMonth()&&i.getDate()===o.getDate(),l=s?a.getHours():0,u=c?o.getHours():23,d=s&&l===u?a.getMinutes():0,f=c&&l===u?o.getMinutes():59,m=l>u||l===u&&d>f;return{disabled:m,minHour:l,maxHour:u,minMinuteByHour:e=>m?0:s&&e===l?a.getMinutes():0,maxMinuteByHour:e=>m?59:c&&e===u?o.getMinutes():59}}function y(e,t,n,r,i,a=`date-time`){let o=v(e,r,i,a);if(o.disabled)return{hours:0,minutes:0};let s=Math.min(Math.max(t,o.minHour),o.maxHour),c=o.minMinuteByHour(s),l=o.maxMinuteByHour(s);return{hours:s,minutes:Math.min(Math.max(n,c),l)}}var b,x,S,C,w;function T(){return(T=e((()=>{u(),c(),a(),b=`dd.MM.yyyy HH:mm`,x=`HH:mm`,S=1970,C=0,w=1,l(x)})))()}function ee(e,t,n,r=`date-time`){let i=v(e,t,n,r),a=e.getHours(),o=e.getMinutes(),s=i.minMinuteByHour(a),c=i.maxMinuteByHour(a);return i.disabled?{disabled:!0,selectedHour:a,selectedMinute:o,hours:[],minutes:[]}:{disabled:!1,selectedHour:a,selectedMinute:o,hours:Array.from({length:i.maxHour-i.minHour+1},(e,t)=>i.minHour+t),minutes:Array.from({length:c-s+1},(e,t)=>s+t)}}function E(){return(E=e((()=>{T()})))()}function D(e,t){return t<=0||e<0?0:e>t-1?t-1:e}function te(e,t){return!Number.isFinite(e)||e<=0?t:Math.max(e,t)}function ne(e,t){return Math.max(1,Math.round(e/Math.max(1,t)))}function re(e,t){return Math.max(0,Math.round(e/2-t/2))}function O(e,t){return Math.max(0,Math.round(e*t))}function ie(e,t,n){return n<=0||t<=0?0:D(Math.round(e/t),n)}var k,A,j,M,N,P,F;function I(){return(I=e((()=>{k=`GLhdJ6`,A=`_2xLNL2`,j=`dgX32S`,M=`WfOtQ9`,N=`XIdSMi`,P=`_--Hsbk`,F={wheelPicker:k,viewport:A,scroller:j,items:M,item:N,selectionFrame:P}})))()}function L({items:e,value:t,onChange:n,ariaLabel:i,disabled:a,className:o,minHeight:s=B,visibleRows:c=V,formatItem:l,getItemKey:u}){let d=(0,R.useRef)(null),f=(0,R.useRef)(null),p=(0,R.useRef)(null),m=(0,R.useMemo)(()=>Math.max(0,e.findIndex(e=>Object.is(e,t))),[e,t]),[h,g]=(0,R.useState)(0),_=te(h,s),v=ne(_,c),y=re(_,v),b=(0,R.useRef)(m),x=(0,R.useCallback)(e=>Math.round(e.clientHeight),[]),S=(0,R.useCallback)(()=>{let t=f.current;if(!t||e.length===0)return;let r=ie(t.scrollTop,v,e.length);t.scrollTo({top:O(r,v),behavior:`smooth`}),r!==b.current&&(b.current=r,n(e[r]))},[v,e,n]),C=(0,R.useCallback)(()=>{p.current!==null&&window.clearTimeout(p.current),p.current=window.setTimeout(()=>{p.current=null,S()},H)},[S]);(0,R.useEffect)(()=>{let e=d.current;if(!e||typeof ResizeObserver>`u`)return;let t=e=>{g(t=>t===e?t:e)},n=new ResizeObserver(n=>{let r=n[0],i=Math.round(r?.contentRect.height??x(e));t(i)});return n.observe(e),t(x(e)),()=>n.disconnect()},[x]),(0,R.useEffect)(()=>{let t=f.current;if(!t||e.length===0)return;let n=D(m,e.length);b.current=n,t.scrollTo({top:O(n,v),behavior:`auto`})},[v,e.length,m]),(0,R.useEffect)(()=>{let e=f.current;if(!e)return;let t=()=>{a||C()},n=t=>{a||(t.preventDefault(),e.scrollTop+=t.deltaY,C())};return e.addEventListener(`scroll`,t,{passive:!0}),e.addEventListener(`wheel`,n,{passive:!1}),()=>{e.removeEventListener(`scroll`,t),e.removeEventListener(`wheel`,n)}},[a,e,n,C]),(0,R.useEffect)(()=>()=>{p.current!==null&&window.clearTimeout(p.current)},[]);let w=t=>{if(a||e.length===0||t.key!==`ArrowUp`&&t.key!==`ArrowDown`)return;t.preventDefault();let r=t.key===`ArrowUp`?-1:1,i=D(m+r,e.length);i!==m&&(b.current=i,n(e[i]))},T={"--wheel-picker-min-height":`${s}px`,"--wheel-picker-viewport-height":`${_}px`,"--wheel-picker-item-height":`${v}px`,"--wheel-picker-edge-padding":`${y}px`};return(0,z.jsx)(`div`,{ref:d,className:r(F.wheelPicker,o),style:T,children:(0,z.jsxs)(`div`,{className:F.viewport,children:[(0,z.jsx)(`div`,{ref:f,className:F.scroller,role:`listbox`,tabIndex:a?-1:0,"aria-label":i,"aria-disabled":a||void 0,onKeyDown:w,children:(0,z.jsx)(`div`,{className:F.items,children:e.map((e,t)=>{let r=t===m;return(0,z.jsx)(`button`,{type:`button`,role:`option`,"aria-selected":r,className:F.item,"data-selected":r?``:void 0,disabled:a,onClick:()=>{b.current=t,n(e)},children:l?.(e)??String(e)},u?.(e,t)??t)})})}),(0,z.jsx)(`div`,{className:F.selectionFrame,"aria-hidden":`true`})]})})}var R,z,B,V,H;function U(){return(U=e((()=>{R=t(),i(),I(),z=n(),B=192,V=7,H=96,L.__docgenInfo={description:`Внутренний wheel-picker со snap-кареткой по центру и блокировкой page scroll.`,methods:[],displayName:`WheelPicker`,props:{items:{required:!0,tsType:{name:`unknown`},description:``},value:{required:!0,tsType:{name:`T`},description:``},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: T) => void`,signature:{arguments:[{type:{name:`T`},name:`value`}],return:{name:`void`}}},description:``},ariaLabel:{required:!0,tsType:{name:`string`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},className:{required:!1,tsType:{name:`string`},description:``},minHeight:{required:!1,tsType:{name:`number`},description:``,defaultValue:{value:`192`,computed:!1}},visibleRows:{required:!1,tsType:{name:`number`},description:``,defaultValue:{value:`7`,computed:!1}},formatItem:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(item: T) => ReactNode`,signature:{arguments:[{type:{name:`T`},name:`item`}],return:{name:`ReactNode`}}},description:``},getItemKey:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(item: T, index: number) => Key`,signature:{arguments:[{type:{name:`T`},name:`item`},{type:{name:`number`},name:`index`}],return:{name:`Key`}}},description:``}}}})))()}var W,G,K,q,J,Y,X;function Z(){return(Z=e((()=>{W=`_5-SSnO`,G=`s1NHua`,K=`KQC9-8`,q=`WDu02W`,J=`_9mEhfD`,Y=`N-Fzjk`,X={timePanel:W,hint:G,fields:K,field:q,label:J,wheel:Y}})))()}function Q({value:e,disabled:t,minDate:n,maxDate:r,mode:i=`date-time`,onChange:a}){let o=ee(e,n,r,i),s=e=>String(e).padStart(2,`0`);return o.disabled?(0,$.jsx)(`div`,{className:X.timePanel,children:(0,$.jsx)(`p`,{className:X.hint,children:`Для выбранного дня нет доступного времени в заданном диапазоне.`})}):(0,$.jsx)(`div`,{className:X.timePanel,children:(0,$.jsxs)(`div`,{className:X.fields,children:[(0,$.jsxs)(`label`,{className:X.field,children:[(0,$.jsx)(`span`,{className:X.label,children:`Часы`}),(0,$.jsx)(L,{className:X.wheel,items:o.hours,value:o.selectedHour,onChange:e=>a(e,o.selectedMinute),ariaLabel:`Выбор часов`,disabled:t,formatItem:s})]}),(0,$.jsxs)(`label`,{className:X.field,children:[(0,$.jsx)(`span`,{className:X.label,children:`Минуты`}),(0,$.jsx)(L,{className:X.wheel,items:o.minutes,value:o.selectedMinute,onChange:e=>a(o.selectedHour,e),ariaLabel:`Выбор минут`,disabled:t,formatItem:s})]})]})})}var $;function ae(){return(ae=e((()=>{U(),E(),Z(),$=n(),Q.__docgenInfo={description:`Переиспользуемая панель выбора времени поверх internal wheel-picker.`,methods:[],displayName:`TimePanel`,props:{value:{required:!0,tsType:{name:`Date`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},minDate:{required:!1,tsType:{name:`Date`},description:``},maxDate:{required:!1,tsType:{name:`Date`},description:``},mode:{required:!1,tsType:{name:`union`,raw:`"date-time" | "time"`,elements:[{name:`literal`,value:`"date-time"`},{name:`literal`,value:`"time"`}]},description:``,defaultValue:{value:`"date-time"`,computed:!1}},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(hours: number, minutes: number) => void`,signature:{arguments:[{type:{name:`number`},name:`hours`},{type:{name:`number`},name:`minutes`}],return:{name:`void`}}},description:``}}}})))()}export{f as a,h as c,_ as d,d as i,g as l,ae as n,T as o,y as r,m as s,Q as t,p as u};
|
package/storybook-static/assets/{TimePanel.stories-dMXzRVpT.js → TimePanel.stories-yxNANrSL.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-BOYfiRbQ.js";import{n,t as r}from"./TimePanel-9AlN21FL.js";function i(e){let[,t]=o(),n=e.value;return(0,a.jsx)(`div`,{style:{width:320,minHeight:280},children:(0,a.jsx)(r,{...e,value:n,onChange:(r,i)=>{e.onChange(r,i),t({value:new Date(n.getFullYear(),n.getMonth(),n.getDate(),r,i,0,0)})}})})}var a,o,s,c,l,u,d;function f(){return(f=e((()=>{n(),a=t(),{useArgs:o}=__STORYBOOK_MODULE_PREVIEW_API__,{fn:s}=__STORYBOOK_MODULE_TEST__,c={title:`Shared/UI/Internal/DateTime/TimePanel`,component:r,args:{value:new Date(2026,2,10,12,30,0,0),onChange:s(),disabled:!1,mode:`date-time`},parameters:{atomicCanvas:!0,layout:`centered`},argTypes:{value:{description:`Текущая дата, из которой панель берёт календарный день и время.`,control:!1},disabled:{description:`Блокирует оба wheel-picker-а.`,control:`boolean`},minDate:{description:`Нижняя граница доступного времени для выбранного дня.`,control:`date`},maxDate:{description:`Верхняя граница доступного времени для выбранного дня.`,control:`date`},mode:{description:`Режим вычисления доступного времени.`,control:`inline-radio`,options:[`date-time`,`time`]},onChange:{description:`Вызывается с выбранными часами и минутами.`,control:!1}}},l={render:function(e){return(0,a.jsx)(i,{...e})}},u={render:function(e){return(0,a.jsx)(i,{...e})},args:{value:new Date(2026,2,10,9,30,0,0),minDate:new Date(2026,2,10,9,15,0,0),maxDate:new Date(2026,2,10,18,30,0,0)}},l.parameters={...l.parameters,docs:{...l.parameters?.docs,source:{originalSource:`{
|
|
2
2
|
render: function Render(args) {
|
|
3
3
|
return <TimePanelStoryCanvas {...args} />;
|
|
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-BOYfiRbQ.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-DFQ7gHL7.js";import{a as p,i as m,n as h,r as g,t as _}from"./Toggle.stories-BGIwKyic.js";function v(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(s,{of:m,parameters:{docs:{toc:!0}}}),`
|
|
2
2
|
`,(0,b.jsx)(u,{children:`Toggle`}),`
|
|
3
3
|
`,(0,b.jsx)(o,{children:`Переключаемый булев контрол для локальных режимов и простых опций`}),`
|
|
4
4
|
`,(0,b.jsx)(t.p,{children:`Toggle уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
|