@jarrodmedrano/ui 0.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 (575) hide show
  1. package/README.md +108 -0
  2. package/dist/components/auth/providers.cjs +83 -0
  3. package/dist/components/auth/providers.cjs.map +1 -0
  4. package/dist/components/auth/providers.d.ts +19 -0
  5. package/dist/components/auth/providers.d.ts.map +1 -0
  6. package/dist/components/auth/providers.js +59 -0
  7. package/dist/components/auth/providers.js.map +1 -0
  8. package/dist/components/card/back-button.cjs +45 -0
  9. package/dist/components/card/back-button.cjs.map +1 -0
  10. package/dist/components/card/back-button.d.ts +7 -0
  11. package/dist/components/card/back-button.d.ts.map +1 -0
  12. package/dist/components/card/back-button.js +11 -0
  13. package/dist/components/card/back-button.js.map +1 -0
  14. package/dist/components/card/card-wrapper.cjs +56 -0
  15. package/dist/components/card/card-wrapper.cjs.map +1 -0
  16. package/dist/components/card/card-wrapper.d.ts +11 -0
  17. package/dist/components/card/card-wrapper.d.ts.map +1 -0
  18. package/dist/components/card/card-wrapper.js +36 -0
  19. package/dist/components/card/card-wrapper.js.map +1 -0
  20. package/dist/components/card/header.cjs +52 -0
  21. package/dist/components/card/header.cjs.map +1 -0
  22. package/dist/components/card/header.d.ts +8 -0
  23. package/dist/components/card/header.d.ts.map +1 -0
  24. package/dist/components/card/header.js +18 -0
  25. package/dist/components/card/header.js.map +1 -0
  26. package/dist/components/combobox/ComboList.cjs +78 -0
  27. package/dist/components/combobox/ComboList.cjs.map +1 -0
  28. package/dist/components/combobox/ComboList.d.ts +14 -0
  29. package/dist/components/combobox/ComboList.d.ts.map +1 -0
  30. package/dist/components/combobox/ComboList.js +61 -0
  31. package/dist/components/combobox/ComboList.js.map +1 -0
  32. package/dist/components/combobox/index.cjs +119 -0
  33. package/dist/components/combobox/index.cjs.map +1 -0
  34. package/dist/components/combobox/index.d.ts +6 -0
  35. package/dist/components/combobox/index.d.ts.map +1 -0
  36. package/dist/components/combobox/index.js +101 -0
  37. package/dist/components/combobox/index.js.map +1 -0
  38. package/dist/components/dashboard/account-select.cjs +69 -0
  39. package/dist/components/dashboard/account-select.cjs.map +1 -0
  40. package/dist/components/dashboard/account-select.d.ts +12 -0
  41. package/dist/components/dashboard/account-select.d.ts.map +1 -0
  42. package/dist/components/dashboard/account-select.js +41 -0
  43. package/dist/components/dashboard/account-select.js.map +1 -0
  44. package/dist/components/dashboard/account-switcher.cjs +72 -0
  45. package/dist/components/dashboard/account-switcher.cjs.map +1 -0
  46. package/dist/components/dashboard/account-switcher.d.ts +12 -0
  47. package/dist/components/dashboard/account-switcher.d.ts.map +1 -0
  48. package/dist/components/dashboard/account-switcher.js +44 -0
  49. package/dist/components/dashboard/account-switcher.js.map +1 -0
  50. package/dist/components/dashboard/sidebar/CollapsibleSection.cjs +100 -0
  51. package/dist/components/dashboard/sidebar/CollapsibleSection.cjs.map +1 -0
  52. package/dist/components/dashboard/sidebar/CollapsibleSection.d.ts +3 -0
  53. package/dist/components/dashboard/sidebar/CollapsibleSection.d.ts.map +1 -0
  54. package/dist/components/dashboard/sidebar/CollapsibleSection.js +81 -0
  55. package/dist/components/dashboard/sidebar/CollapsibleSection.js.map +1 -0
  56. package/dist/components/dashboard/sidebar/CollapsibleSection.styles.cjs +77 -0
  57. package/dist/components/dashboard/sidebar/CollapsibleSection.styles.cjs.map +1 -0
  58. package/dist/components/dashboard/sidebar/CollapsibleSection.styles.d.ts +9 -0
  59. package/dist/components/dashboard/sidebar/CollapsibleSection.styles.d.ts.map +1 -0
  60. package/dist/components/dashboard/sidebar/CollapsibleSection.styles.js +40 -0
  61. package/dist/components/dashboard/sidebar/CollapsibleSection.styles.js.map +1 -0
  62. package/dist/components/dashboard/sidebar/EntityList.cjs +121 -0
  63. package/dist/components/dashboard/sidebar/EntityList.cjs.map +1 -0
  64. package/dist/components/dashboard/sidebar/EntityList.d.ts +3 -0
  65. package/dist/components/dashboard/sidebar/EntityList.d.ts.map +1 -0
  66. package/dist/components/dashboard/sidebar/EntityList.js +87 -0
  67. package/dist/components/dashboard/sidebar/EntityList.js.map +1 -0
  68. package/dist/components/dashboard/sidebar/EntityList.styles.cjs +95 -0
  69. package/dist/components/dashboard/sidebar/EntityList.styles.cjs.map +1 -0
  70. package/dist/components/dashboard/sidebar/EntityList.styles.d.ts +14 -0
  71. package/dist/components/dashboard/sidebar/EntityList.styles.d.ts.map +1 -0
  72. package/dist/components/dashboard/sidebar/EntityList.styles.js +57 -0
  73. package/dist/components/dashboard/sidebar/EntityList.styles.js.map +1 -0
  74. package/dist/components/dashboard/sidebar/SectionHeader.cjs +99 -0
  75. package/dist/components/dashboard/sidebar/SectionHeader.cjs.map +1 -0
  76. package/dist/components/dashboard/sidebar/SectionHeader.d.ts +3 -0
  77. package/dist/components/dashboard/sidebar/SectionHeader.d.ts.map +1 -0
  78. package/dist/components/dashboard/sidebar/SectionHeader.js +81 -0
  79. package/dist/components/dashboard/sidebar/SectionHeader.js.map +1 -0
  80. package/dist/components/dashboard/sidebar/SectionHeader.styles.cjs +116 -0
  81. package/dist/components/dashboard/sidebar/SectionHeader.styles.cjs.map +1 -0
  82. package/dist/components/dashboard/sidebar/SectionHeader.styles.d.ts +18 -0
  83. package/dist/components/dashboard/sidebar/SectionHeader.styles.d.ts.map +1 -0
  84. package/dist/components/dashboard/sidebar/SectionHeader.styles.js +77 -0
  85. package/dist/components/dashboard/sidebar/SectionHeader.styles.js.map +1 -0
  86. package/dist/components/dashboard/sidebar/index.cjs +41 -0
  87. package/dist/components/dashboard/sidebar/index.cjs.map +1 -0
  88. package/dist/components/dashboard/sidebar/index.d.ts +6 -0
  89. package/dist/components/dashboard/sidebar/index.d.ts.map +1 -0
  90. package/dist/components/dashboard/sidebar/index.js +12 -0
  91. package/dist/components/dashboard/sidebar/index.js.map +1 -0
  92. package/dist/components/dashboard/sidebar/sidebar.cjs +50 -0
  93. package/dist/components/dashboard/sidebar/sidebar.cjs.map +1 -0
  94. package/dist/components/dashboard/sidebar/sidebar.d.ts +15 -0
  95. package/dist/components/dashboard/sidebar/sidebar.d.ts.map +1 -0
  96. package/dist/components/dashboard/sidebar/sidebar.js +26 -0
  97. package/dist/components/dashboard/sidebar/sidebar.js.map +1 -0
  98. package/dist/components/dashboard/sidebar/tabs.cjs +52 -0
  99. package/dist/components/dashboard/sidebar/tabs.cjs.map +1 -0
  100. package/dist/components/dashboard/sidebar/tabs.d.ts +3 -0
  101. package/dist/components/dashboard/sidebar/tabs.d.ts.map +1 -0
  102. package/dist/components/dashboard/sidebar/tabs.js +37 -0
  103. package/dist/components/dashboard/sidebar/tabs.js.map +1 -0
  104. package/dist/components/dashboard/sidebar/types.cjs +17 -0
  105. package/dist/components/dashboard/sidebar/types.cjs.map +1 -0
  106. package/dist/components/dashboard/sidebar/types.d.ts +36 -0
  107. package/dist/components/dashboard/sidebar/types.d.ts.map +1 -0
  108. package/dist/components/dashboard/sidebar/types.js +1 -0
  109. package/dist/components/dashboard/sidebar/types.js.map +1 -0
  110. package/dist/components/dashboard/sidebar-nav.cjs +99 -0
  111. package/dist/components/dashboard/sidebar-nav.cjs.map +1 -0
  112. package/dist/components/dashboard/sidebar-nav.d.ts +24 -0
  113. package/dist/components/dashboard/sidebar-nav.d.ts.map +1 -0
  114. package/dist/components/dashboard/sidebar-nav.js +75 -0
  115. package/dist/components/dashboard/sidebar-nav.js.map +1 -0
  116. package/dist/components/dashboard/utils/build-nav.cjs +103 -0
  117. package/dist/components/dashboard/utils/build-nav.cjs.map +1 -0
  118. package/dist/components/dashboard/utils/build-nav.d.ts +7 -0
  119. package/dist/components/dashboard/utils/build-nav.d.ts.map +1 -0
  120. package/dist/components/dashboard/utils/build-nav.js +78 -0
  121. package/dist/components/dashboard/utils/build-nav.js.map +1 -0
  122. package/dist/components/dashboard/utils.cjs +2 -0
  123. package/dist/components/dashboard/utils.cjs.map +1 -0
  124. package/dist/components/dashboard/utils.d.ts +1 -0
  125. package/dist/components/dashboard/utils.d.ts.map +1 -0
  126. package/dist/components/dashboard/utils.js +1 -0
  127. package/dist/components/dashboard/utils.js.map +1 -0
  128. package/dist/components/dashboard/with-dashboard.cjs +189 -0
  129. package/dist/components/dashboard/with-dashboard.cjs.map +1 -0
  130. package/dist/components/dashboard/with-dashboard.d.ts +6 -0
  131. package/dist/components/dashboard/with-dashboard.d.ts.map +1 -0
  132. package/dist/components/dashboard/with-dashboard.js +175 -0
  133. package/dist/components/dashboard/with-dashboard.js.map +1 -0
  134. package/dist/components/detail/DetailLayout.styles.cjs +116 -0
  135. package/dist/components/detail/DetailLayout.styles.cjs.map +1 -0
  136. package/dist/components/detail/DetailLayout.styles.d.ts +18 -0
  137. package/dist/components/detail/DetailLayout.styles.d.ts.map +1 -0
  138. package/dist/components/detail/DetailLayout.styles.js +74 -0
  139. package/dist/components/detail/DetailLayout.styles.js.map +1 -0
  140. package/dist/components/detail/index.cjs +45 -0
  141. package/dist/components/detail/index.cjs.map +1 -0
  142. package/dist/components/detail/index.d.ts +2 -0
  143. package/dist/components/detail/index.d.ts.map +1 -0
  144. package/dist/components/detail/index.js +23 -0
  145. package/dist/components/detail/index.js.map +1 -0
  146. package/dist/components/flowbite/card-images.cjs +104 -0
  147. package/dist/components/flowbite/card-images.cjs.map +1 -0
  148. package/dist/components/flowbite/card-images.d.ts +3 -0
  149. package/dist/components/flowbite/card-images.d.ts.map +1 -0
  150. package/dist/components/flowbite/card-images.js +84 -0
  151. package/dist/components/flowbite/card-images.js.map +1 -0
  152. package/dist/components/flowbite/gallery.cjs +53 -0
  153. package/dist/components/flowbite/gallery.cjs.map +1 -0
  154. package/dist/components/flowbite/gallery.d.ts +3 -0
  155. package/dist/components/flowbite/gallery.d.ts.map +1 -0
  156. package/dist/components/flowbite/gallery.js +23 -0
  157. package/dist/components/flowbite/gallery.js.map +1 -0
  158. package/dist/components/flowbite/masonry.cjs +73 -0
  159. package/dist/components/flowbite/masonry.cjs.map +1 -0
  160. package/dist/components/flowbite/masonry.d.ts +13 -0
  161. package/dist/components/flowbite/masonry.d.ts.map +1 -0
  162. package/dist/components/flowbite/masonry.js +43 -0
  163. package/dist/components/flowbite/masonry.js.map +1 -0
  164. package/dist/components/flowbite/search-hero.cjs +109 -0
  165. package/dist/components/flowbite/search-hero.cjs.map +1 -0
  166. package/dist/components/flowbite/search-hero.d.ts +6 -0
  167. package/dist/components/flowbite/search-hero.d.ts.map +1 -0
  168. package/dist/components/flowbite/search-hero.js +89 -0
  169. package/dist/components/flowbite/search-hero.js.map +1 -0
  170. package/dist/components/generic/copyright.cjs +32 -0
  171. package/dist/components/generic/copyright.cjs.map +1 -0
  172. package/dist/components/generic/copyright.d.ts +4 -0
  173. package/dist/components/generic/copyright.d.ts.map +1 -0
  174. package/dist/components/generic/copyright.js +8 -0
  175. package/dist/components/generic/copyright.js.map +1 -0
  176. package/dist/components/generic/icons.cjs +186 -0
  177. package/dist/components/generic/icons.cjs.map +1 -0
  178. package/dist/components/generic/icons.d.ts +19 -0
  179. package/dist/components/generic/icons.d.ts.map +1 -0
  180. package/dist/components/generic/icons.js +164 -0
  181. package/dist/components/generic/icons.js.map +1 -0
  182. package/dist/components/header/header.cjs +130 -0
  183. package/dist/components/header/header.cjs.map +1 -0
  184. package/dist/components/header/header.d.ts +14 -0
  185. package/dist/components/header/header.d.ts.map +1 -0
  186. package/dist/components/header/header.js +106 -0
  187. package/dist/components/header/header.js.map +1 -0
  188. package/dist/components/header/internal/main-nav.cjs +65 -0
  189. package/dist/components/header/internal/main-nav.cjs.map +1 -0
  190. package/dist/components/header/internal/main-nav.d.ts +4 -0
  191. package/dist/components/header/internal/main-nav.d.ts.map +1 -0
  192. package/dist/components/header/internal/main-nav.js +31 -0
  193. package/dist/components/header/internal/main-nav.js.map +1 -0
  194. package/dist/components/header/internal/mobile-nav.cjs +209 -0
  195. package/dist/components/header/internal/mobile-nav.cjs.map +1 -0
  196. package/dist/components/header/internal/mobile-nav.d.ts +2 -0
  197. package/dist/components/header/internal/mobile-nav.d.ts.map +1 -0
  198. package/dist/components/header/internal/mobile-nav.js +177 -0
  199. package/dist/components/header/internal/mobile-nav.js.map +1 -0
  200. package/dist/components/header/internal/mode-toggle.cjs +73 -0
  201. package/dist/components/header/internal/mode-toggle.cjs.map +1 -0
  202. package/dist/components/header/internal/mode-toggle.d.ts +8 -0
  203. package/dist/components/header/internal/mode-toggle.d.ts.map +1 -0
  204. package/dist/components/header/internal/mode-toggle.js +54 -0
  205. package/dist/components/header/internal/mode-toggle.js.map +1 -0
  206. package/dist/components/header/internal/site-header.cjs +62 -0
  207. package/dist/components/header/internal/site-header.cjs.map +1 -0
  208. package/dist/components/header/internal/site-header.d.ts +15 -0
  209. package/dist/components/header/internal/site-header.d.ts.map +1 -0
  210. package/dist/components/header/internal/site-header.js +38 -0
  211. package/dist/components/header/internal/site-header.js.map +1 -0
  212. package/dist/components/header/langbutton/langbutton.cjs +54 -0
  213. package/dist/components/header/langbutton/langbutton.cjs.map +1 -0
  214. package/dist/components/header/langbutton/langbutton.d.ts +4 -0
  215. package/dist/components/header/langbutton/langbutton.d.ts.map +1 -0
  216. package/dist/components/header/langbutton/langbutton.js +35 -0
  217. package/dist/components/header/langbutton/langbutton.js.map +1 -0
  218. package/dist/components/header/userbutton/user-dropdown.cjs +72 -0
  219. package/dist/components/header/userbutton/user-dropdown.cjs.map +1 -0
  220. package/dist/components/header/userbutton/user-dropdown.d.ts +10 -0
  221. package/dist/components/header/userbutton/user-dropdown.d.ts.map +1 -0
  222. package/dist/components/header/userbutton/user-dropdown.js +64 -0
  223. package/dist/components/header/userbutton/user-dropdown.js.map +1 -0
  224. package/dist/components/header/userbutton/userbutton.cjs +50 -0
  225. package/dist/components/header/userbutton/userbutton.cjs.map +1 -0
  226. package/dist/components/header/userbutton/userbutton.d.ts +10 -0
  227. package/dist/components/header/userbutton/userbutton.d.ts.map +1 -0
  228. package/dist/components/header/userbutton/userbutton.js +16 -0
  229. package/dist/components/header/userbutton/userbutton.js.map +1 -0
  230. package/dist/components/hooks/use-page-nav.cjs +89 -0
  231. package/dist/components/hooks/use-page-nav.cjs.map +1 -0
  232. package/dist/components/hooks/use-page-nav.d.ts +5 -0
  233. package/dist/components/hooks/use-page-nav.d.ts.map +1 -0
  234. package/dist/components/hooks/use-page-nav.js +61 -0
  235. package/dist/components/hooks/use-page-nav.js.map +1 -0
  236. package/dist/components/hooks/use-user-entities.cjs +30 -0
  237. package/dist/components/hooks/use-user-entities.cjs.map +1 -0
  238. package/dist/components/hooks/use-user-entities.d.ts +2 -0
  239. package/dist/components/hooks/use-user-entities.d.ts.map +1 -0
  240. package/dist/components/hooks/use-user-entities.js +6 -0
  241. package/dist/components/hooks/use-user-entities.js.map +1 -0
  242. package/dist/components/icons/apple.cjs +47 -0
  243. package/dist/components/icons/apple.cjs.map +1 -0
  244. package/dist/components/icons/apple.d.ts +2 -0
  245. package/dist/components/icons/apple.d.ts.map +1 -0
  246. package/dist/components/icons/apple.js +23 -0
  247. package/dist/components/icons/apple.js.map +1 -0
  248. package/dist/components/icons/facebook.cjs +49 -0
  249. package/dist/components/icons/facebook.cjs.map +1 -0
  250. package/dist/components/icons/facebook.d.ts +2 -0
  251. package/dist/components/icons/facebook.d.ts.map +1 -0
  252. package/dist/components/icons/facebook.js +25 -0
  253. package/dist/components/icons/facebook.js.map +1 -0
  254. package/dist/components/icons/github.cjs +49 -0
  255. package/dist/components/icons/github.cjs.map +1 -0
  256. package/dist/components/icons/github.d.ts +2 -0
  257. package/dist/components/icons/github.d.ts.map +1 -0
  258. package/dist/components/icons/github.js +25 -0
  259. package/dist/components/icons/github.js.map +1 -0
  260. package/dist/components/icons/google.cjs +49 -0
  261. package/dist/components/icons/google.cjs.map +1 -0
  262. package/dist/components/icons/google.d.ts +2 -0
  263. package/dist/components/icons/google.d.ts.map +1 -0
  264. package/dist/components/icons/google.js +25 -0
  265. package/dist/components/icons/google.js.map +1 -0
  266. package/dist/components/icons/logo.cjs +49 -0
  267. package/dist/components/icons/logo.cjs.map +1 -0
  268. package/dist/components/icons/logo.d.ts +4 -0
  269. package/dist/components/icons/logo.d.ts.map +1 -0
  270. package/dist/components/icons/logo.js +25 -0
  271. package/dist/components/icons/logo.js.map +1 -0
  272. package/dist/components/lightbox/GallerySection.cjs +53 -0
  273. package/dist/components/lightbox/GallerySection.cjs.map +1 -0
  274. package/dist/components/lightbox/GallerySection.d.ts +12 -0
  275. package/dist/components/lightbox/GallerySection.d.ts.map +1 -0
  276. package/dist/components/lightbox/GallerySection.js +29 -0
  277. package/dist/components/lightbox/GallerySection.js.map +1 -0
  278. package/dist/components/lightbox/ImageLightbox.cjs +244 -0
  279. package/dist/components/lightbox/ImageLightbox.cjs.map +1 -0
  280. package/dist/components/lightbox/ImageLightbox.d.ts +3 -0
  281. package/dist/components/lightbox/ImageLightbox.d.ts.map +1 -0
  282. package/dist/components/lightbox/ImageLightbox.js +220 -0
  283. package/dist/components/lightbox/ImageLightbox.js.map +1 -0
  284. package/dist/components/lightbox/ImageLightbox.types.cjs +17 -0
  285. package/dist/components/lightbox/ImageLightbox.types.cjs.map +1 -0
  286. package/dist/components/lightbox/ImageLightbox.types.d.ts +28 -0
  287. package/dist/components/lightbox/ImageLightbox.types.d.ts.map +1 -0
  288. package/dist/components/lightbox/ImageLightbox.types.js +1 -0
  289. package/dist/components/lightbox/ImageLightbox.types.js.map +1 -0
  290. package/dist/components/lightbox/index.cjs +38 -0
  291. package/dist/components/lightbox/index.cjs.map +1 -0
  292. package/dist/components/lightbox/index.d.ts +8 -0
  293. package/dist/components/lightbox/index.d.ts.map +1 -0
  294. package/dist/components/lightbox/index.js +11 -0
  295. package/dist/components/lightbox/index.js.map +1 -0
  296. package/dist/components/lightbox/useEntityLightbox.cjs +57 -0
  297. package/dist/components/lightbox/useEntityLightbox.cjs.map +1 -0
  298. package/dist/components/lightbox/useEntityLightbox.d.ts +25 -0
  299. package/dist/components/lightbox/useEntityLightbox.d.ts.map +1 -0
  300. package/dist/components/lightbox/useEntityLightbox.js +33 -0
  301. package/dist/components/lightbox/useEntityLightbox.js.map +1 -0
  302. package/dist/components/lightbox/useLightbox.cjs +59 -0
  303. package/dist/components/lightbox/useLightbox.cjs.map +1 -0
  304. package/dist/components/lightbox/useLightbox.d.ts +9 -0
  305. package/dist/components/lightbox/useLightbox.d.ts.map +1 -0
  306. package/dist/components/lightbox/useLightbox.js +35 -0
  307. package/dist/components/lightbox/useLightbox.js.map +1 -0
  308. package/dist/components/search/search.cjs +71 -0
  309. package/dist/components/search/search.cjs.map +1 -0
  310. package/dist/components/search/search.d.ts +2 -0
  311. package/dist/components/search/search.d.ts.map +1 -0
  312. package/dist/components/search/search.js +63 -0
  313. package/dist/components/search/search.js.map +1 -0
  314. package/dist/components/tailwind/contact.cjs +380 -0
  315. package/dist/components/tailwind/contact.cjs.map +1 -0
  316. package/dist/components/tailwind/contact.d.ts +2 -0
  317. package/dist/components/tailwind/contact.d.ts.map +1 -0
  318. package/dist/components/tailwind/contact.js +356 -0
  319. package/dist/components/tailwind/contact.js.map +1 -0
  320. package/dist/components/tailwind/content-page.cjs +58 -0
  321. package/dist/components/tailwind/content-page.cjs.map +1 -0
  322. package/dist/components/tailwind/content-page.d.ts +18 -0
  323. package/dist/components/tailwind/content-page.d.ts.map +1 -0
  324. package/dist/components/tailwind/content-page.js +32 -0
  325. package/dist/components/tailwind/content-page.js.map +1 -0
  326. package/dist/components/tailwind/feature.cjs +95 -0
  327. package/dist/components/tailwind/feature.cjs.map +1 -0
  328. package/dist/components/tailwind/feature.d.ts +2 -0
  329. package/dist/components/tailwind/feature.d.ts.map +1 -0
  330. package/dist/components/tailwind/feature.js +75 -0
  331. package/dist/components/tailwind/feature.js.map +1 -0
  332. package/dist/components/tailwind/featurelist.cjs +99 -0
  333. package/dist/components/tailwind/featurelist.cjs.map +1 -0
  334. package/dist/components/tailwind/featurelist.d.ts +2 -0
  335. package/dist/components/tailwind/featurelist.d.ts.map +1 -0
  336. package/dist/components/tailwind/featurelist.js +65 -0
  337. package/dist/components/tailwind/featurelist.js.map +1 -0
  338. package/dist/components/tailwind/footer.cjs +104 -0
  339. package/dist/components/tailwind/footer.cjs.map +1 -0
  340. package/dist/components/tailwind/footer.d.ts +2 -0
  341. package/dist/components/tailwind/footer.d.ts.map +1 -0
  342. package/dist/components/tailwind/footer.js +80 -0
  343. package/dist/components/tailwind/footer.js.map +1 -0
  344. package/dist/components/tailwind/hero.cjs +130 -0
  345. package/dist/components/tailwind/hero.cjs.map +1 -0
  346. package/dist/components/tailwind/hero.d.ts +22 -0
  347. package/dist/components/tailwind/hero.d.ts.map +1 -0
  348. package/dist/components/tailwind/hero.js +106 -0
  349. package/dist/components/tailwind/hero.js.map +1 -0
  350. package/dist/components/tailwind/pricing.cjs +214 -0
  351. package/dist/components/tailwind/pricing.cjs.map +1 -0
  352. package/dist/components/tailwind/pricing.d.ts +6 -0
  353. package/dist/components/tailwind/pricing.d.ts.map +1 -0
  354. package/dist/components/tailwind/pricing.js +190 -0
  355. package/dist/components/tailwind/pricing.js.map +1 -0
  356. package/dist/components/tailwind/privacy.cjs +138 -0
  357. package/dist/components/tailwind/privacy.cjs.map +1 -0
  358. package/dist/components/tailwind/privacy.d.ts +2 -0
  359. package/dist/components/tailwind/privacy.d.ts.map +1 -0
  360. package/dist/components/tailwind/privacy.js +114 -0
  361. package/dist/components/tailwind/privacy.js.map +1 -0
  362. package/dist/components/tailwind/providerIcons.cjs +48 -0
  363. package/dist/components/tailwind/providerIcons.cjs.map +1 -0
  364. package/dist/components/tailwind/providerIcons.d.ts +4 -0
  365. package/dist/components/tailwind/providerIcons.d.ts.map +1 -0
  366. package/dist/components/tailwind/providerIcons.js +24 -0
  367. package/dist/components/tailwind/providerIcons.js.map +1 -0
  368. package/dist/components/ui/avatar.cjs +120 -0
  369. package/dist/components/ui/avatar.cjs.map +1 -0
  370. package/dist/components/ui/avatar.d.ts +7 -0
  371. package/dist/components/ui/avatar.d.ts.map +1 -0
  372. package/dist/components/ui/avatar.js +86 -0
  373. package/dist/components/ui/avatar.js.map +1 -0
  374. package/dist/components/ui/breadcrumb.cjs +63 -0
  375. package/dist/components/ui/breadcrumb.cjs.map +1 -0
  376. package/dist/components/ui/breadcrumb.d.ts +10 -0
  377. package/dist/components/ui/breadcrumb.d.ts.map +1 -0
  378. package/dist/components/ui/breadcrumb.js +29 -0
  379. package/dist/components/ui/breadcrumb.js.map +1 -0
  380. package/dist/components/ui/button.cjs +105 -0
  381. package/dist/components/ui/button.cjs.map +1 -0
  382. package/dist/components/ui/button.d.ts +11 -0
  383. package/dist/components/ui/button.d.ts.map +1 -0
  384. package/dist/components/ui/button.js +82 -0
  385. package/dist/components/ui/button.js.map +1 -0
  386. package/dist/components/ui/card.cjs +129 -0
  387. package/dist/components/ui/card.cjs.map +1 -0
  388. package/dist/components/ui/card.d.ts +9 -0
  389. package/dist/components/ui/card.d.ts.map +1 -0
  390. package/dist/components/ui/card.js +102 -0
  391. package/dist/components/ui/card.js.map +1 -0
  392. package/dist/components/ui/checkbox.cjs +98 -0
  393. package/dist/components/ui/checkbox.cjs.map +1 -0
  394. package/dist/components/ui/checkbox.d.ts +5 -0
  395. package/dist/components/ui/checkbox.d.ts.map +1 -0
  396. package/dist/components/ui/checkbox.js +66 -0
  397. package/dist/components/ui/checkbox.js.map +1 -0
  398. package/dist/components/ui/command.cjs +200 -0
  399. package/dist/components/ui/command.cjs.map +1 -0
  400. package/dist/components/ui/command.d.ts +83 -0
  401. package/dist/components/ui/command.d.ts.map +1 -0
  402. package/dist/components/ui/command.js +160 -0
  403. package/dist/components/ui/command.js.map +1 -0
  404. package/dist/components/ui/dialog.cjs +204 -0
  405. package/dist/components/ui/dialog.cjs.map +1 -0
  406. package/dist/components/ui/dialog.d.ts +14 -0
  407. package/dist/components/ui/dialog.d.ts.map +1 -0
  408. package/dist/components/ui/dialog.js +163 -0
  409. package/dist/components/ui/dialog.js.map +1 -0
  410. package/dist/components/ui/drawer.cjs +191 -0
  411. package/dist/components/ui/drawer.cjs.map +1 -0
  412. package/dist/components/ui/drawer.d.ts +14 -0
  413. package/dist/components/ui/drawer.d.ts.map +1 -0
  414. package/dist/components/ui/drawer.js +160 -0
  415. package/dist/components/ui/drawer.js.map +1 -0
  416. package/dist/components/ui/dropdown-menu.cjs +323 -0
  417. package/dist/components/ui/dropdown-menu.cjs.map +1 -0
  418. package/dist/components/ui/dropdown-menu.d.ts +26 -0
  419. package/dist/components/ui/dropdown-menu.d.ts.map +1 -0
  420. package/dist/components/ui/dropdown-menu.js +277 -0
  421. package/dist/components/ui/dropdown-menu.js.map +1 -0
  422. package/dist/components/ui/input.cjs +72 -0
  423. package/dist/components/ui/input.cjs.map +1 -0
  424. package/dist/components/ui/input.d.ts +4 -0
  425. package/dist/components/ui/input.d.ts.map +1 -0
  426. package/dist/components/ui/input.js +50 -0
  427. package/dist/components/ui/input.js.map +1 -0
  428. package/dist/components/ui/label.cjs +85 -0
  429. package/dist/components/ui/label.cjs.map +1 -0
  430. package/dist/components/ui/label.d.ts +5 -0
  431. package/dist/components/ui/label.d.ts.map +1 -0
  432. package/dist/components/ui/label.js +53 -0
  433. package/dist/components/ui/label.js.map +1 -0
  434. package/dist/components/ui/menubar.cjs +351 -0
  435. package/dist/components/ui/menubar.cjs.map +1 -0
  436. package/dist/components/ui/menubar.d.ts +27 -0
  437. package/dist/components/ui/menubar.d.ts.map +1 -0
  438. package/dist/components/ui/menubar.js +304 -0
  439. package/dist/components/ui/menubar.js.map +1 -0
  440. package/dist/components/ui/navigation-menu.cjs +257 -0
  441. package/dist/components/ui/navigation-menu.cjs.map +1 -0
  442. package/dist/components/ui/navigation-menu.d.ts +15 -0
  443. package/dist/components/ui/navigation-menu.d.ts.map +1 -0
  444. package/dist/components/ui/navigation-menu.js +217 -0
  445. package/dist/components/ui/navigation-menu.js.map +1 -0
  446. package/dist/components/ui/popover.cjs +109 -0
  447. package/dist/components/ui/popover.cjs.map +1 -0
  448. package/dist/components/ui/popover.d.ts +8 -0
  449. package/dist/components/ui/popover.d.ts.map +1 -0
  450. package/dist/components/ui/popover.js +74 -0
  451. package/dist/components/ui/popover.js.map +1 -0
  452. package/dist/components/ui/resizable.cjs +124 -0
  453. package/dist/components/ui/resizable.cjs.map +1 -0
  454. package/dist/components/ui/resizable.d.ts +26 -0
  455. package/dist/components/ui/resizable.d.ts.map +1 -0
  456. package/dist/components/ui/resizable.js +90 -0
  457. package/dist/components/ui/resizable.js.map +1 -0
  458. package/dist/components/ui/scroll-area.cjs +132 -0
  459. package/dist/components/ui/scroll-area.cjs.map +1 -0
  460. package/dist/components/ui/scroll-area.d.ts +6 -0
  461. package/dist/components/ui/scroll-area.d.ts.map +1 -0
  462. package/dist/components/ui/scroll-area.js +99 -0
  463. package/dist/components/ui/scroll-area.js.map +1 -0
  464. package/dist/components/ui/select.cjs +254 -0
  465. package/dist/components/ui/select.cjs.map +1 -0
  466. package/dist/components/ui/select.d.ts +14 -0
  467. package/dist/components/ui/select.d.ts.map +1 -0
  468. package/dist/components/ui/select.js +213 -0
  469. package/dist/components/ui/select.js.map +1 -0
  470. package/dist/components/ui/sheet.cjs +203 -0
  471. package/dist/components/ui/sheet.cjs.map +1 -0
  472. package/dist/components/ui/sheet.d.ts +14 -0
  473. package/dist/components/ui/sheet.d.ts.map +1 -0
  474. package/dist/components/ui/sheet.js +164 -0
  475. package/dist/components/ui/sheet.js.map +1 -0
  476. package/dist/components/ui/skeleton.cjs +66 -0
  477. package/dist/components/ui/skeleton.cjs.map +1 -0
  478. package/dist/components/ui/skeleton.d.ts +3 -0
  479. package/dist/components/ui/skeleton.d.ts.map +1 -0
  480. package/dist/components/ui/skeleton.js +44 -0
  481. package/dist/components/ui/skeleton.js.map +1 -0
  482. package/dist/components/ui/spinner.cjs +128 -0
  483. package/dist/components/ui/spinner.cjs.map +1 -0
  484. package/dist/components/ui/spinner.d.ts +12 -0
  485. package/dist/components/ui/spinner.d.ts.map +1 -0
  486. package/dist/components/ui/spinner.js +105 -0
  487. package/dist/components/ui/spinner.js.map +1 -0
  488. package/dist/components/ui/switch.cjs +98 -0
  489. package/dist/components/ui/switch.cjs.map +1 -0
  490. package/dist/components/ui/switch.d.ts +5 -0
  491. package/dist/components/ui/switch.d.ts.map +1 -0
  492. package/dist/components/ui/switch.js +66 -0
  493. package/dist/components/ui/switch.js.map +1 -0
  494. package/dist/components/ui/tabs.cjs +136 -0
  495. package/dist/components/ui/tabs.cjs.map +1 -0
  496. package/dist/components/ui/tabs.d.ts +8 -0
  497. package/dist/components/ui/tabs.d.ts.map +1 -0
  498. package/dist/components/ui/tabs.js +101 -0
  499. package/dist/components/ui/tabs.js.map +1 -0
  500. package/dist/components/ui/textarea.cjs +69 -0
  501. package/dist/components/ui/textarea.cjs.map +1 -0
  502. package/dist/components/ui/textarea.d.ts +4 -0
  503. package/dist/components/ui/textarea.d.ts.map +1 -0
  504. package/dist/components/ui/textarea.js +47 -0
  505. package/dist/components/ui/textarea.js.map +1 -0
  506. package/dist/components/ui/toast.cjs +169 -0
  507. package/dist/components/ui/toast.cjs.map +1 -0
  508. package/dist/components/ui/toast.d.ts +15 -0
  509. package/dist/components/ui/toast.d.ts.map +1 -0
  510. package/dist/components/ui/toast.js +131 -0
  511. package/dist/components/ui/toast.js.map +1 -0
  512. package/dist/components/ui/toaster.cjs +78 -0
  513. package/dist/components/ui/toaster.cjs.map +1 -0
  514. package/dist/components/ui/toaster.d.ts +2 -0
  515. package/dist/components/ui/toaster.d.ts.map +1 -0
  516. package/dist/components/ui/toaster.js +63 -0
  517. package/dist/components/ui/toaster.js.map +1 -0
  518. package/dist/components/ui/tooltip.cjs +126 -0
  519. package/dist/components/ui/tooltip.cjs.map +1 -0
  520. package/dist/components/ui/tooltip.d.ts +8 -0
  521. package/dist/components/ui/tooltip.d.ts.map +1 -0
  522. package/dist/components/ui/tooltip.js +91 -0
  523. package/dist/components/ui/tooltip.js.map +1 -0
  524. package/dist/components/ui/use-toast.cjs +187 -0
  525. package/dist/components/ui/use-toast.cjs.map +1 -0
  526. package/dist/components/ui/use-toast.d.ts +45 -0
  527. package/dist/components/ui/use-toast.d.ts.map +1 -0
  528. package/dist/components/ui/use-toast.js +153 -0
  529. package/dist/components/ui/use-toast.js.map +1 -0
  530. package/dist/components/upgrade-prompt/UpgradePrompt.cjs +80 -0
  531. package/dist/components/upgrade-prompt/UpgradePrompt.cjs.map +1 -0
  532. package/dist/components/upgrade-prompt/UpgradePrompt.d.ts +12 -0
  533. package/dist/components/upgrade-prompt/UpgradePrompt.d.ts.map +1 -0
  534. package/dist/components/upgrade-prompt/UpgradePrompt.js +46 -0
  535. package/dist/components/upgrade-prompt/UpgradePrompt.js.map +1 -0
  536. package/dist/components/upgrade-prompt/index.cjs +29 -0
  537. package/dist/components/upgrade-prompt/index.cjs.map +1 -0
  538. package/dist/components/upgrade-prompt/index.d.ts +3 -0
  539. package/dist/components/upgrade-prompt/index.d.ts.map +1 -0
  540. package/dist/components/upgrade-prompt/index.js +5 -0
  541. package/dist/components/upgrade-prompt/index.js.map +1 -0
  542. package/dist/config/docs.d.ts +8 -0
  543. package/dist/config/docs.d.ts.map +1 -0
  544. package/dist/config/site.d.ts +12 -0
  545. package/dist/config/site.d.ts.map +1 -0
  546. package/dist/hooks/useRecaptcha.d.ts +16 -0
  547. package/dist/hooks/useRecaptcha.d.ts.map +1 -0
  548. package/dist/lib/utils.cjs +48 -0
  549. package/dist/lib/utils.cjs.map +1 -0
  550. package/dist/lib/utils.d.cjs +17 -0
  551. package/dist/lib/utils.d.cjs.map +1 -0
  552. package/dist/lib/utils.d.js +1 -0
  553. package/dist/lib/utils.d.js.map +1 -0
  554. package/dist/lib/utils.d.ts +5 -0
  555. package/dist/lib/utils.d.ts.map +1 -0
  556. package/dist/lib/utils.js +22 -0
  557. package/dist/lib/utils.js.map +1 -0
  558. package/dist/styles.css +178 -0
  559. package/dist/types/nav.cjs +17 -0
  560. package/dist/types/nav.cjs.map +1 -0
  561. package/dist/types/nav.d.ts +17 -0
  562. package/dist/types/nav.d.ts.map +1 -0
  563. package/dist/types/nav.js +1 -0
  564. package/dist/types/nav.js.map +1 -0
  565. package/dist/types/sitemap.cjs +17 -0
  566. package/dist/types/sitemap.cjs.map +1 -0
  567. package/dist/types/sitemap.d.ts +19 -0
  568. package/dist/types/sitemap.d.ts.map +1 -0
  569. package/dist/types/sitemap.js +1 -0
  570. package/dist/types/sitemap.js.map +1 -0
  571. package/dist/types/unist.cjs +17 -0
  572. package/dist/types/unist.cjs.map +1 -0
  573. package/dist/types/unist.js +1 -0
  574. package/dist/types/unist.js.map +1 -0
  575. package/package.json +91 -0
