anteriority-ui 1.18.0 → 1.18.1

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.
package/AnteriorityUI.md CHANGED
@@ -3299,7 +3299,7 @@ Empieza con una hoja `Hoja1` de 100 × 20 celdas. Botón «+» de la barra infer
3299
3299
  - **Dependencia:** las fórmulas usan `fast-formula-parser`, un peer **opcional** (`pnpm add fast-formula-parser`) cargado con `import()` solo cuando `xlsxEditable` es `true`; sin él, las celdas que empiezan con `=` se guardan como texto. Recalcular todo en cada edición es lineal en la cantidad de fórmulas: libros con decenas de miles de fórmulas pueden notarse lentos.
3300
3300
  - **Límites:** no se pueden insertar ni eliminar filas o columnas (sí escribir debajo de la última fila, por ejemplo con Autosuma); no se editan estilos de celda; borrados y pegados masivos están limitados a 200.000 celdas.
3301
3301
 
3302
- **Notas (hojas de cálculo):** SheetJS (`xlsx`) es un peer **opcional**, cargado con `import()` dinámico solo cuando se muestra una planilla. La versión de npm (0.18.x) está desactualizada y con vulnerabilidades conocidas; instalar la oficial desde el CDN de SheetJS: `pnpm add https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz`. El archivo se descarga con `fetch` (requiere CORS) y se parsea completo en el hilo principal: con archivos de varios MB puede haber una pausa breve al abrir; solo las filas visibles se pintan. No muestra estilos de celda de Excel (colores, bordes, celdas combinadas), imágenes ni gráficos.
3302
+ **Notas (hojas de cálculo):** SheetJS (`xlsx`) es un peer **opcional** que el consumidor debe instalar en su proyecto: la librería no lo incluye como dependencia. Se carga con `import()` dinámico solo cuando se muestra una planilla. Instalar la versión oficial desde el CDN de SheetJS: `pnpm add https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz`. La versión de npm (0.18.x) está desactualizada y con vulnerabilidades conocidas; la 0.20.3 no se publica en npm, por eso `pnpm add xlsx` falla con `No matching version found for xlsx@^0.20.3`. Con `anteriority-ui` 1.18.0 hay que usar el tarball del CDN; desde la versión que acepta `^0.18.5 || ^0.20.3` también sirve `xlsx@0.18.5`. El archivo se descarga con `fetch` (requiere CORS) y se parsea completo en el hilo principal: con archivos de varios MB puede haber una pausa breve al abrir; solo las filas visibles se pintan. No muestra estilos de celda de Excel (colores, bordes, celdas combinadas), imágenes ni gráficos.
3303
3303
 
3304
3304
  ---
3305
3305
 
@@ -4118,7 +4118,7 @@ Contenedor con scrollbars personalizados (vertical y/u horizontal) que se oculta
4118
4118
 
4119
4119
  **Import:**
4120
4120
  ```jsx
4121
- import ScrollBar from 'screens/components/ScrollBar';
4121
+ import { ScrollBar } from 'anteriority-ui';
4122
4122
  ```
4123
4123
 
4124
4124
  **Uso básico:**
package/README.md CHANGED
@@ -79,13 +79,15 @@ pnpm add react react-dom @mui/material @emotion/react @emotion/styled
79
79
  pnpm add pdfjs-dist
80
80
  ```
81
81
 
82
- 6. (Opcional) Si vas a mostrar planillas (`.xlsx`, `.xls`, `.csv`) con `MediaViewer`, agregá `xlsx`. Instalá la versión oficial desde el CDN de SheetJS: la de npm (0.18.x) está desactualizada y tiene vulnerabilidades conocidas. Para poder **editarlas** con fórmulas (`xlsxEditable`), sumá también `fast-formula-parser`:
82
+ 6. (Opcional) Si vas a mostrar planillas (`.xlsx`, `.xls`, `.csv`) con `MediaViewer`, agregá `xlsx`. La librería **no** lo instala sola: es un peer dependency opcional, así que tenés que agregarlo a tu proyecto. Recomendamos la versión oficial de SheetJS desde su CDN (0.20.3), porque la de npm (0.18.x) está desactualizada y tiene vulnerabilidades conocidas. Para poder **editarlas** con fórmulas (`xlsxEditable`), sumá también `fast-formula-parser`:
83
83
 
84
84
  ```bash
85
85
  pnpm add https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz
86
86
  pnpm add fast-formula-parser # solo si usás xlsxEditable
