UNPKG

masonry-snap-grid-layout

Version:

A performant, responsive masonry layout library with smooth animations, dynamic columns, and zero dependencies.

40 lines (37 loc) 1.61 kB
import * as react_jsx_runtime from 'react/jsx-runtime'; import React from 'react'; import { a as MasonrySnapGridLayoutOptions, b as MasonrySnapGridRef } from './MasonrySnapGridLayout-CPmdhc_q.js'; /** * Props for the MasonrySnapGrid React component. * * @template T - The type of items in the masonry layout. */ interface MasonrySnapGridProps<T> extends Omit<MasonrySnapGridLayoutOptions<T>, 'items' | 'renderItem'> { /** Array of data items to be rendered into the masonry grid. */ items: T[]; /** Function that renders a single data item as a React node. */ renderItem: (item: T) => React.ReactNode; /** Optional class name for the container. */ className?: string; /** Optional inline styles for the container. */ style?: React.CSSProperties; } /** * Internal component that bridges MasonrySnapGridLayout with React. * * - Manages lifecycle of the underlying MasonrySnapGridLayout instance. * - Uses ReactDOM.createRoot to render React nodes into non-React DOM elements. * - Handles cleanup to avoid memory leaks. */ declare const MasonrySnapGridInner: <T>({ items, renderItem, className, style, ...options }: MasonrySnapGridProps<T>, ref: React.ForwardedRef<MasonrySnapGridRef>) => react_jsx_runtime.JSX.Element; /** * MasonrySnapGrid * * React wrapper component for MasonrySnapGridLayout. * * @template T - The type of items in the masonry layout. */ declare const MasonrySnapGrid: <T>(props: MasonrySnapGridProps<T> & { ref?: React.ForwardedRef<MasonrySnapGridRef>; }) => ReturnType<typeof MasonrySnapGridInner>; export { MasonrySnapGrid as default };