UNPKG

@premieroctet/next-admin

Version:

Next-Admin provides a customizable and turnkey admin dashboard for applications built with Next.js and powered by the Prisma ORM. It aims to simplify the development process by providing a turnkey admin system that can be easily integrated into your proje

73 lines (72 loc) 3.72 kB
import { jsx, jsxs } from "react/jsx-runtime"; import { Transition, TransitionChild } from "@headlessui/react"; import { ChevronDownIcon, EllipsisVerticalIcon } from "@heroicons/react/24/outline"; import external_clsx_default from "clsx"; import Link_mjs_default from "./common/Link.mjs"; import { useState } from "react"; import { useI18n } from "../context/I18nContext.mjs"; import { Dropdown, DropdownBody, DropdownContent, DropdownItem, DropdownTrigger } from "./radix/Dropdown.mjs"; const ExportDropdown = ({ exports })=>{ const { t } = useI18n(); const [isOpen, setIsOpen] = useState(false); return /*#__PURE__*/ jsxs(Dropdown, { onOpenChange: setIsOpen, children: [ /*#__PURE__*/ jsx(DropdownTrigger, { asChild: true, className: "text-nextadmin-content-inverted dark:text-dark-nextadmin-brand-inverted border-nextadmin-border-default dark:border-dark-nextadmin-border-default dark:bg-dark-nextadmin-background-subtle flex items-center gap-x-2 rounded-md border bg-transparent px-3 py-2 text-sm", "data-testid": "actions-dropdown", children: /*#__PURE__*/ jsx("button", { type: "button", children: /*#__PURE__*/ jsxs("div", { className: "flex gap-1", children: [ /*#__PURE__*/ jsx("span", { className: "hidden md:block", children: t("export.label") }), /*#__PURE__*/ jsx(ChevronDownIcon, { className: "hidden h-5 w-5 md:block", "aria-hidden": "true" }), /*#__PURE__*/ jsx(EllipsisVerticalIcon, { className: "block h-5 w-5 md:hidden", "aria-hidden": "true" }) ] }) }) }), /*#__PURE__*/ jsx(DropdownBody, { forceMount: true, children: /*#__PURE__*/ jsx(Transition, { show: isOpen, children: /*#__PURE__*/ jsx(TransitionChild, { as: DropdownContent, className: "min-w-[10rem] p-2", sideOffset: 4, "data-testid": "actions-dropdown-content", enter: "transition-all ease-out", enterFrom: "opacity-0 -translate-y-1", enterTo: "opacity-100 translate-y-0", leave: "transition-all ease-in", leaveFrom: "opacity-100 translate-y-0", leaveTo: "opacity-0 -translate-y-1", children: exports?.map(({ format, url })=>/*#__PURE__*/ jsx(DropdownItem, { className: external_clsx_default("cursor-pointer rounded-md px-2 py-1"), children: /*#__PURE__*/ jsx(Link_mjs_default, { href: url, target: "_blank", children: t("list.row.actions.export", { format: format }) }) }, format)) }) }) }) ] }); }; const components_ExportDropdown = ExportDropdown; export { components_ExportDropdown as default };