@ryuzaki13/react-foundation-ui 1.1.0 → 1.1.2
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 +1 -1
- package/dist/advanced-search/index.js +1 -1
- package/dist/chunks/ImageViewerRuntime-RN49by8Y.js +225 -0
- package/dist/chunks/ImageViewerRuntime-RN49by8Y.js.map +1 -0
- package/dist/chunks/{TextEditorLexicalClient-bDEyimUa.js → TextEditorLexicalClient-DDe1NezE.js} +2 -2
- package/dist/chunks/{TextEditorLexicalClient-bDEyimUa.js.map → TextEditorLexicalClient-DDe1NezE.js.map} +1 -1
- package/dist/chunks/modal-DiQ-yR71.js +183 -0
- package/dist/chunks/modal-DiQ-yR71.js.map +1 -0
- package/dist/image/index.js +140 -343
- package/dist/image/index.js.map +1 -1
- package/dist/image/ui/ImageViewer.d.ts +4 -4
- package/dist/image/ui/ImageViewer.d.ts.map +1 -1
- package/dist/image/ui/ImageViewerRuntime.d.ts +11 -0
- package/dist/image/ui/ImageViewerRuntime.d.ts.map +1 -0
- package/dist/modal/Modal.d.ts.map +1 -1
- package/dist/modal/index.js +1 -1
- package/dist/modal/modalMotion.d.ts +26 -0
- package/dist/modal/modalMotion.d.ts.map +1 -0
- package/dist/styles.css +1 -1
- package/dist/text-editor/index.js +1 -1
- package/package.json +1 -1
- package/storybook-static/assets/{Badge-kXFWHX1o.js → Badge-ySHe8vmn.js} +1 -1
- package/storybook-static/assets/{Badge.stories-fhovi8Mi.js → Badge.stories-BYFVnpXD.js} +1 -1
- package/storybook-static/assets/{Button-BzcIPScf.js → Button-BSfih1w7.js} +1 -1
- package/storybook-static/assets/{Button-DuNV63ZS.js → Button-rWpfFmWo.js} +1 -1
- package/storybook-static/assets/{Button.stories-DehjFhSM.js → Button.stories-BPUX-pUU.js} +1 -1
- package/storybook-static/assets/{CheckBox-BmyFh4i7.js → CheckBox-BRmxHv5c.js} +1 -1
- package/storybook-static/assets/{CheckBox-D6mLxi2P.js → CheckBox-DJvchxuK.js} +1 -1
- package/storybook-static/assets/{CheckBox.stories-Cb7RC2GA.js → CheckBox.stories-Zz7HW_Tt.js} +1 -1
- package/storybook-static/assets/{Color-KMSTOMOX-CX-Xl_mX.js → Color-KMSTOMOX-Bvh-Futk.js} +1 -1
- package/storybook-static/assets/{ContextMenu-Cef_K-t5.js → ContextMenu-K5hnbQwB.js} +1 -1
- package/storybook-static/assets/{ContextMenu.stories-AZHC-8P9.js → ContextMenu.stories-q25-a_KQ.js} +1 -1
- package/storybook-static/assets/{DateInput-C55_ANq6.js → DateInput-DgI18Wd3.js} +1 -1
- package/storybook-static/assets/{DateInput-DSVMF1gB.js → DateInput-ElFtdL37.js} +1 -1
- package/storybook-static/assets/{DateInput.stories-CsC2qa2g.js → DateInput.stories-BfN_pYwR.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-B8rYDJ5X.js → DateRangePresetSelect-BvJ0OXbG.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect-CIFpis74.js → DateRangePresetSelect-C6YNhNYJ.js} +1 -1
- package/storybook-static/assets/{DateRangePresetSelect.stories-BjtAEDa9.js → DateRangePresetSelect.stories-DJIqYv8z.js} +1 -1
- package/storybook-static/assets/{Detail-BgqY0SrV.js → Detail-DyISI1K8.js} +1 -1
- package/storybook-static/assets/{Detail.stories-Co8o1gqx.js → Detail.stories-DGbd09Cm.js} +1 -1
- package/storybook-static/assets/{Dialog-DoekeYCP.js → Dialog-BP5LMJer.js} +1 -1
- package/storybook-static/assets/{Dialog.stories-v5TQS_1-.js → Dialog.stories-iAreH7Ft.js} +1 -1
- package/storybook-static/assets/{Disclosure-E7Bm1F1a.js → Disclosure-DbzW47oB.js} +1 -1
- package/storybook-static/assets/{Disclosure.stories-CUYuBYh6.js → Disclosure.stories-Iiobg__i.js} +1 -1
- package/storybook-static/assets/{DocsRenderer-JROSPFPF-9II2vBP-.js → DocsRenderer-JROSPFPF-BoQ-Uqbl.js} +2 -2
- package/storybook-static/assets/{DropZone-COhh7w0P.js → DropZone-BFChZBSC.js} +1 -1
- package/storybook-static/assets/{DropZone.stories-XU7u589t.js → DropZone.stories-yf4h971Z.js} +1 -1
- package/storybook-static/assets/{DropdownMenu-3ney3Ng2.js → DropdownMenu-Dk5dGs-s.js} +1 -1
- package/storybook-static/assets/{ExpandableActionPanel.stories-DJOZxMv_.js → ExpandableActionPanel.stories-kdhJaIZg.js} +1 -1
- package/storybook-static/assets/{Flex-CN6FIOe5.js → Flex-BHWaC8ei.js} +1 -1
- package/storybook-static/assets/{Flex-BtfZvPDu.js → Flex-D2dKtJQc.js} +1 -1
- package/storybook-static/assets/{Flex.stories-BCZhfSVz.js → Flex.stories-BB5qAL1v.js} +1 -1
- package/storybook-static/assets/{Grid-D_d69WcK.js → Grid-sojkTYwf.js} +1 -1
- package/storybook-static/assets/{Grid-CdgOXXxt.js → Grid-z6gyebzr.js} +1 -1
- package/storybook-static/assets/{Grid.stories-DQoSH4q8.js → Grid.stories-D4cAyXDs.js} +1 -1
- package/storybook-static/assets/{ImageCropper.stories-BJiSLQAw.js → ImageCropper.stories-FBR_3FWR.js} +1 -1
- package/storybook-static/assets/{ImageRenderer-D6M62W6a.js → ImageRenderer-CRBJvRub.js} +1 -1
- package/storybook-static/assets/{ImageRenderer.stories-BZFA51MD.js → ImageRenderer.stories-Bm5yzrQm.js} +1 -1
- package/storybook-static/assets/{ImageView.stories-DFvdAL1U.js → ImageView.stories-Dy6kw_ha.js} +1 -1
- package/storybook-static/assets/{ImageViewer-kKDkAY87.css → ImageViewer-imFO-FH3.css} +1 -1
- package/storybook-static/assets/ImageViewer.stories-CGTaIHxP.js +72 -0
- package/storybook-static/assets/ImageViewerRuntime-CRmlrtpL.css +1 -0
- package/storybook-static/assets/ImageViewerRuntime-DZ2d3UnD.js +51 -0
- package/storybook-static/assets/{Input-BrEoa-ul.js → Input-BClWQm32.js} +1 -1
- package/storybook-static/assets/{Input-DD9fx2Sx.js → Input-c3EhAUVg.js} +1 -1
- package/storybook-static/assets/{Input.stories-BmsoCBN4.js → Input.stories-BhCP8U4r.js} +1 -1
- package/storybook-static/assets/{InputDateTime-Cdmc7rX2.js → InputDateTime-B3e7QSbu.js} +1 -1
- package/storybook-static/assets/{InputDateTime.stories-BhjQejJD.js → InputDateTime.stories-lSHRzKkd.js} +1 -1
- package/storybook-static/assets/{InputFile-BJfA5xNs.js → InputFile-BaUvfw0y.js} +1 -1
- package/storybook-static/assets/{InputFile.stories-BIJaIWlj.js → InputFile.stories-xSZykMu5.js} +1 -1
- package/storybook-static/assets/{InputFiles-DORMd5fm.js → InputFiles-BeIHcYkg.js} +1 -1
- package/storybook-static/assets/{InputFiles-ZK4wdii7.js → InputFiles-Bz96ef5G.js} +1 -1
- package/storybook-static/assets/{InputFiles.stories-CVr0ENgC.js → InputFiles.stories-HYB4u-mB.js} +1 -1
- package/storybook-static/assets/{InputImage-Dk4j2KMa.js → InputImage-CZTnJ4ul.js} +1 -1
- package/storybook-static/assets/{InputImage.stories-Dtx-ynMr.js → InputImage.stories-DqjDYlZN.js} +1 -1
- package/storybook-static/assets/{LayoutPicker-CCvATGnT.js → LayoutPicker-DvKs-0Fv.js} +1 -1
- package/storybook-static/assets/{LayoutPicker.stories-MUwtf1U1.js → LayoutPicker.stories-DmuTHfsc.js} +1 -1
- package/storybook-static/assets/{Listbox-TfXOnGNL.js → Listbox-mcm1KqjJ.js} +1 -1
- package/storybook-static/assets/{Listbox.stories-Bxx8eTZ9.js → Listbox.stories-CtS-e5pi.js} +1 -1
- package/storybook-static/assets/{Modal-CeXVAufO.js → Modal-BqeKhT7H.js} +1 -1
- package/storybook-static/assets/Modal.stories-Gli7XX36.js +180 -0
- package/storybook-static/assets/{MultiSelect-CdEQ7LE0.js → MultiSelect-CIMJ-GDy.js} +1 -1
- package/storybook-static/assets/{MultiSelect-Bq5Xj6i5.js → MultiSelect-Cl6rIRPU.js} +1 -1
- package/storybook-static/assets/{MultiSelect.stories-BgjuPpG-.js → MultiSelect.stories-Dff66BK5.js} +1 -1
- package/storybook-static/assets/{NotificationsHost-B6xWf_Ae.js → NotificationsHost-DowbxTw1.js} +1 -1
- package/storybook-static/assets/{NotificationsHost.stories-BmnJ3G3S.js → NotificationsHost.stories-nbb74ArB.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect-BGFMSKC-.js → ODataMultiSelect-BwjM7TCI.js} +1 -1
- package/storybook-static/assets/{ODataMultiSelect.stories-Cw3mS3ds.js → ODataMultiSelect.stories-DqjbgljQ.js} +1 -1
- package/storybook-static/assets/{ODataSelect-BTpRnB-o.js → ODataSelect-BfFCFPKT.js} +1 -1
- package/storybook-static/assets/{ODataSelect-9gP8ejA7.js → ODataSelect-CUb853Wg.js} +1 -1
- package/storybook-static/assets/{ODataSelect.stories-C8XnS6W-.js → ODataSelect.stories-yivutwVc.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect-TXpOQMB8.js → ODataTreeMultiSelect-Dd7RuuQJ.js} +1 -1
- package/storybook-static/assets/{ODataTreeMultiSelect.stories-ikxs50iA.js → ODataTreeMultiSelect.stories-fr3DsJrU.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect-CvgrWRYS.js → ODataTreeSelect-CPpbLgIt.js} +1 -1
- package/storybook-static/assets/{ODataTreeSelect.stories-CWuZaxIF.js → ODataTreeSelect.stories-DmEX0dcP.js} +1 -1
- package/storybook-static/assets/{PeriodSelect-CVT2XzOd.js → PeriodSelect-D5kBTYIo.js} +1 -1
- package/storybook-static/assets/{PeriodSelect.stories-B5jJRelX.js → PeriodSelect.stories-BQ8Fe5La.js} +1 -1
- package/storybook-static/assets/{Popover-D9YhHWsi.js → Popover-BXriLIId.js} +1 -1
- package/storybook-static/assets/{Popover.stories-CtEUOX4O.js → Popover.stories-CKXTLaPn.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput-D3r0iIRk.js → PresetRangeDateInput-BAeztTbq.js} +1 -1
- package/storybook-static/assets/{PresetRangeDateInput.stories-Dcc1dGV0.js → PresetRangeDateInput.stories-DHErwmMR.js} +1 -1
- package/storybook-static/assets/{RadioButton-CWjkmWu9.js → RadioButton-CHmZgd5q.js} +1 -1
- package/storybook-static/assets/{RadioButton.stories-BXXJWoHz.js → RadioButton.stories-aa0vDs3Q.js} +1 -1
- package/storybook-static/assets/{RadioGroup-DCZdrs0C.js → RadioGroup-DPeAo49R.js} +1 -1
- package/storybook-static/assets/{RadioGroup-Bjc2XTVk.js → RadioGroup-DvOxoOpU.js} +1 -1
- package/storybook-static/assets/{RadioGroup.stories-CsfVUt9l.js → RadioGroup.stories-R2DhGaUo.js} +1 -1
- package/storybook-static/assets/{Select-BGu6rVaZ.js → Select-CMFiMGUD.js} +1 -1
- package/storybook-static/assets/{Select-BBFQZObL.js → Select-DAgVgEuM.js} +1 -1
- package/storybook-static/assets/{Select.stories-wIbcvZYi.js → Select.stories-DnDwuoSb.js} +1 -1
- package/storybook-static/assets/{SelectOptionContent-DkTRrtFu.js → SelectOptionContent-DlUoa2zi.js} +1 -1
- package/storybook-static/assets/{SerializableSelect-CdnRBVHB.js → SerializableSelect-BL6Sy3b_.js} +1 -1
- package/storybook-static/assets/{SerializableSelect-CJtNM-c6.js → SerializableSelect-CHAD3r9t.js} +1 -1
- package/storybook-static/assets/{SerializableSelect.stories-DVwxpiTF.js → SerializableSelect.stories-tcz7KvtM.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput-BK2_uv0z.js → SingleDateTimeInput-BTjmZ93p.js} +1 -1
- package/storybook-static/assets/{SingleDateTimeInput.stories-DPH4R-h9.js → SingleDateTimeInput.stories-fAE8JkXx.js} +1 -1
- package/storybook-static/assets/{Slider-f4VatXYq.js → Slider-BT1LHZ79.js} +1 -1
- package/storybook-static/assets/{Slider.stories-CBnmt8h9.js → Slider.stories-D936g26I.js} +1 -1
- package/storybook-static/assets/{SliderInput-W2HVfY9Z.js → SliderInput-BhFLXhLl.js} +1 -1
- package/storybook-static/assets/{SliderInput.stories-B7wzoUbu.js → SliderInput.stories-BVdD9tEX.js} +1 -1
- package/storybook-static/assets/{Sortable-CCL1UMb_.js → Sortable-SmbXEzK3.js} +1 -1
- package/storybook-static/assets/{Sortable.stories-B8SgFjl7.js → Sortable.stories-CkCKnV-o.js} +1 -1
- package/storybook-static/assets/{Splitter-BsBb1sgN.js → Splitter-HnrBItZh.js} +1 -1
- package/storybook-static/assets/{Splitter.stories-CuBHIA8-.js → Splitter.stories-DW1Cs65Y.js} +1 -1
- package/storybook-static/assets/{StateSelect-BENsGD07.js → StateSelect-j73SSm6j.js} +1 -1
- package/storybook-static/assets/{StateSelect.stories-byEPoQ2E.js → StateSelect.stories-DlYcFCZu.js} +1 -1
- package/storybook-static/assets/{Switch-DKXE4SVs.js → Switch-Df9CUFzH.js} +1 -1
- package/storybook-static/assets/{Switch.stories-BWQdJoJT.js → Switch.stories-CLj7D165.js} +1 -1
- package/storybook-static/assets/{Table-D9w3ncNi.js → Table-DQNIWsu6.js} +1 -1
- package/storybook-static/assets/{Table.stories-znqy5cLP.js → Table.stories-PauSY-JA.js} +1 -1
- package/storybook-static/assets/{Tabs-D_OO95mK.js → Tabs-Dk5gLtMV.js} +1 -1
- package/storybook-static/assets/{Tabs.stories-B2A1HYeH.js → Tabs.stories-QbqForCs.js} +1 -1
- package/storybook-static/assets/{TagInput.stories-DaBnABh8.js → TagInput.stories-BKDMX-Xf.js} +1 -1
- package/storybook-static/assets/{Textarea-Hwyvp6ll.js → Textarea-DysJ81Q0.js} +1 -1
- package/storybook-static/assets/{Textarea.stories-DD3Icl3x.js → Textarea.stories-BjwiGsRE.js} +1 -1
- package/storybook-static/assets/{TimePanel-CdpxiwMQ.js → TimePanel-B3ydmHaY.js} +1 -1
- package/storybook-static/assets/{TimePanel.stories-ytXuqm9R.js → TimePanel.stories-BKywSX32.js} +1 -1
- package/storybook-static/assets/{Toggle-Sdruy8bN.js → Toggle-KdmtodIb.js} +1 -1
- package/storybook-static/assets/{Toggle.stories-qgeQLvRn.js → Toggle.stories-Bhb_z8Jz.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-t2FNc6CY.js → TreeMultiSelect-CwW9N9Ig.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect-CKfmI37X.js → TreeMultiSelect-DsmEfu72.js} +1 -1
- package/storybook-static/assets/{TreeMultiSelect.stories-k1NBsKij.js → TreeMultiSelect.stories-C6D2dAVV.js} +1 -1
- package/storybook-static/assets/{TreePickerBase-DXv--vBR.js → TreePickerBase-KscLSAmI.js} +1 -1
- package/storybook-static/assets/{TreeSelect-DYHpUNGC.js → TreeSelect-CaZc5mMy.js} +1 -1
- package/storybook-static/assets/{TreeSelect-DgKArbMR.js → TreeSelect-Dyzfh0j1.js} +1 -1
- package/storybook-static/assets/{TreeSelect.stories-DTpkFKp7.js → TreeSelect.stories-DgPobNFf.js} +1 -1
- package/storybook-static/assets/{TreeTable-BOy0Tit-.js → TreeTable-Cp-3yiUl.js} +1 -1
- package/storybook-static/assets/{TreeTable.stories-By1BlhSx.js → TreeTable.stories-Ch5zCYJv.js} +1 -1
- package/storybook-static/assets/{WithTooltip-7X4HQR7L-D0sHKirZ.js → WithTooltip-7X4HQR7L-Bvci3679.js} +1 -1
- package/storybook-static/assets/{base-table-CYO33S-X.js → base-table-4j0yzCkY.js} +1 -1
- package/storybook-static/assets/{blocks-Be6sd6Mi.js → blocks-B-ZSUli0.js} +6 -6
- package/storybook-static/assets/{button-D2JNy4h8.js → button-PJeFaVDD.js} +1 -1
- package/storybook-static/assets/{check-box-B4tjJED4.js → check-box-B0-G8LQm.js} +1 -1
- package/storybook-static/assets/{chunk-3LY4VQVK-jaQG9QeP.js → chunk-3LY4VQVK-D6w4YoJz.js} +1 -1
- package/storybook-static/assets/{chunk-LITCR56V-HuSFGdRZ.js → chunk-LITCR56V-CO50GA85.js} +1 -1
- package/storybook-static/assets/{contextMenu-DIpGZPH1.js → contextMenu-CnU3cBnI.js} +1 -1
- package/storybook-static/assets/{error-DHDPaDqg.js → error-BSGcuIkS.js} +1 -1
- package/storybook-static/assets/{flex-BWOaXKdl.js → flex-DH0uZKDL.js} +1 -1
- package/storybook-static/assets/{floating-ui.react-C83w-peW.js → floating-ui.react-D1gWigwt.js} +1 -1
- package/storybook-static/assets/formatter-L2YTDE3Q-CTky3r2k.js +1 -0
- package/storybook-static/assets/{formatters-BaQpdAeu.js → formatters-q62UjZF6.js} +1 -1
- package/storybook-static/assets/grid-rDCrr9Aa.js +1 -0
- package/storybook-static/assets/{hooks-5ZdxaH2L.js → hooks-C0kO8ifn.js} +1 -1
- package/storybook-static/assets/{iframe-Dw3PG8YA.js → iframe-D1kbCBk7.js} +3 -3
- package/storybook-static/assets/{input-Cv9ps4La.js → input-D8SCvYlc.js} +1 -1
- package/storybook-static/assets/{lucide-react-DMM2-ayk.js → lucide-react-DItxRogI.js} +1 -1
- package/storybook-static/assets/{mdx-react-shim-Be8o0WOk.js → mdx-react-shim-B8QUPqDz.js} +1 -1
- package/storybook-static/assets/{media-Bc0eGngh.js → media-DgzbAjsg.js} +1 -1
- package/storybook-static/assets/{misc-7hwZFEXA.js → misc-CzV_PQE6.js} +1 -1
- package/storybook-static/assets/{notifications-DkxUPPfB.js → notifications-CdohXJuf.js} +1 -1
- package/storybook-static/assets/{odata-nO_yW-3w.js → odata-BCXcLElA.js} +1 -1
- package/storybook-static/assets/odata-service-tcECnUvF.js +1 -0
- package/storybook-static/assets/{odataStoryFixtures-J-OBpNg6.js → odataStoryFixtures-KJnMeJob.js} +1 -1
- package/storybook-static/assets/{picker-BQr_wySR.js → picker-BILXnlvH.js} +1 -1
- package/storybook-static/assets/{popover-v9hxY66g.js → popover-Bmfe__Oe.js} +1 -1
- package/storybook-static/assets/{preset-select-d-pIvdGN.js → preset-select-C3eeRGrr.js} +1 -1
- package/storybook-static/assets/{react-18-CXAAUXpx.js → react-18-C05GCNzp.js} +1 -1
- package/storybook-static/assets/{react-ByWJZTAG.js → react-C7-n-j-7.js} +2 -2
- package/storybook-static/assets/{react-dom-DXk3dBb-.js → react-dom-BuBaXqtP.js} +1 -1
- package/storybook-static/assets/select-DOX3d-Dq.js +1 -0
- package/storybook-static/assets/{slider-tV7pXkKI.js → slider-mYXodgoS.js} +1 -1
- package/storybook-static/assets/{sortable-CHwTYQdY.js → sortable-DFt3FEPe.js} +1 -1
- package/storybook-static/assets/{syntaxhighlighter-RTCFPKCB-CsqLGhls.js → syntaxhighlighter-RTCFPKCB-DpuAtHAL.js} +1 -1
- package/storybook-static/assets/{text-Bf_PqPja.js → text-CxC7Ibdz.js} +1 -1
- package/storybook-static/assets/{theming-D37tYvvG.js → theming-LaAgw3BX.js} +1 -1
- package/storybook-static/assets/ui-CidvNniM.js +1 -0
- package/storybook-static/assets/{useODataSelectBase-DSlg4q3l.js → useODataSelectBase-D8W-kHaa.js} +1 -1
- package/storybook-static/assets/{useODataTreeData-d53TKU6r.js → useODataTreeData-CdDBNi-n.js} +1 -1
- package/storybook-static/assets/{utils-CnV3Gszu.js → utils-Bgk51jNr.js} +1 -1
- package/storybook-static/iframe.html +1 -1
- package/storybook-static/project.json +1 -1
- package/dist/chunks/modal-Cll8YZ7b.js +0 -153
- package/dist/chunks/modal-Cll8YZ7b.js.map +0 -1
- package/storybook-static/assets/ImageViewer.stories-BzUxxQAO.js +0 -72
- package/storybook-static/assets/Modal.stories-DmnMwG9h.js +0 -180
- package/storybook-static/assets/formatter-L2YTDE3Q-CO9xKxzu.js +0 -1
- package/storybook-static/assets/grid-BwTl00V9.js +0 -1
- package/storybook-static/assets/odata-service-RLReWm0A.js +0 -1
- package/storybook-static/assets/select-BessDJfg.js +0 -1
- package/storybook-static/assets/ui-QO8tRKaR.js +0 -1
package/README.md
CHANGED
|
@@ -116,7 +116,7 @@ import "@ryuzaki13/react-foundation-ui/styles.css";
|
|
|
116
116
|
npm install yet-another-react-lightbox@^3.32.1
|
|
117
117
|
```
|
|
118
118
|
|
|
119
|
-
Отдельно импортировать CSS Yet Another React Lightbox не нужно: необходимые core/plugin styles уже входят в общий `@ryuzaki13/react-foundation-ui/styles.css`.
|
|
119
|
+
Отдельно импортировать CSS Yet Another React Lightbox не нужно: необходимые core/plugin styles уже входят в общий `@ryuzaki13/react-foundation-ui/styles.css`. JavaScript runtime YARL и его плагины загружаются отдельным динамическим chunk только при первом `open` и после загрузки остаются смонтированными для корректного завершения close lifecycle.
|
|
120
120
|
|
|
121
121
|
```tsx
|
|
122
122
|
import { useState } from "react";
|
|
@@ -7,7 +7,7 @@ import { r as s } from "../chunks/grid-dI94AAbi.js";
|
|
|
7
7
|
import { l as c, u as l } from "../chunks/input-CZLUUggm.js";
|
|
8
8
|
import { t as u } from "../chunks/input-search-eMvnvgV0.js";
|
|
9
9
|
import { c as d } from "../chunks/misc-DIF5h9ba.js";
|
|
10
|
-
import { a as f, i as p, n as m, r as h } from "../chunks/modal-
|
|
10
|
+
import { a as f, i as p, n as m, r as h } from "../chunks/modal-DiQ-yR71.js";
|
|
11
11
|
import { n as g } from "../chunks/multi-select-DaOKgHKE.js";
|
|
12
12
|
import { t as _ } from "../chunks/table-BdpMzhLH.js";
|
|
13
13
|
import { useCallback as v, useEffect as y, useMemo as b, useState as x } from "react";
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
import { useEffect as e, useMemo as t } from "react";
|
|
2
|
+
import { cn as n } from "@ryuzaki13/react-foundation-lib/utils";
|
|
3
|
+
import { CaptionsIcon as r, CaptionsOffIcon as i, ChevronLeftIcon as a, ChevronRightIcon as o, DownloadIcon as s, GalleryThumbnailsIcon as c, ImageOffIcon as l, LoaderCircleIcon as u, Maximize2Icon as d, Minimize2Icon as f, XIcon as p, ZoomInIcon as m, ZoomOutIcon as h } from "lucide-react";
|
|
4
|
+
import { jsx as g } from "react/jsx-runtime";
|
|
5
|
+
import _, { isImageSlide as v } from "yet-another-react-lightbox";
|
|
6
|
+
import y from "yet-another-react-lightbox/plugins/captions";
|
|
7
|
+
import b from "yet-another-react-lightbox/plugins/counter";
|
|
8
|
+
import x from "yet-another-react-lightbox/plugins/download";
|
|
9
|
+
import S from "yet-another-react-lightbox/plugins/fullscreen";
|
|
10
|
+
import C from "yet-another-react-lightbox/plugins/thumbnails";
|
|
11
|
+
import w from "yet-another-react-lightbox/plugins/zoom";
|
|
12
|
+
//#region src/image/lib/buildImageViewerSlides.ts
|
|
13
|
+
function T(e) {
|
|
14
|
+
return Number.isFinite(e) && e > 0;
|
|
15
|
+
}
|
|
16
|
+
function E(e, t) {
|
|
17
|
+
let n = e.width === void 0 ? e.density === void 0 ? 0 : t * e.density : e.width;
|
|
18
|
+
return T(n) ? Math.round(n) : null;
|
|
19
|
+
}
|
|
20
|
+
function D(e) {
|
|
21
|
+
let { intrinsicWidth: t, intrinsicHeight: n } = e;
|
|
22
|
+
if (t === void 0 || n === void 0 || !T(t) || !T(n)) return;
|
|
23
|
+
let r = /* @__PURE__ */ new Map();
|
|
24
|
+
for (let i of e.candidates ?? []) {
|
|
25
|
+
let e = E(i, t);
|
|
26
|
+
e === null || r.has(e) || r.set(e, {
|
|
27
|
+
src: i.src,
|
|
28
|
+
width: e,
|
|
29
|
+
height: Math.max(1, Math.round(e * n / t))
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
let i = [...r.values()].sort((e, t) => e.width - t.width);
|
|
33
|
+
return i.length > 0 ? i : void 0;
|
|
34
|
+
}
|
|
35
|
+
function O(e) {
|
|
36
|
+
return e.map((e) => {
|
|
37
|
+
let t = T(e.intrinsicWidth ?? 0) && T(e.intrinsicHeight ?? 0);
|
|
38
|
+
return {
|
|
39
|
+
src: e.src,
|
|
40
|
+
alt: e.alt,
|
|
41
|
+
width: t ? e.intrinsicWidth : void 0,
|
|
42
|
+
height: t ? e.intrinsicHeight : void 0,
|
|
43
|
+
srcSet: D(e),
|
|
44
|
+
title: e.title === void 0 ? e.alt : e.title,
|
|
45
|
+
description: e.description,
|
|
46
|
+
thumbnail: e.thumbnail,
|
|
47
|
+
download: e.download
|
|
48
|
+
};
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
//#endregion
|
|
52
|
+
//#region src/image/lib/resolveImageViewerLabels.ts
|
|
53
|
+
var k = {
|
|
54
|
+
previous: "Предыдущее изображение",
|
|
55
|
+
next: "Следующее изображение",
|
|
56
|
+
close: "Закрыть просмотр",
|
|
57
|
+
slide: "Изображение",
|
|
58
|
+
carousel: "Карусель изображений",
|
|
59
|
+
lightbox: "Просмотр изображений",
|
|
60
|
+
photoGallery: "Галерея изображений",
|
|
61
|
+
slideCounter: "{index} из {total}",
|
|
62
|
+
zoomIn: "Увеличить",
|
|
63
|
+
zoomOut: "Уменьшить",
|
|
64
|
+
enterFullscreen: "Перейти в полноэкранный режим",
|
|
65
|
+
exitFullscreen: "Выйти из полноэкранного режима",
|
|
66
|
+
thumbnails: "Миниатюры",
|
|
67
|
+
showThumbnails: "Показать миниатюры",
|
|
68
|
+
hideThumbnails: "Скрыть миниатюры",
|
|
69
|
+
caption: "Подпись изображения",
|
|
70
|
+
showCaptions: "Показать подписи",
|
|
71
|
+
hideCaptions: "Скрыть подписи",
|
|
72
|
+
download: "Скачать изображение"
|
|
73
|
+
};
|
|
74
|
+
function A(e) {
|
|
75
|
+
let t = {
|
|
76
|
+
...k,
|
|
77
|
+
...e
|
|
78
|
+
};
|
|
79
|
+
return {
|
|
80
|
+
Previous: t.previous,
|
|
81
|
+
Next: t.next,
|
|
82
|
+
Close: t.close,
|
|
83
|
+
Slide: t.slide,
|
|
84
|
+
Carousel: t.carousel,
|
|
85
|
+
Lightbox: t.lightbox,
|
|
86
|
+
"Photo gallery": t.photoGallery,
|
|
87
|
+
"{index} of {total}": t.slideCounter,
|
|
88
|
+
"Zoom in": t.zoomIn,
|
|
89
|
+
"Zoom out": t.zoomOut,
|
|
90
|
+
"Enter Fullscreen": t.enterFullscreen,
|
|
91
|
+
"Exit Fullscreen": t.exitFullscreen,
|
|
92
|
+
Thumbnails: t.thumbnails,
|
|
93
|
+
"Show thumbnails": t.showThumbnails,
|
|
94
|
+
"Hide thumbnails": t.hideThumbnails,
|
|
95
|
+
Caption: t.caption,
|
|
96
|
+
"Show captions": t.showCaptions,
|
|
97
|
+
"Hide captions": t.hideCaptions,
|
|
98
|
+
Download: t.download
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
var j = {
|
|
102
|
+
viewer: "acj1dM",
|
|
103
|
+
icon: "jt3y3m",
|
|
104
|
+
loadingIcon: "_2SAWIU",
|
|
105
|
+
imageViewerSpin: "_1GqI3h"
|
|
106
|
+
}, M = "var(--_image-viewer-top-row-height)";
|
|
107
|
+
function N({ open: T, images: E, index: D = 0, onClose: k, onIndexChange: N, features: P, loop: F = !1, closeOnBackdropClick: I = !0, closeOnPullDown: L = !0, labels: R, className: z, style: B, onRuntimeMounted: V }) {
|
|
108
|
+
e(() => {
|
|
109
|
+
V();
|
|
110
|
+
}, [V]);
|
|
111
|
+
let H = t(() => O(E), [E]), U = Number.isFinite(D) ? Math.trunc(D) : 0, W = H.length > 0 ? Math.min(Math.max(U, 0), H.length - 1) : 0, G = E.some((e) => (e.title === void 0 ? e.alt : e.title) != null || e.description !== void 0 && e.description !== null), K = P?.captions ?? G, q = P?.counter ?? H.length > 1, J = P?.download ?? !1, Y = P?.fullscreen ?? !0, X = P?.thumbnails ?? H.length > 1, Z = P?.zoom ?? !0, Q = t(() => [
|
|
112
|
+
...K ? [y] : [],
|
|
113
|
+
...q ? [b] : [],
|
|
114
|
+
...J ? [x] : [],
|
|
115
|
+
...Y ? [S] : [],
|
|
116
|
+
...X ? [C] : [],
|
|
117
|
+
...Z ? [w] : []
|
|
118
|
+
], [
|
|
119
|
+
K,
|
|
120
|
+
q,
|
|
121
|
+
J,
|
|
122
|
+
Y,
|
|
123
|
+
X,
|
|
124
|
+
Z
|
|
125
|
+
]), $ = t(() => A(R), [R]);
|
|
126
|
+
return /* @__PURE__ */ g(_, {
|
|
127
|
+
open: T && H.length > 0,
|
|
128
|
+
close: k,
|
|
129
|
+
index: W,
|
|
130
|
+
slides: H,
|
|
131
|
+
plugins: Q,
|
|
132
|
+
className: n(j.viewer, z),
|
|
133
|
+
portal: { container: { style: B } },
|
|
134
|
+
labels: $,
|
|
135
|
+
carousel: { finite: !F },
|
|
136
|
+
controller: {
|
|
137
|
+
closeOnBackdropClick: I,
|
|
138
|
+
closeOnPullDown: L
|
|
139
|
+
},
|
|
140
|
+
captions: { showToggle: !0 },
|
|
141
|
+
counter: {
|
|
142
|
+
separator: " / ",
|
|
143
|
+
container: { style: K ? { top: M } : void 0 }
|
|
144
|
+
},
|
|
145
|
+
thumbnails: { showToggle: !0 },
|
|
146
|
+
download: { download: ({ slide: e, saveAs: t }) => {
|
|
147
|
+
if (!(!v(e) || e.download === !1)) {
|
|
148
|
+
if (typeof e.download == "string") {
|
|
149
|
+
t(e.download);
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
if (typeof e.download == "object") {
|
|
153
|
+
t(e.download.url, e.download.filename);
|
|
154
|
+
return;
|
|
155
|
+
}
|
|
156
|
+
t(e.src);
|
|
157
|
+
}
|
|
158
|
+
} },
|
|
159
|
+
on: { view: ({ index: e }) => {
|
|
160
|
+
e !== W && N?.(e);
|
|
161
|
+
} },
|
|
162
|
+
render: {
|
|
163
|
+
iconPrev: () => /* @__PURE__ */ g(a, {
|
|
164
|
+
"aria-hidden": "true",
|
|
165
|
+
className: j.icon
|
|
166
|
+
}),
|
|
167
|
+
iconNext: () => /* @__PURE__ */ g(o, {
|
|
168
|
+
"aria-hidden": "true",
|
|
169
|
+
className: j.icon
|
|
170
|
+
}),
|
|
171
|
+
iconClose: () => /* @__PURE__ */ g(p, {
|
|
172
|
+
"aria-hidden": "true",
|
|
173
|
+
className: j.icon
|
|
174
|
+
}),
|
|
175
|
+
iconLoading: () => /* @__PURE__ */ g(u, {
|
|
176
|
+
"aria-hidden": "true",
|
|
177
|
+
className: n(j.icon, j.loadingIcon)
|
|
178
|
+
}),
|
|
179
|
+
iconError: () => /* @__PURE__ */ g(l, {
|
|
180
|
+
"aria-hidden": "true",
|
|
181
|
+
className: j.icon
|
|
182
|
+
}),
|
|
183
|
+
iconZoomIn: () => /* @__PURE__ */ g(m, {
|
|
184
|
+
"aria-hidden": "true",
|
|
185
|
+
className: j.icon
|
|
186
|
+
}),
|
|
187
|
+
iconZoomOut: () => /* @__PURE__ */ g(h, {
|
|
188
|
+
"aria-hidden": "true",
|
|
189
|
+
className: j.icon
|
|
190
|
+
}),
|
|
191
|
+
iconEnterFullscreen: () => /* @__PURE__ */ g(d, {
|
|
192
|
+
"aria-hidden": "true",
|
|
193
|
+
className: j.icon
|
|
194
|
+
}),
|
|
195
|
+
iconExitFullscreen: () => /* @__PURE__ */ g(f, {
|
|
196
|
+
"aria-hidden": "true",
|
|
197
|
+
className: j.icon
|
|
198
|
+
}),
|
|
199
|
+
iconThumbnailsVisible: () => /* @__PURE__ */ g(c, {
|
|
200
|
+
"aria-hidden": "true",
|
|
201
|
+
className: j.icon
|
|
202
|
+
}),
|
|
203
|
+
iconThumbnailsHidden: () => /* @__PURE__ */ g(c, {
|
|
204
|
+
"aria-hidden": "true",
|
|
205
|
+
className: j.icon
|
|
206
|
+
}),
|
|
207
|
+
iconCaptionsVisible: () => /* @__PURE__ */ g(r, {
|
|
208
|
+
"aria-hidden": "true",
|
|
209
|
+
className: j.icon
|
|
210
|
+
}),
|
|
211
|
+
iconCaptionsHidden: () => /* @__PURE__ */ g(i, {
|
|
212
|
+
"aria-hidden": "true",
|
|
213
|
+
className: j.icon
|
|
214
|
+
}),
|
|
215
|
+
iconDownload: () => /* @__PURE__ */ g(s, {
|
|
216
|
+
"aria-hidden": "true",
|
|
217
|
+
className: j.icon
|
|
218
|
+
})
|
|
219
|
+
}
|
|
220
|
+
});
|
|
221
|
+
}
|
|
222
|
+
//#endregion
|
|
223
|
+
export { N as default };
|
|
224
|
+
|
|
225
|
+
//# sourceMappingURL=ImageViewerRuntime-RN49by8Y.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ImageViewerRuntime-RN49by8Y.js","names":[],"sources":["../../src/image/lib/buildImageViewerSlides.ts","../../src/image/lib/resolveImageViewerLabels.ts","../../src/image/ui/ImageViewer.module.scss","../../src/image/ui/ImageViewerRuntime.tsx"],"sourcesContent":["import { type Slide } from \"yet-another-react-lightbox\";\n\nimport { type ImageCandidate } from \"../model/imageTypes\";\nimport { type ImageViewerImage } from \"../model/imageViewerTypes\";\n\n/** Проверяет размер до передачи в srcset внешней lightbox-библиотеки. */\nfunction isPositiveFinite(value: number): boolean {\n\treturn Number.isFinite(value) && value > 0;\n}\n\n/**\n * Преобразует width- и density-кандидат в физическую ширину.\n * Density имеет смысл только вместе с известной intrinsic-шириной базового изображения.\n */\nfunction resolveCandidateWidth(candidate: ImageCandidate, intrinsicWidth: number): number | null {\n\tconst width =\n\t\tcandidate.width !== undefined ? candidate.width : candidate.density !== undefined ? intrinsicWidth * candidate.density : 0;\n\n\treturn isPositiveFinite(width) ? Math.round(width) : null;\n}\n\n/**\n * Строит srcSet YARL, которому для каждого варианта нужны одновременно width и height.\n * Альтернативные picture sources намеренно остаются контрактом ImageView: YARL 3.x не поддерживает их\n * в стандартном image slide, а custom slide лишает viewer встроенного responsive preload и Zoom.\n */\nfunction buildLightboxSrcSet(image: ImageViewerImage): Slide[\"srcSet\"] {\n\tconst { intrinsicWidth, intrinsicHeight } = image;\n\n\tif (\n\t\tintrinsicWidth === undefined ||\n\t\tintrinsicHeight === undefined ||\n\t\t!isPositiveFinite(intrinsicWidth) ||\n\t\t!isPositiveFinite(intrinsicHeight)\n\t) {\n\t\treturn undefined;\n\t}\n\n\tconst candidatesByWidth = new Map<number, { src: string; width: number; height: number }>();\n\n\tfor (const candidate of image.candidates ?? []) {\n\t\tconst candidateWidth = resolveCandidateWidth(candidate, intrinsicWidth);\n\n\t\tif (candidateWidth === null || candidatesByWidth.has(candidateWidth)) continue;\n\n\t\tcandidatesByWidth.set(candidateWidth, {\n\t\t\tsrc: candidate.src,\n\t\t\twidth: candidateWidth,\n\t\t\theight: Math.max(1, Math.round((candidateWidth * intrinsicHeight) / intrinsicWidth))\n\t\t});\n\t}\n\n\tconst candidates = [...candidatesByWidth.values()].sort((left, right) => left.width - right.width);\n\treturn candidates.length > 0 ? candidates : undefined;\n}\n\n/**\n * Адаптирует storage-agnostic ResponsiveImageData к image slides Yet Another React Lightbox.\n * Функция остаётся приватной для `/image`, чтобы vendor contract не становился public API пакета.\n */\nexport function buildImageViewerSlides(images: readonly ImageViewerImage[]): Slide[] {\n\treturn images.map((image) => {\n\t\tconst hasIntrinsicSize = isPositiveFinite(image.intrinsicWidth ?? 0) && isPositiveFinite(image.intrinsicHeight ?? 0);\n\n\t\treturn {\n\t\t\tsrc: image.src,\n\t\t\talt: image.alt,\n\t\t\twidth: hasIntrinsicSize ? image.intrinsicWidth : undefined,\n\t\t\theight: hasIntrinsicSize ? image.intrinsicHeight : undefined,\n\t\t\tsrcSet: buildLightboxSrcSet(image),\n\t\t\ttitle: image.title === undefined ? image.alt : image.title,\n\t\t\tdescription: image.description,\n\t\t\tthumbnail: image.thumbnail,\n\t\t\tdownload: image.download\n\t\t};\n\t});\n}\n","import { type ImageViewerLabels } from \"../model/imageViewerTypes\";\n\nconst DEFAULT_IMAGE_VIEWER_LABELS: ImageViewerLabels = {\n\tprevious: \"Предыдущее изображение\",\n\tnext: \"Следующее изображение\",\n\tclose: \"Закрыть просмотр\",\n\tslide: \"Изображение\",\n\tcarousel: \"Карусель изображений\",\n\tlightbox: \"Просмотр изображений\",\n\tphotoGallery: \"Галерея изображений\",\n\tslideCounter: \"{index} из {total}\",\n\tzoomIn: \"Увеличить\",\n\tzoomOut: \"Уменьшить\",\n\tenterFullscreen: \"Перейти в полноэкранный режим\",\n\texitFullscreen: \"Выйти из полноэкранного режима\",\n\tthumbnails: \"Миниатюры\",\n\tshowThumbnails: \"Показать миниатюры\",\n\thideThumbnails: \"Скрыть миниатюры\",\n\tcaption: \"Подпись изображения\",\n\tshowCaptions: \"Показать подписи\",\n\thideCaptions: \"Скрыть подписи\",\n\tdownload: \"Скачать изображение\"\n};\n\n/** Преобразует стабильные semantic labels foundation в ключи локализации YARL. */\nexport function resolveImageViewerLabels(overrides: Partial<ImageViewerLabels> | undefined) {\n\tconst labels = { ...DEFAULT_IMAGE_VIEWER_LABELS, ...overrides };\n\n\treturn {\n\t\tPrevious: labels.previous,\n\t\tNext: labels.next,\n\t\tClose: labels.close,\n\t\tSlide: labels.slide,\n\t\tCarousel: labels.carousel,\n\t\tLightbox: labels.lightbox,\n\t\t\"Photo gallery\": labels.photoGallery,\n\t\t\"{index} of {total}\": labels.slideCounter,\n\t\t\"Zoom in\": labels.zoomIn,\n\t\t\"Zoom out\": labels.zoomOut,\n\t\t\"Enter Fullscreen\": labels.enterFullscreen,\n\t\t\"Exit Fullscreen\": labels.exitFullscreen,\n\t\tThumbnails: labels.thumbnails,\n\t\t\"Show thumbnails\": labels.showThumbnails,\n\t\t\"Hide thumbnails\": labels.hideThumbnails,\n\t\tCaption: labels.caption,\n\t\t\"Show captions\": labels.showCaptions,\n\t\t\"Hide captions\": labels.hideCaptions,\n\t\tDownload: labels.download\n\t};\n}\n",".viewer {\n\t// Переменные YARL остаются внутренней деталью; потребители настраивают только стабильное пространство image-viewer.\n\t--_image-viewer-top-row-height: calc(\n\t\tvar(--image-viewer-icon-size, 1.75rem) + var(--image-viewer-toolbar-padding, var(--space-md, 0.625rem)) +\n\t\t\tvar(--image-viewer-toolbar-padding, var(--space-md, 0.625rem)) + 1rem\n\t);\n\t--yarl__portal_zindex: var(--image-viewer-z-index, var(--z-image-viewer, 300));\n\t--yarl__color_backdrop: var(--image-viewer-backdrop, rgb(0 0 0 / 92%));\n\t--yarl__container_background_color: var(--image-viewer-backdrop, rgb(0 0 0 / 92%));\n\t--yarl__color_button: var(--image-viewer-control-color, rgb(255 255 255 / 82%));\n\t--yarl__color_button_active: var(--image-viewer-control-active-color, var(--white, #fff));\n\t--yarl__color_button_disabled: var(--image-viewer-control-disabled-color, rgb(255 255 255 / 38%));\n\t--yarl__button_background_color: var(--image-viewer-control-background, transparent);\n\t--yarl__button_border: var(--image-viewer-control-border, 0);\n\t--yarl__button_filter: var(--image-viewer-control-filter, drop-shadow(0 0.125rem 0.25rem rgb(0 0 0 / 70%)));\n\t--yarl__icon_size: var(--image-viewer-icon-size, 1.75rem);\n\t--yarl__toolbar_padding: var(--image-viewer-toolbar-padding, var(--space-md, 0.625rem));\n\t--yarl__slide_icon_loading_color: var(--image-viewer-loading-color, var(--image-viewer-control-color, rgb(255 255 255 / 82%)));\n\t--yarl__slide_icon_error_color: var(--image-viewer-error-color, var(--status-error-fill, #d32f2f));\n\t--yarl__slide_captions_container_background: var(--image-viewer-caption-background, rgb(0 0 0 / 62%));\n\t--yarl__slide_title_color: var(--image-viewer-caption-color, var(--white, #fff));\n\t--yarl__slide_description_color: var(--image-viewer-caption-color, var(--white, #fff));\n\t--yarl__counter_color: var(--image-viewer-counter-color, var(--image-viewer-control-color, rgb(255 255 255 / 82%)));\n\t--yarl__thumbnails_container_background_color: var(--image-viewer-backdrop, rgb(0 0 0 / 92%));\n\t--yarl__thumbnails_thumbnail_background: var(--image-viewer-thumbnail-background, rgb(255 255 255 / 8%));\n\t--yarl__thumbnails_thumbnail_border_color: var(\n\t\t--image-viewer-thumbnail-border-color,\n\t\tvar(--image-viewer-control-color, rgb(255 255 255 / 82%))\n\t);\n\t--yarl__thumbnails_thumbnail_active_border_color: var(\n\t\t--image-viewer-thumbnail-active-border-color,\n\t\tvar(--image-viewer-control-active-color, var(--white, #fff))\n\t);\n\n\tfont-family: var(--font-family-base, sans-serif);\n}\n\n.viewer :global(.yarl__button) {\n\tborder-radius: var(--image-viewer-control-radius, var(--radius-sm, 0.3125rem));\n\ttransition:\n\t\tcolor var(--transition-fast, 0.2s) ease,\n\t\tbackground-color var(--transition-fast, 0.2s) ease;\n}\n\n.viewer :global(.yarl__button):focus-visible,\n.viewer :global(.yarl__thumbnails_thumbnail):focus-visible {\n\toutline: var(--image-viewer-focus, var(--focus, 0.125rem solid currentColor));\n\toutline-offset: var(--image-viewer-focus-offset, var(--focus-offset, 0.125rem));\n}\n\n.viewer :global(.yarl__thumbnails_thumbnail):focus-visible {\n\tbox-shadow: none;\n}\n\n.viewer :global(.yarl__slide_image) {\n\tborder-radius: var(--image-viewer-image-radius, var(--radius-sm, 0.3125rem));\n}\n\n.viewer :global(.yarl__slide_title_container) {\n\tbox-sizing: border-box;\n\theight: var(--_image-viewer-top-row-height);\n\toverflow: hidden;\n}\n\n.icon {\n\twidth: var(--image-viewer-icon-size, 1.75rem);\n\theight: var(--image-viewer-icon-size, 1.75rem);\n\tstroke-width: var(--image-viewer-icon-stroke-width, 2);\n}\n\n.loadingIcon {\n\tanimation: imageViewerSpin 1s linear infinite;\n}\n\n@keyframes imageViewerSpin {\n\tto {\n\t\ttransform: rotate(1turn);\n\t}\n}\n\n@media (prefers-reduced-motion: reduce) {\n\t.loadingIcon {\n\t\tanimation: none;\n\t}\n}\n","import { useEffect, useMemo } from \"react\";\n\nimport { cn } from \"@ryuzaki13/react-foundation-lib/utils\";\nimport {\n\tCaptionsIcon,\n\tCaptionsOffIcon,\n\tChevronLeftIcon,\n\tChevronRightIcon,\n\tDownloadIcon,\n\tGalleryThumbnailsIcon,\n\tImageOffIcon,\n\tLoaderCircleIcon,\n\tMaximize2Icon,\n\tMinimize2Icon,\n\tXIcon,\n\tZoomInIcon,\n\tZoomOutIcon\n} from \"lucide-react\";\nimport Lightbox, { isImageSlide, type LightboxExternalProps, type Plugin } from \"yet-another-react-lightbox\";\nimport Captions from \"yet-another-react-lightbox/plugins/captions\";\nimport Counter from \"yet-another-react-lightbox/plugins/counter\";\nimport Download from \"yet-another-react-lightbox/plugins/download\";\nimport Fullscreen from \"yet-another-react-lightbox/plugins/fullscreen\";\nimport Thumbnails from \"yet-another-react-lightbox/plugins/thumbnails\";\nimport Zoom from \"yet-another-react-lightbox/plugins/zoom\";\n\nimport { buildImageViewerSlides } from \"../lib/buildImageViewerSlides\";\nimport { resolveImageViewerLabels } from \"../lib/resolveImageViewerLabels\";\nimport { type ImageViewerProps } from \"../model/imageViewerTypes\";\n\nimport styles from \"./ImageViewer.module.scss\";\n\ntype ImageViewerRuntimeProps = ImageViewerProps & {\n\treadonly onRuntimeMounted: () => void;\n};\n\n/** Внутренняя высота резервируемой верхней строки не является публичной CSS-переменной viewer. */\nconst IMAGE_VIEWER_TOP_ROW_HEIGHT = \"var(--_image-viewer-top-row-height)\";\n\n/**\n * Тяжёлый runtime ImageViewer, изолированный в отдельном динамическом chunk.\n * Компонент приватен для `/image`: YARL-типы и plugin-контракты не должны становиться API foundation.\n */\nexport default function ImageViewerRuntime({\n\topen,\n\timages,\n\tindex = 0,\n\tonClose,\n\tonIndexChange,\n\tfeatures,\n\tloop = false,\n\tcloseOnBackdropClick = true,\n\tcloseOnPullDown = true,\n\tlabels,\n\tclassName,\n\tstyle,\n\tonRuntimeMounted\n}: ImageViewerRuntimeProps) {\n\tuseEffect(() => {\n\t\t// Оболочка сохраняет runtime после первого commit, чтобы не прерывать внутренний close lifecycle YARL.\n\t\tonRuntimeMounted();\n\t}, [onRuntimeMounted]);\n\n\t// Стабильная ссылка предотвращает внешний reset текущего slide при несвязанном rerender родителя.\n\tconst slides = useMemo(() => buildImageViewerSlides(images), [images]);\n\tconst requestedIndex = Number.isFinite(index) ? Math.trunc(index) : 0;\n\tconst resolvedIndex = slides.length > 0 ? Math.min(Math.max(requestedIndex, 0), slides.length - 1) : 0;\n\tconst hasCaptions = images.some((image) => {\n\t\tconst title = image.title === undefined ? image.alt : image.title;\n\t\treturn (title !== undefined && title !== null) || (image.description !== undefined && image.description !== null);\n\t});\n\tconst captionsEnabled = features?.captions ?? hasCaptions;\n\tconst counterEnabled = features?.counter ?? slides.length > 1;\n\tconst downloadEnabled = features?.download ?? false;\n\tconst fullscreenEnabled = features?.fullscreen ?? true;\n\tconst thumbnailsEnabled = features?.thumbnails ?? slides.length > 1;\n\tconst zoomEnabled = features?.zoom ?? true;\n\tconst plugins = useMemo<Plugin[]>(\n\t\t() => [\n\t\t\t...(captionsEnabled ? [Captions] : []),\n\t\t\t...(counterEnabled ? [Counter] : []),\n\t\t\t...(downloadEnabled ? [Download] : []),\n\t\t\t...(fullscreenEnabled ? [Fullscreen] : []),\n\t\t\t...(thumbnailsEnabled ? [Thumbnails] : []),\n\t\t\t...(zoomEnabled ? [Zoom] : [])\n\t\t],\n\t\t[captionsEnabled, counterEnabled, downloadEnabled, fullscreenEnabled, thumbnailsEnabled, zoomEnabled]\n\t);\n\tconst resolvedLabels = useMemo(() => resolveImageViewerLabels(labels), [labels]);\n\tconst lightboxProps: LightboxExternalProps = {\n\t\topen: open && slides.length > 0,\n\t\tclose: onClose,\n\t\tindex: resolvedIndex,\n\t\tslides,\n\t\tplugins,\n\t\tclassName: cn(styles.viewer, className),\n\t\tportal: { container: { style } },\n\t\tlabels: resolvedLabels,\n\t\tcarousel: { finite: !loop },\n\t\tcontroller: { closeOnBackdropClick, closeOnPullDown },\n\t\tcaptions: { showToggle: true },\n\t\tcounter: {\n\t\t\tseparator: \" / \",\n\t\t\tcontainer: {\n\t\t\t\t// При captions счётчик занимает отдельную строку и не пересекается с title в левом верхнем углу.\n\t\t\t\tstyle: captionsEnabled ? { top: IMAGE_VIEWER_TOP_ROW_HEIGHT } : undefined\n\t\t\t}\n\t\t},\n\t\tthumbnails: { showToggle: true },\n\t\tdownload: {\n\t\t\tdownload: ({ slide, saveAs }) => {\n\t\t\t\tif (!isImageSlide(slide) || slide.download === false) return;\n\n\t\t\t\tif (typeof slide.download === \"string\") {\n\t\t\t\t\tsaveAs(slide.download);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (typeof slide.download === \"object\") {\n\t\t\t\t\tsaveAs(slide.download.url, slide.download.filename);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tsaveAs(slide.src);\n\t\t\t}\n\t\t},\n\t\ton: {\n\t\t\tview: ({ index: nextIndex }) => {\n\t\t\t\tif (nextIndex !== resolvedIndex) onIndexChange?.(nextIndex);\n\t\t\t}\n\t\t},\n\t\trender: {\n\t\t\ticonPrev: () => <ChevronLeftIcon aria-hidden=\"true\" className={styles.icon} />,\n\t\t\ticonNext: () => <ChevronRightIcon aria-hidden=\"true\" className={styles.icon} />,\n\t\t\ticonClose: () => <XIcon aria-hidden=\"true\" className={styles.icon} />,\n\t\t\ticonLoading: () => <LoaderCircleIcon aria-hidden=\"true\" className={cn(styles.icon, styles.loadingIcon)} />,\n\t\t\ticonError: () => <ImageOffIcon aria-hidden=\"true\" className={styles.icon} />,\n\t\t\ticonZoomIn: () => <ZoomInIcon aria-hidden=\"true\" className={styles.icon} />,\n\t\t\ticonZoomOut: () => <ZoomOutIcon aria-hidden=\"true\" className={styles.icon} />,\n\t\t\ticonEnterFullscreen: () => <Maximize2Icon aria-hidden=\"true\" className={styles.icon} />,\n\t\t\ticonExitFullscreen: () => <Minimize2Icon aria-hidden=\"true\" className={styles.icon} />,\n\t\t\ticonThumbnailsVisible: () => <GalleryThumbnailsIcon aria-hidden=\"true\" className={styles.icon} />,\n\t\t\ticonThumbnailsHidden: () => <GalleryThumbnailsIcon aria-hidden=\"true\" className={styles.icon} />,\n\t\t\ticonCaptionsVisible: () => <CaptionsIcon aria-hidden=\"true\" className={styles.icon} />,\n\t\t\ticonCaptionsHidden: () => <CaptionsOffIcon aria-hidden=\"true\" className={styles.icon} />,\n\t\t\ticonDownload: () => <DownloadIcon aria-hidden=\"true\" className={styles.icon} />\n\t\t}\n\t};\n\n\treturn <Lightbox {...lightboxProps} />;\n}\n"],"mappings":";;;;;;;;;;;;AAMA,SAAS,EAAiB,GAAwB;CACjD,OAAO,OAAO,SAAS,CAAK,KAAK,IAAQ;AAC1C;AAMA,SAAS,EAAsB,GAA2B,GAAuC;CAChG,IAAM,IACL,EAAU,UAAU,KAAA,IAA8B,EAAU,YAAY,KAAA,IAAiD,IAArC,IAAiB,EAAU,UAA/E,EAAU;CAE3C,OAAO,EAAiB,CAAK,IAAI,KAAK,MAAM,CAAK,IAAI;AACtD;AAOA,SAAS,EAAoB,GAA0C;CACtE,IAAM,EAAE,mBAAgB,uBAAoB;CAE5C,IACC,MAAmB,KAAA,KACnB,MAAoB,KAAA,KACpB,CAAC,EAAiB,CAAc,KAChC,CAAC,EAAiB,CAAe,GAEjC;CAGD,IAAM,oBAAoB,IAAI,IAA4D;CAE1F,KAAK,IAAM,KAAa,EAAM,cAAc,CAAC,GAAG;EAC/C,IAAM,IAAiB,EAAsB,GAAW,CAAc;EAElE,MAAmB,QAAQ,EAAkB,IAAI,CAAc,KAEnE,EAAkB,IAAI,GAAgB;GACrC,KAAK,EAAU;GACf,OAAO;GACP,QAAQ,KAAK,IAAI,GAAG,KAAK,MAAO,IAAiB,IAAmB,CAAc,CAAC;EACpF,CAAC;CACF;CAEA,IAAM,IAAa,CAAC,GAAG,EAAkB,OAAO,CAAC,CAAC,CAAC,MAAM,GAAM,MAAU,EAAK,QAAQ,EAAM,KAAK;CACjG,OAAO,EAAW,SAAS,IAAI,IAAa,KAAA;AAC7C;AAMA,SAAgB,EAAuB,GAA8C;CACpF,OAAO,EAAO,KAAK,MAAU;EAC5B,IAAM,IAAmB,EAAiB,EAAM,kBAAkB,CAAC,KAAK,EAAiB,EAAM,mBAAmB,CAAC;EAEnH,OAAO;GACN,KAAK,EAAM;GACX,KAAK,EAAM;GACX,OAAO,IAAmB,EAAM,iBAAiB,KAAA;GACjD,QAAQ,IAAmB,EAAM,kBAAkB,KAAA;GACnD,QAAQ,EAAoB,CAAK;GACjC,OAAO,EAAM,UAAU,KAAA,IAAY,EAAM,MAAM,EAAM;GACrD,aAAa,EAAM;GACnB,WAAW,EAAM;GACjB,UAAU,EAAM;EACjB;CACD,CAAC;AACF;;;AC1EA,IAAM,IAAiD;CACtD,UAAU;CACV,MAAM;CACN,OAAO;CACP,OAAO;CACP,UAAU;CACV,UAAU;CACV,cAAc;CACd,cAAc;CACd,QAAQ;CACR,SAAS;CACT,iBAAiB;CACjB,gBAAgB;CAChB,YAAY;CACZ,gBAAgB;CAChB,gBAAgB;CAChB,SAAS;CACT,cAAc;CACd,cAAc;CACd,UAAU;AACX;AAGA,SAAgB,EAAyB,GAAmD;CAC3F,IAAM,IAAS;EAAE,GAAG;EAA6B,GAAG;CAAU;CAE9D,OAAO;EACN,UAAU,EAAO;EACjB,MAAM,EAAO;EACb,OAAO,EAAO;EACd,OAAO,EAAO;EACd,UAAU,EAAO;EACjB,UAAU,EAAO;EACjB,iBAAiB,EAAO;EACxB,sBAAsB,EAAO;EAC7B,WAAW,EAAO;EAClB,YAAY,EAAO;EACnB,oBAAoB,EAAO;EAC3B,mBAAmB,EAAO;EAC1B,YAAY,EAAO;EACnB,mBAAmB,EAAO;EAC1B,mBAAmB,EAAO;EAC1B,SAAS,EAAO;EAChB,iBAAiB,EAAO;EACxB,iBAAiB,EAAO;EACxB,UAAU,EAAO;CAClB;AACD;;;;;;GEZM,IAA8B;AAMpC,SAAwB,EAAmB,EAC1C,SACA,WACA,WAAQ,GACR,YACA,kBACA,aACA,UAAO,IACP,0BAAuB,IACvB,qBAAkB,IAClB,WACA,cACA,UACA,uBAC2B;CAC3B,QAAgB;EAEf,EAAiB;CAClB,GAAG,CAAC,CAAgB,CAAC;CAGrB,IAAM,IAAS,QAAc,EAAuB,CAAM,GAAG,CAAC,CAAM,CAAC,GAC/D,IAAiB,OAAO,SAAS,CAAK,IAAI,KAAK,MAAM,CAAK,IAAI,GAC9D,IAAgB,EAAO,SAAS,IAAI,KAAK,IAAI,KAAK,IAAI,GAAgB,CAAC,GAAG,EAAO,SAAS,CAAC,IAAI,GAC/F,IAAc,EAAO,MAAM,OAClB,EAAM,UAAU,KAAA,IAAY,EAAM,MAAM,EAAM,UACnB,QAAU,EAAM,gBAAgB,KAAA,KAAa,EAAM,gBAAgB,IAC5G,GACK,IAAkB,GAAU,YAAY,GACxC,IAAiB,GAAU,WAAW,EAAO,SAAS,GACtD,IAAkB,GAAU,YAAY,IACxC,IAAoB,GAAU,cAAc,IAC5C,IAAoB,GAAU,cAAc,EAAO,SAAS,GAC5D,IAAc,GAAU,QAAQ,IAChC,IAAU,QACT;EACL,GAAI,IAAkB,CAAC,CAAQ,IAAI,CAAC;EACpC,GAAI,IAAiB,CAAC,CAAO,IAAI,CAAC;EAClC,GAAI,IAAkB,CAAC,CAAQ,IAAI,CAAC;EACpC,GAAI,IAAoB,CAAC,CAAU,IAAI,CAAC;EACxC,GAAI,IAAoB,CAAC,CAAU,IAAI,CAAC;EACxC,GAAI,IAAc,CAAC,CAAI,IAAI,CAAC;CAC7B,GACA;EAAC;EAAiB;EAAgB;EAAiB;EAAmB;EAAmB;CAAW,CACrG,GACM,IAAiB,QAAc,EAAyB,CAAM,GAAG,CAAC,CAAM,CAAC;CA6D/E,OAAO,kBAAC,GAAD;EA3DN,MAAM,KAAQ,EAAO,SAAS;EAC9B,OAAO;EACP,OAAO;EACP;EACA;EACA,WAAW,EAAG,EAAO,QAAQ,CAAS;EACtC,QAAQ,EAAE,WAAW,EAAE,SAAM,EAAE;EAC/B,QAAQ;EACR,UAAU,EAAE,QAAQ,CAAC,EAAK;EAC1B,YAAY;GAAE;GAAsB;EAAgB;EACpD,UAAU,EAAE,YAAY,GAAK;EAC7B,SAAS;GACR,WAAW;GACX,WAAW,EAEV,OAAO,IAAkB,EAAE,KAAK,EAA4B,IAAI,KAAA,EACjE;EACD;EACA,YAAY,EAAE,YAAY,GAAK;EAC/B,UAAU,EACT,WAAW,EAAE,UAAO,gBAAa;GAC5B,OAAC,EAAa,CAAK,KAAK,EAAM,aAAa,KAE/C;QAAI,OAAO,EAAM,YAAa,UAAU;KACvC,EAAO,EAAM,QAAQ;KACrB;IACD;IAEA,IAAI,OAAO,EAAM,YAAa,UAAU;KACvC,EAAO,EAAM,SAAS,KAAK,EAAM,SAAS,QAAQ;KAClD;IACD;IAEA,EAAO,EAAM,GAAG;GAPhB;EAQD,EACD;EACA,IAAI,EACH,OAAO,EAAE,OAAO,QAAgB;GAC/B,AAAI,MAAc,KAAe,IAAgB,CAAS;EAC3D,EACD;EACA,QAAQ;GACP,gBAAgB,kBAAC,GAAD;IAAiB,eAAY;IAAO,WAAW,EAAO;GAAO,CAAA;GAC7E,gBAAgB,kBAAC,GAAD;IAAkB,eAAY;IAAO,WAAW,EAAO;GAAO,CAAA;GAC9E,iBAAiB,kBAAC,GAAD;IAAO,eAAY;IAAO,WAAW,EAAO;GAAO,CAAA;GACpE,mBAAmB,kBAAC,GAAD;IAAkB,eAAY;IAAO,WAAW,EAAG,EAAO,MAAM,EAAO,WAAW;GAAI,CAAA;GACzG,iBAAiB,kBAAC,GAAD;IAAc,eAAY;IAAO,WAAW,EAAO;GAAO,CAAA;GAC3E,kBAAkB,kBAAC,GAAD;IAAY,eAAY;IAAO,WAAW,EAAO;GAAO,CAAA;GAC1E,mBAAmB,kBAAC,GAAD;IAAa,eAAY;IAAO,WAAW,EAAO;GAAO,CAAA;GAC5E,2BAA2B,kBAAC,GAAD;IAAe,eAAY;IAAO,WAAW,EAAO;GAAO,CAAA;GACtF,0BAA0B,kBAAC,GAAD;IAAe,eAAY;IAAO,WAAW,EAAO;GAAO,CAAA;GACrF,6BAA6B,kBAAC,GAAD;IAAuB,eAAY;IAAO,WAAW,EAAO;GAAO,CAAA;GAChG,4BAA4B,kBAAC,GAAD;IAAuB,eAAY;IAAO,WAAW,EAAO;GAAO,CAAA;GAC/F,2BAA2B,kBAAC,GAAD;IAAc,eAAY;IAAO,WAAW,EAAO;GAAO,CAAA;GACrF,0BAA0B,kBAAC,GAAD;IAAiB,eAAY;IAAO,WAAW,EAAO;GAAO,CAAA;GACvF,oBAAoB,kBAAC,GAAD;IAAc,eAAY;IAAO,WAAW,EAAO;GAAO,CAAA;EAC/E;CAGoC,CAAA;AACtC"}
|
package/dist/chunks/{TextEditorLexicalClient-bDEyimUa.js → TextEditorLexicalClient-DDe1NezE.js}
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { n as e } from "./button-CC0Jdx1j.js";
|
|
2
2
|
import { r as t } from "./grid-dI94AAbi.js";
|
|
3
3
|
import { n } from "./input-CZLUUggm.js";
|
|
4
|
-
import { i as r, n as i, r as a } from "./modal-
|
|
4
|
+
import { i as r, n as i, r as a } from "./modal-DiQ-yR71.js";
|
|
5
5
|
import { t as o } from "./check-box-BowNqqd3.js";
|
|
6
6
|
import { n as s } from "./radio-group-B9XjkcOy.js";
|
|
7
7
|
import { a as c, i as l, n as u, r as d, t as f } from "./types-CxXyru6U.js";
|
|
@@ -1476,4 +1476,4 @@ function lt({ initialData: e, onChange: t, toolbarComponents: n, businessAdapter
|
|
|
1476
1476
|
//#endregion
|
|
1477
1477
|
export { lt as TextEditorLexicalClient };
|
|
1478
1478
|
|
|
1479
|
-
//# sourceMappingURL=TextEditorLexicalClient-
|
|
1479
|
+
//# sourceMappingURL=TextEditorLexicalClient-DDe1NezE.js.map
|