@embeddr/react-ui 0.1.3 → 0.1.4

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 (271) hide show
  1. package/LICENSE.md +164 -164
  2. package/README.md +2 -7
  3. package/dist/context/EmbeddrContext.d.ts +8 -0
  4. package/dist/context/EmbeddrContext.d.ts.map +1 -0
  5. package/dist/context/EmbeddrContext.js +14 -0
  6. package/dist/context/EmbeddrContext.js.map +1 -0
  7. package/dist/context/ImageDialogContext.d.ts +1 -2
  8. package/dist/context/ImageDialogContext.d.ts.map +1 -1
  9. package/dist/context/ImageDialogContext.js +3 -14
  10. package/dist/context/ImageDialogContext.js.map +1 -1
  11. package/dist/context/index.d.ts +3 -0
  12. package/dist/context/index.d.ts.map +1 -0
  13. package/dist/context/index.js +3 -0
  14. package/dist/context/index.js.map +1 -0
  15. package/dist/hooks/index.d.ts +4 -0
  16. package/dist/hooks/index.d.ts.map +1 -0
  17. package/dist/hooks/index.js +4 -0
  18. package/dist/hooks/index.js.map +1 -0
  19. package/dist/hooks/useExternalNav.d.ts +1 -1
  20. package/dist/hooks/useExternalNav.d.ts.map +1 -1
  21. package/dist/hooks/useExternalNav.js +8 -11
  22. package/dist/hooks/useExternalNav.js.map +1 -1
  23. package/dist/hooks/useImageDialog.d.ts +1 -1
  24. package/dist/hooks/useImageDialog.d.ts.map +1 -1
  25. package/dist/hooks/useImageDialog.js +10 -0
  26. package/dist/hooks/useImageDialog.js.map +1 -0
  27. package/dist/hooks/useLocalStorage.d.ts +2 -0
  28. package/dist/hooks/useLocalStorage.d.ts.map +1 -0
  29. package/dist/hooks/useLocalStorage.js +37 -0
  30. package/dist/hooks/useLocalStorage.js.map +1 -0
  31. package/dist/index.d.ts +6 -33
  32. package/dist/index.d.ts.map +1 -1
  33. package/dist/index.js +7 -125
  34. package/dist/index.js.map +1 -1
  35. package/dist/lib/utils.d.ts +1 -1
  36. package/dist/lib/utils.d.ts.map +1 -1
  37. package/dist/lib/utils.js +5 -8
  38. package/dist/lib/utils.js.map +1 -1
  39. package/dist/providers/{ExternalNav.d.ts → ExternalNavProvider.d.ts} +1 -1
  40. package/dist/providers/ExternalNavProvider.d.ts.map +1 -0
  41. package/dist/providers/ExternalNavProvider.js +26 -0
  42. package/dist/providers/ExternalNavProvider.js.map +1 -0
  43. package/dist/providers/ImageDialogProvider.d.ts.map +1 -1
  44. package/dist/providers/ImageDialogProvider.js +157 -132
  45. package/dist/providers/ImageDialogProvider.js.map +1 -1
  46. package/dist/providers/index.d.ts +3 -0
  47. package/dist/providers/index.d.ts.map +1 -0
  48. package/dist/providers/index.js +3 -0
  49. package/dist/providers/index.js.map +1 -0
  50. package/dist/types/domain.d.ts +73 -0
  51. package/dist/types/domain.d.ts.map +1 -0
  52. package/dist/types/domain.js +2 -0
  53. package/dist/types/domain.js.map +1 -0
  54. package/dist/types/gallery.d.ts +1 -0
  55. package/dist/types/gallery.d.ts.map +1 -1
  56. package/dist/types/gallery.js +2 -0
  57. package/dist/types/gallery.js.map +1 -0
  58. package/dist/types/index.d.ts +4 -0
  59. package/dist/types/index.d.ts.map +1 -0
  60. package/dist/types/index.js +4 -0
  61. package/dist/types/index.js.map +1 -0
  62. package/dist/types/plugin.d.ts +94 -0
  63. package/dist/types/plugin.d.ts.map +1 -0
  64. package/dist/types/plugin.js +2 -0
  65. package/dist/types/plugin.js.map +1 -0
  66. package/dist/ui/accordion.js +15 -62
  67. package/dist/ui/accordion.js.map +1 -1
  68. package/dist/ui/aspect-ratio.d.ts.map +1 -1
  69. package/dist/ui/aspect-ratio.js +8 -0
  70. package/dist/ui/aspect-ratio.js.map +1 -0
  71. package/dist/ui/avatar.js +12 -49
  72. package/dist/ui/avatar.js.map +1 -1
  73. package/dist/ui/badge.d.ts +3 -3
  74. package/dist/ui/badge.d.ts.map +1 -1
  75. package/dist/ui/badge.js +20 -37
  76. package/dist/ui/badge.js.map +1 -1
  77. package/dist/ui/breadcrumb.js +29 -0
  78. package/dist/ui/breadcrumb.js.map +1 -0
  79. package/dist/ui/button.d.ts +4 -4
  80. package/dist/ui/button.d.ts.map +1 -1
  81. package/dist/ui/button.js +33 -53
  82. package/dist/ui/button.js.map +1 -1
  83. package/dist/ui/card.js +19 -96
  84. package/dist/ui/card.js.map +1 -1
  85. package/dist/ui/checkbox.js +10 -0
  86. package/dist/ui/checkbox.js.map +1 -0
  87. package/dist/ui/context-menu.d.ts +28 -0
  88. package/dist/ui/context-menu.d.ts.map +1 -0
  89. package/dist/ui/context-menu.js +34 -0
  90. package/dist/ui/context-menu.js.map +1 -0
  91. package/dist/ui/dialog.d.ts.map +1 -1
  92. package/dist/ui/dialog.js +27 -128
  93. package/dist/ui/dialog.js.map +1 -1
  94. package/dist/ui/draggable-panel.d.ts +47 -0
  95. package/dist/ui/draggable-panel.d.ts.map +1 -0
  96. package/dist/ui/draggable-panel.js +178 -0
  97. package/dist/ui/draggable-panel.js.map +1 -0
  98. package/dist/ui/dropdown-menu.js +37 -220
  99. package/dist/ui/dropdown-menu.js.map +1 -1
  100. package/dist/ui/index.d.ts +31 -0
  101. package/dist/ui/index.d.ts.map +1 -0
  102. package/dist/ui/index.js +31 -0
  103. package/dist/ui/index.js.map +1 -0
  104. package/dist/ui/input-group.d.ts +6 -6
  105. package/dist/ui/input-group.d.ts.map +1 -1
  106. package/dist/ui/input-group.js +49 -138
  107. package/dist/ui/input-group.js.map +1 -1
  108. package/dist/ui/input.js +7 -22
  109. package/dist/ui/input.js.map +1 -1
  110. package/dist/ui/label.js +8 -23
  111. package/dist/ui/label.js.map +1 -1
  112. package/dist/ui/lightbox/ComparisonSlider.d.ts +7 -0
  113. package/dist/ui/lightbox/ComparisonSlider.d.ts.map +1 -0
  114. package/dist/ui/lightbox/ComparisonSlider.js +62 -0
  115. package/dist/ui/lightbox/ComparisonSlider.js.map +1 -0
  116. package/dist/ui/lightbox/GalleryPicker.js +15 -61
  117. package/dist/ui/lightbox/GalleryPicker.js.map +1 -1
  118. package/dist/ui/lightbox/ImageThumbnailStrip.d.ts.map +1 -1
  119. package/dist/ui/lightbox/ImageThumbnailStrip.js +24 -94
  120. package/dist/ui/lightbox/ImageThumbnailStrip.js.map +1 -1
  121. package/dist/ui/lightbox/LightboxViewer.d.ts.map +1 -1
  122. package/dist/ui/lightbox/LightboxViewer.js +50 -112
  123. package/dist/ui/lightbox/LightboxViewer.js.map +1 -1
  124. package/dist/ui/lightbox/MediaCanvas.d.ts +13 -0
  125. package/dist/ui/lightbox/MediaCanvas.d.ts.map +1 -0
  126. package/dist/ui/lightbox/MediaCanvas.js +18 -0
  127. package/dist/ui/lightbox/MediaCanvas.js.map +1 -0
  128. package/dist/ui/lightbox/PannableImage.d.ts +3 -2
  129. package/dist/ui/lightbox/PannableImage.d.ts.map +1 -1
  130. package/dist/ui/lightbox/PannableImage.js +327 -222
  131. package/dist/ui/lightbox/PannableImage.js.map +1 -1
  132. package/dist/ui/lightbox/PannableVideo.d.ts +9 -0
  133. package/dist/ui/lightbox/PannableVideo.d.ts.map +1 -0
  134. package/dist/ui/lightbox/PannableVideo.js +183 -0
  135. package/dist/ui/lightbox/PannableVideo.js.map +1 -0
  136. package/dist/ui/lightbox/index.d.ts +8 -0
  137. package/dist/ui/lightbox/index.d.ts.map +1 -0
  138. package/dist/ui/lightbox/index.js +8 -0
  139. package/dist/ui/lightbox/index.js.map +1 -0
  140. package/dist/ui/menubar.js +55 -0
  141. package/dist/ui/menubar.js.map +1 -0
  142. package/dist/ui/progress.js +8 -32
  143. package/dist/ui/progress.js.map +1 -1
  144. package/dist/ui/resizable.js +13 -47
  145. package/dist/ui/resizable.js.map +1 -1
  146. package/dist/ui/scroll-area.js +11 -65
  147. package/dist/ui/scroll-area.js.map +1 -1
  148. package/dist/ui/select.js +29 -172
  149. package/dist/ui/select.js.map +1 -1
  150. package/dist/ui/separator.js +8 -27
  151. package/dist/ui/separator.js.map +1 -1
  152. package/dist/ui/skeleton.js +6 -17
  153. package/dist/ui/skeleton.js.map +1 -1
  154. package/dist/ui/slider.js +13 -63
  155. package/dist/ui/slider.js.map +1 -1
  156. package/dist/ui/sonner.d.ts.map +1 -1
  157. package/dist/ui/sonner.js +24 -40
  158. package/dist/ui/sonner.js.map +1 -1
  159. package/dist/ui/spinner.d.ts.map +1 -1
  160. package/dist/ui/spinner.js +7 -20
  161. package/dist/ui/spinner.js.map +1 -1
  162. package/dist/ui/switch.js +8 -32
  163. package/dist/ui/switch.js.map +1 -1
  164. package/dist/ui/table.js +29 -0
  165. package/dist/ui/table.js.map +1 -0
  166. package/dist/ui/tabs.js +15 -68
  167. package/dist/ui/tabs.js.map +1 -1
  168. package/dist/ui/textarea.js +7 -19
  169. package/dist/ui/textarea.js.map +1 -1
  170. package/dist/ui/tooltip.js +14 -53
  171. package/dist/ui/tooltip.js.map +1 -1
  172. package/package.json +29 -12
  173. package/dist/node_modules/.pnpm/@floating-ui_core@1.7.3/node_modules/@floating-ui/core/dist/floating-ui.core.js +0 -528
  174. package/dist/node_modules/.pnpm/@floating-ui_core@1.7.3/node_modules/@floating-ui/core/dist/floating-ui.core.js.map +0 -1
  175. package/dist/node_modules/.pnpm/@floating-ui_dom@1.7.4/node_modules/@floating-ui/dom/dist/floating-ui.dom.js +0 -403
  176. package/dist/node_modules/.pnpm/@floating-ui_dom@1.7.4/node_modules/@floating-ui/dom/dist/floating-ui.dom.js.map +0 -1
  177. package/dist/node_modules/.pnpm/@floating-ui_react-dom@2.1.6_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js +0 -209
  178. package/dist/node_modules/.pnpm/@floating-ui_react-dom@2.1.6_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/@floating-ui/react-dom/dist/floating-ui.react-dom.js.map +0 -1
  179. package/dist/node_modules/.pnpm/@floating-ui_utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js +0 -137
  180. package/dist/node_modules/.pnpm/@floating-ui_utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js.map +0 -1
  181. package/dist/node_modules/.pnpm/@floating-ui_utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.js +0 -131
  182. package/dist/node_modules/.pnpm/@floating-ui_utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.js.map +0 -1
  183. package/dist/node_modules/.pnpm/@radix-ui_primitive@1.1.3/node_modules/@radix-ui/primitive/dist/index.js +0 -10
  184. package/dist/node_modules/.pnpm/@radix-ui_primitive@1.1.3/node_modules/@radix-ui/primitive/dist/index.js.map +0 -1
  185. package/dist/node_modules/.pnpm/@radix-ui_react-arrow@1.1.7_@types_react-dom@19.2.3_@types_react@19.2.7__@types_react@19.2.7__mszl4mxerbyoklygdzmmz7z344/node_modules/@radix-ui/react-arrow/dist/index.js +0 -25
  186. package/dist/node_modules/.pnpm/@radix-ui_react-arrow@1.1.7_@types_react-dom@19.2.3_@types_react@19.2.7__@types_react@19.2.7__mszl4mxerbyoklygdzmmz7z344/node_modules/@radix-ui/react-arrow/dist/index.js.map +0 -1
  187. package/dist/node_modules/.pnpm/@radix-ui_react-compose-refs@1.1.2_@types_react@19.2.7_react@19.2.3/node_modules/@radix-ui/react-compose-refs/dist/index.js +0 -30
  188. package/dist/node_modules/.pnpm/@radix-ui_react-compose-refs@1.1.2_@types_react@19.2.7_react@19.2.3/node_modules/@radix-ui/react-compose-refs/dist/index.js.map +0 -1
  189. package/dist/node_modules/.pnpm/@radix-ui_react-context@1.1.2_@types_react@19.2.7_react@19.2.3/node_modules/@radix-ui/react-context/dist/index.js +0 -54
  190. package/dist/node_modules/.pnpm/@radix-ui_react-context@1.1.2_@types_react@19.2.7_react@19.2.3/node_modules/@radix-ui/react-context/dist/index.js.map +0 -1
  191. package/dist/node_modules/.pnpm/@radix-ui_react-dismissable-layer@1.1.11_@types_react-dom@19.2.3_@types_react@19.2.7__@types__3rf2o2lqjhudzepmewjxnjpij4/node_modules/@radix-ui/react-dismissable-layer/dist/index.js +0 -128
  192. package/dist/node_modules/.pnpm/@radix-ui_react-dismissable-layer@1.1.11_@types_react-dom@19.2.3_@types_react@19.2.7__@types__3rf2o2lqjhudzepmewjxnjpij4/node_modules/@radix-ui/react-dismissable-layer/dist/index.js.map +0 -1
  193. package/dist/node_modules/.pnpm/@radix-ui_react-id@1.1.1_@types_react@19.2.7_react@19.2.3/node_modules/@radix-ui/react-id/dist/index.js +0 -14
  194. package/dist/node_modules/.pnpm/@radix-ui_react-id@1.1.1_@types_react@19.2.7_react@19.2.3/node_modules/@radix-ui/react-id/dist/index.js.map +0 -1
  195. package/dist/node_modules/.pnpm/@radix-ui_react-popper@1.2.8_@types_react-dom@19.2.3_@types_react@19.2.7__@types_react@19.2.7_khjb2df42vo4osw72fyixnkybq/node_modules/@radix-ui/react-popper/dist/index.js +0 -220
  196. package/dist/node_modules/.pnpm/@radix-ui_react-popper@1.2.8_@types_react-dom@19.2.3_@types_react@19.2.7__@types_react@19.2.7_khjb2df42vo4osw72fyixnkybq/node_modules/@radix-ui/react-popper/dist/index.js.map +0 -1
  197. package/dist/node_modules/.pnpm/@radix-ui_react-portal@1.1.9_@types_react-dom@19.2.3_@types_react@19.2.7__@types_react@19.2.7_wazm3ifinqzsamvsqllqreat3m/node_modules/@radix-ui/react-portal/dist/index.js +0 -16
  198. package/dist/node_modules/.pnpm/@radix-ui_react-portal@1.1.9_@types_react-dom@19.2.3_@types_react@19.2.7__@types_react@19.2.7_wazm3ifinqzsamvsqllqreat3m/node_modules/@radix-ui/react-portal/dist/index.js.map +0 -1
  199. package/dist/node_modules/.pnpm/@radix-ui_react-presence@1.1.5_@types_react-dom@19.2.3_@types_react@19.2.7__@types_react@19.2_g7nvzcflnhogkdp32witcuayfy/node_modules/@radix-ui/react-presence/dist/index.js +0 -71
  200. package/dist/node_modules/.pnpm/@radix-ui_react-presence@1.1.5_@types_react-dom@19.2.3_@types_react@19.2.7__@types_react@19.2_g7nvzcflnhogkdp32witcuayfy/node_modules/@radix-ui/react-presence/dist/index.js.map +0 -1
  201. package/dist/node_modules/.pnpm/@radix-ui_react-primitive@2.1.3_@types_react-dom@19.2.3_@types_react@19.2.7__@types_react@19._vrijsupjqixawruberrfb56pbm/node_modules/@radix-ui/react-primitive/dist/index.js +0 -37
  202. package/dist/node_modules/.pnpm/@radix-ui_react-primitive@2.1.3_@types_react-dom@19.2.3_@types_react@19.2.7__@types_react@19._vrijsupjqixawruberrfb56pbm/node_modules/@radix-ui/react-primitive/dist/index.js.map +0 -1
  203. package/dist/node_modules/.pnpm/@radix-ui_react-primitive@2.1.4_@types_react-dom@19.2.3_@types_react@19.2.7__@types_react@19._4sfldbbhvd3xapj4euqmtg5wga/node_modules/@radix-ui/react-primitive/dist/index.js +0 -33
  204. package/dist/node_modules/.pnpm/@radix-ui_react-primitive@2.1.4_@types_react-dom@19.2.3_@types_react@19.2.7__@types_react@19._4sfldbbhvd3xapj4euqmtg5wga/node_modules/@radix-ui/react-primitive/dist/index.js.map +0 -1
  205. package/dist/node_modules/.pnpm/@radix-ui_react-tooltip@1.2.8_@types_react-dom@19.2.3_@types_react@19.2.7__@types_react@19.2._lz7pdiyrbpqbbsap76pucwgg5i/node_modules/@radix-ui/react-tooltip/dist/index.js +0 -339
  206. package/dist/node_modules/.pnpm/@radix-ui_react-tooltip@1.2.8_@types_react-dom@19.2.3_@types_react@19.2.7__@types_react@19.2._lz7pdiyrbpqbbsap76pucwgg5i/node_modules/@radix-ui/react-tooltip/dist/index.js.map +0 -1
  207. package/dist/node_modules/.pnpm/@radix-ui_react-use-callback-ref@1.1.1_@types_react@19.2.7_react@19.2.3/node_modules/@radix-ui/react-use-callback-ref/dist/index.js +0 -11
  208. package/dist/node_modules/.pnpm/@radix-ui_react-use-callback-ref@1.1.1_@types_react@19.2.7_react@19.2.3/node_modules/@radix-ui/react-use-callback-ref/dist/index.js.map +0 -1
  209. package/dist/node_modules/.pnpm/@radix-ui_react-use-controllable-state@1.2.2_@types_react@19.2.7_react@19.2.3/node_modules/@radix-ui/react-use-controllable-state/dist/index.js +0 -53
  210. package/dist/node_modules/.pnpm/@radix-ui_react-use-controllable-state@1.2.2_@types_react@19.2.7_react@19.2.3/node_modules/@radix-ui/react-use-controllable-state/dist/index.js.map +0 -1
  211. package/dist/node_modules/.pnpm/@radix-ui_react-use-escape-keydown@1.1.1_@types_react@19.2.7_react@19.2.3/node_modules/@radix-ui/react-use-escape-keydown/dist/index.js +0 -15
  212. package/dist/node_modules/.pnpm/@radix-ui_react-use-escape-keydown@1.1.1_@types_react@19.2.7_react@19.2.3/node_modules/@radix-ui/react-use-escape-keydown/dist/index.js.map +0 -1
  213. package/dist/node_modules/.pnpm/@radix-ui_react-use-layout-effect@1.1.1_@types_react@19.2.7_react@19.2.3/node_modules/@radix-ui/react-use-layout-effect/dist/index.js +0 -7
  214. package/dist/node_modules/.pnpm/@radix-ui_react-use-layout-effect@1.1.1_@types_react@19.2.7_react@19.2.3/node_modules/@radix-ui/react-use-layout-effect/dist/index.js.map +0 -1
  215. package/dist/node_modules/.pnpm/@radix-ui_react-use-size@1.1.1_@types_react@19.2.7_react@19.2.3/node_modules/@radix-ui/react-use-size/dist/index.js +0 -28
  216. package/dist/node_modules/.pnpm/@radix-ui_react-use-size@1.1.1_@types_react@19.2.7_react@19.2.3/node_modules/@radix-ui/react-use-size/dist/index.js.map +0 -1
  217. package/dist/node_modules/.pnpm/@radix-ui_react-visually-hidden@1.2.3_@types_react-dom@19.2.3_@types_react@19.2.7__@types_rea_xyyq4kaffb3s2ucmc374detnx4/node_modules/@radix-ui/react-visually-hidden/dist/index.js +0 -33
  218. package/dist/node_modules/.pnpm/@radix-ui_react-visually-hidden@1.2.3_@types_react-dom@19.2.3_@types_react@19.2.7__@types_rea_xyyq4kaffb3s2ucmc374detnx4/node_modules/@radix-ui/react-visually-hidden/dist/index.js.map +0 -1
  219. package/dist/node_modules/.pnpm/@radix-ui_react-visually-hidden@1.2.4_@types_react-dom@19.2.3_@types_react@19.2.7__@types_rea_uxirz2wej36zwyzefmreqngy74/node_modules/@radix-ui/react-visually-hidden/dist/index.js +0 -31
  220. package/dist/node_modules/.pnpm/@radix-ui_react-visually-hidden@1.2.4_@types_react-dom@19.2.3_@types_react@19.2.7__@types_rea_uxirz2wej36zwyzefmreqngy74/node_modules/@radix-ui/react-visually-hidden/dist/index.js.map +0 -1
  221. package/dist/node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.js +0 -36
  222. package/dist/node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.js.map +0 -1
  223. package/dist/node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.js +0 -18
  224. package/dist/node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.js.map +0 -1
  225. package/dist/node_modules/.pnpm/lucide-react@0.562.0_react@19.2.3/node_modules/lucide-react/dist/esm/Icon.js +0 -36
  226. package/dist/node_modules/.pnpm/lucide-react@0.562.0_react@19.2.3/node_modules/lucide-react/dist/esm/Icon.js.map +0 -1
  227. package/dist/node_modules/.pnpm/lucide-react@0.562.0_react@19.2.3/node_modules/lucide-react/dist/esm/createLucideIcon.js +0 -22
  228. package/dist/node_modules/.pnpm/lucide-react@0.562.0_react@19.2.3/node_modules/lucide-react/dist/esm/createLucideIcon.js.map +0 -1
  229. package/dist/node_modules/.pnpm/lucide-react@0.562.0_react@19.2.3/node_modules/lucide-react/dist/esm/defaultAttributes.js +0 -15
  230. package/dist/node_modules/.pnpm/lucide-react@0.562.0_react@19.2.3/node_modules/lucide-react/dist/esm/defaultAttributes.js.map +0 -1
  231. package/dist/node_modules/.pnpm/lucide-react@0.562.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/check.js +0 -7
  232. package/dist/node_modules/.pnpm/lucide-react@0.562.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/check.js.map +0 -1
  233. package/dist/node_modules/.pnpm/lucide-react@0.562.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/chevron-down.js +0 -7
  234. package/dist/node_modules/.pnpm/lucide-react@0.562.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/chevron-down.js.map +0 -1
  235. package/dist/node_modules/.pnpm/lucide-react@0.562.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/chevron-right.js +0 -7
  236. package/dist/node_modules/.pnpm/lucide-react@0.562.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/chevron-right.js.map +0 -1
  237. package/dist/node_modules/.pnpm/lucide-react@0.562.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/chevron-up.js +0 -7
  238. package/dist/node_modules/.pnpm/lucide-react@0.562.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/chevron-up.js.map +0 -1
  239. package/dist/node_modules/.pnpm/lucide-react@0.562.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/circle-check.js +0 -10
  240. package/dist/node_modules/.pnpm/lucide-react@0.562.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/circle-check.js.map +0 -1
  241. package/dist/node_modules/.pnpm/lucide-react@0.562.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/circle.js +0 -7
  242. package/dist/node_modules/.pnpm/lucide-react@0.562.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/circle.js.map +0 -1
  243. package/dist/node_modules/.pnpm/lucide-react@0.562.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/grip-vertical.js +0 -14
  244. package/dist/node_modules/.pnpm/lucide-react@0.562.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/grip-vertical.js.map +0 -1
  245. package/dist/node_modules/.pnpm/lucide-react@0.562.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/info.js +0 -11
  246. package/dist/node_modules/.pnpm/lucide-react@0.562.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/info.js.map +0 -1
  247. package/dist/node_modules/.pnpm/lucide-react@0.562.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/loader-circle.js +0 -7
  248. package/dist/node_modules/.pnpm/lucide-react@0.562.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/loader-circle.js.map +0 -1
  249. package/dist/node_modules/.pnpm/lucide-react@0.562.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/octagon-x.js +0 -17
  250. package/dist/node_modules/.pnpm/lucide-react@0.562.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/octagon-x.js.map +0 -1
  251. package/dist/node_modules/.pnpm/lucide-react@0.562.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/pause.js +0 -10
  252. package/dist/node_modules/.pnpm/lucide-react@0.562.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/pause.js.map +0 -1
  253. package/dist/node_modules/.pnpm/lucide-react@0.562.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/play.js +0 -15
  254. package/dist/node_modules/.pnpm/lucide-react@0.562.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/play.js.map +0 -1
  255. package/dist/node_modules/.pnpm/lucide-react@0.562.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/rotate-ccw.js +0 -10
  256. package/dist/node_modules/.pnpm/lucide-react@0.562.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/rotate-ccw.js.map +0 -1
  257. package/dist/node_modules/.pnpm/lucide-react@0.562.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/rotate-cw.js +0 -10
  258. package/dist/node_modules/.pnpm/lucide-react@0.562.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/rotate-cw.js.map +0 -1
  259. package/dist/node_modules/.pnpm/lucide-react@0.562.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/triangle-alert.js +0 -17
  260. package/dist/node_modules/.pnpm/lucide-react@0.562.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/triangle-alert.js.map +0 -1
  261. package/dist/node_modules/.pnpm/lucide-react@0.562.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/x.js +0 -10
  262. package/dist/node_modules/.pnpm/lucide-react@0.562.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/x.js.map +0 -1
  263. package/dist/node_modules/.pnpm/lucide-react@0.562.0_react@19.2.3/node_modules/lucide-react/dist/esm/shared/src/utils.js +0 -19
  264. package/dist/node_modules/.pnpm/lucide-react@0.562.0_react@19.2.3/node_modules/lucide-react/dist/esm/shared/src/utils.js.map +0 -1
  265. package/dist/node_modules/.pnpm/tailwind-merge@3.4.0/node_modules/tailwind-merge/dist/bundle-mjs.js +0 -2766
  266. package/dist/node_modules/.pnpm/tailwind-merge@3.4.0/node_modules/tailwind-merge/dist/bundle-mjs.js.map +0 -1
  267. package/dist/providers/ExternalNav.d.ts.map +0 -1
  268. package/dist/providers/ExternalNav.js +0 -55
  269. package/dist/providers/ExternalNav.js.map +0 -1
  270. package/dist/providers/ImageDialog.d.ts +0 -2
  271. package/dist/providers/ImageDialog.d.ts.map +0 -1
