beez-ui 0.5.4 → 0.5.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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # Cambios
2
2
 
3
+ ## 0.5.6 - 2026-09-09
4
+
5
+ - Actualiza el paquete a la versión 0.5.6.
6
+
7
+ ## 0.5.5 - 2026-09-09
8
+
9
+ - Actualiza el paquete a la versión 0.5.5.
10
+
3
11
  ## 0.5.4 - 2026-09-09
4
12
 
5
13
  - Actualiza el paquete a la versión 0.5.4.
@@ -16,47 +24,47 @@
16
24
 
17
25
  - Actualiza el paquete a la versión 0.5.1.
18
26
 
19
- ## 0.5.0 - 2026-09-08
20
-
21
- - Actualiza el paquete a la versión 0.5.0.
22
-
23
- ## 0.4.2 - 2026-09-08
24
-
25
- - Actualiza el paquete a la versión 0.4.2.
26
-
27
- ## 0.4.1 - 2026-09-08
28
-
29
- - Actualiza el paquete a la versión 0.4.1.
30
-
31
- ## 0.4.0 - 2026-09-08
32
-
33
- - Distribuye los providers nativo, Next y TanStack con tema compartido, navegación e imágenes adaptadas al framework.
34
- - Incluye CSS precompilado, tema y fuentes; los consumidores sólo importan `beez-ui/styles.css`, sin configurar Tailwind.
35
- - Valida el tarball sin compiladores CSS y las integraciones en Chromium y WebKit.
36
-
37
- ## 0.3.1 - 2026-09-08
38
-
39
- - Publica CSS precompilado para que los estilos funcionen sin Tailwind ni detección de clases en el consumidor.
40
- - Conserva el tema, las fuentes y las utilidades compartidas mediante `beez-ui/styles.css`.
41
- - Verifica estilos computados del tarball servido por HTTP sin procesadores CSS en Chromium y WebKit.
42
-
43
- ## 0.2.0 - 2026-09-08
44
-
45
- - Unifica el nombre `BeezUIProvider` en los entrypoints nativo, Next y TanStack; reemplaza `NextBeezUIProvider`.
46
- - Comparte el tema mediante `next-themes`, `themeOptions` y `useTheme` en todos los providers.
47
- - Restaura `Link` desde la raíz con navegación por adaptadores y prefetch desactivado por defecto.
48
- - Integra Unpic para imágenes nativas y de TanStack, y conserva Next Image en el provider de Next.
49
- - Separa los tipos de tests y valida navegación, imágenes y tema en Chromium y WebKit.
50
-
51
- ## 0.1.1 - 2026-09-08
52
-
53
- - Publica JavaScript ESM y declaraciones TypeScript en `dist`.
54
- - Conserva los componentes agrupados y el tema de LaTribu.
55
- - Mantiene visible el área del avatar durante la carga diferida para permitir que el navegador solicite la imagen.
56
- - Agrega `BeezUIProvider` para adaptadores nativos o propios y `NextBeezUIProvider` como integración opcional.
57
- - Incorpora preparación de releases con checks, control del contenido del paquete y checksum SHA-256.
58
- - Documenta la autenticación con `NPM_TOKEN` y la publicación del artefacto validado.
59
-
60
- ## 0.1.0 - 2026-09-08
61
-
62
- - Centraliza los componentes de LaTribu y agenda-mensual con su tema, fuentes y pruebas.
27
+ ## 0.5.0 - 2026-09-08
28
+
29
+ - Actualiza el paquete a la versión 0.5.0.
30
+
31
+ ## 0.4.2 - 2026-09-08
32
+
33
+ - Actualiza el paquete a la versión 0.4.2.
34
+
35
+ ## 0.4.1 - 2026-09-08
36
+
37
+ - Actualiza el paquete a la versión 0.4.1.
38
+
39
+ ## 0.4.0 - 2026-09-08
40
+
41
+ - Distribuye los providers nativo, Next y TanStack con tema compartido, navegación e imágenes adaptadas al framework.
42
+ - Incluye CSS precompilado, tema y fuentes; los consumidores sólo importan `beez-ui/styles.css`, sin configurar Tailwind.
43
+ - Valida el tarball sin compiladores CSS y las integraciones en Chromium y WebKit.
44
+
45
+ ## 0.3.1 - 2026-09-08
46
+
47
+ - Publica CSS precompilado para que los estilos funcionen sin Tailwind ni detección de clases en el consumidor.
48
+ - Conserva el tema, las fuentes y las utilidades compartidas mediante `beez-ui/styles.css`.
49
+ - Verifica estilos computados del tarball servido por HTTP sin procesadores CSS en Chromium y WebKit.
50
+
51
+ ## 0.2.0 - 2026-09-08
52
+
53
+ - Unifica el nombre `BeezUIProvider` en los entrypoints nativo, Next y TanStack; reemplaza `NextBeezUIProvider`.
54
+ - Comparte el tema mediante `next-themes`, `themeOptions` y `useTheme` en todos los providers.
55
+ - Restaura `Link` desde la raíz con navegación por adaptadores y prefetch desactivado por defecto.
56
+ - Integra Unpic para imágenes nativas y de TanStack, y conserva Next Image en el provider de Next.
57
+ - Separa los tipos de tests y valida navegación, imágenes y tema en Chromium y WebKit.
58
+
59
+ ## 0.1.1 - 2026-09-08
60
+
61
+ - Publica JavaScript ESM y declaraciones TypeScript en `dist`.
62
+ - Conserva los componentes agrupados y el tema de LaTribu.
63
+ - Mantiene visible el área del avatar durante la carga diferida para permitir que el navegador solicite la imagen.
64
+ - Agrega `BeezUIProvider` para adaptadores nativos o propios y `NextBeezUIProvider` como integración opcional.
65
+ - Incorpora preparación de releases con checks, control del contenido del paquete y checksum SHA-256.
66
+ - Documenta la autenticación con `NPM_TOKEN` y la publicación del artefacto validado.
67
+
68
+ ## 0.1.0 - 2026-09-08
69
+
70
+ - Centraliza los componentes de LaTribu y agenda-mensual con su tema, fuentes y pruebas.
package/README.md CHANGED
@@ -129,7 +129,9 @@ Next y TanStack Router son peers opcionales aislados en sus entrypoints. El prov
129
129
 
