@ryuzaki13/react-foundation-ui 1.8.3 → 1.8.5
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/context-menu-C8sA7xCN.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/tree-select/TreePickerBase.d.ts +3 -2
- package/dist/tree-select/TreePickerBase.d.ts.map +1 -1
- package/dist/tree-select/index.js +323 -269
- package/dist/tree-select/index.js.map +1 -1
- package/dist/tree-select/model/treeUtils.d.ts +1 -1
- package/dist/tree-select/model/treeUtils.d.ts.map +1 -1
- package/package.json +1 -1
- package/storybook-static/assets/{Badge-Wsl03RiZ.js → Badge-CzxxuE7D.js} +1 -1
- package/storybook-static/assets/{Badge.stories-C5FJ05zx.js → Badge.stories-RaI7qvpZ.js} +1 -1
- package/storybook-static/assets/{BadgeList-DHcmb--r.js → BadgeList-B7cF3h_F.js} +1 -1
- package/storybook-static/assets/{Button-9Vdg-8pF.js → Button-6z1R7ZA8.js} +1 -1
- package/storybook-static/assets/{Button-CEzU6vMY.js → Button-Cjmm8oDV.js} +1 -1
- package/storybook-static/assets/{Button.stories-BfDF7T_l.js → Button.stories-B5fUA2Gu.js} +1 -1
- package/storybook-static/assets/{CalendarView-DCLQ6cmR.js → CalendarView-Dlt0f4Jr.js} +1 -1
- package/storybook-static/assets/{CheckBox-UlZDcbgz.js → CheckBox-BOSDcvCd.js} +1 -1
- package/storybook-static/assets/{CheckBox-BJ3STl44.js → CheckBox-L4324ZCs.js} +1 -1
- package/storybook-static/assets/{CheckBox.stories-Pt5RIIb4.js → CheckBox.stories-DALRNTV0.js} +1 -1
- package/storybook-static/assets/{Color-6AOWCN3U-3Ir6qwTW.js → Color-6AOWCN3U-UmlmbwVs.js} +1 -1
- package/storybook-static/assets/{ContextMenu-teXimUtT.js → ContextMenu-BOez7LwB.js} +1 -1
- package/storybook-static/assets/ContextMenu-CFPrlO2u.css +1 -0
- package/storybook-static/assets/{ContextMenu-CU7qp0QU.js → ContextMenu-giZ56GIC.js} +1 -1
- package/storybook-static/assets/{ContextMenu.stories-BhkVXZCg.js → ContextMenu.stories-BnoaSq3Q.js} +1 -1
- package/storybook-static/assets/{CustomOptionButton-BWYYtI_M.js → CustomOptionButton-C1VgtQgI.js} +1 -1
- package/storybook-static/assets/{DateInput-CRNvZef4.js → DateInput-A3468S6P.js} +1 -1
- package/storybook-static/assets/{DateInput-B0xrPmg8.js → DateInput-oWtyLo3Q.js} +1 -1
- package/storybook-static/assets/{DateInput.stories-CrMRn_FQ.js → DateInput.stories-BeGG7Vzf.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-B96SINg3.js → DateRangePresetSelect--h5MdeWg.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-BGdt7rCz.js → DateRangePresetSelect-DbKRsjNX.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect.stories-B20eqYGr.js → DateRangePresetSelect.stories-BS1ll9RK.js} +1 -1
- package/storybook-static/assets/{Detail-CUNNfYz6.js → Detail-FEi6FSkD.js} +1 -1
- package/storybook-static/assets/{Detail.stories-DPp7roXv.js → Detail.stories-Dy2yKBDx.js} +1 -1
- package/storybook-static/assets/{Dialog-DdONtJUb.js → Dialog-C7Zfcyjf.js} +1 -1
- package/storybook-static/assets/{Dialog-B7eTlIWU.js → Dialog-CXnHtk_h.js} +1 -1
- package/storybook-static/assets/{Dialog.stories-CF6Q0tJ-.js → Dialog.stories-BeUqdA_f.js} +1 -1
- package/storybook-static/assets/{Disclosure-BI4KMSDK.js → Disclosure-BqsgTrM0.js} +1 -1
- package/storybook-static/assets/{Disclosure.stories-BaTneJlv.js → Disclosure.stories-D3LzXhet.js} +1 -1
- package/storybook-static/assets/{DisclosureGroup-Dx2-SHha.js → DisclosureGroup-BAF5Untb.js} +1 -1
- package/storybook-static/assets/{DocsRenderer-JROSPFPF-mMjwDILp.js → DocsRenderer-JROSPFPF-luRRUpJ_.js} +1 -1
- package/storybook-static/assets/{DropZone-D93x3skJ.js → DropZone-B-YA4zyu.js} +1 -1
- package/storybook-static/assets/{DropZone-BizNinsQ.js → DropZone-DKrOIaeH.js} +1 -1
- package/storybook-static/assets/{DropZone.stories-Dn72HUME.js → DropZone.stories-wf2ubfGc.js} +1 -1
- package/storybook-static/assets/{DropdownMenu-Bpjyamf_.js → DropdownMenu-BiWUESj0.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel-Q4xXTfPB.js → ExpandableActionPanel-Dtfw5TWs.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel.stories-Dr40xqrz.js → ExpandableActionPanel.stories-BOdw0CLN.js} +1 -1
- package/storybook-static/assets/{Flex-Qj0CmbNT.js → Flex-BaSYiAMD.js} +1 -1
- package/storybook-static/assets/{Flex.stories-CMB4ZAgy.js → Flex.stories-CD_e9R5B.js} +1 -1
- package/storybook-static/assets/{FloatingPopover-jH57LEGX.js → FloatingPopover-C65hSmop.js} +1 -1
- package/storybook-static/assets/{FormattedTableCell-vbqJ5gib.js → FormattedTableCell-BdA15EY1.js} +1 -1
- package/storybook-static/assets/{Grid-AZBb1w5n.js → Grid-8eLmW2AB.js} +1 -1
- package/storybook-static/assets/{Grid.stories-BaeYzAP-.js → Grid.stories-DULQOmbC.js} +1 -1
- package/storybook-static/assets/{ImageCropper.stories-Da9IaNLO.js → ImageCropper.stories-C1O-Zv4X.js} +1 -1
- package/storybook-static/assets/{ImageRenderer-CNFqjqvE.js → ImageRenderer-BOyGnl1v.js} +1 -1
- package/storybook-static/assets/{ImageRenderer.stories-8pPWqLHi.js → ImageRenderer.stories-Cms0kMXA.js} +1 -1
- package/storybook-static/assets/{ImageView.stories-P0OBwcHv.js → ImageView.stories-CUR6bAyn.js} +1 -1
- package/storybook-static/assets/{ImageViewer.stories-A8gBQaCk.js → ImageViewer.stories-BwJKAIT7.js} +2 -2
- package/storybook-static/assets/{ImageViewerRuntime-C2LHl9xa.js → ImageViewerRuntime-CzkvEHax.js} +1 -1
- package/storybook-static/assets/{Input-X5FLaExp.js → Input-B2_RznVE.js} +1 -1
- package/storybook-static/assets/{Input-LI8Ij2VV.js → Input-ebp78QN1.js} +1 -1
- package/storybook-static/assets/{Input.stories-r4hSNMWI.js → Input.stories-BKwTRsUL.js} +1 -1
- package/storybook-static/assets/{InputDateTime-B9IQGLxQ.js → InputDateTime-pK4mlxxm.js} +1 -1
- package/storybook-static/assets/{InputDateTime.stories-t-IFoW6A.js → InputDateTime.stories-J4Gd0DaU.js} +1 -1
- package/storybook-static/assets/{InputFile-YhjpMsir.js → InputFile-BYcgJx2f.js} +1 -1
- package/storybook-static/assets/{InputFile-yUYuRSfc.js → InputFile-D1x1T--f.js} +1 -1
- package/storybook-static/assets/{InputFile.stories-DvMCOp6p.js → InputFile.stories-DAYDiSFH.js} +1 -1
- package/storybook-static/assets/{InputFiles-Dq9QZAWM.js → InputFiles-C9HH7fIG.js} +1 -1
- package/storybook-static/assets/{InputFiles-b6Ne7Ph9.js → InputFiles-D7kcGvWK.js} +1 -1
- package/storybook-static/assets/{InputFiles.stories-Q7rdTg-e.js → InputFiles.stories-CJTwQutb.js} +1 -1
- package/storybook-static/assets/{InputFilesList-u59R9lsq.js → InputFilesList-ChI0hQ07.js} +1 -1
- package/storybook-static/assets/{InputImage-_b_bmfXz.js → InputImage-B3KFrWqa.js} +1 -1
- package/storybook-static/assets/{InputImage-BTap4i1_.js → InputImage-C0-U_QHU.js} +1 -1
- package/storybook-static/assets/{InputImage.stories-F08TWbxk.js → InputImage.stories-QEtqeok5.js} +1 -1
- package/storybook-static/assets/{InteractiveComponents-CpJd5e3W.js → InteractiveComponents-DB71eb-1.js} +1 -1
- package/storybook-static/assets/{InteractiveComponents.stories-CM9yNzcF.js → InteractiveComponents.stories-DdZpmMis.js} +1 -1
- package/storybook-static/assets/{LayoutPicker-vwoAIGrk.js → LayoutPicker-CicZY4X9.js} +1 -1
- package/storybook-static/assets/{LayoutPicker-8Q1MpMYR.js → LayoutPicker-DBEYC_LA.js} +1 -1
- package/storybook-static/assets/{LayoutPicker.stories-BW8B8i8S.js → LayoutPicker.stories-BFtP0gOy.js} +1 -1
- package/storybook-static/assets/{Listbox-Cf_DMAva.js → Listbox-B0Nqys9f.js} +1 -1
- package/storybook-static/assets/{Listbox-D7r9R1Of.js → Listbox-CLP0Cpin.js} +1 -1
- package/storybook-static/assets/{Listbox.stories-CxYyfkFU.js → Listbox.stories-BHeIn0H8.js} +1 -1
- package/storybook-static/assets/{Modal-BaprwyBJ.js → Modal-D4jDp5U4.js} +1 -1
- package/storybook-static/assets/{Modal.stories-Rn_bgNdm.js → Modal.stories-CMHJdaj1.js} +1 -1
- package/storybook-static/assets/{ModalManagerProvider-BoJChAx2.js → ModalManagerProvider-D8tCMe07.js} +1 -1
- package/storybook-static/assets/{MultiSelect-CU7avopN.js → MultiSelect-Bmb0qTzT.js} +1 -1
- package/storybook-static/assets/{MultiSelect-CILXhKyj.js → MultiSelect-y6FjtCjy.js} +1 -1
- package/storybook-static/assets/{MultiSelect.stories-DFtFExi3.js → MultiSelect.stories-B9TZNWng.js} +1 -1
- package/storybook-static/assets/{NoData-u6T3MI60.js → NoData-CzlhZzHI.js} +1 -1
- package/storybook-static/assets/{NotificationsHost-63IJh9Kr.js → NotificationsHost-AE9gk5zq.js} +1 -1
- package/storybook-static/assets/{NotificationsHost.stories-CRKVOYWB.js → NotificationsHost.stories-Bu0__u38.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect-tfqbyVgv.js → ODataMultiSelect-DJ6zie6W.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect.stories-DuC1gg-Q.js → ODataMultiSelect.stories-BjgJGbWL.js} +1 -1
- package/storybook-static/assets/{ODataSelect-0ax3OIQy.js → ODataSelect-V1JJpKB9.js} +1 -1
- package/storybook-static/assets/{ODataSelect.stories-aGZEvBIO.js → ODataSelect.stories-B2INiDvW.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect-C4ZN4DaL.js → ODataTreeMultiSelect-BKMrgz8e.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect.stories-BThoYYsE.js → ODataTreeMultiSelect.stories-CjLPeqio.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect-DvrUSJsi.js → ODataTreeSelect-C2iGJdYk.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect.stories-B9582VZ6.js → ODataTreeSelect.stories-ReyoXlcX.js} +1 -1
- package/storybook-static/assets/{OneStepScroller-BoIh7KcH.js → OneStepScroller-knlVIvl2.js} +1 -1
- package/storybook-static/assets/{Option-DqmRqyOQ.js → Option-KVcu4DcX.js} +1 -1
- package/storybook-static/assets/{OptionButton-CQVIwI2y.js → OptionButton-D2ZcZtPU.js} +1 -1
- package/storybook-static/assets/{PeriodSelect-Dw3EsMrL.js → PeriodSelect-Bm_VPE_5.js} +1 -1
- package/storybook-static/assets/{PeriodSelect-CdTxjZC3.js → PeriodSelect-BsET8TST.js} +1 -1
- package/storybook-static/assets/{PeriodSelect.stories-DYinImmY.js → PeriodSelect.stories-Due2DawD.js} +1 -1
- package/storybook-static/assets/{PickerTriggerActions-B0z5qfFF.js → PickerTriggerActions-KgIZBVSt.js} +1 -1
- package/storybook-static/assets/{Popover-0xwjVe6K.js → Popover-Cq1q1mW3.js} +1 -1
- package/storybook-static/assets/{Popover-ijEoQcUp.js → Popover-D38IExq9.js} +1 -1
- package/storybook-static/assets/{Popover.stories-CMNjjwu5.js → Popover.stories-B5MXPFi2.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-DysqM_NV.js → PresetRangeDateInput-C4iOgcKK.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-CdvdO4mf.js → PresetRangeDateInput-dWe-Zcrb.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput.stories-nVojLSRm.js → PresetRangeDateInput.stories-C8JiJCpi.js} +1 -1
- package/storybook-static/assets/{PresetSelect-mjBaMbt6.js → PresetSelect-CIqamiLP.js} +1 -1
- package/storybook-static/assets/{RadioButton-jB744vXz.js → RadioButton-CTA-WBmG.js} +1 -1
- package/storybook-static/assets/{RadioButton-CVGKMhGV.js → RadioButton-DfRRX6Id.js} +1 -1
- package/storybook-static/assets/{RadioButton.stories-CJsU4D3L.js → RadioButton.stories-D6MO9y2H.js} +1 -1
- package/storybook-static/assets/{RadioGroup-BGF3aoOc.js → RadioGroup-BAoD6ZDR.js} +1 -1
- package/storybook-static/assets/{RadioGroup-DbqvBGw3.js → RadioGroup-CiEUg_Oc.js} +1 -1
- package/storybook-static/assets/{RadioGroup.stories-Bkny6-9V.js → RadioGroup.stories-CCjYE-3G.js} +1 -1
- package/storybook-static/assets/{Scrollable-DZp3ByoS.js → Scrollable-ns4PHUAk.js} +1 -1
- package/storybook-static/assets/{Select-BJcT2K35.js → Select-Bj9NxEJa.js} +1 -1
- package/storybook-static/assets/{Select-CcuhYAW8.js → Select-D2aDjIb_.js} +1 -1
- package/storybook-static/assets/{Select.stories-BowB7kdj.js → Select.stories-zErlbrrD.js} +1 -1
- package/storybook-static/assets/{SerializableSelect-DRczsfxk.js → SerializableSelect-P7iNwTbc.js} +1 -1
- package/storybook-static/assets/{SerializableSelect.stories-BcYeXF_R.js → SerializableSelect.stories-DUAK_mo8.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-HDsmYVP2.js → SingleDateTimeInput-CkMMccYd.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-pHA1ci5g.js → SingleDateTimeInput-vvyw15zU.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput.stories-KUrLpnh_.js → SingleDateTimeInput.stories-CSW9M9hH.js} +1 -1
- package/storybook-static/assets/{Slider-XnQRU_In.js → Slider-CkUdrb57.js} +1 -1
- package/storybook-static/assets/{Slider-DaJGOEf-.js → Slider-Dftgrmfi.js} +1 -1
- package/storybook-static/assets/{Slider.stories-ByS4Bo7v.js → Slider.stories-zVUgi1Wb.js} +1 -1
- package/storybook-static/assets/{SliderInput-BjyCba0D.js → SliderInput-BINdZsru.js} +1 -1
- package/storybook-static/assets/{SliderInput-Dan5pyQh.js → SliderInput-DnVNzY_q.js} +1 -1
- package/storybook-static/assets/{SliderInput.stories-d4F5pqct.js → SliderInput.stories-CfY1B4PZ.js} +1 -1
- package/storybook-static/assets/{Sortable-Bdzx4D0R.js → Sortable-BnixGZFs.js} +1 -1
- package/storybook-static/assets/{Sortable.stories-BIhgYQ1m.js → Sortable.stories-DFzv9lnf.js} +1 -1
- package/storybook-static/assets/{Splitter-B3hepEkw.js → Splitter-BtDFBrQ3.js} +1 -1
- package/storybook-static/assets/{Splitter.stories-L6R3ImTr.js → Splitter.stories-CipjzPJH.js} +1 -1
- package/storybook-static/assets/{StateSelect-CylM2NVF.js → StateSelect-DagWIbnr.js} +1 -1
- package/storybook-static/assets/{StateSelect-C4oHSG2B.js → StateSelect-J5sxWYjq.js} +1 -1
- package/storybook-static/assets/{StateSelect.stories-Djw_nuLJ.js → StateSelect.stories-DDIqhm2K.js} +1 -1
- package/storybook-static/assets/{StringToggle.stories-pqZzNPRQ.js → StringToggle.stories-CkYGiOe-.js} +1 -1
- package/storybook-static/assets/{Switch-BK5DQYpV.js → Switch-B5TS1mrR.js} +1 -1
- package/storybook-static/assets/{Switch-BkHwzkeD.js → Switch-N-Lxev-q.js} +1 -1
- package/storybook-static/assets/{Switch.stories-BG1MHajd.js → Switch.stories-HNOx5mPv.js} +1 -1
- package/storybook-static/assets/{Table-BQPiMPmF.js → Table-DTzmRzDD.js} +1 -1
- package/storybook-static/assets/{Table.stories-b5gmGDu_.js → Table.stories-DY5NfoVd.js} +1 -1
- package/storybook-static/assets/{Tabs-B13rDpZt.js → Tabs-Bc5dgtoT.js} +1 -1
- package/storybook-static/assets/{Tabs.stories-D0sg-2Nx.js → Tabs.stories-BgLnKKFv.js} +1 -1
- package/storybook-static/assets/{TabsBox-DZwTlYNa.js → TabsBox-sTVLs8k0.js} +1 -1
- package/storybook-static/assets/{TagInput-RYhIr0kM.js → TagInput-yPLHo0PJ.js} +1 -1
- package/storybook-static/assets/{TagInput.stories-7iTWdjmj.js → TagInput.stories-B4C-230C.js} +1 -1
- package/storybook-static/assets/{Text-5-YdhIB8.js → Text-C2-mep6V.js} +1 -1
- package/storybook-static/assets/{Textarea-0L2M-xFG.js → Textarea-B7pXYTGv.js} +1 -1
- package/storybook-static/assets/{Textarea-pQp1ju2W.js → Textarea-bqvYs13v.js} +1 -1
- package/storybook-static/assets/{Textarea.stories-pJFWbXcf.js → Textarea.stories-BSSaqnZI.js} +1 -1
- package/storybook-static/assets/{TimePanel-DlfW-4Rv.js → TimePanel-pMBlR0ZN.js} +1 -1
- package/storybook-static/assets/{TimePanel.stories-DpXHb66k.js → TimePanel.stories-Cn5IEcsV.js} +1 -1
- package/storybook-static/assets/{Toggle-CwgQ0NbP.js → Toggle-E4xV63pY.js} +1 -1
- package/storybook-static/assets/{Toggle-Q04RQyAN.js → Toggle-h6ESIcwX.js} +1 -1
- package/storybook-static/assets/{Toggle.stories-DOYwhorJ.js → Toggle.stories-9uqFBAAr.js} +1 -1
- package/storybook-static/assets/TreeMultiSelect-DBGlliij.js +1 -0
- package/storybook-static/assets/{TreeMultiSelect--Z9jdUna.js → TreeMultiSelect-J8Tlnv3Y.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect.stories-CSlNe1qA.js → TreeMultiSelect.stories-CYDuvIk7.js} +1 -1
- package/storybook-static/assets/TreePickerBase-BswrqgW3.js +76 -0
- package/storybook-static/assets/{TreeSelect-DMC-rviy.js → TreeSelect-B1Buti64.js} +1 -1
- package/storybook-static/assets/{TreeSelect-BMcChauO.js → TreeSelect-Jchj-RXf.js} +1 -1
- package/storybook-static/assets/{TreeSelect.stories-68LYkP9A.js → TreeSelect.stories-DzCqueCG.js} +1 -1
- package/storybook-static/assets/{TreeTable-DNArfw0m.js → TreeTable-oYCdUTsS.js} +1 -1
- package/storybook-static/assets/{TreeTable.stories-GybZTfJf.js → TreeTable.stories-L4FHah8x.js} +1 -1
- package/storybook-static/assets/{async-BpUNPciD.js → async-Bsdhj8g_.js} +1 -1
- package/storybook-static/assets/{blocks-CdL0FBl-.js → blocks-BA_1CXsr.js} +3 -3
- package/storybook-static/assets/{browserAndReact-DJiCma8q.js → browserAndReact-fXgh8QfO.js} +1 -1
- package/storybook-static/assets/{check-Bff_8tRJ.js → check-wNoLJyvD.js} +1 -1
- package/storybook-static/assets/{chevron-down-D9beWxJi.js → chevron-down-DjM4Yyml.js} +1 -1
- package/storybook-static/assets/{chevron-left-0YewhZTT.js → chevron-left-BT138_KT.js} +1 -1
- package/storybook-static/assets/{chevron-right-_-7FrDV5.js → chevron-right-DEvxOiq2.js} +1 -1
- package/storybook-static/assets/{chunk-W22LQPXL-O2d-a7Cd.js → chunk-W22LQPXL-B40Li12y.js} +1 -1
- package/storybook-static/assets/{circle-alert-Ch96LToC.js → circle-alert-C855gqBz.js} +1 -1
- package/storybook-static/assets/{circle-check-a4WDWsNJ.js → circle-check-BDVZ6tz8.js} +1 -1
- package/storybook-static/assets/{components-DdhcMCr2.js → components-DSUjzUVy.js} +3 -3
- package/storybook-static/assets/{contextMenu-BGjkv4UB.js → contextMenu-DCSPTQNQ.js} +1 -1
- package/storybook-static/assets/{download-CX1IvM3C.js → download-B3oJ9vHV.js} +1 -1
- package/storybook-static/assets/{filesAndExcel-dK5pwBOD.js → filesAndExcel-Bj4tkdkM.js} +1 -1
- package/storybook-static/assets/{floating-ui.react-CxLdvcYS.js → floating-ui.react-BewtdZNK.js} +1 -1
- package/storybook-static/assets/{formatters-j9sx7DvH.js → formatters-DYZ7voq3.js} +1 -1
- package/storybook-static/assets/{formatters-runtime-CHMYu4ZC.js → formatters-runtime-Ddmbt5yI.js} +1 -1
- package/storybook-static/assets/{foundationLib-C_06ZSSf.js → foundationLib-BFrQ5jez.js} +1 -1
- package/storybook-static/assets/{hooks-Bykafh9C.js → hooks-_jPrECht.js} +1 -1
- package/storybook-static/assets/iframe-C7ggO0sY.js +1 -0
- package/storybook-static/assets/{iframe-CIzkWNwp.js → iframe-Cq8y-8O_.js} +3 -3
- package/storybook-static/assets/{info-DmoUv3Za.js → info-CiT6g2aP.js} +1 -1
- package/storybook-static/assets/{odata-BOmzCjsk.js → odata-ClP2t_-O.js} +1 -1
- package/storybook-static/assets/{odataAndTables-CCmlxLmc.js → odataAndTables-Cjwl3uWE.js} +1 -1
- package/storybook-static/assets/{odataFetchFn-CTQe0sIR.js → odataFetchFn-C6ps_31t.js} +1 -1
- package/storybook-static/assets/{odataStoryFixtures-BSZ-qA-M.js → odataStoryFixtures-BcNo-Wxr.js} +1 -1
- package/storybook-static/assets/{persisted--WJ7KKPs.js → persisted-B6h1b3UG.js} +1 -1
- package/storybook-static/assets/{pureUtilities-GyB4PF6P.js → pureUtilities-CO1AJvbl.js} +1 -1
- package/storybook-static/assets/{react-BBjpR4Fr.js → react-D4nkG-T7.js} +1 -1
- package/storybook-static/assets/{refresh-cw-Bc5fTdGR.js → refresh-cw-DIeuulxV.js} +1 -1
- package/storybook-static/assets/{runtimeAndState-B2HA42QC.js → runtimeAndState-TcnlLgJx.js} +1 -1
- package/storybook-static/assets/{settings-2-Cm9uvgs-.js → settings-2-Gfu_uw21.js} +1 -1
- package/storybook-static/assets/{sortable-U9GPAzJm.js → sortable-DxRr6Rgq.js} +1 -1
- package/storybook-static/assets/{syntaxhighlighter-T5IQBZDB-Do8Zvv4y.js → syntaxhighlighter-T5IQBZDB-BIwIp4cU.js} +1 -1
- package/storybook-static/assets/{trash-2-D6H0PpPX.js → trash-2-CqKAB1Q0.js} +1 -1
- package/storybook-static/assets/{triangle-alert-5r13MQCo.js → triangle-alert-D4omsgZJ.js} +1 -1
- package/storybook-static/assets/{useODataSelectBase-bY7vnHqq.js → useODataSelectBase-DacE6X5d.js} +1 -1
- package/storybook-static/assets/{useODataTreeData-Dsp1d8h5.js → useODataTreeData-BEYyje5V.js} +1 -1
- package/storybook-static/assets/{usePickerQuery-BfayEntP.js → usePickerQuery-BRsuRnoH.js} +1 -1
- package/storybook-static/assets/{usePickerTriggerController-B1Mub3-v.js → usePickerTriggerController-DyFq40t1.js} +1 -1
- package/storybook-static/assets/{x-DpV1OV1-.js → x-zmaXH4MN.js} +1 -1
- package/storybook-static/iframe.html +2 -2
- package/storybook-static/project.json +1 -1
- package/storybook-static/assets/ContextMenu-BrYtLHPB.css +0 -1
- package/storybook-static/assets/TreeMultiSelect-CcBXMmXH.js +0 -1
- package/storybook-static/assets/TreePickerBase-BBHbtNFV.js +0 -34
- package/storybook-static/assets/iframe-sQ6b5u6U.js +0 -1
package/storybook-static/assets/{SliderInput.stories-d4F5pqct.js → SliderInput.stories-CfY1B4PZ.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-Cq8y-8O_.js";import{a as r,s as i}from"./odata-service-B6TxBSLm-BW9QLSrS.js";import{n as a,t as o}from"./createControlledStoryRender-DHsyXc1B.js";import{n as s,r as c,t as l}from"./SliderInput-DnVNzY_q.js";var u=t({Basic:()=>x,DecimalManualInput:()=>C,Disabled:()=>k,MarksSnap:()=>S,RangeInputMonthToDaysOutput:()=>E,RangeInputOpenMonthToDaysOutput:()=>D,RangeInputOpenWithoutExplicitMiddleOutput:()=>T,RangeInputPlain:()=>w,RangeInputReadonlyText:()=>O,__namedExportsOrder:()=>A,default:()=>y});function d(e){return o((t,n)=>(0,p.jsxs)(p.Fragment,{children:[(0,p.jsx)(s,{...t,onChange:e=>{t.onChange(e),n({value:e})},onClearError:()=>{t.onClearError?.(),n({error:void 0})}}),(0,p.jsx)(f,{value:t.value,field:e})]}))}function f({value:e,field:t,children:n}){let[i,a]=e??[null,null];return(0,p.jsxs)(`div`,{className:`marginTopMd`,children:[(0,p.jsx)(`div`,{className:`textSm сontent2`,children:`Preview фильтра`}),(0,p.jsx)(`pre`,{children:JSON.stringify({value:[i,a],filter:r(t,e)},null,2)}),n]})}var p,m,h,g,_,v,y,b,x,S,C,w,T,E,D,O,k,A;function j(){return(j=e((()=>{i(),c(),a(),p=n(),{fn:m}=__STORYBOOK_MODULE_TEST__,h=[{value:0,label:`0`},{value:20,label:`20`},{value:40,label:`40`},{value:60,label:`60`},{value:80,label:`80`},{value:100,label:`100`}],g=[{value:0,label:`Без нижней границы`,outputValue:null},{value:1,label:`1 мес.`},{value:3,label:`3 мес.`},{value:6,label:`6 мес.`},{value:12,label:`12 мес.`},{value:24,label:`24 мес.`},{value:25,label:`Без верхней границы`,outputValue:null}],_=[{value:1,label:`1 мес.`,outputValue:30},{value:3,label:`3 мес.`,outputValue:90},{value:6,label:`6 мес.`,outputValue:180},{value:12,label:`12 мес.`,outputValue:360},{value:24,label:`24 мес.`,outputValue:720}],v=[{value:0,label:`-`,outputValue:null},{value:1,label:`1м.`,outputValue:30},{value:3,label:`3м.`,outputValue:90},{value:6,label:`6м.`,outputValue:180},{value:12,label:`1г.`,outputValue:360},{value:18,label:`1.5г.`,outputValue:540},{value:24,label:`2г.`,outputValue:720},{value:25,label:`-`,outputValue:null}],y={title:`Shared/UI/SliderInput`,component:l,args:{label:`Порог`,value:12,onChange:m(),min:0,max:100,step:.5},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Подпись поля над числовым вводом.`,control:`text`},description:{description:`Пояснение под подписью поля.`,control:`text`},placeholder:{description:`Текст пустого поля или readonly-диапазона.`,control:`text`},value:{description:`Текущее значение; в range-сценариях — пара бизнес-границ.`,control:!1},onChange:{description:`Вызывается после commit ручного ввода или закрытия popover.`,control:!1},min:{description:`Минимальная координата шкалы в popover.`,control:`number`},max:{description:`Максимальная координата шкалы в popover.`,control:`number`},step:{description:`Шаг ручного ввода и слайдера, если не заданы marks.`,control:{type:`number`,min:0,step:.1}},marks:{description:`Дискретные точки popover-слайдера; range-marks могут возвращать outputValue.`,control:!1},marksPosition:{description:`Располагает marks пропорционально значению или равномерно по индексу.`,control:`inline-radio`,options:[`value`,`index`]},error:{description:`Текст внешней ошибки под полем.`,control:`text`},onClearError:{description:`Вызывается после успешного изменения значения.`,control:!1},size:{description:`Размер подписи и поля.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]},disabled:{description:`Блокирует ручной ввод и открытие popover.`,control:`boolean`}}},b=o((e,t)=>(0,p.jsx)(l,{...e,onChange:n=>{e.onChange(n),t({value:n})},onClearError:()=>{e.onClearError?.(),t({error:void 0})}})),x={render:b,args:{label:`Порог`,description:`Ручной ввод и popover slider работают с одним значением.`}},S={render:b,args:{label:`Готовый пресет`,value:40,marks:h}},C={render:b,args:{label:`Десятичное значение`,value:17.5,step:.5}},w={render:d(`progress`),args:{label:`Процент выполнения`,description:"RangeInput без outputValue: наружу отдаётся координата `value`.",min:0,max:100,marks:h,value:[20,80]}},T={render:d(`months`),args:{label:`Срок в месяцах`,description:"У крайних marks `outputValue:null`; у обычных marks outputValue не указан и берётся `value`.",min:0,max:25,marks:g,marksPosition:`index`,value:[null,12]}},E={render:d(`days`),args:{label:`Срок: месяцы на шкале, дни в фильтре`,description:`В поле и фильтре видны дни, а popover показывает месячные marks.`,min:1,max:24,marks:_,marksPosition:`index`,value:[90,360]}},D={render:d(`days`),args:{label:`Срок: открытые границы и дни в фильтре`,description:"Крайние marks отдают null, обычные marks отдают дни через `outputValue`.",min:0,max:25,marks:v,marksPosition:`index`,value:[null,720]}},O={render:d(`days`),args:{label:`Срок текстом`,description:`В поле выводится готовый текст по marks, а изменение через popover коммитится при закрытии.`,min:0,max:25,marks:v,marksPosition:`index`,value:[90,180],readonlyValueText:!0,placeholder:`Любой срок`},argTypes:{readonlyValueText:{description:`Показывает собранный текст вместо ручных сегментов диапазона.`,control:`boolean`}}},k={render:b,args:{label:`Недоступно`,description:`Поле и popover отключены.`,value:20,disabled:!0,marks:h}},x.parameters={...x.parameters,docs:{...x.parameters?.docs,source:{originalSource:`{
|
|
2
2
|
render: renderSliderInputStory,
|
|
3
3
|
args: {
|
|
4
4
|
label: "Порог",
|
|
@@ -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-Cq8y-8O_.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-BA_1CXsr.js";import{a as p,c as m,i as h,n as g,o as _,r as v,s as y,t as b}from"./Sortable.stories-DFzv9lnf.js";function x(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(s,{of:y,parameters:{docs:{toc:!0}}}),`
|
|
2
2
|
`,(0,C.jsx)(u,{children:`Sortable`}),`
|
|
3
3
|
`,(0,C.jsxs)(o,{children:[`Headless-набор для сортируемых коллекций на базе `,(0,C.jsx)(t.code,{children:`dnd-kit`}),` с поддержкой list, horizontal и grid-layout`]}),`
|
|
4
4
|
`,(0,C.jsxs)(t.p,{children:[(0,C.jsx)(t.code,{children:`Sortable`}),` не навязывает визуальный вид элементов и используется как композиционный слой поверх `,(0,C.jsx)(t.code,{children:`dnd-kit`}),`.
|
package/storybook-static/assets/{Sortable.stories-BIhgYQ1m.js → Sortable.stories-DFzv9lnf.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-DxRr6Rgq.js";import{n as s}from"./iframe-Cq8y-8O_.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-Cq8y-8O_.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-BA_1CXsr.js";import{a as p,i as m,n as h,o as g,r as _,t as v}from"./Splitter.stories-CipjzPJH.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-L6R3ImTr.js → Splitter.stories-CipjzPJH.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-Cq8y-8O_.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-Cq8y-8O_.js";import{a as r,i}from"./utils-DUM89eIj.js";import{d as a,l as o,y as s}from"./formatters-CBgrBeSA-DY6OIAc8.js";import{n as c,t as l}from"./Select-D2aDjIb_.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?: string;
|
|
3
3
|
icon?: ReactNode;
|
|
4
4
|
}`,signature:{properties:[{key:`label`,value:{name:`string`,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-Cq8y-8O_.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-BA_1CXsr.js";import{a as p,i as m,n as h,r as g,t as _}from"./StateSelect.stories-DDIqhm2K.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-Djw_nuLJ.js → StateSelect.stories-DDIqhm2K.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-BDVZ6tz8.js";import{i,n as a,r as o,t as s}from"./info-CiT6g2aP.js";import{n as c,t as l}from"./triangle-alert-D4omsgZJ.js";import{i as u,n as d,r as f}from"./iframe-Cq8y-8O_.js";import{n as p,t as m}from"./StateSelect-DagWIbnr.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-Cq8y-8O_.js";import{n,t as r}from"./Toggle-E4xV63pY.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 +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-BDVZ6tz8.js";import{i as a,n as o,r as s}from"./iframe-Cq8y-8O_.js";import{a as c,i as l}from"./utils-DUM89eIj.js";import{n as u,t as d}from"./ui.module-D4CuGr8r.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}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-Cq8y-8O_.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-BA_1CXsr.js";import{a as p,i as m,n as h,r as g,t as _}from"./Switch.stories-HNOx5mPv.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,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-B5TS1mrR.js";import{n as i}from"./iframe-Cq8y-8O_.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-Cq8y-8O_.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-BA_1CXsr.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-DY5NfoVd.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-Cq8y-8O_.js";import{J as i,X as a,Y as ee,_ as te,b as o,d as ne,g as re,n as ie,q as ae,s as oe}from"./odata-ClP2t_-O.js";import{i as se,y as ce}from"./formatters-CBgrBeSA-DY6OIAc8.js";import{_ as le,a as ue,b as de,c as fe,d as pe,f as me,g as he,h as ge,i as _e,l as ve,m as ye,n as be,o as xe,p as Se,r as Ce,s,t as we,u as Te,v as Ee,x as De,y as Oe}from"./FormattedTableCell-BdA15EY1.js";var c,l,u;function d(){return(d=e((()=>{c=`hKghZt`,l=`QsLRvS`,u={selectedIndicatorCell:c,sentinel:l}})))()}function ke(e,t){return String(t)}function f({title:e,isLoading:t,isFetching:n,data:r,columns:i,selectionMode:a=`none`,selectedRowIds:ee,getRowId:o,className:ne,minHeight:ie,tableClassName:ae,columnVisibility:oe,defaultColumnVisibility:ce,columnOrder:ue,defaultColumnOrder:de,columnSizing:pe,defaultColumnSizing:he,columnPinning:_e,defaultColumnPinning:ve,enableColumnResizing:ye=!1,enableColumnReordering:be=!1,columnResizeMinWidth:s,onColumnVisibilityChange:Oe,onColumnOrderChange:c,onColumnSizingChange:l,onColumnPinningChange:d,onRowClick:f,onRowSelectionChange:h,onReachEnd:g,getRowCanSelect:_,getRowClassName:Ae,renderHeaderContextMenu:je,renderCellContent:v}){let y=(0,p.useMemo)(()=>r??[],[r]),b=(0,p.useMemo)(()=>ge(i),[i]),x=o??ke,S=(0,p.useMemo)(()=>new Map(y.map((e,t)=>[x(e,t),e])),[x,y]),C=(0,p.useMemo)(()=>Array.from(S.keys()),[S]),w=(0,p.useRef)(null),T=(0,p.useRef)(null),{rowSelection:E,activateRowSelection:Me}=re({availableRowIds:C,rowById:S,selectionMode:a,selectedRowIds:ee,onRowSelectionChange:h}),{columnVisibility:D,onColumnVisibilityChange:O}=xe({columnVisibility:oe,defaultColumnVisibility:ce,onColumnVisibilityChange:Oe}),{columnOrder:k,onColumnOrderChange:Ne}=me({columnOrder:ue,defaultColumnOrder:de,onColumnOrderChange:c}),{columnSizing:A,onColumnSizingChange:Pe}=fe({columnSizing:pe,defaultColumnSizing:he,columnResizeMinWidth:s,onColumnSizingChange:l}),{columnPinning:j,onColumnPinningChange:M}=Te({columnPinning:_e,defaultColumnPinning:ve,onColumnPinningChange:d}),N=(0,p.useMemo)(()=>({columnOrder:k,columnPinning:j,columnSizing:A,columnVisibility:D}),[k,j,A,D]),Fe=(0,p.useEffectEvent)(()=>{g?.()});(0,p.useEffect)(()=>{if(!g||!w.current||!T.current||t)return;let e=new IntersectionObserver(e=>{e[0]?.isIntersecting&&Fe()},{root:w.current,threshold:.1});return e.observe(T.current),()=>e.disconnect()},[t,g,y.length]);let P=De({features:te,data:y,columns:i,state:{columnOrder:k,columnPinning:j,columnSizing:A,columnVisibility:D,rowSelection:E},onColumnOrderChange:Ne,onColumnPinningChange:M,onColumnSizingChange:Pe,onColumnVisibilityChange:O,getRowId:(e,t)=>x(e,t),enableMultiRowSelection:a===`multi`,enableRowSelection:e=>a===`none`?!1:!_||_(e.original)}),F=Ee(P,N),I=P.getRowModel().rows,L=(0,p.useMemo)(()=>Se({rows:I,columns:F}),[I,F]),R=F[0]?.id;return(0,m.jsx)(Ce,{table:P,columnState:N,title:e,isLoading:t,isFetching:n,className:ne,minHeight:ie,tableClassName:ae,selectionMode:a,scrollableRef:w,onActivateRow:a!==`none`||f?e=>{Me(e.id,e.getCanSelect()),f?.(e.original)}:void 0,isRowInteractive:e=>!!(f||a!==`none`&&e.getCanSelect()),getRowClassName:e=>Ae?.(e.original),getCellClassName:({row:e,cell:t})=>t.column.id===R&&e.getIsSelected()?u.selectedIndicatorCell:void 0,getCellLayout:({cell:e})=>L.get(e.id),renderHeaderContextMenu:je,enableColumnResizing:ye,enableColumnReordering:be,columnResizeMinWidth:s,renderCellContent:e=>{let t=se({field:b.runtimeByColumnId[e.cell.column.id],rawValue:e.cell.getValue(),rowData:e.row.original,rowKind:`plain`}),n=le({columnId:e.cell.column.id,runtimeByColumnId:b.runtimeByColumnId,customCellColumnIds:b.customCellColumnIds})?(0,m.jsx)(we,{displayValue:t,align:e.columnMeta?.align}):e.defaultContent;return v?v({...e,defaultContent:n,displayValue:t}):n},afterTableContent:g?(0,m.jsx)(`div`,{ref:T,className:u.sentinel,"aria-hidden":`true`}):null})}var p,m;function h(){return(h=e((()=>{p=n(),ce(),o(),de(),_e(),ye(),he(),be(),Oe(),pe(),ve(),s(),ue(),d(),m=r(),f.__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-Cq8y-8O_.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-BA_1CXsr.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-BgLnKKFv.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-Cq8y-8O_.js";import{a,i as o}from"./utils-DUM89eIj.js";import{n as ee,t as s}from"./ui.module-D4CuGr8r.js";import{i as c,n as te}from"./uiClasses-CVGbL980.js";import{n as l,t as u}from"./createControlledStoryRender-DHsyXc1B.js";import{n as d,t as f}from"./Scrollable-ns4PHUAk.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-sTVLs8k0.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-Cq8y-8O_.js";import{a as r,i,o as a}from"./utils-DUM89eIj.js";import{n as o,t as s}from"./ui.module-D4CuGr8r.js";import{i as c,n as l}from"./uiClasses-CVGbL980.js";import{i as u,n as d,r as f,t as p}from"./NoData-CzlhZzHI.js";import{n as m,t as h}from"./OneStepScroller-knlVIvl2.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-zmaXH4MN.js";import{n as i}from"./iframe-Cq8y-8O_.js";import{a,i as o}from"./utils-DUM89eIj.js";import{n as s,t as c}from"./ui.module-D4CuGr8r.js";import{d as l,l as u,s as ee,u as d}from"./Input-B2_RznVE.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:u,disabled:d,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}=l({id:M,hasLabel:i!=null,hasDescription:!!o,hasError:!!_}),J=y===void 0?1/0:Math.max(0,Math.floor(y)),Y=d||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:d,className:j,size:u,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":d?``: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:d,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:d},`${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(),u(),d(),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-7iTWdjmj.js → TagInput.stories-B4C-230C.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-Cq8y-8O_.js";import{n as r,t as i}from"./createControlledStoryRender-DHsyXc1B.js";import{n as a,t as o}from"./TagInput-yPLHo0PJ.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-Cq8y-8O_.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-Cq8y-8O_.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-BA_1CXsr.js";import{a as p,i as m,n as h,r as g,t as _}from"./Textarea.stories-BSSaqnZI.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-Cq8y-8O_.js";import{a as n,i as r}from"./utils-DUM89eIj.js";import{n as i,t as a}from"./ui.module-D4CuGr8r.js";import{d as o,l as s,s as c,u as l}from"./Input-B2_RznVE.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:s,value:l,onChange:u,error:f,onClearError:p,id:h,...g}){let{controlId:_,labelId:v,descriptionId:y,errorId:b,describedBy:x}=o({id:h,hasLabel:e!=null,hasDescription:!!t,hasError:!!f});return(0,m.jsx)(c,{label:e,description:t,disabled:a,required:g.required,size:s,error:f,controlId:_,labelId:v,descriptionId:y,errorId:b,children:(0,m.jsx)(`textarea`,{...g,id:_,disabled:a,value:l,"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(),s(),l(),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-pJFWbXcf.js → Textarea.stories-BSSaqnZI.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-Cq8y-8O_.js";import{n as r,t as i}from"./createControlledStoryRender-DHsyXc1B.js";import{n as a,t as o}from"./Textarea-bqvYs13v.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
|
},
|