vistaview 1.0.3 → 2.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 (342) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +18 -61
  3. package/{dist/lib/extensions/dailymotion-video.d.ts → extensions/dailymotion-video/dist/main.d.ts} +3 -3
  4. package/extensions/dailymotion-video/dist/main.d.ts.map +1 -0
  5. package/extensions/dailymotion-video/dist/main.js +72 -0
  6. package/extensions/dailymotion-video/dist/main.js.map +1 -0
  7. package/extensions/dailymotion-video/dist/main.test.d.ts +2 -0
  8. package/extensions/dailymotion-video/dist/main.test.d.ts.map +1 -0
  9. package/extensions/dailymotion-video/dist/main.umd.cjs +2 -0
  10. package/extensions/dailymotion-video/dist/main.umd.cjs.map +1 -0
  11. package/extensions/download/dist/main.d.ts +4 -0
  12. package/extensions/download/dist/main.d.ts.map +1 -0
  13. package/extensions/download/dist/main.js +42 -0
  14. package/extensions/download/dist/main.js.map +1 -0
  15. package/extensions/download/dist/main.test.d.ts +2 -0
  16. package/extensions/download/dist/main.test.d.ts.map +1 -0
  17. package/extensions/download/dist/main.umd.cjs +2 -0
  18. package/extensions/download/dist/main.umd.cjs.map +1 -0
  19. package/{dist/lib/extensions/google-maps.d.ts → extensions/google-maps/dist/main.d.ts} +3 -3
  20. package/extensions/google-maps/dist/main.d.ts.map +1 -0
  21. package/extensions/google-maps/dist/main.js +96 -0
  22. package/extensions/google-maps/dist/main.js.map +1 -0
  23. package/extensions/google-maps/dist/main.test.d.ts +2 -0
  24. package/extensions/google-maps/dist/main.test.d.ts.map +1 -0
  25. package/extensions/google-maps/dist/main.umd.cjs +2 -0
  26. package/extensions/google-maps/dist/main.umd.cjs.map +1 -0
  27. package/extensions/image-story/dist/main.d.ts +16 -0
  28. package/extensions/image-story/dist/main.d.ts.map +1 -0
  29. package/extensions/image-story/dist/main.js +600 -0
  30. package/extensions/image-story/dist/main.js.map +1 -0
  31. package/extensions/image-story/dist/main.test.d.ts +2 -0
  32. package/extensions/image-story/dist/main.test.d.ts.map +1 -0
  33. package/extensions/image-story/dist/main.umd.cjs +3 -0
  34. package/extensions/image-story/dist/main.umd.cjs.map +1 -0
  35. package/extensions/image-story/dist/style.css +1 -0
  36. package/extensions/logger/dist/main.d.ts +3 -0
  37. package/extensions/logger/dist/main.d.ts.map +1 -0
  38. package/extensions/logger/dist/main.js +23 -0
  39. package/extensions/logger/dist/main.js.map +1 -0
  40. package/extensions/logger/dist/main.test.d.ts +2 -0
  41. package/extensions/logger/dist/main.test.d.ts.map +1 -0
  42. package/extensions/logger/dist/main.umd.cjs +2 -0
  43. package/extensions/logger/dist/main.umd.cjs.map +1 -0
  44. package/{dist/lib/extensions/mapbox.d.ts → extensions/mapbox/dist/main.d.ts} +3 -3
  45. package/extensions/mapbox/dist/main.d.ts.map +1 -0
  46. package/extensions/mapbox/dist/main.js +114 -0
  47. package/extensions/mapbox/dist/main.js.map +1 -0
  48. package/extensions/mapbox/dist/main.test.d.ts +2 -0
  49. package/extensions/mapbox/dist/main.test.d.ts.map +1 -0
  50. package/extensions/mapbox/dist/main.umd.cjs +2 -0
  51. package/extensions/mapbox/dist/main.umd.cjs.map +1 -0
  52. package/{dist/lib/extensions/openstreetmap.d.ts → extensions/openstreetmap/dist/main.d.ts} +3 -3
  53. package/extensions/openstreetmap/dist/main.d.ts.map +1 -0
  54. package/extensions/openstreetmap/dist/main.js +114 -0
  55. package/extensions/openstreetmap/dist/main.js.map +1 -0
  56. package/extensions/openstreetmap/dist/main.test.d.ts +2 -0
  57. package/extensions/openstreetmap/dist/main.test.d.ts.map +1 -0
  58. package/extensions/openstreetmap/dist/main.umd.cjs +2 -0
  59. package/extensions/openstreetmap/dist/main.umd.cjs.map +1 -0
  60. package/{dist/lib/extensions/select-box.d.ts → extensions/select-box/dist/main.d.ts} +2 -2
  61. package/extensions/select-box/dist/main.d.ts.map +1 -0
  62. package/extensions/select-box/dist/main.js +25 -0
  63. package/extensions/select-box/dist/main.js.map +1 -0
  64. package/extensions/select-box/dist/main.umd.cjs +2 -0
  65. package/extensions/select-box/dist/main.umd.cjs.map +1 -0
  66. package/{dist/lib/extensions/streamable-video.d.ts → extensions/streamable-video/dist/main.d.ts} +3 -3
  67. package/extensions/streamable-video/dist/main.d.ts.map +1 -0
  68. package/extensions/streamable-video/dist/main.js +68 -0
  69. package/extensions/streamable-video/dist/main.js.map +1 -0
  70. package/extensions/streamable-video/dist/main.test.d.ts +2 -0
  71. package/extensions/streamable-video/dist/main.test.d.ts.map +1 -0
  72. package/extensions/streamable-video/dist/main.umd.cjs +2 -0
  73. package/extensions/streamable-video/dist/main.umd.cjs.map +1 -0
  74. package/{dist/lib/extensions/twitch-video.d.ts → extensions/twitch-video/dist/main.d.ts} +3 -3
  75. package/extensions/twitch-video/dist/main.d.ts.map +1 -0
  76. package/extensions/twitch-video/dist/main.js +81 -0
  77. package/extensions/twitch-video/dist/main.js.map +1 -0
  78. package/extensions/twitch-video/dist/main.umd.cjs +2 -0
  79. package/extensions/twitch-video/dist/main.umd.cjs.map +1 -0
  80. package/{dist/lib/extensions/vidyard-video.d.ts → extensions/vidyard-video/dist/main.d.ts} +3 -3
  81. package/extensions/vidyard-video/dist/main.d.ts.map +1 -0
  82. package/extensions/vidyard-video/dist/main.js +72 -0
  83. package/extensions/vidyard-video/dist/main.js.map +1 -0
  84. package/extensions/vidyard-video/dist/main.test.d.ts +2 -0
  85. package/extensions/vidyard-video/dist/main.test.d.ts.map +1 -0
  86. package/extensions/vidyard-video/dist/main.umd.cjs +2 -0
  87. package/extensions/vidyard-video/dist/main.umd.cjs.map +1 -0
  88. package/{dist/lib/extensions/vimeo-video.d.ts → extensions/vimeo-video/dist/main.d.ts} +3 -3
  89. package/extensions/vimeo-video/dist/main.d.ts.map +1 -0
  90. package/extensions/vimeo-video/dist/main.js +68 -0
  91. package/extensions/vimeo-video/dist/main.js.map +1 -0
  92. package/extensions/vimeo-video/dist/main.test.d.ts +2 -0
  93. package/extensions/vimeo-video/dist/main.test.d.ts.map +1 -0
  94. package/extensions/vimeo-video/dist/main.umd.cjs +2 -0
  95. package/extensions/vimeo-video/dist/main.umd.cjs.map +1 -0
  96. package/{dist/lib/extensions/wistia-video.d.ts → extensions/wistia-video/dist/main.d.ts} +3 -3
  97. package/extensions/wistia-video/dist/main.d.ts.map +1 -0
  98. package/extensions/wistia-video/dist/main.js +72 -0
  99. package/extensions/wistia-video/dist/main.js.map +1 -0
  100. package/extensions/wistia-video/dist/main.test.d.ts +2 -0
  101. package/extensions/wistia-video/dist/main.test.d.ts.map +1 -0
  102. package/extensions/wistia-video/dist/main.umd.cjs +2 -0
  103. package/extensions/wistia-video/dist/main.umd.cjs.map +1 -0
  104. package/{dist/lib/extensions/youtube-video.d.ts → extensions/youtube-video/dist/main.d.ts} +3 -3
  105. package/extensions/youtube-video/dist/main.d.ts.map +1 -0
  106. package/extensions/youtube-video/dist/main.js +80 -0
  107. package/extensions/youtube-video/dist/main.js.map +1 -0
  108. package/extensions/youtube-video/dist/main.test.d.ts +2 -0
  109. package/extensions/youtube-video/dist/main.test.d.ts.map +1 -0
  110. package/extensions/youtube-video/dist/main.umd.cjs +2 -0
  111. package/extensions/youtube-video/dist/main.umd.cjs.map +1 -0
  112. package/frameworks/react/dist/main.d.ts +3 -0
  113. package/frameworks/react/dist/main.es.js +51 -0
  114. package/frameworks/react/dist/main.es.js.map +1 -0
  115. package/frameworks/react/dist/test-setup.d.ts +1 -0
  116. package/frameworks/react/dist/use-vistaview.d.ts +2 -0
  117. package/frameworks/react/dist/vistaview.d.ts +13 -0
  118. package/frameworks/solid/dist/dev.js +77 -0
  119. package/frameworks/solid/dist/dev.jsx +72 -0
  120. package/frameworks/solid/dist/index.d.ts +18 -0
  121. package/frameworks/solid/dist/index.js +76 -0
  122. package/frameworks/solid/dist/index.jsx +71 -0
  123. package/frameworks/svelte/dist/VistaView.svelte +65 -0
  124. package/frameworks/svelte/dist/VistaView.svelte.d.ts +46 -0
  125. package/frameworks/svelte/dist/index.d.ts +3 -0
  126. package/frameworks/svelte/dist/index.js +2 -0
  127. package/frameworks/svelte/dist/types.d.ts +14 -0
  128. package/frameworks/svelte/dist/types.js +1 -0
  129. package/frameworks/svelte/dist/use-vistaview.d.ts +2 -0
  130. package/frameworks/svelte/dist/use-vistaview.js +24 -0
  131. package/frameworks/svelte/dist/use-vistaview.test.d.ts +1 -0
  132. package/frameworks/svelte/dist/use-vistaview.test.js +115 -0
  133. package/frameworks/vue/dist/main.es.js +95 -0
  134. package/frameworks/vue/dist/main.es.js.map +1 -0
  135. package/{dist → main/dist}/lib/components.d.ts +1 -2
  136. package/main/dist/lib/components.js +107 -0
  137. package/main/dist/lib/defaults/close.d.ts +2 -0
  138. package/main/dist/lib/defaults/close.js +4 -0
  139. package/main/dist/lib/defaults/image-setup.d.ts +3 -0
  140. package/main/dist/lib/defaults/image-setup.js +4 -0
  141. package/main/dist/lib/defaults/init.d.ts +2 -0
  142. package/main/dist/lib/defaults/init.js +97 -0
  143. package/main/dist/lib/defaults/open.d.ts +2 -0
  144. package/main/dist/lib/defaults/open.js +8 -0
  145. package/main/dist/lib/defaults/options.d.ts +2 -0
  146. package/main/dist/lib/defaults/options.js +15 -0
  147. package/{dist → main/dist}/lib/defaults/transition.d.ts +2 -3
  148. package/main/dist/lib/defaults/transition.js +40 -0
  149. package/{dist → main/dist}/lib/main.d.ts +1 -2
  150. package/main/dist/lib/main.js +66 -0
  151. package/{dist → main/dist}/lib/throttle.d.ts +0 -1
  152. package/main/dist/lib/throttle.js +21 -0
  153. package/{dist → main/dist}/lib/types.d.ts +4 -5
  154. package/main/dist/lib/types.js +1 -0
  155. package/{dist → main/dist}/lib/utils/get-fitted-size.d.ts +0 -1
  156. package/main/dist/lib/utils/get-fitted-size.js +53 -0
  157. package/{dist → main/dist}/lib/utils/get-full-size-dim.d.ts +0 -1
  158. package/main/dist/lib/utils/get-full-size-dim.js +35 -0
  159. package/{dist → main/dist}/lib/utils/get-style.d.ts +0 -1
  160. package/main/dist/lib/utils/get-style.js +19 -0
  161. package/{dist → main/dist}/lib/utils/index.d.ts +0 -1
  162. package/main/dist/lib/utils/index.js +7 -0
  163. package/{dist → main/dist}/lib/utils/is-not-zero-css.d.ts +0 -1
  164. package/main/dist/lib/utils/is-not-zero-css.js +3 -0
  165. package/{dist → main/dist}/lib/utils/parse-element.d.ts +1 -2
  166. package/main/dist/lib/utils/parse-element.js +67 -0
  167. package/{dist → main/dist}/lib/vista-box.d.ts +3 -4
  168. package/main/dist/lib/vista-box.js +466 -0
  169. package/{dist → main/dist}/lib/vista-hires-transition.d.ts +2 -3
  170. package/main/dist/lib/vista-hires-transition.js +108 -0
  171. package/{dist → main/dist}/lib/vista-image-event.d.ts +2 -3
  172. package/main/dist/lib/vista-image-event.js +166 -0
  173. package/{dist → main/dist}/lib/vista-image.d.ts +2 -3
  174. package/main/dist/lib/vista-image.js +274 -0
  175. package/{dist → main/dist}/lib/vista-pointers.d.ts +1 -2
  176. package/main/dist/lib/vista-pointers.js +163 -0
  177. package/{dist → main/dist}/lib/vista-state.d.ts +2 -3
  178. package/main/dist/lib/vista-state.js +15 -0
  179. package/{dist → main/dist}/lib/vista-view.d.ts +2 -3
  180. package/main/dist/lib/vista-view.js +576 -0
  181. package/main/dist/style.css +1 -0
  182. package/main/dist/styles/autumn-amber.css +1 -0
  183. package/main/dist/styles/cotton-candy.css +1 -0
  184. package/main/dist/styles/dark-rounded.css +1 -0
  185. package/main/dist/styles/ember-glow.css +1 -0
  186. package/main/dist/styles/forest-moss.css +1 -0
  187. package/main/dist/styles/green-lake.css +1 -0
  188. package/main/dist/styles/ice-crystal.css +1 -0
  189. package/main/dist/styles/lavender-fields.css +1 -0
  190. package/main/dist/styles/midnight-gold.css +1 -0
  191. package/main/dist/styles/midnight-ocean.css +1 -0
  192. package/main/dist/styles/mint-chocolate.css +1 -0
  193. package/main/dist/styles/neon-nights.css +1 -0
  194. package/main/dist/styles/paper-light.css +1 -0
  195. package/main/dist/styles/retro-arcade.css +1 -0
  196. package/main/dist/styles/soft-neutral.css +1 -0
  197. package/main/dist/styles/stark-minimal.css +1 -0
  198. package/main/dist/styles/strawberry.css +1 -0
  199. package/{dist → main/dist}/vistaview.d.ts +0 -1
  200. package/main/dist/vistaview.js +14 -0
  201. package/main/dist/vistaview.umd.js +18 -0
  202. package/package.json +122 -67
  203. package/dist/extensions/dailymotion-video.d.ts +0 -2
  204. package/dist/extensions/dailymotion-video.js +0 -80
  205. package/dist/extensions/dailymotion-video.umd.js +0 -1
  206. package/dist/extensions/download.d.ts +0 -2
  207. package/dist/extensions/download.js +0 -35
  208. package/dist/extensions/download.umd.js +0 -1
  209. package/dist/extensions/google-maps.d.ts +0 -2
  210. package/dist/extensions/google-maps.js +0 -96
  211. package/dist/extensions/google-maps.umd.js +0 -1
  212. package/dist/extensions/image-story.d.ts +0 -2
  213. package/dist/extensions/image-story.js +0 -621
  214. package/dist/extensions/image-story.umd.js +0 -2
  215. package/dist/extensions/logger.d.ts +0 -2
  216. package/dist/extensions/logger.js +0 -23
  217. package/dist/extensions/logger.umd.js +0 -1
  218. package/dist/extensions/mapbox.d.ts +0 -2
  219. package/dist/extensions/mapbox.js +0 -124
  220. package/dist/extensions/mapbox.umd.js +0 -1
  221. package/dist/extensions/openstreetmap.d.ts +0 -2
  222. package/dist/extensions/openstreetmap.js +0 -125
  223. package/dist/extensions/openstreetmap.umd.js +0 -1
  224. package/dist/extensions/select-box.d.ts +0 -2
  225. package/dist/extensions/select-box.js +0 -29
  226. package/dist/extensions/select-box.umd.js +0 -1
  227. package/dist/extensions/streamable-video.d.ts +0 -2
  228. package/dist/extensions/streamable-video.js +0 -76
  229. package/dist/extensions/streamable-video.umd.js +0 -1
  230. package/dist/extensions/twitch-video.d.ts +0 -2
  231. package/dist/extensions/twitch-video.js +0 -79
  232. package/dist/extensions/vidyard-video.d.ts +0 -2
  233. package/dist/extensions/vidyard-video.js +0 -80
  234. package/dist/extensions/vidyard-video.umd.js +0 -1
  235. package/dist/extensions/vimeo-video.d.ts +0 -2
  236. package/dist/extensions/vimeo-video.js +0 -76
  237. package/dist/extensions/vimeo-video.umd.js +0 -1
  238. package/dist/extensions/wistia-video.d.ts +0 -2
  239. package/dist/extensions/wistia-video.js +0 -85
  240. package/dist/extensions/wistia-video.umd.js +0 -1
  241. package/dist/extensions/youtube-video.d.ts +0 -2
  242. package/dist/extensions/youtube-video.js +0 -88
  243. package/dist/extensions/youtube-video.umd.js +0 -1
  244. package/dist/lib/components.d.ts.map +0 -1
  245. package/dist/lib/defaults/close.d.ts +0 -3
  246. package/dist/lib/defaults/close.d.ts.map +0 -1
  247. package/dist/lib/defaults/image-setup.d.ts +0 -4
  248. package/dist/lib/defaults/image-setup.d.ts.map +0 -1
  249. package/dist/lib/defaults/init.d.ts +0 -3
  250. package/dist/lib/defaults/init.d.ts.map +0 -1
  251. package/dist/lib/defaults/open.d.ts +0 -3
  252. package/dist/lib/defaults/open.d.ts.map +0 -1
  253. package/dist/lib/defaults/options.d.ts +0 -3
  254. package/dist/lib/defaults/options.d.ts.map +0 -1
  255. package/dist/lib/defaults/transition.d.ts.map +0 -1
  256. package/dist/lib/extensions/dailymotion-video.d.ts.map +0 -1
  257. package/dist/lib/extensions/download.d.ts +0 -3
  258. package/dist/lib/extensions/download.d.ts.map +0 -1
  259. package/dist/lib/extensions/google-maps.d.ts.map +0 -1
  260. package/dist/lib/extensions/image-story.d.ts +0 -12
  261. package/dist/lib/extensions/image-story.d.ts.map +0 -1
  262. package/dist/lib/extensions/logger.d.ts +0 -3
  263. package/dist/lib/extensions/logger.d.ts.map +0 -1
  264. package/dist/lib/extensions/mapbox.d.ts.map +0 -1
  265. package/dist/lib/extensions/openstreetmap.d.ts.map +0 -1
  266. package/dist/lib/extensions/select-box.d.ts.map +0 -1
  267. package/dist/lib/extensions/streamable-video.d.ts.map +0 -1
  268. package/dist/lib/extensions/twitch-video.d.ts.map +0 -1
  269. package/dist/lib/extensions/vidyard-video.d.ts.map +0 -1
  270. package/dist/lib/extensions/vimeo-video.d.ts.map +0 -1
  271. package/dist/lib/extensions/wistia-video.d.ts.map +0 -1
  272. package/dist/lib/extensions/youtube-video.d.ts.map +0 -1
  273. package/dist/lib/main.d.ts.map +0 -1
  274. package/dist/lib/throttle.d.ts.map +0 -1
  275. package/dist/lib/types.d.ts.map +0 -1
  276. package/dist/lib/utils/get-fitted-size.d.ts.map +0 -1
  277. package/dist/lib/utils/get-full-size-dim.d.ts.map +0 -1
  278. package/dist/lib/utils/get-style.d.ts.map +0 -1
  279. package/dist/lib/utils/index.d.ts.map +0 -1
  280. package/dist/lib/utils/is-not-zero-css.d.ts.map +0 -1
  281. package/dist/lib/utils/parse-element.d.ts.map +0 -1
  282. package/dist/lib/vista-box.d.ts.map +0 -1
  283. package/dist/lib/vista-hires-transition.d.ts.map +0 -1
  284. package/dist/lib/vista-image-event.d.ts.map +0 -1
  285. package/dist/lib/vista-image.d.ts.map +0 -1
  286. package/dist/lib/vista-pointers.d.ts.map +0 -1
  287. package/dist/lib/vista-state.d.ts.map +0 -1
  288. package/dist/lib/vista-view.d.ts.map +0 -1
  289. package/dist/react.d.ts +0 -11
  290. package/dist/react.d.ts.map +0 -1
  291. package/dist/react.js +0 -69
  292. package/dist/solid.d.ts +0 -3
  293. package/dist/solid.d.ts.map +0 -1
  294. package/dist/solid.js +0 -24
  295. package/dist/style.css +0 -1
  296. package/dist/style.d.ts +0 -1
  297. package/dist/styles/autumn-amber.css +0 -1
  298. package/dist/styles/autumn-amber.d.ts +0 -1
  299. package/dist/styles/cotton-candy.css +0 -1
  300. package/dist/styles/cotton-candy.d.ts +0 -1
  301. package/dist/styles/dark-rounded.css +0 -1
  302. package/dist/styles/dark-rounded.d.ts +0 -1
  303. package/dist/styles/ember-glow.css +0 -1
  304. package/dist/styles/ember-glow.d.ts +0 -1
  305. package/dist/styles/extensions/image-story.css +0 -1
  306. package/dist/styles/extensions/image-story.d.ts +0 -1
  307. package/dist/styles/forest-moss.css +0 -1
  308. package/dist/styles/forest-moss.d.ts +0 -1
  309. package/dist/styles/green-lake.css +0 -1
  310. package/dist/styles/green-lake.d.ts +0 -1
  311. package/dist/styles/ice-crystal.css +0 -1
  312. package/dist/styles/ice-crystal.d.ts +0 -1
  313. package/dist/styles/lavender-fields.css +0 -1
  314. package/dist/styles/lavender-fields.d.ts +0 -1
  315. package/dist/styles/midnight-gold.css +0 -1
  316. package/dist/styles/midnight-gold.d.ts +0 -1
  317. package/dist/styles/midnight-ocean.css +0 -1
  318. package/dist/styles/midnight-ocean.d.ts +0 -1
  319. package/dist/styles/mint-chocolate.css +0 -1
  320. package/dist/styles/mint-chocolate.d.ts +0 -1
  321. package/dist/styles/neon-nights.css +0 -1
  322. package/dist/styles/neon-nights.d.ts +0 -1
  323. package/dist/styles/paper-light.css +0 -1
  324. package/dist/styles/paper-light.d.ts +0 -1
  325. package/dist/styles/retro-arcade.css +0 -1
  326. package/dist/styles/retro-arcade.d.ts +0 -1
  327. package/dist/styles/soft-neutral.css +0 -1
  328. package/dist/styles/soft-neutral.d.ts +0 -1
  329. package/dist/styles/stark-minimal.css +0 -1
  330. package/dist/styles/stark-minimal.d.ts +0 -1
  331. package/dist/styles/strawberry.css +0 -1
  332. package/dist/styles/strawberry.d.ts +0 -1
  333. package/dist/svelte.d.ts +0 -3
  334. package/dist/svelte.d.ts.map +0 -1
  335. package/dist/svelte.js +0 -22
  336. package/dist/vista-box-zG6ZgBcI.js +0 -334
  337. package/dist/vistaview.d.ts.map +0 -1
  338. package/dist/vistaview.js +0 -1013
  339. package/dist/vistaview.umd.js +0 -18
  340. package/dist/vue.d.ts +0 -25
  341. package/dist/vue.d.ts.map +0 -1
  342. package/dist/vue.js +0 -79
@@ -0,0 +1,40 @@
1
+ // run on every image transition
2
+ export function transition({ htmlElements: { to: HtmlTo }, index: { from: fromIndex, to: toIndex } }, signal, vistaView) {
3
+ const { imageContainer: imgc, options } = vistaView;
4
+ const { isReducedMotion } = vistaView.state;
5
+ if (!HtmlTo || signal.aborted || isReducedMotion)
6
+ return;
7
+ const adjacent = Math.abs(toIndex - fromIndex) === 1 ||
8
+ (fromIndex === 0 && toIndex === vistaView.state.elmLength - 1) ||
9
+ (fromIndex === vistaView.state.elmLength - 1 && toIndex === 0);
10
+ // for non-adjacent
11
+ // just return
12
+ if (!adjacent) {
13
+ return;
14
+ }
15
+ // adjacent transition
16
+ // with no reduced motion preference
17
+ // slide left/right
18
+ return {
19
+ cleanup: () => {
20
+ imgc.style.transition = '';
21
+ imgc.style.transform = '';
22
+ },
23
+ transitionEnded: new Promise((r) => {
24
+ imgc.addEventListener('transitionend', () => {
25
+ r();
26
+ }, { once: true });
27
+ imgc.addEventListener('transitioncancel', () => {
28
+ if (signal.aborted)
29
+ r();
30
+ }, { once: true });
31
+ const duration = Math.round(options.animationDurationBase * 100) / 100;
32
+ const transform = toIndex === fromIndex + 1 ||
33
+ (fromIndex === vistaView.state.elmLength - 1 && toIndex === 0)
34
+ ? 'translateX(-100vw)'
35
+ : 'translateX(100vw)';
36
+ imgc.style.transition = `transform ${duration}ms ease`;
37
+ imgc.style.transform = transform;
38
+ }),
39
+ };
40
+ }
@@ -1,3 +1,2 @@
1
- import { VistaInterface, VistaParams } from './types';
1
+ import type { VistaInterface, VistaParams } from './types';
2
2
  export declare function vistaView({ elements, ...opts }: VistaParams): VistaInterface | null;
