{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "drawer-action", "type": "registry:ui", "title": "DrawerAction", "description": "A single action in a BottomDrawer footer: plain, form-submit, or tap-again-confirm.", "categories": [ "actions", "overlays" ], "registryDependencies": [ "https://whiskeyjack.net/r/announce.json", "https://whiskeyjack.net/r/utils.json" ], "files": [ { "path": "components/ui/drawer-action.tsx", "type": "registry:ui", "target": "components/ui/drawer-action.tsx", "content": "import * as React from \"react\";\nimport { cn } from \"@/lib/utils\";\nimport { announce } from \"@/lib/announce\";\n\nexport type DrawerActionTone = \"danger\" | \"warning\";\n\nexport interface DrawerActionProps {\n /** Icon shown above the label (mobile) or beside it (desktop). Phosphor or any node; sized to 20px. */\n icon: React.ReactNode;\n /** Text label rendered below the icon. */\n label: string;\n /** Click handler for plain actions (e.g. Cancel). */\n onClick?: () => void;\n /**\n * Button type. Use `\"submit\"` together with `form` so a Save action can\n * submit a `