Hi guys! spent the past few days refactoring the vector path code and mathematics (not my strong point! it's been an absolute bugger). There were some edge cases where the inner path diameter would clip through the outer path diameter.
The path generation is now using Arcs instead of Beziers (which used kappa constant/magic number for a circle) - should be slightly quicker to compute. The inner diameter now handles cases where the corner radii would intersect using a bit of Pythag to offset and calculate a new inner arc.
For example in this video (outer diameter path in red and inner diameter path in green) with the rounded rectangle having a top width of 80px, left 5px, bottom 10px and right 10px with a topLeft corner radius at 50px:50px, topRight 180px:180px, bottomLeft 180px:180px and bottomRight 50px:10px.
When the height of the rounded rectangle is too small the bottomLeft corner inner radius would clip through the outer radius, now if you notice it is offset along the x axis and the inner arc is recalculated correctly.
https://www.youtube.com/shorts/MpFO011vSVE
This is the previous implementation so you can understand the edge-case a bit better:
https://www.youtube.com/shorts/14Gu7k8iQYo
P.s
Oh dear

looks like Firefox is using a variant of my previous implemtation