3
- //# sourceMappingURL=main.d.ts.map
@@ -0,0 +1,66 @@
1
+ import { VistaView } from './vista-view';
2
+ function checkCorrectness(elements) {
3
+ let els = null;
4
+ // get elements as node list
5
+ if (typeof elements === 'string') {
6
+ els = document.querySelectorAll(elements);
7
+ if (els.length === 0) {
8
+ return new Error('No elements found in node list.');
9
+ }
10
+ // Validate DOM elements - must be img or a
11
+ for (let i = 0; i < els.length; i++) {
12
+ const el = els[i];
13
+ const tagName = el.tagName.toLowerCase();
14
+ if (tagName !== 'img' && tagName !== 'a') {
15
+ return new Error(`Invalid element at index ${i}: expected <img>, <a>, got <${tagName}>`);
16
+ }
17
+ // If anchor, must contain img
18
+ if (tagName === 'a') {
19
+ const hasImg = el.querySelector('img') !== null;
20
+ if (!hasImg) {
21
+ return new Error(`Invalid <a> element at index ${i}: must contain <img>`);
22
+ }
23
+ }
24
+ }
25
+ }
26
+ else {
27
+ // Validate VistaImgConfig array
28
+ const data = elements;
29
+ for (let i = 0; i < data.length; i++) {
30
+ const img = data[i];
31
+ if (!img.src) {
32
+ return new Error(`Invalid image data at index ${i}: must have 'src'`);
33
+ }
34
+ }
35
+ }
36
+ return elements;
37
+ }
38
+ export function vistaView({ elements, ...opts }) {
39
+ if (!elements) {
40
+ console.error(elements);
41
+ console.error('no elements provided');
42
+ console.warn('VistaView: silently returning.');
43
+ return null;
44
+ }
45
+ let elms = checkCorrectness(elements);
46
+ if (elms instanceof Error) {
47
+ console.error(elms);
48
+ console.warn('VistaView: silently returning.');
49
+ return null;
50
+ }
51
+ const v = new VistaView(elms, opts);
52
+ return {
53
+ open: (startIndex = 0) => v.open(startIndex),
54
+ reset: () => v.reset(),
55
+ close: () => v.close(),
56
+ next: () => v.next(),
57
+ prev: () => v.prev(),
58
+ zoomIn: () => v.zoomIn(),
59
+ zoomOut: () => v.zoomOut(),
60
+ destroy: () => v.destroy(),
61
+ getCurrentIndex: () => v.getCurrentIndex(),
62
+ view: (index) => {
63
+ v.view(index);
64
+ },
65
+ };
66
+ }
@@ -4,4 +4,3 @@ export declare class Throttle {
4
4
  };
