@mahatisystems/mahati-ui-components 0.1.1
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/index.css +3582 -0
- package/dist/index.css.map +1 -0
- package/dist/index.d.mts +159 -0
- package/dist/index.d.ts +159 -0
- package/dist/index.js +1163 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +1057 -0
- package/dist/index.mjs.map +1 -0
- package/package.json +68 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["d:\\insurgence\\uicomponents\\mahati-designs\\packages\\uicomponents\\dist\\index.mjs"],"names":["React","cva","clsx","twMerge","cn","inputs","buttonVariants","variants","variant","default","destructive","outline","secondary","ghost","link","size","sm","lg","icon","defaultVariants","Button","forwardRef","ref","className","asChild","props","createElement","displayName","React2","cva2","ChevronDown","ChevronUp","cardVariants","elevated","subtle","figma","Card","title","cardContent","cardBackContent","collapsible","flippable","backgroundColor","borderRadius","children","defaultOpen","onFlip","style","useState","open","setOpen","isFlipped","setIsFlipped","contentId","useId","figmaStyles","border","boxShadow","handleFlip","newFlippedState","mainContent","onClick","type","e","stopPropagation","p","id","React3","Modal","isOpen","onClose","fill","viewBox","stroke","strokeLinecap","strokeLinejoin","strokeWidth","d","React4","FormContainer","onSubmit","React5","useEffect","useState2","Input","name","placeholder","onChange","hasError","errorMessage","value","internalValue","setInternalValue","showError","setShowError","handleChange","newValue","target","React6","useState3","useId2","TabbedInterface","tabs","defaultActiveTab","onTabChange","activeTab","setActiveTab","PRIMARY_COLOR","ACCENT_COLOR","handleTabClick","index","disabled","getTabButtonStyles","isActive","baseStyles","disabledStyles","getUnderlineBarClasses","role","map","tab","key","label","content","React7","useState4","ArrowDownOnSquareIcon","ArrowPathIcon","XMarkIcon","Table","headers","data","page","setPage","limit","setLimit","totalCount","highlightRowColor","actions","paginationRequired","paginationPosition","onDownloadPDF","onDownloadExcel","searchable","searchTerm","onResetSearch","onSearch","searchModeOptions","searchMode","setSearchMode","isPaginated","totalPages","Math","max","ceil","currentPage","goToPage","clamped","min","renderPageNumbers","pages","push","i","background","siblings","start","end","renderPagination","align","includes","Number","Fragment","mode","startsWith","length","header","idx","row","rowIndex","cellIdx","isValidElement","result","console","warn","trim","endsWith","dangerouslySetInnerHTML","__html","Array","isArray","some","item","join","Date","toLocaleString","toString","JSON","stringify","String","colSpan","React8","useState5","ArrowDownOnSquareIcon2","ArrowPathIcon2","XMarkIcon2","TableTailwind","React9","useState6","Tooltip","text","position","textColor","image","animation","visible","setVisible","showAnimation","setShowAnimation","showTooltip","delay","triggerDelay","setTimeout","hideTooltip","containerClasses","defaultTooltipClasses","transparentTooltipClasses","positionClasses","top","right","bottom","left","arrowBaseClasses","arrowPositionClasses","arrowBackgroundClass","tooltipClasses","renderTooltipContent","src","alt","width","height","loading","renderAnimation","AnimationComponent","component","onMouseEnter","onMouseLeave","onFocus","onBlur","React10","useState7","variantStyles","basic","pill","dark","underline","shadow","glass","gradient","Dropdown","options","onSelect","selected","setSelected","handleSelect","option","opt","MahatiButton","MahatiCard","MahatiDropdown","MahatiFormContainer","MahatiInput","MahatiModal","MahatiTabbedInterface","MahatiTable","MahatiTableTailwind","MahatiTooltip"],"mappings":"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","sourcesContent":["// src/components/Button.tsx\nimport React from \"react\";\nimport { cva } from \"class-variance-authority\";\n\n// src/lib/utils.ts\nimport { clsx } from \"clsx\";\nimport { twMerge } from \"tailwind-merge\";\nfunction cn(...inputs) {\n return twMerge(clsx(inputs));\n}\n\n// src/components/Button.tsx\nvar buttonVariants = cva(\n // Use regular Tailwind classes that will be processed by consumer's Tailwind\n \"inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\",\n {\n variants: {\n variant: {\n default: \"bg-primary text-primary-foreground hover:bg-primary/90\",\n destructive: \"purple\",\n outline: \"border border-input bg-background hover:bg-accent hover:text-accent-foreground\",\n secondary: \"bg-secondary text-secondary-foreground hover:bg-secondary/80\",\n ghost: \"hover:bg-accent hover:text-accent-foreground\",\n link: \"text-primary underline-offset-4 hover:underline\"\n },\n size: {\n default: \"h-10 px-4 py-2\",\n sm: \"h-9 rounded-md px-3\",\n lg: \"h-11 rounded-md px-8\",\n icon: \"h-10 w-10\"\n }\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\"\n }\n }\n);\nvar Button = React.forwardRef(\n ({ className, variant, size, asChild = false, ...props }, ref) => {\n return /* @__PURE__ */ React.createElement(\n \"button\",\n {\n className: cn(buttonVariants({ variant, size, className })),\n ref,\n ...props\n }\n );\n }\n);\nButton.displayName = \"Button\";\n\n// src/components/Card.tsx\nimport * as React2 from \"react\";\nimport { cva as cva2 } from \"class-variance-authority\";\nimport { ChevronDown, ChevronUp } from \"lucide-react\";\nvar cardVariants = cva2(\n \"rounded-[14px] transition-all duration-300 shadow-[0_4px_4px_0_rgba(0,0,0,0.25)]\",\n {\n variants: {\n variant: {\n default: \"bg-white text-slate-800 border border-slate-200 hover:shadow-lg\",\n elevated: \"bg-white shadow-md border border-transparent\",\n outline: \"bg-slate-50 border border-slate-200\",\n subtle: \"bg-slate-50 border border-transparent\",\n figma: \"\"\n // Empty - will use inline styles\n },\n size: {\n default: \"p-6 rounded-[14px]\",\n sm: \"p-4\",\n lg: \"p-8\",\n figma: \"w-[280px] p-6\"\n // Removed fixed height\n }\n },\n defaultVariants: {\n variant: \"default\",\n size: \"default\"\n }\n }\n);\nvar Card = React2.forwardRef(\n ({\n title,\n cardContent,\n cardBackContent,\n collapsible = false,\n flippable = false,\n backgroundColor,\n borderRadius,\n variant,\n size,\n className,\n children,\n defaultOpen = true,\n onFlip,\n style,\n ...props\n }, ref) => {\n const [open, setOpen] = React2.useState(defaultOpen);\n const [isFlipped, setIsFlipped] = React2.useState(false);\n const contentId = React2.useId();\n const figmaStyles = variant === \"figma\" ? {\n backgroundColor: backgroundColor || \"rgba(77, 175, 131, 0.10)\",\n border: \"1px solid #1761A3\",\n boxShadow: \"0 4px 4px 0 rgba(0, 0, 0, 0.25)\",\n borderRadius: \"14px\",\n ...style\n } : backgroundColor ? { backgroundColor, ...style } : style;\n const handleFlip = () => {\n if (!flippable) return;\n const newFlippedState = !isFlipped;\n setIsFlipped(newFlippedState);\n onFlip?.(newFlippedState);\n };\n const mainContent = cardContent || children;\n return /* @__PURE__ */ React2.createElement(\"div\", { className: cn(flippable && \"[perspective:1000px] group\"), onClick: handleFlip }, /* @__PURE__ */ React2.createElement(\n \"div\",\n {\n ref,\n ...props,\n style: figmaStyles,\n className: cn(\n cardVariants({ variant, size, className }),\n flippable && \"relative transition-transform duration-700 [transform-style:preserve-3d]\",\n flippable && isFlipped && \"[transform:rotateY(180deg)]\",\n className\n )\n },\n /* @__PURE__ */ React2.createElement(\"div\", { className: cn(flippable && \"[backface-visibility:hidden]\") }, title && /* @__PURE__ */ React2.createElement(\n \"div\",\n {\n className: cn(\"flex items-center justify-between\", {\n \"mb-4\": open && mainContent\n // Only add margin if content is visible\n })\n },\n /* @__PURE__ */ React2.createElement(\"h4\", { className: \"text-xl font-semibold text-slate-800\" }, title),\n collapsible && /* @__PURE__ */ React2.createElement(\n \"button\",\n {\n type: \"button\",\n style: {\n backgroundColor: \"#1761A3\"\n },\n className: \"z-10 flex items-center justify-center w-8 h-8 rounded-full hover:opacity-80 transition-opacity duration-200 focus:outline-none focus:ring-2 focus:ring-[#1761A3] focus:ring-offset-2\",\n onClick: (e) => {\n if (flippable) e.stopPropagation();\n setOpen((p) => !p);\n },\n \"aria-label\": open ? \"Hide content\" : \"Show content\",\n \"aria-expanded\": open,\n \"aria-controls\": contentId\n },\n open ? /* @__PURE__ */ React2.createElement(ChevronUp, { className: \"w-5 h-5 text-white\" }) : /* @__PURE__ */ React2.createElement(ChevronDown, { className: \"w-5 h-5 text-white\" })\n )\n ), mainContent && /* @__PURE__ */ React2.createElement(\n \"div\",\n {\n id: contentId,\n className: cn(\n \"grid overflow-hidden transition-all duration-500 ease-in-out\",\n open ? \"grid-rows-[1fr] opacity-100\" : \"grid-rows-[0fr] opacity-0\"\n )\n },\n /* @__PURE__ */ React2.createElement(\"div\", { className: \"overflow-hidden\" }, mainContent)\n )),\n flippable && cardBackContent && /* @__PURE__ */ React2.createElement(\"div\", { className: \"absolute inset-0 w-full h-full p-6 [backface-visibility:hidden] [transform:rotateY(180deg)]\" }, cardBackContent)\n ));\n }\n);\nCard.displayName = \"Card\";\n\n// src/components/Modal.tsx\nimport React3 from \"react\";\nvar Modal = ({\n isOpen,\n onClose,\n title,\n children,\n className\n}) => {\n if (!isOpen) return null;\n return /* @__PURE__ */ React3.createElement(\"div\", { className: \"fixed inset-0 z-50\" }, /* @__PURE__ */ React3.createElement(\n \"div\",\n {\n className: \"fixed inset-0 bg-black bg-opacity-50 transition-opacity\",\n onClick: onClose\n }\n ), /* @__PURE__ */ React3.createElement(\"div\", { className: \"fixed inset-0 overflow-y-auto\" }, /* @__PURE__ */ React3.createElement(\"div\", { className: \"flex min-h-full items-center justify-center p-4\" }, /* @__PURE__ */ React3.createElement(\n \"div\",\n {\n className: cn(\n \"relative transform overflow-hidden rounded-lg bg-white px-4 pb-4 pt-5 shadow-xl transition-all sm:my-8 sm:w-full sm:max-w-lg sm:p-6\",\n className\n ),\n onClick: (e) => e.stopPropagation()\n },\n /* @__PURE__ */ React3.createElement(\n \"button\",\n {\n onClick: onClose,\n className: \"absolute right-4 top-4 text-gray-400 hover:text-gray-500\"\n },\n /* @__PURE__ */ React3.createElement(\"span\", { className: \"sr-only\" }, \"Close\"),\n /* @__PURE__ */ React3.createElement(\"svg\", { className: \"h-6 w-6\", fill: \"none\", viewBox: \"0 0 24 24\", stroke: \"currentColor\" }, /* @__PURE__ */ React3.createElement(\"path\", { strokeLinecap: \"round\", strokeLinejoin: \"round\", strokeWidth: 2, d: \"M6 18L18 6M6 6l12 12\" }))\n ),\n title && /* @__PURE__ */ React3.createElement(\"div\", { className: \"mb-4\" }, /* @__PURE__ */ React3.createElement(\"h3\", { className: \"text-lg font-medium leading-6 text-gray-900\" }, title)),\n /* @__PURE__ */ React3.createElement(\"div\", { className: \"mt-2 text-black\" }, children)\n ))));\n};\nModal.displayName = \"Modal\";\n\n// src/components/FormContainer.tsx\nimport React4 from \"react\";\nvar FormContainer = ({ children, onSubmit, className = \"\" }) => {\n return /* @__PURE__ */ React4.createElement(\n \"form\",\n {\n onSubmit,\n className: `\n flex flex-col items-center justify-center\n w-full max-w-[560px] min-h-[80vh] mx-auto p-6\n bg-white shadow-lg rounded-lg\n ${className}\n `\n },\n children\n );\n};\nFormContainer.displayName = \"FormContainer\";\n\n// src/components/Input.tsx\nimport React5, { useEffect, useState as useState2 } from \"react\";\nvar Input = ({\n type = \"text\",\n name,\n placeholder,\n onChange,\n hasError = false,\n errorMessage = \"\",\n value = \"\",\n className = \"\"\n}) => {\n const [internalValue, setInternalValue] = useState2(value);\n const [showError, setShowError] = useState2(false);\n useEffect(() => {\n setInternalValue(value);\n setShowError(hasError || value === \"\");\n }, [value, hasError]);\n const handleChange = (e) => {\n const newValue = e.target.value;\n setInternalValue(newValue);\n onChange(e);\n setShowError(newValue === \"\");\n };\n return /* @__PURE__ */ React5.createElement(\"div\", { className: \"mb-4\" }, /* @__PURE__ */ React5.createElement(\n \"input\",\n {\n type,\n name,\n placeholder,\n value: internalValue,\n onChange: handleChange,\n className: `\n w-[438px] max-w-full h-[44px] flex-shrink-0\n rounded-[6px] border\n ${showError ? \"border-red-500\" : \"border-[#D9D9D9]\"}\n bg-white\n text-base leading-5\n outline-none\n ${className}\n `\n }\n ), /* @__PURE__ */ React5.createElement(\"span\", { className: \"block text-sm text-red-500 h-[0.8rem]\" }, errorMessage));\n};\nInput.displayName = \"Input\";\n\n// src/components/TabbedInterface.tsx\nimport React6, { useState as useState3, useId as useId2 } from \"react\";\nvar TabbedInterface = ({\n tabs,\n variant = \"basic\",\n defaultActiveTab = 0,\n className = \"\",\n onTabChange\n}) => {\n const [activeTab, setActiveTab] = useState3(defaultActiveTab);\n const id = useId2();\n const PRIMARY_COLOR = \"#1e73be\";\n const ACCENT_COLOR = \"#4DAF83\";\n const handleTabClick = (index) => {\n if (tabs[index]?.disabled) return;\n setActiveTab(index);\n onTabChange?.(index);\n };\n const getTabButtonStyles = (index) => {\n const isActive = index === activeTab;\n const baseStyles = \"flex items-center justify-center gap-2 px-6 py-3 text-sm font-semibold transition-all duration-200 focus:outline-none focus:ring-2 focus:ring-blue-500 focus:ring-offset-2 whitespace-nowrap flex-shrink-0\";\n const disabledStyles = \"opacity-50 cursor-not-allowed\";\n if (tabs[index]?.disabled) {\n return `${baseStyles} ${disabledStyles} text-gray-500`;\n }\n switch (variant) {\n case \"basic\":\n return `${baseStyles} ${isActive ? `text-[${PRIMARY_COLOR}] border-b-2 border-[${PRIMARY_COLOR}]` : \"text-gray-600 hover:text-gray-800 hover:border-b-2 hover:border-gray-300\"}`;\n case \"underline\":\n return `${baseStyles} relative ${// Make button relative for absolute underline span\n isActive ? `text-[${PRIMARY_COLOR}]` : \"text-gray-600 hover:text-gray-800\"}`;\n case \"pill\":\n return `${baseStyles} rounded-full font-semibold text-[14px] leading-normal ${isActive ? `bg-white text-[${PRIMARY_COLOR}] border border-gray-400 shadow-md` : `bg-[#EEF4F7] text-[${PRIMARY_COLOR}] border border-[rgba(38,118,154,0.45)] hover:bg-blue-100`}`;\n case \"square\":\n return `${baseStyles} rounded-[6px] border border-[rgba(38,118,154,0.45)] font-semibold text-[14px] leading-normal ${isActive ? `bg-white text-[${PRIMARY_COLOR}]` : \"bg-[#EEF4F7] text-gray-600 hover:bg-gray-200\"}`;\n case \"dark\":\n return `${baseStyles} rounded-lg ${isActive ? \"bg-gray-700 text-white shadow-md\" : \"bg-gray-800 text-gray-300 hover:bg-gray-700 hover:text-white\"}`;\n case \"shadow\":\n return `${baseStyles} rounded-lg ${isActive ? `bg-white text-[${PRIMARY_COLOR}] shadow-lg` : \"bg-gray-50 text-gray-600 shadow-sm hover:bg-white\"}`;\n case \"glass\":\n return `${baseStyles} rounded-lg border border-white/30 backdrop-blur-lg ${isActive ? `bg-[${PRIMARY_COLOR}]/40 text-white shadow-md` : `bg-white/20 text-[${PRIMARY_COLOR}] hover:bg-[${PRIMARY_COLOR}]/50 hover:text-white`}`;\n case \"gradient\":\n return `${baseStyles} rounded-lg ${isActive ? `bg-gradient-to-r from-[${PRIMARY_COLOR}] to-[${ACCENT_COLOR}] text-white shadow-md` : `bg-gray-100 text-[${PRIMARY_COLOR}] hover:bg-gray-200`}`;\n default:\n return `${baseStyles} ${isActive ? `text-[${PRIMARY_COLOR}]` : \"text-gray-600 hover:text-gray-800\"}`;\n }\n };\n const getUnderlineBarClasses = (index) => {\n const isActive = index === activeTab;\n if (variant === \"underline\") {\n return `absolute bottom-0 left-0 h-[3px] bg-gradient-to-r from-[${PRIMARY_COLOR}] to-[${ACCENT_COLOR}] transition-all duration-300 ease-out ${isActive ? \"w-full\" : \"w-0\"}`;\n }\n return \"hidden\";\n };\n return /* @__PURE__ */ React6.createElement(\"div\", { className: `w-full bg-[#EEF4F7] rounded-lg border border-gray-200 shadow-sm ${className}` }, /* @__PURE__ */ React6.createElement(\"div\", { className: \"flex flex-row overflow-x-auto scrollbar-hide space-x-4 p-4\", role: \"tablist\" }, tabs.map((tab, index) => /* @__PURE__ */ React6.createElement(\n \"button\",\n {\n key: tab.id || `tab-${id}-${index}`,\n className: getTabButtonStyles(index),\n onClick: () => handleTabClick(index),\n disabled: tab.disabled,\n \"aria-selected\": index === activeTab,\n \"aria-controls\": `${id}-tabpanel-${index}`,\n role: \"tab\",\n type: \"button\"\n },\n tab.icon && /* @__PURE__ */ React6.createElement(\"span\", { className: \"flex-shrink-0 w-4 h-4\" }, tab.icon),\n /* @__PURE__ */ React6.createElement(\"span\", { className: \"truncate\" }, tab.label),\n variant === \"underline\" && /* @__PURE__ */ React6.createElement(\"span\", { className: getUnderlineBarClasses(index) })\n ))), /* @__PURE__ */ React6.createElement(\"div\", { className: \"h-[2px] flex-shrink-0 bg-[#D9D9D9]\" }), /* @__PURE__ */ React6.createElement(\n \"div\",\n {\n id: `${id}-tabpanel-${activeTab}`,\n role: \"tabpanel\",\n \"aria-labelledby\": `${id}-tab-${activeTab}`,\n className: \"p-6 animate-fade-in bg-white\"\n },\n tabs[activeTab]?.content || /* @__PURE__ */ React6.createElement(\"div\", { className: \"text-center text-gray-500 py-8\" }, \"No content available for this tab\")\n ));\n};\nTabbedInterface.displayName = \"TabbedInterface\";\n\n// src/components/Table.tsx\nimport React7, { useState as useState4 } from \"react\";\nimport { ArrowDownOnSquareIcon, ArrowPathIcon, XMarkIcon } from \"@heroicons/react/24/outline\";\nvar Table = ({\n headers,\n data,\n page,\n setPage,\n limit,\n setLimit,\n totalCount,\n highlightRowColor,\n actions,\n paginationRequired,\n paginationPosition = \"bottom-center\",\n onDownloadPDF,\n onDownloadExcel,\n searchable = false,\n searchTerm = \"\",\n onResetSearch,\n onSearch,\n searchModeOptions = [\"includes\", \"startsWith\"]\n}) => {\n const [searchMode, setSearchMode] = useState4(searchModeOptions[0]);\n const isPaginated = paginationRequired;\n const handleChange = (e) => {\n onSearch?.(e.target.value, searchMode);\n };\n const totalPages = isPaginated ? Math.max(1, Math.ceil((totalCount || 0) / (limit || 1))) : 0;\n const currentPage = isPaginated ? typeof page === \"number\" && page > 0 ? page : 1 : 1;\n const goToPage = (p) => {\n if (!isPaginated) return;\n const clamped = Math.max(1, Math.min(totalPages, p));\n setPage?.(clamped);\n };\n const renderPageNumbers = () => {\n if (!isPaginated || totalPages <= 1) return null;\n const pages = [];\n const siblings = 1;\n pages.push(\n /* @__PURE__ */ React7.createElement(\n \"button\",\n {\n key: 1,\n onClick: () => goToPage(1),\n disabled: currentPage === 1,\n className: \"inline-flex items-center rounded-md px-3 py-1 text-sm font-medium text-white disabled:cursor-not-allowed disabled:opacity-50\",\n style: {\n background: currentPage === 1 ? \"#ccc\" : \"linear-gradient(to right, #1e73be, #28a97d)\"\n }\n },\n \"1\"\n )\n );\n if (currentPage > siblings + 2) {\n pages.push(\n /* @__PURE__ */ React7.createElement(\"span\", { key: \"start-ellipsis\", className: \"px-1 text-sm text-slate-500\" }, \"...\")\n );\n }\n const start = Math.max(2, currentPage - siblings);\n const end = Math.min(totalPages - 1, currentPage + siblings);\n for (let i = start; i <= end; i++) {\n pages.push(\n /* @__PURE__ */ React7.createElement(\n \"button\",\n {\n key: i,\n onClick: () => goToPage(i),\n disabled: currentPage === i,\n className: \"inline-flex items-center rounded-md px-3 py-1 text-sm font-medium text-white disabled:cursor-not-allowed disabled:opacity-50\",\n style: {\n background: currentPage === i ? \"#ccc\" : \"linear-gradient(to right, #1e73be, #28a97d)\"\n }\n },\n i\n )\n );\n }\n if (currentPage < totalPages - siblings - 1) {\n pages.push(\n /* @__PURE__ */ React7.createElement(\"span\", { key: \"end-ellipsis\", className: \"px-1 text-sm text-slate-500\" }, \"...\")\n );\n }\n if (totalPages > 1) {\n pages.push(\n /* @__PURE__ */ React7.createElement(\n \"button\",\n {\n key: totalPages,\n onClick: () => goToPage(totalPages),\n disabled: currentPage === totalPages,\n className: \"inline-flex items-center rounded-md px-3 py-1 text-sm font-medium text-white disabled:cursor-not-allowed disabled:opacity-50\",\n style: {\n background: currentPage === totalPages ? \"#ccc\" : \"linear-gradient(to right, #1e73be, #28a97d)\"\n }\n },\n totalPages\n )\n );\n }\n return pages;\n };\n const renderPagination = () => {\n if (!isPaginated) return null;\n const align = paginationPosition.includes(\"left\") ? \"justify-start\" : paginationPosition.includes(\"right\") ? \"justify-end\" : \"justify-center\";\n return /* @__PURE__ */ React7.createElement(\"div\", { className: `my-2 flex w-full ${align}` }, /* @__PURE__ */ React7.createElement(\"div\", { className: \"flex flex-wrap items-center justify-center gap-2\" }, /* @__PURE__ */ React7.createElement(\n \"button\",\n {\n onClick: () => goToPage(currentPage - 1),\n disabled: currentPage === 1,\n className: \"inline-flex items-center rounded-md px-3 py-1 text-sm font-medium text-white disabled:cursor-not-allowed disabled:opacity-50\",\n style: {\n background: currentPage === 1 ? \"#ccc\" : \"linear-gradient(to right, #1e73be, #28a97d)\"\n }\n },\n \"Previous\"\n ), renderPageNumbers(), /* @__PURE__ */ React7.createElement(\n \"button\",\n {\n onClick: () => goToPage(currentPage + 1),\n disabled: currentPage === totalPages,\n className: \"inline-flex items-center rounded-md px-3 py-1 text-sm font-medium text-white disabled:cursor-not-allowed disabled:opacity-50\",\n style: {\n background: currentPage === totalPages ? \"#ccc\" : \"linear-gradient(to right, #1e73be, #28a97d)\"\n }\n },\n \"Next\"\n ), /* @__PURE__ */ React7.createElement(\n \"select\",\n {\n value: limit,\n onChange: (e) => {\n setPage?.(1);\n setLimit?.(Number(e.target.value));\n },\n className: \"ml-2 rounded-md border border-slate-300 px-2 py-1 text-sm text-slate-700\"\n },\n [5, 10, 15].map((size) => /* @__PURE__ */ React7.createElement(\"option\", { key: size, value: size }, size))\n ), /* @__PURE__ */ React7.createElement(\"span\", { className: \"ml-2 text-xs text-slate-600\" }, \"Page \", currentPage, \" of \", totalPages, \" (Total: \", totalCount, \" items)\")));\n };\n return /* @__PURE__ */ React7.createElement(React7.Fragment, null, (searchable || onDownloadExcel || onDownloadPDF) && /* @__PURE__ */ React7.createElement(\"div\", { className: \"mb-3 flex flex-wrap items-center justify-between gap-3\" }, searchable && /* @__PURE__ */ React7.createElement(\"div\", { className: \"flex items-center gap-2\" }, /* @__PURE__ */ React7.createElement(\"div\", { className: \"relative flex items-center\" }, /* @__PURE__ */ React7.createElement(\n \"input\",\n {\n type: \"text\",\n placeholder: \"Search...\",\n value: searchTerm,\n onChange: handleChange,\n className: \"w-56 rounded-lg border border-transparent bg-white px-3 py-2 pr-8 text-sm font-medium text-[#1761A3] shadow-sm outline-none ring-1 ring-transparent transition focus:border-transparent focus:ring-2 focus:ring-emerald-400\"\n }\n ), searchTerm && /* @__PURE__ */ React7.createElement(\n \"button\",\n {\n onClick: onResetSearch,\n \"aria-label\": \"Clear search\",\n className: \"absolute right-2 flex h-6 w-6 items-center justify-center rounded-full text-slate-400 transition hover:bg-slate-100 hover:text-slate-700\"\n },\n /* @__PURE__ */ React7.createElement(XMarkIcon, { className: \"h-4 w-4\" })\n )), /* @__PURE__ */ React7.createElement(\n \"select\",\n {\n value: searchMode,\n onChange: (e) => setSearchMode(e.target.value),\n className: \"rounded-lg border border-transparent bg-white px-2 py-2 text-sm font-medium text-slate-700 shadow-sm outline-none ring-1 ring-transparent transition hover:bg-slate-50 focus:border-transparent focus:ring-2 focus:ring-emerald-400\"\n },\n searchModeOptions.map((mode) => /* @__PURE__ */ React7.createElement(\"option\", { key: mode, value: mode }, mode === \"startsWith\" ? \"Starts With\" : \"Includes\"))\n )), (onDownloadPDF || onDownloadExcel) && /* @__PURE__ */ React7.createElement(\"div\", { className: \"mt-1 flex items-center gap-2\" }, onDownloadPDF && /* @__PURE__ */ React7.createElement(\n \"button\",\n {\n onClick: () => onDownloadPDF(data, headers),\n className: \"inline-flex items-center gap-1 rounded-md px-3 py-2 text-sm font-medium text-white shadow-sm hover:opacity-90\",\n style: {\n background: \"linear-gradient(to right, #1e73be, #28a97d)\"\n }\n },\n /* @__PURE__ */ React7.createElement(ArrowDownOnSquareIcon, { className: \"h-5 w-5\" })\n ), onDownloadExcel && /* @__PURE__ */ React7.createElement(\n \"button\",\n {\n onClick: () => onDownloadExcel(data, headers),\n className: \"inline-flex items-center gap-1 rounded-md px-3 py-2 text-sm font-medium text-white shadow-sm hover:opacity-90\",\n style: {\n background: \"linear-gradient(to right, #1e73be, #28a97d)\"\n }\n },\n /* @__PURE__ */ React7.createElement(ArrowDownOnSquareIcon, { className: \"h-5 w-5\" }),\n /* @__PURE__ */ React7.createElement(\"span\", null, \"Excel\")\n ))), paginationPosition.startsWith(\"top\") && data.length > 0 && renderPagination(), /* @__PURE__ */ React7.createElement(\"div\", { className: \"mt-1 overflow-hidden rounded-xl border border-[#1761A3] bg-white\" }, /* @__PURE__ */ React7.createElement(\"table\", { className: \"w-full border-collapse\" }, /* @__PURE__ */ React7.createElement(\n \"thead\",\n {\n style: {\n background: \"linear-gradient(to right, #1e73be, #28a97d)\"\n }\n },\n /* @__PURE__ */ React7.createElement(\"tr\", null, headers.map((header, idx) => /* @__PURE__ */ React7.createElement(\n \"th\",\n {\n key: idx,\n className: `h-[50px] px-3 py-2 text-left text-sm font-bold text-white first:rounded-tl-xl last:rounded-tr-xl`\n },\n header.label\n )), actions && /* @__PURE__ */ React7.createElement(\"th\", { className: \"h-[50px] px-3 py-2 text-left text-sm font-bold text-white\" }, \"Actions\"))\n ), /* @__PURE__ */ React7.createElement(\"tbody\", null, data.length > 0 ? data.map((row, rowIndex) => /* @__PURE__ */ React7.createElement(\n \"tr\",\n {\n key: rowIndex,\n className: `h-[57px] border-b border-slate-200 text-sm text-slate-900 even:bg-slate-50 hover:bg-slate-100 ${highlightRowColor || \"\"}`\n },\n headers.map((header, cellIdx) => /* @__PURE__ */ React7.createElement(\"td\", { key: cellIdx, className: \"px-3 py-2\" }, (() => {\n const value = row[header.key];\n if (React7.isValidElement(value)) return value;\n if (typeof value === \"function\") {\n try {\n const result = value();\n if (React7.isValidElement(result)) return result;\n } catch (e) {\n console.warn(\"Error executing function in table cell:\", e);\n }\n }\n if (typeof value === \"string\" && value.trim().startsWith(\"<\") && value.trim().endsWith(\">\")) {\n return /* @__PURE__ */ React7.createElement(\n \"span\",\n {\n dangerouslySetInnerHTML: { __html: value }\n }\n );\n }\n if (Array.isArray(value)) {\n if (value.some((item) => React7.isValidElement(item))) {\n return /* @__PURE__ */ React7.createElement(React7.Fragment, null, value);\n }\n return value.join(\", \");\n }\n if (value instanceof Date) return value.toLocaleString();\n if (typeof value === \"boolean\") return value ? \"Yes\" : \"No\";\n if (value === null || value === void 0) return \"-\";\n if (typeof value === \"number\") return value.toString();\n if (typeof value === \"object\") return JSON.stringify(value);\n return String(value);\n })())),\n actions && /* @__PURE__ */ React7.createElement(\"td\", { className: \"px-3 py-2\" }, actions(row))\n )) : /* @__PURE__ */ React7.createElement(\"tr\", null, /* @__PURE__ */ React7.createElement(\n \"td\",\n {\n colSpan: headers.length + (actions ? 1 : 0),\n className: \"px-4 py-6 text-center text-slate-500\"\n },\n /* @__PURE__ */ React7.createElement(\"div\", { className: \"flex items-center justify-center gap-4\" }, /* @__PURE__ */ React7.createElement(\"span\", null, \"No records found.\"), onResetSearch && /* @__PURE__ */ React7.createElement(\n \"button\",\n {\n onClick: onResetSearch,\n className: \"inline-flex items-center gap-1 rounded-md px-3 py-2 text-sm font-medium text-white shadow-sm hover:opacity-90\",\n style: {\n background: \"linear-gradient(to right, #1e73be, #28a97d)\"\n }\n },\n /* @__PURE__ */ React7.createElement(\"span\", null, \"Reset\"),\n /* @__PURE__ */ React7.createElement(ArrowPathIcon, { className: \"h-5 w-5\" })\n ))\n ))))), paginationPosition.startsWith(\"bottom\") && data.length > 0 && renderPagination());\n};\nTable.displayName = \"Table\";\n\n// src/components/TableTailwindCSS.tsx\nimport React8, { useState as useState5 } from \"react\";\nimport { ArrowDownOnSquareIcon as ArrowDownOnSquareIcon2, ArrowPathIcon as ArrowPathIcon2, XMarkIcon as XMarkIcon2 } from \"@heroicons/react/24/outline\";\nvar TableTailwind = ({\n headers,\n data,\n page,\n setPage,\n limit,\n setLimit,\n totalCount,\n highlightRowColor,\n actions,\n paginationRequired,\n paginationPosition = \"bottom-center\",\n onDownloadPDF,\n onDownloadExcel,\n searchable = false,\n searchTerm = \"\",\n onResetSearch,\n onSearch,\n searchModeOptions = [\"includes\", \"startsWith\"]\n}) => {\n const [searchMode, setSearchMode] = useState5(searchModeOptions[0]);\n const isPaginated = paginationRequired;\n const handleChange = (e) => {\n onSearch?.(e.target.value, searchMode);\n };\n const totalPages = isPaginated ? Math.max(1, Math.ceil((totalCount || 0) / (limit || 1))) : 0;\n const currentPage = isPaginated ? typeof page === \"number\" && page > 0 ? page : 1 : 1;\n const goToPage = (p) => {\n if (!isPaginated) return;\n const clamped = Math.max(1, Math.min(totalPages, p));\n setPage?.(clamped);\n };\n const renderPageNumbers = () => {\n if (!isPaginated || totalPages <= 1) return null;\n const pages = [];\n const siblings = 1;\n pages.push(\n /* @__PURE__ */ React8.createElement(\n \"button\",\n {\n key: 1,\n onClick: () => goToPage(1),\n disabled: currentPage === 1,\n className: \"inline-flex items-center rounded-md bg-gradient-to-r from-[#1e73be] to-[#28a97d] px-3 py-1 text-sm font-medium text-white disabled:cursor-not-allowed disabled:opacity-50\"\n },\n \"1\"\n )\n );\n if (currentPage > siblings + 2) {\n pages.push(\n /* @__PURE__ */ React8.createElement(\"span\", { key: \"start-ellipsis\", className: \"px-1 text-sm text-slate-500\" }, \"...\")\n );\n }\n const start = Math.max(2, currentPage - siblings);\n const end = Math.min(totalPages - 1, currentPage + siblings);\n for (let i = start; i <= end; i++) {\n pages.push(\n /* @__PURE__ */ React8.createElement(\n \"button\",\n {\n key: i,\n onClick: () => goToPage(i),\n disabled: currentPage === i,\n className: \"inline-flex items-center rounded-md bg-gradient-to-r from-[#1e73be] to-[#28a97d] px-3 py-1 text-sm font-medium text-white disabled:cursor-not-allowed disabled:opacity-50\"\n },\n i\n )\n );\n }\n if (currentPage < totalPages - siblings - 1) {\n pages.push(\n /* @__PURE__ */ React8.createElement(\"span\", { key: \"end-ellipsis\", className: \"px-1 text-sm text-slate-500\" }, \"...\")\n );\n }\n if (totalPages > 1) {\n pages.push(\n /* @__PURE__ */ React8.createElement(\n \"button\",\n {\n key: totalPages,\n onClick: () => goToPage(totalPages),\n disabled: currentPage === totalPages,\n className: \"inline-flex items-center rounded-md bg-gradient-to-r from-[#1e73be] to-[#28a97d] px-3 py-1 text-sm font-medium text-white disabled:cursor-not-allowed disabled:opacity-50\"\n },\n totalPages\n )\n );\n }\n return pages;\n };\n const renderPagination = () => {\n if (!isPaginated) return null;\n const align = paginationPosition.includes(\"left\") ? \"justify-start\" : paginationPosition.includes(\"right\") ? \"justify-end\" : \"justify-center\";\n return /* @__PURE__ */ React8.createElement(\"div\", { className: `my-2 flex w-full ${align}` }, /* @__PURE__ */ React8.createElement(\"div\", { className: \"flex flex-wrap items-center justify-center gap-2\" }, /* @__PURE__ */ React8.createElement(\n \"button\",\n {\n onClick: () => goToPage(currentPage - 1),\n disabled: currentPage === 1,\n className: \"inline-flex items-center rounded-md bg-gradient-to-r from-[#1e73be] to-[#28a97d] px-3 py-1 text-sm font-medium text-white disabled:cursor-not-allowed disabled:opacity-50\"\n },\n \"Previous\"\n ), renderPageNumbers(), /* @__PURE__ */ React8.createElement(\n \"button\",\n {\n onClick: () => goToPage(currentPage + 1),\n disabled: currentPage === totalPages,\n className: \"inline-flex items-center rounded-md bg-gradient-to-r from-[#1e73be] to-[#28a97d] px-3 py-1 text-sm font-medium text-white disabled:cursor-not-allowed disabled:opacity-50\"\n },\n \"Next\"\n ), /* @__PURE__ */ React8.createElement(\n \"select\",\n {\n value: limit,\n onChange: (e) => {\n setPage?.(1);\n setLimit?.(Number(e.target.value));\n },\n className: \"ml-2 rounded-md border border-slate-300 px-2 py-1 text-sm text-slate-700\"\n },\n [5, 10, 15].map((size) => /* @__PURE__ */ React8.createElement(\"option\", { key: size, value: size }, size))\n ), /* @__PURE__ */ React8.createElement(\"span\", { className: \"ml-2 text-xs text-slate-600\" }, \"Page \", currentPage, \" of \", totalPages, \" (Total: \", totalCount, \" items)\")));\n };\n return /* @__PURE__ */ React8.createElement(React8.Fragment, null, (searchable || onDownloadExcel || onDownloadPDF) && /* @__PURE__ */ React8.createElement(\"div\", { className: \"mb-3 flex flex-wrap items-center justify-between gap-3\" }, searchable && /* @__PURE__ */ React8.createElement(\"div\", { className: \"flex items-center gap-2\" }, /* @__PURE__ */ React8.createElement(\"div\", { className: \"relative flex items-center\" }, /* @__PURE__ */ React8.createElement(\n \"input\",\n {\n type: \"text\",\n placeholder: \"Search...\",\n value: searchTerm,\n onChange: handleChange,\n className: \"w-56 rounded-lg border border-transparent bg-white px-3 py-2 pr-8 text-sm font-medium text-[#1761A3] shadow-sm outline-none ring-1 ring-transparent transition focus:border-transparent focus:ring-2 focus:ring-emerald-400\"\n }\n ), searchTerm && /* @__PURE__ */ React8.createElement(\n \"button\",\n {\n onClick: onResetSearch,\n \"aria-label\": \"Clear search\",\n className: \"absolute right-2 flex h-6 w-6 items-center justify-center rounded-full text-slate-400 transition hover:bg-slate-100 hover:text-slate-700\"\n },\n /* @__PURE__ */ React8.createElement(XMarkIcon2, { className: \"h-4 w-4\" })\n )), /* @__PURE__ */ React8.createElement(\n \"select\",\n {\n value: searchMode,\n onChange: (e) => setSearchMode(e.target.value),\n className: \"rounded-lg border border-transparent bg-white px-2 py-2 text-sm font-medium text-slate-700 shadow-sm outline-none ring-1 ring-transparent transition hover:bg-slate-50 focus:border-transparent focus:ring-2 focus:ring-emerald-400\"\n },\n searchModeOptions.map((mode) => /* @__PURE__ */ React8.createElement(\"option\", { key: mode, value: mode }, mode === \"startsWith\" ? \"Starts With\" : \"Includes\"))\n )), (onDownloadPDF || onDownloadExcel) && /* @__PURE__ */ React8.createElement(\"div\", { className: \"mt-1 flex items-center gap-2\" }, onDownloadPDF && /* @__PURE__ */ React8.createElement(\n \"button\",\n {\n onClick: () => onDownloadPDF(data, headers),\n className: \"inline-flex items-center gap-1 rounded-md bg-gradient-to-r from-[#1e73be] to-[#28a97d] px-3 py-2 text-sm font-medium text-white shadow-sm hover:opacity-90\"\n },\n /* @__PURE__ */ React8.createElement(ArrowDownOnSquareIcon2, { className: \"h-5 w-5\" })\n ), onDownloadExcel && /* @__PURE__ */ React8.createElement(\n \"button\",\n {\n onClick: () => onDownloadExcel(data, headers),\n className: \"inline-flex items-center gap-1 rounded-md bg-gradient-to-r from-[#1e73be] to-[#28a97d] px-3 py-2 text-sm font-medium text-white shadow-sm hover:opacity-90\"\n },\n /* @__PURE__ */ React8.createElement(ArrowDownOnSquareIcon2, { className: \"h-5 w-5\" }),\n /* @__PURE__ */ React8.createElement(\"span\", null, \"Excel\")\n ))), paginationPosition.startsWith(\"top\") && data.length > 0 && renderPagination(), /* @__PURE__ */ React8.createElement(\"div\", { className: \"mt-1 overflow-hidden rounded-xl border border-[#1761A3] bg-white\" }, /* @__PURE__ */ React8.createElement(\"table\", { className: \"w-full border-collapse\" }, /* @__PURE__ */ React8.createElement(\"thead\", { className: \"bg-gradient-to-r from-[#1e73be] to-[#28a97d]\" }, /* @__PURE__ */ React8.createElement(\"tr\", null, headers.map((header, idx) => /* @__PURE__ */ React8.createElement(\n \"th\",\n {\n key: idx,\n className: `h-[50px] px-3 py-2 text-left text-sm font-bold text-white first:rounded-tl-xl last:rounded-tr-xl`\n },\n header.label\n )), actions && /* @__PURE__ */ React8.createElement(\"th\", { className: \"h-[50px] px-3 py-2 text-left text-sm font-bold text-white\" }, \"Actions\"))), /* @__PURE__ */ React8.createElement(\"tbody\", null, data.length > 0 ? data.map((row, rowIndex) => /* @__PURE__ */ React8.createElement(\n \"tr\",\n {\n key: rowIndex,\n className: `h-[57px] border-b border-slate-200 text-sm text-slate-900 even:bg-slate-50 hover:bg-slate-100 ${highlightRowColor || \"\"}`\n },\n headers.map((header, cellIdx) => /* @__PURE__ */ React8.createElement(\"td\", { key: cellIdx, className: \"px-3 py-2\" }, (() => {\n const value = row[header.key];\n if (React8.isValidElement(value)) return value;\n if (typeof value === \"function\") {\n try {\n const result = value();\n if (React8.isValidElement(result)) return result;\n } catch (e) {\n console.warn(\"Error executing function in table cell:\", e);\n }\n }\n if (typeof value === \"string\" && value.trim().startsWith(\"<\") && value.trim().endsWith(\">\")) {\n return /* @__PURE__ */ React8.createElement(\n \"span\",\n {\n dangerouslySetInnerHTML: { __html: value }\n }\n );\n }\n if (Array.isArray(value)) {\n if (value.some((item) => React8.isValidElement(item))) {\n return /* @__PURE__ */ React8.createElement(React8.Fragment, null, value);\n }\n return value.join(\", \");\n }\n if (value instanceof Date) return value.toLocaleString();\n if (typeof value === \"boolean\") return value ? \"Yes\" : \"No\";\n if (value === null || value === void 0) return \"-\";\n if (typeof value === \"number\") return value.toString();\n if (typeof value === \"object\") return JSON.stringify(value);\n return String(value);\n })())),\n actions && /* @__PURE__ */ React8.createElement(\"td\", { className: \"px-3 py-2\" }, actions(row))\n )) : /* @__PURE__ */ React8.createElement(\"tr\", null, /* @__PURE__ */ React8.createElement(\n \"td\",\n {\n colSpan: headers.length + (actions ? 1 : 0),\n className: \"px-4 py-6 text-center text-slate-500\"\n },\n /* @__PURE__ */ React8.createElement(\"div\", { className: \"flex items-center justify-center gap-4\" }, /* @__PURE__ */ React8.createElement(\"span\", null, \"No records found.\"), onResetSearch && /* @__PURE__ */ React8.createElement(\n \"button\",\n {\n onClick: onResetSearch,\n className: \"inline-flex items-center gap-1 rounded-md bg-gradient-to-r from-[#1e73be] to-[#28a97d] px-3 py-2 text-sm font-medium text-white shadow-sm hover:opacity-90\"\n },\n /* @__PURE__ */ React8.createElement(\"span\", null, \"Reset\"),\n /* @__PURE__ */ React8.createElement(ArrowPathIcon2, { className: \"h-5 w-5\" })\n ))\n ))))), paginationPosition.startsWith(\"bottom\") && data.length > 0 && renderPagination());\n};\nTableTailwind.displayName = \"TableTailwind\";\n\n// src/components/TooltipTailwindCSS.tsx\nimport React9, { useState as useState6 } from \"react\";\nvar Tooltip = ({\n text,\n position = \"top\",\n children,\n variant = \"default\",\n className = \"\",\n textColor = \"text-gray-800\",\n backgroundColor = \"bg-[rgba(23,97,163,1)] bg-gradient-to-r from-[rgba(23,97,163,1)] to-[rgba(77,175,131,1)]\",\n image,\n animation\n}) => {\n const [visible, setVisible] = useState6(false);\n const [showAnimation, setShowAnimation] = useState6(false);\n const showTooltip = () => {\n setVisible(true);\n if (animation) {\n const delay = animation.triggerDelay || 100;\n setTimeout(() => setShowAnimation(true), delay);\n }\n };\n const hideTooltip = () => {\n setVisible(false);\n setShowAnimation(false);\n };\n const containerClasses = `relative inline-block ${className}`;\n const defaultTooltipClasses = `\n absolute z-50 \n font-poppins \n font-medium \n \n text-[rgba(255,255,255,1)]\n text-[10px] \n leading-normal \n not-italic\n rounded \n shadow-sm \n transition-opacity \n duration-200\n w-[98px] \n h-[26px] \n flex-shrink-0 flex \n items-center \n justify-center\n bg-[rgba(23,97,163,1)] \n bg-gradient-to-r from-[rgba(23,97,163,1)] to-[rgba(77,175,131,1)]\n ${visible ? \"opacity-100\" : \"opacity-0 pointer-events-none\"}\n ${image ? \"\" : \"px-3 py-3\"}\n `;\n const transparentTooltipClasses = `\n absolute z-50 font-medium ${textColor}\n rounded transition-all duration-200\n ${visible ? \"opacity-100 scale-100\" : \"opacity-0 scale-95 pointer-events-none\"}\n ${image ? \"p-1\" : \"px-3 py-2\"}\n `;\n const positionClasses = {\n top: \"bottom-full left-1/2 transform -translate-x-1/2 -translate-y-2 mb-2\",\n right: \"left-full top-1/2 transform -translate-y-1/2 translate-x-2 ml-2\",\n bottom: \"top-full left-1/2 transform -translate-x-1/2 translate-y-2 mt-2\",\n left: \"right-full top-1/2 transform -translate-y-1/2 -translate-x-2 mr-2\"\n };\n const arrowBaseClasses = \"absolute w-2 h-2 transform rotate-45\";\n const arrowPositionClasses = {\n top: \"bottom-[-4px] left-1/2 transform -translate-x-1/2\",\n right: \"left-[-4px] top-1/2 transform -translate-y-1/2\",\n bottom: \"top-[-4px] left-1/2 transform -translate-x-1/2\",\n left: \"right-[-4px] top-1/2 transform -translate-y-1/2\"\n };\n const arrowBackgroundClass = \"bg-[rgba(23,97,163,1)]\";\n const tooltipClasses = variant === \"transparent\" ? `${transparentTooltipClasses} ${positionClasses[position]}` : `${defaultTooltipClasses} ${positionClasses[position]}`;\n const renderTooltipContent = () => {\n if (image) {\n return /* @__PURE__ */ React9.createElement(\n \"img\",\n {\n src: image.src,\n alt: image.alt || \"Tooltip image\",\n width: image.width || 200,\n height: image.height || 150,\n className: \"rounded-md object-cover\",\n loading: \"lazy\"\n }\n );\n }\n return text;\n };\n const renderAnimation = () => {\n if (!animation || !showAnimation) return null;\n const AnimationComponent = animation.component;\n return /* @__PURE__ */ React9.createElement(\n AnimationComponent,\n {\n isActive: showAnimation,\n ...animation.props\n }\n );\n };\n return /* @__PURE__ */ React9.createElement(\n \"div\",\n {\n className: containerClasses,\n onMouseEnter: showTooltip,\n onMouseLeave: hideTooltip,\n onFocus: showTooltip,\n onBlur: hideTooltip\n },\n children,\n renderAnimation(),\n /* @__PURE__ */ React9.createElement(\n \"div\",\n {\n className: tooltipClasses,\n role: \"tooltip\"\n },\n renderTooltipContent(),\n variant === \"default\" && !image && /* @__PURE__ */ React9.createElement(\n \"div\",\n {\n className: `${arrowBaseClasses} ${arrowPositionClasses[position]} ${arrowBackgroundClass} rounded-sm`\n }\n )\n )\n );\n};\nTooltip.displayName = \"Tooltip\";\n\n// src/components/Dropdown.tsx\nimport React10, { useState as useState7 } from \"react\";\nvar variantStyles = {\n basic: \"bg-blue-600 text-white hover:bg-blue-700\",\n outline: \"border border-blue-600 text-blue-600 hover:bg-blue-50\",\n pill: \"bg-blue-600 text-white rounded-full hover:bg-blue-700\",\n dark: \"bg-gray-800 text-white hover:bg-gray-700\",\n underline: \"border-b-2 border-blue-500 bg-transparent text-blue-700 hover:bg-blue-50\",\n shadow: \"bg-white text-gray-700 shadow-md hover:shadow-lg border border-gray-200\",\n glass: \"bg-white/20 backdrop-blur-md text-white border border-white/40 hover:bg-white/30\",\n gradient: \"bg-gradient-to-r from-blue-500 to-purple-500 text-white hover:opacity-90\"\n};\nvar Dropdown = ({ options, onSelect, variant = \"basic\" }) => {\n const [open, setOpen] = useState7(false);\n const [selected, setSelected] = useState7(null);\n const handleSelect = (option) => {\n setSelected(option);\n onSelect(option);\n setOpen(false);\n };\n return /* @__PURE__ */ React10.createElement(\"div\", { className: \"relative w-56\" }, /* @__PURE__ */ React10.createElement(\n \"button\",\n {\n onClick: () => setOpen(!open),\n className: `w-full text-left px-4 py-2 rounded-md transition-all duration-200 ${variantStyles[variant]}`\n },\n selected || \"Select an option\"\n ), open && /* @__PURE__ */ React10.createElement(\"div\", { className: \"absolute mt-2 w-full bg-white border border-gray-200 rounded-md shadow-lg z-20\" }, options.map((opt, idx) => /* @__PURE__ */ React10.createElement(\n \"div\",\n {\n key: idx,\n onClick: () => handleSelect(opt),\n className: \"px-4 py-2 cursor-pointer hover:bg-gray-100 text-gray-700\"\n },\n opt\n ))));\n};\nDropdown.displayName = \"Dropdown\";\nexport {\n Button as MahatiButton,\n Card as MahatiCard,\n Dropdown as MahatiDropdown,\n FormContainer as MahatiFormContainer,\n Input as MahatiInput,\n Modal as MahatiModal,\n TabbedInterface as MahatiTabbedInterface,\n Table as MahatiTable,\n TableTailwind as MahatiTableTailwind,\n Tooltip as MahatiTooltip\n};\n"]}
|
package/package.json
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@mahatisystems/mahati-ui-components",
|
|
3
|
+
"version": "0.1.1",
|
|
4
|
+
"main": "./dist/index.js",
|
|
5
|
+
"module": "./dist/index.mjs",
|
|
6
|
+
"types": "./dist/index.d.ts",
|
|
7
|
+
"exports": {
|
|
8
|
+
".": {
|
|
9
|
+
"import": "./dist/index.mjs",
|
|
10
|
+
"require": "./dist/index.js"
|
|
11
|
+
},
|
|
12
|
+
"./styles": "./dist/index.css",
|
|
13
|
+
"./dist/index.css": "./dist/index.css"
|
|
14
|
+
},
|
|
15
|
+
"files": [
|
|
16
|
+
"dist"
|
|
17
|
+
],
|
|
18
|
+
"scripts": {
|
|
19
|
+
"build:css": "tailwindcss -i ./src/styles/index.css -o ./dist/index.css --minify",
|
|
20
|
+
"build:js": "tsup src/index.ts --config tsup.config.ts --no-clean",
|
|
21
|
+
"build": "rimraf dist && npm run build:css && npm run build:js",
|
|
22
|
+
"build:watch": "tsup src/index.ts --config tsup.config.ts --watch",
|
|
23
|
+
"test": "jest --coverage",
|
|
24
|
+
"lint": "eslint \"src/**/*.{ts,tsx}\"",
|
|
25
|
+
"clean": "rimraf dist",
|
|
26
|
+
"yalc:pub": "npm run build && yalc publish",
|
|
27
|
+
"dev:yalc": "npm run yalc:pub && tsup src/index.ts --config tsup.config.ts --watch --onSuccess \"yalc publish --push\""
|
|
28
|
+
},
|
|
29
|
+
"peerDependencies": {
|
|
30
|
+
"react": "^18 || ^19",
|
|
31
|
+
"react-dom": "^18 || ^19"
|
|
32
|
+
},
|
|
33
|
+
"dependencies": {
|
|
34
|
+
"@heroicons/react": "^2.2.0",
|
|
35
|
+
"@radix-ui/react-avatar": "^1.0.4",
|
|
36
|
+
"@radix-ui/react-dialog": "^1.0.5",
|
|
37
|
+
"@radix-ui/react-dropdown-menu": "^2.0.6",
|
|
38
|
+
"@radix-ui/react-slot": "^1.0.2",
|
|
39
|
+
"@radix-ui/react-tooltip": "^1.0.7",
|
|
40
|
+
"class-variance-authority": "^0.7.0",
|
|
41
|
+
"clsx": "^2.1.1",
|
|
42
|
+
"lucide-react": "^0.553.0",
|
|
43
|
+
"tailwind-merge": "^2.3.0",
|
|
44
|
+
"tailwindcss-animate": "^1.0.7"
|
|
45
|
+
},
|
|
46
|
+
"devDependencies": {
|
|
47
|
+
"@swc/core": "^1.15.1",
|
|
48
|
+
"@types/react": "^18.2.0",
|
|
49
|
+
"@types/react-dom": "^18.2.0",
|
|
50
|
+
"@typescript-eslint/eslint-plugin": "^6.0.0",
|
|
51
|
+
"@typescript-eslint/parser": "^6.0.0",
|
|
52
|
+
"autoprefixer": "^10.4.19",
|
|
53
|
+
"eslint": "^8.0.0",
|
|
54
|
+
"eslint-plugin-react": "^7.0.0",
|
|
55
|
+
"eslint-plugin-react-hooks": "^4.0.0",
|
|
56
|
+
"jest": "^29.7.0",
|
|
57
|
+
"jest-environment-jsdom": "^29.7.0",
|
|
58
|
+
"postcss": "^8.4.38",
|
|
59
|
+
"postcss-prefixwrap": "^1.1.0",
|
|
60
|
+
"rimraf": "^5.0.0",
|
|
61
|
+
"tailwindcss": "^3.4.3",
|
|
62
|
+
"tsup": "^8.0.0",
|
|
63
|
+
"typescript": "^5.0.0"
|
|
64
|
+
},
|
|
65
|
+
"sideEffects": [
|
|
66
|
+
"**/*.css"
|
|
67
|
+
]
|
|
68
|
+
}
|