@ryuzaki13/react-foundation-ui 1.0.15 → 1.0.17
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/advanced-search/index.js +7 -7
- package/dist/badge/index.js +1 -1
- package/dist/base-table/index.js +1 -1
- package/dist/chunks/{TextEditorLexicalClient-jQ7V9jFm.js → TextEditorLexicalClient-B1kQnKrU.js} +3 -3
- package/dist/chunks/{TextEditorLexicalClient-jQ7V9jFm.js.map → TextEditorLexicalClient-B1kQnKrU.js.map} +1 -1
- package/dist/chunks/{badge-BfbLPk0z.js → badge-Cri0-kVK.js} +2 -2
- package/dist/chunks/{badge-BfbLPk0z.js.map → badge-Cri0-kVK.js.map} +1 -1
- package/dist/chunks/{base-table-CiYSRI_J.js → base-table-DghNJ6ss.js} +3 -3
- package/dist/chunks/{base-table-CiYSRI_J.js.map → base-table-DghNJ6ss.js.map} +1 -1
- package/dist/chunks/{flex-CPO6xlPR.js → flex-DYZ0IbU6.js} +76 -14
- package/dist/chunks/flex-DYZ0IbU6.js.map +1 -0
- package/dist/chunks/{grid-ByIIytjh.js → grid-dI94AAbi.js} +63 -45
- package/dist/chunks/grid-dI94AAbi.js.map +1 -0
- package/dist/chunks/{misc-1PxS8OWD.js → misc-ClXJygTj.js} +2 -2
- package/dist/chunks/{misc-1PxS8OWD.js.map → misc-ClXJygTj.js.map} +1 -1
- package/dist/chunks/{modal-4vYSSbAa.js → modal-QGp5CjB9.js} +4 -4
- package/dist/chunks/{modal-4vYSSbAa.js.map → modal-QGp5CjB9.js.map} +1 -1
- package/dist/chunks/{multi-select-r0ekR6Bh.js → multi-select-DkfdFYm4.js} +2 -2
- package/dist/chunks/{multi-select-r0ekR6Bh.js.map → multi-select-DkfdFYm4.js.map} +1 -1
- package/dist/chunks/{table-BR2VqeEg.js → table-tBQ_FOs3.js} +2 -2
- package/dist/chunks/{table-BR2VqeEg.js.map → table-tBQ_FOs3.js.map} +1 -1
- package/dist/errors/index.js +1 -1
- package/dist/expandable-action-panel/index.js +1 -1
- package/dist/flex/FlexCenter.d.ts +4 -5
- package/dist/flex/FlexCenter.d.ts.map +1 -1
- package/dist/flex/FlexContainer.d.ts.map +1 -1
- package/dist/flex/FlexItem.d.ts.map +1 -1
- package/dist/flex/FlexSpacer.d.ts +3 -2
- package/dist/flex/FlexSpacer.d.ts.map +1 -1
- package/dist/flex/index.js +1 -1
- package/dist/flex/types.d.ts +5 -3
- package/dist/flex/types.d.ts.map +1 -1
- package/dist/flex/useFlexClasses.d.ts +4 -4
- package/dist/flex/useFlexClasses.d.ts.map +1 -1
- package/dist/grid/GridContainer.d.ts.map +1 -1
- package/dist/grid/index.js +1 -1
- package/dist/grid/types.d.ts +5 -3
- package/dist/grid/types.d.ts.map +1 -1
- package/dist/grid/useGridClasses.d.ts +3 -3
- package/dist/grid/useGridClasses.d.ts.map +1 -1
- package/dist/image/index.d.ts +14 -5
- package/dist/image/index.d.ts.map +1 -1
- package/dist/image/index.js +258 -254
- package/dist/image/index.js.map +1 -1
- package/dist/image/lib/buildImageSources.d.ts +4 -0
- package/dist/image/lib/buildImageSources.d.ts.map +1 -0
- package/dist/image/lib/buildImageSrcSet.d.ts +4 -0
- package/dist/image/lib/buildImageSrcSet.d.ts.map +1 -0
- package/dist/image/lib/getImageCropPreviewStyle.d.ts +9 -0
- package/dist/image/lib/getImageCropPreviewStyle.d.ts.map +1 -0
- package/dist/image/lib/getImageSelectionKey.d.ts +4 -0
- package/dist/image/lib/getImageSelectionKey.d.ts.map +1 -0
- package/dist/image/model/imageCropTypes.d.ts +35 -0
- package/dist/image/model/imageCropTypes.d.ts.map +1 -0
- package/dist/image/model/imageSelectionTypes.d.ts +53 -0
- package/dist/image/model/imageSelectionTypes.d.ts.map +1 -0
- package/dist/image/model/imageTypes.d.ts +41 -0
- package/dist/image/model/imageTypes.d.ts.map +1 -0
- package/dist/image/model/useImageSelectionState.d.ts +7 -0
- package/dist/image/model/useImageSelectionState.d.ts.map +1 -0
- package/dist/image/ui/ImageCropper.d.ts +6 -12
- package/dist/image/ui/ImageCropper.d.ts.map +1 -1
- package/dist/image/ui/ImagePlaceholder.d.ts +1 -2
- package/dist/image/ui/ImagePlaceholder.d.ts.map +1 -1
- package/dist/image/ui/ImageRenderer.d.ts +8 -7
- package/dist/image/ui/ImageRenderer.d.ts.map +1 -1
- package/dist/image/ui/ImageSelectionFields.d.ts +8 -0
- package/dist/image/ui/ImageSelectionFields.d.ts.map +1 -0
- package/dist/image/ui/ImageSelectionModal.d.ts +4 -0
- package/dist/image/ui/ImageSelectionModal.d.ts.map +1 -0
- package/dist/image/ui/ImageSelectionPanel.d.ts +4 -0
- package/dist/image/ui/ImageSelectionPanel.d.ts.map +1 -0
- package/dist/image/ui/ImageView.d.ts +8 -35
- package/dist/image/ui/ImageView.d.ts.map +1 -1
- package/dist/list/index.js +2 -2
- package/dist/misc/index.js +1 -1
- package/dist/modal/index.js +1 -1
- package/dist/multi-select/index.js +1 -1
- package/dist/notifications/index.js +1 -1
- package/dist/preset-range-date-input/index.js +1 -1
- package/dist/simple-table/index.js +1 -1
- package/dist/table/index.js +1 -1
- package/dist/tabs/index.js +1 -1
- package/dist/text-editor/index.js +2 -2
- package/dist/toolbar/index.js +2 -2
- package/dist/tree-table/index.js +1 -1
- package/package.json +1 -1
- package/storybook-static/assets/{Badge-BJuMBcdz.js → Badge-DhbMuuXm.js} +1 -1
- package/storybook-static/assets/{Badge.stories-IgBcw1Cf.js → Badge.stories-Cn2OwyNl.js} +1 -1
- package/storybook-static/assets/{Button-B_GEc_r4.js → Button-BCO6drLh.js} +1 -1
- package/storybook-static/assets/{Button-DRBTSyRM.js → Button-CK0YS5UI.js} +1 -1
- package/storybook-static/assets/{Button.stories-Di4OQvY8.js → Button.stories-PvBecpMR.js} +1 -1
- package/storybook-static/assets/{CheckBox-WHmt7FbU.js → CheckBox-CH7PEkzn.js} +1 -1
- package/storybook-static/assets/{CheckBox-57qzcUkX.js → CheckBox-DgMj1d8n.js} +1 -1
- package/storybook-static/assets/{CheckBox.stories-BItLovUs.js → CheckBox.stories-D6ItCkPg.js} +1 -1
- package/storybook-static/assets/{Color-KMSTOMOX-CWP56kfm.js → Color-KMSTOMOX-GfidB0cg.js} +1 -1
- package/storybook-static/assets/{ContextMenu-DKl_ZfMI.js → ContextMenu-D3lrcJcF.js} +1 -1
- package/storybook-static/assets/{ContextMenu.stories-D-Xnld63.js → ContextMenu.stories-eH4W7mHM.js} +1 -1
- package/storybook-static/assets/{DateInput-BSyYH-et.js → DateInput-B1DsTxcV.js} +1 -1
- package/storybook-static/assets/{DateInput-B2X74zQf.js → DateInput-BlmssZge.js} +1 -1
- package/storybook-static/assets/{DateInput.stories-Dwk-9ZjA.js → DateInput.stories-CXftqoBw.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-CPeX_HRn.js → DateRangePresetSelect-CL0hlHRZ.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-DTSWmoT_.js → DateRangePresetSelect-DIrJMADf.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect.stories-CGNvBg03.js → DateRangePresetSelect.stories-DcSm9soa.js} +1 -1
- package/storybook-static/assets/{Detail-BQwyVo2M.js → Detail-CoabkYcs.js} +1 -1
- package/storybook-static/assets/{Detail.stories-x4juDK19.js → Detail.stories-DQYXxRp4.js} +1 -1
- package/storybook-static/assets/{Dialog-CH9J4tmL.js → Dialog-BMqJ2cWE.js} +1 -1
- package/storybook-static/assets/{Dialog.stories-Cp3J86ce.js → Dialog.stories-UMGlcMlF.js} +1 -1
- package/storybook-static/assets/{Disclosure-B7i9P4YG.js → Disclosure-KB4xjsXl.js} +1 -1
- package/storybook-static/assets/{Disclosure.stories-DzZ5RLXm.js → Disclosure.stories-BebcX5Iz.js} +1 -1
- package/storybook-static/assets/{DocsRenderer-JROSPFPF-D61SC7UY.js → DocsRenderer-JROSPFPF-DuKHOivk.js} +2 -2
- package/storybook-static/assets/{DropZone-MiBUScxG.js → DropZone-nfS8G3Hn.js} +1 -1
- package/storybook-static/assets/{DropZone.stories-C2qhbfNj.js → DropZone.stories-CfXfUPEJ.js} +1 -1
- package/storybook-static/assets/{DropdownMenu-X7PLdfVp.js → DropdownMenu-DnrqkJwd.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel.stories-Ca2AoCI0.js → ExpandableActionPanel.stories-BoiZuwQW.js} +1 -1
- package/storybook-static/assets/{Flex-BaD8FRom.js → Flex-CTKFA_mG.js} +1 -1
- package/storybook-static/assets/Flex-Cmb3839O.js +3 -0
- package/storybook-static/assets/{Flex.stories-F8YaKEO0.js → Flex.stories-CP95d38j.js} +1 -1
- package/storybook-static/assets/{Grid-BewDzBtv.js → Grid-DNKooHvc.js} +3 -3
- package/storybook-static/assets/{Grid-ZTR_R-m1.js → Grid-Xy7dV3bL.js} +1 -1
- package/storybook-static/assets/{Grid.stories-Cu78z_oE.js → Grid.stories-CzW_QizU.js} +1 -1
- package/storybook-static/assets/ImageCropper.stories-BTXQ94Gl.js +115 -0
- package/storybook-static/assets/ImageRenderer-BoaYYmBZ.js +2 -0
- package/storybook-static/assets/ImageRenderer.stories-BbzcY9qz.js +22 -0
- package/storybook-static/assets/ImageView.stories-BxeA_KDn.js +9 -0
- package/storybook-static/assets/{Input-D6z--4tm.js → Input-23s-lKOn.js} +1 -1
- package/storybook-static/assets/{Input-DjRjmBbJ.js → Input-E_LkqP6a.js} +1 -1
- package/storybook-static/assets/{Input.stories-CBkJ60Z3.js → Input.stories-uG22uEFU.js} +1 -1
- package/storybook-static/assets/{InputDateTime-B2V4I801.js → InputDateTime-zIw8NrCi.js} +1 -1
- package/storybook-static/assets/{InputDateTime.stories-gepL7zcB.js → InputDateTime.stories-CRyGwLn7.js} +1 -1
- package/storybook-static/assets/{InputFile-B_rtgdVs.js → InputFile-Dt4Qf9UO.js} +1 -1
- package/storybook-static/assets/{InputFile.stories-CVD-PTav.js → InputFile.stories-CVHdaQXL.js} +1 -1
- package/storybook-static/assets/{InputFiles-CFlxBgsw.js → InputFiles-BqrOxvD8.js} +1 -1
- package/storybook-static/assets/{InputFiles-Cy_fvMYT.js → InputFiles-Bwk_tH4A.js} +1 -1
- package/storybook-static/assets/{InputFiles.stories-DIbO_ACP.js → InputFiles.stories-eNwGWGc6.js} +1 -1
- package/storybook-static/assets/{InputImage-BWbT8pGH.js → InputImage-DpX3d6wQ.js} +1 -1
- package/storybook-static/assets/{InputImage.stories-SyFATair.js → InputImage.stories-DBYvsQrj.js} +1 -1
- package/storybook-static/assets/{LayoutPicker-0dJNS0bb.js → LayoutPicker-CfSu2g4Z.js} +1 -1
- package/storybook-static/assets/{LayoutPicker.stories-BUohHOWt.js → LayoutPicker.stories-D1lUyF06.js} +1 -1
- package/storybook-static/assets/{Listbox-Cn1Z-r2n.js → Listbox-uDkRdf67.js} +1 -1
- package/storybook-static/assets/{Listbox.stories-c1NSeGUa.js → Listbox.stories-6yyYujhd.js} +1 -1
- package/storybook-static/assets/{Modal-Db2Ne_PP.js → Modal-J42YPjEH.js} +1 -1
- package/storybook-static/assets/{Modal.stories-CZum1nVD.js → Modal.stories-Nmp6akCZ.js} +1 -1
- package/storybook-static/assets/{MultiSelect-D-r3_Bry.js → MultiSelect-BJGmqmIo.js} +1 -1
- package/storybook-static/assets/{MultiSelect-CkHso-Za.js → MultiSelect-UF351F4G.js} +1 -1
- package/storybook-static/assets/{MultiSelect.stories-CjNtbPvc.js → MultiSelect.stories-DkzP-YMA.js} +1 -1
- package/storybook-static/assets/{NotificationsHost-DcsexLl8.js → NotificationsHost-C7ZbgRdj.js} +1 -1
- package/storybook-static/assets/{NotificationsHost.stories-DxB9wp4P.js → NotificationsHost.stories-DtE5nY4I.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect-BB6pa_2a.js → ODataMultiSelect-A28BQBXe.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect.stories-D4108lSt.js → ODataMultiSelect.stories-CleaUAky.js} +1 -1
- package/storybook-static/assets/{ODataSelect-BcrPaLAR.js → ODataSelect-CgPTwZze.js} +1 -1
- package/storybook-static/assets/{ODataSelect-BppTAIqx.js → ODataSelect-CidLsWhU.js} +1 -1
- package/storybook-static/assets/{ODataSelect.stories-DteYVpiQ.js → ODataSelect.stories-CnjZKsYR.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect-CVjcPuI1.js → ODataTreeMultiSelect-BcXe8UV0.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect.stories-C6xU81uc.js → ODataTreeMultiSelect.stories-Cy6URpNZ.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect-BRHxD-vG.js → ODataTreeSelect-B79mkiqm.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect.stories-CyqwAaqI.js → ODataTreeSelect.stories-BmS9Kslk.js} +1 -1
- package/storybook-static/assets/{PeriodSelect-oi5rAN2N.js → PeriodSelect-Dvd_n0px.js} +1 -1
- package/storybook-static/assets/{PeriodSelect.stories-C7UftRku.js → PeriodSelect.stories-DeB7vL4v.js} +1 -1
- package/storybook-static/assets/{Popover-DFJPXALP.js → Popover-CF6lPz2I.js} +1 -1
- package/storybook-static/assets/{Popover.stories-DTNaGax4.js → Popover.stories-CxldfZVc.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-Cm4EbMNS.js → PresetRangeDateInput-CMkWDbAV.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput.stories-Y5uojvsz.js → PresetRangeDateInput.stories-CNYGpwHh.js} +1 -1
- package/storybook-static/assets/{RadioButton-B1xWc03x.js → RadioButton-BhV-iR7A.js} +1 -1
- package/storybook-static/assets/{RadioButton.stories-CFZrSdeX.js → RadioButton.stories-BBGp713e.js} +1 -1
- package/storybook-static/assets/{RadioGroup-dt4vRt66.js → RadioGroup-CFQmZbmE.js} +1 -1
- package/storybook-static/assets/{RadioGroup-CRnLGdRq.js → RadioGroup-_xQT2nsR.js} +1 -1
- package/storybook-static/assets/{RadioGroup.stories-Cq8jrT3o.js → RadioGroup.stories-B20ktIVa.js} +1 -1
- package/storybook-static/assets/{Select-CWfg857u.js → Select-CXqDj36V.js} +1 -1
- package/storybook-static/assets/{Select-COzu9R1S.js → Select-jIsVhwD3.js} +1 -1
- package/storybook-static/assets/{Select.stories-ajlw6UD7.js → Select.stories-C0VB6D4d.js} +1 -1
- package/storybook-static/assets/{SelectOptionContent-5fpSAPpp.js → SelectOptionContent-COxwEiax.js} +1 -1
- package/storybook-static/assets/{SerializableSelect-D7k-0rpL.js → SerializableSelect-BPHsbeTD.js} +1 -1
- package/storybook-static/assets/{SerializableSelect-CtF_5hDV.js → SerializableSelect-J1rOw5PY.js} +1 -1
- package/storybook-static/assets/{SerializableSelect.stories-DXink3F3.js → SerializableSelect.stories-DsPARybj.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-CiZs4GCq.js → SingleDateTimeInput-BpQ4pLpY.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput.stories-5QJlrw4f.js → SingleDateTimeInput.stories-iX__aO9q.js} +1 -1
- package/storybook-static/assets/{Slider-CxK-n_Qh.js → Slider-DBT0NGzG.js} +1 -1
- package/storybook-static/assets/{Slider.stories-B0tho-fR.js → Slider.stories-B2eK8XJA.js} +1 -1
- package/storybook-static/assets/{SliderInput-ZN9vpT2S.js → SliderInput-ChSw_jKg.js} +1 -1
- package/storybook-static/assets/{SliderInput.stories-B9oU6kyp.js → SliderInput.stories-Ydlqkpul.js} +1 -1
- package/storybook-static/assets/{Sortable-Cyr7iTZO.js → Sortable-BNdP7m0c.js} +1 -1
- package/storybook-static/assets/{Sortable.stories-BhF3AZgC.js → Sortable.stories-DN3EmT5j.js} +1 -1
- package/storybook-static/assets/{Splitter-peLMiwre.js → Splitter-CcmZ1RhL.js} +1 -1
- package/storybook-static/assets/{Splitter.stories-nr3eJ5GM.js → Splitter.stories-8_bdaQBx.js} +1 -1
- package/storybook-static/assets/{StateSelect-B_fxrXNN.js → StateSelect-b7_i5AYO.js} +1 -1
- package/storybook-static/assets/{StateSelect.stories-CDdWdRLe.js → StateSelect.stories-8HzaiOPq.js} +1 -1
- package/storybook-static/assets/{Switch-DM50QWxA.js → Switch-B6iIA_Sa.js} +1 -1
- package/storybook-static/assets/{Switch.stories-D5LjDVPS.js → Switch.stories-C0C1FC4S.js} +1 -1
- package/storybook-static/assets/{Table-5aluIGdo.js → Table-ClcldA-z.js} +1 -1
- package/storybook-static/assets/{Table.stories-DGKBAzL2.js → Table.stories-BiJfbbFS.js} +1 -1
- package/storybook-static/assets/{Tabs-CO7DsnUr.js → Tabs-SS9HB-vC.js} +1 -1
- package/storybook-static/assets/{Tabs.stories-DTgCMxUb.js → Tabs.stories-BRcexZE0.js} +1 -1
- package/storybook-static/assets/{Textarea-DSvLZptc.js → Textarea-DMbVI72I.js} +1 -1
- package/storybook-static/assets/{Textarea.stories-kqd0YbmQ.js → Textarea.stories-DSgmFgdA.js} +1 -1
- package/storybook-static/assets/{TimePanel-DDaX01do.js → TimePanel-AqEGPwAi.js} +1 -1
- package/storybook-static/assets/{TimePanel.stories-CerMQLRf.js → TimePanel.stories-C7GxLG8Y.js} +1 -1
- package/storybook-static/assets/{Toggle-t1lVxQz6.js → Toggle-BGonS5_k.js} +1 -1
- package/storybook-static/assets/{Toggle.stories-CeJwV-Ek.js → Toggle.stories-fg1rL2w5.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-Cqt4O9BU.js → TreeMultiSelect-cfKLgsPQ.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-D6Au72K2.js → TreeMultiSelect-m1Jc0UmH.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect.stories-C_BIcIv6.js → TreeMultiSelect.stories-CcoijQYD.js} +1 -1
- package/storybook-static/assets/{TreePickerBase-DLVYUhCD.js → TreePickerBase-D8LeBNby.js} +1 -1
- package/storybook-static/assets/{TreeSelect-CIWXiLSp.js → TreeSelect-CLrdAJA-.js} +1 -1
- package/storybook-static/assets/{TreeSelect-CgDLk4ka.js → TreeSelect-CYJ5zvKm.js} +1 -1
- package/storybook-static/assets/{TreeSelect.stories-DJJQpAG-.js → TreeSelect.stories-C_uly8NB.js} +1 -1
- package/storybook-static/assets/{TreeTable-6VwdbiOA.js → TreeTable-CPTxegC1.js} +1 -1
- package/storybook-static/assets/{TreeTable.stories-CexcAFDG.js → TreeTable.stories-BjUwwZjp.js} +1 -1
- package/storybook-static/assets/{WithTooltip-7X4HQR7L-CceOi7V4.js → WithTooltip-7X4HQR7L-CUFIZPaf.js} +1 -1
- package/storybook-static/assets/{base-table-C0Zyxki6.js → base-table-cOtSkLXv.js} +1 -1
- package/storybook-static/assets/{blocks-CcO3Y_Rh.js → blocks-Ca82jrBU.js} +6 -6
- package/storybook-static/assets/{button-0yIdCp_-.js → button-BFuY_BqY.js} +1 -1
- package/storybook-static/assets/{check-box-vfk8jzFK.js → check-box-CmlDA0Xq.js} +1 -1
- package/storybook-static/assets/{chunk-3LY4VQVK-CZm0s4iL.js → chunk-3LY4VQVK-CDA9ib8M.js} +1 -1
- package/storybook-static/assets/{chunk-LITCR56V-C1XleE0V.js → chunk-LITCR56V-Mcli8zWg.js} +1 -1
- package/storybook-static/assets/{contextMenu-DJTYsh3u.js → contextMenu-BJxw-pJj.js} +1 -1
- package/storybook-static/assets/{error-7f4bI5b8.js → error-BwxipWa_.js} +1 -1
- package/storybook-static/assets/flex-BPTt9N_D.js +1 -0
- package/storybook-static/assets/{floating-ui.react-C-t718F2.js → floating-ui.react-CA8LXveu.js} +1 -1
- package/storybook-static/assets/formatter-L2YTDE3Q-CiF3j9Xe.js +1 -0
- package/storybook-static/assets/{formatters-c68ZHiVV.js → formatters-BSZSiQe7.js} +1 -1
- package/storybook-static/assets/grid-C5nOHfpH.js +1 -0
- package/storybook-static/assets/{hooks-Cia2yw95.js → hooks-rW6LwSJF.js} +1 -1
- package/storybook-static/assets/{iframe-B1ZJmGrq.js → iframe-DBBiRbws.js} +4 -4
- package/storybook-static/assets/{input-Bfb8MLis.js → input-DQGrA_Iz.js} +1 -1
- package/storybook-static/assets/{lucide-react-Cw6QPvVA.js → lucide-react-DbhedXaa.js} +1 -1
- package/storybook-static/assets/{mdx-react-shim-BGEl8pi6.js → mdx-react-shim-B-pYVQSG.js} +1 -1
- package/storybook-static/assets/{media-DsA0K_ZS.js → media-D2fdlN5C.js} +1 -1
- package/storybook-static/assets/{misc-zL4hFipW.js → misc-B5Fq527b.js} +1 -1
- package/storybook-static/assets/{notifications-BYXcjAgk.js → notifications-CdinTHBe.js} +1 -1
- package/storybook-static/assets/{odata-CZ14RE2x.js → odata-CpEOYNKi.js} +1 -1
- package/storybook-static/assets/odata-service-C0Syx7b6.js +1 -0
- package/storybook-static/assets/{odataStoryFixtures-Cv8XAuzz.js → odataStoryFixtures-dUEdLQNZ.js} +1 -1
- package/storybook-static/assets/{picker-DBhG__oJ.js → picker-Cuzrli2L.js} +1 -1
- package/storybook-static/assets/{popover-CahYWIfo.js → popover-BiSsB8FW.js} +1 -1
- package/storybook-static/assets/{preset-select-C5XCvtZE.js → preset-select-VPhuOafv.js} +1 -1
- package/storybook-static/assets/{react-18-BpKMg-Cr.js → react-18-Dj98SmrN.js} +1 -1
- package/storybook-static/assets/{react-DzMAKl9o.js → react-BuNie9Jj.js} +1 -1
- package/storybook-static/assets/{react-dom-BfFG7H_X.js → react-dom-H_XMZTBP.js} +1 -1
- package/storybook-static/assets/select-C0acjPk-.js +1 -0
- package/storybook-static/assets/{slider-CWiv9HFe.js → slider-DJkr9biy.js} +1 -1
- package/storybook-static/assets/{sortable-D_PcZ-1o.js → sortable-Wp4NkSxC.js} +1 -1
- package/storybook-static/assets/{syntaxhighlighter-RTCFPKCB-DatthS1s.js → syntaxhighlighter-RTCFPKCB-Bmk5Bc5f.js} +1 -1
- package/storybook-static/assets/{text-6oBGbhcX.js → text-TQB-LeS7.js} +1 -1
- package/storybook-static/assets/{theming-c9hibVvV.js → theming-BSLvozk8.js} +1 -1
- package/storybook-static/assets/ui-DaejdOMA.js +1 -0
- package/storybook-static/assets/{useODataSelectBase-BP43aYQp.js → useODataSelectBase-DTU8LMxW.js} +1 -1
- package/storybook-static/assets/{useODataTreeData-D-13yhFk.js → useODataTreeData-BIA97pbg.js} +1 -1
- package/storybook-static/assets/{utils-B7W0zPTP.js → utils-CJ9XKy2b.js} +1 -1
- package/storybook-static/iframe.html +1 -1
- package/storybook-static/index.json +1 -1
- package/storybook-static/project.json +1 -1
- package/dist/chunks/flex-CPO6xlPR.js.map +0 -1
- package/dist/chunks/grid-ByIIytjh.js.map +0 -1
- package/dist/image/ui/ImageSelection.d.ts +0 -40
- package/dist/image/ui/ImageSelection.d.ts.map +0 -1
- package/storybook-static/assets/Flex-CML6WrKV.js +0 -3
- package/storybook-static/assets/flex-fN9xAXRx.js +0 -1
- package/storybook-static/assets/formatter-L2YTDE3Q-BYPWeXB6.js +0 -1
- package/storybook-static/assets/grid-DnGlfdqF.js +0 -1
- package/storybook-static/assets/odata-service-FtP1kYQx.js +0 -1
- package/storybook-static/assets/select-C1fXLf5x.js +0 -1
- package/storybook-static/assets/ui-Cq8WdcMq.js +0 -1
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import{c as e,i as t,r as n}from"./preload-helper-B45gAKPr.js";import{C as r}from"./iframe-DBBiRbws.js";import{t as i}from"./jsx-runtime-BBQGix-2.js";var a=n(((e,t)=>{var n=!1,r,i,a,o,s,c,l,u,d,f,p,m,h,g,_;function v(){if(!n){n=!0;var e=navigator.userAgent,t=/(?:MSIE.(\d+\.\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\d+\.\d+))|(?:Opera(?:.+Version.|.)(\d+\.\d+))|(?:AppleWebKit.(\d+(?:\.\d+)?))|(?:Trident\/\d+\.\d+.*rv:(\d+\.\d+))/.exec(e),v=/(Mac OS X)|(Windows)|(Linux)/.exec(e);if(m=/\b(iPhone|iP[ao]d)/.exec(e),h=/\b(iP[ao]d)/.exec(e),f=/Android/i.exec(e),g=/FBAN\/\w+;/i.exec(e),_=/Mobile/i.exec(e),p=!!/Win64/.exec(e),t){r=t[1]?parseFloat(t[1]):t[5]?parseFloat(t[5]):NaN,r&&document&&document.documentMode&&(r=document.documentMode);var y=/(?:Trident\/(\d+.\d+))/.exec(e);c=y?parseFloat(y[1])+4:r,i=t[2]?parseFloat(t[2]):NaN,a=t[3]?parseFloat(t[3]):NaN,o=t[4]?parseFloat(t[4]):NaN,o?(t=/(?:Chrome\/(\d+\.\d+))/.exec(e),s=t&&t[1]?parseFloat(t[1]):NaN):s=NaN}else r=i=a=s=o=NaN;if(v){if(v[1]){var b=/(?:Mac OS X (\d+(?:[._]\d+)?))/.exec(e);l=b?parseFloat(b[1].replace(`_`,`.`)):!0}else l=!1;u=!!v[2],d=!!v[3]}else l=u=d=!1}}var y={ie:function(){return v()||r},ieCompatibilityMode:function(){return v()||c>r},ie64:function(){return y.ie()&&p},firefox:function(){return v()||i},opera:function(){return v()||a},webkit:function(){return v()||o},safari:function(){return y.webkit()},chrome:function(){return v()||s},windows:function(){return v()||u},osx:function(){return v()||l},linux:function(){return v()||d},iphone:function(){return v()||m},mobile:function(){return v()||m||h||f||_},nativeApp:function(){return v()||g},android:function(){return v()||f},ipad:function(){return v()||h}};t.exports=y})),o=n(((e,t)=>{var n=!!(typeof window<`u`&&window.document&&window.document.createElement);t.exports={canUseDOM:n,canUseWorkers:typeof Worker<`u`,canUseEventListeners:n&&!!(window.addEventListener||window.attachEvent),canUseViewport:n&&!!window.screen,isInWorker:!n}})),s=n(((e,t)=>{var n=o(),r;n.canUseDOM&&(r=document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature(``,``)!==!0);function i(e,t){if(!n.canUseDOM||t&&!(`addEventListener`in document))return!1;var i=`on`+e,a=i in document;if(!a){var o=document.createElement(`div`);o.setAttribute(i,`return;`),a=typeof o[i]==`function`}return!a&&r&&e===`wheel`&&(a=document.implementation.hasFeature(`Events.wheel`,`3.0`)),a}t.exports=i})),c=n(((e,t)=>{var n=a(),r=s(),i=10,o=40,c=800;function l(e){var t=0,n=0,r=0,a=0;return`detail`in e&&(n=e.detail),`wheelDelta`in e&&(n=-e.wheelDelta/120),`wheelDeltaY`in e&&(n=-e.wheelDeltaY/120),`wheelDeltaX`in e&&(t=-e.wheelDeltaX/120),`axis`in e&&e.axis===e.HORIZONTAL_AXIS&&(t=n,n=0),r=t*i,a=n*i,`deltaY`in e&&(a=e.deltaY),`deltaX`in e&&(r=e.deltaX),(r||a)&&e.deltaMode&&(e.deltaMode==1?(r*=o,a*=o):(r*=c,a*=c)),r&&!t&&(t=r<1?-1:1),a&&!n&&(n=a<1?-1:1),{spinX:t,spinY:n,pixelX:r,pixelY:a}}l.getEventType=function(){return n.firefox()?`DOMMouseScroll`:r(`wheel`)?`wheel`:`mousewheel`},t.exports=l})),l=n(((e,t)=>{t.exports=c()}));function u(e){"@babel/helpers - typeof";return u=typeof Symbol==`function`&&typeof Symbol.iterator==`symbol`?function(e){return typeof e}:function(e){return e&&typeof Symbol==`function`&&e.constructor===Symbol&&e!==Symbol.prototype?`symbol`:typeof e},u(e)}function d(e,t){if(u(e)!=`object`||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||`default`);if(u(r)!=`object`)return r;throw TypeError(`@@toPrimitive must return a primitive value.`)}return(t===`string`?String:Number)(e)}function f(e){var t=d(e,`string`);return u(t)==`symbol`?t:t+``}function p(e,t,n){return(t=f(t))in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function m(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),n.push.apply(n,r)}return n}function h(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]==null?{}:arguments[t];t%2?m(Object(n),!0).forEach(function(t){p(e,t,n[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):m(Object(n)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))})}return e}function g(e,t,n,r,i,a=0){let{width:o,height:s}=k(e,t,a),c=Math.min(o,n),l=Math.min(s,r);return c>l*i?{width:l*i,height:l}:{width:c,height:c/i}}function _(e){return e.width>e.height?e.width/e.naturalWidth:e.height/e.naturalHeight}function v(e,t,n,r,i=0){let{width:a,height:o}=k(t.width,t.height,i);return{x:y(e.x,a,n.width,r),y:y(e.y,o,n.height,r)}}function y(e,t,n,r){let i=Math.abs(t*r/2-n/2);return A(e,-i,i)}function b(e,t){return Math.sqrt((e.y-t.y)**2+(e.x-t.x)**2)}function x(e,t){return Math.atan2(t.y-e.y,t.x-e.x)*180/Math.PI}function S(e,t,n,r,i,a=0,o=!0){let s=o?C:w,c=k(t.width,t.height,a),l=k(t.naturalWidth,t.naturalHeight,a),u={x:s(100,((c.width-n.width/i)/2-e.x/i)/c.width*100),y:s(100,((c.height-n.height/i)/2-e.y/i)/c.height*100),width:s(100,n.width/c.width*100/i),height:s(100,n.height/c.height*100/i)},d=Math.round(s(l.width,u.width*l.width/100)),f=Math.round(s(l.height,u.height*l.height/100)),p=l.width>=l.height*r?{width:Math.round(f*r),height:f}:{width:d,height:Math.round(d/r)};return{croppedAreaPercentages:u,croppedAreaPixels:h(h({},p),{},{x:Math.round(s(l.width-p.width,u.x*l.width/100)),y:Math.round(s(l.height-p.height,u.y*l.height/100))})}}function C(e,t){return Math.min(e,Math.max(0,t))}function w(e,t){return t}function T(e,t,n,r,i,a){let o=k(t.width,t.height,n),s=A(r.width/o.width*(100/e.width),i,a);return{crop:{x:s*o.width/2-r.width/2-o.width*s*(e.x/100),y:s*o.height/2-r.height/2-o.height*s*(e.y/100)},zoom:s}}function ee(e,t,n){let r=_(t);return n.height>n.width?n.height/(e.height*r):n.width/(e.width*r)}function E(e,t,n=0,r,i,a){let o=k(t.naturalWidth,t.naturalHeight,n),s=A(ee(e,t,r),i,a),c=r.height>r.width?r.height/e.height:r.width/e.width;return{crop:{x:((o.width-e.width)/2-e.x)*c,y:((o.height-e.height)/2-e.y)*c},zoom:s}}function D(e,t){return{x:(t.x+e.x)/2,y:(t.y+e.y)/2}}function O(e){return e*Math.PI/180}function k(e,t,n){let r=O(n);return{width:Math.abs(Math.cos(r)*e)+Math.abs(Math.sin(r)*t),height:Math.abs(Math.sin(r)*e)+Math.abs(Math.cos(r)*t)}}function A(e,t,n){return Math.min(Math.max(e,t),n)}function j(...e){return e.filter(e=>typeof e==`string`&&e.length>0).join(` `).trim()}var M,N,P,F,I,L,R,z,B,V=t((()=>{M=e(r(),1),N=e(l(),1),P=`.reactEasyCrop_Container {
|
|
2
|
+
position: absolute;
|
|
3
|
+
top: 0;
|
|
4
|
+
left: 0;
|
|
5
|
+
right: 0;
|
|
6
|
+
bottom: 0;
|
|
7
|
+
overflow: hidden;
|
|
8
|
+
user-select: none;
|
|
9
|
+
touch-action: none;
|
|
10
|
+
cursor: move;
|
|
11
|
+
display: flex;
|
|
12
|
+
justify-content: center;
|
|
13
|
+
align-items: center;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.reactEasyCrop_Image,
|
|
17
|
+
.reactEasyCrop_Video {
|
|
18
|
+
will-change: transform; /* this improves performances and prevent painting issues on iOS Chrome */
|
|
19
|
+
max-width: unset; /* prevent global img/video reset rules from constraining the cropper media */
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
.reactEasyCrop_Contain {
|
|
23
|
+
max-width: 100%;
|
|
24
|
+
max-height: 100%;
|
|
25
|
+
margin: auto;
|
|
26
|
+
position: absolute;
|
|
27
|
+
top: 0;
|
|
28
|
+
bottom: 0;
|
|
29
|
+
left: 0;
|
|
30
|
+
right: 0;
|
|
31
|
+
}
|
|
32
|
+
.reactEasyCrop_Cover_Horizontal {
|
|
33
|
+
width: 100%;
|
|
34
|
+
height: auto;
|
|
35
|
+
}
|
|
36
|
+
.reactEasyCrop_Cover_Vertical {
|
|
37
|
+
width: auto;
|
|
38
|
+
height: 100%;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.reactEasyCrop_CropArea {
|
|
42
|
+
position: absolute;
|
|
43
|
+
left: 50%;
|
|
44
|
+
top: 50%;
|
|
45
|
+
transform: translate(-50%, -50%);
|
|
46
|
+
border: 1px solid rgba(255, 255, 255, 0.5);
|
|
47
|
+
box-sizing: border-box;
|
|
48
|
+
box-shadow: 0 0 0 9999em;
|
|
49
|
+
color: rgba(0, 0, 0, 0.5);
|
|
50
|
+
overflow: hidden;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.reactEasyCrop_CropAreaRound {
|
|
54
|
+
border-radius: 50%;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.reactEasyCrop_CropAreaGrid::before {
|
|
58
|
+
content: ' ';
|
|
59
|
+
box-sizing: border-box;
|
|
60
|
+
position: absolute;
|
|
61
|
+
border: 1px solid rgba(255, 255, 255, 0.5);
|
|
62
|
+
top: 0;
|
|
63
|
+
bottom: 0;
|
|
64
|
+
left: 33.33%;
|
|
65
|
+
right: 33.33%;
|
|
66
|
+
border-top: 0;
|
|
67
|
+
border-bottom: 0;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
.reactEasyCrop_CropAreaGrid::after {
|
|
71
|
+
content: ' ';
|
|
72
|
+
box-sizing: border-box;
|
|
73
|
+
position: absolute;
|
|
74
|
+
border: 1px solid rgba(255, 255, 255, 0.5);
|
|
75
|
+
top: 33.33%;
|
|
76
|
+
bottom: 33.33%;
|
|
77
|
+
left: 0;
|
|
78
|
+
right: 0;
|
|
79
|
+
border-left: 0;
|
|
80
|
+
border-right: 0;
|
|
81
|
+
}
|
|
82
|
+
`,F=250,I=1,L=3,R=1,z=class e extends M.Component{constructor(...t){super(...t),this.cropperRef=M.createRef(),this.imageRef=M.createRef(),this.videoRef=M.createRef(),this.containerPosition={x:0,y:0},this.containerRef=null,this.styleRef=null,this.containerRect=null,this.mediaSize={width:0,height:0,naturalWidth:0,naturalHeight:0},this.dragStartPosition={x:0,y:0},this.dragStartCrop={x:0,y:0},this.gestureZoomStart=0,this.gestureRotationStart=0,this.isTouching=!1,this.lastPinchDistance=0,this.lastPinchRotation=0,this.rafDragTimeout=null,this.rafPinchTimeout=null,this.wheelTimer=null,this.resizeEmitTimer=null,this.currentDoc=typeof document<`u`?document:null,this.currentWindow=typeof window<`u`?window:null,this.resizeObserver=null,this.previousCropSize=null,this.isInitialized=!1,this.dragInteractionSource=null,this.state={cropSize:null,hasWheelJustStarted:!1,mediaObjectFit:void 0},this.initResizeObserver=()=>{if(window.ResizeObserver===void 0||!this.containerRef)return;let e=!0;this.resizeObserver=new window.ResizeObserver(t=>{if(e){e=!1;return}this.computeSizes({isResizeTriggered:!0})}),this.resizeObserver.observe(this.containerRef)},this.onWindowResize=()=>{this.computeSizes({isResizeTriggered:!0})},this.preventZoomSafari=e=>e.preventDefault(),this.cleanEvents=()=>{this.currentDoc&&(this.currentDoc.removeEventListener(`mousemove`,this.onMouseMove),this.currentDoc.removeEventListener(`mouseup`,this.onDragStopped),this.currentDoc.removeEventListener(`touchmove`,this.onTouchMove),this.currentDoc.removeEventListener(`touchend`,this.onDragStopped),this.currentDoc.removeEventListener(`gesturechange`,this.onGestureChange),this.currentDoc.removeEventListener(`gestureend`,this.onGestureEnd),this.currentDoc.removeEventListener(`scroll`,this.onScroll))},this.clearScrollEvent=()=>{this.containerRef&&this.containerRef.removeEventListener(`wheel`,this.onWheel),this.wheelTimer&&clearTimeout(this.wheelTimer)},this.onMediaLoad=()=>{let e=this.computeSizes();e&&(this.previousCropSize=e,this.emitCropData(),this.setInitialCrop(e),this.isInitialized=!0),this.props.onMediaLoaded&&this.props.onMediaLoaded(this.mediaSize)},this.setInitialCrop=e=>{if(this.props.initialCroppedAreaPercentages){let{crop:t,zoom:n}=T(this.props.initialCroppedAreaPercentages,this.mediaSize,this.props.rotation,e,this.props.minZoom,this.props.maxZoom);this.props.onCropChange(t),this.props.onZoomChange&&this.props.onZoomChange(n)}else if(this.props.initialCroppedAreaPixels){let{crop:t,zoom:n}=E(this.props.initialCroppedAreaPixels,this.mediaSize,this.props.rotation,e,this.props.minZoom,this.props.maxZoom);this.props.onCropChange(t),this.props.onZoomChange&&this.props.onZoomChange(n)}},this.computeSizes=({isResizeTriggered:e=!1}={})=>{let t=this.imageRef.current||this.videoRef.current;if(t&&this.containerRef){this.containerRect=this.containerRef.getBoundingClientRect(),this.saveContainerPosition();let n=this.containerRect.width/this.containerRect.height,r=this.imageRef.current?.naturalWidth||this.videoRef.current?.videoWidth||0,i=this.imageRef.current?.naturalHeight||this.videoRef.current?.videoHeight||0,a=t.offsetWidth<r||t.offsetHeight<i,o=r/i,s;if(a)switch(this.state.mediaObjectFit){default:case`contain`:s=n>o?{width:this.containerRect.height*o,height:this.containerRect.height}:{width:this.containerRect.width,height:this.containerRect.width/o};break;case`horizontal-cover`:s={width:this.containerRect.width,height:this.containerRect.width/o};break;case`vertical-cover`:s={width:this.containerRect.height*o,height:this.containerRect.height};break}else s={width:t.offsetWidth,height:t.offsetHeight};this.mediaSize=h(h({},s),{},{naturalWidth:r,naturalHeight:i}),this.props.setMediaSize&&this.props.setMediaSize(this.mediaSize);let c=this.props.cropSize?this.props.cropSize:g(this.mediaSize.width,this.mediaSize.height,this.containerRect.width,this.containerRect.height,this.props.aspect,this.props.rotation);return(this.state.cropSize?.height!==c.height||this.state.cropSize?.width!==c.width)&&this.props.onCropSizeChange&&this.props.onCropSizeChange(c),this.setState({cropSize:c},()=>this.recomputeCropPosition({isResizeTriggered:e})),this.props.setCropSize&&this.props.setCropSize(c),c}},this.saveContainerPosition=()=>{if(this.containerRef){let e=this.containerRef.getBoundingClientRect();this.containerPosition={x:e.left,y:e.top}}},this.onMouseDown=t=>{this.currentDoc&&(t.preventDefault(),this.currentDoc.addEventListener(`mousemove`,this.onMouseMove),this.currentDoc.addEventListener(`mouseup`,this.onDragStopped),this.saveContainerPosition(),this.onDragStart(e.getMousePoint(t),`mouse`))},this.onMouseMove=t=>this.onDrag(e.getMousePoint(t)),this.onScroll=e=>{this.currentDoc&&(e.preventDefault(),this.saveContainerPosition())},this.onTouchStart=t=>{this.currentDoc&&(this.isTouching=!0,!(this.props.onTouchRequest&&!this.props.onTouchRequest(t))&&(this.currentDoc.addEventListener(`touchmove`,this.onTouchMove,{passive:!1}),this.currentDoc.addEventListener(`touchend`,this.onDragStopped),this.saveContainerPosition(),t.touches.length===2?this.onPinchStart(t):t.touches.length===1&&this.onDragStart(e.getTouchPoint(t.touches[0]),`touch`)))},this.onTouchMove=t=>{t.preventDefault(),t.touches.length===2?this.onPinchMove(t):t.touches.length===1&&this.onDrag(e.getTouchPoint(t.touches[0]))},this.onGestureStart=e=>{this.currentDoc&&(e.preventDefault(),this.currentDoc.addEventListener(`gesturechange`,this.onGestureChange),this.currentDoc.addEventListener(`gestureend`,this.onGestureEnd),this.gestureZoomStart=this.props.zoom,this.gestureRotationStart=this.props.rotation)},this.onGestureChange=t=>{if(t.preventDefault(),this.isTouching)return;let n=e.getMousePoint(t),r=this.gestureZoomStart-1+t.scale;if(this.setNewZoom(r,n,{shouldUpdatePosition:!0}),this.props.onRotationChange){let e=this.gestureRotationStart+t.rotation;this.props.onRotationChange(e)}},this.onGestureEnd=e=>{this.cleanEvents()},this.onDragStart=({x:e,y:t},n)=>{var r,i;this.dragStartPosition={x:e,y:t},this.dragStartCrop=h({},this.props.crop),this.dragInteractionSource=n,(r=(i=this.props).onInteractionStart)==null||r.call(i,{source:n})},this.onDrag=({x:e,y:t})=>{this.currentWindow&&(this.rafDragTimeout&&this.currentWindow.cancelAnimationFrame(this.rafDragTimeout),this.rafDragTimeout=this.currentWindow.requestAnimationFrame(()=>{if(!this.state.cropSize||e===void 0||t===void 0)return;let n=e-this.dragStartPosition.x,r=t-this.dragStartPosition.y,i={x:this.dragStartCrop.x+n,y:this.dragStartCrop.y+r},a=this.props.restrictPosition?v(i,this.mediaSize,this.state.cropSize,this.props.zoom,this.props.rotation):i;this.props.onCropChange(a)}))},this.onDragStopped=()=>{var e,t;this.isTouching=!1,this.cleanEvents(),this.emitCropData(),(e=(t=this.props).onInteractionEnd)==null||e.call(t,{source:this.dragInteractionSource??`mouse`}),this.dragInteractionSource=null},this.onWheel=t=>{if(!this.currentWindow||this.props.onWheelRequest&&!this.props.onWheelRequest(t))return;t.preventDefault();let n=e.getMousePoint(t),{pixelY:r}=(0,N.default)(t),i=this.props.zoom-r*this.props.zoomSpeed/200;this.setNewZoom(i,n,{shouldUpdatePosition:!0}),this.state.hasWheelJustStarted||this.setState({hasWheelJustStarted:!0},()=>{var e;return(e=this.props).onInteractionStart?.call(e,{source:`wheel`})}),this.wheelTimer&&clearTimeout(this.wheelTimer),this.wheelTimer=this.currentWindow.setTimeout(()=>this.setState({hasWheelJustStarted:!1},()=>{var e;return(e=this.props).onInteractionEnd?.call(e,{source:`wheel`})}),250)},this.getPointOnContainer=({x:e,y:t},n)=>{if(!this.containerRect)throw Error(`The Cropper is not mounted`);return{x:this.containerRect.width/2-(e-n.x),y:this.containerRect.height/2-(t-n.y)}},this.getPointOnMedia=({x:e,y:t})=>{let{crop:n,zoom:r}=this.props;return{x:(e+n.x)/r,y:(t+n.y)/r}},this.setNewZoom=(e,t,{shouldUpdatePosition:n=!0}={})=>{if(!this.state.cropSize||!this.props.onZoomChange)return;let r=A(e,this.props.minZoom,this.props.maxZoom);if(n){let e=this.getPointOnContainer(t,this.containerPosition),n=this.getPointOnMedia(e),i={x:n.x*r-e.x,y:n.y*r-e.y},a=this.props.restrictPosition?v(i,this.mediaSize,this.state.cropSize,r,this.props.rotation):i;this.props.onCropChange(a)}this.props.onZoomChange(r)},this.getCropData=()=>this.state.cropSize?S(this.props.restrictPosition?v(this.props.crop,this.mediaSize,this.state.cropSize,this.props.zoom,this.props.rotation):this.props.crop,this.mediaSize,this.state.cropSize,this.getAspect(),this.props.zoom,this.props.rotation,this.props.restrictPosition):null,this.emitCropData=()=>{this.resizeEmitTimer&&=(clearTimeout(this.resizeEmitTimer),null);let e=this.getCropData();if(!e)return;let{croppedAreaPercentages:t,croppedAreaPixels:n}=e;this.props.onCropComplete&&this.props.onCropComplete(t,n),this.props.onCropAreaChange&&this.props.onCropAreaChange(t,n)},this.emitCropAreaChange=()=>{let e=this.getCropData();if(!e)return;let{croppedAreaPercentages:t,croppedAreaPixels:n}=e;this.props.onCropAreaChange&&this.props.onCropAreaChange(t,n)},this.recomputeCropPosition=({isResizeTriggered:e=!1}={})=>{if(!this.state.cropSize)return;let t=this.props.crop;if(this.isInitialized&&this.previousCropSize?.width&&this.previousCropSize?.height&&(Math.abs(this.previousCropSize.width-this.state.cropSize.width)>1e-6||Math.abs(this.previousCropSize.height-this.state.cropSize.height)>1e-6)){let e=this.state.cropSize.width/this.previousCropSize.width,n=this.state.cropSize.height/this.previousCropSize.height;t={x:this.props.crop.x*e,y:this.props.crop.y*n}}let n=this.props.restrictPosition?v(t,this.mediaSize,this.state.cropSize,this.props.zoom,this.props.rotation):t;this.previousCropSize=this.state.cropSize,this.props.onCropChange(n),e?this.debouncedEmitCropData():this.emitCropData()},this.debouncedEmitCropData=()=>{this.currentWindow&&(this.resizeEmitTimer&&clearTimeout(this.resizeEmitTimer),this.resizeEmitTimer=this.currentWindow.setTimeout(()=>{this.emitCropData()},F))},this.onKeyDown=e=>{let{crop:t,onCropChange:n,keyboardStep:r,zoom:i,rotation:a}=this.props,o=r;if(!this.state.cropSize)return;e.shiftKey&&(o*=.2);let s=h({},t);switch(e.key){case`ArrowUp`:s.y-=o,e.preventDefault();break;case`ArrowDown`:s.y+=o,e.preventDefault();break;case`ArrowLeft`:s.x-=o,e.preventDefault();break;case`ArrowRight`:s.x+=o,e.preventDefault();break;default:return}if(this.props.restrictPosition&&(s=v(s,this.mediaSize,this.state.cropSize,i,a)),!e.repeat){var c,l;(c=(l=this.props).onInteractionStart)==null||c.call(l,{source:`keyboard`})}n(s)},this.onKeyUp=e=>{var t,n;switch(e.key){case`ArrowUp`:case`ArrowDown`:case`ArrowLeft`:case`ArrowRight`:e.preventDefault();break;default:return}this.emitCropData(),(t=(n=this.props).onInteractionEnd)==null||t.call(n,{source:`keyboard`})}}componentDidMount(){!this.currentDoc||!this.currentWindow||(this.containerRef&&(this.containerRef.ownerDocument&&(this.currentDoc=this.containerRef.ownerDocument),this.currentDoc.defaultView&&(this.currentWindow=this.currentDoc.defaultView),this.initResizeObserver(),window.ResizeObserver===void 0&&this.currentWindow.addEventListener(`resize`,this.onWindowResize),this.props.zoomWithScroll&&this.containerRef.addEventListener(`wheel`,this.onWheel,{passive:!1}),this.containerRef.addEventListener(`gesturestart`,this.onGestureStart)),this.currentDoc.addEventListener(`scroll`,this.onScroll),this.props.disableAutomaticStylesInjection||(this.styleRef=this.currentDoc.createElement(`style`),this.styleRef.setAttribute(`type`,`text/css`),this.props.nonce&&this.styleRef.setAttribute(`nonce`,this.props.nonce),this.styleRef.innerHTML=P,this.currentDoc.head.appendChild(this.styleRef)),this.imageRef.current&&this.imageRef.current.complete&&this.onMediaLoad(),this.props.setImageRef&&this.props.setImageRef(this.imageRef),this.props.setVideoRef&&this.props.setVideoRef(this.videoRef),this.props.setCropperRef&&this.props.setCropperRef(this.cropperRef))}componentWillUnmount(){var e;if(!(!this.currentDoc||!this.currentWindow)){if(window.ResizeObserver===void 0&&this.currentWindow.removeEventListener(`resize`,this.onWindowResize),(e=this.resizeObserver)==null||e.disconnect(),this.resizeEmitTimer&&clearTimeout(this.resizeEmitTimer),this.containerRef&&this.containerRef.removeEventListener(`gesturestart`,this.preventZoomSafari),this.styleRef){var t;(t=this.styleRef.parentNode)==null||t.removeChild(this.styleRef)}this.cleanEvents(),this.props.zoomWithScroll&&this.clearScrollEvent()}}componentDidUpdate(e){if(e.rotation===this.props.rotation?e.aspect===this.props.aspect&&e.objectFit===this.props.objectFit?e.zoom===this.props.zoom?e.cropSize?.height!==this.props.cropSize?.height||e.cropSize?.width!==this.props.cropSize?.width?this.computeSizes():(e.crop?.x!==this.props.crop?.x||e.crop?.y!==this.props.crop?.y)&&this.emitCropAreaChange():this.recomputeCropPosition():this.computeSizes():(this.computeSizes(),this.recomputeCropPosition()),e.zoomWithScroll!==this.props.zoomWithScroll&&this.containerRef&&(this.props.zoomWithScroll?this.containerRef.addEventListener(`wheel`,this.onWheel,{passive:!1}):this.clearScrollEvent()),e.video!==this.props.video){var t;(t=this.videoRef.current)==null||t.load()}let n=this.getObjectFit();n!==this.state.mediaObjectFit&&this.setState({mediaObjectFit:n},this.computeSizes)}getAspect(){let{cropSize:e,aspect:t}=this.props;return e?e.width/e.height:t}getObjectFit(){if(this.props.objectFit===`cover`){if((this.imageRef.current||this.videoRef.current)&&this.containerRef){this.containerRect=this.containerRef.getBoundingClientRect();let e=this.containerRect.width/this.containerRect.height;return(this.imageRef.current?.naturalWidth||this.videoRef.current?.videoWidth||0)/(this.imageRef.current?.naturalHeight||this.videoRef.current?.videoHeight||0)<e?`horizontal-cover`:`vertical-cover`}return`horizontal-cover`}return this.props.objectFit}onPinchStart(t){let n=e.getTouchPoint(t.touches[0]),r=e.getTouchPoint(t.touches[1]);this.lastPinchDistance=b(n,r),this.lastPinchRotation=x(n,r),this.onDragStart(D(n,r),`touch`)}onPinchMove(t){if(!this.currentDoc||!this.currentWindow)return;let n=e.getTouchPoint(t.touches[0]),r=e.getTouchPoint(t.touches[1]),i=D(n,r);this.onDrag(i),this.rafPinchTimeout&&this.currentWindow.cancelAnimationFrame(this.rafPinchTimeout),this.rafPinchTimeout=this.currentWindow.requestAnimationFrame(()=>{let e=b(n,r),t=this.props.zoom*(e/this.lastPinchDistance);this.setNewZoom(t,i,{shouldUpdatePosition:!1}),this.lastPinchDistance=e;let a=x(n,r),o=this.props.rotation+(a-this.lastPinchRotation);this.props.onRotationChange&&this.props.onRotationChange(o),this.lastPinchRotation=a})}render(){let{image:e,video:t,mediaProps:n,cropperProps:r,transform:i,crop:{x:a,y:o},rotation:s,zoom:c,cropShape:l,showGrid:u,roundCropAreaPixels:d,style:{containerStyle:f,cropAreaStyle:p,mediaStyle:m},classes:{containerClassName:g,cropAreaClassName:_,mediaClassName:v}}=this.props,y=this.state.mediaObjectFit??this.getObjectFit();return M.createElement(`div`,{onMouseDown:this.onMouseDown,onTouchStart:this.onTouchStart,ref:e=>this.containerRef=e,"data-testid":`container`,style:f,className:j(`reactEasyCrop_Container`,g)},e?M.createElement(`img`,h(h({alt:``,className:j(`reactEasyCrop_Image`,y===`contain`&&`reactEasyCrop_Contain`,y===`horizontal-cover`&&`reactEasyCrop_Cover_Horizontal`,y===`vertical-cover`&&`reactEasyCrop_Cover_Vertical`,v)},n),{},{src:e,ref:this.imageRef,style:h(h({},m),{},{transform:i||`translate(${a}px, ${o}px) rotate(${s}deg) scale(${c})`}),onLoad:this.onMediaLoad})):t&&M.createElement(`video`,h(h({autoPlay:!0,playsInline:!0,loop:!0,muted:!0,className:j(`reactEasyCrop_Video`,y===`contain`&&`reactEasyCrop_Contain`,y===`horizontal-cover`&&`reactEasyCrop_Cover_Horizontal`,y===`vertical-cover`&&`reactEasyCrop_Cover_Vertical`,v)},n),{},{ref:this.videoRef,onLoadedMetadata:this.onMediaLoad,style:h(h({},m),{},{transform:i||`translate(${a}px, ${o}px) rotate(${s}deg) scale(${c})`}),controls:!1}),(Array.isArray(t)?t:[{src:t}]).map(e=>M.createElement(`source`,h({key:e.src},e)))),this.state.cropSize&&M.createElement(`div`,h({ref:this.cropperRef,style:h(h({},p),{},{width:d?Math.round(this.state.cropSize.width):this.state.cropSize.width,height:d?Math.round(this.state.cropSize.height):this.state.cropSize.height}),tabIndex:0,onKeyDown:this.onKeyDown,onKeyUp:this.onKeyUp,"data-testid":`cropper`,className:j(`reactEasyCrop_CropArea`,l===`round`&&`reactEasyCrop_CropAreaRound`,u&&`reactEasyCrop_CropAreaGrid`,_)},r)))}},z.defaultProps={zoom:1,rotation:0,aspect:4/3,maxZoom:L,minZoom:I,cropShape:`rect`,objectFit:`contain`,showGrid:!0,style:{},classes:{},mediaProps:{},cropperProps:{},zoomSpeed:1,restrictPosition:!0,zoomWithScroll:!0,keyboardStep:R},z.getMousePoint=e=>({x:Number(e.clientX),y:Number(e.clientY)}),z.getTouchPoint=e=>({x:Number(e.clientX),y:Number(e.clientY)}),B=z}));function H({image:e,aspect:t=16/9,width:n=`100%`,className:r,style:i,crop:a,defaultCrop:o=G,zoom:s,defaultZoom:c=1,minZoom:l=1,maxZoom:u=3,zoomSpeed:d=.1,objectFit:f=`contain`,disabled:p=!1,onCropChange:m,onZoomChange:h,onCropComplete:g}){let[_,v]=(0,U.useState)(o),[y,b]=(0,U.useState)(c),x=a??_,S=s??y,C=(0,U.useCallback)(e=>{p||(a===void 0&&v(e),m?.(e))},[a,p,m]),w=(0,U.useCallback)(e=>{p||(s===void 0&&b(e),h?.(e))},[p,h,s]),T=(0,U.useCallback)((e,t)=>{p||g?.(t,e)},[p,g]);return(0,W.jsx)(`div`,{className:r,style:{position:`relative`,width:n,aspectRatio:t,pointerEvents:p?`none`:void 0,...i},children:(0,W.jsx)(B,{image:e,crop:x,zoom:S,aspect:t,minZoom:l,maxZoom:u,zoomSpeed:d,objectFit:f,onCropChange:C,onZoomChange:w,onCropComplete:T,cropperProps:{"aria-disabled":p||void 0}})})}var U,W,G,K=t((()=>{U=e(r(),1),V(),W=i(),G={x:0,y:0},H.__docgenInfo={description:`Управляемая или автономная область обрезки изображения.
|
|
83
|
+
Числовой aspect задаётся вызывающим кодом и не связан с назначением изображения.`,methods:[],displayName:`ImageCropper`,props:{image:{required:!0,tsType:{name:`string`},description:``},aspect:{required:!1,tsType:{name:`number`},description:``,defaultValue:{value:`16 / 9`,computed:!1}},width:{required:!1,tsType:{name:`CSSProperties["width"]`,raw:`CSSProperties["width"]`},description:``,defaultValue:{value:`"100%"`,computed:!1}},className:{required:!1,tsType:{name:`string`},description:``},style:{required:!1,tsType:{name:`CSSProperties`},description:``},crop:{required:!1,tsType:{name:`signature`,type:`object`,raw:`{
|
|
84
|
+
x: number;
|
|
85
|
+
y: number;
|
|
86
|
+
}`,signature:{properties:[{key:`x`,value:{name:`number`,required:!0}},{key:`y`,value:{name:`number`,required:!0}}]}},description:``},defaultCrop:{required:!1,tsType:{name:`signature`,type:`object`,raw:`{
|
|
87
|
+
x: number;
|
|
88
|
+
y: number;
|
|
89
|
+
}`,signature:{properties:[{key:`x`,value:{name:`number`,required:!0}},{key:`y`,value:{name:`number`,required:!0}}]}},description:``,defaultValue:{value:`{ x: 0, y: 0 }`,computed:!1}},zoom:{required:!1,tsType:{name:`number`},description:``},defaultZoom:{required:!1,tsType:{name:`number`},description:``,defaultValue:{value:`1`,computed:!1}},minZoom:{required:!1,tsType:{name:`number`},description:``,defaultValue:{value:`1`,computed:!1}},maxZoom:{required:!1,tsType:{name:`number`},description:``,defaultValue:{value:`3`,computed:!1}},zoomSpeed:{required:!1,tsType:{name:`number`},description:``,defaultValue:{value:`0.1`,computed:!1}},objectFit:{required:!1,tsType:{name:`union`,raw:`"contain" | "cover" | "horizontal-cover" | "vertical-cover"`,elements:[{name:`literal`,value:`"contain"`},{name:`literal`,value:`"cover"`},{name:`literal`,value:`"horizontal-cover"`},{name:`literal`,value:`"vertical-cover"`}]},description:``,defaultValue:{value:`"contain"`,computed:!1}},disabled:{required:!1,tsType:{name:`boolean`},description:``,defaultValue:{value:`false`,computed:!1}},onCropChange:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(crop: ImageCropPoint) => void`,signature:{arguments:[{type:{name:`signature`,type:`object`,raw:`{
|
|
90
|
+
x: number;
|
|
91
|
+
y: number;
|
|
92
|
+
}`,signature:{properties:[{key:`x`,value:{name:`number`,required:!0}},{key:`y`,value:{name:`number`,required:!0}}]}},name:`crop`}],return:{name:`void`}}},description:``},onZoomChange:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(zoom: number) => void`,signature:{arguments:[{type:{name:`number`},name:`zoom`}],return:{name:`void`}}},description:``},onCropComplete:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(croppedAreaPixels: ImageCropArea, croppedAreaPercentages: ImageCropArea) => void`,signature:{arguments:[{type:{name:`signature`,type:`object`,raw:`{
|
|
93
|
+
x: number;
|
|
94
|
+
y: number;
|
|
95
|
+
width: number;
|
|
96
|
+
height: number;
|
|
97
|
+
}`,signature:{properties:[{key:`x`,value:{name:`number`,required:!0}},{key:`y`,value:{name:`number`,required:!0}},{key:`width`,value:{name:`number`,required:!0}},{key:`height`,value:{name:`number`,required:!0}}]}},name:`croppedAreaPixels`},{type:{name:`signature`,type:`object`,raw:`{
|
|
98
|
+
x: number;
|
|
99
|
+
y: number;
|
|
100
|
+
width: number;
|
|
101
|
+
height: number;
|
|
102
|
+
}`,signature:{properties:[{key:`x`,value:{name:`number`,required:!0}},{key:`y`,value:{name:`number`,required:!0}},{key:`width`,value:{name:`number`,required:!0}},{key:`height`,value:{name:`number`,required:!0}}]}},name:`croppedAreaPercentages`}],return:{name:`void`}}},description:``}}}})),q,J,Y,X,Z,Q,$;t((()=>{q=e(r(),1),K(),J=i(),Y={title:`Shared/UI/Image/ImageCropper`,component:H,args:{image:`https://images.unsplash.com/photo-1500530855697-b586d89ba3ee?auto=format&fit=crop&w=1600&q=80`,aspect:16/9},parameters:{layout:`padded`},argTypes:{aspect:{control:`number`}}},X={},Z={render:e=>{let[t,n]=(0,q.useState)({x:0,y:0}),[r,i]=(0,q.useState)(1);return(0,J.jsx)(H,{...e,crop:t,zoom:r,onCropChange:n,onZoomChange:i})}},Q={args:{aspect:1}},X.parameters={...X.parameters,docs:{...X.parameters?.docs,source:{originalSource:`{}`,...X.parameters?.docs?.source}}},Z.parameters={...Z.parameters,docs:{...Z.parameters?.docs,source:{originalSource:`{
|
|
103
|
+
render: args => {
|
|
104
|
+
const [crop, setCrop] = useState<ImageCropPoint>({
|
|
105
|
+
x: 0,
|
|
106
|
+
y: 0
|
|
107
|
+
});
|
|
108
|
+
const [zoom, setZoom] = useState(1);
|
|
109
|
+
return <ImageCropper {...args} crop={crop} zoom={zoom} onCropChange={setCrop} onZoomChange={setZoom} />;
|
|
110
|
+
}
|
|
111
|
+
}`,...Z.parameters?.docs?.source}}},Q.parameters={...Q.parameters,docs:{...Q.parameters?.docs,source:{originalSource:`{
|
|
112
|
+
args: {
|
|
113
|
+
aspect: 1
|
|
114
|
+
}
|
|
115
|
+
}`,...Q.parameters?.docs?.source}}},$=[`Uncontrolled`,`Controlled`,`Square`]}))();export{Z as Controlled,Q as Square,X as Uncontrolled,$ as __namedExportsOrder,Y as default};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{c as e,i as t}from"./preload-helper-B45gAKPr.js";import{C as n}from"./iframe-DBBiRbws.js";import{t as r}from"./jsx-runtime-BBQGix-2.js";function i({width:e=`100%`,height:t=`100%`,aspectRatio:n=`16 / 9`,className:r}){return(0,a.jsx)(`div`,{style:{width:e,height:t,aspectRatio:n},className:r,children:(0,a.jsx)(`svg`,{width:e,height:t,viewBox:`0 0 200 200`,xmlns:`http://www.w3.org/2000/svg`,role:`img`,fill:`none`,rx:`10`,ry:`10`,style:{display:`block`},"aria-label":`Изображение недоступно`,children:(0,a.jsxs)(`g`,{fill:`var(--surface-0)`,children:[(0,a.jsx)(`rect`,{x:`40`,y:`50`,width:`120`,height:`100`,rx:`10`}),(0,a.jsx)(`circle`,{cx:`60`,cy:`70`,r:`8`,fill:`var(--surface-2)`}),(0,a.jsx)(`path`,{d:`M50 130 L75 100 L100 130 Z`,fill:`var(--surface-2)`}),(0,a.jsx)(`path`,{d:`M90 130 L120 90 L150 130 Z`,fill:`var(--surface-2)`}),(0,a.jsx)(`line`,{x1:`160`,y1:`40`,x2:`40`,y2:`160`,stroke:`var(--surface-0)`,strokeWidth:`15`,strokeLinecap:`round`}),(0,a.jsx)(`line`,{x1:`160`,y1:`40`,x2:`40`,y2:`160`,stroke:`var(--surface-2)`,strokeWidth:`5`,strokeLinecap:`round`})]})})})}var a,o=t((()=>{a=r(),i.__docgenInfo={description:``,methods:[],displayName:`ImagePlaceholder`,props:{width:{required:!1,tsType:{name:`union`,raw:`number | string`,elements:[{name:`number`},{name:`string`}]},description:``,defaultValue:{value:`"100%"`,computed:!1}},height:{required:!1,tsType:{name:`union`,raw:`number | string`,elements:[{name:`number`},{name:`string`}]},description:``,defaultValue:{value:`"100%"`,computed:!1}},aspectRatio:{required:!1,tsType:{name:`union`,raw:`string | "unset"`,elements:[{name:`string`},{name:`literal`,value:`"unset"`}]},description:``,defaultValue:{value:`"16 / 9"`,computed:!1}},className:{required:!1,tsType:{name:`string`},description:``}}}}));function s({src:e,sources:t,alt:n,role:r,ariaLabel:a,caption:o,fallback:s,useFigure:u=!1,layout:d=`cover`,width:f=`100%`,height:p=`100%`,aspectRatio:m,intrinsicWidth:h,intrinsicHeight:g,onLoad:_,onError:v,style:y,wrapperStyle:b,...x}){let S=(0,c.useRef)(null),[C,w]=(0,c.useState)(0),[T,E]=(0,c.useState)(!1),[D,O]=(0,c.useState)(!1),[k,A]=(0,c.useState)(!1);(0,c.useEffect)(()=>{if(typeof IntersectionObserver>`u`){let e=window.setTimeout(()=>E(!0),0);return()=>window.clearTimeout(e)}let e=new IntersectionObserver(([t])=>{if(t.isIntersecting){let n=Math.round(t.boundingClientRect.width);w(n),E(!0),e.disconnect()}},{rootMargin:`100px`,threshold:.01});return S.current&&e.observe(S.current),()=>e.disconnect()},[]);let j=d===`intrinsic`,M=j?`auto`:p,N=h&&g?`${h} / ${g}`:void 0,P=j?N??m??`auto`:m??`16 / 9`,F=j&&P!==`auto`&&P!==`unset`?`100%`:M,I=C?`${C}px`:`100vw`,L=(0,l.jsx)(i,{width:f,height:F,aspectRatio:P}),R=j?{...y,display:`block`,width:`100%`,height:`auto`,objectFit:void 0}:{display:`block`,width:`100%`,height:`100%`,objectFit:d,...y},z=(0,l.jsxs)(l.Fragment,{children:[!D&&!k&&(s||L),T&&!k&&(0,l.jsxs)(`picture`,{children:[t?.map(e=>(0,l.jsx)(`source`,{srcSet:e.srcSet,type:e.type,sizes:e.sizes??I},`${e.type??`source`}-${e.srcSet}`)),(0,l.jsx)(`img`,{src:e,alt:n,role:r,"aria-label":a,onLoad:e=>{O(!0),_?.(e)},onError:e=>{A(!0),v?.(e)},style:D?R:{display:`none`},"aria-busy":!D,width:h,height:g,...x})]}),k&&L]}),B=(0,l.jsx)(`div`,{ref:S,style:{width:f,height:M,aspectRatio:P,...b},children:z});return u?(0,l.jsxs)(`figure`,{className:`relative`,children:[B,o&&(0,l.jsx)(`figcaption`,{style:{bottom:2,right:2,maxWidth:`calc(100% - 4px)`},className:`absolute paddingInlineMd textRight radiusSm fontSizeSm`,children:o})]}):B}var c,l,u=t((()=>{c=e(n(),1),o(),l=r(),s.__docgenInfo={description:`Базовый рендер изображения: lazy-появление, placeholder, обработка ошибки и figure/caption.
|
|
2
|
+
Компонент не знает, как устроено хранилище и какие форматы/размеры доступны.`,methods:[],displayName:`ImageRenderer`,props:{src:{required:!0,tsType:{name:`string`},description:``},sources:{required:!1,tsType:{name:`unknown`},description:``},layout:{required:!1,tsType:{name:`union`,raw:`"cover" | "contain" | "intrinsic"`,elements:[{name:`literal`,value:`"cover"`},{name:`literal`,value:`"contain"`},{name:`literal`,value:`"intrinsic"`}]},description:``,defaultValue:{value:`"cover"`,computed:!1}},alt:{required:!1,tsType:{name:`string`},description:``},role:{required:!1,tsType:{name:`string`},description:``},ariaLabel:{required:!1,tsType:{name:`string`},description:``},caption:{required:!1,tsType:{name:`string`},description:``},fallback:{required:!1,tsType:{name:`ReactNode`},description:``},useFigure:{required:!1,tsType:{name:`boolean`},description:``,defaultValue:{value:`false`,computed:!1}},aspectRatio:{required:!1,tsType:{name:`union`,raw:`string | "unset"`,elements:[{name:`string`},{name:`literal`,value:`"unset"`}]},description:``},width:{required:!1,tsType:{name:`CSSProperties["width"]`,raw:`CSSProperties["width"]`},description:``,defaultValue:{value:`"100%"`,computed:!1}},height:{required:!1,tsType:{name:`CSSProperties["height"]`,raw:`CSSProperties["height"]`},description:``,defaultValue:{value:`"100%"`,computed:!1}},intrinsicWidth:{required:!1,tsType:{name:`number`},description:``},intrinsicHeight:{required:!1,tsType:{name:`number`},description:``},wrapperStyle:{required:!1,tsType:{name:`CSSProperties`},description:``}},composes:[`Omit`]}}));export{u as n,s as t};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import{i as e}from"./preload-helper-B45gAKPr.js";import{n as t,t as n}from"./ImageRenderer-BoaYYmBZ.js";var r,i,a,o,s;e((()=>{t(),r={title:`Shared/UI/Image/ImageRenderer`,component:n,args:{src:`https://images.unsplash.com/photo-1500530855697-b586d89ba3ee?auto=format&fit=crop&w=1600&q=80`,alt:`Горный пейзаж`},parameters:{layout:`padded`},argTypes:{layout:{control:`inline-radio`,options:[`cover`,`contain`,`intrinsic`]}}},i={args:{layout:`cover`,width:`min(100%, 48rem)`,height:`24rem`}},a={args:{layout:`contain`,width:`min(100%, 48rem)`,height:`24rem`,wrapperStyle:{background:`var(--surface-1)`}}},o={args:{layout:`intrinsic`,intrinsicWidth:1600,intrinsicHeight:1067}},i.parameters={...i.parameters,docs:{...i.parameters?.docs,source:{originalSource:`{
|
|
2
|
+
args: {
|
|
3
|
+
layout: "cover",
|
|
4
|
+
width: "min(100%, 48rem)",
|
|
5
|
+
height: "24rem"
|
|
6
|
+
}
|
|
7
|
+
}`,...i.parameters?.docs?.source}}},a.parameters={...a.parameters,docs:{...a.parameters?.docs,source:{originalSource:`{
|
|
8
|
+
args: {
|
|
9
|
+
layout: "contain",
|
|
10
|
+
width: "min(100%, 48rem)",
|
|
11
|
+
height: "24rem",
|
|
12
|
+
wrapperStyle: {
|
|
13
|
+
background: "var(--surface-1)"
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
}`,...a.parameters?.docs?.source}}},o.parameters={...o.parameters,docs:{...o.parameters?.docs,source:{originalSource:`{
|
|
17
|
+
args: {
|
|
18
|
+
layout: "intrinsic",
|
|
19
|
+
intrinsicWidth: 1600,
|
|
20
|
+
intrinsicHeight: 1067
|
|
21
|
+
}
|
|
22
|
+
}`,...o.parameters?.docs?.source}}},s=[`FixedCover`,`FixedContain`,`IntrinsicFullWidth`]}))();export{a as FixedContain,i as FixedCover,o as IntrinsicFullWidth,s as __namedExportsOrder,r as default};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import{i as e}from"./preload-helper-B45gAKPr.js";import{t}from"./jsx-runtime-BBQGix-2.js";import{n,t as r}from"./ImageRenderer-BoaYYmBZ.js";function i(e){return e.map(e=>`width`in e?`${e.src} ${e.width}w`:`${e.src} ${e.density}x`).join(`, `)}var a=e((()=>{}));function o(e,t){return(e??[]).map(e=>({srcSet:i(e.candidates),type:e.type,sizes:e.sizes??t})).filter(e=>e.srcSet.length>0)}var s=e((()=>{a()}));function c({image:e,alt:t,sizes:n,aspectRatio:a,...s}){let c=o(e.sources,n),u=e.candidates?i(e.candidates):void 0,d=a??(e.intrinsicWidth&&e.intrinsicHeight?`${e.intrinsicWidth} / ${e.intrinsicHeight}`:void 0);return(0,l.jsx)(r,{...s,src:e.src,srcSet:u||void 0,sources:c,sizes:n,alt:t??e.alt,intrinsicWidth:e.intrinsicWidth,intrinsicHeight:e.intrinsicHeight,aspectRatio:d})}var l,u=e((()=>{s(),a(),n(),l=t(),c.__docgenInfo={description:`Собирает picture/srcset из готовых URL и делегирует отображение ImageRenderer.
|
|
2
|
+
Компонент не формирует имена файлов и не знает о форматах или размерах хранилища.`,methods:[],displayName:`ImageView`,props:{image:{required:!0,tsType:{name:`signature`,type:`object`,raw:`{
|
|
3
|
+
src: string;
|
|
4
|
+
alt?: string;
|
|
5
|
+
intrinsicWidth?: number;
|
|
6
|
+
intrinsicHeight?: number;
|
|
7
|
+
candidates?: readonly ImageCandidate[];
|
|
8
|
+
sources?: readonly ResponsiveImageSource[];
|
|
9
|
+
}`,signature:{properties:[{key:`src`,value:{name:`string`,required:!0}},{key:`alt`,value:{name:`string`,required:!1}},{key:`intrinsicWidth`,value:{name:`number`,required:!1}},{key:`intrinsicHeight`,value:{name:`number`,required:!1}},{key:`candidates`,value:{name:`unknown`,required:!1}},{key:`sources`,value:{name:`unknown`,required:!1}}]}},description:``},alt:{required:!1,tsType:{name:`string`},description:``}},composes:[`Omit`,`Pick`]}})),d,f,p,m,h;e((()=>{u(),d=`photo-1500530855697-b586d89ba3ee`,f=(e,t)=>`https://images.unsplash.com/${d}?auto=format&fit=crop&w=${e}&fm=${t}&q=80`,p={title:`Shared/UI/Image/ImageView`,component:c,args:{layout:`intrinsic`,sizes:`(min-width: 64rem) 64rem, 100vw`,image:{src:f(1600,`jpg`),alt:`Responsive-пейзаж`,intrinsicWidth:1600,intrinsicHeight:1067,candidates:[{src:f(640,`jpg`),width:640},{src:f(1280,`jpg`),width:1280},{src:f(1600,`jpg`),width:1600}],sources:[{type:`image/avif`,candidates:[{src:f(640,`avif`),width:640},{src:f(1280,`avif`),width:1280},{src:f(1600,`avif`),width:1600}]},{type:`image/webp`,candidates:[{src:f(640,`webp`),width:640},{src:f(1280,`webp`),width:1280},{src:f(1600,`webp`),width:1600}]}]}},parameters:{layout:`padded`}},m={},m.parameters={...m.parameters,docs:{...m.parameters?.docs,source:{originalSource:`{}`,...m.parameters?.docs?.source}}},h=[`ResponsiveCandidates`]}))();export{m as ResponsiveCandidates,h as __namedExportsOrder,p as default};
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import{c as e,i as t}from"./preload-helper-B45gAKPr.js";import{C as n}from"./iframe-
|
|
1
|
+
import{c as e,i as t}from"./preload-helper-B45gAKPr.js";import{C as n}from"./iframe-DBBiRbws.js";import{t as r}from"./jsx-runtime-BBQGix-2.js";import{a as i,i as a}from"./utils-CJ9XKy2b.js";import{n as o,t as s}from"./lucide-react-DbhedXaa.js";import{M as c,t as l}from"./formatters-BSZSiQe7.js";import{n as u,t as d}from"./ui.module-DS2qtZts.js";var f,p,m,h,g,_,v,y,b,x=t((()=>{f=`lRn5ye`,p=`ce5HAY`,m=`_8TObqB`,h=`Gx3Wbd`,g=`cpwaYo`,_=`itlmix`,v=`aITEGl`,y=`ekyJIt`,b={controlLayout:f,input:p,inputNumber:m,controlWithEndAdornment:h,controlEndAdornment:g,endAdornmentGroup:_,clearButton:v,error:y}}));function S({id:e,hasLabel:t,hasDescription:n,hasError:r}){let i=(0,C.useId)(),a=e??i,o=t?`${a}-label`:void 0,s=n?`${a}-description`:void 0,c=r?`${a}-error`:void 0;return{controlId:a,labelId:o,descriptionId:s,errorId:c,describedBy:[s,c].filter(Boolean).join(` `)||void 0}}var C,w=t((()=>{C=e(n(),1)}));function T({label:e,controlId:t,labelId:n}){return(0,F.jsx)(`label`,{id:n,htmlFor:t,className:u.uiLabel,children:e})}function E({label:e,description:t,size:n,disabled:r,className:a}){let{controlId:o,labelId:s,descriptionId:c}=S({hasLabel:e!=null,hasDescription:!!t});return(0,F.jsxs)(`div`,{className:i(u.uiElement,u.uiSizable,n&&u[n],u.disabled,a),"aria-disabled":r||void 0,children:[e&&(0,F.jsx)(T,{label:e,controlId:o,labelId:s}),t&&(0,F.jsx)(`p`,{id:c,className:u.uiDescription,children:t}),(0,F.jsx)(`div`,{className:i(u.uiInputControlFake,`skeletonLine`)})]})}function D({label:e,description:t,disabled:n,className:r,error:a,size:o,controlId:s,labelId:c,descriptionId:l,errorId:d,children:f}){return(0,F.jsxs)(`div`,{className:i(u.uiElement,u.uiSizable,o&&u[o],n&&u.disabled,r),"aria-disabled":n||void 0,children:[e&&(0,F.jsx)(T,{label:e,controlId:s,labelId:c}),t&&(0,F.jsx)(`p`,{id:l,className:u.uiDescription,children:t}),(0,F.jsxs)(`div`,{className:b.controlLayout,children:[f,a&&(0,F.jsx)(`p`,{id:d,className:b.error,role:`alert`,children:a})]})]})}function O({className:e,endAdornment:t,endAdornmentClassName:n,endAdornmentWidth:r,children:a}){let o=t!=null,s=o&&r?{"--input-end-adornment-width":r}:void 0;return(0,F.jsxs)(`div`,{className:i(b.controlLayout,e),style:s,children:[a({controlClassName:o?b.controlWithEndAdornment:void 0}),o&&(0,F.jsx)(`div`,{className:i(b.controlEndAdornment,n),children:t})]})}function k({onClick:e,disabled:t,className:n,ariaLabel:r=`Очистить значение`}){return(0,F.jsx)(`button`,{type:`button`,disabled:t||!e,className:i(b.clearButton,`flexCenter radiusSm`,n),onClick:e,"aria-label":r,children:(0,F.jsx)(o,{})})}function A(e,t,n){if(n)return n;if(e&&t)return`calc((var(--control-height) * 2) + var(--space-xs))`;if(e||t)return`var(--control-height)`}function j({endAdornment:e,onClear:t,disabled:n}){if(!(e==null&&!t))return(0,F.jsxs)(`div`,{className:b.endAdornmentGroup,children:[e,t&&(0,F.jsx)(k,{onClick:t,disabled:n})]})}function M({label:e,description:t,disabled:n,className:r,onClear:a,error:o,onClearError:s,onChange:c,value:l,size:d,allowedPattern:f,endAdornment:p,endAdornmentClassName:m,endAdornmentWidth:h,type:g=`text`,..._}){let[v,y]=(0,P.useState)(!1),x=e=>{let t=e.target.value;f!==void 0&&y(t!==``&&!f.test(t)),c(t),o&&s&&s()},C=!!(l&&l.length>0),w=C?o:void 0,{controlId:T,labelId:E,descriptionId:k,errorId:M,describedBy:N}=S({id:_.id,hasLabel:e!=null,hasDescription:!!t,hasError:!!w}),I=C&&(!!o||v);return(0,F.jsx)(D,{label:e,description:t,disabled:n,className:r,size:d,error:w,controlId:T,labelId:E,descriptionId:k,errorId:M,children:(0,F.jsx)(O,{endAdornment:j({endAdornment:p,onClear:a,disabled:n}),endAdornmentClassName:m,endAdornmentWidth:A(p!=null,!!a,h),children:({controlClassName:e})=>(0,F.jsx)(`input`,{..._,id:T,type:g,disabled:n,value:l,"aria-invalid":I||void 0,"aria-labelledby":E,"aria-describedby":N,"data-invalid":I?``:void 0,className:i(u.uiInputControl,b.input,e),onChange:x})})})}function N({label:e,description:t,disabled:n,className:r,onClear:a,error:o,onClearError:s,onChange:l,value:d,size:f,endAdornment:p,endAdornmentClassName:m,endAdornmentWidth:h,...g}){let _=g,{controlId:v,labelId:y,descriptionId:x,errorId:C,describedBy:w}=S({id:g.id,hasLabel:e!=null,hasDescription:!!t,hasError:!!o}),[T,E]=(0,P.useState)(()=>String(d)),k=(0,P.useEffectEvent)(e=>{E(e)});(0,P.useEffect)(()=>{k(d!==void 0&&typeof d==`number`&&!isNaN(d)?String(d):``)},[d]);let M=a?()=>{E(``),a()}:void 0,N=e=>{let t=e.target.value;E(t),l(c(t)),o&&s&&s()};return(0,F.jsx)(D,{label:e,description:t,disabled:n,className:r,size:f,error:o,controlId:v,labelId:y,descriptionId:x,errorId:C,children:(0,F.jsx)(O,{endAdornment:j({endAdornment:p,onClear:M,disabled:n}),endAdornmentClassName:m,endAdornmentWidth:A(p!=null,!!M,h),children:({controlClassName:e})=>(0,F.jsx)(`input`,{..._,id:v,type:`number`,inputMode:`decimal`,disabled:n,value:T,"aria-labelledby":y,"aria-describedby":w,className:i(u.uiInputControl,b.input,b.inputNumber,e),onChange:N})})})}var P,F,I,L=t((()=>{P=e(n(),1),l(),a(),s(),d(),x(),w(),F=r(),I=M,E.__docgenInfo={description:``,methods:[],displayName:`InputUILoading`},D.__docgenInfo={description:`Низкоуровневая оболочка поля ввода с общими элементами оформления.`,methods:[],displayName:`InputUI`,props:{className:{required:!1,tsType:{name:`string`},description:``},error:{required:!1,tsType:{name:`string`},description:``},controlId:{required:!1,tsType:{name:`string`},description:``},labelId:{required:!1,tsType:{name:`string`},description:``},descriptionId:{required:!1,tsType:{name:`string`},description:``},errorId:{required:!1,tsType:{name:`string`},description:``},children:{required:!0,tsType:{name:`ReactReactNode`,raw:`React.ReactNode`},description:``}},composes:[`Omit`]},O.__docgenInfo={description:``,methods:[],displayName:`InputControl`,props:{className:{required:!1,tsType:{name:`string`},description:``},endAdornment:{required:!1,tsType:{name:`ReactNode`},description:``},endAdornmentClassName:{required:!1,tsType:{name:`string`},description:``},endAdornmentWidth:{required:!1,tsType:{name:`string`},description:``},children:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(props: InputControlRenderProps) => ReactNode`,signature:{arguments:[{type:{name:`InputControlRenderProps`},name:`props`}],return:{name:`ReactNode`}}},description:``}}},k.__docgenInfo={description:``,methods:[],displayName:`InputClearButton`,props:{onClick:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},className:{required:!1,tsType:{name:`string`},description:``},ariaLabel:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"Очистить значение"`,computed:!1}}}},M.__docgenInfo={description:`Базовое текстовое поле ввода для строковых значений.`,methods:[],displayName:`InputText`,props:{label:{required:!1,tsType:{name:`ReactNode`},description:``},description:{required:!1,tsType:{name:`string`},description:``},placeholder:{required:!1,tsType:{name:`string`},description:``},disabled:{required:!1,tsType:{name:`boolean`},description:``},size:{required:!1,tsType:{name:`union`,raw:`"xs" | "sm" | "md" | "lg" | "xl"`,elements:[{name:`literal`,value:`"xs"`},{name:`literal`,value:`"sm"`},{name:`literal`,value:`"md"`},{name:`literal`,value:`"lg"`},{name:`literal`,value:`"xl"`}]},description:``},value:{required:!0,tsType:{name:`T`},description:"Если начальное состояние может быть `null | undefined`\nзначит `onChange` тоже должен ументь сбрасывать.\nПоэтому такой контрол явно должен передавать `UiBaseProps<AnyType | undefined>`"},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: T) => void`,signature:{arguments:[{type:{name:`C`},name:`value`}],return:{name:`void`}}},description:``},onClear:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},error:{required:!1,tsType:{name:`string`},description:``},onClearError:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},defaultValue:{required:!1,tsType:{name:`string`},description:``},endAdornment:{required:!1,tsType:{name:`ReactNode`},description:``},endAdornmentClassName:{required:!1,tsType:{name:`string`},description:``},endAdornmentWidth:{required:!1,tsType:{name:`string`},description:``},type:{required:!1,tsType:{name:`union`,raw:`"email" | "password" | "search" | "tel" | "text" | "url"`,elements:[{name:`literal`,value:`"email"`},{name:`literal`,value:`"password"`},{name:`literal`,value:`"search"`},{name:`literal`,value:`"tel"`},{name:`literal`,value:`"text"`},{name:`literal`,value:`"url"`}]},description:``,defaultValue:{value:`"text"`,computed:!1}},allowedPattern:{required:!1,tsType:{name:`RegExp`},description:`Регулярное выражение для валидации всего введённого значения.
|
|
2
2
|
При несоответствии поле подсвечивается как невалидное, но текст не удаляется.
|
|
3
3
|
Пример: \`/^\\d*$/\``}},composes:[`Omit`]},N.__docgenInfo={description:`Числовое поле ввода с нормализацией значения и защитой от промежуточного невалидного ввода.`,methods:[],displayName:`InputNumber`,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:``},onClear:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},error:{required:!1,tsType:{name:`string`},description:``},onClearError:{required:!1,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},defaultValue:{required:!1,tsType:{name:`T`},description:``},endAdornment:{required:!1,tsType:{name:`ReactNode`},description:``},endAdornmentClassName:{required:!1,tsType:{name:`string`},description:``},endAdornmentWidth:{required:!1,tsType:{name:`string`},description:``}},composes:[`Omit`]}}));export{M as a,L as c,N as i,w as l,k as n,D as o,O as r,E as s,I as t,S as u};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{i as e}from"./preload-helper-B45gAKPr.js";import{E as t,a as n,d as r,f as i,l as a,m as o,n as s,p as c,r as l,u}from"./blocks-
|
|
1
|
+
import{i as e}from"./preload-helper-B45gAKPr.js";import{E as t,a as n,d as r,f as i,l as a,m as o,n as s,p as c,r as l,u}from"./blocks-Ca82jrBU.js";import{t as d}from"./jsx-runtime-BBQGix-2.js";import{t as f}from"./mdx-react-shim-B-pYVQSG.js";import{NumberControlled as p,PatternValidation as m,TextControlled as h,WithError as g,n as _,t as v}from"./Input.stories-uG22uEFU.js";function y(e){let o={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...t(),...e.components};return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(a,{of:v,parameters:{docs:{toc:!0}}}),`
|
|
2
2
|
`,(0,x.jsx)(c,{children:`Input`}),`
|
|
3
3
|
`,(0,x.jsx)(i,{children:`Базовое текстовое и числовое поле для форм, фильтров и служебных панелей`}),`
|
|
4
4
|
`,(0,x.jsx)(o.p,{children:`Input уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{C as r}from"./iframe-
|
|
1
|
+
import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{C as r}from"./iframe-DBBiRbws.js";import{t as i}from"./jsx-runtime-BBQGix-2.js";import{a,c as o,i as s}from"./Input-23s-lKOn.js";var c=e({NumberControlled:()=>p,PatternValidation:()=>m,TextControlled:()=>f,WithError:()=>h,__namedExportsOrder:()=>g,default:()=>d}),l,u,d,f,p,m,h,g,_=n((()=>{l=t(r(),1),o(),u=i(),d={title:`Shared/UI/Input`,component:a,args:{value:``,onChange:()=>{}},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Заголовок поля.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},placeholder:{description:`Плейсхолдер нативного поля ввода.`,control:`text`},value:{description:`Текущее значение поля.`,control:`text`},onChange:{description:`Вызывается при изменении значения.`,control:!1},onClear:{description:`Callback кнопки очистки справа.`,control:!1},error:{description:`Текст ошибки под полем.`,control:`text`},onClearError:{description:`Вызывается при вводе для сброса внешней ошибки.`,control:!1},disabled:{description:`Блокирует редактирование.`,control:`boolean`},size:{description:`Размер поля и подписи.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]},allowedPattern:{description:`Регулярное выражение для валидации введенной строки.`,control:!1}}},f={render:e=>{let[t,n]=(0,l.useState)(e.value??``);return(0,u.jsx)(a,{...e,value:t,onChange:n,onClear:()=>n(``)})},args:{label:`Наименование`,description:`Пример обычного текстового поля.`,placeholder:`Введите значение`,value:``,size:`md`}},p={render:()=>{let[e,t]=(0,l.useState)(25);return(0,u.jsx)(s,{label:`Количество`,description:`Числовой ввод с min/max.`,placeholder:`0`,value:e,min:0,max:100,onChange:t,onClear:()=>t(0)})},args:{value:void 0}},m={render:()=>{let[e,t]=(0,l.useState)(``);return(0,u.jsx)(a,{label:`Только цифры`,description:"`allowedPattern` подсвечивает невалидный ввод.",placeholder:`12345`,value:e,onChange:t,allowedPattern:/^\d*$/})},args:{value:void 0}},h={render:()=>{let[e,t]=(0,l.useState)(`admin`),[n,r]=(0,l.useState)(`Логин уже занят`);return(0,u.jsx)(a,{label:`Логин`,value:e,error:n,onChange:t,onClear:()=>t(``),onClearError:()=>r(``)})},args:{value:void 0}},f.parameters={...f.parameters,docs:{...f.parameters?.docs,source:{originalSource:`{
|
|
2
2
|
render: args => {
|
|
3
3
|
const [value, setValue] = useState(args.value ?? "");
|
|
4
4
|
return <InputText {...args} value={value} onChange={setValue} onClear={() => setValue("")} />;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{i as e}from"./preload-helper-B45gAKPr.js";import{E as t,a as n,d as r,f as i,l as a,m as o,n as s,p as c,r as l,u}from"./blocks-
|
|
1
|
+
import{i as e}from"./preload-helper-B45gAKPr.js";import{E as t,a as n,d as r,f as i,l as a,m as o,n as s,p as c,r as l,u}from"./blocks-Ca82jrBU.js";import{t as d}from"./jsx-runtime-BBQGix-2.js";import{t as f}from"./mdx-react-shim-B-pYVQSG.js";import{CustomMask as p,DateAndTime as m,DateOnly as h,TimeOnly as g,n as _,t as v}from"./InputDateTime.stories-CRyGwLn7.js";function y(e){let o={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...t(),...e.components};return(0,x.jsxs)(x.Fragment,{children:[(0,x.jsx)(a,{of:v,parameters:{docs:{toc:!0}}}),`
|
|
2
2
|
`,(0,x.jsx)(c,{children:`InputDateTime`}),`
|
|
3
3
|
`,(0,x.jsx)(i,{children:`Маскированный ввод даты, времени и объединенного значения дата-время`}),`
|
|
4
4
|
`,(0,x.jsx)(o.p,{children:`InputDateTime уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{C as r}from"./iframe-
|
|
1
|
+
import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{C as r}from"./iframe-DBBiRbws.js";import{t as i}from"./jsx-runtime-BBQGix-2.js";import{a,i as o}from"./utils-CJ9XKy2b.js";import{n as s,t as c}from"./ui.module-DS2qtZts.js";import{n as l,o as u,r as d,u as f}from"./Input-23s-lKOn.js";import{t as p}from"./input-DQGrA_Iz.js";import{a as m,i as h,n as g,r as _}from"./date-segments-CzU9k5bl.js";var v,y,b,x=n((()=>{v=`t1iysX`,y=`_-4oX-p`,b={segmentInput:v,separator:y}}));function S(e){return h(e).map(e=>e.kind===`editable`?{...e,type:e.id}:e)}function C(e,t){let n=g(e,t),r=new Map;return t.forEach((e,t)=>{e.kind===`editable`&&r.set(e.type,n.get(t)??``)}),r}function w(e,t){let n=new Map;return e.forEach((e,r)=>{e.kind===`editable`&&n.set(r,t.get(e.type)??``)}),m(e,n)}var T=n((()=>{_()}));function E(e,t){let n=C(e,t),r=new Map;return t.forEach((e,t)=>{e.kind===`editable`&&r.set(t,n.get(e.type)??``)}),r}function D(e){let t=[];return e.forEach((e,n)=>{e.kind===`editable`&&t.push(n)}),t}function O({mask:e,value:t,onChange:n,onClearError:r,disabled:i}){let a=(0,k.useMemo)(()=>S(e),[e]),o=(0,k.useMemo)(()=>D(a),[a]),s=(0,k.useMemo)(()=>E(t,a),[t,a]),[c,l]=(0,k.useState)(null),[u,d]=(0,k.useState)(()=>t?.getTime()),f=t?.getTime();f!==u&&(d(f),l(null));let p=c??s,m=(0,k.useRef)(new Map),h=(0,k.useRef)(0),[g,_]=(0,k.useState)(!1),v=(0,k.useCallback)(e=>{let t=new Map;a.forEach((n,r)=>{n.kind===`editable`&&t.set(n.type,e.get(r)??``)});let r=w(a,t);r!==null&&n(r)},[a,n]),y=(0,k.useCallback)((e,t=!0)=>{let n=m.current.get(e);n&&(n.focus(),t&&requestAnimationFrame(()=>n.select()))},[]),b=(0,k.useCallback)(e=>{let t=o.indexOf(e);return t<o.length-1?o[t+1]:null},[o]),x=(0,k.useCallback)(e=>{let t=o.indexOf(e);return t>0?o[t-1]:null},[o]),C=(0,k.useCallback)((e,t)=>e.padStart(t.length,`0`),[]);return{segments:a,segmentValues:p,isFocused:g,registerRef:(0,k.useCallback)(e=>t=>{t?m.current.set(e,t):m.current.delete(e)},[]),handleInput:(0,k.useCallback)(e=>t=>{if(i)return;let n=a[e],o=t.target.value.replace(/\D/g,``).slice(0,n.length),s=new Map(p);if(s.set(e,o),l(s),r?.(),o.length===n.length){let t=b(e);t!==null&&requestAnimationFrame(()=>y(t))}v(s)},[i,a,p,r,b,y,v]),handleKeyDown:(0,k.useCallback)(e=>t=>{if(i)return;let n=a[e],r=p.get(e)??``,o=t.currentTarget;switch(t.key){case`ArrowRight`:if(o.selectionStart===r.length||r===``){t.preventDefault();let n=b(e);n!==null&&y(n)}break;case`ArrowLeft`:if(o.selectionStart===0||r===``){t.preventDefault();let n=x(e);n!==null&&y(n)}break;case`ArrowUp`:{t.preventDefault();let i=r===``?n.min:parseInt(r,10)+1;i>n.max&&(i=n.min);let a=C(i.toString(),n),s=new Map(p);s.set(e,a),l(s),v(s),requestAnimationFrame(()=>o.select());break}case`ArrowDown`:{t.preventDefault();let i=r===``?n.max:parseInt(r,10)-1;i<n.min&&(i=n.max);let a=C(i.toString(),n),s=new Map(p);s.set(e,a),l(s),v(s),requestAnimationFrame(()=>o.select());break}case`Backspace`:if(r===``){t.preventDefault();let n=x(e);n!==null&&y(n)}break;case`Delete`:{t.preventDefault();let n=new Map(p);n.set(e,``),l(n),v(n);break}}},[i,a,p,b,x,y,C,v]),handleFocus:(0,k.useCallback)(()=>e=>{e.target.select()},[]),handleContainerFocus:(0,k.useCallback)(()=>{clearTimeout(h.current),_(!0)},[]),handleContainerBlur:(0,k.useCallback)(()=>{h.current=window.setTimeout(()=>{_(!1),l(null)},0)},[]),focusFirstEmpty:(0,k.useCallback)(()=>{let e=o.find(e=>!(p.get(e)??``))??o[o.length-1];e!==void 0&&y(e)},[o,p,y])}}var k,A=n((()=>{k=t(r(),1),T()}));function j({mask:e,value:t,onChange:n,label:r,description:i,disabled:o,size:c,className:p,error:m,onClearError:h,onClear:g,"aria-label":_}){let{segments:v,segmentValues:y,registerRef:x,handleInput:S,handleKeyDown:C,handleFocus:w,handleContainerFocus:T,handleContainerBlur:E,focusFirstEmpty:D}=O({mask:e,value:t,onChange:n,onClearError:h,disabled:o}),{controlId:k,labelId:A,descriptionId:j,errorId:M,describedBy:N}=f({hasLabel:r!=null,hasDescription:!!i,hasError:!!m});return(0,F.jsx)(u,{label:r,description:i,disabled:o,className:p,size:c,error:m,labelId:A,descriptionId:j,errorId:M,children:(0,F.jsx)(d,{endAdornment:g?(0,F.jsx)(l,{onClick:g,disabled:o}):void 0,endAdornmentWidth:g?`var(--control-height)`:void 0,children:({controlClassName:e})=>(0,F.jsx)(`div`,{id:k,className:a(s.uiInputControlFake,e),"data-invalid":m?``:void 0,"data-disabled":o||void 0,role:`group`,"aria-invalid":!!m||void 0,"aria-label":_||(typeof r==`string`?r:void 0),"aria-labelledby":_?void 0:A,"aria-describedby":N,onFocus:T,onBlur:E,onClick:e=>{e.target===e.currentTarget&&D()},children:v.map((e,t)=>e.kind===`literal`?(0,F.jsx)(`span`,{className:b.separator,"data-disabled":o||void 0,children:e.text},t):(0,F.jsx)(`input`,{ref:x(t),type:`text`,inputMode:`numeric`,className:b.segmentInput,style:{width:`${e.length+.5}ch`},value:y.get(t)??``,placeholder:e.placeholder,maxLength:e.length,disabled:o,"aria-label":e.type,autoComplete:`off`,onChange:S(t),onKeyDown:C(t),onFocus:w()},t))})})})}function M({mask:e=`YYYY.MM.DD`,...t}){return(0,F.jsx)(j,{mask:e,...t})}function N({mask:e=`hh:mm`,...t}){return(0,F.jsx)(j,{mask:e,...t})}function P({mask:e=`YYYY.MM.DD hh:mm`,...t}){return(0,F.jsx)(j,{mask:e,...t})}var F,I=n((()=>{o(),p(),c(),x(),A(),F=i(),M.__docgenInfo={description:``,methods:[],displayName:`InputDate`,props:{mask:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"YYYY.MM.DD"`,computed:!1}}}},N.__docgenInfo={description:``,methods:[],displayName:`InputTime`,props:{mask:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"hh:mm"`,computed:!1}}}},P.__docgenInfo={description:``,methods:[],displayName:`InputDateTime`,props:{mask:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"YYYY.MM.DD hh:mm"`,computed:!1}}}}})),L=e({CustomMask:()=>W,DateAndTime:()=>U,DateOnly:()=>V,TimeOnly:()=>H,__namedExportsOrder:()=>G,default:()=>B}),R,z,B,V,H,U,W,G,K=n((()=>{R=t(r(),1),I(),z=i(),B={title:`Shared/UI/InputDateTime`,component:M,args:{value:void 0,onChange:()=>{}},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Заголовок поля.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},value:{description:"Текущее значение в виде `Date`.",control:!1},onChange:{description:`Вызывается при формировании валидной даты/времени.`,control:!1},mask:{description:"Маска сегментов (`YYYY`, `MM`, `DD`, `hh`, `mm`, `ss`).",control:`text`},error:{description:`Текст ошибки под полем.`,control:`text`},onClearError:{description:`Сброс внешней ошибки при вводе.`,control:!1},onClear:{description:`Очищает значение и активирует кнопку очистки.`,control:!1},disabled:{description:`Блокирует редактирование сегментов.`,control:`boolean`},size:{description:`Размер поля и подписи.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]},"aria-label":{description:`ARIA-метка для контейнера сегментного ввода.`,control:`text`}}},V={render:e=>{let[t,n]=(0,R.useState)(e.value);return(0,z.jsx)(M,{...e,value:t,onChange:n,onClear:()=>n(void 0)})},args:{label:`Дата`,description:`Формат по умолчанию: YYYY.MM.DD`,value:new Date(2026,2,5)}},H={render:()=>{let[e,t]=(0,R.useState)(new Date(2026,2,5,14,30,0));return(0,z.jsx)(N,{label:`Время`,description:`Формат по умолчанию: hh:mm`,value:e,onChange:t,onClear:()=>t(void 0)})},args:{value:void 0}},U={render:()=>{let[e,t]=(0,R.useState)(new Date(2026,2,5,9,15,0));return(0,z.jsx)(P,{label:`Дата и время`,description:`Комбинированный ввод даты и времени.`,value:e,onChange:t,onClear:()=>t(void 0)})},args:{value:void 0}},W={render:()=>{let[e,t]=(0,R.useState)(new Date(2026,2,5,9,15,42));return(0,z.jsx)(P,{label:`Кастомная маска`,description:`Добавлены секунды: YYYY.MM.DD hh:mm:ss`,mask:`YYYY.MM.DD hh:mm:ss`,value:e,onChange:t})},args:{value:void 0}},V.parameters={...V.parameters,docs:{...V.parameters?.docs,source:{originalSource:`{
|
|
2
2
|
render: args => {
|
|
3
3
|
const [value, setValue] = useState<Date | undefined>(args.value);
|
|
4
4
|
return <InputDate {...args} value={value} onChange={setValue} onClear={() => setValue(undefined)} />;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{i as e}from"./preload-helper-B45gAKPr.js";import{E as t,a as n,d as r,f as i,l as a,m as o,n as s,p as c,r as l,u}from"./blocks-
|
|
1
|
+
import{i as e}from"./preload-helper-B45gAKPr.js";import{E as t,a as n,d as r,f as i,l as a,m as o,n as s,p as c,r as l,u}from"./blocks-Ca82jrBU.js";import{t as d}from"./jsx-runtime-BBQGix-2.js";import{t as f}from"./mdx-react-shim-B-pYVQSG.js";import{ArrayBufferMode as p,Controlled as m,WithInitialValue as h,n as g,t as _}from"./InputFile.stories-CVHdaQXL.js";function v(e){let o={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...t(),...e.components};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(a,{of:_,parameters:{docs:{toc:!0}}}),`
|
|
2
2
|
`,(0,b.jsx)(c,{children:`InputFile`}),`
|
|
3
3
|
`,(0,b.jsx)(i,{children:`Контрол для выбора одного файла с поддержкой предварительного значения и бинарного режима`}),`
|
|
4
4
|
`,(0,b.jsx)(o.p,{children:`InputFile уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
|
package/storybook-static/assets/{InputFile.stories-CVD-PTav.js → InputFile.stories-CVHdaQXL.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{C as r}from"./iframe-
|
|
1
|
+
import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{C as r}from"./iframe-DBBiRbws.js";import{t as i}from"./jsx-runtime-BBQGix-2.js";import{a,i as o,n as s}from"./utils-CJ9XKy2b.js";import{n as c,t as l}from"./ui.module-DS2qtZts.js";import{n as u,o as d,r as f,u as p}from"./Input-23s-lKOn.js";import{t as m}from"./input-DQGrA_Iz.js";import{a as h,i as g,o as _,r as v,s as y}from"./file-hArYcyES.js";var b,x,S,C,w=n((()=>{b=`Ggxyuj`,x=`fthcmO`,S=`wyY60X`,C={control:b,fileName:x,hiddenInput:S}}));function T(e){let{value:t,onClear:n,onReadError:r,accept:i,allowedMime:o,maxBytes:l,label:m,description:g,placeholder:b=`Выберите файл`,disabled:x,size:S,error:w,onClearError:T,className:O}=e;h(o),_(i);let k=(0,E.useRef)(null),{controlId:A,labelId:j,descriptionId:M,errorId:N,describedBy:P}=p({hasLabel:m!=null,hasDescription:!!g,hasError:!!w}),F=(0,E.useCallback)(async t=>{let n=t.target.files?.[0];if(n){t.target.value=``,w&&T&&T();try{if(e.readMode===`array-buffer`){let t=await y(n,{allowedMime:o,maxBytes:l,mode:`array-buffer`});e.onChange(t);return}let t=await y(n,{allowedMime:o,maxBytes:l});e.onChange(t)}catch(e){e instanceof v&&r&&r(e)}}},[e,o,l,r,w,T]),I=(0,E.useCallback)(()=>{k.current?.click()},[]);return(0,D.jsxs)(d,{label:m,description:g,disabled:x,className:O,size:S,error:w,controlId:A,labelId:j,descriptionId:M,errorId:N,children:[(0,D.jsx)(`input`,{ref:k,id:A,type:`file`,accept:(i??o)?.join(`,`),disabled:x,className:C.hiddenInput,onChange:F,tabIndex:-1}),(0,D.jsx)(f,{endAdornment:n?(0,D.jsx)(u,{onClick:n,disabled:x}):void 0,endAdornmentWidth:n?`var(--control-height)`:void 0,children:({controlClassName:e})=>(0,D.jsx)(`div`,{role:`button`,tabIndex:x?-1:0,onClick:I,onKeyDown:e=>s(e,I,{disabled:x}),className:a(c.uiInputControl,C.control,e,!!w&&c.invalid),"data-disabled":x||void 0,"aria-invalid":!!w||void 0,"aria-disabled":x,"aria-labelledby":j,"aria-describedby":P,children:t?(0,D.jsx)(`span`,{className:C.fileName,children:t.meta.name}):(0,D.jsx)(`span`,{className:c.uiPlaceholder,children:b})})})]})}var E,D,O=n((()=>{E=t(r(),1),g(),o(),m(),l(),w(),D=i(),T.__docgenInfo={description:'InputFile — компонент выбора одного файла.\n\nВизуально идентичен InputText: поле с label, description, placeholder,\nкнопкой очистки (крестик) и блоком ошибки.\n\nПри клике открывается нативный диалог выбора файла.\nПосле выбора файл читается через readFile, результат передаётся в onChange.\n\nInputFile позволяет выбрать один файл и передаёт наружу типизированный результат чтения.\nЕсли `readMode` не задан или равен `"data-url"`, в `onChange` приходит объект с `dataUrl`.\nЕсли `readMode` равен `"array-buffer"`, в `onChange` приходит объект с `buffer`.',methods:[],displayName:`InputFile`}})),k=e({ArrayBufferMode:()=>I,Controlled:()=>P,WithInitialValue:()=>F,__namedExportsOrder:()=>L,default:()=>N}),A,j,M,N,P,F,I,L,R=n((()=>{A=t(r(),1),O(),j=i(),M=(e,t=`application/pdf`)=>{let n=new File([`demo-file`],e,{type:t,lastModified:17040672e5});return{mode:`data-url`,meta:{name:n.name,mime:n.type,size:n.size,lastModified:n.lastModified},dataUrl:`data:${t};base64,ZGVtby1maWxl`,file:n}},N={title:`Shared/UI/InputFile`,component:T,args:{value:void 0,onChange:()=>{}},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Заголовок поля загрузки.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},placeholder:{description:`Текст в поле, пока файл не выбран.`,control:`text`},value:{description:`Текущий результат чтения выбранного файла.`,control:!1},onChange:{description:`Вызывается после успешного чтения файла.`,control:!1},onReadError:{description:`Вызывается при ошибке чтения или валидации файла.`,control:!1},onClear:{description:`Очищает выбранный файл и показывает кнопку очистки.`,control:!1},accept:{description:"HTML `accept` для нативного диалога выбора файла.",control:`text`},allowedMime:{description:`Белый список MIME-типов для readFile-валидации.`,control:!1},maxBytes:{description:`Максимальный размер файла в байтах.`,control:`number`},readMode:{description:`Режим чтения файла: data-url или array-buffer.`,control:`inline-radio`,options:[`data-url`,`array-buffer`]},error:{description:`Текст ошибки под полем.`,control:`text`},onClearError:{description:`Callback сброса ошибки при повторном выборе файла.`,control:!1},disabled:{description:`Блокирует выбор файла.`,control:`boolean`},size:{description:`Размер визуального контрола.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]}}},P={render:e=>{let[t,n]=(0,A.useState)(e.value),[r,i]=(0,A.useState)(e.error??``);return(0,j.jsx)(T,{...e,value:t,error:r||void 0,onChange:n,onClear:()=>n(void 0),onClearError:()=>i(``)})},args:{label:`Документ`,description:`Загрузите один файл.`,placeholder:`Выберите файл`,accept:[`.pdf`,`.docx`],readMode:`data-url`,value:void 0}},F={render:e=>{let[t,n]=(0,A.useState)(M(`report.pdf`));return(0,j.jsx)(T,{...e,value:t,onChange:n,onClear:()=>n(void 0)})},args:{label:`Файл с предзаполнением`,description:`Демонстрация состояния после успешной загрузки.`}},I={render:e=>{let[t,n]=(0,A.useState)(void 0);return(0,j.jsx)(T,{...e,value:t,onChange:n,onClear:()=>n(void 0)})},args:{label:`Двоичное чтение`,description:"Режим `array-buffer` для дальнейшей бинарной обработки.",readMode:`array-buffer`,accept:[`.zip`,`.pdf`],value:void 0}},P.parameters={...P.parameters,docs:{...P.parameters?.docs,source:{originalSource:`{
|
|
2
2
|
render: args => {
|
|
3
3
|
const [value, setValue] = useState<ReadFileResult | undefined>(args.value);
|
|
4
4
|
const [error, setError] = useState(args.error ?? "");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{c as e,i as t}from"./preload-helper-B45gAKPr.js";import{C as n}from"./iframe-
|
|
1
|
+
import{c as e,i as t}from"./preload-helper-B45gAKPr.js";import{C as n}from"./iframe-DBBiRbws.js";import{t as r}from"./jsx-runtime-BBQGix-2.js";import{a as i,i as a,n as o}from"./utils-CJ9XKy2b.js";import{n as s,t as c}from"./lucide-react-DbhedXaa.js";import{n as l,t as u}from"./ui.module-DS2qtZts.js";import{o as d,r as f,u as p}from"./Input-23s-lKOn.js";import{t as m}from"./input-DQGrA_Iz.js";import{a as h,i as g,o as _,r as v,s as y}from"./file-hArYcyES.js";var b,x,S,C,w,T,E,D=t((()=>{b=`h9SMea`,x=`rUyh0y`,S=`Q0CY1r`,C=`AJuYXd`,w=`CKKkOD`,T=`UgxhS1`,E={control:b,hiddenInput:x,fileList:S,fileItem:C,fileItemName:w,removeButton:T}}));function O({files:e,onChange:t}){let n=(0,k.useCallback)(n=>{t(e.filter((e,t)=>t!==n))},[e,t]);return!e||!e.length?null:(0,A.jsx)(`ul`,{className:E.fileList,children:e.map((e,t)=>(0,A.jsxs)(`li`,{className:E.fileItem,children:[(0,A.jsx)(`span`,{className:E.fileItemName,children:e.meta.name}),(0,A.jsx)(`button`,{type:`button`,className:i(E.removeButton,`flexCenter`),onClick:()=>n(t),"aria-label":`Удалить ${e.meta.name}`,children:(0,A.jsx)(s,{})})]},`${e.meta.name}-${e.meta.lastModified}`))})}var k,A,j=t((()=>{k=e(n(),1),a(),c(),D(),A=r(),O.__docgenInfo={description:``,methods:[],displayName:`InputFilesList`,props:{files:{required:!0,tsType:{name:`Array`,elements:[{name:`TFile`}],raw:`TFile[]`},description:``},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(files: TFile[]) => void`,signature:{arguments:[{type:{name:`Array`,elements:[{name:`TFile`}],raw:`TFile[]`},name:`files`}],return:{name:`void`}}},description:``}}}}));function M(e){let{value:t,onReadError:n,accept:r,allowedMime:a,maxBytes:s,maxFiles:c,label:u,description:m,placeholder:g=`Выберите файлы`,disabled:b,size:x,error:S,onClearError:C,className:w}=e;h(a),_(r);let T=(0,N.useRef)(null),{controlId:D,labelId:k,descriptionId:A,errorId:j,describedBy:M}=p({hasLabel:u!=null,hasDescription:!!m,hasError:!!S}),F=typeof c==`number`&&t.length>=c,I=(0,N.useCallback)(async r=>{let i=r.target.files;if(!i||i.length===0)return;let o=Array.from(i);r.target.value=``,S&&C&&C();let l=typeof c==`number`?c-t.length:o.length,u=o.slice(0,l);if(e.readMode===`array-buffer`){let t=[];for(let e of u)try{let n=await y(e,{allowedMime:a,maxBytes:s,mode:`array-buffer`});t.push(n)}catch(e){e instanceof v&&n&&n(e)}t.length>0&&e.onChange([...e.value,...t]);return}let d=[];for(let e of u)try{let t=await y(e,{allowedMime:a,maxBytes:s});d.push(t)}catch(e){e instanceof v&&n&&n(e)}d.length>0&&e.onChange([...e.value,...d])},[e,c,t.length,a,s,n,S,C]),L=(0,N.useCallback)(()=>{T.current?.click()},[]),R=(e.readMode,(0,P.jsx)(O,{files:e.value,onChange:e.onChange}));return(0,P.jsxs)(d,{label:u,description:m,disabled:b,className:w,size:x,error:S,controlId:D,labelId:k,descriptionId:A,errorId:j,children:[(0,P.jsx)(`input`,{ref:T,id:D,type:`file`,accept:(r??a)?.join(`,`),multiple:!0,disabled:b||F,className:E.hiddenInput,onChange:I,tabIndex:-1}),(0,P.jsx)(f,{children:()=>(0,P.jsx)(`div`,{role:`button`,tabIndex:b||F?-1:0,onClick:L,onKeyDown:e=>o(e,L,{disabled:b||F}),className:i(l.uiInputControl,E.control,!!S&&`invalid`),"data-disabled":b||void 0,"aria-invalid":!!S||void 0,"aria-disabled":b||F,"aria-labelledby":k,"aria-describedby":M,children:(0,P.jsx)(`span`,{className:l.uiPlaceholder,children:F?`Максимум ${c} файлов`:g})})}),R]})}var N,P,F=t((()=>{N=e(n(),1),g(),a(),m(),u(),D(),j(),P=r(),M.__docgenInfo={description:'InputFiles — компонент выбора нескольких файлов.\n\nПоле стилизовано как InputText. При клике открывается нативный\nдиалог с multiple. Каждый выбранный файл читается через readFile\nи добавляется в массив value.\n\nСписок выбранных файлов отображается под полем.\nКаждый файл можно удалить кнопкой «крестик».\n\nInputFiles типизирует массив по `readMode`.\nЕсли `readMode` не задан или равен `"data-url"`, в `value` и `onChange`\nиспользуется массив объектов с `dataUrl`. Если `readMode` равен\n`"array-buffer"`, используется массив объектов с `buffer`.',methods:[],displayName:`InputFiles`}}));export{j as i,F as n,O as r,M as t};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{i as e}from"./preload-helper-B45gAKPr.js";import{E as t,a as n,d as r,f as i,l as a,m as o,n as s,p as c,r as l,u}from"./blocks-
|
|
1
|
+
import{i as e}from"./preload-helper-B45gAKPr.js";import{E as t,a as n,d as r,f as i,l as a,m as o,n as s,p as c,r as l,u}from"./blocks-Ca82jrBU.js";import{t as d}from"./jsx-runtime-BBQGix-2.js";import{t as f}from"./mdx-react-shim-B-pYVQSG.js";import{Controlled as p,LimitReached as m,WithInitialFiles as h,n as g,t as _}from"./InputFiles.stories-eNwGWGc6.js";function v(e){let o={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...t(),...e.components};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(a,{of:_,parameters:{docs:{toc:!0}}}),`
|
|
2
2
|
`,(0,b.jsx)(c,{children:`InputFiles`}),`
|
|
3
3
|
`,(0,b.jsx)(i,{children:`Выбор и хранение нескольких файлов в контролируемом режиме`}),`
|
|
4
4
|
`,(0,b.jsx)(o.p,{children:`InputFiles уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
|
package/storybook-static/assets/{InputFiles.stories-DIbO_ACP.js → InputFiles.stories-eNwGWGc6.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{C as r}from"./iframe-
|
|
1
|
+
import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{C as r}from"./iframe-DBBiRbws.js";import{t as i}from"./jsx-runtime-BBQGix-2.js";import{n as a,t as o}from"./InputFiles-BqrOxvD8.js";var s=e({Controlled:()=>f,LimitReached:()=>m,WithInitialFiles:()=>p,__namedExportsOrder:()=>h,default:()=>d}),c,l,u,d,f,p,m,h,g=n((()=>{c=t(r(),1),a(),l=i(),u=(e,t=`application/pdf`)=>{let n=new File([`demo-file`],e,{type:t,lastModified:17040672e5});return{mode:`data-url`,meta:{name:n.name,mime:n.type,size:n.size,lastModified:n.lastModified},dataUrl:`data:${t};base64,ZGVtby1maWxl`,file:n}},d={title:`Shared/UI/InputFiles`,component:o,args:{value:[],onChange:()=>{}},parameters:{atomicCanvas:!0,layout:`padded`},argTypes:{label:{description:`Заголовок поля множественной загрузки.`,control:`text`},description:{description:`Описание под заголовком.`,control:`text`},placeholder:{description:`Текст в поле, пока список файлов пуст.`,control:`text`},value:{description:`Массив результатов чтения выбранных файлов.`,control:!1},onChange:{description:`Вызывается с новым массивом файлов после добавления/удаления.`,control:!1},onReadError:{description:`Вызывается при ошибке чтения отдельного файла.`,control:!1},accept:{description:"HTML `accept` для диалога выбора файлов.",control:`text`},allowedMime:{description:`Список допустимых MIME-типов при валидации.`,control:!1},maxBytes:{description:`Максимальный размер одного файла в байтах.`,control:`number`},readMode:{description:`Режим чтения: data-url или array-buffer.`,control:`inline-radio`,options:[`data-url`,`array-buffer`]},maxFiles:{description:`Лимит количества файлов в списке.`,control:`number`},error:{description:`Текст ошибки под полем.`,control:`text`},onClearError:{description:`Вызывается при выборе новых файлов для сброса ошибки.`,control:!1},disabled:{description:`Полностью блокирует выбор файлов.`,control:`boolean`},size:{description:`Размер визуального контрола.`,control:`select`,options:[`xs`,`sm`,`md`,`lg`,`xl`]}}},f={render:e=>{let[t,n]=(0,c.useState)([]);return(0,l.jsx)(o,{...e,readMode:`data-url`,value:t,onChange:n})},args:{label:`Вложения`,description:`Можно выбрать несколько файлов.`,placeholder:`Выберите файлы`,accept:[`.pdf`,`.png`,`.jpg`],maxFiles:5,value:[]}},p={render:e=>{let[t,n]=(0,c.useState)([u(`contract.pdf`),u(`diagram.png`,`image/png`)]);return(0,l.jsx)(o,{...e,readMode:`data-url`,value:t,onChange:n})},args:{label:`Предзаполненный список`,description:`Иллюстрация удаления файлов из уже заполненного значения.`}},m={render:e=>{let[t,n]=(0,c.useState)([u(`first.pdf`),u(`second.pdf`)]);return(0,l.jsx)(o,{...e,readMode:`data-url`,value:t,onChange:n})},args:{label:`Лимит файлов`,description:`После достижения лимита поле выбора блокируется.`,maxFiles:2}},f.parameters={...f.parameters,docs:{...f.parameters?.docs,source:{originalSource:`{
|
|
2
2
|
render: args => {
|
|
3
3
|
const [value, setValue] = useState<ReadFileAsDataUrlResult[]>([]);
|
|
4
4
|
return <InputFiles {...args} readMode="data-url" value={value} onChange={setValue} />;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{i as e}from"./preload-helper-B45gAKPr.js";import{E as t,a as n,d as r,f as i,l as a,m as o,n as s,p as c,r as l,u}from"./blocks-
|
|
1
|
+
import{i as e}from"./preload-helper-B45gAKPr.js";import{E as t,a as n,d as r,f as i,l as a,m as o,n as s,p as c,r as l,u}from"./blocks-Ca82jrBU.js";import{t as d}from"./jsx-runtime-BBQGix-2.js";import{t as f}from"./mdx-react-shim-B-pYVQSG.js";import{ArrayBufferMode as p,Controlled as m,WithInitialImage as h,n as g,t as _}from"./InputImage.stories-DBYvsQrj.js";function v(e){let o={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...t(),...e.components};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(a,{of:_,parameters:{docs:{toc:!0}}}),`
|
|
2
2
|
`,(0,b.jsx)(c,{children:`InputImage`}),`
|
|
3
3
|
`,(0,b.jsx)(i,{children:`Контрол загрузки и предварительного просмотра изображения в формах и карточках`}),`
|
|
4
4
|
`,(0,b.jsx)(o.p,{children:`InputImage уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
|
package/storybook-static/assets/{InputImage.stories-SyFATair.js → InputImage.stories-DBYvsQrj.js}
RENAMED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{C as r}from"./iframe-
|
|
1
|
+
import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{C as r}from"./iframe-DBBiRbws.js";import{t as i}from"./jsx-runtime-BBQGix-2.js";import{a,i as o,n as s}from"./utils-CJ9XKy2b.js";import{n as c,t as l}from"./ui.module-DS2qtZts.js";import{n as u,o as d,r as f,u as p}from"./Input-23s-lKOn.js";import{t as m}from"./input-DQGrA_Iz.js";import{i as h,n as g,t as _}from"./file-hArYcyES.js";var v,y,b,x,S=n((()=>{v=`EV-Vji`,y=`A5-T93`,b=`V1Rhiv`,x={control:v,fileName:y,hiddenInput:b}}));function C({value:e,onChange:t,onClear:n,onReadError:r,allowedMime:i,maxBytes:o,readMode:l,label:m,description:h,placeholder:v=`Выберите изображение`,disabled:y,size:b,error:S,onClearError:C,className:E}){let D=(0,w.useRef)(null),{controlId:O,labelId:k,descriptionId:A,errorId:j,describedBy:M}=p({hasLabel:m!=null,hasDescription:!!h,hasError:!!S}),N=(0,w.useCallback)(e=>l===`array-buffer`?_(e,{allowedMime:i,maxBytes:o,mode:`array-buffer`}):_(e,{allowedMime:i,maxBytes:o}),[i,o,l]),P=(0,w.useMemo)(()=>i&&i.length>0?i.join(`,`):`image/*`,[i]),F=(0,w.useCallback)(async e=>{let n=e.target.files?.[0];if(n){e.target.value=``,S&&C&&C();try{t(await N(n))}catch(e){e instanceof g&&r&&r(e)}}},[N,t,r,S,C]),I=(0,w.useCallback)(()=>{D.current?.click()},[]);return(0,T.jsxs)(d,{label:m,description:h,disabled:y,className:E,size:b,error:S,controlId:O,labelId:k,descriptionId:A,errorId:j,children:[(0,T.jsx)(`input`,{ref:D,id:O,type:`file`,accept:P,disabled:y,className:x.hiddenInput,onChange:F,tabIndex:-1}),(0,T.jsx)(f,{endAdornment:n?(0,T.jsx)(u,{onClick:n,disabled:y}):void 0,endAdornmentWidth:n?`var(--control-height)`:void 0,children:({controlClassName:t})=>(0,T.jsx)(`div`,{role:`button`,tabIndex:y?-1:0,onClick:I,onKeyDown:e=>s(e,I,{disabled:y}),className:a(c.uiInputControl,x.control,t,!!S&&`invalid`),"data-disabled":y||void 0,"aria-invalid":!!S||void 0,"aria-disabled":y,"aria-labelledby":k,"aria-describedby":M,children:e?(0,T.jsx)(`span`,{className:x.fileName,children:e.meta.name}):(0,T.jsx)(`span`,{className:c.uiPlaceholder,children:v})})})]})}var w,T,E=n((()=>{w=t(r(),1),h(),o(),m(),l(),S(),T=i(),C.__docgenInfo={description:`InputImage — компонент выбора одного изображения.
|
|
2
2
|
|
|
3
3
|
Визуально идентичен InputText. Под капотом использует readImageFile,
|
|
4
4
|
который валидирует что файл — изображение и извлекает его размеры.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{i as e}from"./preload-helper-B45gAKPr.js";import{E as t,a as n,d as r,f as i,l as a,m as o,n as s,p as c,r as l,u}from"./blocks-
|
|
1
|
+
import{i as e}from"./preload-helper-B45gAKPr.js";import{E as t,a as n,d as r,f as i,l as a,m as o,n as s,p as c,r as l,u}from"./blocks-Ca82jrBU.js";import{t as d}from"./jsx-runtime-BBQGix-2.js";import{t as f}from"./mdx-react-shim-B-pYVQSG.js";import{Controlled as p,CustomPresets as m,Disabled as h,DisabledPresets as g,InToolbar as _,Placeholder as v,n as y,t as b}from"./LayoutPicker.stories-D1lUyF06.js";function x(e){let o={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...t(),...e.components};return(0,C.jsxs)(C.Fragment,{children:[(0,C.jsx)(a,{of:b,parameters:{docs:{toc:!0}}}),`
|
|
2
2
|
`,(0,C.jsx)(c,{children:`LayoutPicker`}),`
|
|
3
3
|
`,(0,C.jsx)(i,{children:`Контролируемый выбор layout-пресета со схематичным превью`}),`
|
|
4
4
|
`,(0,C.jsxs)(o.p,{children:[(0,C.jsx)(o.code,{children:`LayoutPicker`}),` нужен для выбора схемы размещения независимых областей: графиков, панелей, секций дашборда или другого UI, где сама раскладка хранится во внешней модели.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{C as r}from"./iframe-B1ZJmGrq.js";import{t as i}from"./jsx-runtime-BBQGix-2.js";import{a,i as o}from"./utils-B7W0zPTP.js";import{t as s,ut as ee}from"./lucide-react-Cw6QPvVA.js";import{n as c,t as l}from"./ui.module-DS2qtZts.js";import{T as te,b as ne,g as re,l as ie,m as ae,r as oe,t as u}from"./picker-DBhG__oJ.js";function se(e,t){return{gridTemplateColumns:`repeat(${e.columns}, minmax(0, 1fr))`,gridTemplateRows:`repeat(${e.rows}, minmax(${t??0}em, 1fr))`}}function d(e){return{gridColumn:`${e.column} / span ${e.columnSpan??1}`,gridRow:`${e.row} / span ${e.rowSpan??1}`}}var ce=n((()=>{})),f,le=n((()=>{f=[{id:`1x1`,label:`1x1`,columns:1,rows:1,cells:[{id:`c11`,row:1,column:1}]},{id:`1x2`,label:`1x2`,columns:2,rows:1,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2}]},{id:`1x3`,label:`1x3`,columns:3,rows:1,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3}]},{id:`2x1`,label:`2x1`,columns:1,rows:2,cells:[{id:`c11`,row:1,column:1},{id:`c21`,row:2,column:1}]},{id:`2x2`,label:`2x2`,columns:2,rows:2,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2}]},{id:`2x3`,label:`2x3`,columns:3,rows:2,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3}]},{id:`3x1`,label:`3x1`,columns:1,rows:3,cells:[{id:`c11`,row:1,column:1},{id:`c21`,row:2,column:1},{id:`c31`,row:3,column:1}]},{id:`3x2`,label:`3x2`,columns:2,rows:3,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2}]},{id:`3x3`,label:`3x3`,columns:3,rows:3,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c33`,row:3,column:3}]},{id:`4x1`,label:`4x1`,columns:1,rows:4,cells:[{id:`c11`,row:1,column:1},{id:`c21`,row:2,column:1},{id:`c31`,row:3,column:1},{id:`c41`,row:4,column:1}]},{id:`4x2`,label:`4x2`,columns:2,rows:4,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c41`,row:4,column:1},{id:`c42`,row:4,column:2}]},{id:`4x3`,label:`4x3`,columns:3,rows:4,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c33`,row:3,column:3},{id:`c41`,row:4,column:1},{id:`c42`,row:4,column:2},{id:`c43`,row:4,column:3}]},{id:`2x2-l`,label:`Большая слева + две справа`,columns:2,rows:2,cells:[{id:`left`,row:1,column:1,rowSpan:2},{id:`rt`,row:1,column:2},{id:`rb`,row:2,column:2}]},{id:`2x2-r`,label:`Две слева + большая справа`,columns:2,rows:2,cells:[{id:`lt`,row:1,column:1},{id:`lb`,row:2,column:1},{id:`right`,row:1,column:2,rowSpan:2}]},{id:`2x2-t`,label:`Широкая сверху + две снизу`,columns:2,rows:2,cells:[{id:`top`,row:1,column:1,columnSpan:2},{id:`bl`,row:2,column:1},{id:`br`,row:2,column:2}]},{id:`2x2-b`,label:`Две сверху + широкая снизу`,columns:2,rows:2,cells:[{id:`tl`,row:1,column:1},{id:`tr`,row:1,column:2},{id:`bottom`,row:2,column:1,columnSpan:2}]},{id:`3x2-t`,label:`Широкая сверху + 2x2`,columns:2,rows:3,cells:[{id:`top`,row:1,column:1,columnSpan:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2}]},{id:`3x2-b`,label:`2x2 + широкая снизу`,columns:2,rows:3,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`bottom`,row:3,column:1,columnSpan:2}]},{id:`3x2-m`,label:`Широкая по центру`,columns:2,rows:3,cells:[{id:`tl`,row:1,column:1},{id:`tr`,row:1,column:2},{id:`middle`,row:2,column:1,columnSpan:2},{id:`bl`,row:3,column:1},{id:`br`,row:3,column:2}]},{id:`3x3-l`,label:`Большая слева + 2x3 справа`,columns:3,rows:3,cells:[{id:`left`,row:1,column:1,rowSpan:3},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`c32`,row:3,column:2},{id:`c33`,row:3,column:3}]},{id:`3x3-r`,label:`2x3 слева + большая справа`,columns:3,rows:3,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`right`,row:1,column:3,rowSpan:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2}]},{id:`3x3-t`,label:`Широкая сверху + 2x3`,columns:3,rows:3,cells:[{id:`top`,row:1,column:1,columnSpan:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c33`,row:3,column:3}]},{id:`3x3-b`,label:`2x3 + широкая снизу`,columns:3,rows:3,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`bottom`,row:3,column:1,columnSpan:3}]},{id:`4x2-t`,label:`Широкая сверху + 3x2`,columns:2,rows:4,cells:[{id:`top`,row:1,column:1,columnSpan:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c41`,row:4,column:1},{id:`c42`,row:4,column:2}]},{id:`4x2-b`,label:`3x2 + широкая снизу`,columns:2,rows:4,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`bottom`,row:4,column:1,columnSpan:2}]},{id:`4x3-t`,label:`Широкая сверху + 3x3`,columns:3,rows:4,cells:[{id:`top`,row:1,column:1,columnSpan:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c33`,row:3,column:3},{id:`c41`,row:4,column:1},{id:`c42`,row:4,column:2},{id:`c43`,row:4,column:3}]},{id:`4x3-b`,label:`3x3 + широкая снизу`,columns:3,rows:4,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c33`,row:3,column:3},{id:`bottom`,row:4,column:1,columnSpan:3}]}]})),p=n((()=>{ce(),le()})),m,h,g,_,v,y,b,x,S,C,w,T,E,D,O,k,A,j=n((()=>{m=`_959ulH`,h=`Ch-SZL`,g=`SmdPit`,_=`giOtGs`,v=`_57Tr0T`,y=`Tkhulr`,b=`VQlniu`,x=`wb39Kf`,S=`HGvQdT`,C=`rZuYyb`,w=`vNV6Q2`,T=`_3ytPPa`,E=`koxYU-`,D=`k8xLa2`,O=`_5pd3Bb`,k=`VrHnjN`,A={valueOverlay:m,triggerInput:h,triggerText:g,popup:_,popupLayout:v,popupBody:y,options:b,option:x,optionActive:S,optionSelected:C,optionPreviewWrap:w,optionCheck:T,preview:E,previewPlaceholder:D,previewCompact:O,previewCell:k}}));function ue({preset:e,compact:t=!1}){return(0,P.jsx)(`span`,{className:a(A.preview,t&&A.previewCompact),style:se(e),"aria-hidden":`true`,children:e.cells.map(t=>(0,P.jsx)(`span`,{className:A.previewCell,style:d(t)},`${e.id}:${t.id}`))})}function M({id:e,label:t,description:n,value:r,onChange:i,presets:o=f,disabled:s,getPresetDisabled:l,placeholder:u=de,size:se,ariaLabel:d,className:ce,triggerClassName:le,popupClassName:p,placement:m=`bottom-start`}){let h=(0,N.useRef)(null),[g,_]=(0,N.useState)(!1),v=o.findIndex(e=>e.id===r),y=v>=0?o[v]:void 0,b=y??o[0],x=y?.label??u,{activeIndex:S,context:C,floatingStyles:w,getFloatingProps:T,setReference:E,setFloating:D,setOptionRef:O,close:k,openList:j,toggleOpen:M,selectOption:fe,selectActiveOption:pe,handleReferenceKeyDown:me,handleFloatingKeyDown:F,getOptionId:I,getActiveOptionId:L}=ie({options:o,selectedIndex:v,open:g,onOpenChange:_,getOptionDisabled:l,onSelect:e=>i(e.id),disabled:s,placement:m,triggerMode:`display`}),R=oe({mode:`display`,open:g,currentQuery:``,hasDisplayValue:y!==void 0,inputRef:h,openList:j,close:k,toggleOpen:M}),z=e=>{h.current=e};return(0,P.jsx)(te,{id:e,label:t,description:n,disabled:s,placeholder:u,size:se,className:ce,children:({controlId:e,labelId:t,describedBy:n})=>{let r=`${e}-listbox`;return(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(ae,{ref:z,rootRef:E,id:e,type:`button`,disabled:s,readOnly:!0,autoComplete:`off`,role:`combobox`,value:x,"aria-haspopup":`listbox`,"aria-expanded":g,"aria-controls":g?r:void 0,"aria-labelledby":t,"aria-describedby":n,"aria-autocomplete":`none`,"aria-activedescendant":g?L(r):void 0,"aria-label":t?void 0:d??`Выбрать layout. Текущее значение: ${x}`,"data-ui":`layout-picker-trigger`,rootClassName:le,inputClassName:A.triggerInput,overlay:(0,P.jsxs)(`div`,{className:A.valueOverlay,children:[b?(0,P.jsx)(ue,{preset:b,compact:!0}):(0,P.jsx)(`span`,{className:A.previewPlaceholder}),(0,P.jsx)(`span`,{className:a(A.triggerText,!y&&c.uiPlaceholder),children:x})]}),endAdornment:(0,P.jsx)(re,{open:g,disabled:s,onToggleMouseDown:R.handleToggleMouseDown,onToggleClick:R.handleToggleClick,openAriaLabel:`Открыть список layout`,closeAriaLabel:`Закрыть список layout`}),onClick:R.handleTriggerClick,onFocus:e=>{R.handleTriggerFocus(e.currentTarget)},onKeyDown:e=>{me(e),!e.defaultPrevented&&R.handleTriggerKeyDown({event:e,onActivateWhenOpen:pe,enableSpaceActivation:!0})}}),(0,P.jsx)(ne,{open:g,context:C,floatingStyles:w,listId:r,labelId:t,descriptionId:n,activeOptionId:L(r),setFloating:D,getFloatingProps:T,onKeyDown:F,className:a(c.uiPopupOptions,A.popup,p),layoutClassName:A.popupLayout,bodyClassName:A.popupBody,children:(0,P.jsx)(`div`,{className:A.options,children:o.map((e,t)=>{let n=t===v,i=t===S,o=l?.(e)??!1;return(0,P.jsxs)(`button`,{id:I(r,t),ref:e=>O(t,e),type:`button`,role:`option`,tabIndex:-1,disabled:o,"aria-selected":n,"aria-disabled":o||void 0,"aria-label":e.description?`${e.label}. ${e.description}`:e.label,className:a(A.option,n&&A.optionSelected,i&&A.optionActive),"data-ui":`layout-picker-option`,"data-selected":n||void 0,onMouseDown:e=>e.preventDefault(),onClick:()=>fe(e),children:[(0,P.jsx)(`span`,{className:A.optionPreviewWrap,children:(0,P.jsx)(ue,{preset:e})}),(0,P.jsxs)(`span`,{className:`fontSizeSm`,children:[(0,P.jsx)(`span`,{children:e.label}),e.description?(0,P.jsx)(`span`,{children:e.description}):null]}),(0,P.jsx)(`span`,{className:A.optionCheck,"aria-hidden":`true`,children:n?(0,P.jsx)(ee,{}):null})]},e.id)})})})]})}})}var N,P,de,fe=n((()=>{N=t(r(),1),o(),s(),u(),l(),p(),j(),P=i(),de=`Выберите раскладку`,M.__docgenInfo={description:`Контрол выбора layout-пресета. Не хранит бизнес-логику содержимого ячеек.`,methods:[],displayName:`LayoutPicker`,props:{label:{required:!1,tsType:{name:`ReactNode`},description:``},description:{required:!1,tsType:{name:`string`},description:``},placeholder:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"Выберите раскладку"`,computed:!1}},disabled:{required:!1,tsType:{name:`boolean`},description:``},size:{required:!1,tsType:{name:`union`,raw:`"xs" | "sm" | "md" | "lg" | "xl"`,elements:[{name:`literal`,value:`"xs"`},{name:`literal`,value:`"sm"`},{name:`literal`,value:`"md"`},{name:`literal`,value:`"lg"`},{name:`literal`,value:`"xl"`}]},description:``},value:{required:!0,tsType:{name:`V`},description:"Если начальное состояние может быть `null | undefined`\nзначит `onChange` тоже должен ументь сбрасывать.\nПоэтому такой контрол явно должен передавать `UiBaseProps<AnyType | undefined>`"},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: T) => void`,signature:{arguments:[{type:{name:`C`},name:`value`}],return:{name:`void`}}},description:``},id:{required:!1,tsType:{name:`string`},description:``},presets:{required:!1,tsType:{name:`unknown`},description:``,defaultValue:{value:`[
|
|
1
|
+
import{a as e,c as t,i as n}from"./preload-helper-B45gAKPr.js";import{C as r}from"./iframe-DBBiRbws.js";import{t as i}from"./jsx-runtime-BBQGix-2.js";import{a,i as o}from"./utils-CJ9XKy2b.js";import{t as s,ut as ee}from"./lucide-react-DbhedXaa.js";import{n as c,t as l}from"./ui.module-DS2qtZts.js";import{T as te,b as ne,g as re,l as ie,m as ae,r as oe,t as u}from"./picker-Cuzrli2L.js";function se(e,t){return{gridTemplateColumns:`repeat(${e.columns}, minmax(0, 1fr))`,gridTemplateRows:`repeat(${e.rows}, minmax(${t??0}em, 1fr))`}}function d(e){return{gridColumn:`${e.column} / span ${e.columnSpan??1}`,gridRow:`${e.row} / span ${e.rowSpan??1}`}}var ce=n((()=>{})),f,le=n((()=>{f=[{id:`1x1`,label:`1x1`,columns:1,rows:1,cells:[{id:`c11`,row:1,column:1}]},{id:`1x2`,label:`1x2`,columns:2,rows:1,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2}]},{id:`1x3`,label:`1x3`,columns:3,rows:1,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3}]},{id:`2x1`,label:`2x1`,columns:1,rows:2,cells:[{id:`c11`,row:1,column:1},{id:`c21`,row:2,column:1}]},{id:`2x2`,label:`2x2`,columns:2,rows:2,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2}]},{id:`2x3`,label:`2x3`,columns:3,rows:2,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3}]},{id:`3x1`,label:`3x1`,columns:1,rows:3,cells:[{id:`c11`,row:1,column:1},{id:`c21`,row:2,column:1},{id:`c31`,row:3,column:1}]},{id:`3x2`,label:`3x2`,columns:2,rows:3,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2}]},{id:`3x3`,label:`3x3`,columns:3,rows:3,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c33`,row:3,column:3}]},{id:`4x1`,label:`4x1`,columns:1,rows:4,cells:[{id:`c11`,row:1,column:1},{id:`c21`,row:2,column:1},{id:`c31`,row:3,column:1},{id:`c41`,row:4,column:1}]},{id:`4x2`,label:`4x2`,columns:2,rows:4,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c41`,row:4,column:1},{id:`c42`,row:4,column:2}]},{id:`4x3`,label:`4x3`,columns:3,rows:4,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c33`,row:3,column:3},{id:`c41`,row:4,column:1},{id:`c42`,row:4,column:2},{id:`c43`,row:4,column:3}]},{id:`2x2-l`,label:`Большая слева + две справа`,columns:2,rows:2,cells:[{id:`left`,row:1,column:1,rowSpan:2},{id:`rt`,row:1,column:2},{id:`rb`,row:2,column:2}]},{id:`2x2-r`,label:`Две слева + большая справа`,columns:2,rows:2,cells:[{id:`lt`,row:1,column:1},{id:`lb`,row:2,column:1},{id:`right`,row:1,column:2,rowSpan:2}]},{id:`2x2-t`,label:`Широкая сверху + две снизу`,columns:2,rows:2,cells:[{id:`top`,row:1,column:1,columnSpan:2},{id:`bl`,row:2,column:1},{id:`br`,row:2,column:2}]},{id:`2x2-b`,label:`Две сверху + широкая снизу`,columns:2,rows:2,cells:[{id:`tl`,row:1,column:1},{id:`tr`,row:1,column:2},{id:`bottom`,row:2,column:1,columnSpan:2}]},{id:`3x2-t`,label:`Широкая сверху + 2x2`,columns:2,rows:3,cells:[{id:`top`,row:1,column:1,columnSpan:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2}]},{id:`3x2-b`,label:`2x2 + широкая снизу`,columns:2,rows:3,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`bottom`,row:3,column:1,columnSpan:2}]},{id:`3x2-m`,label:`Широкая по центру`,columns:2,rows:3,cells:[{id:`tl`,row:1,column:1},{id:`tr`,row:1,column:2},{id:`middle`,row:2,column:1,columnSpan:2},{id:`bl`,row:3,column:1},{id:`br`,row:3,column:2}]},{id:`3x3-l`,label:`Большая слева + 2x3 справа`,columns:3,rows:3,cells:[{id:`left`,row:1,column:1,rowSpan:3},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`c32`,row:3,column:2},{id:`c33`,row:3,column:3}]},{id:`3x3-r`,label:`2x3 слева + большая справа`,columns:3,rows:3,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`right`,row:1,column:3,rowSpan:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2}]},{id:`3x3-t`,label:`Широкая сверху + 2x3`,columns:3,rows:3,cells:[{id:`top`,row:1,column:1,columnSpan:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c33`,row:3,column:3}]},{id:`3x3-b`,label:`2x3 + широкая снизу`,columns:3,rows:3,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`bottom`,row:3,column:1,columnSpan:3}]},{id:`4x2-t`,label:`Широкая сверху + 3x2`,columns:2,rows:4,cells:[{id:`top`,row:1,column:1,columnSpan:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c41`,row:4,column:1},{id:`c42`,row:4,column:2}]},{id:`4x2-b`,label:`3x2 + широкая снизу`,columns:2,rows:4,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`bottom`,row:4,column:1,columnSpan:2}]},{id:`4x3-t`,label:`Широкая сверху + 3x3`,columns:3,rows:4,cells:[{id:`top`,row:1,column:1,columnSpan:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c33`,row:3,column:3},{id:`c41`,row:4,column:1},{id:`c42`,row:4,column:2},{id:`c43`,row:4,column:3}]},{id:`4x3-b`,label:`3x3 + широкая снизу`,columns:3,rows:4,cells:[{id:`c11`,row:1,column:1},{id:`c12`,row:1,column:2},{id:`c13`,row:1,column:3},{id:`c21`,row:2,column:1},{id:`c22`,row:2,column:2},{id:`c23`,row:2,column:3},{id:`c31`,row:3,column:1},{id:`c32`,row:3,column:2},{id:`c33`,row:3,column:3},{id:`bottom`,row:4,column:1,columnSpan:3}]}]})),p=n((()=>{ce(),le()})),m,h,g,_,v,y,b,x,S,C,w,T,E,D,O,k,A,j=n((()=>{m=`_959ulH`,h=`Ch-SZL`,g=`SmdPit`,_=`giOtGs`,v=`_57Tr0T`,y=`Tkhulr`,b=`VQlniu`,x=`wb39Kf`,S=`HGvQdT`,C=`rZuYyb`,w=`vNV6Q2`,T=`_3ytPPa`,E=`koxYU-`,D=`k8xLa2`,O=`_5pd3Bb`,k=`VrHnjN`,A={valueOverlay:m,triggerInput:h,triggerText:g,popup:_,popupLayout:v,popupBody:y,options:b,option:x,optionActive:S,optionSelected:C,optionPreviewWrap:w,optionCheck:T,preview:E,previewPlaceholder:D,previewCompact:O,previewCell:k}}));function ue({preset:e,compact:t=!1}){return(0,P.jsx)(`span`,{className:a(A.preview,t&&A.previewCompact),style:se(e),"aria-hidden":`true`,children:e.cells.map(t=>(0,P.jsx)(`span`,{className:A.previewCell,style:d(t)},`${e.id}:${t.id}`))})}function M({id:e,label:t,description:n,value:r,onChange:i,presets:o=f,disabled:s,getPresetDisabled:l,placeholder:u=de,size:se,ariaLabel:d,className:ce,triggerClassName:le,popupClassName:p,placement:m=`bottom-start`}){let h=(0,N.useRef)(null),[g,_]=(0,N.useState)(!1),v=o.findIndex(e=>e.id===r),y=v>=0?o[v]:void 0,b=y??o[0],x=y?.label??u,{activeIndex:S,context:C,floatingStyles:w,getFloatingProps:T,setReference:E,setFloating:D,setOptionRef:O,close:k,openList:j,toggleOpen:M,selectOption:fe,selectActiveOption:pe,handleReferenceKeyDown:me,handleFloatingKeyDown:F,getOptionId:I,getActiveOptionId:L}=ie({options:o,selectedIndex:v,open:g,onOpenChange:_,getOptionDisabled:l,onSelect:e=>i(e.id),disabled:s,placement:m,triggerMode:`display`}),R=oe({mode:`display`,open:g,currentQuery:``,hasDisplayValue:y!==void 0,inputRef:h,openList:j,close:k,toggleOpen:M}),z=e=>{h.current=e};return(0,P.jsx)(te,{id:e,label:t,description:n,disabled:s,placeholder:u,size:se,className:ce,children:({controlId:e,labelId:t,describedBy:n})=>{let r=`${e}-listbox`;return(0,P.jsxs)(P.Fragment,{children:[(0,P.jsx)(ae,{ref:z,rootRef:E,id:e,type:`button`,disabled:s,readOnly:!0,autoComplete:`off`,role:`combobox`,value:x,"aria-haspopup":`listbox`,"aria-expanded":g,"aria-controls":g?r:void 0,"aria-labelledby":t,"aria-describedby":n,"aria-autocomplete":`none`,"aria-activedescendant":g?L(r):void 0,"aria-label":t?void 0:d??`Выбрать layout. Текущее значение: ${x}`,"data-ui":`layout-picker-trigger`,rootClassName:le,inputClassName:A.triggerInput,overlay:(0,P.jsxs)(`div`,{className:A.valueOverlay,children:[b?(0,P.jsx)(ue,{preset:b,compact:!0}):(0,P.jsx)(`span`,{className:A.previewPlaceholder}),(0,P.jsx)(`span`,{className:a(A.triggerText,!y&&c.uiPlaceholder),children:x})]}),endAdornment:(0,P.jsx)(re,{open:g,disabled:s,onToggleMouseDown:R.handleToggleMouseDown,onToggleClick:R.handleToggleClick,openAriaLabel:`Открыть список layout`,closeAriaLabel:`Закрыть список layout`}),onClick:R.handleTriggerClick,onFocus:e=>{R.handleTriggerFocus(e.currentTarget)},onKeyDown:e=>{me(e),!e.defaultPrevented&&R.handleTriggerKeyDown({event:e,onActivateWhenOpen:pe,enableSpaceActivation:!0})}}),(0,P.jsx)(ne,{open:g,context:C,floatingStyles:w,listId:r,labelId:t,descriptionId:n,activeOptionId:L(r),setFloating:D,getFloatingProps:T,onKeyDown:F,className:a(c.uiPopupOptions,A.popup,p),layoutClassName:A.popupLayout,bodyClassName:A.popupBody,children:(0,P.jsx)(`div`,{className:A.options,children:o.map((e,t)=>{let n=t===v,i=t===S,o=l?.(e)??!1;return(0,P.jsxs)(`button`,{id:I(r,t),ref:e=>O(t,e),type:`button`,role:`option`,tabIndex:-1,disabled:o,"aria-selected":n,"aria-disabled":o||void 0,"aria-label":e.description?`${e.label}. ${e.description}`:e.label,className:a(A.option,n&&A.optionSelected,i&&A.optionActive),"data-ui":`layout-picker-option`,"data-selected":n||void 0,onMouseDown:e=>e.preventDefault(),onClick:()=>fe(e),children:[(0,P.jsx)(`span`,{className:A.optionPreviewWrap,children:(0,P.jsx)(ue,{preset:e})}),(0,P.jsxs)(`span`,{className:`fontSizeSm`,children:[(0,P.jsx)(`span`,{children:e.label}),e.description?(0,P.jsx)(`span`,{children:e.description}):null]}),(0,P.jsx)(`span`,{className:A.optionCheck,"aria-hidden":`true`,children:n?(0,P.jsx)(ee,{}):null})]},e.id)})})})]})}})}var N,P,de,fe=n((()=>{N=t(r(),1),o(),s(),u(),l(),p(),j(),P=i(),de=`Выберите раскладку`,M.__docgenInfo={description:`Контрол выбора layout-пресета. Не хранит бизнес-логику содержимого ячеек.`,methods:[],displayName:`LayoutPicker`,props:{label:{required:!1,tsType:{name:`ReactNode`},description:``},description:{required:!1,tsType:{name:`string`},description:``},placeholder:{required:!1,tsType:{name:`string`},description:``,defaultValue:{value:`"Выберите раскладку"`,computed:!1}},disabled:{required:!1,tsType:{name:`boolean`},description:``},size:{required:!1,tsType:{name:`union`,raw:`"xs" | "sm" | "md" | "lg" | "xl"`,elements:[{name:`literal`,value:`"xs"`},{name:`literal`,value:`"sm"`},{name:`literal`,value:`"md"`},{name:`literal`,value:`"lg"`},{name:`literal`,value:`"xl"`}]},description:``},value:{required:!0,tsType:{name:`V`},description:"Если начальное состояние может быть `null | undefined`\nзначит `onChange` тоже должен ументь сбрасывать.\nПоэтому такой контрол явно должен передавать `UiBaseProps<AnyType | undefined>`"},onChange:{required:!0,tsType:{name:`signature`,type:`function`,raw:`(value: T) => void`,signature:{arguments:[{type:{name:`C`},name:`value`}],return:{name:`void`}}},description:``},id:{required:!1,tsType:{name:`string`},description:``},presets:{required:!1,tsType:{name:`unknown`},description:``,defaultValue:{value:`[
|
|
2
2
|
{
|
|
3
3
|
id: "1x1",
|
|
4
4
|
label: "1x1",
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{i as e}from"./preload-helper-B45gAKPr.js";import{E as t,a as n,d as r,f as i,l as a,m as o,n as s,p as c,r as l,u}from"./blocks-
|
|
1
|
+
import{i as e}from"./preload-helper-B45gAKPr.js";import{E as t,a as n,d as r,f as i,l as a,m as o,n as s,p as c,r as l,u}from"./blocks-Ca82jrBU.js";import{t as d}from"./jsx-runtime-BBQGix-2.js";import{t as f}from"./mdx-react-shim-B-pYVQSG.js";import{CustomRender as p,MultiSelect as m,SingleSelect as h,n as g,t as _}from"./Listbox.stories-6yyYujhd.js";function v(e){let o={code:`code`,h2:`h2`,h3:`h3`,li:`li`,p:`p`,pre:`pre`,ul:`ul`,...t(),...e.components};return(0,b.jsxs)(b.Fragment,{children:[(0,b.jsx)(a,{of:_,parameters:{docs:{toc:!0}}}),`
|
|
2
2
|
`,(0,b.jsx)(c,{children:`Listbox`}),`
|
|
3
3
|
`,(0,b.jsx)(i,{children:`Список выбора для single- и multi-select сценариев с кастомным рендером элементов`}),`
|
|
4
4
|
`,(0,b.jsx)(o.p,{children:`Listbox уже имеет живые stories, а эта страница собирает их в структурированную документацию с краткими рекомендациями, примерами подключения и API.
|