@nulib/clover 4.0.0-beta.1 → 4.0.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 (473) hide show
  1. package/README.md +7 -7
  2. package/dist/components/Annotations/Annotations.mjs +165 -204
  3. package/dist/components/Annotations/EntryBodies.mjs +28 -3
  4. package/dist/components/Annotations/languages.mjs +1 -17
  5. package/dist/components/Body/BodyAlert.mjs +2 -1
  6. package/dist/components/Body/Caption.mjs +2 -1
  7. package/dist/components/Body/CaptionDetails.mjs +2 -1
  8. package/dist/components/Body/glyphs.mjs +9 -0
  9. package/dist/components/Canvas/AnnotationMenu.mjs +76 -60
  10. package/dist/components/Canvas/AnnotationState.mjs +9 -2
  11. package/dist/components/Canvas/Annotations.mjs +16 -7
  12. package/dist/components/Canvas/CanvasView.mjs +173 -32
  13. package/dist/components/Canvas/ChoiceMenu.mjs +51 -31
  14. package/dist/components/Canvas/Connected.mjs +38 -4
  15. package/dist/components/Canvas/ControlMenu.mjs +6 -4
  16. package/dist/components/Canvas/Controls.mjs +17 -1
  17. package/dist/components/Canvas/FrameAnimation.mjs +568 -167
  18. package/dist/components/Canvas/LoadedCanvas.mjs +5 -3
  19. package/dist/components/Canvas/PlaceBox.mjs +74 -0
  20. package/dist/components/Canvas/Placeholder.mjs +2 -1
  21. package/dist/components/Canvas/fromManifest.mjs +2 -1
  22. package/dist/components/Canvas/layout.mjs +121 -32
  23. package/dist/components/Canvas/media/MediaBody.mjs +32 -6
  24. package/dist/components/Canvas/media/Player.mjs +11 -25
  25. package/dist/components/Canvas/media/Transport.mjs +94 -61
  26. package/dist/components/Canvas/media/TransportButton.mjs +2 -1
  27. package/dist/components/Canvas/media/placeMenu.mjs +19 -0
  28. package/dist/components/Canvas/media/seekGaps.mjs +43 -0
  29. package/dist/components/Canvas/media/sequence.mjs +96 -0
  30. package/dist/components/Canvas/media/useMediaElement.mjs +22 -3
  31. package/dist/components/Collection/Collection.mjs +2 -1
  32. package/dist/components/CollectionSelect/CollectionSelect.mjs +5 -2
  33. package/dist/components/Contents/Contents.mjs +163 -34
  34. package/dist/components/Download/Download.mjs +34 -38
  35. package/dist/components/Download/downloads.mjs +40 -0
  36. package/dist/components/Items/AnnotationItems.mjs +165 -0
  37. package/dist/components/Items/CountMenu.mjs +89 -0
  38. package/dist/components/Items/Item.mjs +24 -17
  39. package/dist/components/Items/Items.mjs +65 -37
  40. package/dist/components/Items/Pager.mjs +39 -79
  41. package/dist/components/Items/PagerLayout.mjs +41 -0
  42. package/dist/components/Items/Position.mjs +103 -0
  43. package/dist/components/Items/StandaloneItems.mjs +12 -4
  44. package/dist/components/Items/TargetItems.mjs +202 -0
  45. package/dist/components/Label/Label.mjs +2 -1
  46. package/dist/components/Map/MapView.mjs +367 -57
  47. package/dist/components/Panel/About.mjs +36 -7
  48. package/dist/components/Panel/AboutActions.mjs +117 -0
  49. package/dist/components/Panel/Panel.mjs +58 -18
  50. package/dist/components/Panel/PartOfManifest.mjs +4 -3
  51. package/dist/components/Panel/ReadingLanguages.mjs +20 -0
  52. package/dist/components/Primitives/Primitives.mjs +18 -3
  53. package/dist/components/Provider/Provider.mjs +19 -5
  54. package/dist/components/Root/Announcer.mjs +3 -2
  55. package/dist/components/Root/Root.mjs +5 -2
  56. package/dist/components/Root/useRootState.mjs +14 -2
  57. package/dist/components/Scene/SceneView.mjs +23 -6
  58. package/dist/components/Search/Search.mjs +3 -2
  59. package/dist/components/Split/Split.mjs +4 -1
  60. package/dist/components/Status/Status.mjs +10 -2
  61. package/dist/components/Timeline/playerSurface.mjs +2 -1
  62. package/dist/components/Transcript/Transcript.mjs +42 -23
  63. package/dist/core/annotation-bodies.mjs +25 -5
  64. package/dist/core/annotation-collection.mjs +3 -2
  65. package/dist/core/annotation-name.mjs +12 -9
  66. package/dist/core/annotation-sets.mjs +139 -10
  67. package/dist/core/annotations-content.mjs +8 -1
  68. package/dist/core/annotations.mjs +8 -1
  69. package/dist/core/choice-key.mjs +5 -0
  70. package/dist/core/clover.mjs +105 -20
  71. package/dist/core/content-state-reader.mjs +33 -2
  72. package/dist/core/dates-format.mjs +30 -0
  73. package/dist/core/dates.mjs +19 -0
  74. package/dist/core/geo.mjs +46 -5
  75. package/dist/core/image-layers.mjs +96 -0
  76. package/dist/core/items.mjs +4 -2
  77. package/dist/core/language-choice.mjs +30 -0
  78. package/dist/core/link.mjs +15 -1
  79. package/dist/core/load.mjs +4 -2
  80. package/dist/core/pages.mjs +20 -1
  81. package/dist/core/presentation.mjs +6 -4
  82. package/dist/core/range-regions.mjs +70 -0
  83. package/dist/core/ranges.mjs +52 -18
  84. package/dist/core/region.mjs +7 -2
  85. package/dist/core/sanitize.mjs +86 -1
  86. package/dist/core/save-file.mjs +33 -0
  87. package/dist/core/selectors.mjs +12 -0
  88. package/dist/core/upgrade.mjs +23 -0
  89. package/dist/core/value.mjs +11 -23
  90. package/dist/hooks/useFullscreenExit.mjs +26 -0
  91. package/dist/hooks/useHighContrast.mjs +27 -0
  92. package/dist/i18n/autonym.mjs +11 -0
  93. package/dist/i18n/config.mjs +3 -8
  94. package/dist/{core → i18n}/direction.mjs +5 -1
  95. package/dist/i18n/languages.mjs +44 -0
  96. package/dist/i18n/locales/en.json.mjs +1 -1
  97. package/dist/i18n/locales/es.json.mjs +1 -1
  98. package/dist/i18n/locales/fi.json.mjs +1 -1
  99. package/dist/i18n/locales/fr.json.mjs +1 -1
  100. package/dist/i18n/locales/nb.json.mjs +1 -1
  101. package/dist/i18n/locales/nn.json.mjs +1 -1
  102. package/dist/i18n/locales/no.json.mjs +1 -1
  103. package/dist/i18n/locales/pt.json.mjs +1 -1
  104. package/dist/{ui → i18n}/useContainerName.mjs +5 -4
  105. package/dist/{react/language.mjs → i18n/useRootLanguage.mjs} +2 -2
  106. package/dist/index.d.mts +393 -53
  107. package/dist/index.mjs +6 -2
  108. package/dist/lib/fullscreen.mjs +6 -1
  109. package/dist/lib/renderer/CanvasRenderer.mjs +28 -5
  110. package/dist/lib/renderer/math/affine.mjs +14 -0
  111. package/dist/lib/renderer/scene/planFrame.mjs +12 -12
  112. package/dist/lib/renderer/scene/regions.mjs +11 -1
  113. package/dist/lib/renderer/scene/sceneItem.mjs +72 -9
  114. package/dist/lib/time.mjs +10 -0
  115. package/dist/map/index.d.mts +26 -4
  116. package/dist/react/fetchManifest.mjs +19 -0
  117. package/dist/react/hooks.mjs +7 -1
  118. package/dist/react/readingLanguages.mjs +16 -0
  119. package/dist/react/usePagesReached.mjs +42 -0
  120. package/dist/styles.css +1 -1
  121. package/dist/templates/default/Default.mjs +87 -9
  122. package/dist/templates/document/Document.mjs +5 -1
  123. package/dist/templates/index.d.mts +21 -3
  124. package/dist/templates.css +1 -1
  125. package/dist/ui/BodyUnloadable.mjs +34 -0
  126. package/dist/ui/Button.mjs +2 -1
  127. package/dist/ui/Chevron.mjs +34 -0
  128. package/dist/ui/ControlCluster.mjs +6 -3
  129. package/dist/ui/EntryThumbnail.mjs +60 -0
  130. package/dist/ui/ExitFullscreen.mjs +2 -1
  131. package/dist/ui/FieldPill.mjs +5 -4
  132. package/dist/ui/HideToggle.mjs +2 -1
  133. package/dist/ui/LanguageChoice.mjs +45 -0
  134. package/dist/ui/ListEnd.mjs +29 -0
  135. package/dist/ui/Markup.mjs +27 -8
  136. package/dist/ui/NavDate.mjs +29 -0
  137. package/dist/ui/ReadMore.mjs +3 -2
  138. package/dist/ui/Sections.mjs +19 -28
  139. package/dist/ui/Steps.mjs +4 -3
  140. package/dist/ui/Tip.mjs +9 -4
  141. package/dist/web-components/About-DhOGPFaI.mjs +1 -0
  142. package/dist/web-components/AnnotationItems-CNP4CJiT.mjs +1 -0
  143. package/dist/web-components/AnnotationMenu-BCwwwfbb.mjs +1 -0
  144. package/dist/web-components/AnnotationState-CavxnAAq.mjs +1 -0
  145. package/dist/web-components/Annotations-DDjSrBL5.mjs +2 -0
  146. package/dist/web-components/Annotations-rBmeI5sR.mjs +1 -0
  147. package/dist/web-components/Body-DaY1UJIy.mjs +1 -0
  148. package/dist/web-components/BodyAlert-COKp19lq.mjs +1 -0
  149. package/dist/web-components/BodyUnloadable-DcTM7hHF.mjs +1 -0
  150. package/dist/web-components/Button-DLFYqtz9.mjs +1 -0
  151. package/dist/web-components/{Camera-cdCqKMup.mjs → Camera-Cp5ma-6C.mjs} +1 -1
  152. package/dist/web-components/{Canvas2DBackend-CnLEHRs4.mjs → Canvas2DBackend-3PToh87Z.mjs} +1 -1
  153. package/dist/web-components/CanvasView-BWQ4SK2b.mjs +2 -0
  154. package/dist/web-components/CaptionDetails-DSziiuQV.mjs +1 -0
  155. package/dist/web-components/Chevron-r-_hUPn8.mjs +1 -0
  156. package/dist/web-components/ChoiceMenu-DTuEEUeM.mjs +1 -0
  157. package/dist/web-components/Collection-B9swJtPW.mjs +1 -0
  158. package/dist/web-components/CollectionSelect-CBWUbqQi.mjs +1 -0
  159. package/dist/web-components/Connected-B2d6EoFl.mjs +1 -0
  160. package/dist/web-components/Connected-BSRM9FJY.mjs +1 -0
  161. package/dist/web-components/Connected-BnpxYeJN.mjs +1 -0
  162. package/dist/web-components/Contents-D7FPxSH-.mjs +1 -0
  163. package/dist/web-components/ControlMenu-Crtho2cs.mjs +1 -0
  164. package/dist/web-components/CountMenu-DyTp_J4k.mjs +1 -0
  165. package/dist/web-components/Cue-CbZaGwZh.mjs +1 -0
  166. package/dist/web-components/Document-BfltLWZZ.mjs +1 -0
  167. package/dist/web-components/DocumentPanel-ZSe40cV4.mjs +1 -0
  168. package/dist/web-components/{DomLayers-BD4QPbl6.mjs → DomLayers-CTGub6wo.mjs} +1 -1
  169. package/dist/web-components/Download-BOYNIb7C.mjs +1 -0
  170. package/dist/web-components/EntryBodies-Bfd2Z42z.mjs +1 -0
  171. package/dist/web-components/EntryThumbnail-DQE8ajI9.mjs +1 -0
  172. package/dist/web-components/FieldPill-D5DNJWLy.mjs +1 -0
  173. package/dist/web-components/FrameAnimation-IfR1czfc.mjs +1 -0
  174. package/dist/web-components/Gallery-DD06BDQo.mjs +1 -0
  175. package/dist/web-components/HideToggle-DL911R1Z.mjs +1 -0
  176. package/dist/web-components/Items-BHzT9A73.mjs +1 -0
  177. package/dist/web-components/Label-KabnxuMN.mjs +1 -0
  178. package/dist/web-components/LanguageChoice-DT1UPiDn.mjs +1 -0
  179. package/dist/web-components/LightboxBody-BhRhdXo6.mjs +1 -0
  180. package/dist/web-components/ListEnd-CbwNlty-.mjs +1 -0
  181. package/dist/web-components/{Loaded-D5xmFRSo.mjs → Loaded-BWfEBJyg.mjs} +1 -1
  182. package/dist/web-components/LoadedCanvas-CdZ5WOWz.mjs +1 -0
  183. package/dist/web-components/LoadedMap-DQyQVRVQ.mjs +1 -0
  184. package/dist/web-components/{Loading-CBKfwsML.mjs → Loading-zw74TdAz.mjs} +1 -1
  185. package/dist/web-components/{Map-Bcgp_R8H.mjs → Map--dJhk0_0.mjs} +1 -1
  186. package/dist/web-components/MapView-duA5WGsu.mjs +3 -0
  187. package/dist/web-components/Markup-D-kioDf9.mjs +2 -0
  188. package/dist/web-components/MediaBody-CoOiVXcv.mjs +1 -0
  189. package/dist/web-components/MediaBody-d8ErTuwT.mjs +1 -0
  190. package/dist/web-components/NavDate-BQHuyLOC.mjs +1 -0
  191. package/dist/web-components/{Navigator-BSJbEbuJ.mjs → Navigator-B3U21_ti.mjs} +1 -1
  192. package/dist/web-components/Pager-DnJknq92.mjs +1 -0
  193. package/dist/web-components/PagerLayout-CvOmKtSW.mjs +1 -0
  194. package/dist/web-components/Panel-CIdjOznL.mjs +1 -0
  195. package/dist/web-components/{PanelToggle-mUDw73zI.mjs → PanelToggle-CFtWIeWv.mjs} +1 -1
  196. package/dist/web-components/PartOfManifest-F87jIrf9.mjs +1 -0
  197. package/dist/web-components/{Pending-BPOQ2z1L.mjs → Pending-CYAQajKu.mjs} +1 -1
  198. package/dist/web-components/PlaceBox-BtIbIotm.mjs +1 -0
  199. package/dist/web-components/Placeholder-TIyj4ZjR.mjs +1 -0
  200. package/dist/web-components/Position-BkWBRBfW.mjs +1 -0
  201. package/dist/web-components/Primitives-BmODPlnK.mjs +1 -0
  202. package/dist/web-components/Provider-C8se8i4I.mjs +1 -0
  203. package/dist/web-components/ReadMore-BwGFsLS2.mjs +1 -0
  204. package/dist/web-components/Root-CAJB0-Mh.mjs +1 -0
  205. package/dist/web-components/Scene-Ctcdt7CD.mjs +1 -0
  206. package/dist/web-components/SceneView-B6bEx_7x.mjs +1 -0
  207. package/dist/web-components/Search-CbmK9vLp.mjs +1 -0
  208. package/dist/web-components/Sections-Dy5_pkyQ.mjs +2 -0
  209. package/dist/web-components/StandaloneItems-BmUnBp0H.mjs +1 -0
  210. package/dist/web-components/Status-Dww3Pyf4.mjs +1 -0
  211. package/dist/web-components/Steps-o_UprQfZ.mjs +1 -0
  212. package/dist/web-components/TargetItems-BBOGDubv.mjs +1 -0
  213. package/dist/web-components/Timeline-CfIF4APc.mjs +1 -0
  214. package/dist/web-components/Tip-BbexILXs.mjs +1 -0
  215. package/dist/web-components/Transcript-ZVXM3ZDA.mjs +1 -0
  216. package/dist/web-components/annotation-collection-7SS1ELcO.mjs +1 -0
  217. package/dist/web-components/annotation-name-CYkZopdd.mjs +1 -0
  218. package/dist/web-components/annotations-content-Bdtn50sf.mjs +1 -0
  219. package/dist/web-components/body-CkOBHlJ0.mjs +1 -0
  220. package/dist/web-components/canvas-CWf_Fag8.mjs +1 -0
  221. package/dist/web-components/choice-key-BUNebLKe.mjs +1 -0
  222. package/dist/web-components/{cloverEngine-B4LinbSt.mjs → cloverEngine-6djEHNCD.mjs} +2 -2
  223. package/dist/web-components/content-state-reader-Ahh6artg.mjs +1 -0
  224. package/dist/web-components/{controls-Dj2BybWb.mjs → controls-BJrZVQkS.mjs} +1 -1
  225. package/dist/web-components/custom-elements.json +109 -13
  226. package/dist/web-components/dates-DR3gfcON.mjs +1 -0
  227. package/dist/web-components/downloads-CqVWo-yn.mjs +1 -0
  228. package/dist/web-components/{engine-BSt8LTso.mjs → engine-B-sscpLa.mjs} +1 -1
  229. package/dist/web-components/{engines-CC0OEsVE.mjs → engines-DfCHjbt3.mjs} +1 -1
  230. package/dist/web-components/es-BYfHUZ7P.mjs +1 -0
  231. package/dist/web-components/fetchManifest-BIzne1Pj.mjs +1 -0
  232. package/dist/web-components/fi-B5y2qr8T.mjs +1 -0
  233. package/dist/web-components/fr-ChezCx6V.mjs +1 -0
  234. package/dist/web-components/fromManifest-gg5Wx14y.mjs +1 -0
  235. package/dist/web-components/glyphs-JYl2STEr.mjs +1 -0
  236. package/dist/web-components/hooks-x7rO95CS.mjs +1 -0
  237. package/dist/web-components/image-layers-BjbeyHBS.mjs +1 -0
  238. package/dist/web-components/{imageService-dsdmcegU.mjs → imageService-0eTvQ-3h.mjs} +1 -1
  239. package/dist/web-components/index-BZ7b9k0N.mjs +1 -0
  240. package/dist/web-components/index.d.mts +95 -10
  241. package/dist/web-components/index.mjs +1 -1
  242. package/dist/web-components/items-CnAIl9fS.mjs +1 -0
  243. package/dist/web-components/items-F6hJgdAS.mjs +1 -0
  244. package/dist/web-components/label-CI88KH2_.mjs +1 -0
  245. package/dist/web-components/layout-De1MOSYe.mjs +1 -0
  246. package/dist/web-components/link-GEdiEwlR.mjs +1 -0
  247. package/dist/web-components/logo-Ckwj7FlP.mjs +1 -0
  248. package/dist/web-components/models-59cEeiAA.mjs +1 -0
  249. package/dist/web-components/nb-8J22f9Td.mjs +1 -0
  250. package/dist/web-components/nn-Dv1EvzI1.mjs +1 -0
  251. package/dist/web-components/no-8J22f9Td.mjs +1 -0
  252. package/dist/web-components/{nodes-B7JRwBgl.mjs → nodes-CTw9OqlA.mjs} +1 -1
  253. package/dist/web-components/{overlayImage-0OgQl1TL.mjs → overlayImage-BMt4UTlR.mjs} +1 -1
  254. package/dist/web-components/{panel-CjXfre-g.mjs → panel-C17Rl9Ya.mjs} +1 -1
  255. package/dist/web-components/part-CXts97_M.mjs +1 -0
  256. package/dist/web-components/playerSurface-HYwEwPK6.mjs +1 -0
  257. package/dist/web-components/presentation-2-C-U79S_T.mjs +1 -0
  258. package/dist/web-components/{provider-C1wKfdjb.mjs → provider-BpxorEiq.mjs} +1 -1
  259. package/dist/web-components/pt-DWYQkATt.mjs +1 -0
  260. package/dist/web-components/range-regions-BGQy4E9U.mjs +1 -0
  261. package/dist/web-components/read-more-BDM_6CVc.mjs +1 -0
  262. package/dist/web-components/readingLanguages-fs_HqvqQ.mjs +1 -0
  263. package/dist/web-components/rendererSurface-C0aKlE0v.mjs +22 -0
  264. package/dist/web-components/{renderers-BMSWEFUR.mjs → renderers-CiB74bQh.mjs} +1 -1
  265. package/dist/web-components/{resource-DLHocQ1C.mjs → resource-CRbpf9pX.mjs} +1 -1
  266. package/dist/web-components/sanitize-qIOeyIww.mjs +3 -0
  267. package/dist/web-components/save-file-CCuZEuQr.mjs +1 -0
  268. package/dist/web-components/search-CkM0O0Z1.mjs +1 -0
  269. package/dist/web-components/sequence-C28xoNmD.mjs +1 -0
  270. package/dist/web-components/shared-MTsMddHx.mjs +1 -0
  271. package/dist/web-components/{show-link-CyzYE1eS.mjs → show-link-BXm7SNIC.mjs} +1 -1
  272. package/dist/web-components/{sizedImage-uv_NlE0l.mjs → sizedImage-k4Q-eyOB.mjs} +1 -1
  273. package/dist/web-components/{split-CYuMjp89.mjs → split-Hp6z-v4h.mjs} +1 -1
  274. package/dist/web-components/{status-Ms5L0ghK.mjs → status-BmtuKfAG.mjs} +1 -1
  275. package/dist/web-components/styles-CZV1nbBQ.mjs +1 -0
  276. package/dist/web-components/three.mjs +1 -1
  277. package/dist/web-components/thumbnail-Dp7a8oom.mjs +1 -0
  278. package/dist/web-components/{tip-dWhupWSr.mjs → tip-C-oovDZK.mjs} +1 -1
  279. package/dist/web-components/{toggle-BQTjR1I3.mjs → toggle-C7ODWDEZ.mjs} +1 -1
  280. package/dist/web-components/upgrade-eNW0DPXq.mjs +1 -0
  281. package/dist/web-components/upgrader-BlbMUEH6.mjs +1 -0
  282. package/dist/web-components/useContainerName-CrOmY-km.mjs +1 -0
  283. package/dist/web-components/useNearViewport-BqXi9Gn4.mjs +1 -0
  284. package/dist/web-components/{useScrollTrack-WbG28FPD.mjs → useScrollTrack-CEsOU2yT.mjs} +1 -1
  285. package/dist/web-components/viewer/AnnotationItems-CyhVcRFc.mjs +1 -0
  286. package/dist/web-components/viewer/AnnotationMenu-DPOSehBo.mjs +1 -0
  287. package/dist/web-components/viewer/AnnotationState-Bjztkobn.mjs +1 -0
  288. package/dist/web-components/viewer/Annotations-Dh_8Tzi0.mjs +2 -0
  289. package/dist/web-components/viewer/Annotations-wwuOCxzI.mjs +1 -0
  290. package/dist/web-components/viewer/{Canvas2DBackend-CAmzJD5P.mjs → Canvas2DBackend-BTK6ZJh0.mjs} +1 -1
  291. package/dist/web-components/viewer/CaptionDetails-BwCTovy_.mjs +1 -0
  292. package/dist/web-components/viewer/ChoiceMenu-DQ1x572Y.mjs +1 -0
  293. package/dist/web-components/viewer/Collection-DSBxCmXw.mjs +1 -0
  294. package/dist/web-components/viewer/Connected-CL3N8F2J.mjs +1 -0
  295. package/dist/web-components/viewer/Connected-DTk1jlyI.mjs +1 -0
  296. package/dist/web-components/viewer/Contents-DrXckx7d.mjs +1 -0
  297. package/dist/web-components/viewer/ControlMenu-Bp91s-g_.mjs +1 -0
  298. package/dist/web-components/viewer/CountMenu-4u6U6yqb.mjs +1 -0
  299. package/dist/web-components/viewer/Cue-C-aF8peC.mjs +1 -0
  300. package/dist/web-components/viewer/Document-BN1rICu3.mjs +1 -0
  301. package/dist/web-components/viewer/DocumentPanel-CEesxdeY.mjs +1 -0
  302. package/dist/web-components/viewer/{DomLayers-DRdQSEtN.mjs → DomLayers-CGkDtemL.mjs} +1 -1
  303. package/dist/web-components/viewer/Download-CawEl9MN.mjs +1 -0
  304. package/dist/web-components/viewer/EntryBodies-nYHMwSSM.mjs +1 -0
  305. package/dist/web-components/viewer/EntryThumbnail-DrO_0SzR.mjs +1 -0
  306. package/dist/web-components/viewer/FieldPill-DFXGWrvB.mjs +1 -0
  307. package/dist/web-components/viewer/FrameAnimation-CZfzpxaD.mjs +1 -0
  308. package/dist/web-components/viewer/Gallery-MWHtvjti.mjs +1 -0
  309. package/dist/web-components/viewer/HideToggle-DP5kHzWM.mjs +1 -0
  310. package/dist/web-components/viewer/LanguageChoice-C50T7dPI.mjs +1 -0
  311. package/dist/web-components/viewer/{LightboxBody-CXMc1xOH.mjs → LightboxBody-C2T7IC29.mjs} +1 -1
  312. package/dist/web-components/viewer/ListEnd-BDuOx__m.mjs +1 -0
  313. package/dist/web-components/viewer/MapView-BN9wXQKV.mjs +3 -0
  314. package/dist/web-components/viewer/MediaBody-CEyswliX.mjs +1 -0
  315. package/dist/web-components/viewer/MediaBody-Dw3DWDjc.mjs +1 -0
  316. package/dist/web-components/viewer/NavDate-C2-wwLuB.mjs +1 -0
  317. package/dist/web-components/viewer/{Navigator-CKwDgG2x.mjs → Navigator-C3jghOd3.mjs} +1 -1
  318. package/dist/web-components/viewer/PagerLayout-Cg2NpqoD.mjs +1 -0
  319. package/dist/web-components/viewer/PartOfManifest-D22yMgCf.mjs +1 -0
  320. package/dist/web-components/viewer/PlaceBox-Dckw4Sfk.mjs +1 -0
  321. package/dist/web-components/viewer/Placeholder-NYVWYg5Q.mjs +1 -0
  322. package/dist/web-components/viewer/Search-DC259m4f.mjs +1 -0
  323. package/dist/web-components/viewer/StandaloneItems-E4kpMne9.mjs +1 -0
  324. package/dist/web-components/viewer/Steps-Bw32X5xO.mjs +1 -0
  325. package/dist/web-components/viewer/TargetItems-DLhUH1Gq.mjs +1 -0
  326. package/dist/web-components/viewer/Transcript-D_VGJQxn.mjs +1 -0
  327. package/dist/web-components/viewer/annotation-collection-DZHa18ir.mjs +1 -0
  328. package/dist/web-components/viewer/annotation-name-BaNdW2Xk.mjs +1 -0
  329. package/dist/web-components/viewer/annotations-content-CbA3eOIC.mjs +1 -0
  330. package/dist/web-components/viewer/{cloverEngine-CynoKdta.mjs → cloverEngine-C04bCSFR.mjs} +2 -2
  331. package/dist/web-components/viewer/content-state-reader-C7UBMOq3.mjs +1 -0
  332. package/dist/web-components/viewer/fetchManifest-C2Yxg3x9.mjs +1 -0
  333. package/dist/web-components/viewer/{host-DlCltI_c.mjs → host-CZeyjCKR.mjs} +1 -1
  334. package/dist/web-components/viewer/image-layers-B09fporZ.mjs +1 -0
  335. package/dist/web-components/viewer/index.mjs +1 -1
  336. package/dist/web-components/viewer/link-DssZ0Z2N.mjs +1 -0
  337. package/dist/web-components/viewer/overlayImage-BR3eJCKq.mjs +1 -0
  338. package/dist/web-components/viewer/range-regions-By6L5JOK.mjs +1 -0
  339. package/dist/web-components/viewer/{renderers-C_wdmw9v.mjs → renderers-DLoqv3QO.mjs} +1 -1
  340. package/dist/web-components/viewer/save-file-CJT5p5Hg.mjs +1 -0
  341. package/dist/web-components/viewer/{search-BHLyNxZ6.mjs → search-PhOwMKHi.mjs} +1 -1
  342. package/dist/web-components/viewer/styles-NZLnZPAC.mjs +1 -0
  343. package/dist/web-components/viewer/viewer-D30YHqyF.mjs +29 -0
  344. package/dist/web-components/viewer/{vtt-XiS_-5Ao.mjs → vtt-1Pk7Dhsj.mjs} +1 -1
  345. package/dist/web-components/viewer-CH7re5OO.mjs +1 -0
  346. package/dist/web-components/{vtt-DYAOuQoK.mjs → vtt-CacHieeN.mjs} +1 -1
  347. package/package.json +8 -4
  348. package/dist/i18n/reader.mjs +0 -13
  349. package/dist/web-components/About-DbrFSVBm.mjs +0 -1
  350. package/dist/web-components/AnnotationMenu-EBjIQpQl.mjs +0 -1
  351. package/dist/web-components/AnnotationState-DQTaO6Gz.mjs +0 -1
  352. package/dist/web-components/Annotations-Cb9U7HJ_.mjs +0 -2
  353. package/dist/web-components/Annotations-Dl0SgHBS.mjs +0 -1
  354. package/dist/web-components/Body-DxSz3iST.mjs +0 -1
  355. package/dist/web-components/BodyAlert-C8EOXz24.mjs +0 -1
  356. package/dist/web-components/Button-uWgfvqsL.mjs +0 -1
  357. package/dist/web-components/CanvasView-BI3YzNdK.mjs +0 -1
  358. package/dist/web-components/CaptionDetails-B80ZhZ7v.mjs +0 -1
  359. package/dist/web-components/ChoiceMenu-DCp7-co7.mjs +0 -1
  360. package/dist/web-components/Collection-B1Le2_TU.mjs +0 -1
  361. package/dist/web-components/CollectionSelect-BL_jQog-.mjs +0 -1
  362. package/dist/web-components/Connected-BxqaRL9o.mjs +0 -1
  363. package/dist/web-components/Connected-DCBI-j9H.mjs +0 -1
  364. package/dist/web-components/Connected-DkhfVWxd.mjs +0 -1
  365. package/dist/web-components/Contents-zYEGHLfe.mjs +0 -1
  366. package/dist/web-components/ControlMenu-CAHiLAtl.mjs +0 -1
  367. package/dist/web-components/Cue-BT2V9VAq.mjs +0 -1
  368. package/dist/web-components/Document-BdCjGnJN.mjs +0 -1
  369. package/dist/web-components/DocumentPanel-X_Rta0Wu.mjs +0 -1
  370. package/dist/web-components/Download-DqU-goFi.mjs +0 -1
  371. package/dist/web-components/EntryBodies-DXAQH0vR.mjs +0 -1
  372. package/dist/web-components/ErrorBoundary-chQaO-Up.mjs +0 -1
  373. package/dist/web-components/FieldPill-CyEssPVm.mjs +0 -1
  374. package/dist/web-components/FrameAnimation-Bb0pOoRl.mjs +0 -1
  375. package/dist/web-components/Gallery-BXU3TcT3.mjs +0 -1
  376. package/dist/web-components/HideToggle-BwMrOBMu.mjs +0 -1
  377. package/dist/web-components/Items-DRj1UEpC.mjs +0 -1
  378. package/dist/web-components/Label-D6aVJB9s.mjs +0 -1
  379. package/dist/web-components/LightboxBody-BzXQGMDn.mjs +0 -1
  380. package/dist/web-components/LoadedCanvas-DOjtxLSe.mjs +0 -1
  381. package/dist/web-components/LoadedMap-DouDS2lO.mjs +0 -1
  382. package/dist/web-components/MapView-CD5zkTs8.mjs +0 -1
  383. package/dist/web-components/Markup-C1hMA8wk.mjs +0 -2
  384. package/dist/web-components/MediaBody-B_Gii4we.mjs +0 -1
  385. package/dist/web-components/MediaBody-BfrKIPte.mjs +0 -1
  386. package/dist/web-components/Pager-Di_2hHM3.mjs +0 -1
  387. package/dist/web-components/Panel-DbsC8A9V.mjs +0 -1
  388. package/dist/web-components/PartOfManifest-7eOwURrF.mjs +0 -1
  389. package/dist/web-components/Primitives-XQO3m1wG.mjs +0 -1
  390. package/dist/web-components/Provider-B61118lU.mjs +0 -1
  391. package/dist/web-components/ReadMore-BJH-qqte.mjs +0 -1
  392. package/dist/web-components/Root-Dj277K6p.mjs +0 -1
  393. package/dist/web-components/Scene-BTWpLeec.mjs +0 -1
  394. package/dist/web-components/SceneView-BYo7WmPt.mjs +0 -1
  395. package/dist/web-components/Search-ZV8FFN4p.mjs +0 -1
  396. package/dist/web-components/Sections-ejwu1_Sm.mjs +0 -2
  397. package/dist/web-components/StandaloneItems-BYaiyCca.mjs +0 -1
  398. package/dist/web-components/Status-YbQK2KzY.mjs +0 -1
  399. package/dist/web-components/Timeline-ByyVSd7B.mjs +0 -1
  400. package/dist/web-components/Tip-IO11xX4x.mjs +0 -1
  401. package/dist/web-components/Transcript-D0gUxUoA.mjs +0 -1
  402. package/dist/web-components/annotation-collection-Csv7WIlm.mjs +0 -1
  403. package/dist/web-components/annotations-content-BS_OFz5Z.mjs +0 -1
  404. package/dist/web-components/body-CKjwwFep.mjs +0 -1
  405. package/dist/web-components/canvas-CIzpp-Uz.mjs +0 -1
  406. package/dist/web-components/content-state-reader-D1BkpICh.mjs +0 -1
  407. package/dist/web-components/es-BwMkoRod.mjs +0 -1
  408. package/dist/web-components/fi-gPFOn9RK.mjs +0 -1
  409. package/dist/web-components/fr-DUHmgdJo.mjs +0 -1
  410. package/dist/web-components/fromManifest-BhemHaoA.mjs +0 -1
  411. package/dist/web-components/glyphs-drROkef9.mjs +0 -1
  412. package/dist/web-components/hooks-BXzQSllm.mjs +0 -1
  413. package/dist/web-components/index-B7nZdqLg.mjs +0 -1
  414. package/dist/web-components/items-CB2Uk7ts.mjs +0 -1
  415. package/dist/web-components/items-jfQ5XzEj.mjs +0 -1
  416. package/dist/web-components/keep-fragments-B5nlv2ck.mjs +0 -1
  417. package/dist/web-components/label-Vbg_cMOJ.mjs +0 -1
  418. package/dist/web-components/layout-mMHI0lsj.mjs +0 -1
  419. package/dist/web-components/link-ZRnv5NFR.mjs +0 -1
  420. package/dist/web-components/logo-Boy6u4m2.mjs +0 -1
  421. package/dist/web-components/models-D1EE_CmH.mjs +0 -1
  422. package/dist/web-components/nb-BSvnQ6jd.mjs +0 -1
  423. package/dist/web-components/nn-Dg2_HdZu.mjs +0 -1
  424. package/dist/web-components/no-BSvnQ6jd.mjs +0 -1
  425. package/dist/web-components/part-cUiPs2-y.mjs +0 -1
  426. package/dist/web-components/playerSurface-CU5XxI1j.mjs +0 -1
  427. package/dist/web-components/pt-B3J80JgO.mjs +0 -1
  428. package/dist/web-components/read-more-DNHNtG-a.mjs +0 -1
  429. package/dist/web-components/rendererSurface-DhIlOjGT.mjs +0 -22
  430. package/dist/web-components/sanitize-Dc7nOsgO.mjs +0 -3
  431. package/dist/web-components/search-CLy2Wj01.mjs +0 -1
  432. package/dist/web-components/shared-YUjOSBKO.mjs +0 -1
  433. package/dist/web-components/styles-CyuM_fB1.mjs +0 -1
  434. package/dist/web-components/thumbnail-c2K_iQsD.mjs +0 -1
  435. package/dist/web-components/time-B9GZoYcm.mjs +0 -1
  436. package/dist/web-components/upgrader-XNxI-5jo.mjs +0 -1
  437. package/dist/web-components/useContainerName-BpJ3IWY0.mjs +0 -1
  438. package/dist/web-components/useNearViewport-CtLyYg9n.mjs +0 -1
  439. package/dist/web-components/viewer/AnnotationMenu-ZKyBeyUU.mjs +0 -1
  440. package/dist/web-components/viewer/AnnotationState-DO33zokc.mjs +0 -1
  441. package/dist/web-components/viewer/Annotations-BOjhr5ks.mjs +0 -1
  442. package/dist/web-components/viewer/Annotations-DkLueFLK.mjs +0 -2
  443. package/dist/web-components/viewer/CaptionDetails-DOJlUtOn.mjs +0 -1
  444. package/dist/web-components/viewer/ChoiceMenu-BDq6H34G.mjs +0 -1
  445. package/dist/web-components/viewer/Collection-By3puO0V.mjs +0 -1
  446. package/dist/web-components/viewer/Connected-DZNO2CPf.mjs +0 -1
  447. package/dist/web-components/viewer/Connected-ESg5y49m.mjs +0 -1
  448. package/dist/web-components/viewer/Contents-B_FqDwTW.mjs +0 -1
  449. package/dist/web-components/viewer/ControlMenu-DdQl-dTf.mjs +0 -1
  450. package/dist/web-components/viewer/Cue-BTRHfiWQ.mjs +0 -1
  451. package/dist/web-components/viewer/Document-B9_PyD2w.mjs +0 -1
  452. package/dist/web-components/viewer/DocumentPanel-CtEJVPoE.mjs +0 -1
  453. package/dist/web-components/viewer/EntryBodies-CJuTRcTq.mjs +0 -1
  454. package/dist/web-components/viewer/FieldPill-06uwrNwE.mjs +0 -1
  455. package/dist/web-components/viewer/FrameAnimation-3dcDHf5q.mjs +0 -1
  456. package/dist/web-components/viewer/Gallery-BYasTqZc.mjs +0 -1
  457. package/dist/web-components/viewer/HideToggle-BxkNMX-T.mjs +0 -1
  458. package/dist/web-components/viewer/MapView-DCerrRRV.mjs +0 -1
  459. package/dist/web-components/viewer/MediaBody-BdkJcyGy.mjs +0 -1
  460. package/dist/web-components/viewer/MediaBody-waF4KvHp.mjs +0 -1
  461. package/dist/web-components/viewer/PartOfManifest-DalHJFwC.mjs +0 -1
  462. package/dist/web-components/viewer/Search-Di_QQfDb.mjs +0 -1
  463. package/dist/web-components/viewer/StandaloneItems-B9J6nnWn.mjs +0 -1
  464. package/dist/web-components/viewer/Transcript-aHOixfna.mjs +0 -1
  465. package/dist/web-components/viewer/annotation-collection-I2UkdobR.mjs +0 -1
  466. package/dist/web-components/viewer/annotations-content-D-i4j9pD.mjs +0 -1
  467. package/dist/web-components/viewer/content-state-reader-D7GIMcKK.mjs +0 -1
  468. package/dist/web-components/viewer/link-BX-wzj1u.mjs +0 -1
  469. package/dist/web-components/viewer/overlayImage-CHqn1fG8.mjs +0 -1
  470. package/dist/web-components/viewer/styles-BRCkEU3w.mjs +0 -1
  471. package/dist/web-components/viewer/viewer-ipqAA-xQ.mjs +0 -28
  472. package/dist/web-components/viewer-DEHIsIHd.mjs +0 -1
  473. /package/dist/{ui → i18n}/languageCode.mjs +0 -0
