@mahatisystems/mahati-ui-components 1.2.0 → 1.3.0

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.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/components/Tooltip.tsx","../src/components/Button.tsx","../src/components/Card.tsx","../src/components/Dropdown.tsx","../src/components/FormContainer.tsx","../src/components/Input.tsx","../src/components/KeyValueDisplay.tsx","../src/components/Label.tsx","../src/components/Main.tsx","../src/components/Table.tsx","../src/components/TabbedInterface.tsx","../src/components/Spinner.tsx","../src/components/Section.tsx","../src/components/Row.tsx","../src/components/Paragraph.tsx","../src/components/validators.tsx"],"sourcesContent":["\r\n// Import styles first\r\nimport './styles/index.css';\r\n\r\nexport { default as MahatiTooltip } from './components/Tooltip';\r\nexport { default as MahatiButton } from './components/Button';\r\nexport { default as MahatiCard } from './components/Card';\r\nexport { default as MahatiDropdown } from './components/Dropdown';\r\nexport { default as MahatiFormContainer } from './components/FormContainer';\r\nexport { default as MahatiInput } from './components/Input';\r\nexport { default as MahatiKeyValueDisplay } from './components/KeyValueDisplay';\r\nexport { default as MahatiLabel } from './components/Label';\r\nexport { default as MahatiMain } from './components/Main';\r\nexport { default as MahatiTable } from './components/Table';\r\nexport { default as MahatiTabbedInterface } from './components/TabbedInterface';\r\nexport { default as MahatiSpinner } from './components/Spinner';\r\nexport { default as MahatiSection } from './components/Section';\r\nexport { default as MahatiRow } from './components/Row';\r\nexport { default as MahatiParagraph } from './components/Paragraph';\r\nexport {\r\n isValidPassword,\r\n isValidUsername,\r\n maxLength,\r\n minLength,\r\n required,\r\n} from './components/validators';","\"use client\";\r\nimport React, { useState } from \"react\";\r\nimport \"../styles/Tooltip.module.css\";\r\ninterface TooltipProps {\r\n text: string;\r\n position?: 'top' | 'right' | 'bottom' | 'left';\r\n children: React.ReactNode;\r\n}\r\n\r\nconst Tooltip: React.FC<TooltipProps> = ({ text, position, children }) => {\r\n const [visible, setVisible] = useState(false);\r\n\r\n return (\r\n <div\r\n className=\"tooltipContainer\"\r\n onMouseEnter={() => setVisible(true)}\r\n onMouseLeave={() => setVisible(false)}\r\n >\r\n {children}\r\n {visible && (\r\n <div className={`tooltip ${visible ? 'tooltipVisible' : ''}`}>\r\n {text}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nexport default Tooltip;","import styled, { css } from \"styled-components\";\r\n\r\nconst variants = {\r\n primary: {\r\n color: \"#1e73be\",\r\n textColor: \"#ffffff\",\r\n },\r\n success: {\r\n color: \"#28a97d\",\r\n textColor: \"#ffffff\",\r\n },\r\n danger: {\r\n color: \"#e53e3e\",\r\n textColor: \"#ffffff\",\r\n },\r\n};\r\n\r\nexport interface ButtonProps {\r\n color?: string;\r\n textColor?: string;\r\n size?: \"small\" | \"medium\" | \"large\";\r\n isLoading?: boolean;\r\n danger?: boolean;\r\n variant?: \"primary\" | \"success\" | \"danger\";\r\n type?: \"button\" | \"submit\" | \"reset\";\r\n radius?: string | number; // 👈 new\r\n}\r\n\r\nconst Button = styled.button.attrs<ButtonProps>((props) => ({\r\n type: props.type || \"button\",\r\n}))<ButtonProps>`\r\n padding: ${(props) =>\r\n props.size === \"large\"\r\n ? \"12px 20px\"\r\n : props.size === \"small\"\r\n ? \"6px 12px\"\r\n : \"10px 16px\"};\r\n margin-top: 10px;\r\n color: ${(props) => props.textColor || \"#ffffff\"};\r\n border: none;\r\n border-radius: ${(props) =>\r\n typeof props.radius === \"number\" ? `${props.radius}px` : props.radius || \"6px\"};\r\n cursor: pointer;\r\n\r\n display: inline-flex;\r\n align-items: center;\r\n justify-content: center;\r\n gap: 8px; /* 👈 space between icon & text */\r\n\r\n font-weight: 600;\r\n font-size: 14px;\r\n\r\n /* --- VARIANT STYLES --- */\r\n ${({ variant, color, danger }) => {\r\n const currentVariant = danger ? \"danger\" : variant;\r\n if (color) {\r\n return css`\r\n background-color: ${color};\r\n `;\r\n }\r\n if (currentVariant && variants[currentVariant]) {\r\n return css`\r\n background-color: ${variants[currentVariant].color};\r\n color: ${variants[currentVariant].textColor};\r\n `;\r\n }\r\n return css`\r\n background-color: #55b382;\r\n `; // Default\r\n }}\r\n\r\n &:disabled {\r\n background-color: #ccc;\r\n cursor: not-allowed;\r\n }\r\n\r\n ${({ isLoading }) =>\r\n isLoading &&\r\n css`\r\n pointer-events: none;\r\n opacity: 0.8;\r\n `}\r\n`;\r\n\r\nexport default Button;\r\n","import React from \"react\";\r\nimport styled, { css } from \"styled-components\";\r\n\r\nconst CardContainer = styled.div`\r\n background: #fff;\r\n border-radius: 8px;\r\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);\r\n margin-top: 20px;\r\n display: flex;\r\n flex-direction: column;\r\n`;\r\n\r\nconst CardHeader = styled.div`\r\n padding: 16px 20px;\r\n border-bottom: 1px solid #e2e8f0;\r\n font-size: 1.25rem;\r\n font-weight: 600;\r\n`;\r\n\r\nconst CardBody = styled.div`\r\n padding: 20px;\r\n flex: 1; /* Allows the body to grow */\r\n`;\r\n\r\nconst CardFooter = styled.div`\r\n padding: 16px 20px;\r\n border-top: 1px solid #e2e8f0;\r\n background: #f7fafc;\r\n`;\r\n\r\ninterface CardProps {\r\n header?: React.ReactNode;\r\n footer?: React.ReactNode;\r\n children: React.ReactNode;\r\n}\r\n\r\nconst Card: React.FC<CardProps> = ({ header, footer, children }) => {\r\n return (\r\n <CardContainer>\r\n {header && <CardHeader>{header}</CardHeader>}\r\n <CardBody>{children}</CardBody>\r\n {footer && <CardFooter>{footer}</CardFooter>}\r\n </CardContainer>\r\n );\r\n};\r\n\r\nexport default Card;\r\n","'use client';\r\nimport React, { useState } from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\nconst DropdownContainer = styled.div`\r\n position: relative;\r\n display: inline-block;\r\n width: 200px;\r\n margin: 10px 0;\r\n`;\r\n\r\nconst DropdownButton = styled.button`\r\n width: 100%;\r\n padding: 10px;\r\n background-color: #007bff;\r\n color: white;\r\n border: none;\r\n border-radius: 4px;\r\n cursor: pointer;\r\n text-align: left;\r\n \r\n &:hover {\r\n background-color: #0056b3;\r\n }\r\n`;\r\n\r\nconst DropdownContent = styled.div<{ open: boolean }>`\r\n display: ${({ open }) => (open ? \"block\" : \"none\")};\r\n position: absolute;\r\n background-color: white;\r\n min-width: 100%;\r\n box-shadow: 0 8px 16px rgba(0, 0, 0, 0.1);\r\n z-index: 1;\r\n border-radius: 4px;\r\n`;\r\n\r\nconst DropdownItem = styled.div`\r\n padding: 10px;\r\n cursor: pointer;\r\n color: #333;\r\n\r\n &:hover {\r\n background-color: #f1f1f1;\r\n }\r\n`;\r\n\r\nconst Dropdown = ({ options, onSelect }: { options: string[]; onSelect: (option: string) => void }) => {\r\n const [open, setOpen] = useState(false);\r\n const [selectedOption, setSelectedOption] = useState<string | null>(null);\r\n\r\n const handleOptionClick = (option: string) => {\r\n setSelectedOption(option);\r\n onSelect(option);\r\n setOpen(false);\r\n };\r\n\r\n return (\r\n <DropdownContainer>\r\n <DropdownButton onClick={() => setOpen(!open)}>\r\n {selectedOption || \"Select an option\"}\r\n </DropdownButton>\r\n <DropdownContent open={open}>\r\n {options.map((option, index) => (\r\n <DropdownItem key={index} onClick={() => handleOptionClick(option)}>\r\n {option}\r\n </DropdownItem>\r\n ))}\r\n </DropdownContent>\r\n </DropdownContainer>\r\n );\r\n};\r\n\r\nexport default Dropdown;\r\n","'use client';\r\nimport styled from \"styled-components\";\r\n\r\nconst FormContainer = styled.form`\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n height: 80vh; /* Take full screen height */\r\n width: 100%; /* Full width of the screen */\r\n max-width: 400px; /* Limit form width */\r\n margin: 0 auto; /* Center horizontally */\r\n padding: 80px;\r\n background-color: white;\r\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); /* Optional: Add a shadow for design */\r\n border-radius: 8px;\r\n`;\r\nexport default FormContainer;\r\n","'use client';\r\nimport React, { useEffect, useState } from 'react';\r\nimport styled from 'styled-components';\r\n\r\ninterface InputProps {\r\n type?: string;\r\n name?: string; // Add name prop here\r\n placeholder?: string;\r\n onChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\r\n hasError?: boolean; // Error state passed from parent\r\n errorMessage?: string; // Error message passed from parent\r\n value: string; // This is now a fully controlled component\r\n}\r\n\r\nconst InputContainer = styled.div`\r\n margin-bottom: 1rem;\r\n`;\r\n\r\nconst StyledInput = styled.input<{ hasError?: boolean }>`\r\n width: 300px; /* Set a fixed width to prevent expansion */\r\n max-width: 100%; /* Optional: Ensure it doesn't exceed the container width */\r\n padding: 0.75rem;\r\n border: 1px solid black;\r\n border-radius: 4px;\r\n background-color: ${(props) => (props.hasError ? '#fff5f5' : '#fff')};\r\n font-size: 1rem;\r\n transition: all 0.2s ease-in-out;\r\n\r\n &:focus {\r\n outline: none;\r\n border-color: ${(props) => (props.hasError ? 'red' : '#0070f3')};\r\n }\r\n`;\r\n\r\nconst ErrorText = styled.span`\r\n color: red;\r\n font-size: 0.875rem;\r\n height: 0.8rem; /* Fixed height for error text to avoid layout shift */\r\n display: block;\r\n`;\r\n\r\nconst Input: React.FC<InputProps> = ({\r\n type = 'text',\r\n name, // Accept name prop\r\n placeholder,\r\n onChange,\r\n hasError = false,\r\n errorMessage = '',\r\n value,\r\n}) => {\r\n return (\r\n <InputContainer>\r\n <StyledInput\r\n type={type}\r\n name={name} // Pass name prop to input\r\n placeholder={placeholder}\r\n value={value}\r\n onChange={onChange}\r\n hasError={hasError}\r\n />\r\n {/* Display error message, reserving space for it */}\r\n <ErrorText>{errorMessage}</ErrorText>\r\n </InputContainer>\r\n );\r\n};\r\n\r\nexport default Input;\r\n","'use client';\r\nimport React from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\ninterface KeyValueDisplayProps {\r\n data: { [key: string]: any };\r\n}\r\n\r\nconst Container = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n gap: 0.75rem;\r\n padding: 1.5rem;\r\n background-color: #f4f6f8;\r\n margin: 0 auto;\r\n @media (max-width: 600px) {\r\n padding: 0rem;\r\n }\r\n`;\r\n\r\nconst Item = styled.div`\r\n display: flex;\r\n align-items: center;\r\n justify-content: space-between;\r\n padding: 0.5rem 0;\r\n border-bottom: 1px solid #e0e0e0;\r\n transition: background-color 0.2s;\r\n\r\n &:last-child {\r\n border-bottom: none;\r\n }\r\n\r\n &:hover {\r\n background-color: #55b382;\r\n }\r\n`;\r\n\r\nconst Key = styled.div`\r\n font-weight: 600;\r\n font-size: 0.95rem;\r\n color: #333;\r\n display: flex;\r\n align-items: center;\r\n width: 45%;\r\n @media (max-width: 600px) {\r\n font-size: 0.85rem;\r\n }\r\n`;\r\n\r\nconst Value = styled.div<{ isBold?: boolean }>`\r\n font-size: 1.2rem;\r\n color: #555;\r\n text-align: left;\r\n word-wrap: break-word;\r\n font-weight: ${(props) => (props.isBold ? \"bold\" : \"normal\")};\r\n @media (max-width: 600px) {\r\n font-size: 0.85rem;\r\n }\r\n`;\r\n\r\nconst KeyValueDisplay: React.FC<KeyValueDisplayProps> = ({ data }) => {\r\n return (\r\n <Container>\r\n {Object.entries(data).map(([key, value]) => (\r\n <Item key={key}>\r\n <Key>{key}</Key>\r\n <Value isBold={key === \"SegmentName\"}>{value || \"N/A\"}</Value>\r\n </Item>\r\n ))}\r\n </Container>\r\n );\r\n};\r\n\r\nexport default KeyValueDisplay;\r\n","'use client';\r\nimport styled from \"styled-components\";\r\n\r\nconst Label = styled.label`\r\n display: block;\r\n margin-bottom: 5px;\r\n font-weight: bold;\r\n`;\r\n\r\nexport default Label;\r\n","'use client';\r\nimport styled from \"styled-components\";\r\n\r\nconst Main = styled.main`\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n justify-content: center;\r\n min-height: 100vh;\r\n padding: 20px;\r\n background-color: #f9f9f9;\r\n`;\r\nexport default Main;\r\n\r\n","'use client';\r\nimport React from \"react\";\r\nimport styled from \"styled-components\";\r\n \r\nconst TableContainer = styled.div`margin-top: 10px;`;\r\nconst StyledTable = styled.table`width: 100%; border-collapse: collapse;`;\r\nconst TableHeader = styled.th`padding: 12px; `;\r\nconst TableRow = styled.tr`&:nth-child(even) { background-color: #f9f9f9; } &:hover { background-color: #f1f1f1; }`;\r\nconst TableData = styled.td`padding: 10px; border-bottom: 1px solid #ccc;`;\r\nconst EmptyState = styled.td`text-align: center; padding: 20px; color: #999;`;\r\n \r\nconst PaginationContainer = styled.div`margin-top: 15px; display: flex; flex-direction: column; align-items: center;`;\r\nconst ButtonContainer = styled.div`display: flex; gap: 6px; align-items: center; flex-wrap: wrap;`;\r\nconst PageButton = styled.button`\r\n padding: 6px 12px;\r\nbackground: linear-gradient(to right, #1e73be, #28a97d);\r\n color: white;\r\n border: none;\r\n border-radius: 4px;\r\n cursor: pointer;\r\n \r\n &:disabled {\r\n background: #ccc;\r\n cursor: not-allowed;\r\n }\r\n`;\r\nconst PageSizeSelect = styled.select`\r\n margin-left: 10px;\r\n padding: 6px;\r\n border-radius: 4px;\r\n border: 1px solid #aaa;\r\n`;\r\nconst PageInfo = styled.div`margin-top: 8px; font-size: 13px;`;\r\n \r\ninterface TableProps {\r\n headers: { label: string; key: string }[];\r\n data: { [key: string]: unknown }[];\r\n page?: number;\r\n setPage?: (page: number) => void;\r\n limit?: number;\r\n setLimit?: (limit: number)=>void;\r\n totalCount?: number;\r\n highlightRowColor?: string;\r\n actions?: (row: unknown) => React.ReactNode;\r\n}\r\n \r\nconst Table: React.FC<TableProps> = ({\r\n headers,\r\n data,\r\n page=0,\r\n setPage,\r\n limit=0,\r\n setLimit,\r\n totalCount=0,\r\n highlightRowColor,\r\n actions,\r\n}) => {\r\n const totalPages = Math.ceil(totalCount/ limit) || 0;\r\n \r\n const renderPageNumbers = () => {\r\n const pages = [];\r\n const siblings = 1;\r\n \r\n if (totalPages <= 1) return null;\r\n \r\n // Always show first\r\n pages.push(\r\n <PageButton\r\n key={1}\r\n onClick={() => setPage?.(1)}\r\n disabled={page === 1}\r\n>\r\n 1\r\n</PageButton>\r\n \r\n );\r\n \r\n if (page > siblings + 2) pages.push(<span key=\"start-ellipsis\">...</span>);\r\n \r\n for (let i = Math.max(2, page - siblings); i <= Math.min(totalPages - 1, page + siblings); i++) {\r\n pages.push(\r\n <PageButton\r\n key={i}\r\n onClick={() => setPage?.(i)}\r\n disabled={page === i}\r\n >\r\n {i}\r\n </PageButton>\r\n );\r\n }\r\n \r\n if (page < totalPages - siblings - 1) pages.push(<span key=\"end-ellipsis\">...</span>);\r\n \r\n if (totalPages > 1)\r\n pages.push(\r\n <PageButton\r\n key={1}\r\n onClick={() =>setPage?.(1)}\r\n disabled={page === 1}\r\n>\r\n {totalPages+1}\r\n</PageButton>\r\n );\r\n \r\n return pages;\r\n };\r\n \r\n return (\r\n <>\r\n <TableContainer>\r\n <StyledTable>\r\n <thead >\r\n <tr style={{background: \"linear-gradient(to right, #1e73be, #28a97d)\"}}>\r\n {headers.map((header, idx) => (\r\n <TableHeader key={idx}>{header.label}</TableHeader>\r\n ))}\r\n {actions && <TableHeader>Actions</TableHeader>}\r\n </tr>\r\n </thead>\r\n <tbody>\r\n {data.length > 0 ? (\r\n data.map((row, rowIndex) => (\r\n <TableRow key={rowIndex} className={highlightRowColor}>\r\n {headers.map((header, cellIdx) => (\r\n <TableData key={cellIdx}>\r\n {(() => {\r\n const value = row[header.key];\r\n \r\n // Handle JSX/React elements\r\n if (React.isValidElement(value)) {\r\n return value;\r\n }\r\n \r\n // Handle functions that return JSX\r\n if (typeof value === 'function') {\r\n try {\r\n const result = value();\r\n if (React.isValidElement(result)) {\r\n return result;\r\n }\r\n } catch (e) {\r\n console.warn('Error executing function in table cell:', e);\r\n }\r\n }\r\n \r\n // Handle HTML strings\r\n if (typeof value === 'string' && (\r\n value.trim().startsWith('<') &&\r\n value.trim().endsWith('>')\r\n )) {\r\n return <div dangerouslySetInnerHTML={{ __html: value }} />;\r\n }\r\n \r\n // Handle arrays (join them)\r\n if (Array.isArray(value)) {\r\n if (value.some(item => React.isValidElement(item))) {\r\n return <>{value}</>;\r\n }\r\n return value.join(', ');\r\n }\r\n \r\n // Handle dates\r\n if (value instanceof Date) {\r\n return value.toLocaleString();\r\n }\r\n \r\n // Handle booleans\r\n if (typeof value === 'boolean') {\r\n return value ? 'Yes' : 'No';\r\n }\r\n \r\n // Handle null/undefined\r\n if (value === null || value === undefined) {\r\n return '-';\r\n }\r\n \r\n // Handle numbers\r\n if (typeof value === 'number') {\r\n return value.toString();\r\n }\r\n \r\n // Handle objects\r\n if (typeof value === 'object') {\r\n return JSON.stringify(value);\r\n }\r\n \r\n // Default to string\r\n return String(value);\r\n })()}\r\n </TableData>\r\n ))}\r\n {actions && <TableData>{actions(row)}</TableData>}\r\n </TableRow>\r\n ))\r\n ) : (\r\n <tr>\r\n <EmptyState colSpan={headers.length + (actions ? 1 : 0)}>No data available</EmptyState>\r\n </tr>\r\n )}\r\n </tbody>\r\n </StyledTable>\r\n </TableContainer>\r\n \r\n {(totalPages > 1 || totalCount <= limit) && (\r\n <PaginationContainer>\r\n <ButtonContainer>\r\n <PageButton onClick={() => setPage?.(page - 1)} disabled={page === 1}>\r\n Previous\r\n </PageButton>\r\n {renderPageNumbers()}\r\n <PageButton onClick={() => setPage?.(page + 1)} disabled={page === totalPages}>\r\n Next\r\n </PageButton>\r\n \r\n <PageSizeSelect\r\n value={limit}\r\n onChange={(e) => {\r\n setPage?.(1)\r\n setLimit?.(Number(e.target.value));\r\n }}\r\n >\r\n {[5, 10, 15].map((size) => (\r\n <option key={size} value={size}>\r\n {size} per page\r\n </option>\r\n ))}\r\n </PageSizeSelect>\r\n </ButtonContainer>\r\n <PageInfo>\r\n Page {page+1} of {totalPages+1} (Total: {totalCount} items)\r\n </PageInfo>\r\n </PaginationContainer>\r\n )}\r\n </>\r\n );\r\n};\r\n \r\nexport default Table;","// packages/mahati-ui-components/TabbedInterface.tsx\r\n\r\n'use client';\r\nimport React from \"react\";\r\nimport styled from \"styled-components\";\r\n\r\ninterface Tab {\r\n id: string;\r\n label: string;\r\n}\r\n\r\ninterface TabbedInterfaceProps {\r\n tabs: Tab[];\r\n activeTabId: string;\r\n onTabClick: (tabId: string) => void;\r\n content: React.ReactNode;\r\n}\r\n\r\nconst TabContainer = styled.div`\r\n display: flex;\r\n background: #135f9b;\r\n color: #fff;\r\n`;\r\n\r\nconst Tab = styled.div<{ $active: boolean }>`\r\n padding: 12px 20px;\r\n font-size: 16px;\r\n font-weight: 600;\r\n cursor: pointer;\r\n border-bottom: ${({ $active }) => ($active ? \"6px solid red\" : \"none\")};\r\n color: ${({ $active }) => ($active ? \"#dcffed\" : \"#fff\")};\r\n transition: color 0.3s, border-bottom 0.3s;\r\n\r\n &:hover {\r\n color: #dcffed;\r\n }\r\n`;\r\n\r\nconst Content = styled.div`\r\n padding: 20px;\r\n background: #f9f9f9;\r\n border-radius: 10px;\r\n box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);\r\n max-width: 1300px;\r\n`;\r\n\r\nconst TabbedInterface: React.FC<TabbedInterfaceProps> = ({\r\n tabs,\r\n activeTabId,\r\n onTabClick,\r\n content,\r\n}) => (\r\n <div>\r\n <TabContainer>\r\n {tabs.map((tab) => (\r\n <Tab key={tab.id} $active={tab.id === activeTabId} onClick={() => onTabClick(tab.id)}>\r\n {tab.label}\r\n </Tab>\r\n ))}\r\n </TabContainer>\r\n <Content>{content}</Content>\r\n </div>\r\n);\r\n\r\nexport default TabbedInterface;\r\n","'use client';\r\nimport styled from \"styled-components\";\r\n\r\nconst Spinner = styled.div`\r\n border: 4px solid rgba(0, 123, 255, 0.2); \r\n border-radius: 10%;\r\n border-top: 4px solid #007bff;\r\n width: 24px;\r\n height: 24px;\r\n animation: spin 1s linear infinite;\r\n\r\n @keyframes spin {\r\n 0% {\r\n transform: rotate(0deg);\r\n }\r\n 100% {\r\n transform: rotate(360deg);\r\n }\r\n }\r\n`;\r\n\r\nexport default Spinner;\r\n","'use client';\r\nimport styled from \"styled-components\";\r\n\r\nconst Section = styled.section`\r\n text-align: center;\r\n`;\r\n\r\nexport default Section;\r\n","'use client';\r\nimport styled from \"styled-components\";\r\n\r\nconst Row = styled.div`\r\n display: flex;\r\n justify-content: space-around;\r\n margin-top: 20px;\r\n`;\r\nexport default Row;\r\n","'use client';\r\nimport styled from \"styled-components\";\r\n\r\nconst Paragraph = styled.p`\r\n font-size: 20px;\r\n margin: 0;\r\n`;\r\n\r\nexport default Paragraph;\r\n","\r\nexport const required = (value: string): string => {\r\n return value ? \"\" : \"This field is required.\";\r\n};\r\n\r\nexport const maxLength = (max: number) => (value: string): string => {\r\n return value.length <= max ? \"\" : `This field must be at most ${max} characters.`;\r\n};\r\n\r\nexport const minLength = (min: number) => (value: string): string => {\r\n return value.length >= min ? \"\" : `This field must be at least ${min} characters.`;\r\n};\r\n\r\nexport const isValidUsername = (value: string): string => {\r\n const regex = /^[a-zA-Z0-9_]+$/;\r\n return regex.test(value) ? \"\" : \"Username can only contain alphanumeric characters and underscores.\";\r\n};\r\n\r\nexport const isValidPassword = (value: string): string => {\r\n const regex = /^(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{6,20}$/;\r\n return regex.test(value) ? \"\" : \"Password must be 6-20 characters long, include uppercase, lowercase, and a number.\";\r\n};"],"mappings":"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","names":["index_exports","__export","Button_default","Card_default","Dropdown_default","FormContainer_default","Input_default","KeyValueDisplay_default","Label_default","Main_default","Paragraph_default","Row_default","Section_default","Spinner_default","TabbedInterface_default","Table_default","Tooltip_default","isValidPassword","isValidUsername","maxLength","minLength","required","__toCommonJS","import_react","import_jsx_runtime","Tooltip","text","position","children","visible","setVisible","Tooltip_default","import_styled_components","variants","Button","styled","props","variant","color","danger","currentVariant","isLoading","Button_default","import_styled_components","import_jsx_runtime","CardContainer","styled","CardHeader","CardBody","CardFooter","Card","header","footer","children","Card_default","import_react","import_styled_components","import_jsx_runtime","DropdownContainer","styled","DropdownButton","DropdownContent","open","DropdownItem","Dropdown","options","onSelect","setOpen","selectedOption","setSelectedOption","handleOptionClick","option","index","Dropdown_default","import_styled_components","FormContainer","styled","FormContainer_default","import_styled_components","import_jsx_runtime","InputContainer","styled","StyledInput","props","ErrorText","Input","type","name","placeholder","onChange","hasError","errorMessage","value","Input_default","import_styled_components","import_jsx_runtime","Container","styled","Item","Key","Value","props","KeyValueDisplay","data","key","value","KeyValueDisplay_default","import_styled_components","Label","styled","Label_default","import_styled_components","Main","styled","Main_default","import_react","import_styled_components","import_jsx_runtime","TableContainer","styled","StyledTable","TableHeader","TableRow","TableData","EmptyState","PaginationContainer","ButtonContainer","PageButton","PageSizeSelect","PageInfo","Table","headers","data","page","setPage","limit","setLimit","totalCount","highlightRowColor","actions","totalPages","renderPageNumbers","pages","i","header","idx","row","rowIndex","cellIdx","value","React","result","e","item","size","Table_default","import_styled_components","import_jsx_runtime","TabContainer","styled","Tab","$active","Content","TabbedInterface","tabs","activeTabId","onTabClick","content","tab","TabbedInterface_default","import_styled_components","Spinner","styled","Spinner_default","import_styled_components","Section","styled","Section_default","import_styled_components","Row","styled","Row_default","import_styled_components","Paragraph","styled","Paragraph_default","required","value","maxLength","max","minLength","min","isValidUsername","isValidPassword"]}
1
+ {"version":3,"sources":["d:\\insurgence\\uicomponents\\mahati-designs\\packages\\uicomponents\\dist\\index.js"],"names":["__create","Object","create","__defProp","defineProperty","__getOwnPropDesc","getOwnPropertyDescriptor","__getOwnPropNames","getOwnPropertyNames","__getProtoOf","getPrototypeOf","__hasOwnProp","prototype","hasOwnProperty","__export","target","all","name","get","enumerable","__copyProps","to","from","except","desc","key","call","__toESM","mod","isNodeMode","__esModule","value","__toCommonJS","index_exports","MahatiButton","Button","module","exports","import_react","require","import_styled","import_jsx_runtime","parseHeightWidth","className","match","parseInt","parseGap","gapClass","getColorByName","colors","blue","green","red","orange","purple","yellow","pink","teal","indigo","primary","secondary","success","danger","warning","info","toLowerCase","StyledButton","default","button","props","color","$name","$iconButton","startsWith","$height","$width","$variant","$size","IconButtonInner","span","slice","$radiusClass","$paddingClass","$bgClass","rgbaMatch","$hoverBgClass","hoverMatch","activeMatch","styles","$intensity","v","Math","max","min","IconButtonGroupWrapper","div","$direction","$gap","IconButtonGroup","forwardRef","ref","direction","gap","jsx","displayName","ButtonBase","variant","size","iconButton","iconButtonHeightClass","iconButtonWidthClass","iconButtonBgClass","iconButtonRadiusClass","iconButtonBgPaddingClass","iconButtonHoverBgClass","iconButtonHoverIntensity","children","height","width"],"mappings":"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","sourcesContent":["\"use strict\";\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n for (var name in all)\n __defProp(target, name, { get: all[name], enumerable: true });\n};\nvar __copyProps = (to, from, except, desc) => {\n if (from && typeof from === \"object\" || typeof from === \"function\") {\n for (let key of __getOwnPropNames(from))\n if (!__hasOwnProp.call(to, key) && key !== except)\n __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });\n }\n return to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(\n // If the importer is in node compatibility mode or this is not an ESM\n // file that has been converted to a CommonJS file using a Babel-\n // compatible transform (i.e. \"__esModule\" has not been set), then set\n // \"default\" to the CommonJS \"module.exports\" for node compatibility.\n isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", { value: mod, enumerable: true }) : target,\n mod\n));\nvar __toCommonJS = (mod) => __copyProps(__defProp({}, \"__esModule\", { value: true }), mod);\n\n// src/index.ts\nvar index_exports = {};\n__export(index_exports, {\n MahatiButton: () => Button\n});\nmodule.exports = __toCommonJS(index_exports);\n\n// src/components/Button.tsx\nvar import_react = __toESM(require(\"react\"));\nvar import_styled = __toESM(require(\"@emotion/styled\"));\nvar import_jsx_runtime = require(\"@emotion/react/jsx-runtime\");\nvar parseHeightWidth = (className) => {\n if (!className) return \"36px\";\n const match = className.match(/[hw]-(\\d+)/);\n if (match) {\n return `${parseInt(match[1]) * 4}px`;\n }\n return \"36px\";\n};\nvar parseGap = (gapClass) => {\n if (!gapClass) return \"8px\";\n const match = gapClass.match(/gap-(\\d+)/);\n if (match) {\n return `${parseInt(match[1]) * 4}px`;\n }\n return \"8px\";\n};\nvar getColorByName = (name) => {\n const colors = {\n blue: \"#3b82f6\",\n green: \"#10b981\",\n red: \"#ef4444\",\n orange: \"#f59e0b\",\n purple: \"#8b5cf6\",\n yellow: \"#f59e0b\",\n pink: \"#ec4899\",\n teal: \"#14b8a6\",\n indigo: \"#6366f1\",\n primary: \"linear-gradient(to right, rgba(23, 97, 163, 1), rgba(77, 175, 131, 1))\",\n secondary: \"#6b7280\",\n success: \"#10b981\",\n danger: \"#ef4444\",\n warning: \"#f59e0b\",\n info: \"#3b82f6\"\n };\n return colors[name?.toLowerCase()] || colors.primary || \"#3b82f6\";\n};\nvar StyledButton = import_styled.default.button`\n /* Base Styles */\n display: inline-flex;\n align-items: center;\n justify-content: center;\n white-space: nowrap;\n font-size: 14px;\n font-weight: 500;\n transition: all 200ms ease-in-out;\n cursor: pointer;\n border: none;\n outline: none;\n font-family: inherit;\n position: relative;\n \n /* Focus Styles */\n &:focus-visible {\n outline: 2px solid rgba(59, 130, 246, 0.5);\n outline-offset: 2px;\n }\n \n /* Disabled State */\n &:disabled {\n pointer-events: none;\n opacity: 0.5;\n }\n\n ${(props) => {\n const color = getColorByName(props.$name);\n if (color) {\n if (props.$iconButton) {\n return `\n color: ${color.startsWith(\"linear\") || color.startsWith(\"rgba\") ? \"white\" : color};\n `;\n } else {\n return `\n background: ${color};\n color: white;\n border-radius: 6px;\n &:hover { opacity: 0.9; }\n &:active { opacity: 0.95; }\n `;\n }\n }\n return \"\";\n}}\n\n ${(props) => props.$iconButton && `\n background: transparent !important;\n padding: 0;\n color: rgba(255, 255, 255, 0.9);\n height: ${props.$height || \"36px\"};\n width: ${props.$width || \"36px\"};\n min-height: ${props.$height || \"36px\"};\n min-width: ${props.$width || \"36px\"};\n border-radius: 6px;\n \n &:hover {\n background: transparent !important;\n color: rgba(255, 255, 255, 1);\n }\n \n &:active {\n background: transparent !important;\n }\n \n &:focus-visible {\n outline: 2px solid rgba(255, 255, 255, 0.7);\n outline-offset: 2px;\n }\n `}\n\n ${(props) => {\n if (props.$iconButton || props.$name) return \"\";\n switch (props.$variant) {\n case \"default\":\n return `\n background: linear-gradient(to right, rgba(23, 97, 163, 1), rgba(77, 175, 131, 1));\n color: white;\n border-radius: 6px;\n &:hover { opacity: 0.9; }\n &:active { opacity: 0.95; }\n `;\n case \"destructive\":\n return `\n background: #ef4444;\n color: white;\n border-radius: 6px;\n &:hover { background: #dc2626; }\n &:active { background: #b91c1c; }\n `;\n case \"outline\":\n return `\n border: 1px solid #e5e7eb;\n background: white;\n color: #374151;\n border-radius: 6px;\n &:hover { \n background: #f9fafb;\n border-color: #d1d5db;\n }\n &:active { background: #f3f4f6; }\n `;\n case \"secondary\":\n return `\n background: ${getColorByName(\"blue\")};\n color: #374151;\n border-radius: 6px;\n &:hover { background: #e5e7eb; }\n &:active { background: #d1d5db; }\n `;\n case \"ghost\":\n return `\n background: transparent;\n color: #374151;\n border-radius: 6px;\n &:hover { background: #f3f4f6; }\n &:active { background: #e5e7eb; }\n `;\n case \"link\":\n return `\n background: transparent;\n color: #2563eb;\n text-decoration: underline;\n text-underline-offset: 4px;\n padding: 0;\n height: auto;\n &:hover { \n text-decoration: none;\n color: #1d4ed8;\n }\n &:active { color: #1e40af; }\n `;\n case \"danger\":\n return `\n background: transparent;\n color: #ef4444;\n border-radius: 6px;\n &:hover {\n background: rgba(239, 68, 68, 0.1);\n }\n &:active {\n background: rgba(239, 68, 68, 0.2);\n }\n `;\n case \"dotted\":\n return `\n background: linear-gradient(to right, #1e73be, #28a97d);\n color: white;\n border-radius: 8px;\n position: relative;\n overflow: visible;\n \n &::before {\n content: '';\n position: absolute;\n inset: -2px;\n border-radius: 10px;\n padding: 2px;\n background: linear-gradient(to right, #1e73be, #28a97d);\n -webkit-mask: \n linear-gradient(#fff 0 0) content-box, \n linear-gradient(#fff 0 0);\n -webkit-mask-composite: xor;\n mask-composite: exclude;\n border: 2px dashed rgba(255, 255, 255, 0.5);\n }\n \n &:hover { opacity: 0.9; }\n &:active { opacity: 0.95; }\n `;\n case \"pill\":\n return `\n background: linear-gradient(to right, rgba(23, 97, 163, 1), rgba(77, 175, 131, 1));\n color: white;\n border-radius: 9999px;\n &:hover { opacity: 0.9; }\n &:active { opacity: 0.95; }\n `;\n default:\n return `\n background: linear-gradient(to right, rgba(23, 97, 163, 1), rgba(77, 175, 131, 1));\n color: white;\n border-radius: 6px;\n &:hover { opacity: 0.9; }\n `;\n }\n}}\n\n ${(props) => {\n if (props.$iconButton) return \"\";\n switch (props.$size) {\n case \"sm\":\n return `height: 36px; padding: 0 12px; font-size: 13px;`;\n case \"md\":\n return `height: 40px; padding: 0 16px; font-size: 14px;`;\n case \"lg\":\n return `height: 44px; padding: 0 24px; font-size: 15px;`;\n case \"icon\":\n return `height: 40px; width: 40px; padding: 0;`;\n default:\n return `height: 40px; padding: 0 16px;`;\n }\n}}\n`;\nvar IconButtonInner = import_styled.default.span`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n overflow: hidden;\n transition: all 200ms ease-in-out;\n \n /* Name-based background for icon buttons */\n ${(props) => {\n const color = getColorByName(props.$name);\n if (color) {\n return `\n background: ${color.startsWith(\"linear\") ? color : `rgba(${color.slice(1)}, 0.12)`};\n `;\n }\n return \"\";\n}};\n \n /* Parse border radius from Tailwind classes */\n border-radius: ${(props) => {\n if (!props.$radiusClass) return \"6px\";\n const match = props.$radiusClass.match(/rounded-\\[(\\d+)px\\]/);\n if (match) return `${match[1]}px`;\n if (props.$radiusClass === \"rounded-md\") return \"6px\";\n if (props.$radiusClass === \"rounded-lg\") return \"8px\";\n if (props.$radiusClass === \"rounded-full\") return \"9999px\";\n return \"6px\";\n}};\n \n /* Parse padding from Tailwind classes */\n padding: ${(props) => {\n if (!props.$paddingClass) return \"2px\";\n const match = props.$paddingClass.match(/p-\\[(\\d+)px\\]/);\n if (match) return `${match[1]}px`;\n return \"2px\";\n}};\n \n /* Parse background color from Tailwind classes (after name) */\n background: ${(props) => {\n if (props.$name) return \"initial\";\n if (!props.$bgClass) return \"rgba(255, 255, 255, 0.12)\";\n const rgbaMatch = props.$bgClass.match(/bg-\\[(rgba?\\([^)]+\\))\\]/);\n if (rgbaMatch) return rgbaMatch[1];\n return \"rgba(255, 255, 255, 0.12)\";\n}};\n \n width: 100%;\n height: 100%;\n \n /* Icon sizing */\n svg {\n width: 16px;\n height: 16px;\n flex-shrink: 0;\n }\n \n /* Hover and Active States */\n ${(props) => {\n if (props.$hoverBgClass) {\n const hoverMatch = props.$hoverBgClass.match(/hover:bg-\\[(rgba?\\([^)]+\\))\\]/);\n const activeMatch = props.$hoverBgClass.match(/active:bg-\\[(rgba?\\([^)]+\\))\\]/);\n let styles = \"\";\n if (hoverMatch) {\n styles += `button:hover & { background: ${hoverMatch[1]}; }`;\n }\n if (activeMatch) {\n styles += `button:active & { background: ${activeMatch[1]}; }`;\n }\n return styles;\n }\n if (props.$intensity != null) {\n const v = Math.max(0, Math.min(100, props.$intensity));\n if (v === 0) return \"\";\n if (v <= 10) return `button:hover & { opacity: 0.95; } button:active & { opacity: 0.90; }`;\n if (v <= 25) return `button:hover & { opacity: 0.90; } button:active & { opacity: 0.80; }`;\n if (v <= 40) return `button:hover & { opacity: 0.85; } button:active & { opacity: 0.75; }`;\n if (v <= 55) return `button:hover & { opacity: 0.80; } button:active & { opacity: 0.70; }`;\n if (v <= 70) return `button:hover & { opacity: 0.75; } button:active & { opacity: 0.65; }`;\n if (v <= 85) return `button:hover & { opacity: 0.70; } button:active & { opacity: 0.60; }`;\n return `button:hover & { opacity: 0.60; } button:active & { opacity: 0.50; }`;\n }\n return `\n button:hover & { opacity: 0.85; }\n button:active & { opacity: 0.7; }\n `;\n}}\n`;\nvar IconButtonGroupWrapper = import_styled.default.div`\n display: inline-flex;\n flex-direction: ${(props) => props.$direction === \"col\" ? \"column\" : \"row\"};\n align-items: ${(props) => props.$direction === \"col\" ? \"flex-start\" : \"center\"};\n gap: ${(props) => props.$gap || \"8px\"};\n`;\nvar IconButtonGroup = import_react.default.forwardRef(\n ({ className, direction = \"row\", gapClass, ...props }, ref) => {\n const gap = parseGap(gapClass);\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(\n IconButtonGroupWrapper,\n {\n ref,\n $direction: direction,\n $gap: gap,\n className,\n ...props\n }\n );\n }\n);\nIconButtonGroup.displayName = \"IconButtonGroup\";\nvar ButtonBase = import_react.default.forwardRef(\n ({\n className,\n variant = \"default\",\n size = \"default\",\n name,\n iconButton = false,\n iconButtonHeightClass,\n iconButtonWidthClass,\n iconButtonBgClass,\n iconButtonRadiusClass,\n iconButtonBgPaddingClass,\n iconButtonHoverBgClass,\n iconButtonHoverIntensity,\n children,\n ...props\n }, ref) => {\n if (iconButton) {\n const height = parseHeightWidth(iconButtonHeightClass);\n const width = parseHeightWidth(iconButtonWidthClass);\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(\n StyledButton,\n {\n $variant: variant,\n $size: size,\n $iconButton: true,\n $height: height,\n $width: width,\n $name: name,\n className,\n ref,\n ...props,\n children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(\n IconButtonInner,\n {\n $bgClass: iconButtonBgClass,\n $radiusClass: iconButtonRadiusClass,\n $paddingClass: iconButtonBgPaddingClass,\n $hoverBgClass: iconButtonHoverBgClass,\n $intensity: iconButtonHoverIntensity,\n $name: name,\n children\n }\n )\n }\n );\n }\n return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(\n StyledButton,\n {\n $variant: variant,\n $size: size,\n $name: name,\n className,\n ref,\n ...props,\n children\n }\n );\n }\n);\nButtonBase.displayName = \"Button\";\nvar Button = ButtonBase;\nButton.IconButtonGroup = IconButtonGroup;\n// Annotate the CommonJS export names for ESM import in node:\n0 && (module.exports = {\n MahatiButton\n});\n"]}