@beweco/aurora-ui 0.6.78 → 0.6.80

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/dist/index.cjs.js CHANGED
@@ -7885,6 +7885,28 @@ var RangeFilter = function (_a) {
7885
7885
  }, className: "w-full", isDisabled: false, showSteps: false, showOutline: false, showTooltip: false }, sliderProps)) }), jsxRuntime.jsxs("div", { className: "flex justify-between items-center text-sm", children: [jsxRuntime.jsxs("div", { className: "flex flex-col items-start", children: [jsxRuntime.jsx("span", { className: "text-xs text-default-500", children: t.minLabel }), jsxRuntime.jsx("span", { className: "font-medium text-default-700", children: formatValue(currentValue[0]) })] }), jsxRuntime.jsxs("div", { className: "flex flex-col items-end", children: [jsxRuntime.jsx("span", { className: "text-xs text-default-500", children: t.maxLabel }), jsxRuntime.jsx("span", { className: "font-medium text-default-700", children: formatValue(currentValue[1]) })] })] })] }));
7886
7886
  };
7887
7887
 
7888
+ /**
7889
+ * Opciones visibles en el panel del multiselect mientras se escribe en su
7890
+ * buscador.
7891
+ *
7892
+ * - La comparación ignora tildes y mayúsculas (`matchesSearchTerm`): teclear
7893
+ * "peluqueria" encuentra "Peluquería". El `includes` crudo anterior exigía
7894
+ * escribir la tilde, así que el panel mostraba el mensaje de sin
7895
+ * coincidencias con la opción delante.
7896
+ * - Lo ya seleccionado se mantiene aunque no case con el término (regla previa,
7897
+ * conservada) para no esconder al usuario lo que acaba de marcar.
7898
+ */
7899
+ var filterMultiselectOptions = function (options, searchQuery, selectedValues) {
7900
+ var term = searchQuery.trim();
7901
+ if (!term) {
7902
+ return options;
7903
+ }
7904
+ return options.filter(function (option) {
7905
+ return selectedValues.includes(option.value) ||
7906
+ matchesSearchTerm([option.label, option.value], term);
7907
+ });
7908
+ };
7909
+
7888
7910
  // =========================================================================
7889
7911
  // BASE FILTER SECTION COMPONENT
7890
7912
  // =========================================================================
@@ -8047,15 +8069,7 @@ var MultiSelectFilter = function (_a) {
8047
8069
  if (!searchable) {
8048
8070
  return filter.data;
8049
8071
  }
8050
- var q = searchQuery.trim().toLowerCase();
8051
- if (!q) {
8052
- return filter.data;
8053
- }
8054
- return filter.data.filter(function (item) {
8055
- return currentValues.includes(item.value) ||
8056
- item.label.toLowerCase().includes(q) ||
8057
- item.value.toLowerCase().includes(q);
8058
- });
8072
+ return filterMultiselectOptions(filter.data, searchQuery, currentValues);
8059
8073
  }, [filter.data, searchQuery, currentValues, searchable]);
8060
8074
  var syncPopoverWidthToTrigger = React.useCallback(function () {
8061
8075
  var _a;
package/dist/index.esm.js CHANGED
@@ -7886,6 +7886,28 @@ var RangeFilter = function (_a) {
7886
7886
  }, className: "w-full", isDisabled: false, showSteps: false, showOutline: false, showTooltip: false }, sliderProps)) }), jsxs("div", { className: "flex justify-between items-center text-sm", children: [jsxs("div", { className: "flex flex-col items-start", children: [jsx("span", { className: "text-xs text-default-500", children: t.minLabel }), jsx("span", { className: "font-medium text-default-700", children: formatValue(currentValue[0]) })] }), jsxs("div", { className: "flex flex-col items-end", children: [jsx("span", { className: "text-xs text-default-500", children: t.maxLabel }), jsx("span", { className: "font-medium text-default-700", children: formatValue(currentValue[1]) })] })] })] }));
7887
7887
  };
7888
7888
 