5
5
  fio(func: () => void, id: string, wait?: number): void;
6
6
  }
7
- //# sourceMappingURL=throttle.d.ts.map
@@ -0,0 +1,21 @@
1
+ // Throttle: Function execution rate limiter
2
+ // Ensures that the function is not called more than once in the specified wait time.
3
+ export class Throttle {
4
+ fiolast = {};
5
+ // first in out
6
+ fio(func, id, wait = 50) {
7
+ const now = Date.now();
8
+ const timeSinceLastCall = now - (this.fiolast[id] ?? 0);
9
+ const invoke = () => {
10
+ this.fiolast[id] = Date.now();
11
+ func();
12
+ };
13
+ if (!this.fiolast[id]) {
14
+ invoke();
15
+ return;
16
+ }
17
+ if (timeSinceLastCall >= wait) {
18
+ invoke();
19
+ }
20
+ }
21
+ }
@@ -1,7 +1,7 @@
1
- import { VistaBox } from './vista-box';
2
- import { VistaState } from './vista-state';
3
- import { VistaView } from './vista-view';
4
- import { VistaHiresTransitionOpt } from './vista-hires-transition';
1
+ import type { VistaBox } from './vista-box';
2
+ import type { VistaState } from './vista-state';
3
+ import type { VistaView } from './vista-view';
4
+ import type { VistaHiresTransitionOpt } from './vista-hires-transition';
5
5
  export type { VistaImage } from './vista-image';
