@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
package/README.md
CHANGED
|
@@ -106,6 +106,92 @@ import "@ryuzaki13/react-foundation-ui/styles.css";
|
|
|
106
106
|
|
|
107
107
|
Обычно в host-проекте это оформляется отдельным entrypoint, например `src/app/styles/shared.scss`, который сначала настраивает foundation config, затем подключает foundation styles, темы и доменные CSS-переменные приложения.
|
|
108
108
|
|
|
109
|
+
## Просмотр изображений
|
|
110
|
+
|
|
111
|
+
`ImageViewer` из точечного entrypoint `@ryuzaki13/react-foundation-ui/image` предоставляет controlled lightbox для одного изображения или галереи. Реализация использует Yet Another React Lightbox как внутренний runtime, но наружу публикует только foundation-контракты `ImageViewerImage`, `ImageViewerFeatures`, `ImageViewerLabels` и `ImageViewerStyle`.
|
|
112
|
+
|
|
113
|
+
Поскольку lightbox подключён как optional peer dependency, host устанавливает совместимую версию явно:
|
|
114
|
+
|
|
115
|
+
```bash
|
|
116
|
+
npm install yet-another-react-lightbox@^3.32.1
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
Отдельно импортировать CSS Yet Another React Lightbox не нужно: необходимые core/plugin styles уже входят в общий `@ryuzaki13/react-foundation-ui/styles.css`.
|
|
120
|
+
|
|
121
|
+
```tsx
|
|
122
|
+
import { useState } from "react";
|
|
123
|
+
|
|
124
|
+
import { ImageViewer, type ImageViewerImage } from "@ryuzaki13/react-foundation-ui/image";
|
|
125
|
+
|
|
126
|
+
const images: readonly ImageViewerImage[] = [
|
|
127
|
+
{
|
|
128
|
+
src: "/images/42/primary-webp",
|
|
129
|
+
alt: "Учебный корпус",
|
|
130
|
+
intrinsicWidth: 1920,
|
|
131
|
+
intrinsicHeight: 1080,
|
|
132
|
+
candidates: [
|
|
133
|
+
{ src: "/images/42/640-webp", width: 640 },
|
|
134
|
+
{ src: "/images/42/1280-webp", width: 1280 }
|
|
135
|
+
],
|
|
136
|
+
thumbnail: "/images/42/320-webp"
|
|
137
|
+
}
|
|
138
|
+
];
|
|
139
|
+
|
|
140
|
+
export function MaterialGallery() {
|
|
141
|
+
const [open, setOpen] = useState(false);
|
|
142
|
+
const [index, setIndex] = useState(0);
|
|
143
|
+
|
|
144
|
+
return (
|
|
145
|
+
<>
|
|
146
|
+
<button type="button" onClick={() => setOpen(true)}>
|
|
147
|
+
Открыть галерею
|
|
148
|
+
</button>
|
|
149
|
+
<ImageViewer
|
|
150
|
+
open={open}
|
|
151
|
+
images={images}
|
|
152
|
+
index={index}
|
|
153
|
+
onIndexChange={setIndex}
|
|
154
|
+
onClose={() => setOpen(false)}
|
|
155
|
+
/>
|
|
156
|
+
</>
|
|
157
|
+
);
|
|
158
|
+
}
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
По умолчанию включены Zoom и Fullscreen; Captions включаются при наличии `title`, `description` или `alt`, а Thumbnails и Counter — для галереи из нескольких изображений. Download отключён до явного `features={{ download: true }}`. Поля `thumbnail` и `download` принимают уже разрешённые URL и не знают о правилах storage host-приложения.
|
|
162
|
+
|
|
163
|
+
Внешний вид настраивается стабильными CSS-переменными `--image-viewer-*`. Они могут быть глобальными либо scoped через переданные `className`/`style`; это важно, поскольку viewer рендерится в portal за пределами DOM-ветки trigger:
|
|
164
|
+
|
|
165
|
+
```scss
|
|
166
|
+
.projectImageViewer {
|
|
167
|
+
--image-viewer-z-index: 320;
|
|
168
|
+
--image-viewer-backdrop: rgb(5 10 20 / 96%);
|
|
169
|
+
--image-viewer-control-color: rgb(255 255 255 / 82%);
|
|
170
|
+
--image-viewer-control-active-color: #7dd3fc;
|
|
171
|
+
--image-viewer-control-disabled-color: rgb(255 255 255 / 38%);
|
|
172
|
+
--image-viewer-control-background: transparent;
|
|
173
|
+
--image-viewer-control-border: 0;
|
|
174
|
+
--image-viewer-control-radius: 0.3125rem;
|
|
175
|
+
--image-viewer-control-filter: drop-shadow(0 0.125rem 0.25rem rgb(0 0 0 / 70%));
|
|
176
|
+
--image-viewer-icon-size: 1.75rem;
|
|
177
|
+
--image-viewer-icon-stroke-width: 2;
|
|
178
|
+
--image-viewer-toolbar-padding: 0.625rem;
|
|
179
|
+
--image-viewer-focus: 0.125rem solid #7dd3fc;
|
|
180
|
+
--image-viewer-focus-offset: 0.125rem;
|
|
181
|
+
--image-viewer-image-radius: 0.3125rem;
|
|
182
|
+
--image-viewer-caption-background: rgb(5 10 20 / 72%);
|
|
183
|
+
--image-viewer-caption-color: #fff;
|
|
184
|
+
--image-viewer-counter-color: rgb(255 255 255 / 82%);
|
|
185
|
+
--image-viewer-thumbnail-background: rgb(255 255 255 / 8%);
|
|
186
|
+
--image-viewer-thumbnail-border-color: rgb(255 255 255 / 60%);
|
|
187
|
+
--image-viewer-thumbnail-active-border-color: #7dd3fc;
|
|
188
|
+
--image-viewer-loading-color: #fff;
|
|
189
|
+
--image-viewer-error-color: #ef4444;
|
|
190
|
+
}
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
Публичный CSS-контракт не включает переменные `--yarl__*`: они остаются implementation detail и могут меняться вместе с внутренней библиотекой.
|
|
194
|
+
|
|
109
195
|
## Storybook
|
|
110
196
|
|
|
111
197
|
Stories и MDX не экспортируются как public API пакета. Вместо этого пакет собирает готовую статическую документацию:
|
package/dist/image/index.d.ts
CHANGED
|
@@ -6,9 +6,11 @@ export { ImageRenderer } from "./ui/ImageRenderer";
|
|
|
6
6
|
export { ImageSelectionModal } from "./ui/ImageSelectionModal";
|
|
7
7
|
export { ImageSelectionPanel } from "./ui/ImageSelectionPanel";
|
|
8
8
|
export { ImageView } from "./ui/ImageView";
|
|
9
|
+
export { ImageViewer } from "./ui/ImageViewer";
|
|
9
10
|
export type { ImageCropArea, ImageCropperObjectFit, ImageCropperProps, ImageCropPoint } from "./model/imageCropTypes";
|
|
10
11
|
export type { ImageCandidate, ImageDensityCandidate, ImageLayout, ImageSource, ImageWidthCandidate, ResponsiveImageData, ResponsiveImageSource } from "./model/imageTypes";
|
|
11
12
|
export type { ImageSelectionActionsData, ImageSelectionModalProps, ImageSelectionPanelProps, SelectedImageData, SelectedImageFile } from "./model/imageSelectionTypes";
|
|
13
|
+
export type { ImageViewerFeatures, ImageViewerImage, ImageViewerLabels, ImageViewerProps, ImageViewerStyle } from "./model/imageViewerTypes";
|
|
12
14
|
export type { ImagePlaceholderProps } from "./ui/ImagePlaceholder";
|
|
13
15
|
export type { ImageRendererProps } from "./ui/ImageRenderer";
|
|
14
16
|
export type { ImageViewProps } from "./ui/ImageView";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/image/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/image/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE/C,YAAY,EAAE,aAAa,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACtH,YAAY,EACX,cAAc,EACd,qBAAqB,EACrB,WAAW,EACX,WAAW,EACX,mBAAmB,EACnB,mBAAmB,EACnB,qBAAqB,EACrB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACX,yBAAyB,EACzB,wBAAwB,EACxB,wBAAwB,EACxB,iBAAiB,EACjB,iBAAiB,EACjB,MAAM,6BAA6B,CAAC;AACrC,YAAY,EACX,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EAChB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AACnE,YAAY,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAC7D,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC"}
|