@algorithm-shift/design-system 1.2.36 → 1.2.37

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/Layout/Modal.tsx","../src/components/Layout/Flex.tsx","../src/components/Layout/Grid.tsx","../src/components/Layout/Container.tsx","../src/components/ui/button.tsx","../src/lib/utils.ts","../src/components/Basic/Button/Button.tsx","../src/components/Basic/Image/Image.tsx","../src/components/Basic/Shape/Shape.tsx","../src/components/Basic/Typography/Typography.tsx","../src/components/Inputs/TextInput/TextInput.tsx","../src/components/ui/input.tsx","../src/components/Inputs/NumberInput/NumberInput.tsx","../node_modules/shared/src/utils.ts","../node_modules/lucide-react/src/defaultAttributes.ts","../node_modules/lucide-react/src/Icon.ts","../node_modules/lucide-react/src/createLucideIcon.ts","../node_modules/lucide-react/src/icons/bell.ts","../node_modules/lucide-react/src/icons/calculator.ts","../node_modules/lucide-react/src/icons/calendar.ts","../node_modules/lucide-react/src/icons/check.ts","../node_modules/lucide-react/src/icons/chevron-down.ts","../node_modules/lucide-react/src/icons/chevron-left.ts","../node_modules/lucide-react/src/icons/chevron-right.ts","../node_modules/lucide-react/src/icons/chevron-up.ts","../node_modules/lucide-react/src/icons/circle.ts","../node_modules/lucide-react/src/icons/ellipsis.ts","../node_modules/lucide-react/src/icons/mail.ts","../node_modules/lucide-react/src/icons/menu.ts","../node_modules/lucide-react/src/icons/scan-eye.ts","../node_modules/lucide-react/src/icons/search.ts","../src/components/Inputs/EmailInput/EmailInput.tsx","../src/components/Inputs/PasswordInput/PasswordInput.tsx","../src/components/Inputs/Textarea/Textarea.tsx","../src/components/ui/textarea.tsx","../src/components/Inputs/UrlInput/UrlInput.tsx","../src/components/Inputs/Checkbox/Checkbox.tsx","../src/components/ui/checkbox.tsx","../src/components/ui/label.tsx","../src/components/Inputs/RadioInput/RadioInput.tsx","../src/components/ui/radio-group.tsx","../src/components/Inputs/MultiCheckbox/MultiCheckbox.tsx","../src/components/Inputs/RichText/RichText.tsx","../src/components/Global/TinyMceEditor.tsx","../src/components/Inputs/Dropdown/Dropdown.tsx","../src/components/ui/select.tsx","../src/components/Inputs/SwitchToggle/SwitchToggle.tsx","../src/components/ui/switch.tsx","../src/components/Inputs/PhoneInput/PhoneInput.tsx","../src/components/Inputs/SearchInput/SearchInput.tsx","../src/components/Inputs/FileInput/FileInput.tsx","../src/components/Inputs/DatePicker/DatePicker.tsx","../src/components/Inputs/DateRange/DateRange.tsx","../src/components/ui/calendar.tsx","../src/components/ui/popover.tsx","../src/components/Inputs/TextInputGroup/TextInputGroup.tsx","../src/components/ui/data-table.tsx","../src/components/ui/table.tsx","../src/components/ui/pagination.tsx","../src/components/DataDisplay/Pagination/Pagination.tsx","../src/components/DataDisplay/Table/Table.tsx","../src/components/ui/dropdown-menu.tsx","../src/components/Navigation/Tabs/Tabs.tsx","../src/components/Navigation/Stages/Stages.tsx","../src/components/Navigation/Spacer/Spacer.tsx","../src/components/Navigation/Profile/Profile.tsx","../src/components/Navigation/Notification/Notification.tsx","../src/components/Navigation/Logo/Logo.tsx","../src/components/ui/avatar.tsx","../src/components/Navigation/Navbar/Navbar.tsx","../src/components/Chart/BarChart.tsx","../src/components/Chart/PieChart.tsx","../src/components/Blocks/EmailComposer.tsx","../src/components/ui/sonner-toast.tsx","../src/components/StateManagment/StateContext.tsx","../src/components/StateManagment/stateReducer.ts"],"sourcesContent":["import './global.css'\r\n\r\nexport * from \"@/components\";\r\nexport * from \"@/lib/utils\";\r\n","import { ModalProps } from \"@/types/global\";\r\n\r\nconst Modal = ({\r\n children, onClose, label, className, style\r\n}: ModalProps) => {\r\n\r\n return (\r\n <div className={className} style={style}>\r\n <div className='min-h-80'>\r\n <div className='flex justify-between items-center p-4 border-b border-gray-300 bg-gray-100'>\r\n <h4 className='text-[#000]'>{label || 'Modal Title'}</h4>\r\n <span\r\n className='cursor-pointer text-[#000]'\r\n role='presentation'\r\n onClick={onClose}\r\n >X</span>\r\n </div>\r\n <div className='h-90 overflow-y-auto p-4 custom-scroll'>\r\n {children}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default Modal;\r\n","import { ElementProps } from \"@/types/global\";\r\n\r\nconst Flex = ({\r\n children, className, style\r\n}: ElementProps) => {\r\n return (\r\n <div className={className} style={style}>\r\n {children}\r\n </div>\r\n );\r\n};\r\n\r\nexport default Flex;\r\n","import { ElementProps } from \"@/types/global\";\r\n\r\nconst Grid = ({\r\n children, className, style\r\n}: ElementProps) => {\r\n return (\r\n <div className={className} style={style}>\r\n {children}\r\n </div>\r\n );\r\n};\r\n\r\nexport default Grid;\r\n","import { ElementProps } from \"@/types/global\";\r\n\r\nconst Container = ({\r\n children, className, style\r\n}: ElementProps) => {\r\n return (\r\n <div className={className} style={style}>\r\n {children}\r\n </div>\r\n );\r\n};\r\n\r\nexport default Container;\r\n","import * as React from \"react\"\r\nimport { Slot } from \"@radix-ui/react-slot\"\r\nimport { cva, type VariantProps } from \"class-variance-authority\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\n\r\nconst buttonVariants = cva(\r\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\r\n {\r\n variants: {\r\n variant: {\r\n default:\r\n \"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90\",\r\n destructive:\r\n \"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60\",\r\n outline:\r\n \"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50\",\r\n secondary:\r\n \"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80\",\r\n ghost:\r\n \"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50\",\r\n link: \"text-primary underline-offset-4 hover:underline\",\r\n },\r\n size: {\r\n default: \"h-9 px-4 py-2 has-[>svg]:px-3\",\r\n sm: \"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5\",\r\n lg: \"h-10 rounded-md px-6 has-[>svg]:px-4\",\r\n icon: \"size-9\",\r\n },\r\n },\r\n defaultVariants: {\r\n variant: \"default\",\r\n size: \"default\",\r\n },\r\n }\r\n)\r\n\r\nfunction Button({\r\n className,\r\n variant,\r\n size,\r\n asChild = false,\r\n ...props\r\n}: React.ComponentProps<\"button\"> &\r\n VariantProps<typeof buttonVariants> & {\r\n asChild?: boolean\r\n }) {\r\n const Comp = asChild ? Slot : \"button\"\r\n\r\n return (\r\n <Comp\r\n data-slot=\"button\"\r\n className={cn(buttonVariants({ variant, size, className }))}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nexport { Button, buttonVariants }\r\n","import { clsx, type ClassValue } from \"clsx\"\r\nimport { twMerge } from \"tailwind-merge\"\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs))\r\n}","import { ButtonProps } from '@/types/global';\r\nimport { Button } from '@/components/ui/button';\r\n\r\nconst ButtonWrapper = ({\r\n className,\r\n style,\r\n textContent = \"Button\",\r\n ...props\r\n}: ButtonProps) => {\r\n\r\n return (\r\n <Button\r\n {...props}\r\n className={className}\r\n style={style}\r\n >\r\n {textContent}\r\n </Button>\r\n );\r\n};\r\n\r\nexport default ButtonWrapper;","import { cn } from '@/lib/utils';\r\nimport { ImageProps } from '@/types/global';\r\nimport placeholder from \"../../../assets/image-placeholder.png\";\r\n\r\nconst ImageControl = ({\r\n className,\r\n style, \r\n imageUrl,\r\n imageUrlExternal,\r\n altText = 'Preview',\r\n}: ImageProps) => {\r\n\r\n const imageClass = cn(\r\n 'h-[200px] w-[200px] border-1',\r\n 'border-2 border-dashed border-gray-400 flex items-center justify-center cursor-pointer hover:border-blue-500 transition',\r\n );\r\n\r\n const defaultImgClass = cn(\r\n 'w-full h-full',\r\n className\r\n );\r\n\r\n if (!imageUrl && !imageUrlExternal) {\r\n return (\r\n <div className={imageClass}>\r\n <img src={placeholder} alt={altText} className=\"opacity-50\" width={50} height={50} />\r\n </div>\r\n )\r\n }\r\n\r\n const url = imageUrlExternal || imageUrl;\r\n\r\n return (\r\n <img src={url} alt={altText} className={defaultImgClass} style={style} />\r\n );\r\n};\r\n\r\nexport default ImageControl;\r\n","import { ElementProps } from '@/types/global';\r\n\r\nconst Shape = ({\r\n children,\r\n className, \r\n style\r\n}: ElementProps) => {\r\n\r\n return (\r\n <div className={className} style={style}>\r\n {children}\r\n </div>\r\n );\r\n};\r\n\r\nexport default Shape;\r\n","import React from 'react';\r\n\r\nimport { cn } from '@/lib/utils';\r\nimport { TypographyProps } from '@/types/global';\r\n\r\nconst Typography = ({\r\n className,\r\n style,\r\n tagName,\r\n textContent,\r\n}: TypographyProps) => {\r\n\r\n const Tag = tagName || 'h1';\r\n\r\n return React.createElement(\r\n Tag,\r\n {\r\n style,\r\n className: cn(className, 'pointer-events-auto'),\r\n },\r\n [\r\n React.createElement('span', {\r\n key: 'html',\r\n className: 'pointer-events-none',\r\n dangerouslySetInnerHTML: { __html: textContent },\r\n })\r\n ]\r\n );\r\n};\r\n\r\nexport default Typography;\r\n","import * as React from 'react';\r\n\r\nimport { Input } from '@/components/ui/input';\r\nimport { cn } from '@/lib/utils';\r\nimport { TextInputProps } from '@/types/global';\r\n\r\nconst TextInput = ({ className, style, ...props }: TextInputProps) => {\r\n\r\n const placeholder = props.placeholder || 'Placeholder text';\r\n\r\n // Controls\r\n const isEditable = props.isEditable ?? true;\r\n const isDisabled = props.isDisabled ?? false;\r\n const isReadonly = props.isReadonly ?? false;\r\n const isAutocomplete = props.isAutocomplete ?? false;\r\n\r\n const [error, setError] = React.useState<string | null>(null);\r\n\r\n React.useEffect(() => {\r\n if (!props.validateOnMount) return;\r\n setError(props.errorMessage || null);\r\n }, [props.errorMessage, props.validateOnMount]);\r\n\r\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n props.onChange?.(e);\r\n };\r\n\r\n return (\r\n <>\r\n <Input\r\n type=\"text\"\r\n name={props.name}\r\n className={\r\n cn(className, error ? 'border-red-500' : '')\r\n }\r\n style={{\r\n ...style,\r\n borderColor: error ? '#f87171' : style?.borderColor\r\n }}\r\n value={props.value}\r\n autoComplete={isAutocomplete ? 'on' : 'off'}\r\n placeholder={placeholder}\r\n onChange={handleChange}\r\n disabled={isDisabled || !isEditable}\r\n readOnly={isReadonly}\r\n />\r\n {error && (\r\n <p className=\"mt-1 text-xs text-red-500\">{error}</p>\r\n )}\r\n </>\r\n );\r\n};\r\n\r\nexport default TextInput;","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Input({ className, type, ...props }: React.ComponentProps<\"input\">) {\n return (\n <input\n type={type}\n data-slot=\"input\"\n className={cn(\n \"file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n \"focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]\",\n \"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Input }\n","import * as React from 'react';\r\n\r\nimport { Calculator } from 'lucide-react';\r\n\r\nimport { Input } from '@/components/ui/input';\r\nimport { NumberInputProps } from '@/types/global';\r\nimport { useEffect } from 'react';\r\nimport { cn } from '@/lib/utils';\r\n\r\nconst NumberInput = ({ className, style, ...props }: NumberInputProps) => {\r\n\r\n const placeholder = props.placeholder ?? 'Placeholder text';\r\n\r\n // Controls\r\n const isEditable = props.isEditable ?? true;\r\n const isDisabled = props.isDisabled ?? false;\r\n const isReadonly = props.isReadonly ?? false;\r\n const isAutocomplete = props.isAutocomplete ?? false;\r\n\r\n const [error, setError] = React.useState<string | null>(null);\r\n \r\n useEffect(() => {\r\n if (!props.validateOnMount) return;\r\n setError(props.errorMessage || null);\r\n }, [props.errorMessage, props.validateOnMount]);\r\n\r\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n props.onChange?.(e);\r\n };\r\n\r\n return (\r\n <>\r\n <div className=\"flex justify-start items-center relative\">\r\n <Calculator className=\"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-[#BDBDBD]\" />\r\n <Input\r\n type=\"number\"\r\n id={props.name || 'number-field'}\r\n name={props.name}\r\n value={props.value}\r\n className={\r\n cn(className, error ? 'border-red-500' : '')\r\n }\r\n style={{\r\n ...style,\r\n borderColor: error ? '#f87171' : style?.borderColor\r\n }}\r\n autoComplete={isAutocomplete ? 'on' : 'off'}\r\n placeholder={placeholder}\r\n onChange={handleChange}\r\n disabled={isDisabled || !isEditable}\r\n readOnly={isReadonly}\r\n />\r\n </div>\r\n\r\n {error && (\r\n <p className=\"mt-1 text-xs text-red-500\">{error}</p>\r\n )}\r\n </>\r\n );\r\n}\r\n\r\nexport default NumberInput;","import { CamelToPascal } from './utility-types';\n\n/**\n * Converts string to kebab case\n *\n * @param {string} string\n * @returns {string} A kebabized string\n */\nexport const toKebabCase = (string: string) =>\n string.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();\n\n/**\n * Converts string to camel case\n *\n * @param {string} string\n * @returns {string} A camelized string\n */\nexport const toCamelCase = <T extends string>(string: T) =>\n string.replace(/^([A-Z])|[\\s-_]+(\\w)/g, (match, p1, p2) =>\n p2 ? p2.toUpperCase() : p1.toLowerCase(),\n );\n\n/**\n * Converts string to pascal case\n *\n * @param {string} string\n * @returns {string} A pascalized string\n */\nexport const toPascalCase = <T extends string>(string: T): CamelToPascal<T> => {\n const camelCase = toCamelCase(string);\n\n return (camelCase.charAt(0).toUpperCase() + camelCase.slice(1)) as CamelToPascal<T>;\n};\n\n/**\n * Merges classes into a single string\n *\n * @param {array} classes\n * @returns {string} A string of classes\n */\nexport const mergeClasses = <ClassType = string | undefined | null>(...classes: ClassType[]) =>\n classes\n .filter((className, index, array) => {\n return (\n Boolean(className) &&\n (className as string).trim() !== '' &&\n array.indexOf(className) === index\n );\n })\n .join(' ')\n .trim();\n\n/**\n * Is empty string\n *\n * @param {unknown} value\n * @returns {boolean} Whether the value is an empty string\n */\nexport const isEmptyString = (value: unknown): boolean => value === '';\n\n/**\n * Check if a component has an accessibility prop\n *\n * @param {object} props\n * @returns {boolean} Whether the component has an accessibility prop\n */\nexport const hasA11yProp = (props: Record<string, any>) => {\n for (const prop in props) {\n if (prop.startsWith('aria-') || prop === 'role' || prop === 'title') {\n return true;\n }\n }\n};\n","export default {\n xmlns: 'http://www.w3.org/2000/svg',\n width: 24,\n height: 24,\n viewBox: '0 0 24 24',\n fill: 'none',\n stroke: 'currentColor',\n strokeWidth: 2,\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n};\n","import { createElement, forwardRef } from 'react';\nimport defaultAttributes from './defaultAttributes';\nimport { IconNode, LucideProps } from './types';\nimport { mergeClasses, hasA11yProp } from '@lucide/shared';\n\ninterface IconComponentProps extends LucideProps {\n iconNode: IconNode;\n}\n\n/**\n * Lucide icon component\n *\n * @component Icon\n * @param {object} props\n * @param {string} props.color - The color of the icon\n * @param {number} props.size - The size of the icon\n * @param {number} props.strokeWidth - The stroke width of the icon\n * @param {boolean} props.absoluteStrokeWidth - Whether to use absolute stroke width\n * @param {string} props.className - The class name of the icon\n * @param {IconNode} props.children - The children of the icon\n * @param {IconNode} props.iconNode - The icon node of the icon\n *\n * @returns {ForwardRefExoticComponent} LucideIcon\n */\nconst Icon = forwardRef<SVGSVGElement, IconComponentProps>(\n (\n {\n color = 'currentColor',\n size = 24,\n strokeWidth = 2,\n absoluteStrokeWidth,\n className = '',\n children,\n iconNode,\n ...rest\n },\n ref,\n ) =>\n createElement(\n 'svg',\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? (Number(strokeWidth) * 24) / Number(size) : strokeWidth,\n className: mergeClasses('lucide', className),\n ...(!children && !hasA11yProp(rest) && { 'aria-hidden': 'true' }),\n ...rest,\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...(Array.isArray(children) ? children : [children]),\n ],\n ),\n);\n\nexport default Icon;\n","import { createElement, forwardRef } from 'react';\nimport { mergeClasses, toKebabCase, toPascalCase } from '@lucide/shared';\nimport { IconNode, LucideProps } from './types';\nimport Icon from './Icon';\n\n/**\n * Create a Lucide icon component\n * @param {string} iconName\n * @param {array} iconNode\n * @returns {ForwardRefExoticComponent} LucideIcon\n */\nconst createLucideIcon = (iconName: string, iconNode: IconNode) => {\n const Component = forwardRef<SVGSVGElement, LucideProps>(({ className, ...props }, ref) =>\n createElement(Icon, {\n ref,\n iconNode,\n className: mergeClasses(\n `lucide-${toKebabCase(toPascalCase(iconName))}`,\n `lucide-${iconName}`,\n className,\n ),\n ...props,\n }),\n );\n\n Component.displayName = toPascalCase(iconName);\n\n return Component;\n};\n\nexport default createLucideIcon;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M10.268 21a2 2 0 0 0 3.464 0', key: 'vwvbt9' }],\n [\n 'path',\n {\n d: 'M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326',\n key: '11g9vi',\n },\n ],\n];\n\n/**\n * @component @name Bell\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwIiAvPgogIDxwYXRoIGQ9Ik0zLjI2MiAxNS4zMjZBMSAxIDAgMCAwIDQgMTdoMTZhMSAxIDAgMCAwIC43NC0xLjY3M0MxOS40MSAxMy45NTYgMTggMTIuNDk5IDE4IDhBNiA2IDAgMCAwIDYgOGMwIDQuNDk5LTEuNDExIDUuOTU2LTIuNzM4IDcuMzI2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/bell\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Bell = createLucideIcon('bell', __iconNode);\n\nexport default Bell;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['rect', { width: '16', height: '20', x: '4', y: '2', rx: '2', key: '1nb95v' }],\n ['line', { x1: '8', x2: '16', y1: '6', y2: '6', key: 'x4nwl0' }],\n ['line', { x1: '16', x2: '16', y1: '14', y2: '18', key: 'wjye3r' }],\n ['path', { d: 'M16 10h.01', key: '1m94wz' }],\n ['path', { d: 'M12 10h.01', key: '1nrarc' }],\n ['path', { d: 'M8 10h.01', key: '19clt8' }],\n ['path', { d: 'M12 14h.01', key: '1etili' }],\n ['path', { d: 'M8 14h.01', key: '6423bh' }],\n ['path', { d: 'M12 18h.01', key: 'mhygvu' }],\n ['path', { d: 'M8 18h.01', key: 'lrp35t' }],\n];\n\n/**\n * @component @name Calculator\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTYiIGhlaWdodD0iMjAiIHg9IjQiIHk9IjIiIHJ4PSIyIiAvPgogIDxsaW5lIHgxPSI4IiB4Mj0iMTYiIHkxPSI2IiB5Mj0iNiIgLz4KICA8bGluZSB4MT0iMTYiIHgyPSIxNiIgeTE9IjE0IiB5Mj0iMTgiIC8+CiAgPHBhdGggZD0iTTE2IDEwaC4wMSIgLz4KICA8cGF0aCBkPSJNMTIgMTBoLjAxIiAvPgogIDxwYXRoIGQ9Ik04IDEwaC4wMSIgLz4KICA8cGF0aCBkPSJNMTIgMTRoLjAxIiAvPgogIDxwYXRoIGQ9Ik04IDE0aC4wMSIgLz4KICA8cGF0aCBkPSJNMTIgMThoLjAxIiAvPgogIDxwYXRoIGQ9Ik04IDE4aC4wMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/calculator\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Calculator = createLucideIcon('calculator', __iconNode);\n\nexport default Calculator;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M8 2v4', key: '1cmpym' }],\n ['path', { d: 'M16 2v4', key: '4m81vk' }],\n ['rect', { width: '18', height: '18', x: '3', y: '4', rx: '2', key: '1hopcy' }],\n ['path', { d: 'M3 10h18', key: '8toen8' }],\n];\n\n/**\n * @component @name Calendar\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAydjQiIC8+CiAgPHBhdGggZD0iTTE2IDJ2NCIgLz4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjQiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0zIDEwaDE4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/calendar\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Calendar = createLucideIcon('calendar', __iconNode);\n\nexport default Calendar;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [['path', { d: 'M20 6 9 17l-5-5', key: '1gmf2c' }]];\n\n/**\n * @component @name Check\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgNiA5IDE3bC01LTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/check\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Check = createLucideIcon('check', __iconNode);\n\nexport default Check;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [['path', { d: 'm6 9 6 6 6-6', key: 'qrunsl' }]];\n\n/**\n * @component @name ChevronDown\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNiA5IDYgNiA2LTYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/chevron-down\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ChevronDown = createLucideIcon('chevron-down', __iconNode);\n\nexport default ChevronDown;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [['path', { d: 'm15 18-6-6 6-6', key: '1wnfg3' }]];\n\n/**\n * @component @name ChevronLeft\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTUgMTgtNi02IDYtNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chevron-left\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ChevronLeft = createLucideIcon('chevron-left', __iconNode);\n\nexport default ChevronLeft;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [['path', { d: 'm9 18 6-6-6-6', key: 'mthhwq' }]];\n\n/**\n * @component @name ChevronRight\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtOSAxOCA2LTYtNi02IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/chevron-right\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ChevronRight = createLucideIcon('chevron-right', __iconNode);\n\nexport default ChevronRight;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [['path', { d: 'm18 15-6-6-6 6', key: '153udz' }]];\n\n/**\n * @component @name ChevronUp\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTggMTUtNi02LTYgNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chevron-up\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ChevronUp = createLucideIcon('chevron-up', __iconNode);\n\nexport default ChevronUp;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }]];\n\n/**\n * @component @name Circle\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/circle\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Circle = createLucideIcon('circle', __iconNode);\n\nexport default Circle;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '1', key: '41hilf' }],\n ['circle', { cx: '19', cy: '12', r: '1', key: '1wjl8i' }],\n ['circle', { cx: '5', cy: '12', r: '1', key: '1pcz8c' }],\n];\n\n/**\n * @component @name Ellipsis\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxIiAvPgogIDxjaXJjbGUgY3g9IjE5IiBjeT0iMTIiIHI9IjEiIC8+CiAgPGNpcmNsZSBjeD0iNSIgY3k9IjEyIiByPSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/ellipsis\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Ellipsis = createLucideIcon('ellipsis', __iconNode);\n\nexport default Ellipsis;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'm22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7', key: '132q7q' }],\n ['rect', { x: '2', y: '4', width: '20', height: '16', rx: '2', key: 'izxlao' }],\n];\n\n/**\n * @component @name Mail\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjIgNy04Ljk5MSA1LjcyN2EyIDIgMCAwIDEtMi4wMDkgMEwyIDciIC8+CiAgPHJlY3QgeD0iMiIgeT0iNCIgd2lkdGg9IjIwIiBoZWlnaHQ9IjE2IiByeD0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/mail\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Mail = createLucideIcon('mail', __iconNode);\n\nexport default Mail;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M4 12h16', key: '1lakjw' }],\n ['path', { d: 'M4 18h16', key: '19g7jn' }],\n ['path', { d: 'M4 6h16', key: '1o0s65' }],\n];\n\n/**\n * @component @name Menu\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxMmgxNiIgLz4KICA8cGF0aCBkPSJNNCAxOGgxNiIgLz4KICA8cGF0aCBkPSJNNCA2aDE2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/menu\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Menu = createLucideIcon('menu', __iconNode);\n\nexport default Menu;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M3 7V5a2 2 0 0 1 2-2h2', key: 'aa7l1z' }],\n ['path', { d: 'M17 3h2a2 2 0 0 1 2 2v2', key: '4qcy5o' }],\n ['path', { d: 'M21 17v2a2 2 0 0 1-2 2h-2', key: '6vwrx8' }],\n ['path', { d: 'M7 21H5a2 2 0 0 1-2-2v-2', key: 'ioqczr' }],\n ['circle', { cx: '12', cy: '12', r: '1', key: '41hilf' }],\n [\n 'path',\n {\n d: 'M18.944 12.33a1 1 0 0 0 0-.66 7.5 7.5 0 0 0-13.888 0 1 1 0 0 0 0 .66 7.5 7.5 0 0 0 13.888 0',\n key: '11ak4c',\n },\n ],\n];\n\n/**\n * @component @name ScanEye\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIiAvPgogIDxwYXRoIGQ9Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIiAvPgogIDxwYXRoIGQ9Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIiIC8+CiAgPHBhdGggZD0iTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEiIC8+CiAgPHBhdGggZD0iTTE4Ljk0NCAxMi4zM2ExIDEgMCAwIDAgMC0uNjYgNy41IDcuNSAwIDAgMC0xMy44ODggMCAxIDEgMCAwIDAgMCAuNjYgNy41IDcuNSAwIDAgMCAxMy44ODggMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/scan-eye\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ScanEye = createLucideIcon('scan-eye', __iconNode);\n\nexport default ScanEye;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'm21 21-4.34-4.34', key: '14j7rj' }],\n ['circle', { cx: '11', cy: '11', r: '8', key: '4ej97u' }],\n];\n\n/**\n * @component @name Search\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjEgMjEtNC4zNC00LjM0IiAvPgogIDxjaXJjbGUgY3g9IjExIiBjeT0iMTEiIHI9IjgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/search\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Search = createLucideIcon('search', __iconNode);\n\nexport default Search;\n","import * as React from 'react';\r\n\r\nimport { Mail } from 'lucide-react';\r\n\r\nimport { Input } from '@/components/ui/input';\r\nimport { EmailInputProps } from '@/types/global';\r\nimport { cn } from '@/lib/utils';\r\n\r\nconst EmailInput = ({ className, style, ...props }: EmailInputProps) => {\r\n const placeholder = props.placeholder ?? 'Placeholder text';\r\n\r\n // Controls\r\n const isEditable = props.isEditable ?? true;\r\n const isDisabled = props.isDisabled ?? false;\r\n const isReadonly = props.isReadonly ?? false;\r\n const isAutocomplete = props.isAutocomplete ?? false;\r\n\r\n const [error, setError] = React.useState<string | null>(null);\r\n\r\n React.useEffect(() => {\r\n if (!props.validateOnMount) return;\r\n setError(props.errorMessage || null);\r\n }, [props.errorMessage, props.validateOnMount]);\r\n\r\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n props.onChange?.(e);\r\n };\r\n\r\n return (\r\n <>\r\n <div className=\"flex justify-start items-center relative\">\r\n <Mail className=\"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-[#BDBDBD]\" />\r\n <Input\r\n type=\"email\"\r\n name={props.name}\r\n value={props.value}\r\n className={\r\n cn(className, error ? 'border-red-500' : '')\r\n }\r\n style={{\r\n ...style,\r\n borderColor: error ? '#f87171' : style?.borderColor\r\n }}\r\n autoComplete={isAutocomplete ? 'on' : 'off'}\r\n placeholder={placeholder}\r\n onChange={handleChange}\r\n disabled={isDisabled || !isEditable}\r\n readOnly={isReadonly}\r\n />\r\n </div>\r\n\r\n {error && (\r\n <p className=\"mt-1 text-xs text-red-500\">{error}</p>\r\n )}\r\n </>\r\n );\r\n}\r\n\r\nexport default EmailInput;","import * as React from 'react';\r\n\r\nimport { ScanEye } from 'lucide-react';\r\n\r\nimport { Input } from '@/components/ui/input';\r\nimport { PasswordInputProps } from '@/types/global';\r\nimport { cn } from '@/lib/utils';\r\n\r\nconst PasswordInput = ({ className, style, ...props }: PasswordInputProps) => {\r\n\r\n const placeholder = props.placeholder ?? 'Placeholder text';\r\n\r\n // Controls\r\n const isEditable = props.isEditable ?? true;\r\n const isDisabled = props.isDisabled ?? false;\r\n const isReadonly = props.isReadonly ?? false;\r\n const isAutocomplete = props.isAutocomplete ?? false;\r\n\r\n const [error, setError] = React.useState<string | null>(null);\r\n \r\n React.useEffect(() => {\r\n if (!props.validateOnMount) return;\r\n setError(props.errorMessage || null);\r\n }, [props.errorMessage, props.validateOnMount]);\r\n\r\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n props.onChange?.(e);\r\n };\r\n\r\n return (\r\n <>\r\n <div className=\"flex justify-start items-center relative\">\r\n <ScanEye className=\"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-[#BDBDBD]\" />\r\n <Input\r\n type=\"password\"\r\n id={props.name || 'password-field'}\r\n name={props.name}\r\n value={props.value}\r\n className={\r\n cn(className, error ? 'border-red-500' : '')\r\n }\r\n style={{\r\n ...style,\r\n borderColor: error ? '#f87171' : style?.borderColor\r\n }}\r\n autoComplete={isAutocomplete ? 'on' : 'off'}\r\n placeholder={placeholder}\r\n onChange={handleChange}\r\n disabled={isDisabled || !isEditable}\r\n readOnly={isReadonly}\r\n />\r\n </div>\r\n\r\n {error && (\r\n <p className=\"mt-1 text-xs text-red-500\">{error}</p>\r\n )}\r\n </>\r\n );\r\n}\r\n\r\nexport default PasswordInput;","import * as React from 'react';\r\n\r\nimport { Textarea as TextareaInput } from '@/components/ui/textarea';\r\nimport { TextAreaProps } from '@/types/global';\r\nimport { cn } from '@/lib/utils';\r\n\r\nconst Textarea = ({ className, style, ...props }: TextAreaProps) => {\r\n const placeholder = props.placeholder ?? 'Placeholder text';\r\n\r\n // Controls\r\n const isEditable = props.isEditable ?? true;\r\n const isDisabled = props.isDisabled ?? false;\r\n const isReadonly = props.isReadonly ?? false;\r\n const isAutocomplete = props.isAutocomplete ?? false;\r\n\r\n const [error, setError] = React.useState<string | null>(null);\r\n \r\n React.useEffect(() => {\r\n if (!props.validateOnMount) return;\r\n setError(props.errorMessage || null);\r\n }, [props.errorMessage, props.validateOnMount]);\r\n\r\n const handleChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\r\n props.onChange?.(e);\r\n };\r\n\r\n return (\r\n <>\r\n <TextareaInput\r\n id={'textarea-field'}\r\n name={props.name}\r\n value={props.value}\r\n className={\r\n cn(className, error ? 'border-red-500' : '')\r\n }\r\n style={{\r\n ...style,\r\n borderColor: error ? '#f87171' : style?.borderColor\r\n }}\r\n autoComplete={isAutocomplete ? 'on' : 'off'}\r\n placeholder={placeholder}\r\n onChange={handleChange}\r\n disabled={isDisabled || !isEditable}\r\n readOnly={isReadonly}\r\n />\r\n\r\n {error && (\r\n <p className=\"mt-1 text-xs text-red-500\">{error}</p>\r\n )}\r\n </>\r\n );\r\n}\r\n\r\nexport default Textarea;","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Textarea({ className, ...props }: React.ComponentProps<\"textarea\">) {\n return (\n <textarea\n data-slot=\"textarea\"\n className={cn(\n \"border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Textarea }\n","\r\nimport * as React from 'react';\r\n\r\nimport { Input } from '@/components/ui/input';\r\nimport { UrlInputProps } from '@/types/global';\r\nimport { cn } from '@/lib/utils';\r\n\r\nconst UrlInput = ({ className, style, ...props }: UrlInputProps) => {\r\n const placeholder = props.placeholder ?? 'Placeholder text';\r\n\r\n // Controls\r\n const isEditable = props.isEditable ?? true;\r\n const isDisabled = props.isDisabled ?? false;\r\n const isReadonly = props.isReadonly ?? false;\r\n const isAutocomplete = props.isAutocomplete ?? false;\r\n\r\n const [error, setError] = React.useState<string | null>(null);\r\n \r\n React.useEffect(() => {\r\n if (!props.validateOnMount) return;\r\n setError(props.errorMessage || null);\r\n }, [props.errorMessage, props.validateOnMount]);\r\n\r\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n props.onChange?.(e);\r\n };\r\n\r\n return (\r\n <>\r\n <div className=\"flex justify-start items-center relative\">\r\n <div className=\"bg-[#E9E9E9] absolute px-10 text-center top-1/2 h-full justify-center items-center flex w-10 -translate-y-1/2 text-[#383838] font-[500] text-[12px]\">\r\n https://\r\n </div>\r\n <Input\r\n id={'url-field'}\r\n type=\"url\"\r\n name={props.name}\r\n value={props.value}\r\n className={\r\n cn(className, error ? 'border-red-500' : '')\r\n }\r\n style={{\r\n ...style,\r\n borderColor: error ? '#f87171' : style?.borderColor\r\n }}\r\n autoComplete={isAutocomplete ? 'on' : 'off'}\r\n placeholder={placeholder}\r\n onChange={handleChange}\r\n disabled={isDisabled || !isEditable}\r\n readOnly={isReadonly}\r\n />\r\n </div>\r\n\r\n {error && (\r\n <p className=\"mt-1 text-xs text-red-500\">{error}</p>\r\n )}\r\n </>\r\n );\r\n}\r\n\r\nexport default UrlInput;","import { useEffect, useState } from 'react';\r\nimport { Checkbox } from '@/components/ui/checkbox';\r\nimport { Label } from '@/components/ui/label';\r\nimport { CheckboxInputProps } from '@/types/global';\r\n\r\nconst CheckboxInput = ({ className, style, ...props }: CheckboxInputProps) => {\r\n const isEditable = props.isEditable ?? true;\r\n const isDisabled = props.isDisabled ?? false;\r\n\r\n const text = props.text ? props.text : 'Subscribe';\r\n\r\n const [error, setError] = useState<string | null>(null);\r\n\r\n useEffect(() => {\r\n if (!props.validateOnMount) return;\r\n setError(props.errorMessage || null);\r\n }, [props.errorMessage, props.validateOnMount]);\r\n \r\n const handleChange = (value: boolean) => {\r\n props.onChange?.(value);\r\n };\r\n\r\n return (\r\n <>\r\n <div className={className} style={style}>\r\n <div className=\"flex items-center space-x-2\">\r\n <Checkbox \r\n id={props.name || 'checkbox'}\r\n checked={!!props.value}\r\n onCheckedChange={handleChange}\r\n disabled={!isEditable || isDisabled}\r\n />\r\n <Label htmlFor={props.name || 'checkbox'}>{text}</Label>\r\n </div>\r\n </div>\r\n {error && (\r\n <p className=\"mt-1 text-xs text-red-500\">{error}</p>\r\n )}\r\n </>\r\n );\r\n};\r\n\r\nexport default CheckboxInput;","import * as React from \"react\"\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\"\nimport { CheckIcon } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Checkbox({\n className,\n ...props\n}: React.ComponentProps<typeof CheckboxPrimitive.Root>) {\n return (\n <CheckboxPrimitive.Root\n data-slot=\"checkbox\"\n className={cn(\n \"peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n data-slot=\"checkbox-indicator\"\n className=\"flex items-center justify-center text-current transition-none\"\n >\n <CheckIcon className=\"size-3.5\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n )\n}\n\nexport { Checkbox }\n","import * as React from \"react\"\nimport * as LabelPrimitive from \"@radix-ui/react-label\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Label({\n className,\n ...props\n}: React.ComponentProps<typeof LabelPrimitive.Root>) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n \"flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Label }\n","'use client';\r\nimport { useEffect, useState } from 'react';\r\nimport { Label } from '@/components/ui/label';\r\nimport { RadioGroup, RadioGroupItem } from '@/components/ui/radio-group';\r\nimport { RadioInputProps } from '@/types/global';\r\n\r\nexport type Option = {\r\n label: string;\r\n value: string;\r\n};\r\n\r\nconst RadioInput = ({\r\n className,\r\n style,\r\n defaultValue,\r\n onChange,\r\n data = [],\r\n dataKey,\r\n dataLabel,\r\n ...props\r\n}: RadioInputProps) => {\r\n\r\n const [error, setError] = useState<string | null>(null);\r\n\r\n useEffect(() => {\r\n if (!props.validateOnMount) return;\r\n setError(props.errorMessage || null);\r\n }, [props.errorMessage, props.validateOnMount]);\r\n\r\n const options: Option[] = (data || []).map((item: any) => ({\r\n value: item[dataKey || 'value'],\r\n label: item[dataLabel || 'label'],\r\n }));\r\n\r\n const handleChange = (value: string) => {\r\n onChange?.(value);\r\n };\r\n\r\n // Ensure defaultValue passed to RadioGroup is a string or undefined\r\n const resolvedDefaultValue = (typeof defaultValue === 'string' ? defaultValue : undefined) ?? options[0]?.value;\r\n\r\n return (\r\n <>\r\n <div className={className} style={style}>\r\n <RadioGroup\r\n defaultValue={resolvedDefaultValue}\r\n onValueChange={handleChange}\r\n >\r\n {\r\n options.length === 0 && (\r\n <div className=\"text-sm text-gray-500\">No options available</div>\r\n )\r\n }\r\n {options.map((item) => (\r\n <div className=\"flex items-center space-x-2\" key={item.value}>\r\n <RadioGroupItem value={item.value} id={`radio-${item.value}`} />\r\n <Label htmlFor={`radio-${item.value}`}>{item.label}</Label>\r\n </div>\r\n ))}\r\n </RadioGroup>\r\n </div>\r\n {error && (\r\n <p className=\"mt-1 text-xs text-red-500\">{error}</p>\r\n )}\r\n </>\r\n );\r\n};\r\n\r\nexport default RadioInput;\r\n","import * as React from \"react\"\nimport * as RadioGroupPrimitive from \"@radix-ui/react-radio-group\"\nimport { CircleIcon } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction RadioGroup({\n className,\n ...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Root>) {\n return (\n <RadioGroupPrimitive.Root\n data-slot=\"radio-group\"\n className={cn(\"grid gap-3\", className)}\n {...props}\n />\n )\n}\n\nfunction RadioGroupItem({\n className,\n ...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Item>) {\n return (\n <RadioGroupPrimitive.Item\n data-slot=\"radio-group-item\"\n className={cn(\n \"border-input text-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 aspect-square size-4 shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator\n data-slot=\"radio-group-indicator\"\n className=\"relative flex items-center justify-center\"\n >\n <CircleIcon className=\"fill-primary absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n )\n}\n\nexport { RadioGroup, RadioGroupItem }\n","'use client';\r\n\r\nimport { useCallback, useState } from 'react';\r\n\r\nimport { Checkbox } from '@/components/ui/checkbox';\r\nimport { Label } from '@/components/ui/label';\r\nimport { cn } from '@/lib/utils';\r\nimport { MultiCheckboxInputProps } from '@/types/global';\r\n\r\ntype Option = {\r\n value: string;\r\n label: string;\r\n};\r\n\r\nconst MultiCheckbox = ({\r\n className,\r\n style,\r\n data = [],\r\n dataKey = 'value',\r\n dataLabel = 'label',\r\n value: propValue = {},\r\n onChange,\r\n isEditable = true,\r\n isDisabled = false,\r\n}: MultiCheckboxInputProps) => {\r\n const [value, setValue] = useState<Record<string, boolean>>(propValue);\r\n\r\n const options: Option[] = (data || []).map((item: any) => ({\r\n value: item[dataKey || 'value'],\r\n label: item[dataLabel || 'label'],\r\n }));\r\n\r\n const handleChange = useCallback(\r\n (key: string, checked: boolean) => {\r\n setValue((prev) => {\r\n const newValue = { ...prev, [key]: checked };\r\n onChange?.(newValue);\r\n return newValue;\r\n });\r\n },\r\n [onChange]\r\n );\r\n\r\n return (\r\n <div\r\n className={\r\n cn('flex flex-col gap-3', className)\r\n }\r\n style={style}\r\n >\r\n {\r\n options.length === 0 && <p className=\"text-sm text-gray-500\">No options available.</p>\r\n }\r\n {options.map((opt) => (\r\n <div className=\"flex items-center space-x-2\" key={opt.value}>\r\n <Checkbox\r\n id={opt.value}\r\n checked={!!value[opt.value]}\r\n onCheckedChange={(checked) => handleChange(opt.value, checked === true)}\r\n disabled={!isEditable || isDisabled}\r\n />\r\n <Label htmlFor={opt.value}>{opt.label}</Label>\r\n </div>\r\n ))}\r\n </div>\r\n );\r\n};\r\n\r\nexport default MultiCheckbox;\r\n","import { useEffect, useState } from 'react';\r\nimport TinyMceEditor from '@/components/Global/TinyMceEditor';\r\nimport { RichTextInputProps } from '@/types/global';\r\nimport { cn } from '@/lib/utils';\r\n\r\nexport default function RichText({ className, style, ...props }: RichTextInputProps) {\r\n const [error, setError] = useState<string | null>(null);\r\n\r\n useEffect(() => {\r\n if (!props.validateOnMount) return;\r\n setError(props.errorMessage || null);\r\n }, [props.errorMessage, props.validateOnMount]);\r\n \r\n return (\r\n <div\r\n className={\r\n cn(className, error ? 'border-red-500' : '')\r\n }\r\n style={{\r\n ...style,\r\n borderColor: error ? '#f87171' : style?.borderColor\r\n }}\r\n >\r\n <TinyMceEditor onChange={(content) => props.onChange?.(content)} value={props.value} isDefault={true} />\r\n {error && (\r\n <p className=\"mt-1 text-xs text-red-500\">{error}</p>\r\n )}\r\n </div>\r\n );\r\n}\r\n","'use client';\r\n\r\nimport { useMemo, useRef } from 'react';\r\n\r\nimport { Editor } from '@tinymce/tinymce-react';\r\n\r\nexport default function MyEditor({\r\n value,\r\n onChange,\r\n isDefault\r\n}: {\r\n value?: string;\r\n onChange?: (value: string) => void;\r\n isDefault?: boolean;\r\n}) {\r\n const editorRef = useRef<any>(null);\r\n\r\n function stripOuterP(html: string): string {\r\n const trimmedHtml = html.trim();\r\n if (!trimmedHtml) return '';\r\n const div = document.createElement('div');\r\n div.innerHTML = trimmedHtml;\r\n const firstChild = div.firstElementChild;\r\n if (div.childElementCount === 1 && firstChild?.tagName === 'P') {\r\n return firstChild.innerHTML;\r\n }\r\n return trimmedHtml;\r\n }\r\n\r\n const isDefaultToolbar = useMemo(() => {\r\n let toolbar = 'undo redo | formatselect | bold italic forecolor';\r\n if (isDefault) {\r\n toolbar = 'undo redo | blocks | ' +\r\n 'bold italic forecolor | alignleft aligncenter ' +\r\n 'alignright alignjustify | bullist numlist outdent indent | ' +\r\n 'removeformat | help';\r\n }\r\n return toolbar;\r\n }, [isDefault]);\r\n\r\n return (\r\n <Editor\r\n apiKey={process.env.NEXT_PUBLIC_TINYMCE_API_KEY}\r\n tinymceScriptSrc={process.env.NEXT_PUBLIC_TINYMCE_SCRIPT_SRC}\r\n onInit={(_evt, editor) => (editorRef.current = editor)}\r\n value={value}\r\n licenseKey='gpl'\r\n init={{\r\n height: 300,\r\n menubar: false,\r\n forced_root_block: false,\r\n plugins: [\r\n 'advlist',\r\n 'autolink',\r\n 'lists',\r\n 'link',\r\n 'image',\r\n 'charmap',\r\n 'preview',\r\n 'anchor',\r\n 'searchreplace',\r\n 'visualblocks',\r\n 'code',\r\n 'fullscreen',\r\n 'insertdatetime',\r\n 'media',\r\n 'table',\r\n 'help',\r\n 'wordcount',\r\n ],\r\n toolbar: isDefaultToolbar,\r\n content_style: `\r\n body {\r\n outline: none;\r\n }\r\n `,\r\n }}\r\n onEditorChange={(content) => onChange?.(stripOuterP(content))}\r\n />\r\n );\r\n}\r\n","import * as React from 'react';\r\n\r\nimport {\r\n Select,\r\n SelectContent,\r\n SelectItem,\r\n SelectTrigger,\r\n SelectValue,\r\n} from '@/components/ui/select';\r\nimport { cn } from '@/lib/utils';\r\nimport { SelectDropdownInputProps } from '@/types/global';\r\n\r\nconst Dropdown = ({ className, style, ...props }: SelectDropdownInputProps) => {\r\n const list = props.data || [];\r\n const placeholder = props.placeholder ? props.placeholder : 'Placeholder text';\r\n\r\n // Controls\r\n const isEditable = props.isEditable ?? true;\r\n const isDisabled = props.isDisabled ?? false;\r\n const isReadonly = props.isReadonly ?? false;\r\n\r\n const [error, setError] = React.useState<string | null>(null);\r\n\r\n React.useEffect(() => {\r\n if (!props.validateOnMount) return;\r\n setError(props.errorMessage || null);\r\n }, [props.errorMessage, props.validateOnMount]);\r\n\r\n const handleChange = (value: string) => {\r\n props.onChange?.(value);\r\n };\r\n\r\n const dataKey = props.dataKey || 'value';\r\n const dataLabel = props.dataLabel || 'label';\r\n const options = list.map((item: any) => ({\r\n value: item[dataKey],\r\n label: item[dataLabel]\r\n }));\r\n\r\n return (\r\n <>\r\n <Select name={props.name} value={props.value} onValueChange={handleChange} disabled={isDisabled || !isEditable}>\r\n <SelectTrigger\r\n id={props.name || 'select-field'}\r\n className={cn(className, error ? 'border-red-500' : '')}\r\n style={{\r\n ...style,\r\n borderColor: error ? '#f87171' : style?.borderColor\r\n }}\r\n aria-readonly={isReadonly}\r\n >\r\n <SelectValue placeholder={placeholder} />\r\n </SelectTrigger>\r\n <SelectContent>\r\n {options.map((opt: { value: string; label: string }) => (\r\n <SelectItem key={opt.value} value={opt.value}>\r\n {opt.label}\r\n </SelectItem>\r\n ))}\r\n </SelectContent>\r\n </Select>\r\n {error && (\r\n <p className=\"mt-1 text-xs text-red-500\">{error}</p>\r\n )}\r\n </>\r\n );\r\n};\r\n\r\nexport default Dropdown;","import * as React from \"react\"\nimport * as SelectPrimitive from \"@radix-ui/react-select\"\nimport { CheckIcon, ChevronDownIcon, ChevronUpIcon } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Select({\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Root>) {\n return <SelectPrimitive.Root data-slot=\"select\" {...props} />\n}\n\nfunction SelectGroup({\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Group>) {\n return <SelectPrimitive.Group data-slot=\"select-group\" {...props} />\n}\n\nfunction SelectValue({\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Value>) {\n return <SelectPrimitive.Value data-slot=\"select-value\" {...props} />\n}\n\nfunction SelectTrigger({\n className,\n size = \"default\",\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Trigger> & {\n size?: \"sm\" | \"default\"\n}) {\n return (\n <SelectPrimitive.Trigger\n data-slot=\"select-trigger\"\n data-size={size}\n className={cn(\n \"border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDownIcon className=\"size-4 opacity-50\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n )\n}\n\nfunction SelectContent({\n className,\n children,\n position = \"popper\",\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Content>) {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n data-slot=\"select-content\"\n className={cn(\n \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md\",\n position === \"popper\" &&\n \"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1\",\n className\n )}\n position={position}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n \"p-1\",\n position === \"popper\" &&\n \"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1\"\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n )\n}\n\nfunction SelectLabel({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Label>) {\n return (\n <SelectPrimitive.Label\n data-slot=\"select-label\"\n className={cn(\"text-muted-foreground px-2 py-1.5 text-xs\", className)}\n {...props}\n />\n )\n}\n\nfunction SelectItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Item>) {\n return (\n <SelectPrimitive.Item\n data-slot=\"select-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2\",\n className\n )}\n {...props}\n >\n <span className=\"absolute right-2 flex size-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <CheckIcon className=\"size-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n )\n}\n\nfunction SelectSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Separator>) {\n return (\n <SelectPrimitive.Separator\n data-slot=\"select-separator\"\n className={cn(\"bg-border pointer-events-none -mx-1 my-1 h-px\", className)}\n {...props}\n />\n )\n}\n\nfunction SelectScrollUpButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>) {\n return (\n <SelectPrimitive.ScrollUpButton\n data-slot=\"select-scroll-up-button\"\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className\n )}\n {...props}\n >\n <ChevronUpIcon className=\"size-4\" />\n </SelectPrimitive.ScrollUpButton>\n )\n}\n\nfunction SelectScrollDownButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollDownButton>) {\n return (\n <SelectPrimitive.ScrollDownButton\n data-slot=\"select-scroll-down-button\"\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className\n )}\n {...props}\n >\n <ChevronDownIcon className=\"size-4\" />\n </SelectPrimitive.ScrollDownButton>\n )\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n}\n","import { useEffect, useState } from 'react';\r\nimport { Label } from '@/components/ui/label';\r\nimport { Switch } from '@/components/ui/switch';\r\nimport { SwitchToggleInputProps } from '@/types/global';\r\n\r\nconst SwitchToggle = ({ className, style, ...props }: SwitchToggleInputProps) => {\r\n const isEditable = props.isEditable ?? true;\r\n const isDisabled = props.isDisabled ?? false;\r\n\r\n const [error, setError] = useState<string | null>(null);\r\n\r\n useEffect(() => {\r\n if (!props.validateOnMount) return;\r\n setError(props.errorMessage || null);\r\n }, [props.errorMessage, props.validateOnMount]);\r\n\r\n const handleChange = (value: boolean) => {\r\n props.onChange?.(value);\r\n };\r\n\r\n return (\r\n <>\r\n <div className={className} style={style}>\r\n <div className=\"flex items-center space-x-2 mb-2\">\r\n <Switch\r\n id={props.name || 'switch'} \r\n checked={!!props.value}\r\n onCheckedChange={handleChange}\r\n disabled={isDisabled || !isEditable}\r\n />\r\n <Label htmlFor={props.name || 'switch'}>{props.text}</Label>\r\n </div>\r\n </div>\r\n {error && (\r\n <p className=\"mt-1 text-xs text-red-500\">{error}</p>\r\n )}\r\n </>\r\n );\r\n};\r\n\r\nexport default SwitchToggle;","import * as React from \"react\"\nimport * as SwitchPrimitive from \"@radix-ui/react-switch\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Switch({\n className,\n ...props\n}: React.ComponentProps<typeof SwitchPrimitive.Root>) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n className={cn(\n \"peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className={cn(\n \"bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0\"\n )}\n />\n </SwitchPrimitive.Root>\n )\n}\n\nexport { Switch }\n","import { cn } from '@/lib/utils';\r\nimport { PhoneInputProps } from '@/types/global';\r\nimport * as React from 'react';\r\n\r\nimport { PhoneInput as PhoneInputField } from 'react-international-phone';\r\nimport 'react-international-phone/style.css';\r\n\r\nconst PhoneInput = ({ className, style, ...props }: PhoneInputProps) => {\r\n const placeholder = props.placeholder ?? 'Enter phone number';\r\n\r\n // Controls\r\n const isEditable = props.isEditable ?? true;\r\n const isDisabled = props.isDisabled ?? false;\r\n\r\n const [error, setError] = React.useState<string | null>(null);\r\n \r\n React.useEffect(() => {\r\n if (!props.validateOnMount) return;\r\n setError(props.errorMessage || null);\r\n }, [props.errorMessage, props.validateOnMount]);\r\n\r\n const handleChange = (val: any) => {\r\n props.onChange?.(val);\r\n };\r\n\r\n return (\r\n <>\r\n <PhoneInputField\r\n defaultCountry=\"in\"\r\n name={props.name}\r\n value={props.value}\r\n className={\r\n cn(className, error ? 'border-red-500' : '')\r\n }\r\n style={{\r\n ...style,\r\n borderColor: error ? '#f87171' : style?.borderColor\r\n }}\r\n onChange={(phone: string) => handleChange(phone)}\r\n inputProps={{\r\n id: 'phone-field',\r\n }}\r\n placeholder={placeholder}\r\n disabled={isDisabled || !isEditable}\r\n />\r\n\r\n {error && (\r\n <p className=\"mt-1 text-xs text-red-500\">{error}</p>\r\n )}\r\n </>\r\n );\r\n}\r\n\r\nexport default PhoneInput;","import * as React from 'react';\r\n\r\nimport { Search } from 'lucide-react';\r\n\r\nimport { Input } from '@/components/ui/input';\r\nimport { SearchInputProps } from '@/types/global';\r\nimport { cn } from '@/lib/utils';\r\n\r\nconst SearchInput = ({ className, style, ...props }: SearchInputProps) => {\r\n const placeholder = props.placeholder ?? 'Placeholder text';\r\n\r\n // Controls\r\n const isEditable = props.isEditable ?? true;\r\n const isDisabled = props.isDisabled ?? false;\r\n const isReadonly = props.isReadonly ?? false;\r\n const isAutocomplete = props.isAutocomplete ?? false;\r\n\r\n const [error, setError] = React.useState<string | null>(null);\r\n\r\n React.useEffect(() => {\r\n if (!props.validateOnMount) return;\r\n setError(props.errorMessage || null);\r\n }, [props.errorMessage, props.validateOnMount]);\r\n\r\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n props.onChange?.(e);\r\n };\r\n\r\n return (\r\n <>\r\n <div className=\"flex justify-start items-center relative\">\r\n <Search className=\"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-[#BDBDBD]\" />\r\n <Input\r\n type=\"text\"\r\n id={props.name || 'text-field'}\r\n name={props.name}\r\n value={props.value}\r\n className={\r\n cn(className, error ? 'border-red-500' : '')\r\n }\r\n style={{\r\n ...style,\r\n borderColor: error ? '#f87171' : style?.borderColor\r\n }}\r\n autoComplete={isAutocomplete ? 'on' : 'off'}\r\n placeholder={placeholder}\r\n onChange={handleChange}\r\n disabled={isDisabled || !isEditable}\r\n readOnly={isReadonly}\r\n />\r\n </div>\r\n\r\n {error && (\r\n <p className=\"mt-1 text-xs text-red-500\">{error}</p>\r\n )}\r\n </>\r\n );\r\n}\r\n\r\nexport default SearchInput;","import { useEffect, useState } from 'react';\r\n\r\nimport { Input } from '@/components/ui/input';\r\nimport { cn } from '@/lib/utils';\r\nimport { FileInputProps } from '@/types/global';\r\n\r\nconst FileInput = ({ className, style, ...props }: FileInputProps) => {\r\n const placeholder = props.placeholder ?? 'Placeholder text';\r\n const [error, setError] = useState<string | null>(null);\r\n\r\n useEffect(() => {\r\n if (!props.validateOnMount) return;\r\n setError(props.errorMessage || null);\r\n }, [props.errorMessage, props.validateOnMount]);\r\n\r\n return (\r\n <div className=\"d-flex items-center relative align-middle\">\r\n <Input\r\n type=\"file\"\r\n id=\"file\"\r\n name={props.name}\r\n value={props.value}\r\n className={\r\n cn(className, error ? 'border-red-500' : '')\r\n }\r\n style={{\r\n ...style,\r\n borderColor: error ? '#f87171' : style?.borderColor\r\n }}\r\n autoComplete=\"off\"\r\n placeholder={placeholder}\r\n onChange={(e) => {\r\n props.onChange?.(e);\r\n }}\r\n />\r\n \r\n {error && (\r\n <p className=\"mt-1 text-xs text-red-500\">{error}</p>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nexport default FileInput;","'use client';\r\nimport React, { useEffect } from 'react';\r\n\r\nimport { Calendar } from 'lucide-react';\r\n\r\nimport { Input } from '@/components/ui/input';\r\nimport { DatePickerInputProps } from '@/types/global';\r\nimport { cn } from '@/lib/utils';\r\n\r\nexport default function DatePicker({ className, style, ...props }: DatePickerInputProps) {\r\n const placeholder = props.placeholder ?? 'Placeholder text';\r\n\r\n // Controls (now option objects)\r\n const minimumDate = props.minimumDate ?? 'none';\r\n const customMinimumDate = props.customMinimumDate ?? '';\r\n\r\n const maximumDate = props.maximumDate ?? 'none';\r\n const customMaximumDate = props.customMaximumDate ?? '';\r\n\r\n const isEditable = props.isEditable ?? true;\r\n const isDisabled = props.isDisabled ?? false;\r\n const isReadonly = props.isReadonly ?? false;\r\n const isAutocomplete = props.isAutocomplete ?? false;\r\n\r\n const [error, setError] = React.useState<string | null>(null);\r\n\r\n const resolveDate = (option: any, customOption?: any): string | undefined => {\r\n if (!option) return undefined;\r\n\r\n switch (option) {\r\n case 'today':\r\n return new Date().toISOString().split('T')[0];\r\n case 'custom':\r\n return customOption ?? undefined;\r\n case 'none':\r\n default:\r\n return undefined;\r\n }\r\n };\r\n\r\n const minDate = resolveDate(minimumDate, customMinimumDate);\r\n const maxDate = resolveDate(maximumDate, customMaximumDate);\r\n \r\n useEffect(() => {\r\n if (!props.validateOnMount) return;\r\n setError(props.errorMessage || null);\r\n }, [props.errorMessage, props.validateOnMount]);\r\n\r\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n props.onChange?.(e);\r\n };\r\n\r\n return (\r\n <>\r\n <div className=\"flex justify-start items-center relative\">\r\n <Calendar className=\"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-[#BDBDBD]\" />\r\n <Input\r\n type=\"date\"\r\n id=\"date\"\r\n autoComplete={isAutocomplete ? 'on' : 'off'}\r\n onChange={handleChange}\r\n disabled={isDisabled || !isEditable}\r\n name={props.name}\r\n value={props.value}\r\n className={\r\n cn(className, error ? 'border-red-500' : '',\r\n 'appearance-auto'\r\n )\r\n }\r\n style={{\r\n ...style,\r\n borderColor: error ? '#f87171' : style?.borderColor\r\n }}\r\n readOnly={isReadonly}\r\n placeholder={placeholder}\r\n min={minDate}\r\n max={maxDate}\r\n />\r\n </div>\r\n\r\n {error && <p className=\"mt-1 text-xs text-red-500\">{error}</p>}\r\n </>\r\n );\r\n}\r\n","\r\n'use client';\r\nimport * as React from 'react';\r\n\r\nimport { addDays, format } from 'date-fns';\r\nimport { DateRange as DateRangeProps } from 'react-day-picker';\r\n\r\nimport { Button } from '@/components/ui/button';\r\nimport { Calendar } from '@/components/ui/calendar';\r\nimport {\r\n Popover,\r\n PopoverContent,\r\n PopoverTrigger,\r\n} from '@/components/ui/popover';\r\nimport { cn } from '@/lib/utils';\r\nimport { DateRangeInputProps } from '@/types/global';\r\n\r\nconst DateRange = ({ className, style, ...props }: DateRangeInputProps) => {\r\n const [error, setError] = React.useState<string | null>(null);\r\n \r\n const isDateRange = (val: any): val is DateRangeProps => !!val && val.from instanceof Date;\r\n\r\n const [date, setDate] = React.useState<DateRangeProps | undefined>(\r\n isDateRange(props.value)\r\n ? props.value\r\n : {\r\n from: new Date(),\r\n to: addDays(new Date(), 7),\r\n }\r\n );\r\n \r\n React.useEffect(() => {\r\n if (!props.validateOnMount) return;\r\n setError(props.errorMessage || null);\r\n }, [props.errorMessage, props.validateOnMount]);\r\n\r\n \r\n const handleChange = (value: DateRangeProps | undefined) => {\r\n setDate(value);\r\n if (value) {\r\n props.onChange?.(value);\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n <div className={className} style={style}>\r\n <Popover>\r\n <PopoverTrigger asChild>\r\n <Button\r\n id=\"date\"\r\n variant={'outline'}\r\n className={cn(\r\n 'w-[300px] justify-start text-left font-normal text-[11px]',\r\n !date && 'text-muted-foreground'\r\n )}\r\n >\r\n {date?.from ? (\r\n date.to ? (\r\n <>\r\n {format(date.from, 'LLL dd, y')} -{' '}\r\n {format(date.to, 'LLL dd, y')}\r\n </>\r\n ) : (\r\n format(date.from, 'LLL dd, y')\r\n )\r\n ) : (\r\n <span>Pick a date range</span>\r\n )}\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\r\n <Calendar\r\n mode=\"range\"\r\n defaultMonth={date?.from}\r\n selected={date}\r\n onSelect={handleChange}\r\n numberOfMonths={2}\r\n />\r\n </PopoverContent>\r\n </Popover>\r\n </div>\r\n {error && <p className=\"mt-1 text-xs text-red-500\">{error}</p>}\r\n </>\r\n );\r\n}\r\n\r\nexport default DateRange;","import * as React from \"react\"\nimport {\n ChevronDownIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n} from \"lucide-react\"\nimport { DayButton, DayPicker, getDefaultClassNames } from \"react-day-picker\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button, buttonVariants } from \"@/components/ui/button\"\n\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = \"label\",\n buttonVariant = \"ghost\",\n formatters,\n components,\n ...props\n}: React.ComponentProps<typeof DayPicker> & {\n buttonVariant?: React.ComponentProps<typeof Button>[\"variant\"]\n}) {\n const defaultClassNames = getDefaultClassNames()\n\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn(\n \"bg-background group/calendar p-3 [--cell-size:--spacing(8)] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent\",\n String.raw`rtl:**:[.rdp-button\\_next>svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className\n )}\n captionLayout={captionLayout}\n formatters={{\n formatMonthDropdown: (date) =>\n date.toLocaleString(\"default\", { month: \"short\" }),\n ...formatters,\n }}\n classNames={{\n root: cn(\"w-fit\", defaultClassNames.root),\n months: cn(\n \"flex gap-4 flex-col md:flex-row relative\",\n defaultClassNames.months\n ),\n month: cn(\"flex flex-col w-full gap-4\", defaultClassNames.month),\n nav: cn(\n \"flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between\",\n defaultClassNames.nav\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_previous\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_next\n ),\n month_caption: cn(\n \"flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)\",\n defaultClassNames.month_caption\n ),\n dropdowns: cn(\n \"w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5\",\n defaultClassNames.dropdowns\n ),\n dropdown_root: cn(\n \"relative has-focus:border-ring border border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] rounded-md\",\n defaultClassNames.dropdown_root\n ),\n dropdown: cn(\n \"absolute bg-popover inset-0 opacity-0\",\n defaultClassNames.dropdown\n ),\n caption_label: cn(\n \"select-none font-medium\",\n captionLayout === \"label\"\n ? \"text-sm\"\n : \"rounded-md pl-2 pr-1 flex items-center gap-1 text-sm h-8 [&>svg]:text-muted-foreground [&>svg]:size-3.5\",\n defaultClassNames.caption_label\n ),\n table: \"w-full border-collapse\",\n weekdays: cn(\"flex\", defaultClassNames.weekdays),\n weekday: cn(\n \"text-muted-foreground rounded-md flex-1 font-normal text-[0.8rem] select-none\",\n defaultClassNames.weekday\n ),\n week: cn(\"flex w-full mt-2\", defaultClassNames.week),\n week_number_header: cn(\n \"select-none w-(--cell-size)\",\n defaultClassNames.week_number_header\n ),\n week_number: cn(\n \"text-[0.8rem] select-none text-muted-foreground\",\n defaultClassNames.week_number\n ),\n day: cn(\n \"relative w-full h-full p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md group/day aspect-square select-none\",\n defaultClassNames.day\n ),\n range_start: cn(\n \"rounded-l-md bg-accent\",\n defaultClassNames.range_start\n ),\n range_middle: cn(\"rounded-none\", defaultClassNames.range_middle),\n range_end: cn(\"rounded-r-md bg-accent\", defaultClassNames.range_end),\n today: cn(\n \"bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none\",\n defaultClassNames.today\n ),\n outside: cn(\n \"text-muted-foreground aria-selected:text-muted-foreground\",\n defaultClassNames.outside\n ),\n disabled: cn(\n \"text-muted-foreground opacity-50\",\n defaultClassNames.disabled\n ),\n hidden: cn(\"invisible\", defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return (\n <div\n data-slot=\"calendar\"\n ref={rootRef}\n className={cn(className)}\n {...props}\n />\n )\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === \"left\") {\n return (\n <ChevronLeftIcon className={cn(\"size-4\", className)} {...props} />\n )\n }\n\n if (orientation === \"right\") {\n return (\n <ChevronRightIcon\n className={cn(\"size-4\", className)}\n {...props}\n />\n )\n }\n\n return (\n <ChevronDownIcon className={cn(\"size-4\", className)} {...props} />\n )\n },\n DayButton: CalendarDayButton,\n WeekNumber: ({ children, ...props }) => {\n return (\n <td {...props}>\n <div className=\"flex size-(--cell-size) items-center justify-center text-center\">\n {children}\n </div>\n </td>\n )\n },\n ...components,\n }}\n {...props}\n />\n )\n}\n\nfunction CalendarDayButton({\n className,\n day,\n modifiers,\n ...props\n}: React.ComponentProps<typeof DayButton>) {\n const defaultClassNames = getDefaultClassNames()\n\n const ref = React.useRef<HTMLButtonElement>(null)\n React.useEffect(() => {\n if (modifiers.focused) ref.current?.focus()\n }, [modifiers.focused])\n\n return (\n <Button\n ref={ref}\n variant=\"ghost\"\n size=\"icon\"\n data-day={day.date.toLocaleDateString()}\n data-selected-single={\n modifiers.selected &&\n !modifiers.range_start &&\n !modifiers.range_end &&\n !modifiers.range_middle\n }\n data-range-start={modifiers.range_start}\n data-range-end={modifiers.range_end}\n data-range-middle={modifiers.range_middle}\n className={cn(\n \"data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 dark:hover:text-accent-foreground flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] data-[range-end=true]:rounded-md data-[range-end=true]:rounded-r-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md data-[range-start=true]:rounded-l-md [&>span]:text-xs [&>span]:opacity-70\",\n defaultClassNames.day,\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Calendar, CalendarDayButton }\n","import * as React from \"react\"\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Popover({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Root>) {\n return <PopoverPrimitive.Root data-slot=\"popover\" {...props} />\n}\n\nfunction PopoverTrigger({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {\n return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />\n}\n\nfunction PopoverContent({\n className,\n align = \"center\",\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Content>) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n data-slot=\"popover-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden\",\n className\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n )\n}\n\nfunction PopoverAnchor({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {\n return <PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />\n}\n\nexport { Popover, PopoverTrigger, PopoverContent, PopoverAnchor }\n","\r\nimport * as React from 'react';\r\n\r\nimport { Input } from '@/components/ui/input';\r\nimport { cn } from '@/lib/utils';\r\nimport { TextInputGroupProps } from '@/types/global';\r\n\r\nconst TextInputGroup = ({ className, style, prepend, append, ...props }: TextInputGroupProps) => {\r\n const placeholder = props.placeholder ?? 'Placeholder text';\r\n\r\n // Controls\r\n const isEditable = props.isEditable ?? true;\r\n const isDisabled = props.isDisabled ?? false;\r\n const isReadonly = props.isReadonly ?? false;\r\n const isAutocomplete = props.isAutocomplete ?? false;\r\n\r\n const [error, setError] = React.useState<string | null>(null);\r\n \r\n React.useEffect(() => {\r\n if (!props.validateOnMount) return;\r\n setError(props.errorMessage || null);\r\n }, [props.errorMessage, props.validateOnMount]);\r\n\r\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n props.onChange?.(e);\r\n };\r\n\r\n return (\r\n <>\r\n <div className={\r\n cn(\r\n 'flex justify-start items-center relative border border-input rounded-md bg-transparent focus-within:ring-2 focus-within:ring-ring focus-within:border-primary',\r\n className,\r\n 'p-0 m-0',\r\n error ? 'border-red-500' : ''\r\n )\r\n }\r\n >\r\n {prepend && (\r\n <div className=\"px-3 flex items-center bg-gray-500 text-white h-10 rounded-l-md\">\r\n {prepend}\r\n </div>\r\n )}\r\n <Input\r\n id={props.name || 'prepend-input'}\r\n type=\"url\"\r\n name={props.name}\r\n value={props.value}\r\n className={\r\n cn(\r\n className,\r\n 'rounded-none flex-1 border-none focus:ring-0'\r\n )\r\n }\r\n style={{\r\n ...style,\r\n borderColor: error ? '#f87171' : style?.borderColor\r\n }}\r\n autoComplete={isAutocomplete ? 'on' : 'off'}\r\n placeholder={placeholder}\r\n onChange={handleChange}\r\n disabled={isDisabled || !isEditable}\r\n readOnly={isReadonly}\r\n />\r\n {append && (\r\n <div className=\"px-3 flex items-center bg-gray-500 text-white h-10 rounded-r-md\">\r\n {append}\r\n </div>\r\n )}\r\n </div>\r\n\r\n {error && (\r\n <p className=\"mt-1 text-xs text-red-500\">{error}</p>\r\n )}\r\n </>\r\n );\r\n};\r\n\r\nexport default TextInputGroup;","'use client';\r\nimport {\r\n ColumnDef,\r\n flexRender,\r\n getCoreRowModel,\r\n useReactTable,\r\n} from '@tanstack/react-table';\r\n\r\nimport {\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableHead,\r\n TableHeader,\r\n TableRow,\r\n} from '@/components/ui/table';\r\n\r\ninterface DataTableProps<TData, TValue> {\r\n columns: ColumnDef<TData, TValue>[]\r\n data: TData[],\r\n rowActions: { header: string; onClick: (row: TData) => void }[],\r\n loading?: boolean,\r\n getRowSelection?: (rowSelection: Record<string, boolean>) => void,\r\n onCellClick?: (cellData: TData, columnId: string) => void;\r\n cellClickEnabled?: (cellData: TData, columnId: string) => boolean;\r\n}\r\n\r\nexport function DataTable<TData, TValue>({\r\n columns,\r\n rowActions,\r\n data,\r\n loading,\r\n getRowSelection,\r\n onCellClick,\r\n cellClickEnabled = () => false,\r\n}: DataTableProps<TData, TValue>) {\r\n const table = useReactTable({\r\n data,\r\n columns,\r\n enableRowSelection: true,\r\n onRowSelectionChange: getRowSelection\r\n ? (updaterOrValue) => {\r\n const value =\r\n typeof updaterOrValue === 'function'\r\n ? updaterOrValue(table.getState().rowSelection)\r\n : updaterOrValue;\r\n getRowSelection(value);\r\n }\r\n : undefined,\r\n getCoreRowModel: getCoreRowModel(),\r\n });\r\n\r\n const handleCellClick = (rowData: TData, columnId: string) => {\r\n if (onCellClick) {\r\n onCellClick(rowData, columnId);\r\n }\r\n };\r\n\r\n return (\r\n <div className=\"overflow-hidden rounded-md border w-full\">\r\n <Table>\r\n <TableHeader>\r\n {table.getHeaderGroups().map((headerGroup) => (\r\n <TableRow key={headerGroup.id}>\r\n {headerGroup.headers.map((header) => {\r\n return (\r\n <TableHead key={header.id}>\r\n {header.isPlaceholder\r\n ? null\r\n : flexRender(\r\n header.column.columnDef.header,\r\n header.getContext()\r\n )}\r\n </TableHead>\r\n );\r\n })}\r\n </TableRow>\r\n ))}\r\n </TableHeader>\r\n <TableBody>\r\n {loading ? (\r\n <TableRow>\r\n <TableCell colSpan={columns.length} className=\"h-24 text-center\">\r\n Loading...\r\n </TableCell>\r\n </TableRow>\r\n ) : (\r\n <>\r\n {table.getRowModel().rows?.length ? (\r\n table.getRowModel().rows.map((row) => (\r\n <TableRow\r\n key={row.id}\r\n data-state={row.getIsSelected() && 'selected'}\r\n className='relative group'\r\n >\r\n {row.getVisibleCells().map((cell) => {\r\n const isCellClickable = cellClickEnabled(row.original, cell.column.id);\r\n const dynamicClass = (cell.column.columnDef.meta as any)?.cellClass || '';\r\n const dynamicStyle = (cell.column.columnDef.meta as any)?.cellStyle || {};\r\n\r\n return (\r\n <TableCell\r\n key={cell.id}\r\n className={`${dynamicClass} ${isCellClickable ? 'underline cursor-pointer' : ''}`}\r\n style={dynamicStyle}\r\n onClick={() => {\r\n if (isCellClickable) {\r\n handleCellClick(row.original, cell.column.id);\r\n }\r\n }}\r\n >\r\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\r\n </TableCell>\r\n );\r\n })}\r\n {rowActions.length > 0 && (\r\n <div className='absolute top-0 right-0 bg-white py-3 min-w-[100px] z-50 shadow-md flex items-center justify-center gap-3 p-2 opacity-0 group-hover:opacity-100 duration-300 h-full'>\r\n {rowActions.map((action, index) => (\r\n <p key={index} className='text-[#383838] text-[12px] cursor-pointer font-[400]'>{action.header}</p>\r\n ))}\r\n </div>\r\n )}\r\n </TableRow>\r\n ))\r\n ) : (\r\n <TableRow>\r\n <TableCell colSpan={columns.length} className=\"h-24 text-center\">\r\n No results.\r\n </TableCell>\r\n </TableRow>\r\n )}\r\n </>\r\n )}\r\n </TableBody>\r\n </Table>\r\n </div>\r\n );\r\n}","\r\nimport * as React from 'react';\r\n\r\nimport { cn } from '@/lib/utils';\r\n\r\nfunction Table({ className, ...props }: React.ComponentProps<'table'>) {\r\n return (\r\n <div\r\n data-slot=\"table-container\"\r\n className=\"relative w-full overflow-x-auto rounded-md border border-gray-200 bg-white\"\r\n >\r\n <table\r\n data-slot=\"table\"\r\n className={cn('w-full text-sm', className)}\r\n {...props}\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nfunction TableHeader({ className, ...props }: React.ComponentProps<'thead'>) {\r\n return (\r\n <thead\r\n data-slot=\"table-header\"\r\n className={cn(\r\n 'bg-gray-100 text-gray-700 [&>tr]:border-b [&>tr]:border-gray-200 [&>tr>th]:border-r [&>tr>th]:border-gray-200 [&>tr>th]:last:border-r-0',\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction TableBody({ className, ...props }: React.ComponentProps<'tbody'>) {\r\n return (\r\n <tbody\r\n data-slot=\"table-body\"\r\n className={cn(\r\n '[&>tr]:border-b [&>tr]:border-gray-200 [&>tr:last-child]:border-0 [&>tr>td]:border-r [&>tr>td]:border-gray-200 [&>tr>td]:last:border-r-0',\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction TableFooter({ className, ...props }: React.ComponentProps<'tfoot'>) {\r\n return (\r\n <tfoot\r\n data-slot=\"table-footer\"\r\n className={cn(\r\n 'bg-gray-50 border-t border-gray-200 font-medium [&>tr]:last:border-b-0',\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction TableRow({ className, ...props }: React.ComponentProps<'tr'>) {\r\n return (\r\n <tr\r\n data-slot=\"table-row\"\r\n className={cn(\r\n 'border-b border-gray-200 hover:bg-gray-50 transition-colors',\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction TableHead({ className, ...props }: React.ComponentProps<'th'>) {\r\n return (\r\n <th\r\n data-slot=\"table-head\"\r\n className={cn(\r\n 'h-12 px-6 text-left align-middle font-semibold whitespace-nowrap',\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction TableCell({ className, ...props }: React.ComponentProps<'td'>) {\r\n return (\r\n <td\r\n data-slot=\"table-cell\"\r\n className={cn(\r\n 'px-6 py-4 align-middle text-gray-700',\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction TableCaption({\r\n className,\r\n ...props\r\n}: React.ComponentProps<'caption'>) {\r\n return (\r\n <caption\r\n data-slot=\"table-caption\"\r\n className={cn('mt-4 text-sm text-gray-500', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nexport {\r\n Table,\r\n TableHeader,\r\n TableBody,\r\n TableFooter,\r\n TableHead,\r\n TableRow,\r\n TableCell,\r\n TableCaption,\r\n};\r\n","import * as React from \"react\"\nimport {\n ChevronLeftIcon,\n ChevronRightIcon,\n MoreHorizontalIcon,\n} from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button, buttonVariants } from \"@/components/ui/button\"\n\nfunction Pagination({ className, ...props }: React.ComponentProps<\"nav\">) {\n return (\n <nav\n role=\"navigation\"\n aria-label=\"pagination\"\n data-slot=\"pagination\"\n className={cn(\"mx-auto flex w-full justify-center\", className)}\n {...props}\n />\n )\n}\n\nfunction PaginationContent({\n className,\n ...props\n}: React.ComponentProps<\"ul\">) {\n return (\n <ul\n data-slot=\"pagination-content\"\n className={cn(\"flex flex-row items-center gap-1\", className)}\n {...props}\n />\n )\n}\n\nfunction PaginationItem({ ...props }: React.ComponentProps<\"li\">) {\n return <li data-slot=\"pagination-item\" {...props} />\n}\n\ntype PaginationLinkProps = {\n isActive?: boolean\n} & Pick<React.ComponentProps<typeof Button>, \"size\"> &\n React.ComponentProps<\"a\">\n\nfunction PaginationLink({\n className,\n isActive,\n size = \"icon\",\n ...props\n}: PaginationLinkProps) {\n return (\n <a\n aria-current={isActive ? \"page\" : undefined}\n data-slot=\"pagination-link\"\n data-active={isActive}\n className={cn(\n buttonVariants({\n variant: isActive ? \"outline\" : \"ghost\",\n size,\n }),\n className\n )}\n {...props}\n />\n )\n}\n\nfunction PaginationPrevious({\n className,\n ...props\n}: React.ComponentProps<typeof PaginationLink>) {\n return (\n <PaginationLink\n aria-label=\"Go to previous page\"\n size=\"default\"\n className={cn(\"gap-1 px-2.5 sm:pl-2.5\", className)}\n {...props}\n >\n <ChevronLeftIcon />\n <span className=\"hidden sm:block\">Previous</span>\n </PaginationLink>\n )\n}\n\nfunction PaginationNext({\n className,\n ...props\n}: React.ComponentProps<typeof PaginationLink>) {\n return (\n <PaginationLink\n aria-label=\"Go to next page\"\n size=\"default\"\n className={cn(\"gap-1 px-2.5 sm:pr-2.5\", className)}\n {...props}\n >\n <span className=\"hidden sm:block\">Next</span>\n <ChevronRightIcon />\n </PaginationLink>\n )\n}\n\nfunction PaginationEllipsis({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n aria-hidden\n data-slot=\"pagination-ellipsis\"\n className={cn(\"flex size-9 items-center justify-center\", className)}\n {...props}\n >\n <MoreHorizontalIcon className=\"size-4\" />\n <span className=\"sr-only\">More pages</span>\n </span>\n )\n}\n\nexport {\n Pagination,\n PaginationContent,\n PaginationLink,\n PaginationItem,\n PaginationPrevious,\n PaginationNext,\n PaginationEllipsis,\n}\n","import {\r\n Pagination,\r\n PaginationContent,\r\n PaginationEllipsis,\r\n PaginationItem,\r\n PaginationLink,\r\n PaginationNext,\r\n PaginationPrevious,\r\n} from \"@/components/ui/pagination\"\r\n\r\ninterface CustomPaginationProps {\r\n totalPages: number;\r\n currentPage: number;\r\n onPageChange: (page: number) => void;\r\n maxVisiblePages?: number;\r\n}\r\n\r\nconst CustomPagination = ({\r\n totalPages,\r\n currentPage,\r\n onPageChange,\r\n maxVisiblePages = 5,\r\n}: CustomPaginationProps) => {\r\n const getPageNumbers = () => {\r\n const pages: (number | string)[] = [];\r\n \r\n if (totalPages <= maxVisiblePages) {\r\n return Array.from({ length: totalPages }, (_, i) => i + 1);\r\n }\r\n \r\n const leftSiblingIndex = Math.max(currentPage - 1, 1);\r\n const rightSiblingIndex = Math.min(currentPage + 1, totalPages);\r\n \r\n const shouldShowLeftDots = leftSiblingIndex > 2;\r\n const shouldShowRightDots = rightSiblingIndex < totalPages - 1;\r\n \r\n if (!shouldShowLeftDots && shouldShowRightDots) {\r\n const leftRange = Array.from({ length: 3 }, (_, i) => i + 1);\r\n return [...leftRange, \"...\", totalPages];\r\n }\r\n \r\n if (shouldShowLeftDots && !shouldShowRightDots) {\r\n const rightRange = Array.from(\r\n { length: 3 },\r\n (_, i) => totalPages - 2 + i\r\n );\r\n return [1, \"...\", ...rightRange];\r\n }\r\n \r\n if (shouldShowLeftDots && shouldShowRightDots) {\r\n const middleRange = Array.from(\r\n { length: 3 },\r\n (_, i) => leftSiblingIndex + i\r\n );\r\n return [1, \"...\", ...middleRange, \"...\", totalPages];\r\n }\r\n \r\n return pages;\r\n };\r\n\r\n const handlePageChange = (page: number) => {\r\n if (page >= 1 && page <= totalPages && page !== currentPage) {\r\n onPageChange(page);\r\n }\r\n };\r\n\r\n const pageNumbers = getPageNumbers();\r\n\r\n return (\r\n <Pagination>\r\n <PaginationContent>\r\n <PaginationItem>\r\n <PaginationPrevious \r\n onClick={() => handlePageChange(currentPage - 1)}\r\n className={currentPage === 1 ? \"pointer-events-none opacity-50\" : \"cursor-pointer\"}\r\n />\r\n </PaginationItem>\r\n \r\n {pageNumbers.map((pageNumber, index) => (\r\n <PaginationItem key={index}>\r\n {pageNumber === \"...\" ? (\r\n <PaginationEllipsis />\r\n ) : (\r\n <PaginationLink\r\n onClick={() => handlePageChange(pageNumber as number)}\r\n isActive={currentPage === pageNumber}\r\n className=\"cursor-pointer\"\r\n >\r\n {pageNumber}\r\n </PaginationLink>\r\n )}\r\n </PaginationItem>\r\n ))}\r\n \r\n <PaginationItem>\r\n <PaginationNext \r\n onClick={() => handlePageChange(currentPage + 1)}\r\n className={currentPage === totalPages ? \"pointer-events-none opacity-50\" : \"cursor-pointer\"}\r\n />\r\n </PaginationItem>\r\n </PaginationContent>\r\n </Pagination>\r\n );\r\n};\r\n\r\nexport default CustomPagination;","\r\nimport { DataTable } from '@/components/ui/data-table';\r\nimport { TableProps } from '@/types/global';\r\nimport CustomPagination from '../Pagination/Pagination';\r\nimport { useState } from 'react';\r\n\r\nconst Table = ({ \r\n columns, data, rowActions, className, style, pagination = false, itemsPerPage = 10, onPageChange, loading = false,\r\n ...props\r\n}: TableProps) => {\r\n const rawColumns = Array.isArray(columns) ? columns : [];\r\n const rawData = Array.isArray(data) ? data : [];\r\n const rawRowActions = Array.isArray(rowActions) ? rowActions : [];\r\n\r\n const [currentPage, setCurrentPage] = useState(1);\r\n const enablePagination = pagination && rawData.length > itemsPerPage;\r\n\r\n const handlePageChange = (page: number) => {\r\n setCurrentPage(page);\r\n onPageChange?.(page);\r\n };\r\n\r\n const paginatedData = enablePagination\r\n ? rawData.slice((currentPage - 1) * itemsPerPage, currentPage * itemsPerPage)\r\n : rawData;\r\n\r\n return (\r\n <div className={`${className} space-y-3`} style={style}>\r\n <DataTable\r\n {...props}\r\n columns={rawColumns} \r\n data={paginatedData} \r\n rowActions={rawRowActions}\r\n loading={loading}\r\n />\r\n {enablePagination && (\r\n <CustomPagination\r\n totalPages={Math.ceil(rawData.length / itemsPerPage)}\r\n currentPage={currentPage}\r\n onPageChange={handlePageChange}\r\n />\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nexport default Table;\r\n","'use client';\r\n\r\nimport * as React from 'react';\r\n\r\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\r\nimport { CheckIcon, ChevronRightIcon, CircleIcon } from 'lucide-react';\r\n\r\nimport { cn } from '@/lib/utils';\r\n\r\nfunction DropdownMenu({\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Root>) {\r\n return <DropdownMenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />;\r\n}\r\n\r\nfunction DropdownMenuPortal({\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>) {\r\n return (\r\n <DropdownMenuPrimitive.Portal data-slot=\"dropdown-menu-portal\" {...props} />\r\n );\r\n}\r\n\r\nfunction DropdownMenuTrigger({\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>) {\r\n return (\r\n <DropdownMenuPrimitive.Trigger\r\n data-slot=\"dropdown-menu-trigger\"\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction DropdownMenuContent({\r\n className,\r\n sideOffset = 4,\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Content>) {\r\n return (\r\n <DropdownMenuPrimitive.Portal>\r\n <DropdownMenuPrimitive.Content\r\n data-slot=\"dropdown-menu-content\"\r\n sideOffset={sideOffset}\r\n className={cn(\r\n 'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md',\r\n className\r\n )}\r\n {...props}\r\n />\r\n </DropdownMenuPrimitive.Portal>\r\n );\r\n}\r\n\r\nfunction DropdownMenuGroup({\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Group>) {\r\n return (\r\n <DropdownMenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />\r\n );\r\n}\r\n\r\nfunction DropdownMenuItem({\r\n className,\r\n inset,\r\n variant = 'default',\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Item> & {\r\n inset?: boolean\r\n variant?: 'default' | 'destructive'\r\n}) {\r\n return (\r\n <DropdownMenuPrimitive.Item\r\n data-slot=\"dropdown-menu-item\"\r\n data-inset={inset}\r\n data-variant={variant}\r\n className={cn(\r\n 'focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*=\\'text-\\'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=\\'size-\\'])]:size-4',\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction DropdownMenuCheckboxItem({\r\n className,\r\n children,\r\n checked,\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem>) {\r\n return (\r\n <DropdownMenuPrimitive.CheckboxItem\r\n data-slot=\"dropdown-menu-checkbox-item\"\r\n className={cn(\r\n 'focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=\\'size-\\'])]:size-4',\r\n className\r\n )}\r\n checked={checked}\r\n {...props}\r\n >\r\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\r\n <DropdownMenuPrimitive.ItemIndicator>\r\n <CheckIcon className=\"size-4\" />\r\n </DropdownMenuPrimitive.ItemIndicator>\r\n </span>\r\n {children}\r\n </DropdownMenuPrimitive.CheckboxItem>\r\n );\r\n}\r\n\r\nfunction DropdownMenuRadioGroup({\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>) {\r\n return (\r\n <DropdownMenuPrimitive.RadioGroup\r\n data-slot=\"dropdown-menu-radio-group\"\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction DropdownMenuRadioItem({\r\n className,\r\n children,\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioItem>) {\r\n return (\r\n <DropdownMenuPrimitive.RadioItem\r\n data-slot=\"dropdown-menu-radio-item\"\r\n className={cn(\r\n 'focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=\\'size-\\'])]:size-4',\r\n className\r\n )}\r\n {...props}\r\n >\r\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\r\n <DropdownMenuPrimitive.ItemIndicator>\r\n <CircleIcon className=\"size-2 fill-current\" />\r\n </DropdownMenuPrimitive.ItemIndicator>\r\n </span>\r\n {children}\r\n </DropdownMenuPrimitive.RadioItem>\r\n );\r\n}\r\n\r\nfunction DropdownMenuLabel({\r\n className,\r\n inset,\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Label> & {\r\n inset?: boolean\r\n}) {\r\n return (\r\n <DropdownMenuPrimitive.Label\r\n data-slot=\"dropdown-menu-label\"\r\n data-inset={inset}\r\n className={cn(\r\n 'px-2 py-1.5 text-sm font-medium data-[inset]:pl-8',\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction DropdownMenuSeparator({\r\n className,\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Separator>) {\r\n return (\r\n <DropdownMenuPrimitive.Separator\r\n data-slot=\"dropdown-menu-separator\"\r\n className={cn('bg-border -mx-1 my-1 h-px', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction DropdownMenuShortcut({\r\n className,\r\n ...props\r\n}: React.ComponentProps<'span'>) {\r\n return (\r\n <span\r\n data-slot=\"dropdown-menu-shortcut\"\r\n className={cn(\r\n 'text-muted-foreground ml-auto text-xs tracking-widest',\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction DropdownMenuSub({\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Sub>) {\r\n return <DropdownMenuPrimitive.Sub data-slot=\"dropdown-menu-sub\" {...props} />;\r\n}\r\n\r\nfunction DropdownMenuSubTrigger({\r\n className,\r\n inset,\r\n children,\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {\r\n inset?: boolean\r\n}) {\r\n return (\r\n <DropdownMenuPrimitive.SubTrigger\r\n data-slot=\"dropdown-menu-sub-trigger\"\r\n data-inset={inset}\r\n className={cn(\r\n 'focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8',\r\n className\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n <ChevronRightIcon className=\"ml-auto size-4\" />\r\n </DropdownMenuPrimitive.SubTrigger>\r\n );\r\n}\r\n\r\nfunction DropdownMenuSubContent({\r\n className,\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubContent>) {\r\n return (\r\n <DropdownMenuPrimitive.SubContent\r\n data-slot=\"dropdown-menu-sub-content\"\r\n className={cn(\r\n 'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg',\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nexport {\r\n DropdownMenu,\r\n DropdownMenuPortal,\r\n DropdownMenuTrigger,\r\n DropdownMenuContent,\r\n DropdownMenuGroup,\r\n DropdownMenuLabel,\r\n DropdownMenuItem,\r\n DropdownMenuCheckboxItem,\r\n DropdownMenuRadioGroup,\r\n DropdownMenuRadioItem,\r\n DropdownMenuSeparator,\r\n DropdownMenuShortcut,\r\n DropdownMenuSub,\r\n DropdownMenuSubTrigger,\r\n DropdownMenuSubContent,\r\n};\r\n","'use client';\r\n\r\nimport { ChevronDown } from 'lucide-react';\r\n\r\nimport {\r\n DropdownMenu,\r\n DropdownMenuContent,\r\n DropdownMenuItem,\r\n DropdownMenuTrigger,\r\n} from '@/components/ui/dropdown-menu';\r\nimport { TabsProps } from '@/types/global';\r\n\r\nconst Tabs = ({ tabs, className, style, pathname, LinkComponent }: TabsProps) => {\r\n const rawTabs = Array.isArray(tabs) ? tabs : [];\r\n const baseClasses =\r\n 'text-[12px] text-[#E9E9E9] p-2 text-center rounded-md transition-colors border-none outline-none focus:outline-none focus:ring-0 focus:ring-offset-0 cursor-pointer select-none ';\r\n const activeClasses = 'bg-white/10 text-white';\r\n const hoverClasses = 'hover:bg-white/5';\r\n\r\n const isActive = (path?: string) => {\r\n if (!path) return false;\r\n return pathname === path || (path !== '/' && pathname?.startsWith(path));\r\n };\r\n\r\n return (\r\n <div className={className} style={style}>\r\n {rawTabs.map((tab: any, index: number) => {\r\n const finalClasses = [\r\n baseClasses,\r\n isActive(tab.href) ? activeClasses : hoverClasses,\r\n tab.className || '',\r\n ].join(' ');\r\n\r\n const hasDropdown = Array.isArray(tab.children) && tab.children.length > 0 && tab.isDropDown;\r\n\r\n if (hasDropdown) {\r\n return (\r\n <DropdownMenu key={index}>\r\n <DropdownMenuTrigger\r\n className={`${finalClasses} inline-flex items-center gap-1`}\r\n >\r\n {tab.header}\r\n <ChevronDown className=\"h-4 w-4 opacity-80\" />\r\n </DropdownMenuTrigger>\r\n\r\n <DropdownMenuContent\r\n align=\"start\"\r\n sideOffset={6}\r\n className=\"z-50 min-w-[160px] rounded-md border border-gray-200 bg-white p-1 shadow-lg\"\r\n >\r\n {tab.children.map((item: any) => (\r\n <DropdownMenuItem\r\n key={item.id}\r\n asChild\r\n className=\"cursor-pointer rounded-sm px-3 py-2 text-[12px] text-gray-800 hover:bg-gray-100 focus:bg-gray-100\"\r\n >\r\n {LinkComponent ? (\r\n <LinkComponent href={item.href || '#'}>{item.header}</LinkComponent>\r\n ) : (\r\n item.header\r\n )}\r\n </DropdownMenuItem>\r\n ))}\r\n </DropdownMenuContent>\r\n </DropdownMenu>\r\n );\r\n }\r\n\r\n return tab.url && LinkComponent ? (\r\n <LinkComponent key={index} href={tab.url} className={finalClasses} style={tab.style}>\r\n {tab.header}\r\n </LinkComponent>\r\n ) : (\r\n <div key={index} className={finalClasses} style={tab.style} role=\"button\" tabIndex={0}>\r\n {tab.header}\r\n </div>\r\n );\r\n })}\r\n\r\n </div>\r\n );\r\n};\r\n\r\nexport default Tabs;\r\n","'use client';\r\n\r\nimport { StagesProps } from '@/types/global';\r\nimport React from 'react';\r\n\r\nconst StagesComponent = ({ stages, isShowBtn, buttonText, className, style }: StagesProps) => {\r\n\r\n return (\r\n <div className={className} style={style}>\r\n <div className=\"flex items-center justify-between bg-gray-50 p-2 rounded-lg border border-gray-200 w-full\">\r\n <div className=\"flex items-center\">\r\n <button className=\"p-2 hover:bg-gray-100 rounded\">\r\n <svg className=\"w-4 h-4 text-gray-600\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\r\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M19 9l-7 7-7-7\" />\r\n </svg>\r\n </button>\r\n </div>\r\n\r\n <div className=\"flex items-center flex-1 px-2\">\r\n {stages?.length > 0 && stages?.map((stage: any, index: number) => (\r\n <React.Fragment key={stage.id}>\r\n <button\r\n className={`\r\n min-w-[120px] px-4 py-2 rounded-full text-sm font-medium transition-colors duration-200 whitespace-nowrap ${stage.isActive ? 'bg-[#034486] text-white shadow-md' : 'bg-white text-gray-700 hover:bg-gray-100 border border-gray-200'}`}\r\n >\r\n {stage.header}\r\n </button>\r\n\r\n {index < stages.length - 1 && (\r\n <div className=\"flex-shrink-0 w-3 h-px bg-gray-300\"></div>\r\n )}\r\n </React.Fragment>\r\n ))}\r\n </div>\r\n\r\n {isShowBtn && (\r\n <div className=\"flex items-center\">\r\n <button className=\"bg-[#034486] text-white px-6 py-2 rounded-lg text-sm font-medium transition-colors duration-200 shadow-sm\">\r\n {buttonText}\r\n </button>\r\n </div>\r\n )}\r\n\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default StagesComponent;\r\n","'use client';\r\n\r\nimport { ElementProps } from \"@/types/global\";\r\n\r\nconst Spacer = ({ className, style }: ElementProps) => {\r\n return (\r\n <div className={`${className}`} style={style} />\r\n );\r\n};\r\n\r\nexport default Spacer;\r\n","'use client';\r\n\r\nimport { ProfileProps } from \"@/types/global\";\r\n\r\nconst Profile = ({ profileType, showName, userName, className, style }: ProfileProps) => {\r\n return (\r\n <div className={className} style={style}>\r\n <div className='flex gap-2 items-center justify-between w-30 cursor-pointer'>\r\n {showName && (\r\n <h4 className='text-[#000000] dark:text-[#fff] text-[13px] font-[500] mb-0'>{userName}</h4>\r\n )}\r\n {profileType === 'avatar' ? (\r\n <img\r\n src='https://builder.development.algorithmshift.ai/images/toolset/profile.svg' alt=\"auto\" width={24} height={24}\r\n />\r\n ) : (\r\n <div className='w-6 h-6 bg-[#12715b] rounded-full text-[#fff] text-center text-[11px] flex items-center justify-center'>A</div>\r\n )}\r\n\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default Profile;\r\n","'use client';\r\n\r\nimport { NotificationProps } from \"@/types/global\";\r\n\r\nconst Notification = ({ className, style, badgeType, badgeCount = 0, hideBadgeWhenZero }: NotificationProps) => {\r\n return (\r\n <div className={className} style={style}>\r\n <div className='w-[34px] h-[34px] bg-[#E9E9E9] rounded-md text-center flex items-center justify-center relative'>\r\n <img\r\n src='https://builder.development.algorithmshift.ai/images/toolset/notification.svg' alt=\"auto\" width={18} height={18}\r\n />\r\n {badgeType === 'number' && !(hideBadgeWhenZero && badgeCount === 0) && badgeCount > 0 ? (\r\n <span className='text-[10px] text-[#fff] bg-[#FF4A4A] w-[20px] h-[20px] rounded-full absolute top-0 right-0 transform translate-x-1/2 -translate-y-1/2 leading-[20px]'>{badgeCount}</span>\r\n ) : <span className='bg-[#FF4A4A] w-[10px] h-[10px] rounded-full absolute top-0 right-0 transform translate-x-1/2 -translate-y-1/2 leading-[20px]'></span>}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default Notification;\r\n","import { cn } from '@/lib/utils';\r\nimport { LogoProps } from '@/types/global';\r\nimport placeholder from \"../../../assets/logo_placeholder.png\";\r\n\r\nconst Logo = ({\r\n className,\r\n style,\r\n imageUrl,\r\n altText = 'Preview',\r\n}: LogoProps) => {\r\n\r\n if (!imageUrl) {\r\n return (\r\n <div\r\n className={cn(\r\n className, 'p-0'\r\n )} style={style}\r\n >\r\n <img src={placeholder} alt={altText} className=\"opacity-50\" width={150} height={80} />\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <img src={imageUrl} alt={altText} className={className} style={style} />\r\n );\r\n};\r\n\r\nexport default Logo;\r\n","'use client';\r\n\r\nimport * as React from 'react';\r\n\r\nimport * as AvatarPrimitive from '@radix-ui/react-avatar';\r\n\r\nimport { cn } from '@/lib/utils';\r\n\r\nconst Avatar = React.forwardRef<\r\n React.ElementRef<typeof AvatarPrimitive.Root>,\r\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>\r\n>(({ className, ...props }, ref) => (\r\n <AvatarPrimitive.Root\r\n ref={ref}\r\n className={cn(\r\n 'relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full',\r\n className\r\n )}\r\n {...props}\r\n />\r\n));\r\nAvatar.displayName = AvatarPrimitive.Root.displayName;\r\n\r\nconst AvatarImage = React.forwardRef<\r\n React.ElementRef<typeof AvatarPrimitive.Image>,\r\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Image>\r\n>(({ className, ...props }, ref) => (\r\n <AvatarPrimitive.Image\r\n ref={ref}\r\n className={cn('aspect-square h-full w-full', className)}\r\n {...props}\r\n />\r\n));\r\nAvatarImage.displayName = AvatarPrimitive.Image.displayName;\r\n\r\nconst AvatarFallback = React.forwardRef<\r\n React.ElementRef<typeof AvatarPrimitive.Fallback>,\r\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Fallback>\r\n>(({ className, ...props }, ref) => (\r\n <AvatarPrimitive.Fallback\r\n ref={ref}\r\n className={cn(\r\n 'flex h-full w-full items-center justify-center rounded-full bg-muted',\r\n className\r\n )}\r\n {...props}\r\n />\r\n));\r\nAvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;\r\n\r\nexport { Avatar, AvatarImage, AvatarFallback };\r\n","import { Bell, Search, Menu } from 'lucide-react';\r\n\r\nimport { Avatar, AvatarImage } from '@/components/ui/avatar';\r\nimport { Button } from '@/components/ui/button';\r\nimport {\r\n DropdownMenu,\r\n DropdownMenuContent,\r\n DropdownMenuItem,\r\n DropdownMenuLabel,\r\n DropdownMenuSeparator,\r\n DropdownMenuTrigger,\r\n} from '@/components/ui/dropdown-menu';\r\nimport { Input } from '@/components/ui/input';\r\nimport { NavbarProps } from '@/types/global';\r\n\r\nexport default function Navbar({\r\n style, badgeType, badgeCount = 0, hideBadgeWhenZero, profileType, showName, imageUrl, altText = 'Logo',\r\n canvasMode = 'desktop', LinkComponent, ImageComponent\r\n\r\n}: NavbarProps) {\r\n\r\n const isMobileView = canvasMode === 'mobile' || canvasMode === 'tablet';\r\n\r\n return (\r\n <nav className=\"w-full border-b bg-white shadow-sm\" style={style}>\r\n <div className=\"mx-auto flex max-w-7xl items-center justify-between px-4 py-2\">\r\n {LinkComponent && ImageComponent ? (\r\n <LinkComponent href=\"/\" className=\"flex items-center space-x-2\">\r\n {imageUrl ? (\r\n <ImageComponent src={imageUrl} alt={altText} width={200} height={200} />\r\n ) : (\r\n <span className=\"font-semibold text-blue-700\">Logo</span>\r\n )}\r\n </LinkComponent>\r\n ) : (<span className=\"font-semibold text-blue-700\">Logo</span>)}\r\n\r\n <div className=\"flex items-center space-x-3\">\r\n {!isMobileView ? (\r\n <div className=\"flex-1 px-6\">\r\n <div className=\"relative w-full max-w-md border border-gray-300 rounded-md\">\r\n <Search className=\"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-gray-400\" />\r\n <Input placeholder=\"Search\" className=\"pl-9 text-gray-400\" />\r\n </div>\r\n </div>\r\n ) : (\r\n <Button\r\n variant=\"ghost\"\r\n size=\"icon\"\r\n className=\"border border-gray-400\"\r\n >\r\n <Search className=\"h-5 w-5 text-gray-400\" />\r\n </Button>\r\n )}\r\n\r\n <div className=\"relative bg-[#E9E9E9] rounded-md\">\r\n <Button variant=\"ghost\" size=\"icon\">\r\n <Bell className=\"h-5 w-5 text-[#1C1B1F]\" />\r\n </Button>\r\n {badgeType === 'number' && !(hideBadgeWhenZero && badgeCount === 0) && badgeCount > 0 ? (\r\n <span className=\"absolute -top-1 -right-1 flex h-4 w-4 items-center justify-center rounded-full bg-red-500 text-[10px] text-white leading-8\">\r\n {badgeCount}\r\n </span>\r\n ) : (\r\n <span className=\"absolute -top-1 -right-1 flex h-2 w-2 items-center justify-center rounded-full bg-red-500\"></span>\r\n )}\r\n </div>\r\n\r\n <DropdownMenu>\r\n <DropdownMenuTrigger asChild>\r\n <div className=\"flex items-center space-x-2\">\r\n {!isMobileView && showName && (\r\n <h4 className=\"text-[#000000] text-[13px] font-[500] mb-0\">\r\n Akbar Sheriff\r\n </h4>\r\n )}\r\n {!isMobileView ? (\r\n <>\r\n <Avatar className=\"cursor-pointer h-8 w-8 text-gray-900\">\r\n {profileType === 'avatar' ? (\r\n <AvatarImage\r\n src=\"/images/appbuilder/toolset/profile.svg\"\r\n alt=\"Akbar Sheriff\"\r\n />\r\n ) : (\r\n <div className=\"w-8 h-8 bg-[#12715b] rounded-full text-[#fff] text-center text-[11px] flex items-center justify-center\">\r\n AS\r\n </div>\r\n )}\r\n </Avatar>\r\n <Button\r\n variant=\"ghost\"\r\n size=\"icon\"\r\n className=\"text-gray-900 md:hidden\"\r\n >\r\n <Menu className=\"h-6 w-6\" />\r\n </Button>\r\n </>\r\n ) : (\r\n <Button\r\n variant=\"ghost\"\r\n size=\"icon\"\r\n className=\"text-gray-900\"\r\n >\r\n <Menu className=\"h-6 w-6\" />\r\n </Button>\r\n )}\r\n </div>\r\n </DropdownMenuTrigger>\r\n <DropdownMenuContent align=\"end\" className=\"bg-white\">\r\n <DropdownMenuLabel className=\"text-black\">\r\n My Account\r\n </DropdownMenuLabel>\r\n <DropdownMenuSeparator />\r\n <DropdownMenuItem className=\"text-black\">Profile</DropdownMenuItem>\r\n <DropdownMenuItem className=\"text-black\">Settings</DropdownMenuItem>\r\n <DropdownMenuItem className=\"text-black\">Logout</DropdownMenuItem>\r\n </DropdownMenuContent>\r\n </DropdownMenu>\r\n </div>\r\n </div>\r\n </nav>\r\n );\r\n}\r\n","'use client';\r\n\r\nimport { BarChartProps } from '@/types/global';\r\nimport { BarChart, Bar, Area, AreaChart, XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveContainer, Legend } from 'recharts';\r\n\r\nconst ChartComponent = ({ className, style, ...props }: BarChartProps) => {\r\n const data = Array.isArray(props?.data) ? props.data : []; // fallback for testing\r\n\r\n const chartType = props.chartType || 'bar';\r\n type VerticalAlign = 'top' | 'middle' | 'bottom';\r\n const legendsPosition: VerticalAlign = props.legendsPosition === 'middle' || props.legendsPosition === 'bottom' ? props.legendsPosition : 'top';\r\n\r\n return (\r\n <div className={`${className} h-[400px]`} style={style}>\r\n {data.length > 0 && (\r\n <ResponsiveContainer width=\"100%\" height=\"100%\">\r\n {chartType === 'bar' ? (\r\n <BarChart data={data}>\r\n <CartesianGrid strokeDasharray=\"3 3\" />\r\n <XAxis dataKey=\"name\" />\r\n <YAxis />\r\n <Tooltip />\r\n <Legend verticalAlign={legendsPosition} align=\"center\" />\r\n <Bar dataKey=\"value\" fill=\"#00695C\" />\r\n </BarChart>\r\n ) : (\r\n <AreaChart data={data}>\r\n <defs>\r\n <linearGradient id=\"colorCount\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\r\n <stop offset=\"5%\" stopColor=\"#00695C\" stopOpacity={0.8} />\r\n <stop offset=\"95%\" stopColor=\"#00695C\" stopOpacity={0} />\r\n </linearGradient>\r\n </defs>\r\n <CartesianGrid strokeDasharray=\"3 3\" />\r\n <XAxis dataKey=\"name\" />\r\n <YAxis />\r\n <Tooltip />\r\n <Area\r\n type=\"monotone\"\r\n dataKey=\"value\"\r\n stroke=\"#00695C\"\r\n fillOpacity={1}\r\n fill=\"url(#colorCount)\"\r\n />\r\n </AreaChart>\r\n )}\r\n </ResponsiveContainer>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nexport default ChartComponent;\r\n","'use client';\r\n\r\nimport { PieChartProps } from '@/types/global';\r\nimport { PieChart, Pie, Cell, ResponsiveContainer, Tooltip, LabelList } from 'recharts';\r\n\r\nconst DonutChart = ({ className, style, ...props }: PieChartProps) => {\r\n const data = Array.isArray(props?.data) ? props.data : [];\r\n const total = data.reduce((sum: number, d: { value: number }) => sum + d.value, 0);\r\n\r\n const showPercentage = props.showPercentage ?? true;\r\n const showLegends = props.showLegends ?? true;\r\n const labelType = props.labelType || 'inside';\r\n\r\n const canvasMode = props.canvasMode;\r\n\r\n const renderLabel = ({ value, x, y }: any) => {\r\n if (value == null) return null;\r\n const percentage = ((Number(value) / total) * 100).toFixed(0);\r\n return (\r\n <text\r\n x={x}\r\n y={y}\r\n textAnchor=\"middle\"\r\n dominantBaseline=\"central\"\r\n className=\"text-[10px] font-semibold\"\r\n fill={labelType === 'inside' ? '#fff' : '#000'}\r\n >\r\n {value}k {showPercentage ? `(${percentage}%)` : ''}\r\n </text>\r\n );\r\n };\r\n\r\n // Force mode\r\n const forceMobile = canvasMode === 'mobile' || canvasMode === 'tablet';\r\n const forceDesktop = canvasMode === 'desktop';\r\n\r\n // Wrapper layout\r\n const wrapperClass = canvasMode\r\n ? forceDesktop\r\n ? 'flex-row'\r\n : 'flex-col'\r\n : 'flex-col md:flex-row';\r\n\r\n const renderLegends = () => {\r\n if (!showLegends) return null;\r\n return (\r\n <>\r\n {data.map((d: { name: string; color: string }) => (\r\n <div\r\n key={d.name}\r\n className=\"flex items-center space-x-2 rounded-md border border-gray-200 px-3 py-2 w-[48%] md:w-auto\"\r\n >\r\n <span\r\n className=\"inline-block w-[16px] h-[16px] rounded\"\r\n style={{ backgroundColor: d.color }}\r\n />\r\n <span className=\"text-[#000000] text-[12px] md:text-[13px] font-[500]\">\r\n {d.name}\r\n </span>\r\n </div>\r\n ))}\r\n </>\r\n )\r\n }\r\n\r\n return (\r\n <div\r\n className={`relative flex items-center ${wrapperClass} ${className}`}\r\n style={style}\r\n >\r\n <div className=\"relative w-full md:w-[70%] h-[300px] md:h-[400px] flex items-center justify-center\">\r\n {data.length > 0 && (\r\n <ResponsiveContainer width=\"100%\" height=\"100%\">\r\n <PieChart>\r\n <Pie\r\n data={data}\r\n cx=\"50%\"\r\n cy=\"50%\"\r\n innerRadius={70}\r\n outerRadius={120}\r\n dataKey=\"value\"\r\n labelLine={false}\r\n isAnimationActive={false}\r\n >\r\n {data.map((entry: { color: string }, index: number) => (\r\n <Cell key={`cell-${index}`} fill={entry.color} />\r\n ))}\r\n <LabelList\r\n dataKey=\"value\"\r\n position={labelType === 'inside' ? 'inside' : 'outside'}\r\n content={renderLabel}\r\n />\r\n </Pie>\r\n <Tooltip formatter={(value: number, name: string) => [`${value}k`, name]} />\r\n </PieChart>\r\n </ResponsiveContainer>\r\n )}\r\n\r\n <div className=\"absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 text-2xl md:text-4xl font-bold text-[#000]\">\r\n {total}k\r\n </div>\r\n </div>\r\n\r\n <div className={`flex ${forceDesktop ? 'flex-col ml-auto space-y-3' : 'flex-wrap justify-center gap-2 mt-4'}\r\n w-full md:w-auto`}>\r\n {renderLegends()}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default DonutChart;\r\n","'use client';\r\n\r\nimport { EmailComposerProps } from '@/types/global';\r\nimport TinyMceEditor from '../Global/TinyMceEditor';\r\n\r\nexport default function EmailComposer({ className, style, to, setTo, showCc, setShowCc, showBcc, setShowBcc, cc, setCc, bcc, setBcc, subject, setSubject, body, setBody }: EmailComposerProps) {\r\n\r\n return (\r\n <div className={className} style={style}>\r\n <div className=\"border rounded-md shadow bg-[#fff] p-4 mx-auto z-[50] relative\">\r\n <div className=\"mb-3\">\r\n <input\r\n type=\"email\"\r\n placeholder=\"From\"\r\n className=\"w-full flex-1 border-2 rounded-md h-[40px] px-3 focus:outline-none border-[#E9E9E9] text-[#383838]\"\r\n required\r\n />\r\n </div>\r\n <div className=\"mb-3\">\r\n <div className=\"flex items-center gap-2\">\r\n <input\r\n type=\"email\"\r\n value={to}\r\n onChange={(e) => setTo?.(e.target.value)}\r\n placeholder=\"To\"\r\n className=\"w-full flex-1 border-2 rounded-md h-[40px] px-3 focus:outline-none border-[#E9E9E9] text-[#383838]\"\r\n required\r\n />\r\n {!showCc && (\r\n <button\r\n onClick={() => setShowCc?.(true)}\r\n className=\"px-3 py-1 border rounded-md text-sm hover:bg-gray-100 bg-[#E9E9E9] text-[#383838]\"\r\n >\r\n Cc\r\n </button>\r\n )}\r\n {!showBcc && (\r\n <button\r\n onClick={() => setShowBcc?.(true)}\r\n className=\"px-3 py-1 border rounded-md text-sm hover:bg-gray-100 bg-[#E9E9E9] text-[#383838]\"\r\n >\r\n Bcc\r\n </button>\r\n )}\r\n </div>\r\n </div>\r\n {showCc && (\r\n <div className=\"mb-3\">\r\n <input\r\n type=\"text\"\r\n value={cc}\r\n onChange={(e) => setCc?.(e.target.value)}\r\n placeholder=\"Cc\"\r\n className=\"w-full flex-1 border-2 rounded-md h-[40px] px-3 focus:outline-none border-[#E9E9E9] text-[#383838]\"\r\n />\r\n </div>\r\n )}\r\n {showBcc && (\r\n <div className=\"mb-3\">\r\n <input\r\n type=\"text\"\r\n value={bcc}\r\n onChange={(e) => setBcc?.(e.target.value)}\r\n placeholder=\"Bcc\"\r\n className=\"w-full flex-1 border-2 rounded-md h-[40px] px-3 focus:outline-none border-[#E9E9E9] text-[#383838]\"\r\n />\r\n </div>\r\n )}\r\n\r\n {/* Subject */}\r\n <div className=\"mb-3\">\r\n <input\r\n type=\"text\"\r\n value={subject}\r\n onChange={(e) => setSubject?.(e.target.value)}\r\n placeholder=\"Subject\"\r\n className=\"w-full flex-1 border-2 rounded-md h-[40px] px-3 focus:outline-none border-[#E9E9E9] text-[#383838]\"\r\n />\r\n </div>\r\n <div className=\"mb-4\">\r\n <TinyMceEditor value={body} onChange={setBody} />\r\n </div>\r\n <div className=\"flex justify-end gap-2\">\r\n <button className=\"px-4 py-2 rounded-md text-gray-600 hover:bg-gray-100\">\r\n Discard\r\n </button>\r\n <button className=\"px-4 py-2 rounded-md border text-[#12715B] border-[#12715B]\">\r\n Reset\r\n </button>\r\n <button className=\"px-4 py-2 rounded-md bg-[#12715B] text-white\">\r\n Send\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}","'use client';\r\n\r\nimport { toast } from 'sonner';\r\n\r\ntype ToastVariant = 'default' | 'success' | 'error' | 'info' | 'warning';\r\n\r\ntype SonnerToastProps = {\r\n title: string;\r\n description?: string;\r\n variant?: ToastVariant;\r\n duration?: number;\r\n actionLabel?: string;\r\n onAction?: () => void;\r\n};\r\n\r\nexport function showSonnerToast({\r\n title,\r\n description,\r\n variant = 'default',\r\n duration = 3000,\r\n actionLabel,\r\n onAction,\r\n}: SonnerToastProps) {\r\n const options = {\r\n description,\r\n duration,\r\n action: actionLabel\r\n ? {\r\n label: actionLabel,\r\n onClick: onAction || (() => { }),\r\n }\r\n : undefined,\r\n };\r\n\r\n switch (variant) {\r\n case 'success':\r\n toast.success(title, options);\r\n break;\r\n case 'error':\r\n toast.error(title, options);\r\n break;\r\n case 'info':\r\n toast.info(title, options);\r\n break;\r\n case 'warning':\r\n toast.warning(title, options);\r\n break;\r\n default:\r\n toast(title, options);\r\n }\r\n}\r\n","import React, { createContext, useContext, useReducer } from 'react';\r\n\r\nimport { stateReducer, CanvasState } from './stateReducer';\r\n\r\nconst StateContext = createContext<any>(null);\r\n\r\nexport function StateProvider({ children }: { children: React.ReactNode }) {\r\n const [state, dispatch] = useReducer(stateReducer, {} as CanvasState);\r\n return (\r\n <StateContext.Provider value={{ state, dispatch }}>\r\n {children}\r\n </StateContext.Provider>\r\n );\r\n}\r\n\r\nexport function useAppState() {\r\n return useContext(StateContext);\r\n}\r\n","export type CanvasState = Record<string, any>;\r\n\r\nexport type CanvasAction =\r\n | { type: 'SET_STATE'; key: string; value: any }\r\n\r\nexport function stateReducer(state: CanvasState, action: CanvasAction): CanvasState {\r\n switch (action.type) {\r\n case 'SET_STATE':\r\n return { ...state, [action.key]: action.value };\r\n\r\n default:\r\n return state;\r\n }\r\n}\r\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;;;ACSQ;AAPR,IAAM,QAAQ,CAAC;AAAA,EACb;AAAA,EAAU;AAAA,EAAS;AAAA,EAAO;AAAA,EAAW;AACvC,MAAkB;AAEhB,SACE,4CAAC,SAAI,WAAsB,OACzB,uDAAC,SAAI,WAAU,YACb;AAAA,iDAAC,SAAI,WAAU,8EACb;AAAA,kDAAC,QAAG,WAAU,eAAe,mBAAS,eAAc;AAAA,MACpD;AAAA,QAAC;AAAA;AAAA,UACC,WAAU;AAAA,UACV,MAAK;AAAA,UACL,SAAS;AAAA,UACV;AAAA;AAAA,MAAC;AAAA,OACJ;AAAA,IACA,4CAAC,SAAI,WAAU,0CACZ,UACH;AAAA,KACF,GACF;AAEJ;AAEA,IAAO,gBAAQ;;;ACnBX,IAAAA,sBAAA;AAJJ,IAAM,OAAO,CAAC;AAAA,EACZ;AAAA,EAAU;AAAA,EAAW;AACvB,MAAoB;AAClB,SACE,6CAAC,SAAI,WAAsB,OACxB,UACH;AAEJ;AAEA,IAAO,eAAQ;;;ACNX,IAAAC,sBAAA;AAJJ,IAAM,OAAO,CAAC;AAAA,EACZ;AAAA,EAAU;AAAA,EAAW;AACvB,MAAoB;AAClB,SACE,6CAAC,SAAI,WAAsB,OACxB,UACH;AAEJ;AAEA,IAAO,eAAQ;;;ACNX,IAAAC,sBAAA;AAJJ,IAAM,YAAY,CAAC;AAAA,EACjB;AAAA,EAAU;AAAA,EAAW;AACvB,MAAoB;AAClB,SACE,6CAAC,SAAI,WAAsB,OACxB,UACH;AAEJ;AAEA,IAAO,oBAAQ;;;ACXf,wBAAqB;AACrB,sCAAuC;;;ACFvC,kBAAsC;AACtC,4BAAwB;AAEjB,SAAS,MAAM,QAAsB;AAC1C,aAAO,mCAAQ,kBAAK,MAAM,CAAC;AAC7B;;;AD6CI,IAAAC,sBAAA;AA5CJ,IAAM,qBAAiB;AAAA,EACrB;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,SAAS;AAAA,QACP,SACE;AAAA,QACF,aACE;AAAA,QACF,SACE;AAAA,QACF,WACE;AAAA,QACF,OACE;AAAA,QACF,MAAM;AAAA,MACR;AAAA,MACA,MAAM;AAAA,QACJ,SAAS;AAAA,QACT,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,MAAM;AAAA,MACR;AAAA,IACF;AAAA,IACA,iBAAiB;AAAA,MACf,SAAS;AAAA,MACT,MAAM;AAAA,IACR;AAAA,EACF;AACF;AAEA,SAAS,OAAO;AAAA,EACd;AAAA,EACA;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EACV,GAAG;AACL,GAGK;AACH,QAAM,OAAO,UAAU,yBAAO;AAE9B,SACE;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,eAAe,EAAE,SAAS,MAAM,UAAU,CAAC,CAAC;AAAA,MACzD,GAAG;AAAA;AAAA,EACN;AAEJ;;;AE7CI,IAAAC,sBAAA;AARJ,IAAM,gBAAgB,CAAC;AAAA,EACrB;AAAA,EACA;AAAA,EACA,cAAc;AAAA,EACd,GAAG;AACL,MAAmB;AAEjB,SACE;AAAA,IAAC;AAAA;AAAA,MACE,GAAG;AAAA,MACJ;AAAA,MACA;AAAA,MAEC;AAAA;AAAA,EACH;AAEJ;AAEA,IAAO,iBAAQ;A;;;;;ACIP,IAAAC,sBAAA;AArBR,IAAM,eAAe,CAAC;AAAA,EACpB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,UAAU;AACZ,MAAkB;AAEhB,QAAM,aAAa;AAAA,IACjB;AAAA,IACA;AAAA,EACF;AAEA,QAAM,kBAAkB;AAAA,IACtB;AAAA,IACA;AAAA,EACF;AAEA,MAAI,CAAC,YAAY,CAAC,kBAAkB;AAClC,WACE,6CAAC,SAAI,WAAW,YACd,uDAAC,SAAI,KAAK,2BAAa,KAAK,SAAS,WAAU,cAAa,OAAO,IAAI,QAAQ,IAAI,GACrF;AAAA,EAEJ;AAEA,QAAM,MAAM,oBAAoB;AAEhC,SACE,6CAAC,SAAI,KAAK,KAAK,KAAK,SAAS,WAAW,iBAAiB,OAAc;AAE3E;AAEA,IAAO,gBAAQ;;;AC5BX,IAAAC,sBAAA;AAPJ,IAAM,QAAQ,CAAC;AAAA,EACb;AAAA,EACA;AAAA,EACA;AACF,MAAoB;AAElB,SACE,6CAAC,SAAI,WAAsB,OACxB,UACH;AAEJ;AAEA,IAAO,gBAAQ;;;ACff,mBAAkB;AAKlB,IAAM,aAAa,CAAC;AAAA,EAClB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAAuB;AAErB,QAAM,MAAM,WAAW;AAEvB,SAAO,aAAAC,QAAM;AAAA,IACX;AAAA,IACA;AAAA,MACE;AAAA,MACA,WAAW,GAAG,WAAW,qBAAqB;AAAA,IAChD;AAAA,IACA;AAAA,MACE,aAAAA,QAAM,cAAc,QAAQ;AAAA,QAC1B,KAAK;AAAA,QACL,WAAW;AAAA,QACX,yBAAyB,EAAE,QAAQ,YAAY;AAAA,MACjD,CAAC;AAAA,IACH;AAAA,EACF;AACF;AAEA,IAAO,qBAAQ;;;AC9Bf,IAAAC,SAAuB;;;ACMnB,IAAAC,sBAAA;AAFJ,SAAS,MAAM,EAAE,WAAW,MAAM,GAAG,MAAM,GAAkC;AAC3E,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;;;ADUI,IAAAC,uBAAA;AAtBJ,IAAM,YAAY,CAAC,EAAE,WAAW,OAAO,GAAG,MAAM,MAAsB;AAEpE,QAAM,cAAc,MAAM,eAAe;AAGzC,QAAM,aAAa,MAAM,cAAc;AACvC,QAAM,aAAa,MAAM,cAAc;AACvC,QAAM,aAAa,MAAM,cAAc;AACvC,QAAM,iBAAiB,MAAM,kBAAkB;AAE/C,QAAM,CAAC,OAAO,QAAQ,IAAU,gBAAwB,IAAI;AAE5D,EAAM,iBAAU,MAAM;AACpB,QAAI,CAAC,MAAM,gBAAiB;AAC5B,aAAS,MAAM,gBAAgB,IAAI;AAAA,EACrC,GAAG,CAAC,MAAM,cAAc,MAAM,eAAe,CAAC;AAE9C,QAAM,eAAe,CAAC,MAA2C;AAC/D,UAAM,WAAW,CAAC;AAAA,EACpB;AAEA,SACE,gFACE;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,MAAM,MAAM;AAAA,QACZ,WACE,GAAG,WAAW,QAAQ,mBAAmB,EAAE;AAAA,QAE7C,OAAO;AAAA,UACL,GAAG;AAAA,UACH,aAAa,QAAQ,YAAY,OAAO;AAAA,QAC1C;AAAA,QACA,OAAO,MAAM;AAAA,QACb,cAAc,iBAAiB,OAAO;AAAA,QACtC;AAAA,QACA,UAAU;AAAA,QACV,UAAU,cAAc,CAAC;AAAA,QACzB,UAAU;AAAA;AAAA,IACZ;AAAA,IACC,SACC,8CAAC,OAAE,WAAU,6BAA6B,iBAAM;AAAA,KAEpD;AAEJ;AAEA,IAAO,oBAAQ;;;AErDf,IAAAC,SAAuB;A;;;;;ACQhB,IAAM,cAAc,CAAC,WAC1B,OAAO,QAAQ,sBAAsB,OAAO,EAAE,YAAA;AAQzC,IAAM,cAAc,CAAmB,WAC5C,OAAO;EAAQ;EAAyB,CAAC,OAAO,IAAI,OAClD,KAAK,GAAG,YAAA,IAAgB,GAAG,YAAA;AAC7B;AAQK,IAAM,eAAe,CAAmB,WAAgC;AAC7E,QAAM,YAAY,YAAY,MAAM;AAEpC,SAAQ,UAAU,OAAO,CAAC,EAAE,YAAA,IAAgB,UAAU,MAAM,CAAC;AAC/D;AAQO,IAAM,eAAe,IAA2C,YACrE,QACG,OAAO,CAAC,WAAW,OAAO,UAAU;AACnC,SACE,QAAQ,SAAS,KAChB,UAAqB,KAAA,MAAW,MACjC,MAAM,QAAQ,SAAS,MAAM;AAEjC,CAAC,EACA,KAAK,GAAG,EACR,KAAA;AAgBE,IAAM,cAAc,CAAC,UAA+B;AACzD,aAAW,QAAQ,OAAO;AACxB,QAAI,KAAK,WAAW,OAAO,KAAK,SAAS,UAAU,SAAS,SAAS;AACnE,aAAO;IACT;EACF;AACF;A;;;;;ACxEA,IAAA,oBAAe;EACb,OAAO;EACP,OAAO;EACP,QAAQ;EACR,SAAS;EACT,MAAM;EACN,QAAQ;EACR,aAAa;EACb,eAAe;EACf,gBAAgB;AAClB;;;ACcA,IAAM,WAAO;EACX,CACE;IACE,QAAQ;IACR,OAAO;IACP,cAAc;IACd;IACA,YAAY;IACZ;IACA;IACA,GAAG;EAAA,GAEL,YAEA;IACE;IACA;MACE;MACA,GAAG;MACH,OAAO;MACP,QAAQ;MACR,QAAQ;MACR,aAAa,sBAAuB,OAAO,WAAW,IAAI,KAAM,OAAO,IAAI,IAAI;MAC/E,WAAW,aAAa,UAAU,SAAS;MAC3C,GAAI,CAAC,YAAY,CAAC,YAAY,IAAI,KAAK,EAAE,eAAe,OAAA;MACxD,GAAG;IAAA;IAEL;MACE,GAAG,SAAS,IAAI,CAAC,CAAC,KAAK,KAAK,UAAM,6BAAc,KAAK,KAAK,CAAC;MAC3D,GAAI,MAAM,QAAQ,QAAQ,IAAI,WAAW,CAAC,QAAQ;IAAA;EACpD;AAEN;;;AC7CA,IAAM,mBAAmB,CAAC,UAAkB,aAAuB;AACjE,QAAM,gBAAY;IAAuC,CAAC,EAAE,WAAW,GAAG,MAAA,GAAS,YACjF,6BAAc,MAAM;MAClB;MACA;MACA,WAAW;QACT,UAAU,YAAY,aAAa,QAAQ,CAAC,CAAC;QAC7C,UAAU,QAAQ;QAClB;MAAA;MAEF,GAAG;IAAA,CACJ;EAAA;AAGH,YAAU,cAAc,aAAa,QAAQ;AAE7C,SAAO;AACT;;;ACzBO,IAAM,aAAuB;EAClC,CAAC,QAAQ,EAAE,GAAG,gCAAgC,KAAK,SAAA,CAAU;EAC7D;IACE;IACA;MACE,GAAG;MACH,KAAK;IAAA;EACP;AAEJ;AAaA,IAAM,OAAO,iBAAiB,QAAQ,UAAU;;;ACtBzC,IAAMC,cAAuB;EAClC,CAAC,QAAQ,EAAE,OAAO,MAAM,QAAQ,MAAM,GAAG,KAAK,GAAG,KAAK,IAAI,KAAK,KAAK,SAAA,CAAU;EAC9E,CAAC,QAAQ,EAAE,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,IAAI,KAAK,KAAK,SAAA,CAAU;EAC/D,CAAC,QAAQ,EAAE,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,IAAI,MAAM,KAAK,SAAA,CAAU;EAClE,CAAC,QAAQ,EAAE,GAAG,cAAc,KAAK,SAAA,CAAU;EAC3C,CAAC,QAAQ,EAAE,GAAG,cAAc,KAAK,SAAA,CAAU;EAC3C,CAAC,QAAQ,EAAE,GAAG,aAAa,KAAK,SAAA,CAAU;EAC1C,CAAC,QAAQ,EAAE,GAAG,cAAc,KAAK,SAAA,CAAU;EAC3C,CAAC,QAAQ,EAAE,GAAG,aAAa,KAAK,SAAA,CAAU;EAC1C,CAAC,QAAQ,EAAE,GAAG,cAAc,KAAK,SAAA,CAAU;EAC3C,CAAC,QAAQ,EAAE,GAAG,aAAa,KAAK,SAAA,CAAU;AAC5C;AAaA,IAAM,aAAa,iBAAiB,cAAcA,WAAU;;;ACxBrD,IAAMC,cAAuB;EAClC,CAAC,QAAQ,EAAE,GAAG,UAAU,KAAK,SAAA,CAAU;EACvC,CAAC,QAAQ,EAAE,GAAG,WAAW,KAAK,SAAA,CAAU;EACxC,CAAC,QAAQ,EAAE,OAAO,MAAM,QAAQ,MAAM,GAAG,KAAK,GAAG,KAAK,IAAI,KAAK,KAAK,SAAA,CAAU;EAC9E,CAAC,QAAQ,EAAE,GAAG,YAAY,KAAK,SAAA,CAAU;AAC3C;AAaA,IAAM,WAAW,iBAAiB,YAAYA,WAAU;;;AClBjD,IAAMC,cAAuB,CAAC,CAAC,QAAQ,EAAE,GAAG,mBAAmB,KAAK,SAAA,CAAU,CAAC;AAatF,IAAM,QAAQ,iBAAiB,SAASA,WAAU;;;ACb3C,IAAMC,cAAuB,CAAC,CAAC,QAAQ,EAAE,GAAG,gBAAgB,KAAK,SAAA,CAAU,CAAC;AAanF,IAAM,cAAc,iBAAiB,gBAAgBA,WAAU;;;ACbxD,IAAMC,cAAuB,CAAC,CAAC,QAAQ,EAAE,GAAG,kBAAkB,KAAK,SAAA,CAAU,CAAC;AAarF,IAAM,cAAc,iBAAiB,gBAAgBA,WAAU;;;ACbxD,IAAMC,cAAuB,CAAC,CAAC,QAAQ,EAAE,GAAG,iBAAiB,KAAK,SAAA,CAAU,CAAC;AAapF,IAAM,eAAe,iBAAiB,iBAAiBA,WAAU;;;ACb1D,IAAMC,cAAuB,CAAC,CAAC,QAAQ,EAAE,GAAG,kBAAkB,KAAK,SAAA,CAAU,CAAC;AAarF,IAAM,YAAY,iBAAiB,cAAcA,WAAU;;;ACbpD,IAAMC,cAAuB,CAAC,CAAC,UAAU,EAAE,IAAI,MAAM,IAAI,MAAM,GAAG,MAAM,KAAK,SAAA,CAAU,CAAC;AAa/F,IAAM,SAAS,iBAAiB,UAAUA,WAAU;;;ACb7C,IAAMC,eAAuB;EAClC,CAAC,UAAU,EAAE,IAAI,MAAM,IAAI,MAAM,GAAG,KAAK,KAAK,SAAA,CAAU;EACxD,CAAC,UAAU,EAAE,IAAI,MAAM,IAAI,MAAM,GAAG,KAAK,KAAK,SAAA,CAAU;EACxD,CAAC,UAAU,EAAE,IAAI,KAAK,IAAI,MAAM,GAAG,KAAK,KAAK,SAAA,CAAU;AACzD;AAaA,IAAM,WAAW,iBAAiB,YAAYA,YAAU;;;ACjBjD,IAAMC,eAAuB;EAClC,CAAC,QAAQ,EAAE,GAAG,2CAA2C,KAAK,SAAA,CAAU;EACxE,CAAC,QAAQ,EAAE,GAAG,KAAK,GAAG,KAAK,OAAO,MAAM,QAAQ,MAAM,IAAI,KAAK,KAAK,SAAA,CAAU;AAChF;AAaA,IAAM,OAAO,iBAAiB,QAAQA,YAAU;;;AChBzC,IAAMC,eAAuB;EAClC,CAAC,QAAQ,EAAE,GAAG,YAAY,KAAK,SAAA,CAAU;EACzC,CAAC,QAAQ,EAAE,GAAG,YAAY,KAAK,SAAA,CAAU;EACzC,CAAC,QAAQ,EAAE,GAAG,WAAW,KAAK,SAAA,CAAU;AAC1C;AAaA,IAAM,OAAO,iBAAiB,QAAQA,YAAU;;;ACjBzC,IAAMC,eAAuB;EAClC,CAAC,QAAQ,EAAE,GAAG,0BAA0B,KAAK,SAAA,CAAU;EACvD,CAAC,QAAQ,EAAE,GAAG,2BAA2B,KAAK,SAAA,CAAU;EACxD,CAAC,QAAQ,EAAE,GAAG,6BAA6B,KAAK,SAAA,CAAU;EAC1D,CAAC,QAAQ,EAAE,GAAG,4BAA4B,KAAK,SAAA,CAAU;EACzD,CAAC,UAAU,EAAE,IAAI,MAAM,IAAI,MAAM,GAAG,KAAK,KAAK,SAAA,CAAU;EACxD;IACE;IACA;MACE,GAAG;MACH,KAAK;IAAA;EACP;AAEJ;AAaA,IAAM,UAAU,iBAAiB,YAAYA,YAAU;;;AC1BhD,IAAMC,eAAuB;EAClC,CAAC,QAAQ,EAAE,GAAG,oBAAoB,KAAK,SAAA,CAAU;EACjD,CAAC,UAAU,EAAE,IAAI,MAAM,IAAI,MAAM,GAAG,KAAK,KAAK,SAAA,CAAU;AAC1D;AAaA,IAAM,SAAS,iBAAiB,UAAUA,YAAU;;;AlBbpD,IAAAC,gBAA0B;AAyBtB,IAAAC,uBAAA;AAtBJ,IAAM,cAAc,CAAC,EAAE,WAAW,OAAO,GAAG,MAAM,MAAwB;AAExE,QAAM,cAAc,MAAM,eAAe;AAGzC,QAAM,aAAa,MAAM,cAAc;AACvC,QAAM,aAAa,MAAM,cAAc;AACvC,QAAM,aAAa,MAAM,cAAc;AACvC,QAAM,iBAAiB,MAAM,kBAAkB;AAE/C,QAAM,CAAC,OAAO,QAAQ,IAAU,gBAAwB,IAAI;AAE5D,+BAAU,MAAM;AACd,QAAI,CAAC,MAAM,gBAAiB;AAC5B,aAAS,MAAM,gBAAgB,IAAI;AAAA,EACrC,GAAG,CAAC,MAAM,cAAc,MAAM,eAAe,CAAC;AAE9C,QAAM,eAAe,CAAC,MAA2C;AAC/D,UAAM,WAAW,CAAC;AAAA,EACpB;AAEA,SACE,gFACE;AAAA,mDAAC,SAAI,WAAU,4CACb;AAAA,oDAAC,cAAW,WAAU,mEAAkE;AAAA,MACxF;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,IAAI,MAAM,QAAQ;AAAA,UAClB,MAAM,MAAM;AAAA,UACZ,OAAO,MAAM;AAAA,UACb,WACE,GAAG,WAAW,QAAQ,mBAAmB,EAAE;AAAA,UAE7C,OAAO;AAAA,YACL,GAAG;AAAA,YACH,aAAa,QAAQ,YAAY,OAAO;AAAA,UAC1C;AAAA,UACA,cAAc,iBAAiB,OAAO;AAAA,UACtC;AAAA,UACA,UAAU;AAAA,UACV,UAAU,cAAc,CAAC;AAAA,UACzB,UAAU;AAAA;AAAA,MACZ;AAAA,OACF;AAAA,IAEC,SACC,8CAAC,OAAE,WAAU,6BAA6B,iBAAM;AAAA,KAEpD;AAEJ;AAEA,IAAO,sBAAQ;;;AmB7Df,IAAAC,SAAuB;AA6BnB,IAAAC,uBAAA;AArBJ,IAAM,aAAa,CAAC,EAAE,WAAW,OAAO,GAAG,MAAM,MAAuB;AACtE,QAAM,cAAc,MAAM,eAAe;AAGzC,QAAM,aAAa,MAAM,cAAc;AACvC,QAAM,aAAa,MAAM,cAAc;AACvC,QAAM,aAAa,MAAM,cAAc;AACvC,QAAM,iBAAiB,MAAM,kBAAkB;AAE/C,QAAM,CAAC,OAAO,QAAQ,IAAU,gBAAwB,IAAI;AAE5D,EAAM,iBAAU,MAAM;AACpB,QAAI,CAAC,MAAM,gBAAiB;AAC5B,aAAS,MAAM,gBAAgB,IAAI;AAAA,EACrC,GAAG,CAAC,MAAM,cAAc,MAAM,eAAe,CAAC;AAE9C,QAAM,eAAe,CAAC,MAA2C;AAC/D,UAAM,WAAW,CAAC;AAAA,EACpB;AAEA,SACE,gFACE;AAAA,mDAAC,SAAI,WAAU,4CACb;AAAA,oDAAC,QAAK,WAAU,mEAAkE;AAAA,MAClF;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,MAAM,MAAM;AAAA,UACZ,OAAO,MAAM;AAAA,UACb,WACE,GAAG,WAAW,QAAQ,mBAAmB,EAAE;AAAA,UAE7C,OAAO;AAAA,YACL,GAAG;AAAA,YACH,aAAa,QAAQ,YAAY,OAAO;AAAA,UAC1C;AAAA,UACA,cAAc,iBAAiB,OAAO;AAAA,UACtC;AAAA,UACA,UAAU;AAAA,UACV,UAAU,cAAc,CAAC;AAAA,UACzB,UAAU;AAAA;AAAA,MACZ;AAAA,OACF;AAAA,IAEC,SACC,8CAAC,OAAE,WAAU,6BAA6B,iBAAM;AAAA,KAEpD;AAEJ;AAEA,IAAO,qBAAQ;;;AC1Df,IAAAC,SAAuB;AA8BnB,IAAAC,uBAAA;AAtBJ,IAAM,gBAAgB,CAAC,EAAE,WAAW,OAAO,GAAG,MAAM,MAA0B;AAE5E,QAAM,cAAc,MAAM,eAAe;AAGzC,QAAM,aAAa,MAAM,cAAc;AACvC,QAAM,aAAa,MAAM,cAAc;AACvC,QAAM,aAAa,MAAM,cAAc;AACvC,QAAM,iBAAiB,MAAM,kBAAkB;AAE/C,QAAM,CAAC,OAAO,QAAQ,IAAU,gBAAwB,IAAI;AAE5D,EAAM,iBAAU,MAAM;AACpB,QAAI,CAAC,MAAM,gBAAiB;AAC5B,aAAS,MAAM,gBAAgB,IAAI;AAAA,EACrC,GAAG,CAAC,MAAM,cAAc,MAAM,eAAe,CAAC;AAE9C,QAAM,eAAe,CAAC,MAA2C;AAC/D,UAAM,WAAW,CAAC;AAAA,EACpB;AAEA,SACE,gFACE;AAAA,mDAAC,SAAI,WAAU,4CACb;AAAA,oDAAC,WAAQ,WAAU,mEAAkE;AAAA,MACrF;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,IAAI,MAAM,QAAQ;AAAA,UAClB,MAAM,MAAM;AAAA,UACZ,OAAO,MAAM;AAAA,UACb,WACE,GAAG,WAAW,QAAQ,mBAAmB,EAAE;AAAA,UAE7C,OAAO;AAAA,YACL,GAAG;AAAA,YACH,aAAa,QAAQ,YAAY,OAAO;AAAA,UAC1C;AAAA,UACA,cAAc,iBAAiB,OAAO;AAAA,UACtC;AAAA,UACA,UAAU;AAAA,UACV,UAAU,cAAc,CAAC;AAAA,UACzB,UAAU;AAAA;AAAA,MACZ;AAAA,OACF;AAAA,IAEC,SACC,8CAAC,OAAE,WAAU,6BAA6B,iBAAM;AAAA,KAEpD;AAEJ;AAEA,IAAO,wBAAQ;;;AC5Df,IAAAC,SAAuB;;;ACMnB,IAAAC,uBAAA;AAFJ,SAAS,SAAS,EAAE,WAAW,GAAG,MAAM,GAAqC;AAC3E,SACE;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;;;ADYI,IAAAC,uBAAA;AArBJ,IAAMC,YAAW,CAAC,EAAE,WAAW,OAAO,GAAG,MAAM,MAAqB;AAClE,QAAM,cAAc,MAAM,eAAe;AAGzC,QAAM,aAAa,MAAM,cAAc;AACvC,QAAM,aAAa,MAAM,cAAc;AACvC,QAAM,aAAa,MAAM,cAAc;AACvC,QAAM,iBAAiB,MAAM,kBAAkB;AAE/C,QAAM,CAAC,OAAO,QAAQ,IAAU,gBAAwB,IAAI;AAE5D,EAAM,iBAAU,MAAM;AACpB,QAAI,CAAC,MAAM,gBAAiB;AAC5B,aAAS,MAAM,gBAAgB,IAAI;AAAA,EACrC,GAAG,CAAC,MAAM,cAAc,MAAM,eAAe,CAAC;AAE9C,QAAM,eAAe,CAAC,MAA8C;AAClE,UAAM,WAAW,CAAC;AAAA,EACpB;AAEA,SACE,gFACE;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,IAAI;AAAA,QACJ,MAAM,MAAM;AAAA,QACZ,OAAO,MAAM;AAAA,QACb,WACE,GAAG,WAAW,QAAQ,mBAAmB,EAAE;AAAA,QAE7C,OAAO;AAAA,UACL,GAAG;AAAA,UACH,aAAa,QAAQ,YAAY,OAAO;AAAA,QAC1C;AAAA,QACA,cAAc,iBAAiB,OAAO;AAAA,QACtC;AAAA,QACA,UAAU;AAAA,QACV,UAAU,cAAc,CAAC;AAAA,QACzB,UAAU;AAAA;AAAA,IACZ;AAAA,IAEC,SACC,8CAAC,OAAE,WAAU,6BAA6B,iBAAM;AAAA,KAEpD;AAEJ;AAEA,IAAO,mBAAQA;;;AEpDf,IAAAC,SAAuB;AA2BnB,IAAAC,uBAAA;AArBJ,IAAM,WAAW,CAAC,EAAE,WAAW,OAAO,GAAG,MAAM,MAAqB;AAClE,QAAM,cAAc,MAAM,eAAe;AAGzC,QAAM,aAAa,MAAM,cAAc;AACvC,QAAM,aAAa,MAAM,cAAc;AACvC,QAAM,aAAa,MAAM,cAAc;AACvC,QAAM,iBAAiB,MAAM,kBAAkB;AAE/C,QAAM,CAAC,OAAO,QAAQ,IAAU,gBAAwB,IAAI;AAE5D,EAAM,iBAAU,MAAM;AACpB,QAAI,CAAC,MAAM,gBAAiB;AAC5B,aAAS,MAAM,gBAAgB,IAAI;AAAA,EACrC,GAAG,CAAC,MAAM,cAAc,MAAM,eAAe,CAAC;AAE9C,QAAM,eAAe,CAAC,MAA2C;AAC/D,UAAM,WAAW,CAAC;AAAA,EACpB;AAEA,SACE,gFACE;AAAA,mDAAC,SAAI,WAAU,4CACb;AAAA,oDAAC,SAAI,WAAU,uJAAsJ,sBAErK;AAAA,MACA;AAAA,QAAC;AAAA;AAAA,UACC,IAAI;AAAA,UACJ,MAAK;AAAA,UACL,MAAM,MAAM;AAAA,UACZ,OAAO,MAAM;AAAA,UACb,WACE,GAAG,WAAW,QAAQ,mBAAmB,EAAE;AAAA,UAE7C,OAAO;AAAA,YACL,GAAG;AAAA,YACH,aAAa,QAAQ,YAAY,OAAO;AAAA,UAC1C;AAAA,UACA,cAAc,iBAAiB,OAAO;AAAA,UACtC;AAAA,UACA,UAAU;AAAA,UACV,UAAU,cAAc,CAAC;AAAA,UACzB,UAAU;AAAA;AAAA,MACZ;AAAA,OACF;AAAA,IAEC,SACC,8CAAC,OAAE,WAAU,6BAA6B,iBAAM;AAAA,KAEpD;AAEJ;AAEA,IAAO,mBAAQ;;;AC5Df,IAAAC,gBAAoC;;;ACCpC,wBAAmC;AAsB3B,IAAAC,uBAAA;AAjBR,SAAS,SAAS;AAAA,EAChB;AAAA,EACA,GAAG;AACL,GAAwD;AACtD,SACE;AAAA,IAAmB;AAAA,IAAlB;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEJ;AAAA,QAAmB;AAAA,QAAlB;AAAA,UACC,aAAU;AAAA,UACV,WAAU;AAAA,UAEV,wDAAC,SAAU,WAAU,YAAW;AAAA;AAAA,MAClC;AAAA;AAAA,EACF;AAEJ;;;AC1BA,qBAAgC;AAS5B,IAAAC,uBAAA;AALJ,SAAS,MAAM;AAAA,EACb;AAAA,EACA,GAAG;AACL,GAAqD;AACnD,SACE;AAAA,IAAgB;AAAA,IAAf;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;;;AFII,IAAAC,uBAAA;AAlBJ,IAAM,gBAAgB,CAAC,EAAE,WAAW,OAAO,GAAG,MAAM,MAA0B;AAC5E,QAAM,aAAa,MAAM,cAAc;AACvC,QAAM,aAAa,MAAM,cAAc;AAEvC,QAAM,OAAO,MAAM,OAAO,MAAM,OAAO;AAEvC,QAAM,CAAC,OAAO,QAAQ,QAAI,wBAAwB,IAAI;AAEtD,+BAAU,MAAM;AACd,QAAI,CAAC,MAAM,gBAAiB;AAC5B,aAAS,MAAM,gBAAgB,IAAI;AAAA,EACrC,GAAG,CAAC,MAAM,cAAc,MAAM,eAAe,CAAC;AAE9C,QAAM,eAAe,CAAC,UAAmB;AACvC,UAAM,WAAW,KAAK;AAAA,EACxB;AAEA,SACE,gFACE;AAAA,kDAAC,SAAI,WAAsB,OACzB,yDAAC,SAAI,WAAU,+BACb;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,IAAI,MAAM,QAAQ;AAAA,UAClB,SAAS,CAAC,CAAC,MAAM;AAAA,UACjB,iBAAiB;AAAA,UACjB,UAAU,CAAC,cAAc;AAAA;AAAA,MAC3B;AAAA,MACA,8CAAC,SAAM,SAAS,MAAM,QAAQ,YAAa,gBAAK;AAAA,OAClD,GACF;AAAA,IACC,SACC,8CAAC,OAAE,WAAU,6BAA6B,iBAAM;AAAA,KAEpD;AAEJ;AAEA,IAAO,mBAAQ;;;AGzCf,IAAAC,gBAAoC;;;ACApC,0BAAqC;AAUjC,IAAAC,uBAAA;AALJ,SAAS,WAAW;AAAA,EAClB;AAAA,EACA,GAAG;AACL,GAA0D;AACxD,SACE;AAAA,IAAqB;AAAA,IAApB;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,cAAc,SAAS;AAAA,MACpC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,eAAe;AAAA,EACtB;AAAA,EACA,GAAG;AACL,GAA0D;AACxD,SACE;AAAA,IAAqB;AAAA,IAApB;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEJ;AAAA,QAAqB;AAAA,QAApB;AAAA,UACC,aAAU;AAAA,UACV,WAAU;AAAA,UAEV,wDAAC,UAAW,WAAU,mFAAkF;AAAA;AAAA,MAC1G;AAAA;AAAA,EACF;AAEJ;;;ADEI,IAAAC,uBAAA;AA/BJ,IAAM,aAAa,CAAC;AAAA,EAClB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO,CAAC;AAAA,EACR;AAAA,EACA;AAAA,EACA,GAAG;AACL,MAAuB;AAErB,QAAM,CAAC,OAAO,QAAQ,QAAI,wBAAwB,IAAI;AAEtD,+BAAU,MAAM;AACd,QAAI,CAAC,MAAM,gBAAiB;AAC5B,aAAS,MAAM,gBAAgB,IAAI;AAAA,EACrC,GAAG,CAAC,MAAM,cAAc,MAAM,eAAe,CAAC;AAE9C,QAAM,WAAqB,QAAQ,CAAC,GAAG,IAAI,CAAC,UAAe;AAAA,IACzD,OAAO,KAAK,WAAW,OAAO;AAAA,IAC9B,OAAO,KAAK,aAAa,OAAO;AAAA,EAClC,EAAE;AAEF,QAAM,eAAe,CAAC,UAAkB;AACtC,eAAW,KAAK;AAAA,EAClB;AAGA,QAAM,wBAAwB,OAAO,iBAAiB,WAAW,eAAe,WAAc,QAAQ,CAAC,GAAG;AAE1G,SACE,gFACE;AAAA,kDAAC,SAAI,WAAsB,OACzB;AAAA,MAAC;AAAA;AAAA,QACC,cAAc;AAAA,QACd,eAAe;AAAA,QAGb;AAAA,kBAAQ,WAAW,KACjB,8CAAC,SAAI,WAAU,yBAAwB,kCAAoB;AAAA,UAG9D,QAAQ,IAAI,CAAC,SACZ,+CAAC,SAAI,WAAU,+BACb;AAAA,0DAAC,kBAAe,OAAO,KAAK,OAAO,IAAI,SAAS,KAAK,KAAK,IAAI;AAAA,YAC9D,8CAAC,SAAM,SAAS,SAAS,KAAK,KAAK,IAAK,eAAK,OAAM;AAAA,eAFH,KAAK,KAGvD,CACD;AAAA;AAAA;AAAA,IACH,GACF;AAAA,IACC,SACC,8CAAC,OAAE,WAAU,6BAA6B,iBAAM;AAAA,KAEpD;AAEJ;AAEA,IAAO,qBAAQ;;;AElEf,IAAAC,gBAAsC;AAiDN,IAAAC,uBAAA;AArChC,IAAM,gBAAgB,CAAC;AAAA,EACrB;AAAA,EACA;AAAA,EACA,OAAO,CAAC;AAAA,EACR,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,OAAO,YAAY,CAAC;AAAA,EACpB;AAAA,EACA,aAAa;AAAA,EACb,aAAa;AACf,MAA+B;AAC7B,QAAM,CAAC,OAAO,QAAQ,QAAI,wBAAkC,SAAS;AAErE,QAAM,WAAqB,QAAQ,CAAC,GAAG,IAAI,CAAC,UAAe;AAAA,IACzD,OAAO,KAAK,WAAW,OAAO;AAAA,IAC9B,OAAO,KAAK,aAAa,OAAO;AAAA,EAClC,EAAE;AAEF,QAAM,mBAAe;AAAA,IACnB,CAAC,KAAa,YAAqB;AACjC,eAAS,CAAC,SAAS;AACjB,cAAM,WAAW,EAAE,GAAG,MAAM,CAAC,GAAG,GAAG,QAAQ;AAC3C,mBAAW,QAAQ;AACnB,eAAO;AAAA,MACT,CAAC;AAAA,IACH;AAAA,IACA,CAAC,QAAQ;AAAA,EACX;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WACE,GAAG,uBAAuB,SAAS;AAAA,MAErC;AAAA,MAGE;AAAA,gBAAQ,WAAW,KAAK,8CAAC,OAAE,WAAU,yBAAwB,mCAAqB;AAAA,QAEnF,QAAQ,IAAI,CAAC,QACZ,+CAAC,SAAI,WAAU,+BACb;AAAA;AAAA,YAAC;AAAA;AAAA,cACC,IAAI,IAAI;AAAA,cACR,SAAS,CAAC,CAAC,MAAM,IAAI,KAAK;AAAA,cAC1B,iBAAiB,CAAC,YAAY,aAAa,IAAI,OAAO,YAAY,IAAI;AAAA,cACtE,UAAU,CAAC,cAAc;AAAA;AAAA,UAC3B;AAAA,UACA,8CAAC,SAAM,SAAS,IAAI,OAAQ,cAAI,OAAM;AAAA,aAPU,IAAI,KAQtD,CACD;AAAA;AAAA;AAAA,EACH;AAEJ;AAEA,IAAO,wBAAQ;;;ACpEf,IAAAC,gBAAoC;;;ACEpC,IAAAC,gBAAgC;AAEhC,2BAAuB;AAqCnB,IAAAC,uBAAA;AAnCW,SAAR,SAA0B;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AACF,GAIG;AACD,QAAM,gBAAY,sBAAY,IAAI;AAElC,WAAS,YAAY,MAAsB;AACzC,UAAM,cAAc,KAAK,KAAK;AAC9B,QAAI,CAAC,YAAa,QAAO;AACzB,UAAM,MAAM,SAAS,cAAc,KAAK;AACxC,QAAI,YAAY;AAChB,UAAM,aAAa,IAAI;AACvB,QAAI,IAAI,sBAAsB,KAAK,YAAY,YAAY,KAAK;AAC9D,aAAO,WAAW;AAAA,IACpB;AACA,WAAO;AAAA,EACT;AAEA,QAAM,uBAAmB,uBAAQ,MAAM;AACrC,QAAI,UAAU;AACd,QAAI,WAAW;AACb,gBAAU;AAAA,IAIZ;AACA,WAAO;AAAA,EACT,GAAG,CAAC,SAAS,CAAC;AAEd,SACE;AAAA,IAAC;AAAA;AAAA,MACC,QAAQ,QAAQ,IAAI;AAAA,MACpB,kBAAkB,QAAQ,IAAI;AAAA,MAC9B,QAAQ,CAAC,MAAM,WAAY,UAAU,UAAU;AAAA,MAC/C;AAAA,MACA,YAAW;AAAA,MACX,MAAM;AAAA,QACJ,QAAQ;AAAA,QACR,SAAS;AAAA,QACT,mBAAmB;AAAA,QACnB,SAAS;AAAA,UACP;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,UACA;AAAA,QACF;AAAA,QACA,SAAS;AAAA,QACT,eAAe;AAAA;AAAA;AAAA;AAAA;AAAA,MAKjB;AAAA,MACA,gBAAgB,CAAC,YAAY,WAAW,YAAY,OAAO,CAAC;AAAA;AAAA,EAC9D;AAEJ;;;ADlEI,IAAAC,uBAAA;AATW,SAAR,SAA0B,EAAE,WAAW,OAAO,GAAG,MAAM,GAAuB;AACnF,QAAM,CAAC,OAAO,QAAQ,QAAI,wBAAwB,IAAI;AAEtD,+BAAU,MAAM;AACd,QAAI,CAAC,MAAM,gBAAiB;AAC5B,aAAS,MAAM,gBAAgB,IAAI;AAAA,EACrC,GAAG,CAAC,MAAM,cAAc,MAAM,eAAe,CAAC;AAE9C,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WACE,GAAG,WAAW,QAAQ,mBAAmB,EAAE;AAAA,MAE7C,OAAO;AAAA,QACL,GAAG;AAAA,QACH,aAAa,QAAQ,YAAY,OAAO;AAAA,MAC1C;AAAA,MAEA;AAAA,sDAAC,YAAc,UAAU,CAAC,YAAY,MAAM,WAAW,OAAO,GAAG,OAAO,MAAM,OAAO,WAAW,MAAM;AAAA,QACrG,SACC,8CAAC,OAAE,WAAU,6BAA6B,iBAAM;AAAA;AAAA;AAAA,EAEpD;AAEJ;;;AE7BA,IAAAC,SAAuB;;;ACCvB,sBAAiC;AAQxB,IAAAC,uBAAA;AAHT,SAAS,OAAO;AAAA,EACd,GAAG;AACL,GAAsD;AACpD,SAAO,8CAAiB,sBAAhB,EAAqB,aAAU,UAAU,GAAG,OAAO;AAC7D;AAQA,SAAS,YAAY;AAAA,EACnB,GAAG;AACL,GAAuD;AACrD,SAAO,8CAAiB,uBAAhB,EAAsB,aAAU,gBAAgB,GAAG,OAAO;AACpE;AAEA,SAAS,cAAc;AAAA,EACrB;AAAA,EACA,OAAO;AAAA,EACP;AAAA,EACA,GAAG;AACL,GAEG;AACD,SACE;AAAA,IAAiB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,aAAW;AAAA,MACX,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEH;AAAA;AAAA,QACD,8CAAiB,sBAAhB,EAAqB,SAAO,MAC3B,wDAAC,eAAgB,WAAU,qBAAoB,GACjD;AAAA;AAAA;AAAA,EACF;AAEJ;AAEA,SAAS,cAAc;AAAA,EACrB;AAAA,EACA;AAAA,EACA,WAAW;AAAA,EACX,GAAG;AACL,GAAyD;AACvD,SACE,8CAAiB,wBAAhB,EACC;AAAA,IAAiB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA,aAAa,YACX;AAAA,QACF;AAAA,MACF;AAAA,MACA;AAAA,MACC,GAAG;AAAA,MAEJ;AAAA,sDAAC,wBAAqB;AAAA,QACtB;AAAA,UAAiB;AAAA,UAAhB;AAAA,YACC,WAAW;AAAA,cACT;AAAA,cACA,aAAa,YACX;AAAA,YACJ;AAAA,YAEC;AAAA;AAAA,QACH;AAAA,QACA,8CAAC,0BAAuB;AAAA;AAAA;AAAA,EAC1B,GACF;AAEJ;AAeA,SAAS,WAAW;AAAA,EAClB;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAAsD;AACpD,SACE;AAAA,IAAiB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEJ;AAAA,sDAAC,UAAK,WAAU,8DACd,wDAAiB,+BAAhB,EACC,wDAAC,SAAU,WAAU,UAAS,GAChC,GACF;AAAA,QACA,8CAAiB,0BAAhB,EAA0B,UAAS;AAAA;AAAA;AAAA,EACtC;AAEJ;AAeA,SAAS,qBAAqB;AAAA,EAC5B;AAAA,EACA,GAAG;AACL,GAAgE;AAC9D,SACE;AAAA,IAAiB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEJ,wDAAC,aAAc,WAAU,UAAS;AAAA;AAAA,EACpC;AAEJ;AAEA,SAAS,uBAAuB;AAAA,EAC9B;AAAA,EACA,GAAG;AACL,GAAkE;AAChE,SACE;AAAA,IAAiB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEJ,wDAAC,eAAgB,WAAU,UAAS;AAAA;AAAA,EACtC;AAEJ;;;ADjII,IAAAC,uBAAA;AA5BJ,IAAM,WAAW,CAAC,EAAE,WAAW,OAAO,GAAG,MAAM,MAAgC;AAC7E,QAAM,OAAO,MAAM,QAAQ,CAAC;AAC5B,QAAM,cAAc,MAAM,cAAc,MAAM,cAAc;AAG5D,QAAM,aAAa,MAAM,cAAc;AACvC,QAAM,aAAa,MAAM,cAAc;AACvC,QAAM,aAAa,MAAM,cAAc;AAEvC,QAAM,CAAC,OAAO,QAAQ,IAAU,gBAAwB,IAAI;AAE5D,EAAM,iBAAU,MAAM;AACpB,QAAI,CAAC,MAAM,gBAAiB;AAC5B,aAAS,MAAM,gBAAgB,IAAI;AAAA,EACrC,GAAG,CAAC,MAAM,cAAc,MAAM,eAAe,CAAC;AAE9C,QAAM,eAAe,CAAC,UAAkB;AACtC,UAAM,WAAW,KAAK;AAAA,EACxB;AAEA,QAAM,UAAU,MAAM,WAAW;AACjC,QAAM,YAAY,MAAM,aAAa;AACrC,QAAM,UAAU,KAAK,IAAI,CAAC,UAAe;AAAA,IACvC,OAAO,KAAK,OAAO;AAAA,IACnB,OAAO,KAAK,SAAS;AAAA,EACvB,EAAE;AAEF,SACE,gFACE;AAAA,mDAAC,UAAO,MAAM,MAAM,MAAM,OAAO,MAAM,OAAO,eAAe,cAAc,UAAU,cAAc,CAAC,YAClG;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,IAAI,MAAM,QAAQ;AAAA,UAClB,WAAW,GAAG,WAAW,QAAQ,mBAAmB,EAAE;AAAA,UACtD,OAAO;AAAA,YACL,GAAG;AAAA,YACH,aAAa,QAAQ,YAAY,OAAO;AAAA,UAC1C;AAAA,UACA,iBAAe;AAAA,UAEf,wDAAC,eAAY,aAA0B;AAAA;AAAA,MACzC;AAAA,MACA,8CAAC,iBACE,kBAAQ,IAAI,CAAC,QACZ,8CAAC,cAA2B,OAAO,IAAI,OACpC,cAAI,SADU,IAAI,KAErB,CACD,GACH;AAAA,OACF;AAAA,IACC,SACC,8CAAC,OAAE,WAAU,6BAA6B,iBAAM;AAAA,KAEpD;AAEJ;AAEA,IAAO,mBAAQ;;;AEpEf,IAAAC,iBAAoC;;;ACCpC,sBAAiC;AAiB3B,IAAAC,uBAAA;AAbN,SAAS,OAAO;AAAA,EACd;AAAA,EACA,GAAG;AACL,GAAsD;AACpD,SACE;AAAA,IAAiB;AAAA,IAAhB;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA,MAEJ;AAAA,QAAiB;AAAA,QAAhB;AAAA,UACC,aAAU;AAAA,UACV,WAAW;AAAA,YACT;AAAA,UACF;AAAA;AAAA,MACF;AAAA;AAAA,EACF;AAEJ;;;ADLI,IAAAC,uBAAA;AAhBJ,IAAM,eAAe,CAAC,EAAE,WAAW,OAAO,GAAG,MAAM,MAA8B;AAC/E,QAAM,aAAa,MAAM,cAAc;AACvC,QAAM,aAAa,MAAM,cAAc;AAEvC,QAAM,CAAC,OAAO,QAAQ,QAAI,yBAAwB,IAAI;AAEtD,gCAAU,MAAM;AACd,QAAI,CAAC,MAAM,gBAAiB;AAC5B,aAAS,MAAM,gBAAgB,IAAI;AAAA,EACrC,GAAG,CAAC,MAAM,cAAc,MAAM,eAAe,CAAC;AAE9C,QAAM,eAAe,CAAC,UAAmB;AACvC,UAAM,WAAW,KAAK;AAAA,EACxB;AAEA,SACE,gFACE;AAAA,kDAAC,SAAI,WAAsB,OACzB,yDAAC,SAAI,WAAU,oCACb;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,IAAI,MAAM,QAAQ;AAAA,UAClB,SAAS,CAAC,CAAC,MAAM;AAAA,UACjB,iBAAiB;AAAA,UACjB,UAAU,cAAc,CAAC;AAAA;AAAA,MAC3B;AAAA,MACA,8CAAC,SAAM,SAAS,MAAM,QAAQ,UAAW,gBAAM,MAAK;AAAA,OACtD,GACF;AAAA,IACC,SACC,8CAAC,OAAE,WAAU,6BAA6B,iBAAM;AAAA,KAEpD;AAEJ;AAEA,IAAO,uBAAQ;;;AEtCf,IAAAC,SAAuB;AAEvB,uCAA8C;AAC9C,mBAAO;AAqBH,IAAAC,uBAAA;AAnBJ,IAAM,aAAa,CAAC,EAAE,WAAW,OAAO,GAAG,MAAM,MAAuB;AACtE,QAAM,cAAc,MAAM,eAAe;AAGzC,QAAM,aAAa,MAAM,cAAc;AACvC,QAAM,aAAa,MAAM,cAAc;AAEvC,QAAM,CAAC,OAAO,QAAQ,IAAU,gBAAwB,IAAI;AAE5D,EAAM,iBAAU,MAAM;AACpB,QAAI,CAAC,MAAM,gBAAiB;AAC5B,aAAS,MAAM,gBAAgB,IAAI;AAAA,EACrC,GAAG,CAAC,MAAM,cAAc,MAAM,eAAe,CAAC;AAE9C,QAAM,eAAe,CAAC,QAAa;AACjC,UAAM,WAAW,GAAG;AAAA,EACtB;AAEA,SACE,gFACE;AAAA;AAAA,MAAC,iCAAAC;AAAA,MAAA;AAAA,QACC,gBAAe;AAAA,QACf,MAAM,MAAM;AAAA,QACZ,OAAO,MAAM;AAAA,QACb,WACE,GAAG,WAAW,QAAQ,mBAAmB,EAAE;AAAA,QAE7C,OAAO;AAAA,UACL,GAAG;AAAA,UACH,aAAa,QAAQ,YAAY,OAAO;AAAA,QAC1C;AAAA,QACA,UAAU,CAAC,UAAkB,aAAa,KAAK;AAAA,QAC/C,YAAY;AAAA,UACV,IAAI;AAAA,QACN;AAAA,QACA;AAAA,QACA,UAAU,cAAc,CAAC;AAAA;AAAA,IAC3B;AAAA,IAEC,SACC,8CAAC,OAAE,WAAU,6BAA6B,iBAAM;AAAA,KAEpD;AAEJ;AAEA,IAAO,qBAAQ;;;ACrDf,IAAAC,UAAuB;AA6BnB,IAAAC,uBAAA;AArBJ,IAAM,cAAc,CAAC,EAAE,WAAW,OAAO,GAAG,MAAM,MAAwB;AACxE,QAAM,cAAc,MAAM,eAAe;AAGzC,QAAM,aAAa,MAAM,cAAc;AACvC,QAAM,aAAa,MAAM,cAAc;AACvC,QAAM,aAAa,MAAM,cAAc;AACvC,QAAM,iBAAiB,MAAM,kBAAkB;AAE/C,QAAM,CAAC,OAAO,QAAQ,IAAU,iBAAwB,IAAI;AAE5D,EAAM,kBAAU,MAAM;AACpB,QAAI,CAAC,MAAM,gBAAiB;AAC5B,aAAS,MAAM,gBAAgB,IAAI;AAAA,EACrC,GAAG,CAAC,MAAM,cAAc,MAAM,eAAe,CAAC;AAE9C,QAAM,eAAe,CAAC,MAA2C;AAC/D,UAAM,WAAW,CAAC;AAAA,EACpB;AAEA,SACE,gFACE;AAAA,mDAAC,SAAI,WAAU,4CACb;AAAA,oDAAC,UAAO,WAAU,mEAAkE;AAAA,MACpF;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,IAAI,MAAM,QAAQ;AAAA,UAClB,MAAM,MAAM;AAAA,UACZ,OAAO,MAAM;AAAA,UACb,WACE,GAAG,WAAW,QAAQ,mBAAmB,EAAE;AAAA,UAE7C,OAAO;AAAA,YACL,GAAG;AAAA,YACH,aAAa,QAAQ,YAAY,OAAO;AAAA,UAC1C;AAAA,UACA,cAAc,iBAAiB,OAAO;AAAA,UACtC;AAAA,UACA,UAAU;AAAA,UACV,UAAU,cAAc,CAAC;AAAA,UACzB,UAAU;AAAA;AAAA,MACZ;AAAA,OACF;AAAA,IAEC,SACC,8CAAC,OAAE,WAAU,6BAA6B,iBAAM;AAAA,KAEpD;AAEJ;AAEA,IAAO,sBAAQ;;;AC3Df,IAAAC,iBAAoC;AAgBhC,IAAAC,uBAAA;AAVJ,IAAM,YAAY,CAAC,EAAE,WAAW,OAAO,GAAG,MAAM,MAAsB;AACpE,QAAM,cAAc,MAAM,eAAe;AACzC,QAAM,CAAC,OAAO,QAAQ,QAAI,yBAAwB,IAAI;AAEtD,gCAAU,MAAM;AACd,QAAI,CAAC,MAAM,gBAAiB;AAC5B,aAAS,MAAM,gBAAgB,IAAI;AAAA,EACrC,GAAG,CAAC,MAAM,cAAc,MAAM,eAAe,CAAC;AAE9C,SACE,+CAAC,SAAI,WAAU,6CACb;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,IAAG;AAAA,QACH,MAAM,MAAM;AAAA,QACZ,OAAO,MAAM;AAAA,QACb,WACE,GAAG,WAAW,QAAQ,mBAAmB,EAAE;AAAA,QAE7C,OAAO;AAAA,UACL,GAAG;AAAA,UACH,aAAa,QAAQ,YAAY,OAAO;AAAA,QAC1C;AAAA,QACA,cAAa;AAAA,QACb;AAAA,QACA,UAAU,CAAC,MAAM;AACf,gBAAM,WAAW,CAAC;AAAA,QACpB;AAAA;AAAA,IACF;AAAA,IAEC,SACC,8CAAC,OAAE,WAAU,6BAA6B,iBAAM;AAAA,KAEpD;AAEJ;AAEA,IAAO,oBAAQ;;;AC1Cf,IAAAC,iBAAiC;AAoD7B,IAAAC,uBAAA;AA5CW,SAAR,WAA4B,EAAE,WAAW,OAAO,GAAG,MAAM,GAAyB;AACvF,QAAM,cAAc,MAAM,eAAe;AAGzC,QAAM,cAAc,MAAM,eAAe;AACzC,QAAM,oBAAoB,MAAM,qBAAqB;AAErD,QAAM,cAAc,MAAM,eAAe;AACzC,QAAM,oBAAoB,MAAM,qBAAqB;AAErD,QAAM,aAAa,MAAM,cAAc;AACvC,QAAM,aAAa,MAAM,cAAc;AACvC,QAAM,aAAa,MAAM,cAAc;AACvC,QAAM,iBAAiB,MAAM,kBAAkB;AAE/C,QAAM,CAAC,OAAO,QAAQ,IAAI,eAAAC,QAAM,SAAwB,IAAI;AAE5D,QAAM,cAAc,CAAC,QAAa,iBAA2C;AAC3E,QAAI,CAAC,OAAQ,QAAO;AAEpB,YAAQ,QAAQ;AAAA,MACd,KAAK;AACH,gBAAO,oBAAI,KAAK,GAAE,YAAY,EAAE,MAAM,GAAG,EAAE,CAAC;AAAA,MAC9C,KAAK;AACH,eAAO,gBAAgB;AAAA,MACzB,KAAK;AAAA,MACL;AACE,eAAO;AAAA,IACX;AAAA,EACF;AAEA,QAAM,UAAU,YAAY,aAAa,iBAAiB;AAC1D,QAAM,UAAU,YAAY,aAAa,iBAAiB;AAE1D,gCAAU,MAAM;AACd,QAAI,CAAC,MAAM,gBAAiB;AAC5B,aAAS,MAAM,gBAAgB,IAAI;AAAA,EACrC,GAAG,CAAC,MAAM,cAAc,MAAM,eAAe,CAAC;AAE9C,QAAM,eAAe,CAAC,MAA2C;AAC/D,UAAM,WAAW,CAAC;AAAA,EACpB;AAEA,SACE,gFACE;AAAA,mDAAC,SAAI,WAAU,4CACb;AAAA,oDAAC,YAAS,WAAU,mEAAkE;AAAA,MACtF;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,IAAG;AAAA,UACH,cAAc,iBAAiB,OAAO;AAAA,UACtC,UAAU;AAAA,UACV,UAAU,cAAc,CAAC;AAAA,UACzB,MAAM,MAAM;AAAA,UACZ,OAAO,MAAM;AAAA,UACb,WACE;AAAA,YAAG;AAAA,YAAW,QAAQ,mBAAmB;AAAA,YACvC;AAAA,UACF;AAAA,UAEF,OAAO;AAAA,YACL,GAAG;AAAA,YACH,aAAa,QAAQ,YAAY,OAAO;AAAA,UAC1C;AAAA,UACA,UAAU;AAAA,UACV;AAAA,UACA,KAAK;AAAA,UACL,KAAK;AAAA;AAAA,MACP;AAAA,OACF;AAAA,IAEC,SAAS,8CAAC,OAAE,WAAU,6BAA6B,iBAAM;AAAA,KAC5D;AAEJ;;;ACjFA,IAAAC,UAAuB;AAEvB,sBAAgC;;;ACJhC,IAAAC,UAAuB;AAMvB,8BAA2D;AAyH/C,IAAAC,uBAAA;AApHZ,SAASC,UAAS;AAAA,EAChB;AAAA,EACA;AAAA,EACA,kBAAkB;AAAA,EAClB,gBAAgB;AAAA,EAChB,gBAAgB;AAAA,EAChB;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAEG;AACD,QAAM,wBAAoB,8CAAqB;AAE/C,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA,OAAO;AAAA,QACP,OAAO;AAAA,QACP;AAAA,MACF;AAAA,MACA;AAAA,MACA,YAAY;AAAA,QACV,qBAAqB,CAAC,SACpB,KAAK,eAAe,WAAW,EAAE,OAAO,QAAQ,CAAC;AAAA,QACnD,GAAG;AAAA,MACL;AAAA,MACA,YAAY;AAAA,QACV,MAAM,GAAG,SAAS,kBAAkB,IAAI;AAAA,QACxC,QAAQ;AAAA,UACN;AAAA,UACA,kBAAkB;AAAA,QACpB;AAAA,QACA,OAAO,GAAG,8BAA8B,kBAAkB,KAAK;AAAA,QAC/D,KAAK;AAAA,UACH;AAAA,UACA,kBAAkB;AAAA,QACpB;AAAA,QACA,iBAAiB;AAAA,UACf,eAAe,EAAE,SAAS,cAAc,CAAC;AAAA,UACzC;AAAA,UACA,kBAAkB;AAAA,QACpB;AAAA,QACA,aAAa;AAAA,UACX,eAAe,EAAE,SAAS,cAAc,CAAC;AAAA,UACzC;AAAA,UACA,kBAAkB;AAAA,QACpB;AAAA,QACA,eAAe;AAAA,UACb;AAAA,UACA,kBAAkB;AAAA,QACpB;AAAA,QACA,WAAW;AAAA,UACT;AAAA,UACA,kBAAkB;AAAA,QACpB;AAAA,QACA,eAAe;AAAA,UACb;AAAA,UACA,kBAAkB;AAAA,QACpB;AAAA,QACA,UAAU;AAAA,UACR;AAAA,UACA,kBAAkB;AAAA,QACpB;AAAA,QACA,eAAe;AAAA,UACb;AAAA,UACA,kBAAkB,UACd,YACA;AAAA,UACJ,kBAAkB;AAAA,QACpB;AAAA,QACA,OAAO;AAAA,QACP,UAAU,GAAG,QAAQ,kBAAkB,QAAQ;AAAA,QAC/C,SAAS;AAAA,UACP;AAAA,UACA,kBAAkB;AAAA,QACpB;AAAA,QACA,MAAM,GAAG,oBAAoB,kBAAkB,IAAI;AAAA,QACnD,oBAAoB;AAAA,UAClB;AAAA,UACA,kBAAkB;AAAA,QACpB;AAAA,QACA,aAAa;AAAA,UACX;AAAA,UACA,kBAAkB;AAAA,QACpB;AAAA,QACA,KAAK;AAAA,UACH;AAAA,UACA,kBAAkB;AAAA,QACpB;AAAA,QACA,aAAa;AAAA,UACX;AAAA,UACA,kBAAkB;AAAA,QACpB;AAAA,QACA,cAAc,GAAG,gBAAgB,kBAAkB,YAAY;AAAA,QAC/D,WAAW,GAAG,0BAA0B,kBAAkB,SAAS;AAAA,QACnE,OAAO;AAAA,UACL;AAAA,UACA,kBAAkB;AAAA,QACpB;AAAA,QACA,SAAS;AAAA,UACP;AAAA,UACA,kBAAkB;AAAA,QACpB;AAAA,QACA,UAAU;AAAA,UACR;AAAA,UACA,kBAAkB;AAAA,QACpB;AAAA,QACA,QAAQ,GAAG,aAAa,kBAAkB,MAAM;AAAA,QAChD,GAAG;AAAA,MACL;AAAA,MACA,YAAY;AAAA,QACV,MAAM,CAAC,EAAE,WAAAC,YAAW,SAAS,GAAGC,OAAM,MAAM;AAC1C,iBACE;AAAA,YAAC;AAAA;AAAA,cACC,aAAU;AAAA,cACV,KAAK;AAAA,cACL,WAAW,GAAGD,UAAS;AAAA,cACtB,GAAGC;AAAA;AAAA,UACN;AAAA,QAEJ;AAAA,QACA,SAAS,CAAC,EAAE,WAAAD,YAAW,aAAa,GAAGC,OAAM,MAAM;AACjD,cAAI,gBAAgB,QAAQ;AAC1B,mBACE,8CAAC,eAAgB,WAAW,GAAG,UAAUD,UAAS,GAAI,GAAGC,QAAO;AAAA,UAEpE;AAEA,cAAI,gBAAgB,SAAS;AAC3B,mBACE;AAAA,cAAC;AAAA;AAAA,gBACC,WAAW,GAAG,UAAUD,UAAS;AAAA,gBAChC,GAAGC;AAAA;AAAA,YACN;AAAA,UAEJ;AAEA,iBACE,8CAAC,eAAgB,WAAW,GAAG,UAAUD,UAAS,GAAI,GAAGC,QAAO;AAAA,QAEpE;AAAA,QACA,WAAW;AAAA,QACX,YAAY,CAAC,EAAE,UAAU,GAAGA,OAAM,MAAM;AACtC,iBACE,8CAAC,QAAI,GAAGA,QACN,wDAAC,SAAI,WAAU,mEACZ,UACH,GACF;AAAA,QAEJ;AAAA,QACA,GAAG;AAAA,MACL;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,kBAAkB;AAAA,EACzB;AAAA,EACA;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAA2C;AACzC,QAAM,wBAAoB,8CAAqB;AAE/C,QAAM,MAAY,eAA0B,IAAI;AAChD,EAAM,kBAAU,MAAM;AACpB,QAAI,UAAU,QAAS,KAAI,SAAS,MAAM;AAAA,EAC5C,GAAG,CAAC,UAAU,OAAO,CAAC;AAEtB,SACE;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA,SAAQ;AAAA,MACR,MAAK;AAAA,MACL,YAAU,IAAI,KAAK,mBAAmB;AAAA,MACtC,wBACE,UAAU,YACV,CAAC,UAAU,eACX,CAAC,UAAU,aACX,CAAC,UAAU;AAAA,MAEb,oBAAkB,UAAU;AAAA,MAC5B,kBAAgB,UAAU;AAAA,MAC1B,qBAAmB,UAAU;AAAA,MAC7B,WAAW;AAAA,QACT;AAAA,QACA,kBAAkB;AAAA,QAClB;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;;;AC/MA,uBAAkC;AAOzB,IAAAC,uBAAA;AAHT,SAAS,QAAQ;AAAA,EACf,GAAG;AACL,GAAuD;AACrD,SAAO,8CAAkB,uBAAjB,EAAsB,aAAU,WAAW,GAAG,OAAO;AAC/D;AAEA,SAAS,eAAe;AAAA,EACtB,GAAG;AACL,GAA0D;AACxD,SAAO,8CAAkB,0BAAjB,EAAyB,aAAU,mBAAmB,GAAG,OAAO;AAC1E;AAEA,SAAS,eAAe;AAAA,EACtB;AAAA,EACA,QAAQ;AAAA,EACR,aAAa;AAAA,EACb,GAAG;AACL,GAA0D;AACxD,SACE,8CAAkB,yBAAjB,EACC;AAAA,IAAkB;AAAA,IAAjB;AAAA,MACC,aAAU;AAAA,MACV;AAAA,MACA;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN,GACF;AAEJ;;;AFsBkB,IAAAC,uBAAA;AA1ClB,IAAM,YAAY,CAAC,EAAE,WAAW,OAAO,GAAG,MAAM,MAA2B;AACzE,QAAM,CAAC,OAAO,QAAQ,IAAU,iBAAwB,IAAI;AAE5D,QAAM,cAAc,CAAC,QAAoC,CAAC,CAAC,OAAO,IAAI,gBAAgB;AAEtF,QAAM,CAAC,MAAM,OAAO,IAAU;AAAA,IAC5B,YAAY,MAAM,KAAK,IACnB,MAAM,QACN;AAAA,MACE,MAAM,oBAAI,KAAK;AAAA,MACf,QAAI,yBAAQ,oBAAI,KAAK,GAAG,CAAC;AAAA,IAC3B;AAAA,EACN;AAEA,EAAM,kBAAU,MAAM;AACpB,QAAI,CAAC,MAAM,gBAAiB;AAC5B,aAAS,MAAM,gBAAgB,IAAI;AAAA,EACrC,GAAG,CAAC,MAAM,cAAc,MAAM,eAAe,CAAC;AAG9C,QAAM,eAAe,CAAC,UAAsC;AAC1D,YAAQ,KAAK;AACb,QAAI,OAAO;AACT,YAAM,WAAW,KAAK;AAAA,IACxB;AAAA,EACF;AAEA,SACE,gFACE;AAAA,kDAAC,SAAI,WAAsB,OACzB,yDAAC,WACC;AAAA,oDAAC,kBAAe,SAAO,MACrB;AAAA,QAAC;AAAA;AAAA,UACC,IAAG;AAAA,UACH,SAAS;AAAA,UACT,WAAW;AAAA,YACT;AAAA,YACA,CAAC,QAAQ;AAAA,UACX;AAAA,UAEC,gBAAM,OACL,KAAK,KACH,gFACG;AAAA,wCAAO,KAAK,MAAM,WAAW;AAAA,YAAE;AAAA,YAAG;AAAA,gBAClC,wBAAO,KAAK,IAAI,WAAW;AAAA,aAC9B,QAEA,wBAAO,KAAK,MAAM,WAAW,IAG/B,8CAAC,UAAK,+BAAiB;AAAA;AAAA,MAE3B,GACF;AAAA,MACA,8CAAC,kBAAe,WAAU,cAAa,OAAM,SAC3C;AAAA,QAACC;AAAA,QAAA;AAAA,UACC,MAAK;AAAA,UACL,cAAc,MAAM;AAAA,UACpB,UAAU;AAAA,UACV,UAAU;AAAA,UACV,gBAAgB;AAAA;AAAA,MAClB,GACF;AAAA,OACF,GACF;AAAA,IACC,SAAS,8CAAC,OAAE,WAAU,6BAA6B,iBAAM;AAAA,KAC5D;AAEJ;AAEA,IAAO,oBAAQ;;;AGtFf,IAAAC,UAAuB;AA2BnB,IAAAC,uBAAA;AArBJ,IAAM,iBAAiB,CAAC,EAAE,WAAW,OAAO,SAAS,QAAQ,GAAG,MAAM,MAA2B;AAC/F,QAAM,cAAc,MAAM,eAAe;AAGzC,QAAM,aAAa,MAAM,cAAc;AACvC,QAAM,aAAa,MAAM,cAAc;AACvC,QAAM,aAAa,MAAM,cAAc;AACvC,QAAM,iBAAiB,MAAM,kBAAkB;AAE/C,QAAM,CAAC,OAAO,QAAQ,IAAU,iBAAwB,IAAI;AAE5D,EAAM,kBAAU,MAAM;AACpB,QAAI,CAAC,MAAM,gBAAiB;AAC5B,aAAS,MAAM,gBAAgB,IAAI;AAAA,EACrC,GAAG,CAAC,MAAM,cAAc,MAAM,eAAe,CAAC;AAE9C,QAAM,eAAe,CAAC,MAA2C;AAC/D,UAAM,WAAW,CAAC;AAAA,EACpB;AAEA,SACE,gFACE;AAAA;AAAA,MAAC;AAAA;AAAA,QAAI,WACH;AAAA,UACE;AAAA,UACA;AAAA,UACA;AAAA,UACA,QAAQ,mBAAmB;AAAA,QAC7B;AAAA,QAGC;AAAA,qBACC,8CAAC,SAAI,WAAU,mEACZ,mBACH;AAAA,UAEF;AAAA,YAAC;AAAA;AAAA,cACC,IAAI,MAAM,QAAQ;AAAA,cAClB,MAAK;AAAA,cACL,MAAM,MAAM;AAAA,cACZ,OAAO,MAAM;AAAA,cACb,WACE;AAAA,gBACE;AAAA,gBACA;AAAA,cACF;AAAA,cAEF,OAAO;AAAA,gBACL,GAAG;AAAA,gBACH,aAAa,QAAQ,YAAY,OAAO;AAAA,cAC1C;AAAA,cACA,cAAc,iBAAiB,OAAO;AAAA,cACtC;AAAA,cACA,UAAU;AAAA,cACV,UAAU,cAAc,CAAC;AAAA,cACzB,UAAU;AAAA;AAAA,UACZ;AAAA,UACC,UACC,8CAAC,SAAI,WAAU,mEACZ,kBACH;AAAA;AAAA;AAAA,IAEJ;AAAA,IAEC,SACC,8CAAC,OAAE,WAAU,6BAA6B,iBAAM;AAAA,KAEpD;AAEJ;AAEA,IAAO,yBAAQ;;;AC7Ef,yBAKO;;;ACKD,IAAAC,uBAAA;AANN,SAAS,MAAM,EAAE,WAAW,GAAG,MAAM,GAAkC;AACrE,SACE;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAU;AAAA,MAEV;AAAA,QAAC;AAAA;AAAA,UACC,aAAU;AAAA,UACV,WAAW,GAAG,kBAAkB,SAAS;AAAA,UACxC,GAAG;AAAA;AAAA,MACN;AAAA;AAAA,EACF;AAEJ;AAEA,SAAS,YAAY,EAAE,WAAW,GAAG,MAAM,GAAkC;AAC3E,SACE;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,UAAU,EAAE,WAAW,GAAG,MAAM,GAAkC;AACzE,SACE;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAeA,SAAS,SAAS,EAAE,WAAW,GAAG,MAAM,GAA+B;AACrE,SACE;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,UAAU,EAAE,WAAW,GAAG,MAAM,GAA+B;AACtE,SACE;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,UAAU,EAAE,WAAW,GAAG,MAAM,GAA+B;AACtE,SACE;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;;;AD9BkB,IAAAC,uBAAA;AAvCX,SAAS,UAAyB;AAAA,EACvC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,mBAAmB,MAAM;AAC3B,GAAkC;AAChC,QAAM,YAAQ,kCAAc;AAAA,IAC1B;AAAA,IACA;AAAA,IACA,oBAAoB;AAAA,IACpB,sBAAsB,kBAClB,CAAC,mBAAmB;AACpB,YAAM,QACJ,OAAO,mBAAmB,aACtB,eAAe,MAAM,SAAS,EAAE,YAAY,IAC5C;AACN,sBAAgB,KAAK;AAAA,IACvB,IACE;AAAA,IACJ,qBAAiB,oCAAgB;AAAA,EACnC,CAAC;AAED,QAAM,kBAAkB,CAAC,SAAgB,aAAqB;AAC5D,QAAI,aAAa;AACf,kBAAY,SAAS,QAAQ;AAAA,IAC/B;AAAA,EACF;AAEA,SACE,8CAAC,SAAI,WAAU,4CACb,yDAAC,SACC;AAAA,kDAAC,eACE,gBAAM,gBAAgB,EAAE,IAAI,CAAC,gBAC5B,8CAAC,YACE,sBAAY,QAAQ,IAAI,CAAC,WAAW;AACnC,aACE,8CAAC,aACE,iBAAO,gBACJ,WACA;AAAA,QACA,OAAO,OAAO,UAAU;AAAA,QACxB,OAAO,WAAW;AAAA,MACpB,KANY,OAAO,EAOvB;AAAA,IAEJ,CAAC,KAZY,YAAY,EAa3B,CACD,GACH;AAAA,IACA,8CAAC,aACE,oBACC,8CAAC,YACC,wDAAC,aAAU,SAAS,QAAQ,QAAQ,WAAU,oBAAmB,wBAEjE,GACF,IAEA,+EACG,gBAAM,YAAY,EAAE,MAAM,SACzB,MAAM,YAAY,EAAE,KAAK,IAAI,CAAC,QAC5B;AAAA,MAAC;AAAA;AAAA,QAEC,cAAY,IAAI,cAAc,KAAK;AAAA,QACnC,WAAU;AAAA,QAET;AAAA,cAAI,gBAAgB,EAAE,IAAI,CAAC,SAAS;AACnC,kBAAM,kBAAkB,iBAAiB,IAAI,UAAU,KAAK,OAAO,EAAE;AACrE,kBAAM,eAAgB,KAAK,OAAO,UAAU,MAAc,aAAa;AACvE,kBAAM,eAAgB,KAAK,OAAO,UAAU,MAAc,aAAa,CAAC;AAExE,mBACE;AAAA,cAAC;AAAA;AAAA,gBAEC,WAAW,GAAG,YAAY,IAAI,kBAAkB,6BAA6B,EAAE;AAAA,gBAC/E,OAAO;AAAA,gBACP,SAAS,MAAM;AACb,sBAAI,iBAAiB;AACnB,oCAAgB,IAAI,UAAU,KAAK,OAAO,EAAE;AAAA,kBAC9C;AAAA,gBACF;AAAA,gBAEC,6CAAW,KAAK,OAAO,UAAU,MAAM,KAAK,WAAW,CAAC;AAAA;AAAA,cATpD,KAAK;AAAA,YAUZ;AAAA,UAEJ,CAAC;AAAA,UACA,WAAW,SAAS,KACnB,8CAAC,SAAI,WAAU,sKACZ,qBAAW,IAAI,CAAC,QAAQ,UACvB,8CAAC,OAAc,WAAU,wDAAwD,iBAAO,UAAhF,KAAuF,CAChG,GACH;AAAA;AAAA;AAAA,MA7BG,IAAI;AAAA,IA+BX,CACD,IAED,8CAAC,YACC,wDAAC,aAAU,SAAS,QAAQ,QAAQ,WAAU,oBAAmB,yBAEjE,GACF,GAEJ,GAEJ;AAAA,KACF,GACF;AAEJ;;;AE7HI,IAAAC,uBAAA;AAFJ,SAAS,WAAW,EAAE,WAAW,GAAG,MAAM,GAAgC;AACxE,SACE;AAAA,IAAC;AAAA;AAAA,MACC,MAAK;AAAA,MACL,cAAW;AAAA,MACX,aAAU;AAAA,MACV,WAAW,GAAG,sCAAsC,SAAS;AAAA,MAC5D,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,kBAAkB;AAAA,EACzB;AAAA,EACA,GAAG;AACL,GAA+B;AAC7B,SACE;AAAA,IAAC;AAAA;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,oCAAoC,SAAS;AAAA,MAC1D,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,eAAe,EAAE,GAAG,MAAM,GAA+B;AAChE,SAAO,8CAAC,QAAG,aAAU,mBAAmB,GAAG,OAAO;AACpD;AAOA,SAAS,eAAe;AAAA,EACtB;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP,GAAG;AACL,GAAwB;AACtB,SACE;AAAA,IAAC;AAAA;AAAA,MACC,gBAAc,WAAW,SAAS;AAAA,MAClC,aAAU;AAAA,MACV,eAAa;AAAA,MACb,WAAW;AAAA,QACT,eAAe;AAAA,UACb,SAAS,WAAW,YAAY;AAAA,UAChC;AAAA,QACF,CAAC;AAAA,QACD;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,mBAAmB;AAAA,EAC1B;AAAA,EACA,GAAG;AACL,GAAgD;AAC9C,SACE;AAAA,IAAC;AAAA;AAAA,MACC,cAAW;AAAA,MACX,MAAK;AAAA,MACL,WAAW,GAAG,0BAA0B,SAAS;AAAA,MAChD,GAAG;AAAA,MAEJ;AAAA,sDAAC,eAAgB;AAAA,QACjB,8CAAC,UAAK,WAAU,mBAAkB,sBAAQ;AAAA;AAAA;AAAA,EAC5C;AAEJ;AAEA,SAAS,eAAe;AAAA,EACtB;AAAA,EACA,GAAG;AACL,GAAgD;AAC9C,SACE;AAAA,IAAC;AAAA;AAAA,MACC,cAAW;AAAA,MACX,MAAK;AAAA,MACL,WAAW,GAAG,0BAA0B,SAAS;AAAA,MAChD,GAAG;AAAA,MAEJ;AAAA,sDAAC,UAAK,WAAU,mBAAkB,kBAAI;AAAA,QACtC,8CAAC,gBAAiB;AAAA;AAAA;AAAA,EACpB;AAEJ;AAEA,SAAS,mBAAmB;AAAA,EAC1B;AAAA,EACA,GAAG;AACL,GAAiC;AAC/B,SACE;AAAA,IAAC;AAAA;AAAA,MACC,eAAW;AAAA,MACX,aAAU;AAAA,MACV,WAAW,GAAG,2CAA2C,SAAS;AAAA,MACjE,GAAG;AAAA,MAEJ;AAAA,sDAAC,YAAmB,WAAU,UAAS;AAAA,QACvC,8CAAC,UAAK,WAAU,WAAU,wBAAU;AAAA;AAAA;AAAA,EACtC;AAEJ;;;AC9CM,IAAAC,uBAAA;AArDN,IAAM,mBAAmB,CAAC;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA,kBAAkB;AACpB,MAA6B;AAC3B,QAAM,iBAAiB,MAAM;AAC3B,UAAM,QAA6B,CAAC;AAEpC,QAAI,cAAc,iBAAiB;AACjC,aAAO,MAAM,KAAK,EAAE,QAAQ,WAAW,GAAG,CAAC,GAAG,MAAM,IAAI,CAAC;AAAA,IAC3D;AAEA,UAAM,mBAAmB,KAAK,IAAI,cAAc,GAAG,CAAC;AACpD,UAAM,oBAAoB,KAAK,IAAI,cAAc,GAAG,UAAU;AAE9D,UAAM,qBAAqB,mBAAmB;AAC9C,UAAM,sBAAsB,oBAAoB,aAAa;AAE7D,QAAI,CAAC,sBAAsB,qBAAqB;AAC9C,YAAM,YAAY,MAAM,KAAK,EAAE,QAAQ,EAAE,GAAG,CAAC,GAAG,MAAM,IAAI,CAAC;AAC3D,aAAO,CAAC,GAAG,WAAW,OAAO,UAAU;AAAA,IACzC;AAEA,QAAI,sBAAsB,CAAC,qBAAqB;AAC9C,YAAM,aAAa,MAAM;AAAA,QACvB,EAAE,QAAQ,EAAE;AAAA,QACZ,CAAC,GAAG,MAAM,aAAa,IAAI;AAAA,MAC7B;AACA,aAAO,CAAC,GAAG,OAAO,GAAG,UAAU;AAAA,IACjC;AAEA,QAAI,sBAAsB,qBAAqB;AAC7C,YAAM,cAAc,MAAM;AAAA,QACxB,EAAE,QAAQ,EAAE;AAAA,QACZ,CAAC,GAAG,MAAM,mBAAmB;AAAA,MAC/B;AACA,aAAO,CAAC,GAAG,OAAO,GAAG,aAAa,OAAO,UAAU;AAAA,IACrD;AAEA,WAAO;AAAA,EACT;AAEA,QAAM,mBAAmB,CAAC,SAAiB;AACzC,QAAI,QAAQ,KAAK,QAAQ,cAAc,SAAS,aAAa;AAC3D,mBAAa,IAAI;AAAA,IACnB;AAAA,EACF;AAEA,QAAM,cAAc,eAAe;AAEnC,SACE,8CAAC,cACC,yDAAC,qBACC;AAAA,kDAAC,kBACC;AAAA,MAAC;AAAA;AAAA,QACC,SAAS,MAAM,iBAAiB,cAAc,CAAC;AAAA,QAC/C,WAAW,gBAAgB,IAAI,mCAAmC;AAAA;AAAA,IACpE,GACF;AAAA,IAEC,YAAY,IAAI,CAAC,YAAY,UAC5B,8CAAC,kBACE,yBAAe,QACd,8CAAC,sBAAmB,IAEpB;AAAA,MAAC;AAAA;AAAA,QACC,SAAS,MAAM,iBAAiB,UAAoB;AAAA,QACpD,UAAU,gBAAgB;AAAA,QAC1B,WAAU;AAAA,QAET;AAAA;AAAA,IACH,KAViB,KAYrB,CACD;AAAA,IAED,8CAAC,kBACC;AAAA,MAAC;AAAA;AAAA,QACC,SAAS,MAAM,iBAAiB,cAAc,CAAC;AAAA,QAC/C,WAAW,gBAAgB,aAAa,mCAAmC;AAAA;AAAA,IAC7E,GACF;AAAA,KACF,GACF;AAEJ;AAEA,IAAO,qBAAQ;;;ACrGf,IAAAC,iBAAyB;AAuBrB,IAAAC,uBAAA;AArBJ,IAAMC,SAAQ,CAAC;AAAA,EACb;AAAA,EAAS;AAAA,EAAM;AAAA,EAAY;AAAA,EAAW;AAAA,EAAO,aAAa;AAAA,EAAO,eAAe;AAAA,EAAI;AAAA,EAAc,UAAU;AAAA,EAC5G,GAAG;AACL,MAAkB;AAChB,QAAM,aAAa,MAAM,QAAQ,OAAO,IAAI,UAAU,CAAC;AACvD,QAAM,UAAU,MAAM,QAAQ,IAAI,IAAI,OAAO,CAAC;AAC9C,QAAM,gBAAgB,MAAM,QAAQ,UAAU,IAAI,aAAa,CAAC;AAEhE,QAAM,CAAC,aAAa,cAAc,QAAI,yBAAS,CAAC;AAChD,QAAM,mBAAmB,cAAc,QAAQ,SAAS;AAExD,QAAM,mBAAmB,CAAC,SAAiB;AACzC,mBAAe,IAAI;AACnB,mBAAe,IAAI;AAAA,EACrB;AAEA,QAAM,gBAAgB,mBAClB,QAAQ,OAAO,cAAc,KAAK,cAAc,cAAc,YAAY,IAC1E;AAEJ,SACE,+CAAC,SAAI,WAAW,GAAG,SAAS,cAAc,OACxC;AAAA;AAAA,MAAC;AAAA;AAAA,QACE,GAAG;AAAA,QACJ,SAAS;AAAA,QACT,MAAM;AAAA,QACN,YAAY;AAAA,QACZ;AAAA;AAAA,IACF;AAAA,IACC,oBACC;AAAA,MAAC;AAAA;AAAA,QACC,YAAY,KAAK,KAAK,QAAQ,SAAS,YAAY;AAAA,QACnD;AAAA,QACA,cAAc;AAAA;AAAA,IAChB;AAAA,KAEJ;AAEJ;AAEA,IAAO,gBAAQA;;;AC1Cf,4BAAuC;AAQ9B,IAAAC,uBAAA;AAHT,SAAS,aAAa;AAAA,EACpB,GAAG;AACL,GAA4D;AAC1D,SAAO,8CAAuB,4BAAtB,EAA2B,aAAU,iBAAiB,GAAG,OAAO;AAC1E;AAUA,SAAS,oBAAoB;AAAA,EAC3B,GAAG;AACL,GAA+D;AAC7D,SACE;AAAA,IAAuB;AAAA,IAAtB;AAAA,MACC,aAAU;AAAA,MACT,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,oBAAoB;AAAA,EAC3B;AAAA,EACA,aAAa;AAAA,EACb,GAAG;AACL,GAA+D;AAC7D,SACE,8CAAuB,8BAAtB,EACC;AAAA,IAAuB;AAAA,IAAtB;AAAA,MACC,aAAU;AAAA,MACV;AAAA,MACA,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN,GACF;AAEJ;AAUA,SAAS,iBAAiB;AAAA,EACxB;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EACV,GAAG;AACL,GAGG;AACD,SACE;AAAA,IAAuB;AAAA,IAAtB;AAAA,MACC,aAAU;AAAA,MACV,cAAY;AAAA,MACZ,gBAAc;AAAA,MACd,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AA+DA,SAAS,kBAAkB;AAAA,EACzB;AAAA,EACA;AAAA,EACA,GAAG;AACL,GAEG;AACD,SACE;AAAA,IAAuB;AAAA,IAAtB;AAAA,MACC,aAAU;AAAA,MACV,cAAY;AAAA,MACZ,WAAW;AAAA,QACT;AAAA,QACA;AAAA,MACF;AAAA,MACC,GAAG;AAAA;AAAA,EACN;AAEJ;AAEA,SAAS,sBAAsB;AAAA,EAC7B;AAAA,EACA,GAAG;AACL,GAAiE;AAC/D,SACE;AAAA,IAAuB;AAAA,IAAtB;AAAA,MACC,aAAU;AAAA,MACV,WAAW,GAAG,6BAA6B,SAAS;AAAA,MACnD,GAAG;AAAA;AAAA,EACN;AAEJ;;;AC3Ic,IAAAC,uBAAA;AA1Bd,IAAM,OAAO,CAAC,EAAE,MAAM,WAAW,OAAO,UAAU,cAAc,MAAiB;AAC/E,QAAM,UAAU,MAAM,QAAQ,IAAI,IAAI,OAAO,CAAC;AAC9C,QAAM,cACJ;AACF,QAAM,gBAAgB;AACtB,QAAM,eAAe;AAErB,QAAM,WAAW,CAAC,SAAkB;AAClC,QAAI,CAAC,KAAM,QAAO;AAClB,WAAO,aAAa,QAAS,SAAS,OAAO,UAAU,WAAW,IAAI;AAAA,EACxE;AAEA,SACE,8CAAC,SAAI,WAAsB,OACxB,kBAAQ,IAAI,CAAC,KAAU,UAAkB;AACxC,UAAM,eAAe;AAAA,MACnB;AAAA,MACA,SAAS,IAAI,IAAI,IAAI,gBAAgB;AAAA,MACrC,IAAI,aAAa;AAAA,IACnB,EAAE,KAAK,GAAG;AAEV,UAAM,cAAc,MAAM,QAAQ,IAAI,QAAQ,KAAK,IAAI,SAAS,SAAS,KAAK,IAAI;AAElF,QAAI,aAAa;AACf,aACE,+CAAC,gBACC;AAAA;AAAA,UAAC;AAAA;AAAA,YACC,WAAW,GAAG,YAAY;AAAA,YAEzB;AAAA,kBAAI;AAAA,cACL,8CAAC,eAAY,WAAU,sBAAqB;AAAA;AAAA;AAAA,QAC9C;AAAA,QAEA;AAAA,UAAC;AAAA;AAAA,YACC,OAAM;AAAA,YACN,YAAY;AAAA,YACZ,WAAU;AAAA,YAET,cAAI,SAAS,IAAI,CAAC,SACjB;AAAA,cAAC;AAAA;AAAA,gBAEC,SAAO;AAAA,gBACP,WAAU;AAAA,gBAET,0BACC,8CAAC,iBAAc,MAAM,KAAK,QAAQ,KAAM,eAAK,QAAO,IAEpD,KAAK;AAAA;AAAA,cAPF,KAAK;AAAA,YASZ,CACD;AAAA;AAAA,QACH;AAAA,WA1BiB,KA2BnB;AAAA,IAEJ;AAEA,WAAO,IAAI,OAAO,gBAChB,8CAAC,iBAA0B,MAAM,IAAI,KAAK,WAAW,cAAc,OAAO,IAAI,OAC3E,cAAI,UADa,KAEpB,IAEA,8CAAC,SAAgB,WAAW,cAAc,OAAO,IAAI,OAAO,MAAK,UAAS,UAAU,GACjF,cAAI,UADG,KAEV;AAAA,EAEJ,CAAC,GAEH;AAEJ;AAEA,IAAO,eAAQ;;;AChFf,IAAAC,iBAAkB;AAUJ,IAAAC,uBAAA;AARd,IAAM,kBAAkB,CAAC,EAAE,QAAQ,WAAW,YAAY,WAAW,MAAM,MAAmB;AAE5F,SACE,8CAAC,SAAI,WAAsB,OACzB,yDAAC,SAAI,WAAU,6FACb;AAAA,kDAAC,SAAI,WAAU,qBACb,wDAAC,YAAO,WAAU,iCAChB,wDAAC,SAAI,WAAU,yBAAwB,MAAK,QAAO,QAAO,gBAAe,SAAQ,aAC/E,wDAAC,UAAK,eAAc,SAAQ,gBAAe,SAAQ,aAAa,GAAG,GAAE,kBAAiB,GACxF,GACF,GACF;AAAA,IAEA,8CAAC,SAAI,WAAU,iCACZ,kBAAQ,SAAS,KAAK,QAAQ,IAAI,CAAC,OAAY,UAC9C,+CAAC,eAAAC,QAAM,UAAN,EACC;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,WAAW;AAAA,8HACmG,MAAM,WAAW,sCAAsC,iEAAiE;AAAA,UAErO,gBAAM;AAAA;AAAA,MACT;AAAA,MAEC,QAAQ,OAAO,SAAS,KACvB,8CAAC,SAAI,WAAU,sCAAqC;AAAA,SATnC,MAAM,EAW3B,CACD,GACH;AAAA,IAEC,aACC,8CAAC,SAAI,WAAU,qBACb,wDAAC,YAAO,WAAU,6GACf,sBACH,GACF;AAAA,KAGJ,GACF;AAEJ;AAEA,IAAO,iBAAQ;;;AC1CX,IAAAC,uBAAA;AAFJ,IAAM,SAAS,CAAC,EAAE,WAAW,MAAM,MAAoB;AACrD,SACE,8CAAC,SAAI,WAAW,GAAG,SAAS,IAAI,OAAc;AAElD;AAEA,IAAO,iBAAQ;;;ACHT,IAAAC,uBAAA;AAHN,IAAM,UAAU,CAAC,EAAE,aAAa,UAAU,UAAU,WAAW,MAAM,MAAoB;AACvF,SACE,8CAAC,SAAI,WAAsB,OACzB,yDAAC,SAAI,WAAU,+DACZ;AAAA,gBACC,8CAAC,QAAG,WAAU,+DAA+D,oBAAS;AAAA,IAEvF,gBAAgB,WACf;AAAA,MAAC;AAAA;AAAA,QACC,KAAI;AAAA,QAA2E,KAAI;AAAA,QAAO,OAAO;AAAA,QAAI,QAAQ;AAAA;AAAA,IAC/G,IAEA,8CAAC,SAAI,WAAU,0GAAyG,eAAC;AAAA,KAG7H,GACF;AAEJ;AAEA,IAAO,kBAAQ;;;ACjBT,IAAAC,uBAAA;AAHN,IAAM,eAAe,CAAC,EAAE,WAAW,OAAO,WAAW,aAAa,GAAG,kBAAkB,MAAyB;AAC9G,SACE,8CAAC,SAAI,WAAsB,OACzB,yDAAC,SAAI,WAAU,mGACb;AAAA;AAAA,MAAC;AAAA;AAAA,QACC,KAAI;AAAA,QAAgF,KAAI;AAAA,QAAO,OAAO;AAAA,QAAI,QAAQ;AAAA;AAAA,IACpH;AAAA,IACC,cAAc,YAAY,EAAE,qBAAqB,eAAe,MAAM,aAAa,IAClF,8CAAC,UAAK,WAAU,wJAAwJ,sBAAW,IACjL,8CAAC,UAAK,WAAU,gIAA+H;AAAA,KACrJ,GACF;AAEJ;AAEA,IAAO,uBAAQ;A;;;;;ACDP,IAAAC,uBAAA;AAdR,IAAM,OAAO,CAAC;AAAA,EACZ;AAAA,EACA;AAAA,EACA;AAAA,EACA,UAAU;AACZ,MAAiB;AAEf,MAAI,CAAC,UAAU;AACb,WACE;AAAA,MAAC;AAAA;AAAA,QACC,WAAW;AAAA,UACT;AAAA,UAAW;AAAA,QACb;AAAA,QAAG;AAAA,QAEH,wDAAC,SAAI,KAAK,0BAAa,KAAK,SAAS,WAAU,cAAa,OAAO,KAAK,QAAQ,IAAI;AAAA;AAAA,IACtF;AAAA,EAEJ;AAEA,SACE,8CAAC,SAAI,KAAK,UAAU,KAAK,SAAS,WAAsB,OAAc;AAE1E;AAEA,IAAO,eAAQ;;;AC1Bf,IAAAC,UAAuB;AAEvB,sBAAiC;AAQ/B,IAAAC,uBAAA;AAJF,IAAM,SAAe,mBAGnB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B;AAAA,EAAiB;AAAA,EAAhB;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,OAAO,cAA8B,qBAAK;AAE1C,IAAM,cAAoB,mBAGxB,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B;AAAA,EAAiB;AAAA,EAAhB;AAAA,IACC;AAAA,IACA,WAAW,GAAG,+BAA+B,SAAS;AAAA,IACrD,GAAG;AAAA;AACN,CACD;AACD,YAAY,cAA8B,sBAAM;AAEhD,IAAM,iBAAuB,mBAG3B,CAAC,EAAE,WAAW,GAAG,MAAM,GAAG,QAC1B;AAAA,EAAiB;AAAA,EAAhB;AAAA,IACC;AAAA,IACA,WAAW;AAAA,MACT;AAAA,MACA;AAAA,IACF;AAAA,IACC,GAAG;AAAA;AACN,CACD;AACD,eAAe,cAA8B,yBAAS;;;ACnBxC,IAAAC,uBAAA;AAdC,SAAR,OAAwB;AAAA,EAC7B;AAAA,EAAO;AAAA,EAAW,aAAa;AAAA,EAAG;AAAA,EAAmB;AAAA,EAAa;AAAA,EAAU;AAAA,EAAU,UAAU;AAAA,EAChG,aAAa;AAAA,EAAW;AAAA,EAAe;AAEzC,GAAgB;AAEd,QAAM,eAAe,eAAe,YAAY,eAAe;AAE/D,SACE,8CAAC,SAAI,WAAU,sCAAqC,OAClD,yDAAC,SAAI,WAAU,iEACZ;AAAA,qBAAiB,iBAChB,8CAAC,iBAAc,MAAK,KAAI,WAAU,+BAC/B,qBACC,8CAAC,kBAAe,KAAK,UAAU,KAAK,SAAS,OAAO,KAAK,QAAQ,KAAK,IAEtE,8CAAC,UAAK,WAAU,+BAA8B,kBAAI,GAEtD,IACG,8CAAC,UAAK,WAAU,+BAA8B,kBAAI;AAAA,IAEvD,+CAAC,SAAI,WAAU,+BACZ;AAAA,OAAC,eACA,8CAAC,SAAI,WAAU,eACb,yDAAC,SAAI,WAAU,8DACb;AAAA,sDAAC,UAAO,WAAU,kEAAiE;AAAA,QACnF,8CAAC,SAAM,aAAY,UAAS,WAAU,sBAAqB;AAAA,SAC7D,GACF,IAEA;AAAA,QAAC;AAAA;AAAA,UACC,SAAQ;AAAA,UACR,MAAK;AAAA,UACL,WAAU;AAAA,UAEV,wDAAC,UAAO,WAAU,yBAAwB;AAAA;AAAA,MAC5C;AAAA,MAGF,+CAAC,SAAI,WAAU,oCACb;AAAA,sDAAC,UAAO,SAAQ,SAAQ,MAAK,QAC3B,wDAAC,QAAK,WAAU,0BAAyB,GAC3C;AAAA,QACC,cAAc,YAAY,EAAE,qBAAqB,eAAe,MAAM,aAAa,IAClF,8CAAC,UAAK,WAAU,8HACb,sBACH,IAEA,8CAAC,UAAK,WAAU,6FAA4F;AAAA,SAEhH;AAAA,MAEA,+CAAC,gBACC;AAAA,sDAAC,uBAAoB,SAAO,MAC1B,yDAAC,SAAI,WAAU,+BACZ;AAAA,WAAC,gBAAgB,YAChB,8CAAC,QAAG,WAAU,8CAA6C,2BAE3D;AAAA,UAED,CAAC,eACA,gFACE;AAAA,0DAAC,UAAO,WAAU,wCACf,0BAAgB,WACf;AAAA,cAAC;AAAA;AAAA,gBACC,KAAI;AAAA,gBACJ,KAAI;AAAA;AAAA,YACN,IAEA,8CAAC,SAAI,WAAU,0GAAyG,gBAExH,GAEJ;AAAA,YACA;AAAA,cAAC;AAAA;AAAA,gBACC,SAAQ;AAAA,gBACR,MAAK;AAAA,gBACL,WAAU;AAAA,gBAEV,wDAAC,QAAK,WAAU,WAAU;AAAA;AAAA,YAC5B;AAAA,aACF,IAEA;AAAA,YAAC;AAAA;AAAA,cACC,SAAQ;AAAA,cACR,MAAK;AAAA,cACL,WAAU;AAAA,cAEV,wDAAC,QAAK,WAAU,WAAU;AAAA;AAAA,UAC5B;AAAA,WAEJ,GACF;AAAA,QACA,+CAAC,uBAAoB,OAAM,OAAM,WAAU,YACzC;AAAA,wDAAC,qBAAkB,WAAU,cAAa,wBAE1C;AAAA,UACA,8CAAC,yBAAsB;AAAA,UACvB,8CAAC,oBAAiB,WAAU,cAAa,qBAAO;AAAA,UAChD,8CAAC,oBAAiB,WAAU,cAAa,sBAAQ;AAAA,UACjD,8CAAC,oBAAiB,WAAU,cAAa,oBAAM;AAAA,WACjD;AAAA,SACF;AAAA,OACF;AAAA,KACF,GACF;AAEJ;;;ACvHA,sBAAkH;AActG,IAAAC,uBAAA;AAZZ,IAAM,iBAAiB,CAAC,EAAE,WAAW,OAAO,GAAG,MAAM,MAAqB;AACxE,QAAM,OAAO,MAAM,QAAQ,OAAO,IAAI,IAAI,MAAM,OAAO,CAAC;AAExD,QAAM,YAAY,MAAM,aAAa;AAErC,QAAM,kBAAiC,MAAM,oBAAoB,YAAY,MAAM,oBAAoB,WAAW,MAAM,kBAAkB;AAE1I,SACE,8CAAC,SAAI,WAAW,GAAG,SAAS,cAAc,OACvC,eAAK,SAAS,KACb,8CAAC,uCAAoB,OAAM,QAAO,QAAO,QACtC,wBAAc,QACb,+CAAC,4BAAS,MACR;AAAA,kDAAC,iCAAc,iBAAgB,OAAM;AAAA,IACrC,8CAAC,yBAAM,SAAQ,QAAO;AAAA,IACtB,8CAAC,yBAAM;AAAA,IACP,8CAAC,2BAAQ;AAAA,IACT,8CAAC,0BAAO,eAAe,iBAAiB,OAAM,UAAS;AAAA,IACvD,8CAAC,uBAAI,SAAQ,SAAQ,MAAK,WAAU;AAAA,KACtC,IAEA,+CAAC,6BAAU,MACT;AAAA,kDAAC,UACC,yDAAC,oBAAe,IAAG,cAAa,IAAG,KAAI,IAAG,KAAI,IAAG,KAAI,IAAG,KACtD;AAAA,oDAAC,UAAK,QAAO,MAAK,WAAU,WAAU,aAAa,KAAK;AAAA,MACxD,8CAAC,UAAK,QAAO,OAAM,WAAU,WAAU,aAAa,GAAG;AAAA,OACzD,GACF;AAAA,IACA,8CAAC,iCAAc,iBAAgB,OAAM;AAAA,IACrC,8CAAC,yBAAM,SAAQ,QAAO;AAAA,IACtB,8CAAC,yBAAM;AAAA,IACP,8CAAC,2BAAQ;AAAA,IACT;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,SAAQ;AAAA,QACR,QAAO;AAAA,QACP,aAAa;AAAA,QACb,MAAK;AAAA;AAAA,IACP;AAAA,KACF,GAEJ,GAEJ;AAEJ;AAEA,IAAO,mBAAQ;;;ACjDf,IAAAC,mBAA6E;AAgBvE,IAAAC,uBAAA;AAdN,IAAM,aAAa,CAAC,EAAE,WAAW,OAAO,GAAG,MAAM,MAAqB;AACpE,QAAM,OAAO,MAAM,QAAQ,OAAO,IAAI,IAAI,MAAM,OAAO,CAAC;AACxD,QAAM,QAAQ,KAAK,OAAO,CAAC,KAAa,MAAyB,MAAM,EAAE,OAAO,CAAC;AAEjF,QAAM,iBAAiB,MAAM,kBAAkB;AAC/C,QAAM,cAAc,MAAM,eAAe;AACzC,QAAM,YAAY,MAAM,aAAa;AAErC,QAAM,aAAa,MAAM;AAEzB,QAAM,cAAc,CAAC,EAAE,OAAO,GAAG,EAAE,MAAW;AAC5C,QAAI,SAAS,KAAM,QAAO;AAC1B,UAAM,cAAe,OAAO,KAAK,IAAI,QAAS,KAAK,QAAQ,CAAC;AAC5D,WACE;AAAA,MAAC;AAAA;AAAA,QACC;AAAA,QACA;AAAA,QACA,YAAW;AAAA,QACX,kBAAiB;AAAA,QACjB,WAAU;AAAA,QACV,MAAM,cAAc,WAAW,SAAS;AAAA,QAEvC;AAAA;AAAA,UAAM;AAAA,UAAG,iBAAiB,IAAI,UAAU,OAAO;AAAA;AAAA;AAAA,IAClD;AAAA,EAEJ;AAGA,QAAM,cAAc,eAAe,YAAY,eAAe;AAC9D,QAAM,eAAe,eAAe;AAGpC,QAAM,eAAe,aACjB,eACE,aACA,aACF;AAEJ,QAAM,gBAAgB,MAAM;AAC1B,QAAI,CAAC,YAAa,QAAO;AACzB,WACE,+EACG,eAAK,IAAI,CAAC,MACT;AAAA,MAAC;AAAA;AAAA,QAEC,WAAU;AAAA,QAEV;AAAA;AAAA,YAAC;AAAA;AAAA,cACC,WAAU;AAAA,cACV,OAAO,EAAE,iBAAiB,EAAE,MAAM;AAAA;AAAA,UACpC;AAAA,UACA,8CAAC,UAAK,WAAU,wDACb,YAAE,MACL;AAAA;AAAA;AAAA,MATK,EAAE;AAAA,IAUT,CACD,GACH;AAAA,EAEJ;AAEA,SACE;AAAA,IAAC;AAAA;AAAA,MACC,WAAW,8BAA8B,YAAY,IAAI,SAAS;AAAA,MAClE;AAAA,MAEA;AAAA,uDAAC,SAAI,WAAU,sFACZ;AAAA,eAAK,SAAS,KACb,8CAAC,wCAAoB,OAAM,QAAO,QAAO,QACvC,yDAAC,6BACC;AAAA;AAAA,cAAC;AAAA;AAAA,gBACC;AAAA,gBACA,IAAG;AAAA,gBACH,IAAG;AAAA,gBACH,aAAa;AAAA,gBACb,aAAa;AAAA,gBACb,SAAQ;AAAA,gBACR,WAAW;AAAA,gBACX,mBAAmB;AAAA,gBAElB;AAAA,uBAAK,IAAI,CAAC,OAA0B,UACnC,8CAAC,yBAA2B,MAAM,MAAM,SAA7B,QAAQ,KAAK,EAAuB,CAChD;AAAA,kBACD;AAAA,oBAAC;AAAA;AAAA,sBACC,SAAQ;AAAA,sBACR,UAAU,cAAc,WAAW,WAAW;AAAA,sBAC9C,SAAS;AAAA;AAAA,kBACX;AAAA;AAAA;AAAA,YACF;AAAA,YACA,8CAAC,4BAAQ,WAAW,CAAC,OAAe,SAAiB,CAAC,GAAG,KAAK,KAAK,IAAI,GAAG;AAAA,aAC5E,GACF;AAAA,UAGF,+CAAC,SAAI,WAAU,0GACZ;AAAA;AAAA,YAAM;AAAA,aACT;AAAA,WACF;AAAA,QAEA,8CAAC,SAAI,WAAW,QAAQ,eAAe,+BAA+B,qCAAqC;AAAA,+BAExG,wBAAc,GACjB;AAAA;AAAA;AAAA,EACF;AAEJ;AAEA,IAAO,mBAAQ;;;ACpGL,IAAAC,uBAAA;AANK,SAAR,cAA+B,EAAE,WAAW,OAAO,IAAI,OAAO,QAAQ,WAAW,SAAS,YAAY,IAAI,OAAO,KAAK,QAAQ,SAAS,YAAY,MAAM,QAAQ,GAAuB;AAE7L,SACE,8CAAC,SAAI,WAAsB,OACzB,yDAAC,SAAI,WAAU,kEACb;AAAA,kDAAC,SAAI,WAAU,QACb;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,aAAY;AAAA,QACZ,WAAU;AAAA,QACV,UAAQ;AAAA;AAAA,IACV,GACF;AAAA,IACA,8CAAC,SAAI,WAAU,QACb,yDAAC,SAAI,WAAU,2BACb;AAAA;AAAA,QAAC;AAAA;AAAA,UACC,MAAK;AAAA,UACL,OAAO;AAAA,UACP,UAAU,CAAC,MAAM,QAAQ,EAAE,OAAO,KAAK;AAAA,UACvC,aAAY;AAAA,UACZ,WAAU;AAAA,UACV,UAAQ;AAAA;AAAA,MACV;AAAA,MACC,CAAC,UACA;AAAA,QAAC;AAAA;AAAA,UACC,SAAS,MAAM,YAAY,IAAI;AAAA,UAC/B,WAAU;AAAA,UACX;AAAA;AAAA,MAED;AAAA,MAED,CAAC,WACA;AAAA,QAAC;AAAA;AAAA,UACC,SAAS,MAAM,aAAa,IAAI;AAAA,UAChC,WAAU;AAAA,UACX;AAAA;AAAA,MAED;AAAA,OAEJ,GACF;AAAA,IACC,UACC,8CAAC,SAAI,WAAU,QACb;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,OAAO;AAAA,QACP,UAAU,CAAC,MAAM,QAAQ,EAAE,OAAO,KAAK;AAAA,QACvC,aAAY;AAAA,QACZ,WAAU;AAAA;AAAA,IACZ,GACF;AAAA,IAED,WACC,8CAAC,SAAI,WAAU,QACb;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,OAAO;AAAA,QACP,UAAU,CAAC,MAAM,SAAS,EAAE,OAAO,KAAK;AAAA,QACxC,aAAY;AAAA,QACZ,WAAU;AAAA;AAAA,IACZ,GACF;AAAA,IAIF,8CAAC,SAAI,WAAU,QACb;AAAA,MAAC;AAAA;AAAA,QACC,MAAK;AAAA,QACL,OAAO;AAAA,QACP,UAAU,CAAC,MAAM,aAAa,EAAE,OAAO,KAAK;AAAA,QAC5C,aAAY;AAAA,QACZ,WAAU;AAAA;AAAA,IACZ,GACF;AAAA,IACA,8CAAC,SAAI,WAAU,QACb,wDAAC,YAAc,OAAO,MAAM,UAAU,SAAS,GACjD;AAAA,IACA,+CAAC,SAAI,WAAU,0BACb;AAAA,oDAAC,YAAO,WAAU,wDAAuD,qBAEzE;AAAA,MACA,8CAAC,YAAO,WAAU,+DAA8D,mBAEhF;AAAA,MACA,8CAAC,YAAO,WAAU,gDAA+C,kBAEjE;AAAA,OACF;AAAA,KACF,GACF;AAEJ;;;AC9FA,oBAAsB;AAaf,SAAS,gBAAgB;AAAA,EAC9B;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EACV,WAAW;AAAA,EACX;AAAA,EACA;AACF,GAAqB;AACnB,QAAM,UAAU;AAAA,IACd;AAAA,IACA;AAAA,IACA,QAAQ,cACJ;AAAA,MACA,OAAO;AAAA,MACP,SAAS,aAAa,MAAM;AAAA,MAAE;AAAA,IAChC,IACE;AAAA,EACN;AAEA,UAAQ,SAAS;AAAA,IACf,KAAK;AACH,0BAAM,QAAQ,OAAO,OAAO;AAC5B;AAAA,IACF,KAAK;AACH,0BAAM,MAAM,OAAO,OAAO;AAC1B;AAAA,IACF,KAAK;AACH,0BAAM,KAAK,OAAO,OAAO;AACzB;AAAA,IACF,KAAK;AACH,0BAAM,QAAQ,OAAO,OAAO;AAC5B;AAAA,IACF;AACE,+BAAM,OAAO,OAAO;AAAA,EACxB;AACF;;;AClDA,IAAAC,iBAA6D;;;ACKtD,SAAS,aAAa,OAAoB,QAAmC;AAClF,UAAQ,OAAO,MAAM;AAAA,IACnB,KAAK;AACH,aAAO,EAAE,GAAG,OAAO,CAAC,OAAO,GAAG,GAAG,OAAO,MAAM;AAAA,IAEhD;AACE,aAAO;AAAA,EACX;AACF;;;ADJI,IAAAC,uBAAA;AALJ,IAAM,mBAAe,8BAAmB,IAAI;AAErC,SAAS,cAAc,EAAE,SAAS,GAAkC;AACzE,QAAM,CAAC,OAAO,QAAQ,QAAI,2BAAW,cAAc,CAAC,CAAgB;AACpE,SACE,8CAAC,aAAa,UAAb,EAAsB,OAAO,EAAE,OAAO,SAAS,GAC7C,UACH;AAEJ;AAEO,SAAS,cAAc;AAC5B,aAAO,2BAAW,YAAY;AAChC;","names":["import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","React","React","import_jsx_runtime","import_jsx_runtime","React","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","import_react","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","import_jsx_runtime","Textarea","React","import_jsx_runtime","import_react","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_react","import_jsx_runtime","import_jsx_runtime","import_react","import_jsx_runtime","import_react","import_react","import_jsx_runtime","import_jsx_runtime","React","import_jsx_runtime","import_jsx_runtime","import_react","import_jsx_runtime","import_jsx_runtime","React","import_jsx_runtime","PhoneInputField","React","import_jsx_runtime","import_react","import_jsx_runtime","import_react","import_jsx_runtime","React","React","React","import_jsx_runtime","Calendar","className","props","import_jsx_runtime","import_jsx_runtime","Calendar","React","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_react","import_jsx_runtime","Table","import_jsx_runtime","import_jsx_runtime","import_react","import_jsx_runtime","React","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","React","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_recharts","import_jsx_runtime","import_jsx_runtime","import_react","import_jsx_runtime"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/components/Layout/Modal.tsx","../src/components/Layout/Flex.tsx","../src/components/Layout/Grid.tsx","../src/components/Layout/Container.tsx","../src/components/ui/button.tsx","../src/lib/utils.ts","../src/components/Basic/Button/Button.tsx","../src/components/Basic/Image/Image.tsx","../src/components/Basic/Shape/Shape.tsx","../src/components/Basic/Typography/Typography.tsx","../src/components/Inputs/TextInput/TextInput.tsx","../src/components/ui/input.tsx","../src/components/Inputs/NumberInput/NumberInput.tsx","../node_modules/shared/src/utils.ts","../node_modules/lucide-react/src/defaultAttributes.ts","../node_modules/lucide-react/src/Icon.ts","../node_modules/lucide-react/src/createLucideIcon.ts","../node_modules/lucide-react/src/icons/bell.ts","../node_modules/lucide-react/src/icons/calculator.ts","../node_modules/lucide-react/src/icons/calendar.ts","../node_modules/lucide-react/src/icons/check.ts","../node_modules/lucide-react/src/icons/chevron-down.ts","../node_modules/lucide-react/src/icons/chevron-left.ts","../node_modules/lucide-react/src/icons/chevron-right.ts","../node_modules/lucide-react/src/icons/chevron-up.ts","../node_modules/lucide-react/src/icons/circle.ts","../node_modules/lucide-react/src/icons/ellipsis.ts","../node_modules/lucide-react/src/icons/mail.ts","../node_modules/lucide-react/src/icons/menu.ts","../node_modules/lucide-react/src/icons/scan-eye.ts","../node_modules/lucide-react/src/icons/search.ts","../src/components/Inputs/EmailInput/EmailInput.tsx","../src/components/Inputs/PasswordInput/PasswordInput.tsx","../src/components/Inputs/Textarea/Textarea.tsx","../src/components/ui/textarea.tsx","../src/components/Inputs/UrlInput/UrlInput.tsx","../src/components/Inputs/Checkbox/Checkbox.tsx","../src/components/ui/checkbox.tsx","../src/components/ui/label.tsx","../src/components/Inputs/RadioInput/RadioInput.tsx","../src/components/ui/radio-group.tsx","../src/components/Inputs/MultiCheckbox/MultiCheckbox.tsx","../src/components/Inputs/RichText/RichText.tsx","../src/components/Global/TinyMceEditor.tsx","../src/components/Inputs/Dropdown/Dropdown.tsx","../src/components/ui/select.tsx","../src/components/Inputs/SwitchToggle/SwitchToggle.tsx","../src/components/ui/switch.tsx","../src/components/Inputs/PhoneInput/PhoneInput.tsx","../src/components/Inputs/SearchInput/SearchInput.tsx","../src/components/Inputs/FileInput/FileInput.tsx","../src/components/Inputs/DatePicker/DatePicker.tsx","../src/components/Inputs/DateRange/DateRange.tsx","../src/components/ui/calendar.tsx","../src/components/ui/popover.tsx","../src/components/Inputs/TextInputGroup/TextInputGroup.tsx","../src/components/ui/data-table.tsx","../src/components/ui/table.tsx","../src/components/ui/pagination.tsx","../src/components/DataDisplay/Pagination/Pagination.tsx","../src/components/DataDisplay/Table/Table.tsx","../src/components/ui/dropdown-menu.tsx","../src/components/Navigation/Tabs/Tabs.tsx","../src/components/Navigation/Stages/Stages.tsx","../src/components/Navigation/Spacer/Spacer.tsx","../src/components/Navigation/Profile/Profile.tsx","../src/components/Navigation/Notification/Notification.tsx","../src/components/Navigation/Logo/Logo.tsx","../src/components/ui/avatar.tsx","../src/components/Navigation/Navbar/Navbar.tsx","../src/components/Chart/BarChart.tsx","../src/components/Chart/PieChart.tsx","../src/components/Blocks/EmailComposer.tsx","../src/components/ui/sonner-toast.tsx","../src/components/StateManagment/StateContext.tsx","../src/components/StateManagment/stateReducer.ts"],"sourcesContent":["import './global.css'\r\n\r\nexport * from \"@/components\";\r\nexport * from \"@/lib/utils\";\r\n","import { ModalProps } from \"@/types/global\";\r\n\r\nconst Modal = ({\r\n children, onClose, label, className, style\r\n}: ModalProps) => {\r\n\r\n return (\r\n <div className={className} style={style}>\r\n <div className='min-h-80'>\r\n <div className='flex justify-between items-center p-4 border-b border-gray-300 bg-gray-100'>\r\n <h4 className='text-[#000]'>{label || 'Modal Title'}</h4>\r\n <span\r\n className='cursor-pointer text-[#000]'\r\n role='presentation'\r\n onClick={onClose}\r\n >X</span>\r\n </div>\r\n <div className='h-90 overflow-y-auto p-4 custom-scroll'>\r\n {children}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default Modal;\r\n","import { ElementProps } from \"@/types/global\";\r\n\r\nconst Flex = ({\r\n children, className, style, ...props\r\n}: ElementProps) => {\r\n return (\r\n <div {...props} className={className} style={style}>\r\n {children}\r\n </div>\r\n );\r\n};\r\n\r\nexport default Flex;\r\n","import { ElementProps } from \"@/types/global\";\r\n\r\nconst Grid = ({\r\n children, className, style, ...props\r\n}: ElementProps) => {\r\n return (\r\n <div {...props} className={className} style={style}>\r\n {children}\r\n </div>\r\n );\r\n};\r\n\r\nexport default Grid;\r\n","import { ElementProps } from \"@/types/global\";\r\n\r\nconst Container = ({\r\n children, className, style, ...props\r\n}: ElementProps) => {\r\n return (\r\n <div {...props} className={className} style={style}>\r\n {children}\r\n </div>\r\n );\r\n};\r\n\r\nexport default Container;\r\n","import * as React from \"react\"\r\nimport { Slot } from \"@radix-ui/react-slot\"\r\nimport { cva, type VariantProps } from \"class-variance-authority\"\r\n\r\nimport { cn } from \"@/lib/utils\"\r\n\r\nconst buttonVariants = cva(\r\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md text-sm font-medium transition-all disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\r\n {\r\n variants: {\r\n variant: {\r\n default:\r\n \"bg-primary text-primary-foreground shadow-xs hover:bg-primary/90\",\r\n destructive:\r\n \"bg-destructive text-white shadow-xs hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60\",\r\n outline:\r\n \"border bg-background shadow-xs hover:bg-accent hover:text-accent-foreground dark:bg-input/30 dark:border-input dark:hover:bg-input/50\",\r\n secondary:\r\n \"bg-secondary text-secondary-foreground shadow-xs hover:bg-secondary/80\",\r\n ghost:\r\n \"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50\",\r\n link: \"text-primary underline-offset-4 hover:underline\",\r\n },\r\n size: {\r\n default: \"h-9 px-4 py-2 has-[>svg]:px-3\",\r\n sm: \"h-8 rounded-md gap-1.5 px-3 has-[>svg]:px-2.5\",\r\n lg: \"h-10 rounded-md px-6 has-[>svg]:px-4\",\r\n icon: \"size-9\",\r\n },\r\n },\r\n defaultVariants: {\r\n variant: \"default\",\r\n size: \"default\",\r\n },\r\n }\r\n)\r\n\r\nfunction Button({\r\n className,\r\n variant,\r\n size,\r\n asChild = false,\r\n ...props\r\n}: React.ComponentProps<\"button\"> &\r\n VariantProps<typeof buttonVariants> & {\r\n asChild?: boolean\r\n }) {\r\n const Comp = asChild ? Slot : \"button\"\r\n\r\n return (\r\n <Comp\r\n data-slot=\"button\"\r\n className={cn(buttonVariants({ variant, size, className }))}\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\nexport { Button, buttonVariants }\r\n","import { clsx, type ClassValue } from \"clsx\"\r\nimport { twMerge } from \"tailwind-merge\"\r\n\r\nexport function cn(...inputs: ClassValue[]) {\r\n return twMerge(clsx(inputs))\r\n}","import { ButtonProps } from '@/types/global';\r\nimport { Button } from '@/components/ui/button';\r\n\r\nconst ButtonWrapper = ({\r\n className,\r\n style,\r\n textContent = \"Button\",\r\n ...props\r\n}: ButtonProps) => {\r\n\r\n return (\r\n <Button\r\n {...props}\r\n className={className}\r\n style={style}\r\n >\r\n {textContent}\r\n </Button>\r\n );\r\n};\r\n\r\nexport default ButtonWrapper;","import { cn } from '@/lib/utils';\r\nimport { ImageProps } from '@/types/global';\r\nimport placeholder from \"../../../assets/image-placeholder.png\";\r\n\r\nconst ImageControl = ({\r\n className,\r\n style, \r\n imageUrl,\r\n imageUrlExternal,\r\n altText = 'Preview',\r\n}: ImageProps) => {\r\n\r\n const imageClass = cn(\r\n 'h-[200px] w-[200px] border-1',\r\n 'border-2 border-dashed border-gray-400 flex items-center justify-center cursor-pointer hover:border-blue-500 transition',\r\n );\r\n\r\n const defaultImgClass = cn(\r\n 'w-full h-full',\r\n className\r\n );\r\n\r\n if (!imageUrl && !imageUrlExternal) {\r\n return (\r\n <div className={imageClass}>\r\n <img src={placeholder} alt={altText} className=\"opacity-50\" width={50} height={50} />\r\n </div>\r\n )\r\n }\r\n\r\n const url = imageUrlExternal || imageUrl;\r\n\r\n return (\r\n <img src={url} alt={altText} className={defaultImgClass} style={style} />\r\n );\r\n};\r\n\r\nexport default ImageControl;\r\n","import { ElementProps } from '@/types/global';\r\n\r\nconst Shape = ({\r\n children,\r\n className, \r\n style\r\n}: ElementProps) => {\r\n\r\n return (\r\n <div className={className} style={style}>\r\n {children}\r\n </div>\r\n );\r\n};\r\n\r\nexport default Shape;\r\n","import React from 'react';\r\n\r\nimport { cn } from '@/lib/utils';\r\nimport { TypographyProps } from '@/types/global';\r\n\r\nconst Typography = ({\r\n className,\r\n style,\r\n tagName,\r\n textContent,\r\n}: TypographyProps) => {\r\n\r\n const Tag = tagName || 'h1';\r\n\r\n return React.createElement(\r\n Tag,\r\n {\r\n style,\r\n className: cn(className, 'pointer-events-auto'),\r\n },\r\n [\r\n React.createElement('span', {\r\n key: 'html',\r\n className: 'pointer-events-none',\r\n dangerouslySetInnerHTML: { __html: textContent },\r\n })\r\n ]\r\n );\r\n};\r\n\r\nexport default Typography;\r\n","import * as React from 'react';\r\n\r\nimport { Input } from '@/components/ui/input';\r\nimport { cn } from '@/lib/utils';\r\nimport { TextInputProps } from '@/types/global';\r\n\r\nconst TextInput = ({ className, style, ...props }: TextInputProps) => {\r\n\r\n const placeholder = props.placeholder || 'Placeholder text';\r\n\r\n // Controls\r\n const isEditable = props.isEditable ?? true;\r\n const isDisabled = props.isDisabled ?? false;\r\n const isReadonly = props.isReadonly ?? false;\r\n const isAutocomplete = props.isAutocomplete ?? false;\r\n\r\n const [error, setError] = React.useState<string | null>(null);\r\n\r\n React.useEffect(() => {\r\n if (!props.validateOnMount) return;\r\n setError(props.errorMessage || null);\r\n }, [props.errorMessage, props.validateOnMount]);\r\n\r\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n props.onChange?.(e);\r\n };\r\n\r\n return (\r\n <>\r\n <Input\r\n type=\"text\"\r\n name={props.name}\r\n className={\r\n cn(className, error ? 'border-red-500' : '')\r\n }\r\n style={{\r\n ...style,\r\n borderColor: error ? '#f87171' : style?.borderColor\r\n }}\r\n value={props.value}\r\n autoComplete={isAutocomplete ? 'on' : 'off'}\r\n placeholder={placeholder}\r\n onChange={handleChange}\r\n disabled={isDisabled || !isEditable}\r\n readOnly={isReadonly}\r\n />\r\n {error && (\r\n <p className=\"mt-1 text-xs text-red-500\">{error}</p>\r\n )}\r\n </>\r\n );\r\n};\r\n\r\nexport default TextInput;","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Input({ className, type, ...props }: React.ComponentProps<\"input\">) {\n return (\n <input\n type={type}\n data-slot=\"input\"\n className={cn(\n \"file:text-foreground placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input flex h-9 w-full min-w-0 rounded-md border bg-transparent px-3 py-1 text-base shadow-xs transition-[color,box-shadow] outline-none file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n \"focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]\",\n \"aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Input }\n","import * as React from 'react';\r\n\r\nimport { Calculator } from 'lucide-react';\r\n\r\nimport { Input } from '@/components/ui/input';\r\nimport { NumberInputProps } from '@/types/global';\r\nimport { useEffect } from 'react';\r\nimport { cn } from '@/lib/utils';\r\n\r\nconst NumberInput = ({ className, style, ...props }: NumberInputProps) => {\r\n\r\n const placeholder = props.placeholder ?? 'Placeholder text';\r\n\r\n // Controls\r\n const isEditable = props.isEditable ?? true;\r\n const isDisabled = props.isDisabled ?? false;\r\n const isReadonly = props.isReadonly ?? false;\r\n const isAutocomplete = props.isAutocomplete ?? false;\r\n\r\n const [error, setError] = React.useState<string | null>(null);\r\n \r\n useEffect(() => {\r\n if (!props.validateOnMount) return;\r\n setError(props.errorMessage || null);\r\n }, [props.errorMessage, props.validateOnMount]);\r\n\r\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n props.onChange?.(e);\r\n };\r\n\r\n return (\r\n <>\r\n <div className=\"flex justify-start items-center relative\">\r\n <Calculator className=\"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-[#BDBDBD]\" />\r\n <Input\r\n type=\"number\"\r\n id={props.name || 'number-field'}\r\n name={props.name}\r\n value={props.value}\r\n className={\r\n cn(className, error ? 'border-red-500' : '')\r\n }\r\n style={{\r\n ...style,\r\n borderColor: error ? '#f87171' : style?.borderColor\r\n }}\r\n autoComplete={isAutocomplete ? 'on' : 'off'}\r\n placeholder={placeholder}\r\n onChange={handleChange}\r\n disabled={isDisabled || !isEditable}\r\n readOnly={isReadonly}\r\n />\r\n </div>\r\n\r\n {error && (\r\n <p className=\"mt-1 text-xs text-red-500\">{error}</p>\r\n )}\r\n </>\r\n );\r\n}\r\n\r\nexport default NumberInput;","import { CamelToPascal } from './utility-types';\n\n/**\n * Converts string to kebab case\n *\n * @param {string} string\n * @returns {string} A kebabized string\n */\nexport const toKebabCase = (string: string) =>\n string.replace(/([a-z0-9])([A-Z])/g, '$1-$2').toLowerCase();\n\n/**\n * Converts string to camel case\n *\n * @param {string} string\n * @returns {string} A camelized string\n */\nexport const toCamelCase = <T extends string>(string: T) =>\n string.replace(/^([A-Z])|[\\s-_]+(\\w)/g, (match, p1, p2) =>\n p2 ? p2.toUpperCase() : p1.toLowerCase(),\n );\n\n/**\n * Converts string to pascal case\n *\n * @param {string} string\n * @returns {string} A pascalized string\n */\nexport const toPascalCase = <T extends string>(string: T): CamelToPascal<T> => {\n const camelCase = toCamelCase(string);\n\n return (camelCase.charAt(0).toUpperCase() + camelCase.slice(1)) as CamelToPascal<T>;\n};\n\n/**\n * Merges classes into a single string\n *\n * @param {array} classes\n * @returns {string} A string of classes\n */\nexport const mergeClasses = <ClassType = string | undefined | null>(...classes: ClassType[]) =>\n classes\n .filter((className, index, array) => {\n return (\n Boolean(className) &&\n (className as string).trim() !== '' &&\n array.indexOf(className) === index\n );\n })\n .join(' ')\n .trim();\n\n/**\n * Is empty string\n *\n * @param {unknown} value\n * @returns {boolean} Whether the value is an empty string\n */\nexport const isEmptyString = (value: unknown): boolean => value === '';\n\n/**\n * Check if a component has an accessibility prop\n *\n * @param {object} props\n * @returns {boolean} Whether the component has an accessibility prop\n */\nexport const hasA11yProp = (props: Record<string, any>) => {\n for (const prop in props) {\n if (prop.startsWith('aria-') || prop === 'role' || prop === 'title') {\n return true;\n }\n }\n};\n","export default {\n xmlns: 'http://www.w3.org/2000/svg',\n width: 24,\n height: 24,\n viewBox: '0 0 24 24',\n fill: 'none',\n stroke: 'currentColor',\n strokeWidth: 2,\n strokeLinecap: 'round',\n strokeLinejoin: 'round',\n};\n","import { createElement, forwardRef } from 'react';\nimport defaultAttributes from './defaultAttributes';\nimport { IconNode, LucideProps } from './types';\nimport { mergeClasses, hasA11yProp } from '@lucide/shared';\n\ninterface IconComponentProps extends LucideProps {\n iconNode: IconNode;\n}\n\n/**\n * Lucide icon component\n *\n * @component Icon\n * @param {object} props\n * @param {string} props.color - The color of the icon\n * @param {number} props.size - The size of the icon\n * @param {number} props.strokeWidth - The stroke width of the icon\n * @param {boolean} props.absoluteStrokeWidth - Whether to use absolute stroke width\n * @param {string} props.className - The class name of the icon\n * @param {IconNode} props.children - The children of the icon\n * @param {IconNode} props.iconNode - The icon node of the icon\n *\n * @returns {ForwardRefExoticComponent} LucideIcon\n */\nconst Icon = forwardRef<SVGSVGElement, IconComponentProps>(\n (\n {\n color = 'currentColor',\n size = 24,\n strokeWidth = 2,\n absoluteStrokeWidth,\n className = '',\n children,\n iconNode,\n ...rest\n },\n ref,\n ) =>\n createElement(\n 'svg',\n {\n ref,\n ...defaultAttributes,\n width: size,\n height: size,\n stroke: color,\n strokeWidth: absoluteStrokeWidth ? (Number(strokeWidth) * 24) / Number(size) : strokeWidth,\n className: mergeClasses('lucide', className),\n ...(!children && !hasA11yProp(rest) && { 'aria-hidden': 'true' }),\n ...rest,\n },\n [\n ...iconNode.map(([tag, attrs]) => createElement(tag, attrs)),\n ...(Array.isArray(children) ? children : [children]),\n ],\n ),\n);\n\nexport default Icon;\n","import { createElement, forwardRef } from 'react';\nimport { mergeClasses, toKebabCase, toPascalCase } from '@lucide/shared';\nimport { IconNode, LucideProps } from './types';\nimport Icon from './Icon';\n\n/**\n * Create a Lucide icon component\n * @param {string} iconName\n * @param {array} iconNode\n * @returns {ForwardRefExoticComponent} LucideIcon\n */\nconst createLucideIcon = (iconName: string, iconNode: IconNode) => {\n const Component = forwardRef<SVGSVGElement, LucideProps>(({ className, ...props }, ref) =>\n createElement(Icon, {\n ref,\n iconNode,\n className: mergeClasses(\n `lucide-${toKebabCase(toPascalCase(iconName))}`,\n `lucide-${iconName}`,\n className,\n ),\n ...props,\n }),\n );\n\n Component.displayName = toPascalCase(iconName);\n\n return Component;\n};\n\nexport default createLucideIcon;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M10.268 21a2 2 0 0 0 3.464 0', key: 'vwvbt9' }],\n [\n 'path',\n {\n d: 'M3.262 15.326A1 1 0 0 0 4 17h16a1 1 0 0 0 .74-1.673C19.41 13.956 18 12.499 18 8A6 6 0 0 0 6 8c0 4.499-1.411 5.956-2.738 7.326',\n key: '11g9vi',\n },\n ],\n];\n\n/**\n * @component @name Bell\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMTAuMjY4IDIxYTIgMiAwIDAgMCAzLjQ2NCAwIiAvPgogIDxwYXRoIGQ9Ik0zLjI2MiAxNS4zMjZBMSAxIDAgMCAwIDQgMTdoMTZhMSAxIDAgMCAwIC43NC0xLjY3M0MxOS40MSAxMy45NTYgMTggMTIuNDk5IDE4IDhBNiA2IDAgMCAwIDYgOGMwIDQuNDk5LTEuNDExIDUuOTU2LTIuNzM4IDcuMzI2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/bell\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Bell = createLucideIcon('bell', __iconNode);\n\nexport default Bell;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['rect', { width: '16', height: '20', x: '4', y: '2', rx: '2', key: '1nb95v' }],\n ['line', { x1: '8', x2: '16', y1: '6', y2: '6', key: 'x4nwl0' }],\n ['line', { x1: '16', x2: '16', y1: '14', y2: '18', key: 'wjye3r' }],\n ['path', { d: 'M16 10h.01', key: '1m94wz' }],\n ['path', { d: 'M12 10h.01', key: '1nrarc' }],\n ['path', { d: 'M8 10h.01', key: '19clt8' }],\n ['path', { d: 'M12 14h.01', key: '1etili' }],\n ['path', { d: 'M8 14h.01', key: '6423bh' }],\n ['path', { d: 'M12 18h.01', key: 'mhygvu' }],\n ['path', { d: 'M8 18h.01', key: 'lrp35t' }],\n];\n\n/**\n * @component @name Calculator\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cmVjdCB3aWR0aD0iMTYiIGhlaWdodD0iMjAiIHg9IjQiIHk9IjIiIHJ4PSIyIiAvPgogIDxsaW5lIHgxPSI4IiB4Mj0iMTYiIHkxPSI2IiB5Mj0iNiIgLz4KICA8bGluZSB4MT0iMTYiIHgyPSIxNiIgeTE9IjE0IiB5Mj0iMTgiIC8+CiAgPHBhdGggZD0iTTE2IDEwaC4wMSIgLz4KICA8cGF0aCBkPSJNMTIgMTBoLjAxIiAvPgogIDxwYXRoIGQ9Ik04IDEwaC4wMSIgLz4KICA8cGF0aCBkPSJNMTIgMTRoLjAxIiAvPgogIDxwYXRoIGQ9Ik04IDE0aC4wMSIgLz4KICA8cGF0aCBkPSJNMTIgMThoLjAxIiAvPgogIDxwYXRoIGQ9Ik04IDE4aC4wMSIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/calculator\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Calculator = createLucideIcon('calculator', __iconNode);\n\nexport default Calculator;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M8 2v4', key: '1cmpym' }],\n ['path', { d: 'M16 2v4', key: '4m81vk' }],\n ['rect', { width: '18', height: '18', x: '3', y: '4', rx: '2', key: '1hopcy' }],\n ['path', { d: 'M3 10h18', key: '8toen8' }],\n];\n\n/**\n * @component @name Calendar\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNOCAydjQiIC8+CiAgPHBhdGggZD0iTTE2IDJ2NCIgLz4KICA8cmVjdCB3aWR0aD0iMTgiIGhlaWdodD0iMTgiIHg9IjMiIHk9IjQiIHJ4PSIyIiAvPgogIDxwYXRoIGQ9Ik0zIDEwaDE4IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/calendar\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Calendar = createLucideIcon('calendar', __iconNode);\n\nexport default Calendar;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [['path', { d: 'M20 6 9 17l-5-5', key: '1gmf2c' }]];\n\n/**\n * @component @name Check\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMjAgNiA5IDE3bC01LTUiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/check\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Check = createLucideIcon('check', __iconNode);\n\nexport default Check;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [['path', { d: 'm6 9 6 6 6-6', key: 'qrunsl' }]];\n\n/**\n * @component @name ChevronDown\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtNiA5IDYgNiA2LTYiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/chevron-down\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ChevronDown = createLucideIcon('chevron-down', __iconNode);\n\nexport default ChevronDown;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [['path', { d: 'm15 18-6-6 6-6', key: '1wnfg3' }]];\n\n/**\n * @component @name ChevronLeft\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTUgMTgtNi02IDYtNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chevron-left\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ChevronLeft = createLucideIcon('chevron-left', __iconNode);\n\nexport default ChevronLeft;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [['path', { d: 'm9 18 6-6-6-6', key: 'mthhwq' }]];\n\n/**\n * @component @name ChevronRight\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtOSAxOCA2LTYtNi02IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/chevron-right\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ChevronRight = createLucideIcon('chevron-right', __iconNode);\n\nexport default ChevronRight;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [['path', { d: 'm18 15-6-6-6 6', key: '153udz' }]];\n\n/**\n * @component @name ChevronUp\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMTggMTUtNi02LTYgNiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/chevron-up\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ChevronUp = createLucideIcon('chevron-up', __iconNode);\n\nexport default ChevronUp;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [['circle', { cx: '12', cy: '12', r: '10', key: '1mglay' }]];\n\n/**\n * @component @name Circle\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/circle\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Circle = createLucideIcon('circle', __iconNode);\n\nexport default Circle;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['circle', { cx: '12', cy: '12', r: '1', key: '41hilf' }],\n ['circle', { cx: '19', cy: '12', r: '1', key: '1wjl8i' }],\n ['circle', { cx: '5', cy: '12', r: '1', key: '1pcz8c' }],\n];\n\n/**\n * @component @name Ellipsis\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8Y2lyY2xlIGN4PSIxMiIgY3k9IjEyIiByPSIxIiAvPgogIDxjaXJjbGUgY3g9IjE5IiBjeT0iMTIiIHI9IjEiIC8+CiAgPGNpcmNsZSBjeD0iNSIgY3k9IjEyIiByPSIxIiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/ellipsis\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Ellipsis = createLucideIcon('ellipsis', __iconNode);\n\nexport default Ellipsis;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'm22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7', key: '132q7q' }],\n ['rect', { x: '2', y: '4', width: '20', height: '16', rx: '2', key: 'izxlao' }],\n];\n\n/**\n * @component @name Mail\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjIgNy04Ljk5MSA1LjcyN2EyIDIgMCAwIDEtMi4wMDkgMEwyIDciIC8+CiAgPHJlY3QgeD0iMiIgeT0iNCIgd2lkdGg9IjIwIiBoZWlnaHQ9IjE2IiByeD0iMiIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/mail\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Mail = createLucideIcon('mail', __iconNode);\n\nexport default Mail;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M4 12h16', key: '1lakjw' }],\n ['path', { d: 'M4 18h16', key: '19g7jn' }],\n ['path', { d: 'M4 6h16', key: '1o0s65' }],\n];\n\n/**\n * @component @name Menu\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNNCAxMmgxNiIgLz4KICA8cGF0aCBkPSJNNCAxOGgxNiIgLz4KICA8cGF0aCBkPSJNNCA2aDE2IiAvPgo8L3N2Zz4K) - https://lucide.dev/icons/menu\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Menu = createLucideIcon('menu', __iconNode);\n\nexport default Menu;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M3 7V5a2 2 0 0 1 2-2h2', key: 'aa7l1z' }],\n ['path', { d: 'M17 3h2a2 2 0 0 1 2 2v2', key: '4qcy5o' }],\n ['path', { d: 'M21 17v2a2 2 0 0 1-2 2h-2', key: '6vwrx8' }],\n ['path', { d: 'M7 21H5a2 2 0 0 1-2-2v-2', key: 'ioqczr' }],\n ['circle', { cx: '12', cy: '12', r: '1', key: '41hilf' }],\n [\n 'path',\n {\n d: 'M18.944 12.33a1 1 0 0 0 0-.66 7.5 7.5 0 0 0-13.888 0 1 1 0 0 0 0 .66 7.5 7.5 0 0 0 13.888 0',\n key: '11ak4c',\n },\n ],\n];\n\n/**\n * @component @name ScanEye\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJNMyA3VjVhMiAyIDAgMCAxIDItMmgyIiAvPgogIDxwYXRoIGQ9Ik0xNyAzaDJhMiAyIDAgMCAxIDIgMnYyIiAvPgogIDxwYXRoIGQ9Ik0yMSAxN3YyYTIgMiAwIDAgMS0yIDJoLTIiIC8+CiAgPHBhdGggZD0iTTcgMjFINWEyIDIgMCAwIDEtMi0ydi0yIiAvPgogIDxjaXJjbGUgY3g9IjEyIiBjeT0iMTIiIHI9IjEiIC8+CiAgPHBhdGggZD0iTTE4Ljk0NCAxMi4zM2ExIDEgMCAwIDAgMC0uNjYgNy41IDcuNSAwIDAgMC0xMy44ODggMCAxIDEgMCAwIDAgMCAuNjYgNy41IDcuNSAwIDAgMCAxMy44ODggMCIgLz4KPC9zdmc+Cg==) - https://lucide.dev/icons/scan-eye\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ScanEye = createLucideIcon('scan-eye', __iconNode);\n\nexport default ScanEye;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'm21 21-4.34-4.34', key: '14j7rj' }],\n ['circle', { cx: '11', cy: '11', r: '8', key: '4ej97u' }],\n];\n\n/**\n * @component @name Search\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview ![img](data:image/svg+xml;base64,PHN2ZyAgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIgogIHdpZHRoPSIyNCIKICBoZWlnaHQ9IjI0IgogIHZpZXdCb3g9IjAgMCAyNCAyNCIKICBmaWxsPSJub25lIgogIHN0cm9rZT0iIzAwMCIgc3R5bGU9ImJhY2tncm91bmQtY29sb3I6ICNmZmY7IGJvcmRlci1yYWRpdXM6IDJweCIKICBzdHJva2Utd2lkdGg9IjIiCiAgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIgogIHN0cm9rZS1saW5lam9pbj0icm91bmQiCj4KICA8cGF0aCBkPSJtMjEgMjEtNC4zNC00LjM0IiAvPgogIDxjaXJjbGUgY3g9IjExIiBjeT0iMTEiIHI9IjgiIC8+Cjwvc3ZnPgo=) - https://lucide.dev/icons/search\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Search = createLucideIcon('search', __iconNode);\n\nexport default Search;\n","import * as React from 'react';\r\n\r\nimport { Mail } from 'lucide-react';\r\n\r\nimport { Input } from '@/components/ui/input';\r\nimport { EmailInputProps } from '@/types/global';\r\nimport { cn } from '@/lib/utils';\r\n\r\nconst EmailInput = ({ className, style, ...props }: EmailInputProps) => {\r\n const placeholder = props.placeholder ?? 'Placeholder text';\r\n\r\n // Controls\r\n const isEditable = props.isEditable ?? true;\r\n const isDisabled = props.isDisabled ?? false;\r\n const isReadonly = props.isReadonly ?? false;\r\n const isAutocomplete = props.isAutocomplete ?? false;\r\n\r\n const [error, setError] = React.useState<string | null>(null);\r\n\r\n React.useEffect(() => {\r\n if (!props.validateOnMount) return;\r\n setError(props.errorMessage || null);\r\n }, [props.errorMessage, props.validateOnMount]);\r\n\r\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n props.onChange?.(e);\r\n };\r\n\r\n return (\r\n <>\r\n <div className=\"flex justify-start items-center relative\">\r\n <Mail className=\"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-[#BDBDBD]\" />\r\n <Input\r\n type=\"email\"\r\n name={props.name}\r\n value={props.value}\r\n className={\r\n cn(className, error ? 'border-red-500' : '')\r\n }\r\n style={{\r\n ...style,\r\n borderColor: error ? '#f87171' : style?.borderColor\r\n }}\r\n autoComplete={isAutocomplete ? 'on' : 'off'}\r\n placeholder={placeholder}\r\n onChange={handleChange}\r\n disabled={isDisabled || !isEditable}\r\n readOnly={isReadonly}\r\n />\r\n </div>\r\n\r\n {error && (\r\n <p className=\"mt-1 text-xs text-red-500\">{error}</p>\r\n )}\r\n </>\r\n );\r\n}\r\n\r\nexport default EmailInput;","import * as React from 'react';\r\n\r\nimport { ScanEye } from 'lucide-react';\r\n\r\nimport { Input } from '@/components/ui/input';\r\nimport { PasswordInputProps } from '@/types/global';\r\nimport { cn } from '@/lib/utils';\r\n\r\nconst PasswordInput = ({ className, style, ...props }: PasswordInputProps) => {\r\n\r\n const placeholder = props.placeholder ?? 'Placeholder text';\r\n\r\n // Controls\r\n const isEditable = props.isEditable ?? true;\r\n const isDisabled = props.isDisabled ?? false;\r\n const isReadonly = props.isReadonly ?? false;\r\n const isAutocomplete = props.isAutocomplete ?? false;\r\n\r\n const [error, setError] = React.useState<string | null>(null);\r\n \r\n React.useEffect(() => {\r\n if (!props.validateOnMount) return;\r\n setError(props.errorMessage || null);\r\n }, [props.errorMessage, props.validateOnMount]);\r\n\r\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n props.onChange?.(e);\r\n };\r\n\r\n return (\r\n <>\r\n <div className=\"flex justify-start items-center relative\">\r\n <ScanEye className=\"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-[#BDBDBD]\" />\r\n <Input\r\n type=\"password\"\r\n id={props.name || 'password-field'}\r\n name={props.name}\r\n value={props.value}\r\n className={\r\n cn(className, error ? 'border-red-500' : '')\r\n }\r\n style={{\r\n ...style,\r\n borderColor: error ? '#f87171' : style?.borderColor\r\n }}\r\n autoComplete={isAutocomplete ? 'on' : 'off'}\r\n placeholder={placeholder}\r\n onChange={handleChange}\r\n disabled={isDisabled || !isEditable}\r\n readOnly={isReadonly}\r\n />\r\n </div>\r\n\r\n {error && (\r\n <p className=\"mt-1 text-xs text-red-500\">{error}</p>\r\n )}\r\n </>\r\n );\r\n}\r\n\r\nexport default PasswordInput;","import * as React from 'react';\r\n\r\nimport { Textarea as TextareaInput } from '@/components/ui/textarea';\r\nimport { TextAreaProps } from '@/types/global';\r\nimport { cn } from '@/lib/utils';\r\n\r\nconst Textarea = ({ className, style, ...props }: TextAreaProps) => {\r\n const placeholder = props.placeholder ?? 'Placeholder text';\r\n\r\n // Controls\r\n const isEditable = props.isEditable ?? true;\r\n const isDisabled = props.isDisabled ?? false;\r\n const isReadonly = props.isReadonly ?? false;\r\n const isAutocomplete = props.isAutocomplete ?? false;\r\n\r\n const [error, setError] = React.useState<string | null>(null);\r\n \r\n React.useEffect(() => {\r\n if (!props.validateOnMount) return;\r\n setError(props.errorMessage || null);\r\n }, [props.errorMessage, props.validateOnMount]);\r\n\r\n const handleChange = (e: React.ChangeEvent<HTMLTextAreaElement>) => {\r\n props.onChange?.(e);\r\n };\r\n\r\n return (\r\n <>\r\n <TextareaInput\r\n id={'textarea-field'}\r\n name={props.name}\r\n value={props.value}\r\n className={\r\n cn(className, error ? 'border-red-500' : '')\r\n }\r\n style={{\r\n ...style,\r\n borderColor: error ? '#f87171' : style?.borderColor\r\n }}\r\n autoComplete={isAutocomplete ? 'on' : 'off'}\r\n placeholder={placeholder}\r\n onChange={handleChange}\r\n disabled={isDisabled || !isEditable}\r\n readOnly={isReadonly}\r\n />\r\n\r\n {error && (\r\n <p className=\"mt-1 text-xs text-red-500\">{error}</p>\r\n )}\r\n </>\r\n );\r\n}\r\n\r\nexport default Textarea;","import * as React from \"react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Textarea({ className, ...props }: React.ComponentProps<\"textarea\">) {\n return (\n <textarea\n data-slot=\"textarea\"\n className={cn(\n \"border-input placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 flex field-sizing-content min-h-16 w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 md:text-sm\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Textarea }\n","\r\nimport * as React from 'react';\r\n\r\nimport { Input } from '@/components/ui/input';\r\nimport { UrlInputProps } from '@/types/global';\r\nimport { cn } from '@/lib/utils';\r\n\r\nconst UrlInput = ({ className, style, ...props }: UrlInputProps) => {\r\n const placeholder = props.placeholder ?? 'Placeholder text';\r\n\r\n // Controls\r\n const isEditable = props.isEditable ?? true;\r\n const isDisabled = props.isDisabled ?? false;\r\n const isReadonly = props.isReadonly ?? false;\r\n const isAutocomplete = props.isAutocomplete ?? false;\r\n\r\n const [error, setError] = React.useState<string | null>(null);\r\n \r\n React.useEffect(() => {\r\n if (!props.validateOnMount) return;\r\n setError(props.errorMessage || null);\r\n }, [props.errorMessage, props.validateOnMount]);\r\n\r\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n props.onChange?.(e);\r\n };\r\n\r\n return (\r\n <>\r\n <div className=\"flex justify-start items-center relative\">\r\n <div className=\"bg-[#E9E9E9] absolute px-10 text-center top-1/2 h-full justify-center items-center flex w-10 -translate-y-1/2 text-[#383838] font-[500] text-[12px]\">\r\n https://\r\n </div>\r\n <Input\r\n id={'url-field'}\r\n type=\"url\"\r\n name={props.name}\r\n value={props.value}\r\n className={\r\n cn(className, error ? 'border-red-500' : '')\r\n }\r\n style={{\r\n ...style,\r\n borderColor: error ? '#f87171' : style?.borderColor\r\n }}\r\n autoComplete={isAutocomplete ? 'on' : 'off'}\r\n placeholder={placeholder}\r\n onChange={handleChange}\r\n disabled={isDisabled || !isEditable}\r\n readOnly={isReadonly}\r\n />\r\n </div>\r\n\r\n {error && (\r\n <p className=\"mt-1 text-xs text-red-500\">{error}</p>\r\n )}\r\n </>\r\n );\r\n}\r\n\r\nexport default UrlInput;","import { useEffect, useState } from 'react';\r\nimport { Checkbox } from '@/components/ui/checkbox';\r\nimport { Label } from '@/components/ui/label';\r\nimport { CheckboxInputProps } from '@/types/global';\r\n\r\nconst CheckboxInput = ({ className, style, ...props }: CheckboxInputProps) => {\r\n const isEditable = props.isEditable ?? true;\r\n const isDisabled = props.isDisabled ?? false;\r\n\r\n const text = props.text ? props.text : 'Subscribe';\r\n\r\n const [error, setError] = useState<string | null>(null);\r\n\r\n useEffect(() => {\r\n if (!props.validateOnMount) return;\r\n setError(props.errorMessage || null);\r\n }, [props.errorMessage, props.validateOnMount]);\r\n \r\n const handleChange = (value: boolean) => {\r\n props.onChange?.(value);\r\n };\r\n\r\n return (\r\n <>\r\n <div className={className} style={style}>\r\n <div className=\"flex items-center space-x-2\">\r\n <Checkbox \r\n id={props.name || 'checkbox'}\r\n checked={!!props.value}\r\n onCheckedChange={handleChange}\r\n disabled={!isEditable || isDisabled}\r\n />\r\n <Label htmlFor={props.name || 'checkbox'}>{text}</Label>\r\n </div>\r\n </div>\r\n {error && (\r\n <p className=\"mt-1 text-xs text-red-500\">{error}</p>\r\n )}\r\n </>\r\n );\r\n};\r\n\r\nexport default CheckboxInput;","import * as React from \"react\"\nimport * as CheckboxPrimitive from \"@radix-ui/react-checkbox\"\nimport { CheckIcon } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Checkbox({\n className,\n ...props\n}: React.ComponentProps<typeof CheckboxPrimitive.Root>) {\n return (\n <CheckboxPrimitive.Root\n data-slot=\"checkbox\"\n className={cn(\n \"peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n >\n <CheckboxPrimitive.Indicator\n data-slot=\"checkbox-indicator\"\n className=\"flex items-center justify-center text-current transition-none\"\n >\n <CheckIcon className=\"size-3.5\" />\n </CheckboxPrimitive.Indicator>\n </CheckboxPrimitive.Root>\n )\n}\n\nexport { Checkbox }\n","import * as React from \"react\"\nimport * as LabelPrimitive from \"@radix-ui/react-label\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Label({\n className,\n ...props\n}: React.ComponentProps<typeof LabelPrimitive.Root>) {\n return (\n <LabelPrimitive.Root\n data-slot=\"label\"\n className={cn(\n \"flex items-center gap-2 text-sm leading-none font-medium select-none group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50\",\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Label }\n","'use client';\r\nimport { useEffect, useState } from 'react';\r\nimport { Label } from '@/components/ui/label';\r\nimport { RadioGroup, RadioGroupItem } from '@/components/ui/radio-group';\r\nimport { RadioInputProps } from '@/types/global';\r\n\r\nexport type Option = {\r\n label: string;\r\n value: string;\r\n};\r\n\r\nconst RadioInput = ({\r\n className,\r\n style,\r\n defaultValue,\r\n onChange,\r\n data = [],\r\n dataKey,\r\n dataLabel,\r\n ...props\r\n}: RadioInputProps) => {\r\n\r\n const [error, setError] = useState<string | null>(null);\r\n\r\n useEffect(() => {\r\n if (!props.validateOnMount) return;\r\n setError(props.errorMessage || null);\r\n }, [props.errorMessage, props.validateOnMount]);\r\n\r\n const options: Option[] = (data || []).map((item: any) => ({\r\n value: item[dataKey || 'value'],\r\n label: item[dataLabel || 'label'],\r\n }));\r\n\r\n const handleChange = (value: string) => {\r\n onChange?.(value);\r\n };\r\n\r\n // Ensure defaultValue passed to RadioGroup is a string or undefined\r\n const resolvedDefaultValue = (typeof defaultValue === 'string' ? defaultValue : undefined) ?? options[0]?.value;\r\n\r\n return (\r\n <>\r\n <div className={className} style={style}>\r\n <RadioGroup\r\n defaultValue={resolvedDefaultValue}\r\n onValueChange={handleChange}\r\n >\r\n {\r\n options.length === 0 && (\r\n <div className=\"text-sm text-gray-500\">No options available</div>\r\n )\r\n }\r\n {options.map((item) => (\r\n <div className=\"flex items-center space-x-2\" key={item.value}>\r\n <RadioGroupItem value={item.value} id={`radio-${item.value}`} />\r\n <Label htmlFor={`radio-${item.value}`}>{item.label}</Label>\r\n </div>\r\n ))}\r\n </RadioGroup>\r\n </div>\r\n {error && (\r\n <p className=\"mt-1 text-xs text-red-500\">{error}</p>\r\n )}\r\n </>\r\n );\r\n};\r\n\r\nexport default RadioInput;\r\n","import * as React from \"react\"\nimport * as RadioGroupPrimitive from \"@radix-ui/react-radio-group\"\nimport { CircleIcon } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction RadioGroup({\n className,\n ...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Root>) {\n return (\n <RadioGroupPrimitive.Root\n data-slot=\"radio-group\"\n className={cn(\"grid gap-3\", className)}\n {...props}\n />\n )\n}\n\nfunction RadioGroupItem({\n className,\n ...props\n}: React.ComponentProps<typeof RadioGroupPrimitive.Item>) {\n return (\n <RadioGroupPrimitive.Item\n data-slot=\"radio-group-item\"\n className={cn(\n \"border-input text-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 aspect-square size-4 shrink-0 rounded-full border shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n >\n <RadioGroupPrimitive.Indicator\n data-slot=\"radio-group-indicator\"\n className=\"relative flex items-center justify-center\"\n >\n <CircleIcon className=\"fill-primary absolute top-1/2 left-1/2 size-2 -translate-x-1/2 -translate-y-1/2\" />\n </RadioGroupPrimitive.Indicator>\n </RadioGroupPrimitive.Item>\n )\n}\n\nexport { RadioGroup, RadioGroupItem }\n","'use client';\r\n\r\nimport { useCallback, useState } from 'react';\r\n\r\nimport { Checkbox } from '@/components/ui/checkbox';\r\nimport { Label } from '@/components/ui/label';\r\nimport { cn } from '@/lib/utils';\r\nimport { MultiCheckboxInputProps } from '@/types/global';\r\n\r\ntype Option = {\r\n value: string;\r\n label: string;\r\n};\r\n\r\nconst MultiCheckbox = ({\r\n className,\r\n style,\r\n data = [],\r\n dataKey = 'value',\r\n dataLabel = 'label',\r\n value: propValue = {},\r\n onChange,\r\n isEditable = true,\r\n isDisabled = false,\r\n}: MultiCheckboxInputProps) => {\r\n const [value, setValue] = useState<Record<string, boolean>>(propValue);\r\n\r\n const options: Option[] = (data || []).map((item: any) => ({\r\n value: item[dataKey || 'value'],\r\n label: item[dataLabel || 'label'],\r\n }));\r\n\r\n const handleChange = useCallback(\r\n (key: string, checked: boolean) => {\r\n setValue((prev) => {\r\n const newValue = { ...prev, [key]: checked };\r\n onChange?.(newValue);\r\n return newValue;\r\n });\r\n },\r\n [onChange]\r\n );\r\n\r\n return (\r\n <div\r\n className={\r\n cn('flex flex-col gap-3', className)\r\n }\r\n style={style}\r\n >\r\n {\r\n options.length === 0 && <p className=\"text-sm text-gray-500\">No options available.</p>\r\n }\r\n {options.map((opt) => (\r\n <div className=\"flex items-center space-x-2\" key={opt.value}>\r\n <Checkbox\r\n id={opt.value}\r\n checked={!!value[opt.value]}\r\n onCheckedChange={(checked) => handleChange(opt.value, checked === true)}\r\n disabled={!isEditable || isDisabled}\r\n />\r\n <Label htmlFor={opt.value}>{opt.label}</Label>\r\n </div>\r\n ))}\r\n </div>\r\n );\r\n};\r\n\r\nexport default MultiCheckbox;\r\n","import { useEffect, useState } from 'react';\r\nimport TinyMceEditor from '@/components/Global/TinyMceEditor';\r\nimport { RichTextInputProps } from '@/types/global';\r\nimport { cn } from '@/lib/utils';\r\n\r\nexport default function RichText({ className, style, ...props }: RichTextInputProps) {\r\n const [error, setError] = useState<string | null>(null);\r\n\r\n useEffect(() => {\r\n if (!props.validateOnMount) return;\r\n setError(props.errorMessage || null);\r\n }, [props.errorMessage, props.validateOnMount]);\r\n \r\n return (\r\n <div\r\n className={\r\n cn(className, error ? 'border-red-500' : '')\r\n }\r\n style={{\r\n ...style,\r\n borderColor: error ? '#f87171' : style?.borderColor\r\n }}\r\n >\r\n <TinyMceEditor onChange={(content) => props.onChange?.(content)} value={props.value} isDefault={true} />\r\n {error && (\r\n <p className=\"mt-1 text-xs text-red-500\">{error}</p>\r\n )}\r\n </div>\r\n );\r\n}\r\n","'use client';\r\n\r\nimport { useMemo, useRef } from 'react';\r\n\r\nimport { Editor } from '@tinymce/tinymce-react';\r\n\r\nexport default function MyEditor({\r\n value,\r\n onChange,\r\n isDefault\r\n}: {\r\n value?: string;\r\n onChange?: (value: string) => void;\r\n isDefault?: boolean;\r\n}) {\r\n const editorRef = useRef<any>(null);\r\n\r\n function stripOuterP(html: string): string {\r\n const trimmedHtml = html.trim();\r\n if (!trimmedHtml) return '';\r\n const div = document.createElement('div');\r\n div.innerHTML = trimmedHtml;\r\n const firstChild = div.firstElementChild;\r\n if (div.childElementCount === 1 && firstChild?.tagName === 'P') {\r\n return firstChild.innerHTML;\r\n }\r\n return trimmedHtml;\r\n }\r\n\r\n const isDefaultToolbar = useMemo(() => {\r\n let toolbar = 'undo redo | formatselect | bold italic forecolor';\r\n if (isDefault) {\r\n toolbar = 'undo redo | blocks | ' +\r\n 'bold italic forecolor | alignleft aligncenter ' +\r\n 'alignright alignjustify | bullist numlist outdent indent | ' +\r\n 'removeformat | help';\r\n }\r\n return toolbar;\r\n }, [isDefault]);\r\n\r\n return (\r\n <Editor\r\n apiKey={process.env.NEXT_PUBLIC_TINYMCE_API_KEY}\r\n tinymceScriptSrc={process.env.NEXT_PUBLIC_TINYMCE_SCRIPT_SRC}\r\n onInit={(_evt, editor) => (editorRef.current = editor)}\r\n value={value}\r\n licenseKey='gpl'\r\n init={{\r\n height: 300,\r\n menubar: false,\r\n forced_root_block: false,\r\n plugins: [\r\n 'advlist',\r\n 'autolink',\r\n 'lists',\r\n 'link',\r\n 'image',\r\n 'charmap',\r\n 'preview',\r\n 'anchor',\r\n 'searchreplace',\r\n 'visualblocks',\r\n 'code',\r\n 'fullscreen',\r\n 'insertdatetime',\r\n 'media',\r\n 'table',\r\n 'help',\r\n 'wordcount',\r\n ],\r\n toolbar: isDefaultToolbar,\r\n content_style: `\r\n body {\r\n outline: none;\r\n }\r\n `,\r\n }}\r\n onEditorChange={(content) => onChange?.(stripOuterP(content))}\r\n />\r\n );\r\n}\r\n","import * as React from 'react';\r\n\r\nimport {\r\n Select,\r\n SelectContent,\r\n SelectItem,\r\n SelectTrigger,\r\n SelectValue,\r\n} from '@/components/ui/select';\r\nimport { cn } from '@/lib/utils';\r\nimport { SelectDropdownInputProps } from '@/types/global';\r\n\r\nconst Dropdown = ({ className, style, ...props }: SelectDropdownInputProps) => {\r\n const list = props.data || [];\r\n const placeholder = props.placeholder ? props.placeholder : 'Placeholder text';\r\n\r\n // Controls\r\n const isEditable = props.isEditable ?? true;\r\n const isDisabled = props.isDisabled ?? false;\r\n const isReadonly = props.isReadonly ?? false;\r\n\r\n const [error, setError] = React.useState<string | null>(null);\r\n\r\n React.useEffect(() => {\r\n if (!props.validateOnMount) return;\r\n setError(props.errorMessage || null);\r\n }, [props.errorMessage, props.validateOnMount]);\r\n\r\n const handleChange = (value: string) => {\r\n props.onChange?.(value);\r\n };\r\n\r\n const dataKey = props.dataKey || 'value';\r\n const dataLabel = props.dataLabel || 'label';\r\n const options = list.map((item: any) => ({\r\n value: item[dataKey],\r\n label: item[dataLabel]\r\n }));\r\n\r\n return (\r\n <>\r\n <Select name={props.name} value={props.value} onValueChange={handleChange} disabled={isDisabled || !isEditable}>\r\n <SelectTrigger\r\n id={props.name || 'select-field'}\r\n className={cn(className, error ? 'border-red-500' : '')}\r\n style={{\r\n ...style,\r\n borderColor: error ? '#f87171' : style?.borderColor\r\n }}\r\n aria-readonly={isReadonly}\r\n >\r\n <SelectValue placeholder={placeholder} />\r\n </SelectTrigger>\r\n <SelectContent>\r\n {options.map((opt: { value: string; label: string }) => (\r\n <SelectItem key={opt.value} value={opt.value}>\r\n {opt.label}\r\n </SelectItem>\r\n ))}\r\n </SelectContent>\r\n </Select>\r\n {error && (\r\n <p className=\"mt-1 text-xs text-red-500\">{error}</p>\r\n )}\r\n </>\r\n );\r\n};\r\n\r\nexport default Dropdown;","import * as React from \"react\"\nimport * as SelectPrimitive from \"@radix-ui/react-select\"\nimport { CheckIcon, ChevronDownIcon, ChevronUpIcon } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Select({\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Root>) {\n return <SelectPrimitive.Root data-slot=\"select\" {...props} />\n}\n\nfunction SelectGroup({\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Group>) {\n return <SelectPrimitive.Group data-slot=\"select-group\" {...props} />\n}\n\nfunction SelectValue({\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Value>) {\n return <SelectPrimitive.Value data-slot=\"select-value\" {...props} />\n}\n\nfunction SelectTrigger({\n className,\n size = \"default\",\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Trigger> & {\n size?: \"sm\" | \"default\"\n}) {\n return (\n <SelectPrimitive.Trigger\n data-slot=\"select-trigger\"\n data-size={size}\n className={cn(\n \"border-input data-[placeholder]:text-muted-foreground [&_svg:not([class*='text-'])]:text-muted-foreground focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive dark:bg-input/30 dark:hover:bg-input/50 flex w-fit items-center justify-between gap-2 rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-xs transition-[color,box-shadow] outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-9 data-[size=sm]:h-8 *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-2 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n >\n {children}\n <SelectPrimitive.Icon asChild>\n <ChevronDownIcon className=\"size-4 opacity-50\" />\n </SelectPrimitive.Icon>\n </SelectPrimitive.Trigger>\n )\n}\n\nfunction SelectContent({\n className,\n children,\n position = \"popper\",\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Content>) {\n return (\n <SelectPrimitive.Portal>\n <SelectPrimitive.Content\n data-slot=\"select-content\"\n className={cn(\n \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-(--radix-select-content-available-height) min-w-[8rem] origin-(--radix-select-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border shadow-md\",\n position === \"popper\" &&\n \"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1\",\n className\n )}\n position={position}\n {...props}\n >\n <SelectScrollUpButton />\n <SelectPrimitive.Viewport\n className={cn(\n \"p-1\",\n position === \"popper\" &&\n \"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)] scroll-my-1\"\n )}\n >\n {children}\n </SelectPrimitive.Viewport>\n <SelectScrollDownButton />\n </SelectPrimitive.Content>\n </SelectPrimitive.Portal>\n )\n}\n\nfunction SelectLabel({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Label>) {\n return (\n <SelectPrimitive.Label\n data-slot=\"select-label\"\n className={cn(\"text-muted-foreground px-2 py-1.5 text-xs\", className)}\n {...props}\n />\n )\n}\n\nfunction SelectItem({\n className,\n children,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Item>) {\n return (\n <SelectPrimitive.Item\n data-slot=\"select-item\"\n className={cn(\n \"focus:bg-accent focus:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex w-full cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2\",\n className\n )}\n {...props}\n >\n <span className=\"absolute right-2 flex size-3.5 items-center justify-center\">\n <SelectPrimitive.ItemIndicator>\n <CheckIcon className=\"size-4\" />\n </SelectPrimitive.ItemIndicator>\n </span>\n <SelectPrimitive.ItemText>{children}</SelectPrimitive.ItemText>\n </SelectPrimitive.Item>\n )\n}\n\nfunction SelectSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.Separator>) {\n return (\n <SelectPrimitive.Separator\n data-slot=\"select-separator\"\n className={cn(\"bg-border pointer-events-none -mx-1 my-1 h-px\", className)}\n {...props}\n />\n )\n}\n\nfunction SelectScrollUpButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>) {\n return (\n <SelectPrimitive.ScrollUpButton\n data-slot=\"select-scroll-up-button\"\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className\n )}\n {...props}\n >\n <ChevronUpIcon className=\"size-4\" />\n </SelectPrimitive.ScrollUpButton>\n )\n}\n\nfunction SelectScrollDownButton({\n className,\n ...props\n}: React.ComponentProps<typeof SelectPrimitive.ScrollDownButton>) {\n return (\n <SelectPrimitive.ScrollDownButton\n data-slot=\"select-scroll-down-button\"\n className={cn(\n \"flex cursor-default items-center justify-center py-1\",\n className\n )}\n {...props}\n >\n <ChevronDownIcon className=\"size-4\" />\n </SelectPrimitive.ScrollDownButton>\n )\n}\n\nexport {\n Select,\n SelectContent,\n SelectGroup,\n SelectItem,\n SelectLabel,\n SelectScrollDownButton,\n SelectScrollUpButton,\n SelectSeparator,\n SelectTrigger,\n SelectValue,\n}\n","import { useEffect, useState } from 'react';\r\nimport { Label } from '@/components/ui/label';\r\nimport { Switch } from '@/components/ui/switch';\r\nimport { SwitchToggleInputProps } from '@/types/global';\r\n\r\nconst SwitchToggle = ({ className, style, ...props }: SwitchToggleInputProps) => {\r\n const isEditable = props.isEditable ?? true;\r\n const isDisabled = props.isDisabled ?? false;\r\n\r\n const [error, setError] = useState<string | null>(null);\r\n\r\n useEffect(() => {\r\n if (!props.validateOnMount) return;\r\n setError(props.errorMessage || null);\r\n }, [props.errorMessage, props.validateOnMount]);\r\n\r\n const handleChange = (value: boolean) => {\r\n props.onChange?.(value);\r\n };\r\n\r\n return (\r\n <>\r\n <div className={className} style={style}>\r\n <div className=\"flex items-center space-x-2 mb-2\">\r\n <Switch\r\n id={props.name || 'switch'} \r\n checked={!!props.value}\r\n onCheckedChange={handleChange}\r\n disabled={isDisabled || !isEditable}\r\n />\r\n <Label htmlFor={props.name || 'switch'}>{props.text}</Label>\r\n </div>\r\n </div>\r\n {error && (\r\n <p className=\"mt-1 text-xs text-red-500\">{error}</p>\r\n )}\r\n </>\r\n );\r\n};\r\n\r\nexport default SwitchToggle;","import * as React from \"react\"\nimport * as SwitchPrimitive from \"@radix-ui/react-switch\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Switch({\n className,\n ...props\n}: React.ComponentProps<typeof SwitchPrimitive.Root>) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n className={cn(\n \"peer data-[state=checked]:bg-primary data-[state=unchecked]:bg-input focus-visible:border-ring focus-visible:ring-ring/50 dark:data-[state=unchecked]:bg-input/80 inline-flex h-[1.15rem] w-8 shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50\",\n className\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className={cn(\n \"bg-background dark:data-[state=unchecked]:bg-foreground dark:data-[state=checked]:bg-primary-foreground pointer-events-none block size-4 rounded-full ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0\"\n )}\n />\n </SwitchPrimitive.Root>\n )\n}\n\nexport { Switch }\n","import { cn } from '@/lib/utils';\r\nimport { PhoneInputProps } from '@/types/global';\r\nimport * as React from 'react';\r\n\r\nimport { PhoneInput as PhoneInputField } from 'react-international-phone';\r\nimport 'react-international-phone/style.css';\r\n\r\nconst PhoneInput = ({ className, style, ...props }: PhoneInputProps) => {\r\n const placeholder = props.placeholder ?? 'Enter phone number';\r\n\r\n // Controls\r\n const isEditable = props.isEditable ?? true;\r\n const isDisabled = props.isDisabled ?? false;\r\n\r\n const [error, setError] = React.useState<string | null>(null);\r\n \r\n React.useEffect(() => {\r\n if (!props.validateOnMount) return;\r\n setError(props.errorMessage || null);\r\n }, [props.errorMessage, props.validateOnMount]);\r\n\r\n const handleChange = (val: any) => {\r\n props.onChange?.(val);\r\n };\r\n\r\n return (\r\n <>\r\n <PhoneInputField\r\n defaultCountry=\"in\"\r\n name={props.name}\r\n value={props.value}\r\n className={\r\n cn(className, error ? 'border-red-500' : '')\r\n }\r\n style={{\r\n ...style,\r\n borderColor: error ? '#f87171' : style?.borderColor\r\n }}\r\n onChange={(phone: string) => handleChange(phone)}\r\n inputProps={{\r\n id: 'phone-field',\r\n }}\r\n placeholder={placeholder}\r\n disabled={isDisabled || !isEditable}\r\n />\r\n\r\n {error && (\r\n <p className=\"mt-1 text-xs text-red-500\">{error}</p>\r\n )}\r\n </>\r\n );\r\n}\r\n\r\nexport default PhoneInput;","import * as React from 'react';\r\n\r\nimport { Search } from 'lucide-react';\r\n\r\nimport { Input } from '@/components/ui/input';\r\nimport { SearchInputProps } from '@/types/global';\r\nimport { cn } from '@/lib/utils';\r\n\r\nconst SearchInput = ({ className, style, ...props }: SearchInputProps) => {\r\n const placeholder = props.placeholder ?? 'Placeholder text';\r\n\r\n // Controls\r\n const isEditable = props.isEditable ?? true;\r\n const isDisabled = props.isDisabled ?? false;\r\n const isReadonly = props.isReadonly ?? false;\r\n const isAutocomplete = props.isAutocomplete ?? false;\r\n\r\n const [error, setError] = React.useState<string | null>(null);\r\n\r\n React.useEffect(() => {\r\n if (!props.validateOnMount) return;\r\n setError(props.errorMessage || null);\r\n }, [props.errorMessage, props.validateOnMount]);\r\n\r\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n props.onChange?.(e);\r\n };\r\n\r\n return (\r\n <>\r\n <div className=\"flex justify-start items-center relative\">\r\n <Search className=\"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-[#BDBDBD]\" />\r\n <Input\r\n type=\"text\"\r\n id={props.name || 'text-field'}\r\n name={props.name}\r\n value={props.value}\r\n className={\r\n cn(className, error ? 'border-red-500' : '')\r\n }\r\n style={{\r\n ...style,\r\n borderColor: error ? '#f87171' : style?.borderColor\r\n }}\r\n autoComplete={isAutocomplete ? 'on' : 'off'}\r\n placeholder={placeholder}\r\n onChange={handleChange}\r\n disabled={isDisabled || !isEditable}\r\n readOnly={isReadonly}\r\n />\r\n </div>\r\n\r\n {error && (\r\n <p className=\"mt-1 text-xs text-red-500\">{error}</p>\r\n )}\r\n </>\r\n );\r\n}\r\n\r\nexport default SearchInput;","import { useEffect, useState } from 'react';\r\n\r\nimport { Input } from '@/components/ui/input';\r\nimport { cn } from '@/lib/utils';\r\nimport { FileInputProps } from '@/types/global';\r\n\r\nconst FileInput = ({ className, style, ...props }: FileInputProps) => {\r\n const placeholder = props.placeholder ?? 'Placeholder text';\r\n const [error, setError] = useState<string | null>(null);\r\n\r\n useEffect(() => {\r\n if (!props.validateOnMount) return;\r\n setError(props.errorMessage || null);\r\n }, [props.errorMessage, props.validateOnMount]);\r\n\r\n return (\r\n <div className=\"d-flex items-center relative align-middle\">\r\n <Input\r\n type=\"file\"\r\n id=\"file\"\r\n name={props.name}\r\n value={props.value}\r\n className={\r\n cn(className, error ? 'border-red-500' : '')\r\n }\r\n style={{\r\n ...style,\r\n borderColor: error ? '#f87171' : style?.borderColor\r\n }}\r\n autoComplete=\"off\"\r\n placeholder={placeholder}\r\n onChange={(e) => {\r\n props.onChange?.(e);\r\n }}\r\n />\r\n \r\n {error && (\r\n <p className=\"mt-1 text-xs text-red-500\">{error}</p>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nexport default FileInput;","'use client';\r\nimport React, { useEffect } from 'react';\r\n\r\nimport { Calendar } from 'lucide-react';\r\n\r\nimport { Input } from '@/components/ui/input';\r\nimport { DatePickerInputProps } from '@/types/global';\r\nimport { cn } from '@/lib/utils';\r\n\r\nexport default function DatePicker({ className, style, ...props }: DatePickerInputProps) {\r\n const placeholder = props.placeholder ?? 'Placeholder text';\r\n\r\n // Controls (now option objects)\r\n const minimumDate = props.minimumDate ?? 'none';\r\n const customMinimumDate = props.customMinimumDate ?? '';\r\n\r\n const maximumDate = props.maximumDate ?? 'none';\r\n const customMaximumDate = props.customMaximumDate ?? '';\r\n\r\n const isEditable = props.isEditable ?? true;\r\n const isDisabled = props.isDisabled ?? false;\r\n const isReadonly = props.isReadonly ?? false;\r\n const isAutocomplete = props.isAutocomplete ?? false;\r\n\r\n const [error, setError] = React.useState<string | null>(null);\r\n\r\n const resolveDate = (option: any, customOption?: any): string | undefined => {\r\n if (!option) return undefined;\r\n\r\n switch (option) {\r\n case 'today':\r\n return new Date().toISOString().split('T')[0];\r\n case 'custom':\r\n return customOption ?? undefined;\r\n case 'none':\r\n default:\r\n return undefined;\r\n }\r\n };\r\n\r\n const minDate = resolveDate(minimumDate, customMinimumDate);\r\n const maxDate = resolveDate(maximumDate, customMaximumDate);\r\n \r\n useEffect(() => {\r\n if (!props.validateOnMount) return;\r\n setError(props.errorMessage || null);\r\n }, [props.errorMessage, props.validateOnMount]);\r\n\r\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n props.onChange?.(e);\r\n };\r\n\r\n return (\r\n <>\r\n <div className=\"flex justify-start items-center relative\">\r\n <Calendar className=\"absolute left-3 top-1/2 h-4 w-4 -translate-y-1/2 text-[#BDBDBD]\" />\r\n <Input\r\n type=\"date\"\r\n id=\"date\"\r\n autoComplete={isAutocomplete ? 'on' : 'off'}\r\n onChange={handleChange}\r\n disabled={isDisabled || !isEditable}\r\n name={props.name}\r\n value={props.value}\r\n className={\r\n cn(className, error ? 'border-red-500' : '',\r\n 'appearance-auto'\r\n )\r\n }\r\n style={{\r\n ...style,\r\n borderColor: error ? '#f87171' : style?.borderColor\r\n }}\r\n readOnly={isReadonly}\r\n placeholder={placeholder}\r\n min={minDate}\r\n max={maxDate}\r\n />\r\n </div>\r\n\r\n {error && <p className=\"mt-1 text-xs text-red-500\">{error}</p>}\r\n </>\r\n );\r\n}\r\n","\r\n'use client';\r\nimport * as React from 'react';\r\n\r\nimport { addDays, format } from 'date-fns';\r\nimport { DateRange as DateRangeProps } from 'react-day-picker';\r\n\r\nimport { Button } from '@/components/ui/button';\r\nimport { Calendar } from '@/components/ui/calendar';\r\nimport {\r\n Popover,\r\n PopoverContent,\r\n PopoverTrigger,\r\n} from '@/components/ui/popover';\r\nimport { cn } from '@/lib/utils';\r\nimport { DateRangeInputProps } from '@/types/global';\r\n\r\nconst DateRange = ({ className, style, ...props }: DateRangeInputProps) => {\r\n const [error, setError] = React.useState<string | null>(null);\r\n \r\n const isDateRange = (val: any): val is DateRangeProps => !!val && val.from instanceof Date;\r\n\r\n const [date, setDate] = React.useState<DateRangeProps | undefined>(\r\n isDateRange(props.value)\r\n ? props.value\r\n : {\r\n from: new Date(),\r\n to: addDays(new Date(), 7),\r\n }\r\n );\r\n \r\n React.useEffect(() => {\r\n if (!props.validateOnMount) return;\r\n setError(props.errorMessage || null);\r\n }, [props.errorMessage, props.validateOnMount]);\r\n\r\n \r\n const handleChange = (value: DateRangeProps | undefined) => {\r\n setDate(value);\r\n if (value) {\r\n props.onChange?.(value);\r\n }\r\n };\r\n\r\n return (\r\n <>\r\n <div className={className} style={style}>\r\n <Popover>\r\n <PopoverTrigger asChild>\r\n <Button\r\n id=\"date\"\r\n variant={'outline'}\r\n className={cn(\r\n 'w-[300px] justify-start text-left font-normal text-[11px]',\r\n !date && 'text-muted-foreground'\r\n )}\r\n >\r\n {date?.from ? (\r\n date.to ? (\r\n <>\r\n {format(date.from, 'LLL dd, y')} -{' '}\r\n {format(date.to, 'LLL dd, y')}\r\n </>\r\n ) : (\r\n format(date.from, 'LLL dd, y')\r\n )\r\n ) : (\r\n <span>Pick a date range</span>\r\n )}\r\n </Button>\r\n </PopoverTrigger>\r\n <PopoverContent className=\"w-auto p-0\" align=\"start\">\r\n <Calendar\r\n mode=\"range\"\r\n defaultMonth={date?.from}\r\n selected={date}\r\n onSelect={handleChange}\r\n numberOfMonths={2}\r\n />\r\n </PopoverContent>\r\n </Popover>\r\n </div>\r\n {error && <p className=\"mt-1 text-xs text-red-500\">{error}</p>}\r\n </>\r\n );\r\n}\r\n\r\nexport default DateRange;","import * as React from \"react\"\nimport {\n ChevronDownIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n} from \"lucide-react\"\nimport { DayButton, DayPicker, getDefaultClassNames } from \"react-day-picker\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button, buttonVariants } from \"@/components/ui/button\"\n\nfunction Calendar({\n className,\n classNames,\n showOutsideDays = true,\n captionLayout = \"label\",\n buttonVariant = \"ghost\",\n formatters,\n components,\n ...props\n}: React.ComponentProps<typeof DayPicker> & {\n buttonVariant?: React.ComponentProps<typeof Button>[\"variant\"]\n}) {\n const defaultClassNames = getDefaultClassNames()\n\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n className={cn(\n \"bg-background group/calendar p-3 [--cell-size:--spacing(8)] [[data-slot=card-content]_&]:bg-transparent [[data-slot=popover-content]_&]:bg-transparent\",\n String.raw`rtl:**:[.rdp-button\\_next>svg]:rotate-180`,\n String.raw`rtl:**:[.rdp-button\\_previous>svg]:rotate-180`,\n className\n )}\n captionLayout={captionLayout}\n formatters={{\n formatMonthDropdown: (date) =>\n date.toLocaleString(\"default\", { month: \"short\" }),\n ...formatters,\n }}\n classNames={{\n root: cn(\"w-fit\", defaultClassNames.root),\n months: cn(\n \"flex gap-4 flex-col md:flex-row relative\",\n defaultClassNames.months\n ),\n month: cn(\"flex flex-col w-full gap-4\", defaultClassNames.month),\n nav: cn(\n \"flex items-center gap-1 w-full absolute top-0 inset-x-0 justify-between\",\n defaultClassNames.nav\n ),\n button_previous: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_previous\n ),\n button_next: cn(\n buttonVariants({ variant: buttonVariant }),\n \"size-(--cell-size) aria-disabled:opacity-50 p-0 select-none\",\n defaultClassNames.button_next\n ),\n month_caption: cn(\n \"flex items-center justify-center h-(--cell-size) w-full px-(--cell-size)\",\n defaultClassNames.month_caption\n ),\n dropdowns: cn(\n \"w-full flex items-center text-sm font-medium justify-center h-(--cell-size) gap-1.5\",\n defaultClassNames.dropdowns\n ),\n dropdown_root: cn(\n \"relative has-focus:border-ring border border-input shadow-xs has-focus:ring-ring/50 has-focus:ring-[3px] rounded-md\",\n defaultClassNames.dropdown_root\n ),\n dropdown: cn(\n \"absolute bg-popover inset-0 opacity-0\",\n defaultClassNames.dropdown\n ),\n caption_label: cn(\n \"select-none font-medium\",\n captionLayout === \"label\"\n ? \"text-sm\"\n : \"rounded-md pl-2 pr-1 flex items-center gap-1 text-sm h-8 [&>svg]:text-muted-foreground [&>svg]:size-3.5\",\n defaultClassNames.caption_label\n ),\n table: \"w-full border-collapse\",\n weekdays: cn(\"flex\", defaultClassNames.weekdays),\n weekday: cn(\n \"text-muted-foreground rounded-md flex-1 font-normal text-[0.8rem] select-none\",\n defaultClassNames.weekday\n ),\n week: cn(\"flex w-full mt-2\", defaultClassNames.week),\n week_number_header: cn(\n \"select-none w-(--cell-size)\",\n defaultClassNames.week_number_header\n ),\n week_number: cn(\n \"text-[0.8rem] select-none text-muted-foreground\",\n defaultClassNames.week_number\n ),\n day: cn(\n \"relative w-full h-full p-0 text-center [&:first-child[data-selected=true]_button]:rounded-l-md [&:last-child[data-selected=true]_button]:rounded-r-md group/day aspect-square select-none\",\n defaultClassNames.day\n ),\n range_start: cn(\n \"rounded-l-md bg-accent\",\n defaultClassNames.range_start\n ),\n range_middle: cn(\"rounded-none\", defaultClassNames.range_middle),\n range_end: cn(\"rounded-r-md bg-accent\", defaultClassNames.range_end),\n today: cn(\n \"bg-accent text-accent-foreground rounded-md data-[selected=true]:rounded-none\",\n defaultClassNames.today\n ),\n outside: cn(\n \"text-muted-foreground aria-selected:text-muted-foreground\",\n defaultClassNames.outside\n ),\n disabled: cn(\n \"text-muted-foreground opacity-50\",\n defaultClassNames.disabled\n ),\n hidden: cn(\"invisible\", defaultClassNames.hidden),\n ...classNames,\n }}\n components={{\n Root: ({ className, rootRef, ...props }) => {\n return (\n <div\n data-slot=\"calendar\"\n ref={rootRef}\n className={cn(className)}\n {...props}\n />\n )\n },\n Chevron: ({ className, orientation, ...props }) => {\n if (orientation === \"left\") {\n return (\n <ChevronLeftIcon className={cn(\"size-4\", className)} {...props} />\n )\n }\n\n if (orientation === \"right\") {\n return (\n <ChevronRightIcon\n className={cn(\"size-4\", className)}\n {...props}\n />\n )\n }\n\n return (\n <ChevronDownIcon className={cn(\"size-4\", className)} {...props} />\n )\n },\n DayButton: CalendarDayButton,\n WeekNumber: ({ children, ...props }) => {\n return (\n <td {...props}>\n <div className=\"flex size-(--cell-size) items-center justify-center text-center\">\n {children}\n </div>\n </td>\n )\n },\n ...components,\n }}\n {...props}\n />\n )\n}\n\nfunction CalendarDayButton({\n className,\n day,\n modifiers,\n ...props\n}: React.ComponentProps<typeof DayButton>) {\n const defaultClassNames = getDefaultClassNames()\n\n const ref = React.useRef<HTMLButtonElement>(null)\n React.useEffect(() => {\n if (modifiers.focused) ref.current?.focus()\n }, [modifiers.focused])\n\n return (\n <Button\n ref={ref}\n variant=\"ghost\"\n size=\"icon\"\n data-day={day.date.toLocaleDateString()}\n data-selected-single={\n modifiers.selected &&\n !modifiers.range_start &&\n !modifiers.range_end &&\n !modifiers.range_middle\n }\n data-range-start={modifiers.range_start}\n data-range-end={modifiers.range_end}\n data-range-middle={modifiers.range_middle}\n className={cn(\n \"data-[selected-single=true]:bg-primary data-[selected-single=true]:text-primary-foreground data-[range-middle=true]:bg-accent data-[range-middle=true]:text-accent-foreground data-[range-start=true]:bg-primary data-[range-start=true]:text-primary-foreground data-[range-end=true]:bg-primary data-[range-end=true]:text-primary-foreground group-data-[focused=true]/day:border-ring group-data-[focused=true]/day:ring-ring/50 dark:hover:text-accent-foreground flex aspect-square size-auto w-full min-w-(--cell-size) flex-col gap-1 leading-none font-normal group-data-[focused=true]/day:relative group-data-[focused=true]/day:z-10 group-data-[focused=true]/day:ring-[3px] data-[range-end=true]:rounded-md data-[range-end=true]:rounded-r-md data-[range-middle=true]:rounded-none data-[range-start=true]:rounded-md data-[range-start=true]:rounded-l-md [&>span]:text-xs [&>span]:opacity-70\",\n defaultClassNames.day,\n className\n )}\n {...props}\n />\n )\n}\n\nexport { Calendar, CalendarDayButton }\n","import * as React from \"react\"\nimport * as PopoverPrimitive from \"@radix-ui/react-popover\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction Popover({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Root>) {\n return <PopoverPrimitive.Root data-slot=\"popover\" {...props} />\n}\n\nfunction PopoverTrigger({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Trigger>) {\n return <PopoverPrimitive.Trigger data-slot=\"popover-trigger\" {...props} />\n}\n\nfunction PopoverContent({\n className,\n align = \"center\",\n sideOffset = 4,\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Content>) {\n return (\n <PopoverPrimitive.Portal>\n <PopoverPrimitive.Content\n data-slot=\"popover-content\"\n align={align}\n sideOffset={sideOffset}\n className={cn(\n \"bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 origin-(--radix-popover-content-transform-origin) rounded-md border p-4 shadow-md outline-hidden\",\n className\n )}\n {...props}\n />\n </PopoverPrimitive.Portal>\n )\n}\n\nfunction PopoverAnchor({\n ...props\n}: React.ComponentProps<typeof PopoverPrimitive.Anchor>) {\n return <PopoverPrimitive.Anchor data-slot=\"popover-anchor\" {...props} />\n}\n\nexport { Popover, PopoverTrigger, PopoverContent, PopoverAnchor }\n","\r\nimport * as React from 'react';\r\n\r\nimport { Input } from '@/components/ui/input';\r\nimport { cn } from '@/lib/utils';\r\nimport { TextInputGroupProps } from '@/types/global';\r\n\r\nconst TextInputGroup = ({ className, style, prepend, append, ...props }: TextInputGroupProps) => {\r\n const placeholder = props.placeholder ?? 'Placeholder text';\r\n\r\n // Controls\r\n const isEditable = props.isEditable ?? true;\r\n const isDisabled = props.isDisabled ?? false;\r\n const isReadonly = props.isReadonly ?? false;\r\n const isAutocomplete = props.isAutocomplete ?? false;\r\n\r\n const [error, setError] = React.useState<string | null>(null);\r\n \r\n React.useEffect(() => {\r\n if (!props.validateOnMount) return;\r\n setError(props.errorMessage || null);\r\n }, [props.errorMessage, props.validateOnMount]);\r\n\r\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\r\n props.onChange?.(e);\r\n };\r\n\r\n return (\r\n <>\r\n <div className={\r\n cn(\r\n 'flex justify-start items-center relative border border-input rounded-md bg-transparent focus-within:ring-2 focus-within:ring-ring focus-within:border-primary',\r\n className,\r\n 'p-0 m-0',\r\n error ? 'border-red-500' : ''\r\n )\r\n }\r\n >\r\n {prepend && (\r\n <div className=\"px-3 flex items-center bg-gray-500 text-white h-10 rounded-l-md\">\r\n {prepend}\r\n </div>\r\n )}\r\n <Input\r\n id={props.name || 'prepend-input'}\r\n type=\"url\"\r\n name={props.name}\r\n value={props.value}\r\n className={\r\n cn(\r\n className,\r\n 'rounded-none flex-1 border-none focus:ring-0'\r\n )\r\n }\r\n style={{\r\n ...style,\r\n borderColor: error ? '#f87171' : style?.borderColor\r\n }}\r\n autoComplete={isAutocomplete ? 'on' : 'off'}\r\n placeholder={placeholder}\r\n onChange={handleChange}\r\n disabled={isDisabled || !isEditable}\r\n readOnly={isReadonly}\r\n />\r\n {append && (\r\n <div className=\"px-3 flex items-center bg-gray-500 text-white h-10 rounded-r-md\">\r\n {append}\r\n </div>\r\n )}\r\n </div>\r\n\r\n {error && (\r\n <p className=\"mt-1 text-xs text-red-500\">{error}</p>\r\n )}\r\n </>\r\n );\r\n};\r\n\r\nexport default TextInputGroup;","'use client';\r\nimport {\r\n ColumnDef,\r\n flexRender,\r\n getCoreRowModel,\r\n useReactTable,\r\n} from '@tanstack/react-table';\r\n\r\nimport {\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableHead,\r\n TableHeader,\r\n TableRow,\r\n} from '@/components/ui/table';\r\n\r\ninterface DataTableProps<TData, TValue> {\r\n columns: ColumnDef<TData, TValue>[]\r\n data: TData[],\r\n rowActions: { header: string; onClick: (row: TData) => void }[],\r\n loading?: boolean,\r\n getRowSelection?: (rowSelection: Record<string, boolean>) => void,\r\n onCellClick?: (cellData: TData, columnId: string) => void;\r\n cellClickEnabled?: (cellData: TData, columnId: string) => boolean;\r\n}\r\n\r\nexport function DataTable<TData, TValue>({\r\n columns,\r\n rowActions,\r\n data,\r\n loading,\r\n getRowSelection,\r\n onCellClick,\r\n cellClickEnabled = () => false,\r\n}: DataTableProps<TData, TValue>) {\r\n const table = useReactTable({\r\n data,\r\n columns,\r\n enableRowSelection: true,\r\n onRowSelectionChange: getRowSelection\r\n ? (updaterOrValue) => {\r\n const value =\r\n typeof updaterOrValue === 'function'\r\n ? updaterOrValue(table.getState().rowSelection)\r\n : updaterOrValue;\r\n getRowSelection(value);\r\n }\r\n : undefined,\r\n getCoreRowModel: getCoreRowModel(),\r\n });\r\n\r\n const handleCellClick = (rowData: TData, columnId: string) => {\r\n if (onCellClick) {\r\n onCellClick(rowData, columnId);\r\n }\r\n };\r\n\r\n return (\r\n <div className=\"overflow-hidden rounded-md border w-full\">\r\n <Table>\r\n <TableHeader>\r\n {table.getHeaderGroups().map((headerGroup) => (\r\n <TableRow key={headerGroup.id}>\r\n {headerGroup.headers.map((header) => {\r\n return (\r\n <TableHead key={header.id}>\r\n {header.isPlaceholder\r\n ? null\r\n : flexRender(\r\n header.column.columnDef.header,\r\n header.getContext()\r\n )}\r\n </TableHead>\r\n );\r\n })}\r\n </TableRow>\r\n ))}\r\n </TableHeader>\r\n <TableBody>\r\n {loading ? (\r\n <TableRow>\r\n <TableCell colSpan={columns.length} className=\"h-24 text-center\">\r\n Loading...\r\n </TableCell>\r\n </TableRow>\r\n ) : (\r\n <>\r\n {table.getRowModel().rows?.length ? (\r\n table.getRowModel().rows.map((row) => (\r\n <TableRow\r\n key={row.id}\r\n data-state={row.getIsSelected() && 'selected'}\r\n className='relative group'\r\n >\r\n {row.getVisibleCells().map((cell) => {\r\n const isCellClickable = cellClickEnabled(row.original, cell.column.id);\r\n const dynamicClass = (cell.column.columnDef.meta as any)?.cellClass || '';\r\n const dynamicStyle = (cell.column.columnDef.meta as any)?.cellStyle || {};\r\n\r\n return (\r\n <TableCell\r\n key={cell.id}\r\n className={`${dynamicClass} ${isCellClickable ? 'underline cursor-pointer' : ''}`}\r\n style={dynamicStyle}\r\n onClick={() => {\r\n if (isCellClickable) {\r\n handleCellClick(row.original, cell.column.id);\r\n }\r\n }}\r\n >\r\n {flexRender(cell.column.columnDef.cell, cell.getContext())}\r\n </TableCell>\r\n );\r\n })}\r\n {rowActions.length > 0 && (\r\n <div className='absolute top-0 right-0 bg-white py-3 min-w-[100px] z-50 shadow-md flex items-center justify-center gap-3 p-2 opacity-0 group-hover:opacity-100 duration-300 h-full'>\r\n {rowActions.map((action, index) => (\r\n <p key={index} className='text-[#383838] text-[12px] cursor-pointer font-[400]'>{action.header}</p>\r\n ))}\r\n </div>\r\n )}\r\n </TableRow>\r\n ))\r\n ) : (\r\n <TableRow>\r\n <TableCell colSpan={columns.length} className=\"h-24 text-center\">\r\n No results.\r\n </TableCell>\r\n </TableRow>\r\n )}\r\n </>\r\n )}\r\n </TableBody>\r\n </Table>\r\n </div>\r\n );\r\n}","\r\nimport * as React from 'react';\r\n\r\nimport { cn } from '@/lib/utils';\r\n\r\nfunction Table({ className, ...props }: React.ComponentProps<'table'>) {\r\n return (\r\n <div\r\n data-slot=\"table-container\"\r\n className=\"relative w-full overflow-x-auto rounded-md border border-gray-200 bg-white\"\r\n >\r\n <table\r\n data-slot=\"table\"\r\n className={cn('w-full text-sm', className)}\r\n {...props}\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nfunction TableHeader({ className, ...props }: React.ComponentProps<'thead'>) {\r\n return (\r\n <thead\r\n data-slot=\"table-header\"\r\n className={cn(\r\n 'bg-gray-100 text-gray-700 [&>tr]:border-b [&>tr]:border-gray-200 [&>tr>th]:border-r [&>tr>th]:border-gray-200 [&>tr>th]:last:border-r-0',\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction TableBody({ className, ...props }: React.ComponentProps<'tbody'>) {\r\n return (\r\n <tbody\r\n data-slot=\"table-body\"\r\n className={cn(\r\n '[&>tr]:border-b [&>tr]:border-gray-200 [&>tr:last-child]:border-0 [&>tr>td]:border-r [&>tr>td]:border-gray-200 [&>tr>td]:last:border-r-0',\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction TableFooter({ className, ...props }: React.ComponentProps<'tfoot'>) {\r\n return (\r\n <tfoot\r\n data-slot=\"table-footer\"\r\n className={cn(\r\n 'bg-gray-50 border-t border-gray-200 font-medium [&>tr]:last:border-b-0',\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction TableRow({ className, ...props }: React.ComponentProps<'tr'>) {\r\n return (\r\n <tr\r\n data-slot=\"table-row\"\r\n className={cn(\r\n 'border-b border-gray-200 hover:bg-gray-50 transition-colors',\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction TableHead({ className, ...props }: React.ComponentProps<'th'>) {\r\n return (\r\n <th\r\n data-slot=\"table-head\"\r\n className={cn(\r\n 'h-12 px-6 text-left align-middle font-semibold whitespace-nowrap',\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction TableCell({ className, ...props }: React.ComponentProps<'td'>) {\r\n return (\r\n <td\r\n data-slot=\"table-cell\"\r\n className={cn(\r\n 'px-6 py-4 align-middle text-gray-700',\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction TableCaption({\r\n className,\r\n ...props\r\n}: React.ComponentProps<'caption'>) {\r\n return (\r\n <caption\r\n data-slot=\"table-caption\"\r\n className={cn('mt-4 text-sm text-gray-500', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nexport {\r\n Table,\r\n TableHeader,\r\n TableBody,\r\n TableFooter,\r\n TableHead,\r\n TableRow,\r\n TableCell,\r\n TableCaption,\r\n};\r\n","import * as React from \"react\"\nimport {\n ChevronLeftIcon,\n ChevronRightIcon,\n MoreHorizontalIcon,\n} from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { Button, buttonVariants } from \"@/components/ui/button\"\n\nfunction Pagination({ className, ...props }: React.ComponentProps<\"nav\">) {\n return (\n <nav\n role=\"navigation\"\n aria-label=\"pagination\"\n data-slot=\"pagination\"\n className={cn(\"mx-auto flex w-full justify-center\", className)}\n {...props}\n />\n )\n}\n\nfunction PaginationContent({\n className,\n ...props\n}: React.ComponentProps<\"ul\">) {\n return (\n <ul\n data-slot=\"pagination-content\"\n className={cn(\"flex flex-row items-center gap-1\", className)}\n {...props}\n />\n )\n}\n\nfunction PaginationItem({ ...props }: React.ComponentProps<\"li\">) {\n return <li data-slot=\"pagination-item\" {...props} />\n}\n\ntype PaginationLinkProps = {\n isActive?: boolean\n} & Pick<React.ComponentProps<typeof Button>, \"size\"> &\n React.ComponentProps<\"a\">\n\nfunction PaginationLink({\n className,\n isActive,\n size = \"icon\",\n ...props\n}: PaginationLinkProps) {\n return (\n <a\n aria-current={isActive ? \"page\" : undefined}\n data-slot=\"pagination-link\"\n data-active={isActive}\n className={cn(\n buttonVariants({\n variant: isActive ? \"outline\" : \"ghost\",\n size,\n }),\n className\n )}\n {...props}\n />\n )\n}\n\nfunction PaginationPrevious({\n className,\n ...props\n}: React.ComponentProps<typeof PaginationLink>) {\n return (\n <PaginationLink\n aria-label=\"Go to previous page\"\n size=\"default\"\n className={cn(\"gap-1 px-2.5 sm:pl-2.5\", className)}\n {...props}\n >\n <ChevronLeftIcon />\n <span className=\"hidden sm:block\">Previous</span>\n </PaginationLink>\n )\n}\n\nfunction PaginationNext({\n className,\n ...props\n}: React.ComponentProps<typeof PaginationLink>) {\n return (\n <PaginationLink\n aria-label=\"Go to next page\"\n size=\"default\"\n className={cn(\"gap-1 px-2.5 sm:pr-2.5\", className)}\n {...props}\n >\n <span className=\"hidden sm:block\">Next</span>\n <ChevronRightIcon />\n </PaginationLink>\n )\n}\n\nfunction PaginationEllipsis({\n className,\n ...props\n}: React.ComponentProps<\"span\">) {\n return (\n <span\n aria-hidden\n data-slot=\"pagination-ellipsis\"\n className={cn(\"flex size-9 items-center justify-center\", className)}\n {...props}\n >\n <MoreHorizontalIcon className=\"size-4\" />\n <span className=\"sr-only\">More pages</span>\n </span>\n )\n}\n\nexport {\n Pagination,\n PaginationContent,\n PaginationLink,\n PaginationItem,\n PaginationPrevious,\n PaginationNext,\n PaginationEllipsis,\n}\n","import {\r\n Pagination,\r\n PaginationContent,\r\n PaginationEllipsis,\r\n PaginationItem,\r\n PaginationLink,\r\n PaginationNext,\r\n PaginationPrevious,\r\n} from \"@/components/ui/pagination\"\r\n\r\ninterface CustomPaginationProps {\r\n totalPages: number;\r\n currentPage: number;\r\n onPageChange: (page: number) => void;\r\n maxVisiblePages?: number;\r\n}\r\n\r\nconst CustomPagination = ({\r\n totalPages,\r\n currentPage,\r\n onPageChange,\r\n maxVisiblePages = 5,\r\n}: CustomPaginationProps) => {\r\n const getPageNumbers = () => {\r\n const pages: (number | string)[] = [];\r\n \r\n if (totalPages <= maxVisiblePages) {\r\n return Array.from({ length: totalPages }, (_, i) => i + 1);\r\n }\r\n \r\n const leftSiblingIndex = Math.max(currentPage - 1, 1);\r\n const rightSiblingIndex = Math.min(currentPage + 1, totalPages);\r\n \r\n const shouldShowLeftDots = leftSiblingIndex > 2;\r\n const shouldShowRightDots = rightSiblingIndex < totalPages - 1;\r\n \r\n if (!shouldShowLeftDots && shouldShowRightDots) {\r\n const leftRange = Array.from({ length: 3 }, (_, i) => i + 1);\r\n return [...leftRange, \"...\", totalPages];\r\n }\r\n \r\n if (shouldShowLeftDots && !shouldShowRightDots) {\r\n const rightRange = Array.from(\r\n { length: 3 },\r\n (_, i) => totalPages - 2 + i\r\n );\r\n return [1, \"...\", ...rightRange];\r\n }\r\n \r\n if (shouldShowLeftDots && shouldShowRightDots) {\r\n const middleRange = Array.from(\r\n { length: 3 },\r\n (_, i) => leftSiblingIndex + i\r\n );\r\n return [1, \"...\", ...middleRange, \"...\", totalPages];\r\n }\r\n \r\n return pages;\r\n };\r\n\r\n const handlePageChange = (page: number) => {\r\n if (page >= 1 && page <= totalPages && page !== currentPage) {\r\n onPageChange(page);\r\n }\r\n };\r\n\r\n const pageNumbers = getPageNumbers();\r\n\r\n return (\r\n <Pagination>\r\n <PaginationContent>\r\n <PaginationItem>\r\n <PaginationPrevious \r\n onClick={() => handlePageChange(currentPage - 1)}\r\n className={currentPage === 1 ? \"pointer-events-none opacity-50\" : \"cursor-pointer\"}\r\n />\r\n </PaginationItem>\r\n \r\n {pageNumbers.map((pageNumber, index) => (\r\n <PaginationItem key={index}>\r\n {pageNumber === \"...\" ? (\r\n <PaginationEllipsis />\r\n ) : (\r\n <PaginationLink\r\n onClick={() => handlePageChange(pageNumber as number)}\r\n isActive={currentPage === pageNumber}\r\n className=\"cursor-pointer\"\r\n >\r\n {pageNumber}\r\n </PaginationLink>\r\n )}\r\n </PaginationItem>\r\n ))}\r\n \r\n <PaginationItem>\r\n <PaginationNext \r\n onClick={() => handlePageChange(currentPage + 1)}\r\n className={currentPage === totalPages ? \"pointer-events-none opacity-50\" : \"cursor-pointer\"}\r\n />\r\n </PaginationItem>\r\n </PaginationContent>\r\n </Pagination>\r\n );\r\n};\r\n\r\nexport default CustomPagination;","\r\nimport { DataTable } from '@/components/ui/data-table';\r\nimport { TableProps } from '@/types/global';\r\nimport CustomPagination from '../Pagination/Pagination';\r\nimport { useState } from 'react';\r\n\r\nconst Table = ({ \r\n columns, data, rowActions, className, style, pagination = false, itemsPerPage = 10, onPageChange, loading = false,\r\n ...props\r\n}: TableProps) => {\r\n const rawColumns = Array.isArray(columns) ? columns : [];\r\n const rawData = Array.isArray(data) ? data : [];\r\n const rawRowActions = Array.isArray(rowActions) ? rowActions : [];\r\n\r\n const [currentPage, setCurrentPage] = useState(1);\r\n const enablePagination = pagination && rawData.length > itemsPerPage;\r\n\r\n const handlePageChange = (page: number) => {\r\n setCurrentPage(page);\r\n onPageChange?.(page);\r\n };\r\n\r\n const paginatedData = enablePagination\r\n ? rawData.slice((currentPage - 1) * itemsPerPage, currentPage * itemsPerPage)\r\n : rawData;\r\n\r\n return (\r\n <div className={`${className} space-y-3`} style={style}>\r\n <DataTable\r\n {...props}\r\n columns={rawColumns} \r\n data={paginatedData} \r\n rowActions={rawRowActions}\r\n loading={loading}\r\n />\r\n {enablePagination && (\r\n <CustomPagination\r\n totalPages={Math.ceil(rawData.length / itemsPerPage)}\r\n currentPage={currentPage}\r\n onPageChange={handlePageChange}\r\n />\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nexport default Table;\r\n","'use client';\r\n\r\nimport * as React from 'react';\r\n\r\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\r\nimport { CheckIcon, ChevronRightIcon, CircleIcon } from 'lucide-react';\r\n\r\nimport { cn } from '@/lib/utils';\r\n\r\nfunction DropdownMenu({\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Root>) {\r\n return <DropdownMenuPrimitive.Root data-slot=\"dropdown-menu\" {...props} />;\r\n}\r\n\r\nfunction DropdownMenuPortal({\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>) {\r\n return (\r\n <DropdownMenuPrimitive.Portal data-slot=\"dropdown-menu-portal\" {...props} />\r\n );\r\n}\r\n\r\nfunction DropdownMenuTrigger({\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>) {\r\n return (\r\n <DropdownMenuPrimitive.Trigger\r\n data-slot=\"dropdown-menu-trigger\"\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction DropdownMenuContent({\r\n className,\r\n sideOffset = 4,\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Content>) {\r\n return (\r\n <DropdownMenuPrimitive.Portal>\r\n <DropdownMenuPrimitive.Content\r\n data-slot=\"dropdown-menu-content\"\r\n sideOffset={sideOffset}\r\n className={cn(\r\n 'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md border p-1 shadow-md',\r\n className\r\n )}\r\n {...props}\r\n />\r\n </DropdownMenuPrimitive.Portal>\r\n );\r\n}\r\n\r\nfunction DropdownMenuGroup({\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Group>) {\r\n return (\r\n <DropdownMenuPrimitive.Group data-slot=\"dropdown-menu-group\" {...props} />\r\n );\r\n}\r\n\r\nfunction DropdownMenuItem({\r\n className,\r\n inset,\r\n variant = 'default',\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Item> & {\r\n inset?: boolean\r\n variant?: 'default' | 'destructive'\r\n}) {\r\n return (\r\n <DropdownMenuPrimitive.Item\r\n data-slot=\"dropdown-menu-item\"\r\n data-inset={inset}\r\n data-variant={variant}\r\n className={cn(\r\n 'focus:bg-accent focus:text-accent-foreground data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 dark:data-[variant=destructive]:focus:bg-destructive/20 data-[variant=destructive]:focus:text-destructive data-[variant=destructive]:*:[svg]:!text-destructive [&_svg:not([class*=\\'text-\\'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 data-[inset]:pl-8 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=\\'size-\\'])]:size-4',\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction DropdownMenuCheckboxItem({\r\n className,\r\n children,\r\n checked,\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem>) {\r\n return (\r\n <DropdownMenuPrimitive.CheckboxItem\r\n data-slot=\"dropdown-menu-checkbox-item\"\r\n className={cn(\r\n 'focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=\\'size-\\'])]:size-4',\r\n className\r\n )}\r\n checked={checked}\r\n {...props}\r\n >\r\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\r\n <DropdownMenuPrimitive.ItemIndicator>\r\n <CheckIcon className=\"size-4\" />\r\n </DropdownMenuPrimitive.ItemIndicator>\r\n </span>\r\n {children}\r\n </DropdownMenuPrimitive.CheckboxItem>\r\n );\r\n}\r\n\r\nfunction DropdownMenuRadioGroup({\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>) {\r\n return (\r\n <DropdownMenuPrimitive.RadioGroup\r\n data-slot=\"dropdown-menu-radio-group\"\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction DropdownMenuRadioItem({\r\n className,\r\n children,\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.RadioItem>) {\r\n return (\r\n <DropdownMenuPrimitive.RadioItem\r\n data-slot=\"dropdown-menu-radio-item\"\r\n className={cn(\r\n 'focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-2 pl-8 text-sm outline-hidden select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=\\'size-\\'])]:size-4',\r\n className\r\n )}\r\n {...props}\r\n >\r\n <span className=\"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center\">\r\n <DropdownMenuPrimitive.ItemIndicator>\r\n <CircleIcon className=\"size-2 fill-current\" />\r\n </DropdownMenuPrimitive.ItemIndicator>\r\n </span>\r\n {children}\r\n </DropdownMenuPrimitive.RadioItem>\r\n );\r\n}\r\n\r\nfunction DropdownMenuLabel({\r\n className,\r\n inset,\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Label> & {\r\n inset?: boolean\r\n}) {\r\n return (\r\n <DropdownMenuPrimitive.Label\r\n data-slot=\"dropdown-menu-label\"\r\n data-inset={inset}\r\n className={cn(\r\n 'px-2 py-1.5 text-sm font-medium data-[inset]:pl-8',\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction DropdownMenuSeparator({\r\n className,\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Separator>) {\r\n return (\r\n <DropdownMenuPrimitive.Separator\r\n data-slot=\"dropdown-menu-separator\"\r\n className={cn('bg-border -mx-1 my-1 h-px', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction DropdownMenuShortcut({\r\n className,\r\n ...props\r\n}: React.ComponentProps<'span'>) {\r\n return (\r\n <span\r\n data-slot=\"dropdown-menu-shortcut\"\r\n className={cn(\r\n 'text-muted-foreground ml-auto text-xs tracking-widest',\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction DropdownMenuSub({\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.Sub>) {\r\n return <DropdownMenuPrimitive.Sub data-slot=\"dropdown-menu-sub\" {...props} />;\r\n}\r\n\r\nfunction DropdownMenuSubTrigger({\r\n className,\r\n inset,\r\n children,\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {\r\n inset?: boolean\r\n}) {\r\n return (\r\n <DropdownMenuPrimitive.SubTrigger\r\n data-slot=\"dropdown-menu-sub-trigger\"\r\n data-inset={inset}\r\n className={cn(\r\n 'focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-sm px-2 py-1.5 text-sm outline-hidden select-none data-[inset]:pl-8',\r\n className\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n <ChevronRightIcon className=\"ml-auto size-4\" />\r\n </DropdownMenuPrimitive.SubTrigger>\r\n );\r\n}\r\n\r\nfunction DropdownMenuSubContent({\r\n className,\r\n ...props\r\n}: React.ComponentProps<typeof DropdownMenuPrimitive.SubContent>) {\r\n return (\r\n <DropdownMenuPrimitive.SubContent\r\n data-slot=\"dropdown-menu-sub-content\"\r\n className={cn(\r\n 'bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-[8rem] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border p-1 shadow-lg',\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nexport {\r\n DropdownMenu,\r\n DropdownMenuPortal,\r\n DropdownMenuTrigger,\r\n DropdownMenuContent,\r\n DropdownMenuGroup,\r\n DropdownMenuLabel,\r\n DropdownMenuItem,\r\n DropdownMenuCheckboxItem,\r\n DropdownMenuRadioGroup,\r\n DropdownMenuRadioItem,\r\n DropdownMenuSeparator,\r\n DropdownMenuShortcut,\r\n DropdownMenuSub,\r\n DropdownMenuSubTrigger,\r\n DropdownMenuSubContent,\r\n};\r\n","'use client';\r\n\r\nimport { ChevronDown } from 'lucide-react';\r\n\r\nimport {\r\n DropdownMenu,\r\n DropdownMenuContent,\r\n DropdownMenuItem,\r\n DropdownMenuTrigger,\r\n} from '@/components/ui/dropdown-menu';\r\nimport { TabsProps } from '@/types/global';\r\n\r\nconst Tabs = ({ tabs, className, style, pathname, LinkComponent }: TabsProps) => {\r\n const rawTabs = Array.isArray(tabs) ? tabs : [];\r\n const baseClasses =\r\n 'text-[12px] text-[#E9E9E9] p-2 text-center rounded-md transition-colors border-none outline-none focus:outline-none focus:ring-0 focus:ring-offset-0 cursor-pointer select-none ';\r\n const activeClasses = 'bg-white/10 text-white';\r\n const hoverClasses = 'hover:bg-white/5';\r\n\r\n const isActive = (path?: string) => {\r\n if (!path) return false;\r\n return pathname === path || (path !== '/' && pathname?.startsWith(path));\r\n };\r\n\r\n return (\r\n <div className={className} style={style}>\r\n {rawTabs.map((tab: any, index: number) => {\r\n const finalClasses = [\r\n baseClasses,\r\n isActive(tab.href) ? activeClasses : hoverClasses,\r\n tab.className || '',\r\n ].join(' ');\r\n\r\n const hasDropdown = Array.isArray(tab.children) && tab.children.length > 0 && tab.isDropDown;\r\n\r\n if (hasDropdown) {\r\n return (\r\n <DropdownMenu key={index}>\r\n <DropdownMenuTrigger\r\n className={`${finalClasses} inline-flex items-center gap-1`}\r\n >\r\n {tab.header}\r\n <ChevronDown className=\"h-4 w-4 opacity-80\" />\r\n </DropdownMenuTrigger>\r\n\r\n <DropdownMenuContent\r\n align=\"start\"\r\n sideOffset={6}\r\n className=\"z-50 min-w-[160px] rounded-md border border-gray-200 bg-white p-1 shadow-lg\"\r\n >\r\n {tab.children.map((item: any) => (\r\n <DropdownMenuItem\r\n key={item.id}\r\n asChild\r\n className=\"cursor-pointer rounded-sm px-3 py-2 text-[12px] text-gray-800 hover:bg-gray-100 focus:bg-gray-100\"\r\n >\r\n {LinkComponent ? (\r\n <LinkComponent href={item.href || '#'}>{item.header}</LinkComponent>\r\n ) : (\r\n item.header\r\n )}\r\n </DropdownMenuItem>\r\n ))}\r\n </DropdownMenuContent>\r\n </DropdownMenu>\r\n );\r\n }\r\n\r\n return tab.url && LinkComponent ? (\r\n <LinkComponent key={index} href={tab.url} className={finalClasses} style={tab.style}>\r\n {tab.header}\r\n </LinkComponent>\r\n ) : (\r\n <div key={index} className={finalClasses} style={tab.style} role=\"button\" tabIndex={0}>\r\n {tab.header}\r\n </div>\r\n );\r\n })}\r\n\r\n </div>\r\n );\r\n};\r\n\r\nexport default Tabs;\r\n","'use client';\r\n\r\nimport { StagesProps } from '@/types/global';\r\nimport React from 'react';\r\n\r\nconst StagesComponent = ({ stages, isShowBtn, buttonText, className, style }: StagesProps) => {\r\n\r\n return (\r\n <div className={className} style={style}>\r\n <div className=\"flex items-center justify-between bg-gray-50 p-2 rounded-lg border border-gray-200 w-full\">\r\n <div className=\"flex items-center\">\r\n <button className=\"p-2 hover:bg-gray-100 rounded\">\r\n <svg className=\"w-4 h-4 text-gray-600\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\r\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M19 9l-7 7-7-7\" />\r\n </svg>\r\n </button>\r\n </div>\r\n\r\n <div className=\"flex items-center flex-1 px-2\">\r\n {stages?.length > 0 && stages?.map((stage: any, index: number) => (\r\n <React.Fragment key={stage.id}>\r\n <button\r\n className={`\r\n min-w-[120px] px-4 py-2 rounded-full text-sm font-medium transition-colors duration-200 whitespace-nowrap ${stage.isActive ? 'bg-[#034486] text-white shadow-md' : 'bg-white text-gray-700 hover:bg-gray-100 border border-gray-200'}`}\r\n >\r\n {stage.header}\r\n </button>\r\n\r\n {index < stages.length - 1 && (\r\n <div className=\"flex-shrink-0 w-3 h-px bg-gray-300\"></div>\r\n )}\r\n </React.Fragment>\r\n ))}\r\n </div>\r\n\r\n {isShowBtn && (\r\n <div className=\"flex items-center\">\r\n <button className=\"bg-[#034486] text-white px-6 py-2 rounded-lg text-sm font-medium transition-colors duration-200 shadow-sm\">\r\n {buttonText}\r\n </button>\r\n </div>\r\n )}\r\n\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default StagesComponent;\r\n","'use client';\r\n\r\nimport { ElementProps } from \"@/types/global\";\r\n\r\nconst Spacer = ({ className, style }: ElementProps) => {\r\n return (\r\n <div className={`${className}`} style={style} />\r\n );\r\n};\r\n\r\nexport default Spacer;\r\n","'use client';\r\n\r\nimport { ProfileProps } from \"@/types/global\";\r\n\r\nconst Profile = ({ profileType, showName, userName, className, style }: ProfileProps) => {\r\n return (\r\n <div className={className} style={style}>\r\n <div className='flex gap-2 items-center justify-between w-30 cursor-pointer'>\r\n {showName && (\r\n <h4 className='text-[#000000] dark:text-[#fff] text-[13px] font-[500] mb-0'>{userName}</h4>\r\n )}\r\n {profileType === 'avatar' ? (\r\n <img\r\n src='https://builder.development.algorithmshift.ai/images/toolset/profile.svg' alt=\"auto\" width={24} height={24}\r\n />\r\n ) : (\r\n <div className='w-6 h-6 bg-[#12715b] rounded-full text-[#fff] text-center text-[11px] flex items-center justify-center'>A</div>\r\n )}\r\n\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default Profile;\r\n","'use client';\r\n\r\nimport { NotificationProps } from \"@/types/global\";\r\n\r\nconst Notification = ({ className, style, badgeType, badgeCount = 0, hideBadgeWhenZero }: NotificationProps) => {\r\n return (\r\n <div className={className} style={style}>\r\n <div className='w-[34px] h-[34px] bg-[#E9E9E9] rounded-md text-center flex items-center justify-center relative'>\r\n <img\r\n src='https://builder.development.algorithmshift.ai/images/toolset/notification.svg' alt=\"auto\" width={18} height={18}\r\n />\r\n {badgeType === 'number' && !(hideBadgeWhenZero && badgeCount === 0) && badgeCount > 0 ? (\r\n <span className='text-[10px] text-[#fff] bg-[#FF4A4A] w-[20px] h-[20px] rounded-full absolute top-0 right-0 transform translate-x-1/2 -translate-y-1/2 leading-[20px]'>{badgeCount}</span>\r\n ) : <span className='bg-[#FF4A4A] w-[10px] h-[10px] rounded-full absolute top-0 right-0 transform translate-x-1/2 -translate-y-1/2 leading-[20px]'></span>}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default Notification;\r\n","import { cn } from '@/lib/utils';\r\nimport { LogoProps } from '@/types/global';\r\nimport placeholder from \"../../../assets/logo_placeholder.png\";\r\n\r\nconst Logo = ({\r\n className,\r\n style,\r\n imageUrl,\r\n altText = 'Preview',\r\n}: LogoProps) => {\r\n\r\n if (!imageUrl) {\r\n return (\r\n <div\r\n className={cn(\r\n className, 'p-0'\r\n )} style={style}\r\n >\r\n <img src={placeholder} alt={altText} className=\"opacity-50\" width={150} height={80} />\r\n </div>\r\n );\r\n }\r\n\r\n return (\r\n <img src={imageUrl} alt={altText} className={className} style={style} />\r\n );\r\n};\r\n\r\nexport default Logo;\r\n","'use client';\r\n\r\nimport * as React from 'react';\r\n\r\nimport * as AvatarPrimitive from '@radix-ui/react-avatar';\r\n\r\nimport { cn } from '@/lib/utils';\r\n\r\nconst Avatar = React.forwardRef<\r\n React.ElementRef<typeof AvatarPrimitive.Root>,\r\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>\r\n>(({ className, ...props }, ref) => (\r\n <AvatarPrimitive.Root\r\n ref={ref}\r\n className={cn(\r\n 'relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full',\r\n className\r\n )}\r\n {...props}\r\n />\r\n));\r\nAvatar.displayName = AvatarPrimitive.Root.displayName;\r\n\r\nconst AvatarImage = React.forwardRef<\r\n React.ElementRef<typeof AvatarPrimitive.Image>,\r\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Image>\r\n>(({ className, ...props }, ref) => (\r\n <AvatarPrimitive.Image\r\n ref={ref}\r\n className={cn('aspect-square h-full w-full', className)}\r\n {...props}\r\n />\r\n));\r\nAvatarImage.displayName = AvatarPrimitive.Image.displayName;\r\n\r\nconst AvatarFallback = React.forwardRef<\r\n React.ElementRef<typeof AvatarPrimitive.Fallback>,\r\n React.ComponentPropsWithoutRef<typeof AvatarPrimitive.Fallback>\r\n>(({ className, ...props }, ref) => (\r\n <AvatarPrimitive.Fallback\r\n ref={ref}\r\n className={cn(\r\n 'flex h-full w-full items-center justify-center rounded-full bg-muted',\r\n className\r\n )}\r\n {...props}\r\n />\r\n));\r\nAvatarFallback.displayName = AvatarPrimitive.Fallback.displayName;\r\n\r\nexport { Avatar, AvatarImage, AvatarFallback };\r\n","import { Bell, Search, Menu } from 'lucide-react';\r\n\r\nimport { Avatar, AvatarImage } from '@/components/ui/avatar';\r\nimport { Button } from '@/components/ui/button';\r\nimport {\r\n DropdownMenu,\r\n DropdownMenuContent,\r\n DropdownMenuItem,\r\n DropdownMenuLabel,\r\n DropdownMenuSeparator,\r\n DropdownMenuTrigger,\r\n} from '@/components/ui/dropdown-menu';\r\nimport { Input } from '@/components/ui/input';\r\nimport { NavbarProps } from '@/types/global';\r\n\r\nexport default function Navbar({\r\n style, badgeType, badgeCount = 0, hideBadgeWhenZero, profileType, showName, imageUrl, altText = 'Logo',\r\n canvasMode = 'desktop', LinkComponent, ImageComponent\r\n\r\n}: NavbarProps) {\r\n\r\n const isMobileView = canvasMode === 'mobile' || canvasMode === 'tablet';\r\n\r\n return (\r\n <nav className=\"w-full border-b bg-white shadow-sm\" style={style}>\r\n <div className=\"mx-auto flex max-w-7xl items-center justify-between px-4 py-2\">\r\n {LinkComponent && ImageComponent ? (\r\n <LinkComponent href=\"/\" className=\"flex items-center space-x-2\">\r\n {imageUrl ? (\r\n <ImageComponent src={imageUrl} alt={altText} width={200} height={200} />\r\n ) : (\r\n <span className=\"font-semibold text-blue-700\">Logo</span>\r\n )}\r\n </LinkComponent>\r\n ) : (<span className=\"font-semibold text-blue-700\">Logo</span>)}\r\n\r\n <div className=\"flex items-center space-x-3\">\r\n {!isMobileView ? (\r\n <div className=\"flex-1 px-6\">\r\n <div className=\"relative w-full max-w-md border border-gray-300 rounded-md\">\r\n <Search className=\"absolute left-3 top-1/2 -translate-y-1/2 h-4 w-4 text-gray-400\" />\r\n <Input placeholder=\"Search\" className=\"pl-9 text-gray-400\" />\r\n </div>\r\n </div>\r\n ) : (\r\n <Button\r\n variant=\"ghost\"\r\n size=\"icon\"\r\n className=\"border border-gray-400\"\r\n >\r\n <Search className=\"h-5 w-5 text-gray-400\" />\r\n </Button>\r\n )}\r\n\r\n <div className=\"relative bg-[#E9E9E9] rounded-md\">\r\n <Button variant=\"ghost\" size=\"icon\">\r\n <Bell className=\"h-5 w-5 text-[#1C1B1F]\" />\r\n </Button>\r\n {badgeType === 'number' && !(hideBadgeWhenZero && badgeCount === 0) && badgeCount > 0 ? (\r\n <span className=\"absolute -top-1 -right-1 flex h-4 w-4 items-center justify-center rounded-full bg-red-500 text-[10px] text-white leading-8\">\r\n {badgeCount}\r\n </span>\r\n ) : (\r\n <span className=\"absolute -top-1 -right-1 flex h-2 w-2 items-center justify-center rounded-full bg-red-500\"></span>\r\n )}\r\n </div>\r\n\r\n <DropdownMenu>\r\n <DropdownMenuTrigger asChild>\r\n <div className=\"flex items-center space-x-2\">\r\n {!isMobileView && showName && (\r\n <h4 className=\"text-[#000000] text-[13px] font-[500] mb-0\">\r\n Akbar Sheriff\r\n </h4>\r\n )}\r\n {!isMobileView ? (\r\n <>\r\n <Avatar className=\"cursor-pointer h-8 w-8 text-gray-900\">\r\n {profileType === 'avatar' ? (\r\n <AvatarImage\r\n src=\"/images/appbuilder/toolset/profile.svg\"\r\n alt=\"Akbar Sheriff\"\r\n />\r\n ) : (\r\n <div className=\"w-8 h-8 bg-[#12715b] rounded-full text-[#fff] text-center text-[11px] flex items-center justify-center\">\r\n AS\r\n </div>\r\n )}\r\n </Avatar>\r\n <Button\r\n variant=\"ghost\"\r\n size=\"icon\"\r\n className=\"text-gray-900 md:hidden\"\r\n >\r\n <Menu className=\"h-6 w-6\" />\r\n </Button>\r\n </>\r\n ) : (\r\n <Button\r\n variant=\"ghost\"\r\n size=\"icon\"\r\n className=\"text-gray-900\"\r\n >\r\n <Menu className=\"h-6 w-6\" />\r\n </Button>\r\n )}\r\n </div>\r\n </DropdownMenuTrigger>\r\n <DropdownMenuContent align=\"end\" className=\"bg-white\">\r\n <DropdownMenuLabel className=\"text-black\">\r\n My Account\r\n </DropdownMenuLabel>\r\n <DropdownMenuSeparator />\r\n <DropdownMenuItem className=\"text-black\">Profile</DropdownMenuItem>\r\n <DropdownMenuItem className=\"text-black\">Settings</DropdownMenuItem>\r\n <DropdownMenuItem className=\"text-black\">Logout</DropdownMenuItem>\r\n </DropdownMenuContent>\r\n </DropdownMenu>\r\n </div>\r\n </div>\r\n </nav>\r\n );\r\n}\r\n","'use client';\r\n\r\nimport { BarChartProps } from '@/types/global';\r\nimport { BarChart, Bar, Area, AreaChart, XAxis, YAxis, CartesianGrid, Tooltip, ResponsiveContainer, Legend } from 'recharts';\r\n\r\nconst ChartComponent = ({ className, style, ...props }: BarChartProps) => {\r\n const data = Array.isArray(props?.data) ? props.data : []; // fallback for testing\r\n\r\n const chartType = props.chartType || 'bar';\r\n type VerticalAlign = 'top' | 'middle' | 'bottom';\r\n const legendsPosition: VerticalAlign = props.legendsPosition === 'middle' || props.legendsPosition === 'bottom' ? props.legendsPosition : 'top';\r\n\r\n return (\r\n <div className={`${className} h-[400px]`} style={style}>\r\n {data.length > 0 && (\r\n <ResponsiveContainer width=\"100%\" height=\"100%\">\r\n {chartType === 'bar' ? (\r\n <BarChart data={data}>\r\n <CartesianGrid strokeDasharray=\"3 3\" />\r\n <XAxis dataKey=\"name\" />\r\n <YAxis />\r\n <Tooltip />\r\n <Legend verticalAlign={legendsPosition} align=\"center\" />\r\n <Bar dataKey=\"value\" fill=\"#00695C\" />\r\n </BarChart>\r\n ) : (\r\n <AreaChart data={data}>\r\n <defs>\r\n <linearGradient id=\"colorCount\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\r\n <stop offset=\"5%\" stopColor=\"#00695C\" stopOpacity={0.8} />\r\n <stop offset=\"95%\" stopColor=\"#00695C\" stopOpacity={0} />\r\n </linearGradient>\r\n </defs>\r\n <CartesianGrid strokeDasharray=\"3 3\" />\r\n <XAxis dataKey=\"name\" />\r\n <YAxis />\r\n <Tooltip />\r\n <Area\r\n type=\"monotone\"\r\n dataKey=\"value\"\r\n stroke=\"#00695C\"\r\n fillOpacity={1}\r\n fill=\"url(#colorCount)\"\r\n />\r\n </AreaChart>\r\n )}\r\n </ResponsiveContainer>\r\n )}\r\n </div>\r\n );\r\n};\r\n\r\nexport default ChartComponent;\r\n","'use client';\r\n\r\nimport { PieChartProps } from '@/types/global';\r\nimport { PieChart, Pie, Cell, ResponsiveContainer, Tooltip, LabelList } from 'recharts';\r\n\r\nconst DonutChart = ({ className, style, ...props }: PieChartProps) => {\r\n const data = Array.isArray(props?.data) ? props.data : [];\r\n const total = data.reduce((sum: number, d: { value: number }) => sum + d.value, 0);\r\n\r\n const showPercentage = props.showPercentage ?? true;\r\n const showLegends = props.showLegends ?? true;\r\n const labelType = props.labelType || 'inside';\r\n\r\n const canvasMode = props.canvasMode;\r\n\r\n const renderLabel = ({ value, x, y }: any) => {\r\n if (value == null) return null;\r\n const percentage = ((Number(value) / total) * 100).toFixed(0);\r\n return (\r\n <text\r\n x={x}\r\n y={y}\r\n textAnchor=\"middle\"\r\n dominantBaseline=\"central\"\r\n className=\"text-[10px] font-semibold\"\r\n fill={labelType === 'inside' ? '#fff' : '#000'}\r\n >\r\n {value}k {showPercentage ? `(${percentage}%)` : ''}\r\n </text>\r\n );\r\n };\r\n\r\n // Force mode\r\n const forceMobile = canvasMode === 'mobile' || canvasMode === 'tablet';\r\n const forceDesktop = canvasMode === 'desktop';\r\n\r\n // Wrapper layout\r\n const wrapperClass = canvasMode\r\n ? forceDesktop\r\n ? 'flex-row'\r\n : 'flex-col'\r\n : 'flex-col md:flex-row';\r\n\r\n const renderLegends = () => {\r\n if (!showLegends) return null;\r\n return (\r\n <>\r\n {data.map((d: { name: string; color: string }) => (\r\n <div\r\n key={d.name}\r\n className=\"flex items-center space-x-2 rounded-md border border-gray-200 px-3 py-2 w-[48%] md:w-auto\"\r\n >\r\n <span\r\n className=\"inline-block w-[16px] h-[16px] rounded\"\r\n style={{ backgroundColor: d.color }}\r\n />\r\n <span className=\"text-[#000000] text-[12px] md:text-[13px] font-[500]\">\r\n {d.name}\r\n </span>\r\n </div>\r\n ))}\r\n </>\r\n )\r\n }\r\n\r\n return (\r\n <div\r\n className={`relative flex items-center ${wrapperClass} ${className}`}\r\n style={style}\r\n >\r\n <div className=\"relative w-full md:w-[70%] h-[300px] md:h-[400px] flex items-center justify-center\">\r\n {data.length > 0 && (\r\n <ResponsiveContainer width=\"100%\" height=\"100%\">\r\n <PieChart>\r\n <Pie\r\n data={data}\r\n cx=\"50%\"\r\n cy=\"50%\"\r\n innerRadius={70}\r\n outerRadius={120}\r\n dataKey=\"value\"\r\n labelLine={false}\r\n isAnimationActive={false}\r\n >\r\n {data.map((entry: { color: string }, index: number) => (\r\n <Cell key={`cell-${index}`} fill={entry.color} />\r\n ))}\r\n <LabelList\r\n dataKey=\"value\"\r\n position={labelType === 'inside' ? 'inside' : 'outside'}\r\n content={renderLabel}\r\n />\r\n </Pie>\r\n <Tooltip formatter={(value: number, name: string) => [`${value}k`, name]} />\r\n </PieChart>\r\n </ResponsiveContainer>\r\n )}\r\n\r\n <div className=\"absolute left-1/2 top-1/2 -translate-x-1/2 -translate-y-1/2 text-2xl md:text-4xl font-bold text-[#000]\">\r\n {total}k\r\n </div>\r\n </div>\r\n\r\n <div className={`flex ${forceDesktop ? 'flex-col ml-auto space-y-3' : 'flex-wrap justify-center gap-2 mt-4'}\r\n w-full md:w-auto`}>\r\n {renderLegends()}\r\n </div>\r\n </div>\r\n );\r\n};\r\n\r\nexport default DonutChart;\r\n","'use client';\r\n\r\nimport { EmailComposerProps } from '@/types/global';\r\nimport TinyMceEditor from '../Global/TinyMceEditor';\r\n\r\nexport default function EmailComposer({ className, style, to, setTo, showCc, setShowCc, showBcc, setShowBcc, cc, setCc, bcc, setBcc, subject, setSubject, body, setBody }: EmailComposerProps) {\r\n\r\n return (\r\n <div className={className} style={style}>\r\n <div className=\"border rounded-md shadow bg-[#fff] p-4 mx-auto z-[50] relative\">\r\n <div className=\"mb-3\">\r\n <input\r\n type=\"email\"\r\n placeholder=\"From\"\r\n className=\"w-full flex-1 border-2 rounded-md h-[40px] px-3 focus:outline-none border-[#E9E9E9] text-[#383838]\"\r\n required\r\n />\r\n </div>\r\n <div className=\"mb-3\">\r\n <div className=\"flex items-center gap-2\">\r\n <input\r\n type=\"email\"\r\n value={to}\r\n onChange={(e) => setTo?.(e.target.value)}\r\n placeholder=\"To\"\r\n className=\"w-full flex-1 border-2 rounded-md h-[40px] px-3 focus:outline-none border-[#E9E9E9] text-[#383838]\"\r\n required\r\n />\r\n {!showCc && (\r\n <button\r\n onClick={() => setShowCc?.(true)}\r\n className=\"px-3 py-1 border rounded-md text-sm hover:bg-gray-100 bg-[#E9E9E9] text-[#383838]\"\r\n >\r\n Cc\r\n </button>\r\n )}\r\n {!showBcc && (\r\n <button\r\n onClick={() => setShowBcc?.(true)}\r\n className=\"px-3 py-1 border rounded-md text-sm hover:bg-gray-100 bg-[#E9E9E9] text-[#383838]\"\r\n >\r\n Bcc\r\n </button>\r\n )}\r\n </div>\r\n </div>\r\n {showCc && (\r\n <div className=\"mb-3\">\r\n <input\r\n type=\"text\"\r\n value={cc}\r\n onChange={(e) => setCc?.(e.target.value)}\r\n placeholder=\"Cc\"\r\n className=\"w-full flex-1 border-2 rounded-md h-[40px] px-3 focus:outline-none border-[#E9E9E9] text-[#383838]\"\r\n />\r\n </div>\r\n )}\r\n {showBcc && (\r\n <div className=\"mb-3\">\r\n <input\r\n type=\"text\"\r\n value={bcc}\r\n onChange={(e) => setBcc?.(e.target.value)}\r\n placeholder=\"Bcc\"\r\n className=\"w-full flex-1 border-2 rounded-md h-[40px] px-3 focus:outline-none border-[#E9E9E9] text-[#383838]\"\r\n />\r\n </div>\r\n )}\r\n\r\n {/* Subject */}\r\n <div className=\"mb-3\">\r\n <input\r\n type=\"text\"\r\n value={subject}\r\n onChange={(e) => setSubject?.(e.target.value)}\r\n placeholder=\"Subject\"\r\n className=\"w-full flex-1 border-2 rounded-md h-[40px] px-3 focus:outline-none border-[#E9E9E9] text-[#383838]\"\r\n />\r\n </div>\r\n <div className=\"mb-4\">\r\n <TinyMceEditor value={body} onChange={setBody} />\r\n </div>\r\n <div className=\"flex justify-end gap-2\">\r\n <button className=\"px-4 py-2 rounded-md text-gray-600 hover:bg-gray-100\">\r\n Discard\r\n </button>\r\n <button className=\"px-4 py-2 rounded-md border text-[#12715B] border-[#12715B]\">\r\n Reset\r\n </button>\r\n <button className=\"px-4 py-2 rounded-md bg-[#12715B] text-white\">\r\n Send\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n}","'use client';\r\n\r\nimport { toast } from 'sonner';\r\n\r\ntype ToastVariant = 'default' | 'success' | 'error' | 'info' | 'warning';\r\n\r\ntype SonnerToastProps = {\r\n title: string;\r\n description?: string;\r\n variant?: ToastVariant;\r\n duration?: number;\r\n actionLabel?: string;\r\n onAction?: () => void;\r\n};\r\n\r\nexport function showSonnerToast({\r\n title,\r\n description,\r\n variant = 'default',\r\n duration = 3000,\r\n actionLabel,\r\n onAction,\r\n}: SonnerToastProps) {\r\n const options = {\r\n description,\r\n duration,\r\n action: actionLabel\r\n ? {\r\n label: actionLabel,\r\n onClick: onAction || (() => { }),\r\n }\r\n : undefined,\r\n };\r\n\r\n switch (variant) {\r\n case 'success':\r\n toast.success(title, options);\r\n break;\r\n case 'error':\r\n toast.error(title, options);\r\n break;\r\n case 'info':\r\n toast.info(title, options);\r\n break;\r\n case 'warning':\r\n toast.warning(title, options);\r\n break;\r\n default:\r\n toast(title, options);\r\n }\r\n}\r\n","import React, { createContext, useContext, useReducer } from 'react';\r\n\r\nimport { stateReducer, CanvasState } from './stateReducer';\r\n\r\nconst StateContext = createContext<any>(null);\r\n\r\nexport function StateProvider({ children }: { children: React.ReactNode }) {\r\n const [state, dispatch] = useReducer(stateReducer, {} as CanvasState);\r\n return (\r\n <StateContext.Provider value={{ state, dispatch }}>\r\n {children}\r\n </StateContext.Provider>\r\n );\r\n}\r\n\r\nexport function useAppState() {\r\n return useContext(StateContext);\r\n}\r\n","export type CanvasState = Record<string, any>;\r\n\r\nexport type CanvasAction =\r\n | { type: 'SET_STATE'; key: string; value: any }\r\n\r\nexport function stateReducer(state: CanvasState, action: CanvasAction): CanvasState {\r\n switch (action.type) {\r\n case 'SET_STATE':\r\n return { ...state, [action.key]: action.value };\r\n\r\n default:\r\n return state;\r\n }\r\n}\r\n"],"mappings":"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","names":["import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","React","React","import_jsx_runtime","import_jsx_runtime","React","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","__iconNode","import_react","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","React","import_jsx_runtime","import_jsx_runtime","Textarea","React","import_jsx_runtime","import_react","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_react","import_jsx_runtime","import_jsx_runtime","import_react","import_jsx_runtime","import_react","import_react","import_jsx_runtime","import_jsx_runtime","React","import_jsx_runtime","import_jsx_runtime","import_react","import_jsx_runtime","import_jsx_runtime","React","import_jsx_runtime","PhoneInputField","React","import_jsx_runtime","import_react","import_jsx_runtime","import_react","import_jsx_runtime","React","React","React","import_jsx_runtime","Calendar","className","props","import_jsx_runtime","import_jsx_runtime","Calendar","React","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_react","import_jsx_runtime","Table","import_jsx_runtime","import_jsx_runtime","import_react","import_jsx_runtime","React","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","React","import_jsx_runtime","import_jsx_runtime","import_jsx_runtime","import_recharts","import_jsx_runtime","import_jsx_runtime","import_react","import_jsx_runtime"]}