@ryuzaki13/react-foundation-ui 3.11.0 → 3.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/chunks/{TextEditorLexicalClient-Cj6yjCGm.js → TextEditorLexicalClient-BwKsJG31.js} +347 -338
- package/dist/chunks/TextEditorLexicalClient-BwKsJG31.js.map +1 -0
- package/dist/chunks/types-CxXyru6U.js.map +1 -1
- package/dist/styles.css +1 -1
- package/dist/text-editor/LinkDialog.d.ts +2 -1
- package/dist/text-editor/LinkDialog.d.ts.map +1 -1
- package/dist/text-editor/TextEditorDialogs.d.ts +3 -2
- package/dist/text-editor/TextEditorDialogs.d.ts.map +1 -1
- package/dist/text-editor/TextEditorLexicalClient.d.ts +1 -1
- package/dist/text-editor/TextEditorLexicalClient.d.ts.map +1 -1
- package/dist/text-editor/TextEditorLexicalViewer.d.ts +10 -0
- package/dist/text-editor/TextEditorLexicalViewer.d.ts.map +1 -0
- package/dist/text-editor/editorModel.d.ts +18 -1
- package/dist/text-editor/editorModel.d.ts.map +1 -1
- package/dist/text-editor/index.d.ts +2 -1
- package/dist/text-editor/index.d.ts.map +1 -1
- package/dist/text-editor/index.js +298 -7
- package/dist/text-editor/index.js.map +1 -1
- package/dist/text-editor/lib/viewer/getTextEditorViewerElementStyle.d.ts +5 -0
- package/dist/text-editor/lib/viewer/getTextEditorViewerElementStyle.d.ts.map +1 -0
- package/dist/text-editor/lib/viewer/parseTextEditorViewerDocument.d.ts +4 -0
- package/dist/text-editor/lib/viewer/parseTextEditorViewerDocument.d.ts.map +1 -0
- package/dist/text-editor/lib/viewer/resolveTextEditorViewerLink.d.ts +3 -0
- package/dist/text-editor/lib/viewer/resolveTextEditorViewerLink.d.ts.map +1 -0
- package/dist/text-editor/model/hooks/useTextEditorLexicalActions.d.ts.map +1 -1
- package/dist/text-editor/model/textEditorViewerTypes.d.ts +58 -0
- package/dist/text-editor/model/textEditorViewerTypes.d.ts.map +1 -0
- package/dist/text-editor/toolbar/LinkButtons.d.ts +2 -1
- package/dist/text-editor/toolbar/LinkButtons.d.ts.map +1 -1
- package/dist/text-editor/toolbar/TextEditorToolbarLexical.d.ts.map +1 -1
- package/dist/text-editor/ui/viewer/TextEditorViewerNode.d.ts +7 -0
- package/dist/text-editor/ui/viewer/TextEditorViewerNode.d.ts.map +1 -0
- package/dist/text-editor/ui/viewer/TextEditorViewerText.d.ts +8 -0
- package/dist/text-editor/ui/viewer/TextEditorViewerText.d.ts.map +1 -0
- package/package.json +1 -1
- package/storybook-static/assets/{Badge-CVgLMAJT.js → Badge-Bg4hGIjf.js} +1 -1
- package/storybook-static/assets/{Badge.stories-KeadkKsz.js → Badge.stories-DvgJJzd7.js} +1 -1
- package/storybook-static/assets/{BadgeList-_jBtMkE3.js → BadgeList-OoSc_pn4.js} +1 -1
- package/storybook-static/assets/{BarcodeScannerDialog.stories-J9XDExKK.js → BarcodeScannerDialog.stories-e2CjbCdx.js} +1 -1
- package/storybook-static/assets/{Button-C-uRygWz.js → Button-CQU_2OUm.js} +1 -1
- package/storybook-static/assets/{Button-DegBPiAl.js → Button-CmAd-UMc.js} +1 -1
- package/storybook-static/assets/{Button.stories-Ds4zCq_9.js → Button.stories-CdXudj27.js} +1 -1
- package/storybook-static/assets/{CalendarView-iyr_ipPy.js → CalendarView-CfpxnEan.js} +1 -1
- package/storybook-static/assets/{CheckBox-B0zrARHA.js → CheckBox-CtrHIcza.js} +1 -1
- package/storybook-static/assets/{CheckBox-nBqHJGY9.js → CheckBox-HehqIiiV.js} +1 -1
- package/storybook-static/assets/{CheckBox.stories-CxO9FwA7.js → CheckBox.stories-C8DlH2mz.js} +1 -1
- package/storybook-static/assets/{Color-6AOWCN3U-Dzuzn5Yr.js → Color-6AOWCN3U-D9jGjZ1P.js} +1 -1
- package/storybook-static/assets/{ContextMenu-BC5OXqVj.js → ContextMenu-BxHTZhuC.js} +1 -1
- package/storybook-static/assets/{ContextMenu-CnZu58rQ.js → ContextMenu-t1s2BKrj.js} +1 -1
- package/storybook-static/assets/{ContextMenu.stories-CPdTdVV7.js → ContextMenu.stories-CMbIfQb7.js} +1 -1
- package/storybook-static/assets/{DateInput-B5j7kofa.js → DateInput-9FbhYoqV.js} +1 -1
- package/storybook-static/assets/{DateInput-CuYe4WXO.js → DateInput-Dm6Kiwka.js} +1 -1
- package/storybook-static/assets/{DateInput.stories-C4ZaIPUG.js → DateInput.stories-CPAnx1Ii.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-CbDK9t1J.js → DateRangePresetSelect-6l9Q7na9.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-Cg6yPY0K.js → DateRangePresetSelect-CyxvE8Px.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect.stories-DPWUHjXu.js → DateRangePresetSelect.stories-UZ8CMuwl.js} +1 -1
- package/storybook-static/assets/{DeprecatedMultiSelect-DkGsEVRD.js → DeprecatedMultiSelect-C04-2wDB.js} +1 -1
- package/storybook-static/assets/{DeprecatedMultiSelect-DCReLsN-.js → DeprecatedMultiSelect-CySF9Hqp.js} +1 -1
- package/storybook-static/assets/{DeprecatedMultiSelect.stories-tbYFDSML.js → DeprecatedMultiSelect.stories-FANxJnL0.js} +1 -1
- package/storybook-static/assets/{Detail-CtVpK6xU.js → Detail-CLPDP9b0.js} +1 -1
- package/storybook-static/assets/{Detail.stories-zAQfXGuT.js → Detail.stories-BmBFOXYz.js} +1 -1
- package/storybook-static/assets/{Dialog-JetMtpYt.js → Dialog-Co-EPLF-.js} +1 -1
- package/storybook-static/assets/{Dialog-B9ltl4hS.js → Dialog-Pzgcq_7r.js} +1 -1
- package/storybook-static/assets/{Dialog.stories-tJymN3yq.js → Dialog.stories-B4DitG-A.js} +1 -1
- package/storybook-static/assets/{Disclosure-j-RCrVFs.js → Disclosure-Bt0yvf3r.js} +1 -1
- package/storybook-static/assets/{Disclosure.stories-4Jj2XNlo.js → Disclosure.stories-Bx4Z3eyR.js} +1 -1
- package/storybook-static/assets/{DisclosureGroup-CM7GlGI4.js → DisclosureGroup-CMheYvQ6.js} +1 -1
- package/storybook-static/assets/{DocsRenderer-JROSPFPF-DevtpZi5.js → DocsRenderer-JROSPFPF-B4cQpl4D.js} +1 -1
- package/storybook-static/assets/{DropZone-CPrhOtX-.js → DropZone-D0j1N6Cy.js} +1 -1
- package/storybook-static/assets/{DropZone-Bwo7NG5D.js → DropZone-N4HTfImG.js} +1 -1
- package/storybook-static/assets/{DropZone.stories-VyNhIaxw.js → DropZone.stories-CPHCbKF-.js} +1 -1
- package/storybook-static/assets/{DropdownMenu-DMWZzFK1.js → DropdownMenu-Bf0k8HDo.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel-DmKB3xVB.js → ExpandableActionPanel-QyKVmfxd.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel.stories-Kh_OSEIl.js → ExpandableActionPanel.stories-BmA0hkNv.js} +1 -1
- package/storybook-static/assets/{Flex-BZKhuaao.js → Flex-7J7Ai0St.js} +1 -1
- package/storybook-static/assets/{Flex.stories-CrHxjVCH.js → Flex.stories-DTJoxIVr.js} +1 -1
- package/storybook-static/assets/{FlexContainer-DGc37vCr.js → FlexContainer-CeCwnfbr.js} +1 -1
- package/storybook-static/assets/{FlexItem-DYv72TvP.js → FlexItem-D4epTRUG.js} +1 -1
- package/storybook-static/assets/{FloatingPopover-Bd3b1U8c.js → FloatingPopover-4lCnQQo9.js} +1 -1
- package/storybook-static/assets/{FloatingWindows.stories-Cs_i092m.js → FloatingWindows.stories-BziZWCR7.js} +1 -1
- package/storybook-static/assets/FormattedTableCell-SClhK1-d.js +15 -0
- package/storybook-static/assets/{Grid-DUcSdqsI.js → Grid-BEn16yj_.js} +1 -1
- package/storybook-static/assets/{Grid-DIKudfVu.js → Grid-Bv9iz3Ru.js} +1 -1
- package/storybook-static/assets/{Grid.stories-sZUaIp7v.js → Grid.stories-DCcd1XpQ.js} +1 -1
- package/storybook-static/assets/{GridContainer-C5r-VTTG.js → GridContainer-tbwtNWmU.js} +1 -1
- package/storybook-static/assets/{ImageCropper.stories-Bk3SF90a.js → ImageCropper.stories-Cj7_L3px.js} +1 -1
- package/storybook-static/assets/{ImageRenderer-CM-YetP0.js → ImageRenderer-B8sjaCxb.js} +1 -1
- package/storybook-static/assets/{ImageRenderer.stories-CMqKyVuX.js → ImageRenderer.stories-BjjI8Xl3.js} +1 -1
- package/storybook-static/assets/{ImageView.stories-9IjWDUev.js → ImageView.stories-DSQT9rOC.js} +1 -1
- package/storybook-static/assets/{ImageViewer.stories-D-Zzvzh3.js → ImageViewer.stories-BwSjtNZu.js} +2 -2
- package/storybook-static/assets/{ImageViewerRuntime-BRWmVnG3.js → ImageViewerRuntime-BYsmm3rq.js} +1 -1
- package/storybook-static/assets/{Input-BaEhNNL0.js → Input-A2NM7h5s.js} +1 -1
- package/storybook-static/assets/{Input-YuUUu0DD.js → Input-DFpaY5iR.js} +1 -1
- package/storybook-static/assets/{Input.stories-CoJY4vR8.js → Input.stories-Dr3bILG0.js} +1 -1
- package/storybook-static/assets/{InputDateTime-CPlDTMTI.js → InputDateTime-B1HZuWxu.js} +1 -1
- package/storybook-static/assets/{InputDateTime.stories-DaOA4pFM.js → InputDateTime.stories-BRgylAlk.js} +1 -1
- package/storybook-static/assets/{InputFile-7PMO3B4Q.js → InputFile-BiYYtArL.js} +1 -1
- package/storybook-static/assets/{InputFile-D2HPvbt_.js → InputFile-DJZa1zb6.js} +1 -1
- package/storybook-static/assets/{InputFile.stories-CD4sJtXF.js → InputFile.stories-fGygLQ4u.js} +1 -1
- package/storybook-static/assets/{InputFiles-DwgBtqPe.js → InputFiles-BhE9kv5d.js} +1 -1
- package/storybook-static/assets/{InputFiles-DSOs_hpc.js → InputFiles-Dhx7VEsV.js} +1 -1
- package/storybook-static/assets/{InputFiles.stories-B2zPOUXW.js → InputFiles.stories-Dr4Qonyz.js} +1 -1
- package/storybook-static/assets/{InputFilesList-DWtH6HFC.js → InputFilesList-Cv2Gpuuc.js} +1 -1
- package/storybook-static/assets/{InputImage-Cke0I8XV.js → InputImage-CcGsKNGs.js} +1 -1
- package/storybook-static/assets/{InputImage-CnTU-bKF.js → InputImage-CsX9WLK_.js} +1 -1
- package/storybook-static/assets/{InputImage.stories-CadyFqUh.js → InputImage.stories-DBXKFyN8.js} +1 -1
- package/storybook-static/assets/{InteractiveComponents-cNgymLXT.js → InteractiveComponents-o5dGoBer.js} +1 -1
- package/storybook-static/assets/{InteractiveComponents.stories-c5kIdj-d.js → InteractiveComponents.stories-CbpCs1ke.js} +1 -1
- package/storybook-static/assets/{LayoutPicker-u5tv4tmF.js → LayoutPicker-BTV50163.js} +1 -1
- package/storybook-static/assets/{LayoutPicker-BydBdeCh.js → LayoutPicker-wQBp2vRv.js} +1 -1
- package/storybook-static/assets/{LayoutPicker.stories-ZcTgJxX5.js → LayoutPicker.stories-BA9v21Xx.js} +1 -1
- package/storybook-static/assets/Lexical.prod-DSYr9I3p.js +11 -0
- package/storybook-static/assets/{Listbox-CaBDvhDA.js → Listbox-CiYd52jg.js} +1 -1
- package/storybook-static/assets/{Listbox-CzmfAAEG.js → Listbox-RA3seYue.js} +1 -1
- package/storybook-static/assets/{Listbox.stories-B_tFWmxp.js → Listbox.stories-DFPgEF8r.js} +1 -1
- package/storybook-static/assets/{NoData-CRi9NzcI.js → LoadingMessage-Ce0vqRgG.js} +1 -1
- package/storybook-static/assets/{Modal-DIJuHLSp.js → Modal-BQsAioCj.js} +1 -1
- package/storybook-static/assets/{Modal-CIptTLdh.js → Modal-BpU6G6JZ.js} +1 -1
- package/storybook-static/assets/{Modal.stories-BAh1Lzf0.js → Modal.stories-CQrrk4EW.js} +1 -1
- package/storybook-static/assets/{ModalManagerProvider-DH2lt3jw.js → ModalManagerProvider-CoqdrSRD.js} +1 -1
- package/storybook-static/assets/{MultiSelect-CbcU2Cam.js → MultiSelect-CU9zjw_p.js} +1 -1
- package/storybook-static/assets/{MultiSelect-OPkS-VFp.js → MultiSelect-CZNPmVvS.js} +1 -1
- package/storybook-static/assets/{MultiSelect.stories-jghnBwe0.js → MultiSelect.stories-DFz-EHdG.js} +1 -1
- package/storybook-static/assets/{MultiSelectCore-AgK9lN-8.js → MultiSelectCore-Cvyz709z.js} +1 -1
- package/storybook-static/assets/NoData-Db8STACh.js +1 -0
- package/storybook-static/assets/{NotificationsHost-C8sCDEzY.js → NotificationsHost-BfICsokh.js} +1 -1
- package/storybook-static/assets/{NotificationsHost.stories-BxpWtMHl.js → NotificationsHost.stories-DlihTcqk.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect-Cjptiw3k.js → ODataMultiSelect-bFKNwfVi.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect.stories-B-tBcHkU.js → ODataMultiSelect.stories-dSgAmYNP.js} +1 -1
- package/storybook-static/assets/{ODataSelect-BdVlf2WW.js → ODataSelect-B-VxiKqe.js} +1 -1
- package/storybook-static/assets/{ODataSelect.stories-DZv8DgW4.js → ODataSelect.stories-IrICK-VV.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect-B83uLKnT.js → ODataTreeMultiSelect-1-ZKOoT5.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect.stories-k92VjXYz.js → ODataTreeMultiSelect.stories-Dj2gz4OX.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect-CkZeBBoA.js → ODataTreeSelect-C03yKX3Q.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect.stories-COweaWEr.js → ODataTreeSelect.stories-BaWPoCj8.js} +1 -1
- package/storybook-static/assets/{OneStepScroller-dD9RSWvg.js → OneStepScroller-C1e40EsR.js} +1 -1
- package/storybook-static/assets/{Option-lTkoUcHa.js → Option-DkhmepGt.js} +1 -1
- package/storybook-static/assets/{OptionButton-Bt6YtqRZ.js → OptionButton-CaOcFLRc.js} +1 -1
- package/storybook-static/assets/{OptionContent-C7Zoef1L.js → OptionContent-C2VjIa7E.js} +1 -1
- package/storybook-static/assets/{OptionContentContainer-xpO-es_t.js → OptionContentContainer-D9gbmo8X.js} +1 -1
- package/storybook-static/assets/{PeriodSelect-DkGZmPFu.js → PeriodSelect-CKHsqr9Q.js} +1 -1
- package/storybook-static/assets/{PeriodSelect-CmGjITS0.js → PeriodSelect-DyuBxEQO.js} +1 -1
- package/storybook-static/assets/{PeriodSelect.stories-BxkZen1s.js → PeriodSelect.stories-Clvkah1Y.js} +1 -1
- package/storybook-static/assets/{PickerField-vwGcXNU3.js → PickerField-BeafhNsw.js} +1 -1
- package/storybook-static/assets/{PickerTriggerActions-BVO2pwu2.js → PickerTriggerActions-DiC3sf79.js} +1 -1
- package/storybook-static/assets/{Popover-DU0wD6MT.js → Popover-CTWgpldX.js} +1 -1
- package/storybook-static/assets/{Popover-PRWJVARx.js → Popover-Cic2guk_.js} +1 -1
- package/storybook-static/assets/{Popover.stories-CXKDCIfT.js → Popover.stories-BN8W4Ioo.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-B1oR9Z-A.js → PresetRangeDateInput-BlwDGFlO.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-DUcxF5lh.js → PresetRangeDateInput-Cw-UACKj.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput.stories-CAPHV6_P.js → PresetRangeDateInput.stories-BW4A9N6I.js} +1 -1
- package/storybook-static/assets/{PresetSelect-Hrow5Qbz.js → PresetSelect-BROMDIaD.js} +1 -1
- package/storybook-static/assets/{README-CHgqsGMV.js → README--dlFTbfU.js} +1 -1
- package/storybook-static/assets/{README-w3_FegOo.js → README-0oBzUW7p.js} +1 -1
- package/storybook-static/assets/{README-CF5B-uBm.js → README-3_ON5xt9.js} +1 -1
- package/storybook-static/assets/{README-FJ4JNfan.js → README-B2Q8nqgC.js} +1 -1
- package/storybook-static/assets/{README-JqCoy91R.js → README-B2a17RtT.js} +1 -1
- package/storybook-static/assets/{README-Cb_U_ZYK.js → README-B2o_mu2p.js} +1 -1
- package/storybook-static/assets/{README-MUzkojYd.js → README-B4UtPkAG.js} +1 -1
- package/storybook-static/assets/{README-DjM1av8U.js → README-BC-mtx0Z.js} +1 -1
- package/storybook-static/assets/{README-mq6pyk4G.js → README-BEo-chiK.js} +1 -1
- package/storybook-static/assets/{README-CxBqJjI3.js → README-BKgDrLYy.js} +1 -1
- package/storybook-static/assets/{README-ctVjdbq7.js → README-BU-hpYkT.js} +1 -1
- package/storybook-static/assets/{README-BwSjP1rm.js → README-BZO4LN8h.js} +1 -1
- package/storybook-static/assets/{README-BCXjh3I1.js → README-Bt7qMnXG.js} +1 -1
- package/storybook-static/assets/{README-CDq7upsw.js → README-BzXKbqC2.js} +1 -1
- package/storybook-static/assets/{README-Xu3cmYZg.js → README-C0oFjEzk.js} +1 -1
- package/storybook-static/assets/{README-DmT1wyUb.js → README-C4DwwmPx.js} +1 -1
- package/storybook-static/assets/{README-C_hI3IVn.js → README-CC7qsfLO.js} +1 -1
- package/storybook-static/assets/{README-SkcZXYo1.js → README-CCA-VcWp.js} +1 -1
- package/storybook-static/assets/{README-D_iA9J4Q.js → README-CM3GEer1.js} +1 -1
- package/storybook-static/assets/{README-BCBBtU0T.js → README-CMm_WVI_.js} +1 -1
- package/storybook-static/assets/{README-BJXCE3us.js → README-Ch0dHOCi.js} +1 -1
- package/storybook-static/assets/{README-CRfg4Opx.js → README-CovA1JtH.js} +1 -1
- package/storybook-static/assets/{README-DA8e0atn.js → README-CsAmAsnQ.js} +1 -1
- package/storybook-static/assets/{README-DnpmMCNN.js → README-CsgpoZpo.js} +1 -1
- package/storybook-static/assets/{README-DYjyXvbd.js → README-CyTthj47.js} +1 -1
- package/storybook-static/assets/{README-O1ww7U1S.js → README-D42tlbcC.js} +1 -1
- package/storybook-static/assets/{README-CRk_ElRL.js → README-D7e1q280.js} +1 -1
- package/storybook-static/assets/{README-COzEPNJ8.js → README-DEIwHKH_.js} +1 -1
- package/storybook-static/assets/{README-DUVORqie.js → README-DJXuAagO.js} +1 -1
- package/storybook-static/assets/{README-CGalXaw7.js → README-DO98xR7D.js} +1 -1
- package/storybook-static/assets/{README-CdDd6nD8.js → README-DOCP85Ok.js} +1 -1
- package/storybook-static/assets/{README-De02nG6s.js → README-DV0qQm_q.js} +1 -1
- package/storybook-static/assets/{README-AWtoYOeO.js → README-D_wqIsQU.js} +1 -1
- package/storybook-static/assets/{README-BPOSX1IH.js → README-Da2MtxkC.js} +1 -1
- package/storybook-static/assets/{README-o-a96Aib.js → README-DgnwOBAf.js} +1 -1
- package/storybook-static/assets/{README-CDYORt73.js → README-Dh-aESek.js} +1 -1
- package/storybook-static/assets/{README-BLog3wnj.js → README-Dh3cmlxY.js} +1 -1
- package/storybook-static/assets/{README-CF79JAmm.js → README-DkqWljOh.js} +1 -1
- package/storybook-static/assets/{README-BEUQd7JO.js → README-Dns7UYFR.js} +1 -1
- package/storybook-static/assets/{README-bcnh89ek.js → README-Dp9qT5k5.js} +1 -1
- package/storybook-static/assets/{README-C8-H1dVZ.js → README-Dq_L-Ug6.js} +1 -1
- package/storybook-static/assets/{README-CTbRRHIT.js → README-DxnLeJiR.js} +1 -1
- package/storybook-static/assets/{README-Cu3r4RYC.js → README-JNaV5buf.js} +1 -1
- package/storybook-static/assets/{README-BDdhvdKa.js → README-Sg5qacmO.js} +1 -1
- package/storybook-static/assets/{README-BB_tSzAG.js → README-Y_9dubMU.js} +1 -1
- package/storybook-static/assets/{README-f5UPnPkY.js → README-Zi-FFn8W.js} +1 -1
- package/storybook-static/assets/{README-UfCsOg0n.js → README-g61K1aLN.js} +1 -1
- package/storybook-static/assets/{README-D0EguYwa.js → README-gW1fz6Ad.js} +1 -1
- package/storybook-static/assets/{README-CbCzYjzO.js → README-ivZpRido.js} +1 -1
- package/storybook-static/assets/{README-zelg96nd.js → README-kq33WRAi.js} +1 -1
- package/storybook-static/assets/{README-JrppLPED.js → README-lXA9AEv5.js} +1 -1
- package/storybook-static/assets/{README-BIHT1kGT.js → README-trL-e_Hw.js} +1 -1
- package/storybook-static/assets/{README-diVWU6bQ.js → README-yOf-BvTs.js} +1 -1
- package/storybook-static/assets/{RadioButton-BztQMLNR.js → RadioButton-Bc-qW8X4.js} +1 -1
- package/storybook-static/assets/{RadioButton-DUOPHyRt.js → RadioButton-dLi6i_d_.js} +1 -1
- package/storybook-static/assets/{RadioButton.stories-BOE5cGej.js → RadioButton.stories-fyW8-L85.js} +1 -1
- package/storybook-static/assets/RadioGroup-K_pYzh4S.js +1 -0
- package/storybook-static/assets/{RadioGroup-QICEWbjz.js → RadioGroup-hx5JHhIo.js} +1 -1
- package/storybook-static/assets/{RadioGroup.stories-f2qU7hhM.js → RadioGroup.stories-DkJM4C8g.js} +1 -1
- package/storybook-static/assets/{ResponsiveLayoutPreview-BWBLsr8u.js → ResponsiveLayoutPreview-2trckzJQ.js} +1 -1
- package/storybook-static/assets/{Scrollable-CAnjXb6_.js → Scrollable-BKrnU0ak.js} +1 -1
- package/storybook-static/assets/{Scrollable-Cc641kuG.js → Scrollable-D4W1DFQg.js} +1 -1
- package/storybook-static/assets/{Scrollable.stories-ZQT-1f1f.js → Scrollable.stories-D27cJCFP.js} +1 -1
- package/storybook-static/assets/{Select-D6RLm9D5.js → Select-BdSn2R7K.js} +1 -1
- package/storybook-static/assets/{Select-BeoH_3V4.js → Select-DEZyRp-R.js} +1 -1
- package/storybook-static/assets/{Select.stories-DI6pVDzi.js → Select.stories-D1Z2CcxZ.js} +1 -1
- package/storybook-static/assets/{Separator-tkZoR8Ft.js → Separator-5i4GBBEP.js} +1 -1
- package/storybook-static/assets/{Separator-De9vEg4j.js → Separator-BgRJ7Ocd.js} +1 -1
- package/storybook-static/assets/{Separator.stories-CGZrsdLJ.js → Separator.stories-CgSiKmhl.js} +1 -1
- package/storybook-static/assets/{SerializableSelect-BWgkYLIe.js → SerializableSelect-DyFu3F0w.js} +1 -1
- package/storybook-static/assets/{SerializableSelect.stories-BfGg_SmN.js → SerializableSelect.stories-DGeUH4C-.js} +1 -1
- package/storybook-static/assets/{ShimmerText-D1ygdKrh.js → ShimmerText-Dp8aRJ4I.js} +1 -1
- package/storybook-static/assets/{ShimmerText.stories-D5AB85Hj.js → ShimmerText.stories-Cf25PNCz.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-Bf2RpSbC.js → SingleDateTimeInput-Bzm87a3Z.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-C2O-fXgE.js → SingleDateTimeInput-DVFOi4lM.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput.stories-BUbSA1UY.js → SingleDateTimeInput.stories-ChMKxw-w.js} +1 -1
- package/storybook-static/assets/{Slider-CVPKS3XB.js → Slider-CyZ-Su8l.js} +1 -1
- package/storybook-static/assets/{Slider-BhfM7XZ9.js → Slider-DD9J2Qhk.js} +1 -1
- package/storybook-static/assets/{Slider.stories-C6ZUJc4b.js → Slider.stories-B8wpT9DE.js} +1 -1
- package/storybook-static/assets/{SliderInput-MMUGLDDl.js → SliderInput-CZ5RGazl.js} +1 -1
- package/storybook-static/assets/{SliderInput-PwHeDeo2.js → SliderInput-DI2fPYZP.js} +1 -1
- package/storybook-static/assets/{SliderInput.stories-zBDRonPh.js → SliderInput.stories-kV5nIvmp.js} +1 -1
- package/storybook-static/assets/{Sortable-BKNLJGIe.js → Sortable-BRJshDsd.js} +1 -1
- package/storybook-static/assets/{Sortable.stories-CLY263mj.js → Sortable.stories-DWdCANF3.js} +1 -1
- package/storybook-static/assets/{Splitter-PyZco_V_.js → Splitter-amimlmxB.js} +1 -1
- package/storybook-static/assets/{Splitter.stories-CY3Itq_G.js → Splitter.stories-Bp8FI1V5.js} +1 -1
- package/storybook-static/assets/{StateSelect-BlEIRWer.js → StateSelect-CEg--oWR.js} +1 -1
- package/storybook-static/assets/{StateSelect-DfUif3cG.js → StateSelect-U7CVxa71.js} +1 -1
- package/storybook-static/assets/{StateSelect.stories-ClSYkdz8.js → StateSelect.stories-DO2hudAT.js} +1 -1
- package/storybook-static/assets/{StatusIndicator-CL-WMBHT.js → StatusIndicator-BgS55kfh.js} +1 -1
- package/storybook-static/assets/{StatusIndicator.stories-BbpEocDe.js → StatusIndicator.stories-BThF4RAA.js} +1 -1
- package/storybook-static/assets/{StringToggle.stories-0r9TfflS.js → StringToggle.stories-DGpM8fWe.js} +1 -1
- package/storybook-static/assets/{Switch-HAWn3D1c.js → Switch-DuR6uVds.js} +1 -1
- package/storybook-static/assets/{Switch-AoVSoc9P.js → Switch-M0xvOjjd.js} +1 -1
- package/storybook-static/assets/{Switch.stories-D1VJIWsC.js → Switch.stories-4k1xDlbq.js} +1 -1
- package/storybook-static/assets/{Table-CyX8frK4.js → Table-BmYczjli.js} +1 -1
- package/storybook-static/assets/{Table.stories-DoGpFMZB.js → Table.stories-c1Yu2DYz.js} +1 -1
- package/storybook-static/assets/{TableEditor.stories-Mh6q2awx.js → TableEditor.stories-hIvit7LX.js} +1 -1
- package/storybook-static/assets/{Tabs-BZfNXmy0.js → Tabs-1AzTozGX.js} +1 -1
- package/storybook-static/assets/{Tabs.stories-C9L4pJDb.js → Tabs.stories-DUQx0Ezh.js} +1 -1
- package/storybook-static/assets/TabsBox-DGdo-Cb1.js +2 -0
- package/storybook-static/assets/{TagInput-CPB6lb2J.js → TagInput-qylU7_PQ.js} +1 -1
- package/storybook-static/assets/{TagInput.stories-CT6B8CVV.js → TagInput.stories-Bs78VRGv.js} +1 -1
- package/storybook-static/assets/{Text-AbSWZQO3.js → Text-C8ptoppM.js} +1 -1
- package/storybook-static/assets/TextEditorLexical.stories-DWCIfqOj.js +54 -0
- package/storybook-static/assets/TextEditorLexicalClient-B17un2t_.js +30 -0
- package/storybook-static/assets/TextEditorLexicalClient-CLf0OiWB.css +1 -0
- package/storybook-static/assets/TextEditorLexicalViewer-DRQG2UON.css +1 -0
- package/storybook-static/assets/TextEditorLexicalViewer.stories-IP2pavj0.js +66 -0
- package/storybook-static/assets/{Textarea-Bz9O1y1I.js → Textarea-Cpnrb2o_.js} +1 -1
- package/storybook-static/assets/{Textarea-BY51Li7J.js → Textarea-nCjyO4i5.js} +1 -1
- package/storybook-static/assets/{Textarea.stories-CJbv3jrK.js → Textarea.stories-BNkapgda.js} +1 -1
- package/storybook-static/assets/{TimePanel-Wn5lUiwx.js → TimePanel-BQK5NbxR.js} +1 -1
- package/storybook-static/assets/{TimePanel.stories-dF5kTdp1.js → TimePanel.stories-DYq--6bF.js} +1 -1
- package/storybook-static/assets/{Toggle-CUO99pvo.js → Toggle-0Y7W-fPi.js} +1 -1
- package/storybook-static/assets/{Toggle-BpDn9f6k.js → Toggle-DVuWIK21.js} +1 -1
- package/storybook-static/assets/{Toggle.stories-T1Hk_etn.js → Toggle.stories-DYZE2fC3.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-bqQExCm8.js → TreeMultiSelect-BM3xCVHR.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-DEsECkRj.js → TreeMultiSelect-D7GJiBAt.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect.stories-DyK7bWZu.js → TreeMultiSelect.stories-D2JpEs59.js} +1 -1
- package/storybook-static/assets/{TreePickerBase-BCbV37dL.js → TreePickerBase-BCpA1kfG.js} +2 -2
- package/storybook-static/assets/{TreeSelect-CTvlmF81.js → TreeSelect-BXBL2lAD.js} +1 -1
- package/storybook-static/assets/{TreeSelect-Cepr58wS.js → TreeSelect-D5oAYLRd.js} +1 -1
- package/storybook-static/assets/{TreeSelect.stories-RVPMBCd_.js → TreeSelect.stories-emFXypZX.js} +1 -1
- package/storybook-static/assets/{TreeTable-DznOmuAD.js → TreeTable-CEyrFWSm.js} +1 -1
- package/storybook-static/assets/{TreeTable.stories-Lx2ImfgC.js → TreeTable.stories-DDcnv5XB.js} +1 -1
- package/storybook-static/assets/{blocks-u0CCD6I1.js → blocks-DvVybOVR.js} +4 -4
- package/storybook-static/assets/{check-CHvYWZD5.js → check-YfnFIyMh.js} +1 -1
- package/storybook-static/assets/{chevron-down-DqHAghNU.js → chevron-down-BjxDxv4C.js} +1 -1
- package/storybook-static/assets/{chevron-left-Bj7vIyg-.js → chevron-left-C0xgKKWw.js} +1 -1
- package/storybook-static/assets/{chevron-right-BUqG0v39.js → chevron-right-Bo0n7sEl.js} +1 -1
- package/storybook-static/assets/{chunk-W22LQPXL-BSczDjJT.js → chunk-W22LQPXL-r7A3h_Tz.js} +1 -1
- package/storybook-static/assets/{circle-alert-DXUFM6uc.js → circle-alert-Dl_8Z1un.js} +1 -1
- package/storybook-static/assets/{circle-check-0x9vHUU_.js → circle-check-CS9puXbe.js} +1 -1
- package/storybook-static/assets/{contextMenu-D8PjjiwD.js → contextMenu-C7If_pOc.js} +1 -1
- package/storybook-static/assets/{download-15Eb3eUj.js → download-BWZFjl62.js} +1 -1
- package/storybook-static/assets/{floating-ui.react-CypKyrM4.js → floating-ui.react-DoLsHxAF.js} +1 -1
- package/storybook-static/assets/{formatMultiSelectOptionCount-BxXwE0wd.js → formatMultiSelectOptionCount-Cb7rzikh.js} +1 -1
- package/storybook-static/assets/{formatters-DVE1YVNQ-CJCkXjuI.js → formatters-DVE1YVNQ-CimVV-di.js} +1 -1
- package/storybook-static/assets/{foundationApi-dmPNotab.js → foundationApi-DUDdWpQ2.js} +1 -1
- package/storybook-static/assets/{foundationLib-CyrgF87o.js → foundationLib-C0aoelQA.js} +1 -1
- package/storybook-static/assets/hooks-KqAveAk8.js +5 -0
- package/storybook-static/assets/{iframe-BmGorvhi.js → iframe-BwMqUCxF.js} +4 -4
- package/storybook-static/assets/iframe-CQgVo28z.js +1 -0
- package/storybook-static/assets/{info-HMSnCOw2.js → info-BzoIh38o.js} +1 -1
- package/storybook-static/assets/{isRecord-DXDTW-jA-DtM9YD3V.js → isRecord-DXDTW-jA-CMenzszF.js} +1 -1
- package/storybook-static/assets/odata-B4ZS5oGx.js +1 -0
- package/storybook-static/assets/{odataStoryFixtures-DiC-gXoK.js → odataStoryFixtures-BoXfGt8L.js} +1 -1
- package/storybook-static/assets/{react-BLxZ0fqY.js → react-BxTMipfI.js} +1 -1
- package/storybook-static/assets/{refresh-cw-Obk3FkLO.js → refresh-cw-DZHdlgJG.js} +1 -1
- package/storybook-static/assets/{settings-2-BQ2LYeiA.js → settings-2-CSUUgi_0.js} +1 -1
- package/storybook-static/assets/sortable-Bikh9uZC.js +1 -0
- package/storybook-static/assets/{syntaxhighlighter-QEQV7K2Y-JUCJEf5U.js → syntaxhighlighter-QEQV7K2Y-BvV0CW9d.js} +1 -1
- package/storybook-static/assets/{trash-2-CzXfDl_F.js → trash-2-Csx302gq.js} +1 -1
- package/storybook-static/assets/{triangle-alert-Ww2Tuzxk.js → triangle-alert-CA_CSo3b.js} +1 -1
- package/storybook-static/assets/types-U_TJ2tHU.js +1 -0
- package/storybook-static/assets/{useODataSelectBase-DIZSERuU.js → useODataSelectBase-Dmlavp_v.js} +1 -1
- package/storybook-static/assets/{useODataTreeData-DLgIiNMG.js → useODataTreeData-W3o26svk.js} +1 -1
- package/storybook-static/assets/{usePickerQuery-BZ1Hrn2J.js → usePickerQuery-IBbvSDWi.js} +1 -1
- package/storybook-static/assets/{usePickerTriggerController-BIarg6M4.js → usePickerTriggerController-Cy-RrU3A.js} +1 -1
- package/storybook-static/assets/{utils-tg3ibbzi.js → utils-DiA8FLax.js} +1 -1
- package/storybook-static/assets/validators-CLNEY_Fa.js +1 -0
- package/storybook-static/assets/{x-BmlmEU-a.js → x-CP7phAx6.js} +1 -1
- package/storybook-static/iframe.html +2 -2
- package/storybook-static/index.json +1 -1
- package/storybook-static/project.json +1 -1
- package/dist/chunks/TextEditorLexicalClient-Cj6yjCGm.js.map +0 -1
- package/storybook-static/assets/FormattedTableCell-CdlWquoj.js +0 -15
- package/storybook-static/assets/RadioGroup-CDqbnv4J.js +0 -1
- package/storybook-static/assets/TabsBox-qRCIBtqi.js +0 -2
- package/storybook-static/assets/hooks-DM8_3IU2.js +0 -5
- package/storybook-static/assets/iframe-WuXBbC_P.js +0 -1
- package/storybook-static/assets/odata-DLogt0PY.js +0 -1
- package/storybook-static/assets/sortable-BrLDYUp8.js +0 -1
- package/storybook-static/assets/validators-D82aYLRK.js +0 -1
- /package/storybook-static/assets/{NoData-C7KqaHUh.css → LoadingMessage-C7KqaHUh.css} +0 -0
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{n}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{n}from"./iframe-BwMqUCxF.js";import{a as r,i}from"./utils-DiA8FLax.js";import{g as a,p as o}from"./odata-service-CWkHASdw-DAt28ZWr.js";import{i as s,n as c,r as l,t as u}from"./Popover-Cic2guk_.js";import{n as d,t as f}from"./ui.module-l7VCYIW-.js";import{d as p,l as m,o as h,r as g,s as _,u as v}from"./Input-DFpaY5iR.js";import{n as y,t as b}from"./PickerTriggerActions-DiC3sf79.js";import{s as x}from"./number-scale-D2KTkjVQ.js";import{a as S,c as C,d as w,i as T,l as E,n as D,o as O,s as k,u as A}from"./Slider-CyZ-Su8l.js";function j({open:e,disabled:t,setOpen:n}){let{refs:r,contentId:i}=s(),a=(0,M.useCallback)(e=>r.setReference(e),[r]);return(0,N.jsx)(`div`,{ref:a,onClick:e=>{e.defaultPrevented||(e.preventDefault(),e.stopPropagation())},children:(0,N.jsx)(b,{open:e,disabled:t,openAriaLabel:`Открыть слайдер`,closeAriaLabel:`Закрыть слайдер`,toggleAria:{"aria-controls":i,"aria-expanded":e,"aria-haspopup":`dialog`},onToggleMouseDown:e=>e.preventDefault(),onToggleClick:()=>n(e=>!e)})})}var M,N;function P(){return(P=e((()=>{M=t(),y(),l(),N=n(),j.__docgenInfo={description:`Сохраняет прежний wrapper как floating-anchor, а popup-семантику передаёт
|
|
2
2
|
вложенной кнопке: так ARIA остаётся валидной без сдвига панели на один пиксель.`,methods:[],displayName:`SliderPopoverToggle`,props:{open:{required:!0,tsType:{name:`boolean`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},setOpen:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(nextOpen: boolean | ((prev: boolean) => boolean)) => void`,signature:{arguments:[{type:{name:`union`,raw:`boolean | ((prev: boolean) => boolean)`,elements:[{name:`boolean`},{name:`unknown`}]},name:`nextOpen`}],return:{name:`void`}}},description:``}}}})))()}function F(e,t){let n=E(e,t);return{start:n[0]===null?`-∞`:String(n[0]),end:n[1]===null?`∞`:String(n[1])}}function I(e,t){let n=e.trim();return n===``||n===t?null:o(n)}function L(e,t,n){let r=t.filter(t=>k(t)===e);if(r.length)return e===null&&n===`end`?r[r.length-1]:r[0]}function R(e,t){return e?.readonlyLabel?.trim()?e.readonlyLabel.trim():typeof e?.label==`string`||typeof e?.label==`number`?String(e.label):t===null?``:String(t)}function z(e,t,n){return R(L(e,t,n),e)}function ee(e,t,n){let[r,i]=e,a=r===null,o=i===null;return a&&o?n??``:a?`Меньше ${z(i,t,`end`)}`:o?`Больше ${z(r,t,`start`)}`:r===i?`Равно ${z(r,t,`start`)}`:`От ${z(r,t,`start`)} до ${z(i,t,`end`)}`}function B({value:e,onChange:t,min:n,max:r,step:i,marks:a,marksPosition:s=`value`,className:c,error:l,onClearError:d,label:f,description:p,placeholder:m,disabled:g,size:_}){let{min:v,max:y}=(0,U.useMemo)(()=>x(n,r),[n,r]),b=(0,U.useMemo)(()=>w(a,v,y),[a,v,y]),C=(0,U.useMemo)(()=>({min:v,max:y,step:i,marks:b,marksPosition:s}),[v,y,i,b,s]),T=A(e,C),[E,O]=(0,U.useState)(!1),[k,M]=(0,U.useState)(()=>({sourceValue:T,value:String(T)})),N=k.sourceValue===T?k.value:String(T),P=e=>{M({sourceValue:T,value:e})},F=(0,U.useCallback)(()=>{if(g){M({sourceValue:T,value:String(T)});return}let n=o(N);if(n===void 0){M({sourceValue:T,value:String(T)});return}let r=A(n,C);e!==r&&(t(r),d?.()),M({sourceValue:r,value:String(r)})},[g,N,T,t,d,C,e]);return(0,W.jsxs)(u,{open:E,onOpenChange:O,children:[(0,W.jsx)(h,{label:f,description:p,placeholder:m,disabled:g,size:_,className:c,error:l,value:N,onChange:P,onBlur:F,onKeyDown:e=>{e.key===`Enter`&&(e.preventDefault(),F())},endAdornmentWidth:`var(--control-height)`,endAdornment:(0,W.jsx)(j,{open:E,disabled:g,setOpen:O})}),(0,W.jsx)(u.Content,{background:`primary`,role:`dialog`,"aria-label":`Выбор значения`,children:(0,W.jsx)(`div`,{className:S.popoverContent,children:(0,W.jsx)(D,{mode:`single`,min:v,max:y,step:i,marks:b,marksPosition:s,marksDisplay:`full`,value:e,onChange:e=>{t(e),M({sourceValue:e,value:String(e)}),d?.()},disabled:g})})})]})}function V({value:e,onChange:t,min:n,max:i,step:a,marks:o,marksPosition:s=`value`,className:c,error:l,onClearError:f,label:m,description:h,readonlyValueText:v,placeholder:y,disabled:b,size:C}){let{min:T,max:O}=(0,U.useMemo)(()=>x(n,i),[n,i]),k=(0,U.useMemo)(()=>w(o,T,O),[o,T,O]),A=(0,U.useMemo)(()=>({min:T,max:O,step:a,marks:k,marksPosition:s}),[T,O,a,k,s]),M=(0,U.useMemo)(()=>E(e,A),[A,e]),N=(0,U.useMemo)(()=>F(M,A),[M,A]),[P,L]=(0,U.useState)(!1),[R,z]=(0,U.useState)(()=>({sourceValue:M,start:N.start,end:N.end})),[B,V]=(0,U.useState)(M),G=P||H(R.sourceValue,M),K=G?R.start:N.start,q=G?R.end:N.end,te=e=>{z({sourceValue:M,start:e,end:q})},ne=e=>{z({sourceValue:M,start:K,end:e})},{controlId:J,labelId:Y,descriptionId:re,errorId:ie,describedBy:ae}=p({hasLabel:m!=null,hasDescription:!!h,hasError:!!l}),X=(0,U.useCallback)(()=>{z({sourceValue:M,start:N.start,end:N.end})},[N.end,N.start,M]),Z=(0,U.useCallback)(()=>{if(b){X();return}let e=I(K,`-∞`),n=I(q,`∞`);if(e===void 0||n===void 0){X();return}let r=E([e,n],A);H(M,r)||(t(r),f?.());let i=F(r,A);z({sourceValue:r,start:i.start,end:i.end}),V(r)},[b,q,K,M,t,f,X,A]),oe=(0,U.useCallback)(e=>{let n=E(e,A);H(M,n)||(t(n),f?.());let r=F(n,A);z({sourceValue:n,start:r.start,end:r.end}),V(n)},[M,t,f,A]),Q=e=>{!P&&e&&(V(M),z({sourceValue:M,start:N.start,end:N.end})),P&&!e&&!b&&oe(B),L(e)},$=e=>{e.key===`Enter`&&(e.preventDefault(),Z())},se=e=>{let t=E(e,A);V(t);let n=F(t,A);z({sourceValue:M,start:n.start,end:n.end})},ce=v?ee(P?B:M,k,y):void 0;return(0,W.jsxs)(u,{open:P,onOpenChange:Q,children:[(0,W.jsx)(_,{label:m,description:h,disabled:b,className:c,size:C,error:l,controlId:J,labelId:Y,descriptionId:re,errorId:ie,children:(0,W.jsx)(g,{endAdornmentWidth:`var(--control-height)`,endAdornment:(0,W.jsx)(j,{open:P,disabled:b,setOpen:e=>{Q(typeof e==`function`?e(P):e)}}),children:({controlClassName:e})=>(0,W.jsx)(`div`,{id:J,className:r(d.uiInputControlFake,S.rangeInputControl,e),"data-invalid":l?``:void 0,"data-disabled":b||void 0,role:`group`,"aria-invalid":!!l||void 0,"aria-label":typeof m==`string`?m:`Диапазон`,"aria-labelledby":typeof m==`string`?void 0:Y,"aria-describedby":ae,children:v?(0,W.jsx)(`span`,{className:r(`flexEllipsis`,!ce&&d.uiPlaceholder),children:ce||y}):(0,W.jsxs)(W.Fragment,{children:[(0,W.jsx)(`input`,{type:`text`,inputMode:`decimal`,className:S.rangeSegmentInput,value:K,disabled:b,"aria-label":`Начало диапазона`,onChange:e=>te(e.target.value),onBlur:Z,onKeyDown:$}),(0,W.jsx)(`span`,{className:S.rangeSeparator,"data-disabled":b||void 0,children:`-`}),(0,W.jsx)(`input`,{type:`text`,inputMode:`decimal`,className:S.rangeSegmentInput,value:q,disabled:b,"aria-label":`Конец диапазона`,onChange:e=>ne(e.target.value),onBlur:Z,onKeyDown:$})]})})})}),(0,W.jsx)(u.Content,{background:`primary`,role:`dialog`,"aria-label":`Выбор диапазона значений`,children:(0,W.jsx)(`div`,{className:S.popoverContent,children:(0,W.jsx)(D,{mode:`range`,min:T,max:O,step:a,marks:k,marksPosition:s,marksDisplay:`full`,value:B,onChange:se,disabled:b})})})]})}function H(e,t){return e[0]===t[0]&&e[1]===t[1]}var U,W;function G(){return(G=e((()=>{U=t(),a(),i(),m(),v(),c(),f(),C(),T(),O(),P(),W=n(),B.__docgenInfo={description:``,methods:[],displayName:`SliderInput`,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:``},min:{required:!0,tsType:{name:`number`},description:`Минимальная координата шкалы. Marks вне этой границы не участвуют в выборе.`},max:{required:!0,tsType:{name:`number`},description:`Максимальная координата шкалы. Marks вне этой границы не участвуют в выборе.`},step:{required:!1,tsType:{name:`number`},description:`Шаг ручного ввода и слайдера, если не заданы marks.`},marksPosition:{required:!1,tsType:{name:`NumberScaleMarksPosition`},description:`Способ визуального размещения marks и бегунка в popover.`,defaultValue:{value:`"value"`,computed:!1}},className:{required:!1,tsType:{name:`string`},description:`Внешний CSS-класс общей обёртки поля.`},error:{required:!1,tsType:{name:`string`},description:`Текст внешней ошибки.`},onClearError:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:`Сбрасывает внешнюю ошибку после успешного commit или выбора в popover.`},marks:{required:!1,tsType:{name:`unknown`},description:"Marks single-слайдера. Single-компонент отдаёт наружу `mark.value`."}}},V.__docgenInfo={description:``,methods:[],displayName:`SliderRangeInput`,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:``},min:{required:!0,tsType:{name:`number`},description:`Минимальная координата шкалы. Marks вне этой границы не участвуют в выборе.`},max:{required:!0,tsType:{name:`number`},description:`Максимальная координата шкалы. Marks вне этой границы не участвуют в выборе.`},step:{required:!1,tsType:{name:`number`},description:`Шаг ручного ввода и слайдера, если не заданы marks.`},marksPosition:{required:!1,tsType:{name:`NumberScaleMarksPosition`},description:`Способ визуального размещения marks и бегунка в popover.`,defaultValue:{value:`"value"`,computed:!1}},className:{required:!1,tsType:{name:`string`},description:`Внешний CSS-класс общей обёртки поля.`},error:{required:!1,tsType:{name:`string`},description:`Текст внешней ошибки.`},onClearError:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:`Сбрасывает внешнюю ошибку после успешного commit или выбора в popover.`},marks:{required:!1,tsType:{name:`unknown`},description:"Marks range-слайдера. `value` задаёт координату на шкале, `outputValue` задаёт публичное значение для потребителя."},readonlyValueText:{required:!1,tsType:{name:`boolean`},description:`Показывает вместо ручных сегментов готовый текст по выбранным marks.
|
|
3
3
|
Popover остаётся единственным способом изменить значение через слайдер, а потребитель получает изменение при закрытии popover.`}}}})))()}export{V as n,G as r,B as t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-BwMqUCxF.js";import{i as n,r}from"./react-Bl2r1tuC.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-DvVybOVR.js";import{a as p,c as m,d as h,i as g,l as _,n as v,o as y,r as b,s as x,t as S,u as C}from"./SliderInput.stories-kV5nIvmp.js";function w(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,E.jsxs)(E.Fragment,{children:[(0,E.jsx)(s,{of:C,parameters:{docs:{toc:!0}}}),`
|
|
2
2
|
`,(0,E.jsx)(u,{children:`SliderInput`}),`
|
|
3
3
|
`,(0,E.jsx)(o,{children:`Поля ввода для single и range с popover slider`}),`
|
|
4
4
|
`,(0,E.jsxs)(t.p,{children:[(0,E.jsx)(t.code,{children:`SliderInput`}),` работает с одним числом, а `,(0,E.jsx)(t.code,{children:`SliderRangeInput`}),` — с диапазоном `,(0,E.jsx)(t.code,{children:`[number | null, number | null]`}),`.`]}),`
|
package/storybook-static/assets/{SliderInput.stories-zBDRonPh.js → SliderInput.stories-kV5nIvmp.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{n}from"./iframe-
|
|
1
|
+
import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{n}from"./iframe-BwMqUCxF.js";import{b as r,g as i}from"./odata-service-CWkHASdw-DAt28ZWr.js";import{n as a,t as o}from"./createControlledStoryRender-BouhvX-R.js";import{n as s,r as c,t as l}from"./SliderInput-CZ5RGazl.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:`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-DkW27tQK.js";import{n as t}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-BwMqUCxF.js";import{i as n,r}from"./react-Bl2r1tuC.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-DvVybOVR.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-DWdCANF3.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-CLY263mj.js → Sortable.stories-DWdCANF3.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{i as r,n as i,r as a,t as o}from"./sortable-
|
|
1
|
+
import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{i as r,n as i,r as a,t as o}from"./sortable-Bikh9uZC.js";import{n as s}from"./iframe-BwMqUCxF.js";var c=t({Basic:()=>S,DisabledItems:()=>T,GridCards:()=>w,HandleOnly:()=>E,HorizontalList:()=>C,NestedContainers:()=>D,SortablePreview:()=>f,__namedExportsOrder:()=>O,default:()=>x});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=e.initialItems,n=new Set(e.disabledIds??[]);return(0,h.jsxs)(`div`,{style:{display:`grid`,gap:12},children:[(0,h.jsx)(o.Root,{onDragEnd:n=>{let r=a({event:n,items:{[e.containerId]:t}});r&&e.onItemsChange(l(t,r.fromIndex,r.toIndex))},children:(0,h.jsx)(o.Container,{containerId:e.containerId,items:t,layout:e.layout,children:(0,h.jsx)(`div`,{style:u(e.layout),children:t.map(t=>(0,h.jsxs)(o.Item,{id:t,disabled:n.has(t),style:{..._,minWidth:e.itemWidth},children:[(0,h.jsx)(o.DragHandle,{as:`button`,title:`Перетащить ${t}`}),(0,h.jsx)(`div`,{children:t})]},t))})})}),(0,h.jsx)(`div`,{style:{fontSize:14,opacity:.8},children:`Порядок элементов изменяется локально в рамках story.`})]})}function f(e){let[t,n]=(0,m.useState)(e.initialItems);return(0,h.jsx)(d,{...e,initialItems:t,onItemsChange:n})}function p({args:e,onTopItemsChange:t}){let n=e.initialItems,[r,i]=(0,m.useState)({"Группа A":[`A.1`,`A.2`,`A.3`],"Группа B":[`B.1`,`B.2`]});return(0,h.jsxs)(`div`,{style:{display:`grid`,gap:12},children:[(0,h.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,h.jsx)(o.Container,{containerId:e.containerId,items:n,layout:e.layout,children:(0,h.jsx)(`div`,{style:{display:`grid`,gap:`var(--space-md)`},children:n.map(e=>(0,h.jsxs)(o.Item,{id:e,style:{..._,gridTemplateColumns:`var(--control-height) 1fr`,alignItems:`start`},children:[(0,h.jsx)(o.DragHandle,{as:`button`,title:`Перетащить ${e}`}),(0,h.jsxs)(`div`,{style:{display:`grid`,gap:`var(--space-sm)`},children:[(0,h.jsx)(`strong`,{children:e}),(0,h.jsx)(o.Container,{containerId:`parent:${e}`,items:r[e]??[],children:(0,h.jsx)(`div`,{style:{display:`grid`,gap:`var(--space-xs)`},children:(r[e]??[]).map(e=>(0,h.jsxs)(o.Item,{id:e,style:{..._,background:`var(--surface-1)`},children:[(0,h.jsx)(o.DragHandle,{as:`button`,title:`Перетащить ${e}`}),(0,h.jsx)(`div`,{children:e})]},e))})})]})]},e))})})}),(0,h.jsx)(`div`,{style:{fontSize:14,opacity:.8},children:"Вложенные контейнеры сортируются независимо и используют общий `Sortable.Root`."})]})}var m,h,g,_,v,y,b,x,S,C,w,T,E,D,O;function k(){return(k=e((()=>{m=n(),i(),r(),h=s(),{useArgs:g}=__STORYBOOK_MODULE_PREVIEW_API__,_={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)`},v=[`Alpha`,`Bravo`,`Charlie`,`Delta`],y=[`Фильтры`,`Графики`,`Сводка`,`История`],b=[`Карточка 1`,`Карточка 2`,`Карточка 3`,`Карточка 4`,`Карточка 5`,`Карточка 6`],x={title:`UI/Sortable`,component:f,args:{containerId:`sortable-demo`,layout:`vertical`,initialItems:v,itemWidth:void 0,disabledIds:[]},parameters:{atomicCanvas:!0,layout:`padded`},render:function(e){let[,t]=g();return(0,h.jsx)(d,{...e,onItemsChange:e=>t({initialItems:e})})},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}}},S={},C={args:{containerId:`sortable-horizontal`,layout:`horizontal`,initialItems:y,itemWidth:`12rem`}},w={args:{containerId:`sortable-grid`,layout:`grid`,initialItems:b}},T={args:{containerId:`sortable-disabled`,layout:`vertical`,initialItems:v,disabledIds:[`Bravo`,`Delta`]}},E={args:{containerId:`sortable-handle-only`,layout:`vertical`,initialItems:[`Пункт 1`,`Пункт 2`,`Пункт 3`,`Пункт 4`]}},D={args:{containerId:`top`,layout:`vertical`,initialItems:[`Группа A`,`Группа B`]},render:function(e){let[,t]=g();return(0,h.jsx)(p,{args:e,onTopItemsChange:e=>t({initialItems:e})})}},f.__docgenInfo={description:`Предоставляет самостоятельный React-preview компонента вне Storybook.
|
|
2
2
|
Storybook использует отдельный render ниже, чтобы синхронизировать порядок с args.`,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:``}}},f.parameters={...f.parameters,docs:{...f.parameters?.docs,source:{originalSource:`function SortablePreview(props: SortablePreviewProps) {
|
|
3
3
|
const [items, setItems] = useState(props.initialItems);
|
|
4
4
|
return <SortablePreviewCanvas {...props} initialItems={items} onItemsChange={setItems} />;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-BwMqUCxF.js";import{i as n,r}from"./react-Bl2r1tuC.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-DvVybOVR.js";import{a as p,i as m,n as h,o as g,r as _,s as v,t as y}from"./Splitter.stories-Bp8FI1V5.js";function b(e){let t={code:`code`,h2:`h2`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,S.jsxs)(S.Fragment,{children:[(0,S.jsx)(s,{of:g,parameters:{docs:{toc:!0}}}),`
|
|
2
2
|
`,(0,S.jsx)(u,{children:`Splitter`}),`
|
|
3
3
|
`,(0,S.jsx)(o,{children:(0,S.jsx)(t.p,{children:`Компонент для интерактивного разделения рабочей области на две панели с поддержкой вложенности, клавиатуры и ограничений по размеру`})}),`
|
|
4
4
|
`,(0,S.jsxs)(t.p,{children:[(0,S.jsx)(t.code,{children:`Splitter`}),` подходит для интерфейсов, где пользователь должен самостоятельно перераспределять пространство между соседними областями: навигацией и контентом, таблицей и деталями, превью и журналом событий.`]}),`
|
package/storybook-static/assets/{Splitter.stories-CY3Itq_G.js → Splitter.stories-Bp8FI1V5.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{n as r}from"./iframe-
|
|
1
|
+
import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{n as r}from"./iframe-BwMqUCxF.js";import{a as i,i as a}from"./utils-DiA8FLax.js";import{i as o,s,u as c}from"./number-scale-D2KTkjVQ.js";var l,u,d,f,p,m,h;function g(){return(g=e((()=>{l=`wAovST`,u=`QVVMwe`,d=`H43AJ8`,f=`pgo8sW`,p=`_8fCvqA`,m=`t6RFcI`,h={splitter:l,vertical:u,separator:d,horizontal:f,topLeft:p,bottomRight:m}})))()}function _(e,t,n){return Math.min(n,Math.max(t,e))}function v(e,t){return Number.isFinite(e)?_(e,0,1):t}function y(e,t){let n=v(e,k),r=v(t,A);return n<=r?[n,r]:[r,n]}function b(e,t){return e===`vertical`?t.clientX:t.clientY}function x(e,t){return e===`vertical`?t.width:t.height}function S(e,t){if(e===`vertical`){if(t===`ArrowLeft`)return-.02;if(t===`ArrowRight`)return M}if(e===`horizontal`){if(t===`ArrowUp`)return-.02;if(t===`ArrowDown`)return M}return null}function C(e,t){return t===`start`?0:t===`end`?1:e}function w({direction:e,initial:t,min:n,max:r,onChange:i,collapsedPane:a}){let[o,s]=y(n,r),c=(0,D.useRef)(null),l=(0,D.useRef)(null),u=(0,D.useRef)(null),d=(0,D.useRef)(null),f=(0,D.useRef)(null),p=(0,D.useRef)(null),m=(0,D.useRef)(0),h=(0,D.useRef)(_(v(t,j),o,s)),g=(0,D.useRef)(t),[w,T]=(0,D.useState)(()=>_(v(t,j),o,s)),E=(0,D.useRef)(w),O=(0,D.useCallback)(e=>{E.current=e,l.current?.style.setProperty(`flex-basis`,`${C(e,a)*100}%`),u.current?.setAttribute(`aria-valuenow`,`${Math.round(e*100)}`)},[a]),k=()=>{if(p.current!==null&&(cancelAnimationFrame(p.current),p.current=null),f.current===null)return E.current;let e=f.current;return f.current=null,O(e),e},A=e=>{f.current=e,p.current===null&&(p.current=requestAnimationFrame(()=>{p.current=null,f.current!==null&&O(f.current)}))},M=()=>{d.current?.(),d.current=null},N=(e,t=E.current)=>{k();let n=_(e,o,s);T(n),n!==t&&i?.(n)};return(0,D.useLayoutEffect)(()=>{O(w)},[O,w]),(0,D.useEffect)(()=>{T(e=>{let n=g.current!==t;return g.current=t,_(n?v(t,j):e,o,s)})},[t,o,s]),(0,D.useEffect)(()=>()=>{M(),p.current!==null&&cancelAnimationFrame(p.current)},[]),{containerRef:c,topLeftRef:l,separatorRef:u,ratio:w,minRatio:o,maxRatio:s,handleSeparatorPointerDown:t=>{if(t.button!==0)return;t.preventDefault();let n=c.current;if(!n)return;M();try{t.currentTarget.setPointerCapture?.(t.pointerId)}catch{}m.current=b(e,t),h.current=E.current;let r=t=>{let r=x(e,n.getBoundingClientRect());if(r<=0)return;let i=b(e,t)-m.current,a=_(h.current+i/r,o,s);A(a)},i=()=>{M(),N(k(),h.current)};d.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=S(e,t.key);if(n!==null){t.preventDefault(),N(E.current+n);return}if(t.key===`Home`){t.preventDefault(),N(o);return}t.key===`End`&&(t.preventDefault(),N(s))}}}function T({className:e,direction:t,left:n,right:r,collapsedPane:a,logic:o}){let{containerRef:s,topLeftRef:c,separatorRef:l,ratio:u,minRatio:d,maxRatio:f,handleSeparatorPointerDown:p,handleSeparatorKeyDown:m}=o,g=C(u,a),_=a===`start`,v=a===`end`,y=a===null;return(0,O.jsxs)(`div`,{ref:s,className:i(h.splitter,h[t],e),children:[(0,O.jsx)(`div`,{ref:c,className:h.topLeft,style:{flexBasis:`${g*100}%`},hidden:_,children:n}),(0,O.jsx)(`div`,{ref:l,hidden:!y,role:`separator`,"aria-orientation":t===`vertical`?`vertical`:`horizontal`,"aria-valuemin":Math.round(d*100),"aria-valuemax":Math.round(f*100),"aria-valuenow":Math.round(u*100),tabIndex:y?0:-1,onPointerDown:p,onKeyDown:m,className:h.separator}),(0,O.jsx)(`div`,{className:h.bottomRight,hidden:v,children:r})]})}function E({direction:e=`vertical`,initial:t=j,min:n=k,max:r=A,onChange:i,className:a,collapsedPane:o=null,children:s}){let[c,l]=D.Children.toArray(s),u=w({direction:e,initial:t,min:n,max:r,onChange:i,collapsedPane:o});return l?(0,O.jsx)(T,{className:a,direction:e,left:c,right:l,collapsedPane:o,logic:u}):c}var D,O,k,A,j,M;function N(){return(N=e((()=>{D=n(),a(),g(),O=r(),k=.1,A=.9,j=.7,M=.02,E.__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 ee,P,te,F;function I(){return(I=e((()=>{ee=`dN78Fa`,P=`q7Yvg9`,te=`yP9UOD`,F={container:ee,viewport:P,separator:te}})))()}function ne({height:e,defaultHeight:t,minHeight:n,maxHeight:r,heightStep:i,onHeightChange:a}){let l=s(n,r),u={...l,step:i},d=e!==void 0,[f,p]=(0,L.useState)(()=>c(t,l.min,l.max)),[m,h]=(0,L.useState)(null),g=c(e??f,l.min,l.max),_=m??g,v=(0,L.useRef)(null),y=(0,L.useRef)(null),b=(0,L.useRef)(null),x=(0,L.useRef)(_),S=(0,L.useRef)(_),C=(0,L.useRef)(0),w=()=>{if(y.current!==null&&(cancelAnimationFrame(y.current),y.current=null),b.current===null)return x.current;let e=b.current;return b.current=null,x.current=e,e},T=e=>{b.current=e,y.current===null&&(y.current=requestAnimationFrame(()=>{if(y.current=null,b.current===null)return;let e=b.current;b.current=null,x.current=e,h(e)}))},E=(e,t=x.current)=>{let n=c(e,l.min,l.max);x.current=n,h(null),n!==t&&(d||p(n),a?.(n))},D=()=>{v.current?.(),v.current=null};return(0,L.useLayoutEffect)(()=>{x.current=_},[_]),(0,L.useEffect)(()=>()=>{D(),y.current!==null&&cancelAnimationFrame(y.current)},[]),{height:_,minHeight:l.min,maxHeight:l.max,handleSeparatorPointerDown:e=>{if(e.button!==0)return;e.preventDefault(),D();try{e.currentTarget.setPointerCapture?.(e.pointerId)}catch{}C.current=e.clientY,S.current=x.current;let t=e=>{let t=e.clientY-C.current,n=c(S.current+t,l.min,l.max);T(n)},n=()=>{D(),E(w(),S.current)};v.current=()=>{document.removeEventListener(`pointermove`,t),document.removeEventListener(`pointerup`,n),document.removeEventListener(`pointercancel`,n)},document.addEventListener(`pointermove`,t),document.addEventListener(`pointerup`,n),document.addEventListener(`pointercancel`,n)},handleSeparatorKeyDown:e=>{let t;e.key===`ArrowUp`&&(t=o(_,-1,u)),e.key===`ArrowDown`&&(t=o(_,1,u)),e.key===`Home`&&(t=l.min),e.key===`End`&&(t=l.max),t!==void 0&&(e.preventDefault(),E(t,_))}}}var L;function R(){return(R=e((()=>{L=n()})))()}function re({height:e,defaultHeight:t=ie,minHeight:n=ae,maxHeight:r=V,heightStep:a=H,onHeightChange:o,className:s,viewportClassName:c,separatorClassName:l,separatorAriaLabel:u=`Изменить высоту рабочей области`,children:d}){let f=`${(0,z.useId)()}-viewport`,p=ne({height:e,defaultHeight:t,minHeight:n,maxHeight:r,heightStep:a,onHeightChange:o});return(0,B.jsxs)(`div`,{className:i(F.container,s),"data-ui":`splitter-height-container`,children:[(0,B.jsx)(`div`,{id:f,className:i(F.viewport,c),style:{height:p.height},"data-ui":`splitter-height-viewport`,children:d}),(0,B.jsx)(`div`,{role:`separator`,"aria-label":u,"aria-orientation":`horizontal`,"aria-controls":f,"aria-valuemin":p.minHeight,"aria-valuemax":p.maxHeight,"aria-valuenow":p.height,"aria-valuetext":`${p.height} px`,tabIndex:0,className:i(F.separator,l),onPointerDown:p.handleSeparatorPointerDown,onKeyDown:p.handleSeparatorKeyDown,"data-ui":`splitter-height-separator`})]})}var z,B,ie,ae,V,H;function U(){return(U=e((()=>{z=n(),a(),I(),R(),B=r(),ie=480,ae=240,V=1200,H=20,re.__docgenInfo={description:`Опциональная внешняя композиция для Splitter: область панелей получает
|
|
2
2
|
независимую высоту, а расположенный снизу separator изменяет весь viewport.
|
|
3
3
|
Внутренние Splitter при этом продолжают управлять только своими пропорциями.`,methods:[],displayName:`SplitterHeightContainer`,props:{defaultHeight:{defaultValue:{value:`480`,computed:!1},required:!1},minHeight:{defaultValue:{value:`240`,computed:!1},required:!1},maxHeight:{defaultValue:{value:`1200`,computed:!1},required:!1},heightStep:{defaultValue:{value:`20`,computed:!1},required:!1},separatorAriaLabel:{defaultValue:{value:`"Изменить высоту рабочей области"`,computed:!1},required:!1}}}})))()}var oe=t({AdjustableHeight:()=>$,Basic:()=>Y,Constrained:()=>Q,Horizontal:()=>X,NestedFourPanels:()=>Z,__namedExportsOrder:()=>ue,default:()=>le});function W({children:e}){return(0,q.jsx)(`div`,{style:{height:490},children:e})}function G({title:e,description:t,items:n=[]}){return(0,q.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,q.jsxs)(`div`,{children:[(0,q.jsx)(`h2`,{children:e}),(0,q.jsx)(`p`,{children:t})]}),n.length>0&&(0,q.jsx)(`div`,{style:{display:`grid`,gap:`var(--space-sm)`},children:n.map(e=>(0,q.jsx)(`div`,{style:{padding:`var(--space-sm) var(--space-md)`,borderRadius:`var(--radius-sm)`,background:`var(--surface-1)`},children:e},e))})]})}function K(e){return(0,q.jsx)(W,{children:(0,q.jsxs)(E,{...e,children:[(0,q.jsx)(G,{title:`Навигация`,description:`Левая панель подходит для фильтров, дерева разделов, списка сущностей или структуры документа.`,items:[`Раздел 1`,`Раздел 2`,`Раздел 3`,`Раздел 4`]}),(0,q.jsx)(G,{title:`Рабочая область`,description:`Правая панель обычно содержит детальный контент: таблицу, карточку объекта, форму или вкладки.`,items:[`Текущий документ`,`История изменений`,`Комментарии`,`Связанные объекты`,`Параметры отображения`]})]})})}function se(e){return(0,q.jsx)(W,{children:(0,q.jsxs)(E,{...e,children:[(0,q.jsxs)(E,{direction:`horizontal`,initial:.58,min:.25,max:.75,children:[(0,q.jsx)(G,{title:`Список`,description:`Верхняя левая панель может держать навигацию или результат поиска.`,items:[`Поиск`,`Фильтр по статусу`,`Группы`,`Быстрые действия`]}),(0,q.jsx)(G,{title:`Подробности`,description:`Нижняя левая панель подходит для связанного контента по выбранному элементу.`,items:[`Свойства`,`Ответственный`,`Теги`,`Контекст`]})]}),(0,q.jsxs)(E,{direction:`horizontal`,initial:.36,min:.2,max:.8,children:[(0,q.jsx)(G,{title:`Превью`,description:`Верхняя правая панель может содержать документ, схему, карту или live-просмотр.`,items:[`Предпросмотр файла`,`Масштаб 100%`,`Слой подсветки`]}),(0,q.jsx)(G,{title:`Журнал`,description:`Нижняя правая панель часто используется для событий, логов или вспомогательных данных.`,items:[`10:31 Импорт завершён`,`10:34 Индексация`,`10:36 Синхронизация`,`10:38 Проверка целостности`]})]})]})})}function ce(e){return(0,q.jsx)(W,{children:(0,q.jsxs)(E,{...e,children:[(0,q.jsx)(G,{title:`Фиксированные ограничения`,description:"У этой панели ужаты границы `min` и `max`, поэтому splitter нельзя увести слишком далеко.",items:[`Нажмите на разделитель`,`Используйте стрелки`,`Home = минимум`,`End = максимум`]}),(0,q.jsx)(G,{title:`Проверка доступности`,description:`Сценарий помогает проверить клавиатурное управление, устойчивость границ и отсутствие рывков при drag.`,items:[`ArrowLeft / ArrowRight`,`ArrowUp / ArrowDown`,`Перетаскивание мышью`,`Перетаскивание на тач-устройстве`]})]})})}var q,J,le,Y,X,Z,Q,$,ue;function de(){return(de=e((()=>{N(),U(),q=r(),{useArgs:J}=__STORYBOOK_MODULE_PREVIEW_API__,le={title:`UI/Splitter`,component:E,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}},onChange:{description:`Получает итоговую долю первой панели после завершения drag или клавиатурного шага.`,control:!1},collapsedPane:{description:`Сворачивает начальную или конечную панель.`,control:`inline-radio`,options:[null,`start`,`end`]},children:{description:`Splitter ожидает ровно два прямых дочерних элемента. Для большего количества областей используйте вложенные Splitter.`,control:!1}}},Y={name:`Две панели`,render:function(){let[e]=J();return(0,q.jsx)(K,{...e})}},X={name:`Горизонтальное разделение`,render:function(){let[e]=J();return(0,q.jsx)(K,{...e})},args:{direction:`horizontal`,initial:.55}},Z={name:`Четыре панели через вложенность`,render:function(){let[e]=J();return(0,q.jsx)(se,{...e})},args:{initial:.48,min:.25,max:.75}},Q={name:`Ограничения и клавиатура`,render:function(){let[e]=J();return(0,q.jsx)(ce,{...e})},args:{initial:.35,min:.25,max:.55}},$={name:`Изменяемая высота контейнера`,render:function(){let[e]=J();return(0,q.jsx)(re,{defaultHeight:360,minHeight:240,maxHeight:720,heightStep:20,children:(0,q.jsxs)(E,{...e,children:[(0,q.jsx)(G,{title:`Основная область`,description:`Separator под Splitter изменяет весь viewport, не меняя доли панелей.`,items:[`Высота хранится отдельно`,`Доли панелей остаются независимыми`]}),(0,q.jsx)(G,{title:`Дополнительная область`,description:`onHeightChange можно связать с внешними настройками пользователя.`,items:[`Минимум 240 px`,`Шаг клавиатуры 20 px`,`Максимум 720 px`]})]})})}},Y.parameters={...Y.parameters,docs:{...Y.parameters?.docs,source:{originalSource:`{
|
|
4
4
|
name: "Две панели",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-BwMqUCxF.js";import{i as n,r}from"./react-Bl2r1tuC.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-DvVybOVR.js";import{a as p,i as m,n as h,r as g,t as _}from"./StateSelect.stories-DO2hudAT.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.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{n}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{n}from"./iframe-BwMqUCxF.js";import{a as r,i}from"./utils-DiA8FLax.js";import{a,h as o,o as s}from"./formatters-DVE1YVNQ-CimVV-di.js";import{n as c,t as l}from"./Select-DEZyRp-R.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":s[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:o,value:s,onChange:c,options:u=a,stateMeta:d,className:f,clearable:p,required:m,error:h}){let g=(0,k.useMemo)(()=>Array.from(new Set(u)),[u]),_=g.some(e=>w(d?.[e])),v={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}),_?E(d?.[e]):null]}),buttonClassName:x.button,optionsContentClassName:r(_?x.optionsDetailed:x.optionsPalette),getOptionClassName:()=>r(x.option,_?x.optionDetailed:x.optionPalette)};return(0,A.jsx)(l,{label:e,description:t,disabled:n,placeholder:i,size:o,value:s,onChange:c,options:g,className:f,clearable:p,required:m,error:h,...v})}var k,A;function j(){return(j=e((()=>{k=t(),o(),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:``},required:{required:!1,tsType:{name:`boolean`},description:``},error:{required:!1,tsType:{name:`string`},description:``}},composes:[`Omit`]}})))()}export{j as n,O as t};
|
package/storybook-static/assets/{StateSelect.stories-ClSYkdz8.js → StateSelect.stories-DO2hudAT.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{n,t as r}from"./circle-check-
|
|
1
|
+
import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{n,t as r}from"./circle-check-CS9puXbe.js";import{i,n as a,r as o,t as s}from"./info-BzoIh38o.js";import{n as c,t as l}from"./triangle-alert-CA_CSo3b.js";import{i as u,n as d,r as f}from"./iframe-BwMqUCxF.js";import{n as p,t as m}from"./StateSelect-U7CVxa71.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:`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-DkW27tQK.js";import{n as t}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-BwMqUCxF.js";import{i as n,r}from"./react-Bl2r1tuC.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-DvVybOVR.js";import{a as p,i as m,n as h,o as g,r as _,t as v}from"./StatusIndicator.stories-BThF4RAA.js";function y(e){let t={code:`code`,h2:`h2`,p:`p`,pre:`pre`,...n(),...e.components};return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(s,{of:m,parameters:{atomicCanvas:!0,layout:`padded`,docs:{toc:!0}}}),`
|
|
2
2
|
`,(0,x.jsx)(u,{children:`StatusIndicator`}),`
|
|
3
3
|
`,(0,x.jsx)(o,{children:`Компактный цветовой маркер состояния`}),`
|
|
4
4
|
`,(0,x.jsx)(t.p,{children:`StatusIndicator помогает быстро считать состояние строки, карточки или процесса. Компонент использует семантические status-токены темы и сохраняет цветовую схему во всех host-проектах.`}),`
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{n}from"./iframe-
|
|
1
|
+
import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{n}from"./iframe-BwMqUCxF.js";import{a as r,i}from"./utils-DiA8FLax.js";var a,o,s,c,l,u,d,f,p,m,h,g,_;function v(){return(v=e((()=>{a=`bJvCcD`,o=`UhVDLa`,s=`kNg89H`,c=`bRw83O`,l=`VQh7sh`,u=`zdESHk`,d=`-KLln9`,f=`Ak9M6g`,p=`_43MsRd`,m=`FpGv5-`,h=`y-1aex`,g=`_56N544`,_={statusIndicator:a,neutral:o,accent:s,info:c,success:l,warning:u,error:d,sizeSm:f,sizeMd:p,sizeLg:m,animated:h,statusIndicatorPulse:g}})))()}function y({tone:e=`neutral`,size:t=`md`,animated:n=!1,className:i,...a}){let o=a.role!==void 0||a[`aria-label`]!==void 0||a[`aria-labelledby`]!==void 0,s=a[`aria-hidden`]??(!o||void 0);return(0,b.jsx)(`span`,{...a,className:r(_.statusIndicator,x[e],S[t],n&&_.animated,i),"aria-hidden":s,"data-ui":`status-indicator`})}var b,x,S;function C(){return(C=e((()=>{i(),v(),b=n(),x={accent:_.accent,neutral:_.neutral,info:_.info,success:_.success,warning:_.warning,error:_.error},S={sm:_.sizeSm,md:_.sizeMd,lg:_.sizeLg},y.__docgenInfo={description:`Декоративный цветовой маркер статуса. Передавайте смысл состояния видимым текстом рядом с индикатором.`,methods:[],displayName:`StatusIndicator`,props:{tone:{required:!1,tsType:{name:`Exclude`,elements:[{name:`union`,raw:`"accent" | "neutral" | "brand" | "error" | "warning" | "success" | "info"`,elements:[{name:`literal`,value:`"accent"`},{name:`literal`,value:`"neutral"`},{name:`literal`,value:`"brand"`},{name:`literal`,value:`"error"`},{name:`literal`,value:`"warning"`},{name:`literal`,value:`"success"`},{name:`literal`,value:`"info"`}]},{name:`literal`,value:`"brand"`}],raw:`Exclude<UiTone, "brand">`},description:``,defaultValue:{value:`"neutral"`,computed:!1}},size:{required:!1,tsType:{name:`Extract`,elements:[{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"`}]},{name:`union`,raw:`"sm" | "md" | "lg"`,elements:[{name:`literal`,value:`"sm"`},{name:`literal`,value:`"md"`},{name:`literal`,value:`"lg"`}]}],raw:`Extract<UiSize, "sm" | "md" | "lg">`},description:``,defaultValue:{value:`"md"`,computed:!1}},animated:{required:!1,tsType:{name:`boolean`},description:``,defaultValue:{value:`false`,computed:!1}}},composes:[`Omit`]}})))()}var w=t({Animated:()=>P,Basic:()=>j,Sizes:()=>N,Tones:()=>M,__namedExportsOrder:()=>F,default:()=>A}),T,E,D,O,k,A,j,M,N,P,F;function I(){return(I=e((()=>{C(),T=n(),E={display:`flex`,alignItems:`center`,flexWrap:`wrap`,gap:`var(--space-lg)`},D={display:`inline-flex`,alignItems:`center`,gap:`var(--space-sm)`},O=[{tone:`accent`,label:`Текущий`},{tone:`neutral`,label:`Неизвестно`},{tone:`info`,label:`В работе`},{tone:`success`,label:`Готово`},{tone:`warning`,label:`Требует внимания`},{tone:`error`,label:`Ошибка`}],k=[{size:`sm`,label:`Small`},{size:`md`,label:`Medium`},{size:`lg`,label:`Large`}],A={title:`UI/StatusIndicator`,component:y,args:{tone:`info`,size:`md`,animated:!1},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{tone:{description:`Семантический цвет индикатора.`,control:`inline-radio`,options:[`accent`,`neutral`,`info`,`success`,`warning`,`error`]},size:{description:`Размер индикатора.`,control:`inline-radio`,options:[`sm`,`md`,`lg`]},animated:{description:`Включает спокойную пульсацию для изменяющегося или активного состояния.`,control:`boolean`}}},j={render:e=>(0,T.jsxs)(`span`,{style:D,children:[(0,T.jsx)(y,{...e}),(0,T.jsx)(`span`,{children:`В работе`})]})},M={render:()=>(0,T.jsx)(`div`,{style:E,children:O.map(({tone:e,label:t})=>(0,T.jsxs)(`span`,{style:D,children:[(0,T.jsx)(y,{tone:e}),(0,T.jsx)(`span`,{children:t})]},e))})},N={render:()=>(0,T.jsx)(`div`,{style:E,children:k.map(({size:e,label:t})=>(0,T.jsxs)(`span`,{style:D,children:[(0,T.jsx)(y,{size:e,tone:`success`}),(0,T.jsx)(`span`,{children:t})]},e))})},P={render:()=>(0,T.jsxs)(`span`,{style:D,role:`status`,children:[(0,T.jsx)(y,{tone:`info`,animated:!0}),(0,T.jsx)(`span`,{children:`Синхронизация`})]})},j.parameters={...j.parameters,docs:{...j.parameters?.docs,source:{originalSource:`{
|
|
2
2
|
render: args => <span style={itemStyle}>
|
|
3
3
|
<StatusIndicator {...args} />
|
|
4
4
|
<span>В работе</span>
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-BwMqUCxF.js";import{n,t as r}from"./createControlledStoryRender-BouhvX-R.js";import{n as i,t as a}from"./Toggle-DVuWIK21.js";function o(e,t){return typeof e==`string`?e:t}var s,c;function l(){return(l=e((()=>{s=`true`,c=`false`})))()}function u({value:e,onChange:t,checkedValue:n,uncheckedValue:r,defaultChecked:i,...l}){let u=o(n,s),f=o(r,c),p=e===u;return(0,d.jsx)(a,{...l,value:p,onChange:e=>t(e?u:f)})}var d;function f(){return(f=e((()=>{l(),i(),d=t(),u.__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:``}}}})))()}var p,m,h,g,_;function v(){return(v=e((()=>{n(),f(),p=t(),m=r((e,t)=>(0,p.jsx)(u,{...e,onChange:n=>{e.onChange(n),t({value:n})}})),h={title:`UI/Toggle/StringToggle`,component:u,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`]}}},g={render:m},g.parameters={...g.parameters,docs:{...g.parameters?.docs,source:{originalSource:`{
|
|
2
2
|
render: renderStringToggleStory
|
|
3
3
|
}`,...g.parameters?.docs?.source}}},_=[`ManagerScope`]})))()}v();export{g as ManagerScope,_ as __namedExportsOrder,h as default};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{a as e,n as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{n as r,t as i}from"./circle-check-
|
|
1
|
+
import{a as e,n as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{n as r,t as i}from"./circle-check-CS9puXbe.js";import{i as a,n as o,r as s}from"./iframe-BwMqUCxF.js";import{a as c,i as l}from"./utils-DiA8FLax.js";import{n as u,t as d}from"./ui.module-l7VCYIW-.js";var f,p;function m(){return(m=t((()=>{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=t((()=>{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=t((()=>{S=e(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-DkW27tQK.js";import{n as t}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-BwMqUCxF.js";import{i as n,r}from"./react-Bl2r1tuC.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-DvVybOVR.js";import{a as p,i as m,n as h,r as g,t as _}from"./Switch.stories-4k1xDlbq.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-DkW27tQK.js";import{n,t as r}from"./Switch-
|
|
1
|
+
import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{n,t as r}from"./Switch-DuR6uVds.js";import{n as i}from"./iframe-BwMqUCxF.js";import{n as a,t as o}from"./createControlledStoryRender-BouhvX-R.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:`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-DkW27tQK.js";import{n as t}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-BwMqUCxF.js";import{i as n,r}from"./react-Bl2r1tuC.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-DvVybOVR.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,v as A}from"./Table.stories-c1Yu2DYz.js";function j(e){let t={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...n(),...e.components};return(0,N.jsxs)(N.Fragment,{children:[(0,N.jsx)(s,{of:D,parameters:{docs:{toc:!0}}}),`
|
|
2
2
|
`,(0,N.jsx)(u,{children:`Table`}),`
|
|
3
3
|
`,(0,N.jsxs)(o,{children:[`Плоская таблица как React-альтернатива `,(0,N.jsx)(t.code,{children:`sap.m.Table`})]}),`
|
|
4
4
|
`,(0,N.jsxs)(t.p,{children:[(0,N.jsx)(t.code,{children:`Table`}),` предназначен для плоских данных и по поведению осознанно сближен с `,(0,N.jsx)(t.code,{children:`TreeTable`}),`.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{n as r,r as i,t as a}from"./sortable-
|
|
1
|
+
import{n as e,r as t}from"./rolldown-runtime-DkW27tQK.js";import{t as n}from"./react-BZJXY1be.js";import{n as r,r as i,t as a}from"./sortable-Bikh9uZC.js";import{n as o}from"./iframe-BwMqUCxF.js";import{a as ee,t as te}from"./array-D-_yMMUK-BBmW5vUr.js";import{h as ne,u as re}from"./formatters-DVE1YVNQ-CimVV-di.js";import{n as ie,t as ae}from"./useTable-CK68Q4S4.js";import{_ as oe,a as se,c as ce,d as le,f as ue,g as de,h as fe,i as pe,l as me,m as he,n as ge,o as _e,p as ve,r as ye,s as be,t as xe,u as Se,v as Ce,y as we}from"./FormattedTableCell-SClhK1-d.js";import{n as Te,t as s}from"./createControlledStoryRender-BouhvX-R.js";import{A as Ee,D as c,O as l,T as De,_ as Oe,a as ke,b as Ae,d as je,g as Me,i as u,k as Ne}from"./odata-B4ZS5oGx.js";var d,f,Pe;function Fe(){return(Fe=e((()=>{d=`hKghZt`,f=`QsLRvS`,Pe={selectedIndicatorCell:d,sentinel:f}})))()}function Ie(e,t){return String(t)}function p({title:e,isLoading:t,isFetching:n,data:r,columns:a,selectionMode:o=`none`,selectedRowIds:ee,getRowId:ne,className:ae,minHeight:se,tableClassName:le,columnVisibility:de,defaultColumnVisibility:pe,columnOrder:me,defaultColumnOrder:he,columnSizing:ge,defaultColumnSizing:be,columnPinning:we,defaultColumnPinning:Te,enableColumnResizing:s=!1,enableColumnReordering:Ee=!1,rowReordering:c,columnResizeMinWidth:l,onColumnVisibilityChange:De,onColumnOrderChange:ke,onColumnSizingChange:Ae,onColumnPinningChange:je,onRowClick:u,onRowSelectionChange:Ne,onReachEnd:d,getRowCanSelect:f,getRowClassName:Fe,renderHeaderContextMenu:p,renderCellContent:g}){let _=(0,m.useMemo)(()=>r??[],[r]),v=(0,m.useMemo)(()=>fe(a),[a]),y=ne??Ie,b=(0,m.useMemo)(()=>new Map(_.map((e,t)=>[y(e,t),e])),[y,_]),Le=(0,m.useMemo)(()=>Array.from(b.keys()),[b]),x=(0,m.useRef)(null),S=(0,m.useRef)(null),{rowSelection:Re,activateRowSelection:C}=Me({availableRowIds:Le,rowById:b,selectionMode:o,selectedRowIds:ee,onRowSelectionChange:Ne}),{columnVisibility:w,onColumnVisibilityChange:T}=_e({columnVisibility:de,defaultColumnVisibility:pe,onColumnVisibilityChange:De}),{columnOrder:E,onColumnOrderChange:ze}=ue({columnOrder:me,defaultColumnOrder:he,onColumnOrderChange:ke}),{columnSizing:D,onColumnSizingChange:Be}=ce({columnSizing:ge,defaultColumnSizing:be,columnResizeMinWidth:l,onColumnSizingChange:Ae}),{columnPinning:O,onColumnPinningChange:Ve}=Se({columnPinning:we,defaultColumnPinning:Te,onColumnPinningChange:je}),k=(0,m.useMemo)(()=>({columnOrder:E,columnPinning:O,columnSizing:D,columnVisibility:w}),[E,O,D,w]),He=(0,m.useEffectEvent)(()=>{d?.()});(0,m.useEffect)(()=>{if(!d||!x.current||!S.current||t)return;let e=new IntersectionObserver(e=>{e[0]?.isIntersecting&&He()},{root:x.current,threshold:.1});return e.observe(S.current),()=>e.disconnect()},[t,d,_.length]);let A=ie({features:Oe,data:_,columns:a,state:{columnOrder:E,columnPinning:O,columnSizing:D,columnVisibility:w,rowSelection:Re},onColumnOrderChange:ze,onColumnPinningChange:Ve,onColumnSizingChange:Be,onColumnVisibilityChange:T,getRowId:(e,t)=>y(e,t),enableMultiRowSelection:o===`multi`,enableRowSelection:e=>o===`none`?!1:!f||f(e.original)}),j=Ce(A,k),M=A.getRowModel().rows,N=(0,m.useMemo)(()=>M.map(e=>e.id),[M]),Ue=(0,m.useMemo)(()=>ve({rows:M,columns:j}),[M,j]),P=j[0]?.id;return(0,h.jsx)(ye,{table:A,columnState:k,title:e,isLoading:t,isFetching:n,className:ae,minHeight:se,tableClassName:le,selectionMode:o,scrollableRef:x,onActivateRow:o!==`none`||u?e=>{C(e.id,e.getCanSelect()),u?.(e.original)}:void 0,isRowInteractive:e=>!!(u||o!==`none`&&e.getCanSelect()),getRowClassName:e=>Fe?.(e.original),getCellClassName:({row:e,cell:t})=>t.column.id===P&&e.getIsSelected()?Pe.selectedIndicatorCell:void 0,getCellLayout:({cell:e})=>Ue.get(e.id),renderHeaderContextMenu:p,enableColumnResizing:s,enableColumnReordering:Ee,rowReordering:c?{disabled:c.disabled,onDragEnd:e=>{if(!c||c.disabled)return;let t=i({event:e,items:N});t&&c.onReorder(te(M.map(e=>e.original),t.fromIndex,t.toIndex))}}:void 0,columnResizeMinWidth:l,renderCellContent:e=>{let t=re({field:v.runtimeByColumnId[e.cell.column.id],rawValue:e.cell.getValue(),rowData:e.row.original,rowKind:`plain`}),n=oe({columnId:e.cell.column.id,runtimeByColumnId:v.runtimeByColumnId,customCellColumnIds:v.customCellColumnIds})?(0,h.jsx)(xe,{displayValue:t,align:e.columnMeta?.align}):e.defaultContent;return g?g({...e,defaultContent:n,displayValue:t}):n},afterTableContent:d?(0,h.jsx)(`div`,{ref:S,className:Pe.sentinel,"aria-hidden":`true`}):null})}var m,h;function g(){return(g=e((()=>{m=n(),ee(),ne(),Ae(),ae(),pe(),he(),de(),ge(),we(),le(),me(),be(),se(),r(),Fe(),h=o(),p.__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
|
|
package/storybook-static/assets/{TableEditor.stories-Mh6q2awx.js → TableEditor.stories-hIvit7LX.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{n,t as r}from"./CheckBox-nBqHJGY9.js";import{n as i}from"./iframe-BmGorvhi.js";import{a,u as o}from"./array-D-_yMMUK-BBmW5vUr.js";import{n as s,t as c}from"./Button-C-uRygWz.js";import{n as l,t as u}from"./useTable-CK68Q4S4.js";import{a as d,l as f,t as p}from"./Input-YuUUu0DD.js";import{Et as m,Mt as h,Nt as g,Pt as _,Tt as v,n as ee,wt as te}from"./tableFeatures-Dx3U-F9E.js";import{n as ne,t as re}from"./Dialog-B9ltl4hS.js";import{n as ie,t as ae}from"./Textarea-Bz9O1y1I.js";function y(){if(crypto.randomUUID)return crypto.randomUUID();let e=new Uint8Array(16);crypto.getRandomValues(e),e[6]=e[6]&15|64,e[8]=e[8]&63|128;let t=Array(256);for(let e=0;e<256;e++)t[e]=(e+256).toString(16).slice(1);return t[e[0]]+t[e[1]]+t[e[2]]+t[e[3]]+`-`+t[e[4]]+t[e[5]]+`-`+t[e[6]]+t[e[7]]+`-`+t[e[8]]+t[e[9]]+`-`+t[e[10]]+t[e[11]]+t[e[12]]+t[e[13]]+t[e[14]]+t[e[15]]}function oe(e){let t=e.getRowModel().rows,n=e.atoms.rowPinning?.get();if(!n||!n.top.length&&!n.bottom.length)return{rows:t,sectionStarts:pe};let r=e,i=r.getTopRows?.()??[],a=r.getCenterRows?.()??t,o=r.getBottomRows?.()??[];return{rows:[...i,...a,...o],sectionStarts:[i.length,i.length+a.length]}}function se(e,t){let n=t.getVisibleCells?.()??t.getAllCells(),r=Array(n.length);for(let e=0;e<n.length;e++)r[e]=n[e].column;let i=e.atoms.columnPinning?.get(),a=0,o=r.length;if(i){for(;a<o&&i.start.includes(r[a].id);)a++;for(;o>a&&i.end.includes(r[o-1].id);)o--}return{columns:r,centerStart:a,centerEnd:o}}function b(e){return e.columnDef.enableCellSpanning===!1?!1:e.table.options.enableCellSpanning??!0}function x(e){let{rows:t,sectionStarts:n}=oe(e),r=t.length,i={colSpans:fe,columnIndexes:de,rowSpans:ue,rows:t};if(!r||e.options.enableCellSpanning===!1)return i;let{columns:a,centerStart:o,centerEnd:s}=se(e,t[0]),c=a.length;if(!c)return i;let l=_();for(let e=0;e<c;e++)l[a[e].id]=e;let u=new Uint8Array(r);for(let e=0;e<n.length;e++){let t=n[e];t<r&&(u[t]=1)}for(let e=0;e<r;e++){let n=t[e];n._cellSpanRowIndex=e;let r=e>0?t[e-1]:void 0;(r&&(n.depth!==r.depth||n.parentId!==r.parentId)||n.getIsGrouped?.()===!0)&&(u[e]=1)}let d=[],f=!1;for(let n=0;n<c;n++){let i=a[n],l=i.columnDef.spanColumns;if(l===void 0||!b(i))continue;let u=n<o?o:n<s?s:c;for(let a=0;a<r;a++){let r=d[a];if(r&&r[n]===0)continue;let o=g(l)?l({column:i,row:t[a],table:e}):l;if(!(o>1))continue;let s=Math.min(o,u-n);if(s<2)continue;let p=r??(d[a]=new Int32Array(c).fill(1));p[n]=s;for(let e=n+1;e<n+s;e++)p[e]=0;f=!0}}let p=_();for(let n=0;n<c;n++){let i=a[n],o=i.columnDef.spanRows;if(!o||!b(i)||i.getIsGrouped?.()===!0)continue;let s=i.id,c=g(o)?o:void 0,l=new Int32Array(r).fill(1),m=!1,h=-1,_,v=1;for(let a=0;a<r;a++){let r=t[a],o=f?d[a]:void 0,p=o?o[n]:1;if(p===0){h=-1;continue}let g=r.getValue(s);if(h!==-1&&!u[a]&&p===v&&(c?c({anchorRow:t[h],anchorValue:_,column:i,previousRow:t[a-1],row:r,table:e,value:g}):g!=null&&Object.is(g,_))){l[a]=0,l[h]=l[h]+1,m=!0;continue}h=a,_=g,v=p}m&&(p[s]=l)}return{colSpans:d,columnIndexes:l,rowSpans:p,rows:t}}function S(e,t){let n=t.row._cellSpanRowIndex;return n===void 0||e.rows[n]!==t.row?-1:n}function C(e){let t=e.row.table,n=m(t,`getCellSpanIndex`,x),r=n.rowSpans[e.column.id];if(!r)return 1;let i=S(n,e);return i===-1?1:r[i]}function ce(e){let t=e.row.table,n=m(t,`getCellSpanIndex`,x),r=S(n,e);if(r===-1)return 1;let i=n.colSpans[r];if(!i)return 1;let a=n.columnIndexes[e.column.id];return a===void 0?1:i[a]}function le(e){return C(e)===0||ce(e)===0}var ue,de,fe,pe;function me(){return(me=e((()=>{h(),ue=_(),de=_(),fe=[],pe=[]})))()}var w;function T(){return(T=e((()=>{h(),me(),w={getDefaultTableOptions:()=>({enableCellSpanning:!0}),initRowInstanceData:e=>{e._cellSpanRowIndex=-1},assignCellPrototype:(e,t)=>{te(`cellSpanningFeature`,e,t,{cell_getColSpan:{fn:e=>ce(e)},cell_getIsCovered:{fn:e=>le(e)},cell_getRowSpan:{fn:e=>C(e)}})},constructTableAPIs:e=>{v(`cellSpanningFeature`,e,{table_getCellSpanIndex:{fn:()=>x(e),memoDeps:()=>[e.getRowModel().rows,e.atoms.rowPinning?.get(),e.options.keepPinnedRows,e.atoms.columnVisibility?.get(),e.atoms.columnOrder?.get(),e.atoms.columnPinning?.get(),e.atoms.grouping?.get(),e.options.columns,e.options.groupedColumnMode,e.options.enableCellSpanning]}})}}})))()}function E(e,t){return e.row<t.row+t.rowSpan&&t.row<e.row+e.rowSpan&&e.column<t.column+t.columnSpan&&t.column<e.column+e.columnSpan}function D(e){let t=e.rows.length,n=e.columns.length;if(e.version!==1||!t||!n||t*n>2e4)throw Error(`Недопустимый размер таблицы.`);if(!Number.isInteger(e.headerRowCount)||e.headerRowCount<0||e.headerRowCount>t)throw Error(`Некорректное число строк заголовка.`);let r=new Set,i=e=>{if(!e||r.has(e))throw Error(`Идентификаторы строк, столбцов и ячеек должны быть уникальными.`);r.add(e)};for(let t of e.columns)if(i(t.id),t.width!==null&&(!Number.isFinite(t.width)||t.width<=0))throw Error(`Некорректная ширина столбца.`);for(let t of e.rows){if(i(t.id),t.cells.length!==n)throw Error(`Все строки должны иметь одинаковое число ячеек.`);t.cells.forEach(e=>i(e.id))}let a=new Set;for(let t of e.merges){if(O(e,t),t.rowSpan*t.columnSpan===1)throw Error(`Объединение должно содержать несколько ячеек.`);if(t.row<e.headerRowCount&&t.row+t.rowSpan>e.headerRowCount)throw Error(`Нельзя объединять заголовок с основной частью таблицы.`);for(let e=t.row;e<t.row+t.rowSpan;e++)for(let r=t.column;r<t.column+t.columnSpan;r++){let t=e*n+r;if(a.has(t))throw Error(`Объединённые области пересекаются.`);a.add(t)}}}function O(e,t){if(![t.row,t.column,t.rowSpan,t.columnSpan].every(Number.isInteger)||t.row<0||t.column<0||t.rowSpan<1||t.columnSpan<1||t.row+t.rowSpan>e.rows.length||t.column+t.columnSpan>e.columns.length)throw Error(`Выделение выходит за границы таблицы.`)}function k(e,t){let n={...t,rowSpan:1,columnSpan:1};return O(e,n),e.merges.find(e=>E(e,n))??n}function A(e,t,n){let r={row:Math.min(t.row,n.row),column:Math.min(t.column,n.column),rowSpan:Math.abs(t.row-n.row)+1,columnSpan:Math.abs(t.column-n.column)+1};O(e,r);let i=!0;for(;i;){i=!1;for(let t of e.merges){if(!E(r,t))continue;let e=Math.min(r.row,t.row),n=Math.min(r.column,t.column),a=Math.max(r.row+r.rowSpan,t.row+t.rowSpan)-e,o=Math.max(r.column+r.columnSpan,t.column+t.columnSpan)-n;(e!==r.row||n!==r.column||a!==r.rowSpan||o!==r.columnSpan)&&(r={row:e,column:n,rowSpan:a,columnSpan:o},i=!0)}}return r}function he(e,t,n){D(e);let r=A(e,t,n);if(r.rowSpan*r.columnSpan===1)return e;let i=e.merges.filter(e=>E(e,r));if(i.length===1&&r.row===i[0].row&&r.column===i[0].column&&r.rowSpan===i[0].rowSpan&&r.columnSpan===i[0].columnSpan)return e;let a={...e,merges:[...e.merges.filter(e=>!E(e,r)),r]};return D(a),a}function ge(e,t){D(e);let n=k(e,t);return n.rowSpan*n.columnSpan===1?e:{...e,merges:e.merges.filter(e=>e!==n)}}function j(e,t,n,r,i,a=`body`){D(e);let o=t===`row`?e.rows.length:e.columns.length;if(!Number.isInteger(n)||n<0||n>o)throw Error(`Некорректная позиция вставки.`);if(i.length!==(t===`row`?e.columns.length:e.rows.length))throw Error(`Неверное число новых ячеек.`);if(t===`row`&&(a===`header`?n>e.headerRowCount:n<e.headerRowCount))throw Error(`Строка вставляется вне выбранной части таблицы.`);let s=t===`row`?`rowSpan`:`columnSpan`,c=e.merges.map(e=>n<=e[t]?{...e,[t]:e[t]+1}:n<e[t]+e[s]?{...e,[s]:e[s]+1}:e),l=t===`row`?{...e,merges:c,headerRowCount:e.headerRowCount+ +(a===`header`),rows:[...e.rows.slice(0,n),{id:r,cells:i},...e.rows.slice(n)]}:{...e,merges:c,columns:[...e.columns.slice(0,n),{id:r,width:null},...e.columns.slice(n)],rows:e.rows.map((e,t)=>({...e,cells:[...e.cells.slice(0,n),i[t],...e.cells.slice(n)]}))};return D(l),l}function _e(e,t,n){return O(e,{...t,rowSpan:1,columnSpan:1}),Object.is(e.rows[t.row].cells[t.column].value,n)?e:{...e,rows:e.rows.map((e,r)=>r===t.row?{...e,cells:e.cells.map((e,r)=>r===t.column?{...e,value:n}:e)}:e)}}function M(e,t){D(e);let n=t===`row`?e.rows.length:e.columns.length,r=new Set;for(let n of e.merges){let e=t===`row`?n.rowSpan:n.columnSpan;for(let i=1;i<e;i++)r.add(n[t]+i)}let i=[],a=0;for(let e=1;e<=n;e++)(e===n||!r.has(e))&&(i.push({start:a,count:e-a}),a=e);return i}function ve(e,t,n){let r=M(e,t).find(e=>n>=e.start&&n<e.start+e.count);if(!r)throw Error(`Группа не найдена.`);let i=t===`row`?e.rows.length:e.columns.length;if(r.count===i)throw Error(`В таблице должна остаться хотя бы одна строка и один столбец.`);let a=r.start+r.count,o=e.merges.filter(e=>e[t]<r.start||e[t]>=a).map(e=>e[t]<a?e:{...e,[t]:e[t]-r.count}),s=t===`row`?{...e,merges:o,rows:e.rows.filter((e,t)=>t<r.start||t>=a),headerRowCount:e.headerRowCount-(r.start<e.headerRowCount?r.count:0)}:{...e,merges:o,columns:e.columns.filter((e,t)=>t<r.start||t>=a),rows:e.rows.map(e=>({...e,cells:e.cells.filter((e,t)=>t<r.start||t>=a)}))};return D(s),s}function ye(e,t,n,r){let i=M(e,t),a=i.findIndex(e=>n>=e.start&&n<e.start+e.count);if(a<0)throw Error(`Группа не найдена.`);let s=a+r;if(s<0||s>=i.length||t===`row`&&i[a].start<e.headerRowCount!=i[s].start<e.headerRowCount)return e;let c=o(i,a,r===-1?`up`:`down`).flatMap(e=>Array.from({length:e.count},(t,n)=>e.start+n)),l=new Map(c.map((e,t)=>[e,t])),u=e.merges.map(e=>({...e,[t]:l.get(e[t])??e[t]})),d=t===`row`?{...e,merges:u,rows:c.map(t=>e.rows[t])}:{...e,merges:u,columns:c.map(t=>e.columns[t]),rows:e.rows.map(e=>({...e,cells:c.map(t=>e.cells[t])}))};return D(d),d}function N(){return(N=e((()=>{a()})))()}var P,F,I,L,R,z,B,V,H;function U(){return(U=e((()=>{P=`_6ftNrS`,F=`tji4uW`,I=`nVFFYk`,L=`S7CdzG`,R=`emaqLv`,z=`VLG992`,B=`Hr0ghz`,V=`tuhyZe`,H={editor:P,toolbar:F,help:I,scroll:L,table:R,cellContent:z,inspector:B,structure:V}})))()}function be(e){let t=(0,W.useMemo)(()=>[...e.rows],[e]),n=(0,W.useMemo)(()=>e.columns.map((t,n)=>({id:t.id,accessorFn:(t,r)=>{let i=k(e,{row:r,column:n});return e.rows[i.row].cells[i.column].id},spanRows:!0,spanColumns:({row:t})=>{let r=k(e,{row:t.index,column:n});return r.column===n?r.columnSpan:1}})),[e]);return l({features:xe,data:t,columns:n,getRowId:e=>e.id})}var W,xe;function G(){return(G=e((()=>{W=t(),N(),T(),u(),xe=ee({cellSpanningFeature:w})})))()}function K({editor:e,extendSelection:t,disabled:n,renderCell:r,getCellText:i}){let a=(0,q.useId)(),o=(0,q.useRef)(new Map),s=be(e.document),{document:c,selection:l,focus:u}=e;return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`p`,{id:a,className:H.help,children:`Стрелки — переход между ячейками. Shift + стрелки или Shift + щелчок — выделение диапазона. Содержимое выбранной ячейки редактируется под таблицей.`}),(0,J.jsx)(`div`,{className:H.scroll,children:(0,J.jsxs)(`table`,{role:`grid`,"aria-label":c.caption||`Редактор таблицы`,"aria-describedby":a,"aria-multiselectable":`true`,"aria-disabled":n||void 0,className:H.table,children:[(0,J.jsx)(`colgroup`,{children:c.columns.map(e=>(0,J.jsx)(`col`,{style:{width:e.width??180}},e.id))}),(0,J.jsx)(`tbody`,{children:s.getRowModel().rows.map(a=>(0,J.jsx)(`tr`,{"aria-rowindex":a.index+1,"data-header":a.index<c.headerRowCount||void 0,children:a.getAllCells().map((s,d)=>{if(s.getIsCovered())return null;let f=a.index>=l.row&&a.index<l.row+l.rowSpan&&d>=l.column&&d<l.column+l.columnSpan,p={row:a.index,column:d},m=a.original.cells[d],h=a.index<c.headerRowCount?`th`:`td`;return(0,J.jsxs)(h,{role:a.index<c.headerRowCount?`columnheader`:`gridcell`,ref:e=>{e?o.current.set(m.id,e):o.current.delete(m.id)},rowSpan:s.getRowSpan(),colSpan:s.getColSpan(),"aria-colindex":d+1,"aria-label":`Строка ${a.index+1}, столбец ${d+1}: ${i(m)||`Пустая ячейка`}`,"aria-selected":f,tabIndex:!n&&u.row===a.index&&u.column===d?0:-1,onClick:r=>{n||e.select(p,t||r.shiftKey)},onPointerEnter:t=>{!n&&t.pointerType===`mouse`&&t.buttons===1&&e.select(p,!0)},onKeyDown:t=>{if(n||t.altKey||t.ctrlKey||t.metaKey)return;let r;switch(t.key){case`ArrowRight`:r={...p,column:d+s.getColSpan()};break;case`ArrowLeft`:r={...p,column:d-1};break;case`ArrowDown`:r={...p,row:a.index+s.getRowSpan()};break;case`ArrowUp`:r={...p,row:a.index-1};break;case`Home`:r={...p,column:0};break;case`End`:r={...p,column:c.columns.length-1};break;case` `:t.preventDefault(),e.select(p,t.shiftKey);return;default:return}if(t.preventDefault(),r.row<0||r.column<0||r.row>=c.rows.length||r.column>=c.columns.length)return;let i=k(c,r);e.select(r,t.shiftKey),o.current.get(c.rows[i.row].cells[i.column].id)?.focus()},children:[a.index<c.headerRowCount?(0,J.jsx)(`span`,{className:`visuallyHidden`,children:i(m)||`Пустой заголовок`}):null,(0,J.jsx)(`div`,{inert:!0,className:H.cellContent,children:r(m)})]},s.id)})},a.id))})]})})]})}var q,J;function Se(){return(Se=e((()=>{q=t(),N(),G(),U(),J=i(),K.__docgenInfo={description:`Доступная сетка: roving tabindex, стрелки/Shift и выбор диапазона без drag-only действий.`,methods:[],displayName:`TableEditorGrid`,props:{editor:{required:!0,tsType:{name:`signature`,type:`object`,raw:`{
|
|
1
|
+
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{n,t as r}from"./CheckBox-HehqIiiV.js";import{n as i}from"./iframe-BwMqUCxF.js";import{a,u as o}from"./array-D-_yMMUK-BBmW5vUr.js";import{n as s,t as c}from"./Button-CQU_2OUm.js";import{n as l,t as u}from"./useTable-CK68Q4S4.js";import{a as d,l as f,t as p}from"./Input-DFpaY5iR.js";import{Et as m,Mt as h,Nt as g,Pt as _,Tt as v,n as ee,wt as te}from"./tableFeatures-Dx3U-F9E.js";import{n as ne,t as re}from"./Dialog-Pzgcq_7r.js";import{n as ie,t as ae}from"./Textarea-Cpnrb2o_.js";function y(){if(crypto.randomUUID)return crypto.randomUUID();let e=new Uint8Array(16);crypto.getRandomValues(e),e[6]=e[6]&15|64,e[8]=e[8]&63|128;let t=Array(256);for(let e=0;e<256;e++)t[e]=(e+256).toString(16).slice(1);return t[e[0]]+t[e[1]]+t[e[2]]+t[e[3]]+`-`+t[e[4]]+t[e[5]]+`-`+t[e[6]]+t[e[7]]+`-`+t[e[8]]+t[e[9]]+`-`+t[e[10]]+t[e[11]]+t[e[12]]+t[e[13]]+t[e[14]]+t[e[15]]}function oe(e){let t=e.getRowModel().rows,n=e.atoms.rowPinning?.get();if(!n||!n.top.length&&!n.bottom.length)return{rows:t,sectionStarts:pe};let r=e,i=r.getTopRows?.()??[],a=r.getCenterRows?.()??t,o=r.getBottomRows?.()??[];return{rows:[...i,...a,...o],sectionStarts:[i.length,i.length+a.length]}}function se(e,t){let n=t.getVisibleCells?.()??t.getAllCells(),r=Array(n.length);for(let e=0;e<n.length;e++)r[e]=n[e].column;let i=e.atoms.columnPinning?.get(),a=0,o=r.length;if(i){for(;a<o&&i.start.includes(r[a].id);)a++;for(;o>a&&i.end.includes(r[o-1].id);)o--}return{columns:r,centerStart:a,centerEnd:o}}function b(e){return e.columnDef.enableCellSpanning===!1?!1:e.table.options.enableCellSpanning??!0}function x(e){let{rows:t,sectionStarts:n}=oe(e),r=t.length,i={colSpans:fe,columnIndexes:de,rowSpans:ue,rows:t};if(!r||e.options.enableCellSpanning===!1)return i;let{columns:a,centerStart:o,centerEnd:s}=se(e,t[0]),c=a.length;if(!c)return i;let l=_();for(let e=0;e<c;e++)l[a[e].id]=e;let u=new Uint8Array(r);for(let e=0;e<n.length;e++){let t=n[e];t<r&&(u[t]=1)}for(let e=0;e<r;e++){let n=t[e];n._cellSpanRowIndex=e;let r=e>0?t[e-1]:void 0;(r&&(n.depth!==r.depth||n.parentId!==r.parentId)||n.getIsGrouped?.()===!0)&&(u[e]=1)}let d=[],f=!1;for(let n=0;n<c;n++){let i=a[n],l=i.columnDef.spanColumns;if(l===void 0||!b(i))continue;let u=n<o?o:n<s?s:c;for(let a=0;a<r;a++){let r=d[a];if(r&&r[n]===0)continue;let o=g(l)?l({column:i,row:t[a],table:e}):l;if(!(o>1))continue;let s=Math.min(o,u-n);if(s<2)continue;let p=r??(d[a]=new Int32Array(c).fill(1));p[n]=s;for(let e=n+1;e<n+s;e++)p[e]=0;f=!0}}let p=_();for(let n=0;n<c;n++){let i=a[n],o=i.columnDef.spanRows;if(!o||!b(i)||i.getIsGrouped?.()===!0)continue;let s=i.id,c=g(o)?o:void 0,l=new Int32Array(r).fill(1),m=!1,h=-1,_,v=1;for(let a=0;a<r;a++){let r=t[a],o=f?d[a]:void 0,p=o?o[n]:1;if(p===0){h=-1;continue}let g=r.getValue(s);if(h!==-1&&!u[a]&&p===v&&(c?c({anchorRow:t[h],anchorValue:_,column:i,previousRow:t[a-1],row:r,table:e,value:g}):g!=null&&Object.is(g,_))){l[a]=0,l[h]=l[h]+1,m=!0;continue}h=a,_=g,v=p}m&&(p[s]=l)}return{colSpans:d,columnIndexes:l,rowSpans:p,rows:t}}function S(e,t){let n=t.row._cellSpanRowIndex;return n===void 0||e.rows[n]!==t.row?-1:n}function C(e){let t=e.row.table,n=m(t,`getCellSpanIndex`,x),r=n.rowSpans[e.column.id];if(!r)return 1;let i=S(n,e);return i===-1?1:r[i]}function ce(e){let t=e.row.table,n=m(t,`getCellSpanIndex`,x),r=S(n,e);if(r===-1)return 1;let i=n.colSpans[r];if(!i)return 1;let a=n.columnIndexes[e.column.id];return a===void 0?1:i[a]}function le(e){return C(e)===0||ce(e)===0}var ue,de,fe,pe;function me(){return(me=e((()=>{h(),ue=_(),de=_(),fe=[],pe=[]})))()}var w;function T(){return(T=e((()=>{h(),me(),w={getDefaultTableOptions:()=>({enableCellSpanning:!0}),initRowInstanceData:e=>{e._cellSpanRowIndex=-1},assignCellPrototype:(e,t)=>{te(`cellSpanningFeature`,e,t,{cell_getColSpan:{fn:e=>ce(e)},cell_getIsCovered:{fn:e=>le(e)},cell_getRowSpan:{fn:e=>C(e)}})},constructTableAPIs:e=>{v(`cellSpanningFeature`,e,{table_getCellSpanIndex:{fn:()=>x(e),memoDeps:()=>[e.getRowModel().rows,e.atoms.rowPinning?.get(),e.options.keepPinnedRows,e.atoms.columnVisibility?.get(),e.atoms.columnOrder?.get(),e.atoms.columnPinning?.get(),e.atoms.grouping?.get(),e.options.columns,e.options.groupedColumnMode,e.options.enableCellSpanning]}})}}})))()}function E(e,t){return e.row<t.row+t.rowSpan&&t.row<e.row+e.rowSpan&&e.column<t.column+t.columnSpan&&t.column<e.column+e.columnSpan}function D(e){let t=e.rows.length,n=e.columns.length;if(e.version!==1||!t||!n||t*n>2e4)throw Error(`Недопустимый размер таблицы.`);if(!Number.isInteger(e.headerRowCount)||e.headerRowCount<0||e.headerRowCount>t)throw Error(`Некорректное число строк заголовка.`);let r=new Set,i=e=>{if(!e||r.has(e))throw Error(`Идентификаторы строк, столбцов и ячеек должны быть уникальными.`);r.add(e)};for(let t of e.columns)if(i(t.id),t.width!==null&&(!Number.isFinite(t.width)||t.width<=0))throw Error(`Некорректная ширина столбца.`);for(let t of e.rows){if(i(t.id),t.cells.length!==n)throw Error(`Все строки должны иметь одинаковое число ячеек.`);t.cells.forEach(e=>i(e.id))}let a=new Set;for(let t of e.merges){if(O(e,t),t.rowSpan*t.columnSpan===1)throw Error(`Объединение должно содержать несколько ячеек.`);if(t.row<e.headerRowCount&&t.row+t.rowSpan>e.headerRowCount)throw Error(`Нельзя объединять заголовок с основной частью таблицы.`);for(let e=t.row;e<t.row+t.rowSpan;e++)for(let r=t.column;r<t.column+t.columnSpan;r++){let t=e*n+r;if(a.has(t))throw Error(`Объединённые области пересекаются.`);a.add(t)}}}function O(e,t){if(![t.row,t.column,t.rowSpan,t.columnSpan].every(Number.isInteger)||t.row<0||t.column<0||t.rowSpan<1||t.columnSpan<1||t.row+t.rowSpan>e.rows.length||t.column+t.columnSpan>e.columns.length)throw Error(`Выделение выходит за границы таблицы.`)}function k(e,t){let n={...t,rowSpan:1,columnSpan:1};return O(e,n),e.merges.find(e=>E(e,n))??n}function A(e,t,n){let r={row:Math.min(t.row,n.row),column:Math.min(t.column,n.column),rowSpan:Math.abs(t.row-n.row)+1,columnSpan:Math.abs(t.column-n.column)+1};O(e,r);let i=!0;for(;i;){i=!1;for(let t of e.merges){if(!E(r,t))continue;let e=Math.min(r.row,t.row),n=Math.min(r.column,t.column),a=Math.max(r.row+r.rowSpan,t.row+t.rowSpan)-e,o=Math.max(r.column+r.columnSpan,t.column+t.columnSpan)-n;(e!==r.row||n!==r.column||a!==r.rowSpan||o!==r.columnSpan)&&(r={row:e,column:n,rowSpan:a,columnSpan:o},i=!0)}}return r}function he(e,t,n){D(e);let r=A(e,t,n);if(r.rowSpan*r.columnSpan===1)return e;let i=e.merges.filter(e=>E(e,r));if(i.length===1&&r.row===i[0].row&&r.column===i[0].column&&r.rowSpan===i[0].rowSpan&&r.columnSpan===i[0].columnSpan)return e;let a={...e,merges:[...e.merges.filter(e=>!E(e,r)),r]};return D(a),a}function ge(e,t){D(e);let n=k(e,t);return n.rowSpan*n.columnSpan===1?e:{...e,merges:e.merges.filter(e=>e!==n)}}function j(e,t,n,r,i,a=`body`){D(e);let o=t===`row`?e.rows.length:e.columns.length;if(!Number.isInteger(n)||n<0||n>o)throw Error(`Некорректная позиция вставки.`);if(i.length!==(t===`row`?e.columns.length:e.rows.length))throw Error(`Неверное число новых ячеек.`);if(t===`row`&&(a===`header`?n>e.headerRowCount:n<e.headerRowCount))throw Error(`Строка вставляется вне выбранной части таблицы.`);let s=t===`row`?`rowSpan`:`columnSpan`,c=e.merges.map(e=>n<=e[t]?{...e,[t]:e[t]+1}:n<e[t]+e[s]?{...e,[s]:e[s]+1}:e),l=t===`row`?{...e,merges:c,headerRowCount:e.headerRowCount+ +(a===`header`),rows:[...e.rows.slice(0,n),{id:r,cells:i},...e.rows.slice(n)]}:{...e,merges:c,columns:[...e.columns.slice(0,n),{id:r,width:null},...e.columns.slice(n)],rows:e.rows.map((e,t)=>({...e,cells:[...e.cells.slice(0,n),i[t],...e.cells.slice(n)]}))};return D(l),l}function _e(e,t,n){return O(e,{...t,rowSpan:1,columnSpan:1}),Object.is(e.rows[t.row].cells[t.column].value,n)?e:{...e,rows:e.rows.map((e,r)=>r===t.row?{...e,cells:e.cells.map((e,r)=>r===t.column?{...e,value:n}:e)}:e)}}function M(e,t){D(e);let n=t===`row`?e.rows.length:e.columns.length,r=new Set;for(let n of e.merges){let e=t===`row`?n.rowSpan:n.columnSpan;for(let i=1;i<e;i++)r.add(n[t]+i)}let i=[],a=0;for(let e=1;e<=n;e++)(e===n||!r.has(e))&&(i.push({start:a,count:e-a}),a=e);return i}function ve(e,t,n){let r=M(e,t).find(e=>n>=e.start&&n<e.start+e.count);if(!r)throw Error(`Группа не найдена.`);let i=t===`row`?e.rows.length:e.columns.length;if(r.count===i)throw Error(`В таблице должна остаться хотя бы одна строка и один столбец.`);let a=r.start+r.count,o=e.merges.filter(e=>e[t]<r.start||e[t]>=a).map(e=>e[t]<a?e:{...e,[t]:e[t]-r.count}),s=t===`row`?{...e,merges:o,rows:e.rows.filter((e,t)=>t<r.start||t>=a),headerRowCount:e.headerRowCount-(r.start<e.headerRowCount?r.count:0)}:{...e,merges:o,columns:e.columns.filter((e,t)=>t<r.start||t>=a),rows:e.rows.map(e=>({...e,cells:e.cells.filter((e,t)=>t<r.start||t>=a)}))};return D(s),s}function ye(e,t,n,r){let i=M(e,t),a=i.findIndex(e=>n>=e.start&&n<e.start+e.count);if(a<0)throw Error(`Группа не найдена.`);let s=a+r;if(s<0||s>=i.length||t===`row`&&i[a].start<e.headerRowCount!=i[s].start<e.headerRowCount)return e;let c=o(i,a,r===-1?`up`:`down`).flatMap(e=>Array.from({length:e.count},(t,n)=>e.start+n)),l=new Map(c.map((e,t)=>[e,t])),u=e.merges.map(e=>({...e,[t]:l.get(e[t])??e[t]})),d=t===`row`?{...e,merges:u,rows:c.map(t=>e.rows[t])}:{...e,merges:u,columns:c.map(t=>e.columns[t]),rows:e.rows.map(e=>({...e,cells:c.map(t=>e.cells[t])}))};return D(d),d}function N(){return(N=e((()=>{a()})))()}var P,F,I,L,R,z,B,V,H;function U(){return(U=e((()=>{P=`_6ftNrS`,F=`tji4uW`,I=`nVFFYk`,L=`S7CdzG`,R=`emaqLv`,z=`VLG992`,B=`Hr0ghz`,V=`tuhyZe`,H={editor:P,toolbar:F,help:I,scroll:L,table:R,cellContent:z,inspector:B,structure:V}})))()}function be(e){let t=(0,W.useMemo)(()=>[...e.rows],[e]),n=(0,W.useMemo)(()=>e.columns.map((t,n)=>({id:t.id,accessorFn:(t,r)=>{let i=k(e,{row:r,column:n});return e.rows[i.row].cells[i.column].id},spanRows:!0,spanColumns:({row:t})=>{let r=k(e,{row:t.index,column:n});return r.column===n?r.columnSpan:1}})),[e]);return l({features:xe,data:t,columns:n,getRowId:e=>e.id})}var W,xe;function G(){return(G=e((()=>{W=t(),N(),T(),u(),xe=ee({cellSpanningFeature:w})})))()}function K({editor:e,extendSelection:t,disabled:n,renderCell:r,getCellText:i}){let a=(0,q.useId)(),o=(0,q.useRef)(new Map),s=be(e.document),{document:c,selection:l,focus:u}=e;return(0,J.jsxs)(J.Fragment,{children:[(0,J.jsx)(`p`,{id:a,className:H.help,children:`Стрелки — переход между ячейками. Shift + стрелки или Shift + щелчок — выделение диапазона. Содержимое выбранной ячейки редактируется под таблицей.`}),(0,J.jsx)(`div`,{className:H.scroll,children:(0,J.jsxs)(`table`,{role:`grid`,"aria-label":c.caption||`Редактор таблицы`,"aria-describedby":a,"aria-multiselectable":`true`,"aria-disabled":n||void 0,className:H.table,children:[(0,J.jsx)(`colgroup`,{children:c.columns.map(e=>(0,J.jsx)(`col`,{style:{width:e.width??180}},e.id))}),(0,J.jsx)(`tbody`,{children:s.getRowModel().rows.map(a=>(0,J.jsx)(`tr`,{"aria-rowindex":a.index+1,"data-header":a.index<c.headerRowCount||void 0,children:a.getAllCells().map((s,d)=>{if(s.getIsCovered())return null;let f=a.index>=l.row&&a.index<l.row+l.rowSpan&&d>=l.column&&d<l.column+l.columnSpan,p={row:a.index,column:d},m=a.original.cells[d],h=a.index<c.headerRowCount?`th`:`td`;return(0,J.jsxs)(h,{role:a.index<c.headerRowCount?`columnheader`:`gridcell`,ref:e=>{e?o.current.set(m.id,e):o.current.delete(m.id)},rowSpan:s.getRowSpan(),colSpan:s.getColSpan(),"aria-colindex":d+1,"aria-label":`Строка ${a.index+1}, столбец ${d+1}: ${i(m)||`Пустая ячейка`}`,"aria-selected":f,tabIndex:!n&&u.row===a.index&&u.column===d?0:-1,onClick:r=>{n||e.select(p,t||r.shiftKey)},onPointerEnter:t=>{!n&&t.pointerType===`mouse`&&t.buttons===1&&e.select(p,!0)},onKeyDown:t=>{if(n||t.altKey||t.ctrlKey||t.metaKey)return;let r;switch(t.key){case`ArrowRight`:r={...p,column:d+s.getColSpan()};break;case`ArrowLeft`:r={...p,column:d-1};break;case`ArrowDown`:r={...p,row:a.index+s.getRowSpan()};break;case`ArrowUp`:r={...p,row:a.index-1};break;case`Home`:r={...p,column:0};break;case`End`:r={...p,column:c.columns.length-1};break;case` `:t.preventDefault(),e.select(p,t.shiftKey);return;default:return}if(t.preventDefault(),r.row<0||r.column<0||r.row>=c.rows.length||r.column>=c.columns.length)return;let i=k(c,r);e.select(r,t.shiftKey),o.current.get(c.rows[i.row].cells[i.column].id)?.focus()},children:[a.index<c.headerRowCount?(0,J.jsx)(`span`,{className:`visuallyHidden`,children:i(m)||`Пустой заголовок`}):null,(0,J.jsx)(`div`,{inert:!0,className:H.cellContent,children:r(m)})]},s.id)})},a.id))})]})})]})}var q,J;function Se(){return(Se=e((()=>{q=t(),N(),G(),U(),J=i(),K.__docgenInfo={description:`Доступная сетка: roving tabindex, стрелки/Shift и выбор диапазона без drag-only действий.`,methods:[],displayName:`TableEditorGrid`,props:{editor:{required:!0,tsType:{name:`signature`,type:`object`,raw:`{
|
|
2
2
|
readonly document: TableDocument<T>;
|
|
3
3
|
readonly selection: TableDocumentRange;
|
|
4
4
|
readonly focus: TableDocumentPosition;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-
|
|
1
|
+
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{n as t}from"./iframe-BwMqUCxF.js";import{i as n,r}from"./react-Bl2r1tuC.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-DvVybOVR.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-DUQx0Ezh.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{a as e,n as t,r as n}from"./rolldown-runtime-DkW27tQK.js";import{t as r}from"./react-BZJXY1be.js";import{n as i}from"./iframe-
|
|
1
|
+
import{a as e,n as t,r as n}from"./rolldown-runtime-DkW27tQK.js";import{t as r}from"./react-BZJXY1be.js";import{n as i}from"./iframe-BwMqUCxF.js";import{a,i as o}from"./utils-DiA8FLax.js";import{n as ee,t as s}from"./ui.module-l7VCYIW-.js";import{i as c,n as te}from"./uiClasses-BblrV9p1.js";import{n as l,t as u}from"./Scrollable-D4W1DFQg.js";import{n as d,t as f}from"./createControlledStoryRender-BouhvX-R.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-DGdo-Cb1.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,E.isValidElement)(e)&&oe(e)===t}function x({children:e}){return(0,D.jsx)(D.Fragment,{children:e})}function S({children:e}){return(0,D.jsx)(D.Fragment,{children:e})}function C({children:e}){return(0,D.jsx)(D.Fragment,{children:e})}function w({children:e}){return(0,D.jsx)(D.Fragment,{children:e})}function se(e,t){let n=null,r=null,i=null;for(let a of E.Children.toArray(e)){if(!(0,E.isValidElement)(a))throw Error(`TabsLayout.Tab "${t}" поддерживает только дочерние элементы TabsLayout.Toolbar, TabsLayout.Content и TabsLayout.Footer.`);if(b(a,k)){if(n)throw Error(`TabsLayout.Tab "${t}" содержит более одного блока TabsLayout.Toolbar.`);n=a.props;continue}if(b(a,A)){if(r)throw Error(`TabsLayout.Tab "${t}" содержит более одного блока TabsLayout.Content.`);r=a.props;continue}if(b(a,j)){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 E.Children.toArray(e).map(e=>{if(!b(e,O))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)}})}function T({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,E.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,D.jsxs)(`div`,{className:g,children:[(0,D.jsx)(`div`,{className:v.tabsWrapper,children:(0,D.jsx)(ie,{items:m,state:h,className:v.tabs,ariaLabel:f,ariaLabelledBy:p})}),(0,D.jsx)(`div`,{className:_,children:m.map(e=>{let t=e.id===h.selectedTabId,n=re({mountStrategy:c,isSelected:t,isVisited:h.isVisited(e.id)}),r=`${e.toolbar?`auto `:``}minmax(0, 1fr)${e.footer?` auto`:``}`;return(0,D.jsx)(ne,{tabId:e.id,isSelected:t,className:v.panel,getTabElementId:h.getTabElementId,getPanelElementId:h.getPanelElementId,children:n?(0,D.jsxs)(`div`,{className:v.layoutPanel,style:{gridTemplateRows:r},children:[e.toolbar?(0,D.jsx)(`div`,{className:a(v.layoutSection,e.toolbar.className),children:e.toolbar.children}):null,(0,D.jsx)(`div`,{className:a(v.layoutSection,v.layoutContent,e.content.className),children:e.content.children}),e.footer?(0,D.jsx)(`div`,{className:a(v.layoutSection,e.footer.className),children:e.footer.children}):null]}):null},e.id)})})]})}var E,D,O,k,A,j;function M(){return(M=t((()=>{E=e(r(),1),o(),s(),c(),h(),p(),_(),m(),D=i(),O=`TabsLayout.Tab`,k=`TabsLayout.Toolbar`,A=`TabsLayout.Content`,j=`TabsLayout.Footer`,x.displayName=O,S.displayName=k,C.displayName=A,w.displayName=j,T.Tab=x,T.Toolbar=S,T.Content=C,T.Footer=w,T.__docgenInfo={description:`Compound-оболочка tabs для составных panel-layout сценариев.
|
|
2
2
|
Сам компонент управляет только переключением и каркасом панели.`,methods:[{name:`Tab`,docblock:null,modifiers:[`static`],params:[{name:`{ children }: TabsLayoutTabProps`,optional:!1,type:{name:`TabsLayoutTabProps`,alias:`TabsLayoutTabProps`}}],returns:null},{name:`Toolbar`,docblock:null,modifiers:[`static`],params:[{name:`{ children }: TabsLayoutSectionProps`,optional:!1,type:{name:`TabsLayoutSectionProps`,alias:`TabsLayoutSectionProps`}}],returns:null},{name:`Content`,docblock:null,modifiers:[`static`],params:[{name:`{ children }: TabsLayoutSectionProps`,optional:!1,type:{name:`TabsLayoutSectionProps`,alias:`TabsLayoutSectionProps`}}],returns:null},{name:`Footer`,docblock:null,modifiers:[`static`],params:[{name:`{ children }: TabsLayoutSectionProps`,optional:!1,type:{name:`TabsLayoutSectionProps`,alias:`TabsLayoutSectionProps`}}],returns:null}],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:()=>G,BoxControlled:()=>K,BoxMountStrategies:()=>J,BoxVertical:()=>q,DisabledTabs:()=>Y,Empty:()=>Q,LayoutPanels:()=>X,Loading:()=>Z,__namedExportsOrder:()=>$,default:()=>U});function N({label:e}){let[t,n]=(0,F.useState)(0);return(0,I.jsxs)(`div`,{style:R,children:[(0,I.jsxs)(`div`,{children:[`Панель: `,e]}),(0,I.jsxs)(`div`,{children:[`Локальный счётчик: `,t]}),(0,I.jsx)(`button`,{type:`button`,onClick:()=>n(e=>e+1),children:`Увеличить`})]})}function P(e){return f((t,n)=>{let r=t.value??t.defaultValue,i=(0,I.jsx)(y,{...t,value:r,onValueChange:e=>{t.onValueChange?.(e),n({value:e})}});return e===void 0?i:(0,I.jsx)(`div`,{style:{height:e},children:i})})}var F,I,L,R,z,B,V,H,U,W,G,K,q,J,Y,X,Z,Q,$;function ue(){return(ue=t((()=>{F=r(),g(),M(),d(),l(),I=i(),{fn:L}=__STORYBOOK_MODULE_TEST__,R={padding:16,display:`grid`,gap:12},z=[{id:`profile`,title:`Профиль`,content:(0,I.jsx)(`div`,{style:R,children:`Карточка пользователя и основные поля профиля.`})},{id:`settings`,title:`Настройки`,content:(0,I.jsx)(`div`,{style:R,children:`Параметры интерфейса, уведомлений и доступа.`})},{id:`history`,title:`История`,content:(0,I.jsx)(`div`,{style:R,children:`Последние действия, комментарии и изменения.`})}],B=[{id:`first`,title:`Первая`,content:(0,I.jsx)(N,{label:`Первая`})},{id:`second`,title:`Вторая`,content:(0,I.jsx)(N,{label:`Вторая`})},{id:`third`,title:`Третья`,content:(0,I.jsx)(N,{label:`Третья`})}],V=[{id:`overview`,title:`Обзор`,content:(0,I.jsx)(`div`,{style:R,children:`Раздел доступен сразу.`})},{id:`analytics`,title:`Аналитика`,disabled:!0,content:(0,I.jsx)(`div`,{style:R,children:`Пока недоступно.`})},{id:`history`,title:`История`,content:(0,I.jsx)(`div`,{style:R,children:`История изменений и действий.`})}],H=Array.from({length:12},(e,t)=>`Элемент ${t+1}`),U={title:`UI/Tabs`,component:y,args:{items:z,value:`profile`,onValueChange:L(),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`}}},W=f((e,t)=>{let n=e.value??e.defaultValue??`details`;return(0,I.jsx)(`div`,{style:{height:360},children:(0,I.jsxs)(T,{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,I.jsxs)(T.Tab,{id:`details`,title:`Детали`,children:[(0,I.jsx)(T.Toolbar,{children:(0,I.jsx)(`div`,{className:`surface0 border radiusSm paddingSm`,children:`Панель инструментов вне scroll-области.`})}),(0,I.jsx)(T.Content,{children:(0,I.jsxs)(`div`,{style:{display:`grid`,gridTemplateColumns:`1fr 1fr`,gap:12,height:`100%`},children:[(0,I.jsx)(u,{className:`surface0 border radiusSm paddingSm h100`,children:(0,I.jsx)(`div`,{role:`region`,"aria-label":`Содержимое левой колонки`,tabIndex:0,children:H.map(e=>(0,I.jsxs)(`div`,{className:`paddingBlockXs`,children:[`Левая колонка: `,e]},`left-${e}`))})}),(0,I.jsx)(u,{className:`surface0 border radiusSm paddingSm h100`,children:(0,I.jsx)(`div`,{role:`region`,"aria-label":`Содержимое правой колонки`,tabIndex:0,children:H.map(e=>(0,I.jsxs)(`div`,{className:`paddingBlockXs`,children:[`Правая колонка: `,e]},`right-${e}`))})})]})}),(0,I.jsx)(T.Footer,{children:(0,I.jsx)(`div`,{className:`surface0 border radiusSm paddingSm`,children:`Футер тоже исключён из scroll-контента.`})})]}),(0,I.jsx)(T.Tab,{id:`history`,title:`История`,children:(0,I.jsx)(T.Content,{children:(0,I.jsx)(u,{className:`surface0 border radiusSm paddingSm h100`,children:(0,I.jsx)(`div`,{role:`region`,"aria-label":`История изменений`,tabIndex:0,children:H.map(e=>(0,I.jsxs)(`div`,{className:`paddingBlockXs`,children:[`История изменения: `,e]},`history-${e}`))})})})})]})})}),G={args:{"aria-label":`Основные разделы профиля`},render:P()},K={args:{value:`settings`,"aria-label":`Управляемые вкладки`},render:P()},q={args:{orientation:`vertical`,"aria-label":`Вертикальные вкладки`},render:P(320)},J={args:{items:B,mountStrategy:`lazy`,"aria-label":`Демонстрация стратегий монтирования`},render:P()},Y={args:{items:V,value:`overview`,"aria-label":`Вкладки с недоступным разделом`},render:P()},X={args:{value:`details`,onValueChange:L(),orientation:`horizontal`,activationMode:`manual`,mountStrategy:`lazy`,clean:!1,loop:!0,"aria-label":`Составные панели документа`},render:W},Z={args:{isLoading:!0,items:z},render:P()},Q={args:{items:[],value:void 0},render:P()},G.parameters={...G.parameters,docs:{...G.parameters?.docs,source:{originalSource:`{
|
|
3
3
|
args: {
|
|
4
4
|
"aria-label": "Основные разделы профиля"
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{n as e}from"./rolldown-runtime-DkW27tQK.js";import{t}from"./react-BZJXY1be.js";import{n}from"./iframe-BwMqUCxF.js";import{a as r,i,s as a}from"./utils-DiA8FLax.js";import{n as o,t as s}from"./ui.module-l7VCYIW-.js";import{i as c,n as l}from"./uiClasses-BblrV9p1.js";import{n as u,t as d}from"./LoadingMessage-Ce0vqRgG.js";import{n as f,t as p}from"./NoData-Db8STACh.js";import{n as m,t as h}from"./OneStepScroller-C1e40EsR.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,B;function V(){return(V=e((()=>{w=`pcMjuj`,T=`NLOw2z`,E=`Z6PwjQ`,D=`ZSAoAa`,O=`psYhsZ`,k=`mNDq9-`,A=`g156KO`,j=`C2mO1e`,M=`_28F3fs`,N=`UKZXTZ`,P=`jiTafe`,F=`nhD0k7`,I=`G8FICe`,L=`W50XHh`,R=`vnjXkU`,z=`Nzvfhw`,B={tabsContainer:w,clean:T,tabsWrapper:E,tabs:D,panels:O,horizontal:k,vertical:A,panelScrollable:j,tab:M,selected:N,panel:P,panelBody:F,layoutPanels:I,layoutPanel:L,layoutSection:R,layoutContent:z}})))()}function H({containerClassName:e,tabListClassName:t,panelsClassName:n,panelClassName:i,panelBodyClassName:a,loadingText:o}){return(0,U.jsxs)(`div`,{className:e,children:[(0,U.jsx)(`div`,{className:t,"aria-hidden":`true`,children:(0,U.jsx)(`button`,{type:`button`,disabled:!0,"data-disabled":``,className:r(B.tab,`skeletonLine`),children:`Загрузка...`})}),(0,U.jsx)(`div`,{className:n,"aria-busy":`true`,children:(0,U.jsx)(`div`,{className:i,children:(0,U.jsx)(`div`,{className:a,children:(0,U.jsx)(d,{text:o,className:`radiusSm`})})})})]})}var U;function W(){return(W=e((()=>{i(),u(),V(),U=n(),H.__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 G({containerClassName:e,panelsClassName:t,panelClassName:n,panelBodyClassName:r}){return(0,K.jsx)(`div`,{className:e,children:(0,K.jsx)(`div`,{className:t,children:(0,K.jsx)(`div`,{className:n,children:(0,K.jsx)(`div`,{className:r,children:(0,K.jsx)(p,{className:`radiusSm`})})})})})}var K;function q(){return(q=e((()=>{f(),K=n(),G.__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 J({tabId:e,isSelected:t,className:n,getTabElementId:r,getPanelElementId:i,children:a}){return(0,ee.jsx)(`div`,{role:`tabpanel`,id:i(e),"aria-labelledby":r(e),hidden:!t,tabIndex:t?0:-1,className:n,children:a})}var ee;function Y(){return(Y=e((()=>{ee=n(),J.__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:!1,tsType:{name:`ReactNode`},description:``}}}})))()}function X({items:e,state:t,className:n,ariaLabel:i,ariaLabelledBy:a}){let o=(0,Z.jsx)(`div`,{"data-ui":`tabs-tablist`,className:n,role:`tablist`,"aria-orientation":t.orientation,"aria-label":a?void 0:i??`Вкладки`,"aria-labelledby":a,"aria-live":`off`,onKeyDown:t.onTabListKeyDown,onBlur:t.onTabListBlur,children:e.map(e=>(0,Z.jsx)(`button`,{...t.getTabButtonProps(e),"data-ui":`tabs-tab`,"data-action":`select-tab`,className:r(B.tab,`textWrap`,e.id===t.selectedTabId&&B.selected),children:e.title},e.id))});return t.orientation===`horizontal`?(0,Z.jsx)(h,{itemSelector:`[role='tab']`,children:o}):o}var Z;function Q(){return(Q=e((()=>{i(),m(),V(),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 te({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(B.tabsContainer,h?B.clean:o.uiFilledPanel,B[u],l(m),a),S=B.tabs,C=r(B.panels,B.panelScrollable,`scrollable overscroll`),w=B.panel,T=B.panelBody;return s?(0,$.jsx)(H,{containerClassName:b,tabListClassName:S,panelsClassName:C,panelClassName:w,panelBodyClassName:T,loadingText:c}):e.length?(0,$.jsxs)(`div`,{className:b,children:[(0,$.jsx)(`div`,{className:B.tabsWrapper,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,n=y({mountStrategy:f,isSelected:t,isVisited:v.isVisited(e.id)});return(0,$.jsx)(J,{tabId:e.id,isSelected:t,className:w,getTabElementId:v.getTabElementId,getPanelElementId:v.getPanelElementId,children:n?(0,$.jsx)(`div`,{className:T,children:e.content}):null},e.id)})})]}):(0,$.jsx)(G,{containerClassName:b,panelsClassName:C,panelClassName:w,panelBodyClassName:T})}var $;function ne(){return(ne=e((()=>{i(),s(),c(),C(),V(),W(),q(),Y(),Q(),$=n(),te.__docgenInfo={description:`Простой items-based tabs-компонент.
|
|
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{J as a,V as c,b as d,y as f,Q as i,C as l,ne as n,Y as o,X as r,B as s,te as t,x as u};
|