130
130
  ## Componentes incorporados desde agenda-mensual
131
131
 
132
- `Alert`, `AnimatedThemeToggler`, `Calendar`, `DataTable`, `FilterQueryBar`, `Form`, `Highlighter`, `InputGroup`, `Label`, `RadioGroup`, `TypingAnimation` y `ThemedToaster`, junto con sus subcomponentes, tipos y gramática de filtros.
132
+ `Alert`, `AnimatedThemeToggler`, `Calendar`, `DataTable`, `FilterQueryBar`, `Form`, `Highlighter`, `InputGroup`, `Label`, `RadioGroup`, `TypingAnimation` y `ThemedToaster`, junto con sus subcomponentes, tipos y gramática de filtros.
133
+
134
+ `FilterQueryBar` mantiene el foco en el input mientras se recorren las sugerencias con el puntero o las flechas. Enter aplica la opción activa; interactuar con el input no cierra la lista.
133
135
 
134
136
  La tabla conserva agrupación estable, columnas configurables, memoización, exclusiones y sincronización de qualifiers por identificadores. La barra conserva navegación por teclado, autocompletado y filtros de texto, rangos, fechas, presencia y carpetas. `Calendar` usa español por defecto y acepta otra locale. Los textos y configuraciones de filtros se pueden personalizar por props.
135
137
 
