analytica-frontend-lib
Version:
Repositório público dos componentes utilizados nas plataformas da Analytica Ensino
649 lines (611 loc) • 25.1 kB
JavaScript
;Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
var _chunkHVKHZMBSjs = require('./chunk-HVKHZMBS.js');
var _chunkORRSVKFKjs = require('./chunk-ORRSVKFK.js');
var _chunkTCLRDUMFjs = require('./chunk-TCLRDUMF.js');
var _chunk34ST3MKOjs = require('./chunk-34ST3MKO.js');
var _chunkANT66KVKjs = require('./chunk-ANT66KVK.js');
var _chunkTN3AYOMVjs = require('./chunk-TN3AYOMV.js');
// src/components/DropdownMenu/DropdownMenu.tsx
var _CaretRight = require('@phosphor-icons/react/dist/csr/CaretRight');
var _SignOut = require('@phosphor-icons/react/dist/csr/SignOut');
var _User = require('@phosphor-icons/react/dist/csr/User');
var _react = require('react');
var _reactdom = require('react-dom');
var _zustand = require('zustand');
var _jsxruntime = require('react/jsx-runtime');
function createDropdownStore() {
return _zustand.create.call(void 0, (set) => ({
open: false,
// Bail out when the value didn't change. Skipping `set` here prevents
// zustand from creating a new state object, which in turn keeps
// `useStore(store, (s) => s)` subscribers from re-rendering on no-op
// syncs (e.g. the `useEffect [propOpen]` controlled-mode bridge).
setOpen: (open) => set((state) => state.open === open ? state : { open })
}));
}
var useDropdownStore = (externalStore) => {
if (!externalStore) {
throw new Error(
"Component must be used within a DropdownMenu (store is missing)"
);
}
return externalStore;
};
var PORTAL_STYLE_KEYS = [
"top",
"bottom",
"left",
"right",
"transform"
];
var isSamePortalStyle = (a, b) => PORTAL_STYLE_KEYS.every((key) => a[key] === b[key]);
var injectStore = (children, store) => {
return _react.Children.map(children, (child) => {
if (_react.isValidElement.call(void 0, child)) {
const typedChild = child;
const displayName = typedChild.type.displayName;
const allowed = [
"DropdownMenuTrigger",
"DropdownContent",
"DropdownMenuContent",
"DropdownMenuSeparator",
"DropdownMenuItem",
"MenuLabel",
"ProfileMenuTrigger",
"ProfileMenuHeader",
"ProfileMenuFooter",
"ProfileToggleTheme"
];
let newProps = {};
if (allowed.includes(displayName)) {
newProps.store = store;
}
if (typedChild.props.children) {
newProps.children = injectStore(typedChild.props.children, store);
}
return _react.cloneElement.call(void 0, typedChild, newProps);
}
return child;
});
};
var DropdownMenu = ({
children,
open: propOpen,
onOpenChange
}) => {
const storeRef = _react.useRef.call(void 0, null);
storeRef.current ??= createDropdownStore();
const store = storeRef.current;
const { open, setOpen: storeSetOpen } = _zustand.useStore.call(void 0, store, (s) => s);
const setOpen = (newOpen) => {
storeSetOpen(newOpen);
};
const menuRef = _react.useRef.call(void 0, null);
const handleArrowDownOrArrowUp = (event) => {
const menuContent = _nullishCoalesce(_optionalChain([menuRef, 'access', _ => _.current, 'optionalAccess', _2 => _2.querySelector, 'call', _3 => _3('[role="menu"]')]), () => ( document.querySelector(
'[data-dropdown-content="true"][data-open="true"]'
)));
if (menuContent) {
event.preventDefault();
const items = Array.from(
menuContent.querySelectorAll(
'[role="menuitem"]:not([aria-disabled="true"])'
)
).filter((el) => el instanceof HTMLElement);
if (items.length === 0) return;
const focusedItem = document.activeElement;
const currentIndex = items.indexOf(focusedItem);
let nextIndex;
if (event.key === "ArrowDown") {
nextIndex = currentIndex === -1 ? 0 : (currentIndex + 1) % items.length;
} else {
nextIndex = currentIndex === -1 ? items.length - 1 : (currentIndex - 1 + items.length) % items.length;
}
_optionalChain([items, 'access', _4 => _4[nextIndex], 'optionalAccess', _5 => _5.focus, 'call', _6 => _6()]);
}
};
const handleDownkey = (event) => {
if (event.key === "Escape") {
setOpen(false);
} else if (event.key === "ArrowDown" || event.key === "ArrowUp") {
handleArrowDownOrArrowUp(event);
}
};
const handleClickOutside = (event) => {
const target = event.target;
if (_optionalChain([menuRef, 'access', _7 => _7.current, 'optionalAccess', _8 => _8.contains, 'call', _9 => _9(target)])) {
return;
}
if (target instanceof Element && target.closest('[data-dropdown-content="true"]')) {
return;
}
setOpen(false);
};
_react.useEffect.call(void 0, () => {
if (open) {
document.addEventListener("pointerdown", handleClickOutside);
document.addEventListener("keydown", handleDownkey);
}
return () => {
document.removeEventListener("pointerdown", handleClickOutside);
document.removeEventListener("keydown", handleDownkey);
};
}, [open]);
_react.useEffect.call(void 0, () => {
_optionalChain([onOpenChange, 'optionalCall', _10 => _10(open)]);
}, [open, onOpenChange]);
_react.useEffect.call(void 0, () => {
if (propOpen !== void 0) {
setOpen(propOpen);
}
}, [propOpen]);
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "relative", ref: menuRef, children: injectStore(children, store) });
};
var DropdownMenuTrigger = _react.forwardRef.call(void 0, ({ className, children, onClick, store: externalStore, ...props }, ref) => {
const store = useDropdownStore(externalStore);
const open = _zustand.useStore.call(void 0, store, (s) => s.open);
const toggleOpen = () => store.setState({ open: !open });
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
"button",
{
ref,
type: "button",
onClick: (e) => {
e.stopPropagation();
toggleOpen();
_optionalChain([onClick, 'optionalCall', _11 => _11(e)]);
},
"aria-expanded": open,
className: _chunkTN3AYOMVjs.cn.call(void 0,
"appearance-none bg-transparent border-none p-0",
className
),
...props,
children
}
);
});
DropdownMenuTrigger.displayName = "DropdownMenuTrigger";
var ITEM_SIZE_CLASSES = {
small: "text-sm",
medium: "text-md"
};
var SIDE_CLASSES = {
top: "bottom-full",
right: "top-full",
bottom: "top-full",
left: "top-full"
};
var ALIGN_CLASSES = {
start: "left-0",
center: "left-1/2 -translate-x-1/2",
end: "right-0"
};
var MENUCONTENT_VARIANT_CLASSES = {
menu: "p-1",
profile: "p-6"
};
var MenuLabel = _react.forwardRef.call(void 0, ({ className, inset, store: _store, ...props }, ref) => {
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
"div",
{
ref,
className: _chunkTN3AYOMVjs.cn.call(void 0, "text-sm w-full", inset ? "pl-8" : "", className),
...props
}
);
});
MenuLabel.displayName = "MenuLabel";
var DropdownMenuContent = _react.forwardRef.call(void 0,
({
className,
align = "start",
side = "bottom",
variant = "menu",
sideOffset = 4,
children,
store: externalStore,
portal = false,
triggerRef,
...props
}, ref) => {
const store = useDropdownStore(externalStore);
const open = _zustand.useStore.call(void 0, store, (s) => s.open);
const [isVisible, setIsVisible] = _react.useState.call(void 0, open);
const [portalStyle, setPortalStyle] = _react.useState.call(void 0, {});
const contentRef = _react.useRef.call(void 0, null);
_react.useEffect.call(void 0, () => {
if (open) {
setIsVisible(true);
} else {
const timer = setTimeout(() => setIsVisible(false), 200);
return () => clearTimeout(timer);
}
}, [open]);
const updatePortalPosition = _react.useCallback.call(void 0, () => {
if (!portal || !_optionalChain([triggerRef, 'optionalAccess', _12 => _12.current])) return;
const rect = triggerRef.current.getBoundingClientRect();
const style = {};
if (side === "left" || side === "right") {
style.top = rect.top;
if (side === "left") {
style.right = window.innerWidth - rect.left + sideOffset;
} else {
style.left = rect.right + sideOffset;
}
} else {
if (side === "top") {
style.bottom = window.innerHeight - rect.top + sideOffset;
} else {
style.top = rect.bottom + sideOffset;
}
if (align === "end") {
style.right = window.innerWidth - rect.right;
} else if (align === "center") {
style.left = rect.left + rect.width / 2;
style.transform = "translateX(-50%)";
} else {
style.left = rect.left;
}
}
setPortalStyle((prev) => isSamePortalStyle(prev, style) ? prev : style);
}, [portal, triggerRef, align, side, sideOffset]);
_react.useLayoutEffect.call(void 0, () => {
if (open) updatePortalPosition();
}, [open, updatePortalPosition]);
_react.useEffect.call(void 0, () => {
if (!portal || !open) return;
const reposition = () => updatePortalPosition();
window.addEventListener("scroll", reposition, true);
window.addEventListener("resize", reposition);
return () => {
window.removeEventListener("scroll", reposition, true);
window.removeEventListener("resize", reposition);
};
}, [portal, open, updatePortalPosition]);
if (!isVisible) return null;
const getPositionClasses = () => {
if (portal) {
return "fixed";
}
const vertical = SIDE_CLASSES[side];
const horizontal = ALIGN_CLASSES[align];
return `absolute ${vertical} ${horizontal}`;
};
const variantClasses = MENUCONTENT_VARIANT_CLASSES[variant];
const content = /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
"div",
{
ref: portal ? contentRef : ref,
role: "menu",
"data-dropdown-content": "true",
"data-open": open,
className: `
bg-background z-50 min-w-[210px] overflow-hidden rounded-md border bg-popover text-popover-foreground shadow-md border-border-100
${open ? "animate-in fade-in-0 zoom-in-95" : "animate-out fade-out-0 zoom-out-95"}
${getPositionClasses()}
${variantClasses}
${className}
`,
style: {
...portal ? portalStyle : {
marginTop: side === "bottom" ? sideOffset : void 0,
marginBottom: side === "top" ? sideOffset : void 0,
marginLeft: side === "right" ? sideOffset : void 0,
marginRight: side === "left" ? sideOffset : void 0
}
},
...props,
children
}
);
if (portal && typeof document !== "undefined") {
return _reactdom.createPortal.call(void 0, content, document.body);
}
return content;
}
);
DropdownMenuContent.displayName = "DropdownMenuContent";
var DropdownMenuItem = _react.forwardRef.call(void 0,
({
className,
size = "small",
children,
iconRight,
iconLeft,
disabled = false,
onClick,
variant = "menu",
store: externalStore,
preventClose = false,
...props
}, ref) => {
const store = useDropdownStore(externalStore);
const setOpen = _zustand.useStore.call(void 0, store, (s) => s.setOpen);
const sizeClasses = ITEM_SIZE_CLASSES[size];
const handleClick = (e) => {
if (disabled) {
e.preventDefault();
e.stopPropagation();
return;
}
if (e.type === "click") {
_optionalChain([onClick, 'optionalCall', _13 => _13(e)]);
} else if (e.type === "keydown") {
const keyEvent = e;
if (keyEvent.key === "Enter" || keyEvent.key === " ") {
e.currentTarget.click();
}
_optionalChain([props, 'access', _14 => _14.onKeyDown, 'optionalCall', _15 => _15(keyEvent)]);
}
if (!preventClose) {
setOpen(false);
}
};
const getVariantClasses = () => {
if (variant === "profile") {
return "relative flex flex-row justify-between select-none items-center gap-2 rounded-sm p-4 text-sm outline-none transition-colors [&>svg]:size-6 [&>svg]:shrink-0";
}
return "relative flex select-none items-center gap-2 rounded-sm p-3 text-sm outline-none transition-colors [&>svg]:size-4 [&>svg]:shrink-0";
};
const getVariantProps = () => {
return variant === "profile" ? { "data-variant": "profile" } : {};
};
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
"div",
{
ref,
role: "menuitem",
...getVariantProps(),
"aria-disabled": disabled,
className: `
focus-visible:bg-background-50
${getVariantClasses()}
${sizeClasses}
${className}
${disabled ? "cursor-not-allowed text-text-400" : "cursor-pointer hover:bg-background-50 text-text-700 focus:bg-accent focus:text-accent-foreground hover:bg-accent hover:text-accent-foreground"}
`,
onClick: handleClick,
onKeyDown: (e) => {
if (e.key === "Enter" || e.key === " ") {
e.preventDefault();
e.stopPropagation();
handleClick(e);
}
},
tabIndex: disabled ? -1 : 0,
...props,
children: [
iconLeft,
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { className: "w-full", children }),
iconRight
]
}
);
}
);
DropdownMenuItem.displayName = "DropdownMenuItem";
var DropdownMenuSeparator = _react.forwardRef.call(void 0, ({ className, store: _store, ...props }, ref) => /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
"div",
{
ref,
className: _chunkTN3AYOMVjs.cn.call(void 0, "my-1 h-px bg-border-200", className),
...props
}
));
DropdownMenuSeparator.displayName = "DropdownMenuSeparator";
var ProfileMenuTrigger = _react.forwardRef.call(void 0, ({ className, onClick, store: externalStore, ...props }, ref) => {
const store = useDropdownStore(externalStore);
const open = _zustand.useStore.call(void 0, store, (s) => s.open);
const toggleOpen = () => store.setState({ open: !open });
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
"button",
{
ref,
className: _chunkTN3AYOMVjs.cn.call(void 0,
"rounded-lg size-10 bg-primary-50 flex items-center justify-center cursor-pointer",
className
),
onClick: (e) => {
e.stopPropagation();
toggleOpen();
_optionalChain([onClick, 'optionalCall', _16 => _16(e)]);
},
"aria-expanded": open,
...props,
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "size-6 rounded-full bg-primary-100 flex items-center justify-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _User.UserIcon, { className: "text-primary-950", size: 18 }) })
}
);
});
ProfileMenuTrigger.displayName = "ProfileMenuTrigger";
var ProfileMenuHeader = _react.forwardRef.call(void 0, ({ className, name, email, photoUrl, store: _store, ...props }, ref) => {
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
"div",
{
ref,
"data-component": "ProfileMenuHeader",
className: _chunkTN3AYOMVjs.cn.call(void 0,
"flex flex-row gap-4 items-center min-w-[280px]",
className
),
...props,
children: [
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "w-16 h-16 bg-primary-100 rounded-full flex items-center justify-center overflow-hidden flex-shrink-0", children: photoUrl ? /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
"img",
{
src: photoUrl,
alt: "Foto de perfil",
className: "w-full h-full object-cover"
}
) : /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _User.UserIcon, { size: 34, className: "text-primary-800" }) }),
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col min-w-0", children: [
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
_chunkANT66KVKjs.Text_default,
{
size: "xl",
weight: "bold",
color: "text-text-950",
className: "truncate",
children: name
}
),
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkANT66KVKjs.Text_default, { size: "md", color: "text-text-600", className: "truncate", children: email })
] })
]
}
);
});
ProfileMenuHeader.displayName = "ProfileMenuHeader";
var ProfileMenuInfo = _react.forwardRef.call(void 0,
({
className,
schoolName,
classYearName,
schoolYearName,
store: _store,
...props
}, ref) => {
if (!schoolName && !classYearName && !schoolYearName) {
return null;
}
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
"div",
{
ref,
"data-component": "ProfileMenuInfo",
className: _chunkTN3AYOMVjs.cn.call(void 0, "flex flex-row gap-4 items-center", className),
...props,
children: [
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "w-16 h-16" }),
/* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col ", children: [
schoolName && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkANT66KVKjs.Text_default, { size: "md", color: "text-text-600", children: schoolName }),
(classYearName || schoolYearName) && /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "span", { className: "flex flex-row items-center gap-2", children: [
classYearName && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkANT66KVKjs.Text_default, { size: "md", color: "text-text-600", children: classYearName }),
classYearName && schoolYearName && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkANT66KVKjs.Text_default, { size: "md", color: "text-text-600", children: "\u25CF" }),
schoolYearName && /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkANT66KVKjs.Text_default, { size: "md", color: "text-text-600", children: schoolYearName })
] })
] })
]
}
);
}
);
ProfileMenuInfo.displayName = "ProfileMenuInfo";
var ProfileToggleTheme = ({
store: externalStore,
...props
}) => {
const { themeMode, setTheme } = _chunkORRSVKFKjs.useTheme.call(void 0, );
const [modalThemeToggle, setModalThemeToggle] = _react.useState.call(void 0, false);
const [selectedTheme, setSelectedTheme] = _react.useState.call(void 0, themeMode);
const internalStoreRef = _react.useRef.call(void 0, null);
internalStoreRef.current ??= createDropdownStore();
const store = _nullishCoalesce(externalStore, () => ( internalStoreRef.current));
const setOpen = _zustand.useStore.call(void 0, store, (s) => s.setOpen);
const handleClick = (e) => {
e.preventDefault();
e.stopPropagation();
setModalThemeToggle(true);
};
const handleSave = () => {
setTheme(selectedTheme);
setModalThemeToggle(false);
setOpen(false);
};
const handleCancel = () => {
setSelectedTheme(themeMode);
setModalThemeToggle(false);
setOpen(false);
};
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, _jsxruntime.Fragment, { children: [
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
DropdownMenuItem,
{
variant: "profile",
preventClose: true,
store,
iconLeft: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
"svg",
{
width: "24",
height: "24",
viewBox: "0 0 25 25",
fill: "none",
xmlns: "http://www.w3.org/2000/svg",
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0,
"path",
{
d: "M12.5 2.75C15.085 2.75276 17.5637 3.78054 19.3916 5.6084C21.2195 7.43628 22.2473 9.915 22.25 12.5C22.25 14.4284 21.6778 16.3136 20.6064 17.917C19.5352 19.5201 18.0128 20.7699 16.2314 21.5078C14.4499 22.2458 12.489 22.4387 10.5977 22.0625C8.70642 21.6863 6.96899 20.758 5.60547 19.3945C4.24197 18.031 3.31374 16.2936 2.9375 14.4023C2.56129 12.511 2.75423 10.5501 3.49219 8.76855C4.23012 6.98718 5.47982 5.46483 7.08301 4.39355C8.68639 3.32221 10.5716 2.75 12.5 2.75ZM11.75 4.28516C9.70145 4.47452 7.7973 5.42115 6.41016 6.94043C5.02299 8.4599 4.25247 10.4426 4.25 12.5C4.25247 14.5574 5.02299 16.5401 6.41016 18.0596C7.7973 19.5789 9.70145 20.5255 11.75 20.7148V4.28516Z",
fill: "currentColor"
}
)
}
),
iconRight: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _CaretRight.CaretRightIcon, {}),
onClick: handleClick,
onKeyDown: (e) => {
if (e.key === "Enter" || e.key === " ") {
e.preventDefault();
e.stopPropagation();
setModalThemeToggle(true);
}
},
...props,
children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkANT66KVKjs.Text_default, { size: "md", color: "text-text-700", children: "Apar\xEAncia" })
}
),
/* @__PURE__ */ _jsxruntime.jsx.call(void 0,
_chunkTCLRDUMFjs.Modal_default,
{
isOpen: modalThemeToggle,
onClose: handleCancel,
title: "Apar\xEAncia",
size: "md",
footer: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex gap-3", children: [
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk34ST3MKOjs.Button_default, { variant: "outline", onClick: handleCancel, children: "Cancelar" }),
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunk34ST3MKOjs.Button_default, { variant: "solid", onClick: handleSave, children: "Salvar" })
] }),
children: /* @__PURE__ */ _jsxruntime.jsxs.call(void 0, "div", { className: "flex flex-col", children: [
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "p", { className: "text-sm text-text-500", children: "Escolha o tema:" }),
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkHVKHZMBSjs.ThemeToggle, { variant: "with-save", onToggle: setSelectedTheme })
] })
}
)
] });
};
ProfileToggleTheme.displayName = "ProfileToggleTheme";
var ProfileMenuSection = _react.forwardRef.call(void 0, ({ className, children, store: _store, ...props }, ref) => {
return /* @__PURE__ */ _jsxruntime.jsx.call(void 0, "div", { ref, className: _chunkTN3AYOMVjs.cn.call(void 0, "flex flex-col p-2", className), ...props, children });
});
ProfileMenuSection.displayName = "ProfileMenuSection";
var ProfileMenuFooter = ({
className,
disabled = false,
onClick,
store: externalStore,
...props
}) => {
const store = useDropdownStore(externalStore);
const setOpen = _zustand.useStore.call(void 0, store, (s) => s.setOpen);
return /* @__PURE__ */ _jsxruntime.jsxs.call(void 0,
_chunk34ST3MKOjs.Button_default,
{
variant: "outline",
className: _chunkTN3AYOMVjs.cn.call(void 0, "w-full", className),
disabled,
onClick: (e) => {
setOpen(false);
_optionalChain([onClick, 'optionalCall', _17 => _17(e)]);
},
...props,
children: [
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, "span", { className: "mr-2 flex items-center", children: /* @__PURE__ */ _jsxruntime.jsx.call(void 0, _SignOut.SignOutIcon, { className: "text-inherit" }) }),
/* @__PURE__ */ _jsxruntime.jsx.call(void 0, _chunkANT66KVKjs.Text_default, { color: "inherit", children: "Sair" })
]
}
);
};
ProfileMenuFooter.displayName = "ProfileMenuFooter";
var DropdownMenu_default = DropdownMenu;
exports.createDropdownStore = createDropdownStore; exports.useDropdownStore = useDropdownStore; exports.DropdownMenuTrigger = DropdownMenuTrigger; exports.MenuLabel = MenuLabel; exports.DropdownMenuContent = DropdownMenuContent; exports.DropdownMenuItem = DropdownMenuItem; exports.DropdownMenuSeparator = DropdownMenuSeparator; exports.ProfileMenuTrigger = ProfileMenuTrigger; exports.ProfileMenuHeader = ProfileMenuHeader; exports.ProfileMenuInfo = ProfileMenuInfo; exports.ProfileToggleTheme = ProfileToggleTheme; exports.ProfileMenuSection = ProfileMenuSection; exports.ProfileMenuFooter = ProfileMenuFooter; exports.DropdownMenu_default = DropdownMenu_default;
//# sourceMappingURL=chunk-76VXVNA2.js.map