Menu Checkbox Demo

PreviousNext

Demo showing a menu checkbox.

Docs
animate-uiui

Preview

Loading preview…
registry/demo/components/base/menu-checkbox/index.tsx
import * as React from 'react';

import { Button } from '@/components/ui/button';
import {
  Menu,
  MenuTrigger,
  MenuPanel,
  MenuGroup,
  MenuGroupLabel,
  MenuCheckboxItem,
  MenuSeparator,
} from '@/components/animate-ui/components/base/menu';

interface BaseMenuCheckboxDemoProps {
  side?: 'top' | 'bottom' | 'left' | 'right' | 'inline-start' | 'inline-end';
  sideOffset?: number;
  align?: 'start' | 'center' | 'end';
  alignOffset?: number;
}

export function BaseMenuCheckboxDemo({
  side,
  sideOffset,
  align,
  alignOffset,
}: BaseMenuCheckboxDemoProps) {
  const [showStatusBar, setShowStatusBar] = React.useState<boolean>(true);
  const [showActivityBar, setShowActivityBar] = React.useState<boolean>(false);
  const [showPanel, setShowPanel] = React.useState<boolean>(false);

  return (
    <Menu>
      <MenuTrigger render={<Button variant="outline">Open</Button>} />
      <MenuPanel
        className="w-56"
        align={align}
        alignOffset={alignOffset}
        side={side}
        sideOffset={sideOffset}
      >
        <MenuGroup>
          <MenuGroupLabel>Appearance</MenuGroupLabel>
          <MenuSeparator />
          <MenuCheckboxItem
            checked={showStatusBar}
            onCheckedChange={setShowStatusBar}
          >
            Status Bar
          </MenuCheckboxItem>
          <MenuCheckboxItem
            checked={showActivityBar}
            onCheckedChange={setShowActivityBar}
          >
            Activity Bar
          </MenuCheckboxItem>
          <MenuCheckboxItem checked={showPanel} onCheckedChange={setShowPanel}>
            Panel
          </MenuCheckboxItem>
        </MenuGroup>
      </MenuPanel>
    </Menu>
  );
}

Installation

npx shadcn@latest add @animate-ui/demo-components-base-menu-checkbox

Usage

import { DemoComponentsBaseMenuCheckbox } from "@/components/ui/demo-components-base-menu-checkbox"
<DemoComponentsBaseMenuCheckbox />