@nulib/clover 4.1.0 → 4.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (345) hide show
  1. package/README.md +1 -1
  2. package/dist/components/Body/useControlsVisibility.mjs +35 -13
  3. package/dist/components/Canvas/CanvasView.mjs +33 -4
  4. package/dist/components/Canvas/ChaptersMenu.mjs +6 -1
  5. package/dist/components/Canvas/ControlMenu.mjs +9 -2
  6. package/dist/components/Canvas/Controls.mjs +17 -4
  7. package/dist/components/Canvas/FrameAnimation.mjs +3 -0
  8. package/dist/components/Canvas/ImageControls.mjs +8 -3
  9. package/dist/components/Canvas/Placeholder.mjs +5 -2
  10. package/dist/components/Canvas/RowFits.mjs +3 -1
  11. package/dist/components/Canvas/media/MediaBody.mjs +3 -0
  12. package/dist/components/Canvas/media/Player.mjs +3 -0
  13. package/dist/components/Canvas/media/Transport.mjs +3 -0
  14. package/dist/components/Canvas/media/useMediaElement.mjs +32 -9
  15. package/dist/components/Items/masonry.mjs +2 -0
  16. package/dist/components/Map/MapView.mjs +42 -2
  17. package/dist/components/Map/maplibre-sheet.mjs +5 -0
  18. package/dist/components/Map/sheet.mjs +19 -0
  19. package/dist/components/Map/worker.mjs +28 -1
  20. package/dist/components/Panel/Panel.mjs +47 -59
  21. package/dist/components/Panel/sections.mjs +62 -0
  22. package/dist/components/Scene/SceneView.mjs +3 -0
  23. package/dist/core/content-state.mjs +1 -11
  24. package/dist/core/load.mjs +9 -1
  25. package/dist/core/presentation.mjs +4 -5
  26. package/dist/core/sanitize.mjs +15 -3
  27. package/dist/core/svg-shape.mjs +2 -1
  28. package/dist/core/thumbnail.mjs +15 -4
  29. package/dist/core/trusted.mjs +26 -0
  30. package/dist/core/vtt.mjs +20 -9
  31. package/dist/index.d.mts +269 -6
  32. package/dist/index.mjs +13 -0
  33. package/dist/lib/pointer.mjs +1 -1
  34. package/dist/lib/renderer/CanvasRenderer.mjs +48 -7
  35. package/dist/lib/renderer/camera/CameraAnimator.mjs +39 -20
  36. package/dist/lib/renderer/input/GestureController.mjs +15 -5
  37. package/dist/map/index.d.mts +6 -1
  38. package/dist/styles/collection-select.css +1 -0
  39. package/dist/styles/core.css +1 -0
  40. package/dist/styles/default.css +1 -0
  41. package/dist/styles/items.css +1 -0
  42. package/dist/styles/map.css +1 -0
  43. package/dist/styles/media.css +1 -0
  44. package/dist/styles/panel.css +1 -0
  45. package/dist/styles/scene.css +1 -0
  46. package/dist/styles/split.css +1 -0
  47. package/dist/styles.css +1 -1
  48. package/dist/templates/default/Default.mjs +7 -0
  49. package/dist/templates/document/Document.mjs +22 -3
  50. package/dist/templates/document/Sheets.mjs +2 -0
  51. package/dist/templates/gallery/Gallery.mjs +7 -1
  52. package/dist/templates/index.d.mts +167 -6
  53. package/dist/templates/shared/Lightbox.mjs +50 -3
  54. package/dist/templates/shared/LightboxView.mjs +8 -1
  55. package/dist/templates/shared/PanelPane.mjs +13 -1
  56. package/dist/templates.css +1 -1
  57. package/dist/ui/Button.mjs +3 -1
  58. package/dist/ui/ControlCluster.mjs +6 -3
  59. package/dist/ui/Markup.mjs +8 -7
  60. package/dist/ui/Tip.mjs +6 -1
  61. package/dist/ui/adoptSheet.mjs +19 -0
  62. package/dist/ui/sheets/map.mjs +5 -0
  63. package/dist/ui/sheets/media.mjs +5 -0
  64. package/dist/ui/sheets/scene.mjs +5 -0
  65. package/dist/web-components/{About-DvyvVUK5.mjs → About-uNCjvWgs.mjs} +1 -1
  66. package/dist/web-components/{AnnotationItems-BpRcSrOM.mjs → AnnotationItems-JwlcCvPo.mjs} +1 -1
  67. package/dist/web-components/{AnnotationMenu-BDPec3iI.mjs → AnnotationMenu-BWyKEyvW.mjs} +1 -1
  68. package/dist/web-components/{AnnotationState-Chs_37Kk.mjs → AnnotationState-Bhqs75Br.mjs} +1 -1
  69. package/dist/web-components/{Annotations-CLPEq7Ro.mjs → Annotations-C7y0N8Lj.mjs} +1 -1
  70. package/dist/web-components/{Annotations-6E-oD_wg.mjs → Annotations-ZwcRh2UE.mjs} +2 -2
  71. package/dist/web-components/{Body-Ct61yxI7.mjs → Body-DyrvRDkt.mjs} +1 -1
  72. package/dist/web-components/{BodyAlert-C_Qh3Up_.mjs → BodyAlert-XV88XjL8.mjs} +1 -1
  73. package/dist/web-components/Button-BIaw5k1q.mjs +1 -0
  74. package/dist/web-components/{Camera-BPyLzZjP.mjs → Camera-7SlnmGtb.mjs} +1 -1
  75. package/dist/web-components/{Canvas2DBackend-8wFavYdl.mjs → Canvas2DBackend-DBGZRGid.mjs} +1 -1
  76. package/dist/web-components/CanvasView-CmDxczm9.mjs +2 -0
  77. package/dist/web-components/{CaptionDetails-DuwS-grE.mjs → CaptionDetails-Bxz8AXMz.mjs} +1 -1
  78. package/dist/web-components/ChaptersMenu-CMQiBqvx.mjs +1 -0
  79. package/dist/web-components/{Chevron-Cyr_cc9X.mjs → Chevron-B3XaClVT.mjs} +1 -1
  80. package/dist/web-components/{ChoiceMenu-ConzybVH.mjs → ChoiceMenu-pugo5zxI.mjs} +1 -1
  81. package/dist/web-components/{Collection-CLayN8sv.mjs → Collection-Ch_FeSKp.mjs} +1 -1
  82. package/dist/web-components/{CollectionSelect-D2d8dGJ4.mjs → CollectionSelect-2jDEkOcK.mjs} +1 -1
  83. package/dist/web-components/{Connected-CBQ6xyhr.mjs → Connected-3hnIPSWM.mjs} +1 -1
  84. package/dist/web-components/{Connected-DMXG3imZ.mjs → Connected-Bne3I5E1.mjs} +1 -1
  85. package/dist/web-components/{Connected-pyd0EBD3.mjs → Connected-DuANHN93.mjs} +1 -1
  86. package/dist/web-components/{Contents-tCMXBYDK.mjs → Contents-DIQrin_-.mjs} +1 -1
  87. package/dist/web-components/ControlMenu-BydnCTTQ.mjs +1 -0
  88. package/dist/web-components/ControlsFade-CleBsk-W.mjs +1 -0
  89. package/dist/web-components/CountMenu-CReBYVwu.mjs +1 -0
  90. package/dist/web-components/Cue-2zGQuUOC.mjs +1 -0
  91. package/dist/web-components/Document-pjc2qOX4.mjs +1 -0
  92. package/dist/web-components/{DomLayers-BxPU05-D.mjs → DomLayers-D9X_FPto.mjs} +1 -1
  93. package/dist/web-components/{Download-Bku9Vptk.mjs → Download-B8MpVqgk.mjs} +1 -1
  94. package/dist/web-components/{EntryBodies-77vDudCb.mjs → EntryBodies-DdpRfU5U.mjs} +1 -1
  95. package/dist/web-components/{EntryThumbnail-BxQWKW6e.mjs → EntryThumbnail-DM7Zjj1z.mjs} +1 -1
  96. package/dist/web-components/{FieldPill-nFGsaru9.mjs → FieldPill-BAql8_6s.mjs} +1 -1
  97. package/dist/web-components/{FrameAnimation-BvKiSXcm.mjs → FrameAnimation-Dj46RxuL.mjs} +1 -1
  98. package/dist/web-components/Gallery-B9FNA02Z.mjs +1 -0
  99. package/dist/web-components/{HideToggle-TEhY4TS4.mjs → HideToggle-duXvDvDw.mjs} +1 -1
  100. package/dist/web-components/ImageControls-DODKjC0d.mjs +1 -0
  101. package/dist/web-components/{Items-CudZ4Lnb.mjs → Items-BHTQJU7T.mjs} +1 -1
  102. package/dist/web-components/{Label-f07N5Fld.mjs → Label-D4dlrtpH.mjs} +1 -1
  103. package/dist/web-components/{LanguageChoice-B5VM21DV.mjs → LanguageChoice-DR3X-dtJ.mjs} +1 -1
  104. package/dist/web-components/LightboxView-D-aBaKfB.mjs +1 -0
  105. package/dist/web-components/{ListEnd-M39M62Cl.mjs → ListEnd-CQ4vX-NW.mjs} +1 -1
  106. package/dist/web-components/{Loaded-oGFyBuos.mjs → Loaded-DsNSPXWf.mjs} +1 -1
  107. package/dist/web-components/{LoadedCanvas-IvpSzPO6.mjs → LoadedCanvas-Cq7_O2bw.mjs} +1 -1
  108. package/dist/web-components/LoadedMap-0_prxuA4.mjs +1 -0
  109. package/dist/web-components/{Loading-YxuKrDAM.mjs → Loading-4PmhMeZ-.mjs} +1 -1
  110. package/dist/web-components/{Map-Cw9j3gi3.mjs → Map-B29Ba50b.mjs} +1 -1
  111. package/dist/web-components/MapView-nHeg39Kz.mjs +3 -0
  112. package/dist/web-components/Markup-BZ7l5GbG.mjs +2 -0
  113. package/dist/web-components/MediaBody-DH-rr_0N.mjs +1 -0
  114. package/dist/web-components/{MediaBody-JnKnoIqY.mjs → MediaBody-eSThjFzH.mjs} +1 -1
  115. package/dist/web-components/{NavDate-BCCOyycx.mjs → NavDate-0MsHRjBW.mjs} +1 -1
  116. package/dist/web-components/{Navigator-Bx4zS0Yr.mjs → Navigator-qJ79A8Nk.mjs} +1 -1
  117. package/dist/web-components/{Pager-B9GvQ64b.mjs → Pager-SPd_u0qz.mjs} +1 -1
  118. package/dist/web-components/{PagerLayout-BF33VZL_.mjs → PagerLayout-CkSwDAnp.mjs} +1 -1
  119. package/dist/web-components/Panel-C8r3EsWn.mjs +1 -0
  120. package/dist/web-components/PanelPart-BA1NoeLA.mjs +1 -0
  121. package/dist/web-components/{PanelToggle-bPcIULGZ.mjs → PanelToggle-CrKP8BqE.mjs} +1 -1
  122. package/dist/web-components/{PartOfManifest-HLg-r00O.mjs → PartOfManifest-BdDSxK4k.mjs} +1 -1
  123. package/dist/web-components/{Pending-BxGjjnqq.mjs → Pending-CmgVU1kF.mjs} +1 -1
  124. package/dist/web-components/{PlaceBox-D-Zhe9-U.mjs → PlaceBox-D7HLNGxE.mjs} +1 -1
  125. package/dist/web-components/Placeholder-DVAlXejQ.mjs +1 -0
  126. package/dist/web-components/{Position-TYnzcm8e.mjs → Position-C6KUAceQ.mjs} +1 -1
  127. package/dist/web-components/{Primitives-C6VJXxZD.mjs → Primitives-ClQVjY6x.mjs} +1 -1
  128. package/dist/web-components/{Provider-DyB0wpeO.mjs → Provider-C0IUdU6v.mjs} +1 -1
  129. package/dist/web-components/{ReadMore-De_0T7lc.mjs → ReadMore-BiEJA4yO.mjs} +1 -1
  130. package/dist/web-components/Root-Drt5N4_s.mjs +1 -0
  131. package/dist/web-components/Scene-C7t16NjC.mjs +1 -0
  132. package/dist/web-components/SceneView-BHg37-rs.mjs +1 -0
  133. package/dist/web-components/{Search-DgT8OPsK.mjs → Search-Bpd_lGzH.mjs} +1 -1
  134. package/dist/web-components/{Sections-d1acn7qm.mjs → Sections-D_bS5IQH.mjs} +1 -1
  135. package/dist/web-components/{StandaloneItems-DUb4YKCB.mjs → StandaloneItems-YV9O9M8F.mjs} +1 -1
  136. package/dist/web-components/{Status-CcU3u6P4.mjs → Status-BCG7AN9B.mjs} +1 -1
  137. package/dist/web-components/{Steps-nlSCzbDQ.mjs → Steps-Dnn8Ajqf.mjs} +1 -1
  138. package/dist/web-components/TargetItems-xxbtePln.mjs +1 -0
  139. package/dist/web-components/Timeline-Danuk_Nn.mjs +1 -0
  140. package/dist/web-components/Tip-DPFWlNLu.mjs +1 -0
  141. package/dist/web-components/{Transcript-bSA3cx_K.mjs → Transcript-C-_DbUO5.mjs} +1 -1
  142. package/dist/web-components/{Transport-DjOYI-fR.mjs → Transport-BKona8RD.mjs} +1 -1
  143. package/dist/web-components/Transport-Bonmu77-.mjs +1 -0
  144. package/dist/web-components/{annotation-collection-D8emkElk.mjs → annotation-collection-nmxzo_hO.mjs} +1 -1
  145. package/dist/web-components/{annotation-name-DbWjhgra.mjs → annotation-name-DoUUo-8D.mjs} +1 -1
  146. package/dist/web-components/{annotations-content-Bg6aVAGC.mjs → annotations-content-Cl1upbdd.mjs} +1 -1
  147. package/dist/web-components/{body-Ct8dmQdW.mjs → body-DC8Oq8rY.mjs} +1 -1
  148. package/dist/web-components/{canvas-goEZLqEd.mjs → canvas-gzoTnBxw.mjs} +1 -1
  149. package/dist/web-components/{cloverEngine-Df7cMwOP.mjs → cloverEngine-CFL1Bd7n.mjs} +1 -1
  150. package/dist/web-components/{content-state-reader-CNmBpG1L.mjs → content-state-reader-DYbmXxCp.mjs} +1 -1
  151. package/dist/web-components/controlGlyphs-d7KUIUwi.mjs +1 -0
  152. package/dist/web-components/{controls-BZr16sYQ.mjs → controls-VC9D1mwr.mjs} +1 -1
  153. package/dist/web-components/custom-elements.json +41 -3
  154. package/dist/web-components/{downloads-EjJ6Hpip.mjs → downloads-D2cnWDbs.mjs} +1 -1
  155. package/dist/web-components/{dragToClose-X9NbZOhA.mjs → dragToClose-CzYeh_12.mjs} +1 -1
  156. package/dist/web-components/{engine-DMoc0tff.mjs → engine-Dcfyp2DV.mjs} +1 -1
  157. package/dist/web-components/{engines-BmB81VXR.mjs → engines-BMr7naGM.mjs} +1 -1
  158. package/dist/web-components/{fetchManifest-CwQC6cCh.mjs → fetchManifest-DxptUh4u.mjs} +1 -1
  159. package/dist/web-components/{fromManifest-DrAmY1lB.mjs → fromManifest-BpPFLVyZ.mjs} +1 -1
  160. package/dist/web-components/{glyphs-BFK_hvJJ.mjs → glyphs-BCnJl8py.mjs} +1 -1
  161. package/dist/web-components/hooks-Dz_5UXXp.mjs +1 -0
  162. package/dist/web-components/{image-layers-D2nQC4R-.mjs → image-layers-BPnq7jk1.mjs} +1 -1
  163. package/dist/web-components/{imageService-iFElsopt.mjs → imageService-DFPkPNfe.mjs} +1 -1
  164. package/dist/web-components/index-ClM6Kq8w.mjs +1 -0
  165. package/dist/web-components/index.d.mts +5 -3
  166. package/dist/web-components/index.mjs +1 -1
  167. package/dist/web-components/items-BHporT5i.mjs +1 -0
  168. package/dist/web-components/{items-BnEnc5ot.mjs → items-D03KhDg6.mjs} +1 -1
  169. package/dist/web-components/label-r0ki6r1U.mjs +1 -0
  170. package/dist/web-components/{layout-Djwu8f4R.mjs → layout-DVa_DnGH.mjs} +1 -1
  171. package/dist/web-components/{link-0lUlTZlw.mjs → link-DxXxMXiw.mjs} +1 -1
  172. package/dist/web-components/logo-Br42Vlsk.mjs +1 -0
  173. package/dist/web-components/maplibre-sheet-CfiZ6JFk.mjs +1 -0
  174. package/dist/web-components/masonry-BZCdA3bV.mjs +1 -0
  175. package/dist/web-components/{models-BF2pqufA.mjs → models-pO77sm3z.mjs} +1 -1
  176. package/dist/web-components/{nodes-ChQRLDGU.mjs → nodes-CmL3eoRE.mjs} +1 -1
  177. package/dist/web-components/{overlayImage-MKrcgDep.mjs → overlayImage-DFGetjMh.mjs} +1 -1
  178. package/dist/web-components/{panel-C13V6w6E.mjs → panel-B1vzUm6_.mjs} +1 -1
  179. package/dist/web-components/part-DmRBh4pf.mjs +1 -0
  180. package/dist/web-components/{playerSurface-DG1XipTq.mjs → playerSurface-CQ1wrIAQ.mjs} +1 -1
  181. package/dist/web-components/pointer-DWnCT3D3.mjs +1 -0
  182. package/dist/web-components/{provider-DiUkZYiW.mjs → provider-U7xzX_0T.mjs} +1 -1
  183. package/dist/web-components/{range-regions-CqGjyM76.mjs → range-regions-Di_lmVqZ.mjs} +1 -1
  184. package/dist/web-components/{read-more-D8RJYdtQ.mjs → read-more-BtA1sriO.mjs} +1 -1
  185. package/dist/web-components/{readingLanguages-BWOLZK2k.mjs → readingLanguages-Ptho-Co9.mjs} +1 -1
  186. package/dist/web-components/rendererSurface-BgZPnAwj.mjs +22 -0
  187. package/dist/web-components/{renderers-LtRX5pT0.mjs → renderers-hoD3WKYA.mjs} +1 -1
  188. package/dist/web-components/{resource-Cfydiy4m.mjs → resource-DuTMsPEj.mjs} +1 -1
  189. package/dist/web-components/{sanitize-qIOeyIww.mjs → sanitize-BedC_UE5.mjs} +3 -3
  190. package/dist/web-components/{save-file-dZyOpXgY.mjs → save-file-CLB5IM4a.mjs} +1 -1
  191. package/dist/web-components/{search-BfUZJM3a.mjs → search-Dd2Y1dsZ.mjs} +1 -1
  192. package/dist/web-components/shared-CCg1Iag8.mjs +1 -0
  193. package/dist/web-components/{show-link-DgLJzG7k.mjs → show-link-NjacLIdz.mjs} +1 -1
  194. package/dist/web-components/{sizedImage-NHzhcBYk.mjs → sizedImage-CKOGmqhN.mjs} +1 -1
  195. package/dist/web-components/{split-CuFiKjin.mjs → split-CcoXZcGX.mjs} +1 -1
  196. package/dist/web-components/{status-C3etlkhY.mjs → status-B4a3Izph.mjs} +1 -1
  197. package/dist/web-components/styles-C7PVxtkQ.mjs +1 -0
  198. package/dist/web-components/svg-shape-D1K-WNrY.mjs +1 -0
  199. package/dist/web-components/three.mjs +1 -1
  200. package/dist/web-components/thumbnail-ez20ssEY.mjs +1 -0
  201. package/dist/web-components/{tip-D5YgaIWW.mjs → tip-DeFPN33O.mjs} +1 -1
  202. package/dist/web-components/{toggle-CZGB65VZ.mjs → toggle-CGSnnjW-.mjs} +1 -1
  203. package/dist/web-components/trusted-Bvpx307M.mjs +1 -0
  204. package/dist/web-components/{useContainerName-hKQjEt7a.mjs → useContainerName-BfyeBf6_.mjs} +1 -1
  205. package/dist/web-components/useControlsVisibility-oRiMiQhD.mjs +1 -0
  206. package/dist/web-components/useLazyPanelPane-CReKsr8z.mjs +1 -0
  207. package/dist/web-components/{useNearViewport-CDbHQUBk.mjs → useNearViewport-BADiMpLi.mjs} +1 -1
  208. package/dist/web-components/{useScrollTrack-D9l_P3_B.mjs → useScrollTrack-9QsMaHSx.mjs} +1 -1
  209. package/dist/web-components/viewer/{AnnotationItems-DtsnDXPM.mjs → AnnotationItems-Cvh3jfmf.mjs} +1 -1
  210. package/dist/web-components/viewer/{AnnotationMenu-C-Mz6CCn.mjs → AnnotationMenu-d5PT7q8D.mjs} +1 -1
  211. package/dist/web-components/viewer/{AnnotationState-5pim5K72.mjs → AnnotationState-DbtYTHMy.mjs} +1 -1
  212. package/dist/web-components/viewer/{Annotations-Cqn1TkzD.mjs → Annotations-DKWYJOo2.mjs} +2 -2
  213. package/dist/web-components/viewer/{Annotations-CxwN9FkB.mjs → Annotations-D_wg4O99.mjs} +1 -1
  214. package/dist/web-components/viewer/{Canvas2DBackend-C-ZMSCak.mjs → Canvas2DBackend-B4IXvdsN.mjs} +1 -1
  215. package/dist/web-components/viewer/{CaptionDetails-CRD-gSZP.mjs → CaptionDetails-Bxh9VD7n.mjs} +1 -1
  216. package/dist/web-components/viewer/ChaptersMenu-CaAIaRZN.mjs +1 -0
  217. package/dist/web-components/viewer/{ChoiceMenu-ByGzQQx1.mjs → ChoiceMenu-Clp4Zeog.mjs} +1 -1
  218. package/dist/web-components/viewer/{Collection-m0GCcsfQ.mjs → Collection-C5BfoUOH.mjs} +1 -1
  219. package/dist/web-components/viewer/Connected-9VGl2Xnx.mjs +1 -0
  220. package/dist/web-components/viewer/{Connected-Dvx7wtot.mjs → Connected-Cd2qwuuo.mjs} +1 -1
  221. package/dist/web-components/viewer/{Contents-CwDpfiJY.mjs → Contents-CsG9e7v2.mjs} +1 -1
  222. package/dist/web-components/viewer/ControlMenu-q_u_UC8q.mjs +1 -0
  223. package/dist/web-components/viewer/ControlsFade-Db3IWArv.mjs +1 -0
  224. package/dist/web-components/viewer/CountMenu-Dn0-z5A9.mjs +1 -0
  225. package/dist/web-components/viewer/Cue-slOJQhPI.mjs +1 -0
  226. package/dist/web-components/viewer/Document-r3Sz3RfH.mjs +1 -0
  227. package/dist/web-components/viewer/{DomLayers-hc0qARQc.mjs → DomLayers-CwHg1jZg.mjs} +1 -1
  228. package/dist/web-components/viewer/{Download-MO-1Rik4.mjs → Download-Clx_e2ga.mjs} +1 -1
  229. package/dist/web-components/viewer/{EntryBodies-g-OEwEsk.mjs → EntryBodies-B4SnV6NJ.mjs} +1 -1
  230. package/dist/web-components/viewer/{EntryThumbnail-DcIDYATi.mjs → EntryThumbnail-CsAqKh38.mjs} +1 -1
  231. package/dist/web-components/viewer/{FieldPill-B9S21lxw.mjs → FieldPill-NQfq8SXA.mjs} +1 -1
  232. package/dist/web-components/viewer/{FrameAnimation-qI9cZPEs.mjs → FrameAnimation-wN2VNW7D.mjs} +1 -1
  233. package/dist/web-components/viewer/Gallery-nX9kQlft.mjs +1 -0
  234. package/dist/web-components/viewer/{HideToggle-D8wH49mq.mjs → HideToggle-B843JuKU.mjs} +1 -1
  235. package/dist/web-components/viewer/ImageControls--qeUY5kg.mjs +1 -0
  236. package/dist/web-components/viewer/{LanguageChoice-CRqsCBAp.mjs → LanguageChoice-CZ6K3Mhv.mjs} +1 -1
  237. package/dist/web-components/viewer/LightboxView-BcbP3cJD.mjs +1 -0
  238. package/dist/web-components/viewer/{ListEnd-D9Obxie4.mjs → ListEnd-DbYDv46a.mjs} +1 -1
  239. package/dist/web-components/viewer/MapView-Dj7Iq7P2.mjs +3 -0
  240. package/dist/web-components/viewer/MediaBody-TN4XsCm7.mjs +1 -0
  241. package/dist/web-components/viewer/{MediaBody-D5ff6xy-.mjs → MediaBody-iAxGgXNy.mjs} +1 -1
  242. package/dist/web-components/viewer/{NavDate-BnfDG57h.mjs → NavDate-Clj6OMa6.mjs} +1 -1
  243. package/dist/web-components/viewer/{Navigator-BNwjmkXY.mjs → Navigator-DPdR3SYX.mjs} +1 -1
  244. package/dist/web-components/viewer/{PagerLayout-C8jraHqs.mjs → PagerLayout-CtlmDRjI.mjs} +1 -1
  245. package/dist/web-components/viewer/PanelPart-DzZWRlK1.mjs +1 -0
  246. package/dist/web-components/viewer/{PartOfManifest-DX7H0V4g.mjs → PartOfManifest-NAXs2DYd.mjs} +1 -1
  247. package/dist/web-components/viewer/{PlaceBox-CCWfzsNU.mjs → PlaceBox-C2k5Fsfo.mjs} +1 -1
  248. package/dist/web-components/viewer/Placeholder-DF6dRMjt.mjs +1 -0
  249. package/dist/web-components/viewer/{Search-CsdYzdq1.mjs → Search-DoUc8tWu.mjs} +1 -1
  250. package/dist/web-components/viewer/{StandaloneItems-BfvBxbUm.mjs → StandaloneItems-DuXasJO0.mjs} +1 -1
  251. package/dist/web-components/viewer/{Steps-BH8ZApS4.mjs → Steps-B3MrG4Cv.mjs} +1 -1
  252. package/dist/web-components/viewer/TargetItems-DOFSQtYR.mjs +1 -0
  253. package/dist/web-components/viewer/{Transcript-DXLv5WR9.mjs → Transcript-Dy-FHWMo.mjs} +1 -1
  254. package/dist/web-components/viewer/Transport-C5wkxVOF.mjs +1 -0
  255. package/dist/web-components/viewer/{Transport-C-fh7Kx2.mjs → Transport-CUXmY_jW.mjs} +1 -1
  256. package/dist/web-components/viewer/{annotation-collection-Cjd8Dgyl.mjs → annotation-collection-A0PNdPhI.mjs} +1 -1
  257. package/dist/web-components/viewer/annotation-name-CfQs7Mb2.mjs +1 -0
  258. package/dist/web-components/viewer/{annotations-content-BARXoAz-.mjs → annotations-content-B52-zM99.mjs} +1 -1
  259. package/dist/web-components/viewer/{cloverEngine-CumnJPKO.mjs → cloverEngine-4sgpB7Rz.mjs} +1 -1
  260. package/dist/web-components/viewer/{content-state-reader-DuvyLThu.mjs → content-state-reader-vtATl-W3.mjs} +1 -1
  261. package/dist/web-components/viewer/{dragToClose-CFCxhUxn.mjs → dragToClose-B4rj1D3r.mjs} +1 -1
  262. package/dist/web-components/viewer/{fetchManifest-qNB_KgxL.mjs → fetchManifest-gAj8phm4.mjs} +1 -1
  263. package/dist/web-components/viewer/{host-GTHX2fPK.mjs → host-Hv8WXfiF.mjs} +1 -1
  264. package/dist/web-components/viewer/{image-layers-DKOuaRTj.mjs → image-layers-gFEDKVkV.mjs} +1 -1
  265. package/dist/web-components/viewer/index.mjs +1 -1
  266. package/dist/web-components/viewer/{link-BlaM0tCa.mjs → link-DIh6ysyo.mjs} +1 -1
  267. package/dist/web-components/viewer/{overlayImage-RVpv69R5.mjs → overlayImage-BRjcH40Q.mjs} +1 -1
  268. package/dist/web-components/viewer/{range-regions-CIZiAHOp.mjs → range-regions-uPqjKIER.mjs} +1 -1
  269. package/dist/web-components/viewer/{renderers-Dw1klwlx.mjs → renderers-C5EfPrd7.mjs} +1 -1
  270. package/dist/web-components/viewer/{save-file-EvzaBEJN.mjs → save-file-dIa0LCAn.mjs} +1 -1
  271. package/dist/web-components/viewer/{search-x1QL_bth.mjs → search-Bbv9dCNq.mjs} +1 -1
  272. package/dist/web-components/viewer/styles-L1HpSoL2.mjs +1 -0
  273. package/dist/web-components/viewer/useControlsVisibility-jopIdHZi.mjs +1 -0
  274. package/dist/web-components/viewer/useLazyPanelPane-CoPgtYkx.mjs +1 -0
  275. package/dist/web-components/viewer/viewer-DqpSyvH-.mjs +29 -0
  276. package/dist/web-components/viewer/vtt-DpgB_K8v.mjs +5 -0
  277. package/dist/web-components/viewer-D2lGdifc.mjs +1 -0
  278. package/dist/web-components/vtt-KUQbi4PK.mjs +5 -0
  279. package/dist/web-components/worker-C9aVbya_.mjs +1 -0
  280. package/package.json +2 -1
  281. package/dist/web-components/Button-L8ZMy5lY.mjs +0 -1
  282. package/dist/web-components/CanvasView-2Fj9nT06.mjs +0 -2
  283. package/dist/web-components/ChaptersMenu-Bj2EqtVJ.mjs +0 -1
  284. package/dist/web-components/ControlMenu-D1zkB0qX.mjs +0 -1
  285. package/dist/web-components/ControlsFade-BNXVTL_Q.mjs +0 -1
  286. package/dist/web-components/CountMenu-Dnzb7lKo.mjs +0 -1
  287. package/dist/web-components/Cue-CUGmPS3k.mjs +0 -1
  288. package/dist/web-components/Document-D-8nalCX.mjs +0 -1
  289. package/dist/web-components/Gallery-4Hd58afA.mjs +0 -1
  290. package/dist/web-components/ImageControls-CZO7WoPb.mjs +0 -1
  291. package/dist/web-components/LightboxView-C4OASmkg.mjs +0 -1
  292. package/dist/web-components/LoadedMap-WATGNLxl.mjs +0 -1
  293. package/dist/web-components/MapView-3OxoCr5l.mjs +0 -3
  294. package/dist/web-components/Markup-DW75Jx3j.mjs +0 -2
  295. package/dist/web-components/MediaBody-CLtd0bf0.mjs +0 -1
  296. package/dist/web-components/Panel-BvDpCn6K.mjs +0 -1
  297. package/dist/web-components/PanelPart-Bd4lSUrP.mjs +0 -1
  298. package/dist/web-components/Placeholder-DzY5hcbk.mjs +0 -1
  299. package/dist/web-components/Root-Bt3NNBFb.mjs +0 -1
  300. package/dist/web-components/Scene-DrOM9YlD.mjs +0 -1
  301. package/dist/web-components/SceneView-DA7Yg20p.mjs +0 -1
  302. package/dist/web-components/TargetItems-BDJM3Ar-.mjs +0 -1
  303. package/dist/web-components/Timeline-BfdN3lIv.mjs +0 -1
  304. package/dist/web-components/Tip-OCB88zwY.mjs +0 -1
  305. package/dist/web-components/Transport-DaIhfZqC.mjs +0 -1
  306. package/dist/web-components/hooks-BhtNDs_1.mjs +0 -1
  307. package/dist/web-components/index-FJEpXukG.mjs +0 -1
  308. package/dist/web-components/items-BPPrqbeh.mjs +0 -1
  309. package/dist/web-components/label-DauFa5sg.mjs +0 -1
  310. package/dist/web-components/logo-DWPxaZaG.mjs +0 -1
  311. package/dist/web-components/masonry-0QfzOgbB.mjs +0 -1
  312. package/dist/web-components/part-CekFWrtz.mjs +0 -1
  313. package/dist/web-components/pointer-YQppt0at.mjs +0 -1
  314. package/dist/web-components/rendererSurface-BkbGDL_Z.mjs +0 -22
  315. package/dist/web-components/shared-DkY2a89G.mjs +0 -1
  316. package/dist/web-components/styles-DkkVOSUQ.mjs +0 -1
  317. package/dist/web-components/svg-shape-DLY3g7oq.mjs +0 -1
  318. package/dist/web-components/thumbnail-DecrVnpj.mjs +0 -1
  319. package/dist/web-components/useControlsVisibility-DPg8uAkW.mjs +0 -1
  320. package/dist/web-components/useLazyPanelPane-eby-OI1V.mjs +0 -1
  321. package/dist/web-components/viewer/ChaptersMenu-Brcq3yJv.mjs +0 -1
  322. package/dist/web-components/viewer/Connected-Bmc_CdUD.mjs +0 -1
  323. package/dist/web-components/viewer/ControlMenu-TcO85hDf.mjs +0 -1
  324. package/dist/web-components/viewer/ControlsFade-BoZ4ABAE.mjs +0 -1
  325. package/dist/web-components/viewer/CountMenu-0-ie8kIZ.mjs +0 -1
  326. package/dist/web-components/viewer/Cue-DxmAS9Gx.mjs +0 -1
  327. package/dist/web-components/viewer/Document-BsryuYJ1.mjs +0 -1
  328. package/dist/web-components/viewer/Gallery-BOgUqfqw.mjs +0 -1
  329. package/dist/web-components/viewer/ImageControls-ZoEC9jWd.mjs +0 -1
  330. package/dist/web-components/viewer/LightboxView-BB-GcbYr.mjs +0 -1
  331. package/dist/web-components/viewer/MapView-DQSwUzd7.mjs +0 -3
  332. package/dist/web-components/viewer/MediaBody-CIw2nTlj.mjs +0 -1
  333. package/dist/web-components/viewer/PanelPart-YNbBI9SQ.mjs +0 -1
  334. package/dist/web-components/viewer/Placeholder-CsEkLhz7.mjs +0 -1
  335. package/dist/web-components/viewer/TargetItems-BebPFr-c.mjs +0 -1
  336. package/dist/web-components/viewer/Transport-CY6BWfMi.mjs +0 -1
  337. package/dist/web-components/viewer/annotation-name-CwmgQFia.mjs +0 -1
  338. package/dist/web-components/viewer/styles-I7_LWFGj.mjs +0 -1
  339. package/dist/web-components/viewer/useControlsVisibility-C_SQHIVR.mjs +0 -1
  340. package/dist/web-components/viewer/useLazyPanelPane-UuGDJrf_.mjs +0 -1
  341. package/dist/web-components/viewer/viewer-DJrQuNs1.mjs +0 -29
  342. package/dist/web-components/viewer/vtt-C2G89SWH.mjs +0 -5
  343. package/dist/web-components/viewer-Br44EEba.mjs +0 -1
  344. package/dist/web-components/vtt-Dd0c7psH.mjs +0 -5
  345. package/dist/web-components/worker-CjXN0dku.mjs +0 -1