@@ -317,7 +317,7 @@ function renderHighlightedQuery(value, ranges) {
317
317
  * La navegación es virtual: el foco real nunca abandona el input.
318
318
  */
319
319
  export function FilterQueryBar(t0) {
320
- const $ = _c(97);
320
+ const $ = _c(98);
321
321
  const { configs, value, onValueChange, placeholder: t1, ariaLabel: t2, className, onFocusChange, trailingAction } = t0;
322
322
  const placeholder = t1 === undefined ? DEFAULT_PLACEHOLDER : t1;
323
323
  const ariaLabel = t2 === undefined ? DEFAULT_ARIA_LABEL : t2;
@@ -754,10 +754,21 @@ export function FilterQueryBar(t0) {
754
754
  } else {
755
755
  t33 = $[76];
756
756
  }
757
- const t34 = suggestions.some(_temp3) ? VALUE_GROUP_LABEL : KEY_GROUP_LABEL;
758
- let t35;
759
- if ($[77] !== activeIndex || $[78] !== applySuggestion || $[79] !== instanceId || $[80] !== suggestions) {
760
- t35 = suggestions.map((suggestion_1, index) => {
757
+ let t34;
758
+ if ($[77] === Symbol.for("react.memo_cache_sentinel")) {
759
+ t34 = (event_2) => {
760
+ if (event_2.target === inputRef.current) {
761
+ event_2.preventDefault();
762
+ }
763
+ };
764
+ $[77] = t34;
765
+ } else {
766
+ t34 = $[77];
767
+ }
768
+ const t35 = suggestions.some(_temp3) ? VALUE_GROUP_LABEL : KEY_GROUP_LABEL;
769
+ let t36;
770
+ if ($[78] !== activeIndex || $[79] !== applySuggestion || $[80] !== instanceId || $[81] !== suggestions) {
771
+ t36 = suggestions.map((suggestion_1, index) => {
761
772
  const SuggestionIcon = suggestion_1.icon;
762
773
  const showSeparator = index > 0 && suggestions[index - 1].group !== suggestion_1.group;
763
774
  return /* @__PURE__ */ _jsxs(React.Fragment, { children: [showSeparator ? /* @__PURE__ */ _jsx("li", {
@@ -768,8 +779,9 @@ export function FilterQueryBar(t0) {
768
779
  "aria-selected": index === activeIndex,
769
780
  className: cn("flex cursor-pointer items-center gap-2 rounded-md px-2 py-1.5 text-sm", index === activeIndex ? "bg-accent text-accent-foreground" : "text-foreground"),
770
781
  id: `${instanceId}-${suggestion_1.id}`,
771
- onMouseDown: (event_3) => {
772
- event_3.preventDefault();
782
+ onPointerMove: () => setActiveIndex(index),
783
+ onMouseDown: (event_4) => {
784
+ event_4.preventDefault();
773
785
  applySuggestion(suggestion_1);
774
786
  },
775
787
  role: "option",
@@ -782,85 +794,86 @@ export function FilterQueryBar(t0) {
782
794
  })]
783
795
  })] }, suggestion_1.id);
784
796
  });
785
- $[77] = activeIndex;
786
- $[78] = applySuggestion;
787
- $[79] = instanceId;
788
- $[80] = suggestions;
789
- $[81] = t35;
797
+ $[78] = activeIndex;
798
+ $[79] = applySuggestion;
799
+ $[80] = instanceId;
800
+ $[81] = suggestions;
801
+ $[82] = t36;
790
802
  } else {
791
- t35 = $[81];
803
+ t36 = $[82];
792
804
  }
793
- let t36;
794
- if ($[82] !== listboxId || $[83] !== t34 || $[84] !== t35) {
795
- t36 = /* @__PURE__ */ _jsx(PopoverContent, {
805
+ let t37;
806
+ if ($[83] !== listboxId || $[84] !== t35 || $[85] !== t36) {
807
+ t37 = /* @__PURE__ */ _jsx(PopoverContent, {
796
808
  align: "start",
797
809
  className: "w-[250px] max-h-[280px] gap-0 overflow-y-auto p-1",
798
810
  onCloseAutoFocus: _temp,
811
+ onInteractOutside: t34,
799
812
  onOpenAutoFocus: _temp2,
800
813
  children: /* @__PURE__ */ _jsx("ul", {
801
- "aria-label": t34,
814
+ "aria-label": t35,
802
815
  className: "grid gap-0.5",
803
816
  id: listboxId,
804
817
  role: "listbox",
805
- children: t35
818
+ children: t36
806
819
  })
807
820
  });
808
- $[82] = listboxId;
809
- $[83] = t34;
821
+ $[83] = listboxId;
810
822
  $[84] = t35;
811
823
  $[85] = t36;
824
+ $[86] = t37;
812
825
  } else {
813
- t36 = $[85];
826
+ t37 = $[86];
814
827
  }
815
- let t37;
816
- if ($[86] !== isPopoverOpen || $[87] !== t33 || $[88] !== t36) {
817
- t37 = /* @__PURE__ */ _jsxs(Popover, {
828
+ let t38;
829
+ if ($[87] !== isPopoverOpen || $[88] !== t33 || $[89] !== t37) {
830
+ t38 = /* @__PURE__ */ _jsxs(Popover, {
818
831
  onOpenChange: setIsOpen,
819
832
  open: isPopoverOpen,
820
- children: [t33, t36]
833
+ children: [t33, t37]
821
834
  });
822
- $[86] = isPopoverOpen;
823
- $[87] = t33;
824
- $[88] = t36;
835
+ $[87] = isPopoverOpen;
836
+ $[88] = t33;
825
837
  $[89] = t37;
838
+ $[90] = t38;
826
839
  } else {
827
- t37 = $[89];
840
+ t38 = $[90];
828
841
  }
829
- const t38 = isPopoverOpen ? `${suggestions.length} sugerencias disponibles` : "";
830
- const t39 = invalidTokenCount > 0 ? ` ${invalidTokenCount} filtros no aplicados` : "";
831
- let t40;
832
- if ($[90] !== t38 || $[91] !== t39) {
833
- t40 = /* @__PURE__ */ _jsxs("span", {
842
+ const t39 = isPopoverOpen ? `${suggestions.length} sugerencias disponibles` : "";
843
+ const t40 = invalidTokenCount > 0 ? ` ${invalidTokenCount} filtros no aplicados` : "";
844
+ let t41;
845
+ if ($[91] !== t39 || $[92] !== t40) {
846
+ t41 = /* @__PURE__ */ _jsxs("span", {
834
847
  "aria-live": "polite",
835
848
  className: "sr-only",
836
- children: [t38, t39]
849
+ children: [t39, t40]
837
850
  });
838
- $[90] = t38;
839
851
  $[91] = t39;
840
852
  $[92] = t40;
853
+ $[93] = t41;
841
854
  } else {
842
- t40 = $[92];
855
+ t41 = $[93];
843
856
  }
844
- let t41;
845
- if ($[93] !== t17 || $[94] !== t37 || $[95] !== t40) {
846
- t41 = /* @__PURE__ */ _jsxs("div", {
857
+ let t42;
858
+ if ($[94] !== t17 || $[95] !== t38 || $[96] !== t41) {
859
+ t42 = /* @__PURE__ */ _jsxs("div", {
847
860
  className: t17,
848
- children: [t37, t40]
861
+ children: [t38, t41]
849
862
  });
850
- $[93] = t17;
851
- $[94] = t37;
852
- $[95] = t40;
863
+ $[94] = t17;
864
+ $[95] = t38;
853
865
  $[96] = t41;
866
+ $[97] = t42;
854
867
  } else {
855
- t41 = $[96];
868
+ t42 = $[97];
856
869
  }
857
- return t41;
870
+ return t42;
858
871
  }
859
872
  function _temp3(suggestion_0) {
860
873
  return suggestion_0.group === "value";
861
874
  }
862
- function _temp2(event_2) {
863
- return event_2.preventDefault();
875
+ function _temp2(event_3) {
876
+ return event_3.preventDefault();
864
877
  }
865
878
  function _temp(event_1) {
866
879
  return event_1.preventDefault();
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "beez-ui",
3
- "version": "0.5.4",
3
+ "version": "0.5.6",
4
4
  "description": "Shared UI components with the customizations extracted from TuTribu.",
5
5
  "type": "module",
6
6
  "sideEffects": [
@@ -280,8 +280,8 @@
280
280
  "@testing-library/react": "^16.3.3",
281
281
  "@testing-library/user-event": "^14.6.7",
282
282
  "@types/node": "^25.9.5",
283
- "@types/react": "^19.2.18",
284
- "@types/react-dom": "^19.2.7",
283
+ "@types/react": "^19.3.0",
284
+ "@types/react-dom": "^19.3.0",
285
285
  "@types/semver": "^7.8.0",
286
286
  "@typescript/native": "npm:typescript@^7.0.2",
287
287
  "@vitejs/plugin-react": "^6.1.1",
@@ -292,8 +292,8 @@
292
292
  "next": "^16.3.4",
293
293
  "oxc-parser": "^0.149.0",
294
294
  "oxc-transform-react": "^0.149.0",
295
- "react": "^19.2.8",
296
- "react-dom": "^19.2.8",
295
+ "react": "^19.3.0",
296
+ "react-dom": "^19.3.0",
297
297
  "semver": "^7.8.5",
298
298
  "shadcn": "^4.21.0",
299
299
  "storybook": "^10.6.0",