When ComponentProps is left as the default any, props is optional —
unannotated callers can read data.props as any | undefined. When a caller
narrows the shape (e.g. AppSurface.component<MyProps>(Dialog, id)), props
becomes required and data.props is MyProps — no non-null assertion needed
at the spread site.
Surface data for dialog/popover role.
When
ComponentPropsis left as the defaultany,propsis optional — unannotated callers can readdata.propsasany | undefined. When a caller narrows the shape (e.g.AppSurface.component<MyProps>(Dialog, id)),propsbecomes required anddata.propsisMyProps— no non-null assertion needed at the spread site.