87
87
  ```
88
88
 
89
+ Si `pnpm add xlsx` falla con `No matching version found for xlsx@^0.20.3`, es porque la 0.20.3 no está en npm: usá el tarball de arriba. Con `anteriority-ui` 1.18.0 hay que usar el tarball del CDN; desde la versión que incluye la corrección del rango (`^0.18.5 || ^0.20.3`) también sirve `pnpm add xlsx@0.18.5`, aunque con las vulnerabilidades mencionadas.
90
+
89
91
  ## Importar componentes
90
92
 
91
93
  Todos los componentes están indexados en el entry point principal — no hace falta conocer el subpath de cada uno:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "anteriority-ui",
3
- "version": "1.18.0",
3
+ "version": "1.18.1",
4
4
  "description": "Librería interna de componentes React (UI) construida sobre MUI, lucide-react y CSS Modules.",
5
5
  "main": "index.js",
6
6
  "bin": {
@@ -47,7 +47,7 @@
47
47
  "pdfjs-dist": "^6.0.0",
48
48
  "react": "^18.0.0 || ^19.0.0",
49
49
  "react-dom": "^18.0.0 || ^19.0.0",
50
- "xlsx": "^0.20.3"
50
+ "xlsx": "^0.18.5 || ^0.20.3"
51
51
  },
52
52
  "publishConfig": {
53
53
  "registry": "https://registry.npmjs.org/"
@@ -40,7 +40,7 @@ Dependencias opcionales según el componente:
40
40
  |---|---|
41
41
  | `SchemaForm` | `@rjsf/core` y `@rjsf/validator-ajv8` |
42
42
  | `MediaViewer` (PDFs) | `pdfjs-dist` |
43
- | `MediaViewer` (planillas `.xlsx`/`.xls`/`.csv`) | `xlsx` desde `https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz` (no la de npm); con `xlsxEditable` y fórmulas, también `fast-formula-parser` |
43
+ | `MediaViewer` (planillas `.xlsx`/`.xls`/`.csv`) | `xlsx` (peer opcional que el consumidor instala; no viene con la librería) desde `https://cdn.sheetjs.com/xlsx-0.20.3/xlsx-0.20.3.tgz` (preferido sobre la de npm, que es 0.18.x y tiene vulnerabilidades); con `xlsxEditable` y fórmulas, también `fast-formula-parser` |
44
44
  | `PasswordResetPanel`, `UserEditPopover` | configurar el cliente HTTP (ver §5) |
45
45
 
46
46
  Todo lo demás (Chart, Recharts, Nivo, lucide, react-icons, markdown, mermaid)
@@ -168,7 +168,8 @@ Nombres exactos del barrel.
168
168
  - `lucide` — `anteriority-ui/lucide` re-exporta lucide-react completo.
169
169
 
170
170
  **Otros**
171
- - `DesplegablePanel` — fila expandible tipo acordeón. `ScrollBar` — scroll personalizado que se oculta solo.
171
+ - `DesplegablePanel` — fila expandible tipo acordeón.
172
+ - `ScrollBar` — contenedor con scroll personalizado que se oculta solo. Úsalo para cualquier área con scroll en vez de la barra nativa (ver sección 7).
172
173
  - `QRCode` — genera un código QR (SVG) desde un texto/URL; logo, estilos y descarga.
173
174
  - `Footer` — barra inferior con zonas izquierda/centro/derecha y botones de acción (`actions`), opcionalmente sticky.
174
175
  - `FileDropZone` — zona para recibir un archivo por arrastre, pegado o click (filtro `accept`).
@@ -215,6 +216,17 @@ variant; las props de color son un override por encima de esa paleta.
215
216
  - **No mezcles MUI directo con componentes de la librería** para lo mismo. Si necesitás un componente MUI que la librería ya envuelve (`Button`, `TextField`, `Autocomplete`, etc.), usá el de la librería.
216
217
  - **Respetá los props de cada componente tal como están documentados.** No pases props que no aparecen en la doc; si una falla en silencio, revisá el nombre exacto en `AnteriorityUI.md`.
217
218
  - **Componentes con portal** (`DrawPanel`, `AlertModal`, `ModalTooltip`, `Frame` como modal, `EmojiPickerModal`) se renderizan sobre `document.body`. No los envuelvas en contenedores con `overflow: hidden` esperando que queden contenidos.
219
+ - **Scroll siempre con `ScrollBar`:** cualquier área con scroll visible (listas, menús, paneles, diálogos) usa `ScrollBar` de la librería, no `overflow: auto` ni la barra nativa del navegador. Las páginas quedan con un scroll más prolijo y consistente. Ejemplo: `import { ScrollBar } from 'anteriority-ui';` y luego `<ScrollBar vertical maxHeight={300}>…</ScrollBar>`. Varios componentes ya traen su propio scroll: **no lo envuelvas en `ScrollBar` otra vez** (duplicaría el scroll). Los que scrollean por dentro y cómo activarlo:
220
+ - `Frame` con `scrollable` (y `maxHeight`); `NotificationsPanel` ya viene así.
221
+ - `TableA` / `TableB` con `maxHeight` (y `stickyHeader` para fijar el encabezado).
222
+ - `CommandPalette`: la lista de resultados, con `maxHeight`.
223
+ - `AppShell`: el área de `children`. `Container` y `Footer` también se comportan así con `sticky`/`stickyHeader`.
224
+ - `Selector`: la lista desplegable, con `hideScrollbar` (por defecto oculta la barra; `scrollbarColor` la colorea cuando se muestra).
225
+ - `EmojiPickerModal` / `EmojiPicker`: las grillas de emojis e íconos.
226
+ - `MarkdownEditor`: el textarea y la vista previa (`scrollbarColor`).
227
+ - `MediaViewer` (planillas, PDF, Word, Markdown) y `Resizable`: scroll interno del contenido.
228
+ - `ChatWindow`: la lista de mensajes, con scroll propio.
229
+ Si el componente que usás ya está en esta lista, usá su prop de scroll. Solo envolvé con `ScrollBar` contenido que no tenga scroll propio. Para el detalle de props, ver `AnteriorityUI.md`.
218
230
  - **Estado controlado:** la mayoría de los componentes de entrada son controlados (`value` + `onChange`, `open` + `onClose`). Mantené el estado en tu componente.
219
231
  - **Storybook de la librería** (si está disponible en el proyecto) muestra cada componente en variantes reales; úsalo como referencia visual.
220
232