For "minor" breaking changes, I would like to use a similar approach to noRedInk/noredink-ui:
Instead of overwriting Dialog and ExpansionPanel, I would like to add new types DialogV2 and ExpansionPanelV2 containing the fix. In the documentation we can now point towards the new types. Once Version 3.0 is ready, we can rename DialogV2 back to Dialog. This way the users of the package can decide themselves when to update.
So in conclusion the following changes need to be made:
Keep Dialog and ExpansionPanel as is
Add DialogV2 and ExpansionPanelV2 containing the new changes
In the documentation comment of the old types write
{-| DEPRECATED
Use `DialogV2`/`ExpansionPanelV2` instead
-}
At the top of the file, replace Dialog with DialogV2 and ExpansionPanel with ExpansionPanelV2
As discussed in #2 and in #1: