@mantine-bites/lightbox 1.0.0-beta.9 → 1.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 (278) hide show
  1. package/README.md +7 -8
  2. package/dist/cjs/Lightbox.cjs +41 -201
  3. package/dist/cjs/Lightbox.cjs.map +1 -1
  4. package/dist/cjs/Lightbox.context-value.cjs +47 -0
  5. package/dist/cjs/Lightbox.context-value.cjs.map +1 -0
  6. package/dist/cjs/Lightbox.context.cjs.map +1 -1
  7. package/dist/cjs/Lightbox.defaults.cjs +3 -8
  8. package/dist/cjs/Lightbox.defaults.cjs.map +1 -1
  9. package/dist/cjs/Lightbox.module.css.cjs +1 -1
  10. package/dist/cjs/LightboxSlide.cjs +72 -5
  11. package/dist/cjs/LightboxSlide.cjs.map +1 -1
  12. package/dist/cjs/LightboxSlide.context.cjs +12 -0
  13. package/dist/cjs/LightboxSlide.context.cjs.map +1 -0
  14. package/dist/cjs/components/LightboxAutoplayButton.cjs +43 -0
  15. package/dist/cjs/components/LightboxAutoplayButton.cjs.map +1 -0
  16. package/dist/cjs/components/LightboxCarousel.cjs +29 -0
  17. package/dist/cjs/components/LightboxCarousel.cjs.map +1 -0
  18. package/dist/cjs/components/LightboxCarouselSlide.context.cjs +12 -0
  19. package/dist/cjs/components/LightboxCarouselSlide.context.cjs.map +1 -0
  20. package/dist/cjs/components/LightboxCloseButton.cjs +33 -0
  21. package/dist/cjs/components/LightboxCloseButton.cjs.map +1 -0
  22. package/dist/cjs/components/LightboxContent.cjs +38 -0
  23. package/dist/cjs/components/LightboxContent.cjs.map +1 -0
  24. package/dist/cjs/components/LightboxControls.cjs +68 -0
  25. package/dist/cjs/components/LightboxControls.cjs.map +1 -0
  26. package/dist/cjs/components/LightboxCounter.cjs +34 -0
  27. package/dist/cjs/components/LightboxCounter.cjs.map +1 -0
  28. package/dist/cjs/components/LightboxFullscreenButton.cjs +41 -0
  29. package/dist/cjs/components/LightboxFullscreenButton.cjs.map +1 -0
  30. package/dist/cjs/components/LightboxOverlay.cjs +40 -0
  31. package/dist/cjs/components/LightboxOverlay.cjs.map +1 -0
  32. package/dist/cjs/components/LightboxPreset.cjs +32 -0
  33. package/dist/cjs/components/LightboxPreset.cjs.map +1 -0
  34. package/dist/cjs/components/LightboxRoot.cjs +260 -0
  35. package/dist/cjs/components/LightboxRoot.cjs.map +1 -0
  36. package/dist/cjs/components/LightboxSlide.cjs +154 -0
  37. package/dist/cjs/components/LightboxSlide.cjs.map +1 -0
  38. package/dist/cjs/components/LightboxSlide.context.cjs +12 -0
  39. package/dist/cjs/components/LightboxSlide.context.cjs.map +1 -0
  40. package/dist/cjs/components/LightboxSlides.cjs +97 -77
  41. package/dist/cjs/components/LightboxSlides.cjs.map +1 -1
  42. package/dist/cjs/components/LightboxThumbnail.cjs +40 -0
  43. package/dist/cjs/components/LightboxThumbnail.cjs.map +1 -0
  44. package/dist/cjs/components/LightboxThumbnail.context.cjs +12 -0
  45. package/dist/cjs/components/LightboxThumbnail.context.cjs.map +1 -0
  46. package/dist/cjs/components/LightboxThumbnails.cjs +110 -32
  47. package/dist/cjs/components/LightboxThumbnails.cjs.map +1 -1
  48. package/dist/cjs/components/LightboxToolbar.cjs +83 -70
  49. package/dist/cjs/components/LightboxToolbar.cjs.map +1 -1
  50. package/dist/cjs/components/LightboxZoomButton.cjs +39 -0
  51. package/dist/cjs/components/LightboxZoomButton.cjs.map +1 -0
  52. package/dist/cjs/components/icons/EnterFullscreen.cjs +30 -0
  53. package/dist/cjs/components/icons/EnterFullscreen.cjs.map +1 -0
  54. package/dist/cjs/components/icons/ExitFullscreen.cjs +30 -0
  55. package/dist/cjs/components/icons/ExitFullscreen.cjs.map +1 -0
  56. package/dist/cjs/components/icons/Pause.cjs +28 -0
  57. package/dist/cjs/components/icons/Pause.cjs.map +1 -0
  58. package/dist/cjs/components/icons/Play.cjs +22 -0
  59. package/dist/cjs/components/icons/Play.cjs.map +1 -0
  60. package/dist/cjs/components/icons/ZoomIn.cjs +30 -0
  61. package/dist/cjs/components/icons/ZoomIn.cjs.map +1 -0
  62. package/dist/cjs/components/icons/ZoomOut.cjs +29 -0
  63. package/dist/cjs/components/icons/ZoomOut.cjs.map +1 -0
  64. package/dist/cjs/context/LightboxContext.cjs +12 -0
  65. package/dist/cjs/context/LightboxContext.cjs.map +1 -0
  66. package/dist/cjs/context/LightboxSlideContext.cjs +12 -0
  67. package/dist/cjs/context/LightboxSlideContext.cjs.map +1 -0
  68. package/dist/cjs/context/LightboxThumbnailContext.cjs +12 -0
  69. package/dist/cjs/context/LightboxThumbnailContext.cjs.map +1 -0
  70. package/dist/cjs/hooks/useAutoPlay.cjs +30 -15
  71. package/dist/cjs/hooks/useAutoPlay.cjs.map +1 -1
  72. package/dist/cjs/hooks/useLightbox.cjs +62 -117
  73. package/dist/cjs/hooks/useLightbox.cjs.map +1 -1
  74. package/dist/cjs/hooks/useLightboxRootOptions.cjs +20 -0
  75. package/dist/cjs/hooks/useLightboxRootOptions.cjs.map +1 -0
  76. package/dist/cjs/hooks/useSlideInteractions.cjs +13 -13
  77. package/dist/cjs/hooks/useSlideInteractions.cjs.map +1 -1
  78. package/dist/cjs/hooks/useThumbnails.cjs +14 -11
  79. package/dist/cjs/hooks/useThumbnails.cjs.map +1 -1
  80. package/dist/cjs/hooks/useZoom.cjs +37 -38
  81. package/dist/cjs/hooks/useZoom.cjs.map +1 -1
  82. package/dist/cjs/index.cjs +26 -2
  83. package/dist/cjs/index.cjs.map +1 -1
  84. package/dist/cjs/styles/Lightbox.module.css.cjs +7 -0
  85. package/dist/cjs/styles/Lightbox.module.css.cjs.map +1 -0
  86. package/dist/cjs/utils/pointer.cjs +50 -0
  87. package/dist/cjs/utils/pointer.cjs.map +1 -0
  88. package/dist/cjs/utils/zoom.cjs +2 -51
  89. package/dist/cjs/utils/zoom.cjs.map +1 -1
  90. package/dist/esm/Lightbox.context-value.mjs +45 -0
  91. package/dist/esm/Lightbox.context-value.mjs.map +1 -0
  92. package/dist/esm/Lightbox.context.mjs.map +1 -1
  93. package/dist/esm/Lightbox.defaults.mjs +3 -8
  94. package/dist/esm/Lightbox.defaults.mjs.map +1 -1
  95. package/dist/esm/Lightbox.mjs +43 -203
  96. package/dist/esm/Lightbox.mjs.map +1 -1
  97. package/dist/esm/Lightbox.module.css.mjs +1 -1
  98. package/dist/esm/LightboxSlide.context.mjs +9 -0
  99. package/dist/esm/LightboxSlide.context.mjs.map +1 -0
  100. package/dist/esm/LightboxSlide.mjs +73 -6
  101. package/dist/esm/LightboxSlide.mjs.map +1 -1
  102. package/dist/esm/components/LightboxAutoplayButton.mjs +41 -0
  103. package/dist/esm/components/LightboxAutoplayButton.mjs.map +1 -0
  104. package/dist/esm/components/LightboxCarousel.mjs +27 -0
  105. package/dist/esm/components/LightboxCarousel.mjs.map +1 -0
  106. package/dist/esm/components/LightboxCarouselSlide.context.mjs +9 -0
  107. package/dist/esm/components/LightboxCarouselSlide.context.mjs.map +1 -0
  108. package/dist/esm/components/LightboxCloseButton.mjs +31 -0
  109. package/dist/esm/components/LightboxCloseButton.mjs.map +1 -0
  110. package/dist/esm/components/LightboxContent.mjs +36 -0
  111. package/dist/esm/components/LightboxContent.mjs.map +1 -0
  112. package/dist/esm/components/LightboxControls.mjs +66 -0
  113. package/dist/esm/components/LightboxControls.mjs.map +1 -0
  114. package/dist/esm/components/LightboxCounter.mjs +32 -0
  115. package/dist/esm/components/LightboxCounter.mjs.map +1 -0
  116. package/dist/esm/components/LightboxFullscreenButton.mjs +39 -0
  117. package/dist/esm/components/LightboxFullscreenButton.mjs.map +1 -0
  118. package/dist/esm/components/LightboxOverlay.mjs +38 -0
  119. package/dist/esm/components/LightboxOverlay.mjs.map +1 -0
  120. package/dist/esm/components/LightboxPreset.mjs +30 -0
  121. package/dist/esm/components/LightboxPreset.mjs.map +1 -0
  122. package/dist/esm/components/LightboxRoot.mjs +258 -0
  123. package/dist/esm/components/LightboxRoot.mjs.map +1 -0
  124. package/dist/esm/components/LightboxSlide.context.mjs +9 -0
  125. package/dist/esm/components/LightboxSlide.context.mjs.map +1 -0
  126. package/dist/esm/components/LightboxSlide.mjs +152 -0
  127. package/dist/esm/components/LightboxSlide.mjs.map +1 -0
  128. package/dist/esm/components/LightboxSlides.mjs +98 -78
  129. package/dist/esm/components/LightboxSlides.mjs.map +1 -1
  130. package/dist/esm/components/LightboxThumbnail.context.mjs +9 -0
  131. package/dist/esm/components/LightboxThumbnail.context.mjs.map +1 -0
  132. package/dist/esm/components/LightboxThumbnail.mjs +38 -0
  133. package/dist/esm/components/LightboxThumbnail.mjs.map +1 -0
  134. package/dist/esm/components/LightboxThumbnails.mjs +111 -33
  135. package/dist/esm/components/LightboxThumbnails.mjs.map +1 -1
  136. package/dist/esm/components/LightboxToolbar.mjs +85 -72
  137. package/dist/esm/components/LightboxToolbar.mjs.map +1 -1
  138. package/dist/esm/components/LightboxZoomButton.mjs +37 -0
  139. package/dist/esm/components/LightboxZoomButton.mjs.map +1 -0
  140. package/dist/esm/components/icons/EnterFullscreen.mjs +28 -0
  141. package/dist/esm/components/icons/EnterFullscreen.mjs.map +1 -0
  142. package/dist/esm/components/icons/ExitFullscreen.mjs +28 -0
  143. package/dist/esm/components/icons/ExitFullscreen.mjs.map +1 -0
  144. package/dist/esm/components/icons/Pause.mjs +26 -0
  145. package/dist/esm/components/icons/Pause.mjs.map +1 -0
  146. package/dist/esm/components/icons/Play.mjs +20 -0
  147. package/dist/esm/components/icons/Play.mjs.map +1 -0
  148. package/dist/esm/components/icons/ZoomIn.mjs +28 -0
  149. package/dist/esm/components/icons/ZoomIn.mjs.map +1 -0
  150. package/dist/esm/components/icons/ZoomOut.mjs +27 -0
  151. package/dist/esm/components/icons/ZoomOut.mjs.map +1 -0
  152. package/dist/esm/context/LightboxContext.mjs +9 -0
  153. package/dist/esm/context/LightboxContext.mjs.map +1 -0
  154. package/dist/esm/context/LightboxSlideContext.mjs +9 -0
  155. package/dist/esm/context/LightboxSlideContext.mjs.map +1 -0
  156. package/dist/esm/context/LightboxThumbnailContext.mjs +9 -0
  157. package/dist/esm/context/LightboxThumbnailContext.mjs.map +1 -0
  158. package/dist/esm/hooks/useAutoPlay.mjs +22 -7
  159. package/dist/esm/hooks/useAutoPlay.mjs.map +1 -1
  160. package/dist/esm/hooks/useLightbox.mjs +58 -113
  161. package/dist/esm/hooks/useLightbox.mjs.map +1 -1
  162. package/dist/esm/hooks/useLightboxRootOptions.mjs +18 -0
  163. package/dist/esm/hooks/useLightboxRootOptions.mjs.map +1 -0
  164. package/dist/esm/hooks/useSlideInteractions.mjs +1 -1
  165. package/dist/esm/hooks/useSlideInteractions.mjs.map +1 -1
  166. package/dist/esm/hooks/useThumbnails.mjs +7 -4
  167. package/dist/esm/hooks/useThumbnails.mjs.map +1 -1
  168. package/dist/esm/hooks/useZoom.mjs +6 -7
  169. package/dist/esm/hooks/useZoom.mjs.map +1 -1
  170. package/dist/esm/index.mjs +13 -1
  171. package/dist/esm/index.mjs.map +1 -1
  172. package/dist/esm/styles/Lightbox.module.css.mjs +5 -0
  173. package/dist/esm/styles/Lightbox.module.css.mjs.map +1 -0
  174. package/dist/esm/utils/pointer.mjs +41 -0
  175. package/dist/esm/utils/pointer.mjs.map +1 -0
  176. package/dist/esm/utils/zoom.mjs +3 -44
  177. package/dist/esm/utils/zoom.mjs.map +1 -1
  178. package/dist/styles.css +1 -1
  179. package/dist/styles.layer.css +1 -1
  180. package/dist/types/Lightbox.context-value.d.ts +16 -0
  181. package/dist/types/Lightbox.context-value.d.ts.map +1 -0
  182. package/dist/types/Lightbox.context.d.ts +17 -15
  183. package/dist/types/Lightbox.context.d.ts.map +1 -1
  184. package/dist/types/Lightbox.d.ts +56 -97
  185. package/dist/types/Lightbox.d.ts.map +1 -1
  186. package/dist/types/Lightbox.defaults.d.ts +3 -8
  187. package/dist/types/Lightbox.defaults.d.ts.map +1 -1
  188. package/dist/types/Lightbox.story.d.ts +2 -2
  189. package/dist/types/Lightbox.story.d.ts.map +1 -1
  190. package/dist/types/LightboxSlide.context.d.ts +8 -0
  191. package/dist/types/LightboxSlide.context.d.ts.map +1 -0
  192. package/dist/types/LightboxSlide.d.ts +0 -3
  193. package/dist/types/LightboxSlide.d.ts.map +1 -1
  194. package/dist/types/__tests__/Lightbox.test.d.ts +2 -0
  195. package/dist/types/__tests__/Lightbox.test.d.ts.map +1 -0
  196. package/dist/types/__tests__/LightboxSimple.test.d.ts +2 -0
  197. package/dist/types/__tests__/LightboxSimple.test.d.ts.map +1 -0
  198. package/dist/types/__tests__/pointer.test.d.ts +2 -0
  199. package/dist/types/__tests__/pointer.test.d.ts.map +1 -0
  200. package/dist/types/__tests__/zoom.test.d.ts +2 -0
  201. package/dist/types/__tests__/zoom.test.d.ts.map +1 -0
  202. package/dist/types/components/LightboxAutoplayButton.d.ts +17 -0
  203. package/dist/types/components/LightboxAutoplayButton.d.ts.map +1 -0
  204. package/dist/types/components/LightboxCarousel.d.ts +6 -0
  205. package/dist/types/components/LightboxCarousel.d.ts.map +1 -0
  206. package/dist/types/components/LightboxCarouselSlide.context.d.ts +10 -0
  207. package/dist/types/components/LightboxCarouselSlide.context.d.ts.map +1 -0
  208. package/dist/types/components/LightboxCloseButton.d.ts +17 -0
  209. package/dist/types/components/LightboxCloseButton.d.ts.map +1 -0
  210. package/dist/types/components/LightboxContent.d.ts +14 -0
  211. package/dist/types/components/LightboxContent.d.ts.map +1 -0
  212. package/dist/types/components/LightboxControls.d.ts +19 -0
  213. package/dist/types/components/LightboxControls.d.ts.map +1 -0
  214. package/dist/types/components/LightboxCounter.d.ts +19 -0
  215. package/dist/types/components/LightboxCounter.d.ts.map +1 -0
  216. package/dist/types/components/LightboxFullscreenButton.d.ts +17 -0
  217. package/dist/types/components/LightboxFullscreenButton.d.ts.map +1 -0
  218. package/dist/types/components/LightboxOverlay.d.ts +4 -0
  219. package/dist/types/components/LightboxOverlay.d.ts.map +1 -0
  220. package/dist/types/components/LightboxPreset.d.ts +10 -0
  221. package/dist/types/components/LightboxPreset.d.ts.map +1 -0
  222. package/dist/types/components/LightboxRoot.d.ts +80 -0
  223. package/dist/types/components/LightboxRoot.d.ts.map +1 -0
  224. package/dist/types/components/LightboxSlide.context.d.ts +8 -0
  225. package/dist/types/components/LightboxSlide.context.d.ts.map +1 -0
  226. package/dist/types/components/LightboxSlide.d.ts +17 -0
  227. package/dist/types/components/LightboxSlide.d.ts.map +1 -0
  228. package/dist/types/components/LightboxSlides.d.ts +23 -1
  229. package/dist/types/components/LightboxSlides.d.ts.map +1 -1
  230. package/dist/types/components/LightboxThumbnail.context.d.ts +8 -0
  231. package/dist/types/components/LightboxThumbnail.context.d.ts.map +1 -0
  232. package/dist/types/components/LightboxThumbnail.d.ts +17 -0
  233. package/dist/types/components/LightboxThumbnail.d.ts.map +1 -0
  234. package/dist/types/components/LightboxThumbnails.d.ts +18 -6
  235. package/dist/types/components/LightboxThumbnails.d.ts.map +1 -1
  236. package/dist/types/components/LightboxToolbar.d.ts +16 -1
  237. package/dist/types/components/LightboxToolbar.d.ts.map +1 -1
  238. package/dist/types/components/LightboxZoomButton.d.ts +17 -0
  239. package/dist/types/components/LightboxZoomButton.d.ts.map +1 -0
  240. package/dist/types/components/icons/EnterFullscreen.d.ts +3 -0
  241. package/dist/types/components/icons/EnterFullscreen.d.ts.map +1 -0
  242. package/dist/types/components/icons/ExitFullscreen.d.ts +3 -0
  243. package/dist/types/components/icons/ExitFullscreen.d.ts.map +1 -0
  244. package/dist/types/components/icons/Pause.d.ts +3 -0
  245. package/dist/types/components/icons/Pause.d.ts.map +1 -0
  246. package/dist/types/components/icons/Play.d.ts +3 -0
  247. package/dist/types/components/icons/Play.d.ts.map +1 -0
  248. package/dist/types/components/icons/ZoomIn.d.ts +3 -0
  249. package/dist/types/components/icons/ZoomIn.d.ts.map +1 -0
  250. package/dist/types/components/icons/ZoomOut.d.ts +3 -0
  251. package/dist/types/components/icons/ZoomOut.d.ts.map +1 -0
  252. package/dist/types/context/LightboxContext.d.ts +46 -0
  253. package/dist/types/context/LightboxContext.d.ts.map +1 -0
  254. package/dist/types/context/LightboxSlideContext.d.ts +8 -0
  255. package/dist/types/context/LightboxSlideContext.d.ts.map +1 -0
  256. package/dist/types/context/LightboxThumbnailContext.d.ts +8 -0
  257. package/dist/types/context/LightboxThumbnailContext.d.ts.map +1 -0
  258. package/dist/types/hooks/useAutoPlay.d.ts +1 -1
  259. package/dist/types/hooks/useAutoPlay.d.ts.map +1 -1
  260. package/dist/types/hooks/useLightbox.d.ts +5 -28
  261. package/dist/types/hooks/useLightbox.d.ts.map +1 -1
  262. package/dist/types/hooks/useLightboxRootOptions.d.ts +12 -0
  263. package/dist/types/hooks/useLightboxRootOptions.d.ts.map +1 -0
  264. package/dist/types/hooks/useSlideInteractions.d.ts +3 -3
  265. package/dist/types/hooks/useThumbnails.d.ts +5 -4
  266. package/dist/types/hooks/useThumbnails.d.ts.map +1 -1
  267. package/dist/types/hooks/useZoom.d.ts +2 -9
  268. package/dist/types/hooks/useZoom.d.ts.map +1 -1
  269. package/dist/types/index.d.mts +27 -3
  270. package/dist/types/index.d.ts +27 -3
  271. package/dist/types/index.d.ts.map +1 -1
  272. package/dist/types/stories/Lightbox.story.d.ts +11 -0
  273. package/dist/types/stories/Lightbox.story.d.ts.map +1 -0
  274. package/dist/types/utils/pointer.d.ts +63 -0
  275. package/dist/types/utils/pointer.d.ts.map +1 -0
  276. package/dist/types/utils/zoom.d.ts +0 -62
  277. package/dist/types/utils/zoom.d.ts.map +1 -1
  278. package/package.json +2 -4
