mirror of
https://github.com/tabler/tabler.git
synced 2026-08-29 13:21:29 +04:00
Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
27 lines
1.1 KiB
Plaintext
27 lines
1.1 KiB
Plaintext
---
|
|
// Offcanvas container (.offcanvas). Renders inline at the call site (unlike Modal, which drains to the end of body).
|
|
|
|
interface Props {
|
|
/** core/scss/bootstrap/_offcanvas.scss `.offcanvas-{direction}` modifier classes */
|
|
direction?: 'start' | 'end' | 'top' | 'bottom' | undefined
|
|
/** responsive variant offcanvas-{size} ($grid-breakpoints minus xs) — replaces the base .offcanvas class */
|
|
size?: 'sm' | 'md' | 'lg' | 'xl' | 'xxl' | undefined
|
|
show?: boolean
|
|
class?: string
|
|
/** defaults to "-1" when not provided */
|
|
tabindex?: string
|
|
/** defaults to "dialog" when not provided */
|
|
role?: astroHTML.JSX.AriaRole
|
|
/** remaining attributes (id, aria-*, data-bs-*, …) are forwarded to the element */
|
|
[key: string]: unknown
|
|
}
|
|
|
|
const { direction, size, show, class: className, tabindex, role, ...rest } = Astro.props
|
|
---
|
|
|
|
<!-- BEGIN OFFCANVAS -->
|
|
<div class:list={[size ? `offcanvas-${size}` : 'offcanvas', direction && `offcanvas-${direction}`, show && 'show', className]} tabindex={tabindex ?? '-1'} role={role ?? 'dialog'} {...rest}>
|
|
<slot />
|
|
</div>
|
|
<!-- END OFFCANVAS -->
|