@@ -0,0 +1,244 @@
1
+ "use strict";
2
+ "use client";
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all)
9
+ __defProp(target, name, { get: all[name], enumerable: true });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from))
14
+ if (!__hasOwnProp.call(to, key) && key !== except)
15
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
16
+ }
17
+ return to;
18
+ };
19
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
20
+ var ImageLightbox_exports = {};
21
+ __export(ImageLightbox_exports, {
22
+ ImageLightbox: () => ImageLightbox
23
+ });
24
+ module.exports = __toCommonJS(ImageLightbox_exports);
25
+ var import_jsx_runtime = require("react/jsx-runtime");
26
+ var import_react = require("react");
27
+ var import_react_dom = require("react-dom");
28
+ var import_button = require("../ui/button");
29
+ function ImageLightbox({
30
+ images,
31
+ isOpen,
32
+ initialIndex,
33
+ onClose,
34
+ onNavigate
35
+ }) {
36
+ const [currentIndex, setCurrentIndex] = (0, import_react.useState)(initialIndex);
37
+ const [mounted, setMounted] = (0, import_react.useState)(false);
38
+ const imageRef = (0, import_react.useRef)(null);
39
+ (0, import_react.useEffect)(() => {
40
+ setMounted(true);
41
+ return () => setMounted(false);
42
+ }, []);
43
+ (0, import_react.useEffect)(() => {
44
+ if (isOpen) {
45
+ setCurrentIndex(initialIndex);
46
+ }
47
+ }, [isOpen, initialIndex]);
48
+ (0, import_react.useEffect)(() => {
49
+ if (isOpen) {
50
+ document.body.style.overflow = "hidden";
51
+ return () => {
52
+ document.body.style.overflow = "";
53
+ };
54
+ }
55
+ }, [isOpen]);
56
+ const next = (0, import_react.useCallback)(() => {
57
+ setCurrentIndex((prev2) => {
58
+ const newIndex = Math.min(prev2 + 1, images.length - 1);
59
+ if (onNavigate) onNavigate(newIndex);
60
+ return newIndex;
61
+ });
62
+ }, [images.length, onNavigate]);
63
+ const prev = (0, import_react.useCallback)(() => {
64
+ setCurrentIndex((prev2) => {
65
+ const newIndex = Math.max(prev2 - 1, 0);
66
+ if (onNavigate) onNavigate(newIndex);
67
+ return newIndex;
68
+ });
69
+ }, [onNavigate]);
70
+ (0, import_react.useEffect)(() => {
71
+ if (!isOpen) return;
72
+ const handleKeyDown = (e) => {
73
+ if (e.key === "Escape") onClose();
74
+ if (e.key === "ArrowLeft") prev();
75
+ if (e.key === "ArrowRight") next();
76
+ };
77
+ window.addEventListener("keydown", handleKeyDown);
78
+ return () => window.removeEventListener("keydown", handleKeyDown);
79
+ }, [isOpen, onClose, prev, next]);
80
+ const handleImageError = (e) => {
81
+ var _a;
82
+ e.currentTarget.src = "/placeholder-image.png";
83
+ console.error("Failed to load image:", (_a = images[currentIndex]) == null ? void 0 : _a.url);
84
+ };
85
+ (0, import_react.useEffect)(() => {
86
+ if (!isOpen) return;
87
+ let touchStartX = 0;
88
+ let touchEndX = 0;
89
+ const handleTouchStart = (e) => {
90
+ touchStartX = e.changedTouches[0].screenX;
91
+ };
92
+ const handleTouchEnd = (e) => {
93
+ touchEndX = e.changedTouches[0].screenX;
94
+ const swipeDistance = touchStartX - touchEndX;
95
+ const minSwipeDistance = 50;
96
+ if (Math.abs(swipeDistance) > minSwipeDistance) {
97
+ if (swipeDistance > 0 && currentIndex < images.length - 1) {
98
+ next();
99
+ } else if (swipeDistance < 0 && currentIndex > 0) {
100
+ prev();
101
+ }
102
+ }
103
+ };
104
+ window.addEventListener("touchstart", handleTouchStart, { passive: true });
105
+ window.addEventListener("touchend", handleTouchEnd, { passive: true });
106
+ return () => {
107
+ window.removeEventListener("touchstart", handleTouchStart);
108
+ window.removeEventListener("touchend", handleTouchEnd);
109
+ };
110
+ }, [isOpen, currentIndex, images.length, next, prev]);
111
+ const handleBackdropClick = (e) => {
112
+ if (e.target === e.currentTarget) {
113
+ onClose();
114
+ }
115
+ };
116
+ if (!images || images.length === 0) return null;
117
+ if (!mounted || !isOpen) return null;
118
+ const currentImage = images[currentIndex];
119
+ const isFirstImage = currentIndex === 0;
120
+ const isLastImage = currentIndex === images.length - 1;
121
+ const isSingleImage = images.length === 1;
122
+ return (0, import_react_dom.createPortal)(
123
+ /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
124
+ "div",
125
+ {
126
+ className: "animate-in fade-in fixed inset-0 z-50 flex items-center justify-center bg-black/90 duration-200",
127
+ role: "dialog",
128
+ "aria-modal": "true",
129
+ "aria-label": "Image lightbox",
130
+ onClick: handleBackdropClick,
131
+ children: [
132
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
133
+ import_button.Button,
134
+ {
135
+ onClick: onClose,
136
+ variant: "ghost",
137
+ size: "icon",
138
+ className: "absolute right-4 top-4 z-10 rounded-full bg-white/10 text-white hover:bg-white/20 focus:ring-white md:h-8 md:w-8",
139
+ "aria-label": "Close lightbox",
140
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
141
+ "svg",
142
+ {
143
+ className: "h-6 w-6",
144
+ fill: "none",
145
+ stroke: "currentColor",
146
+ viewBox: "0 0 24 24",
147
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
148
+ "path",
149
+ {
150
+ strokeLinecap: "round",
151
+ strokeLinejoin: "round",
152
+ strokeWidth: 2,
153
+ d: "M6 18L18 6M6 6l12 12"
154
+ }
155
+ )
156
+ }
157
+ )
158
+ }
159
+ ),
160
+ !isSingleImage && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
161
+ import_button.Button,
162
+ {
163
+ onClick: prev,
164
+ disabled: isFirstImage,
165
+ variant: "ghost",
166
+ size: "icon",
167
+ className: "absolute left-4 z-10 h-12 w-12 rounded-full bg-white/10 text-white hover:bg-white/20 focus:ring-white disabled:cursor-not-allowed disabled:opacity-50 md:left-8 md:opacity-0 md:hover:opacity-100",
168
+ "aria-label": "Previous image",
169
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
170
+ "svg",
171
+ {
172
+ className: "h-6 w-6",
173
+ fill: "none",
174
+ stroke: "currentColor",
175
+ viewBox: "0 0 24 24",
176
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
177
+ "path",
178
+ {
179
+ strokeLinecap: "round",
180
+ strokeLinejoin: "round",
181
+ strokeWidth: 2,
182
+ d: "M15 19l-7-7 7-7"
183
+ }
184
+ )
185
+ }
186
+ )
187
+ }
188
+ ),
189
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: "relative mx-4 flex max-h-[90vh] max-w-[90vw] items-center justify-center", children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
190
+ "img",
191
+ {
192
+ ref: imageRef,
193
+ src: currentImage.url,
194
+ alt: currentImage.alt,
195
+ className: "max-h-[90vh] max-w-[90vw] object-contain transition-opacity duration-150",
196
+ style: { touchAction: "pan-x pan-y pinch-zoom" },
197
+ onError: handleImageError
198
+ }
199
+ ) }),
200
+ !isSingleImage && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
201
+ import_button.Button,
202
+ {
203
+ onClick: next,
204
+ disabled: isLastImage,
205
+ variant: "ghost",
206
+ size: "icon",
207
+ className: "absolute right-4 z-10 h-12 w-12 rounded-full bg-white/10 text-white hover:bg-white/20 focus:ring-white disabled:cursor-not-allowed disabled:opacity-50 md:right-8 md:opacity-0 md:hover:opacity-100",
208
+ "aria-label": "Next image",
209
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
210
+ "svg",
211
+ {
212
+ className: "h-6 w-6",
213
+ fill: "none",
214
+ stroke: "currentColor",
215
+ viewBox: "0 0 24 24",
216
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
217
+ "path",
218
+ {
219
+ strokeLinecap: "round",
220
+ strokeLinejoin: "round",
221
+ strokeWidth: 2,
222
+ d: "M9 5l7 7-7 7"
223
+ }
224
+ )
225
+ }
226
+ )
227
+ }
228
+ ),
229
+ !isSingleImage && /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { className: "absolute bottom-4 left-1/2 -translate-x-1/2 rounded-full bg-black/50 px-4 py-2 text-sm text-white", children: [
230
+ currentIndex + 1,
231
+ " / ",
232
+ images.length
233
+ ] })
234
+ ]
235
+ }
236
+ ),
237
+ document.body
238
+ );
239
+ }
240
+ // Annotate the CommonJS export names for ESM import in node:
241
+ 0 && (module.exports = {
242
+ ImageLightbox
243
+ });
244
+ //# sourceMappingURL=ImageLightbox.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../components/lightbox/ImageLightbox.tsx"],"sourcesContent":["'use client'\n\nimport { useEffect, useRef, useState, useCallback } from 'react'\nimport { createPortal } from 'react-dom'\nimport { Button } from '../ui/button'\nimport type { ImageLightboxProps } from './ImageLightbox.types'\n\nexport function ImageLightbox({\n images,\n isOpen,\n initialIndex,\n onClose,\n onNavigate,\n}: ImageLightboxProps) {\n const [currentIndex, setCurrentIndex] = useState(initialIndex)\n const [mounted, setMounted] = useState(false)\n const imageRef = useRef<HTMLImageElement>(null)\n\n // Track if component is mounted (client-side only)\n useEffect(() => {\n setMounted(true)\n return () => setMounted(false)\n }, [])\n\n // Sync with initialIndex when lightbox opens\n useEffect(() => {\n if (isOpen) {\n setCurrentIndex(initialIndex)\n }\n }, [isOpen, initialIndex])\n\n // Lock body scroll when open\n useEffect(() => {\n if (isOpen) {\n document.body.style.overflow = 'hidden'\n return () => {\n document.body.style.overflow = ''\n }\n }\n }, [isOpen])\n\n // Navigation handlers\n const next = useCallback(() => {\n setCurrentIndex((prev) => {\n const newIndex = Math.min(prev + 1, images.length - 1)\n if (onNavigate) onNavigate(newIndex)\n return newIndex\n })\n }, [images.length, onNavigate])\n\n const prev = useCallback(() => {\n setCurrentIndex((prev) => {\n const newIndex = Math.max(prev - 1, 0)\n if (onNavigate) onNavigate(newIndex)\n return newIndex\n })\n }, [onNavigate])\n\n // Keyboard navigation\n useEffect(() => {\n if (!isOpen) return\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Escape') onClose()\n if (e.key === 'ArrowLeft') prev()\n if (e.key === 'ArrowRight') next()\n }\n\n window.addEventListener('keydown', handleKeyDown)\n return () => window.removeEventListener('keydown', handleKeyDown)\n }, [isOpen, onClose, prev, next])\n\n // Handle image errors\n const handleImageError = (e: React.SyntheticEvent<HTMLImageElement>) => {\n e.currentTarget.src = '/placeholder-image.png'\n console.error('Failed to load image:', images[currentIndex]?.url)\n }\n\n // Handle swipe gestures\n useEffect(() => {\n if (!isOpen) return\n\n let touchStartX = 0\n let touchEndX = 0\n\n const handleTouchStart = (e: TouchEvent) => {\n touchStartX = e.changedTouches[0].screenX\n }\n\n const handleTouchEnd = (e: TouchEvent) => {\n touchEndX = e.changedTouches[0].screenX\n const swipeDistance = touchStartX - touchEndX\n const minSwipeDistance = 50\n\n if (Math.abs(swipeDistance) > minSwipeDistance) {\n if (swipeDistance > 0 && currentIndex < images.length - 1) {\n next()\n } else if (swipeDistance < 0 && currentIndex > 0) {\n prev()\n }\n }\n }\n\n window.addEventListener('touchstart', handleTouchStart, { passive: true })\n window.addEventListener('touchend', handleTouchEnd, { passive: true })\n\n return () => {\n window.removeEventListener('touchstart', handleTouchStart)\n window.removeEventListener('touchend', handleTouchEnd)\n }\n }, [isOpen, currentIndex, images.length, next, prev])\n\n // Handle backdrop click\n const handleBackdropClick = (e: React.MouseEvent) => {\n if (e.target === e.currentTarget) {\n onClose()\n }\n }\n\n // Empty gallery\n if (!images || images.length === 0) return null\n\n // Not open or not mounted (SSR safety)\n if (!mounted || !isOpen) return null\n\n const currentImage = images[currentIndex]\n const isFirstImage = currentIndex === 0\n const isLastImage = currentIndex === images.length - 1\n const isSingleImage = images.length === 1\n\n return createPortal(\n <div\n className=\"animate-in fade-in fixed inset-0 z-50 flex items-center justify-center bg-black/90 duration-200\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label=\"Image lightbox\"\n onClick={handleBackdropClick}\n >\n {/* Close button */}\n <Button\n onClick={onClose}\n variant=\"ghost\"\n size=\"icon\"\n className=\"absolute right-4 top-4 z-10 rounded-full bg-white/10 text-white hover:bg-white/20 focus:ring-white md:h-8 md:w-8\"\n aria-label=\"Close lightbox\"\n >\n <svg\n className=\"h-6 w-6\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M6 18L18 6M6 6l12 12\"\n />\n </svg>\n </Button>\n\n {/* Previous button */}\n {!isSingleImage && (\n <Button\n onClick={prev}\n disabled={isFirstImage}\n variant=\"ghost\"\n size=\"icon\"\n className=\"absolute left-4 z-10 h-12 w-12 rounded-full bg-white/10 text-white hover:bg-white/20 focus:ring-white disabled:cursor-not-allowed disabled:opacity-50 md:left-8 md:opacity-0 md:hover:opacity-100\"\n aria-label=\"Previous image\"\n >\n <svg\n className=\"h-6 w-6\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M15 19l-7-7 7-7\"\n />\n </svg>\n </Button>\n )}\n\n {/* Image container */}\n <div className=\"relative mx-4 flex max-h-[90vh] max-w-[90vw] items-center justify-center\">\n <img\n ref={imageRef}\n src={currentImage.url}\n alt={currentImage.alt}\n className=\"max-h-[90vh] max-w-[90vw] object-contain transition-opacity duration-150\"\n style={{ touchAction: 'pan-x pan-y pinch-zoom' }}\n onError={handleImageError}\n />\n </div>\n\n {/* Next button */}\n {!isSingleImage && (\n <Button\n onClick={next}\n disabled={isLastImage}\n variant=\"ghost\"\n size=\"icon\"\n className=\"absolute right-4 z-10 h-12 w-12 rounded-full bg-white/10 text-white hover:bg-white/20 focus:ring-white disabled:cursor-not-allowed disabled:opacity-50 md:right-8 md:opacity-0 md:hover:opacity-100\"\n aria-label=\"Next image\"\n >\n <svg\n className=\"h-6 w-6\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M9 5l7 7-7 7\"\n />\n </svg>\n </Button>\n )}\n\n {/* Image counter */}\n {!isSingleImage && (\n <div className=\"absolute bottom-4 left-1/2 -translate-x-1/2 rounded-full bg-black/50 px-4 py-2 text-sm text-white\">\n {currentIndex + 1} / {images.length}\n </div>\n )}\n </div>,\n document.body,\n )\n}\n"],"mappings":"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","names":["prev"]}
@@ -0,0 +1,3 @@
1
+ import type { ImageLightboxProps } from './ImageLightbox.types';
2
+ export declare function ImageLightbox({ images, isOpen, initialIndex, onClose, onNavigate, }: ImageLightboxProps): import("react").ReactPortal | null;
3
+ //# sourceMappingURL=ImageLightbox.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImageLightbox.d.ts","sourceRoot":"","sources":["../../../components/lightbox/ImageLightbox.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAE/D,wBAAgB,aAAa,CAAC,EAC5B,MAAM,EACN,MAAM,EACN,YAAY,EACZ,OAAO,EACP,UAAU,GACX,EAAE,kBAAkB,sCA6NpB"}
@@ -0,0 +1,220 @@
1
+ "use client";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ import { useEffect, useRef, useState, useCallback } from "react";
4
+ import { createPortal } from "react-dom";
5
+ import { Button } from "../ui/button";
6
+ function ImageLightbox({
7
+ images,
8
+ isOpen,
9
+ initialIndex,
10
+ onClose,
11
+ onNavigate
12
+ }) {
13
+ const [currentIndex, setCurrentIndex] = useState(initialIndex);
14
+ const [mounted, setMounted] = useState(false);
15
+ const imageRef = useRef(null);
16
+ useEffect(() => {
17
+ setMounted(true);
18
+ return () => setMounted(false);
19
+ }, []);
20
+ useEffect(() => {
21
+ if (isOpen) {
22
+ setCurrentIndex(initialIndex);
23
+ }
24
+ }, [isOpen, initialIndex]);
25
+ useEffect(() => {
26
+ if (isOpen) {
27
+ document.body.style.overflow = "hidden";
28
+ return () => {
29
+ document.body.style.overflow = "";
30
+ };
31
+ }
32
+ }, [isOpen]);
33
+ const next = useCallback(() => {
34
+ setCurrentIndex((prev2) => {
35
+ const newIndex = Math.min(prev2 + 1, images.length - 1);
36
+ if (onNavigate) onNavigate(newIndex);
37
+ return newIndex;
38
+ });
39
+ }, [images.length, onNavigate]);
40
+ const prev = useCallback(() => {
41
+ setCurrentIndex((prev2) => {
42
+ const newIndex = Math.max(prev2 - 1, 0);
43
+ if (onNavigate) onNavigate(newIndex);
44
+ return newIndex;
45
+ });
46
+ }, [onNavigate]);
47
+ useEffect(() => {
48
+ if (!isOpen) return;
49
+ const handleKeyDown = (e) => {
50
+ if (e.key === "Escape") onClose();
51
+ if (e.key === "ArrowLeft") prev();
52
+ if (e.key === "ArrowRight") next();
53
+ };
54
+ window.addEventListener("keydown", handleKeyDown);
55
+ return () => window.removeEventListener("keydown", handleKeyDown);
56
+ }, [isOpen, onClose, prev, next]);
57
+ const handleImageError = (e) => {
58
+ var _a;
59
+ e.currentTarget.src = "/placeholder-image.png";
60
+ console.error("Failed to load image:", (_a = images[currentIndex]) == null ? void 0 : _a.url);
61
+ };
62
+ useEffect(() => {
63
+ if (!isOpen) return;
64
+ let touchStartX = 0;
65
+ let touchEndX = 0;
66
+ const handleTouchStart = (e) => {
67
+ touchStartX = e.changedTouches[0].screenX;
68
+ };
69
+ const handleTouchEnd = (e) => {
70
+ touchEndX = e.changedTouches[0].screenX;
71
+ const swipeDistance = touchStartX - touchEndX;
72
+ const minSwipeDistance = 50;
73
+ if (Math.abs(swipeDistance) > minSwipeDistance) {
74
+ if (swipeDistance > 0 && currentIndex < images.length - 1) {
75
+ next();
76
+ } else if (swipeDistance < 0 && currentIndex > 0) {
77
+ prev();
78
+ }
79
+ }
80
+ };
81
+ window.addEventListener("touchstart", handleTouchStart, { passive: true });
82
+ window.addEventListener("touchend", handleTouchEnd, { passive: true });
83
+ return () => {
84
+ window.removeEventListener("touchstart", handleTouchStart);
85
+ window.removeEventListener("touchend", handleTouchEnd);
86
+ };
87
+ }, [isOpen, currentIndex, images.length, next, prev]);
88
+ const handleBackdropClick = (e) => {
89
+ if (e.target === e.currentTarget) {
90
+ onClose();
91
+ }
92
+ };
93
+ if (!images || images.length === 0) return null;
94
+ if (!mounted || !isOpen) return null;
95
+ const currentImage = images[currentIndex];
96
+ const isFirstImage = currentIndex === 0;
97
+ const isLastImage = currentIndex === images.length - 1;
98
+ const isSingleImage = images.length === 1;
99
+ return createPortal(
100
+ /* @__PURE__ */ jsxs(
101
+ "div",
102
+ {
103
+ className: "animate-in fade-in fixed inset-0 z-50 flex items-center justify-center bg-black/90 duration-200",
104
+ role: "dialog",
105
+ "aria-modal": "true",
106
+ "aria-label": "Image lightbox",
107
+ onClick: handleBackdropClick,
108
+ children: [
109
+ /* @__PURE__ */ jsx(
110
+ Button,
111
+ {
112
+ onClick: onClose,
113
+ variant: "ghost",
114
+ size: "icon",
115
+ className: "absolute right-4 top-4 z-10 rounded-full bg-white/10 text-white hover:bg-white/20 focus:ring-white md:h-8 md:w-8",
116
+ "aria-label": "Close lightbox",
117
+ children: /* @__PURE__ */ jsx(
118
+ "svg",
119
+ {
120
+ className: "h-6 w-6",
121
+ fill: "none",
122
+ stroke: "currentColor",
123
+ viewBox: "0 0 24 24",
124
+ children: /* @__PURE__ */ jsx(
125
+ "path",
126
+ {
127
+ strokeLinecap: "round",
128
+ strokeLinejoin: "round",
129
+ strokeWidth: 2,
130
+ d: "M6 18L18 6M6 6l12 12"
131
+ }
132
+ )
133
+ }
134
+ )
135
+ }
136
+ ),
137
+ !isSingleImage && /* @__PURE__ */ jsx(
138
+ Button,
139
+ {
140
+ onClick: prev,
141
+ disabled: isFirstImage,
142
+ variant: "ghost",
143
+ size: "icon",
144
+ className: "absolute left-4 z-10 h-12 w-12 rounded-full bg-white/10 text-white hover:bg-white/20 focus:ring-white disabled:cursor-not-allowed disabled:opacity-50 md:left-8 md:opacity-0 md:hover:opacity-100",
145
+ "aria-label": "Previous image",
146
+ children: /* @__PURE__ */ jsx(
147
+ "svg",
148
+ {
149
+ className: "h-6 w-6",
150
+ fill: "none",
151
+ stroke: "currentColor",
152
+ viewBox: "0 0 24 24",
153
+ children: /* @__PURE__ */ jsx(
154
+ "path",
155
+ {
156
+ strokeLinecap: "round",
157
+ strokeLinejoin: "round",
158
+ strokeWidth: 2,
159
+ d: "M15 19l-7-7 7-7"
160
+ }
161
+ )
162
+ }
163
+ )
164
+ }
165
+ ),
166
+ /* @__PURE__ */ jsx("div", { className: "relative mx-4 flex max-h-[90vh] max-w-[90vw] items-center justify-center", children: /* @__PURE__ */ jsx(
167
+ "img",
168
+ {
169
+ ref: imageRef,
170
+ src: currentImage.url,
171
+ alt: currentImage.alt,
172
+ className: "max-h-[90vh] max-w-[90vw] object-contain transition-opacity duration-150",
173
+ style: { touchAction: "pan-x pan-y pinch-zoom" },
174
+ onError: handleImageError
175
+ }
176
+ ) }),
177
+ !isSingleImage && /* @__PURE__ */ jsx(
178
+ Button,
179
+ {
180
+ onClick: next,
181
+ disabled: isLastImage,
182
+ variant: "ghost",
183
+ size: "icon",
184
+ className: "absolute right-4 z-10 h-12 w-12 rounded-full bg-white/10 text-white hover:bg-white/20 focus:ring-white disabled:cursor-not-allowed disabled:opacity-50 md:right-8 md:opacity-0 md:hover:opacity-100",
185
+ "aria-label": "Next image",
186
+ children: /* @__PURE__ */ jsx(
187
+ "svg",
188
+ {
189
+ className: "h-6 w-6",
190
+ fill: "none",
191
+ stroke: "currentColor",
192
+ viewBox: "0 0 24 24",
193
+ children: /* @__PURE__ */ jsx(
194
+ "path",
195
+ {
196
+ strokeLinecap: "round",
197
+ strokeLinejoin: "round",
198
+ strokeWidth: 2,
199
+ d: "M9 5l7 7-7 7"
200
+ }
201
+ )
202
+ }
203
+ )
204
+ }
205
+ ),
206
+ !isSingleImage && /* @__PURE__ */ jsxs("div", { className: "absolute bottom-4 left-1/2 -translate-x-1/2 rounded-full bg-black/50 px-4 py-2 text-sm text-white", children: [
207
+ currentIndex + 1,
208
+ " / ",
209
+ images.length
210
+ ] })
211
+ ]
212
+ }
213
+ ),
214
+ document.body
215
+ );
216
+ }
217
+ export {
218
+ ImageLightbox
219
+ };
220
+ //# sourceMappingURL=ImageLightbox.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../components/lightbox/ImageLightbox.tsx"],"sourcesContent":["'use client'\n\nimport { useEffect, useRef, useState, useCallback } from 'react'\nimport { createPortal } from 'react-dom'\nimport { Button } from '../ui/button'\nimport type { ImageLightboxProps } from './ImageLightbox.types'\n\nexport function ImageLightbox({\n images,\n isOpen,\n initialIndex,\n onClose,\n onNavigate,\n}: ImageLightboxProps) {\n const [currentIndex, setCurrentIndex] = useState(initialIndex)\n const [mounted, setMounted] = useState(false)\n const imageRef = useRef<HTMLImageElement>(null)\n\n // Track if component is mounted (client-side only)\n useEffect(() => {\n setMounted(true)\n return () => setMounted(false)\n }, [])\n\n // Sync with initialIndex when lightbox opens\n useEffect(() => {\n if (isOpen) {\n setCurrentIndex(initialIndex)\n }\n }, [isOpen, initialIndex])\n\n // Lock body scroll when open\n useEffect(() => {\n if (isOpen) {\n document.body.style.overflow = 'hidden'\n return () => {\n document.body.style.overflow = ''\n }\n }\n }, [isOpen])\n\n // Navigation handlers\n const next = useCallback(() => {\n setCurrentIndex((prev) => {\n const newIndex = Math.min(prev + 1, images.length - 1)\n if (onNavigate) onNavigate(newIndex)\n return newIndex\n })\n }, [images.length, onNavigate])\n\n const prev = useCallback(() => {\n setCurrentIndex((prev) => {\n const newIndex = Math.max(prev - 1, 0)\n if (onNavigate) onNavigate(newIndex)\n return newIndex\n })\n }, [onNavigate])\n\n // Keyboard navigation\n useEffect(() => {\n if (!isOpen) return\n\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Escape') onClose()\n if (e.key === 'ArrowLeft') prev()\n if (e.key === 'ArrowRight') next()\n }\n\n window.addEventListener('keydown', handleKeyDown)\n return () => window.removeEventListener('keydown', handleKeyDown)\n }, [isOpen, onClose, prev, next])\n\n // Handle image errors\n const handleImageError = (e: React.SyntheticEvent<HTMLImageElement>) => {\n e.currentTarget.src = '/placeholder-image.png'\n console.error('Failed to load image:', images[currentIndex]?.url)\n }\n\n // Handle swipe gestures\n useEffect(() => {\n if (!isOpen) return\n\n let touchStartX = 0\n let touchEndX = 0\n\n const handleTouchStart = (e: TouchEvent) => {\n touchStartX = e.changedTouches[0].screenX\n }\n\n const handleTouchEnd = (e: TouchEvent) => {\n touchEndX = e.changedTouches[0].screenX\n const swipeDistance = touchStartX - touchEndX\n const minSwipeDistance = 50\n\n if (Math.abs(swipeDistance) > minSwipeDistance) {\n if (swipeDistance > 0 && currentIndex < images.length - 1) {\n next()\n } else if (swipeDistance < 0 && currentIndex > 0) {\n prev()\n }\n }\n }\n\n window.addEventListener('touchstart', handleTouchStart, { passive: true })\n window.addEventListener('touchend', handleTouchEnd, { passive: true })\n\n return () => {\n window.removeEventListener('touchstart', handleTouchStart)\n window.removeEventListener('touchend', handleTouchEnd)\n }\n }, [isOpen, currentIndex, images.length, next, prev])\n\n // Handle backdrop click\n const handleBackdropClick = (e: React.MouseEvent) => {\n if (e.target === e.currentTarget) {\n onClose()\n }\n }\n\n // Empty gallery\n if (!images || images.length === 0) return null\n\n // Not open or not mounted (SSR safety)\n if (!mounted || !isOpen) return null\n\n const currentImage = images[currentIndex]\n const isFirstImage = currentIndex === 0\n const isLastImage = currentIndex === images.length - 1\n const isSingleImage = images.length === 1\n\n return createPortal(\n <div\n className=\"animate-in fade-in fixed inset-0 z-50 flex items-center justify-center bg-black/90 duration-200\"\n role=\"dialog\"\n aria-modal=\"true\"\n aria-label=\"Image lightbox\"\n onClick={handleBackdropClick}\n >\n {/* Close button */}\n <Button\n onClick={onClose}\n variant=\"ghost\"\n size=\"icon\"\n className=\"absolute right-4 top-4 z-10 rounded-full bg-white/10 text-white hover:bg-white/20 focus:ring-white md:h-8 md:w-8\"\n aria-label=\"Close lightbox\"\n >\n <svg\n className=\"h-6 w-6\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M6 18L18 6M6 6l12 12\"\n />\n </svg>\n </Button>\n\n {/* Previous button */}\n {!isSingleImage && (\n <Button\n onClick={prev}\n disabled={isFirstImage}\n variant=\"ghost\"\n size=\"icon\"\n className=\"absolute left-4 z-10 h-12 w-12 rounded-full bg-white/10 text-white hover:bg-white/20 focus:ring-white disabled:cursor-not-allowed disabled:opacity-50 md:left-8 md:opacity-0 md:hover:opacity-100\"\n aria-label=\"Previous image\"\n >\n <svg\n className=\"h-6 w-6\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M15 19l-7-7 7-7\"\n />\n </svg>\n </Button>\n )}\n\n {/* Image container */}\n <div className=\"relative mx-4 flex max-h-[90vh] max-w-[90vw] items-center justify-center\">\n <img\n ref={imageRef}\n src={currentImage.url}\n alt={currentImage.alt}\n className=\"max-h-[90vh] max-w-[90vw] object-contain transition-opacity duration-150\"\n style={{ touchAction: 'pan-x pan-y pinch-zoom' }}\n onError={handleImageError}\n />\n </div>\n\n {/* Next button */}\n {!isSingleImage && (\n <Button\n onClick={next}\n disabled={isLastImage}\n variant=\"ghost\"\n size=\"icon\"\n className=\"absolute right-4 z-10 h-12 w-12 rounded-full bg-white/10 text-white hover:bg-white/20 focus:ring-white disabled:cursor-not-allowed disabled:opacity-50 md:right-8 md:opacity-0 md:hover:opacity-100\"\n aria-label=\"Next image\"\n >\n <svg\n className=\"h-6 w-6\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M9 5l7 7-7 7\"\n />\n </svg>\n </Button>\n )}\n\n {/* Image counter */}\n {!isSingleImage && (\n <div className=\"absolute bottom-4 left-1/2 -translate-x-1/2 rounded-full bg-black/50 px-4 py-2 text-sm text-white\">\n {currentIndex + 1} / {images.length}\n </div>\n )}\n </div>,\n document.body,\n )\n}\n"],"mappings":"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","names":["prev"]}
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+ var ImageLightbox_types_exports = {};
16
+ module.exports = __toCommonJS(ImageLightbox_types_exports);
17
+ //# sourceMappingURL=ImageLightbox.types.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../components/lightbox/ImageLightbox.types.ts"],"sourcesContent":["export interface EntityImage {\n id: number\n entityType: 'story' | 'character' | 'location' | 'timeline'\n entityId: number\n cloudinaryPublicId: string\n cloudinaryUrl: string\n isPrimary: boolean\n displayOrder: number\n fileName: string\n fileSize: number\n width: number\n height: number\n createdAt: Date\n updatedAt: Date\n}\n\nexport interface LightboxImage {\n id: number\n url: string\n alt: string\n}\n\nexport interface ImageLightboxProps {\n images: LightboxImage[]\n isOpen: boolean\n initialIndex: number\n onClose: () => void\n onNavigate?: (index: number) => void\n}\n"],"mappings":";;;;;;;;;;;;;;AAAA;AAAA;","names":[]}
@@ -0,0 +1,28 @@
1
+ export interface EntityImage {
2
+ id: number;
3
+ entityType: 'story' | 'character' | 'location' | 'timeline';
4
+ entityId: number;
5
+ cloudinaryPublicId: string;
6
+ cloudinaryUrl: string;
7
+ isPrimary: boolean;
8
+ displayOrder: number;
9
+ fileName: string;
10
+ fileSize: number;
11
+ width: number;
12
+ height: number;
13
+ createdAt: Date;
14
+ updatedAt: Date;
15
+ }
16
+ export interface LightboxImage {
17
+ id: number;
18
+ url: string;
19
+ alt: string;
20
+ }
21
+ export interface ImageLightboxProps {
22
+ images: LightboxImage[];
23
+ isOpen: boolean;
24
+ initialIndex: number;
25
+ onClose: () => void;
26
+ onNavigate?: (index: number) => void;
27
+ }
28
+ //# sourceMappingURL=ImageLightbox.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ImageLightbox.types.d.ts","sourceRoot":"","sources":["../../../components/lightbox/ImageLightbox.types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAA;IACV,UAAU,EAAE,OAAO,GAAG,WAAW,GAAG,UAAU,GAAG,UAAU,CAAA;IAC3D,QAAQ,EAAE,MAAM,CAAA;IAChB,kBAAkB,EAAE,MAAM,CAAA;IAC1B,aAAa,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,OAAO,CAAA;IAClB,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,QAAQ,EAAE,MAAM,CAAA;IAChB,KAAK,EAAE,MAAM,CAAA;IACb,MAAM,EAAE,MAAM,CAAA;IACd,SAAS,EAAE,IAAI,CAAA;IACf,SAAS,EAAE,IAAI,CAAA;CAChB;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAA;IACV,GAAG,EAAE,MAAM,CAAA;IACX,GAAG,EAAE,MAAM,CAAA;CACZ;AAED,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,aAAa,EAAE,CAAA;IACvB,MAAM,EAAE,OAAO,CAAA;IACf,YAAY,EAAE,MAAM,CAAA;IACpB,OAAO,EAAE,MAAM,IAAI,CAAA;IACnB,UAAU,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,CAAA;CACrC"}
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=ImageLightbox.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+ var lightbox_exports = {};
20
+ __export(lightbox_exports, {
21
+ GallerySection: () => import_GallerySection.GallerySection,
22
+ ImageLightbox: () => import_ImageLightbox.ImageLightbox,
23
+ useEntityLightbox: () => import_useEntityLightbox.useEntityLightbox,
24
+ useLightbox: () => import_useLightbox.useLightbox
25
+ });
26
+ module.exports = __toCommonJS(lightbox_exports);
27
+ var import_ImageLightbox = require("./ImageLightbox");
28
+ var import_useLightbox = require("./useLightbox");
29
+ var import_useEntityLightbox = require("./useEntityLightbox");
30
+ var import_GallerySection = require("./GallerySection");
31
+ // Annotate the CommonJS export names for ESM import in node:
32
+ 0 && (module.exports = {
33
+ GallerySection,
34
+ ImageLightbox,
35
+ useEntityLightbox,
36
+ useLightbox
37
+ });
38
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../components/lightbox/index.ts"],"sourcesContent":["export type { LightboxImage, ImageLightboxProps } from './ImageLightbox.types'\nexport { ImageLightbox } from './ImageLightbox'\nexport { useLightbox } from './useLightbox'\nexport { useEntityLightbox } from './useEntityLightbox'\nexport { GallerySection } from './GallerySection'\nexport type {\n UseEntityLightboxProps,\n UseEntityLightboxReturn,\n} from './useEntityLightbox'\nexport type { GallerySectionProps } from './GallerySection'\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,2BAA8B;AAC9B,yBAA4B;AAC5B,+BAAkC;AAClC,4BAA+B;","names":[]}
@@ -0,0 +1,8 @@
1
+ export type { LightboxImage, ImageLightboxProps } from './ImageLightbox.types';
2
+ export { ImageLightbox } from './ImageLightbox';
3
+ export { useLightbox } from './useLightbox';
4
+ export { useEntityLightbox } from './useEntityLightbox';
5
+ export { GallerySection } from './GallerySection';
6
+ export type { UseEntityLightboxProps, UseEntityLightboxReturn, } from './useEntityLightbox';
7
+ export type { GallerySectionProps } from './GallerySection';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../components/lightbox/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AACvD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,YAAY,EACV,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,qBAAqB,CAAA;AAC5B,YAAY,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAA"}
@@ -0,0 +1,11 @@
1
+ import { ImageLightbox } from "./ImageLightbox";
2
+ import { useLightbox } from "./useLightbox";
3
+ import { useEntityLightbox } from "./useEntityLightbox";
4
+ import { GallerySection } from "./GallerySection";
5
+ export {
6
+ GallerySection,
7
+ ImageLightbox,
8
+ useEntityLightbox,
9
+ useLightbox
10
+ };
11
+ //# sourceMappingURL=index.js.map