@beweco/aurora-ui 0.6.72 → 0.6.74

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
@@ -3280,6 +3280,27 @@ var KanbanComponent = function (_a) {
3280
3280
  var Kanban = React.memo(KanbanComponent);
3281
3281
  Kanban.displayName = "Kanban";
3282
3282
 
3283
+ /**
3284
+ * Icono canónico de Linda para CTAs inteligentes (TECH-2386).
3285
+ *
3286
+ * SVG empaquetado como import estático — NUNCA usar `@iconify/react` /
3287
+ * `IconComponent` con este glifo: los iconos de Iconify se resuelven en
3288
+ * runtime contra api.iconify.design y desaparecen (control entero invisible
3289
+ * si es `isIconOnly`) cuando ese host no responde — ver TECH-2103/2104.
3290
+ * Este componente no depende de red.
3291
+ *
3292
+ * Glifo: el mismo path ya usado en el producto para señalar acciones de
3293
+ * Linda (equivalente al icono "magic-stick" ya presente junto a
3294
+ * "Linda Recommended Actions"), resuelto para v1 en TECH-2374 sin
3295
+ * diseñadora asignada — funcional-first, sin inventar iconografía nueva.
3296
+ * Cuando exista un asset bespoke (identidad "droide retro-futurista"),
3297
+ * este es el único componente a sustituir — ver README.md.
3298
+ */
3299
+ var LindaIcon = function (_a) {
3300
+ var _b = _a.size, size = _b === void 0 ? 24 : _b, className = _a.className, nativeProps = __rest(_a, ["size", "className"]);
3301
+ return (jsxRuntime.jsx("svg", __assign({ xmlns: "http://www.w3.org/2000/svg", width: size, height: size, viewBox: "0 0 24 24", className: className, role: "img", "aria-hidden": "true" }, nativeProps, { children: jsxRuntime.jsxs("g", { fill: "currentColor", children: [jsxRuntime.jsx("path", { d: "M3.84453 3.84453C2.71849 4.97056 2.71849 6.79623 3.84453 7.92226L5.43227 9.51C5.44419 9.49622 5.45669 9.48276 5.46978 9.46967L9.46978 5.46967C9.48284 5.45662 9.49625 5.44415 9.50999 5.43226L7.92226 3.84453C6.79623 2.71849 4.97056 2.71849 3.84453 3.84453Z" }), jsxRuntime.jsx("path", { d: "M10.5679 6.49012C10.556 6.50386 10.5435 6.51728 10.5304 6.53033L6.53044 10.5303C6.51735 10.5434 6.5039 10.5559 6.49011 10.5678L16.0777 20.1555C17.2038 21.2815 19.0294 21.2815 20.1555 20.1555C21.2815 19.0294 21.2815 17.2038 20.1555 16.0777L10.5679 6.49012Z" }), jsxRuntime.jsx("path", { d: "M16.1 2.30719C16.261 1.8976 16.8385 1.8976 16.9994 2.30719L17.4298 3.40247C17.479 3.52752 17.5776 3.62651 17.7022 3.67583L18.7934 4.1078C19.2015 4.26934 19.2015 4.849 18.7934 5.01054L17.7022 5.44252C17.5776 5.49184 17.479 5.59082 17.4298 5.71587L16.9995 6.81115C16.8385 7.22074 16.261 7.22074 16.1 6.81116L15.6697 5.71587C15.6205 5.59082 15.5219 5.49184 15.3973 5.44252L14.3061 5.01054C13.898 4.849 13.898 4.26934 14.3061 4.1078L15.3973 3.67583C15.5219 3.62651 15.6205 3.52752 15.6697 3.40247L16.1 2.30719Z" }), jsxRuntime.jsx("path", { d: "M19.9672 9.12945C20.1281 8.71987 20.7057 8.71987 20.8666 9.12945L21.0235 9.5288C21.0727 9.65385 21.1713 9.75284 21.2959 9.80215L21.6937 9.95965C22.1018 10.1212 22.1018 10.7009 21.6937 10.8624L21.2959 11.0199C21.1713 11.0692 21.0727 11.1682 21.0235 11.2932L20.8666 11.6926C20.7057 12.1022 20.1281 12.1022 19.9672 11.6926L19.8103 11.2932C19.7611 11.1682 19.6625 11.0692 19.5379 11.0199L19.14 10.8624C18.732 10.7009 18.732 10.1212 19.14 9.95965L19.5379 9.80215C19.6625 9.75284 19.7611 9.65385 19.8103 9.5288L19.9672 9.12945Z" }), jsxRuntime.jsx("path", { d: "M5.1332 15.3072C5.29414 14.8976 5.87167 14.8976 6.03261 15.3072L6.18953 15.7065C6.23867 15.8316 6.33729 15.9306 6.46188 15.9799L6.85975 16.1374C7.26783 16.2989 7.26783 16.8786 6.85975 17.0401L6.46188 17.1976C6.33729 17.2469 6.23867 17.3459 6.18953 17.471L6.03261 17.8703C5.87167 18.2799 5.29414 18.2799 5.1332 17.8703L4.97628 17.471C4.92714 17.3459 4.82852 17.2469 4.70393 17.1976L4.30606 17.0401C3.89798 16.8786 3.89798 16.2989 4.30606 16.1374L4.70393 15.9799C4.82852 15.9306 4.92714 15.8316 4.97628 15.7065L5.1332 15.3072Z" })] }) })));
3302
+ };
3303
+
3283
3304
  var defaultTranslations$8 = {
3284
3305
  previewAlt: "Vista previa de imagen",
3285
3306
  removeButtonAriaLabel: "Eliminar imagen",
@@ -3993,6 +4014,96 @@ var MenuClaw = React.memo(function MenuClaw(_a) {
3993
4014
  }) }), helpSection ? (jsxRuntime.jsx("div", { className: "mt-auto flex flex-col items-center justify-center", children: jsxRuntime.jsx(react.Button, { fullWidth: true, className: "text-default-500 data-[hover=true]:text-default-600", startContent: jsxRuntime.jsx(IconComponent, { className: "text-default-500", icon: "solar:info-circle-line-duotone", size: "md" }), variant: "light", onPress: handleHelpClick, isIconOnly: isCollapsed, children: !isCollapsed ? (jsxRuntime.jsx("span", { className: "menu-claw-collapsible truncate", children: helpSection.title })) : null }) })) : null] }) })] }));
3994
4015
  });
3995
4016
 
