@nulib/clover 4.0.0-beta.1 → 4.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 +7 -7
- package/dist/components/Annotations/Annotations.mjs +165 -204
- package/dist/components/Annotations/EntryBodies.mjs +28 -3
- package/dist/components/Annotations/languages.mjs +1 -17
- package/dist/components/Body/Body.mjs +16 -1
- package/dist/components/Body/BodyAlert.mjs +2 -1
- package/dist/components/Body/Caption.mjs +2 -1
- package/dist/components/Body/CaptionDetails.mjs +2 -1
- package/dist/components/Body/glyphs.mjs +24 -0
- package/dist/components/Canvas/AnnotationMenu.mjs +76 -60
- package/dist/components/Canvas/AnnotationState.mjs +9 -2
- package/dist/components/Canvas/Annotations.mjs +16 -7
- package/dist/components/Canvas/CanvasView.mjs +287 -42
- package/dist/components/Canvas/ChaptersMenu.mjs +105 -0
- package/dist/components/Canvas/ChoiceMenu.mjs +51 -31
- package/dist/components/Canvas/Connected.mjs +38 -4
- package/dist/components/Canvas/ControlMenu.mjs +29 -8
- package/dist/components/Canvas/Controls.mjs +227 -48
- package/dist/components/Canvas/ControlsFade.mjs +16 -0
- package/dist/components/Canvas/FrameAnimation.mjs +568 -167
- package/dist/components/Canvas/ImageControls.mjs +209 -0
- package/dist/components/Canvas/LoadedCanvas.mjs +5 -3
- package/dist/components/Canvas/PlaceBox.mjs +74 -0
- package/dist/components/Canvas/Placeholder.mjs +46 -13
- package/dist/components/Canvas/RowFits.mjs +85 -0
- package/dist/components/Canvas/fromManifest.mjs +2 -1
- package/dist/components/Canvas/layout.mjs +132 -32
- package/dist/components/Canvas/media/MediaBody.mjs +130 -45
- package/dist/components/Canvas/media/Player.mjs +9 -78
- package/dist/components/Canvas/media/Transport.mjs +102 -78
- package/dist/components/Canvas/media/TransportButton.mjs +2 -1
- package/dist/components/Canvas/media/placeMenu.mjs +19 -0
- package/dist/components/Canvas/media/seekGaps.mjs +43 -0
- package/dist/components/Canvas/media/sequence.mjs +96 -0
- package/dist/components/Canvas/media/useMediaElement.mjs +22 -3
- package/dist/components/Canvas/panClearOfControls.mjs +1 -1
- package/dist/components/Collection/Collection.mjs +3 -2
- package/dist/components/CollectionSelect/CollectionSelect.mjs +5 -2
- package/dist/components/Contents/Contents.mjs +163 -34
- package/dist/components/Download/Download.mjs +34 -38
- package/dist/components/Download/downloads.mjs +40 -0
- package/dist/components/Items/AnnotationItems.mjs +165 -0
- package/dist/components/Items/CountMenu.mjs +90 -0
- package/dist/components/Items/Item.mjs +27 -19
- package/dist/components/Items/Items.mjs +93 -45
- package/dist/components/Items/Pager.mjs +39 -79
- package/dist/components/Items/PagerLayout.mjs +43 -0
- package/dist/components/Items/Position.mjs +103 -0
- package/dist/components/Items/StandaloneItems.mjs +12 -4
- package/dist/components/Items/TargetItems.mjs +202 -0
- package/dist/components/Items/masonry.mjs +35 -0
- package/dist/components/Label/Label.mjs +2 -1
- package/dist/components/Map/MapView.mjs +367 -57
- package/dist/components/Panel/About.mjs +61 -15
- package/dist/components/Panel/AboutActions.mjs +117 -0
- package/dist/components/Panel/Panel.mjs +58 -18
- package/dist/components/Panel/PartOfManifest.mjs +4 -3
- package/dist/components/Panel/ReadingLanguages.mjs +20 -0
- package/dist/components/Primitives/Primitives.mjs +18 -3
- package/dist/components/Provider/Provider.mjs +19 -5
- package/dist/components/Root/Announcer.mjs +3 -2
- package/dist/components/Root/Root.mjs +5 -2
- package/dist/components/Root/useRootState.mjs +16 -51
- package/dist/components/Scene/SceneView.mjs +36 -8
- package/dist/components/Scene/cloverEngine.mjs +2 -1
- package/dist/components/Search/Search.mjs +3 -2
- package/dist/components/Split/Split.mjs +4 -1
- package/dist/components/Status/Status.mjs +10 -2
- package/dist/components/Timeline/playerSurface.mjs +4 -1
- package/dist/components/Transcript/Transcript.mjs +42 -23
- package/dist/core/annotation-bodies.mjs +25 -5
- package/dist/core/annotation-collection.mjs +3 -2
- package/dist/core/annotation-name.mjs +12 -9
- package/dist/core/annotation-sets.mjs +139 -10
- package/dist/core/annotations-content.mjs +8 -1
- package/dist/core/annotations.mjs +8 -1
- package/dist/core/choice-key.mjs +5 -0
- package/dist/core/clover.mjs +112 -24
- package/dist/core/content-state-reader.mjs +33 -2
- package/dist/core/content-state.mjs +5 -3
- package/dist/core/dates-format.mjs +30 -0
- package/dist/core/dates.mjs +19 -0
- package/dist/core/geo.mjs +46 -5
- package/dist/core/image-layers.mjs +96 -0
- package/dist/core/items.mjs +4 -2
- package/dist/core/language-choice.mjs +30 -0
- package/dist/core/link.mjs +15 -1
- package/dist/core/load.mjs +4 -2
- package/dist/core/pages.mjs +20 -1
- package/dist/core/presentation.mjs +6 -4
- package/dist/core/range-regions.mjs +70 -0
- package/dist/core/ranges.mjs +52 -18
- package/dist/core/region.mjs +7 -2
- package/dist/core/sanitize.mjs +86 -1
- package/dist/core/save-file.mjs +33 -0
- package/dist/core/selectors.mjs +12 -0
- package/dist/core/upgrade.mjs +23 -0
- package/dist/core/value.mjs +11 -23
- package/dist/hooks/useFullscreenExit.mjs +26 -0
- package/dist/hooks/useHighContrast.mjs +27 -0
- package/dist/i18n/autonym.mjs +11 -0
- package/dist/i18n/config.mjs +3 -8
- package/dist/{core → i18n}/direction.mjs +5 -1
- package/dist/i18n/languages.mjs +44 -0
- package/dist/i18n/locales/en.json.mjs +1 -1
- package/dist/i18n/locales/es.json.mjs +1 -1
- package/dist/i18n/locales/fi.json.mjs +1 -1
- package/dist/i18n/locales/fr.json.mjs +1 -1
- package/dist/i18n/locales/nb.json.mjs +1 -1
- package/dist/i18n/locales/nn.json.mjs +1 -1
- package/dist/i18n/locales/no.json.mjs +1 -1
- package/dist/i18n/locales/pt.json.mjs +1 -1
- package/dist/{ui → i18n}/useContainerName.mjs +5 -4
- package/dist/{react/language.mjs → i18n/useRootLanguage.mjs} +2 -2
- package/dist/index.d.mts +476 -78
- package/dist/index.mjs +6 -2
- package/dist/lib/fullscreen.mjs +6 -1
- package/dist/lib/gltf/load.mjs +26 -6
- package/dist/lib/renderer/CanvasRenderer.mjs +71 -36
- package/dist/lib/renderer/camera/Camera.mjs +1 -1
- package/dist/lib/renderer/math/affine.mjs +14 -0
- package/dist/lib/renderer/scene/planFrame.mjs +12 -12
- package/dist/lib/renderer/scene/regions.mjs +11 -1
- package/dist/lib/renderer/scene/sceneItem.mjs +72 -9
- package/dist/lib/time.mjs +10 -0
- package/dist/map/index.d.mts +26 -4
- package/dist/react/fetchManifest.mjs +19 -0
- package/dist/react/hooks.mjs +7 -1
- package/dist/react/readingLanguages.mjs +16 -0
- package/dist/react/useContentStateOutput.mjs +71 -0
- package/dist/react/usePagesReached.mjs +42 -0
- package/dist/styles.css +1 -1
- package/dist/templates/default/Default.mjs +122 -135
- package/dist/templates/document/Document.mjs +45 -64
- package/dist/templates/document/Sheets.mjs +13 -5
- package/dist/templates/gallery/Gallery.mjs +90 -18
- package/dist/templates/index.d.mts +318 -18
- package/dist/templates/shared/Lightbox.mjs +161 -69
- package/dist/templates/shared/LightboxView.mjs +118 -0
- package/dist/templates/shared/PanelPane.mjs +104 -0
- package/dist/templates/{document/DocumentPanel.mjs → shared/PanelPart.mjs} +2 -2
- package/dist/templates/shared/dragToClose.mjs +51 -8
- package/dist/templates/shared/givenAnnotations.mjs +13 -0
- package/dist/templates/shared/useDragToClose.mjs +6 -3
- package/dist/templates/shared/useLazyPanelPane.mjs +16 -0
- package/dist/templates/shared/useSlide.mjs +6 -0
- package/dist/templates.css +1 -1
- package/dist/ui/BodyUnloadable.mjs +34 -0
- package/dist/ui/Button.mjs +2 -1
- package/dist/ui/Chevron.mjs +34 -0
- package/dist/ui/ControlCluster.mjs +15 -14
- package/dist/ui/EntryThumbnail.mjs +60 -0
- package/dist/ui/ExitFullscreen.mjs +2 -1
- package/dist/ui/FieldPill.mjs +5 -4
- package/dist/ui/HideToggle.mjs +2 -1
- package/dist/ui/LanguageChoice.mjs +45 -0
- package/dist/ui/ListEnd.mjs +29 -0
- package/dist/ui/Markup.mjs +27 -8
- package/dist/ui/NavDate.mjs +29 -0
- package/dist/ui/ReadMore.mjs +3 -2
- package/dist/ui/Sections.mjs +22 -31
- package/dist/ui/Steps.mjs +4 -3
- package/dist/ui/Tip.mjs +9 -4
- package/dist/ui/mediaIcons.mjs +35 -8
- package/dist/ui/useScrollTrack.mjs +2 -1
- package/dist/web-components/About-DvyvVUK5.mjs +1 -0
- package/dist/web-components/AnnotationItems-BpRcSrOM.mjs +1 -0
- package/dist/web-components/AnnotationMenu-BDPec3iI.mjs +1 -0
- package/dist/web-components/AnnotationState-Chs_37Kk.mjs +1 -0
- package/dist/web-components/Annotations-6E-oD_wg.mjs +2 -0
- package/dist/web-components/Annotations-CLPEq7Ro.mjs +1 -0
- package/dist/web-components/Body-Ct61yxI7.mjs +1 -0
- package/dist/web-components/BodyAlert-C_Qh3Up_.mjs +1 -0
- package/dist/web-components/Button-L8ZMy5lY.mjs +1 -0
- package/dist/web-components/{Camera-cdCqKMup.mjs → Camera-BPyLzZjP.mjs} +1 -1
- package/dist/web-components/{Canvas2DBackend-CnLEHRs4.mjs → Canvas2DBackend-8wFavYdl.mjs} +1 -1
- package/dist/web-components/CanvasView-2Fj9nT06.mjs +2 -0
- package/dist/web-components/CaptionDetails-DuwS-grE.mjs +1 -0
- package/dist/web-components/ChaptersMenu-Bj2EqtVJ.mjs +1 -0
- package/dist/web-components/Chevron-Cyr_cc9X.mjs +1 -0
- package/dist/web-components/ChoiceMenu-ConzybVH.mjs +1 -0
- package/dist/web-components/Collection-CLayN8sv.mjs +1 -0
- package/dist/web-components/CollectionSelect-D2d8dGJ4.mjs +1 -0
- package/dist/web-components/Connected-CBQ6xyhr.mjs +1 -0
- package/dist/web-components/Connected-DMXG3imZ.mjs +1 -0
- package/dist/web-components/Connected-pyd0EBD3.mjs +1 -0
- package/dist/web-components/Contents-tCMXBYDK.mjs +1 -0
- package/dist/web-components/ControlMenu-D1zkB0qX.mjs +1 -0
- package/dist/web-components/ControlsFade-BNXVTL_Q.mjs +1 -0
- package/dist/web-components/CountMenu-Dnzb7lKo.mjs +1 -0
- package/dist/web-components/Cue-CUGmPS3k.mjs +1 -0
- package/dist/web-components/Document-D-8nalCX.mjs +1 -0
- package/dist/web-components/{DomLayers-BD4QPbl6.mjs → DomLayers-BxPU05-D.mjs} +1 -1
- package/dist/web-components/Download-Bku9Vptk.mjs +1 -0
- package/dist/web-components/EntryBodies-77vDudCb.mjs +1 -0
- package/dist/web-components/EntryThumbnail-BxQWKW6e.mjs +1 -0
- package/dist/web-components/FieldPill-nFGsaru9.mjs +1 -0
- package/dist/web-components/FrameAnimation-BvKiSXcm.mjs +1 -0
- package/dist/web-components/Gallery-4Hd58afA.mjs +1 -0
- package/dist/web-components/HideToggle-TEhY4TS4.mjs +1 -0
- package/dist/web-components/ImageControls-CZO7WoPb.mjs +1 -0
- package/dist/web-components/Items-CudZ4Lnb.mjs +1 -0
- package/dist/web-components/Label-f07N5Fld.mjs +1 -0
- package/dist/web-components/LanguageChoice-B5VM21DV.mjs +1 -0
- package/dist/web-components/LightboxView-C4OASmkg.mjs +1 -0
- package/dist/web-components/ListEnd-M39M62Cl.mjs +1 -0
- package/dist/web-components/{Loaded-D5xmFRSo.mjs → Loaded-oGFyBuos.mjs} +1 -1
- package/dist/web-components/LoadedCanvas-IvpSzPO6.mjs +1 -0
- package/dist/web-components/LoadedMap-WATGNLxl.mjs +1 -0
- package/dist/web-components/{Loading-CBKfwsML.mjs → Loading-YxuKrDAM.mjs} +1 -1
- package/dist/web-components/{Map-Bcgp_R8H.mjs → Map-Cw9j3gi3.mjs} +1 -1
- package/dist/web-components/MapView-3OxoCr5l.mjs +3 -0
- package/dist/web-components/Markup-DW75Jx3j.mjs +2 -0
- package/dist/web-components/MediaBody-CLtd0bf0.mjs +1 -0
- package/dist/web-components/MediaBody-JnKnoIqY.mjs +1 -0
- package/dist/web-components/NavDate-BCCOyycx.mjs +1 -0
- package/dist/web-components/{Navigator-BSJbEbuJ.mjs → Navigator-Bx4zS0Yr.mjs} +1 -1
- package/dist/web-components/Pager-B9GvQ64b.mjs +1 -0
- package/dist/web-components/PagerLayout-BF33VZL_.mjs +1 -0
- package/dist/web-components/Panel-BvDpCn6K.mjs +1 -0
- package/dist/web-components/PanelPart-Bd4lSUrP.mjs +1 -0
- package/dist/web-components/{PanelToggle-mUDw73zI.mjs → PanelToggle-bPcIULGZ.mjs} +1 -1
- package/dist/web-components/PartOfManifest-HLg-r00O.mjs +1 -0
- package/dist/web-components/{Pending-BPOQ2z1L.mjs → Pending-BxGjjnqq.mjs} +1 -1
- package/dist/web-components/PlaceBox-D-Zhe9-U.mjs +1 -0
- package/dist/web-components/Placeholder-DzY5hcbk.mjs +1 -0
- package/dist/web-components/Position-TYnzcm8e.mjs +1 -0
- package/dist/web-components/Primitives-C6VJXxZD.mjs +1 -0
- package/dist/web-components/Provider-DyB0wpeO.mjs +1 -0
- package/dist/web-components/ReadMore-De_0T7lc.mjs +1 -0
- package/dist/web-components/Root-Bt3NNBFb.mjs +1 -0
- package/dist/web-components/Scene-DrOM9YlD.mjs +1 -0
- package/dist/web-components/SceneView-DA7Yg20p.mjs +1 -0
- package/dist/web-components/Search-DgT8OPsK.mjs +1 -0
- package/dist/web-components/Sections-d1acn7qm.mjs +2 -0
- package/dist/web-components/StandaloneItems-DUb4YKCB.mjs +1 -0
- package/dist/web-components/Status-CcU3u6P4.mjs +1 -0
- package/dist/web-components/Steps-nlSCzbDQ.mjs +1 -0
- package/dist/web-components/TargetItems-BDJM3Ar-.mjs +1 -0
- package/dist/web-components/Timeline-BfdN3lIv.mjs +1 -0
- package/dist/web-components/Tip-OCB88zwY.mjs +1 -0
- package/dist/web-components/Transcript-bSA3cx_K.mjs +1 -0
- package/dist/web-components/Transport-DaIhfZqC.mjs +1 -0
- package/dist/web-components/Transport-DjOYI-fR.mjs +1 -0
- package/dist/web-components/annotation-collection-D8emkElk.mjs +1 -0
- package/dist/web-components/annotation-name-DbWjhgra.mjs +1 -0
- package/dist/web-components/annotations-content-Bg6aVAGC.mjs +1 -0
- package/dist/web-components/body-Ct8dmQdW.mjs +1 -0
- package/dist/web-components/canvas-goEZLqEd.mjs +1 -0
- package/dist/web-components/choice-key-BUNebLKe.mjs +1 -0
- package/dist/web-components/cloverEngine-Df7cMwOP.mjs +164 -0
- package/dist/web-components/content-state-reader-CNmBpG1L.mjs +1 -0
- package/dist/web-components/{controls-Dj2BybWb.mjs → controls-BZr16sYQ.mjs} +1 -1
- package/dist/web-components/custom-elements.json +260 -48
- package/dist/web-components/dates-DR3gfcON.mjs +1 -0
- package/dist/web-components/downloads-EjJ6Hpip.mjs +1 -0
- package/dist/web-components/dragToClose-X9NbZOhA.mjs +1 -0
- package/dist/web-components/{engine-BSt8LTso.mjs → engine-DMoc0tff.mjs} +1 -1
- package/dist/web-components/{engines-CC0OEsVE.mjs → engines-BmB81VXR.mjs} +1 -1
- package/dist/web-components/es-B1NvdYp-.mjs +1 -0
- package/dist/web-components/fetchManifest-CwQC6cCh.mjs +1 -0
- package/dist/web-components/fi-BjtYZNLo.mjs +1 -0
- package/dist/web-components/fr-Cd22Lziw.mjs +1 -0
- package/dist/web-components/fromManifest-DrAmY1lB.mjs +1 -0
- package/dist/web-components/glyphs-BFK_hvJJ.mjs +1 -0
- package/dist/web-components/hooks-BhtNDs_1.mjs +1 -0
- package/dist/web-components/image-layers-D2nQC4R-.mjs +1 -0
- package/dist/web-components/{imageService-dsdmcegU.mjs → imageService-iFElsopt.mjs} +1 -1
- package/dist/web-components/index-FJEpXukG.mjs +1 -0
- package/dist/web-components/index.d.mts +99 -14
- package/dist/web-components/index.mjs +1 -1
- package/dist/web-components/items-BPPrqbeh.mjs +1 -0
- package/dist/web-components/items-BnEnc5ot.mjs +1 -0
- package/dist/web-components/label-DauFa5sg.mjs +1 -0
- package/dist/web-components/layout-Djwu8f4R.mjs +1 -0
- package/dist/web-components/link-0lUlTZlw.mjs +1 -0
- package/dist/web-components/logo-DWPxaZaG.mjs +1 -0
- package/dist/web-components/masonry-0QfzOgbB.mjs +1 -0
- package/dist/web-components/models-BF2pqufA.mjs +1 -0
- package/dist/web-components/nb-CEwZDBiR.mjs +1 -0
- package/dist/web-components/nn-jYQhr9RI.mjs +1 -0
- package/dist/web-components/no-CEwZDBiR.mjs +1 -0
- package/dist/web-components/{nodes-B7JRwBgl.mjs → nodes-ChQRLDGU.mjs} +1 -1
- package/dist/web-components/{overlayImage-0OgQl1TL.mjs → overlayImage-MKrcgDep.mjs} +1 -1
- package/dist/web-components/panClearOfControls-Cn2ZXsZi.mjs +1 -0
- package/dist/web-components/{panel-CjXfre-g.mjs → panel-C13V6w6E.mjs} +1 -1
- package/dist/web-components/part-CekFWrtz.mjs +1 -0
- package/dist/web-components/playerSurface-DG1XipTq.mjs +1 -0
- package/dist/web-components/pointer-YQppt0at.mjs +1 -0
- package/dist/web-components/presentation-2-C-U79S_T.mjs +1 -0
- package/dist/web-components/{provider-C1wKfdjb.mjs → provider-DiUkZYiW.mjs} +1 -1
- package/dist/web-components/pt-CWR30SzS.mjs +1 -0
- package/dist/web-components/range-regions-CqGjyM76.mjs +1 -0
- package/dist/web-components/read-more-D8RJYdtQ.mjs +1 -0
- package/dist/web-components/readingLanguages-BWOLZK2k.mjs +1 -0
- package/dist/web-components/rendererSurface-BkbGDL_Z.mjs +22 -0
- package/dist/web-components/{renderers-BMSWEFUR.mjs → renderers-LtRX5pT0.mjs} +1 -1
- package/dist/web-components/{resource-DLHocQ1C.mjs → resource-Cfydiy4m.mjs} +1 -1
- package/dist/web-components/sanitize-qIOeyIww.mjs +3 -0
- package/dist/web-components/save-file-dZyOpXgY.mjs +1 -0
- package/dist/web-components/search-BfUZJM3a.mjs +1 -0
- package/dist/web-components/sequence-C28xoNmD.mjs +1 -0
- package/dist/web-components/shared-DkY2a89G.mjs +1 -0
- package/dist/web-components/{show-link-CyzYE1eS.mjs → show-link-DgLJzG7k.mjs} +1 -1
- package/dist/web-components/{sizedImage-uv_NlE0l.mjs → sizedImage-NHzhcBYk.mjs} +1 -1
- package/dist/web-components/{split-CYuMjp89.mjs → split-CuFiKjin.mjs} +1 -1
- package/dist/web-components/{status-Ms5L0ghK.mjs → status-C3etlkhY.mjs} +1 -1
- package/dist/web-components/styles-DkkVOSUQ.mjs +1 -0
- package/dist/web-components/three.mjs +1 -1
- package/dist/web-components/thumbnail-DecrVnpj.mjs +1 -0
- package/dist/web-components/{tip-dWhupWSr.mjs → tip-D5YgaIWW.mjs} +1 -1
- package/dist/web-components/{toggle-BQTjR1I3.mjs → toggle-CZGB65VZ.mjs} +1 -1
- package/dist/web-components/upgrade-eNW0DPXq.mjs +1 -0
- package/dist/web-components/upgrader-BlbMUEH6.mjs +1 -0
- package/dist/web-components/useContainerName-hKQjEt7a.mjs +1 -0
- package/dist/web-components/useControlsVisibility-DPg8uAkW.mjs +1 -0
- package/dist/web-components/useLazyPanelPane-eby-OI1V.mjs +1 -0
- package/dist/web-components/useNearViewport-CDbHQUBk.mjs +1 -0
- package/dist/web-components/useScrollTrack-D9l_P3_B.mjs +1 -0
- package/dist/web-components/viewer/AnnotationItems-DtsnDXPM.mjs +1 -0
- package/dist/web-components/viewer/AnnotationMenu-C-Mz6CCn.mjs +1 -0
- package/dist/web-components/viewer/AnnotationState-5pim5K72.mjs +1 -0
- package/dist/web-components/viewer/Annotations-Cqn1TkzD.mjs +2 -0
- package/dist/web-components/viewer/Annotations-CxwN9FkB.mjs +1 -0
- package/dist/web-components/viewer/{Canvas2DBackend-CAmzJD5P.mjs → Canvas2DBackend-C-ZMSCak.mjs} +1 -1
- package/dist/web-components/viewer/CaptionDetails-CRD-gSZP.mjs +1 -0
- package/dist/web-components/viewer/ChaptersMenu-Brcq3yJv.mjs +1 -0
- package/dist/web-components/viewer/ChoiceMenu-ByGzQQx1.mjs +1 -0
- package/dist/web-components/viewer/Collection-m0GCcsfQ.mjs +1 -0
- package/dist/web-components/viewer/Connected-Bmc_CdUD.mjs +1 -0
- package/dist/web-components/viewer/Connected-Dvx7wtot.mjs +1 -0
- package/dist/web-components/viewer/Contents-CwDpfiJY.mjs +1 -0
- package/dist/web-components/viewer/ControlMenu-TcO85hDf.mjs +1 -0
- package/dist/web-components/viewer/ControlsFade-BoZ4ABAE.mjs +1 -0
- package/dist/web-components/viewer/CountMenu-0-ie8kIZ.mjs +1 -0
- package/dist/web-components/viewer/Cue-DxmAS9Gx.mjs +1 -0
- package/dist/web-components/viewer/Document-BsryuYJ1.mjs +1 -0
- package/dist/web-components/viewer/{DomLayers-DRdQSEtN.mjs → DomLayers-hc0qARQc.mjs} +1 -1
- package/dist/web-components/viewer/Download-MO-1Rik4.mjs +1 -0
- package/dist/web-components/viewer/EntryBodies-g-OEwEsk.mjs +1 -0
- package/dist/web-components/viewer/EntryThumbnail-DcIDYATi.mjs +1 -0
- package/dist/web-components/viewer/FieldPill-B9S21lxw.mjs +1 -0
- package/dist/web-components/viewer/FrameAnimation-qI9cZPEs.mjs +1 -0
- package/dist/web-components/viewer/Gallery-BOgUqfqw.mjs +1 -0
- package/dist/web-components/viewer/HideToggle-D8wH49mq.mjs +1 -0
- package/dist/web-components/viewer/ImageControls-ZoEC9jWd.mjs +1 -0
- package/dist/web-components/viewer/LanguageChoice-CRqsCBAp.mjs +1 -0
- package/dist/web-components/viewer/LightboxView-BB-GcbYr.mjs +1 -0
- package/dist/web-components/viewer/ListEnd-D9Obxie4.mjs +1 -0
- package/dist/web-components/viewer/MapView-DQSwUzd7.mjs +3 -0
- package/dist/web-components/viewer/MediaBody-CIw2nTlj.mjs +1 -0
- package/dist/web-components/viewer/MediaBody-D5ff6xy-.mjs +1 -0
- package/dist/web-components/viewer/NavDate-BnfDG57h.mjs +1 -0
- package/dist/web-components/viewer/{Navigator-CKwDgG2x.mjs → Navigator-BNwjmkXY.mjs} +1 -1
- package/dist/web-components/viewer/PagerLayout-C8jraHqs.mjs +1 -0
- package/dist/web-components/viewer/PanelPart-YNbBI9SQ.mjs +1 -0
- package/dist/web-components/viewer/PartOfManifest-DX7H0V4g.mjs +1 -0
- package/dist/web-components/viewer/PlaceBox-CCWfzsNU.mjs +1 -0
- package/dist/web-components/viewer/Placeholder-CsEkLhz7.mjs +1 -0
- package/dist/web-components/viewer/Search-CsdYzdq1.mjs +1 -0
- package/dist/web-components/viewer/StandaloneItems-BfvBxbUm.mjs +1 -0
- package/dist/web-components/viewer/Steps-BH8ZApS4.mjs +1 -0
- package/dist/web-components/viewer/TargetItems-BebPFr-c.mjs +1 -0
- package/dist/web-components/viewer/Transcript-DXLv5WR9.mjs +1 -0
- package/dist/web-components/viewer/Transport-C-fh7Kx2.mjs +1 -0
- package/dist/web-components/viewer/Transport-CY6BWfMi.mjs +1 -0
- package/dist/web-components/viewer/annotation-collection-Cjd8Dgyl.mjs +1 -0
- package/dist/web-components/viewer/annotation-name-CwmgQFia.mjs +1 -0
- package/dist/web-components/viewer/annotations-content-BARXoAz-.mjs +1 -0
- package/dist/web-components/viewer/cloverEngine-CumnJPKO.mjs +164 -0
- package/dist/web-components/viewer/content-state-reader-DuvyLThu.mjs +1 -0
- package/dist/web-components/viewer/dragToClose-CFCxhUxn.mjs +1 -0
- package/dist/web-components/viewer/fetchManifest-qNB_KgxL.mjs +1 -0
- package/dist/web-components/viewer/{host-DlCltI_c.mjs → host-GTHX2fPK.mjs} +1 -1
- package/dist/web-components/viewer/image-layers-DKOuaRTj.mjs +1 -0
- package/dist/web-components/viewer/index.mjs +1 -1
- package/dist/web-components/viewer/link-BlaM0tCa.mjs +1 -0
- package/dist/web-components/viewer/overlayImage-RVpv69R5.mjs +1 -0
- package/dist/web-components/viewer/range-regions-CIZiAHOp.mjs +1 -0
- package/dist/web-components/viewer/{renderers-C_wdmw9v.mjs → renderers-Dw1klwlx.mjs} +1 -1
- package/dist/web-components/viewer/save-file-EvzaBEJN.mjs +1 -0
- package/dist/web-components/viewer/{search-BHLyNxZ6.mjs → search-x1QL_bth.mjs} +1 -1
- package/dist/web-components/viewer/styles-I7_LWFGj.mjs +1 -0
- package/dist/web-components/viewer/useControlsVisibility-C_SQHIVR.mjs +1 -0
- package/dist/web-components/viewer/useLazyPanelPane-UuGDJrf_.mjs +1 -0
- package/dist/web-components/viewer/viewer-DJrQuNs1.mjs +29 -0
- package/dist/web-components/viewer/{vtt-XiS_-5Ao.mjs → vtt-C2G89SWH.mjs} +1 -1
- package/dist/web-components/viewer-Br44EEba.mjs +1 -0
- package/dist/web-components/{vtt-DYAOuQoK.mjs → vtt-Dd0c7psH.mjs} +1 -1
- package/package.json +8 -4
- package/dist/i18n/reader.mjs +0 -13
- package/dist/templates/shared/LightboxBody.mjs +0 -9
- package/dist/web-components/About-DbrFSVBm.mjs +0 -1
- package/dist/web-components/AnnotationMenu-EBjIQpQl.mjs +0 -1
- package/dist/web-components/AnnotationState-DQTaO6Gz.mjs +0 -1
- package/dist/web-components/Annotations-Cb9U7HJ_.mjs +0 -2
- package/dist/web-components/Annotations-Dl0SgHBS.mjs +0 -1
- package/dist/web-components/Body-DxSz3iST.mjs +0 -1
- package/dist/web-components/BodyAlert-C8EOXz24.mjs +0 -1
- package/dist/web-components/Button-uWgfvqsL.mjs +0 -1
- package/dist/web-components/CanvasView-BI3YzNdK.mjs +0 -1
- package/dist/web-components/CaptionDetails-B80ZhZ7v.mjs +0 -1
- package/dist/web-components/ChoiceMenu-DCp7-co7.mjs +0 -1
- package/dist/web-components/Collection-B1Le2_TU.mjs +0 -1
- package/dist/web-components/CollectionSelect-BL_jQog-.mjs +0 -1
- package/dist/web-components/Connected-BxqaRL9o.mjs +0 -1
- package/dist/web-components/Connected-DCBI-j9H.mjs +0 -1
- package/dist/web-components/Connected-DkhfVWxd.mjs +0 -1
- package/dist/web-components/Contents-zYEGHLfe.mjs +0 -1
- package/dist/web-components/ControlMenu-CAHiLAtl.mjs +0 -1
- package/dist/web-components/Cue-BT2V9VAq.mjs +0 -1
- package/dist/web-components/Document-BdCjGnJN.mjs +0 -1
- package/dist/web-components/DocumentPanel-X_Rta0Wu.mjs +0 -1
- package/dist/web-components/Download-DqU-goFi.mjs +0 -1
- package/dist/web-components/EntryBodies-DXAQH0vR.mjs +0 -1
- package/dist/web-components/ErrorBoundary-chQaO-Up.mjs +0 -1
- package/dist/web-components/FieldPill-CyEssPVm.mjs +0 -1
- package/dist/web-components/FrameAnimation-Bb0pOoRl.mjs +0 -1
- package/dist/web-components/Gallery-BXU3TcT3.mjs +0 -1
- package/dist/web-components/HideToggle-BwMrOBMu.mjs +0 -1
- package/dist/web-components/Items-DRj1UEpC.mjs +0 -1
- package/dist/web-components/Label-D6aVJB9s.mjs +0 -1
- package/dist/web-components/LightboxBody-BzXQGMDn.mjs +0 -1
- package/dist/web-components/LoadedCanvas-DOjtxLSe.mjs +0 -1
- package/dist/web-components/LoadedMap-DouDS2lO.mjs +0 -1
- package/dist/web-components/MapView-CD5zkTs8.mjs +0 -1
- package/dist/web-components/Markup-C1hMA8wk.mjs +0 -2
- package/dist/web-components/MediaBody-B_Gii4we.mjs +0 -1
- package/dist/web-components/MediaBody-BfrKIPte.mjs +0 -1
- package/dist/web-components/Pager-Di_2hHM3.mjs +0 -1
- package/dist/web-components/Panel-DbsC8A9V.mjs +0 -1
- package/dist/web-components/PartOfManifest-7eOwURrF.mjs +0 -1
- package/dist/web-components/Primitives-XQO3m1wG.mjs +0 -1
- package/dist/web-components/Provider-B61118lU.mjs +0 -1
- package/dist/web-components/ReadMore-BJH-qqte.mjs +0 -1
- package/dist/web-components/Root-Dj277K6p.mjs +0 -1
- package/dist/web-components/Scene-BTWpLeec.mjs +0 -1
- package/dist/web-components/SceneView-BYo7WmPt.mjs +0 -1
- package/dist/web-components/Search-ZV8FFN4p.mjs +0 -1
- package/dist/web-components/Sections-ejwu1_Sm.mjs +0 -2
- package/dist/web-components/StandaloneItems-BYaiyCca.mjs +0 -1
- package/dist/web-components/Status-YbQK2KzY.mjs +0 -1
- package/dist/web-components/Timeline-ByyVSd7B.mjs +0 -1
- package/dist/web-components/Tip-IO11xX4x.mjs +0 -1
- package/dist/web-components/Transcript-D0gUxUoA.mjs +0 -1
- package/dist/web-components/annotation-collection-Csv7WIlm.mjs +0 -1
- package/dist/web-components/annotations-content-BS_OFz5Z.mjs +0 -1
- package/dist/web-components/body-CKjwwFep.mjs +0 -1
- package/dist/web-components/canvas-CIzpp-Uz.mjs +0 -1
- package/dist/web-components/cloverEngine-B4LinbSt.mjs +0 -164
- package/dist/web-components/content-state-reader-D1BkpICh.mjs +0 -1
- package/dist/web-components/dragToClose-C-Pf1IeO.mjs +0 -1
- package/dist/web-components/es-BwMkoRod.mjs +0 -1
- package/dist/web-components/fi-gPFOn9RK.mjs +0 -1
- package/dist/web-components/fr-DUHmgdJo.mjs +0 -1
- package/dist/web-components/fromManifest-BhemHaoA.mjs +0 -1
- package/dist/web-components/glyphs-drROkef9.mjs +0 -1
- package/dist/web-components/hooks-BXzQSllm.mjs +0 -1
- package/dist/web-components/index-B7nZdqLg.mjs +0 -1
- package/dist/web-components/items-CB2Uk7ts.mjs +0 -1
- package/dist/web-components/items-jfQ5XzEj.mjs +0 -1
- package/dist/web-components/keep-fragments-B5nlv2ck.mjs +0 -1
- package/dist/web-components/label-Vbg_cMOJ.mjs +0 -1
- package/dist/web-components/layout-mMHI0lsj.mjs +0 -1
- package/dist/web-components/link-ZRnv5NFR.mjs +0 -1
- package/dist/web-components/logo-Boy6u4m2.mjs +0 -1
- package/dist/web-components/models-D1EE_CmH.mjs +0 -1
- package/dist/web-components/nb-BSvnQ6jd.mjs +0 -1
- package/dist/web-components/nn-Dg2_HdZu.mjs +0 -1
- package/dist/web-components/no-BSvnQ6jd.mjs +0 -1
- package/dist/web-components/panClearOfControls-ac9uf-Qs.mjs +0 -1
- package/dist/web-components/part-cUiPs2-y.mjs +0 -1
- package/dist/web-components/playerSurface-CU5XxI1j.mjs +0 -1
- package/dist/web-components/pt-B3J80JgO.mjs +0 -1
- package/dist/web-components/read-more-DNHNtG-a.mjs +0 -1
- package/dist/web-components/rendererSurface-DhIlOjGT.mjs +0 -22
- package/dist/web-components/sanitize-Dc7nOsgO.mjs +0 -3
- package/dist/web-components/search-CLy2Wj01.mjs +0 -1
- package/dist/web-components/shared-YUjOSBKO.mjs +0 -1
- package/dist/web-components/styles-CyuM_fB1.mjs +0 -1
- package/dist/web-components/thumbnail-c2K_iQsD.mjs +0 -1
- package/dist/web-components/time-B9GZoYcm.mjs +0 -1
- package/dist/web-components/upgrader-XNxI-5jo.mjs +0 -1
- package/dist/web-components/useContainerName-BpJ3IWY0.mjs +0 -1
- package/dist/web-components/useNearViewport-CtLyYg9n.mjs +0 -1
- package/dist/web-components/useScrollTrack-WbG28FPD.mjs +0 -1
- package/dist/web-components/viewer/AnnotationMenu-ZKyBeyUU.mjs +0 -1
- package/dist/web-components/viewer/AnnotationState-DO33zokc.mjs +0 -1
- package/dist/web-components/viewer/Annotations-BOjhr5ks.mjs +0 -1
- package/dist/web-components/viewer/Annotations-DkLueFLK.mjs +0 -2
- package/dist/web-components/viewer/CaptionDetails-DOJlUtOn.mjs +0 -1
- package/dist/web-components/viewer/ChoiceMenu-BDq6H34G.mjs +0 -1
- package/dist/web-components/viewer/Collection-By3puO0V.mjs +0 -1
- package/dist/web-components/viewer/Connected-DZNO2CPf.mjs +0 -1
- package/dist/web-components/viewer/Connected-ESg5y49m.mjs +0 -1
- package/dist/web-components/viewer/Contents-B_FqDwTW.mjs +0 -1
- package/dist/web-components/viewer/ControlMenu-DdQl-dTf.mjs +0 -1
- package/dist/web-components/viewer/Cue-BTRHfiWQ.mjs +0 -1
- package/dist/web-components/viewer/Document-B9_PyD2w.mjs +0 -1
- package/dist/web-components/viewer/DocumentPanel-CtEJVPoE.mjs +0 -1
- package/dist/web-components/viewer/EntryBodies-CJuTRcTq.mjs +0 -1
- package/dist/web-components/viewer/FieldPill-06uwrNwE.mjs +0 -1
- package/dist/web-components/viewer/FrameAnimation-3dcDHf5q.mjs +0 -1
- package/dist/web-components/viewer/Gallery-BYasTqZc.mjs +0 -1
- package/dist/web-components/viewer/HideToggle-BxkNMX-T.mjs +0 -1
- package/dist/web-components/viewer/LightboxBody-CXMc1xOH.mjs +0 -1
- package/dist/web-components/viewer/MapView-DCerrRRV.mjs +0 -1
- package/dist/web-components/viewer/MediaBody-BdkJcyGy.mjs +0 -1
- package/dist/web-components/viewer/MediaBody-waF4KvHp.mjs +0 -1
- package/dist/web-components/viewer/PartOfManifest-DalHJFwC.mjs +0 -1
- package/dist/web-components/viewer/Search-Di_QQfDb.mjs +0 -1
- package/dist/web-components/viewer/StandaloneItems-B9J6nnWn.mjs +0 -1
- package/dist/web-components/viewer/Transcript-aHOixfna.mjs +0 -1
- package/dist/web-components/viewer/annotation-collection-I2UkdobR.mjs +0 -1
- package/dist/web-components/viewer/annotations-content-D-i4j9pD.mjs +0 -1
- package/dist/web-components/viewer/cloverEngine-CynoKdta.mjs +0 -164
- package/dist/web-components/viewer/content-state-reader-D7GIMcKK.mjs +0 -1
- package/dist/web-components/viewer/link-BX-wzj1u.mjs +0 -1
- package/dist/web-components/viewer/overlayImage-CHqn1fG8.mjs +0 -1
- package/dist/web-components/viewer/styles-BRCkEU3w.mjs +0 -1
- package/dist/web-components/viewer/viewer-ipqAA-xQ.mjs +0 -28
- package/dist/web-components/viewer-DEHIsIHd.mjs +0 -1
- /package/dist/{ui → i18n}/languageCode.mjs +0 -0
|
@@ -1,62 +1,134 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { jsxs, jsx } from "react/jsx-runtime";
|
|
3
|
-
import { useState } from "react";
|
|
2
|
+
import { jsxs, jsx, Fragment } from "react/jsx-runtime";
|
|
3
|
+
import { useState, useCallback } from "react";
|
|
4
|
+
import { useGivenAnnotations } from "../shared/givenAnnotations.mjs";
|
|
4
5
|
import { preloadLightbox, Lightbox } from "../shared/Lightbox.mjs";
|
|
5
6
|
import { titled } from "../../ui/heading.mjs";
|
|
6
7
|
import { useUniqueId } from "../../ui/useUniqueId.mjs";
|
|
7
8
|
import { Root } from "../../components/Root/Root.mjs";
|
|
9
|
+
import { useCloverSelector } from "../../react/context.mjs";
|
|
8
10
|
import { Label } from "../../components/Label/Label.mjs";
|
|
9
11
|
import { Summary } from "../../components/Primitives/Primitives.mjs";
|
|
10
12
|
import { Status } from "../../components/Status/Status.mjs";
|
|
11
13
|
import { Items } from "../../components/Items/Items.mjs";
|
|
12
14
|
const below = (level) => level + 1;
|
|
15
|
+
const length = (value) => typeof value === "number" ? `${value}px` : value;
|
|
13
16
|
function Gallery({
|
|
14
17
|
className,
|
|
15
18
|
size,
|
|
19
|
+
height = "auto",
|
|
20
|
+
gap,
|
|
21
|
+
items = "grid",
|
|
22
|
+
secondary,
|
|
23
|
+
summary = true,
|
|
24
|
+
lightboxItems = "slider",
|
|
25
|
+
panel = true,
|
|
26
|
+
defaultPanelOpen = true,
|
|
27
|
+
panelLayout = "accordion",
|
|
28
|
+
download = true,
|
|
29
|
+
languages = true,
|
|
30
|
+
storageKey = "clover-template-gallery",
|
|
16
31
|
headingLevel = 2,
|
|
32
|
+
collapseControls,
|
|
17
33
|
style,
|
|
18
34
|
...root
|
|
19
35
|
}) {
|
|
20
36
|
const [open, setOpen] = useState(false);
|
|
37
|
+
const close = useCallback(() => setOpen(false), []);
|
|
21
38
|
const title = titled(
|
|
22
39
|
headingLevel,
|
|
23
40
|
`${useUniqueId().replace(/:/g, "")}-title`
|
|
24
41
|
);
|
|
42
|
+
const fixed = height !== "auto";
|
|
43
|
+
const vars = {
|
|
44
|
+
...size && { "--clover-items-size": size },
|
|
45
|
+
...fixed && { "--clover-template-gallery-height": length(height) },
|
|
46
|
+
...gap != null && { "--clover-template-gallery-gap": length(gap) }
|
|
47
|
+
};
|
|
25
48
|
return /* @__PURE__ */ jsxs(
|
|
26
49
|
Root,
|
|
27
50
|
{
|
|
28
51
|
className: ["clover-template-gallery", className].filter(Boolean).join(" "),
|
|
29
|
-
style:
|
|
52
|
+
style: { ...style, ...vars },
|
|
53
|
+
"data-height": fixed ? "fixed" : "auto",
|
|
30
54
|
onPointerOver: preloadLightbox,
|
|
31
55
|
onFocus: preloadLightbox,
|
|
32
56
|
...title.group,
|
|
33
57
|
...root,
|
|
34
58
|
children: [
|
|
35
|
-
/* @__PURE__ */
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
] }),
|
|
46
|
-
/* @__PURE__ */ jsx(Status, {}),
|
|
47
|
-
/* @__PURE__ */ jsx(Items, { layout: "grid", onSelect: () => setOpen(true) }),
|
|
59
|
+
/* @__PURE__ */ jsx(
|
|
60
|
+
GalleryGrid,
|
|
61
|
+
{
|
|
62
|
+
title,
|
|
63
|
+
layout: items === "masonry" ? "masonry" : "grid",
|
|
64
|
+
secondary,
|
|
65
|
+
summary,
|
|
66
|
+
onOpen: () => setOpen(true)
|
|
67
|
+
}
|
|
68
|
+
),
|
|
48
69
|
/* @__PURE__ */ jsx(
|
|
49
70
|
Lightbox,
|
|
50
71
|
{
|
|
51
72
|
open,
|
|
52
|
-
onClose:
|
|
53
|
-
headingLevel: below(headingLevel)
|
|
73
|
+
onClose: close,
|
|
74
|
+
headingLevel: below(headingLevel),
|
|
75
|
+
items: lightboxItems,
|
|
76
|
+
panel,
|
|
77
|
+
defaultPanelOpen,
|
|
78
|
+
panelLayout,
|
|
79
|
+
download,
|
|
80
|
+
languages,
|
|
81
|
+
storageKey,
|
|
82
|
+
collapseControls
|
|
54
83
|
}
|
|
55
84
|
)
|
|
56
85
|
]
|
|
57
86
|
}
|
|
58
87
|
);
|
|
59
88
|
}
|
|
89
|
+
function GalleryGrid({
|
|
90
|
+
title,
|
|
91
|
+
layout,
|
|
92
|
+
secondary,
|
|
93
|
+
summary,
|
|
94
|
+
onOpen
|
|
95
|
+
}) {
|
|
96
|
+
const collection = useCloverSelector(
|
|
97
|
+
(state) => state.throughCollection ? state.collection : null
|
|
98
|
+
);
|
|
99
|
+
const set = useGivenAnnotations();
|
|
100
|
+
return /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
101
|
+
/* @__PURE__ */ jsxs("header", { className: "clover-template-gallery-header", children: [
|
|
102
|
+
/* @__PURE__ */ jsx(
|
|
103
|
+
Label,
|
|
104
|
+
{
|
|
105
|
+
as: title.as,
|
|
106
|
+
className: "clover-template-gallery-title clover-template-title clover-title",
|
|
107
|
+
label: set ? set.label : collection == null ? void 0 : collection.label,
|
|
108
|
+
...title.title
|
|
109
|
+
}
|
|
110
|
+
),
|
|
111
|
+
summary && !set && /* @__PURE__ */ jsx(
|
|
112
|
+
Summary,
|
|
113
|
+
{
|
|
114
|
+
className: "clover-template-gallery-summary",
|
|
115
|
+
value: collection == null ? void 0 : collection.summary
|
|
116
|
+
}
|
|
117
|
+
)
|
|
118
|
+
] }),
|
|
119
|
+
/* @__PURE__ */ jsx(Status, { loading: collection || set ? false : void 0 }),
|
|
120
|
+
/* @__PURE__ */ jsx(
|
|
121
|
+
Items,
|
|
122
|
+
{
|
|
123
|
+
layout,
|
|
124
|
+
secondary,
|
|
125
|
+
of: set ? "annotations" : collection ? "members" : "views",
|
|
126
|
+
singleItem: true,
|
|
127
|
+
onSelect: onOpen
|
|
128
|
+
}
|
|
129
|
+
)
|
|
130
|
+
] });
|
|
131
|
+
}
|
|
60
132
|
export {
|
|
61
133
|
Gallery
|
|
62
134
|
};
|
|
@@ -3,6 +3,11 @@
|
|
|
3
3
|
import * as P4 from '@iiif/parser/presentation-4/types';
|
|
4
4
|
import React from 'react';
|
|
5
5
|
|
|
6
|
+
/**
|
|
7
|
+
* IIIF language maps as text: the closest language to the reader's, and that language's
|
|
8
|
+
* tag, so the text can carry a `lang` attribute.
|
|
9
|
+
*/
|
|
10
|
+
export type LanguageMapLike = string | Record<string, string[] | string | undefined> | null | undefined;
|
|
6
11
|
export type Presentation4Canvas = P4.Canvas;
|
|
7
12
|
export type Presentation4Scene = P4.Scene;
|
|
8
13
|
export type Presentation4Timeline = P4.Timeline;
|
|
@@ -118,6 +123,14 @@ export interface RootProps extends Omit<React.HTMLAttributes<HTMLElement>, "chil
|
|
|
118
123
|
request?: CloverRequest;
|
|
119
124
|
/** The language to read IIIF text in. The reader's, by default. */
|
|
120
125
|
language?: string;
|
|
126
|
+
/**
|
|
127
|
+
* Clover's higher-contrast mode, for every part inside: the accent kept to rings,
|
|
128
|
+
* outlines and marks, and never under words or a glyph, where the controls' dark fill
|
|
129
|
+
* takes its place, edged in the accent. For an accent that cannot carry white text at
|
|
130
|
+
* 4.5:1. It is on wherever the reader's system asks for more contrast, too. Default
|
|
131
|
+
* `false`.
|
|
132
|
+
*/
|
|
133
|
+
highContrast?: boolean;
|
|
121
134
|
/**
|
|
122
135
|
* Renderers of your own for some views — by Canvas id, painting format, or a test —
|
|
123
136
|
* drawn by every `Body` inside in place of `Canvas` (3.x's `customDisplays`).
|
|
@@ -134,19 +147,169 @@ export interface RootProps extends Omit<React.HTMLAttributes<HTMLElement>, "chil
|
|
|
134
147
|
*/
|
|
135
148
|
annotationPages?: "view" | "all";
|
|
136
149
|
/**
|
|
137
|
-
* Where the reader is, as a IIIF content state,
|
|
138
|
-
*
|
|
150
|
+
* Where the reader is, as a IIIF content state, as it changes: a move, a pan or zoom,
|
|
151
|
+
* or a pause or seek in media. At most every 150ms while it moves, always its last
|
|
152
|
+
* place, and only when it changed.
|
|
139
153
|
*/
|
|
140
154
|
onContentStateChange?: (state: ContentStateOutput) => void;
|
|
141
155
|
/** The element to render. Default `div`. */
|
|
142
156
|
as?: React.ElementType;
|
|
143
157
|
children?: React.ReactNode;
|
|
144
158
|
}
|
|
159
|
+
/** A region of the image as shares of it: 0 to 1 across and down. */
|
|
160
|
+
export interface RegionShare {
|
|
161
|
+
x: number;
|
|
162
|
+
y: number;
|
|
163
|
+
width: number;
|
|
164
|
+
height: number;
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* A small picture of a IIIF resource, for a list or a strip of them.
|
|
168
|
+
*
|
|
169
|
+
* - The resource's own `thumbnail` comes first; then, for a Canvas, the first image it
|
|
170
|
+
* paints; then its placeholder or accompanying Canvas's (video and sound).
|
|
171
|
+
* - An image service is asked for nothing until its own `info.json` has been read (the
|
|
172
|
+
* renderer's cached fetch, so a Canvas shown later does not ask again), and then only
|
|
173
|
+
* as strictly as it says it can answer (`sizedImageUrl`): never more than the image has,
|
|
174
|
+
* nor than its limits, at level 0 only a size it lists (Mat, 2026-10-24: "be
|
|
175
|
+
* responsible when making IIIF image server requests"). What a manifest says of a
|
|
176
|
+
* service is not trusted to say what its server does.
|
|
177
|
+
* - Without a service, the image itself is used.
|
|
178
|
+
*/
|
|
179
|
+
export interface ThumbnailSource {
|
|
180
|
+
/** Ready to use: an image with no service. */
|
|
181
|
+
src?: string;
|
|
182
|
+
/** An image service: its `info.json` is read before a URL is made (`resolveThumbnail`). */
|
|
183
|
+
service?: string;
|
|
184
|
+
/**
|
|
185
|
+
* Only part of the image: shares of it (a target's region), or a region in Image API
|
|
186
|
+
* syntax in the service's own pixels (a painting's selector), read against its `info.json`.
|
|
187
|
+
*/
|
|
188
|
+
region?: RegionShare | string;
|
|
189
|
+
/** Used if the service cannot answer. */
|
|
190
|
+
fallback?: string;
|
|
191
|
+
}
|
|
192
|
+
/**
|
|
193
|
+
* What `Items` shows: light models of a Manifest's views or a Collection's members, never
|
|
194
|
+
* the resources themselves, so a long sequence costs a few fields per item.
|
|
195
|
+
*
|
|
196
|
+
* Memoized on the resource object, as the selectors are.
|
|
197
|
+
*/
|
|
198
|
+
export interface ItemPart {
|
|
199
|
+
id: string;
|
|
200
|
+
type: string;
|
|
201
|
+
label?: LanguageMapLike;
|
|
202
|
+
/** The resource, for a thumbnail and for `renderItem`. */
|
|
203
|
+
resource: unknown;
|
|
204
|
+
/** Seconds, for video and sound. */
|
|
205
|
+
duration?: number;
|
|
206
|
+
/** What it mostly paints: `Image`, `Video`, `Audio` (`Sound` in Presentation 3) or `Model`. */
|
|
207
|
+
media?: string;
|
|
208
|
+
/**
|
|
209
|
+
* Its picture, where it is not the resource's own: a region of its Canvas (a content
|
|
210
|
+
* state's target, Cookbook 0540). Null for none.
|
|
211
|
+
*/
|
|
212
|
+
source?: ThumbnailSource | null;
|
|
213
|
+
}
|
|
214
|
+
export interface ItemModel {
|
|
215
|
+
/** The first Canvas of a view, or a member's id. What selecting it goes to. */
|
|
216
|
+
id: string;
|
|
217
|
+
/** A Canvas view: one Canvas, or a spread. A member: itself. */
|
|
218
|
+
parts: ItemPart[];
|
|
219
|
+
label?: LanguageMapLike;
|
|
220
|
+
summary?: LanguageMapLike;
|
|
221
|
+
/** A member's date for navigation, as written (Cookbook 0318). */
|
|
222
|
+
navDate?: string;
|
|
223
|
+
/** Where a link to a member goes: its `homepage`, else its id. */
|
|
224
|
+
href?: string;
|
|
225
|
+
/** That homepage's own language, where its `language` gives one. */
|
|
226
|
+
hrefLang?: string;
|
|
227
|
+
}
|
|
228
|
+
/** The line under an item's label: its summary, its date (`navDate`), or neither. */
|
|
229
|
+
export type ItemSecondary = "summary" | "navDate" | "none";
|
|
145
230
|
/**
|
|
146
|
-
* A scrolling row of thumbnails (`slider`), a column, a wrapping grid,
|
|
147
|
-
* time (`pager`: Previous,
|
|
231
|
+
* A scrolling row of thumbnails (`slider`), a column, a wrapping grid, a grid whose
|
|
232
|
+
* pictures keep their proportions (`masonry`), or one item at a time (`pager`: Previous,
|
|
233
|
+
* Position and Next).
|
|
148
234
|
*/
|
|
149
|
-
export type ItemsLayout = "slider" | "list" | "grid" | "pager";
|
|
235
|
+
export type ItemsLayout = "slider" | "list" | "grid" | "masonry" | "pager";
|
|
236
|
+
export interface ItemsProps extends Omit<React.HTMLAttributes<HTMLElement>, "onSelect" | "children"> {
|
|
237
|
+
/**
|
|
238
|
+
* A scrolling row (the default), a column, a wrapping grid, `masonry`, or `pager`:
|
|
239
|
+
* Previous, Position and Next, stepping one item at a time, with no thumbnails.
|
|
240
|
+
* `masonry` is a grid whose pictures keep their own proportions, each item packed up
|
|
241
|
+
* under the one above it, still in reading order, left to right.
|
|
242
|
+
*/
|
|
243
|
+
layout?: ItemsLayout;
|
|
244
|
+
/**
|
|
245
|
+
* The line under an item's label, where it has one (a Collection's members do): its
|
|
246
|
+
* `summary` (the default), its `navDate`, or `none`. Default `"summary"`.
|
|
247
|
+
*/
|
|
248
|
+
secondary?: ItemSecondary;
|
|
249
|
+
/**
|
|
250
|
+
* The pager's size: `large` (the default), round controls; or `small`, its steps and
|
|
251
|
+
* count as Search's are, for a header's line. Default `"large"`.
|
|
252
|
+
*/
|
|
253
|
+
size?: "large" | "small";
|
|
254
|
+
/**
|
|
255
|
+
* Inside a `Root`: the Manifest's views (default), the members of the Collection it
|
|
256
|
+
* belongs to, choosing one to show, a content state's targets, where it names two or
|
|
257
|
+
* more (Cookbook 0540), each opening its Manifest at its place, or annotations walked as
|
|
258
|
+
* one whole: the AnnotationPage or AnnotationCollection given as the content, else the
|
|
259
|
+
* AnnotationCollection its annotation pages are part of (Cookbook 0309), each picked
|
|
260
|
+
* and framed on its Canvas.
|
|
261
|
+
*/
|
|
262
|
+
of?: "views" | "members" | "targets" | "annotations";
|
|
263
|
+
/**
|
|
264
|
+
* Standalone: a Collection (its members), a Manifest (its views) or a URL to one. Inside
|
|
265
|
+
* a `Root`, leave it out to list the Root's views.
|
|
266
|
+
*/
|
|
267
|
+
iiifContent?: IIIFContent;
|
|
268
|
+
/** Standalone: a list of IIIF resources (Manifests, Collections, Canvases) as they are. */
|
|
269
|
+
items?: unknown[];
|
|
270
|
+
/**
|
|
271
|
+
* `id` selects: a listbox whose options go to a view (in a `Root`). `homepage` leaves: a
|
|
272
|
+
* list of links to each item's `homepage`. Defaults to `id` for views and `homepage`
|
|
273
|
+
* for a Collection's members or a list.
|
|
274
|
+
*/
|
|
275
|
+
navigation?: "id" | "homepage";
|
|
276
|
+
/**
|
|
277
|
+
* An item was chosen, with the click's or the key's own event. For a link, call
|
|
278
|
+
* `event.preventDefault()` to stay on the page and handle it yourself.
|
|
279
|
+
*/
|
|
280
|
+
onSelect?: (item: ItemModel, event: React.SyntheticEvent) => void;
|
|
281
|
+
/** Standalone: show the resource's label, summary and homepage link. Default true. */
|
|
282
|
+
header?: boolean;
|
|
283
|
+
/**
|
|
284
|
+
* Standalone: the level of the header's title, to fit the outline of the page around
|
|
285
|
+
* it (a slider under an `h2` takes 3). Default 2.
|
|
286
|
+
*/
|
|
287
|
+
headingLevel?: number;
|
|
288
|
+
/** Pixels requested for each thumbnail's longer side. Default 200. */
|
|
289
|
+
thumbnailSize?: number;
|
|
290
|
+
/**
|
|
291
|
+
* Inside a `Root`: list the views even where there is only one, as a gallery's grid
|
|
292
|
+
* does. The pager, with nothing to step to, still draws nothing. Default `false`: one
|
|
293
|
+
* view has nothing to choose between.
|
|
294
|
+
*/
|
|
295
|
+
singleItem?: boolean;
|
|
296
|
+
/** Standalone: credentials, headers and `fetch`. In a `Root`, the Root's are used. */
|
|
297
|
+
request?: CloverRequest;
|
|
298
|
+
/** Standalone: the language to read IIIF text in. */
|
|
299
|
+
language?: string;
|
|
300
|
+
/**
|
|
301
|
+
* Clover's higher-contrast mode: the accent kept to rings, outlines and marks, and never
|
|
302
|
+
* under words or a glyph, where the controls' dark fill takes its place, edged in the
|
|
303
|
+
* accent. Inside a `Root`, the Root's too; on wherever the reader's system asks for more
|
|
304
|
+
* contrast. Default `false`.
|
|
305
|
+
*/
|
|
306
|
+
highContrast?: boolean;
|
|
307
|
+
/** Replace an item's figure with your own. */
|
|
308
|
+
renderItem?: (item: ItemModel, state: {
|
|
309
|
+
selected: boolean;
|
|
310
|
+
}) => React.ReactNode;
|
|
311
|
+
as?: React.ElementType;
|
|
312
|
+
}
|
|
150
313
|
/** How the sections are laid out. */
|
|
151
314
|
export type SectionsLayout = "tabs" | "accordion";
|
|
152
315
|
/** How an information panel lays out its sections. */
|
|
@@ -172,10 +335,20 @@ export type DefaultProps = Omit<RootProps, "children"> & {
|
|
|
172
335
|
* stacked boxes each opened by its heading, or `"tabs"`.
|
|
173
336
|
*/
|
|
174
337
|
panelLayout?: PanelLayout;
|
|
175
|
-
/** The downloads
|
|
338
|
+
/** The downloads, from a Download button beside the panel's About heading. Default `true`. */
|
|
176
339
|
download?: boolean;
|
|
340
|
+
/**
|
|
341
|
+
* The languages to read the resource in, beside the panel's About heading, where what
|
|
342
|
+
* it says of itself comes in several (the Panel's `languages`). Default `true`.
|
|
343
|
+
*/
|
|
344
|
+
languages?: boolean;
|
|
177
345
|
/** The thumbnails under the Body: a layout, or `false` for none. Default `slider`. */
|
|
178
346
|
items?: Exclude<ItemsLayout, "pager"> | false;
|
|
347
|
+
/**
|
|
348
|
+
* The thumbnails even where the resource has one view, which has nothing to choose
|
|
349
|
+
* between. Default `false`.
|
|
350
|
+
*/
|
|
351
|
+
singleItem?: boolean;
|
|
179
352
|
/**
|
|
180
353
|
* Where the panel's width is remembered once the reader drags its bar
|
|
181
354
|
* (`localStorage`). Default `"clover-template-default"`; `false` forgets it.
|
|
@@ -188,6 +361,12 @@ export type DefaultProps = Omit<RootProps, "children"> & {
|
|
|
188
361
|
* `--clover-body-height` tall, and the layout as tall as it needs.
|
|
189
362
|
*/
|
|
190
363
|
fill?: boolean;
|
|
364
|
+
/**
|
|
365
|
+
* When the Body's view controls (zoom, the turns, reset, full screen) wait behind
|
|
366
|
+
* More: `"auto"` (the default), only where its row cannot hold them all; `"always"`.
|
|
367
|
+
* The Body's `collapseControls`.
|
|
368
|
+
*/
|
|
369
|
+
collapseControls?: "auto" | "always";
|
|
191
370
|
};
|
|
192
371
|
/**
|
|
193
372
|
* The Viewer's own layout, drawn when no `template` is given: Clover 3.x's Viewer, built
|
|
@@ -201,13 +380,18 @@ export type DefaultProps = Omit<RootProps, "children"> & {
|
|
|
201
380
|
* uncovered: a click there, Escape or the panel's close button puts it away. Size it with
|
|
202
381
|
* `--clover-body-height`.
|
|
203
382
|
*/
|
|
204
|
-
export declare function Default({ className, header, headingLevel, panel, defaultPanelOpen, panelLayout, download, items, storageKey, fill, ...root }: DefaultProps): React.JSX.Element;
|
|
383
|
+
export declare function Default({ className, header, headingLevel, panel, defaultPanelOpen, panelLayout, download, languages, items, singleItem, storageKey, fill, collapseControls, ...root }: DefaultProps): React.JSX.Element;
|
|
205
384
|
export type DocumentProps = Omit<RootProps, "children"> & {
|
|
206
385
|
/**
|
|
207
386
|
* Whether the page thumbnails start shown beside the page. Default `true`. On a phone,
|
|
208
387
|
* where they would float over the page, they start put away.
|
|
209
388
|
*/
|
|
210
389
|
defaultSidebarOpen?: boolean;
|
|
390
|
+
/**
|
|
391
|
+
* The page thumbnails, and their toggle, even where the resource has one page, which
|
|
392
|
+
* has nothing to choose between. Default `false`.
|
|
393
|
+
*/
|
|
394
|
+
singleItem?: boolean;
|
|
211
395
|
/**
|
|
212
396
|
* Whether the information panel starts open beside the page. Default `false`. Where it
|
|
213
397
|
* has no room there and would slide over the page, it starts closed.
|
|
@@ -220,6 +404,11 @@ export type DocumentProps = Omit<RootProps, "children"> & {
|
|
|
220
404
|
panelLayout?: PanelLayout;
|
|
221
405
|
/** The downloads in the toolbar, as links: the page's and the Manifest's `rendering`. Default `true`. */
|
|
222
406
|
download?: boolean;
|
|
407
|
+
/**
|
|
408
|
+
* The languages to read the resource in, beside the panel's About heading, where what
|
|
409
|
+
* it says of itself comes in several (the Panel's `languages`). Default `true`.
|
|
410
|
+
*/
|
|
411
|
+
languages?: boolean;
|
|
223
412
|
/**
|
|
224
413
|
* The title's heading level, to fit the outline of the page around the layout (under
|
|
225
414
|
* an `h2`, 3). The panel's sections, and the downloads' groups, are a level below
|
|
@@ -231,6 +420,12 @@ export type DocumentProps = Omit<RootProps, "children"> & {
|
|
|
231
420
|
* (`localStorage`). Default `"clover-template-document"`; `false` forgets it.
|
|
232
421
|
*/
|
|
233
422
|
storageKey?: string | false;
|
|
423
|
+
/**
|
|
424
|
+
* When the Body's view controls (zoom, the turns, reset, full screen) wait behind
|
|
425
|
+
* More: `"auto"` (the default), only where its row cannot hold them all; `"always"`.
|
|
426
|
+
* The Body's `collapseControls`.
|
|
427
|
+
*/
|
|
428
|
+
collapseControls?: "auto" | "always";
|
|
234
429
|
};
|
|
235
430
|
/**
|
|
236
431
|
* A layout that reads like a PDF viewer: a toolbar, page thumbnails down the left, and
|
|
@@ -241,36 +436,141 @@ export type DocumentProps = Omit<RootProps, "children"> & {
|
|
|
241
436
|
* where there is room for both, and slides out over the page where there is not. Size
|
|
242
437
|
* it with `--clover-template-document-height`.
|
|
243
438
|
*/
|
|
244
|
-
export declare function Document({ className, defaultSidebarOpen, defaultPanelOpen, panelLayout, download, headingLevel, storageKey, ...root }: DocumentProps): React.JSX.Element;
|
|
439
|
+
export declare function Document({ className, defaultSidebarOpen, singleItem, defaultPanelOpen, panelLayout, download, languages, headingLevel, storageKey, collapseControls, ...root }: DocumentProps): React.JSX.Element;
|
|
245
440
|
export type GalleryProps = Omit<RootProps, "children"> & {
|
|
246
441
|
/** The size of a grid cell. Default `10rem`, through `--clover-items-size`. */
|
|
247
442
|
size?: string;
|
|
443
|
+
/**
|
|
444
|
+
* The Gallery's height: `"auto"` (the default) grows with its grid; a number (pixels)
|
|
445
|
+
* or any CSS length fixes it, its padding inside, and the grid scrolls under the header.
|
|
446
|
+
*/
|
|
447
|
+
height?: number | string;
|
|
448
|
+
/**
|
|
449
|
+
* The space between the grid's cells: a number (pixels) or any CSS length. Default the
|
|
450
|
+
* Gallery's inset, `--clover-inset`.
|
|
451
|
+
*/
|
|
452
|
+
gap?: number | string;
|
|
453
|
+
/**
|
|
454
|
+
* The grid, as its Items' layout: `grid`, square cells, or `masonry`, each picture at
|
|
455
|
+
* its own proportions. Default `grid`.
|
|
456
|
+
*/
|
|
457
|
+
items?: Extract<ItemsLayout, "grid" | "masonry">;
|
|
458
|
+
/**
|
|
459
|
+
* The line under each cell's label, where it has one (a Collection's members do): its
|
|
460
|
+
* `summary`, its `navDate`, or `none`. Default `summary`.
|
|
461
|
+
*/
|
|
462
|
+
secondary?: ItemsProps["secondary"];
|
|
463
|
+
/**
|
|
464
|
+
* The resource's summary under the title, cut to two lines with Read more under it where
|
|
465
|
+
* it runs longer. Default `true`; `false` leaves it out, the title alone over the grid.
|
|
466
|
+
*/
|
|
467
|
+
summary?: boolean;
|
|
468
|
+
/**
|
|
469
|
+
* How the lightbox moves on from the view it shows: a short strip of thumbnails
|
|
470
|
+
* (`slider`, Items' carousel), or `pager`, Previous, the position and Next. Default
|
|
471
|
+
* `slider`.
|
|
472
|
+
*/
|
|
473
|
+
lightboxItems?: "slider" | "pager";
|
|
474
|
+
/**
|
|
475
|
+
* The information panel beside the lightbox's view, as Default's and Document's is
|
|
476
|
+
* beside theirs, and its toggle. Default `true`.
|
|
477
|
+
*/
|
|
478
|
+
panel?: boolean;
|
|
479
|
+
/**
|
|
480
|
+
* Whether the panel starts open beside the lightbox's view. Default `true`. Where it has
|
|
481
|
+
* no room there and would slide over the view, it starts closed.
|
|
482
|
+
*/
|
|
483
|
+
defaultPanelOpen?: boolean;
|
|
484
|
+
/** How the panel lays out its sections: `"accordion"` (the default) or `"tabs"`. */
|
|
485
|
+
panelLayout?: PanelLayout;
|
|
486
|
+
/** The downloads in the panel's About, where there is a `rendering`. Default `true`. */
|
|
487
|
+
download?: boolean;
|
|
488
|
+
/**
|
|
489
|
+
* The languages to read the resource in, beside the panel's About heading, where what
|
|
490
|
+
* it says of itself comes in several (the Panel's `languages`). Default `true`.
|
|
491
|
+
*/
|
|
492
|
+
languages?: boolean;
|
|
493
|
+
/**
|
|
494
|
+
* Where the panel's width is remembered once the reader drags its bar
|
|
495
|
+
* (`localStorage`). Default `"clover-template-gallery"`; `false` forgets it.
|
|
496
|
+
*/
|
|
497
|
+
storageKey?: string | false;
|
|
248
498
|
/**
|
|
249
499
|
* The title's heading level, to fit the outline of the page around the layout (under
|
|
250
500
|
* an `h2`, 3). The lightbox's title is a level below it. Default 2.
|
|
251
501
|
*/
|
|
252
502
|
headingLevel?: number;
|
|
503
|
+
/**
|
|
504
|
+
* When the Body's view controls (zoom, the turns, reset, full screen) wait behind
|
|
505
|
+
* More: `"auto"` (the default), only where its row cannot hold them all; `"always"`.
|
|
506
|
+
* Its lightbox's Body's `collapseControls`.
|
|
507
|
+
*/
|
|
508
|
+
collapseControls?: "auto" | "always";
|
|
253
509
|
};
|
|
254
510
|
/**
|
|
255
|
-
* A grid
|
|
256
|
-
*
|
|
257
|
-
* and
|
|
511
|
+
* A grid framed by what it opens, that opens a cell in a lightbox with the Body and the
|
|
512
|
+
* pager. A Manifest: its title and summary, and a cell for each view (a spread is one
|
|
513
|
+
* cell). A Collection: its own title and summary, and a cell for each member, which
|
|
514
|
+
* shows that Manifest in the lightbox. Escape, the close button, or a press outside
|
|
515
|
+
* closes it, and focus returns to the cell.
|
|
258
516
|
*/
|
|
259
|
-
export declare function Gallery({ className, size, headingLevel, style, ...root }: GalleryProps): React.JSX.Element;
|
|
517
|
+
export declare function Gallery({ className, size, height, gap, items, secondary, summary, lightboxItems, panel, defaultPanelOpen, panelLayout, download, languages, storageKey, headingLevel, collapseControls, style, ...root }: GalleryProps): React.JSX.Element;
|
|
260
518
|
export interface LightboxProps {
|
|
261
519
|
open: boolean;
|
|
262
520
|
onClose: () => void;
|
|
263
521
|
/** The level of its title, a level under the layout's. Default 3. */
|
|
264
522
|
headingLevel?: number;
|
|
523
|
+
/**
|
|
524
|
+
* How the reader moves on from the view shown: a short strip of thumbnails (`slider`,
|
|
525
|
+
* Items' carousel), or `pager`, Previous, the position and Next. Default `slider`.
|
|
526
|
+
*/
|
|
527
|
+
items?: "slider" | "pager";
|
|
528
|
+
/**
|
|
529
|
+
* The information panel beside the view, as every template's is (`PanelPane`): its
|
|
530
|
+
* toggle among the Body's controls, or on the bar beside it. Default `true`.
|
|
531
|
+
*/
|
|
532
|
+
panel?: boolean;
|
|
533
|
+
/** Whether the panel starts open beside the view; over it, closed. Default `true`. */
|
|
534
|
+
defaultPanelOpen?: boolean;
|
|
535
|
+
/** The panel's sections as stacked boxes (`"accordion"`, the default) or tabs. */
|
|
536
|
+
panelLayout?: PanelLayout;
|
|
537
|
+
/** The downloads in the panel's About, where there is a `rendering`. Default `true`. */
|
|
538
|
+
download?: boolean;
|
|
539
|
+
/** The languages to read the resource in, beside the panel's About heading. Default `true`. */
|
|
540
|
+
languages?: boolean;
|
|
541
|
+
/** Where the panel's width is remembered once dragged; `false` forgets it. */
|
|
542
|
+
storageKey?: string | false;
|
|
543
|
+
/** The Body's `collapseControls`: when the view's controls collapse behind one button. */
|
|
544
|
+
collapseControls?: "auto" | "always";
|
|
265
545
|
className?: string;
|
|
266
546
|
}
|
|
267
547
|
/**
|
|
268
|
-
* The current Canvas in a modal
|
|
269
|
-
*
|
|
270
|
-
*
|
|
271
|
-
*
|
|
272
|
-
*
|
|
548
|
+
* The current Canvas in a modal layer over the layout, and only the layout (Mat,
|
|
549
|
+
* 2026-10-30: "backdrop should not extend beyond the bounds of the template"): over it,
|
|
550
|
+
* a step back to the level it opened from, the Manifest's label as its title (Mat,
|
|
551
|
+
* 2026-11-01: "the Manifest label stay up here in the title and be more obvious as a
|
|
552
|
+
* heading") and Close; then the Body, the view's label under it (Mat, 2026-11-01: "move
|
|
553
|
+
* the Canvas/Scene/Timeline label below the item"), and a short strip of thumbnails (Mat,
|
|
554
|
+
* 2026-11-01: "carousel by default") or the pager (with the position). A modal
|
|
555
|
+
* `<dialog>`'s backdrop always covers the whole window, so this is a layer in the Root, a
|
|
556
|
+
* `dialog` to assistive technology, named by its title: while it is open the rest of the
|
|
557
|
+
* Root is inert, focus is on the view in its strip (on Close with the pager), and Escape,
|
|
558
|
+
* Close, Back or a press on the layer outside the panel closes it, focus going back to
|
|
559
|
+
* what opened it.
|
|
560
|
+
* By default it fills the layout's bounds; `--clover-template-lightbox-inset`,
|
|
561
|
+
* `-backdrop` and `-radius` give it room, a backdrop and corners (`Lightbox.css`). The
|
|
562
|
+
* layout positions it and holds its stacking (`position: relative` and `isolation:
|
|
563
|
+
* isolate`, as the Gallery does), so its layer never stacks over the page around it.
|
|
564
|
+
*
|
|
565
|
+
* Beside the view, the information panel, as every template's is (`PanelPane`; Mat,
|
|
566
|
+
* 2026-11-01: "show the pane like we have for document/default"), its every interaction
|
|
567
|
+
* theirs.
|
|
568
|
+
*
|
|
569
|
+
* Its view mounts only while open, so it is sized when drawn, and its code (the Body, the
|
|
570
|
+
* panes and the panel's pane) loads the first time (`preloadLightbox` starts it sooner):
|
|
571
|
+
* until then a busy box holds its place under the title and Close. The Panel's own code
|
|
572
|
+
* loads as it opens, the chunk Document's is (`PanelPart`).
|
|
273
573
|
*/
|
|
274
|
-
export declare function Lightbox({ open, onClose, headingLevel, className, }: LightboxProps): React.JSX.Element;
|
|
574
|
+
export declare function Lightbox({ open, onClose, headingLevel, items, className, ...view }: LightboxProps): React.JSX.Element;
|
|
275
575
|
|
|
276
576
|
export {};
|