6
6
  export type VistaOpt = {
7
7
  animationDurationBase?: number;
@@ -204,4 +204,3 @@ export type VistaImageClone = {
204
204
  };
205
205
  };
206
206
  };
207
- //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ export {};
@@ -2,4 +2,3 @@ export declare function getFittedSize(img: HTMLImageElement): {
2
2
  width: number;
3
3
  height: number;
4
4
  };
5
- //# sourceMappingURL=get-fitted-size.d.ts.map
@@ -0,0 +1,53 @@
1
+ // this function calculates the rendered size of an image element
2
+ // according to its CSS object-fit property
3
+ export function getFittedSize(img) {
4
+ const style = window.getComputedStyle(img);
5
+ const objectFit = style.objectFit || ''; // empty string in some old browsers
6
+ // Rendered <img> size
7
+ const { width: boxW, height: boxH } = img.getBoundingClientRect();
8
+ // Natural image size
9
+ const natW = img.naturalWidth;
10
+ const natH = img.naturalHeight;
11
+ // If object-fit is not supported → fallback to "fill" behavior
12
+ if (!objectFit) {
13
+ return { width: boxW, height: boxH };
14
+ }
15
+ // natural size missing (e.g., SVG, broken image)
16
+ if (!natW || !natH) {
17
+ return { width: boxW, height: boxH };
18
+ }
19
+ const imageAR = natW / natH;
20
+ const boxAR = boxW / boxH;
21
+ switch (objectFit) {
22
+ case 'fill':
23
+ return { width: boxW, height: boxH };
24
+ case 'none':
25
+ return { width: natW, height: natH };
26
+ case 'contain':
27
+ if (imageAR > boxAR) {
28
+ return { width: boxW, height: boxW / imageAR };
29
+ }
30
+ else {
31
+ return { width: boxH * imageAR, height: boxH };
32
+ }
33
+ case 'cover':
34
+ if (imageAR < boxAR) {
35
+ return { width: boxW, height: boxW / imageAR };
36
+ }
37
+ else {
38
+ return { width: boxH * imageAR, height: boxH };
39
+ }
40
+ case 'scale-down': {
41
+ // natural size
42
+ const natural = { width: natW, height: natH };
43
+ // contain size
44
+ const contain = imageAR > boxAR
45
+ ? { width: boxW, height: boxW / imageAR }
46
+ : { width: boxH * imageAR, height: boxH };
47
+ // pick the smaller of the two
48
+ return contain.width <= natural.width && contain.height <= natural.height ? contain : natural;
49
+ }
50
+ }
51
+ // Unknown or non-standard object-fit → fallback
52
+ return { width: boxW, height: boxH };
53
+ }
@@ -2,4 +2,3 @@ export declare function getFullSizeDim(img: HTMLImageElement): {
2
2
  width: number;
3
3
  height: number;
4
4
  };
