refactor: migrate frontend from shadcn/Tailwind to Mantine v9
Reescribe todos los componentes UI para usar Mantine v9 en lugar de shadcn/Tailwind. Elimina cn(), CVA, components.json, theme_provider custom y globals.css con Tailwind. Añade 25+ componentes nuevos (AppShell, AuthForm, DatePickerInput, Dropzone, etc.) y MantineProvider como wrapper estándar del sistema de temas. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -6,25 +6,53 @@ domain: ui
|
||||
version: "1.0.0"
|
||||
purity: impure
|
||||
signature: "Pagination(props: PaginationProps): JSX.Element"
|
||||
description: "Controles de navegacion de paginas con Previous/Next, numeros de pagina, elipsis y estado activo."
|
||||
tags: [pagination, navigation, component, ui]
|
||||
uses_functions: [cn_ts_core]
|
||||
description: "Controles de navegacion de paginas autocontenido. Mantine Pagination."
|
||||
tags: [pagination, navigation, component, ui, mantine]
|
||||
uses_functions: []
|
||||
uses_types: []
|
||||
returns: []
|
||||
returns_optional: false
|
||||
error_type: ""
|
||||
imports: ["lucide-react", "./button"]
|
||||
output: "Componente Pagination que renderiza controles de navegación de páginas con Previous/Next y números"
|
||||
imports: ["@mantine/core"]
|
||||
output: "Componente Pagination autocontenido que renderiza controles de navegacion de paginas"
|
||||
tested: false
|
||||
tests: []
|
||||
test_file_path: ""
|
||||
file_path: "frontend/functions/ui/pagination.tsx"
|
||||
props:
|
||||
- name: total
|
||||
type: "number"
|
||||
required: true
|
||||
description: "Numero total de paginas"
|
||||
- name: value
|
||||
type: "number"
|
||||
required: false
|
||||
description: "Pagina actual (controlado)"
|
||||
- name: defaultValue
|
||||
type: "number"
|
||||
required: false
|
||||
description: "Pagina inicial (no controlado)"
|
||||
- name: onChange
|
||||
type: "(page: number) => void"
|
||||
required: false
|
||||
description: "Callback al cambiar de pagina"
|
||||
- name: siblings
|
||||
type: "number"
|
||||
required: false
|
||||
description: "Paginas visibles a cada lado de la actual"
|
||||
- name: boundaries
|
||||
type: "number"
|
||||
required: false
|
||||
description: "Paginas visibles al inicio y final"
|
||||
- name: withEdges
|
||||
type: "boolean"
|
||||
required: false
|
||||
description: "Mostrar botones first/last page"
|
||||
- name: className
|
||||
type: "string"
|
||||
required: false
|
||||
description: "Clases CSS adicionales"
|
||||
emits: []
|
||||
emits: [onChange]
|
||||
has_state: false
|
||||
framework: react
|
||||
variant: []
|
||||
@@ -33,30 +61,16 @@ variant: []
|
||||
## Ejemplo
|
||||
|
||||
```tsx
|
||||
<Pagination>
|
||||
<PaginationContent>
|
||||
<PaginationItem>
|
||||
<PaginationPrevious href="/page/1" />
|
||||
</PaginationItem>
|
||||
<PaginationItem>
|
||||
<PaginationLink href="/page/1">1</PaginationLink>
|
||||
</PaginationItem>
|
||||
<PaginationItem>
|
||||
<PaginationLink href="/page/2" isActive>2</PaginationLink>
|
||||
</PaginationItem>
|
||||
<PaginationItem>
|
||||
<PaginationLink href="/page/3">3</PaginationLink>
|
||||
</PaginationItem>
|
||||
<PaginationItem>
|
||||
<PaginationEllipsis />
|
||||
</PaginationItem>
|
||||
<PaginationItem>
|
||||
<PaginationNext href="/page/3" />
|
||||
</PaginationItem>
|
||||
</PaginationContent>
|
||||
</Pagination>
|
||||
// Basico
|
||||
<Pagination total={10} defaultValue={1} />
|
||||
|
||||
// Controlado
|
||||
<Pagination total={20} value={page} onChange={setPage} />
|
||||
|
||||
// Con botones first/last
|
||||
<Pagination total={50} withEdges siblings={2} />
|
||||
```
|
||||
|
||||
## Notas
|
||||
|
||||
Exports: Pagination (nav), PaginationContent (ul), PaginationItem (li), PaginationLink (a con isActive/disabled), PaginationPrevious, PaginationNext, PaginationEllipsis. PaginationLink reutiliza buttonVariants para consistencia visual. Componente presentacional — el manejo del estado de pagina queda en el consumidor.
|
||||
Usa Mantine Pagination autocontenido. Previous/Next, numeros de pagina y elipsis se generan automaticamente. La API anterior con sub-componentes (PaginationContent, PaginationItem, PaginationLink, etc.) fue reemplazada por un unico componente con props declarativas. Export: Pagination y PaginationProps.
|
||||
|
||||
Reference in New Issue
Block a user