UNPKG

analytica-frontend-lib

Version:

Repositório público dos componentes utilizados nas plataformas da Analytica Ensino

89 lines (87 loc) 2.52 kB
import { useMobile } from "./chunk-GKY77WVA.mjs"; import { IconButton_default } from "./chunk-LGQNMQOT.mjs"; import { DropdownMenuContent, DropdownMenuTrigger, DropdownMenu_default } from "./chunk-DHHHYBOU.mjs"; import { Modal_default } from "./chunk-TNLGS7SB.mjs"; // src/components/CalendarCard/CalendarCard.tsx import { CalendarBlankIcon } from "@phosphor-icons/react/dist/csr/CalendarBlank"; import { useCallback, useState } from "react"; import { Fragment, jsx, jsxs } from "react/jsx-runtime"; var CalendarCard = ({ content, isOpen, onOpenChange, title = "Calend\xE1rio", className }) => { const { isMobile } = useMobile(); const [internalOpen, setInternalOpen] = useState(false); const isControlled = isOpen !== void 0; const effectiveOpen = isControlled ? isOpen : internalOpen; const handleOpenChange = useCallback( (open) => { if (!isControlled) { setInternalOpen(open); } onOpenChange?.(open); }, [isControlled, onOpenChange] ); const iconColor = effectiveOpen ? "text-primary-950" : "text-primary"; const triggerIcon = /* @__PURE__ */ jsx(CalendarBlankIcon, { size: 24, className: iconColor }); if (isMobile) { return /* @__PURE__ */ jsxs(Fragment, { children: [ /* @__PURE__ */ jsx( IconButton_default, { active: effectiveOpen, onClick: () => handleOpenChange(!effectiveOpen), icon: triggerIcon, className } ), /* @__PURE__ */ jsx( Modal_default, { isOpen: effectiveOpen, onClose: () => handleOpenChange(false), title, children: /* @__PURE__ */ jsx("div", { className: "flex justify-center", children: content }) } ) ] }); } return /* @__PURE__ */ jsxs(DropdownMenu_default, { open: effectiveOpen, onOpenChange: handleOpenChange, children: [ /* @__PURE__ */ jsx( DropdownMenuTrigger, { className: `text-primary cursor-pointer ${className ?? ""}`, children: /* @__PURE__ */ jsx(IconButton_default, { active: effectiveOpen, icon: triggerIcon }) } ), /* @__PURE__ */ jsx( DropdownMenuContent, { className: "w-[320px] max-w-[calc(100vw-16px)] max-h-[80vh] overflow-y-auto", align: "end", side: "bottom", children: content } ) ] }); }; var CalendarCard_default = CalendarCard; export { CalendarCard, CalendarCard_default }; //# sourceMappingURL=chunk-3VAKGCMF.mjs.map