@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
package/dist/index.d.mts
CHANGED
|
@@ -52,8 +52,10 @@ export interface LocalizedValue {
|
|
|
52
52
|
export declare function localize(value: LanguageMapLike, language?: string, separator?: string): LocalizedValue;
|
|
53
53
|
/**
|
|
54
54
|
* What an annotation says: its text bodies (plain, HTML or Markdown, as their `format`
|
|
55
|
-
* says)
|
|
56
|
-
*
|
|
55
|
+
* says), its images (Cookbook 0377) and its named places (Cookbook 0139), each read too
|
|
56
|
+
* where a `SpecificResource` holds it as its `source` (Cookbook 0045: a comment's words,
|
|
57
|
+
* given a `styleClass`). Caption files belong to the media transcript, so are left out.
|
|
58
|
+
* Light, for the Canvas's caption as well as the lists.
|
|
57
59
|
*/
|
|
58
60
|
export interface AnnotationBodyEntry {
|
|
59
61
|
/** `TextualBody` text, as published: plain, or IIIF's limited HTML. */
|
|
@@ -62,8 +64,22 @@ export interface AnnotationBodyEntry {
|
|
|
62
64
|
language?: string;
|
|
63
65
|
/** An image body (Cookbook 0377): its URL. */
|
|
64
66
|
image?: string;
|
|
65
|
-
/**
|
|
67
|
+
/**
|
|
68
|
+
* An image body's label, else its annotation's: the image's text alternative. A place's
|
|
69
|
+
* name, its feature's `label`, else its annotation's.
|
|
70
|
+
*/
|
|
66
71
|
label?: LanguageMapLike;
|
|
72
|
+
/**
|
|
73
|
+
* A place, a GeoJSON `Feature` (Cookbook 0139: a map on the page, tagged with where it
|
|
74
|
+
* shows): named by its `label`, which the Map draws it under too.
|
|
75
|
+
*/
|
|
76
|
+
place?: true;
|
|
77
|
+
/**
|
|
78
|
+
* One item of a `Choice` (Cookbook 0346: the same words in English and in Japanese), by
|
|
79
|
+
* the choice's place among the annotation's: of each, one shows, the one in the reader's
|
|
80
|
+
* language (`bodyInLanguage`, `core/annotation-name.ts`).
|
|
81
|
+
*/
|
|
82
|
+
choice?: number;
|
|
67
83
|
}
|
|
68
84
|
/**
|
|
69
85
|
* Clover's one data shape: IIIF Presentation 4.
|
|
@@ -71,7 +87,8 @@ export interface AnnotationBodyEntry {
|
|
|
71
87
|
* Every resource is upgraded to Presentation 4 on the way in, so no part is written for
|
|
72
88
|
* several shapes. Presentation 2.1 and 3.0 are upgraded by `@iiif/parser`; Presentation 4
|
|
73
89
|
* passes through untouched. The upgrader is imported on demand, so it costs nothing until
|
|
74
|
-
* the first resource that needs it arrives
|
|
90
|
+
* the first resource that needs it arrives, and its reader of Presentation 2 only with
|
|
91
|
+
* the first resource in 2.
|
|
75
92
|
*/
|
|
76
93
|
export type Manifest = P4.Manifest;
|
|
77
94
|
export type Presentation4Canvas = P4.Canvas;
|
|
@@ -85,7 +102,8 @@ export type Presentation4Timeline = P4.Timeline;
|
|
|
85
102
|
export type Container = Presentation4Canvas | Presentation4Timeline | Presentation4Scene;
|
|
86
103
|
/**
|
|
87
104
|
* `resource` as Presentation 4: a Manifest, Collection, Canvas, Timeline or Scene from any
|
|
88
|
-
* supported version. Presentation 4 input is returned as it is
|
|
105
|
+
* supported version. Presentation 4 input is returned as it is; the rest is upgraded as
|
|
106
|
+
* `upgrade.ts` reads it, loaded with the upgrader.
|
|
89
107
|
*/
|
|
90
108
|
export declare function toPresentation4<T = Manifest | Presentation4Collection | Container>(resource: unknown): Promise<T>;
|
|
91
109
|
/**
|
|
@@ -108,12 +126,78 @@ export interface AnnotationEntry {
|
|
|
108
126
|
bodies: AnnotationBodyEntry[];
|
|
109
127
|
/** The annotation as published, for a host's own rendering. */
|
|
110
128
|
annotation: Record<string, any>;
|
|
129
|
+
/**
|
|
130
|
+
* A Range's region (`range-regions.ts`): its place among the Range's parts, "1 of 4",
|
|
131
|
+
* which its hotspot shows after its name.
|
|
132
|
+
*/
|
|
133
|
+
place?: {
|
|
134
|
+
index: number;
|
|
135
|
+
total: number;
|
|
136
|
+
};
|
|
137
|
+
/**
|
|
138
|
+
* An annotation of one image of a `Choice` (Cookbook 0326: an X-ray's tag), not of the
|
|
139
|
+
* Canvas: the choice's key (`core/choice-key.ts`), the item's place in it, and the
|
|
140
|
+
* image's id. It is drawn while that item is the one chosen, and its `target` is given
|
|
141
|
+
* here in the Canvas's terms, placed through the image's painting.
|
|
142
|
+
*/
|
|
143
|
+
layer?: {
|
|
144
|
+
key: string;
|
|
145
|
+
item: number;
|
|
146
|
+
image: string;
|
|
147
|
+
};
|
|
111
148
|
}
|
|
149
|
+
/**
|
|
150
|
+
* The set of the regions the Manifest's Ranges name (`range-regions.ts`), drawn as
|
|
151
|
+
* annotations, listed by Contents.
|
|
152
|
+
*/
|
|
153
|
+
export declare const CONTENTS_SET_ID = "contents";
|
|
112
154
|
export interface AnnotationSet {
|
|
113
155
|
id: string;
|
|
114
156
|
label?: LanguageMapLike;
|
|
115
|
-
/**
|
|
116
|
-
|
|
157
|
+
/**
|
|
158
|
+
* Where it came from: the Manifest's Canvases, the host, a Content Search, or the
|
|
159
|
+
* regions the Manifest's Ranges name (`contentsSet`).
|
|
160
|
+
*/
|
|
161
|
+
source: "manifest" | "added" | "search" | "contents";
|
|
162
|
+
entries: AnnotationEntry[];
|
|
163
|
+
/** The AnnotationCollection its page is `partOf`, by id (Cookbook 0309). */
|
|
164
|
+
collection?: string;
|
|
165
|
+
/**
|
|
166
|
+
* The AnnotationPage or AnnotationCollection it was given as, where it is the Root's
|
|
167
|
+
* content (James Turner's tags across Manifests), walked as one whole.
|
|
168
|
+
*/
|
|
169
|
+
content?: {
|
|
170
|
+
id: string;
|
|
171
|
+
type: "AnnotationPage" | "AnnotationCollection";
|
|
172
|
+
label?: LanguageMapLike;
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
/** An annotation page a Canvas names: by id, its Canvas, and whether it is fetched. */
|
|
176
|
+
export interface AnnotationPageRef {
|
|
177
|
+
id: string;
|
|
178
|
+
canvasId: string;
|
|
179
|
+
fetched: boolean;
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Annotations walked as one whole, as a viewer walks a Collection's members: the
|
|
183
|
+
* AnnotationPage or AnnotationCollection given as the content (James Turner's tags across
|
|
184
|
+
* Manifests, all in hand), else an AnnotationCollection the Manifest's annotation pages
|
|
185
|
+
* are part of (Cookbook 0309: layout markup across a newspaper's pages, managed as one
|
|
186
|
+
* whole), whose pages load as the reader reaches them.
|
|
187
|
+
*/
|
|
188
|
+
export interface AnnotationCollection {
|
|
189
|
+
id: string;
|
|
190
|
+
type: "AnnotationPage" | "AnnotationCollection";
|
|
191
|
+
label?: LanguageMapLike;
|
|
192
|
+
/** The number of its annotations, where it says. */
|
|
193
|
+
total?: number;
|
|
194
|
+
/**
|
|
195
|
+
* The Manifest's pages of it, in the Canvases' order, so a listing loads them as the
|
|
196
|
+
* reader reaches them (`usePagesReached`, `clover.fetchAnnotationPages`). None for the
|
|
197
|
+
* content's, whose annotations are all in hand.
|
|
198
|
+
*/
|
|
199
|
+
pages: AnnotationPageRef[];
|
|
200
|
+
/** Its annotations on the Manifest's Canvases, in their order, as far as fetched. */
|
|
117
201
|
entries: AnnotationEntry[];
|
|
118
202
|
}
|
|
119
203
|
/**
|
|
@@ -161,6 +245,34 @@ export interface Target {
|
|
|
161
245
|
/** Start playback on arrival (auto-advance from the previous Canvas). */
|
|
162
246
|
autoplay?: boolean;
|
|
163
247
|
}
|
|
248
|
+
/** One of a content state's several targets: a Manifest, and a place in it. */
|
|
249
|
+
export interface ContentTarget {
|
|
250
|
+
/** Its own id: the content state's, with its place among the targets. */
|
|
251
|
+
id: string;
|
|
252
|
+
/** Where its Manifest is: the address it is loaded from. */
|
|
253
|
+
manifestId: string;
|
|
254
|
+
/**
|
|
255
|
+
* The id its Manifest gives itself, once loaded, where it is not that address (Cookbook
|
|
256
|
+
* 0540's are `…/manifest.json/manifest.json`, served at `…/manifest.json`).
|
|
257
|
+
*/
|
|
258
|
+
manifestAs?: string;
|
|
259
|
+
canvasId?: string;
|
|
260
|
+
/** In the Canvas's own coordinates. */
|
|
261
|
+
region?: {
|
|
262
|
+
x: number;
|
|
263
|
+
y: number;
|
|
264
|
+
w: number;
|
|
265
|
+
h: number;
|
|
266
|
+
};
|
|
267
|
+
/** Seconds into a time-based Canvas. */
|
|
268
|
+
time?: number;
|
|
269
|
+
}
|
|
270
|
+
/** A content state's targets, in its order, and its own `label` where it gives one. */
|
|
271
|
+
export interface ContentTargets {
|
|
272
|
+
id: string;
|
|
273
|
+
label?: Record<string, string[]>;
|
|
274
|
+
items: ContentTarget[];
|
|
275
|
+
}
|
|
164
276
|
/** A content state as a link carries it: base64url of the URI-encoded JSON, unpadded. */
|
|
165
277
|
export declare function encodeContentState(json: unknown): string;
|
|
166
278
|
export interface ContentStateOutput {
|
|
@@ -170,13 +282,16 @@ export interface ContentStateOutput {
|
|
|
170
282
|
encoded: string;
|
|
171
283
|
}
|
|
172
284
|
/**
|
|
173
|
-
* Where the reader is, as a content state: the Canvas
|
|
174
|
-
*
|
|
175
|
-
* rounded to whole pixels.
|
|
285
|
+
* Where the reader is, as a content state: the Canvas (or Presentation 4's Timeline or
|
|
286
|
+
* Scene, by its `type`) within its Manifest, and the visible region (`xywh=`) or the
|
|
287
|
+
* media time (`t=`) when there is one. Regions are rounded to whole pixels. A Canvas
|
|
288
|
+
* shown on its own, outside a Manifest (one made around it carries its id, `loneCanvas`),
|
|
289
|
+
* is named without a `partOf`.
|
|
176
290
|
*/
|
|
177
|
-
export declare function buildContentState({ manifestId, canvasId, region, time, }: {
|
|
178
|
-
manifestId
|
|
291
|
+
export declare function buildContentState({ manifestId, canvasId, type, region, time, }: {
|
|
292
|
+
manifestId?: string | null;
|
|
179
293
|
canvasId: string;
|
|
294
|
+
type?: string;
|
|
180
295
|
region?: {
|
|
181
296
|
x: number;
|
|
182
297
|
y: number;
|
|
@@ -273,6 +388,12 @@ export interface CloverState {
|
|
|
273
388
|
manifest: Manifest | null;
|
|
274
389
|
/** The Collection it was reached through, if any. */
|
|
275
390
|
collection: Presentation4Collection | null;
|
|
391
|
+
/**
|
|
392
|
+
* Whether the content was that Collection (or a content state opening it): the Manifest
|
|
393
|
+
* shown is one of its members, which the reader moves between. False for a Collection
|
|
394
|
+
* read only from the Manifest's `partOf` (`openCollection`), and for no Collection.
|
|
395
|
+
*/
|
|
396
|
+
throughCollection: boolean;
|
|
276
397
|
/** The Canvas the reader is on: the first of the view that shows it. */
|
|
277
398
|
canvasId: string | null;
|
|
278
399
|
/** Where to go once the view is drawn: a region, a time. Consumed once applied. */
|
|
@@ -286,10 +407,28 @@ export interface CloverState {
|
|
|
286
407
|
* drawn is `selectHiddenSets`'s.
|
|
287
408
|
*/
|
|
288
409
|
shownSets: string[];
|
|
289
|
-
/**
|
|
410
|
+
/**
|
|
411
|
+
* Sets beside the Manifest's own pages: its images' own (Cookbook 0326, read once it is
|
|
412
|
+
* shown, their module loaded then), the host's through `annotations`, and a content
|
|
413
|
+
* state's note.
|
|
414
|
+
*/
|
|
290
415
|
addedSets: AnnotationSet[];
|
|
291
416
|
/** A Content Search of the Manifest: its query, progress and hits. */
|
|
292
417
|
search: SearchState;
|
|
418
|
+
/**
|
|
419
|
+
* The regions the Manifest's Ranges name, as a set the Canvas draws (Cookbook 0025),
|
|
420
|
+
* read once a Manifest whose Ranges name one is shown, its module loaded then; null
|
|
421
|
+
* until then and for one without (`range-regions.ts`).
|
|
422
|
+
*/
|
|
423
|
+
regions: AnnotationSet | null;
|
|
424
|
+
/**
|
|
425
|
+
* A content state's several targets (Cookbook 0540: two Canvases from two Manifests),
|
|
426
|
+
* opened on the first, each to be gone to in turn (`goToTarget`); null for one target,
|
|
427
|
+
* and for any other content. They stay through moves among them, until the next content.
|
|
428
|
+
*/
|
|
429
|
+
targets: ContentTargets | null;
|
|
430
|
+
/** The target last gone to: which one is current where two are on the same view. */
|
|
431
|
+
targetIndex: number | null;
|
|
293
432
|
}
|
|
294
433
|
export interface SearchState {
|
|
295
434
|
query: string;
|
|
@@ -337,6 +476,12 @@ export interface Clover {
|
|
|
337
476
|
highlight: Channel<string | null>;
|
|
338
477
|
/** The chapter (its Range's id) under the pointer on a seek bar, or in `Contents`. */
|
|
339
478
|
chapter: Channel<string | null>;
|
|
479
|
+
/**
|
|
480
|
+
* The annotation the reader asked to find (`selectAnnotation`), each time they ask, the
|
|
481
|
+
* one selected already among them: the Canvas frames it again, after the reader has
|
|
482
|
+
* moved the view away (Cookbook 0021).
|
|
483
|
+
*/
|
|
484
|
+
found: Channel<string | null>;
|
|
340
485
|
readonly request: CloverRequest | undefined;
|
|
341
486
|
setRequest(request: CloverRequest | undefined): void;
|
|
342
487
|
/** Load content. `canvasId` wins over everything; `defaultCanvasId` over `start`. */
|
|
@@ -349,6 +494,12 @@ export interface Clover {
|
|
|
349
494
|
goToManifest(id: string, canvasId?: string): Promise<void>;
|
|
350
495
|
/** A controlled host's Manifest, shown without asking it again. */
|
|
351
496
|
syncManifest(id: string | null): Promise<void>;
|
|
497
|
+
/**
|
|
498
|
+
* Go to one of a content state's targets (`state.targets`), by its place among them:
|
|
499
|
+
* its Manifest opened where it is not the one shown (or the host asked, when it holds
|
|
500
|
+
* the Manifest), then its Canvas, and its region or time.
|
|
501
|
+
*/
|
|
502
|
+
goToTarget(index: number): void;
|
|
352
503
|
/**
|
|
353
504
|
* Show a Collection the Manifest is part of (its `partOf`) beside it: the Collection's
|
|
354
505
|
* members become a choice, while the Manifest and the reader's place stay as they are.
|
|
@@ -394,6 +545,12 @@ export interface Clover {
|
|
|
394
545
|
* `scope="all"`). Returns the release.
|
|
395
546
|
*/
|
|
396
547
|
holdAllAnnotationPages(): () => void;
|
|
548
|
+
/**
|
|
549
|
+
* Fetch these referenced annotation pages, each once, wherever the Manifest's Canvases
|
|
550
|
+
* name them: a listing that loads its pages as the reader reaches them (an
|
|
551
|
+
* AnnotationCollection's, Cookbook 0309), rather than all at once.
|
|
552
|
+
*/
|
|
553
|
+
fetchAnnotationPages(pageIds: string[]): void;
|
|
397
554
|
/** Abandon any load in flight. The instance stays usable. */
|
|
398
555
|
dispose(): void;
|
|
399
556
|
}
|
|
@@ -475,6 +632,14 @@ export interface RootProps extends Omit<React.HTMLAttributes<HTMLElement>, "chil
|
|
|
475
632
|
request?: CloverRequest;
|
|
476
633
|
/** The language to read IIIF text in. The reader's, by default. */
|
|
477
634
|
language?: string;
|
|
635
|
+
/**
|
|
636
|
+
* Clover's higher-contrast mode, for every part inside: the accent kept to rings,
|
|
637
|
+
* outlines and marks, and never under words or a glyph, where the controls' dark fill
|
|
638
|
+
* takes its place, edged in the accent. For an accent that cannot carry white text at
|
|
639
|
+
* 4.5:1. It is on wherever the reader's system asks for more contrast, too. Default
|
|
640
|
+
* `false`.
|
|
641
|
+
*/
|
|
642
|
+
highContrast?: boolean;
|
|
478
643
|
/**
|
|
479
644
|
* Renderers of your own for some views — by Canvas id, painting format, or a test —
|
|
480
645
|
* drawn by every `Body` inside in place of `Canvas` (3.x's `customDisplays`).
|
|
@@ -491,8 +656,9 @@ export interface RootProps extends Omit<React.HTMLAttributes<HTMLElement>, "chil
|
|
|
491
656
|
*/
|
|
492
657
|
annotationPages?: "view" | "all";
|
|
493
658
|
/**
|
|
494
|
-
* Where the reader is, as a IIIF content state,
|
|
495
|
-
*
|
|
659
|
+
* Where the reader is, as a IIIF content state, as it changes: a move, a pan or zoom,
|
|
660
|
+
* or a pause or seek in media. At most every 150ms while it moves, always its last
|
|
661
|
+
* place, and only when it changed.
|
|
496
662
|
*/
|
|
497
663
|
onContentStateChange?: (state: ContentStateOutput) => void;
|
|
498
664
|
/** The element to render. Default `div`. */
|
|
@@ -564,6 +730,11 @@ export type CanvasRendererEvent =
|
|
|
564
730
|
| "viewport"
|
|
565
731
|
/** A new set of images replaced the previous one. */
|
|
566
732
|
| "change" | "error"
|
|
733
|
+
/**
|
|
734
|
+
* Whether nothing the scene paints could be loaded (its detail): every image failed to
|
|
735
|
+
* prepare, or every tile it wanted failed for good. Fires as that changes.
|
|
736
|
+
*/
|
|
737
|
+
| "unloadable"
|
|
567
738
|
/** The backend changed (fallback, or a context released and reacquired). */
|
|
568
739
|
| "backend"
|
|
569
740
|
/** A click that is not a zoom, with click-to-zoom turned off. */
|
|
@@ -717,6 +888,19 @@ export interface CanvasAnnotation {
|
|
|
717
888
|
pageLabel?: LanguageMapLike;
|
|
718
889
|
/** Its AnnotationPage's `id`, by which the menu hides its page (`hiddenPages`). */
|
|
719
890
|
pageId?: string;
|
|
891
|
+
/** A Range's region: its place among the Range's parts (`AnnotationEntry`'s). */
|
|
892
|
+
place?: {
|
|
893
|
+
index: number;
|
|
894
|
+
total: number;
|
|
895
|
+
};
|
|
896
|
+
/**
|
|
897
|
+
* An annotation of one item of a `Choice` (Cookbook 0326): drawn while that item is the
|
|
898
|
+
* one chosen, by the choice's key and the item's place (`AnnotationEntry`'s).
|
|
899
|
+
*/
|
|
900
|
+
layer?: {
|
|
901
|
+
key: string;
|
|
902
|
+
item: number;
|
|
903
|
+
};
|
|
720
904
|
}
|
|
721
905
|
/**
|
|
722
906
|
* Everything a control needs in order to work, ready to spread onto a button: the id, the
|
|
@@ -786,6 +970,11 @@ export interface CanvasControlsConfig {
|
|
|
786
970
|
* Shown only when a Canvas has either.
|
|
787
971
|
*/
|
|
788
972
|
information?: boolean;
|
|
973
|
+
/**
|
|
974
|
+
* A map control that shows where the Canvas, else its Manifest, is (its `navPlace`), on a
|
|
975
|
+
* map in a box, as the information is. Shown only when one of them has a place.
|
|
976
|
+
*/
|
|
977
|
+
map?: boolean;
|
|
789
978
|
}
|
|
790
979
|
export interface CloverCanvasOptions {
|
|
791
980
|
/** Which painter to use. `auto` (default) tries WebGL2, then Canvas2D. */
|
|
@@ -803,6 +992,7 @@ export interface CloverCanvasOptions {
|
|
|
803
992
|
* stops moving, as the Player's `hideDelay`. Default 2000; `Infinity` keeps them once
|
|
804
993
|
* shown. A finger, or a pen that does not hover, has no timer: a tap on the picture
|
|
805
994
|
* shows them, and another hides them. Focus that no press brought holds them too.
|
|
995
|
+
* A Timeline's: a Canvas's controls stay in sight, for now (Mat, 2026-11-01).
|
|
806
996
|
*/
|
|
807
997
|
hideDelay?: number;
|
|
808
998
|
/** A time-based Canvas's video or sound. */
|
|
@@ -907,6 +1097,13 @@ export interface CloverCanvasProps {
|
|
|
907
1097
|
* default; inside a `Root`, the Root's.
|
|
908
1098
|
*/
|
|
909
1099
|
language?: string;
|
|
1100
|
+
/**
|
|
1101
|
+
* Clover's higher-contrast mode: the accent kept to rings, outlines and marks, and never
|
|
1102
|
+
* under words or a glyph, where the controls' dark fill takes its place, edged in the
|
|
1103
|
+
* accent. Inside a `Root`, the Root's too; on wherever the reader's system asks for more
|
|
1104
|
+
* contrast. Default `false`.
|
|
1105
|
+
*/
|
|
1106
|
+
highContrast?: boolean;
|
|
910
1107
|
/** Stable id for this instance. A new id remounts the renderer. */
|
|
911
1108
|
instanceId?: string;
|
|
912
1109
|
className?: string;
|
|
@@ -924,6 +1121,14 @@ export interface CloverCanvasProps {
|
|
|
924
1121
|
* the handle `onReady` passes (`home()`, `zoomBy(0.5)`) (WCAG 2.5.1).
|
|
925
1122
|
*/
|
|
926
1123
|
controls?: boolean | CanvasControlsConfig;
|
|
1124
|
+
/**
|
|
1125
|
+
* When the view's controls (zoom in and out, the two turns, reset, full screen)
|
|
1126
|
+
* collapse behind one button, at the end of the controls' one row, so the row fits any
|
|
1127
|
+
* width and leaves the media more room: `"auto"` (the default), only where the row
|
|
1128
|
+
* cannot hold them all; `"always"`, wherever the Canvas offers any, so the row holds
|
|
1129
|
+
* only the rest. Pressed, the button opens a tray of them beside the rest.
|
|
1130
|
+
*/
|
|
1131
|
+
collapseControls?: "auto" | "always";
|
|
927
1132
|
/** Replace any control with your own component — the `Viewer`'s `controlButtons`. */
|
|
928
1133
|
controlButtons?: ControlButtons;
|
|
929
1134
|
/**
|
|
@@ -931,6 +1136,11 @@ export interface CloverCanvasProps {
|
|
|
931
1136
|
* targets are drawn; coordinates are the target image's own.
|
|
932
1137
|
*/
|
|
933
1138
|
annotations?: CanvasAnnotation[];
|
|
1139
|
+
/**
|
|
1140
|
+
* The Manifest's `navPlace`, a GeoJSON FeatureCollection: where it is, which the map
|
|
1141
|
+
* control shows where the Canvases shown have none of their own.
|
|
1142
|
+
*/
|
|
1143
|
+
navPlace?: unknown;
|
|
934
1144
|
/**
|
|
935
1145
|
* The AnnotationPages (each annotation's `pageId`) whose annotations are hidden: none
|
|
936
1146
|
* of them is drawn, but the annotations menu still lists them under their page, with
|
|
@@ -986,6 +1196,17 @@ export interface CloverCanvasProps {
|
|
|
986
1196
|
manifestId?: string;
|
|
987
1197
|
/** The visible world rectangle, at most once per frame while the camera moves. */
|
|
988
1198
|
onViewportChange?: (bounds: Rect) => void;
|
|
1199
|
+
/**
|
|
1200
|
+
* Where it is, as a IIIF content state, as it changes: as the Canvas changes, the
|
|
1201
|
+
* camera pans or zooms, or its media pauses or seeks. Both forms, the
|
|
1202
|
+
* annotation (`json`) and the same encoded for a URL (`encoded`); the Canvas, within its
|
|
1203
|
+
* Manifest (`manifestId`, the one it loaded, or its Root's), and the region in view or
|
|
1204
|
+
* the time. Of several shown together, it names the one filling most of the view.
|
|
1205
|
+
* Given `canvases`, it names no Manifest unless `manifestId` does; given only `src` or
|
|
1206
|
+
* `body`, it has no Canvas to name, and reports nothing. At most every 150ms while it
|
|
1207
|
+
* moves, always its last place, and only when it changed.
|
|
1208
|
+
*/
|
|
1209
|
+
onContentStateChange?: (state: ContentStateOutput) => void;
|
|
989
1210
|
/**
|
|
990
1211
|
* A time-based Canvas's media element once it exists, and `null` when it goes: for a
|
|
991
1212
|
* host's own transcript, chapters or `#t=` seeks. Sound plays through a `<video>` too.
|
|
@@ -1023,6 +1244,12 @@ export interface CloverCanvasProps {
|
|
|
1023
1244
|
lang?: string;
|
|
1024
1245
|
start: number;
|
|
1025
1246
|
end?: number;
|
|
1247
|
+
/**
|
|
1248
|
+
* A picture of it, over it on the seek bar and under it in the menu while it plays:
|
|
1249
|
+
* a URL, shown as it is, or a IIIF image (a Range's `thumbnail`), asked of its
|
|
1250
|
+
* service as its `info.json` allows. Inside a `Root`, its Range's `thumbnail`.
|
|
1251
|
+
*/
|
|
1252
|
+
thumbnail?: string | Record<string, unknown>;
|
|
1026
1253
|
}>;
|
|
1027
1254
|
/** A chapter (by its `id`) to mark on the seek bar, as hovering it in a list does. */
|
|
1028
1255
|
highlightedChapter?: string | null;
|
|
@@ -1057,7 +1284,7 @@ export type BodyProps = Omit<CloverCanvasProps, "canvases" | "body" | "src" | "i
|
|
|
1057
1284
|
* shows Clover's loading mark, a line along its top edge, over what it still shows; it
|
|
1058
1285
|
* keeps its size and its background, so nothing moves.
|
|
1059
1286
|
*/
|
|
1060
|
-
export declare function Body({ className, style, renderers, children, ...canvas }: BodyProps): React.JSX.Element;
|
|
1287
|
+
export declare function Body({ className, style, renderers, collapseControls, onContentStateChange, children, ...canvas }: BodyProps): React.JSX.Element;
|
|
1061
1288
|
export interface LabelProps extends Omit<React.HTMLAttributes<HTMLElement>, "lang"> {
|
|
1062
1289
|
/** Whose label: the Manifest's (the default), or the current Canvas's. */
|
|
1063
1290
|
of?: "manifest" | "canvas";
|
|
@@ -1072,28 +1299,6 @@ export interface LabelProps extends Omit<React.HTMLAttributes<HTMLElement>, "lan
|
|
|
1072
1299
|
* none.
|
|
1073
1300
|
*/
|
|
1074
1301
|
export declare const Label: React.ForwardRefExoticComponent<LabelProps & React.RefAttributes<HTMLElement>>;
|
|
1075
|
-
/** What the pieces step through inside a Root: its views, or its Collection's members. */
|
|
1076
|
-
export type StepsOf = "views" | "members";
|
|
1077
|
-
export type ButtonProps = Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "type" | "children">;
|
|
1078
|
-
export interface StepProps extends ButtonProps {
|
|
1079
|
-
/** What it steps through: the Root's views (default), or its Collection's members. */
|
|
1080
|
-
of?: StepsOf;
|
|
1081
|
-
}
|
|
1082
|
-
/** Go to the previous item. `aria-disabled` on the first. */
|
|
1083
|
-
export declare const Previous: React.ForwardRefExoticComponent<StepProps & React.RefAttributes<HTMLButtonElement>>;
|
|
1084
|
-
/** Go to the next item. `aria-disabled` on the last. */
|
|
1085
|
-
export declare const Next: React.ForwardRefExoticComponent<StepProps & React.RefAttributes<HTMLButtonElement>>;
|
|
1086
|
-
export interface PositionProps extends React.HTMLAttributes<HTMLElement> {
|
|
1087
|
-
/** What it counts: the Root's views (default), or its Collection's members. */
|
|
1088
|
-
of?: StepsOf;
|
|
1089
|
-
as?: React.ElementType;
|
|
1090
|
-
}
|
|
1091
|
-
/**
|
|
1092
|
-
* Where the reader is, counted in items: "2 / 5", the same in every language. Assistive
|
|
1093
|
-
* technology reads the sentence instead, "Item 2 of 5" in the reader's language, which a
|
|
1094
|
-
* bare slash would leave to guesswork.
|
|
1095
|
-
*/
|
|
1096
|
-
export declare const Position: React.ForwardRefExoticComponent<PositionProps & React.RefAttributes<HTMLElement>>;
|
|
1097
1302
|
/**
|
|
1098
1303
|
* What `Items` shows: light models of a Manifest's views or a Collection's members, never
|
|
1099
1304
|
* the resources themselves, so a long sequence costs a few fields per item.
|
|
@@ -1110,6 +1315,11 @@ export interface ItemPart {
|
|
|
1110
1315
|
duration?: number;
|
|
1111
1316
|
/** What it mostly paints: `Image`, `Video`, `Audio` (`Sound` in Presentation 3) or `Model`. */
|
|
1112
1317
|
media?: string;
|
|
1318
|
+
/**
|
|
1319
|
+
* Its picture, where it is not the resource's own: a region of its Canvas (a content
|
|
1320
|
+
* state's target, Cookbook 0540). Null for none.
|
|
1321
|
+
*/
|
|
1322
|
+
source?: ThumbnailSource | null;
|
|
1113
1323
|
}
|
|
1114
1324
|
export interface ItemModel {
|
|
1115
1325
|
/** The first Canvas of a view, or a member's id. What selecting it goes to. */
|
|
@@ -1118,25 +1328,90 @@ export interface ItemModel {
|
|
|
1118
1328
|
parts: ItemPart[];
|
|
1119
1329
|
label?: LanguageMapLike;
|
|
1120
1330
|
summary?: LanguageMapLike;
|
|
1331
|
+
/** A member's date for navigation, as written (Cookbook 0318). */
|
|
1332
|
+
navDate?: string;
|
|
1121
1333
|
/** Where a link to a member goes: its `homepage`, else its id. */
|
|
1122
1334
|
href?: string;
|
|
1335
|
+
/** That homepage's own language, where its `language` gives one. */
|
|
1336
|
+
hrefLang?: string;
|
|
1337
|
+
}
|
|
1338
|
+
/** The line under an item's label: its summary, its date (`navDate`), or neither. */
|
|
1339
|
+
export type ItemSecondary = "summary" | "navDate" | "none";
|
|
1340
|
+
/**
|
|
1341
|
+
* What the pieces step through inside a Root: its views, its Collection's members, or a
|
|
1342
|
+
* content state's targets (Cookbook 0540).
|
|
1343
|
+
*/
|
|
1344
|
+
export type StepsOf = "views" | "members" | "targets";
|
|
1345
|
+
export interface PositionProps extends React.HTMLAttributes<HTMLElement> {
|
|
1346
|
+
/** What it counts: the Root's views (default), or its Collection's members. */
|
|
1347
|
+
of?: StepsOf;
|
|
1348
|
+
as?: React.ElementType;
|
|
1349
|
+
}
|
|
1350
|
+
/**
|
|
1351
|
+
* Where the reader is, counted in items: "2 / 5", the same in every language. Assistive
|
|
1352
|
+
* technology reads the sentence instead, "Item 2 of 5" in the reader's language, which a
|
|
1353
|
+
* bare slash would leave to guesswork.
|
|
1354
|
+
*/
|
|
1355
|
+
export declare const Position: React.ForwardRefExoticComponent<PositionProps & React.RefAttributes<HTMLElement>>;
|
|
1356
|
+
/**
|
|
1357
|
+
* Stepping through Items one at a time: `Previous`, `Next` and `Position`, and the three
|
|
1358
|
+
* together as Items' `pager` layout (`<Clover.Items layout="pager" />`).
|
|
1359
|
+
*
|
|
1360
|
+
* They step through what Items lists: the Root's views (a paged book a spread at a time),
|
|
1361
|
+
* or with `of="members"` the Collection's Manifests. The arrows follow the Manifest's
|
|
1362
|
+
* `viewingDirection`: in a right-to-left book, "previous" points right. Each renders
|
|
1363
|
+
* nothing when there is only one item.
|
|
1364
|
+
*
|
|
1365
|
+
* `Previous` and `Next` are round controls with an arrow, as Items' own arrows are: the
|
|
1366
|
+
* name is hidden from sight but not from assistive technology, and shows on hover and
|
|
1367
|
+
* focus. Where there is nowhere to go, each shows disabled.
|
|
1368
|
+
*
|
|
1369
|
+
* This module reads no thumbnails: a layout with a pager and no strip carries none of it.
|
|
1370
|
+
* `Position` and the steps the three read are `Position.tsx`, which a page counting its
|
|
1371
|
+
* views loads without the rest.
|
|
1372
|
+
*/
|
|
1373
|
+
export type ButtonProps = Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, "type" | "children">;
|
|
1374
|
+
export interface StepProps extends ButtonProps {
|
|
1375
|
+
/** What it steps through: the Root's views (default), or its Collection's members. */
|
|
1376
|
+
of?: StepsOf;
|
|
1123
1377
|
}
|
|
1378
|
+
/** Go to the previous item. `aria-disabled` on the first. */
|
|
1379
|
+
export declare const Previous: React.ForwardRefExoticComponent<StepProps & React.RefAttributes<HTMLButtonElement>>;
|
|
1380
|
+
/** Go to the next item. `aria-disabled` on the last. */
|
|
1381
|
+
export declare const Next: React.ForwardRefExoticComponent<StepProps & React.RefAttributes<HTMLButtonElement>>;
|
|
1124
1382
|
/**
|
|
1125
|
-
* A scrolling row of thumbnails (`slider`), a column, a wrapping grid,
|
|
1126
|
-
* time (`pager`: Previous,
|
|
1383
|
+
* A scrolling row of thumbnails (`slider`), a column, a wrapping grid, a grid whose
|
|
1384
|
+
* pictures keep their proportions (`masonry`), or one item at a time (`pager`: Previous,
|
|
1385
|
+
* Position and Next).
|
|
1127
1386
|
*/
|
|
1128
|
-
export type ItemsLayout = "slider" | "list" | "grid" | "pager";
|
|
1387
|
+
export type ItemsLayout = "slider" | "list" | "grid" | "masonry" | "pager";
|
|
1129
1388
|
export interface ItemsProps extends Omit<React.HTMLAttributes<HTMLElement>, "onSelect" | "children"> {
|
|
1130
1389
|
/**
|
|
1131
|
-
* A scrolling row (the default), a column, a wrapping grid, or `pager`:
|
|
1132
|
-
* Position and Next, stepping one item at a time, with no thumbnails.
|
|
1390
|
+
* A scrolling row (the default), a column, a wrapping grid, `masonry`, or `pager`:
|
|
1391
|
+
* Previous, Position and Next, stepping one item at a time, with no thumbnails.
|
|
1392
|
+
* `masonry` is a grid whose pictures keep their own proportions, each item packed up
|
|
1393
|
+
* under the one above it, still in reading order, left to right.
|
|
1133
1394
|
*/
|
|
1134
1395
|
layout?: ItemsLayout;
|
|
1135
1396
|
/**
|
|
1136
|
-
*
|
|
1137
|
-
*
|
|
1397
|
+
* The line under an item's label, where it has one (a Collection's members do): its
|
|
1398
|
+
* `summary` (the default), its `navDate`, or `none`. Default `"summary"`.
|
|
1399
|
+
*/
|
|
1400
|
+
secondary?: ItemSecondary;
|
|
1401
|
+
/**
|
|
1402
|
+
* The pager's size: `large` (the default), round controls; or `small`, its steps and
|
|
1403
|
+
* count as Search's are, for a header's line. Default `"large"`.
|
|
1404
|
+
*/
|
|
1405
|
+
size?: "large" | "small";
|
|
1406
|
+
/**
|
|
1407
|
+
* Inside a `Root`: the Manifest's views (default), the members of the Collection it
|
|
1408
|
+
* belongs to, choosing one to show, a content state's targets, where it names two or
|
|
1409
|
+
* more (Cookbook 0540), each opening its Manifest at its place, or annotations walked as
|
|
1410
|
+
* one whole: the AnnotationPage or AnnotationCollection given as the content, else the
|
|
1411
|
+
* AnnotationCollection its annotation pages are part of (Cookbook 0309), each picked
|
|
1412
|
+
* and framed on its Canvas.
|
|
1138
1413
|
*/
|
|
1139
|
-
of?: "views" | "members";
|
|
1414
|
+
of?: "views" | "members" | "targets" | "annotations";
|
|
1140
1415
|
/**
|
|
1141
1416
|
* Standalone: a Collection (its members), a Manifest (its views) or a URL to one. Inside
|
|
1142
1417
|
* a `Root`, leave it out to list the Root's views.
|
|
@@ -1164,10 +1439,23 @@ export interface ItemsProps extends Omit<React.HTMLAttributes<HTMLElement>, "onS
|
|
|
1164
1439
|
headingLevel?: number;
|
|
1165
1440
|
/** Pixels requested for each thumbnail's longer side. Default 200. */
|
|
1166
1441
|
thumbnailSize?: number;
|
|
1442
|
+
/**
|
|
1443
|
+
* Inside a `Root`: list the views even where there is only one, as a gallery's grid
|
|
1444
|
+
* does. The pager, with nothing to step to, still draws nothing. Default `false`: one
|
|
1445
|
+
* view has nothing to choose between.
|
|
1446
|
+
*/
|
|
1447
|
+
singleItem?: boolean;
|
|
1167
1448
|
/** Standalone: credentials, headers and `fetch`. In a `Root`, the Root's are used. */
|
|
1168
1449
|
request?: CloverRequest;
|
|
1169
1450
|
/** Standalone: the language to read IIIF text in. */
|
|
1170
1451
|
language?: string;
|
|
1452
|
+
/**
|
|
1453
|
+
* Clover's higher-contrast mode: the accent kept to rings, outlines and marks, and never
|
|
1454
|
+
* under words or a glyph, where the controls' dark fill takes its place, edged in the
|
|
1455
|
+
* accent. Inside a `Root`, the Root's too; on wherever the reader's system asks for more
|
|
1456
|
+
* contrast. Default `false`.
|
|
1457
|
+
*/
|
|
1458
|
+
highContrast?: boolean;
|
|
1171
1459
|
/** Replace an item's figure with your own. */
|
|
1172
1460
|
renderItem?: (item: ItemModel, state: {
|
|
1173
1461
|
selected: boolean;
|
|
@@ -1378,8 +1666,17 @@ export interface PanelProps extends Omit<React.HTMLAttributes<HTMLElement>, "def
|
|
|
1378
1666
|
headingLevel?: number;
|
|
1379
1667
|
/** The element to render. Default `aside`. */
|
|
1380
1668
|
as?: React.ElementType;
|
|
1381
|
-
/**
|
|
1669
|
+
/**
|
|
1670
|
+
* Whether About's heading offers the downloads, by a Download button that lists the
|
|
1671
|
+
* `rendering` of the page in view and of the Manifest. Default `true`.
|
|
1672
|
+
*/
|
|
1382
1673
|
download?: boolean;
|
|
1674
|
+
/**
|
|
1675
|
+
* Where what the resource says of itself comes in several languages, About's heading
|
|
1676
|
+
* offers them, and the whole Root reads in the one chosen. Default `true`; `false`
|
|
1677
|
+
* leaves the choice out, and the Root reads in its `language`, else the reader's.
|
|
1678
|
+
*/
|
|
1679
|
+
languages?: boolean;
|
|
1383
1680
|
/**
|
|
1384
1681
|
* `Clover.Tab`s. Without any, the panel has the tabs Clover has data for: About,
|
|
1385
1682
|
* Contents when the Manifest has Ranges, Search when it has a Content Search service, a
|
|
@@ -1411,7 +1708,11 @@ export interface AboutProps extends React.HTMLAttributes<HTMLElement> {
|
|
|
1411
1708
|
* heading, and names its section instead (`ui/heading.ts`).
|
|
1412
1709
|
*/
|
|
1413
1710
|
headingLevel?: number;
|
|
1414
|
-
/**
|
|
1711
|
+
/**
|
|
1712
|
+
* Alone, outside a Panel: list the downloads, Download's links, in a section of their
|
|
1713
|
+
* own. In a Panel, its heading's Download button lists them (the Panel's `download`).
|
|
1714
|
+
* Default `true`.
|
|
1715
|
+
*/
|
|
1415
1716
|
download?: boolean;
|
|
1416
1717
|
/**
|
|
1417
1718
|
* The Manifest's thumbnail first, small, at its own shape, floated at the end of the
|
|
@@ -1425,6 +1726,12 @@ export interface AboutProps extends React.HTMLAttributes<HTMLElement> {
|
|
|
1425
1726
|
* it (Mat, 2026-10-26: "repeat label as a heading"). Default `true`.
|
|
1426
1727
|
*/
|
|
1427
1728
|
label?: boolean;
|
|
1729
|
+
/**
|
|
1730
|
+
* Alone, outside a Panel: where what the resource says of itself comes in several
|
|
1731
|
+
* languages, offer them over what About says, the whole Root reading in the one chosen.
|
|
1732
|
+
* In a Panel, its heading offers them (the Panel's `languages`). Default `true`.
|
|
1733
|
+
*/
|
|
1734
|
+
languages?: boolean;
|
|
1428
1735
|
}
|
|
1429
1736
|
/**
|
|
1430
1737
|
* Everything the Manifest says about itself, in the order 3.x's About tab shows it:
|
|
@@ -1434,8 +1741,12 @@ export interface AboutProps extends React.HTMLAttributes<HTMLElement> {
|
|
|
1434
1741
|
* Each part renders only if the Manifest has
|
|
1435
1742
|
* it. The downloads are Download's: the `rendering` of the page in view ("This page")
|
|
1436
1743
|
* and of the Manifest ("All pages").
|
|
1744
|
+
*
|
|
1745
|
+
* Where what it says comes in several languages, the languages to read the resource in
|
|
1746
|
+
* (`ReadingLanguages`): over what About says, or, in a Panel's `about` section, beside
|
|
1747
|
+
* its heading, where they show whichever section is open.
|
|
1437
1748
|
*/
|
|
1438
|
-
export declare function About({
|
|
1749
|
+
export declare function About({ languages, ...props }: AboutProps): React.JSX.Element;
|
|
1439
1750
|
export interface AnnotationsProps extends React.HTMLAttributes<HTMLElement> {
|
|
1440
1751
|
/**
|
|
1441
1752
|
* Every annotation in the Manifest (default), as the Viewer's panel lists them: by
|
|
@@ -1453,25 +1764,6 @@ export interface AnnotationsProps extends React.HTMLAttributes<HTMLElement> {
|
|
|
1453
1764
|
headingLevel?: number;
|
|
1454
1765
|
as?: React.ElementType;
|
|
1455
1766
|
}
|
|
1456
|
-
/**
|
|
1457
|
-
* The annotations of the Root's resource — comments, tags, transcriptions — grouped by
|
|
1458
|
-
* set, as a list to read and to point with.
|
|
1459
|
-
*
|
|
1460
|
-
* - Each entry shows its content (IIIF's limited HTML, sanitized; an image body as an
|
|
1461
|
-
* image). Pressing it frames the annotation on the Canvas, going to its Canvas first if
|
|
1462
|
-
* need be. For the keyboard, a button inside it does the same, out of sight, its focus
|
|
1463
|
-
* drawn around the entry.
|
|
1464
|
-
* - Hovering or focusing an entry highlights its hotspot, and hovering a hotspot
|
|
1465
|
-
* highlights its entry: one highlight, shared through the Root, with no timers.
|
|
1466
|
-
* - Each set is headed by its AnnotationPage's own label, when it has one, and at the
|
|
1467
|
-
* header's end a toggle that hides its annotations from the Canvas (`HideToggle`: an
|
|
1468
|
-
* eye, "Hide" and the page's label, or "Hide annotations" for a page without one).
|
|
1469
|
-
* Pointed at or focused, it lights every entry it hides.
|
|
1470
|
-
* - Where the same words come as separate annotations, one per language (a transcription
|
|
1471
|
-
* and its translation), the set's header offers their languages by code ("AR", "EN"),
|
|
1472
|
-
* and lists one at a time: the Root's `language` to start, else the reader's
|
|
1473
|
-
* (`LanguageChoice`). Annotations in no language show whichever is chosen.
|
|
1474
|
-
*/
|
|
1475
1767
|
export declare const Annotations: React.ForwardRefExoticComponent<AnnotationsProps & React.RefAttributes<HTMLElement>>;
|
|
1476
1768
|
export interface TranscriptProps extends React.HTMLAttributes<HTMLElement> {
|
|
1477
1769
|
as?: React.ElementType;
|
|
@@ -1508,7 +1800,10 @@ export interface TranscriptProps extends React.HTMLAttributes<HTMLElement> {
|
|
|
1508
1800
|
* "IT") picks one: native radios, each named by its code and its file's label, in that
|
|
1509
1801
|
* label's language. In an information panel's accordion the row sits beside the
|
|
1510
1802
|
* Transcript's heading (`useSectionActions`), where it is not lost in the cues; elsewhere
|
|
1511
|
-
* it is over them.
|
|
1803
|
+
* it is over them. The Root's language wins (Mat, 2026-10-28: "there should be one
|
|
1804
|
+
* language toggle. always let root win"): the file in it is the one read, and where the
|
|
1805
|
+
* Root offers the languages to read the resource in (`useReadingLanguages`), the
|
|
1806
|
+
* Transcript offers none of its own.
|
|
1512
1807
|
*/
|
|
1513
1808
|
export declare const Transcript: React.ForwardRefExoticComponent<TranscriptProps & React.RefAttributes<HTMLElement>>;
|
|
1514
1809
|
export interface ContentsProps extends React.HTMLAttributes<HTMLElement> {
|
|
@@ -1517,7 +1812,17 @@ export interface ContentsProps extends React.HTMLAttributes<HTMLElement> {
|
|
|
1517
1812
|
/**
|
|
1518
1813
|
* The Manifest's table of contents, from its Ranges: chapters of a book, acts of an opera,
|
|
1519
1814
|
* nested as they nest. The entry the reader is in is marked, following playback through a
|
|
1520
|
-
* time-based Canvas.
|
|
1815
|
+
* time-based Canvas. An entry with entries under it opens and closes them by a button at
|
|
1816
|
+
* the end of its row (a disclosure, `aria-expanded`), named for it ("Sections in Act 1").
|
|
1817
|
+
* They start closed, but for those holding the current entry: open from the root down
|
|
1818
|
+
* to it, and set in the text's weight, so the trail to it shows (Mat, 2026-10-28). The
|
|
1819
|
+
* reader's own choices hold, until the current entry comes into a branch it was not in,
|
|
1820
|
+
* which opens. An article in parts (its columns, on pages out of order) has, while it is
|
|
1821
|
+
* the current entry, a step through them in its row ("2 / 4", `ui/Steps`); its
|
|
1822
|
+
* regions are drawn on the Canvas as annotations are (`range-regions.ts`). The current
|
|
1823
|
+
* entry shows its Range's `thumbnail` (Cookbook 0229) under its words, large, as the seek
|
|
1824
|
+
* bar's popover does, and the others none (`ui/EntryThumbnail`). Choosing an entry goes
|
|
1825
|
+
* to its Canvas, and to its region or its moment.
|
|
1521
1826
|
* Hovering or focusing one marks its chapter on the Canvas's seek bar, and the chapter
|
|
1522
1827
|
* under the pointer there marks its entry here: one highlight, through the Root
|
|
1523
1828
|
* (`clover.chapter`), as the annotations share theirs.
|
|
@@ -1534,7 +1839,9 @@ export interface DownloadProps extends Omit<React.HTMLAttributes<HTMLElement>, "
|
|
|
1534
1839
|
* Downloads, as 3.x's Viewer offers them: the `rendering` of the Canvases in view ("This
|
|
1535
1840
|
* page") and of the Manifest ("All pages") — a PDF, a text, a high-resolution file —
|
|
1536
1841
|
* each a link, as Homepage lists a resource's pages (Mat, 2026-10-21: links, not a
|
|
1537
|
-
* button that opens them).
|
|
1842
|
+
* button that opens them). Pressed, a link saves its file rather than opening it, where
|
|
1843
|
+
* its server lets the file be fetched (`saveFile`), and opens it in a new tab where not.
|
|
1844
|
+
* Renders nothing when there is nothing to download.
|
|
1538
1845
|
*/
|
|
1539
1846
|
export declare function Download({ className, headingLevel, ...rest }: DownloadProps): React.JSX.Element | null;
|
|
1540
1847
|
/** A length: pixels as a number, or a CSS length in `px`, `rem` or `%` of the split. */
|
|
@@ -1700,7 +2007,7 @@ export declare function PanelToggle({ open, onOpenChange, controls, }: PanelTogg
|
|
|
1700
2007
|
* itself.
|
|
1701
2008
|
*/
|
|
1702
2009
|
export declare const Canvas: React.FC<CloverCanvasProps>;
|
|
1703
|
-
export type TimelineProps = Omit<CloverCanvasProps, "canvases" | "body" | "src" | "isTiledImage" | "viewingDirection" | "navigator" | "onViewportChange" | "onReady" | "animateAnnotations"> & {
|
|
2010
|
+
export type TimelineProps = Omit<CloverCanvasProps, "canvases" | "body" | "src" | "isTiledImage" | "viewingDirection" | "navigator" | "collapseControls" | "onViewportChange" | "onReady" | "animateAnnotations"> & {
|
|
1704
2011
|
/**
|
|
1705
2012
|
* A Presentation 4 Timeline to play: its sound, with what it carries (captions, a
|
|
1706
2013
|
* transcript, annotations on its time, an accompanying or placeholder Canvas).
|
|
@@ -1763,6 +2070,13 @@ export interface SceneProps {
|
|
|
1763
2070
|
label?: unknown;
|
|
1764
2071
|
/** The language to read IIIF text in. The reader's, by default; inside a `Root`, the Root's. */
|
|
1765
2072
|
language?: string;
|
|
2073
|
+
/**
|
|
2074
|
+
* Clover's higher-contrast mode: the accent kept to rings, outlines and marks, and never
|
|
2075
|
+
* under words or a glyph, where the controls' dark fill takes its place, edged in the
|
|
2076
|
+
* accent. Inside a `Root`, the Root's too; on wherever the reader's system asks for more
|
|
2077
|
+
* contrast. Default `false`.
|
|
2078
|
+
*/
|
|
2079
|
+
highContrast?: boolean;
|
|
1766
2080
|
className?: string;
|
|
1767
2081
|
/** All of Clover's controls (`true`, the default), none (`false`), or all but those set `false`. */
|
|
1768
2082
|
controls?: boolean | SceneControlsConfig;
|
|
@@ -1786,6 +2100,13 @@ export interface SceneProps {
|
|
|
1786
2100
|
* rest, and sparse accessors, which Clover's does not draw yet.
|
|
1787
2101
|
*/
|
|
1788
2102
|
engine?: "clover" | "three";
|
|
2103
|
+
/**
|
|
2104
|
+
* Where it is, as a IIIF content state, each time the Scene shown changes: the Scene
|
|
2105
|
+
* within its Manifest (`manifestId`, the one it loaded, or its Root's), as the
|
|
2106
|
+
* annotation (`json`) and the same encoded for a URL (`encoded`). A content state has no
|
|
2107
|
+
* camera to carry, so turning or zooming the models leaves it as it is.
|
|
2108
|
+
*/
|
|
2109
|
+
onContentStateChange?: (state: ContentStateOutput) => void;
|
|
1789
2110
|
/** Rendered after the controls in the cluster: a host's own controls. */
|
|
1790
2111
|
children?: React.ReactNode;
|
|
1791
2112
|
}
|
|
@@ -1827,6 +2148,13 @@ export declare function useVisibleCanvases(): Container[];
|
|
|
1827
2148
|
export declare function useActiveCanvas(): Container | null;
|
|
1828
2149
|
/** Moving between views. Steps by view, so a spread moves two pages at a time. */
|
|
1829
2150
|
export declare function useNavigation(): Navigation;
|
|
2151
|
+
/**
|
|
2152
|
+
* Annotations walked as one whole: the AnnotationPage or AnnotationCollection given as
|
|
2153
|
+
* the content, else the AnnotationCollection the Manifest's annotation pages are part of
|
|
2154
|
+
* (Cookbook 0309). Its `id`, `type`, `label`, `total`, `pages` and its annotations so far
|
|
2155
|
+
* (`entries`); null where there are none. `Items of="annotations"` walks them.
|
|
2156
|
+
*/
|
|
2157
|
+
export declare function useAnnotationCollection(): AnnotationCollection | null;
|
|
1830
2158
|
/** Every annotation set: the Manifest's own (fetched so far) and any the host added. */
|
|
1831
2159
|
export declare function useAnnotationSets(): AnnotationSet[];
|
|
1832
2160
|
/** A IIIF language map as text in the Root's language, with the tag it is in. */
|
|
@@ -1869,7 +2197,7 @@ export interface Shortcut {
|
|
|
1869
2197
|
* hides it without moving the pointer or focus; the pointer can move onto it without it
|
|
1870
2198
|
* closing; and it stays until the pointer or focus leaves. Styles are `ui/Tip.css`.
|
|
1871
2199
|
*/
|
|
1872
|
-
export declare function Tip({ label, lang, shortcut, scrolls, image, }: {
|
|
2200
|
+
export declare function Tip({ label, lang, shortcut, scrolls, image, lead, after, }: {
|
|
1873
2201
|
label: string;
|
|
1874
2202
|
/** The language of `label`, where it is not its control's. */
|
|
1875
2203
|
lang?: string;
|
|
@@ -1885,6 +2213,18 @@ export declare function Tip({ label, lang, shortcut, scrolls, image, }: {
|
|
|
1885
2213
|
* shows, and named by them, as the control is.
|
|
1886
2214
|
*/
|
|
1887
2215
|
image?: string;
|
|
2216
|
+
/**
|
|
2217
|
+
* A line over the words, set apart from them: the time under the pointer, over a
|
|
2218
|
+
* chapter's title in the seek bar's popover (`ui/Tip.css`). Shown only: its control
|
|
2219
|
+
* says it for assistive technology.
|
|
2220
|
+
*/
|
|
2221
|
+
lead?: string;
|
|
2222
|
+
/**
|
|
2223
|
+
* A figure after the words, smaller, as the step through a list sets its place (a
|
|
2224
|
+
* Range's region's "1 / 4", `ui/Steps.css`). Shown only: its control says it for
|
|
2225
|
+
* assistive technology.
|
|
2226
|
+
*/
|
|
2227
|
+
after?: React.ReactNode;
|
|
1888
2228
|
}): React.JSX.Element;
|
|
1889
2229
|
/**
|
|
1890
2230
|
* Clover's popups open one at a time: the Canvas's menus (annotations, Choice, an
|
|
@@ -1962,6 +2302,11 @@ export declare function titled(level: number, id: string, fallback?: React.Eleme
|
|
|
1962
2302
|
export interface CloverContextValue {
|
|
1963
2303
|
clover: Clover;
|
|
1964
2304
|
language?: string;
|
|
2305
|
+
/**
|
|
2306
|
+
* The reader chose a language to read IIIF text in (About's languages): every part
|
|
2307
|
+
* inside reads in it, until the Root is given another `language`.
|
|
2308
|
+
*/
|
|
2309
|
+
chooseLanguage?: (tag: string) => void;
|
|
1965
2310
|
/** Renderers of the host's own, for `Body` to draw some views with. */
|
|
1966
2311
|
renderers?: BodyRenderer[];
|
|
1967
2312
|
}
|
|
@@ -2006,6 +2351,11 @@ export interface Chapter {
|
|
|
2006
2351
|
label?: LanguageMapLike;
|
|
2007
2352
|
start: number;
|
|
2008
2353
|
end?: number;
|
|
2354
|
+
/**
|
|
2355
|
+
* Its Range's `thumbnail` (Cookbook 0229), the first it gives, as written: what draws
|
|
2356
|
+
* it asks its service as its `info.json` allows (`ui/EntryThumbnail`).
|
|
2357
|
+
*/
|
|
2358
|
+
thumbnail?: Record<string, unknown>;
|
|
2009
2359
|
}
|
|
2010
2360
|
export declare function chaptersOf(manifest: Manifest | null, canvasId: string | null, duration?: number): Chapter[];
|
|
2011
2361
|
/** One entry of a table of contents: a Range, where it starts, and the Ranges within. */
|
|
@@ -2028,8 +2378,33 @@ export interface ContentsNode {
|
|
|
2028
2378
|
w: number;
|
|
2029
2379
|
h: number;
|
|
2030
2380
|
};
|
|
2381
|
+
/**
|
|
2382
|
+
* Its own Canvases and their parts, in the order the Range reads them (Cookbook 0025:
|
|
2383
|
+
* an article's columns, page 2 then page 5): for a `sequence` (Cookbook 0027), where a
|
|
2384
|
+
* region is among them, which the Canvas draws (`range-regions.ts`), or where its pages
|
|
2385
|
+
* are out of the Manifest's order; two or more are stepped through in Contents. None on
|
|
2386
|
+
* a recording's time, nor for any other run of whole pages in order, which Items steps.
|
|
2387
|
+
*/
|
|
2388
|
+
parts?: ContentsPart[];
|
|
2389
|
+
/**
|
|
2390
|
+
* A Range of `behavior` `sequence` (Cookbook 0027): an order of the Canvases of its own,
|
|
2391
|
+
* the first of them the default, as `currentContents` takes it.
|
|
2392
|
+
*/
|
|
2393
|
+
sequence?: true;
|
|
2394
|
+
/** Its Range's `thumbnail` (Cookbook 0229), the first it gives, as written. */
|
|
2395
|
+
thumbnail?: Record<string, unknown>;
|
|
2031
2396
|
children: ContentsNode[];
|
|
2032
2397
|
}
|
|
2398
|
+
/** One Canvas, or a region of one, in a Range's reading order. */
|
|
2399
|
+
export interface ContentsPart {
|
|
2400
|
+
canvasId: string;
|
|
2401
|
+
region?: {
|
|
2402
|
+
x: number;
|
|
2403
|
+
y: number;
|
|
2404
|
+
w: number;
|
|
2405
|
+
h: number;
|
|
2406
|
+
};
|
|
2407
|
+
}
|
|
2033
2408
|
/**
|
|
2034
2409
|
* The Manifest's table of contents, from `structures`. A single top Range that only wraps
|
|
2035
2410
|
* others is unwrapped, as a reader expects its chapters, not one entry holding them.
|
|
@@ -2040,7 +2415,12 @@ export declare function tableOfContents(manifest: Manifest | null): ContentsNode
|
|
|
2040
2415
|
* The entry the reader is in: the deepest covering `canvasId` whose span holds `time` (or
|
|
2041
2416
|
* that has no span). Null when none is.
|
|
2042
2417
|
*/
|
|
2043
|
-
export declare function currentContents(nodes: ContentsNode[], canvasId: string | null, time?: number
|
|
2418
|
+
export declare function currentContents(nodes: ContentsNode[], canvasId: string | null, time?: number,
|
|
2419
|
+
/**
|
|
2420
|
+
* The entry the reader chose: it, or the deepest entry in it, is current wherever it
|
|
2421
|
+
* covers the Canvas and time, over any other that does (one of two sequences).
|
|
2422
|
+
*/
|
|
2423
|
+
chosen?: string | null): string | null;
|
|
2044
2424
|
export declare function toPlainText(html: string): string;
|
|
2045
2425
|
/**
|
|
2046
2426
|
* How a text is read, strictly by its `format`'s media type: `text/html` as IIIF's HTML,
|
|
@@ -2056,14 +2436,16 @@ export declare function readAs(format: string | undefined, value?: string): "mar
|
|
|
2056
2436
|
* there is found, and the region read as shares of it (scaled from where it is painted),
|
|
2057
2437
|
* so the service's own `info.json` decides how it is asked for, never more than the
|
|
2058
2438
|
* region has, and from a server that cannot cut a region, nothing (no fallback: all of
|
|
2059
|
-
* the image is not the region).
|
|
2439
|
+
* the image is not the region). A `Choice`'s first image stands for it, or the one named
|
|
2440
|
+
* (`image`: a layer's annotation is cut from its own layer, Cookbook 0326). Null where no
|
|
2441
|
+
* image with a service is painted there.
|
|
2060
2442
|
*/
|
|
2061
2443
|
export declare function regionSource(canvas: Json | undefined, rect: {
|
|
2062
2444
|
x: number;
|
|
2063
2445
|
y: number;
|
|
2064
2446
|
w: number;
|
|
2065
2447
|
h: number;
|
|
2066
|
-
}): ThumbnailSource | null;
|
|
2448
|
+
}, image?: string): ThumbnailSource | null;
|
|
2067
2449
|
/**
|
|
2068
2450
|
* Clover's translations, without a translation library.
|
|
2069
2451
|
*
|
|
@@ -2159,10 +2541,20 @@ export type DefaultProps = Omit<RootProps, "children"> & {
|
|
|
2159
2541
|
* stacked boxes each opened by its heading, or `"tabs"`.
|
|
2160
2542
|
*/
|
|
2161
2543
|
panelLayout?: PanelLayout;
|
|
2162
|
-
/** The downloads
|
|
2544
|
+
/** The downloads, from a Download button beside the panel's About heading. Default `true`. */
|
|
2163
2545
|
download?: boolean;
|
|
2546
|
+
/**
|
|
2547
|
+
* The languages to read the resource in, beside the panel's About heading, where what
|
|
2548
|
+
* it says of itself comes in several (the Panel's `languages`). Default `true`.
|
|
2549
|
+
*/
|
|
2550
|
+
languages?: boolean;
|
|
2164
2551
|
/** The thumbnails under the Body: a layout, or `false` for none. Default `slider`. */
|
|
2165
2552
|
items?: Exclude<ItemsLayout, "pager"> | false;
|
|
2553
|
+
/**
|
|
2554
|
+
* The thumbnails even where the resource has one view, which has nothing to choose
|
|
2555
|
+
* between. Default `false`.
|
|
2556
|
+
*/
|
|
2557
|
+
singleItem?: boolean;
|
|
2166
2558
|
/**
|
|
2167
2559
|
* Where the panel's width is remembered once the reader drags its bar
|
|
2168
2560
|
* (`localStorage`). Default `"clover-template-default"`; `false` forgets it.
|
|
@@ -2175,8 +2567,14 @@ export type DefaultProps = Omit<RootProps, "children"> & {
|
|
|
2175
2567
|
* `--clover-body-height` tall, and the layout as tall as it needs.
|
|
2176
2568
|
*/
|
|
2177
2569
|
fill?: boolean;
|
|
2570
|
+
/**
|
|
2571
|
+
* When the Body's view controls (zoom, the turns, reset, full screen) wait behind
|
|
2572
|
+
* More: `"auto"` (the default), only where its row cannot hold them all; `"always"`.
|
|
2573
|
+
* The Body's `collapseControls`.
|
|
2574
|
+
*/
|
|
2575
|
+
collapseControls?: "auto" | "always";
|
|
2178
2576
|
};
|
|
2179
|
-
declare function Default({ className, header, headingLevel, panel, defaultPanelOpen, panelLayout, download, items, storageKey, fill, ...root }: DefaultProps): React.JSX.Element;
|
|
2577
|
+
declare function Default({ className, header, headingLevel, panel, defaultPanelOpen, panelLayout, download, languages, items, singleItem, storageKey, fill, collapseControls, ...root }: DefaultProps): React.JSX.Element;
|
|
2180
2578
|
/**
|
|
2181
2579
|
* A layout the Viewer draws: one from `@nulib/clover/templates`, or a component of your
|
|
2182
2580
|
* own that takes the `Clover.Root` props.
|