5
- //# sourceMappingURL=get-full-size-dim.d.ts.map
@@ -0,0 +1,35 @@
1
+ export function getFullSizeDim(img) {
2
+ const vw = window.innerWidth;
3
+ const vh = window.innerHeight;
4
+ const nw = img.naturalWidth;
5
+ const nh = img.naturalHeight;
6
+ if (!nw || !nh) {
7
+ console.error('Error', img);
8
+ throw new Error('Image natural dimensions are zero');
9
+ }
10
+ if (nw < vw && nh < vh) {
11
+ // smaller than screen, no need to resize
12
+ return {
13
+ width: nw,
14
+ height: nh,
15
+ };
16
+ }
17
+ const imageAR = nw / nh;
18
+ const screenAR = vw / vh;
19
+ let width;
20
+ let height;
21
+ if (imageAR > screenAR) {
22
+ // Image is wider than screen → constrain by width
23
+ width = vw;
24
+ height = vw / imageAR;
25
+ }
26
+ else {
27
+ // Image is taller than screen → constrain by height
28
+ height = vh;
29
+ width = vh * imageAR;
30
+ }
31
+ return {
32
+ width,
33
+ height,
34
+ };
35
+ }
@@ -2,4 +2,3 @@ export declare function getStyle(elm: HTMLImageElement | HTMLAnchorElement): {
2
2
  borderRadius: string;
3
3
  objectFit: string;
4
4
  };
