import { type JsxCustomElementAttributes, type JsxElementProps, type JsxRenderable } from '@ecopages/jsx'; import type { RuiSidebar as RuiSidebarElement, RuiSidebarProps } from './sidebar.script'; import './sidebar.script'; import type { RuiSidebarTrigger as RuiSidebarTriggerElement, RuiSidebarTriggerProps } from './sidebar-trigger.script'; import './sidebar-trigger.script'; export type RuiSidebarProviderProps = JsxElementProps & { /** * Layout context. `default` is the standard shell; `full` removes chrome; * `docs` stacks a full-width `siteHeader` above the sidebar + inset row. */ layout?: 'default' | 'full' | 'docs'; /** Full-width chrome rendered above the sidebar row when `layout="docs"`. */ siteHeader?: JsxRenderable; /** Slot for the sidebar element. */ sidebar?: JsxRenderable; /** Slot for the inset (main content). */ children?: JsxRenderable; }; /** * `
` shell that wraps the sidebar and the main inset. Reflects * `data-layout` so stylesheets can adapt. Plays the role of * `SidebarProvider` from common sidebar kits, but without a runtime context — * coordination between trigger, sidebar, and inset is achieved through * `id`/`aria-controls` and shared `data-*` attributes. * * @cssclass rui-sidebar-provider - Shell wrapping sidebar + inset. * @cssclass rui-sidebar-provider__site-header - Full-width chrome (`layout="docs"`). * @cssclass rui-sidebar-provider__body - Sidebar + inset row. */ export declare function RuiSidebarProvider({ layout, siteHeader, sidebar, children, class: className, ...props }: RuiSidebarProviderProps): JsxRenderable; export type RuiSidebarHeaderProps = JsxElementProps; /** * Top section of the sidebar pane (logo, search, primary trigger). * * @cssclass rui-sidebar__header - Top, pinned section. */ export declare function RuiSidebarHeader({ children, class: className, ...props }: RuiSidebarHeaderProps): JsxRenderable; export type RuiSidebarContentProps = JsxElementProps; /** * Scrollable middle section. Multiple allowed; each becomes its own region. * * @cssclass rui-sidebar__content - Scrollable middle section. */ export declare function RuiSidebarContent({ children, class: className, ...props }: RuiSidebarContentProps): JsxRenderable; export type RuiSidebarFooterProps = JsxElementProps; /** * Pinned bottom section (user, theme toggle, settings). * * @cssclass rui-sidebar__footer - Pinned bottom section. */ export declare function RuiSidebarFooter({ children, class: className, ...props }: RuiSidebarFooterProps): JsxRenderable; export type RuiSidebarSeparatorProps = JsxElementProps; /** * Horizontal rule between sidebar sections. * * @cssclass rui-sidebar__separator - Horizontal rule (`role="separator"`). */ export declare function RuiSidebarSeparator({ class: className, ...props }: RuiSidebarSeparatorProps): JsxRenderable; export type RuiSidebarGroupProps = JsxElementProps; /** * Landmark group of related sidebar items. * * @cssclass rui-sidebar__group - Landmark group region. */ export declare function RuiSidebarGroup({ children, class: className, ...props }: RuiSidebarGroupProps): JsxRenderable; export type RuiSidebarGroupLabelProps = JsxElementProps; /** * Heading for a sidebar group. * * @cssclass rui-sidebar__group-label - Group heading (`

`). */ export declare function RuiSidebarGroupLabel({ children, class: className, ...props }: RuiSidebarGroupLabelProps): JsxRenderable; export type RuiSidebarGroupActionProps = JsxElementProps; /** * Top-right action button inside a group header. * * @cssclass rui-sidebar__group-action - Group header action button. */ export declare function RuiSidebarGroupAction({ children, class: className, ...props }: RuiSidebarGroupActionProps): JsxRenderable; export type RuiSidebarGroupHeaderProps = JsxElementProps & { label: JsxRenderable; action?: JsxRenderable; }; /** * Convenience: a label + optional action in one row. * * @cssclass rui-sidebar__group-header - Group label + action row. */ export declare function RuiSidebarGroupHeader({ label, action, class: className, ...props }: RuiSidebarGroupHeaderProps): JsxRenderable; export type RuiSidebarMenuProps = JsxElementProps; /** * `