{
  "id": "dropdown-menu",
  "name": "DropdownMenu",
  "level": "molecule",
  "status": "stable",
  "purpose": "A menu of actions opened from a button.",
  "description": "Keyboard-navigable action menu. Composes `@radix-ui/react-dropdown-menu` so the ARIA contract (`role=\"menu\"`, roving focus, type-ahead, escape-to-close, focus return, portal isolation) is right by construction. Supports plain Items, CheckboxItems, RadioGroups, nested SubMenus, Labels, Separators and a trailing Shortcut hint.",
  "role": "action",
  "import": "@rrios-forge/ui/molecules/dropdown-menu",
  "exports": [
    "DropdownMenu",
    "DropdownMenuCheckboxItem",
    "DropdownMenuContent",
    "DropdownMenuGroup",
    "DropdownMenuItem",
    "DropdownMenuLabel",
    "DropdownMenuRadioGroup",
    "DropdownMenuRadioItem",
    "DropdownMenuSeparator",
    "DropdownMenuShortcut",
    "DropdownMenuSub",
    "DropdownMenuSubContent",
    "DropdownMenuSubTrigger",
    "DropdownMenuTrigger",
    "dropdownMenuContentVariants",
    "dropdownMenuItemVariants",
    "DROPDOWN_MENU_ITEM_INTENTS",
    "DROPDOWN_MENU_ITEM_TONES",
    "DROPDOWN_MENU_SIZES"
  ],
  "source": "packages/ui/src/molecules/dropdown-menu",
  "axes": [
    {
      "axis": "size",
      "part": null,
      "values": [
        "sm",
        "md",
        "lg"
      ],
      "default": "md",
      "meaning": "Ergonomic scale, in three families (control, text, container)."
    },
    {
      "axis": "tone",
      "part": null,
      "values": [
        "neutral"
      ],
      "default": "neutral",
      "meaning": "Which semantic colour family the element speaks in."
    },
    {
      "axis": "intent",
      "part": null,
      "values": [
        "neutral",
        "danger"
      ],
      "default": "neutral",
      "meaning": "What an action does."
    }
  ],
  "needs": [
    {
      "need": "Tooltip / popover / contextual menu",
      "answer": "`Tooltip` / `Popover` / `DropdownMenu`"
    }
  ],
  "patterns": [],
  "a11yExceptions": [],
  "decisions": [
    {
      "id": "ADR-003",
      "title": "Storybook editorial convention and pattern↔component bidirectionality"
    },
    {
      "id": "ADR-005",
      "title": "Visual operational rules: surfaces, interaction, motion"
    },
    {
      "id": "ADR-006",
      "title": "Geometry and typography signature"
    },
    {
      "id": "ADR-007",
      "title": "Material highlight on raised surfaces"
    },
    {
      "id": "ADR-015",
      "title": "Drawer molecule on top of Radix Dialog"
    },
    {
      "id": "ADR-018",
      "title": "Motion language as a Pattern Layer contract"
    },
    {
      "id": "ADR-024",
      "title": "`LocaleSelector` is a new molecule, not an extension of `Combobox`"
    },
    {
      "id": "ADR-027",
      "title": "Vibrant is the system's material, not one of its members"
    },
    {
      "id": "ADR-030",
      "title": "Axis vocabulary: one name, one meaning"
    },
    {
      "id": "ADR-033",
      "title": "The material ships once, and the night is tokens"
    }
  ],
  "stories": [
    {
      "name": "Playground",
      "id": "components-molecules-dropdownmenu--playground",
      "interaction": false,
      "snapshots": [
        "dark",
        "light"
      ],
      "skipsSnapshot": false,
      "docs": "/?path=/story/components-molecules-dropdownmenu--playground",
      "frame": "/iframe.html?id=components-molecules-dropdownmenu--playground&viewMode=story"
    },
    {
      "name": "With checkboxes",
      "id": "components-molecules-dropdownmenu--with-checkboxes",
      "interaction": false,
      "snapshots": [
        "dark",
        "light"
      ],
      "skipsSnapshot": false,
      "docs": "/?path=/story/components-molecules-dropdownmenu--with-checkboxes",
      "frame": "/iframe.html?id=components-molecules-dropdownmenu--with-checkboxes&viewMode=story"
    },
    {
      "name": "With radio group",
      "id": "components-molecules-dropdownmenu--with-radio-group",
      "interaction": false,
      "snapshots": [
        "dark",
        "light"
      ],
      "skipsSnapshot": false,
      "docs": "/?path=/story/components-molecules-dropdownmenu--with-radio-group",
      "frame": "/iframe.html?id=components-molecules-dropdownmenu--with-radio-group&viewMode=story"
    },
    {
      "name": "With submenu",
      "id": "components-molecules-dropdownmenu--with-submenu",
      "interaction": false,
      "snapshots": [
        "dark",
        "light"
      ],
      "skipsSnapshot": false,
      "docs": "/?path=/story/components-molecules-dropdownmenu--with-submenu",
      "frame": "/iframe.html?id=components-molecules-dropdownmenu--with-submenu&viewMode=story"
    },
    {
      "name": "Account menu",
      "id": "components-molecules-dropdownmenu--account-menu",
      "interaction": false,
      "snapshots": [
        "dark",
        "high-contrast",
        "light"
      ],
      "skipsSnapshot": false,
      "docs": "/?path=/story/components-molecules-dropdownmenu--account-menu",
      "frame": "/iframe.html?id=components-molecules-dropdownmenu--account-menu&viewMode=story"
    },
    {
      "name": "Keyboard flow (interaction test)",
      "id": "components-molecules-dropdownmenu--keyboard-flow",
      "interaction": true,
      "snapshots": [],
      "skipsSnapshot": true,
      "docs": "/?path=/story/components-molecules-dropdownmenu--keyboard-flow",
      "frame": "/iframe.html?id=components-molecules-dropdownmenu--keyboard-flow&viewMode=story"
    }
  ],
  "storyFile": "tooling/storybook/stories/components/molecules/dropdown-menu.stories.tsx"
}
