HEEx
<div class="relative h-[36rem] w-full transform-gpu overflow-hidden [--top-bar:0px] rounded-lg ring-1 ring-secondary ring-inset">
<ConnieUI.Slideouts.docked_slideout id="catalog-docked">
<:main>
<ConnieUI.Layouts.block hspace vspace>
<ConnieUI.Typography.heading level="h1">Director Agreement</ConnieUI.Typography.heading>
<ConnieUI.Typography.muted>The document's page sits here, beside the panel.</ConnieUI.Typography.muted>
</ConnieUI.Layouts.block>
</:main>
<:header>
<ConnieUI.Typography.heading level="h2">Details</ConnieUI.Typography.heading>
</:header>
<ConnieUI.Slideouts.contents>
<ConnieUI.Slideouts.section>
<ConnieUI.Typography.muted>Signers, dates and reminders go here.</ConnieUI.Typography.muted>
</ConnieUI.Slideouts.section>
</ConnieUI.Slideouts.contents>
</ConnieUI.Slideouts.docked_slideout>
</div>
Variant matrix
Every combination of one or two attributes, side by side.
Controls
Docs
A panel docked beside the page from `xl` up, and an overlay drawer below it.
Docked, it is part of the page: it starts below the host's top bars, offset by
`--top-bar` like the navigation. As a drawer it covers the page, bars
included, the way a modal does: it is a labelled dialog while open, takes the
focus and keeps it, closes on Escape or a tap on the backdrop, and gives the
focus back to whatever opened it. Widening the window to `xl` puts an open
drawer away, so it docks rather than coming back as a drawer later. In print,
the panel and its controls are left out and the page gets the whole width.
| Attribute | Type | Default | Description |
|---|---|---|---|
| No data found. | |||
| id * | :string |
|
|
| label | :string | "Panel" |
names the drawer and the floating button that opens it, below `xl`
|
| current | :string | nil |
the `value` of the selected `:tab`
|
| collapsed | :boolean | nil |
server-rendered mini state for the docked panel. When set, the host owns persistence: every desktop toggle pushes a `"nav:panel"` event with `%{"collapsed" => boolean}` for the host to store
|
| Slot | Slot attributes | Description |
|---|---|---|
| No data found. | ||
| :tab | value, icon, click, badge, badge_label | the panel's tabs; the content is the label. When given, the floating toggle is replaced on desktop by a collapsed icon strip, mirroring `ConnieUI.Navigation`'s mini mode, and two or more also get a tab bar under the header |
| :action | icon, click, primary, flush | the panel's actions; the content is the label. Each renders as a button at the end of the header, which runs `click`, and as an icon in the collapsed strip, which only expands the panel so the action is taken with it in view |
| :main * | ||
| :header | the panel's title, rendered in a `header/1` | |
| :header_actions | header-only controls placed before the `:action` buttons (back links, dropdowns). There is no Cancel when there are neither: the panel is put away by its collapse control, Escape or the floating button | |
| inner_block * | ||