5
- //# sourceMappingURL=get-style.d.ts.map
@@ -0,0 +1,19 @@
1
+ import { isNotZeroCss } from './is-not-zero-css';
2
+ export function getStyle(elm) {
3
+ const anchor = elm instanceof HTMLAnchorElement ? elm : null;
4
+ const image = elm instanceof HTMLImageElement ? elm : anchor?.querySelector('img');
5
+ const aStyles = anchor ? getComputedStyle(anchor) : null;
6
+ const iStyles = image ? getComputedStyle(image) : null;
7
+ let borderRadius = '0px';
8
+ let objectFit = iStyles ? iStyles.objectFit : 'contain';
9
+ if (aStyles && isNotZeroCss(aStyles.borderRadius)) {
10
+ borderRadius = aStyles.borderRadius;
11
+ }
12
+ else if (iStyles && isNotZeroCss(iStyles.borderRadius)) {
13
+ borderRadius = iStyles.borderRadius;
14
+ }
15
+ return {
16
+ borderRadius,
17
+ objectFit,
18
+ };
19
+ }
@@ -1,3 +1,2 @@
1
1
  export declare function clamp(value: number, min: number, max: number): number;
2
2
  export declare function limitPrecision(value: number, precision?: number): number;
3
- //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1,7 @@
1
+ export function clamp(value, min, max) {
2
+ return Math.min(Math.max(value, min), max);
3
+ }
4
+ export function limitPrecision(value, precision = 2) {
5
+ const factor = Math.pow(10, precision);
6
+ return Math.round(value * factor) / factor;
7
+ }
@@ -1,2 +1 @@
1
1
  export declare function isNotZeroCss(value?: string): false | string | undefined;
