beez-ui 0.4.0 → 0.5.0
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 +31 -19
- package/README.md +49 -11
- 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.js +543 -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/tanstack.js +35 -23
- package/package.json +7 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,26 +1,38 @@
|
|
|
1
1
|
# Cambios
|
|
2
2
|
|
|
3
|
-
## 0.
|
|
3
|
+
## 0.5.0 - 2026-09-08
|
|
4
4
|
|
|
5
|
-
-
|
|
6
|
-
- Incluye CSS precompilado, tema y fuentes; los consumidores sólo importan `beez-ui/styles.css`, sin configurar Tailwind.
|
|
7
|
-
- Valida el tarball sin compiladores CSS y las integraciones en Chromium y WebKit.
|
|
5
|
+
- Actualiza el paquete a la versión 0.5.0.
|
|
8
6
|
|
|
9
|
-
## 0.
|
|
10
|
-
|
|
11
|
-
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
-
|
|
20
|
-
-
|
|
21
|
-
-
|
|
22
|
-
|
|
23
|
-
## 0.
|
|
7
|
+
## 0.4.2 - 2026-09-08
|
|
8
|
+
|
|
9
|
+
- Actualiza el paquete a la versión 0.4.2.
|
|
10
|
+
|
|
11
|
+
## 0.4.1 - 2026-09-08
|
|
12
|
+
|
|
13
|
+
- Actualiza el paquete a la versión 0.4.1.
|
|
14
|
+
|
|
15
|
+
## 0.4.0 - 2026-09-08
|
|
16
|
+
|
|
17
|
+
- Distribuye los providers nativo, Next y TanStack con tema compartido, navegación e imágenes adaptadas al framework.
|
|
18
|
+
- Incluye CSS precompilado, tema y fuentes; los consumidores sólo importan `beez-ui/styles.css`, sin configurar Tailwind.
|
|
19
|
+
- Valida el tarball sin compiladores CSS y las integraciones en Chromium y WebKit.
|
|
20
|
+
|
|
21
|
+
## 0.3.1 - 2026-09-08
|
|
22
|
+
|
|
23
|
+
- Publica CSS precompilado para que los estilos funcionen sin Tailwind ni detección de clases en el consumidor.
|
|
24
|
+
- Conserva el tema, las fuentes y las utilidades compartidas mediante `beez-ui/styles.css`.
|
|
25
|
+
- Verifica estilos computados del tarball servido por HTTP sin procesadores CSS en Chromium y WebKit.
|
|
26
|
+
|
|
27
|
+
## 0.2.0 - 2026-09-08
|
|
28
|
+
|
|
29
|
+
- Unifica el nombre `BeezUIProvider` en los entrypoints nativo, Next y TanStack; reemplaza `NextBeezUIProvider`.
|
|
30
|
+
- Comparte el tema mediante `next-themes`, `themeOptions` y `useTheme` en todos los providers.
|
|
31
|
+
- Restaura `Link` desde la raíz con navegación por adaptadores y prefetch desactivado por defecto.
|
|
32
|
+
- Integra Unpic para imágenes nativas y de TanStack, y conserva Next Image en el provider de Next.
|
|
33
|
+
- Separa los tipos de tests y valida navegación, imágenes y tema en Chromium y WebKit.
|
|
34
|
+
|
|
35
|
+
## 0.1.1 - 2026-09-08
|
|
24
36
|
|
|
25
37
|
- Publica JavaScript ESM y declaraciones TypeScript en `dist`.
|
|
26
38
|
- Conserva los componentes agrupados y el tema de LaTribu.
|
package/README.md
CHANGED
|
@@ -66,6 +66,26 @@ La tabla conserva agrupación estable, columnas configurables, memoización, exc
|
|
|
66
66
|
|
|
67
67
|
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
68
|
|
|
69
|
+
## React Compiler
|
|
70
|
+
|
|
71
|
+
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.
|
|
72
|
+
|
|
73
|
+
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.
|
|
74
|
+
|
|
75
|
+
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.
|
|
76
|
+
|
|
77
|
+
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.
|
|
78
|
+
|
|
79
|
+
```sh
|
|
80
|
+
# Comparar el comportamiento sin memoización automática.
|
|
81
|
+
pnpm test:uncompiled
|
|
82
|
+
|
|
83
|
+
# Volver a generar la distribución optimizada.
|
|
84
|
+
pnpm build
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
`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.
|
|
88
|
+
|
|
69
89
|
## Desarrollo y validación
|
|
70
90
|
|
|
71
91
|
Usar pnpm **12.3.4**. Las dependencias tienen rangos `^` y el lockfile fija las versiones verificadas.
|
|
@@ -79,32 +99,50 @@ pnpm build
|
|
|
79
99
|
pnpm release:prepare
|
|
80
100
|
```
|
|
81
101
|
|
|
82
|
-
`pnpm build`
|
|
102
|
+
`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
103
|
|
|
84
104
|
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
105
|
|
|
86
106
|
El compilador `tsc` es TypeScript 7. Para `typescript-eslint`, se mantiene la [API de compatibilidad oficial de TypeScript 6](https://devblogs.microsoft.com/typescript/announcing-typescript-7-0/#running-side-by-side-with-typescript-6.0) mediante un alias; no reemplaza el compilador de los typechecks.
|
|
87
107
|
|
|
88
|
-
##
|
|
108
|
+
## Crear y publicar una versión
|
|
89
109
|
|
|
90
|
-
|
|
110
|
+
Desde el repositorio de beez-ui, configurar `NPM_TOKEN` con permiso de publicación en el entorno o en `.env`, tomando `.env.example` como referencia. Mantener el archivo local existente si ya está configurado. Después ejecutar:
|
|
91
111
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
112
|
+
```sh
|
|
113
|
+
pnpm run create-version patch
|
|
114
|
+
pnpm run create-version minor --notes "Agrega un componente" --notes "Amplía sus opciones"
|
|
115
|
+
pnpm run create-version 0.5.0 --notes "Describe los cambios de esta versión"
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
Acepta `patch`, `minor`, `major` o una versión estable explícita mayor que la actual. Las notas son opcionales y pueden repetirse. Sin `--notes`, se agrega una entrada básica que indica la nueva versión; las notas explícitas no pueden estar vacías. `pnpm run create-version --help` muestra la sintaxis.
|
|
119
|
+
|
|
120
|
+
El comando ejecuta el flujo completo:
|
|
121
|
+
|
|
122
|
+
1. Actualiza `package.json` y agrega la entrada del changelog con fecha UTC, conservando el historial.
|
|
123
|
+
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.
|
|
124
|
+
3. Genera el tarball en `releases/<version>-<sha256>/beez-ui-<version>.tgz` y valida su contenido, exports e integridad.
|
|
125
|
+
4. Publica ese mismo artefacto en npm con acceso público y etiqueta `latest`.
|
|
126
|
+
|
|
127
|
+
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`.
|
|
128
|
+
|
|
129
|
+
El comando no crea commits ni tags ni modifica ramas Git. Si falla una validación, no publica. Los metadatos de la nueva versión quedan disponibles: corregir el error, ejecutar `pnpm release:prepare` y publicar el artefacto resultante. 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.
|
|
130
|
+
|
|
131
|
+
Los pasos individuales siguen disponibles:
|
|
98
132
|
|
|
99
133
|
```sh
|
|
134
|
+
# Sólo validar y empaquetar la versión actual, sin publicarla.
|
|
135
|
+
pnpm release:prepare
|
|
136
|
+
|
|
137
|
+
# Publicar un artefacto ya preparado.
|
|
100
138
|
pnpm release:publish releases/<version>-<sha256>/beez-ui-<version>.tgz
|
|
101
139
|
```
|
|
102
140
|
|
|
103
|
-
|
|
141
|
+
`release:publish` vuelve a verificar nombre, versión, contenido y checksum antes de invocar `npm publish`. El paquete excluye fuentes privadas, tests, scripts, `.env` y `.npmrc`; incluye JavaScript, declaraciones, CSS, fuentes tipográficas y licencias. Conserva releases anteriores.
|
|
104
142
|
|
|
105
143
|
`prepack` ejecuta el build para los empaquetados manuales. `dist` y `releases` son generados e ignorados por Git. La CI verifica los checks y los tres providers en ambos motores de navegador en Linux y Windows; no publica automáticamente.
|
|
106
144
|
|
|
107
|
-
Tras publicar, los consumidores pueden instalar `pnpm add beez-ui`. También pueden instalar directamente el `.tgz` validado antes de una publicación. LaTribu
|
|
145
|
+
Tras publicar, los consumidores pueden instalar `pnpm add beez-ui`. También pueden instalar directamente el `.tgz` validado antes de una publicación. LaTribu consume la versión publicada en npm y fija la resolución e integridad mediante su lockfile, sin guardar tarballs locales.
|
|
108
146
|
|
|
109
147
|
Los componentes nuevos de shadcn/ui se agregan mediante su CLI en esta biblioteca y se exportan desde la raíz. No editar las copias instaladas en los consumidores.
|
|
110
148
|
|
|
@@ -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
|
}
|