The toast list is a small store of our own (hooks/use-toast.ts), read
through useSyncExternalStore, with tests: newest first, five at most, gone
after five seconds or the toast's own duration, and a handle to take it down
or change it. toast(), useToast() and the variants work as before. The
toaster draws the list itself, so components/ui/toast.tsx goes.
The combobox is rewritten too, with the same props. Its list now takes the
button's width from Radix's trigger-width variable instead of measuring it.