When you shift + tab backwards into a Radio Group, the last Radio button in the Group is selected 0.
But useFocusTrap() always calculates finalTabbable as the first Radio button in the Group 1.
This means it fails to preventDefault() or manually set the focus to the last element in tabbable, and the user is able to escape the focus trap.
Here is a minimal reproduction: https://codesandbox.io/s/nervous-surf-8xdhy7?file=/src/App.tsx
nervous-surf-8xdhy7 by Devon-Dickson using @emotion/react, @mantine/carousel, @mantine/core, @mantine/dates, @mantine/dropzone, @mantine/form, @mantine/hooks, @mantine/modals, @mantine/notifications