beez-ui 0.8.0 → 0.8.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 +154 -146
- package/README.md +15 -25
- package/package.json +24 -23
package/CHANGELOG.md
CHANGED
|
@@ -1,152 +1,160 @@
|
|
|
1
|
-
# Cambios
|
|
2
|
-
|
|
3
|
-
Todos los cambios relevantes de beez-ui se documentan en este archivo con el formato de [Keep a Changelog](https://keepachangelog.com/es-ES/1.1.0/) y versionado [SemVer](https://semver.org/lang/es/). Cada cambio agrega sus entradas en `[Unreleased]`; `pnpm create-version` las pasa a la versión publicada con su fecha.
|
|
4
|
-
|
|
1
|
+
# Cambios
|
|
2
|
+
|
|
3
|
+
Todos los cambios relevantes de beez-ui se documentan en este archivo con el formato de [Keep a Changelog](https://keepachangelog.com/es-ES/1.1.0/) y versionado [SemVer](https://semver.org/lang/es/). Cada cambio agrega sus entradas en `[Unreleased]`; `pnpm create-version` las pasa a la versión publicada con su fecha.
|
|
4
|
+
|
|
5
5
|
## [Unreleased]
|
|
6
6
|
|
|
7
|
+
## [0.8.1] - 2026-09-27
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
|
|
11
|
+
- Cada versión publicada queda en un commit `X.Y.Z` con el tag `vX.Y.Z` en GitHub (antes era un commit `chore(release): prepara la versión X.Y.Z` sin tag), para ubicar el código exacto de cada versión.
|
|
12
|
+
- La publicación en npm la hace el comando compartido de beez-rp, que vuelve a verificar el SHA-256 y el contenido del tarball antes de subirlo; se retira `pnpm release:publish`.
|
|
13
|
+
- Publicar con `pnpm publish` queda bloqueado por `beez-rp guard-publish`: cada versión sale sólo desde `pnpm create-version`, que publica con npm el tarball verificado.
|
|
14
|
+
|
|
7
15
|
## [0.8.0] - 2026-09-26
|
|
8
16
|
|
|
9
|
-
### Added
|
|
10
|
-
|
|
11
|
-
- Los tokens de movimiento (`MOTION_TIMING`, `MOTION_EASE`, springs y distancias) se exportan desde la raíz y desde `beez-ui/motion-tokens`, con los nuevos `SPRING_POP`, `MOTION_ITEM_ENTER_SCALE` y las duraciones `pop` y `collapse`, para animar superficies propias igual que la biblioteca.
|
|
12
|
-
- Primitivas de movimiento `PresenceSwap`, `AnimatedCount`, `AnimatedCollapse` y `AnimatedListItem`, que respetan el movimiento reducido.
|
|
13
|
-
- `BouncingDotsLoader`, `ProgressRing`, `EmptyState`, `ErrorState`, `InfoPopover`, `ConfirmDeleteButton` y `ReactionButton`.
|
|
14
|
-
- `AccountMenu`: menú de cuenta con avatar, identidad, inicio de sesión como link o callback, cierre de sesión y variante para sidebar.
|
|
15
|
-
- `RichTextContent`, `RichMarkdownContent`, `RichLinkEditor` y `useRichLinkEditor` para mostrar y editar texto con links en markdown sin interpretar HTML, junto con `parseRichTextSegments` y `parseRichMarkdownBlocks`.
|
|
16
|
-
- `OpenInBrowserCta` y `ExternalBrowserHandoff` para salir de navegadores internos de otras apps, con `detectInAppBrowser` y `buildExternalBrowserUrl`.
|
|
17
|
-
- `PwaUpdateControl`, que ofrece aplicar una actualización pendiente del service worker.
|
|
18
|
-
- `NotificationBell` y `NotificationPanel`: bandeja de notificaciones en popover o en sheet según el viewport, a partir de ítems ya resueltos por la app.
|
|
19
|
-
- `MonthGrid` y `MonthCalendarHeader` para calendarios mensuales, con `createMonthGridDays`, `groupItemsByDateKey`, `shiftMonthKey` y `useMonthTransitionDirection`.
|
|
20
|
-
- `FileUpload`, `FileUploadDropZone`, `FileUploadList` y `FileUploadItem`, con validación por tipo y tamaño (`classifyFiles`, `isFileTypeAccepted`).
|
|
21
|
-
- `EmojiPicker` en el entrypoint opcional `beez-ui/emoji-picker`; requiere instalar `emoji-picker-react`.
|
|
22
|
-
- Hooks `useIsHydrated`, `useMinuteClock`, `useViewerTimeZone`, `useHorizontalSwipe` y `usePrefersReducedMotion`.
|
|
23
|
-
- Utilidades `formatFileSize`, `copyTextToClipboard`, `getNameInitials`, búsqueda difusa (`getFuzzyMatchRank`, `renderHighlightedText`) y helpers de URL (`replaceCurrentUrlSearchParams`).
|
|
24
|
-
|
|
25
|
-
### Fixed
|
|
26
|
-
|
|
17
|
+
### Added
|
|
18
|
+
|
|
19
|
+
- Los tokens de movimiento (`MOTION_TIMING`, `MOTION_EASE`, springs y distancias) se exportan desde la raíz y desde `beez-ui/motion-tokens`, con los nuevos `SPRING_POP`, `MOTION_ITEM_ENTER_SCALE` y las duraciones `pop` y `collapse`, para animar superficies propias igual que la biblioteca.
|
|
20
|
+
- Primitivas de movimiento `PresenceSwap`, `AnimatedCount`, `AnimatedCollapse` y `AnimatedListItem`, que respetan el movimiento reducido.
|
|
21
|
+
- `BouncingDotsLoader`, `ProgressRing`, `EmptyState`, `ErrorState`, `InfoPopover`, `ConfirmDeleteButton` y `ReactionButton`.
|
|
22
|
+
- `AccountMenu`: menú de cuenta con avatar, identidad, inicio de sesión como link o callback, cierre de sesión y variante para sidebar.
|
|
23
|
+
- `RichTextContent`, `RichMarkdownContent`, `RichLinkEditor` y `useRichLinkEditor` para mostrar y editar texto con links en markdown sin interpretar HTML, junto con `parseRichTextSegments` y `parseRichMarkdownBlocks`.
|
|
24
|
+
- `OpenInBrowserCta` y `ExternalBrowserHandoff` para salir de navegadores internos de otras apps, con `detectInAppBrowser` y `buildExternalBrowserUrl`.
|
|
25
|
+
- `PwaUpdateControl`, que ofrece aplicar una actualización pendiente del service worker.
|
|
26
|
+
- `NotificationBell` y `NotificationPanel`: bandeja de notificaciones en popover o en sheet según el viewport, a partir de ítems ya resueltos por la app.
|
|
27
|
+
- `MonthGrid` y `MonthCalendarHeader` para calendarios mensuales, con `createMonthGridDays`, `groupItemsByDateKey`, `shiftMonthKey` y `useMonthTransitionDirection`.
|
|
28
|
+
- `FileUpload`, `FileUploadDropZone`, `FileUploadList` y `FileUploadItem`, con validación por tipo y tamaño (`classifyFiles`, `isFileTypeAccepted`).
|
|
29
|
+
- `EmojiPicker` en el entrypoint opcional `beez-ui/emoji-picker`; requiere instalar `emoji-picker-react`.
|
|
30
|
+
- Hooks `useIsHydrated`, `useMinuteClock`, `useViewerTimeZone`, `useHorizontalSwipe` y `usePrefersReducedMotion`.
|
|
31
|
+
- Utilidades `formatFileSize`, `copyTextToClipboard`, `getNameInitials`, búsqueda difusa (`getFuzzyMatchRank`, `renderHighlightedText`) y helpers de URL (`replaceCurrentUrlSearchParams`).
|
|
32
|
+
|
|
33
|
+
### Fixed
|
|
34
|
+
|
|
27
35
|
- `BeezUIProvider` ya no provoca el aviso de React «Encountered a script tag» en apps renderizadas solo en el cliente; con SSR conserva el script que aplica el tema antes de hidratar, sin parpadeo.
|
|
28
36
|
|
|
29
|
-
## [0.7.0] - 2026-09-26
|
|
30
|
-
|
|
31
|
-
### Added
|
|
32
|
-
|
|
33
|
-
- `PaginationContent` desliza el resaltado de la página actual hacia la página elegida cuando la lista permanece montada (paginación en el cliente).
|
|
34
|
-
- `Calendar` desliza el mes entrante desde el lado de la navegación (también en RTL) y se mantiene estático con movimiento reducido.
|
|
35
|
-
- `AvatarImage` revela la imagen con un desenfoque y un zoom breves al terminar de cargar, en lugar de aparecer de golpe sobre el fallback.
|
|
36
|
-
- Las sugerencias de `FilterQueryBar` deslizan el resaltado entre opciones con teclado, como los menús y `Select`.
|
|
37
|
-
- `AvatarGroup` eleva levemente el avatar bajo el puntero en dispositivos con hover real.
|
|
38
|
-
- El chevron de `DropdownMenuSubTrigger` se desplaza hacia el submenú abierto.
|
|
39
|
-
|
|
40
|
-
### Changed
|
|
41
|
-
|
|
42
|
-
- `Skeleton` muestra un brillo que recorre el placeholder en lugar del pulso de opacidad; con movimiento reducido queda como un bloque liso.
|
|
43
|
-
- `Sheet` se cierra con una curva de cajón breve en lugar de un spring, y su botón de cierre aparece con un pop demorado como el de `Dialog`.
|
|
44
|
-
- `Alert` entra con un leve desplazamiento y desenfoque.
|
|
45
|
-
- Los anillos de foco y bordes de `Input`, `Textarea`, `InputGroup`, `SelectTrigger`, `Checkbox` y `RadioGroupItem` aparecen con una transición en lugar de saltar.
|
|
46
|
-
- En menús, `Select` y sugerencias, el resaltado sigue al puntero al instante y solo se desliza al navegar con teclado, con un spring más rápido.
|
|
47
|
-
- El sidebar colapsa y expande con una curva de cajón de 300 ms en lugar de una transición lineal.
|
|
48
|
-
- El thumb de `Switch` tiene una sombra sutil que lo separa del track.
|
|
49
|
-
|
|
50
|
-
### Fixed
|
|
51
|
-
|
|
52
|
-
- El cursor de `TypingAnimation` vuelve a parpadear: queda fijo mientras escribe o borra, parpadea en reposo y los lectores de pantalla lo ignoran.
|
|
53
|
-
- `Carousel` vertical responde a las flechas arriba y abajo; antes solo reaccionaba a izquierda y derecha.
|
|
54
|
-
- `SidebarMenuButton` con `variant="outline"` vuelve a pintar su borde con los tokens `oklch` del tema.
|
|
55
|
-
- `FormLabel`, `FormControl`, `FormDescription` y `FormMessage` fuera de un `FormField` lanzan un error claro en lugar de fallar en silencio.
|
|
56
|
-
- Los bordes sin color explícito (footers de `Card`, `Dialog` y `AlertDialog`, `Alert`, filas de `Table`, bordes de `Sheet` y del sidebar) usan el token `--border` del tema en lugar del color del texto cuando se consume `beez-ui/styles.css` sin Tailwind.
|
|
57
|
-
- `DropdownMenu`, sus submenús, `Popover`, `HoverCard` y `Select` muestran su borde y su sombra desde el primer frame al abrirse; antes el revelado los recortaba durante ~650 ms.
|
|
58
|
-
- `DataTable` filtra las columnas apuntadas por `queryFilterConfig` que no declaran `filterFn` (rangos numéricos, enums y año-mes); antes un rango sobre una columna numérica lanzaba `TypeError: val is not iterable` y un enum ocultaba todas las filas. Un `filterFn` propio de la columna sigue teniendo prioridad.
|
|
59
|
-
- Las `Card` interactivas conservan su contorno mientras muestran la sombra de hover; antes la sombra reemplazaba el anillo del borde.
|
|
60
|
-
|
|
61
|
-
## [0.6.2] - 2026-09-26
|
|
62
|
-
|
|
63
|
-
### Changed
|
|
64
|
-
|
|
65
|
-
- El comando de release (`pnpm create-version`, alias `pnpm cv`) toma las notas del bloque `[Unreleased]` del CHANGELOG, les asigna la versión y la fecha, y pide a Codex que lo complete cuando está vacío.
|
|
66
|
-
- Las cajas del comando de release ajustan el texto largo en varias líneas en lugar de cortarlo.
|
|
67
|
-
- Un release interrumpido reusa automáticamente el artefacto ya preparado cuando es posterior al último cambio de código.
|
|
68
|
-
|
|
69
|
-
### Removed
|
|
70
|
-
|
|
71
|
-
- La opción `--notes` y las preguntas sobre las notas del CHANGELOG y sobre reusar el artefacto preparado.
|
|
72
|
-
|
|
73
|
-
## 0.6.1 - 2026-09-26
|
|
74
|
-
|
|
75
|
-
- Actualiza pnpm a 12.6.0 y next a 16.3.6
|
|
76
|
-
- Add terminal UI for interactive prompts and spinners
|
|
77
|
-
- Update release banner and icons for improved visibility
|
|
78
|
-
- Remove create-version script
|
|
79
|
-
- Update release command to create-version and improve documentation
|
|
80
|
-
|
|
81
|
-
## 0.6.0 - 2026-09-23
|
|
82
|
-
|
|
83
|
-
- Actualiza el paquete a la versión 0.6.0.
|
|
84
|
-
|
|
85
|
-
## 0.5.6 - 2026-09-09
|
|
86
|
-
|
|
87
|
-
- Actualiza el paquete a la versión 0.5.6.
|
|
88
|
-
|
|
89
|
-
## 0.5.5 - 2026-09-09
|
|
90
|
-
|
|
91
|
-
- Actualiza el paquete a la versión 0.5.5.
|
|
92
|
-
|
|
93
|
-
## 0.5.4 - 2026-09-09
|
|
94
|
-
|
|
95
|
-
- Actualiza el paquete a la versión 0.5.4.
|
|
96
|
-
|
|
97
|
-
## 0.5.3 - 2026-09-09
|
|
98
|
-
|
|
99
|
-
- Actualiza el paquete a la versión 0.5.3.
|
|
100
|
-
|
|
101
|
-
## 0.5.2 - 2026-09-09
|
|
102
|
-
|
|
103
|
-
- Actualiza el paquete a la versión 0.5.2.
|
|
104
|
-
|
|
105
|
-
## 0.5.1 - 2026-09-08
|
|
106
|
-
|
|
107
|
-
- Actualiza el paquete a la versión 0.5.1.
|
|
108
|
-
|
|
109
|
-
## 0.5.0 - 2026-09-08
|
|
110
|
-
|
|
111
|
-
- Actualiza el paquete a la versión 0.5.0.
|
|
112
|
-
|
|
113
|
-
## 0.4.2 - 2026-09-08
|
|
114
|
-
|
|
115
|
-
- Actualiza el paquete a la versión 0.4.2.
|
|
116
|
-
|
|
117
|
-
## 0.4.1 - 2026-09-08
|
|
118
|
-
|
|
119
|
-
- Actualiza el paquete a la versión 0.4.1.
|
|
120
|
-
|
|
121
|
-
## 0.4.0 - 2026-09-08
|
|
122
|
-
|
|
123
|
-
- Distribuye los providers nativo, Next y TanStack con tema compartido, navegación e imágenes adaptadas al framework.
|
|
124
|
-
- Incluye CSS precompilado, tema y fuentes; los consumidores sólo importan `beez-ui/styles.css`, sin configurar Tailwind.
|
|
125
|
-
- Valida el tarball sin compiladores CSS y las integraciones en Chromium y WebKit.
|
|
126
|
-
|
|
127
|
-
## 0.3.1 - 2026-09-08
|
|
128
|
-
|
|
129
|
-
- Publica CSS precompilado para que los estilos funcionen sin Tailwind ni detección de clases en el consumidor.
|
|
130
|
-
- Conserva el tema, las fuentes y las utilidades compartidas mediante `beez-ui/styles.css`.
|
|
131
|
-
- Verifica estilos computados del tarball servido por HTTP sin procesadores CSS en Chromium y WebKit.
|
|
132
|
-
|
|
133
|
-
## 0.2.0 - 2026-09-08
|
|
134
|
-
|
|
135
|
-
- Unifica el nombre `BeezUIProvider` en los entrypoints nativo, Next y TanStack; reemplaza `NextBeezUIProvider`.
|
|
136
|
-
- Comparte el tema mediante `next-themes`, `themeOptions` y `useTheme` en todos los providers.
|
|
137
|
-
- Restaura `Link` desde la raíz con navegación por adaptadores y prefetch desactivado por defecto.
|
|
138
|
-
- Integra Unpic para imágenes nativas y de TanStack, y conserva Next Image en el provider de Next.
|
|
139
|
-
- Separa los tipos de tests y valida navegación, imágenes y tema en Chromium y WebKit.
|
|
140
|
-
|
|
141
|
-
## 0.1.1 - 2026-09-08
|
|
142
|
-
|
|
143
|
-
- Publica JavaScript ESM y declaraciones TypeScript en `dist`.
|
|
144
|
-
- Conserva los componentes agrupados y el tema de LaTribu.
|
|
145
|
-
- Mantiene visible el área del avatar durante la carga diferida para permitir que el navegador solicite la imagen.
|
|
146
|
-
- Agrega `BeezUIProvider` para adaptadores nativos o propios y `NextBeezUIProvider` como integración opcional.
|
|
147
|
-
- Incorpora preparación de releases con checks, control del contenido del paquete y checksum SHA-256.
|
|
148
|
-
- Documenta la autenticación con `NPM_TOKEN` y la publicación del artefacto validado.
|
|
149
|
-
|
|
150
|
-
## 0.1.0 - 2026-09-08
|
|
151
|
-
|
|
152
|
-
- Centraliza los componentes de LaTribu y agenda-mensual con su tema, fuentes y pruebas.
|
|
37
|
+
## [0.7.0] - 2026-09-26
|
|
38
|
+
|
|
39
|
+
### Added
|
|
40
|
+
|
|
41
|
+
- `PaginationContent` desliza el resaltado de la página actual hacia la página elegida cuando la lista permanece montada (paginación en el cliente).
|
|
42
|
+
- `Calendar` desliza el mes entrante desde el lado de la navegación (también en RTL) y se mantiene estático con movimiento reducido.
|
|
43
|
+
- `AvatarImage` revela la imagen con un desenfoque y un zoom breves al terminar de cargar, en lugar de aparecer de golpe sobre el fallback.
|
|
44
|
+
- Las sugerencias de `FilterQueryBar` deslizan el resaltado entre opciones con teclado, como los menús y `Select`.
|
|
45
|
+
- `AvatarGroup` eleva levemente el avatar bajo el puntero en dispositivos con hover real.
|
|
46
|
+
- El chevron de `DropdownMenuSubTrigger` se desplaza hacia el submenú abierto.
|
|
47
|
+
|
|
48
|
+
### Changed
|
|
49
|
+
|
|
50
|
+
- `Skeleton` muestra un brillo que recorre el placeholder en lugar del pulso de opacidad; con movimiento reducido queda como un bloque liso.
|
|
51
|
+
- `Sheet` se cierra con una curva de cajón breve en lugar de un spring, y su botón de cierre aparece con un pop demorado como el de `Dialog`.
|
|
52
|
+
- `Alert` entra con un leve desplazamiento y desenfoque.
|
|
53
|
+
- Los anillos de foco y bordes de `Input`, `Textarea`, `InputGroup`, `SelectTrigger`, `Checkbox` y `RadioGroupItem` aparecen con una transición en lugar de saltar.
|
|
54
|
+
- En menús, `Select` y sugerencias, el resaltado sigue al puntero al instante y solo se desliza al navegar con teclado, con un spring más rápido.
|
|
55
|
+
- El sidebar colapsa y expande con una curva de cajón de 300 ms en lugar de una transición lineal.
|
|
56
|
+
- El thumb de `Switch` tiene una sombra sutil que lo separa del track.
|
|
57
|
+
|
|
58
|
+
### Fixed
|
|
59
|
+
|
|
60
|
+
- El cursor de `TypingAnimation` vuelve a parpadear: queda fijo mientras escribe o borra, parpadea en reposo y los lectores de pantalla lo ignoran.
|
|
61
|
+
- `Carousel` vertical responde a las flechas arriba y abajo; antes solo reaccionaba a izquierda y derecha.
|
|
62
|
+
- `SidebarMenuButton` con `variant="outline"` vuelve a pintar su borde con los tokens `oklch` del tema.
|
|
63
|
+
- `FormLabel`, `FormControl`, `FormDescription` y `FormMessage` fuera de un `FormField` lanzan un error claro en lugar de fallar en silencio.
|
|
64
|
+
- Los bordes sin color explícito (footers de `Card`, `Dialog` y `AlertDialog`, `Alert`, filas de `Table`, bordes de `Sheet` y del sidebar) usan el token `--border` del tema en lugar del color del texto cuando se consume `beez-ui/styles.css` sin Tailwind.
|
|
65
|
+
- `DropdownMenu`, sus submenús, `Popover`, `HoverCard` y `Select` muestran su borde y su sombra desde el primer frame al abrirse; antes el revelado los recortaba durante ~650 ms.
|
|
66
|
+
- `DataTable` filtra las columnas apuntadas por `queryFilterConfig` que no declaran `filterFn` (rangos numéricos, enums y año-mes); antes un rango sobre una columna numérica lanzaba `TypeError: val is not iterable` y un enum ocultaba todas las filas. Un `filterFn` propio de la columna sigue teniendo prioridad.
|
|
67
|
+
- Las `Card` interactivas conservan su contorno mientras muestran la sombra de hover; antes la sombra reemplazaba el anillo del borde.
|
|
68
|
+
|
|
69
|
+
## [0.6.2] - 2026-09-26
|
|
70
|
+
|
|
71
|
+
### Changed
|
|
72
|
+
|
|
73
|
+
- El comando de release (`pnpm create-version`, alias `pnpm cv`) toma las notas del bloque `[Unreleased]` del CHANGELOG, les asigna la versión y la fecha, y pide a Codex que lo complete cuando está vacío.
|
|
74
|
+
- Las cajas del comando de release ajustan el texto largo en varias líneas en lugar de cortarlo.
|
|
75
|
+
- Un release interrumpido reusa automáticamente el artefacto ya preparado cuando es posterior al último cambio de código.
|
|
76
|
+
|
|
77
|
+
### Removed
|
|
78
|
+
|
|
79
|
+
- La opción `--notes` y las preguntas sobre las notas del CHANGELOG y sobre reusar el artefacto preparado.
|
|
80
|
+
|
|
81
|
+
## 0.6.1 - 2026-09-26
|
|
82
|
+
|
|
83
|
+
- Actualiza pnpm a 12.6.0 y next a 16.3.6
|
|
84
|
+
- Add terminal UI for interactive prompts and spinners
|
|
85
|
+
- Update release banner and icons for improved visibility
|
|
86
|
+
- Remove create-version script
|
|
87
|
+
- Update release command to create-version and improve documentation
|
|
88
|
+
|
|
89
|
+
## 0.6.0 - 2026-09-23
|
|
90
|
+
|
|
91
|
+
- Actualiza el paquete a la versión 0.6.0.
|
|
92
|
+
|
|
93
|
+
## 0.5.6 - 2026-09-09
|
|
94
|
+
|
|
95
|
+
- Actualiza el paquete a la versión 0.5.6.
|
|
96
|
+
|
|
97
|
+
## 0.5.5 - 2026-09-09
|
|
98
|
+
|
|
99
|
+
- Actualiza el paquete a la versión 0.5.5.
|
|
100
|
+
|
|
101
|
+
## 0.5.4 - 2026-09-09
|
|
102
|
+
|
|
103
|
+
- Actualiza el paquete a la versión 0.5.4.
|
|
104
|
+
|
|
105
|
+
## 0.5.3 - 2026-09-09
|
|
106
|
+
|
|
107
|
+
- Actualiza el paquete a la versión 0.5.3.
|
|
108
|
+
|
|
109
|
+
## 0.5.2 - 2026-09-09
|
|
110
|
+
|
|
111
|
+
- Actualiza el paquete a la versión 0.5.2.
|
|
112
|
+
|
|
113
|
+
## 0.5.1 - 2026-09-08
|
|
114
|
+
|
|
115
|
+
- Actualiza el paquete a la versión 0.5.1.
|
|
116
|
+
|
|
117
|
+
## 0.5.0 - 2026-09-08
|
|
118
|
+
|
|
119
|
+
- Actualiza el paquete a la versión 0.5.0.
|
|
120
|
+
|
|
121
|
+
## 0.4.2 - 2026-09-08
|
|
122
|
+
|
|
123
|
+
- Actualiza el paquete a la versión 0.4.2.
|
|
124
|
+
|
|
125
|
+
## 0.4.1 - 2026-09-08
|
|
126
|
+
|
|
127
|
+
- Actualiza el paquete a la versión 0.4.1.
|
|
128
|
+
|
|
129
|
+
## 0.4.0 - 2026-09-08
|
|
130
|
+
|
|
131
|
+
- Distribuye los providers nativo, Next y TanStack con tema compartido, navegación e imágenes adaptadas al framework.
|
|
132
|
+
- Incluye CSS precompilado, tema y fuentes; los consumidores sólo importan `beez-ui/styles.css`, sin configurar Tailwind.
|
|
133
|
+
- Valida el tarball sin compiladores CSS y las integraciones en Chromium y WebKit.
|
|
134
|
+
|
|
135
|
+
## 0.3.1 - 2026-09-08
|
|
136
|
+
|
|
137
|
+
- Publica CSS precompilado para que los estilos funcionen sin Tailwind ni detección de clases en el consumidor.
|
|
138
|
+
- Conserva el tema, las fuentes y las utilidades compartidas mediante `beez-ui/styles.css`.
|
|
139
|
+
- Verifica estilos computados del tarball servido por HTTP sin procesadores CSS en Chromium y WebKit.
|
|
140
|
+
|
|
141
|
+
## 0.2.0 - 2026-09-08
|
|
142
|
+
|
|
143
|
+
- Unifica el nombre `BeezUIProvider` en los entrypoints nativo, Next y TanStack; reemplaza `NextBeezUIProvider`.
|
|
144
|
+
- Comparte el tema mediante `next-themes`, `themeOptions` y `useTheme` en todos los providers.
|
|
145
|
+
- Restaura `Link` desde la raíz con navegación por adaptadores y prefetch desactivado por defecto.
|
|
146
|
+
- Integra Unpic para imágenes nativas y de TanStack, y conserva Next Image en el provider de Next.
|
|
147
|
+
- Separa los tipos de tests y valida navegación, imágenes y tema en Chromium y WebKit.
|
|
148
|
+
|
|
149
|
+
## 0.1.1 - 2026-09-08
|
|
150
|
+
|
|
151
|
+
- Publica JavaScript ESM y declaraciones TypeScript en `dist`.
|
|
152
|
+
- Conserva los componentes agrupados y el tema de LaTribu.
|
|
153
|
+
- Mantiene visible el área del avatar durante la carga diferida para permitir que el navegador solicite la imagen.
|
|
154
|
+
- Agrega `BeezUIProvider` para adaptadores nativos o propios y `NextBeezUIProvider` como integración opcional.
|
|
155
|
+
- Incorpora preparación de releases con checks, control del contenido del paquete y checksum SHA-256.
|
|
156
|
+
- Documenta la autenticación con `NPM_TOKEN` y la publicación del artefacto validado.
|
|
157
|
+
|
|
158
|
+
## 0.1.0 - 2026-09-08
|
|
159
|
+
|
|
160
|
+
- Centraliza los componentes de LaTribu y agenda-mensual con su tema, fuentes y pruebas.
|
package/README.md
CHANGED
|
@@ -240,44 +240,34 @@ pnpm create-version --dry-run # solo muestra el diagnóstico y el
|
|
|
240
240
|
pnpm cv # alias de pnpm create-version
|
|
241
241
|
```
|
|
242
242
|
|
|
243
|
-
El comando
|
|
243
|
+
El comando es el motor compartido de los proyectos Beez, `beez-rp create-version` (devDependency `beez-rp`). Su funcionamiento general (diagnóstico, bloqueos, reanudación, Codex, versiones permitidas) está documentado en el README de [beez-rp](https://github.com/guidomodarelli/beez-rp#create-version). Lo propio de beez-ui vive en `beez-rp.config.js`: la audiencia del CHANGELOG, la descripción de cada tipo de versión, el hook `prepare` de `scripts/release-hooks.js` y la publicación en npm del tarball preparado (`publish: "npm"` + `artifact`).
|
|
244
244
|
|
|
245
|
-
|
|
246
|
-
- **Release a medio terminar**: si `package.json` tiene una versión que npm todavía no tiene, completa solo lo que falta: si `package.json` y `CHANGELOG.md` quedaron sin commitear los commitea primero; después prepara el artefacto (reusa automáticamente el ya preparado cuando es posterior al último cambio de código, y `release:publish` lo vuelve a verificar), pushea el commit de release si todavía no está en origin y publica (la confirmación del inicio cubre la publicación). Nunca vuelve a subir la versión.
|
|
247
|
-
- **Todo al día**: si la versión está publicada y no hay commits nuevos, no hace nada.
|
|
245
|
+
Los releases salen sólo desde `main`, limpio y al día con origin (sólo `CHANGELOG.md` puede quedar sin commitear). En otra rama explica qué falta: pushear, abrir o mergear el PR. El último release es el último commit de `origin/main` que cambió el `version` de `package.json`, así que reconoce tanto los commits `X.Y.Z` como los anteriores `chore(release): prepara la versión X.Y.Z`.
|
|
248
246
|
|
|
249
|
-
|
|
247
|
+
### Flujo validado de un release nuevo
|
|
250
248
|
|
|
251
|
-
|
|
249
|
+
1. Actualiza `main` con fast-forward si está atrás.
|
|
250
|
+
2. Si `## [Unreleased]` está vacío, Codex lo completa desde los commits sin publicar; si no puede, el release se corta.
|
|
251
|
+
3. Pide la versión (sugiere `patch`, `minor` o `major` según los commits), renombra `## [Unreleased]` a `## [X.Y.Z] - AAAA-MM-DD` dejando un `[Unreleased]` vacío arriba y crea el commit `X.Y.Z` con `package.json` y `CHANGELOG.md` y el tag anotado `vX.Y.Z`, antes de las validaciones largas.
|
|
252
|
+
4. `prepare` (`scripts/release-hooks.js`): reusa el tarball ya preparado para esa versión si es posterior al último cambio de código (el commit de versión no cuenta); si no, ejecuta `pnpm release:prepare` sobre el commit de versión: instalación congelada, tests sin React Compiler, build optimizado, lint, typechecks, tests unitarios y pruebas de navegador, y genera el tarball verificado con `npm pack --ignore-scripts` (npm y no pnpm, para que sea reproducible) en `releases/<version>-<sha256>/beez-ui-<version>.tgz`.
|
|
253
|
+
5. Sube `main` y el tag `vX.Y.Z` a origin con un único `git push --atomic`.
|
|
254
|
+
6. Publicación: beez-rp exige que el commit de versión siga sin cambios, toma `releases/<version>-<sha256>/beez-ui-<version>.tgz`, verifica el SHA-256 de su ruta y compara su SHA-512 con el `integrity` de `npm pack --dry-run` sobre ese commit (`npm pack` es reproducible, así que coincidir prueba que es byte a byte lo que npm empaqueta) y recién ahí lo publica con acceso público y etiqueta `latest`. Además, `prepublishOnly` ejecuta `beez-rp guard-publish`, que corta un `pnpm publish` manual (o yarn/bun): se publica sólo con `pnpm create-version`, que usa npm.
|
|
252
255
|
|
|
253
|
-
|
|
256
|
+
Si algo falla después del commit de versión, basta con volver a ejecutar `pnpm create-version`: si `HEAD` es el commit `X.Y.Z` y npm todavía no tiene esa versión, retoma sólo la preparación (reusando el tarball si sigue vigente), el push si falta y la publicación. Nunca vuelve a subir la versión.
|
|
254
257
|
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
### Flujo validado de un release nuevo
|
|
258
|
+
La publicación usa el cliente oficial de npm y hereda la terminal, así que admite su verificación interactiva en el navegador/2FA: hay que ejecutar el release desde una terminal interactiva cuando la cuenta la requiera. Instalación, build y checks siguen usando pnpm 12. `NPM_TOKEN` se toma del entorno o del `.env` ignorado y no se imprime; el repositorio no tiene `.npmrc`: beez-rp crea un config temporal de npm fuera del repositorio que sólo referencia `${NPM_TOKEN}` (npm lo expande desde el entorno; el token no se escribe en disco ni en la línea de comandos), lo pasa con `--userconfig` y lo borra al terminar, también si la publicación falla.
|
|
258
259
|
|
|
259
|
-
|
|
260
|
-
2. Commitea en el momento `package.json` y `CHANGELOG.md` (sólo esos dos archivos, conservando otros archivos staged), antes de las validaciones largas: si algo se corta después, queda un commit local y nunca metadata suelta.
|
|
261
|
-
3. 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.
|
|
262
|
-
4. Genera el tarball en `releases/<version>-<sha256>/beez-ui-<version>.tgz` y valida su contenido, exports e integridad.
|
|
263
|
-
5. Pushea el commit de release a la rama upstream configurada, sólo si sigue siendo el commit actual.
|
|
264
|
-
6. Publica ese mismo artefacto en npm con acceso público y etiqueta `latest`.
|
|
265
|
-
|
|
266
|
-
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 y no se imprime. El repositorio no tiene `.npmrc`: pnpm 12 ignora las variables de entorno en credenciales controladas por el repositorio y avisaba en cada comando. `release:publish` crea un config temporal de npm fuera del repositorio que sólo referencia `${NPM_TOKEN}` (npm lo expande desde el entorno; el token no se escribe en disco ni en la línea de comandos), lo pasa con `--userconfig` y lo borra al terminar, también si la publicación falla (`scripts/npm-auth.js`).
|
|
260
|
+
### CHANGELOG
|
|
267
261
|
|
|
268
|
-
|
|
262
|
+
`CHANGELOG.md` sigue [Keep a Changelog](https://keepachangelog.com/es-ES/1.1.0/). Cada cambio agrega sus entradas en el bloque `## [Unreleased]`, agrupadas en `### Added`, `### Changed`, `### Deprecated`, `### Removed`, `### Fixed` y `### Security` (solo las que apliquen). Nunca se escriben la versión ni la fecha a mano: `pnpm create-version` las agrega al publicar. Las versiones anteriores a este formato (`## 0.6.1 - 2026-09-26`) siguen siendo válidas. La regla completa está en `AGENTS.md`.
|
|
269
263
|
|
|
270
|
-
|
|
264
|
+
Para validar y empaquetar la versión actual sin publicarla:
|
|
271
265
|
|
|
272
266
|
```sh
|
|
273
|
-
# Sólo validar y empaquetar la versión actual, sin publicarla.
|
|
274
267
|
pnpm release:prepare
|
|
275
|
-
|
|
276
|
-
# Publicar un artefacto ya preparado.
|
|
277
|
-
pnpm release:publish releases/<version>-<sha256>/beez-ui-<version>.tgz
|
|
278
268
|
```
|
|
279
269
|
|
|
280
|
-
|
|
270
|
+
El paquete excluye fuentes privadas, tests, scripts, `.env` y `.npmrc`; incluye JavaScript, declaraciones, CSS, fuentes tipográficas y licencias. Conserva releases anteriores.
|
|
281
271
|
|
|
282
272
|
`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.
|
|
283
273
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "beez-ui",
|
|
3
|
-
"version": "0.8.
|
|
3
|
+
"version": "0.8.1",
|
|
4
4
|
"description": "Shared UI components with the customizations extracted from TuTribu.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"sideEffects": [
|
|
@@ -451,6 +451,26 @@
|
|
|
451
451
|
"type": "git",
|
|
452
452
|
"url": "git+https://github.com/guidomodarelli/beez-ui.git"
|
|
453
453
|
},
|
|
454
|
+
"scripts": {
|
|
455
|
+
"typecheck": "pnpm build && pnpm typecheck:src && pnpm typecheck:tests && pnpm typecheck:stories",
|
|
456
|
+
"typecheck:src": "tsc --noEmit -p tsconfig.json",
|
|
457
|
+
"typecheck:tests": "tsc --noEmit -p tests/tsconfig.json",
|
|
458
|
+
"test": "pnpm build && vitest run",
|
|
459
|
+
"test:uncompiled": "pnpm build --no-react-compiler && vitest run",
|
|
460
|
+
"check": "pnpm build && pnpm lint && pnpm typecheck:src && pnpm typecheck:tests && pnpm typecheck:stories && pnpm exec vitest run",
|
|
461
|
+
"lint": "eslint .",
|
|
462
|
+
"test:browser": "pnpm build && playwright test",
|
|
463
|
+
"build": "node scripts/build.js",
|
|
464
|
+
"prepack": "pnpm build",
|
|
465
|
+
"prepublishOnly": "beez-rp guard-publish",
|
|
466
|
+
"create-version": "beez-rp create-version",
|
|
467
|
+
"cv": "beez-rp create-version",
|
|
468
|
+
"release:prepare": "node scripts/prepare-release.js",
|
|
469
|
+
"storybook": "pnpm build && storybook dev -p 6006 --no-open",
|
|
470
|
+
"build-storybook": "pnpm build && storybook build",
|
|
471
|
+
"typecheck:stories": "tsc --noEmit -p stories/tsconfig.json",
|
|
472
|
+
"test:storybook": "pnpm build-storybook && playwright test --config playwright.storybook.config.ts"
|
|
473
|
+
},
|
|
454
474
|
"peerDependencies": {
|
|
455
475
|
"@tanstack/react-router": "^1.170.33",
|
|
456
476
|
"emoji-picker-react": "^4.19.1",
|
|
@@ -488,9 +508,9 @@
|
|
|
488
508
|
"@types/node": "^25.9.5",
|
|
489
509
|
"@types/react": "^19.3.0",
|
|
490
510
|
"@types/react-dom": "^19.3.0",
|
|
491
|
-
"@types/semver": "^7.8.0",
|
|
492
511
|
"@typescript/native": "npm:typescript@^7.0.2",
|
|
493
512
|
"@vitejs/plugin-react": "^6.1.1",
|
|
513
|
+
"beez-rp": "^0.3.0",
|
|
494
514
|
"emoji-picker-react": "^4.22.2",
|
|
495
515
|
"eslint": "^10.10.0",
|
|
496
516
|
"eslint-plugin-react-hooks": "^7.1.1",
|
|
@@ -501,7 +521,6 @@
|
|
|
501
521
|
"oxc-transform-react": "^0.149.0",
|
|
502
522
|
"react": "^19.3.0",
|
|
503
523
|
"react-dom": "^19.3.0",
|
|
504
|
-
"semver": "^7.8.5",
|
|
505
524
|
"shadcn": "^4.21.0",
|
|
506
525
|
"storybook": "^10.6.0",
|
|
507
526
|
"tailwindcss": "^4.3.3",
|
|
@@ -511,6 +530,7 @@
|
|
|
511
530
|
"vite": "^8.2.2",
|
|
512
531
|
"vitest": "^5.0.0"
|
|
513
532
|
},
|
|
533
|
+
"packageManager": "pnpm@12.6.0",
|
|
514
534
|
"engines": {
|
|
515
535
|
"node": ">=22",
|
|
516
536
|
"pnpm": ">=12 <13"
|
|
@@ -537,24 +557,5 @@
|
|
|
537
557
|
"@tanstack/react-router": {
|
|
538
558
|
"optional": true
|
|
539
559
|
}
|
|
540
|
-
},
|
|
541
|
-
"scripts": {
|
|
542
|
-
"typecheck": "pnpm build && pnpm typecheck:src && pnpm typecheck:tests && pnpm typecheck:stories",
|
|
543
|
-
"typecheck:src": "tsc --noEmit -p tsconfig.json",
|
|
544
|
-
"typecheck:tests": "tsc --noEmit -p tests/tsconfig.json",
|
|
545
|
-
"test": "pnpm build && vitest run",
|
|
546
|
-
"test:uncompiled": "pnpm build --no-react-compiler && vitest run",
|
|
547
|
-
"check": "pnpm build && pnpm lint && pnpm typecheck:src && pnpm typecheck:tests && pnpm typecheck:stories && pnpm exec vitest run",
|
|
548
|
-
"lint": "eslint .",
|
|
549
|
-
"test:browser": "pnpm build && playwright test",
|
|
550
|
-
"build": "node scripts/build.js",
|
|
551
|
-
"create-version": "node scripts/release.js",
|
|
552
|
-
"cv": "node scripts/release.js",
|
|
553
|
-
"release:prepare": "node scripts/prepare-release.js",
|
|
554
|
-
"release:publish": "node scripts/publish-release.js",
|
|
555
|
-
"storybook": "pnpm build && storybook dev -p 6006 --no-open",
|
|
556
|
-
"build-storybook": "pnpm build && storybook build",
|
|
557
|
-
"typecheck:stories": "tsc --noEmit -p stories/tsconfig.json",
|
|
558
|
-
"test:storybook": "pnpm build-storybook && playwright test --config playwright.storybook.config.ts"
|
|
559
560
|
}
|
|
560
|
-
}
|
|
561
|
+
}
|