4017
+ /**
4018
+ * Interacciones que un popover no-modal NO debe tratar como "clic fuera".
4019
+ *
4020
+ * El problema que resuelve: `useOverlay` de react-aria trata cualquier
4021
+ * pulsación fuera del popover como interacción externa y, cuando el popover es
4022
+ * el overlay visible más reciente, hace `stopPropagation()` + `preventDefault()`
4023
+ * sobre el `pointerdown` **y** sobre el `click`
4024
+ * (`@react-aria/overlays/useOverlay`). El evento nunca llega a su destino, así
4025
+ * que `usePress` no registra la pulsación y `onPress` no se dispara: el primer
4026
+ * clic solo cierra el desplegable.
4027
+ *
4028
+ * Para un clic en la página de fondo eso es lo correcto: descartar el
4029
+ * desplegable sin activar nada por debajo. Dentro del mismo diálogo no: ahí el
4030
+ * usuario está rellenando un formulario y espera que su clic llegue. Y como los
4031
+ * buscadores se reabren al recuperar el foco, el clic siguiente se volvía a
4032
+ * tragar — un callejón sin salida del que solo se salía vaciando el campo.
4033
+ *
4034
+ * La única palanca es `shouldCloseOnInteractOutside`: es el guardián de esos dos
4035
+ * `preventDefault`. Devolviendo `false` para lo que no es realmente "fuera", la
4036
+ * pulsación llega intacta. El desplegable sigue cerrándose igual, pero por
4037
+ * pérdida de foco (`shouldCloseOnBlur`) en vez de por interacción externa.
4038
+ */
4039
+ var _a, _b;
4040
+ /**
4041
+ * Marca un botón como control de cierre de su contenedor. Los popovers de Aura
4042
+ * no lo cuentan como interacción externa, así que su pulsación no se pierde.
4043
+ */
4044
+ var DISMISS_CONTROL_ATTRIBUTE = "data-aura-dismiss";
4045
+ /** Props a esparcir en un control de cierre: `<Button {...dismissControlProps} />`. */
4046
+ var dismissControlProps = (_a = {},
4047
+ _a[DISMISS_CONTROL_ATTRIBUTE] = "true",
4048
+ _a);
4049
+ /**
4050
+ * Marca el contenedor de una superficie modal propia (wizard, panel a medida).
4051
+ * No hace falta en `Modal` ni `Drawer`: los diálogos de HeroUI ya traen
4052
+ * `role="dialog"`, que cuenta igual.
4053
+ */
4054
+ var CONTAINER_ATTRIBUTE = "data-aura-container";
4055
+ /** Props a esparcir en el contenedor: `<div {...containerProps}>`. */
4056
+ var containerProps = (_b = {},
4057
+ _b[CONTAINER_ATTRIBUTE] = "true",
4058
+ _b);
4059
+ /**
4060
+ * Selector de controles de cierre. Incluye `[aria-label="Close"]` para cubrir
4061
+ * los botones de cerrar internos de HeroUI (Modal, Drawer), que no admiten
4062
+ * atributos propios.
4063
+ */
4064
+ var DISMISS_CONTROL_SELECTOR = "[".concat(DISMISS_CONTROL_ATTRIBUTE, "],[aria-label=\"Close\"]");
4065
+ /** Selector del contenedor modal: el marcado de Aura o un diálogo estándar. */
4066
+ var CONTAINER_SELECTOR = "[".concat(CONTAINER_ATTRIBUTE, "],[role=\"dialog\"],[role=\"alertdialog\"]");
4067
+ var matchesAncestor = function (element, selector) {
4068
+ if (!element || typeof element.closest !== "function") {
4069
+ return false;
4070
+ }
4071
+ return element.closest(selector) != null;
4072
+ };
4073
+ /** `true` si el elemento es un control de cierre (o está dentro de uno). */
4074
+ var isDismissControl = function (element) { return matchesAncestor(element, DISMISS_CONTROL_SELECTOR); };
4075
+ /**
4076
+ * Predicado listo para `popoverProps.shouldCloseOnInteractOutside` de un
4077
+ * componente con popover no-modal.
4078
+ *
4079
+ * Devuelve `false` —no es interacción externa— en tres casos:
4080
+ *
4081
+ * 1. Dentro del propio componente: el popover vive en un portal, así que el
4082
+ * campo de búsqueda queda fuera de él y una pulsación sobre el texto se
4083
+ * contaba como externa.
4084
+ * 2. Sobre un control de cierre del contenedor.
4085
+ * 3. Dentro del mismo diálogo/contenedor que el componente: seguir rellenando
4086
+ * el formulario no es descartar el desplegable.
4087
+ *
4088
+ * @param element Elemento donde ha empezado la interacción.
4089
+ * @param root Raíz del componente.
4090
+ */
4091
+ var shouldClosePopoverOnInteractOutside = function (element, root) {
4092
+ var _a;
4093
+ if (root === null || root === void 0 ? void 0 : root.contains(element)) {
4094
+ return false;
4095
+ }
4096
+ if (isDismissControl(element)) {
4097
+ return false;
4098
+ }
4099
+ if (!matchesAncestor(element, CONTAINER_SELECTOR)) {
4100
+ return true;
4101
+ }
4102
+ // Solo exime el contenedor propio: un diálogo distinto sigue siendo externo.
4103
+ var container = (_a = root === null || root === void 0 ? void 0 : root.closest) === null || _a === void 0 ? void 0 : _a.call(root, CONTAINER_SELECTOR);
4104
+ return !(container === null || container === void 0 ? void 0 : container.contains(element));
4105
+ };
4106
+
3996
4107
  var StepIndicator = function (_a) {
3997
4108
  var currentStep = _a.currentStep, totalSteps = _a.totalSteps, _b = _a.color, color = _b === void 0 ? "primary" : _b, _c = _a.showStepText, showStepText = _c === void 0 ? true : _c, stepTextFormatter = _a.stepTextFormatter, className = _a.className, props = __rest(_a, ["currentStep", "totalSteps", "color", "showStepText", "stepTextFormatter", "className"]);
3998
4109
  var progressPercentage = Math.min((currentStep / totalSteps) * 100, 100);
@@ -4176,7 +4287,7 @@ var VerticalSteps = React.forwardRef(function (_a, ref) {
4176
4287
  VerticalSteps.displayName = "VerticalSteps";
4177
4288
 
4178
4289
  var MultiStepSidebar = React.forwardRef(function (_a, ref) {
4179
- var children = _a.children, className = _a.className, currentPage = _a.currentPage; _a.onBack; _a.onNext; var onChangePage = _a.onChangePage, steps = _a.steps; _a.goBackTranslation; var onClose = _a.onClose, _b = _a.hideInactiveDescriptions, hideInactiveDescriptions = _b === void 0 ? false : _b, _c = _a.isDismissable, isDismissable = _c === void 0 ? true : _c, props = __rest(_a, ["children", "className", "currentPage", "onBack", "onNext", "onChangePage", "steps", "goBackTranslation", "onClose", "hideInactiveDescriptions", "isDismissable"]);
4290
+ var children = _a.children, className = _a.className, currentPage = _a.currentPage; _a.onBack; _a.onNext; var onChangePage = _a.onChangePage, steps = _a.steps; _a.goBackTranslation; var _b = _a.closeTranslation, closeTranslation = _b === void 0 ? "Close" : _b, onClose = _a.onClose, _c = _a.hideInactiveDescriptions, hideInactiveDescriptions = _c === void 0 ? false : _c, _d = _a.isDismissable, isDismissable = _d === void 0 ? true : _d, props = __rest(_a, ["children", "className", "currentPage", "onBack", "onNext", "onChangePage", "steps", "goBackTranslation", "closeTranslation", "onClose", "hideInactiveDescriptions", "isDismissable"]);
4180
4291
  var handleOverlayClick = function (e) {
4181
4292
  if (!isDismissable) {
4182
4293
  return;
@@ -4185,7 +4296,7 @@ var MultiStepSidebar = React.forwardRef(function (_a, ref) {
4185
4296
  onClose === null || onClose === void 0 ? void 0 : onClose();
4186
4297
  }
4187
4298
  };
4188
- return (jsxRuntime.jsx("div", { className: "fixed inset-0 z-50 flex items-center justify-center bg-content3/50 backdrop-blur-sm", onClick: handleOverlayClick, children: jsxRuntime.jsxs("div", __assign({ ref: ref, className: react.cn("relative flex h-full w-full max-w-4xl overflow-hidden rounded-lg bg-background shadow-lg lg:h-auto lg:max-h-[85vh] lg:min-h-[512px]", className) }, props, { children: [jsxRuntime.jsx("div", { className: react.cn("absolute inset-y-0 left-0 hidden w-1/3 flex-col justify-start gap-y-8 overflow-y-auto p-8 md:flex [&::-webkit-scrollbar]:hidden [-ms-overflow-style:none] [scrollbar-width:none]"), children: jsxRuntime.jsx(VerticalSteps, { className: "aura-stepper-theme", color: "primary", currentStep: currentPage, steps: steps, onStepChange: onChangePage, hideInactiveDescriptions: hideInactiveDescriptions }) }), jsxRuntime.jsxs("div", { className: "relative flex w-full flex-col items-center justify-between gap-4 md:ml-[33.333333%] md:w-2/3 md:p-4 min-h-0", children: [jsxRuntime.jsx(Button, { isIconOnly: true, className: "absolute right-4 top-4", size: "sm", variant: "light", color: "default", onPress: onClose, startContent: jsxRuntime.jsx(IconComponent, { className: "text-foreground", icon: "material-symbols:close-rounded", size: "lg" }) }), jsxRuntime.jsx("div", { className: "pt-9 w-10/12 md:hidden", children: jsxRuntime.jsx("div", { className: "flex w-full justify-center", children: jsxRuntime.jsx(StepIndicator, { className: "aura-stepper-theme", currentStep: currentPage + 1, totalSteps: steps.length }) }) }), jsxRuntime.jsx("div", { className: "flex flex-col flex-1 w-full justify-between p-4 sm:max-w-md md:max-w-lg overflow-y-auto min-h-0 [&::-webkit-scrollbar]:hidden [-ms-overflow-style:none] [scrollbar-width:none]", children: children })] })] })) }));
4299
+ return (jsxRuntime.jsx("div", __assign({}, containerProps, { className: "fixed inset-0 z-50 flex items-center justify-center bg-content3/50 backdrop-blur-sm", onClick: handleOverlayClick, children: jsxRuntime.jsxs("div", __assign({ ref: ref, className: react.cn("relative flex h-full w-full max-w-4xl overflow-hidden rounded-lg bg-background shadow-lg lg:h-auto lg:max-h-[85vh] lg:min-h-[512px]", className) }, props, { children: [jsxRuntime.jsx("div", { className: react.cn("absolute inset-y-0 left-0 hidden w-1/3 flex-col justify-start gap-y-8 overflow-y-auto p-8 md:flex [&::-webkit-scrollbar]:hidden [-ms-overflow-style:none] [scrollbar-width:none]"), children: jsxRuntime.jsx(VerticalSteps, { className: "aura-stepper-theme", color: "primary", currentStep: currentPage, steps: steps, onStepChange: onChangePage, hideInactiveDescriptions: hideInactiveDescriptions }) }), jsxRuntime.jsxs("div", { className: "relative flex w-full flex-col items-center justify-between gap-4 md:ml-[33.333333%] md:w-2/3 md:p-4 min-h-0", children: [jsxRuntime.jsx(Button, __assign({ isIconOnly: true }, dismissControlProps, { "aria-label": closeTranslation, className: "absolute right-4 top-4", size: "sm", variant: "light", color: "default", onPress: onClose, startContent: jsxRuntime.jsx(IconComponent, { className: "text-foreground", icon: "material-symbols:close-rounded", size: "lg" }) })), jsxRuntime.jsx("div", { className: "pt-9 w-10/12 md:hidden", children: jsxRuntime.jsx("div", { className: "flex w-full justify-center", children: jsxRuntime.jsx(StepIndicator, { className: "aura-stepper-theme", currentStep: currentPage + 1, totalSteps: steps.length }) }) }), jsxRuntime.jsx("div", { className: "flex flex-col flex-1 w-full justify-between p-4 sm:max-w-md md:max-w-lg overflow-y-auto min-h-0 [&::-webkit-scrollbar]:hidden [-ms-overflow-style:none] [scrollbar-width:none]", children: children })] })] })) })));
4189
4300
  });
4190
4301
  MultiStepSidebar.displayName = "MultiStepSidebar";
4191
4302
 
@@ -4212,6 +4323,7 @@ var MultiStepWizard = function (_a) {
4212
4323
  cancel: "Cancel",
4213
4324
  next: "Next",
4214
4325
  complete: "Complete",
4326
+ close: "Close",
4215
4327
  }, translations);
4216
4328
  var paginate = React.useCallback(function (newDirection) {
4217
4329
  setPage(function (prev) {
@@ -4263,14 +4375,11 @@ var MultiStepWizard = function (_a) {
4263
4375
  if (!isOpen) {
4264
4376
  return null;
4265
4377
  }
4266
- return (jsxRuntime.jsxs(MultiStepSidebar, { currentPage: page, goBackTranslation: t.goBack, steps: steps, onBack: onBack, onChangePage: onChangePage, onClose: onClose, onNext: onNext, hideInactiveDescriptions: hideInactiveDescriptions, isDismissable: isDismissable, children: [jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx(Button, { className: "w-fit text-default-600 mb-6", color: "default", variant: "light", onPress: onBack, isDisabled: page === 0, startContent: jsxRuntime.jsx(IconComponent, { className: "text-default-500", icon: "material-symbols:arrow-back-rounded", size: "sm" }), children: t.goBack || "Back" }), jsxRuntime.jsx("div", { className: "relative flex h-fit w-full flex-col text-center lg:justify-center lg:pt-0", children: content })] }), jsxRuntime.jsx(MultistepNavigationButtons, { backButtonProps: {
4378
+ return (jsxRuntime.jsxs(MultiStepSidebar, { currentPage: page, goBackTranslation: t.goBack, closeTranslation: t.close, steps: steps, onBack: onBack, onChangePage: onChangePage, onClose: onClose, onNext: onNext, hideInactiveDescriptions: hideInactiveDescriptions, isDismissable: isDismissable, children: [jsxRuntime.jsxs("div", { children: [jsxRuntime.jsx(Button, { className: "w-fit text-default-600 mb-6", color: "default", variant: "light", onPress: onBack, isDisabled: page === 0, startContent: jsxRuntime.jsx(IconComponent, { className: "text-default-500", icon: "material-symbols:arrow-back-rounded", size: "sm" }), children: t.goBack || "Back" }), jsxRuntime.jsx("div", { className: "relative flex h-fit w-full flex-col text-center lg:justify-center lg:pt-0", children: content })] }), jsxRuntime.jsx(MultistepNavigationButtons, { backButtonProps: {
4267
4379
  isDisabled: page === 0,
4268
4380
  onPress: onBack,
4269
4381
  children: t.goBack,
4270
- }, cancelButtonProps: {
4271
- onPress: onClose,
4272
- children: t.cancel,
4273
- }, nextButtonProps: {
4382
+ }, cancelButtonProps: __assign(__assign({}, dismissControlProps), { onPress: onClose, children: t.cancel }), nextButtonProps: {
4274
4383
  children: getButtonText(),
4275
4384
  onPress: handleNextAction,
4276
4385
  isDisabled: steps[page].isStepValid === false,
@@ -8843,6 +8952,7 @@ function TagsFilter(_a) {
8843
8952
  var _m = React.useState(0), autocompleteKey = _m[0], setAutocompleteKey = _m[1];
8844
8953
  var selectedList = value !== null && value !== void 0 ? value : [];
8845
8954
  var _o = React.useState(null), sentinelNode = _o[0], setSentinelNode = _o[1];
8955
+ var rootRef = React.useRef(null);
8846
8956
  React.useEffect(function () {
8847
8957
  if (!onLoadMore || !sentinelNode || !hasMore) {
8848
8958
  return;
@@ -8914,7 +9024,7 @@ function TagsFilter(_a) {
8914
9024
  if (isLoading) {
8915
9025
  return (jsxRuntime.jsx("div", { className: "flex flex-col gap-4 ".concat(className), children: jsxRuntime.jsx("div", { className: "flex justify-center py-4", children: jsxRuntime.jsx(react.Spinner, { size: "sm" }) }) }));
8916
9026
  }
8917
- return (jsxRuntime.jsxs("div", { className: "flex flex-col gap-4 ".concat(className), children: [error && (jsxRuntime.jsxs("div", { className: "text-danger text-small py-2", children: [t.errorLoadingPrefix, ": ", error] })), !error && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs("div", { className: "flex flex-col gap-3", children: [jsxRuntime.jsxs(H4, { className: "text-tiny text-left text-default-700", children: [t.labelSelect, required && jsxRuntime.jsx("span", { className: "text-danger ml-0.5", children: "*" })] }), jsxRuntime.jsx(AuraAutocomplete, { placeholder: t.placeholder, "aria-label": ariaLabel !== null && ariaLabel !== void 0 ? ariaLabel : t.placeholder, inputValue: inputValue, onInputChange: function (v) {
9027
+ return (jsxRuntime.jsxs("div", { ref: rootRef, className: "flex flex-col gap-4 ".concat(className), children: [error && (jsxRuntime.jsxs("div", { className: "text-danger text-small py-2", children: [t.errorLoadingPrefix, ": ", error] })), !error && (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsxs("div", { className: "flex flex-col gap-3", children: [jsxRuntime.jsxs(H4, { className: "text-tiny text-left text-default-700", children: [t.labelSelect, required && jsxRuntime.jsx("span", { className: "text-danger ml-0.5", children: "*" })] }), jsxRuntime.jsx(AuraAutocomplete, { placeholder: t.placeholder, "aria-label": ariaLabel !== null && ariaLabel !== void 0 ? ariaLabel : t.placeholder, inputValue: inputValue, onInputChange: function (v) {
8918
9028
  setInputValue(v);
8919
9029
  onInputChange === null || onInputChange === void 0 ? void 0 : onInputChange(v);
8920
9030
  }, selectedKey: null, items: itemsWithSentinel, onSelectionChange: handleAutocompleteSelection,
@@ -8933,7 +9043,24 @@ function TagsFilter(_a) {
8933
9043
  // intercepts pointer events, blocking the parent modal's close button.
8934
9044
  // shouldCloseOnInteractOutside already handles closing on outside clicks.
8935
9045
  isNonModal: true,
8936
- shouldCloseOnInteractOutside: function () { return true; },
9046
+ // El desplegable se renderiza en un portal, así que el campo de
9047
+ // búsqueda queda FUERA de él y una pulsación sobre el texto contaba
9048
+ // como interacción externa. Al cerrarse, el FocusScope devolvía el
9049
+ // foco con un `.focus()` que abortaba el gesto de selección que el
9050
+ // navegador acababa de iniciar: de ahí que arrastrar o hacer doble
9051
+ // clic no seleccionara nada y solo quedara borrar letra a letra
9052
+ // (con el teclado sí funcionaba, porque no pasa por aquí).
9053
+ // Las pulsaciones dentro del componente dejan de contar como
9054
+ // externas; las de fuera siguen cerrando el desplegable igual.
9055
+ //
9056
+ // Los controles de cierre del contenedor también quedan exentos:
9057
+ // react-aria hace `preventDefault()` sobre el pointerdown Y el
9058
+ // click de toda interacción externa, así que su `onPress` no se
9059
+ // disparaba y el contenedor no se podía cerrar mientras el
9060
+ // desplegable estuviera abierto (ver `shouldClosePopoverOnInteractOutside`).
9061
+ shouldCloseOnInteractOutside: function (element) {
9062
+ return shouldClosePopoverOnInteractOutside(element, rootRef.current);
9063
+ },
8937
9064
  }, listboxProps: {
8938
9065
  className: "max-h-[200px] overflow-y-auto",
8939
9066
  }, className: "w-full", children: function (item) {
@@ -9698,6 +9825,7 @@ exports.AuraToastProvider = AuraToastProvider;
9698
9825
  exports.BEWEOS_THEME_MODE_COOKIE_NAME = BEWEOS_THEME_MODE_COOKIE_NAME;
9699
9826
  exports.BreadcrumbsComponent = BreadcrumbsComponent;
9700
9827
  exports.Button = Button;
9828
+ exports.CONTAINER_ATTRIBUTE = CONTAINER_ATTRIBUTE;
9701
9829
  exports.Card = Card;
9702
9830
  exports.Chip = Chip;
9703
9831
  exports.ColorPicker = ColorPicker;
@@ -9707,6 +9835,7 @@ exports.Currency = Currency;
9707
9835
  exports.DEFAULT_DONUT_COLORS = DEFAULT_DONUT_COLORS;
9708
9836
  exports.DEFAULT_PREDEFINED_COLORS = DEFAULT_PREDEFINED_COLORS;
9709
9837
  exports.DEFAULT_RANKED_BAR_COLORS = DEFAULT_RANKED_BAR_COLORS;
9838
+ exports.DISMISS_CONTROL_ATTRIBUTE = DISMISS_CONTROL_ATTRIBUTE;
9710
9839
  exports.DatePicker = DatePicker;
9711
9840
  exports.DateRangePicker = DateRangePicker;
9712
9841
  exports.DateSelector = DateSelector;
@@ -9726,6 +9855,7 @@ exports.InputPassword = InputPassword;
9726
9855
  exports.Kanban = Kanban;
9727
9856
  exports.KanbanCard = KanbanCard;
9728
9857
  exports.KanbanColumn = KanbanColumn;
9858
+ exports.LindaIcon = LindaIcon;
9729
9859
  exports.MenuClaw = MenuClaw;
9730
9860
  exports.MenuComponent = MenuComponent;
9731
9861
  exports.Modal = Modal;
@@ -9779,10 +9909,12 @@ exports.computeBars = computeBars;
9779
9909
  exports.computeMax = computeMax;
9780
9910
  exports.computeSlices = computeSlices;
9781
9911
  exports.computeTotal = computeTotal;
9912
+ exports.containerProps = containerProps;
9782
9913
  exports.createCurrencyFormatter = createCurrencyFormatter;
9783
9914
  exports.defaultCountries = uniqueCountries;
9784
9915
  exports.defaultCurrencyOptions = defaultCurrencyOptions;
9785
9916
  exports.defaultTranslations = defaultTranslations$5;
9917
+ exports.dismissControlProps = dismissControlProps;
9786
9918
  exports.forceLightOnlyThemeBeforeReact = forceLightOnlyThemeBeforeReact;
9787
9919
  exports.formatAuroraThemeTooltip = formatAuroraThemeTooltip;
9788
9920
  exports.generateThemeColorScale = generateThemeColorScale;
@@ -9792,6 +9924,7 @@ exports.getSelectedKeyFromPath = getSelectedKeyFromPath;
9792
9924
  exports.hexToThemeColor = hexToThemeColor;
9793
9925
  exports.hslToCssValue = hslToCssValue;
9794
9926
  exports.isAuroraFullThemeId = isAuroraFullThemeId;
9927
+ exports.isDismissControl = isDismissControl;
9795
9928
  exports.isDonutEmpty = isDonutEmpty;
9796
9929
  exports.isExactThemeColor = isExactThemeColor;
9797
9930
  exports.isGroupState = isGroupState;
@@ -9799,6 +9932,7 @@ exports.isHexColor = isHexColor;
9799
9932
  exports.isRankedBarListEmpty = isRankedBarListEmpty;
9800
9933
  exports.isSegmentationGroup = isSegmentationGroup;
9801
9934
  exports.removeCustomPrimaryColor = removeCustomPrimaryColor;
9935
+ exports.shouldClosePopoverOnInteractOutside = shouldClosePopoverOnInteractOutside;
9802
9936
  exports.sizeMap = sizeMap;
9803
9937
  exports.themeColors = themeColors;
9804
9938
  exports.useAuraToast = useAuraToast;
package/dist/index.esm.js CHANGED
@@ -3281,6 +3281,27 @@ var KanbanComponent = function (_a) {
3281
3281
  var Kanban = memo(KanbanComponent);
3282
3282
  Kanban.displayName = "Kanban";
3283
3283
 
3284
+ /**
3285
+ * Icono canónico de Linda para CTAs inteligentes (TECH-2386).
3286
+ *
3287
+ * SVG empaquetado como import estático — NUNCA usar `@iconify/react` /
3288
+ * `IconComponent` con este glifo: los iconos de Iconify se resuelven en
3289
+ * runtime contra api.iconify.design y desaparecen (control entero invisible
3290
+ * si es `isIconOnly`) cuando ese host no responde — ver TECH-2103/2104.
3291
+ * Este componente no depende de red.
3292
+ *
3293
+ * Glifo: el mismo path ya usado en el producto para señalar acciones de
3294
+ * Linda (equivalente al icono "magic-stick" ya presente junto a
3295
+ * "Linda Recommended Actions"), resuelto para v1 en TECH-2374 sin
3296
+ * diseñadora asignada — funcional-first, sin inventar iconografía nueva.
3297
+ * Cuando exista un asset bespoke (identidad "droide retro-futurista"),
3298
+ * este es el único componente a sustituir — ver README.md.
3299
+ */
3300
+ var LindaIcon = function (_a) {
3301
+ var _b = _a.size, size = _b === void 0 ? 24 : _b, className = _a.className, nativeProps = __rest(_a, ["size", "className"]);
3302
+ return (jsx("svg", __assign({ xmlns: "http://www.w3.org/2000/svg", width: size, height: size, viewBox: "0 0 24 24", className: className, role: "img", "aria-hidden": "true" }, nativeProps, { children: jsxs("g", { fill: "currentColor", children: [jsx("path", { d: "M3.84453 3.84453C2.71849 4.97056 2.71849 6.79623 3.84453 7.92226L5.43227 9.51C5.44419 9.49622 5.45669 9.48276 5.46978 9.46967L9.46978 5.46967C9.48284 5.45662 9.49625 5.44415 9.50999 5.43226L7.92226 3.84453C6.79623 2.71849 4.97056 2.71849 3.84453 3.84453Z" }), jsx("path", { d: "M10.5679 6.49012C10.556 6.50386 10.5435 6.51728 10.5304 6.53033L6.53044 10.5303C6.51735 10.5434 6.5039 10.5559 6.49011 10.5678L16.0777 20.1555C17.2038 21.2815 19.0294 21.2815 20.1555 20.1555C21.2815 19.0294 21.2815 17.2038 20.1555 16.0777L10.5679 6.49012Z" }), jsx("path", { d: "M16.1 2.30719C16.261 1.8976 16.8385 1.8976 16.9994 2.30719L17.4298 3.40247C17.479 3.52752 17.5776 3.62651 17.7022 3.67583L18.7934 4.1078C19.2015 4.26934 19.2015 4.849 18.7934 5.01054L17.7022 5.44252C17.5776 5.49184 17.479 5.59082 17.4298 5.71587L16.9995 6.81115C16.8385 7.22074 16.261 7.22074 16.1 6.81116L15.6697 5.71587C15.6205 5.59082 15.5219 5.49184 15.3973 5.44252L14.3061 5.01054C13.898 4.849 13.898 4.26934 14.3061 4.1078L15.3973 3.67583C15.5219 3.62651 15.6205 3.52752 15.6697 3.40247L16.1 2.30719Z" }), jsx("path", { d: "M19.9672 9.12945C20.1281 8.71987 20.7057 8.71987 20.8666 9.12945L21.0235 9.5288C21.0727 9.65385 21.1713 9.75284 21.2959 9.80215L21.6937 9.95965C22.1018 10.1212 22.1018 10.7009 21.6937 10.8624L21.2959 11.0199C21.1713 11.0692 21.0727 11.1682 21.0235 11.2932L20.8666 11.6926C20.7057 12.1022 20.1281 12.1022 19.9672 11.6926L19.8103 11.2932C19.7611 11.1682 19.6625 11.0692 19.5379 11.0199L19.14 10.8624C18.732 10.7009 18.732 10.1212 19.14 9.95965L19.5379 9.80215C19.6625 9.75284 19.7611 9.65385 19.8103 9.5288L19.9672 9.12945Z" }), jsx("path", { d: "M5.1332 15.3072C5.29414 14.8976 5.87167 14.8976 6.03261 15.3072L6.18953 15.7065C6.23867 15.8316 6.33729 15.9306 6.46188 15.9799L6.85975 16.1374C7.26783 16.2989 7.26783 16.8786 6.85975 17.0401L6.46188 17.1976C6.33729 17.2469 6.23867 17.3459 6.18953 17.471L6.03261 17.8703C5.87167 18.2799 5.29414 18.2799 5.1332 17.8703L4.97628 17.471C4.92714 17.3459 4.82852 17.2469 4.70393 17.1976L4.30606 17.0401C3.89798 16.8786 3.89798 16.2989 4.30606 16.1374L4.70393 15.9799C4.82852 15.9306 4.92714 15.8316 4.97628 15.7065L5.1332 15.3072Z" })] }) })));
3303
+ };
3304
+
3284
3305
  var defaultTranslations$8 = {
3285
3306
  previewAlt: "Vista previa de imagen",
3286
3307
  removeButtonAriaLabel: "Eliminar imagen",
@@ -3994,6 +4015,96 @@ var MenuClaw = React.memo(function MenuClaw(_a) {
3994
4015
  }) }), helpSection ? (jsx("div", { className: "mt-auto flex flex-col items-center justify-center", children: jsx(Button$1, { fullWidth: true, className: "text-default-500 data-[hover=true]:text-default-600", startContent: jsx(IconComponent, { className: "text-default-500", icon: "solar:info-circle-line-duotone", size: "md" }), variant: "light", onPress: handleHelpClick, isIconOnly: isCollapsed, children: !isCollapsed ? (jsx("span", { className: "menu-claw-collapsible truncate", children: helpSection.title })) : null }) })) : null] }) })] }));
3995
4016
  });
3996
4017
 
4018
+ /**
4019
+ * Interacciones que un popover no-modal NO debe tratar como "clic fuera".
4020
+ *
4021
+ * El problema que resuelve: `useOverlay` de react-aria trata cualquier
4022
+ * pulsación fuera del popover como interacción externa y, cuando el popover es
4023
+ * el overlay visible más reciente, hace `stopPropagation()` + `preventDefault()`
4024
+ * sobre el `pointerdown` **y** sobre el `click`
4025
+ * (`@react-aria/overlays/useOverlay`). El evento nunca llega a su destino, así
4026
+ * que `usePress` no registra la pulsación y `onPress` no se dispara: el primer
4027
+ * clic solo cierra el desplegable.
4028
+ *
4029
+ * Para un clic en la página de fondo eso es lo correcto: descartar el
4030
+ * desplegable sin activar nada por debajo. Dentro del mismo diálogo no: ahí el
4031
+ * usuario está rellenando un formulario y espera que su clic llegue. Y como los
4032
+ * buscadores se reabren al recuperar el foco, el clic siguiente se volvía a
4033
+ * tragar — un callejón sin salida del que solo se salía vaciando el campo.
4034
+ *
4035
+ * La única palanca es `shouldCloseOnInteractOutside`: es el guardián de esos dos
4036
+ * `preventDefault`. Devolviendo `false` para lo que no es realmente "fuera", la
4037
+ * pulsación llega intacta. El desplegable sigue cerrándose igual, pero por
4038
+ * pérdida de foco (`shouldCloseOnBlur`) en vez de por interacción externa.
4039
+ */
4040
+ var _a, _b;
4041
+ /**
4042
+ * Marca un botón como control de cierre de su contenedor. Los popovers de Aura
4043
+ * no lo cuentan como interacción externa, así que su pulsación no se pierde.
4044
+ */
4045
+ var DISMISS_CONTROL_ATTRIBUTE = "data-aura-dismiss";
4046
+ /** Props a esparcir en un control de cierre: `<Button {...dismissControlProps} />`. */
4047
+ var dismissControlProps = (_a = {},
4048
+ _a[DISMISS_CONTROL_ATTRIBUTE] = "true",
4049
+ _a);
4050
+ /**
4051
+ * Marca el contenedor de una superficie modal propia (wizard, panel a medida).
4052
+ * No hace falta en `Modal` ni `Drawer`: los diálogos de HeroUI ya traen
4053
+ * `role="dialog"`, que cuenta igual.
4054
+ */
4055
+ var CONTAINER_ATTRIBUTE = "data-aura-container";
4056
+ /** Props a esparcir en el contenedor: `<div {...containerProps}>`. */
4057
+ var containerProps = (_b = {},
4058
+ _b[CONTAINER_ATTRIBUTE] = "true",
4059
+ _b);
4060
+ /**
4061
+ * Selector de controles de cierre. Incluye `[aria-label="Close"]` para cubrir
4062
+ * los botones de cerrar internos de HeroUI (Modal, Drawer), que no admiten
4063
+ * atributos propios.
4064
+ */
4065
+ var DISMISS_CONTROL_SELECTOR = "[".concat(DISMISS_CONTROL_ATTRIBUTE, "],[aria-label=\"Close\"]");
4066
+ /** Selector del contenedor modal: el marcado de Aura o un diálogo estándar. */
4067
+ var CONTAINER_SELECTOR = "[".concat(CONTAINER_ATTRIBUTE, "],[role=\"dialog\"],[role=\"alertdialog\"]");
4068
+ var matchesAncestor = function (element, selector) {
4069
+ if (!element || typeof element.closest !== "function") {
4070
+ return false;
4071
+ }
4072
+ return element.closest(selector) != null;
4073
+ };
4074
+ /** `true` si el elemento es un control de cierre (o está dentro de uno). */
4075
+ var isDismissControl = function (element) { return matchesAncestor(element, DISMISS_CONTROL_SELECTOR); };
4076
+ /**
4077
+ * Predicado listo para `popoverProps.shouldCloseOnInteractOutside` de un
4078
+ * componente con popover no-modal.
4079
+ *
4080
+ * Devuelve `false` —no es interacción externa— en tres casos:
4081
+ *
4082
+ * 1. Dentro del propio componente: el popover vive en un portal, así que el
4083
+ * campo de búsqueda queda fuera de él y una pulsación sobre el texto se
4084
+ * contaba como externa.
4085
+ * 2. Sobre un control de cierre del contenedor.
4086
+ * 3. Dentro del mismo diálogo/contenedor que el componente: seguir rellenando
4087
+ * el formulario no es descartar el desplegable.
4088
+ *
4089
+ * @param element Elemento donde ha empezado la interacción.
4090
+ * @param root Raíz del componente.
4091
+ */
4092
+ var shouldClosePopoverOnInteractOutside = function (element, root) {
4093
+ var _a;
4094
+ if (root === null || root === void 0 ? void 0 : root.contains(element)) {
4095
+ return false;
4096
+ }
4097
+ if (isDismissControl(element)) {
4098
+ return false;
4099
+ }
4100
+ if (!matchesAncestor(element, CONTAINER_SELECTOR)) {
4101
+ return true;
4102
+ }
4103
+ // Solo exime el contenedor propio: un diálogo distinto sigue siendo externo.
4104
+ var container = (_a = root === null || root === void 0 ? void 0 : root.closest) === null || _a === void 0 ? void 0 : _a.call(root, CONTAINER_SELECTOR);
4105
+ return !(container === null || container === void 0 ? void 0 : container.contains(element));
4106
+ };
4107
+
3997
4108
  var StepIndicator = function (_a) {
3998
4109
  var currentStep = _a.currentStep, totalSteps = _a.totalSteps, _b = _a.color, color = _b === void 0 ? "primary" : _b, _c = _a.showStepText, showStepText = _c === void 0 ? true : _c, stepTextFormatter = _a.stepTextFormatter, className = _a.className, props = __rest(_a, ["currentStep", "totalSteps", "color", "showStepText", "stepTextFormatter", "className"]);
3999
4110
  var progressPercentage = Math.min((currentStep / totalSteps) * 100, 100);
@@ -4177,7 +4288,7 @@ var VerticalSteps = React.forwardRef(function (_a, ref) {
4177
4288
  VerticalSteps.displayName = "VerticalSteps";
4178
4289
 
4179
4290
  var MultiStepSidebar = React.forwardRef(function (_a, ref) {
4180
- var children = _a.children, className = _a.className, currentPage = _a.currentPage; _a.onBack; _a.onNext; var onChangePage = _a.onChangePage, steps = _a.steps; _a.goBackTranslation; var onClose = _a.onClose, _b = _a.hideInactiveDescriptions, hideInactiveDescriptions = _b === void 0 ? false : _b, _c = _a.isDismissable, isDismissable = _c === void 0 ? true : _c, props = __rest(_a, ["children", "className", "currentPage", "onBack", "onNext", "onChangePage", "steps", "goBackTranslation", "onClose", "hideInactiveDescriptions", "isDismissable"]);
4291
+ var children = _a.children, className = _a.className, currentPage = _a.currentPage; _a.onBack; _a.onNext; var onChangePage = _a.onChangePage, steps = _a.steps; _a.goBackTranslation; var _b = _a.closeTranslation, closeTranslation = _b === void 0 ? "Close" : _b, onClose = _a.onClose, _c = _a.hideInactiveDescriptions, hideInactiveDescriptions = _c === void 0 ? false : _c, _d = _a.isDismissable, isDismissable = _d === void 0 ? true : _d, props = __rest(_a, ["children", "className", "currentPage", "onBack", "onNext", "onChangePage", "steps", "goBackTranslation", "closeTranslation", "onClose", "hideInactiveDescriptions", "isDismissable"]);
4181
4292
  var handleOverlayClick = function (e) {
4182
4293
  if (!isDismissable) {
4183
4294
  return;
@@ -4186,7 +4297,7 @@ var MultiStepSidebar = React.forwardRef(function (_a, ref) {
4186
4297
  onClose === null || onClose === void 0 ? void 0 : onClose();
4187
4298
  }
4188
4299
  };
4189
- return (jsx("div", { className: "fixed inset-0 z-50 flex items-center justify-center bg-content3/50 backdrop-blur-sm", onClick: handleOverlayClick, children: jsxs("div", __assign({ ref: ref, className: cn("relative flex h-full w-full max-w-4xl overflow-hidden rounded-lg bg-background shadow-lg lg:h-auto lg:max-h-[85vh] lg:min-h-[512px]", className) }, props, { children: [jsx("div", { className: cn("absolute inset-y-0 left-0 hidden w-1/3 flex-col justify-start gap-y-8 overflow-y-auto p-8 md:flex [&::-webkit-scrollbar]:hidden [-ms-overflow-style:none] [scrollbar-width:none]"), children: jsx(VerticalSteps, { className: "aura-stepper-theme", color: "primary", currentStep: currentPage, steps: steps, onStepChange: onChangePage, hideInactiveDescriptions: hideInactiveDescriptions }) }), jsxs("div", { className: "relative flex w-full flex-col items-center justify-between gap-4 md:ml-[33.333333%] md:w-2/3 md:p-4 min-h-0", children: [jsx(Button, { isIconOnly: true, className: "absolute right-4 top-4", size: "sm", variant: "light", color: "default", onPress: onClose, startContent: jsx(IconComponent, { className: "text-foreground", icon: "material-symbols:close-rounded", size: "lg" }) }), jsx("div", { className: "pt-9 w-10/12 md:hidden", children: jsx("div", { className: "flex w-full justify-center", children: jsx(StepIndicator, { className: "aura-stepper-theme", currentStep: currentPage + 1, totalSteps: steps.length }) }) }), jsx("div", { className: "flex flex-col flex-1 w-full justify-between p-4 sm:max-w-md md:max-w-lg overflow-y-auto min-h-0 [&::-webkit-scrollbar]:hidden [-ms-overflow-style:none] [scrollbar-width:none]", children: children })] })] })) }));
4300
+ return (jsx("div", __assign({}, containerProps, { className: "fixed inset-0 z-50 flex items-center justify-center bg-content3/50 backdrop-blur-sm", onClick: handleOverlayClick, children: jsxs("div", __assign({ ref: ref, className: cn("relative flex h-full w-full max-w-4xl overflow-hidden rounded-lg bg-background shadow-lg lg:h-auto lg:max-h-[85vh] lg:min-h-[512px]", className) }, props, { children: [jsx("div", { className: cn("absolute inset-y-0 left-0 hidden w-1/3 flex-col justify-start gap-y-8 overflow-y-auto p-8 md:flex [&::-webkit-scrollbar]:hidden [-ms-overflow-style:none] [scrollbar-width:none]"), children: jsx(VerticalSteps, { className: "aura-stepper-theme", color: "primary", currentStep: currentPage, steps: steps, onStepChange: onChangePage, hideInactiveDescriptions: hideInactiveDescriptions }) }), jsxs("div", { className: "relative flex w-full flex-col items-center justify-between gap-4 md:ml-[33.333333%] md:w-2/3 md:p-4 min-h-0", children: [jsx(Button, __assign({ isIconOnly: true }, dismissControlProps, { "aria-label": closeTranslation, className: "absolute right-4 top-4", size: "sm", variant: "light", color: "default", onPress: onClose, startContent: jsx(IconComponent, { className: "text-foreground", icon: "material-symbols:close-rounded", size: "lg" }) })), jsx("div", { className: "pt-9 w-10/12 md:hidden", children: jsx("div", { className: "flex w-full justify-center", children: jsx(StepIndicator, { className: "aura-stepper-theme", currentStep: currentPage + 1, totalSteps: steps.length }) }) }), jsx("div", { className: "flex flex-col flex-1 w-full justify-between p-4 sm:max-w-md md:max-w-lg overflow-y-auto min-h-0 [&::-webkit-scrollbar]:hidden [-ms-overflow-style:none] [scrollbar-width:none]", children: children })] })] })) })));
4190
4301
  });
4191
4302
  MultiStepSidebar.displayName = "MultiStepSidebar";
4192
4303
 
@@ -4213,6 +4324,7 @@ var MultiStepWizard = function (_a) {
4213
4324
  cancel: "Cancel",
4214
4325
  next: "Next",
4215
4326
  complete: "Complete",
4327
+ close: "Close",
4216
4328
  }, translations);
4217
4329
  var paginate = React.useCallback(function (newDirection) {
4218
4330
  setPage(function (prev) {
@@ -4264,14 +4376,11 @@ var MultiStepWizard = function (_a) {
4264
4376
  if (!isOpen) {
4265
4377
  return null;
4266
4378
  }
4267
- return (jsxs(MultiStepSidebar, { currentPage: page, goBackTranslation: t.goBack, steps: steps, onBack: onBack, onChangePage: onChangePage, onClose: onClose, onNext: onNext, hideInactiveDescriptions: hideInactiveDescriptions, isDismissable: isDismissable, children: [jsxs("div", { children: [jsx(Button, { className: "w-fit text-default-600 mb-6", color: "default", variant: "light", onPress: onBack, isDisabled: page === 0, startContent: jsx(IconComponent, { className: "text-default-500", icon: "material-symbols:arrow-back-rounded", size: "sm" }), children: t.goBack || "Back" }), jsx("div", { className: "relative flex h-fit w-full flex-col text-center lg:justify-center lg:pt-0", children: content })] }), jsx(MultistepNavigationButtons, { backButtonProps: {
4379
+ return (jsxs(MultiStepSidebar, { currentPage: page, goBackTranslation: t.goBack, closeTranslation: t.close, steps: steps, onBack: onBack, onChangePage: onChangePage, onClose: onClose, onNext: onNext, hideInactiveDescriptions: hideInactiveDescriptions, isDismissable: isDismissable, children: [jsxs("div", { children: [jsx(Button, { className: "w-fit text-default-600 mb-6", color: "default", variant: "light", onPress: onBack, isDisabled: page === 0, startContent: jsx(IconComponent, { className: "text-default-500", icon: "material-symbols:arrow-back-rounded", size: "sm" }), children: t.goBack || "Back" }), jsx("div", { className: "relative flex h-fit w-full flex-col text-center lg:justify-center lg:pt-0", children: content })] }), jsx(MultistepNavigationButtons, { backButtonProps: {
4268
4380
  isDisabled: page === 0,
4269
4381
  onPress: onBack,
4270
4382
  children: t.goBack,
4271
- }, cancelButtonProps: {
4272
- onPress: onClose,
4273
- children: t.cancel,
4274
- }, nextButtonProps: {
4383
+ }, cancelButtonProps: __assign(__assign({}, dismissControlProps), { onPress: onClose, children: t.cancel }), nextButtonProps: {
4275
4384
  children: getButtonText(),
4276
4385
  onPress: handleNextAction,
4277
4386
  isDisabled: steps[page].isStepValid === false,
@@ -8844,6 +8953,7 @@ function TagsFilter(_a) {
8844
8953
  var _m = useState(0), autocompleteKey = _m[0], setAutocompleteKey = _m[1];
8845
8954
  var selectedList = value !== null && value !== void 0 ? value : [];
8846
8955
  var _o = useState(null), sentinelNode = _o[0], setSentinelNode = _o[1];
8956
+ var rootRef = useRef(null);
8847
8957
  useEffect(function () {
8848
8958
  if (!onLoadMore || !sentinelNode || !hasMore) {
8849
8959
  return;
@@ -8915,7 +9025,7 @@ function TagsFilter(_a) {
8915
9025
  if (isLoading) {
8916
9026
  return (jsx("div", { className: "flex flex-col gap-4 ".concat(className), children: jsx("div", { className: "flex justify-center py-4", children: jsx(Spinner, { size: "sm" }) }) }));
8917
9027
  }
8918
- return (jsxs("div", { className: "flex flex-col gap-4 ".concat(className), children: [error && (jsxs("div", { className: "text-danger text-small py-2", children: [t.errorLoadingPrefix, ": ", error] })), !error && (jsxs(Fragment, { children: [jsxs("div", { className: "flex flex-col gap-3", children: [jsxs(H4, { className: "text-tiny text-left text-default-700", children: [t.labelSelect, required && jsx("span", { className: "text-danger ml-0.5", children: "*" })] }), jsx(AuraAutocomplete, { placeholder: t.placeholder, "aria-label": ariaLabel !== null && ariaLabel !== void 0 ? ariaLabel : t.placeholder, inputValue: inputValue, onInputChange: function (v) {
9028
+ return (jsxs("div", { ref: rootRef, className: "flex flex-col gap-4 ".concat(className), children: [error && (jsxs("div", { className: "text-danger text-small py-2", children: [t.errorLoadingPrefix, ": ", error] })), !error && (jsxs(Fragment, { children: [jsxs("div", { className: "flex flex-col gap-3", children: [jsxs(H4, { className: "text-tiny text-left text-default-700", children: [t.labelSelect, required && jsx("span", { className: "text-danger ml-0.5", children: "*" })] }), jsx(AuraAutocomplete, { placeholder: t.placeholder, "aria-label": ariaLabel !== null && ariaLabel !== void 0 ? ariaLabel : t.placeholder, inputValue: inputValue, onInputChange: function (v) {
8919
9029
  setInputValue(v);
8920
9030
  onInputChange === null || onInputChange === void 0 ? void 0 : onInputChange(v);
8921
9031
  }, selectedKey: null, items: itemsWithSentinel, onSelectionChange: handleAutocompleteSelection,
@@ -8934,7 +9044,24 @@ function TagsFilter(_a) {
8934
9044
  // intercepts pointer events, blocking the parent modal's close button.
8935
9045
  // shouldCloseOnInteractOutside already handles closing on outside clicks.
8936
9046
  isNonModal: true,
8937
- shouldCloseOnInteractOutside: function () { return true; },
9047
+ // El desplegable se renderiza en un portal, así que el campo de
9048
+ // búsqueda queda FUERA de él y una pulsación sobre el texto contaba
9049
+ // como interacción externa. Al cerrarse, el FocusScope devolvía el
9050
+ // foco con un `.focus()` que abortaba el gesto de selección que el
9051
+ // navegador acababa de iniciar: de ahí que arrastrar o hacer doble
9052
+ // clic no seleccionara nada y solo quedara borrar letra a letra
9053
+ // (con el teclado sí funcionaba, porque no pasa por aquí).
9054
+ // Las pulsaciones dentro del componente dejan de contar como
9055
+ // externas; las de fuera siguen cerrando el desplegable igual.
9056
+ //
9057
+ // Los controles de cierre del contenedor también quedan exentos:
9058
+ // react-aria hace `preventDefault()` sobre el pointerdown Y el
9059
+ // click de toda interacción externa, así que su `onPress` no se
9060
+ // disparaba y el contenedor no se podía cerrar mientras el
9061
+ // desplegable estuviera abierto (ver `shouldClosePopoverOnInteractOutside`).
9062
+ shouldCloseOnInteractOutside: function (element) {
9063
+ return shouldClosePopoverOnInteractOutside(element, rootRef.current);
9064
+ },
8938
9065
  }, listboxProps: {
8939
9066
  className: "max-h-[200px] overflow-y-auto",
8940
9067
  }, className: "w-full", children: function (item) {
@@ -9678,4 +9805,4 @@ var NavigationLoadingProvider = function (_a) {
9678
9805
  return (jsxs(NavigationLoadingContext.Provider, { value: value, children: [children, jsx(NavigationLoadingOverlay, { isVisible: isVisible })] }));
9679
9806
  };
9680
9807
 
9681
- export { ALL_THEMES, AURORA_THEME_FAMILIES, AURORA_THEME_REGISTRY, AccordionList, AddHolidayForm, AnalyticsCard, AreaLineChart, AuraAutocomplete, AuraTable, AuraToastProvider, BEWEOS_THEME_MODE_COOKIE_NAME, BreadcrumbsComponent, Button, Card, Chip, ColorPicker, ColorSelector, ContentCarousel, Currency, DEFAULT_DONUT_COLORS, DEFAULT_PREDEFINED_COLORS, DEFAULT_RANKED_BAR_COLORS, DatePicker, DateRangePicker, DateSelector, DonutChart, DrawerFilters, EmailPreview, EnumMenuNavListItem, GlobalToast, H1, H2, H3, H4, HeaderComponent, HolidayType, IconComponent, ImagePreview, Input, InputPassword, Kanban, KanbanCard, KanbanColumn, MenuClaw, MenuComponent, Modal, ModalBody, ModalContent, ModalFooter, ModalHeader, MultiStepWizard, NavigationLoadingContext, NavigationLoadingOverlay, NavigationLoadingProvider, P, Pagination, Phone, PromotionalBanner, REGISTERED_THEME_COLORS, RangeFilter, RankedBarList, RowSteps, DEFAULT_TRANSLATIONS$1 as SEGMENTATION_DEFAULT_TRANSLATIONS, ScheduleRow, SearchInput, SegmentationBuilder, Select, SimpleLineChart, SocialMediaBar, SocialMediaCarousel, SocialMediaPreview, StatTile, StepIndicator, Switch as SwitchComponent, THEME_COLOR_HEX_MAP, TagsFilter, Textarea, ThemeContext, ThemePicker, ThemeProvider, TimeInput as TimeInputComponent, ToastContext, Tooltip, TwoColumnLayoutAgent, UploadFile, VerticalSteps, ViolinPlot, WhatsAppPreview, Wizard, WizardNavigation, WizardSidebar, applyCustomPrimaryColor, computeBars, computeMax, computeSlices, computeTotal, createCurrencyFormatter, uniqueCountries as defaultCountries, defaultCurrencyOptions, defaultTranslations$5 as defaultTranslations, forceLightOnlyThemeBeforeReact, formatAuroraThemeTooltip, generateThemeColorScale, getContrastForeground, getRegisteredThemeColorBases, getSelectedKeyFromPath, hexToThemeColor, hslToCssValue, isAuroraFullThemeId, isDonutEmpty, isExactThemeColor, isGroupState, isHexColor, isRankedBarListEmpty, isSegmentationGroup, removeCustomPrimaryColor, sizeMap, themeColors, useAuraToast, useCloseOnAncestorScroll, useMediaQuery, useNavigationLoading, useThemeContext };
9808
+ export { ALL_THEMES, AURORA_THEME_FAMILIES, AURORA_THEME_REGISTRY, AccordionList, AddHolidayForm, AnalyticsCard, AreaLineChart, AuraAutocomplete, AuraTable, AuraToastProvider, BEWEOS_THEME_MODE_COOKIE_NAME, BreadcrumbsComponent, Button, CONTAINER_ATTRIBUTE, Card, Chip, ColorPicker, ColorSelector, ContentCarousel, Currency, DEFAULT_DONUT_COLORS, DEFAULT_PREDEFINED_COLORS, DEFAULT_RANKED_BAR_COLORS, DISMISS_CONTROL_ATTRIBUTE, DatePicker, DateRangePicker, DateSelector, DonutChart, DrawerFilters, EmailPreview, EnumMenuNavListItem, GlobalToast, H1, H2, H3, H4, HeaderComponent, HolidayType, IconComponent, ImagePreview, Input, InputPassword, Kanban, KanbanCard, KanbanColumn, LindaIcon, MenuClaw, MenuComponent, Modal, ModalBody, ModalContent, ModalFooter, ModalHeader, MultiStepWizard, NavigationLoadingContext, NavigationLoadingOverlay, NavigationLoadingProvider, P, Pagination, Phone, PromotionalBanner, REGISTERED_THEME_COLORS, RangeFilter, RankedBarList, RowSteps, DEFAULT_TRANSLATIONS$1 as SEGMENTATION_DEFAULT_TRANSLATIONS, ScheduleRow, SearchInput, SegmentationBuilder, Select, SimpleLineChart, SocialMediaBar, SocialMediaCarousel, SocialMediaPreview, StatTile, StepIndicator, Switch as SwitchComponent, THEME_COLOR_HEX_MAP, TagsFilter, Textarea, ThemeContext, ThemePicker, ThemeProvider, TimeInput as TimeInputComponent, ToastContext, Tooltip, TwoColumnLayoutAgent, UploadFile, VerticalSteps, ViolinPlot, WhatsAppPreview, Wizard, WizardNavigation, WizardSidebar, applyCustomPrimaryColor, computeBars, computeMax, computeSlices, computeTotal, containerProps, createCurrencyFormatter, uniqueCountries as defaultCountries, defaultCurrencyOptions, defaultTranslations$5 as defaultTranslations, dismissControlProps, forceLightOnlyThemeBeforeReact, formatAuroraThemeTooltip, generateThemeColorScale, getContrastForeground, getRegisteredThemeColorBases, getSelectedKeyFromPath, hexToThemeColor, hslToCssValue, isAuroraFullThemeId, isDismissControl, isDonutEmpty, isExactThemeColor, isGroupState, isHexColor, isRankedBarListEmpty, isSegmentationGroup, removeCustomPrimaryColor, shouldClosePopoverOnInteractOutside, sizeMap, themeColors, useAuraToast, useCloseOnAncestorScroll, useMediaQuery, useNavigationLoading, useThemeContext };
@@ -0,0 +1,20 @@
1
+ import type React from "react";
2
+ import type { LindaIconProps } from "./LindaIcon.types";
3
+ /**
4
+ * Icono canónico de Linda para CTAs inteligentes (TECH-2386).
5
+ *
6
+ * SVG empaquetado como import estático — NUNCA usar `@iconify/react` /
7
+ * `IconComponent` con este glifo: los iconos de Iconify se resuelven en
8
+ * runtime contra api.iconify.design y desaparecen (control entero invisible
9
+ * si es `isIconOnly`) cuando ese host no responde — ver TECH-2103/2104.
10
+ * Este componente no depende de red.
11
+ *
12
+ * Glifo: el mismo path ya usado en el producto para señalar acciones de
13
+ * Linda (equivalente al icono "magic-stick" ya presente junto a
14
+ * "Linda Recommended Actions"), resuelto para v1 en TECH-2374 sin
15
+ * diseñadora asignada — funcional-first, sin inventar iconografía nueva.
16
+ * Cuando exista un asset bespoke (identidad "droide retro-futurista"),
17
+ * este es el único componente a sustituir — ver README.md.
18
+ */
19
+ export declare const LindaIcon: React.FC<LindaIconProps>;
20
+ //# sourceMappingURL=LindaIcon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LindaIcon.d.ts","sourceRoot":"","sources":["../../../../src/components/linda-icon/LindaIcon.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExD;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,SAAS,EAAE,KAAK,CAAC,EAAE,CAAC,cAAc,CAyB9C,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type React from "react";
2
+ export interface LindaIconProps extends React.SVGProps<SVGSVGElement> {
3
+ /** Tamaño en píxeles (ancho = alto). Default: 24. */
4
+ size?: number;
5
+ }
6
+ //# sourceMappingURL=LindaIcon.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LindaIcon.types.d.ts","sourceRoot":"","sources":["../../../../src/components/linda-icon/LindaIcon.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,WAAW,cAAe,SAAQ,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC;IACpE,qDAAqD;IACrD,IAAI,CAAC,EAAE,MAAM,CAAC;CACd"}
@@ -0,0 +1,3 @@
1
+ export { LindaIcon } from "./LindaIcon";
2
+ export type { LindaIconProps } from "./LindaIcon.types";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/components/linda-icon/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,YAAY,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"MultiStepWizard.d.ts","sourceRoot":"","sources":["../../../../src/components/multi-step-wizard/MultiStepWizard.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAIpE,eAAO,MAAM,eAAe,GAAI,oHAS7B,oBAAoB,mDA6ItB,CAAC"}
1
+ {"version":3,"file":"MultiStepWizard.d.ts","sourceRoot":"","sources":["../../../../src/components/multi-step-wizard/MultiStepWizard.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAIpE,eAAO,MAAM,eAAe,GAAI,oHAS7B,oBAAoB,mDAmJtB,CAAC"}
@@ -30,5 +30,7 @@ export interface MultiStepWizardTranslations {
30
30
  cancel?: string;
31
31
  next?: string;
32
32
  complete?: string;
33
+ /** Nombre accesible del botón de cerrar (solo icono). Por defecto `"Close"`. */
34
+ close?: string;
33
35
  }
34
36
  //# sourceMappingURL=MultiStepWizard.types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MultiStepWizard.types.d.ts","sourceRoot":"","sources":["../../../../src/components/multi-step-wizard/MultiStepWizard.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,WAAW,IAAI;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACpC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,YAAY,CAAC,EAAE,2BAA2B,CAAC;IAC3C,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,iDAAiD;IACjD,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,wCAAwC;IACxC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,qEAAqE;IACrE,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,2BAA2B;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB"}
1
+ {"version":3,"file":"MultiStepWizard.types.d.ts","sourceRoot":"","sources":["../../../../src/components/multi-step-wizard/MultiStepWizard.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,MAAM,WAAW,IAAI;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,oBAAoB;IACpC,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,YAAY,CAAC,EAAE,2BAA2B,CAAC;IAC3C,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,iDAAiD;IACjD,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,wCAAwC;IACxC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,qEAAqE;IACrE,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC;;;;OAIG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,2BAA2B;IAC3C,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gFAAgF;IAChF,KAAK,CAAC,EAAE,MAAM,CAAC;CACf"}
@@ -1 +1 @@
1
- {"version":3,"file":"MultiStepSidebar.d.ts","sourceRoot":"","sources":["../../../../../src/components/multi-step-wizard/_internal/MultiStepSidebar.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEtE,eAAO,MAAM,gBAAgB,8FA6F5B,CAAC"}
1
+ {"version":3,"file":"MultiStepSidebar.d.ts","sourceRoot":"","sources":["../../../../../src/components/multi-step-wizard/_internal/MultiStepSidebar.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAC;AAO1B,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEtE,eAAO,MAAM,gBAAgB,8FAuG5B,CAAC"}
@@ -9,6 +9,8 @@ export interface MultiStepSidebarProps extends React.HTMLAttributes<HTMLDivEleme
9
9
  onChangePage?: (page: number) => void;
10
10
  steps: Step[];
11
11
  goBackTranslation?: string;
12
+ /** Nombre accesible del botón de cerrar (solo icono). Por defecto `"Close"`. */
13
+ closeTranslation?: string;
12
14
  hideInactiveDescriptions?: boolean;
13
15
  /** Permite cerrar al hacer clic en el backdrop. Por defecto `true`. */
14
16
  isDismissable?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"MultiStepSidebar.types.d.ts","sourceRoot":"","sources":["../../../../../src/components/multi-step-wizard/_internal/MultiStepSidebar.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAErD,MAAM,WAAW,qBAChB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAC5C,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,uEAAuE;IACvE,aAAa,CAAC,EAAE,OAAO,CAAC;CACxB"}
1
+ {"version":3,"file":"MultiStepSidebar.types.d.ts","sourceRoot":"","sources":["../../../../../src/components/multi-step-wizard/_internal/MultiStepSidebar.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAErD,MAAM,WAAW,qBAChB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IAC5C,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACtC,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,gFAAgF;IAChF,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,uEAAuE;IACvE,aAAa,CAAC,EAAE,OAAO,CAAC;CACxB"}
@@ -1 +1 @@
1
- {"version":3,"file":"TagsFilter.d.ts","sourceRoot":"","sources":["../../../../src/components/tags-filter/TagsFilter.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAM/B,OAAO,KAAK,EACX,eAAe,EAEf,MAAM,oBAAoB,CAAC;AAuC5B;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS;IAAE,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,EACpE,KAAK,EACL,KAAK,EACL,QAAQ,EACR,YAAiB,EACjB,KAAK,EACL,SAAiB,EACjB,SAAc,EACd,YAAY,EAAE,SAAS,EACvB,QAAgB,EAChB,WAA2D,EAC3D,SAAkD,EAClD,aAAa,EACb,OAAe,EACf,aAAqB,EACrB,UAAU,EACV,kBAA0B,GAC1B,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,YAAY,CAiPzC;yBAlQe,UAAU"}
1
+ {"version":3,"file":"TagsFilter.d.ts","sourceRoot":"","sources":["../../../../src/components/tags-filter/TagsFilter.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,OAAO,KAAK,EACX,eAAe,EAEf,MAAM,oBAAoB,CAAC;AAuC5B;;;;;GAKG;AACH,wBAAgB,UAAU,CAAC,CAAC,SAAS;IAAE,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,EAAE,EACpE,KAAK,EACL,KAAK,EACL,QAAQ,EACR,YAAiB,EACjB,KAAK,EACL,SAAiB,EACjB,SAAc,EACd,YAAY,EAAE,SAAS,EACvB,QAAgB,EAChB,WAA2D,EAC3D,SAAkD,EAClD,aAAa,EACb,OAAe,EACf,aAAqB,EACrB,UAAU,EACV,kBAA0B,GAC1B,EAAE,eAAe,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,YAAY,CAkQzC;yBAnRe,UAAU"}