shekel-fe-shared-lib 1.0.16 → 1.0.18
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/README.md +27 -8
- package/dist/index.cjs +30 -21
- package/dist/index.cjs.map +1 -1
- package/dist/index.mjs +807 -785
- package/dist/index.mjs.map +1 -1
- package/dist/shekel-fe-shared-lib.css +1 -1
- package/package.json +1 -1
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.cjs","sources":["../src/components/Button/Button.tsx","../src/components/StatCard/StatCard.tsx","../src/components/SearchInput.tsx","../src/components/Card/Card.tsx","../src/components/Dropdown.tsx","../src/components/Select.tsx","../src/components/Table.tsx","../src/components/TableTop.tsx","../src/components/Modal.tsx","../src/components/Badge.tsx","../src/components/Steps.tsx","../src/components/Progress.tsx","../src/components/Checkbox.tsx","../src/components/SelectedItemsList.tsx","../src/components/Input/Input.tsx","../src/components/Input/PasswordInput.tsx","../src/components/Input/OTPInput.tsx","../src/components/Input/PhoneInput.tsx","../src/components/Input/CurrencyInput.tsx","../node_modules/@ant-design/icons/es/components/Context.js","../node_modules/clsx/dist/clsx.mjs","../node_modules/@ant-design/fast-color/es/presetColors.js","../node_modules/@ant-design/fast-color/es/FastColor.js","../node_modules/@ant-design/colors/es/generate.js","../node_modules/@ant-design/colors/es/presets.js","../node_modules/@rc-component/util/es/Dom/canUseDom.js","../node_modules/@rc-component/util/es/Dom/contains.js","../node_modules/@rc-component/util/es/Dom/dynamicCSS.js","../node_modules/@rc-component/util/es/Dom/shadow.js","../node_modules/@rc-component/util/es/warning.js","../node_modules/@ant-design/icons/es/utils.js","../node_modules/@ant-design/icons/es/components/IconBase.js","../node_modules/@ant-design/icons/es/components/twoTonePrimaryColor.js","../node_modules/@ant-design/icons/es/components/AntdIcon.js","../node_modules/@ant-design/icons-svg/es/asn/UserOutlined.js","../node_modules/@ant-design/icons/es/icons/UserOutlined.js","../src/components/UserPill/UserPill.tsx","../src/assets/card-border.svg","../src/components/UserCard/UserCard.tsx","../src/components/CountrySelector/CountrySelector.tsx","../src/components/UserProfileDropdown/UserProfileDropdown.tsx","../src/components/ActionCard/ActionCard.tsx","../src/components/DashboardCard/DashboardCard.tsx","../src/components/NotificationDropdown/NotificationDropdown.tsx","../src/components/TabsComponent/TabsComponent.tsx"],"sourcesContent":["import React from 'react';\nimport { Button as AntButton, ButtonProps as AntButtonProps } from 'antd';\n\nexport interface ButtonProps extends Omit<AntButtonProps, 'variant' | 'size'> {\n variant?: 'primary' | 'secondary' | 'outline' | 'ghost';\n size?: 'xsmall' | 'small' | 'medium' | 'large';\n}\n\nexport const Button: React.FC<ButtonProps> = ({\n variant = 'primary',\n size = 'large',\n className = '',\n children,\n ...props\n}) => {\n const getSizeHeight = () => {\n switch (size) {\n case 'xsmall':\n return '32px';\n case 'small':\n return '40px';\n case 'medium':\n return '48px';\n case 'large':\n return '52px';\n default:\n return '52px';\n }\n };\n\n const getVariantStyles = () => {\n const height = getSizeHeight();\n\n switch (variant) {\n case 'primary':\n return {\n backgroundColor: '#EC615B',\n borderColor: '#EC615B',\n color: '#FFFFFF',\n height,\n borderRadius: '8px',\n };\n case 'secondary':\n return {\n backgroundColor: '#6B7280',\n borderColor: '#6B7280',\n color: '#FFFFFF',\n height,\n borderRadius: '8px',\n };\n case 'outline':\n return {\n backgroundColor: 'transparent',\n borderColor: '#EC615B',\n color: '#EC615B',\n height,\n borderRadius: '8px',\n };\n case 'ghost':\n return {\n backgroundColor: '#EFF2F3',\n borderColor: '#EFF2F3',\n color: '#181918',\n height,\n borderRadius: '8px',\n };\n default:\n return {};\n }\n };\n\n return (\n <AntButton\n className={className}\n {...props}\n style={{\n ...getVariantStyles(),\n ...props.style,\n }}\n onMouseEnter={(e) => {\n if (variant === 'primary') {\n (e.target as HTMLElement).style.backgroundColor = '#D8524D';\n } else if (variant === 'secondary') {\n (e.target as HTMLElement).style.backgroundColor = '#4B5563';\n } else if (variant === 'outline') {\n (e.target as HTMLElement).style.backgroundColor = '#F3F4F6';\n } else if (variant === 'ghost') {\n (e.target as HTMLElement).style.backgroundColor = '#E1E4E6';\n }\n props.onMouseEnter?.(e as any);\n }}\n onMouseLeave={(e) => {\n const styles = getVariantStyles();\n (e.target as HTMLElement).style.backgroundColor = styles.backgroundColor || '';\n props.onMouseLeave?.(e as any);\n }}\n >\n {children}\n </AntButton>\n );\n};\n","import React from 'react';\n\nexport interface StatCardProps {\n label: string;\n value: string | number;\n icon?: React.ReactNode;\n iconBackgroundColor?: string;\n iconColor?: string;\n valuePrefix?: string;\n progressText?: string;\n badge?: string;\n width?: string | number;\n className?: string;\n}\n\nexport const StatCard: React.FC<StatCardProps> = ({\n label,\n value,\n icon,\n iconBackgroundColor = '#E8F4FD',\n iconColor = '#4A9FD8',\n valuePrefix = '₦',\n progressText,\n badge,\n width = 347,\n className = '',\n}) => {\n const defaultIcon = (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <rect x=\"3\" y=\"6\" width=\"18\" height=\"12\" rx=\"2\" stroke=\"currentColor\" strokeWidth=\"2\" />\n <path d=\"M3 10h18M7 14h4\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n </svg>\n );\n\n return (\n <div\n className={`bg-white border border-[#E6E6E6] rounded-2xl p-4 flex flex-col justify-between transition-all duration-300 ease-in-out hover:border-gray-300 hover:-translate-y-1 cursor-pointer ${className}`}\n style={{\n width: typeof width === 'number' ? `${width}px` : width,\n boxShadow: '0 0 0 0 rgba(0, 0, 0, 0)',\n transition: 'all 0.3s ease-in-out',\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.boxShadow = '0 0 20px 0 rgba(0, 0, 0, 0.1)';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.boxShadow = '0 0 0 0 rgba(0, 0, 0, 0)';\n }}\n >\n <div>\n <div className=\"flex items-center justify-between mb-6\">\n <div\n className=\"w-9 h-9 rounded-full flex items-center justify-center shrink-0 [&>svg]:w-5 [&>svg]:h-5 transition-transform duration-300 ease-in-out group-hover:scale-110\"\n style={{\n backgroundColor: iconBackgroundColor,\n color: iconColor,\n }}\n >\n {icon || defaultIcon}\n </div>\n {badge && (\n <div className=\"bg-[#EBEBEB] text-[#181918] text-[11px] font-medium px-2 py-1 rounded-full border border-[#D1D1D1] transition-colors duration-200\">\n {badge}\n </div>\n )}\n </div>\n <div className=\"text-sm text-[#181918] font-light transition-colors duration-200\">\n {label}\n </div>\n <div className=\"text-[20px] font-bold text-[#181918] transition-all duration-200\">\n {valuePrefix} {value}\n </div>\n </div>\n {progressText && (\n <div className=\"text-xs text-gray-400 font-normal mt-4 transition-colors duration-200\">\n {progressText}\n </div>\n )}\n </div>\n );\n};\n","import type { FC, ReactNode, InputHTMLAttributes, CSSProperties } from 'react';\n\n/**\n * @deprecated SearchInput is deprecated as of v1.0.11. Please use the new Input component instead.\n * The new Input component provides better functionality and consistent styling with Ant Design.\n */\nexport interface SearchInputProps\n extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size'> {\n icon?: ReactNode;\n iconPosition?: 'left' | 'right';\n size?: 'sm' | 'md' | 'lg' | 'responsive';\n fullWidth?: boolean;\n onIconClick?: () => void;\n bgColor?: string;\n borderColor?: string;\n focusBorderColor?: string;\n iconColor?: string;\n textColor?: string;\n placeholderColor?: string;\n rounded?: 'none' | 'sm' | 'md' | 'lg' | 'full';\n style?: CSSProperties;\n}\n\n/**\n * @deprecated SearchInput is deprecated as of v1.0.11. Please use the new Input component instead.\n */\nexport const SearchInput: FC<SearchInputProps> = ({\n icon,\n iconPosition = 'left',\n size = 'md',\n fullWidth = false,\n className = '',\n onIconClick,\n bgColor,\n borderColor,\n focusBorderColor,\n iconColor,\n textColor,\n placeholderColor,\n rounded = 'md',\n style,\n ...props\n}) => {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n '[Shekel Shared Lib] SearchInput is deprecated as of v1.0.11. Please use the new Input component instead for better functionality and consistent styling.'\n );\n }\n\n const containerBaseClasses = 'relative inline-flex items-center';\n\n const inputBaseClasses =\n 'border focus:outline-none focus:ring-1 transition-all duration-200 ease-in-out';\n\n const sizeClasses = {\n sm: 'px-3 py-1.5 text-sm',\n md: 'px-4 py-2 text-base',\n lg: 'px-5 py-3 text-lg',\n responsive: 'px-3 sm:px-4 md:px-5 py-1.5 sm:py-2 md:py-3 text-sm sm:text-base md:text-lg',\n };\n\n const iconSizeClasses = {\n sm: 'w-4 h-4',\n md: 'w-5 h-5',\n lg: 'w-6 h-6',\n responsive: 'w-4 sm:w-5 md:w-6 h-4 sm:h-5 md:h-6',\n };\n\n const roundedClasses = {\n none: 'rounded-none',\n sm: 'rounded-sm',\n md: 'rounded-lg',\n lg: 'rounded-xl',\n full: 'rounded-full',\n };\n\n const paddingWithIcon =\n iconPosition === 'left'\n ? size === 'sm'\n ? 'pl-9'\n : size === 'md'\n ? 'pl-10'\n : size === 'lg'\n ? 'pl-12'\n : 'pl-9 sm:pl-10 md:pl-12'\n : size === 'sm'\n ? 'pr-9'\n : size === 'md'\n ? 'pr-10'\n : size === 'lg'\n ? 'pr-12'\n : 'pr-9 sm:pr-10 md:pr-12';\n\n const widthClass = fullWidth ? 'w-full' : '';\n\n // Build custom styles for colors\n const customStyles: CSSProperties = {\n backgroundColor: bgColor,\n borderColor: borderColor || '#D1D5DB',\n color: textColor,\n ...style,\n };\n\n // Determine placeholder color class\n const placeholderClass = placeholderColor\n ? ''\n : 'placeholder:text-gray-400';\n\n // Build border and default colors\n const defaultBorderClass = borderColor ? '' : 'border-gray-300';\n const defaultTextClass = textColor ? '' : 'text-gray-900';\n const defaultFocusClass = focusBorderColor\n ? ''\n : 'focus:ring-[#EC615B] focus:border-[#EC615B]';\n\n const inputClassName = `${inputBaseClasses} ${!className.includes('px-') && !className.includes('py-') ? sizeClasses[size] : ''} ${\n icon ? paddingWithIcon : ''\n } ${widthClass} ${!className.includes('rounded') ? roundedClasses[rounded] : ''} ${!className.includes('border-') ? defaultBorderClass : ''} ${defaultTextClass} ${defaultFocusClass} ${placeholderClass} ${className}`;\n\n const iconPositionClasses = iconPosition === 'left' ? 'left-3' : 'right-3';\n const defaultIconColor = iconColor || 'text-gray-400';\n const hoverIconColor = iconColor ? '' : 'hover:text-gray-600';\n\n const defaultSearchIcon = (\n <svg\n className={`${iconSizeClasses[size]} ${defaultIconColor}`}\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z\"\n />\n </svg>\n );\n\n return (\n <div className={`${containerBaseClasses} ${widthClass}`}>\n {icon && (\n <div\n className={`absolute ${iconPositionClasses} ${defaultIconColor} ${\n onIconClick ? 'cursor-pointer' : ''\n } ${hoverIconColor}`}\n onClick={onIconClick}\n >\n {icon === true ? defaultSearchIcon : icon}\n </div>\n )}\n <input\n type=\"text\"\n className={inputClassName}\n style={{\n ...customStyles,\n ...(focusBorderColor && {\n '--focus-border-color': focusBorderColor,\n } as CSSProperties),\n ...(placeholderColor && {\n '--placeholder-color': placeholderColor,\n } as CSSProperties),\n }}\n {...props}\n />\n </div>\n );\n};\n\nexport default SearchInput;\n","import React from 'react';\nimport { Card as AntCard, CardProps as AntCardProps } from 'antd';\n\nexport interface CardProps extends AntCardProps {\n shadow?: 'sm' | 'md' | 'lg' | 'xl';\n}\n\nexport const Card: React.FC<CardProps> = ({\n shadow = 'md',\n className = '',\n children,\n ...props\n}) => {\n const shadowClasses = {\n sm: 'shadow-sm',\n md: 'shadow-md',\n lg: 'shadow-lg',\n xl: 'shadow-xl'\n };\n\n const combinedClassName = `${shadowClasses[shadow]} rounded-lg ${className}`;\n\n return (\n <AntCard\n className={combinedClassName}\n {...props}\n >\n {children}\n </AntCard>\n );\n};\n","import { useState, useRef, useEffect } from 'react';\nimport type { FC, ReactNode, CSSProperties } from 'react';\n\nexport interface DropdownMenuItem {\n key: string;\n label: ReactNode;\n icon?: ReactNode;\n disabled?: boolean;\n danger?: boolean;\n onClick?: () => void;\n}\n\nexport interface DropdownProps {\n items: DropdownMenuItem[];\n trigger?: 'click' | 'hover';\n placement?: 'bottomLeft' | 'bottomRight' | 'topLeft' | 'topRight';\n children: ReactNode;\n className?: string;\n overlayClassName?: string;\n disabled?: boolean;\n size?: 'sm' | 'md' | 'lg' | 'responsive';\n menuBgColor?: string;\n menuItemHoverColor?: string;\n dangerColor?: string;\n borderColor?: string;\n style?: CSSProperties;\n}\n\nexport const Dropdown: FC<DropdownProps> = ({\n items,\n trigger = 'click',\n placement = 'bottomLeft',\n children,\n className = '',\n overlayClassName = '',\n disabled = false,\n size = 'md',\n menuBgColor,\n menuItemHoverColor,\n dangerColor,\n borderColor,\n style,\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const dropdownRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const handleClickOutside = (event: Event) => {\n if (dropdownRef.current && !dropdownRef.current.contains(event.target as Node)) {\n setIsOpen(false);\n }\n };\n\n if (isOpen) {\n document.addEventListener('mousedown', handleClickOutside);\n }\n\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, [isOpen]);\n\n const handleTriggerClick = () => {\n if (!disabled && trigger === 'click') {\n setIsOpen(!isOpen);\n }\n };\n\n const handleTriggerMouseEnter = () => {\n if (!disabled && trigger === 'hover') {\n setIsOpen(true);\n }\n };\n\n const handleTriggerMouseLeave = () => {\n if (!disabled && trigger === 'hover') {\n setIsOpen(false);\n }\n };\n\n const handleMenuItemClick = (item: DropdownMenuItem) => {\n if (!item.disabled && item.onClick) {\n item.onClick();\n }\n setIsOpen(false);\n };\n\n const placementClasses = {\n bottomLeft: 'top-full left-0 mt-1',\n bottomRight: 'top-full right-0 mt-1',\n topLeft: 'bottom-full left-0 mb-1',\n topRight: 'bottom-full right-0 mb-1',\n };\n\n const animationClasses = placement.startsWith('bottom')\n ? 'dropdown-slide-down'\n : 'dropdown-slide-up';\n\n const sizeClasses = {\n sm: 'min-w-[120px] text-xs',\n md: 'min-w-[160px] text-sm',\n lg: 'min-w-[220px] text-base',\n responsive: 'min-w-[120px] sm:min-w-[160px] md:min-w-[200px] lg:min-w-[240px] text-xs sm:text-sm md:text-base',\n };\n\n const itemSizeClasses = {\n sm: 'px-3 py-1.5 text-xs gap-1.5',\n md: 'px-4 py-2 text-sm gap-2',\n lg: 'px-5 py-3 text-base gap-2.5',\n responsive: 'px-3 sm:px-4 md:px-5 py-1.5 sm:py-2 md:py-3 text-xs sm:text-sm md:text-base gap-1.5 sm:gap-2 md:gap-2.5',\n };\n\n // Color styling helpers\n const defaultHoverColor = 'hover:bg-gray-50';\n const defaultBorderColor = 'border-gray-200';\n const defaultDangerColor = 'text-red-600';\n\n // Hover color handling\n const hoverColorStyle = menuItemHoverColor ? { backgroundColor: menuItemHoverColor } : {};\n const customHoverClass = menuItemHoverColor ? '' : defaultHoverColor;\n\n // Danger color handling\n const customDangerStyle = dangerColor ? { color: dangerColor } : {};\n const dangerHoverBgStyle = dangerColor ? { backgroundColor: dangerColor + '15' } : {};\n\n // Border color handling\n const finalBorderColor = borderColor || defaultBorderColor;\n\n return (\n <div\n ref={dropdownRef}\n className={`relative inline-block ${className}`}\n onMouseEnter={handleTriggerMouseEnter}\n onMouseLeave={handleTriggerMouseLeave}\n style={style}\n >\n <div\n onClick={handleTriggerClick}\n className={`inline-flex ${disabled ? 'cursor-not-allowed opacity-50' : 'cursor-pointer'}`}\n >\n {children}\n </div>\n\n {isOpen && !disabled && (\n <div\n className={`absolute ${placementClasses[placement]} ${animationClasses} z-50 ${sizeClasses[size]} ${overlayClassName}`}\n >\n <div\n className={`dropdown-menu rounded-lg shadow-lg border py-1 overflow-hidden ${finalBorderColor}`}\n style={{ backgroundColor: menuBgColor || '#ffffff' }}\n >\n {items.map((item) => {\n // Determine item-specific styles\n let itemStyle: React.CSSProperties = {};\n\n if (!item.disabled) {\n if (item.danger) {\n // Danger items use custom danger color if provided\n itemStyle = {\n ...customDangerStyle,\n ...dangerHoverBgStyle,\n };\n } else if (menuItemHoverColor) {\n // Custom hover color applied inline\n itemStyle = hoverColorStyle;\n }\n }\n\n return (\n <div\n key={item.key}\n onClick={() => handleMenuItemClick(item)}\n className={`\n dropdown-menu-item\n flex items-center cursor-pointer transition-all duration-200 ease-out\n ${!overlayClassName.includes('px-') && !overlayClassName.includes('py-') ? itemSizeClasses[size] : ''}\n ${item.disabled ? 'opacity-50 cursor-not-allowed' : customHoverClass}\n ${item.danger ? (dangerColor ? '' : defaultDangerColor) : 'text-gray-700'}\n `}\n style={itemStyle}\n >\n {item.icon && <span className=\"flex-shrink-0\">{item.icon}</span>}\n <span>{item.label}</span>\n </div>\n );\n })}\n </div>\n </div>\n )}\n </div>\n );\n};\n\nexport default Dropdown;\n","import { useState, useRef, useEffect } from 'react';\nimport type { FC, MouseEvent, CSSProperties } from 'react';\n\nexport interface SelectOption {\n value: string | number;\n label: string;\n disabled?: boolean;\n}\n\nexport interface SelectProps {\n options: SelectOption[];\n value?: string | number;\n defaultValue?: string | number;\n placeholder?: string;\n onChange?: (value: string | number) => void;\n disabled?: boolean;\n size?: 'sm' | 'md' | 'lg' | 'responsive';\n fullWidth?: boolean;\n className?: string;\n allowClear?: boolean;\n showSearch?: boolean;\n searchPlaceholder?: string;\n bgColor?: string;\n borderColor?: string;\n focusBorderColor?: string;\n selectedBgColor?: string;\n selectedTextColor?: string;\n hoverBgColor?: string;\n rounded?: 'none' | 'sm' | 'md' | 'lg' | 'full';\n style?: CSSProperties;\n}\n\nexport const Select: FC<SelectProps> = ({\n options,\n value: controlledValue,\n defaultValue,\n placeholder = 'Select an option',\n onChange,\n disabled = false,\n size = 'md',\n fullWidth = false,\n className = '',\n allowClear = false,\n showSearch = false,\n searchPlaceholder = 'Search...',\n bgColor,\n borderColor,\n focusBorderColor = '#EC615B',\n selectedBgColor,\n selectedTextColor,\n hoverBgColor,\n rounded = 'lg',\n style,\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const [internalValue, setInternalValue] = useState<string | number | undefined>(\n defaultValue\n );\n const [searchQuery, setSearchQuery] = useState('');\n const selectRef = useRef<HTMLDivElement>(null);\n const searchInputRef = useRef<HTMLInputElement>(null);\n\n const value = controlledValue !== undefined ? controlledValue : internalValue;\n\n useEffect(() => {\n const handleClickOutside = (event: Event) => {\n if (selectRef.current && !selectRef.current.contains(event.target as Node)) {\n setIsOpen(false);\n setSearchQuery('');\n }\n };\n\n if (isOpen) {\n document.addEventListener('mousedown', handleClickOutside);\n if (showSearch && searchInputRef.current) {\n searchInputRef.current.focus();\n }\n }\n\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, [isOpen, showSearch]);\n\n const handleSelect = (optionValue: string | number) => {\n if (controlledValue === undefined) {\n setInternalValue(optionValue);\n }\n onChange?.(optionValue);\n setIsOpen(false);\n setSearchQuery('');\n };\n\n const handleClear = (e: MouseEvent) => {\n e.stopPropagation();\n if (controlledValue === undefined) {\n setInternalValue(undefined);\n }\n onChange?.('' as any);\n };\n\n const selectedOption = options.find((opt) => opt.value === value);\n\n const filteredOptions = showSearch\n ? options.filter((option) =>\n option.label.toLowerCase().includes(searchQuery.toLowerCase())\n )\n : options;\n\n const sizeClasses = {\n sm: 'px-3 py-1.5 text-sm',\n md: 'px-4 py-2 text-base',\n lg: 'px-5 py-3 text-lg',\n responsive: 'px-3 sm:px-4 md:px-5 py-1.5 sm:py-2 md:py-3 text-sm sm:text-base md:text-lg',\n };\n\n const roundedClasses = {\n none: 'rounded-none',\n sm: 'rounded-sm',\n md: 'rounded-md',\n lg: 'rounded-lg',\n full: 'rounded-full',\n };\n\n const widthClass = fullWidth ? 'w-full' : 'min-w-[200px]';\n\n // Helper function to apply custom colors to inline styles\n const getTriggerStyles = (): CSSProperties => {\n const styles: CSSProperties = {};\n if (bgColor) styles.backgroundColor = bgColor;\n if (borderColor) styles.borderColor = borderColor;\n return styles;\n };\n\n const getSelectedOptionStyles = (): CSSProperties => {\n const styles: CSSProperties = {};\n if (selectedBgColor) styles.backgroundColor = selectedBgColor;\n if (selectedTextColor) styles.color = selectedTextColor;\n return styles;\n };\n\n const ChevronIcon = (\n <svg\n className={`w-4 h-4 transition-transform duration-200 ease-out ${isOpen ? 'rotate-180' : ''}`}\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M19 9l-7 7-7-7\" />\n </svg>\n );\n\n const ClearIcon = (\n <svg className=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M6 18L18 6M6 6l12 12\" />\n </svg>\n );\n\n return (\n <div ref={selectRef} className={`relative inline-block ${widthClass}`} style={style}>\n <div\n onClick={() => !disabled && setIsOpen(!isOpen)}\n className={`\n select-trigger\n flex items-center justify-between gap-2\n border transition-all duration-200 ease-out\n ${!className.includes('px-') && !className.includes('py-') && !className.includes('h-') ? sizeClasses[size] : ''}\n ${!className.includes('rounded') ? roundedClasses[rounded] : ''}\n ${disabled ? 'opacity-50 cursor-not-allowed' : 'cursor-pointer'}\n ${isOpen ? 'ring-2 ring-opacity-20' : ''}\n ${className}\n `}\n style={{\n ...getTriggerStyles(),\n backgroundColor: bgColor || getTriggerStyles().backgroundColor || '#FFFFFF',\n borderColor: borderColor || getTriggerStyles().borderColor || '#D1D5DB',\n ...(isOpen && {\n borderColor: focusBorderColor,\n boxShadow: `0 0 0 2px ${focusBorderColor}20`,\n }),\n ...(!disabled && !isOpen && hoverBgColor && {\n cursor: 'pointer',\n }),\n }}\n onMouseEnter={(e) => {\n if (!disabled && hoverBgColor) {\n e.currentTarget.style.backgroundColor = hoverBgColor;\n }\n }}\n onMouseLeave={(e) => {\n if (bgColor) {\n e.currentTarget.style.backgroundColor = bgColor;\n } else {\n e.currentTarget.style.backgroundColor = '#FFFFFF';\n }\n }}\n >\n <span className={selectedOption ? 'text-gray-900' : 'text-gray-400'}>\n {selectedOption ? selectedOption.label : placeholder}\n </span>\n <div className=\"flex items-center gap-1\">\n {allowClear && value && !disabled && (\n <span\n onClick={handleClear}\n className=\"text-gray-400 hover:text-gray-600 transition-colors duration-200 ease-out\"\n >\n {ClearIcon}\n </span>\n )}\n <span className=\"text-gray-400\">{ChevronIcon}</span>\n </div>\n </div>\n\n {isOpen && !disabled && (\n <div className=\"absolute top-full left-0 right-0 mt-1 z-50 dropdown-slide-down\">\n <div className={`select-dropdown bg-white shadow-lg border border-gray-200 py-1 max-h-[300px] overflow-auto ${roundedClasses[rounded]}`}>\n {showSearch && (\n <div className=\"px-2 py-2 border-b border-gray-200\">\n <input\n ref={searchInputRef}\n type=\"text\"\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n placeholder={searchPlaceholder}\n className=\"w-full px-3 py-1.5 text-sm border border-gray-300 rounded focus:outline-none focus:ring-2 transition-all duration-200 ease-out\"\n style={{\n borderColor: borderColor,\n boxShadow: `0 0 0 2px ${focusBorderColor}20`,\n }}\n onClick={(e) => e.stopPropagation()}\n />\n </div>\n )}\n {filteredOptions.length === 0 ? (\n <div className=\"px-4 py-3 text-sm text-gray-500 text-center\">\n No results found\n </div>\n ) : (\n filteredOptions.map((option) => (\n <div\n key={option.value}\n onClick={() => !option.disabled && handleSelect(option.value)}\n className={`\n select-option\n px-4 py-2 text-sm transition-all duration-200 ease-out\n ${option.disabled ? 'opacity-50 cursor-not-allowed' : 'cursor-pointer'}\n `}\n style={{\n ...(option.value === value ? getSelectedOptionStyles() : {}),\n backgroundColor: option.value === value ? (selectedBgColor || '#FCEAE9') : undefined,\n color: option.value === value ? (selectedTextColor || '#EC615B') : '#181918',\n fontWeight: option.value === value ? 'medium' : undefined,\n }}\n onMouseEnter={(e) => {\n if (!option.disabled && option.value !== value) {\n e.currentTarget.style.backgroundColor = hoverBgColor || '#F3F4F6';\n }\n }}\n onMouseLeave={(e) => {\n if (option.value !== value) {\n e.currentTarget.style.backgroundColor = 'transparent';\n }\n }}\n >\n {option.label}\n </div>\n ))\n )}\n </div>\n </div>\n )}\n </div>\n );\n};\n\nexport default Select;\n","import { useState } from 'react';\nimport type { FC, ReactNode, HTMLAttributes, CSSProperties } from 'react';\nimport { Select } from './Select';\n\nexport interface ColumnDef<T = any> {\n key: string;\n title: string;\n dataIndex?: string;\n render?: (value: any, record: T, index: number) => ReactNode;\n width?: string | number;\n align?: 'left' | 'center' | 'right';\n sortable?: boolean;\n}\n\nexport interface TableProps<T = any> {\n columns: ColumnDef<T>[];\n dataSource: T[];\n rowKey?: string | ((record: T) => string);\n pagination?: PaginationConfig | false;\n loading?: boolean;\n onRow?: (record: T, index: number) => HTMLAttributes<HTMLTableRowElement>;\n className?: string;\n bordered?: boolean;\n striped?: boolean;\n size?: 'sm' | 'md' | 'lg' | 'responsive';\n headerBgColor?: string;\n headerTextColor?: string;\n rowHoverColor?: string;\n borderColor?: string;\n stripedRowColor?: string;\n rounded?: 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';\n style?: CSSProperties;\n}\n\nexport interface PaginationConfig {\n current?: number;\n pageSize?: number;\n total?: number;\n onChange?: (page: number, pageSize: number) => void;\n showSizeChanger?: boolean;\n pageSizeOptions?: number[];\n showTotal?: boolean;\n size?: 'sm' | 'md' | 'lg';\n}\n\nexport const Table = <T extends Record<string, any>>({\n columns,\n dataSource,\n rowKey = 'id',\n pagination,\n loading = false,\n onRow,\n className = '',\n bordered = false,\n striped = false,\n size = 'md',\n headerBgColor,\n headerTextColor,\n rowHoverColor,\n borderColor,\n stripedRowColor,\n rounded = 'md',\n style,\n}: TableProps<T>) => {\n const [currentPage, setCurrentPage] = useState(\n pagination && typeof pagination === 'object' ? pagination.current || 1 : 1\n );\n const [pageSize, setPageSize] = useState(\n pagination && typeof pagination === 'object' ? pagination.pageSize || 10 : 10\n );\n\n // Size configuration for responsive sizing\n const sizeConfig = {\n sm: {\n headerPadding: 'px-3 py-2',\n headerFontSize: 'text-xs',\n rowPadding: 'px-3 py-2',\n rowFontSize: 'text-xs',\n containerRounded: 'rounded-md',\n },\n md: {\n headerPadding: 'px-4 py-3',\n headerFontSize: 'text-xs',\n rowPadding: 'px-4 py-3',\n rowFontSize: 'text-sm',\n containerRounded: 'rounded-lg',\n },\n lg: {\n headerPadding: 'px-6 py-4',\n headerFontSize: 'text-sm',\n rowPadding: 'px-6 py-4',\n rowFontSize: 'text-base',\n containerRounded: 'rounded-xl',\n },\n responsive: {\n headerPadding: 'px-2 sm:px-3 md:px-4 py-2 sm:py-2.5 md:py-3',\n headerFontSize: 'text-xs sm:text-xs md:text-sm',\n rowPadding: 'px-2 sm:px-3 md:px-4 py-2 sm:py-2.5 md:py-3',\n rowFontSize: 'text-xs sm:text-xs md:text-sm',\n containerRounded: 'rounded-md sm:rounded-lg md:rounded-lg',\n },\n };\n\n // Rounded configuration\n const roundedClasses = {\n none: '',\n sm: 'rounded-sm',\n md: 'rounded-md',\n lg: 'rounded-lg',\n xl: 'rounded-xl',\n '2xl': 'rounded-2xl',\n };\n\n const currentSizeConfig = sizeConfig[size];\n const currentRoundedClass = roundedClasses[rounded];\n\n const getRowKey = (record: T, index: number): string => {\n if (typeof rowKey === 'function') {\n return rowKey(record);\n }\n return record[rowKey] || String(index);\n };\n\n const getValue = (record: T, dataIndex?: string) => {\n if (!dataIndex) return record;\n return dataIndex.split('.').reduce((obj, key) => obj?.[key], record);\n };\n\n // Pagination logic\n const paginatedData =\n pagination === false\n ? dataSource\n : dataSource.slice((currentPage - 1) * pageSize, currentPage * pageSize);\n\n const handlePageChange = (page: number) => {\n setCurrentPage(page);\n if (pagination && typeof pagination === 'object' && pagination.onChange) {\n pagination.onChange(page, pageSize);\n }\n };\n\n const handlePageSizeChange = (newPageSize: number) => {\n setPageSize(newPageSize);\n setCurrentPage(1);\n if (pagination && typeof pagination === 'object' && pagination.onChange) {\n pagination.onChange(1, newPageSize);\n }\n };\n\n return (\n <div className=\"w-full\" style={style}>\n <div\n className={`overflow-x-auto ${currentRoundedClass || 'rounded-2xl'} border`}\n style={{ borderColor: borderColor || '#EEEEEE' }}\n >\n <table className={`w-full ${bordered ? 'border-collapse' : ''} ${className}`}>\n <thead\n style={{\n backgroundColor: headerBgColor || '#F5F6F7',\n color: headerTextColor || '#333333',\n }}\n >\n <tr>\n {columns.map((column, idx) => (\n <th\n key={column.key}\n className={`${currentSizeConfig.headerPadding} text-left ${currentSizeConfig.headerFontSize} font-medium uppercase tracking-wider ${\n bordered && idx !== columns.length - 1 ? 'border-r' : ''\n } ${\n column.align === 'center'\n ? 'text-center'\n : column.align === 'right'\n ? 'text-right'\n : ''\n }`}\n style={{\n width: column.width,\n borderColor: borderColor || '#EEEEEE',\n color: headerTextColor || '#333333',\n }}\n >\n {column.title}\n </th>\n ))}\n </tr>\n </thead>\n <tbody\n className=\"bg-white divide-y\"\n style={{ borderColor: borderColor || '#e5e5e5' }}\n >\n {loading ? (\n <tr>\n <td\n colSpan={columns.length}\n className={`${currentSizeConfig.rowPadding} py-8 text-center`}\n style={{ color: '#333333' }}\n >\n <div className=\"flex justify-center items-center\">\n <svg\n className=\"animate-spin h-5 w-5 mr-2\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <circle\n className=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n />\n <path\n className=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n />\n </svg>\n Loading...\n </div>\n </td>\n </tr>\n ) : paginatedData.length === 0 ? (\n <tr>\n <td\n colSpan={columns.length}\n className={`${currentSizeConfig.rowPadding} py-8 text-center`}\n style={{ color: '#333333' }}\n >\n No data\n </td>\n </tr>\n ) : (\n paginatedData.map((record, index) => {\n const rowProps = onRow ? onRow(record, index) : {};\n const stripedBg = striped && index % 2 === 1 ? (stripedRowColor || '#F5F6F7') : 'transparent';\n const hoverBg = rowHoverColor || '#f3f4f6';\n return (\n <tr\n key={getRowKey(record, index)}\n className=\"transition-colors duration-200 ease-out\"\n style={{\n backgroundColor: stripedBg,\n }}\n onMouseEnter={(e) => {\n if (rowHoverColor || !striped || index % 2 === 0) {\n e.currentTarget.style.backgroundColor = hoverBg;\n }\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = stripedBg;\n }}\n {...rowProps}\n >\n {columns.map((column, colIdx) => {\n const value = getValue(record, column.dataIndex);\n const content = column.render ? column.render(value, record, index) : value;\n\n return (\n <td\n key={column.key}\n className={`${currentSizeConfig.rowPadding} ${currentSizeConfig.rowFontSize} text-gray-900 ${\n bordered && colIdx !== columns.length - 1 ? 'border-r' : ''\n } ${\n column.align === 'center'\n ? 'text-center'\n : column.align === 'right'\n ? 'text-right'\n : ''\n }`}\n style={{\n borderColor: borderColor || '#EEEEEE',\n }}\n >\n {content as ReactNode}\n </td>\n );\n })}\n </tr>\n );\n })\n )}\n </tbody>\n </table>\n </div>\n\n {/* Pagination */}\n {pagination !== false && (\n <Pagination\n current={currentPage}\n pageSize={pageSize}\n total={dataSource.length}\n onChange={handlePageChange}\n onPageSizeChange={handlePageSizeChange}\n showSizeChanger={\n pagination && typeof pagination === 'object' ? pagination.showSizeChanger : true\n }\n pageSizeOptions={\n pagination && typeof pagination === 'object'\n ? pagination.pageSizeOptions\n : [10, 20, 50, 100]\n }\n showTotal={pagination && typeof pagination === 'object' ? pagination.showTotal : true}\n size={\n pagination && typeof pagination === 'object' && pagination.size\n ? pagination.size\n : size === 'responsive'\n ? 'md'\n : size\n }\n />\n )}\n </div>\n );\n};\n\ninterface PaginationProps {\n current: number;\n pageSize: number;\n total: number;\n onChange: (page: number) => void;\n onPageSizeChange: (pageSize: number) => void;\n showSizeChanger?: boolean;\n pageSizeOptions?: number[];\n showTotal?: boolean;\n size?: 'sm' | 'md' | 'lg';\n}\n\nconst Pagination: FC<PaginationProps> = ({\n current,\n pageSize,\n total,\n onChange,\n onPageSizeChange,\n showSizeChanger = true,\n pageSizeOptions = [10, 20, 50, 100],\n showTotal = true,\n size = 'md',\n}) => {\n const totalPages = Math.ceil(total / pageSize);\n const startItem = (current - 1) * pageSize + 1;\n const endItem = Math.min(current * pageSize, total);\n\n const sizeClasses = {\n sm: {\n button: 'px-2.5 py-1 text-xs',\n icon: 'h-3.5 w-3.5',\n nav: 'px-1.5 py-1.5',\n },\n md: {\n button: 'px-4 py-2 text-sm',\n icon: 'h-5 w-5',\n nav: 'px-2 py-2',\n },\n lg: {\n button: 'px-5 py-2.5 text-base',\n icon: 'h-6 w-6',\n nav: 'px-3 py-3',\n },\n };\n\n const getPageNumbers = () => {\n const pages: (number | string)[] = [];\n const maxVisible = 7;\n\n if (totalPages <= maxVisible) {\n for (let i = 1; i <= totalPages; i++) {\n pages.push(i);\n }\n } else {\n if (current <= 3) {\n for (let i = 1; i <= 5; i++) pages.push(i);\n pages.push('...');\n pages.push(totalPages);\n } else if (current >= totalPages - 2) {\n pages.push(1);\n pages.push('...');\n for (let i = totalPages - 4; i <= totalPages; i++) pages.push(i);\n } else {\n pages.push(1);\n pages.push('...');\n for (let i = current - 1; i <= current + 1; i++) pages.push(i);\n pages.push('...');\n pages.push(totalPages);\n }\n }\n\n return pages;\n };\n\n return (\n <div className=\"flex items-center justify-between px-4 py-3 border-t border-[#EEEEEE] sm:px-6 mt-4\">\n {showTotal && (\n <div className=\"text-sm text-[#181918]\">\n {startItem}-{endItem} of {total} items\n </div>\n )}\n\n <div className=\"flex items-center gap-2\">\n {showSizeChanger && (\n <Select\n value={pageSize.toString()}\n onChange={(value) => onPageSizeChange(Number(value))}\n options={pageSizeOptions.map((size) => ({\n value: size.toString(),\n label: `${size} / page`,\n }))}\n size=\"sm\"\n className=\"w-32\"\n />\n )}\n\n <nav className=\"inline-flex gap-1 items-center\" aria-label=\"Pagination\">\n <button\n onClick={() => onChange(current - 1)}\n disabled={current === 1}\n className={`relative inline-flex items-center justify-center rounded-md ${sizeClasses[size].nav} text-[#181918] hover:bg-gray-100 focus:z-20 disabled:opacity-30 disabled:cursor-not-allowed disabled:hover:bg-transparent transition-all duration-300 ease-out hover:scale-110 active:scale-95`}\n >\n <svg className={sizeClasses[size].icon} viewBox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\">\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M15 19l-7-7 7-7\"\n />\n </svg>\n </button>\n\n {getPageNumbers().map((page, index) => {\n if (page === '...') {\n return (\n <span\n key={`ellipsis-${index}`}\n className={`relative inline-flex items-center justify-center ${sizeClasses[size].button} font-normal text-[#181918]`}\n >\n ...\n </span>\n );\n }\n\n return (\n <button\n key={page}\n onClick={() => onChange(page as number)}\n className={`relative inline-flex items-center justify-center rounded-md ${sizeClasses[size].button} font-medium transition-all duration-300 ease-out focus:z-20 hover:scale-105 active:scale-95 ${\n current === page\n ? 'bg-[#EC615B] text-white shadow-sm'\n : 'text-[#181918] hover:bg-gray-100'\n }`}\n >\n {page}\n </button>\n );\n })}\n\n <button\n onClick={() => onChange(current + 1)}\n disabled={current === totalPages}\n className={`relative inline-flex items-center justify-center rounded-md ${sizeClasses[size].nav} text-[#181918] hover:bg-gray-100 focus:z-20 disabled:opacity-30 disabled:cursor-not-allowed disabled:hover:bg-transparent transition-all duration-300 ease-out hover:scale-110 active:scale-95`}\n >\n <svg className={sizeClasses[size].icon} viewBox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\">\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M9 5l7 7-7 7\"\n />\n </svg>\n </button>\n </nav>\n </div>\n </div>\n );\n};\n\nexport default Table;\n","import type { FC, ReactNode, ChangeEvent, CSSProperties } from 'react';\n\nexport interface TableTopProps {\n // Existing props\n title?: string;\n description?: string;\n searchPlaceholder?: string;\n onSearch?: (value: string) => void;\n actions?: ReactNode;\n filters?: ReactNode;\n className?: string;\n\n // New responsive props\n size?: 'sm' | 'md' | 'lg' | 'responsive';\n\n // Custom color props\n titleColor?: string;\n descriptionColor?: string;\n searchBgColor?: string;\n searchBorderColor?: string;\n searchFocusBorderColor?: string;\n\n // Search input border radius\n rounded?: 'none' | 'sm' | 'md' | 'lg' | 'full';\n\n // Custom styles\n style?: CSSProperties;\n\n // New props for conditional action button display\n hideActionButtons?: boolean;\n selectedActionButton?: ReactNode;\n}\n\nexport const TableTop: FC<TableTopProps> = ({\n title,\n description,\n searchPlaceholder = 'Search...',\n onSearch,\n actions,\n filters,\n className = '',\n size = 'responsive',\n titleColor,\n descriptionColor,\n searchBgColor = 'white',\n searchBorderColor = '#d1d5db',\n searchFocusBorderColor = '#3b82f6',\n rounded = 'md',\n style,\n hideActionButtons = false,\n selectedActionButton,\n}) => {\n const handleSearchChange = (e: ChangeEvent<HTMLInputElement>) => {\n onSearch?.(e.target.value);\n };\n\n // Size configuration\n const sizeConfig = {\n sm: {\n titleSize: 'text-lg',\n titleWeight: 'font-semibold',\n descriptionSize: 'text-xs',\n searchInputSize: 'text-xs',\n searchInputPy: 'py-1.5',\n searchPaddingLeft: 'pl-8',\n iconSize: 'h-4 w-4',\n spacing: 'space-y-2',\n gap: 'gap-2',\n maxWidth: 'max-w-sm',\n descriptionMargin: 'mt-0.5',\n },\n md: {\n titleSize: 'text-xl',\n titleWeight: 'font-semibold',\n descriptionSize: 'text-sm',\n searchInputSize: 'text-sm',\n searchInputPy: 'py-2',\n searchPaddingLeft: 'pl-10',\n iconSize: 'h-5 w-5',\n spacing: 'space-y-3',\n gap: 'gap-3',\n maxWidth: 'max-w-md',\n descriptionMargin: 'mt-1',\n },\n lg: {\n titleSize: 'text-2xl',\n titleWeight: 'font-bold',\n descriptionSize: 'text-base',\n searchInputSize: 'text-base',\n searchInputPy: 'py-2.5',\n searchPaddingLeft: 'pl-12',\n iconSize: 'h-6 w-6',\n spacing: 'space-y-4',\n gap: 'gap-4',\n maxWidth: 'max-w-lg',\n descriptionMargin: 'mt-2',\n },\n responsive: {\n titleSize: 'text-lg sm:text-xl md:text-2xl',\n titleWeight: 'font-semibold md:font-bold',\n descriptionSize: 'text-xs sm:text-sm md:text-base',\n searchInputSize: 'text-xs sm:text-sm md:text-base',\n searchInputPy: 'py-1.5 sm:py-2 md:py-2.5',\n searchPaddingLeft: 'pl-8 sm:pl-10 md:pl-12',\n iconSize: 'h-4 w-4 sm:h-5 sm:w-5 md:h-6 md:w-6',\n spacing: 'space-y-2 sm:space-y-3 md:space-y-4',\n gap: 'gap-2 sm:gap-3 md:gap-4',\n maxWidth: 'max-w-sm md:max-w-md lg:max-w-lg',\n descriptionMargin: 'mt-0.5 sm:mt-1 md:mt-2',\n },\n };\n\n const config = sizeConfig[size];\n\n // Border radius configuration\n const radiusConfig = {\n none: 'rounded-none',\n sm: 'rounded-sm',\n md: 'rounded-md',\n lg: 'rounded-lg',\n full: 'rounded-full',\n };\n\n const radiusClass = radiusConfig[rounded];\n\n // Build inline styles for custom colors\n const searchInputStyle: CSSProperties = {\n backgroundColor: searchBgColor,\n borderColor: searchBorderColor,\n };\n\n return (\n <div\n className={`${config.spacing} mb-4 ${className}`}\n style={style}\n >\n {/* Title and Description */}\n {(title || description) && (\n <div>\n {title && (\n <h2\n className={`${config.titleSize} ${config.titleWeight}`}\n style={{ color: titleColor || '#111827' }}\n >\n {title}\n </h2>\n )}\n {description && (\n <p\n className={`${config.descriptionSize} ${config.descriptionMargin}`}\n style={{ color: descriptionColor || '#6b7280' }}\n >\n {description}\n </p>\n )}\n </div>\n )}\n\n {/* Search and Actions Row */}\n <div className={`flex flex-col sm:flex-row items-stretch sm:items-center justify-between ${config.gap}`}>\n {/* Search Input */}\n {onSearch && (\n <div className={`flex-1 ${config.maxWidth}`}>\n <div className=\"relative\">\n <div className=\"absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none\">\n <svg\n className={`${config.iconSize} text-gray-400`}\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z\"\n />\n </svg>\n </div>\n <input\n type=\"text\"\n placeholder={searchPlaceholder}\n onChange={handleSearchChange}\n className={`block w-full ${config.searchPaddingLeft} pr-3 ${config.searchInputPy} border ${radiusClass} focus:outline-none focus:ring-2 focus:ring-opacity-50 ${config.searchInputSize} transition-colors duration-200`}\n style={searchInputStyle}\n onFocus={(e) => {\n e.currentTarget.style.borderColor = searchFocusBorderColor;\n e.currentTarget.style.boxShadow = `0 0 0 2px rgba(59, 130, 246, 0.1)`;\n }}\n onBlur={(e) => {\n e.currentTarget.style.borderColor = searchBorderColor;\n e.currentTarget.style.boxShadow = 'none';\n }}\n />\n </div>\n </div>\n )}\n\n {/* Actions (Buttons) */}\n <div className={`flex items-center gap-2 w-full sm:w-auto`}>\n {hideActionButtons && selectedActionButton ? (\n selectedActionButton\n ) : (\n actions\n )}\n </div>\n </div>\n\n {/* Filters Row */}\n {filters && (\n <div className={`flex flex-wrap items-center ${config.gap}`}>\n {filters}\n </div>\n )}\n </div>\n );\n};\n\nexport default TableTop;\n","import { useEffect, useState, CSSProperties } from 'react';\nimport type { FC, ReactNode, MouseEvent } from 'react';\n\ntype ModalSize = 'sm' | 'md' | 'lg' | 'xl' | 'full' | 'responsive';\n\nconst widthMap: Record<ModalSize, string> = {\n sm: '384px',\n md: '448px',\n lg: '512px',\n xl: '600px',\n full: '100%',\n responsive: '90vw',\n};\n\nexport interface ModalProps {\n open: boolean;\n onClose: () => void;\n title?: string;\n children: ReactNode;\n footer?: ReactNode;\n width?: string | number;\n size?: ModalSize;\n closable?: boolean;\n maskClosable?: boolean;\n centered?: boolean;\n className?: string;\n bgColor?: string;\n headerBgColor?: string;\n overlayColor?: string;\n bodyClassName?: string;\n headerClassName?: string;\n maxHeight?: string | number;\n}\n\nexport const Modal: FC<ModalProps> = ({\n open,\n onClose,\n title,\n children,\n footer,\n width,\n size = 'md',\n closable = true,\n maskClosable = true,\n centered = true,\n className = '',\n bgColor = '#ffffff',\n headerBgColor = '#ffffff',\n overlayColor = 'rgba(0, 0, 0, 0.5)',\n bodyClassName = '',\n headerClassName = '',\n maxHeight = '70vh',\n}) => {\n const [isVisible, setIsVisible] = useState(false);\n const [isAnimating, setIsAnimating] = useState(false);\n\n // Determine effective width\n const effectiveWidth = width || widthMap[size];\n const effectiveWidthNum = typeof effectiveWidth === 'number' ? `${effectiveWidth}px` : effectiveWidth;\n\n // Prepare modal style\n const modalStyle: CSSProperties = {\n width: effectiveWidthNum,\n maxWidth: '90vw',\n backgroundColor: bgColor,\n };\n\n // Prepare header style\n const headerStyle: CSSProperties = {\n backgroundColor: headerBgColor,\n };\n\n // Prepare overlay style\n const overlayStyle: CSSProperties = {\n backgroundColor: overlayColor,\n };\n\n useEffect(() => {\n if (open) {\n setIsVisible(true);\n // Small delay to trigger animation\n setTimeout(() => setIsAnimating(true), 10);\n document.body.style.overflow = 'hidden';\n } else {\n setIsAnimating(false);\n // Wait for animation to complete before unmounting\n const timer = setTimeout(() => {\n setIsVisible(false);\n }, 200);\n document.body.style.overflow = 'unset';\n return () => clearTimeout(timer);\n }\n }, [open]);\n\n // Close on Escape key\n useEffect(() => {\n const handleEscape = (e: KeyboardEvent) => {\n if (e.key === 'Escape' && closable && open) {\n onClose();\n }\n };\n\n if (open) {\n document.addEventListener('keydown', handleEscape);\n }\n\n return () => {\n document.removeEventListener('keydown', handleEscape);\n };\n }, [open, onClose, closable]);\n\n if (!isVisible) return null;\n\n const handleMaskClick = () => {\n if (maskClosable) {\n onClose();\n }\n };\n\n const handleModalClick = (e: MouseEvent) => {\n e.stopPropagation();\n };\n\n return (\n <div\n className=\"fixed inset-0 z-50 overflow-y-auto\"\n onClick={handleMaskClick}\n >\n {/* Backdrop */}\n <div\n className={`fixed inset-0 transition-opacity duration-200 ease-out ${\n isAnimating ? 'opacity-100' : 'opacity-0'\n }`}\n style={overlayStyle}\n />\n\n {/* Modal Container */}\n <div className={`flex min-h-full items-center justify-center p-4 ${centered ? 'items-center' : 'items-start pt-20'}`}>\n <div\n className={`relative rounded-lg shadow-xl transition-all duration-200 ease-out overflow-y-auto ${\n isAnimating\n ? 'opacity-100 scale-100 translate-y-0'\n : 'opacity-0 scale-95 -translate-y-4'\n } ${className}`}\n style={{...modalStyle, maxHeight: typeof maxHeight === 'number' ? `${maxHeight}px` : maxHeight}}\n onClick={handleModalClick}\n >\n {/* Header */}\n {(title || closable) && (\n <div\n className={`flex items-center justify-between px-6 py-4 border-b border-gray-200 ${headerClassName}`}\n style={headerStyle}\n >\n {title && <h3 className=\"text-lg font-semibold text-gray-900\">{title}</h3>}\n {closable && (\n <button\n onClick={onClose}\n className=\"text-gray-400 hover:text-gray-600 transition-colors duration-200 ease-out\"\n >\n <svg\n className=\"w-5 h-5\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M6 18L18 6M6 6l12 12\"\n />\n </svg>\n </button>\n )}\n </div>\n )}\n\n {/* Body */}\n <div\n className={`px-6 py-4 ${bodyClassName}`}\n >\n {children}\n </div>\n\n {/* Footer */}\n {footer && (\n <div className=\"px-6 py-4 border-t border-gray-200 flex justify-end gap-2\">\n {footer}\n </div>\n )}\n </div>\n </div>\n </div>\n );\n};\n\nexport default Modal;\n","import type { FC, ReactNode, CSSProperties } from 'react';\n\nexport interface BadgeProps {\n children: ReactNode;\n variant?: 'default' | 'primary' | 'success' | 'warning' | 'danger' | 'info';\n size?: 'sm' | 'md' | 'lg' | 'responsive';\n dot?: boolean;\n icon?: ReactNode;\n iconPosition?: 'left' | 'right';\n className?: string;\n bgColor?: string;\n textColor?: string;\n borderColor?: string;\n rounded?: 'none' | 'sm' | 'md' | 'lg' | 'full';\n style?: CSSProperties;\n}\n\nexport const Badge: FC<BadgeProps> = ({\n children,\n variant = 'default',\n size = 'md',\n dot = false,\n icon,\n iconPosition = 'left',\n className = '',\n bgColor,\n textColor,\n borderColor,\n rounded = 'full',\n style,\n}) => {\n const variantClasses = {\n default: 'bg-gray-100 text-[#181918]',\n primary: 'bg-[#FCEAE9] text-[#EC615B]',\n success: 'bg-green-100 text-green-800',\n warning: 'bg-yellow-100 text-yellow-800',\n danger: 'bg-red-100 text-red-800',\n info: 'bg-cyan-100 text-cyan-800',\n };\n\n const sizeClasses = {\n sm: 'px-2 py-0.5 text-xs',\n md: 'px-2.5 py-1 text-sm',\n lg: 'px-3 py-1.5 text-base',\n responsive: 'px-1.5 py-0.5 text-[10px] sm:px-2 sm:py-0.5 sm:text-xs md:px-2.5 md:py-1 md:text-sm lg:px-3 lg:py-1.5 lg:text-base',\n };\n\n const dotSizeClasses = {\n sm: 'w-1.5 h-1.5',\n md: 'w-2 h-2',\n lg: 'w-2.5 h-2.5',\n responsive: 'w-1 h-1 sm:w-1.5 sm:h-1.5 md:w-2 md:h-2 lg:w-2.5 lg:h-2.5',\n };\n\n const dotColorClasses = {\n default: 'bg-gray-600',\n primary: 'bg-[#EC615B]',\n success: 'bg-green-600',\n warning: 'bg-yellow-600',\n danger: 'bg-red-600',\n info: 'bg-cyan-600',\n };\n\n const iconSizeClasses = {\n sm: 'w-3 h-3',\n md: 'w-3.5 h-3.5',\n lg: 'w-4 h-4',\n responsive: 'w-2.5 h-2.5 sm:w-3 sm:h-3 md:w-3.5 md:h-3.5 lg:w-4 lg:h-4',\n };\n\n const roundedClasses = {\n none: 'rounded-none',\n sm: 'rounded-sm',\n md: 'rounded-md',\n lg: 'rounded-lg',\n full: 'rounded-full',\n };\n\n const customStyles: CSSProperties = {\n ...(bgColor && { backgroundColor: bgColor }),\n ...(textColor && { color: textColor }),\n ...(borderColor && { borderColor, borderWidth: '1px', borderStyle: 'solid' }),\n ...style,\n };\n\n return (\n <span\n className={`inline-flex items-center gap-1.5 font-medium transition-all duration-200 ${!bgColor ? variantClasses[variant] : ''} ${sizeClasses[size]} ${roundedClasses[rounded]} ${className}`}\n style={customStyles}\n >\n {dot && (\n <span className={`rounded-full ${dotSizeClasses[size]} ${dotColorClasses[variant]}`} />\n )}\n {icon && iconPosition === 'left' && (\n <span className={`inline-flex items-center ${iconSizeClasses[size]}`}>\n {icon}\n </span>\n )}\n {children}\n {icon && iconPosition === 'right' && (\n <span className={`inline-flex items-center ${iconSizeClasses[size]}`}>\n {icon}\n </span>\n )}\n </span>\n );\n};\n\nexport default Badge;\n","import type { FC, ReactNode, CSSProperties } from 'react';\n\nexport interface StepItem {\n title: string;\n description?: string;\n status?: 'wait' | 'process' | 'finish' | 'error';\n icon?: ReactNode;\n}\n\nexport interface StepsProps {\n items: StepItem[];\n current?: number;\n direction?: 'horizontal' | 'vertical';\n size?: 'sm' | 'md' | 'lg' | 'responsive';\n variant?: 'default' | 'outline';\n className?: string;\n style?: CSSProperties;\n finishColor?: string;\n processColor?: string;\n waitColor?: string;\n errorColor?: string;\n lineColor?: string;\n}\n\nexport const Steps: FC<StepsProps> = ({\n items,\n current = 0,\n direction = 'vertical',\n size = 'md',\n variant = 'default',\n className = '',\n style,\n finishColor,\n processColor,\n waitColor,\n errorColor,\n lineColor,\n}) => {\n const getStepStatus = (index: number, item: StepItem): StepItem['status'] => {\n if (item.status) return item.status;\n if (index < current) return 'finish';\n if (index === current) return 'process';\n return 'wait';\n };\n\n const iconSizeClasses = {\n sm: 'w-6 h-6',\n md: 'w-8 h-8',\n lg: 'w-10 h-10',\n responsive: 'w-6 h-6 sm:w-7 sm:h-7 md:w-8 md:h-8 lg:w-10 lg:h-10',\n };\n\n const textSizeClasses = {\n sm: 'text-sm',\n md: 'text-base',\n lg: 'text-lg',\n responsive: 'text-xs sm:text-sm md:text-base lg:text-lg',\n };\n\n const descriptionSizeClasses = {\n sm: 'text-xs',\n md: 'text-sm',\n lg: 'text-base',\n responsive: 'text-xs sm:text-xs md:text-sm lg:text-base',\n };\n\n const renderIcon = (status: StepItem['status'], icon?: ReactNode) => {\n if (icon) return icon;\n\n if (status === 'finish') {\n return (\n <svg className=\"w-5 h-5\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\"\n clipRule=\"evenodd\"\n />\n </svg>\n );\n }\n\n if (status === 'error') {\n return (\n <svg className=\"w-5 h-5\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\"\n clipRule=\"evenodd\"\n />\n </svg>\n );\n }\n\n return null;\n };\n\n const getStatusClasses = (status: StepItem['status']) => {\n const isOutline = variant === 'outline';\n\n switch (status) {\n case 'finish':\n return {\n icon: isOutline\n ? `bg-white text-white border ${finishColor ? `border-[${finishColor}]` : 'border-green-500'}`\n : `${finishColor ? `bg-[${finishColor}]` : 'bg-green-500'} text-white ${finishColor ? `border-[${finishColor}]` : 'border-green-500'}`,\n title: 'text-[#181918]',\n description: 'text-gray-600',\n line: lineColor ? `bg-[${lineColor}]` : 'bg-green-500',\n iconColor: finishColor,\n };\n case 'process':\n return {\n icon: isOutline\n ? `bg-white text-white border ${processColor ? `border-[${processColor}]` : 'border-[#EC615B]'}`\n : `${processColor ? `bg-[${processColor}]` : 'bg-[#EC615B]'} text-white ${processColor ? `border-[${processColor}]` : 'border-[#EC615B]'}`,\n title: 'text-[#181918] font-semibold',\n description: 'text-gray-700',\n line: lineColor ? `bg-[${lineColor}]` : 'bg-gray-300',\n iconColor: processColor,\n };\n case 'error':\n return {\n icon: isOutline\n ? `bg-white text-white border ${errorColor ? `border-[${errorColor}]` : 'border-red-500'}`\n : `${errorColor ? `bg-[${errorColor}]` : 'bg-red-500'} text-white ${errorColor ? `border-[${errorColor}]` : 'border-red-500'}`,\n title: 'text-red-600',\n description: 'text-red-500',\n line: lineColor ? `bg-[${lineColor}]` : 'bg-gray-300',\n iconColor: errorColor,\n };\n default:\n return {\n icon: 'bg-white text-gray-400 border-gray-300',\n title: 'text-gray-500',\n description: 'text-gray-400',\n line: lineColor ? `bg-[${lineColor}]` : 'bg-gray-300',\n iconColor: waitColor,\n };\n }\n };\n\n if (direction === 'horizontal') {\n return (\n <div className={`flex items-start ${className}`} style={style}>\n {items.map((item, index) => {\n const status = getStepStatus(index, item);\n const statusClasses = getStatusClasses(status);\n const isLast = index === items.length - 1;\n const iconStyle: CSSProperties = {};\n if (statusClasses.iconColor) {\n iconStyle.color = statusClasses.iconColor;\n }\n\n return (\n <div key={index} className=\"flex flex-1 items-start\">\n <div className=\"flex flex-col items-center\">\n <div\n className={`flex items-center justify-center ${iconSizeClasses[size]} rounded-full border transition-all duration-300 ${statusClasses.icon}`}\n style={iconStyle}\n >\n {renderIcon(status, item.icon)}\n </div>\n <div className=\"mt-2 text-center\">\n <div\n className={`${textSizeClasses[size]} ${statusClasses.title} transition-colors duration-300`}\n >\n {item.title}\n </div>\n {item.description && (\n <div\n className={`${descriptionSizeClasses[size]} ${statusClasses.description} mt-1 transition-colors duration-300`}\n >\n {item.description}\n </div>\n )}\n </div>\n </div>\n {!isLast && (\n <div\n className={`flex-1 h-0.5 mt-4 mx-2 ${statusClasses.line} transition-colors duration-300`}\n />\n )}\n </div>\n );\n })}\n </div>\n );\n }\n\n return (\n <div className={`flex flex-col ${className}`} style={style}>\n {items.map((item, index) => {\n const status = getStepStatus(index, item);\n const statusClasses = getStatusClasses(status);\n const isLast = index === items.length - 1;\n const iconStyle: CSSProperties = {};\n if (statusClasses.iconColor) {\n iconStyle.color = statusClasses.iconColor;\n }\n\n return (\n <div key={index} className=\"flex\">\n <div className=\"flex flex-col items-center mr-4\">\n <div\n className={`flex items-center justify-center ${iconSizeClasses[size]} rounded-full border transition-all duration-300 ${statusClasses.icon}`}\n style={iconStyle}\n >\n {renderIcon(status, item.icon)}\n </div>\n {!isLast && (\n <div\n className={`w-0.5 flex-1 my-1 ${statusClasses.line} transition-colors duration-300`}\n style={{ minHeight: '20px' }}\n />\n )}\n </div>\n <div className=\"flex-1 pb-6\">\n <div\n className={`${textSizeClasses[size]} ${statusClasses.title} transition-colors duration-300`}\n >\n {item.title}\n </div>\n {item.description && (\n <div\n className={`${descriptionSizeClasses[size]} ${statusClasses.description} mt-1 transition-colors duration-300`}\n >\n {item.description}\n </div>\n )}\n </div>\n </div>\n );\n })}\n </div>\n );\n};\n\nexport default Steps;\n","import type { FC, ReactNode } from 'react';\n\nexport interface ProgressProps {\n percent?: number;\n status?: 'normal' | 'success' | 'exception' | 'active';\n showInfo?: boolean;\n strokeColor?: string;\n strokeWidth?: number;\n size?: 'sm' | 'md' | 'lg' | 'responsive';\n className?: string;\n format?: (percent: number) => ReactNode;\n bgColor?: string;\n successColor?: string;\n exceptionColor?: string;\n trackColor?: string;\n rounded?: 'none' | 'sm' | 'md' | 'lg' | 'full';\n}\n\nexport const Progress: FC<ProgressProps> = ({\n percent = 0,\n status = 'normal',\n showInfo = true,\n strokeColor,\n strokeWidth,\n size = 'md',\n className = '',\n format,\n bgColor,\n successColor,\n exceptionColor,\n trackColor,\n rounded = 'full',\n}) => {\n const clampedPercent = Math.min(100, Math.max(0, percent));\n\n const heightClasses = {\n sm: 'h-1.5',\n md: 'h-2',\n lg: 'h-3',\n responsive: 'h-1.5 sm:h-2 md:h-3 lg:h-4',\n };\n\n const textSizeClasses = {\n sm: 'text-xs',\n md: 'text-sm',\n lg: 'text-base',\n responsive: 'text-xs sm:text-sm md:text-base lg:text-lg',\n };\n\n const roundedClasses = {\n none: 'rounded-none',\n sm: 'rounded-sm',\n md: 'rounded-md',\n lg: 'rounded-lg',\n full: 'rounded-full',\n };\n\n const getStatusColor = () => {\n if (strokeColor) return strokeColor;\n\n switch (status) {\n case 'success':\n return successColor || 'bg-green-500';\n case 'exception':\n return exceptionColor || 'bg-red-500';\n case 'active':\n return bgColor || 'bg-[#EC615B]';\n default:\n if (clampedPercent === 100) return successColor || 'bg-green-500';\n return bgColor || 'bg-[#EC615B]';\n }\n };\n\n const getTrackColor = () => {\n return trackColor || 'bg-gray-200';\n };\n\n const getStatusIcon = () => {\n if (status === 'success' || clampedPercent === 100) {\n return (\n <svg className=\"w-4 h-4 text-green-500\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z\"\n clipRule=\"evenodd\"\n />\n </svg>\n );\n }\n\n if (status === 'exception') {\n return (\n <svg className=\"w-4 h-4 text-red-500\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z\"\n clipRule=\"evenodd\"\n />\n </svg>\n );\n }\n\n return null;\n };\n\n const formatPercent = () => {\n if (format) return format(clampedPercent);\n return `${Math.round(clampedPercent)}%`;\n };\n\n const height = strokeWidth ? `${strokeWidth}px` : undefined;\n\n return (\n <div className={`flex items-center gap-2 ${className}`}>\n <div className=\"flex-1\">\n <div\n className={`w-full overflow-hidden ${heightClasses[size]} ${roundedClasses[rounded]} ${getTrackColor()}`}\n style={{ height }}\n >\n <div\n className={`${getStatusColor()} ${heightClasses[size]} ${roundedClasses[rounded]} transition-all duration-300 ease-out ${\n status === 'active' ? 'progress-active' : ''\n }`}\n style={{\n width: `${clampedPercent}%`,\n height,\n }}\n />\n </div>\n </div>\n\n {showInfo && (\n <div className={`flex items-center gap-1 ${textSizeClasses[size]} text-gray-600 font-normal`}>\n {getStatusIcon() || formatPercent()}\n </div>\n )}\n </div>\n );\n};\n\nexport default Progress;\n","import { useState } from 'react';\nimport type { FC, ChangeEvent, CSSProperties } from 'react';\n\nexport interface CheckboxProps {\n checked?: boolean;\n defaultChecked?: boolean;\n onChange?: (checked: boolean) => void;\n disabled?: boolean;\n indeterminate?: boolean;\n size?: 'sm' | 'md' | 'lg' | 'responsive';\n variant?: 'filled' | 'outline';\n className?: string;\n id?: string;\n name?: string;\n value?: string;\n checkedColor?: string;\n uncheckedColor?: string;\n checkedBorderColor?: string;\n style?: CSSProperties;\n}\n\nexport const Checkbox: FC<CheckboxProps> = ({\n checked: controlledChecked,\n defaultChecked = false,\n onChange,\n disabled = false,\n indeterminate = false,\n size = 'md',\n variant = 'filled',\n className = '',\n id,\n name,\n value,\n checkedColor = '#EC615B',\n uncheckedColor = '#ffffff',\n checkedBorderColor = '#EC615B',\n style,\n}) => {\n const [internalChecked, setInternalChecked] = useState(defaultChecked);\n\n const isControlled = controlledChecked !== undefined;\n const checked = isControlled ? controlledChecked : internalChecked;\n\n const handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n if (disabled) return;\n\n const newChecked = e.target.checked;\n\n if (!isControlled) {\n setInternalChecked(newChecked);\n }\n\n onChange?.(newChecked);\n };\n\n const sizeClasses = {\n sm: 'w-4 h-4',\n md: 'w-5 h-5',\n lg: 'w-6 h-6',\n responsive: 'w-4 h-4 sm:w-5 sm:h-5 lg:w-6 lg:h-6',\n };\n\n const iconSizeClasses = {\n sm: 'w-3 h-3',\n md: 'w-3.5 h-3.5',\n lg: 'w-4 h-4',\n responsive: 'w-2.5 h-2.5 sm:w-3.5 sm:h-3.5 lg:w-4 lg:h-4',\n };\n\n const isFilled = variant === 'filled';\n\n const getCheckboxClasses = () => {\n if (disabled) {\n return 'cursor-not-allowed opacity-50 border-gray-300 bg-gray-100';\n }\n\n if (isFilled) {\n // Filled variant\n if (!checked && !indeterminate) {\n return 'border-gray-300 bg-white hover:border-gray-400';\n }\n return '';\n } else {\n // Outline variant\n if (!checked && !indeterminate) {\n return 'border-gray-300 bg-white hover:border-gray-400';\n }\n return '';\n }\n };\n\n const getCheckboxInlineStyles = (): CSSProperties | undefined => {\n if (disabled) return undefined;\n\n if (!checked && !indeterminate) {\n return undefined;\n }\n\n if (isFilled) {\n return {\n borderColor: checkedBorderColor,\n backgroundColor: checkedColor,\n };\n } else {\n return {\n borderColor: checkedBorderColor,\n backgroundColor: uncheckedColor,\n };\n }\n };\n\n const getIconColor = () => {\n if (isFilled && (checked || indeterminate)) {\n return 'text-white';\n }\n return '';\n };\n\n return (\n <div className=\"inline-flex items-center\" style={style}>\n <input\n type=\"checkbox\"\n id={id}\n name={name}\n value={value}\n checked={checked}\n onChange={handleChange}\n disabled={disabled}\n className=\"sr-only\"\n />\n <label\n htmlFor={id}\n className={`\n relative flex items-center justify-center\n ${sizeClasses[size]}\n ${variant === 'outline' ? 'border' : 'border-2'}\n rounded\n transition-all duration-200 ease-out\n cursor-pointer\n ${getCheckboxClasses()}\n ${className}\n `}\n style={getCheckboxInlineStyles()}\n >\n {/* Checkmark Icon */}\n {checked && !indeterminate && (\n <svg\n className={`${iconSizeClasses[size]} ${getIconColor()}`}\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n strokeWidth={3}\n style={\n !isFilled && (checked || indeterminate)\n ? { color: checkedColor }\n : undefined\n }\n >\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M5 13l4 4L19 7\" />\n </svg>\n )}\n\n {/* Indeterminate Icon */}\n {indeterminate && (\n <svg\n className={`${iconSizeClasses[size]} ${getIconColor()}`}\n fill=\"currentColor\"\n viewBox=\"0 0 24 24\"\n style={\n !isFilled && (checked || indeterminate)\n ? { color: checkedColor }\n : undefined\n }\n >\n <rect x=\"4\" y=\"11\" width=\"16\" height=\"2\" rx=\"1\" />\n </svg>\n )}\n </label>\n </div>\n );\n};\n\nexport default Checkbox;\n","import type { FC, CSSProperties } from 'react';\n\nexport interface SelectedItem {\n id: string | number;\n label: string;\n sublabel?: string;\n}\n\nexport interface SelectedItemsListProps {\n items: SelectedItem[];\n onRemove: (id: string | number) => void;\n emptyMessage?: string;\n className?: string;\n itemClassName?: string;\n maxHeight?: string;\n // New size and responsive props\n size?: 'sm' | 'md' | 'lg' | 'responsive';\n // New custom color props\n bgColor?: string;\n hoverBgColor?: string;\n textColor?: string;\n sublabelColor?: string;\n removeButtonColor?: string;\n removeButtonHoverColor?: string;\n // New border radius prop\n rounded?: 'none' | 'sm' | 'md' | 'lg' | 'full';\n // New style prop\n style?: CSSProperties;\n}\n\n// Helper function to get size-based classes\nconst getSizeClasses = (size: 'sm' | 'md' | 'lg' | 'responsive' = 'md') => {\n const baseClasses = {\n sm: {\n container: 'space-y-1',\n item: 'px-2 py-1.5',\n label: 'text-xs',\n sublabel: 'text-[10px]',\n button: 'w-5 h-5',\n icon: 'w-3 h-3',\n },\n md: {\n container: 'space-y-2',\n item: 'px-4 py-3',\n label: 'text-sm',\n sublabel: 'text-xs',\n button: 'w-6 h-6',\n icon: 'w-4 h-4',\n },\n lg: {\n container: 'space-y-3',\n item: 'px-5 py-4',\n label: 'text-base',\n sublabel: 'text-sm',\n button: 'w-7 h-7',\n icon: 'w-5 h-5',\n },\n responsive: {\n container: 'space-y-1 sm:space-y-2 md:space-y-3',\n item: 'px-2 py-1.5 sm:px-3 sm:py-2 md:px-4 md:py-3 lg:px-5 lg:py-4',\n label: 'text-xs sm:text-sm md:text-base',\n sublabel: 'text-[10px] sm:text-xs md:text-sm',\n button: 'w-5 h-5 sm:w-5 sm:h-5 md:w-6 md:h-6 lg:w-7 lg:h-7',\n icon: 'w-3 h-3 sm:w-3 sm:h-3 md:w-4 md:h-4 lg:w-5 lg:h-5',\n },\n };\n\n return baseClasses[size];\n};\n\n// Helper function to get rounded corner classes\nconst getRoundedClasses = (rounded: 'none' | 'sm' | 'md' | 'lg' | 'full' = 'md') => {\n const roundedMap = {\n none: 'rounded-none',\n sm: 'rounded-sm',\n md: 'rounded-lg',\n lg: 'rounded-xl',\n full: 'rounded-full',\n };\n\n return roundedMap[rounded];\n};\n\nexport const SelectedItemsList: FC<SelectedItemsListProps> = ({\n items,\n onRemove,\n emptyMessage = 'No items selected',\n className = '',\n itemClassName = '',\n maxHeight = '300px',\n size = 'md',\n bgColor,\n hoverBgColor,\n textColor,\n sublabelColor,\n removeButtonColor,\n removeButtonHoverColor,\n rounded = 'md',\n style,\n}) => {\n const sizeClasses = getSizeClasses(size);\n const roundedClass = getRoundedClasses(rounded);\n\n // Default colors\n const defaultBgColor = '#F4F4F4';\n const defaultHoverBgColor = '#EBEBEB';\n const defaultTextColor = '#181918';\n const defaultSublabelColor = '#999999';\n const defaultRemoveButtonColor = '#9CA3AF';\n const defaultRemoveButtonHoverColor = '#EC615B';\n\n // Get final colors (use provided or default)\n const finalBgColor = bgColor || defaultBgColor;\n const finalHoverBgColor = hoverBgColor || defaultHoverBgColor;\n const finalTextColor = textColor || defaultTextColor;\n const finalSublabelColor = sublabelColor || defaultSublabelColor;\n const finalRemoveButtonColor = removeButtonColor || defaultRemoveButtonColor;\n const finalRemoveButtonHoverColor = removeButtonHoverColor || defaultRemoveButtonHoverColor;\n\n if (items.length === 0) {\n return (\n <div\n className={`text-center py-8 text-gray-500 text-sm ${className}`}\n style={{\n color: finalSublabelColor,\n ...style,\n }}\n >\n {emptyMessage}\n </div>\n );\n }\n\n return (\n <div\n className={`overflow-y-auto ${sizeClasses.container} ${className}`}\n style={{ maxHeight, ...style }}\n >\n {items.map((item, index) => (\n <div\n key={item.id}\n className={`\n group flex items-center justify-between\n ${roundedClass}\n transition-all duration-300 ease-out\n hover:shadow-sm\n animate-slide-in-item\n ${itemClassName}\n `}\n style={{\n backgroundColor: finalBgColor,\n animationDelay: `${index * 50}ms`,\n }}\n onMouseEnter={(e) => {\n (e.currentTarget as HTMLElement).style.backgroundColor = finalHoverBgColor;\n }}\n onMouseLeave={(e) => {\n (e.currentTarget as HTMLElement).style.backgroundColor = finalBgColor;\n }}\n >\n <div className={`flex-1 min-w-0 ${sizeClasses.item}`}>\n {item.sublabel && (\n <div\n className={`font-normal mb-0.5 ${sizeClasses.sublabel}`}\n style={{ color: finalSublabelColor }}\n >\n {item.sublabel}\n </div>\n )}\n <div\n className={`font-medium truncate ${sizeClasses.label}`}\n style={{ color: finalTextColor }}\n >\n {item.label}\n </div>\n </div>\n\n <button\n onClick={() => onRemove(item.id)}\n className={`\n ml-3 flex-shrink-0 rounded-full\n flex items-center justify-center\n transition-all duration-200 ease-out\n hover:scale-110\n active:scale-95\n focus:outline-none focus:ring-2 focus:ring-opacity-50\n ${sizeClasses.button}\n `}\n style={{\n color: finalRemoveButtonColor,\n }}\n onMouseEnter={(e) => {\n (e.currentTarget as HTMLElement).style.backgroundColor = 'white';\n (e.currentTarget as HTMLElement).style.color = finalRemoveButtonHoverColor;\n }}\n onMouseLeave={(e) => {\n (e.currentTarget as HTMLElement).style.backgroundColor = 'transparent';\n (e.currentTarget as HTMLElement).style.color = finalRemoveButtonColor;\n }}\n aria-label={`Remove ${item.label}`}\n >\n <svg\n className={sizeClasses.icon}\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M6 18L18 6M6 6l12 12\"\n />\n </svg>\n </button>\n </div>\n ))}\n </div>\n );\n};\n\nexport default SelectedItemsList;\n","import React from 'react';\nimport { Input as AntInput, InputProps as AntInputProps } from 'antd';\n\nexport interface InputProps extends AntInputProps {\n label?: string;\n error?: string;\n helperText?: string;\n}\n\nexport const Input: React.FC<InputProps> = ({\n label,\n error,\n helperText,\n className = '',\n status,\n ...props\n}) => {\n // Generate a unique class name for this input instance to scope the styles\n const errorClass = error ? 'input-error-state' : '';\n\n return (\n <div className=\"w-full\">\n {label && (\n <label className=\"block text-sm font-medium mb-2\" style={{ color: error ? '#C21919' : '#181918' }}>\n {label}\n {props.required && <span style={{ color: '#C21919' }}>*</span>}\n </label>\n )}\n <style>\n {error && `\n .input-error-state .ant-input-group-addon {\n border-color: #C21919 !important;\n }\n .input-error-state .ant-input-group-addon:first-child {\n border-right: none !important;\n }\n .input-error-state .ant-input {\n border-color: #C21919 !important;\n }\n .input-error-state .ant-input:focus,\n .input-error-state .ant-input-focused {\n border-color: #C21919 !important;\n box-shadow: 0 0 0 2px rgba(194, 25, 25, 0.1) !important;\n }\n `}\n </style>\n <AntInput\n className={`${className} ${errorClass}`}\n status={error ? 'error' : status}\n {...props}\n style={{\n height: '44px',\n borderRadius: '12px',\n borderColor: error ? '#C21919' : '#D1D1D1',\n ...props.style,\n }}\n />\n {error && (\n <div className=\"flex items-center mt-1 text-xs text-[#C21919]\">\n <svg\n className=\"w-3 h-3 mr-1\"\n fill=\"currentColor\"\n viewBox=\"0 0 20 20\"\n >\n <path\n fillRule=\"evenodd\"\n d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7 4a1 1 0 11-2 0 1 1 0 012 0zm-1-9a1 1 0 00-1 1v4a1 1 0 102 0V6a1 1 0 00-1-1z\"\n clipRule=\"evenodd\"\n />\n </svg>\n {error}\n </div>\n )}\n {!error && helperText && (\n <div className=\"mt-1 text-xs text-gray-500\">{helperText}</div>\n )}\n </div>\n );\n};\n","import React from 'react';\nimport { Input as AntInput } from 'antd';\nimport type { PasswordProps as AntPasswordProps } from 'antd/es/input';\n\nexport interface PasswordInputProps extends AntPasswordProps {\n label?: string;\n error?: string;\n helperText?: string;\n}\n\nexport const PasswordInput: React.FC<PasswordInputProps> = ({\n label,\n error,\n helperText,\n className = '',\n status,\n ...props\n}) => {\n const errorClass = error ? 'password-input-error-state' : '';\n const combinedClassName = `password-input-custom ${className} ${errorClass}`;\n\n return (\n <div className=\"w-full\">\n {label && (\n <label className=\"block text-sm font-medium mb-2\" style={{ color: error ? '#C21919' : '#181918' }}>\n {label}\n {props.required && <span style={{ color: '#C21919' }}>*</span>}\n </label>\n )}\n <style>\n {error && `\n .password-input-error-state .ant-input-group-addon {\n border-color: #C21919 !important;\n }\n .password-input-error-state .ant-input-group-addon:first-child {\n border-right: none !important;\n }\n .password-input-error-state .ant-input,\n .password-input-error-state .ant-input-password .ant-input {\n border-color: #C21919 !important;\n }\n .password-input-error-state .ant-input:focus,\n .password-input-error-state .ant-input-focused,\n .password-input-error-state .ant-input-password .ant-input:focus {\n border-color: #C21919 !important;\n box-shadow: 0 0 0 2px rgba(194, 25, 25, 0.1) !important;\n }\n `}\n </style>\n <AntInput.Password\n className={combinedClassName}\n status={error ? 'error' : status}\n {...props}\n style={{\n height: '44px',\n borderRadius: '12px',\n borderColor: error ? '#C21919' : '#D1D1D1',\n ...props.style,\n }}\n />\n {error && (\n <div className=\"flex items-center mt-1 text-xs text-[#C21919]\">\n <svg\n className=\"w-3 h-3 mr-1\"\n fill=\"currentColor\"\n viewBox=\"0 0 20 20\"\n >\n <path\n fillRule=\"evenodd\"\n d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7 4a1 1 0 11-2 0 1 1 0 012 0zm-1-9a1 1 0 00-1 1v4a1 1 0 102 0V6a1 1 0 00-1-1z\"\n clipRule=\"evenodd\"\n />\n </svg>\n {error}\n </div>\n )}\n {!error && helperText && (\n <div className=\"mt-1 text-xs text-gray-500\">{helperText}</div>\n )}\n </div>\n );\n};\n","import React, { useRef, useState, useEffect, KeyboardEvent, ClipboardEvent } from 'react';\nimport { Input, InputRef } from 'antd';\n\nexport interface OTPInputProps {\n length?: number;\n value?: string;\n onChange?: (value: string) => void;\n onComplete?: (value: string) => void;\n error?: boolean;\n errorMessage?: string;\n disabled?: boolean;\n className?: string;\n}\n\nexport const OTPInput: React.FC<OTPInputProps> = ({\n length = 6,\n value = '',\n onChange,\n onComplete,\n error = false,\n errorMessage,\n disabled = false,\n className = '',\n}) => {\n const [otp, setOtp] = useState<string[]>(Array(length).fill(''));\n const inputRefs = useRef<(InputRef | null)[]>([]);\n\n useEffect(() => {\n if (value) {\n const otpArray = value.split('').slice(0, length);\n const filledOtp = [...otpArray, ...Array(length - otpArray.length).fill('')];\n setOtp(filledOtp);\n }\n }, [value, length]);\n\n const handleChange = (index: number, val: string) => {\n // Only allow numbers\n if (val && !/^\\d+$/.test(val)) return;\n\n const newOtp = [...otp];\n newOtp[index] = val.slice(-1); // Take only the last character\n setOtp(newOtp);\n\n const otpString = newOtp.join('');\n onChange?.(otpString);\n\n // Move to next input if value is entered\n if (val && index < length - 1) {\n inputRefs.current[index + 1]?.focus();\n }\n\n // Call onComplete if all fields are filled\n if (newOtp.every((digit) => digit !== '')) {\n onComplete?.(otpString);\n }\n };\n\n const handleKeyDown = (index: number, e: KeyboardEvent<HTMLInputElement>) => {\n // Move to previous input on backspace if current input is empty\n if (e.key === 'Backspace' && !otp[index] && index > 0) {\n inputRefs.current[index - 1]?.focus();\n }\n };\n\n const handlePaste = (e: ClipboardEvent<HTMLInputElement>) => {\n e.preventDefault();\n const pastedData = e.clipboardData.getData('text/plain');\n\n // Only allow numbers\n if (!/^\\d+$/.test(pastedData)) return;\n\n const pastedArray = pastedData.split('').slice(0, length);\n const newOtp = [...pastedArray, ...Array(length - pastedArray.length).fill('')];\n setOtp(newOtp);\n\n const otpString = newOtp.join('');\n onChange?.(otpString);\n\n // Focus on the next empty input or the last input\n const nextIndex = Math.min(pastedArray.length, length - 1);\n inputRefs.current[nextIndex]?.focus();\n\n // Call onComplete if all fields are filled\n if (newOtp.every((digit) => digit !== '')) {\n onComplete?.(otpString);\n }\n };\n\n return (\n <div className=\"w-full\">\n <div className={`flex gap-2 justify-center ${className}`}>\n {otp.map((digit, index) => (\n <React.Fragment key={index}>\n <Input\n ref={(el) => {\n inputRefs.current[index] = el;\n }}\n placeholder=\"\"\n value={digit}\n onChange={(e) => handleChange(index, e.target.value)}\n onKeyDown={(e) => handleKeyDown(index, e)}\n onPaste={handlePaste}\n disabled={disabled}\n maxLength={1}\n className=\"text-center text-lg font-semibold otp-input-field\"\n style={{\n width: '63px',\n height: '44px',\n borderRadius: '12px',\n borderColor: error ? '#C21919' : '#D1D1D1',\n }}\n />\n {index === Math.floor(length / 2) - 1 && (\n <div className=\"flex items-center justify-center px-1\">\n <span className=\"text-gray-400 text-xl\">—</span>\n </div>\n )}\n </React.Fragment>\n ))}\n </div>\n {error && errorMessage && (\n <div className=\"flex items-center justify-center mt-2 text-xs text-[#C21919]\">\n <svg className=\"w-3 h-3 mr-1\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7 4a1 1 0 11-2 0 1 1 0 012 0zm-1-9a1 1 0 00-1 1v4a1 1 0 102 0V6a1 1 0 00-1-1z\"\n clipRule=\"evenodd\"\n />\n </svg>\n {errorMessage}\n </div>\n )}\n </div>\n );\n};\n","import React, { useState, useEffect } from 'react';\nimport { Input as AntInput, Select } from 'antd';\nimport type { InputProps as AntInputProps } from 'antd';\n\nexport interface PhoneInputProps\n extends Omit<AntInputProps, 'addonBefore' | 'value' | 'onChange'> {\n label?: string;\n error?: string;\n helperText?: string;\n countryCode?: string;\n onCountryCodeChange?: (value: string) => void;\n countryCodes?: { value: string; label: string }[];\n showCountryCodeDropdown?: boolean;\n format?: 'default' | 'spaced' | 'dashed' | 'none';\n customFormat?: (value: string) => string;\n value?: string;\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n}\n\nexport const PhoneInput: React.FC<PhoneInputProps> = ({\n label,\n error,\n helperText,\n className = '',\n countryCode = '+234',\n onCountryCodeChange,\n countryCodes = [\n { value: '+234', label: '+234' },\n { value: '+1', label: '+1' },\n { value: '+44', label: '+44' },\n { value: '+91', label: '+91' },\n ],\n showCountryCodeDropdown = true,\n format = 'spaced',\n customFormat,\n value,\n onChange,\n ...props\n}) => {\n const errorClass = error ? 'phone-input-error-state' : '';\n const [displayValue, setDisplayValue] = useState('');\n\n // Update display value when external value changes\n useEffect(() => {\n if (value !== undefined) {\n const cleaned = String(value).replace(/\\D/g, '');\n const formatted = formatPhoneNumber(cleaned);\n setDisplayValue(formatted);\n }\n }, [value, format, countryCode]);\n\n const formatPhoneNumber = (val: string): string => {\n // Remove all non-digits\n const cleaned = val.replace(/\\D/g, '');\n\n // If custom format is provided, use it\n if (customFormat) {\n return customFormat(cleaned);\n }\n\n // If format is 'none', return unformatted\n if (format === 'none') {\n return cleaned;\n }\n\n // Format based on country code and format type\n let formatted = '';\n\n if (format === 'spaced') {\n // Format: 803 456 7890\n if (cleaned.length <= 3) {\n formatted = cleaned;\n } else if (cleaned.length <= 6) {\n formatted = `${cleaned.slice(0, 3)} ${cleaned.slice(3)}`;\n } else {\n formatted = `${cleaned.slice(0, 3)} ${cleaned.slice(3, 6)} ${cleaned.slice(6, 10)}`;\n }\n } else if (format === 'dashed') {\n // Format: 803-456-7890\n if (cleaned.length <= 3) {\n formatted = cleaned;\n } else if (cleaned.length <= 6) {\n formatted = `${cleaned.slice(0, 3)}-${cleaned.slice(3)}`;\n } else {\n formatted = `${cleaned.slice(0, 3)}-${cleaned.slice(3, 6)}-${cleaned.slice(6, 10)}`;\n }\n } else {\n // Default format based on country code\n if (countryCode === '+1') {\n // US format: (803) 456-7890\n if (cleaned.length <= 3) {\n formatted = cleaned;\n } else if (cleaned.length <= 6) {\n formatted = `(${cleaned.slice(0, 3)}) ${cleaned.slice(3)}`;\n } else {\n formatted = `(${cleaned.slice(0, 3)}) ${cleaned.slice(3, 6)}-${cleaned.slice(6, 10)}`;\n }\n } else {\n // International format: 803 456 7890\n if (cleaned.length <= 3) {\n formatted = cleaned;\n } else if (cleaned.length <= 6) {\n formatted = `${cleaned.slice(0, 3)} ${cleaned.slice(3)}`;\n } else {\n formatted = `${cleaned.slice(0, 3)} ${cleaned.slice(3, 6)} ${cleaned.slice(6, 10)}`;\n }\n }\n }\n\n return formatted;\n };\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n // Only allow numbers and control keys\n if (\n !/^\\d$/.test(e.key) &&\n e.key !== 'Backspace' &&\n e.key !== 'Delete' &&\n e.key !== 'Tab' &&\n e.key !== 'ArrowLeft' &&\n e.key !== 'ArrowRight' &&\n e.key !== 'Home' &&\n e.key !== 'End'\n ) {\n e.preventDefault();\n }\n props.onKeyDown?.(e);\n };\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const input = e.target;\n const cursorPosition = input.selectionStart || 0;\n\n // Only allow numbers\n const cleaned = input.value.replace(/\\D/g, '');\n\n // Format the number\n const formatted = formatPhoneNumber(cleaned);\n\n // Update display value\n setDisplayValue(formatted);\n\n // Calculate cursor position adjustment\n const oldLength = displayValue.length;\n const newLength = formatted.length;\n const diff = newLength - oldLength;\n\n // Restore cursor position after React updates\n requestAnimationFrame(() => {\n const newCursorPosition = Math.max(0, Math.min(cursorPosition + diff, formatted.length));\n input.setSelectionRange(newCursorPosition, newCursorPosition);\n });\n\n // Call onChange with the raw cleaned value\n if (onChange) {\n const syntheticEvent = {\n ...e,\n target: { ...e.target, value: cleaned },\n } as React.ChangeEvent<HTMLInputElement>;\n onChange(syntheticEvent);\n }\n };\n\n const handlePaste = (e: React.ClipboardEvent<HTMLInputElement>) => {\n e.preventDefault();\n const pastedData = e.clipboardData.getData('text/plain');\n const numericData = pastedData.replace(/\\D/g, '');\n\n const target = e.target as HTMLInputElement;\n const start = target.selectionStart || 0;\n const currentCleaned = displayValue.replace(/\\D/g, '');\n const newCleaned = currentCleaned.slice(0, start) + numericData;\n\n // Format the new value\n const formatted = formatPhoneNumber(newCleaned);\n setDisplayValue(formatted);\n\n // Call onChange with the raw cleaned value\n if (onChange) {\n const syntheticEvent = {\n ...e,\n target: { ...e.target, value: newCleaned },\n } as any;\n onChange(syntheticEvent);\n }\n\n props.onPaste?.(e);\n };\n\n return (\n <div className=\"w-full\">\n {label && (\n <label\n className=\"block text-sm font-medium mb-2\"\n style={{ color: error ? '#C21919' : '#181918' }}\n >\n {label}\n {props.required && <span style={{ color: '#C21919' }}>*</span>}\n </label>\n )}\n <style>\n {`\n .phone-input-container {\n display: flex;\n gap: 8px;\n }\n\n .phone-input-error-state .ant-select-selector {\n border-color: #C21919 !important;\n }\n\n .phone-input-error-state .ant-select-focused .ant-select-selector {\n border-color: #C21919 !important;\n box-shadow: 0 0 0 2px rgba(194, 25, 25, 0.1) !important;\n }\n\n .phone-input-error-state .ant-input {\n border-color: #C21919 !important;\n }\n\n .phone-input-error-state .ant-input:focus {\n border-color: #C21919 !important;\n box-shadow: 0 0 0 2px rgba(194, 25, 25, 0.1) !important;\n }\n\n .phone-input-country-code-static {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 61px;\n height: 44px;\n border-radius: 12px;\n border: 1px solid;\n font-size: 14px;\n font-weight: 500;\n background-color: #FAFAFA;\n }\n\n .phone-input-error-state .phone-input-country-code-static {\n border-color: #C21919 !important;\n }\n `}\n </style>\n <div className={`phone-input-container ${errorClass}`}>\n {showCountryCodeDropdown ? (\n <Select\n value={countryCode}\n onChange={onCountryCodeChange}\n options={countryCodes}\n style={{\n width: '85px',\n borderRadius: '12px',\n }}\n className={errorClass}\n popupClassName=\"country-code-dropdown\"\n disabled={props.disabled}\n />\n ) : (\n <div\n className=\"phone-input-country-code-static\"\n style={{\n borderColor: error ? '#C21919' : '#D1D1D1',\n color: props.disabled ? '#00000040' : '#000000',\n backgroundColor: props.disabled ? '#f5f5f5' : '#FAFAFA',\n }}\n >\n {countryCode}\n </div>\n )}\n <AntInput\n {...props}\n value={displayValue}\n className={className}\n onKeyDown={handleKeyDown}\n onChange={handleChange}\n onPaste={handlePaste}\n style={{\n flex: 1,\n height: '44px',\n borderRadius: '12px',\n borderColor: error ? '#C21919' : '#D1D1D1',\n ...props.style,\n }}\n />\n </div>\n {error && (\n <div className=\"flex items-center mt-1 text-xs text-[#C21919]\">\n <svg className=\"w-3 h-3 mr-1\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7 4a1 1 0 11-2 0 1 1 0 012 0zm-1-9a1 1 0 00-1 1v4a1 1 0 102 0V6a1 1 0 00-1-1z\"\n clipRule=\"evenodd\"\n />\n </svg>\n {error}\n </div>\n )}\n {!error && helperText && <div className=\"mt-1 text-xs text-gray-500\">{helperText}</div>}\n </div>\n );\n};\n","import React, { useState, useEffect } from 'react';\nimport { Input as AntInput } from 'antd';\nimport type { InputProps as AntInputProps } from 'antd';\n\nexport interface CurrencyInputProps extends Omit<AntInputProps, 'onChange'> {\n label?: string;\n error?: string;\n helperText?: string;\n currencySymbol?: string;\n formatAmount?: boolean;\n onChange?: (value: string, event: React.ChangeEvent<HTMLInputElement>) => void;\n}\n\nexport const CurrencyInput: React.FC<CurrencyInputProps> = ({\n label,\n error,\n helperText,\n className = '',\n status,\n currencySymbol = '₦',\n formatAmount = false,\n onChange,\n value: externalValue,\n ...props\n}) => {\n const errorClass = error ? 'currency-input-error-state' : '';\n const [displayValue, setDisplayValue] = useState<string>('');\n\n // Format number with commas\n const formatNumber = (num: string): string => {\n // Remove all non-digit characters except decimal point\n const cleanNum = num.replace(/[^\\d.]/g, '');\n\n // Split into integer and decimal parts\n const parts = cleanNum.split('.');\n const integerPart = parts[0];\n const decimalPart = parts[1];\n\n // Add commas to integer part\n const formattedInteger = integerPart.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n\n // Combine with decimal part if exists\n return decimalPart !== undefined ? `${formattedInteger}.${decimalPart}` : formattedInteger;\n };\n\n // Remove formatting to get raw value\n const unformatNumber = (formatted: string): string => {\n return formatted.replace(/,/g, '');\n };\n\n // Update display value when external value changes\n useEffect(() => {\n if (externalValue !== undefined) {\n const stringValue = String(externalValue);\n setDisplayValue(formatAmount ? formatNumber(stringValue) : stringValue);\n }\n }, [externalValue, formatAmount]);\n\n // Handle input change\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const inputValue = e.target.value;\n\n if (formatAmount) {\n const rawValue = unformatNumber(inputValue);\n const formatted = formatNumber(rawValue);\n setDisplayValue(formatted);\n\n if (onChange) {\n onChange(rawValue, e);\n }\n } else {\n setDisplayValue(inputValue);\n if (onChange) {\n onChange(inputValue, e);\n }\n }\n };\n\n return (\n <div className=\"w-full\">\n {label && (\n <label\n className=\"block text-sm font-medium mb-2\"\n style={{ color: error ? '#C21919' : '#181918' }}\n >\n {label}\n {props.required && <span style={{ color: '#C21919' }}>*</span>}\n </label>\n )}\n <style>\n {`\n .currency-input-wrapper.ant-input-affix-wrapper {\n display: flex;\n align-items: center;\n padding: 0;\n height: 44px;\n border-radius: 12px;\n }\n\n .currency-input-wrapper .ant-input-prefix {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 37px;\n height: 41px;\n background-color: #F0F2F4;\n margin: 0;\n border-radius: 12px 0 0 12px;\n color: #000000;\n flex-shrink: 0;\n margin-right: 10px;\n }\n\n .currency-input-wrapper .ant-input {\n padding: 11px 16px 11px 20px;\n height: 44px;\n }\n\n .currency-input-error-state.ant-input-affix-wrapper {\n border-color: #C21919 !important;\n }\n\n .currency-input-error-state.ant-input-affix-wrapper:focus,\n .currency-input-error-state.ant-input-affix-wrapper-focused {\n border-color: #C21919 !important;\n box-shadow: 0 0 0 2px rgba(194, 25, 25, 0.1) !important;\n }\n `}\n </style>\n <AntInput\n className={`currency-input-wrapper ${className} ${errorClass}`}\n status={error ? 'error' : status}\n prefix={<span>{currencySymbol}</span>}\n {...props}\n value={formatAmount ? displayValue : externalValue}\n onChange={handleChange}\n style={{\n borderColor: error ? '#C21919' : '#D1D1D1',\n ...props.style,\n }}\n />\n {error && (\n <div className=\"flex items-center mt-1 text-xs text-[#C21919]\">\n <svg className=\"w-3 h-3 mr-1\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7 4a1 1 0 11-2 0 1 1 0 012 0zm-1-9a1 1 0 00-1 1v4a1 1 0 102 0V6a1 1 0 00-1-1z\"\n clipRule=\"evenodd\"\n />\n </svg>\n {error}\n </div>\n )}\n {!error && helperText && <div className=\"mt-1 text-xs text-gray-500\">{helperText}</div>}\n </div>\n );\n};\n","import { createContext } from 'react';\nconst IconContext = /*#__PURE__*/createContext({});\nexport default IconContext;","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","// 36 Hex to reduce the size of the file\nexport default {\n aliceblue: '9ehhb',\n antiquewhite: '9sgk7',\n aqua: '1ekf',\n aquamarine: '4zsno',\n azure: '9eiv3',\n beige: '9lhp8',\n bisque: '9zg04',\n black: '0',\n blanchedalmond: '9zhe5',\n blue: '73',\n blueviolet: '5e31e',\n brown: '6g016',\n burlywood: '8ouiv',\n cadetblue: '3qba8',\n chartreuse: '4zshs',\n chocolate: '87k0u',\n coral: '9yvyo',\n cornflowerblue: '3xael',\n cornsilk: '9zjz0',\n crimson: '8l4xo',\n cyan: '1ekf',\n darkblue: '3v',\n darkcyan: 'rkb',\n darkgoldenrod: '776yz',\n darkgray: '6mbhl',\n darkgreen: 'jr4',\n darkgrey: '6mbhl',\n darkkhaki: '7ehkb',\n darkmagenta: '5f91n',\n darkolivegreen: '3bzfz',\n darkorange: '9yygw',\n darkorchid: '5z6x8',\n darkred: '5f8xs',\n darksalmon: '9441m',\n darkseagreen: '5lwgf',\n darkslateblue: '2th1n',\n darkslategray: '1ugcv',\n darkslategrey: '1ugcv',\n darkturquoise: '14up',\n darkviolet: '5rw7n',\n deeppink: '9yavn',\n deepskyblue: '11xb',\n dimgray: '442g9',\n dimgrey: '442g9',\n dodgerblue: '16xof',\n firebrick: '6y7tu',\n floralwhite: '9zkds',\n forestgreen: '1cisi',\n fuchsia: '9y70f',\n gainsboro: '8m8kc',\n ghostwhite: '9pq0v',\n goldenrod: '8j4f4',\n gold: '9zda8',\n gray: '50i2o',\n green: 'pa8',\n greenyellow: '6senj',\n grey: '50i2o',\n honeydew: '9eiuo',\n hotpink: '9yrp0',\n indianred: '80gnw',\n indigo: '2xcoy',\n ivory: '9zldc',\n khaki: '9edu4',\n lavenderblush: '9ziet',\n lavender: '90c8q',\n lawngreen: '4vk74',\n lemonchiffon: '9zkct',\n lightblue: '6s73a',\n lightcoral: '9dtog',\n lightcyan: '8s1rz',\n lightgoldenrodyellow: '9sjiq',\n lightgray: '89jo3',\n lightgreen: '5nkwg',\n lightgrey: '89jo3',\n lightpink: '9z6wx',\n lightsalmon: '9z2ii',\n lightseagreen: '19xgq',\n lightskyblue: '5arju',\n lightslategray: '4nwk9',\n lightslategrey: '4nwk9',\n lightsteelblue: '6wau6',\n lightyellow: '9zlcw',\n lime: '1edc',\n limegreen: '1zcxe',\n linen: '9shk6',\n magenta: '9y70f',\n maroon: '4zsow',\n mediumaquamarine: '40eju',\n mediumblue: '5p',\n mediumorchid: '79qkz',\n mediumpurple: '5r3rv',\n mediumseagreen: '2d9ip',\n mediumslateblue: '4tcku',\n mediumspringgreen: '1di2',\n mediumturquoise: '2uabw',\n mediumvioletred: '7rn9h',\n midnightblue: 'z980',\n mintcream: '9ljp6',\n mistyrose: '9zg0x',\n moccasin: '9zfzp',\n navajowhite: '9zest',\n navy: '3k',\n oldlace: '9wq92',\n olive: '50hz4',\n olivedrab: '472ub',\n orange: '9z3eo',\n orangered: '9ykg0',\n orchid: '8iu3a',\n palegoldenrod: '9bl4a',\n palegreen: '5yw0o',\n paleturquoise: '6v4ku',\n palevioletred: '8k8lv',\n papayawhip: '9zi6t',\n peachpuff: '9ze0p',\n peru: '80oqn',\n pink: '9z8wb',\n plum: '8nba5',\n powderblue: '6wgdi',\n purple: '4zssg',\n rebeccapurple: '3zk49',\n red: '9y6tc',\n rosybrown: '7cv4f',\n royalblue: '2jvtt',\n saddlebrown: '5fmkz',\n salmon: '9rvci',\n sandybrown: '9jn1c',\n seagreen: '1tdnb',\n seashell: '9zje6',\n sienna: '6973h',\n silver: '7ir40',\n skyblue: '5arjf',\n slateblue: '45e4t',\n slategray: '4e100',\n slategrey: '4e100',\n snow: '9zke2',\n springgreen: '1egv',\n steelblue: '2r1kk',\n tan: '87yx8',\n teal: 'pds',\n thistle: '8ggk8',\n tomato: '9yqfb',\n turquoise: '2j4r4',\n violet: '9b10u',\n wheat: '9ld4j',\n white: '9zldr',\n whitesmoke: '9lhpx',\n yellow: '9zl6o',\n yellowgreen: '61fzm'\n};","import presetColors from \"./presetColors\";\nconst round = Math.round;\n\n/**\n * Support format, alpha unit will check the % mark:\n * - rgba(102, 204, 255, .5) -> [102, 204, 255, 0.5]\n * - rgb(102 204 255 / .5) -> [102, 204, 255, 0.5]\n * - rgb(100%, 50%, 0% / 50%) -> [255, 128, 0, 0.5]\n * - hsl(270, 60, 40, .5) -> [270, 60, 40, 0.5]\n * - hsl(270deg 60% 40% / 50%) -> [270, 60, 40, 0.5]\n *\n * When `base` is provided, the percentage value will be divided by `base`.\n */\nfunction splitColorStr(str, parseNum) {\n const match = str\n // Remove str before `(`\n .replace(/^[^(]*\\((.*)/, '$1')\n // Remove str after `)`\n .replace(/\\).*/, '').match(/\\d*\\.?\\d+%?/g) || [];\n const numList = match.map(item => parseFloat(item));\n for (let i = 0; i < 3; i += 1) {\n numList[i] = parseNum(numList[i] || 0, match[i] || '', i);\n }\n\n // For alpha. 50% should be 0.5\n if (match[3]) {\n numList[3] = match[3].includes('%') ? numList[3] / 100 : numList[3];\n } else {\n // By default, alpha is 1\n numList[3] = 1;\n }\n return numList;\n}\nconst parseHSVorHSL = (num, _, index) => index === 0 ? num : num / 100;\n\n/** round and limit number to integer between 0-255 */\nfunction limitRange(value, max) {\n const mergedMax = max || 255;\n if (value > mergedMax) {\n return mergedMax;\n }\n if (value < 0) {\n return 0;\n }\n return value;\n}\nexport class FastColor {\n /**\n * All FastColor objects are valid. So isValid is always true. This property is kept to be compatible with TinyColor.\n */\n isValid = true;\n\n /**\n * Red, R in RGB\n */\n r = 0;\n\n /**\n * Green, G in RGB\n */\n g = 0;\n\n /**\n * Blue, B in RGB\n */\n b = 0;\n\n /**\n * Alpha/Opacity, A in RGBA/HSLA\n */\n a = 1;\n\n // HSV privates\n _h;\n _hsl_s;\n _hsv_s;\n _l;\n _v;\n\n // intermediate variables to calculate HSL/HSV\n _max;\n _min;\n _brightness;\n constructor(input) {\n /**\n * Always check 3 char in the object to determine the format.\n * We not use function in check to save bundle size.\n * e.g. 'rgb' -> { r: 0, g: 0, b: 0 }.\n */\n function matchFormat(str) {\n return str[0] in input && str[1] in input && str[2] in input;\n }\n if (!input) {\n // Do nothing since already initialized\n } else if (typeof input === 'string') {\n const trimStr = input.trim();\n function matchPrefix(prefix) {\n return trimStr.startsWith(prefix);\n }\n if (/^#?[A-F\\d]{3,8}$/i.test(trimStr)) {\n this.fromHexString(trimStr);\n } else if (matchPrefix('rgb')) {\n this.fromRgbString(trimStr);\n } else if (matchPrefix('hsl')) {\n this.fromHslString(trimStr);\n } else if (matchPrefix('hsv') || matchPrefix('hsb')) {\n this.fromHsvString(trimStr);\n } else {\n // From preset color\n const presetColor = presetColors[trimStr.toLowerCase()];\n if (presetColor) {\n this.fromHexString(\n // Convert 36 hex to 16 hex\n parseInt(presetColor, 36).toString(16).padStart(6, '0'));\n }\n }\n } else if (input instanceof FastColor) {\n this.r = input.r;\n this.g = input.g;\n this.b = input.b;\n this.a = input.a;\n this._h = input._h;\n this._hsl_s = input._hsl_s;\n this._hsv_s = input._hsv_s;\n this._l = input._l;\n this._v = input._v;\n } else if (matchFormat('rgb')) {\n this.r = limitRange(input.r);\n this.g = limitRange(input.g);\n this.b = limitRange(input.b);\n this.a = typeof input.a === 'number' ? limitRange(input.a, 1) : 1;\n } else if (matchFormat('hsl')) {\n this.fromHsl(input);\n } else if (matchFormat('hsv')) {\n this.fromHsv(input);\n } else {\n throw new Error('@ant-design/fast-color: unsupported input ' + JSON.stringify(input));\n }\n }\n\n // ======================= Setter =======================\n\n setR(value) {\n return this._sc('r', value);\n }\n setG(value) {\n return this._sc('g', value);\n }\n setB(value) {\n return this._sc('b', value);\n }\n setA(value) {\n return this._sc('a', value, 1);\n }\n setHue(value) {\n const hsv = this.toHsv();\n hsv.h = value;\n return this._c(hsv);\n }\n\n // ======================= Getter =======================\n /**\n * Returns the perceived luminance of a color, from 0-1.\n * @see http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n */\n getLuminance() {\n function adjustGamma(raw) {\n const val = raw / 255;\n return val <= 0.03928 ? val / 12.92 : Math.pow((val + 0.055) / 1.055, 2.4);\n }\n const R = adjustGamma(this.r);\n const G = adjustGamma(this.g);\n const B = adjustGamma(this.b);\n return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n }\n getHue() {\n if (typeof this._h === 'undefined') {\n const delta = this.getMax() - this.getMin();\n if (delta === 0) {\n this._h = 0;\n } else {\n this._h = round(60 * (this.r === this.getMax() ? (this.g - this.b) / delta + (this.g < this.b ? 6 : 0) : this.g === this.getMax() ? (this.b - this.r) / delta + 2 : (this.r - this.g) / delta + 4));\n }\n }\n return this._h;\n }\n\n /**\n * @deprecated should use getHSVSaturation or getHSLSaturation instead\n */\n getSaturation() {\n return this.getHSVSaturation();\n }\n getHSVSaturation() {\n if (typeof this._hsv_s === 'undefined') {\n const delta = this.getMax() - this.getMin();\n if (delta === 0) {\n this._hsv_s = 0;\n } else {\n this._hsv_s = delta / this.getMax();\n }\n }\n return this._hsv_s;\n }\n getHSLSaturation() {\n if (typeof this._hsl_s === 'undefined') {\n const delta = this.getMax() - this.getMin();\n if (delta === 0) {\n this._hsl_s = 0;\n } else {\n const l = this.getLightness();\n this._hsl_s = delta / 255 / (1 - Math.abs(2 * l - 1));\n }\n }\n return this._hsl_s;\n }\n getLightness() {\n if (typeof this._l === 'undefined') {\n this._l = (this.getMax() + this.getMin()) / 510;\n }\n return this._l;\n }\n getValue() {\n if (typeof this._v === 'undefined') {\n this._v = this.getMax() / 255;\n }\n return this._v;\n }\n\n /**\n * Returns the perceived brightness of the color, from 0-255.\n * Note: this is not the b of HSB\n * @see http://www.w3.org/TR/AERT#color-contrast\n */\n getBrightness() {\n if (typeof this._brightness === 'undefined') {\n this._brightness = (this.r * 299 + this.g * 587 + this.b * 114) / 1000;\n }\n return this._brightness;\n }\n\n // ======================== Func ========================\n\n darken(amount = 10) {\n const h = this.getHue();\n const s = this.getSaturation();\n let l = this.getLightness() - amount / 100;\n if (l < 0) {\n l = 0;\n }\n return this._c({\n h,\n s,\n l,\n a: this.a\n });\n }\n lighten(amount = 10) {\n const h = this.getHue();\n const s = this.getSaturation();\n let l = this.getLightness() + amount / 100;\n if (l > 1) {\n l = 1;\n }\n return this._c({\n h,\n s,\n l,\n a: this.a\n });\n }\n\n /**\n * Mix the current color a given amount with another color, from 0 to 100.\n * 0 means no mixing (return current color).\n */\n mix(input, amount = 50) {\n const color = this._c(input);\n const p = amount / 100;\n const calc = key => (color[key] - this[key]) * p + this[key];\n const rgba = {\n r: round(calc('r')),\n g: round(calc('g')),\n b: round(calc('b')),\n a: round(calc('a') * 100) / 100\n };\n return this._c(rgba);\n }\n\n /**\n * Mix the color with pure white, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return white.\n */\n tint(amount = 10) {\n return this.mix({\n r: 255,\n g: 255,\n b: 255,\n a: 1\n }, amount);\n }\n\n /**\n * Mix the color with pure black, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return black.\n */\n shade(amount = 10) {\n return this.mix({\n r: 0,\n g: 0,\n b: 0,\n a: 1\n }, amount);\n }\n onBackground(background) {\n const bg = this._c(background);\n const alpha = this.a + bg.a * (1 - this.a);\n const calc = key => {\n return round((this[key] * this.a + bg[key] * bg.a * (1 - this.a)) / alpha);\n };\n return this._c({\n r: calc('r'),\n g: calc('g'),\n b: calc('b'),\n a: alpha\n });\n }\n\n // ======================= Status =======================\n isDark() {\n return this.getBrightness() < 128;\n }\n isLight() {\n return this.getBrightness() >= 128;\n }\n\n // ======================== MISC ========================\n equals(other) {\n return this.r === other.r && this.g === other.g && this.b === other.b && this.a === other.a;\n }\n clone() {\n return this._c(this);\n }\n\n // ======================= Format =======================\n toHexString() {\n let hex = '#';\n const rHex = (this.r || 0).toString(16);\n hex += rHex.length === 2 ? rHex : '0' + rHex;\n const gHex = (this.g || 0).toString(16);\n hex += gHex.length === 2 ? gHex : '0' + gHex;\n const bHex = (this.b || 0).toString(16);\n hex += bHex.length === 2 ? bHex : '0' + bHex;\n if (typeof this.a === 'number' && this.a >= 0 && this.a < 1) {\n const aHex = round(this.a * 255).toString(16);\n hex += aHex.length === 2 ? aHex : '0' + aHex;\n }\n return hex;\n }\n\n /** CSS support color pattern */\n toHsl() {\n return {\n h: this.getHue(),\n s: this.getHSLSaturation(),\n l: this.getLightness(),\n a: this.a\n };\n }\n\n /** CSS support color pattern */\n toHslString() {\n const h = this.getHue();\n const s = round(this.getHSLSaturation() * 100);\n const l = round(this.getLightness() * 100);\n return this.a !== 1 ? `hsla(${h},${s}%,${l}%,${this.a})` : `hsl(${h},${s}%,${l}%)`;\n }\n\n /** Same as toHsb */\n toHsv() {\n return {\n h: this.getHue(),\n s: this.getHSVSaturation(),\n v: this.getValue(),\n a: this.a\n };\n }\n toRgb() {\n return {\n r: this.r,\n g: this.g,\n b: this.b,\n a: this.a\n };\n }\n toRgbString() {\n return this.a !== 1 ? `rgba(${this.r},${this.g},${this.b},${this.a})` : `rgb(${this.r},${this.g},${this.b})`;\n }\n toString() {\n return this.toRgbString();\n }\n\n // ====================== Privates ======================\n /** Return a new FastColor object with one channel changed */\n _sc(rgb, value, max) {\n const clone = this.clone();\n clone[rgb] = limitRange(value, max);\n return clone;\n }\n _c(input) {\n return new this.constructor(input);\n }\n getMax() {\n if (typeof this._max === 'undefined') {\n this._max = Math.max(this.r, this.g, this.b);\n }\n return this._max;\n }\n getMin() {\n if (typeof this._min === 'undefined') {\n this._min = Math.min(this.r, this.g, this.b);\n }\n return this._min;\n }\n fromHexString(trimStr) {\n const withoutPrefix = trimStr.replace('#', '');\n function connectNum(index1, index2) {\n return parseInt(withoutPrefix[index1] + withoutPrefix[index2 || index1], 16);\n }\n if (withoutPrefix.length < 6) {\n // #rgb or #rgba\n this.r = connectNum(0);\n this.g = connectNum(1);\n this.b = connectNum(2);\n this.a = withoutPrefix[3] ? connectNum(3) / 255 : 1;\n } else {\n // #rrggbb or #rrggbbaa\n this.r = connectNum(0, 1);\n this.g = connectNum(2, 3);\n this.b = connectNum(4, 5);\n this.a = withoutPrefix[6] ? connectNum(6, 7) / 255 : 1;\n }\n }\n fromHsl({\n h: _h,\n s,\n l,\n a\n }) {\n const h = (_h % 360 + 360) % 360;\n this._h = h;\n this._hsl_s = s;\n this._l = l;\n this.a = typeof a === 'number' ? a : 1;\n if (s <= 0) {\n const rgb = round(l * 255);\n this.r = rgb;\n this.g = rgb;\n this.b = rgb;\n return;\n }\n let r = 0,\n g = 0,\n b = 0;\n const huePrime = h / 60;\n const chroma = (1 - Math.abs(2 * l - 1)) * s;\n const secondComponent = chroma * (1 - Math.abs(huePrime % 2 - 1));\n if (huePrime >= 0 && huePrime < 1) {\n r = chroma;\n g = secondComponent;\n } else if (huePrime >= 1 && huePrime < 2) {\n r = secondComponent;\n g = chroma;\n } else if (huePrime >= 2 && huePrime < 3) {\n g = chroma;\n b = secondComponent;\n } else if (huePrime >= 3 && huePrime < 4) {\n g = secondComponent;\n b = chroma;\n } else if (huePrime >= 4 && huePrime < 5) {\n r = secondComponent;\n b = chroma;\n } else if (huePrime >= 5 && huePrime < 6) {\n r = chroma;\n b = secondComponent;\n }\n const lightnessModification = l - chroma / 2;\n this.r = round((r + lightnessModification) * 255);\n this.g = round((g + lightnessModification) * 255);\n this.b = round((b + lightnessModification) * 255);\n }\n fromHsv({\n h: _h,\n s,\n v,\n a\n }) {\n const h = (_h % 360 + 360) % 360;\n this._h = h;\n this._hsv_s = s;\n this._v = v;\n this.a = typeof a === 'number' ? a : 1;\n const vv = round(v * 255);\n this.r = vv;\n this.g = vv;\n this.b = vv;\n if (s <= 0) {\n return;\n }\n const hh = h / 60;\n const i = Math.floor(hh);\n const ff = hh - i;\n const p = round(v * (1.0 - s) * 255);\n const q = round(v * (1.0 - s * ff) * 255);\n const t = round(v * (1.0 - s * (1.0 - ff)) * 255);\n switch (i) {\n case 0:\n this.g = t;\n this.b = p;\n break;\n case 1:\n this.r = q;\n this.b = p;\n break;\n case 2:\n this.r = p;\n this.b = t;\n break;\n case 3:\n this.r = p;\n this.g = q;\n break;\n case 4:\n this.r = t;\n this.g = p;\n break;\n case 5:\n default:\n this.g = p;\n this.b = q;\n break;\n }\n }\n fromHsvString(trimStr) {\n const cells = splitColorStr(trimStr, parseHSVorHSL);\n this.fromHsv({\n h: cells[0],\n s: cells[1],\n v: cells[2],\n a: cells[3]\n });\n }\n fromHslString(trimStr) {\n const cells = splitColorStr(trimStr, parseHSVorHSL);\n this.fromHsl({\n h: cells[0],\n s: cells[1],\n l: cells[2],\n a: cells[3]\n });\n }\n fromRgbString(trimStr) {\n const cells = splitColorStr(trimStr, (num, txt) =>\n // Convert percentage to number. e.g. 50% -> 128\n txt.includes('%') ? round(num / 100 * 255) : num);\n this.r = cells[0];\n this.g = cells[1];\n this.b = cells[2];\n this.a = cells[3];\n }\n}","import { FastColor } from '@ant-design/fast-color';\nconst hueStep = 2; // 色相阶梯\nconst saturationStep = 0.16; // 饱和度阶梯,浅色部分\nconst saturationStep2 = 0.05; // 饱和度阶梯,深色部分\nconst brightnessStep1 = 0.05; // 亮度阶梯,浅色部分\nconst brightnessStep2 = 0.15; // 亮度阶梯,深色部分\nconst lightColorCount = 5; // 浅色数量,主色上\nconst darkColorCount = 4; // 深色数量,主色下\n\n// 暗色主题颜色映射关系表\nconst darkColorMap = [{\n index: 7,\n amount: 15\n}, {\n index: 6,\n amount: 25\n}, {\n index: 5,\n amount: 30\n}, {\n index: 5,\n amount: 45\n}, {\n index: 5,\n amount: 65\n}, {\n index: 5,\n amount: 85\n}, {\n index: 4,\n amount: 90\n}, {\n index: 3,\n amount: 95\n}, {\n index: 2,\n amount: 97\n}, {\n index: 1,\n amount: 98\n}];\nfunction getHue(hsv, i, light) {\n let hue;\n // 根据色相不同,色相转向不同\n if (Math.round(hsv.h) >= 60 && Math.round(hsv.h) <= 240) {\n hue = light ? Math.round(hsv.h) - hueStep * i : Math.round(hsv.h) + hueStep * i;\n } else {\n hue = light ? Math.round(hsv.h) + hueStep * i : Math.round(hsv.h) - hueStep * i;\n }\n if (hue < 0) {\n hue += 360;\n } else if (hue >= 360) {\n hue -= 360;\n }\n return hue;\n}\nfunction getSaturation(hsv, i, light) {\n // grey color don't change saturation\n if (hsv.h === 0 && hsv.s === 0) {\n return hsv.s;\n }\n let saturation;\n if (light) {\n saturation = hsv.s - saturationStep * i;\n } else if (i === darkColorCount) {\n saturation = hsv.s + saturationStep;\n } else {\n saturation = hsv.s + saturationStep2 * i;\n }\n // 边界值修正\n if (saturation > 1) {\n saturation = 1;\n }\n // 第一格的 s 限制在 0.06-0.1 之间\n if (light && i === lightColorCount && saturation > 0.1) {\n saturation = 0.1;\n }\n if (saturation < 0.06) {\n saturation = 0.06;\n }\n return Math.round(saturation * 100) / 100;\n}\nfunction getValue(hsv, i, light) {\n let value;\n if (light) {\n value = hsv.v + brightnessStep1 * i;\n } else {\n value = hsv.v - brightnessStep2 * i;\n }\n // Clamp value between 0 and 1\n value = Math.max(0, Math.min(1, value));\n return Math.round(value * 100) / 100;\n}\nexport default function generate(color, opts = {}) {\n const patterns = [];\n const pColor = new FastColor(color);\n const hsv = pColor.toHsv();\n for (let i = lightColorCount; i > 0; i -= 1) {\n const c = new FastColor({\n h: getHue(hsv, i, true),\n s: getSaturation(hsv, i, true),\n v: getValue(hsv, i, true)\n });\n patterns.push(c);\n }\n patterns.push(pColor);\n for (let i = 1; i <= darkColorCount; i += 1) {\n const c = new FastColor({\n h: getHue(hsv, i),\n s: getSaturation(hsv, i),\n v: getValue(hsv, i)\n });\n patterns.push(c);\n }\n\n // dark theme patterns\n if (opts.theme === 'dark') {\n return darkColorMap.map(({\n index,\n amount\n }) => new FastColor(opts.backgroundColor || '#141414').mix(patterns[index], amount).toHexString());\n }\n return patterns.map(c => c.toHexString());\n}","// Generated by script. Do NOT modify!\n\nexport const presetPrimaryColors = {\n \"red\": \"#F5222D\",\n \"volcano\": \"#FA541C\",\n \"orange\": \"#FA8C16\",\n \"gold\": \"#FAAD14\",\n \"yellow\": \"#FADB14\",\n \"lime\": \"#A0D911\",\n \"green\": \"#52C41A\",\n \"cyan\": \"#13C2C2\",\n \"blue\": \"#1677FF\",\n \"geekblue\": \"#2F54EB\",\n \"purple\": \"#722ED1\",\n \"magenta\": \"#EB2F96\",\n \"grey\": \"#666666\"\n};\nexport const red = [\"#fff1f0\", \"#ffccc7\", \"#ffa39e\", \"#ff7875\", \"#ff4d4f\", \"#f5222d\", \"#cf1322\", \"#a8071a\", \"#820014\", \"#5c0011\"];\nred.primary = red[5];\nexport const volcano = [\"#fff2e8\", \"#ffd8bf\", \"#ffbb96\", \"#ff9c6e\", \"#ff7a45\", \"#fa541c\", \"#d4380d\", \"#ad2102\", \"#871400\", \"#610b00\"];\nvolcano.primary = volcano[5];\nexport const orange = [\"#fff7e6\", \"#ffe7ba\", \"#ffd591\", \"#ffc069\", \"#ffa940\", \"#fa8c16\", \"#d46b08\", \"#ad4e00\", \"#873800\", \"#612500\"];\norange.primary = orange[5];\nexport const gold = [\"#fffbe6\", \"#fff1b8\", \"#ffe58f\", \"#ffd666\", \"#ffc53d\", \"#faad14\", \"#d48806\", \"#ad6800\", \"#874d00\", \"#613400\"];\ngold.primary = gold[5];\nexport const yellow = [\"#feffe6\", \"#ffffb8\", \"#fffb8f\", \"#fff566\", \"#ffec3d\", \"#fadb14\", \"#d4b106\", \"#ad8b00\", \"#876800\", \"#614700\"];\nyellow.primary = yellow[5];\nexport const lime = [\"#fcffe6\", \"#f4ffb8\", \"#eaff8f\", \"#d3f261\", \"#bae637\", \"#a0d911\", \"#7cb305\", \"#5b8c00\", \"#3f6600\", \"#254000\"];\nlime.primary = lime[5];\nexport const green = [\"#f6ffed\", \"#d9f7be\", \"#b7eb8f\", \"#95de64\", \"#73d13d\", \"#52c41a\", \"#389e0d\", \"#237804\", \"#135200\", \"#092b00\"];\ngreen.primary = green[5];\nexport const cyan = [\"#e6fffb\", \"#b5f5ec\", \"#87e8de\", \"#5cdbd3\", \"#36cfc9\", \"#13c2c2\", \"#08979c\", \"#006d75\", \"#00474f\", \"#002329\"];\ncyan.primary = cyan[5];\nexport const blue = [\"#e6f4ff\", \"#bae0ff\", \"#91caff\", \"#69b1ff\", \"#4096ff\", \"#1677ff\", \"#0958d9\", \"#003eb3\", \"#002c8c\", \"#001d66\"];\nblue.primary = blue[5];\nexport const geekblue = [\"#f0f5ff\", \"#d6e4ff\", \"#adc6ff\", \"#85a5ff\", \"#597ef7\", \"#2f54eb\", \"#1d39c4\", \"#10239e\", \"#061178\", \"#030852\"];\ngeekblue.primary = geekblue[5];\nexport const purple = [\"#f9f0ff\", \"#efdbff\", \"#d3adf7\", \"#b37feb\", \"#9254de\", \"#722ed1\", \"#531dab\", \"#391085\", \"#22075e\", \"#120338\"];\npurple.primary = purple[5];\nexport const magenta = [\"#fff0f6\", \"#ffd6e7\", \"#ffadd2\", \"#ff85c0\", \"#f759ab\", \"#eb2f96\", \"#c41d7f\", \"#9e1068\", \"#780650\", \"#520339\"];\nmagenta.primary = magenta[5];\nexport const grey = [\"#a6a6a6\", \"#999999\", \"#8c8c8c\", \"#808080\", \"#737373\", \"#666666\", \"#404040\", \"#1a1a1a\", \"#000000\", \"#000000\"];\ngrey.primary = grey[5];\nexport const gray = grey;\nexport const presetPalettes = {\n red,\n volcano,\n orange,\n gold,\n yellow,\n lime,\n green,\n cyan,\n blue,\n geekblue,\n purple,\n magenta,\n grey\n};\nexport const redDark = [\"#2a1215\", \"#431418\", \"#58181c\", \"#791a1f\", \"#a61d24\", \"#d32029\", \"#e84749\", \"#f37370\", \"#f89f9a\", \"#fac8c3\"];\nredDark.primary = redDark[5];\nexport const volcanoDark = [\"#2b1611\", \"#441d12\", \"#592716\", \"#7c3118\", \"#aa3e19\", \"#d84a1b\", \"#e87040\", \"#f3956a\", \"#f8b692\", \"#fad4bc\"];\nvolcanoDark.primary = volcanoDark[5];\nexport const orangeDark = [\"#2b1d11\", \"#442a11\", \"#593815\", \"#7c4a15\", \"#aa6215\", \"#d87a16\", \"#e89a3c\", \"#f3b765\", \"#f8cf8d\", \"#fae3b7\"];\norangeDark.primary = orangeDark[5];\nexport const goldDark = [\"#2b2111\", \"#443111\", \"#594214\", \"#7c5914\", \"#aa7714\", \"#d89614\", \"#e8b339\", \"#f3cc62\", \"#f8df8b\", \"#faedb5\"];\ngoldDark.primary = goldDark[5];\nexport const yellowDark = [\"#2b2611\", \"#443b11\", \"#595014\", \"#7c6e14\", \"#aa9514\", \"#d8bd14\", \"#e8d639\", \"#f3ea62\", \"#f8f48b\", \"#fafab5\"];\nyellowDark.primary = yellowDark[5];\nexport const limeDark = [\"#1f2611\", \"#2e3c10\", \"#3e4f13\", \"#536d13\", \"#6f9412\", \"#8bbb11\", \"#a9d134\", \"#c9e75d\", \"#e4f88b\", \"#f0fab5\"];\nlimeDark.primary = limeDark[5];\nexport const greenDark = [\"#162312\", \"#1d3712\", \"#274916\", \"#306317\", \"#3c8618\", \"#49aa19\", \"#6abe39\", \"#8fd460\", \"#b2e58b\", \"#d5f2bb\"];\ngreenDark.primary = greenDark[5];\nexport const cyanDark = [\"#112123\", \"#113536\", \"#144848\", \"#146262\", \"#138585\", \"#13a8a8\", \"#33bcb7\", \"#58d1c9\", \"#84e2d8\", \"#b2f1e8\"];\ncyanDark.primary = cyanDark[5];\nexport const blueDark = [\"#111a2c\", \"#112545\", \"#15325b\", \"#15417e\", \"#1554ad\", \"#1668dc\", \"#3c89e8\", \"#65a9f3\", \"#8dc5f8\", \"#b7dcfa\"];\nblueDark.primary = blueDark[5];\nexport const geekblueDark = [\"#131629\", \"#161d40\", \"#1c2755\", \"#203175\", \"#263ea0\", \"#2b4acb\", \"#5273e0\", \"#7f9ef3\", \"#a8c1f8\", \"#d2e0fa\"];\ngeekblueDark.primary = geekblueDark[5];\nexport const purpleDark = [\"#1a1325\", \"#24163a\", \"#301c4d\", \"#3e2069\", \"#51258f\", \"#642ab5\", \"#854eca\", \"#ab7ae0\", \"#cda8f0\", \"#ebd7fa\"];\npurpleDark.primary = purpleDark[5];\nexport const magentaDark = [\"#291321\", \"#40162f\", \"#551c3b\", \"#75204f\", \"#a02669\", \"#cb2b83\", \"#e0529c\", \"#f37fb7\", \"#f8a8cc\", \"#fad2e3\"];\nmagentaDark.primary = magentaDark[5];\nexport const greyDark = [\"#151515\", \"#1f1f1f\", \"#2d2d2d\", \"#393939\", \"#494949\", \"#5a5a5a\", \"#6a6a6a\", \"#7b7b7b\", \"#888888\", \"#969696\"];\ngreyDark.primary = greyDark[5];\nexport const presetDarkPalettes = {\n red: redDark,\n volcano: volcanoDark,\n orange: orangeDark,\n gold: goldDark,\n yellow: yellowDark,\n lime: limeDark,\n green: greenDark,\n cyan: cyanDark,\n blue: blueDark,\n geekblue: geekblueDark,\n purple: purpleDark,\n magenta: magentaDark,\n grey: greyDark\n};","export default function canUseDom() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}","export default function contains(root, n) {\n if (!root) {\n return false;\n }\n\n // Use native if support\n if (root.contains) {\n return root.contains(n);\n }\n\n // `document.contains` not support with IE11\n let node = n;\n while (node) {\n if (node === root) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n}","import canUseDom from \"./canUseDom\";\nimport contains from \"./contains\";\nconst APPEND_ORDER = 'data-rc-order';\nconst APPEND_PRIORITY = 'data-rc-priority';\nconst MARK_KEY = `rc-util-key`;\nconst containerCache = new Map();\nfunction getMark({\n mark\n} = {}) {\n if (mark) {\n return mark.startsWith('data-') ? mark : `data-${mark}`;\n }\n return MARK_KEY;\n}\nfunction getContainer(option) {\n if (option.attachTo) {\n return option.attachTo;\n }\n const head = document.querySelector('head');\n return head || document.body;\n}\nfunction getOrder(prepend) {\n if (prepend === 'queue') {\n return 'prependQueue';\n }\n return prepend ? 'prepend' : 'append';\n}\n\n/**\n * Find style which inject by rc-util\n */\nfunction findStyles(container) {\n return Array.from((containerCache.get(container) || container).children).filter(node => node.tagName === 'STYLE');\n}\nexport function injectCSS(css, option = {}) {\n if (!canUseDom()) {\n return null;\n }\n const {\n csp,\n prepend,\n priority = 0\n } = option;\n const mergedOrder = getOrder(prepend);\n const isPrependQueue = mergedOrder === 'prependQueue';\n const styleNode = document.createElement('style');\n styleNode.setAttribute(APPEND_ORDER, mergedOrder);\n if (isPrependQueue && priority) {\n styleNode.setAttribute(APPEND_PRIORITY, `${priority}`);\n }\n if (csp?.nonce) {\n styleNode.nonce = csp?.nonce;\n }\n styleNode.innerHTML = css;\n const container = getContainer(option);\n const {\n firstChild\n } = container;\n if (prepend) {\n // If is queue `prepend`, it will prepend first style and then append rest style\n if (isPrependQueue) {\n const existStyle = (option.styles || findStyles(container)).filter(node => {\n // Ignore style which not injected by rc-util with prepend\n if (!['prepend', 'prependQueue'].includes(node.getAttribute(APPEND_ORDER))) {\n return false;\n }\n\n // Ignore style which priority less then new style\n const nodePriority = Number(node.getAttribute(APPEND_PRIORITY) || 0);\n return priority >= nodePriority;\n });\n if (existStyle.length) {\n container.insertBefore(styleNode, existStyle[existStyle.length - 1].nextSibling);\n return styleNode;\n }\n }\n\n // Use `insertBefore` as `prepend`\n container.insertBefore(styleNode, firstChild);\n } else {\n container.appendChild(styleNode);\n }\n return styleNode;\n}\nfunction findExistNode(key, option = {}) {\n let {\n styles\n } = option;\n styles ||= findStyles(getContainer(option));\n return styles.find(node => node.getAttribute(getMark(option)) === key);\n}\nexport function removeCSS(key, option = {}) {\n const existNode = findExistNode(key, option);\n if (existNode) {\n const container = getContainer(option);\n container.removeChild(existNode);\n }\n}\n\n/**\n * qiankun will inject `appendChild` to insert into other\n */\nfunction syncRealContainer(container, option) {\n const cachedRealContainer = containerCache.get(container);\n\n // Find real container when not cached or cached container removed\n if (!cachedRealContainer || !contains(document, cachedRealContainer)) {\n const placeholderStyle = injectCSS('', option);\n const {\n parentNode\n } = placeholderStyle;\n containerCache.set(container, parentNode);\n container.removeChild(placeholderStyle);\n }\n}\n\n/**\n * manually clear container cache to avoid global cache in unit testes\n */\nexport function clearContainerCache() {\n containerCache.clear();\n}\nexport function updateCSS(css, key, originOption = {}) {\n const container = getContainer(originOption);\n const styles = findStyles(container);\n const option = {\n ...originOption,\n styles\n };\n\n // Sync real parent\n syncRealContainer(container, option);\n const existNode = findExistNode(key, option);\n if (existNode) {\n if (option.csp?.nonce && existNode.nonce !== option.csp?.nonce) {\n existNode.nonce = option.csp?.nonce;\n }\n if (existNode.innerHTML !== css) {\n existNode.innerHTML = css;\n }\n return existNode;\n }\n const newNode = injectCSS(css, option);\n newNode.setAttribute(getMark(option), key);\n return newNode;\n}","function getRoot(ele) {\n return ele?.getRootNode?.();\n}\n\n/**\n * Check if is in shadowRoot\n */\nexport function inShadow(ele) {\n return getRoot(ele) instanceof ShadowRoot;\n}\n\n/**\n * Return shadowRoot if possible\n */\nexport function getShadowRoot(ele) {\n return inShadow(ele) ? getRoot(ele) : null;\n}","/* eslint-disable no-console */\nlet warned = {};\nconst preWarningFns = [];\n\n/**\n * Pre warning enable you to parse content before console.error.\n * Modify to null will prevent warning.\n */\nexport const preMessage = fn => {\n preWarningFns.push(fn);\n};\n\n/**\n * Warning if condition not match.\n * @param valid Condition\n * @param message Warning message\n * @example\n * ```js\n * warning(false, 'some error'); // print some error\n * warning(true, 'some error'); // print nothing\n * warning(1 === 2, 'some error'); // print some error\n * ```\n */\nexport function warning(valid, message) {\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n const finalMessage = preWarningFns.reduce((msg, preMessageFn) => preMessageFn(msg ?? '', 'warning'), message);\n if (finalMessage) {\n console.error(`Warning: ${finalMessage}`);\n }\n }\n}\n\n/** @see Similar to {@link warning} */\nexport function note(valid, message) {\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n const finalMessage = preWarningFns.reduce((msg, preMessageFn) => preMessageFn(msg ?? '', 'note'), message);\n if (finalMessage) {\n console.warn(`Note: ${finalMessage}`);\n }\n }\n}\nexport function resetWarned() {\n warned = {};\n}\nexport function call(method, valid, message) {\n if (!valid && !warned[message]) {\n method(false, message);\n warned[message] = true;\n }\n}\n\n/** @see Same as {@link warning}, but only warn once for the same message */\nexport function warningOnce(valid, message) {\n call(warning, valid, message);\n}\n\n/** @see Same as {@link warning}, but only warn once for the same message */\nexport function noteOnce(valid, message) {\n call(note, valid, message);\n}\nwarningOnce.preMessage = preMessage;\nwarningOnce.resetWarned = resetWarned;\nwarningOnce.noteOnce = noteOnce;\nexport default warningOnce;","import { generate as generateColor } from '@ant-design/colors';\nimport { updateCSS } from \"@rc-component/util/es/Dom/dynamicCSS\";\nimport { getShadowRoot } from \"@rc-component/util/es/Dom/shadow\";\nimport { warningOnce } from \"@rc-component/util/es/warning\";\nimport React, { useContext, useEffect } from 'react';\nimport IconContext from \"./components/Context\";\nfunction camelCase(input) {\n return input.replace(/-(.)/g, (match, g) => g.toUpperCase());\n}\nexport function warning(valid, message) {\n warningOnce(valid, `[@ant-design/icons] ${message}`);\n}\nexport function isIconDefinition(target) {\n return typeof target === 'object' && typeof target.name === 'string' && typeof target.theme === 'string' && (typeof target.icon === 'object' || typeof target.icon === 'function');\n}\nexport function normalizeAttrs(attrs = {}) {\n return Object.keys(attrs).reduce((acc, key) => {\n const val = attrs[key];\n switch (key) {\n case 'class':\n acc.className = val;\n delete acc.class;\n break;\n default:\n delete acc[key];\n acc[camelCase(key)] = val;\n }\n return acc;\n }, {});\n}\nexport function generate(node, key, rootProps) {\n if (!rootProps) {\n return /*#__PURE__*/React.createElement(node.tag, {\n key,\n ...normalizeAttrs(node.attrs)\n }, (node.children || []).map((child, index) => generate(child, `${key}-${node.tag}-${index}`)));\n }\n return /*#__PURE__*/React.createElement(node.tag, {\n key,\n ...normalizeAttrs(node.attrs),\n ...rootProps\n }, (node.children || []).map((child, index) => generate(child, `${key}-${node.tag}-${index}`)));\n}\nexport function getSecondaryColor(primaryColor) {\n // choose the second color\n return generateColor(primaryColor)[0];\n}\nexport function normalizeTwoToneColors(twoToneColor) {\n if (!twoToneColor) {\n return [];\n }\n return Array.isArray(twoToneColor) ? twoToneColor : [twoToneColor];\n}\n\n// These props make sure that the SVG behaviours like general text.\n// Reference: https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4\nexport const svgBaseProps = {\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true',\n focusable: 'false'\n};\nexport const iconStyles = `\n.anticon {\n display: inline-flex;\n align-items: center;\n color: inherit;\n font-style: normal;\n line-height: 0;\n text-align: center;\n text-transform: none;\n vertical-align: -0.125em;\n text-rendering: optimizeLegibility;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.anticon > * {\n line-height: 1;\n}\n\n.anticon svg {\n display: inline-block;\n vertical-align: inherit;\n}\n\n.anticon::before {\n display: none;\n}\n\n.anticon .anticon-icon {\n display: block;\n}\n\n.anticon[tabindex] {\n cursor: pointer;\n}\n\n.anticon-spin::before,\n.anticon-spin {\n display: inline-block;\n -webkit-animation: loadingCircle 1s infinite linear;\n animation: loadingCircle 1s infinite linear;\n}\n\n@-webkit-keyframes loadingCircle {\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes loadingCircle {\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n`;\nexport const useInsertStyles = eleRef => {\n const {\n csp,\n prefixCls,\n layer\n } = useContext(IconContext);\n let mergedStyleStr = iconStyles;\n if (prefixCls) {\n mergedStyleStr = mergedStyleStr.replace(/anticon/g, prefixCls);\n }\n if (layer) {\n mergedStyleStr = `@layer ${layer} {\\n${mergedStyleStr}\\n}`;\n }\n useEffect(() => {\n const ele = eleRef.current;\n const shadowRoot = getShadowRoot(ele);\n updateCSS(mergedStyleStr, '@ant-design-icons', {\n prepend: !layer,\n csp,\n attachTo: shadowRoot\n });\n }, []);\n};","import * as React from 'react';\nimport { generate, getSecondaryColor, isIconDefinition, warning, useInsertStyles } from \"../utils\";\nconst twoToneColorPalette = {\n primaryColor: '#333',\n secondaryColor: '#E6E6E6',\n calculated: false\n};\nfunction setTwoToneColors({\n primaryColor,\n secondaryColor\n}) {\n twoToneColorPalette.primaryColor = primaryColor;\n twoToneColorPalette.secondaryColor = secondaryColor || getSecondaryColor(primaryColor);\n twoToneColorPalette.calculated = !!secondaryColor;\n}\nfunction getTwoToneColors() {\n return {\n ...twoToneColorPalette\n };\n}\nconst IconBase = props => {\n const {\n icon,\n className,\n onClick,\n style,\n primaryColor,\n secondaryColor,\n ...restProps\n } = props;\n const svgRef = React.useRef(null);\n let colors = twoToneColorPalette;\n if (primaryColor) {\n colors = {\n primaryColor,\n secondaryColor: secondaryColor || getSecondaryColor(primaryColor)\n };\n }\n useInsertStyles(svgRef);\n warning(isIconDefinition(icon), `icon should be icon definiton, but got ${icon}`);\n if (!isIconDefinition(icon)) {\n return null;\n }\n let target = icon;\n if (target && typeof target.icon === 'function') {\n target = {\n ...target,\n icon: target.icon(colors.primaryColor, colors.secondaryColor)\n };\n }\n return generate(target.icon, `svg-${target.name}`, {\n className,\n onClick,\n style,\n 'data-icon': target.name,\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true',\n ...restProps,\n ref: svgRef\n });\n};\nIconBase.displayName = 'IconReact';\nIconBase.getTwoToneColors = getTwoToneColors;\nIconBase.setTwoToneColors = setTwoToneColors;\nexport default IconBase;","import ReactIcon from \"./IconBase\";\nimport { normalizeTwoToneColors } from \"../utils\";\nexport function setTwoToneColor(twoToneColor) {\n const [primaryColor, secondaryColor] = normalizeTwoToneColors(twoToneColor);\n return ReactIcon.setTwoToneColors({\n primaryColor,\n secondaryColor\n });\n}\nexport function getTwoToneColor() {\n const colors = ReactIcon.getTwoToneColors();\n if (!colors.calculated) {\n return colors.primaryColor;\n }\n return [colors.primaryColor, colors.secondaryColor];\n}","'use client';\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from 'react';\nimport { clsx } from 'clsx';\nimport { blue } from '@ant-design/colors';\nimport Context from \"./Context\";\nimport ReactIcon from \"./IconBase\";\nimport { getTwoToneColor, setTwoToneColor } from \"./twoTonePrimaryColor\";\nimport { normalizeTwoToneColors } from \"../utils\";\n// Initial setting\n// should move it to antd main repo?\nsetTwoToneColor(blue.primary);\n\n// https://github.com/DefinitelyTyped/DefinitelyTyped/issues/34757#issuecomment-488848720\n\nconst Icon = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n // affect outter <i>...</i>\n className,\n // affect inner <svg>...</svg>\n icon,\n spin,\n rotate,\n tabIndex,\n onClick,\n // other\n twoToneColor,\n ...restProps\n } = props;\n const {\n prefixCls = 'anticon',\n rootClassName\n } = React.useContext(Context);\n const classString = clsx(rootClassName, prefixCls, {\n [`${prefixCls}-${icon.name}`]: !!icon.name,\n [`${prefixCls}-spin`]: !!spin || icon.name === 'loading'\n }, className);\n let iconTabIndex = tabIndex;\n if (iconTabIndex === undefined && onClick) {\n iconTabIndex = -1;\n }\n const svgStyle = rotate ? {\n msTransform: `rotate(${rotate}deg)`,\n transform: `rotate(${rotate}deg)`\n } : undefined;\n const [primaryColor, secondaryColor] = normalizeTwoToneColors(twoToneColor);\n return /*#__PURE__*/React.createElement(\"span\", _extends({\n role: \"img\",\n \"aria-label\": icon.name\n }, restProps, {\n ref: ref,\n tabIndex: iconTabIndex,\n onClick: onClick,\n className: classString\n }), /*#__PURE__*/React.createElement(ReactIcon, {\n icon: icon,\n primaryColor: primaryColor,\n secondaryColor: secondaryColor,\n style: svgStyle\n }));\n});\nIcon.getTwoToneColor = getTwoToneColor;\nIcon.setTwoToneColor = setTwoToneColor;\nif (process.env.NODE_ENV !== 'production') {\n Icon.displayName = 'AntdIcon';\n}\nexport default Icon;","// This icon file is generated automatically.\nvar UserOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M858.5 763.6a374 374 0 00-80.6-119.5 375.63 375.63 0 00-119.5-80.6c-.4-.2-.8-.3-1.2-.5C719.5 518 760 444.7 760 362c0-137-111-248-248-248S264 225 264 362c0 82.7 40.5 156 102.8 201.1-.4.2-.8.3-1.2.5-44.8 18.9-85 46-119.5 80.6a375.63 375.63 0 00-80.6 119.5A371.7 371.7 0 00136 901.8a8 8 0 008 8.2h60c4.4 0 7.9-3.5 8-7.8 2-77.2 33-149.5 87.8-204.3 56.7-56.7 132-87.9 212.2-87.9s155.5 31.2 212.2 87.9C779 752.7 810 825 812 902.2c.1 4.4 3.6 7.8 8 7.8h60a8 8 0 008-8.2c-1-47.8-10.9-94.3-29.5-138.2zM512 534c-45.9 0-89.1-17.9-121.6-50.4S340 407.9 340 362c0-45.9 17.9-89.1 50.4-121.6S466.1 190 512 190s89.1 17.9 121.6 50.4S684 316.1 684 362c0 45.9-17.9 89.1-50.4 121.6S557.9 534 512 534z\" } }] }, \"name\": \"user\", \"theme\": \"outlined\" };\nexport default UserOutlined;\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport UserOutlinedSvg from \"@ant-design/icons-svg/es/asn/UserOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nconst UserOutlined = (props, ref) => /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: UserOutlinedSvg\n}));\n\n/** */\nconst RefIcon = /*#__PURE__*/React.forwardRef(UserOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'UserOutlined';\n}\nexport default RefIcon;","import React from 'react';\nimport { Avatar } from 'antd';\nimport { UserOutlined } from '@ant-design/icons';\n\nexport interface UserPillProps {\n name: string;\n subtitle?: string;\n avatar?: string;\n className?: string;\n size?: 'small' | 'medium' | 'large';\n}\n\nexport const UserPill: React.FC<UserPillProps> = ({\n name,\n subtitle,\n avatar,\n className = '',\n}) => {\n const avatarSize = 30;\n\n return (\n <div\n className={`flex items-center ${className}`}\n style={{\n backgroundColor: '#E6E6E6',\n borderRadius: '40px',\n padding: '5px 12px 5px 5px',\n height: '40px',\n gap: '8px',\n }}\n >\n {avatar ? (\n <Avatar src={avatar} size={avatarSize} />\n ) : (\n <Avatar icon={<UserOutlined />} size={avatarSize} style={{ backgroundColor: '#6B7280' }} />\n )}\n <div className=\"flex flex-col\">\n <span\n style={{\n color: '#181918',\n fontSize: '14px',\n fontWeight: 600,\n lineHeight: '1.2',\n }}\n >\n {name}\n </span>\n {subtitle && (\n <span\n style={{\n color: '#181918',\n fontSize: '12px',\n fontWeight: 400,\n lineHeight: '1.2',\n marginTop: '2px',\n }}\n >\n {subtitle}\n </span>\n )}\n </div>\n </div>\n );\n};\n","export default \"data:image/svg+xml,%3csvg%20width='353'%20height='130'%20viewBox='0%200%20353%20130'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20opacity='0.1'%3e%3cpath%20d='M17%2024C17%2015.1634%2024.1634%208%2033%208H327C335.837%208%20343%2015.1634%20343%2024V98C343%20106.837%20335.837%20114%20327%20114H33C24.1635%20114%2017%20106.837%2017%2098V24Z'%20fill='url(%23paint0_linear_683_56525)'/%3e%3crect%20x='41'%20y='29'%20width='67'%20height='67'%20rx='33.5'%20fill='%231B1C1E'/%3e%3cpath%20d='M68.8552%2071V55.0216H75.5683C76.5263%2055.0216%2077.3484%2055.1932%2078.0347%2055.5363C78.7354%2055.8795%2079.2715%2056.3657%2079.6433%2056.9948C80.0294%2057.6096%2080.2224%2058.346%2080.2224%2059.2039C80.2224%2059.9903%2080.0151%2060.7052%2079.6004%2061.3486C79.2%2061.9777%2078.6067%2062.471%2077.8203%2062.8285L77.7988%2062.0349C78.4851%2062.2923%2079.0499%2062.6355%2079.4932%2063.0644C79.9507%2063.4791%2080.2939%2063.9652%2080.5226%2064.5229C80.7514%2065.0662%2080.8658%2065.6453%2080.8658%2066.2601C80.8658%2067.7328%2080.394%2068.891%2079.4503%2069.7346C78.5066%2070.5782%2077.2197%2071%2075.5897%2071H68.8552ZM70.9571%2069.0697H75.6755C76.6049%2069.0697%2077.3484%2068.8195%2077.906%2068.3191C78.4637%2067.8186%2078.7425%2067.1394%2078.7425%2066.2815C78.7425%2065.4236%2078.4637%2064.7445%2077.906%2064.244C77.3484%2063.7293%2076.6049%2063.4719%2075.6755%2063.4719H70.9571V69.0697ZM70.9571%2061.5845H75.5254C76.2975%2061.5845%2076.9195%2061.3629%2077.3913%2060.9197C77.8632%2060.4621%2078.0991%2059.883%2078.0991%2059.1824C78.0991%2058.4532%2077.8632%2057.8956%2077.3913%2057.5095C76.9195%2057.1235%2076.2975%2056.9304%2075.5254%2056.9304H70.9571V61.5845Z'%20fill='%23FDFDFE'/%3e%3cpath%20d='M133.44%2049V34.1H139.72C140.707%2034.1%20141.547%2034.2733%20142.24%2034.62C142.947%2034.9533%20143.487%2035.4333%20143.86%2036.06C144.247%2036.6733%20144.44%2037.42%20144.44%2038.3C144.44%2038.98%20144.253%2039.62%20143.88%2040.22C143.52%2040.8067%20142.94%2041.2933%20142.14%2041.68V40.42C142.873%2040.7%20143.453%2041.0467%20143.88%2041.46C144.307%2041.8733%20144.607%2042.3333%20144.78%2042.84C144.953%2043.3467%20145.04%2043.88%20145.04%2044.44C145.04%2045.8667%20144.567%2046.9867%20143.62%2047.8C142.687%2048.6%20141.387%2049%20139.72%2049H133.44ZM136.16%2046.6H140C140.707%2046.6%20141.267%2046.4067%20141.68%2046.02C142.107%2045.62%20142.32%2045.0933%20142.32%2044.44C142.32%2043.7867%20142.107%2043.26%20141.68%2042.86C141.267%2042.46%20140.707%2042.26%20140%2042.26H136.16V46.6ZM136.16%2039.88H139.86C140.42%2039.88%20140.867%2039.72%20141.2%2039.4C141.533%2039.0667%20141.7%2038.64%20141.7%2038.12C141.7%2037.6%20141.533%2037.1867%20141.2%2036.88C140.867%2036.5733%20140.42%2036.42%20139.86%2036.42H136.16V39.88ZM152.208%2049.24C151.088%2049.24%20150.108%2048.9867%20149.268%2048.48C148.428%2047.9733%20147.775%2047.2867%20147.308%2046.42C146.841%2045.5533%20146.608%2044.5933%20146.608%2043.54C146.608%2042.4467%20146.841%2041.48%20147.308%2040.64C147.788%2039.7867%20148.435%2039.1133%20149.248%2038.62C150.075%2038.1267%20150.995%2037.88%20152.008%2037.88C152.861%2037.88%20153.608%2038.02%20154.248%2038.3C154.901%2038.58%20155.455%2038.9667%20155.908%2039.46C156.361%2039.9533%20156.708%2040.52%20156.948%2041.16C157.188%2041.7867%20157.308%2042.4667%20157.308%2043.2C157.308%2043.3867%20157.295%2043.58%20157.268%2043.78C157.255%2043.98%20157.221%2044.1533%20157.168%2044.3H148.768V42.3H155.688L154.448%2043.24C154.568%2042.6267%20154.535%2042.08%20154.348%2041.6C154.175%2041.12%20153.881%2040.74%20153.468%2040.46C153.068%2040.18%20152.581%2040.04%20152.008%2040.04C151.461%2040.04%20150.975%2040.18%20150.548%2040.46C150.121%2040.7267%20149.795%2041.1267%20149.568%2041.66C149.355%2042.18%20149.275%2042.8133%20149.328%2043.56C149.275%2044.2267%20149.361%2044.82%20149.588%2045.34C149.828%2045.8467%20150.175%2046.24%20150.628%2046.52C151.095%2046.8%20151.628%2046.94%20152.228%2046.94C152.828%2046.94%20153.335%2046.8133%20153.748%2046.56C154.175%2046.3067%20154.508%2045.9667%20154.748%2045.54L156.868%2046.58C156.655%2047.1%20156.321%2047.56%20155.868%2047.96C155.415%2048.36%20154.875%2048.6733%20154.248%2048.9C153.635%2049.1267%20152.955%2049.24%20152.208%2049.24ZM159.294%2049V38.12H161.754V40.26L161.554%2039.88C161.808%2039.2267%20162.221%2038.7333%20162.794%2038.4C163.381%2038.0533%20164.061%2037.88%20164.834%2037.88C165.634%2037.88%20166.341%2038.0533%20166.954%2038.4C167.581%2038.7467%20168.068%2039.2333%20168.414%2039.86C168.761%2040.4733%20168.934%2041.1867%20168.934%2042V49H166.314V42.62C166.314%2042.14%20166.221%2041.7267%20166.034%2041.38C165.848%2041.0333%20165.588%2040.7667%20165.254%2040.58C164.934%2040.38%20164.554%2040.28%20164.114%2040.28C163.688%2040.28%20163.308%2040.38%20162.974%2040.58C162.641%2040.7667%20162.381%2041.0333%20162.194%2041.38C162.008%2041.7267%20161.914%2042.14%20161.914%2042.62V49H159.294ZM169.65%2053.42C169.476%2053.42%20169.296%2053.4133%20169.11%2053.4C168.923%2053.3867%20168.77%2053.3667%20168.65%2053.34V51.06C168.89%2051.1%20169.13%2051.12%20169.37%2051.12C169.93%2051.12%20170.363%2050.9867%20170.67%2050.72C170.99%2050.4667%20171.15%2050.0733%20171.15%2049.54V38.12H173.77V49.54C173.77%2050.3667%20173.603%2051.0667%20173.27%2051.64C172.936%2052.2267%20172.456%2052.6667%20171.83%2052.96C171.216%2053.2667%20170.49%2053.42%20169.65%2053.42ZM171.15%2036.9V34.1H173.77V36.9H171.15ZM179.489%2049.24C178.729%2049.24%20178.069%2049.1133%20177.509%2048.86C176.949%2048.6067%20176.515%2048.2467%20176.209%2047.78C175.902%2047.3%20175.749%2046.7467%20175.749%2046.12C175.749%2045.52%20175.882%2044.9867%20176.149%2044.52C176.415%2044.04%20176.829%2043.64%20177.389%2043.32C177.949%2043%20178.655%2042.7733%20179.509%2042.64L183.069%2042.06V44.06L180.009%2044.58C179.489%2044.6733%20179.102%2044.84%20178.849%2045.08C178.595%2045.32%20178.469%2045.6333%20178.469%2046.02C178.469%2046.3933%20178.609%2046.6933%20178.889%2046.92C179.182%2047.1333%20179.542%2047.24%20179.969%2047.24C180.515%2047.24%20180.995%2047.1267%20181.409%2046.9C181.835%2046.66%20182.162%2046.3333%20182.389%2045.92C182.629%2045.5067%20182.749%2045.0533%20182.749%2044.56V41.76C182.749%2041.2933%20182.562%2040.9067%20182.189%2040.6C181.829%2040.28%20181.349%2040.12%20180.749%2040.12C180.189%2040.12%20179.689%2040.2733%20179.249%2040.58C178.822%2040.8733%20178.509%2041.2667%20178.309%2041.76L176.169%2040.72C176.382%2040.1467%20176.715%2039.6533%20177.169%2039.24C177.635%2038.8133%20178.182%2038.48%20178.809%2038.24C179.435%2038%20180.115%2037.88%20180.849%2037.88C181.742%2037.88%20182.529%2038.0467%20183.209%2038.38C183.889%2038.7%20184.415%2039.1533%20184.789%2039.74C185.175%2040.3133%20185.369%2040.9867%20185.369%2041.76V49H182.889V47.14L183.449%2047.1C183.169%2047.5667%20182.835%2047.96%20182.449%2048.28C182.062%2048.5867%20181.622%2048.8267%20181.129%2049C180.635%2049.16%20180.089%2049.24%20179.489%2049.24ZM187.79%2049V38.12H190.25V40.64L189.97%2040.22C190.17%2039.4333%20190.57%2038.8467%20191.17%2038.46C191.77%2038.0733%20192.477%2037.88%20193.29%2037.88C194.184%2037.88%20194.97%2038.1133%20195.65%2038.58C196.33%2039.0467%20196.77%2039.66%20196.97%2040.42L196.23%2040.48C196.564%2039.6133%20197.064%2038.9667%20197.73%2038.54C198.397%2038.1%20199.164%2037.88%20200.03%2037.88C200.804%2037.88%20201.49%2038.0533%20202.09%2038.4C202.704%2038.7467%20203.184%2039.2333%20203.53%2039.86C203.877%2040.4733%20204.05%2041.1867%20204.05%2042V49H201.43V42.62C201.43%2042.14%20201.344%2041.7267%20201.17%2041.38C200.997%2041.0333%20200.757%2040.7667%20200.45%2040.58C200.144%2040.38%20199.77%2040.28%20199.33%2040.28C198.917%2040.28%20198.55%2040.38%20198.23%2040.58C197.91%2040.7667%20197.664%2041.0333%20197.49%2041.38C197.317%2041.7267%20197.23%2042.14%20197.23%2042.62V49H194.61V42.62C194.61%2042.14%20194.524%2041.7267%20194.35%2041.38C194.177%2041.0333%20193.93%2040.7667%20193.61%2040.58C193.304%2040.38%20192.937%2040.28%20192.51%2040.28C192.097%2040.28%20191.73%2040.38%20191.41%2040.58C191.09%2040.7667%20190.844%2041.0333%20190.67%2041.38C190.497%2041.7267%20190.41%2042.14%20190.41%2042.62V49H187.79ZM206.267%2049V38.12H208.887V49H206.267ZM206.267%2036.9V34.1H208.887V36.9H206.267ZM211.306%2049V38.12H213.766V40.26L213.566%2039.88C213.819%2039.2267%20214.233%2038.7333%20214.806%2038.4C215.393%2038.0533%20216.073%2037.88%20216.846%2037.88C217.646%2037.88%20218.353%2038.0533%20218.966%2038.4C219.593%2038.7467%20220.079%2039.2333%20220.426%2039.86C220.773%2040.4733%20220.946%2041.1867%20220.946%2042V49H218.326V42.62C218.326%2042.14%20218.233%2041.7267%20218.046%2041.38C217.859%2041.0333%20217.599%2040.7667%20217.266%2040.58C216.946%2040.38%20216.566%2040.28%20216.126%2040.28C215.699%2040.28%20215.319%2040.38%20214.986%2040.58C214.653%2040.7667%20214.393%2041.0333%20214.206%2041.38C214.019%2041.7267%20213.926%2042.14%20213.926%2042.62V49H211.306Z'%20fill='%23181918'/%3e%3cpath%20d='M136.872%2072.168C136.228%2072.168%20135.645%2072.0233%20135.122%2071.734C134.609%2071.4353%20134.221%2071.0153%20133.96%2070.474L134.128%2070.32V72H133.078V61.402H134.128V66.176L133.96%2065.882C134.259%2065.406%20134.655%2065.028%20135.15%2064.748C135.654%2064.468%20136.228%2064.328%20136.872%2064.328C137.581%2064.328%20138.211%2064.5007%20138.762%2064.846C139.322%2065.182%20139.761%2065.644%20140.078%2066.232C140.405%2066.82%20140.568%2067.492%20140.568%2068.248C140.568%2068.9947%20140.405%2069.6667%20140.078%2070.264C139.761%2070.852%20139.322%2071.3187%20138.762%2071.664C138.211%2072%20137.581%2072.168%20136.872%2072.168ZM136.816%2071.118C137.32%2071.118%20137.768%2070.992%20138.16%2070.74C138.561%2070.488%20138.874%2070.1473%20139.098%2069.718C139.331%2069.2793%20139.448%2068.7893%20139.448%2068.248C139.448%2067.6973%20139.331%2067.2073%20139.098%2066.778C138.874%2066.3487%20138.561%2066.008%20138.16%2065.756C137.768%2065.504%20137.32%2065.378%20136.816%2065.378C136.312%2065.378%20135.855%2065.504%20135.444%2065.756C135.043%2066.008%20134.721%2066.3533%20134.478%2066.792C134.245%2067.2213%20134.128%2067.7067%20134.128%2068.248C134.128%2068.7893%20134.245%2069.2793%20134.478%2069.718C134.721%2070.1473%20135.043%2070.488%20135.444%2070.74C135.855%2070.992%20136.312%2071.118%20136.816%2071.118ZM145.832%2072.168C145.132%2072.168%20144.497%2072%20143.928%2071.664C143.368%2071.3187%20142.925%2070.8473%20142.598%2070.25C142.271%2069.6527%20142.108%2068.976%20142.108%2068.22C142.108%2067.464%20142.267%2066.7967%20142.584%2066.218C142.901%2065.63%20143.331%2065.168%20143.872%2064.832C144.423%2064.496%20145.039%2064.328%20145.72%2064.328C146.261%2064.328%20146.742%2064.4307%20147.162%2064.636C147.591%2064.832%20147.955%2065.1027%20148.254%2065.448C148.553%2065.784%20148.781%2066.1667%20148.94%2066.596C149.099%2067.016%20149.178%2067.45%20149.178%2067.898C149.178%2067.9913%20149.173%2068.0987%20149.164%2068.22C149.155%2068.332%20149.141%2068.4487%20149.122%2068.57H142.78V67.59H148.52L148.016%2068.01C148.1%2067.4967%20148.039%2067.0393%20147.834%2066.638C147.638%2066.2273%20147.353%2065.9053%20146.98%2065.672C146.607%2065.4293%20146.187%2065.308%20145.72%2065.308C145.253%2065.308%20144.819%2065.4293%20144.418%2065.672C144.026%2065.9147%20143.718%2066.2553%20143.494%2066.694C143.27%2067.1233%20143.181%2067.6367%20143.228%2068.234C143.181%2068.8313%20143.275%2069.354%20143.508%2069.802C143.751%2070.2407%20144.077%2070.5813%20144.488%2070.824C144.908%2071.0667%20145.356%2071.188%20145.832%2071.188C146.383%2071.188%20146.845%2071.0573%20147.218%2070.796C147.591%2070.5347%20147.895%2070.208%20148.128%2069.816L149.024%2070.292C148.875%2070.628%20148.646%2070.9407%20148.338%2071.23C148.03%2071.51%20147.661%2071.7387%20147.232%2071.916C146.812%2072.084%20146.345%2072.168%20145.832%2072.168ZM151.029%2072V64.496H152.079V65.952L151.841%2065.896C152.028%2065.4107%20152.331%2065.028%20152.751%2064.748C153.181%2064.468%20153.675%2064.328%20154.235%2064.328C154.767%2064.328%20155.243%2064.4493%20155.663%2064.692C156.093%2064.9347%20156.429%2065.2707%20156.671%2065.7C156.923%2066.12%20157.049%2066.596%20157.049%2067.128V72H155.999V67.534C155.999%2067.0767%20155.915%2066.6893%20155.747%2066.372C155.589%2066.0547%20155.36%2065.812%20155.061%2065.644C154.772%2065.4667%20154.436%2065.378%20154.053%2065.378C153.671%2065.378%20153.33%2065.4667%20153.031%2065.644C152.733%2065.812%20152.499%2066.0593%20152.331%2066.386C152.163%2066.7033%20152.079%2067.086%20152.079%2067.534V72H151.029ZM164.725%2074.898C163.903%2074.898%20163.138%2074.7487%20162.429%2074.45C161.729%2074.1607%20161.113%2073.75%20160.581%2073.218C160.049%2072.686%20159.633%2072.07%20159.335%2071.37C159.045%2070.6607%20158.901%2069.9%20158.901%2069.088C158.901%2068.276%20159.05%2067.52%20159.349%2066.82C159.647%2066.12%20160.058%2065.5087%20160.581%2064.986C161.113%2064.4633%20161.733%2064.0573%20162.443%2063.768C163.152%2063.4693%20163.913%2063.32%20164.725%2063.32C165.565%2063.32%20166.339%2063.4787%20167.049%2063.796C167.758%2064.104%20168.369%2064.5287%20168.883%2065.07C169.405%2065.602%20169.807%2066.2087%20170.087%2066.89C170.376%2067.5713%20170.521%2068.2853%20170.521%2069.032C170.521%2069.62%20170.427%2070.138%20170.241%2070.586C170.063%2071.0247%20169.802%2071.37%20169.457%2071.622C169.111%2071.874%20168.696%2072%20168.211%2072C167.921%2072%20167.646%2071.9487%20167.385%2071.846C167.123%2071.734%20166.899%2071.58%20166.713%2071.384C166.535%2071.1787%20166.414%2070.936%20166.349%2070.656L166.573%2070.838C166.423%2071.09%20166.237%2071.3047%20166.013%2071.482C165.798%2071.65%20165.555%2071.7807%20165.285%2071.874C165.014%2071.958%20164.72%2072%20164.403%2072C163.861%2072%20163.371%2071.8693%20162.933%2071.608C162.503%2071.3467%20162.163%2070.992%20161.911%2070.544C161.659%2070.096%20161.533%2069.5873%20161.533%2069.018C161.533%2068.4487%20161.659%2067.94%20161.911%2067.492C162.163%2067.044%20162.503%2066.6893%20162.933%2066.428C163.371%2066.1573%20163.861%2066.022%20164.403%2066.022C164.86%2066.022%20165.275%2066.1153%20165.649%2066.302C166.031%2066.4887%20166.335%2066.75%20166.559%2067.086L166.461%2067.254V66.162H167.371V70.026C167.371%2070.3713%20167.445%2070.6233%20167.595%2070.782C167.753%2070.9407%20167.963%2071.02%20168.225%2071.02C168.617%2071.02%20168.92%2070.8567%20169.135%2070.53C169.359%2070.2033%20169.471%2069.7133%20169.471%2069.06C169.471%2068.388%20169.354%2067.7627%20169.121%2067.184C168.887%2066.6053%20168.561%2066.1013%20168.141%2065.672C167.721%2065.2427%20167.221%2064.9067%20166.643%2064.664C166.064%2064.4213%20165.425%2064.3%20164.725%2064.3C164.043%2064.3%20163.409%2064.4213%20162.821%2064.664C162.242%2064.8973%20161.738%2065.2287%20161.309%2065.658C160.879%2066.0873%20160.543%2066.5913%20160.301%2067.17C160.067%2067.7487%20159.951%2068.3833%20159.951%2069.074C159.951%2069.746%20160.063%2070.376%20160.287%2070.964C160.52%2071.5427%20160.847%2072.0513%20161.267%2072.49C161.696%2072.938%20162.205%2073.288%20162.793%2073.54C163.381%2073.792%20164.034%2073.918%20164.753%2073.918C165.173%2073.918%20165.579%2073.8713%20165.971%2073.778C166.363%2073.694%20166.717%2073.5633%20167.035%2073.386L167.483%2074.226C166.689%2074.674%20165.77%2074.898%20164.725%2074.898ZM164.445%2071.02C164.809%2071.02%20165.131%2070.9313%20165.411%2070.754C165.691%2070.5767%20165.91%2070.3387%20166.069%2070.04C166.237%2069.732%20166.321%2069.3867%20166.321%2069.004C166.321%2068.4253%20166.143%2067.954%20165.789%2067.59C165.434%2067.2167%20164.986%2067.03%20164.445%2067.03C164.09%2067.03%20163.768%2067.1187%20163.479%2067.296C163.199%2067.464%20162.979%2067.6973%20162.821%2067.996C162.662%2068.2947%20162.583%2068.6353%20162.583%2069.018C162.583%2069.3913%20162.662%2069.732%20162.821%2070.04C162.989%2070.3387%20163.213%2070.5767%20163.493%2070.754C163.773%2070.9313%20164.09%2071.02%20164.445%2071.02ZM174.661%2072.168C173.942%2072.168%20173.312%2071.986%20172.771%2071.622C172.229%2071.258%20171.837%2070.7633%20171.595%2070.138L172.477%2069.718C172.691%2070.1753%20172.99%2070.5393%20173.373%2070.81C173.765%2071.0807%20174.194%2071.216%20174.661%2071.216C175.109%2071.216%20175.487%2071.1087%20175.795%2070.894C176.103%2070.67%20176.257%2070.3807%20176.257%2070.026C176.257%2069.7647%20176.182%2069.5593%20176.033%2069.41C175.883%2069.2513%20175.711%2069.13%20175.515%2069.046C175.319%2068.962%20175.146%2068.9013%20174.997%2068.864L173.919%2068.556C173.228%2068.36%20172.729%2068.0847%20172.421%2067.73C172.113%2067.3753%20171.959%2066.9647%20171.959%2066.498C171.959%2066.0593%20172.071%2065.6767%20172.295%2065.35C172.519%2065.0233%20172.822%2064.7713%20173.205%2064.594C173.587%2064.4167%20174.012%2064.328%20174.479%2064.328C175.113%2064.328%20175.687%2064.496%20176.201%2064.832C176.723%2065.1587%20177.092%2065.616%20177.307%2066.204L176.411%2066.624C176.224%2066.204%20175.953%2065.8773%20175.599%2065.644C175.253%2065.4013%20174.866%2065.28%20174.437%2065.28C174.017%2065.28%20173.681%2065.3873%20173.429%2065.602C173.177%2065.8167%20173.051%2066.0873%20173.051%2066.414C173.051%2066.666%20173.116%2066.8667%20173.247%2067.016C173.377%2067.1653%20173.527%2067.2773%20173.695%2067.352C173.872%2067.4267%20174.026%2067.4827%20174.157%2067.52L175.403%2067.884C176.009%2068.0613%20176.481%2068.3367%20176.817%2068.71C177.162%2069.0833%20177.335%2069.522%20177.335%2070.026C177.335%2070.4367%20177.218%2070.8053%20176.985%2071.132C176.761%2071.4587%20176.448%2071.7153%20176.047%2071.902C175.645%2072.0793%20175.183%2072.168%20174.661%2072.168ZM179.18%2072V61.402H180.23V65.952L179.992%2065.896C180.178%2065.4107%20180.482%2065.028%20180.902%2064.748C181.331%2064.468%20181.826%2064.328%20182.386%2064.328C182.918%2064.328%20183.394%2064.4493%20183.814%2064.692C184.243%2064.9347%20184.579%2065.2707%20184.822%2065.7C185.074%2066.12%20185.2%2066.596%20185.2%2067.128V72H184.15V67.534C184.15%2067.0767%20184.066%2066.6893%20183.898%2066.372C183.73%2066.0547%20183.496%2065.812%20183.198%2065.644C182.908%2065.4667%20182.577%2065.378%20182.204%2065.378C181.83%2065.378%20181.494%2065.4667%20181.196%2065.644C180.897%2065.812%20180.659%2066.0593%20180.482%2066.386C180.314%2066.7033%20180.23%2067.086%20180.23%2067.534V72H179.18ZM190.621%2072.168C189.921%2072.168%20189.286%2072%20188.717%2071.664C188.157%2071.3187%20187.714%2070.8473%20187.387%2070.25C187.06%2069.6527%20186.897%2068.976%20186.897%2068.22C186.897%2067.464%20187.056%2066.7967%20187.373%2066.218C187.69%2065.63%20188.12%2065.168%20188.661%2064.832C189.212%2064.496%20189.828%2064.328%20190.509%2064.328C191.05%2064.328%20191.531%2064.4307%20191.951%2064.636C192.38%2064.832%20192.744%2065.1027%20193.043%2065.448C193.342%2065.784%20193.57%2066.1667%20193.729%2066.596C193.888%2067.016%20193.967%2067.45%20193.967%2067.898C193.967%2067.9913%20193.962%2068.0987%20193.953%2068.22C193.944%2068.332%20193.93%2068.4487%20193.911%2068.57H187.569V67.59H193.309L192.805%2068.01C192.889%2067.4967%20192.828%2067.0393%20192.623%2066.638C192.427%2066.2273%20192.142%2065.9053%20191.769%2065.672C191.396%2065.4293%20190.976%2065.308%20190.509%2065.308C190.042%2065.308%20189.608%2065.4293%20189.207%2065.672C188.815%2065.9147%20188.507%2066.2553%20188.283%2066.694C188.059%2067.1233%20187.97%2067.6367%20188.017%2068.234C187.97%2068.8313%20188.064%2069.354%20188.297%2069.802C188.54%2070.2407%20188.866%2070.5813%20189.277%2070.824C189.697%2071.0667%20190.145%2071.188%20190.621%2071.188C191.172%2071.188%20191.634%2071.0573%20192.007%2070.796C192.38%2070.5347%20192.684%2070.208%20192.917%2069.816L193.813%2070.292C193.664%2070.628%20193.435%2070.9407%20193.127%2071.23C192.819%2071.51%20192.45%2071.7387%20192.021%2071.916C191.601%2072.084%20191.134%2072.168%20190.621%2072.168ZM195.818%2072V61.402H196.868V68.822L196.42%2068.752L200.634%2064.496H201.992L199.052%2067.506L202.258%2072H200.998L197.988%2067.842L198.66%2067.898L196.518%2070.11L196.868%2069.242V72H195.818ZM206.767%2072.168C206.067%2072.168%20205.433%2072%20204.863%2071.664C204.303%2071.3187%20203.86%2070.8473%20203.533%2070.25C203.207%2069.6527%20203.043%2068.976%20203.043%2068.22C203.043%2067.464%20203.202%2066.7967%20203.519%2066.218C203.837%2065.63%20204.266%2065.168%20204.807%2064.832C205.358%2064.496%20205.974%2064.328%20206.655%2064.328C207.197%2064.328%20207.677%2064.4307%20208.097%2064.636C208.527%2064.832%20208.891%2065.1027%20209.189%2065.448C209.488%2065.784%20209.717%2066.1667%20209.875%2066.596C210.034%2067.016%20210.113%2067.45%20210.113%2067.898C210.113%2067.9913%20210.109%2068.0987%20210.099%2068.22C210.09%2068.332%20210.076%2068.4487%20210.057%2068.57H203.715V67.59H209.455L208.951%2068.01C209.035%2067.4967%20208.975%2067.0393%20208.769%2066.638C208.573%2066.2273%20208.289%2065.9053%20207.915%2065.672C207.542%2065.4293%20207.122%2065.308%20206.655%2065.308C206.189%2065.308%20205.755%2065.4293%20205.353%2065.672C204.961%2065.9147%20204.653%2066.2553%20204.429%2066.694C204.205%2067.1233%20204.117%2067.6367%20204.163%2068.234C204.117%2068.8313%20204.21%2069.354%20204.443%2069.802C204.686%2070.2407%20205.013%2070.5813%20205.423%2070.824C205.843%2071.0667%20206.291%2071.188%20206.767%2071.188C207.318%2071.188%20207.78%2071.0573%20208.153%2070.796C208.527%2070.5347%20208.83%2070.208%20209.063%2069.816L209.959%2070.292C209.81%2070.628%20209.581%2070.9407%20209.273%2071.23C208.965%2071.51%20208.597%2071.7387%20208.167%2071.916C207.747%2072.084%20207.281%2072.168%20206.767%2072.168ZM211.965%2072V61.402H213.015V72H211.965ZM215.528%2072V70.46H216.648V72H215.528ZM221.34%2072.168C220.864%2072.168%20220.439%2072.0793%20220.066%2071.902C219.692%2071.7153%20219.398%2071.4633%20219.184%2071.146C218.969%2070.8287%20218.862%2070.4647%20218.862%2070.054C218.862%2069.662%20218.946%2069.3073%20219.114%2068.99C219.282%2068.6633%20219.543%2068.388%20219.898%2068.164C220.252%2067.94%20220.705%2067.7813%20221.256%2067.688L224.196%2067.198V68.15L221.508%2068.598C220.966%2068.6913%20220.574%2068.864%20220.332%2069.116C220.098%2069.368%20219.982%2069.6667%20219.982%2070.012C219.982%2070.348%20220.112%2070.6327%20220.374%2070.866C220.644%2071.0993%20220.99%2071.216%20221.41%2071.216C221.923%2071.216%20222.371%2071.1087%20222.754%2070.894C223.136%2070.67%20223.435%2070.3713%20223.65%2069.998C223.864%2069.6247%20223.972%2069.2093%20223.972%2068.752V66.848C223.972%2066.4%20223.808%2066.036%20223.482%2065.756C223.155%2065.476%20222.73%2065.336%20222.208%2065.336C221.75%2065.336%20221.349%2065.4527%20221.004%2065.686C220.658%2065.91%20220.402%2066.204%20220.234%2066.568L219.282%2066.05C219.422%2065.7327%20219.641%2065.4433%20219.94%2065.182C220.248%2064.9207%20220.598%2064.7153%20220.99%2064.566C221.382%2064.4073%20221.788%2064.328%20222.208%2064.328C222.758%2064.328%20223.244%2064.4353%20223.664%2064.65C224.093%2064.8647%20224.424%2065.1633%20224.658%2065.546C224.9%2065.9193%20225.022%2066.3533%20225.022%2066.848V72H223.972V70.502L224.126%2070.656C223.995%2070.936%20223.79%2071.1927%20223.51%2071.426C223.239%2071.65%20222.917%2071.832%20222.544%2071.972C222.18%2072.1027%20221.778%2072.168%20221.34%2072.168ZM227.952%2072V65.546H226.454V64.496H227.952V63.824C227.952%2063.3013%20228.068%2062.8627%20228.302%2062.508C228.535%2062.144%20228.843%2061.8687%20229.226%2061.682C229.608%2061.4953%20230.019%2061.402%20230.458%2061.402C230.551%2061.402%20230.658%2061.4113%20230.78%2061.43C230.901%2061.4393%20230.999%2061.4533%20231.074%2061.472V62.424C231.008%2062.4053%20230.92%2062.396%20230.808%2062.396C230.696%2062.3867%20230.616%2062.382%20230.57%2062.382C230.122%2062.382%20229.748%2062.4893%20229.45%2062.704C229.151%2062.9187%20229.002%2063.292%20229.002%2063.824V64.496H230.836V65.546H229.002V72H227.952ZM232.541%2072V64.496H233.591V65.728L233.451%2065.546C233.628%2065.1913%20233.894%2064.9113%20234.249%2064.706C234.613%2064.5007%20235.052%2064.398%20235.565%2064.398H236.041V65.448H235.383C234.842%2065.448%20234.408%2065.616%20234.081%2065.952C233.754%2066.288%20233.591%2066.764%20233.591%2067.38V72H232.541ZM237.271%2072V64.496H238.321V72H237.271ZM237.271%2063.11V61.57H238.321V63.11H237.271ZM243.901%2072.168C243.163%2072.168%20242.515%2071.9953%20241.955%2071.65C241.395%2071.3047%20240.956%2070.838%20240.639%2070.25C240.321%2069.6527%20240.163%2068.9807%20240.163%2068.234C240.163%2067.4873%20240.321%2066.82%20240.639%2066.232C240.956%2065.644%20241.395%2065.182%20241.955%2064.846C242.515%2064.5007%20243.163%2064.328%20243.901%2064.328C244.367%2064.328%20244.806%2064.412%20245.217%2064.58C245.627%2064.748%20245.991%2064.9767%20246.309%2065.266C246.626%2065.546%20246.864%2065.8727%20247.023%2066.246L246.071%2066.736C245.884%2066.3347%20245.599%2066.008%20245.217%2065.756C244.834%2065.504%20244.395%2065.378%20243.901%2065.378C243.406%2065.378%20242.958%2065.504%20242.557%2065.756C242.165%2065.9987%20241.852%2066.3393%20241.619%2066.778C241.395%2067.2073%20241.283%2067.6973%20241.283%2068.248C241.283%2068.7893%20241.395%2069.2793%20241.619%2069.718C241.852%2070.1473%20242.165%2070.488%20242.557%2070.74C242.958%2070.992%20243.406%2071.118%20243.901%2071.118C244.395%2071.118%20244.829%2070.992%20245.203%2070.74C245.585%2070.488%20245.875%2070.152%20246.071%2069.732L247.023%2070.25C246.864%2070.614%20246.626%2070.9407%20246.309%2071.23C245.991%2071.5193%20245.627%2071.748%20245.217%2071.916C244.806%2072.084%20244.367%2072.168%20243.901%2072.168ZM250.898%2072.168C250.422%2072.168%20249.998%2072.0793%20249.624%2071.902C249.251%2071.7153%20248.957%2071.4633%20248.742%2071.146C248.528%2070.8287%20248.42%2070.4647%20248.42%2070.054C248.42%2069.662%20248.504%2069.3073%20248.672%2068.99C248.84%2068.6633%20249.102%2068.388%20249.456%2068.164C249.811%2067.94%20250.264%2067.7813%20250.814%2067.688L253.754%2067.198V68.15L251.066%2068.598C250.525%2068.6913%20250.133%2068.864%20249.89%2069.116C249.657%2069.368%20249.54%2069.6667%20249.54%2070.012C249.54%2070.348%20249.671%2070.6327%20249.932%2070.866C250.203%2071.0993%20250.548%2071.216%20250.968%2071.216C251.482%2071.216%20251.93%2071.1087%20252.312%2070.894C252.695%2070.67%20252.994%2070.3713%20253.208%2069.998C253.423%2069.6247%20253.53%2069.2093%20253.53%2068.752V66.848C253.53%2066.4%20253.367%2066.036%20253.04%2065.756C252.714%2065.476%20252.289%2065.336%20251.766%2065.336C251.309%2065.336%20250.908%2065.4527%20250.562%2065.686C250.217%2065.91%20249.96%2066.204%20249.792%2066.568L248.84%2066.05C248.98%2065.7327%20249.2%2065.4433%20249.498%2065.182C249.806%2064.9207%20250.156%2064.7153%20250.548%2064.566C250.94%2064.4073%20251.346%2064.328%20251.766%2064.328C252.317%2064.328%20252.802%2064.4353%20253.222%2064.65C253.652%2064.8647%20253.983%2065.1633%20254.216%2065.546C254.459%2065.9193%20254.58%2066.3533%20254.58%2066.848V72H253.53V70.502L253.684%2070.656C253.554%2070.936%20253.348%2071.1927%20253.068%2071.426C252.798%2071.65%20252.476%2071.832%20252.102%2071.972C251.738%2072.1027%20251.337%2072.168%20250.898%2072.168Z'%20fill='%23181918'/%3e%3cpath%20d='M137.992%2093.168C137.255%2093.168%20136.578%2093.0373%20135.962%2092.776C135.346%2092.5053%20134.809%2092.132%20134.352%2091.656C133.904%2091.1707%20133.554%2090.6013%20133.302%2089.948C133.05%2089.2947%20132.924%2088.576%20132.924%2087.792C132.924%2087.008%20133.05%2086.2893%20133.302%2085.636C133.554%2084.9827%20133.904%2084.4133%20134.352%2083.928C134.809%2083.4427%20135.346%2083.0693%20135.962%2082.808C136.578%2082.5373%20137.255%2082.402%20137.992%2082.402C138.701%2082.402%20139.336%2082.528%20139.896%2082.78C140.465%2083.032%20140.941%2083.3587%20141.324%2083.76C141.716%2084.152%20141.996%2084.5673%20142.164%2085.006L141.114%2085.468C140.853%2084.8613%20140.451%2084.376%20139.91%2084.012C139.378%2083.6387%20138.739%2083.452%20137.992%2083.452C137.227%2083.452%20136.545%2083.634%20135.948%2083.998C135.351%2084.362%20134.884%2084.8707%20134.548%2085.524C134.212%2086.168%20134.044%2086.924%20134.044%2087.792C134.044%2088.6507%20134.212%2089.4067%20134.548%2090.06C134.884%2090.7133%20135.351%2091.222%20135.948%2091.586C136.545%2091.9407%20137.227%2092.118%20137.992%2092.118C138.739%2092.118%20139.378%2091.936%20139.91%2091.572C140.451%2091.208%20140.853%2090.7227%20141.114%2090.116L142.164%2090.578C141.996%2091.0073%20141.716%2091.4227%20141.324%2091.824C140.941%2092.216%20140.465%2092.538%20139.896%2092.79C139.336%2093.042%20138.701%2093.168%20137.992%2093.168ZM147.393%2093.168C146.683%2093.168%20146.039%2093%20145.461%2092.664C144.882%2092.3187%20144.42%2091.852%20144.075%2091.264C143.739%2090.6667%20143.571%2089.99%20143.571%2089.234C143.571%2088.4873%20143.739%2087.82%20144.075%2087.232C144.411%2086.644%20144.863%2086.182%20145.433%2085.846C146.011%2085.5007%20146.665%2085.328%20147.393%2085.328C148.121%2085.328%20148.769%2085.496%20149.339%2085.832C149.917%2086.168%20150.37%2086.63%20150.697%2087.218C151.033%2087.806%20151.201%2088.478%20151.201%2089.234C151.201%2089.9993%20151.028%2090.6807%20150.683%2091.278C150.337%2091.866%20149.875%2092.328%20149.297%2092.664C148.727%2093%20148.093%2093.168%20147.393%2093.168ZM147.393%2092.118C147.897%2092.118%20148.349%2091.992%20148.751%2091.74C149.161%2091.488%20149.483%2091.1427%20149.717%2090.704C149.959%2090.2653%20150.081%2089.7753%20150.081%2089.234C150.081%2088.6927%20149.959%2088.2073%20149.717%2087.778C149.483%2087.3487%20149.161%2087.008%20148.751%2086.756C148.349%2086.504%20147.897%2086.378%20147.393%2086.378C146.889%2086.378%20146.431%2086.504%20146.021%2086.756C145.619%2087.008%20145.297%2087.3487%20145.055%2087.778C144.812%2088.2073%20144.691%2088.6927%20144.691%2089.234C144.691%2089.7753%20144.812%2090.2653%20145.055%2090.704C145.297%2091.1427%20145.619%2091.488%20146.021%2091.74C146.431%2091.992%20146.889%2092.118%20147.393%2092.118ZM153.417%2093V91.46H154.537V93H153.417ZM160.207%2093V86.546H158.709V85.496H160.207V84.824C160.207%2084.3013%20160.324%2083.8627%20160.557%2083.508C160.791%2083.144%20161.099%2082.8687%20161.481%2082.682C161.864%2082.4953%20162.275%2082.402%20162.713%2082.402C162.807%2082.402%20162.914%2082.4113%20163.035%2082.43C163.157%2082.4393%20163.255%2082.4533%20163.329%2082.472V83.424C163.264%2083.4053%20163.175%2083.396%20163.063%2083.396C162.951%2083.3867%20162.872%2083.382%20162.825%2083.382C162.377%2083.382%20162.004%2083.4893%20161.705%2083.704C161.407%2083.9187%20161.257%2084.292%20161.257%2084.824V85.496H163.091V86.546H161.257V93H160.207ZM168.024%2093.168C167.314%2093.168%20166.67%2093%20166.092%2092.664C165.513%2092.3187%20165.051%2091.852%20164.706%2091.264C164.37%2090.6667%20164.202%2089.99%20164.202%2089.234C164.202%2088.4873%20164.37%2087.82%20164.706%2087.232C165.042%2086.644%20165.494%2086.182%20166.064%2085.846C166.642%2085.5007%20167.296%2085.328%20168.024%2085.328C168.752%2085.328%20169.4%2085.496%20169.97%2085.832C170.548%2086.168%20171.001%2086.63%20171.328%2087.218C171.664%2087.806%20171.832%2088.478%20171.832%2089.234C171.832%2089.9993%20171.659%2090.6807%20171.314%2091.278C170.968%2091.866%20170.506%2092.328%20169.928%2092.664C169.358%2093%20168.724%2093.168%20168.024%2093.168ZM168.024%2092.118C168.528%2092.118%20168.98%2091.992%20169.382%2091.74C169.792%2091.488%20170.114%2091.1427%20170.348%2090.704C170.59%2090.2653%20170.712%2089.7753%20170.712%2089.234C170.712%2088.6927%20170.59%2088.2073%20170.348%2087.778C170.114%2087.3487%20169.792%2087.008%20169.382%2086.756C168.98%2086.504%20168.528%2086.378%20168.024%2086.378C167.52%2086.378%20167.062%2086.504%20166.652%2086.756C166.25%2087.008%20165.928%2087.3487%20165.686%2087.778C165.443%2088.2073%20165.322%2088.6927%20165.322%2089.234C165.322%2089.7753%20165.443%2090.2653%20165.686%2090.704C165.928%2091.1427%20166.25%2091.488%20166.652%2091.74C167.062%2091.992%20167.52%2092.118%20168.024%2092.118ZM176.343%2093.168C175.821%2093.168%20175.345%2093.0467%20174.915%2092.804C174.486%2092.552%20174.145%2092.2067%20173.893%2091.768C173.651%2091.32%20173.529%2090.8067%20173.529%2090.228V85.496H174.579V90.102C174.579%2090.5033%20174.659%2090.858%20174.817%2091.166C174.985%2091.4647%20175.214%2091.698%20175.503%2091.866C175.802%2092.034%20176.143%2092.118%20176.525%2092.118C176.908%2092.118%20177.249%2092.034%20177.547%2091.866C177.846%2091.6887%20178.079%2091.4413%20178.247%2091.124C178.415%2090.7973%20178.499%2090.41%20178.499%2089.962V85.496H179.549V93H178.499V91.544L178.737%2091.6C178.56%2092.0853%20178.257%2092.468%20177.827%2092.748C177.398%2093.028%20176.903%2093.168%20176.343%2093.168ZM181.709%2093V85.496H182.759V86.952L182.521%2086.896C182.708%2086.4107%20183.011%2086.028%20183.431%2085.748C183.86%2085.468%20184.355%2085.328%20184.915%2085.328C185.447%2085.328%20185.923%2085.4493%20186.343%2085.692C186.772%2085.9347%20187.108%2086.2707%20187.351%2086.7C187.603%2087.12%20187.729%2087.596%20187.729%2088.128V93H186.679V88.534C186.679%2088.0767%20186.595%2087.6893%20186.427%2087.372C186.268%2087.0547%20186.04%2086.812%20185.741%2086.644C185.452%2086.4667%20185.116%2086.378%20184.733%2086.378C184.35%2086.378%20184.01%2086.4667%20183.711%2086.644C183.412%2086.812%20183.179%2087.0593%20183.011%2087.386C182.843%2087.7033%20182.759%2088.086%20182.759%2088.534V93H181.709ZM193.122%2093.168C192.422%2093.168%20191.792%2093%20191.232%2092.664C190.672%2092.3187%20190.229%2091.852%20189.902%2091.264C189.585%2090.6667%20189.426%2089.9947%20189.426%2089.248C189.426%2088.492%20189.585%2087.82%20189.902%2087.232C190.229%2086.644%20190.668%2086.182%20191.218%2085.846C191.778%2085.5007%20192.413%2085.328%20193.122%2085.328C193.766%2085.328%20194.34%2085.468%20194.844%2085.748C195.348%2086.028%20195.745%2086.406%20196.034%2086.882L195.866%2087.176V82.402H196.916V93H195.866V91.32L196.034%2091.474C195.773%2092.0153%20195.381%2092.4353%20194.858%2092.734C194.345%2093.0233%20193.766%2093.168%20193.122%2093.168ZM193.178%2092.118C193.682%2092.118%20194.135%2091.992%20194.536%2091.74C194.947%2091.488%20195.269%2091.1473%20195.502%2090.718C195.745%2090.2793%20195.866%2089.7893%20195.866%2089.248C195.866%2088.7067%20195.745%2088.2213%20195.502%2087.792C195.269%2087.3533%20194.947%2087.008%20194.536%2086.756C194.135%2086.504%20193.682%2086.378%20193.178%2086.378C192.684%2086.378%20192.236%2086.504%20191.834%2086.756C191.433%2087.008%20191.116%2087.3487%20190.882%2087.778C190.658%2088.2073%20190.546%2088.6973%20190.546%2089.248C190.546%2089.7893%20190.658%2090.2793%20190.882%2090.718C191.116%2091.1473%20191.428%2091.488%20191.82%2091.74C192.222%2091.992%20192.674%2092.118%20193.178%2092.118ZM202.488%2093.168C201.788%2093.168%20201.153%2093%20200.584%2092.664C200.024%2092.3187%20199.581%2091.8473%20199.254%2091.25C198.927%2090.6527%20198.764%2089.976%20198.764%2089.22C198.764%2088.464%20198.923%2087.7967%20199.24%2087.218C199.557%2086.63%20199.987%2086.168%20200.528%2085.832C201.079%2085.496%20201.695%2085.328%20202.376%2085.328C202.917%2085.328%20203.398%2085.4307%20203.818%2085.636C204.247%2085.832%20204.611%2086.1027%20204.91%2086.448C205.209%2086.784%20205.437%2087.1667%20205.596%2087.596C205.755%2088.016%20205.834%2088.45%20205.834%2088.898C205.834%2088.9913%20205.829%2089.0987%20205.82%2089.22C205.811%2089.332%20205.797%2089.4487%20205.778%2089.57H199.436V88.59H205.176L204.672%2089.01C204.756%2088.4967%20204.695%2088.0393%20204.49%2087.638C204.294%2087.2273%20204.009%2086.9053%20203.636%2086.672C203.263%2086.4293%20202.843%2086.308%20202.376%2086.308C201.909%2086.308%20201.475%2086.4293%20201.074%2086.672C200.682%2086.9147%20200.374%2087.2553%20200.15%2087.694C199.926%2088.1233%20199.837%2088.6367%20199.884%2089.234C199.837%2089.8313%20199.931%2090.354%20200.164%2090.802C200.407%2091.2407%20200.733%2091.5813%20201.144%2091.824C201.564%2092.0667%20202.012%2092.188%20202.488%2092.188C203.039%2092.188%20203.501%2092.0573%20203.874%2091.796C204.247%2091.5347%20204.551%2091.208%20204.784%2090.816L205.68%2091.292C205.531%2091.628%20205.302%2091.9407%20204.994%2092.23C204.686%2092.51%20204.317%2092.7387%20203.888%2092.916C203.468%2093.084%20203.001%2093.168%20202.488%2093.168ZM207.685%2093V85.496H208.735V86.728L208.595%2086.546C208.773%2086.1913%20209.039%2085.9113%20209.393%2085.706C209.757%2085.5007%20210.196%2085.398%20210.709%2085.398H211.185V86.448H210.527C209.986%2086.448%20209.552%2086.616%20209.225%2086.952C208.899%2087.288%20208.735%2087.764%20208.735%2088.38V93H207.685Z'%20fill='%23181918'/%3e%3ccircle%20cx='219.5'%20cy='87'%20r='2.5'%20fill='%23181918'/%3e%3cpath%20d='M232.992%2093.168C232.255%2093.168%20231.578%2093.0373%20230.962%2092.776C230.346%2092.5053%20229.809%2092.132%20229.352%2091.656C228.904%2091.1707%20228.554%2090.6013%20228.302%2089.948C228.05%2089.2947%20227.924%2088.576%20227.924%2087.792C227.924%2087.008%20228.05%2086.2893%20228.302%2085.636C228.554%2084.9827%20228.904%2084.4133%20229.352%2083.928C229.809%2083.4427%20230.346%2083.0693%20230.962%2082.808C231.578%2082.5373%20232.255%2082.402%20232.992%2082.402C233.701%2082.402%20234.336%2082.528%20234.896%2082.78C235.465%2083.032%20235.941%2083.3587%20236.324%2083.76C236.716%2084.152%20236.996%2084.5673%20237.164%2085.006L236.156%2085.496C235.895%2084.8613%20235.493%2084.362%20234.952%2083.998C234.411%2083.634%20233.757%2083.452%20232.992%2083.452C232.227%2083.452%20231.545%2083.634%20230.948%2083.998C230.351%2084.362%20229.884%2084.8707%20229.548%2085.524C229.212%2086.168%20229.044%2086.924%20229.044%2087.792C229.044%2088.6507%20229.212%2089.4067%20229.548%2090.06C229.884%2090.7133%20230.351%2091.222%20230.948%2091.586C231.545%2091.9407%20232.227%2092.118%20232.992%2092.118C233.673%2092.118%20234.285%2091.9687%20234.826%2091.67C235.377%2091.3713%20235.811%2090.9653%20236.128%2090.452C236.445%2089.9293%20236.604%2089.332%20236.604%2088.66V88.086L237.108%2088.59H232.992V87.61H237.724V88.478C237.724%2089.1593%20237.603%2089.7893%20237.36%2090.368C237.117%2090.9373%20236.781%2091.432%20236.352%2091.852C235.923%2092.272%20235.419%2092.5987%20234.84%2092.832C234.271%2093.056%20233.655%2093.168%20232.992%2093.168ZM239.576%2093V82.402H240.626V93H239.576ZM246.289%2093.168C245.58%2093.168%20244.936%2093%20244.357%2092.664C243.779%2092.3187%20243.317%2091.852%20242.971%2091.264C242.635%2090.6667%20242.467%2089.99%20242.467%2089.234C242.467%2088.4873%20242.635%2087.82%20242.971%2087.232C243.307%2086.644%20243.76%2086.182%20244.329%2085.846C244.908%2085.5007%20245.561%2085.328%20246.289%2085.328C247.017%2085.328%20247.666%2085.496%20248.235%2085.832C248.814%2086.168%20249.267%2086.63%20249.593%2087.218C249.929%2087.806%20250.097%2088.478%20250.097%2089.234C250.097%2089.9993%20249.925%2090.6807%20249.579%2091.278C249.234%2091.866%20248.772%2092.328%20248.193%2092.664C247.624%2093%20246.989%2093.168%20246.289%2093.168ZM246.289%2092.118C246.793%2092.118%20247.246%2091.992%20247.647%2091.74C248.058%2091.488%20248.38%2091.1427%20248.613%2090.704C248.856%2090.2653%20248.977%2089.7753%20248.977%2089.234C248.977%2088.6927%20248.856%2088.2073%20248.613%2087.778C248.38%2087.3487%20248.058%2087.008%20247.647%2086.756C247.246%2086.504%20246.793%2086.378%20246.289%2086.378C245.785%2086.378%20245.328%2086.504%20244.917%2086.756C244.516%2087.008%20244.194%2087.3487%20243.951%2087.778C243.709%2088.2073%20243.587%2088.6927%20243.587%2089.234C243.587%2089.7753%20243.709%2090.2653%20243.951%2090.704C244.194%2091.1427%20244.516%2091.488%20244.917%2091.74C245.328%2091.992%20245.785%2092.118%20246.289%2092.118ZM255.743%2093.168C255.099%2093.168%20254.516%2093.0233%20253.993%2092.734C253.48%2092.4353%20253.092%2092.0153%20252.831%2091.474L252.999%2091.32V93H251.949V82.402H252.999V87.176L252.831%2086.882C253.13%2086.406%20253.526%2086.028%20254.021%2085.748C254.525%2085.468%20255.099%2085.328%20255.743%2085.328C256.452%2085.328%20257.082%2085.5007%20257.633%2085.846C258.193%2086.182%20258.632%2086.644%20258.949%2087.232C259.276%2087.82%20259.439%2088.492%20259.439%2089.248C259.439%2089.9947%20259.276%2090.6667%20258.949%2091.264C258.632%2091.852%20258.193%2092.3187%20257.633%2092.664C257.082%2093%20256.452%2093.168%20255.743%2093.168ZM255.687%2092.118C256.191%2092.118%20256.639%2091.992%20257.031%2091.74C257.432%2091.488%20257.745%2091.1473%20257.969%2090.718C258.202%2090.2793%20258.319%2089.7893%20258.319%2089.248C258.319%2088.6973%20258.202%2088.2073%20257.969%2087.778C257.745%2087.3487%20257.432%2087.008%20257.031%2086.756C256.639%2086.504%20256.191%2086.378%20255.687%2086.378C255.183%2086.378%20254.726%2086.504%20254.315%2086.756C253.914%2087.008%20253.592%2087.3533%20253.349%2087.792C253.116%2088.2213%20252.999%2088.7067%20252.999%2089.248C252.999%2089.7893%20253.116%2090.2793%20253.349%2090.718C253.592%2091.1473%20253.914%2091.488%20254.315%2091.74C254.726%2091.992%20255.183%2092.118%20255.687%2092.118ZM263.457%2093.168C262.981%2093.168%20262.556%2093.0793%20262.183%2092.902C261.81%2092.7153%20261.516%2092.4633%20261.301%2092.146C261.086%2091.8287%20260.979%2091.4647%20260.979%2091.054C260.979%2090.662%20261.063%2090.3073%20261.231%2089.99C261.399%2089.6633%20261.66%2089.388%20262.015%2089.164C262.37%2088.94%20262.822%2088.7813%20263.373%2088.688L266.313%2088.198V89.15L263.625%2089.598C263.084%2089.6913%20262.692%2089.864%20262.449%2090.116C262.216%2090.368%20262.099%2090.6667%20262.099%2091.012C262.099%2091.348%20262.23%2091.6327%20262.491%2091.866C262.762%2092.0993%20263.107%2092.216%20263.527%2092.216C264.04%2092.216%20264.488%2092.1087%20264.871%2091.894C265.254%2091.67%20265.552%2091.3713%20265.767%2090.998C265.982%2090.6247%20266.089%2090.2093%20266.089%2089.752V87.848C266.089%2087.4%20265.926%2087.036%20265.599%2086.756C265.272%2086.476%20264.848%2086.336%20264.325%2086.336C263.868%2086.336%20263.466%2086.4527%20263.121%2086.686C262.776%2086.91%20262.519%2087.204%20262.351%2087.568L261.399%2087.05C261.539%2086.7327%20261.758%2086.4433%20262.057%2086.182C262.365%2085.9207%20262.715%2085.7153%20263.107%2085.566C263.499%2085.4073%20263.905%2085.328%20264.325%2085.328C264.876%2085.328%20265.361%2085.4353%20265.781%2085.65C266.21%2085.8647%20266.542%2086.1633%20266.775%2086.546C267.018%2086.9193%20267.139%2087.3533%20267.139%2087.848V93H266.089V91.502L266.243%2091.656C266.112%2091.936%20265.907%2092.1927%20265.627%2092.426C265.356%2092.65%20265.034%2092.832%20264.661%2092.972C264.297%2093.1027%20263.896%2093.168%20263.457%2093.168ZM269.299%2093V82.402H270.349V93H269.299ZM273.953%2093L277.761%2082.57H278.965L282.773%2093H281.597L280.701%2090.452H276.039L275.129%2093H273.953ZM276.403%2089.402H280.309L278.195%2083.41H278.531L276.403%2089.402ZM287.124%2093.168C286.424%2093.168%20285.794%2093%20285.234%2092.664C284.674%2092.3187%20284.231%2091.852%20283.904%2091.264C283.587%2090.6667%20283.428%2089.9947%20283.428%2089.248C283.428%2088.492%20283.587%2087.82%20283.904%2087.232C284.231%2086.644%20284.67%2086.182%20285.22%2085.846C285.78%2085.5007%20286.415%2085.328%20287.124%2085.328C287.768%2085.328%20288.342%2085.468%20288.846%2085.748C289.35%2086.028%20289.747%2086.406%20290.036%2086.882L289.868%2087.176V82.402H290.918V93H289.868V91.32L290.036%2091.474C289.775%2092.0153%20289.383%2092.4353%20288.86%2092.734C288.347%2093.0233%20287.768%2093.168%20287.124%2093.168ZM287.18%2092.118C287.684%2092.118%20288.137%2091.992%20288.538%2091.74C288.949%2091.488%20289.271%2091.1473%20289.504%2090.718C289.747%2090.2793%20289.868%2089.7893%20289.868%2089.248C289.868%2088.7067%20289.747%2088.2213%20289.504%2087.792C289.271%2087.3533%20288.949%2087.008%20288.538%2086.756C288.137%2086.504%20287.684%2086.378%20287.18%2086.378C286.686%2086.378%20286.238%2086.504%20285.836%2086.756C285.435%2087.008%20285.118%2087.3487%20284.884%2087.778C284.66%2088.2073%20284.548%2088.6973%20284.548%2089.248C284.548%2089.7893%20284.66%2090.2793%20284.884%2090.718C285.118%2091.1473%20285.43%2091.488%20285.822%2091.74C286.224%2091.992%20286.676%2092.118%20287.18%2092.118ZM293.074%2093V85.496H294.124V86.924L293.956%2086.714C294.161%2086.2753%20294.465%2085.9347%20294.866%2085.692C295.277%2085.4493%20295.725%2085.328%20296.21%2085.328C296.789%2085.328%20297.311%2085.4913%20297.778%2085.818C298.245%2086.1447%20298.576%2086.5693%20298.772%2087.092L298.478%2087.106C298.665%2086.5273%20298.987%2086.0887%20299.444%2085.79C299.911%2085.482%20300.424%2085.328%20300.984%2085.328C301.488%2085.328%20301.95%2085.4493%20302.37%2085.692C302.799%2085.9347%20303.14%2086.2707%20303.392%2086.7C303.653%2087.12%20303.784%2087.596%20303.784%2088.128V93H302.734V88.534C302.734%2088.0767%20302.65%2087.6893%20302.482%2087.372C302.323%2087.0547%20302.104%2086.812%20301.824%2086.644C301.544%2086.4667%20301.222%2086.378%20300.858%2086.378C300.503%2086.378%20300.181%2086.4667%20299.892%2086.644C299.603%2086.812%20299.374%2087.0593%20299.206%2087.386C299.038%2087.7033%20298.954%2088.086%20298.954%2088.534V93H297.904V88.534C297.904%2088.0767%20297.82%2087.6893%20297.652%2087.372C297.493%2087.0547%20297.274%2086.812%20296.994%2086.644C296.714%2086.4667%20296.392%2086.378%20296.028%2086.378C295.664%2086.378%20295.337%2086.4667%20295.048%2086.644C294.768%2086.812%20294.544%2087.0593%20294.376%2087.386C294.208%2087.7033%20294.124%2088.086%20294.124%2088.534V93H293.074ZM305.789%2093V85.496H306.839V93H305.789ZM305.789%2084.11V82.57H306.839V84.11H305.789ZM308.988%2093V85.496H310.038V86.952L309.8%2086.896C309.987%2086.4107%20310.29%2086.028%20310.71%2085.748C311.139%2085.468%20311.634%2085.328%20312.194%2085.328C312.726%2085.328%20313.202%2085.4493%20313.622%2085.692C314.051%2085.9347%20314.387%2086.2707%20314.63%2086.7C314.882%2087.12%20315.008%2087.596%20315.008%2088.128V93H313.958V88.534C313.958%2088.0767%20313.874%2087.6893%20313.706%2087.372C313.547%2087.0547%20313.319%2086.812%20313.02%2086.644C312.731%2086.4667%20312.395%2086.378%20312.012%2086.378C311.629%2086.378%20311.289%2086.4667%20310.99%2086.644C310.691%2086.812%20310.458%2087.0593%20310.29%2087.386C310.122%2087.7033%20310.038%2088.086%20310.038%2088.534V93H308.988Z'%20fill='%23181918'/%3e%3c/g%3e%3cg%20opacity='0.1'%3e%3cpath%20d='M41%2016C41%207.16344%2048.1634%200%2057%200H315C323.837%200%20331%207.16344%20331%2016V111C331%20119.837%20323.837%20127%20315%20127H57C48.1635%20127%2041%20119.837%2041%20111V16Z'%20fill='url(%23paint1_linear_683_56525)'/%3e%3crect%20x='65'%20y='36'%20width='67'%20height='67'%20rx='33.5'%20fill='%231B1C1E'/%3e%3cpath%20d='M92.8552%2078V62.0216H99.5683C100.526%2062.0216%20101.348%2062.1932%20102.035%2062.5363C102.735%2062.8795%20103.272%2063.3657%20103.643%2063.9948C104.029%2064.6096%20104.222%2065.346%20104.222%2066.2039C104.222%2066.9903%20104.015%2067.7052%20103.6%2068.3486C103.2%2068.9777%20102.607%2069.471%20101.82%2069.8285L101.799%2069.0349C102.485%2069.2923%20103.05%2069.6355%20103.493%2070.0644C103.951%2070.4791%20104.294%2070.9652%20104.523%2071.5229C104.751%2072.0662%20104.866%2072.6453%20104.866%2073.2601C104.866%2074.7328%20104.394%2075.891%20103.45%2076.7346C102.507%2077.5782%20101.22%2078%2099.5897%2078H92.8552ZM94.9571%2076.0697H99.6755C100.605%2076.0697%20101.348%2075.8195%20101.906%2075.3191C102.464%2074.8186%20102.743%2074.1394%20102.743%2073.2815C102.743%2072.4236%20102.464%2071.7445%20101.906%2071.244C101.348%2070.7293%20100.605%2070.4719%2099.6755%2070.4719H94.9571V76.0697ZM94.9571%2068.5845H99.5254C100.297%2068.5845%20100.919%2068.3629%20101.391%2067.9197C101.863%2067.4621%20102.099%2066.883%20102.099%2066.1824C102.099%2065.4532%20101.863%2064.8956%20101.391%2064.5095C100.919%2064.1235%20100.297%2063.9304%2099.5254%2063.9304H94.9571V68.5845Z'%20fill='%23FDFDFE'/%3e%3cpath%20d='M157.44%2056V41.1H163.72C164.707%2041.1%20165.547%2041.2733%20166.24%2041.62C166.947%2041.9533%20167.487%2042.4333%20167.86%2043.06C168.247%2043.6733%20168.44%2044.42%20168.44%2045.3C168.44%2045.98%20168.253%2046.62%20167.88%2047.22C167.52%2047.8067%20166.94%2048.2933%20166.14%2048.68V47.42C166.873%2047.7%20167.453%2048.0467%20167.88%2048.46C168.307%2048.8733%20168.607%2049.3333%20168.78%2049.84C168.953%2050.3467%20169.04%2050.88%20169.04%2051.44C169.04%2052.8667%20168.567%2053.9867%20167.62%2054.8C166.687%2055.6%20165.387%2056%20163.72%2056H157.44ZM160.16%2053.6H164C164.707%2053.6%20165.267%2053.4067%20165.68%2053.02C166.107%2052.62%20166.32%2052.0933%20166.32%2051.44C166.32%2050.7867%20166.107%2050.26%20165.68%2049.86C165.267%2049.46%20164.707%2049.26%20164%2049.26H160.16V53.6ZM160.16%2046.88H163.86C164.42%2046.88%20164.867%2046.72%20165.2%2046.4C165.533%2046.0667%20165.7%2045.64%20165.7%2045.12C165.7%2044.6%20165.533%2044.1867%20165.2%2043.88C164.867%2043.5733%20164.42%2043.42%20163.86%2043.42H160.16V46.88ZM176.208%2056.24C175.088%2056.24%20174.108%2055.9867%20173.268%2055.48C172.428%2054.9733%20171.775%2054.2867%20171.308%2053.42C170.841%2052.5533%20170.608%2051.5933%20170.608%2050.54C170.608%2049.4467%20170.841%2048.48%20171.308%2047.64C171.788%2046.7867%20172.435%2046.1133%20173.248%2045.62C174.075%2045.1267%20174.995%2044.88%20176.008%2044.88C176.861%2044.88%20177.608%2045.02%20178.248%2045.3C178.901%2045.58%20179.455%2045.9667%20179.908%2046.46C180.361%2046.9533%20180.708%2047.52%20180.948%2048.16C181.188%2048.7867%20181.308%2049.4667%20181.308%2050.2C181.308%2050.3867%20181.295%2050.58%20181.268%2050.78C181.255%2050.98%20181.221%2051.1533%20181.168%2051.3H172.768V49.3H179.688L178.448%2050.24C178.568%2049.6267%20178.535%2049.08%20178.348%2048.6C178.175%2048.12%20177.881%2047.74%20177.468%2047.46C177.068%2047.18%20176.581%2047.04%20176.008%2047.04C175.461%2047.04%20174.975%2047.18%20174.548%2047.46C174.121%2047.7267%20173.795%2048.1267%20173.568%2048.66C173.355%2049.18%20173.275%2049.8133%20173.328%2050.56C173.275%2051.2267%20173.361%2051.82%20173.588%2052.34C173.828%2052.8467%20174.175%2053.24%20174.628%2053.52C175.095%2053.8%20175.628%2053.94%20176.228%2053.94C176.828%2053.94%20177.335%2053.8133%20177.748%2053.56C178.175%2053.3067%20178.508%2052.9667%20178.748%2052.54L180.868%2053.58C180.655%2054.1%20180.321%2054.56%20179.868%2054.96C179.415%2055.36%20178.875%2055.6733%20178.248%2055.9C177.635%2056.1267%20176.955%2056.24%20176.208%2056.24ZM183.294%2056V45.12H185.754V47.26L185.554%2046.88C185.808%2046.2267%20186.221%2045.7333%20186.794%2045.4C187.381%2045.0533%20188.061%2044.88%20188.834%2044.88C189.634%2044.88%20190.341%2045.0533%20190.954%2045.4C191.581%2045.7467%20192.068%2046.2333%20192.414%2046.86C192.761%2047.4733%20192.934%2048.1867%20192.934%2049V56H190.314V49.62C190.314%2049.14%20190.221%2048.7267%20190.034%2048.38C189.848%2048.0333%20189.588%2047.7667%20189.254%2047.58C188.934%2047.38%20188.554%2047.28%20188.114%2047.28C187.688%2047.28%20187.308%2047.38%20186.974%2047.58C186.641%2047.7667%20186.381%2048.0333%20186.194%2048.38C186.008%2048.7267%20185.914%2049.14%20185.914%2049.62V56H183.294ZM193.65%2060.42C193.476%2060.42%20193.296%2060.4133%20193.11%2060.4C192.923%2060.3867%20192.77%2060.3667%20192.65%2060.34V58.06C192.89%2058.1%20193.13%2058.12%20193.37%2058.12C193.93%2058.12%20194.363%2057.9867%20194.67%2057.72C194.99%2057.4667%20195.15%2057.0733%20195.15%2056.54V45.12H197.77V56.54C197.77%2057.3667%20197.603%2058.0667%20197.27%2058.64C196.936%2059.2267%20196.456%2059.6667%20195.83%2059.96C195.216%2060.2667%20194.49%2060.42%20193.65%2060.42ZM195.15%2043.9V41.1H197.77V43.9H195.15ZM203.489%2056.24C202.729%2056.24%20202.069%2056.1133%20201.509%2055.86C200.949%2055.6067%20200.515%2055.2467%20200.209%2054.78C199.902%2054.3%20199.749%2053.7467%20199.749%2053.12C199.749%2052.52%20199.882%2051.9867%20200.149%2051.52C200.415%2051.04%20200.829%2050.64%20201.389%2050.32C201.949%2050%20202.655%2049.7733%20203.509%2049.64L207.069%2049.06V51.06L204.009%2051.58C203.489%2051.6733%20203.102%2051.84%20202.849%2052.08C202.595%2052.32%20202.469%2052.6333%20202.469%2053.02C202.469%2053.3933%20202.609%2053.6933%20202.889%2053.92C203.182%2054.1333%20203.542%2054.24%20203.969%2054.24C204.515%2054.24%20204.995%2054.1267%20205.409%2053.9C205.835%2053.66%20206.162%2053.3333%20206.389%2052.92C206.629%2052.5067%20206.749%2052.0533%20206.749%2051.56V48.76C206.749%2048.2933%20206.562%2047.9067%20206.189%2047.6C205.829%2047.28%20205.349%2047.12%20204.749%2047.12C204.189%2047.12%20203.689%2047.2733%20203.249%2047.58C202.822%2047.8733%20202.509%2048.2667%20202.309%2048.76L200.169%2047.72C200.382%2047.1467%20200.715%2046.6533%20201.169%2046.24C201.635%2045.8133%20202.182%2045.48%20202.809%2045.24C203.435%2045%20204.115%2044.88%20204.849%2044.88C205.742%2044.88%20206.529%2045.0467%20207.209%2045.38C207.889%2045.7%20208.415%2046.1533%20208.789%2046.74C209.175%2047.3133%20209.369%2047.9867%20209.369%2048.76V56H206.889V54.14L207.449%2054.1C207.169%2054.5667%20206.835%2054.96%20206.449%2055.28C206.062%2055.5867%20205.622%2055.8267%20205.129%2056C204.635%2056.16%20204.089%2056.24%20203.489%2056.24ZM211.79%2056V45.12H214.25V47.64L213.97%2047.22C214.17%2046.4333%20214.57%2045.8467%20215.17%2045.46C215.77%2045.0733%20216.477%2044.88%20217.29%2044.88C218.184%2044.88%20218.97%2045.1133%20219.65%2045.58C220.33%2046.0467%20220.77%2046.66%20220.97%2047.42L220.23%2047.48C220.564%2046.6133%20221.064%2045.9667%20221.73%2045.54C222.397%2045.1%20223.164%2044.88%20224.03%2044.88C224.804%2044.88%20225.49%2045.0533%20226.09%2045.4C226.704%2045.7467%20227.184%2046.2333%20227.53%2046.86C227.877%2047.4733%20228.05%2048.1867%20228.05%2049V56H225.43V49.62C225.43%2049.14%20225.344%2048.7267%20225.17%2048.38C224.997%2048.0333%20224.757%2047.7667%20224.45%2047.58C224.144%2047.38%20223.77%2047.28%20223.33%2047.28C222.917%2047.28%20222.55%2047.38%20222.23%2047.58C221.91%2047.7667%20221.664%2048.0333%20221.49%2048.38C221.317%2048.7267%20221.23%2049.14%20221.23%2049.62V56H218.61V49.62C218.61%2049.14%20218.524%2048.7267%20218.35%2048.38C218.177%2048.0333%20217.93%2047.7667%20217.61%2047.58C217.304%2047.38%20216.937%2047.28%20216.51%2047.28C216.097%2047.28%20215.73%2047.38%20215.41%2047.58C215.09%2047.7667%20214.844%2048.0333%20214.67%2048.38C214.497%2048.7267%20214.41%2049.14%20214.41%2049.62V56H211.79ZM230.267%2056V45.12H232.887V56H230.267ZM230.267%2043.9V41.1H232.887V43.9H230.267ZM235.306%2056V45.12H237.766V47.26L237.566%2046.88C237.819%2046.2267%20238.233%2045.7333%20238.806%2045.4C239.393%2045.0533%20240.073%2044.88%20240.846%2044.88C241.646%2044.88%20242.353%2045.0533%20242.966%2045.4C243.593%2045.7467%20244.079%2046.2333%20244.426%2046.86C244.773%2047.4733%20244.946%2048.1867%20244.946%2049V56H242.326V49.62C242.326%2049.14%20242.233%2048.7267%20242.046%2048.38C241.859%2048.0333%20241.599%2047.7667%20241.266%2047.58C240.946%2047.38%20240.566%2047.28%20240.126%2047.28C239.699%2047.28%20239.319%2047.38%20238.986%2047.58C238.653%2047.7667%20238.393%2048.0333%20238.206%2048.38C238.019%2048.7267%20237.926%2049.14%20237.926%2049.62V56H235.306Z'%20fill='%23181918'/%3e%3cpath%20d='M160.872%2079.168C160.228%2079.168%20159.645%2079.0233%20159.122%2078.734C158.609%2078.4353%20158.221%2078.0153%20157.96%2077.474L158.128%2077.32V79H157.078V68.402H158.128V73.176L157.96%2072.882C158.259%2072.406%20158.655%2072.028%20159.15%2071.748C159.654%2071.468%20160.228%2071.328%20160.872%2071.328C161.581%2071.328%20162.211%2071.5007%20162.762%2071.846C163.322%2072.182%20163.761%2072.644%20164.078%2073.232C164.405%2073.82%20164.568%2074.492%20164.568%2075.248C164.568%2075.9947%20164.405%2076.6667%20164.078%2077.264C163.761%2077.852%20163.322%2078.3187%20162.762%2078.664C162.211%2079%20161.581%2079.168%20160.872%2079.168ZM160.816%2078.118C161.32%2078.118%20161.768%2077.992%20162.16%2077.74C162.561%2077.488%20162.874%2077.1473%20163.098%2076.718C163.331%2076.2793%20163.448%2075.7893%20163.448%2075.248C163.448%2074.6973%20163.331%2074.2073%20163.098%2073.778C162.874%2073.3487%20162.561%2073.008%20162.16%2072.756C161.768%2072.504%20161.32%2072.378%20160.816%2072.378C160.312%2072.378%20159.855%2072.504%20159.444%2072.756C159.043%2073.008%20158.721%2073.3533%20158.478%2073.792C158.245%2074.2213%20158.128%2074.7067%20158.128%2075.248C158.128%2075.7893%20158.245%2076.2793%20158.478%2076.718C158.721%2077.1473%20159.043%2077.488%20159.444%2077.74C159.855%2077.992%20160.312%2078.118%20160.816%2078.118ZM169.832%2079.168C169.132%2079.168%20168.497%2079%20167.928%2078.664C167.368%2078.3187%20166.925%2077.8473%20166.598%2077.25C166.271%2076.6527%20166.108%2075.976%20166.108%2075.22C166.108%2074.464%20166.267%2073.7967%20166.584%2073.218C166.901%2072.63%20167.331%2072.168%20167.872%2071.832C168.423%2071.496%20169.039%2071.328%20169.72%2071.328C170.261%2071.328%20170.742%2071.4307%20171.162%2071.636C171.591%2071.832%20171.955%2072.1027%20172.254%2072.448C172.553%2072.784%20172.781%2073.1667%20172.94%2073.596C173.099%2074.016%20173.178%2074.45%20173.178%2074.898C173.178%2074.9913%20173.173%2075.0987%20173.164%2075.22C173.155%2075.332%20173.141%2075.4487%20173.122%2075.57H166.78V74.59H172.52L172.016%2075.01C172.1%2074.4967%20172.039%2074.0393%20171.834%2073.638C171.638%2073.2273%20171.353%2072.9053%20170.98%2072.672C170.607%2072.4293%20170.187%2072.308%20169.72%2072.308C169.253%2072.308%20168.819%2072.4293%20168.418%2072.672C168.026%2072.9147%20167.718%2073.2553%20167.494%2073.694C167.27%2074.1233%20167.181%2074.6367%20167.228%2075.234C167.181%2075.8313%20167.275%2076.354%20167.508%2076.802C167.751%2077.2407%20168.077%2077.5813%20168.488%2077.824C168.908%2078.0667%20169.356%2078.188%20169.832%2078.188C170.383%2078.188%20170.845%2078.0573%20171.218%2077.796C171.591%2077.5347%20171.895%2077.208%20172.128%2076.816L173.024%2077.292C172.875%2077.628%20172.646%2077.9407%20172.338%2078.23C172.03%2078.51%20171.661%2078.7387%20171.232%2078.916C170.812%2079.084%20170.345%2079.168%20169.832%2079.168ZM175.029%2079V71.496H176.079V72.952L175.841%2072.896C176.028%2072.4107%20176.331%2072.028%20176.751%2071.748C177.181%2071.468%20177.675%2071.328%20178.235%2071.328C178.767%2071.328%20179.243%2071.4493%20179.663%2071.692C180.093%2071.9347%20180.429%2072.2707%20180.671%2072.7C180.923%2073.12%20181.049%2073.596%20181.049%2074.128V79H179.999V74.534C179.999%2074.0767%20179.915%2073.6893%20179.747%2073.372C179.589%2073.0547%20179.36%2072.812%20179.061%2072.644C178.772%2072.4667%20178.436%2072.378%20178.053%2072.378C177.671%2072.378%20177.33%2072.4667%20177.031%2072.644C176.733%2072.812%20176.499%2073.0593%20176.331%2073.386C176.163%2073.7033%20176.079%2074.086%20176.079%2074.534V79H175.029ZM188.725%2081.898C187.903%2081.898%20187.138%2081.7487%20186.429%2081.45C185.729%2081.1607%20185.113%2080.75%20184.581%2080.218C184.049%2079.686%20183.633%2079.07%20183.335%2078.37C183.045%2077.6607%20182.901%2076.9%20182.901%2076.088C182.901%2075.276%20183.05%2074.52%20183.349%2073.82C183.647%2073.12%20184.058%2072.5087%20184.581%2071.986C185.113%2071.4633%20185.733%2071.0573%20186.443%2070.768C187.152%2070.4693%20187.913%2070.32%20188.725%2070.32C189.565%2070.32%20190.339%2070.4787%20191.049%2070.796C191.758%2071.104%20192.369%2071.5287%20192.883%2072.07C193.405%2072.602%20193.807%2073.2087%20194.087%2073.89C194.376%2074.5713%20194.521%2075.2853%20194.521%2076.032C194.521%2076.62%20194.427%2077.138%20194.241%2077.586C194.063%2078.0247%20193.802%2078.37%20193.457%2078.622C193.111%2078.874%20192.696%2079%20192.211%2079C191.921%2079%20191.646%2078.9487%20191.385%2078.846C191.123%2078.734%20190.899%2078.58%20190.713%2078.384C190.535%2078.1787%20190.414%2077.936%20190.349%2077.656L190.573%2077.838C190.423%2078.09%20190.237%2078.3047%20190.013%2078.482C189.798%2078.65%20189.555%2078.7807%20189.285%2078.874C189.014%2078.958%20188.72%2079%20188.403%2079C187.861%2079%20187.371%2078.8693%20186.933%2078.608C186.503%2078.3467%20186.163%2077.992%20185.911%2077.544C185.659%2077.096%20185.533%2076.5873%20185.533%2076.018C185.533%2075.4487%20185.659%2074.94%20185.911%2074.492C186.163%2074.044%20186.503%2073.6893%20186.933%2073.428C187.371%2073.1573%20187.861%2073.022%20188.403%2073.022C188.86%2073.022%20189.275%2073.1153%20189.649%2073.302C190.031%2073.4887%20190.335%2073.75%20190.559%2074.086L190.461%2074.254V73.162H191.371V77.026C191.371%2077.3713%20191.445%2077.6233%20191.595%2077.782C191.753%2077.9407%20191.963%2078.02%20192.225%2078.02C192.617%2078.02%20192.92%2077.8567%20193.135%2077.53C193.359%2077.2033%20193.471%2076.7133%20193.471%2076.06C193.471%2075.388%20193.354%2074.7627%20193.121%2074.184C192.887%2073.6053%20192.561%2073.1013%20192.141%2072.672C191.721%2072.2427%20191.221%2071.9067%20190.643%2071.664C190.064%2071.4213%20189.425%2071.3%20188.725%2071.3C188.043%2071.3%20187.409%2071.4213%20186.821%2071.664C186.242%2071.8973%20185.738%2072.2287%20185.309%2072.658C184.879%2073.0873%20184.543%2073.5913%20184.301%2074.17C184.067%2074.7487%20183.951%2075.3833%20183.951%2076.074C183.951%2076.746%20184.063%2077.376%20184.287%2077.964C184.52%2078.5427%20184.847%2079.0513%20185.267%2079.49C185.696%2079.938%20186.205%2080.288%20186.793%2080.54C187.381%2080.792%20188.034%2080.918%20188.753%2080.918C189.173%2080.918%20189.579%2080.8713%20189.971%2080.778C190.363%2080.694%20190.717%2080.5633%20191.035%2080.386L191.483%2081.226C190.689%2081.674%20189.77%2081.898%20188.725%2081.898ZM188.445%2078.02C188.809%2078.02%20189.131%2077.9313%20189.411%2077.754C189.691%2077.5767%20189.91%2077.3387%20190.069%2077.04C190.237%2076.732%20190.321%2076.3867%20190.321%2076.004C190.321%2075.4253%20190.143%2074.954%20189.789%2074.59C189.434%2074.2167%20188.986%2074.03%20188.445%2074.03C188.09%2074.03%20187.768%2074.1187%20187.479%2074.296C187.199%2074.464%20186.979%2074.6973%20186.821%2074.996C186.662%2075.2947%20186.583%2075.6353%20186.583%2076.018C186.583%2076.3913%20186.662%2076.732%20186.821%2077.04C186.989%2077.3387%20187.213%2077.5767%20187.493%2077.754C187.773%2077.9313%20188.09%2078.02%20188.445%2078.02ZM198.661%2079.168C197.942%2079.168%20197.312%2078.986%20196.771%2078.622C196.229%2078.258%20195.837%2077.7633%20195.595%2077.138L196.477%2076.718C196.691%2077.1753%20196.99%2077.5393%20197.373%2077.81C197.765%2078.0807%20198.194%2078.216%20198.661%2078.216C199.109%2078.216%20199.487%2078.1087%20199.795%2077.894C200.103%2077.67%20200.257%2077.3807%20200.257%2077.026C200.257%2076.7647%20200.182%2076.5593%20200.033%2076.41C199.883%2076.2513%20199.711%2076.13%20199.515%2076.046C199.319%2075.962%20199.146%2075.9013%20198.997%2075.864L197.919%2075.556C197.228%2075.36%20196.729%2075.0847%20196.421%2074.73C196.113%2074.3753%20195.959%2073.9647%20195.959%2073.498C195.959%2073.0593%20196.071%2072.6767%20196.295%2072.35C196.519%2072.0233%20196.822%2071.7713%20197.205%2071.594C197.587%2071.4167%20198.012%2071.328%20198.479%2071.328C199.113%2071.328%20199.687%2071.496%20200.201%2071.832C200.723%2072.1587%20201.092%2072.616%20201.307%2073.204L200.411%2073.624C200.224%2073.204%20199.953%2072.8773%20199.599%2072.644C199.253%2072.4013%20198.866%2072.28%20198.437%2072.28C198.017%2072.28%20197.681%2072.3873%20197.429%2072.602C197.177%2072.8167%20197.051%2073.0873%20197.051%2073.414C197.051%2073.666%20197.116%2073.8667%20197.247%2074.016C197.377%2074.1653%20197.527%2074.2773%20197.695%2074.352C197.872%2074.4267%20198.026%2074.4827%20198.157%2074.52L199.403%2074.884C200.009%2075.0613%20200.481%2075.3367%20200.817%2075.71C201.162%2076.0833%20201.335%2076.522%20201.335%2077.026C201.335%2077.4367%20201.218%2077.8053%20200.985%2078.132C200.761%2078.4587%20200.448%2078.7153%20200.047%2078.902C199.645%2079.0793%20199.183%2079.168%20198.661%2079.168ZM203.18%2079V68.402H204.23V72.952L203.992%2072.896C204.178%2072.4107%20204.482%2072.028%20204.902%2071.748C205.331%2071.468%20205.826%2071.328%20206.386%2071.328C206.918%2071.328%20207.394%2071.4493%20207.814%2071.692C208.243%2071.9347%20208.579%2072.2707%20208.822%2072.7C209.074%2073.12%20209.2%2073.596%20209.2%2074.128V79H208.15V74.534C208.15%2074.0767%20208.066%2073.6893%20207.898%2073.372C207.73%2073.0547%20207.496%2072.812%20207.198%2072.644C206.908%2072.4667%20206.577%2072.378%20206.204%2072.378C205.83%2072.378%20205.494%2072.4667%20205.196%2072.644C204.897%2072.812%20204.659%2073.0593%20204.482%2073.386C204.314%2073.7033%20204.23%2074.086%20204.23%2074.534V79H203.18ZM214.621%2079.168C213.921%2079.168%20213.286%2079%20212.717%2078.664C212.157%2078.3187%20211.714%2077.8473%20211.387%2077.25C211.06%2076.6527%20210.897%2075.976%20210.897%2075.22C210.897%2074.464%20211.056%2073.7967%20211.373%2073.218C211.69%2072.63%20212.12%2072.168%20212.661%2071.832C213.212%2071.496%20213.828%2071.328%20214.509%2071.328C215.05%2071.328%20215.531%2071.4307%20215.951%2071.636C216.38%2071.832%20216.744%2072.1027%20217.043%2072.448C217.342%2072.784%20217.57%2073.1667%20217.729%2073.596C217.888%2074.016%20217.967%2074.45%20217.967%2074.898C217.967%2074.9913%20217.962%2075.0987%20217.953%2075.22C217.944%2075.332%20217.93%2075.4487%20217.911%2075.57H211.569V74.59H217.309L216.805%2075.01C216.889%2074.4967%20216.828%2074.0393%20216.623%2073.638C216.427%2073.2273%20216.142%2072.9053%20215.769%2072.672C215.396%2072.4293%20214.976%2072.308%20214.509%2072.308C214.042%2072.308%20213.608%2072.4293%20213.207%2072.672C212.815%2072.9147%20212.507%2073.2553%20212.283%2073.694C212.059%2074.1233%20211.97%2074.6367%20212.017%2075.234C211.97%2075.8313%20212.064%2076.354%20212.297%2076.802C212.54%2077.2407%20212.866%2077.5813%20213.277%2077.824C213.697%2078.0667%20214.145%2078.188%20214.621%2078.188C215.172%2078.188%20215.634%2078.0573%20216.007%2077.796C216.38%2077.5347%20216.684%2077.208%20216.917%2076.816L217.813%2077.292C217.664%2077.628%20217.435%2077.9407%20217.127%2078.23C216.819%2078.51%20216.45%2078.7387%20216.021%2078.916C215.601%2079.084%20215.134%2079.168%20214.621%2079.168ZM219.818%2079V68.402H220.868V75.822L220.42%2075.752L224.634%2071.496H225.992L223.052%2074.506L226.258%2079H224.998L221.988%2074.842L222.66%2074.898L220.518%2077.11L220.868%2076.242V79H219.818ZM230.767%2079.168C230.067%2079.168%20229.433%2079%20228.863%2078.664C228.303%2078.3187%20227.86%2077.8473%20227.533%2077.25C227.207%2076.6527%20227.043%2075.976%20227.043%2075.22C227.043%2074.464%20227.202%2073.7967%20227.519%2073.218C227.837%2072.63%20228.266%2072.168%20228.807%2071.832C229.358%2071.496%20229.974%2071.328%20230.655%2071.328C231.197%2071.328%20231.677%2071.4307%20232.097%2071.636C232.527%2071.832%20232.891%2072.1027%20233.189%2072.448C233.488%2072.784%20233.717%2073.1667%20233.875%2073.596C234.034%2074.016%20234.113%2074.45%20234.113%2074.898C234.113%2074.9913%20234.109%2075.0987%20234.099%2075.22C234.09%2075.332%20234.076%2075.4487%20234.057%2075.57H227.715V74.59H233.455L232.951%2075.01C233.035%2074.4967%20232.975%2074.0393%20232.769%2073.638C232.573%2073.2273%20232.289%2072.9053%20231.915%2072.672C231.542%2072.4293%20231.122%2072.308%20230.655%2072.308C230.189%2072.308%20229.755%2072.4293%20229.353%2072.672C228.961%2072.9147%20228.653%2073.2553%20228.429%2073.694C228.205%2074.1233%20228.117%2074.6367%20228.163%2075.234C228.117%2075.8313%20228.21%2076.354%20228.443%2076.802C228.686%2077.2407%20229.013%2077.5813%20229.423%2077.824C229.843%2078.0667%20230.291%2078.188%20230.767%2078.188C231.318%2078.188%20231.78%2078.0573%20232.153%2077.796C232.527%2077.5347%20232.83%2077.208%20233.063%2076.816L233.959%2077.292C233.81%2077.628%20233.581%2077.9407%20233.273%2078.23C232.965%2078.51%20232.597%2078.7387%20232.167%2078.916C231.747%2079.084%20231.281%2079.168%20230.767%2079.168ZM235.965%2079V68.402H237.015V79H235.965ZM239.528%2079V77.46H240.648V79H239.528ZM245.34%2079.168C244.864%2079.168%20244.439%2079.0793%20244.066%2078.902C243.692%2078.7153%20243.398%2078.4633%20243.184%2078.146C242.969%2077.8287%20242.862%2077.4647%20242.862%2077.054C242.862%2076.662%20242.946%2076.3073%20243.114%2075.99C243.282%2075.6633%20243.543%2075.388%20243.898%2075.164C244.252%2074.94%20244.705%2074.7813%20245.256%2074.688L248.196%2074.198V75.15L245.508%2075.598C244.966%2075.6913%20244.574%2075.864%20244.332%2076.116C244.098%2076.368%20243.982%2076.6667%20243.982%2077.012C243.982%2077.348%20244.112%2077.6327%20244.374%2077.866C244.644%2078.0993%20244.99%2078.216%20245.41%2078.216C245.923%2078.216%20246.371%2078.1087%20246.754%2077.894C247.136%2077.67%20247.435%2077.3713%20247.65%2076.998C247.864%2076.6247%20247.972%2076.2093%20247.972%2075.752V73.848C247.972%2073.4%20247.808%2073.036%20247.482%2072.756C247.155%2072.476%20246.73%2072.336%20246.208%2072.336C245.75%2072.336%20245.349%2072.4527%20245.004%2072.686C244.658%2072.91%20244.402%2073.204%20244.234%2073.568L243.282%2073.05C243.422%2072.7327%20243.641%2072.4433%20243.94%2072.182C244.248%2071.9207%20244.598%2071.7153%20244.99%2071.566C245.382%2071.4073%20245.788%2071.328%20246.208%2071.328C246.758%2071.328%20247.244%2071.4353%20247.664%2071.65C248.093%2071.8647%20248.424%2072.1633%20248.658%2072.546C248.9%2072.9193%20249.022%2073.3533%20249.022%2073.848V79H247.972V77.502L248.126%2077.656C247.995%2077.936%20247.79%2078.1927%20247.51%2078.426C247.239%2078.65%20246.917%2078.832%20246.544%2078.972C246.18%2079.1027%20245.778%2079.168%20245.34%2079.168ZM251.952%2079V72.546H250.454V71.496H251.952V70.824C251.952%2070.3013%20252.068%2069.8627%20252.302%2069.508C252.535%2069.144%20252.843%2068.8687%20253.226%2068.682C253.608%2068.4953%20254.019%2068.402%20254.458%2068.402C254.551%2068.402%20254.658%2068.4113%20254.78%2068.43C254.901%2068.4393%20254.999%2068.4533%20255.074%2068.472V69.424C255.008%2069.4053%20254.92%2069.396%20254.808%2069.396C254.696%2069.3867%20254.616%2069.382%20254.57%2069.382C254.122%2069.382%20253.748%2069.4893%20253.45%2069.704C253.151%2069.9187%20253.002%2070.292%20253.002%2070.824V71.496H254.836V72.546H253.002V79H251.952ZM256.541%2079V71.496H257.591V72.728L257.451%2072.546C257.628%2072.1913%20257.894%2071.9113%20258.249%2071.706C258.613%2071.5007%20259.052%2071.398%20259.565%2071.398H260.041V72.448H259.383C258.842%2072.448%20258.408%2072.616%20258.081%2072.952C257.754%2073.288%20257.591%2073.764%20257.591%2074.38V79H256.541ZM261.271%2079V71.496H262.321V79H261.271ZM261.271%2070.11V68.57H262.321V70.11H261.271ZM267.901%2079.168C267.163%2079.168%20266.515%2078.9953%20265.955%2078.65C265.395%2078.3047%20264.956%2077.838%20264.639%2077.25C264.321%2076.6527%20264.163%2075.9807%20264.163%2075.234C264.163%2074.4873%20264.321%2073.82%20264.639%2073.232C264.956%2072.644%20265.395%2072.182%20265.955%2071.846C266.515%2071.5007%20267.163%2071.328%20267.901%2071.328C268.367%2071.328%20268.806%2071.412%20269.217%2071.58C269.627%2071.748%20269.991%2071.9767%20270.309%2072.266C270.626%2072.546%20270.864%2072.8727%20271.023%2073.246L270.071%2073.736C269.884%2073.3347%20269.599%2073.008%20269.217%2072.756C268.834%2072.504%20268.395%2072.378%20267.901%2072.378C267.406%2072.378%20266.958%2072.504%20266.557%2072.756C266.165%2072.9987%20265.852%2073.3393%20265.619%2073.778C265.395%2074.2073%20265.283%2074.6973%20265.283%2075.248C265.283%2075.7893%20265.395%2076.2793%20265.619%2076.718C265.852%2077.1473%20266.165%2077.488%20266.557%2077.74C266.958%2077.992%20267.406%2078.118%20267.901%2078.118C268.395%2078.118%20268.829%2077.992%20269.203%2077.74C269.585%2077.488%20269.875%2077.152%20270.071%2076.732L271.023%2077.25C270.864%2077.614%20270.626%2077.9407%20270.309%2078.23C269.991%2078.5193%20269.627%2078.748%20269.217%2078.916C268.806%2079.084%20268.367%2079.168%20267.901%2079.168ZM274.898%2079.168C274.422%2079.168%20273.998%2079.0793%20273.624%2078.902C273.251%2078.7153%20272.957%2078.4633%20272.742%2078.146C272.528%2077.8287%20272.42%2077.4647%20272.42%2077.054C272.42%2076.662%20272.504%2076.3073%20272.672%2075.99C272.84%2075.6633%20273.102%2075.388%20273.456%2075.164C273.811%2074.94%20274.264%2074.7813%20274.814%2074.688L277.754%2074.198V75.15L275.066%2075.598C274.525%2075.6913%20274.133%2075.864%20273.89%2076.116C273.657%2076.368%20273.54%2076.6667%20273.54%2077.012C273.54%2077.348%20273.671%2077.6327%20273.932%2077.866C274.203%2078.0993%20274.548%2078.216%20274.968%2078.216C275.482%2078.216%20275.93%2078.1087%20276.312%2077.894C276.695%2077.67%20276.994%2077.3713%20277.208%2076.998C277.423%2076.6247%20277.53%2076.2093%20277.53%2075.752V73.848C277.53%2073.4%20277.367%2073.036%20277.04%2072.756C276.714%2072.476%20276.289%2072.336%20275.766%2072.336C275.309%2072.336%20274.908%2072.4527%20274.562%2072.686C274.217%2072.91%20273.96%2073.204%20273.792%2073.568L272.84%2073.05C272.98%2072.7327%20273.2%2072.4433%20273.498%2072.182C273.806%2071.9207%20274.156%2071.7153%20274.548%2071.566C274.94%2071.4073%20275.346%2071.328%20275.766%2071.328C276.317%2071.328%20276.802%2071.4353%20277.222%2071.65C277.652%2071.8647%20277.983%2072.1633%20278.216%2072.546C278.459%2072.9193%20278.58%2073.3533%20278.58%2073.848V79H277.53V77.502L277.684%2077.656C277.554%2077.936%20277.348%2078.1927%20277.068%2078.426C276.798%2078.65%20276.476%2078.832%20276.102%2078.972C275.738%2079.1027%20275.337%2079.168%20274.898%2079.168Z'%20fill='%23181918'/%3e%3cpath%20d='M161.992%20100.168C161.255%20100.168%20160.578%20100.037%20159.962%2099.776C159.346%2099.5053%20158.809%2099.132%20158.352%2098.656C157.904%2098.1707%20157.554%2097.6013%20157.302%2096.948C157.05%2096.2947%20156.924%2095.576%20156.924%2094.792C156.924%2094.008%20157.05%2093.2893%20157.302%2092.636C157.554%2091.9827%20157.904%2091.4133%20158.352%2090.928C158.809%2090.4427%20159.346%2090.0693%20159.962%2089.808C160.578%2089.5373%20161.255%2089.402%20161.992%2089.402C162.701%2089.402%20163.336%2089.528%20163.896%2089.78C164.465%2090.032%20164.941%2090.3587%20165.324%2090.76C165.716%2091.152%20165.996%2091.5673%20166.164%2092.006L165.114%2092.468C164.853%2091.8613%20164.451%2091.376%20163.91%2091.012C163.378%2090.6387%20162.739%2090.452%20161.992%2090.452C161.227%2090.452%20160.545%2090.634%20159.948%2090.998C159.351%2091.362%20158.884%2091.8707%20158.548%2092.524C158.212%2093.168%20158.044%2093.924%20158.044%2094.792C158.044%2095.6507%20158.212%2096.4067%20158.548%2097.06C158.884%2097.7133%20159.351%2098.222%20159.948%2098.586C160.545%2098.9407%20161.227%2099.118%20161.992%2099.118C162.739%2099.118%20163.378%2098.936%20163.91%2098.572C164.451%2098.208%20164.853%2097.7227%20165.114%2097.116L166.164%2097.578C165.996%2098.0073%20165.716%2098.4227%20165.324%2098.824C164.941%2099.216%20164.465%2099.538%20163.896%2099.79C163.336%20100.042%20162.701%20100.168%20161.992%20100.168ZM171.393%20100.168C170.683%20100.168%20170.039%20100%20169.461%2099.664C168.882%2099.3187%20168.42%2098.852%20168.075%2098.264C167.739%2097.6667%20167.571%2096.99%20167.571%2096.234C167.571%2095.4873%20167.739%2094.82%20168.075%2094.232C168.411%2093.644%20168.863%2093.182%20169.433%2092.846C170.011%2092.5007%20170.665%2092.328%20171.393%2092.328C172.121%2092.328%20172.769%2092.496%20173.339%2092.832C173.917%2093.168%20174.37%2093.63%20174.697%2094.218C175.033%2094.806%20175.201%2095.478%20175.201%2096.234C175.201%2096.9993%20175.028%2097.6807%20174.683%2098.278C174.337%2098.866%20173.875%2099.328%20173.297%2099.664C172.727%20100%20172.093%20100.168%20171.393%20100.168ZM171.393%2099.118C171.897%2099.118%20172.349%2098.992%20172.751%2098.74C173.161%2098.488%20173.483%2098.1427%20173.717%2097.704C173.959%2097.2653%20174.081%2096.7753%20174.081%2096.234C174.081%2095.6927%20173.959%2095.2073%20173.717%2094.778C173.483%2094.3487%20173.161%2094.008%20172.751%2093.756C172.349%2093.504%20171.897%2093.378%20171.393%2093.378C170.889%2093.378%20170.431%2093.504%20170.021%2093.756C169.619%2094.008%20169.297%2094.3487%20169.055%2094.778C168.812%2095.2073%20168.691%2095.6927%20168.691%2096.234C168.691%2096.7753%20168.812%2097.2653%20169.055%2097.704C169.297%2098.1427%20169.619%2098.488%20170.021%2098.74C170.431%2098.992%20170.889%2099.118%20171.393%2099.118ZM177.417%20100V98.46H178.537V100H177.417ZM184.207%20100V93.546H182.709V92.496H184.207V91.824C184.207%2091.3013%20184.324%2090.8627%20184.557%2090.508C184.791%2090.144%20185.099%2089.8687%20185.481%2089.682C185.864%2089.4953%20186.275%2089.402%20186.713%2089.402C186.807%2089.402%20186.914%2089.4113%20187.035%2089.43C187.157%2089.4393%20187.255%2089.4533%20187.329%2089.472V90.424C187.264%2090.4053%20187.175%2090.396%20187.063%2090.396C186.951%2090.3867%20186.872%2090.382%20186.825%2090.382C186.377%2090.382%20186.004%2090.4893%20185.705%2090.704C185.407%2090.9187%20185.257%2091.292%20185.257%2091.824V92.496H187.091V93.546H185.257V100H184.207ZM192.024%20100.168C191.314%20100.168%20190.67%20100%20190.092%2099.664C189.513%2099.3187%20189.051%2098.852%20188.706%2098.264C188.37%2097.6667%20188.202%2096.99%20188.202%2096.234C188.202%2095.4873%20188.37%2094.82%20188.706%2094.232C189.042%2093.644%20189.494%2093.182%20190.064%2092.846C190.642%2092.5007%20191.296%2092.328%20192.024%2092.328C192.752%2092.328%20193.4%2092.496%20193.97%2092.832C194.548%2093.168%20195.001%2093.63%20195.328%2094.218C195.664%2094.806%20195.832%2095.478%20195.832%2096.234C195.832%2096.9993%20195.659%2097.6807%20195.314%2098.278C194.968%2098.866%20194.506%2099.328%20193.928%2099.664C193.358%20100%20192.724%20100.168%20192.024%20100.168ZM192.024%2099.118C192.528%2099.118%20192.98%2098.992%20193.382%2098.74C193.792%2098.488%20194.114%2098.1427%20194.348%2097.704C194.59%2097.2653%20194.712%2096.7753%20194.712%2096.234C194.712%2095.6927%20194.59%2095.2073%20194.348%2094.778C194.114%2094.3487%20193.792%2094.008%20193.382%2093.756C192.98%2093.504%20192.528%2093.378%20192.024%2093.378C191.52%2093.378%20191.062%2093.504%20190.652%2093.756C190.25%2094.008%20189.928%2094.3487%20189.686%2094.778C189.443%2095.2073%20189.322%2095.6927%20189.322%2096.234C189.322%2096.7753%20189.443%2097.2653%20189.686%2097.704C189.928%2098.1427%20190.25%2098.488%20190.652%2098.74C191.062%2098.992%20191.52%2099.118%20192.024%2099.118ZM200.343%20100.168C199.821%20100.168%20199.345%20100.047%20198.915%2099.804C198.486%2099.552%20198.145%2099.2067%20197.893%2098.768C197.651%2098.32%20197.529%2097.8067%20197.529%2097.228V92.496H198.579V97.102C198.579%2097.5033%20198.659%2097.858%20198.817%2098.166C198.985%2098.4647%20199.214%2098.698%20199.503%2098.866C199.802%2099.034%20200.143%2099.118%20200.525%2099.118C200.908%2099.118%20201.249%2099.034%20201.547%2098.866C201.846%2098.6887%20202.079%2098.4413%20202.247%2098.124C202.415%2097.7973%20202.499%2097.41%20202.499%2096.962V92.496H203.549V100H202.499V98.544L202.737%2098.6C202.56%2099.0853%20202.257%2099.468%20201.827%2099.748C201.398%20100.028%20200.903%20100.168%20200.343%20100.168ZM205.709%20100V92.496H206.759V93.952L206.521%2093.896C206.708%2093.4107%20207.011%2093.028%20207.431%2092.748C207.86%2092.468%20208.355%2092.328%20208.915%2092.328C209.447%2092.328%20209.923%2092.4493%20210.343%2092.692C210.772%2092.9347%20211.108%2093.2707%20211.351%2093.7C211.603%2094.12%20211.729%2094.596%20211.729%2095.128V100H210.679V95.534C210.679%2095.0767%20210.595%2094.6893%20210.427%2094.372C210.268%2094.0547%20210.04%2093.812%20209.741%2093.644C209.452%2093.4667%20209.116%2093.378%20208.733%2093.378C208.35%2093.378%20208.01%2093.4667%20207.711%2093.644C207.412%2093.812%20207.179%2094.0593%20207.011%2094.386C206.843%2094.7033%20206.759%2095.086%20206.759%2095.534V100H205.709ZM217.122%20100.168C216.422%20100.168%20215.792%20100%20215.232%2099.664C214.672%2099.3187%20214.229%2098.852%20213.902%2098.264C213.585%2097.6667%20213.426%2096.9947%20213.426%2096.248C213.426%2095.492%20213.585%2094.82%20213.902%2094.232C214.229%2093.644%20214.668%2093.182%20215.218%2092.846C215.778%2092.5007%20216.413%2092.328%20217.122%2092.328C217.766%2092.328%20218.34%2092.468%20218.844%2092.748C219.348%2093.028%20219.745%2093.406%20220.034%2093.882L219.866%2094.176V89.402H220.916V100H219.866V98.32L220.034%2098.474C219.773%2099.0153%20219.381%2099.4353%20218.858%2099.734C218.345%20100.023%20217.766%20100.168%20217.122%20100.168ZM217.178%2099.118C217.682%2099.118%20218.135%2098.992%20218.536%2098.74C218.947%2098.488%20219.269%2098.1473%20219.502%2097.718C219.745%2097.2793%20219.866%2096.7893%20219.866%2096.248C219.866%2095.7067%20219.745%2095.2213%20219.502%2094.792C219.269%2094.3533%20218.947%2094.008%20218.536%2093.756C218.135%2093.504%20217.682%2093.378%20217.178%2093.378C216.684%2093.378%20216.236%2093.504%20215.834%2093.756C215.433%2094.008%20215.116%2094.3487%20214.882%2094.778C214.658%2095.2073%20214.546%2095.6973%20214.546%2096.248C214.546%2096.7893%20214.658%2097.2793%20214.882%2097.718C215.116%2098.1473%20215.428%2098.488%20215.82%2098.74C216.222%2098.992%20216.674%2099.118%20217.178%2099.118ZM226.488%20100.168C225.788%20100.168%20225.153%20100%20224.584%2099.664C224.024%2099.3187%20223.581%2098.8473%20223.254%2098.25C222.927%2097.6527%20222.764%2096.976%20222.764%2096.22C222.764%2095.464%20222.923%2094.7967%20223.24%2094.218C223.557%2093.63%20223.987%2093.168%20224.528%2092.832C225.079%2092.496%20225.695%2092.328%20226.376%2092.328C226.917%2092.328%20227.398%2092.4307%20227.818%2092.636C228.247%2092.832%20228.611%2093.1027%20228.91%2093.448C229.209%2093.784%20229.437%2094.1667%20229.596%2094.596C229.755%2095.016%20229.834%2095.45%20229.834%2095.898C229.834%2095.9913%20229.829%2096.0987%20229.82%2096.22C229.811%2096.332%20229.797%2096.4487%20229.778%2096.57H223.436V95.59H229.176L228.672%2096.01C228.756%2095.4967%20228.695%2095.0393%20228.49%2094.638C228.294%2094.2273%20228.009%2093.9053%20227.636%2093.672C227.263%2093.4293%20226.843%2093.308%20226.376%2093.308C225.909%2093.308%20225.475%2093.4293%20225.074%2093.672C224.682%2093.9147%20224.374%2094.2553%20224.15%2094.694C223.926%2095.1233%20223.837%2095.6367%20223.884%2096.234C223.837%2096.8313%20223.931%2097.354%20224.164%2097.802C224.407%2098.2407%20224.733%2098.5813%20225.144%2098.824C225.564%2099.0667%20226.012%2099.188%20226.488%2099.188C227.039%2099.188%20227.501%2099.0573%20227.874%2098.796C228.247%2098.5347%20228.551%2098.208%20228.784%2097.816L229.68%2098.292C229.531%2098.628%20229.302%2098.9407%20228.994%2099.23C228.686%2099.51%20228.317%2099.7387%20227.888%2099.916C227.468%20100.084%20227.001%20100.168%20226.488%20100.168ZM231.685%20100V92.496H232.735V93.728L232.595%2093.546C232.773%2093.1913%20233.039%2092.9113%20233.393%2092.706C233.757%2092.5007%20234.196%2092.398%20234.709%2092.398H235.185V93.448H234.527C233.986%2093.448%20233.552%2093.616%20233.225%2093.952C232.899%2094.288%20232.735%2094.764%20232.735%2095.38V100H231.685Z'%20fill='%23181918'/%3e%3ccircle%20cx='243.5'%20cy='94'%20r='2.5'%20fill='%23181918'/%3e%3cpath%20d='M256.992%20100.168C256.255%20100.168%20255.578%20100.037%20254.962%2099.776C254.346%2099.5053%20253.809%2099.132%20253.352%2098.656C252.904%2098.1707%20252.554%2097.6013%20252.302%2096.948C252.05%2096.2947%20251.924%2095.576%20251.924%2094.792C251.924%2094.008%20252.05%2093.2893%20252.302%2092.636C252.554%2091.9827%20252.904%2091.4133%20253.352%2090.928C253.809%2090.4427%20254.346%2090.0693%20254.962%2089.808C255.578%2089.5373%20256.255%2089.402%20256.992%2089.402C257.701%2089.402%20258.336%2089.528%20258.896%2089.78C259.465%2090.032%20259.941%2090.3587%20260.324%2090.76C260.716%2091.152%20260.996%2091.5673%20261.164%2092.006L260.156%2092.496C259.895%2091.8613%20259.493%2091.362%20258.952%2090.998C258.411%2090.634%20257.757%2090.452%20256.992%2090.452C256.227%2090.452%20255.545%2090.634%20254.948%2090.998C254.351%2091.362%20253.884%2091.8707%20253.548%2092.524C253.212%2093.168%20253.044%2093.924%20253.044%2094.792C253.044%2095.6507%20253.212%2096.4067%20253.548%2097.06C253.884%2097.7133%20254.351%2098.222%20254.948%2098.586C255.545%2098.9407%20256.227%2099.118%20256.992%2099.118C257.673%2099.118%20258.285%2098.9687%20258.826%2098.67C259.377%2098.3713%20259.811%2097.9653%20260.128%2097.452C260.445%2096.9293%20260.604%2096.332%20260.604%2095.66V95.086L261.108%2095.59H256.992V94.61H261.724V95.478C261.724%2096.1593%20261.603%2096.7893%20261.36%2097.368C261.117%2097.9373%20260.781%2098.432%20260.352%2098.852C259.923%2099.272%20259.419%2099.5987%20258.84%2099.832C258.271%20100.056%20257.655%20100.168%20256.992%20100.168ZM263.576%20100V89.402H264.626V100H263.576ZM270.289%20100.168C269.58%20100.168%20268.936%20100%20268.357%2099.664C267.779%2099.3187%20267.317%2098.852%20266.971%2098.264C266.635%2097.6667%20266.467%2096.99%20266.467%2096.234C266.467%2095.4873%20266.635%2094.82%20266.971%2094.232C267.307%2093.644%20267.76%2093.182%20268.329%2092.846C268.908%2092.5007%20269.561%2092.328%20270.289%2092.328C271.017%2092.328%20271.666%2092.496%20272.235%2092.832C272.814%2093.168%20273.267%2093.63%20273.593%2094.218C273.929%2094.806%20274.097%2095.478%20274.097%2096.234C274.097%2096.9993%20273.925%2097.6807%20273.579%2098.278C273.234%2098.866%20272.772%2099.328%20272.193%2099.664C271.624%20100%20270.989%20100.168%20270.289%20100.168ZM270.289%2099.118C270.793%2099.118%20271.246%2098.992%20271.647%2098.74C272.058%2098.488%20272.38%2098.1427%20272.613%2097.704C272.856%2097.2653%20272.977%2096.7753%20272.977%2096.234C272.977%2095.6927%20272.856%2095.2073%20272.613%2094.778C272.38%2094.3487%20272.058%2094.008%20271.647%2093.756C271.246%2093.504%20270.793%2093.378%20270.289%2093.378C269.785%2093.378%20269.328%2093.504%20268.917%2093.756C268.516%2094.008%20268.194%2094.3487%20267.951%2094.778C267.709%2095.2073%20267.587%2095.6927%20267.587%2096.234C267.587%2096.7753%20267.709%2097.2653%20267.951%2097.704C268.194%2098.1427%20268.516%2098.488%20268.917%2098.74C269.328%2098.992%20269.785%2099.118%20270.289%2099.118ZM279.743%20100.168C279.099%20100.168%20278.516%20100.023%20277.993%2099.734C277.48%2099.4353%20277.092%2099.0153%20276.831%2098.474L276.999%2098.32V100H275.949V89.402H276.999V94.176L276.831%2093.882C277.13%2093.406%20277.526%2093.028%20278.021%2092.748C278.525%2092.468%20279.099%2092.328%20279.743%2092.328C280.452%2092.328%20281.082%2092.5007%20281.633%2092.846C282.193%2093.182%20282.632%2093.644%20282.949%2094.232C283.276%2094.82%20283.439%2095.492%20283.439%2096.248C283.439%2096.9947%20283.276%2097.6667%20282.949%2098.264C282.632%2098.852%20282.193%2099.3187%20281.633%2099.664C281.082%20100%20280.452%20100.168%20279.743%20100.168ZM279.687%2099.118C280.191%2099.118%20280.639%2098.992%20281.031%2098.74C281.432%2098.488%20281.745%2098.1473%20281.969%2097.718C282.202%2097.2793%20282.319%2096.7893%20282.319%2096.248C282.319%2095.6973%20282.202%2095.2073%20281.969%2094.778C281.745%2094.3487%20281.432%2094.008%20281.031%2093.756C280.639%2093.504%20280.191%2093.378%20279.687%2093.378C279.183%2093.378%20278.726%2093.504%20278.315%2093.756C277.914%2094.008%20277.592%2094.3533%20277.349%2094.792C277.116%2095.2213%20276.999%2095.7067%20276.999%2096.248C276.999%2096.7893%20277.116%2097.2793%20277.349%2097.718C277.592%2098.1473%20277.914%2098.488%20278.315%2098.74C278.726%2098.992%20279.183%2099.118%20279.687%2099.118ZM287.457%20100.168C286.981%20100.168%20286.556%20100.079%20286.183%2099.902C285.81%2099.7153%20285.516%2099.4633%20285.301%2099.146C285.086%2098.8287%20284.979%2098.4647%20284.979%2098.054C284.979%2097.662%20285.063%2097.3073%20285.231%2096.99C285.399%2096.6633%20285.66%2096.388%20286.015%2096.164C286.37%2095.94%20286.822%2095.7813%20287.373%2095.688L290.313%2095.198V96.15L287.625%2096.598C287.084%2096.6913%20286.692%2096.864%20286.449%2097.116C286.216%2097.368%20286.099%2097.6667%20286.099%2098.012C286.099%2098.348%20286.23%2098.6327%20286.491%2098.866C286.762%2099.0993%20287.107%2099.216%20287.527%2099.216C288.04%2099.216%20288.488%2099.1087%20288.871%2098.894C289.254%2098.67%20289.552%2098.3713%20289.767%2097.998C289.982%2097.6247%20290.089%2097.2093%20290.089%2096.752V94.848C290.089%2094.4%20289.926%2094.036%20289.599%2093.756C289.272%2093.476%20288.848%2093.336%20288.325%2093.336C287.868%2093.336%20287.466%2093.4527%20287.121%2093.686C286.776%2093.91%20286.519%2094.204%20286.351%2094.568L285.399%2094.05C285.539%2093.7327%20285.758%2093.4433%20286.057%2093.182C286.365%2092.9207%20286.715%2092.7153%20287.107%2092.566C287.499%2092.4073%20287.905%2092.328%20288.325%2092.328C288.876%2092.328%20289.361%2092.4353%20289.781%2092.65C290.21%2092.8647%20290.542%2093.1633%20290.775%2093.546C291.018%2093.9193%20291.139%2094.3533%20291.139%2094.848V100H290.089V98.502L290.243%2098.656C290.112%2098.936%20289.907%2099.1927%20289.627%2099.426C289.356%2099.65%20289.034%2099.832%20288.661%2099.972C288.297%20100.103%20287.896%20100.168%20287.457%20100.168ZM293.299%20100V89.402H294.349V100H293.299ZM297.953%20100L301.761%2089.57H302.965L306.773%20100H305.597L304.701%2097.452H300.039L299.129%20100H297.953ZM300.403%2096.402H304.309L302.195%2090.41H302.531L300.403%2096.402ZM311.124%20100.168C310.424%20100.168%20309.794%20100%20309.234%2099.664C308.674%2099.3187%20308.231%2098.852%20307.904%2098.264C307.587%2097.6667%20307.428%2096.9947%20307.428%2096.248C307.428%2095.492%20307.587%2094.82%20307.904%2094.232C308.231%2093.644%20308.67%2093.182%20309.22%2092.846C309.78%2092.5007%20310.415%2092.328%20311.124%2092.328C311.768%2092.328%20312.342%2092.468%20312.846%2092.748C313.35%2093.028%20313.747%2093.406%20314.036%2093.882L313.868%2094.176V89.402H314.918V100H313.868V98.32L314.036%2098.474C313.775%2099.0153%20313.383%2099.4353%20312.86%2099.734C312.347%20100.023%20311.768%20100.168%20311.124%20100.168ZM311.18%2099.118C311.684%2099.118%20312.137%2098.992%20312.538%2098.74C312.949%2098.488%20313.271%2098.1473%20313.504%2097.718C313.747%2097.2793%20313.868%2096.7893%20313.868%2096.248C313.868%2095.7067%20313.747%2095.2213%20313.504%2094.792C313.271%2094.3533%20312.949%2094.008%20312.538%2093.756C312.137%2093.504%20311.684%2093.378%20311.18%2093.378C310.686%2093.378%20310.238%2093.504%20309.836%2093.756C309.435%2094.008%20309.118%2094.3487%20308.884%2094.778C308.66%2095.2073%20308.548%2095.6973%20308.548%2096.248C308.548%2096.7893%20308.66%2097.2793%20308.884%2097.718C309.118%2098.1473%20309.43%2098.488%20309.822%2098.74C310.224%2098.992%20310.676%2099.118%20311.18%2099.118ZM317.074%20100V92.496H318.124V93.924L317.956%2093.714C318.161%2093.2753%20318.465%2092.9347%20318.866%2092.692C319.277%2092.4493%20319.725%2092.328%20320.21%2092.328C320.789%2092.328%20321.311%2092.4913%20321.778%2092.818C322.245%2093.1447%20322.576%2093.5693%20322.772%2094.092L322.478%2094.106C322.665%2093.5273%20322.987%2093.0887%20323.444%2092.79C323.911%2092.482%20324.424%2092.328%20324.984%2092.328C325.488%2092.328%20325.95%2092.4493%20326.37%2092.692C326.799%2092.9347%20327.14%2093.2707%20327.392%2093.7C327.653%2094.12%20327.784%2094.596%20327.784%2095.128V100H326.734V95.534C326.734%2095.0767%20326.65%2094.6893%20326.482%2094.372C326.323%2094.0547%20326.104%2093.812%20325.824%2093.644C325.544%2093.4667%20325.222%2093.378%20324.858%2093.378C324.503%2093.378%20324.181%2093.4667%20323.892%2093.644C323.603%2093.812%20323.374%2094.0593%20323.206%2094.386C323.038%2094.7033%20322.954%2095.086%20322.954%2095.534V100H321.904V95.534C321.904%2095.0767%20321.82%2094.6893%20321.652%2094.372C321.493%2094.0547%20321.274%2093.812%20320.994%2093.644C320.714%2093.4667%20320.392%2093.378%20320.028%2093.378C319.664%2093.378%20319.337%2093.4667%20319.048%2093.644C318.768%2093.812%20318.544%2094.0593%20318.376%2094.386C318.208%2094.7033%20318.124%2095.086%20318.124%2095.534V100H317.074ZM329.789%20100V92.496H330.839V100H329.789ZM329.789%2091.11V89.57H330.839V91.11H329.789ZM332.988%20100V92.496H334.038V93.952L333.8%2093.896C333.987%2093.4107%20334.29%2093.028%20334.71%2092.748C335.139%2092.468%20335.634%2092.328%20336.194%2092.328C336.726%2092.328%20337.202%2092.4493%20337.622%2092.692C338.051%2092.9347%20338.387%2093.2707%20338.63%2093.7C338.882%2094.12%20339.008%2094.596%20339.008%2095.128V100H337.958V95.534C337.958%2095.0767%20337.874%2094.6893%20337.706%2094.372C337.547%2094.0547%20337.319%2093.812%20337.02%2093.644C336.731%2093.4667%20336.395%2093.378%20336.012%2093.378C335.629%2093.378%20335.289%2093.4667%20334.99%2093.644C334.691%2093.812%20334.458%2094.0593%20334.29%2094.386C334.122%2094.7033%20334.038%2095.086%20334.038%2095.534V100H332.988Z'%20fill='%23181918'/%3e%3c/g%3e%3cmask%20id='path-17-inside-1_683_56525'%20fill='white'%3e%3cpath%20d='M0%2031C0%2022.1634%207.16344%2015%2016%2015H330C338.837%2015%20346%2022.1634%20346%2031V114C346%20122.837%20338.837%20130%20330%20130H16C7.16344%20130%200%20122.837%200%20114V31Z'/%3e%3c/mask%3e%3cpath%20d='M0%2031C0%2022.1634%207.16344%2015%2016%2015H330C338.837%2015%20346%2022.1634%20346%2031V114C346%20122.837%20338.837%20130%20330%20130H16C7.16344%20130%200%20122.837%200%20114V31Z'%20fill='%23FDFDFD'/%3e%3cpath%20d='M-0.5%2031C-0.5%2021.8873%206.8873%2014.5%2016%2014.5H329.5C338.613%2014.5%20346%2021.8873%20346%2031C346%2022.4396%20338.837%2015.5%20330%2015.5H16C7.43959%2015.5%200.5%2022.4396%200.5%2031H-0.5ZM0.5%2031M346%20130H0H346M16%20130C6.8873%20130%20-0.5%20122.613%20-0.5%20113.5V31C-0.5%2021.8873%206.8873%2014.5%2016%2014.5V15.5C7.43959%2015.5%200.5%2022.4396%200.5%2031V114C0.5%20122.837%207.43959%20130%2016%20130ZM16%20130M346%2015V130V15'%20fill='url(%23paint2_linear_683_56525)'%20mask='url(%23path-17-inside-1_683_56525)'/%3e%3cdefs%3e%3clinearGradient%20id='paint0_linear_683_56525'%20x1='59'%20y1='49'%20x2='286'%20y2='98'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%232B2A2A'/%3e%3cstop%20offset='1'%20stop-color='white'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint1_linear_683_56525'%20x1='78.362'%20y1='49.1226'%20x2='284.411'%20y2='82.1461'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%232B2A2A'/%3e%3cstop%20offset='1'%20stop-color='white'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint2_linear_683_56525'%20x1='-5.20861e-07'%20y1='-8.5'%20x2='70.9255'%20y2='193.231'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%238E3530'/%3e%3cstop%20offset='0.575999'%20stop-color='white'/%3e%3c/linearGradient%3e%3c/defs%3e%3c/svg%3e\"","import React from 'react';\nimport { Avatar } from 'antd';\nimport cardBorderSvg from '../../assets/card-border.svg';\n\nexport interface UserCardProps {\n name: string;\n email: string;\n role?: string;\n avatar?: string;\n className?: string;\n}\n\nexport const UserCard: React.FC<UserCardProps> = ({\n name,\n email,\n role,\n avatar,\n className = '',\n}) => {\n return (\n <div\n style={{\n boxShadow: '0px -8px 30px rgba(236, 97, 91, 0.1)',\n borderRadius: '16px',\n background:\n 'linear-gradient(to bottom, rgba(236, 97, 91, 0.05) 0%, rgba(255, 255, 255, 0) 50%)',\n }}\n className=\"relative min-h-[120px] pt-8 pb-4 pl-4 pr-4\"\n >\n <img\n src={cardBorderSvg}\n alt=\"img-bg\"\n style={{\n position: 'absolute',\n top: -8,\n left: 0,\n objectFit: 'cover',\n }}\n />\n <div\n className={`flex gap-4 items-center relative ${className}`}\n style={{\n position: 'relative',\n }}\n >\n {avatar ? (\n <Avatar src={avatar} size={80} />\n ) : (\n <Avatar\n size={80}\n style={{ backgroundColor: '#181918', fontSize: '32px', fontWeight: 600 }}\n >\n {name\n .split(' ')\n .map((n) => n[0])\n .join('')\n .toUpperCase()}\n </Avatar>\n )}\n <div className=\"flex flex-col\">\n <span\n style={{\n color: '#181918',\n fontSize: '16px',\n fontWeight: 600,\n lineHeight: '1.3',\n }}\n >\n {name}\n </span>\n <span\n style={{\n color: '#181918',\n fontSize: '14px',\n fontWeight: 400,\n lineHeight: '1.4',\n marginTop: '4px',\n }}\n >\n {email}\n </span>\n {role && (\n <span\n style={{\n color: '#181918',\n fontSize: '14px',\n fontWeight: 400,\n lineHeight: '1.4',\n marginTop: '2px',\n }}\n >\n {role}\n </span>\n )}\n </div>\n </div>\n </div>\n );\n};\n","import React from 'react';\nimport { Select } from 'antd';\nimport type { SelectProps } from 'antd';\n\nexport interface Country {\n code: string;\n name: string;\n flag: string;\n}\n\nexport interface CountrySelectorProps extends Omit<SelectProps, 'options'> {\n countries?: Country[];\n defaultCountry?: string;\n onCountryChange?: (countryCode: string) => void;\n showSearch?: boolean;\n}\n\nconst defaultCountries: Country[] = [\n { code: 'NG', name: 'Nigeria', flag: '/images/flags/NG.svg' },\n { code: 'US', name: 'United States', flag: '/images/flags/US.svg' },\n { code: 'GB', name: 'United Kingdom', flag: '/images/flags/GB.svg' },\n { code: 'GH', name: 'Ghana', flag: '/images/flags/GH.svg' },\n { code: 'KE', name: 'Kenya', flag: '/images/flags/KE.svg' },\n { code: 'ZA', name: 'South Africa', flag: '/images/flags/ZA.svg' },\n];\n\nexport const CountrySelector: React.FC<CountrySelectorProps> = ({\n countries = defaultCountries,\n defaultCountry = 'NG',\n onCountryChange,\n showSearch = false,\n className = '',\n ...props\n}) => {\n const handleChange = (value: string) => {\n if (onCountryChange) {\n onCountryChange(value);\n }\n };\n\n const renderFlag = (flag: string) => {\n return (\n <img\n src={flag}\n alt=\"flag\"\n className=\"w-7 h-7 rounded-full object-cover\"\n style={{ width: '28px', height: '28px' }}\n />\n );\n };\n\n const options = countries.map((country) => ({\n value: country.code,\n label: (\n <div className=\"flex items-center gap-2\">\n {renderFlag(country.flag)}\n <span>{country.code}</span>\n </div>\n ),\n // Add searchable text for filtering\n searchLabel: `${country.name} ${country.code}`.toLowerCase(),\n }));\n\n // Custom filter function for searching\n const handleFilter = (input: string, option: any) => {\n return option?.searchLabel?.includes(input.toLowerCase()) || false;\n };\n\n return (\n <>\n <style>\n {`\n .country-selector.ant-select {\n min-width: 90px;\n heigh: 40px;\n border-radius: 20px;\n padding: 5px !important;\n background: #EEEEEE;\n }\n\n .country-selector .ant-select-selector {\n border-radius: 20px !important;\n border: 1px solid #E5E7EB !important;\n height: 40px !important;\n display: flex;\n align-items: center;\n background: #FFFFFF !important;\n }\n\n .country-selector .ant-select-selection-item {\n display: flex;\n align-items: center;\n gap: 8px;\n font-weight: 500;\n color: #000000;\n }\n\n .country-selector:hover .ant-select-selector {\n border-color: #D1D5DB !important;\n }\n\n .country-selector.ant-select-focused .ant-select-selector {\n border-color: #EC615B !important;\n box-shadow: 0 0 0 2px rgba(236, 97, 91, 0.1) !important;\n }\n\n .country-selector .ant-select-arrow {\n color: #6B7280;\n }\n\n .country-selector .ant-select-dropdown {\n border-radius: 12px !important;\n }\n `}\n </style>\n <Select\n className={`country-selector ${className}`}\n defaultValue={defaultCountry}\n onChange={handleChange}\n options={options}\n showSearch={showSearch}\n filterOption={handleFilter}\n placeholder=\"Search country...\"\n suffixIcon={\n <svg width=\"12\" height=\"8\" viewBox=\"0 0 12 8\" fill=\"none\">\n <path\n d=\"M1 1.5L6 6.5L11 1.5\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n }\n {...props}\n />\n </>\n );\n};\n","import React from 'react';\nimport { Dropdown } from 'antd';\nimport type { MenuProps } from 'antd';\n\nexport interface UserProfileDropdownProps {\n name: string;\n role?: string;\n avatarUrl?: string;\n menuItems?: MenuProps['items'];\n onMenuClick?: (key: string) => void;\n className?: string;\n width?: string | number;\n}\n\nexport const UserProfileDropdown: React.FC<UserProfileDropdownProps> = ({\n name,\n role,\n avatarUrl,\n menuItems,\n onMenuClick,\n className = '',\n width,\n}) => {\n const defaultMenuItems: MenuProps['items'] = [\n {\n key: 'profile',\n label: 'My Profile',\n },\n {\n key: 'settings',\n label: 'Settings',\n },\n {\n type: 'divider',\n },\n {\n key: 'logout',\n label: 'Logout',\n danger: true,\n },\n ];\n\n const handleMenuClick: MenuProps['onClick'] = ({ key }) => {\n if (onMenuClick) {\n onMenuClick(key);\n }\n };\n\n const getInitials = (name: string) => {\n const parts = name.split(' ');\n if (parts.length >= 2) {\n return `${parts[0][0]}${parts[1][0]}`.toUpperCase();\n }\n return name.substring(0, 2).toUpperCase();\n };\n\n return (\n <>\n <style>\n {`\n .user-profile-dropdown {\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 5px;\n border-radius: 50px;\n background: #EEEEEE;\n border: 1px solid #E6E6E6;\n transition: background-color 0.2s;\n }\n\n .user-profile-dropdown:hover {\n background-color: #E5E5E5;\n }\n\n .user-profile-avatar {\n width: 30px;\n height: 30px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n font-weight: 600;\n font-size: 14px;\n color: #FFFFFF;\n background: linear-gradient(135deg, #EC615B 0%, #F59E95 100%);\n flex-shrink: 0;\n overflow: hidden;\n }\n\n .user-profile-avatar img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n\n .user-profile-info {\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: 2px;\n min-width: 0;\n }\n\n .user-profile-name {\n font-weight: 700;\n font-size: 14px;\n color: #000000;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n line-height: 1.2;\n }\n\n .user-profile-role {\n font-size: 12px;\n color: #666666;\n font-weight: 400;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n line-height: 1.2;\n }\n\n .user-profile-dropdown-icon {\n color: #000000;\n flex-shrink: 0;\n transition: transform 0.2s;\n margin-left: auto;\n }\n\n .user-profile-dropdown[aria-expanded=\"true\"] .user-profile-dropdown-icon {\n transform: rotate(180deg);\n }\n `}\n </style>\n <Dropdown\n menu={{\n items: menuItems || defaultMenuItems,\n onClick: handleMenuClick,\n }}\n trigger={['click']}\n placement=\"bottomRight\"\n >\n <div\n className={`user-profile-dropdown ${className}`}\n style={{ width: typeof width === 'number' ? `${width}px` : width }}\n >\n <div className=\"user-profile-avatar\">\n {avatarUrl ? <img src={avatarUrl} alt={name} /> : getInitials(name)}\n </div>\n <div className=\"user-profile-info\">\n <div className=\"user-profile-name\">{name}</div>\n {role && <div className=\"user-profile-role\">{role}</div>}\n </div>\n <svg\n className=\"user-profile-dropdown-icon\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n >\n <path\n d=\"M6 9L12 15L18 9\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </div>\n </Dropdown>\n </>\n );\n};\n","import React from 'react';\n\nexport interface ActionCardProps {\n label: string;\n icon: React.ReactNode;\n iconColor?: 'red' | 'blue' | 'green' | 'purple' | 'orange' | 'yellow';\n onClick?: () => void;\n disabled?: boolean;\n className?: string;\n}\n\nexport const ActionCard: React.FC<ActionCardProps> = ({\n label,\n icon,\n iconColor = 'blue',\n onClick,\n disabled = false,\n className = '',\n}) => {\n const colorStyles = {\n red: {\n background: '#FFEAE8',\n color: '#EC615B',\n },\n blue: {\n background: '#E8F4FD',\n color: '#4A9FD8',\n },\n green: {\n background: '#E8F8F0',\n color: '#5FB894',\n },\n purple: {\n background: '#F3E8FD',\n color: '#9B59D8',\n },\n orange: {\n background: '#FFF3E8',\n color: '#F59E42',\n },\n yellow: {\n background: '#FFFBE8',\n color: '#F5D742',\n },\n };\n\n const currentColor = colorStyles[iconColor];\n\n return (\n <button\n className={`bg-[#FDFDFD] border border-[#E6E6E6] rounded-[14px] px-[18px] py-2.5 flex items-center gap-4 cursor-pointer transition-all duration-300 ease-in-out w-full h-[60px] hover:border-gray-300 hover:-translate-y-1 active:translate-y-0 disabled:opacity-50 disabled:cursor-not-allowed disabled:hover:border-[#E6E6E6] disabled:hover:translate-y-0 ${className}`}\n style={{\n boxShadow: '0 0 0 0 rgba(0, 0, 0, 0)',\n transition: 'all 0.3s ease-in-out',\n }}\n onMouseEnter={(e) => {\n if (!disabled) {\n e.currentTarget.style.boxShadow = '0 0 16px 0 rgba(0, 0, 0, 0.08)';\n }\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.boxShadow = '0 0 0 0 rgba(0, 0, 0, 0)';\n }}\n onClick={onClick}\n disabled={disabled}\n >\n <div\n className=\"w-10 h-10 rounded-full flex items-center justify-center shrink-0 [&>svg]:w-6 [&>svg]:h-6 transition-transform duration-300 ease-in-out\"\n style={{\n backgroundColor: currentColor.background,\n color: currentColor.color,\n }}\n >\n {icon}\n </div>\n <div className=\"text-sm font-medium text-[#181918] transition-colors duration-200\">{label}</div>\n </button>\n );\n};\n","import React, { useState } from 'react';\n\nexport interface DashboardCardProps {\n label: string;\n value: string | number;\n icon?: React.ReactNode;\n showVisibilityToggle?: boolean;\n onVisibilityToggle?: () => void;\n valuePrefix?: string;\n ledgerBalance?: string | number;\n backgroundPattern?: 'wave' | 'grid' | 'none';\n width?: string | number;\n className?: string;\n}\n\nexport const DashboardCard: React.FC<DashboardCardProps> = ({\n label,\n value,\n icon,\n showVisibilityToggle = true,\n onVisibilityToggle,\n valuePrefix = '₦',\n ledgerBalance,\n backgroundPattern = 'wave',\n width = 348,\n className = '',\n}) => {\n const [isVisible, setIsVisible] = useState(true);\n\n const handleToggleVisibility = () => {\n setIsVisible(!isVisible);\n if (onVisibilityToggle) {\n onVisibilityToggle();\n }\n };\n const defaultIcon = (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <rect x=\"3\" y=\"6\" width=\"18\" height=\"12\" rx=\"2\" stroke=\"currentColor\" strokeWidth=\"2\" />\n <path d=\"M3 10h18M7 14h4\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n </svg>\n );\n\n return (\n <>\n <style>\n {`\n .dashboard-card-bg {\n background: radial-gradient(circle at 50% 136%, #7A7F7A 0%, #181918 100%);\n }\n\n .dashboard-card-pattern {\n background-image: url('/images/card-pattern.svg');\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n }\n `}\n </style>\n <div\n className={`dashboard-card-bg relative overflow-hidden min-h-[160px] flex flex-col justify-between rounded-[20px] px-[22px] pt-3 pb-1 transition-all duration-300 ease-in-out hover:-translate-y-1 cursor-pointer ${className}`}\n style={{\n width: typeof width === 'number' ? `${width}px` : width,\n boxShadow: '0 0 0 0 rgba(0, 0, 0, 0)',\n transition: 'all 0.3s ease-in-out',\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.boxShadow = '0 0 24px 0 rgba(0, 0, 0, 0.15)';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.boxShadow = '0 0 0 0 rgba(0, 0, 0, 0)';\n }}\n >\n {backgroundPattern !== 'none' && (\n <div className=\"dashboard-card-pattern absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-full h-full pointer-events-none transition-opacity duration-300\" />\n )}\n <div className=\"relative z-10\">\n <div className=\"flex items-center justify-between mb-4\">\n <div className=\"w-10 h-10 bg-[#616161] rounded-full flex items-center justify-center text-white transition-transform duration-300 ease-in-out hover:scale-110\">\n {icon || defaultIcon}\n </div>\n </div>\n <div className=\"flex items-center gap-2 mt-3\">\n <span className=\"text-sm text-[#E6E6E6] font-light transition-colors duration-200\">{label}</span>\n {showVisibilityToggle && (\n <button\n className=\"bg-transparent border-none cursor-pointer p-1 flex items-center justify-center text-white hover:text-white/80 transition-colors duration-200\"\n onClick={handleToggleVisibility}\n aria-label=\"Toggle visibility\"\n >\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M1.61342 8.47806C1.52262 8.3343 1.47723 8.26242 1.45182 8.15155C1.43273 8.06827 1.43273 7.93694 1.45182 7.85366C1.47723 7.74279 1.52262 7.67091 1.61341 7.52715C2.36369 6.33916 4.59693 3.33594 8.00027 3.33594C11.4036 3.33594 13.6369 6.33916 14.3871 7.52715C14.4779 7.67091 14.5233 7.74279 14.5487 7.85366C14.5678 7.93694 14.5678 8.06827 14.5487 8.15155C14.5233 8.26242 14.4779 8.3343 14.3871 8.47806C13.6369 9.66604 11.4036 12.6693 8.00027 12.6693C4.59693 12.6693 2.36369 9.66604 1.61342 8.47806Z\"\n stroke=\"currentColor\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M8.00027 10.0026C9.10484 10.0026 10.0003 9.10717 10.0003 8.0026C10.0003 6.89803 9.10484 6.0026 8.00027 6.0026C6.8957 6.0026 6.00027 6.89803 6.00027 8.0026C6.00027 9.10717 6.8957 10.0026 8.00027 10.0026Z\"\n stroke=\"currentColor\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </button>\n )}\n </div>\n <div className=\"text-[32px] font-bold text-white transition-all duration-200\">\n {isVisible ? `${valuePrefix} ${value}` : '****'}\n </div>\n {ledgerBalance && (\n <div className=\"mb-1\">\n <div className=\"w-full h-px bg-white/10 mb-2 transition-opacity duration-300\"></div>\n <div className=\"flex items-center gap-2 transition-all duration-200\">\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8.0026 13.3307H3.46927C2.72253 13.3307 2.34917 13.3307 2.06395 13.1854C1.81307 13.0576 1.60909 12.8536 1.48126 12.6027C1.33594 12.3175 1.33594 11.9441 1.33594 11.1974V4.7974C1.33594 4.05066 1.33594 3.67729 1.48126 3.39208C1.60909 3.14119 1.81307 2.93722 2.06395 2.80939C2.34917 2.66406 2.72253 2.66406 3.46927 2.66406H3.73594C5.22941 2.66406 5.97615 2.66406 6.54658 2.95471C7.04834 3.21037 7.45629 3.61832 7.71195 4.12009C8.0026 4.69052 8.0026 5.43726 8.0026 6.93073M8.0026 13.3307V6.93073M8.0026 13.3307H12.5359C13.2827 13.3307 13.656 13.3307 13.9413 13.1854C14.1921 13.0576 14.3961 12.8536 14.5239 12.6027C14.6693 12.3175 14.6693 11.9441 14.6693 11.1974V4.7974C14.6693 4.05066 14.6693 3.67729 14.5239 3.39208C14.3961 3.14119 14.1921 2.93722 13.9413 2.80939C13.656 2.66406 13.2827 2.66406 12.5359 2.66406H12.2693C10.7758 2.66406 10.0291 2.66406 9.45863 2.95471C8.95686 3.21037 8.54892 3.61832 8.29325 4.12009C8.0026 4.69052 8.0026 5.43726 8.0026 6.93073\"\n stroke=\"#EC615B\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n <span className=\"text-xs text-[#E6E6E6] font-light transition-all duration-200\">\n Ledger Balance {isVisible ? `${valuePrefix} ${ledgerBalance}` : '****'}\n </span>\n </div>\n </div>\n )}\n </div>\n </div>\n </>\n );\n};\n","import React from 'react';\n\nexport interface NotificationItem {\n id: string;\n title: string;\n description: string;\n timestamp: string;\n isNew?: boolean;\n icon?: React.ReactNode;\n iconBackgroundColor?: string;\n iconColor?: string;\n onClick?: () => void;\n}\n\nexport interface NotificationDropdownProps {\n title: string;\n count?: number;\n notifications: NotificationItem[];\n onViewMore?: () => void;\n className?: string;\n maxHeight?: string | number;\n}\n\nexport const NotificationDropdown: React.FC<NotificationDropdownProps> = ({\n count,\n notifications,\n onViewMore,\n className = '',\n maxHeight = 400,\n}) => {\n const defaultIcon = (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"10\" cy=\"10\" r=\"9\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M10 6v4M10 14h.01\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </svg>\n );\n\n return (\n <div\n className={`bg-white rounded-2xl shadow-lg border border-gray-100 overflow-hidden ${className}`}\n style={{ width: '380px' }}\n >\n {/* Tab Section */}\n <div className=\"flex items-center justify-between px-4 py-3 bg-gray-50\">\n <div className=\"flex items-center gap-2\">\n <span className=\"text-sm font-medium text-[#181918]\">Issues</span>\n {count !== undefined && (\n <span className=\"flex flex-col items-center justify-center h-[22px] w-[22px] bg-[#FAE5B7] text-[#6C4D0B] border border-[#EFAC18] text-[11px] font-medium px-2 py-0.5 rounded-full\">\n {count}\n </span>\n )}\n </div>\n {onViewMore && (\n <button\n onClick={onViewMore}\n className=\"text-xs text-[#EC615B] font-normal hover:text-[#EC615B] transition-colors duration-200\"\n >\n View More\n </button>\n )}\n </div>\n\n {/* Notifications List */}\n <div\n className=\"overflow-y-auto\"\n style={{ maxHeight: typeof maxHeight === 'number' ? `${maxHeight}px` : maxHeight }}\n >\n {notifications.length === 0 ? (\n <div className=\"px-4 py-16 flex flex-col items-center justify-center\">\n <img\n src=\"/images/empty-notification.svg\"\n alt=\"No notifications\"\n className=\"w-16 h-16 mb-4\"\n />\n <h4 className=\"text-sm font-medium text-[#181918] mb-1\">\n No issues available\n </h4>\n <p className=\"text-xs text-gray-500 font-light\">\n All recent activities will appear here\n </p>\n </div>\n ) : (\n notifications.map((notification) => (\n <div\n key={notification.id}\n onClick={notification.onClick}\n className=\"flex gap-3 px-4 py-3 border-b border-[#E6E6E6] hover:bg-[#FDEFEF] transition-colors duration-200 cursor-pointer\"\n >\n {/* Icon */}\n <div\n className=\"flex items-center justify-center h-10 w-10 rounded-full flex-shrink-0 [&>svg]:w-5 [&>svg]:h-5\"\n style={{\n backgroundColor: notification.iconBackgroundColor || '#FCE7E6',\n color: notification.iconColor || '#EC615B',\n }}\n >\n {notification.icon || defaultIcon}\n </div>\n\n {/* Content */}\n <div className=\"flex-1 min-w-0\">\n <h4 className=\"text-sm font-medium text-[#181918] mb-1\">{notification.title}</h4>\n <p className=\"text-xs text-[#181918] font-light line-clamp-2\">\n {notification.description}\n </p>\n </div>\n\n {/* Timestamp/Badge */}\n <div className=\"flex-shrink-0\">\n {notification.isNew ? (\n <span className=\"text-[#EC615B] text-xs font-medium px-2 py-1 rounded\">New</span>\n ) : (\n <span className=\"text-xs text-gray-400\">{notification.timestamp}</span>\n )}\n </div>\n </div>\n ))\n )}\n </div>\n </div>\n );\n};\n","import React from 'react';\nimport { Tabs } from 'antd';\n\nexport interface TabItem {\n key: string;\n label: string;\n children: React.ReactNode;\n}\n\nexport interface TabsComponentProps {\n items: TabItem[];\n defaultActiveKey?: string;\n activeKey?: string;\n onChange?: (activeKey: string) => void;\n className?: string;\n}\n\nexport const TabsComponent: React.FC<TabsComponentProps> = ({\n items,\n defaultActiveKey,\n activeKey,\n onChange,\n className = '',\n}) => {\n return (\n <div className={className}>\n <style>\n {`\n .custom-tabs .ant-tabs-nav {\n margin-bottom: 0 !important;\n }\n\n .custom-tabs .ant-tabs-nav::before {\n border-bottom: 1px solid #E6E6E6 !important;\n }\n\n .custom-tabs .ant-tabs-tab {\n padding: 10px 0 !important;\n margin-right: 20px !important;\n color: #181918 !important;\n font-size: 14px !important;\n font-weight: 400 !important;\n font-family: 'Plus Jakarta Sans', sans-serif !important;\n }\n\n .custom-tabs .ant-tabs-tab:hover {\n color: #EC615B !important;\n }\n\n .custom-tabs .ant-tabs-tab-active .ant-tabs-tab-btn {\n color: #EC615B !important;\n font-weight: 400 !important;\n }\n\n .custom-tabs .ant-tabs-ink-bar {\n background: #EC615B !important;\n height: 2px !important;\n }\n\n .custom-tabs .ant-tabs-tab-btn {\n transition: color 0.3s ease !important;\n }\n\n .custom-tabs .ant-tabs-content-holder {\n padding-top: 16px;\n }\n `}\n </style>\n <Tabs\n className=\"custom-tabs\"\n items={items}\n defaultActiveKey={defaultActiveKey}\n activeKey={activeKey}\n onChange={onChange}\n />\n </div>\n );\n};\n"],"names":["Button","variant","size","className","children","props","getSizeHeight","getVariantStyles","height","jsx","AntButton","e","_a","styles","StatCard","label","value","icon","iconBackgroundColor","iconColor","valuePrefix","progressText","badge","width","defaultIcon","jsxs","SearchInput","iconPosition","fullWidth","onIconClick","bgColor","borderColor","focusBorderColor","textColor","placeholderColor","rounded","style","containerBaseClasses","inputBaseClasses","sizeClasses","iconSizeClasses","roundedClasses","paddingWithIcon","widthClass","customStyles","placeholderClass","defaultBorderClass","defaultTextClass","defaultFocusClass","inputClassName","iconPositionClasses","defaultIconColor","hoverIconColor","defaultSearchIcon","Card","shadow","combinedClassName","AntCard","Dropdown","items","trigger","placement","overlayClassName","disabled","menuBgColor","menuItemHoverColor","dangerColor","isOpen","setIsOpen","useState","dropdownRef","useRef","useEffect","handleClickOutside","event","handleTriggerClick","handleTriggerMouseEnter","handleTriggerMouseLeave","handleMenuItemClick","item","placementClasses","animationClasses","itemSizeClasses","defaultHoverColor","defaultBorderColor","defaultDangerColor","hoverColorStyle","customHoverClass","customDangerStyle","dangerHoverBgStyle","finalBorderColor","itemStyle","Select","options","controlledValue","defaultValue","placeholder","onChange","allowClear","showSearch","searchPlaceholder","selectedBgColor","selectedTextColor","hoverBgColor","internalValue","setInternalValue","searchQuery","setSearchQuery","selectRef","searchInputRef","handleSelect","optionValue","handleClear","selectedOption","opt","filteredOptions","option","getTriggerStyles","getSelectedOptionStyles","ChevronIcon","ClearIcon","Table","columns","dataSource","rowKey","pagination","loading","onRow","bordered","striped","headerBgColor","headerTextColor","rowHoverColor","stripedRowColor","currentPage","setCurrentPage","pageSize","setPageSize","sizeConfig","currentSizeConfig","currentRoundedClass","getRowKey","record","index","getValue","dataIndex","obj","key","paginatedData","handlePageChange","page","handlePageSizeChange","newPageSize","column","idx","rowProps","stripedBg","hoverBg","colIdx","content","Pagination","current","total","onPageSizeChange","showSizeChanger","pageSizeOptions","showTotal","totalPages","startItem","endItem","getPageNumbers","pages","i","TableTop","title","description","onSearch","actions","filters","titleColor","descriptionColor","searchBgColor","searchBorderColor","searchFocusBorderColor","hideActionButtons","selectedActionButton","handleSearchChange","config","radiusClass","searchInputStyle","widthMap","Modal","open","onClose","footer","closable","maskClosable","centered","overlayColor","bodyClassName","headerClassName","maxHeight","isVisible","setIsVisible","isAnimating","setIsAnimating","effectiveWidth","modalStyle","headerStyle","overlayStyle","timer","handleEscape","handleMaskClick","handleModalClick","Badge","dot","variantClasses","dotSizeClasses","dotColorClasses","Steps","direction","finishColor","processColor","waitColor","errorColor","lineColor","getStepStatus","textSizeClasses","descriptionSizeClasses","renderIcon","status","getStatusClasses","isOutline","statusClasses","isLast","iconStyle","Progress","percent","showInfo","strokeColor","strokeWidth","format","successColor","exceptionColor","trackColor","clampedPercent","heightClasses","getStatusColor","getTrackColor","getStatusIcon","formatPercent","Checkbox","controlledChecked","defaultChecked","indeterminate","id","name","checkedColor","uncheckedColor","checkedBorderColor","internalChecked","setInternalChecked","isControlled","checked","handleChange","newChecked","isFilled","getCheckboxClasses","getCheckboxInlineStyles","getIconColor","getSizeClasses","getRoundedClasses","SelectedItemsList","onRemove","emptyMessage","itemClassName","sublabelColor","removeButtonColor","removeButtonHoverColor","roundedClass","defaultBgColor","defaultHoverBgColor","defaultTextColor","defaultSublabelColor","defaultRemoveButtonColor","defaultRemoveButtonHoverColor","finalBgColor","finalHoverBgColor","finalTextColor","finalSublabelColor","finalRemoveButtonColor","finalRemoveButtonHoverColor","Input","error","helperText","errorClass","AntInput","PasswordInput","OTPInput","length","onComplete","errorMessage","otp","setOtp","inputRefs","otpArray","filledOtp","val","newOtp","otpString","digit","handleKeyDown","handlePaste","pastedData","pastedArray","nextIndex","React","el","PhoneInput","countryCode","onCountryCodeChange","countryCodes","showCountryCodeDropdown","customFormat","displayValue","setDisplayValue","cleaned","formatted","formatPhoneNumber","input","cursorPosition","oldLength","diff","newCursorPosition","syntheticEvent","numericData","start","newCleaned","CurrencyInput","currencySymbol","formatAmount","externalValue","formatNumber","num","parts","integerPart","decimalPart","formattedInteger","unformatNumber","stringValue","inputValue","rawValue","IconContext","createContext","r","t","f","n","clsx","presetColors","round","splitColorStr","str","parseNum","match","numList","parseHSVorHSL","_","limitRange","max","mergedMax","FastColor","__publicField","matchFormat","matchPrefix","prefix","trimStr","presetColor","hsv","adjustGamma","raw","R","G","B","delta","l","amount","h","s","color","p","calc","rgba","background","bg","alpha","other","hex","rHex","gHex","bHex","aHex","rgb","clone","withoutPrefix","connectNum","index1","index2","_h","a","g","b","huePrime","chroma","secondComponent","lightnessModification","v","vv","hh","ff","q","cells","txt","hueStep","saturationStep","saturationStep2","brightnessStep1","brightnessStep2","lightColorCount","darkColorCount","darkColorMap","getHue","light","hue","getSaturation","saturation","generate","opts","patterns","pColor","c","blue","canUseDom","contains","root","node","APPEND_ORDER","APPEND_PRIORITY","MARK_KEY","containerCache","getMark","mark","getContainer","getOrder","prepend","findStyles","container","injectCSS","css","csp","priority","mergedOrder","isPrependQueue","styleNode","firstChild","existStyle","nodePriority","findExistNode","syncRealContainer","cachedRealContainer","placeholderStyle","parentNode","updateCSS","originOption","existNode","_b","_c","newNode","getRoot","ele","inShadow","getShadowRoot","warned","preWarningFns","preMessage","fn","warning","valid","message","finalMessage","msg","preMessageFn","note","resetWarned","call","method","warningOnce","noteOnce","camelCase","isIconDefinition","target","normalizeAttrs","attrs","acc","rootProps","child","getSecondaryColor","primaryColor","generateColor","normalizeTwoToneColors","twoToneColor","iconStyles","useInsertStyles","eleRef","prefixCls","layer","useContext","mergedStyleStr","shadowRoot","twoToneColorPalette","setTwoToneColors","secondaryColor","getTwoToneColors","IconBase","onClick","restProps","svgRef","colors","setTwoToneColor","ReactIcon","getTwoToneColor","_extends","source","Icon","ref","spin","rotate","tabIndex","rootClassName","Context","classString","iconTabIndex","svgStyle","UserOutlined","AntdIcon","UserOutlinedSvg","RefIcon","UserPill","subtitle","avatar","Avatar","cardBorderSvg","UserCard","email","role","defaultCountries","CountrySelector","countries","defaultCountry","onCountryChange","renderFlag","flag","country","handleFilter","Fragment","UserProfileDropdown","avatarUrl","menuItems","onMenuClick","defaultMenuItems","handleMenuClick","getInitials","ActionCard","currentColor","DashboardCard","showVisibilityToggle","onVisibilityToggle","ledgerBalance","backgroundPattern","handleToggleVisibility","NotificationDropdown","count","notifications","onViewMore","notification","TabsComponent","defaultActiveKey","activeKey","Tabs"],"mappings":"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","x_google_ignoreList":[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35]}
|
|
1
|
+
{"version":3,"file":"index.cjs","sources":["../src/components/Button/Button.tsx","../src/components/StatCard/StatCard.tsx","../src/components/SearchInput.tsx","../src/components/Card/Card.tsx","../src/components/Dropdown.tsx","../src/components/Select.tsx","../src/components/Table.tsx","../src/components/TableTop.tsx","../src/components/Modal.tsx","../src/components/Badge.tsx","../src/components/Steps.tsx","../src/components/Progress.tsx","../src/components/Checkbox.tsx","../src/components/SelectedItemsList.tsx","../src/components/Input/Input.tsx","../src/components/Input/PasswordInput.tsx","../src/components/Input/OTPInput.tsx","../src/components/Input/PhoneInput.tsx","../src/components/Input/CurrencyInput.tsx","../node_modules/@ant-design/icons/es/components/Context.js","../node_modules/clsx/dist/clsx.mjs","../node_modules/@ant-design/fast-color/es/presetColors.js","../node_modules/@ant-design/fast-color/es/FastColor.js","../node_modules/@ant-design/colors/es/generate.js","../node_modules/@ant-design/colors/es/presets.js","../node_modules/@rc-component/util/es/Dom/canUseDom.js","../node_modules/@rc-component/util/es/Dom/contains.js","../node_modules/@rc-component/util/es/Dom/dynamicCSS.js","../node_modules/@rc-component/util/es/Dom/shadow.js","../node_modules/@rc-component/util/es/warning.js","../node_modules/@ant-design/icons/es/utils.js","../node_modules/@ant-design/icons/es/components/IconBase.js","../node_modules/@ant-design/icons/es/components/twoTonePrimaryColor.js","../node_modules/@ant-design/icons/es/components/AntdIcon.js","../node_modules/@ant-design/icons-svg/es/asn/UserOutlined.js","../node_modules/@ant-design/icons/es/icons/UserOutlined.js","../src/components/UserPill/UserPill.tsx","../src/assets/card-border.svg","../src/components/UserCard/UserCard.tsx","../src/components/CountrySelector/CountrySelector.tsx","../src/components/UserProfileDropdown/UserProfileDropdown.tsx","../src/components/ActionCard/ActionCard.tsx","../src/components/DashboardCard/DashboardCard.tsx","../src/components/NotificationDropdown/NotificationDropdown.tsx","../src/components/TabsComponent/TabsComponent.tsx"],"sourcesContent":["import React from 'react';\nimport { Button as AntButton, ButtonProps as AntButtonProps } from 'antd';\n\nexport interface ButtonProps extends Omit<AntButtonProps, 'variant' | 'size'> {\n variant?: 'primary' | 'secondary' | 'outline' | 'ghost';\n size?: 'xsmall' | 'small' | 'medium' | 'large';\n}\n\nexport const Button: React.FC<ButtonProps> = ({\n variant = 'primary',\n size = 'large',\n className = '',\n children,\n ...props\n}) => {\n const getSizeHeight = () => {\n switch (size) {\n case 'xsmall':\n return '32px';\n case 'small':\n return '40px';\n case 'medium':\n return '48px';\n case 'large':\n return '52px';\n default:\n return '52px';\n }\n };\n\n const getVariantStyles = () => {\n const height = getSizeHeight();\n\n switch (variant) {\n case 'primary':\n return {\n backgroundColor: '#EC615B',\n borderColor: '#EC615B',\n color: '#FFFFFF',\n height,\n borderRadius: '8px',\n };\n case 'secondary':\n return {\n backgroundColor: '#6B7280',\n borderColor: '#6B7280',\n color: '#FFFFFF',\n height,\n borderRadius: '8px',\n };\n case 'outline':\n return {\n backgroundColor: 'transparent',\n borderColor: '#EC615B',\n color: '#EC615B',\n height,\n borderRadius: '8px',\n };\n case 'ghost':\n return {\n backgroundColor: '#EFF2F3',\n borderColor: '#EFF2F3',\n color: '#181918',\n height,\n borderRadius: '8px',\n };\n default:\n return {};\n }\n };\n\n const disabledStyles = props.disabled && variant === 'primary'\n ? {\n backgroundColor: '#F9CECC',\n borderColor: '#F9CECC',\n color: '#FFFFFF',\n cursor: 'not-allowed',\n opacity: 1,\n }\n : {};\n\n return (\n <>\n <style>\n {variant === 'primary' && `\n .ant-btn-default:disabled,\n .ant-btn-default:disabled:hover {\n background-color: #F9CECC !important;\n border-color: #F9CECC !important;\n color: #FFFFFF !important;\n cursor: not-allowed !important;\n opacity: 1 !important;\n }\n `}\n </style>\n <AntButton\n className={className}\n {...props}\n style={{\n ...getVariantStyles(),\n ...disabledStyles,\n ...props.style,\n }}\n onMouseEnter={(e) => {\n if (!props.disabled) {\n if (variant === 'primary') {\n (e.target as HTMLElement).style.backgroundColor = '#D8524D';\n } else if (variant === 'secondary') {\n (e.target as HTMLElement).style.backgroundColor = '#4B5563';\n } else if (variant === 'outline') {\n (e.target as HTMLElement).style.backgroundColor = '#F3F4F6';\n } else if (variant === 'ghost') {\n (e.target as HTMLElement).style.backgroundColor = '#E1E4E6';\n }\n }\n props.onMouseEnter?.(e as any);\n }}\n onMouseLeave={(e) => {\n if (!props.disabled) {\n const styles = getVariantStyles();\n (e.target as HTMLElement).style.backgroundColor = styles.backgroundColor || '';\n }\n props.onMouseLeave?.(e as any);\n }}\n >\n {children}\n </AntButton>\n </>\n );\n};\n","import React from 'react';\n\nexport interface StatCardProps {\n label: string;\n value: string | number;\n icon?: React.ReactNode;\n iconBackgroundColor?: string;\n iconColor?: string;\n valuePrefix?: string;\n progressText?: string;\n badge?: string;\n width?: string | number;\n className?: string;\n}\n\nexport const StatCard: React.FC<StatCardProps> = ({\n label,\n value,\n icon,\n iconBackgroundColor = '#E8F4FD',\n iconColor = '#4A9FD8',\n valuePrefix = '₦',\n progressText,\n badge,\n width = 347,\n className = '',\n}) => {\n const defaultIcon = (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <rect x=\"3\" y=\"6\" width=\"18\" height=\"12\" rx=\"2\" stroke=\"currentColor\" strokeWidth=\"2\" />\n <path d=\"M3 10h18M7 14h4\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n </svg>\n );\n\n return (\n <div\n className={`bg-white border border-[#E6E6E6] rounded-2xl p-4 flex flex-col justify-between transition-all duration-300 ease-in-out hover:border-gray-300 hover:-translate-y-1 cursor-pointer ${className}`}\n style={{\n width: typeof width === 'number' ? `${width}px` : width,\n boxShadow: '0 0 0 0 rgba(0, 0, 0, 0)',\n transition: 'all 0.3s ease-in-out',\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.boxShadow = '0 0 20px 0 rgba(0, 0, 0, 0.1)';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.boxShadow = '0 0 0 0 rgba(0, 0, 0, 0)';\n }}\n >\n <div>\n <div className=\"flex items-center justify-between mb-6\">\n <div\n className=\"w-9 h-9 rounded-full flex items-center justify-center shrink-0 [&>svg]:w-5 [&>svg]:h-5 transition-transform duration-300 ease-in-out group-hover:scale-110\"\n style={{\n backgroundColor: iconBackgroundColor,\n color: iconColor,\n }}\n >\n {icon || defaultIcon}\n </div>\n {badge && (\n <div className=\"bg-[#EBEBEB] text-[#181918] text-[11px] font-medium px-2 py-1 rounded-full border border-[#D1D1D1] transition-colors duration-200\">\n {badge}\n </div>\n )}\n </div>\n <div className=\"text-sm text-[#181918] font-light transition-colors duration-200\">\n {label}\n </div>\n <div className=\"text-[20px] font-bold text-[#181918] transition-all duration-200\">\n {valuePrefix} {value}\n </div>\n </div>\n {progressText && (\n <div className=\"text-xs text-gray-400 font-normal mt-4 transition-colors duration-200\">\n {progressText}\n </div>\n )}\n </div>\n );\n};\n","import type { FC, ReactNode, InputHTMLAttributes, CSSProperties } from 'react';\n\n/**\n * @deprecated SearchInput is deprecated as of v1.0.11. Please use the new Input component instead.\n * The new Input component provides better functionality and consistent styling with Ant Design.\n */\nexport interface SearchInputProps\n extends Omit<InputHTMLAttributes<HTMLInputElement>, 'size'> {\n icon?: ReactNode;\n iconPosition?: 'left' | 'right';\n size?: 'sm' | 'md' | 'lg' | 'responsive';\n fullWidth?: boolean;\n onIconClick?: () => void;\n bgColor?: string;\n borderColor?: string;\n focusBorderColor?: string;\n iconColor?: string;\n textColor?: string;\n placeholderColor?: string;\n rounded?: 'none' | 'sm' | 'md' | 'lg' | 'full';\n style?: CSSProperties;\n}\n\n/**\n * @deprecated SearchInput is deprecated as of v1.0.11. Please use the new Input component instead.\n */\nexport const SearchInput: FC<SearchInputProps> = ({\n icon,\n iconPosition = 'left',\n size = 'md',\n fullWidth = false,\n className = '',\n onIconClick,\n bgColor,\n borderColor,\n focusBorderColor,\n iconColor,\n textColor,\n placeholderColor,\n rounded = 'md',\n style,\n ...props\n}) => {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n '[Shekel Shared Lib] SearchInput is deprecated as of v1.0.11. Please use the new Input component instead for better functionality and consistent styling.'\n );\n }\n\n const containerBaseClasses = 'relative inline-flex items-center';\n\n const inputBaseClasses =\n 'border focus:outline-none focus:ring-1 transition-all duration-200 ease-in-out';\n\n const sizeClasses = {\n sm: 'px-3 py-1.5 text-sm',\n md: 'px-4 py-2 text-base',\n lg: 'px-5 py-3 text-lg',\n responsive: 'px-3 sm:px-4 md:px-5 py-1.5 sm:py-2 md:py-3 text-sm sm:text-base md:text-lg',\n };\n\n const iconSizeClasses = {\n sm: 'w-4 h-4',\n md: 'w-5 h-5',\n lg: 'w-6 h-6',\n responsive: 'w-4 sm:w-5 md:w-6 h-4 sm:h-5 md:h-6',\n };\n\n const roundedClasses = {\n none: 'rounded-none',\n sm: 'rounded-sm',\n md: 'rounded-lg',\n lg: 'rounded-xl',\n full: 'rounded-full',\n };\n\n const paddingWithIcon =\n iconPosition === 'left'\n ? size === 'sm'\n ? 'pl-9'\n : size === 'md'\n ? 'pl-10'\n : size === 'lg'\n ? 'pl-12'\n : 'pl-9 sm:pl-10 md:pl-12'\n : size === 'sm'\n ? 'pr-9'\n : size === 'md'\n ? 'pr-10'\n : size === 'lg'\n ? 'pr-12'\n : 'pr-9 sm:pr-10 md:pr-12';\n\n const widthClass = fullWidth ? 'w-full' : '';\n\n // Build custom styles for colors\n const customStyles: CSSProperties = {\n backgroundColor: bgColor,\n borderColor: borderColor || '#D1D5DB',\n color: textColor,\n ...style,\n };\n\n // Determine placeholder color class\n const placeholderClass = placeholderColor\n ? ''\n : 'placeholder:text-gray-400';\n\n // Build border and default colors\n const defaultBorderClass = borderColor ? '' : 'border-gray-300';\n const defaultTextClass = textColor ? '' : 'text-gray-900';\n const defaultFocusClass = focusBorderColor\n ? ''\n : 'focus:ring-[#EC615B] focus:border-[#EC615B]';\n\n const inputClassName = `${inputBaseClasses} ${!className.includes('px-') && !className.includes('py-') ? sizeClasses[size] : ''} ${\n icon ? paddingWithIcon : ''\n } ${widthClass} ${!className.includes('rounded') ? roundedClasses[rounded] : ''} ${!className.includes('border-') ? defaultBorderClass : ''} ${defaultTextClass} ${defaultFocusClass} ${placeholderClass} ${className}`;\n\n const iconPositionClasses = iconPosition === 'left' ? 'left-3' : 'right-3';\n const defaultIconColor = iconColor || 'text-gray-400';\n const hoverIconColor = iconColor ? '' : 'hover:text-gray-600';\n\n const defaultSearchIcon = (\n <svg\n className={`${iconSizeClasses[size]} ${defaultIconColor}`}\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n stroke=\"currentColor\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z\"\n />\n </svg>\n );\n\n return (\n <div className={`${containerBaseClasses} ${widthClass}`}>\n {icon && (\n <div\n className={`absolute ${iconPositionClasses} ${defaultIconColor} ${\n onIconClick ? 'cursor-pointer' : ''\n } ${hoverIconColor}`}\n onClick={onIconClick}\n >\n {icon === true ? defaultSearchIcon : icon}\n </div>\n )}\n <input\n type=\"text\"\n className={inputClassName}\n style={{\n ...customStyles,\n ...(focusBorderColor && {\n '--focus-border-color': focusBorderColor,\n } as CSSProperties),\n ...(placeholderColor && {\n '--placeholder-color': placeholderColor,\n } as CSSProperties),\n }}\n {...props}\n />\n </div>\n );\n};\n\nexport default SearchInput;\n","import React from 'react';\nimport { Card as AntCard, CardProps as AntCardProps } from 'antd';\n\nexport interface CardProps extends AntCardProps {\n shadow?: 'sm' | 'md' | 'lg' | 'xl';\n}\n\nexport const Card: React.FC<CardProps> = ({\n shadow = 'md',\n className = '',\n children,\n ...props\n}) => {\n const shadowClasses = {\n sm: 'shadow-sm',\n md: 'shadow-md',\n lg: 'shadow-lg',\n xl: 'shadow-xl'\n };\n\n const combinedClassName = `${shadowClasses[shadow]} rounded-lg ${className}`;\n\n return (\n <AntCard\n className={combinedClassName}\n {...props}\n >\n {children}\n </AntCard>\n );\n};\n","import { useState, useRef, useEffect } from 'react';\nimport type { FC, ReactNode, CSSProperties } from 'react';\n\nexport interface DropdownMenuItem {\n key: string;\n label: ReactNode;\n icon?: ReactNode;\n disabled?: boolean;\n danger?: boolean;\n onClick?: () => void;\n}\n\nexport interface DropdownProps {\n items: DropdownMenuItem[];\n trigger?: 'click' | 'hover';\n placement?: 'bottomLeft' | 'bottomRight' | 'topLeft' | 'topRight';\n children: ReactNode;\n className?: string;\n overlayClassName?: string;\n disabled?: boolean;\n size?: 'sm' | 'md' | 'lg' | 'responsive';\n menuBgColor?: string;\n menuItemHoverColor?: string;\n dangerColor?: string;\n borderColor?: string;\n style?: CSSProperties;\n}\n\nexport const Dropdown: FC<DropdownProps> = ({\n items,\n trigger = 'click',\n placement = 'bottomLeft',\n children,\n className = '',\n overlayClassName = '',\n disabled = false,\n size = 'md',\n menuBgColor,\n menuItemHoverColor,\n dangerColor,\n borderColor,\n style,\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const dropdownRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const handleClickOutside = (event: Event) => {\n if (dropdownRef.current && !dropdownRef.current.contains(event.target as Node)) {\n setIsOpen(false);\n }\n };\n\n if (isOpen) {\n document.addEventListener('mousedown', handleClickOutside);\n }\n\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, [isOpen]);\n\n const handleTriggerClick = () => {\n if (!disabled && trigger === 'click') {\n setIsOpen(!isOpen);\n }\n };\n\n const handleTriggerMouseEnter = () => {\n if (!disabled && trigger === 'hover') {\n setIsOpen(true);\n }\n };\n\n const handleTriggerMouseLeave = () => {\n if (!disabled && trigger === 'hover') {\n setIsOpen(false);\n }\n };\n\n const handleMenuItemClick = (item: DropdownMenuItem) => {\n if (!item.disabled && item.onClick) {\n item.onClick();\n }\n setIsOpen(false);\n };\n\n const placementClasses = {\n bottomLeft: 'top-full left-0 mt-1',\n bottomRight: 'top-full right-0 mt-1',\n topLeft: 'bottom-full left-0 mb-1',\n topRight: 'bottom-full right-0 mb-1',\n };\n\n const animationClasses = placement.startsWith('bottom')\n ? 'dropdown-slide-down'\n : 'dropdown-slide-up';\n\n const sizeClasses = {\n sm: 'min-w-[120px] text-xs',\n md: 'min-w-[160px] text-sm',\n lg: 'min-w-[220px] text-base',\n responsive: 'min-w-[120px] sm:min-w-[160px] md:min-w-[200px] lg:min-w-[240px] text-xs sm:text-sm md:text-base',\n };\n\n const itemSizeClasses = {\n sm: 'px-3 py-1.5 text-xs gap-1.5',\n md: 'px-4 py-2 text-sm gap-2',\n lg: 'px-5 py-3 text-base gap-2.5',\n responsive: 'px-3 sm:px-4 md:px-5 py-1.5 sm:py-2 md:py-3 text-xs sm:text-sm md:text-base gap-1.5 sm:gap-2 md:gap-2.5',\n };\n\n // Color styling helpers\n const defaultHoverColor = 'hover:bg-gray-50';\n const defaultBorderColor = 'border-gray-200';\n const defaultDangerColor = 'text-red-600';\n\n // Hover color handling\n const hoverColorStyle = menuItemHoverColor ? { backgroundColor: menuItemHoverColor } : {};\n const customHoverClass = menuItemHoverColor ? '' : defaultHoverColor;\n\n // Danger color handling\n const customDangerStyle = dangerColor ? { color: dangerColor } : {};\n const dangerHoverBgStyle = dangerColor ? { backgroundColor: dangerColor + '15' } : {};\n\n // Border color handling\n const finalBorderColor = borderColor || defaultBorderColor;\n\n return (\n <div\n ref={dropdownRef}\n className={`relative inline-block ${className}`}\n onMouseEnter={handleTriggerMouseEnter}\n onMouseLeave={handleTriggerMouseLeave}\n style={style}\n >\n <div\n onClick={handleTriggerClick}\n className={`inline-flex ${disabled ? 'cursor-not-allowed opacity-50' : 'cursor-pointer'}`}\n >\n {children}\n </div>\n\n {isOpen && !disabled && (\n <div\n className={`absolute ${placementClasses[placement]} ${animationClasses} z-50 ${sizeClasses[size]} ${overlayClassName}`}\n >\n <div\n className={`dropdown-menu rounded-lg shadow-lg border py-1 overflow-hidden ${finalBorderColor}`}\n style={{ backgroundColor: menuBgColor || '#ffffff' }}\n >\n {items.map((item) => {\n // Determine item-specific styles\n let itemStyle: React.CSSProperties = {};\n\n if (!item.disabled) {\n if (item.danger) {\n // Danger items use custom danger color if provided\n itemStyle = {\n ...customDangerStyle,\n ...dangerHoverBgStyle,\n };\n } else if (menuItemHoverColor) {\n // Custom hover color applied inline\n itemStyle = hoverColorStyle;\n }\n }\n\n return (\n <div\n key={item.key}\n onClick={() => handleMenuItemClick(item)}\n className={`\n dropdown-menu-item\n flex items-center cursor-pointer transition-all duration-200 ease-out\n ${!overlayClassName.includes('px-') && !overlayClassName.includes('py-') ? itemSizeClasses[size] : ''}\n ${item.disabled ? 'opacity-50 cursor-not-allowed' : customHoverClass}\n ${item.danger ? (dangerColor ? '' : defaultDangerColor) : 'text-gray-700'}\n `}\n style={itemStyle}\n >\n {item.icon && <span className=\"flex-shrink-0\">{item.icon}</span>}\n <span>{item.label}</span>\n </div>\n );\n })}\n </div>\n </div>\n )}\n </div>\n );\n};\n\nexport default Dropdown;\n","import { useState, useRef, useEffect } from 'react';\nimport type { FC, MouseEvent, CSSProperties } from 'react';\n\nexport interface SelectOption {\n value: string | number;\n label: string;\n disabled?: boolean;\n}\n\nexport interface SelectProps {\n options: SelectOption[];\n value?: string | number;\n defaultValue?: string | number;\n placeholder?: string;\n onChange?: (value: string | number) => void;\n disabled?: boolean;\n size?: 'sm' | 'md' | 'lg' | 'responsive';\n fullWidth?: boolean;\n className?: string;\n allowClear?: boolean;\n showSearch?: boolean;\n searchPlaceholder?: string;\n bgColor?: string;\n borderColor?: string;\n focusBorderColor?: string;\n selectedBgColor?: string;\n selectedTextColor?: string;\n hoverBgColor?: string;\n rounded?: 'none' | 'sm' | 'md' | 'lg' | 'full';\n style?: CSSProperties;\n}\n\nexport const Select: FC<SelectProps> = ({\n options,\n value: controlledValue,\n defaultValue,\n placeholder = 'Select an option',\n onChange,\n disabled = false,\n size = 'md',\n fullWidth = false,\n className = '',\n allowClear = false,\n showSearch = false,\n searchPlaceholder = 'Search...',\n bgColor,\n borderColor,\n focusBorderColor = '#EC615B',\n selectedBgColor,\n selectedTextColor,\n hoverBgColor,\n rounded = 'lg',\n style,\n}) => {\n const [isOpen, setIsOpen] = useState(false);\n const [internalValue, setInternalValue] = useState<string | number | undefined>(\n defaultValue\n );\n const [searchQuery, setSearchQuery] = useState('');\n const selectRef = useRef<HTMLDivElement>(null);\n const searchInputRef = useRef<HTMLInputElement>(null);\n\n const value = controlledValue !== undefined ? controlledValue : internalValue;\n\n useEffect(() => {\n const handleClickOutside = (event: Event) => {\n if (selectRef.current && !selectRef.current.contains(event.target as Node)) {\n setIsOpen(false);\n setSearchQuery('');\n }\n };\n\n if (isOpen) {\n document.addEventListener('mousedown', handleClickOutside);\n if (showSearch && searchInputRef.current) {\n searchInputRef.current.focus();\n }\n }\n\n return () => {\n document.removeEventListener('mousedown', handleClickOutside);\n };\n }, [isOpen, showSearch]);\n\n const handleSelect = (optionValue: string | number) => {\n if (controlledValue === undefined) {\n setInternalValue(optionValue);\n }\n onChange?.(optionValue);\n setIsOpen(false);\n setSearchQuery('');\n };\n\n const handleClear = (e: MouseEvent) => {\n e.stopPropagation();\n if (controlledValue === undefined) {\n setInternalValue(undefined);\n }\n onChange?.('' as any);\n };\n\n const selectedOption = options.find((opt) => opt.value === value);\n\n const filteredOptions = showSearch\n ? options.filter((option) =>\n option.label.toLowerCase().includes(searchQuery.toLowerCase())\n )\n : options;\n\n const sizeClasses = {\n sm: 'px-3 py-1.5 text-sm',\n md: 'px-4 py-2 text-base',\n lg: 'px-5 py-3 text-lg',\n responsive: 'px-3 sm:px-4 md:px-5 py-1.5 sm:py-2 md:py-3 text-sm sm:text-base md:text-lg',\n };\n\n const roundedClasses = {\n none: 'rounded-none',\n sm: 'rounded-sm',\n md: 'rounded-md',\n lg: 'rounded-lg',\n full: 'rounded-full',\n };\n\n const widthClass = fullWidth ? 'w-full' : 'min-w-[200px]';\n\n // Helper function to apply custom colors to inline styles\n const getTriggerStyles = (): CSSProperties => {\n const styles: CSSProperties = {};\n if (bgColor) styles.backgroundColor = bgColor;\n if (borderColor) styles.borderColor = borderColor;\n return styles;\n };\n\n const getSelectedOptionStyles = (): CSSProperties => {\n const styles: CSSProperties = {};\n if (selectedBgColor) styles.backgroundColor = selectedBgColor;\n if (selectedTextColor) styles.color = selectedTextColor;\n return styles;\n };\n\n const ChevronIcon = (\n <svg\n className={`w-4 h-4 transition-transform duration-200 ease-out ${isOpen ? 'rotate-180' : ''}`}\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M19 9l-7 7-7-7\" />\n </svg>\n );\n\n const ClearIcon = (\n <svg className=\"w-4 h-4\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" strokeWidth={2} d=\"M6 18L18 6M6 6l12 12\" />\n </svg>\n );\n\n return (\n <div ref={selectRef} className={`relative inline-block ${widthClass}`} style={style}>\n <div\n onClick={() => !disabled && setIsOpen(!isOpen)}\n className={`\n select-trigger\n flex items-center justify-between gap-2\n border transition-all duration-200 ease-out\n ${!className.includes('px-') && !className.includes('py-') && !className.includes('h-') ? sizeClasses[size] : ''}\n ${!className.includes('rounded') ? roundedClasses[rounded] : ''}\n ${disabled ? 'opacity-50 cursor-not-allowed' : 'cursor-pointer'}\n ${isOpen ? 'ring-2 ring-opacity-20' : ''}\n ${className}\n `}\n style={{\n ...getTriggerStyles(),\n backgroundColor: bgColor || getTriggerStyles().backgroundColor || '#FFFFFF',\n borderColor: borderColor || getTriggerStyles().borderColor || '#D1D5DB',\n ...(isOpen && {\n borderColor: focusBorderColor,\n boxShadow: `0 0 0 2px ${focusBorderColor}20`,\n }),\n ...(!disabled && !isOpen && hoverBgColor && {\n cursor: 'pointer',\n }),\n }}\n onMouseEnter={(e) => {\n if (!disabled && hoverBgColor) {\n e.currentTarget.style.backgroundColor = hoverBgColor;\n }\n }}\n onMouseLeave={(e) => {\n if (bgColor) {\n e.currentTarget.style.backgroundColor = bgColor;\n } else {\n e.currentTarget.style.backgroundColor = '#FFFFFF';\n }\n }}\n >\n <span className={selectedOption ? 'text-gray-900' : 'text-gray-400'}>\n {selectedOption ? selectedOption.label : placeholder}\n </span>\n <div className=\"flex items-center gap-1\">\n {allowClear && value && !disabled && (\n <span\n onClick={handleClear}\n className=\"text-gray-400 hover:text-gray-600 transition-colors duration-200 ease-out\"\n >\n {ClearIcon}\n </span>\n )}\n <span className=\"text-gray-400\">{ChevronIcon}</span>\n </div>\n </div>\n\n {isOpen && !disabled && (\n <div className=\"absolute top-full left-0 right-0 mt-1 z-50 dropdown-slide-down\">\n <div className={`select-dropdown bg-white shadow-lg border border-gray-200 py-1 max-h-[300px] overflow-auto ${roundedClasses[rounded]}`}>\n {showSearch && (\n <div className=\"px-2 py-2 border-b border-gray-200\">\n <input\n ref={searchInputRef}\n type=\"text\"\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n placeholder={searchPlaceholder}\n className=\"w-full px-3 py-1.5 text-sm border border-gray-300 rounded focus:outline-none focus:ring-2 transition-all duration-200 ease-out\"\n style={{\n borderColor: borderColor,\n boxShadow: `0 0 0 2px ${focusBorderColor}20`,\n }}\n onClick={(e) => e.stopPropagation()}\n />\n </div>\n )}\n {filteredOptions.length === 0 ? (\n <div className=\"px-4 py-3 text-sm text-gray-500 text-center\">\n No results found\n </div>\n ) : (\n filteredOptions.map((option) => (\n <div\n key={option.value}\n onClick={() => !option.disabled && handleSelect(option.value)}\n className={`\n select-option\n px-4 py-2 text-sm transition-all duration-200 ease-out\n ${option.disabled ? 'opacity-50 cursor-not-allowed' : 'cursor-pointer'}\n `}\n style={{\n ...(option.value === value ? getSelectedOptionStyles() : {}),\n backgroundColor: option.value === value ? (selectedBgColor || '#FCEAE9') : undefined,\n color: option.value === value ? (selectedTextColor || '#EC615B') : '#181918',\n fontWeight: option.value === value ? 'medium' : undefined,\n }}\n onMouseEnter={(e) => {\n if (!option.disabled && option.value !== value) {\n e.currentTarget.style.backgroundColor = hoverBgColor || '#F3F4F6';\n }\n }}\n onMouseLeave={(e) => {\n if (option.value !== value) {\n e.currentTarget.style.backgroundColor = 'transparent';\n }\n }}\n >\n {option.label}\n </div>\n ))\n )}\n </div>\n </div>\n )}\n </div>\n );\n};\n\nexport default Select;\n","import { useState } from 'react';\nimport type { FC, ReactNode, HTMLAttributes, CSSProperties } from 'react';\nimport { Select } from './Select';\n\nexport interface ColumnDef<T = any> {\n key: string;\n title: string;\n dataIndex?: string;\n render?: (value: any, record: T, index: number) => ReactNode;\n width?: string | number;\n align?: 'left' | 'center' | 'right';\n sortable?: boolean;\n}\n\nexport interface TableProps<T = any> {\n columns: ColumnDef<T>[];\n dataSource: T[];\n rowKey?: string | ((record: T) => string);\n pagination?: PaginationConfig | false;\n loading?: boolean;\n onRow?: (record: T, index: number) => HTMLAttributes<HTMLTableRowElement>;\n className?: string;\n bordered?: boolean;\n striped?: boolean;\n size?: 'sm' | 'md' | 'lg' | 'responsive';\n headerBgColor?: string;\n headerTextColor?: string;\n rowHoverColor?: string;\n borderColor?: string;\n stripedRowColor?: string;\n rounded?: 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';\n style?: CSSProperties;\n}\n\nexport interface PaginationConfig {\n current?: number;\n pageSize?: number;\n total?: number;\n onChange?: (page: number, pageSize: number) => void;\n showSizeChanger?: boolean;\n pageSizeOptions?: number[];\n showTotal?: boolean;\n size?: 'sm' | 'md' | 'lg';\n}\n\nexport const Table = <T extends Record<string, any>>({\n columns,\n dataSource,\n rowKey = 'id',\n pagination,\n loading = false,\n onRow,\n className = '',\n bordered = false,\n striped = false,\n size = 'md',\n headerBgColor,\n headerTextColor,\n rowHoverColor,\n borderColor,\n stripedRowColor,\n rounded = 'md',\n style,\n}: TableProps<T>) => {\n const [currentPage, setCurrentPage] = useState(\n pagination && typeof pagination === 'object' ? pagination.current || 1 : 1\n );\n const [pageSize, setPageSize] = useState(\n pagination && typeof pagination === 'object' ? pagination.pageSize || 10 : 10\n );\n\n // Size configuration for responsive sizing\n const sizeConfig = {\n sm: {\n headerPadding: 'px-3 py-2',\n headerFontSize: 'text-xs',\n rowPadding: 'px-3 py-2',\n rowFontSize: 'text-xs',\n containerRounded: 'rounded-md',\n },\n md: {\n headerPadding: 'px-4 py-3',\n headerFontSize: 'text-xs',\n rowPadding: 'px-4 py-3',\n rowFontSize: 'text-sm',\n containerRounded: 'rounded-lg',\n },\n lg: {\n headerPadding: 'px-6 py-4',\n headerFontSize: 'text-sm',\n rowPadding: 'px-6 py-4',\n rowFontSize: 'text-base',\n containerRounded: 'rounded-xl',\n },\n responsive: {\n headerPadding: 'px-2 sm:px-3 md:px-4 py-2 sm:py-2.5 md:py-3',\n headerFontSize: 'text-xs sm:text-xs md:text-sm',\n rowPadding: 'px-2 sm:px-3 md:px-4 py-2 sm:py-2.5 md:py-3',\n rowFontSize: 'text-xs sm:text-xs md:text-sm',\n containerRounded: 'rounded-md sm:rounded-lg md:rounded-lg',\n },\n };\n\n // Rounded configuration\n const roundedClasses = {\n none: '',\n sm: 'rounded-sm',\n md: 'rounded-md',\n lg: 'rounded-lg',\n xl: 'rounded-xl',\n '2xl': 'rounded-2xl',\n };\n\n const currentSizeConfig = sizeConfig[size];\n const currentRoundedClass = roundedClasses[rounded];\n\n const getRowKey = (record: T, index: number): string => {\n if (typeof rowKey === 'function') {\n return rowKey(record);\n }\n return record[rowKey] || String(index);\n };\n\n const getValue = (record: T, dataIndex?: string) => {\n if (!dataIndex) return record;\n return dataIndex.split('.').reduce((obj, key) => obj?.[key], record);\n };\n\n // Pagination logic\n const paginatedData =\n pagination === false\n ? dataSource\n : dataSource.slice((currentPage - 1) * pageSize, currentPage * pageSize);\n\n const handlePageChange = (page: number) => {\n setCurrentPage(page);\n if (pagination && typeof pagination === 'object' && pagination.onChange) {\n pagination.onChange(page, pageSize);\n }\n };\n\n const handlePageSizeChange = (newPageSize: number) => {\n setPageSize(newPageSize);\n setCurrentPage(1);\n if (pagination && typeof pagination === 'object' && pagination.onChange) {\n pagination.onChange(1, newPageSize);\n }\n };\n\n return (\n <div className=\"w-full\" style={style}>\n <div\n className={`overflow-x-auto ${currentRoundedClass || 'rounded-2xl'} border`}\n style={{ borderColor: borderColor || '#EEEEEE' }}\n >\n <table className={`w-full ${bordered ? 'border-collapse' : ''} ${className}`}>\n <thead\n style={{\n backgroundColor: headerBgColor || '#F5F6F7',\n color: headerTextColor || '#333333',\n }}\n >\n <tr>\n {columns.map((column, idx) => (\n <th\n key={column.key}\n className={`${currentSizeConfig.headerPadding} text-left ${currentSizeConfig.headerFontSize} font-medium uppercase tracking-wider ${\n bordered && idx !== columns.length - 1 ? 'border-r' : ''\n } ${\n column.align === 'center'\n ? 'text-center'\n : column.align === 'right'\n ? 'text-right'\n : ''\n }`}\n style={{\n width: column.width,\n borderColor: borderColor || '#EEEEEE',\n color: headerTextColor || '#333333',\n }}\n >\n {column.title}\n </th>\n ))}\n </tr>\n </thead>\n <tbody\n className=\"bg-white divide-y\"\n style={{ borderColor: borderColor || '#e5e5e5' }}\n >\n {loading ? (\n <tr>\n <td\n colSpan={columns.length}\n className={`${currentSizeConfig.rowPadding} py-8 text-center`}\n style={{ color: '#333333' }}\n >\n <div className=\"flex justify-center items-center\">\n <svg\n className=\"animate-spin h-5 w-5 mr-2\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <circle\n className=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n strokeWidth=\"4\"\n />\n <path\n className=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n />\n </svg>\n Loading...\n </div>\n </td>\n </tr>\n ) : paginatedData.length === 0 ? (\n <tr>\n <td\n colSpan={columns.length}\n className={`${currentSizeConfig.rowPadding} py-8 text-center`}\n style={{ color: '#333333' }}\n >\n No data\n </td>\n </tr>\n ) : (\n paginatedData.map((record, index) => {\n const rowProps = onRow ? onRow(record, index) : {};\n const stripedBg = striped && index % 2 === 1 ? (stripedRowColor || '#F5F6F7') : 'transparent';\n const hoverBg = rowHoverColor || '#f3f4f6';\n return (\n <tr\n key={getRowKey(record, index)}\n className=\"transition-colors duration-200 ease-out\"\n style={{\n backgroundColor: stripedBg,\n }}\n onMouseEnter={(e) => {\n if (rowHoverColor || !striped || index % 2 === 0) {\n e.currentTarget.style.backgroundColor = hoverBg;\n }\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = stripedBg;\n }}\n {...rowProps}\n >\n {columns.map((column, colIdx) => {\n const value = getValue(record, column.dataIndex);\n const content = column.render ? column.render(value, record, index) : value;\n\n return (\n <td\n key={column.key}\n className={`${currentSizeConfig.rowPadding} ${currentSizeConfig.rowFontSize} text-gray-900 ${\n bordered && colIdx !== columns.length - 1 ? 'border-r' : ''\n } ${\n column.align === 'center'\n ? 'text-center'\n : column.align === 'right'\n ? 'text-right'\n : ''\n }`}\n style={{\n borderColor: borderColor || '#EEEEEE',\n }}\n >\n {content as ReactNode}\n </td>\n );\n })}\n </tr>\n );\n })\n )}\n </tbody>\n </table>\n </div>\n\n {/* Pagination */}\n {pagination !== false && (\n <Pagination\n current={currentPage}\n pageSize={pageSize}\n total={dataSource.length}\n onChange={handlePageChange}\n onPageSizeChange={handlePageSizeChange}\n showSizeChanger={\n pagination && typeof pagination === 'object' ? pagination.showSizeChanger : true\n }\n pageSizeOptions={\n pagination && typeof pagination === 'object'\n ? pagination.pageSizeOptions\n : [10, 20, 50, 100]\n }\n showTotal={pagination && typeof pagination === 'object' ? pagination.showTotal : true}\n size={\n pagination && typeof pagination === 'object' && pagination.size\n ? pagination.size\n : size === 'responsive'\n ? 'md'\n : size\n }\n />\n )}\n </div>\n );\n};\n\ninterface PaginationProps {\n current: number;\n pageSize: number;\n total: number;\n onChange: (page: number) => void;\n onPageSizeChange: (pageSize: number) => void;\n showSizeChanger?: boolean;\n pageSizeOptions?: number[];\n showTotal?: boolean;\n size?: 'sm' | 'md' | 'lg';\n}\n\nconst Pagination: FC<PaginationProps> = ({\n current,\n pageSize,\n total,\n onChange,\n onPageSizeChange,\n showSizeChanger = true,\n pageSizeOptions = [10, 20, 50, 100],\n showTotal = true,\n size = 'md',\n}) => {\n const totalPages = Math.ceil(total / pageSize);\n const startItem = (current - 1) * pageSize + 1;\n const endItem = Math.min(current * pageSize, total);\n\n const sizeClasses = {\n sm: {\n button: 'px-2.5 py-1 text-xs',\n icon: 'h-3.5 w-3.5',\n nav: 'px-1.5 py-1.5',\n },\n md: {\n button: 'px-4 py-2 text-sm',\n icon: 'h-5 w-5',\n nav: 'px-2 py-2',\n },\n lg: {\n button: 'px-5 py-2.5 text-base',\n icon: 'h-6 w-6',\n nav: 'px-3 py-3',\n },\n };\n\n const getPageNumbers = () => {\n const pages: (number | string)[] = [];\n const maxVisible = 7;\n\n if (totalPages <= maxVisible) {\n for (let i = 1; i <= totalPages; i++) {\n pages.push(i);\n }\n } else {\n if (current <= 3) {\n for (let i = 1; i <= 5; i++) pages.push(i);\n pages.push('...');\n pages.push(totalPages);\n } else if (current >= totalPages - 2) {\n pages.push(1);\n pages.push('...');\n for (let i = totalPages - 4; i <= totalPages; i++) pages.push(i);\n } else {\n pages.push(1);\n pages.push('...');\n for (let i = current - 1; i <= current + 1; i++) pages.push(i);\n pages.push('...');\n pages.push(totalPages);\n }\n }\n\n return pages;\n };\n\n return (\n <div className=\"flex items-center justify-between px-4 py-3 border-t border-[#EEEEEE] sm:px-6 mt-4\">\n {showTotal && (\n <div className=\"text-sm text-[#181918]\">\n {startItem}-{endItem} of {total} items\n </div>\n )}\n\n <div className=\"flex items-center gap-2\">\n {showSizeChanger && (\n <Select\n value={pageSize.toString()}\n onChange={(value) => onPageSizeChange(Number(value))}\n options={pageSizeOptions.map((size) => ({\n value: size.toString(),\n label: `${size} / page`,\n }))}\n size=\"sm\"\n className=\"w-32\"\n />\n )}\n\n <nav className=\"inline-flex gap-1 items-center\" aria-label=\"Pagination\">\n <button\n onClick={() => onChange(current - 1)}\n disabled={current === 1}\n className={`relative inline-flex items-center justify-center rounded-md ${sizeClasses[size].nav} text-[#181918] hover:bg-gray-100 focus:z-20 disabled:opacity-30 disabled:cursor-not-allowed disabled:hover:bg-transparent transition-all duration-300 ease-out hover:scale-110 active:scale-95`}\n >\n <svg className={sizeClasses[size].icon} viewBox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\">\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M15 19l-7-7 7-7\"\n />\n </svg>\n </button>\n\n {getPageNumbers().map((page, index) => {\n if (page === '...') {\n return (\n <span\n key={`ellipsis-${index}`}\n className={`relative inline-flex items-center justify-center ${sizeClasses[size].button} font-normal text-[#181918]`}\n >\n ...\n </span>\n );\n }\n\n return (\n <button\n key={page}\n onClick={() => onChange(page as number)}\n className={`relative inline-flex items-center justify-center rounded-md ${sizeClasses[size].button} font-medium transition-all duration-300 ease-out focus:z-20 hover:scale-105 active:scale-95 ${\n current === page\n ? 'bg-[#EC615B] text-white shadow-sm'\n : 'text-[#181918] hover:bg-gray-100'\n }`}\n >\n {page}\n </button>\n );\n })}\n\n <button\n onClick={() => onChange(current + 1)}\n disabled={current === totalPages}\n className={`relative inline-flex items-center justify-center rounded-md ${sizeClasses[size].nav} text-[#181918] hover:bg-gray-100 focus:z-20 disabled:opacity-30 disabled:cursor-not-allowed disabled:hover:bg-transparent transition-all duration-300 ease-out hover:scale-110 active:scale-95`}\n >\n <svg className={sizeClasses[size].icon} viewBox=\"0 0 20 20\" fill=\"none\" stroke=\"currentColor\">\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M9 5l7 7-7 7\"\n />\n </svg>\n </button>\n </nav>\n </div>\n </div>\n );\n};\n\nexport default Table;\n","import type { FC, ReactNode, ChangeEvent, CSSProperties } from 'react';\n\nexport interface TableTopProps {\n // Existing props\n title?: string;\n description?: string;\n searchPlaceholder?: string;\n onSearch?: (value: string) => void;\n actions?: ReactNode;\n filters?: ReactNode;\n className?: string;\n\n // New responsive props\n size?: 'sm' | 'md' | 'lg' | 'responsive';\n\n // Custom color props\n titleColor?: string;\n descriptionColor?: string;\n searchBgColor?: string;\n searchBorderColor?: string;\n searchFocusBorderColor?: string;\n\n // Search input border radius\n rounded?: 'none' | 'sm' | 'md' | 'lg' | 'full';\n\n // Custom styles\n style?: CSSProperties;\n\n // New props for conditional action button display\n hideActionButtons?: boolean;\n selectedActionButton?: ReactNode;\n}\n\nexport const TableTop: FC<TableTopProps> = ({\n title,\n description,\n searchPlaceholder = 'Search...',\n onSearch,\n actions,\n filters,\n className = '',\n size = 'responsive',\n titleColor,\n descriptionColor,\n searchBgColor = 'white',\n searchBorderColor = '#d1d5db',\n searchFocusBorderColor = '#3b82f6',\n rounded = 'md',\n style,\n hideActionButtons = false,\n selectedActionButton,\n}) => {\n const handleSearchChange = (e: ChangeEvent<HTMLInputElement>) => {\n onSearch?.(e.target.value);\n };\n\n // Size configuration\n const sizeConfig = {\n sm: {\n titleSize: 'text-lg',\n titleWeight: 'font-semibold',\n descriptionSize: 'text-xs',\n searchInputSize: 'text-xs',\n searchInputPy: 'py-1.5',\n searchPaddingLeft: 'pl-8',\n iconSize: 'h-4 w-4',\n spacing: 'space-y-2',\n gap: 'gap-2',\n maxWidth: 'max-w-sm',\n descriptionMargin: 'mt-0.5',\n },\n md: {\n titleSize: 'text-xl',\n titleWeight: 'font-semibold',\n descriptionSize: 'text-sm',\n searchInputSize: 'text-sm',\n searchInputPy: 'py-2',\n searchPaddingLeft: 'pl-10',\n iconSize: 'h-5 w-5',\n spacing: 'space-y-3',\n gap: 'gap-3',\n maxWidth: 'max-w-md',\n descriptionMargin: 'mt-1',\n },\n lg: {\n titleSize: 'text-2xl',\n titleWeight: 'font-bold',\n descriptionSize: 'text-base',\n searchInputSize: 'text-base',\n searchInputPy: 'py-2.5',\n searchPaddingLeft: 'pl-12',\n iconSize: 'h-6 w-6',\n spacing: 'space-y-4',\n gap: 'gap-4',\n maxWidth: 'max-w-lg',\n descriptionMargin: 'mt-2',\n },\n responsive: {\n titleSize: 'text-lg sm:text-xl md:text-2xl',\n titleWeight: 'font-semibold md:font-bold',\n descriptionSize: 'text-xs sm:text-sm md:text-base',\n searchInputSize: 'text-xs sm:text-sm md:text-base',\n searchInputPy: 'py-1.5 sm:py-2 md:py-2.5',\n searchPaddingLeft: 'pl-8 sm:pl-10 md:pl-12',\n iconSize: 'h-4 w-4 sm:h-5 sm:w-5 md:h-6 md:w-6',\n spacing: 'space-y-2 sm:space-y-3 md:space-y-4',\n gap: 'gap-2 sm:gap-3 md:gap-4',\n maxWidth: 'max-w-sm md:max-w-md lg:max-w-lg',\n descriptionMargin: 'mt-0.5 sm:mt-1 md:mt-2',\n },\n };\n\n const config = sizeConfig[size];\n\n // Border radius configuration\n const radiusConfig = {\n none: 'rounded-none',\n sm: 'rounded-sm',\n md: 'rounded-md',\n lg: 'rounded-lg',\n full: 'rounded-full',\n };\n\n const radiusClass = radiusConfig[rounded];\n\n // Build inline styles for custom colors\n const searchInputStyle: CSSProperties = {\n backgroundColor: searchBgColor,\n borderColor: searchBorderColor,\n };\n\n return (\n <div\n className={`${config.spacing} mb-4 ${className}`}\n style={style}\n >\n {/* Title and Description */}\n {(title || description) && (\n <div>\n {title && (\n <h2\n className={`${config.titleSize} ${config.titleWeight}`}\n style={{ color: titleColor || '#111827' }}\n >\n {title}\n </h2>\n )}\n {description && (\n <p\n className={`${config.descriptionSize} ${config.descriptionMargin}`}\n style={{ color: descriptionColor || '#6b7280' }}\n >\n {description}\n </p>\n )}\n </div>\n )}\n\n {/* Search and Actions Row */}\n <div className={`flex flex-col sm:flex-row items-stretch sm:items-center justify-between ${config.gap}`}>\n {/* Search Input */}\n {onSearch && (\n <div className={`flex-1 ${config.maxWidth}`}>\n <div className=\"relative\">\n <div className=\"absolute inset-y-0 left-0 pl-3 flex items-center pointer-events-none\">\n <svg\n className={`${config.iconSize} text-gray-400`}\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z\"\n />\n </svg>\n </div>\n <input\n type=\"text\"\n placeholder={searchPlaceholder}\n onChange={handleSearchChange}\n className={`block w-full ${config.searchPaddingLeft} pr-3 ${config.searchInputPy} border ${radiusClass} focus:outline-none focus:ring-2 focus:ring-opacity-50 ${config.searchInputSize} transition-colors duration-200`}\n style={searchInputStyle}\n onFocus={(e) => {\n e.currentTarget.style.borderColor = searchFocusBorderColor;\n e.currentTarget.style.boxShadow = `0 0 0 2px rgba(59, 130, 246, 0.1)`;\n }}\n onBlur={(e) => {\n e.currentTarget.style.borderColor = searchBorderColor;\n e.currentTarget.style.boxShadow = 'none';\n }}\n />\n </div>\n </div>\n )}\n\n {/* Actions (Buttons) */}\n <div className={`flex items-center gap-2 w-full sm:w-auto`}>\n {hideActionButtons && selectedActionButton ? (\n selectedActionButton\n ) : (\n actions\n )}\n </div>\n </div>\n\n {/* Filters Row */}\n {filters && (\n <div className={`flex flex-wrap items-center ${config.gap}`}>\n {filters}\n </div>\n )}\n </div>\n );\n};\n\nexport default TableTop;\n","import { useEffect, useState, CSSProperties } from 'react';\nimport type { FC, ReactNode, MouseEvent } from 'react';\n\ntype ModalSize = 'sm' | 'md' | 'lg' | 'xl' | 'full' | 'responsive';\n\nconst widthMap: Record<ModalSize, string> = {\n sm: '384px',\n md: '448px',\n lg: '512px',\n xl: '600px',\n full: '100%',\n responsive: '90vw',\n};\n\nexport interface ModalProps {\n open: boolean;\n onClose: () => void;\n title?: string;\n children: ReactNode;\n footer?: ReactNode;\n width?: string | number;\n size?: ModalSize;\n closable?: boolean;\n maskClosable?: boolean;\n centered?: boolean;\n className?: string;\n bgColor?: string;\n headerBgColor?: string;\n overlayColor?: string;\n bodyClassName?: string;\n headerClassName?: string;\n maxHeight?: string | number;\n}\n\nexport const Modal: FC<ModalProps> = ({\n open,\n onClose,\n title,\n children,\n footer,\n width,\n size = 'md',\n closable = true,\n maskClosable = true,\n centered = true,\n className = '',\n bgColor = '#ffffff',\n headerBgColor = '#ffffff',\n overlayColor = 'rgba(0, 0, 0, 0.5)',\n bodyClassName = '',\n headerClassName = '',\n maxHeight = '70vh',\n}) => {\n const [isVisible, setIsVisible] = useState(false);\n const [isAnimating, setIsAnimating] = useState(false);\n\n // Determine effective width\n const effectiveWidth = width || widthMap[size];\n const effectiveWidthNum = typeof effectiveWidth === 'number' ? `${effectiveWidth}px` : effectiveWidth;\n\n // Prepare modal style\n const modalStyle: CSSProperties = {\n width: effectiveWidthNum,\n maxWidth: '90vw',\n backgroundColor: bgColor,\n };\n\n // Prepare header style\n const headerStyle: CSSProperties = {\n backgroundColor: headerBgColor,\n };\n\n // Prepare overlay style\n const overlayStyle: CSSProperties = {\n backgroundColor: overlayColor,\n };\n\n useEffect(() => {\n if (open) {\n setIsVisible(true);\n // Small delay to trigger animation\n setTimeout(() => setIsAnimating(true), 10);\n document.body.style.overflow = 'hidden';\n } else {\n setIsAnimating(false);\n // Wait for animation to complete before unmounting\n const timer = setTimeout(() => {\n setIsVisible(false);\n }, 200);\n document.body.style.overflow = 'unset';\n return () => clearTimeout(timer);\n }\n }, [open]);\n\n // Close on Escape key\n useEffect(() => {\n const handleEscape = (e: KeyboardEvent) => {\n if (e.key === 'Escape' && closable && open) {\n onClose();\n }\n };\n\n if (open) {\n document.addEventListener('keydown', handleEscape);\n }\n\n return () => {\n document.removeEventListener('keydown', handleEscape);\n };\n }, [open, onClose, closable]);\n\n if (!isVisible) return null;\n\n const handleMaskClick = () => {\n if (maskClosable) {\n onClose();\n }\n };\n\n const handleModalClick = (e: MouseEvent) => {\n e.stopPropagation();\n };\n\n return (\n <div\n className=\"fixed inset-0 z-50 overflow-y-auto\"\n onClick={handleMaskClick}\n >\n {/* Backdrop */}\n <div\n className={`fixed inset-0 transition-opacity duration-200 ease-out ${\n isAnimating ? 'opacity-100' : 'opacity-0'\n }`}\n style={overlayStyle}\n />\n\n {/* Modal Container */}\n <div className={`flex min-h-full items-center justify-center p-4 ${centered ? 'items-center' : 'items-start pt-20'}`}>\n <div\n className={`relative rounded-lg shadow-xl transition-all duration-200 ease-out overflow-y-auto ${\n isAnimating\n ? 'opacity-100 scale-100 translate-y-0'\n : 'opacity-0 scale-95 -translate-y-4'\n } ${className}`}\n style={{...modalStyle, maxHeight: typeof maxHeight === 'number' ? `${maxHeight}px` : maxHeight}}\n onClick={handleModalClick}\n >\n {/* Header */}\n {(title || closable) && (\n <div\n className={`flex items-center justify-between px-6 py-4 border-b border-gray-200 ${headerClassName}`}\n style={headerStyle}\n >\n {title && <h3 className=\"text-lg font-semibold text-gray-900\">{title}</h3>}\n {closable && (\n <button\n onClick={onClose}\n className=\"text-gray-400 hover:text-gray-600 transition-colors duration-200 ease-out\"\n >\n <svg\n className=\"w-5 h-5\"\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M6 18L18 6M6 6l12 12\"\n />\n </svg>\n </button>\n )}\n </div>\n )}\n\n {/* Body */}\n <div\n className={`px-6 py-4 ${bodyClassName}`}\n >\n {children}\n </div>\n\n {/* Footer */}\n {footer && (\n <div className=\"px-6 py-4 border-t border-gray-200 flex justify-end gap-2\">\n {footer}\n </div>\n )}\n </div>\n </div>\n </div>\n );\n};\n\nexport default Modal;\n","import type { FC, ReactNode, CSSProperties } from 'react';\n\nexport interface BadgeProps {\n children: ReactNode;\n variant?: 'default' | 'primary' | 'success' | 'warning' | 'danger' | 'info';\n size?: 'sm' | 'md' | 'lg' | 'responsive';\n dot?: boolean;\n icon?: ReactNode;\n iconPosition?: 'left' | 'right';\n className?: string;\n bgColor?: string;\n textColor?: string;\n borderColor?: string;\n rounded?: 'none' | 'sm' | 'md' | 'lg' | 'full';\n style?: CSSProperties;\n}\n\nexport const Badge: FC<BadgeProps> = ({\n children,\n variant = 'default',\n size = 'md',\n dot = false,\n icon,\n iconPosition = 'left',\n className = '',\n bgColor,\n textColor,\n borderColor,\n rounded = 'full',\n style,\n}) => {\n const variantClasses = {\n default: 'bg-gray-100 text-[#181918]',\n primary: 'bg-[#FCEAE9] text-[#EC615B]',\n success: 'bg-green-100 text-green-800',\n warning: 'bg-yellow-100 text-yellow-800',\n danger: 'bg-red-100 text-red-800',\n info: 'bg-cyan-100 text-cyan-800',\n };\n\n const sizeClasses = {\n sm: 'px-2 py-0.5 text-xs',\n md: 'px-2.5 py-1 text-sm',\n lg: 'px-3 py-1.5 text-base',\n responsive: 'px-1.5 py-0.5 text-[10px] sm:px-2 sm:py-0.5 sm:text-xs md:px-2.5 md:py-1 md:text-sm lg:px-3 lg:py-1.5 lg:text-base',\n };\n\n const dotSizeClasses = {\n sm: 'w-1.5 h-1.5',\n md: 'w-2 h-2',\n lg: 'w-2.5 h-2.5',\n responsive: 'w-1 h-1 sm:w-1.5 sm:h-1.5 md:w-2 md:h-2 lg:w-2.5 lg:h-2.5',\n };\n\n const dotColorClasses = {\n default: 'bg-gray-600',\n primary: 'bg-[#EC615B]',\n success: 'bg-green-600',\n warning: 'bg-yellow-600',\n danger: 'bg-red-600',\n info: 'bg-cyan-600',\n };\n\n const iconSizeClasses = {\n sm: 'w-3 h-3',\n md: 'w-3.5 h-3.5',\n lg: 'w-4 h-4',\n responsive: 'w-2.5 h-2.5 sm:w-3 sm:h-3 md:w-3.5 md:h-3.5 lg:w-4 lg:h-4',\n };\n\n const roundedClasses = {\n none: 'rounded-none',\n sm: 'rounded-sm',\n md: 'rounded-md',\n lg: 'rounded-lg',\n full: 'rounded-full',\n };\n\n const customStyles: CSSProperties = {\n ...(bgColor && { backgroundColor: bgColor }),\n ...(textColor && { color: textColor }),\n ...(borderColor && { borderColor, borderWidth: '1px', borderStyle: 'solid' }),\n ...style,\n };\n\n return (\n <span\n className={`inline-flex items-center gap-1.5 font-medium transition-all duration-200 ${!bgColor ? variantClasses[variant] : ''} ${sizeClasses[size]} ${roundedClasses[rounded]} ${className}`}\n style={customStyles}\n >\n {dot && (\n <span className={`rounded-full ${dotSizeClasses[size]} ${dotColorClasses[variant]}`} />\n )}\n {icon && iconPosition === 'left' && (\n <span className={`inline-flex items-center ${iconSizeClasses[size]}`}>\n {icon}\n </span>\n )}\n {children}\n {icon && iconPosition === 'right' && (\n <span className={`inline-flex items-center ${iconSizeClasses[size]}`}>\n {icon}\n </span>\n )}\n </span>\n );\n};\n\nexport default Badge;\n","import type { FC, ReactNode, CSSProperties } from 'react';\n\nexport interface StepItem {\n title: string;\n description?: string;\n status?: 'wait' | 'process' | 'finish' | 'error';\n icon?: ReactNode;\n}\n\nexport interface StepsProps {\n items: StepItem[];\n current?: number;\n direction?: 'horizontal' | 'vertical';\n size?: 'sm' | 'md' | 'lg' | 'responsive';\n variant?: 'default' | 'outline';\n className?: string;\n style?: CSSProperties;\n finishColor?: string;\n processColor?: string;\n waitColor?: string;\n errorColor?: string;\n lineColor?: string;\n}\n\nexport const Steps: FC<StepsProps> = ({\n items,\n current = 0,\n direction = 'vertical',\n size = 'md',\n variant = 'default',\n className = '',\n style,\n finishColor,\n processColor,\n waitColor,\n errorColor,\n lineColor,\n}) => {\n const getStepStatus = (index: number, item: StepItem): StepItem['status'] => {\n if (item.status) return item.status;\n if (index < current) return 'finish';\n if (index === current) return 'process';\n return 'wait';\n };\n\n const iconSizeClasses = {\n sm: 'w-6 h-6',\n md: 'w-8 h-8',\n lg: 'w-10 h-10',\n responsive: 'w-6 h-6 sm:w-7 sm:h-7 md:w-8 md:h-8 lg:w-10 lg:h-10',\n };\n\n const textSizeClasses = {\n sm: 'text-sm',\n md: 'text-base',\n lg: 'text-lg',\n responsive: 'text-xs sm:text-sm md:text-base lg:text-lg',\n };\n\n const descriptionSizeClasses = {\n sm: 'text-xs',\n md: 'text-sm',\n lg: 'text-base',\n responsive: 'text-xs sm:text-xs md:text-sm lg:text-base',\n };\n\n const renderIcon = (status: StepItem['status'], icon?: ReactNode) => {\n if (icon) return icon;\n\n if (status === 'finish') {\n return (\n <svg className=\"w-5 h-5\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M16.707 5.293a1 1 0 010 1.414l-8 8a1 1 0 01-1.414 0l-4-4a1 1 0 011.414-1.414L8 12.586l7.293-7.293a1 1 0 011.414 0z\"\n clipRule=\"evenodd\"\n />\n </svg>\n );\n }\n\n if (status === 'error') {\n return (\n <svg className=\"w-5 h-5\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\"\n clipRule=\"evenodd\"\n />\n </svg>\n );\n }\n\n return null;\n };\n\n const getStatusClasses = (status: StepItem['status']) => {\n const isOutline = variant === 'outline';\n\n switch (status) {\n case 'finish':\n return {\n icon: isOutline\n ? `bg-white text-white border ${finishColor ? `border-[${finishColor}]` : 'border-green-500'}`\n : `${finishColor ? `bg-[${finishColor}]` : 'bg-green-500'} text-white ${finishColor ? `border-[${finishColor}]` : 'border-green-500'}`,\n title: 'text-[#181918]',\n description: 'text-gray-600',\n line: lineColor ? `bg-[${lineColor}]` : 'bg-green-500',\n iconColor: finishColor,\n };\n case 'process':\n return {\n icon: isOutline\n ? `bg-white text-white border ${processColor ? `border-[${processColor}]` : 'border-[#EC615B]'}`\n : `${processColor ? `bg-[${processColor}]` : 'bg-[#EC615B]'} text-white ${processColor ? `border-[${processColor}]` : 'border-[#EC615B]'}`,\n title: 'text-[#181918] font-semibold',\n description: 'text-gray-700',\n line: lineColor ? `bg-[${lineColor}]` : 'bg-gray-300',\n iconColor: processColor,\n };\n case 'error':\n return {\n icon: isOutline\n ? `bg-white text-white border ${errorColor ? `border-[${errorColor}]` : 'border-red-500'}`\n : `${errorColor ? `bg-[${errorColor}]` : 'bg-red-500'} text-white ${errorColor ? `border-[${errorColor}]` : 'border-red-500'}`,\n title: 'text-red-600',\n description: 'text-red-500',\n line: lineColor ? `bg-[${lineColor}]` : 'bg-gray-300',\n iconColor: errorColor,\n };\n default:\n return {\n icon: 'bg-white text-gray-400 border-gray-300',\n title: 'text-gray-500',\n description: 'text-gray-400',\n line: lineColor ? `bg-[${lineColor}]` : 'bg-gray-300',\n iconColor: waitColor,\n };\n }\n };\n\n if (direction === 'horizontal') {\n return (\n <div className={`flex items-start ${className}`} style={style}>\n {items.map((item, index) => {\n const status = getStepStatus(index, item);\n const statusClasses = getStatusClasses(status);\n const isLast = index === items.length - 1;\n const iconStyle: CSSProperties = {};\n if (statusClasses.iconColor) {\n iconStyle.color = statusClasses.iconColor;\n }\n\n return (\n <div key={index} className=\"flex flex-1 items-start\">\n <div className=\"flex flex-col items-center\">\n <div\n className={`flex items-center justify-center ${iconSizeClasses[size]} rounded-full border transition-all duration-300 ${statusClasses.icon}`}\n style={iconStyle}\n >\n {renderIcon(status, item.icon)}\n </div>\n <div className=\"mt-2 text-center\">\n <div\n className={`${textSizeClasses[size]} ${statusClasses.title} transition-colors duration-300`}\n >\n {item.title}\n </div>\n {item.description && (\n <div\n className={`${descriptionSizeClasses[size]} ${statusClasses.description} mt-1 transition-colors duration-300`}\n >\n {item.description}\n </div>\n )}\n </div>\n </div>\n {!isLast && (\n <div\n className={`flex-1 h-0.5 mt-4 mx-2 ${statusClasses.line} transition-colors duration-300`}\n />\n )}\n </div>\n );\n })}\n </div>\n );\n }\n\n return (\n <div className={`flex flex-col ${className}`} style={style}>\n {items.map((item, index) => {\n const status = getStepStatus(index, item);\n const statusClasses = getStatusClasses(status);\n const isLast = index === items.length - 1;\n const iconStyle: CSSProperties = {};\n if (statusClasses.iconColor) {\n iconStyle.color = statusClasses.iconColor;\n }\n\n return (\n <div key={index} className=\"flex\">\n <div className=\"flex flex-col items-center mr-4\">\n <div\n className={`flex items-center justify-center ${iconSizeClasses[size]} rounded-full border transition-all duration-300 ${statusClasses.icon}`}\n style={iconStyle}\n >\n {renderIcon(status, item.icon)}\n </div>\n {!isLast && (\n <div\n className={`w-0.5 flex-1 my-1 ${statusClasses.line} transition-colors duration-300`}\n style={{ minHeight: '20px' }}\n />\n )}\n </div>\n <div className=\"flex-1 pb-6\">\n <div\n className={`${textSizeClasses[size]} ${statusClasses.title} transition-colors duration-300`}\n >\n {item.title}\n </div>\n {item.description && (\n <div\n className={`${descriptionSizeClasses[size]} ${statusClasses.description} mt-1 transition-colors duration-300`}\n >\n {item.description}\n </div>\n )}\n </div>\n </div>\n );\n })}\n </div>\n );\n};\n\nexport default Steps;\n","import type { FC, ReactNode } from 'react';\n\nexport interface ProgressProps {\n percent?: number;\n status?: 'normal' | 'success' | 'exception' | 'active';\n showInfo?: boolean;\n strokeColor?: string;\n strokeWidth?: number;\n size?: 'sm' | 'md' | 'lg' | 'responsive';\n className?: string;\n format?: (percent: number) => ReactNode;\n bgColor?: string;\n successColor?: string;\n exceptionColor?: string;\n trackColor?: string;\n rounded?: 'none' | 'sm' | 'md' | 'lg' | 'full';\n}\n\nexport const Progress: FC<ProgressProps> = ({\n percent = 0,\n status = 'normal',\n showInfo = true,\n strokeColor,\n strokeWidth,\n size = 'md',\n className = '',\n format,\n bgColor,\n successColor,\n exceptionColor,\n trackColor,\n rounded = 'full',\n}) => {\n const clampedPercent = Math.min(100, Math.max(0, percent));\n\n const heightClasses = {\n sm: 'h-1.5',\n md: 'h-2',\n lg: 'h-3',\n responsive: 'h-1.5 sm:h-2 md:h-3 lg:h-4',\n };\n\n const textSizeClasses = {\n sm: 'text-xs',\n md: 'text-sm',\n lg: 'text-base',\n responsive: 'text-xs sm:text-sm md:text-base lg:text-lg',\n };\n\n const roundedClasses = {\n none: 'rounded-none',\n sm: 'rounded-sm',\n md: 'rounded-md',\n lg: 'rounded-lg',\n full: 'rounded-full',\n };\n\n const getStatusColor = () => {\n if (strokeColor) return strokeColor;\n\n switch (status) {\n case 'success':\n return successColor || 'bg-green-500';\n case 'exception':\n return exceptionColor || 'bg-red-500';\n case 'active':\n return bgColor || 'bg-[#EC615B]';\n default:\n if (clampedPercent === 100) return successColor || 'bg-green-500';\n return bgColor || 'bg-[#EC615B]';\n }\n };\n\n const getTrackColor = () => {\n return trackColor || 'bg-gray-200';\n };\n\n const getStatusIcon = () => {\n if (status === 'success' || clampedPercent === 100) {\n return (\n <svg className=\"w-4 h-4 text-green-500\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z\"\n clipRule=\"evenodd\"\n />\n </svg>\n );\n }\n\n if (status === 'exception') {\n return (\n <svg className=\"w-4 h-4 text-red-500\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z\"\n clipRule=\"evenodd\"\n />\n </svg>\n );\n }\n\n return null;\n };\n\n const formatPercent = () => {\n if (format) return format(clampedPercent);\n return `${Math.round(clampedPercent)}%`;\n };\n\n const height = strokeWidth ? `${strokeWidth}px` : undefined;\n\n return (\n <div className={`flex items-center gap-2 ${className}`}>\n <div className=\"flex-1\">\n <div\n className={`w-full overflow-hidden ${heightClasses[size]} ${roundedClasses[rounded]} ${getTrackColor()}`}\n style={{ height }}\n >\n <div\n className={`${getStatusColor()} ${heightClasses[size]} ${roundedClasses[rounded]} transition-all duration-300 ease-out ${\n status === 'active' ? 'progress-active' : ''\n }`}\n style={{\n width: `${clampedPercent}%`,\n height,\n }}\n />\n </div>\n </div>\n\n {showInfo && (\n <div className={`flex items-center gap-1 ${textSizeClasses[size]} text-gray-600 font-normal`}>\n {getStatusIcon() || formatPercent()}\n </div>\n )}\n </div>\n );\n};\n\nexport default Progress;\n","import { useState } from 'react';\nimport type { FC, ChangeEvent, CSSProperties } from 'react';\n\nexport interface CheckboxProps {\n checked?: boolean;\n defaultChecked?: boolean;\n onChange?: (checked: boolean) => void;\n disabled?: boolean;\n indeterminate?: boolean;\n size?: 'sm' | 'md' | 'lg' | 'responsive';\n variant?: 'filled' | 'outline';\n className?: string;\n id?: string;\n name?: string;\n value?: string;\n checkedColor?: string;\n uncheckedColor?: string;\n checkedBorderColor?: string;\n style?: CSSProperties;\n}\n\nexport const Checkbox: FC<CheckboxProps> = ({\n checked: controlledChecked,\n defaultChecked = false,\n onChange,\n disabled = false,\n indeterminate = false,\n size = 'md',\n variant = 'filled',\n className = '',\n id,\n name,\n value,\n checkedColor = '#EC615B',\n uncheckedColor = '#ffffff',\n checkedBorderColor = '#EC615B',\n style,\n}) => {\n const [internalChecked, setInternalChecked] = useState(defaultChecked);\n\n const isControlled = controlledChecked !== undefined;\n const checked = isControlled ? controlledChecked : internalChecked;\n\n const handleChange = (e: ChangeEvent<HTMLInputElement>) => {\n if (disabled) return;\n\n const newChecked = e.target.checked;\n\n if (!isControlled) {\n setInternalChecked(newChecked);\n }\n\n onChange?.(newChecked);\n };\n\n const sizeClasses = {\n sm: 'w-4 h-4',\n md: 'w-5 h-5',\n lg: 'w-6 h-6',\n responsive: 'w-4 h-4 sm:w-5 sm:h-5 lg:w-6 lg:h-6',\n };\n\n const iconSizeClasses = {\n sm: 'w-3 h-3',\n md: 'w-3.5 h-3.5',\n lg: 'w-4 h-4',\n responsive: 'w-2.5 h-2.5 sm:w-3.5 sm:h-3.5 lg:w-4 lg:h-4',\n };\n\n const isFilled = variant === 'filled';\n\n const getCheckboxClasses = () => {\n if (disabled) {\n return 'cursor-not-allowed opacity-50 border-gray-300 bg-gray-100';\n }\n\n if (isFilled) {\n // Filled variant\n if (!checked && !indeterminate) {\n return 'border-gray-300 bg-white hover:border-gray-400';\n }\n return '';\n } else {\n // Outline variant\n if (!checked && !indeterminate) {\n return 'border-gray-300 bg-white hover:border-gray-400';\n }\n return '';\n }\n };\n\n const getCheckboxInlineStyles = (): CSSProperties | undefined => {\n if (disabled) return undefined;\n\n if (!checked && !indeterminate) {\n return undefined;\n }\n\n if (isFilled) {\n return {\n borderColor: checkedBorderColor,\n backgroundColor: checkedColor,\n };\n } else {\n return {\n borderColor: checkedBorderColor,\n backgroundColor: uncheckedColor,\n };\n }\n };\n\n const getIconColor = () => {\n if (isFilled && (checked || indeterminate)) {\n return 'text-white';\n }\n return '';\n };\n\n return (\n <div className=\"inline-flex items-center\" style={style}>\n <input\n type=\"checkbox\"\n id={id}\n name={name}\n value={value}\n checked={checked}\n onChange={handleChange}\n disabled={disabled}\n className=\"sr-only\"\n />\n <label\n htmlFor={id}\n className={`\n relative flex items-center justify-center\n ${sizeClasses[size]}\n ${variant === 'outline' ? 'border' : 'border-2'}\n rounded\n transition-all duration-200 ease-out\n cursor-pointer\n ${getCheckboxClasses()}\n ${className}\n `}\n style={getCheckboxInlineStyles()}\n >\n {/* Checkmark Icon */}\n {checked && !indeterminate && (\n <svg\n className={`${iconSizeClasses[size]} ${getIconColor()}`}\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n strokeWidth={3}\n style={\n !isFilled && (checked || indeterminate)\n ? { color: checkedColor }\n : undefined\n }\n >\n <path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M5 13l4 4L19 7\" />\n </svg>\n )}\n\n {/* Indeterminate Icon */}\n {indeterminate && (\n <svg\n className={`${iconSizeClasses[size]} ${getIconColor()}`}\n fill=\"currentColor\"\n viewBox=\"0 0 24 24\"\n style={\n !isFilled && (checked || indeterminate)\n ? { color: checkedColor }\n : undefined\n }\n >\n <rect x=\"4\" y=\"11\" width=\"16\" height=\"2\" rx=\"1\" />\n </svg>\n )}\n </label>\n </div>\n );\n};\n\nexport default Checkbox;\n","import type { FC, CSSProperties } from 'react';\n\nexport interface SelectedItem {\n id: string | number;\n label: string;\n sublabel?: string;\n}\n\nexport interface SelectedItemsListProps {\n items: SelectedItem[];\n onRemove: (id: string | number) => void;\n emptyMessage?: string;\n className?: string;\n itemClassName?: string;\n maxHeight?: string;\n // New size and responsive props\n size?: 'sm' | 'md' | 'lg' | 'responsive';\n // New custom color props\n bgColor?: string;\n hoverBgColor?: string;\n textColor?: string;\n sublabelColor?: string;\n removeButtonColor?: string;\n removeButtonHoverColor?: string;\n // New border radius prop\n rounded?: 'none' | 'sm' | 'md' | 'lg' | 'full';\n // New style prop\n style?: CSSProperties;\n}\n\n// Helper function to get size-based classes\nconst getSizeClasses = (size: 'sm' | 'md' | 'lg' | 'responsive' = 'md') => {\n const baseClasses = {\n sm: {\n container: 'space-y-1',\n item: 'px-2 py-1.5',\n label: 'text-xs',\n sublabel: 'text-[10px]',\n button: 'w-5 h-5',\n icon: 'w-3 h-3',\n },\n md: {\n container: 'space-y-2',\n item: 'px-4 py-3',\n label: 'text-sm',\n sublabel: 'text-xs',\n button: 'w-6 h-6',\n icon: 'w-4 h-4',\n },\n lg: {\n container: 'space-y-3',\n item: 'px-5 py-4',\n label: 'text-base',\n sublabel: 'text-sm',\n button: 'w-7 h-7',\n icon: 'w-5 h-5',\n },\n responsive: {\n container: 'space-y-1 sm:space-y-2 md:space-y-3',\n item: 'px-2 py-1.5 sm:px-3 sm:py-2 md:px-4 md:py-3 lg:px-5 lg:py-4',\n label: 'text-xs sm:text-sm md:text-base',\n sublabel: 'text-[10px] sm:text-xs md:text-sm',\n button: 'w-5 h-5 sm:w-5 sm:h-5 md:w-6 md:h-6 lg:w-7 lg:h-7',\n icon: 'w-3 h-3 sm:w-3 sm:h-3 md:w-4 md:h-4 lg:w-5 lg:h-5',\n },\n };\n\n return baseClasses[size];\n};\n\n// Helper function to get rounded corner classes\nconst getRoundedClasses = (rounded: 'none' | 'sm' | 'md' | 'lg' | 'full' = 'md') => {\n const roundedMap = {\n none: 'rounded-none',\n sm: 'rounded-sm',\n md: 'rounded-lg',\n lg: 'rounded-xl',\n full: 'rounded-full',\n };\n\n return roundedMap[rounded];\n};\n\nexport const SelectedItemsList: FC<SelectedItemsListProps> = ({\n items,\n onRemove,\n emptyMessage = 'No items selected',\n className = '',\n itemClassName = '',\n maxHeight = '300px',\n size = 'md',\n bgColor,\n hoverBgColor,\n textColor,\n sublabelColor,\n removeButtonColor,\n removeButtonHoverColor,\n rounded = 'md',\n style,\n}) => {\n const sizeClasses = getSizeClasses(size);\n const roundedClass = getRoundedClasses(rounded);\n\n // Default colors\n const defaultBgColor = '#F4F4F4';\n const defaultHoverBgColor = '#EBEBEB';\n const defaultTextColor = '#181918';\n const defaultSublabelColor = '#999999';\n const defaultRemoveButtonColor = '#9CA3AF';\n const defaultRemoveButtonHoverColor = '#EC615B';\n\n // Get final colors (use provided or default)\n const finalBgColor = bgColor || defaultBgColor;\n const finalHoverBgColor = hoverBgColor || defaultHoverBgColor;\n const finalTextColor = textColor || defaultTextColor;\n const finalSublabelColor = sublabelColor || defaultSublabelColor;\n const finalRemoveButtonColor = removeButtonColor || defaultRemoveButtonColor;\n const finalRemoveButtonHoverColor = removeButtonHoverColor || defaultRemoveButtonHoverColor;\n\n if (items.length === 0) {\n return (\n <div\n className={`text-center py-8 text-gray-500 text-sm ${className}`}\n style={{\n color: finalSublabelColor,\n ...style,\n }}\n >\n {emptyMessage}\n </div>\n );\n }\n\n return (\n <div\n className={`overflow-y-auto ${sizeClasses.container} ${className}`}\n style={{ maxHeight, ...style }}\n >\n {items.map((item, index) => (\n <div\n key={item.id}\n className={`\n group flex items-center justify-between\n ${roundedClass}\n transition-all duration-300 ease-out\n hover:shadow-sm\n animate-slide-in-item\n ${itemClassName}\n `}\n style={{\n backgroundColor: finalBgColor,\n animationDelay: `${index * 50}ms`,\n }}\n onMouseEnter={(e) => {\n (e.currentTarget as HTMLElement).style.backgroundColor = finalHoverBgColor;\n }}\n onMouseLeave={(e) => {\n (e.currentTarget as HTMLElement).style.backgroundColor = finalBgColor;\n }}\n >\n <div className={`flex-1 min-w-0 ${sizeClasses.item}`}>\n {item.sublabel && (\n <div\n className={`font-normal mb-0.5 ${sizeClasses.sublabel}`}\n style={{ color: finalSublabelColor }}\n >\n {item.sublabel}\n </div>\n )}\n <div\n className={`font-medium truncate ${sizeClasses.label}`}\n style={{ color: finalTextColor }}\n >\n {item.label}\n </div>\n </div>\n\n <button\n onClick={() => onRemove(item.id)}\n className={`\n ml-3 flex-shrink-0 rounded-full\n flex items-center justify-center\n transition-all duration-200 ease-out\n hover:scale-110\n active:scale-95\n focus:outline-none focus:ring-2 focus:ring-opacity-50\n ${sizeClasses.button}\n `}\n style={{\n color: finalRemoveButtonColor,\n }}\n onMouseEnter={(e) => {\n (e.currentTarget as HTMLElement).style.backgroundColor = 'white';\n (e.currentTarget as HTMLElement).style.color = finalRemoveButtonHoverColor;\n }}\n onMouseLeave={(e) => {\n (e.currentTarget as HTMLElement).style.backgroundColor = 'transparent';\n (e.currentTarget as HTMLElement).style.color = finalRemoveButtonColor;\n }}\n aria-label={`Remove ${item.label}`}\n >\n <svg\n className={sizeClasses.icon}\n fill=\"none\"\n stroke=\"currentColor\"\n viewBox=\"0 0 24 24\"\n >\n <path\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n strokeWidth={2}\n d=\"M6 18L18 6M6 6l12 12\"\n />\n </svg>\n </button>\n </div>\n ))}\n </div>\n );\n};\n\nexport default SelectedItemsList;\n","import React from 'react';\nimport { Input as AntInput, InputProps as AntInputProps } from 'antd';\n\nexport interface InputProps extends AntInputProps {\n label?: string;\n error?: string;\n helperText?: string;\n}\n\nexport const Input: React.FC<InputProps> = ({\n label,\n error,\n helperText,\n className = '',\n status,\n ...props\n}) => {\n // Generate a unique class name for this input instance to scope the styles\n const errorClass = error ? 'input-error-state' : '';\n\n return (\n <div className=\"w-full\">\n {label && (\n <label className=\"block text-sm font-medium mb-2\" style={{ color: error ? '#C21919' : '#181918' }}>\n {label}\n {props.required && <span style={{ color: '#C21919' }}>*</span>}\n </label>\n )}\n <style>\n {error && `\n .input-error-state .ant-input-group-addon {\n border-color: #C21919 !important;\n }\n .input-error-state .ant-input-group-addon:first-child {\n border-right: none !important;\n }\n .input-error-state .ant-input {\n border-color: #C21919 !important;\n }\n .input-error-state .ant-input:focus,\n .input-error-state .ant-input-focused {\n border-color: #C21919 !important;\n box-shadow: 0 0 0 2px rgba(194, 25, 25, 0.1) !important;\n }\n `}\n </style>\n <AntInput\n className={`${className} ${errorClass}`}\n status={error ? 'error' : status}\n {...props}\n style={{\n height: '44px',\n borderRadius: '12px',\n borderColor: error ? '#C21919' : '#D1D1D1',\n ...props.style,\n }}\n />\n {error && (\n <div className=\"flex items-center mt-1 text-xs text-[#C21919]\">\n <svg\n className=\"w-3 h-3 mr-1\"\n fill=\"currentColor\"\n viewBox=\"0 0 20 20\"\n >\n <path\n fillRule=\"evenodd\"\n d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7 4a1 1 0 11-2 0 1 1 0 012 0zm-1-9a1 1 0 00-1 1v4a1 1 0 102 0V6a1 1 0 00-1-1z\"\n clipRule=\"evenodd\"\n />\n </svg>\n {error}\n </div>\n )}\n {!error && helperText && (\n <div className=\"mt-1 text-xs text-gray-500\">{helperText}</div>\n )}\n </div>\n );\n};\n","import React from 'react';\nimport { Input as AntInput } from 'antd';\nimport type { PasswordProps as AntPasswordProps } from 'antd/es/input';\n\nexport interface PasswordInputProps extends AntPasswordProps {\n label?: string;\n error?: string;\n helperText?: string;\n}\n\nexport const PasswordInput: React.FC<PasswordInputProps> = ({\n label,\n error,\n helperText,\n className = '',\n status,\n ...props\n}) => {\n const errorClass = error ? 'password-input-error-state' : '';\n const combinedClassName = `password-input-custom ${className} ${errorClass}`;\n\n return (\n <div className=\"w-full\">\n {label && (\n <label className=\"block text-sm font-medium mb-2\" style={{ color: error ? '#C21919' : '#181918' }}>\n {label}\n {props.required && <span style={{ color: '#C21919' }}>*</span>}\n </label>\n )}\n <style>\n {error && `\n .password-input-error-state .ant-input-group-addon {\n border-color: #C21919 !important;\n }\n .password-input-error-state .ant-input-group-addon:first-child {\n border-right: none !important;\n }\n .password-input-error-state .ant-input,\n .password-input-error-state .ant-input-password .ant-input {\n border-color: #C21919 !important;\n }\n .password-input-error-state .ant-input:focus,\n .password-input-error-state .ant-input-focused,\n .password-input-error-state .ant-input-password .ant-input:focus {\n border-color: #C21919 !important;\n box-shadow: 0 0 0 2px rgba(194, 25, 25, 0.1) !important;\n }\n `}\n </style>\n <AntInput.Password\n className={combinedClassName}\n status={error ? 'error' : status}\n {...props}\n style={{\n height: '44px',\n borderRadius: '12px',\n borderColor: error ? '#C21919' : '#D1D1D1',\n ...props.style,\n }}\n />\n {error && (\n <div className=\"flex items-center mt-1 text-xs text-[#C21919]\">\n <svg\n className=\"w-3 h-3 mr-1\"\n fill=\"currentColor\"\n viewBox=\"0 0 20 20\"\n >\n <path\n fillRule=\"evenodd\"\n d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7 4a1 1 0 11-2 0 1 1 0 012 0zm-1-9a1 1 0 00-1 1v4a1 1 0 102 0V6a1 1 0 00-1-1z\"\n clipRule=\"evenodd\"\n />\n </svg>\n {error}\n </div>\n )}\n {!error && helperText && (\n <div className=\"mt-1 text-xs text-gray-500\">{helperText}</div>\n )}\n </div>\n );\n};\n","import React, { useRef, useState, useEffect, KeyboardEvent, ClipboardEvent } from 'react';\nimport { Input, InputRef } from 'antd';\n\nexport interface OTPInputProps {\n length?: number;\n value?: string;\n onChange?: (value: string) => void;\n onComplete?: (value: string) => void;\n error?: boolean;\n errorMessage?: string;\n disabled?: boolean;\n className?: string;\n}\n\nexport const OTPInput: React.FC<OTPInputProps> = ({\n length = 6,\n value = '',\n onChange,\n onComplete,\n error = false,\n errorMessage,\n disabled = false,\n className = '',\n}) => {\n const [otp, setOtp] = useState<string[]>(Array(length).fill(''));\n const inputRefs = useRef<(InputRef | null)[]>([]);\n\n useEffect(() => {\n if (value) {\n const otpArray = value.split('').slice(0, length);\n const filledOtp = [...otpArray, ...Array(length - otpArray.length).fill('')];\n setOtp(filledOtp);\n }\n }, [value, length]);\n\n const handleChange = (index: number, val: string) => {\n // Only allow numbers\n if (val && !/^\\d+$/.test(val)) return;\n\n const newOtp = [...otp];\n newOtp[index] = val.slice(-1); // Take only the last character\n setOtp(newOtp);\n\n const otpString = newOtp.join('');\n onChange?.(otpString);\n\n // Move to next input if value is entered\n if (val && index < length - 1) {\n inputRefs.current[index + 1]?.focus();\n }\n\n // Call onComplete if all fields are filled\n if (newOtp.every((digit) => digit !== '')) {\n onComplete?.(otpString);\n }\n };\n\n const handleKeyDown = (index: number, e: KeyboardEvent<HTMLInputElement>) => {\n // Move to previous input on backspace if current input is empty\n if (e.key === 'Backspace' && !otp[index] && index > 0) {\n inputRefs.current[index - 1]?.focus();\n }\n };\n\n const handlePaste = (e: ClipboardEvent<HTMLInputElement>) => {\n e.preventDefault();\n const pastedData = e.clipboardData.getData('text/plain');\n\n // Only allow numbers\n if (!/^\\d+$/.test(pastedData)) return;\n\n const pastedArray = pastedData.split('').slice(0, length);\n const newOtp = [...pastedArray, ...Array(length - pastedArray.length).fill('')];\n setOtp(newOtp);\n\n const otpString = newOtp.join('');\n onChange?.(otpString);\n\n // Focus on the next empty input or the last input\n const nextIndex = Math.min(pastedArray.length, length - 1);\n inputRefs.current[nextIndex]?.focus();\n\n // Call onComplete if all fields are filled\n if (newOtp.every((digit) => digit !== '')) {\n onComplete?.(otpString);\n }\n };\n\n return (\n <div className=\"w-full\">\n <div className={`flex gap-2 justify-center ${className}`}>\n {otp.map((digit, index) => (\n <React.Fragment key={index}>\n <Input\n ref={(el) => {\n inputRefs.current[index] = el;\n }}\n placeholder=\"\"\n value={digit}\n onChange={(e) => handleChange(index, e.target.value)}\n onKeyDown={(e) => handleKeyDown(index, e)}\n onPaste={handlePaste}\n disabled={disabled}\n maxLength={1}\n className=\"text-center text-lg font-semibold otp-input-field\"\n style={{\n width: '63px',\n height: '44px',\n borderRadius: '12px',\n borderColor: error ? '#C21919' : '#D1D1D1',\n }}\n />\n {index === Math.floor(length / 2) - 1 && (\n <div className=\"flex items-center justify-center px-1\">\n <span className=\"text-gray-400 text-xl\">—</span>\n </div>\n )}\n </React.Fragment>\n ))}\n </div>\n {error && errorMessage && (\n <div className=\"flex items-center justify-center mt-2 text-xs text-[#C21919]\">\n <svg className=\"w-3 h-3 mr-1\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7 4a1 1 0 11-2 0 1 1 0 012 0zm-1-9a1 1 0 00-1 1v4a1 1 0 102 0V6a1 1 0 00-1-1z\"\n clipRule=\"evenodd\"\n />\n </svg>\n {errorMessage}\n </div>\n )}\n </div>\n );\n};\n","import React, { useState, useEffect } from 'react';\nimport { Input as AntInput, Select } from 'antd';\nimport type { InputProps as AntInputProps } from 'antd';\n\nexport interface PhoneInputProps\n extends Omit<AntInputProps, 'addonBefore' | 'value' | 'onChange'> {\n label?: string;\n error?: string;\n helperText?: string;\n countryCode?: string;\n onCountryCodeChange?: (value: string) => void;\n countryCodes?: { value: string; label: string }[];\n showCountryCodeDropdown?: boolean;\n format?: 'default' | 'spaced' | 'dashed' | 'none';\n customFormat?: (value: string) => string;\n value?: string;\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n}\n\nexport const PhoneInput: React.FC<PhoneInputProps> = ({\n label,\n error,\n helperText,\n className = '',\n countryCode = '+234',\n onCountryCodeChange,\n countryCodes = [\n { value: '+234', label: '+234' },\n { value: '+1', label: '+1' },\n { value: '+44', label: '+44' },\n { value: '+91', label: '+91' },\n ],\n showCountryCodeDropdown = true,\n format = 'spaced',\n customFormat,\n value,\n onChange,\n ...props\n}) => {\n const errorClass = error ? 'phone-input-error-state' : '';\n const [displayValue, setDisplayValue] = useState('');\n\n // Update display value when external value changes\n useEffect(() => {\n if (value !== undefined) {\n const cleaned = String(value).replace(/\\D/g, '');\n const formatted = formatPhoneNumber(cleaned);\n setDisplayValue(formatted);\n }\n }, [value, format, countryCode]);\n\n const formatPhoneNumber = (val: string): string => {\n // Remove all non-digits\n const cleaned = val.replace(/\\D/g, '');\n\n // If custom format is provided, use it\n if (customFormat) {\n return customFormat(cleaned);\n }\n\n // If format is 'none', return unformatted\n if (format === 'none') {\n return cleaned;\n }\n\n // Format based on country code and format type\n let formatted = '';\n\n if (format === 'spaced') {\n // Format: 803 456 7890\n if (cleaned.length <= 3) {\n formatted = cleaned;\n } else if (cleaned.length <= 6) {\n formatted = `${cleaned.slice(0, 3)} ${cleaned.slice(3)}`;\n } else {\n formatted = `${cleaned.slice(0, 3)} ${cleaned.slice(3, 6)} ${cleaned.slice(6, 10)}`;\n }\n } else if (format === 'dashed') {\n // Format: 803-456-7890\n if (cleaned.length <= 3) {\n formatted = cleaned;\n } else if (cleaned.length <= 6) {\n formatted = `${cleaned.slice(0, 3)}-${cleaned.slice(3)}`;\n } else {\n formatted = `${cleaned.slice(0, 3)}-${cleaned.slice(3, 6)}-${cleaned.slice(6, 10)}`;\n }\n } else {\n // Default format based on country code\n if (countryCode === '+1') {\n // US format: (803) 456-7890\n if (cleaned.length <= 3) {\n formatted = cleaned;\n } else if (cleaned.length <= 6) {\n formatted = `(${cleaned.slice(0, 3)}) ${cleaned.slice(3)}`;\n } else {\n formatted = `(${cleaned.slice(0, 3)}) ${cleaned.slice(3, 6)}-${cleaned.slice(6, 10)}`;\n }\n } else {\n // International format: 803 456 7890\n if (cleaned.length <= 3) {\n formatted = cleaned;\n } else if (cleaned.length <= 6) {\n formatted = `${cleaned.slice(0, 3)} ${cleaned.slice(3)}`;\n } else {\n formatted = `${cleaned.slice(0, 3)} ${cleaned.slice(3, 6)} ${cleaned.slice(6, 10)}`;\n }\n }\n }\n\n return formatted;\n };\n\n const handleKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => {\n // Only allow numbers and control keys\n if (\n !/^\\d$/.test(e.key) &&\n e.key !== 'Backspace' &&\n e.key !== 'Delete' &&\n e.key !== 'Tab' &&\n e.key !== 'ArrowLeft' &&\n e.key !== 'ArrowRight' &&\n e.key !== 'Home' &&\n e.key !== 'End'\n ) {\n e.preventDefault();\n }\n props.onKeyDown?.(e);\n };\n\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const input = e.target;\n const cursorPosition = input.selectionStart || 0;\n\n // Only allow numbers\n const cleaned = input.value.replace(/\\D/g, '');\n\n // Format the number\n const formatted = formatPhoneNumber(cleaned);\n\n // Update display value\n setDisplayValue(formatted);\n\n // Calculate cursor position adjustment\n const oldLength = displayValue.length;\n const newLength = formatted.length;\n const diff = newLength - oldLength;\n\n // Restore cursor position after React updates\n requestAnimationFrame(() => {\n const newCursorPosition = Math.max(0, Math.min(cursorPosition + diff, formatted.length));\n input.setSelectionRange(newCursorPosition, newCursorPosition);\n });\n\n // Call onChange with the raw cleaned value\n if (onChange) {\n const syntheticEvent = {\n ...e,\n target: { ...e.target, value: cleaned },\n } as React.ChangeEvent<HTMLInputElement>;\n onChange(syntheticEvent);\n }\n };\n\n const handlePaste = (e: React.ClipboardEvent<HTMLInputElement>) => {\n e.preventDefault();\n const pastedData = e.clipboardData.getData('text/plain');\n const numericData = pastedData.replace(/\\D/g, '');\n\n const target = e.target as HTMLInputElement;\n const start = target.selectionStart || 0;\n const currentCleaned = displayValue.replace(/\\D/g, '');\n const newCleaned = currentCleaned.slice(0, start) + numericData;\n\n // Format the new value\n const formatted = formatPhoneNumber(newCleaned);\n setDisplayValue(formatted);\n\n // Call onChange with the raw cleaned value\n if (onChange) {\n const syntheticEvent = {\n ...e,\n target: { ...e.target, value: newCleaned },\n } as any;\n onChange(syntheticEvent);\n }\n\n props.onPaste?.(e);\n };\n\n return (\n <div className=\"w-full\">\n {label && (\n <label\n className=\"block text-sm font-medium mb-2\"\n style={{ color: error ? '#C21919' : '#181918' }}\n >\n {label}\n {props.required && <span style={{ color: '#C21919' }}>*</span>}\n </label>\n )}\n <style>\n {`\n .phone-input-container {\n display: flex;\n gap: 8px;\n }\n\n .phone-input-error-state .ant-select-selector {\n border-color: #C21919 !important;\n }\n\n .phone-input-error-state .ant-select-focused .ant-select-selector {\n border-color: #C21919 !important;\n box-shadow: 0 0 0 2px rgba(194, 25, 25, 0.1) !important;\n }\n\n .phone-input-error-state .ant-input {\n border-color: #C21919 !important;\n }\n\n .phone-input-error-state .ant-input:focus {\n border-color: #C21919 !important;\n box-shadow: 0 0 0 2px rgba(194, 25, 25, 0.1) !important;\n }\n\n .phone-input-country-code-static {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 61px;\n height: 44px;\n border-radius: 12px;\n border: 1px solid;\n font-size: 14px;\n font-weight: 500;\n background-color: #FAFAFA;\n }\n\n .phone-input-error-state .phone-input-country-code-static {\n border-color: #C21919 !important;\n }\n `}\n </style>\n <div className={`phone-input-container ${errorClass}`}>\n {showCountryCodeDropdown ? (\n <Select\n value={countryCode}\n onChange={onCountryCodeChange}\n options={countryCodes}\n style={{\n width: '85px',\n borderRadius: '12px',\n }}\n className={errorClass}\n popupClassName=\"country-code-dropdown\"\n disabled={props.disabled}\n />\n ) : (\n <div\n className=\"phone-input-country-code-static\"\n style={{\n borderColor: error ? '#C21919' : '#D1D1D1',\n color: props.disabled ? '#00000040' : '#000000',\n backgroundColor: props.disabled ? '#f5f5f5' : '#FAFAFA',\n }}\n >\n {countryCode}\n </div>\n )}\n <AntInput\n {...props}\n value={displayValue}\n className={className}\n onKeyDown={handleKeyDown}\n onChange={handleChange}\n onPaste={handlePaste}\n style={{\n flex: 1,\n height: '44px',\n borderRadius: '12px',\n borderColor: error ? '#C21919' : '#D1D1D1',\n ...props.style,\n }}\n />\n </div>\n {error && (\n <div className=\"flex items-center mt-1 text-xs text-[#C21919]\">\n <svg className=\"w-3 h-3 mr-1\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7 4a1 1 0 11-2 0 1 1 0 012 0zm-1-9a1 1 0 00-1 1v4a1 1 0 102 0V6a1 1 0 00-1-1z\"\n clipRule=\"evenodd\"\n />\n </svg>\n {error}\n </div>\n )}\n {!error && helperText && <div className=\"mt-1 text-xs text-gray-500\">{helperText}</div>}\n </div>\n );\n};\n","import React, { useState, useEffect } from 'react';\nimport { Input as AntInput } from 'antd';\nimport type { InputProps as AntInputProps } from 'antd';\n\nexport interface CurrencyInputProps extends Omit<AntInputProps, 'onChange'> {\n label?: string;\n error?: string;\n helperText?: string;\n currencySymbol?: string;\n formatAmount?: boolean;\n onChange?: (value: string, event: React.ChangeEvent<HTMLInputElement>) => void;\n}\n\nexport const CurrencyInput: React.FC<CurrencyInputProps> = ({\n label,\n error,\n helperText,\n className = '',\n status,\n currencySymbol = '₦',\n formatAmount = false,\n onChange,\n value: externalValue,\n ...props\n}) => {\n const errorClass = error ? 'currency-input-error-state' : '';\n const [displayValue, setDisplayValue] = useState<string>('');\n\n // Format number with commas\n const formatNumber = (num: string): string => {\n // Remove all non-digit characters except decimal point\n const cleanNum = num.replace(/[^\\d.]/g, '');\n\n // Split into integer and decimal parts\n const parts = cleanNum.split('.');\n const integerPart = parts[0];\n const decimalPart = parts[1];\n\n // Add commas to integer part\n const formattedInteger = integerPart.replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\n\n // Combine with decimal part if exists\n return decimalPart !== undefined ? `${formattedInteger}.${decimalPart}` : formattedInteger;\n };\n\n // Remove formatting to get raw value\n const unformatNumber = (formatted: string): string => {\n return formatted.replace(/,/g, '');\n };\n\n // Update display value when external value changes\n useEffect(() => {\n if (externalValue !== undefined) {\n const stringValue = String(externalValue);\n setDisplayValue(formatAmount ? formatNumber(stringValue) : stringValue);\n }\n }, [externalValue, formatAmount]);\n\n // Handle input change\n const handleChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const inputValue = e.target.value;\n\n if (formatAmount) {\n const rawValue = unformatNumber(inputValue);\n const formatted = formatNumber(rawValue);\n setDisplayValue(formatted);\n\n if (onChange) {\n onChange(rawValue, e);\n }\n } else {\n setDisplayValue(inputValue);\n if (onChange) {\n onChange(inputValue, e);\n }\n }\n };\n\n return (\n <div className=\"w-full\">\n {label && (\n <label\n className=\"block text-sm font-medium mb-2\"\n style={{ color: error ? '#C21919' : '#181918' }}\n >\n {label}\n {props.required && <span style={{ color: '#C21919' }}>*</span>}\n </label>\n )}\n <style>\n {`\n .currency-input-wrapper.ant-input-affix-wrapper {\n display: flex;\n align-items: center;\n padding: 0;\n height: 44px;\n border-radius: 12px;\n }\n\n .currency-input-wrapper .ant-input-prefix {\n display: flex;\n align-items: center;\n justify-content: center;\n width: 37px;\n height: 41px;\n background-color: #F0F2F4;\n margin: 0;\n border-radius: 12px 0 0 12px;\n color: #000000;\n flex-shrink: 0;\n margin-right: 10px;\n }\n\n .currency-input-wrapper .ant-input {\n padding: 11px 16px 11px 20px;\n height: 44px;\n }\n\n .currency-input-error-state.ant-input-affix-wrapper {\n border-color: #C21919 !important;\n }\n\n .currency-input-error-state.ant-input-affix-wrapper:focus,\n .currency-input-error-state.ant-input-affix-wrapper-focused {\n border-color: #C21919 !important;\n box-shadow: 0 0 0 2px rgba(194, 25, 25, 0.1) !important;\n }\n `}\n </style>\n <AntInput\n className={`currency-input-wrapper ${className} ${errorClass}`}\n status={error ? 'error' : status}\n prefix={<span>{currencySymbol}</span>}\n {...props}\n value={formatAmount ? displayValue : externalValue}\n onChange={handleChange}\n style={{\n borderColor: error ? '#C21919' : '#D1D1D1',\n ...props.style,\n }}\n />\n {error && (\n <div className=\"flex items-center mt-1 text-xs text-[#C21919]\">\n <svg className=\"w-3 h-3 mr-1\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\n <path\n fillRule=\"evenodd\"\n d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7 4a1 1 0 11-2 0 1 1 0 012 0zm-1-9a1 1 0 00-1 1v4a1 1 0 102 0V6a1 1 0 00-1-1z\"\n clipRule=\"evenodd\"\n />\n </svg>\n {error}\n </div>\n )}\n {!error && helperText && <div className=\"mt-1 text-xs text-gray-500\">{helperText}</div>}\n </div>\n );\n};\n","import { createContext } from 'react';\nconst IconContext = /*#__PURE__*/createContext({});\nexport default IconContext;","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e)){var o=e.length;for(t=0;t<o;t++)e[t]&&(f=r(e[t]))&&(n&&(n+=\" \"),n+=f)}else for(f in e)e[f]&&(n&&(n+=\" \"),n+=f);return n}export function clsx(){for(var e,t,f=0,n=\"\",o=arguments.length;f<o;f++)(e=arguments[f])&&(t=r(e))&&(n&&(n+=\" \"),n+=t);return n}export default clsx;","// 36 Hex to reduce the size of the file\nexport default {\n aliceblue: '9ehhb',\n antiquewhite: '9sgk7',\n aqua: '1ekf',\n aquamarine: '4zsno',\n azure: '9eiv3',\n beige: '9lhp8',\n bisque: '9zg04',\n black: '0',\n blanchedalmond: '9zhe5',\n blue: '73',\n blueviolet: '5e31e',\n brown: '6g016',\n burlywood: '8ouiv',\n cadetblue: '3qba8',\n chartreuse: '4zshs',\n chocolate: '87k0u',\n coral: '9yvyo',\n cornflowerblue: '3xael',\n cornsilk: '9zjz0',\n crimson: '8l4xo',\n cyan: '1ekf',\n darkblue: '3v',\n darkcyan: 'rkb',\n darkgoldenrod: '776yz',\n darkgray: '6mbhl',\n darkgreen: 'jr4',\n darkgrey: '6mbhl',\n darkkhaki: '7ehkb',\n darkmagenta: '5f91n',\n darkolivegreen: '3bzfz',\n darkorange: '9yygw',\n darkorchid: '5z6x8',\n darkred: '5f8xs',\n darksalmon: '9441m',\n darkseagreen: '5lwgf',\n darkslateblue: '2th1n',\n darkslategray: '1ugcv',\n darkslategrey: '1ugcv',\n darkturquoise: '14up',\n darkviolet: '5rw7n',\n deeppink: '9yavn',\n deepskyblue: '11xb',\n dimgray: '442g9',\n dimgrey: '442g9',\n dodgerblue: '16xof',\n firebrick: '6y7tu',\n floralwhite: '9zkds',\n forestgreen: '1cisi',\n fuchsia: '9y70f',\n gainsboro: '8m8kc',\n ghostwhite: '9pq0v',\n goldenrod: '8j4f4',\n gold: '9zda8',\n gray: '50i2o',\n green: 'pa8',\n greenyellow: '6senj',\n grey: '50i2o',\n honeydew: '9eiuo',\n hotpink: '9yrp0',\n indianred: '80gnw',\n indigo: '2xcoy',\n ivory: '9zldc',\n khaki: '9edu4',\n lavenderblush: '9ziet',\n lavender: '90c8q',\n lawngreen: '4vk74',\n lemonchiffon: '9zkct',\n lightblue: '6s73a',\n lightcoral: '9dtog',\n lightcyan: '8s1rz',\n lightgoldenrodyellow: '9sjiq',\n lightgray: '89jo3',\n lightgreen: '5nkwg',\n lightgrey: '89jo3',\n lightpink: '9z6wx',\n lightsalmon: '9z2ii',\n lightseagreen: '19xgq',\n lightskyblue: '5arju',\n lightslategray: '4nwk9',\n lightslategrey: '4nwk9',\n lightsteelblue: '6wau6',\n lightyellow: '9zlcw',\n lime: '1edc',\n limegreen: '1zcxe',\n linen: '9shk6',\n magenta: '9y70f',\n maroon: '4zsow',\n mediumaquamarine: '40eju',\n mediumblue: '5p',\n mediumorchid: '79qkz',\n mediumpurple: '5r3rv',\n mediumseagreen: '2d9ip',\n mediumslateblue: '4tcku',\n mediumspringgreen: '1di2',\n mediumturquoise: '2uabw',\n mediumvioletred: '7rn9h',\n midnightblue: 'z980',\n mintcream: '9ljp6',\n mistyrose: '9zg0x',\n moccasin: '9zfzp',\n navajowhite: '9zest',\n navy: '3k',\n oldlace: '9wq92',\n olive: '50hz4',\n olivedrab: '472ub',\n orange: '9z3eo',\n orangered: '9ykg0',\n orchid: '8iu3a',\n palegoldenrod: '9bl4a',\n palegreen: '5yw0o',\n paleturquoise: '6v4ku',\n palevioletred: '8k8lv',\n papayawhip: '9zi6t',\n peachpuff: '9ze0p',\n peru: '80oqn',\n pink: '9z8wb',\n plum: '8nba5',\n powderblue: '6wgdi',\n purple: '4zssg',\n rebeccapurple: '3zk49',\n red: '9y6tc',\n rosybrown: '7cv4f',\n royalblue: '2jvtt',\n saddlebrown: '5fmkz',\n salmon: '9rvci',\n sandybrown: '9jn1c',\n seagreen: '1tdnb',\n seashell: '9zje6',\n sienna: '6973h',\n silver: '7ir40',\n skyblue: '5arjf',\n slateblue: '45e4t',\n slategray: '4e100',\n slategrey: '4e100',\n snow: '9zke2',\n springgreen: '1egv',\n steelblue: '2r1kk',\n tan: '87yx8',\n teal: 'pds',\n thistle: '8ggk8',\n tomato: '9yqfb',\n turquoise: '2j4r4',\n violet: '9b10u',\n wheat: '9ld4j',\n white: '9zldr',\n whitesmoke: '9lhpx',\n yellow: '9zl6o',\n yellowgreen: '61fzm'\n};","import presetColors from \"./presetColors\";\nconst round = Math.round;\n\n/**\n * Support format, alpha unit will check the % mark:\n * - rgba(102, 204, 255, .5) -> [102, 204, 255, 0.5]\n * - rgb(102 204 255 / .5) -> [102, 204, 255, 0.5]\n * - rgb(100%, 50%, 0% / 50%) -> [255, 128, 0, 0.5]\n * - hsl(270, 60, 40, .5) -> [270, 60, 40, 0.5]\n * - hsl(270deg 60% 40% / 50%) -> [270, 60, 40, 0.5]\n *\n * When `base` is provided, the percentage value will be divided by `base`.\n */\nfunction splitColorStr(str, parseNum) {\n const match = str\n // Remove str before `(`\n .replace(/^[^(]*\\((.*)/, '$1')\n // Remove str after `)`\n .replace(/\\).*/, '').match(/\\d*\\.?\\d+%?/g) || [];\n const numList = match.map(item => parseFloat(item));\n for (let i = 0; i < 3; i += 1) {\n numList[i] = parseNum(numList[i] || 0, match[i] || '', i);\n }\n\n // For alpha. 50% should be 0.5\n if (match[3]) {\n numList[3] = match[3].includes('%') ? numList[3] / 100 : numList[3];\n } else {\n // By default, alpha is 1\n numList[3] = 1;\n }\n return numList;\n}\nconst parseHSVorHSL = (num, _, index) => index === 0 ? num : num / 100;\n\n/** round and limit number to integer between 0-255 */\nfunction limitRange(value, max) {\n const mergedMax = max || 255;\n if (value > mergedMax) {\n return mergedMax;\n }\n if (value < 0) {\n return 0;\n }\n return value;\n}\nexport class FastColor {\n /**\n * All FastColor objects are valid. So isValid is always true. This property is kept to be compatible with TinyColor.\n */\n isValid = true;\n\n /**\n * Red, R in RGB\n */\n r = 0;\n\n /**\n * Green, G in RGB\n */\n g = 0;\n\n /**\n * Blue, B in RGB\n */\n b = 0;\n\n /**\n * Alpha/Opacity, A in RGBA/HSLA\n */\n a = 1;\n\n // HSV privates\n _h;\n _hsl_s;\n _hsv_s;\n _l;\n _v;\n\n // intermediate variables to calculate HSL/HSV\n _max;\n _min;\n _brightness;\n constructor(input) {\n /**\n * Always check 3 char in the object to determine the format.\n * We not use function in check to save bundle size.\n * e.g. 'rgb' -> { r: 0, g: 0, b: 0 }.\n */\n function matchFormat(str) {\n return str[0] in input && str[1] in input && str[2] in input;\n }\n if (!input) {\n // Do nothing since already initialized\n } else if (typeof input === 'string') {\n const trimStr = input.trim();\n function matchPrefix(prefix) {\n return trimStr.startsWith(prefix);\n }\n if (/^#?[A-F\\d]{3,8}$/i.test(trimStr)) {\n this.fromHexString(trimStr);\n } else if (matchPrefix('rgb')) {\n this.fromRgbString(trimStr);\n } else if (matchPrefix('hsl')) {\n this.fromHslString(trimStr);\n } else if (matchPrefix('hsv') || matchPrefix('hsb')) {\n this.fromHsvString(trimStr);\n } else {\n // From preset color\n const presetColor = presetColors[trimStr.toLowerCase()];\n if (presetColor) {\n this.fromHexString(\n // Convert 36 hex to 16 hex\n parseInt(presetColor, 36).toString(16).padStart(6, '0'));\n }\n }\n } else if (input instanceof FastColor) {\n this.r = input.r;\n this.g = input.g;\n this.b = input.b;\n this.a = input.a;\n this._h = input._h;\n this._hsl_s = input._hsl_s;\n this._hsv_s = input._hsv_s;\n this._l = input._l;\n this._v = input._v;\n } else if (matchFormat('rgb')) {\n this.r = limitRange(input.r);\n this.g = limitRange(input.g);\n this.b = limitRange(input.b);\n this.a = typeof input.a === 'number' ? limitRange(input.a, 1) : 1;\n } else if (matchFormat('hsl')) {\n this.fromHsl(input);\n } else if (matchFormat('hsv')) {\n this.fromHsv(input);\n } else {\n throw new Error('@ant-design/fast-color: unsupported input ' + JSON.stringify(input));\n }\n }\n\n // ======================= Setter =======================\n\n setR(value) {\n return this._sc('r', value);\n }\n setG(value) {\n return this._sc('g', value);\n }\n setB(value) {\n return this._sc('b', value);\n }\n setA(value) {\n return this._sc('a', value, 1);\n }\n setHue(value) {\n const hsv = this.toHsv();\n hsv.h = value;\n return this._c(hsv);\n }\n\n // ======================= Getter =======================\n /**\n * Returns the perceived luminance of a color, from 0-1.\n * @see http://www.w3.org/TR/2008/REC-WCAG20-20081211/#relativeluminancedef\n */\n getLuminance() {\n function adjustGamma(raw) {\n const val = raw / 255;\n return val <= 0.03928 ? val / 12.92 : Math.pow((val + 0.055) / 1.055, 2.4);\n }\n const R = adjustGamma(this.r);\n const G = adjustGamma(this.g);\n const B = adjustGamma(this.b);\n return 0.2126 * R + 0.7152 * G + 0.0722 * B;\n }\n getHue() {\n if (typeof this._h === 'undefined') {\n const delta = this.getMax() - this.getMin();\n if (delta === 0) {\n this._h = 0;\n } else {\n this._h = round(60 * (this.r === this.getMax() ? (this.g - this.b) / delta + (this.g < this.b ? 6 : 0) : this.g === this.getMax() ? (this.b - this.r) / delta + 2 : (this.r - this.g) / delta + 4));\n }\n }\n return this._h;\n }\n\n /**\n * @deprecated should use getHSVSaturation or getHSLSaturation instead\n */\n getSaturation() {\n return this.getHSVSaturation();\n }\n getHSVSaturation() {\n if (typeof this._hsv_s === 'undefined') {\n const delta = this.getMax() - this.getMin();\n if (delta === 0) {\n this._hsv_s = 0;\n } else {\n this._hsv_s = delta / this.getMax();\n }\n }\n return this._hsv_s;\n }\n getHSLSaturation() {\n if (typeof this._hsl_s === 'undefined') {\n const delta = this.getMax() - this.getMin();\n if (delta === 0) {\n this._hsl_s = 0;\n } else {\n const l = this.getLightness();\n this._hsl_s = delta / 255 / (1 - Math.abs(2 * l - 1));\n }\n }\n return this._hsl_s;\n }\n getLightness() {\n if (typeof this._l === 'undefined') {\n this._l = (this.getMax() + this.getMin()) / 510;\n }\n return this._l;\n }\n getValue() {\n if (typeof this._v === 'undefined') {\n this._v = this.getMax() / 255;\n }\n return this._v;\n }\n\n /**\n * Returns the perceived brightness of the color, from 0-255.\n * Note: this is not the b of HSB\n * @see http://www.w3.org/TR/AERT#color-contrast\n */\n getBrightness() {\n if (typeof this._brightness === 'undefined') {\n this._brightness = (this.r * 299 + this.g * 587 + this.b * 114) / 1000;\n }\n return this._brightness;\n }\n\n // ======================== Func ========================\n\n darken(amount = 10) {\n const h = this.getHue();\n const s = this.getSaturation();\n let l = this.getLightness() - amount / 100;\n if (l < 0) {\n l = 0;\n }\n return this._c({\n h,\n s,\n l,\n a: this.a\n });\n }\n lighten(amount = 10) {\n const h = this.getHue();\n const s = this.getSaturation();\n let l = this.getLightness() + amount / 100;\n if (l > 1) {\n l = 1;\n }\n return this._c({\n h,\n s,\n l,\n a: this.a\n });\n }\n\n /**\n * Mix the current color a given amount with another color, from 0 to 100.\n * 0 means no mixing (return current color).\n */\n mix(input, amount = 50) {\n const color = this._c(input);\n const p = amount / 100;\n const calc = key => (color[key] - this[key]) * p + this[key];\n const rgba = {\n r: round(calc('r')),\n g: round(calc('g')),\n b: round(calc('b')),\n a: round(calc('a') * 100) / 100\n };\n return this._c(rgba);\n }\n\n /**\n * Mix the color with pure white, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return white.\n */\n tint(amount = 10) {\n return this.mix({\n r: 255,\n g: 255,\n b: 255,\n a: 1\n }, amount);\n }\n\n /**\n * Mix the color with pure black, from 0 to 100.\n * Providing 0 will do nothing, providing 100 will always return black.\n */\n shade(amount = 10) {\n return this.mix({\n r: 0,\n g: 0,\n b: 0,\n a: 1\n }, amount);\n }\n onBackground(background) {\n const bg = this._c(background);\n const alpha = this.a + bg.a * (1 - this.a);\n const calc = key => {\n return round((this[key] * this.a + bg[key] * bg.a * (1 - this.a)) / alpha);\n };\n return this._c({\n r: calc('r'),\n g: calc('g'),\n b: calc('b'),\n a: alpha\n });\n }\n\n // ======================= Status =======================\n isDark() {\n return this.getBrightness() < 128;\n }\n isLight() {\n return this.getBrightness() >= 128;\n }\n\n // ======================== MISC ========================\n equals(other) {\n return this.r === other.r && this.g === other.g && this.b === other.b && this.a === other.a;\n }\n clone() {\n return this._c(this);\n }\n\n // ======================= Format =======================\n toHexString() {\n let hex = '#';\n const rHex = (this.r || 0).toString(16);\n hex += rHex.length === 2 ? rHex : '0' + rHex;\n const gHex = (this.g || 0).toString(16);\n hex += gHex.length === 2 ? gHex : '0' + gHex;\n const bHex = (this.b || 0).toString(16);\n hex += bHex.length === 2 ? bHex : '0' + bHex;\n if (typeof this.a === 'number' && this.a >= 0 && this.a < 1) {\n const aHex = round(this.a * 255).toString(16);\n hex += aHex.length === 2 ? aHex : '0' + aHex;\n }\n return hex;\n }\n\n /** CSS support color pattern */\n toHsl() {\n return {\n h: this.getHue(),\n s: this.getHSLSaturation(),\n l: this.getLightness(),\n a: this.a\n };\n }\n\n /** CSS support color pattern */\n toHslString() {\n const h = this.getHue();\n const s = round(this.getHSLSaturation() * 100);\n const l = round(this.getLightness() * 100);\n return this.a !== 1 ? `hsla(${h},${s}%,${l}%,${this.a})` : `hsl(${h},${s}%,${l}%)`;\n }\n\n /** Same as toHsb */\n toHsv() {\n return {\n h: this.getHue(),\n s: this.getHSVSaturation(),\n v: this.getValue(),\n a: this.a\n };\n }\n toRgb() {\n return {\n r: this.r,\n g: this.g,\n b: this.b,\n a: this.a\n };\n }\n toRgbString() {\n return this.a !== 1 ? `rgba(${this.r},${this.g},${this.b},${this.a})` : `rgb(${this.r},${this.g},${this.b})`;\n }\n toString() {\n return this.toRgbString();\n }\n\n // ====================== Privates ======================\n /** Return a new FastColor object with one channel changed */\n _sc(rgb, value, max) {\n const clone = this.clone();\n clone[rgb] = limitRange(value, max);\n return clone;\n }\n _c(input) {\n return new this.constructor(input);\n }\n getMax() {\n if (typeof this._max === 'undefined') {\n this._max = Math.max(this.r, this.g, this.b);\n }\n return this._max;\n }\n getMin() {\n if (typeof this._min === 'undefined') {\n this._min = Math.min(this.r, this.g, this.b);\n }\n return this._min;\n }\n fromHexString(trimStr) {\n const withoutPrefix = trimStr.replace('#', '');\n function connectNum(index1, index2) {\n return parseInt(withoutPrefix[index1] + withoutPrefix[index2 || index1], 16);\n }\n if (withoutPrefix.length < 6) {\n // #rgb or #rgba\n this.r = connectNum(0);\n this.g = connectNum(1);\n this.b = connectNum(2);\n this.a = withoutPrefix[3] ? connectNum(3) / 255 : 1;\n } else {\n // #rrggbb or #rrggbbaa\n this.r = connectNum(0, 1);\n this.g = connectNum(2, 3);\n this.b = connectNum(4, 5);\n this.a = withoutPrefix[6] ? connectNum(6, 7) / 255 : 1;\n }\n }\n fromHsl({\n h: _h,\n s,\n l,\n a\n }) {\n const h = (_h % 360 + 360) % 360;\n this._h = h;\n this._hsl_s = s;\n this._l = l;\n this.a = typeof a === 'number' ? a : 1;\n if (s <= 0) {\n const rgb = round(l * 255);\n this.r = rgb;\n this.g = rgb;\n this.b = rgb;\n return;\n }\n let r = 0,\n g = 0,\n b = 0;\n const huePrime = h / 60;\n const chroma = (1 - Math.abs(2 * l - 1)) * s;\n const secondComponent = chroma * (1 - Math.abs(huePrime % 2 - 1));\n if (huePrime >= 0 && huePrime < 1) {\n r = chroma;\n g = secondComponent;\n } else if (huePrime >= 1 && huePrime < 2) {\n r = secondComponent;\n g = chroma;\n } else if (huePrime >= 2 && huePrime < 3) {\n g = chroma;\n b = secondComponent;\n } else if (huePrime >= 3 && huePrime < 4) {\n g = secondComponent;\n b = chroma;\n } else if (huePrime >= 4 && huePrime < 5) {\n r = secondComponent;\n b = chroma;\n } else if (huePrime >= 5 && huePrime < 6) {\n r = chroma;\n b = secondComponent;\n }\n const lightnessModification = l - chroma / 2;\n this.r = round((r + lightnessModification) * 255);\n this.g = round((g + lightnessModification) * 255);\n this.b = round((b + lightnessModification) * 255);\n }\n fromHsv({\n h: _h,\n s,\n v,\n a\n }) {\n const h = (_h % 360 + 360) % 360;\n this._h = h;\n this._hsv_s = s;\n this._v = v;\n this.a = typeof a === 'number' ? a : 1;\n const vv = round(v * 255);\n this.r = vv;\n this.g = vv;\n this.b = vv;\n if (s <= 0) {\n return;\n }\n const hh = h / 60;\n const i = Math.floor(hh);\n const ff = hh - i;\n const p = round(v * (1.0 - s) * 255);\n const q = round(v * (1.0 - s * ff) * 255);\n const t = round(v * (1.0 - s * (1.0 - ff)) * 255);\n switch (i) {\n case 0:\n this.g = t;\n this.b = p;\n break;\n case 1:\n this.r = q;\n this.b = p;\n break;\n case 2:\n this.r = p;\n this.b = t;\n break;\n case 3:\n this.r = p;\n this.g = q;\n break;\n case 4:\n this.r = t;\n this.g = p;\n break;\n case 5:\n default:\n this.g = p;\n this.b = q;\n break;\n }\n }\n fromHsvString(trimStr) {\n const cells = splitColorStr(trimStr, parseHSVorHSL);\n this.fromHsv({\n h: cells[0],\n s: cells[1],\n v: cells[2],\n a: cells[3]\n });\n }\n fromHslString(trimStr) {\n const cells = splitColorStr(trimStr, parseHSVorHSL);\n this.fromHsl({\n h: cells[0],\n s: cells[1],\n l: cells[2],\n a: cells[3]\n });\n }\n fromRgbString(trimStr) {\n const cells = splitColorStr(trimStr, (num, txt) =>\n // Convert percentage to number. e.g. 50% -> 128\n txt.includes('%') ? round(num / 100 * 255) : num);\n this.r = cells[0];\n this.g = cells[1];\n this.b = cells[2];\n this.a = cells[3];\n }\n}","import { FastColor } from '@ant-design/fast-color';\nconst hueStep = 2; // 色相阶梯\nconst saturationStep = 0.16; // 饱和度阶梯,浅色部分\nconst saturationStep2 = 0.05; // 饱和度阶梯,深色部分\nconst brightnessStep1 = 0.05; // 亮度阶梯,浅色部分\nconst brightnessStep2 = 0.15; // 亮度阶梯,深色部分\nconst lightColorCount = 5; // 浅色数量,主色上\nconst darkColorCount = 4; // 深色数量,主色下\n\n// 暗色主题颜色映射关系表\nconst darkColorMap = [{\n index: 7,\n amount: 15\n}, {\n index: 6,\n amount: 25\n}, {\n index: 5,\n amount: 30\n}, {\n index: 5,\n amount: 45\n}, {\n index: 5,\n amount: 65\n}, {\n index: 5,\n amount: 85\n}, {\n index: 4,\n amount: 90\n}, {\n index: 3,\n amount: 95\n}, {\n index: 2,\n amount: 97\n}, {\n index: 1,\n amount: 98\n}];\nfunction getHue(hsv, i, light) {\n let hue;\n // 根据色相不同,色相转向不同\n if (Math.round(hsv.h) >= 60 && Math.round(hsv.h) <= 240) {\n hue = light ? Math.round(hsv.h) - hueStep * i : Math.round(hsv.h) + hueStep * i;\n } else {\n hue = light ? Math.round(hsv.h) + hueStep * i : Math.round(hsv.h) - hueStep * i;\n }\n if (hue < 0) {\n hue += 360;\n } else if (hue >= 360) {\n hue -= 360;\n }\n return hue;\n}\nfunction getSaturation(hsv, i, light) {\n // grey color don't change saturation\n if (hsv.h === 0 && hsv.s === 0) {\n return hsv.s;\n }\n let saturation;\n if (light) {\n saturation = hsv.s - saturationStep * i;\n } else if (i === darkColorCount) {\n saturation = hsv.s + saturationStep;\n } else {\n saturation = hsv.s + saturationStep2 * i;\n }\n // 边界值修正\n if (saturation > 1) {\n saturation = 1;\n }\n // 第一格的 s 限制在 0.06-0.1 之间\n if (light && i === lightColorCount && saturation > 0.1) {\n saturation = 0.1;\n }\n if (saturation < 0.06) {\n saturation = 0.06;\n }\n return Math.round(saturation * 100) / 100;\n}\nfunction getValue(hsv, i, light) {\n let value;\n if (light) {\n value = hsv.v + brightnessStep1 * i;\n } else {\n value = hsv.v - brightnessStep2 * i;\n }\n // Clamp value between 0 and 1\n value = Math.max(0, Math.min(1, value));\n return Math.round(value * 100) / 100;\n}\nexport default function generate(color, opts = {}) {\n const patterns = [];\n const pColor = new FastColor(color);\n const hsv = pColor.toHsv();\n for (let i = lightColorCount; i > 0; i -= 1) {\n const c = new FastColor({\n h: getHue(hsv, i, true),\n s: getSaturation(hsv, i, true),\n v: getValue(hsv, i, true)\n });\n patterns.push(c);\n }\n patterns.push(pColor);\n for (let i = 1; i <= darkColorCount; i += 1) {\n const c = new FastColor({\n h: getHue(hsv, i),\n s: getSaturation(hsv, i),\n v: getValue(hsv, i)\n });\n patterns.push(c);\n }\n\n // dark theme patterns\n if (opts.theme === 'dark') {\n return darkColorMap.map(({\n index,\n amount\n }) => new FastColor(opts.backgroundColor || '#141414').mix(patterns[index], amount).toHexString());\n }\n return patterns.map(c => c.toHexString());\n}","// Generated by script. Do NOT modify!\n\nexport const presetPrimaryColors = {\n \"red\": \"#F5222D\",\n \"volcano\": \"#FA541C\",\n \"orange\": \"#FA8C16\",\n \"gold\": \"#FAAD14\",\n \"yellow\": \"#FADB14\",\n \"lime\": \"#A0D911\",\n \"green\": \"#52C41A\",\n \"cyan\": \"#13C2C2\",\n \"blue\": \"#1677FF\",\n \"geekblue\": \"#2F54EB\",\n \"purple\": \"#722ED1\",\n \"magenta\": \"#EB2F96\",\n \"grey\": \"#666666\"\n};\nexport const red = [\"#fff1f0\", \"#ffccc7\", \"#ffa39e\", \"#ff7875\", \"#ff4d4f\", \"#f5222d\", \"#cf1322\", \"#a8071a\", \"#820014\", \"#5c0011\"];\nred.primary = red[5];\nexport const volcano = [\"#fff2e8\", \"#ffd8bf\", \"#ffbb96\", \"#ff9c6e\", \"#ff7a45\", \"#fa541c\", \"#d4380d\", \"#ad2102\", \"#871400\", \"#610b00\"];\nvolcano.primary = volcano[5];\nexport const orange = [\"#fff7e6\", \"#ffe7ba\", \"#ffd591\", \"#ffc069\", \"#ffa940\", \"#fa8c16\", \"#d46b08\", \"#ad4e00\", \"#873800\", \"#612500\"];\norange.primary = orange[5];\nexport const gold = [\"#fffbe6\", \"#fff1b8\", \"#ffe58f\", \"#ffd666\", \"#ffc53d\", \"#faad14\", \"#d48806\", \"#ad6800\", \"#874d00\", \"#613400\"];\ngold.primary = gold[5];\nexport const yellow = [\"#feffe6\", \"#ffffb8\", \"#fffb8f\", \"#fff566\", \"#ffec3d\", \"#fadb14\", \"#d4b106\", \"#ad8b00\", \"#876800\", \"#614700\"];\nyellow.primary = yellow[5];\nexport const lime = [\"#fcffe6\", \"#f4ffb8\", \"#eaff8f\", \"#d3f261\", \"#bae637\", \"#a0d911\", \"#7cb305\", \"#5b8c00\", \"#3f6600\", \"#254000\"];\nlime.primary = lime[5];\nexport const green = [\"#f6ffed\", \"#d9f7be\", \"#b7eb8f\", \"#95de64\", \"#73d13d\", \"#52c41a\", \"#389e0d\", \"#237804\", \"#135200\", \"#092b00\"];\ngreen.primary = green[5];\nexport const cyan = [\"#e6fffb\", \"#b5f5ec\", \"#87e8de\", \"#5cdbd3\", \"#36cfc9\", \"#13c2c2\", \"#08979c\", \"#006d75\", \"#00474f\", \"#002329\"];\ncyan.primary = cyan[5];\nexport const blue = [\"#e6f4ff\", \"#bae0ff\", \"#91caff\", \"#69b1ff\", \"#4096ff\", \"#1677ff\", \"#0958d9\", \"#003eb3\", \"#002c8c\", \"#001d66\"];\nblue.primary = blue[5];\nexport const geekblue = [\"#f0f5ff\", \"#d6e4ff\", \"#adc6ff\", \"#85a5ff\", \"#597ef7\", \"#2f54eb\", \"#1d39c4\", \"#10239e\", \"#061178\", \"#030852\"];\ngeekblue.primary = geekblue[5];\nexport const purple = [\"#f9f0ff\", \"#efdbff\", \"#d3adf7\", \"#b37feb\", \"#9254de\", \"#722ed1\", \"#531dab\", \"#391085\", \"#22075e\", \"#120338\"];\npurple.primary = purple[5];\nexport const magenta = [\"#fff0f6\", \"#ffd6e7\", \"#ffadd2\", \"#ff85c0\", \"#f759ab\", \"#eb2f96\", \"#c41d7f\", \"#9e1068\", \"#780650\", \"#520339\"];\nmagenta.primary = magenta[5];\nexport const grey = [\"#a6a6a6\", \"#999999\", \"#8c8c8c\", \"#808080\", \"#737373\", \"#666666\", \"#404040\", \"#1a1a1a\", \"#000000\", \"#000000\"];\ngrey.primary = grey[5];\nexport const gray = grey;\nexport const presetPalettes = {\n red,\n volcano,\n orange,\n gold,\n yellow,\n lime,\n green,\n cyan,\n blue,\n geekblue,\n purple,\n magenta,\n grey\n};\nexport const redDark = [\"#2a1215\", \"#431418\", \"#58181c\", \"#791a1f\", \"#a61d24\", \"#d32029\", \"#e84749\", \"#f37370\", \"#f89f9a\", \"#fac8c3\"];\nredDark.primary = redDark[5];\nexport const volcanoDark = [\"#2b1611\", \"#441d12\", \"#592716\", \"#7c3118\", \"#aa3e19\", \"#d84a1b\", \"#e87040\", \"#f3956a\", \"#f8b692\", \"#fad4bc\"];\nvolcanoDark.primary = volcanoDark[5];\nexport const orangeDark = [\"#2b1d11\", \"#442a11\", \"#593815\", \"#7c4a15\", \"#aa6215\", \"#d87a16\", \"#e89a3c\", \"#f3b765\", \"#f8cf8d\", \"#fae3b7\"];\norangeDark.primary = orangeDark[5];\nexport const goldDark = [\"#2b2111\", \"#443111\", \"#594214\", \"#7c5914\", \"#aa7714\", \"#d89614\", \"#e8b339\", \"#f3cc62\", \"#f8df8b\", \"#faedb5\"];\ngoldDark.primary = goldDark[5];\nexport const yellowDark = [\"#2b2611\", \"#443b11\", \"#595014\", \"#7c6e14\", \"#aa9514\", \"#d8bd14\", \"#e8d639\", \"#f3ea62\", \"#f8f48b\", \"#fafab5\"];\nyellowDark.primary = yellowDark[5];\nexport const limeDark = [\"#1f2611\", \"#2e3c10\", \"#3e4f13\", \"#536d13\", \"#6f9412\", \"#8bbb11\", \"#a9d134\", \"#c9e75d\", \"#e4f88b\", \"#f0fab5\"];\nlimeDark.primary = limeDark[5];\nexport const greenDark = [\"#162312\", \"#1d3712\", \"#274916\", \"#306317\", \"#3c8618\", \"#49aa19\", \"#6abe39\", \"#8fd460\", \"#b2e58b\", \"#d5f2bb\"];\ngreenDark.primary = greenDark[5];\nexport const cyanDark = [\"#112123\", \"#113536\", \"#144848\", \"#146262\", \"#138585\", \"#13a8a8\", \"#33bcb7\", \"#58d1c9\", \"#84e2d8\", \"#b2f1e8\"];\ncyanDark.primary = cyanDark[5];\nexport const blueDark = [\"#111a2c\", \"#112545\", \"#15325b\", \"#15417e\", \"#1554ad\", \"#1668dc\", \"#3c89e8\", \"#65a9f3\", \"#8dc5f8\", \"#b7dcfa\"];\nblueDark.primary = blueDark[5];\nexport const geekblueDark = [\"#131629\", \"#161d40\", \"#1c2755\", \"#203175\", \"#263ea0\", \"#2b4acb\", \"#5273e0\", \"#7f9ef3\", \"#a8c1f8\", \"#d2e0fa\"];\ngeekblueDark.primary = geekblueDark[5];\nexport const purpleDark = [\"#1a1325\", \"#24163a\", \"#301c4d\", \"#3e2069\", \"#51258f\", \"#642ab5\", \"#854eca\", \"#ab7ae0\", \"#cda8f0\", \"#ebd7fa\"];\npurpleDark.primary = purpleDark[5];\nexport const magentaDark = [\"#291321\", \"#40162f\", \"#551c3b\", \"#75204f\", \"#a02669\", \"#cb2b83\", \"#e0529c\", \"#f37fb7\", \"#f8a8cc\", \"#fad2e3\"];\nmagentaDark.primary = magentaDark[5];\nexport const greyDark = [\"#151515\", \"#1f1f1f\", \"#2d2d2d\", \"#393939\", \"#494949\", \"#5a5a5a\", \"#6a6a6a\", \"#7b7b7b\", \"#888888\", \"#969696\"];\ngreyDark.primary = greyDark[5];\nexport const presetDarkPalettes = {\n red: redDark,\n volcano: volcanoDark,\n orange: orangeDark,\n gold: goldDark,\n yellow: yellowDark,\n lime: limeDark,\n green: greenDark,\n cyan: cyanDark,\n blue: blueDark,\n geekblue: geekblueDark,\n purple: purpleDark,\n magenta: magentaDark,\n grey: greyDark\n};","export default function canUseDom() {\n return !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n}","export default function contains(root, n) {\n if (!root) {\n return false;\n }\n\n // Use native if support\n if (root.contains) {\n return root.contains(n);\n }\n\n // `document.contains` not support with IE11\n let node = n;\n while (node) {\n if (node === root) {\n return true;\n }\n node = node.parentNode;\n }\n return false;\n}","import canUseDom from \"./canUseDom\";\nimport contains from \"./contains\";\nconst APPEND_ORDER = 'data-rc-order';\nconst APPEND_PRIORITY = 'data-rc-priority';\nconst MARK_KEY = `rc-util-key`;\nconst containerCache = new Map();\nfunction getMark({\n mark\n} = {}) {\n if (mark) {\n return mark.startsWith('data-') ? mark : `data-${mark}`;\n }\n return MARK_KEY;\n}\nfunction getContainer(option) {\n if (option.attachTo) {\n return option.attachTo;\n }\n const head = document.querySelector('head');\n return head || document.body;\n}\nfunction getOrder(prepend) {\n if (prepend === 'queue') {\n return 'prependQueue';\n }\n return prepend ? 'prepend' : 'append';\n}\n\n/**\n * Find style which inject by rc-util\n */\nfunction findStyles(container) {\n return Array.from((containerCache.get(container) || container).children).filter(node => node.tagName === 'STYLE');\n}\nexport function injectCSS(css, option = {}) {\n if (!canUseDom()) {\n return null;\n }\n const {\n csp,\n prepend,\n priority = 0\n } = option;\n const mergedOrder = getOrder(prepend);\n const isPrependQueue = mergedOrder === 'prependQueue';\n const styleNode = document.createElement('style');\n styleNode.setAttribute(APPEND_ORDER, mergedOrder);\n if (isPrependQueue && priority) {\n styleNode.setAttribute(APPEND_PRIORITY, `${priority}`);\n }\n if (csp?.nonce) {\n styleNode.nonce = csp?.nonce;\n }\n styleNode.innerHTML = css;\n const container = getContainer(option);\n const {\n firstChild\n } = container;\n if (prepend) {\n // If is queue `prepend`, it will prepend first style and then append rest style\n if (isPrependQueue) {\n const existStyle = (option.styles || findStyles(container)).filter(node => {\n // Ignore style which not injected by rc-util with prepend\n if (!['prepend', 'prependQueue'].includes(node.getAttribute(APPEND_ORDER))) {\n return false;\n }\n\n // Ignore style which priority less then new style\n const nodePriority = Number(node.getAttribute(APPEND_PRIORITY) || 0);\n return priority >= nodePriority;\n });\n if (existStyle.length) {\n container.insertBefore(styleNode, existStyle[existStyle.length - 1].nextSibling);\n return styleNode;\n }\n }\n\n // Use `insertBefore` as `prepend`\n container.insertBefore(styleNode, firstChild);\n } else {\n container.appendChild(styleNode);\n }\n return styleNode;\n}\nfunction findExistNode(key, option = {}) {\n let {\n styles\n } = option;\n styles ||= findStyles(getContainer(option));\n return styles.find(node => node.getAttribute(getMark(option)) === key);\n}\nexport function removeCSS(key, option = {}) {\n const existNode = findExistNode(key, option);\n if (existNode) {\n const container = getContainer(option);\n container.removeChild(existNode);\n }\n}\n\n/**\n * qiankun will inject `appendChild` to insert into other\n */\nfunction syncRealContainer(container, option) {\n const cachedRealContainer = containerCache.get(container);\n\n // Find real container when not cached or cached container removed\n if (!cachedRealContainer || !contains(document, cachedRealContainer)) {\n const placeholderStyle = injectCSS('', option);\n const {\n parentNode\n } = placeholderStyle;\n containerCache.set(container, parentNode);\n container.removeChild(placeholderStyle);\n }\n}\n\n/**\n * manually clear container cache to avoid global cache in unit testes\n */\nexport function clearContainerCache() {\n containerCache.clear();\n}\nexport function updateCSS(css, key, originOption = {}) {\n const container = getContainer(originOption);\n const styles = findStyles(container);\n const option = {\n ...originOption,\n styles\n };\n\n // Sync real parent\n syncRealContainer(container, option);\n const existNode = findExistNode(key, option);\n if (existNode) {\n if (option.csp?.nonce && existNode.nonce !== option.csp?.nonce) {\n existNode.nonce = option.csp?.nonce;\n }\n if (existNode.innerHTML !== css) {\n existNode.innerHTML = css;\n }\n return existNode;\n }\n const newNode = injectCSS(css, option);\n newNode.setAttribute(getMark(option), key);\n return newNode;\n}","function getRoot(ele) {\n return ele?.getRootNode?.();\n}\n\n/**\n * Check if is in shadowRoot\n */\nexport function inShadow(ele) {\n return getRoot(ele) instanceof ShadowRoot;\n}\n\n/**\n * Return shadowRoot if possible\n */\nexport function getShadowRoot(ele) {\n return inShadow(ele) ? getRoot(ele) : null;\n}","/* eslint-disable no-console */\nlet warned = {};\nconst preWarningFns = [];\n\n/**\n * Pre warning enable you to parse content before console.error.\n * Modify to null will prevent warning.\n */\nexport const preMessage = fn => {\n preWarningFns.push(fn);\n};\n\n/**\n * Warning if condition not match.\n * @param valid Condition\n * @param message Warning message\n * @example\n * ```js\n * warning(false, 'some error'); // print some error\n * warning(true, 'some error'); // print nothing\n * warning(1 === 2, 'some error'); // print some error\n * ```\n */\nexport function warning(valid, message) {\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n const finalMessage = preWarningFns.reduce((msg, preMessageFn) => preMessageFn(msg ?? '', 'warning'), message);\n if (finalMessage) {\n console.error(`Warning: ${finalMessage}`);\n }\n }\n}\n\n/** @see Similar to {@link warning} */\nexport function note(valid, message) {\n if (process.env.NODE_ENV !== 'production' && !valid && console !== undefined) {\n const finalMessage = preWarningFns.reduce((msg, preMessageFn) => preMessageFn(msg ?? '', 'note'), message);\n if (finalMessage) {\n console.warn(`Note: ${finalMessage}`);\n }\n }\n}\nexport function resetWarned() {\n warned = {};\n}\nexport function call(method, valid, message) {\n if (!valid && !warned[message]) {\n method(false, message);\n warned[message] = true;\n }\n}\n\n/** @see Same as {@link warning}, but only warn once for the same message */\nexport function warningOnce(valid, message) {\n call(warning, valid, message);\n}\n\n/** @see Same as {@link warning}, but only warn once for the same message */\nexport function noteOnce(valid, message) {\n call(note, valid, message);\n}\nwarningOnce.preMessage = preMessage;\nwarningOnce.resetWarned = resetWarned;\nwarningOnce.noteOnce = noteOnce;\nexport default warningOnce;","import { generate as generateColor } from '@ant-design/colors';\nimport { updateCSS } from \"@rc-component/util/es/Dom/dynamicCSS\";\nimport { getShadowRoot } from \"@rc-component/util/es/Dom/shadow\";\nimport { warningOnce } from \"@rc-component/util/es/warning\";\nimport React, { useContext, useEffect } from 'react';\nimport IconContext from \"./components/Context\";\nfunction camelCase(input) {\n return input.replace(/-(.)/g, (match, g) => g.toUpperCase());\n}\nexport function warning(valid, message) {\n warningOnce(valid, `[@ant-design/icons] ${message}`);\n}\nexport function isIconDefinition(target) {\n return typeof target === 'object' && typeof target.name === 'string' && typeof target.theme === 'string' && (typeof target.icon === 'object' || typeof target.icon === 'function');\n}\nexport function normalizeAttrs(attrs = {}) {\n return Object.keys(attrs).reduce((acc, key) => {\n const val = attrs[key];\n switch (key) {\n case 'class':\n acc.className = val;\n delete acc.class;\n break;\n default:\n delete acc[key];\n acc[camelCase(key)] = val;\n }\n return acc;\n }, {});\n}\nexport function generate(node, key, rootProps) {\n if (!rootProps) {\n return /*#__PURE__*/React.createElement(node.tag, {\n key,\n ...normalizeAttrs(node.attrs)\n }, (node.children || []).map((child, index) => generate(child, `${key}-${node.tag}-${index}`)));\n }\n return /*#__PURE__*/React.createElement(node.tag, {\n key,\n ...normalizeAttrs(node.attrs),\n ...rootProps\n }, (node.children || []).map((child, index) => generate(child, `${key}-${node.tag}-${index}`)));\n}\nexport function getSecondaryColor(primaryColor) {\n // choose the second color\n return generateColor(primaryColor)[0];\n}\nexport function normalizeTwoToneColors(twoToneColor) {\n if (!twoToneColor) {\n return [];\n }\n return Array.isArray(twoToneColor) ? twoToneColor : [twoToneColor];\n}\n\n// These props make sure that the SVG behaviours like general text.\n// Reference: https://blog.prototypr.io/align-svg-icons-to-text-and-say-goodbye-to-font-icons-d44b3d7b26b4\nexport const svgBaseProps = {\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true',\n focusable: 'false'\n};\nexport const iconStyles = `\n.anticon {\n display: inline-flex;\n align-items: center;\n color: inherit;\n font-style: normal;\n line-height: 0;\n text-align: center;\n text-transform: none;\n vertical-align: -0.125em;\n text-rendering: optimizeLegibility;\n -webkit-font-smoothing: antialiased;\n -moz-osx-font-smoothing: grayscale;\n}\n\n.anticon > * {\n line-height: 1;\n}\n\n.anticon svg {\n display: inline-block;\n vertical-align: inherit;\n}\n\n.anticon::before {\n display: none;\n}\n\n.anticon .anticon-icon {\n display: block;\n}\n\n.anticon[tabindex] {\n cursor: pointer;\n}\n\n.anticon-spin::before,\n.anticon-spin {\n display: inline-block;\n -webkit-animation: loadingCircle 1s infinite linear;\n animation: loadingCircle 1s infinite linear;\n}\n\n@-webkit-keyframes loadingCircle {\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n\n@keyframes loadingCircle {\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg);\n }\n}\n`;\nexport const useInsertStyles = eleRef => {\n const {\n csp,\n prefixCls,\n layer\n } = useContext(IconContext);\n let mergedStyleStr = iconStyles;\n if (prefixCls) {\n mergedStyleStr = mergedStyleStr.replace(/anticon/g, prefixCls);\n }\n if (layer) {\n mergedStyleStr = `@layer ${layer} {\\n${mergedStyleStr}\\n}`;\n }\n useEffect(() => {\n const ele = eleRef.current;\n const shadowRoot = getShadowRoot(ele);\n updateCSS(mergedStyleStr, '@ant-design-icons', {\n prepend: !layer,\n csp,\n attachTo: shadowRoot\n });\n }, []);\n};","import * as React from 'react';\nimport { generate, getSecondaryColor, isIconDefinition, warning, useInsertStyles } from \"../utils\";\nconst twoToneColorPalette = {\n primaryColor: '#333',\n secondaryColor: '#E6E6E6',\n calculated: false\n};\nfunction setTwoToneColors({\n primaryColor,\n secondaryColor\n}) {\n twoToneColorPalette.primaryColor = primaryColor;\n twoToneColorPalette.secondaryColor = secondaryColor || getSecondaryColor(primaryColor);\n twoToneColorPalette.calculated = !!secondaryColor;\n}\nfunction getTwoToneColors() {\n return {\n ...twoToneColorPalette\n };\n}\nconst IconBase = props => {\n const {\n icon,\n className,\n onClick,\n style,\n primaryColor,\n secondaryColor,\n ...restProps\n } = props;\n const svgRef = React.useRef(null);\n let colors = twoToneColorPalette;\n if (primaryColor) {\n colors = {\n primaryColor,\n secondaryColor: secondaryColor || getSecondaryColor(primaryColor)\n };\n }\n useInsertStyles(svgRef);\n warning(isIconDefinition(icon), `icon should be icon definiton, but got ${icon}`);\n if (!isIconDefinition(icon)) {\n return null;\n }\n let target = icon;\n if (target && typeof target.icon === 'function') {\n target = {\n ...target,\n icon: target.icon(colors.primaryColor, colors.secondaryColor)\n };\n }\n return generate(target.icon, `svg-${target.name}`, {\n className,\n onClick,\n style,\n 'data-icon': target.name,\n width: '1em',\n height: '1em',\n fill: 'currentColor',\n 'aria-hidden': 'true',\n ...restProps,\n ref: svgRef\n });\n};\nIconBase.displayName = 'IconReact';\nIconBase.getTwoToneColors = getTwoToneColors;\nIconBase.setTwoToneColors = setTwoToneColors;\nexport default IconBase;","import ReactIcon from \"./IconBase\";\nimport { normalizeTwoToneColors } from \"../utils\";\nexport function setTwoToneColor(twoToneColor) {\n const [primaryColor, secondaryColor] = normalizeTwoToneColors(twoToneColor);\n return ReactIcon.setTwoToneColors({\n primaryColor,\n secondaryColor\n });\n}\nexport function getTwoToneColor() {\n const colors = ReactIcon.getTwoToneColors();\n if (!colors.calculated) {\n return colors.primaryColor;\n }\n return [colors.primaryColor, colors.secondaryColor];\n}","'use client';\n\nfunction _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\nimport * as React from 'react';\nimport { clsx } from 'clsx';\nimport { blue } from '@ant-design/colors';\nimport Context from \"./Context\";\nimport ReactIcon from \"./IconBase\";\nimport { getTwoToneColor, setTwoToneColor } from \"./twoTonePrimaryColor\";\nimport { normalizeTwoToneColors } from \"../utils\";\n// Initial setting\n// should move it to antd main repo?\nsetTwoToneColor(blue.primary);\n\n// https://github.com/DefinitelyTyped/DefinitelyTyped/issues/34757#issuecomment-488848720\n\nconst Icon = /*#__PURE__*/React.forwardRef((props, ref) => {\n const {\n // affect outter <i>...</i>\n className,\n // affect inner <svg>...</svg>\n icon,\n spin,\n rotate,\n tabIndex,\n onClick,\n // other\n twoToneColor,\n ...restProps\n } = props;\n const {\n prefixCls = 'anticon',\n rootClassName\n } = React.useContext(Context);\n const classString = clsx(rootClassName, prefixCls, {\n [`${prefixCls}-${icon.name}`]: !!icon.name,\n [`${prefixCls}-spin`]: !!spin || icon.name === 'loading'\n }, className);\n let iconTabIndex = tabIndex;\n if (iconTabIndex === undefined && onClick) {\n iconTabIndex = -1;\n }\n const svgStyle = rotate ? {\n msTransform: `rotate(${rotate}deg)`,\n transform: `rotate(${rotate}deg)`\n } : undefined;\n const [primaryColor, secondaryColor] = normalizeTwoToneColors(twoToneColor);\n return /*#__PURE__*/React.createElement(\"span\", _extends({\n role: \"img\",\n \"aria-label\": icon.name\n }, restProps, {\n ref: ref,\n tabIndex: iconTabIndex,\n onClick: onClick,\n className: classString\n }), /*#__PURE__*/React.createElement(ReactIcon, {\n icon: icon,\n primaryColor: primaryColor,\n secondaryColor: secondaryColor,\n style: svgStyle\n }));\n});\nIcon.getTwoToneColor = getTwoToneColor;\nIcon.setTwoToneColor = setTwoToneColor;\nif (process.env.NODE_ENV !== 'production') {\n Icon.displayName = 'AntdIcon';\n}\nexport default Icon;","// This icon file is generated automatically.\nvar UserOutlined = { \"icon\": { \"tag\": \"svg\", \"attrs\": { \"viewBox\": \"64 64 896 896\", \"focusable\": \"false\" }, \"children\": [{ \"tag\": \"path\", \"attrs\": { \"d\": \"M858.5 763.6a374 374 0 00-80.6-119.5 375.63 375.63 0 00-119.5-80.6c-.4-.2-.8-.3-1.2-.5C719.5 518 760 444.7 760 362c0-137-111-248-248-248S264 225 264 362c0 82.7 40.5 156 102.8 201.1-.4.2-.8.3-1.2.5-44.8 18.9-85 46-119.5 80.6a375.63 375.63 0 00-80.6 119.5A371.7 371.7 0 00136 901.8a8 8 0 008 8.2h60c4.4 0 7.9-3.5 8-7.8 2-77.2 33-149.5 87.8-204.3 56.7-56.7 132-87.9 212.2-87.9s155.5 31.2 212.2 87.9C779 752.7 810 825 812 902.2c.1 4.4 3.6 7.8 8 7.8h60a8 8 0 008-8.2c-1-47.8-10.9-94.3-29.5-138.2zM512 534c-45.9 0-89.1-17.9-121.6-50.4S340 407.9 340 362c0-45.9 17.9-89.1 50.4-121.6S466.1 190 512 190s89.1 17.9 121.6 50.4S684 316.1 684 362c0 45.9-17.9 89.1-50.4 121.6S557.9 534 512 534z\" } }] }, \"name\": \"user\", \"theme\": \"outlined\" };\nexport default UserOutlined;\n","function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n// GENERATE BY ./scripts/generate.ts\n// DON NOT EDIT IT MANUALLY\n\nimport * as React from 'react';\nimport UserOutlinedSvg from \"@ant-design/icons-svg/es/asn/UserOutlined\";\nimport AntdIcon from \"../components/AntdIcon\";\nconst UserOutlined = (props, ref) => /*#__PURE__*/React.createElement(AntdIcon, _extends({}, props, {\n ref: ref,\n icon: UserOutlinedSvg\n}));\n\n/** */\nconst RefIcon = /*#__PURE__*/React.forwardRef(UserOutlined);\nif (process.env.NODE_ENV !== 'production') {\n RefIcon.displayName = 'UserOutlined';\n}\nexport default RefIcon;","import React from 'react';\nimport { Avatar } from 'antd';\nimport { UserOutlined } from '@ant-design/icons';\n\nexport interface UserPillProps {\n name: string;\n subtitle?: string;\n avatar?: string;\n className?: string;\n size?: 'small' | 'medium' | 'large';\n}\n\nexport const UserPill: React.FC<UserPillProps> = ({\n name,\n subtitle,\n avatar,\n className = '',\n}) => {\n const avatarSize = 30;\n\n return (\n <div\n className={`flex items-center ${className}`}\n style={{\n backgroundColor: '#E6E6E6',\n borderRadius: '40px',\n padding: '5px 12px 5px 5px',\n height: '40px',\n gap: '8px',\n }}\n >\n {avatar ? (\n <Avatar src={avatar} size={avatarSize} />\n ) : (\n <Avatar icon={<UserOutlined />} size={avatarSize} style={{ backgroundColor: '#6B7280' }} />\n )}\n <div className=\"flex flex-col\">\n <span\n style={{\n color: '#181918',\n fontSize: '14px',\n fontWeight: 600,\n lineHeight: '1.2',\n }}\n >\n {name}\n </span>\n {subtitle && (\n <span\n style={{\n color: '#181918',\n fontSize: '12px',\n fontWeight: 400,\n lineHeight: '1.2',\n marginTop: '2px',\n }}\n >\n {subtitle}\n </span>\n )}\n </div>\n </div>\n );\n};\n","export default \"data:image/svg+xml,%3csvg%20width='353'%20height='130'%20viewBox='0%200%20353%20130'%20fill='none'%20xmlns='http://www.w3.org/2000/svg'%3e%3cg%20opacity='0.1'%3e%3cpath%20d='M17%2024C17%2015.1634%2024.1634%208%2033%208H327C335.837%208%20343%2015.1634%20343%2024V98C343%20106.837%20335.837%20114%20327%20114H33C24.1635%20114%2017%20106.837%2017%2098V24Z'%20fill='url(%23paint0_linear_683_56525)'/%3e%3crect%20x='41'%20y='29'%20width='67'%20height='67'%20rx='33.5'%20fill='%231B1C1E'/%3e%3cpath%20d='M68.8552%2071V55.0216H75.5683C76.5263%2055.0216%2077.3484%2055.1932%2078.0347%2055.5363C78.7354%2055.8795%2079.2715%2056.3657%2079.6433%2056.9948C80.0294%2057.6096%2080.2224%2058.346%2080.2224%2059.2039C80.2224%2059.9903%2080.0151%2060.7052%2079.6004%2061.3486C79.2%2061.9777%2078.6067%2062.471%2077.8203%2062.8285L77.7988%2062.0349C78.4851%2062.2923%2079.0499%2062.6355%2079.4932%2063.0644C79.9507%2063.4791%2080.2939%2063.9652%2080.5226%2064.5229C80.7514%2065.0662%2080.8658%2065.6453%2080.8658%2066.2601C80.8658%2067.7328%2080.394%2068.891%2079.4503%2069.7346C78.5066%2070.5782%2077.2197%2071%2075.5897%2071H68.8552ZM70.9571%2069.0697H75.6755C76.6049%2069.0697%2077.3484%2068.8195%2077.906%2068.3191C78.4637%2067.8186%2078.7425%2067.1394%2078.7425%2066.2815C78.7425%2065.4236%2078.4637%2064.7445%2077.906%2064.244C77.3484%2063.7293%2076.6049%2063.4719%2075.6755%2063.4719H70.9571V69.0697ZM70.9571%2061.5845H75.5254C76.2975%2061.5845%2076.9195%2061.3629%2077.3913%2060.9197C77.8632%2060.4621%2078.0991%2059.883%2078.0991%2059.1824C78.0991%2058.4532%2077.8632%2057.8956%2077.3913%2057.5095C76.9195%2057.1235%2076.2975%2056.9304%2075.5254%2056.9304H70.9571V61.5845Z'%20fill='%23FDFDFE'/%3e%3cpath%20d='M133.44%2049V34.1H139.72C140.707%2034.1%20141.547%2034.2733%20142.24%2034.62C142.947%2034.9533%20143.487%2035.4333%20143.86%2036.06C144.247%2036.6733%20144.44%2037.42%20144.44%2038.3C144.44%2038.98%20144.253%2039.62%20143.88%2040.22C143.52%2040.8067%20142.94%2041.2933%20142.14%2041.68V40.42C142.873%2040.7%20143.453%2041.0467%20143.88%2041.46C144.307%2041.8733%20144.607%2042.3333%20144.78%2042.84C144.953%2043.3467%20145.04%2043.88%20145.04%2044.44C145.04%2045.8667%20144.567%2046.9867%20143.62%2047.8C142.687%2048.6%20141.387%2049%20139.72%2049H133.44ZM136.16%2046.6H140C140.707%2046.6%20141.267%2046.4067%20141.68%2046.02C142.107%2045.62%20142.32%2045.0933%20142.32%2044.44C142.32%2043.7867%20142.107%2043.26%20141.68%2042.86C141.267%2042.46%20140.707%2042.26%20140%2042.26H136.16V46.6ZM136.16%2039.88H139.86C140.42%2039.88%20140.867%2039.72%20141.2%2039.4C141.533%2039.0667%20141.7%2038.64%20141.7%2038.12C141.7%2037.6%20141.533%2037.1867%20141.2%2036.88C140.867%2036.5733%20140.42%2036.42%20139.86%2036.42H136.16V39.88ZM152.208%2049.24C151.088%2049.24%20150.108%2048.9867%20149.268%2048.48C148.428%2047.9733%20147.775%2047.2867%20147.308%2046.42C146.841%2045.5533%20146.608%2044.5933%20146.608%2043.54C146.608%2042.4467%20146.841%2041.48%20147.308%2040.64C147.788%2039.7867%20148.435%2039.1133%20149.248%2038.62C150.075%2038.1267%20150.995%2037.88%20152.008%2037.88C152.861%2037.88%20153.608%2038.02%20154.248%2038.3C154.901%2038.58%20155.455%2038.9667%20155.908%2039.46C156.361%2039.9533%20156.708%2040.52%20156.948%2041.16C157.188%2041.7867%20157.308%2042.4667%20157.308%2043.2C157.308%2043.3867%20157.295%2043.58%20157.268%2043.78C157.255%2043.98%20157.221%2044.1533%20157.168%2044.3H148.768V42.3H155.688L154.448%2043.24C154.568%2042.6267%20154.535%2042.08%20154.348%2041.6C154.175%2041.12%20153.881%2040.74%20153.468%2040.46C153.068%2040.18%20152.581%2040.04%20152.008%2040.04C151.461%2040.04%20150.975%2040.18%20150.548%2040.46C150.121%2040.7267%20149.795%2041.1267%20149.568%2041.66C149.355%2042.18%20149.275%2042.8133%20149.328%2043.56C149.275%2044.2267%20149.361%2044.82%20149.588%2045.34C149.828%2045.8467%20150.175%2046.24%20150.628%2046.52C151.095%2046.8%20151.628%2046.94%20152.228%2046.94C152.828%2046.94%20153.335%2046.8133%20153.748%2046.56C154.175%2046.3067%20154.508%2045.9667%20154.748%2045.54L156.868%2046.58C156.655%2047.1%20156.321%2047.56%20155.868%2047.96C155.415%2048.36%20154.875%2048.6733%20154.248%2048.9C153.635%2049.1267%20152.955%2049.24%20152.208%2049.24ZM159.294%2049V38.12H161.754V40.26L161.554%2039.88C161.808%2039.2267%20162.221%2038.7333%20162.794%2038.4C163.381%2038.0533%20164.061%2037.88%20164.834%2037.88C165.634%2037.88%20166.341%2038.0533%20166.954%2038.4C167.581%2038.7467%20168.068%2039.2333%20168.414%2039.86C168.761%2040.4733%20168.934%2041.1867%20168.934%2042V49H166.314V42.62C166.314%2042.14%20166.221%2041.7267%20166.034%2041.38C165.848%2041.0333%20165.588%2040.7667%20165.254%2040.58C164.934%2040.38%20164.554%2040.28%20164.114%2040.28C163.688%2040.28%20163.308%2040.38%20162.974%2040.58C162.641%2040.7667%20162.381%2041.0333%20162.194%2041.38C162.008%2041.7267%20161.914%2042.14%20161.914%2042.62V49H159.294ZM169.65%2053.42C169.476%2053.42%20169.296%2053.4133%20169.11%2053.4C168.923%2053.3867%20168.77%2053.3667%20168.65%2053.34V51.06C168.89%2051.1%20169.13%2051.12%20169.37%2051.12C169.93%2051.12%20170.363%2050.9867%20170.67%2050.72C170.99%2050.4667%20171.15%2050.0733%20171.15%2049.54V38.12H173.77V49.54C173.77%2050.3667%20173.603%2051.0667%20173.27%2051.64C172.936%2052.2267%20172.456%2052.6667%20171.83%2052.96C171.216%2053.2667%20170.49%2053.42%20169.65%2053.42ZM171.15%2036.9V34.1H173.77V36.9H171.15ZM179.489%2049.24C178.729%2049.24%20178.069%2049.1133%20177.509%2048.86C176.949%2048.6067%20176.515%2048.2467%20176.209%2047.78C175.902%2047.3%20175.749%2046.7467%20175.749%2046.12C175.749%2045.52%20175.882%2044.9867%20176.149%2044.52C176.415%2044.04%20176.829%2043.64%20177.389%2043.32C177.949%2043%20178.655%2042.7733%20179.509%2042.64L183.069%2042.06V44.06L180.009%2044.58C179.489%2044.6733%20179.102%2044.84%20178.849%2045.08C178.595%2045.32%20178.469%2045.6333%20178.469%2046.02C178.469%2046.3933%20178.609%2046.6933%20178.889%2046.92C179.182%2047.1333%20179.542%2047.24%20179.969%2047.24C180.515%2047.24%20180.995%2047.1267%20181.409%2046.9C181.835%2046.66%20182.162%2046.3333%20182.389%2045.92C182.629%2045.5067%20182.749%2045.0533%20182.749%2044.56V41.76C182.749%2041.2933%20182.562%2040.9067%20182.189%2040.6C181.829%2040.28%20181.349%2040.12%20180.749%2040.12C180.189%2040.12%20179.689%2040.2733%20179.249%2040.58C178.822%2040.8733%20178.509%2041.2667%20178.309%2041.76L176.169%2040.72C176.382%2040.1467%20176.715%2039.6533%20177.169%2039.24C177.635%2038.8133%20178.182%2038.48%20178.809%2038.24C179.435%2038%20180.115%2037.88%20180.849%2037.88C181.742%2037.88%20182.529%2038.0467%20183.209%2038.38C183.889%2038.7%20184.415%2039.1533%20184.789%2039.74C185.175%2040.3133%20185.369%2040.9867%20185.369%2041.76V49H182.889V47.14L183.449%2047.1C183.169%2047.5667%20182.835%2047.96%20182.449%2048.28C182.062%2048.5867%20181.622%2048.8267%20181.129%2049C180.635%2049.16%20180.089%2049.24%20179.489%2049.24ZM187.79%2049V38.12H190.25V40.64L189.97%2040.22C190.17%2039.4333%20190.57%2038.8467%20191.17%2038.46C191.77%2038.0733%20192.477%2037.88%20193.29%2037.88C194.184%2037.88%20194.97%2038.1133%20195.65%2038.58C196.33%2039.0467%20196.77%2039.66%20196.97%2040.42L196.23%2040.48C196.564%2039.6133%20197.064%2038.9667%20197.73%2038.54C198.397%2038.1%20199.164%2037.88%20200.03%2037.88C200.804%2037.88%20201.49%2038.0533%20202.09%2038.4C202.704%2038.7467%20203.184%2039.2333%20203.53%2039.86C203.877%2040.4733%20204.05%2041.1867%20204.05%2042V49H201.43V42.62C201.43%2042.14%20201.344%2041.7267%20201.17%2041.38C200.997%2041.0333%20200.757%2040.7667%20200.45%2040.58C200.144%2040.38%20199.77%2040.28%20199.33%2040.28C198.917%2040.28%20198.55%2040.38%20198.23%2040.58C197.91%2040.7667%20197.664%2041.0333%20197.49%2041.38C197.317%2041.7267%20197.23%2042.14%20197.23%2042.62V49H194.61V42.62C194.61%2042.14%20194.524%2041.7267%20194.35%2041.38C194.177%2041.0333%20193.93%2040.7667%20193.61%2040.58C193.304%2040.38%20192.937%2040.28%20192.51%2040.28C192.097%2040.28%20191.73%2040.38%20191.41%2040.58C191.09%2040.7667%20190.844%2041.0333%20190.67%2041.38C190.497%2041.7267%20190.41%2042.14%20190.41%2042.62V49H187.79ZM206.267%2049V38.12H208.887V49H206.267ZM206.267%2036.9V34.1H208.887V36.9H206.267ZM211.306%2049V38.12H213.766V40.26L213.566%2039.88C213.819%2039.2267%20214.233%2038.7333%20214.806%2038.4C215.393%2038.0533%20216.073%2037.88%20216.846%2037.88C217.646%2037.88%20218.353%2038.0533%20218.966%2038.4C219.593%2038.7467%20220.079%2039.2333%20220.426%2039.86C220.773%2040.4733%20220.946%2041.1867%20220.946%2042V49H218.326V42.62C218.326%2042.14%20218.233%2041.7267%20218.046%2041.38C217.859%2041.0333%20217.599%2040.7667%20217.266%2040.58C216.946%2040.38%20216.566%2040.28%20216.126%2040.28C215.699%2040.28%20215.319%2040.38%20214.986%2040.58C214.653%2040.7667%20214.393%2041.0333%20214.206%2041.38C214.019%2041.7267%20213.926%2042.14%20213.926%2042.62V49H211.306Z'%20fill='%23181918'/%3e%3cpath%20d='M136.872%2072.168C136.228%2072.168%20135.645%2072.0233%20135.122%2071.734C134.609%2071.4353%20134.221%2071.0153%20133.96%2070.474L134.128%2070.32V72H133.078V61.402H134.128V66.176L133.96%2065.882C134.259%2065.406%20134.655%2065.028%20135.15%2064.748C135.654%2064.468%20136.228%2064.328%20136.872%2064.328C137.581%2064.328%20138.211%2064.5007%20138.762%2064.846C139.322%2065.182%20139.761%2065.644%20140.078%2066.232C140.405%2066.82%20140.568%2067.492%20140.568%2068.248C140.568%2068.9947%20140.405%2069.6667%20140.078%2070.264C139.761%2070.852%20139.322%2071.3187%20138.762%2071.664C138.211%2072%20137.581%2072.168%20136.872%2072.168ZM136.816%2071.118C137.32%2071.118%20137.768%2070.992%20138.16%2070.74C138.561%2070.488%20138.874%2070.1473%20139.098%2069.718C139.331%2069.2793%20139.448%2068.7893%20139.448%2068.248C139.448%2067.6973%20139.331%2067.2073%20139.098%2066.778C138.874%2066.3487%20138.561%2066.008%20138.16%2065.756C137.768%2065.504%20137.32%2065.378%20136.816%2065.378C136.312%2065.378%20135.855%2065.504%20135.444%2065.756C135.043%2066.008%20134.721%2066.3533%20134.478%2066.792C134.245%2067.2213%20134.128%2067.7067%20134.128%2068.248C134.128%2068.7893%20134.245%2069.2793%20134.478%2069.718C134.721%2070.1473%20135.043%2070.488%20135.444%2070.74C135.855%2070.992%20136.312%2071.118%20136.816%2071.118ZM145.832%2072.168C145.132%2072.168%20144.497%2072%20143.928%2071.664C143.368%2071.3187%20142.925%2070.8473%20142.598%2070.25C142.271%2069.6527%20142.108%2068.976%20142.108%2068.22C142.108%2067.464%20142.267%2066.7967%20142.584%2066.218C142.901%2065.63%20143.331%2065.168%20143.872%2064.832C144.423%2064.496%20145.039%2064.328%20145.72%2064.328C146.261%2064.328%20146.742%2064.4307%20147.162%2064.636C147.591%2064.832%20147.955%2065.1027%20148.254%2065.448C148.553%2065.784%20148.781%2066.1667%20148.94%2066.596C149.099%2067.016%20149.178%2067.45%20149.178%2067.898C149.178%2067.9913%20149.173%2068.0987%20149.164%2068.22C149.155%2068.332%20149.141%2068.4487%20149.122%2068.57H142.78V67.59H148.52L148.016%2068.01C148.1%2067.4967%20148.039%2067.0393%20147.834%2066.638C147.638%2066.2273%20147.353%2065.9053%20146.98%2065.672C146.607%2065.4293%20146.187%2065.308%20145.72%2065.308C145.253%2065.308%20144.819%2065.4293%20144.418%2065.672C144.026%2065.9147%20143.718%2066.2553%20143.494%2066.694C143.27%2067.1233%20143.181%2067.6367%20143.228%2068.234C143.181%2068.8313%20143.275%2069.354%20143.508%2069.802C143.751%2070.2407%20144.077%2070.5813%20144.488%2070.824C144.908%2071.0667%20145.356%2071.188%20145.832%2071.188C146.383%2071.188%20146.845%2071.0573%20147.218%2070.796C147.591%2070.5347%20147.895%2070.208%20148.128%2069.816L149.024%2070.292C148.875%2070.628%20148.646%2070.9407%20148.338%2071.23C148.03%2071.51%20147.661%2071.7387%20147.232%2071.916C146.812%2072.084%20146.345%2072.168%20145.832%2072.168ZM151.029%2072V64.496H152.079V65.952L151.841%2065.896C152.028%2065.4107%20152.331%2065.028%20152.751%2064.748C153.181%2064.468%20153.675%2064.328%20154.235%2064.328C154.767%2064.328%20155.243%2064.4493%20155.663%2064.692C156.093%2064.9347%20156.429%2065.2707%20156.671%2065.7C156.923%2066.12%20157.049%2066.596%20157.049%2067.128V72H155.999V67.534C155.999%2067.0767%20155.915%2066.6893%20155.747%2066.372C155.589%2066.0547%20155.36%2065.812%20155.061%2065.644C154.772%2065.4667%20154.436%2065.378%20154.053%2065.378C153.671%2065.378%20153.33%2065.4667%20153.031%2065.644C152.733%2065.812%20152.499%2066.0593%20152.331%2066.386C152.163%2066.7033%20152.079%2067.086%20152.079%2067.534V72H151.029ZM164.725%2074.898C163.903%2074.898%20163.138%2074.7487%20162.429%2074.45C161.729%2074.1607%20161.113%2073.75%20160.581%2073.218C160.049%2072.686%20159.633%2072.07%20159.335%2071.37C159.045%2070.6607%20158.901%2069.9%20158.901%2069.088C158.901%2068.276%20159.05%2067.52%20159.349%2066.82C159.647%2066.12%20160.058%2065.5087%20160.581%2064.986C161.113%2064.4633%20161.733%2064.0573%20162.443%2063.768C163.152%2063.4693%20163.913%2063.32%20164.725%2063.32C165.565%2063.32%20166.339%2063.4787%20167.049%2063.796C167.758%2064.104%20168.369%2064.5287%20168.883%2065.07C169.405%2065.602%20169.807%2066.2087%20170.087%2066.89C170.376%2067.5713%20170.521%2068.2853%20170.521%2069.032C170.521%2069.62%20170.427%2070.138%20170.241%2070.586C170.063%2071.0247%20169.802%2071.37%20169.457%2071.622C169.111%2071.874%20168.696%2072%20168.211%2072C167.921%2072%20167.646%2071.9487%20167.385%2071.846C167.123%2071.734%20166.899%2071.58%20166.713%2071.384C166.535%2071.1787%20166.414%2070.936%20166.349%2070.656L166.573%2070.838C166.423%2071.09%20166.237%2071.3047%20166.013%2071.482C165.798%2071.65%20165.555%2071.7807%20165.285%2071.874C165.014%2071.958%20164.72%2072%20164.403%2072C163.861%2072%20163.371%2071.8693%20162.933%2071.608C162.503%2071.3467%20162.163%2070.992%20161.911%2070.544C161.659%2070.096%20161.533%2069.5873%20161.533%2069.018C161.533%2068.4487%20161.659%2067.94%20161.911%2067.492C162.163%2067.044%20162.503%2066.6893%20162.933%2066.428C163.371%2066.1573%20163.861%2066.022%20164.403%2066.022C164.86%2066.022%20165.275%2066.1153%20165.649%2066.302C166.031%2066.4887%20166.335%2066.75%20166.559%2067.086L166.461%2067.254V66.162H167.371V70.026C167.371%2070.3713%20167.445%2070.6233%20167.595%2070.782C167.753%2070.9407%20167.963%2071.02%20168.225%2071.02C168.617%2071.02%20168.92%2070.8567%20169.135%2070.53C169.359%2070.2033%20169.471%2069.7133%20169.471%2069.06C169.471%2068.388%20169.354%2067.7627%20169.121%2067.184C168.887%2066.6053%20168.561%2066.1013%20168.141%2065.672C167.721%2065.2427%20167.221%2064.9067%20166.643%2064.664C166.064%2064.4213%20165.425%2064.3%20164.725%2064.3C164.043%2064.3%20163.409%2064.4213%20162.821%2064.664C162.242%2064.8973%20161.738%2065.2287%20161.309%2065.658C160.879%2066.0873%20160.543%2066.5913%20160.301%2067.17C160.067%2067.7487%20159.951%2068.3833%20159.951%2069.074C159.951%2069.746%20160.063%2070.376%20160.287%2070.964C160.52%2071.5427%20160.847%2072.0513%20161.267%2072.49C161.696%2072.938%20162.205%2073.288%20162.793%2073.54C163.381%2073.792%20164.034%2073.918%20164.753%2073.918C165.173%2073.918%20165.579%2073.8713%20165.971%2073.778C166.363%2073.694%20166.717%2073.5633%20167.035%2073.386L167.483%2074.226C166.689%2074.674%20165.77%2074.898%20164.725%2074.898ZM164.445%2071.02C164.809%2071.02%20165.131%2070.9313%20165.411%2070.754C165.691%2070.5767%20165.91%2070.3387%20166.069%2070.04C166.237%2069.732%20166.321%2069.3867%20166.321%2069.004C166.321%2068.4253%20166.143%2067.954%20165.789%2067.59C165.434%2067.2167%20164.986%2067.03%20164.445%2067.03C164.09%2067.03%20163.768%2067.1187%20163.479%2067.296C163.199%2067.464%20162.979%2067.6973%20162.821%2067.996C162.662%2068.2947%20162.583%2068.6353%20162.583%2069.018C162.583%2069.3913%20162.662%2069.732%20162.821%2070.04C162.989%2070.3387%20163.213%2070.5767%20163.493%2070.754C163.773%2070.9313%20164.09%2071.02%20164.445%2071.02ZM174.661%2072.168C173.942%2072.168%20173.312%2071.986%20172.771%2071.622C172.229%2071.258%20171.837%2070.7633%20171.595%2070.138L172.477%2069.718C172.691%2070.1753%20172.99%2070.5393%20173.373%2070.81C173.765%2071.0807%20174.194%2071.216%20174.661%2071.216C175.109%2071.216%20175.487%2071.1087%20175.795%2070.894C176.103%2070.67%20176.257%2070.3807%20176.257%2070.026C176.257%2069.7647%20176.182%2069.5593%20176.033%2069.41C175.883%2069.2513%20175.711%2069.13%20175.515%2069.046C175.319%2068.962%20175.146%2068.9013%20174.997%2068.864L173.919%2068.556C173.228%2068.36%20172.729%2068.0847%20172.421%2067.73C172.113%2067.3753%20171.959%2066.9647%20171.959%2066.498C171.959%2066.0593%20172.071%2065.6767%20172.295%2065.35C172.519%2065.0233%20172.822%2064.7713%20173.205%2064.594C173.587%2064.4167%20174.012%2064.328%20174.479%2064.328C175.113%2064.328%20175.687%2064.496%20176.201%2064.832C176.723%2065.1587%20177.092%2065.616%20177.307%2066.204L176.411%2066.624C176.224%2066.204%20175.953%2065.8773%20175.599%2065.644C175.253%2065.4013%20174.866%2065.28%20174.437%2065.28C174.017%2065.28%20173.681%2065.3873%20173.429%2065.602C173.177%2065.8167%20173.051%2066.0873%20173.051%2066.414C173.051%2066.666%20173.116%2066.8667%20173.247%2067.016C173.377%2067.1653%20173.527%2067.2773%20173.695%2067.352C173.872%2067.4267%20174.026%2067.4827%20174.157%2067.52L175.403%2067.884C176.009%2068.0613%20176.481%2068.3367%20176.817%2068.71C177.162%2069.0833%20177.335%2069.522%20177.335%2070.026C177.335%2070.4367%20177.218%2070.8053%20176.985%2071.132C176.761%2071.4587%20176.448%2071.7153%20176.047%2071.902C175.645%2072.0793%20175.183%2072.168%20174.661%2072.168ZM179.18%2072V61.402H180.23V65.952L179.992%2065.896C180.178%2065.4107%20180.482%2065.028%20180.902%2064.748C181.331%2064.468%20181.826%2064.328%20182.386%2064.328C182.918%2064.328%20183.394%2064.4493%20183.814%2064.692C184.243%2064.9347%20184.579%2065.2707%20184.822%2065.7C185.074%2066.12%20185.2%2066.596%20185.2%2067.128V72H184.15V67.534C184.15%2067.0767%20184.066%2066.6893%20183.898%2066.372C183.73%2066.0547%20183.496%2065.812%20183.198%2065.644C182.908%2065.4667%20182.577%2065.378%20182.204%2065.378C181.83%2065.378%20181.494%2065.4667%20181.196%2065.644C180.897%2065.812%20180.659%2066.0593%20180.482%2066.386C180.314%2066.7033%20180.23%2067.086%20180.23%2067.534V72H179.18ZM190.621%2072.168C189.921%2072.168%20189.286%2072%20188.717%2071.664C188.157%2071.3187%20187.714%2070.8473%20187.387%2070.25C187.06%2069.6527%20186.897%2068.976%20186.897%2068.22C186.897%2067.464%20187.056%2066.7967%20187.373%2066.218C187.69%2065.63%20188.12%2065.168%20188.661%2064.832C189.212%2064.496%20189.828%2064.328%20190.509%2064.328C191.05%2064.328%20191.531%2064.4307%20191.951%2064.636C192.38%2064.832%20192.744%2065.1027%20193.043%2065.448C193.342%2065.784%20193.57%2066.1667%20193.729%2066.596C193.888%2067.016%20193.967%2067.45%20193.967%2067.898C193.967%2067.9913%20193.962%2068.0987%20193.953%2068.22C193.944%2068.332%20193.93%2068.4487%20193.911%2068.57H187.569V67.59H193.309L192.805%2068.01C192.889%2067.4967%20192.828%2067.0393%20192.623%2066.638C192.427%2066.2273%20192.142%2065.9053%20191.769%2065.672C191.396%2065.4293%20190.976%2065.308%20190.509%2065.308C190.042%2065.308%20189.608%2065.4293%20189.207%2065.672C188.815%2065.9147%20188.507%2066.2553%20188.283%2066.694C188.059%2067.1233%20187.97%2067.6367%20188.017%2068.234C187.97%2068.8313%20188.064%2069.354%20188.297%2069.802C188.54%2070.2407%20188.866%2070.5813%20189.277%2070.824C189.697%2071.0667%20190.145%2071.188%20190.621%2071.188C191.172%2071.188%20191.634%2071.0573%20192.007%2070.796C192.38%2070.5347%20192.684%2070.208%20192.917%2069.816L193.813%2070.292C193.664%2070.628%20193.435%2070.9407%20193.127%2071.23C192.819%2071.51%20192.45%2071.7387%20192.021%2071.916C191.601%2072.084%20191.134%2072.168%20190.621%2072.168ZM195.818%2072V61.402H196.868V68.822L196.42%2068.752L200.634%2064.496H201.992L199.052%2067.506L202.258%2072H200.998L197.988%2067.842L198.66%2067.898L196.518%2070.11L196.868%2069.242V72H195.818ZM206.767%2072.168C206.067%2072.168%20205.433%2072%20204.863%2071.664C204.303%2071.3187%20203.86%2070.8473%20203.533%2070.25C203.207%2069.6527%20203.043%2068.976%20203.043%2068.22C203.043%2067.464%20203.202%2066.7967%20203.519%2066.218C203.837%2065.63%20204.266%2065.168%20204.807%2064.832C205.358%2064.496%20205.974%2064.328%20206.655%2064.328C207.197%2064.328%20207.677%2064.4307%20208.097%2064.636C208.527%2064.832%20208.891%2065.1027%20209.189%2065.448C209.488%2065.784%20209.717%2066.1667%20209.875%2066.596C210.034%2067.016%20210.113%2067.45%20210.113%2067.898C210.113%2067.9913%20210.109%2068.0987%20210.099%2068.22C210.09%2068.332%20210.076%2068.4487%20210.057%2068.57H203.715V67.59H209.455L208.951%2068.01C209.035%2067.4967%20208.975%2067.0393%20208.769%2066.638C208.573%2066.2273%20208.289%2065.9053%20207.915%2065.672C207.542%2065.4293%20207.122%2065.308%20206.655%2065.308C206.189%2065.308%20205.755%2065.4293%20205.353%2065.672C204.961%2065.9147%20204.653%2066.2553%20204.429%2066.694C204.205%2067.1233%20204.117%2067.6367%20204.163%2068.234C204.117%2068.8313%20204.21%2069.354%20204.443%2069.802C204.686%2070.2407%20205.013%2070.5813%20205.423%2070.824C205.843%2071.0667%20206.291%2071.188%20206.767%2071.188C207.318%2071.188%20207.78%2071.0573%20208.153%2070.796C208.527%2070.5347%20208.83%2070.208%20209.063%2069.816L209.959%2070.292C209.81%2070.628%20209.581%2070.9407%20209.273%2071.23C208.965%2071.51%20208.597%2071.7387%20208.167%2071.916C207.747%2072.084%20207.281%2072.168%20206.767%2072.168ZM211.965%2072V61.402H213.015V72H211.965ZM215.528%2072V70.46H216.648V72H215.528ZM221.34%2072.168C220.864%2072.168%20220.439%2072.0793%20220.066%2071.902C219.692%2071.7153%20219.398%2071.4633%20219.184%2071.146C218.969%2070.8287%20218.862%2070.4647%20218.862%2070.054C218.862%2069.662%20218.946%2069.3073%20219.114%2068.99C219.282%2068.6633%20219.543%2068.388%20219.898%2068.164C220.252%2067.94%20220.705%2067.7813%20221.256%2067.688L224.196%2067.198V68.15L221.508%2068.598C220.966%2068.6913%20220.574%2068.864%20220.332%2069.116C220.098%2069.368%20219.982%2069.6667%20219.982%2070.012C219.982%2070.348%20220.112%2070.6327%20220.374%2070.866C220.644%2071.0993%20220.99%2071.216%20221.41%2071.216C221.923%2071.216%20222.371%2071.1087%20222.754%2070.894C223.136%2070.67%20223.435%2070.3713%20223.65%2069.998C223.864%2069.6247%20223.972%2069.2093%20223.972%2068.752V66.848C223.972%2066.4%20223.808%2066.036%20223.482%2065.756C223.155%2065.476%20222.73%2065.336%20222.208%2065.336C221.75%2065.336%20221.349%2065.4527%20221.004%2065.686C220.658%2065.91%20220.402%2066.204%20220.234%2066.568L219.282%2066.05C219.422%2065.7327%20219.641%2065.4433%20219.94%2065.182C220.248%2064.9207%20220.598%2064.7153%20220.99%2064.566C221.382%2064.4073%20221.788%2064.328%20222.208%2064.328C222.758%2064.328%20223.244%2064.4353%20223.664%2064.65C224.093%2064.8647%20224.424%2065.1633%20224.658%2065.546C224.9%2065.9193%20225.022%2066.3533%20225.022%2066.848V72H223.972V70.502L224.126%2070.656C223.995%2070.936%20223.79%2071.1927%20223.51%2071.426C223.239%2071.65%20222.917%2071.832%20222.544%2071.972C222.18%2072.1027%20221.778%2072.168%20221.34%2072.168ZM227.952%2072V65.546H226.454V64.496H227.952V63.824C227.952%2063.3013%20228.068%2062.8627%20228.302%2062.508C228.535%2062.144%20228.843%2061.8687%20229.226%2061.682C229.608%2061.4953%20230.019%2061.402%20230.458%2061.402C230.551%2061.402%20230.658%2061.4113%20230.78%2061.43C230.901%2061.4393%20230.999%2061.4533%20231.074%2061.472V62.424C231.008%2062.4053%20230.92%2062.396%20230.808%2062.396C230.696%2062.3867%20230.616%2062.382%20230.57%2062.382C230.122%2062.382%20229.748%2062.4893%20229.45%2062.704C229.151%2062.9187%20229.002%2063.292%20229.002%2063.824V64.496H230.836V65.546H229.002V72H227.952ZM232.541%2072V64.496H233.591V65.728L233.451%2065.546C233.628%2065.1913%20233.894%2064.9113%20234.249%2064.706C234.613%2064.5007%20235.052%2064.398%20235.565%2064.398H236.041V65.448H235.383C234.842%2065.448%20234.408%2065.616%20234.081%2065.952C233.754%2066.288%20233.591%2066.764%20233.591%2067.38V72H232.541ZM237.271%2072V64.496H238.321V72H237.271ZM237.271%2063.11V61.57H238.321V63.11H237.271ZM243.901%2072.168C243.163%2072.168%20242.515%2071.9953%20241.955%2071.65C241.395%2071.3047%20240.956%2070.838%20240.639%2070.25C240.321%2069.6527%20240.163%2068.9807%20240.163%2068.234C240.163%2067.4873%20240.321%2066.82%20240.639%2066.232C240.956%2065.644%20241.395%2065.182%20241.955%2064.846C242.515%2064.5007%20243.163%2064.328%20243.901%2064.328C244.367%2064.328%20244.806%2064.412%20245.217%2064.58C245.627%2064.748%20245.991%2064.9767%20246.309%2065.266C246.626%2065.546%20246.864%2065.8727%20247.023%2066.246L246.071%2066.736C245.884%2066.3347%20245.599%2066.008%20245.217%2065.756C244.834%2065.504%20244.395%2065.378%20243.901%2065.378C243.406%2065.378%20242.958%2065.504%20242.557%2065.756C242.165%2065.9987%20241.852%2066.3393%20241.619%2066.778C241.395%2067.2073%20241.283%2067.6973%20241.283%2068.248C241.283%2068.7893%20241.395%2069.2793%20241.619%2069.718C241.852%2070.1473%20242.165%2070.488%20242.557%2070.74C242.958%2070.992%20243.406%2071.118%20243.901%2071.118C244.395%2071.118%20244.829%2070.992%20245.203%2070.74C245.585%2070.488%20245.875%2070.152%20246.071%2069.732L247.023%2070.25C246.864%2070.614%20246.626%2070.9407%20246.309%2071.23C245.991%2071.5193%20245.627%2071.748%20245.217%2071.916C244.806%2072.084%20244.367%2072.168%20243.901%2072.168ZM250.898%2072.168C250.422%2072.168%20249.998%2072.0793%20249.624%2071.902C249.251%2071.7153%20248.957%2071.4633%20248.742%2071.146C248.528%2070.8287%20248.42%2070.4647%20248.42%2070.054C248.42%2069.662%20248.504%2069.3073%20248.672%2068.99C248.84%2068.6633%20249.102%2068.388%20249.456%2068.164C249.811%2067.94%20250.264%2067.7813%20250.814%2067.688L253.754%2067.198V68.15L251.066%2068.598C250.525%2068.6913%20250.133%2068.864%20249.89%2069.116C249.657%2069.368%20249.54%2069.6667%20249.54%2070.012C249.54%2070.348%20249.671%2070.6327%20249.932%2070.866C250.203%2071.0993%20250.548%2071.216%20250.968%2071.216C251.482%2071.216%20251.93%2071.1087%20252.312%2070.894C252.695%2070.67%20252.994%2070.3713%20253.208%2069.998C253.423%2069.6247%20253.53%2069.2093%20253.53%2068.752V66.848C253.53%2066.4%20253.367%2066.036%20253.04%2065.756C252.714%2065.476%20252.289%2065.336%20251.766%2065.336C251.309%2065.336%20250.908%2065.4527%20250.562%2065.686C250.217%2065.91%20249.96%2066.204%20249.792%2066.568L248.84%2066.05C248.98%2065.7327%20249.2%2065.4433%20249.498%2065.182C249.806%2064.9207%20250.156%2064.7153%20250.548%2064.566C250.94%2064.4073%20251.346%2064.328%20251.766%2064.328C252.317%2064.328%20252.802%2064.4353%20253.222%2064.65C253.652%2064.8647%20253.983%2065.1633%20254.216%2065.546C254.459%2065.9193%20254.58%2066.3533%20254.58%2066.848V72H253.53V70.502L253.684%2070.656C253.554%2070.936%20253.348%2071.1927%20253.068%2071.426C252.798%2071.65%20252.476%2071.832%20252.102%2071.972C251.738%2072.1027%20251.337%2072.168%20250.898%2072.168Z'%20fill='%23181918'/%3e%3cpath%20d='M137.992%2093.168C137.255%2093.168%20136.578%2093.0373%20135.962%2092.776C135.346%2092.5053%20134.809%2092.132%20134.352%2091.656C133.904%2091.1707%20133.554%2090.6013%20133.302%2089.948C133.05%2089.2947%20132.924%2088.576%20132.924%2087.792C132.924%2087.008%20133.05%2086.2893%20133.302%2085.636C133.554%2084.9827%20133.904%2084.4133%20134.352%2083.928C134.809%2083.4427%20135.346%2083.0693%20135.962%2082.808C136.578%2082.5373%20137.255%2082.402%20137.992%2082.402C138.701%2082.402%20139.336%2082.528%20139.896%2082.78C140.465%2083.032%20140.941%2083.3587%20141.324%2083.76C141.716%2084.152%20141.996%2084.5673%20142.164%2085.006L141.114%2085.468C140.853%2084.8613%20140.451%2084.376%20139.91%2084.012C139.378%2083.6387%20138.739%2083.452%20137.992%2083.452C137.227%2083.452%20136.545%2083.634%20135.948%2083.998C135.351%2084.362%20134.884%2084.8707%20134.548%2085.524C134.212%2086.168%20134.044%2086.924%20134.044%2087.792C134.044%2088.6507%20134.212%2089.4067%20134.548%2090.06C134.884%2090.7133%20135.351%2091.222%20135.948%2091.586C136.545%2091.9407%20137.227%2092.118%20137.992%2092.118C138.739%2092.118%20139.378%2091.936%20139.91%2091.572C140.451%2091.208%20140.853%2090.7227%20141.114%2090.116L142.164%2090.578C141.996%2091.0073%20141.716%2091.4227%20141.324%2091.824C140.941%2092.216%20140.465%2092.538%20139.896%2092.79C139.336%2093.042%20138.701%2093.168%20137.992%2093.168ZM147.393%2093.168C146.683%2093.168%20146.039%2093%20145.461%2092.664C144.882%2092.3187%20144.42%2091.852%20144.075%2091.264C143.739%2090.6667%20143.571%2089.99%20143.571%2089.234C143.571%2088.4873%20143.739%2087.82%20144.075%2087.232C144.411%2086.644%20144.863%2086.182%20145.433%2085.846C146.011%2085.5007%20146.665%2085.328%20147.393%2085.328C148.121%2085.328%20148.769%2085.496%20149.339%2085.832C149.917%2086.168%20150.37%2086.63%20150.697%2087.218C151.033%2087.806%20151.201%2088.478%20151.201%2089.234C151.201%2089.9993%20151.028%2090.6807%20150.683%2091.278C150.337%2091.866%20149.875%2092.328%20149.297%2092.664C148.727%2093%20148.093%2093.168%20147.393%2093.168ZM147.393%2092.118C147.897%2092.118%20148.349%2091.992%20148.751%2091.74C149.161%2091.488%20149.483%2091.1427%20149.717%2090.704C149.959%2090.2653%20150.081%2089.7753%20150.081%2089.234C150.081%2088.6927%20149.959%2088.2073%20149.717%2087.778C149.483%2087.3487%20149.161%2087.008%20148.751%2086.756C148.349%2086.504%20147.897%2086.378%20147.393%2086.378C146.889%2086.378%20146.431%2086.504%20146.021%2086.756C145.619%2087.008%20145.297%2087.3487%20145.055%2087.778C144.812%2088.2073%20144.691%2088.6927%20144.691%2089.234C144.691%2089.7753%20144.812%2090.2653%20145.055%2090.704C145.297%2091.1427%20145.619%2091.488%20146.021%2091.74C146.431%2091.992%20146.889%2092.118%20147.393%2092.118ZM153.417%2093V91.46H154.537V93H153.417ZM160.207%2093V86.546H158.709V85.496H160.207V84.824C160.207%2084.3013%20160.324%2083.8627%20160.557%2083.508C160.791%2083.144%20161.099%2082.8687%20161.481%2082.682C161.864%2082.4953%20162.275%2082.402%20162.713%2082.402C162.807%2082.402%20162.914%2082.4113%20163.035%2082.43C163.157%2082.4393%20163.255%2082.4533%20163.329%2082.472V83.424C163.264%2083.4053%20163.175%2083.396%20163.063%2083.396C162.951%2083.3867%20162.872%2083.382%20162.825%2083.382C162.377%2083.382%20162.004%2083.4893%20161.705%2083.704C161.407%2083.9187%20161.257%2084.292%20161.257%2084.824V85.496H163.091V86.546H161.257V93H160.207ZM168.024%2093.168C167.314%2093.168%20166.67%2093%20166.092%2092.664C165.513%2092.3187%20165.051%2091.852%20164.706%2091.264C164.37%2090.6667%20164.202%2089.99%20164.202%2089.234C164.202%2088.4873%20164.37%2087.82%20164.706%2087.232C165.042%2086.644%20165.494%2086.182%20166.064%2085.846C166.642%2085.5007%20167.296%2085.328%20168.024%2085.328C168.752%2085.328%20169.4%2085.496%20169.97%2085.832C170.548%2086.168%20171.001%2086.63%20171.328%2087.218C171.664%2087.806%20171.832%2088.478%20171.832%2089.234C171.832%2089.9993%20171.659%2090.6807%20171.314%2091.278C170.968%2091.866%20170.506%2092.328%20169.928%2092.664C169.358%2093%20168.724%2093.168%20168.024%2093.168ZM168.024%2092.118C168.528%2092.118%20168.98%2091.992%20169.382%2091.74C169.792%2091.488%20170.114%2091.1427%20170.348%2090.704C170.59%2090.2653%20170.712%2089.7753%20170.712%2089.234C170.712%2088.6927%20170.59%2088.2073%20170.348%2087.778C170.114%2087.3487%20169.792%2087.008%20169.382%2086.756C168.98%2086.504%20168.528%2086.378%20168.024%2086.378C167.52%2086.378%20167.062%2086.504%20166.652%2086.756C166.25%2087.008%20165.928%2087.3487%20165.686%2087.778C165.443%2088.2073%20165.322%2088.6927%20165.322%2089.234C165.322%2089.7753%20165.443%2090.2653%20165.686%2090.704C165.928%2091.1427%20166.25%2091.488%20166.652%2091.74C167.062%2091.992%20167.52%2092.118%20168.024%2092.118ZM176.343%2093.168C175.821%2093.168%20175.345%2093.0467%20174.915%2092.804C174.486%2092.552%20174.145%2092.2067%20173.893%2091.768C173.651%2091.32%20173.529%2090.8067%20173.529%2090.228V85.496H174.579V90.102C174.579%2090.5033%20174.659%2090.858%20174.817%2091.166C174.985%2091.4647%20175.214%2091.698%20175.503%2091.866C175.802%2092.034%20176.143%2092.118%20176.525%2092.118C176.908%2092.118%20177.249%2092.034%20177.547%2091.866C177.846%2091.6887%20178.079%2091.4413%20178.247%2091.124C178.415%2090.7973%20178.499%2090.41%20178.499%2089.962V85.496H179.549V93H178.499V91.544L178.737%2091.6C178.56%2092.0853%20178.257%2092.468%20177.827%2092.748C177.398%2093.028%20176.903%2093.168%20176.343%2093.168ZM181.709%2093V85.496H182.759V86.952L182.521%2086.896C182.708%2086.4107%20183.011%2086.028%20183.431%2085.748C183.86%2085.468%20184.355%2085.328%20184.915%2085.328C185.447%2085.328%20185.923%2085.4493%20186.343%2085.692C186.772%2085.9347%20187.108%2086.2707%20187.351%2086.7C187.603%2087.12%20187.729%2087.596%20187.729%2088.128V93H186.679V88.534C186.679%2088.0767%20186.595%2087.6893%20186.427%2087.372C186.268%2087.0547%20186.04%2086.812%20185.741%2086.644C185.452%2086.4667%20185.116%2086.378%20184.733%2086.378C184.35%2086.378%20184.01%2086.4667%20183.711%2086.644C183.412%2086.812%20183.179%2087.0593%20183.011%2087.386C182.843%2087.7033%20182.759%2088.086%20182.759%2088.534V93H181.709ZM193.122%2093.168C192.422%2093.168%20191.792%2093%20191.232%2092.664C190.672%2092.3187%20190.229%2091.852%20189.902%2091.264C189.585%2090.6667%20189.426%2089.9947%20189.426%2089.248C189.426%2088.492%20189.585%2087.82%20189.902%2087.232C190.229%2086.644%20190.668%2086.182%20191.218%2085.846C191.778%2085.5007%20192.413%2085.328%20193.122%2085.328C193.766%2085.328%20194.34%2085.468%20194.844%2085.748C195.348%2086.028%20195.745%2086.406%20196.034%2086.882L195.866%2087.176V82.402H196.916V93H195.866V91.32L196.034%2091.474C195.773%2092.0153%20195.381%2092.4353%20194.858%2092.734C194.345%2093.0233%20193.766%2093.168%20193.122%2093.168ZM193.178%2092.118C193.682%2092.118%20194.135%2091.992%20194.536%2091.74C194.947%2091.488%20195.269%2091.1473%20195.502%2090.718C195.745%2090.2793%20195.866%2089.7893%20195.866%2089.248C195.866%2088.7067%20195.745%2088.2213%20195.502%2087.792C195.269%2087.3533%20194.947%2087.008%20194.536%2086.756C194.135%2086.504%20193.682%2086.378%20193.178%2086.378C192.684%2086.378%20192.236%2086.504%20191.834%2086.756C191.433%2087.008%20191.116%2087.3487%20190.882%2087.778C190.658%2088.2073%20190.546%2088.6973%20190.546%2089.248C190.546%2089.7893%20190.658%2090.2793%20190.882%2090.718C191.116%2091.1473%20191.428%2091.488%20191.82%2091.74C192.222%2091.992%20192.674%2092.118%20193.178%2092.118ZM202.488%2093.168C201.788%2093.168%20201.153%2093%20200.584%2092.664C200.024%2092.3187%20199.581%2091.8473%20199.254%2091.25C198.927%2090.6527%20198.764%2089.976%20198.764%2089.22C198.764%2088.464%20198.923%2087.7967%20199.24%2087.218C199.557%2086.63%20199.987%2086.168%20200.528%2085.832C201.079%2085.496%20201.695%2085.328%20202.376%2085.328C202.917%2085.328%20203.398%2085.4307%20203.818%2085.636C204.247%2085.832%20204.611%2086.1027%20204.91%2086.448C205.209%2086.784%20205.437%2087.1667%20205.596%2087.596C205.755%2088.016%20205.834%2088.45%20205.834%2088.898C205.834%2088.9913%20205.829%2089.0987%20205.82%2089.22C205.811%2089.332%20205.797%2089.4487%20205.778%2089.57H199.436V88.59H205.176L204.672%2089.01C204.756%2088.4967%20204.695%2088.0393%20204.49%2087.638C204.294%2087.2273%20204.009%2086.9053%20203.636%2086.672C203.263%2086.4293%20202.843%2086.308%20202.376%2086.308C201.909%2086.308%20201.475%2086.4293%20201.074%2086.672C200.682%2086.9147%20200.374%2087.2553%20200.15%2087.694C199.926%2088.1233%20199.837%2088.6367%20199.884%2089.234C199.837%2089.8313%20199.931%2090.354%20200.164%2090.802C200.407%2091.2407%20200.733%2091.5813%20201.144%2091.824C201.564%2092.0667%20202.012%2092.188%20202.488%2092.188C203.039%2092.188%20203.501%2092.0573%20203.874%2091.796C204.247%2091.5347%20204.551%2091.208%20204.784%2090.816L205.68%2091.292C205.531%2091.628%20205.302%2091.9407%20204.994%2092.23C204.686%2092.51%20204.317%2092.7387%20203.888%2092.916C203.468%2093.084%20203.001%2093.168%20202.488%2093.168ZM207.685%2093V85.496H208.735V86.728L208.595%2086.546C208.773%2086.1913%20209.039%2085.9113%20209.393%2085.706C209.757%2085.5007%20210.196%2085.398%20210.709%2085.398H211.185V86.448H210.527C209.986%2086.448%20209.552%2086.616%20209.225%2086.952C208.899%2087.288%20208.735%2087.764%20208.735%2088.38V93H207.685Z'%20fill='%23181918'/%3e%3ccircle%20cx='219.5'%20cy='87'%20r='2.5'%20fill='%23181918'/%3e%3cpath%20d='M232.992%2093.168C232.255%2093.168%20231.578%2093.0373%20230.962%2092.776C230.346%2092.5053%20229.809%2092.132%20229.352%2091.656C228.904%2091.1707%20228.554%2090.6013%20228.302%2089.948C228.05%2089.2947%20227.924%2088.576%20227.924%2087.792C227.924%2087.008%20228.05%2086.2893%20228.302%2085.636C228.554%2084.9827%20228.904%2084.4133%20229.352%2083.928C229.809%2083.4427%20230.346%2083.0693%20230.962%2082.808C231.578%2082.5373%20232.255%2082.402%20232.992%2082.402C233.701%2082.402%20234.336%2082.528%20234.896%2082.78C235.465%2083.032%20235.941%2083.3587%20236.324%2083.76C236.716%2084.152%20236.996%2084.5673%20237.164%2085.006L236.156%2085.496C235.895%2084.8613%20235.493%2084.362%20234.952%2083.998C234.411%2083.634%20233.757%2083.452%20232.992%2083.452C232.227%2083.452%20231.545%2083.634%20230.948%2083.998C230.351%2084.362%20229.884%2084.8707%20229.548%2085.524C229.212%2086.168%20229.044%2086.924%20229.044%2087.792C229.044%2088.6507%20229.212%2089.4067%20229.548%2090.06C229.884%2090.7133%20230.351%2091.222%20230.948%2091.586C231.545%2091.9407%20232.227%2092.118%20232.992%2092.118C233.673%2092.118%20234.285%2091.9687%20234.826%2091.67C235.377%2091.3713%20235.811%2090.9653%20236.128%2090.452C236.445%2089.9293%20236.604%2089.332%20236.604%2088.66V88.086L237.108%2088.59H232.992V87.61H237.724V88.478C237.724%2089.1593%20237.603%2089.7893%20237.36%2090.368C237.117%2090.9373%20236.781%2091.432%20236.352%2091.852C235.923%2092.272%20235.419%2092.5987%20234.84%2092.832C234.271%2093.056%20233.655%2093.168%20232.992%2093.168ZM239.576%2093V82.402H240.626V93H239.576ZM246.289%2093.168C245.58%2093.168%20244.936%2093%20244.357%2092.664C243.779%2092.3187%20243.317%2091.852%20242.971%2091.264C242.635%2090.6667%20242.467%2089.99%20242.467%2089.234C242.467%2088.4873%20242.635%2087.82%20242.971%2087.232C243.307%2086.644%20243.76%2086.182%20244.329%2085.846C244.908%2085.5007%20245.561%2085.328%20246.289%2085.328C247.017%2085.328%20247.666%2085.496%20248.235%2085.832C248.814%2086.168%20249.267%2086.63%20249.593%2087.218C249.929%2087.806%20250.097%2088.478%20250.097%2089.234C250.097%2089.9993%20249.925%2090.6807%20249.579%2091.278C249.234%2091.866%20248.772%2092.328%20248.193%2092.664C247.624%2093%20246.989%2093.168%20246.289%2093.168ZM246.289%2092.118C246.793%2092.118%20247.246%2091.992%20247.647%2091.74C248.058%2091.488%20248.38%2091.1427%20248.613%2090.704C248.856%2090.2653%20248.977%2089.7753%20248.977%2089.234C248.977%2088.6927%20248.856%2088.2073%20248.613%2087.778C248.38%2087.3487%20248.058%2087.008%20247.647%2086.756C247.246%2086.504%20246.793%2086.378%20246.289%2086.378C245.785%2086.378%20245.328%2086.504%20244.917%2086.756C244.516%2087.008%20244.194%2087.3487%20243.951%2087.778C243.709%2088.2073%20243.587%2088.6927%20243.587%2089.234C243.587%2089.7753%20243.709%2090.2653%20243.951%2090.704C244.194%2091.1427%20244.516%2091.488%20244.917%2091.74C245.328%2091.992%20245.785%2092.118%20246.289%2092.118ZM255.743%2093.168C255.099%2093.168%20254.516%2093.0233%20253.993%2092.734C253.48%2092.4353%20253.092%2092.0153%20252.831%2091.474L252.999%2091.32V93H251.949V82.402H252.999V87.176L252.831%2086.882C253.13%2086.406%20253.526%2086.028%20254.021%2085.748C254.525%2085.468%20255.099%2085.328%20255.743%2085.328C256.452%2085.328%20257.082%2085.5007%20257.633%2085.846C258.193%2086.182%20258.632%2086.644%20258.949%2087.232C259.276%2087.82%20259.439%2088.492%20259.439%2089.248C259.439%2089.9947%20259.276%2090.6667%20258.949%2091.264C258.632%2091.852%20258.193%2092.3187%20257.633%2092.664C257.082%2093%20256.452%2093.168%20255.743%2093.168ZM255.687%2092.118C256.191%2092.118%20256.639%2091.992%20257.031%2091.74C257.432%2091.488%20257.745%2091.1473%20257.969%2090.718C258.202%2090.2793%20258.319%2089.7893%20258.319%2089.248C258.319%2088.6973%20258.202%2088.2073%20257.969%2087.778C257.745%2087.3487%20257.432%2087.008%20257.031%2086.756C256.639%2086.504%20256.191%2086.378%20255.687%2086.378C255.183%2086.378%20254.726%2086.504%20254.315%2086.756C253.914%2087.008%20253.592%2087.3533%20253.349%2087.792C253.116%2088.2213%20252.999%2088.7067%20252.999%2089.248C252.999%2089.7893%20253.116%2090.2793%20253.349%2090.718C253.592%2091.1473%20253.914%2091.488%20254.315%2091.74C254.726%2091.992%20255.183%2092.118%20255.687%2092.118ZM263.457%2093.168C262.981%2093.168%20262.556%2093.0793%20262.183%2092.902C261.81%2092.7153%20261.516%2092.4633%20261.301%2092.146C261.086%2091.8287%20260.979%2091.4647%20260.979%2091.054C260.979%2090.662%20261.063%2090.3073%20261.231%2089.99C261.399%2089.6633%20261.66%2089.388%20262.015%2089.164C262.37%2088.94%20262.822%2088.7813%20263.373%2088.688L266.313%2088.198V89.15L263.625%2089.598C263.084%2089.6913%20262.692%2089.864%20262.449%2090.116C262.216%2090.368%20262.099%2090.6667%20262.099%2091.012C262.099%2091.348%20262.23%2091.6327%20262.491%2091.866C262.762%2092.0993%20263.107%2092.216%20263.527%2092.216C264.04%2092.216%20264.488%2092.1087%20264.871%2091.894C265.254%2091.67%20265.552%2091.3713%20265.767%2090.998C265.982%2090.6247%20266.089%2090.2093%20266.089%2089.752V87.848C266.089%2087.4%20265.926%2087.036%20265.599%2086.756C265.272%2086.476%20264.848%2086.336%20264.325%2086.336C263.868%2086.336%20263.466%2086.4527%20263.121%2086.686C262.776%2086.91%20262.519%2087.204%20262.351%2087.568L261.399%2087.05C261.539%2086.7327%20261.758%2086.4433%20262.057%2086.182C262.365%2085.9207%20262.715%2085.7153%20263.107%2085.566C263.499%2085.4073%20263.905%2085.328%20264.325%2085.328C264.876%2085.328%20265.361%2085.4353%20265.781%2085.65C266.21%2085.8647%20266.542%2086.1633%20266.775%2086.546C267.018%2086.9193%20267.139%2087.3533%20267.139%2087.848V93H266.089V91.502L266.243%2091.656C266.112%2091.936%20265.907%2092.1927%20265.627%2092.426C265.356%2092.65%20265.034%2092.832%20264.661%2092.972C264.297%2093.1027%20263.896%2093.168%20263.457%2093.168ZM269.299%2093V82.402H270.349V93H269.299ZM273.953%2093L277.761%2082.57H278.965L282.773%2093H281.597L280.701%2090.452H276.039L275.129%2093H273.953ZM276.403%2089.402H280.309L278.195%2083.41H278.531L276.403%2089.402ZM287.124%2093.168C286.424%2093.168%20285.794%2093%20285.234%2092.664C284.674%2092.3187%20284.231%2091.852%20283.904%2091.264C283.587%2090.6667%20283.428%2089.9947%20283.428%2089.248C283.428%2088.492%20283.587%2087.82%20283.904%2087.232C284.231%2086.644%20284.67%2086.182%20285.22%2085.846C285.78%2085.5007%20286.415%2085.328%20287.124%2085.328C287.768%2085.328%20288.342%2085.468%20288.846%2085.748C289.35%2086.028%20289.747%2086.406%20290.036%2086.882L289.868%2087.176V82.402H290.918V93H289.868V91.32L290.036%2091.474C289.775%2092.0153%20289.383%2092.4353%20288.86%2092.734C288.347%2093.0233%20287.768%2093.168%20287.124%2093.168ZM287.18%2092.118C287.684%2092.118%20288.137%2091.992%20288.538%2091.74C288.949%2091.488%20289.271%2091.1473%20289.504%2090.718C289.747%2090.2793%20289.868%2089.7893%20289.868%2089.248C289.868%2088.7067%20289.747%2088.2213%20289.504%2087.792C289.271%2087.3533%20288.949%2087.008%20288.538%2086.756C288.137%2086.504%20287.684%2086.378%20287.18%2086.378C286.686%2086.378%20286.238%2086.504%20285.836%2086.756C285.435%2087.008%20285.118%2087.3487%20284.884%2087.778C284.66%2088.2073%20284.548%2088.6973%20284.548%2089.248C284.548%2089.7893%20284.66%2090.2793%20284.884%2090.718C285.118%2091.1473%20285.43%2091.488%20285.822%2091.74C286.224%2091.992%20286.676%2092.118%20287.18%2092.118ZM293.074%2093V85.496H294.124V86.924L293.956%2086.714C294.161%2086.2753%20294.465%2085.9347%20294.866%2085.692C295.277%2085.4493%20295.725%2085.328%20296.21%2085.328C296.789%2085.328%20297.311%2085.4913%20297.778%2085.818C298.245%2086.1447%20298.576%2086.5693%20298.772%2087.092L298.478%2087.106C298.665%2086.5273%20298.987%2086.0887%20299.444%2085.79C299.911%2085.482%20300.424%2085.328%20300.984%2085.328C301.488%2085.328%20301.95%2085.4493%20302.37%2085.692C302.799%2085.9347%20303.14%2086.2707%20303.392%2086.7C303.653%2087.12%20303.784%2087.596%20303.784%2088.128V93H302.734V88.534C302.734%2088.0767%20302.65%2087.6893%20302.482%2087.372C302.323%2087.0547%20302.104%2086.812%20301.824%2086.644C301.544%2086.4667%20301.222%2086.378%20300.858%2086.378C300.503%2086.378%20300.181%2086.4667%20299.892%2086.644C299.603%2086.812%20299.374%2087.0593%20299.206%2087.386C299.038%2087.7033%20298.954%2088.086%20298.954%2088.534V93H297.904V88.534C297.904%2088.0767%20297.82%2087.6893%20297.652%2087.372C297.493%2087.0547%20297.274%2086.812%20296.994%2086.644C296.714%2086.4667%20296.392%2086.378%20296.028%2086.378C295.664%2086.378%20295.337%2086.4667%20295.048%2086.644C294.768%2086.812%20294.544%2087.0593%20294.376%2087.386C294.208%2087.7033%20294.124%2088.086%20294.124%2088.534V93H293.074ZM305.789%2093V85.496H306.839V93H305.789ZM305.789%2084.11V82.57H306.839V84.11H305.789ZM308.988%2093V85.496H310.038V86.952L309.8%2086.896C309.987%2086.4107%20310.29%2086.028%20310.71%2085.748C311.139%2085.468%20311.634%2085.328%20312.194%2085.328C312.726%2085.328%20313.202%2085.4493%20313.622%2085.692C314.051%2085.9347%20314.387%2086.2707%20314.63%2086.7C314.882%2087.12%20315.008%2087.596%20315.008%2088.128V93H313.958V88.534C313.958%2088.0767%20313.874%2087.6893%20313.706%2087.372C313.547%2087.0547%20313.319%2086.812%20313.02%2086.644C312.731%2086.4667%20312.395%2086.378%20312.012%2086.378C311.629%2086.378%20311.289%2086.4667%20310.99%2086.644C310.691%2086.812%20310.458%2087.0593%20310.29%2087.386C310.122%2087.7033%20310.038%2088.086%20310.038%2088.534V93H308.988Z'%20fill='%23181918'/%3e%3c/g%3e%3cg%20opacity='0.1'%3e%3cpath%20d='M41%2016C41%207.16344%2048.1634%200%2057%200H315C323.837%200%20331%207.16344%20331%2016V111C331%20119.837%20323.837%20127%20315%20127H57C48.1635%20127%2041%20119.837%2041%20111V16Z'%20fill='url(%23paint1_linear_683_56525)'/%3e%3crect%20x='65'%20y='36'%20width='67'%20height='67'%20rx='33.5'%20fill='%231B1C1E'/%3e%3cpath%20d='M92.8552%2078V62.0216H99.5683C100.526%2062.0216%20101.348%2062.1932%20102.035%2062.5363C102.735%2062.8795%20103.272%2063.3657%20103.643%2063.9948C104.029%2064.6096%20104.222%2065.346%20104.222%2066.2039C104.222%2066.9903%20104.015%2067.7052%20103.6%2068.3486C103.2%2068.9777%20102.607%2069.471%20101.82%2069.8285L101.799%2069.0349C102.485%2069.2923%20103.05%2069.6355%20103.493%2070.0644C103.951%2070.4791%20104.294%2070.9652%20104.523%2071.5229C104.751%2072.0662%20104.866%2072.6453%20104.866%2073.2601C104.866%2074.7328%20104.394%2075.891%20103.45%2076.7346C102.507%2077.5782%20101.22%2078%2099.5897%2078H92.8552ZM94.9571%2076.0697H99.6755C100.605%2076.0697%20101.348%2075.8195%20101.906%2075.3191C102.464%2074.8186%20102.743%2074.1394%20102.743%2073.2815C102.743%2072.4236%20102.464%2071.7445%20101.906%2071.244C101.348%2070.7293%20100.605%2070.4719%2099.6755%2070.4719H94.9571V76.0697ZM94.9571%2068.5845H99.5254C100.297%2068.5845%20100.919%2068.3629%20101.391%2067.9197C101.863%2067.4621%20102.099%2066.883%20102.099%2066.1824C102.099%2065.4532%20101.863%2064.8956%20101.391%2064.5095C100.919%2064.1235%20100.297%2063.9304%2099.5254%2063.9304H94.9571V68.5845Z'%20fill='%23FDFDFE'/%3e%3cpath%20d='M157.44%2056V41.1H163.72C164.707%2041.1%20165.547%2041.2733%20166.24%2041.62C166.947%2041.9533%20167.487%2042.4333%20167.86%2043.06C168.247%2043.6733%20168.44%2044.42%20168.44%2045.3C168.44%2045.98%20168.253%2046.62%20167.88%2047.22C167.52%2047.8067%20166.94%2048.2933%20166.14%2048.68V47.42C166.873%2047.7%20167.453%2048.0467%20167.88%2048.46C168.307%2048.8733%20168.607%2049.3333%20168.78%2049.84C168.953%2050.3467%20169.04%2050.88%20169.04%2051.44C169.04%2052.8667%20168.567%2053.9867%20167.62%2054.8C166.687%2055.6%20165.387%2056%20163.72%2056H157.44ZM160.16%2053.6H164C164.707%2053.6%20165.267%2053.4067%20165.68%2053.02C166.107%2052.62%20166.32%2052.0933%20166.32%2051.44C166.32%2050.7867%20166.107%2050.26%20165.68%2049.86C165.267%2049.46%20164.707%2049.26%20164%2049.26H160.16V53.6ZM160.16%2046.88H163.86C164.42%2046.88%20164.867%2046.72%20165.2%2046.4C165.533%2046.0667%20165.7%2045.64%20165.7%2045.12C165.7%2044.6%20165.533%2044.1867%20165.2%2043.88C164.867%2043.5733%20164.42%2043.42%20163.86%2043.42H160.16V46.88ZM176.208%2056.24C175.088%2056.24%20174.108%2055.9867%20173.268%2055.48C172.428%2054.9733%20171.775%2054.2867%20171.308%2053.42C170.841%2052.5533%20170.608%2051.5933%20170.608%2050.54C170.608%2049.4467%20170.841%2048.48%20171.308%2047.64C171.788%2046.7867%20172.435%2046.1133%20173.248%2045.62C174.075%2045.1267%20174.995%2044.88%20176.008%2044.88C176.861%2044.88%20177.608%2045.02%20178.248%2045.3C178.901%2045.58%20179.455%2045.9667%20179.908%2046.46C180.361%2046.9533%20180.708%2047.52%20180.948%2048.16C181.188%2048.7867%20181.308%2049.4667%20181.308%2050.2C181.308%2050.3867%20181.295%2050.58%20181.268%2050.78C181.255%2050.98%20181.221%2051.1533%20181.168%2051.3H172.768V49.3H179.688L178.448%2050.24C178.568%2049.6267%20178.535%2049.08%20178.348%2048.6C178.175%2048.12%20177.881%2047.74%20177.468%2047.46C177.068%2047.18%20176.581%2047.04%20176.008%2047.04C175.461%2047.04%20174.975%2047.18%20174.548%2047.46C174.121%2047.7267%20173.795%2048.1267%20173.568%2048.66C173.355%2049.18%20173.275%2049.8133%20173.328%2050.56C173.275%2051.2267%20173.361%2051.82%20173.588%2052.34C173.828%2052.8467%20174.175%2053.24%20174.628%2053.52C175.095%2053.8%20175.628%2053.94%20176.228%2053.94C176.828%2053.94%20177.335%2053.8133%20177.748%2053.56C178.175%2053.3067%20178.508%2052.9667%20178.748%2052.54L180.868%2053.58C180.655%2054.1%20180.321%2054.56%20179.868%2054.96C179.415%2055.36%20178.875%2055.6733%20178.248%2055.9C177.635%2056.1267%20176.955%2056.24%20176.208%2056.24ZM183.294%2056V45.12H185.754V47.26L185.554%2046.88C185.808%2046.2267%20186.221%2045.7333%20186.794%2045.4C187.381%2045.0533%20188.061%2044.88%20188.834%2044.88C189.634%2044.88%20190.341%2045.0533%20190.954%2045.4C191.581%2045.7467%20192.068%2046.2333%20192.414%2046.86C192.761%2047.4733%20192.934%2048.1867%20192.934%2049V56H190.314V49.62C190.314%2049.14%20190.221%2048.7267%20190.034%2048.38C189.848%2048.0333%20189.588%2047.7667%20189.254%2047.58C188.934%2047.38%20188.554%2047.28%20188.114%2047.28C187.688%2047.28%20187.308%2047.38%20186.974%2047.58C186.641%2047.7667%20186.381%2048.0333%20186.194%2048.38C186.008%2048.7267%20185.914%2049.14%20185.914%2049.62V56H183.294ZM193.65%2060.42C193.476%2060.42%20193.296%2060.4133%20193.11%2060.4C192.923%2060.3867%20192.77%2060.3667%20192.65%2060.34V58.06C192.89%2058.1%20193.13%2058.12%20193.37%2058.12C193.93%2058.12%20194.363%2057.9867%20194.67%2057.72C194.99%2057.4667%20195.15%2057.0733%20195.15%2056.54V45.12H197.77V56.54C197.77%2057.3667%20197.603%2058.0667%20197.27%2058.64C196.936%2059.2267%20196.456%2059.6667%20195.83%2059.96C195.216%2060.2667%20194.49%2060.42%20193.65%2060.42ZM195.15%2043.9V41.1H197.77V43.9H195.15ZM203.489%2056.24C202.729%2056.24%20202.069%2056.1133%20201.509%2055.86C200.949%2055.6067%20200.515%2055.2467%20200.209%2054.78C199.902%2054.3%20199.749%2053.7467%20199.749%2053.12C199.749%2052.52%20199.882%2051.9867%20200.149%2051.52C200.415%2051.04%20200.829%2050.64%20201.389%2050.32C201.949%2050%20202.655%2049.7733%20203.509%2049.64L207.069%2049.06V51.06L204.009%2051.58C203.489%2051.6733%20203.102%2051.84%20202.849%2052.08C202.595%2052.32%20202.469%2052.6333%20202.469%2053.02C202.469%2053.3933%20202.609%2053.6933%20202.889%2053.92C203.182%2054.1333%20203.542%2054.24%20203.969%2054.24C204.515%2054.24%20204.995%2054.1267%20205.409%2053.9C205.835%2053.66%20206.162%2053.3333%20206.389%2052.92C206.629%2052.5067%20206.749%2052.0533%20206.749%2051.56V48.76C206.749%2048.2933%20206.562%2047.9067%20206.189%2047.6C205.829%2047.28%20205.349%2047.12%20204.749%2047.12C204.189%2047.12%20203.689%2047.2733%20203.249%2047.58C202.822%2047.8733%20202.509%2048.2667%20202.309%2048.76L200.169%2047.72C200.382%2047.1467%20200.715%2046.6533%20201.169%2046.24C201.635%2045.8133%20202.182%2045.48%20202.809%2045.24C203.435%2045%20204.115%2044.88%20204.849%2044.88C205.742%2044.88%20206.529%2045.0467%20207.209%2045.38C207.889%2045.7%20208.415%2046.1533%20208.789%2046.74C209.175%2047.3133%20209.369%2047.9867%20209.369%2048.76V56H206.889V54.14L207.449%2054.1C207.169%2054.5667%20206.835%2054.96%20206.449%2055.28C206.062%2055.5867%20205.622%2055.8267%20205.129%2056C204.635%2056.16%20204.089%2056.24%20203.489%2056.24ZM211.79%2056V45.12H214.25V47.64L213.97%2047.22C214.17%2046.4333%20214.57%2045.8467%20215.17%2045.46C215.77%2045.0733%20216.477%2044.88%20217.29%2044.88C218.184%2044.88%20218.97%2045.1133%20219.65%2045.58C220.33%2046.0467%20220.77%2046.66%20220.97%2047.42L220.23%2047.48C220.564%2046.6133%20221.064%2045.9667%20221.73%2045.54C222.397%2045.1%20223.164%2044.88%20224.03%2044.88C224.804%2044.88%20225.49%2045.0533%20226.09%2045.4C226.704%2045.7467%20227.184%2046.2333%20227.53%2046.86C227.877%2047.4733%20228.05%2048.1867%20228.05%2049V56H225.43V49.62C225.43%2049.14%20225.344%2048.7267%20225.17%2048.38C224.997%2048.0333%20224.757%2047.7667%20224.45%2047.58C224.144%2047.38%20223.77%2047.28%20223.33%2047.28C222.917%2047.28%20222.55%2047.38%20222.23%2047.58C221.91%2047.7667%20221.664%2048.0333%20221.49%2048.38C221.317%2048.7267%20221.23%2049.14%20221.23%2049.62V56H218.61V49.62C218.61%2049.14%20218.524%2048.7267%20218.35%2048.38C218.177%2048.0333%20217.93%2047.7667%20217.61%2047.58C217.304%2047.38%20216.937%2047.28%20216.51%2047.28C216.097%2047.28%20215.73%2047.38%20215.41%2047.58C215.09%2047.7667%20214.844%2048.0333%20214.67%2048.38C214.497%2048.7267%20214.41%2049.14%20214.41%2049.62V56H211.79ZM230.267%2056V45.12H232.887V56H230.267ZM230.267%2043.9V41.1H232.887V43.9H230.267ZM235.306%2056V45.12H237.766V47.26L237.566%2046.88C237.819%2046.2267%20238.233%2045.7333%20238.806%2045.4C239.393%2045.0533%20240.073%2044.88%20240.846%2044.88C241.646%2044.88%20242.353%2045.0533%20242.966%2045.4C243.593%2045.7467%20244.079%2046.2333%20244.426%2046.86C244.773%2047.4733%20244.946%2048.1867%20244.946%2049V56H242.326V49.62C242.326%2049.14%20242.233%2048.7267%20242.046%2048.38C241.859%2048.0333%20241.599%2047.7667%20241.266%2047.58C240.946%2047.38%20240.566%2047.28%20240.126%2047.28C239.699%2047.28%20239.319%2047.38%20238.986%2047.58C238.653%2047.7667%20238.393%2048.0333%20238.206%2048.38C238.019%2048.7267%20237.926%2049.14%20237.926%2049.62V56H235.306Z'%20fill='%23181918'/%3e%3cpath%20d='M160.872%2079.168C160.228%2079.168%20159.645%2079.0233%20159.122%2078.734C158.609%2078.4353%20158.221%2078.0153%20157.96%2077.474L158.128%2077.32V79H157.078V68.402H158.128V73.176L157.96%2072.882C158.259%2072.406%20158.655%2072.028%20159.15%2071.748C159.654%2071.468%20160.228%2071.328%20160.872%2071.328C161.581%2071.328%20162.211%2071.5007%20162.762%2071.846C163.322%2072.182%20163.761%2072.644%20164.078%2073.232C164.405%2073.82%20164.568%2074.492%20164.568%2075.248C164.568%2075.9947%20164.405%2076.6667%20164.078%2077.264C163.761%2077.852%20163.322%2078.3187%20162.762%2078.664C162.211%2079%20161.581%2079.168%20160.872%2079.168ZM160.816%2078.118C161.32%2078.118%20161.768%2077.992%20162.16%2077.74C162.561%2077.488%20162.874%2077.1473%20163.098%2076.718C163.331%2076.2793%20163.448%2075.7893%20163.448%2075.248C163.448%2074.6973%20163.331%2074.2073%20163.098%2073.778C162.874%2073.3487%20162.561%2073.008%20162.16%2072.756C161.768%2072.504%20161.32%2072.378%20160.816%2072.378C160.312%2072.378%20159.855%2072.504%20159.444%2072.756C159.043%2073.008%20158.721%2073.3533%20158.478%2073.792C158.245%2074.2213%20158.128%2074.7067%20158.128%2075.248C158.128%2075.7893%20158.245%2076.2793%20158.478%2076.718C158.721%2077.1473%20159.043%2077.488%20159.444%2077.74C159.855%2077.992%20160.312%2078.118%20160.816%2078.118ZM169.832%2079.168C169.132%2079.168%20168.497%2079%20167.928%2078.664C167.368%2078.3187%20166.925%2077.8473%20166.598%2077.25C166.271%2076.6527%20166.108%2075.976%20166.108%2075.22C166.108%2074.464%20166.267%2073.7967%20166.584%2073.218C166.901%2072.63%20167.331%2072.168%20167.872%2071.832C168.423%2071.496%20169.039%2071.328%20169.72%2071.328C170.261%2071.328%20170.742%2071.4307%20171.162%2071.636C171.591%2071.832%20171.955%2072.1027%20172.254%2072.448C172.553%2072.784%20172.781%2073.1667%20172.94%2073.596C173.099%2074.016%20173.178%2074.45%20173.178%2074.898C173.178%2074.9913%20173.173%2075.0987%20173.164%2075.22C173.155%2075.332%20173.141%2075.4487%20173.122%2075.57H166.78V74.59H172.52L172.016%2075.01C172.1%2074.4967%20172.039%2074.0393%20171.834%2073.638C171.638%2073.2273%20171.353%2072.9053%20170.98%2072.672C170.607%2072.4293%20170.187%2072.308%20169.72%2072.308C169.253%2072.308%20168.819%2072.4293%20168.418%2072.672C168.026%2072.9147%20167.718%2073.2553%20167.494%2073.694C167.27%2074.1233%20167.181%2074.6367%20167.228%2075.234C167.181%2075.8313%20167.275%2076.354%20167.508%2076.802C167.751%2077.2407%20168.077%2077.5813%20168.488%2077.824C168.908%2078.0667%20169.356%2078.188%20169.832%2078.188C170.383%2078.188%20170.845%2078.0573%20171.218%2077.796C171.591%2077.5347%20171.895%2077.208%20172.128%2076.816L173.024%2077.292C172.875%2077.628%20172.646%2077.9407%20172.338%2078.23C172.03%2078.51%20171.661%2078.7387%20171.232%2078.916C170.812%2079.084%20170.345%2079.168%20169.832%2079.168ZM175.029%2079V71.496H176.079V72.952L175.841%2072.896C176.028%2072.4107%20176.331%2072.028%20176.751%2071.748C177.181%2071.468%20177.675%2071.328%20178.235%2071.328C178.767%2071.328%20179.243%2071.4493%20179.663%2071.692C180.093%2071.9347%20180.429%2072.2707%20180.671%2072.7C180.923%2073.12%20181.049%2073.596%20181.049%2074.128V79H179.999V74.534C179.999%2074.0767%20179.915%2073.6893%20179.747%2073.372C179.589%2073.0547%20179.36%2072.812%20179.061%2072.644C178.772%2072.4667%20178.436%2072.378%20178.053%2072.378C177.671%2072.378%20177.33%2072.4667%20177.031%2072.644C176.733%2072.812%20176.499%2073.0593%20176.331%2073.386C176.163%2073.7033%20176.079%2074.086%20176.079%2074.534V79H175.029ZM188.725%2081.898C187.903%2081.898%20187.138%2081.7487%20186.429%2081.45C185.729%2081.1607%20185.113%2080.75%20184.581%2080.218C184.049%2079.686%20183.633%2079.07%20183.335%2078.37C183.045%2077.6607%20182.901%2076.9%20182.901%2076.088C182.901%2075.276%20183.05%2074.52%20183.349%2073.82C183.647%2073.12%20184.058%2072.5087%20184.581%2071.986C185.113%2071.4633%20185.733%2071.0573%20186.443%2070.768C187.152%2070.4693%20187.913%2070.32%20188.725%2070.32C189.565%2070.32%20190.339%2070.4787%20191.049%2070.796C191.758%2071.104%20192.369%2071.5287%20192.883%2072.07C193.405%2072.602%20193.807%2073.2087%20194.087%2073.89C194.376%2074.5713%20194.521%2075.2853%20194.521%2076.032C194.521%2076.62%20194.427%2077.138%20194.241%2077.586C194.063%2078.0247%20193.802%2078.37%20193.457%2078.622C193.111%2078.874%20192.696%2079%20192.211%2079C191.921%2079%20191.646%2078.9487%20191.385%2078.846C191.123%2078.734%20190.899%2078.58%20190.713%2078.384C190.535%2078.1787%20190.414%2077.936%20190.349%2077.656L190.573%2077.838C190.423%2078.09%20190.237%2078.3047%20190.013%2078.482C189.798%2078.65%20189.555%2078.7807%20189.285%2078.874C189.014%2078.958%20188.72%2079%20188.403%2079C187.861%2079%20187.371%2078.8693%20186.933%2078.608C186.503%2078.3467%20186.163%2077.992%20185.911%2077.544C185.659%2077.096%20185.533%2076.5873%20185.533%2076.018C185.533%2075.4487%20185.659%2074.94%20185.911%2074.492C186.163%2074.044%20186.503%2073.6893%20186.933%2073.428C187.371%2073.1573%20187.861%2073.022%20188.403%2073.022C188.86%2073.022%20189.275%2073.1153%20189.649%2073.302C190.031%2073.4887%20190.335%2073.75%20190.559%2074.086L190.461%2074.254V73.162H191.371V77.026C191.371%2077.3713%20191.445%2077.6233%20191.595%2077.782C191.753%2077.9407%20191.963%2078.02%20192.225%2078.02C192.617%2078.02%20192.92%2077.8567%20193.135%2077.53C193.359%2077.2033%20193.471%2076.7133%20193.471%2076.06C193.471%2075.388%20193.354%2074.7627%20193.121%2074.184C192.887%2073.6053%20192.561%2073.1013%20192.141%2072.672C191.721%2072.2427%20191.221%2071.9067%20190.643%2071.664C190.064%2071.4213%20189.425%2071.3%20188.725%2071.3C188.043%2071.3%20187.409%2071.4213%20186.821%2071.664C186.242%2071.8973%20185.738%2072.2287%20185.309%2072.658C184.879%2073.0873%20184.543%2073.5913%20184.301%2074.17C184.067%2074.7487%20183.951%2075.3833%20183.951%2076.074C183.951%2076.746%20184.063%2077.376%20184.287%2077.964C184.52%2078.5427%20184.847%2079.0513%20185.267%2079.49C185.696%2079.938%20186.205%2080.288%20186.793%2080.54C187.381%2080.792%20188.034%2080.918%20188.753%2080.918C189.173%2080.918%20189.579%2080.8713%20189.971%2080.778C190.363%2080.694%20190.717%2080.5633%20191.035%2080.386L191.483%2081.226C190.689%2081.674%20189.77%2081.898%20188.725%2081.898ZM188.445%2078.02C188.809%2078.02%20189.131%2077.9313%20189.411%2077.754C189.691%2077.5767%20189.91%2077.3387%20190.069%2077.04C190.237%2076.732%20190.321%2076.3867%20190.321%2076.004C190.321%2075.4253%20190.143%2074.954%20189.789%2074.59C189.434%2074.2167%20188.986%2074.03%20188.445%2074.03C188.09%2074.03%20187.768%2074.1187%20187.479%2074.296C187.199%2074.464%20186.979%2074.6973%20186.821%2074.996C186.662%2075.2947%20186.583%2075.6353%20186.583%2076.018C186.583%2076.3913%20186.662%2076.732%20186.821%2077.04C186.989%2077.3387%20187.213%2077.5767%20187.493%2077.754C187.773%2077.9313%20188.09%2078.02%20188.445%2078.02ZM198.661%2079.168C197.942%2079.168%20197.312%2078.986%20196.771%2078.622C196.229%2078.258%20195.837%2077.7633%20195.595%2077.138L196.477%2076.718C196.691%2077.1753%20196.99%2077.5393%20197.373%2077.81C197.765%2078.0807%20198.194%2078.216%20198.661%2078.216C199.109%2078.216%20199.487%2078.1087%20199.795%2077.894C200.103%2077.67%20200.257%2077.3807%20200.257%2077.026C200.257%2076.7647%20200.182%2076.5593%20200.033%2076.41C199.883%2076.2513%20199.711%2076.13%20199.515%2076.046C199.319%2075.962%20199.146%2075.9013%20198.997%2075.864L197.919%2075.556C197.228%2075.36%20196.729%2075.0847%20196.421%2074.73C196.113%2074.3753%20195.959%2073.9647%20195.959%2073.498C195.959%2073.0593%20196.071%2072.6767%20196.295%2072.35C196.519%2072.0233%20196.822%2071.7713%20197.205%2071.594C197.587%2071.4167%20198.012%2071.328%20198.479%2071.328C199.113%2071.328%20199.687%2071.496%20200.201%2071.832C200.723%2072.1587%20201.092%2072.616%20201.307%2073.204L200.411%2073.624C200.224%2073.204%20199.953%2072.8773%20199.599%2072.644C199.253%2072.4013%20198.866%2072.28%20198.437%2072.28C198.017%2072.28%20197.681%2072.3873%20197.429%2072.602C197.177%2072.8167%20197.051%2073.0873%20197.051%2073.414C197.051%2073.666%20197.116%2073.8667%20197.247%2074.016C197.377%2074.1653%20197.527%2074.2773%20197.695%2074.352C197.872%2074.4267%20198.026%2074.4827%20198.157%2074.52L199.403%2074.884C200.009%2075.0613%20200.481%2075.3367%20200.817%2075.71C201.162%2076.0833%20201.335%2076.522%20201.335%2077.026C201.335%2077.4367%20201.218%2077.8053%20200.985%2078.132C200.761%2078.4587%20200.448%2078.7153%20200.047%2078.902C199.645%2079.0793%20199.183%2079.168%20198.661%2079.168ZM203.18%2079V68.402H204.23V72.952L203.992%2072.896C204.178%2072.4107%20204.482%2072.028%20204.902%2071.748C205.331%2071.468%20205.826%2071.328%20206.386%2071.328C206.918%2071.328%20207.394%2071.4493%20207.814%2071.692C208.243%2071.9347%20208.579%2072.2707%20208.822%2072.7C209.074%2073.12%20209.2%2073.596%20209.2%2074.128V79H208.15V74.534C208.15%2074.0767%20208.066%2073.6893%20207.898%2073.372C207.73%2073.0547%20207.496%2072.812%20207.198%2072.644C206.908%2072.4667%20206.577%2072.378%20206.204%2072.378C205.83%2072.378%20205.494%2072.4667%20205.196%2072.644C204.897%2072.812%20204.659%2073.0593%20204.482%2073.386C204.314%2073.7033%20204.23%2074.086%20204.23%2074.534V79H203.18ZM214.621%2079.168C213.921%2079.168%20213.286%2079%20212.717%2078.664C212.157%2078.3187%20211.714%2077.8473%20211.387%2077.25C211.06%2076.6527%20210.897%2075.976%20210.897%2075.22C210.897%2074.464%20211.056%2073.7967%20211.373%2073.218C211.69%2072.63%20212.12%2072.168%20212.661%2071.832C213.212%2071.496%20213.828%2071.328%20214.509%2071.328C215.05%2071.328%20215.531%2071.4307%20215.951%2071.636C216.38%2071.832%20216.744%2072.1027%20217.043%2072.448C217.342%2072.784%20217.57%2073.1667%20217.729%2073.596C217.888%2074.016%20217.967%2074.45%20217.967%2074.898C217.967%2074.9913%20217.962%2075.0987%20217.953%2075.22C217.944%2075.332%20217.93%2075.4487%20217.911%2075.57H211.569V74.59H217.309L216.805%2075.01C216.889%2074.4967%20216.828%2074.0393%20216.623%2073.638C216.427%2073.2273%20216.142%2072.9053%20215.769%2072.672C215.396%2072.4293%20214.976%2072.308%20214.509%2072.308C214.042%2072.308%20213.608%2072.4293%20213.207%2072.672C212.815%2072.9147%20212.507%2073.2553%20212.283%2073.694C212.059%2074.1233%20211.97%2074.6367%20212.017%2075.234C211.97%2075.8313%20212.064%2076.354%20212.297%2076.802C212.54%2077.2407%20212.866%2077.5813%20213.277%2077.824C213.697%2078.0667%20214.145%2078.188%20214.621%2078.188C215.172%2078.188%20215.634%2078.0573%20216.007%2077.796C216.38%2077.5347%20216.684%2077.208%20216.917%2076.816L217.813%2077.292C217.664%2077.628%20217.435%2077.9407%20217.127%2078.23C216.819%2078.51%20216.45%2078.7387%20216.021%2078.916C215.601%2079.084%20215.134%2079.168%20214.621%2079.168ZM219.818%2079V68.402H220.868V75.822L220.42%2075.752L224.634%2071.496H225.992L223.052%2074.506L226.258%2079H224.998L221.988%2074.842L222.66%2074.898L220.518%2077.11L220.868%2076.242V79H219.818ZM230.767%2079.168C230.067%2079.168%20229.433%2079%20228.863%2078.664C228.303%2078.3187%20227.86%2077.8473%20227.533%2077.25C227.207%2076.6527%20227.043%2075.976%20227.043%2075.22C227.043%2074.464%20227.202%2073.7967%20227.519%2073.218C227.837%2072.63%20228.266%2072.168%20228.807%2071.832C229.358%2071.496%20229.974%2071.328%20230.655%2071.328C231.197%2071.328%20231.677%2071.4307%20232.097%2071.636C232.527%2071.832%20232.891%2072.1027%20233.189%2072.448C233.488%2072.784%20233.717%2073.1667%20233.875%2073.596C234.034%2074.016%20234.113%2074.45%20234.113%2074.898C234.113%2074.9913%20234.109%2075.0987%20234.099%2075.22C234.09%2075.332%20234.076%2075.4487%20234.057%2075.57H227.715V74.59H233.455L232.951%2075.01C233.035%2074.4967%20232.975%2074.0393%20232.769%2073.638C232.573%2073.2273%20232.289%2072.9053%20231.915%2072.672C231.542%2072.4293%20231.122%2072.308%20230.655%2072.308C230.189%2072.308%20229.755%2072.4293%20229.353%2072.672C228.961%2072.9147%20228.653%2073.2553%20228.429%2073.694C228.205%2074.1233%20228.117%2074.6367%20228.163%2075.234C228.117%2075.8313%20228.21%2076.354%20228.443%2076.802C228.686%2077.2407%20229.013%2077.5813%20229.423%2077.824C229.843%2078.0667%20230.291%2078.188%20230.767%2078.188C231.318%2078.188%20231.78%2078.0573%20232.153%2077.796C232.527%2077.5347%20232.83%2077.208%20233.063%2076.816L233.959%2077.292C233.81%2077.628%20233.581%2077.9407%20233.273%2078.23C232.965%2078.51%20232.597%2078.7387%20232.167%2078.916C231.747%2079.084%20231.281%2079.168%20230.767%2079.168ZM235.965%2079V68.402H237.015V79H235.965ZM239.528%2079V77.46H240.648V79H239.528ZM245.34%2079.168C244.864%2079.168%20244.439%2079.0793%20244.066%2078.902C243.692%2078.7153%20243.398%2078.4633%20243.184%2078.146C242.969%2077.8287%20242.862%2077.4647%20242.862%2077.054C242.862%2076.662%20242.946%2076.3073%20243.114%2075.99C243.282%2075.6633%20243.543%2075.388%20243.898%2075.164C244.252%2074.94%20244.705%2074.7813%20245.256%2074.688L248.196%2074.198V75.15L245.508%2075.598C244.966%2075.6913%20244.574%2075.864%20244.332%2076.116C244.098%2076.368%20243.982%2076.6667%20243.982%2077.012C243.982%2077.348%20244.112%2077.6327%20244.374%2077.866C244.644%2078.0993%20244.99%2078.216%20245.41%2078.216C245.923%2078.216%20246.371%2078.1087%20246.754%2077.894C247.136%2077.67%20247.435%2077.3713%20247.65%2076.998C247.864%2076.6247%20247.972%2076.2093%20247.972%2075.752V73.848C247.972%2073.4%20247.808%2073.036%20247.482%2072.756C247.155%2072.476%20246.73%2072.336%20246.208%2072.336C245.75%2072.336%20245.349%2072.4527%20245.004%2072.686C244.658%2072.91%20244.402%2073.204%20244.234%2073.568L243.282%2073.05C243.422%2072.7327%20243.641%2072.4433%20243.94%2072.182C244.248%2071.9207%20244.598%2071.7153%20244.99%2071.566C245.382%2071.4073%20245.788%2071.328%20246.208%2071.328C246.758%2071.328%20247.244%2071.4353%20247.664%2071.65C248.093%2071.8647%20248.424%2072.1633%20248.658%2072.546C248.9%2072.9193%20249.022%2073.3533%20249.022%2073.848V79H247.972V77.502L248.126%2077.656C247.995%2077.936%20247.79%2078.1927%20247.51%2078.426C247.239%2078.65%20246.917%2078.832%20246.544%2078.972C246.18%2079.1027%20245.778%2079.168%20245.34%2079.168ZM251.952%2079V72.546H250.454V71.496H251.952V70.824C251.952%2070.3013%20252.068%2069.8627%20252.302%2069.508C252.535%2069.144%20252.843%2068.8687%20253.226%2068.682C253.608%2068.4953%20254.019%2068.402%20254.458%2068.402C254.551%2068.402%20254.658%2068.4113%20254.78%2068.43C254.901%2068.4393%20254.999%2068.4533%20255.074%2068.472V69.424C255.008%2069.4053%20254.92%2069.396%20254.808%2069.396C254.696%2069.3867%20254.616%2069.382%20254.57%2069.382C254.122%2069.382%20253.748%2069.4893%20253.45%2069.704C253.151%2069.9187%20253.002%2070.292%20253.002%2070.824V71.496H254.836V72.546H253.002V79H251.952ZM256.541%2079V71.496H257.591V72.728L257.451%2072.546C257.628%2072.1913%20257.894%2071.9113%20258.249%2071.706C258.613%2071.5007%20259.052%2071.398%20259.565%2071.398H260.041V72.448H259.383C258.842%2072.448%20258.408%2072.616%20258.081%2072.952C257.754%2073.288%20257.591%2073.764%20257.591%2074.38V79H256.541ZM261.271%2079V71.496H262.321V79H261.271ZM261.271%2070.11V68.57H262.321V70.11H261.271ZM267.901%2079.168C267.163%2079.168%20266.515%2078.9953%20265.955%2078.65C265.395%2078.3047%20264.956%2077.838%20264.639%2077.25C264.321%2076.6527%20264.163%2075.9807%20264.163%2075.234C264.163%2074.4873%20264.321%2073.82%20264.639%2073.232C264.956%2072.644%20265.395%2072.182%20265.955%2071.846C266.515%2071.5007%20267.163%2071.328%20267.901%2071.328C268.367%2071.328%20268.806%2071.412%20269.217%2071.58C269.627%2071.748%20269.991%2071.9767%20270.309%2072.266C270.626%2072.546%20270.864%2072.8727%20271.023%2073.246L270.071%2073.736C269.884%2073.3347%20269.599%2073.008%20269.217%2072.756C268.834%2072.504%20268.395%2072.378%20267.901%2072.378C267.406%2072.378%20266.958%2072.504%20266.557%2072.756C266.165%2072.9987%20265.852%2073.3393%20265.619%2073.778C265.395%2074.2073%20265.283%2074.6973%20265.283%2075.248C265.283%2075.7893%20265.395%2076.2793%20265.619%2076.718C265.852%2077.1473%20266.165%2077.488%20266.557%2077.74C266.958%2077.992%20267.406%2078.118%20267.901%2078.118C268.395%2078.118%20268.829%2077.992%20269.203%2077.74C269.585%2077.488%20269.875%2077.152%20270.071%2076.732L271.023%2077.25C270.864%2077.614%20270.626%2077.9407%20270.309%2078.23C269.991%2078.5193%20269.627%2078.748%20269.217%2078.916C268.806%2079.084%20268.367%2079.168%20267.901%2079.168ZM274.898%2079.168C274.422%2079.168%20273.998%2079.0793%20273.624%2078.902C273.251%2078.7153%20272.957%2078.4633%20272.742%2078.146C272.528%2077.8287%20272.42%2077.4647%20272.42%2077.054C272.42%2076.662%20272.504%2076.3073%20272.672%2075.99C272.84%2075.6633%20273.102%2075.388%20273.456%2075.164C273.811%2074.94%20274.264%2074.7813%20274.814%2074.688L277.754%2074.198V75.15L275.066%2075.598C274.525%2075.6913%20274.133%2075.864%20273.89%2076.116C273.657%2076.368%20273.54%2076.6667%20273.54%2077.012C273.54%2077.348%20273.671%2077.6327%20273.932%2077.866C274.203%2078.0993%20274.548%2078.216%20274.968%2078.216C275.482%2078.216%20275.93%2078.1087%20276.312%2077.894C276.695%2077.67%20276.994%2077.3713%20277.208%2076.998C277.423%2076.6247%20277.53%2076.2093%20277.53%2075.752V73.848C277.53%2073.4%20277.367%2073.036%20277.04%2072.756C276.714%2072.476%20276.289%2072.336%20275.766%2072.336C275.309%2072.336%20274.908%2072.4527%20274.562%2072.686C274.217%2072.91%20273.96%2073.204%20273.792%2073.568L272.84%2073.05C272.98%2072.7327%20273.2%2072.4433%20273.498%2072.182C273.806%2071.9207%20274.156%2071.7153%20274.548%2071.566C274.94%2071.4073%20275.346%2071.328%20275.766%2071.328C276.317%2071.328%20276.802%2071.4353%20277.222%2071.65C277.652%2071.8647%20277.983%2072.1633%20278.216%2072.546C278.459%2072.9193%20278.58%2073.3533%20278.58%2073.848V79H277.53V77.502L277.684%2077.656C277.554%2077.936%20277.348%2078.1927%20277.068%2078.426C276.798%2078.65%20276.476%2078.832%20276.102%2078.972C275.738%2079.1027%20275.337%2079.168%20274.898%2079.168Z'%20fill='%23181918'/%3e%3cpath%20d='M161.992%20100.168C161.255%20100.168%20160.578%20100.037%20159.962%2099.776C159.346%2099.5053%20158.809%2099.132%20158.352%2098.656C157.904%2098.1707%20157.554%2097.6013%20157.302%2096.948C157.05%2096.2947%20156.924%2095.576%20156.924%2094.792C156.924%2094.008%20157.05%2093.2893%20157.302%2092.636C157.554%2091.9827%20157.904%2091.4133%20158.352%2090.928C158.809%2090.4427%20159.346%2090.0693%20159.962%2089.808C160.578%2089.5373%20161.255%2089.402%20161.992%2089.402C162.701%2089.402%20163.336%2089.528%20163.896%2089.78C164.465%2090.032%20164.941%2090.3587%20165.324%2090.76C165.716%2091.152%20165.996%2091.5673%20166.164%2092.006L165.114%2092.468C164.853%2091.8613%20164.451%2091.376%20163.91%2091.012C163.378%2090.6387%20162.739%2090.452%20161.992%2090.452C161.227%2090.452%20160.545%2090.634%20159.948%2090.998C159.351%2091.362%20158.884%2091.8707%20158.548%2092.524C158.212%2093.168%20158.044%2093.924%20158.044%2094.792C158.044%2095.6507%20158.212%2096.4067%20158.548%2097.06C158.884%2097.7133%20159.351%2098.222%20159.948%2098.586C160.545%2098.9407%20161.227%2099.118%20161.992%2099.118C162.739%2099.118%20163.378%2098.936%20163.91%2098.572C164.451%2098.208%20164.853%2097.7227%20165.114%2097.116L166.164%2097.578C165.996%2098.0073%20165.716%2098.4227%20165.324%2098.824C164.941%2099.216%20164.465%2099.538%20163.896%2099.79C163.336%20100.042%20162.701%20100.168%20161.992%20100.168ZM171.393%20100.168C170.683%20100.168%20170.039%20100%20169.461%2099.664C168.882%2099.3187%20168.42%2098.852%20168.075%2098.264C167.739%2097.6667%20167.571%2096.99%20167.571%2096.234C167.571%2095.4873%20167.739%2094.82%20168.075%2094.232C168.411%2093.644%20168.863%2093.182%20169.433%2092.846C170.011%2092.5007%20170.665%2092.328%20171.393%2092.328C172.121%2092.328%20172.769%2092.496%20173.339%2092.832C173.917%2093.168%20174.37%2093.63%20174.697%2094.218C175.033%2094.806%20175.201%2095.478%20175.201%2096.234C175.201%2096.9993%20175.028%2097.6807%20174.683%2098.278C174.337%2098.866%20173.875%2099.328%20173.297%2099.664C172.727%20100%20172.093%20100.168%20171.393%20100.168ZM171.393%2099.118C171.897%2099.118%20172.349%2098.992%20172.751%2098.74C173.161%2098.488%20173.483%2098.1427%20173.717%2097.704C173.959%2097.2653%20174.081%2096.7753%20174.081%2096.234C174.081%2095.6927%20173.959%2095.2073%20173.717%2094.778C173.483%2094.3487%20173.161%2094.008%20172.751%2093.756C172.349%2093.504%20171.897%2093.378%20171.393%2093.378C170.889%2093.378%20170.431%2093.504%20170.021%2093.756C169.619%2094.008%20169.297%2094.3487%20169.055%2094.778C168.812%2095.2073%20168.691%2095.6927%20168.691%2096.234C168.691%2096.7753%20168.812%2097.2653%20169.055%2097.704C169.297%2098.1427%20169.619%2098.488%20170.021%2098.74C170.431%2098.992%20170.889%2099.118%20171.393%2099.118ZM177.417%20100V98.46H178.537V100H177.417ZM184.207%20100V93.546H182.709V92.496H184.207V91.824C184.207%2091.3013%20184.324%2090.8627%20184.557%2090.508C184.791%2090.144%20185.099%2089.8687%20185.481%2089.682C185.864%2089.4953%20186.275%2089.402%20186.713%2089.402C186.807%2089.402%20186.914%2089.4113%20187.035%2089.43C187.157%2089.4393%20187.255%2089.4533%20187.329%2089.472V90.424C187.264%2090.4053%20187.175%2090.396%20187.063%2090.396C186.951%2090.3867%20186.872%2090.382%20186.825%2090.382C186.377%2090.382%20186.004%2090.4893%20185.705%2090.704C185.407%2090.9187%20185.257%2091.292%20185.257%2091.824V92.496H187.091V93.546H185.257V100H184.207ZM192.024%20100.168C191.314%20100.168%20190.67%20100%20190.092%2099.664C189.513%2099.3187%20189.051%2098.852%20188.706%2098.264C188.37%2097.6667%20188.202%2096.99%20188.202%2096.234C188.202%2095.4873%20188.37%2094.82%20188.706%2094.232C189.042%2093.644%20189.494%2093.182%20190.064%2092.846C190.642%2092.5007%20191.296%2092.328%20192.024%2092.328C192.752%2092.328%20193.4%2092.496%20193.97%2092.832C194.548%2093.168%20195.001%2093.63%20195.328%2094.218C195.664%2094.806%20195.832%2095.478%20195.832%2096.234C195.832%2096.9993%20195.659%2097.6807%20195.314%2098.278C194.968%2098.866%20194.506%2099.328%20193.928%2099.664C193.358%20100%20192.724%20100.168%20192.024%20100.168ZM192.024%2099.118C192.528%2099.118%20192.98%2098.992%20193.382%2098.74C193.792%2098.488%20194.114%2098.1427%20194.348%2097.704C194.59%2097.2653%20194.712%2096.7753%20194.712%2096.234C194.712%2095.6927%20194.59%2095.2073%20194.348%2094.778C194.114%2094.3487%20193.792%2094.008%20193.382%2093.756C192.98%2093.504%20192.528%2093.378%20192.024%2093.378C191.52%2093.378%20191.062%2093.504%20190.652%2093.756C190.25%2094.008%20189.928%2094.3487%20189.686%2094.778C189.443%2095.2073%20189.322%2095.6927%20189.322%2096.234C189.322%2096.7753%20189.443%2097.2653%20189.686%2097.704C189.928%2098.1427%20190.25%2098.488%20190.652%2098.74C191.062%2098.992%20191.52%2099.118%20192.024%2099.118ZM200.343%20100.168C199.821%20100.168%20199.345%20100.047%20198.915%2099.804C198.486%2099.552%20198.145%2099.2067%20197.893%2098.768C197.651%2098.32%20197.529%2097.8067%20197.529%2097.228V92.496H198.579V97.102C198.579%2097.5033%20198.659%2097.858%20198.817%2098.166C198.985%2098.4647%20199.214%2098.698%20199.503%2098.866C199.802%2099.034%20200.143%2099.118%20200.525%2099.118C200.908%2099.118%20201.249%2099.034%20201.547%2098.866C201.846%2098.6887%20202.079%2098.4413%20202.247%2098.124C202.415%2097.7973%20202.499%2097.41%20202.499%2096.962V92.496H203.549V100H202.499V98.544L202.737%2098.6C202.56%2099.0853%20202.257%2099.468%20201.827%2099.748C201.398%20100.028%20200.903%20100.168%20200.343%20100.168ZM205.709%20100V92.496H206.759V93.952L206.521%2093.896C206.708%2093.4107%20207.011%2093.028%20207.431%2092.748C207.86%2092.468%20208.355%2092.328%20208.915%2092.328C209.447%2092.328%20209.923%2092.4493%20210.343%2092.692C210.772%2092.9347%20211.108%2093.2707%20211.351%2093.7C211.603%2094.12%20211.729%2094.596%20211.729%2095.128V100H210.679V95.534C210.679%2095.0767%20210.595%2094.6893%20210.427%2094.372C210.268%2094.0547%20210.04%2093.812%20209.741%2093.644C209.452%2093.4667%20209.116%2093.378%20208.733%2093.378C208.35%2093.378%20208.01%2093.4667%20207.711%2093.644C207.412%2093.812%20207.179%2094.0593%20207.011%2094.386C206.843%2094.7033%20206.759%2095.086%20206.759%2095.534V100H205.709ZM217.122%20100.168C216.422%20100.168%20215.792%20100%20215.232%2099.664C214.672%2099.3187%20214.229%2098.852%20213.902%2098.264C213.585%2097.6667%20213.426%2096.9947%20213.426%2096.248C213.426%2095.492%20213.585%2094.82%20213.902%2094.232C214.229%2093.644%20214.668%2093.182%20215.218%2092.846C215.778%2092.5007%20216.413%2092.328%20217.122%2092.328C217.766%2092.328%20218.34%2092.468%20218.844%2092.748C219.348%2093.028%20219.745%2093.406%20220.034%2093.882L219.866%2094.176V89.402H220.916V100H219.866V98.32L220.034%2098.474C219.773%2099.0153%20219.381%2099.4353%20218.858%2099.734C218.345%20100.023%20217.766%20100.168%20217.122%20100.168ZM217.178%2099.118C217.682%2099.118%20218.135%2098.992%20218.536%2098.74C218.947%2098.488%20219.269%2098.1473%20219.502%2097.718C219.745%2097.2793%20219.866%2096.7893%20219.866%2096.248C219.866%2095.7067%20219.745%2095.2213%20219.502%2094.792C219.269%2094.3533%20218.947%2094.008%20218.536%2093.756C218.135%2093.504%20217.682%2093.378%20217.178%2093.378C216.684%2093.378%20216.236%2093.504%20215.834%2093.756C215.433%2094.008%20215.116%2094.3487%20214.882%2094.778C214.658%2095.2073%20214.546%2095.6973%20214.546%2096.248C214.546%2096.7893%20214.658%2097.2793%20214.882%2097.718C215.116%2098.1473%20215.428%2098.488%20215.82%2098.74C216.222%2098.992%20216.674%2099.118%20217.178%2099.118ZM226.488%20100.168C225.788%20100.168%20225.153%20100%20224.584%2099.664C224.024%2099.3187%20223.581%2098.8473%20223.254%2098.25C222.927%2097.6527%20222.764%2096.976%20222.764%2096.22C222.764%2095.464%20222.923%2094.7967%20223.24%2094.218C223.557%2093.63%20223.987%2093.168%20224.528%2092.832C225.079%2092.496%20225.695%2092.328%20226.376%2092.328C226.917%2092.328%20227.398%2092.4307%20227.818%2092.636C228.247%2092.832%20228.611%2093.1027%20228.91%2093.448C229.209%2093.784%20229.437%2094.1667%20229.596%2094.596C229.755%2095.016%20229.834%2095.45%20229.834%2095.898C229.834%2095.9913%20229.829%2096.0987%20229.82%2096.22C229.811%2096.332%20229.797%2096.4487%20229.778%2096.57H223.436V95.59H229.176L228.672%2096.01C228.756%2095.4967%20228.695%2095.0393%20228.49%2094.638C228.294%2094.2273%20228.009%2093.9053%20227.636%2093.672C227.263%2093.4293%20226.843%2093.308%20226.376%2093.308C225.909%2093.308%20225.475%2093.4293%20225.074%2093.672C224.682%2093.9147%20224.374%2094.2553%20224.15%2094.694C223.926%2095.1233%20223.837%2095.6367%20223.884%2096.234C223.837%2096.8313%20223.931%2097.354%20224.164%2097.802C224.407%2098.2407%20224.733%2098.5813%20225.144%2098.824C225.564%2099.0667%20226.012%2099.188%20226.488%2099.188C227.039%2099.188%20227.501%2099.0573%20227.874%2098.796C228.247%2098.5347%20228.551%2098.208%20228.784%2097.816L229.68%2098.292C229.531%2098.628%20229.302%2098.9407%20228.994%2099.23C228.686%2099.51%20228.317%2099.7387%20227.888%2099.916C227.468%20100.084%20227.001%20100.168%20226.488%20100.168ZM231.685%20100V92.496H232.735V93.728L232.595%2093.546C232.773%2093.1913%20233.039%2092.9113%20233.393%2092.706C233.757%2092.5007%20234.196%2092.398%20234.709%2092.398H235.185V93.448H234.527C233.986%2093.448%20233.552%2093.616%20233.225%2093.952C232.899%2094.288%20232.735%2094.764%20232.735%2095.38V100H231.685Z'%20fill='%23181918'/%3e%3ccircle%20cx='243.5'%20cy='94'%20r='2.5'%20fill='%23181918'/%3e%3cpath%20d='M256.992%20100.168C256.255%20100.168%20255.578%20100.037%20254.962%2099.776C254.346%2099.5053%20253.809%2099.132%20253.352%2098.656C252.904%2098.1707%20252.554%2097.6013%20252.302%2096.948C252.05%2096.2947%20251.924%2095.576%20251.924%2094.792C251.924%2094.008%20252.05%2093.2893%20252.302%2092.636C252.554%2091.9827%20252.904%2091.4133%20253.352%2090.928C253.809%2090.4427%20254.346%2090.0693%20254.962%2089.808C255.578%2089.5373%20256.255%2089.402%20256.992%2089.402C257.701%2089.402%20258.336%2089.528%20258.896%2089.78C259.465%2090.032%20259.941%2090.3587%20260.324%2090.76C260.716%2091.152%20260.996%2091.5673%20261.164%2092.006L260.156%2092.496C259.895%2091.8613%20259.493%2091.362%20258.952%2090.998C258.411%2090.634%20257.757%2090.452%20256.992%2090.452C256.227%2090.452%20255.545%2090.634%20254.948%2090.998C254.351%2091.362%20253.884%2091.8707%20253.548%2092.524C253.212%2093.168%20253.044%2093.924%20253.044%2094.792C253.044%2095.6507%20253.212%2096.4067%20253.548%2097.06C253.884%2097.7133%20254.351%2098.222%20254.948%2098.586C255.545%2098.9407%20256.227%2099.118%20256.992%2099.118C257.673%2099.118%20258.285%2098.9687%20258.826%2098.67C259.377%2098.3713%20259.811%2097.9653%20260.128%2097.452C260.445%2096.9293%20260.604%2096.332%20260.604%2095.66V95.086L261.108%2095.59H256.992V94.61H261.724V95.478C261.724%2096.1593%20261.603%2096.7893%20261.36%2097.368C261.117%2097.9373%20260.781%2098.432%20260.352%2098.852C259.923%2099.272%20259.419%2099.5987%20258.84%2099.832C258.271%20100.056%20257.655%20100.168%20256.992%20100.168ZM263.576%20100V89.402H264.626V100H263.576ZM270.289%20100.168C269.58%20100.168%20268.936%20100%20268.357%2099.664C267.779%2099.3187%20267.317%2098.852%20266.971%2098.264C266.635%2097.6667%20266.467%2096.99%20266.467%2096.234C266.467%2095.4873%20266.635%2094.82%20266.971%2094.232C267.307%2093.644%20267.76%2093.182%20268.329%2092.846C268.908%2092.5007%20269.561%2092.328%20270.289%2092.328C271.017%2092.328%20271.666%2092.496%20272.235%2092.832C272.814%2093.168%20273.267%2093.63%20273.593%2094.218C273.929%2094.806%20274.097%2095.478%20274.097%2096.234C274.097%2096.9993%20273.925%2097.6807%20273.579%2098.278C273.234%2098.866%20272.772%2099.328%20272.193%2099.664C271.624%20100%20270.989%20100.168%20270.289%20100.168ZM270.289%2099.118C270.793%2099.118%20271.246%2098.992%20271.647%2098.74C272.058%2098.488%20272.38%2098.1427%20272.613%2097.704C272.856%2097.2653%20272.977%2096.7753%20272.977%2096.234C272.977%2095.6927%20272.856%2095.2073%20272.613%2094.778C272.38%2094.3487%20272.058%2094.008%20271.647%2093.756C271.246%2093.504%20270.793%2093.378%20270.289%2093.378C269.785%2093.378%20269.328%2093.504%20268.917%2093.756C268.516%2094.008%20268.194%2094.3487%20267.951%2094.778C267.709%2095.2073%20267.587%2095.6927%20267.587%2096.234C267.587%2096.7753%20267.709%2097.2653%20267.951%2097.704C268.194%2098.1427%20268.516%2098.488%20268.917%2098.74C269.328%2098.992%20269.785%2099.118%20270.289%2099.118ZM279.743%20100.168C279.099%20100.168%20278.516%20100.023%20277.993%2099.734C277.48%2099.4353%20277.092%2099.0153%20276.831%2098.474L276.999%2098.32V100H275.949V89.402H276.999V94.176L276.831%2093.882C277.13%2093.406%20277.526%2093.028%20278.021%2092.748C278.525%2092.468%20279.099%2092.328%20279.743%2092.328C280.452%2092.328%20281.082%2092.5007%20281.633%2092.846C282.193%2093.182%20282.632%2093.644%20282.949%2094.232C283.276%2094.82%20283.439%2095.492%20283.439%2096.248C283.439%2096.9947%20283.276%2097.6667%20282.949%2098.264C282.632%2098.852%20282.193%2099.3187%20281.633%2099.664C281.082%20100%20280.452%20100.168%20279.743%20100.168ZM279.687%2099.118C280.191%2099.118%20280.639%2098.992%20281.031%2098.74C281.432%2098.488%20281.745%2098.1473%20281.969%2097.718C282.202%2097.2793%20282.319%2096.7893%20282.319%2096.248C282.319%2095.6973%20282.202%2095.2073%20281.969%2094.778C281.745%2094.3487%20281.432%2094.008%20281.031%2093.756C280.639%2093.504%20280.191%2093.378%20279.687%2093.378C279.183%2093.378%20278.726%2093.504%20278.315%2093.756C277.914%2094.008%20277.592%2094.3533%20277.349%2094.792C277.116%2095.2213%20276.999%2095.7067%20276.999%2096.248C276.999%2096.7893%20277.116%2097.2793%20277.349%2097.718C277.592%2098.1473%20277.914%2098.488%20278.315%2098.74C278.726%2098.992%20279.183%2099.118%20279.687%2099.118ZM287.457%20100.168C286.981%20100.168%20286.556%20100.079%20286.183%2099.902C285.81%2099.7153%20285.516%2099.4633%20285.301%2099.146C285.086%2098.8287%20284.979%2098.4647%20284.979%2098.054C284.979%2097.662%20285.063%2097.3073%20285.231%2096.99C285.399%2096.6633%20285.66%2096.388%20286.015%2096.164C286.37%2095.94%20286.822%2095.7813%20287.373%2095.688L290.313%2095.198V96.15L287.625%2096.598C287.084%2096.6913%20286.692%2096.864%20286.449%2097.116C286.216%2097.368%20286.099%2097.6667%20286.099%2098.012C286.099%2098.348%20286.23%2098.6327%20286.491%2098.866C286.762%2099.0993%20287.107%2099.216%20287.527%2099.216C288.04%2099.216%20288.488%2099.1087%20288.871%2098.894C289.254%2098.67%20289.552%2098.3713%20289.767%2097.998C289.982%2097.6247%20290.089%2097.2093%20290.089%2096.752V94.848C290.089%2094.4%20289.926%2094.036%20289.599%2093.756C289.272%2093.476%20288.848%2093.336%20288.325%2093.336C287.868%2093.336%20287.466%2093.4527%20287.121%2093.686C286.776%2093.91%20286.519%2094.204%20286.351%2094.568L285.399%2094.05C285.539%2093.7327%20285.758%2093.4433%20286.057%2093.182C286.365%2092.9207%20286.715%2092.7153%20287.107%2092.566C287.499%2092.4073%20287.905%2092.328%20288.325%2092.328C288.876%2092.328%20289.361%2092.4353%20289.781%2092.65C290.21%2092.8647%20290.542%2093.1633%20290.775%2093.546C291.018%2093.9193%20291.139%2094.3533%20291.139%2094.848V100H290.089V98.502L290.243%2098.656C290.112%2098.936%20289.907%2099.1927%20289.627%2099.426C289.356%2099.65%20289.034%2099.832%20288.661%2099.972C288.297%20100.103%20287.896%20100.168%20287.457%20100.168ZM293.299%20100V89.402H294.349V100H293.299ZM297.953%20100L301.761%2089.57H302.965L306.773%20100H305.597L304.701%2097.452H300.039L299.129%20100H297.953ZM300.403%2096.402H304.309L302.195%2090.41H302.531L300.403%2096.402ZM311.124%20100.168C310.424%20100.168%20309.794%20100%20309.234%2099.664C308.674%2099.3187%20308.231%2098.852%20307.904%2098.264C307.587%2097.6667%20307.428%2096.9947%20307.428%2096.248C307.428%2095.492%20307.587%2094.82%20307.904%2094.232C308.231%2093.644%20308.67%2093.182%20309.22%2092.846C309.78%2092.5007%20310.415%2092.328%20311.124%2092.328C311.768%2092.328%20312.342%2092.468%20312.846%2092.748C313.35%2093.028%20313.747%2093.406%20314.036%2093.882L313.868%2094.176V89.402H314.918V100H313.868V98.32L314.036%2098.474C313.775%2099.0153%20313.383%2099.4353%20312.86%2099.734C312.347%20100.023%20311.768%20100.168%20311.124%20100.168ZM311.18%2099.118C311.684%2099.118%20312.137%2098.992%20312.538%2098.74C312.949%2098.488%20313.271%2098.1473%20313.504%2097.718C313.747%2097.2793%20313.868%2096.7893%20313.868%2096.248C313.868%2095.7067%20313.747%2095.2213%20313.504%2094.792C313.271%2094.3533%20312.949%2094.008%20312.538%2093.756C312.137%2093.504%20311.684%2093.378%20311.18%2093.378C310.686%2093.378%20310.238%2093.504%20309.836%2093.756C309.435%2094.008%20309.118%2094.3487%20308.884%2094.778C308.66%2095.2073%20308.548%2095.6973%20308.548%2096.248C308.548%2096.7893%20308.66%2097.2793%20308.884%2097.718C309.118%2098.1473%20309.43%2098.488%20309.822%2098.74C310.224%2098.992%20310.676%2099.118%20311.18%2099.118ZM317.074%20100V92.496H318.124V93.924L317.956%2093.714C318.161%2093.2753%20318.465%2092.9347%20318.866%2092.692C319.277%2092.4493%20319.725%2092.328%20320.21%2092.328C320.789%2092.328%20321.311%2092.4913%20321.778%2092.818C322.245%2093.1447%20322.576%2093.5693%20322.772%2094.092L322.478%2094.106C322.665%2093.5273%20322.987%2093.0887%20323.444%2092.79C323.911%2092.482%20324.424%2092.328%20324.984%2092.328C325.488%2092.328%20325.95%2092.4493%20326.37%2092.692C326.799%2092.9347%20327.14%2093.2707%20327.392%2093.7C327.653%2094.12%20327.784%2094.596%20327.784%2095.128V100H326.734V95.534C326.734%2095.0767%20326.65%2094.6893%20326.482%2094.372C326.323%2094.0547%20326.104%2093.812%20325.824%2093.644C325.544%2093.4667%20325.222%2093.378%20324.858%2093.378C324.503%2093.378%20324.181%2093.4667%20323.892%2093.644C323.603%2093.812%20323.374%2094.0593%20323.206%2094.386C323.038%2094.7033%20322.954%2095.086%20322.954%2095.534V100H321.904V95.534C321.904%2095.0767%20321.82%2094.6893%20321.652%2094.372C321.493%2094.0547%20321.274%2093.812%20320.994%2093.644C320.714%2093.4667%20320.392%2093.378%20320.028%2093.378C319.664%2093.378%20319.337%2093.4667%20319.048%2093.644C318.768%2093.812%20318.544%2094.0593%20318.376%2094.386C318.208%2094.7033%20318.124%2095.086%20318.124%2095.534V100H317.074ZM329.789%20100V92.496H330.839V100H329.789ZM329.789%2091.11V89.57H330.839V91.11H329.789ZM332.988%20100V92.496H334.038V93.952L333.8%2093.896C333.987%2093.4107%20334.29%2093.028%20334.71%2092.748C335.139%2092.468%20335.634%2092.328%20336.194%2092.328C336.726%2092.328%20337.202%2092.4493%20337.622%2092.692C338.051%2092.9347%20338.387%2093.2707%20338.63%2093.7C338.882%2094.12%20339.008%2094.596%20339.008%2095.128V100H337.958V95.534C337.958%2095.0767%20337.874%2094.6893%20337.706%2094.372C337.547%2094.0547%20337.319%2093.812%20337.02%2093.644C336.731%2093.4667%20336.395%2093.378%20336.012%2093.378C335.629%2093.378%20335.289%2093.4667%20334.99%2093.644C334.691%2093.812%20334.458%2094.0593%20334.29%2094.386C334.122%2094.7033%20334.038%2095.086%20334.038%2095.534V100H332.988Z'%20fill='%23181918'/%3e%3c/g%3e%3cmask%20id='path-17-inside-1_683_56525'%20fill='white'%3e%3cpath%20d='M0%2031C0%2022.1634%207.16344%2015%2016%2015H330C338.837%2015%20346%2022.1634%20346%2031V114C346%20122.837%20338.837%20130%20330%20130H16C7.16344%20130%200%20122.837%200%20114V31Z'/%3e%3c/mask%3e%3cpath%20d='M0%2031C0%2022.1634%207.16344%2015%2016%2015H330C338.837%2015%20346%2022.1634%20346%2031V114C346%20122.837%20338.837%20130%20330%20130H16C7.16344%20130%200%20122.837%200%20114V31Z'%20fill='%23FDFDFD'/%3e%3cpath%20d='M-0.5%2031C-0.5%2021.8873%206.8873%2014.5%2016%2014.5H329.5C338.613%2014.5%20346%2021.8873%20346%2031C346%2022.4396%20338.837%2015.5%20330%2015.5H16C7.43959%2015.5%200.5%2022.4396%200.5%2031H-0.5ZM0.5%2031M346%20130H0H346M16%20130C6.8873%20130%20-0.5%20122.613%20-0.5%20113.5V31C-0.5%2021.8873%206.8873%2014.5%2016%2014.5V15.5C7.43959%2015.5%200.5%2022.4396%200.5%2031V114C0.5%20122.837%207.43959%20130%2016%20130ZM16%20130M346%2015V130V15'%20fill='url(%23paint2_linear_683_56525)'%20mask='url(%23path-17-inside-1_683_56525)'/%3e%3cdefs%3e%3clinearGradient%20id='paint0_linear_683_56525'%20x1='59'%20y1='49'%20x2='286'%20y2='98'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%232B2A2A'/%3e%3cstop%20offset='1'%20stop-color='white'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint1_linear_683_56525'%20x1='78.362'%20y1='49.1226'%20x2='284.411'%20y2='82.1461'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%232B2A2A'/%3e%3cstop%20offset='1'%20stop-color='white'/%3e%3c/linearGradient%3e%3clinearGradient%20id='paint2_linear_683_56525'%20x1='-5.20861e-07'%20y1='-8.5'%20x2='70.9255'%20y2='193.231'%20gradientUnits='userSpaceOnUse'%3e%3cstop%20stop-color='%238E3530'/%3e%3cstop%20offset='0.575999'%20stop-color='white'/%3e%3c/linearGradient%3e%3c/defs%3e%3c/svg%3e\"","import React from 'react';\nimport { Avatar } from 'antd';\nimport cardBorderSvg from '../../assets/card-border.svg';\n\nexport interface UserCardProps {\n name: string;\n email: string;\n role?: string;\n avatar?: string;\n className?: string;\n}\n\nexport const UserCard: React.FC<UserCardProps> = ({\n name,\n email,\n role,\n avatar,\n className = '',\n}) => {\n return (\n <div\n style={{\n boxShadow: '0px -8px 30px rgba(236, 97, 91, 0.1)',\n borderRadius: '16px',\n background:\n 'linear-gradient(to bottom, rgba(236, 97, 91, 0.05) 0%, rgba(255, 255, 255, 0) 50%)',\n }}\n className=\"relative min-h-[120px] pt-8 pb-4 pl-4 pr-4\"\n >\n <img\n src={cardBorderSvg}\n alt=\"img-bg\"\n style={{\n position: 'absolute',\n top: -8,\n left: 0,\n objectFit: 'cover',\n }}\n />\n <div\n className={`flex gap-4 items-center relative ${className}`}\n style={{\n position: 'relative',\n }}\n >\n {avatar ? (\n <Avatar src={avatar} size={80} />\n ) : (\n <Avatar\n size={80}\n style={{ backgroundColor: '#181918', fontSize: '32px', fontWeight: 600 }}\n >\n {name\n .split(' ')\n .map((n) => n[0])\n .join('')\n .toUpperCase()}\n </Avatar>\n )}\n <div className=\"flex flex-col\">\n <span\n style={{\n color: '#181918',\n fontSize: '16px',\n fontWeight: 600,\n lineHeight: '1.3',\n }}\n >\n {name}\n </span>\n <span\n style={{\n color: '#181918',\n fontSize: '14px',\n fontWeight: 400,\n lineHeight: '1.4',\n marginTop: '4px',\n }}\n >\n {email}\n </span>\n {role && (\n <span\n style={{\n color: '#181918',\n fontSize: '14px',\n fontWeight: 400,\n lineHeight: '1.4',\n marginTop: '2px',\n }}\n >\n {role}\n </span>\n )}\n </div>\n </div>\n </div>\n );\n};\n","import React from 'react';\nimport { Select } from 'antd';\nimport type { SelectProps } from 'antd';\n\nexport interface Country {\n code: string;\n name: string;\n flag: string;\n}\n\nexport interface CountrySelectorProps extends Omit<SelectProps, 'options'> {\n countries?: Country[];\n defaultCountry?: string;\n onCountryChange?: (countryCode: string) => void;\n showSearch?: boolean;\n}\n\nconst defaultCountries: Country[] = [\n { code: 'NG', name: 'Nigeria', flag: '/images/flags/NG.svg' },\n { code: 'US', name: 'United States', flag: '/images/flags/US.svg' },\n { code: 'GB', name: 'United Kingdom', flag: '/images/flags/GB.svg' },\n { code: 'GH', name: 'Ghana', flag: '/images/flags/GH.svg' },\n { code: 'KE', name: 'Kenya', flag: '/images/flags/KE.svg' },\n { code: 'ZA', name: 'South Africa', flag: '/images/flags/ZA.svg' },\n];\n\nexport const CountrySelector: React.FC<CountrySelectorProps> = ({\n countries = defaultCountries,\n defaultCountry = 'NG',\n onCountryChange,\n showSearch = false,\n className = '',\n ...props\n}) => {\n const handleChange = (value: string) => {\n if (onCountryChange) {\n onCountryChange(value);\n }\n };\n\n const renderFlag = (flag: string) => {\n return (\n <img\n src={flag}\n alt=\"flag\"\n className=\"w-7 h-7 rounded-full object-cover\"\n style={{ width: '28px', height: '28px' }}\n />\n );\n };\n\n const options = countries.map((country) => ({\n value: country.code,\n label: (\n <div className=\"flex items-center gap-2\">\n {renderFlag(country.flag)}\n <span>{country.code}</span>\n </div>\n ),\n // Add searchable text for filtering\n searchLabel: `${country.name} ${country.code}`.toLowerCase(),\n }));\n\n // Custom filter function for searching\n const handleFilter = (input: string, option: any) => {\n return option?.searchLabel?.includes(input.toLowerCase()) || false;\n };\n\n return (\n <>\n <style>\n {`\n .country-selector.ant-select {\n min-width: 90px;\n heigh: 40px;\n border-radius: 20px;\n padding: 5px !important;\n background: #EEEEEE;\n }\n\n .country-selector .ant-select-selector {\n border-radius: 20px !important;\n border: 1px solid #E5E7EB !important;\n height: 40px !important;\n display: flex;\n align-items: center;\n background: #FFFFFF !important;\n }\n\n .country-selector .ant-select-selection-item {\n display: flex;\n align-items: center;\n gap: 8px;\n font-weight: 500;\n color: #000000;\n }\n\n .country-selector:hover .ant-select-selector {\n border-color: #D1D5DB !important;\n }\n\n .country-selector.ant-select-focused .ant-select-selector {\n border-color: #EC615B !important;\n box-shadow: 0 0 0 2px rgba(236, 97, 91, 0.1) !important;\n }\n\n .country-selector .ant-select-arrow {\n color: #6B7280;\n }\n\n .country-selector .ant-select-dropdown {\n border-radius: 12px !important;\n }\n `}\n </style>\n <Select\n className={`country-selector ${className}`}\n defaultValue={defaultCountry}\n onChange={handleChange}\n options={options}\n showSearch={showSearch}\n filterOption={handleFilter}\n placeholder=\"Search country...\"\n suffixIcon={\n <svg width=\"12\" height=\"8\" viewBox=\"0 0 12 8\" fill=\"none\">\n <path\n d=\"M1 1.5L6 6.5L11 1.5\"\n stroke=\"currentColor\"\n strokeWidth=\"1.5\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n }\n {...props}\n />\n </>\n );\n};\n","import React from 'react';\nimport { Dropdown } from 'antd';\nimport type { MenuProps } from 'antd';\n\nexport interface UserProfileDropdownProps {\n name: string;\n role?: string;\n avatarUrl?: string;\n menuItems?: MenuProps['items'];\n onMenuClick?: (key: string) => void;\n className?: string;\n width?: string | number;\n}\n\nexport const UserProfileDropdown: React.FC<UserProfileDropdownProps> = ({\n name,\n role,\n avatarUrl,\n menuItems,\n onMenuClick,\n className = '',\n width,\n}) => {\n const defaultMenuItems: MenuProps['items'] = [\n {\n key: 'profile',\n label: 'My Profile',\n },\n {\n key: 'settings',\n label: 'Settings',\n },\n {\n type: 'divider',\n },\n {\n key: 'logout',\n label: 'Logout',\n danger: true,\n },\n ];\n\n const handleMenuClick: MenuProps['onClick'] = ({ key }) => {\n if (onMenuClick) {\n onMenuClick(key);\n }\n };\n\n const getInitials = (name: string) => {\n const parts = name.split(' ');\n if (parts.length >= 2) {\n return `${parts[0][0]}${parts[1][0]}`.toUpperCase();\n }\n return name.substring(0, 2).toUpperCase();\n };\n\n return (\n <>\n <style>\n {`\n .user-profile-dropdown {\n cursor: pointer;\n display: flex;\n align-items: center;\n gap: 10px;\n padding: 5px;\n border-radius: 50px;\n background: #EEEEEE;\n border: 1px solid #E6E6E6;\n transition: background-color 0.2s;\n }\n\n .user-profile-dropdown:hover {\n background-color: #E5E5E5;\n }\n\n .user-profile-avatar {\n width: 30px;\n height: 30px;\n border-radius: 50%;\n display: flex;\n align-items: center;\n justify-content: center;\n font-weight: 600;\n font-size: 14px;\n color: #FFFFFF;\n background: linear-gradient(135deg, #EC615B 0%, #F59E95 100%);\n flex-shrink: 0;\n overflow: hidden;\n }\n\n .user-profile-avatar img {\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n\n .user-profile-info {\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: 2px;\n min-width: 0;\n }\n\n .user-profile-name {\n font-weight: 700;\n font-size: 14px;\n color: #000000;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n line-height: 1.2;\n }\n\n .user-profile-role {\n font-size: 12px;\n color: #666666;\n font-weight: 400;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n line-height: 1.2;\n }\n\n .user-profile-dropdown-icon {\n color: #000000;\n flex-shrink: 0;\n transition: transform 0.2s;\n margin-left: auto;\n }\n\n .user-profile-dropdown[aria-expanded=\"true\"] .user-profile-dropdown-icon {\n transform: rotate(180deg);\n }\n `}\n </style>\n <Dropdown\n menu={{\n items: menuItems || defaultMenuItems,\n onClick: handleMenuClick,\n }}\n trigger={['click']}\n placement=\"bottomRight\"\n >\n <div\n className={`user-profile-dropdown ${className}`}\n style={{ width: typeof width === 'number' ? `${width}px` : width }}\n >\n <div className=\"user-profile-avatar\">\n {avatarUrl ? <img src={avatarUrl} alt={name} /> : getInitials(name)}\n </div>\n <div className=\"user-profile-info\">\n <div className=\"user-profile-name\">{name}</div>\n {role && <div className=\"user-profile-role\">{role}</div>}\n </div>\n <svg\n className=\"user-profile-dropdown-icon\"\n width=\"24\"\n height=\"24\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n >\n <path\n d=\"M6 9L12 15L18 9\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </div>\n </Dropdown>\n </>\n );\n};\n","import React from 'react';\n\nexport interface ActionCardProps {\n label: string;\n icon: React.ReactNode;\n iconColor?: 'red' | 'blue' | 'green' | 'purple' | 'orange' | 'yellow';\n onClick?: () => void;\n disabled?: boolean;\n className?: string;\n}\n\nexport const ActionCard: React.FC<ActionCardProps> = ({\n label,\n icon,\n iconColor = 'blue',\n onClick,\n disabled = false,\n className = '',\n}) => {\n const colorStyles = {\n red: {\n background: '#FFEAE8',\n color: '#EC615B',\n },\n blue: {\n background: '#E8F4FD',\n color: '#4A9FD8',\n },\n green: {\n background: '#E8F8F0',\n color: '#5FB894',\n },\n purple: {\n background: '#F3E8FD',\n color: '#9B59D8',\n },\n orange: {\n background: '#FFF3E8',\n color: '#F59E42',\n },\n yellow: {\n background: '#FFFBE8',\n color: '#F5D742',\n },\n };\n\n const currentColor = colorStyles[iconColor];\n\n return (\n <button\n className={`bg-[#FDFDFD] border border-[#E6E6E6] rounded-[14px] px-[18px] py-2.5 flex items-center gap-4 cursor-pointer transition-all duration-300 ease-in-out w-full h-[60px] hover:border-gray-300 hover:-translate-y-1 active:translate-y-0 disabled:opacity-50 disabled:cursor-not-allowed disabled:hover:border-[#E6E6E6] disabled:hover:translate-y-0 ${className}`}\n style={{\n boxShadow: '0 0 0 0 rgba(0, 0, 0, 0)',\n transition: 'all 0.3s ease-in-out',\n }}\n onMouseEnter={(e) => {\n if (!disabled) {\n e.currentTarget.style.boxShadow = '0 0 16px 0 rgba(0, 0, 0, 0.08)';\n }\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.boxShadow = '0 0 0 0 rgba(0, 0, 0, 0)';\n }}\n onClick={onClick}\n disabled={disabled}\n >\n <div\n className=\"w-10 h-10 rounded-full flex items-center justify-center shrink-0 [&>svg]:w-6 [&>svg]:h-6 transition-transform duration-300 ease-in-out\"\n style={{\n backgroundColor: currentColor.background,\n color: currentColor.color,\n }}\n >\n {icon}\n </div>\n <div className=\"text-sm font-medium text-[#181918] transition-colors duration-200\">{label}</div>\n </button>\n );\n};\n","import React, { useState } from 'react';\n\nexport interface DashboardCardProps {\n label: string;\n value: string | number;\n icon?: React.ReactNode;\n showVisibilityToggle?: boolean;\n onVisibilityToggle?: () => void;\n valuePrefix?: string;\n ledgerBalance?: string | number;\n backgroundPattern?: 'wave' | 'grid' | 'none';\n width?: string | number;\n className?: string;\n}\n\nexport const DashboardCard: React.FC<DashboardCardProps> = ({\n label,\n value,\n icon,\n showVisibilityToggle = true,\n onVisibilityToggle,\n valuePrefix = '₦',\n ledgerBalance,\n backgroundPattern = 'wave',\n width = 348,\n className = '',\n}) => {\n const [isVisible, setIsVisible] = useState(true);\n\n const handleToggleVisibility = () => {\n setIsVisible(!isVisible);\n if (onVisibilityToggle) {\n onVisibilityToggle();\n }\n };\n const defaultIcon = (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\n <rect x=\"3\" y=\"6\" width=\"18\" height=\"12\" rx=\"2\" stroke=\"currentColor\" strokeWidth=\"2\" />\n <path d=\"M3 10h18M7 14h4\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" />\n </svg>\n );\n\n return (\n <>\n <style>\n {`\n .dashboard-card-bg {\n background: radial-gradient(circle at 50% 136%, #7A7F7A 0%, #181918 100%);\n }\n\n .dashboard-card-pattern {\n background-image: url('/images/card-pattern.svg');\n background-size: cover;\n background-position: center;\n background-repeat: no-repeat;\n }\n `}\n </style>\n <div\n className={`dashboard-card-bg relative overflow-hidden min-h-[160px] flex flex-col justify-between rounded-[20px] px-[22px] pt-3 pb-1 transition-all duration-300 ease-in-out hover:-translate-y-1 cursor-pointer ${className}`}\n style={{\n width: typeof width === 'number' ? `${width}px` : width,\n boxShadow: '0 0 0 0 rgba(0, 0, 0, 0)',\n transition: 'all 0.3s ease-in-out',\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.boxShadow = '0 0 24px 0 rgba(0, 0, 0, 0.15)';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.boxShadow = '0 0 0 0 rgba(0, 0, 0, 0)';\n }}\n >\n {backgroundPattern !== 'none' && (\n <div className=\"dashboard-card-pattern absolute top-1/2 left-1/2 -translate-x-1/2 -translate-y-1/2 w-full h-full pointer-events-none transition-opacity duration-300\" />\n )}\n <div className=\"relative z-10\">\n <div className=\"flex items-center justify-between mb-4\">\n <div className=\"w-10 h-10 bg-[#616161] rounded-full flex items-center justify-center text-white transition-transform duration-300 ease-in-out hover:scale-110\">\n {icon || defaultIcon}\n </div>\n </div>\n <div className=\"flex items-center gap-2 mt-3\">\n <span className=\"text-sm text-[#E6E6E6] font-light transition-colors duration-200\">{label}</span>\n {showVisibilityToggle && (\n <button\n className=\"bg-transparent border-none cursor-pointer p-1 flex items-center justify-center text-white hover:text-white/80 transition-colors duration-200\"\n onClick={handleToggleVisibility}\n aria-label=\"Toggle visibility\"\n >\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M1.61342 8.47806C1.52262 8.3343 1.47723 8.26242 1.45182 8.15155C1.43273 8.06827 1.43273 7.93694 1.45182 7.85366C1.47723 7.74279 1.52262 7.67091 1.61341 7.52715C2.36369 6.33916 4.59693 3.33594 8.00027 3.33594C11.4036 3.33594 13.6369 6.33916 14.3871 7.52715C14.4779 7.67091 14.5233 7.74279 14.5487 7.85366C14.5678 7.93694 14.5678 8.06827 14.5487 8.15155C14.5233 8.26242 14.4779 8.3343 14.3871 8.47806C13.6369 9.66604 11.4036 12.6693 8.00027 12.6693C4.59693 12.6693 2.36369 9.66604 1.61342 8.47806Z\"\n stroke=\"currentColor\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n <path\n d=\"M8.00027 10.0026C9.10484 10.0026 10.0003 9.10717 10.0003 8.0026C10.0003 6.89803 9.10484 6.0026 8.00027 6.0026C6.8957 6.0026 6.00027 6.89803 6.00027 8.0026C6.00027 9.10717 6.8957 10.0026 8.00027 10.0026Z\"\n stroke=\"currentColor\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n </button>\n )}\n </div>\n <div className=\"text-[32px] font-bold text-white transition-all duration-200\">\n {isVisible ? `${valuePrefix} ${value}` : '****'}\n </div>\n {ledgerBalance && (\n <div className=\"mb-1\">\n <div className=\"w-full h-px bg-white/10 mb-2 transition-opacity duration-300\"></div>\n <div className=\"flex items-center gap-2 transition-all duration-200\">\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path\n d=\"M8.0026 13.3307H3.46927C2.72253 13.3307 2.34917 13.3307 2.06395 13.1854C1.81307 13.0576 1.60909 12.8536 1.48126 12.6027C1.33594 12.3175 1.33594 11.9441 1.33594 11.1974V4.7974C1.33594 4.05066 1.33594 3.67729 1.48126 3.39208C1.60909 3.14119 1.81307 2.93722 2.06395 2.80939C2.34917 2.66406 2.72253 2.66406 3.46927 2.66406H3.73594C5.22941 2.66406 5.97615 2.66406 6.54658 2.95471C7.04834 3.21037 7.45629 3.61832 7.71195 4.12009C8.0026 4.69052 8.0026 5.43726 8.0026 6.93073M8.0026 13.3307V6.93073M8.0026 13.3307H12.5359C13.2827 13.3307 13.656 13.3307 13.9413 13.1854C14.1921 13.0576 14.3961 12.8536 14.5239 12.6027C14.6693 12.3175 14.6693 11.9441 14.6693 11.1974V4.7974C14.6693 4.05066 14.6693 3.67729 14.5239 3.39208C14.3961 3.14119 14.1921 2.93722 13.9413 2.80939C13.656 2.66406 13.2827 2.66406 12.5359 2.66406H12.2693C10.7758 2.66406 10.0291 2.66406 9.45863 2.95471C8.95686 3.21037 8.54892 3.61832 8.29325 4.12009C8.0026 4.69052 8.0026 5.43726 8.0026 6.93073\"\n stroke=\"#EC615B\"\n strokeWidth=\"1.3\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n />\n </svg>\n <span className=\"text-xs text-[#E6E6E6] font-light transition-all duration-200\">\n Ledger Balance {isVisible ? `${valuePrefix} ${ledgerBalance}` : '****'}\n </span>\n </div>\n </div>\n )}\n </div>\n </div>\n </>\n );\n};\n","import React from 'react';\n\nexport interface NotificationItem {\n id: string;\n title: string;\n description: string;\n timestamp: string;\n isNew?: boolean;\n icon?: React.ReactNode;\n iconBackgroundColor?: string;\n iconColor?: string;\n onClick?: () => void;\n}\n\nexport interface NotificationDropdownProps {\n title: string;\n count?: number;\n notifications: NotificationItem[];\n onViewMore?: () => void;\n className?: string;\n maxHeight?: string | number;\n}\n\nexport const NotificationDropdown: React.FC<NotificationDropdownProps> = ({\n count,\n notifications,\n onViewMore,\n className = '',\n maxHeight = 400,\n}) => {\n const defaultIcon = (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <circle cx=\"10\" cy=\"10\" r=\"9\" stroke=\"currentColor\" strokeWidth=\"1.5\" />\n <path d=\"M10 6v4M10 14h.01\" stroke=\"currentColor\" strokeWidth=\"1.5\" strokeLinecap=\"round\" />\n </svg>\n );\n\n return (\n <div\n className={`bg-white rounded-2xl shadow-lg border border-gray-100 overflow-hidden ${className}`}\n style={{ width: '380px' }}\n >\n {/* Tab Section */}\n <div className=\"flex items-center justify-between px-4 py-3 bg-gray-50\">\n <div className=\"flex items-center gap-2\">\n <span className=\"text-sm font-medium text-[#181918]\">Issues</span>\n {count !== undefined && (\n <span className=\"flex flex-col items-center justify-center h-[22px] w-[22px] bg-[#FAE5B7] text-[#6C4D0B] border border-[#EFAC18] text-[11px] font-medium px-2 py-0.5 rounded-full\">\n {count}\n </span>\n )}\n </div>\n {onViewMore && (\n <button\n onClick={onViewMore}\n className=\"text-xs text-[#EC615B] font-normal hover:text-[#EC615B] transition-colors duration-200\"\n >\n View More\n </button>\n )}\n </div>\n\n {/* Notifications List */}\n <div\n className=\"overflow-y-auto\"\n style={{ maxHeight: typeof maxHeight === 'number' ? `${maxHeight}px` : maxHeight }}\n >\n {notifications.length === 0 ? (\n <div className=\"px-4 py-16 flex flex-col items-center justify-center\">\n <img\n src=\"/images/empty-notification.svg\"\n alt=\"No notifications\"\n className=\"w-16 h-16 mb-4\"\n />\n <h4 className=\"text-sm font-medium text-[#181918] mb-1\">\n No issues available\n </h4>\n <p className=\"text-xs text-gray-500 font-light\">\n All recent activities will appear here\n </p>\n </div>\n ) : (\n notifications.map((notification) => (\n <div\n key={notification.id}\n onClick={notification.onClick}\n className=\"flex gap-3 px-4 py-3 border-b border-[#E6E6E6] hover:bg-[#FDEFEF] transition-colors duration-200 cursor-pointer\"\n >\n {/* Icon */}\n <div\n className=\"flex items-center justify-center h-10 w-10 rounded-full flex-shrink-0 [&>svg]:w-5 [&>svg]:h-5\"\n style={{\n backgroundColor: notification.iconBackgroundColor || '#FCE7E6',\n color: notification.iconColor || '#EC615B',\n }}\n >\n {notification.icon || defaultIcon}\n </div>\n\n {/* Content */}\n <div className=\"flex-1 min-w-0\">\n <h4 className=\"text-sm font-medium text-[#181918] mb-1\">{notification.title}</h4>\n <p className=\"text-xs text-[#181918] font-light line-clamp-2\">\n {notification.description}\n </p>\n </div>\n\n {/* Timestamp/Badge */}\n <div className=\"flex-shrink-0\">\n {notification.isNew ? (\n <span className=\"text-[#EC615B] text-xs font-medium px-2 py-1 rounded\">New</span>\n ) : (\n <span className=\"text-xs text-gray-400\">{notification.timestamp}</span>\n )}\n </div>\n </div>\n ))\n )}\n </div>\n </div>\n );\n};\n","import React from 'react';\nimport { Tabs } from 'antd';\n\nexport interface TabItem {\n key: string;\n label: string;\n children: React.ReactNode;\n}\n\nexport interface TabsComponentProps {\n items: TabItem[];\n defaultActiveKey?: string;\n activeKey?: string;\n onChange?: (activeKey: string) => void;\n className?: string;\n}\n\nexport const TabsComponent: React.FC<TabsComponentProps> = ({\n items,\n defaultActiveKey,\n activeKey,\n onChange,\n className = '',\n}) => {\n return (\n <div className={className}>\n <style>\n {`\n .custom-tabs .ant-tabs-nav {\n margin-bottom: 0 !important;\n }\n\n .custom-tabs .ant-tabs-nav::before {\n border-bottom: 1px solid #E6E6E6 !important;\n }\n\n .custom-tabs .ant-tabs-tab {\n padding: 10px 0 !important;\n margin-right: 20px !important;\n color: #181918 !important;\n font-size: 14px !important;\n font-weight: 400 !important;\n font-family: 'Plus Jakarta Sans', sans-serif !important;\n }\n\n .custom-tabs .ant-tabs-tab:hover {\n color: #EC615B !important;\n }\n\n .custom-tabs .ant-tabs-tab-active .ant-tabs-tab-btn {\n color: #EC615B !important;\n font-weight: 400 !important;\n }\n\n .custom-tabs .ant-tabs-ink-bar {\n background: #EC615B !important;\n height: 2px !important;\n }\n\n .custom-tabs .ant-tabs-tab-btn {\n transition: color 0.3s ease !important;\n }\n\n .custom-tabs .ant-tabs-content-holder {\n padding-top: 16px;\n }\n `}\n </style>\n <Tabs\n className=\"custom-tabs\"\n items={items}\n defaultActiveKey={defaultActiveKey}\n activeKey={activeKey}\n onChange={onChange}\n />\n </div>\n );\n};\n"],"names":["Button","variant","size","className","children","props","getSizeHeight","getVariantStyles","height","disabledStyles","jsxs","Fragment","jsx","AntButton","e","_a","styles","StatCard","label","value","icon","iconBackgroundColor","iconColor","valuePrefix","progressText","badge","width","defaultIcon","SearchInput","iconPosition","fullWidth","onIconClick","bgColor","borderColor","focusBorderColor","textColor","placeholderColor","rounded","style","containerBaseClasses","inputBaseClasses","sizeClasses","iconSizeClasses","roundedClasses","paddingWithIcon","widthClass","customStyles","placeholderClass","defaultBorderClass","defaultTextClass","defaultFocusClass","inputClassName","iconPositionClasses","defaultIconColor","hoverIconColor","defaultSearchIcon","Card","shadow","combinedClassName","AntCard","Dropdown","items","trigger","placement","overlayClassName","disabled","menuBgColor","menuItemHoverColor","dangerColor","isOpen","setIsOpen","useState","dropdownRef","useRef","useEffect","handleClickOutside","event","handleTriggerClick","handleTriggerMouseEnter","handleTriggerMouseLeave","handleMenuItemClick","item","placementClasses","animationClasses","itemSizeClasses","defaultHoverColor","defaultBorderColor","defaultDangerColor","hoverColorStyle","customHoverClass","customDangerStyle","dangerHoverBgStyle","finalBorderColor","itemStyle","Select","options","controlledValue","defaultValue","placeholder","onChange","allowClear","showSearch","searchPlaceholder","selectedBgColor","selectedTextColor","hoverBgColor","internalValue","setInternalValue","searchQuery","setSearchQuery","selectRef","searchInputRef","handleSelect","optionValue","handleClear","selectedOption","opt","filteredOptions","option","getTriggerStyles","getSelectedOptionStyles","ChevronIcon","ClearIcon","Table","columns","dataSource","rowKey","pagination","loading","onRow","bordered","striped","headerBgColor","headerTextColor","rowHoverColor","stripedRowColor","currentPage","setCurrentPage","pageSize","setPageSize","sizeConfig","currentSizeConfig","currentRoundedClass","getRowKey","record","index","getValue","dataIndex","obj","key","paginatedData","handlePageChange","page","handlePageSizeChange","newPageSize","column","idx","rowProps","stripedBg","hoverBg","colIdx","content","Pagination","current","total","onPageSizeChange","showSizeChanger","pageSizeOptions","showTotal","totalPages","startItem","endItem","getPageNumbers","pages","i","TableTop","title","description","onSearch","actions","filters","titleColor","descriptionColor","searchBgColor","searchBorderColor","searchFocusBorderColor","hideActionButtons","selectedActionButton","handleSearchChange","config","radiusClass","searchInputStyle","widthMap","Modal","open","onClose","footer","closable","maskClosable","centered","overlayColor","bodyClassName","headerClassName","maxHeight","isVisible","setIsVisible","isAnimating","setIsAnimating","effectiveWidth","modalStyle","headerStyle","overlayStyle","timer","handleEscape","handleMaskClick","handleModalClick","Badge","dot","variantClasses","dotSizeClasses","dotColorClasses","Steps","direction","finishColor","processColor","waitColor","errorColor","lineColor","getStepStatus","textSizeClasses","descriptionSizeClasses","renderIcon","status","getStatusClasses","isOutline","statusClasses","isLast","iconStyle","Progress","percent","showInfo","strokeColor","strokeWidth","format","successColor","exceptionColor","trackColor","clampedPercent","heightClasses","getStatusColor","getTrackColor","getStatusIcon","formatPercent","Checkbox","controlledChecked","defaultChecked","indeterminate","id","name","checkedColor","uncheckedColor","checkedBorderColor","internalChecked","setInternalChecked","isControlled","checked","handleChange","newChecked","isFilled","getCheckboxClasses","getCheckboxInlineStyles","getIconColor","getSizeClasses","getRoundedClasses","SelectedItemsList","onRemove","emptyMessage","itemClassName","sublabelColor","removeButtonColor","removeButtonHoverColor","roundedClass","defaultBgColor","defaultHoverBgColor","defaultTextColor","defaultSublabelColor","defaultRemoveButtonColor","defaultRemoveButtonHoverColor","finalBgColor","finalHoverBgColor","finalTextColor","finalSublabelColor","finalRemoveButtonColor","finalRemoveButtonHoverColor","Input","error","helperText","errorClass","AntInput","PasswordInput","OTPInput","length","onComplete","errorMessage","otp","setOtp","inputRefs","otpArray","filledOtp","val","newOtp","otpString","digit","handleKeyDown","handlePaste","pastedData","pastedArray","nextIndex","React","el","PhoneInput","countryCode","onCountryCodeChange","countryCodes","showCountryCodeDropdown","customFormat","displayValue","setDisplayValue","cleaned","formatted","formatPhoneNumber","input","cursorPosition","oldLength","diff","newCursorPosition","syntheticEvent","numericData","start","newCleaned","CurrencyInput","currencySymbol","formatAmount","externalValue","formatNumber","num","parts","integerPart","decimalPart","formattedInteger","unformatNumber","stringValue","inputValue","rawValue","IconContext","createContext","r","t","f","n","clsx","presetColors","round","splitColorStr","str","parseNum","match","numList","parseHSVorHSL","_","limitRange","max","mergedMax","FastColor","__publicField","matchFormat","matchPrefix","prefix","trimStr","presetColor","hsv","adjustGamma","raw","R","G","B","delta","l","amount","h","s","color","p","calc","rgba","background","bg","alpha","other","hex","rHex","gHex","bHex","aHex","rgb","clone","withoutPrefix","connectNum","index1","index2","_h","a","g","b","huePrime","chroma","secondComponent","lightnessModification","v","vv","hh","ff","q","cells","txt","hueStep","saturationStep","saturationStep2","brightnessStep1","brightnessStep2","lightColorCount","darkColorCount","darkColorMap","getHue","light","hue","getSaturation","saturation","generate","opts","patterns","pColor","c","blue","canUseDom","contains","root","node","APPEND_ORDER","APPEND_PRIORITY","MARK_KEY","containerCache","getMark","mark","getContainer","getOrder","prepend","findStyles","container","injectCSS","css","csp","priority","mergedOrder","isPrependQueue","styleNode","firstChild","existStyle","nodePriority","findExistNode","syncRealContainer","cachedRealContainer","placeholderStyle","parentNode","updateCSS","originOption","existNode","_b","_c","newNode","getRoot","ele","inShadow","getShadowRoot","warned","preWarningFns","preMessage","fn","warning","valid","message","finalMessage","msg","preMessageFn","note","resetWarned","call","method","warningOnce","noteOnce","camelCase","isIconDefinition","target","normalizeAttrs","attrs","acc","rootProps","child","getSecondaryColor","primaryColor","generateColor","normalizeTwoToneColors","twoToneColor","iconStyles","useInsertStyles","eleRef","prefixCls","layer","useContext","mergedStyleStr","shadowRoot","twoToneColorPalette","setTwoToneColors","secondaryColor","getTwoToneColors","IconBase","onClick","restProps","svgRef","colors","setTwoToneColor","ReactIcon","getTwoToneColor","_extends","source","Icon","ref","spin","rotate","tabIndex","rootClassName","Context","classString","iconTabIndex","svgStyle","UserOutlined","AntdIcon","UserOutlinedSvg","RefIcon","UserPill","subtitle","avatar","Avatar","cardBorderSvg","UserCard","email","role","defaultCountries","CountrySelector","countries","defaultCountry","onCountryChange","renderFlag","flag","country","handleFilter","UserProfileDropdown","avatarUrl","menuItems","onMenuClick","defaultMenuItems","handleMenuClick","getInitials","ActionCard","currentColor","DashboardCard","showVisibilityToggle","onVisibilityToggle","ledgerBalance","backgroundPattern","handleToggleVisibility","NotificationDropdown","count","notifications","onViewMore","notification","TabsComponent","defaultActiveKey","activeKey","Tabs"],"mappings":"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","x_google_ignoreList":[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35]}
|