Images
Thin wrappers around next/image, imported from @/components/ui/images. Both render nothing when src is empty, so callers don’t need their own null checks. See also Media & Images.
ImageContainer
Section titled “ImageContainer”A rounded box with an optional fixed aspect ratio, holding a fill + object-cover image. Other next/image props pass through. With aspectRatio="auto" the wrapper has no intrinsic height, so give it one via className.
Source: src/components/ui/images/ImageContainer.tsx
ZoomableImage
Section titled “ZoomableImage”A fill image inside a button. Clicking opens a dialog with the full image. The parent must be positioned and sized. The zoomed image uses its own size hints and ignores the thumbnail props.