@nulib/clover 4.0.0-beta.1 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (523) 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/Body.mjs +16 -1
  6. package/dist/components/Body/BodyAlert.mjs +2 -1
  7. package/dist/components/Body/Caption.mjs +2 -1
  8. package/dist/components/Body/CaptionDetails.mjs +2 -1
  9. package/dist/components/Body/glyphs.mjs +24 -0
  10. package/dist/components/Canvas/AnnotationMenu.mjs +76 -60
  11. package/dist/components/Canvas/AnnotationState.mjs +9 -2
  12. package/dist/components/Canvas/Annotations.mjs +16 -7
  13. package/dist/components/Canvas/CanvasView.mjs +287 -42
  14. package/dist/components/Canvas/ChaptersMenu.mjs +105 -0
  15. package/dist/components/Canvas/ChoiceMenu.mjs +51 -31
  16. package/dist/components/Canvas/Connected.mjs +38 -4
  17. package/dist/components/Canvas/ControlMenu.mjs +29 -8
  18. package/dist/components/Canvas/Controls.mjs +227 -48
  19. package/dist/components/Canvas/ControlsFade.mjs +16 -0
  20. package/dist/components/Canvas/FrameAnimation.mjs +568 -167
  21. package/dist/components/Canvas/ImageControls.mjs +209 -0
  22. package/dist/components/Canvas/LoadedCanvas.mjs +5 -3
  23. package/dist/components/Canvas/PlaceBox.mjs +74 -0
  24. package/dist/components/Canvas/Placeholder.mjs +46 -13
  25. package/dist/components/Canvas/RowFits.mjs +85 -0
  26. package/dist/components/Canvas/fromManifest.mjs +2 -1
  27. package/dist/components/Canvas/layout.mjs +132 -32
  28. package/dist/components/Canvas/media/MediaBody.mjs +130 -45
  29. package/dist/components/Canvas/media/Player.mjs +9 -78
  30. package/dist/components/Canvas/media/Transport.mjs +102 -78
  31. package/dist/components/Canvas/media/TransportButton.mjs +2 -1
  32. package/dist/components/Canvas/media/placeMenu.mjs +19 -0
  33. package/dist/components/Canvas/media/seekGaps.mjs +43 -0
  34. package/dist/components/Canvas/media/sequence.mjs +96 -0
  35. package/dist/components/Canvas/media/useMediaElement.mjs +22 -3
  36. package/dist/components/Canvas/panClearOfControls.mjs +1 -1
  37. package/dist/components/Collection/Collection.mjs +3 -2
  38. package/dist/components/CollectionSelect/CollectionSelect.mjs +5 -2
  39. package/dist/components/Contents/Contents.mjs +163 -34
  40. package/dist/components/Download/Download.mjs +34 -38
  41. package/dist/components/Download/downloads.mjs +40 -0
  42. package/dist/components/Items/AnnotationItems.mjs +165 -0
  43. package/dist/components/Items/CountMenu.mjs +90 -0
  44. package/dist/components/Items/Item.mjs +27 -19
  45. package/dist/components/Items/Items.mjs +93 -45
  46. package/dist/components/Items/Pager.mjs +39 -79
  47. package/dist/components/Items/PagerLayout.mjs +43 -0
  48. package/dist/components/Items/Position.mjs +103 -0
  49. package/dist/components/Items/StandaloneItems.mjs +12 -4
  50. package/dist/components/Items/TargetItems.mjs +202 -0
  51. package/dist/components/Items/masonry.mjs +35 -0
  52. package/dist/components/Label/Label.mjs +2 -1
  53. package/dist/components/Map/MapView.mjs +367 -57
  54. package/dist/components/Panel/About.mjs +61 -15
  55. package/dist/components/Panel/AboutActions.mjs +117 -0
  56. package/dist/components/Panel/Panel.mjs +58 -18
  57. package/dist/components/Panel/PartOfManifest.mjs +4 -3
  58. package/dist/components/Panel/ReadingLanguages.mjs +20 -0
  59. package/dist/components/Primitives/Primitives.mjs +18 -3
  60. package/dist/components/Provider/Provider.mjs +19 -5
  61. package/dist/components/Root/Announcer.mjs +3 -2
  62. package/dist/components/Root/Root.mjs +5 -2
  63. package/dist/components/Root/useRootState.mjs +16 -51
  64. package/dist/components/Scene/SceneView.mjs +36 -8
  65. package/dist/components/Scene/cloverEngine.mjs +2 -1
  66. package/dist/components/Search/Search.mjs +3 -2
  67. package/dist/components/Split/Split.mjs +4 -1
  68. package/dist/components/Status/Status.mjs +10 -2
  69. package/dist/components/Timeline/playerSurface.mjs +4 -1
  70. package/dist/components/Transcript/Transcript.mjs +42 -23
  71. package/dist/core/annotation-bodies.mjs +25 -5
  72. package/dist/core/annotation-collection.mjs +3 -2
  73. package/dist/core/annotation-name.mjs +12 -9
  74. package/dist/core/annotation-sets.mjs +139 -10
  75. package/dist/core/annotations-content.mjs +8 -1
  76. package/dist/core/annotations.mjs +8 -1
  77. package/dist/core/choice-key.mjs +5 -0
  78. package/dist/core/clover.mjs +112 -24
  79. package/dist/core/content-state-reader.mjs +33 -2
  80. package/dist/core/content-state.mjs +5 -3
  81. package/dist/core/dates-format.mjs +30 -0
  82. package/dist/core/dates.mjs +19 -0
  83. package/dist/core/geo.mjs +46 -5
  84. package/dist/core/image-layers.mjs +96 -0
  85. package/dist/core/items.mjs +4 -2
  86. package/dist/core/language-choice.mjs +30 -0
  87. package/dist/core/link.mjs +15 -1
  88. package/dist/core/load.mjs +4 -2
  89. package/dist/core/pages.mjs +20 -1
  90. package/dist/core/presentation.mjs +6 -4
  91. package/dist/core/range-regions.mjs +70 -0
  92. package/dist/core/ranges.mjs +52 -18
  93. package/dist/core/region.mjs +7 -2
  94. package/dist/core/sanitize.mjs +86 -1
  95. package/dist/core/save-file.mjs +33 -0
  96. package/dist/core/selectors.mjs +12 -0
  97. package/dist/core/upgrade.mjs +23 -0
  98. package/dist/core/value.mjs +11 -23
  99. package/dist/hooks/useFullscreenExit.mjs +26 -0
  100. package/dist/hooks/useHighContrast.mjs +27 -0
  101. package/dist/i18n/autonym.mjs +11 -0
  102. package/dist/i18n/config.mjs +3 -8
  103. package/dist/{core → i18n}/direction.mjs +5 -1
  104. package/dist/i18n/languages.mjs +44 -0
  105. package/dist/i18n/locales/en.json.mjs +1 -1
  106. package/dist/i18n/locales/es.json.mjs +1 -1
  107. package/dist/i18n/locales/fi.json.mjs +1 -1
  108. package/dist/i18n/locales/fr.json.mjs +1 -1
  109. package/dist/i18n/locales/nb.json.mjs +1 -1
  110. package/dist/i18n/locales/nn.json.mjs +1 -1
  111. package/dist/i18n/locales/no.json.mjs +1 -1
  112. package/dist/i18n/locales/pt.json.mjs +1 -1
  113. package/dist/{ui → i18n}/useContainerName.mjs +5 -4
  114. package/dist/{react/language.mjs → i18n/useRootLanguage.mjs} +2 -2
  115. package/dist/index.d.mts +476 -78
  116. package/dist/index.mjs +6 -2
  117. package/dist/lib/fullscreen.mjs +6 -1
  118. package/dist/lib/gltf/load.mjs +26 -6
  119. package/dist/lib/renderer/CanvasRenderer.mjs +71 -36
  120. package/dist/lib/renderer/camera/Camera.mjs +1 -1
  121. package/dist/lib/renderer/math/affine.mjs +14 -0
  122. package/dist/lib/renderer/scene/planFrame.mjs +12 -12
  123. package/dist/lib/renderer/scene/regions.mjs +11 -1
  124. package/dist/lib/renderer/scene/sceneItem.mjs +72 -9
  125. package/dist/lib/time.mjs +10 -0
  126. package/dist/map/index.d.mts +26 -4
  127. package/dist/react/fetchManifest.mjs +19 -0
  128. package/dist/react/hooks.mjs +7 -1
  129. package/dist/react/readingLanguages.mjs +16 -0
  130. package/dist/react/useContentStateOutput.mjs +71 -0
  131. package/dist/react/usePagesReached.mjs +42 -0
  132. package/dist/styles.css +1 -1
  133. package/dist/templates/default/Default.mjs +122 -135
  134. package/dist/templates/document/Document.mjs +45 -64
  135. package/dist/templates/document/Sheets.mjs +13 -5
  136. package/dist/templates/gallery/Gallery.mjs +90 -18
  137. package/dist/templates/index.d.mts +318 -18
  138. package/dist/templates/shared/Lightbox.mjs +161 -69
  139. package/dist/templates/shared/LightboxView.mjs +118 -0
  140. package/dist/templates/shared/PanelPane.mjs +104 -0
  141. package/dist/templates/{document/DocumentPanel.mjs → shared/PanelPart.mjs} +2 -2
  142. package/dist/templates/shared/dragToClose.mjs +51 -8
  143. package/dist/templates/shared/givenAnnotations.mjs +13 -0
  144. package/dist/templates/shared/useDragToClose.mjs +6 -3
  145. package/dist/templates/shared/useLazyPanelPane.mjs +16 -0
  146. package/dist/templates/shared/useSlide.mjs +6 -0
  147. package/dist/templates.css +1 -1
  148. package/dist/ui/BodyUnloadable.mjs +34 -0
  149. package/dist/ui/Button.mjs +2 -1
  150. package/dist/ui/Chevron.mjs +34 -0
  151. package/dist/ui/ControlCluster.mjs +15 -14
  152. package/dist/ui/EntryThumbnail.mjs +60 -0
  153. package/dist/ui/ExitFullscreen.mjs +2 -1
  154. package/dist/ui/FieldPill.mjs +5 -4
  155. package/dist/ui/HideToggle.mjs +2 -1
  156. package/dist/ui/LanguageChoice.mjs +45 -0
  157. package/dist/ui/ListEnd.mjs +29 -0
  158. package/dist/ui/Markup.mjs +27 -8
  159. package/dist/ui/NavDate.mjs +29 -0
  160. package/dist/ui/ReadMore.mjs +3 -2
  161. package/dist/ui/Sections.mjs +22 -31
  162. package/dist/ui/Steps.mjs +4 -3
  163. package/dist/ui/Tip.mjs +9 -4
  164. package/dist/ui/mediaIcons.mjs +35 -8
  165. package/dist/ui/useScrollTrack.mjs +2 -1
  166. package/dist/web-components/About-DvyvVUK5.mjs +1 -0
  167. package/dist/web-components/AnnotationItems-BpRcSrOM.mjs +1 -0
  168. package/dist/web-components/AnnotationMenu-BDPec3iI.mjs +1 -0
  169. package/dist/web-components/AnnotationState-Chs_37Kk.mjs +1 -0
  170. package/dist/web-components/Annotations-6E-oD_wg.mjs +2 -0
  171. package/dist/web-components/Annotations-CLPEq7Ro.mjs +1 -0
  172. package/dist/web-components/Body-Ct61yxI7.mjs +1 -0
  173. package/dist/web-components/BodyAlert-C_Qh3Up_.mjs +1 -0
  174. package/dist/web-components/Button-L8ZMy5lY.mjs +1 -0
  175. package/dist/web-components/{Camera-cdCqKMup.mjs → Camera-BPyLzZjP.mjs} +1 -1
  176. package/dist/web-components/{Canvas2DBackend-CnLEHRs4.mjs → Canvas2DBackend-8wFavYdl.mjs} +1 -1
  177. package/dist/web-components/CanvasView-2Fj9nT06.mjs +2 -0
  178. package/dist/web-components/CaptionDetails-DuwS-grE.mjs +1 -0
  179. package/dist/web-components/ChaptersMenu-Bj2EqtVJ.mjs +1 -0
  180. package/dist/web-components/Chevron-Cyr_cc9X.mjs +1 -0
  181. package/dist/web-components/ChoiceMenu-ConzybVH.mjs +1 -0
  182. package/dist/web-components/Collection-CLayN8sv.mjs +1 -0
  183. package/dist/web-components/CollectionSelect-D2d8dGJ4.mjs +1 -0
  184. package/dist/web-components/Connected-CBQ6xyhr.mjs +1 -0
  185. package/dist/web-components/Connected-DMXG3imZ.mjs +1 -0
  186. package/dist/web-components/Connected-pyd0EBD3.mjs +1 -0
  187. package/dist/web-components/Contents-tCMXBYDK.mjs +1 -0
  188. package/dist/web-components/ControlMenu-D1zkB0qX.mjs +1 -0
  189. package/dist/web-components/ControlsFade-BNXVTL_Q.mjs +1 -0
  190. package/dist/web-components/CountMenu-Dnzb7lKo.mjs +1 -0
  191. package/dist/web-components/Cue-CUGmPS3k.mjs +1 -0
  192. package/dist/web-components/Document-D-8nalCX.mjs +1 -0
  193. package/dist/web-components/{DomLayers-BD4QPbl6.mjs → DomLayers-BxPU05-D.mjs} +1 -1
  194. package/dist/web-components/Download-Bku9Vptk.mjs +1 -0
  195. package/dist/web-components/EntryBodies-77vDudCb.mjs +1 -0
  196. package/dist/web-components/EntryThumbnail-BxQWKW6e.mjs +1 -0
  197. package/dist/web-components/FieldPill-nFGsaru9.mjs +1 -0
  198. package/dist/web-components/FrameAnimation-BvKiSXcm.mjs +1 -0
  199. package/dist/web-components/Gallery-4Hd58afA.mjs +1 -0
  200. package/dist/web-components/HideToggle-TEhY4TS4.mjs +1 -0
  201. package/dist/web-components/ImageControls-CZO7WoPb.mjs +1 -0
  202. package/dist/web-components/Items-CudZ4Lnb.mjs +1 -0
  203. package/dist/web-components/Label-f07N5Fld.mjs +1 -0
  204. package/dist/web-components/LanguageChoice-B5VM21DV.mjs +1 -0
  205. package/dist/web-components/LightboxView-C4OASmkg.mjs +1 -0
  206. package/dist/web-components/ListEnd-M39M62Cl.mjs +1 -0
  207. package/dist/web-components/{Loaded-D5xmFRSo.mjs → Loaded-oGFyBuos.mjs} +1 -1
  208. package/dist/web-components/LoadedCanvas-IvpSzPO6.mjs +1 -0
  209. package/dist/web-components/LoadedMap-WATGNLxl.mjs +1 -0
  210. package/dist/web-components/{Loading-CBKfwsML.mjs → Loading-YxuKrDAM.mjs} +1 -1
  211. package/dist/web-components/{Map-Bcgp_R8H.mjs → Map-Cw9j3gi3.mjs} +1 -1
  212. package/dist/web-components/MapView-3OxoCr5l.mjs +3 -0
  213. package/dist/web-components/Markup-DW75Jx3j.mjs +2 -0
  214. package/dist/web-components/MediaBody-CLtd0bf0.mjs +1 -0
  215. package/dist/web-components/MediaBody-JnKnoIqY.mjs +1 -0
  216. package/dist/web-components/NavDate-BCCOyycx.mjs +1 -0
  217. package/dist/web-components/{Navigator-BSJbEbuJ.mjs → Navigator-Bx4zS0Yr.mjs} +1 -1
  218. package/dist/web-components/Pager-B9GvQ64b.mjs +1 -0
  219. package/dist/web-components/PagerLayout-BF33VZL_.mjs +1 -0
  220. package/dist/web-components/Panel-BvDpCn6K.mjs +1 -0
  221. package/dist/web-components/PanelPart-Bd4lSUrP.mjs +1 -0
  222. package/dist/web-components/{PanelToggle-mUDw73zI.mjs → PanelToggle-bPcIULGZ.mjs} +1 -1
  223. package/dist/web-components/PartOfManifest-HLg-r00O.mjs +1 -0
  224. package/dist/web-components/{Pending-BPOQ2z1L.mjs → Pending-BxGjjnqq.mjs} +1 -1
  225. package/dist/web-components/PlaceBox-D-Zhe9-U.mjs +1 -0
  226. package/dist/web-components/Placeholder-DzY5hcbk.mjs +1 -0
  227. package/dist/web-components/Position-TYnzcm8e.mjs +1 -0
  228. package/dist/web-components/Primitives-C6VJXxZD.mjs +1 -0
  229. package/dist/web-components/Provider-DyB0wpeO.mjs +1 -0
  230. package/dist/web-components/ReadMore-De_0T7lc.mjs +1 -0
  231. package/dist/web-components/Root-Bt3NNBFb.mjs +1 -0
  232. package/dist/web-components/Scene-DrOM9YlD.mjs +1 -0
  233. package/dist/web-components/SceneView-DA7Yg20p.mjs +1 -0
  234. package/dist/web-components/Search-DgT8OPsK.mjs +1 -0
  235. package/dist/web-components/Sections-d1acn7qm.mjs +2 -0
  236. package/dist/web-components/StandaloneItems-DUb4YKCB.mjs +1 -0
  237. package/dist/web-components/Status-CcU3u6P4.mjs +1 -0
  238. package/dist/web-components/Steps-nlSCzbDQ.mjs +1 -0
  239. package/dist/web-components/TargetItems-BDJM3Ar-.mjs +1 -0
  240. package/dist/web-components/Timeline-BfdN3lIv.mjs +1 -0
  241. package/dist/web-components/Tip-OCB88zwY.mjs +1 -0
  242. package/dist/web-components/Transcript-bSA3cx_K.mjs +1 -0
  243. package/dist/web-components/Transport-DaIhfZqC.mjs +1 -0
  244. package/dist/web-components/Transport-DjOYI-fR.mjs +1 -0
  245. package/dist/web-components/annotation-collection-D8emkElk.mjs +1 -0
  246. package/dist/web-components/annotation-name-DbWjhgra.mjs +1 -0
  247. package/dist/web-components/annotations-content-Bg6aVAGC.mjs +1 -0
  248. package/dist/web-components/body-Ct8dmQdW.mjs +1 -0
  249. package/dist/web-components/canvas-goEZLqEd.mjs +1 -0
  250. package/dist/web-components/choice-key-BUNebLKe.mjs +1 -0
  251. package/dist/web-components/cloverEngine-Df7cMwOP.mjs +164 -0
  252. package/dist/web-components/content-state-reader-CNmBpG1L.mjs +1 -0
  253. package/dist/web-components/{controls-Dj2BybWb.mjs → controls-BZr16sYQ.mjs} +1 -1
  254. package/dist/web-components/custom-elements.json +260 -48
  255. package/dist/web-components/dates-DR3gfcON.mjs +1 -0
  256. package/dist/web-components/downloads-EjJ6Hpip.mjs +1 -0
  257. package/dist/web-components/dragToClose-X9NbZOhA.mjs +1 -0
  258. package/dist/web-components/{engine-BSt8LTso.mjs → engine-DMoc0tff.mjs} +1 -1
  259. package/dist/web-components/{engines-CC0OEsVE.mjs → engines-BmB81VXR.mjs} +1 -1
  260. package/dist/web-components/es-B1NvdYp-.mjs +1 -0
  261. package/dist/web-components/fetchManifest-CwQC6cCh.mjs +1 -0
  262. package/dist/web-components/fi-BjtYZNLo.mjs +1 -0
  263. package/dist/web-components/fr-Cd22Lziw.mjs +1 -0
  264. package/dist/web-components/fromManifest-DrAmY1lB.mjs +1 -0
  265. package/dist/web-components/glyphs-BFK_hvJJ.mjs +1 -0
  266. package/dist/web-components/hooks-BhtNDs_1.mjs +1 -0
  267. package/dist/web-components/image-layers-D2nQC4R-.mjs +1 -0
  268. package/dist/web-components/{imageService-dsdmcegU.mjs → imageService-iFElsopt.mjs} +1 -1
  269. package/dist/web-components/index-FJEpXukG.mjs +1 -0
  270. package/dist/web-components/index.d.mts +99 -14
  271. package/dist/web-components/index.mjs +1 -1
  272. package/dist/web-components/items-BPPrqbeh.mjs +1 -0
  273. package/dist/web-components/items-BnEnc5ot.mjs +1 -0
  274. package/dist/web-components/label-DauFa5sg.mjs +1 -0
  275. package/dist/web-components/layout-Djwu8f4R.mjs +1 -0
  276. package/dist/web-components/link-0lUlTZlw.mjs +1 -0
  277. package/dist/web-components/logo-DWPxaZaG.mjs +1 -0
  278. package/dist/web-components/masonry-0QfzOgbB.mjs +1 -0
  279. package/dist/web-components/models-BF2pqufA.mjs +1 -0
  280. package/dist/web-components/nb-CEwZDBiR.mjs +1 -0
  281. package/dist/web-components/nn-jYQhr9RI.mjs +1 -0
  282. package/dist/web-components/no-CEwZDBiR.mjs +1 -0
  283. package/dist/web-components/{nodes-B7JRwBgl.mjs → nodes-ChQRLDGU.mjs} +1 -1
  284. package/dist/web-components/{overlayImage-0OgQl1TL.mjs → overlayImage-MKrcgDep.mjs} +1 -1
  285. package/dist/web-components/panClearOfControls-Cn2ZXsZi.mjs +1 -0
  286. package/dist/web-components/{panel-CjXfre-g.mjs → panel-C13V6w6E.mjs} +1 -1
  287. package/dist/web-components/part-CekFWrtz.mjs +1 -0
  288. package/dist/web-components/playerSurface-DG1XipTq.mjs +1 -0
  289. package/dist/web-components/pointer-YQppt0at.mjs +1 -0
  290. package/dist/web-components/presentation-2-C-U79S_T.mjs +1 -0
  291. package/dist/web-components/{provider-C1wKfdjb.mjs → provider-DiUkZYiW.mjs} +1 -1
  292. package/dist/web-components/pt-CWR30SzS.mjs +1 -0
  293. package/dist/web-components/range-regions-CqGjyM76.mjs +1 -0
  294. package/dist/web-components/read-more-D8RJYdtQ.mjs +1 -0
  295. package/dist/web-components/readingLanguages-BWOLZK2k.mjs +1 -0
  296. package/dist/web-components/rendererSurface-BkbGDL_Z.mjs +22 -0
  297. package/dist/web-components/{renderers-BMSWEFUR.mjs → renderers-LtRX5pT0.mjs} +1 -1
  298. package/dist/web-components/{resource-DLHocQ1C.mjs → resource-Cfydiy4m.mjs} +1 -1
  299. package/dist/web-components/sanitize-qIOeyIww.mjs +3 -0
  300. package/dist/web-components/save-file-dZyOpXgY.mjs +1 -0
  301. package/dist/web-components/search-BfUZJM3a.mjs +1 -0
  302. package/dist/web-components/sequence-C28xoNmD.mjs +1 -0
  303. package/dist/web-components/shared-DkY2a89G.mjs +1 -0
  304. package/dist/web-components/{show-link-CyzYE1eS.mjs → show-link-DgLJzG7k.mjs} +1 -1
  305. package/dist/web-components/{sizedImage-uv_NlE0l.mjs → sizedImage-NHzhcBYk.mjs} +1 -1
  306. package/dist/web-components/{split-CYuMjp89.mjs → split-CuFiKjin.mjs} +1 -1
  307. package/dist/web-components/{status-Ms5L0ghK.mjs → status-C3etlkhY.mjs} +1 -1
  308. package/dist/web-components/styles-DkkVOSUQ.mjs +1 -0
  309. package/dist/web-components/three.mjs +1 -1
  310. package/dist/web-components/thumbnail-DecrVnpj.mjs +1 -0
  311. package/dist/web-components/{tip-dWhupWSr.mjs → tip-D5YgaIWW.mjs} +1 -1
  312. package/dist/web-components/{toggle-BQTjR1I3.mjs → toggle-CZGB65VZ.mjs} +1 -1
  313. package/dist/web-components/upgrade-eNW0DPXq.mjs +1 -0
  314. package/dist/web-components/upgrader-BlbMUEH6.mjs +1 -0
  315. package/dist/web-components/useContainerName-hKQjEt7a.mjs +1 -0
  316. package/dist/web-components/useControlsVisibility-DPg8uAkW.mjs +1 -0
  317. package/dist/web-components/useLazyPanelPane-eby-OI1V.mjs +1 -0
  318. package/dist/web-components/useNearViewport-CDbHQUBk.mjs +1 -0
  319. package/dist/web-components/useScrollTrack-D9l_P3_B.mjs +1 -0
  320. package/dist/web-components/viewer/AnnotationItems-DtsnDXPM.mjs +1 -0
  321. package/dist/web-components/viewer/AnnotationMenu-C-Mz6CCn.mjs +1 -0
  322. package/dist/web-components/viewer/AnnotationState-5pim5K72.mjs +1 -0
  323. package/dist/web-components/viewer/Annotations-Cqn1TkzD.mjs +2 -0
  324. package/dist/web-components/viewer/Annotations-CxwN9FkB.mjs +1 -0
  325. package/dist/web-components/viewer/{Canvas2DBackend-CAmzJD5P.mjs → Canvas2DBackend-C-ZMSCak.mjs} +1 -1
  326. package/dist/web-components/viewer/CaptionDetails-CRD-gSZP.mjs +1 -0
  327. package/dist/web-components/viewer/ChaptersMenu-Brcq3yJv.mjs +1 -0
  328. package/dist/web-components/viewer/ChoiceMenu-ByGzQQx1.mjs +1 -0
  329. package/dist/web-components/viewer/Collection-m0GCcsfQ.mjs +1 -0
  330. package/dist/web-components/viewer/Connected-Bmc_CdUD.mjs +1 -0
  331. package/dist/web-components/viewer/Connected-Dvx7wtot.mjs +1 -0
  332. package/dist/web-components/viewer/Contents-CwDpfiJY.mjs +1 -0
  333. package/dist/web-components/viewer/ControlMenu-TcO85hDf.mjs +1 -0
  334. package/dist/web-components/viewer/ControlsFade-BoZ4ABAE.mjs +1 -0
  335. package/dist/web-components/viewer/CountMenu-0-ie8kIZ.mjs +1 -0
  336. package/dist/web-components/viewer/Cue-DxmAS9Gx.mjs +1 -0
  337. package/dist/web-components/viewer/Document-BsryuYJ1.mjs +1 -0
  338. package/dist/web-components/viewer/{DomLayers-DRdQSEtN.mjs → DomLayers-hc0qARQc.mjs} +1 -1
  339. package/dist/web-components/viewer/Download-MO-1Rik4.mjs +1 -0
  340. package/dist/web-components/viewer/EntryBodies-g-OEwEsk.mjs +1 -0
  341. package/dist/web-components/viewer/EntryThumbnail-DcIDYATi.mjs +1 -0
  342. package/dist/web-components/viewer/FieldPill-B9S21lxw.mjs +1 -0
  343. package/dist/web-components/viewer/FrameAnimation-qI9cZPEs.mjs +1 -0
  344. package/dist/web-components/viewer/Gallery-BOgUqfqw.mjs +1 -0
  345. package/dist/web-components/viewer/HideToggle-D8wH49mq.mjs +1 -0
  346. package/dist/web-components/viewer/ImageControls-ZoEC9jWd.mjs +1 -0
  347. package/dist/web-components/viewer/LanguageChoice-CRqsCBAp.mjs +1 -0
  348. package/dist/web-components/viewer/LightboxView-BB-GcbYr.mjs +1 -0
  349. package/dist/web-components/viewer/ListEnd-D9Obxie4.mjs +1 -0
  350. package/dist/web-components/viewer/MapView-DQSwUzd7.mjs +3 -0
  351. package/dist/web-components/viewer/MediaBody-CIw2nTlj.mjs +1 -0
  352. package/dist/web-components/viewer/MediaBody-D5ff6xy-.mjs +1 -0
  353. package/dist/web-components/viewer/NavDate-BnfDG57h.mjs +1 -0
  354. package/dist/web-components/viewer/{Navigator-CKwDgG2x.mjs → Navigator-BNwjmkXY.mjs} +1 -1
  355. package/dist/web-components/viewer/PagerLayout-C8jraHqs.mjs +1 -0
  356. package/dist/web-components/viewer/PanelPart-YNbBI9SQ.mjs +1 -0
  357. package/dist/web-components/viewer/PartOfManifest-DX7H0V4g.mjs +1 -0
  358. package/dist/web-components/viewer/PlaceBox-CCWfzsNU.mjs +1 -0
  359. package/dist/web-components/viewer/Placeholder-CsEkLhz7.mjs +1 -0
  360. package/dist/web-components/viewer/Search-CsdYzdq1.mjs +1 -0
  361. package/dist/web-components/viewer/StandaloneItems-BfvBxbUm.mjs +1 -0
  362. package/dist/web-components/viewer/Steps-BH8ZApS4.mjs +1 -0
  363. package/dist/web-components/viewer/TargetItems-BebPFr-c.mjs +1 -0
  364. package/dist/web-components/viewer/Transcript-DXLv5WR9.mjs +1 -0
  365. package/dist/web-components/viewer/Transport-C-fh7Kx2.mjs +1 -0
  366. package/dist/web-components/viewer/Transport-CY6BWfMi.mjs +1 -0
  367. package/dist/web-components/viewer/annotation-collection-Cjd8Dgyl.mjs +1 -0
  368. package/dist/web-components/viewer/annotation-name-CwmgQFia.mjs +1 -0
  369. package/dist/web-components/viewer/annotations-content-BARXoAz-.mjs +1 -0
  370. package/dist/web-components/viewer/cloverEngine-CumnJPKO.mjs +164 -0
  371. package/dist/web-components/viewer/content-state-reader-DuvyLThu.mjs +1 -0
  372. package/dist/web-components/viewer/dragToClose-CFCxhUxn.mjs +1 -0
  373. package/dist/web-components/viewer/fetchManifest-qNB_KgxL.mjs +1 -0
  374. package/dist/web-components/viewer/{host-DlCltI_c.mjs → host-GTHX2fPK.mjs} +1 -1
  375. package/dist/web-components/viewer/image-layers-DKOuaRTj.mjs +1 -0
  376. package/dist/web-components/viewer/index.mjs +1 -1
  377. package/dist/web-components/viewer/link-BlaM0tCa.mjs +1 -0
  378. package/dist/web-components/viewer/overlayImage-RVpv69R5.mjs +1 -0
  379. package/dist/web-components/viewer/range-regions-CIZiAHOp.mjs +1 -0
  380. package/dist/web-components/viewer/{renderers-C_wdmw9v.mjs → renderers-Dw1klwlx.mjs} +1 -1
  381. package/dist/web-components/viewer/save-file-EvzaBEJN.mjs +1 -0
  382. package/dist/web-components/viewer/{search-BHLyNxZ6.mjs → search-x1QL_bth.mjs} +1 -1
  383. package/dist/web-components/viewer/styles-I7_LWFGj.mjs +1 -0
  384. package/dist/web-components/viewer/useControlsVisibility-C_SQHIVR.mjs +1 -0
  385. package/dist/web-components/viewer/useLazyPanelPane-UuGDJrf_.mjs +1 -0
  386. package/dist/web-components/viewer/viewer-DJrQuNs1.mjs +29 -0
  387. package/dist/web-components/viewer/{vtt-XiS_-5Ao.mjs → vtt-C2G89SWH.mjs} +1 -1
  388. package/dist/web-components/viewer-Br44EEba.mjs +1 -0
  389. package/dist/web-components/{vtt-DYAOuQoK.mjs → vtt-Dd0c7psH.mjs} +1 -1
  390. package/package.json +8 -4
  391. package/dist/i18n/reader.mjs +0 -13
  392. package/dist/templates/shared/LightboxBody.mjs +0 -9
  393. package/dist/web-components/About-DbrFSVBm.mjs +0 -1
  394. package/dist/web-components/AnnotationMenu-EBjIQpQl.mjs +0 -1
  395. package/dist/web-components/AnnotationState-DQTaO6Gz.mjs +0 -1
  396. package/dist/web-components/Annotations-Cb9U7HJ_.mjs +0 -2
  397. package/dist/web-components/Annotations-Dl0SgHBS.mjs +0 -1
  398. package/dist/web-components/Body-DxSz3iST.mjs +0 -1
  399. package/dist/web-components/BodyAlert-C8EOXz24.mjs +0 -1
  400. package/dist/web-components/Button-uWgfvqsL.mjs +0 -1
  401. package/dist/web-components/CanvasView-BI3YzNdK.mjs +0 -1
  402. package/dist/web-components/CaptionDetails-B80ZhZ7v.mjs +0 -1
  403. package/dist/web-components/ChoiceMenu-DCp7-co7.mjs +0 -1
  404. package/dist/web-components/Collection-B1Le2_TU.mjs +0 -1
  405. package/dist/web-components/CollectionSelect-BL_jQog-.mjs +0 -1
  406. package/dist/web-components/Connected-BxqaRL9o.mjs +0 -1
  407. package/dist/web-components/Connected-DCBI-j9H.mjs +0 -1
  408. package/dist/web-components/Connected-DkhfVWxd.mjs +0 -1
  409. package/dist/web-components/Contents-zYEGHLfe.mjs +0 -1
  410. package/dist/web-components/ControlMenu-CAHiLAtl.mjs +0 -1
  411. package/dist/web-components/Cue-BT2V9VAq.mjs +0 -1
  412. package/dist/web-components/Document-BdCjGnJN.mjs +0 -1
  413. package/dist/web-components/DocumentPanel-X_Rta0Wu.mjs +0 -1
  414. package/dist/web-components/Download-DqU-goFi.mjs +0 -1
  415. package/dist/web-components/EntryBodies-DXAQH0vR.mjs +0 -1
  416. package/dist/web-components/ErrorBoundary-chQaO-Up.mjs +0 -1
  417. package/dist/web-components/FieldPill-CyEssPVm.mjs +0 -1
  418. package/dist/web-components/FrameAnimation-Bb0pOoRl.mjs +0 -1
  419. package/dist/web-components/Gallery-BXU3TcT3.mjs +0 -1
  420. package/dist/web-components/HideToggle-BwMrOBMu.mjs +0 -1
  421. package/dist/web-components/Items-DRj1UEpC.mjs +0 -1
  422. package/dist/web-components/Label-D6aVJB9s.mjs +0 -1
  423. package/dist/web-components/LightboxBody-BzXQGMDn.mjs +0 -1
  424. package/dist/web-components/LoadedCanvas-DOjtxLSe.mjs +0 -1
  425. package/dist/web-components/LoadedMap-DouDS2lO.mjs +0 -1
  426. package/dist/web-components/MapView-CD5zkTs8.mjs +0 -1
  427. package/dist/web-components/Markup-C1hMA8wk.mjs +0 -2
  428. package/dist/web-components/MediaBody-B_Gii4we.mjs +0 -1
  429. package/dist/web-components/MediaBody-BfrKIPte.mjs +0 -1
  430. package/dist/web-components/Pager-Di_2hHM3.mjs +0 -1
  431. package/dist/web-components/Panel-DbsC8A9V.mjs +0 -1
  432. package/dist/web-components/PartOfManifest-7eOwURrF.mjs +0 -1
  433. package/dist/web-components/Primitives-XQO3m1wG.mjs +0 -1
  434. package/dist/web-components/Provider-B61118lU.mjs +0 -1
  435. package/dist/web-components/ReadMore-BJH-qqte.mjs +0 -1
  436. package/dist/web-components/Root-Dj277K6p.mjs +0 -1
  437. package/dist/web-components/Scene-BTWpLeec.mjs +0 -1
  438. package/dist/web-components/SceneView-BYo7WmPt.mjs +0 -1
  439. package/dist/web-components/Search-ZV8FFN4p.mjs +0 -1
  440. package/dist/web-components/Sections-ejwu1_Sm.mjs +0 -2
  441. package/dist/web-components/StandaloneItems-BYaiyCca.mjs +0 -1
  442. package/dist/web-components/Status-YbQK2KzY.mjs +0 -1
  443. package/dist/web-components/Timeline-ByyVSd7B.mjs +0 -1
  444. package/dist/web-components/Tip-IO11xX4x.mjs +0 -1
  445. package/dist/web-components/Transcript-D0gUxUoA.mjs +0 -1
  446. package/dist/web-components/annotation-collection-Csv7WIlm.mjs +0 -1
  447. package/dist/web-components/annotations-content-BS_OFz5Z.mjs +0 -1
  448. package/dist/web-components/body-CKjwwFep.mjs +0 -1
  449. package/dist/web-components/canvas-CIzpp-Uz.mjs +0 -1
  450. package/dist/web-components/cloverEngine-B4LinbSt.mjs +0 -164
  451. package/dist/web-components/content-state-reader-D1BkpICh.mjs +0 -1
  452. package/dist/web-components/dragToClose-C-Pf1IeO.mjs +0 -1
  453. package/dist/web-components/es-BwMkoRod.mjs +0 -1
  454. package/dist/web-components/fi-gPFOn9RK.mjs +0 -1
  455. package/dist/web-components/fr-DUHmgdJo.mjs +0 -1
  456. package/dist/web-components/fromManifest-BhemHaoA.mjs +0 -1
  457. package/dist/web-components/glyphs-drROkef9.mjs +0 -1
  458. package/dist/web-components/hooks-BXzQSllm.mjs +0 -1
  459. package/dist/web-components/index-B7nZdqLg.mjs +0 -1
  460. package/dist/web-components/items-CB2Uk7ts.mjs +0 -1
  461. package/dist/web-components/items-jfQ5XzEj.mjs +0 -1
  462. package/dist/web-components/keep-fragments-B5nlv2ck.mjs +0 -1
  463. package/dist/web-components/label-Vbg_cMOJ.mjs +0 -1
  464. package/dist/web-components/layout-mMHI0lsj.mjs +0 -1
  465. package/dist/web-components/link-ZRnv5NFR.mjs +0 -1
  466. package/dist/web-components/logo-Boy6u4m2.mjs +0 -1
  467. package/dist/web-components/models-D1EE_CmH.mjs +0 -1
  468. package/dist/web-components/nb-BSvnQ6jd.mjs +0 -1
  469. package/dist/web-components/nn-Dg2_HdZu.mjs +0 -1
  470. package/dist/web-components/no-BSvnQ6jd.mjs +0 -1
  471. package/dist/web-components/panClearOfControls-ac9uf-Qs.mjs +0 -1
  472. package/dist/web-components/part-cUiPs2-y.mjs +0 -1
  473. package/dist/web-components/playerSurface-CU5XxI1j.mjs +0 -1
  474. package/dist/web-components/pt-B3J80JgO.mjs +0 -1
  475. package/dist/web-components/read-more-DNHNtG-a.mjs +0 -1
  476. package/dist/web-components/rendererSurface-DhIlOjGT.mjs +0 -22
  477. package/dist/web-components/sanitize-Dc7nOsgO.mjs +0 -3
  478. package/dist/web-components/search-CLy2Wj01.mjs +0 -1
  479. package/dist/web-components/shared-YUjOSBKO.mjs +0 -1
  480. package/dist/web-components/styles-CyuM_fB1.mjs +0 -1
  481. package/dist/web-components/thumbnail-c2K_iQsD.mjs +0 -1
  482. package/dist/web-components/time-B9GZoYcm.mjs +0 -1
  483. package/dist/web-components/upgrader-XNxI-5jo.mjs +0 -1
  484. package/dist/web-components/useContainerName-BpJ3IWY0.mjs +0 -1
  485. package/dist/web-components/useNearViewport-CtLyYg9n.mjs +0 -1
  486. package/dist/web-components/useScrollTrack-WbG28FPD.mjs +0 -1
  487. package/dist/web-components/viewer/AnnotationMenu-ZKyBeyUU.mjs +0 -1
  488. package/dist/web-components/viewer/AnnotationState-DO33zokc.mjs +0 -1
  489. package/dist/web-components/viewer/Annotations-BOjhr5ks.mjs +0 -1
  490. package/dist/web-components/viewer/Annotations-DkLueFLK.mjs +0 -2
  491. package/dist/web-components/viewer/CaptionDetails-DOJlUtOn.mjs +0 -1
  492. package/dist/web-components/viewer/ChoiceMenu-BDq6H34G.mjs +0 -1
  493. package/dist/web-components/viewer/Collection-By3puO0V.mjs +0 -1
  494. package/dist/web-components/viewer/Connected-DZNO2CPf.mjs +0 -1
  495. package/dist/web-components/viewer/Connected-ESg5y49m.mjs +0 -1
  496. package/dist/web-components/viewer/Contents-B_FqDwTW.mjs +0 -1
  497. package/dist/web-components/viewer/ControlMenu-DdQl-dTf.mjs +0 -1
  498. package/dist/web-components/viewer/Cue-BTRHfiWQ.mjs +0 -1
  499. package/dist/web-components/viewer/Document-B9_PyD2w.mjs +0 -1
  500. package/dist/web-components/viewer/DocumentPanel-CtEJVPoE.mjs +0 -1
  501. package/dist/web-components/viewer/EntryBodies-CJuTRcTq.mjs +0 -1
  502. package/dist/web-components/viewer/FieldPill-06uwrNwE.mjs +0 -1
  503. package/dist/web-components/viewer/FrameAnimation-3dcDHf5q.mjs +0 -1
  504. package/dist/web-components/viewer/Gallery-BYasTqZc.mjs +0 -1
  505. package/dist/web-components/viewer/HideToggle-BxkNMX-T.mjs +0 -1
  506. package/dist/web-components/viewer/LightboxBody-CXMc1xOH.mjs +0 -1
  507. package/dist/web-components/viewer/MapView-DCerrRRV.mjs +0 -1
  508. package/dist/web-components/viewer/MediaBody-BdkJcyGy.mjs +0 -1
  509. package/dist/web-components/viewer/MediaBody-waF4KvHp.mjs +0 -1
  510. package/dist/web-components/viewer/PartOfManifest-DalHJFwC.mjs +0 -1
  511. package/dist/web-components/viewer/Search-Di_QQfDb.mjs +0 -1
  512. package/dist/web-components/viewer/StandaloneItems-B9J6nnWn.mjs +0 -1
  513. package/dist/web-components/viewer/Transcript-aHOixfna.mjs +0 -1
  514. package/dist/web-components/viewer/annotation-collection-I2UkdobR.mjs +0 -1
  515. package/dist/web-components/viewer/annotations-content-D-i4j9pD.mjs +0 -1
  516. package/dist/web-components/viewer/cloverEngine-CynoKdta.mjs +0 -164
  517. package/dist/web-components/viewer/content-state-reader-D7GIMcKK.mjs +0 -1
  518. package/dist/web-components/viewer/link-BX-wzj1u.mjs +0 -1
  519. package/dist/web-components/viewer/overlayImage-CHqn1fG8.mjs +0 -1
  520. package/dist/web-components/viewer/styles-BRCkEU3w.mjs +0 -1
  521. package/dist/web-components/viewer/viewer-ipqAA-xQ.mjs +0 -28
  522. package/dist/web-components/viewer-DEHIsIHd.mjs +0 -1
  523. /package/dist/{ui → i18n}/languageCode.mjs +0 -0
