@nulib/clover 4.2.0 → 4.3.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/components/Canvas/CanvasView.mjs +37 -4
- package/dist/components/Canvas/ChaptersMenu.mjs +6 -1
- package/dist/components/Canvas/ControlMenu.mjs +9 -2
- package/dist/components/Canvas/Controls.mjs +17 -4
- package/dist/components/Canvas/FrameAnimation.mjs +3 -0
- package/dist/components/Canvas/ImageControls.mjs +8 -3
- package/dist/components/Canvas/Placeholder.mjs +5 -2
- package/dist/components/Canvas/RowFits.mjs +3 -1
- package/dist/components/Canvas/media/MediaBody.mjs +41 -10
- package/dist/components/Canvas/media/Player.mjs +3 -0
- package/dist/components/Canvas/media/SeekMarks.mjs +236 -0
- package/dist/components/Canvas/media/Transport.mjs +29 -3
- package/dist/components/Canvas/media/useMediaElement.mjs +54 -19
- package/dist/components/Items/masonry.mjs +2 -0
- package/dist/components/Map/MapView.mjs +42 -2
- package/dist/components/Map/maplibre-sheet.mjs +5 -0
- package/dist/components/Map/sheet.mjs +19 -0
- package/dist/components/Map/worker.mjs +28 -1
- package/dist/components/Scene/SceneView.mjs +3 -0
- package/dist/core/content-state.mjs +1 -11
- package/dist/core/load.mjs +9 -1
- package/dist/core/presentation.mjs +4 -5
- package/dist/core/sanitize.mjs +15 -3
- package/dist/core/svg-shape.mjs +2 -1
- package/dist/core/thumbnail.mjs +15 -4
- package/dist/core/trusted.mjs +26 -0
- package/dist/core/vtt.mjs +20 -9
- package/dist/index.d.mts +200 -1
- package/dist/index.mjs +11 -0
- package/dist/lib/renderer/CanvasRenderer.mjs +48 -7
- package/dist/lib/renderer/camera/CameraAnimator.mjs +39 -20
- package/dist/lib/renderer/input/GestureController.mjs +15 -5
- package/dist/map/index.d.mts +6 -1
- package/dist/styles/collection-select.css +1 -0
- package/dist/styles/core.css +1 -0
- package/dist/styles/default.css +1 -0
- package/dist/styles/items.css +1 -0
- package/dist/styles/map.css +1 -0
- package/dist/styles/media.css +1 -0
- package/dist/styles/panel.css +1 -0
- package/dist/styles/scene.css +1 -0
- package/dist/styles/split.css +1 -0
- package/dist/styles.css +1 -1
- package/dist/templates/default/Default.mjs +2 -0
- package/dist/templates/document/Document.mjs +12 -2
- package/dist/templates/document/Sheets.mjs +2 -0
- package/dist/templates/gallery/Gallery.mjs +3 -1
- package/dist/templates/index.d.mts +102 -6
- package/dist/templates/shared/Lightbox.mjs +50 -3
- package/dist/templates/shared/LightboxView.mjs +3 -1
- package/dist/templates.css +1 -1
- package/dist/ui/Button.mjs +3 -1
- package/dist/ui/ControlCluster.mjs +6 -3
- package/dist/ui/Markup.mjs +8 -7
- package/dist/ui/Tip.mjs +6 -1
- package/dist/ui/adoptSheet.mjs +19 -0
- package/dist/ui/sheets/map.mjs +5 -0
- package/dist/ui/sheets/media.mjs +5 -0
- package/dist/ui/sheets/scene.mjs +5 -0
- package/dist/web-components/{About-D1TBGGPL.mjs → About-j3O9cA3r.mjs} +1 -1
- package/dist/web-components/{AnnotationItems-DTacmRA9.mjs → AnnotationItems-U0WmWGOh.mjs} +1 -1
- package/dist/web-components/{AnnotationMenu-DYc9ekWS.mjs → AnnotationMenu-C1fAWWYy.mjs} +1 -1
- package/dist/web-components/{AnnotationState--5ghW0C2.mjs → AnnotationState-C9UhGpsr.mjs} +1 -1
- package/dist/web-components/{Annotations-Bvc_FmJ5.mjs → Annotations-BtJ4IVmy.mjs} +2 -2
- package/dist/web-components/{Annotations-BG8lPjk1.mjs → Annotations-YcFbQRJx.mjs} +1 -1
- package/dist/web-components/{Body-QQ1DmnbP.mjs → Body-Ccxmucbr.mjs} +1 -1
- package/dist/web-components/{BodyAlert-A4xRjOKr.mjs → BodyAlert-BBSStCpI.mjs} +1 -1
- package/dist/web-components/Button-Bphsp8rv.mjs +1 -0
- package/dist/web-components/{Camera-DqT_1MgD.mjs → Camera-DSk-YFpW.mjs} +1 -1
- package/dist/web-components/{Canvas2DBackend-TZtR3zHf.mjs → Canvas2DBackend-CYAJ-W6-.mjs} +1 -1
- package/dist/web-components/CanvasView-BAJ6OYvn.mjs +2 -0
- package/dist/web-components/{CaptionDetails-DMRWmtaY.mjs → CaptionDetails-Dg9Y11o_.mjs} +1 -1
- package/dist/web-components/ChaptersMenu-i4bFwR8c.mjs +1 -0
- package/dist/web-components/{Chevron-DFGbSGPI.mjs → Chevron-BnlK9F4K.mjs} +1 -1
- package/dist/web-components/{ChoiceMenu-C80kdxvq.mjs → ChoiceMenu-YXA7Ku8M.mjs} +1 -1
- package/dist/web-components/{Collection-B4CxBsFL.mjs → Collection-DgSFQbN-.mjs} +1 -1
- package/dist/web-components/{CollectionSelect-DO8YO2p7.mjs → CollectionSelect-PUcTh3Uv.mjs} +1 -1
- package/dist/web-components/{Connected-sYBn_9MK.mjs → Connected-B_caNIrW.mjs} +1 -1
- package/dist/web-components/{Connected-CcbVqzmj.mjs → Connected-XhRc6yaA.mjs} +1 -1
- package/dist/web-components/{Connected-DthCPaHl.mjs → Connected-YgL5BWf5.mjs} +1 -1
- package/dist/web-components/{Contents-AVPYYXht.mjs → Contents-CoC4TK6G.mjs} +1 -1
- package/dist/web-components/ControlMenu-CYfLg3Ok.mjs +1 -0
- package/dist/web-components/ControlsFade-BcGL7yUH.mjs +1 -0
- package/dist/web-components/CountMenu-C7XawAoa.mjs +1 -0
- package/dist/web-components/Cue-DZJ5TBKU.mjs +1 -0
- package/dist/web-components/Document-DZDYR2Tk.mjs +1 -0
- package/dist/web-components/{DomLayers-DlRapZ1u.mjs → DomLayers-Bbrulm6v.mjs} +1 -1
- package/dist/web-components/{Download-Ci_JUTVd.mjs → Download-CfRPt74Y.mjs} +1 -1
- package/dist/web-components/{EntryBodies-C0ICfS2R.mjs → EntryBodies-Bz8hyAUW.mjs} +1 -1
- package/dist/web-components/{EntryThumbnail-DxHhfRo_.mjs → EntryThumbnail-R9h0AXcu.mjs} +1 -1
- package/dist/web-components/{FieldPill-CVfeeafm.mjs → FieldPill-DFIdy-hn.mjs} +1 -1
- package/dist/web-components/{FrameAnimation-AZpVvu0R.mjs → FrameAnimation-DFDuFwwt.mjs} +1 -1
- package/dist/web-components/Gallery-BrYWLufL.mjs +1 -0
- package/dist/web-components/{HideToggle-0nlIo-f8.mjs → HideToggle-geO9QfFR.mjs} +1 -1
- package/dist/web-components/ImageControls-B9PhCHqi.mjs +1 -0
- package/dist/web-components/{Items-Drd82_Jj.mjs → Items-C7wjylgH.mjs} +1 -1
- package/dist/web-components/{Label-BIjqJ-_T.mjs → Label-S7o8PlWU.mjs} +1 -1
- package/dist/web-components/{LanguageChoice-DkSc-n6g.mjs → LanguageChoice-URJJAdah.mjs} +1 -1
- package/dist/web-components/LightboxView-65ROPr0_.mjs +1 -0
- package/dist/web-components/{ListEnd-pq-BgaDI.mjs → ListEnd-B0wGr87o.mjs} +1 -1
- package/dist/web-components/{Loaded-CSO5NFhm.mjs → Loaded-Do53YvYw.mjs} +1 -1
- package/dist/web-components/{LoadedCanvas-DK6xMmM1.mjs → LoadedCanvas-BrtGPpSm.mjs} +1 -1
- package/dist/web-components/LoadedMap-C06TIgvf.mjs +1 -0
- package/dist/web-components/{Loading-CoJLSRkv.mjs → Loading-Du3wn1EM.mjs} +1 -1
- package/dist/web-components/{Map-BEVtD52O.mjs → Map-B6LVO0gx.mjs} +1 -1
- package/dist/web-components/MapView-CzV3y5iI.mjs +3 -0
- package/dist/web-components/Markup-DACv7sRg.mjs +2 -0
- package/dist/web-components/MediaBody-CcuO5IZT.mjs +1 -0
- package/dist/web-components/MediaBody-DGd2uFfK.mjs +1 -0
- package/dist/web-components/{NavDate-CYNK0Qmp.mjs → NavDate-DRKmjc54.mjs} +1 -1
- package/dist/web-components/{Navigator-DrYPepzN.mjs → Navigator-CA8zB6CU.mjs} +1 -1
- package/dist/web-components/{Pager-CN4lHURv.mjs → Pager-DWp6u3iv.mjs} +1 -1
- package/dist/web-components/{PagerLayout-DeqnSQcF.mjs → PagerLayout-DHRpcI8x.mjs} +1 -1
- package/dist/web-components/{Panel-CFYUlXup.mjs → Panel-CzUDNn8M.mjs} +1 -1
- package/dist/web-components/PanelPart-DKb9dXm6.mjs +1 -0
- package/dist/web-components/{PanelToggle-9ud55NNI.mjs → PanelToggle-D5sx5FP9.mjs} +1 -1
- package/dist/web-components/{PartOfManifest-KUHUq-6q.mjs → PartOfManifest-Ct-I8Ofm.mjs} +1 -1
- package/dist/web-components/{Pending-mcmdyZPA.mjs → Pending-f1heQNo7.mjs} +1 -1
- package/dist/web-components/{PlaceBox-DX4ZLDat.mjs → PlaceBox-_an9ya_W.mjs} +1 -1
- package/dist/web-components/Placeholder-D4-VCxeD.mjs +1 -0
- package/dist/web-components/{Position-DO5qg5Sp.mjs → Position-DA4rzRiy.mjs} +1 -1
- package/dist/web-components/{Primitives-c9sIz0oQ.mjs → Primitives-DU_VhdO2.mjs} +1 -1
- package/dist/web-components/{Provider-a3xY016W.mjs → Provider-Dl_t_qEC.mjs} +1 -1
- package/dist/web-components/{ReadMore-D_WmmKEP.mjs → ReadMore-BpA8Dex8.mjs} +1 -1
- package/dist/web-components/Root-DixSZV9Y.mjs +1 -0
- package/dist/web-components/Scene-CSaXgBNr.mjs +1 -0
- package/dist/web-components/SceneView-BJNlboix.mjs +1 -0
- package/dist/web-components/{Search-BgxEW1UT.mjs → Search-CvpKzlYP.mjs} +1 -1
- package/dist/web-components/{Sections-DZVrhoAC.mjs → Sections-BhfcUyaf.mjs} +1 -1
- package/dist/web-components/SeekMarks-BfOrFnvQ.mjs +1 -0
- package/dist/web-components/{StandaloneItems-6cSw7nbF.mjs → StandaloneItems-CoiceHd8.mjs} +1 -1
- package/dist/web-components/{Status-DHTzuTkh.mjs → Status-B4327UOL.mjs} +1 -1
- package/dist/web-components/{Steps-Dkpy9KiJ.mjs → Steps-ACdXJZrV.mjs} +1 -1
- package/dist/web-components/TargetItems-D1bLKA_B.mjs +1 -0
- package/dist/web-components/Timeline-DY8LpnOG.mjs +1 -0
- package/dist/web-components/Tip-BatwzZZo.mjs +1 -0
- package/dist/web-components/{Transcript-WvFFAJQM.mjs → Transcript-B1nh9UJK.mjs} +1 -1
- package/dist/web-components/Transport-BsjGGbFJ.mjs +1 -0
- package/dist/web-components/Transport-DKb3XTMA.mjs +1 -0
- package/dist/web-components/{annotation-collection-BkC3nBPA.mjs → annotation-collection-CtxYL-V3.mjs} +1 -1
- package/dist/web-components/{annotation-name-Du2KAWoD.mjs → annotation-name-KQ4wAi8-.mjs} +1 -1
- package/dist/web-components/{annotations-content-CEzAS-P2.mjs → annotations-content-XVgQ5me7.mjs} +1 -1
- package/dist/web-components/{body-DPlfbLt3.mjs → body-CbYkzpmQ.mjs} +1 -1
- package/dist/web-components/{canvas-BUwBftJW.mjs → canvas-Du31_Dru.mjs} +1 -1
- package/dist/web-components/{cloverEngine-UNw5K4Xg.mjs → cloverEngine-CuRCXZNZ.mjs} +1 -1
- package/dist/web-components/{content-state-reader-GgQF2MvJ.mjs → content-state-reader-DLlBY4Ox.mjs} +1 -1
- package/dist/web-components/controlGlyphs-ClH59vLg.mjs +1 -0
- package/dist/web-components/{controls-CC9G5LxK.mjs → controls-smixEi0i.mjs} +1 -1
- package/dist/web-components/custom-elements.json +10 -2
- package/dist/web-components/{downloads-CmAYeEIz.mjs → downloads-BqkNwsM0.mjs} +1 -1
- package/dist/web-components/{dragToClose-DK-eM097.mjs → dragToClose-2joCF413.mjs} +1 -1
- package/dist/web-components/{engine-Dok0z8WP.mjs → engine-DNTgJBST.mjs} +1 -1
- package/dist/web-components/{engines-BD2IfwQF.mjs → engines-BpFZX2dO.mjs} +1 -1
- package/dist/web-components/{fetchManifest-tQXcfFiz.mjs → fetchManifest-B-poGgag.mjs} +1 -1
- package/dist/web-components/{fromManifest-BwQdeAuL.mjs → fromManifest-Dw3BwjHM.mjs} +1 -1
- package/dist/web-components/{glyphs-dp_HK3Ja.mjs → glyphs-VoJVEqLE.mjs} +1 -1
- package/dist/web-components/hooks-Syt1XLVX.mjs +1 -0
- package/dist/web-components/{image-layers-xcBsiad9.mjs → image-layers-ryUJ_0bq.mjs} +1 -1
- package/dist/web-components/{imageService-4sFnmAFX.mjs → imageService-DBU_Xks1.mjs} +1 -1
- package/dist/web-components/index-DGXCFoHu.mjs +1 -0
- package/dist/web-components/index.d.mts +4 -2
- package/dist/web-components/index.mjs +1 -1
- package/dist/web-components/{items-BUmOy2QY.mjs → items-BQPvL5D6.mjs} +1 -1
- package/dist/web-components/items-TIbaHoB8.mjs +1 -0
- package/dist/web-components/label-Bd-QYEXn.mjs +1 -0
- package/dist/web-components/{layout-B29v2RKK.mjs → layout-MzMKFa5I.mjs} +1 -1
- package/dist/web-components/{link-Ct5PpHEY.mjs → link-BUQQE9P2.mjs} +1 -1
- package/dist/web-components/logo-Cn820OoX.mjs +1 -0
- package/dist/web-components/maplibre-sheet-CfiZ6JFk.mjs +1 -0
- package/dist/web-components/masonry-BZCdA3bV.mjs +1 -0
- package/dist/web-components/{models-BXcT4ijX.mjs → models-wl-5vW2i.mjs} +1 -1
- package/dist/web-components/{nodes-BleXuYE6.mjs → nodes-CmOpA3s7.mjs} +1 -1
- package/dist/web-components/{overlayImage-BJtfot4Y.mjs → overlayImage-tb9-Md51.mjs} +1 -1
- package/dist/web-components/{panel-BxxV_JkD.mjs → panel-BPVyAugu.mjs} +1 -1
- package/dist/web-components/part-DeZI8Hmp.mjs +1 -0
- package/dist/web-components/{playerSurface-BXNLaFk0.mjs → playerSurface-BxxMV-va.mjs} +1 -1
- package/dist/web-components/pointer-BqgxBJ82.mjs +1 -0
- package/dist/web-components/{provider-CPp0Sgr_.mjs → provider-B9oAQG-u.mjs} +1 -1
- package/dist/web-components/{range-regions-DAaOu0IS.mjs → range-regions-BFB1374L.mjs} +1 -1
- package/dist/web-components/{read-more-lcqGslUd.mjs → read-more-oWPk0OLi.mjs} +1 -1
- package/dist/web-components/{readingLanguages-FyVsSWJ8.mjs → readingLanguages-BigCi6rZ.mjs} +1 -1
- package/dist/web-components/rendererSurface-B_OOhxzA.mjs +22 -0
- package/dist/web-components/{renderers-BFS7hFVU.mjs → renderers-CBupZj8Z.mjs} +1 -1
- package/dist/web-components/{resource-Bufu7lAr.mjs → resource-B6uUsU6D.mjs} +1 -1
- package/dist/web-components/{sanitize-qIOeyIww.mjs → sanitize-BedC_UE5.mjs} +3 -3
- package/dist/web-components/{save-file-CoknKOPz.mjs → save-file-BaIrLp1V.mjs} +1 -1
- package/dist/web-components/{search-5ocrsYmT.mjs → search-DaGpvTki.mjs} +1 -1
- package/dist/web-components/shared-D2RadIoz.mjs +1 -0
- package/dist/web-components/{show-link-DBaJj4s_.mjs → show-link-Cxylys81.mjs} +1 -1
- package/dist/web-components/{sizedImage-jnOGcIIZ.mjs → sizedImage-DchqGFdt.mjs} +1 -1
- package/dist/web-components/{split-P6J0qqf5.mjs → split-oaEIep3T.mjs} +1 -1
- package/dist/web-components/{status-honoOMNx.mjs → status-CfCgO5OB.mjs} +1 -1
- package/dist/web-components/styles-DZIDbHxL.mjs +1 -0
- package/dist/web-components/svg-shape-D1K-WNrY.mjs +1 -0
- package/dist/web-components/three.mjs +1 -1
- package/dist/web-components/thumbnail-D83GaQ8C.mjs +1 -0
- package/dist/web-components/{tip-BhNI83aT.mjs → tip-CMEBtCil.mjs} +1 -1
- package/dist/web-components/{toggle-CJKdi5KH.mjs → toggle-3NncfBSZ.mjs} +1 -1
- package/dist/web-components/trusted-Bvpx307M.mjs +1 -0
- package/dist/web-components/{useContainerName-_48Cdi0m.mjs → useContainerName-fp0-n_9x.mjs} +1 -1
- package/dist/web-components/{useControlsVisibility-CieBxGnK.mjs → useControlsVisibility-BYZlgiAt.mjs} +1 -1
- package/dist/web-components/useLazyPanelPane-DXYGGS7f.mjs +1 -0
- package/dist/web-components/{useNearViewport-B34ebmIW.mjs → useNearViewport-DMqMdvue.mjs} +1 -1
- package/dist/web-components/{useScrollTrack-DgRGFeP5.mjs → useScrollTrack-BHuPAWxB.mjs} +1 -1
- package/dist/web-components/viewer/{AnnotationItems-BNA_92Dv.mjs → AnnotationItems-B5Vs0dYi.mjs} +1 -1
- package/dist/web-components/viewer/{AnnotationMenu-BIQYVR4N.mjs → AnnotationMenu-BO18q_Ze.mjs} +1 -1
- package/dist/web-components/viewer/{AnnotationState-BbwQqA1U.mjs → AnnotationState-ZPmnCpbZ.mjs} +1 -1
- package/dist/web-components/viewer/{Annotations-P4XzAlNc.mjs → Annotations-C46kSUA6.mjs} +1 -1
- package/dist/web-components/viewer/{Annotations-CZzOZAFP.mjs → Annotations-DEKa_9xz.mjs} +2 -2
- package/dist/web-components/viewer/{Canvas2DBackend-DFfCzyjL.mjs → Canvas2DBackend-DHSI3dKr.mjs} +1 -1
- package/dist/web-components/viewer/{CaptionDetails-DPtE-RQQ.mjs → CaptionDetails-BVCqV9NT.mjs} +1 -1
- package/dist/web-components/viewer/ChaptersMenu-CIwIM2Pb.mjs +1 -0
- package/dist/web-components/viewer/{ChoiceMenu-GkqyTQRQ.mjs → ChoiceMenu-Ww7lcPnq.mjs} +1 -1
- package/dist/web-components/viewer/{Collection-DjY_6qa6.mjs → Collection-DCYM9eE6.mjs} +1 -1
- package/dist/web-components/viewer/{Connected-D5T-mtiy.mjs → Connected-Bbk8M5rE.mjs} +1 -1
- package/dist/web-components/viewer/{Connected-DIOuI3Mv.mjs → Connected-DAOMKtJR.mjs} +1 -1
- package/dist/web-components/viewer/{Contents-DV-VxXuf.mjs → Contents-BnRBx3rc.mjs} +1 -1
- package/dist/web-components/viewer/ControlMenu-Co6yBttc.mjs +1 -0
- package/dist/web-components/viewer/ControlsFade-pOQ5VQ5i.mjs +1 -0
- package/dist/web-components/viewer/CountMenu-lu21fO_7.mjs +1 -0
- package/dist/web-components/viewer/Cue-oaiVO9ZO.mjs +1 -0
- package/dist/web-components/viewer/Document-ByBRhL68.mjs +1 -0
- package/dist/web-components/viewer/{DomLayers-BCwCxPDU.mjs → DomLayers-BjxGaZkt.mjs} +1 -1
- package/dist/web-components/viewer/{Download-CL4IClAD.mjs → Download-DhMD4AJt.mjs} +1 -1
- package/dist/web-components/viewer/{EntryBodies-e40y47bl.mjs → EntryBodies-DL5UolEz.mjs} +1 -1
- package/dist/web-components/viewer/{EntryThumbnail-B_dP3w4o.mjs → EntryThumbnail-CJisDcni.mjs} +1 -1
- package/dist/web-components/viewer/{FieldPill-Hse1cDBE.mjs → FieldPill-DAk6zxxD.mjs} +1 -1
- package/dist/web-components/viewer/{FrameAnimation-CE218DCr.mjs → FrameAnimation-DGMuFNdW.mjs} +1 -1
- package/dist/web-components/viewer/Gallery-CbHhyWlF.mjs +1 -0
- package/dist/web-components/viewer/{HideToggle-CYoqe_ez.mjs → HideToggle-C6B9B2Bo.mjs} +1 -1
- package/dist/web-components/viewer/ImageControls-BDx7C1q5.mjs +1 -0
- package/dist/web-components/viewer/{LanguageChoice-BmO-322r.mjs → LanguageChoice-BM9xZr_D.mjs} +1 -1
- package/dist/web-components/viewer/LightboxView-RrioB0CN.mjs +1 -0
- package/dist/web-components/viewer/{ListEnd-DX1jsvJk.mjs → ListEnd-8vdKw6Py.mjs} +1 -1
- package/dist/web-components/viewer/MapView-G3yj-Bjd.mjs +3 -0
- package/dist/web-components/viewer/MediaBody-BokgnTO-.mjs +1 -0
- package/dist/web-components/viewer/MediaBody-DPOcyiYH.mjs +1 -0
- package/dist/web-components/viewer/{NavDate-BZgeaMG9.mjs → NavDate-B6rCV-Cd.mjs} +1 -1
- package/dist/web-components/viewer/{Navigator-Co76p-1n.mjs → Navigator-CjgUcgKY.mjs} +1 -1
- package/dist/web-components/viewer/{PagerLayout-tUkN1-FV.mjs → PagerLayout-LZmC6VpV.mjs} +1 -1
- package/dist/web-components/viewer/PanelPart-Cw1G5W4b.mjs +1 -0
- package/dist/web-components/viewer/{PartOfManifest-DXnbEPzS.mjs → PartOfManifest-B0TYADTv.mjs} +1 -1
- package/dist/web-components/viewer/{PlaceBox-xrJ4CGdN.mjs → PlaceBox-Cjdjg-_9.mjs} +1 -1
- package/dist/web-components/viewer/Placeholder-MYLjXbiF.mjs +1 -0
- package/dist/web-components/viewer/{Search-DTg1cHZ3.mjs → Search-CyRrBHsr.mjs} +1 -1
- package/dist/web-components/viewer/SeekMarks-1WSjARP5.mjs +1 -0
- package/dist/web-components/viewer/{StandaloneItems-BpBEQG8i.mjs → StandaloneItems-CQrzTSPC.mjs} +1 -1
- package/dist/web-components/viewer/{Steps-SpwMQdCL.mjs → Steps-Bd42-eq7.mjs} +1 -1
- package/dist/web-components/viewer/TargetItems-BpmZEVMS.mjs +1 -0
- package/dist/web-components/viewer/{Transcript-rTAhuXCF.mjs → Transcript-CE4BsnWd.mjs} +1 -1
- package/dist/web-components/viewer/Transport-1ROUkfsf.mjs +1 -0
- package/dist/web-components/viewer/Transport-g0_Cjy0f.mjs +1 -0
- package/dist/web-components/viewer/{annotation-collection-B7pZiLVk.mjs → annotation-collection-vM0aeJgP.mjs} +1 -1
- package/dist/web-components/viewer/annotation-name-kjUrGbhg.mjs +1 -0
- package/dist/web-components/viewer/{annotations-content-9AtLlPNn.mjs → annotations-content-CysDLy4t.mjs} +1 -1
- package/dist/web-components/viewer/{cloverEngine-jRrYLrWa.mjs → cloverEngine-S8GEd-YZ.mjs} +1 -1
- package/dist/web-components/viewer/{content-state-reader-CPvkju6Q.mjs → content-state-reader-BTZKS9Hq.mjs} +1 -1
- package/dist/web-components/viewer/{dragToClose-Co9kGk9q.mjs → dragToClose-Bt4QtVSO.mjs} +1 -1
- package/dist/web-components/viewer/{fetchManifest-D7N9WhhF.mjs → fetchManifest-D4aIqcDV.mjs} +1 -1
- package/dist/web-components/viewer/{host-DMD9LE4H.mjs → host-ClJe-BX1.mjs} +1 -1
- package/dist/web-components/viewer/{image-layers-x_shzPvu.mjs → image-layers-DGa5HJt8.mjs} +1 -1
- package/dist/web-components/viewer/index.mjs +1 -1
- package/dist/web-components/viewer/{link-DikPGzNO.mjs → link-CU71f0wU.mjs} +1 -1
- package/dist/web-components/viewer/{overlayImage-33kKKB0T.mjs → overlayImage-D9GHzMmm.mjs} +1 -1
- package/dist/web-components/viewer/{range-regions-TH6WWGTT.mjs → range-regions-CiceyEuu.mjs} +1 -1
- package/dist/web-components/viewer/{renderers-BxePmixF.mjs → renderers-2BgvLkI0.mjs} +1 -1
- package/dist/web-components/viewer/{save-file-QXKiPlST.mjs → save-file-BW7D7oYG.mjs} +1 -1
- package/dist/web-components/viewer/{search-B_NePyas.mjs → search-DBMO82DV.mjs} +1 -1
- package/dist/web-components/viewer/styles-DogZyfVz.mjs +1 -0
- package/dist/web-components/viewer/{useControlsVisibility-Cu-jTDzs.mjs → useControlsVisibility-DSSIzst5.mjs} +1 -1
- package/dist/web-components/viewer/useLazyPanelPane-_6IY7cV5.mjs +1 -0
- package/dist/web-components/viewer/viewer-ClQD1LNQ.mjs +29 -0
- package/dist/web-components/viewer/vtt-Dk5bwDVQ.mjs +5 -0
- package/dist/web-components/viewer-DLfZQmZs.mjs +1 -0
- package/dist/web-components/vtt-9Ui3h60h.mjs +5 -0
- package/dist/web-components/worker-C9aVbya_.mjs +1 -0
- package/package.json +2 -1
- package/dist/web-components/Button-Cx6VE_UW.mjs +0 -1
- package/dist/web-components/CanvasView-DxZASM9E.mjs +0 -2
- package/dist/web-components/ChaptersMenu-BAZVVDrK.mjs +0 -1
- package/dist/web-components/ControlMenu-BjJsWnuZ.mjs +0 -1
- package/dist/web-components/ControlsFade-C-6WhSxB.mjs +0 -1
- package/dist/web-components/CountMenu-Dx8D_RJZ.mjs +0 -1
- package/dist/web-components/Cue-xuo5dgKE.mjs +0 -1
- package/dist/web-components/Document-BWdafeEi.mjs +0 -1
- package/dist/web-components/Gallery-C2PTJmvN.mjs +0 -1
- package/dist/web-components/ImageControls-tKVAMpaj.mjs +0 -1
- package/dist/web-components/LightboxView-Cuqx2H1m.mjs +0 -1
- package/dist/web-components/LoadedMap-DmPH-LKY.mjs +0 -1
- package/dist/web-components/MapView-DHJcn9gW.mjs +0 -3
- package/dist/web-components/Markup-Hm6bWOjm.mjs +0 -2
- package/dist/web-components/MediaBody-BpgNtpKZ.mjs +0 -1
- package/dist/web-components/MediaBody-Co23JjUJ.mjs +0 -1
- package/dist/web-components/PanelPart-CpUIRbxr.mjs +0 -1
- package/dist/web-components/Placeholder-0hE8q-SY.mjs +0 -1
- package/dist/web-components/Root-CU1o0wje.mjs +0 -1
- package/dist/web-components/Scene-CboEeptc.mjs +0 -1
- package/dist/web-components/SceneView-hcc78jQT.mjs +0 -1
- package/dist/web-components/TargetItems-CyOI9_Z4.mjs +0 -1
- package/dist/web-components/Timeline-B9tD3Rar.mjs +0 -1
- package/dist/web-components/Tip-nJSTYquc.mjs +0 -1
- package/dist/web-components/Transport-FxLp_bdW.mjs +0 -1
- package/dist/web-components/Transport-VUxSEIQO.mjs +0 -1
- package/dist/web-components/hooks-C4dJ5K_D.mjs +0 -1
- package/dist/web-components/index-DspT4wUm.mjs +0 -1
- package/dist/web-components/items-CWMI53aN.mjs +0 -1
- package/dist/web-components/label-BGjL7I4b.mjs +0 -1
- package/dist/web-components/logo-BFstM-0a.mjs +0 -1
- package/dist/web-components/masonry-0QfzOgbB.mjs +0 -1
- package/dist/web-components/part-D4gjnYmT.mjs +0 -1
- package/dist/web-components/pointer-CJELU3gI.mjs +0 -1
- package/dist/web-components/rendererSurface-nh6-EfuZ.mjs +0 -22
- package/dist/web-components/shared-DFAX0n3B.mjs +0 -1
- package/dist/web-components/styles-BwkYiCLC.mjs +0 -1
- package/dist/web-components/svg-shape-DLY3g7oq.mjs +0 -1
- package/dist/web-components/thumbnail-EbURh-UM.mjs +0 -1
- package/dist/web-components/useLazyPanelPane-Da3kJiOt.mjs +0 -1
- package/dist/web-components/viewer/ChaptersMenu-D6Jmujag.mjs +0 -1
- package/dist/web-components/viewer/ControlMenu-BsEpff6N.mjs +0 -1
- package/dist/web-components/viewer/ControlsFade-BowtN96W.mjs +0 -1
- package/dist/web-components/viewer/CountMenu-DCmA6HdK.mjs +0 -1
- package/dist/web-components/viewer/Cue-BjbVzrpl.mjs +0 -1
- package/dist/web-components/viewer/Document-4ZQd3W3o.mjs +0 -1
- package/dist/web-components/viewer/Gallery-F2sVj4ph.mjs +0 -1
- package/dist/web-components/viewer/ImageControls-C2G4x2Es.mjs +0 -1
- package/dist/web-components/viewer/LightboxView-DKR8dXcg.mjs +0 -1
- package/dist/web-components/viewer/MapView-Df0wZjCh.mjs +0 -3
- package/dist/web-components/viewer/MediaBody-CataNonO.mjs +0 -1
- package/dist/web-components/viewer/MediaBody-SkIgrEMj.mjs +0 -1
- package/dist/web-components/viewer/PanelPart-Cl4Sst60.mjs +0 -1
- package/dist/web-components/viewer/Placeholder-B1AcizHL.mjs +0 -1
- package/dist/web-components/viewer/TargetItems-B6Icep5k.mjs +0 -1
- package/dist/web-components/viewer/Transport-vKIDALE-.mjs +0 -1
- package/dist/web-components/viewer/Transport-z_kdVisw.mjs +0 -1
- package/dist/web-components/viewer/annotation-name-BKj1O9lA.mjs +0 -1
- package/dist/web-components/viewer/styles-Bedyz7_l.mjs +0 -1
- package/dist/web-components/viewer/useLazyPanelPane-BhLtRixT.mjs +0 -1
- package/dist/web-components/viewer/viewer-nfPJPwwt.mjs +0 -29
- package/dist/web-components/viewer/vtt-CUn4h5JB.mjs +0 -5
- package/dist/web-components/viewer-DN2Mo3vc.mjs +0 -1
- package/dist/web-components/vtt-C5M5WPSG.mjs +0 -5
- package/dist/web-components/worker-CjXN0dku.mjs +0 -1
|
@@ -34,6 +34,7 @@ function Document({
|
|
|
34
34
|
headingLevel = 2,
|
|
35
35
|
storageKey = "clover-template-document",
|
|
36
36
|
collapseControls,
|
|
37
|
+
canvasOptions,
|
|
37
38
|
...root
|
|
38
39
|
}) {
|
|
39
40
|
const title = titled(
|
|
@@ -60,7 +61,8 @@ function Document({
|
|
|
60
61
|
languages,
|
|
61
62
|
headingLevel,
|
|
62
63
|
storageKey,
|
|
63
|
-
collapseControls
|
|
64
|
+
collapseControls,
|
|
65
|
+
canvasOptions
|
|
64
66
|
}
|
|
65
67
|
)
|
|
66
68
|
}
|
|
@@ -81,6 +83,7 @@ function DocumentLayout({
|
|
|
81
83
|
panelSections,
|
|
82
84
|
panelLabels,
|
|
83
85
|
collapseControls,
|
|
86
|
+
canvasOptions,
|
|
84
87
|
title
|
|
85
88
|
}) {
|
|
86
89
|
const t = useT();
|
|
@@ -241,7 +244,14 @@ function DocumentLayout({
|
|
|
241
244
|
min: showSidebar && !sidebar.over || docked ? PAGE_MIN : void 0,
|
|
242
245
|
children: [
|
|
243
246
|
pages && !sidebar.open && /* @__PURE__ */ jsx("div", { className: "clover-template-document-sidebar-closed", children: toggle }),
|
|
244
|
-
/* @__PURE__ */ jsx(
|
|
247
|
+
/* @__PURE__ */ jsx(
|
|
248
|
+
Sheets,
|
|
249
|
+
{
|
|
250
|
+
collapseControls,
|
|
251
|
+
canvasOptions,
|
|
252
|
+
children: !docked && panelToggle
|
|
253
|
+
}
|
|
254
|
+
)
|
|
245
255
|
]
|
|
246
256
|
}
|
|
247
257
|
),
|
|
@@ -17,6 +17,7 @@ const ratioOf = (canvas) => {
|
|
|
17
17
|
};
|
|
18
18
|
function Sheets({
|
|
19
19
|
collapseControls,
|
|
20
|
+
canvasOptions,
|
|
20
21
|
children
|
|
21
22
|
}) {
|
|
22
23
|
const { clover } = useClover("Document");
|
|
@@ -307,6 +308,7 @@ function Sheets({
|
|
|
307
308
|
{
|
|
308
309
|
className: "clover-template-document-body",
|
|
309
310
|
collapseControls,
|
|
311
|
+
options: canvasOptions,
|
|
310
312
|
onReady: setHandle,
|
|
311
313
|
children
|
|
312
314
|
}
|
|
@@ -32,6 +32,7 @@ function Gallery({
|
|
|
32
32
|
storageKey = "clover-template-gallery",
|
|
33
33
|
headingLevel = 2,
|
|
34
34
|
collapseControls,
|
|
35
|
+
canvasOptions,
|
|
35
36
|
style,
|
|
36
37
|
...root
|
|
37
38
|
}) {
|
|
@@ -83,7 +84,8 @@ function Gallery({
|
|
|
83
84
|
download,
|
|
84
85
|
languages,
|
|
85
86
|
storageKey,
|
|
86
|
-
collapseControls
|
|
87
|
+
collapseControls,
|
|
88
|
+
canvasOptions
|
|
87
89
|
}
|
|
88
90
|
)
|
|
89
91
|
]
|
|
@@ -156,6 +156,39 @@ export interface RootProps extends Omit<React.HTMLAttributes<HTMLElement>, "chil
|
|
|
156
156
|
as?: React.ElementType;
|
|
157
157
|
children?: React.ReactNode;
|
|
158
158
|
}
|
|
159
|
+
export type BackendKind = "webgl2" | "canvas2d" | "none";
|
|
160
|
+
export interface GestureOptions {
|
|
161
|
+
/**
|
|
162
|
+
* A mouse click zooms in; with Shift, out. With this or `dblClickToZoom`, a double tap
|
|
163
|
+
* (a finger, or a pen that does not hover) zooms in.
|
|
164
|
+
*/
|
|
165
|
+
clickToZoom: boolean;
|
|
166
|
+
/** A double click zooms in. Only consulted when `clickToZoom` is off. */
|
|
167
|
+
dblClickToZoom: boolean;
|
|
168
|
+
pinchToZoom: boolean;
|
|
169
|
+
/**
|
|
170
|
+
* Plain wheel zooms. Off by default, matching Clover's OpenSeadragon setting, so an
|
|
171
|
+
* embedded viewer never swallows page scroll. A trackpad pinch (a wheel event with
|
|
172
|
+
* `ctrlKey`) always zooms the image, since it is never a page scroll.
|
|
173
|
+
*/
|
|
174
|
+
scrollToZoom: boolean;
|
|
175
|
+
/**
|
|
176
|
+
* The reader may move the camera at all: drag, pinch, wheel, double-click and keys.
|
|
177
|
+
* Off, the view stays where the host puts it and only taps are reported (a lone video
|
|
178
|
+
* or sound, always fitted to the Body).
|
|
179
|
+
*/
|
|
180
|
+
navigable: boolean;
|
|
181
|
+
/**
|
|
182
|
+
* A mouse or pen drag tracks the pointer 1:1 and glides on after a fast release. Off,
|
|
183
|
+
* the drag is eased instead and stops where the pointer does. A finger always tracks 1:1 and flicks.
|
|
184
|
+
*/
|
|
185
|
+
flickEnabled: boolean;
|
|
186
|
+
/** Release speed, px/s, below which a drag does not flick. */
|
|
187
|
+
flickMinSpeed: number;
|
|
188
|
+
/** Seconds of release velocity the flick travels. */
|
|
189
|
+
flickMomentum: number;
|
|
190
|
+
}
|
|
191
|
+
export type BackendPreference = "auto" | BackendKind;
|
|
159
192
|
/** A region of the image as shares of it: 0 to 1 across and down. */
|
|
160
193
|
export interface RegionShare {
|
|
161
194
|
x: number;
|
|
@@ -174,6 +207,9 @@ export interface RegionShare {
|
|
|
174
207
|
* nor than its limits, at level 0 only a size it lists (Mat, 2026-10-24: "be
|
|
175
208
|
* responsible when making IIIF image server requests"). What a manifest says of a
|
|
176
209
|
* service is not trusted to say what its server does.
|
|
210
|
+
* - A `thumbnail` whose own `width` and `height` already fit the size (`resolveThumbnail`)
|
|
211
|
+
* is used as the manifest gives it, with no `info.json` read: the publisher's own URL,
|
|
212
|
+
* not one built from what a service says.
|
|
177
213
|
* - Without a service, the image itself is used.
|
|
178
214
|
*/
|
|
179
215
|
export interface ThumbnailSource {
|
|
@@ -188,6 +224,58 @@ export interface ThumbnailSource {
|
|
|
188
224
|
region?: RegionShare | string;
|
|
189
225
|
/** Used if the service cannot answer. */
|
|
190
226
|
fallback?: string;
|
|
227
|
+
/** The pixels `fallback` is, as its own `width` and `height` say (a `thumbnail`'s). */
|
|
228
|
+
fallbackSize?: {
|
|
229
|
+
width: number;
|
|
230
|
+
height: number;
|
|
231
|
+
};
|
|
232
|
+
}
|
|
233
|
+
export interface CloverCanvasOptions {
|
|
234
|
+
/** Which painter to use. `auto` (default) tries WebGL2, then Canvas2D. */
|
|
235
|
+
backend?: BackendPreference;
|
|
236
|
+
/** Pointer, wheel and keyboard behavior. Wheel zoom is off by default. */
|
|
237
|
+
gestures?: Partial<GestureOptions>;
|
|
238
|
+
/** Largest zoom, in CSS pixels per image pixel. Default 1.1. */
|
|
239
|
+
maxZoomPixelRatio?: number;
|
|
240
|
+
/** Smallest zoom, as a fraction of the home zoom. Default 0.9. */
|
|
241
|
+
minZoomImageRatio?: number;
|
|
242
|
+
/** Seconds for an animation to close most of its distance. 0 disables easing. */
|
|
243
|
+
animationTime?: number;
|
|
244
|
+
/**
|
|
245
|
+
* Seconds each animation (zoom, glide, home) takes, on a fixed-length spring. Unset,
|
|
246
|
+
* the camera eases by `animationTime` instead.
|
|
247
|
+
*/
|
|
248
|
+
animationDuration?: number;
|
|
249
|
+
/** With `animationDuration`, how much of the movement comes early: higher starts faster. Default 6.5. */
|
|
250
|
+
springStiffness?: number;
|
|
251
|
+
/** Hold the image inside its bounds while dragging. Default true; false lets it spring back on release. */
|
|
252
|
+
constrainDuringPan?: boolean;
|
|
253
|
+
/**
|
|
254
|
+
* Milliseconds the controls and navigator stay after a mouse (or a pen that hovers)
|
|
255
|
+
* stops moving, or a finger lifts, as the Player's `hideDelay`. Default 3000; `Infinity`
|
|
256
|
+
* keeps them once shown. A tap on the picture shows them, and another hides them. Focus
|
|
257
|
+
* that no press brought holds them, and so does a paused recording.
|
|
258
|
+
* A Timeline's: a Canvas's controls stay in sight, for now (Mat, 2026-11-01).
|
|
259
|
+
*/
|
|
260
|
+
hideDelay?: number;
|
|
261
|
+
/** A time-based Canvas's video or sound. */
|
|
262
|
+
/**
|
|
263
|
+
* An animation Canvas (painting annotations at `#t=` times, one per frame): play on
|
|
264
|
+
* arrival, and loop at the end (the reader can turn looping off and on). Inside a `Root`,
|
|
265
|
+
* `auto-advance` and `repeat` behaviors set them, and a Manifest's `auto-advance` moves
|
|
266
|
+
* on when a non-looping animation ends (`onEnded`, as for video). Neither by default; a
|
|
267
|
+
* reader asking for reduced motion is never autoplayed.
|
|
268
|
+
*/
|
|
269
|
+
animation?: {
|
|
270
|
+
autoplay?: boolean;
|
|
271
|
+
loop?: boolean;
|
|
272
|
+
};
|
|
273
|
+
/**
|
|
274
|
+
* Credentials, headers and a custom `fetch` for every request the Canvas makes:
|
|
275
|
+
* `info.json`, tiles, captions and HLS. A `<video>` or an image without CORS can only
|
|
276
|
+
* send credentials. Inside a `Root`, the Root's `request` is used.
|
|
277
|
+
*/
|
|
278
|
+
request?: CloverRequest;
|
|
191
279
|
}
|
|
192
280
|
/**
|
|
193
281
|
* What `Items` shows: light models of a Manifest's views or a Collection's members, never
|
|
@@ -393,6 +481,8 @@ export type DefaultProps = Omit<RootProps, "children"> & {
|
|
|
393
481
|
* The Body's `collapseControls`.
|
|
394
482
|
*/
|
|
395
483
|
collapseControls?: "auto" | "always";
|
|
484
|
+
/** The Body's Canvas `options`: its gestures, zoom limits and motion. */
|
|
485
|
+
canvasOptions?: CloverCanvasOptions;
|
|
396
486
|
};
|
|
397
487
|
/**
|
|
398
488
|
* The Viewer's own layout, drawn when no `template` is given: Clover 3.x's Viewer, built
|
|
@@ -406,7 +496,7 @@ export type DefaultProps = Omit<RootProps, "children"> & {
|
|
|
406
496
|
* uncovered: a click there, Escape or the panel's close button puts it away. Size it with
|
|
407
497
|
* `--clover-body-height`.
|
|
408
498
|
*/
|
|
409
|
-
export declare function Default({ className, header, headingLevel, panel, defaultPanelOpen, panelLayout, panelSections, panelLabels, download, languages, items, singleItem, storageKey, fill, collapseControls, ...root }: DefaultProps): React.JSX.Element;
|
|
499
|
+
export declare function Default({ className, header, headingLevel, panel, defaultPanelOpen, panelLayout, panelSections, panelLabels, download, languages, items, singleItem, storageKey, fill, collapseControls, canvasOptions, ...root }: DefaultProps): React.JSX.Element;
|
|
410
500
|
export type DocumentProps = Omit<RootProps, "children"> & {
|
|
411
501
|
/**
|
|
412
502
|
* Whether the page thumbnails start shown beside the page. Default `true`. On a phone,
|
|
@@ -465,6 +555,8 @@ export type DocumentProps = Omit<RootProps, "children"> & {
|
|
|
465
555
|
* The Body's `collapseControls`.
|
|
466
556
|
*/
|
|
467
557
|
collapseControls?: "auto" | "always";
|
|
558
|
+
/** The Body's Canvas `options`: its gestures, zoom limits and motion. */
|
|
559
|
+
canvasOptions?: CloverCanvasOptions;
|
|
468
560
|
};
|
|
469
561
|
/**
|
|
470
562
|
* A layout that reads like a PDF viewer: a toolbar, page thumbnails down the left, and
|
|
@@ -475,7 +567,7 @@ export type DocumentProps = Omit<RootProps, "children"> & {
|
|
|
475
567
|
* where there is room for both, and slides out over the page where there is not. Size
|
|
476
568
|
* it with `--clover-template-document-height`.
|
|
477
569
|
*/
|
|
478
|
-
export declare function Document({ className, defaultSidebarOpen, singleItem, defaultPanelOpen, panelLayout, panelSections, panelLabels, download, languages, headingLevel, storageKey, collapseControls, ...root }: DocumentProps): React.JSX.Element;
|
|
570
|
+
export declare function Document({ className, defaultSidebarOpen, singleItem, defaultPanelOpen, panelLayout, panelSections, panelLabels, download, languages, headingLevel, storageKey, collapseControls, canvasOptions, ...root }: DocumentProps): React.JSX.Element;
|
|
479
571
|
export type GalleryProps = Omit<RootProps, "children"> & {
|
|
480
572
|
/** The size of a grid cell. Default `10rem`, through `--clover-items-size`. */
|
|
481
573
|
size?: string;
|
|
@@ -558,6 +650,8 @@ export type GalleryProps = Omit<RootProps, "children"> & {
|
|
|
558
650
|
* Its lightbox's Body's `collapseControls`.
|
|
559
651
|
*/
|
|
560
652
|
collapseControls?: "auto" | "always";
|
|
653
|
+
/** Its lightbox's Body's Canvas `options`: its gestures, zoom limits and motion. */
|
|
654
|
+
canvasOptions?: CloverCanvasOptions;
|
|
561
655
|
};
|
|
562
656
|
/**
|
|
563
657
|
* A grid framed by what it opens, that opens a cell in a lightbox with the Body and the
|
|
@@ -566,7 +660,7 @@ export type GalleryProps = Omit<RootProps, "children"> & {
|
|
|
566
660
|
* shows that Manifest in the lightbox. Escape, the close button, or a press outside
|
|
567
661
|
* closes it, and focus returns to the cell.
|
|
568
662
|
*/
|
|
569
|
-
export declare function Gallery({ className, size, height, gap, items, secondary, summary, lightboxItems, panel, defaultPanelOpen, panelLayout, panelSections, panelLabels, download, languages, storageKey, headingLevel, collapseControls, style, ...root }: GalleryProps): React.JSX.Element;
|
|
663
|
+
export declare function Gallery({ className, size, height, gap, items, secondary, summary, lightboxItems, panel, defaultPanelOpen, panelLayout, panelSections, panelLabels, download, languages, storageKey, headingLevel, collapseControls, canvasOptions, style, ...root }: GalleryProps): React.JSX.Element;
|
|
570
664
|
export interface LightboxProps {
|
|
571
665
|
open: boolean;
|
|
572
666
|
onClose: () => void;
|
|
@@ -607,6 +701,8 @@ export interface LightboxProps {
|
|
|
607
701
|
storageKey?: string | false;
|
|
608
702
|
/** The Body's `collapseControls`: when the view's controls collapse behind one button. */
|
|
609
703
|
collapseControls?: "auto" | "always";
|
|
704
|
+
/** The Body's Canvas `options`: its gestures, zoom limits and motion. */
|
|
705
|
+
canvasOptions?: CloverCanvasOptions;
|
|
610
706
|
className?: string;
|
|
611
707
|
}
|
|
612
708
|
/**
|
|
@@ -619,9 +715,9 @@ export interface LightboxProps {
|
|
|
619
715
|
* 2026-11-01: "carousel by default") or the pager (with the position). A modal
|
|
620
716
|
* `<dialog>`'s backdrop always covers the whole window, so this is a layer in the Root, a
|
|
621
717
|
* `dialog` to assistive technology, named by its title: while it is open the rest of the
|
|
622
|
-
* Root is inert, focus is on the view in its strip (on Close with the
|
|
623
|
-
* Close, Back or a press on the layer
|
|
624
|
-
*
|
|
718
|
+
* Root is inert but what speaks, focus is on the view in its strip (on Close with the
|
|
719
|
+
* pager), Tab comes round inside it, and Escape, Close, Back or a press on the layer
|
|
720
|
+
* outside the panel closes it, focus going back to the grid's cell of the view shown.
|
|
625
721
|
* By default it fills the layout's bounds; `--clover-template-lightbox-inset`,
|
|
626
722
|
* `-backdrop` and `-radius` give it room, a backdrop and corners (`Lightbox.css`). The
|
|
627
723
|
* layout positions it and holds its stacking (`position: relative` and `isolation:
|
|
@@ -40,7 +40,7 @@ function Lightbox({
|
|
|
40
40
|
if (!open || !element || !root) return;
|
|
41
41
|
const opener = element.ownerDocument.activeElement;
|
|
42
42
|
const others = Array.from(root.children).filter(
|
|
43
|
-
(child) => child !== element && !child.classList.contains("clover-announcer")
|
|
43
|
+
(child) => child !== element && !child.classList.contains("clover-announcer") && !child.classList.contains("clover-status")
|
|
44
44
|
);
|
|
45
45
|
others.forEach((child) => child.inert = true);
|
|
46
46
|
(_b = (_a2 = panel.current) == null ? void 0 : _a2.scrollIntoView) == null ? void 0 : _b.call(_a2, { block: "nearest" });
|
|
@@ -48,9 +48,33 @@ function Lightbox({
|
|
|
48
48
|
'[role="listbox"] [role="option"][aria-selected="true"]'
|
|
49
49
|
);
|
|
50
50
|
(_d = chosen ?? close.current) == null ? void 0 : _d.focus({ preventScroll: true });
|
|
51
|
+
const doc = element.ownerDocument;
|
|
52
|
+
let check;
|
|
53
|
+
const onTab = (event) => {
|
|
54
|
+
var _a3;
|
|
55
|
+
if (event.key !== "Tab" || !((_a3 = panel.current) == null ? void 0 : _a3.contains(event.target)))
|
|
56
|
+
return;
|
|
57
|
+
const back = event.shiftKey;
|
|
58
|
+
clearTimeout(check);
|
|
59
|
+
check = setTimeout(() => {
|
|
60
|
+
var _a4;
|
|
61
|
+
const dialog = panel.current;
|
|
62
|
+
if (!dialog || dialog.contains(doc.activeElement)) return;
|
|
63
|
+
const stops = stopsOf(dialog);
|
|
64
|
+
(_a4 = back ? stops.at(-1) : stops[0]) == null ? void 0 : _a4.focus();
|
|
65
|
+
});
|
|
66
|
+
};
|
|
67
|
+
doc.addEventListener("keydown", onTab, true);
|
|
51
68
|
return () => {
|
|
69
|
+
var _a3, _b2;
|
|
70
|
+
doc.removeEventListener("keydown", onTab, true);
|
|
71
|
+
clearTimeout(check);
|
|
52
72
|
others.forEach((child) => child.inert = false);
|
|
53
|
-
|
|
73
|
+
const shown = (_a3 = opener == null ? void 0 : opener.closest('[role="listbox"]')) == null ? void 0 : _a3.querySelector('[role="option"][aria-selected="true"]');
|
|
74
|
+
const back = shown ?? opener;
|
|
75
|
+
if (!(back == null ? void 0 : back.isConnected)) return;
|
|
76
|
+
back.focus({ preventScroll: true });
|
|
77
|
+
(_b2 = back.scrollIntoView) == null ? void 0 : _b2.call(back, { block: "nearest" });
|
|
54
78
|
};
|
|
55
79
|
}, [open]);
|
|
56
80
|
return /* @__PURE__ */ jsx(
|
|
@@ -63,7 +87,12 @@ function Lightbox({
|
|
|
63
87
|
if (event.target === layer.current) onClose();
|
|
64
88
|
},
|
|
65
89
|
onKeyDown: (event) => {
|
|
66
|
-
if (event.
|
|
90
|
+
if (event.defaultPrevented) return;
|
|
91
|
+
if (event.key === "Tab" && panel.current) {
|
|
92
|
+
wrapFocus(panel.current, event);
|
|
93
|
+
return;
|
|
94
|
+
}
|
|
95
|
+
if (event.key !== "Escape") return;
|
|
67
96
|
event.preventDefault();
|
|
68
97
|
closing.current();
|
|
69
98
|
},
|
|
@@ -149,6 +178,24 @@ function Lightbox({
|
|
|
149
178
|
}
|
|
150
179
|
);
|
|
151
180
|
}
|
|
181
|
+
const STOPS = 'a[href], button, input, select, textarea, summary, [tabindex]:not([tabindex="-1"])';
|
|
182
|
+
const stopsOf = (dialog) => Array.from(dialog.querySelectorAll(STOPS)).filter(
|
|
183
|
+
(stop) => {
|
|
184
|
+
var _a;
|
|
185
|
+
return stop.tabIndex >= 0 && !stop.matches(":disabled") && !stop.closest("[inert]") && (((_a = stop.checkVisibility) == null ? void 0 : _a.call(stop, { visibilityProperty: true })) ?? true);
|
|
186
|
+
}
|
|
187
|
+
);
|
|
188
|
+
function wrapFocus(dialog, event) {
|
|
189
|
+
const stops = stopsOf(dialog);
|
|
190
|
+
const first = stops[0];
|
|
191
|
+
const last = stops.at(-1);
|
|
192
|
+
if (!first || !last) return;
|
|
193
|
+
const at = dialog.ownerDocument.activeElement;
|
|
194
|
+
if (event.shiftKey ? at === first : at === last) {
|
|
195
|
+
event.preventDefault();
|
|
196
|
+
(event.shiftKey ? last : first).focus();
|
|
197
|
+
}
|
|
198
|
+
}
|
|
152
199
|
function Back({ onOut }) {
|
|
153
200
|
const t = useT();
|
|
154
201
|
const langOf = useLangOf();
|
|
@@ -22,7 +22,8 @@ function LightboxView({
|
|
|
22
22
|
download = true,
|
|
23
23
|
languages = true,
|
|
24
24
|
storageKey,
|
|
25
|
-
collapseControls
|
|
25
|
+
collapseControls,
|
|
26
|
+
canvasOptions
|
|
26
27
|
}) {
|
|
27
28
|
const panes = useRef(null);
|
|
28
29
|
useEffect(() => {
|
|
@@ -81,6 +82,7 @@ function LightboxView({
|
|
|
81
82
|
{
|
|
82
83
|
className: "clover-template-lightbox-body",
|
|
83
84
|
collapseControls,
|
|
85
|
+
options: canvasOptions,
|
|
84
86
|
children: panel && !pane.docked && pane.toggle
|
|
85
87
|
}
|
|
86
88
|
),
|
package/dist/templates.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
@layer clover{.clover-template-lightbox{position:absolute;inset:0;z-index:10;padding:var(--clover-template-lightbox-inset, 0);background:var(--clover-template-lightbox-backdrop, transparent)}.clover-template-lightbox[hidden]{display:none}.clover-template-lightbox-content{position:sticky;top:calc(var(--clover-template-lightbox-top, 0px) + var(--clover-template-lightbox-inset, 0px));box-sizing:border-box;display:flex;flex-direction:column;gap:var(--clover-space-m);height:min(100%,calc(100vh - var(--clover-template-lightbox-top, 0px) - 2 * var(--clover-template-lightbox-inset, 0px)));padding:var(--clover-inset);border-radius:var(--clover-template-lightbox-radius, 0);background:var(--clover-color-secondary, #fff);color:var(--clover-color-primary, #1a1d1e);--clover-body-height: min(70vh, 48rem)}@supports (height: 1svh){.clover-template-lightbox-content{height:min(100%,calc(100svh - var(--clover-template-lightbox-top, 0px) - 2 * var(--clover-template-lightbox-inset, 0px)));--clover-body-height: min(70svh, 48rem)}}.clover-template-lightbox-content>.clover-template-lightbox-panes{flex:1 1 auto;min-height:0}.clover-template-lightbox-main{display:flex;flex-direction:column;gap:var(--clover-space-m);min-height:0}.clover-template-lightbox-main>.clover-template-lightbox-body{flex:1 1 auto;min-height:0}.clover-template-lightbox-main>.clover-items[data-layout=slider]{flex:none;--clover-items-height: 4rem;--clover-items-lines: 1}.clover-template-lightbox-pending{height:var(--clover-body-height, 60vh);background-color:#0001}.clover-template-lightbox-header{display:flex;align-items:center;gap:var(--clover-space-m)}.clover-template-lightbox-title{flex:1 1 auto;min-width:0}.clover-template-lightbox-caption{flex:none;margin:calc(var(--clover-space-xs) - var(--clover-space-m)) 0 0;overflow-wrap:anywhere}.clover-template-lightbox-back:dir(rtl) svg{transform:scaleX(-1)}button:is(.clover-template-lightbox-back,.clover-template-lightbox-close){flex:none;display:inline-flex;align-items:center;justify-content:center;width:var(--clover-control);height:var(--clover-control);padding:0;border:0;border-radius:var(--clover-radius-pill, 2rem);background:transparent;color:inherit;cursor:pointer}button:is(.clover-template-lightbox-back,.clover-template-lightbox-close):is(:hover,:focus-visible){background:var(--clover-color-accent, #0065c3);color:var(--clover-color-control-glyph, #fff)}:where([data-high-contrast]) button:is(.clover-template-lightbox-back,.clover-template-lightbox-close):is(:hover,:focus-visible){background:var(--clover-accent-fill)}:where([data-high-contrast]) button:is(.clover-template-lightbox-back,.clover-template-lightbox-close):hover:not(:focus-visible){outline:var(--clover-accent-ring-hover);outline-offset:1px}.clover-template-document{--clover-template-document-height: min(85vh, 56rem);display:flex;flex-direction:column;height:var(--clover-template-document-height);min-height:min-content;overflow:hidden;background-color:var(--clover-color-secondary, #fff);color:var(--clover-color-primary, #1a1d1e)}@supports (height: 1svh){.clover-template-document{--clover-template-document-height: min(85svh, 56rem)}}.clover-template-document-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--clover-space-s);padding:var(--clover-space-m) var(--clover-inset);border-bottom:1px solid var(--clover-color-secondary-muted, #e6e8eb)}.clover-template-document-provider{max-width:100%;margin-inline-start:auto}.clover-template-document-toolbar .clover-download-groups{flex-direction:row;flex-wrap:wrap;column-gap:var(--clover-space-m)}.clover-template-document-toolbar .clover-download-group{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:var(--clover-space-s)}.clover-template-document-toolbar .clover-download-title{margin:0}.clover-template-document-toolbar .clover-download-list{display:flex;flex-wrap:wrap;column-gap:var(--clover-space-s)}.clover-template-document-title{flex:1 1 6rem;min-width:0}button.clover-template-document-sidebar-toggle{display:inline-flex;flex:none;align-items:center;gap:var(--clover-space-xs);min-height:var(--clover-control);padding-block:0;padding-inline:var(--clover-space-s) calc(var(--clover-space-xs) + var(--clover-space-3xs));border:0;border-radius:var(--clover-radius-pill, 2rem);background-color:var(--clover-color-control, #1a1d1e);color:var(--clover-color-control-glyph, #fff);cursor:pointer;transition:var(--clover-transition, all .2s cubic-bezier(.16, 1, .3, 1))}button.clover-template-document-sidebar-toggle:is(:hover,:focus-visible){background-color:var(--clover-color-accent, #0065c3)}:where([data-high-contrast]) button.clover-template-document-sidebar-toggle:is(:hover,:focus-visible){background-color:var(--clover-accent-fill)}:where([data-high-contrast]) button.clover-template-document-sidebar-toggle:hover:not(:focus-visible){outline:var(--clover-accent-ring-hover);outline-offset:1px}button.clover-template-document-sidebar-toggle:focus-visible{outline:2px solid var(--clover-color-accent, #0065c3);outline-offset:2px}.clover-template-document-sidebar-toggle .clover-template-document-position{color:inherit;font-size:var(--clover-text-xs);white-space:nowrap}.clover-template-document-sidebar-toggle .clover-template-document-position>.clover-pager-room[hidden]{display:none}.clover-template-document-panes{position:relative;flex:1 1 auto;min-height:16rem}.clover-template-document-panes:is([data-panel=over],[data-narrow])>.clover-template-document-main{isolation:isolate}.clover-template-document-sidebar{contain:size;overflow-y:auto;overscroll-behavior:contain;padding:var(--clover-inset);scroll-padding-top:calc(2 * var(--clover-inset) + var(--clover-control));background-color:var(--clover-color-secondary, #fff)}.clover-template-document-sidebar-closed{position:absolute;top:var(--clover-inset);inset-inline-start:var(--clover-inset);z-index:3}@media (width < 31rem){.clover-template-document-toolbar,.clover-template-document-sidebar-closed,.clover-template-document-spine{--clover-inset: var(--clover-space-m)}}.clover-template-document-sidebar[hidden]{display:none}.clover-template-document-sidebar+.clover-split-handle:before{inset-inline-start:0;inset-inline-end:calc(3px - var(--clover-space-l))}.clover-template-document-sidebar .clover-items[data-layout] .clover-items-figure{grid-template-columns:repeat(var(--parts, 1),minmax(0,1fr));gap:var(--clover-space-xs) 0}.clover-template-document-sidebar .clover-items[data-layout] :is(.clover-items-pictures,.clover-items-caption){grid-column:1 / -1;grid-template-columns:subgrid}.clover-template-document-sidebar .clover-items[data-layout] .clover-items-label{contain:inline-size}.clover-template-document-sidebar .clover-items[data-layout] .clover-items-picture[data-empty],.clover-template-document-sidebar .clover-items[data-layout] .clover-items-picture img{width:100%;height:auto;max-height:20rem;aspect-ratio:var(--clover-items-ratio, auto);object-fit:contain}.clover-template-document-sidebar .clover-items[data-layout] .clover-items-caption{font-size:var(--clover-text-s)}.clover-template-document-main{position:relative;overflow:hidden;background-color:var(--clover-color-secondary-muted, #e6e8eb)}.clover-template-document-column{position:absolute;inset:0;overflow-x:hidden;overflow-y:auto;container-type:size}.clover-template-document-sheets{position:relative}.clover-template-document-sheet{--clover-template-document-tease: calc(2 * var(--clover-inset));display:flex;justify-content:center;box-sizing:border-box;height:min(100cqh - var(--clover-template-document-tease),(100cqw - 2 * var(--clover-inset)) / var(--ratio) + 2 * var(--clover-inset));padding:var(--clover-inset);transition:opacity .2s ease,height .24s cubic-bezier(.16,1,.3,1)}.clover-template-document-sheet[data-fill]{height:calc(100cqh - var(--clover-template-document-tease))}.clover-template-document-column[data-zoomed] .clover-template-document-sheet[data-active]{height:100cqh}.clover-template-document-column[data-zoomed] .clover-template-document-sheet[data-active]>*{visibility:hidden}.clover-template-document-column[data-zoomed] .clover-template-document-sheet:not([data-active]){--clover-template-document-muted: 0;pointer-events:none}.clover-template-document-sheet:not([data-active]){--clover-template-document-muted: .618;cursor:pointer;opacity:var(--clover-template-document-muted)}.clover-template-document-sheet:not([data-active]):hover{--clover-template-document-muted: .809}@media (prefers-reduced-motion: reduce){.clover-template-document-sheet{transition:none}}.clover-template-document-sheets[data-single]>.clover-template-document-sheet{--clover-template-document-tease: 0px}.clover-template-document-sheet>*{display:block;height:100%;min-width:0}.clover-template-document-sheet[data-fill]>*{object-fit:contain}.clover-template-document-live{--clover-body-height: 100%;position:absolute;inset-inline:0;top:0;height:100%;transition:opacity .16s ease}.clover-template-document-body .clover-canvas{--clover-canvas-inset: var(--clover-inset);background-color:transparent}.clover-template-document-live[data-moved]:not(:focus-within){opacity:0;pointer-events:none}.clover-template-document-column[data-scrolling] .clover-template-document-live:not(:focus-within) .clover-canvas-controls>*{--clover-controls-shown: 0;--clover-controls-events: none}.clover-template-document-column:not([data-zoomed]) :not(.clover-scene)>.clover-canvas-viewport{touch-action:pan-y}.clover-template-document-scrim[data-for=sidebar]{z-index:2}.clover-template-document-panes[data-narrow]{--clover-template-sidebar-width: min(14rem, 80%)}.clover-template-document-panes[data-narrow]>.clover-template-document-sidebar{position:absolute;inset-block:0;inset-inline-start:0;z-index:3;width:var(--clover-template-sidebar-width);border-inline-end:1px solid var(--clover-color-secondary-muted, #e6e8eb);--clover-template-inner: right;--clover-template-toward: 1}.clover-template-document-panes[data-narrow]>.clover-template-document-sidebar:dir(rtl){--clover-template-inner: left;--clover-template-toward: -1}.clover-template-document-spine{position:relative;z-index:4;flex:none;width:0}.clover-template-document-spine>*{position:absolute;top:var(--clover-inset);inset-inline-start:-1.5px;translate:-50%}.clover-template-document-spine:dir(rtl)>*{translate:50%}.clover-template-document-spine[data-for=sidebar]>*{inset-inline:auto calc(1.5px - var(--clover-control) / 2);translate:none}.clover-template-document-panes[data-narrow]>.clover-template-document-spine[data-for=sidebar]{inset-inline-start:var(--clover-template-sidebar-width)}.clover-template-document-panes[data-narrow]>.clover-template-document-spine[data-for=sidebar]>*{inset-inline-end:calc(var(--clover-control) / -2)}.clover-template-gallery{position:relative;isolation:isolate;display:flex;flex-direction:column;gap:var(--clover-space-l);padding:var(--clover-inset);color:var(--clover-color-primary, #1a1d1e)}.clover-template-gallery[data-height=fixed]{box-sizing:border-box;height:var(--clover-template-gallery-height)}.clover-template-gallery[data-height=fixed]>.clover-items{flex:1 1 auto;min-height:0;overflow:auto;margin:calc(-1 * var(--clover-items-ring-room, 4px));padding:var(--clover-items-ring-room, 4px)}.clover-template-gallery-header{flex:none;display:flex;flex-direction:column;gap:var(--clover-space-2xs)}.clover-template-gallery-summary{margin:0;--clover-summary-lines: 2}.clover-template-gallery .clover-items{--clover-items-gap: var(--clover-template-gallery-gap, var(--clover-inset));--clover-items-lines: none}}
|
|
1
|
+
@layer clover{.clover-template-lightbox{position:absolute;inset:0;z-index:10;padding:var(--clover-template-lightbox-inset, 0);background:var(--clover-template-lightbox-backdrop, transparent)}.clover-template-lightbox[hidden]{display:none}.clover-template-lightbox-content{position:sticky;overflow-y:auto;top:calc(var(--clover-template-lightbox-top, 0px) + var(--clover-template-lightbox-inset, 0px));box-sizing:border-box;display:flex;flex-direction:column;gap:var(--clover-space-m);height:min(100%,calc(100vh - var(--clover-template-lightbox-top, 0px) - 2 * var(--clover-template-lightbox-inset, 0px)));padding:var(--clover-inset);border-radius:var(--clover-template-lightbox-radius, 0);background:var(--clover-color-secondary, #fff);color:var(--clover-color-primary, #1a1d1e);--clover-body-height: min(70vh, 48rem)}@supports (height: 1svh){.clover-template-lightbox-content{height:min(100%,calc(100svh - var(--clover-template-lightbox-top, 0px) - 2 * var(--clover-template-lightbox-inset, 0px)));--clover-body-height: min(70svh, 48rem)}}.clover-template-lightbox-content>.clover-template-lightbox-panes{flex:1 1 auto;min-height:16rem}.clover-template-lightbox-main{display:flex;flex-direction:column;gap:var(--clover-space-m);min-height:0}.clover-template-lightbox-main>.clover-template-lightbox-body{flex:1 1 auto;min-height:0}.clover-template-lightbox-main>.clover-items[data-layout=slider]{flex:none;--clover-items-height: 4rem;--clover-items-lines: 1}.clover-template-lightbox-pending{height:var(--clover-body-height, 60vh);background-color:#0001}.clover-template-lightbox-header{display:flex;align-items:center;gap:var(--clover-space-m)}.clover-template-lightbox-title{flex:1 1 auto;min-width:0}.clover-template-lightbox-caption{flex:none;margin:calc(var(--clover-space-xs) - var(--clover-space-m)) 0 0;overflow-wrap:anywhere}.clover-template-lightbox-back:dir(rtl) svg{transform:scaleX(-1)}button:is(.clover-template-lightbox-back,.clover-template-lightbox-close){flex:none;display:inline-flex;align-items:center;justify-content:center;width:var(--clover-control);height:var(--clover-control);padding:0;border:0;border-radius:var(--clover-radius-pill, 2rem);background:transparent;color:inherit;cursor:pointer}button:is(.clover-template-lightbox-back,.clover-template-lightbox-close):is(:hover,:focus-visible){background:var(--clover-color-accent, #0065c3);color:var(--clover-color-control-glyph, #fff)}:where([data-high-contrast]) button:is(.clover-template-lightbox-back,.clover-template-lightbox-close):is(:hover,:focus-visible){background:var(--clover-accent-fill)}:where([data-high-contrast]) button:is(.clover-template-lightbox-back,.clover-template-lightbox-close):hover:not(:focus-visible){outline:var(--clover-accent-ring-hover);outline-offset:1px}.clover-template-document{--clover-template-document-height: min(85vh, 56rem);display:flex;flex-direction:column;height:var(--clover-template-document-height);min-height:min-content;overflow:hidden;background-color:var(--clover-color-secondary, #fff);color:var(--clover-color-primary, #1a1d1e)}@supports (height: 1svh){.clover-template-document{--clover-template-document-height: min(85svh, 56rem)}}.clover-template-document-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--clover-space-s);padding:var(--clover-space-m) var(--clover-inset);border-bottom:1px solid var(--clover-color-secondary-muted, #e6e8eb)}.clover-template-document-provider{max-width:100%;margin-inline-start:auto}.clover-template-document-toolbar .clover-download-groups{flex-direction:row;flex-wrap:wrap;column-gap:var(--clover-space-m)}.clover-template-document-toolbar .clover-download-group{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:var(--clover-space-s)}.clover-template-document-toolbar .clover-download-title{margin:0}.clover-template-document-toolbar .clover-download-list{display:flex;flex-wrap:wrap;column-gap:var(--clover-space-s)}.clover-template-document-title{flex:1 1 6rem;min-width:0}button.clover-template-document-sidebar-toggle{display:inline-flex;flex:none;align-items:center;gap:var(--clover-space-xs);min-height:var(--clover-control);padding-block:0;padding-inline:var(--clover-space-s) calc(var(--clover-space-xs) + var(--clover-space-3xs));border:0;border-radius:var(--clover-radius-pill, 2rem);background-color:var(--clover-color-control, #1a1d1e);color:var(--clover-color-control-glyph, #fff);cursor:pointer;transition:var(--clover-transition, all .2s cubic-bezier(.16, 1, .3, 1))}button.clover-template-document-sidebar-toggle:is(:hover,:focus-visible){background-color:var(--clover-color-accent, #0065c3)}:where([data-high-contrast]) button.clover-template-document-sidebar-toggle:is(:hover,:focus-visible){background-color:var(--clover-accent-fill)}:where([data-high-contrast]) button.clover-template-document-sidebar-toggle:hover:not(:focus-visible){outline:var(--clover-accent-ring-hover);outline-offset:1px}button.clover-template-document-sidebar-toggle:focus-visible{outline:2px solid var(--clover-color-accent, #0065c3);outline-offset:2px}.clover-template-document-sidebar-toggle .clover-template-document-position{color:inherit;font-size:var(--clover-text-xs);white-space:nowrap}.clover-template-document-sidebar-toggle .clover-template-document-position>.clover-pager-room[hidden]{display:none}.clover-template-document-panes{position:relative;flex:1 1 auto;min-height:16rem}.clover-template-document-panes:is([data-panel=over],[data-narrow])>.clover-template-document-main{isolation:isolate}.clover-template-document-sidebar{contain:size;overflow-y:auto;overscroll-behavior:contain;padding:var(--clover-inset);scroll-padding-top:calc(2 * var(--clover-inset) + var(--clover-control));background-color:var(--clover-color-secondary, #fff)}.clover-template-document-sidebar-closed{position:absolute;top:var(--clover-inset);inset-inline-start:var(--clover-inset);z-index:3}@media (width < 31rem){.clover-template-document-toolbar,.clover-template-document-sidebar-closed,.clover-template-document-spine{--clover-inset: var(--clover-space-m)}}.clover-template-document-sidebar[hidden]{display:none}.clover-template-document-sidebar+.clover-split-handle:before{inset-inline-start:0;inset-inline-end:calc(3px - var(--clover-space-l))}.clover-template-document-sidebar .clover-items[data-layout] .clover-items-figure{grid-template-columns:repeat(var(--parts, 1),minmax(0,1fr));gap:var(--clover-space-xs) 0}.clover-template-document-sidebar .clover-items[data-layout] :is(.clover-items-pictures,.clover-items-caption){grid-column:1 / -1;grid-template-columns:subgrid}.clover-template-document-sidebar .clover-items[data-layout] .clover-items-label{contain:inline-size}.clover-template-document-sidebar .clover-items[data-layout] .clover-items-picture[data-empty],.clover-template-document-sidebar .clover-items[data-layout] .clover-items-picture img{width:100%;height:auto;max-height:20rem;aspect-ratio:var(--clover-items-ratio, auto);object-fit:contain}.clover-template-document-sidebar .clover-items[data-layout] .clover-items-caption{font-size:var(--clover-text-s)}.clover-template-document-main{position:relative;overflow:hidden;background-color:var(--clover-color-secondary-muted, #e6e8eb)}.clover-template-document-column{position:absolute;inset:0;overflow-x:hidden;overflow-y:auto;container-type:size}.clover-template-document-sheets{position:relative}.clover-template-document-sheet{--clover-template-document-tease: calc(2 * var(--clover-inset));display:flex;justify-content:center;box-sizing:border-box;height:min(100cqh - var(--clover-template-document-tease),(100cqw - 2 * var(--clover-inset)) / var(--ratio) + 2 * var(--clover-inset));padding:var(--clover-inset);transition:opacity .2s ease,height .24s cubic-bezier(.16,1,.3,1)}.clover-template-document-sheet[data-fill]{height:calc(100cqh - var(--clover-template-document-tease))}.clover-template-document-column[data-zoomed] .clover-template-document-sheet[data-active]{height:100cqh}.clover-template-document-column[data-zoomed] .clover-template-document-sheet[data-active]>*{visibility:hidden}.clover-template-document-column[data-zoomed] .clover-template-document-sheet:not([data-active]){--clover-template-document-muted: 0;pointer-events:none}.clover-template-document-sheet:not([data-active]){--clover-template-document-muted: .618;cursor:pointer;opacity:var(--clover-template-document-muted)}.clover-template-document-sheet:not([data-active]):hover{--clover-template-document-muted: .809}@media (prefers-reduced-motion: reduce){.clover-template-document-sheet{transition:none}}.clover-template-document-sheets[data-single]>.clover-template-document-sheet{--clover-template-document-tease: 0px}.clover-template-document-sheet>*{display:block;height:100%;min-width:0}.clover-template-document-sheet[data-fill]>*{object-fit:contain}.clover-template-document-live{--clover-body-height: 100%;position:absolute;inset-inline:0;top:0;height:100%;transition:opacity .16s ease}.clover-template-document-body .clover-canvas{--clover-canvas-inset: var(--clover-inset);background-color:transparent}.clover-template-document-live[data-moved]:not(:focus-within){opacity:0;pointer-events:none}.clover-template-document-column[data-scrolling] .clover-template-document-live:not(:focus-within) .clover-canvas-controls>*{--clover-controls-shown: 0;--clover-controls-events: none}.clover-template-document-column:not([data-zoomed]) :not(.clover-scene)>.clover-canvas-viewport{touch-action:pan-y}.clover-template-document-scrim[data-for=sidebar]{z-index:2}.clover-template-document-panes[data-narrow]{--clover-template-sidebar-width: min(14rem, 80%)}.clover-template-document-panes[data-narrow]>.clover-template-document-sidebar{position:absolute;inset-block:0;inset-inline-start:0;z-index:3;width:var(--clover-template-sidebar-width);border-inline-end:1px solid var(--clover-color-secondary-muted, #e6e8eb);--clover-template-inner: right;--clover-template-toward: 1}.clover-template-document-panes[data-narrow]>.clover-template-document-sidebar:dir(rtl){--clover-template-inner: left;--clover-template-toward: -1}.clover-template-document-spine{position:relative;z-index:4;flex:none;width:0}.clover-template-document-spine>*{position:absolute;top:var(--clover-inset);inset-inline-start:-1.5px;translate:-50%}.clover-template-document-spine:dir(rtl)>*{translate:50%}.clover-template-document-spine[data-for=sidebar]>*{inset-inline:auto calc(1.5px - var(--clover-control) / 2);translate:none}.clover-template-document-panes[data-narrow]>.clover-template-document-spine[data-for=sidebar]{inset-inline-start:var(--clover-template-sidebar-width)}.clover-template-document-panes[data-narrow]>.clover-template-document-spine[data-for=sidebar]>*{inset-inline-end:calc(var(--clover-control) / -2)}.clover-template-gallery{position:relative;isolation:isolate;display:flex;flex-direction:column;gap:var(--clover-space-l);padding:var(--clover-inset);color:var(--clover-color-primary, #1a1d1e)}.clover-template-gallery[data-height=fixed]{box-sizing:border-box;height:var(--clover-template-gallery-height)}.clover-template-gallery[data-height=fixed]>.clover-items{flex:1 1 auto;min-height:0;overflow:auto;margin:calc(-1 * var(--clover-items-ring-room, 4px));padding:var(--clover-items-ring-room, 4px)}.clover-template-gallery-header{flex:none;display:flex;flex-direction:column;gap:var(--clover-space-2xs)}.clover-template-gallery-summary{margin:0;--clover-summary-lines: 2}.clover-template-gallery .clover-items{--clover-items-gap: var(--clover-template-gallery-gap, var(--clover-inset));--clover-items-lines: none}}
|
package/dist/ui/Button.mjs
CHANGED
|
@@ -12,7 +12,8 @@ const Button = ({
|
|
|
12
12
|
expanded,
|
|
13
13
|
controls,
|
|
14
14
|
shortcut,
|
|
15
|
-
lang
|
|
15
|
+
lang,
|
|
16
|
+
unavailable
|
|
16
17
|
}) => {
|
|
17
18
|
const buttonType = id.split("-")[0];
|
|
18
19
|
const dataButton = buttonType.replace(/([A-Z])/g, "-$1").toLowerCase().replace(/^-/, "");
|
|
@@ -24,6 +25,7 @@ const Button = ({
|
|
|
24
25
|
"data-testid": "clover-canvas-button",
|
|
25
26
|
"data-button": dataButton,
|
|
26
27
|
onClick,
|
|
28
|
+
"aria-disabled": unavailable || void 0,
|
|
27
29
|
"aria-expanded": expanded,
|
|
28
30
|
"aria-controls": controls,
|
|
29
31
|
"aria-label": label,
|
|
@@ -15,7 +15,8 @@ function renderControl({
|
|
|
15
15
|
expanded,
|
|
16
16
|
controls,
|
|
17
17
|
shortcut,
|
|
18
|
-
lang
|
|
18
|
+
lang,
|
|
19
|
+
unavailable
|
|
19
20
|
}, controlButtons) {
|
|
20
21
|
const Custom = controlButtons == null ? void 0 : controlButtons[key];
|
|
21
22
|
if (Custom)
|
|
@@ -28,7 +29,8 @@ function renderControl({
|
|
|
28
29
|
"aria-label": label,
|
|
29
30
|
...lang && { lang },
|
|
30
31
|
...shortcut && { "aria-keyshortcuts": shortcut.keys },
|
|
31
|
-
onClick,
|
|
32
|
+
onClick: unavailable ? void 0 : onClick,
|
|
33
|
+
...unavailable && { "aria-disabled": true },
|
|
32
34
|
...expanded !== void 0 && {
|
|
33
35
|
"aria-expanded": expanded,
|
|
34
36
|
"aria-controls": controls
|
|
@@ -45,7 +47,8 @@ function renderControl({
|
|
|
45
47
|
{
|
|
46
48
|
id,
|
|
47
49
|
label,
|
|
48
|
-
onClick,
|
|
50
|
+
onClick: unavailable ? void 0 : onClick,
|
|
51
|
+
unavailable,
|
|
49
52
|
expanded,
|
|
50
53
|
controls,
|
|
51
54
|
shortcut,
|
package/dist/ui/Markup.mjs
CHANGED
|
@@ -15,16 +15,16 @@ ${text}` : text;
|
|
|
15
15
|
Promise.all([
|
|
16
16
|
import("../core/sanitize.mjs"),
|
|
17
17
|
markdown ? import("../core/markdown.mjs") : null
|
|
18
|
-
]).then(([{ sanitizeHTML }, md]) => {
|
|
18
|
+
]).then(([{ sanitizeHTML, trusted }, md]) => {
|
|
19
19
|
const source = md ? md.markdownToHtml(text, { headingLevel }) : text;
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
const clean = sanitizeHTML(source, { markdown: !!md });
|
|
21
|
+
if (live) setHtml({ for: key, html: clean, inner: trusted(clean) });
|
|
22
22
|
});
|
|
23
23
|
return () => {
|
|
24
24
|
live = false;
|
|
25
25
|
};
|
|
26
26
|
}, [text, key, markup, markdown, headingLevel]);
|
|
27
|
-
return markup && (html == null ? void 0 : html.for) === key ? html
|
|
27
|
+
return markup && (html == null ? void 0 : html.for) === key ? html : null;
|
|
28
28
|
}
|
|
29
29
|
const INLINE_ONLY = /* @__PURE__ */ new Set([
|
|
30
30
|
"p",
|
|
@@ -50,11 +50,12 @@ const Markup = forwardRef(function Markup2({ as: Tag = "span", markup, language,
|
|
|
50
50
|
const written = languageProps(lang);
|
|
51
51
|
const kind = readAs(format, text);
|
|
52
52
|
const markdown = kind === "markdown";
|
|
53
|
-
const
|
|
53
|
+
const sanitized = useSanitized(
|
|
54
54
|
kind === "plain" ? "" : text,
|
|
55
55
|
markdown,
|
|
56
56
|
headingLevel
|
|
57
57
|
);
|
|
58
|
+
const html = (sanitized == null ? void 0 : sanitized.html) ?? null;
|
|
58
59
|
if (!text) return null;
|
|
59
60
|
if (kind === "plain")
|
|
60
61
|
return /* @__PURE__ */ jsx(Tag, { ref, ...rest, ...written, children: text.split(/\r?\n/).map((line, index) => /* @__PURE__ */ jsxs(React.Fragment, { children: [
|
|
@@ -62,13 +63,13 @@ const Markup = forwardRef(function Markup2({ as: Tag = "span", markup, language,
|
|
|
62
63
|
line
|
|
63
64
|
] }, index)) });
|
|
64
65
|
const Box = typeof Tag === "string" && INLINE_ONLY.has(Tag) && html && /<(p|ul|ol|div)[\s>]/i.test(html) ? "div" : Tag;
|
|
65
|
-
return
|
|
66
|
+
return sanitized ? /* @__PURE__ */ jsx(
|
|
66
67
|
Box,
|
|
67
68
|
{
|
|
68
69
|
ref,
|
|
69
70
|
...rest,
|
|
70
71
|
...written,
|
|
71
|
-
dangerouslySetInnerHTML: { __html:
|
|
72
|
+
dangerouslySetInnerHTML: { __html: sanitized.inner }
|
|
72
73
|
}
|
|
73
74
|
) : (
|
|
74
75
|
// Until the sanitizer arrives, Markdown shows without its syntax.
|
package/dist/ui/Tip.mjs
CHANGED
|
@@ -87,6 +87,10 @@ function placeTip(event) {
|
|
|
87
87
|
const tip = control && tipOf(control);
|
|
88
88
|
if (tip) keepInside(tip);
|
|
89
89
|
}
|
|
90
|
+
function placeTipAgain(control) {
|
|
91
|
+
const tip = tipOf(controlOf(control));
|
|
92
|
+
if (tip && isShown(tip)) keepInside(tip);
|
|
93
|
+
}
|
|
90
94
|
function tipOf(control) {
|
|
91
95
|
return Array.from(control.children).find(
|
|
92
96
|
(child) => child.classList.contains("clover-tip")
|
|
@@ -197,5 +201,6 @@ export {
|
|
|
197
201
|
SHORTCUT_KEYS,
|
|
198
202
|
Tip,
|
|
199
203
|
forwardShortcut,
|
|
200
|
-
hideUntilBack
|
|
204
|
+
hideUntilBack,
|
|
205
|
+
placeTipAgain
|
|
201
206
|
};
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
const adopted = /* @__PURE__ */ new Set();
|
|
3
|
+
function adoptSheet(name, css) {
|
|
4
|
+
if (typeof document === "undefined" || adopted.has(name)) return;
|
|
5
|
+
adopted.add(name);
|
|
6
|
+
if ("adoptedStyleSheets" in document && "replaceSync" in CSSStyleSheet.prototype) {
|
|
7
|
+
const sheet = new CSSStyleSheet();
|
|
8
|
+
sheet.replaceSync(css);
|
|
9
|
+
document.adoptedStyleSheets = [...document.adoptedStyleSheets, sheet];
|
|
10
|
+
return;
|
|
11
|
+
}
|
|
12
|
+
const style = document.createElement("style");
|
|
13
|
+
style.dataset.clover = name;
|
|
14
|
+
style.textContent = css;
|
|
15
|
+
document.head.append(style);
|
|
16
|
+
}
|
|
17
|
+
export {
|
|
18
|
+
adoptSheet
|
|
19
|
+
};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
const __clover_sheet_map = '@layer clover{.clover-geomap{display:grid;gap:var(--clover-space-s)}.clover-geomap>div:first-child{overflow:hidden;border-radius:var(--clover-radius, 3px);background-color:var(--clover-color-secondary-muted, #e6e8eb)}.clover-geomap-error{position:absolute;inset:0;display:grid;place-items:center;margin:0;padding:var(--clover-space-m);color:var(--clover-color-primary-muted, #26292b);text-align:center}.clover-geomap>div:has(.maplibregl-canvas:focus-visible):after{content:"";position:absolute;inset:0;z-index:1;border-radius:inherit;box-shadow:inset 0 0 0 2px var(--clover-color-primary, #1a1d1e),inset 0 0 0 5px var(--clover-color-accent, #0065c3),inset 0 0 0 7px var(--clover-color-secondary, #fff);pointer-events:none}.clover-geomap .maplibregl-map{font:inherit!important}.clover-geomap{--clover-map-controls-inset: var(--clover-inset);--clover-map-controls-top: 0px;--clover-map-controls-start: calc( 2 * var(--clover-control) + 2 * var(--clover-space-s) )}.clover-geomap :is(.maplibregl-ctrl-top-right,.maplibregl-ctrl-bottom-right){right:var(--clover-map-controls-inset)!important}.clover-geomap .maplibregl-ctrl-top-right{top:var(--clover-map-controls-inset)!important}.clover-geomap :is(.maplibregl-ctrl-bottom-left,.maplibregl-ctrl-bottom-right){bottom:var(--clover-map-controls-inset)!important}.clover-geomap .maplibregl-ctrl-bottom-left{left:var(--clover-map-controls-inset)!important}.clover-geomap :is(.maplibregl-ctrl-top-right,.maplibregl-ctrl-bottom-left,.maplibregl-ctrl-bottom-right)>.maplibregl-ctrl{float:none!important;margin:0!important}.clover-geomap .maplibregl-ctrl-group{display:flex;gap:var(--clover-space-s);border-radius:0!important;background:none!important;box-shadow:none!important}.clover-geomap .maplibregl-ctrl-group button{position:relative!important;display:flex!important;align-items:center;justify-content:center;box-sizing:border-box;width:var(--clover-control)!important;height:var(--clover-control)!important;border:0!important;border-radius:var(--clover-radius-pill, 2rem)!important;background-color:var(--clover-color-control, #1a1d1e)!important;background-image:none!important;color:var(--clover-color-control-glyph, #fff);cursor:pointer;transition:var(--clover-transition, all .2s cubic-bezier(.16, 1, .3, 1))}.clover-geomap .maplibregl-ctrl-group button:is(:hover,:focus-visible){background-color:var(--clover-color-accent, #0065c3)!important;box-shadow:none!important}:where([data-high-contrast]) .clover-geomap .maplibregl-ctrl-group button:is(:hover,:focus-visible){background-color:var(--clover-accent-fill)!important}:where([data-high-contrast]) .clover-geomap .maplibregl-ctrl-group button:hover:not(:focus-visible){outline:var(--clover-accent-ring-hover)!important;outline-offset:1px!important}.clover-geomap .maplibregl-ctrl-group button .maplibregl-ctrl-icon{display:none!important}.clover-geomap .clover-geomap-glyph{flex:none;width:1rem;height:1rem}.clover-geomap>div:first-child{container-type:size}.clover-geomap .maplibregl-ctrl-attrib.maplibregl-compact{display:flex;flex-direction:row-reverse;align-items:flex-end;gap:var(--clover-space-xs);box-sizing:border-box!important;min-height:0!important;max-width:calc(100cqi - 2 * var(--clover-map-controls-inset) - var(--clover-map-controls-start));margin:0!important;padding:0!important;border-radius:0!important;background:none!important;color:inherit}.clover-geomap .maplibregl-ctrl-attrib-button{position:relative!important;inset:auto!important;display:inline-flex!important;flex:none;align-items:center;justify-content:center;box-sizing:border-box;width:var(--clover-space-l)!important;height:var(--clover-space-l)!important;border:0!important;border-radius:var(--clover-radius-pill, 2rem)!important;background-color:var(--clover-color-control, #1a1d1e)!important;background-image:none!important;color:var(--clover-color-control-glyph, #fff);cursor:pointer;list-style:none;transition:var(--clover-transition, all .2s cubic-bezier(.16, 1, .3, 1))}.clover-geomap .maplibregl-ctrl-attrib-button::-webkit-details-marker{display:none}.clover-geomap .maplibregl-ctrl-attrib-button:before{content:none!important}.clover-geomap .maplibregl-ctrl-attrib-button .clover-geomap-glyph{width:var(--clover-text-s);height:var(--clover-text-s)}.clover-geomap :is(.maplibregl-ctrl-attrib-button:is(:hover,:focus-visible),.maplibregl-compact-show>.maplibregl-ctrl-attrib-button){background-color:var(--clover-color-accent, #0065c3)!important;box-shadow:none!important}:where([data-high-contrast]) .clover-geomap :is(.maplibregl-ctrl-attrib-button:is(:hover,:focus-visible),.maplibregl-compact-show>.maplibregl-ctrl-attrib-button){background-color:var(--clover-accent-fill)!important}:where([data-high-contrast]) .clover-geomap .maplibregl-ctrl-attrib-button:hover:not(:focus-visible){outline:var(--clover-accent-ring-hover)!important;outline-offset:1px!important}:where([data-high-contrast]) .clover-geomap .maplibregl-compact-show>.maplibregl-ctrl-attrib-button:not(:focus-visible){outline:var(--clover-accent-ring)!important;outline-offset:1px!important}.clover-geomap .maplibregl-compact-show>.maplibregl-ctrl-attrib-button>.clover-tip{opacity:0;visibility:hidden}.clover-geomap .maplibregl-compact-show .maplibregl-ctrl-attrib-inner{box-sizing:border-box;min-width:0;max-height:max(calc(100cqb - 2 * var(--clover-map-controls-inset) - var(--clover-map-controls-top)),calc(2lh + 2 * var(--clover-space-2xs)));overflow-y:auto;padding:var(--clover-space-2xs) var(--clover-space-xs);border-radius:var(--clover-radius, 3px);background-color:var(--clover-color-primary, #1a1d1e);color:var(--clover-color-secondary, #fff);font-size:var(--clover-text-s);line-height:inherit;text-align:end;overflow-wrap:anywhere}.clover-geomap .maplibregl-ctrl-attrib-inner a{color:inherit!important;text-decoration:underline!important}.clover-geomap .maplibregl-ctrl-top-right .clover-tip{top:calc(100% + var(--clover-space-xs));bottom:auto}.clover-geomap .maplibregl-ctrl-top-right .clover-tip:before{top:auto;bottom:100%}@media (forced-colors: active){.clover-geomap :is(.maplibregl-ctrl-group button,.maplibregl-ctrl-attrib-button){border:1px solid ButtonText!important}}@media (forced-colors: active){.clover-geomap>div:has(.maplibregl-canvas:focus-visible):after{box-shadow:none;outline:3px solid CanvasText;outline-offset:-3px}}.clover-geomap-popup .maplibregl-popup-content{padding:var(--clover-space-2xs) var(--clover-space-xs);border-radius:var(--clover-radius, 3px);background-color:var(--clover-color-primary, #1a1d1e)!important;box-shadow:none!important;color:var(--clover-color-secondary, #fff);font:inherit;font-size:var(--clover-text-s)}.clover-geomap-popup{pointer-events:none}.clover-geomap-popup .maplibregl-popup-tip{display:none!important}.clover-geomap-popup .maplibregl-popup-content{max-width:min(18rem,100cqi - 2 * var(--clover-space-xs))}.clover-geomap-popup-date{display:block;color:var(--clover-color-secondary-alt, #c1c8cd)}.clover-geomap-places :is(span+span,.clover-geomap-place-date){display:block;margin-block-start:var(--clover-space-3xs);color:var(--clover-color-primary-muted, #26292b);font-size:var(--clover-text-s)}}';
|
|
3
|
+
export {
|
|
4
|
+
__clover_sheet_map as default
|
|
5
|
+
};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
const __clover_sheet_media = '@layer clover{.clover-canvas-media{position:absolute;inset:0;z-index:1;pointer-events:none;container-type:size}.clover-canvas-media:has([aria-expanded=true],.clover-canvas-transport-mark-group:is(:hover,:focus-within)){z-index:4}.clover-canvas-captions{position:absolute;inset:0 0 max(var(--clover-canvas-controls-inset) + var(--clover-controls-shown) * (var(--clover-transport-room) - var(--clover-canvas-controls-inset)),var(--clover-transport-preview-top, 0px) + var(--clover-space-2xs));z-index:3;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;justify-content:safe flex-end;gap:var(--clover-space-2xs);padding:0 var(--clover-canvas-controls-inset);pointer-events:none;transition:bottom var(--clover-controls-timing)}.clover-canvas:has(.clover-canvas-transport-seek-area[data-tip-hidden]) .clover-canvas-captions{--clover-transport-preview-top: 0px}.clover-canvas-captions-cue{max-width:90%;padding:var(--clover-space-2xs) var(--clover-space-xs);border-radius:var(--clover-radius, 3px);background-color:var(--clover-player-caption-surface, rgb(0 0 0 / 85%));color:var(--clover-player-caption-text, #fff);text-shadow:var(--clover-player-caption-edge, none);font-size:var(--clover-text-s);line-height:1.35;text-align:center;text-wrap:balance;white-space:pre-line}.clover-canvas-captions-cue-label{display:block;font-size:var(--clover-text-s);font-weight:500}.clover-canvas-media>*{--clover-cue-size: var(--clover-text-s)}@container (min-width: 38.5rem){.clover-canvas-media>*{--clover-cue-size: 1rem}.clover-canvas-captions-cue{font-size:inherit}}@container (min-width: 44rem){.clover-canvas-media>*{--clover-cue-size: var(--clover-text-m)}.clover-canvas-captions-cue{font-size:var(--clover-text-m)}}@container (min-width: 47.5rem){.clover-canvas-media>*{--clover-cue-size: var(--clover-text-l)}.clover-canvas-captions-cue{font-size:var(--clover-text-l)}}.clover-canvas-transport{position:absolute;inset:auto 0 0;z-index:2;display:flex;flex-direction:column;padding:var(--clover-space-xl) var(--clover-canvas-controls-inset) var(--clover-canvas-controls-inset);--clover-controls-edge: 1;--clover-transport-thumb: 12px;--clover-transport-track: var(--clover-space-xs);-webkit-user-select:none;user-select:none;--clover-transport-menu-room: calc( 100cqb - var(--clover-canvas-controls-inset) - var(--clover-control) - var(--clover-space-s) - var(--clover-space-xs) )}.clover-canvas-transport:before{position:absolute;inset:0;z-index:-1;background:linear-gradient(to top,#000000c7,#0009 calc(100% - var(--clover-space-xl)),#0000);pointer-events:none;content:""}.clover-canvas-transport:has([aria-expanded=true],:focus-visible,>.clover-canvas-transport-seek-area:hover){z-index:4}.clover-canvas-transport-bar{display:flex;flex-wrap:wrap;align-items:center;gap:var(--clover-space-xs) var(--clover-space-s);min-width:0}.clover-canvas-transport-bar>*{flex-shrink:0}.clover-canvas-transport-bar>:is(:hover,:active,:focus-within){z-index:1}.clover-canvas-transport-bar>.clover-canvas-transport-status{display:flex;flex:1 1 0;align-items:center;gap:var(--clover-space-s);min-width:min-content}.clover-canvas-transport-end{display:flex;gap:var(--clover-space-s);margin-inline-start:auto}@container (max-width: 37.5rem){.clover-canvas-transport-bar:has([data-button=chapters])>.clover-canvas-transport-status{order:-1;flex-basis:100%}}@container (max-width: 28rem){.clover-canvas-transport-bar>.clover-canvas-transport-status{order:-1;flex-basis:100%}}.clover-canvas-transport-button svg{fill:currentColor;stroke:none}.clover-canvas-transport-button svg [stroke]{fill:none}.clover-canvas-transport-button:hover,.clover-canvas-transport-button:focus-visible{background-color:var(--clover-color-accent, #0065c3)}:where([data-high-contrast]) .clover-canvas-transport-button:is(:hover,:focus-visible){background-color:var(--clover-accent-fill)}:where([data-high-contrast]) .clover-canvas-transport-button:hover:not(:focus-visible){outline:var(--clover-accent-ring-hover);outline-offset:1px}button.clover-canvas-transport-button[aria-pressed=true]:after{content:"";position:absolute;inset-inline:var(--clover-space-s);bottom:var(--clover-space-2xs);border-bottom:2px solid;border-radius:1px}.clover-canvas-transport-button:focus-visible{outline:none;box-shadow:0 0 0 2px var(--clover-color-secondary, #fff),0 0 0 4px var(--clover-color-accent, #0065c3)}.clover-canvas-transport-seek-area{position:relative;display:flex;margin-bottom:var(--clover-space-xs);--clover-transport-gap: var(--clover-space-2xs)}.clover-canvas-transport-points,.clover-canvas-transport-marks{--clover-transport-mark: var(--clover-space-s);position:absolute;inset:0;pointer-events:none}.clover-canvas-transport-points{z-index:0}.clover-canvas-transport-seek{position:relative;z-index:1}.clover-canvas-transport-marks{z-index:2}.clover-canvas-transport-mark-point{position:absolute;top:calc(50% - var(--clover-transport-track) / 2 - var(--clover-space-s) - (var(--clover-transport-mark) + 2 * 3px) / 2);box-sizing:content-box;width:var(--clover-transport-mark);height:var(--clover-transport-mark);border:2px solid var(--clover-color-secondary, #fff);border-radius:50%;background-color:var(--clover-color-accent, #0065c3);box-shadow:0 0 0 1px var(--clover-color-primary, #1a1d1e);translate:-50% -50%}.clover-canvas-transport-mark-point:after{position:absolute;top:calc(100% + 3px);left:50%;width:3px;height:calc(var(--clover-space-s) + var(--clover-transport-track));translate:-50% 0;background-color:color-mix(in srgb,var(--clover-color-accent, #0065c3) 38.2%,transparent);-webkit-mask-image:linear-gradient(#000,#0000);mask-image:linear-gradient(#000,#0000);content:""}.clover-canvas-transport-mark-point[data-active=true]{box-shadow:0 0 0 2px var(--clover-color-accent, #0065c3),0 0 0 3px var(--clover-color-primary, #1a1d1e)}.clover-canvas-transport-mark-group{position:absolute;top:calc(50% - var(--clover-transport-track) / 2 - var(--clover-space-l));width:var(--clover-space-l);height:var(--clover-space-l);translate:-50% 0;pointer-events:var(--clover-controls-events, auto)}.clover-canvas-transport-mark{display:block;width:100%;height:100%;margin:0;padding:0;border:none;border-radius:50%;background:none;cursor:pointer}.clover-canvas-transport-mark:focus-visible{outline:none}.clover-canvas-transport-mark-group:is(:hover,:focus-within){z-index:1}.clover-canvas-transport-mark-group>.clover-tip.clover-canvas-transport-mark-tip{text-align:start;--clover-tip-x: clamp( var(--clover-space-xs) - var(--clover-mark-x, 50cqw), -50%, 100cqw - var(--clover-space-xs) - var(--clover-mark-x, 50cqw) - 100% );display:flex;flex-direction:column;max-width:min(18rem,100cqw - 2 * var(--clover-space-xs));max-height:calc(100cqh - var(--clover-canvas-controls-inset) - var(--clover-transport-bar-height, var(--clover-control)) - var(--clover-space-xs) - var(--clover-space-l) / 2 - var(--clover-transport-track) / 2 - var(--clover-space-l) - 3 * var(--clover-space-xs));transform:translate(calc(var(--clover-tip-x) + 50%))}.clover-canvas-transport-mark-group:focus-within:not([data-tip-hidden])>.clover-tip.clover-canvas-transport-mark-tip{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s}.clover-canvas:has(.clover-canvas-transport-marks){--clover-transport-marks-room: calc( 2 * var(--clover-space-s) + 2 * 3px - (var(--clover-space-l) - var(--clover-space-xs)) / 2 )}.clover-canvas-transport-mark-words{min-height:0;overflow-y:auto}.clover-canvas-transport-mark-tip{--clover-color-primary-muted: var(--clover-color-secondary-alt, #c1c8cd);color:var(--clover-color-secondary-alt, #c1c8cd)}.clover-canvas-transport-mark-group .clover-canvas-transport-mark-tip>.clover-steps{flex:none;margin-top:var(--clover-space-xs)}.clover-canvas-transport input[type=range]{appearance:none;-webkit-appearance:none;width:100%;height:var(--clover-space-l);margin:0;background:transparent;cursor:pointer;touch-action:none}.clover-canvas-transport input.clover-canvas-transport-volume{width:var(--clover-space-2xl)}@container (max-width: 28rem){.clover-canvas-transport input.clover-canvas-transport-volume{width:var(--clover-space-xl)}.clover-canvas-transport-bar,.clover-canvas-transport-end{column-gap:var(--clover-space-xs)}}.clover-canvas-transport input[type=range]::-webkit-slider-runnable-track{height:var(--clover-transport-track);border-radius:var(--clover-radius, 3px);background:linear-gradient(to right,var(--clover-color-accent, #0065c3) var(--clover-transport-progress, 0%),rgb(255 255 255 / 90%) var(--clover-transport-progress, 0%),rgb(255 255 255 / 90%) var(--clover-transport-loaded, 0%),var(--clover-player-track, rgb(255 255 255 / 65%)) var(--clover-transport-loaded, 0%));box-shadow:var(--clover-player-track-shadow, none)}.clover-canvas-transport input[type=range]::-moz-range-track{height:var(--clover-transport-track);border-radius:var(--clover-radius, 3px);background:linear-gradient(to right,var(--clover-color-accent, #0065c3) var(--clover-transport-progress, 0%),rgb(255 255 255 / 90%) var(--clover-transport-progress, 0%),rgb(255 255 255 / 90%) var(--clover-transport-loaded, 0%),var(--clover-player-track, rgb(255 255 255 / 65%)) var(--clover-transport-loaded, 0%));box-shadow:var(--clover-player-track-shadow, none)}.clover-canvas-transport input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:var(--clover-transport-thumb);height:var(--clover-transport-thumb);margin-top:calc((var(--clover-transport-track) - var(--clover-transport-thumb)) / 2);border:none;border-radius:var(--clover-radius-pill, 2rem);background-color:var(--clover-player-text, #fff)}.clover-canvas-transport input[type=range]::-moz-range-thumb{width:var(--clover-transport-thumb);height:var(--clover-transport-thumb);border:none;border-radius:var(--clover-radius-pill, 2rem);background-color:var(--clover-player-text, #fff)}.clover-canvas-transport input[type=range]:focus-visible{outline:none}.clover-canvas-transport input[type=range]:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 2px var(--clover-color-accent, #0065c3),0 0 0 4px var(--clover-player-text, #fff),0 0 0 6px #0009}.clover-canvas-transport input[type=range]:focus-visible::-moz-range-thumb{box-shadow:0 0 0 2px var(--clover-color-accent, #0065c3),0 0 0 4px var(--clover-player-text, #fff),0 0 0 6px #0009}.clover-canvas-transport-time{display:flex;align-items:center;gap:var(--clover-space-xs);color:var(--clover-player-text, #fff);font-size:var(--clover-text-s);font-variant-numeric:tabular-nums;white-space:nowrap;text-shadow:0 1px 2px rgb(0 0 0 / 90%)}.clover-canvas-transport-frames{position:relative;display:flex}button.clover-canvas-transport-time{margin:0;padding:var(--clover-space-2xs) var(--clover-space-xs);border:0;border-radius:var(--clover-radius, 3px);background:none;font:inherit;font-size:var(--clover-text-s);cursor:pointer}button.clover-canvas-transport-time:is(:hover,[aria-expanded=true]){background-color:#0006}button.clover-canvas-transport-time:focus-visible{outline:2px solid var(--clover-player-text, #fff)}.clover-canvas-transport-place{display:inline-grid;justify-items:end;font-variant-numeric:tabular-nums}.clover-canvas-transport-place>*{grid-area:1 / 1}.clover-canvas-transport-place>.clover-canvas-transport-place-room[hidden]{display:block;visibility:hidden}.clover-canvas-transport-frames>.clover-canvas-menu{right:0;bottom:calc(100% + var(--clover-space-s));left:auto;max-width:min(20rem,100cqi - 2 * var(--clover-canvas-controls-inset));max-height:min(24rem,var(--clover-transport-menu-room),var(--clover-transport-menu-above, 100cqb) - var(--clover-space-s) - var(--clover-space-xs));translate:var(--clover-transport-menu-shift, 0px) 0}.clover-canvas-transport-menu{position:relative;display:flex}.clover-canvas-transport-options{position:absolute;right:0;bottom:calc(100% + var(--clover-space-s));display:flex;flex-direction:column;box-sizing:border-box;min-width:min(11rem,100cqi - 2 * var(--clover-canvas-controls-inset));max-width:calc(100cqi - 2 * var(--clover-canvas-controls-inset));max-height:min(16rem,var(--clover-transport-menu-room),var(--clover-transport-menu-above, 100cqb) - var(--clover-space-s) - var(--clover-space-xs));translate:var(--clover-transport-menu-shift, 0px) 0;margin:0;padding:var(--clover-space-xs);border:none;border-radius:var(--clover-radius, 3px);background-color:var(--clover-player-menu-surface, #151718);color:var(--clover-player-text, #fff);overflow-y:auto}.clover-canvas-transport-option{display:flex;flex:none;align-items:center;gap:var(--clover-space-xs);min-height:var(--clover-space-l);padding:var(--clover-space-xs) var(--clover-space-s);border-radius:var(--clover-radius, 3px);font-size:var(--clover-text-s);cursor:pointer}.clover-canvas-transport-option:hover{background-color:var(--clover-player-menu-hover, #26292b)}.clover-canvas-transport-option:has(input:checked){background-color:color-mix(in srgb,var(--clover-color-accent, #0065c3) 24%,transparent);font-weight:600}.clover-canvas-transport-option:has(input:focus-visible){box-shadow:inset 0 0 0 2px var(--clover-player-text, #fff)}.clover-canvas-transport-code{flex:none;min-width:var(--clover-space-l);color:color-mix(in srgb,currentColor 72%,transparent);font-size:var(--clover-text-xs);font-weight:600;line-height:1}.clover-canvas-transport-options:has(.clover-canvas-transport-code),.clover-canvas-transport-menu:has([data-button=chapters]) .clover-canvas-transport-options{min-width:min(16rem,100cqi - 2 * var(--clover-canvas-controls-inset))}.clover-canvas-transport-option:has(>.clover-entry-thumbnail){display:grid;grid-template-columns:auto minmax(0,1fr);justify-items:start;gap:var(--clover-space-2xs) var(--clover-space-s);padding-block-end:var(--clover-space-s)}.clover-canvas-transport-options.clover-canvas-menu{border-radius:var(--clover-radius, 6px);background-color:var(--clover-color-secondary, #fff);color:var(--clover-color-primary, #1a1d1e)}.clover-canvas-menu>.clover-canvas-transport-option{align-items:baseline;gap:var(--clover-space-s);font-size:inherit}.clover-canvas-menu>.clover-canvas-transport-option:hover{background-color:var(--clover-color-secondary-muted, #e6e8eb)}@media (forced-colors: none){.clover-canvas-menu>.clover-canvas-transport-option:has(input:checked){background-color:color-mix(in srgb,var(--clover-color-accent, #0065c3) 8%,transparent)}}.clover-canvas-menu>.clover-canvas-transport-option:has(input:focus-visible){box-shadow:none;outline:2px solid var(--clover-color-accent, #0065c3);outline-offset:-2px}.clover-canvas-transport-option input{position:absolute;opacity:0;pointer-events:none}@media (forced-colors: active){.clover-canvas-transport button.clover-canvas-transport-button{border:1px solid ButtonText}.clover-canvas-transport input[type=range]{forced-color-adjust:none}.clover-canvas-transport input[type=range]::-webkit-slider-runnable-track{border:1px solid CanvasText;background:linear-gradient(to right,Highlight var(--clover-transport-progress, 0%),Canvas var(--clover-transport-progress, 0%));box-shadow:none}.clover-canvas-transport input[type=range]::-moz-range-track{border:1px solid CanvasText;background:linear-gradient(to right,Highlight var(--clover-transport-progress, 0%),Canvas var(--clover-transport-progress, 0%));box-shadow:none}.clover-canvas-transport input[type=range]::-webkit-slider-thumb,.clover-canvas-transport input[type=range]:focus-visible::-webkit-slider-thumb{background-color:CanvasText;box-shadow:0 0 0 2px Canvas}.clover-canvas-transport input[type=range]::-moz-range-thumb,.clover-canvas-transport input[type=range]:focus-visible::-moz-range-thumb{background-color:CanvasText;box-shadow:0 0 0 2px Canvas}.clover-canvas-transport input[type=range]:focus-visible{outline:2px solid CanvasText;outline-offset:2px}.clover-canvas-transport-button:focus-visible{outline:3px solid CanvasText;outline-offset:2px;box-shadow:none}.clover-canvas-transport-button:is([data-active],[aria-pressed=true]),.clover-canvas-transport-option:has(input:checked){background-color:Highlight;color:HighlightText}.clover-captions-icon[data-on] .clover-captions-icon-letters{stroke:ButtonFace}.clover-canvas-transport-button[data-active] .clover-captions-icon[data-on] .clover-captions-icon-letters{stroke:Highlight}}@media (prefers-reduced-motion: reduce){.clover-canvas-transport,.clover-canvas-transport-button,.clover-canvas-transport-button svg{transition:none}}.clover-canvas-transport-seek[data-gaps]{--clover-transport-disk: calc(var(--clover-transport-thumb) / 2 + 1px);-webkit-mask-image:radial-gradient(circle at calc(var(--clover-transport-thumb) / 2 + (100% - var(--clover-transport-thumb)) * var(--clover-transport-at, 0)) 50%,#000 var(--clover-transport-disk),transparent var(--clover-transport-disk)),var(--clover-transport-gaps);mask-image:radial-gradient(circle at calc(var(--clover-transport-thumb) / 2 + (100% - var(--clover-transport-thumb)) * var(--clover-transport-at, 0)) 50%,#000 var(--clover-transport-disk),transparent var(--clover-transport-disk)),var(--clover-transport-gaps)}.clover-canvas-transport-seek[data-gaps]:focus-visible{--clover-transport-disk: calc(var(--clover-transport-thumb) / 2 + 6px)}.clover-canvas-transport-chapter-span{position:absolute;z-index:1;top:50%;box-sizing:border-box;border-inline:calc(var(--clover-transport-gap) / 2) solid transparent;background-clip:padding-box;height:var(--clover-space-s);translate:0 -50%;border-radius:var(--clover-radius, 3px);background-color:var(--clover-player-text, #fff);opacity:.5;pointer-events:none}.clover-canvas-transport-seek-area>.clover-tip{left:var(--clover-transport-preview, 50%)}.clover-canvas-transport-seek-area>.clover-tip:has(>.clover-tip-image){padding:var(--clover-space-s)}.clover-canvas-transport-seek-area>.clover-tip .clover-tip-image{width:var(--clover-picture);max-height:none;margin-block-end:var(--clover-space-xs)}.clover-canvas-transport-seek-area:is(:hover,:has(>input:focus-visible)):not([data-tip-hidden])>.clover-tip{opacity:1;visibility:visible;pointer-events:auto;transition-delay:0s}@media (forced-colors: active){.clover-canvas-transport-mark-point:after{position:absolute;top:calc(100% + 3px);left:50%;width:3px;height:calc(var(--clover-space-s) + var(--clover-transport-track));translate:-50% 0;background-color:color-mix(in srgb,var(--clover-color-accent, #0065c3) 38.2%,transparent);content:""}.clover-canvas-transport-mark-point[data-active=true]{outline:2px solid Highlight;outline-offset:1px}.clover-canvas-transport-chapter-span{background-color:Highlight;opacity:1}}.clover-canvas-transport-status>.clover-canvas-transport-chapter{flex:1 1 auto;overflow:hidden;width:0;min-width:0;color:color-mix(in srgb,var(--clover-player-text, #fff) 85%,transparent);font-size:var(--clover-text-s);text-overflow:ellipsis;white-space:nowrap;text-shadow:0 1px 2px rgb(0 0 0 / 90%)}.clover-canvas[data-player]{--clover-controls-shown: 1;--clover-controls-events: auto}.clover-canvas[data-player]>.clover-canvas-scrim{display:none}.clover-canvas[data-player]>.clover-canvas-controls>*{opacity:1;translate:none}.clover-canvas[data-player]:has(>.clover-canvas-viewport:focus-visible)>.clover-canvas-media:after{content:"";position:absolute;inset:0;z-index:3;pointer-events:none;box-shadow:inset 0 0 0 2px var(--clover-color-primary, #1a1d1e),inset 0 0 0 5px var(--clover-color-accent, #0065c3),inset 0 0 0 7px var(--clover-color-secondary, #fff)}.clover-canvas-player{--clover-player-pad: var(--clover-space-l);--clover-player-text: var(--clover-color-control-glyph, #fff);--clover-player-muted: color-mix( in srgb, var(--clover-player-text) 80%, transparent );--clover-player-dark: var(--clover-color-control, #1a1d1e);--clover-player-top: calc( var(--clover-canvas-controls-inset, var(--clover-space-l)) + var(--clover-control) + var(--clover-space-s) );--clover-player-bottom: calc( var(--clover-transport-room, 0px) + 2.7 * var(--clover-cue-size, var(--clover-text-s)) + 2 * var(--clover-space-2xs) + var(--clover-space-s) );--clover-player-art-height: max( 0px, calc(100cqb - var(--clover-player-top) - var(--clover-player-bottom)) );position:absolute;inset:0;isolation:isolate;box-sizing:border-box;display:flex;align-items:center;justify-content:center;gap:var(--clover-space-l);padding:var(--clover-player-top) var(--clover-player-pad) var(--clover-player-bottom);color:var(--clover-player-text)}.clover-canvas-player-ground{--clover-player-depth: color-mix( in srgb, var(--clover-player-dark) 82%, var(--clover-player-text) );--clover-player-glow: color-mix( in srgb, var(--clover-player-text) 61.8%, #0000 );--clover-player-shade: color-mix( in srgb, var(--clover-player-dark) 61.8%, #0000 );position:absolute;inset:0;z-index:-1;overflow:hidden;isolation:isolate;background-color:color-mix(in srgb,var(--clover-color-accent, #0065c3) 23.6%,var(--clover-player-dark))}.clover-canvas-player-ground>img{position:absolute;inset:-24%;z-index:0;width:148%;height:148%;object-fit:cover;filter:blur(var(--clover-space-2xl)) saturate(2.618)}.clover-canvas-player-ground[data-art]:before{content:"";position:absolute;inset:0;z-index:1;background:radial-gradient(61.8% 85% at 23.6% 23.6%,var(--clover-player-glow),#0000 70%),radial-gradient(50% 70% at 85% 76.4%,var(--clover-player-glow),#0000 70%);mix-blend-mode:soft-light}.clover-canvas-player-ground[data-art]:after{content:"";position:absolute;inset:0;z-index:2;background:radial-gradient(61.8% 76.4% at 0% 100%,var(--clover-player-shade),#0000 100%),radial-gradient(50% 61.8% at 100% 0%,var(--clover-player-shade),#0000 100%),var(--clover-player-depth);mix-blend-mode:multiply}.clover-canvas-player>.clover-canvas-transport:before{background:linear-gradient(to top,color-mix(in srgb,var(--clover-player-dark) 38.2%,#0000),#0000)}.clover-canvas-player-art{flex:none;display:grid;place-items:center;overflow:hidden;width:min(calc(var(--clover-player-art-height) * var(--clover-player-art-ratio, 1)),40cqi,12rem);aspect-ratio:var(--clover-player-art-ratio, 1);border-radius:calc(2 * var(--clover-radius, 3px));background-color:color-mix(in srgb,var(--clover-color-accent, #0065c3) 40%,var(--clover-player-dark));box-shadow:0 .618rem 1.618rem color-mix(in srgb,var(--clover-player-dark) 45%,#0000)}.clover-canvas-player-art>img{display:block;width:100%;height:100%;object-fit:cover;opacity:0}.clover-canvas-player-art[data-loaded]>img{opacity:1}.clover-canvas-player-note{width:38.2%;height:38.2%;fill:currentColor;opacity:.85}.clover-canvas-player-head{flex:0 1 auto;max-width:38rem;min-width:0}.clover-canvas-player-title,.clover-canvas-player-part-of{margin:0;overflow-wrap:break-word}.clover-canvas-player-title{font-size:inherit;font-weight:700;line-height:1.25;text-wrap:balance}.clover-canvas-player-part-of{margin-top:var(--clover-space-xs);color:var(--clover-player-muted);font-size:var(--clover-text-s);line-height:1.35}.clover-canvas-player-cues{display:contents}@container (max-width: 30rem){.clover-canvas-player{--clover-player-pad: var(--clover-space-m)}}@container (max-height: 24rem){.clover-canvas-player{--clover-player-room: calc( 100cqb - 2 * var(--clover-canvas-controls-inset) );--clover-player-art-height: clamp( var(--clover-player-art-least, 7.416rem), var(--clover-player-room), 12rem );--clover-player-centering: max( 0px, (var(--clover-player-room) - var(--clover-player-art-height)) / 2 );display:grid;grid-template-columns:auto minmax(0,1fr);grid-template-rows:auto 1fr auto auto;align-content:end;gap:0 var(--clover-player-pad);padding:calc(var(--clover-canvas-controls-inset) + var(--clover-player-centering)) var(--clover-canvas-controls-inset)}.clover-canvas-player-art{grid-row:1 / -1;align-self:end;width:min(calc(var(--clover-player-art-height) * var(--clover-player-art-ratio, 1)),38.2cqi,12rem)}.clover-canvas-player-head,.clover-canvas-player-cues,.clover-canvas-player .clover-canvas-transport-seek-area,.clover-canvas-player .clover-canvas-transport-bar{grid-column:2}.clover-canvas-player-head{grid-row:1;max-width:none;margin-inline-end:calc(var(--clover-canvas-controls-width, var(--clover-control)) + var(--clover-space-s))}.clover-canvas-player-cues{grid-row:2;z-index:3;display:flex;flex-direction:column;justify-content:flex-end;gap:var(--clover-space-2xs);padding:var(--clover-space-xs) 0 calc(var(--clover-space-2xs) + var(--clover-transport-marks-room, 0px));pointer-events:none}.clover-canvas-player-cues>.clover-canvas-captions{position:static;align-items:flex-start;padding:0;transition:none}.clover-canvas-player-cues .clover-canvas-captions-cue{max-width:100%;text-align:start}.clover-canvas-player>.clover-canvas-transport{display:contents}.clover-canvas-player>.clover-canvas-transport:before{display:none}.clover-canvas-player .clover-canvas-transport-seek-area{grid-row:3;z-index:2}.clover-canvas-player .clover-canvas-transport-bar{grid-row:4;z-index:2}.clover-canvas-player :is(.clover-canvas-transport-seek-area:is(:hover,:focus-within),.clover-canvas-transport-bar:has([aria-expanded=true],:focus-visible)){z-index:4}.clover-canvas-player-title,.clover-canvas-player-part-of{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden}.clover-canvas-player-part-of{-webkit-line-clamp:1}}@container (max-height: 24rem) and (max-width: 37.5rem){.clover-canvas-player{--clover-player-art-height: var(--clover-space-2xl);--clover-player-centering: 0px}.clover-canvas-player-art{grid-row:1;align-self:center}.clover-canvas-player-head{align-self:center}.clover-canvas-player-cues,.clover-canvas-player .clover-canvas-transport-seek-area,.clover-canvas-player .clover-canvas-transport-bar{grid-column:1 / -1}}@container (max-height: 15.236rem){.clover-canvas-player:has(>.clover-canvas-player-cues>.clover-canvas-captions)>.clover-canvas-player-head{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}}@container (max-height: 15.236rem) and (min-width: 38.5rem){.clover-canvas-player-cues .clover-canvas-captions-cue{font-size:var(--clover-text-s)}}@container (max-height: 15.236rem) and (min-width: 44rem){.clover-canvas-player-cues .clover-canvas-captions-cue{font-size:inherit}}@container (max-height: 15.236rem) and (min-width: 47.5rem){.clover-canvas-player-cues .clover-canvas-captions-cue{font-size:var(--clover-text-m)}}@container (max-height: 15.236rem) and (max-width: 37.5rem){.clover-canvas-player:has(>.clover-canvas-player-cues>.clover-canvas-captions)>.clover-canvas-player-art{position:absolute;width:1px;height:1px;margin:-1px;overflow:hidden;clip-path:inset(50%)}}@media (prefers-reduced-motion: no-preference){.clover-canvas-player-art>img{transition:opacity 382ms ease}}@media (forced-colors: active){.clover-canvas-player-ground{display:none}.clover-canvas-player{color:CanvasText}}}';
|
|
3
|
+
export {
|
|
4
|
+
__clover_sheet_media as default
|
|
5
|
+
};
|