beez-ui 0.4.2 → 0.5.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/CHANGELOG.md +35 -27
- package/README.md +28 -5
- package/dist/adapters/unpic-image.js +92 -14
- package/dist/components/alert-dialog.js +444 -26
- package/dist/components/alert.js +153 -18
- package/dist/components/animated-theme-toggler.js +215 -76
- package/dist/components/avatar.js +247 -15
- package/dist/components/badge.js +18 -16
- package/dist/components/button.js +85 -28
- package/dist/components/calendar.js +327 -68
- package/dist/components/card.js +39 -9
- package/dist/components/carousel.js +454 -84
- package/dist/components/checkbox.js +50 -3
- package/dist/components/data-table.js +827 -583
- package/dist/components/dialog.js +363 -22
- package/dist/components/dropdown-menu.d.ts +1 -0
- package/dist/components/dropdown-menu.js +544 -32
- package/dist/components/filter-query-bar.js +809 -468
- package/dist/components/filter-query-grammar.js +781 -736
- package/dist/components/form.js +305 -43
- package/dist/components/highlighter.js +142 -87
- package/dist/components/hover-card.js +97 -7
- package/dist/components/input-group.js +261 -41
- package/dist/components/input.js +8 -2
- package/dist/components/label.js +38 -3
- package/dist/components/link.js +45 -7
- package/dist/components/pagination.js +332 -16
- package/dist/components/popover.js +222 -16
- package/dist/components/radio-group.js +85 -5
- package/dist/components/select.js +451 -22
- package/dist/components/separator.js +43 -3
- package/dist/components/sheet.js +345 -22
- package/dist/components/sidebar.js +1385 -193
- package/dist/components/skeleton.js +6 -2
- package/dist/components/svgs/whatsappIcon.js +11 -1
- package/dist/components/switch.js +55 -3
- package/dist/components/table.js +288 -18
- package/dist/components/tabs.js +161 -18
- package/dist/components/textarea.js +7 -2
- package/dist/components/themed-toaster.js +63 -20
- package/dist/components/tooltip.js +128 -9
- package/dist/components/typing-animation.js +335 -150
- package/dist/constants/sidebar.js +1 -4
- package/dist/hooks/use-mobile.js +8 -8
- package/dist/hooks/use-sidebar-persistence.js +27 -27
- package/dist/lib/image-dimensions.js +2 -2
- package/dist/lib/year-month-filter.js +38 -40
- package/dist/next.js +69 -17
- package/dist/providers/beez-ui-provider.js +48 -7
- package/dist/providers/native-provider.js +40 -6
- package/dist/styles.css +1 -1
- package/dist/tanstack.js +35 -23
- package/package.json +4 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,34 +1,42 @@
|
|
|
1
1
|
# Cambios
|
|
2
2
|
|
|
3
|
-
## 0.
|
|
3
|
+
## 0.5.1 - 2026-09-08
|
|
4
4
|
|
|
5
|
-
- Actualiza el paquete a la versión 0.
|
|
5
|
+
- Actualiza el paquete a la versión 0.5.1.
|
|
6
6
|
|
|
7
|
-
## 0.
|
|
8
|
-
|
|
9
|
-
- Actualiza el paquete a la versión 0.
|
|
10
|
-
|
|
11
|
-
## 0.4.
|
|
12
|
-
|
|
13
|
-
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
-
-
|
|
30
|
-
|
|
31
|
-
## 0.
|
|
7
|
+
## 0.5.0 - 2026-09-08
|
|
8
|
+
|
|
9
|
+
- Actualiza el paquete a la versión 0.5.0.
|
|
10
|
+
|
|
11
|
+
## 0.4.2 - 2026-09-08
|
|
12
|
+
|
|
13
|
+
- Actualiza el paquete a la versión 0.4.2.
|
|
14
|
+
|
|
15
|
+
## 0.4.1 - 2026-09-08
|
|
16
|
+
|
|
17
|
+
- Actualiza el paquete a la versión 0.4.1.
|
|
18
|
+
|
|
19
|
+
## 0.4.0 - 2026-09-08
|
|
20
|
+
|
|
21
|
+
- Distribuye los providers nativo, Next y TanStack con tema compartido, navegación e imágenes adaptadas al framework.
|
|
22
|
+
- Incluye CSS precompilado, tema y fuentes; los consumidores sólo importan `beez-ui/styles.css`, sin configurar Tailwind.
|
|
23
|
+
- Valida el tarball sin compiladores CSS y las integraciones en Chromium y WebKit.
|
|
24
|
+
|
|
25
|
+
## 0.3.1 - 2026-09-08
|
|
26
|
+
|
|
27
|
+
- Publica CSS precompilado para que los estilos funcionen sin Tailwind ni detección de clases en el consumidor.
|
|
28
|
+
- Conserva el tema, las fuentes y las utilidades compartidas mediante `beez-ui/styles.css`.
|
|
29
|
+
- Verifica estilos computados del tarball servido por HTTP sin procesadores CSS en Chromium y WebKit.
|
|
30
|
+
|
|
31
|
+
## 0.2.0 - 2026-09-08
|
|
32
|
+
|
|
33
|
+
- Unifica el nombre `BeezUIProvider` en los entrypoints nativo, Next y TanStack; reemplaza `NextBeezUIProvider`.
|
|
34
|
+
- Comparte el tema mediante `next-themes`, `themeOptions` y `useTheme` en todos los providers.
|
|
35
|
+
- Restaura `Link` desde la raíz con navegación por adaptadores y prefetch desactivado por defecto.
|
|
36
|
+
- Integra Unpic para imágenes nativas y de TanStack, y conserva Next Image en el provider de Next.
|
|
37
|
+
- Separa los tipos de tests y valida navegación, imágenes y tema en Chromium y WebKit.
|
|
38
|
+
|
|
39
|
+
## 0.1.1 - 2026-09-08
|
|
32
40
|
|
|
33
41
|
- Publica JavaScript ESM y declaraciones TypeScript en `dist`.
|
|
34
42
|
- Conserva los componentes agrupados y el tema de LaTribu.
|
package/README.md
CHANGED
|
@@ -16,7 +16,9 @@ Agrupar los imports de componentes desde la raíz. El paquete publica JavaScript
|
|
|
16
16
|
|
|
17
17
|
`beez-ui/styles.css` es CSS listo para el navegador: incluye reset, utilidades, tema claro/oscuro, radios y fuentes locales Geist, Poppins e IBM Plex Mono. No requiere Tailwind, plugins PostCSS ni declaraciones `@source` en el consumidor. Las clases se compilan en el build de la biblioteca y se publican en `dist/styles.css`; `styles.source.css` es la entrada de desarrollo y no se distribuye.
|
|
18
18
|
|
|
19
|
-
Los consumidores pueden sobrescribir tokens mediante CSS normal. Poppins se reserva para títulos grandes mediante `--font-display`; las licencias se incluyen en `assets/fonts`. Si la aplicación usa Tailwind para sus propios estilos puede mantenerlo, pero ya no necesita escanear beez-ui.
|
|
19
|
+
Los consumidores pueden sobrescribir tokens mediante CSS normal. Poppins se reserva para títulos grandes mediante `--font-display`; las licencias se incluyen en `assets/fonts`. Si la aplicación usa Tailwind para sus propios estilos puede mantenerlo, pero ya no necesita escanear beez-ui.
|
|
20
|
+
|
|
21
|
+
`DropdownMenuContent` toma el ancho natural de sus opciones, con un mínimo de 12 rem y un máximo limitado por el espacio disponible. No hereda el ancho del botón disparador: los menús abiertos desde un icono deben mantener sus etiquetas legibles. Para un ancho específico, usar `className` y ajustar también el mínimo cuando se necesite un menú más pequeño.
|
|
20
22
|
|
|
21
23
|
## Providers de UI
|
|
22
24
|
|
|
@@ -66,6 +68,26 @@ La tabla conserva agrupación estable, columnas configurables, memoización, exc
|
|
|
66
68
|
|
|
67
69
|
Los componentes compartidos conservan el tema de LaTribu. Se incorporaron atributos `data-variant`/`data-size` del botón, scroll para paneles largos y persistencia opcional del sidebar. Se mantienen `Button.asChild`, estados deshabilitados y skeletons deterministas. `AvatarImage` delega carga y fallback a Base UI; conserva carga diferida y recuperación al cambiar `src`. El export original `Toaster` permanece disponible; `ThemedToaster` agrega los estilos e iconos compartidos.
|
|
68
70
|
|
|
71
|
+
## React Compiler
|
|
72
|
+
|
|
73
|
+
El build usa el port de React Compiler en Rust de [Oxc](https://oxc.rs/blog/2026-08-18-react-compiler-support), mediante `oxc-transform-react`. Esta integración sigue marcada como experimental por Oxc.
|
|
74
|
+
|
|
75
|
+
Las optimizaciones se incluyen en el JavaScript publicado: el consumidor no necesita habilitar React Compiler en Vite, Next ni otro bundler. El target es React 19 y utiliza `react/compiler-runtime`, incluido en el peer React 19.2; no se añade un runtime independiente.
|
|
76
|
+
|
|
77
|
+
TypeScript 7 valida los tipos y genera las declaraciones. Oxc recibe los fuentes originales y ejecuta React Compiler antes de eliminar TypeScript y transformar JSX. Conserva ESM, los exports y las directivas de cliente. Sólo los módulos cuyo prólogo declara `"use client"` reciben memoización automática; los módulos compatibles con Server Components se emiten sin cachés de cliente. Esto evita introducir hooks del runtime de cliente en el render servidor de Next.
|
|
78
|
+
|
|
79
|
+
La cobertura depende de las heurísticas del compilador y de las reglas de React: algunas funciones conservan su implementación sin optimizar. Las memoizaciones y comentarios del código fuente permanecen intactos. El build informa cuántos módulos incluyen memoización automática y falla ante errores fatales de transformación.
|
|
80
|
+
|
|
81
|
+
```sh
|
|
82
|
+
# Comparar el comportamiento sin memoización automática.
|
|
83
|
+
pnpm test:uncompiled
|
|
84
|
+
|
|
85
|
+
# Volver a generar la distribución optimizada.
|
|
86
|
+
pnpm build
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
`test:uncompiled` usa `pnpm build --no-react-compiler` y ejecuta Vitest. CI y `release:prepare` ejecutan esa comparación antes del check normal, que restaura el build optimizado. Los consumidores de prueba no habilitan un segundo compilador: ejercen el paquete generado, incluido un componente de servidor real en Next.
|
|
90
|
+
|
|
69
91
|
## Desarrollo y validación
|
|
70
92
|
|
|
71
93
|
Usar pnpm **12.3.4**. Las dependencias tienen rangos `^` y el lockfile fija las versiones verificadas.
|
|
@@ -79,7 +101,7 @@ pnpm build
|
|
|
79
101
|
pnpm release:prepare
|
|
80
102
|
```
|
|
81
103
|
|
|
82
|
-
`pnpm build`
|
|
104
|
+
`pnpm build` genera las declaraciones con TypeScript 7, JavaScript con Oxc/React Compiler y CSS con el CLI de Tailwind. `pnpm check` ejecuta ESLint 10, los typechecks separados de código y tests con TypeScript 7, y Vitest 5. `tests/tsconfig.json` incorpora los matchers de Testing Library y los tipos de Vite sin incluirlos en el código de producción. `test:browser` verifica una app React/Vite nativa y una app Next real en Chromium y WebKit, tanto en desktop como en móvil. Los tests unitarios importan los archivos compilados. Los consumidores de navegador no instalan plugins de Tailwind, y una prueba adicional sirve el tarball por HTTP sin procesadores CSS para verificar estilos computados y carga de fuentes. Una prueba adicional instala el tarball en un consumidor aislado sin Next y verifica render, filtrado y declaraciones públicas.
|
|
83
105
|
|
|
84
106
|
Los tests resuelven `beez-ui`, `beez-ui/next` y `beez-ui/tanstack` mediante rutas explícitas a las declaraciones compiladas en `tests/tsconfig.json`. Ejecutar `pnpm build` después de clonar o si falta `dist`; los comandos de validación completos ya lo hacen. Si el editor conserva diagnósticos anteriores después del build, reiniciar su servidor de TypeScript.
|
|
85
107
|
|
|
@@ -100,13 +122,14 @@ Acepta `patch`, `minor`, `major` o una versión estable explícita mayor que la
|
|
|
100
122
|
El comando ejecuta el flujo completo:
|
|
101
123
|
|
|
102
124
|
1. Actualiza `package.json` y agrega la entrada del changelog con fecha UTC, conservando el historial.
|
|
103
|
-
2. Prepara la release: instalación congelada, build de JavaScript, tipos y CSS, lint, typechecks, tests unitarios y pruebas de navegador.
|
|
125
|
+
2. Prepara la release: instalación congelada, tests sin React Compiler, build optimizado de JavaScript, tipos y CSS, lint, typechecks, tests unitarios y pruebas de navegador.
|
|
104
126
|
3. Genera el tarball en `releases/<version>-<sha256>/beez-ui-<version>.tgz` y valida su contenido, exports e integridad.
|
|
105
|
-
4.
|
|
127
|
+
4. Crea un commit con el contenido validado de `package.json` y `CHANGELOG.md`, conservando otros archivos staged, y pushea ese commit a la rama upstream configurada.
|
|
128
|
+
5. Publica ese mismo artefacto en npm con acceso público y etiqueta `latest`.
|
|
106
129
|
|
|
107
130
|
La publicación usa el cliente oficial de npm para admitir su flujo interactivo de verificación en el navegador/2FA. Instalación, build y checks siguen usando pnpm 12. Ejecutar desde una terminal interactiva cuando la cuenta requiera autenticación adicional. El token se carga sólo al publicar, no se imprime y se referencia mediante `${NPM_TOKEN}` en `.npmrc`.
|
|
108
131
|
|
|
109
|
-
El comando
|
|
132
|
+
El comando requiere una rama Git con upstream configurado. El commit se limita a los dos archivos de metadatos, incluidos sus cambios previos; revisar el código antes de ejecutar la release. No crea tags ni hace force push. Si cambian el checkout, el upstream o los metadatos durante las validaciones, se detiene. También comprueba que los hooks de Git no hayan agregado archivos ni alterado los metadatos validados antes de pushear. Si falla una validación, el commit o el push, no publica. Los metadatos de la nueva versión quedan disponibles: corregir el error, ejecutar `pnpm release:prepare`, commitear y pushear los metadatos y publicar el artefacto resultante. Si falla el push después del commit, resolver el problema y pushear ese commit antes de publicar el tarball preparado. Si falla la publicación, comprobar primero si npm recibió la versión y reintentar sólo la publicación del mismo tarball. No ejecutar nuevamente `create-version` para reintentar la misma release.
|
|
110
133
|
|
|
111
134
|
Los pasos individuales siguen disponibles:
|
|
112
135
|
|
|
@@ -1,20 +1,98 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import {
|
|
2
|
+
import { c as _c } from "react/compiler-runtime";
|
|
3
3
|
/** Uses Unpic for responsive images without coupling the native adapter to a framework. */
|
|
4
4
|
import { Image } from "@unpic/react";
|
|
5
5
|
import { imageDimension } from "../lib/image-dimensions.js";
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
7
|
/** Preserves browser events and consumer styles while deriving responsive image sources. */
|
|
7
|
-
export function UnpicImageAdapter(
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
8
|
+
export function UnpicImageAdapter(t0) {
|
|
9
|
+
const $ = _c(23);
|
|
10
|
+
let height;
|
|
11
|
+
let props;
|
|
12
|
+
let src;
|
|
13
|
+
let style;
|
|
14
|
+
let width;
|
|
15
|
+
if ($[0] !== t0) {
|
|
16
|
+
({src, width, height, style, ...props} = t0);
|
|
17
|
+
$[0] = t0;
|
|
18
|
+
$[1] = height;
|
|
19
|
+
$[2] = props;
|
|
20
|
+
$[3] = src;
|
|
21
|
+
$[4] = style;
|
|
22
|
+
$[5] = width;
|
|
23
|
+
} else {
|
|
24
|
+
height = $[1];
|
|
25
|
+
props = $[2];
|
|
26
|
+
src = $[3];
|
|
27
|
+
style = $[4];
|
|
28
|
+
width = $[5];
|
|
29
|
+
}
|
|
30
|
+
if (!src) {
|
|
31
|
+
let t1;
|
|
32
|
+
if ($[6] !== height || $[7] !== props || $[8] !== style || $[9] !== width) {
|
|
33
|
+
t1 = /* @__PURE__ */ _jsx("img", {
|
|
34
|
+
...props,
|
|
35
|
+
width,
|
|
36
|
+
height,
|
|
37
|
+
style
|
|
38
|
+
});
|
|
39
|
+
$[6] = height;
|
|
40
|
+
$[7] = props;
|
|
41
|
+
$[8] = style;
|
|
42
|
+
$[9] = width;
|
|
43
|
+
$[10] = t1;
|
|
44
|
+
} else {
|
|
45
|
+
t1 = $[10];
|
|
46
|
+
}
|
|
47
|
+
return t1;
|
|
48
|
+
}
|
|
49
|
+
let t1;
|
|
50
|
+
if ($[11] !== width) {
|
|
51
|
+
t1 = imageDimension(width);
|
|
52
|
+
$[11] = width;
|
|
53
|
+
$[12] = t1;
|
|
54
|
+
} else {
|
|
55
|
+
t1 = $[12];
|
|
56
|
+
}
|
|
57
|
+
let t2;
|
|
58
|
+
if ($[13] !== height) {
|
|
59
|
+
t2 = imageDimension(height);
|
|
60
|
+
$[13] = height;
|
|
61
|
+
$[14] = t2;
|
|
62
|
+
} else {
|
|
63
|
+
t2 = $[14];
|
|
64
|
+
}
|
|
65
|
+
let t3;
|
|
66
|
+
if ($[15] !== style) {
|
|
67
|
+
t3 = {
|
|
68
|
+
maxWidth: "100%",
|
|
69
|
+
maxHeight: "100%",
|
|
70
|
+
...style
|
|
71
|
+
};
|
|
72
|
+
$[15] = style;
|
|
73
|
+
$[16] = t3;
|
|
74
|
+
} else {
|
|
75
|
+
t3 = $[16];
|
|
76
|
+
}
|
|
77
|
+
let t4;
|
|
78
|
+
if ($[17] !== props || $[18] !== src || $[19] !== t1 || $[20] !== t2 || $[21] !== t3) {
|
|
79
|
+
const imageProps = {
|
|
80
|
+
...props,
|
|
81
|
+
src,
|
|
82
|
+
width: t1,
|
|
83
|
+
height: t2,
|
|
84
|
+
layout: "constrained",
|
|
85
|
+
style: t3
|
|
86
|
+
};
|
|
87
|
+
t4 = /* @__PURE__ */ _jsx(Image, { ...imageProps });
|
|
88
|
+
$[17] = props;
|
|
89
|
+
$[18] = src;
|
|
90
|
+
$[19] = t1;
|
|
91
|
+
$[20] = t2;
|
|
92
|
+
$[21] = t3;
|
|
93
|
+
$[22] = t4;
|
|
94
|
+
} else {
|
|
95
|
+
t4 = $[22];
|
|
96
|
+
}
|
|
97
|
+
return t4;
|
|
20
98
|
}
|