@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.
- package/LICENSE.md +164 -164
- package/README.md +43 -10
- package/dist/context/EmbeddrContext.d.ts +8 -0
- package/dist/context/EmbeddrContext.d.ts.map +1 -0
- package/dist/context/EmbeddrContext.js +14 -0
- package/dist/context/EmbeddrContext.js.map +1 -0
- package/dist/context/ImageDialogContext.d.ts +1 -2
- package/dist/context/ImageDialogContext.d.ts.map +1 -1
- package/dist/context/ImageDialogContext.js +3 -14
- package/dist/context/ImageDialogContext.js.map +1 -1
- package/dist/context/index.d.ts +3 -0
- package/dist/context/index.d.ts.map +1 -0
- package/dist/context/index.js +3 -0
- package/dist/context/index.js.map +1 -0
- package/dist/hooks/index.d.ts +4 -0
- package/dist/hooks/index.d.ts.map +1 -0
- package/dist/hooks/index.js +4 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/hooks/useExternalNav.d.ts +1 -1
- package/dist/hooks/useExternalNav.d.ts.map +1 -1
- package/dist/hooks/useExternalNav.js +8 -11
- package/dist/hooks/useExternalNav.js.map +1 -1
- package/dist/hooks/useImageDialog.d.ts +1 -1
- package/dist/hooks/useImageDialog.d.ts.map +1 -1
- package/dist/hooks/useImageDialog.js +10 -0
- package/dist/hooks/useImageDialog.js.map +1 -0
- package/dist/hooks/useLocalStorage.d.ts +2 -0
- package/dist/hooks/useLocalStorage.d.ts.map +1 -0
- package/dist/hooks/useLocalStorage.js +37 -0
- package/dist/hooks/useLocalStorage.js.map +1 -0
- package/dist/index.d.ts +6 -33
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -125
- package/dist/index.js.map +1 -1
- package/dist/lib/utils.d.ts +1 -1
- package/dist/lib/utils.d.ts.map +1 -1
- package/dist/lib/utils.js +5 -8
- package/dist/lib/utils.js.map +1 -1
- package/dist/providers/{ExternalNav.d.ts → ExternalNavProvider.d.ts} +1 -1
- package/dist/providers/ExternalNavProvider.d.ts.map +1 -0
- package/dist/providers/ExternalNavProvider.js +26 -0
- package/dist/providers/ExternalNavProvider.js.map +1 -0
- package/dist/providers/ImageDialogProvider.d.ts.map +1 -1
- package/dist/providers/ImageDialogProvider.js +157 -132
- package/dist/providers/ImageDialogProvider.js.map +1 -1
- package/dist/providers/index.d.ts +3 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +3 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/types/domain.d.ts +73 -0
- package/dist/types/domain.d.ts.map +1 -0
- package/dist/types/domain.js +2 -0
- package/dist/types/domain.js.map +1 -0
- package/dist/types/gallery.d.ts +1 -0
- package/dist/types/gallery.d.ts.map +1 -1
- package/dist/types/gallery.js +2 -0
- package/dist/types/gallery.js.map +1 -0
- package/dist/types/index.d.ts +4 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +4 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/plugin.d.ts +94 -0
- package/dist/types/plugin.d.ts.map +1 -0
- package/dist/types/plugin.js +2 -0
- package/dist/types/plugin.js.map +1 -0
- package/dist/ui/accordion.js +15 -62
- package/dist/ui/accordion.js.map +1 -1
- package/dist/ui/aspect-ratio.d.ts.map +1 -1
- package/dist/ui/aspect-ratio.js +8 -0
- package/dist/ui/aspect-ratio.js.map +1 -0
- package/dist/ui/avatar.js +12 -49
- package/dist/ui/avatar.js.map +1 -1
- package/dist/ui/badge.d.ts +3 -3
- package/dist/ui/badge.d.ts.map +1 -1
- package/dist/ui/badge.js +20 -37
- package/dist/ui/badge.js.map +1 -1
- package/dist/ui/breadcrumb.js +29 -0
- package/dist/ui/breadcrumb.js.map +1 -0
- package/dist/ui/button.d.ts +4 -4
- package/dist/ui/button.d.ts.map +1 -1
- package/dist/ui/button.js +33 -53
- package/dist/ui/button.js.map +1 -1
- package/dist/ui/card.js +19 -96
- package/dist/ui/card.js.map +1 -1
- package/dist/ui/checkbox.js +10 -0
- package/dist/ui/checkbox.js.map +1 -0
- package/dist/ui/context-menu.d.ts +28 -0
- package/dist/ui/context-menu.d.ts.map +1 -0
- package/dist/ui/context-menu.js +34 -0
- package/dist/ui/context-menu.js.map +1 -0
- package/dist/ui/dialog.d.ts.map +1 -1
- package/dist/ui/dialog.js +27 -128
- package/dist/ui/dialog.js.map +1 -1
- package/dist/ui/draggable-panel.d.ts +47 -0
- package/dist/ui/draggable-panel.d.ts.map +1 -0
- package/dist/ui/draggable-panel.js +178 -0
- package/dist/ui/draggable-panel.js.map +1 -0
- package/dist/ui/dropdown-menu.js +37 -220
- package/dist/ui/dropdown-menu.js.map +1 -1
- package/dist/ui/index.d.ts +31 -0
- package/dist/ui/index.d.ts.map +1 -0
- package/dist/ui/index.js +31 -0
- package/dist/ui/index.js.map +1 -0
- package/dist/ui/input-group.d.ts +6 -6
- package/dist/ui/input-group.d.ts.map +1 -1
- package/dist/ui/input-group.js +49 -138
- package/dist/ui/input-group.js.map +1 -1
- package/dist/ui/input.js +7 -22
- package/dist/ui/input.js.map +1 -1
- package/dist/ui/label.js +8 -23
- package/dist/ui/label.js.map +1 -1
- package/dist/ui/lightbox/ComparisonSlider.d.ts +7 -0
- package/dist/ui/lightbox/ComparisonSlider.d.ts.map +1 -0
- package/dist/ui/lightbox/ComparisonSlider.js +62 -0
- package/dist/ui/lightbox/ComparisonSlider.js.map +1 -0
- package/dist/ui/lightbox/GalleryPicker.js +15 -61
- package/dist/ui/lightbox/GalleryPicker.js.map +1 -1
- package/dist/ui/lightbox/ImageThumbnailStrip.d.ts.map +1 -1
- package/dist/ui/lightbox/ImageThumbnailStrip.js +24 -94
- package/dist/ui/lightbox/ImageThumbnailStrip.js.map +1 -1
- package/dist/ui/lightbox/LightboxViewer.d.ts.map +1 -1
- package/dist/ui/lightbox/LightboxViewer.js +50 -112
- package/dist/ui/lightbox/LightboxViewer.js.map +1 -1
- package/dist/ui/lightbox/MediaCanvas.d.ts +13 -0
- package/dist/ui/lightbox/MediaCanvas.d.ts.map +1 -0
- package/dist/ui/lightbox/MediaCanvas.js +18 -0
- package/dist/ui/lightbox/MediaCanvas.js.map +1 -0
- package/dist/ui/lightbox/PannableImage.d.ts +3 -2
- package/dist/ui/lightbox/PannableImage.d.ts.map +1 -1
- package/dist/ui/lightbox/PannableImage.js +327 -222
- package/dist/ui/lightbox/PannableImage.js.map +1 -1
- package/dist/ui/lightbox/PannableVideo.d.ts +9 -0
- package/dist/ui/lightbox/PannableVideo.d.ts.map +1 -0
- package/dist/ui/lightbox/PannableVideo.js +183 -0
- package/dist/ui/lightbox/PannableVideo.js.map +1 -0
- package/dist/ui/lightbox/index.d.ts +8 -0
- package/dist/ui/lightbox/index.d.ts.map +1 -0
- package/dist/ui/lightbox/index.js +8 -0
- package/dist/ui/lightbox/index.js.map +1 -0
- package/dist/ui/menubar.js +55 -0
- package/dist/ui/menubar.js.map +1 -0
- package/dist/ui/progress.js +8 -32
- package/dist/ui/progress.js.map +1 -1
- package/dist/ui/resizable.js +13 -47
- package/dist/ui/resizable.js.map +1 -1
- package/dist/ui/scroll-area.js +11 -65
- package/dist/ui/scroll-area.js.map +1 -1
- package/dist/ui/select.js +29 -172
- package/dist/ui/select.js.map +1 -1
- package/dist/ui/separator.js +8 -27
- package/dist/ui/separator.js.map +1 -1
- package/dist/ui/skeleton.js +6 -17
- package/dist/ui/skeleton.js.map +1 -1
- package/dist/ui/slider.js +13 -63
- package/dist/ui/slider.js.map +1 -1
- package/dist/ui/sonner.d.ts.map +1 -1
- package/dist/ui/sonner.js +24 -40
- package/dist/ui/sonner.js.map +1 -1
- package/dist/ui/spinner.d.ts.map +1 -1
- package/dist/ui/spinner.js +7 -20
- package/dist/ui/spinner.js.map +1 -1
- package/dist/ui/switch.js +8 -32
- package/dist/ui/switch.js.map +1 -1
- package/dist/ui/table.js +29 -0
- package/dist/ui/table.js.map +1 -0
- package/dist/ui/tabs.js +15 -68
- package/dist/ui/tabs.js.map +1 -1
- package/dist/ui/textarea.js +7 -19
- package/dist/ui/textarea.js.map +1 -1
- package/dist/ui/tooltip.js +14 -53
- package/dist/ui/tooltip.js.map +1 -1
- package/package.json +29 -12
- package/dist/node_modules/.pnpm/@floating-ui_core@1.7.3/node_modules/@floating-ui/core/dist/floating-ui.core.js +0 -528
- package/dist/node_modules/.pnpm/@floating-ui_core@1.7.3/node_modules/@floating-ui/core/dist/floating-ui.core.js.map +0 -1
- package/dist/node_modules/.pnpm/@floating-ui_dom@1.7.4/node_modules/@floating-ui/dom/dist/floating-ui.dom.js +0 -403
- package/dist/node_modules/.pnpm/@floating-ui_dom@1.7.4/node_modules/@floating-ui/dom/dist/floating-ui.dom.js.map +0 -1
- 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
- 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
- package/dist/node_modules/.pnpm/@floating-ui_utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.dom.js +0 -137
- 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
- package/dist/node_modules/.pnpm/@floating-ui_utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.js +0 -131
- package/dist/node_modules/.pnpm/@floating-ui_utils@0.2.10/node_modules/@floating-ui/utils/dist/floating-ui.utils.js.map +0 -1
- package/dist/node_modules/.pnpm/@radix-ui_primitive@1.1.3/node_modules/@radix-ui/primitive/dist/index.js +0 -10
- package/dist/node_modules/.pnpm/@radix-ui_primitive@1.1.3/node_modules/@radix-ui/primitive/dist/index.js.map +0 -1
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- package/dist/node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.js +0 -36
- package/dist/node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.js.map +0 -1
- package/dist/node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.js +0 -18
- package/dist/node_modules/.pnpm/clsx@2.1.1/node_modules/clsx/dist/clsx.js.map +0 -1
- package/dist/node_modules/.pnpm/lucide-react@0.562.0_react@19.2.3/node_modules/lucide-react/dist/esm/Icon.js +0 -36
- 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
- package/dist/node_modules/.pnpm/lucide-react@0.562.0_react@19.2.3/node_modules/lucide-react/dist/esm/createLucideIcon.js +0 -22
- 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
- package/dist/node_modules/.pnpm/lucide-react@0.562.0_react@19.2.3/node_modules/lucide-react/dist/esm/defaultAttributes.js +0 -15
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- package/dist/node_modules/.pnpm/tailwind-merge@3.4.0/node_modules/tailwind-merge/dist/bundle-mjs.js +0 -2766
- package/dist/node_modules/.pnpm/tailwind-merge@3.4.0/node_modules/tailwind-merge/dist/bundle-mjs.js.map +0 -1
- package/dist/providers/ExternalNav.d.ts.map +0 -1
- package/dist/providers/ExternalNav.js +0 -55
- package/dist/providers/ExternalNav.js.map +0 -1
- package/dist/providers/ImageDialog.d.ts +0 -2
- 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":"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"}
|
|
1
|
+
{"version":3,"file":"PannableImage.js","sourceRoot":"","sources":["../../../src/ui/lightbox/PannableImage.tsx"],"names":[],"mappings":"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"}
|
|
@@ -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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"}
|
package/dist/ui/progress.js
CHANGED
|
@@ -1,33 +1,9 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import "react";
|
|
3
|
-
import * as
|
|
4
|
-
import { cn
|
|
5
|
-
function
|
|
6
|
-
|
|
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
|
-
|
|
32
|
-
};
|
|
33
|
-
//# sourceMappingURL=progress.js.map
|
|
8
|
+
export { Progress };
|
|
9
|
+
//# sourceMappingURL=progress.js.map
|
package/dist/ui/progress.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"progress.js","sources":["../../src/ui/progress.tsx"],"
|
|
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"}
|
package/dist/ui/resizable.js
CHANGED
|
@@ -1,50 +1,16 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import "react";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
6
|
-
function
|
|
7
|
-
|
|
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
|
|
23
|
-
|
|
9
|
+
function ResizablePanel({ ...props }) {
|
|
10
|
+
return _jsx(Panel, { "data-slot": "resizable-panel", ...props });
|
|
24
11
|
}
|
|
25
|
-
function
|
|
26
|
-
|
|
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
|
-
|
|
47
|
-
v as ResizablePanel,
|
|
48
|
-
h as ResizablePanelGroup
|
|
49
|
-
};
|
|
50
|
-
//# sourceMappingURL=resizable.js.map
|
|
15
|
+
export { ResizablePanelGroup, ResizablePanel, ResizableHandle };
|
|
16
|
+
//# sourceMappingURL=resizable.js.map
|
package/dist/ui/resizable.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"resizable.js","sources":["../../src/ui/resizable.tsx"],"
|
|
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"}
|