@@ -1,114 +1,52 @@
1
- import { jsxs as i, jsx as e } from "react/jsx-runtime";
2
- import { useState as h, useRef as y, useEffect as v } from "react";
3
- import { Button as f } from "../button.js";
4
- import { PannableImage as I } from "./PannableImage.js";
5
- import { ImageThumbnailStrip as C } from "./ImageThumbnailStrip.js";
6
- import { GalleryPicker as S } from "./GalleryPicker.js";
7
- import V from "../../node_modules/.pnpm/lucide-react@0.562.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/pause.js";
8
- import B from "../../node_modules/.pnpm/lucide-react@0.562.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/play.js";
9
- import G from "../../node_modules/.pnpm/lucide-react@0.562.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/loader-circle.js";
10
- import L from "../../node_modules/.pnpm/lucide-react@0.562.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/x.js";
11
- const J = ({
12
- imageSrc: m,
13
- gallery: r,
14
- imageIndex: s,
15
- onGalleryChange: g,
16
- onImageChange: l,
17
- isOpen: n,
18
- actions: x = [],
19
- isLoading: N,
20
- onClose: d,
21
- showGalleryPicker: k = !1,
22
- showThumbnailStrip: p = !1
23
- }) => {
24
- const [o, b] = h(!1), [a, w] = h(!1), c = y(null);
25
- v(() => (o && (c.current = setInterval(() => {
26
- l(s + 1);
27
- }, 2500)), () => {
28
- c.current && clearInterval(c.current);
29
- }), [o, s, l]), v(() => {
30
- n || b(!1);
31
- }, [n]);
32
- const z = async (t) => {
33
- r && await l(t);
34
- }, u = r?.images[s], P = u ? x.filter((t) => !t.isVisible || t.isVisible(u)).map((t) => ({
35
- icon: t.icon,
36
- label: t.label,
37
- onClick: () => t.onClick(u)
38
- })) : [], j = p ? a ? 180 : 80 : 16;
39
- return /* @__PURE__ */ i("div", { className: "flex flex-col w-full h-full relative min-h-max flex-1 focus:outline-none", children: [
40
- k && /* @__PURE__ */ e("div", { className: "absolute top-0 left-0 right-0 z-20 pointer-events-none", children: /* @__PURE__ */ e("div", { className: "pointer-events-auto", children: /* @__PURE__ */ e(
41
- S,
42
- {
43
- currentGalleryId: r?.id,
44
- onGalleryChange: g
45
- }
46
- ) }) }),
47
- /* @__PURE__ */ i("div", { className: "absolute top-2 right-10 z-30 pointer-events-auto flex gap-2", children: [
48
- /* @__PURE__ */ i(
49
- f,
50
- {
51
- size: "sm",
52
- variant: "outline",
53
- disabled: !0,
54
- className: "px-4 flex items-center justify-center text-sm font-medium text-muted-foreground backdrop-blur-sm",
55
- children: [
56
- s + 1,
57
- " /",
58
- " ",
59
- r?.totalImages || r?.images.length || 0
60
- ]
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useEffect, useRef, useState } from "react";
3
+ import { Loader2, Pause, Play, X } from "lucide-react";
4
+ import { Button } from "../button";
5
+ import { PannableImage } from "./PannableImage";
6
+ import { ImageThumbnailStrip } from "./ImageThumbnailStrip";
7
+ import { GalleryPicker } from "./GalleryPicker";
8
+ export const LightboxViewer = ({ imageSrc, gallery, imageIndex, onGalleryChange, onImageChange, isOpen, actions = [], isLoading, onClose, showGalleryPicker = false, showThumbnailStrip = false, }) => {
9
+ const [isPlaying, setIsPlaying] = useState(false);
10
+ const [isStripOpen, setIsStripOpen] = useState(false);
11
+ const timerRef = useRef(null);
12
+ useEffect(() => {
13
+ if (isPlaying) {
14
+ timerRef.current = setInterval(() => {
15
+ onImageChange(imageIndex + 1);
16
+ }, 2500);
61
17
  }
62
- ),
63
- /* @__PURE__ */ e(
64
- f,
65
- {
66
- variant: "outline",
67
- size: "icon-sm",
68
- onClick: () => b(!o),
69
- className: " rounded-none bg-background/90 hover:bg-secondary/20 text-muted-foreground hover:text-foreground border-b border-l border-border backdrop-blur-sm",
70
- title: o ? "Pause slideshow" : "Start slideshow",
71
- children: o ? /* @__PURE__ */ e(V, { className: "h-4 w-4" }) : /* @__PURE__ */ e(B, { className: "h-4 w-4" })
72
- }
73
- )
74
- ] }),
75
- /* @__PURE__ */ i("div", { className: "flex-1 flex items-center justify-center relative w-full h-full min-h-full", children: [
76
- N && /* @__PURE__ */ e("div", { className: "absolute inset-0 z-50 flex items-center justify-center bg-black/20 backdrop-blur-[1px]", children: /* @__PURE__ */ e(G, { className: "w-10 h-10 text-white animate-spin" }) }),
77
- m && /* @__PURE__ */ e(
78
- I,
79
- {
80
- src: m,
81
- className: "w-full h-full",
82
- isOpen: n,
83
- actions: P,
84
- controlsBottomOffset: j
85
- }
86
- )
87
- ] }),
88
- d && /* @__PURE__ */ e(
89
- f,
90
- {
91
- variant: "outline",
92
- size: "icon-sm",
93
- onClick: d,
94
- className: "cursor-pointer hover:bg-secondary/20 fixed top-2 right-1.5 z-50 flex items-center justify-center group",
95
- "aria-label": "Close dialog",
96
- children: /* @__PURE__ */ e(L, { className: " text-muted-foreground group-hover:text-foreground transition-colors" })
97
- }
98
- ),
99
- p && /* @__PURE__ */ e("div", { className: "absolute bottom-0 left-0 right-0 z-20 select-none focus-visible:outline-none focus:ring-0 focus:ring-transparent", children: r && /* @__PURE__ */ e(
100
- C,
101
- {
102
- gallery: r,
103
- currentIndex: s,
104
- onImageChange: z,
105
- isOpen: a,
106
- onToggle: () => w(!a)
107
- }
108
- ) })
109
- ] });
110
- };
111
- export {
112
- J as LightboxViewer
18
+ return () => {
19
+ if (timerRef.current)
20
+ clearInterval(timerRef.current);
21
+ };
22
+ }, [isPlaying, imageIndex, onImageChange]);
23
+ // Stop playing if dialog closes
24
+ useEffect(() => {
25
+ if (!isOpen)
26
+ setIsPlaying(false);
27
+ }, [isOpen]);
28
+ const handleImageChange = async (index) => {
29
+ if (!gallery)
30
+ return;
31
+ await onImageChange(index);
32
+ };
33
+ // Prepare actions for PannableImage
34
+ const currentImage = gallery?.images[imageIndex];
35
+ const pannableActions = currentImage
36
+ ? actions
37
+ .filter((action) => !action.isVisible || action.isVisible(currentImage))
38
+ .map((action) => ({
39
+ icon: action.icon,
40
+ label: action.label,
41
+ onClick: () => action.onClick(currentImage),
42
+ }))
43
+ : [];
44
+ // Calculate bottom offset for controls based on strip state
45
+ const controlsBottomOffset = showThumbnailStrip
46
+ ? isStripOpen
47
+ ? 180 // Strip open height + padding
48
+ : 80 // Strip closed height + padding
49
+ : 16; // Default padding
50
+ return (_jsxs("div", { className: "flex flex-col w-full h-full relative min-h-max flex-1 focus:outline-none", children: [showGalleryPicker && (_jsx("div", { className: "absolute top-0 left-0 right-0 z-20 pointer-events-none", children: _jsx("div", { className: "pointer-events-auto", children: _jsx(GalleryPicker, { currentGalleryId: gallery?.id, onGalleryChange: onGalleryChange }) }) })), _jsxs("div", { className: "absolute top-2 right-10 z-30 pointer-events-auto flex gap-2", children: [_jsxs(Button, { size: "sm", variant: "outline", disabled: true, className: "px-4 flex items-center justify-center text-sm font-medium text-muted-foreground backdrop-blur-sm", children: [imageIndex + 1, " /", " ", gallery?.totalImages || gallery?.images.length || 0] }), _jsx(Button, { variant: "outline", size: "icon-sm", onClick: () => setIsPlaying(!isPlaying), className: " rounded-none bg-background/90 hover:bg-secondary/20 text-muted-foreground hover:text-foreground border-b border-l border-border backdrop-blur-sm", title: isPlaying ? "Pause slideshow" : "Start slideshow", children: isPlaying ? (_jsx(Pause, { className: "h-4 w-4" })) : (_jsx(Play, { className: "h-4 w-4" })) })] }), _jsxs("div", { className: "flex-1 flex items-center justify-center relative w-full h-full min-h-full", children: [isLoading && (_jsx("div", { className: "absolute inset-0 z-50 flex items-center justify-center bg-black/20 backdrop-blur-[1px]", children: _jsx(Loader2, { className: "w-10 h-10 text-white animate-spin" }) })), imageSrc && (_jsx(PannableImage, { src: imageSrc, mediaType: currentImage?.media_type === "video" ? "video" : "image", className: "w-full h-full", isOpen: isOpen, actions: pannableActions, controlsBottomOffset: controlsBottomOffset }))] }), onClose && (_jsx(Button, { variant: "outline", size: "icon-sm", onClick: onClose, className: "cursor-pointer hover:bg-secondary/20 fixed top-2 right-1.5 z-50 flex items-center justify-center group", "aria-label": "Close dialog", children: _jsx(X, { className: " text-muted-foreground group-hover:text-foreground transition-colors" }) })), showThumbnailStrip && (_jsx("div", { className: "absolute bottom-0 left-0 right-0 z-20 select-none focus-visible:outline-none focus:ring-0 focus:ring-transparent", children: gallery && (_jsx(ImageThumbnailStrip, { gallery: gallery, currentIndex: imageIndex, onImageChange: handleImageChange, isOpen: isStripOpen, onToggle: () => setIsStripOpen(!isStripOpen) })) }))] }));
113
51
  };
114
- //# sourceMappingURL=LightboxViewer.js.map
52
+ //# sourceMappingURL=LightboxViewer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LightboxViewer.js","sources":["../../../src/ui/lightbox/LightboxViewer.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from \"react\";\nimport { Loader2, Pause, Play, X } from \"lucide-react\";\nimport { Button } from \"../button\";\nimport { PannableImage } from \"./PannableImage\";\nimport { ImageThumbnailStrip } from \"./ImageThumbnailStrip\";\nimport { GalleryPicker } from \"./GalleryPicker\";\nimport type { Gallery, ImageAction } from \"../../types/gallery\";\n\ninterface LightboxViewerProps {\n imageSrc?: string | null;\n gallery: Gallery | null;\n imageIndex: number;\n onGalleryChange: (galleryId: string) => void;\n onImageChange: (index: number) => void;\n isOpen?: boolean;\n actions?: Array<ImageAction>;\n isLoading?: boolean;\n onClose?: () => void;\n showGalleryPicker?: boolean;\n showThumbnailStrip?: boolean;\n}\n\nexport const LightboxViewer = ({\n imageSrc,\n gallery,\n imageIndex,\n onGalleryChange,\n onImageChange,\n isOpen,\n actions = [],\n isLoading,\n onClose,\n showGalleryPicker = false,\n showThumbnailStrip = false,\n}: LightboxViewerProps) => {\n const [isPlaying, setIsPlaying] = useState(false);\n const [isStripOpen, setIsStripOpen] = useState(false);\n const timerRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n useEffect(() => {\n if (isPlaying) {\n timerRef.current = setInterval(() => {\n onImageChange(imageIndex + 1);\n }, 2500);\n }\n return () => {\n if (timerRef.current) clearInterval(timerRef.current);\n };\n }, [isPlaying, imageIndex, onImageChange]);\n\n // Stop playing if dialog closes\n useEffect(() => {\n if (!isOpen) setIsPlaying(false);\n }, [isOpen]);\n\n const handleImageChange = async (index: number) => {\n if (!gallery) return;\n await onImageChange(index);\n };\n\n // Prepare actions for PannableImage\n const currentImage = gallery?.images[imageIndex];\n const pannableActions = currentImage\n ? actions\n .filter((action) => !action.isVisible || action.isVisible(currentImage))\n .map((action) => ({\n icon: action.icon,\n label: action.label,\n onClick: () => action.onClick(currentImage),\n }))\n : [];\n\n // Calculate bottom offset for controls based on strip state\n const controlsBottomOffset = showThumbnailStrip\n ? isStripOpen\n ? 180 // Strip open height + padding\n : 80 // Strip closed height + padding\n : 16; // Default padding\n\n return (\n <div className=\"flex flex-col w-full h-full relative min-h-max flex-1 focus:outline-none\">\n {/* Top Gallery Picker */}\n {showGalleryPicker && (\n <div className=\"absolute top-0 left-0 right-0 z-20 pointer-events-none\">\n <div className=\"pointer-events-auto\">\n <GalleryPicker\n currentGalleryId={gallery?.id}\n onGalleryChange={onGalleryChange}\n />\n </div>\n </div>\n )}\n\n <div className=\"absolute top-2 right-10 z-30 pointer-events-auto flex gap-2\">\n <Button\n size=\"sm\"\n variant=\"outline\"\n disabled\n className=\"px-4 flex items-center justify-center text-sm font-medium text-muted-foreground backdrop-blur-sm\"\n >\n {imageIndex + 1} /{\" \"}\n {gallery?.totalImages || gallery?.images.length || 0}\n </Button>\n <Button\n variant=\"outline\"\n size=\"icon-sm\"\n onClick={() => setIsPlaying(!isPlaying)}\n className=\" rounded-none bg-background/90 hover:bg-secondary/20 text-muted-foreground hover:text-foreground border-b border-l border-border backdrop-blur-sm\"\n title={isPlaying ? \"Pause slideshow\" : \"Start slideshow\"}\n >\n {isPlaying ? (\n <Pause className=\"h-4 w-4\" />\n ) : (\n <Play className=\"h-4 w-4\" />\n )}\n </Button>\n </div>\n\n {/* Main Image - Pannable Canvas */}\n <div className=\"flex-1 flex items-center justify-center relative w-full h-full min-h-full\">\n {isLoading && (\n <div className=\"absolute inset-0 z-50 flex items-center justify-center bg-black/20 backdrop-blur-[1px]\">\n <Loader2 className=\"w-10 h-10 text-white animate-spin\" />\n </div>\n )}\n {imageSrc && (\n <PannableImage\n src={imageSrc}\n className=\"w-full h-full\"\n isOpen={isOpen}\n actions={pannableActions}\n controlsBottomOffset={controlsBottomOffset}\n />\n )}\n </div>\n\n {/* Close Button - positioned over content */}\n {onClose && (\n <Button\n variant=\"outline\"\n size=\"icon-sm\"\n onClick={onClose}\n className=\"cursor-pointer hover:bg-secondary/20 fixed top-2 right-1.5 z-50 flex items-center justify-center group\"\n aria-label=\"Close dialog\"\n >\n <X className=\" text-muted-foreground group-hover:text-foreground transition-colors\" />\n </Button>\n )}\n\n {/* Bottom Image Strip */}\n {showThumbnailStrip && (\n <div className=\"absolute bottom-0 left-0 right-0 z-20 select-none focus-visible:outline-none focus:ring-0 focus:ring-transparent\">\n {gallery && (\n <ImageThumbnailStrip\n gallery={gallery}\n currentIndex={imageIndex}\n onImageChange={handleImageChange}\n isOpen={isStripOpen}\n onToggle={() => setIsStripOpen(!isStripOpen)}\n />\n )}\n </div>\n )}\n </div>\n );\n};\n"],"names":["LightboxViewer","imageSrc","gallery","imageIndex","onGalleryChange","onImageChange","isOpen","actions","isLoading","onClose","showGalleryPicker","showThumbnailStrip","isPlaying","setIsPlaying","useState","isStripOpen","setIsStripOpen","timerRef","useRef","useEffect","handleImageChange","index","currentImage","pannableActions","action","controlsBottomOffset","jsxs","jsx","GalleryPicker","Button","Pause","Play","Loader2","PannableImage","X","ImageThumbnailStrip"],"mappings":"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"}
1
+ {"version":3,"file":"LightboxViewer.js","sourceRoot":"","sources":["../../../src/ui/lightbox/LightboxViewer.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ import React from "react";
2
+ import type { PannableImageAction } from "./PannableImage";
3
+ export interface MediaCanvasProps {
4
+ mode: "single" | "compare";
5
+ primaryImage: string;
6
+ secondaryImage?: string;
7
+ className?: string;
8
+ pannableActions?: Array<PannableImageAction>;
9
+ children?: React.ReactNode;
10
+ mediaType?: "image" | "video";
11
+ }
12
+ export declare function MediaCanvas({ mode, primaryImage, secondaryImage, className, pannableActions, children, mediaType, }: MediaCanvasProps): import("react/jsx-runtime").JSX.Element;
13
+ //# sourceMappingURL=MediaCanvas.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MediaCanvas.d.ts","sourceRoot":"","sources":["../../../src/ui/lightbox/MediaCanvas.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,iBAAiB,CAAC;AAEzD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,eAAe,CAAC,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC;IAC7C,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;CAC/B;AAED,wBAAgB,WAAW,CAAC,EAC1B,IAAI,EACJ,YAAY,EACZ,cAAc,EACd,SAAS,EACT,eAAe,EACf,QAAQ,EACR,SAAS,GACV,EAAE,gBAAgB,2CAuClB"}
@@ -0,0 +1,18 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import React from "react";
3
+ import { cn } from "../../lib/utils";
4
+ import { PannableImage } from "./PannableImage";
5
+ import { PannableVideo } from "./PannableVideo";
6
+ import { ComparisonSlider } from "./ComparisonSlider";
7
+ export function MediaCanvas({ mode, primaryImage, secondaryImage, className, pannableActions, children, mediaType, }) {
8
+ const isVideo = (src) => {
9
+ if (mediaType === "video")
10
+ return true;
11
+ if (mediaType === "image")
12
+ return false;
13
+ return src && /\.(mp4|webm|mov|mkv)$/i.test(src);
14
+ };
15
+ return (_jsxs("div", { className: cn("w-full h-full relative overflow-hidden bg-muted/20", className), children: [mode === "single" &&
16
+ (isVideo(primaryImage) ? (_jsx(PannableVideo, { src: primaryImage, className: "w-full h-full", isOpen: true })) : (_jsx(PannableImage, { src: primaryImage, className: "w-full h-full", isOpen: true, actions: pannableActions }))), mode === "compare" && secondaryImage && (_jsx(ComparisonSlider, { before: secondaryImage, after: primaryImage, className: "w-full h-full" })), children] }));
17
+ }
18
+ //# sourceMappingURL=MediaCanvas.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MediaCanvas.js","sourceRoot":"","sources":["../../../src/ui/lightbox/MediaCanvas.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,EAAE,EAAE,MAAM,iBAAiB,CAAC;AACrC,OAAO,EAAE,aAAa,EAAG,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAatD,MAAM,UAAU,WAAW,CAAC,EAC1B,IAAI,EACJ,YAAY,EACZ,cAAc,EACd,SAAS,EACT,eAAe,EACf,QAAQ,EACR,SAAS,GACQ;IACjB,MAAM,OAAO,GAAG,CAAC,GAAY,EAAE,EAAE;QAC/B,IAAI,SAAS,KAAK,OAAO;YAAE,OAAO,IAAI,CAAC;QACvC,IAAI,SAAS,KAAK,OAAO;YAAE,OAAO,KAAK,CAAC;QACxC,OAAO,GAAG,IAAI,wBAAwB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnD,CAAC,CAAC;IAEF,OAAO,CACL,eACE,SAAS,EAAE,EAAE,CACX,oDAAoD,EACpD,SAAS,CACV,aAEA,IAAI,KAAK,QAAQ;gBAChB,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CACvB,KAAC,aAAa,IACZ,GAAG,EAAE,YAAY,EACjB,SAAS,EAAC,eAAe,EACzB,MAAM,EAAE,IAAI,GACZ,CACH,CAAC,CAAC,CAAC,CACF,KAAC,aAAa,IACZ,GAAG,EAAE,YAAY,EACjB,SAAS,EAAC,eAAe,EACzB,MAAM,EAAE,IAAI,EACZ,OAAO,EAAE,eAAe,GACxB,CACH,CAAC,EACH,IAAI,KAAK,SAAS,IAAI,cAAc,IAAI,CACvC,KAAC,gBAAgB,IACf,MAAM,EAAE,cAAc,EACtB,KAAK,EAAE,YAAY,EACnB,SAAS,EAAC,eAAe,GACzB,CACH,EACA,QAAQ,IACL,CACP,CAAC;AACJ,CAAC"}
@@ -1,16 +1,17 @@
1
1
  import type { ReactNode } from "react";
2
- interface PannableImageAction {
2
+ export interface PannableImageAction {
3
3
  icon: ReactNode;
4
4
  label: string;
5
5
  onClick: () => void;
6
6
  }
7
7
  interface PannableImageProps {
8
8
  src: string;
9
+ mediaType?: "image" | "video";
9
10
  className?: string;
10
11
  isOpen?: boolean;
11
12
  actions?: Array<PannableImageAction>;
12
13
  controlsBottomOffset?: number;
13
14
  }
14
- export declare const PannableImage: ({ src, className, isOpen, actions, controlsBottomOffset, }: PannableImageProps) => import("react/jsx-runtime").JSX.Element;
15
+ export declare const PannableImage: ({ src, mediaType, className, isOpen, actions, controlsBottomOffset, }: PannableImageProps) => import("react/jsx-runtime").JSX.Element;
15
16
  export {};
16
17
  //# sourceMappingURL=PannableImage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"PannableImage.d.ts","sourceRoot":"","sources":["../../../src/ui/lightbox/PannableImage.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAC,SAAS,EAAC,MAAM,OAAO,CAAC;AAErC,UAAU,mBAAmB;IAC3B,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,UAAU,kBAAkB;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACrC,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,eAAO,MAAM,aAAa,GAAI,4DAM3B,kBAAkB,4CAuZpB,CAAC"}
1
+ {"version":3,"file":"PannableImage.d.ts","sourceRoot":"","sources":["../../../src/ui/lightbox/PannableImage.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,SAAS,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,UAAU,kBAAkB;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC;IAC9B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,OAAO,CAAC,EAAE,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACrC,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED,eAAO,MAAM,aAAa,GAAI,uEAO3B,kBAAkB,4CAudpB,CAAC"}