@beweco/aurora-ui 0.6.73 → 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/assets/css/styles.css +1 -1
- package/dist/index.cjs.js +121 -9
- package/dist/index.esm.js +116 -10
- package/dist/types/components/multi-step-wizard/MultiStepWizard.d.ts.map +1 -1
- package/dist/types/components/multi-step-wizard/MultiStepWizard.types.d.ts +2 -0
- package/dist/types/components/multi-step-wizard/MultiStepWizard.types.d.ts.map +1 -1
- package/dist/types/components/multi-step-wizard/_internal/MultiStepSidebar.d.ts.map +1 -1
- package/dist/types/components/multi-step-wizard/_internal/MultiStepSidebar.types.d.ts +2 -0
- package/dist/types/components/multi-step-wizard/_internal/MultiStepSidebar.types.d.ts.map +1 -1
- package/dist/types/components/tags-filter/TagsFilter.d.ts.map +1 -1
- package/dist/types/index.d.ts +1 -0
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/utils/dismiss-control.d.ts +61 -0
- package/dist/types/utils/dismiss-control.d.ts.map +1 -0
- package/package.json +1 -1
package/dist/index.cjs.js
CHANGED
|
@@ -4014,6 +4014,96 @@ var MenuClaw = React.memo(function MenuClaw(_a) {
|
|
|
4014
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] }) })] }));
|
|
4015
4015
|
});
|
|
4016
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
|
+
|
|
4017
4107
|
var StepIndicator = function (_a) {
|
|
4018
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"]);
|
|
4019
4109
|
var progressPercentage = Math.min((currentStep / totalSteps) * 100, 100);
|
|
@@ -4197,7 +4287,7 @@ var VerticalSteps = React.forwardRef(function (_a, ref) {
|
|
|
4197
4287
|
VerticalSteps.displayName = "VerticalSteps";
|
|
4198
4288
|
|
|
4199
4289
|
var MultiStepSidebar = React.forwardRef(function (_a, ref) {
|
|
4200
|
-
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,
|
|
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"]);
|
|
4201
4291
|
var handleOverlayClick = function (e) {
|
|
4202
4292
|
if (!isDismissable) {
|
|
4203
4293
|
return;
|
|
@@ -4206,7 +4296,7 @@ var MultiStepSidebar = React.forwardRef(function (_a, ref) {
|
|
|
4206
4296
|
onClose === null || onClose === void 0 ? void 0 : onClose();
|
|
4207
4297
|
}
|
|
4208
4298
|
};
|
|
4209
|
-
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 })] })] })) })));
|
|
4210
4300
|
});
|
|
4211
4301
|
MultiStepSidebar.displayName = "MultiStepSidebar";
|
|
4212
4302
|
|
|
@@ -4233,6 +4323,7 @@ var MultiStepWizard = function (_a) {
|
|
|
4233
4323
|
cancel: "Cancel",
|
|
4234
4324
|
next: "Next",
|
|
4235
4325
|
complete: "Complete",
|
|
4326
|
+
close: "Close",
|
|
4236
4327
|
}, translations);
|
|
4237
4328
|
var paginate = React.useCallback(function (newDirection) {
|
|
4238
4329
|
setPage(function (prev) {
|
|
@@ -4284,14 +4375,11 @@ var MultiStepWizard = function (_a) {
|
|
|
4284
4375
|
if (!isOpen) {
|
|
4285
4376
|
return null;
|
|
4286
4377
|
}
|
|
4287
|
-
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: {
|
|
4288
4379
|
isDisabled: page === 0,
|
|
4289
4380
|
onPress: onBack,
|
|
4290
4381
|
children: t.goBack,
|
|
4291
|
-
}, cancelButtonProps: {
|
|
4292
|
-
onPress: onClose,
|
|
4293
|
-
children: t.cancel,
|
|
4294
|
-
}, nextButtonProps: {
|
|
4382
|
+
}, cancelButtonProps: __assign(__assign({}, dismissControlProps), { onPress: onClose, children: t.cancel }), nextButtonProps: {
|
|
4295
4383
|
children: getButtonText(),
|
|
4296
4384
|
onPress: handleNextAction,
|
|
4297
4385
|
isDisabled: steps[page].isStepValid === false,
|
|
@@ -8864,6 +8952,7 @@ function TagsFilter(_a) {
|
|
|
8864
8952
|
var _m = React.useState(0), autocompleteKey = _m[0], setAutocompleteKey = _m[1];
|
|
8865
8953
|
var selectedList = value !== null && value !== void 0 ? value : [];
|
|
8866
8954
|
var _o = React.useState(null), sentinelNode = _o[0], setSentinelNode = _o[1];
|
|
8955
|
+
var rootRef = React.useRef(null);
|
|
8867
8956
|
React.useEffect(function () {
|
|
8868
8957
|
if (!onLoadMore || !sentinelNode || !hasMore) {
|
|
8869
8958
|
return;
|
|
@@ -8935,7 +9024,7 @@ function TagsFilter(_a) {
|
|
|
8935
9024
|
if (isLoading) {
|
|
8936
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" }) }) }));
|
|
8937
9026
|
}
|
|
8938
|
-
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) {
|
|
8939
9028
|
setInputValue(v);
|
|
8940
9029
|
onInputChange === null || onInputChange === void 0 ? void 0 : onInputChange(v);
|
|
8941
9030
|
}, selectedKey: null, items: itemsWithSentinel, onSelectionChange: handleAutocompleteSelection,
|
|
@@ -8954,7 +9043,24 @@ function TagsFilter(_a) {
|
|
|
8954
9043
|
// intercepts pointer events, blocking the parent modal's close button.
|
|
8955
9044
|
// shouldCloseOnInteractOutside already handles closing on outside clicks.
|
|
8956
9045
|
isNonModal: true,
|
|
8957
|
-
|
|
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
|
+
},
|
|
8958
9064
|
}, listboxProps: {
|
|
8959
9065
|
className: "max-h-[200px] overflow-y-auto",
|
|
8960
9066
|
}, className: "w-full", children: function (item) {
|
|
@@ -9719,6 +9825,7 @@ exports.AuraToastProvider = AuraToastProvider;
|
|
|
9719
9825
|
exports.BEWEOS_THEME_MODE_COOKIE_NAME = BEWEOS_THEME_MODE_COOKIE_NAME;
|
|
9720
9826
|
exports.BreadcrumbsComponent = BreadcrumbsComponent;
|
|
9721
9827
|
exports.Button = Button;
|
|
9828
|
+
exports.CONTAINER_ATTRIBUTE = CONTAINER_ATTRIBUTE;
|
|
9722
9829
|
exports.Card = Card;
|
|
9723
9830
|
exports.Chip = Chip;
|
|
9724
9831
|
exports.ColorPicker = ColorPicker;
|
|
@@ -9728,6 +9835,7 @@ exports.Currency = Currency;
|
|
|
9728
9835
|
exports.DEFAULT_DONUT_COLORS = DEFAULT_DONUT_COLORS;
|
|
9729
9836
|
exports.DEFAULT_PREDEFINED_COLORS = DEFAULT_PREDEFINED_COLORS;
|
|
9730
9837
|
exports.DEFAULT_RANKED_BAR_COLORS = DEFAULT_RANKED_BAR_COLORS;
|
|
9838
|
+
exports.DISMISS_CONTROL_ATTRIBUTE = DISMISS_CONTROL_ATTRIBUTE;
|
|
9731
9839
|
exports.DatePicker = DatePicker;
|
|
9732
9840
|
exports.DateRangePicker = DateRangePicker;
|
|
9733
9841
|
exports.DateSelector = DateSelector;
|
|
@@ -9801,10 +9909,12 @@ exports.computeBars = computeBars;
|
|
|
9801
9909
|
exports.computeMax = computeMax;
|
|
9802
9910
|
exports.computeSlices = computeSlices;
|
|
9803
9911
|
exports.computeTotal = computeTotal;
|
|
9912
|
+
exports.containerProps = containerProps;
|
|
9804
9913
|
exports.createCurrencyFormatter = createCurrencyFormatter;
|
|
9805
9914
|
exports.defaultCountries = uniqueCountries;
|
|
9806
9915
|
exports.defaultCurrencyOptions = defaultCurrencyOptions;
|
|
9807
9916
|
exports.defaultTranslations = defaultTranslations$5;
|
|
9917
|
+
exports.dismissControlProps = dismissControlProps;
|
|
9808
9918
|
exports.forceLightOnlyThemeBeforeReact = forceLightOnlyThemeBeforeReact;
|
|
9809
9919
|
exports.formatAuroraThemeTooltip = formatAuroraThemeTooltip;
|
|
9810
9920
|
exports.generateThemeColorScale = generateThemeColorScale;
|
|
@@ -9814,6 +9924,7 @@ exports.getSelectedKeyFromPath = getSelectedKeyFromPath;
|
|
|
9814
9924
|
exports.hexToThemeColor = hexToThemeColor;
|
|
9815
9925
|
exports.hslToCssValue = hslToCssValue;
|
|
9816
9926
|
exports.isAuroraFullThemeId = isAuroraFullThemeId;
|
|
9927
|
+
exports.isDismissControl = isDismissControl;
|
|
9817
9928
|
exports.isDonutEmpty = isDonutEmpty;
|
|
9818
9929
|
exports.isExactThemeColor = isExactThemeColor;
|
|
9819
9930
|
exports.isGroupState = isGroupState;
|
|
@@ -9821,6 +9932,7 @@ exports.isHexColor = isHexColor;
|
|
|
9821
9932
|
exports.isRankedBarListEmpty = isRankedBarListEmpty;
|
|
9822
9933
|
exports.isSegmentationGroup = isSegmentationGroup;
|
|
9823
9934
|
exports.removeCustomPrimaryColor = removeCustomPrimaryColor;
|
|
9935
|
+
exports.shouldClosePopoverOnInteractOutside = shouldClosePopoverOnInteractOutside;
|
|
9824
9936
|
exports.sizeMap = sizeMap;
|
|
9825
9937
|
exports.themeColors = themeColors;
|
|
9826
9938
|
exports.useAuraToast = useAuraToast;
|
package/dist/index.esm.js
CHANGED
|
@@ -4015,6 +4015,96 @@ var MenuClaw = React.memo(function MenuClaw(_a) {
|
|
|
4015
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] }) })] }));
|
|
4016
4016
|
});
|
|
4017
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
|
+
|
|
4018
4108
|
var StepIndicator = function (_a) {
|
|
4019
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"]);
|
|
4020
4110
|
var progressPercentage = Math.min((currentStep / totalSteps) * 100, 100);
|
|
@@ -4198,7 +4288,7 @@ var VerticalSteps = React.forwardRef(function (_a, ref) {
|
|
|
4198
4288
|
VerticalSteps.displayName = "VerticalSteps";
|
|
4199
4289
|
|
|
4200
4290
|
var MultiStepSidebar = React.forwardRef(function (_a, ref) {
|
|
4201
|
-
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,
|
|
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"]);
|
|
4202
4292
|
var handleOverlayClick = function (e) {
|
|
4203
4293
|
if (!isDismissable) {
|
|
4204
4294
|
return;
|
|
@@ -4207,7 +4297,7 @@ var MultiStepSidebar = React.forwardRef(function (_a, ref) {
|
|
|
4207
4297
|
onClose === null || onClose === void 0 ? void 0 : onClose();
|
|
4208
4298
|
}
|
|
4209
4299
|
};
|
|
4210
|
-
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 })] })] })) })));
|
|
4211
4301
|
});
|
|
4212
4302
|
MultiStepSidebar.displayName = "MultiStepSidebar";
|
|
4213
4303
|
|
|
@@ -4234,6 +4324,7 @@ var MultiStepWizard = function (_a) {
|
|
|
4234
4324
|
cancel: "Cancel",
|
|
4235
4325
|
next: "Next",
|
|
4236
4326
|
complete: "Complete",
|
|
4327
|
+
close: "Close",
|
|
4237
4328
|
}, translations);
|
|
4238
4329
|
var paginate = React.useCallback(function (newDirection) {
|
|
4239
4330
|
setPage(function (prev) {
|
|
@@ -4285,14 +4376,11 @@ var MultiStepWizard = function (_a) {
|
|
|
4285
4376
|
if (!isOpen) {
|
|
4286
4377
|
return null;
|
|
4287
4378
|
}
|
|
4288
|
-
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: {
|
|
4289
4380
|
isDisabled: page === 0,
|
|
4290
4381
|
onPress: onBack,
|
|
4291
4382
|
children: t.goBack,
|
|
4292
|
-
}, cancelButtonProps: {
|
|
4293
|
-
onPress: onClose,
|
|
4294
|
-
children: t.cancel,
|
|
4295
|
-
}, nextButtonProps: {
|
|
4383
|
+
}, cancelButtonProps: __assign(__assign({}, dismissControlProps), { onPress: onClose, children: t.cancel }), nextButtonProps: {
|
|
4296
4384
|
children: getButtonText(),
|
|
4297
4385
|
onPress: handleNextAction,
|
|
4298
4386
|
isDisabled: steps[page].isStepValid === false,
|
|
@@ -8865,6 +8953,7 @@ function TagsFilter(_a) {
|
|
|
8865
8953
|
var _m = useState(0), autocompleteKey = _m[0], setAutocompleteKey = _m[1];
|
|
8866
8954
|
var selectedList = value !== null && value !== void 0 ? value : [];
|
|
8867
8955
|
var _o = useState(null), sentinelNode = _o[0], setSentinelNode = _o[1];
|
|
8956
|
+
var rootRef = useRef(null);
|
|
8868
8957
|
useEffect(function () {
|
|
8869
8958
|
if (!onLoadMore || !sentinelNode || !hasMore) {
|
|
8870
8959
|
return;
|
|
@@ -8936,7 +9025,7 @@ function TagsFilter(_a) {
|
|
|
8936
9025
|
if (isLoading) {
|
|
8937
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" }) }) }));
|
|
8938
9027
|
}
|
|
8939
|
-
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) {
|
|
8940
9029
|
setInputValue(v);
|
|
8941
9030
|
onInputChange === null || onInputChange === void 0 ? void 0 : onInputChange(v);
|
|
8942
9031
|
}, selectedKey: null, items: itemsWithSentinel, onSelectionChange: handleAutocompleteSelection,
|
|
@@ -8955,7 +9044,24 @@ function TagsFilter(_a) {
|
|
|
8955
9044
|
// intercepts pointer events, blocking the parent modal's close button.
|
|
8956
9045
|
// shouldCloseOnInteractOutside already handles closing on outside clicks.
|
|
8957
9046
|
isNonModal: true,
|
|
8958
|
-
|
|
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
|
+
},
|
|
8959
9065
|
}, listboxProps: {
|
|
8960
9066
|
className: "max-h-[200px] overflow-y-auto",
|
|
8961
9067
|
}, className: "w-full", children: function (item) {
|
|
@@ -9699,4 +9805,4 @@ var NavigationLoadingProvider = function (_a) {
|
|
|
9699
9805
|
return (jsxs(NavigationLoadingContext.Provider, { value: value, children: [children, jsx(NavigationLoadingOverlay, { isVisible: isVisible })] }));
|
|
9700
9806
|
};
|
|
9701
9807
|
|
|
9702
|
-
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, 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, 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 };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiStepWizard.d.ts","sourceRoot":"","sources":["../../../../src/components/multi-step-wizard/MultiStepWizard.tsx"],"names":[],"mappings":"
|
|
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;
|
|
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;
|
|
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;
|
|
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"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -61,6 +61,7 @@ export * from "./components/range-filter";
|
|
|
61
61
|
export * from "./components/simple-line-chart";
|
|
62
62
|
export * from "./components/segmentation-builder";
|
|
63
63
|
export * from "./components/tags-filter";
|
|
64
|
+
export * from "./utils/dismiss-control";
|
|
64
65
|
export * from "./utils/formatters";
|
|
65
66
|
export { Modal, ModalContent, ModalHeader, ModalBody, ModalFooter, type ModalProps, } from "./components/modal";
|
|
66
67
|
export { AuraAutocomplete, type AuraAutocompleteProps, } from "./components/autocomplete";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Interacciones que un popover no-modal NO debe tratar como "clic fuera".
|
|
3
|
+
*
|
|
4
|
+
* El problema que resuelve: `useOverlay` de react-aria trata cualquier
|
|
5
|
+
* pulsación fuera del popover como interacción externa y, cuando el popover es
|
|
6
|
+
* el overlay visible más reciente, hace `stopPropagation()` + `preventDefault()`
|
|
7
|
+
* sobre el `pointerdown` **y** sobre el `click`
|
|
8
|
+
* (`@react-aria/overlays/useOverlay`). El evento nunca llega a su destino, así
|
|
9
|
+
* que `usePress` no registra la pulsación y `onPress` no se dispara: el primer
|
|
10
|
+
* clic solo cierra el desplegable.
|
|
11
|
+
*
|
|
12
|
+
* Para un clic en la página de fondo eso es lo correcto: descartar el
|
|
13
|
+
* desplegable sin activar nada por debajo. Dentro del mismo diálogo no: ahí el
|
|
14
|
+
* usuario está rellenando un formulario y espera que su clic llegue. Y como los
|
|
15
|
+
* buscadores se reabren al recuperar el foco, el clic siguiente se volvía a
|
|
16
|
+
* tragar — un callejón sin salida del que solo se salía vaciando el campo.
|
|
17
|
+
*
|
|
18
|
+
* La única palanca es `shouldCloseOnInteractOutside`: es el guardián de esos dos
|
|
19
|
+
* `preventDefault`. Devolviendo `false` para lo que no es realmente "fuera", la
|
|
20
|
+
* pulsación llega intacta. El desplegable sigue cerrándose igual, pero por
|
|
21
|
+
* pérdida de foco (`shouldCloseOnBlur`) en vez de por interacción externa.
|
|
22
|
+
*/
|
|
23
|
+
/**
|
|
24
|
+
* Marca un botón como control de cierre de su contenedor. Los popovers de Aura
|
|
25
|
+
* no lo cuentan como interacción externa, así que su pulsación no se pierde.
|
|
26
|
+
*/
|
|
27
|
+
export declare const DISMISS_CONTROL_ATTRIBUTE = "data-aura-dismiss";
|
|
28
|
+
/** Props a esparcir en un control de cierre: `<Button {...dismissControlProps} />`. */
|
|
29
|
+
export declare const dismissControlProps: {
|
|
30
|
+
readonly "data-aura-dismiss": "true";
|
|
31
|
+
};
|
|
32
|
+
/**
|
|
33
|
+
* Marca el contenedor de una superficie modal propia (wizard, panel a medida).
|
|
34
|
+
* No hace falta en `Modal` ni `Drawer`: los diálogos de HeroUI ya traen
|
|
35
|
+
* `role="dialog"`, que cuenta igual.
|
|
36
|
+
*/
|
|
37
|
+
export declare const CONTAINER_ATTRIBUTE = "data-aura-container";
|
|
38
|
+
/** Props a esparcir en el contenedor: `<div {...containerProps}>`. */
|
|
39
|
+
export declare const containerProps: {
|
|
40
|
+
readonly "data-aura-container": "true";
|
|
41
|
+
};
|
|
42
|
+
/** `true` si el elemento es un control de cierre (o está dentro de uno). */
|
|
43
|
+
export declare const isDismissControl: (element: Element | null | undefined) => boolean;
|
|
44
|
+
/**
|
|
45
|
+
* Predicado listo para `popoverProps.shouldCloseOnInteractOutside` de un
|
|
46
|
+
* componente con popover no-modal.
|
|
47
|
+
*
|
|
48
|
+
* Devuelve `false` —no es interacción externa— en tres casos:
|
|
49
|
+
*
|
|
50
|
+
* 1. Dentro del propio componente: el popover vive en un portal, así que el
|
|
51
|
+
* campo de búsqueda queda fuera de él y una pulsación sobre el texto se
|
|
52
|
+
* contaba como externa.
|
|
53
|
+
* 2. Sobre un control de cierre del contenedor.
|
|
54
|
+
* 3. Dentro del mismo diálogo/contenedor que el componente: seguir rellenando
|
|
55
|
+
* el formulario no es descartar el desplegable.
|
|
56
|
+
*
|
|
57
|
+
* @param element Elemento donde ha empezado la interacción.
|
|
58
|
+
* @param root Raíz del componente.
|
|
59
|
+
*/
|
|
60
|
+
export declare const shouldClosePopoverOnInteractOutside: (element: Element, root: Element | null | undefined) => boolean;
|
|
61
|
+
//# sourceMappingURL=dismiss-control.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dismiss-control.d.ts","sourceRoot":"","sources":["../../../src/utils/dismiss-control.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH;;;GAGG;AACH,eAAO,MAAM,yBAAyB,sBAAsB,CAAC;AAE7D,uFAAuF;AACvF,eAAO,MAAM,mBAAmB;;CAEtB,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,mBAAmB,wBAAwB,CAAC;AAEzD,sEAAsE;AACtE,eAAO,MAAM,cAAc;;CAEjB,CAAC;AAsBX,4EAA4E;AAC5E,eAAO,MAAM,gBAAgB,GAC5B,SAAS,OAAO,GAAG,IAAI,GAAG,SAAS,KACjC,OAA6D,CAAC;AAEjE;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,mCAAmC,GAC/C,SAAS,OAAO,EAChB,MAAM,OAAO,GAAG,IAAI,GAAG,SAAS,KAC9B,OAaF,CAAC"}
|