7889
+ /**
7890
+ * Opciones visibles en el panel del multiselect mientras se escribe en su
7891
+ * buscador.
7892
+ *
7893
+ * - La comparación ignora tildes y mayúsculas (`matchesSearchTerm`): teclear
7894
+ * "peluqueria" encuentra "Peluquería". El `includes` crudo anterior exigía
7895
+ * escribir la tilde, así que el panel mostraba el mensaje de sin
7896
+ * coincidencias con la opción delante.
7897
+ * - Lo ya seleccionado se mantiene aunque no case con el término (regla previa,
7898
+ * conservada) para no esconder al usuario lo que acaba de marcar.
7899
+ */
7900
+ var filterMultiselectOptions = function (options, searchQuery, selectedValues) {
7901
+ var term = searchQuery.trim();
7902
+ if (!term) {
7903
+ return options;
7904
+ }
7905
+ return options.filter(function (option) {
7906
+ return selectedValues.includes(option.value) ||
7907
+ matchesSearchTerm([option.label, option.value], term);
7908
+ });
7909
+ };
7910
+
7889
7911
  // =========================================================================
7890
7912
  // BASE FILTER SECTION COMPONENT
7891
7913
  // =========================================================================
@@ -8048,15 +8070,7 @@ var MultiSelectFilter = function (_a) {
8048
8070
  if (!searchable) {
8049
8071
  return filter.data;
8050
8072
  }
8051
- var q = searchQuery.trim().toLowerCase();
8052
- if (!q) {
8053
- return filter.data;
8054
- }
8055
- return filter.data.filter(function (item) {
8056
- return currentValues.includes(item.value) ||
8057
- item.label.toLowerCase().includes(q) ||
8058
- item.value.toLowerCase().includes(q);
8059
- });
8073
+ return filterMultiselectOptions(filter.data, searchQuery, currentValues);
8060
8074
  }, [filter.data, searchQuery, currentValues, searchable]);
8061
8075
  var syncPopoverWidthToTrigger = useCallback(function () {
8062
8076
  var _a;
@@ -1 +1 @@
1
- {"version":3,"file":"FilterSection.d.ts","sourceRoot":"","sources":["../../../../../src/components/drawer-filters/_internal/FilterSection.tsx"],"names":[],"mappings":"AAsBA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,OAAO,KAAK,EAIX,kBAAkB,EAWlB,MAAM,wBAAwB,CAAC;AAMhC,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAwOtD,CAAC"}
1
+ {"version":3,"file":"FilterSection.d.ts","sourceRoot":"","sources":["../../../../../src/components/drawer-filters/_internal/FilterSection.tsx"],"names":[],"mappings":"AAsBA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAS/B,OAAO,KAAK,EAIX,kBAAkB,EAWlB,MAAM,wBAAwB,CAAC;AAOhC,eAAO,MAAM,aAAa,EAAE,KAAK,CAAC,EAAE,CAAC,kBAAkB,CAwOtD,CAAC"}
@@ -0,0 +1,16 @@
1
+ import type { MultiSelectFilterData } from "../DrawerFilters.types";
2
+ type MultiSelectOption = MultiSelectFilterData["data"][number];
3
+ /**
4
+ * Opciones visibles en el panel del multiselect mientras se escribe en su
5
+ * buscador.
6
+ *
7
+ * - La comparación ignora tildes y mayúsculas (`matchesSearchTerm`): teclear
8
+ * "peluqueria" encuentra "Peluquería". El `includes` crudo anterior exigía
9
+ * escribir la tilde, así que el panel mostraba el mensaje de sin
10
+ * coincidencias con la opción delante.
11
+ * - Lo ya seleccionado se mantiene aunque no case con el término (regla previa,
12
+ * conservada) para no esconder al usuario lo que acaba de marcar.
13
+ */
14
+ export declare const filterMultiselectOptions: (options: MultiSelectOption[], searchQuery: string, selectedValues: string[]) => MultiSelectOption[];
15
+ export {};
16
+ //# sourceMappingURL=multiselect-search.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multiselect-search.d.ts","sourceRoot":"","sources":["../../../../../src/components/drawer-filters/_internal/multiselect-search.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAEpE,KAAK,iBAAiB,GAAG,qBAAqB,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC;AAE/D;;;;;;;;;;GAUG;AACH,eAAO,MAAM,wBAAwB,GACpC,SAAS,iBAAiB,EAAE,EAC5B,aAAa,MAAM,EACnB,gBAAgB,MAAM,EAAE,KACtB,iBAAiB,EAUnB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@beweco/aurora-ui",
3
- "version": "0.6.78",
3
+ "version": "0.6.80",
4
4
  "description": "Bewe Aurora UI Component Library",
5
5
  "main": "./dist/index.cjs.js",
6
6
  "module": "./dist/index.esm.js",