{
  "name": "dropdown-menu",
  "type": "registry:ui",
  "title": "Dropdown Menu",
  "description": "Dropdown Menu provides the shadcn-compatible alias API for short action lists anchored to a trigger.",
  "registryDependencies": [
    "@siteplane/base",
    "@siteplane/menu"
  ],
  "dependencies": [],
  "files": [
    {
      "path": "src/components/ui/dropdown-menu.tsx",
      "type": "registry:ui",
      "content": "// DropdownMenu ist nur noch eine duenne Alias-Schicht auf das Siteplane-UI-`Menu`-Primitive\n// (@base-ui/react/menu). Damit gibt es EINE Implementierung - die fruehere shadcn-\n// Fremd-Variante (eigener Code-Stil, abweichendes Styling) ist entfernt. Die\n// vertrauten DropdownMenu*-Namen bleiben als Kompatibilitaet erhalten, rendern aber\n// identisch das Siteplane-UI-Menu. So basiert alles auf demselben Siteplane-UI-Primitive.\nexport {\n  Menu as DropdownMenu,\n  MenuCheckboxItem as DropdownMenuCheckboxItem,\n  MenuGroup as DropdownMenuGroup,\n  MenuGroupLabel as DropdownMenuLabel,\n  MenuItem as DropdownMenuItem,\n  MenuPopup as DropdownMenuContent,\n  MenuPortal as DropdownMenuPortal,\n  MenuRadioGroup as DropdownMenuRadioGroup,\n  MenuRadioItem as DropdownMenuRadioItem,\n  MenuSeparator as DropdownMenuSeparator,\n  MenuShortcut as DropdownMenuShortcut,\n  MenuSub as DropdownMenuSub,\n  MenuSubPopup as DropdownMenuSubContent,\n  MenuSubTrigger as DropdownMenuSubTrigger,\n  MenuTrigger as DropdownMenuTrigger,\n} from \"@/components/ui/menu\";\n"
    }
  ],
  "categories": [
    "overlays"
  ],
  "docs": "# Dropdown Menu\n\n> Siteplane UI release `0.1.1`.\n\n## Public Purpose\n\nDropdown Menu is the shadcn-compatible alias surface for Siteplane Menu. Use\nthe canonical Menu names in new code; use Dropdown Menu names only while\nmigrating existing shadcn-style code.\n\n## Import\n\n`import { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger } from \"@/components/ui/dropdown-menu\";`\n\n## Public API\n\n- `DropdownMenuContent width` accepts `\"auto\"`, `\"trigger\"`,\n  `\"content\"`, and `\"at-least-trigger\"`. Trigger width matches the anchor;\n  content width is bounded by the viewport.\n- Placement props `side`, `align`, `sideOffset`, and `alignOffset` live\n  on Content. Defaults are bottom, center, and a 4px side offset.\n- `anchor` positions the popup against a different element or virtual anchor.\n- Use `inset` on items, labels, and submenu triggers to align rows without\n  leading icons.\n- Checkbox item `size` accepts `\"sm\"`, `\"default\"`, `\"lg\"`, and\n  `\"xl\"`.\n- Items support icons with native size and opacity treatment and accept\n  `disabled` for unavailable actions.\n- The alias maps to the same item, selection, and submenu contracts as Menu.\n\n## Public Motion\n\n- Popup and submenu placement, scale, fade, and reduced-motion behavior come\n  from Menu.\n- Do not add alias-specific motion.\n- Active items and submenu triggers use a pointer cursor.\n\n## Public Accessibility\n\n- Give the trigger visible text or an accessible label.\n- Keep keyboard navigation, focus, Escape, outside click, and focus restoration\n  native.\n- Disabled items remain unavailable and visibly distinct.\n- Checkbox and radio items retain their selection indicators.\n\n## Public Agent Guidance\n\n- Prefer canonical `Menu*` names in new code.\n- Do not mix Menu and Dropdown Menu naming in one file.\n- Use public width, placement, anchor, inset, size, disabled, and icon behavior\n  instead of local classes.\n\n## Public Links\n\n- [Documentation and preview](https://ui.siteplane.io/docs/components/overlays/dropdown-menu)\n\n- [Registry source](https://ui.siteplane.io/r/dropdown-menu.json)\n",
  "meta": {
    "siteplane:agentContractVersion": 1,
    "siteplane:docs": "https://ui.siteplane.io/docs/components/overlays/dropdown-menu",
    "siteplane:releaseVersion": "0.1.1",
    "siteplane:sourceOwned": true
  },
  "devDependencies": []
}
