--- name: button kind: component lang: ts domain: ui version: "1.0.0" purity: impure signature: "Button(props: ButtonProps & VariantProps): JSX.Element" description: "Botón accesible con 6 variantes (default, outline, secondary, ghost, destructive, link) y 8 tamaños. Base-UI primitivo con CVA." tags: [button, component, ui, interactive, cva] uses_functions: [cn_ts_core] uses_types: [] returns: [] returns_optional: false error_type: "" imports: ["@base-ui/react", "class-variance-authority"] tested: false tests: [] test_file_path: "" file_path: "frontend/functions/ui/button.tsx" props: - name: variant type: "'default' | 'outline' | 'secondary' | 'ghost' | 'destructive' | 'link'" required: false description: "Estilo visual del botón" - name: size type: "'default' | 'xs' | 'sm' | 'lg' | 'icon' | 'icon-xs' | 'icon-sm' | 'icon-lg'" required: false description: "Tamaño del botón" - name: className type: "string" required: false description: "Clases CSS adicionales" emits: [onClick] has_state: false framework: react variant: [default, outline, secondary, ghost, destructive, link] source_repo: "https://gitea-dgg044oo04woo4ggcsws4gk0.organic-machine.com/Bl4cksmith/Frontend_Library" source_license: "MIT" source_file: "frontend/src/components/ui/button.tsx" --- ## Ejemplo ```tsx ``` ## Notas Componente base del sistema. Usa Base-UI Button primitive para accesibilidad completa (keyboard, ARIA). CVA para gestión type-safe de variantes.