@@ -3,7 +3,7 @@ import { jsx, jsxs } from "react/jsx-runtime";
3
3
  import React, { forwardRef, useState, useEffect } from "react";
4
4
  import { readAs, markdownToPlainText, toPlainText, hasMarkup } from "../core/text.mjs";
5
5
  import { localize } from "../core/value.mjs";
6
- import { directionOf } from "../core/direction.mjs";
6
+ import { languageProps } from "../i18n/direction.mjs";
7
7
  function useSanitized(text, markdown = false, headingLevel = 3) {
8
8
  const markup = markdown || hasMarkup(text);
9
9
  const key = markdown ? `${headingLevel}
@@ -26,9 +26,28 @@ ${text}` : text;
26
26
  }, [text, key, markup, markdown, headingLevel]);
27
27
  return markup && (html == null ? void 0 : html.for) === key ? html.html : null;
28
28
  }
29
+ const INLINE_ONLY = /* @__PURE__ */ new Set([
30
+ "p",
31
+ "span",
32
+ "h1",
33
+ "h2",
34
+ "h3",
35
+ "h4",
36
+ "h5",
37
+ "h6",
38
+ "a",
39
+ "b",
40
+ "i",
41
+ "em",
42
+ "strong",
43
+ "small",
44
+ "sub",
45
+ "sup",
46
+ "label"
47
+ ]);
29
48
  const Markup = forwardRef(function Markup2({ as: Tag = "span", markup, language, format, headingLevel, ...rest }, ref) {
30
49
  const { text, lang } = localize(markup, language);
31
- const dir = directionOf(lang);
50
+ const written = languageProps(lang);
32
51
  const kind = readAs(format, text);
33
52
  const markdown = kind === "markdown";
34
53
  const html = useSanitized(
@@ -38,22 +57,22 @@ const Markup = forwardRef(function Markup2({ as: Tag = "span", markup, language,
38
57
  );
39
58
  if (!text) return null;
40
59
  if (kind === "plain")
41
- return /* @__PURE__ */ jsx(Tag, { ref, ...rest, lang, dir, children: text.split(/\r?\n/).map((line, index) => /* @__PURE__ */ jsxs(React.Fragment, { children: [
60
+ return /* @__PURE__ */ jsx(Tag, { ref, ...rest, ...written, children: text.split(/\r?\n/).map((line, index) => /* @__PURE__ */ jsxs(React.Fragment, { children: [
42
61
  index > 0 && /* @__PURE__ */ jsx("br", {}),
43
62
  line
44
63
  ] }, index)) });
64
+ const Box = typeof Tag === "string" && INLINE_ONLY.has(Tag) && html && /<(p|ul|ol|div)[\s>]/i.test(html) ? "div" : Tag;
45
65
  return html !== null ? /* @__PURE__ */ jsx(
46
- Tag,
66
+ Box,
47
67
  {
48
68
  ref,
49
69
  ...rest,
50
- lang,
51
- dir,
70
+ ...written,
52
71
  dangerouslySetInnerHTML: { __html: html }
53
72
  }
54
73
  ) : (
55
74
  // Until the sanitizer arrives, Markdown shows without its syntax.
56
- /* @__PURE__ */ jsx(Tag, { ref, ...rest, lang, dir, children: markdown ? markdownToPlainText(text) : toPlainText(text) })
75
+ /* @__PURE__ */ jsx(Tag, { ref, ...rest, ...written, children: markdown ? markdownToPlainText(text) : toPlainText(text) })
57
76
  );
58
77
  });
59
78
  const MetadataList = ({
@@ -73,7 +92,7 @@ const MetadataList = ({
73
92
  {
74
93
  "data-label": localize(item.label, "none").text.replace(/\s+/g, "-").toLowerCase(),
75
94
  children: [
76
- /* @__PURE__ */ jsx("dt", { lang: label.lang, children: label.text }),
95
+ /* @__PURE__ */ jsx("dt", { ...languageProps(label.lang), children: label.text }),
77
96
  custom !== void 0 ? /* @__PURE__ */ jsx("dd", { children: custom }) : /* @__PURE__ */ jsx(
78
97
  Markup,
79
98
  {
@@ -0,0 +1,29 @@
1
+ "use client";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { languageProps } from "../i18n/direction.mjs";
4
+ import { readDate } from "../core/dates.mjs";
5
+ import { formatDate, dateTimeOf } from "../core/dates-format.mjs";
6
+ import { langWithin } from "../i18n/config.mjs";
7
+ import { useCloverTranslation } from "../i18n/useCloverTranslation.mjs";
8
+ function NavDate({
9
+ value,
10
+ className,
11
+ within
12
+ }) {
13
+ const { i18n, hostLanguage } = useCloverTranslation();
14
+ const date = readDate(value);
15
+ if (!date) return null;
16
+ const locale = i18n.language;
17
+ return /* @__PURE__ */ jsx(
18
+ "time",
19
+ {
20
+ className,
21
+ dateTime: dateTimeOf(date, String(value)),
22
+ ...languageProps(langWithin(locale, within ?? hostLanguage)),
23
+ children: formatDate(date, locale)
24
+ }
25
+ );
26
+ }
27
+ export {
28
+ NavDate
29
+ };
@@ -3,7 +3,8 @@ import { jsxs, jsx } from "react/jsx-runtime";
3
3
  import React, { useRef, useState, useEffect, useLayoutEffect } from "react";
4
4
  import { useUniqueId } from "./useUniqueId.mjs";
5
5
  import { useCloverTranslation } from "../i18n/useCloverTranslation.mjs";
6
- import { useRootLanguage } from "../react/language.mjs";
6
+ import { useRootLanguage } from "../i18n/useRootLanguage.mjs";
7
+ import { languageProps } from "../i18n/direction.mjs";
7
8
  const useIsomorphicLayoutEffect = typeof window === "undefined" ? useEffect : useLayoutEffect;
8
9
  function ReadMore({ children }) {
9
10
  const { t } = useCloverTranslation();
@@ -31,7 +32,7 @@ function ReadMore({ children }) {
31
32
  "aria-controls": id,
32
33
  onClick: toggle,
33
34
  ref: own.ref,
34
- lang: own.langOf(open ? "readLess" : "readMore"),
35
+ ...languageProps(own.langOf(open ? "readLess" : "readMore")),
35
36
  children: open ? t("readLess") : t("readMore")
36
37
  }
37
38
  )
@@ -4,9 +4,11 @@ import { useRef, useState, useEffect, useLayoutEffect, createContext, useContext
4
4
  import { useUniqueId } from "./useUniqueId.mjs";
5
5
  import { titleTag } from "./heading.mjs";
6
6
  import { Tip } from "./Tip.mjs";
7
- import { useContainerName } from "./useContainerName.mjs";
7
+ import { useContainerName } from "../i18n/useContainerName.mjs";
8
8
  import { useScrollTrack } from "./useScrollTrack.mjs";
9
9
  import { useCloverTranslation } from "../i18n/useCloverTranslation.mjs";
10
+ import { Chevron } from "./Chevron.mjs";
11
+ import { languageProps } from "../i18n/direction.mjs";
10
12
  const useIsomorphicLayoutEffect = typeof window === "undefined" ? useEffect : useLayoutEffect;
11
13
  const SectionActionsContext = createContext(null);
12
14
  function useSectionActions() {
@@ -213,7 +215,7 @@ function Sections({
213
215
  "aria-hidden": "true",
214
216
  tabIndex: -1,
215
217
  hidden: !more,
216
- lang: langOf(key),
218
+ ...languageProps(langOf(key)),
217
219
  onMouseDown: (event) => event.preventDefault(),
218
220
  onClick: step === "prev" ? track.scrollPrev : track.scrollNext,
219
221
  children: [
@@ -271,28 +273,7 @@ function Sections({
271
273
  onKeyDown: (event) => onKeyDown(event, index),
272
274
  children: [
273
275
  /* @__PURE__ */ jsx("span", { className: "clover-sections-label", children: item.label }),
274
- !tabs && !isOpen && /* @__PURE__ */ jsx(
275
- "svg",
276
- {
277
- "aria-hidden": "true",
278
- focusable: "false",
279
- width: "12",
280
- height: "12",
281
- viewBox: "0 0 12 12",
282
- className: "clover-sections-chevron",
283
- children: /* @__PURE__ */ jsx(
284
- "path",
285
- {
286
- d: "M3 4.5l3 3 3-3",
287
- fill: "none",
288
- stroke: "currentColor",
289
- strokeWidth: "1.5",
290
- strokeLinecap: "round",
291
- strokeLinejoin: "round"
292
- }
293
- )
294
- }
295
- )
276
+ !tabs && /* @__PURE__ */ jsx(Chevron, { open: isOpen, className: "clover-sections-chevron" })
296
277
  ]
297
278
  },
298
279
  item.value
@@ -358,6 +339,7 @@ function Sections({
358
339
  tabs,
359
340
  labelledBy: `${id}-button-${index}`,
360
341
  hidden: !isOpen,
342
+ actions: item.actions,
361
343
  children: mounted.current.has(item.value) ? item.content : null
362
344
  }
363
345
  )
@@ -377,34 +359,40 @@ function Panel({
377
359
  tabs,
378
360
  labelledBy,
379
361
  hidden,
362
+ actions: own,
380
363
  children
381
364
  }) {
382
365
  const [actions, setActions] = useState(null);
366
+ const shown = !hidden || Boolean(own);
383
367
  useIsomorphicLayoutEffect(() => {
384
368
  const section = actions == null ? void 0 : actions.parentElement;
385
- if (hidden || !actions || !section || typeof ResizeObserver === "undefined")
369
+ if (!shown || !actions || !section || typeof ResizeObserver === "undefined")
386
370
  return;
387
371
  const observer = new ResizeObserver(() => {
388
372
  const width = actions.offsetWidth;
389
373
  if (width) {
390
374
  section.style.setProperty("--clover-sections-actions", `${width}px`);
375
+ section.setAttribute("data-actions", "");
391
376
  } else {
392
377
  section.style.removeProperty("--clover-sections-actions");
378
+ section.removeAttribute("data-actions");
393
379
  }
394
380
  });
395
381
  observer.observe(actions);
396
382
  return () => {
397
383
  observer.disconnect();
398
384
  section.style.removeProperty("--clover-sections-actions");
385
+ section.removeAttribute("data-actions");
399
386
  };
400
- }, [actions, hidden]);
387
+ }, [actions, shown]);
401
388
  return /* @__PURE__ */ jsxs(Fragment, { children: [
402
389
  !tabs && /* @__PURE__ */ jsx(
403
390
  "div",
404
391
  {
405
392
  ref: setActions,
406
393
  className: "clover-sections-actions",
407
- hidden
394
+ hidden: !shown,
395
+ children: own
408
396
  }
409
397
  ),
410
398
  /* @__PURE__ */ jsx(
@@ -416,7 +404,10 @@ function Panel({
416
404
  tabIndex: tabs ? 0 : void 0,
417
405
  className: "clover-sections-panel",
418
406
  hidden,
419
- children: /* @__PURE__ */ jsx(SectionActionsContext.Provider, { value: tabs ? null : actions, children })
407
+ children: /* @__PURE__ */ jsxs(SectionActionsContext.Provider, { value: tabs ? null : actions, children: [
408
+ tabs && own,
409
+ children
410
+ ] })
420
411
  }
421
412
  )
422
413
  ] });
package/dist/ui/Steps.mjs CHANGED
@@ -4,6 +4,7 @@ import { useCloverTranslation } from "../i18n/useCloverTranslation.mjs";
4
4
  import { join } from "../lib/classnames.mjs";
5
5
  import { Tip } from "./Tip.mjs";
6
6
  import { visuallyHidden } from "./visuallyHidden.mjs";
7
+ import { languageProps } from "../i18n/direction.mjs";
7
8
  function Steps({
8
9
  steps,
9
10
  sentence,
@@ -15,7 +16,7 @@ function Steps({
15
16
  const current = position + 1;
16
17
  return /* @__PURE__ */ jsxs("div", { className: join("clover-steps", className), children: [
17
18
  /* @__PURE__ */ jsxs("span", { "aria-live": "polite", className: "clover-steps-position", children: [
18
- /* @__PURE__ */ jsxs("span", { "aria-hidden": "true", children: [
19
+ /* @__PURE__ */ jsxs("span", { "aria-hidden": sentence ? "true" : void 0, children: [
19
20
  current > 0 ? current : "–",
20
21
  " / ",
21
22
  total
@@ -25,7 +26,7 @@ function Steps({
25
26
  " / ",
26
27
  total
27
28
  ] }),
28
- current > 0 && /* @__PURE__ */ jsx("span", { style: visuallyHidden, lang: langOf(sentence), children: t(sentence, { index: current, total }) })
29
+ sentence && current > 0 && /* @__PURE__ */ jsx("span", { style: visuallyHidden, ...languageProps(langOf(sentence)), children: t(sentence, { index: current, total }) })
29
30
  ] }),
30
31
  /* @__PURE__ */ jsx(Step, { steps, step: "previous" }),
31
32
  /* @__PURE__ */ jsx(Step, { steps, step: "next" })
@@ -45,7 +46,7 @@ function Step({
45
46
  type: "button",
46
47
  className: "clover-steps-step",
47
48
  "data-step": step,
48
- lang: langOf(key),
49
+ ...languageProps(langOf(key)),
49
50
  "aria-disabled": !available || void 0,
50
51
  tabIndex: available ? void 0 : -1,
51
52
  onClick: () => {
package/dist/ui/Tip.mjs CHANGED
@@ -2,6 +2,7 @@
2
2
  import { jsxs, jsx } from "react/jsx-runtime";
3
3
  import { useRef, useEffect } from "react";
4
4
  import { useCloverTranslation } from "../i18n/useCloverTranslation.mjs";
5
+ import { languageProps } from "../i18n/direction.mjs";
5
6
  const SHORTCUTS = {
6
7
  zoomIn: { keys: "Plus", glyph: "+" },
7
8
  zoomOut: { keys: "-", glyph: "−" },
@@ -33,7 +34,9 @@ function Tip({
33
34
  lang,
34
35
  shortcut,
35
36
  scrolls = false,
36
- image
37
+ image,
38
+ lead,
39
+ after
37
40
  }) {
38
41
  const { t } = useCloverTranslation();
39
42
  const ref = useRef(null);
@@ -42,14 +45,14 @@ function Tip({
42
45
  useEffect(() => {
43
46
  const tip = ref.current;
44
47
  if (tip && isShown(tip)) keepInside(tip);
45
- }, [text]);
48
+ }, [text, lead]);
46
49
  return /* @__PURE__ */ jsxs(
47
50
  "span",
48
51
  {
49
52
  ref,
50
53
  className: "clover-tip",
51
54
  "aria-hidden": "true",
52
- lang,
55
+ ...languageProps(lang),
53
56
  ...scrolls && {
54
57
  tabIndex: -1,
55
58
  onMouseDown: (event) => {
@@ -72,7 +75,9 @@ function Tip({
72
75
  }
73
76
  }
74
77
  ),
75
- text
78
+ lead && /* @__PURE__ */ jsx("span", { className: "clover-tip-lead", children: lead }),
79
+ text,
80
+ after != null && after !== false && /* @__PURE__ */ jsx("span", { className: "clover-tip-after", children: after })
76
81
  ]
77
82
  }
78
83
  );
@@ -0,0 +1 @@
1
+ import{Q as L,u as e,z as h,P as v,x as j,a as z,c as I,A as T,y as $,b as M,U as w,l as _}from"./shared-MTsMddHx.mjs";import{j as F}from"./classnames-DukgfdpI.mjs";import{u as H}from"./readingLanguages-fs_HqvqQ.mjs";import{Thumbnail as k,Summary as N,Metadata as G,RequiredStatement as U,Rights as V,Homepage as B,SeeAlso as Q,Id as W}from"./Primitives-BmODPlnK.mjs";import{u as E}from"./downloads-CqVWo-yn.mjs";import{P as J}from"./Provider-C8se8i4I.mjs";import{a as X,t as Y}from"./heading-Cjt0f-Eu.mjs";import{L as Z}from"./Label-KabnxuMN.mjs";import{r as K}from"./dates-DR3gfcON.mjs";import"./styles-CZV1nbBQ.mjs";const ee=h(()=>import("./LanguageChoice-DT1UPiDn.mjs").then(a=>({default:a.LanguageChoice}))),te=L(false);function ae({part:a}){const n=H();return n?e(v,{fallback:null,children:e(ee,{...n,nameKey:"readingLanguage",part:a})}):null}const oe=h(()=>import("./Download-BOYNIb7C.mjs").then(({DownloadGroups:a})=>({default:a}))),re=h(()=>import("./NavDate-BQHuyLOC.mjs").then(a=>a.a).then(({NavDate:a})=>({default:a}))),ne=h(()=>import("./PartOfManifest-F87jIrf9.mjs"));function le({languages:a=true,...n}){const l=j(te);return e(se,{...n,download:!l&&n.download!==false,choice:l||!a?null:e(ae,{part:"clover-about"})})}function se({choice:a,canvasSummary:n=false,headingLevel:l=3,download:S=true,thumbnail:g=true,label:d=true,className:D,...O}){const{t:C,langOf:R}=z(),b=E(),o=I(t=>t.manifest,Object.is,"About"),p=T(null);$(()=>{const t=p.current,i=t==null?void 0:t.querySelector(".clover-about-thumbnail");if(!t||!i||typeof ResizeObserver>"u")return;const r=t.querySelector(".clover-about-label"),c=()=>{const A=`${(r==null?void 0:r.offsetHeight)??0}px`,P=`${i.offsetWidth}px`,f=t.style;f.getPropertyValue("--clover-about-label-height")!==A&&f.setProperty("--clover-about-label-height",A),f.getPropertyValue("--clover-about-thumbnail-width")!==P&&f.setProperty("--clover-about-thumbnail-width",P)};c();let u=0;const m=new ResizeObserver(()=>{cancelAnimationFrame(u),u=requestAnimationFrame(c)});return m.observe(i),r&&m.observe(r),()=>{cancelAnimationFrame(u),m.disconnect(),t.style.removeProperty("--clover-about-label-height"),t.style.removeProperty("--clover-about-thumbnail-width")}},[d,g,o]);const q=M(),x=()=>{var r,c;const t=p.current;(c=((r=t==null?void 0:t.closest(".clover-sections-item"))==null?void 0:r.querySelector(".clover-sections-button"))??t)==null||c.focus({preventScroll:true})};if(!o)return null;const s=(t,i,r)=>{if(!i)return null;const{as:c,title:u,group:m}=Y(l,`${q}-${t}`);return e("section",{className:"clover-about-section",...m,children:[e(c,{className:"clover-about-heading",..._(R(t)),...u,children:C(t)}),r]})},y=t=>Array.isArray(o[t])?o[t].length>0:!!o[t];return e("div",{ref:p,className:F("clover-about",D),tabIndex:-1,...O,children:[a,(g||d)&&e("div",{className:"clover-about-head",children:[g&&e(k,{className:"clover-about-thumbnail",size:256,alt:d?"":void 0}),d&&e(Z,{as:X(l),className:"clover-about-label"})]}),n&&e(N,{of:"canvas",className:"clover-about-summary"}),w(o)&&o.partOf&&e(v,{fallback:null,children:e(ne,{manifest:o,headingLevel:l,onOpened:x})}),e(N,{className:"clover-about-summary"}),e(G,{className:"clover-about-metadata"}),e(U,{className:"clover-about-metadata"}),s("aboutDate",K(o.navDate),e(v,{fallback:null,children:e(re,{value:o.navDate,className:"clover-about-date"})})),s("aboutProvider",y("provider"),e(J,{})),s("aboutRights",o.rights,e(V,{})),s("aboutHomepage",y("homepage"),e(B,{})),s("aboutSeeAlso",y("seeAlso"),e(Q,{})),s("download",S&&b.page.length+b.all.length>0,e(v,{fallback:null,children:e(oe,{page:b.page,all:b.all,headingLevel:l+1})})),s(w(o)?"aboutCanvas":"aboutManifest",o.id,e(W,{}))]})}const pe=Object.freeze(Object.defineProperty({__proto__:null,About:le},Symbol.toStringTag,{value:"Module"}));export{le as A,te as I,pe as a};
@@ -0,0 +1 @@
1
+ import{e as P,c as v,ac as _,T as E,F as O,A as F,y as T,u as f,k as R,d as k,X as q}from"./shared-MTsMddHx.mjs";import{P as L,a as y}from"./Items-BHzT9A73.mjs";import{C as B}from"./CountMenu-DyTp_J4k.mjs";import{a as D}from"./annotation-name-CYkZopdd.mjs";import{f as G,r as K}from"./fetchManifest-BIzne1Pj.mjs";import{u as V,L as X}from"./ListEnd-CbwNlty-.mjs";function j({onSelect:o,forwardedRef:r,...c}){const{clover:l,language:e}=P("Items"),n=v(t=>t.manifest),s=v(t=>_(t.manifest,t.addedSets)),u=v(t=>t.annotationId),d=(s==null?void 0:s.pages)??z,m=(s==null?void 0:s.entries)??H,{loaded:A,more:N,reachNext:S}=V(d),x=E(()=>[...new Set(m.map(t=>O(t.annotation)).filter(t=>!!t&&t!==(n==null?void 0:n.id)))],[m,n==null?void 0:n.id]),C=Q(c.layout==="pager"?J:x),M=x.length>0,i=E(()=>{const t=d.length?new Set(d.slice(0,A).map(a=>a.id)):null;return m.filter(a=>!t||t.has(a.setId)).map(a=>{const g=O(a.annotation),p=g&&g!==(n==null?void 0:n.id)?C.get(g)??null:n;return W(a,p,e,M)})},[d,A,m,n,C,M,e]),b=Math.max((s==null?void 0:s.total)??0,i.length),I=F(null);if(T(()=>{const t=I.current;t===null||!i[t]||(I.current=null,l.selectAnnotation(i[t].id))},[l,i]),!i.length)return null;const h=i.findIndex(t=>t.id===u),w=(t,a)=>{o==null||o(t,a),l.selectAnnotation(t.id)};return c.layout==="pager"?f(L,{...c,forwardedRef:r,steps:{position:h,total:b,direction:"left-to-right",step:(a,g)=>{const p=h+a;if(!(p<0)){if(i[p])return w(i[p],g);N&&(I.current=p,S())}}},nameKey:"informationPanelTabsAnnotations",position:f(B,{position:h,total:b,list:a=>f(j,{layout:"list",forwardedRef:null,onSelect:a})})}):f(R,{children:[f(y,{...c,forwardedRef:r,items:i,selected:h,navigation:"id",language:e,request:l.request,showSummary:true,onActivate:w}),N&&f(X,{onReached:S})]})}const z=[],H=[],J=[];function Q(o){const{clover:r}=P("Items"),[c,l]=k(U);return T(()=>{if(!o.length)return;let e=true;for(const n of o)G(r,n).then(s=>{e&&s&&l(u=>u.has(n)?u:new Map(u).set(n,s))});return()=>{e=false}},[r,o]),c}const U=new Map;function W(o,r,c,l){const e=q(r,o.canvasId),n=D(o.bodies,c),s=n.text?{[n.lang??"none"]:[n.text]}:e==null?void 0:e.label,u=l?r==null?void 0:r.label:e==null?void 0:e.label,d=e&&o.target.rect?K(e,o.target.rect):void 0;return{id:o.id,label:s,summary:n.text?u:void 0,parts:[{id:o.id,type:"Canvas",label:s,resource:e??{id:o.canvasId},...d?{source:d}:{}}]}}export{j as default};
@@ -0,0 +1 @@
1
+ import{u as e,l as N}from"./shared-MTsMddHx.mjs";import{s as E}from"./Annotations-rBmeI5sR.mjs";import H from"./ControlMenu-Crtho2cs.mjs";import{C as T}from"./Cue-CbZaGwZh.mjs";import{H as $}from"./HideToggle-DL911R1Z.mjs";import{u as w}from"./useContainerName-CrOmY-km.mjs";import"./styles-CZV1nbBQ.mjs";const q=({id:m,triggerId:b,label:C,labelLang:y,annotations:d,hiddenPages:M=[],onPageVisibilityChange:g,selected:x,onSelect:v,onActivate:i,onClose:k})=>{const u=w(C,y),c=[];d.forEach((a,r)=>{var o,l;const t=c[c.length-1];t&&((o=t.page)==null?void 0:o.text)===((l=a.page)==null?void 0:l.text)?t.items.push(r):c.push({page:a.page,items:[r]})});const I=c.some(a=>!a.page);return e(H,{className:"clover-canvas-annotation-menu","data-testid":"clover-canvas-annotation-menu",id:m,onClose:k,triggerId:b,children:[I&&u.node,c.map((a,r)=>{const t=[...new Set(a.items.flatMap(s=>d[s].pageId??[]))],o=`${m}-page-${r}`,l=g&&t.length>0&&e($,{hidden:t.every(s=>M.includes(s)),onChange:s=>g(t,!s),of:a.page?o:void 0});return e("fieldset",{...a.page?{"aria-labelledby":o}:u.props,className:"clover-canvas-menu-group clover-annotations-set",children:[a.page?e("legend",{className:"clover-canvas-menu-legend clover-annotations-set-header",children:[e("span",{className:"clover-annotations-title",id:o,...N(a.page.lang),children:a.page.text}),l]}):l&&e("div",{className:"clover-annotations-set-header",children:l}),e("div",{className:"clover-annotations-list",children:a.items.map(s=>{const n=d[s],h=E(n),p=x===n.id,f="image"in n?n.image:void 0;return e("label",{className:"clover-canvas-menu-item clover-annotations-entry","data-selected":p,onMouseEnter:()=>i(n.id),onMouseLeave:()=>i(null),children:[e("input",{type:"radio",name:m,checked:p,onChange:()=>v(n),onClick:()=>p&&v(n),onFocus:()=>i(n.id),onBlur:()=>i(null)}),h!==void 0&&e(T,{start:h,className:"clover-annotations-time"}),e("span",{className:"clover-annotations-body clover-cue-text",children:[f&&e("img",{className:"clover-annotations-image",src:f,alt:"",loading:"lazy"}),e("span",{className:"clover-annotations-text",...N(n.label?n.lang:void 0),children:n.label??String(s+1)})]})]},n.id)})})]},r)})]})};export{q as default};
@@ -0,0 +1 @@
1
+ import{T as i,a5 as qt,f as bt,d as C,aA as Gt,q as k,A as l,B as jt,y as z,_ as kt,u as zt}from"./shared-MTsMddHx.mjs";import{w as Dt,p as It,g as Ot,t as Jt,A as Ut}from"./Annotations-rBmeI5sR.mjs";import{g as Xt}from"./layout-De1MOSYe.mjs";const Yt=()=>import("./svg-shape-DLY3g7oq.mjs");function Zt(w){var S;const c=i(()=>!!(w!=null&&w.some(({annotation:o})=>{var p;return(p=qt(o==null?void 0:o.target))==null?void 0:p.svg})),[w]);return((S=bt(Yt,c))==null?void 0:S.readSvgShape)??null}const xt=[];function Et({given:w,annotations:c,scene:S,renderer:o,sceneVersion:p,drawn:E,media:I,mediaElement:g,showPlaceholder:B,canvasKey:D,openImages:tt,openMedia:et,host:nt,onModel:F,refind:H=0}){const{canvases:d,language:v,hiddenPages:rt,unlistedPages:yt,onPageVisibilityChange:ct,onAnnotationActive:ut,selectedAnnotation:st,animateAnnotations:ot=false,highlightedAnnotation:Ct,onAnnotationSelect:lt,onAnnotationLink:J}=w,[_,Bt]=C([]),[it,Ft]=C([]),L=rt!==void 0,U=i(()=>{var n;if(L)return xt;const t=new Map;for(const r of c){if(!r.pageId)continue;const f=!(Number((n=d==null?void 0:d[r.targetIndex])==null?void 0:n.duration)>0)&&Gt(r.annotation.motivation,qt(Array.isArray(r.annotation.target)?r.annotation.target[0]:r.annotation.target));t.set(r.pageId,(t.get(r.pageId)??true)&&f)}const e=[...t].filter(([,r])=>r).map(([r])=>r);return e.length?e:xt},[L,c,d]),Ht=i(()=>{const t=U.filter(e=>!it.includes(e)&&!_.includes(e));return t.length?[..._,...t]:_},[_,it,U]),a=rt??Ht,X=yt??U,N=k(t=>X.length?t.filter(e=>!e.pageId||!X.includes(e.pageId)):t,[X]),dt=i(()=>N(c).length,[c,N]),A=k(t=>a.length?t.filter(e=>!e.pageId||!a.includes(e.pageId)):t,[a]),Q=l(ct);Q.current=ct;const R=k((t,e)=>{var n;(n=Q.current)==null||n.call(Q,t,e),!L&&(Bt(r=>{const s=r.filter(f=>!t.includes(f));return e?s:[...s,...t]}),Ft(r=>{const s=r.filter(f=>!t.includes(f));return e?[...s,...t]:s}))},[L]),gt=i(()=>Dt(A(c),d),[c,A,d]),O=i(()=>{if(!(!S||!d))return(t,e,n)=>{const r=d.findIndex(Wt=>Wt.id===e),s=r===-1?n:r,f=S.placements[s];return f?Xt(d[s],f,t):null}},[S,d]),W=Zt(c),P=i(()=>o&&p>0&&E?It(c,O??((t,e,n)=>o.itemRectToWorld(n,t)),W,v):[],[o,c,p,E,O,W,v]),x=i(()=>A(P),[P,A]),Y=i(()=>P.length||!O?P:It(c,O,W,v),[P,O,c,W,v]),[_t,Lt]=C(null),[Nt,ft]=C(null),u=st!==void 0?st:Nt,T=l(null),h=l(ut);h.current=ut;const m=l(lt);m.current=lt;const Z=k(t=>{var e;Lt(t),(e=h.current)==null||e.call(h,t)},[]),$=l(ot);$.current=ot;const pt=l(false);pt.current=B;const V=l(g);V.current=g;const at=l(o);at.current=o;const q=l(null),Pt=l(a);Pt.current=a;const ht=l(R);ht.current=R;const K=k(t=>{var e,n,r;if(t.pageId&&Pt.current.includes(t.pageId)&&ht.current([t.pageId],true),ft(t.id),(e=h.current)==null||e.call(h,t.id),(n=m.current)==null||n.call(m,t.id),!pt.current){if("start"in t){const s=V.current;if(!s)return;q.current=t.id,jt(s,t.start);return}if(T.current=t.id,t.track){const s=V.current;s&&Ot(t,s)&&(q.current=t.id);return}(r=at.current)==null||r.fitAnnotation(t.world,!$.current)}},[]),mt=l(u);mt.current=u;const b=k(()=>{var t;return mt.current?(ft(null),T.current=null,(t=m.current)==null||t.call(m,null),true):false},[]),G=l(J);G.current=J;const wt=!!J,Qt=i(()=>wt?t=>{var e,n;(e=nt.current)==null||e.focus({preventScroll:true}),b(),t.link&&((n=G.current)==null||n.call(G,t.link))}:void 0,[wt,b,nt]),St=l(H);z(()=>{if(!u){T.current=null;return}if(St.current!==H&&(St.current=H,T.current=null),T.current===u)return;const t=r=>r.find(s=>s.id===u),e=t(x),n=e??t(P);if(n){if(T.current=n.id,n.track){!e&&g&&Ot(n,g);return}o==null||o.fitAnnotation(n.world,!$.current)}},[u,x,P,g,o,H]);const y=i(()=>I?Jt(c,v):[],[I,c,v]),j=i(()=>A(y),[y,A]),vt=i(()=>N(y.length?[...Y,...y]:Y),[Y,y,N]);z(()=>{if(!u){q.current=null;return}if(q.current===u||!g)return;const t=j.find(e=>e.id===u);t&&(q.current=t.id,g.currentTime=t.start)},[u,j,g]);const M=l(null),[At,Rt]=C(null);z(()=>{M.current=u??null},[u]),z(()=>{const t=M.current;if(!(!t||!c.some(e=>{var n;return((n=e.annotation)==null?void 0:n.id)===t}))&&(M.current=null,!!B)){if(!I){tt(true);return}et(D),Rt(D)}},[u,c,B,I,D,tt,et]);const Tt=i(()=>({menu:vt,placed:x,timed:j,hiddenPages:a,setPagesVisible:R,listedCount:dt,comments:gt,selected:u??null,select:K,activate:Z,release:b,quietlyOpened:At}),[vt,x,j,a,R,dt,gt,u,K,Z,b,At]);return kt(()=>F(Tt),[Tt,F]),kt(()=>()=>F(null),[F]),o&&p>0&&!B?zt(Ut,{renderer:o,placed:x,sceneVersion:p,active:_t??Ct??u,selected:u,onActivate:Z,onSelect:K,onFollow:Qt,media:I?g:void 0}):null}export{Et as AnnotationState};
@@ -0,0 +1,2 @@
1
+ import{D as ct,a as Z,e as z,c as y,s as Lt,m as kt,n as Ct,R as lt,o as Nt,u as a,r as V,t as $t,w as rt,B as At,b as dt,E as ut,T as M,d as tt,A as Tt,y as X,l as B,F as Et,G as Ot,v as Mt,k as ot,f as Bt}from"./shared-MTsMddHx.mjs";import{E as qt}from"./EntryBodies-Bfd2Z42z.mjs";import{u as yt,L as Pt}from"./ListEnd-CbwNlty-.mjs";import{a as Rt}from"./annotation-name-CYkZopdd.mjs";import{r as Vt,a as Ft}from"./link-GEdiEwlR.mjs";import{s as Ht}from"./show-link-BXm7SNIC.mjs";import{f as jt,r as Gt}from"./fetchManifest-BIzne1Pj.mjs";import{j as mt}from"./classnames-DukgfdpI.mjs";import{b as it,s as Kt}from"./bringIntoView-CQH5ZgMM.mjs";import{a as Y}from"./heading-Cjt0f-Eu.mjs";import{C as _t}from"./Cue-CbZaGwZh.mjs";import{E as zt}from"./EntryThumbnail-DQE8ajI9.mjs";import{H as ft}from"./HideToggle-DL911R1Z.mjs";import{u as ht,s as _}from"./readingLanguages-fs_HqvqQ.mjs";import{LanguageChoice as gt}from"./LanguageChoice-DT1UPiDn.mjs";import"./styles-CZV1nbBQ.mjs";function vt(t){const s=t.bodies.filter(n=>{var u;return!n.image&&((u=n.value)==null?void 0:u.trim())}).map(n=>n.language).filter(n=>!!n&&n!=="none");return[...new Set(s)]}function pt(t){const s=t.map(vt),n=[...new Set(s.flat())];return n.length<2?[]:s.some(o=>o.length&&n.some(c=>!o.includes(c)))?n:[]}function bt(t,s){if(!s)return true;const n=vt(t);return!n.length||n.includes(s)}const Dt=[],xn=ct(function({scope:s="all",renderEntry:n,headingLevel:u=3,as:o="div",className:c,...m},l){const{t:r,langOf:f}=Z(),{clover:d,language:S}=z("Annotations"),L=y(e=>Lt(e.manifest,e.addedSets)),$=y(e=>kt(e.manifest,e.canvasId)),T=y(e=>Ct(e.manifest,e.addedSets,e.hiddenSets,e.shownSets)),p=y(e=>e.annotationId),A=lt.useSyncExternalStore(d.highlight.subscribe,d.highlight.get,d.highlight.get),g=e=>{const b=$t(L,e),I=b&&rt(b.target.t),P=d.media.get();I&&P&&$.some(F=>F.id===b.canvasId)&&At(P,I.start),d.selectAnnotation(e)},k=y(e=>s==="all"?Nt(e.manifest):Dt),w=yt(k),C=e=>e.entries.filter(b=>$.some(I=>I.id===b.canvasId)),N=L.map(e=>({set:e,entries:C(e)})).filter(({entries:e})=>e.length),E=Y(u),x={text:r("annotationsShow"),lang:f("annotationsShow")};return s==="all"?a(Xt,{ref:l,as:o,className:c,rest:m,sets:L,shown:$.map(e=>e.id),headingLevel:u,language:S,showLabel:x,hiddenSets:T,selected:p,highlighted:A,renderEntry:n,onSelect:g,onHighlight:e=>d.highlight.emit(e),onVisible:(e,b)=>e.forEach(I=>d.setSetVisible(I,b)),end:w.more&&a(Pt,{onReached:w.reachNext})}):N.length?a(o,{ref:l,className:mt("clover-annotations",c),...m,children:N.map(({set:e,entries:b})=>a(Ut,{set:e,entries:b,canvases:$,Heading:E,headingLevel:u,language:S,title:V(e.label,S),showLabel:x,hidden:T.includes(e.id),selected:p,highlighted:A,renderEntry:n,onSelect:g,onHighlight:I=>d.highlight.emit(I),onVisible:I=>d.setSetVisible(e.id,I)},e.id))}):null});function Ut({set:t,entries:s,canvases:n,Heading:u,headingLevel:o,title:c,language:m,showLabel:l,hidden:r,selected:f,highlighted:d,renderEntry:S,onSelect:L,onHighlight:$,onVisible:T}){const p=dt(),A=c.text?o+1:o,g=M(()=>pt(s),[s]),[k,w]=tt(),C=ht(),N=C?_(g,C.chosen):_(g,m,k),E=s.filter(x=>bt(x,N));return a("section",{className:"clover-annotations-set","aria-labelledby":c.text?`${p}-title`:void 0,"data-set":t.id,children:[a("div",{className:"clover-annotations-set-header",children:[c.text&&a(u,{className:"clover-annotations-title",id:`${p}-title`,...B(c.lang),children:c.text}),N&&!C&&a(gt,{languages:g,chosen:N,onChange:w,nameKey:"annotationsLanguage",part:"clover-annotations"}),a(ft,{hidden:r,onChange:x=>T(!x),of:c.text?`${p}-title`:void 0})]}),a("ol",{className:"clover-annotations-list",children:E.map((x,e)=>a(xt,{entry:x,canvas:n.find(b=>b.id===x.canvasId),index:e,headingLevel:A,language:m,showLabel:l,selected:x.id===f,highlighted:x.id===d,renderEntry:S,onSelect:L,onHighlight:$},x.id))})]})}function Wt(t,s,n){const u=new Map(s.map((c,m)=>[c.id,m])),o=new Map;for(const c of t){const m=V(c.label,n),l=m.text;let r=o.get(l);r||(r={title:m,setIds:[],byCanvas:new Map},o.set(l,r)),r.setIds.push(c.id);for(const f of c.entries){const d=r.byCanvas.get(f.canvasId)??[];d.push(f),r.byCanvas.set(f.canvasId,d)}}return[...o.entries()].map(([c,m])=>({key:c,title:m.title,setIds:m.setIds,canvases:Jt([...m.byCanvas.entries()],u).map(([l,r])=>{var f;return{canvasId:l,label:V((f=s.find(d=>d.id===l))==null?void 0:f.label,n),entries:r}})}))}function Jt(t,s){return t.every(([n])=>s.has(n))?t.sort(([n],[u])=>s.get(n)-s.get(u)):t}function Qt(t,s){const{clover:n,language:u}=z("Annotations"),o=M(()=>{const l=new Set;for(const r of t)for(const f of r.canvases){if(s.has(f.canvasId))continue;const d=Et(f.entries[0].annotation);d&&l.add(d)}return[...l]},[t,s]),[c,m]=tt([]);return X(()=>{let l=true;return Promise.all(o.map(r=>jt(n,r))).then(r=>l&&m(r.filter(f=>!!f))),()=>{l=false}},[n,o]),M(()=>{const l=new Map;for(const r of c){const{canvases:f}=ut(r),d=V(r.label,u);for(const S of f){const L=V(S.label,u);l.set(S.id,{canvas:S,label:f.length>1&&L.text?[d,L]:[d]})}}return{named:o.length>0,of:l}},[c,o,u])}const Xt=ct(function({as:s,className:n,rest:u,sets:o,shown:c,headingLevel:m,language:l,showLabel:r,hiddenSets:f,selected:d,highlighted:S,renderEntry:L,onSelect:$,onHighlight:T,onVisible:p,end:A},g){const k=dt(),w=y(i=>ut(i.manifest).canvases),C=M(()=>Wt(o,w,l),[o,w,l]),N=M(()=>new Map(w.map(i=>[i.id,i])),[w]),E=Qt(C,N),[x,e]=tt({}),b=ht(),I=y(i=>{var h;return(h=i.manifest)==null?void 0:h.label}),P=M(()=>V(I,l),[I,l]),F=w.length>1||E.named,G=Tt(null),nt=()=>{const i=G.current;if(!i||!i.getClientRects().length)return true;const h=Kt(i)??i;return h.matches(":hover")||h.contains(document.activeElement)},St=c.join(`
2
+ `);return X(()=>{const i=G.current;if(!i||!F||nt())return;const h=c.map(D=>i.querySelector(`[data-canvas="${CSS.escape(D)}"]`)).find(Boolean);if(!h)return;const q=h.closest(".clover-annotations-set"),H=(q==null?void 0:q.querySelector("[data-canvas]"))===h;it(H&&q?q:h,"start")},[St]),X(()=>{const i=G.current;if(!i||!d||nt())return;const h=i.querySelector(`[data-entry="${CSS.escape(d)}"]`);h&&it(h,"nearest")},[d]),C.length?a(s,{ref:i=>{G.current=i,typeof g=="function"?g(i):g&&(g.current=i)},className:mt("clover-annotations",n),"data-scope":"all",...u,children:[C.map((i,h)=>{const q=Y(m),H=i.title.text?m+1:m,D=Y(H),wt=i.setIds.every(v=>f.includes(v)),U=pt(i.canvases.flatMap(v=>v.entries)),W=b?_(U,b.chosen):_(U,l,x[i.key]);return a("section",{className:"clover-annotations-set","aria-labelledby":i.title.text?`${k}-${h}`:void 0,children:[a("div",{className:"clover-annotations-set-header",children:[i.title.text&&a(q,{className:"clover-annotations-title",id:`${k}-${h}`,...B(i.title.lang),children:i.title.text}),W&&!b&&a(gt,{languages:U,chosen:W,onChange:v=>e(J=>({...J,[i.key]:v})),nameKey:"annotationsLanguage",part:"clover-annotations"}),a(ft,{hidden:wt,onChange:v=>p(i.setIds,!v),of:i.title.text?`${k}-${h}`:void 0})]}),i.canvases.map((v,J)=>{var at;const et=v.entries.filter(O=>bt(O,W));if(!et.length)return null;const j=E.of.get(v.canvasId),R=j?j.label:E.named&&P.text?w.length>1&&v.label.text?[P,v.label]:[P]:[v.label],Q=F&&!!((at=R[0])!=null&&at.text),It=F&&c.includes(v.canvasId),st=`${k}-${h}-${J}`;return a("section",{className:"clover-annotations-canvas","data-canvas":v.canvasId,"aria-labelledby":Q?st:void 0,"aria-current":It?"true":void 0,children:[Q&&a(D,{className:"clover-annotations-canvas-label",id:st,...B(R.length===1?R[0].lang:void 0),children:R.length===1?R[0].text:R.map((O,K)=>a(lt.Fragment,{children:[K>0&&", ",a("span",{...B(O.lang),children:O.text})]},K))}),a("ol",{className:"clover-annotations-list",children:et.map((O,K)=>a(xt,{entry:O,canvas:N.get(v.canvasId)??(j==null?void 0:j.canvas),index:K,headingLevel:Q?H+1:H,language:l,showLabel:r,selected:O.id===d,highlighted:O.id===S,renderEntry:L,onSelect:$,onHighlight:T},O.id))})]},v.canvasId)})]},i.key)}),A]}):null});function Yt(t,s){const n=t.target.rect?void 0:t.target.svg,u=Bt(Zt,!!n);return M(()=>{var m,l;const o=n?(m=u==null?void 0:u.readSvgShape(n))==null?void 0:m.box:void 0,c=t.target.rect??(o?{x:o.x,y:o.y,w:o.width,h:o.height}:void 0);return!c||!s||t.bodies.some(r=>r.image)?null:Gt(s,c,(l=t.layer)==null?void 0:l.image)},[t,s,n,u])}const Zt=()=>import("./svg-shape-DLY3g7oq.mjs");function xt({entry:t,canvas:s,index:n,headingLevel:u,language:o,showLabel:c,selected:m,highlighted:l,renderEntry:r,onSelect:f,onHighlight:d}){const{hostLanguage:S,t:L,langOf:$}=Z(),T=nn(t,o),p=T.text?T:{text:String(n+1)},A=rt(t.target.t),g=A?{text:L("annotationsShowTime"),lang:$("annotationsShowTime")}:c,k=!g.lang&&!Ot(p.lang,S),w=p.text?`${g.text}: ${p.text}`:g.text,{clover:C}=z("Annotations"),N=Yt(t,s);return a("li",{className:"clover-annotations-entry","data-entry":t.id,"data-selected":m,"data-highlighted":l,onMouseEnter:()=>d(t.id),onMouseLeave:()=>d(null),onFocus:()=>d(t.id),onBlur:()=>d(null),onClick:E=>{E.target.closest("a, button")||f(t.id)},children:[A&&a(_t,{start:A.start,className:"clover-annotations-time"}),a(zt,{className:"clover-annotations-thumbnail",source:N,request:C.request}),a("div",{className:"clover-annotations-body clover-cue-text",children:[r?r(t):a(qt,{bodies:t.bodies,language:o,headingLevel:u}),a(tn,{annotation:t.annotation})]}),a("button",{type:"button",className:"clover-annotations-show","aria-pressed":m,"aria-label":k?w:void 0,style:Mt,onClick:()=>f(t.id),children:!k&&a(ot,{children:[a("span",{...B(g.lang),children:[g.text,p.text&&":"]}),p.text&&a(ot,{children:[" ",a("span",{...B(p.lang),children:p.text})]})]})})]})}function tn({annotation:t}){const{clover:s}=z("Annotations"),{t:n,langOf:u}=Z(),o=M(()=>Vt(t)??Ft(t),[t]);if(!o)return null;const c=n("annotationsOpenLink"),m=u("annotationsOpenLink");return!o.canvasId&&!o.manifestId?a("a",{className:"clover-annotations-link",href:o.id,target:"_blank",rel:"noopener noreferrer",...B(m),children:c}):a("button",{type:"button",className:"clover-annotations-link",...B(m),onClick:l=>{var f;const r=l.currentTarget.closest(".clover-root");Ht(s,o)&&((f=r==null?void 0:r.querySelector(".clover-canvas-viewport"))==null||f.focus({preventScroll:true}))},children:c})}function nn(t,s){const{text:n="",lang:u}=Rt(t.bodies,s);return{text:n.slice(0,120),...u?{lang:u}:{}}}export{xn as Annotations};
@@ -0,0 +1 @@
1
+ var Q=Object.defineProperty;var tt=(t,o,e)=>o in t?Q(t,o,{enumerable:true,configurable:true,writable:true,value:e}):t[o]=e;var B=(t,o,e)=>tt(t,typeof o!="symbol"?o+"":o,e);import{a5 as q,aB as ot,a6 as D,w as W,T as et,A as L,y as j,q as N,_ as nt,$ as st,u as I,k as it,aC as rt,r as at,d as Z,l as ct,R as lt}from"./shared-MTsMddHx.mjs";import{a as ht}from"./annotation-name-CYkZopdd.mjs";import{r as ut}from"./link-GEdiEwlR.mjs";import{T as dt}from"./Tip-BbexILXs.mjs";import{b as pt}from"./Camera-Cp5ma-6C.mjs";import"./styles-CZV1nbBQ.mjs";const K=t=>Array.isArray(t)?t.flatMap(K):ot.includes(t==null?void 0:t.type)?K(t.items??[]):t==null?[]:[t],ft=t=>K(t).map(o=>q(o)),gt=(t,o)=>Math.abs(t.end-o.start)<.001,H=(t,o,e)=>t+(o-t)*e;function vt(t){const o=[...t].sort((e,n)=>e.start-n.start);return o.map((e,n)=>{const i=o[n+1];return e.end===1/0&&i?{...e,end:i.start}:e})}function U(t,o){let e=0,n=t.length-1,i=-1;for(;e<=n;){const d=e+n>>1;t[d].start<=o?(i=d,e=d+1):n=d-1}const r=t[i];if(!r||o>=r.end)return null;const c=t[i+1];if(!c||!gt(r,c)||!Number.isFinite(r.end))return r.world;const a=(o-r.start)/(r.end-r.start||1),[h,l]=[r.world,c.world];return{x:H(h.x,l.x,a),y:H(h.y,l.y,a),width:H(h.width,l.width,a),height:H(h.height,l.height,a)}}const G=t=>t.overlays??(t.overlays=new wt(t.host));class wt{constructor(o){B(this,"container");B(this,"overlays",new Map);B(this,"view");const e=document.createElement("div");e.className="clover-canvas-overlays",Object.assign(e.style,{position:"absolute",inset:"0",overflow:"clip",pointerEvents:"none"}),o.appendChild(e),this.container=e}add(o,e){return this.overlays.set(o,e),o.classList.add("clover-canvas-overlay"),Object.assign(o.style,{position:"absolute",top:"0",left:"0",pointerEvents:"auto"}),o.parentElement!==this.container&&this.container.appendChild(o),()=>{this.overlays.delete(o)}}move(o,e){this.overlays.has(o)&&(this.overlays.set(o,e),this.view&&this.position(...this.view,o))}position(o,e,n){this.view=[o,e];const i=o.rotation*180/Math.PI,r=Math.cos(o.rotation)>.9999,c=r?window.devicePixelRatio||1:0,a=h=>c?Math.round(h*c)/c:h;for(const[h,l]of this.overlays){if(n&&h!==n)continue;const d=pt(o,e,{x:l.x+l.width/2,y:l.y+l.height/2}),f=a(d.x-l.width*o.zoom/2),g=a(d.y-l.height*o.zoom/2),p=a(l.width*o.zoom),v=a(l.height*o.zoom);h.style.width=`${p}px`,h.style.height=`${v}px`,h.style.transform=`translate(${f}px, ${g}px)`+(i?` rotate(${i}deg)`:"");const{style:w,dataset:m}=h;if(r){w.setProperty("--clover-overlay-x",`${d.x}px`),w.setProperty("--clover-overlay-top",`${g}px`),w.setProperty("--clover-overlay-bottom",`${g+v}px`);const $=d.y>e.height/2?"above":"below";m.overlayRoom!==$&&(m.overlayRoom=$)}else w.removeProperty("--clover-overlay-x"),w.removeProperty("--clover-overlay-top"),w.removeProperty("--clover-overlay-bottom"),delete m.overlayRoom}}dispose(){this.overlays.clear(),this.container.remove()}}const mt=t=>"start"in t,St=t=>{var o,e;return mt(t)?t.start:(e=(o=t.track)==null?void 0:o[0])==null?void 0:e.start},xt=(t,o)=>!t.track||U(t.track,o)!==null;function $t(t,o){return xt(t,o.currentTime)?false:(o.currentTime=t.track[0].start,true)}function yt(t,o,e){var r,c,a;const n=ft(t==null?void 0:t.target);if(!((r=n[0])!=null&&r.rect)||!((c=n[0])!=null&&c.t))return null;const i=[];for(const h of n){const l=W((a=h.t)==null?void 0:a.replace(/^npt:/,""));if(!h.rect||!l)continue;const{x:d,y:f,w:g,h:p}=h.rect,v=o({x:d,y:f,width:g,height:p},h.id,e);v&&i.push({start:l.start,end:l.end??1/0,world:v})}return i.length?vt(i):null}function X(t,o){const{text:e,lang:n}=at(t,o);return e?{page:{text:e,...n?{lang:n}:{}}}:{}}function Nt(t,o){var n;const e=[];for(const{annotation:i,pageLabel:r,pageId:c}of t){const a=q([i==null?void 0:i.target].flat()[0]),h=W((n=a==null?void 0:a.t)==null?void 0:n.replace(/^npt:/,""));if(!h||a.rect||a.point||a.svg)continue;const{text:l,lang:d}=Y(i,o);e.push({id:i.id,...l?{label:l}:{},...d?{lang:d}:{},...h,...X(r,o),...c?{pageId:c}:{}})}return e}const S=40;function qt(t,o,e=null,n){var r;const i=[];for(const{annotation:c,targetIndex:a,pageLabel:h,pageId:l,place:d}of t){const f=q(c==null?void 0:c.target);if(!f)continue;let g=null,p;const v=yt(c,o,a);if(v){const{x:s,y:u,w:k,h:R}=f.rect;g={x:s,y:u,width:k,height:R}}else if(f.rect){const{x:s,y:u,w:k,h:R}=f.rect;g={x:s,y:u,width:k,height:R}}else if(f.point){const{x:s,y:u}=f.point;g={x:s-S/2,y:u-S/2,width:S,height:S},p={kind:"point"}}else if(f.svg&&e){const s=e(f.svg);s&&(g=s.box,p={kind:"svg",svg:s})}if(!g)continue;const w=v?v[0].world:o(g,f.id,a);if(!w)continue;const{text:m,lang:$}=Y(c,n),P=ut(c),T=(r=D(c).find(s=>(s==null?void 0:s.type)==="Image"&&/^https?:\/\//i.test(s.id??"")))==null?void 0:r.id;i.push({id:c.id,label:m,...$?{lang:$}:{},world:w,...p?{shape:p}:{},...v?{track:v}:{},...P?{link:P}:{},...T?{image:T}:{},...X(h,n),...l?{pageId:l}:{},...d?{place:d}:{}})}return i}const V=({world:t})=>t.width*t.height,kt=(t,o)=>t.x>=o.x&&t.y>=o.y&&t.x+t.width<=o.x+o.width&&t.y+t.height<=o.y+o.height,y=t=>String(Math.round(t*1e3)/1e3||0);function bt(t,o){var g,p;const e=t.world,n=o.world;if(((g=o.shape)==null?void 0:g.kind)==="point"||n.x>=e.x+e.width||n.x+n.width<=e.x||n.y>=e.y+e.height||n.y+n.height<=e.y)return null;const[i,r]=[e.width,e.height],[c,a]=[n.x-e.x,n.y-e.y],h=`${y(-i/10)} ${y(-r/10)} ${y(i*1.2)} ${y(r*1.2)}`,l=`M${y(-i/10)} ${y(-r/10)}h${y(i*1.2)}v${y(r*1.2)}h${y(-i*1.2)}Z`;let d;if(((p=o.shape)==null?void 0:p.kind)==="svg"){const{box:v,shapes:w}=o.shape.svg,m=w.map(({tag:$,attributes:P})=>`<${$} ${Object.entries(P).map(([T,s])=>`${T}="${s}"`).join(" ")}/>`).join("");d=`<mask id="m"><path fill="#fff" d="${l}"/><svg x="${y(c)}" y="${y(a)}" width="${y(n.width)}" height="${y(n.height)}" viewBox="${v.x} ${v.y} ${Math.max(v.width,1)} ${Math.max(v.height,1)}" preserveAspectRatio="none" overflow="visible"><g fill="#000">${m}</g></svg></mask><path d="${l}" mask="url(#m)"/>`}else d=`<path fill-rule="evenodd" d="${l}M${y(c)} ${y(a)}h${y(n.width)}v${y(n.height)}h${y(-n.width)}Z"/>`;const f=`<svg xmlns="http://www.w3.org/2000/svg" viewBox="${h}" preserveAspectRatio="none">${d}</svg>`;return`url("data:image/svg+xml,${encodeURIComponent(f)}")`}const Kt=({renderer:t,placed:o,sceneVersion:e,active:n,selected:i,onActivate:r,onSelect:c,onFollow:a,media:h})=>{const l=et(()=>{const s=new Map;return[...o].sort((u,k)=>V(k)-V(u)).forEach((u,k)=>s.set(u,k)),s},[o]),d=o.find(s=>s.id===n),f=L(null);j(()=>{const s=o.find(u=>u.id===i&&u.track);i||(f.current=null),!(!s||!h||f.current===i)&&(f.current=i,$t(s,h))},[o,i,h]);const g=s=>{const u=l.get(s)??0;return d?s===d?o.length:u>(l.get(d)??0)&&!s.track&&!d.track&&kt(s.world,d.world)?o.length+1+u:u:u},p=L(new Map),v=L(new Map),w=L(new WeakMap),m=L({placed:o,current:d,depthOf:g});m.current={placed:o,current:d,depthOf:g};const $=N(s=>{const{placed:u,current:k,depthOf:R}=m.current,O=M=>v.current.get(M.id),x=k&&O(k)!==null?k:void 0,b=M=>{const A=p.current.get(M.id);if(!A)return;const F=O(M),C=x&&M!==x&&F!==null&&R(M)<u.length?bt({...M,world:F??M.world},{...x,world:O(x)??x.world}):null;(w.current.get(A)??"")!==(C??"")&&(w.current.set(A,C??""),C?A.style.setProperty("--clover-annotation-mask",C):A.style.removeProperty("--clover-annotation-mask"))};s&&s!==k?b(s):u.forEach(b)},[]);nt(()=>$());const P=N((s,u)=>{u?p.current.set(s,u):p.current.delete(s)},[]),T=N((s,u)=>{v.current.set(s.id,u),$(s)},[$]);return st(I(it,{children:o.map((s,u)=>I(Tt,{entry:s,name:s.label??String(u+1),lang:s.label?s.lang:void 0,depth:g(s),register:P,onMove:T,renderer:t,active:n===s.id,selected:i===s.id,onActivate:r,onSelect:c,onFollow:a,media:h},`${s.id}|${e}`))}),G(t).container)};let Mt;const _=()=>Mt??(Mt=import("./panClearOfControls-ac9uf-Qs.mjs")),Tt=({entry:t,name:o,lang:e,depth:n,register:i,onMove:r,renderer:c,active:a,selected:h,onActivate:l,onSelect:d,onFollow:f,media:g})=>{var A,F,C;const[p,v]=Z(null),{id:w,place:m}=t,$=m&&`${m.index} / ${m.total}`,P=N(E=>{v(E),i(w,E)},[w,i]),{x:T,y:s,width:u,height:k}=t.world;j(()=>{if(!p)return;const E=G(c).add(p,{x:T,y:s,width:u,height:k});return c.invalidate(),E},[p,c,T,s,u,k]);const R=Et(p,t.track,c,g,()=>l(null),E=>r(t,E)),{link:O}=t,x=O&&!O.canvasId&&!O.manifestId?O.id:void 0,b=O&&!x&&f?()=>f(t):void 0;return I(x?"a":"button",{ref:P,...x?{href:x,target:"_blank",rel:"noopener noreferrer"}:{type:"button"},id:t.id,className:"clover-canvas-annotation",hidden:!R,"data-active":a?"true":"false","data-shape":((A=t.shape)==null?void 0:A.kind)??"rect","data-track":t.track?"":void 0,"data-link":x||b?"true":void 0,"aria-label":$?`${o} ${$}`:o,"aria-current":h?"true":void 0,...ct(e),style:{"--clover-annotation-depth":n},onMouseEnter:()=>l(t.id),onMouseLeave:()=>l(null),onFocus:()=>{l(t.id),_()},onKeyUp:E=>{if(E.key!=="Tab")return;const z=E.currentTarget;_().then(({panClearOfControls:J})=>{document.activeElement===z&&J(c,z)})},onBlur:()=>l(null),onKeyDown:At,onClick:E=>{E.stopPropagation(),!x&&(b?b():d(t))},children:[((F=t.shape)==null?void 0:F.kind)==="point"&&I("span",{className:"clover-canvas-annotation-point","aria-hidden":"true"}),((C=t.shape)==null?void 0:C.kind)==="svg"&&I(Ot,{svg:t.shape.svg}),I(dt,{label:o,scrolls:true,image:t.image,after:$})]})};function Et(t,o,e,n,i,r){const c=!!o&&n!==void 0,[a,h]=Z(()=>!c||(n?U(o,n.currentTime)!==null:false)),l=L(i);l.current=i;const d=L(r);return d.current=r,j(()=>{if(!o||n===void 0){h(true);return}if(!n){h(false);return}let f;const g=x=>{var A,F,C;const b=U(o,x);b&&t&&((A=e.overlays)==null||A.move(t,b)),d.current(b);const M=b!==null;if(M!==f){if(f=M,!M&&t){const E=t.matches(":hover");t.contains(document.activeElement)?(C=(F=e.overlays)==null?void 0:F.container.parentElement)==null||C.focus({preventScroll:true}):E&&l.current()}h(M)}},p=n,v=()=>typeof p.requestVideoFrameCallback=="function"&&p.videoWidth>0;let w=0,m=0;const $=(x,{mediaTime:b})=>{g(b),m=p.requestVideoFrameCallback($)},P=()=>{g(n.currentTime),w=requestAnimationFrame(P)},T=()=>{cancelAnimationFrame(w),m&&p.cancelVideoFrameCallback(m),w=m=0},s=()=>{T(),v()?m=p.requestVideoFrameCallback($):w=requestAnimationFrame(P)},u=()=>g(n.currentTime),k=()=>n.paused&&u(),R=()=>{T(),u()},O=[["play",s],["pause",R],["ended",R],["seeking",u],["seeked",u],["loadeddata",u],["timeupdate",k]];return O.forEach(([x,b])=>n.addEventListener(x,b)),u(),n.paused||s(),()=>{T(),O.forEach(([x,b])=>n.removeEventListener(x,b))}},[t,o,n,e]),a}const Ot=({svg:t})=>{const{x:o,y:e,width:n,height:i}=t.box,r=t.shapes.map(({tag:c,attributes:a},h)=>lt.createElement(c,{key:h,...a,vectorEffect:"non-scaling-stroke"}));return I("svg",{className:"clover-canvas-annotation-shape",viewBox:`${o} ${e} ${Math.max(n,1)} ${Math.max(i,1)}`,preserveAspectRatio:"none","aria-hidden":"true",focusable:"false",children:[I("g",{children:r}),I("g",{children:r}),I("g",{children:r})]})};function Y(t,o){return ht(rt(t),o)}const Pt={ArrowDown:()=>32,ArrowUp:()=>-32,PageDown:t=>t.clientHeight-32,PageUp:t=>32-t.clientHeight,End:t=>t.scrollHeight,Home:t=>-t.scrollHeight};function At(t){const o=t.currentTarget.querySelector(":scope > .clover-tip"),e=Pt[t.key];if(!o||!e||t.altKey||t.ctrlKey||t.metaKey)return false;const n=e(o);return(n>0?o.scrollHeight-o.clientHeight-o.scrollTop:o.scrollTop)<1?false:(t.preventDefault(),o.scrollBy({top:n}),true)}function Ut(t,o){const e=new Map;for(const{annotation:n,targetIndex:i}of t??[]){const r=q([n==null?void 0:n.target].flat()[0]);if(r.rect||r.point||r.svg||r.t||!D(n).some(a=>typeof(a==null?void 0:a.value)=="string"||(a==null?void 0:a.type)==="Image"))continue;const c=(o==null?void 0:o.find(a=>a.id===r.id))??(r.id||o==null?void 0:o[i]);c&&e.set(c.id,[...e.get(c.id)??[],n])}return e}export{Kt as A,$t as g,qt as p,St as s,Nt as t,Ut as w};
@@ -0,0 +1 @@
1
+ import{e as b,T as g,p as h,j as S,c as k,u as e,P as u,z as p}from"./shared-MTsMddHx.mjs";import B from"./Connected-BSRM9FJY.mjs";import{r as T}from"./rendererSurface-C0aKlE0v.mjs";import{j}from"./classnames-DukgfdpI.mjs";import{a as L}from"./hooks-x7rO95CS.mjs";import{L as c}from"./Loading-zw74TdAz.mjs";const R=p(()=>import("./Connected-BnpxYeJN.mjs")),w=p(()=>import("./Connected-B2d6EoFl.mjs"));function A({className:v,style:f,renderers:y,children:r,...s}){var d;const C=b("Body"),o=L(),l=g(()=>h(o),[o]),t=S(y??C.renderers,{canvases:o,bodies:l}),a=t==null?void 0:t.component,i=((d=o.find(({type:n})=>n==="Scene"||n==="Timeline"))==null?void 0:d.type)??"Canvas",m=k(n=>n.status==="loading");return e("div",{"aria-busy":m,className:j("clover-body",v),"data-renderer":a?"custom":i.toLowerCase(),style:{position:"relative",height:"var(--clover-body-height, 60vh)",...f},children:[a?e(a,{canvases:o,bodies:l,children:r}):i==="Scene"?e(u,{fallback:e(c,{overlay:true}),children:e(w,{...s,children:r})}):i==="Timeline"?e(u,{fallback:e(c,{overlay:true}),children:e(R,{...s,children:r})}):e(B,{...s,surface:T,children:r}),m&&e(c,{overlay:true})]})}export{A as B};
@@ -0,0 +1 @@
1
+ import{a as o,u as r,l}from"./shared-MTsMddHx.mjs";import{j as n}from"./classnames-DukgfdpI.mjs";function c({error:a,className:s}){const{t,langOf:e}=o();return r("div",{className:n("clover-status",s),"data-status":"error",role:"alert",children:[r("p",{...l(e("statusError")),children:t("statusError")}),r("p",{className:"clover-status-detail",lang:"en",children:a.message})]})}export{c as B};
@@ -0,0 +1 @@
1
+ var Q=Object.defineProperty;var ee=(e,r,t)=>r in e?Q(e,r,{enumerable:true,configurable:true,writable:true,value:t}):e[r]=t;var q=(e,r,t)=>ee(e,typeof r!="symbol"?r+"":r,t);import{a as O,A as te,d as w,a8 as ne,y as F,u as i,r as re,l as A,P as oe,z as se,k as X,_ as ie,C as ae,R as ce}from"./shared-MTsMddHx.mjs";import{C as le}from"./glyphs-JYl2STEr.mjs";import{B as $}from"./Button-DLFYqtz9.mjs";import"./styles-CZV1nbBQ.mjs";import{T as ue}from"./Tip-BbexILXs.mjs";const de=se(()=>import("./CaptionDetails-DSziiuQV.mjs"));function De(e){var r;return!!e.summary||!!((r=e.metadata)!=null&&r.length)}const fe=(e,r)=>`${e}-label-${r}`,We=({id:e,canvases:r,comments:t,open:o,onClose:s,language:a})=>{const{t:u,langOf:c}=O(),l=te(null),[d,v]=w(o);return o&&!d&&v(true),ne(o,()=>s(false)),F(()=>{var p;o&&((p=l.current)==null||p.focus())},[o]),i("figcaption",{className:"clover-canvas-caption","data-open":o,"data-testid":"clover-canvas-caption",id:e,onKeyDown:p=>{p.key==="Escape"&&(p.preventDefault(),p.stopPropagation(),s(true))},ref:l,tabIndex:-1,children:[i($,{className:"clover-canvas-caption-close",id:`close-${e}`,label:u("commonClose"),lang:c("commonClose"),onClick:()=>s(true),children:i(le,{})}),r.map((p,E)=>{const f=re(p.label,a);return i("section",{className:"clover-canvas-caption-canvas",children:[f.text&&i("p",{className:"clover-canvas-caption-label",id:fe(e,E),...A(f.lang),children:f.text}),d&&i(oe,{fallback:null,children:i(de,{summary:p.summary,metadata:p.metadata,comments:t==null?void 0:t.get(p.id),language:a})})]},p.id)})]})},_e=()=>i("path",{strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"45",d:"M256 112v288M400 256H112"}),Re=()=>i("path",{strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"45",d:"M400 256H112"}),Ye=()=>i("path",{fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"32",d:"M432 320v112H320M421.8 421.77L304 304M80 192V80h112M90.2 90.23L208 208M320 80h112v112M421.77 90.2L304 208M192 432H80V320M90.23 421.8L208 304"}),Ve=()=>i("path",{fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"32",d:"M304 416v-112h112M405.77 405.77L304 304M208 96v112H96M106.23 106.23L208 208M416 208H304V96M405.77 106.23L304 208M96 304h112v112M106.23 405.77L208 304"}),Ue=()=>i("path",{d:"M448 440a16 16 0 01-12.61-6.15c-22.86-29.27-44.07-51.86-73.32-67C335 352.88 301 345.59 256 344.23V424a16 16 0 01-27 11.57l-176-168a16 16 0 010-23.14l176-168A16 16 0 01256 88v80.36c74.14 3.41 129.38 30.91 164.35 81.87C449.32 292.44 464 350.9 464 424a16 16 0 01-16 16z"}),je=()=>i(X,{children:[i("path",{fill:"none",strokeLinecap:"round",strokeMiterlimit:"10",strokeWidth:"45",d:"M400 148l-21.12-24.57A191.43 191.43 0 00240 64C134 64 48 150 48 256s86 192 192 192a192.09 192.09 0 00181.07-128"}),i("path",{d:"M464 97.42V208a16 16 0 01-16 16H337.42c-14.26 0-21.4-17.23-11.32-27.31L436.69 86.1C446.77 76 464 83.16 464 97.42z"})]}),qe=()=>i(X,{children:[i("path",{fill:"none",strokeLinecap:"round",strokeWidth:"64",d:"M112 144h0M112 256h0M112 368h0"}),i("path",{fill:"none",strokeLinecap:"round",strokeWidth:"40",d:"M208 144h208M208 256h208M208 368h208"})]}),pe=({children:e,label:r})=>i("svg",{xmlns:"http://www.w3.org/2000/svg",width:"16",height:"16",viewBox:"0 0 512 512",fill:"currentColor",stroke:"currentColor",focusable:"false","aria-hidden":"true",role:"presentation","data-testid":"clover-canvas-button-svg","data-label":r,children:e}),he=112,ve=128;function me(e){ie(()=>{const r=e==null?void 0:e.closest(".clover-canvas");if(!e||!r)return;const t=(a=false)=>{let u=e.offsetWidth,c=0;for(const f of a?[]:Array.from(e.children))!(f instanceof HTMLElement)||!f.offsetParent||(u=Math.min(u,f.offsetLeft),c=Math.max(c,f.offsetTop+f.offsetHeight));const l={width:e.offsetWidth-u,height:c};for(const[f,L]of Object.entries(l)){const h=`--clover-canvas-controls-${f}`;c?r.style.setProperty(h,`${L}px`):r.style.removeProperty(h)}const d=e.offsetTop,v=r.querySelector(":scope > .clover-canvas-media > .clover-canvas-transport"),p=r.clientHeight-2*d-l.height-((v==null?void 0:v.offsetHeight)??0),E=e.offsetLeft+u-d;c&&p<he&&E>=ve?r.dataset.popups="beside":delete r.dataset.popups};t();const o=new ResizeObserver(()=>t());o.observe(e),o.observe(r);const s=new MutationObserver(()=>t());return s.observe(e,{childList:true}),s.observe(r,{childList:true}),()=>{o.disconnect(),s.disconnect(),t(true)}},[e])}const H=()=>{if(typeof document>"u")return null;const e=document;return e.fullscreenElement??e.webkitFullscreenElement??null},Z=()=>{if(typeof document>"u")return false;const e=document;return!!(e.fullscreenEnabled??e.webkitFullscreenEnabled)},K=e=>{const r=e==null?void 0:e.closest(".clover-root"),t=e==null?void 0:e.closest("dialog");return r&&!(t&&r.contains(t))?r:(e==null?void 0:e.closest(".clover-canvas"))??null},Ee=(e,r)=>{if(typeof e.webkitEnterFullscreen!="function")return;const t=r.closest(".clover-canvas"),o=!e.isConnected&&!!t;if(o&&t){const a=e.getAttribute("style");e.style.cssText="position:absolute;inset:0;z-index:-1;width:100%;height:100%;object-fit:contain;pointer-events:none",t.prepend(e),e.addEventListener("webkitendfullscreen",()=>{e.remove(),a===null?e.removeAttribute("style"):e.setAttribute("style",a)},{once:true})}const s=()=>{var a;try{(a=e.webkitEnterFullscreen)==null||a.call(e)}catch{}};o?requestAnimationFrame(s):s()},Le=async(e,r)=>{var o,s,a,u;const t=K(e);if(t)try{if(H()){const l=document;await(((o=l.exitFullscreen)==null?void 0:o.call(l))??((s=l.webkitExitFullscreen)==null?void 0:s.call(l)));return}if(!Z()){r&&e&&Ee(r,e);return}const c=t;await(((a=c.requestFullscreen)==null?void 0:a.call(c))??((u=c.webkitRequestFullscreen)==null?void 0:u.call(c)))}catch{}};function ge(e){const[r,t]=w(false);return F(()=>{if(!e)return;const o=()=>{var s;return t(!!((s=H())!=null&&s.contains(e)))};return o(),document.addEventListener("fullscreenchange",o),document.addEventListener("webkitfullscreenchange",o),()=>{document.removeEventListener("fullscreenchange",o),document.removeEventListener("webkitfullscreenchange",o)}},[e]),r}function be({key:e,id:r,label:t,glyph:o,onClick:s,expanded:a,controls:u,shortcut:c,lang:l},d){const v=d==null?void 0:d[e];return v?i(v,{buttonProps:{id:r,type:"button","aria-label":t,...l&&{lang:l},...c&&{"aria-keyshortcuts":c.keys},onClick:s,...a!==void 0&&{"aria-expanded":a,"aria-controls":u}},icon:i(pe,{label:t,children:o}),label:t,tip:i(ue,{label:t,shortcut:c})},e):i($,{id:r,label:t,onClick:s,expanded:a,controls:u,shortcut:c,lang:l,children:o},e)}const ze=({controls:e,controlButtons:r,hasPlaceholder:t=false,children:o})=>{const[s,a]=w(null),u=ge(s);me(s);const c=e(u),l=[...c.filter(d=>d.key!=="fullPage"),...c.filter(d=>d.key==="fullPage")];return i("div",{className:"clover-canvas-controls","data-fullscreen":u,"data-has-placeholder":t,"data-testid":"clover-canvas-controls",ref:a,children:[l.map(d=>be(d,r)),o]})},ye=()=>()=>{};function Xe(){return ae(ye,Z)}const $e=({hidden:e})=>{const{t:r,langOf:t}=O(),o=r("imageExitFullScreen");return i("button",{"aria-label":o,...A(t("imageExitFullScreen")),className:"clover-canvas-exit-full-screen",hidden:e,onClick:s=>void Le(s.currentTarget),type:"button",children:[i("svg",{viewBox:"0 0 512 512",width:"20",height:"20","aria-hidden":"true",focusable:"false",children:i("path",{fill:"none",stroke:"currentColor",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"45",d:"M244 400L100 256l144-144M120 256h292"})}),o]})},G=5,z=300,ke=G*4;function we(e,r=false){return e==="touch"||e==="pen"&&!r}function Me(e){return e.pointerType==="pen"&&e.buttons===0}function Ze(e,r,t){for(let o=e;o&&o!==r;o=o.parentElement)if((t>0?o.scrollHeight-o.clientHeight-o.scrollTop:o.scrollTop)>=1&&/auto|scroll/.test(getComputedStyle(o).overflowY))return true;return false}function Ce(e,r){var o;let t=e;for(;t&&t!==r;){if(t instanceof HTMLButtonElement||t instanceof HTMLAnchorElement||t instanceof HTMLInputElement||t instanceof HTMLSelectElement||((o=t.dataset)==null?void 0:o.cloverCanvasInteractive)!==void 0)return true;t=t.parentElement}return false}const Te=2e3,Fe=1e3,xe=1e3,Se=[":scope > .clover-canvas-controls > *",":scope > .clover-canvas-navigator",":scope > .clover-canvas-media > .clover-canvas-transport > *"].join(", ");function Ke(e,r=Te,t){const[o,s]=w(false);return F(()=>{if(!e)return;const a=e.ownerDocument;let u,c=false,l=false,d=false,v=false,p=-1/0,E=null,f=false,L,h=null,m=null;const M=n=>{c=n,s(n)},B=()=>{d||M(false)},g=()=>{u&&clearTimeout(u),u=void 0},N=()=>{m&&clearTimeout(m.timer),m=null},b=n=>we(n.pointerType,v),C=n=>{l=n.type==="keydown",!l&&(M(true),g(),Number.isFinite(r)&&(u=setTimeout(B,r)))},D=()=>{M(true),g(),u=setTimeout(B,Fe)},W=n=>{N(),m={...n,timer:setTimeout(()=>{m=null,M(n.onPicture?!c:true)},z)}},_=n=>{if(Me(n)&&(v=true),!b(n))return C(n);(h==null?void 0:h.id)===n.pointerId&&Math.hypot(n.clientX-h.x,n.clientY-h.y)>G&&(h=null)},R=n=>{if(!b(n))return C(n);l=false,g(),h=n.isPrimary===false?null:{id:n.pointerId,x:n.clientX,y:n.clientY,target:n.target}},x=n=>{if(!b(n)||(h==null?void 0:h.id)!==n.pointerId)return;const{target:y}=h;if(h=null,n.type!=="pointerup"||Ce(y,e))return;const T=t==null?void 0:t.current,P=!!(T&&y instanceof Node&&T.contains(y));if(P&&(m!=null&&m.onPicture)&&Math.hypot(n.clientX-m.x,n.clientY-m.y)<ke){N();return}W({x:n.clientX,y:n.clientY,onPicture:P})},J=n=>{const y=t==null?void 0:t.current,T=n.target;return!y||!T||!y.contains(T)?false:Array.from(e.querySelectorAll(Se)).some(P=>{const k=P.getBoundingClientRect();return k.width>0&&k.height>0&&n.clientX>=k.left&&n.clientX<=k.right&&n.clientY>=k.top&&n.clientY<=k.bottom})},S=n=>{if(n.type==="pointerdown"){if(E!==null||(clearTimeout(L),f=false,!J(n)))return;E=n.pointerId,f=true,b(n)?(l=false,g()):C(n)}else if(n.pointerId!==E)return;n.stopPropagation(),n.preventDefault(),n.type==="pointercancel"?(E=null,f=false):n.type==="pointerup"&&(E=null,b(n)&&W({x:n.clientX,y:n.clientY,onPicture:false}),clearTimeout(L),L=setTimeout(()=>f=false,z))},Y=n=>{f&&(f=false,n.stopPropagation(),n.preventDefault())},I=n=>{p=Date.now(),n.type==="pointerdown"&&(d=false)},V=()=>{Date.now()-p<xe||(d=true,g(),M(true))},U=n=>{b(n)||c&&D()},j=n=>{e.contains(n.relatedTarget)||(d=false,(c||l)&&D())};a.addEventListener("pointerdown",I,true),a.addEventListener("pointerup",I,true);for(const n of["pointerdown","pointermove","pointerup"])e.addEventListener(n,S,true);return e.addEventListener("pointercancel",S,true),e.addEventListener("click",Y,true),e.addEventListener("pointermove",_),e.addEventListener("pointerdown",R),e.addEventListener("pointerup",x),e.addEventListener("pointercancel",x),e.addEventListener("pointerleave",U),e.addEventListener("focusin",V),e.addEventListener("focusout",j),e.addEventListener("keydown",C),()=>{g(),N(),clearTimeout(L),a.removeEventListener("pointerdown",I,true),a.removeEventListener("pointerup",I,true);for(const n of["pointerdown","pointermove","pointerup"])e.removeEventListener(n,S,true);e.removeEventListener("pointercancel",S,true),e.removeEventListener("click",Y,true),e.removeEventListener("pointermove",_),e.removeEventListener("pointerdown",R),e.removeEventListener("pointerup",x),e.removeEventListener("pointercancel",x),e.removeEventListener("pointerleave",U),e.removeEventListener("focusin",V),e.removeEventListener("focusout",j),e.removeEventListener("keydown",C)}},[e,r,t]),o}function Ge(e){const[r,t]=w(false);return F(()=>{if(!e)return;const o=()=>t(H()===e);return o(),document.addEventListener("fullscreenchange",o),document.addEventListener("webkitfullscreenchange",o),()=>{document.removeEventListener("fullscreenchange",o),document.removeEventListener("webkitfullscreenchange",o)}},[e]),r}function Je(e){const[r,t]=w(false);return F(()=>{if(!e)return;const o=()=>{const s=H();t(s===e||!!s&&K(e)===s&&(s==null?void 0:s.querySelector(".clover-canvas"))===e)};return o(),document.addEventListener("fullscreenchange",o),document.addEventListener("webkitfullscreenchange",o),()=>{document.removeEventListener("fullscreenchange",o),document.removeEventListener("webkitfullscreenchange",o)}},[e]),r}class Qe extends ce.Component{constructor(){super(...arguments);q(this,"state",{error:null})}static getDerivedStateFromError(t){return{error:t}}render(){const{error:t}=this.state;return t?i("div",{className:"clover-canvas-error",role:"alert",lang:"en",children:[i("p",{className:"clover-canvas-error-headline","data-testid":"headline",children:"Something went wrong"}),t.message&&i("span",{className:"clover-canvas-error-body",children:`Error message: ${t.message}`})]}):this.props.children}}const Ie={image:"bodyUnloadableImage",video:"bodyUnloadableVideo",audio:"bodyUnloadableAudio",model:"bodyUnloadableModel"};function et({kind:e,shown:r,room:t=false}){const{t:o,langOf:s}=O(),a=Ie[e];return i("div",{className:"clover-body-unloadable","data-room":t||void 0,role:"status",children:r&&i("p",{...A(s(a)),children:o(a)})})}function tt({text:e,lang:r}){return i("div",{className:"clover-body-note","aria-hidden":"true",children:i("p",{...A(r),children:e})})}export{et as B,ze as C,ke as D,Qe as E,je as R,G as T,_e as Z,Me as a,z as b,we as c,Re as d,Ve as e,Ye as f,Ue as g,qe as h,Ce as i,Ge as j,ge as k,Je as l,Ke as m,De as n,fe as o,$e as p,tt as q,We as r,Ze as s,Le as t,Xe as u,be as v};
@@ -0,0 +1 @@
1
+ import{u as t,l as d}from"./shared-MTsMddHx.mjs";import{j as u}from"./classnames-DukgfdpI.mjs";import{T as v}from"./Tip-BbexILXs.mjs";import"./styles-CZV1nbBQ.mjs";const y=({className:n,id:e,label:o,children:r,onClick:s,expanded:i,controls:p,shortcut:a,lang:l})=>{const c=e.split("-")[0].replace(/([A-Z])/g,"-$1").toLowerCase().replace(/^-/,"");return t("button",{id:e,className:u("clover-canvas-button",n),"data-testid":"clover-canvas-button","data-button":c,onClick:s,"aria-expanded":i,"aria-controls":p,"aria-label":o,"aria-keyshortcuts":a==null?void 0:a.keys,...d(l),type:"button",children:[t("svg",{xmlns:"http://www.w3.org/2000/svg","aria-hidden":"true","data-testid":"clover-canvas-button-svg",focusable:"false",width:"16",height:"16",viewBox:"0 0 512 512",children:r}),t(v,{label:o,shortcut:a})]})};export{y as B};
@@ -1 +1 @@
1
- import{e as f,f as l,d as i,c,r as a,t as h,s as u}from"./CanvasView-BI3YzNdK.mjs";function g(t,o){return c(h(o.width/2,o.height/2),a(t.rotation),u(t.zoom),h(-t.x,-t.y))}function m(t,o){return c(h(t.x,t.y),u(1/t.zoom),a(-t.rotation),h(-o.width/2,-o.height/2))}function M(t,o,n){return i(m(t,o),n)}function w(t,o,n){return i(g(t,o),n)}function C(t,o){return f(m(t,o),{x:0,y:0,width:o.width,height:o.height})}function N(t,o,n=0,r=0){const e=f(a(n),t),s=Math.max(1,o.width*(1-r*2)),y=Math.max(1,o.height*(1-r*2)),d=Math.min(s/Math.max(e.width,Number.EPSILON),y/Math.max(e.height,Number.EPSILON)),x=l(t);return{x:x.x,y:x.y,zoom:d,rotation:n}}function P(t,o,n,r,e){const s=i(c(u(1/n),a(-r)),{x:o.x-e.width/2,y:o.y-e.height/2});return{x:t.x-s.x,y:t.y-s.y}}function S(t,o){return t.x===o.x&&t.y===o.y&&t.zoom===o.zoom&&t.rotation===o.rotation}export{P as a,w as b,S as c,N as f,M as s,C as v,g as w};
1
+ import{d as f,g as l,b as i,c,r as a,t as h,s as u}from"./CanvasView-BWQ4SK2b.mjs";function g(t,o){return c(h(o.width/2,o.height/2),a(t.rotation),u(t.zoom),h(-t.x,-t.y))}function m(t,o){return c(h(t.x,t.y),u(1/t.zoom),a(-t.rotation),h(-o.width/2,-o.height/2))}function M(t,o,n){return i(m(t,o),n)}function w(t,o,n){return i(g(t,o),n)}function C(t,o){return f(m(t,o),{x:0,y:0,width:o.width,height:o.height})}function N(t,o,n=0,r=0){const e=f(a(n),t),s=Math.max(1,o.width*(1-r*2)),y=Math.max(1,o.height*(1-r*2)),d=Math.min(s/Math.max(e.width,Number.EPSILON),y/Math.max(e.height,Number.EPSILON)),x=l(t);return{x:x.x,y:x.y,zoom:d,rotation:n}}function P(t,o,n,r,e){const s=i(c(u(1/n),a(-r)),{x:o.x-e.width/2,y:o.y-e.height/2});return{x:t.x-s.x,y:t.y-s.y}}function S(t,o){return t.x===o.x&&t.y===o.y&&t.zoom===o.zoom&&t.rotation===o.rotation}export{P as a,w as b,S as c,N as f,M as s,C as v,g as w};
@@ -1 +1 @@
1
- var l=Object.defineProperty;var o=(r,t,s)=>t in r?l(r,t,{enumerable:true,configurable:true,writable:true,value:s}):r[t]=s;var i=(r,t,s)=>o(r,typeof t!="symbol"?t+"":t,s);import{h as d,b as g}from"./rendererSurface-DhIlOjGT.mjs";class c{constructor(t,s){i(this,"kind","canvas2d");i(this,"canvas");i(this,"ctx");i(this,"pixelRatio",1);i(this,"drawn",new Set);this.canvas=t,this.ctx=s}static create(t){let s=null;try{s=t.getContext("2d",{alpha:true})}catch{s=null}return!s||typeof s.drawImage!="function"?null:new c(t,s)}resize(t,s,a){this.pixelRatio=a;const e=Math.max(1,Math.round(t*a)),h=Math.max(1,Math.round(s*a));this.canvas.width!==e&&(this.canvas.width=e),this.canvas.height!==h&&(this.canvas.height=h)}begin(){const t=this.ctx;t.setTransform(1,0,0,1,0,0),t.globalAlpha=1,t.clearRect(0,0,this.canvas.width,this.canvas.height),t.imageSmoothingEnabled=true,t.imageSmoothingQuality="high"}draw(t){if(!d(t.source))return"skipped";const s=this.ctx,a=t.transform,e=this.pixelRatio,h=t.crop??{x:0,y:0,width:t.width,height:t.height},n=g(t,e);return s.setTransform(e*a.a,e*a.b,e*a.c,e*a.d,e*a.e,e*a.f),s.globalAlpha=t.opacity,s.drawImage(t.source,h.x,h.y,h.width,h.height,h.x,h.y,h.width+n.x,h.height+n.y),this.drawn.add(t.key),"drawn"}end(){this.ctx.setTransform(1,0,0,1,0,0),this.ctx.globalAlpha=1}has(t){return this.drawn.has(t)}release(t){this.drawn.delete(t)}dispose(){this.drawn.clear(),this.canvas.width=0,this.canvas.height=0}}export{c as Canvas2DBackend};
1
+ var l=Object.defineProperty;var o=(r,t,s)=>t in r?l(r,t,{enumerable:true,configurable:true,writable:true,value:s}):r[t]=s;var i=(r,t,s)=>o(r,typeof t!="symbol"?t+"":t,s);import{h as d,b as g}from"./rendererSurface-C0aKlE0v.mjs";class c{constructor(t,s){i(this,"kind","canvas2d");i(this,"canvas");i(this,"ctx");i(this,"pixelRatio",1);i(this,"drawn",new Set);this.canvas=t,this.ctx=s}static create(t){let s=null;try{s=t.getContext("2d",{alpha:true})}catch{s=null}return!s||typeof s.drawImage!="function"?null:new c(t,s)}resize(t,s,a){this.pixelRatio=a;const e=Math.max(1,Math.round(t*a)),h=Math.max(1,Math.round(s*a));this.canvas.width!==e&&(this.canvas.width=e),this.canvas.height!==h&&(this.canvas.height=h)}begin(){const t=this.ctx;t.setTransform(1,0,0,1,0,0),t.globalAlpha=1,t.clearRect(0,0,this.canvas.width,this.canvas.height),t.imageSmoothingEnabled=true,t.imageSmoothingQuality="high"}draw(t){if(!d(t.source))return"skipped";const s=this.ctx,a=t.transform,e=this.pixelRatio,h=t.crop??{x:0,y:0,width:t.width,height:t.height},n=g(t,e);return s.setTransform(e*a.a,e*a.b,e*a.c,e*a.d,e*a.e,e*a.f),s.globalAlpha=t.opacity,s.drawImage(t.source,h.x,h.y,h.width,h.height,h.x,h.y,h.width+n.x,h.height+n.y),this.drawn.add(t.key),"drawn"}end(){this.ctx.setTransform(1,0,0,1,0,0),this.ctx.globalAlpha=1}has(t){return this.drawn.has(t)}release(t){this.drawn.delete(t)}dispose(){this.drawn.clear(),this.canvas.width=0,this.canvas.height=0}}export{c as Canvas2DBackend};
@@ -0,0 +1,2 @@
1
+ import{a as on,d as y,q as ge,r as we,f as ht,u as i,k as $n,A as P,a1 as Tn,b as Ln,T as M,y as he,a2 as zn,R as Ut,_ as An,v as Kn,l as Yt,P as ke,z as Ue,a3 as Nn}from"./shared-MTsMddHx.mjs";import{u as Dn,C as Vn,Z as Zn,d as jn,t as qn,e as Hn,f as _n,R as Gt,g as Wn,h as Un,E as Yn,j as Gn,k as Jn,l as Xn,m as Qn,n as eo,o as to,p as no,B as oo,q as ao,r as so}from"./BodyUnloadable-DcTM7hHF.mjs";import{a as lo,P as io,I as ro}from"./glyphs-JYl2STEr.mjs";import{B as ft}from"./Button-DLFYqtz9.mjs";import{S as $,f as co}from"./Tip-BbexILXs.mjs";import{f as uo,s as fo,b as Jt,d as ho,p as go,e as Xt,g as mo,h as yo}from"./layout-De1MOSYe.mjs";import{u as po,a as vo,h as bo}from"./useNearViewport-BqXi9Gn4.mjs";import{L as xo}from"./Loading-zw74TdAz.mjs";import{j as Co}from"./classnames-DukgfdpI.mjs";import{u as Io}from"./useContainerName-CrOmY-km.mjs";import{b as ko}from"./imageService-0eTvQ-3h.mjs";import"./styles-CZV1nbBQ.mjs";const wo=()=>import("./AnnotationMenu-BCwwwfbb.mjs"),Oo=()=>import("./ChoiceMenu-DTuEEUeM.mjs"),Qt=2,Po=({renderer:e,instance:o,config:l,controlButtons:n,hasPlaceholder:r,choices:a=[],selections:m={},onSelect:h,annotations:D=[],hiddenPages:G,onPageVisibilityChange:b,selectedAnnotation:z=null,onAnnotationSelect:_,onAnnotationActivate:B,captionId:u,captionOpen:J=false,onCaptionToggle:A,placeId:X,placeOpen:v=false,onPlaceToggle:me,language:ye,children:Oe})=>{var K,le;const{t:k,langOf:S}=on(),[pe,Pe]=y(false),[Me,Be]=y(false),W=`annotations-${o}`,ve=`${W}-menu`,ae=k("informationPanelTabsAnnotations"),V=S("informationPanelTabsAnnotations"),Q=ge(w=>{var f;Be(false),B==null||B(null),w&&((f=document.getElementById(W))==null||f.focus())},[W,B]),be=l.annotations&&D.length>0&&_,Ye=l.information&&u&&A,Se=l.map&&X&&me,U=`choice-${o}`,C=a.length===1?we(a[0].label,ye):null,Ee=(C==null?void 0:C.text)||k("canvasChoice"),Re=C!=null&&C.text?C.lang:S("canvasChoice"),ee=`${U}-menu`,Fe=(K=ht(wo,!!be))==null?void 0:K.default,I=(le=ht(Oo,a.length>0&&!!h))==null?void 0:le.default,se=ge(w=>{var f;Pe(false),w&&((f=document.getElementById(U))==null||f.focus())},[U]),T=Dn();return i($n,{children:[i(Vn,{controls:w=>{const f=[],E=e;return l.zoom&&E&&f.push({key:"zoomIn",id:`zoomIn-${o}`,shortcut:$.zoomIn,label:k("imageZoomIn"),lang:S("imageZoomIn"),glyph:i(Zn,{}),onClick:()=>E.zoomBy(Qt)},{key:"zoomOut",id:`zoomOut-${o}`,shortcut:$.zoomOut,label:k("imageZoomOut"),lang:S("imageZoomOut"),glyph:i(jn,{}),onClick:()=>E.zoomBy(1/Qt)}),l.fullPage&&T&&f.push({key:"fullPage",id:`fullPage-${o}`,label:k(w?"imageExitFullScreen":"imageFullScreen"),lang:S(w?"imageExitFullScreen":"imageFullScreen"),glyph:w?i(Hn,{}):i(_n,{}),onClick:Z=>void qn(Z.currentTarget)}),l.rotation&&E&&f.push({key:"rotateRight",id:`rotateRight-${o}`,shortcut:$.rotateRight,label:k("imageRotateRight"),lang:S("imageRotateRight"),glyph:i(Gt,{}),onClick:()=>E.rotateBy(90)},{key:"rotateLeft",id:`rotateLeft-${o}`,shortcut:$.rotateLeft,label:k("imageRotateLeft"),lang:S("imageRotateLeft"),glyph:i(Gt,{}),onClick:()=>E.rotateBy(-90)}),l.reset&&E&&f.push({key:"reset",id:`reset-${o}`,shortcut:$.reset,label:k("imageResetZoom"),lang:S("imageResetZoom"),glyph:i(Wn,{}),onClick:()=>E.home()}),a.length&&f.push({key:"choice",id:U,label:Ee,lang:Re,glyph:i(Un,{}),onClick:()=>Pe(Z=>!Z),expanded:pe,controls:ee}),f},controlButtons:n,hasPlaceholder:r,children:[be&&i(ft,{id:W,label:ae,lang:V,onClick:()=>Be(w=>!w),expanded:Me,controls:ve,children:i(lo,{})}),Se&&i(ft,{id:`place-${o}`,label:k("mapLabel"),lang:S("mapLabel"),onClick:me,expanded:v,controls:X,children:i(io,{})}),Ye&&i(ft,{id:`information-${o}`,label:k("informationPanelTabsAbout"),lang:S("informationPanelTabsAbout"),onClick:A,expanded:J,controls:u,children:i(ro,{})}),Oe]}),Fe&&Me&&be&&i(Fe,{id:ve,triggerId:W,label:ae,labelLang:V,annotations:D,hiddenPages:G,onPageVisibilityChange:b,selected:z,onSelect:_,onActivate:w=>B==null?void 0:B(w),onClose:Q}),I&&pe&&a.length>0&&h&&i(I,{id:ee,triggerId:U,label:Ee,labelLang:Re,language:ye,choices:a,selections:m,onSelect:h,onClose:se})]})},Mo=Object.freeze({a:1,b:0,c:0,d:1,e:0,f:0});function oa(e,o){return{a:1,b:0,c:0,d:1,e,f:o}}function aa(e,o=e){return{a:e,b:0,c:0,d:o,e:0,f:0}}function sa(e){const o=Math.cos(e),l=Math.sin(e);return{a:o,b:l,c:-l,d:o,e:0,f:0}}function Bo(e,o){return{a:e.a*o.a+e.c*o.b,b:e.b*o.a+e.d*o.b,c:e.a*o.c+e.c*o.d,d:e.b*o.c+e.d*o.d,e:e.a*o.e+e.c*o.f+e.e,f:e.b*o.e+e.d*o.f+e.f}}function la(...e){return e.reduce((o,l)=>Bo(o,l),Mo)}function ia(e){const o=e.a*e.d-e.b*e.c;if(!o||!Number.isFinite(o))return null;const l=1/o;return{a:e.d*l,b:-e.b*l,c:-e.c*l,d:e.a*l,e:(e.c*e.f-e.d*e.e)*l,f:(e.b*e.e-e.a*e.f)*l}}function We(e,o){return{x:e.a*o.x+e.c*o.y+e.e,y:e.b*o.x+e.d*o.y+e.f}}function ra(e){return`matrix(${[e.a,e.b,e.c,e.d,e.e,e.f].map(So).join(",")})`}function ca(e,o,l,n=new Float32Array(9)){const r=2/o,a=-2/l;return n[0]=e.a*r,n[1]=e.b*a,n[2]=0,n[3]=e.c*r,n[4]=e.d*a,n[5]=0,n[6]=e.e*r-1,n[7]=e.f*a+1,n[8]=1,n}function So(e){const o=Math.round(e*1e6)/1e6;return Object.is(o,-0)?"0":String(o)}function ua(e){return{x:e.x+e.width/2,y:e.y+e.height/2}}function Eo(e){if(!e.length)return null;let o=1/0,l=1/0,n=-1/0,r=-1/0;for(const a of e)o=Math.min(o,a.x),l=Math.min(l,a.y),n=Math.max(n,a.x+a.width),r=Math.max(r,a.y+a.height);return{x:o,y:l,width:n-o,height:r-l}}function da(e,o){return e.x<o.x+o.width&&o.x<e.x+e.width&&e.y<o.y+o.height&&o.y<e.y+e.height}function fa(e,o){const l=[We(e,{x:o.x,y:o.y}),We(e,{x:o.x+o.width,y:o.y}),We(e,{x:o.x,y:o.y+o.height}),We(e,{x:o.x+o.width,y:o.y+o.height})],n=l.map(h=>h.x),r=l.map(h=>h.y),a=Math.min(...n),m=Math.min(...r);return{x:a,y:m,width:Math.max(...n)-a,height:Math.max(...r)-m}}function ha(e,o,l){return Math.min(Math.max(e,o),l)}const en=e=>!!(e&&"overlays"in e),Ro=Ue(()=>import("./MediaBody-d8ErTuwT.mjs")),Fo=()=>import("./AnnotationState-CavxnAAq.mjs"),$o=new Map,To={menu:[],placed:[],timed:[],hiddenPages:[],setPagesVisible:()=>{},listedCount:0,comments:$o,selected:null,select:()=>{},activate:()=>{},release:()=>false,quietlyOpened:null},Lo=Ue(()=>import("./FrameAnimation-IfR1czfc.mjs")),tn=Ue(()=>import("./PlaceBox-BtIbIotm.mjs")),zo=Ue(()=>import("./Placeholder-TIyj4ZjR.mjs")),nn={zoom:true,fullPage:true,rotation:true,reset:true,annotations:true,information:true,map:true},Ao={description:"canvasKeysImage",keys:["ArrowLeft ArrowRight ArrowUp ArrowDown",$.zoomIn.keys,$.zoomOut.keys,$.reset.keys,$.rotateRight.keys,$.rotateLeft.keys].join(" ")},Ko={description:"canvasKeysMedia",keys:[$.play.keys,"J L",$.mute.keys].join(" ")},No={description:"canvasKeysAnnotations",keys:"Escape"},ga=e=>{var l;return!!((l=e.canvases)!=null&&l.length)||an(e.body,e.src).length>0?i(Yn,{children:i(Do,{...e})}):null},Do=e=>{var Nt,Dt,Vt,Zt,jt,qt;const{surface:o,manifestId:l,canvases:n,viewingDirection:r,body:a,src:m,isTiledImage:h=false,label:D,partOf:G,language:b,highContrast:z,instanceId:_,className:B,options:u,navigator:J=false,controls:A=true,controlButtons:X,annotations:v,onReady:me,onViewportChange:ye,onMediaElement:Oe,onCaptionChange:k,caption:S,onEnded:pe,chapters:Pe,highlightedChapter:Me,onChapterHighlight:Be,placeholder:W=true,children:ve}=e,{t:ae}=on(),V=P(null),[Q,be]=y(null),Ye=Gn(Q),Se=Jn(Q),U=Xn(Q),C=Tn(be),Ee=po(z),Re=Qn(Q,u==null?void 0:u.hideDelay,V),ee=vo(Q),Fe=Ln(),[I]=y(()=>_??`clover-canvas-${Fe}`),se=P(null),[T,Ge]=y(null),K=en(T)?T:null,[le,w]=y(null),f=A===false?null:A===true?nn:{...nn,...A},[E,Z]=y("loading"),[gt,sn]=y(false),[mt,yt]=y(0),$e=P(me),Te=P(ye),pt=P(u);$e.current=me,Te.current=ye,pt.current=u;const te=zn(r),Le=M(()=>uo(n??[]),[n]),vt=M(()=>fo(Le),[Le]),[bt,ln]=y({}),ie=M(()=>({...vt,...bt}),[vt,bt]),xt=(t,s)=>ln(d=>({...d,[t]:s})),rn=M(()=>v==null?void 0:v.filter(t=>!t.layer||(ie[t.layer.key]??0)===t.layer.item),[v,ie]),L=(Nt=v==null?void 0:v.find(t=>t.layer&&t.annotation.id===e.selectedAnnotation))==null?void 0:Nt.layer;he(()=>{L&&(ie[L.key]??0)!==L.item&&xt(L.key,L.item)},[L==null?void 0:L.key,L==null?void 0:L.item,e.selectedAnnotation]);const Ct=!!(f!=null&&f.information),xe=!!(v!=null&&v.length),It=ht(Fo,xe),[cn,un]=y(null),O=xe&&cn||To,re=M(()=>{var d,q;const t=(d=v==null?void 0:v.find(N=>N.annotation.id===O.selected))==null?void 0:d.annotation,s=(Array.isArray(t==null?void 0:t.body)?t==null?void 0:t.body:[t==null?void 0:t.body]).find(N=>(N==null?void 0:N.type)==="Feature");return t&&s?{id:String(t.id),feature:s,name:((q=s.properties)==null?void 0:q.label)??t.label}:null},[v,O.selected]),Je=re?`${re.id}:${e.refind??0}`:null,[dn,fn]=y(null),hn=Je!==null&&dn!==Je,ze=M(()=>{var N,He;const t=(n??[]).map(F=>F.navPlace).filter(Boolean),s=t.length?t:e.navPlace?[e.navPlace]:[];if(!s.length)return null;const d=s.flatMap(F=>(F==null?void 0:F.type)==="FeatureCollection"?F.features??[]:(F==null?void 0:F.type)==="Feature"?[F]:[]);if(!d.length)return null;const q=d.length===1?(He=(N=d[0])==null?void 0:N.properties)==null?void 0:He.label:void 0;return{feature:{type:"FeatureCollection",features:d},name:q??e.label}},[n,e.navPlace,e.label]),kt=`place-box-${I}`,[wt,Ot]=y(false),[gn,mn]=y(false),Ae=P(O);Ae.current=O;const Ke=ge(()=>Ae.current.release(),[]),{comments:Xe,listedCount:Pt}=O,ce=M(()=>Ct?(n??[]).filter(t=>eo(t)||Xe.has(t.id)):[],[n,Ct,Xe]),Qe=`caption-${I}`,[yn,Mt]=y(false),et=yn&&ce.length>0,Bt=ge(t=>{var s;Mt(false),t&&((s=document.getElementById(`information-${I}`))==null||s.focus())},[I]),R=M(()=>(n??[]).find(t=>Jt(t).length)??null,[n]),pn=R?Jt(R):Zo,x=M(()=>n!=null&&n.length?ho(n,te,ie,{standIns:n.length>1}):null,[n,te,ie]),vn=M(()=>an(a,m,h),[a,m,h]),c=(x==null?void 0:x.media[0])??null,[Ce,bn]=y(null),Ne=P(Oe);Ne.current=Oe;const xn=ge(t=>{var s;bn(t),(s=Ne.current)==null||s.call(Ne,t)},[]),Y=x?x.images:vn,ne=!!c&&(n==null?void 0:n.length)===1,oe=ne&&(c==null?void 0:c.kind)==="audio",ue=(n==null?void 0:n.length)===1&&!c&&!R&&Y.length===0,De=!ne&&!ue&&((Dt=u==null?void 0:u.gestures)==null?void 0:Dt.navigable)!==false,j=n?`${l??""}
2
+ ${n.map(t=>t.id).join("|")}`:null,de=M(()=>{if(!n||!W)return[];const t=n.flatMap(s=>{const d=go(s),q=we(s.label,b);return d?[{...d,alt:q.text,lang:q.lang}]:[]});return te==="right-to-left"||te==="bottom-to-top"?t.reverse():t},[n,te,W,b]),[Cn,St]=y(false),[In,Et]=y(null),p=!oe&&de.length>0&&(c?In!==j:!Cn),Rt=(t,{annotations:s=false,fullPage:d=false}={})=>({...t,zoom:false,rotation:false,reset:false,fullPage:d&&t.fullPage,annotations:s&&t.annotations}),Ie=ue&&Se,Ft=Ut.Children.count(ve)>0,Ve=f?p?ce.length||Ft||Pt?Rt(f,{annotations:true}):null:ne||ue?Le.length||ce.length||Ft||Pt||Ie&&f.fullPage?Rt(f,{annotations:true,fullPage:Ie}):null:f:null,tt=J&&!p&&(c?c.kind==="audio"&&!ne&&Y.length>0:true),[nt,kn]=y(null),fe=c?nt??c.placement:null,[Ze,wn]=y(jo),ot=M(()=>{const t=(c==null?void 0:c.kind)==="video"&&Ce&&fe?[...Y,{id:c.id,placement:fe,width:fe.width,height:fe.height,media:{element:Ce}}]:Y;return Ze.length?[...t,...Ze]:t},[Y,c,Ce,fe,Ze]),$t=ne&&(c==null?void 0:c.kind)==="video"&&nt?nt:x?Eo(x.placements):null,On=JSON.stringify([Y,$t,ot.length!==Y.length&&[c==null?void 0:c.id,fe],Ze.map(t=>t.id)]),je=P(null),at=P(false),Pn=()=>{c?Et(p?j:null):St(p),p||Ke()},st=Array.isArray(a)?a[0]:a,g=[D,(Vt=n==null?void 0:n[0])==null?void 0:Vt.label,st==null?void 0:st.label].map(t=>we(t,b)).find(t=>t.text),Mn=M(()=>{const t=we(G,b);return t.text&&t.text!==(g==null?void 0:g.text)?t:void 0},[G,b,g==null?void 0:g.text]),Tt=Io((g==null?void 0:g.text)||ae("canvasImage"),g?g.lang:C.langOf("canvasImage"),false,C.hostLanguage),qe=p?[]:[...De?[Ao]:[],...c?[Ko]:[],...xe?[No]:[]],Lt=`keys-${I}`,Bn=De&&!p&&!C.langOf("canvasRoleDescription")?ae("canvasRoleDescription"):void 0,lt=!!Ve&&ce.length>0,Sn=lt&&ce.map((t,s)=>we(t.label,b).text?to(Qe,s):null).filter(Boolean).join(" ")||void 0,zt=P({canvases:n,scene:x,canvasKey:j});zt.current={canvases:n,scene:x,canvasKey:j};const it=P(null),rt=ge(()=>{const{canvases:t,scene:s,canvasKey:d}=zt.current;it.current=t&&s&&je.current===d?{key:d,canvases:t,placements:s.placements}:null},[]),En=!n||((Zt=it.current)==null?void 0:Zt.key)===j;he(()=>{const t=V.current;if(!t)return;const s=o(t,pt.current),d=en(s)?s:null;se.current=s,Ge(s),s.setDismiss(Ke);const q=s.on("open",()=>{var H;ut(false),rt(),Z("ready"),yt(_e=>_e+1),d&&((H=$e.current)==null||H.call($e,Vo(d,()=>it.current,_e=>{var _t,Wt;const Ht=Ae.current.placed.find(dt=>dt.id===_e);return Ht?(Ae.current.select(Ht),(Wt=Array.from(((_t=d.overlays)==null?void 0:_t.container.querySelectorAll("[id]"))??[]).find(dt=>dt.id===_e))==null||Wt.focus({preventScroll:true}),true):false})))}),N=s.on("change",()=>{ut(false),rt(),Z("ready"),yt(H=>H+1)}),He=s.on("error",()=>{s.isOpen||Z("error")}),F=s.on("unloadable",H=>sn(!!H)),Fn=s.on("viewport",()=>{var H;d&&((H=Te.current)==null||H.call(Te,d.getBounds()))});return()=>{q(),N(),He(),F(),Fn(),s.dispose(),se.current=null,Ge(null)}},[_,o,Ke,rt]),he(()=>{if(!(!K||!le))return K.attachNavigator(le)},[K,le]),he(()=>{if(!(!T||!ue))return T.setGestures({navigable:false}),()=>T.setGestures({})},[T,ue]);const ct=P(false);he(()=>{var s;if(Ie)return;const t=!document.activeElement||document.activeElement===document.body;ct.current&&t&&((s=V.current)==null||s.focus()),ct.current=false},[Ie]),he(()=>{const t=se.current;if(p&&(at.current=true),!t||!ee||p)return;const s=je.current!==null&&je.current!==j;(!t.isOpen||s)&&Z("loading");const d=ne||at.current&&t.isOpen||s;je.current=j,at.current=false,t.setImages(ot,{world:$t??void 0,fit:d})},[On,_,Ce,ee,p]);const At=P(l),[Rn,ut]=y(false);An(()=>{var t;l!==At.current&&(At.current=l,(t=se.current)==null||t.clear(),ut(true),Z("loading"))},[l]);const Kt=E==="loading"&&ot.length>0&&ee&&!p;return i(Nn.Provider,{value:C.hostLanguage,children:i("figure",{"aria-labelledby":Sn,className:Co("clover-canvas",B),"data-testid":"clover-canvas","data-status":E,...bo(Ee),"data-unloadable":gt||void 0,"data-has-navigator":tt,"data-fullscreen":Ye,"data-exit":U||void 0,"data-controls":Re?"visible":"hidden","data-media":c==null?void 0:c.kind,"data-player":oe?"":void 0,"data-animated":R?"":void 0,"data-navigable":De,"data-placeholder":de.length&&!oe?p:void 0,ref:C.ref,onFocus:t=>{ct.current=Ie&&t.target.id===`fullPage-${I}`},onKeyDown:t=>{if(t.key==="Escape"&&et&&!t.defaultPrevented){t.preventDefault(),Bt(false);return}if(t.key==="Escape"&&!t.defaultPrevented&&!t.currentTarget.querySelector(".clover-canvas-menu")&&Ke()){t.preventDefault();return}co(t,V.current)},style:{position:"relative",width:"100%",height:"100%",margin:0,overflow:"hidden",isolation:"isolate"},children:[(Ve||tt)&&i("div",{className:"clover-canvas-scrim","aria-hidden":"true"}),i(no,{hidden:!U}),T&&Ve&&i(Po,{renderer:K,instance:I,config:Ve,controlButtons:X,hasPlaceholder:de.length>0,choices:p?[]:Le,selections:ie,onSelect:xt,annotations:O.menu,hiddenPages:O.hiddenPages,onPageVisibilityChange:O.setPagesVisible,selectedAnnotation:O.selected,onAnnotationSelect:O.select,onAnnotationActivate:O.activate,captionId:lt?Qe:void 0,captionOpen:et,onCaptionToggle:()=>Mt(t=>!t),placeId:ze?kt:void 0,placeOpen:wt,onPlaceToggle:()=>{mn(true),Ot(t=>!t)},language:b,children:ve}),tt&&i("div",{ref:w,className:"clover-canvas-navigator","data-testid":"clover-canvas-navigator","aria-hidden":"true"}),i("div",{ref:V,className:"clover-canvas-viewport",style:{position:"absolute",inset:0,overflow:"hidden",zIndex:-1},"data-testid":"clover-canvas-viewport",role:xe?"group":"img","aria-roledescription":Bn,...Tt.props,"aria-describedby":qe.length?Lt:void 0,"aria-keyshortcuts":qe.map(({keys:t})=>t).join(" ")||void 0,"aria-busy":Kt,tabIndex:0}),Tt.node,qe.length>0&&i("span",{id:Lt,style:Kn,children:qe.map(({description:t},s)=>i(Ut.Fragment,{children:[s>0&&" ",i("span",{...Yt(C.langOf(t)),children:ae(t)})]},t))}),i(oo,{kind:"image",shown:gt&&!p}),ue&&!p&&(g==null?void 0:g.text)&&i(ao,{text:g.text,lang:g.lang||void 0}),(c==null?void 0:c.kind)==="audio"&&!oe&&Y.length===0&&!p&&(g==null?void 0:g.text)&&i("p",{className:"clover-canvas-sound-label","aria-hidden":"true",...Yt(g.lang||void 0),children:g.text}),de.length>0&&!oe&&i(ke,{fallback:null,children:i(zo,{instance:I,stills:de,vertical:te==="top-to-bottom"||te==="bottom-to-top",media:!!c,active:p,lingering:E==="loading"&&!Rn,onToggle:Pn,request:u==null?void 0:u.request})}),T&&c&&ee&&!p&&i(ke,{fallback:null,children:i(Ro,{media:c,request:u==null?void 0:u.request,surface:T,instance:I,onElement:xn,onFit:kn,onCaptionChange:k,caption:S,navigable:De,fullscreen:ne&&!!(f!=null&&f.fullPage),isFullscreen:Se,onEnded:pe,chapters:Pe,highlightedChapter:Me,onChapterHighlight:Be,autoPlay:!oe&&de.length>0&&O.quietlyOpened!==j,language:b,notes:O.timed,player:oe&&n?{canvas:n[0],title:g,partOf:Mn}:void 0})}),K&&R&&(x==null?void 0:x.frames[Xt(R)])&&!p&&i(ke,{fallback:null,children:i(Lo,{renderer:K,frames:pn,byFrame:x.frames[Xt(R)],animationKey:R.id,sceneVersion:mt,autoplay:(jt=u==null?void 0:u.animation)==null?void 0:jt.autoplay,loop:(qt=u==null?void 0:u.animation)==null?void 0:qt.loop,onEnded:pe,language:b,duration:Number(R.duration),canvas:R,place:x.placements[n.indexOf(R)],onItems:wn},R.id)}),It&&xe&&v&&i(It.AnnotationState,{given:e,annotations:rn??v,scene:x,renderer:K,sceneVersion:mt,drawn:En,media:c,mediaElement:Ce,showPlaceholder:p,canvasKey:j,openImages:St,openMedia:Et,host:V,onModel:un,refind:e.refind??0}),Kt&&i(xo,{overlay:true}),re&&i(ke,{fallback:null,children:i(tn,{id:`place-of-${I}`,open:hn,onClose:t=>{var s;fn(Je),t&&((s=document.getElementById(re.id))==null||s.focus())},feature:re.feature,name:re.name,language:b})}),ze&&gn&&i(ke,{fallback:null,children:i(tn,{id:kt,open:wt,onClose:t=>{var s;Ot(false),t&&((s=document.getElementById(`place-${I}`))==null||s.focus())},feature:ze.feature,name:ze.name,language:b})}),lt&&i(so,{id:Qe,canvases:ce,comments:Xe,open:et,onClose:Bt,language:b})]})})};function Vo(e,o,l){return{fitCanvasRect(n,r,a){const m=o(),h=(m==null?void 0:m.canvases.findIndex(D=>D.id===n))??-1;return!m||h===-1?false:(e.fitBounds(mo(m.canvases[h],m.placements[h],r),a),true)},getCanvasRegion(){const n=o();return n?qo(e.getBounds(),n.canvases,n.placements):null},get backendKind(){return e.backendKind},get atHome(){return e.isAtHome},fitBounds:(n,r)=>e.fitBounds(n,r),fitItemRect:(n,r,a)=>e.fitItemRect(n,r,a),itemRectToWorld:(n,r)=>e.itemRectToWorld(n,r),getBounds:()=>e.getBounds(),getHomeBounds:()=>e.getHomeBounds(),getCamera:()=>e.getCamera(),home:n=>e.home(n),zoomBy:(n,r,a)=>e.zoomBy(n,r,a),panBy:(n,r,a)=>e.panBy(n,r,a),setRotation:(n,r)=>e.setRotation(n,r),getRotation:()=>e.getRotation(),rotateBy:n=>e.rotateBy(n),worldToScreenPoint:n=>e.worldToScreenPoint(n),screenToWorldPoint:n=>e.screenToWorldPoint(n),on:(n,r)=>e.on(n,r),zoomToAnnotation:l}}const Zo=[],jo=[];function an(e,o,l=false){const n=Array.isArray(e)?e:e?[e]:[];return n.length?n.map((a,m)=>{const h=ko(a.service);return!h&&!a.id?null:{id:`${m}:${a.id??h}|${a.region??""}`,service:h,url:a.id,width:a.width,height:a.height,region:a.region}}).filter(a=>a!==null):(Array.isArray(o)?o:o?[o]:[]).filter(Boolean).map((a,m)=>({id:`${m}:${a}`,...l?{service:a}:{url:a}}))}function qo(e,o,l){let n=null;if(l.forEach((z,_)=>{const B=Math.max(e.x,z.x),u=Math.max(e.y,z.y),J=Math.min(e.x+e.width,z.x+z.width)-B,A=Math.min(e.y+e.height,z.y+z.height)-u;if(J<=0||A<=0)return;const X=J*A;(!n||X>n.area)&&(n={index:_,area:X,clip:{x:B,y:u,width:J,height:A}})}),!n)return null;const{index:r,clip:a}=n,m=o[r],h=l[r],D=yo(m),G=D.width/h.width,b=D.height/h.height;return{canvasId:m.id,rect:{x:Math.round((a.x-h.x)*G),y:Math.round((a.y-h.y)*b),width:Math.round(a.width*G),height:Math.round(a.height*b)}}}export{ga as C,ca as a,We as b,la as c,fa as d,da as e,ha as f,ua as g,ra as h,ia as i,sa as r,aa as s,oa as t,Eo as u};
@@ -0,0 +1 @@
1
+ import{a as c,u as a,r as d,l as p,aC as v,k as m}from"./shared-MTsMddHx.mjs";import{M as f,a as h}from"./Markup-D-kioDf9.mjs";import{R as u}from"./ReadMore-BwGFsLS2.mjs";import{E as b}from"./EntryBodies-Bfd2Z42z.mjs";const P=({summary:s,metadata:n,comments:o,language:r})=>{const{t:l,langOf:t}=c();return a(m,{children:[d(s,r).text&&a(u,{children:a(f,{as:"p",markup:s,language:r,className:"clover-summary clover-canvas-caption-summary"})}),a(h,{metadata:n,language:r,className:"clover-metadata clover-canvas-caption-metadata"}),o!=null&&o.length?a("div",{className:"clover-canvas-caption-annotations",children:[a("p",{className:"clover-canvas-caption-annotations-label",...p(t("informationPanelTabsAnnotations")),children:l("informationPanelTabsAnnotations")}),a("ul",{children:o.map((i,e)=>a("li",{children:a(b,{bodies:v(i),language:r})},i.id??e))})]}):null]})};export{P as default};
@@ -0,0 +1 @@
1
+ import{u as o}from"./shared-MTsMddHx.mjs";import{j as i}from"./classnames-DukgfdpI.mjs";import"./styles-CZV1nbBQ.mjs";function s({open:e=false,className:r}){return o("svg",{"aria-hidden":"true",focusable:"false",width:"12",height:"12",viewBox:"0 0 12 12",className:i("clover-chevron",r),"data-open":e||void 0,children:o("path",{d:"M3 4.5l3 3 3-3",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round"})})}export{s as C};
@@ -0,0 +1 @@
1
+ import{r,u as a,l as v}from"./shared-MTsMddHx.mjs";import x from"./ControlMenu-Crtho2cs.mjs";import{l as C}from"./layout-De1MOSYe.mjs";import{u as z}from"./useContainerName-CrOmY-km.mjs";import"./styles-CZV1nbBQ.mjs";const P=({id:i,triggerId:u,label:b,labelLang:g,choices:m,selections:h,onSelect:y,onClose:f,language:s})=>{const d=z(b,g),N=m.some(e=>!r(e.label,s).text);return a(x,{"data-testid":"clover-canvas-choice",id:i,onClose:f,triggerId:u,children:[N&&d.node,m.map((e,k)=>{const t=r(e.label,s);return a("fieldset",{...t.text?{}:d.props,className:"clover-canvas-menu-group",children:[t.text&&a("legend",{className:"clover-canvas-menu-legend",...v(t.lang),children:t.text}),e.items.map((l,n)=>{const o=r(l.label,s),c=o.text||(l.image?"":String(n+1)),p=!C(l);return a("label",{className:"clover-canvas-menu-item","data-disabled":p||void 0,children:[a("input",{type:"radio",name:`${i}-${k}`,"aria-label":c?void 0:String(n+1),checked:(h[e.key]??0)===n,disabled:p,onChange:()=>y(e.key,n)}),l.image&&a("img",{alt:"",className:"clover-canvas-menu-image",decoding:"async",loading:"lazy",src:l.image}),c&&a("span",{...v(o.text?o.lang:void 0),children:c})]},n)})]},e.key)})]})};export{P as default};
@@ -0,0 +1 @@
1
+ import{D as I,e as H,a as $,b as j,c as u,H as A,y as S,u as o,l as T}from"./shared-MTsMddHx.mjs";import{I as q}from"./Items-BHzT9A73.mjs";import{L as w}from"./Label-KabnxuMN.mjs";import{Summary as x,Id as D,Homepage as L}from"./Primitives-BmODPlnK.mjs";import{j as O}from"./classnames-DukgfdpI.mjs";import{t as p}from"./heading-Cjt0f-Eu.mjs";import"./styles-CZV1nbBQ.mjs";const J=I(function({headingLevel:r=3,className:b,...v},d){const{clover:n}=H("Collection"),{t:f,langOf:g}=$(),i=j(),a=u(e=>e.collection),l=u(e=>A(e.manifest));S(()=>{!a&&(l!=null&&l.id)&&n.openCollection(l.id)},[n,a,l]);const t=a??l;if(!t)return null;const s=t.homepage,c=p(r,`${i}-label`),m=(e,C)=>{const{as:h,title:y,group:N}=p(r,`${i}-${e}`);return o("section",{className:"clover-about-section",...N,children:[o(h,{className:"clover-about-heading",...T(g(e)),...y,children:f(e)}),C]})};return o("div",{ref:d,className:O("clover-about clover-collection",b),...t.label?c.group:null,...v,children:[o(w,{as:c.as,label:t.label,className:"clover-collection-title",...c.title}),o(x,{value:t.summary,className:"clover-about-summary"}),o(q,{of:"members",layout:"list"}),Array.isArray(s)&&s.length>0&&m("aboutHomepage",o(L,{value:s})),m("aboutCollection",o(D,{value:t.id}))]})});export{J as Collection};
@@ -0,0 +1 @@
1
+ import{D as C,a as k,e as I,c as v,b as K,d as L,y as w,A as b,r as h,u as r,l as S}from"./shared-MTsMddHx.mjs";import{i as N}from"./items-F6hJgdAS.mjs";import{j as U}from"./classnames-DukgfdpI.mjs";import"./styles-CZV1nbBQ.mjs";const j=new Set(["ArrowUp","ArrowDown","ArrowLeft","ArrowRight","Home","End","PageUp","PageDown"]),B=100,z=C(function({onChange:s,className:y,...A},E){const{t:P,langOf:D}=k(),{clover:T,language:u}=I("CollectionSelect"),t=v(e=>e.collection),n=v(e=>{var l;return((l=e.manifest)==null?void 0:l.id)??""}),f=K(),[c,i]=L(null);w(()=>i(null),[n,t]);const d=b(-1/0),o=b(null);w(()=>{o.current=null},[n,t]);const p=e=>{!e||e===n||e===o.current||(o.current=e,s==null||s(e),T.goToManifest(e).finally(()=>{o.current===e&&(o.current=null)}))},m=()=>c===null||c===n||c===o.current?false:(i(null),true),g=N(t);if(g.length<2)return null;const a=h(t==null?void 0:t.label,u);return r("div",{ref:E,className:U("clover-collection-select",y),...A,children:[r("label",{htmlFor:`${f}-select`,className:"clover-collection-select-label",...S(a.text?a.lang:D("collectionLabel")),children:a.text||P("collectionLabel")}),r("select",{id:`${f}-select`,className:"clover-collection-select-control",value:c??n,onKeyDown:e=>{const{key:l}=e;l==="Enter"?p(c):l==="Escape"?m()&&e.preventDefault():(j.has(l)||l.length===1&&!e.ctrlKey&&!e.metaKey)&&(d.current=performance.now())},onBlur:m,onChange:e=>{const l=e.target.value;i(l),performance.now()-d.current>B&&p(l)},children:g.map(e=>{const l=h(e.label,u);return r("option",{value:e.id,...S(l.text?l.lang:void 0),children:l.text||e.id},e.id)})})]})});export{z as CollectionSelect};
@@ -0,0 +1 @@
1
+ import{e as v,c as u,y as S,T as b,u as C}from"./shared-MTsMddHx.mjs";import{S as q}from"./SceneView-B6bEx_7x.mjs";import{a as w,e as x}from"./hooks-x7rO95CS.mjs";function M({label:i,language:d,options:t,...f}){const r=v("Scene"),{clover:a}=r,e=w().find(n=>n.type==="Scene"),s=x(),g=u(n=>{var o;return n.status==="loading"?"loading":((o=n.manifest)==null?void 0:o.id)??""}),c=u(n=>n.target);S(()=>{c&&e&&c.canvasId===e.id&&a.consumeTarget()},[c,e,a]);const l=(t==null?void 0:t.request)??a.request,m=b(()=>({...t,request:l}),[t,l]);return e?C(q,{...f,scene:e,manifestId:g,label:i??e.label??(s==null?void 0:s.label),language:d??r.language,options:m}):null}export{M as default};
@@ -0,0 +1 @@
1
+ import{e as ve,C as q,c as h,A as l,d as me,y as O,T as R,M as be,q as f,ai as d,u as Se,aj as we,ak as Ae,al as Ie,n as Ce}from"./shared-MTsMddHx.mjs";import{C as Le}from"./CanvasView-BWQ4SK2b.mjs";import{u as ke,a as xe}from"./fromManifest-gg5Wx14y.mjs";import{i as F,j as ye}from"./layout-De1MOSYe.mjs";import{s as Pe}from"./show-link-BXm7SNIC.mjs";import{a as qe,d as Oe,e as Re,f as Te}from"./hooks-x7rO95CS.mjs";const Ve=({options:i,onReady:T,onViewportChange:v,onMediaElement:m,onCaptionChange:A,caption:j,onEnded:b,placeholder:G=true,label:J,partOf:N,language:Q,annotations:I,chapters:W,...p})=>{const C=ve("Canvas"),{clover:t}=C,X=q(t.captions.subscribe,t.captions.get,t.captions.get),Y=j??X,M=Q??C.language,c=qe(),{direction:Z}=Oe(),n=Re(),o=Te(),_=h(e=>{var a;return e.status==="loading"?"loading":((a=e.manifest)==null?void 0:a.id)??""}),S=h(e=>e.target),B=h(e=>we(e.manifest,e.addedSets,e.search.set,e.regions)),E=h(e=>Ie(e.manifest,e.addedSets,e.hiddenSets,e.shownSets)),ee=h(e=>Ce(e.manifest,e.addedSets,e.hiddenSets,e.shownSets)),L=h(e=>e.annotationId),D=l(L);D.current=L;const[te,ae]=me(0);O(()=>t.found.subscribe(e=>{e&&e===D.current&&ae(a=>a+1)}),[t]);const ne=q(t.highlight.subscribe,t.highlight.get,t.highlight.get),se=q(t.chapter.subscribe,t.chapter.get,t.chapter.get),u=c.map(e=>e.id).join("|"),ce=R(()=>{if(I)return I;const e=c.map(a=>a.id);return B.flatMap(a=>a.entries.filter(s=>e.includes(s.canvasId)).map(s=>({annotation:s.annotation,targetIndex:e.indexOf(s.canvasId),pageId:a.id,...a.label?{pageLabel:a.label}:{},...s.place?{place:s.place}:{},...s.layer?{layer:{key:s.layer.key,item:s.layer.item}}:{}})))},[I,B,c]),ie=S?(e=>!!e&&c.some(a=>a.id===e))(S.canvasId):false,H=l(null);ie&&(H.current=u);const oe=G&&H.current!==u,k=l(null),x=l(null),y=R(()=>c.some(e=>F(e).length>0),[c]),g=y?c.find(e=>F(e).length>0):void 0,re=ke(n,g,M,Ae),K=l(y);K.current=y;const P=j===void 0?C.language:void 0,le=g==null?void 0:g.id;O(()=>{if(!P||!g)return;const e=ye(g).find(a=>a.language&&be(a.language,P));e&&t.captions.get()!==e.id&&t.captions.emit(e.id)},[P,le,t]);const r=f(()=>{const e=t.store.get().target;!e||!t.store.get().canvasId||xe(e,k.current,x.current,K.current)&&t.consumeTarget()},[t]),U=l(u);O(()=>{U.current!==u&&(U.current=u,x.current=null),S&&r()},[S,u,r]);const w=l(T);w.current=T;const de=f(e=>{var a;k.current=e,e.on("change",r),r(),(a=w.current)==null||a.call(w,e)},[r]),ue=f(e=>{var s;const a=(s=k.current)==null?void 0:s.getCanvasRegion();t.viewport.emit(a?{canvasId:a.canvasId,region:{x:a.rect.x,y:a.rect.y,w:a.rect.width,h:a.rect.height}}:null),v==null||v(e)},[t,v]),ge=f(e=>{x.current=e,t.media.emit(e),e&&r(),m==null||m(e)},[t,r,m]),he=f(()=>{b==null||b(),(d(n,"auto-advance")||d(o,"auto-advance"))&&t.next({autoplay:true,wrap:d(n,"repeat")})},[t,n,o,b]),fe=f(e=>void Pe(t,e),[t]),V=(i==null?void 0:i.request)??t.request,$=d(o,"auto-advance")||d(n,"auto-advance"),z=d(o,"repeat")||d(n,"repeat"),pe=R(()=>({...i,request:V,animation:(i==null?void 0:i.animation)??{autoplay:$,loop:z}}),[i,V,$,z]);return c.length?Se(Le,{...p,manifestId:_,navPlace:n==null?void 0:n.navPlace,canvases:c,viewingDirection:Z,language:M,label:J??(o==null?void 0:o.label)??(n==null?void 0:n.label),partOf:N??(n==null?void 0:n.label),options:pe,placeholder:oe,onReady:de,onViewportChange:ue,onMediaElement:ge,caption:Y,onCaptionChange:e=>{t.captions.emit((e==null?void 0:e.id)??null),A==null||A(e)},onEnded:he,annotations:ce,hiddenPages:ee,unlistedPages:E,onPageVisibilityChange:(e,a)=>e.forEach(s=>t.setSetVisible(s,a)),chapters:W??re,highlightedChapter:se,onChapterHighlight:e=>t.chapter.emit(e),selectedAnnotation:L,refind:te,highlightedAnnotation:ne,onAnnotationSelect:e=>t.selectAnnotation(e),onAnnotationLink:p.onAnnotationLink??fe,onAnnotationActive:e=>{var a;t.highlight.emit(e),(a=p.onAnnotationActive)==null||a.call(p,e)}}):null};export{Ve as default};
@@ -0,0 +1 @@
1
+ import{u as o}from"./shared-MTsMddHx.mjs";import{p as a}from"./playerSurface-HYwEwPK6.mjs";import n from"./Connected-BSRM9FJY.mjs";import{j as t}from"./classnames-DukgfdpI.mjs";import{a as m}from"./hooks-x7rO95CS.mjs";function v({className:e,...r}){return m().some(i=>i.type==="Timeline")?o(n,{...r,className:t("clover-timeline",e),navigator:false,surface:a}):null}export{v as default};