UI Premium para Django

Una librer铆a modular de 52 componentes at贸micos y complejos listos para transformar tu aplicaci贸n en una experiencia de usuario moderna y profesional.

19 At贸micos
33 Complejos

Primeros Pasos

1

Opci贸n A: Instalaci贸n v铆a Git (Pip)

HTTPS con Token (B谩sico):

pip install git+https://TOKEN@github.com/hernandezpalo83/COMPONENTES.git#subdirectory=django_components_ui

Autenticaci贸n SSH (Recomendado):

django-components-ui @ git+ssh://git@github.com/hernandezpalo83/COMPONENTES.git#subdirectory=django_components_ui
2

Opci贸n B: Copia Directa

Copia la carpeta django_components_ui directamente en la ra铆z de tu proyecto e incl煤yela en INSTALLED_APPS.

3

Uso

Carga la librer铆a en tus archivos .html con: {% load components_ui %}.

Integraci贸n con IA

Hemos creado una gu铆a de contexto espec铆ficamente dise帽ada para que GPT-4, Claude u otras IAs aprendan a usar estos componentes al instante.

Gu铆a disponible en COMPONENTS_AI_GUIDE.md
Ver Gu铆a de Contexto

Cat谩logo por Categor铆as

AI Context Guide

Markdown Context
# Gu铆a de Referencia: Django Components UI

Este proyecto utiliza una librer铆a personalizada de componentes de UI basada en `inclusion_tags` de Django y Tailwind CSS.

## M茅todos de Instalaci贸n

### Opci贸n A: V铆a Git (Recomendado para producci贸n privada)
Puedes instalar la librer铆a directamente desde tu repositorio remoto. Como la librer铆a est谩 dentro de una subcarpeta, usa el par谩metro `subdirectory`:

**1. V铆a HTTPS (Con Token):**
```bash
pip install git+https://TU_TOKEN@github.com/tu-usuario/tu-repo.git#subdirectory=django_components_ui
```

**2. V铆a SSH (M谩s seguro, no requiere tokens harcodeados):**
```bash
pip install git+ssh://git@github.com/tu-usuario/tu-repo.git#subdirectory=django_components_ui
```

**En `requirements.txt` (usando SSH):**
```text
django-components-ui @ git+ssh://git@github.com/tu-usuario/tu-repo.git#subdirectory=django_components_ui
```

> [!NOTE]
> Si el repositorio es privado, aseg煤rate de configurar un SSH key o usar un Personal Access Token (PAT) en la URL.

### Opci贸n B: Copia Directa
1. **Copia la carpeta** `django_components_ui` a la ra铆z de tu nuevo proyecto.
2. **Reg铆strala** en `INSTALLED_APPS`:
   ```python
   INSTALLED_APPS = [
       ...
       'django_components_ui',
   ]
   ```

## Est谩ndares de Dise帽o
- **Framework**: Tailwind CSS (obligatorio para el estilado).
- **Iconos**: Heroicons v2 (nombres como `HomeIcon`, `ChartBarIcon`, `UsersIcon`).
- **Colores**: Soporta `primary`, `success`, `error`, `warning`, `blue`, `indigo`, etc.

## Listado de Componentes (52 Disponibles)

### 1. Elementos At贸micos (Bloques base)
| Tag | Propiedades Principales | Descripci贸n |
|-----|-------------------------|-------------|
| `{% comp_button %}` | `text`, `appearance` (contained/outlined), `color`, `icon`, `size` | Bot贸n premium con hover y estados. |
| `{% comp_icon %}` | `name` (Heroicon), `size`, `color`, `solid` (bool) | Renderizado de SVG optimizado. |
| `{% comp_badge %}` | `text`, `color`, `type` (solid/outlined/light) | Etiquetas de estado. |
| `{% comp_input_text %}` | `name`, `label`, `placeholder`, `icon`, `required` | Campo de texto con icono integrado. |
| `{% comp_toggle %}` | `name`, `label`, `checked` | Switch tipo iOS/Material. |
| `{% comp_card %}` | `title`, `subtitle`, `value`, `classes` | Contenedor con sombra y bordes suaves. |
| `{% comp_title %}` | `text`, `level` (1-6), `hr` (bool) | Encabezados consistentes. |