@@ -0,0 +1 @@
1
+ import{c as e,T as o,e as i,ae as r,Z as f,af as l,ag as v,F as u,n as g,a as c,t as d}from"./shared-CCg1Iag8.mjs";function C(){const n=e(a=>a.status),s=e(a=>a.error);return o(()=>({status:n,error:s}),[n,s])}function S(){return e(n=>n.manifest)}function b(){return e(n=>u(n.manifest))}function p(){return e(n=>g(n.manifest,n.canvasId))}function z(){return e(n=>f(n.manifest,n.canvasId))}function A(){const{clover:n}=i("useNavigation"),s=e(t=>v(t.manifest,t.canvasId)),a=e(t=>u(t.manifest).views.length);return o(()=>r(n,s,a),[n,s,a])}function I(){return e(n=>l(n.manifest,n.addedSets))}function L(n){const{language:s}=i("useLocalized");return o(()=>d(n,s),[n,s])}function O(){return c().t}function T(){return c().langOf}export{p as a,C as b,A as c,b as d,S as e,z as f,O as g,T as h,L as i,I as u};
@@ -1 +1 @@
1
- import{F as I,S as u,a8 as L,a9 as $,ax as P}from"./shared-DkY2a89G.mjs";import{c as j}from"./choice-key-BUNebLKe.mjs";function F(t){const c=new Map;for(const e of I(t).canvases)k(e,c);return[...c.values()]}function k(t,c){u(t.items).forEach((e,s)=>u(e==null?void 0:e.items).forEach((d,f)=>{if(!L(d))return;const a=$(u(d.target)[0]).rect??{x:0,y:0,w:Number(t.width)||0,h:Number(t.height)||0};u(d.body).forEach((r,y)=>{const w=(r==null?void 0:r.type)==="Choice";(w?u(r.items):[r]).forEach((o,x)=>{for(const n of u(o==null?void 0:o.annotations)){if(!Array.isArray(n==null?void 0:n.items)||typeof(o==null?void 0:o.id)!="string")continue;const l=n.id??`${o.id}#annotations`,A=w?{key:j(t.id,d.id,s,f,y),item:x,image:o.id}:void 0,M=P(n,l,t.id).map(p=>{const h=q(p.annotation,o),b=Math.round(a.x+h.x*(a.w/h.width)),E=Math.round(a.y+h.y*(a.h/h.height)),S=Math.round(h.w*(a.w/h.width)),g=Math.round(h.h*(a.h/h.height)),N=`${t.id}#xywh=${b},${E},${S},${g}`;return{...p,canvasId:t.id,target:$(N),annotation:{...p.annotation,target:N},...A?{layer:A}:{}}});if(!M.length)continue;let m=c.get(l);m||(m={id:l,label:n.label??o.label,source:"manifest",entries:[]},c.set(l,m)),m.entries.push(...M)}})})}))}function q(t,c){const e=Number(c.width)||1,s=Number(c.height)||1,d={x:0,y:0,w:e,h:s,width:e,height:s},f=u(t==null?void 0:t.target)[0],r=(typeof f=="object"?u(f==null?void 0:f.selector):[]).find(i=>(i==null?void 0:i.type)==="ImageApiSelector"),y=typeof(r==null?void 0:r.region)=="string"?r.region:void 0;if(y){const i=/^(pct:)?([\d.]+),([\d.]+),([\d.]+),([\d.]+)$/.exec(y);if(!i)return d;const[o,x,n,l]=i.slice(2).map(Number);return i[1]?{x:o/100*e,y:x/100*s,w:n/100*e,h:l/100*s,width:e,height:s}:{x:o,y:x,w:n,h:l,width:e,height:s}}const w=$(f).rect;return w?{...w,width:e,height:s}:d}export{F as imageLayers};
1
+ import{F as I,S as u,a7 as L,a8 as $,ax as P}from"./shared-CCg1Iag8.mjs";import{c as j}from"./choice-key-BUNebLKe.mjs";function F(t){const c=new Map;for(const e of I(t).canvases)k(e,c);return[...c.values()]}function k(t,c){u(t.items).forEach((e,s)=>u(e==null?void 0:e.items).forEach((d,f)=>{if(!L(d))return;const a=$(u(d.target)[0]).rect??{x:0,y:0,w:Number(t.width)||0,h:Number(t.height)||0};u(d.body).forEach((r,y)=>{const w=(r==null?void 0:r.type)==="Choice";(w?u(r.items):[r]).forEach((o,x)=>{for(const n of u(o==null?void 0:o.annotations)){if(!Array.isArray(n==null?void 0:n.items)||typeof(o==null?void 0:o.id)!="string")continue;const l=n.id??`${o.id}#annotations`,A=w?{key:j(t.id,d.id,s,f,y),item:x,image:o.id}:void 0,M=P(n,l,t.id).map(p=>{const h=q(p.annotation,o),b=Math.round(a.x+h.x*(a.w/h.width)),E=Math.round(a.y+h.y*(a.h/h.height)),S=Math.round(h.w*(a.w/h.width)),g=Math.round(h.h*(a.h/h.height)),N=`${t.id}#xywh=${b},${E},${S},${g}`;return{...p,canvasId:t.id,target:$(N),annotation:{...p.annotation,target:N},...A?{layer:A}:{}}});if(!M.length)continue;let m=c.get(l);m||(m={id:l,label:n.label??o.label,source:"manifest",entries:[]},c.set(l,m)),m.entries.push(...M)}})})}))}function q(t,c){const e=Number(c.width)||1,s=Number(c.height)||1,d={x:0,y:0,w:e,h:s,width:e,height:s},f=u(t==null?void 0:t.target)[0],r=(typeof f=="object"?u(f==null?void 0:f.selector):[]).find(i=>(i==null?void 0:i.type)==="ImageApiSelector"),y=typeof(r==null?void 0:r.region)=="string"?r.region:void 0;if(y){const i=/^(pct:)?([\d.]+),([\d.]+),([\d.]+),([\d.]+)$/.exec(y);if(!i)return d;const[o,x,n,l]=i.slice(2).map(Number);return i[1]?{x:o/100*e,y:x/100*s,w:n/100*e,h:l/100*s,width:e,height:s}:{x:o,y:x,w:n,h:l,width:e,height:s}}const w=$(f).rect;return w?{...w,width:e,height:s}:d}export{F as imageLayers};
@@ -1 +1 @@
1
- import{a1 as j}from"./shared-DkY2a89G.mjs";const S=["jpg","png","webp","gif"];class y extends Error{constructor(t,e,i){super(t),this.url=e,this.status=i,this.name="ImageServiceError"}}function g(r){return r.replace(/\/info\.json$/,"").replace(/\/+$/,"")}function O(r){const t=Array.isArray(r)?r:r?[r]:[];for(const e of t){if(!e||typeof e!="object")continue;const i=e,o=String(i.type??i["@type"]??""),s=JSON.stringify(i.profile??""),n=/ImageService/i.test(o)||/iiif\.io\/api\/image/.test(s)||/^"level[012]"$/.test(s)||!o&&!i.profile,c=i["@id"]??i.id;if(n&&typeof c=="string")return g(c)}}function F(r,t){if(!r||typeof r!="object")throw new y("info.json is not an object",t??"");const e=r,i=N(e),o=i===3?e.id??e["@id"]:e["@id"]??e.id,s=g(o??t??""),n=Number(e.width),c=Number(e.height);if(!s||!(n>0)||!(c>0))throw new y("info.json is missing id, width or height",t??s);const f=Array.isArray(e.profile)?e.profile:[e.profile],b=f.find(a=>typeof a=="string"),w=f.filter(a=>!!a&&typeof a=="object"),l=I(b),d=new Set([...Array.isArray(e.extraFeatures)?e.extraFeatures:[],...w.flatMap(a=>Array.isArray(a.supports)?a.supports:[])]),x=[...Array.isArray(e.preferredFormats)?e.preferredFormats:[]].map(a=>String(a).toLowerCase()).find(a=>S.includes(a))??"jpg",m=a=>{var A;const v=e[a]??((A=w.find($=>$[a]!==void 0))==null?void 0:A[a]);return Number(v)>0?Number(v):void 0};let u=m("maxWidth"),h=m("maxHeight");return u&&!h&&(h=u),h&&!u&&(u=void 0),{id:s,version:i,level:l,width:n,height:c,tiles:z(e.tiles),sizes:B(e.sizes),maxWidth:u,maxHeight:h,maxArea:m("maxArea"),regionByPx:l>=1||d.has("regionByPx"),sizeByW:l>=1||d.has("sizeByW")||d.has("sizeByWh"),format:x,quality:"default"}}function N(r){const t=[].concat(r["@context"]??[]).map(String);return t.some(e=>e.includes("/image/3"))?3:t.some(e=>e.includes("/image/2"))?2:r.type==="ImageService3"?3:r["@id"]?2:3}function I(r){const t=r==null?void 0:r.match(/level([012])/);return t?Number(t[1]):0}function z(r){return Array.isArray(r)?r.map(t=>{const e=Number(t==null?void 0:t.width),i=Number((t==null?void 0:t.height)??(t==null?void 0:t.width)),o=(Array.isArray(t==null?void 0:t.scaleFactors)?t.scaleFactors:[1]).map(Number).filter(s=>s>0).sort((s,n)=>s-n);return{width:e,height:i,scaleFactors:o}}).filter(t=>t.width>0&&t.height>0&&t.scaleFactors.length):[]}function B(r){return Array.isArray(r)?r.map(t=>({width:Number(t==null?void 0:t.width),height:Number(t==null?void 0:t.height)})).filter(t=>t.width>0&&t.height>0).sort((t,e)=>t.width-e.width):[]}function P(r,t,e,i,o=r.quality){const s=t.x===0&&t.y===0&&t.width===r.width&&t.height===r.height,n=s?"full":`${t.x},${t.y},${t.width},${t.height}`,c=s&&e===r.width&&i===r.height;let f;return r.version===3?f=c?"max":`${e},${i}`:f=c?"full":`${e},`,`${r.id}/${n}/${f}/0/${o}.${r.format}`}function C(r){return r.version===2&&r.level===0?"native":void 0}const p=new Map;function L(r,{request:t}={}){const e=g(r),i=p.get(e);if(i)return i;const o=`${e}/info.json`,s=j(t,o,{headers:{Accept:"application/ld+json, application/json"}}).then(async n=>{if(!n.ok)throw new y(`info.json request failed with ${n.status}`,o,n.status);return F(await n.json(),e)}).catch(n=>{throw p.delete(e),n});return p.set(e,s),s}export{C as a,O as b,L as f,P as i};
1
+ import{a1 as j}from"./shared-CCg1Iag8.mjs";const S=["jpg","png","webp","gif"];class y extends Error{constructor(t,e,i){super(t),this.url=e,this.status=i,this.name="ImageServiceError"}}function g(r){return r.replace(/\/info\.json$/,"").replace(/\/+$/,"")}function O(r){const t=Array.isArray(r)?r:r?[r]:[];for(const e of t){if(!e||typeof e!="object")continue;const i=e,o=String(i.type??i["@type"]??""),s=JSON.stringify(i.profile??""),n=/ImageService/i.test(o)||/iiif\.io\/api\/image/.test(s)||/^"level[012]"$/.test(s)||!o&&!i.profile,c=i["@id"]??i.id;if(n&&typeof c=="string")return g(c)}}function F(r,t){if(!r||typeof r!="object")throw new y("info.json is not an object",t??"");const e=r,i=N(e),o=i===3?e.id??e["@id"]:e["@id"]??e.id,s=g(o??t??""),n=Number(e.width),c=Number(e.height);if(!s||!(n>0)||!(c>0))throw new y("info.json is missing id, width or height",t??s);const f=Array.isArray(e.profile)?e.profile:[e.profile],b=f.find(a=>typeof a=="string"),w=f.filter(a=>!!a&&typeof a=="object"),l=I(b),d=new Set([...Array.isArray(e.extraFeatures)?e.extraFeatures:[],...w.flatMap(a=>Array.isArray(a.supports)?a.supports:[])]),x=[...Array.isArray(e.preferredFormats)?e.preferredFormats:[]].map(a=>String(a).toLowerCase()).find(a=>S.includes(a))??"jpg",m=a=>{var A;const v=e[a]??((A=w.find($=>$[a]!==void 0))==null?void 0:A[a]);return Number(v)>0?Number(v):void 0};let u=m("maxWidth"),h=m("maxHeight");return u&&!h&&(h=u),h&&!u&&(u=void 0),{id:s,version:i,level:l,width:n,height:c,tiles:z(e.tiles),sizes:B(e.sizes),maxWidth:u,maxHeight:h,maxArea:m("maxArea"),regionByPx:l>=1||d.has("regionByPx"),sizeByW:l>=1||d.has("sizeByW")||d.has("sizeByWh"),format:x,quality:"default"}}function N(r){const t=[].concat(r["@context"]??[]).map(String);return t.some(e=>e.includes("/image/3"))?3:t.some(e=>e.includes("/image/2"))?2:r.type==="ImageService3"?3:r["@id"]?2:3}function I(r){const t=r==null?void 0:r.match(/level([012])/);return t?Number(t[1]):0}function z(r){return Array.isArray(r)?r.map(t=>{const e=Number(t==null?void 0:t.width),i=Number((t==null?void 0:t.height)??(t==null?void 0:t.width)),o=(Array.isArray(t==null?void 0:t.scaleFactors)?t.scaleFactors:[1]).map(Number).filter(s=>s>0).sort((s,n)=>s-n);return{width:e,height:i,scaleFactors:o}}).filter(t=>t.width>0&&t.height>0&&t.scaleFactors.length):[]}function B(r){return Array.isArray(r)?r.map(t=>({width:Number(t==null?void 0:t.width),height:Number(t==null?void 0:t.height)})).filter(t=>t.width>0&&t.height>0).sort((t,e)=>t.width-e.width):[]}function P(r,t,e,i,o=r.quality){const s=t.x===0&&t.y===0&&t.width===r.width&&t.height===r.height,n=s?"full":`${t.x},${t.y},${t.width},${t.height}`,c=s&&e===r.width&&i===r.height;let f;return r.version===3?f=c?"max":`${e},${i}`:f=c?"full":`${e},`,`${r.id}/${n}/${f}/0/${o}.${r.format}`}function C(r){return r.version===2&&r.level===0?"native":void 0}const p=new Map;function L(r,{request:t}={}){const e=g(r),i=p.get(e);if(i)return i;const o=`${e}/info.json`,s=j(t,o,{headers:{Accept:"application/ld+json, application/json"}}).then(async n=>{if(!n.ok)throw new y(`info.json request failed with ${n.status}`,o,n.status);return F(await n.json(),e)}).catch(n=>{throw p.delete(e),n});return p.set(e,s),s}export{C as a,O as b,L as f,P as i};
@@ -0,0 +1 @@
1
+ var $=Object.defineProperty;var U=(e,t,o)=>t in e?$(e,t,{enumerable:true,configurable:true,writable:true,value:o}):e[t]=o;var l=(e,t,o)=>U(e,typeof t!="symbol"?t+"":t,o);let L;function V(e){L=e}function Ke(){return L}function H(e={}){return import("./shared-CCg1Iag8.mjs").then(t=>t.aI).then(t=>t.initCloverI18n(e))}const A=new Map,T=new Set;function Qe(e,t,o,n=false){if(!A.has(t)){A.set(t,{index:e,css:o,unlayered:n});for(const p of T)p.place(t,e,o,n)}}const W=e=>`@layer clover,maplibre;@layer maplibre{${e}}`;function B(e){var t,o;return((t=e.querySelector('meta[property="csp-nonce"]'))==null?void 0:t.nonce)||((o=e.querySelector("script[nonce]"))==null?void 0:o.nonce)||""}class F{constructor(t){l(this,"injected",new Set);l(this,"unlayered",new Set);l(this,"nonce");l(this,"adopted",null);this.doc=t,this.nonce=B(t),T.add(this),A.forEach(({index:o,css:n,unlayered:p},a)=>this.place(a,o,n,p))}inject(t,o){if(this.injected.has(t))return;if(this.injected.add(t),this.adopted)return this.adopt(-1,t,o);const n=this.style(t,o);this.doc.head.prepend(n),this.check(n)}place(t,o,n,p=false){if(this.injected.has(t))return;if(this.injected.add(t),p&&this.unlayered.add(t),this.adopted)return this.adopt(o,t,n);const a=this.style(t,n);a.dataset.cloverIndex=String(o);const u=[...this.doc.head.querySelectorAll("style[data-clover-index]")],m=u.filter(g=>Number(g.dataset.cloverIndex)<o).at(-1),y=u.find(g=>Number(g.dataset.cloverIndex)>o),r=this.doc.head.querySelectorAll("style[data-clover]");m?m.after(a):y?y.before(a):r.length?r[r.length-1].after(a):this.doc.head.prepend(a),this.check(a)}style(t,o){const n=this.doc.createElement("style");return n.dataset.clover=t,this.nonce&&(n.nonce=this.nonce),n.textContent=o,n}check(t){if(!(t.sheet||!("adoptedStyleSheets"in this.doc))){this.adopted=[];for(const o of this.doc.head.querySelectorAll("style[data-clover]"))this.adopt(Number(o.dataset.cloverIndex??-1),o.dataset.clover??"",o.textContent??""),o.remove()}}adopt(t,o,n){const p=this.doc.defaultView??window,a=new p.CSSStyleSheet;a.replaceSync(this.unlayered.has(o)?W(n):n);const u=this.adopted,m=u.findIndex(r=>r.index>t);u.splice(m===-1?u.length:m,0,{index:t,sheet:a});const y=new Set(u.map(r=>r.sheet));this.doc.adoptedStyleSheets=[...u.map(r=>r.sheet),...this.doc.adoptedStyleSheets.filter(r=>!y.has(r))]}}const P=new WeakMap;function q(e){let t=P.get(e);return t||P.set(e,t=new F(e)),t}const z="@layer clover{:is(clover-root,clover-items,clover-viewer,clover-panel,clover-read-more):not([hidden]){display:block}:is(clover-body,clover-canvas,clover-timeline,clover-scene):not([hidden]){display:block;height:var(--clover-body-height,60vh)}clover-split:not([hidden]){display:flex}:is(clover-label,clover-panel-toggle):not([hidden]){display:contents}clover-tab,clover-tip,clover-status>[slot]{display:none}}";let J=null,k=null;const _=()=>J??(J=import("./shared-CCg1Iag8.mjs").then(e=>e.aJ).then(e=>k=e)),K=e=>e.trim().toLowerCase()==="false";function Q(e,{type:t,min:o},n){if(e===null)return;if(t==="string")return e;if(t==="boolean")return!K(e);if(t==="number"){const a=Number(e);if(e.trim()===""||!Number.isFinite(a)){n("is not a number");return}if(o!==void 0&&a<o){n(`is less than ${o}`);return}return a}if(t==="data"){const a=e.trim();if(!/^[[{"]/.test(a))return e;try{return JSON.parse(a)}catch{n("is not JSON");return}}const p=e.trim().toLowerCase();if(t.includes(p))return p==="false"?false:p;n(`is not ${t.join(", ")}`)}const G=(e,t)=>{const o=Object.keys(e);return o.length===Object.keys(t).length&&o.every(n=>Object.is(e[n],t[n]))};function Y(e){class t extends HTMLElement{constructor(){super(...arguments);l(this,"kind",e.kind)}static get observedAttributes(){return Object.keys(e.attributes)}connectedCallback(){q(this.ownerDocument).inject("elements",z)}}customElements.define(e.tag,t)}function Z(e,t){if(typeof customElements>"u"||customElements.get(e.tag))return;if(e.kind==="config"||!t)return Y(e);const o=e.kind,n=e.properties??[],p=Object.entries(e.events??{});let a=null,u=null;const m=()=>u??(u=Promise.all([t().then(r=>a=r),_()]));class y extends HTMLElement{constructor(){super(...arguments);l(this,"kind",o);l(this,"needsRoot",!!e.needsRoot);l(this,"values",{});l(this,"kept",{});l(this,"props",{});l(this,"listeners",new Set);l(this,"warned",new Set);l(this,"handlers",Object.fromEntries(p.map(([i,s])=>[s.prop,(...h)=>{var C;if(s.keeps&&(this.kept[s.keeps]=h[0]??null,h[0]==null))return true;const f=s.detail==="first"?h[0]:Object.fromEntries(s.detail.map((b,N)=>[b,h[N]])),S=new CustomEvent(i,{detail:f,bubbles:!s.keeps,composed:!s.keeps,cancelable:!!s.cancelable}),E=this.dispatchEvent(S);if(!E&&s.cancelable){const b=h[h.length-1];(C=b==null?void 0:b.preventDefault)==null||C.call(b)}return E}])));l(this,"getProps",()=>this.props);l(this,"subscribe",i=>(this.listeners.add(i),()=>{this.listeners.delete(i)}))}static get observedAttributes(){return Object.keys(e.attributes)}get element(){return this}get Component(){return a}connectedCallback(){for(const i of n){if(!Object.prototype.hasOwnProperty.call(this,i))continue;const s=this[i];delete this[i],s!=null&&(this.values[i]=s)}this.update(),this.warnOfAria(),q(this.ownerDocument).inject("elements",z),m().then(()=>{this.isConnected&&k.hostOf(this.ownerDocument).connect(this)})}disconnectedCallback(){queueMicrotask(()=>{this.isConnected||k==null||k.hostOf(this.ownerDocument).disconnect(this)})}attributeChangedCallback(){this.update()}warnOfAria(){if(!e.native)for(const i of["aria-label","aria-labelledby","role"])!this.hasAttribute(i)||this.warned.has(i)||(this.warned.add(i),console.warn(`<${e.tag}>: ${i} names the element, a box no reader is told of; Clover names what it draws itself.`))}update(){const i={...this.handlers,...this.values};for(const[s,h]of Object.entries(e.attributes)){if(h.prop in this.values)continue;const f=this.getAttribute(s),S=Q(f,h,E=>{const C=`${s}=${f}`;this.warned.has(C)||(this.warned.add(C),console.warn(`<${e.tag}>: ${s}="${f}" ${E}; ignored.`))});S!==void 0&&(i[h.prop]=S)}G(i,this.props)||(this.props=i,this.listeners.forEach(s=>s()))}}l(y,"initCloverI18n",H);for(const r of n)Object.defineProperty(y.prototype,r,{configurable:true,enumerable:true,get(){return r in this.values?this.values[r]:this.getProps()[r]},set(g){g==null?delete this.values[r]:this.values[r]=g,this.update()}});for(const[,r]of p){if(!r.keeps)continue;const g=r.keeps;Object.defineProperty(y.prototype,g,{configurable:true,enumerable:true,get(){return this.kept[g]??null}})}customElements.define(e.tag,y)}const X={tag:"clover-panel",kind:"part",needsRoot:true,attributes:{layout:{prop:"layout",type:["tabs","accordion"]},value:{prop:"value",type:"string"},"heading-level":{prop:"headingLevel",type:"number",min:1},download:{prop:"download",type:"boolean"},languages:{prop:"languages",type:"boolean"},sections:{prop:"sections",type:"data"},labels:{prop:"labels",type:"data"},closable:{prop:"closable",type:"boolean"},"close-on-escape":{prop:"closeOnEscape",type:"boolean"},as:{prop:"as",type:["aside","div"]}},events:{"clover-value-change":{prop:"onValueChange",detail:["value"]},"clover-close":{prop:"onClose",detail:[],cancelable:true}}},ee={tag:"clover-tab",kind:"config",attributes:{value:{prop:"value",type:"string"},label:{prop:"label",type:"string"}},slots:["label"]},te={tag:"clover-panel-toggle",kind:"part",attributes:{controls:{prop:"controls",type:"string"}},events:{"clover-open-change":{prop:"onOpenChange",detail:["open"],cancelable:true}}},oe={tag:"clover-split",kind:"part",native:true,attributes:{"storage-key":{prop:"storageKey",type:"string"}}},ne={tag:"clover-split-pane",kind:"part",native:true,attributes:{size:{prop:"size",type:"string"},min:{prop:"min",type:"string"},max:{prop:"max",type:"string"},name:{prop:"name",type:"string"}}},re={tag:"clover-split-handle",kind:"part",native:true,attributes:{}},M={"clover-ready":{prop:"onReady",detail:["handle"],keeps:"handle"}},O={"clover-content-state-change":{prop:"onContentStateChange",detail:"first"}},ae={tag:"clover-canvas",kind:"part",attributes:{"iiif-content":{prop:"iiifContent",type:"string"},src:{prop:"src",type:"string"},tiled:{prop:"isTiledImage",type:"boolean"},label:{prop:"label",type:"string"},language:{prop:"language",type:"string"},"high-contrast":{prop:"highContrast",type:"boolean"},controls:{prop:"controls",type:"boolean"},"collapse-controls":{prop:"collapseControls",type:["auto","always"]},navigator:{prop:"navigator",type:"boolean"},placeholder:{prop:"placeholder",type:"boolean"},"viewing-direction":{prop:"viewingDirection",type:["left-to-right","right-to-left","top-to-bottom","bottom-to-top"]},"animate-annotations":{prop:"animateAnnotations",type:"boolean"}},properties:["iiifContent","canvases","src","annotations","options","controlButtons","controls"],events:{...M,...O,"clover-annotation-select":{prop:"onAnnotationSelect",detail:["id"]},"clover-annotation-active":{prop:"onAnnotationActive",detail:["id"]},"clover-caption-change":{prop:"onCaptionChange",detail:["caption"]},"clover-ended":{prop:"onEnded",detail:[]}}},ie={tag:"clover-timeline",kind:"part",attributes:{"iiif-content":{prop:"iiifContent",type:"string"},label:{prop:"label",type:"string"},language:{prop:"language",type:"string"},"high-contrast":{prop:"highContrast",type:"boolean"},controls:{prop:"controls",type:"boolean"},placeholder:{prop:"placeholder",type:"boolean"}},properties:["iiifContent","timeline","annotations","options","controls"],events:{...O,"clover-caption-change":{prop:"onCaptionChange",detail:["caption"]},"clover-ended":{prop:"onEnded",detail:[]}}},se={tag:"clover-scene",kind:"part",attributes:{"iiif-content":{prop:"iiifContent",type:"string"},label:{prop:"label",type:"string"},language:{prop:"language",type:"string"},"high-contrast":{prop:"highContrast",type:"boolean"},controls:{prop:"controls",type:"boolean"},engine:{prop:"engine",type:["clover","three"]}},properties:["iiifContent","scene","options","controls"],events:{...O}},le={tag:"clover-body",kind:"part",needsRoot:true,attributes:{controls:{prop:"controls",type:"boolean"},"collapse-controls":{prop:"collapseControls",type:["auto","always"]},navigator:{prop:"navigator",type:"boolean"},placeholder:{prop:"placeholder",type:"boolean"},"animate-annotations":{prop:"animateAnnotations",type:"boolean"}},properties:["controls","options","controlButtons","renderers"],events:{...M,...O,"clover-annotation-active":{prop:"onAnnotationActive",detail:["id"]},"clover-caption-change":{prop:"onCaptionChange",detail:["caption"]},"clover-ended":{prop:"onEnded",detail:[]}}},pe={tag:"clover-items",kind:"part",attributes:{layout:{prop:"layout",type:["slider","list","grid","masonry","pager"]},secondary:{prop:"secondary",type:["summary","navDate","none"]},size:{prop:"size",type:["large","small"]},of:{prop:"of",type:["views","members","targets","annotations"]},navigation:{prop:"navigation",type:["id","homepage"]},"iiif-content":{prop:"iiifContent",type:"string"},header:{prop:"header",type:"boolean"},"heading-level":{prop:"headingLevel",type:"number",min:2},"thumbnail-size":{prop:"thumbnailSize",type:"number",min:1},"single-item":{prop:"singleItem",type:"boolean"},language:{prop:"language",type:"string"},"high-contrast":{prop:"highContrast",type:"boolean"}},properties:["iiifContent","items","request","renderItem"],events:{"clover-select":{prop:"onSelect",detail:["item"],cancelable:true}}},ce=["h1","h2","h3","h4","h5","h6","span","label","figcaption","p","strong","em","div"],de={tag:"clover-label",kind:"part",attributes:{of:{prop:"of",type:["manifest","canvas"]},as:{prop:"as",type:ce},label:{prop:"label",type:"data"}},properties:["label"]},ue={prop:"of",type:["manifest","canvas"]},D={prop:"value",type:"data"},d=(e,t={})=>({tag:e,kind:"part",attributes:{of:ue,value:D,...t},properties:["value"]}),ge=d("clover-summary",{as:{prop:"as",type:["p","div","span"]}}),he={...d("clover-metadata"),properties:["value","renderValue"]},ve=d("clover-required-statement"),ye=d("clover-rights"),me=d("clover-id"),be=d("clover-homepage"),fe=d("clover-rendering"),Ce=d("clover-see-also"),ke=d("clover-part-of"),we=d("clover-thumbnail",{size:{prop:"size",type:"number",min:1},alt:{prop:"alt",type:"string"}}),Se=d("clover-provider",{link:{prop:"link",type:["false"]}}),Ee=d("clover-logo",{alt:{prop:"alt",type:"string"}}),Oe={tag:"clover-value",kind:"part",attributes:{value:D,format:{prop:"format",type:"string"},"heading-level":{prop:"headingLevel",type:"number",min:1},as:{prop:"as",type:["span","p","div"]}},properties:["value"]},Re={tag:"clover-root",kind:"root",attributes:{"iiif-content":{prop:"iiifContent",type:"string"},"canvas-id":{prop:"canvasId",type:"string"},"manifest-id":{prop:"manifestId",type:"string"},language:{prop:"language",type:"string"},"high-contrast":{prop:"highContrast",type:"boolean"},"search-query":{prop:"searchQuery",type:"string"},annotations:{prop:"annotations",type:"data"},"annotation-pages":{prop:"annotationPages",type:["view","all"]},lang:{prop:"lang",type:"string"}},properties:["iiifContent","annotations","request","renderers"],events:{"clover-ready":{prop:"onReady",detail:["clover"],keeps:"clover"},"clover-canvas-change":{prop:"onCanvasChange",detail:["canvasId"]},"clover-manifest-change":{prop:"onManifestChange",detail:["manifestId"]},"clover-status-change":{prop:"onStatusChange",detail:["status","error"]},"clover-content-state-change":{prop:"onContentStateChange",detail:"first"}}},w={"heading-level":{prop:"headingLevel",type:"number",min:1}},I={of:{prop:"of",type:["views","members","targets"]}},Ae={tag:"clover-status",kind:"part",needsRoot:true,attributes:{loading:{prop:"loading",type:["false"]}},slots:["loading","error"]},Ie={tag:"clover-position",kind:"part",needsRoot:true,attributes:{...I,as:{prop:"as",type:["span","p","div"]}}},Pe={tag:"clover-next",kind:"part",needsRoot:true,attributes:I},je={tag:"clover-previous",kind:"part",needsRoot:true,attributes:I},xe={tag:"clover-download",kind:"part",needsRoot:true,attributes:w},Le={tag:"clover-search",kind:"part",needsRoot:true,attributes:{...w,sticky:{prop:"sticky",type:"boolean"},size:{prop:"size",type:["large","small"]}}},Te={tag:"clover-contents",kind:"part",needsRoot:true,attributes:{}},qe={tag:"clover-transcript",kind:"part",needsRoot:true,attributes:{follow:{prop:"follow",type:"boolean"},find:{prop:"find",type:"boolean"},sticky:{prop:"sticky",type:"boolean"},size:{prop:"size",type:["large","small"]}}},ze={tag:"clover-annotations",kind:"part",needsRoot:true,attributes:{scope:{prop:"scope",type:["view","all"]},...w},properties:["renderEntry"]},Me={tag:"clover-collection",kind:"part",needsRoot:true,attributes:w},De={tag:"clover-collection-select",kind:"part",needsRoot:true,attributes:{},events:{"clover-change":{prop:"onChange",detail:["manifestId"]}}},Ne={tag:"clover-about",kind:"part",needsRoot:true,attributes:{"canvas-summary":{prop:"canvasSummary",type:"boolean"},download:{prop:"download",type:"boolean"},languages:{prop:"languages",type:"boolean"},thumbnail:{prop:"thumbnail",type:"boolean"},label:{prop:"label",type:"boolean"},...w}},$e={tag:"clover-map",kind:"part",attributes:{"iiif-content":{prop:"iiifContent",type:"string"},overlay:{prop:"overlay",type:"boolean"},"overlay-opacity":{prop:"overlayOpacity",type:"number",min:0},"style-url":{prop:"styleUrl",type:"string"},"scroll-zoom":{prop:"scrollZoom",type:"boolean"},credits:{prop:"credits",type:"boolean"},language:{prop:"language",type:"string"},"high-contrast":{prop:"highContrast",type:"boolean"}},properties:["iiifContent","navPlace","georeferences","request"],events:{"clover-select":{prop:"onSelect",detail:["feature"]}}},Ue={tag:"clover-read-more",kind:"part",attributes:{}},Ve={tag:"clover-tip",kind:"part",attributes:{label:{prop:"label",type:"string"},lang:{prop:"lang",type:"string"},keys:{prop:"keys",type:"string"},glyph:{prop:"glyph",type:"string"}},properties:["shortcut"]},He={tag:"clover-viewer",kind:"alone",attributes:{template:{prop:"template",type:["default","document","gallery"]},"iiif-content":{prop:"iiifContent",type:"string"},"canvas-id":{prop:"defaultCanvasId",type:"string"},"manifest-id":{prop:"defaultManifestId",type:"string"},language:{prop:"language",type:"string"},"high-contrast":{prop:"highContrast",type:"boolean"},"search-query":{prop:"searchQuery",type:"string"},annotations:{prop:"annotations",type:"data"},"heading-level":{prop:"headingLevel",type:"number",min:2},items:{prop:"items",type:["slider","list","grid","masonry","false"]},"single-item":{prop:"singleItem",type:"boolean"},header:{prop:"header",type:"boolean"},panel:{prop:"panel",type:"boolean"},download:{prop:"download",type:"boolean"},languages:{prop:"languages",type:"boolean"},"panel-open":{prop:"defaultPanelOpen",type:"boolean"},"panel-layout":{prop:"panelLayout",type:["accordion","tabs"]},"panel-sections":{prop:"panelSections",type:"data"},"panel-labels":{prop:"panelLabels",type:"data"},"sidebar-open":{prop:"defaultSidebarOpen",type:"boolean"},"storage-key":{prop:"storageKey",type:"string"},fill:{prop:"fill",type:"boolean"},"collapse-controls":{prop:"collapseControls",type:["auto","always"]},size:{prop:"size",type:"string"},height:{prop:"height",type:"string"},gap:{prop:"gap",type:"string"},secondary:{prop:"secondary",type:["summary","navDate","none"]},summary:{prop:"summary",type:"boolean"},"lightbox-items":{prop:"lightboxItems",type:["slider","pager"]}},properties:["iiifContent","annotations","request","renderers","canvasOptions"],events:{"clover-canvas-change":{prop:"onCanvasChange",detail:["canvasId"]},"clover-manifest-change":{prop:"onManifestChange",detail:["manifestId"]},"clover-status-change":{prop:"onStatusChange",detail:["status","error"]},"clover-content-state-change":{prop:"onContentStateChange",detail:"first"}}},j=[He,Re,le,de,pe,Ie,je,Pe,Ae,we,ge,he,ve,ye,be,Ce,fe,ke,me,Se,Ee,Oe,Ne,ze,Me,De,Te,Le,qe,xe,$e,X,ee,te,oe,ne,re,ae,ie,se,Ve,Ue],c=(e,t,o)=>()=>Promise.all([e(),import("./part-DmRBh4pf.mjs")]).then(([n,{drawn:p}])=>p(n[t],o)),R=e=>()=>import("./split-CcoXZcGX.mjs").then(t=>t[e]),v=e=>c(()=>import("./Primitives-ClQVjY6x.mjs"),e),x=e=>c(()=>import("./Pager-SPd_u0qz.mjs"),e),We={"clover-viewer":()=>import("./viewer-D2lGdifc.mjs").then(e=>e.v).then(e=>e.ViewerElement),"clover-root":()=>import("./shared-CCg1Iag8.mjs").then(e=>e.aM).then(e=>e.RootElement),"clover-label":()=>import("./label-r0ki6r1U.mjs").then(e=>e.LabelElement),"clover-body":()=>import("./body-DC8Oq8rY.mjs").then(e=>e.BodyElement),"clover-items":()=>import("./items-BHporT5i.mjs").then(e=>e.ItemsElement),"clover-position":c(()=>import("./Position-C6KUAceQ.mjs"),"Position"),"clover-previous":x("Previous"),"clover-next":x("Next"),"clover-status":()=>import("./status-B4a3Izph.mjs").then(e=>e.StatusElement),"clover-thumbnail":v("Thumbnail"),"clover-summary":v("Summary"),"clover-metadata":c(()=>import("./Primitives-ClQVjY6x.mjs"),"Metadata",["renderValue"]),"clover-required-statement":v("RequiredStatement"),"clover-rights":v("Rights"),"clover-homepage":v("Homepage"),"clover-see-also":v("SeeAlso"),"clover-rendering":v("Rendering"),"clover-part-of":v("PartOf"),"clover-id":v("Id"),"clover-provider":()=>import("./provider-U7xzX_0T.mjs").then(e=>e.ProviderElement),"clover-logo":()=>import("./logo-Br42Vlsk.mjs").then(e=>e.LogoElement),"clover-value":v("Value"),"clover-about":c(()=>import("./About-uNCjvWgs.mjs").then(e=>e.a),"About"),"clover-annotations":c(()=>import("./Annotations-ZwcRh2UE.mjs"),"Annotations",["renderEntry"]),"clover-collection":c(()=>import("./Collection-Ch_FeSKp.mjs"),"Collection"),"clover-collection-select":c(()=>import("./CollectionSelect-2jDEkOcK.mjs"),"CollectionSelect"),"clover-contents":c(()=>import("./Contents-DIQrin_-.mjs"),"Contents"),"clover-search":c(()=>import("./Search-Bpd_lGzH.mjs"),"Search"),"clover-transcript":c(()=>import("./Transcript-C-_DbUO5.mjs"),"Transcript"),"clover-download":c(()=>import("./Download-B8MpVqgk.mjs"),"Download"),"clover-map":c(()=>import("./Map-B29Ba50b.mjs"),"CloverMap"),"clover-panel":()=>import("./panel-B1vzUm6_.mjs").then(e=>e.PanelElement),"clover-panel-toggle":()=>import("./toggle-CGSnnjW-.mjs").then(e=>e.PanelToggleElement),"clover-split":R("SplitElement"),"clover-split-pane":R("SplitPaneElement"),"clover-split-handle":R("SplitHandleElement"),"clover-canvas":()=>import("./canvas-gzoTnBxw.mjs").then(e=>e.CanvasElement),"clover-timeline":c(()=>import("./Timeline-Danuk_Nn.mjs"),"Timeline"),"clover-scene":c(()=>import("./Scene-C7t16NjC.mjs"),"Scene"),"clover-tip":()=>import("./tip-DeFPN33O.mjs").then(e=>e.TipElement),"clover-read-more":()=>import("./read-more-BtA1sriO.mjs").then(e=>e.ReadMoreElement)};function Be(e,t=j.map(({tag:o})=>o)){e.mapWorkerUrl&&V(e.mapWorkerUrl);for(const o of j)t.includes(o.tag)&&Z(o,We[o.tag])}const Fe=""+new URL("assets/maplibre-gl-worker-kTz9OPxr.js",import.meta.url).href,Je={mapWorkerUrl:Fe};Be(Je);export{Qe as a,Be as d,Ke as g,H as i};
@@ -355,6 +355,8 @@ export interface CloverViewerElement extends HTMLElement {
355
355
  request: { credentials?: RequestCredentials; headers?: Record<string, string>; fetch?: typeof fetch } | null;
356
356
  /** Renderers of yours, for its Body: each claims views (canvasId, format or match) and draws one into a box of its own (render), returning what undoes it. */
357
357
  renderers: CloverRenderer[] | null;
358
+ /** Default, Document and Gallery: the Body's Canvas options (its gestures, zoom limits and motion), the Gallery's in its lightbox. */
359
+ canvasOptions: CloverCanvasOptions | null;
358
360
  }
359
361
 
360
362
  /** The root of a layout of your own: it loads what it is given, holds the current view, and gives every part inside it the same state. The page's markup inside it stays as written. */
@@ -379,7 +381,7 @@ export interface CloverBodyElement extends HTMLElement {
379
381
  controls: boolean | { zoom?: boolean; fullPage?: boolean; rotation?: boolean; reset?: boolean; annotations?: boolean; information?: boolean; map?: boolean; [option: string]: unknown } | null;
380
382
  /** The Canvas's options: the request it loads with (credentials, headers, a fetch of your own), its gestures and more. */
381
383
  options: { request?: { credentials?: RequestCredentials; headers?: Record<string, string>; fetch?: typeof fetch }; [key: string]: unknown } | null;
382
- /** The Body's controls, each replaced by a button you make: a function given the control's name, label and Clover's icon, returning the button. Clover keeps it named, keyed and in its state, presses the control with it, and adds its popover. */
384
+ /** The Body's controls, each replaced by a button you make: a function given the control's name, label and Clover's icon, returning the button. Clover keeps it named, keyed and in its state, presses the control with it, and adds its popover. Where zoom in, zoom out or reset would do nothing, its props carry aria-disabled and no click handler: spread them. */
383
385
  controlButtons: CloverControlButtons | null;
384
386
  /** Renderers of yours for this Body only, in place of the root's: each claims views (canvasId, format or match) and draws one into a box of its own (render). */
385
387
  renderers: CloverRenderer[] | null;
@@ -583,7 +585,7 @@ export interface CloverCanvasElement extends HTMLElement {
583
585
  annotations: Array<{ id: string; target: string; label?: string; [key: string]: unknown }> | null;
584
586
  /** The Canvas's options: the request it loads with (credentials, headers, a fetch of your own), its gestures and more. */
585
587
  options: { request?: { credentials?: RequestCredentials; headers?: Record<string, string>; fetch?: typeof fetch }; [key: string]: unknown } | null;
586
- /** The Body's controls, each replaced by a button you make: a function given the control's name, label and Clover's icon, returning the button. Clover keeps it named, keyed and in its state, presses the control with it, and adds its popover. */
588
+ /** The Body's controls, each replaced by a button you make: a function given the control's name, label and Clover's icon, returning the button. Clover keeps it named, keyed and in its state, presses the control with it, and adds its popover. Where zoom in, zoom out or reset would do nothing, its props carry aria-disabled and no click handler: spread them. */
587
589
  controlButtons: CloverControlButtons | null;
588
590
  /** Which of the Body's controls it shows, as Canvas's controls takes it: false for none, or some ({ rotation: false }), in place of the attribute. */
589
591
  controls: boolean | { zoom?: boolean; fullPage?: boolean; rotation?: boolean; reset?: boolean; annotations?: boolean; information?: boolean; map?: boolean; [option: string]: unknown } | null;
@@ -609,7 +611,7 @@ export interface CloverSceneElement extends HTMLElement {
609
611
  iiifContent: string | Record<string, unknown> | null;
610
612
  /** A Presentation 4 Scene to draw. */
611
613
  scene: Record<string, unknown> | null;
612
- /** request: credentials and headers for the Scene and its models; hideDelay: how long the controls stay after a mouse stops, in milliseconds. */
614
+ /** request: credentials and headers for the Scene and its models; hideDelay: how long the controls stay after a mouse stops or a finger lifts, in milliseconds (3000). */
613
615
  options: { request?: Record<string, unknown>; hideDelay?: number } | null;
614
616
  /** Which of the Body's controls it shows: false for none, or some ({ rotation: false }), in place of the attribute. */
615
617
  controls: boolean | { zoom?: boolean; fullPage?: boolean; rotation?: boolean; reset?: boolean; information?: boolean } | null;
@@ -1 +1 @@
1
- import{d as n,i as o}from"./index-FJEpXukG.mjs";export{n as defineCloverElements,o as initCloverI18n};
1
+ import{d as n,i as o}from"./index-ClM6Kq8w.mjs";export{n as defineCloverElements,o as initCloverI18n};
@@ -0,0 +1 @@
1
+ import{T as m,u as r}from"./shared-CCg1Iag8.mjs";import{I as o}from"./Items-BHTQJU7T.mjs";import{w as n}from"./nodes-CmL3eoRE.mjs";function I({props:t}){const e=m(()=>n(t,["renderItem"]),[t]);return r(o,{...e})}export{I as ItemsElement};
@@ -1 +1 @@
1
- import{S as p,X as l,F as g,t as r,ad as v}from"./shared-DkY2a89G.mjs";function h(t){var i;return(i=v(t).find(({body:a})=>a.type))==null?void 0:i.body.type}function y(t){const i=h(t)??(t.type==="Timeline"?"Sound":void 0);return{id:t.id,type:t.type,label:t.label,resource:t,duration:Number(t.duration)||void 0,media:i}}const d=new WeakMap;function w(t){if(!t)return[];let i=d.get(t);if(!i){const{canvases:a,views:e}=g(t);i=e.map(u=>{const n=u.map(s=>y(a[s]));return{id:n[0].id,parts:n,label:n.length===1?n[0].label:{none:[n.map(s=>r(s.label).text).filter(Boolean).join(" \u2013 ")]}}}),d.set(t,i)}return i}const f=new WeakMap;function o(t){if(!t)return[];let i=f.get(t);return i||(i=p(t.items).filter(a=>a==null?void 0:a.id).map(a=>{var e;return{id:a.id,parts:[y(a)],label:a.label,summary:a.summary,...typeof a.navDate=="string"?{navDate:a.navDate}:{},href:((e=p(a.homepage)[0])==null?void 0:e.id)??a.id,...l(p(a.homepage)[0])?{hrefLang:l(p(a.homepage)[0])}:{}}}),f.set(t,i)),i}function A(t){return t?Array.isArray(t)?o({items:t}):t.type==="Collection"?o(t):w(t):[]}export{w as a,A as b,o as i};
1
+ import{S as p,Y as l,F as g,t as r,ac as v}from"./shared-CCg1Iag8.mjs";function h(t){var i;return(i=v(t).find(({body:a})=>a.type))==null?void 0:i.body.type}function y(t){const i=h(t)??(t.type==="Timeline"?"Sound":void 0);return{id:t.id,type:t.type,label:t.label,resource:t,duration:Number(t.duration)||void 0,media:i}}const f=new WeakMap;function w(t){if(!t)return[];let i=f.get(t);if(!i){const{canvases:a,views:e}=g(t);i=e.map(u=>{const n=u.map(s=>y(a[s]));return{id:n[0].id,parts:n,label:n.length===1?n[0].label:{none:[n.map(s=>r(s.label).text).filter(Boolean).join(" \u2013 ")]}}}),f.set(t,i)}return i}const d=new WeakMap;function o(t){if(!t)return[];let i=d.get(t);return i||(i=p(t.items).filter(a=>a==null?void 0:a.id).map(a=>{var e;return{id:a.id,parts:[y(a)],label:a.label,summary:a.summary,...typeof a.navDate=="string"?{navDate:a.navDate}:{},href:((e=p(a.homepage)[0])==null?void 0:e.id)??a.id,...l(p(a.homepage)[0])?{hrefLang:l(p(a.homepage)[0])}:{}}}),d.set(t,i)),i}function A(t){return t?Array.isArray(t)?o({items:t}):t.type==="Collection"?o(t):w(t):[]}export{w as a,A as b,o as i};
@@ -0,0 +1 @@
1
+ import{u as e}from"./shared-CCg1Iag8.mjs";import{L as o}from"./Label-D4dlrtpH.mjs";function n({props:r}){return e(o,{...r})}export{n as LabelElement};
@@ -1 +1 @@
1
- import{a8 as L,a9 as j,S as p,aa as H,ab as E,B as G}from"./shared-DkY2a89G.mjs";import{b as O}from"./imageService-iFElsopt.mjs";import{c as J}from"./choice-key-BUNebLKe.mjs";const Q=/^((application|audio|video)\/)?(vnd\.apple\.|x-)?mpegurl$/i,U=(t,o)=>!!(t&&/\.m3u8$/i.test(t.split(/[?#]/)[0]))||!!(o&&Q.test(o)),X={width:1600,height:900};function tt(t,o){const e=new Array(t.length);if(!t.length)return e;const n=t.map(N),i=o==="left-to-right"||o==="right-to-left",s=o==="right-to-left"||o==="bottom-to-top",u=i?n[0].height:n[0].width,r=t.map((a,h)=>h);s&&r.reverse();let c=0;for(const a of r){const h=n[a],f=u/(i?h.height:h.width),y=h.width*f,g=h.height*f;e[a]=i?{x:c,y:0,width:y,height:g}:{x:0,y:c,width:y,height:g},c+=i?y:g}return e}function N(t){var s,u;if(t.width&&t.height)return{width:t.width,height:t.height};const o=R(t);if(o!=null&&o.width&&o.height)return{width:o.width,height:o.height};const e=((s=k(t)[0])==null?void 0:s.body)??((u=D(t)[0])==null?void 0:u.body),n=Number(e==null?void 0:e.width),i=Number(e==null?void 0:e.height);return n>0&&i>0?{width:n,height:i}:X}function R(t){return t.accompanyingContainer??t.placeholderContainer}function ot(t,o,e,n,i){return J(t.id,o.id,e,n,i)}function gt(t){const o=[];for(const e of t)W(e,(n,i)=>{const s=n;if((s==null?void 0:s.type)!=="Choice")return;const u=p(s.items).filter(r=>!!r&&typeof r=="object");u.length>1&&o.push({key:i,canvasId:e.id,label:s.label,items:u.map(r=>({label:r.label,id:r.id,...typeof r.type=="string"?{type:r.type}:{},...typeof r.format=="string"?{format:r.format}:{}}))})});return o}const F={};function et(t){if(t.type!=="Video"&&!E(t.type)||!t.format||U(t.id,t.format)||typeof document>"u")return true;const o=t.type==="Video"?"video":"audio",e=F[o]??(F[o]=document.createElement(o));return typeof e.canPlayType!="function"?true:e.canPlayType(t.format)!==""}function lt(t){const o={};for(const e of t){const n=e.items.findIndex(et);n>0&&(o[e.key]=n)}return o}const V=new WeakMap,z=[];function nt(t){return H(t).some(o=>((o==null?void 0:o.type)==="Choice"?p(o.items):[o]).some(n=>(n==null?void 0:n.type)==="Video"||E(n==null?void 0:n.type)))}function it(t){var u;const o=V.get(t);if(o)return o;const e=[];for(const r of t.items??[])for(const c of r.items??[]){if(!L(c))continue;const a=c.target?(u=j(c.target))==null?void 0:u.t:void 0;if(!a)continue;const[h,f]=a.split(",").map(Number);Number.isFinite(h)&&e.push({annotation:c,start:h,end:Number.isFinite(f)?f:NaN})}if(e.every(r=>nt(r.annotation)))return V.set(t,z),z;e.sort((r,c)=>r.start-c.start);const n=Number(t.duration),i=Number.isFinite(n)&&n/e.length||.5;e.forEach((r,c)=>{var h;const a=(h=e[c+1])==null?void 0:h.start;r.end>r.start||(a!=null?r.end=a>r.start?a:r.start+i:Number.isFinite(n)&&n>r.start?r.end=n:r.end>r.start||(r.end=r.start+i))});const s=e.length>1?e:z;return V.set(t,s),s}const A=t=>`frame:${t.id}`;function W(t,o){(t.items??[]).forEach((e,n)=>{(e.items??[]).forEach((i,s)=>{L(i)&&H(i).forEach((u,r)=>o(u,ot(t,i,n,s,r),i))})})}function k(t,o={},{allFrames:e=false}={}){const n=[];return M(t,o,(i,s,u)=>{i.body.type==="Image"&&n.push({body:i.body,region:i.region,...i.rotation?{rotation:i.rotation}:{},target:s,...u>=0?{frame:u}:{}})},e),n}function yt(t,o={}){for(const e of t){let n;if(M(e,o,i=>{n??(n=i.body.type)}),typeof n=="string")return n.toLowerCase()}}function D(t,o={}){const e=[];return M(t,o,(n,i,s,u)=>{const r=n.body.type;if(r!=="Video"&&!E(r))return;const c=G(u);e.push({kind:r==="Video"?"video":"audio",body:n.body,target:i,...c?{time:c}:{}})}),e}function rt(t){const o=t.filter(n=>n.time&&typeof n.body.id=="string"),e=new Set(o.map(n=>n.time.start));if(!(o.length<2||e.size!==o.length))return o.sort((n,i)=>n.time.start-i.time.start).map(n=>{const i=Number(n.body.duration)||(n.time.end!==void 0?n.time.end-n.time.start:void 0);return{src:n.body.id,...n.body.format?{format:n.body.format}:{},start:n.time.start,...i?{duration:i}:{}}})}function M(t,o,e,n=false){const i=t.width??0,s=t.height??0,u=it(t),r=Math.min(o[A(t)]??0,Math.max(0,u.length-1));W(t,(c,a,h)=>{const f=u.findIndex(x=>x.annotation===h);if(!n&&f>=0&&f!==r)return;const y=B(c,o[a]??0);if(!y)return;const g=h.target?j(h.target):void 0,b=g==null?void 0:g.rect;e(y,b?{x:b.x,y:b.y,width:b.w,height:b.h}:{x:0,y:0,width:i||Number(y.body.width)||0,height:s||Number(y.body.height)||0},f,g==null?void 0:g.t)})}function st(t){return ut(t).filter(o=>o.kind!=="transcript")}function ct(t){const o=p(t.provides);return o.includes("closedCaptions")?"captions":o.includes("subtitles")||o.includes("translation")?"subtitles":o.includes("transcript")?"transcript":"captions"}function ut(t){const o=[],e=[...t.annotations??[],...t.items??[]];for(const n of e)for(const i of n.items??[])if(p(i.motivation).includes("supplementing"))for(const s of p(i.body)){const u=s,r=(u==null?void 0:u.type)==="Choice"?p(u.items):[u];for(const c of r){const a=c==null?void 0:c.id;!((c==null?void 0:c.format)==="text/vtt"||typeof a=="string"&&/\.vtt(\?|$)/i.test(a))||typeof a!="string"||o.push({id:a,label:c.label,language:p(c.language)[0],kind:ct(i)})}}return o}function mt(t){const o=[],e=i=>{const s=i,u=s==null?void 0:s.id;if(typeof u!="string"||o.some(c=>c.id===u))return;const r=s==null?void 0:s.format;(r?r!=="text/plain":!/\.txt(\?|$)/i.test(u))||o.push({id:u,label:s==null?void 0:s.label,language:p(s==null?void 0:s.language)[0]})},n=[...t.annotations??[],...t.items??[]];for(const i of n)for(const s of i.items??[])if(p(s.motivation).includes("supplementing"))for(const u of p(s.body)){const r=u;((r==null?void 0:r.type)==="Choice"?p(r.items):[r]).forEach(e)}return p(t.rendering).forEach(e),o}function B(t,o=0){if(!t||typeof t!="object")return null;const e=t;if(e.type==="Choice"){const n=p(e.items);return B(n[o]??n[0])}if(e.type==="SpecificResource"&&e.source){const n=typeof e.source=="string"?{id:e.source}:e.source,i=p(e.selector).find(r=>(r==null?void 0:r.type)==="ImageApiSelector"),s=B({type:"Image",...n});if(!s)return null;const u=(i==null?void 0:i.rotation)!=null?String(i.rotation):void 0;return{...s,region:(i==null?void 0:i.region)||s.region,...u?{rotation:u}:{}}}return e.type!=="Image"&&e.type!=="Video"&&!E(e.type)?null:{body:e,region:typeof e.region=="string"?e.region:void 0}}function bt(t,o,e={},{standIns:n=true}={}){const i=tt(t,o),s=[],u=[],r={};return t.forEach((c,a)=>{const h=i[a],f=N(c),y=h.width/f.width,g=h.height/f.height,b=d=>({x:h.x+d.x*y,y:h.y+d.y*g,width:d.width*y,height:d.height*g}),x=D(c,e),T=k(c,e,{allFrames:true}).map(d=>({...d,canvas:c})),S=R(c);if(n&&!T.length&&x.some(d=>d.kind==="audio")&&S){const d=N(S);for(const l of k(S))T.push({...l,canvas:S,target:{x:l.target.x/d.width*f.width,y:l.target.y/d.height*f.height,width:l.target.width/d.width*f.width,height:l.target.height/d.height*f.height}})}const Y=e[A(c)]??0;T.forEach(({body:d,target:l,region:I,rotation:$,frame:w,canvas:Z},q)=>{var K;const C=O(d.service);if(!C&&!d.id)return;const _=`${Z.id}|${q}|${d.id??C}|${I??""}|${$??""}`,P=!(C&&I);if(s.push({id:_,service:C,url:d.id,width:P&&Number(d.width)||void 0,height:P&&Number(d.height)||void 0,region:I,...$?{rotation:$}:{},placement:b(l),...w!=null&&w!==Y?{hidden:true}:{}}),w!=null){const v=r[K=A(c)]??(r[K]=[]);(v[w]??(v[w]=[])).push(_)}});const[m]=x;if(m!=null&&m.body.id){const d=rt(x),l=d?d[0]:void 0;u.push({id:`${c.id}|media|${m.body.id}`,kind:m.kind,src:(l==null?void 0:l.src)??m.body.id,format:l?l.format:m.body.format,placement:b(m.target),duration:d?Number(c.duration)||void 0:Number(m.body.duration??c.duration)||void 0,...d?{segments:d}:{},poster:dt(c),captions:st(c)})}}),{images:s,media:u,placements:i,frames:r}}function dt(t){var o;return(o=ht(t))==null?void 0:o.source}const wt=1280;function ht(t){var c;const o=t.placeholderContainer;if(!o)return;const e=(c=k(o)[0])==null?void 0:c.body;if(!e)return;const n=O(e.service),i=typeof e.id=="string"?e.id:void 0,s=n?{service:n,fallback:i}:i?{src:i}:void 0;if(!s)return;const{width:u,height:r}=N(o);return{source:s,width:u,height:r}}function xt(t,o,e){const n=N(t),i=o.width/n.width,s=o.height/n.height;return{x:o.x+e.x*i,y:o.y+e.y*s,width:e.width*i,height:e.height*s}}export{wt as S,mt as a,it as b,ut as c,bt as d,ht as e,gt as f,A as g,xt as h,N as i,D as j,st as k,U as l,et as m,yt as p,B as r,lt as s};
1
+ import{a7 as L,a8 as j,S as p,a9 as H,aa as E,B as G}from"./shared-CCg1Iag8.mjs";import{b as O}from"./imageService-DFPkPNfe.mjs";import{c as J}from"./choice-key-BUNebLKe.mjs";const Q=/^((application|audio|video)\/)?(vnd\.apple\.|x-)?mpegurl$/i,U=(t,o)=>!!(t&&/\.m3u8$/i.test(t.split(/[?#]/)[0]))||!!(o&&Q.test(o)),X={width:1600,height:900};function tt(t,o){const e=new Array(t.length);if(!t.length)return e;const n=t.map(N),i=o==="left-to-right"||o==="right-to-left",s=o==="right-to-left"||o==="bottom-to-top",u=i?n[0].height:n[0].width,r=t.map((a,h)=>h);s&&r.reverse();let c=0;for(const a of r){const h=n[a],f=u/(i?h.height:h.width),y=h.width*f,g=h.height*f;e[a]=i?{x:c,y:0,width:y,height:g}:{x:0,y:c,width:y,height:g},c+=i?y:g}return e}function N(t){var s,u;if(t.width&&t.height)return{width:t.width,height:t.height};const o=R(t);if(o!=null&&o.width&&o.height)return{width:o.width,height:o.height};const e=((s=k(t)[0])==null?void 0:s.body)??((u=D(t)[0])==null?void 0:u.body),n=Number(e==null?void 0:e.width),i=Number(e==null?void 0:e.height);return n>0&&i>0?{width:n,height:i}:X}function R(t){return t.accompanyingContainer??t.placeholderContainer}function ot(t,o,e,n,i){return J(t.id,o.id,e,n,i)}function gt(t){const o=[];for(const e of t)W(e,(n,i)=>{const s=n;if((s==null?void 0:s.type)!=="Choice")return;const u=p(s.items).filter(r=>!!r&&typeof r=="object");u.length>1&&o.push({key:i,canvasId:e.id,label:s.label,items:u.map(r=>({label:r.label,id:r.id,...typeof r.type=="string"?{type:r.type}:{},...typeof r.format=="string"?{format:r.format}:{}}))})});return o}const F={};function et(t){if(t.type!=="Video"&&!E(t.type)||!t.format||U(t.id,t.format)||typeof document>"u")return true;const o=t.type==="Video"?"video":"audio",e=F[o]??(F[o]=document.createElement(o));return typeof e.canPlayType!="function"?true:e.canPlayType(t.format)!==""}function lt(t){const o={};for(const e of t){const n=e.items.findIndex(et);n>0&&(o[e.key]=n)}return o}const V=new WeakMap,z=[];function nt(t){return H(t).some(o=>((o==null?void 0:o.type)==="Choice"?p(o.items):[o]).some(n=>(n==null?void 0:n.type)==="Video"||E(n==null?void 0:n.type)))}function it(t){var u;const o=V.get(t);if(o)return o;const e=[];for(const r of t.items??[])for(const c of r.items??[]){if(!L(c))continue;const a=c.target?(u=j(c.target))==null?void 0:u.t:void 0;if(!a)continue;const[h,f]=a.split(",").map(Number);Number.isFinite(h)&&e.push({annotation:c,start:h,end:Number.isFinite(f)?f:NaN})}if(e.every(r=>nt(r.annotation)))return V.set(t,z),z;e.sort((r,c)=>r.start-c.start);const n=Number(t.duration),i=Number.isFinite(n)&&n/e.length||.5;e.forEach((r,c)=>{var h;const a=(h=e[c+1])==null?void 0:h.start;r.end>r.start||(a!=null?r.end=a>r.start?a:r.start+i:Number.isFinite(n)&&n>r.start?r.end=n:r.end>r.start||(r.end=r.start+i))});const s=e.length>1?e:z;return V.set(t,s),s}const A=t=>`frame:${t.id}`;function W(t,o){(t.items??[]).forEach((e,n)=>{(e.items??[]).forEach((i,s)=>{L(i)&&H(i).forEach((u,r)=>o(u,ot(t,i,n,s,r),i))})})}function k(t,o={},{allFrames:e=false}={}){const n=[];return M(t,o,(i,s,u)=>{i.body.type==="Image"&&n.push({body:i.body,region:i.region,...i.rotation?{rotation:i.rotation}:{},target:s,...u>=0?{frame:u}:{}})},e),n}function yt(t,o={}){for(const e of t){let n;if(M(e,o,i=>{n??(n=i.body.type)}),typeof n=="string")return n.toLowerCase()}}function D(t,o={}){const e=[];return M(t,o,(n,i,s,u)=>{const r=n.body.type;if(r!=="Video"&&!E(r))return;const c=G(u);e.push({kind:r==="Video"?"video":"audio",body:n.body,target:i,...c?{time:c}:{}})}),e}function rt(t){const o=t.filter(n=>n.time&&typeof n.body.id=="string"),e=new Set(o.map(n=>n.time.start));if(!(o.length<2||e.size!==o.length))return o.sort((n,i)=>n.time.start-i.time.start).map(n=>{const i=Number(n.body.duration)||(n.time.end!==void 0?n.time.end-n.time.start:void 0);return{src:n.body.id,...n.body.format?{format:n.body.format}:{},start:n.time.start,...i?{duration:i}:{}}})}function M(t,o,e,n=false){const i=t.width??0,s=t.height??0,u=it(t),r=Math.min(o[A(t)]??0,Math.max(0,u.length-1));W(t,(c,a,h)=>{const f=u.findIndex(x=>x.annotation===h);if(!n&&f>=0&&f!==r)return;const y=B(c,o[a]??0);if(!y)return;const g=h.target?j(h.target):void 0,b=g==null?void 0:g.rect;e(y,b?{x:b.x,y:b.y,width:b.w,height:b.h}:{x:0,y:0,width:i||Number(y.body.width)||0,height:s||Number(y.body.height)||0},f,g==null?void 0:g.t)})}function st(t){return ut(t).filter(o=>o.kind!=="transcript")}function ct(t){const o=p(t.provides);return o.includes("closedCaptions")?"captions":o.includes("subtitles")||o.includes("translation")?"subtitles":o.includes("transcript")?"transcript":"captions"}function ut(t){const o=[],e=[...t.annotations??[],...t.items??[]];for(const n of e)for(const i of n.items??[])if(p(i.motivation).includes("supplementing"))for(const s of p(i.body)){const u=s,r=(u==null?void 0:u.type)==="Choice"?p(u.items):[u];for(const c of r){const a=c==null?void 0:c.id;!((c==null?void 0:c.format)==="text/vtt"||typeof a=="string"&&/\.vtt(\?|$)/i.test(a))||typeof a!="string"||o.push({id:a,label:c.label,language:p(c.language)[0],kind:ct(i)})}}return o}function mt(t){const o=[],e=i=>{const s=i,u=s==null?void 0:s.id;if(typeof u!="string"||o.some(c=>c.id===u))return;const r=s==null?void 0:s.format;(r?r!=="text/plain":!/\.txt(\?|$)/i.test(u))||o.push({id:u,label:s==null?void 0:s.label,language:p(s==null?void 0:s.language)[0]})},n=[...t.annotations??[],...t.items??[]];for(const i of n)for(const s of i.items??[])if(p(s.motivation).includes("supplementing"))for(const u of p(s.body)){const r=u;((r==null?void 0:r.type)==="Choice"?p(r.items):[r]).forEach(e)}return p(t.rendering).forEach(e),o}function B(t,o=0){if(!t||typeof t!="object")return null;const e=t;if(e.type==="Choice"){const n=p(e.items);return B(n[o]??n[0])}if(e.type==="SpecificResource"&&e.source){const n=typeof e.source=="string"?{id:e.source}:e.source,i=p(e.selector).find(r=>(r==null?void 0:r.type)==="ImageApiSelector"),s=B({type:"Image",...n});if(!s)return null;const u=(i==null?void 0:i.rotation)!=null?String(i.rotation):void 0;return{...s,region:(i==null?void 0:i.region)||s.region,...u?{rotation:u}:{}}}return e.type!=="Image"&&e.type!=="Video"&&!E(e.type)?null:{body:e,region:typeof e.region=="string"?e.region:void 0}}function bt(t,o,e={},{standIns:n=true}={}){const i=tt(t,o),s=[],u=[],r={};return t.forEach((c,a)=>{const h=i[a],f=N(c),y=h.width/f.width,g=h.height/f.height,b=d=>({x:h.x+d.x*y,y:h.y+d.y*g,width:d.width*y,height:d.height*g}),x=D(c,e),T=k(c,e,{allFrames:true}).map(d=>({...d,canvas:c})),S=R(c);if(n&&!T.length&&x.some(d=>d.kind==="audio")&&S){const d=N(S);for(const l of k(S))T.push({...l,canvas:S,target:{x:l.target.x/d.width*f.width,y:l.target.y/d.height*f.height,width:l.target.width/d.width*f.width,height:l.target.height/d.height*f.height}})}const Y=e[A(c)]??0;T.forEach(({body:d,target:l,region:I,rotation:$,frame:w,canvas:Z},q)=>{var K;const C=O(d.service);if(!C&&!d.id)return;const _=`${Z.id}|${q}|${d.id??C}|${I??""}|${$??""}`,P=!(C&&I);if(s.push({id:_,service:C,url:d.id,width:P&&Number(d.width)||void 0,height:P&&Number(d.height)||void 0,region:I,...$?{rotation:$}:{},placement:b(l),...w!=null&&w!==Y?{hidden:true}:{}}),w!=null){const v=r[K=A(c)]??(r[K]=[]);(v[w]??(v[w]=[])).push(_)}});const[m]=x;if(m!=null&&m.body.id){const d=rt(x),l=d?d[0]:void 0;u.push({id:`${c.id}|media|${m.body.id}`,kind:m.kind,src:(l==null?void 0:l.src)??m.body.id,format:l?l.format:m.body.format,placement:b(m.target),duration:d?Number(c.duration)||void 0:Number(m.body.duration??c.duration)||void 0,...d?{segments:d}:{},poster:dt(c),captions:st(c)})}}),{images:s,media:u,placements:i,frames:r}}function dt(t){var o;return(o=ht(t))==null?void 0:o.source}const wt=1280;function ht(t){var c;const o=t.placeholderContainer;if(!o)return;const e=(c=k(o)[0])==null?void 0:c.body;if(!e)return;const n=O(e.service),i=typeof e.id=="string"?e.id:void 0,s=n?{service:n,fallback:i}:i?{src:i}:void 0;if(!s)return;const{width:u,height:r}=N(o);return{source:s,width:u,height:r}}function xt(t,o,e){const n=N(t),i=o.width/n.width,s=o.height/n.height;return{x:o.x+e.x*i,y:o.y+e.y*s,width:e.width*i,height:e.height*s}}export{wt as S,mt as a,it as b,ut as c,bt as d,ht as e,gt as f,A as g,xt as h,N as i,D as j,st as k,U as l,et as m,yt as p,B as r,lt as s};
@@ -1 +1 @@
1
- import{S as n,aa as p,a9 as c}from"./shared-DkY2a89G.mjs";function g(r){if(n(r==null?void 0:r.motivation).includes("linking"))for(const i of p(r)){if((i==null?void 0:i.type)==="TextualBody"||typeof(i==null?void 0:i.value)=="string")continue;const t=(i==null?void 0:i.type)==="SpecificResource"?i.source:i,e=typeof t=="string"?t:t==null?void 0:t.id;if(!(typeof e!="string"||!e)){if((t==null?void 0:t.type)==="Canvas"){const f=n(t.partOf).find(s=>(s==null?void 0:s.id)&&(!s.type||s.type==="Manifest")),u=c(e).id;return{id:e,canvasId:u,...f?{manifestId:f.id}:{}}}if((t==null?void 0:t.type)==="Manifest"||(t==null?void 0:t.type)==="Collection")return{id:e,manifestId:e};if(/^https?:\/\//i.test(e))return{id:e}}}}function o(r){const i=n(r==null?void 0:r.motivation);if(!(!i.includes("tagging")&&!i.includes("identifying")))for(const t of p(r)){if((t==null?void 0:t.type)==="TextualBody"||typeof(t==null?void 0:t.value)=="string")continue;const e=(t==null?void 0:t.type)==="SpecificResource"?t.source:t,f=typeof e=="string"?e:e==null?void 0:e.id;if(typeof f=="string"&&/^https?:\/\//i.test(f))return{id:f}}}export{o as a,g as r};
1
+ import{S as n,a9 as p,a8 as c}from"./shared-CCg1Iag8.mjs";function g(r){if(n(r==null?void 0:r.motivation).includes("linking"))for(const i of p(r)){if((i==null?void 0:i.type)==="TextualBody"||typeof(i==null?void 0:i.value)=="string")continue;const t=(i==null?void 0:i.type)==="SpecificResource"?i.source:i,e=typeof t=="string"?t:t==null?void 0:t.id;if(!(typeof e!="string"||!e)){if((t==null?void 0:t.type)==="Canvas"){const f=n(t.partOf).find(s=>(s==null?void 0:s.id)&&(!s.type||s.type==="Manifest")),u=c(e).id;return{id:e,canvasId:u,...f?{manifestId:f.id}:{}}}if((t==null?void 0:t.type)==="Manifest"||(t==null?void 0:t.type)==="Collection")return{id:e,manifestId:e};if(/^https?:\/\//i.test(e))return{id:e}}}}function o(r){const i=n(r==null?void 0:r.motivation);if(!(!i.includes("tagging")&&!i.includes("identifying")))for(const t of p(r)){if((t==null?void 0:t.type)==="TextualBody"||typeof(t==null?void 0:t.value)=="string")continue;const e=(t==null?void 0:t.type)==="SpecificResource"?t.source:t,f=typeof e=="string"?e:e==null?void 0:e.id;if(typeof f=="string"&&/^https?:\/\//i.test(f))return{id:f}}}export{o as a,g as r};
@@ -0,0 +1 @@
1
+ import{u as t}from"./shared-CCg1Iag8.mjs";import{L as n}from"./Provider-C0IUdU6v.mjs";function i({hosted:o,props:r}){var e;return((e=o.element.parentElement)==null?void 0:e.localName)==="clover-provider"?null:t(n,{...r})}export{i as LogoElement};
@@ -0,0 +1 @@
1
+ const o=void 0;export{o as css};
@@ -0,0 +1 @@
1
+ function h(r){r.dataset.masonry="";const o=()=>Array.from(r.querySelectorAll(".clover-items-track > .clover-items-item")),a=e=>{const n=e.parentElement;if(!n)return;const l=getComputedStyle(n),d=parseFloat(l.gridAutoRows)||1,i=parseFloat(l.columnGap)||0,u=e.getBoundingClientRect().height;e.style.gridRowEnd=`span ${Math.max(1,Math.ceil((u+i)/d))}`},t=typeof ResizeObserver>"u"?null:new ResizeObserver(e=>e.forEach(n=>a(n.target))),s=()=>o().forEach(e=>{t==null||t.observe(e),a(e)}),c=new MutationObserver(s);return c.observe(r,{childList:true,subtree:true}),s(),()=>{c.disconnect(),t==null||t.disconnect(),o().forEach(e=>e.style.removeProperty("grid-row-end")),delete r.dataset.masonry}}export{h as attachMasonry};
@@ -1 +1 @@
1
- import{a8 as M,aa as l,S as f}from"./shared-DkY2a89G.mjs";const m=45,d=75*Math.PI/180,h=5*Math.PI/180,p=Math.PI-h,y=1.1,g=.35,I=4;function P(n,a=1){const t=m*Math.PI/180,o=2*Math.atan(Math.tan(t/2)*a),s=Math.min(t,o);return Math.max(n,1e-6)/Math.sin(s/2)*y}function x(n,a=1){return{theta:0,phi:d,distance:P(n.radius,a)}}function E(n,a,t){return{...n,theta:n.theta+a,phi:Math.min(p,Math.max(h,n.phi+t))}}function R(n,a,t){const o=n.distance/a;return{...n,distance:Math.min(t.distance*I,Math.max(t.distance*g,o))}}function z(n,a){const{theta:t,phi:o,distance:s}=n;return[a[0]+s*Math.sin(o)*Math.sin(t),a[1]+s*Math.cos(o),a[2]+s*Math.sin(o)*Math.cos(t)]}function A(n,a){const t=(s,i)=>Math.abs(s-i)<1e-6,o=(n.theta-a.theta)%(2*Math.PI);return(t(o,0)||t(Math.abs(o),2*Math.PI))&&t(n.phi,a.phi)&&t(n.distance,a.distance)}const O=["model/gltf-binary","model/gltf+json"],c=(n,a)=>{const t=Number(n);return Number.isFinite(t)?t:a};function F(n){return n.format?O.includes(n.format.toLowerCase()):/\.(glb|gltf)(\?|#|$)/i.test(n.src)}function S(n){return f(n.transform).flatMap(a=>{const t=a,o=(t==null?void 0:t.type)==="ScaleTransform"?"scale":(t==null?void 0:t.type)==="RotateTransform"?"rotate":(t==null?void 0:t.type)==="TranslateTransform"?"translate":null;if(!o||!t)return[];const s=o==="scale"?1:0;return[{type:o,x:c(t.x,s),y:c(t.y,s),z:c(t.z,s)}]})}function b(n){for(const a of f(n)){const t=a;if((t==null?void 0:t.type)!=="SpecificResource")continue;const o=f(t.selector).find(s=>(s==null?void 0:s.type)==="PointSelector");if(o)return[c(o.x,0),c(o.y,0),c(o.z,0)]}return[0,0,0]}const u=new WeakMap;function _(n){const a=u.get(n);if(a)return a;const t=[];for(const o of n.items??[])for(const s of(o==null?void 0:o.items)??[])if(M(s))for(let i of l(s)){(i==null?void 0:i.type)==="Choice"&&(i=f(i.items)[0]);const r=(i==null?void 0:i.type)==="SpecificResource"?i:null,e=r?typeof r.source=="string"?{id:r.source,type:"Model"}:r.source:i;(e==null?void 0:e.type)!=="Model"||typeof e.id!="string"||t.push({id:String(s.id??e.id),src:e.id,...typeof e.format=="string"?{format:e.format}:{},...e.label?{label:e.label}:{},position:b(s.target),transforms:r?S(r):[]})}return u.set(n,t),t}function w(n){const a=n.backgroundColor;return typeof a=="string"&&/^#([0-9a-f]{3}|[0-9a-f]{6})$/i.test(a)?a:void 0}export{m as F,O as M,w as a,A as b,z as c,x as h,F as i,_ as s,E as t,R as z};
1
+ import{a7 as M,a9 as l,S as f}from"./shared-CCg1Iag8.mjs";const m=45,d=75*Math.PI/180,h=5*Math.PI/180,p=Math.PI-h,y=1.1,g=.35,I=4;function P(n,a=1){const t=m*Math.PI/180,o=2*Math.atan(Math.tan(t/2)*a),s=Math.min(t,o);return Math.max(n,1e-6)/Math.sin(s/2)*y}function x(n,a=1){return{theta:0,phi:d,distance:P(n.radius,a)}}function E(n,a,t){return{...n,theta:n.theta+a,phi:Math.min(p,Math.max(h,n.phi+t))}}function R(n,a,t){const o=n.distance/a;return{...n,distance:Math.min(t.distance*I,Math.max(t.distance*g,o))}}function z(n,a){const{theta:t,phi:o,distance:s}=n;return[a[0]+s*Math.sin(o)*Math.sin(t),a[1]+s*Math.cos(o),a[2]+s*Math.sin(o)*Math.cos(t)]}function A(n,a){const t=(s,i)=>Math.abs(s-i)<1e-6,o=(n.theta-a.theta)%(2*Math.PI);return(t(o,0)||t(Math.abs(o),2*Math.PI))&&t(n.phi,a.phi)&&t(n.distance,a.distance)}const O=["model/gltf-binary","model/gltf+json"],c=(n,a)=>{const t=Number(n);return Number.isFinite(t)?t:a};function F(n){return n.format?O.includes(n.format.toLowerCase()):/\.(glb|gltf)(\?|#|$)/i.test(n.src)}function S(n){return f(n.transform).flatMap(a=>{const t=a,o=(t==null?void 0:t.type)==="ScaleTransform"?"scale":(t==null?void 0:t.type)==="RotateTransform"?"rotate":(t==null?void 0:t.type)==="TranslateTransform"?"translate":null;if(!o||!t)return[];const s=o==="scale"?1:0;return[{type:o,x:c(t.x,s),y:c(t.y,s),z:c(t.z,s)}]})}function b(n){for(const a of f(n)){const t=a;if((t==null?void 0:t.type)!=="SpecificResource")continue;const o=f(t.selector).find(s=>(s==null?void 0:s.type)==="PointSelector");if(o)return[c(o.x,0),c(o.y,0),c(o.z,0)]}return[0,0,0]}const u=new WeakMap;function _(n){const a=u.get(n);if(a)return a;const t=[];for(const o of n.items??[])for(const s of(o==null?void 0:o.items)??[])if(M(s))for(let i of l(s)){(i==null?void 0:i.type)==="Choice"&&(i=f(i.items)[0]);const r=(i==null?void 0:i.type)==="SpecificResource"?i:null,e=r?typeof r.source=="string"?{id:r.source,type:"Model"}:r.source:i;(e==null?void 0:e.type)!=="Model"||typeof e.id!="string"||t.push({id:String(s.id??e.id),src:e.id,...typeof e.format=="string"?{format:e.format}:{},...e.label?{label:e.label}:{},position:b(s.target),transforms:r?S(r):[]})}return u.set(n,t),t}function w(n){const a=n.backgroundColor;return typeof a=="string"&&/^#([0-9a-f]{3}|[0-9a-f]{6})$/i.test(a)?a:void 0}export{m as F,O as M,w as a,A as b,z as c,x as h,F as i,_ as s,E as t,R as z};
@@ -1 +1 @@
1
- import{A as i,q as f,C as p,_ as l,u as a}from"./shared-DkY2a89G.mjs";const b={childList:true,subtree:true,attributes:true,attributeFilter:["value","label","slot","controls"]};function h(t,e,n){const r=i(null),o=f(s=>{const u=new MutationObserver(s);return u.observe(t,b),()=>u.disconnect()},[t]);return p(o,()=>{const s=e();return r.current&&n(r.current.value,s)?r.current.value:(r.current={value:s},s)})}const v=(t,e)=>[...t.children].find(n=>n.getAttribute("slot")===e)??null;function y(t,e){return h(t,()=>v(t,e),Object.is)}function C({of:t}){const e=i(null);return l(()=>{const n=e.current;if(!n)return;const r=()=>n.replaceChildren(...[...t.childNodes].map(c=>c.cloneNode(true)));r();const o=new MutationObserver(r);return o.observe(t,{childList:true,subtree:true,characterData:true,attributes:true}),()=>o.disconnect()},[t]),a("span",{ref:e,style:{display:"contents"}})}function M({from:t,stays:e}){const n=i(null);return l(()=>{const r=n.current;if(!r)return;const o=()=>{for(const s of[...t.childNodes])e(s)||r.append(s)};o();const c=new MutationObserver(o);return c.observe(t,{childList:true}),()=>{c.disconnect(),t.append(...r.childNodes)}},[t,e]),a("div",{ref:n,style:{display:"contents"}})}function O({from:t,picks:e}){const n=i(null);return l(()=>{const r=n.current;if(!r)return;let o=[];const c=()=>{const u=[...t.childNodes].filter(e);u.length&&(o=o.filter(d=>d.parentNode===r.parentNode),(o.at(-1)??r).after(...u),o.push(...u))};c();const s=new MutationObserver(c);return s.observe(t,{childList:true}),()=>{s.disconnect();for(const u of o)u.parentNode===r.parentNode&&t.append(u)}},[t,e]),a("span",{ref:n,hidden:true})}function N({value:t}){const e=i(null);return l(()=>{var n;(n=e.current)==null||n.replaceChildren(t instanceof Node?t:String(t))},[t]),a("span",{ref:e,style:{display:"contents"}})}function g(t,e){let n=t;for(const r of e){const o=t[r];typeof o=="function"&&(n={...n,[r]:(...c)=>{const s=o(...c);return s==null?s:a(N,{value:s})}})}return n}export{C,M,O as P,y as a,v as s,h as u,g as w};
1
+ import{A as i,q as f,C as p,_ as l,u as a}from"./shared-CCg1Iag8.mjs";const b={childList:true,subtree:true,attributes:true,attributeFilter:["value","label","slot","controls"]};function h(t,e,n){const r=i(null),o=f(s=>{const u=new MutationObserver(s);return u.observe(t,b),()=>u.disconnect()},[t]);return p(o,()=>{const s=e();return r.current&&n(r.current.value,s)?r.current.value:(r.current={value:s},s)})}const v=(t,e)=>[...t.children].find(n=>n.getAttribute("slot")===e)??null;function y(t,e){return h(t,()=>v(t,e),Object.is)}function C({of:t}){const e=i(null);return l(()=>{const n=e.current;if(!n)return;const r=()=>n.replaceChildren(...[...t.childNodes].map(c=>c.cloneNode(true)));r();const o=new MutationObserver(r);return o.observe(t,{childList:true,subtree:true,characterData:true,attributes:true}),()=>o.disconnect()},[t]),a("span",{ref:e,style:{display:"contents"}})}function M({from:t,stays:e}){const n=i(null);return l(()=>{const r=n.current;if(!r)return;const o=()=>{for(const s of[...t.childNodes])e(s)||r.append(s)};o();const c=new MutationObserver(o);return c.observe(t,{childList:true}),()=>{c.disconnect(),t.append(...r.childNodes)}},[t,e]),a("div",{ref:n,style:{display:"contents"}})}function O({from:t,picks:e}){const n=i(null);return l(()=>{const r=n.current;if(!r)return;let o=[];const c=()=>{const u=[...t.childNodes].filter(e);u.length&&(o=o.filter(d=>d.parentNode===r.parentNode),(o.at(-1)??r).after(...u),o.push(...u))};c();const s=new MutationObserver(c);return s.observe(t,{childList:true}),()=>{s.disconnect();for(const u of o)u.parentNode===r.parentNode&&t.append(u)}},[t,e]),a("span",{ref:n,hidden:true})}function N({value:t}){const e=i(null);return l(()=>{var n;(n=e.current)==null||n.replaceChildren(t instanceof Node?t:String(t))},[t]),a("span",{ref:e,style:{display:"contents"}})}function g(t,e){let n=t;for(const r of e){const o=t[r];typeof o=="function"&&(n={...n,[r]:(...c)=>{const s=o(...c);return s==null?s:a(N,{value:s})}})}return n}export{C,M,O as P,y as a,v as s,h as u,g as w};
@@ -1 +1 @@
1
- import{b as c,f as s}from"./imageService-iFElsopt.mjs";import{s as a}from"./sizedImage-NHzhcBYk.mjs";async function l(r,o,i){const t=typeof r.id=="string"?r.id:void 0,e=c(r.service);if(!e)return t;try{const n=await s(e,{request:i});return a(n,o)??t}catch{return t}}export{l as overlayImageUrl};
1
+ import{b as c,f as s}from"./imageService-DFPkPNfe.mjs";import{s as a}from"./sizedImage-CKOGmqhN.mjs";async function l(r,o,i){const t=typeof r.id=="string"?r.id:void 0,e=c(r.service);if(!e)return t;try{const n=await s(e,{request:i});return a(n,o)??t}catch{return t}}export{l as overlayImageUrl};
@@ -1 +1 @@
1
- import{d as v,A as g,y as p,u as s}from"./shared-DkY2a89G.mjs";import{T as y,P as S}from"./Panel-BvDpCn6K.mjs";import{u as b,M as C,C as w,s as A}from"./nodes-ChQRLDGU.mjs";const k=l=>[...l.children].filter(t=>t.localName==="clover-tab").map((t,e)=>{const n=t.getAttribute("value")||String(e);return{element:t,value:n,label:t.getAttribute("label")||n,labelSlot:A(t,"label")}}),E=(l,t)=>l.length===t.length&&l.every((e,n)=>e.element===t[n].element&&e.value===t[n].value&&e.label===t[n].label&&e.labelSlot===t[n].labelSlot),M=l=>l instanceof Element&&l.getAttribute("slot")==="label",a=new WeakMap;let O=0;const P=l=>(a.has(l)||a.set(l,++O),a.get(l));function T(l){const t=l.ownerDocument;for(let e=l;e&&e!==t.body;e=e.parentElement){if(!e.id)continue;const n=e.id.replace(/["\\]/g,"\\$&");if(t.querySelector(`[aria-controls~="${n}"]`)){e.hidden=true;return}}l.hidden=true}function q({hosted:l,props:t}){const e=l.element,n=b(e,()=>k(e),E),{value:r,closable:i,onValueChange:m,onClose:f,...d}=t,[h,c]=v(r),u=g(r);return p(()=>{r!==u.current&&(u.current=r,r&&c(r))},[r]),s(S,{...d,value:h,onValueChange:o=>{c(o),m(o)},onClose:i?()=>{f()&&T(e)}:void 0,children:n.length?n.map(o=>s(y,{value:o.value,label:o.labelSlot?s(w,{of:o.labelSlot}):o.label,children:s(C,{from:o.element,stays:M})},P(o.element))):null})}export{q as PanelElement};
1
+ import{d as v,A as g,y as p,u as s}from"./shared-CCg1Iag8.mjs";import{T as y,P as S}from"./Panel-C8r3EsWn.mjs";import{u as b,M as C,C as w,s as A}from"./nodes-CmL3eoRE.mjs";const k=l=>[...l.children].filter(t=>t.localName==="clover-tab").map((t,e)=>{const n=t.getAttribute("value")||String(e);return{element:t,value:n,label:t.getAttribute("label")||n,labelSlot:A(t,"label")}}),E=(l,t)=>l.length===t.length&&l.every((e,n)=>e.element===t[n].element&&e.value===t[n].value&&e.label===t[n].label&&e.labelSlot===t[n].labelSlot),M=l=>l instanceof Element&&l.getAttribute("slot")==="label",a=new WeakMap;let O=0;const P=l=>(a.has(l)||a.set(l,++O),a.get(l));function T(l){const t=l.ownerDocument;for(let e=l;e&&e!==t.body;e=e.parentElement){if(!e.id)continue;const n=e.id.replace(/["\\]/g,"\\$&");if(t.querySelector(`[aria-controls~="${n}"]`)){e.hidden=true;return}}l.hidden=true}function q({hosted:l,props:t}){const e=l.element,n=b(e,()=>k(e),E),{value:r,closable:i,onValueChange:m,onClose:f,...d}=t,[h,c]=v(r),u=g(r);return p(()=>{r!==u.current&&(u.current=r,r&&c(r))},[r]),s(S,{...d,value:h,onValueChange:o=>{c(o),m(o)},onClose:i?()=>{f()&&T(e)}:void 0,children:n.length?n.map(o=>s(y,{value:o.value,label:o.labelSlot?s(w,{of:o.labelSlot}):o.label,children:s(C,{from:o.element,stays:M})},P(o.element))):null})}export{q as PanelElement};
@@ -0,0 +1 @@
1
+ import{T as i,u as e}from"./shared-CCg1Iag8.mjs";import{w as u}from"./nodes-CmL3eoRE.mjs";function a(r,t=[]){return function({props:n}){const o=i(()=>u(n,t),[n]);return e(r,{...o})}}export{a as drawn};
@@ -1 +1 @@
1
- import{a as w,c as E,b,T as v}from"./pointer-YQppt0at.mjs";import{u as S}from"./useControlsVisibility-DPg8uAkW.mjs";const M=i=>{const s=new Map,p=e=>{var t;return(t=s.get(e))==null?void 0:t.forEach(r=>r())};let l=false,o=null,n=null,u=false,a=null;const d=e=>{w(e)&&(u=true)},m=e=>{a=e.isPrimary&&e.button===0&&(e.target===i||e.target===n)?{x:e.clientX,y:e.clientY,t:e.timeStamp,direct:E(e.pointerType,u)}:null},f=e=>{const t=a;a=null,!(!t||e.timeStamp-t.t>=b||Math.hypot(e.clientX-t.x,e.clientY-t.y)>v)&&!(o!=null&&o())&&!t.direct&&p("tap")},c=e=>{e!==n&&(n==null||n.remove(),n=e,n&&(Object.assign(n.style,{position:"absolute",inset:"0",width:"100%",height:"100%",objectFit:"contain"}),n.classList.add("clover-canvas-dom-media"),i.append(n)))};return i.addEventListener("pointermove",d),i.addEventListener("pointerdown",m),i.addEventListener("pointerup",f),{host:i,get isOpen(){return l},on(e,t){const r=s.get(e)??new Set;return s.set(e,r.add(t)),()=>r.delete(t)},async setImages(e,{world:t}={}){var g,y;const r=(y=(g=e.find(L=>L.media))==null?void 0:g.media)==null?void 0:y.element;c(r instanceof HTMLVideoElement?r:null),!(!t&&!e.length)&&(p(l?"change":"open"),l=true)},clear:()=>c(null),setDismiss(e){o=e},setGestures(){},dispose(){c(null),s.clear(),i.removeEventListener("pointermove",d),i.removeEventListener("pointerdown",m),i.removeEventListener("pointerup",f)}}};M.controlsVisibility=S;export{M as p};
1
+ import{a as w,c as E,b,T as v}from"./pointer-DWnCT3D3.mjs";import{u as S}from"./useControlsVisibility-oRiMiQhD.mjs";const M=i=>{const s=new Map,p=e=>{var t;return(t=s.get(e))==null?void 0:t.forEach(r=>r())};let l=false,o=null,n=null,u=false,a=null;const d=e=>{w(e)&&(u=true)},m=e=>{a=e.isPrimary&&e.button===0&&(e.target===i||e.target===n)?{x:e.clientX,y:e.clientY,t:e.timeStamp,direct:E(e.pointerType,u)}:null},f=e=>{const t=a;a=null,!(!t||e.timeStamp-t.t>=b||Math.hypot(e.clientX-t.x,e.clientY-t.y)>v)&&!(o!=null&&o())&&!t.direct&&p("tap")},c=e=>{e!==n&&(n==null||n.remove(),n=e,n&&(Object.assign(n.style,{position:"absolute",inset:"0",width:"100%",height:"100%",objectFit:"contain"}),n.classList.add("clover-canvas-dom-media"),i.append(n)))};return i.addEventListener("pointermove",d),i.addEventListener("pointerdown",m),i.addEventListener("pointerup",f),{host:i,get isOpen(){return l},on(e,t){const r=s.get(e)??new Set;return s.set(e,r.add(t)),()=>r.delete(t)},async setImages(e,{world:t}={}){var g,y;const r=(y=(g=e.find(L=>L.media))==null?void 0:g.media)==null?void 0:y.element;c(r instanceof HTMLVideoElement?r:null),!(!t&&!e.length)&&(p(l?"change":"open"),l=true)},clear:()=>c(null),setDismiss(e){o=e},setGestures(){},dispose(){c(null),s.clear(),i.removeEventListener("pointermove",d),i.removeEventListener("pointerdown",m),i.removeEventListener("pointerup",f)}}};M.controlsVisibility=S;export{M as p};
@@ -0,0 +1 @@
1
+ var T=Object.defineProperty;var x=(e,t,n)=>t in e?T(e,t,{enumerable:true,configurable:true,writable:true,value:n}):e[t]=n;var L=(e,t,n)=>x(e,typeof t!="symbol"?t+"":t,n);import{a as E,A as M,d as v,ab as N,y as m,u as c,t as S,l as p,P as O,z as B,_ as I,q as H,C as P,R as A}from"./shared-CCg1Iag8.mjs";import{C as D}from"./glyphs-BCnJl8py.mjs";import{B as w}from"./Button-BIaw5k1q.mjs";import"./styles-C7PVxtkQ.mjs";import{T as W}from"./Tip-DPFWlNLu.mjs";import{e as _}from"./controlGlyphs-d7KUIUwi.mjs";const q=B(()=>import("./CaptionDetails-Bxz8AXMz.mjs"));function re(e){var t;return!!e.summary||!!((t=e.metadata)!=null&&t.length)}const U=(e,t)=>`${e}-label-${t}`,oe=({id:e,canvases:t,comments:n,open:s,onClose:r,language:o})=>{const{t:u,langOf:a}=E(),i=M(null),[f,h]=v(s);return s&&!f&&h(true),N(s,()=>r(false)),m(()=>{var l;s&&((l=i.current)==null||l.focus())},[s]),c("figcaption",{className:"clover-canvas-caption","data-open":s,"data-testid":"clover-canvas-caption",id:e,onKeyDown:l=>{l.key==="Escape"&&(l.preventDefault(),l.stopPropagation(),r(true))},ref:i,tabIndex:-1,children:[c(w,{className:"clover-canvas-caption-close",id:`close-${e}`,label:u("commonClose"),lang:a("commonClose"),onClick:()=>r(true),children:c(D,{})}),t.map((l,g)=>{const d=S(l.label,o);return c("section",{className:"clover-canvas-caption-canvas",children:[d.text&&c("p",{className:"clover-canvas-caption-label",id:U(e,g),...p(d.lang),children:d.text}),f&&c(O,{fallback:null,children:c(q,{summary:l.summary,metadata:l.metadata,comments:n==null?void 0:n.get(l.id),language:o})})]},l.id)})]})},$=112,z=128;function j(e){I(()=>{const t=e==null?void 0:e.closest(".clover-canvas");if(!e||!t)return;const n=(o=false)=>{let u=e.offsetWidth,a=0;for(const d of o?[]:Array.from(e.children))!(d instanceof HTMLElement)||!d.offsetParent||(u=Math.min(u,d.offsetLeft),a=Math.max(a,d.offsetTop+d.offsetHeight));const i={width:e.offsetWidth-u,height:a};for(const[d,C]of Object.entries(i)){const y=`--clover-canvas-controls-${d}`;a?t.style.setProperty(y,`${C}px`):t.style.removeProperty(y)}const f=e.offsetTop,h=t.querySelector(":scope > .clover-canvas-media > .clover-canvas-transport"),l=t.clientHeight-2*f-i.height-((h==null?void 0:h.offsetHeight)??0),g=e.offsetLeft+u-f;a&&l<$&&g>=z?t.dataset.popups="beside":delete t.dataset.popups};n();const s=new ResizeObserver(()=>n());s.observe(e),s.observe(t);const r=new MutationObserver(()=>n());return r.observe(e,{childList:true}),r.observe(t,{childList:true}),()=>{s.disconnect(),r.disconnect(),n(true)}},[e])}const b=()=>{if(typeof document>"u")return null;const e=document;return e.fullscreenElement??e.webkitFullscreenElement??null},k=()=>{if(typeof document>"u")return false;const e=document;return!!(e.fullscreenEnabled??e.webkitFullscreenEnabled)},F=e=>{const t=e==null?void 0:e.closest(".clover-root"),n=e==null?void 0:e.closest("dialog");return t&&!(n&&t.contains(n))?t:(e==null?void 0:e.closest(".clover-canvas"))??null},K=(e,t)=>{if(typeof e.webkitEnterFullscreen!="function")return;const n=t.closest(".clover-canvas"),s=!e.isConnected&&!!n;if(s&&n){const o=e.getAttribute("style");e.style.cssText="position:absolute;inset:0;z-index:-1;width:100%;height:100%;object-fit:contain;pointer-events:none",n.prepend(e),e.addEventListener("webkitendfullscreen",()=>{e.remove(),o===null?e.removeAttribute("style"):e.setAttribute("style",o)},{once:true})}const r=()=>{var o;try{(o=e.webkitEnterFullscreen)==null||o.call(e)}catch{}};s?requestAnimationFrame(r):r()},Y=async(e,t)=>{var s,r,o,u;const n=F(e);if(n)try{if(b()){const i=document;await(((s=i.exitFullscreen)==null?void 0:s.call(i))??((r=i.webkitExitFullscreen)==null?void 0:r.call(i)));return}if(!k()){t&&e&&K(t,e);return}const a=n;await(((o=a.requestFullscreen)==null?void 0:o.call(a))??((u=a.webkitRequestFullscreen)==null?void 0:u.call(a)))}catch{}};function R(e){const[t,n]=v(false);return m(()=>{if(!e)return;const s=()=>{var r;return n(!!((r=b())!=null&&r.contains(e)))};return s(),document.addEventListener("fullscreenchange",s),document.addEventListener("webkitfullscreenchange",s),()=>{document.removeEventListener("fullscreenchange",s),document.removeEventListener("webkitfullscreenchange",s)}},[e]),t}function ae({key:e,id:t,label:n,glyph:s,onClick:r,expanded:o,controls:u,shortcut:a,lang:i,unavailable:f},h){const l=h==null?void 0:h[e];return l?c(l,{buttonProps:{id:t,type:"button","aria-label":n,...i&&{lang:i},...a&&{"aria-keyshortcuts":a.keys},onClick:f?void 0:r,...f&&{"aria-disabled":true},...o!==void 0&&{"aria-expanded":o,"aria-controls":u}},icon:c(_,{label:n,children:s}),label:n,tip:c(W,{label:n,shortcut:a})},e):c(w,{id:t,label:n,onClick:f?void 0:r,unavailable:f,expanded:o,controls:u,shortcut:a,lang:i,children:s},e)}const ce=({fit:e=false,clusterRef:t,children:n})=>{const[s,r]=v(null),o=R(s);j(s);const u=H(a=>{r(a),t==null||t(a)},[t]);return c("div",{className:"clover-canvas-controls","data-fit":e||void 0,"data-fullscreen":o,"data-testid":"clover-canvas-controls",ref:u,children:n})},V=()=>()=>{};function le(){return P(V,k)}const ie=({hidden:e})=>{const{t,langOf:n}=E(),s=t("imageExitFullScreen");return c("button",{"aria-label":s,...p(n("imageExitFullScreen")),className:"clover-canvas-exit-full-screen",hidden:e,onClick:r=>void Y(r.currentTarget),type:"button",children:[c("svg",{viewBox:"0 0 512 512",width:"20",height:"20","aria-hidden":"true",focusable:"false",children:c("path",{fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"45",d:"M244 400L100 256l144-144M120 256h292"})}),s]})};function ue(e){const[t,n]=v(false);return m(()=>{if(!e)return;const s=()=>n(b()===e);return s(),document.addEventListener("fullscreenchange",s),document.addEventListener("webkitfullscreenchange",s),()=>{document.removeEventListener("fullscreenchange",s),document.removeEventListener("webkitfullscreenchange",s)}},[e]),t}function de(e){const[t,n]=v(false);return m(()=>{if(!e)return;const s=()=>{const r=b();n(r===e||!!r&&F(e)===r&&(r==null?void 0:r.querySelector(".clover-canvas"))===e)};return s(),document.addEventListener("fullscreenchange",s),document.addEventListener("webkitfullscreenchange",s),()=>{document.removeEventListener("fullscreenchange",s),document.removeEventListener("webkitfullscreenchange",s)}},[e]),t}class fe extends A.Component{constructor(){super(...arguments);L(this,"state",{error:null})}static getDerivedStateFromError(n){return{error:n}}render(){const{error:n}=this.state;return n?c("div",{className:"clover-canvas-error",role:"alert",lang:"en",children:[c("p",{className:"clover-canvas-error-headline","data-testid":"headline",children:"Something went wrong"}),n.message&&c("span",{className:"clover-canvas-error-body",children:`Error message: ${n.message}`})]}):this.props.children}}const G={image:"bodyUnloadableImage",video:"bodyUnloadableVideo",audio:"bodyUnloadableAudio",model:"bodyUnloadableModel"};function he({kind:e,shown:t,room:n=false}){const{t:s,langOf:r}=E(),o=G[e];return c("div",{className:"clover-body-unloadable","data-room":n||void 0,role:"status",children:t&&c("p",{...p(r(o)),children:s(o)})})}function ve({text:e,lang:t}){return c("div",{className:"clover-body-note","aria-hidden":"true",children:c("p",{...p(t),children:e})})}const J=5,me=300,pe=J*4;function be(e,t=false){return e==="touch"||e==="pen"&&!t}function ge(e){return e.pointerType==="pen"&&e.buttons===0}function Ee(e,t,n){for(let s=e;s&&s!==t;s=s.parentElement)if((n>0?s.scrollHeight-s.clientHeight-s.scrollTop:s.scrollTop)>=1&&/auto|scroll/.test(getComputedStyle(s).overflowY))return true;return false}function ye(e,t){var s;let n=e;for(;n&&n!==t;){if(n instanceof HTMLButtonElement||n instanceof HTMLAnchorElement||n instanceof HTMLInputElement||n instanceof HTMLLabelElement||n instanceof HTMLSelectElement||((s=n.dataset)==null?void 0:s.cloverCanvasInteractive)!==void 0)return true;n=n.parentElement}return false}export{he as B,ce as C,pe as D,fe as E,J as T,ge as a,me as b,be as c,R as d,ue as e,de as f,U as g,re as h,ye as i,ie as j,ve as k,oe as l,ae as r,Ee as s,Y as t,le as u};
@@ -1 +1 @@
1
- import{u as r}from"./shared-DkY2a89G.mjs";import{L as n,P as a}from"./Provider-DyB0wpeO.mjs";import{u as i}from"./nodes-ChQRLDGU.mjs";const s=t=>[...t.children].filter(e=>e.localName==="clover-logo").map(e=>({element:e,alt:e.getAttribute("alt")??void 0})),c=(t,e)=>t.length===e.length&&t.every((l,o)=>l.element===e[o].element&&l.alt===e[o].alt);function u({hosted:t,props:e}){const l=i(t.element,()=>s(t.element),c);return r(a,{...e,children:l.length?l.map((o,m)=>r(n,{alt:o.alt},m)):void 0})}export{u as ProviderElement};
1
+ import{u as r}from"./shared-CCg1Iag8.mjs";import{L as n,P as a}from"./Provider-C0IUdU6v.mjs";import{u as i}from"./nodes-CmL3eoRE.mjs";const s=t=>[...t.children].filter(e=>e.localName==="clover-logo").map(e=>({element:e,alt:e.getAttribute("alt")??void 0})),c=(t,e)=>t.length===e.length&&t.every((l,o)=>l.element===e[o].element&&l.alt===e[o].alt);function u({hosted:t,props:e}){const l=i(t.element,()=>s(t.element),c);return r(a,{...e,children:l.length?l.map((o,m)=>r(n,{alt:o.alt},m)):void 0})}export{u as ProviderElement};
@@ -1 +1 @@
1
- import{S as c,av as l,a9 as g,aw as v,L as b}from"./shared-DkY2a89G.mjs";const A=t=>t&&typeof t=="object"?Object.entries(t).flatMap(([i,r])=>c(r).filter(s=>typeof s=="string").map(s=>({value:s,...i!=="none"?{language:i}:{}}))):typeof t=="string"?[{value:t}]:[],a=new WeakMap;function j(t){if(!t)return null;if(a.has(t))return a.get(t);const i=[],r=new Set,s=n=>{if(!n||r.has(n.id??n))return;r.add(n.id??n);const w=typeof n.id=="string"&&!c(n.behavior).includes("no-nav"),d=A(n.label),h=c(n.items).filter(o=>(o==null?void 0:o.type)!=="Range"&&g(v(o)).id).length;let x=0;for(const o of c(n.items)){if((o==null?void 0:o.type)==="Range"){s(o);continue}const e=g(v(o));if(!e.id)continue;const f=x++;if(!w||!e.rect)continue;const{x:S,y:T,w:I,h:$}=e.rect,u=b(n.id,f);i.push({id:u,setId:l,canvasId:e.id,target:{id:e.id,rect:e.rect},motivation:["highlighting"],bodies:d,...h>1?{place:{index:f+1,total:h}}:{},annotation:{id:u,type:"Annotation",motivation:["highlighting"],...d.length&&{body:d.map(({value:E,language:y})=>({type:"TextualBody",value:E,...y?{language:y}:{}}))},target:`${e.id}#xywh=${S},${T},${I},${$}`}})}};c(t.structures).forEach(s);const p=i.length?{id:l,source:"contents",entries:i}:null;return a.set(t,p),p}export{j as contentsSet};
1
+ import{S as c,av as l,a8 as g,aw as v,L as b}from"./shared-CCg1Iag8.mjs";const A=t=>t&&typeof t=="object"?Object.entries(t).flatMap(([i,r])=>c(r).filter(s=>typeof s=="string").map(s=>({value:s,...i!=="none"?{language:i}:{}}))):typeof t=="string"?[{value:t}]:[],a=new WeakMap;function j(t){if(!t)return null;if(a.has(t))return a.get(t);const i=[],r=new Set,s=n=>{if(!n||r.has(n.id??n))return;r.add(n.id??n);const w=typeof n.id=="string"&&!c(n.behavior).includes("no-nav"),d=A(n.label),h=c(n.items).filter(o=>(o==null?void 0:o.type)!=="Range"&&g(v(o)).id).length;let x=0;for(const o of c(n.items)){if((o==null?void 0:o.type)==="Range"){s(o);continue}const e=g(v(o));if(!e.id)continue;const f=x++;if(!w||!e.rect)continue;const{x:S,y:T,w:I,h:$}=e.rect,u=b(n.id,f);i.push({id:u,setId:l,canvasId:e.id,target:{id:e.id,rect:e.rect},motivation:["highlighting"],bodies:d,...h>1?{place:{index:f+1,total:h}}:{},annotation:{id:u,type:"Annotation",motivation:["highlighting"],...d.length&&{body:d.map(({value:E,language:y})=>({type:"TextualBody",value:E,...y?{language:y}:{}}))},target:`${e.id}#xywh=${S},${T},${I},${$}`}})}};c(t.structures).forEach(s);const p=i.length?{id:l,source:"contents",entries:i}:null;return a.set(t,p),p}export{j as contentsSet};
@@ -1 +1 @@
1
- import{a as m,a2 as f,b,A as p,_ as n,u as v,l as g}from"./shared-DkY2a89G.mjs";import{u as L}from"./ReadMore-De_0T7lc.mjs";import{u as A}from"./nodes-ChQRLDGU.mjs";const M=o=>[...o.children].find(r=>!r.classList.contains("clover-read-more-button"))??null;function k({hosted:o}){const r=o.element,e=A(r,()=>M(r),Object.is),{t:s}=m(),i=f(),a=b(),l=p(null);l.current=e;const{open:t,cut:c,toggle:d}=L(l);return n(()=>(r.classList.add("clover-read-more"),()=>r.classList.remove("clover-read-more")),[r]),n(()=>{if(!e)return;const u=e.id;return u||(e.id=a),()=>{u||e.removeAttribute("id"),e.removeAttribute("data-read-more")}},[e,a]),n(()=>{e==null||e.setAttribute("data-read-more",t?"open":"")},[e,t]),!e||!(c||t)?null:v("button",{type:"button",className:"clover-read-more-button","aria-expanded":t,"aria-controls":e.id||a,onClick:d,ref:i.ref,...g(i.langOf(t?"readLess":"readMore")),children:s(t?"readLess":"readMore")})}export{k as ReadMoreElement};
1
+ import{a as m,a2 as f,b,A as p,_ as n,u as v,l as g}from"./shared-CCg1Iag8.mjs";import{u as L}from"./ReadMore-BiEJA4yO.mjs";import{u as A}from"./nodes-CmL3eoRE.mjs";const M=o=>[...o.children].find(r=>!r.classList.contains("clover-read-more-button"))??null;function k({hosted:o}){const r=o.element,e=A(r,()=>M(r),Object.is),{t:s}=m(),i=f(),a=b(),l=p(null);l.current=e;const{open:t,cut:c,toggle:d}=L(l);return n(()=>(r.classList.add("clover-read-more"),()=>r.classList.remove("clover-read-more")),[r]),n(()=>{if(!e)return;const u=e.id;return u||(e.id=a),()=>{u||e.removeAttribute("id"),e.removeAttribute("data-read-more")}},[e,a]),n(()=>{e==null||e.setAttribute("data-read-more",t?"open":"")},[e,t]),!e||!(c||t)?null:v("button",{type:"button",className:"clover-read-more-button","aria-expanded":t,"aria-controls":e.id||a,onClick:d,ref:i.ref,...g(i.langOf(t?"readLess":"readMore")),children:s(t?"readLess":"readMore")})}export{k as ReadMoreElement};
@@ -1 +1 @@
1
- import{Z as a,t as c,e as u,c as l,T as g}from"./shared-DkY2a89G.mjs";function f(e,t,o){if(o&&e.includes(o))return o;if(!e.length)return;const s=a(e,t);return s==="none"?e[0]:s}const y=e=>e&&typeof e=="object"&&!Array.isArray(e)?Object.keys(e).filter(t=>t!=="none"&&t!=="@none"&&c({[t]:e[t]}).text):[];function i(e){if(!e)return[];const t=[...Array.isArray(e.metadata)?e.metadata:[],e.requiredStatement].filter(Boolean),s=[e.label,e.summary,...t.flatMap(n=>[n==null?void 0:n.label,n==null?void 0:n.value])].map(y).filter(n=>n.length>1);return[...new Set(s.flat())]}function d(){const{language:e,chooseLanguage:t}=u("About"),o=l(r=>r.manifest),s=g(()=>i(o),[o]),n=f(s,e);return n&&t?{languages:s,chosen:n,onChange:t}:null}export{f as s,d as u};
1
+ import{V as a,t as c,e as u,c as l,T as g}from"./shared-CCg1Iag8.mjs";function f(e,t,o){if(o&&e.includes(o))return o;if(!e.length)return;const s=a(e,t);return s==="none"?e[0]:s}const y=e=>e&&typeof e=="object"&&!Array.isArray(e)?Object.keys(e).filter(t=>t!=="none"&&t!=="@none"&&c({[t]:e[t]}).text):[];function i(e){if(!e)return[];const t=[...Array.isArray(e.metadata)?e.metadata:[],e.requiredStatement].filter(Boolean),s=[e.label,e.summary,...t.flatMap(n=>[n==null?void 0:n.label,n==null?void 0:n.value])].map(y).filter(n=>n.length>1);return[...new Set(s.flat())]}function d(){const{language:e,chooseLanguage:t}=u("About"),o=l(r=>r.manifest),s=g(()=>i(o),[o]),n=f(s,e);return n&&t?{languages:s,chosen:n,onChange:t}:null}export{f as s,d as u};
@@ -0,0 +1,22 @@
1
+ var Et=Object.defineProperty;var kt=(n,t,e)=>t in n?Et(n,t,{enumerable:true,configurable:true,writable:true,value:e}):n[t]=e;var h=(n,t,e)=>kt(n,typeof t!="symbol"?t+"":t,e);import{c as Lt,r as $}from"./contexts-ByL3eA_T.mjs";import{c as k,s as L,t as _,a as _t,u as mt,i as Pt,b as pt,d as gt,e as At,r as It,f as I,g as St}from"./CanvasView-CmDxczm9.mjs";import{a as S,w as Rt,v as N,f as Bt,s as Q,b as j,c as Ot}from"./Camera-7SlnmGtb.mjs";import{i as J,a as Ct,T as zt,b as tt,c as et,D as Ut,s as Dt}from"./pointer-DWnCT3D3.mjs";import{a0 as Wt,a1 as Ft}from"./shared-CCg1Iag8.mjs";import{a as Ht,i as it,f as Nt}from"./imageService-DFPkPNfe.mjs";function Gt(n){return typeof HTMLImageElement<"u"&&n instanceof HTMLImageElement?n.complete&&n.naturalWidth>0:true}function Xt(n,t){if(!n.bleed)return{x:0,y:0};const e=n.transform,i=Math.hypot(e.a,e.b)*t,s=Math.hypot(e.c,e.d)*t;return{x:n.bleed.right&&i>0?1/i:0,y:n.bleed.bottom&&s>0?1/s:0}}const Zt=`#version 300 es
2
+ in vec2 a_position;
3
+ uniform mat3 u_matrix;
4
+ uniform vec4 u_crop;
5
+ out vec2 v_uv;
6
+
7
+ void main() {
8
+ vec3 clip = u_matrix * vec3(a_position, 1.0);
9
+ gl_Position = vec4(clip.xy, 0.0, 1.0);
10
+ v_uv = u_crop.xy + a_position * u_crop.zw;
11
+ }
12
+ `,Kt=`#version 300 es
13
+ precision highp float;
14
+ in vec2 v_uv;
15
+ uniform sampler2D u_texture;
16
+ uniform float u_opacity;
17
+ out vec4 outColor;
18
+
19
+ void main() {
20
+ outColor = texture(u_texture, v_uv) * u_opacity;
21
+ }
22
+ `;class R{constructor(t,e,i){h(this,"kind","webgl2");h(this,"canvas");h(this,"maxTextureSize");h(this,"gl");h(this,"program",null);h(this,"vao",null);h(this,"uniforms",{matrix:null,crop:null,opacity:null,texture:null});h(this,"textures",new Map);h(this,"cssWidth",1);h(this,"cssHeight",1);h(this,"pixelRatio",1);h(this,"matrixScratch",new Float32Array(9));h(this,"isLost",false);h(this,"callbacks");h(this,"handleLost",()=>{var t2,e2;this.isLost=true,this.textures.clear(),(e2=(t2=this.callbacks).onLost)==null||e2.call(t2)});this.canvas=t,this.gl=e,this.callbacks=i,this.maxTextureSize=e.getParameter(e.MAX_TEXTURE_SIZE)||4096;const s=Vt(e,Zt,Kt);this.program=s,this.uniforms={matrix:e.getUniformLocation(s,"u_matrix"),crop:e.getUniformLocation(s,"u_crop"),opacity:e.getUniformLocation(s,"u_opacity"),texture:e.getUniformLocation(s,"u_texture")};const r=e.createVertexArray();e.bindVertexArray(r);const o=e.createBuffer();e.bindBuffer(e.ARRAY_BUFFER,o),e.bufferData(e.ARRAY_BUFFER,new Float32Array([0,0,1,0,0,1,1,1]),e.STATIC_DRAW);const a=e.getAttribLocation(s,"a_position");e.enableVertexAttribArray(a),e.vertexAttribPointer(a,2,e.FLOAT,false,0,0),e.bindVertexArray(null),this.vao=r,e.enable(e.BLEND),e.blendFunc(e.ONE,e.ONE_MINUS_SRC_ALPHA),e.pixelStorei(e.UNPACK_PREMULTIPLY_ALPHA_WEBGL,true),e.pixelStorei(e.UNPACK_FLIP_Y_WEBGL,false),e.pixelStorei(e.UNPACK_COLORSPACE_CONVERSION_WEBGL,e.BROWSER_DEFAULT_WEBGL),t.addEventListener("webglcontextlost",this.handleLost)}static create(t,e={}){let i=null;try{i=t.getContext("webgl2",{alpha:true,premultipliedAlpha:true,antialias:false,depth:false,stencil:false,preserveDrawingBuffer:false})}catch{i=null}if(!i||typeof i.createShader!="function")return null;try{return new R(t,i,e)}catch{return null}}resize(t,e,i){this.cssWidth=Math.max(1,t),this.cssHeight=Math.max(1,e),this.pixelRatio=i;const s=Math.max(1,Math.round(t*i)),r=Math.max(1,Math.round(e*i));this.canvas.width!==s&&(this.canvas.width=s),this.canvas.height!==r&&(this.canvas.height=r)}begin(){if(this.isLost)return;const t=this.gl;t.viewport(0,0,this.canvas.width,this.canvas.height),t.clearColor(0,0,0,0),t.clear(t.COLOR_BUFFER_BIT),t.useProgram(this.program),t.bindVertexArray(this.vao),t.activeTexture(t.TEXTURE0),t.uniform1i(this.uniforms.texture,0)}draw(t){if(this.isLost||!Gt(t.source))return"skipped";const e=this.gl,i=this.upload(t);if(i==="tainted")return"tainted";if(!i)return"skipped";const s=t.crop??{x:0,y:0,width:t.width,height:t.height},r=Xt(t,this.pixelRatio),o=k(t.transform,_(s.x,s.y),L(s.width+r.x,s.height+r.y));return e.uniformMatrix3fv(this.uniforms.matrix,false,_t(o,this.cssWidth,this.cssHeight,this.matrixScratch)),e.uniform4f(this.uniforms.crop,s.x/t.width,s.y/t.height,s.width/t.width,s.height/t.height),e.uniform1f(this.uniforms.opacity,t.opacity),e.bindTexture(e.TEXTURE_2D,i.texture),e.drawArrays(e.TRIANGLE_STRIP,0,4),"drawn"}end(){this.isLost||this.gl.bindVertexArray(null)}has(t){return!this.isLost&&this.textures.has(t)}release(t){const e=this.textures.get(t);e&&(this.isLost||this.gl.deleteTexture(e.texture),this.textures.delete(t))}dispose(){var t;if(this.canvas.removeEventListener("webglcontextlost",this.handleLost),!this.isLost){for(const e of[...this.textures.keys()])this.release(e);this.program&&this.gl.deleteProgram(this.program),this.vao&&this.gl.deleteVertexArray(this.vao)}this.textures.clear(),(t=this.gl.getExtension("WEBGL_lose_context"))==null||t.loseContext(),this.isLost=true}upload(t){const e=this.gl,i=this.textures.get(t.key);if(i&&i.width===t.width&&i.height===t.height)return i;const s=(i==null?void 0:i.texture)??e.createTexture();if(!s)return null;e.bindTexture(e.TEXTURE_2D,s);try{e.texImage2D(e.TEXTURE_2D,0,e.RGBA,e.RGBA,e.UNSIGNED_BYTE,t.source)}catch(o){if(i||e.deleteTexture(s),qt(o))return"tainted";throw o}e.generateMipmap(e.TEXTURE_2D),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.LINEAR_MIPMAP_LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.LINEAR),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE);const r={texture:s,width:t.width,height:t.height};return this.textures.set(t.key,r),r}}function Vt(n,t,e){const i=st(n,n.VERTEX_SHADER,t),s=st(n,n.FRAGMENT_SHADER,e),r=n.createProgram();if(!r)throw new Error("Could not create WebGL program");if(n.attachShader(r,i),n.attachShader(r,s),n.linkProgram(r),n.deleteShader(i),n.deleteShader(s),!n.getProgramParameter(r,n.LINK_STATUS)){const o=n.getProgramInfoLog(r);throw n.deleteProgram(r),new Error(`Could not link WebGL program: ${o}`)}return r}function st(n,t,e){const i=n.createShader(t);if(!i)throw new Error("Could not create WebGL shader");if(n.shaderSource(i,e),n.compileShader(i),!n.getShaderParameter(i,n.COMPILE_STATUS)){const s=n.getShaderInfoLog(i);throw n.deleteShader(i),new Error(`Could not compile WebGL shader: ${s}`)}return i}function qt(n){return typeof n=="object"&&n!==null&&n.name==="SecurityError"}const Yt=.09,$t=1e-4,nt=.05,Qt=1e-4;class jt{constructor(t,e=Yt,i){h(this,"current");h(this,"target",null);h(this,"timeConstant");h(this,"spring");h(this,"start");h(this,"elapsed",0);this.current={...t},this.start={...t},this.timeConstant=e,this.spring=i}get destination(){return this.target?{...this.target.state}:{...this.current}}set(t){this.current={...t},this.target=null}animateTo(t,e,i=false){const s=this.spring?this.spring.duration<=0:this.timeConstant===0;if(i||s){this.set(t.state);return}let r=t.anchor;if(r){const o=S(r.world,r.screen,t.state.zoom,t.state.rotation,e);Math.hypot(o.x-t.state.x,o.y-t.state.y)*t.state.zoom>nt&&(r=void 0)}this.start={...this.current},this.elapsed=0,this.target={state:{...t.state},anchor:r}}stop(){this.target=null}step(t,e){const i=this.target;if(!i)return false;const s=i.state;let r,o;if(this.spring){this.elapsed+=Math.max(t,0);const m=this.elapsed/this.spring.duration;if(m>=1)return this.current={...s},this.target=null,false;const c=this.spring.stiffness;r=this.start,o=(1-Math.exp(-c*m))/(1-Math.exp(-c))}else r=this.current,o=1-Math.exp(-Math.max(t,0)/this.timeConstant);const a=Math.exp(Math.log(r.zoom)+(Math.log(s.zoom)-Math.log(r.zoom))*o),d=r.rotation+(s.rotation-r.rotation)*o,l=i.anchor?S(i.anchor.world,i.anchor.screen,a,d,e):{x:r.x+(s.x-r.x)*o,y:r.y+(s.y-r.y)*o};return this.current={x:l.x,y:l.y,zoom:a,rotation:d},this.spring?true:Math.abs(Math.log(s.zoom/a))<$t&&Math.abs(s.rotation-d)<Qt&&Math.hypot(s.x-l.x,s.y-l.y)*a<nt?(this.current={...s},this.target=null,false):true}}const G={clickToZoom:true,dblClickToZoom:true,pinchToZoom:true,scrollToZoom:false,navigable:true,flickEnabled:true,flickMinSpeed:200,flickMomentum:.25},z=2,rt=1.5,ot=.1,Jt=100,te=.002,ee=.01;class ie{constructor(t,e,i=G){h(this,"pointers",new Map);h(this,"samples",[]);h(this,"down",null);h(this,"pinch",null);h(this,"lastTap",null);h(this,"lastPointerType","");h(this,"penHovers",false);h(this,"onPointerDown",t2=>{var i2,s;if(this.lastPointerType=t2.pointerType,t2.pointerType==="mouse"&&t2.button!==0||J(t2.target,this.element))return;(s=(i2=this.element).setPointerCapture)==null||s.call(i2,t2.pointerId);const e2=this.local(t2);this.pointers.set(t2.pointerId,e2),this.pointers.size===1?(this.down={x:e2.x,y:e2.y,t:t2.timeStamp,moved:false},this.samples=[{x:e2.x,y:e2.y,t:t2.timeStamp}],this.target.setInteracting(true)):this.pointers.size===2&&(this.pinch=this.pinchState(),this.down&&(this.down.moved=true))});h(this,"onPointerMove",t2=>{var s;Ct(t2)&&(this.penHovers=true);const e2=this.pointers.get(t2.pointerId);if(!e2)return;const i2=this.local(t2);if(this.pointers.set(t2.pointerId,i2),this.pointers.size===1){const r=i2.x-e2.x,o=i2.y-e2.y;this.down&&Math.hypot(i2.x-this.down.x,i2.y-this.down.y)>zt&&(this.down.moved=true),(s=this.down)!=null&&s.moved&&this.options.navigable&&this.target.panBy(r,o,!this.tracksPointer(t2.pointerType)),this.samples.push({x:i2.x,y:i2.y,t:t2.timeStamp});const a=t2.timeStamp-Jt;for(;this.samples.length>2&&this.samples[0].t<a;)this.samples.shift()}else if(this.pointers.size===2&&this.pinch&&this.options.navigable){const r=this.pinchState();this.options.pinchToZoom&&this.pinch.distance>0&&this.target.zoomBy(r.distance/this.pinch.distance,r.mid,false),this.target.panBy(r.mid.x-this.pinch.mid.x,r.mid.y-this.pinch.mid.y,false),this.pinch=r}});h(this,"onPointerUp",t2=>{var d,l,f,m,c,u;if(!this.pointers.has(t2.pointerId))return;if(this.pointers.delete(t2.pointerId),(l=(d=this.element).releasePointerCapture)==null||l.call(d,t2.pointerId),this.pointers.size===1){this.pinch=null;const[p]=this.pointers.values();this.samples=[{...p,t:t2.timeStamp}];return}if(this.pointers.size>0)return;const e2=this.down;if(this.down=null,this.pinch=null,this.target.setInteracting(false),!e2)return;const i2=this.local(t2);if(!e2.moved&&t2.type==="pointerup"&&t2.timeStamp-e2.t<tt){if((m=(f=this.target).dismiss)!=null&&m.call(f)){this.lastTap=null;return}if(et(t2.pointerType,this.penHovers)){const p=this.lastTap;this.options.navigable&&(this.options.clickToZoom||this.options.dblClickToZoom)&&p&&t2.timeStamp-p.t<tt&&Math.hypot(i2.x-p.x,i2.y-p.y)<Ut?(this.lastTap=null,this.zoomIn(i2)):this.lastTap={x:i2.x,y:i2.y,t:t2.timeStamp};return}this.options.clickToZoom&&this.options.navigable?t2.shiftKey?this.target.zoomBy(1/z,i2,true):this.zoomIn(i2):(u=(c=this.target).tap)==null||u.call(c,i2);return}if(!this.options.navigable||!this.tracksPointer(t2.pointerType))return;const r=this.samples[0],o=this.samples[this.samples.length-1],a=((o==null?void 0:o.t)??0)-((r==null?void 0:r.t)??0);if(r&&o&&a>0&&t2.timeStamp-o.t<50){const p=(o.x-r.x)/a*1e3,y=(o.y-r.y)/a*1e3,g=this.options.flickMomentum;g>0&&Math.hypot(p,y)>this.options.flickMinSpeed&&this.target.panBy(p*g,y*g,true)}});h(this,"onDoubleClick",t2=>{this.options.navigable&&(this.options.clickToZoom||!this.options.dblClickToZoom||et(this.lastPointerType,this.penHovers)||J(t2.target,this.element)||(t2.shiftKey?this.target.zoomBy(1/z,this.local(t2),true):this.zoomIn(this.local(t2))))});h(this,"onWheel",t2=>{const e2=t2.ctrlKey;if(!this.options.navigable||!e2&&!this.options.scrollToZoom||!e2&&Dt(t2.target,this.element,t2.deltaY))return;t2.preventDefault();const i2=se(t2),s=e2?ee:te;this.target.zoomBy(Math.exp(-i2*s),this.local(t2),!e2)});h(this,"onKeyDown",t2=>{if(t2.target!==this.element||!this.options.navigable||t2.altKey||t2.metaKey||t2.ctrlKey)return;const e2=this.element.getBoundingClientRect(),i2=e2.width*ot*(t2.shiftKey?3:1),s=e2.height*ot*(t2.shiftKey?3:1);switch(t2.key){case"ArrowLeft":this.target.panBy(i2,0,true);break;case"ArrowRight":this.target.panBy(-i2,0,true);break;case"ArrowUp":this.target.panBy(0,s,true);break;case"ArrowDown":this.target.panBy(0,-s,true);break;case"+":case"=":this.target.zoomBy(rt,void 0,true);break;case"-":case"_":this.target.zoomBy(1/rt,void 0,true);break;case"0":this.target.home();break;case"r":this.target.rotateBy(90);break;case"R":this.target.rotateBy(-90);break;default:return}t2.preventDefault()});this.element=t,this.target=e,this.options=i,t.addEventListener("pointerdown",this.onPointerDown),t.addEventListener("pointermove",this.onPointerMove),t.addEventListener("pointerup",this.onPointerUp),t.addEventListener("pointercancel",this.onPointerUp),t.addEventListener("dblclick",this.onDoubleClick),t.addEventListener("wheel",this.onWheel,{passive:false}),t.addEventListener("keydown",this.onKeyDown)}setOptions(t){this.options=t}dispose(){const t=this.element;t.removeEventListener("pointerdown",this.onPointerDown),t.removeEventListener("pointermove",this.onPointerMove),t.removeEventListener("pointerup",this.onPointerUp),t.removeEventListener("pointercancel",this.onPointerUp),t.removeEventListener("dblclick",this.onDoubleClick),t.removeEventListener("wheel",this.onWheel),t.removeEventListener("keydown",this.onKeyDown)}local(t){const e=this.element.getBoundingClientRect();return{x:t.clientX-e.left,y:t.clientY-e.top}}zoomIn(t){var e,i;(i=(e=this.target).atMaxZoom)!=null&&i.call(e)?this.target.home():this.target.zoomBy(z,t,true)}tracksPointer(t){return t==="touch"||this.options.flickEnabled}pinchState(){const[t,e]=[...this.pointers.values()];return{distance:Math.hypot(e.x-t.x,e.y-t.y),mid:{x:(t.x+e.x)/2,y:(t.y+e.y)/2}}}}function se(n){return n.deltaMode===1?n.deltaY*16:n.deltaMode===2?n.deltaY*400:n.deltaY}class wt extends Error{constructor(t,e,i){super(t),this.url=e,this.status=i,this.name="ImageLoadError"}}const at=new Set;async function ne(n,t={}){const{signal:e,maxTextureSize:i,request:s}=t,r=Wt(s),o=oe(n);if(typeof createImageBitmap!="function"||typeof fetch!="function")return U(n,{signal:e,cors:true,withCredentials:r});if(o&&at.has(o))return U(n,{signal:e,cors:false,withCredentials:r});let a;try{a=await Ft(s,n,{mode:"cors",signal:e})}catch(c){if(ae(c,e))throw c;const u=await U(n,{signal:e,cors:false,withCredentials:r});return o&&at.add(o),u}if(!a.ok)throw new wt(`Image request failed with ${a.status}`,n,a.status);const d=await a.blob();let l=await re(d);const f=l.width,m=l.height;if(i&&(l.width>i||l.height>i)){const c=i/Math.max(l.width,l.height),u=await createImageBitmap(l,{resizeWidth:Math.max(1,Math.floor(l.width*c)),resizeHeight:Math.max(1,Math.floor(l.height*c)),resizeQuality:"high"});l.close(),l=u}if(e!=null&&e.aborted)throw l.close(),X();return{kind:"bitmap",source:l,width:l.width,height:l.height,naturalWidth:f,naturalHeight:m,opaque:false}}async function re(n){const t={imageOrientation:"from-image",premultiplyAlpha:"premultiply",colorSpaceConversion:"default"};try{return await createImageBitmap(n,t)}catch(e){if(e instanceof TypeError)return createImageBitmap(n);throw e}}function U(n,{signal:t,cors:e,withCredentials:i}){return new Promise((s,r)=>{if(t!=null&&t.aborted){r(X());return}const o=new Image;o.decoding="async",e&&(o.crossOrigin=i?"use-credentials":"anonymous");const a=()=>{o.onload=null,o.onerror=null,t==null||t.removeEventListener("abort",d)},d=()=>{a(),o.src="",r(X())};t==null||t.addEventListener("abort",d),o.onload=()=>{a();const l=()=>s({kind:"element",source:o,width:o.naturalWidth,height:o.naturalHeight,naturalWidth:o.naturalWidth,naturalHeight:o.naturalHeight,opaque:!e});typeof o.decode=="function"?o.decode().then(l,l):l()},o.onerror=()=>{a(),r(new wt("Image failed to load",n))},o.src=n})}function oe(n){var t;try{return new URL(n,(t=globalThis.location)==null?void 0:t.href).origin}catch{return null}}function ae(n,t){return!!(t!=null&&t.aborted)||typeof n=="object"&&n!==null&&n.name==="AbortError"}function X(){const n=new Error("Aborted");return n.name="AbortError",n}function ht(n){n.kind==="bitmap"&&n.source.close()}const he=192*1024*1024,ce=6,le=2;class de{constructor(t){h(this,"entries",new Map);h(this,"inFlight",0);h(this,"frame",0);h(this,"bytes",0);h(this,"wanted",[]);h(this,"disposed",false);h(this,"budget");h(this,"maxInFlight");this.options=t,this.budget=t.byteBudget??he,this.maxInFlight=t.maxInFlight??ce}get(t){const e=this.entries.get(t);if((e==null?void 0:e.state)==="ready")return e.lastUsed=this.frame,e.image}has(t){var e;return((e=this.entries.get(t))==null?void 0:e.state)==="ready"}failed(t){var e;return((e=this.entries.get(t))==null?void 0:e.state)==="failed"}get byteSize(){return this.bytes}get pending(){return this.inFlight}seed(t,e){var s;const i=this.entries.get(t);(i==null?void 0:i.state)!=="ready"&&((s=i==null?void 0:i.controller)==null||s.abort(),this.entries.set(t,{url:t,state:"ready",image:e,bytes:D(e),lastUsed:this.frame,attempts:0,pinned:false,waiters:(i==null?void 0:i.waiters)??[]}),this.bytes+=D(e),this.flushWaiters(t))}prefetch(t){return Promise.all(t.map(e=>new Promise(i=>{const s=this.entries.get(e.url);if(s&&s.state!=="loading")return i();if(s){s.waiters.push(i);return}this.start({...e,priority:-1},i)}))).then(()=>{})}update(t){if(this.disposed)return;this.frame++;const e=new Set(t.map(i=>i.url));this.wanted=[...t].sort((i,s)=>i.priority-s.priority);for(const i of this.entries.values())i.state==="loading"&&!i.pinned&&!e.has(i.url)&&i.controller&&(i.controller.abort(),this.entries.delete(i.url),this.inFlight--);for(const i of this.wanted){const s=this.entries.get(i.url);s&&(s.lastUsed=this.frame)}this.pump(),this.evict(e)}dispose(){var t;this.disposed=true;for(const e of this.entries.values())(t=e.controller)==null||t.abort(),this.flushWaiters(e.url);this.entries.clear(),this.bytes=0}forEachReady(t){for(const e of this.entries.values())e.state==="ready"&&e.image&&t(e.url,e.image)}pump(){for(const t of this.wanted){if(this.inFlight>=this.maxInFlight)break;this.entries.has(t.url)||this.start(t)}}start(t,e){const i=new AbortController,s={url:t.url,state:"loading",bytes:0,lastUsed:this.frame,attempts:0,controller:i,pinned:!!e,waiters:e?[e]:[]};this.entries.set(t.url,s),this.inFlight++,this.attempt(s,t,i,t.url)}attempt(t,e,i,s){t.attempts++,this.options.load(s,i.signal).then(r=>{if(this.disposed||this.entries.get(t.url)!==t){ht(r);return}t.state="ready",t.image=r,t.bytes=D(r),t.controller=void 0,t.pinned=false,this.bytes+=t.bytes,this.settle(t)},r=>{if(!(i.signal.aborted||this.disposed)&&this.entries.get(t.url)===t){if(t.attempts<le&&!ue(r,e)){this.attempt(t,e,i,e.fallbackUrl??e.url);return}t.state="failed",t.controller=void 0,t.pinned=false,this.settle(t)}})}settle(t){this.inFlight--,this.flushWaiters(t.url),this.options.onSettled(),this.pump()}flushWaiters(t){const e=this.entries.get(t);if(!e)return;const i=e.waiters;e.waiters=[],i.forEach(s=>s())}evict(t){if(this.bytes<=this.budget)return;const e=[...this.entries.values()].filter(i=>i.state==="ready"&&!t.has(i.url)).sort((i,s)=>i.lastUsed-s.lastUsed);for(const i of e){if(this.bytes<=this.budget)break;this.entries.delete(i.url),this.bytes-=i.bytes,i.image&&ht(i.image),this.options.onEvict(i.url)}}}function D(n){return n.width*n.height*4}function ue(n,t){if(t.fallbackUrl)return false;const e=n==null?void 0:n.status;return typeof e=="number"&&e>=400&&e<500&&e!==408&&e!==429}const fe=.1;class me{constructor(t,e=s=>requestAnimationFrame(s),i=s=>cancelAnimationFrame(s)){h(this,"handle",0);h(this,"last",0);h(this,"disposed",false);h(this,"frame",t2=>{if(this.handle=0,this.disposed)return;const e2=this.last?Math.min((t2-this.last)/1e3,fe):1/60;this.last=t2,this.tick(e2,t2)?this.invalidate():this.last=0});this.tick=t,this.raf=e,this.caf=i}invalidate(){this.disposed||this.handle||(this.handle=this.raf(this.frame))}drawNow(){this.disposed||(this.handle&&this.caf(this.handle),this.frame(performance.now()))}dispose(){this.disposed=true,this.handle&&this.caf(this.handle),this.handle=0}}const pe=2*1024*1024;function ge(n,t,e=pe){const i=new Set;let s=e,r=false;return{get deferred(){return r},getTile(o){const a=n(o);if(!a||a.kind==="media"||a.opaque||i.has(o)||t(o))return a;const d=a.width*a.height*4;if(i.size>0&&d>s){r=true;return}return s-=d,i.add(o),a}}}function we(n){const t=/^(!)?(\d+(?:\.\d+)?)$/.exec((n==null?void 0:n.trim())??"");if(!t)return null;const e=Number(t[2]);if(e>360)return null;const i=e%360,s=!!t[1];return i||s?{degrees:i,mirror:s}:null}function ye(n,t,e){if(!n)return null;let i=n.trim().replace(/^xywh=/,""),s=false;i.startsWith("pct:")?(s=true,i=i.slice(4)):i.startsWith("pixel:")&&(i=i.slice(6));const r=i.split(",").map(Number);if(r.length!==4||r.some(p=>!Number.isFinite(p)))return null;let[o,a,d,l]=r;s&&(o=o/100*t,a=a/100*e,d=d/100*t,l=l/100*e);const f=Math.max(0,o),m=Math.max(0,a),c=Math.min(t,o+d),u=Math.min(e,a+l);return c<=f||u<=m?null:{x:f,y:m,width:c-f,height:u-m}}const W=512,xe=16e6;function yt(n,t,e){return{width:t,height:e,levels:[{scaleFactor:1,width:t,height:e,tileWidth:t,tileHeight:e,cols:1,rows:1}],tile:s=>({...s,url:n,region:{x:0,y:0,width:t,height:e}})}}function ve(n){const{width:t,height:e}=n,i=[],s=n.regionByPx&&n.sizeByW,r=(c,u,p)=>{const y=Math.ceil(t/c),g=Math.ceil(e/c);return{scaleFactor:c,width:y,height:g,tileWidth:u,tileHeight:p,cols:Math.ceil(y/u),rows:Math.ceil(g/p)}},o=(c,u)=>({scaleFactor:t/c,width:c,height:u,tileWidth:c,tileHeight:u,cols:1,rows:1,whole:true}),a=n.tiles[0];if(a)for(const c of a.scaleFactors)i.push(r(c,a.width,a.height));else if(s)for(let c=1;;c*=2){const u=r(c,W,W);if(i.push(u),u.cols===1&&u.rows===1)break}const d=Math.max(0,...i.map(c=>c.scaleFactor));for(const c of n.sizes){const u=t/c.width;be(n,c.width,c.height)&&u>d+1e-9&&i.push(o(c.width,c.height))}const l=i.reduce((c,u)=>!c||u.scaleFactor>c.scaleFactor?u:c,null);if(l&&l.cols*l.rows>1&&n.sizeByW){const c=Math.max(t,e)/W;i.push(o(Math.ceil(t/c),Math.ceil(e/c)))}(!i.length||!a&&!s&&t*e<=xe)&&(i.some(c=>c.scaleFactor===1)||i.push(o(t,e)));const f=Te(i).sort((c,u)=>u.scaleFactor-c.scaleFactor),m=Ht(n);return{width:t,height:e,levels:f,tile(c){const u=f[c.level],p=u.scaleFactor,y=u.cols===1&&u.rows===1;let g,v,b;if(y)g={x:0,y:0,width:t,height:e},v=u.width,b=u.height;else{const A=Math.round(c.col*u.tileWidth*p),M=Math.round(c.row*u.tileHeight*p);g={x:A,y:M,width:Math.min(Math.round(u.tileWidth*p),t-A),height:Math.min(Math.round(u.tileHeight*p),e-M)},v=Math.ceil(g.width/p),b=Math.ceil(g.height/p)}return{...c,region:g,url:it(n,g,v,b),fallbackUrl:m?it(n,g,v,b,m):void 0}}}}function be(n,t,e){return!(n.maxWidth&&t>n.maxWidth||n.maxHeight&&e>n.maxHeight||n.maxArea&&t*e>n.maxArea)}function Te(n){const t=new Map;for(const e of n){const i=`${e.width}x${e.height}`,s=t.get(i);(!s||s.cols*s.rows<e.cols*e.rows)&&t.set(i,e)}return[...t.values()]}function Me(n,t){const e=n.levels;for(let i=0;i<e.length;i++)if(e[i].scaleFactor<=t*(1+1e-6))return i;return e.length-1}function T(n,t,e){const i=n.levels[t],s=i.tileWidth*i.scaleFactor,r=i.tileHeight*i.scaleFactor,o=Math.max(0,e.x),a=Math.max(0,e.y),d=Math.min(n.width,e.x+e.width),l=Math.min(n.height,e.y+e.height);if(d<=o||l<=a)return[];const f=Math.max(0,Math.floor(o/s)),m=Math.min(i.cols-1,Math.floor((d-1e-9)/s)),c=Math.max(0,Math.floor(a/r)),u=Math.min(i.rows-1,Math.floor((l-1e-9)/r)),p=[];for(let y=c;y<=u;y++)for(let g=f;g<=m;g++)p.push({level:t,col:g,row:y});return p}async function Ee(n,t){if(n.media)return ke(n,n.media);let e=null,i=null;if(n.service)try{e=ve(await Nt(n.service,t.infoOptions))}catch(c){i=c}if(!e){if(!n.url)throw i??new Error("Image has no source");const c=await t.loadStatic(n.url);t.cache.seed(n.url,c),e=yt(n.url,c.naturalWidth,c.naturalHeight)}const s=n.width&&n.height&&n.width>0&&n.height>0?{width:n.width,height:n.height}:{width:e.width,height:e.height},r=ye(n.region,s.width,s.height)??{x:0,y:0,width:s.width,height:s.height},o=e.width/s.width,a=e.height/s.height,d={x:r.x*o,y:r.y*a,width:r.width*o,height:r.height*a},l=we(n.rotation),f=l?Le(d,l):void 0,m={id:n.id,spec:n,pyramid:e,size:s,clip:d,contentClip:r,rect:{x:0,y:0,width:r.width,height:r.height},...f?{turn:f}:{}};return await t.cache.prefetch(T(e,0,d).map(c=>{const u=e.tile(c);return{url:u.url,fallbackUrl:u.fallbackUrl}})),m}const xt="media:";function ke(n,t){var a,d;const e=n.width||((a=n.placement)==null?void 0:a.width)||t.element.videoWidth||1600,i=n.height||((d=n.placement)==null?void 0:d.height)||t.element.videoHeight||900,s=`${xt}${n.id}`,r={width:e,height:i},o={x:0,y:0,width:e,height:i};return{id:n.id,spec:n,pyramid:yt(s,e,i),media:{kind:"media",source:t.element,width:e,height:i,naturalWidth:e,naturalHeight:i},size:r,clip:o,contentClip:o,rect:{...o}}}function Le(n,{degrees:t,mirror:e}){const i=t*Math.PI/180,s=f=>Math.abs(f)<1e-12?0:f,r=s(Math.cos(i)),o=s(Math.sin(i)),a=Math.abs(n.width*r)+Math.abs(n.height*o),d=Math.abs(n.width*o)+Math.abs(n.height*r),l=k(_(a/2,d/2),{a:r,b:o,c:-o,d:r,e:0,f:0},L(e?-1:1,1),_(-(n.x+n.width/2),-(n.y+n.height/2)));return{orient:l,unorient:Pt(l),width:a,height:d}}function vt(n){var t;return((t=n.turn)==null?void 0:t.orient)??_(-n.clip.x,-n.clip.y)}function _e(n,t){const{turn:e,clip:i}=n;if(!e)return{...t,x:i.x+t.x,y:i.y+t.y};const s=gt(e.unorient,t),r=Math.max(s.x,i.x),o=Math.max(s.y,i.y);return{x:r,y:o,width:Math.max(0,Math.min(s.x+s.width,i.x+i.width)-r),height:Math.max(0,Math.min(s.y+s.height,i.y+i.height)-o)}}function Pe(n,t){const{turn:e,clip:i}=n;return e?pt(e.unorient,t):{x:i.x+t.x,y:i.y+t.y}}function ct(n){const{turn:t,clip:e,contentClip:i}=n;return t?{width:t.width*i.width/e.width,height:t.height*i.height/e.height}:i}function Ae(n){if(!n.length)return null;if(n.every(i=>i.spec.placement)){for(const i of n)i.rect={...i.spec.placement};return mt(n.map(i=>i.rect))}const t=ct(n[0]).height;let e=0;for(const i of n){const s=ct(i),r=s.width*t/s.height;i.rect={x:e,y:0,width:r,height:t},e+=r}return{x:0,y:0,width:e,height:t}}function B(n){const t=n.turn??n.clip;return{x:n.rect.width/t.width,y:n.rect.height/t.height}}function Ie(n){const t=B(n);return k(_(n.rect.x,n.rect.y),L(t.x,t.y),vt(n))}function Se(n,t){var e,i;return n.service===t.service&&n.url===t.url&&n.width===t.width&&n.height===t.height&&n.region===t.region&&n.rotation===t.rotation&&((e=n.media)==null?void 0:e.element)===((i=t.media)==null?void 0:i.element)&&JSON.stringify(n.placement)===JSON.stringify(t.placement)}const Re=1e7,Be=15e6,Oe=2e7,Ce=2;function ze(n){const{items:t,camera:e,viewport:i,pixelRatio:s,getTile:r,destination:o}=n,a=Rt(e,i),d=[],l=[],f=[],m=(c,u,p)=>{const y=c.tile(u);l.push({url:y.url,fallbackUrl:y.fallbackUrl,priority:p})};for(const c of t){const{pyramid:u,clip:p,rect:y}=c,g=B(c);if(n.wantOverview)for(const w of T(u,0,p))m(u,w,Oe);const v=lt(c,e,i,s),b=o?lt(c,o,i,s):v;if(f.push((v==null?void 0:v.target)??-1),!v&&!b)continue;const A=w=>x=>{const P=u.tile(x).region;return Math.hypot(P.x+P.width/2-w.x,P.y+P.height/2-w.y)};if(b){const w=A(b.center);for(const x of T(u,0,b.area))m(u,x,w(x)/1e3);if(b.target>0)for(const x of T(u,b.target,b.area))m(u,x,Re+w(x))}if(!v)continue;const{area:M,target:E}=v,K=A(v.center),O=T(u,0,M),V=E===0?[]:T(u,E,M);if(b!==v){for(const x of O)m(u,x,K(x)/1e3);const w=E-Ce;if(w>0)for(const x of T(u,w,M))m(u,x,Be+K(x))}if(c.spec.hidden)continue;const bt=(E===0?O:V).every(w=>r(u.tile(w).url)!==void 0)?[E]:Array.from({length:E+1},(w,x)=>x),Tt=k(a,_(y.x,y.y),L(g.x,g.y),vt(c));for(const w of bt){const x=w===0?O:w===E?V:T(u,w,M),P=u.levels[w].cols*u.levels[w].rows>1;for(const Mt of x){const C=u.tile(Mt),q=r(C.url);if(!q)continue;const Y=Ue(c,C.region,q,Tt,P);Y&&d.push({...Y,url:C.url})}}}return l.sort((c,u)=>c.priority-u.priority),{draws:d,wants:De(l),levels:f}}function lt(n,t,e,i){const{pyramid:s,rect:r}=n,o=N(t,e);if(!At(o,r))return null;const a=B(n),d=Math.max(o.x,r.x),l=Math.max(o.y,r.y),f=Math.min(o.x+o.width,r.x+r.width),m=Math.min(o.y+o.height,r.y+r.height),c=1/(a.x*t.zoom*i);return{area:_e(n,{x:(d-r.x)/a.x,y:(l-r.y)/a.y,width:(f-d)/a.x,height:(m-l)/a.y}),center:Pe(n,{x:(t.x-r.x)/a.x,y:(t.y-r.y)/a.y}),target:Me(s,c)}}function Ue(n,t,e,i,s){const{clip:r}=n,o=Math.max(t.x,r.x),a=Math.max(t.y,r.y),d=Math.min(t.x+t.width,r.x+r.width),l=Math.min(t.y+t.height,r.y+r.height);if(d<=o||l<=a)return null;const f=e.width/t.width,m=e.height/t.height,c=1e-6;return{item:n,image:e,transform:k(i,_(t.x,t.y),L(1/f,1/m)),crop:{x:(o-t.x)*f,y:(a-t.y)*m,width:(d-o)*f,height:(l-a)*m},bleed:{right:s&&d<r.x+r.width-c,bottom:s&&l<r.y+r.height-c}}}function De(n){const t=new Set;return n.filter(e=>t.has(e.url)?false:(t.add(e.url),true))}const We={maxZoomPixelRatio:1.1,minZoomImageRatio:.9,animationTime:.09,animationDuration:void 0,springStiffness:6.5,constrainDuringPan:true,request:void 0,byteBudget:192*1024*1024,maxInFlight:6,releaseAfterMs:2e3},Fe=2,He=3,Ne=.1,F=1e-6,Z={top:0,right:0,bottom:0,left:0};function dt(n,t="padding"){if(!n||typeof getComputedStyle!="function")return Z;const e=getComputedStyle(n),i=s=>parseFloat(e.getPropertyValue(`${t}-${s}`))||0;return{top:i("top"),right:i("right"),bottom:i("bottom"),left:i("left")}}const Ge=(n,t)=>n.top===t.top&&n.right===t.right&&n.bottom===t.bottom&&n.left===t.left;let Xe;class Ze{constructor(t,e={}){h(this,"host");h(this,"overlays",null);h(this,"options");h(this,"backend",null);h(this,"backendPreference");h(this,"contextLosses",0);h(this,"holder",{hiddenSince:null,release:()=>this.giveBack()});h(this,"visible",true);h(this,"dom",null);h(this,"domAsked",false);h(this,"pending",null);h(this,"camera");h(this,"loop");h(this,"gestures");h(this,"gestureOptions",{});h(this,"cache");h(this,"navigator",null);h(this,"navigatorAsked",0);h(this,"viewport",{width:1,height:1});h(this,"inset",Z);h(this,"pixelRatio",1);h(this,"items",[]);h(this,"worldBounds",null);h(this,"contentVersion",0);h(this,"opaqueUrls",new Set);h(this,"mediaByKey",new Map);h(this,"detachMedia",[]);h(this,"opened",false);h(this,"atHome",true);h(this,"interacting",false);h(this,"lastEmitted",null);h(this,"generation",0);h(this,"listeners",new Map);h(this,"unloadable",false);h(this,"resizeObserver",null);h(this,"intersectionObserver",null);h(this,"releaseTimer",null);h(this,"dprQuery",null);h(this,"disposed",false);h(this,"dismisser",null);h(this,"tick",t2=>{var d,l;if(this.disposed)return false;const e2=this.camera.step(t2,this.viewport),i2=this.camera.current,s2=this.backend,r=ge(this.getTile,f=>s2?s2.has(f):true),o=ze({items:this.items,camera:i2,viewport:this.viewport,pixelRatio:this.pixelRatio,getTile:r.getTile,wantOverview:!!this.navigator,destination:e2?this.camera.destination:void 0}),a=o.wants.filter(f=>!f.url.startsWith(xt));return this.cache.update(a),o.draws.length?this.setUnloadable(false):a.length&&a.every(f=>this.cache.failed(f.url))&&this.setUnloadable(true),this.paint(o.draws),(d=this.overlays)==null||d.position(i2,this.viewport),(l=this.navigator)==null||l.render(this.items.filter(f=>!f.spec.hidden),this.worldBounds,N(i2,this.viewport),this.pixelRatio,this.getTile,this.contentVersion),(!this.lastEmitted||!j(this.lastEmitted,i2))&&(this.lastEmitted={...i2},this.opened&&this.emit("viewport")),e2||r.deferred});h(this,"getTile",t2=>this.mediaByKey.get(t2)??this.cache.get(t2));h(this,"onContextLost",()=>{this.contextLosses+=1,this.releaseBackend(),this.visible?this.acquireBackend(false):this.host.dataset.backend="released"});h(this,"onPixelRatioChange",()=>{this.measure(),this.watchPixelRatio()});this.host=t,this.backendPreference=e.backend??"auto",this.options={...We,...H(e)},ft()&&(this.options.animationTime=0,this.options.animationDuration!==void 0&&(this.options.animationDuration=0));const{animationDuration:i,springStiffness:s}=this.options;this.camera=new jt({x:0,y:0,zoom:1,rotation:0},this.options.animationTime,i===void 0?void 0:{duration:i,stiffness:s}),this.loop=new me(this.tick),this.gestureOptions=H(e.gestures??{}),ft()&&(this.gestureOptions.flickMomentum=0),this.gestures=new ie(t,this,{...G,...this.gestureOptions}),this.cache=new de({load:(r,o)=>this.loadTile(r,o),onSettled:()=>{this.contentVersion++,this.invalidate()},onEvict:r=>{var o;return(o=this.backend)==null?void 0:o.release(r)},byteBudget:this.options.byteBudget,maxInFlight:this.options.maxInFlight}),this.visible=Ke(t),this.visible?this.acquireBackend():this.holder.hiddenSince=ut(),this.measure(),this.observe()}get backendKind(){var t;return((t=this.backend)==null?void 0:t.kind)??"none"}get isOpen(){return this.opened}get isAtHome(){return this.atHome}on(t,e){let i=this.listeners.get(t);return i||(i=new Set,this.listeners.set(t,i)),i.add(e),()=>i==null?void 0:i.delete(e)}async setImages(t,{world:e,fit:i=false}={}){const s=++this.generation,r=new Map(this.items.map(f=>[f.id,f])),o=await Promise.allSettled(t.map(f=>{const m=r.get(f.id);return m&&Se(m.spec,f)?(m.spec=f,Promise.resolve(m)):Ee(f,{cache:this.cache,loadStatic:c=>this.loadTile(c),infoOptions:{request:this.options.request}})}));if(s!==this.generation||this.disposed)return;const a=o.filter(f=>f.status==="fulfilled").map(f=>f.value),d=o.filter(f=>f.status==="rejected").map(f=>f.reason);this.items=a,this.watchMedia(a);const l=Ae(a);if(this.worldBounds=e?l?mt([e,l]):e:l,this.contentVersion++,d.length&&this.emit("error",d),this.setUnloadable(t.length>0&&!a.length&&d.length>0),!this.worldBounds){this.invalidate();return}this.opened?i?(this.home(true),this.emit("change")):(this.camera.set(this.constrain(this.camera.current)),this.emit("change")):(this.opened=true,this.home(true),this.emit("open")),this.invalidate()}clear(){this.setUnloadable(false),this.generation++,this.items=[],this.watchMedia([]),this.worldBounds=null,this.contentVersion++,this.invalidate()}setHidden(t){const e=new Set(t);let i=false;for(const s of this.items){const r=e.has(s.id);!!s.spec.hidden!==r&&(s.spec={...s.spec,hidden:r},i=true)}i&&this.invalidate()}isReady(t){const e=this.items.find(s=>s.id===t);if(!e)return false;if(e.spec.media)return true;const i=e.pyramid.levels[0];if(!i)return false;for(let s=0;s<i.rows;s++)for(let r=0;r<i.cols;r++)if(!this.getTile(e.pyramid.tile({level:0,col:r,row:s}).url))return false;return true}fitBounds(t,e=false,i=Z){const s=this.fit(t,this.camera.destination.rotation,i);this.atHome=false,this.animateTo(this.constrain(s,{allowBeyondLimits:true}),e)}fit(t,e,{top:i,right:s,bottom:r,left:o}){const{width:a,height:d}=this.viewport,{zoom:l}=Bt(t,{width:Math.max(1,a-o-s),height:Math.max(1,d-i-r)},e);return{...S(It(t),{x:(a+o-s)/2,y:(d+i-r)/2},l,e,this.viewport),zoom:l,rotation:e}}fitItemRect(t,e,i=false){const s=this.itemRectToWorld(t,e);s&&this.fitAnnotation(s,i)}fitAnnotation(t,e=false){var r;const i=this.items[0];if(!i)return;const s=i.rect.width*Ne;this.fitBounds({x:t.x-s,y:t.y-s,width:t.width+s*2,height:t.height+s*2},e,dt((r=this.overlays)==null?void 0:r.container,"scroll-padding"))}getBounds(){return N(this.camera.current,this.viewport)}getHomeBounds(){return this.worldBounds?{...this.worldBounds}:null}getCamera(){return{...this.camera.current}}getZoomLimits(){var i;const t=((i=this.homeCamera())==null?void 0:i.zoom)??1,e=this.items.length?Math.min(...this.items.map(s=>B(s).x)):1;return{home:t,min:t*this.options.minZoomImageRatio,max:Math.max(t,this.options.maxZoomPixelRatio/e)}}home(t=false){const e=this.homeCamera();if(!e)return;const i=this.atHome;this.atHome=true,this.animateTo(e,t),!i&&this.opened&&this.emit("viewport")}atMaxZoom(){return this.camera.destination.zoom>=this.getZoomLimits().max*(1-F)}viewLimits(){const{zoom:t,x:e,y:i,rotation:s}=this.camera.destination,{min:r,max:o}=this.getZoomLimits(),a=this.atHome?this.homeCamera():null;return{atMax:t>=o*(1-F),atMin:t<=r*(1+F),atHome:this.atHome&&(!a||Math.abs(t/a.zoom-1)<.001&&Math.hypot(e-a.x,i-a.y)*t<.5&&Math.abs(s-a.rotation)<.001)}}zoomBy(t,e,i=true){const s=i?this.camera.destination:this.camera.current,r=e??{x:this.viewport.width/2,y:this.viewport.height/2},o=Q(s,this.viewport,r),{min:a,max:d}=this.getZoomLimits(),l=I(s.zoom*t,a,d),f=S(o,r,l,s.rotation,this.viewport),m=this.constrain({...s,...f,zoom:l});this.atHome=false,i?this.camera.animateTo({state:m,anchor:{world:o,screen:r}},this.viewport):this.camera.set(m),this.invalidate()}panBy(t,e,i=false){const s=i?this.camera.destination:this.camera.current,r=pt(k(L(1/s.zoom),St(-s.rotation)),{x:t,y:e}),o=this.constrain({...s,x:s.x-r.x,y:s.y-r.y});this.atHome=false,i?this.camera.animateTo({state:o},this.viewport):this.camera.set(o),this.invalidate()}panTo(t,e=false){const i=e?this.camera.current:this.camera.destination;this.atHome=false,this.animateTo(this.constrain({...i,...t}),e)}rotateBy(t){const e=this.camera.destination;this.setRotation(e.rotation*180/Math.PI+t)}setRotation(t,e=false){const i=this.camera.destination,s=t*Math.PI/180;this.animateTo(this.constrain({...i,rotation:s}),e)}getRotation(){return this.camera.destination.rotation*180/Math.PI}tap(t){this.emit("tap",t)}setDismiss(t){this.dismisser=t}dismiss(){var t;return((t=this.dismisser)==null?void 0:t.call(this))??false}setGestures(t){this.gestures.setOptions({...G,...this.gestureOptions,...H(t)})}setInteracting(t){if(this.interacting=t,t){this.camera.stop();return}if(this.options.constrainDuringPan)return;const e=this.camera.destination,i=this.constrain(e);j(e,i)||this.animateTo(i,false)}worldToScreenPoint(t){return Ot(this.camera.current,this.viewport,t)}screenToWorldPoint(t){return Q(this.camera.current,this.viewport,t)}itemRectToWorld(t,e){const i=this.items[t];if(!i)return null;const{contentClip:s,clip:r}=i;if(i.turn)return gt(k(Ie(i),L(r.width/s.width,r.height/s.height)),e);const o=i.rect.width/s.width,a=i.rect.height/s.height;return{x:i.rect.x+(e.x-s.x)*o,y:i.rect.y+(e.y-s.y)*a,width:e.width*o,height:e.height*a}}attachNavigator(t){var r;(r=this.navigator)==null||r.dispose(),this.navigator=null;const e=++this.navigatorAsked;let i=null,s=false;return import("./Navigator-qJ79A8Nk.mjs").then(o=>{s||this.disposed||e!==this.navigatorAsked||(i=new o.Navigator(t,(a,d)=>this.panTo(a,d)),this.navigator=i,this.invalidate())}),()=>{s=true,i==null||i.dispose(),i&&this.navigator===i&&(this.navigator=null)}}invalidate(){this.loop.invalidate()}dispose(){var t,e,i,s,r,o,a;this.disposed||(this.disposed=true,this.generation++,this.loop.dispose(),this.gestures.dispose(),(t=this.resizeObserver)==null||t.disconnect(),(e=this.intersectionObserver)==null||e.disconnect(),(s=(i=this.dprQuery)==null?void 0:i.removeEventListener)==null||s.call(i,"change",this.onPixelRatioChange),this.releaseTimer&&clearTimeout(this.releaseTimer),(r=this.navigator)==null||r.dispose(),this.navigator=null,this.releaseBackend(),this.cache.dispose(),(o=this.dom)==null||o.dispose(),(a=this.overlays)==null||a.dispose(),this.items=[],this.detachMedia.forEach(d=>d()),this.mediaByKey.clear(),this.listeners.clear(),delete this.host.dataset.backend)}watchMedia(t){this.detachMedia.forEach(e=>e()),this.detachMedia=[],this.mediaByKey.clear();for(const e of t){if(!e.media||e.media.kind!=="media")continue;const i=e.pyramid.tile({level:0,col:0,row:0}).url;this.mediaByKey.set(i,e.media);const s=e.media.source,r=()=>this.invalidate(),o=["play","seeked","loadeddata","resize"];o.forEach(a=>s.addEventListener(a,r)),this.detachMedia.push(()=>o.forEach(a=>s.removeEventListener(a,r)))}}paint(t){const e=this.backend,i=[],s=(e==null?void 0:e.kind)==="webgl2";e==null||e.begin();for(const r of t){const{image:o}=r;if(!(o.kind==="media"||o.kind==="element"&&s&&(o.opaque||this.opaqueUrls.has(r.url)))&&e){if(e.draw({key:r.url,source:o.source,width:o.width,height:o.height,transform:r.transform,crop:r.crop,opacity:1,bleed:r.bleed})!=="tainted"||o.kind==="bitmap")continue;this.opaqueUrls.add(r.url)}(o.kind==="element"||o.kind==="media")&&i.push({key:`${r.item.id}|${r.url}`,element:o.source,width:o.width,height:o.height,transform:r.transform,crop:r.crop,opacity:1})}e==null||e.end(),this.dom?this.dom.sync(i):i.length&&!this.domAsked&&(this.domAsked=true,import("./DomLayers-D9X_FPto.mjs").then(({DomLayers:r})=>{if(this.disposed)return;const o=new r(this.host);this.overlays&&this.host.insertBefore(o.container,this.overlays.container),this.dom=o,this.invalidate()}))}loadTile(t,e){return ne(t,{signal:e,request:this.options.request,maxTextureSize:this.backend instanceof R?this.backend.maxTextureSize:void 0})}animateTo(t,e){this.camera.animateTo({state:t},this.viewport,e),this.invalidate()}homeCamera(){if(!this.worldBounds)return null;const t=2*Math.PI,e=Math.round(this.camera.destination.rotation/t)*t||0;return this.fit(this.worldBounds,e,this.inset)}constrain(t,{allowBeyondLimits:e=false}={}){const i=this.worldBounds;if(!i)return t;const{min:s,max:r}=this.getZoomLimits(),o=e?I(t.zoom,s,Math.max(r,t.zoom)):I(t.zoom,s,r);return this.interacting&&!this.options.constrainDuringPan?{...t,zoom:o}:{...t,zoom:o,x:I(t.x,i.x,i.x+i.width),y:I(t.y,i.y,i.y+i.height)}}acquireBackend(t=true){var r,o;if(this.backend||this.pending||this.disposed)return;const e=document.createElement("canvas");e.className="clover-canvas-surface",e.setAttribute("aria-hidden","true"),Object.assign(e.style,{position:"absolute",inset:"0",width:"100%",height:"100%",display:"block",pointerEvents:"none"}),this.host.insertBefore(e,((r=this.dom)==null?void 0:r.container)??((o=this.overlays)==null?void 0:o.container)??null);const i=t&&(this.backendPreference==="webgl2"||this.backendPreference==="auto"&&this.contextLosses<He);let s=null;i&&(Lt(this.holder)||this.backendPreference==="webgl2")&&(s=R.create(e,{onLost:this.onContextLost}),s||$(this.holder)),s?this.install(s):this.backendPreference==="webgl2"?this.none(e):(this.pending=e,(Xe??(Xe=import("./Canvas2DBackend-DBGZRGid.mjs"))).then(({Canvas2DBackend:a})=>{if(this.pending!==e)return;this.pending=null;const d=a.create(e);d?this.install(d):this.none(e)}))}none(t){t.remove(),this.host.dataset.backend="none"}install(t){this.backend=t,this.host.dataset.backend=t.kind,t.resize(this.viewport.width,this.viewport.height,this.pixelRatio),t.kind==="canvas2d"&&this.opaqueUrls.clear(),this.emit("backend",t.kind),this.invalidate()}releaseBackend(){var e;if($(this.holder),(e=this.pending)==null||e.remove(),this.pending=null,!this.backend)return;const t=this.backend.canvas;this.backend.dispose(),t.remove(),this.backend=null}giveBack(){this.releaseTimer&&clearTimeout(this.releaseTimer),this.releaseTimer=null,this.releaseBackend(),this.host.dataset.backend="released"}observe(){typeof ResizeObserver<"u"&&(this.resizeObserver=new ResizeObserver(()=>this.measure(true)),this.resizeObserver.observe(this.host)),typeof IntersectionObserver<"u"&&(this.intersectionObserver=new IntersectionObserver(t=>{const e=t.some(i=>i.isIntersecting);this.setVisible(e)}),this.intersectionObserver.observe(this.host)),this.watchPixelRatio()}setVisible(t){var e;if(this.visible=t,t){this.holder.hiddenSince=null,this.releaseTimer&&clearTimeout(this.releaseTimer),this.releaseTimer=null,this.backend||this.acquireBackend();return}(e=this.holder).hiddenSince??(e.hiddenSince=ut()),!(!this.backend||this.releaseTimer)&&(this.releaseTimer=setTimeout(()=>this.giveBack(),this.options.releaseAfterMs))}measure(t=false){var d;const e=this.host.getBoundingClientRect(),i=Math.max(1,e.width),s=Math.max(1,e.height),r=dt(this.host),o=Math.min(typeof window<"u"&&window.devicePixelRatio||1,Fe);if(i===this.viewport.width&&s===this.viewport.height&&o===this.pixelRatio&&Ge(r,this.inset))return;const a=this.viewport;if(this.viewport={width:i,height:s},this.inset=r,this.pixelRatio=o,(d=this.backend)==null||d.resize(i,s,o),this.opened){if(this.atHome)this.home(true);else{const l=this.camera.current,f=i/Math.max(a.width,1);this.camera.set(this.constrain({...l,zoom:l.zoom*f}))}this.emit("viewport")}t?this.loop.drawNow():this.invalidate()}watchPixelRatio(){var t,e,i,s;typeof window>"u"||typeof window.matchMedia!="function"||((e=(t=this.dprQuery)==null?void 0:t.removeEventListener)==null||e.call(t,"change",this.onPixelRatioChange),this.dprQuery=window.matchMedia(`(resolution: ${window.devicePixelRatio||1}dppx)`),(s=(i=this.dprQuery).addEventListener)==null||s.call(i,"change",this.onPixelRatioChange))}setUnloadable(t){t!==this.unloadable&&(this.unloadable=t,this.emit("unloadable",t))}emit(t,e){var i;(i=this.listeners.get(t))==null||i.forEach(s=>s(e))}}const ut=()=>typeof performance<"u"?performance.now():Date.now();function Ke(n){if(typeof IntersectionObserver>"u"||typeof window>"u")return true;const{top:t,left:e,width:i,height:s}=n.getBoundingClientRect();return t+s>=0&&e+i>=0&&t<=window.innerHeight&&e<=window.innerWidth}function ft(){return typeof window<"u"&&typeof window.matchMedia=="function"&&window.matchMedia("(prefers-reduced-motion: reduce)").matches}function H(n){return Object.fromEntries(Object.entries(n).filter(([,t])=>t!==void 0))}const ii=(n,t)=>new Ze(n,t);export{Xt as b,Gt as h,ze as p,ii as r};
@@ -1 +1 @@
1
- import{u as c,A as l,x as u,aC as p,_ as d,k as m}from"./shared-DkY2a89G.mjs";import"./styles-DkkVOSUQ.mjs";const f=new WeakMap;function v(t){let n=f.get(t);if(!n){const{render:o}=t;n={canvasId:t.canvasId,format:t.format,match:t.match,component:r=>c(y,{...r,render:o})},f.set(t,n)}return n}function C(t){if(Array.isArray(t))return t.filter(n=>typeof n=="object"&&n!==null&&typeof n.render=="function").map(v)}function y({render:t,canvases:n,bodies:o,children:r}){const a=l(null),i=u(p);return d(()=>{const e=a.current;if(!e)return;const s=t(e,{canvases:n,bodies:o,clover:i});return()=>{typeof s=="function"&&s(),e.replaceChildren()}},[t,n,o,i]),c(m,{children:[c("div",{ref:a,className:"clover-body-renderer",style:{position:"absolute",inset:0}}),r&&c("div",{className:"clover-canvas-controls",children:r})]})}export{C as toRenderers};
1
+ import{u as c,A as l,x as u,aC as p,_ as d,k as m}from"./shared-CCg1Iag8.mjs";import"./styles-C7PVxtkQ.mjs";const f=new WeakMap;function v(t){let n=f.get(t);if(!n){const{render:o}=t;n={canvasId:t.canvasId,format:t.format,match:t.match,component:r=>c(y,{...r,render:o})},f.set(t,n)}return n}function C(t){if(Array.isArray(t))return t.filter(n=>typeof n=="object"&&n!==null&&typeof n.render=="function").map(v)}function y({render:t,canvases:n,bodies:o,children:r}){const a=l(null),i=u(p);return d(()=>{const e=a.current;if(!e)return;const s=t(e,{canvases:n,bodies:o,clover:i});return()=>{typeof s=="function"&&s(),e.replaceChildren()}},[t,n,o,i]),c(m,{children:[c("div",{ref:a,className:"clover-body-renderer",style:{position:"absolute",inset:0}}),r&&c("div",{className:"clover-canvas-controls",children:r})]})}export{C as toRenderers};
@@ -1 +1 @@
1
- import{x as n,Y as o,Q as r}from"./shared-DkY2a89G.mjs";const t=(s,a)=>a==="canvas"?o(s.manifest,s.canvasId):s.manifest,e=r(null),i=()=>n(e);export{e as P,t as r,i as u};
1
+ import{x as n,Z as o,Q as r}from"./shared-CCg1Iag8.mjs";const t=(s,a)=>a==="canvas"?o(s.manifest,s.canvasId):s.manifest,e=r(null),i=()=>n(e);export{e as P,t as r,i as u};