@@ -0,0 +1,9 @@
1
+ 'use client';
2
+ import { createSafeContext } from '@mantine/core';
3
+
4
+ const [LightboxCarouselSlideProvider, useLightboxCarouselSlideContext] = createSafeContext(
5
+ "Lightbox.Slide must be used inside Lightbox.Carousel"
6
+ );
7
+
8
+ export { LightboxCarouselSlideProvider, useLightboxCarouselSlideContext };
9
+ //# sourceMappingURL=LightboxCarouselSlide.context.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LightboxCarouselSlide.context.mjs","sources":["../../../src/components/LightboxCarouselSlide.context.ts"],"sourcesContent":["import { createSafeContext } from \"@mantine/core\";\n\ninterface LightboxCarouselSlideContextValue {\n\tindex: number;\n\tisActive: boolean;\n}\n\nexport const [LightboxCarouselSlideProvider, useLightboxCarouselSlideContext] =\n\tcreateSafeContext<LightboxCarouselSlideContextValue>(\n\t\t\"Lightbox.Slide must be used inside Lightbox.Carousel\",\n\t);\n"],"names":[],"mappings":";;;AAEY,CAAA,CAAA,CAAA,CAAA,CAAA,CAAC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA6B,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAA+B,CAAC,GAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAiB,CAAA;AACjG,CAAA,CAAE,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA;AACF,CAAA,CAAA;;"}
@@ -0,0 +1,31 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { factory, useProps, ActionIcon, CloseIcon } from '@mantine/core';
4
+ import { useLightboxContext } from '../context/LightboxContext.mjs';
5
+ import classes from '../styles/Lightbox.module.css.mjs';
6
+
7
+ const LightboxCloseButton = factory(
8
+ (_props, ref) => {
9
+ const props = useProps("LightboxCloseButton", null, _props);
10
+ const { classNames, className, style, styles, vars, ...others } = props;
11
+ const { onClose, getStyles } = useLightboxContext();
12
+ return /* @__PURE__ */ jsx(
13
+ ActionIcon,
14
+ {
15
+ ref,
16
+ variant: "default",
17
+ size: "lg",
18
+ onClick: onClose,
19
+ "aria-label": "Close lightbox",
20
+ ...getStyles("closeButton", { className, style, classNames, styles }),
21
+ ...others,
22
+ children: /* @__PURE__ */ jsx(CloseIcon, {})
23
+ }
24
+ );
25
+ }
26
+ );
27
+ LightboxCloseButton.classes = classes;
28
+ LightboxCloseButton.displayName = "LightboxCloseButton";
29
+
30
+ export { LightboxCloseButton };
31
+ //# sourceMappingURL=LightboxCloseButton.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LightboxCloseButton.mjs","sources":["../../../src/components/LightboxCloseButton.tsx"],"sourcesContent":["import {\n\tActionIcon,\n\ttype BoxProps,\n\tCloseIcon,\n\ttype CompoundStylesApiProps,\n\ttype ElementProps,\n\ttype Factory,\n\tfactory,\n\tuseProps,\n} from \"@mantine/core\";\nimport { useLightboxContext } from \"../context/LightboxContext.js\";\nimport classes from \"../styles/Lightbox.module.css\";\n\nexport type LightboxCloseButtonStylesNames = \"closeButton\";\n\nexport interface LightboxCloseButtonProps\n\textends BoxProps,\n\t\tCompoundStylesApiProps<LightboxCloseButtonFactory>,\n\t\tElementProps<\"button\"> {}\n\nexport type LightboxCloseButtonFactory = Factory<{\n\tprops: LightboxCloseButtonProps;\n\tref: HTMLButtonElement;\n\tstylesNames: LightboxCloseButtonStylesNames;\n\tcompound: true;\n}>;\n\nexport const LightboxCloseButton = factory<LightboxCloseButtonFactory>(\n\t(_props, ref) => {\n\t\tconst props = useProps(\"LightboxCloseButton\", null, _props);\n\n\t\tconst { classNames, className, style, styles, vars, ...others } = props;\n\n\t\tconst { onClose, getStyles } = useLightboxContext();\n\n\t\treturn (\n\t\t\t<ActionIcon\n\t\t\t\tref={ref}\n\t\t\t\tvariant=\"default\"\n\t\t\t\tsize=\"lg\"\n\t\t\t\tonClick={onClose}\n\t\t\t\taria-label=\"Close lightbox\"\n\t\t\t\t{...getStyles(\"closeButton\", { className, style, classNames, styles })}\n\t\t\t\t{...others}\n\t\t\t>\n\t\t\t\t<CloseIcon />\n\t\t\t</ActionIcon>\n\t\t);\n\t},\n);\n\nLightboxCloseButton.classes = classes;\n\nLightboxCloseButton.displayName = \"LightboxCloseButton\";\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { useProps, Transition, Box } from '@mantine/core';
4
+ import { useLightboxContext } from '../Lightbox.context.mjs';
5
+
6
+ const DEFAULT_TRANSITION_PROPS = { transition: "fade", duration: 250 };
7
+ const defaultProps = {};
8
+ function LightboxContent(_props) {
9
+ const props = useProps("LightboxContent", defaultProps, _props);
10
+ const { transitionProps, children, style, ...others } = props;
11
+ const { opened, keepMounted, mergedRef, getStyles } = useLightboxContext();
12
+ const resolvedTransitionProps = {
13
+ ...DEFAULT_TRANSITION_PROPS,
14
+ ...transitionProps
15
+ };
16
+ return /* @__PURE__ */ jsx(
17
+ Transition,
18
+ {
19
+ ...resolvedTransitionProps,
20
+ mounted: opened,
21
+ keepMounted,
22
+ children: (transitionStyles) => /* @__PURE__ */ jsx(
23
+ Box,
24
+ {
25
+ ref: mergedRef,
26
+ ...getStyles("root", { style: [transitionStyles, style] }),
27
+ ...others,
28
+ children
29
+ }
30
+ )
31
+ }
32
+ );
33
+ }
34
+
35
+ export { LightboxContent };
36
+ //# sourceMappingURL=LightboxContent.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LightboxContent.mjs","sources":["../../../src/components/LightboxContent.tsx"],"sourcesContent":["import {\n\tBox,\n\ttype BoxProps,\n\ttype ElementProps,\n\tTransition,\n\ttype TransitionOverride,\n\tuseProps,\n} from \"@mantine/core\";\nimport type { ReactNode } from \"react\";\nimport { useLightboxContext } from \"../Lightbox.context.js\";\n\nexport interface LightboxContentProps extends BoxProps, ElementProps<\"div\"> {\n\t/**\n\t * Transition applied to the content panel, merged with\n\t * `{ transition: 'fade', duration: 250 }` by default.\n\t * Note: `mounted` and `keepMounted` within `transitionProps` have no effect —\n\t * they are controlled by `LightboxRoot`.\n\t */\n\ttransitionProps?: TransitionOverride;\n\tchildren?: ReactNode;\n}\n\nconst DEFAULT_TRANSITION_PROPS = { transition: \"fade\", duration: 250 } as const;\n\nconst defaultProps: Partial<LightboxContentProps> = {};\n\nexport function LightboxContent(_props: LightboxContentProps) {\n\tconst props = useProps(\"LightboxContent\", defaultProps, _props);\n\tconst { transitionProps, children, style, ...others } = props;\n\n\tconst { opened, keepMounted, mergedRef, getStyles } = useLightboxContext();\n\n\tconst resolvedTransitionProps = {\n\t\t...DEFAULT_TRANSITION_PROPS,\n\t\t...transitionProps,\n\t};\n\n\treturn (\n\t\t<Transition\n\t\t\t{...resolvedTransitionProps}\n\t\t\tmounted={opened}\n\t\t\tkeepMounted={keepMounted}\n\t\t>\n\t\t\t{(transitionStyles) => (\n\t\t\t\t<Box\n\t\t\t\t\tref={mergedRef}\n\t\t\t\t\t{...getStyles(\"root\", { style: [transitionStyles, style] })}\n\t\t\t\t\t{...others}\n\t\t\t\t>\n\t\t\t\t\t{children}\n\t\t\t\t</Box>\n\t\t\t)}\n\t\t</Transition>\n\t);\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,66 @@
1
+ 'use client';
2
+ import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
3
+ import { factory, useProps, useDirection, UnstyledButton, AccordionChevron, rem } from '@mantine/core';
4
+ import { useLightboxContext } from '../context/LightboxContext.mjs';
5
+ import classes from '../styles/Lightbox.module.css.mjs';
6
+
7
+ const defaultProps = {
8
+ size: 36
9
+ };
10
+ const LightboxControls = factory(
11
+ (_props, _ref) => {
12
+ const props = useProps("LightboxControls", defaultProps, _props);
13
+ const { classNames, styles, size } = props;
14
+ const { onScrollPrev, onScrollNext, getStyles, orientation } = useLightboxContext();
15
+ const { dir } = useDirection();
16
+ const prevRotation = orientation === "horizontal" ? 90 * (dir === "ltr" ? 1 : -1) : -180;
17
+ const nextRotation = orientation === "horizontal" ? 90 * (dir === "ltr" ? -1 : 1) : 0;
18
+ return /* @__PURE__ */ jsxs(Fragment, { children: [
19
+ /* @__PURE__ */ jsx(
20
+ UnstyledButton,
21
+ {
22
+ ...getStyles("control", {
23
+ style: { "--lightbox-control-size": rem(size) },
24
+ classNames,
25
+ styles
26
+ }),
27
+ "data-direction": "prev",
28
+ "aria-label": "Previous slide",
29
+ onClick: onScrollPrev,
30
+ children: /* @__PURE__ */ jsx(
31
+ AccordionChevron,
32
+ {
33
+ style: { transform: `rotate(${prevRotation}deg)` }
34
+ }
35
+ )
36
+ }
37
+ ),
38
+ /* @__PURE__ */ jsx(
39
+ UnstyledButton,
40
+ {
41
+ ...getStyles("control", {
42
+ style: {
43
+ "--lightbox-control-size": rem(size)
44
+ },
45
+ classNames,
46
+ styles
47
+ }),
48
+ "data-direction": "next",
49
+ "aria-label": "Next slide",
50
+ onClick: onScrollNext,
51
+ children: /* @__PURE__ */ jsx(
52
+ AccordionChevron,
53
+ {
54
+ style: { transform: `rotate(${nextRotation}deg)` }
55
+ }
56
+ )
57
+ }
58
+ )
59
+ ] });
60
+ }
61
+ );
62
+ LightboxControls.classes = classes;
63
+ LightboxControls.displayName = "LightboxControls";
64
+
65
+ export { LightboxControls };
66
+ //# sourceMappingURL=LightboxControls.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LightboxControls.mjs","sources":["../../../src/components/LightboxControls.tsx"],"sourcesContent":["import {\n\tAccordionChevron,\n\ttype CompoundStylesApiProps,\n\ttype Factory,\n\tfactory,\n\trem,\n\tUnstyledButton,\n\tuseDirection,\n\tuseProps,\n} from \"@mantine/core\";\nimport { useLightboxContext } from \"../context/LightboxContext.js\";\nimport classes from \"../styles/Lightbox.module.css\";\n\nexport type LightboxControlsStylesNames = \"control\";\n\nexport interface LightboxControlsProps\n\textends CompoundStylesApiProps<LightboxControlsFactory> {\n\t/** Size of the prev/next navigation buttons in px, `36` by default */\n\tsize?: number;\n}\n\nconst defaultProps = {\n\tsize: 36,\n} satisfies Partial<LightboxControlsProps>;\n\nexport type LightboxControlsFactory = Factory<{\n\tprops: LightboxControlsProps;\n\tref: HTMLElement;\n\tstylesNames: LightboxControlsStylesNames;\n\tcompound: true;\n}>;\n\nexport const LightboxControls = factory<LightboxControlsFactory>(\n\t(_props, _ref) => {\n\t\tconst props = useProps(\"LightboxControls\", defaultProps, _props);\n\n\t\tconst { classNames, styles, size } = props;\n\n\t\tconst { onScrollPrev, onScrollNext, getStyles, orientation } =\n\t\t\tuseLightboxContext();\n\n\t\tconst { dir } = useDirection();\n\n\t\tconst prevRotation =\n\t\t\torientation === \"horizontal\" ? 90 * (dir === \"ltr\" ? 1 : -1) : -180;\n\t\tconst nextRotation =\n\t\t\torientation === \"horizontal\" ? 90 * (dir === \"ltr\" ? -1 : 1) : 0;\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<UnstyledButton\n\t\t\t\t\t{...getStyles(\"control\", {\n\t\t\t\t\t\tstyle: { \"--lightbox-control-size\": rem(size) },\n\t\t\t\t\t\tclassNames,\n\t\t\t\t\t\tstyles,\n\t\t\t\t\t})}\n\t\t\t\t\tdata-direction=\"prev\"\n\t\t\t\t\taria-label=\"Previous slide\"\n\t\t\t\t\tonClick={onScrollPrev}\n\t\t\t\t>\n\t\t\t\t\t<AccordionChevron\n\t\t\t\t\t\tstyle={{ transform: `rotate(${prevRotation}deg)` }}\n\t\t\t\t\t/>\n\t\t\t\t</UnstyledButton>\n\t\t\t\t<UnstyledButton\n\t\t\t\t\t{...getStyles(\"control\", {\n\t\t\t\t\t\tstyle: {\n\t\t\t\t\t\t\t\"--lightbox-control-size\": rem(size),\n\t\t\t\t\t\t} as React.CSSProperties,\n\t\t\t\t\t\tclassNames,\n\t\t\t\t\t\tstyles,\n\t\t\t\t\t})}\n\t\t\t\t\tdata-direction=\"next\"\n\t\t\t\t\taria-label=\"Next slide\"\n\t\t\t\t\tonClick={onScrollNext}\n\t\t\t\t>\n\t\t\t\t\t<AccordionChevron\n\t\t\t\t\t\tstyle={{ transform: `rotate(${nextRotation}deg)` }}\n\t\t\t\t\t/>\n\t\t\t\t</UnstyledButton>\n\t\t\t</>\n\t\t);\n\t},\n);\n\nLightboxControls.classes = classes;\n\nLightboxControls.displayName = \"LightboxControls\";\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { factory, useProps, Text } from '@mantine/core';
4
+ import { useLightboxContext } from '../context/LightboxContext.mjs';
5
+ import classes from '../styles/Lightbox.module.css.mjs';
6
+
7
+ const LightboxCounter = factory(
8
+ (_props, ref) => {
9
+ const props = useProps("LightboxCounter", null, _props);
10
+ const { classNames, className, style, styles, vars, formatter, ...others } = props;
11
+ const { currentIndex, slideCount, getStyles } = useLightboxContext();
12
+ if (slideCount === null) {
13
+ return null;
14
+ }
15
+ const label = formatter ? formatter(currentIndex, slideCount) : `${currentIndex + 1} / ${slideCount}`;
16
+ return /* @__PURE__ */ jsx(
17
+ Text,
18
+ {
19
+ ref,
20
+ size: "sm",
21
+ ...getStyles("counter", { className, style, classNames, styles }),
22
+ ...others,
23
+ children: label
24
+ }
25
+ );
26
+ }
27
+ );
28
+ LightboxCounter.classes = classes;
29
+ LightboxCounter.displayName = "LightboxCounter";
30
+
31
+ export { LightboxCounter };
32
+ //# sourceMappingURL=LightboxCounter.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LightboxCounter.mjs","sources":["../../../src/components/LightboxCounter.tsx"],"sourcesContent":["import {\n\ttype BoxProps,\n\ttype CompoundStylesApiProps,\n\ttype Factory,\n\tfactory,\n\tText,\n\tuseProps,\n} from \"@mantine/core\";\nimport { useLightboxContext } from \"../context/LightboxContext.js\";\nimport classes from \"../styles/Lightbox.module.css\";\n\nexport type LightboxCounterStylesNames = \"counter\";\n\nexport interface LightboxCounterProps\n\textends BoxProps,\n\t\tCompoundStylesApiProps<LightboxCounterFactory> {\n\t/** Custom formatter for the counter label, `(i, t) => \\`${i + 1} / ${t}\\`` by default */\n\tformatter?: (index: number, total: number) => string;\n}\n\nexport type LightboxCounterFactory = Factory<{\n\tprops: LightboxCounterProps;\n\tref: HTMLParagraphElement;\n\tstylesNames: LightboxCounterStylesNames;\n\tcompound: true;\n}>;\n\nexport const LightboxCounter = factory<LightboxCounterFactory>(\n\t(_props, ref) => {\n\t\tconst props = useProps(\"LightboxCounter\", null, _props);\n\n\t\tconst { classNames, className, style, styles, vars, formatter, ...others } =\n\t\t\tprops;\n\n\t\tconst { currentIndex, slideCount, getStyles } = useLightboxContext();\n\n\t\tif (slideCount === null) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst label = formatter\n\t\t\t? formatter(currentIndex, slideCount)\n\t\t\t: `${currentIndex + 1} / ${slideCount}`;\n\n\t\treturn (\n\t\t\t<Text\n\t\t\t\tref={ref}\n\t\t\t\tsize=\"sm\"\n\t\t\t\t{...getStyles(\"counter\", { className, style, classNames, styles })}\n\t\t\t\t{...others}\n\t\t\t>\n\t\t\t\t{label}\n\t\t\t</Text>\n\t\t);\n\t},\n);\n\nLightboxCounter.classes = classes;\n\nLightboxCounter.displayName = \"LightboxCounter\";\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,39 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { factory, useProps, ActionIcon } from '@mantine/core';
4
+ import { useLightboxContext } from '../context/LightboxContext.mjs';
5
+ import classes from '../styles/Lightbox.module.css.mjs';
6
+ import { EnterFullscreen } from './icons/EnterFullscreen.mjs';
7
+ import { ExitFullscreen } from './icons/ExitFullscreen.mjs';
8
+
9
+ const LightboxFullscreenButton = factory((_props, ref) => {
10
+ const props = useProps("LightboxFullscreenButton", null, _props);
11
+ const { classNames, className, style, styles, vars, ...others } = props;
12
+ const { withFullscreen, isFullscreen, toggleFullscreen, getStyles } = useLightboxContext();
13
+ if (!withFullscreen) {
14
+ return null;
15
+ }
16
+ return /* @__PURE__ */ jsx(
17
+ ActionIcon,
18
+ {
19
+ ref,
20
+ variant: "default",
21
+ size: "lg",
22
+ onClick: toggleFullscreen,
23
+ "aria-label": `${isFullscreen ? "Exit" : "Enter"} fullscreen`,
24
+ ...getStyles("fullscreenButton", {
25
+ className,
26
+ style,
27
+ classNames,
28
+ styles
29
+ }),
30
+ ...others,
31
+ children: isFullscreen ? /* @__PURE__ */ jsx(ExitFullscreen, {}) : /* @__PURE__ */ jsx(EnterFullscreen, {})
32
+ }
33
+ );
34
+ });
35
+ LightboxFullscreenButton.classes = classes;
36
+ LightboxFullscreenButton.displayName = "LightboxFullscreenButton";
37
+
38
+ export { LightboxFullscreenButton };
39
+ //# sourceMappingURL=LightboxFullscreenButton.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LightboxFullscreenButton.mjs","sources":["../../../src/components/LightboxFullscreenButton.tsx"],"sourcesContent":["import {\n\tActionIcon,\n\ttype BoxProps,\n\ttype CompoundStylesApiProps,\n\ttype ElementProps,\n\ttype Factory,\n\tfactory,\n\tuseProps,\n} from \"@mantine/core\";\nimport { useLightboxContext } from \"../context/LightboxContext.js\";\nimport classes from \"../styles/Lightbox.module.css\";\nimport { EnterFullscreen } from \"./icons/EnterFullscreen.js\";\nimport { ExitFullscreen } from \"./icons/ExitFullscreen.js\";\n\nexport type LightboxFullscreenButtonStylesNames = \"fullscreenButton\";\n\nexport interface LightboxFullscreenButtonProps\n\textends BoxProps,\n\t\tCompoundStylesApiProps<LightboxFullscreenButtonFactory>,\n\t\tElementProps<\"button\"> {}\n\nexport type LightboxFullscreenButtonFactory = Factory<{\n\tprops: LightboxFullscreenButtonProps;\n\tref: HTMLButtonElement;\n\tstylesNames: LightboxFullscreenButtonStylesNames;\n\tcompound: true;\n}>;\n\nexport const LightboxFullscreenButton =\n\tfactory<LightboxFullscreenButtonFactory>((_props, ref) => {\n\t\tconst props = useProps(\"LightboxFullscreenButton\", null, _props);\n\n\t\tconst { classNames, className, style, styles, vars, ...others } = props;\n\n\t\tconst { withFullscreen, isFullscreen, toggleFullscreen, getStyles } =\n\t\t\tuseLightboxContext();\n\n\t\tif (!withFullscreen) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn (\n\t\t\t<ActionIcon\n\t\t\t\tref={ref}\n\t\t\t\tvariant=\"default\"\n\t\t\t\tsize=\"lg\"\n\t\t\t\tonClick={toggleFullscreen}\n\t\t\t\taria-label={`${isFullscreen ? \"Exit\" : \"Enter\"} fullscreen`}\n\t\t\t\t{...getStyles(\"fullscreenButton\", {\n\t\t\t\t\tclassName,\n\t\t\t\t\tstyle,\n\t\t\t\t\tclassNames,\n\t\t\t\t\tstyles,\n\t\t\t\t})}\n\t\t\t\t{...others}\n\t\t\t>\n\t\t\t\t{isFullscreen ? <ExitFullscreen /> : <EnterFullscreen />}\n\t\t\t</ActionIcon>\n\t\t);\n\t});\n\nLightboxFullscreenButton.classes = classes;\n\nLightboxFullscreenButton.displayName = \"LightboxFullscreenButton\";\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ 'use client';
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { useProps, Transition, Overlay } from '@mantine/core';
4
+ import { useLightboxContext } from '../Lightbox.context.mjs';
5
+
6
+ const defaultProps = {
7
+ fixed: true,
8
+ backgroundOpacity: 0.9,
9
+ color: "#18181B",
10
+ zIndex: 200
11
+ };
12
+ function LightboxOverlay(_props) {
13
+ const props = useProps("LightboxOverlay", defaultProps, _props);
14
+ const { className, style, ...overlayProps } = props;
15
+ const { opened, keepMounted, getStyles } = useLightboxContext();
16
+ return /* @__PURE__ */ jsx(
17
+ Transition,
18
+ {
19
+ transition: "fade",
20
+ duration: 250,
21
+ mounted: opened,
22
+ keepMounted,
23
+ children: (transitionStyles) => /* @__PURE__ */ jsx(
24
+ Overlay,
25
+ {
26
+ ...overlayProps,
27
+ ...getStyles("overlay", {
28
+ className,
29
+ style: [transitionStyles, style]
30
+ })
31
+ }
32
+ )
33
+ }
34
+ );
35
+ }
36
+
37
+ export { LightboxOverlay };
38
+ //# sourceMappingURL=LightboxOverlay.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LightboxOverlay.mjs","sources":["../../../src/components/LightboxOverlay.tsx"],"sourcesContent":["import {\n\tOverlay,\n\ttype OverlayProps,\n\tTransition,\n\tuseProps,\n} from \"@mantine/core\";\nimport { useLightboxContext } from \"../Lightbox.context.js\";\n\nexport type LightboxOverlayProps = OverlayProps;\n\nconst defaultProps: Partial<LightboxOverlayProps> = {\n\tfixed: true,\n\tbackgroundOpacity: 0.9,\n\tcolor: \"#18181B\",\n\tzIndex: 200,\n};\n\nexport function LightboxOverlay(_props: LightboxOverlayProps) {\n\tconst props = useProps(\"LightboxOverlay\", defaultProps, _props);\n\tconst { className, style, ...overlayProps } = props;\n\n\tconst { opened, keepMounted, getStyles } = useLightboxContext();\n\n\treturn (\n\t\t<Transition\n\t\t\ttransition=\"fade\"\n\t\t\tduration={250}\n\t\t\tmounted={opened}\n\t\t\tkeepMounted={keepMounted}\n\t\t>\n\t\t\t{(transitionStyles) => (\n\t\t\t\t<Overlay\n\t\t\t\t\t{...overlayProps}\n\t\t\t\t\t{...getStyles(\"overlay\", {\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t\tstyle: [transitionStyles, style],\n\t\t\t\t\t})}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</Transition>\n\t);\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,30 @@
1
+ 'use client';
2
+ import { jsxs, jsx } from 'react/jsx-runtime';
3
+ import { LightboxCarousel } from './LightboxCarousel.mjs';
4
+ import { LightboxContent } from './LightboxContent.mjs';
5
+ import { LightboxCounter } from './LightboxCounter.mjs';
6
+ import { LightboxOverlay } from './LightboxOverlay.mjs';
7
+ import { LightboxRoot } from './LightboxRoot.mjs';
8
+ import { LightboxThumbnails } from './LightboxThumbnails.mjs';
9
+ import { LightboxToolbar } from './LightboxToolbar.mjs';
10
+
11
+ function LightboxPreset({
12
+ children,
13
+ withToolbar = true,
14
+ withCounter = true,
15
+ withThumbnails = true,
16
+ ...rootProps
17
+ }) {
18
+ return /* @__PURE__ */ jsxs(LightboxRoot, { ...rootProps, children: [
19
+ /* @__PURE__ */ jsx(LightboxOverlay, {}),
20
+ /* @__PURE__ */ jsxs(LightboxContent, { children: [
21
+ withToolbar && /* @__PURE__ */ jsx(LightboxToolbar, {}),
22
+ withCounter && /* @__PURE__ */ jsx(LightboxCounter, {}),
23
+ /* @__PURE__ */ jsx(LightboxCarousel, { children }),
24
+ withThumbnails && /* @__PURE__ */ jsx(LightboxThumbnails, {})
25
+ ] })
26
+ ] });
27
+ }
28
+
29
+ export { LightboxPreset };
30
+ //# sourceMappingURL=LightboxPreset.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LightboxPreset.mjs","sources":["../../../src/components/LightboxPreset.tsx"],"sourcesContent":["import type { ReactNode } from \"react\";\nimport type { LightboxProps } from \"../Lightbox.js\";\nimport { LightboxCarousel } from \"./LightboxCarousel.js\";\nimport { LightboxContent } from \"./LightboxContent.js\";\nimport { LightboxCounter } from \"./LightboxCounter.js\";\nimport { LightboxOverlay } from \"./LightboxOverlay.js\";\nimport { LightboxRoot } from \"./LightboxRoot.js\";\nimport { LightboxThumbnails } from \"./LightboxThumbnails.js\";\nimport { LightboxToolbar } from \"./LightboxToolbar.js\";\n\nexport interface LightboxPresetProps extends LightboxProps {\n\tchildren?: ReactNode;\n\twithToolbar?: boolean;\n\twithCounter?: boolean;\n\twithThumbnails?: boolean;\n}\n\nexport function LightboxPreset({\n\tchildren,\n\twithToolbar = true,\n\twithCounter = true,\n\twithThumbnails = true,\n\t...rootProps\n}: LightboxPresetProps) {\n\treturn (\n\t\t<LightboxRoot {...rootProps}>\n\t\t\t<LightboxOverlay />\n\t\t\t<LightboxContent>\n\t\t\t\t{withToolbar && <LightboxToolbar />}\n\t\t\t\t{withCounter && <LightboxCounter />}\n\t\t\t\t<LightboxCarousel>{children}</LightboxCarousel>\n\t\t\t\t{withThumbnails && <LightboxThumbnails />}\n\t\t\t</LightboxContent>\n\t\t</LightboxRoot>\n\t);\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,258 @@
1
+ 'use client';
2
+ import { jsx, jsxs } from 'react/jsx-runtime';
3
+ import { getDefaultZIndex, factory, useProps, useStyles, OptionalPortal, RemoveScroll, Transition, Overlay, Box } from '@mantine/core';
4
+ import { useFocusTrap, useMergedRef, useFocusReturn, useFullscreen, useHotkeys } from '@mantine/hooks';
5
+ import { useRef, useState, useEffect, useCallback } from 'react';
6
+ import { LightboxProvider } from '../context/LightboxContext.mjs';
7
+ import { useAutoPlay } from '../hooks/useAutoPlay.mjs';
8
+ import { useZoom } from '../hooks/useZoom.mjs';
9
+ import classes from '../styles/Lightbox.module.css.mjs';
10
+ import { LightboxAutoplayButton } from './LightboxAutoplayButton.mjs';
11
+ import { LightboxCloseButton } from './LightboxCloseButton.mjs';
12
+ import { LightboxControls } from './LightboxControls.mjs';
13
+ import { LightboxCounter } from './LightboxCounter.mjs';
14
+ import { LightboxFullscreenButton } from './LightboxFullscreenButton.mjs';
15
+ import { LightboxSlide } from './LightboxSlide.mjs';
16
+ import { LightboxSlides } from './LightboxSlides.mjs';
17
+ import { LightboxThumbnail } from './LightboxThumbnail.mjs';
18
+ import { LightboxThumbnails } from './LightboxThumbnails.mjs';
19
+ import { LightboxToolbar } from './LightboxToolbar.mjs';
20
+ import { LightboxZoomButton } from './LightboxZoomButton.mjs';
21
+
22
+ const defaultProps = {
23
+ closeOnClickOutside: true,
24
+ keepMounted: false,
25
+ trapFocus: true,
26
+ lockScroll: true,
27
+ returnFocus: true,
28
+ withinPortal: true,
29
+ withZoom: true,
30
+ withFullscreen: true,
31
+ orientation: "horizontal",
32
+ transitionProps: {
33
+ transition: "fade",
34
+ duration: 250
35
+ },
36
+ overlayProps: {
37
+ fixed: true,
38
+ backgroundOpacity: 0.9,
39
+ color: "#18181B",
40
+ zIndex: getDefaultZIndex("modal")
41
+ }
42
+ };
43
+ const LightboxRoot = factory((_props, ref) => {
44
+ const props = useProps("Lightbox", defaultProps, _props);
45
+ const {
46
+ opened,
47
+ onClose,
48
+ classNames,
49
+ className,
50
+ style,
51
+ styles,
52
+ unstyled,
53
+ vars,
54
+ children,
55
+ closeOnClickOutside,
56
+ keepMounted,
57
+ trapFocus,
58
+ lockScroll,
59
+ returnFocus,
60
+ withinPortal,
61
+ transitionProps,
62
+ overlayProps,
63
+ orientation,
64
+ withZoom,
65
+ withFullscreen,
66
+ ...others
67
+ } = props;
68
+ const getStyles = useStyles({
69
+ name: "Lightbox",
70
+ classes,
71
+ props,
72
+ className,
73
+ style,
74
+ classNames,
75
+ styles,
76
+ unstyled,
77
+ vars
78
+ });
79
+ const _transitionProps = {
80
+ ...defaultProps.transitionProps,
81
+ ...transitionProps
82
+ };
83
+ const _overlayProps = { ...defaultProps.overlayProps, ...overlayProps };
84
+ const focusTrapRef = useFocusTrap(opened && trapFocus);
85
+ const mergedRef = useMergedRef(ref, focusTrapRef);
86
+ useFocusReturn({ opened, shouldReturnFocus: returnFocus });
87
+ const slidesEmblaRef = useRef(null);
88
+ const thumbnailsEmblaRef = useRef(null);
89
+ const [currentIndex, setCurrentIndex] = useState(0);
90
+ const [slideCount, setSlideCount] = useState(null);
91
+ const {
92
+ isZoomed,
93
+ isZoomedRef,
94
+ isDraggingZoom,
95
+ zoomOffset,
96
+ zoomScale,
97
+ canZoomCurrent,
98
+ activeZoomContainerRef,
99
+ resetZoom,
100
+ toggleZoom,
101
+ updateCanZoomAvailability,
102
+ handleZoomPointerDown,
103
+ handleZoomPointerMove,
104
+ handleZoomPointerEnd
105
+ } = useZoom({ opened, withZoom });
106
+ const {
107
+ canAutoPlay,
108
+ isPlaying,
109
+ toggleAutoPlay,
110
+ notifyAutoPlayInteraction,
111
+ handleEmblaApiForAutoPlay
112
+ } = useAutoPlay();
113
+ const { fullscreen: isFullscreen, toggle: toggleFullscreen } = useFullscreen();
114
+ useEffect(() => {
115
+ if (opened || typeof document === "undefined" || !document.fullscreenElement || typeof document.exitFullscreen !== "function") {
116
+ return;
117
+ }
118
+ void document.exitFullscreen();
119
+ }, [opened]);
120
+ useHotkeys([
121
+ [
122
+ "ArrowLeft",
123
+ () => orientation === "horizontal" && opened && slidesEmblaRef.current?.scrollPrev()
124
+ ],
125
+ [
126
+ "ArrowRight",
127
+ () => orientation === "horizontal" && opened && slidesEmblaRef.current?.scrollNext()
128
+ ],
129
+ [
130
+ "ArrowUp",
131
+ () => orientation === "vertical" && opened && slidesEmblaRef.current?.scrollPrev()
132
+ ],
133
+ [
134
+ "ArrowDown",
135
+ () => orientation === "vertical" && opened && slidesEmblaRef.current?.scrollNext()
136
+ ],
137
+ ["Escape", () => opened && onClose()]
138
+ ]);
139
+ const handleSlideChange = useCallback(
140
+ (index) => {
141
+ setCurrentIndex(index);
142
+ resetZoom();
143
+ requestAnimationFrame(updateCanZoomAvailability);
144
+ },
145
+ [resetZoom, updateCanZoomAvailability]
146
+ );
147
+ const handleThumbnailClick = useCallback(
148
+ (index) => {
149
+ notifyAutoPlayInteraction();
150
+ slidesEmblaRef.current?.scrollTo(index);
151
+ resetZoom();
152
+ },
153
+ [notifyAutoPlayInteraction, resetZoom]
154
+ );
155
+ const handleScrollPrev = useCallback(() => {
156
+ notifyAutoPlayInteraction();
157
+ slidesEmblaRef.current?.scrollPrev();
158
+ }, [notifyAutoPlayInteraction]);
159
+ const handleScrollNext = useCallback(() => {
160
+ notifyAutoPlayInteraction();
161
+ slidesEmblaRef.current?.scrollNext();
162
+ }, [notifyAutoPlayInteraction]);
163
+ const handleOutsideClick = useCallback(() => {
164
+ if (!closeOnClickOutside) {
165
+ return;
166
+ }
167
+ onClose();
168
+ }, [closeOnClickOutside, onClose]);
169
+ const handleToggleZoom = useCallback(() => {
170
+ notifyAutoPlayInteraction();
171
+ toggleZoom();
172
+ }, [notifyAutoPlayInteraction, toggleZoom]);
173
+ return /* @__PURE__ */ jsx(OptionalPortal, { withinPortal, children: /* @__PURE__ */ jsx(RemoveScroll, { enabled: lockScroll && opened, children: /* @__PURE__ */ jsx(
174
+ Transition,
175
+ {
176
+ ..._transitionProps,
177
+ mounted: opened,
178
+ keepMounted,
179
+ children: (transitionStyles) => /* @__PURE__ */ jsxs(
180
+ LightboxProvider,
181
+ {
182
+ value: {
183
+ getStyles,
184
+ opened,
185
+ currentIndex,
186
+ slideCount,
187
+ slidesEmblaRef,
188
+ thumbnailsEmblaRef,
189
+ setCurrentIndex: handleSlideChange,
190
+ setSlideCount,
191
+ onClose,
192
+ onOutsideClick: handleOutsideClick,
193
+ onThumbnailClick: handleThumbnailClick,
194
+ onScrollPrev: handleScrollPrev,
195
+ onScrollNext: handleScrollNext,
196
+ orientation,
197
+ canAutoPlay,
198
+ isPlaying,
199
+ toggleAutoPlay,
200
+ onSlidesEmblaApi: handleEmblaApiForAutoPlay,
201
+ withFullscreen,
202
+ isFullscreen,
203
+ toggleFullscreen,
204
+ withZoom,
205
+ isZoomed,
206
+ isZoomedRef,
207
+ isDraggingZoom,
208
+ canZoomCurrent,
209
+ zoomOffset,
210
+ zoomScale,
211
+ activeZoomContainerRef,
212
+ toggleZoom: handleToggleZoom,
213
+ updateCanZoomAvailability,
214
+ handleZoomPointerDown,
215
+ handleZoomPointerMove,
216
+ handleZoomPointerEnd
217
+ },
218
+ children: [
219
+ /* @__PURE__ */ jsx(
220
+ Overlay,
221
+ {
222
+ ..._overlayProps,
223
+ ...getStyles("overlay", { style: transitionStyles })
224
+ }
225
+ ),
226
+ /* @__PURE__ */ jsx(
227
+ Box,
228
+ {
229
+ ref: mergedRef,
230
+ ...getStyles("root", { style: transitionStyles }),
231
+ "data-orientation": orientation,
232
+ ...others,
233
+ children
234
+ }
235
+ )
236
+ ]
237
+ }
238
+ )
239
+ }
240
+ ) }) });
241
+ });
242
+ LightboxRoot.displayName = "LightboxRoot";
243
+ LightboxRoot.classes = classes;
244
+ LightboxRoot.Root = LightboxRoot;
245
+ LightboxRoot.Toolbar = LightboxToolbar;
246
+ LightboxRoot.Counter = LightboxCounter;
247
+ LightboxRoot.Controls = LightboxControls;
248
+ LightboxRoot.Slides = LightboxSlides;
249
+ LightboxRoot.Thumbnails = LightboxThumbnails;
250
+ LightboxRoot.Thumbnail = LightboxThumbnail;
251
+ LightboxRoot.Slide = LightboxSlide;
252
+ LightboxRoot.CloseButton = LightboxCloseButton;
253
+ LightboxRoot.ZoomButton = LightboxZoomButton;
254
+ LightboxRoot.FullscreenButton = LightboxFullscreenButton;
255
+ LightboxRoot.AutoplayButton = LightboxAutoplayButton;
256
+
257
+ export { LightboxRoot };
258
+ //# sourceMappingURL=LightboxRoot.mjs.map