### 2. Componentes Complejos (Layout y Datos)
| Tag | Propiedades Principales | Estructura de Datos |
|-----|-------------------------|----------------------|
| `{% comp_agenda %}` | `data_url`, `view_mode` | Visualizaci贸n de calendario (v铆a JS o Mock). |
| `{% comp_tabla %}` | `columns`, `data_url`, `page_size`, `group_by`, `searchable`, `filterable`, `height` | Tabla interactiva basada en **Tabulator** con soporte para agrupaciones, filtros por columna y b煤squeda global. |
| `{% comp_tabla_mantenimiento %}` | `data_url`, `columns`, `create_url`, `group_by`, `searchable`, `filterable` | Versi贸n para gesti贸n (CRUD) con b煤squeda activada por defecto. |
| `{% comp_tabla_informes %}` | `data_url`, `columns`, `export_url`, `group_by`, `height`, `filterable` | Versi贸n para reportes con mayor volumen de datos y altura configurable. |
| `{% comp_tabs %}` | `tabs_data`, `active_tab` | `tabs_data=[{'title': '...', 'content': '...'}]` |
| `{% comp_acordeon %}` | `items`, `id` | `items=[{'title': '...', 'description': '...', 'icon': '...'}]` |
| `{% comp_carousel %}` | `items` | Carrusel visual con gradientes y navegaci贸n. |
| `{% comp_steps %}` | `steps`, `current_step` | `steps=[{'title': 'Paso 1'}, ...]` |
| `{% comp_breadcrumbs %}` | `items` | `items=[{'title': 'Home', 'url': '/'}, ...]` |
| `{% comp_navbar %}` | `title`, `links`, `show_user` | Barra de navegaci贸n superior. |
| `{% comp_sidebar_menu %}`| `menu_items` | Men煤 lateral colapsable con iconos. |
| `{% comp_map %}` | `center_lat`, `center_lng`, `zoom` | Mapa interactivo simulado o real. |
| `{% comp_chart %}` | `id`, `type` (bar/line), `data` | Integraci贸n con Chart.js. |

## Reglas para la IA
1. **Prioridad**: Siempre usa estos componentes en lugar de escribir HTML/Tailwind desde cero para elementos comunes.
2. **Datos Complejos**: Los componentes como `tabs`, `acordeon` y `steps` esperan listas de diccionarios. Si no tienes los datos reales, cr茅alos siguiendo la estructura `[{'title': '...', ...}]`.
3. **Iconos**: Usa siempre los nombres de Heroicons v2 terminados en `Icon` (ej. `Cog6ToothIcon`).
4. **Layout**: Usa `comp_card` para envolver secciones de contenido y `comp_title` para los nombres de las vistas.

## Ejemplo de P谩gina Completa
```django
{% extends "base.html" %}
{% load components_ui %}

{% block content %}
    <div class="p-8 space-y-6">
        {% comp_title text="Gesti贸n de Usuarios" level=1 hr=True %}
        
        <div class="grid grid-cols-1 md:grid-cols-3 gap-6">
            {% comp_card title="Total" value="1,240" color="primary" %}
            {% comp_card title="Activos" value="1,100" color="success" %}
        </div>

        {% comp_tabs tabs_data=my_tabs %}
        
        {% comp_tabla columns=cols data_url="/api/users/" selectable=True group_by="role" searchable=True %}
        
        <div class="flex justify-end gap-3">
            {% comp_button text="Cancelar" appearance="outlined" color="gray" %}
            {% comp_button text="Guardar Cambios" icon="CheckIcon" %}
        </div>
    </div>
{% endblock %}
```