@beweco/aurora-ui 0.6.76-qa.105 → 0.6.76-qa.109

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
@@ -7893,6 +7893,28 @@ var RangeFilter = function (_a) {
7893
7893
  }, 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]) })] })] })] }));
7894
7894
  };
7895
7895
 
7896
+ /**
7897
+ * Opciones visibles en el panel del multiselect mientras se escribe en su
7898
+ * buscador.
7899
+ *
7900
+ * - La comparación ignora tildes y mayúsculas (`matchesSearchTerm`): teclear
7901
+ * "peluqueria" encuentra "Peluquería". El `includes` crudo anterior exigía
7902
+ * escribir la tilde, así que el panel mostraba el mensaje de sin
7903
+ * coincidencias con la opción delante.
7904
+ * - Lo ya seleccionado se mantiene aunque no case con el término (regla previa,
7905
+ * conservada) para no esconder al usuario lo que acaba de marcar.
7906
+ */
7907
+ var filterMultiselectOptions = function (options, searchQuery, selectedValues) {
7908
+ var term = searchQuery.trim();
7909
+ if (!term) {
7910
+ return options;
7911
+ }
7912
+ return options.filter(function (option) {
7913
+ return selectedValues.includes(option.value) ||
7914
+ matchesSearchTerm([option.label, option.value], term);
7915
+ });
7916
+ };
7917
+
7896
7918
  // =========================================================================
7897
7919
  // BASE FILTER SECTION COMPONENT
7898
7920
  // =========================================================================
@@ -8055,15 +8077,7 @@ var MultiSelectFilter = function (_a) {
8055
8077
  if (!searchable) {
8056
8078
  return filter.data;
8057
8079
  }
8058
- var q = searchQuery.trim().toLowerCase();
8059
- if (!q) {
8060
- return filter.data;
8061
- }
8062
- return filter.data.filter(function (item) {
8063
- return currentValues.includes(item.value) ||
8064
- item.label.toLowerCase().includes(q) ||
8065
- item.value.toLowerCase().includes(q);
8066
- });
8080
+ return filterMultiselectOptions(filter.data, searchQuery, currentValues);
8067
8081
  }, [filter.data, searchQuery, currentValues, searchable]);
8068
8082
  var syncPopoverWidthToTrigger = React.useCallback(function () {
8069
8083
  var _a;
package/dist/index.esm.js CHANGED
@@ -7894,6 +7894,28 @@ var RangeFilter = function (_a) {
7894
7894
  }, 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]) })] })] })] }));
7895
7895
  };
7896
7896
 
7897
+ /**
7898
+ * Opciones visibles en el panel del multiselect mientras se escribe en su
7899
+ * buscador.
7900
+ *
7901
+ * - La comparación ignora tildes y mayúsculas (`matchesSearchTerm`): teclear
7902
+ * "peluqueria" encuentra "Peluquería". El `includes` crudo anterior exigía
7903
+ * escribir la tilde, así que el panel mostraba el mensaje de sin
7904
+ * coincidencias con la opción delante.
7905
+ * - Lo ya seleccionado se mantiene aunque no case con el término (regla previa,
7906
+ * conservada) para no esconder al usuario lo que acaba de marcar.
7907
+ */
7908
+ var filterMultiselectOptions = function (options, searchQuery, selectedValues) {
7909
+ var term = searchQuery.trim();
7910
+ if (!term) {
7911
+ return options;
7912
+ }
7913
+ return options.filter(function (option) {
7914
+ return selectedValues.includes(option.value) ||
7915
+ matchesSearchTerm([option.label, option.value], term);
7916
+ });
7917
+ };
7918
+
7897
7919
  // =========================================================================
7898
7920
  // BASE FILTER SECTION COMPONENT
7899
7921
  // =========================================================================
@@ -8056,15 +8078,7 @@ var MultiSelectFilter = function (_a) {
8056
8078
  if (!searchable) {
8057
8079
  return filter.data;
8058
8080
  }
8059
- var q = searchQuery.trim().toLowerCase();
8060
- if (!q) {
8061
- return filter.data;
8062
- }
8063
- return filter.data.filter(function (item) {
8064
- return currentValues.includes(item.value) ||
8065
- item.label.toLowerCase().includes(q) ||
8066
- item.value.toLowerCase().includes(q);
8067
- });
8081
+ return filterMultiselectOptions(filter.data, searchQuery, currentValues);
8068
8082
  }, [filter.data, searchQuery, currentValues, searchable]);
8069
8083
  var syncPopoverWidthToTrigger = useCallback(function () {
8070
8084
  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.76-qa.105",
3
+ "version": "0.6.76-qa.109",
4
4
  "description": "Bewe Aurora UI Component Library",
5
5
  "main": "./dist/index.cjs.js",
6
6
  "module": "./dist/index.esm.js",