import React from "react"; import type { LightBoxNavigationProps, LightBoxProps, LightBoxThumbnailBarProps, LightBoxThumbnailImageProps, LightBoxThumbnailProps } from "./LightBox.types"; import { LightBoxProvider } from "./LightBoxContext"; export declare function LightBoxContent(): React.JSX.Element; /** * Blurred, desaturated copy of the current image rendered as a full-bleed * background behind the lightbox. Pass `className` to apply additional styles. */ declare function LightBoxBackground({ className }: { readonly className?: string; }): React.JSX.Element; /** * Semi-transparent blur backdrop. Clicking it calls `onRequestClose`. * Pass `className` to apply additional styles. */ declare function LightBoxOverlay({ className }: { readonly className?: string; }): React.JSX.Element; /** * Top bar showing an open-in-new-tab action, the current image counter (`1/3`), * and a close button. Styled for dark backgrounds. */ declare function LightBoxToolbar(): React.JSX.Element; /** * Opens the current image in a new browser tab. Included in the default * `LightBox.Toolbar`. Returns `null` if the current image has no `url`. */ declare function LightBoxOpenInNewTabAction({ ariaLabel, }: { /** * Accessible label for the action, also used as the tooltip message. * @default "Open image in new tab" */ readonly ariaLabel?: string; }): React.JSX.Element | null; /** * The animated hero image with swipe-to-navigate and slide animation. * * Pass `className` to add styles to the image wrapper. Supports * swipe-to-navigate (drag). Keyboard arrow navigation is handled by * `LightBox.Provider`. * * @example * ```tsx * * * ``` */ declare function LightBoxSlides({ className }: { readonly className?: string; }): React.JSX.Element; /** * Previous and next navigation buttons. Returns `null` when the image set * has only one image. * * Use `prevButtonClassName` and `nextButtonClassName` to override the styles * on each button's wrapper for custom layouts. * * @example * ```tsx * * ``` */ declare function LightBoxNavigation({ prevButtonClassName, nextButtonClassName, }: LightBoxNavigationProps): React.JSX.Element | null; /** * Title and caption text for the current image. Only renders when the current * image has a `title` or `caption`. Styled for dark backgrounds. */ declare function LightBoxCaption(): React.JSX.Element | null; /** * Scrollable thumbnail strip. Only renders when there are two or more images. */ declare function LightBoxThumbnails(): React.JSX.Element; /** * Scrollable container for the thumbnail strip. Owns the scroll chrome and * box-sizing, and only renders when there are two or more images. * * Pass one `LightBox.Thumbnail` per image as `children` to own the thumbnail * loop. */ declare function LightBoxThumbnailBar({ children, className, }: LightBoxThumbnailBarProps): React.JSX.Element | null; /** * A selectable thumbnail cell identified by its `index`. Owns the selected * styling, click-to-navigate behaviour, and renders consumer-provided * `children` (typically a `LightBox.ThumbnailImage`). */ declare function LightBoxThumbnail({ index, children, className, }: LightBoxThumbnailProps): React.JSX.Element; /** * A thumbnail using our default styling. */ declare function LightBoxThumbnailImage({ src, alt, className, }: LightBoxThumbnailImageProps): React.JSX.Element; /** * LightBox displays images in a fullscreen overlay. * * **Self-contained (legacy) usage:** * ```tsx * { setIsOpen(false); }} * /> * ``` * * **Full composable (fullscreen) usage:** * ```tsx * * * * ``` * * **Inline gallery usage (no overlay, no close):** * ```tsx * *
* * * * *
*
* ``` */ declare function LightBox(props: LightBoxProps): React.JSX.Element; declare namespace LightBox { var Provider: typeof LightBoxProvider; var Content: typeof LightBoxContent; var Background: typeof LightBoxBackground; var Overlay: typeof LightBoxOverlay; var Toolbar: typeof LightBoxToolbar; var OpenInNewTabAction: typeof LightBoxOpenInNewTabAction; var Slides: typeof LightBoxSlides; var Navigation: typeof LightBoxNavigation; var Caption: typeof LightBoxCaption; var Thumbnails: typeof LightBoxThumbnails; var ThumbnailBar: typeof LightBoxThumbnailBar; var Thumbnail: typeof LightBoxThumbnail; var ThumbnailImage: typeof LightBoxThumbnailImage; } export { LightBox };