We already support aligning and distributing labels taking into account their cap insets, but sizing currently requires the entire available space. We should add equivalent APIs for sizing:
func capInsetSizeThatFits(_ size: CGSize, constraints: SizingConstraints = .none) -> CGSize
func capInsetSizeToFit(_ size: CGSize, constraints: SizingConstraints = .none)