@ryuzaki13/react-foundation-ui 1.0.23 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +86 -0
- package/dist/image/index.d.ts +2 -0
- package/dist/image/index.d.ts.map +1 -1
- package/dist/image/index.js +337 -121
- package/dist/image/index.js.map +1 -1
- package/dist/image/lib/buildImageViewerSlides.d.ts +8 -0
- package/dist/image/lib/buildImageViewerSlides.d.ts.map +1 -0
- package/dist/image/lib/resolveImageViewerLabels.d.ts +24 -0
- package/dist/image/lib/resolveImageViewerLabels.d.ts.map +1 -0
- package/dist/image/model/imageViewerTypes.d.ts +70 -0
- package/dist/image/model/imageViewerTypes.d.ts.map +1 -0
- package/dist/image/ui/ImageViewer.d.ts +12 -0
- package/dist/image/ui/ImageViewer.d.ts.map +1 -0
- package/dist/styles.css +1 -1
- package/package.json +6 -1
- package/src/styles/config/_index.scss +1 -0
- package/storybook-static/assets/{Badge-Dk1ppt6h.js → Badge-kXFWHX1o.js} +1 -1
- package/storybook-static/assets/{Badge.stories-DGed-OBQ.js → Badge.stories-fhovi8Mi.js} +1 -1
- package/storybook-static/assets/{Button-BrdeQlDt.js → Button-BzcIPScf.js} +1 -1
- package/storybook-static/assets/{Button-c4nDxtrg.js → Button-DuNV63ZS.js} +1 -1
- package/storybook-static/assets/{Button.stories-CYjvIvUW.js → Button.stories-DehjFhSM.js} +1 -1
- package/storybook-static/assets/{CheckBox-6Qr3jWMy.js → CheckBox-BmyFh4i7.js} +1 -1
- package/storybook-static/assets/{CheckBox-rqQjSYV-.js → CheckBox-D6mLxi2P.js} +1 -1
- package/storybook-static/assets/{CheckBox.stories-Q78_xCB-.js → CheckBox.stories-Cb7RC2GA.js} +1 -1
- package/storybook-static/assets/{Color-KMSTOMOX-BMBFTpCU.js → Color-KMSTOMOX-CX-Xl_mX.js} +1 -1
- package/storybook-static/assets/{ContextMenu-Dy6qjxlr.js → ContextMenu-Cef_K-t5.js} +1 -1
- package/storybook-static/assets/{ContextMenu.stories-ArVPg2Iz.js → ContextMenu.stories-AZHC-8P9.js} +1 -1
- package/storybook-static/assets/{DateInput-eu7DXgSU.js → DateInput-C55_ANq6.js} +1 -1
- package/storybook-static/assets/{DateInput-Dk1l_hxJ.js → DateInput-DSVMF1gB.js} +1 -1
- package/storybook-static/assets/{DateInput.stories-GCltuReT.js → DateInput.stories-CsC2qa2g.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-aiAJs_u-.js → DateRangePresetSelect-B8rYDJ5X.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-2dHNAnUX.js → DateRangePresetSelect-CIFpis74.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect.stories-BXPIK_Co.js → DateRangePresetSelect.stories-BjtAEDa9.js} +1 -1
- package/storybook-static/assets/{Detail-C-0qKqgn.js → Detail-BgqY0SrV.js} +1 -1
- package/storybook-static/assets/{Detail.stories-BpD2YoZq.js → Detail.stories-Co8o1gqx.js} +1 -1
- package/storybook-static/assets/{Dialog-BHOqDS4r.js → Dialog-DoekeYCP.js} +1 -1
- package/storybook-static/assets/{Dialog.stories-DbY2IVcJ.js → Dialog.stories-v5TQS_1-.js} +1 -1
- package/storybook-static/assets/{Disclosure-BIS573Xf.js → Disclosure-E7Bm1F1a.js} +1 -1
- package/storybook-static/assets/{Disclosure.stories-BEXgpOqT.js → Disclosure.stories-CUYuBYh6.js} +1 -1
- package/storybook-static/assets/{DocsRenderer-JROSPFPF-DBLxlIku.js → DocsRenderer-JROSPFPF-9II2vBP-.js} +2 -2
- package/storybook-static/assets/{DropZone-DCOH76_B.js → DropZone-COhh7w0P.js} +1 -1
- package/storybook-static/assets/{DropZone.stories-D1SI6gcY.js → DropZone.stories-XU7u589t.js} +1 -1
- package/storybook-static/assets/{DropdownMenu-mb1Hg5Gl.js → DropdownMenu-3ney3Ng2.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel.stories-CXJMi0D0.js → ExpandableActionPanel.stories-DJOZxMv_.js} +2 -2
- package/storybook-static/assets/{Flex-D1ZBJLmP.js → Flex-BtfZvPDu.js} +1 -1
- package/storybook-static/assets/{Flex-aMhUlmFA.js → Flex-CN6FIOe5.js} +1 -1
- package/storybook-static/assets/{Flex.stories-Cq9hTA2s.js → Flex.stories-BCZhfSVz.js} +1 -1
- package/storybook-static/assets/{Grid-DrwSe074.js → Grid-CdgOXXxt.js} +1 -1
- package/storybook-static/assets/{Grid-D4xblGva.js → Grid-D_d69WcK.js} +1 -1
- package/storybook-static/assets/{Grid.stories-CsQlxLGT.js → Grid.stories-DQoSH4q8.js} +1 -1
- package/storybook-static/assets/{ImageCropper.stories-Da0fJQ1n.js → ImageCropper.stories-BJiSLQAw.js} +1 -1
- package/storybook-static/assets/{ImageRenderer-dXWklz9J.js → ImageRenderer-D6M62W6a.js} +1 -1
- package/storybook-static/assets/{ImageRenderer.stories-C2l796Hd.js → ImageRenderer.stories-BZFA51MD.js} +1 -1
- package/storybook-static/assets/{ImageView.stories-Cee_V0zr.js → ImageView.stories-DFvdAL1U.js} +1 -1
- package/storybook-static/assets/ImageViewer-kKDkAY87.css +1 -0
- package/storybook-static/assets/ImageViewer.stories-BzUxxQAO.js +72 -0
- package/storybook-static/assets/{Input-DoTXagjB.js → Input-BrEoa-ul.js} +1 -1
- package/storybook-static/assets/Input-DD9fx2Sx.js +3 -0
- package/storybook-static/assets/{Input.stories-mPAKrIP1.js → Input.stories-BmsoCBN4.js} +1 -1
- package/storybook-static/assets/{InputDateTime-BgIJNCpv.js → InputDateTime-Cdmc7rX2.js} +1 -1
- package/storybook-static/assets/{InputDateTime.stories-Ck0MCRBJ.js → InputDateTime.stories-BhjQejJD.js} +1 -1
- package/storybook-static/assets/{InputFile-BZqKG2Zr.js → InputFile-BJfA5xNs.js} +1 -1
- package/storybook-static/assets/{InputFile.stories-QbTuArh1.js → InputFile.stories-BIJaIWlj.js} +1 -1
- package/storybook-static/assets/{InputFiles-BUoDhUef.js → InputFiles-DORMd5fm.js} +1 -1
- package/storybook-static/assets/{InputFiles-ChhwyB9P.js → InputFiles-ZK4wdii7.js} +1 -1
- package/storybook-static/assets/{InputFiles.stories-PD0pr8y6.js → InputFiles.stories-CVr0ENgC.js} +1 -1
- package/storybook-static/assets/{InputImage-YxBujSop.js → InputImage-Dk4j2KMa.js} +1 -1
- package/storybook-static/assets/{InputImage.stories-CHjyI709.js → InputImage.stories-Dtx-ynMr.js} +1 -1
- package/storybook-static/assets/{LayoutPicker-DJT0cL8d.js → LayoutPicker-CCvATGnT.js} +1 -1
- package/storybook-static/assets/{LayoutPicker.stories-DvTvYmfw.js → LayoutPicker.stories-MUwtf1U1.js} +1 -1
- package/storybook-static/assets/{Listbox-D7w7HJNg.js → Listbox-TfXOnGNL.js} +1 -1
- package/storybook-static/assets/{Listbox.stories-D4EMWR6l.js → Listbox.stories-Bxx8eTZ9.js} +1 -1
- package/storybook-static/assets/{Modal-BCn0aKBf.js → Modal-CeXVAufO.js} +1 -1
- package/storybook-static/assets/{Modal.stories-BgnMPuDy.js → Modal.stories-DmnMwG9h.js} +1 -1
- package/storybook-static/assets/{MultiSelect-CZW1VSbD.js → MultiSelect-Bq5Xj6i5.js} +1 -1
- package/storybook-static/assets/{MultiSelect-D7N8euwu.js → MultiSelect-CdEQ7LE0.js} +1 -1
- package/storybook-static/assets/{MultiSelect.stories-DV9nyDoE.js → MultiSelect.stories-BgjuPpG-.js} +1 -1
- package/storybook-static/assets/{NotificationsHost-DJILaEyi.js → NotificationsHost-B6xWf_Ae.js} +1 -1
- package/storybook-static/assets/{NotificationsHost.stories-DlO0kPbm.js → NotificationsHost.stories-BmnJ3G3S.js} +2 -2
- package/storybook-static/assets/{ODataMultiSelect-C-DKYFLx.js → ODataMultiSelect-BGFMSKC-.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect.stories-DypA5OPM.js → ODataMultiSelect.stories-Cw3mS3ds.js} +1 -1
- package/storybook-static/assets/{ODataSelect-ANgknc8h.js → ODataSelect-9gP8ejA7.js} +1 -1
- package/storybook-static/assets/{ODataSelect-CMrLfCwp.js → ODataSelect-BTpRnB-o.js} +1 -1
- package/storybook-static/assets/{ODataSelect.stories-icXU3Kk-.js → ODataSelect.stories-C8XnS6W-.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect-C6yg6DFE.js → ODataTreeMultiSelect-TXpOQMB8.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect.stories-CT_tBJph.js → ODataTreeMultiSelect.stories-ikxs50iA.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect-hiY9TK6F.js → ODataTreeSelect-CvgrWRYS.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect.stories-DPNG2-gB.js → ODataTreeSelect.stories-CWuZaxIF.js} +1 -1
- package/storybook-static/assets/{PeriodSelect-5CQZq007.js → PeriodSelect-CVT2XzOd.js} +1 -1
- package/storybook-static/assets/{PeriodSelect.stories-DuwM__eX.js → PeriodSelect.stories-B5jJRelX.js} +1 -1
- package/storybook-static/assets/{Popover-BuB6NaNL.js → Popover-D9YhHWsi.js} +1 -1
- package/storybook-static/assets/{Popover.stories-DNHTB9O2.js → Popover.stories-CtEUOX4O.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-C6ke1QJN.js → PresetRangeDateInput-D3r0iIRk.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput.stories-BiFR6FF_.js → PresetRangeDateInput.stories-Dcc1dGV0.js} +1 -1
- package/storybook-static/assets/{RadioButton-bmKQ4B96.js → RadioButton-CWjkmWu9.js} +1 -1
- package/storybook-static/assets/{RadioButton.stories-CZatWIEO.js → RadioButton.stories-BXXJWoHz.js} +1 -1
- package/storybook-static/assets/{RadioGroup-Vnr3qZKk.js → RadioGroup-Bjc2XTVk.js} +1 -1
- package/storybook-static/assets/{RadioGroup-diPPm8OV.js → RadioGroup-DCZdrs0C.js} +1 -1
- package/storybook-static/assets/{RadioGroup.stories-BY_ORcvQ.js → RadioGroup.stories-CsfVUt9l.js} +1 -1
- package/storybook-static/assets/{Select-Cq66yRYB.js → Select-BBFQZObL.js} +1 -1
- package/storybook-static/assets/Select-BGu6rVaZ.js +12 -0
- package/storybook-static/assets/{Select.stories-CevvmTWz.js → Select.stories-wIbcvZYi.js} +1 -1
- package/storybook-static/assets/{SelectOptionContent-C1-duJ6s.js → SelectOptionContent-DkTRrtFu.js} +1 -1
- package/storybook-static/assets/{SerializableSelect-CnwfEnur.js → SerializableSelect-CJtNM-c6.js} +1 -1
- package/storybook-static/assets/{SerializableSelect-C6jj7wLf.js → SerializableSelect-CdnRBVHB.js} +1 -1
- package/storybook-static/assets/{SerializableSelect.stories-DOTdXeIP.js → SerializableSelect.stories-DVwxpiTF.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-BtSG1SZF.js → SingleDateTimeInput-BK2_uv0z.js} +1 -1
- package/storybook-static/assets/SingleDateTimeInput.stories-DPH4R-h9.js +78 -0
- package/storybook-static/assets/{Slider-pb7TgPmP.js → Slider-f4VatXYq.js} +1 -1
- package/storybook-static/assets/{Slider.stories-Cj9sU7k1.js → Slider.stories-CBnmt8h9.js} +1 -1
- package/storybook-static/assets/{SliderInput-Dp4r4RqZ.js → SliderInput-W2HVfY9Z.js} +1 -1
- package/storybook-static/assets/{SliderInput.stories-DKV9C_mb.js → SliderInput.stories-B7wzoUbu.js} +1 -1
- package/storybook-static/assets/{Sortable-BbVzA3mH.js → Sortable-CCL1UMb_.js} +1 -1
- package/storybook-static/assets/{Sortable.stories-nttQ0wQV.js → Sortable.stories-B8SgFjl7.js} +1 -1
- package/storybook-static/assets/{Splitter-DQip0vEb.js → Splitter-BsBb1sgN.js} +1 -1
- package/storybook-static/assets/{Splitter.stories-B7IdmITM.js → Splitter.stories-CuBHIA8-.js} +1 -1
- package/storybook-static/assets/{StateSelect-BZeQfOZk.js → StateSelect-BENsGD07.js} +1 -1
- package/storybook-static/assets/{StateSelect.stories-Cia0oYUX.js → StateSelect.stories-byEPoQ2E.js} +2 -2
- package/storybook-static/assets/{Switch-DzxseHUx.js → Switch-DKXE4SVs.js} +1 -1
- package/storybook-static/assets/Switch.stories-BWQdJoJT.js +26 -0
- package/storybook-static/assets/{Table-lzcaRxDg.js → Table-D9w3ncNi.js} +1 -1
- package/storybook-static/assets/{Table.stories-sckp-lho.js → Table.stories-znqy5cLP.js} +1 -1
- package/storybook-static/assets/{Tabs-DyBBFEsD.js → Tabs-D_OO95mK.js} +1 -1
- package/storybook-static/assets/{Tabs.stories-C6-sZs4H.js → Tabs.stories-B2A1HYeH.js} +1 -1
- package/storybook-static/assets/TagInput.stories-DaBnABh8.js +18 -0
- package/storybook-static/assets/{Textarea-D1fEct22.js → Textarea-Hwyvp6ll.js} +1 -1
- package/storybook-static/assets/{Textarea.stories-ByJH2uhT.js → Textarea.stories-DD3Icl3x.js} +1 -1
- package/storybook-static/assets/{TimePanel-B5c9MfmC.js → TimePanel-CdpxiwMQ.js} +1 -1
- package/storybook-static/assets/{TimePanel.stories-DBgXVhz1.js → TimePanel.stories-ytXuqm9R.js} +1 -1
- package/storybook-static/assets/{Toggle-CHx3ZZfu.js → Toggle-Sdruy8bN.js} +1 -1
- package/storybook-static/assets/{Toggle.stories-g3Eq8oVl.js → Toggle.stories-qgeQLvRn.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-T05Sk9sh.js → TreeMultiSelect-CKfmI37X.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-CrKusouJ.js → TreeMultiSelect-t2FNc6CY.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect.stories-C85O7gDN.js → TreeMultiSelect.stories-k1NBsKij.js} +1 -1
- package/storybook-static/assets/{TreePickerBase-VJSaTBqo.js → TreePickerBase-DXv--vBR.js} +2 -2
- package/storybook-static/assets/{TreeSelect-DQmAaKsJ.js → TreeSelect-DYHpUNGC.js} +1 -1
- package/storybook-static/assets/{TreeSelect-Dw-svVvg.js → TreeSelect-DgKArbMR.js} +1 -1
- package/storybook-static/assets/{TreeSelect.stories-Bqv2L08v.js → TreeSelect.stories-DTpkFKp7.js} +1 -1
- package/storybook-static/assets/{TreeTable-JJK6sE1o.js → TreeTable-BOy0Tit-.js} +1 -1
- package/storybook-static/assets/{TreeTable.stories-yOu-SM17.js → TreeTable.stories-By1BlhSx.js} +1 -1
- package/storybook-static/assets/{WithTooltip-7X4HQR7L-Cib98jGG.js → WithTooltip-7X4HQR7L-D0sHKirZ.js} +1 -1
- package/storybook-static/assets/{base-table-BbenC81q.js → base-table-CYO33S-X.js} +1 -1
- package/storybook-static/assets/{blocks-DsN3hykK.js → blocks-Be6sd6Mi.js} +6 -6
- package/storybook-static/assets/{button-C8nkqC6f.js → button-D2JNy4h8.js} +1 -1
- package/storybook-static/assets/{check-box-BRod99sY.js → check-box-B4tjJED4.js} +1 -1
- package/storybook-static/assets/{chunk-3LY4VQVK-DSSlp6en.js → chunk-3LY4VQVK-jaQG9QeP.js} +1 -1
- package/storybook-static/assets/{chunk-LITCR56V-CB95AMSh.js → chunk-LITCR56V-HuSFGdRZ.js} +1 -1
- package/storybook-static/assets/{contextMenu-iKy1R_pJ.js → contextMenu-DIpGZPH1.js} +1 -1
- package/storybook-static/assets/{error-ChmbU9Ma.js → error-DHDPaDqg.js} +1 -1
- package/storybook-static/assets/{flex-CMA-ZjxB.js → flex-BWOaXKdl.js} +1 -1
- package/storybook-static/assets/{floating-ui.react-BpBaLM_G.js → floating-ui.react-C83w-peW.js} +1 -1
- package/storybook-static/assets/formatter-L2YTDE3Q-CO9xKxzu.js +1 -0
- package/storybook-static/assets/{formatters-C0d3JoZj.js → formatters-BaQpdAeu.js} +1 -1
- package/storybook-static/assets/grid-BwTl00V9.js +1 -0
- package/storybook-static/assets/{hooks-BpEcTBvi.js → hooks-5ZdxaH2L.js} +1 -1
- package/storybook-static/assets/{iframe-D90hKkIJ.js → iframe-Dw3PG8YA.js} +4 -4
- package/storybook-static/assets/{input-D77vjPVL.js → input-Cv9ps4La.js} +1 -1
- package/storybook-static/assets/lucide-react-DMM2-ayk.js +1 -0
- package/storybook-static/assets/{mdx-react-shim-CdXPOrRW.js → mdx-react-shim-Be8o0WOk.js} +1 -1
- package/storybook-static/assets/{media-C4dafSHo.js → media-Bc0eGngh.js} +1 -1
- package/storybook-static/assets/misc-7hwZFEXA.js +5 -0
- package/storybook-static/assets/{notifications-Dt8NSgnT.js → notifications-DkxUPPfB.js} +1 -1
- package/storybook-static/assets/{odata-DQSm2H7O.js → odata-nO_yW-3w.js} +1 -1
- package/storybook-static/assets/odata-service-RLReWm0A.js +1 -0
- package/storybook-static/assets/{odataStoryFixtures-D0p0XtmS.js → odataStoryFixtures-J-OBpNg6.js} +1 -1
- package/storybook-static/assets/{picker-9SOfvJPJ.js → picker-BQr_wySR.js} +1 -1
- package/storybook-static/assets/{popover-Dph7wJ1_.js → popover-v9hxY66g.js} +1 -1
- package/storybook-static/assets/{preset-select-mubmWRO9.js → preset-select-d-pIvdGN.js} +1 -1
- package/storybook-static/assets/{react-18-CSg0VXTL.js → react-18-CXAAUXpx.js} +1 -1
- package/storybook-static/assets/{react-Cr3aZrbF.js → react-ByWJZTAG.js} +1 -1
- package/storybook-static/assets/{react-dom-Iu9X9_7I.js → react-dom-DXk3dBb-.js} +1 -1
- package/storybook-static/assets/select-BessDJfg.js +1 -0
- package/storybook-static/assets/{slider-C8Udy6I7.js → slider-tV7pXkKI.js} +1 -1
- package/storybook-static/assets/{sortable-xt2HCdf-.js → sortable-CHwTYQdY.js} +1 -1
- package/storybook-static/assets/{syntaxhighlighter-RTCFPKCB-4Ttp-ccw.js → syntaxhighlighter-RTCFPKCB-CsqLGhls.js} +1 -1
- package/storybook-static/assets/{text-CwWM1WCX.js → text-Bf_PqPja.js} +1 -1
- package/storybook-static/assets/{theming--foXdFDq.js → theming-D37tYvvG.js} +1 -1
- package/storybook-static/assets/ui-QO8tRKaR.js +1 -0
- package/storybook-static/assets/{useODataSelectBase-C7f1zxWc.js → useODataSelectBase-DSlg4q3l.js} +1 -1
- package/storybook-static/assets/{useODataTreeData-7hwK6Byp.js → useODataTreeData-d53TKU6r.js} +1 -1
- package/storybook-static/assets/{utils-Bg8QclQy.js → utils-CnV3Gszu.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/storybook-static/assets/Input-B6UklXwb.js +0 -3
- package/storybook-static/assets/Select-BxK9yj6_.js +0 -12
- package/storybook-static/assets/SingleDateTimeInput.stories-CSFUpLfK.js +0 -78
- package/storybook-static/assets/Switch.stories-BVAIn4yd.js +0 -26
- package/storybook-static/assets/TagInput.stories-iI1hZ8CY.js +0 -18
- package/storybook-static/assets/formatter-L2YTDE3Q-tZc7M3Ad.js +0 -1
- package/storybook-static/assets/grid-Ck5-5Szv.js +0 -1
- package/storybook-static/assets/lucide-react-ClGevkpS.js +0 -1
- package/storybook-static/assets/misc-yRJvnOkX.js +0 -5
- package/storybook-static/assets/odata-service-CMTV9-cO.js +0 -1
- package/storybook-static/assets/select-DYXb71nn.js +0 -1
- package/storybook-static/assets/ui-BJnukgBU.js +0 -1
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import{c as e,i as t}from"./preload-helper-B45gAKPr.js";import{C as n}from"./iframe-Dw3PG8YA.js";import{t as r}from"./react-dom-DXk3dBb-.js";import{t as i}from"./jsx-runtime-BBQGix-2.js";import{a,i as o}from"./utils-CnV3Gszu.js";import{B as s,Et as c,I as l,J as u,M as d,Ot as f,P as p,W as m,bt as h,i as g,n as _,o as v,t as y,vt as b}from"./lucide-react-DMM2-ayk.js";import{t as x}from"./Button-DuNV63ZS.js";import{t as S}from"./button-D2JNy4h8.js";var C,w,T,E,D,O,k,A,ee,j,M,te,ne,re,ie,ae,oe,se,ce,le,ue,de,fe,pe,me,he,ge,_e,ve,ye,be,xe,Se,Ce,we,Te,Ee,De,Oe,ke,Ae,je,Me,Ne=t((()=>{C=`carousel`,w=`controller`,T=`navigation`,E=`no-scroll`,D=`portal`,O=`root`,k=`toolbar`,A=`captions`,ee=`counter`,j=`download`,M=`fullscreen`,te=`thumbnails`,ne=`zoom`,re=`loading`,ie=`playing`,ae=`error`,oe=`complete`,se=e=>`active-slide-${e}`,se(re),se(ie),se(ae),se(oe),ce=`fullsize`,le=`flex_center`,ue=`no_scroll`,de=`no_scroll_padding`,fe=`slide`,pe=`slide_wrapper`,me=`prev`,he=`next`,ge=`swipe`,_e=`close`,ve=`onPointerDown`,ye=`onPointerMove`,be=`onPointerUp`,xe=`onPointerLeave`,Se=`onPointerCancel`,Ce=`onKeyDown`,we=`onKeyUp`,Te=`onWheel`,Ee=`Escape`,De=`ArrowLeft`,Oe=`ArrowRight`,ke=`button`,Ae=`icon`,je=`contain`,Me=`Unknown action type`}));function N(...e){return e.filter(Boolean).join(` `)}function P(e){return`${en}${e}`}function F(e){return`--${en}${e}`}function Pe(e,t){return`${e}${t?`_${t}`:``}`}function Fe(e){return t=>Pe(e,t)}function Ie(e,t){return e?.[t]??t}function Le(e,t,n){return Ie(e,`{index} of {total}`).replace(/\{index}/g,`${qe(n,t.length)+1}`).replace(/\{total}/g,`${t.length}`)}function Re(...e){return()=>{e.forEach(e=>{e()})}}function I(e,t,n){return()=>{let r=V.useContext(n);if(!r)throw Error(`${e} must be used within a ${t}.Provider`);return r}}function ze(){return typeof window<`u`}function Be(e,t=0){let n=10**t;return Math.round((e+2**-52)*n)/n}function Ve(e){return e.type===void 0||e.type===`image`}function He(e,t){return e.imageFit===`cover`||e.imageFit!==`contain`&&t===`cover`}function Ue(e){return typeof e==`string`?Number.parseInt(e,10):e}function We(e){if(typeof e==`number`)return{pixel:e};if(typeof e==`string`){let t=Ue(e);return e.endsWith(`%`)?{percent:t}:{pixel:t}}return{pixel:0}}function Ge(e,t){let n=We(t),r=n.percent===void 0?n.pixel:e.width/100*n.percent;return{width:Math.max(e.width-2*r,0),height:Math.max(e.height-2*r,0)}}function Ke(){return(ze()?window==null?void 0:window.devicePixelRatio:void 0)||1}function qe(e,t){return t>0?(e%t+t)%t:0}function Je(e){return e.length>0}function Ye(e,t){return e[qe(t,e.length)]}function Xe(e,t){return Je(e)?Ye(e,t):void 0}function Ze(e){return Ve(e)?e.src:void 0}function Qe(e,t,n){if(!n)return e;let{buttons:r,...i}=e,a=r.findIndex(e=>e===t),o=V.isValidElement(n)?V.cloneElement(n,{key:t},null):n;if(a>=0){let e=[...r];return e.splice(a,1,o),{buttons:e,...i}}return{buttons:[o,...r],...i}}function $e(e,t,n=0){return Math.min(e.preload,Math.max(e.finite?t.length-1:Math.floor(t.length/2),n))}function et(e){return{inert:tn?e:e?``:void 0}}function tt(e){e.scrollTop}function L(e,t){return{name:e,component:t}}function R(e,t){return{module:e,children:t}}function nt(e,t,n){return e.module.name===t?n(e):e.children?[R(e.module,e.children.flatMap(e=>nt(e,t,n)??[]))]:[e]}function rt(e,t,n){return e.flatMap(e=>nt(e,t,n)??[])}function it(e,t=[],n=[]){let r=e,i=e=>{let t=[...r];for(;t.length>0;){let n=t.pop();if(n?.module.name===e)return!0;n?.children&&t.push(...n.children)}return!1},a=(e,t)=>{if(e===``){r=[R(t,r)];return}r=rt(r,e,e=>[R(t,[e])])},o=(e,t)=>{r=rt(r,e,e=>[R(e.module,[R(t,e.children)])])},s=(e,t,n)=>{r=rt(r,e,e=>[R(e.module,[...n?[R(t)]:[],...e.children??[],...n?[]:[R(t)]])])},c=(e,t,n)=>{r=rt(r,e,e=>[...n?[R(t)]:[],e,...n?[]:[R(t)]])},l=e=>{o(w,e)},u=(e,t)=>{r=rt(r,e,e=>[R(t,e.children)])},d=e=>{r=rt(r,e,e=>e.children)},f=e=>{n.push(e)};return t.forEach(e=>{e({contains:i,addParent:a,append:o,addChild:s,addSibling:c,addModule:l,replace:u,remove:d,augment:f})}),{config:r,augmentation:e=>n.reduce((e,t)=>t(e),e)}}function at({children:e}){let[t,n]=V.useState(!1),[r,i]=V.useState(!1),a=V.useMemo(()=>({focusWithin:t,trackFocusWithin:(e,t)=>{let r=r=>i=>{var a;i.currentTarget.contains(i.relatedTarget)||n(r),(a=r?e:t)==null||a(i)};return{onFocus:r(!0),onBlur:r(!1)}},autoPlaying:r,setAutoPlaying:i}),[t,r]);return V.createElement(rn.Provider,{value:a},e)}function ot({nodeRef:e,children:t}){let n=V.useMemo(()=>{let t=t=>(t||e.current)?.ownerDocument||document;return{getOwnerDocument:t,getOwnerWindow:e=>t(e)?.defaultView||window}},[e]);return V.createElement(on.Provider,{value:n},t)}function st({children:e}){let[t]=V.useState({});V.useEffect(()=>()=>{Object.keys(t).forEach(e=>delete t[e])},[t]);let n=V.useMemo(()=>{let e=(e,n)=>{var r;(r=t[e])==null||r.splice(0,t[e].length,...t[e].filter(e=>e!==n))};return{publish:(...[e,n])=>{var r;(r=t[e])==null||r.forEach(e=>e(n))},subscribe:(n,r)=>(t[n]||(t[n]=[]),t[n].push(r),()=>e(n,r)),unsubscribe:e}},[t]);return V.createElement(cn.Provider,{value:n},e)}function ct({children:e,...t}){return V.createElement(un.Provider,{value:t},e)}function lt(e,t){switch(t.type){case`swipe`:{let{slides:n}=e,r=t?.increment||0,i=e.globalIndex+r,a=qe(i,n.length);return{slides:n,currentIndex:a,globalIndex:i,currentSlide:Xe(n,a),animation:r||t.duration!==void 0?{increment:r,duration:t.duration,easing:t.easing}:void 0}}case`update`:return t.slides!==e.slides||t.index!==e.currentIndex?{slides:t.slides,currentIndex:t.index,globalIndex:t.index,currentSlide:Xe(t.slides,t.index)}:e;default:throw Error(Me)}}function ut({slides:e,index:t,children:n}){let[r,i]=V.useReducer(lt,{slides:e,currentIndex:t,globalIndex:t,currentSlide:Xe(e,t)}),[a,o]=V.useState(e),[s,c]=V.useState(t);(e!==a||t!==s)&&(o(e),c(t),i({type:`update`,slides:e,index:t}));let l=V.useMemo(()=>({...r,state:r,dispatch:i}),[r,i]);return V.createElement(fn.Provider,{value:i},V.createElement(dn.Provider,{value:l},n))}function dt({isRTL:e,children:t}){let n=V.useMemo(()=>({isRTL:e}),[e]);return V.createElement(mn.Provider,{value:n},t)}function ft({children:e}){let[t]=V.useState([]);V.useEffect(()=>()=>{t.forEach(e=>window.clearTimeout(e)),t.splice(0,t.length)},[t]);let n=V.useMemo(()=>{let e=e=>{t.splice(0,t.length,...t.filter(t=>t!==e))};return{setTimeout:(n,r)=>{let i=window.setTimeout(()=>{e(i),n()},r);return t.push(i),i},clearTimeout:t=>{t!==void 0&&(e(t),window.clearTimeout(t))}}},[t]);return V.createElement(gn.Provider,{value:n},e)}function pt(e,t){let n=e=>V.createElement(`svg`,{xmlns:`http://www.w3.org/2000/svg`,viewBox:`0 0 24 24`,width:`24`,height:`24`,"aria-hidden":`true`,focusable:`false`,...e},t);return n.displayName=e,n}function z(e,t){return pt(e,V.createElement(`g`,{fill:`currentColor`},V.createElement(`path`,{d:`M0 0h24v24H0z`,fill:`none`}),t))}function mt(e,t){return pt(e,V.createElement(V.Fragment,null,V.createElement(`defs`,null,V.createElement(`mask`,{id:`strike`},V.createElement(`path`,{d:`M0 0h24v24H0z`,fill:`white`}),V.createElement(`path`,{d:`M0 0L24 24`,stroke:`black`,strokeWidth:4}))),V.createElement(`path`,{d:`M0.70707 2.121320L21.878680 23.292883`,stroke:`currentColor`,strokeWidth:2}),V.createElement(`g`,{fill:`currentColor`,mask:`url(#strike)`},V.createElement(`path`,{d:`M0 0h24v24H0z`,fill:`none`}),t)))}function ht(){let[e,t]=V.useState(!1);return V.useEffect(()=>{var e;let n=window.matchMedia?.call(window,`(prefers-reduced-motion: reduce)`);t(n?.matches);let r=e=>t(e.matches);return(e=n?.addEventListener)==null||e.call(n,`change`,r),()=>(n?.removeEventListener)?.call(n,`change`,r)},[]),e}function gt(e){let t=0,n=0,r=0,i=window.getComputedStyle(e).transform.match(/matrix.*\((.+)\)/);if(i){let e=i[1].split(`,`).map(Ue);e.length===6?(t=e[4],n=e[5]):e.length===16&&(t=e[12],n=e[13],r=e[14])}return{x:t,y:n,z:r}}function _t(e,t){let n=V.useRef(void 0),r=V.useRef(void 0),i=ht();return W(()=>{var a,o;if(e.current&&n.current!==void 0&&!i){let{keyframes:i,duration:s,easing:c,onfinish:l}=t(n.current,e.current.getBoundingClientRect(),gt(e.current))||{};if(i&&s){(a=r.current)==null||a.cancel(),r.current=void 0;try{r.current=(o=e.current).animate?.call(o,i,{duration:s,easing:c})}catch(e){console.error(e)}r.current&&(r.current.onfinish=()=>{r.current=void 0,l?.()})}}n.current=void 0}),{prepareAnimation:e=>{n.current=e},isAnimationPlaying:()=>r.current?.playState===`running`}}function vt(){let e=V.useRef(null),t=V.useRef(void 0),[n,r]=V.useState();return{setContainerRef:V.useCallback(n=>{e.current=n,t.current&&=(t.current.disconnect(),void 0);let i=()=>{if(n){let e=window.getComputedStyle(n),t=e=>parseFloat(e)||0;r({width:Math.round(n.clientWidth-t(e.paddingLeft)-t(e.paddingRight)),height:Math.round(n.clientHeight-t(e.paddingTop)-t(e.paddingBottom))})}else r(void 0)};i(),n&&typeof ResizeObserver<`u`&&(t.current=new ResizeObserver(i),t.current.observe(n))},[]),containerRef:e,containerRect:n}}function yt(){let e=V.useRef(void 0),{setTimeout:t,clearTimeout:n}=_n();return V.useCallback((r,i)=>{n(e.current),e.current=t(r,i>0?i:0)},[t,n])}function B(e){let t=V.useRef(e);return W(()=>{t.current=e}),V.useCallback((...e)=>t.current?.call(t,...e),[])}function bt(e,t){typeof e==`function`?e(t):e&&(e.current=t)}function xt(e,t){return V.useMemo(()=>e==null&&t==null?null:n=>{bt(e,n),bt(t,n)},[e,t])}function St(e,t=!1){let n=V.useRef(!1);return W(()=>{t&&n.current&&(n.current=!1,e())},[t,e]),{onFocus:V.useCallback(()=>{n.current=!0},[]),onBlur:V.useCallback(()=>{n.current=!1},[])}}function Ct(){return hn().isRTL}function wt(){let[e]=V.useState({}),t=V.useCallback((t,n)=>{var r;(r=e[t])==null||r.forEach(e=>{n.isPropagationStopped()||e(n)})},[e]);return{registerSensors:V.useMemo(()=>({onPointerDown:e=>t(ve,e),onPointerMove:e=>t(ye,e),onPointerUp:e=>t(be,e),onPointerLeave:e=>t(xe,e),onPointerCancel:e=>t(Se,e),onKeyDown:e=>t(Ce,e),onKeyUp:e=>t(we,e),onWheel:e=>t(Te,e)}),[t]),subscribeSensors:V.useCallback((t,n)=>(e[t]||(e[t]=[]),e[t].unshift(n),()=>{let r=e[t];r&&r.splice(0,r.length,...r.filter(e=>e!==n))}),[e])}}function Tt(e,t){let n=V.useRef(0),r=yt(),i=B((...t)=>{n.current=Date.now(),e(t)});return V.useCallback((...e)=>{r(()=>{i(e)},t-(Date.now()-n.current))},[t,i,r])}function Et({slide:e,offset:t,render:n,rect:r,imageFit:i,imageProps:a,onClick:o,onLoad:s,onError:c,style:l}){let[u,d]=V.useState(re),{publish:f}=ln(),{setTimeout:p}=_n(),m=V.useRef(null);V.useEffect(()=>{t===0&&f(se(u))},[t,u,f]);let h=B(e=>{(`decode`in e?e.decode():Promise.resolve()).catch(()=>{}).then(()=>{e.parentNode&&(d(oe),p(()=>{s?.(e)},0))})}),g=V.useCallback(e=>{m.current=e,e?.complete&&h(e)},[h]),_=V.useCallback(e=>{h(e.currentTarget)},[h]),v=B(()=>{d(ae),c?.()}),y=He(e,i),b=(e,t)=>Number.isFinite(e)?e:t,x=b(Math.max(...(e.srcSet?.map(e=>e.width)??[]).concat(e.width?[e.width]:[]).filter(Boolean)),m.current?.naturalWidth||0),S=b(Math.max(...(e.srcSet?.map(e=>e.height)??[]).concat(e.height?[e.height]:[]).filter(Boolean)),m.current?.naturalHeight||0),C=x&&S?{maxWidth:`min(${x}px, 100%)`,maxHeight:`min(${S}px, 100%)`}:{maxWidth:`100%`,maxHeight:`100%`},w=e.srcSet?.slice().sort((e,t)=>e.width-t.width).map(e=>`${e.src} ${e.width}w`).join(`, `),T=w&&r&&ze()?`${Math.round(Math.min(r&&!y&&e.width&&e.height?r.height/e.height*e.width:Number.MAX_VALUE,r.width))}px`:void 0,{style:E,className:D,...O}=(typeof a==`function`?a(e):a)||{};return V.createElement(V.Fragment,null,V.createElement(`img`,{ref:g,onLoad:_,onError:v,onClick:o,draggable:!1,className:N(P(Tn()),y&&P(Tn(`cover`)),u!==`complete`&&P(Tn(`loading`)),D),style:{...C,...l,...E},...O,alt:e.alt??``,sizes:T,srcSet:w,src:e.src}),u!==`complete`&&V.createElement(`div`,{className:P(wn(`placeholder`))},u===`loading`&&(n?.iconLoading?n.iconLoading():V.createElement(Sn,{className:N(P(`icon`),P(wn(`loading`)))})),u===`error`&&(n?.iconError?n.iconError():V.createElement(Cn,{className:N(P(`icon`),P(wn(`error`)))}))))}function Dt(e,t,n,r,i){V.useEffect(()=>i?()=>{}:Re(e(ve,t),e(ye,n),e(be,r),e(xe,r),e(Se,r)),[e,t,n,r,i])}function Ot({disableSwipeNavigation:e,closeOnBackdropClick:t},n,r,i,a,o,s,c,l,u,d,f,p,m,h,g){let _=V.useRef(0),v=V.useRef([]),y=V.useRef(void 0),b=V.useRef(0),x=V.useRef(Dn.NONE),S=V.useCallback(e=>{y.current===e.pointerId&&(y.current=void 0,x.current=Dn.NONE);let t=v.current;t.splice(0,t.length,...t.filter(t=>t.pointerId!==e.pointerId))},[]),C=V.useCallback(e=>{S(e),e.persist(),v.current.push(e)},[S]),w=V.useCallback(e=>v.current.find(({pointerId:t})=>e.pointerId===t),[]),T=B(e=>{C(e)}),E=(e,t)=>d&&e>t||u&&e<-t,D=B(e=>{let n=w(e);if(n)if(y.current===e.pointerId){let e=Date.now()-b.current,t=_.current;x.current===Dn.SWIPE?Math.abs(t)>.3*i||Math.abs(t)>5&&e<a?c(t,e):l(t):x.current===Dn.PULL&&(E(t,2*On)?m(t,e):h(t)),_.current=0,x.current=Dn.NONE}else{let{target:r}=e;t&&r instanceof HTMLElement&&r===n.target&&(r.classList.contains(P(`slide`))||r.classList.contains(P(`slide_wrapper`)))&&g()}S(e)});Dt(n,T,B(t=>{let n=w(t);if(n){let i=y.current===t.pointerId;if(t.buttons===0){i&&_.current!==0?D(t):S(n);return}let a=t.clientX-n.clientX,c=t.clientY-n.clientY;if(y.current===void 0){let n=e=>{C(t),y.current=t.pointerId,b.current=Date.now(),x.current=e};Math.abs(a)>Math.abs(c)&&Math.abs(a)>On&&r(a)?e||(n(Dn.SWIPE),o()):Math.abs(c)>Math.abs(a)&&E(c,On)&&(n(Dn.PULL),f())}else i&&(x.current===Dn.SWIPE?(_.current=a,s(a)):x.current===Dn.PULL&&(_.current=c,p(c)))}}),D)}function kt({preventDefaultWheelX:e,preventDefaultWheelY:t}){let n=V.useRef(null),r=B(n=>{let r=Math.abs(n.deltaX)>Math.abs(n.deltaY);(r&&e||!r&&t||n.ctrlKey)&&n.preventDefault()});return V.useCallback(e=>{var t;e?e.addEventListener(`wheel`,r,{passive:!1}):(t=n.current)==null||t.removeEventListener(`wheel`,r),n.current=e},[r])}function At(e,t,n,r,i,a,o,s,c){let l=V.useRef(0),u=V.useRef(0),d=V.useRef(void 0),f=V.useRef(void 0),p=V.useRef(0),m=V.useRef(void 0),h=V.useRef(0),{setTimeout:g,clearTimeout:_}=_n(),v=V.useCallback(()=>{d.current&&=(_(d.current),void 0)},[_]),y=V.useCallback(()=>{f.current&&=(_(f.current),void 0)},[_]),b=B(()=>{e!==G.SWIPE&&(l.current=0,h.current=0,v(),y())});V.useEffect(b,[e,b]);let x=B(e=>{f.current=void 0,l.current===e&&c(l.current)}),S=B(t=>{if(t.ctrlKey||Math.abs(t.deltaY)>Math.abs(t.deltaX))return;let c=e=>{p.current=e,_(m.current),m.current=e>0?g(()=>{p.current=0,m.current=void 0},300):void 0};if(e===G.NONE){if(Math.abs(t.deltaX)<=1.2*Math.abs(p.current)){c(t.deltaX);return}if(!n(-t.deltaX))return;if(u.current+=t.deltaX,v(),Math.abs(u.current)>30)u.current=0,c(0),h.current=Date.now(),a();else{let e=u.current;d.current=g(()=>{d.current=void 0,e===u.current&&(u.current=0)},i)}}else if(e===G.SWIPE){let e=l.current-t.deltaX;if(e=Math.min(Math.abs(e),r)*Math.sign(e),l.current=e,o(e),y(),Math.abs(e)>.2*r){c(t.deltaX),s(e,Date.now()-h.current);return}f.current=g(()=>x(e),2*i)}else c(t.deltaX)});V.useEffect(()=>t(Te,S),[t,S])}function jt({children:e,...t}){let{carousel:n,animation:r,controller:i,on:a,styles:o,render:s}=t,{closeOnPullUp:c,closeOnPullDown:l,preventDefaultWheelX:u,preventDefaultWheelY:d}=i,[f,p]=V.useState(),m=U(),h=pn(),[g,_]=V.useState(G.NONE),v=V.useRef(0),y=V.useRef(0),b=V.useRef(1),{registerSensors:x,subscribeSensors:S}=wt(),{subscribe:C,publish:w}=ln(),T=yt(),E=yt(),D=yt(),{containerRef:O,setContainerRef:k,containerRect:A}=vt(),ee=xt(kt({preventDefaultWheelX:u,preventDefaultWheelY:d}),k),j=V.useRef(null),M=xt(j,void 0),{getOwnerDocument:te}=sn(),ne=Ct(),re=e=>(ne?-1:1)*(typeof e==`number`?e:1),ie=B(()=>O.current?.focus()),ae=B(()=>t),oe=B(()=>m),se=V.useCallback(e=>w(me,e),[w]),ce=V.useCallback(e=>w(he,e),[w]),ue=V.useCallback(()=>w(_e),[w]),de=e=>!(n.finite&&(re(e)>0&&m.currentIndex===0||re(e)<0&&m.currentIndex===m.slides.length-1)),fe=e=>{var t;v.current=e,(t=O.current)==null||t.style.setProperty(F(`swipe_offset`),`${Math.round(e)}px`)},pe=e=>{var t,n;y.current=e,b.current=(()=>{let t=.5,n=l&&e>0?e:c&&e<0?-e:0;return Math.min(Math.max(Be(1-n/60*(1-t),2),t),1)})(),(t=O.current)==null||t.style.setProperty(F(`pull_offset`),`${Math.round(e)}px`),(n=O.current)==null||n.style.setProperty(F(`pull_opacity`),`${b.current}`)},{prepareAnimation:ve}=_t(j,(e,t,n)=>{if(j.current&&A)return{keyframes:[{transform:`translate(0, ${e.rect.y-t.y+n.y}px)`,opacity:e.opacity},{transform:`translate(0, 0)`,opacity:1}],duration:e.duration,easing:r.easing.fade}}),ye=(e,t)=>{if(c||l){pe(e);let n=0;j.current&&(n=r.fade*(t?2:1),ve({rect:j.current.getBoundingClientRect(),opacity:b.current,duration:n})),D(()=>{pe(0),_(G.NONE)},n),_(G.ANIMATION),t||ue()}},{prepareAnimation:be,isAnimationPlaying:xe}=_t(j,(e,t,r)=>{if(j.current&&A&&m.animation?.duration){let i=We(n.spacing),a=(i.percent?i.percent*A.width/100:i.pixel)||0;return{keyframes:[{transform:`translate(${re(m.globalIndex-e.index)*(A.width+a)+e.rect.x-t.x+r.x}px, 0)`},{transform:`translate(0, 0)`}],duration:m.animation.duration,easing:m.animation.easing}}}),Se=B(e=>{let t=e.offset||0,n=t?r.swipe:r.navigation??r.swipe,i=!t&&!xe()?r.easing.navigation:r.easing.swipe,{direction:a}=e,o=e.count??1,s=G.ANIMATION,c=n*o;if(!a){let r=A?.width,i=e.duration||0,s=r?n/r*Math.abs(t):n;o===0?c=n/2:(i<s?c=c/s*Math.max(i,s/5):r&&(c=n/r*(r-Math.abs(t))),a=re(t)>0?me:he)}let l=0;a===`prev`?de(re(1))?l=-o:(s=G.NONE,c=n):a===`next`&&(de(re(-1))?l=o:(s=G.NONE,c=n)),c=Math.round(c),E(()=>{fe(0),_(G.NONE)},c),j.current&&be({rect:j.current.getBoundingClientRect(),index:m.globalIndex}),_(s),w(ge,{type:`swipe`,increment:l,duration:c,easing:i})});V.useEffect(()=>{m.animation?.increment&&m.animation?.duration&&T(()=>h({type:`swipe`,increment:0}),m.animation.duration)},[m.animation,h,T]);let Ce=[S,de,A?.width||0,r.swipe,()=>_(G.SWIPE),e=>fe(e),(e,t)=>Se({offset:e,duration:t,count:1}),e=>Se({offset:e,count:0})],we=[()=>{l&&_(G.PULL)},e=>pe(e),e=>ye(e),e=>ye(e,!0)];Ot(i,...Ce,c,l,...we,ue),At(g,...Ce);let Te=B(()=>{i.focus&&te().querySelector(`.${P(`portal`)} .${P(kn())}`)&&ie()});V.useEffect(Te,[Te]);let Ee=B(()=>{var e;(e=a.view)==null||e.call(a,{index:m.currentIndex})});V.useEffect(Ee,[m.globalIndex,Ee]),V.useEffect(()=>Re(C(me,e=>Se({direction:me,...e})),C(he,e=>Se({direction:he,...e})),C(ge,e=>h(e))),[C,Se,h]);let De=V.useMemo(()=>({prev:se,next:ce,close:ue,focus:ie,slideRect:A?Ge(A,n.padding):{width:0,height:0},containerRect:A||{width:0,height:0},subscribeSensors:S,containerRef:O,setCarouselRef:M,toolbarWidth:f,setToolbarWidth:p}),[se,ce,ue,ie,S,A,O,M,f,p,n.padding]);return V.useImperativeHandle(i.ref,()=>({prev:se,next:ce,close:ue,focus:ie,getLightboxProps:ae,getLightboxState:oe}),[se,ce,ue,ie,ae,oe]),V.createElement(`div`,{ref:ee,className:N(P(kn()),P(le)),style:{...g===G.SWIPE?{[F(`swipe_offset`)]:`${Math.round(v.current)}px`}:null,...g===G.PULL?{[F(`pull_offset`)]:`${Math.round(y.current)}px`,[F(`pull_opacity`)]:`${b.current}`}:null,...i.touchAction===`none`?null:{[F(`controller_touch_action`)]:i.touchAction},...o.container},tabIndex:-1,...x},A&&V.createElement(An.Provider,{value:De},e,s.controls?.call(s)))}function Mt(e){return Pe(C,e)}function Nt(e){return Pe(fe,e)}function Pt({slide:e,offset:t}){let n=V.useRef(null),{currentIndex:r,slides:i}=U(),{slideRect:a,focus:o}=K(),{render:s,carousel:{imageFit:c,imageProps:l},on:{click:u},styles:{slide:d},labels:f}=H(),{getOwnerDocument:p}=sn(),m=t!==0;V.useEffect(()=>{m&&n.current?.contains(p().activeElement)&&o()},[m,o,p]);let h=()=>{let n=s.slide?.call(s,{slide:e,offset:t,rect:a});return!n&&Ve(e)&&(n=V.createElement(Et,{slide:e,offset:t,render:s,rect:a,imageFit:c,imageProps:l,onClick:m?void 0:()=>u?.({index:r})})),n?V.createElement(V.Fragment,null,s.slideHeader?.call(s,{slide:e}),(s.slideContainer??(({children:e})=>e))({slide:e,children:n}),s.slideFooter?.call(s,{slide:e})):null};return V.createElement(`div`,{ref:n,className:N(P(Nt()),!m&&P(Nt(`current`)),P(le)),...et(m),style:d,role:`group`,"aria-roledescription":Ie(f,`Slide`),"aria-label":Le(f,i,r+t)},h())}function Ft(){let e=H().styles.slide;return V.createElement(`div`,{className:P(fe),style:e})}function It({carousel:e,labels:t}){let{slides:n,currentIndex:r,globalIndex:i}=U(),{setCarouselRef:a}=K(),{autoPlaying:o,focusWithin:s}=an(),c=We(e.spacing),l=We(e.padding),u=$e(e,n,1),d=[];if(Je(n))for(let t=r-u;t<=r+u;t+=1){let a=Ye(n,t),o=i-r+t,s=e.finite&&(t<0||t>n.length-1);d.push(s?{key:o}:{key:[`${o}`,Ze(a)].filter(Boolean).join(`|`),offset:t-r,slide:a})}return V.createElement(`div`,{ref:a,className:N(P(Mt()),d.length>0&&P(Mt(`with_slides`))),style:{[`${F(Mt(`slides_count`))}`]:d.length,[`${F(Mt(`spacing_px`))}`]:c.pixel||0,[`${F(Mt(`spacing_percent`))}`]:c.percent||0,[`${F(Mt(`padding_px`))}`]:l.pixel||0,[`${F(Mt(`padding_percent`))}`]:l.percent||0},role:`region`,"aria-live":o&&!s?`off`:`polite`,"aria-roledescription":Ie(t,`Carousel`),"aria-label":Ie(t,`Photo gallery`)},d.map(({key:e,slide:t,offset:n})=>t?V.createElement(Pt,{key:e,slide:t,offset:n}):V.createElement(Ft,{key:e})))}function Lt(){let{carousel:e}=H(),{slides:t,currentIndex:n}=U();return{prevDisabled:t.length===0||e.finite&&n===0,nextDisabled:t.length===0||e.finite&&n===t.length-1}}function Rt(e){let t=Ct(),{publish:n}=ln(),{animation:r,controller:i}=H(),{prevDisabled:a,nextDisabled:o}=Lt(),s=(r.navigation??r.swipe)/2,c=Tt(()=>n(me),s),l=Tt(()=>n(he),s),u=B(e=>{switch(e.key){case Ee:if(!i.closeOnEscape)return;n(_e);break;case De:(t?o:a)||(t?l:c)();break;case Oe:(t?a:o)||(t?c:l)();break;default:return}e.stopPropagation()});V.useEffect(()=>e(Ce,u),[e,u])}function zt({label:e,icon:t,renderIcon:n,action:r,onClick:i,disabled:a,style:o}){return V.createElement(vn,{label:e,icon:t,renderIcon:n,className:P(`navigation_${r}`),disabled:a,onClick:i,style:o,...St(K().focus,a)})}function Bt({render:{buttonPrev:e,buttonNext:t,iconPrev:n,iconNext:r},styles:i}){let{prev:a,next:o,subscribeSensors:s}=K(),{prevDisabled:c,nextDisabled:l}=Lt();return Rt(s),V.createElement(V.Fragment,null,e?e():V.createElement(zt,{label:`Previous`,action:me,icon:bn,renderIcon:n,style:i.navigationPrev,disabled:c,onClick:a}),t?t():V.createElement(zt,{label:`Next`,action:he,icon:xn,renderIcon:r,style:i.navigationNext,disabled:l,onClick:o}))}function Vt(e){return`style`in e}function Ht(e,t,n){let r=window.getComputedStyle(e),i=n?`padding-left`:`padding-right`,a=n?r.paddingLeft:r.paddingRight,o=e.style.getPropertyValue(i);return e.style.setProperty(i,`${(Ue(a)||0)+t}px`),()=>{o?e.style.setProperty(i,o):e.style.removeProperty(i)}}function Ut({noScroll:{disabled:e},children:t}){let n=Ct(),{getOwnerDocument:r,getOwnerWindow:i}=sn();return V.useEffect(()=>{if(e)return()=>{};let t=[],a=i(),{body:o,documentElement:s}=r(),c=Math.round(a.innerWidth-s.clientWidth);if(c>0){t.push(Ht(o,c,n));let e=o.getElementsByTagName(`*`);for(let r=0;r<e.length;r+=1){let i=e[r];Vt(i)&&a.getComputedStyle(i).getPropertyValue(`position`)===`fixed`&&!i.classList.contains(Fn)&&t.push(Ht(i,c,n))}}return o.classList.add(Pn),()=>{o.classList.remove(Pn),t.forEach(e=>e())}},[n,e,r,i]),V.createElement(V.Fragment,null,t)}function Wt(e){return Pe(D,e)}function Gt(e,t,n){let r=e.getAttribute(t);return e.setAttribute(t,n),()=>{r?e.setAttribute(t,r):e.removeAttribute(t)}}function Kt({portal:{root:e,container:{className:t,style:n,...r}={}},animation:i,styles:a,className:o,on:s,close:c,labels:l,children:u}){let[d,f]=V.useState(!1),[p,m]=V.useState(!1),h=V.useRef([]),g=V.useRef(null),{setTimeout:_}=_n(),{subscribe:v}=ln(),y=ht()?0:i.fade;V.useEffect(()=>(f(!0),()=>{f(!1),m(!1)}),[]);let b=B(()=>{h.current.forEach(e=>e()),h.current=[]}),x=B(()=>{var e;m(!1),b(),(e=s.exiting)==null||e.call(s),_(()=>{var e;(e=s.exited)==null||e.call(s),c()},y)});V.useEffect(()=>v(_e,x),[v,x]);let S=B(e=>{var t;tt(e),m(!0),(t=s.entering)==null||t.call(s);let n=e.parentNode?.children??[];for(let t=0;t<n.length;t+=1){let r=n[t];[`TEMPLATE`,`SCRIPT`,`STYLE`].indexOf(r.tagName)===-1&&r!==e&&(h.current.push(Gt(r,`inert`,``)),h.current.push(Gt(r,`aria-hidden`,`true`)))}h.current.push(()=>{var e,t;(t=(e=g.current)?.focus)==null||t.call(e)}),_(()=>{var e;(e=s.entered)==null||e.call(s)},y)}),C=V.useCallback(e=>{e?S(e):b()},[S,b]);return d?(0,$t.createPortal)(V.createElement(En,{ref:C,className:N(o,t,P(Wt()),P(de),p&&P(Wt(`open`))),"aria-modal":!0,role:`dialog`,"aria-label":Ie(l,`Lightbox`),style:{...i.fade===nn.animation.fade?null:{[F(`fade_animation_duration`)]:`${y}ms`},...i.easing.fade===nn.animation.easing.fade?null:{[F(`fade_animation_timing_function`)]:i.easing.fade},...a.root,...n},onFocus:e=>{g.current||=e.relatedTarget},...r},u),(typeof e==`function`?e():e)||document.body):null}function qt({children:e}){return V.createElement(V.Fragment,null,e)}function Jt(e){return Pe(k,e)}function Yt({toolbar:{buttons:e},render:{buttonClose:t,iconClose:n},styles:r}){let{close:i,setToolbarWidth:a}=K(),{setContainerRef:o,containerRect:s}=vt();W(()=>{a(s?.width)},[a,s?.width]);let c=()=>t?t():V.createElement(vn,{key:_e,label:`Close`,icon:yn,renderIcon:n,onClick:i});return V.createElement(`div`,{ref:o,style:r.toolbar,className:P(Jt())},e?.map(e=>e===`close`?c():e))}function Xt(e,t){return V.createElement(e.module.component,{key:e.module.name,...t},e.children?.map(e=>Xt(e,t)))}function Zt(e,t={}){let{easing:n,...r}=e,{easing:i,...a}=t;return{easing:{...n,...i},...r,...a}}function Qt({carousel:e,animation:t,render:n,toolbar:r,controller:i,noScroll:a,on:o,plugins:s,slides:c,index:l,...u}){let{animation:d,carousel:f,render:p,toolbar:m,controller:h,noScroll:g,on:_,slides:v,index:y,plugins:b,...x}=nn,{config:S,augmentation:C}=it([R(Ln,[R(In,[R(jn,[R(Mn),R(zn),R(Nn)])])])],s||b),w=C({animation:Zt(d,t),carousel:{...f,...e},render:{...p,...n},toolbar:{...m,...r},controller:{...h,...i},noScroll:{...g,...a},on:{..._,...o},...x,...u});return w.open?V.createElement(ct,{...w},V.createElement(ut,{slides:c||v,index:Ue(l||y)},V.createElement(ft,null,V.createElement(st,null,V.createElement(at,null,Xt(R(Rn,S),w)))))):null}var V,$t,en,tn,nn,rn,an,on,sn,cn,ln,un,H,dn,U,fn,pn,mn,hn,gn,_n,vn,yn,bn,xn,Sn,Cn,W,wn,Tn,En,G,Dn,On,kn,An,K,jn,Mn,Nn,Pn,Fn,In,Ln,Rn,zn,Bn=t((()=>{V=e(n(),1),Ne(),$t=e(r(),1),en=`yarl__`,tn=Number(`19.2.7`.split(`.`)[0])>=19,nn={open:!1,close:()=>{},index:0,slides:[],render:{},plugins:[],toolbar:{buttons:[_e]},labels:{},animation:{fade:250,swipe:500,easing:{fade:`ease`,swipe:`ease-out`,navigation:`ease-in-out`}},carousel:{finite:!1,preload:2,padding:`16px`,spacing:`30%`,imageFit:je,imageProps:{}},controller:{ref:null,focus:!0,aria:!1,touchAction:`none`,closeOnPullUp:!1,closeOnPullDown:!1,closeOnBackdropClick:!1,closeOnEscape:!0,preventDefaultWheelX:!0,preventDefaultWheelY:!1,disableSwipeNavigation:!1},portal:{},noScroll:{disabled:!1},on:{},styles:{},className:``},rn=V.createContext(null),an=I(`useA11yContext`,`A11yContext`,rn),on=V.createContext(null),sn=I(`useDocument`,`DocumentContext`,on),cn=V.createContext(null),ln=I(`useEvents`,`EventsContext`,cn),un=V.createContext(null),H=I(`useLightboxProps`,`LightboxPropsContext`,un),dn=V.createContext(null),U=I(`useLightboxState`,`LightboxStateContext`,dn),fn=V.createContext(null),pn=I(`useLightboxDispatch`,`LightboxDispatchContext`,fn),mn=V.createContext(null),hn=I(`useRTLContext`,`RTLContext`,mn),gn=V.createContext(null),_n=I(`useTimeouts`,`TimeoutsContext`,gn),vn=V.forwardRef(function({label:e,className:t,icon:n,renderIcon:r,onClick:i,style:a,...o},s){let{styles:c,labels:l}=H(),u=Ie(l,e);return V.createElement(`button`,{ref:s,type:`button`,title:u,"aria-label":u,className:N(P(ke),t),onClick:i,style:{...a,...c.button},...o},r?r():V.createElement(n,{className:P(Ae),style:c.icon}))}),yn=z(`Close`,V.createElement(`path`,{d:`M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z`})),bn=z(`Previous`,V.createElement(`path`,{d:`M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z`})),xn=z(`Next`,V.createElement(`path`,{d:`M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z`})),Sn=z(`Loading`,V.createElement(V.Fragment,null,Array.from({length:8}).map((e,t,n)=>V.createElement(`line`,{key:t,x1:`12`,y1:`6.5`,x2:`12`,y2:`1.8`,strokeLinecap:`round`,strokeWidth:`2.6`,stroke:`currentColor`,strokeOpacity:1/n.length*(t+1),transform:`rotate(${360/n.length*t}, 12, 12)`})))),Cn=z(`Error`,V.createElement(`path`,{d:`M21.9,21.9l-8.49-8.49l0,0L3.59,3.59l0,0L2.1,2.1L0.69,3.51L3,5.83V19c0,1.1,0.9,2,2,2h13.17l2.31,2.31L21.9,21.9z M5,18 l3.5-4.5l2.5,3.01L12.17,15l3,3H5z M21,18.17L5.83,3H19c1.1,0,2,0.9,2,2V18.17z`})),W=ze()?V.useLayoutEffect:V.useEffect,wn=Fe(`slide`),Tn=Fe(`slide_image`),En=V.forwardRef(function({className:e,children:t,onFocus:n,onBlur:r,...i},a){let o=V.useRef(null),[s,c]=V.useState(!1),{trackFocusWithin:l}=an(),u=B(()=>{if(o.current){let e=window.getComputedStyle(o.current).direction===`rtl`;e!==s&&c(e)}});return V.useEffect(u),V.createElement(ot,{nodeRef:o},V.createElement(dt,{isRTL:s},V.createElement(`div`,{ref:xt(a,o),className:N(P(`root`),e),...l(n,r),...i},t)))}),(function(e){e[e.NONE=0]=`NONE`,e[e.SWIPE=1]=`SWIPE`,e[e.PULL=2]=`PULL`,e[e.ANIMATION=3]=`ANIMATION`})(G||={}),(function(e){e[e.NONE=0]=`NONE`,e[e.SWIPE=1]=`SWIPE`,e[e.PULL=2]=`PULL`})(Dn||={}),On=30,kn=Fe(`container`),An=V.createContext(null),K=I(`useController`,`ControllerContext`,An),jn=L(w,jt),Mn=L(C,It),Nn=L(T,Bt),Pn=P(ue),Fn=P(de),In=L(E,Ut),Ln=L(D,Kt),Rn=L(O,qt),zn=L(k,Yt)}));function Vn(){let{captions:e}=H();return Yn(e)}function Hn({captions:e,children:t}){let{ref:n,hidden:r}=Yn(e),[i,a]=q.useState(!r),o=q.useMemo(()=>({visible:i,show:()=>a(!0),hide:()=>a(!1)}),[i]);return q.useImperativeHandle(n,()=>o,[o]),q.createElement(Xn.Provider,{value:o},t)}function Un({title:e}){let{toolbarWidth:t}=K(),{styles:n}=H(),{visible:r}=Zn();return r?q.createElement(`div`,{role:`heading`,"aria-level":2,style:n.captionsTitleContainer,className:N(qn(`captions_container`),qn(`title_container`))},q.createElement(`div`,{className:qn(`title`),style:{...t?{[F(`toolbar_width`)]:`${t}px`}:null,...n.captionsTitle}},e)):null}function Wn({description:e}){let{descriptionTextAlign:t,descriptionMaxLines:n}=Vn(),{styles:r,labels:i}=H(),{visible:a}=Zn();return a?q.createElement(`div`,{style:r.captionsDescriptionContainer,className:N(qn(`captions_container`),qn(`description_container`))},q.createElement(`div`,{className:qn(`description`),style:{...t!==Jn.descriptionTextAlign||n!==Jn.descriptionMaxLines?{[F(`slide_description_text_align`)]:t,[F(`slide_description_max_lines`)]:n}:null,...r.captionsDescription},role:`paragraph`,"aria-roledescription":Ie(i,`Caption`)},typeof e==`string`?e.split(`
|
|
2
|
+
`).flatMap((e,t)=>[...t>0?[q.createElement(`br`,{key:t})]:[],e]):e)):null}function Gn(){let{visible:e,show:t,hide:n}=Zn(),{render:r}=H();return r.buttonCaptions?q.createElement(q.Fragment,null,r.buttonCaptions({visible:e,show:t,hide:n})):q.createElement(vn,{label:e?`Hide captions`:`Show captions`,icon:e?$n:er,renderIcon:e?r.iconCaptionsVisible:r.iconCaptionsHidden,onClick:e?n:t})}function Kn({augment:e,addModule:t}){e(({captions:e,render:{slideFooter:t,...n},toolbar:r,...i})=>{let a=Yn(e);return{render:{slideFooter:({slide:e})=>q.createElement(q.Fragment,null,t?.({slide:e}),e.title&&q.createElement(Un,{title:e.title}),e.description&&q.createElement(Wn,{description:e.description})),...n},toolbar:Qe(r,A,a.showToggle?q.createElement(Gn,null):null),captions:a,...i}}),t(L(A,Hn))}var q,qn,Jn,Yn,Xn,Zn,Qn,$n,er,tr=t((()=>{q=e(n(),1),Bn(),Ne(),qn=e=>P(`slide_${e}`),Jn={descriptionTextAlign:`start`,descriptionMaxLines:3,showToggle:!1,hidden:!1},Yn=e=>({...Jn,...e}),Xn=q.createContext(null),Zn=I(`useCaptions`,`CaptionsContext`,Xn),Qn=()=>q.createElement(q.Fragment,null,q.createElement(`path`,{strokeWidth:2,stroke:`currentColor`,strokeLinejoin:`round`,fill:`none`,d:`M3 5l18 0l0 14l-18 0l0-14z`}),q.createElement(`path`,{d:`M7 15h3c.55 0 1-.45 1-1v-1H9.5v.5h-2v-3h2v.5H11v-1c0-.55-.45-1-1-1H7c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1zm7 0h3c.55 0 1-.45 1-1v-1h-1.5v.5h-2v-3h2v.5H18v-1c0-.55-.45-1-1-1h-3c-.55 0-1 .45-1 1v4c0 .55.45 1 1 1z`})),$n=z(`CaptionsVisible`,Qn()),er=mt(`CaptionsVisible`,Qn())}));function nr({counter:e}){let{slides:t,currentIndex:n}=U(),{separator:r,container:{className:i,...a},className:o,...s}=or(e);return t.length===0?null:ir.createElement(`div`,{className:N(P(`counter`),i||o),...s,...a,"aria-hidden":!0},n+1,` `,r,` `,t.length)}function rr({augment:e,addChild:t}){e(({counter:e,...t})=>({counter:or(e),...t})),t(w,L(ee,nr))}var ir,ar,or,sr=t((()=>{ir=e(n(),1),Bn(),Ne(),ar={separator:`/`,container:{}},or=e=>({...ar,...e})}));function cr(e){if(!e)return;let t=/filename\*\s*=\s*UTF-8''([^;]+)/i.exec(e);if(t)try{let e=decodeURIComponent(t[1].trim());if(e)return e}catch{}return/filename\s*=\s*("[^"]*"|[^;]+)/i.exec(e)?.[1].trim().replace(/^"(.*)"$/,`$1`)||void 0}function lr(e){return/^content-disposition:(.*)$/im.exec(e.getAllResponseHeaders())?.[1]??null}function ur(e,t){let n=new XMLHttpRequest;n.open(`GET`,e),n.responseType=`blob`,n.onload=()=>{pr(n.response,t||cr(lr(n)))},n.onerror=()=>{console.error(`Failed to download file`)},n.send()}function dr(e){let t=new XMLHttpRequest;t.open(`HEAD`,e,!1);try{t.send()}catch{}return t.status>=200&&t.status<=299}function fr(e){try{e.dispatchEvent(new MouseEvent(`click`))}catch{let t=document.createEvent(`MouseEvents`);t.initMouseEvent(`click`,!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),e.dispatchEvent(t)}}function pr(e,t){let n=document.createElement(`a`);n.rel=`noopener`,n.download=t||``,n.download||(n.target=`_blank`),typeof e==`string`?(n.href=e,n.origin===window.location.origin?fr(n):dr(n.href)?ur(e,t):(n.target=`_blank`,fr(n))):(n.href=URL.createObjectURL(e),setTimeout(()=>URL.revokeObjectURL(n.href),3e4),setTimeout(()=>fr(n),0))}function mr(){let{render:e,on:t,download:n}=H(),{download:r}=vr(n),{currentSlide:i,currentIndex:a}=U();if(e.buttonDownload)return gr.createElement(gr.Fragment,null,e.buttonDownload());let o=i&&(i.downloadUrl||typeof i.download==`string`&&i.download||typeof i.download==`object`&&i.download.url||Ve(i)&&i.src)||void 0,s=r?i?.download!==!1:!!o,c=()=>{if(i&&o){let e=i.downloadFilename||typeof i.download==`object`&&i.download.filename||void 0;pr(o,e)}};return gr.createElement(vn,{label:`Download`,icon:yr,renderIcon:e.iconDownload,disabled:!s,onClick:()=>{var e;i&&((r||c)({slide:i,saveAs:pr}),(e=t.download)==null||e.call(t,{index:a}))}})}function hr({augment:e}){e(({toolbar:e,download:t,...n})=>({toolbar:Qe(e,j,gr.createElement(mr,null)),download:vr(t),...n}))}var gr,_r,vr,yr,br=t((()=>{gr=e(n(),1),Bn(),Ne(),_r={download:void 0},vr=e=>({..._r,...e}),yr=z(`DownloadIcon`,gr.createElement(`path`,{d:`M18 15v3H6v-3H4v3c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2v-3h-2zm-1-4-1.41-1.41L13 12.17V4h-2v8.17L8.41 9.59 7 11l5 5 5-5z`}))}));function xr({fullscreen:e,on:t,children:n}){let{auto:r,ref:i}=Tr(e),a=J.useRef(null),[o,s]=J.useState(),[c,l]=J.useState(!1),u=J.useRef(!1),{getOwnerDocument:d}=sn();W(()=>{let e=d();s(!(e.fullscreenEnabled??e.webkitFullscreenEnabled??e.mozFullScreenEnabled??e.msFullscreenEnabled??!1))},[d]);let f=J.useCallback(()=>{let e=d(),t=e.fullscreenElement||e.webkitFullscreenElement||e.mozFullScreenElement||e.msFullscreenElement;return t?.shadowRoot?.fullscreenElement||t},[d]),p=J.useCallback(()=>{let e=a.current;try{e.requestFullscreen?e.requestFullscreen().catch(()=>{}):e.webkitRequestFullscreen?e.webkitRequestFullscreen():e.mozRequestFullScreen?e.mozRequestFullScreen():e.msRequestFullscreen&&e.msRequestFullscreen()}catch{}},[]),m=J.useCallback(()=>{if(!f())return;let e=d();try{e.exitFullscreen?e.exitFullscreen().catch(()=>{}):e.webkitExitFullscreen?e.webkitExitFullscreen():e.mozCancelFullScreen?e.mozCancelFullScreen():e.msExitFullscreen&&e.msExitFullscreen()}catch{}},[f,d]);J.useEffect(()=>{let e=d(),t=()=>{l(f()===a.current)};return Re(...[`fullscreenchange`,`webkitfullscreenchange`,`mozfullscreenchange`,`MSFullscreenChange`].map(n=>(e.addEventListener(n,t),()=>e.removeEventListener(n,t))))},[f,d]);let h=B(()=>t.enterFullscreen?.call(t)),g=B(()=>t.exitFullscreen?.call(t));J.useEffect(()=>{c&&(u.current=!0),u.current&&(c?h:g)()},[c,h,g]);let _=B(()=>{var e;return(e=r?p:null)==null||e(),m});J.useEffect(_,[_]);let v=J.useMemo(()=>({fullscreen:c,disabled:o,enter:p,exit:m}),[c,o,p,m]);return J.useImperativeHandle(i,()=>v,[v]),J.createElement(`div`,{ref:a,className:N(P(M),P(ce))},J.createElement(Er.Provider,{value:v},n))}function Sr(){let{fullscreen:e,disabled:t,enter:n,exit:r}=Dr(),{render:i}=H();return t?null:i.buttonFullscreen?J.createElement(J.Fragment,null,i.buttonFullscreen?.call(i,{fullscreen:e,disabled:t,enter:n,exit:r})):J.createElement(vn,{disabled:t,label:e?`Exit Fullscreen`:`Enter Fullscreen`,icon:e?kr:Or,renderIcon:e?i.iconExitFullscreen:i.iconEnterFullscreen,onClick:e?r:n})}function Cr({augment:e,contains:t,addParent:n}){e(({fullscreen:e,toolbar:t,...n})=>({toolbar:Qe(t,M,J.createElement(Sr,null)),fullscreen:Tr(e),...n})),n(t(`thumbnails`)?te:w,L(M,xr))}var J,wr,Tr,Er,Dr,Or,kr,Ar=t((()=>{J=e(n(),1),Bn(),Ne(),wr={auto:!1,ref:null},Tr=e=>({...wr,...e}),Er=J.createContext(null),Dr=I(`useFullscreen`,`FullscreenContext`,Er),Or=z(`EnterFullscreen`,J.createElement(`path`,{d:`M7 14H5v5h5v-2H7v-3zm-2-4h2V7h3V5H5v5zm12 7h-3v2h5v-5h-2v3zM14 5v2h3v3h2V5h-5z`})),kr=z(`ExitFullscreen`,J.createElement(`path`,{d:`M5 16h3v3h2v-5H5v2zm3-8H5v2h5V5H8v3zm6 11h2v-3h3v-2h-5v5zm2-11V5h-2v5h5V8h-3z`}))}));function jr(){let{thumbnails:e}=H();return Hr(e)}function Mr({slide:e,render:t,rect:n,imageFit:r}){let i=t.thumbnail?.call(t,{slide:e,render:t,rect:n,imageFit:r});if(i)return i;let a={render:t,rect:n,imageFit:r};if(e.thumbnail)return Y.createElement(Et,{slide:{src:e.thumbnail},...a});if(Ve(e))return Y.createElement(Et,{slide:e,...a});let o=P(X(Ae));return e.type===`video`?Y.createElement(Y.Fragment,null,e.poster&&Y.createElement(Et,{slide:{src:e.poster},...a}),Y.createElement(Wr,{className:o})):Y.createElement(Gr,{className:o})}function Nr({slide:e,index:t,onClick:n,fadeIn:r,fadeOut:i,placeholder:a,onLoseFocus:o}){let s=Y.useRef(null),{render:c,styles:l,labels:u}=H(),{slides:d,globalIndex:f}=U(),{getOwnerDocument:p}=sn(),{width:m,height:h,imageFit:g}=jr(),_={width:m,height:h},v=t===f,y=B(o);return Y.useEffect(()=>{i&&p().activeElement===s.current&&y()},[i,y,p]),Y.createElement(`button`,{ref:s,type:`button`,className:N(P(le),P(X()),v&&P(X(Kr())),r&&P(X(qr())),i&&P(X(Jr())),a&&P(X(Yr()))),style:{...r?{[F(X(qr(Zr)))]:`${r.duration}ms`,[F(X(qr(Xr)))]:`${r.delay}ms`}:null,...i?{[F(X(Jr(Zr)))]:`${i.duration}ms`,[F(X(Jr(Xr)))]:`${i.delay}ms`}:null,...l.thumbnail},onClick:n,"aria-current":v?!0:void 0,"aria-label":Le(u,d,t)},e&&Mr({slide:e,render:c,rect:_,imageFit:g}))}function Pr(e){return[`top`,`bottom`].includes(e)}function Fr(e,t){return t+2*(e.border+e.padding)+e.gap}function Ir(e){let{thumbnail:t,poster:n}=e||{thumbnail:`placeholder`};return typeof t==`string`&&t||typeof n==`string`&&n||e&&Ze(e)||void 0}function Lr({visible:e,containerRef:t}){let n=Y.useRef(null),r=Ct(),{publish:i,subscribe:a}=ln(),{carousel:o,styles:s,labels:c}=H(),{slides:l,globalIndex:u,animation:d}=U(),{registerSensors:f,subscribeSensors:p}=wt();Rt(p);let m=jr(),{position:h,width:g,height:_,border:v,borderStyle:y,borderColor:b,borderRadius:x,padding:S,gap:C,vignette:w}=m,T=d?.duration!==void 0&&d?.increment||0,E=d?.duration||0,{prepareAnimation:D}=_t(n,e=>({keyframes:Pr(h)?[{transform:`translateX(${(r?-1:1)*Fr(m,g)*T+e}px)`},{transform:`translateX(0)`}]:[{transform:`translateY(${Fr(m,_)*T+e}px)`},{transform:`translateY(0)`}],duration:E,easing:d?.easing})),O=B(()=>{let e=0;if(t.current&&n.current){let r=t.current.getBoundingClientRect(),i=n.current.getBoundingClientRect();e=Pr(h)?i.left-r.left-(r.width-i.width)/2:i.top-r.top-(r.height-i.height)/2}D(e)});Y.useEffect(()=>Re(a(ge,O)),[a,O]);let k=$e(o,l),A=[];if(Je(l))for(let e=u-k-Math.abs(T);e<=u+k+Math.abs(T);e+=1){let t=o.finite&&(e<0||e>l.length-1)||T<0&&e<u-k||T>0&&e>u+k?null:Ye(l,e),n=[`${e}`,Ir(t)].filter(Boolean).join(`|`);A.push({key:n,index:e,slide:t})}let ee=e=>()=>{e>u?i(he,{count:e-u}):e<u&&i(me,{count:u-e})};return Y.createElement(`div`,{className:N(P(Ur(`container`)),P(le)),style:{...e?null:{display:`none`},...g===Vr.width?null:{[F(X(`width`))]:`${g}px`},..._===Vr.height?null:{[F(X(`height`))]:`${_}px`},...v===Vr.border?null:{[F(X(`border`))]:`${v}px`},...y?{[F(X(`border_style`))]:y}:null,...b?{[F(X(`border_color`))]:b}:null,...x===Vr.borderRadius?null:{[F(X(`border_radius`))]:`${x}px`},...S===Vr.padding?null:{[F(X(`padding`))]:`${S}px`},...C===Vr.gap?null:{[F(X(`gap`))]:`${C}px`},...s.thumbnailsContainer}},Y.createElement(`nav`,{ref:n,style:s.thumbnailsTrack,className:N(P(Ur(`track`)),P(le)),"aria-label":Ie(c,`Thumbnails`),tabIndex:-1,...f},A.map(({key:e,index:t,slide:r})=>{let i=E/Math.abs(T||1),a=T>0&&t>u+k-T&&t<=u+k||T<0&&t<u-k-T&&t>=u-k?{duration:i,delay:((T>0?t-(u+k-T):u-k-T-t)-1)*i}:void 0,o=T>0&&t<u-k||T<0&&t>u+k?{duration:i,delay:(T>0?T-(u-k-t):-T-(t-(u+k)))*i}:void 0;return Y.createElement(Nr,{key:e,index:t,slide:r,fadeIn:a,fadeOut:o,placeholder:!r,onClick:ee(t),onLoseFocus:()=>n.current?.focus()})})),w&&Y.createElement(`div`,{className:P(Ur(`vignette`))}))}function Rr({children:e,...t}){let{ref:n,position:r,hidden:i}=Hr(t.thumbnails),[a,o]=Y.useState(!i),s=Y.useRef(null),c=Y.useMemo(()=>({visible:a,show:()=>o(!0),hide:()=>o(!1)}),[a]);return Y.useImperativeHandle(n,()=>c,[c]),Y.createElement(ct,{...t},Y.createElement(Qr.Provider,{value:c},Y.createElement(`div`,{ref:s,className:N(P(Ur()),P(Ur(`${r}`)))},[`start`,`top`].includes(r)&&Y.createElement(Lr,{containerRef:s,visible:a}),Y.createElement(`div`,{className:P(Ur(`wrapper`))},e),[`end`,`bottom`].includes(r)&&Y.createElement(Lr,{containerRef:s,visible:a}))))}function zr(){let{visible:e,show:t,hide:n}=$r(),{render:r}=H();return r.buttonThumbnails?Y.createElement(Y.Fragment,null,r.buttonThumbnails({visible:e,show:t,hide:n})):Y.createElement(vn,{label:e?`Hide thumbnails`:`Show thumbnails`,icon:e?ti:ni,renderIcon:e?r.iconThumbnailsVisible:r.iconThumbnailsHidden,onClick:e?n:t})}function Br({augment:e,contains:t,append:n,addParent:r}){e(({thumbnails:e,toolbar:t,...n})=>{let r=Hr(e);return{toolbar:Qe(t,te,r.showToggle?Y.createElement(zr,null):null),thumbnails:r,...n}});let i=L(te,Rr);t(`fullscreen`)?n(M,i):r(w,i)}var Y,Vr,Hr,Ur,X,Wr,Gr,Kr,qr,Jr,Yr,Xr,Zr,Qr,$r,ei,ti,ni,ri=t((()=>{Y=e(n(),1),Bn(),Ne(),Vr={ref:null,position:`bottom`,width:120,height:80,border:1,borderRadius:4,padding:4,gap:16,imageFit:`contain`,vignette:!0,hidden:!1,showToggle:!1},Hr=e=>({...Vr,...e}),Ur=e=>Pe(te,e),X=e=>Ur(Pe(`thumbnail`,e)),Wr=z(`VideoThumbnail`,Y.createElement(`path`,{d:`M10 16.5l6-4.5-6-4.5v9zM12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm0 18c-4.41 0-8-3.59-8-8s3.59-8 8-8 8 3.59 8 8-3.59 8-8 8z`})),Gr=z(`UnknownThumbnail`,Y.createElement(`path`,{d:`M23 18V6c0-1.1-.9-2-2-2H3c-1.1 0-2 .9-2 2v12c0 1.1.9 2 2 2h18c1.1 0 2-.9 2-2zM8.5 12.5l2.5 3.01L14.5 11l4.5 6H5l3.5-4.5z`})),Kr=Fe(`active`),qr=Fe(`fadein`),Jr=Fe(`fadeout`),Yr=Fe(`placeholder`),Xr=`delay`,Zr=`duration`,Qr=Y.createContext(null),$r=I(`useThumbnails`,`ThumbnailsContext`,Qr),ei=()=>Y.createElement(Y.Fragment,null,Y.createElement(`path`,{strokeWidth:2,stroke:`currentColor`,strokeLinejoin:`round`,fill:`none`,d:`M3 5l18 0l0 14l-18 0l0-14z`}),Y.createElement(`path`,{d:`M5 14h4v3h-4zM10 14h4v3h-4zM15 14h4v3h-4z`})),ti=z(`ThumbnailsVisible`,ei()),ni=mt(`ThumbnailsHidden`,ei())}));function ii(e){return Math.min(Math.max(e,2**-52),1)}function ai(e){let{minZoom:t,...n}={...Si,...e};return{minZoom:ii(t),...n}}function oi(e,t,n,r){let i=Z.useRef(void 0),a=Z.useRef(void 0),{zoom:o}=H().animation,s=ht(),c=B(()=>{var c,l;if((c=i.current)==null||c.cancel(),i.current=void 0,a.current&&r?.current){try{i.current=(l=r.current).animate?.call(l,[{transform:a.current},{transform:`scale(${e}) translateX(${t}px) translateY(${n}px)`}],{duration:s?0:o??500,easing:i.current?`ease-out`:`ease-in-out`})}catch(e){console.error(e)}a.current=void 0,i.current&&(i.current.onfinish=()=>{i.current=void 0})}});return W(c,[e,t,n,c]),Z.useCallback(()=>{a.current=r?.current?window.getComputedStyle(r.current).transform:void 0},[r])}function si(e,t){let{on:n}=H(),r=B(()=>{var r;t||(r=n.zoom)==null||r.call(n,{zoom:e})});Z.useEffect(r,[e,r])}function ci(){let{zoom:e}=H();return ai(e)}function li(e,t){let n=typeof e==`function`?e(t)??Si.maxZoom:e;return Math.max(n,1)}function ui(e,t){let n={width:0,height:0},r={width:0,height:0},{currentSlide:i}=U(),{imageFit:a}=H().carousel,{maxZoomPixelRatio:o,maxZoom:s}=ci();if(e&&i){let s={...i,...t};if(Ve(s)){let t=He(s,a),i=Math.max(...(s.srcSet?.map(e=>e.width)||[]).concat(s.width?[s.width]:[])),c=Math.max(...(s.srcSet?.map(e=>e.height)||[]).concat(s.height?[s.height]:[]));i>0&&c>0&&e.width>0&&e.height>0&&(r=t?{width:Math.round(Math.min(i,e.width/e.height*c)),height:Math.round(Math.min(c,e.height/e.width*i))}:{width:i,height:c},r={width:r.width*o,height:r.height*o},n=t?{width:Math.min(e.width,r.width,i),height:Math.min(e.height,r.height,c)}:{width:Math.round(Math.min(e.width,e.height/c*i,i)),height:Math.round(Math.min(e.height,e.width/i*c,c))})}else e.width>0&&e.height>0&&(n=t&&t.width>0&&t.height>0?{width:Math.min(e.width,t.width),height:Math.min(e.height,t.height)}:{width:e.width,height:e.height})}let c=i&&n.width?Ve(i)?Math.max(Be(r.width/n.width,5),1):li(s,i):1;return{imageRect:n,maxZoom:c}}function di(e,t){return Math.hypot(e.clientX-t.clientX,e.clientY-t.clientY)}function fi(e,t,n=100,r=2){return e*Math.min(1+Math.abs(t/n),r)**Math.sign(t)}function pi(e,t,n,r,i,a,o,s,c){let l=Z.useRef([]),u=Z.useRef(0),d=Z.useRef(void 0),{globalIndex:f}=U(),{getOwnerWindow:p}=sn(),{containerRef:m,subscribeSensors:h}=K(),{keyboardMoveDistance:g,zoomInMultiplier:_,wheelZoomDistanceFactor:v,scrollToZoom:y,doubleTapDelay:b,doubleClickDelay:x,doubleClickMaxStops:S,pinchZoomDistanceFactor:C,pinchZoomV4:w}=ci(),T=Z.useCallback(e=>{if(m.current){let{pageX:t,pageY:n}=e,{scrollX:r,scrollY:i}=p(),{left:a,top:o,width:s,height:c}=m.current.getBoundingClientRect();return[t-a-r-s/2,n-o-i-c/2]}return[]},[m,p]),E=B(t=>{let{key:n,metaKey:r,ctrlKey:c}=t,l=r||c,u=()=>{t.preventDefault(),t.stopPropagation()};if(e>1){let e=(e,t)=>{u(),s(e,t)};n===`ArrowDown`?e(0,g):n===`ArrowUp`?e(0,-g):n===`ArrowLeft`?e(-g,0):n===`ArrowRight`&&e(g,0)}n===`+`||l&&n===`=`?(u(),i()):n===`-`||l&&n===`_`?(u(),a()):l&&n===`0`&&(u(),o(1))}),D=B(t=>{if((t.ctrlKey||y)&&Math.abs(t.deltaY)>Math.abs(t.deltaX)){t.stopPropagation(),o(fi(e,-t.deltaY,v),!0,...T(t));return}e>1&&(t.stopPropagation(),y||s(t.deltaX,t.deltaY))}),O=Z.useCallback(e=>{let t=l.current;t.splice(0,t.length,...t.filter(t=>t.pointerId!==e.pointerId))},[]),k=Z.useCallback(e=>{O(e),e.persist(),l.current.push(e)},[O]),A=B(r=>{let i=l.current;if(r.pointerType===`mouse`&&r.buttons>1||!(c?.current)?.contains(r.target))return;e>1&&r.stopPropagation();let{timeStamp:a}=r;if(i.length===0&&a-u.current<(r.pointerType===`touch`?b:x)?(u.current=0,o(e>=1?e===n?1:e*Math.max(n**(1/S),_):e===t?1:e/Math.max(t**(-1/S),_),!1,...T(r))):u.current=a,k(r),i.length===2){let t=di(i[0],i[1]);d.current={previousDistance:t,initialDistance:Math.max(t,1),initialZoom:e}}}),ee=B(t=>{let n=l.current,r=n.find(e=>e.pointerId===t.pointerId);if(n.length===2&&d.current){t.stopPropagation(),k(t);let r=di(n[0],n[1]);o(w?d.current.initialZoom/d.current.initialDistance*r:fi(e,r-d.current.previousDistance,C),!0,...n.map(e=>T(e)).reduce((e,t)=>t.map((t,n)=>e[n]+t/2))),d.current.previousDistance=r;return}e>1&&(t.stopPropagation(),r&&(n.length===1&&s((r.clientX-t.clientX)/e,(r.clientY-t.clientY)/e),k(t)))}),j=Z.useCallback(e=>{let t=l.current;t.length===2&&t.find(t=>t.pointerId===e.pointerId)&&(d.current=void 0),O(e)},[O]),M=Z.useCallback(()=>{let e=l.current;e.splice(0,e.length),u.current=0,d.current=void 0},[]);Dt(h,A,ee,j,r),Z.useEffect(M,[f,M]),Z.useEffect(()=>r?()=>{}:Re(M,h(Ce,E),h(Te,D)),[r,h,M,E,D])}function mi(e,t,n){let[r,i]=Z.useState(1),[a,o]=Z.useState(0),[s,c]=Z.useState(0),l=oi(r,a,s,n),{currentSlide:u,globalIndex:d}=U(),{containerRect:f,slideRect:p}=K(),{minZoom:m,zoomInMultiplier:h}=ci(),g=u&&Ve(u)?u.src:void 0,_=!n?.current;W(()=>{i(1),o(0),c(0)},[d,g]);let v=Z.useCallback((t,n,i)=>{let l=i||r,u=a-(t||0),d=s-(n||0),f=(e.width*l-p.width)/2/l,m=(e.height*l-p.height)/2/l;o(Math.min(Math.abs(u),Math.max(f,0))*Math.sign(u)),c(Math.min(Math.abs(d),Math.max(m,0))*Math.sign(d))},[r,a,s,p,e.width,e.height]),y=Z.useCallback((e,n,a,o)=>{let s=Be(e+.01<t?e-.01>m?e:m:t,5);n||l(),v(a?a*(1/r-1/s):0,o?o*(1/r-1/s):0,s),i(s)},[r,m,t,v,l]),b=B(()=>{r>1&&(r>t&&y(t,!0),v())});return W(b,[f.width,f.height,b]),{zoom:r,offsetX:a,offsetY:s,disabled:_,changeOffsets:v,changeZoom:y,zoomIn:Z.useCallback(()=>{let e=r*h;y(r<1&&e>1?1:e)},[r,h,y]),zoomOut:Z.useCallback(()=>{let e=r/h;y(r>1&&e<1?1:e)},[r,h,y])}}function hi({children:e}){let[t,n]=Z.useState(),{slideRect:r}=K(),{ref:i,minZoom:a}=ci(),{imageRect:o,maxZoom:s}=ui(r,t?.imageDimensions),{zoom:c,offsetX:l,offsetY:u,disabled:d,changeZoom:f,changeOffsets:p,zoomIn:m,zoomOut:h}=mi(o,s,t?.zoomWrapperRef);si(c,d),pi(c,a,s,d,m,h,f,p,t?.zoomWrapperRef);let g=Z.useMemo(()=>({zoom:c,minZoom:a,maxZoom:s,offsetX:l,offsetY:u,disabled:d,zoomIn:m,zoomOut:h,changeZoom:f}),[c,a,s,l,u,d,m,h,f]);Z.useImperativeHandle(i,()=>g,[g]);let _=Z.useMemo(()=>({...g,setZoomWrapper:n}),[g,n]);return Z.createElement(Ci.Provider,{value:_},e)}function gi(){let e=Z.useRef(null),t=Z.useRef(null),{focus:n}=K(),r=Z.useCallback(e=>{var t;e.current?.disabled?n():(t=e.current)==null||t.focus()},[n]),i=Z.useCallback(()=>r(e),[r]),a=Z.useCallback(()=>r(t),[r]);return Z.createElement(Z.Fragment,null,Z.createElement(Di,{zoomIn:!0,ref:e,onLoseFocus:a}),Z.createElement(Di,{ref:t,onLoseFocus:i}))}function _i(){let{render:e}=H(),t=wi();return e.buttonZoom?Z.createElement(Z.Fragment,null,e.buttonZoom(t)):Z.createElement(gi,null)}function vi(e){return(e.srcSet?.length||0)>0}function yi({current:e,preload:t},{type:n,source:r}){switch(n){case`fetch`:return e?{current:e,preload:r}:{current:r};case`done`:return r===t?{current:r}:{current:e,preload:t};default:throw Error(Me)}}function bi(e){let[{current:t,preload:n},r]=Z.useReducer(yi,{}),{slide:i,rect:a,imageFit:o,render:s,interactive:c}=e,l=i.srcSet.sort((e,t)=>e.width-t.width),u=i.width??l[l.length-1].width,d=i.height??l[l.length-1].height,f=He(i,o),p=Math.max(...l.map(e=>e.width)),m=Math.min((f?Math.max:Math.min)(a.width,u*(a.height/d)),p),h=Ke(),g=B(()=>{let e=l.find(e=>e.width>=m*h)??l[l.length-1];(!t||l.findIndex(e=>e.src===t)<l.findIndex(t=>t===e))&&r({type:`fetch`,source:e.src})});W(g,[a.width,a.height,h,g]);let _=B(e=>r({type:`done`,source:e})),v={WebkitTransform:c?`initial`:`translateZ(0)`};return f||Object.assign(v,a.width/a.height<u/d?{width:`100%`,height:`auto`}:{width:`auto`,height:`100%`}),Z.createElement(Z.Fragment,null,n&&n!==t&&Z.createElement(Et,{key:`preload`,...e,offset:void 0,slide:{...i,src:n,srcSet:void 0},style:{position:`absolute`,visibility:`hidden`,...v},onLoad:()=>_(n),render:{...s,iconLoading:()=>null,iconError:()=>null}}),t&&Z.createElement(Et,{key:`current`,...e,slide:{...i,src:t,srcSet:void 0},style:v}))}function xi({render:e,slide:t,offset:n,rect:r}){let[i,a]=Z.useState(),o=Z.useRef(null),s=Ve(t),{zoom:c,maxZoom:l,offsetX:u,offsetY:d,setZoomWrapper:f}=wi(),p=c>1,{carousel:m,on:h}=H(),{currentIndex:g}=U();W(()=>{if(n!==0||s||!o.current)return()=>{};let e=()=>{let e=o.current;if(!e)return;let t=0,n=0;for(let r of e.children)r instanceof HTMLElement&&(t=Math.max(t,r.offsetWidth),n=Math.max(n,r.offsetHeight));a(e=>e&&e.width===t&&e.height===n?e:{width:t,height:n})};if(e(),typeof ResizeObserver>`u`)return()=>{};let t=new ResizeObserver(e);for(let e of o.current.children)t.observe(e);return()=>t.disconnect()},[n,s,r]),W(()=>n===0?(f({zoomWrapperRef:o,imageDimensions:i}),()=>f(void 0)):()=>{},[n,i,f]);let _=e.slide?.call(e,{slide:t,offset:n,rect:r,zoom:c,maxZoom:l});if(!_&&s){let i={slide:t,offset:n,rect:r,render:e,imageFit:m.imageFit,imageProps:m.imageProps,onClick:n===0?()=>h.click?.call(h,{index:g}):void 0};_=vi(t)?Z.createElement(bi,{...i,slide:t,interactive:p,rect:n===0?{width:r.width*c,height:r.height*c}:r}):Z.createElement(Et,{onLoad:e=>a({width:e.naturalWidth,height:e.naturalHeight}),...i})}return _?Z.createElement(`div`,{ref:o,className:N(P(ce),P(le),P(pe),p&&P(`slide_wrapper_interactive`)),style:n===0?{transform:`scale(${c}) translateX(${u}px) translateY(${d}px)`}:void 0},_):null}var Z,Si,Ci,wi,Ti,Ei,Di,Oi,ki=t((()=>{Z=e(n(),1),Bn(),Ne(),Si={minZoom:1,maxZoomPixelRatio:1,zoomInMultiplier:2,doubleTapDelay:300,doubleClickDelay:500,doubleClickMaxStops:2,keyboardMoveDistance:50,wheelZoomDistanceFactor:100,pinchZoomDistanceFactor:100,pinchZoomV4:!1,scrollToZoom:!1,maxZoom:8},Ci=Z.createContext(null),wi=I(`useZoom`,`ZoomControllerContext`,Ci),Ti=z(`ZoomIn`,Z.createElement(Z.Fragment,null,Z.createElement(`path`,{d:`M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14z`}),Z.createElement(`path`,{d:`M12 10h-2v2H9v-2H7V9h2V7h1v2h2v1z`}))),Ei=z(`ZoomOut`,Z.createElement(`path`,{d:`M15.5 14h-.79l-.28-.27C15.41 12.59 16 11.11 16 9.5 16 5.91 13.09 3 9.5 3S3 5.91 3 9.5 5.91 16 9.5 16c1.61 0 3.09-.59 4.23-1.57l.27.28v.79l5 4.99L20.49 19l-4.99-5zm-6 0C7.01 14 5 11.99 5 9.5S7.01 5 9.5 5 14 7.01 14 9.5 11.99 14 9.5 14zM7 9h5v1H7z`})),Di=Z.forwardRef(function({zoomIn:e,onLoseFocus:t},n){let r=Z.useRef(!1),i=Z.useRef(!1),{zoom:a,minZoom:o,maxZoom:s,zoomIn:c,zoomOut:l,disabled:u}=wi(),{render:d}=H(),f=u||(e?a>=s:a<=o);return Z.useEffect(()=>{f&&r.current&&i.current&&t(),f||(r.current=!0)},[f,t]),Z.createElement(vn,{ref:n,disabled:f,label:e?`Zoom in`:`Zoom out`,icon:e?Ti:Ei,renderIcon:e?d.iconZoomIn:d.iconZoomOut,onClick:e?c:l,onFocus:()=>{i.current=!0},onBlur:()=>{i.current=!1}})}),Oi=({augment:e,addModule:t})=>{e(({zoom:e,toolbar:t,render:n,controller:r,...i})=>{let a=ai(e);return{zoom:a,toolbar:Qe(t,ne,Z.createElement(_i,null)),render:{...n,slide:e=>Ve(e.slide)||e.slide.type!=null&&a.supports?.includes(e.slide.type)?Z.createElement(xi,{render:n,...e}):n.slide?.call(n,e)},controller:{...r,preventDefaultWheelY:a.scrollToZoom},...i}}),t(L(ne,hi))}}));function Ai(e){return Number.isFinite(e)&&e>0}function ji(e,t){let n=e.width===void 0?e.density===void 0?0:t*e.density:e.width;return Ai(n)?Math.round(n):null}function Mi(e){let{intrinsicWidth:t,intrinsicHeight:n}=e;if(t===void 0||n===void 0||!Ai(t)||!Ai(n))return;let r=new Map;for(let i of e.candidates??[]){let e=ji(i,t);e===null||r.has(e)||r.set(e,{src:i.src,width:e,height:Math.max(1,Math.round(e*n/t))})}let i=[...r.values()].sort((e,t)=>e.width-t.width);return i.length>0?i:void 0}function Ni(e){return e.map(e=>{let t=Ai(e.intrinsicWidth??0)&&Ai(e.intrinsicHeight??0);return{src:e.src,alt:e.alt,width:t?e.intrinsicWidth:void 0,height:t?e.intrinsicHeight:void 0,srcSet:Mi(e),title:e.title===void 0?e.alt:e.title,description:e.description,thumbnail:e.thumbnail,download:e.download}})}var Pi=t((()=>{}));function Fi(e){let t={...Ii,...e};return{Previous:t.previous,Next:t.next,Close:t.close,Slide:t.slide,Carousel:t.carousel,Lightbox:t.lightbox,"Photo gallery":t.photoGallery,"{index} of {total}":t.slideCounter,"Zoom in":t.zoomIn,"Zoom out":t.zoomOut,"Enter Fullscreen":t.enterFullscreen,"Exit Fullscreen":t.exitFullscreen,Thumbnails:t.thumbnails,"Show thumbnails":t.showThumbnails,"Hide thumbnails":t.hideThumbnails,Caption:t.caption,"Show captions":t.showCaptions,"Hide captions":t.hideCaptions,Download:t.download}}var Ii,Li=t((()=>{Ii={previous:`Предыдущее изображение`,next:`Следующее изображение`,close:`Закрыть просмотр`,slide:`Изображение`,carousel:`Карусель изображений`,lightbox:`Просмотр изображений`,photoGallery:`Галерея изображений`,slideCounter:`{index} из {total}`,zoomIn:`Увеличить`,zoomOut:`Уменьшить`,enterFullscreen:`Перейти в полноэкранный режим`,exitFullscreen:`Выйти из полноэкранного режима`,thumbnails:`Миниатюры`,showThumbnails:`Показать миниатюры`,hideThumbnails:`Скрыть миниатюры`,caption:`Подпись изображения`,showCaptions:`Показать подписи`,hideCaptions:`Скрыть подписи`,download:`Скачать изображение`}})),Ri=t((()=>{})),zi=t((()=>{})),Bi=t((()=>{})),Vi=t((()=>{})),Hi,Ui,Wi,Gi,Q,Ki=t((()=>{Hi=`acj1dM`,Ui=`jt3y3m`,Wi=`_2SAWIU`,Gi=`_1GqI3h`,Q={viewer:Hi,icon:Ui,loadingIcon:Wi,imageViewerSpin:Gi}}));function qi({open:e,images:t,index:n=0,onClose:r,onIndexChange:i,features:o,loop:y=!1,closeOnBackdropClick:x=!0,closeOnPullDown:S=!0,labels:C,className:w,style:T}){let E=(0,Ji.useMemo)(()=>Ni(t),[t]),D=Number.isFinite(n)?Math.trunc(n):0,O=E.length>0?Math.min(Math.max(D,0),E.length-1):0,k=t.some(e=>(e.title===void 0?e.alt:e.title)!=null||e.description!==void 0&&e.description!==null),A=o?.captions??k,ee=o?.counter??E.length>1,j=o?.download??!1,M=o?.fullscreen??!0,te=o?.thumbnails??E.length>1,ne=o?.zoom??!0,re=(0,Ji.useMemo)(()=>[...A?[Kn]:[],...ee?[rr]:[],...j?[hr]:[],...M?[Cr]:[],...te?[Br]:[],...ne?[Oi]:[]],[A,ee,j,M,te,ne]),ie=(0,Ji.useMemo)(()=>Fi(C),[C]);return(0,$.jsx)(Qt,{open:e&&E.length>0,close:r,index:O,slides:E,plugins:re,className:a(Q.viewer,w),portal:{container:{style:T}},labels:ie,carousel:{finite:!y},controller:{closeOnBackdropClick:x,closeOnPullDown:S},captions:{showToggle:!0},counter:{separator:` / `},thumbnails:{showToggle:!0},download:{download:({slide:e,saveAs:t})=>{if(!(!Ve(e)||e.download===!1)){if(typeof e.download==`string`){t(e.download);return}if(typeof e.download==`object`){t(e.download.url,e.download.filename);return}t(e.src)}}},on:{view:({index:e})=>{e!==O&&i?.(e)}},render:{iconPrev:()=>(0,$.jsx)(h,{"aria-hidden":`true`,className:Q.icon}),iconNext:()=>(0,$.jsx)(b,{"aria-hidden":`true`,className:Q.icon}),iconClose:()=>(0,$.jsx)(v,{"aria-hidden":`true`,className:Q.icon}),iconLoading:()=>(0,$.jsx)(l,{"aria-hidden":`true`,className:a(Q.icon,Q.loadingIcon)}),iconError:()=>(0,$.jsx)(s,{"aria-hidden":`true`,className:Q.icon}),iconZoomIn:()=>(0,$.jsx)(g,{"aria-hidden":`true`,className:Q.icon}),iconZoomOut:()=>(0,$.jsx)(_,{"aria-hidden":`true`,className:Q.icon}),iconEnterFullscreen:()=>(0,$.jsx)(p,{"aria-hidden":`true`,className:Q.icon}),iconExitFullscreen:()=>(0,$.jsx)(d,{"aria-hidden":`true`,className:Q.icon}),iconThumbnailsVisible:()=>(0,$.jsx)(m,{"aria-hidden":`true`,className:Q.icon}),iconThumbnailsHidden:()=>(0,$.jsx)(m,{"aria-hidden":`true`,className:Q.icon}),iconCaptionsVisible:()=>(0,$.jsx)(c,{"aria-hidden":`true`,className:Q.icon}),iconCaptionsHidden:()=>(0,$.jsx)(f,{"aria-hidden":`true`,className:Q.icon}),iconDownload:()=>(0,$.jsx)(u,{"aria-hidden":`true`,className:Q.icon})}})}var Ji,$,Yi=t((()=>{Ji=e(n(),1),o(),y(),Bn(),tr(),sr(),br(),Ar(),ri(),ki(),Pi(),Li(),Ri(),zi(),Bi(),Vi(),Ki(),$=i(),qi.__docgenInfo={description:`Управляемый полноэкранный viewer поверх Yet Another React Lightbox.
|
|
3
|
+
Компонент изолирует внешний API, сохраняет безопасный для SSR первый render и принимает тот же
|
|
4
|
+
независимый от хранилища responsive-контракт, что ImageView. Визуальные настройки публикуются только как \`--image-viewer-*\`.`,methods:[],displayName:`ImageViewer`,props:{open:{required:!0,tsType:{name:`boolean`},description:``},images:{required:!0,tsType:{name:`unknown`},description:``},index:{required:!1,tsType:{name:`number`},description:``,defaultValue:{value:`0`,computed:!1}},onClose:{required:!0,tsType:{name:`signature`,type:`function`,raw:`() => void`,signature:{arguments:[],return:{name:`void`}}},description:``},onIndexChange:{required:!1,tsType:{name:`signature`,type:`function`,raw:`(index: number) => void`,signature:{arguments:[{type:{name:`number`},name:`index`}],return:{name:`void`}}},description:``},features:{required:!1,tsType:{name:`signature`,type:`object`,raw:`{
|
|
5
|
+
readonly captions?: boolean;
|
|
6
|
+
readonly counter?: boolean;
|
|
7
|
+
readonly download?: boolean;
|
|
8
|
+
readonly fullscreen?: boolean;
|
|
9
|
+
readonly thumbnails?: boolean;
|
|
10
|
+
readonly zoom?: boolean;
|
|
11
|
+
}`,signature:{properties:[{key:`captions`,value:{name:`boolean`,required:!1}},{key:`counter`,value:{name:`boolean`,required:!1}},{key:`download`,value:{name:`boolean`,required:!1}},{key:`fullscreen`,value:{name:`boolean`,required:!1}},{key:`thumbnails`,value:{name:`boolean`,required:!1}},{key:`zoom`,value:{name:`boolean`,required:!1}}]}},description:``},loop:{required:!1,tsType:{name:`boolean`},description:``,defaultValue:{value:`false`,computed:!1}},closeOnBackdropClick:{required:!1,tsType:{name:`boolean`},description:``,defaultValue:{value:`true`,computed:!1}},closeOnPullDown:{required:!1,tsType:{name:`boolean`},description:``,defaultValue:{value:`true`,computed:!1}},labels:{required:!1,tsType:{name:`Partial`,elements:[{name:`signature`,type:`object`,raw:`{
|
|
12
|
+
readonly previous: string;
|
|
13
|
+
readonly next: string;
|
|
14
|
+
readonly close: string;
|
|
15
|
+
readonly slide: string;
|
|
16
|
+
readonly carousel: string;
|
|
17
|
+
readonly lightbox: string;
|
|
18
|
+
readonly photoGallery: string;
|
|
19
|
+
readonly slideCounter: string;
|
|
20
|
+
readonly zoomIn: string;
|
|
21
|
+
readonly zoomOut: string;
|
|
22
|
+
readonly enterFullscreen: string;
|
|
23
|
+
readonly exitFullscreen: string;
|
|
24
|
+
readonly thumbnails: string;
|
|
25
|
+
readonly showThumbnails: string;
|
|
26
|
+
readonly hideThumbnails: string;
|
|
27
|
+
readonly caption: string;
|
|
28
|
+
readonly showCaptions: string;
|
|
29
|
+
readonly hideCaptions: string;
|
|
30
|
+
readonly download: string;
|
|
31
|
+
}`,signature:{properties:[{key:`previous`,value:{name:`string`,required:!0}},{key:`next`,value:{name:`string`,required:!0}},{key:`close`,value:{name:`string`,required:!0}},{key:`slide`,value:{name:`string`,required:!0}},{key:`carousel`,value:{name:`string`,required:!0}},{key:`lightbox`,value:{name:`string`,required:!0}},{key:`photoGallery`,value:{name:`string`,required:!0}},{key:`slideCounter`,value:{name:`string`,required:!0}},{key:`zoomIn`,value:{name:`string`,required:!0}},{key:`zoomOut`,value:{name:`string`,required:!0}},{key:`enterFullscreen`,value:{name:`string`,required:!0}},{key:`exitFullscreen`,value:{name:`string`,required:!0}},{key:`thumbnails`,value:{name:`string`,required:!0}},{key:`showThumbnails`,value:{name:`string`,required:!0}},{key:`hideThumbnails`,value:{name:`string`,required:!0}},{key:`caption`,value:{name:`string`,required:!0}},{key:`showCaptions`,value:{name:`string`,required:!0}},{key:`hideCaptions`,value:{name:`string`,required:!0}},{key:`download`,value:{name:`string`,required:!0}}]}}],raw:`Partial<ImageViewerLabels>`},description:``},className:{required:!1,tsType:{name:`string`},description:``},style:{required:!1,tsType:{name:`intersection`,raw:`CSSProperties & Partial<Record<ImageViewerCssVariable, string | number>>`,elements:[{name:`CSSProperties`},{name:`Partial`,elements:[{name:`Record`,elements:[{name:`union`,raw:`| "--image-viewer-z-index"
|
|
32
|
+
| "--image-viewer-backdrop"
|
|
33
|
+
| "--image-viewer-control-color"
|
|
34
|
+
| "--image-viewer-control-active-color"
|
|
35
|
+
| "--image-viewer-control-disabled-color"
|
|
36
|
+
| "--image-viewer-control-background"
|
|
37
|
+
| "--image-viewer-control-border"
|
|
38
|
+
| "--image-viewer-control-radius"
|
|
39
|
+
| "--image-viewer-control-filter"
|
|
40
|
+
| "--image-viewer-icon-size"
|
|
41
|
+
| "--image-viewer-icon-stroke-width"
|
|
42
|
+
| "--image-viewer-toolbar-padding"
|
|
43
|
+
| "--image-viewer-focus"
|
|
44
|
+
| "--image-viewer-focus-offset"
|
|
45
|
+
| "--image-viewer-image-radius"
|
|
46
|
+
| "--image-viewer-caption-background"
|
|
47
|
+
| "--image-viewer-caption-color"
|
|
48
|
+
| "--image-viewer-counter-color"
|
|
49
|
+
| "--image-viewer-thumbnail-background"
|
|
50
|
+
| "--image-viewer-thumbnail-border-color"
|
|
51
|
+
| "--image-viewer-thumbnail-active-border-color"
|
|
52
|
+
| "--image-viewer-loading-color"
|
|
53
|
+
| "--image-viewer-error-color"`,elements:[{name:`literal`,value:`"--image-viewer-z-index"`},{name:`literal`,value:`"--image-viewer-backdrop"`},{name:`literal`,value:`"--image-viewer-control-color"`},{name:`literal`,value:`"--image-viewer-control-active-color"`},{name:`literal`,value:`"--image-viewer-control-disabled-color"`},{name:`literal`,value:`"--image-viewer-control-background"`},{name:`literal`,value:`"--image-viewer-control-border"`},{name:`literal`,value:`"--image-viewer-control-radius"`},{name:`literal`,value:`"--image-viewer-control-filter"`},{name:`literal`,value:`"--image-viewer-icon-size"`},{name:`literal`,value:`"--image-viewer-icon-stroke-width"`},{name:`literal`,value:`"--image-viewer-toolbar-padding"`},{name:`literal`,value:`"--image-viewer-focus"`},{name:`literal`,value:`"--image-viewer-focus-offset"`},{name:`literal`,value:`"--image-viewer-image-radius"`},{name:`literal`,value:`"--image-viewer-caption-background"`},{name:`literal`,value:`"--image-viewer-caption-color"`},{name:`literal`,value:`"--image-viewer-counter-color"`},{name:`literal`,value:`"--image-viewer-thumbnail-background"`},{name:`literal`,value:`"--image-viewer-thumbnail-border-color"`},{name:`literal`,value:`"--image-viewer-thumbnail-active-border-color"`},{name:`literal`,value:`"--image-viewer-loading-color"`},{name:`literal`,value:`"--image-viewer-error-color"`}]},{name:`union`,raw:`string | number`,elements:[{name:`string`},{name:`number`}]}],raw:`Record<ImageViewerCssVariable, string | number>`}],raw:`Partial<Record<ImageViewerCssVariable, string | number>>`}]},description:``}}}}));function Xi(e,t,n=`webp`){return`https://images.unsplash.com/${e}?auto=format&fit=crop&w=${t}&fm=${n}&q=80`}var Zi,Qi,$i,ea,ta,na,ra,ia,aa;t((()=>{Zi=e(n(),1),S(),Yi(),Qi=i(),$i=[`photo-1500530855697-b586d89ba3ee`,`photo-1441974231531-c6227db76b6e`,`photo-1470252649378-9c29740c9fa8`],ea=$i.map((e,t)=>({src:Xi(e,1600),alt:`Природный пейзаж ${t+1}`,title:`Изображение ${t+1}`,description:`Responsive slide с миниатюрой, zoom, fullscreen и доступной русской навигацией.`,thumbnail:Xi(e,240),intrinsicWidth:1600,intrinsicHeight:900,candidates:[640,1280,1600].map(t=>({src:Xi(e,t),width:t})),sources:[{type:`image/avif`,candidates:[640,1280,1600].map(t=>({src:Xi(e,t,`avif`),width:t}))}],download:{url:Xi(e,2e3,`jpg`),filename:`landscape-${t+1}.jpg`}})),ta={"--image-viewer-backdrop":`rgb(8 14 28 / 96%)`,"--image-viewer-control-active-color":`#7dd3fc`,"--image-viewer-thumbnail-active-border-color":`#7dd3fc`,"--image-viewer-caption-background":`rgb(8 14 28 / 72%)`},na={title:`Shared/UI/Image/ImageViewer`,component:qi,args:{open:!1,images:ea,onClose:()=>void 0},parameters:{layout:`centered`}},ra={render:e=>{let[t,n]=(0,Zi.useState)(!1),[r,i]=(0,Zi.useState)(0);return(0,Qi.jsxs)(Qi.Fragment,{children:[(0,Qi.jsx)(x,{onClick:()=>n(!0),children:`Открыть галерею`}),(0,Qi.jsx)(qi,{...e,open:t,index:r,onClose:()=>n(!1),onIndexChange:i,features:{download:!0},style:ta})]})}},ia={render:e=>{let[t,n]=(0,Zi.useState)(!1);return(0,Qi.jsxs)(Qi.Fragment,{children:[(0,Qi.jsx)(x,{onClick:()=>n(!0),children:`Открыть одно изображение`}),(0,Qi.jsx)(qi,{...e,open:t,images:ea.slice(0,1),onClose:()=>n(!1)})]})}},ra.parameters={...ra.parameters,docs:{...ra.parameters?.docs,source:{originalSource:`{
|
|
54
|
+
render: args => {
|
|
55
|
+
const [open, setOpen] = useState(false);
|
|
56
|
+
const [index, setIndex] = useState(0);
|
|
57
|
+
return <>
|
|
58
|
+
<Button onClick={() => setOpen(true)}>Открыть галерею</Button>
|
|
59
|
+
<ImageViewer {...args} open={open} index={index} onClose={() => setOpen(false)} onIndexChange={setIndex} features={{
|
|
60
|
+
download: true
|
|
61
|
+
}} style={CUSTOM_STYLE} />
|
|
62
|
+
</>;
|
|
63
|
+
}
|
|
64
|
+
}`,...ra.parameters?.docs?.source}}},ia.parameters={...ia.parameters,docs:{...ia.parameters?.docs,source:{originalSource:`{
|
|
65
|
+
render: args => {
|
|
66
|
+
const [open, setOpen] = useState(false);
|
|
67
|
+
return <>
|
|
68
|
+
<Button onClick={() => setOpen(true)}>Открыть одно изображение</Button>
|
|
69
|
+
<ImageViewer {...args} open={open} images={IMAGES.slice(0, 1)} onClose={() => setOpen(false)} />
|
|
70
|
+
</>;
|
|
71
|
+
}
|
|
72
|
+
}`,...ia.parameters?.docs?.source}}},aa=[`ResponsiveGallery`,`SingleImage`]}))();export{ra as ResponsiveGallery,ia as SingleImage,aa as __namedExportsOrder,na as default};
|
|
@@ -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-Be6sd6Mi.js";import{t as d}from"./jsx-runtime-BBQGix-2.js";import{t as f}from"./mdx-react-shim-Be8o0WOk.js";import{NumberControlled as p,PatternValidation as m,TextControlled as h,WithError as g,n as _,t as v}from"./Input.stories-BmsoCBN4.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.
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import{c as e,i as t}from"./preload-helper-B45gAKPr.js";import{C as n}from"./iframe-Dw3PG8YA.js";import{t as r}from"./jsx-runtime-BBQGix-2.js";import{a as i,i as a}from"./utils-CnV3Gszu.js";import{o,t as s}from"./lucide-react-DMM2-ayk.js";import{M as c,t as l}from"./formatters-BaQpdAeu.js";import{n as u,t as d}from"./ui.module-wFHXkJzp.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
|
+
При несоответствии поле подсвечивается как невалидное, но текст не удаляется.
|
|
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{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-Dw3PG8YA.js";import{t as i}from"./jsx-runtime-BBQGix-2.js";import{a,c as o,i as s}from"./Input-DD9fx2Sx.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-Be6sd6Mi.js";import{t as d}from"./jsx-runtime-BBQGix-2.js";import{t as f}from"./mdx-react-shim-Be8o0WOk.js";import{CustomMask as p,DateAndTime as m,DateOnly as h,TimeOnly as g,n as _,t as v}from"./InputDateTime.stories-BhjQejJD.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-Dw3PG8YA.js";import{t as i}from"./jsx-runtime-BBQGix-2.js";import{a,i as o}from"./utils-CnV3Gszu.js";import{n as s,t as c}from"./ui.module-wFHXkJzp.js";import{n as l,o as u,r as d,u as f}from"./Input-DD9fx2Sx.js";import{t as p}from"./input-Cv9ps4La.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-Be6sd6Mi.js";import{t as d}from"./jsx-runtime-BBQGix-2.js";import{t as f}from"./mdx-react-shim-Be8o0WOk.js";import{ArrayBufferMode as p,Controlled as m,WithInitialValue as h,n as g,t as _}from"./InputFile.stories-BIJaIWlj.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-QbTuArh1.js → InputFile.stories-BIJaIWlj.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-Dw3PG8YA.js";import{t as i}from"./jsx-runtime-BBQGix-2.js";import{a,i as o,n as s}from"./utils-CnV3Gszu.js";import{n as c,t as l}from"./ui.module-wFHXkJzp.js";import{n as u,o as d,r as f,u as p}from"./Input-DD9fx2Sx.js";import{t as m}from"./input-Cv9ps4La.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,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-Be6sd6Mi.js";import{t as d}from"./jsx-runtime-BBQGix-2.js";import{t as f}from"./mdx-react-shim-Be8o0WOk.js";import{Controlled as p,LimitReached as m,WithInitialFiles as h,n as g,t as _}from"./InputFiles.stories-CVr0ENgC.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.
|
|
@@ -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-Dw3PG8YA.js";import{t as r}from"./jsx-runtime-BBQGix-2.js";import{a as i,i as a,n as o}from"./utils-CnV3Gszu.js";import{o as s,t as c}from"./lucide-react-DMM2-ayk.js";import{n as l,t as u}from"./ui.module-wFHXkJzp.js";import{o as d,r as f,u as p}from"./Input-DD9fx2Sx.js";import{t as m}from"./input-Cv9ps4La.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};
|
package/storybook-static/assets/{InputFiles.stories-PD0pr8y6.js → InputFiles.stories-CVr0ENgC.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-Dw3PG8YA.js";import{t as i}from"./jsx-runtime-BBQGix-2.js";import{n as a,t as o}from"./InputFiles-ZK4wdii7.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-Be6sd6Mi.js";import{t as d}from"./jsx-runtime-BBQGix-2.js";import{t as f}from"./mdx-react-shim-Be8o0WOk.js";import{ArrayBufferMode as p,Controlled as m,WithInitialImage as h,n as g,t as _}from"./InputImage.stories-Dtx-ynMr.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-CHjyI709.js → InputImage.stories-Dtx-ynMr.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-Dw3PG8YA.js";import{t as i}from"./jsx-runtime-BBQGix-2.js";import{a,i as o,n as s}from"./utils-CnV3Gszu.js";import{n as c,t as l}from"./ui.module-wFHXkJzp.js";import{n as u,o as d,r as f,u as p}from"./Input-DD9fx2Sx.js";import{t as m}from"./input-Cv9ps4La.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-Be6sd6Mi.js";import{t as d}from"./jsx-runtime-BBQGix-2.js";import{t as f}from"./mdx-react-shim-Be8o0WOk.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-MUwtf1U1.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-D90hKkIJ.js";import{t as i}from"./jsx-runtime-BBQGix-2.js";import{a,i as o}from"./utils-Bg8QclQy.js";import{t as s,ut as ee}from"./lucide-react-ClGevkpS.js";import{n as c,t as l}from"./ui.module-wFHXkJzp.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-9SOfvJPJ.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-Dw3PG8YA.js";import{t as i}from"./jsx-runtime-BBQGix-2.js";import{a,i as o}from"./utils-CnV3Gszu.js";import{t as s,wt as ee}from"./lucide-react-DMM2-ayk.js";import{n as c,t as l}from"./ui.module-wFHXkJzp.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-BQr_wySR.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-Be6sd6Mi.js";import{t as d}from"./jsx-runtime-BBQGix-2.js";import{t as f}from"./mdx-react-shim-Be8o0WOk.js";import{CustomRender as p,MultiSelect as m,SingleSelect as h,n as g,t as _}from"./Listbox.stories-Bxx8eTZ9.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.
|