@conatel-sa/react-ui 0.2.5 → 0.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2) hide show
  1. package/README.md +153 -47
  2. package/package.json +3 -2
package/README.md CHANGED
@@ -1,88 +1,180 @@
1
1
  # @conatel-sa/react-ui
2
2
 
3
- Biblioteca de componentes React para productos **Conatel** y **Vivion**. Más de 20 componentes UI listos para usar, con soporte de theming por marca mediante CSS custom properties. Export opcional de iconos (`./icons`).
3
+ Biblioteca de **componentes de interfaz** para aplicaciones web hechas con **React** para productos **Conatel** y **Vivion**. Incluye botones, formularios, tablas, modales, tarjetas y más, con **dos estilos visuales** (temas) que se puede cambiar con una sola propiedad.
4
+
5
+ **¿Para qué sirve?** Para **reutilizar** pantallas y patrones de interfaz ya definidos: misma apariencia, menos trabajo de diseño pixel a pixel y menos CSS “a mano”. Sirve tanto para prototipos como para productos que quieran verse **uniformes y cuidados** en tipografía, colores y espaciados.
6
+
7
+ ---
8
+
9
+ ## Qué necesitás antes de empezar
10
+
11
+ | Requisito | Notas |
12
+ |-----------|--------|
13
+ | **Node.js** (versión LTS recomendada) | Para ejecutar `npm` y crear el proyecto. [nodejs.org](https://nodejs.org/) |
14
+ | **Un proyecto React** | Por ejemplo creado con [Vite](https://vitejs.dev/) (`npm create vite@latest` → plantilla React + TypeScript). |
15
+ | **Conexión a internet** (instalación típica) | Para descargar el paquete desde el registro npm (ver más abajo si usás archivo `.tgz`). |
16
+
17
+ Podés partir de los ejemplos de este documento y adaptarlos a tu pantalla.
18
+
19
+ ---
4
20
 
5
21
  ## Instalación
6
22
 
23
+ En la carpeta de tu proyecto React:
24
+
7
25
  ```bash
8
26
  npm install @conatel-sa/react-ui
9
27
  ```
10
28
 
11
- ## Uso rápido
29
+ ### Instalar desde un archivo `.tgz` (sin usar el registro en el momento)
30
+
31
+ Útil si trabajás **sin red** en el entorno del proyecto, o si querés **fijar** exactamente un paquete que ya descargaste.
32
+
33
+ **1. Obtener el archivo `.tgz`**
34
+
35
+ - **Con npm (recomendado):** en una carpeta vacía o temporal, con internet:
36
+
37
+ ```bash
38
+ npm pack @conatel-sa/react-ui
39
+ ```
40
+
41
+ Eso genera un archivo `conatel-sa-react-ui-<versión>.tgz` en esa carpeta (el nombre incluye la versión publicada). Ese es el paquete listo para instalar offline.
42
+
43
+ - **Desde la web:** en la página del paquete en npm podés revisar la versión actual y, si hace falta, usar el mismo comando `npm pack` arriba para bajar el tarball correspondiente.
44
+
45
+ **2. Instalarlo en tu proyecto React**
46
+
47
+ Ajustá la ruta al `.tgz` que tengas (por ejemplo lo copiaste al repo en `./releases/`):
48
+
49
+ ```bash
50
+ npm install ./ruta/al/archivo/conatel-sa-react-ui-0.2.6.tgz
51
+ ```
52
+
53
+ O en `package.json`:
54
+
55
+ ```json
56
+ "dependencies": {
57
+ "@conatel-sa/react-ui": "file:./releases/conatel-sa-react-ui-0.2.6.tgz"
58
+ }
59
+ ```
60
+
61
+ Luego: `npm install`.
62
+
63
+ > **Nota:** si no podés ejecutar `npm pack` ni acceder al registro npm, podés **pedir el `.tgz`** a quien distribuya el material del desafío o al equipo, e instalarlo con los mismos pasos del punto 2.
64
+
65
+ ---
12
66
 
13
- Importá el CSS de tokens **una sola vez** en el entry point de tu aplicación:
67
+ ## Uso en 3 pasos
68
+
69
+ ### 1. Importar los estilos (obligatorio)
70
+
71
+ Sin este archivo, los componentes **no se verán** con los colores y tipografías correctos. Ponelo **una vez** en el archivo de entrada de tu app (por ejemplo `main.tsx` o `main.jsx`):
14
72
 
15
73
  ```tsx
16
- // main.tsx
17
74
  import '@conatel-sa/react-ui/dist/index.css';
18
75
  ```
19
76
 
20
- Luego usá los componentes envueltos en un `ThemeProvider`:
77
+ ### 2. Envolver la app con el tema
78
+
79
+ Los componentes deben estar **dentro** de `ThemeProvider`. Elegís el tema visual con la prop `theme`:
21
80
 
22
81
  ```tsx
23
- import { ThemeProvider, Button, Card, Badge } from '@conatel-sa/react-ui';
82
+ import { ThemeProvider } from '@conatel-sa/react-ui';
24
83
 
25
84
  function App() {
26
85
  return (
27
- <ThemeProvider theme="conatel"> {/* o "vivion" */}
86
+ <ThemeProvider theme="conatel" as="div">
87
+ {/* Aquí van tus pantallas y componentes */}
88
+ </ThemeProvider>
89
+ );
90
+ }
91
+ ```
92
+
93
+ - `theme="conatel"` — estilo con acento rojo corporativo.
94
+ - `theme="vivion"` — estilo con acento azul.
95
+
96
+ ### 3. Usar componentes
97
+
98
+ ```tsx
99
+ import { ThemeProvider, Button, Card, CardBody, Badge } from '@conatel-sa/react-ui';
100
+
101
+ function Ejemplo() {
102
+ return (
103
+ <ThemeProvider theme="conatel" as="div">
28
104
  <Card>
29
- <Badge variant="success">Activo</Badge>
30
- <Button variant="primary">Confirmar</Button>
105
+ <CardBody>
106
+ <Badge variant="success">Listo</Badge>
107
+ <Button variant="primary">Continuar</Button>
108
+ </CardBody>
31
109
  </Card>
32
110
  </ThemeProvider>
33
111
  );
34
112
  }
35
113
  ```
36
114
 
37
- ## Theming
115
+ ---
38
116
 
39
- La librería soporta dos temas de marca que se aplican a todos los componentes:
117
+ ## Temas (resumen)
40
118
 
41
- | Tema | Color primario | Uso |
42
- |---|---|---|
43
- | `conatel` | `#CC032E` | Productos Conatel |
44
- | `vivion` | `#0098D4` | Productos Vivion |
119
+ | Valor en código | Color principal aproximado | Uso típico |
120
+ |-----------------|----------------------------|------------|
121
+ | `conatel` | Rojo `#CC032E` | Identidad corporativa Conatel |
122
+ | `vivion` | Azul `#0098D4` | Identidad Vivion |
45
123
 
46
124
  ```tsx
47
- <ThemeProvider theme="vivion">
48
- <Button variant="primary">Vivion</Button>
125
+ <ThemeProvider theme="vivion" as="div">
126
+ <Button variant="primary">Acción principal</Button>
49
127
  </ThemeProvider>
50
128
  ```
51
129
 
52
- ## Componentes disponibles
130
+ ---
131
+
132
+ ## Si usás un asistente de código (opcional)
53
133
 
54
- ### Tipografía
55
- `Heading` - `Text`
134
+ Texto de referencia que podés pegar para alinear criterios (no es obligatorio):
56
135
 
57
- ### Formularios
58
- `Input` - `Textarea` - `Select` - `Checkbox` - `Toggle` - `FormField`
136
+ > Estoy usando React y la librería `@conatel-sa/react-ui`. Importá `ThemeProvider` y los componentes que necesites desde `@conatel-sa/react-ui`. Preferí los componentes de la librería para botones e inputs en lugar de CSS global suelto. Importá `@conatel-sa/react-ui/dist/index.css` en el entry point.
59
137
 
60
- ### Feedback
61
- `Badge` - `Alert` - `Spinner` - `Progress`
138
+ ---
62
139
 
63
- ### Contenedores
64
- `Card` - `CardHeader` - `CardBody` - `CardFooter` - `Modal`
140
+ ## Qué incluye el paquete principal
65
141
 
66
- ### Navegación
67
- `Navbar` - `NavItem` - `Tabs` - `TabList` - `Tab` - `TabPanel`
142
+ Import: `import { … } from '@conatel-sa/react-ui'`
68
143
 
69
- ### Datos
70
- `Table` - `TableHead` - `TableBody` - `TableRow` - `TableCell` - `TableHeaderCell`
144
+ | Área | Componentes (ejemplos) |
145
+ |------|-------------------------|
146
+ | Tipografía | `Heading`, `Text` |
147
+ | Formularios | `Input`, `Textarea`, `Select`, `Checkbox`, `Toggle`, `FormField` |
148
+ | Feedback | `Badge`, `Alert`, `Spinner`, `Progress` |
149
+ | Contenedores | `Card`, `CardHeader`, `CardBody`, `CardFooter`, `Modal` |
150
+ | Navegación | `Navbar`, `NavItem`, `Tabs`, `TabList`, `Tab`, `TabPanel` |
151
+ | Datos | `Table`, `TableHead`, `TableBody`, `TableRow`, `TableCell`, `TableHeaderCell` |
152
+ | Otros | `Avatar`, `Divider`, `EmptyState`, `Button`, `Sidebar`, `SidebarItem`, `Toast`, `ScoreSelector` |
71
153
 
72
- ### Miscelánea
73
- `Avatar` - `Divider` - `EmptyState` - `Button` - `Sidebar` - `SidebarItem` - `Toast` - `ScoreSelector`
154
+ ---
74
155
 
75
- ### Iconos (subpath `@conatel-sa/react-ui/icons`)
156
+ ## Módulos opcionales (subrutas)
76
157
 
77
- Material Symbols y envoltorio opcional para `lucide-react`:
158
+ Además del paquete principal, podés importar **solo** lo que necesites desde rutas extra. Cada una tiene su documentación en tipos (`.d.ts`) dentro de `node_modules/@conatel-sa/react-ui/dist/`.
159
+
160
+ | Import | Para qué sirve |
161
+ |--------|----------------|
162
+ | `@conatel-sa/react-ui/icons` | Iconos Material Symbols y `IconProvider`. Suele hacer falta también: `import '@conatel-sa/react-ui/dist/material-symbols.css'` |
163
+ | `@conatel-sa/react-ui/forms` | Campos avanzados: `EmailInput`, `PasswordInput`, `MultiSelectDropdown`, `SingleSelectDropdown` y utilidades de validación de contraseña |
164
+ | `@conatel-sa/react-ui/cards` | Tarjetas y paneles: `ServiceCard`, `FeatureCard`, `ChangelogPanel`, `ArtifactReportCard` |
165
+ | `@conatel-sa/react-ui/dialogs` | Diálogos (p. ej. `ChangelogDialog`; requiere `react-dom`) |
166
+ | `@conatel-sa/react-ui/metrics` | `StatInline`, `MiniMeter` |
167
+ | `@conatel-sa/react-ui/status` | `StatusSummaryPopover` |
168
+
169
+ ### Ejemplo: iconos
78
170
 
79
171
  ```tsx
80
172
  import { Icon, IconProvider } from '@conatel-sa/react-ui/icons';
81
173
  import '@conatel-sa/react-ui/dist/material-symbols.css';
82
174
 
83
- function WithIcons() {
175
+ function ConIconos() {
84
176
  return (
85
- <ThemeProvider theme="conatel">
177
+ <ThemeProvider theme="conatel" as="div">
86
178
  <IconProvider injectStylesheet defaultSize="md">
87
179
  <Icon name="search" size="md" />
88
180
  </IconProvider>
@@ -91,20 +183,34 @@ function WithIcons() {
91
183
  }
92
184
  ```
93
185
 
94
- `lucide-react` es opcional (solo si usás `LucideIcon`).
186
+ `lucide-react` es **opcional** (solo si usás `LucideIcon`).
95
187
 
96
- ## Subpaquetes opcionales
188
+ ### Ejemplo: formularios extendidos
97
189
 
98
- | Subpath | Contenido resumido |
99
- |---------|---------------------|
100
- | `@conatel-sa/react-ui/forms` | `PasswordInput`, `MultiSelectDropdown` |
101
- | `@conatel-sa/react-ui/cards` | `ServiceCard`, `FeatureCard`, `ChangelogPanel`, `ArtifactReportCard` |
102
- | `@conatel-sa/react-ui/dialogs` | `ChangelogDialog` (requiere `react-dom`) |
103
- | `@conatel-sa/react-ui/metrics` | `StatInline`, `MiniMeter` |
104
- | `@conatel-sa/react-ui/status` | `StatusSummaryPopover` |
190
+ ```tsx
191
+ import { EmailInput, PasswordInput } from '@conatel-sa/react-ui/forms';
192
+ import '@conatel-sa/react-ui/dist/index.css';
193
+ import '@conatel-sa/react-ui/dist/material-symbols.css';
194
+ ```
105
195
 
106
- En las demos HTML, `library-gallery-new.html` carga `dist/forms.umd.js`, `cards.umd.js`, `dialogs.umd.js`, `metrics.umd.js`, `status.umd.js` (además de `icons.umd.js`) y fusiona los globales en `window.ReactLibrary`. Ver `docs/SUBPACKAGES.md` en el workspace react-ui.
196
+ ---
197
+
198
+ ## Si algo no se ve bien (checklist rápido)
199
+
200
+ 1. ¿Importaste `import '@conatel-sa/react-ui/dist/index.css'` en el entry (p. ej. `main.tsx`)?
201
+ 2. ¿Tu contenido está **dentro** de `<ThemeProvider>`?
202
+ 3. Si usás iconos o `./forms` con símbolos, ¿importaste también `material-symbols.css`?
203
+ 4. ¿Tu proyecto usa **React 18**? (peer dependency del paquete.)
204
+
205
+ ---
107
206
 
108
207
  ## TypeScript
109
208
 
110
- La librería incluye tipos. No se requiere `@types` adicional para este paquete.
209
+ La librería publica tipos (`.d.ts`). No necesitás instalar `@types` aparte para este paquete.
210
+
211
+ ---
212
+
213
+ ## Más ayuda
214
+
215
+ - Página del paquete en npm: [npmjs.com/package/@conatel-sa/react-ui](https://www.npmjs.com/package/@conatel-sa/react-ui)
216
+ - Si tu equipo mantiene un **repositorio workspace** con este código, ahí suelen estar `docs/` (subpaquetes, API de iconos y forms) y galerías HTML de demostración.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@conatel-sa/react-ui",
3
- "version": "0.2.5",
3
+ "version": "0.2.6",
4
4
  "description": "Biblioteca de componentes React para productos Conatel y Vivion. Incluye más de 20 componentes UI con theming. Subpaquetes opcionales: ./icons, ./forms, ./cards, ./dialogs, ./metrics, ./status.",
5
5
  "main": "dist/index.umd.js",
6
6
  "module": "dist/index.mjs",
@@ -46,7 +46,8 @@
46
46
  }
47
47
  },
48
48
  "files": [
49
- "dist"
49
+ "dist",
50
+ "README.md"
50
51
  ],
51
52
  "scripts": {
52
53
  "dev": "vite",