For supplementary information that doesn't require the user's immediate
attention, use callout/1 instead.
Usage
Minimal example:
<.alert id="some-alert"></.alert>
With title, icon and level:
<.alert id="some-alert" level={:info} title="Info">
message
<:icon><Heroicon.light_bulb /></:icon>
</.alert>
Dismissable, with an icon in the close button:
<.alert id="some-alert" on_close={JS.push("dismiss")} close_label="Dismiss">
message
<:close><Heroicon.x_mark /></:close>
</.alert>
With an action:
<.alert id="some-alert" title="Session expired">
Your session has expired. Sign in again to continue.
<:action>
<.button phx-click="sign-in">Sign in</.button>
</:action>
</.alert>
The close_label is the button's accessible name, so it is needed whether
or not the :close slot is filled.