masonry-snap-grid-layout
Version:
A performant, responsive masonry layout library with smooth animations, dynamic columns, and zero dependencies.
30 lines (27 loc) • 1.23 kB
TypeScript
import * as react_jsx_runtime from 'react/jsx-runtime';
import React from 'react';
import { a as MasonrySnapGridLayoutOptions, b as MasonrySnapGridRef } from './MasonrySnapGridLayout-CGay5M_v.js';
/**
* Props for the MasonrySnapGrid React wrapper.
* Generic <T> allows layout to work with any item type.
*/
interface MasonrySnapGridProps<T> extends Omit<MasonrySnapGridLayoutOptions<T>, 'items' | 'renderItem'> {
items: T[];
renderItem: (item: T) => React.ReactNode;
className?: string;
style?: React.CSSProperties;
}
/**
* React wrapper for MasonrySnapGridLayout
* ---------------------------------------
* Handles SSR → CSR transition, forwards ref to parent,
* and manages async layout initialization after image load.
*/
declare const MasonrySnapGridInner: <T>({ items, renderItem, className, style, ...options }: MasonrySnapGridProps<T>, ref: React.ForwardedRef<MasonrySnapGridRef>) => react_jsx_runtime.JSX.Element;
/**
* ForwardRef wrapper so parent components can call layout methods.
*/
declare const MasonrySnapGrid: <T>(props: MasonrySnapGridProps<T> & {
ref?: React.ForwardedRef<MasonrySnapGridRef>;
}) => ReturnType<typeof MasonrySnapGridInner>;
export { MasonrySnapGrid as default };