@@ -0,0 +1,164 @@
1
+ import{c as ne,F as ae,i as se,M as ie}from"./models-BF2pqufA.mjs";import{au as ce,a1 as ue}from"./shared-DkY2a89G.mjs";const le=["KHR_materials_unlit","KHR_materials_ior","KHR_materials_specular","KHR_mesh_quantization"],Z=1179937895,fe=1313821514,de=5130562;function me(e){const s=new DataView(e);if(s.getUint32(0,true)!==Z)throw new Error("This is not a GLB.");if(s.getUint32(4,true)!==2)throw new Error("Only glTF 2.0 is drawn.");let o,t;const n=Math.min(s.getUint32(8,true),e.byteLength);for(let a=12;a+8<=n;){const i=s.getUint32(a,true),l=s.getUint32(a+4,true),c=a+8;l===fe?o=JSON.parse(new TextDecoder().decode(new Uint8Array(e,c,i))):l===de&&(t=e.slice(c,c+i)),a=c+i}if(!o)throw new Error("The GLB has no JSON chunk.");return{json:o,bin:t}}async function z(e,s,o){const t=new URL(e,s).href,n=t.startsWith("data:")?await fetch(t):await ue(o,t);if(!n.ok)throw new Error(`${t} answered ${n.status}`);return n.arrayBuffer()}const $=new WeakMap;function ve(e,s,o){const t=(s==null?void 0:s.fetch)??globalThis.fetch,n=$.get(t)??new Map;$.set(t,n);const a=`${ce(s)} ${o??""} ${e}`;let i=n.get(a);return i||(i=he(e,s,o).finally(()=>n.delete(a)),n.set(a,i)),i}async function he(e,s,o){const t=await z(e,location.href,s),n=new DataView(t).getUint32(0,true)===Z,{json:a,bin:i}=n?me(t):{json:JSON.parse(new TextDecoder().decode(t))},l=(a.extensionsRequired??[]).filter(f=>!le.includes(f));if(l.length)throw new Error(`Clover's renderer cannot draw this model: it requires ${l.join(", ")}.`);const c=await Promise.all((a.buffers??[]).map((f,r)=>{if(f.uri!==void 0)return z(f.uri,e,s);if(r===0&&i)return i;throw new Error("A buffer of the model has no data.")})),u=await Promise.all((a.images??[]).map(async f=>{try{let r;if(f.bufferView!==void 0){const d=a.bufferViews[f.bufferView];r=new Blob([new Uint8Array(c[d.buffer],d.byteOffset??0,d.byteLength)],{type:f.mimeType})}else if(f.uri!==void 0)r=new Blob([await z(f.uri,e,s)],{type:f.mimeType});else return null;const m={premultiplyAlpha:"none",colorSpaceConversion:"none"};return await pe(await createImageBitmap(r,m),o,m)}catch{return null}}));return{json:a,buffers:c,images:u}}async function pe(e,s,o){const t=Math.max(e.width,e.height);if(!s||t<=s)return e;const n=s/t,a=await createImageBitmap(e,{...o,resizeWidth:Math.max(1,Math.floor(e.width*n)),resizeHeight:Math.max(1,Math.floor(e.height*n)),resizeQuality:"high"});return e.close(),a}const we={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},Ee={5120:1,5121:1,5122:2,5123:2,5125:4,5126:4},q=e=>we[e];function Te(e,s){const o=e.json.accessors[s],t=q(o.type),n=new Float32Array(o.count*t);if(o.bufferView===void 0)return n;const a=e.json.bufferViews[o.bufferView],i=Ee[o.componentType],l=a.byteStride||i*t,c=new DataView(e.buffers[a.buffer],(a.byteOffset??0)+(o.byteOffset??0)),u={5120:r=>c.getInt8(r),5121:r=>c.getUint8(r),5122:r=>c.getInt16(r,true),5123:r=>c.getUint16(r,true),5125:r=>c.getUint32(r,true),5126:r=>c.getFloat32(r,true)}[o.componentType]??(()=>0),f=o.normalized?{5120:127,5121:255,5122:32767,5123:65535}[o.componentType]:void 0;for(let r=0;r<o.count;r++)for(let m=0;m<t;m++){const d=u(r*l+m*i);n[r*t+m]=f?Math.max(d/f,-1):d}return n}const ee=()=>new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]);function I(e,s){const o=new Float32Array(16);for(let t=0;t<4;t++)for(let n=0;n<4;n++){let a=0;for(let i=0;i<4;i++)a+=e[i*4+n]*s[t*4+i];o[t*4+n]=a}return o}function X([e,s,o],[t,n,a,i],[l,c,u]){const f=t+t,r=n+n,m=a+a,d=t*f,M=t*r,p=t*m,w=n*r,S=n*m,y=a*m,k=i*f,L=i*r,O=i*m;return new Float32Array([(1-(w+y))*l,(M+O)*l,(p-L)*l,0,(M-O)*c,(1-(d+y))*c,(S+k)*c,0,(p+L)*u,(S-k)*u,(1-(d+w))*u,0,e,s,o,1])}const K=e=>X(e,[0,0,0,1],[1,1,1]),xe=e=>X([0,0,0],[0,0,0,1],e);function be([e,s,o]){const t=(n,a)=>{const i=a*Math.PI/180,l=Math.cos(i),c=Math.sin(i),u=ee(),[f,r]=n===0?[1,2]:n===1?[2,0]:[0,1];return u[f*4+f]=l,u[f*4+r]=c,u[r*4+f]=-c,u[r*4+r]=l,u};return I(t(2,o),I(t(1,s),t(0,e)))}function ye(e,s,o,t){const n=1/Math.tan(e/2),a=1/(o-t);return new Float32Array([n/s,0,0,0,0,n,0,0,0,0,(t+o)*a,-1,0,0,2*t*o*a,0])}function Ae(e,s){const o=c=>{const u=Math.hypot(...c)||1;return[c[0]/u,c[1]/u,c[2]/u]},t=(c,u)=>[c[1]*u[2]-c[2]*u[1],c[2]*u[0]-c[0]*u[2],c[0]*u[1]-c[1]*u[0]],n=(c,u)=>c[0]*u[0]+c[1]*u[1]+c[2]*u[2],a=o([e[0]-s[0],e[1]-s[1],e[2]-s[2]]),i=o(t([0,1,0],a)),l=t(a,i);return new Float32Array([i[0],l[0],a[0],0,i[1],l[1],a[1],0,i[2],l[2],a[2],0,-n(i,e),-n(l,e),-n(a,e),1])}function Re(e){const[s,o,t,,n,a,i,,l,c,u]=e,f=a*u-i*c,r=i*l-n*u,m=n*c-a*l,d=s*f+o*r+t*m||1;return new Float32Array([f/d,r/d,m/d,(t*c-o*u)/d,(s*u-t*l)/d,(o*l-s*c)/d,(o*i-t*a)/d,(t*n-s*i)/d,(s*a-o*n)/d])}const Me=()=>({min:[1/0,1/0,1/0],max:[-1/0,-1/0,-1/0]});function _e(e){for(let s=0;s<3;s++){let o=0;for(let t=0;t<3;t++)Math.abs(e[s*4+t])>1e-6&&o++;if(o>1)return false}return true}function Ne(e,s,o,t){const n=s.json.accessors[o];let a;if(_e(t)&&n.min&&n.max&&!n.normalized){const[l,c]=[n.min,n.max];a=Array.from({length:8},(u,f)=>[f&1?c[0]:l[0],f&2?c[1]:l[1],f&4?c[2]:l[2]]).flat()}else a=Te(s,o);const i=t;for(let l=0;l+2<a.length;l+=3){const c=a[l],u=a[l+1],f=a[l+2];for(let r=0;r<3;r++){const m=i[r]*c+i[4+r]*u+i[8+r]*f+i[12+r];m<e.min[r]&&(e.min[r]=m),m>e.max[r]&&(e.max[r]=m)}}return e}const C={normals:1,normalMap:2,unlit:4,mask:8},Y={POSITION:0,NORMAL:1,TEXCOORD_0:2,COLOR_0:3},J=["uBaseTexture","uMetalRoughTexture","uNormalTexture","uOcclusionTexture","uEmissiveTexture"],Se=`#version 300 es
2
+ layout(location = 0) in vec3 aPosition;
3
+ layout(location = 1) in vec3 aNormal;
4
+ layout(location = 2) in vec2 aUv;
5
+ layout(location = 3) in vec4 aColor;
6
+ uniform mat4 uModel;
7
+ uniform mat4 uViewProjection;
8
+ uniform mat3 uNormalMatrix;
9
+ out vec3 vWorld;
10
+ out vec3 vNormal;
11
+ out vec2 vUv;
12
+ out vec4 vColor;
13
+ void main() {
14
+ vec4 world = uModel * vec4(aPosition, 1.0);
15
+ vWorld = world.xyz;
16
+ vNormal = uNormalMatrix * aNormal;
17
+ vUv = aUv;
18
+ vColor = aColor;
19
+ gl_Position = uViewProjection * world;
20
+ }`,Ue=`#version 300 es
21
+ precision highp float;
22
+ in vec3 vWorld;
23
+ in vec3 vNormal;
24
+ in vec2 vUv;
25
+ in vec4 vColor;
26
+ uniform vec3 uCamera;
27
+ uniform vec4 uBaseColor;
28
+ uniform vec3 uSpecular;
29
+ uniform float uMetallic;
30
+ uniform float uRoughness;
31
+ uniform float uNormalScale;
32
+ uniform float uOcclusionStrength;
33
+ uniform vec3 uEmissive;
34
+ uniform float uAlphaCutoff;
35
+ uniform int uFlags;
36
+ uniform sampler2D uBaseTexture;
37
+ uniform sampler2D uMetalRoughTexture;
38
+ uniform sampler2D uNormalTexture;
39
+ uniform sampler2D uOcclusionTexture;
40
+ uniform sampler2D uEmissiveTexture;
41
+ out vec4 outColor;
42
+
43
+ const float PI = 3.14159265;
44
+ const float LAMP = 3.0;
45
+ // The room: a sky and a ground for the light all around, and three lights in it.
46
+ const vec3 SKY = vec3(0.73);
47
+ const vec3 GROUND = vec3(0.58);
48
+ const vec3 LIGHTS[3] = vec3[3](
49
+ normalize(vec3(0.3, 0.7, 0.9)),
50
+ normalize(vec3(-0.8, 0.35, 0.5)),
51
+ normalize(vec3(0.2, 0.4, -1.0))
52
+ );
53
+ const vec3 RADIANCE[3] = vec3[3](vec3(1.2), vec3(0.3), vec3(0.4));
54
+
55
+ vec3 room(vec3 direction) {
56
+ return mix(GROUND, SKY, direction.y * 0.5 + 0.5);
57
+ }
58
+
59
+ // What a surface reflects of the room: its sky and ground, and its lamps, soft panels a
60
+ // glossy surface mirrors and a rough one only glows with.
61
+ const vec3 LAMPS[3] = vec3[3](
62
+ normalize(vec3(0.0, 1.0, 0.3)),
63
+ normalize(vec3(-1.0, 0.5, 0.4)),
64
+ normalize(vec3(1.0, 0.35, -0.3))
65
+ );
66
+ vec3 reflected(vec3 direction, float roughness) {
67
+ vec3 color = room(direction);
68
+ float spread = mix(0.04, 0.9, roughness);
69
+ for (int i = 0; i < 3; i++) {
70
+ float c = dot(direction, LAMPS[i]);
71
+ color += vec3(LAMP) * smoothstep(1.0 - spread, 1.0 - spread * 0.35, c) * (1.0 - 0.85 * roughness);
72
+ }
73
+ return color;
74
+ }
75
+
76
+ // A normal map's normal, in the frame its texture coordinates make (no tangents read).
77
+ vec3 mapped(vec3 n) {
78
+ vec3 tangentNormal = texture(uNormalTexture, vUv).xyz * 2.0 - 1.0;
79
+ tangentNormal.xy *= vec2(uNormalScale, -uNormalScale);
80
+ vec3 dp1 = dFdx(vWorld);
81
+ vec3 dp2 = dFdy(vWorld);
82
+ vec2 duv1 = dFdx(vUv);
83
+ vec2 duv2 = dFdy(vUv);
84
+ vec3 dp2perp = cross(dp2, n);
85
+ vec3 dp1perp = cross(n, dp1);
86
+ vec3 t = dp2perp * duv1.x + dp1perp * duv2.x;
87
+ vec3 b = dp2perp * duv1.y + dp1perp * duv2.y;
88
+ float scale = inversesqrt(max(dot(t, t), dot(b, b)) + 1e-12);
89
+ return normalize(mat3(t * scale, b * scale, n) * tangentNormal);
90
+ }
91
+
92
+ vec3 neutral(vec3 color) {
93
+ const float start = 0.8 - 0.04;
94
+ const float desaturation = 0.15;
95
+ float x = min(color.r, min(color.g, color.b));
96
+ float offset = x < 0.08 ? x - 6.25 * x * x : 0.04;
97
+ color -= offset;
98
+ float peak = max(color.r, max(color.g, color.b));
99
+ if (peak < start) return color;
100
+ float d = 1.0 - start;
101
+ float newPeak = 1.0 - d * d / (peak + d - start);
102
+ color *= newPeak / peak;
103
+ float g = 1.0 - 1.0 / (desaturation * (peak - newPeak) + 1.0);
104
+ return mix(color, vec3(newPeak), g);
105
+ }
106
+
107
+ vec3 srgb(vec3 linear) {
108
+ return mix(
109
+ linear * 12.92,
110
+ 1.055 * pow(linear, vec3(1.0 / 2.4)) - 0.055,
111
+ step(0.0031308, linear)
112
+ );
113
+ }
114
+
115
+ void main() {
116
+ vec4 base = uBaseColor * texture(uBaseTexture, vUv) * vColor;
117
+ if ((uFlags & ${C.mask}) != 0 && base.a < uAlphaCutoff) discard;
118
+ if ((uFlags & ${C.unlit}) != 0) {
119
+ outColor = vec4(srgb(base.rgb) * base.a, base.a);
120
+ return;
121
+ }
122
+ // No normals given: the face's own, as glTF asks.
123
+ vec3 n = (uFlags & ${C.normals}) != 0
124
+ ? normalize(vNormal)
125
+ : normalize(cross(dFdx(vWorld), dFdy(vWorld)));
126
+ if (!gl_FrontFacing) n = -n;
127
+ if ((uFlags & ${C.normalMap}) != 0) n = mapped(n);
128
+ vec3 v = normalize(uCamera - vWorld);
129
+ vec4 metalRough = texture(uMetalRoughTexture, vUv);
130
+ float roughness = clamp(uRoughness * metalRough.g, 0.045, 1.0);
131
+ float metallic = clamp(uMetallic * metalRough.b, 0.0, 1.0);
132
+ vec3 diffuse = base.rgb * (1.0 - metallic);
133
+ vec3 f0 = mix(uSpecular, base.rgb, metallic);
134
+ float a = roughness * roughness;
135
+ float nv = clamp(dot(n, v), 1e-4, 1.0);
136
+ vec3 color = vec3(0.0);
137
+ for (int i = 0; i < 3; i++) {
138
+ vec3 l = LIGHTS[i];
139
+ float nl = clamp(dot(n, l), 0.0, 1.0);
140
+ if (nl <= 0.0) continue;
141
+ vec3 h = normalize(l + v);
142
+ float nh = clamp(dot(n, h), 0.0, 1.0);
143
+ float vh = clamp(dot(v, h), 0.0, 1.0);
144
+ float a2 = a * a;
145
+ float dd = nh * nh * (a2 - 1.0) + 1.0;
146
+ float distribution = a2 / (PI * dd * dd);
147
+ float viewed = nl * sqrt(nv * nv * (1.0 - a2) + a2);
148
+ float lit = nv * sqrt(nl * nl * (1.0 - a2) + a2);
149
+ float visibility = 0.5 / (viewed + lit + 1e-5);
150
+ vec3 fresnel = f0 + (1.0 - f0) * pow(1.0 - vh, 5.0);
151
+ vec3 specular = fresnel * distribution * visibility;
152
+ color += ((1.0 - fresnel) * diffuse + PI * specular) * RADIANCE[i] * nl;
153
+ }
154
+ // The room's light all around: diffuse, and what a rough or smooth surface reflects of it.
155
+ vec4 c0 = vec4(-1.0, -0.0275, -0.572, 0.022);
156
+ vec4 c1 = vec4(1.0, 0.0425, 1.04, -0.04);
157
+ vec4 r = roughness * c0 + c1;
158
+ float a004 = min(r.x * r.x, exp2(-9.28 * nv)) * r.x + r.y;
159
+ vec2 ab = vec2(-1.04, 1.04) * a004 + r.zw;
160
+ float occlusion = mix(1.0, texture(uOcclusionTexture, vUv).r, uOcclusionStrength);
161
+ color += (diffuse * room(n) + (f0 * ab.x + ab.y) * reflected(reflect(-v, n), roughness)) * occlusion;
162
+ color += uEmissive * texture(uEmissiveTexture, vUv).rgb;
163
+ outColor = vec4(srgb(neutral(color)) * base.a, base.a);
164
+ }`,Q=10497,Fe=9729,Ce=new Set([9984,9985,9986,9987]);function Pe(e){const s=e.createProgram();for(const[o,t]of[[e.VERTEX_SHADER,Se],[e.FRAGMENT_SHADER,Ue]]){const n=e.createShader(o);e.shaderSource(n,t),e.compileShader(n),e.attachShader(s,n),e.deleteShader(n)}if(e.linkProgram(s),!e.getProgramParameter(s,e.LINK_STATUS))throw new Error(`The 3D view's shaders would not build: ${e.getProgramInfoLog(s)}`);return s}function Ie(e){const s=Pe(e),o=r=>e.getUniformLocation(s,r),t=Object.fromEntries(["uModel","uViewProjection","uNormalMatrix","uCamera","uBaseColor","uSpecular","uMetallic","uRoughness","uNormalScale","uOcclusionStrength","uEmissive","uAlphaCutoff","uFlags",...J].map(r=>[r,o(r)]));e.useProgram(s),J.forEach((r,m)=>e.uniform1i(t[r],m));const n=[],a=[],i=[],l=Me(),c=e.createTexture();e.bindTexture(e.TEXTURE_2D,c),e.texImage2D(e.TEXTURE_2D,0,e.RGBA8,1,1,0,e.RGBA,e.UNSIGNED_BYTE,new Uint8Array([255,255,255,255])),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.NEAREST),a.push(c),e.vertexAttrib4f(Y.COLOR_0,1,1,1,1);function u(r,m){var G;const{json:d}=r,M=new Map,p=new Map,w=new Map,S=(E,T)=>{const v=`${E}|${T}`;let h=M.get(v);if(!h){const b=d.bufferViews[E];h=e.createBuffer(),e.bindBuffer(T,h),e.bufferData(T,new Uint8Array(r.buffers[b.buffer],b.byteOffset??0,b.byteLength),e.STATIC_DRAW),M.set(v,h),n.push(h)}return h},y=(E,T)=>{var F,N;const v=E?(F=d.textures)==null?void 0:F[E.index]:void 0,h=(v==null?void 0:v.source)!==void 0?r.images[v.source]:null;if(!E||!h)return null;const b=`${E.index}|${T}`;let _=p.get(b);if(!_){_=e.createTexture(),e.bindTexture(e.TEXTURE_2D,_),e.pixelStorei(e.UNPACK_COLORSPACE_CONVERSION_WEBGL,e.NONE),e.texImage2D(e.TEXTURE_2D,0,T?e.SRGB8_ALPHA8:e.RGBA8,e.RGBA,e.UNSIGNED_BYTE,h);const x=(v==null?void 0:v.sampler)!==void 0?(N=d.samplers)==null?void 0:N[v.sampler]:void 0,A=(x==null?void 0:x.minFilter)??e.LINEAR_MIPMAP_LINEAR;e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,A),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,(x==null?void 0:x.magFilter)??Fe),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,(x==null?void 0:x.wrapS)??Q),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,(x==null?void 0:x.wrapT)??Q),Ce.has(A)&&e.generateMipmap(e.TEXTURE_2D),p.set(b,_),a.push(_)}return _},k=E=>{var A,B,D,V,R,P;const T=E??-1;let v=w.get(T);if(v)return v;const h=E!==void 0?((A=d.materials)==null?void 0:A[E])??{}:{},b=h.pbrMetallicRoughness??{},_=y(h.normalTexture,false),F=Number(((D=(B=h.extensions)==null?void 0:B.KHR_materials_ior)==null?void 0:D.ior)??1.5),N=(V=h.extensions)==null?void 0:V.KHR_materials_specular,x=((F-1)/(F+1))**2;return v={base:b.baseColorFactor??[1,1,1,1],specular:((N==null?void 0:N.specularColorFactor)??[1,1,1]).map(g=>Math.min(x*g,1)*((N==null?void 0:N.specularFactor)??1)),metallic:b.metallicFactor??1,roughness:b.roughnessFactor??1,normalScale:((R=h.normalTexture)==null?void 0:R.scale)??1,occlusion:h.occlusionTexture?h.occlusionTexture.strength??1:0,emissive:h.emissiveFactor??[0,0,0],cutoff:h.alphaCutoff??.5,flags:(_?C.normalMap:0)|((P=h.extensions)!=null&&P.KHR_materials_unlit?C.unlit:0)|(h.alphaMode==="MASK"?C.mask:0),doubleSided:!!h.doubleSided,blend:h.alphaMode==="BLEND",textures:[y(b.baseColorTexture,true),y(b.metallicRoughnessTexture,false),_,y(h.occlusionTexture,false),y(h.emissiveTexture,true)]},w.set(T,v),v},L=(E,T)=>{var _,F,N,x;const v=(_=d.nodes)==null?void 0:_[E];if(!v)return;const h=I(T,v.matrix?new Float32Array(v.matrix):X(v.translation??[0,0,0],v.rotation??[0,0,0,1],v.scale??[1,1,1])),b=v.mesh!==void 0?(F=d.meshes)==null?void 0:F[v.mesh]:void 0;for(const A of(b==null?void 0:b.primitives)??[]){const B=A.attributes.POSITION;if(B===void 0)continue;const D=e.createVertexArray();e.bindVertexArray(D);let V=0;for(const[W,H]of Object.entries(Y)){const j=A.attributes[W],U=j!==void 0?(N=d.accessors)==null?void 0:N[j]:void 0;if(!U||U.bufferView===void 0||U.sparse)continue;const re=d.bufferViews[U.bufferView];e.bindBuffer(e.ARRAY_BUFFER,S(U.bufferView,e.ARRAY_BUFFER)),e.enableVertexAttribArray(H),e.vertexAttribPointer(H,q(U.type),U.componentType,!!U.normalized,re.byteStride??0,U.byteOffset??0),W==="NORMAL"&&(V|=C.normals)}const R=A.indices!==void 0?(x=d.accessors)==null?void 0:x[A.indices]:void 0;(R==null?void 0:R.bufferView)!==void 0&&e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,S(R.bufferView,e.ELEMENT_ARRAY_BUFFER)),e.bindVertexArray(null);const P=I(m,h),g=k(A.material);i.push({vao:D,mode:A.mode??e.TRIANGLES,count:R?R.count:d.accessors[B].count,...(R==null?void 0:R.bufferView)!==void 0?{index:{type:R.componentType,offset:R.byteOffset??0}}:{},model:P,normal:Re(P),mirrored:Oe(P)<0,material:{...g,flags:g.flags|V}}),Ne(l,r,B,P)}for(const A of v.children??[])L(A,h)},O=(G=d.scenes)==null?void 0:G[d.scene??0],te=(O==null?void 0:O.nodes)??(d.nodes??[]).map((E,T)=>T).filter(E=>!d.nodes.some(T=>{var v;return(v=T.children)==null?void 0:v.includes(E)})),oe=new Float32Array([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]);te.forEach(E=>L(E,oe)),i.sort((E,T)=>Number(E.material.blend)-Number(T.material.blend))}function f(r,m,d,M){e.viewport(0,0,d,M),e.clearColor(0,0,0,0),e.clear(e.COLOR_BUFFER_BIT|e.DEPTH_BUFFER_BIT),e.enable(e.DEPTH_TEST),e.useProgram(s),e.uniformMatrix4fv(t.uViewProjection,false,r),e.uniform3fv(t.uCamera,m);for(const p of i){const{material:w}=p;w.doubleSided?e.disable(e.CULL_FACE):e.enable(e.CULL_FACE),e.frontFace(p.mirrored?e.CW:e.CCW),w.blend?(e.enable(e.BLEND),e.blendFunc(e.ONE,e.ONE_MINUS_SRC_ALPHA),e.depthMask(false)):(e.disable(e.BLEND),e.depthMask(true)),w.textures.forEach((S,y)=>{e.activeTexture(e.TEXTURE0+y),e.bindTexture(e.TEXTURE_2D,S??c)}),e.uniformMatrix4fv(t.uModel,false,p.model),e.uniformMatrix3fv(t.uNormalMatrix,false,p.normal),e.uniform4fv(t.uBaseColor,w.base),e.uniform3fv(t.uSpecular,w.specular),e.uniform1f(t.uMetallic,w.metallic),e.uniform1f(t.uRoughness,w.roughness),e.uniform1f(t.uNormalScale,w.normalScale),e.uniform1f(t.uOcclusionStrength,w.occlusion),e.uniform3fv(t.uEmissive,w.emissive),e.uniform1f(t.uAlphaCutoff,w.cutoff),e.uniform1i(t.uFlags,w.flags),e.bindVertexArray(p.vao),p.index?e.drawElements(p.mode,p.count,p.index.type,p.index.offset):e.drawArrays(p.mode,0,p.count)}e.bindVertexArray(null),e.depthMask(true)}return{add:u,bounds:()=>i.length?l:null,draw:f,dispose(){i.forEach(r=>e.deleteVertexArray(r.vao)),n.forEach(r=>e.deleteBuffer(r)),a.forEach(r=>e.deleteTexture(r)),e.deleteProgram(s),i.length=0}}}function Oe(e){return e[0]*(e[5]*e[10]-e[6]*e[9])-e[4]*(e[1]*e[10]-e[2]*e[9])+e[8]*(e[1]*e[6]-e[2]*e[5])}const Be=2;function Le({position:e,transforms:s}){let o=ee();for(const{type:t,x:n,y:a,z:i}of s){const l=t==="scale"?xe([n,a,i]):t==="translate"?K([n,a,i]):be([n,a,i]);o=I(l,o)}return I(K(e),o)}function ke(e,{onLost:s}){const o=document.createElement("canvas");o.className="clover-canvas-surface",o.setAttribute("aria-hidden","true"),o.style.cssText="position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none";const t=o.getContext("webgl2",{antialias:true,alpha:true});if(!t)throw new Error("This browser cannot draw 3D: it offers no WebGL2.");const n=u=>{u.preventDefault(),s()};o.addEventListener("webglcontextlost",n),e.prepend(o);const a=Ie(t);let i={center:[0,0,0],radius:1},l=false;const c=()=>{const u=Math.min(globalThis.devicePixelRatio||1,Be),f=Math.round(e.clientWidth*u),r=Math.round(e.clientHeight*u);!f||!r||(o.width=f,o.height=r)};return c(),{async load(u,f){const r=u.filter(se);if(!r.length){const p=[...new Set(u.map(w=>w.format??w.src))];throw new Error(u.length?`Clover draws glTF models (${ie.join(", ")}), not ${p.join(", ")}.`:"The Scene paints no model.")}const m=t.getParameter(t.MAX_TEXTURE_SIZE),d=await Promise.all(r.map(p=>ve(p.src,f,m)));if(l)return i;d.forEach((p,w)=>a.add(p,Le(r[w])));const M=a.bounds();if(M){const p=M.min.map((S,y)=>(S+M.max[y])/2),w=Math.hypot(...M.max.map((S,y)=>S-M.min[y]))/2;i={center:p,radius:w||1}}return i},draw(u){if(l||!o.width||!o.height)return;const f=ne(u,i.center),r=Math.max(i.radius/1e3,u.distance-i.radius*2),m=u.distance+i.radius*4,d=ye(ae*Math.PI/180,o.width/o.height,r,m);a.draw(I(d,Ae(f,i.center)),f,o.width,o.height)},resize:c,dispose(){var u;l||(l=true,o.removeEventListener("webglcontextlost",n),a.dispose(),(u=t.getExtension("WEBGL_lose_context"))==null||u.loseContext(),o.remove())}}}export{ke as createEngine,Le as placement};
@@ -0,0 +1 @@
1
+ import{S as l,a9 as g}from"./shared-DkY2a89G.mjs";function b(t){const e=t.replace(/-/g,"+").replace(/_/g,"/"),n=e+"=".repeat((4-e.length%4)%4),o=atob(n);try{return decodeURIComponent(o)}catch{const a=Uint8Array.from(o,s=>s.charCodeAt(0));return new TextDecoder().decode(a)}}function I(t){const e=t.trim();for(const n of[()=>JSON.parse(e),()=>JSON.parse(b(e))])try{const o=n();if(o&&typeof o=="object")return o}catch{}return null}function v(t){if(!t)return;const e=Number(t.split(",")[0]);return Number.isFinite(e)?e:void 0}const u=t=>l(t==null?void 0:t.partOf).find(e=>(e==null?void 0:e.id)&&e.type==="Collection");function h(t){const e=t.type==="Annotation"?l(t.target):[t],n=e[0]?m(e[0],t):null;if(!n||e.length<2)return n;const o=typeof t.id=="string"?t.id:"content-state",a=e.flatMap((s,d)=>{var y,p,f;const i=d===0?n:m(s,t),r=(i==null?void 0:i.type)==="Manifest"?i.id:i==null?void 0:i.manifestId;return!i||!r?[]:[{id:`${o}#target-${d+1}`,manifestId:r,...((y=i.target)==null?void 0:y.canvasId)&&{canvasId:i.target.canvasId},...((p=i.target)==null?void 0:p.region)&&{region:i.target.region},...((f=i.target)==null?void 0:f.time)!==void 0&&{time:i.target.time}}]});return a.length>1?{...n,targets:{id:o,...t.label&&typeof t.label=="object"?{label:t.label}:{},items:a}}:n}function m(t,e){const n=g(t),o=typeof t=="string"?{id:n.id}:t.type==="SpecificResource"?typeof t.source=="string"?{id:t.source}:t.source??{}:t,a=o.type;if(a==="Manifest"||a==="Collection"){const c=a==="Manifest"?u(o):void 0;return c?{id:c.id,type:"Collection",manifestId:n.id}:{id:n.id,type:a}}const s=l(t.selector).find(c=>(c==null?void 0:c.type)==="PointSelector"&&c.t!=null),d={canvasId:n.id};n.rect&&(d.region=n.rect);const i=(s==null?void 0:s.t)??v(n.t);i!==void 0&&(d.time=Number(i));const r=l(o.partOf).find(c=>(c==null?void 0:c.id)&&(!c.type||c.type==="Manifest")),y=u(r),p=e.type==="Annotation"&&l(e.body).length?{id:e.id??`${n.id}#content-state`,type:"Annotation",motivation:l(e.motivation),body:e.body,target:t}:void 0,f=p?{annotation:p}:{};return y&&r?{id:y.id,type:"Collection",manifestId:r.id,target:d,...f}:r?{id:r.id,type:"Manifest",target:d,...f}:{id:n.id,type:a??"Canvas",target:d,...f}}export{I as decodeContentState,h as resolveContentState};
@@ -1 +1 @@
1
- import{u as d,A as v,d as y,_ as g,$ as w,k as A}from"./shared-YUjOSBKO.mjs";const E=new Map;function D(o){if(!o||typeof o!="object")return;const s={};for(const[n,r]of Object.entries(o)){if(typeof r!="function")continue;const u=E.get(n)??new WeakMap;E.set(n,u);let c=u.get(r);c||(c=l=>d(x,{...l,name:n,make:r}),u.set(r,c)),s[n]=c}return s}const B=["id","type","aria-label","lang","aria-keyshortcuts","aria-expanded","aria-controls"];function x({name:o,make:s,buttonProps:n,icon:r,label:u,tip:c}){const l=v(null),[m]=y(()=>{const e=document.createElement("span");return e.style.display="contents",e}),[a,k]=y(null),f=v(n.onClick);return f.current=n.onClick,g(()=>{const e=l.current;if(!e)return;const t=s({name:o,label:u,icon:m});if(!(t instanceof HTMLElement)){console.warn(`controlButtons.${o} returned no element; Clover's own is not drawn either.`);return}const i=t.matches("button")?t:t.querySelector("button")??t,b=h=>{var p;return(p=f.current)==null?void 0:p.call(f,h)};return i.addEventListener("click",b),e.after(t),k(i),()=>{i.removeEventListener("click",b),t.remove(),k(null)}},[s]),g(()=>{if(!a)return;const e=n;for(const t of B){const i=e[t];i===void 0?a.removeAttribute(t):a.setAttribute(t,String(i))}}),d(A,{children:[d("span",{ref:l,hidden:true}),w(r,m),a&&w(c,a)]})}export{D as toControlButtons};
1
+ import{u as d,A as v,d as y,_ as g,$ as w,k as A}from"./shared-DkY2a89G.mjs";const E=new Map;function D(o){if(!o||typeof o!="object")return;const s={};for(const[n,r]of Object.entries(o)){if(typeof r!="function")continue;const u=E.get(n)??new WeakMap;E.set(n,u);let c=u.get(r);c||(c=l=>d(x,{...l,name:n,make:r}),u.set(r,c)),s[n]=c}return s}const B=["id","type","aria-label","lang","aria-keyshortcuts","aria-expanded","aria-controls"];function x({name:o,make:s,buttonProps:n,icon:r,label:u,tip:c}){const l=v(null),[m]=y(()=>{const e=document.createElement("span");return e.style.display="contents",e}),[a,k]=y(null),f=v(n.onClick);return f.current=n.onClick,g(()=>{const e=l.current;if(!e)return;const t=s({name:o,label:u,icon:m});if(!(t instanceof HTMLElement)){console.warn(`controlButtons.${o} returned no element; Clover's own is not drawn either.`);return}const i=t.matches("button")?t:t.querySelector("button")??t,b=h=>{var p;return(p=f.current)==null?void 0:p.call(f,h)};return i.addEventListener("click",b),e.after(t),k(i),()=>{i.removeEventListener("click",b),t.remove(),k(null)}},[s]),g(()=>{if(!a)return;const e=n;for(const t of B){const i=e[t];i===void 0?a.removeAttribute(t):a.setAttribute(t,String(i))}}),d(A,{children:[d("span",{ref:l,hidden:true}),w(r,m),a&&w(c,a)]})}export{D as toControlButtons};