import { cn } from "#lib/utils.ts";
import { rail as styles } from "./classes.ts";

export interface Input extends Marko.Input<"button"> {
  /** Toggles the sidebar, provided by the provider's body args. */
  toggle?: () => void;
}

<const/{ toggle, class: className, content, ...rest }=input/>

<button
  ...rest
  type="button"
  data-sidebar="rail"
  data-slot="sidebar-rail"
  aria-label="Toggle Sidebar"
  tabindex="-1"
  title="Toggle Sidebar"
  class=cn(styles.root, className)
  onClick() {
    toggle?.();
  }
/>