2
- //# sourceMappingURL=is-not-zero-css.d.ts.map
@@ -0,0 +1,3 @@
1
+ export function isNotZeroCss(value) {
2
+ return (value && !/^0(px|%|r?em|vw|vh|vmin|vmax|cm|mm|in|pt|pc|ex|ch)?$/i.test(value.trim()) && value);
3
+ }
@@ -1,3 +1,2 @@
1
- import { VistaParsedElm } from '../types';
1
+ import type { VistaParsedElm } from '../types';
2
2
  export declare function parseElement(elm: HTMLImageElement | HTMLAnchorElement): VistaParsedElm;
3
- //# sourceMappingURL=parse-element.d.ts.map
@@ -0,0 +1,67 @@
1
+ import { isNotZeroCss } from './is-not-zero-css';
2
+ function getComputedStyleProps(elm) {
3
+ const anchor = elm instanceof HTMLAnchorElement ? elm : null;
4
+ const image = elm instanceof HTMLImageElement ? elm : anchor?.querySelector('img');
5
+ const aStyles = anchor ? getComputedStyle(anchor) : null;
6
+ const iStyles = image ? getComputedStyle(image) : null;
7
+ let borderRadius = '0px';
8
+ let objectFit = iStyles ? iStyles.objectFit : 'contain';
9
+ if (aStyles && isNotZeroCss(aStyles.borderRadius)) {
10
+ borderRadius = aStyles.borderRadius;
11
+ }
12
+ else if (iStyles && isNotZeroCss(iStyles.borderRadius)) {
13
+ borderRadius = iStyles.borderRadius;
14
+ }
15
+ return {
16
+ borderRadius,
17
+ objectFit,
18
+ };
19
+ }
20
+ function getSrcset(srcSetStr) {
21
+ const parts = srcSetStr.split(',').map((s) => s.trim());
22
+ const srcset = [];
23
+ for (const part of parts) {
24
+ const [src, widthStr] = part.split(' ').map((s) => s.trim());
25
+ if (src && widthStr && widthStr.endsWith('w')) {
26
+ const width = parseInt(widthStr.slice(0, -1), 10);
27
+ if (!isNaN(width)) {
28
+ srcset.push({ src, width });
29
+ }
30
+ }
31
+ }
32
+ return srcset;
33
+ }
34
+ export function parseElement(elm) {
35
+ const image = elm instanceof HTMLImageElement ? elm : elm.querySelector('img');
36
+ const src = elm.dataset.vistaviewSrc ||
37
+ elm.getAttribute('href') ||
38
+ elm.getAttribute('src') ||
39
+ image?.getAttribute('src') ||
40
+ '';
41
+ const srcSet = elm.dataset.vistaviewSrcset ||
42
+ elm.getAttribute('srcset') ||
43
+ image?.getAttribute('srcset') ||
44
+ '';
45
+ if (!src && !srcSet) {
46
+ console.error('VistaView Error: Element must have href, src, or srcSet');
47
+ throw new Error('VistaView: Element must have href, src, or srcSet');
48
+ }
49
+ const parsedSrcSet = srcSet ? getSrcset(srcSet) : undefined;
50
+ const styles = getComputedStyleProps(elm);
51
+ return {
52
+ config: {
53
+ src,
54
+ alt: elm.dataset.vistaviewAlt || elm.getAttribute('alt') || image?.getAttribute('alt') || '',
55
+ srcSet: srcSet || undefined,
56
+ },
57
+ parsedSrcSet: parsedSrcSet?.length ? parsedSrcSet : undefined,
58
+ origin: {
59
+ anchor: elm instanceof HTMLAnchorElement ? elm : undefined,
60
+ image: image,
61
+ src,
62
+ srcSet,
63
+ borderRadius: styles.borderRadius,
64
+ objectFit: styles.objectFit,
65
+ },
66
+ };
67
+ }
@@ -1,6 +1,6 @@
1
- import { VistaImageState, VistaImgConfig, VistaImageParams, VistaImgOrigin, VistaImageClone } from './types';
2
- import { VistaHiresTransitionOpt } from './vista-hires-transition';
3
- import { VistaView } from './vista-view';
1
+ import type { VistaImageState, VistaImgConfig, VistaImageParams, VistaImgOrigin, VistaImageClone } from './types';
2
+ import type { VistaHiresTransitionOpt } from './vista-hires-transition';
3
+ import type { VistaView } from './vista-view';
4
4
  export declare abstract class VistaBox {
5
5
  abstract element: HTMLImageElement | HTMLDivElement;
6
6
  state: VistaImageState;
@@ -110,4 +110,3 @@ export declare abstract class VistaBox {
110
110
  cancel: () => void;
111
111
  } | undefined;
112
112
  }
113
- //# sourceMappingURL=vista-box.d.ts.map