@beweco/aurora-ui 0.6.68 → 0.6.69
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 +53 -7
- package/dist/index.esm.js +53 -7
- package/dist/types/components/menu-claw/MenuClaw.d.ts.map +1 -1
- package/dist/types/components/menu-claw/_internal/menu-claw-nav/MenuClawNavItem.d.ts +17 -0
- package/dist/types/components/menu-claw/_internal/menu-claw-nav/MenuClawNavItem.d.ts.map +1 -0
- package/dist/types/components/menu-claw/_internal/menu-claw-nav/MenuClawNavItem.types.d.ts +18 -0
- package/dist/types/components/menu-claw/_internal/menu-claw-nav/MenuClawNavItem.types.d.ts.map +1 -0
- package/dist/types/components/menu-claw/_internal/menu-claw-nav/index.d.ts +3 -0
- package/dist/types/components/menu-claw/_internal/menu-claw-nav/index.d.ts.map +1 -0
- package/package.json +1 -1
package/dist/index.cjs.js
CHANGED
|
@@ -3768,6 +3768,58 @@ var MenuClawHistoryPanel = React.memo(function MenuClawHistoryPanel(_a) {
|
|
|
3768
3768
|
: "solar:alt-arrow-down-linear", size: "sm", "aria-hidden": true }), isExpanded ? showLessLabel : showMoreLabel] })) : null] })) : null] }));
|
|
3769
3769
|
});
|
|
3770
3770
|
|
|
3771
|
+
/** ¿Está la key seleccionada en este ítem o en cualquiera de sus descendientes? */
|
|
3772
|
+
var containsKey = function (item, key) {
|
|
3773
|
+
var _a;
|
|
3774
|
+
if (!key) {
|
|
3775
|
+
return false;
|
|
3776
|
+
}
|
|
3777
|
+
if (item.key === key) {
|
|
3778
|
+
return true;
|
|
3779
|
+
}
|
|
3780
|
+
return ((_a = item.items) !== null && _a !== void 0 ? _a : []).some(function (child) { return containsKey(child, key); });
|
|
3781
|
+
};
|
|
3782
|
+
/**
|
|
3783
|
+
* Fila del menú. Si el ítem trae `items`, se pinta como grupo desplegable en vez
|
|
3784
|
+
* de como enlace.
|
|
3785
|
+
*
|
|
3786
|
+
* Existe porque `MenuClaw` no puede reutilizar `MenuNavList` (heredaría sus filas
|
|
3787
|
+
* de 44px) pero sí necesita el mismo dato jerárquico: los consumidores mandan
|
|
3788
|
+
* módulos con hijos —Catálogo › Productos/Servicios— y sin este render se
|
|
3789
|
+
* perderían en silencio, porque `MenuNavListItem.items` es opcional y no falla
|
|
3790
|
+
* al compilar.
|
|
3791
|
+
*
|
|
3792
|
+
* El grupo que contiene la ruta activa se despliega solo y no se puede plegar:
|
|
3793
|
+
* si se pudiera, el ítem activo quedaría oculto.
|
|
3794
|
+
*/
|
|
3795
|
+
var MenuClawNavItem = function (_a) {
|
|
3796
|
+
var _b, _c;
|
|
3797
|
+
var item = _a.item, selectedKey = _a.selectedKey, isCollapsed = _a.isCollapsed, onSelect = _a.onSelect, _d = _a.depth, depth = _d === void 0 ? 0 : _d;
|
|
3798
|
+
var submenuId = React.useId();
|
|
3799
|
+
var _e = React.useState(false), isManuallyOpen = _e[0], setIsManuallyOpen = _e[1];
|
|
3800
|
+
var children = (_b = item.items) !== null && _b !== void 0 ? _b : [];
|
|
3801
|
+
// Comprimido no hay sitio para desplegables: la fila vuelve a ser navegable.
|
|
3802
|
+
var isGroup = children.length > 0 && !isCollapsed;
|
|
3803
|
+
var hasSelectedDescendant = React.useMemo(function () { return children.some(function (child) { return containsKey(child, selectedKey); }); }, [children, selectedKey]);
|
|
3804
|
+
var isOpen = hasSelectedDescendant || isManuallyOpen;
|
|
3805
|
+
var isActive = !!item.key && item.key === selectedKey;
|
|
3806
|
+
var handleClick = React.useCallback(function () {
|
|
3807
|
+
if (isGroup) {
|
|
3808
|
+
setIsManuallyOpen(function (prev) { return !prev; });
|
|
3809
|
+
return;
|
|
3810
|
+
}
|
|
3811
|
+
onSelect(item.key, item.href);
|
|
3812
|
+
}, [isGroup, onSelect, item.key, item.href]);
|
|
3813
|
+
var icon = item.icon || item.startContent ? (jsxRuntime.jsx("span", { className: "flex h-5 w-5 shrink-0 items-center justify-center text-default-500 [&_svg]:h-5 [&_svg]:w-5", children: item.icon ? (jsxRuntime.jsx(IconComponent, { icon: item.icon, size: "md", "aria-hidden": true })) : (item.startContent) })) : null;
|
|
3814
|
+
return (jsxRuntime.jsxs("li", { children: [jsxRuntime.jsxs("button", { type: "button", title: isCollapsed ? item.title : undefined, onClick: handleClick, "aria-expanded": isGroup ? isOpen : undefined, "aria-controls": isGroup ? submenuId : undefined, className: react.cn("flex w-full items-center rounded-lg px-2 py-1.5 text-left text-small transition-colors", "focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus", depth === 0 ? "min-h-9" : "min-h-8", isCollapsed ? "justify-center" : "gap-3",
|
|
3815
|
+
// Sangría del hijo: alinea su texto con el del padre (px-2 + icono
|
|
3816
|
+
// de 20px + gap de 12px).
|
|
3817
|
+
!isCollapsed && depth > 0 && !icon ? "pl-10" : undefined, isActive
|
|
3818
|
+
? "bg-default-100 font-medium text-foreground"
|
|
3819
|
+
: "text-default-600 hover:bg-default-100", item.className), children: [icon, !isCollapsed ? (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("span", { className: "menu-claw-collapsible flex-1 truncate", children: item.title }), (_c = item.endContent) !== null && _c !== void 0 ? _c : null, isGroup ? (jsxRuntime.jsx(IconComponent, { icon: "solar:alt-arrow-down-linear", size: "sm", "aria-hidden": true, className: react.cn("shrink-0 text-default-400 transition-transform", isOpen && "rotate-180") })) : null] })) : null] }), isGroup && isOpen ? (jsxRuntime.jsx("ul", { id: submenuId, className: "mt-0.5 flex flex-col gap-0.5", children: children.map(function (child) { return (jsxRuntime.jsx(MenuClawNavItem, { item: child, selectedKey: selectedKey, isCollapsed: isCollapsed, onSelect: onSelect, depth: depth + 1 }, child.key)); }) })) : null] }));
|
|
3820
|
+
};
|
|
3821
|
+
MenuClawNavItem.displayName = "MenuClawNavItem";
|
|
3822
|
+
|
|
3771
3823
|
var DEFAULT_TRANSLATIONS$5 = {
|
|
3772
3824
|
menuLabel: "Menú",
|
|
3773
3825
|
closeSidebarAriaLabel: "Cerrar menú lateral",
|
|
@@ -3878,13 +3930,7 @@ var MenuClaw = React.memo(function MenuClaw(_a) {
|
|
|
3878
3930
|
? "solar:alt-arrow-right-linear"
|
|
3879
3931
|
: "solar:alt-arrow-left-linear", size: "md", "aria-hidden": true }) })] }), jsxRuntime.jsxs("div", { className: react.cn("flex items-center py-3", isCollapsed ? "justify-center gap-0" : "gap-3"), children: [jsxRuntime.jsx(react.Avatar, { size: "sm", src: ((_b = userInfo === null || userInfo === void 0 ? void 0 : userInfo.avatar) === null || _b === void 0 ? void 0 : _b.trim()) || undefined, color: !((_c = userInfo === null || userInfo === void 0 ? void 0 : userInfo.avatar) === null || _c === void 0 ? void 0 : _c.trim()) ? "warning" : "default", name: userName, className: "shrink-0" }), !isCollapsed ? (jsxRuntime.jsxs("div", { className: "menu-claw-collapsible flex min-w-0 flex-col overflow-hidden", children: [jsxRuntime.jsx("p", { className: "truncate text-small font-semibold text-foreground", children: userName }), jsxRuntime.jsx("p", { className: "truncate text-tiny text-default-400", children: userRole })] })) : null] }), jsxRuntime.jsx(MenuClawHistoryPanel, { items: historyConfig.items, initialVisibleCount: historyConfig.initialVisibleCount, onNewConversation: history === null || history === void 0 ? void 0 : history.onNewConversation, isCollapsed: isCollapsed, title: t.historyTitle, newLabel: t.historyNewLabel, showMoreLabel: t.historyShowMoreLabel, showLessLabel: t.historyShowLessLabel, onBeforeSelect: handleSidebarClose }), jsxRuntime.jsx("nav", { className: "flex min-h-0 flex-1 flex-col overflow-y-auto [&::-webkit-scrollbar]:hidden [-ms-overflow-style:none] [scrollbar-width:none]", children: menuItems.items.map(function (group) {
|
|
3880
3932
|
var _a;
|
|
3881
|
-
return (jsxRuntime.jsxs("div", { className: "mb-2", children: [group.title && !isCollapsed ? (jsxRuntime.jsx("p", { className: "px-2 pb-1 pt-2 text-tiny font-medium uppercase tracking-wide text-default-400", children: group.title })) : null, jsxRuntime.jsx("ul", { className: "flex flex-col gap-0.5", children: ((_a = group.items) !== null && _a !== void 0 ? _a : []).map(function (item) {
|
|
3882
|
-
var _a;
|
|
3883
|
-
var isActive = !!item.key && item.key === selectedKey;
|
|
3884
|
-
return (jsxRuntime.jsx("li", { children: jsxRuntime.jsxs("button", { type: "button", title: isCollapsed ? item.title : undefined, onClick: function () { return handleMenuSelect(item.key, item.href); }, className: react.cn("flex min-h-9 w-full items-center rounded-lg px-2 py-1.5 text-left text-small transition-colors", "focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus", isCollapsed ? "justify-center" : "gap-3", isActive
|
|
3885
|
-
? "bg-default-100 font-medium text-foreground"
|
|
3886
|
-
: "text-default-600 hover:bg-default-100", item.className), children: [item.icon || item.startContent ? (jsxRuntime.jsx("span", { className: "flex h-5 w-5 shrink-0 items-center justify-center text-default-500 [&_svg]:h-5 [&_svg]:w-5", children: item.icon ? (jsxRuntime.jsx(IconComponent, { icon: item.icon, size: "md", "aria-hidden": true })) : (item.startContent) })) : null, !isCollapsed ? (jsxRuntime.jsxs(jsxRuntime.Fragment, { children: [jsxRuntime.jsx("span", { className: "menu-claw-collapsible flex-1 truncate", children: item.title }), (_a = item.endContent) !== null && _a !== void 0 ? _a : null] })) : null] }) }, item.key));
|
|
3887
|
-
}) })] }, group.key));
|
|
3933
|
+
return (jsxRuntime.jsxs("div", { className: "mb-2", children: [group.title && !isCollapsed ? (jsxRuntime.jsx("p", { className: "px-2 pb-1 pt-2 text-tiny font-medium uppercase tracking-wide text-default-400", children: group.title })) : null, jsxRuntime.jsx("ul", { className: "flex flex-col gap-0.5", children: ((_a = group.items) !== null && _a !== void 0 ? _a : []).map(function (item) { return (jsxRuntime.jsx(MenuClawNavItem, { item: item, selectedKey: selectedKey, isCollapsed: isCollapsed, onSelect: handleMenuSelect }, item.key)); }) })] }, group.key));
|
|
3888
3934
|
}) }), 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] }) })] }));
|
|
3889
3935
|
});
|
|
3890
3936
|
|
package/dist/index.esm.js
CHANGED
|
@@ -3769,6 +3769,58 @@ var MenuClawHistoryPanel = React.memo(function MenuClawHistoryPanel(_a) {
|
|
|
3769
3769
|
: "solar:alt-arrow-down-linear", size: "sm", "aria-hidden": true }), isExpanded ? showLessLabel : showMoreLabel] })) : null] })) : null] }));
|
|
3770
3770
|
});
|
|
3771
3771
|
|
|
3772
|
+
/** ¿Está la key seleccionada en este ítem o en cualquiera de sus descendientes? */
|
|
3773
|
+
var containsKey = function (item, key) {
|
|
3774
|
+
var _a;
|
|
3775
|
+
if (!key) {
|
|
3776
|
+
return false;
|
|
3777
|
+
}
|
|
3778
|
+
if (item.key === key) {
|
|
3779
|
+
return true;
|
|
3780
|
+
}
|
|
3781
|
+
return ((_a = item.items) !== null && _a !== void 0 ? _a : []).some(function (child) { return containsKey(child, key); });
|
|
3782
|
+
};
|
|
3783
|
+
/**
|
|
3784
|
+
* Fila del menú. Si el ítem trae `items`, se pinta como grupo desplegable en vez
|
|
3785
|
+
* de como enlace.
|
|
3786
|
+
*
|
|
3787
|
+
* Existe porque `MenuClaw` no puede reutilizar `MenuNavList` (heredaría sus filas
|
|
3788
|
+
* de 44px) pero sí necesita el mismo dato jerárquico: los consumidores mandan
|
|
3789
|
+
* módulos con hijos —Catálogo › Productos/Servicios— y sin este render se
|
|
3790
|
+
* perderían en silencio, porque `MenuNavListItem.items` es opcional y no falla
|
|
3791
|
+
* al compilar.
|
|
3792
|
+
*
|
|
3793
|
+
* El grupo que contiene la ruta activa se despliega solo y no se puede plegar:
|
|
3794
|
+
* si se pudiera, el ítem activo quedaría oculto.
|
|
3795
|
+
*/
|
|
3796
|
+
var MenuClawNavItem = function (_a) {
|
|
3797
|
+
var _b, _c;
|
|
3798
|
+
var item = _a.item, selectedKey = _a.selectedKey, isCollapsed = _a.isCollapsed, onSelect = _a.onSelect, _d = _a.depth, depth = _d === void 0 ? 0 : _d;
|
|
3799
|
+
var submenuId = useId();
|
|
3800
|
+
var _e = useState(false), isManuallyOpen = _e[0], setIsManuallyOpen = _e[1];
|
|
3801
|
+
var children = (_b = item.items) !== null && _b !== void 0 ? _b : [];
|
|
3802
|
+
// Comprimido no hay sitio para desplegables: la fila vuelve a ser navegable.
|
|
3803
|
+
var isGroup = children.length > 0 && !isCollapsed;
|
|
3804
|
+
var hasSelectedDescendant = useMemo(function () { return children.some(function (child) { return containsKey(child, selectedKey); }); }, [children, selectedKey]);
|
|
3805
|
+
var isOpen = hasSelectedDescendant || isManuallyOpen;
|
|
3806
|
+
var isActive = !!item.key && item.key === selectedKey;
|
|
3807
|
+
var handleClick = useCallback(function () {
|
|
3808
|
+
if (isGroup) {
|
|
3809
|
+
setIsManuallyOpen(function (prev) { return !prev; });
|
|
3810
|
+
return;
|
|
3811
|
+
}
|
|
3812
|
+
onSelect(item.key, item.href);
|
|
3813
|
+
}, [isGroup, onSelect, item.key, item.href]);
|
|
3814
|
+
var icon = item.icon || item.startContent ? (jsx("span", { className: "flex h-5 w-5 shrink-0 items-center justify-center text-default-500 [&_svg]:h-5 [&_svg]:w-5", children: item.icon ? (jsx(IconComponent, { icon: item.icon, size: "md", "aria-hidden": true })) : (item.startContent) })) : null;
|
|
3815
|
+
return (jsxs("li", { children: [jsxs("button", { type: "button", title: isCollapsed ? item.title : undefined, onClick: handleClick, "aria-expanded": isGroup ? isOpen : undefined, "aria-controls": isGroup ? submenuId : undefined, className: cn("flex w-full items-center rounded-lg px-2 py-1.5 text-left text-small transition-colors", "focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus", depth === 0 ? "min-h-9" : "min-h-8", isCollapsed ? "justify-center" : "gap-3",
|
|
3816
|
+
// Sangría del hijo: alinea su texto con el del padre (px-2 + icono
|
|
3817
|
+
// de 20px + gap de 12px).
|
|
3818
|
+
!isCollapsed && depth > 0 && !icon ? "pl-10" : undefined, isActive
|
|
3819
|
+
? "bg-default-100 font-medium text-foreground"
|
|
3820
|
+
: "text-default-600 hover:bg-default-100", item.className), children: [icon, !isCollapsed ? (jsxs(Fragment, { children: [jsx("span", { className: "menu-claw-collapsible flex-1 truncate", children: item.title }), (_c = item.endContent) !== null && _c !== void 0 ? _c : null, isGroup ? (jsx(IconComponent, { icon: "solar:alt-arrow-down-linear", size: "sm", "aria-hidden": true, className: cn("shrink-0 text-default-400 transition-transform", isOpen && "rotate-180") })) : null] })) : null] }), isGroup && isOpen ? (jsx("ul", { id: submenuId, className: "mt-0.5 flex flex-col gap-0.5", children: children.map(function (child) { return (jsx(MenuClawNavItem, { item: child, selectedKey: selectedKey, isCollapsed: isCollapsed, onSelect: onSelect, depth: depth + 1 }, child.key)); }) })) : null] }));
|
|
3821
|
+
};
|
|
3822
|
+
MenuClawNavItem.displayName = "MenuClawNavItem";
|
|
3823
|
+
|
|
3772
3824
|
var DEFAULT_TRANSLATIONS$5 = {
|
|
3773
3825
|
menuLabel: "Menú",
|
|
3774
3826
|
closeSidebarAriaLabel: "Cerrar menú lateral",
|
|
@@ -3879,13 +3931,7 @@ var MenuClaw = React.memo(function MenuClaw(_a) {
|
|
|
3879
3931
|
? "solar:alt-arrow-right-linear"
|
|
3880
3932
|
: "solar:alt-arrow-left-linear", size: "md", "aria-hidden": true }) })] }), jsxs("div", { className: cn("flex items-center py-3", isCollapsed ? "justify-center gap-0" : "gap-3"), children: [jsx(Avatar, { size: "sm", src: ((_b = userInfo === null || userInfo === void 0 ? void 0 : userInfo.avatar) === null || _b === void 0 ? void 0 : _b.trim()) || undefined, color: !((_c = userInfo === null || userInfo === void 0 ? void 0 : userInfo.avatar) === null || _c === void 0 ? void 0 : _c.trim()) ? "warning" : "default", name: userName, className: "shrink-0" }), !isCollapsed ? (jsxs("div", { className: "menu-claw-collapsible flex min-w-0 flex-col overflow-hidden", children: [jsx("p", { className: "truncate text-small font-semibold text-foreground", children: userName }), jsx("p", { className: "truncate text-tiny text-default-400", children: userRole })] })) : null] }), jsx(MenuClawHistoryPanel, { items: historyConfig.items, initialVisibleCount: historyConfig.initialVisibleCount, onNewConversation: history === null || history === void 0 ? void 0 : history.onNewConversation, isCollapsed: isCollapsed, title: t.historyTitle, newLabel: t.historyNewLabel, showMoreLabel: t.historyShowMoreLabel, showLessLabel: t.historyShowLessLabel, onBeforeSelect: handleSidebarClose }), jsx("nav", { className: "flex min-h-0 flex-1 flex-col overflow-y-auto [&::-webkit-scrollbar]:hidden [-ms-overflow-style:none] [scrollbar-width:none]", children: menuItems.items.map(function (group) {
|
|
3881
3933
|
var _a;
|
|
3882
|
-
return (jsxs("div", { className: "mb-2", children: [group.title && !isCollapsed ? (jsx("p", { className: "px-2 pb-1 pt-2 text-tiny font-medium uppercase tracking-wide text-default-400", children: group.title })) : null, jsx("ul", { className: "flex flex-col gap-0.5", children: ((_a = group.items) !== null && _a !== void 0 ? _a : []).map(function (item) {
|
|
3883
|
-
var _a;
|
|
3884
|
-
var isActive = !!item.key && item.key === selectedKey;
|
|
3885
|
-
return (jsx("li", { children: jsxs("button", { type: "button", title: isCollapsed ? item.title : undefined, onClick: function () { return handleMenuSelect(item.key, item.href); }, className: cn("flex min-h-9 w-full items-center rounded-lg px-2 py-1.5 text-left text-small transition-colors", "focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-focus", isCollapsed ? "justify-center" : "gap-3", isActive
|
|
3886
|
-
? "bg-default-100 font-medium text-foreground"
|
|
3887
|
-
: "text-default-600 hover:bg-default-100", item.className), children: [item.icon || item.startContent ? (jsx("span", { className: "flex h-5 w-5 shrink-0 items-center justify-center text-default-500 [&_svg]:h-5 [&_svg]:w-5", children: item.icon ? (jsx(IconComponent, { icon: item.icon, size: "md", "aria-hidden": true })) : (item.startContent) })) : null, !isCollapsed ? (jsxs(Fragment, { children: [jsx("span", { className: "menu-claw-collapsible flex-1 truncate", children: item.title }), (_a = item.endContent) !== null && _a !== void 0 ? _a : null] })) : null] }) }, item.key));
|
|
3888
|
-
}) })] }, group.key));
|
|
3934
|
+
return (jsxs("div", { className: "mb-2", children: [group.title && !isCollapsed ? (jsx("p", { className: "px-2 pb-1 pt-2 text-tiny font-medium uppercase tracking-wide text-default-400", children: group.title })) : null, jsx("ul", { className: "flex flex-col gap-0.5", children: ((_a = group.items) !== null && _a !== void 0 ? _a : []).map(function (item) { return (jsx(MenuClawNavItem, { item: item, selectedKey: selectedKey, isCollapsed: isCollapsed, onSelect: handleMenuSelect }, item.key)); }) })] }, group.key));
|
|
3889
3935
|
}) }), 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] }) })] }));
|
|
3890
3936
|
});
|
|
3891
3937
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuClaw.d.ts","sourceRoot":"","sources":["../../../../src/components/menu-claw/MenuClaw.tsx"],"names":[],"mappings":"AACA,OAAO,KAA+B,MAAM,OAAO,CAAC;AACpD,OAAO,iBAAiB,CAAC;AAIzB,OAAO,KAAK,EAAE,aAAa,EAAwB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"MenuClaw.d.ts","sourceRoot":"","sources":["../../../../src/components/menu-claw/MenuClaw.tsx"],"names":[],"mappings":"AACA,OAAO,KAA+B,MAAM,OAAO,CAAC;AACpD,OAAO,iBAAiB,CAAC;AAIzB,OAAO,KAAK,EAAE,aAAa,EAAwB,MAAM,kBAAkB,CAAC;AAmB5E;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,QAAQ,EAAE,KAAK,CAAC,EAAE,CAAC,aAAa,CA2Q3C,CAAC"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type React from "react";
|
|
2
|
+
import type { MenuClawNavItemProps } from "./MenuClawNavItem.types";
|
|
3
|
+
/**
|
|
4
|
+
* Fila del menú. Si el ítem trae `items`, se pinta como grupo desplegable en vez
|
|
5
|
+
* de como enlace.
|
|
6
|
+
*
|
|
7
|
+
* Existe porque `MenuClaw` no puede reutilizar `MenuNavList` (heredaría sus filas
|
|
8
|
+
* de 44px) pero sí necesita el mismo dato jerárquico: los consumidores mandan
|
|
9
|
+
* módulos con hijos —Catálogo › Productos/Servicios— y sin este render se
|
|
10
|
+
* perderían en silencio, porque `MenuNavListItem.items` es opcional y no falla
|
|
11
|
+
* al compilar.
|
|
12
|
+
*
|
|
13
|
+
* El grupo que contiene la ruta activa se despliega solo y no se puede plegar:
|
|
14
|
+
* si se pudiera, el ítem activo quedaría oculto.
|
|
15
|
+
*/
|
|
16
|
+
export declare const MenuClawNavItem: React.FC<MenuClawNavItemProps>;
|
|
17
|
+
//# sourceMappingURL=MenuClawNavItem.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuClawNavItem.d.ts","sourceRoot":"","sources":["../../../../../../src/components/menu-claw/_internal/menu-claw-nav/MenuClawNavItem.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAI/B,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAapE;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,eAAe,EAAE,KAAK,CAAC,EAAE,CAAC,oBAAoB,CAqG1D,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { MenuNavListItem } from "../../../menu/_internal/menu-nav-list/MenuNavList.types";
|
|
2
|
+
export type MenuClawNavItemProps = {
|
|
3
|
+
/** Ítem a pintar. Si trae `items`, se renderiza como grupo desplegable. */
|
|
4
|
+
item: MenuNavListItem;
|
|
5
|
+
/** Key del ítem activo, ya resuelta por el menú. */
|
|
6
|
+
selectedKey: string;
|
|
7
|
+
/** Lateral comprimido: solo iconos, sin desplegables. */
|
|
8
|
+
isCollapsed: boolean;
|
|
9
|
+
/** Se invoca al activar un ítem navegable (nunca en el padre desplegable). */
|
|
10
|
+
onSelect: (key: string, href?: string) => void;
|
|
11
|
+
/**
|
|
12
|
+
* Nivel de anidamiento. 0 = módulo, 1 = hijo. Solo afecta a la sangría y al
|
|
13
|
+
* alto de fila; el contrato de datos admite más niveles y se renderizan
|
|
14
|
+
* recursivamente.
|
|
15
|
+
*/
|
|
16
|
+
depth?: number;
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=MenuClawNavItem.types.d.ts.map
|
package/dist/types/components/menu-claw/_internal/menu-claw-nav/MenuClawNavItem.types.d.ts.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuClawNavItem.types.d.ts","sourceRoot":"","sources":["../../../../../../src/components/menu-claw/_internal/menu-claw-nav/MenuClawNavItem.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yDAAyD,CAAC;AAE/F,MAAM,MAAM,oBAAoB,GAAG;IAClC,2EAA2E;IAC3E,IAAI,EAAE,eAAe,CAAC;IACtB,oDAAoD;IACpD,WAAW,EAAE,MAAM,CAAC;IACpB,yDAAyD;IACzD,WAAW,EAAE,OAAO,CAAC;IACrB,8EAA8E;IAC9E,QAAQ,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/C;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CACf,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/components/menu-claw/_internal/menu-claw-nav/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACpD,YAAY,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC"}
|