@embeddr/react-ui 0.1.2 → 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 +43 -10
  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 +1 @@
1
- {"version":3,"file":"PannableImage.js","sources":["../../../src/ui/lightbox/PannableImage.tsx"],"sourcesContent":["import {\n \n useCallback,\n useEffect,\n useRef,\n useState\n} from \"react\";\nimport { RotateCcw, RotateCw } from \"lucide-react\";\nimport { Button } from \"../button\";\nimport type {ReactNode} from \"react\";\n\ninterface PannableImageAction {\n icon: ReactNode;\n label: string;\n onClick: () => void;\n}\n\ninterface PannableImageProps {\n src: string;\n className?: string;\n isOpen?: boolean;\n actions?: Array<PannableImageAction>;\n controlsBottomOffset?: number;\n}\n\nexport const PannableImage = ({\n src,\n className,\n isOpen,\n actions = [],\n controlsBottomOffset = 16,\n}: PannableImageProps) => {\n const canvasRef = useRef<HTMLCanvasElement>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n const imageRef = useRef<HTMLImageElement | null>(null);\n\n const [isDragging, setIsDragging] = useState(false);\n const [zoom, setZoom] = useState(1);\n const zoomRef = useRef(1);\n const [pan, setPan] = useState({ x: 0, y: 0 });\n const panRef = useRef({ x: 0, y: 0 });\n const [rotation, setRotation] = useState(0);\n const rotationRef = useRef(0);\n const [dragStart, setDragStart] = useState({ x: 0, y: 0 });\n const [isImageLoaded, setIsImageLoaded] = useState(false);\n const [showHelp, setShowHelp] = useState(false);\n\n // Draw image on canvas\n const drawImage = useCallback(() => {\n if (!canvasRef.current || !imageRef.current) return;\n\n const canvas = canvasRef.current;\n const ctx = canvas.getContext(\"2d\");\n if (!ctx || canvas.width === 0 || canvas.height === 0) return;\n\n const dpr = window.devicePixelRatio || 1;\n const img = imageRef.current;\n\n // Clear canvas\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n\n // Calculate fit dimensions\n const r = rotationRef.current;\n const isRotated = (r / 90) % 2 !== 0;\n const canvasAspect = canvas.width / canvas.height;\n const imageAspect = isRotated\n ? img.height / img.width\n : img.width / img.height;\n\n let fitWidth = canvas.width;\n let fitHeight = canvas.height;\n\n if (imageAspect > canvasAspect) {\n // Image is wider than canvas (relative to aspect)\n fitHeight = canvas.width / imageAspect;\n } else {\n // Image is taller than canvas\n fitWidth = canvas.height * imageAspect;\n }\n\n // Apply zoom\n const z = zoomRef.current;\n const p = panRef.current;\n\n // The dimensions of the image as it will be drawn (unrotated)\n const drawWidth = (isRotated ? fitHeight : fitWidth) * z;\n const drawHeight = (isRotated ? fitWidth : fitHeight) * z;\n\n ctx.save();\n // Move to center of canvas + pan\n ctx.translate(canvas.width / 2 + p.x * dpr, canvas.height / 2 + p.y * dpr);\n ctx.rotate((r * Math.PI) / 180);\n\n // Draw image centered at 0,0\n ctx.drawImage(img, -drawWidth / 2, -drawHeight / 2, drawWidth, drawHeight);\n ctx.restore();\n }, []);\n\n // Ensure canvas gets sized correctly once layout stabilizes.\n const ensureCanvasSize = useCallback(() => {\n if (!containerRef.current || !canvasRef.current) return;\n\n const dpr = window.devicePixelRatio || 1;\n let attempts = 0;\n const maxAttempts = 60;\n\n const trySet = () => {\n if (!containerRef.current || !canvasRef.current) return;\n const rect = containerRef.current.getBoundingClientRect();\n\n if (rect.width > 0 && rect.height > 0) {\n canvasRef.current.width = rect.width * dpr;\n canvasRef.current.height = rect.height * dpr;\n canvasRef.current.style.width = `${rect.width}px`;\n canvasRef.current.style.height = `${rect.height}px`;\n drawImage();\n } else if (attempts < maxAttempts) {\n attempts++;\n requestAnimationFrame(trySet);\n }\n };\n\n requestAnimationFrame(trySet);\n }, [drawImage]);\n\n // Resize handler\n const handleResize = useCallback(() => {\n ensureCanvasSize();\n }, [ensureCanvasSize]);\n\n // Trigger ensureCanvasSize when dialog is opened\n useEffect(() => {\n if (isOpen) {\n // Small delay to allow dialog animation/layout to settle\n setTimeout(ensureCanvasSize, 50);\n setTimeout(ensureCanvasSize, 200);\n }\n }, [isOpen, ensureCanvasSize]);\n\n // Load image\n useEffect(() => {\n setIsImageLoaded(false);\n const img = new Image();\n img.src = src;\n img.onload = () => {\n imageRef.current = img;\n setIsImageLoaded(true);\n // Reset zoom/pan on new image\n zoomRef.current = 1;\n setZoom(1);\n panRef.current = { x: 0, y: 0 };\n setPan({ x: 0, y: 0 });\n rotationRef.current = 0;\n setRotation(0);\n handleResize();\n };\n }, [src, handleResize]);\n\n // Setup resize observer and window listener\n useEffect(() => {\n window.addEventListener(\"resize\", handleResize);\n const resizeObserver = new ResizeObserver(() => handleResize());\n if (containerRef.current) {\n resizeObserver.observe(containerRef.current);\n }\n\n return () => {\n window.removeEventListener(\"resize\", handleResize);\n resizeObserver.disconnect();\n };\n }, [handleResize]);\n\n // Redraw when zoom or pan changes\n useEffect(() => {\n zoomRef.current = zoom;\n panRef.current = pan;\n rotationRef.current = rotation;\n requestAnimationFrame(drawImage);\n }, [zoom, pan, rotation, drawImage]);\n\n // Mouse wheel zoom (with pivot at cursor)\n const handleWheel = useCallback((e: WheelEvent) => {\n e.preventDefault();\n const dpr = window.devicePixelRatio || 1;\n const canvas = canvasRef.current;\n if (!canvas) return;\n\n const rect = canvas.getBoundingClientRect();\n const mouseX = (e.clientX - rect.left) * dpr;\n const mouseY = (e.clientY - rect.top) * dpr;\n\n // Center of canvas\n const cx = canvas.width / 2;\n const cy = canvas.height / 2;\n\n // Mouse position relative to center (before zoom)\n const rx = mouseX - cx - panRef.current.x * dpr;\n const ry = mouseY - cy - panRef.current.y * dpr;\n\n const delta = -Math.sign(e.deltaY) * 0.1;\n const newZoom = Math.max(0.1, Math.min(10, zoomRef.current + delta));\n const zoomFactor = newZoom / zoomRef.current;\n\n // Adjust pan to keep mouse over same point\n // newRx = rx * zoomFactor\n // newRx = mouseX - cx - newPanX\n // => newPanX = mouseX - cx - rx * zoomFactor\n const newPanX = (mouseX - cx - rx * zoomFactor) / dpr;\n const newPanY = (mouseY - cy - ry * zoomFactor) / dpr;\n\n setZoom(newZoom);\n setPan({ x: newPanX, y: newPanY });\n }, []);\n\n // Touch handling\n const [touchState, setTouchState] = useState<{\n isPinching: boolean;\n initialDistance: number;\n initialZoom: number;\n initialPan: { x: number; y: number };\n midPoint: { x: number; y: number };\n } | null>(null);\n\n const handleTouchStart = useCallback((e: TouchEvent) => {\n if (e.touches.length === 2) {\n e.preventDefault();\n const t1 = e.touches[0];\n const t2 = e.touches[1];\n const dist = Math.hypot(t1.clientX - t2.clientX, t1.clientY - t2.clientY);\n const midX = (t1.clientX + t2.clientX) / 2;\n const midY = (t1.clientY + t2.clientY) / 2;\n\n setTouchState({\n isPinching: true,\n initialDistance: dist,\n initialZoom: zoomRef.current,\n initialPan: { ...panRef.current },\n midPoint: { x: midX, y: midY },\n });\n } else if (e.touches.length === 1) {\n const t = e.touches[0];\n setDragStart({ x: t.clientX, y: t.clientY });\n setIsDragging(true);\n }\n }, []);\n\n const handleTouchMove = useCallback(\n (e: TouchEvent) => {\n if (e.touches.length === 2 && touchState?.isPinching) {\n e.preventDefault();\n const t1 = e.touches[0];\n const t2 = e.touches[1];\n const dist = Math.hypot(\n t1.clientX - t2.clientX,\n t1.clientY - t2.clientY\n );\n\n const scale = dist / touchState.initialDistance;\n setZoom(Math.max(0.1, Math.min(10, touchState.initialZoom * scale)));\n\n // Optional: Handle pan during pinch (using midpoint delta)\n // const midX = (t1.clientX + t2.clientX) / 2;\n // const midY = (t1.clientY + t2.clientY) / 2;\n // const dx = midX - touchState.midPoint.x;\n // const dy = midY - touchState.midPoint.y;\n // setPan({\n // x: touchState.initialPan.x + dx,\n // y: touchState.initialPan.y + dy\n // });\n } else if (e.touches.length === 1 && isDragging) {\n e.preventDefault(); // Prevent scrolling\n const t = e.touches[0];\n const dx = t.clientX - dragStart.x;\n const dy = t.clientY - dragStart.y;\n setPan((p) => ({ x: p.x + dx, y: p.y + dy }));\n setDragStart({ x: t.clientX, y: t.clientY });\n }\n },\n [touchState, isDragging, dragStart]\n );\n\n const handleTouchEnd = useCallback(() => {\n setTouchState(null);\n setIsDragging(false);\n }, []);\n\n // Mouse drag\n const handleMouseDown = useCallback((e: React.MouseEvent) => {\n setDragStart({ x: e.clientX, y: e.clientY });\n setIsDragging(true);\n }, []);\n\n const handleMouseMove = useCallback(\n (e: React.MouseEvent) => {\n if (isDragging) {\n const dx = e.clientX - dragStart.x;\n const dy = e.clientY - dragStart.y;\n setPan((p) => ({ x: p.x + dx, y: p.y + dy }));\n setDragStart({ x: e.clientX, y: e.clientY });\n }\n },\n [isDragging, dragStart]\n );\n\n const handleMouseUp = useCallback(() => {\n setIsDragging(false);\n }, []);\n\n // Reset view on double click\n const handleDoubleClick = useCallback(() => {\n setZoom(1);\n setPan({ x: 0, y: 0 });\n setRotation(0);\n }, []);\n\n // Attach event listeners\n useEffect(() => {\n const canvas = canvasRef.current;\n if (!canvas) return;\n\n // Passive: false is important for preventing default scroll on touch\n canvas.addEventListener(\"wheel\", handleWheel, { passive: false });\n canvas.addEventListener(\"touchstart\", handleTouchStart, { passive: false });\n canvas.addEventListener(\"touchmove\", handleTouchMove, { passive: false });\n canvas.addEventListener(\"touchend\", handleTouchEnd);\n\n return () => {\n canvas.removeEventListener(\"wheel\", handleWheel);\n canvas.removeEventListener(\"touchstart\", handleTouchStart);\n canvas.removeEventListener(\"touchmove\", handleTouchMove);\n canvas.removeEventListener(\"touchend\", handleTouchEnd);\n };\n }, [handleWheel, handleTouchStart, handleTouchMove, handleTouchEnd]);\n\n return (\n <div\n ref={containerRef}\n className={`${className} relative h-full w-full overflow-hidden`}\n >\n <canvas\n ref={canvasRef}\n onMouseDown={handleMouseDown}\n onMouseMove={handleMouseMove}\n onMouseUp={handleMouseUp}\n onMouseLeave={handleMouseUp}\n onDoubleClick={handleDoubleClick}\n className={`w-[100dvw] h-[100dvh] transition-opacity duration-200 ${\n isImageLoaded ? \"opacity-100\" : \"opacity-0\"\n } ${isDragging ? \"cursor-grabbing\" : \"cursor-grab\"} touch-none`}\n />\n\n {/* Rotation Controls */}\n <div\n className=\"absolute left-2 flex items-center gap-2 opacity-0 hover:opacity-100 transition-opacity duration-200 transition-all duration-300 ease-in-out\"\n style={{ bottom: `${controlsBottomOffset}px` }}\n >\n <Button\n onClick={(e) => {\n e.stopPropagation();\n setRotation((prev) => (prev - 90) % 360);\n }}\n className=\"h-8 w-8 bg-background/90 backdrop-blur-sm border border-border/50 flex items-center justify-center hover:bg-primary/20 transition-all duration-200\"\n title=\"Rotate Counter-clockwise\"\n >\n <RotateCcw className=\"w-4 h-4 text-muted-foreground\" />\n </Button>\n <Button\n onClick={(e) => {\n e.stopPropagation();\n setRotation((prev) => (prev + 90) % 360);\n }}\n className=\"h-8 w-8 bg-background/90 backdrop-blur-sm border border-border/50 flex items-center justify-center hover:bg-primary/20 transition-all duration-200\"\n title=\"Rotate Clockwise\"\n >\n <RotateCw className=\"w-4 h-4 text-muted-foreground\" />\n </Button>\n </div>\n\n {/* Zoom indicator and Help */}\n <div\n className=\"absolute right-2 flex items-center gap-2 transition-all duration-300 ease-in-out\"\n style={{ bottom: `${controlsBottomOffset}px` }}\n >\n {/* Action Buttons */}\n {actions.map((action, idx) => (\n <Button\n key={idx}\n onClick={(e) => {\n e.stopPropagation();\n action.onClick();\n }}\n className=\"h-8 w-8 bg-background/90 backdrop-blur-sm border border-border/50 flex items-center justify-center hover:bg-primary/20 transition-all duration-200\"\n title={action.label}\n >\n {action.icon}\n </Button>\n ))}\n\n <div className=\"h-8 ring-1 ring-foreground/10 bg-background/90 backdrop-blur-sm px-3 py-1.5 text-xs text-muted-foreground pointer-events-none border border-border/50 transition-opacity duration-0 items-center justify-center flex\">\n {Math.round(zoom * 100)}%\n </div>\n\n {/* Help icon */}\n <div className=\"relative\">\n <div\n onMouseEnter={() => setShowHelp(true)}\n onMouseLeave={() => setShowHelp(false)}\n className=\"w-8 h-8 ring-1 ring-foreground/10 bg-background/90 backdrop-blur-sm border border-border/50 flex items-center justify-center cursor-help transition-all duration-0 hover:bg-primary/20\"\n >\n <span className=\"text-xs text-muted-foreground font-medium\">?</span>\n </div>\n\n {/* Help tooltip */}\n {showHelp && (\n <div className=\"absolute bottom-full right-0 mb-2 w-64 bg-background/95 backdrop-blur-sm border border-border p-3 text-xs text-muted-foreground shadow-lg\">\n <div className=\"space-y-1\">\n <div>\n <span className=\"text-foreground\">Scroll/Pinch:</span> Zoom\n in/out\n </div>\n <div>\n <span className=\"text-foreground\">Drag:</span> Pan around\n image\n </div>\n <div>\n <span className=\"text-foreground\">Double-click:</span> Reset\n view\n </div>\n <div>\n <span className=\"text-foreground\">Escape:</span> Close dialog\n </div>\n </div>\n </div>\n )}\n </div>\n </div>\n </div>\n );\n};\n"],"names":["PannableImage","src","className","isOpen","actions","controlsBottomOffset","canvasRef","useRef","containerRef","imageRef","isDragging","setIsDragging","useState","zoom","setZoom","zoomRef","pan","setPan","panRef","rotation","setRotation","rotationRef","dragStart","setDragStart","isImageLoaded","setIsImageLoaded","showHelp","setShowHelp","drawImage","useCallback","canvas","ctx","dpr","img","r","isRotated","canvasAspect","imageAspect","fitWidth","fitHeight","p","drawWidth","drawHeight","ensureCanvasSize","attempts","maxAttempts","trySet","rect","handleResize","useEffect","resizeObserver","handleWheel","mouseX","mouseY","cx","cy","rx","ry","delta","newZoom","zoomFactor","newPanX","newPanY","touchState","setTouchState","handleTouchStart","t1","t2","dist","midX","midY","handleTouchMove","scale","dx","dy","handleTouchEnd","handleMouseDown","handleMouseMove","handleMouseUp","handleDoubleClick","jsxs","jsx","Button","prev","RotateCcw","RotateCw","action","idx","e"],"mappings":";;;;;AAyBO,MAAMA,KAAgB,CAAC;AAAA,EAC5B,KAAAC;AAAA,EACA,WAAAC;AAAA,EACA,QAAAC;AAAA,EACA,SAAAC,IAAU,CAAA;AAAA,EACV,sBAAAC,IAAuB;AACzB,MAA0B;AACxB,QAAMC,IAAYC,EAA0B,IAAI,GAC1CC,IAAeD,EAAuB,IAAI,GAC1CE,IAAWF,EAAgC,IAAI,GAE/C,CAACG,GAAYC,CAAa,IAAIC,EAAS,EAAK,GAC5C,CAACC,GAAMC,CAAO,IAAIF,EAAS,CAAC,GAC5BG,IAAUR,EAAO,CAAC,GAClB,CAACS,GAAKC,CAAM,IAAIL,EAAS,EAAE,GAAG,GAAG,GAAG,GAAG,GACvCM,IAASX,EAAO,EAAE,GAAG,GAAG,GAAG,GAAG,GAC9B,CAACY,GAAUC,CAAW,IAAIR,EAAS,CAAC,GACpCS,IAAcd,EAAO,CAAC,GACtB,CAACe,GAAWC,CAAY,IAAIX,EAAS,EAAE,GAAG,GAAG,GAAG,GAAG,GACnD,CAACY,IAAeC,CAAgB,IAAIb,EAAS,EAAK,GAClD,CAACc,IAAUC,CAAW,IAAIf,EAAS,EAAK,GAGxCgB,IAAYC,EAAY,MAAM;AAClC,QAAI,CAACvB,EAAU,WAAW,CAACG,EAAS,QAAS;AAE7C,UAAMqB,IAASxB,EAAU,SACnByB,IAAMD,EAAO,WAAW,IAAI;AAClC,QAAI,CAACC,KAAOD,EAAO,UAAU,KAAKA,EAAO,WAAW,EAAG;AAEvD,UAAME,IAAM,OAAO,oBAAoB,GACjCC,IAAMxB,EAAS;AAGrB,IAAAsB,EAAI,UAAU,GAAG,GAAGD,EAAO,OAAOA,EAAO,MAAM;AAG/C,UAAMI,IAAIb,EAAY,SAChBc,IAAaD,IAAI,KAAM,MAAM,GAC7BE,IAAeN,EAAO,QAAQA,EAAO,QACrCO,IAAcF,IAChBF,EAAI,SAASA,EAAI,QACjBA,EAAI,QAAQA,EAAI;AAEpB,QAAIK,IAAWR,EAAO,OAClBS,IAAYT,EAAO;AAEvB,IAAIO,IAAcD,IAEhBG,IAAYT,EAAO,QAAQO,IAG3BC,IAAWR,EAAO,SAASO;AAI7B,UAAM,IAAItB,EAAQ,SACZyB,IAAItB,EAAO,SAGXuB,KAAaN,IAAYI,IAAYD,KAAY,GACjDI,KAAcP,IAAYG,IAAWC,KAAa;AAExD,IAAAR,EAAI,KAAA,GAEJA,EAAI,UAAUD,EAAO,QAAQ,IAAIU,EAAE,IAAIR,GAAKF,EAAO,SAAS,IAAIU,EAAE,IAAIR,CAAG,GACzED,EAAI,OAAQG,IAAI,KAAK,KAAM,GAAG,GAG9BH,EAAI,UAAUE,GAAK,CAACQ,IAAY,GAAG,CAACC,IAAa,GAAGD,GAAWC,CAAU,GACzEX,EAAI,QAAA;AAAA,EACN,GAAG,CAAA,CAAE,GAGCY,IAAmBd,EAAY,MAAM;AACzC,QAAI,CAACrB,EAAa,WAAW,CAACF,EAAU,QAAS;AAEjD,UAAM0B,IAAM,OAAO,oBAAoB;AACvC,QAAIY,IAAW;AACf,UAAMC,IAAc,IAEdC,IAAS,MAAM;AACnB,UAAI,CAACtC,EAAa,WAAW,CAACF,EAAU,QAAS;AACjD,YAAMyC,IAAOvC,EAAa,QAAQ,sBAAA;AAElC,MAAIuC,EAAK,QAAQ,KAAKA,EAAK,SAAS,KAClCzC,EAAU,QAAQ,QAAQyC,EAAK,QAAQf,GACvC1B,EAAU,QAAQ,SAASyC,EAAK,SAASf,GACzC1B,EAAU,QAAQ,MAAM,QAAQ,GAAGyC,EAAK,KAAK,MAC7CzC,EAAU,QAAQ,MAAM,SAAS,GAAGyC,EAAK,MAAM,MAC/CnB,EAAA,KACSgB,IAAWC,MACpBD,KACA,sBAAsBE,CAAM;AAAA,IAEhC;AAEA,0BAAsBA,CAAM;AAAA,EAC9B,GAAG,CAAClB,CAAS,CAAC,GAGRoB,IAAenB,EAAY,MAAM;AACrC,IAAAc,EAAA;AAAA,EACF,GAAG,CAACA,CAAgB,CAAC;AAGrB,EAAAM,EAAU,MAAM;AACd,IAAI9C,MAEF,WAAWwC,GAAkB,EAAE,GAC/B,WAAWA,GAAkB,GAAG;AAAA,EAEpC,GAAG,CAACxC,GAAQwC,CAAgB,CAAC,GAG7BM,EAAU,MAAM;AACd,IAAAxB,EAAiB,EAAK;AACtB,UAAMQ,IAAM,IAAI,MAAA;AAChB,IAAAA,EAAI,MAAMhC,GACVgC,EAAI,SAAS,MAAM;AACjB,MAAAxB,EAAS,UAAUwB,GACnBR,EAAiB,EAAI,GAErBV,EAAQ,UAAU,GAClBD,EAAQ,CAAC,GACTI,EAAO,UAAU,EAAE,GAAG,GAAG,GAAG,EAAA,GAC5BD,EAAO,EAAE,GAAG,GAAG,GAAG,GAAG,GACrBI,EAAY,UAAU,GACtBD,EAAY,CAAC,GACb4B,EAAA;AAAA,IACF;AAAA,EACF,GAAG,CAAC/C,GAAK+C,CAAY,CAAC,GAGtBC,EAAU,MAAM;AACd,WAAO,iBAAiB,UAAUD,CAAY;AAC9C,UAAME,IAAiB,IAAI,eAAe,MAAMF,GAAc;AAC9D,WAAIxC,EAAa,WACf0C,EAAe,QAAQ1C,EAAa,OAAO,GAGtC,MAAM;AACX,aAAO,oBAAoB,UAAUwC,CAAY,GACjDE,EAAe,WAAA;AAAA,IACjB;AAAA,EACF,GAAG,CAACF,CAAY,CAAC,GAGjBC,EAAU,MAAM;AACd,IAAAlC,EAAQ,UAAUF,GAClBK,EAAO,UAAUF,GACjBK,EAAY,UAAUF,GACtB,sBAAsBS,CAAS;AAAA,EACjC,GAAG,CAACf,GAAMG,GAAKG,GAAUS,CAAS,CAAC;AAGnC,QAAMuB,IAActB,EAAY,CAAC,MAAkB;AACjD,MAAE,eAAA;AACF,UAAMG,IAAM,OAAO,oBAAoB,GACjCF,IAASxB,EAAU;AACzB,QAAI,CAACwB,EAAQ;AAEb,UAAMiB,IAAOjB,EAAO,sBAAA,GACdsB,KAAU,EAAE,UAAUL,EAAK,QAAQf,GACnCqB,KAAU,EAAE,UAAUN,EAAK,OAAOf,GAGlCsB,IAAKxB,EAAO,QAAQ,GACpByB,IAAKzB,EAAO,SAAS,GAGrB0B,IAAKJ,IAASE,IAAKpC,EAAO,QAAQ,IAAIc,GACtCyB,IAAKJ,IAASE,IAAKrC,EAAO,QAAQ,IAAIc,GAEtC0B,IAAQ,CAAC,KAAK,KAAK,EAAE,MAAM,IAAI,KAC/BC,IAAU,KAAK,IAAI,KAAK,KAAK,IAAI,IAAI5C,EAAQ,UAAU2C,CAAK,CAAC,GAC7DE,IAAaD,IAAU5C,EAAQ,SAM/B8C,KAAWT,IAASE,IAAKE,IAAKI,KAAc5B,GAC5C8B,MAAWT,IAASE,IAAKE,IAAKG,KAAc5B;AAElD,IAAAlB,EAAQ6C,CAAO,GACf1C,EAAO,EAAE,GAAG4C,GAAS,GAAGC,IAAS;AAAA,EACnC,GAAG,CAAA,CAAE,GAGC,CAACC,GAAYC,CAAa,IAAIpD,EAM1B,IAAI,GAERqD,IAAmBpC,EAAY,CAAC,MAAkB;AACtD,QAAI,EAAE,QAAQ,WAAW,GAAG;AAC1B,QAAE,eAAA;AACF,YAAMqC,IAAK,EAAE,QAAQ,CAAC,GAChBC,IAAK,EAAE,QAAQ,CAAC,GAChBC,IAAO,KAAK,MAAMF,EAAG,UAAUC,EAAG,SAASD,EAAG,UAAUC,EAAG,OAAO,GAClEE,KAAQH,EAAG,UAAUC,EAAG,WAAW,GACnCG,KAAQJ,EAAG,UAAUC,EAAG,WAAW;AAEzC,MAAAH,EAAc;AAAA,QACZ,YAAY;AAAA,QACZ,iBAAiBI;AAAA,QACjB,aAAarD,EAAQ;AAAA,QACrB,YAAY,EAAE,GAAGG,EAAO,QAAA;AAAA,QACxB,UAAU,EAAE,GAAGmD,GAAM,GAAGC,EAAA;AAAA,MAAK,CAC9B;AAAA,IACH,WAAW,EAAE,QAAQ,WAAW,GAAG;AACjC,YAAM,IAAI,EAAE,QAAQ,CAAC;AACrB,MAAA/C,EAAa,EAAE,GAAG,EAAE,SAAS,GAAG,EAAE,SAAS,GAC3CZ,EAAc,EAAI;AAAA,IACpB;AAAA,EACF,GAAG,CAAA,CAAE,GAEC4D,IAAkB1C;AAAA,IACtB,CAAC,MAAkB;AACjB,UAAI,EAAE,QAAQ,WAAW,KAAKkC,GAAY,YAAY;AACpD,UAAE,eAAA;AACF,cAAMG,IAAK,EAAE,QAAQ,CAAC,GAChBC,IAAK,EAAE,QAAQ,CAAC,GAMhBK,IALO,KAAK;AAAA,UAChBN,EAAG,UAAUC,EAAG;AAAA,UAChBD,EAAG,UAAUC,EAAG;AAAA,QAAA,IAGGJ,EAAW;AAChC,QAAAjD,EAAQ,KAAK,IAAI,KAAK,KAAK,IAAI,IAAIiD,EAAW,cAAcS,CAAK,CAAC,CAAC;AAAA,MAWrE,WAAW,EAAE,QAAQ,WAAW,KAAK9D,GAAY;AAC/C,UAAE,eAAA;AACF,cAAM,IAAI,EAAE,QAAQ,CAAC,GACf+D,IAAK,EAAE,UAAUnD,EAAU,GAC3BoD,IAAK,EAAE,UAAUpD,EAAU;AACjC,QAAAL,EAAO,CAACuB,OAAO,EAAE,GAAGA,EAAE,IAAIiC,GAAI,GAAGjC,EAAE,IAAIkC,EAAA,EAAK,GAC5CnD,EAAa,EAAE,GAAG,EAAE,SAAS,GAAG,EAAE,SAAS;AAAA,MAC7C;AAAA,IACF;AAAA,IACA,CAACwC,GAAYrD,GAAYY,CAAS;AAAA,EAAA,GAG9BqD,IAAiB9C,EAAY,MAAM;AACvC,IAAAmC,EAAc,IAAI,GAClBrD,EAAc,EAAK;AAAA,EACrB,GAAG,CAAA,CAAE,GAGCiE,KAAkB/C,EAAY,CAAC,MAAwB;AAC3D,IAAAN,EAAa,EAAE,GAAG,EAAE,SAAS,GAAG,EAAE,SAAS,GAC3CZ,EAAc,EAAI;AAAA,EACpB,GAAG,CAAA,CAAE,GAECkE,KAAkBhD;AAAA,IACtB,CAAC,MAAwB;AACvB,UAAInB,GAAY;AACd,cAAM+D,IAAK,EAAE,UAAUnD,EAAU,GAC3BoD,IAAK,EAAE,UAAUpD,EAAU;AACjC,QAAAL,EAAO,CAACuB,OAAO,EAAE,GAAGA,EAAE,IAAIiC,GAAI,GAAGjC,EAAE,IAAIkC,EAAA,EAAK,GAC5CnD,EAAa,EAAE,GAAG,EAAE,SAAS,GAAG,EAAE,SAAS;AAAA,MAC7C;AAAA,IACF;AAAA,IACA,CAACb,GAAYY,CAAS;AAAA,EAAA,GAGlBwD,IAAgBjD,EAAY,MAAM;AACtC,IAAAlB,EAAc,EAAK;AAAA,EACrB,GAAG,CAAA,CAAE,GAGCoE,KAAoBlD,EAAY,MAAM;AAC1C,IAAAf,EAAQ,CAAC,GACTG,EAAO,EAAE,GAAG,GAAG,GAAG,GAAG,GACrBG,EAAY,CAAC;AAAA,EACf,GAAG,CAAA,CAAE;AAGL,SAAA6B,EAAU,MAAM;AACd,UAAMnB,IAASxB,EAAU;AACzB,QAAKwB;AAGL,aAAAA,EAAO,iBAAiB,SAASqB,GAAa,EAAE,SAAS,IAAO,GAChErB,EAAO,iBAAiB,cAAcmC,GAAkB,EAAE,SAAS,IAAO,GAC1EnC,EAAO,iBAAiB,aAAayC,GAAiB,EAAE,SAAS,IAAO,GACxEzC,EAAO,iBAAiB,YAAY6C,CAAc,GAE3C,MAAM;AACX,QAAA7C,EAAO,oBAAoB,SAASqB,CAAW,GAC/CrB,EAAO,oBAAoB,cAAcmC,CAAgB,GACzDnC,EAAO,oBAAoB,aAAayC,CAAe,GACvDzC,EAAO,oBAAoB,YAAY6C,CAAc;AAAA,MACvD;AAAA,EACF,GAAG,CAACxB,GAAac,GAAkBM,GAAiBI,CAAc,CAAC,GAGjE,gBAAAK;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAKxE;AAAA,MACL,WAAW,GAAGN,CAAS;AAAA,MAEvB,UAAA;AAAA,QAAA,gBAAA+E;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,KAAK3E;AAAA,YACL,aAAasE;AAAA,YACb,aAAaC;AAAA,YACb,WAAWC;AAAA,YACX,cAAcA;AAAA,YACd,eAAeC;AAAA,YACf,WAAW,yDACTvD,KAAgB,gBAAgB,WAClC,IAAId,IAAa,oBAAoB,aAAa;AAAA,UAAA;AAAA,QAAA;AAAA,QAIpD,gBAAAsE;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,OAAO,EAAE,QAAQ,GAAG3E,CAAoB,KAAA;AAAA,YAExC,UAAA;AAAA,cAAA,gBAAA4E;AAAA,gBAACC;AAAA,gBAAA;AAAA,kBACC,SAAS,CAAC,MAAM;AACd,sBAAE,gBAAA,GACF9D,EAAY,CAAC+D,OAAUA,IAAO,MAAM,GAAG;AAAA,kBACzC;AAAA,kBACA,WAAU;AAAA,kBACV,OAAM;AAAA,kBAEN,UAAA,gBAAAF,EAACG,IAAA,EAAU,WAAU,gCAAA,CAAgC;AAAA,gBAAA;AAAA,cAAA;AAAA,cAEvD,gBAAAH;AAAA,gBAACC;AAAA,gBAAA;AAAA,kBACC,SAAS,CAAC,MAAM;AACd,sBAAE,gBAAA,GACF9D,EAAY,CAAC+D,OAAUA,IAAO,MAAM,GAAG;AAAA,kBACzC;AAAA,kBACA,WAAU;AAAA,kBACV,OAAM;AAAA,kBAEN,UAAA,gBAAAF,EAACI,IAAA,EAAS,WAAU,gCAAA,CAAgC;AAAA,gBAAA;AAAA,cAAA;AAAA,YACtD;AAAA,UAAA;AAAA,QAAA;AAAA,QAIF,gBAAAL;AAAA,UAAC;AAAA,UAAA;AAAA,YACC,WAAU;AAAA,YACV,OAAO,EAAE,QAAQ,GAAG3E,CAAoB,KAAA;AAAA,YAGvC,UAAA;AAAA,cAAAD,EAAQ,IAAI,CAACkF,GAAQC,MACpB,gBAAAN;AAAA,gBAACC;AAAA,gBAAA;AAAA,kBAEC,SAAS,CAACM,MAAM;AACd,oBAAAA,EAAE,gBAAA,GACFF,EAAO,QAAA;AAAA,kBACT;AAAA,kBACA,WAAU;AAAA,kBACV,OAAOA,EAAO;AAAA,kBAEb,UAAAA,EAAO;AAAA,gBAAA;AAAA,gBARHC;AAAA,cAAA,CAUR;AAAA,cAED,gBAAAP,EAAC,OAAA,EAAI,WAAU,yNACZ,UAAA;AAAA,gBAAA,KAAK,MAAMnE,IAAO,GAAG;AAAA,gBAAE;AAAA,cAAA,GAC1B;AAAA,cAGA,gBAAAmE,EAAC,OAAA,EAAI,WAAU,YACb,UAAA;AAAA,gBAAA,gBAAAC;AAAA,kBAAC;AAAA,kBAAA;AAAA,oBACC,cAAc,MAAMtD,EAAY,EAAI;AAAA,oBACpC,cAAc,MAAMA,EAAY,EAAK;AAAA,oBACrC,WAAU;AAAA,oBAEV,UAAA,gBAAAsD,EAAC,QAAA,EAAK,WAAU,6CAA4C,UAAA,IAAA,CAAC;AAAA,kBAAA;AAAA,gBAAA;AAAA,gBAI9DvD,wBACE,OAAA,EAAI,WAAU,8IACb,UAAA,gBAAAsD,EAAC,OAAA,EAAI,WAAU,aACb,UAAA;AAAA,kBAAA,gBAAAA,EAAC,OAAA,EACC,UAAA;AAAA,oBAAA,gBAAAC,EAAC,QAAA,EAAK,WAAU,mBAAkB,UAAA,iBAAa;AAAA,oBAAO;AAAA,kBAAA,GAExD;AAAA,oCACC,OAAA,EACC,UAAA;AAAA,oBAAA,gBAAAA,EAAC,QAAA,EAAK,WAAU,mBAAkB,UAAA,SAAK;AAAA,oBAAO;AAAA,kBAAA,GAEhD;AAAA,oCACC,OAAA,EACC,UAAA;AAAA,oBAAA,gBAAAA,EAAC,QAAA,EAAK,WAAU,mBAAkB,UAAA,iBAAa;AAAA,oBAAO;AAAA,kBAAA,GAExD;AAAA,oCACC,OAAA,EACC,UAAA;AAAA,oBAAA,gBAAAA,EAAC,QAAA,EAAK,WAAU,mBAAkB,UAAA,WAAO;AAAA,oBAAO;AAAA,kBAAA,EAAA,CAClD;AAAA,gBAAA,EAAA,CACF,EAAA,CACF;AAAA,cAAA,EAAA,CAEJ;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACF;AAAA,IAAA;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"PannableImage.js","sourceRoot":"","sources":["../../../src/ui/lightbox/PannableImage.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ import React from "react";
2
+ interface PannableVideoProps {
3
+ src: string;
4
+ className?: string;
5
+ isOpen?: boolean;
6
+ }
7
+ export declare const PannableVideo: React.FC<PannableVideoProps>;
8
+ export {};
9
+ //# sourceMappingURL=PannableVideo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PannableVideo.d.ts","sourceRoot":"","sources":["../../../src/ui/lightbox/PannableVideo.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAmD,MAAM,OAAO,CAAC;AAExE,UAAU,kBAAkB;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAsPtD,CAAC"}
@@ -0,0 +1,183 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import React, { useCallback, useEffect, useRef, useState } from "react";
3
+ export const PannableVideo = ({ src, className, isOpen = true, }) => {
4
+ const containerRef = useRef(null);
5
+ const videoRef = useRef(null);
6
+ // State
7
+ const [zoom, setZoom] = useState(1);
8
+ const [pan, setPan] = useState({ x: 0, y: 0 });
9
+ const [isDragging, setIsDragging] = useState(false);
10
+ const [dragStart, setDragStart] = useState({ x: 0, y: 0 });
11
+ // Refs for event handlers to access current state without dependencies
12
+ const zoomRef = useRef(1);
13
+ const panRef = useRef({ x: 0, y: 0 });
14
+ // Reset when src or isOpen changes
15
+ useEffect(() => {
16
+ if (isOpen) {
17
+ setZoom(1);
18
+ setPan({ x: 0, y: 0 });
19
+ zoomRef.current = 1;
20
+ panRef.current = { x: 0, y: 0 };
21
+ }
22
+ }, [src, isOpen]);
23
+ // Sync refs
24
+ useEffect(() => {
25
+ zoomRef.current = zoom;
26
+ panRef.current = pan;
27
+ }, [zoom, pan]);
28
+ // Mouse wheel zoom
29
+ const handleWheel = useCallback((e) => {
30
+ e.preventDefault();
31
+ const container = containerRef.current;
32
+ if (!container)
33
+ return;
34
+ const rect = container.getBoundingClientRect();
35
+ const mouseX = e.clientX - rect.left;
36
+ const mouseY = e.clientY - rect.top;
37
+ // Center of container
38
+ const cx = rect.width / 2;
39
+ const cy = rect.height / 2;
40
+ // Mouse position relative to center (before zoom)
41
+ // The content is at (cx + pan.x, cy + pan.y)
42
+ // So vector from content center to mouse is:
43
+ // v = (mouseX - (cx + pan.x), mouseY - (cy + pan.y))
44
+ const rx = mouseX - cx - panRef.current.x;
45
+ const ry = mouseY - cy - panRef.current.y;
46
+ const delta = -Math.sign(e.deltaY) * 0.1;
47
+ const newZoom = Math.max(0.1, Math.min(10, zoomRef.current + delta));
48
+ const zoomFactor = newZoom / zoomRef.current;
49
+ // We want the point under the mouse to stay under the mouse.
50
+ // The vector from content center to that point scales by zoomFactor.
51
+ // new_v = v * zoomFactor
52
+ // The new content center (cx + newPan.x, cy + newPan.y) must satisfy:
53
+ // mouse = newCenter + new_v
54
+ // mouse = (cx + newPan) + (mouse - (cx + oldPan)) * zoomFactor
55
+ // ... math ...
56
+ // newPan = mouse - cx - (mouse - cx - oldPan) * zoomFactor
57
+ const newPanX = mouseX - cx - (mouseX - cx - panRef.current.x) * zoomFactor;
58
+ const newPanY = mouseY - cy - (mouseY - cy - panRef.current.y) * zoomFactor;
59
+ setZoom(newZoom);
60
+ setPan({ x: newPanX, y: newPanY });
61
+ }, []);
62
+ // Touch handling
63
+ const [touchState, setTouchState] = useState(null);
64
+ const handleTouchStart = useCallback((e) => {
65
+ if (e.touches.length === 2) {
66
+ e.preventDefault();
67
+ const t1 = e.touches[0];
68
+ const t2 = e.touches[1];
69
+ if (!t1 || !t2)
70
+ return;
71
+ const dist = Math.hypot(t1.clientX - t2.clientX, t1.clientY - t2.clientY);
72
+ const midX = (t1.clientX + t2.clientX) / 2;
73
+ const midY = (t1.clientY + t2.clientY) / 2;
74
+ setTouchState({
75
+ isPinching: true,
76
+ initialDistance: dist,
77
+ initialZoom: zoomRef.current,
78
+ initialPan: { ...panRef.current },
79
+ midPoint: { x: midX, y: midY },
80
+ });
81
+ }
82
+ else if (e.touches.length === 1) {
83
+ const t = e.touches[0];
84
+ if (!t)
85
+ return;
86
+ setDragStart({ x: t.clientX, y: t.clientY });
87
+ setIsDragging(true);
88
+ }
89
+ }, []);
90
+ const handleTouchMove = useCallback((e) => {
91
+ if (e.touches.length === 2 && touchState?.isPinching) {
92
+ e.preventDefault();
93
+ const t1 = e.touches[0];
94
+ const t2 = e.touches[1];
95
+ if (!t1 || !t2)
96
+ return;
97
+ const dist = Math.hypot(t1.clientX - t2.clientX, t1.clientY - t2.clientY);
98
+ const scale = dist / touchState.initialDistance;
99
+ setZoom(Math.max(0.1, Math.min(10, touchState.initialZoom * scale)));
100
+ }
101
+ else if (e.touches.length === 1 && isDragging) {
102
+ // Only prevent default if we are zoomed in or moved, to allow swipe-to-close if implemented later?
103
+ // For now, prevent default to stop page scroll
104
+ e.preventDefault();
105
+ const t = e.touches[0];
106
+ if (!t)
107
+ return;
108
+ const dx = t.clientX - dragStart.x;
109
+ const dy = t.clientY - dragStart.y;
110
+ setPan((p) => ({ x: p.x + dx, y: p.y + dy }));
111
+ setDragStart({ x: t.clientX, y: t.clientY });
112
+ }
113
+ }, [touchState, isDragging, dragStart]);
114
+ const handleTouchEnd = useCallback(() => {
115
+ setTouchState(null);
116
+ setIsDragging(false);
117
+ }, []);
118
+ // Mouse drag
119
+ const handleMouseDown = useCallback((e) => {
120
+ // Only drag if left click
121
+ if (e.button !== 0)
122
+ return;
123
+ e.preventDefault();
124
+ setDragStart({ x: e.clientX, y: e.clientY });
125
+ setIsDragging(true);
126
+ }, []);
127
+ const handleMouseMove = useCallback((e) => {
128
+ if (isDragging) {
129
+ e.preventDefault();
130
+ const dx = e.clientX - dragStart.x;
131
+ const dy = e.clientY - dragStart.y;
132
+ setPan((p) => ({ x: p.x + dx, y: p.y + dy }));
133
+ setDragStart({ x: e.clientX, y: e.clientY });
134
+ }
135
+ }, [isDragging, dragStart]);
136
+ const handleMouseUp = useCallback(() => {
137
+ setIsDragging(false);
138
+ }, []);
139
+ // Attach non-React event listeners for wheel/touch to support { passive: false }
140
+ useEffect(() => {
141
+ const container = containerRef.current;
142
+ if (!container)
143
+ return;
144
+ container.addEventListener("wheel", handleWheel, { passive: false });
145
+ container.addEventListener("touchstart", handleTouchStart, {
146
+ passive: false,
147
+ });
148
+ container.addEventListener("touchmove", handleTouchMove, {
149
+ passive: false,
150
+ });
151
+ container.addEventListener("touchend", handleTouchEnd);
152
+ return () => {
153
+ container.removeEventListener("wheel", handleWheel);
154
+ container.removeEventListener("touchstart", handleTouchStart);
155
+ container.removeEventListener("touchmove", handleTouchMove);
156
+ container.removeEventListener("touchend", handleTouchEnd);
157
+ };
158
+ }, [handleWheel, handleTouchStart, handleTouchMove, handleTouchEnd]);
159
+ // Double click to reset
160
+ const handleDoubleClick = useCallback(() => {
161
+ setZoom(1);
162
+ setPan({ x: 0, y: 0 });
163
+ }, []);
164
+ return (_jsx("div", { ref: containerRef, className: `relative w-full h-full overflow-hidden bg-black/90 flex items-center justify-center select-none ${className || ""}`, onMouseDown: handleMouseDown, onMouseMove: handleMouseMove, onMouseUp: handleMouseUp, onMouseLeave: handleMouseUp, onDoubleClick: handleDoubleClick, children: _jsx("div", { style: {
165
+ transform: `translate(${pan.x}px, ${pan.y}px) scale(${zoom})`,
166
+ transformOrigin: "center",
167
+ transition: isDragging ? "none" : "transform 0.1s ease-out",
168
+ willChange: "transform",
169
+ maxWidth: "100%",
170
+ maxHeight: "100%",
171
+ display: "flex",
172
+ alignItems: "center",
173
+ justifyContent: "center",
174
+ }, children: _jsx("video", { ref: videoRef, src: src, controls: true, autoPlay: true, loop: true, playsInline: true, className: "max-w-full max-h-full object-contain pointer-events-auto", style: {
175
+ // Ensure controls are clickable?
176
+ // If we drag on the video, we might pause it if we click.
177
+ // But we are handling mousedown on the container.
178
+ // The video element is a child.
179
+ // If the user clicks controls, event propagation might be an issue.
180
+ // But native controls are usually in Shadow DOM.
181
+ } }) }) }));
182
+ };
183
+ //# sourceMappingURL=PannableVideo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PannableVideo.js","sourceRoot":"","sources":["../../../src/ui/lightbox/PannableVideo.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ export { LightboxViewer } from "./LightboxViewer";
2
+ export { PannableImage } from "./PannableImage";
3
+ export { ImageThumbnailStrip } from "./ImageThumbnailStrip";
4
+ export { GalleryPicker } from "./GalleryPicker";
5
+ export { ComparisonSlider } from "./ComparisonSlider";
6
+ export { MediaCanvas } from "./MediaCanvas";
7
+ export { PannableVideo } from "./PannableVideo";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/ui/lightbox/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,8 @@
1
+ export { LightboxViewer } from "./LightboxViewer";
2
+ export { PannableImage } from "./PannableImage";
3
+ export { ImageThumbnailStrip } from "./ImageThumbnailStrip";
4
+ export { GalleryPicker } from "./GalleryPicker";
5
+ export { ComparisonSlider } from "./ComparisonSlider";
6
+ export { MediaCanvas } from "./MediaCanvas";
7
+ export { PannableVideo } from "./PannableVideo";
8
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/ui/lightbox/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,55 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import * as React from "react";
3
+ import * as MenubarPrimitive from "@radix-ui/react-menubar";
4
+ import { CheckIcon, ChevronRightIcon, CircleIcon } from "lucide-react";
5
+ import { cn } from "../lib/utils";
6
+ function Menubar({ className, ...props }) {
7
+ return (_jsx(MenubarPrimitive.Root, { "data-slot": "menubar", className: cn("bg-background flex h-9 items-center gap-1 rounded-md border p-1 shadow-xs", className), ...props }));
8
+ }
9
+ function MenubarMenu({ ...props }) {
10
+ return _jsx(MenubarPrimitive.Menu, { "data-slot": "menubar-menu", ...props });
11
+ }
12
+ function MenubarGroup({ ...props }) {
13
+ return _jsx(MenubarPrimitive.Group, { "data-slot": "menubar-group", ...props });
14
+ }
15
+ function MenubarPortal({ ...props }) {
16
+ return _jsx(MenubarPrimitive.Portal, { "data-slot": "menubar-portal", ...props });
17
+ }
18
+ function MenubarRadioGroup({ ...props }) {
19
+ return (_jsx(MenubarPrimitive.RadioGroup, { "data-slot": "menubar-radio-group", ...props }));
20
+ }
21
+ function MenubarTrigger({ className, ...props }) {
22
+ return (_jsx(MenubarPrimitive.Trigger, { "data-slot": "menubar-trigger", className: cn("focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex items-center rounded-sm px-2 py-1 text-sm font-medium outline-hidden select-none", className), ...props }));
23
+ }
24
+ function MenubarContent({ className, align = "start", alignOffset = -4, sideOffset = 8, ...props }) {
25
+ return (_jsx(MenubarPortal, { children: _jsx(MenubarPrimitive.Content, { "data-slot": "menubar-content", align: align, alignOffset: alignOffset, sideOffset: sideOffset, className: cn("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-[9999] min-w-48 origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-md", className), ...props }) }));
26
+ }
27
+ function MenubarItem({ className, inset, variant = "default", ...props }) {
28
+ return (_jsx(MenubarPrimitive.Item, { "data-slot": "menubar-item", "data-inset": inset, "data-variant": variant, className: cn("focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:text-destructive! [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 data-inset:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className), ...props }));
29
+ }
30
+ function MenubarCheckboxItem({ className, children, checked, ...props }) {
31
+ return (_jsxs(MenubarPrimitive.CheckboxItem, { "data-slot": "menubar-checkbox-item", className: cn("focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className), checked: checked, ...props, children: [_jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: _jsx(MenubarPrimitive.ItemIndicator, { children: _jsx(CheckIcon, { className: "size-4" }) }) }), children] }));
32
+ }
33
+ function MenubarRadioItem({ className, children, ...props }) {
34
+ return (_jsxs(MenubarPrimitive.RadioItem, { "data-slot": "menubar-radio-item", className: cn("focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className), ...props, children: [_jsx("span", { className: "pointer-events-none absolute left-2 flex size-3.5 items-center justify-center", children: _jsx(MenubarPrimitive.ItemIndicator, { children: _jsx(CircleIcon, { className: "size-2 fill-current" }) }) }), children] }));
35
+ }
36
+ function MenubarLabel({ className, inset, ...props }) {
37
+ return (_jsx(MenubarPrimitive.Label, { "data-slot": "menubar-label", "data-inset": inset, className: cn("px-2 py-1.5 text-sm font-medium data-inset:pl-8", className), ...props }));
38
+ }
39
+ function MenubarSeparator({ className, ...props }) {
40
+ return (_jsx(MenubarPrimitive.Separator, { "data-slot": "menubar-separator", className: cn("bg-border -mx-1 my-1 h-px", className), ...props }));
41
+ }
42
+ function MenubarShortcut({ className, ...props }) {
43
+ return (_jsx("span", { "data-slot": "menubar-shortcut", className: cn("text-muted-foreground ml-auto text-xs tracking-widest", className), ...props }));
44
+ }
45
+ function MenubarSub({ ...props }) {
46
+ return _jsx(MenubarPrimitive.Sub, { "data-slot": "menubar-sub", ...props });
47
+ }
48
+ function MenubarSubTrigger({ className, inset, children, ...props }) {
49
+ return (_jsxs(MenubarPrimitive.SubTrigger, { "data-slot": "menubar-sub-trigger", "data-inset": inset, className: cn("focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-none select-none data-inset:pl-8", className), ...props, children: [children, _jsx(ChevronRightIcon, { className: "ml-auto h-4 w-4" })] }));
50
+ }
51
+ function MenubarSubContent({ className, ...props }) {
52
+ return (_jsx(MenubarPrimitive.SubContent, { "data-slot": "menubar-sub-content", className: cn("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-[9999] min-w-32 origin-(--radix-menubar-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg", className), ...props }));
53
+ }
54
+ export { Menubar, MenubarPortal, MenubarMenu, MenubarTrigger, MenubarContent, MenubarGroup, MenubarSeparator, MenubarLabel, MenubarItem, MenubarShortcut, MenubarCheckboxItem, MenubarRadioGroup, MenubarRadioItem, MenubarSub, MenubarSubTrigger, MenubarSubContent, };
55
+ //# sourceMappingURL=menubar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menubar.js","sourceRoot":"","sources":["../../src/ui/menubar.tsx"],"names":[],"mappings":"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"}
@@ -1,33 +1,9 @@
1
- import { jsx as r } from "react/jsx-runtime";
2
- import "react";
3
- import * as o from "@radix-ui/react-progress";
4
- import { cn as i } from "../lib/utils.js";
5
- function n({
6
- className: t,
7
- value: s,
8
- ...a
9
- }) {
10
- return /* @__PURE__ */ r(
11
- o.Root,
12
- {
13
- "data-slot": "progress",
14
- className: i(
15
- "bg-primary/20 relative h-2 w-full overflow-hidden",
16
- t
17
- ),
18
- ...a,
19
- children: /* @__PURE__ */ r(
20
- o.Indicator,
21
- {
22
- "data-slot": "progress-indicator",
23
- className: "bg-primary h-full w-full flex-1 transition-all",
24
- style: { transform: `translateX(-${100 - (s || 0)}%)` }
25
- }
26
- )
27
- }
28
- );
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as React from "react";
3
+ import * as ProgressPrimitive from "@radix-ui/react-progress";
4
+ import { cn } from "../lib/utils";
5
+ function Progress({ className, value, ...props }) {
6
+ return (_jsx(ProgressPrimitive.Root, { "data-slot": "progress", className: cn("bg-primary/20 relative h-2 w-full overflow-hidden", className), ...props, children: _jsx(ProgressPrimitive.Indicator, { "data-slot": "progress-indicator", className: "bg-primary h-full w-full flex-1 transition-all", style: { transform: `translateX(-${100 - (value || 0)}%)` } }) }));
29
7
  }
30
- export {
31
- n as Progress
32
- };
33
- //# sourceMappingURL=progress.js.map
8
+ export { Progress };
9
+ //# sourceMappingURL=progress.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"progress.js","sources":["../../src/ui/progress.tsx"],"sourcesContent":["import * as React from \"react\";\nimport * as ProgressPrimitive from \"@radix-ui/react-progress\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction Progress({\n className,\n value,\n ...props\n}: React.ComponentProps<typeof ProgressPrimitive.Root>) {\n return (\n <ProgressPrimitive.Root\n data-slot=\"progress\"\n className={cn(\n \"bg-primary/20 relative h-2 w-full overflow-hidden\",\n className\n )}\n {...props}\n >\n <ProgressPrimitive.Indicator\n data-slot=\"progress-indicator\"\n className=\"bg-primary h-full w-full flex-1 transition-all\"\n style={{ transform: `translateX(-${100 - (value || 0)}%)` }}\n />\n </ProgressPrimitive.Root>\n );\n}\n\nexport { Progress };\n"],"names":["Progress","className","value","props","jsx","ProgressPrimitive","cn"],"mappings":";;;;AAKA,SAASA,EAAS;AAAA,EAChB,WAAAC;AAAA,EACA,OAAAC;AAAA,EACA,GAAGC;AACL,GAAwD;AACtD,SACE,gBAAAC;AAAA,IAACC,EAAkB;AAAA,IAAlB;AAAA,MACC,aAAU;AAAA,MACV,WAAWC;AAAA,QACT;AAAA,QACAL;AAAA,MAAA;AAAA,MAED,GAAGE;AAAA,MAEJ,UAAA,gBAAAC;AAAA,QAACC,EAAkB;AAAA,QAAlB;AAAA,UACC,aAAU;AAAA,UACV,WAAU;AAAA,UACV,OAAO,EAAE,WAAW,eAAe,OAAOH,KAAS,EAAE,KAAA;AAAA,QAAK;AAAA,MAAA;AAAA,IAC5D;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"progress.js","sourceRoot":"","sources":["../../src/ui/progress.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,iBAAiB,MAAM,0BAA0B,CAAC;AAE9D,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAElC,SAAS,QAAQ,CAAC,EAChB,SAAS,EACT,KAAK,EACL,GAAG,KAAK,EAC4C;IACpD,OAAO,CACL,KAAC,iBAAiB,CAAC,IAAI,iBACX,UAAU,EACpB,SAAS,EAAE,EAAE,CACX,mDAAmD,EACnD,SAAS,CACV,KACG,KAAK,YAET,KAAC,iBAAiB,CAAC,SAAS,iBAChB,oBAAoB,EAC9B,SAAS,EAAC,gDAAgD,EAC1D,KAAK,EAAE,EAAE,SAAS,EAAE,eAAe,GAAG,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,IAAI,EAAE,GAC3D,GACqB,CAC1B,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,QAAQ,EAAE,CAAC"}
@@ -1,50 +1,16 @@
1
- import { jsx as e } from "react/jsx-runtime";
2
- import "react";
3
- import { Group as o, Panel as l, Separator as n } from "react-resizable-panels";
4
- import { cn as t } from "../lib/utils.js";
5
- import f from "../node_modules/.pnpm/lucide-react@0.562.0_react@19.2.3/node_modules/lucide-react/dist/esm/icons/grip-vertical.js";
6
- function h({
7
- className: a,
8
- ...r
9
- }) {
10
- return /* @__PURE__ */ e(
11
- o,
12
- {
13
- "data-slot": "resizable-panel-group",
14
- className: t(
15
- "flex h-full w-full data-[panel-group-direction=vertical]:flex-col",
16
- a
17
- ),
18
- ...r
19
- }
20
- );
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import * as React from "react";
3
+ import { GripVerticalIcon } from "lucide-react";
4
+ import { Group, Panel, Separator } from "react-resizable-panels";
5
+ import { cn } from "../lib/utils";
6
+ function ResizablePanelGroup({ className, ...props }) {
7
+ return (_jsx(Group, { "data-slot": "resizable-panel-group", className: cn("flex h-full w-full data-[panel-group-direction=vertical]:flex-col", className), ...props }));
21
8
  }
22
- function v({ ...a }) {
23
- return /* @__PURE__ */ e(l, { "data-slot": "resizable-panel", ...a });
9
+ function ResizablePanel({ ...props }) {
10
+ return _jsx(Panel, { "data-slot": "resizable-panel", ...props });
24
11
  }
25
- function b({
26
- withHandle: a,
27
- className: r,
28
- ...i
29
- }) {
30
- return /* @__PURE__ */ e(
31
- n,
32
- {
33
- "data-slot": "resizable-handle",
34
- className: t(
35
- "bg-border focus-visible:ring-ring relative flex w-px items-center justify-center after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-offset-1 focus-visible:outline-hidden",
36
- "data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:translate-x-0 data-[panel-group-direction=vertical]:after:-translate-y-1/2 [&[data-panel-group-direction=vertical]>div]:rotate-90",
37
- "aria-[orientation=horizontal]:h-px aria-[orientation=horizontal]:w-full aria-[orientation=horizontal]:after:left-0 aria-[orientation=horizontal]:after:h-1 aria-[orientation=horizontal]:after:w-full aria-[orientation=horizontal]:after:translate-x-0 aria-[orientation=horizontal]:after:-translate-y-1/2 [&[aria-orientation=horizontal]>div]:rotate-90",
38
- r
39
- ),
40
- ...i,
41
- children: a && /* @__PURE__ */ e("div", { className: "bg-border z-10 flex h-4 w-3 items-center justify-center rounded-xs border", children: /* @__PURE__ */ e(f, { className: "size-2.5" }) })
42
- }
43
- );
12
+ function ResizableHandle({ withHandle, className, ...props }) {
13
+ return (_jsx(Separator, { "data-slot": "resizable-handle", className: cn("bg-border focus-visible:ring-ring relative flex w-px items-center justify-center after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-offset-1 focus-visible:outline-hidden", "data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:translate-x-0 data-[panel-group-direction=vertical]:after:-translate-y-1/2 [&[data-panel-group-direction=vertical]>div]:rotate-90", "aria-[orientation=horizontal]:h-px aria-[orientation=horizontal]:w-full aria-[orientation=horizontal]:after:left-0 aria-[orientation=horizontal]:after:h-1 aria-[orientation=horizontal]:after:w-full aria-[orientation=horizontal]:after:translate-x-0 aria-[orientation=horizontal]:after:-translate-y-1/2 [&[aria-orientation=horizontal]>div]:rotate-90", className), ...props, children: withHandle && (_jsx("div", { className: "bg-border z-10 flex h-4 w-3 items-center justify-center rounded-xs border", children: _jsx(GripVerticalIcon, { className: "size-2.5" }) })) }));
44
14
  }
45
- export {
46
- b as ResizableHandle,
47
- v as ResizablePanel,
48
- h as ResizablePanelGroup
49
- };
50
- //# sourceMappingURL=resizable.js.map
15
+ export { ResizablePanelGroup, ResizablePanel, ResizableHandle };
16
+ //# sourceMappingURL=resizable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resizable.js","sources":["../../src/ui/resizable.tsx"],"sourcesContent":["import * as React from \"react\";\nimport { GripVerticalIcon } from \"lucide-react\";\nimport { Group, Panel, Separator } from \"react-resizable-panels\";\n\nimport { cn } from \"../lib/utils\";\n\nfunction ResizablePanelGroup({\n className,\n ...props\n}: React.ComponentProps<typeof Group>) {\n return (\n <Group\n data-slot=\"resizable-panel-group\"\n className={cn(\n \"flex h-full w-full data-[panel-group-direction=vertical]:flex-col\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction ResizablePanel({ ...props }: React.ComponentProps<typeof Panel>) {\n return <Panel data-slot=\"resizable-panel\" {...props} />;\n}\n\nfunction ResizableHandle({\n withHandle,\n className,\n ...props\n}: React.ComponentProps<typeof Separator> & {\n withHandle?: boolean;\n}) {\n return (\n <Separator\n data-slot=\"resizable-handle\"\n className={cn(\n \"bg-border focus-visible:ring-ring relative flex w-px items-center justify-center after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-offset-1 focus-visible:outline-hidden\",\n \"data-[panel-group-direction=vertical]:h-px data-[panel-group-direction=vertical]:w-full data-[panel-group-direction=vertical]:after:left-0 data-[panel-group-direction=vertical]:after:h-1 data-[panel-group-direction=vertical]:after:w-full data-[panel-group-direction=vertical]:after:translate-x-0 data-[panel-group-direction=vertical]:after:-translate-y-1/2 [&[data-panel-group-direction=vertical]>div]:rotate-90\",\n \"aria-[orientation=horizontal]:h-px aria-[orientation=horizontal]:w-full aria-[orientation=horizontal]:after:left-0 aria-[orientation=horizontal]:after:h-1 aria-[orientation=horizontal]:after:w-full aria-[orientation=horizontal]:after:translate-x-0 aria-[orientation=horizontal]:after:-translate-y-1/2 [&[aria-orientation=horizontal]>div]:rotate-90\",\n className\n )}\n {...props}\n >\n {withHandle && (\n <div className=\"bg-border z-10 flex h-4 w-3 items-center justify-center rounded-xs border\">\n <GripVerticalIcon className=\"size-2.5\" />\n </div>\n )}\n </Separator>\n );\n}\n\nexport { ResizablePanelGroup, ResizablePanel, ResizableHandle };\n"],"names":["ResizablePanelGroup","className","props","jsx","Group","cn","ResizablePanel","Panel","ResizableHandle","withHandle","Separator","GripVerticalIcon"],"mappings":";;;;;AAMA,SAASA,EAAoB;AAAA,EAC3B,WAAAC;AAAA,EACA,GAAGC;AACL,GAAuC;AACrC,SACE,gBAAAC;AAAA,IAACC;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWC;AAAA,QACT;AAAA,QACAJ;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,IAAA;AAAA,EAAA;AAGV;AAEA,SAASI,EAAe,EAAE,GAAGJ,KAA6C;AACxE,SAAO,gBAAAC,EAACI,GAAA,EAAM,aAAU,mBAAmB,GAAGL,GAAO;AACvD;AAEA,SAASM,EAAgB;AAAA,EACvB,YAAAC;AAAA,EACA,WAAAR;AAAA,EACA,GAAGC;AACL,GAEG;AACD,SACE,gBAAAC;AAAA,IAACO;AAAA,IAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAWL;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACAJ;AAAA,MAAA;AAAA,MAED,GAAGC;AAAA,MAEH,UAAAO,uBACE,OAAA,EAAI,WAAU,6EACb,UAAA,gBAAAN,EAACQ,GAAA,EAAiB,WAAU,WAAA,CAAW,EAAA,CACzC;AAAA,IAAA;AAAA,EAAA;AAIR;"}
1
+ {"version":3,"file":"resizable.js","sourceRoot":"","sources":["../../src/ui/resizable.tsx"],"names":[],"mappings":";AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEjE,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AAElC,SAAS,mBAAmB,CAAC,EAC3B,SAAS,EACT,GAAG,KAAK,EAC2B;IACnC,OAAO,CACL,KAAC,KAAK,iBACM,uBAAuB,EACjC,SAAS,EAAE,EAAE,CACX,mEAAmE,EACnE,SAAS,CACV,KACG,KAAK,GACT,CACH,CAAC;AACJ,CAAC;AAED,SAAS,cAAc,CAAC,EAAE,GAAG,KAAK,EAAsC;IACtE,OAAO,KAAC,KAAK,iBAAW,iBAAiB,KAAK,KAAK,GAAI,CAAC;AAC1D,CAAC;AAED,SAAS,eAAe,CAAC,EACvB,UAAU,EACV,SAAS,EACT,GAAG,KAAK,EAGT;IACC,OAAO,CACL,KAAC,SAAS,iBACE,kBAAkB,EAC5B,SAAS,EAAE,EAAE,CACX,+OAA+O,EAC/O,6ZAA6Z,EAC7Z,6VAA6V,EAC7V,SAAS,CACV,KACG,KAAK,YAER,UAAU,IAAI,CACb,cAAK,SAAS,EAAC,2EAA2E,YACxF,KAAC,gBAAgB,IAAC,SAAS,EAAC,UAAU,GAAG,GACrC,CACP,GACS,CACb,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,mBAAmB,EAAE,cAAc,EAAE,eAAe,EAAE,CAAC"}