import * as React from "react" import { useContainerSize } from "../hooks/use-container-size" interface MeasuredContainerProps { as: T name: string children?: React.ReactNode } export const MeasuredContainer = React.forwardRef( ( { as: Component, name, children, style = {}, ...props }: MeasuredContainerProps & React.ComponentProps, ref: React.Ref, ) => { const innerRef = React.useRef(null) const rect = useContainerSize(innerRef.current) React.useImperativeHandle(ref, () => innerRef.current as HTMLElement) const customStyle = { [`--${name}-width`]: `${rect.width}px`, [`--${name}-height`]: `${rect.height}px`, } return ( {children} ) }, ) MeasuredContainer.displayName = "MeasuredContainer"