@stfrigerio/sito-template 0.1.3 → 0.1.4

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.
Files changed (27) hide show
  1. package/dist/components/atoms/ArrayInput/ArrayInput.d.ts +31 -0
  2. package/dist/components/atoms/ArrayInput/ArrayInput.d.ts.map +1 -1
  3. package/dist/components/atoms/Button/Button.d.ts +51 -0
  4. package/dist/components/atoms/Button/Button.d.ts.map +1 -1
  5. package/dist/components/atoms/Card/Card.d.ts +67 -0
  6. package/dist/components/atoms/Card/Card.d.ts.map +1 -1
  7. package/dist/components/atoms/Checkbox/Checkbox.d.ts +12 -0
  8. package/dist/components/atoms/Checkbox/Checkbox.d.ts.map +1 -1
  9. package/dist/components/atoms/DateInput/DateInput.d.ts +14 -0
  10. package/dist/components/atoms/DateInput/DateInput.d.ts.map +1 -1
  11. package/dist/components/atoms/SearchableDropdown/SearchableDropdown.d.ts +13 -0
  12. package/dist/components/atoms/SearchableDropdown/SearchableDropdown.d.ts.map +1 -1
  13. package/dist/components/atoms/SelectInput/SelectInput.d.ts +14 -0
  14. package/dist/components/atoms/SelectInput/SelectInput.d.ts.map +1 -1
  15. package/dist/components/atoms/TextArea/TextArea.d.ts +16 -0
  16. package/dist/components/atoms/TextArea/TextArea.d.ts.map +1 -1
  17. package/dist/components/atoms/TextInput/TextInput.d.ts +22 -0
  18. package/dist/components/atoms/TextInput/TextInput.d.ts.map +1 -1
  19. package/dist/components/atoms/Toggle/Toggle.d.ts +51 -0
  20. package/dist/components/atoms/Toggle/Toggle.d.ts.map +1 -1
  21. package/dist/index.esm.js +131 -73
  22. package/dist/index.esm.js.map +1 -1
  23. package/dist/index.js +131 -73
  24. package/dist/index.js.map +1 -1
  25. package/dist/styles.css +2 -0
  26. package/dist/styles.css.map +1 -0
  27. package/package.json +5 -3
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":["../src/contexts/ThemeContext.tsx","../node_modules/style-inject/dist/style-inject.es.js","../src/components/atoms/Button/Button.tsx","../src/components/atoms/Card/Card.tsx","../src/components/atoms/TextInput/TextInput.tsx","../src/components/atoms/ArrayInput/ArrayInput.tsx","../src/components/atoms/Checkbox/Checkbox.tsx","../node_modules/react-icons/lib/iconContext.mjs","../node_modules/react-icons/lib/iconBase.mjs","../node_modules/react-icons/fi/index.mjs","../src/utils/formUtils.ts","../src/components/atoms/DateInput/DateInput.tsx","../src/components/atoms/SearchableDropdown/SearchableDropdown.tsx","../src/components/atoms/SelectInput/SelectInput.tsx","../src/components/atoms/TextArea/TextArea.tsx","../src/components/atoms/Toggle/Toggle.tsx","../src/components/molecules/EditFAB/EditFAB.tsx","../src/components/molecules/SearchBar/SearchBar.tsx","../src/components/molecules/TimeInput/TimePickerModal.tsx","../src/components/molecules/TimeInput/TimeInput.tsx","../src/components/organisms/ThemeProvider/ThemeProvider.tsx","../src/components/molecules/ThemeSwitcher/ThemeSwitcher.tsx","../src/components/organisms/Navbar/Navbar.tsx","../src/components/organisms/charts/MoodChart/MoodChart.tsx","../src/components/organisms/charts/QuantifiableHabitsChart/QuantifiableHabitsChart.tsx","../src/components/organisms/charts/SleepChart/SleepChart.tsx","../src/components/organisms/charts/BooleansHeatmap/BooleansHeatmap.tsx","../src/components/organisms/charts/SunburstChart/SunburstChart.tsx","../src/components/organisms/charts/PieChart/PieChart.tsx"],"sourcesContent":["import React, { createContext, useContext, useState, useEffect, ReactNode } from 'react';\n\ntype Theme = 'light' | 'dark';\n\ninterface ThemeContextType {\n\ttheme: Theme;\n\ttoggleTheme: () => void;\n\tsetTheme: (theme: Theme) => void;\n}\n\nconst ThemeContext = createContext<ThemeContextType | undefined>(undefined);\n\nexport const useTheme = () => {\n\tconst context = useContext(ThemeContext);\n\tif (!context) {\n\t\tthrow new Error('useTheme must be used within a ThemeProvider');\n\t}\n\treturn context;\n};\n\ninterface ThemeProviderProps {\n\tchildren: ReactNode;\n\tdefaultTheme?: Theme;\n}\n\nexport const ThemeProvider: React.FC<ThemeProviderProps> = ({ \n\tchildren, \n\tdefaultTheme = 'light' \n}) => {\n\tconst [theme, setTheme] = useState<Theme>(defaultTheme);\n\n\tuseEffect(() => {\n\t\tconst savedTheme = localStorage.getItem('theme') as Theme | null;\n\t\tif (savedTheme) {\n\t\t\tsetTheme(savedTheme);\n\t\t}\n\t}, []);\n\n\tuseEffect(() => {\n\t\tdocument.documentElement.setAttribute('data-theme', theme);\n\t\tlocalStorage.setItem('theme', theme);\n\t}, [theme]);\n\n\tconst toggleTheme = () => {\n\t\tsetTheme(prevTheme => prevTheme === 'light' ? 'dark' : 'light');\n\t};\n\n\treturn (\n\t\t<ThemeContext.Provider value={{ theme, toggleTheme, setTheme }}>\n\t\t\t{children}\n\t\t</ThemeContext.Provider>\n\t);\n};","function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","import React, { ButtonHTMLAttributes, ReactNode } from 'react';\nimport { motion, HTMLMotionProps } from 'framer-motion';\nimport styles from './Button.module.css';\n\nexport interface ButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'onAnimationStart' | 'onDragStart' | 'onDragEnd' | 'onDrag'> {\n\tvariant?: 'primary' | 'secondary' | 'outline' | 'ghost' | 'danger';\n\tsize?: 'small' | 'medium' | 'large';\n\tfullWidth?: boolean;\n\tloading?: boolean;\n\ticonLeft?: ReactNode;\n\ticonRight?: ReactNode;\n\tchildren?: ReactNode;\n\tmotionProps?: HTMLMotionProps<\"button\">;\n}\n\nexport const Button: React.FC<ButtonProps> = ({\n\tvariant = 'primary',\n\tsize = 'medium',\n\tfullWidth = false,\n\tloading = false,\n\ticonLeft,\n\ticonRight,\n\tchildren,\n\tclassName = '',\n\tdisabled,\n\tmotionProps,\n\t...rest\n}) => {\n\tconst buttonClasses = [\n\t\tstyles.button,\n\t\tstyles[variant],\n\t\tstyles[size],\n\t\tfullWidth && styles.fullWidth,\n\t\tloading && styles.loading,\n\t\tclassName\n\t].filter(Boolean).join(' ');\n\n\treturn (\n\t\t<motion.button\n\t\t\tclassName={buttonClasses}\n\t\t\tdisabled={disabled || loading}\n\t\t\twhileHover={{ scale: disabled || loading ? 1 : 1.02 }}\n\t\t\twhileTap={{ scale: disabled || loading ? 1 : 0.98 }}\n\t\t\ttransition={{ type: \"spring\", stiffness: 400, damping: 17 }}\n\t\t\t{...motionProps}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{loading && <span className={styles.spinner} />}\n\t\t\t{iconLeft && <span className={styles.iconLeft}>{iconLeft}</span>}\n\t\t\t{children}\n\t\t\t{iconRight && <span className={styles.iconRight}>{iconRight}</span>}\n\t\t</motion.button>\n\t);\n};","import React, { HTMLAttributes, ReactNode } from 'react';\nimport { motion, HTMLMotionProps } from 'framer-motion';\nimport styles from './Card.module.css';\n\nexport interface CardProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onAnimationStart' | 'onDragStart' | 'onDragEnd' | 'onDrag'> {\n\tvariant?: 'elevated' | 'outlined' | 'flat';\n\thoverable?: boolean;\n\tclickable?: boolean;\n\tpadding?: boolean;\n\timage?: string;\n\timageAlt?: string;\n\ttitle?: string;\n\tsubtitle?: string;\n\theader?: ReactNode;\n\tfooter?: ReactNode;\n\tchildren?: ReactNode;\n\tmotionProps?: HTMLMotionProps<\"div\">;\n}\n\nexport const Card: React.FC<CardProps> = ({\n\tvariant = 'elevated',\n\thoverable = false,\n\tclickable = false,\n\tpadding = true,\n\timage,\n\timageAlt = '',\n\ttitle,\n\tsubtitle,\n\theader,\n\tfooter,\n\tchildren,\n\tclassName = '',\n\tonClick,\n\tmotionProps,\n\t...rest\n}) => {\n\tconst cardClasses = [\n\t\tstyles.card,\n\t\tstyles[variant],\n\t\thoverable && styles.hoverable,\n\t\tclickable && styles.clickable,\n\t\t!padding && styles.noPadding,\n\t\tclassName\n\t].filter(Boolean).join(' ');\n\n\tconst cardContent = (\n\t\t<>\n\t\t\t{image && (\n\t\t\t\t<div className={styles.imageContainer}>\n\t\t\t\t\t<img src={image} alt={imageAlt} className={styles.image} />\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t{header && <div className={styles.header}>{header}</div>}\n\t\t\t{(title || subtitle) && !header && (\n\t\t\t\t<div className={styles.header}>\n\t\t\t\t\t{title && <h3 className={styles.title}>{title}</h3>}\n\t\t\t\t\t{subtitle && <p className={styles.subtitle}>{subtitle}</p>}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t{children && (\n\t\t\t\t<div className={padding ? styles.body : undefined}>\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t{footer && <div className={styles.footer}>{footer}</div>}\n\t\t</>\n\t);\n\n\treturn (\n\t\t<motion.div\n\t\t\tclassName={cardClasses}\n\t\t\tonClick={clickable ? onClick : undefined}\n\t\t\twhileHover={hoverable ? { y: -4 } : undefined}\n\t\t\ttransition={{ type: \"spring\", stiffness: 400, damping: 17 }}\n\t\t\t{...motionProps}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{cardContent}\n\t\t</motion.div>\n\t);\n};","import React, { ReactNode } from 'react';\nimport styles from './TextInput.module.css';\n\nexport interface TextInputProps {\n label: string;\n value: string;\n onChange: (newValue: string) => void;\n type?: string;\n onFocus?: () => void;\n onBlur?: () => void;\n placeholder?: string;\n error?: string;\n required?: boolean;\n disabled?: boolean;\n success?: boolean;\n loading?: boolean;\n icon?: ReactNode;\n actionButton?: {\n label: string;\n onClick: () => void;\n };\n maxLength?: number;\n autoComplete?: string;\n}\n\n/**\n * TextInput component - A versatile text input field with label and error handling\n * \n * @component\n * @description\n * A foundational input component that provides a clean, accessible text field with\n * built-in support for labels, validation errors, and various HTML5 input types.\n * Follows design system tokens for consistent theming across light/dark modes.\n * \n * @example\n * // Basic usage\n * <TextInput\n * label=\"Email Address\"\n * value={email}\n * onChange={setEmail}\n * type=\"email\"\n * placeholder=\"Enter your email\"\n * />\n * \n * @example\n * // With validation error\n * <TextInput\n * label=\"Password\"\n * value={password}\n * onChange={setPassword}\n * type=\"password\"\n * error=\"Password must be at least 8 characters\"\n * required\n * />\n */\nexport function TextInput({ \n label, \n value, \n onChange, \n type = \"text\", \n onFocus, \n onBlur, \n placeholder, \n error, \n required,\n disabled = false,\n success = false,\n loading = false,\n icon,\n actionButton,\n maxLength,\n autoComplete\n}: Readonly<TextInputProps>) {\n const inputId = `input-${Math.random().toString(36).substr(2, 9)}`;\n \n const getContainerClassName = () => {\n const classes = [styles.textInput];\n if (success) classes.push(styles.success);\n if (loading) classes.push(styles.loading);\n if (icon) classes.push(styles.withIcon);\n if (actionButton) classes.push(styles.withAction);\n return classes.join(' ');\n };\n \n return (\n <div className={getContainerClassName()}>\n <label htmlFor={inputId}>\n {label}\n {required && <span className={styles.required}>*</span>}\n </label>\n <div style={{ position: 'relative' }}>\n {icon && <div className={styles.inputIcon}>{icon}</div>}\n <input\n id={inputId}\n type={type}\n value={value}\n onChange={(e) => onChange(e.target.value)}\n onFocus={onFocus}\n onBlur={onBlur}\n placeholder={placeholder}\n className={error ? styles.inputError : ''}\n aria-invalid={!!error}\n aria-describedby={error ? `${inputId}-error` : undefined}\n disabled={disabled || loading}\n maxLength={maxLength}\n autoComplete={autoComplete}\n />\n {actionButton && (\n <button\n type=\"button\"\n className={styles.actionButton}\n onClick={actionButton.onClick}\n disabled={disabled || loading}\n >\n {actionButton.label}\n </button>\n )}\n </div>\n {error && (\n <span id={`${inputId}-error`} className={styles.errorMessage}>\n {error}\n </span>\n )}\n </div>\n );\n}\n","import React from 'react';\nimport { Button } from '../Button';\nimport { TextInput } from '../TextInput';\nimport styles from './ArrayInput.module.css';\n\n// Type for field configuration\nexport interface FieldConfig {\n name: string;\n label: string;\n type?: string;\n placeholder?: string;\n}\n\n// Base props that all array inputs share\ninterface BaseArrayInputProps {\n label: string;\n}\n\n// Props for simple string array\ninterface SimpleArrayInputProps extends BaseArrayInputProps {\n type?: 'simple';\n values: string[];\n onChange: (values: string[]) => void;\n placeholder?: string;\n}\n\n// Props for complex object array\ninterface ComplexArrayInputProps<T extends Record<string, any>> extends BaseArrayInputProps {\n type: 'complex';\n values: T[];\n onChange: (values: T[]) => void;\n fields: FieldConfig[];\n getKey?: (item: T, index: number) => string;\n}\n\nexport type ArrayInputProps<T extends Record<string, any> = Record<string, any>> = \n | SimpleArrayInputProps\n | ComplexArrayInputProps<T>;\n\n/**\n * ArrayInput component - Versatile dynamic list manager\n * \n * @component\n * @description\n * A flexible component that can handle both simple string arrays and complex object arrays.\n * Users can add, remove, and edit items dynamically. Supports custom field configurations\n * for complex data structures.\n * \n * @example\n * // Simple string array\n * <ArrayInput\n * label=\"Tags\"\n * values={tags}\n * onChange={setTags}\n * placeholder=\"Enter tag\"\n * />\n * \n * @example\n * // Complex object array\n * <ArrayInput\n * type=\"complex\"\n * label=\"Social Links\"\n * values={links}\n * onChange={setLinks}\n * fields={[\n * { name: 'label', label: 'Label', placeholder: 'GitHub' },\n * { name: 'url', label: 'URL', type: 'url', placeholder: 'https://github.com/...' }\n * ]}\n * />\n */\nexport function ArrayInput<T extends Record<string, any> = Record<string, any>>(\n props: Readonly<ArrayInputProps<T>>\n) {\n if (props.type === 'complex') {\n return <ComplexArrayInput {...props} />;\n }\n \n return <SimpleArrayInput {...props as SimpleArrayInputProps} />;\n}\n\n// Simple string array implementation\nfunction SimpleArrayInput({ \n label, \n values, \n onChange, \n placeholder \n}: Readonly<SimpleArrayInputProps>) {\n const handleChange = (index: number, value: string) => {\n const newValues = [...values];\n newValues[index] = value;\n onChange(newValues);\n };\n\n const handleAdd = () => {\n onChange([...values, '']);\n };\n\n const handleRemove = (index: number) => {\n const newValues = values.filter((_, i) => i !== index);\n onChange(newValues);\n };\n\n return (\n <div className={styles.arrayInput}>\n <h3 className={styles.arrayInputLabel}>{label}</h3>\n {values.map((value, index) => (\n <div key={`item-${index}`} className={styles.arrayInputItem}>\n <div className={styles.inputWrapper}>\n <input\n type=\"text\"\n value={value}\n onChange={(e) => handleChange(index, e.target.value)}\n placeholder={placeholder}\n className={styles.input}\n />\n </div>\n <Button \n variant=\"ghost\"\n size=\"small\"\n onClick={() => handleRemove(index)}\n >\n Remove\n </Button>\n </div>\n ))}\n <Button \n variant=\"primary\"\n size=\"small\"\n onClick={handleAdd}\n >\n Add {label}\n </Button>\n </div>\n );\n}\n\n// Complex object array implementation\nfunction ComplexArrayInput<T extends Record<string, any>>({ \n label, \n values, \n onChange, \n fields,\n getKey\n}: Readonly<ComplexArrayInputProps<T>>) {\n const handleChange = (index: number, field: string, value: string) => {\n const newValues = [...values];\n newValues[index] = { ...newValues[index], [field]: value };\n onChange(newValues);\n };\n\n const handleAdd = () => {\n const newItem = fields.reduce((acc, field) => {\n return { ...acc, [field.name]: '' };\n }, {} as T);\n onChange([...values, newItem]);\n };\n\n const handleRemove = (index: number) => {\n const newValues = values.filter((_, i) => i !== index);\n onChange(newValues);\n };\n\n const generateKey = (item: T, index: number) => {\n if (getKey) return getKey(item, index);\n \n // Generate key from all field values\n return fields.map(f => item[f.name] || '').join('-') + `-${index}`;\n };\n\n return (\n <div className={styles.arrayInput}>\n <h3 className={styles.arrayInputLabel}>{label}</h3>\n {values.map((value, index) => (\n <div \n key={generateKey(value, index)} \n className={`${styles.arrayInputItem} ${fields.length > 1 ? styles.complexItem : ''}`}\n >\n <div className={styles.fieldsWrapper}>\n {fields.map((field) => (\n <TextInput\n key={field.name}\n value={value[field.name] || ''}\n onChange={(newValue) => handleChange(index, field.name, newValue)}\n label={field.label}\n type={field.type}\n placeholder={field.placeholder}\n />\n ))}\n </div>\n <Button \n variant=\"ghost\"\n size=\"small\"\n onClick={() => handleRemove(index)}\n >\n Remove\n </Button>\n </div>\n ))}\n <Button \n variant=\"primary\"\n size=\"small\"\n onClick={handleAdd}\n >\n Add {label}\n </Button>\n </div>\n );\n}\n\n// Export the interface for backward compatibility\nexport interface LabeledLink {\n label: string;\n url: string;\n}","import React, { useRef, useEffect } from 'react';\nimport styles from './Checkbox.module.css';\n\nexport interface CheckboxProps {\n checked: boolean;\n onChange: (checked: boolean) => void;\n label?: string;\n disabled?: boolean;\n indeterminate?: boolean;\n id?: string;\n name?: string;\n value?: string;\n}\n\n/**\n * Checkbox component - Modern interactive checkbox with animations\n * \n * @component\n * @description\n * A customizable checkbox component with smooth animations, hover effects,\n * and support for checked, unchecked, and indeterminate states. Features\n * gradient backgrounds, bounce animations, and accessible focus states.\n * \n * @example\n * // Basic usage\n * <Checkbox\n * checked={isChecked}\n * onChange={setIsChecked}\n * label=\"Accept terms and conditions\"\n * />\n * \n * @example\n * // Indeterminate state\n * <Checkbox\n * checked={false}\n * indeterminate={true}\n * onChange={handleChange}\n * label=\"Select all\"\n * />\n * \n * @example\n * // Disabled state\n * <Checkbox\n * checked={true}\n * onChange={handleChange}\n * label=\"Premium feature\"\n * disabled={true}\n * />\n */\nexport const Checkbox: React.FC<CheckboxProps> = ({ \n checked, \n onChange, \n label, \n disabled = false,\n indeterminate = false,\n id,\n name,\n value\n}) => {\n const checkboxRef = useRef<HTMLInputElement>(null);\n \n useEffect(() => {\n if (checkboxRef.current) {\n checkboxRef.current.indeterminate = indeterminate;\n }\n }, [indeterminate]);\n \n return (\n <label className={styles.checkboxLabel}>\n <input\n ref={checkboxRef}\n type=\"checkbox\"\n checked={checked}\n onChange={(e) => onChange(e.target.checked)}\n className={styles.checkbox}\n disabled={disabled}\n id={id}\n name={name}\n value={value}\n aria-checked={indeterminate ? 'mixed' : checked}\n />\n {label && <span className={styles.checkboxText}>{label}</span>}\n </label>\n );\n}; ","import React from \"react\";\nexport var DefaultContext = {\n color: undefined,\n size: undefined,\n className: undefined,\n style: undefined,\n attr: undefined\n};\nexport var IconContext = React.createContext && /*#__PURE__*/React.createContext(DefaultContext);","var _excluded = [\"attr\", \"size\", \"title\"];\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\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); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport React from \"react\";\nimport { IconContext, DefaultContext } from \"./iconContext.mjs\";\nfunction Tree2Element(tree) {\n return tree && tree.map((node, i) => /*#__PURE__*/React.createElement(node.tag, _objectSpread({\n key: i\n }, node.attr), Tree2Element(node.child)));\n}\nexport function GenIcon(data) {\n return props => /*#__PURE__*/React.createElement(IconBase, _extends({\n attr: _objectSpread({}, data.attr)\n }, props), Tree2Element(data.child));\n}\nexport function IconBase(props) {\n var elem = conf => {\n var {\n attr,\n size,\n title\n } = props,\n svgProps = _objectWithoutProperties(props, _excluded);\n var computedSize = size || conf.size || \"1em\";\n var className;\n if (conf.className) className = conf.className;\n if (props.className) className = (className ? className + \" \" : \"\") + props.className;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n stroke: \"currentColor\",\n fill: \"currentColor\",\n strokeWidth: \"0\"\n }, conf.attr, attr, svgProps, {\n className: className,\n style: _objectSpread(_objectSpread({\n color: props.color || conf.color\n }, conf.style), props.style),\n height: computedSize,\n width: computedSize,\n xmlns: \"http://www.w3.org/2000/svg\"\n }), title && /*#__PURE__*/React.createElement(\"title\", null, title), props.children);\n };\n return IconContext !== undefined ? /*#__PURE__*/React.createElement(IconContext.Consumer, null, conf => elem(conf)) : elem(DefaultContext);\n}","// THIS FILE IS AUTO GENERATED\nimport { GenIcon } from '../lib/index.mjs';\nexport function FiActivity (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"22 12 18 12 15 21 9 3 6 12 2 12\"},\"child\":[]}]})(props);\n};\nexport function FiAirplay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 17H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-1\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"12 15 17 21 7 21 12 15\"},\"child\":[]}]})(props);\n};\nexport function FiAlertCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"16\",\"x2\":\"12.01\",\"y2\":\"16\"},\"child\":[]}]})(props);\n};\nexport function FiAlertOctagon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"16\",\"x2\":\"12.01\",\"y2\":\"16\"},\"child\":[]}]})(props);\n};\nexport function FiAlertTriangle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"9\",\"x2\":\"12\",\"y2\":\"13\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"17\",\"x2\":\"12.01\",\"y2\":\"17\"},\"child\":[]}]})(props);\n};\nexport function FiAlignCenter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"10\",\"x2\":\"6\",\"y2\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"6\",\"x2\":\"3\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"14\",\"x2\":\"3\",\"y2\":\"14\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"18\",\"x2\":\"6\",\"y2\":\"18\"},\"child\":[]}]})(props);\n};\nexport function FiAlignJustify (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"10\",\"x2\":\"3\",\"y2\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"6\",\"x2\":\"3\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"14\",\"x2\":\"3\",\"y2\":\"14\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"18\",\"x2\":\"3\",\"y2\":\"18\"},\"child\":[]}]})(props);\n};\nexport function FiAlignLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"10\",\"x2\":\"3\",\"y2\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"6\",\"x2\":\"3\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"14\",\"x2\":\"3\",\"y2\":\"14\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"18\",\"x2\":\"3\",\"y2\":\"18\"},\"child\":[]}]})(props);\n};\nexport function FiAlignRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"10\",\"x2\":\"7\",\"y2\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"6\",\"x2\":\"3\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"14\",\"x2\":\"3\",\"y2\":\"14\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"18\",\"x2\":\"7\",\"y2\":\"18\"},\"child\":[]}]})(props);\n};\nexport function FiAnchor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"5\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22\",\"x2\":\"12\",\"y2\":\"8\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 12H2a10 10 0 0 0 20 0h-3\"},\"child\":[]}]})(props);\n};\nexport function FiAperture (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"14.31\",\"y1\":\"8\",\"x2\":\"20.05\",\"y2\":\"17.94\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9.69\",\"y1\":\"8\",\"x2\":\"21.17\",\"y2\":\"8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"7.38\",\"y1\":\"12\",\"x2\":\"13.12\",\"y2\":\"2.06\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9.69\",\"y1\":\"16\",\"x2\":\"3.95\",\"y2\":\"6.06\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"14.31\",\"y1\":\"16\",\"x2\":\"2.83\",\"y2\":\"16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16.62\",\"y1\":\"12\",\"x2\":\"10.88\",\"y2\":\"21.94\"},\"child\":[]}]})(props);\n};\nexport function FiArchive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"21 8 21 21 3 21 3 8\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"1\",\"y\":\"3\",\"width\":\"22\",\"height\":\"5\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"y1\":\"12\",\"x2\":\"14\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiArrowDownCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"8 12 12 16 16 12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"16\"},\"child\":[]}]})(props);\n};\nexport function FiArrowDownLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"7\",\"x2\":\"7\",\"y2\":\"17\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 17 7 17 7 7\"},\"child\":[]}]})(props);\n};\nexport function FiArrowDownRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"7\",\"y1\":\"7\",\"x2\":\"17\",\"y2\":\"17\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 7 17 17 7 17\"},\"child\":[]}]})(props);\n};\nexport function FiArrowDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"5\",\"x2\":\"12\",\"y2\":\"19\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"19 12 12 19 5 12\"},\"child\":[]}]})(props);\n};\nexport function FiArrowLeftCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 8 8 12 12 16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"12\",\"x2\":\"8\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiArrowLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"19\",\"y1\":\"12\",\"x2\":\"5\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 19 5 12 12 5\"},\"child\":[]}]})(props);\n};\nexport function FiArrowRightCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 16 16 12 12 8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiArrowRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"5\",\"y1\":\"12\",\"x2\":\"19\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 5 19 12 12 19\"},\"child\":[]}]})(props);\n};\nexport function FiArrowUpCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 12 12 8 8 12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"16\",\"x2\":\"12\",\"y2\":\"8\"},\"child\":[]}]})(props);\n};\nexport function FiArrowUpLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"17\",\"x2\":\"7\",\"y2\":\"7\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7 17 7 7 17 7\"},\"child\":[]}]})(props);\n};\nexport function FiArrowUpRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"7\",\"y1\":\"17\",\"x2\":\"17\",\"y2\":\"7\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7 7 17 7 17 17\"},\"child\":[]}]})(props);\n};\nexport function FiArrowUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"19\",\"x2\":\"12\",\"y2\":\"5\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"5 12 12 5 19 12\"},\"child\":[]}]})(props);\n};\nexport function FiAtSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-3.92 7.94\"},\"child\":[]}]})(props);\n};\nexport function FiAward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"8\",\"r\":\"7\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"8.21 13.89 7 23 12 20 17 23 15.79 13.88\"},\"child\":[]}]})(props);\n};\nexport function FiBarChart2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"20\",\"x2\":\"18\",\"y2\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"20\",\"x2\":\"12\",\"y2\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"20\",\"x2\":\"6\",\"y2\":\"14\"},\"child\":[]}]})(props);\n};\nexport function FiBarChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"20\",\"x2\":\"12\",\"y2\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"20\",\"x2\":\"18\",\"y2\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"20\",\"x2\":\"6\",\"y2\":\"16\"},\"child\":[]}]})(props);\n};\nexport function FiBatteryCharging (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 18H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h3.19M15 6h2a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-3.19\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"13\",\"x2\":\"23\",\"y2\":\"11\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"11 6 7 12 13 12 9 18\"},\"child\":[]}]})(props);\n};\nexport function FiBattery (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"1\",\"y\":\"6\",\"width\":\"18\",\"height\":\"12\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"13\",\"x2\":\"23\",\"y2\":\"11\"},\"child\":[]}]})(props);\n};\nexport function FiBellOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.73 21a2 2 0 0 1-3.46 0\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.63 13A17.89 17.89 0 0 1 18 8\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.26 6.26A5.86 5.86 0 0 0 6 8c0 7-3 9-3 9h14\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 8a6 6 0 0 0-9.33-5\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"},\"child\":[]}]})(props);\n};\nexport function FiBell (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M13.73 21a2 2 0 0 1-3.46 0\"},\"child\":[]}]})(props);\n};\nexport function FiBluetooth (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"6.5 6.5 17.5 17.5 12 23 12 1 17.5 6.5 6.5 17.5\"},\"child\":[]}]})(props);\n};\nexport function FiBold (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 4h8a4 4 0 0 1 4 4 4 4 0 0 1-4 4H6z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 12h9a4 4 0 0 1 4 4 4 4 0 0 1-4 4H6z\"},\"child\":[]}]})(props);\n};\nexport function FiBookOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z\"},\"child\":[]}]})(props);\n};\nexport function FiBook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 19.5A2.5 2.5 0 0 1 6.5 17H20\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z\"},\"child\":[]}]})(props);\n};\nexport function FiBookmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 21l-7-5-7 5V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z\"},\"child\":[]}]})(props);\n};\nexport function FiBox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"3.27 6.96 12 12.01 20.73 6.96\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22.08\",\"x2\":\"12\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiBriefcase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"7\",\"width\":\"20\",\"height\":\"14\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16\"},\"child\":[]}]})(props);\n};\nexport function FiCalendar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"4\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"2\",\"x2\":\"16\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"2\",\"x2\":\"8\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"10\",\"x2\":\"21\",\"y2\":\"10\"},\"child\":[]}]})(props);\n};\nexport function FiCameraOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 21H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h3m3-3h6l2 3h4a2 2 0 0 1 2 2v9.34m-7.72-2.06a4 4 0 1 1-5.56-5.56\"},\"child\":[]}]})(props);\n};\nexport function FiCamera (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"13\",\"r\":\"4\"},\"child\":[]}]})(props);\n};\nexport function FiCast (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 16.1A5 5 0 0 1 5.9 20M2 12.05A9 9 0 0 1 9.95 20M2 8V6a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"y1\":\"20\",\"x2\":\"2.01\",\"y2\":\"20\"},\"child\":[]}]})(props);\n};\nexport function FiCheckCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 11.08V12a10 10 0 1 1-5.93-9.14\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"22 4 12 14.01 9 11.01\"},\"child\":[]}]})(props);\n};\nexport function FiCheckSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 11 12 14 22 4\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11\"},\"child\":[]}]})(props);\n};\nexport function FiCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"20 6 9 17 4 12\"},\"child\":[]}]})(props);\n};\nexport function FiChevronDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"6 9 12 15 18 9\"},\"child\":[]}]})(props);\n};\nexport function FiChevronLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"15 18 9 12 15 6\"},\"child\":[]}]})(props);\n};\nexport function FiChevronRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 18 15 12 9 6\"},\"child\":[]}]})(props);\n};\nexport function FiChevronUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"18 15 12 9 6 15\"},\"child\":[]}]})(props);\n};\nexport function FiChevronsDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"7 13 12 18 17 13\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7 6 12 11 17 6\"},\"child\":[]}]})(props);\n};\nexport function FiChevronsLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"11 17 6 12 11 7\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"18 17 13 12 18 7\"},\"child\":[]}]})(props);\n};\nexport function FiChevronsRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"13 17 18 12 13 7\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"6 17 11 12 6 7\"},\"child\":[]}]})(props);\n};\nexport function FiChevronsUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 11 12 6 7 11\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 18 12 13 7 18\"},\"child\":[]}]})(props);\n};\nexport function FiChrome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21.17\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"3.95\",\"y1\":\"6.06\",\"x2\":\"8.54\",\"y2\":\"14\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"10.88\",\"y1\":\"21.94\",\"x2\":\"15.46\",\"y2\":\"14\"},\"child\":[]}]})(props);\n};\nexport function FiCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]}]})(props);\n};\nexport function FiClipboard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"8\",\"y\":\"2\",\"width\":\"8\",\"height\":\"4\",\"rx\":\"1\",\"ry\":\"1\"},\"child\":[]}]})(props);\n};\nexport function FiClock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 6 12 12 16 14\"},\"child\":[]}]})(props);\n};\nexport function FiCloudDrizzle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"19\",\"x2\":\"8\",\"y2\":\"21\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"13\",\"x2\":\"8\",\"y2\":\"15\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"19\",\"x2\":\"16\",\"y2\":\"21\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"13\",\"x2\":\"16\",\"y2\":\"15\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"21\",\"x2\":\"12\",\"y2\":\"23\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"15\",\"x2\":\"12\",\"y2\":\"17\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 16.58A5 5 0 0 0 18 7h-1.26A8 8 0 1 0 4 15.25\"},\"child\":[]}]})(props);\n};\nexport function FiCloudLightning (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 16.9A5 5 0 0 0 18 7h-1.26a8 8 0 1 0-11.62 9\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"13 11 9 17 15 17 11 23\"},\"child\":[]}]})(props);\n};\nexport function FiCloudOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.61 16.95A5 5 0 0 0 18 10h-1.26a8 8 0 0 0-7.05-6M5 5a8 8 0 0 0 4 15h9a5 5 0 0 0 1.7-.3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"},\"child\":[]}]})(props);\n};\nexport function FiCloudRain (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"13\",\"x2\":\"16\",\"y2\":\"21\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"13\",\"x2\":\"8\",\"y2\":\"21\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"15\",\"x2\":\"12\",\"y2\":\"23\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 16.58A5 5 0 0 0 18 7h-1.26A8 8 0 1 0 4 15.25\"},\"child\":[]}]})(props);\n};\nexport function FiCloudSnow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 17.58A5 5 0 0 0 18 8h-1.26A8 8 0 1 0 4 16.25\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"16\",\"x2\":\"8.01\",\"y2\":\"16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"20\",\"x2\":\"8.01\",\"y2\":\"20\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"18\",\"x2\":\"12.01\",\"y2\":\"18\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22\",\"x2\":\"12.01\",\"y2\":\"22\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"16\",\"x2\":\"16.01\",\"y2\":\"16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"20\",\"x2\":\"16.01\",\"y2\":\"20\"},\"child\":[]}]})(props);\n};\nexport function FiCloud (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 10h-1.26A8 8 0 1 0 9 20h9a5 5 0 0 0 0-10z\"},\"child\":[]}]})(props);\n};\nexport function FiCode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 18 22 12 16 6\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"8 6 2 12 8 18\"},\"child\":[]}]})(props);\n};\nexport function FiCodepen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"12 2 22 8.5 22 15.5 12 22 2 15.5 2 8.5 12 2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22\",\"x2\":\"12\",\"y2\":\"15.5\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"22 8.5 12 15.5 2 8.5\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"2 15.5 12 8.5 22 15.5\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"2\",\"x2\":\"12\",\"y2\":\"8.5\"},\"child\":[]}]})(props);\n};\nexport function FiCodesandbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7.5 4.21 12 6.81 16.5 4.21\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7.5 19.79 7.5 14.6 3 12\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"21 12 16.5 14.6 16.5 19.79\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"3.27 6.96 12 12.01 20.73 6.96\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22.08\",\"x2\":\"12\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiCoffee (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 8h1a4 4 0 0 1 0 8h-1\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 8h16v9a4 4 0 0 1-4 4H6a4 4 0 0 1-4-4V8z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"1\",\"x2\":\"6\",\"y2\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"y1\":\"1\",\"x2\":\"10\",\"y2\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"14\",\"y1\":\"1\",\"x2\":\"14\",\"y2\":\"4\"},\"child\":[]}]})(props);\n};\nexport function FiColumns (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 3h7a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-7m0-18H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h7m0-18v18\"},\"child\":[]}]})(props);\n};\nexport function FiCommand (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 3a3 3 0 0 0-3 3v12a3 3 0 0 0 3 3 3 3 0 0 0 3-3 3 3 0 0 0-3-3H6a3 3 0 0 0-3 3 3 3 0 0 0 3 3 3 3 0 0 0 3-3V6a3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3h12a3 3 0 0 0 3-3 3 3 0 0 0-3-3z\"},\"child\":[]}]})(props);\n};\nexport function FiCompass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"16.24 7.76 14.12 14.12 7.76 16.24 9.88 9.88 16.24 7.76\"},\"child\":[]}]})(props);\n};\nexport function FiCopy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"9\",\"y\":\"9\",\"width\":\"13\",\"height\":\"13\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\"},\"child\":[]}]})(props);\n};\nexport function FiCornerDownLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 10 4 15 9 20\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4v7a4 4 0 0 1-4 4H4\"},\"child\":[]}]})(props);\n};\nexport function FiCornerDownRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"15 10 20 15 15 20\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 4v7a4 4 0 0 0 4 4h12\"},\"child\":[]}]})(props);\n};\nexport function FiCornerLeftDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 15 9 20 4 15\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4h-7a4 4 0 0 0-4 4v12\"},\"child\":[]}]})(props);\n};\nexport function FiCornerLeftUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 9 9 4 4 9\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 20h-7a4 4 0 0 1-4-4V4\"},\"child\":[]}]})(props);\n};\nexport function FiCornerRightDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"10 15 15 20 20 15\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 4h7a4 4 0 0 1 4 4v12\"},\"child\":[]}]})(props);\n};\nexport function FiCornerRightUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"10 9 15 4 20 9\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 20h7a4 4 0 0 0 4-4V4\"},\"child\":[]}]})(props);\n};\nexport function FiCornerUpLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 14 4 9 9 4\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 20v-7a4 4 0 0 0-4-4H4\"},\"child\":[]}]})(props);\n};\nexport function FiCornerUpRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"15 14 20 9 15 4\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 20v-7a4 4 0 0 1 4-4h12\"},\"child\":[]}]})(props);\n};\nexport function FiCpu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"4\",\"y\":\"4\",\"width\":\"16\",\"height\":\"16\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"9\",\"y\":\"9\",\"width\":\"6\",\"height\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"1\",\"x2\":\"9\",\"y2\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"1\",\"x2\":\"15\",\"y2\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"20\",\"x2\":\"9\",\"y2\":\"23\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"20\",\"x2\":\"15\",\"y2\":\"23\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"20\",\"y1\":\"9\",\"x2\":\"23\",\"y2\":\"9\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"20\",\"y1\":\"14\",\"x2\":\"23\",\"y2\":\"14\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"9\",\"x2\":\"4\",\"y2\":\"9\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"14\",\"x2\":\"4\",\"y2\":\"14\"},\"child\":[]}]})(props);\n};\nexport function FiCreditCard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"1\",\"y\":\"4\",\"width\":\"22\",\"height\":\"16\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"10\",\"x2\":\"23\",\"y2\":\"10\"},\"child\":[]}]})(props);\n};\nexport function FiCrop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.13 1L6 16a2 2 0 0 0 2 2h15\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M1 6.13L16 6a2 2 0 0 1 2 2v15\"},\"child\":[]}]})(props);\n};\nexport function FiCrosshair (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"22\",\"y1\":\"12\",\"x2\":\"18\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"12\",\"x2\":\"2\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"6\",\"x2\":\"12\",\"y2\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22\",\"x2\":\"12\",\"y2\":\"18\"},\"child\":[]}]})(props);\n};\nexport function FiDatabase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"ellipse\",\"attr\":{\"cx\":\"12\",\"cy\":\"5\",\"rx\":\"9\",\"ry\":\"3\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 12c0 1.66-4 3-9 3s-9-1.34-9-3\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 5v14c0 1.66 4 3 9 3s9-1.34 9-3V5\"},\"child\":[]}]})(props);\n};\nexport function FiDelete (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 4H8l-7 8 7 8h13a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"9\",\"x2\":\"12\",\"y2\":\"15\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"9\",\"x2\":\"18\",\"y2\":\"15\"},\"child\":[]}]})(props);\n};\nexport function FiDisc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"3\"},\"child\":[]}]})(props);\n};\nexport function FiDivideCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"16\",\"x2\":\"12\",\"y2\":\"16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"8\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]}]})(props);\n};\nexport function FiDivideSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"16\",\"x2\":\"12\",\"y2\":\"16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"8\"},\"child\":[]}]})(props);\n};\nexport function FiDivide (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"6\",\"r\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"5\",\"y1\":\"12\",\"x2\":\"19\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"18\",\"r\":\"2\"},\"child\":[]}]})(props);\n};\nexport function FiDollarSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"1\",\"x2\":\"12\",\"y2\":\"23\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6\"},\"child\":[]}]})(props);\n};\nexport function FiDownloadCloud (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"8 17 12 21 16 17\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"12\",\"x2\":\"12\",\"y2\":\"21\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.88 18.09A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.29\"},\"child\":[]}]})(props);\n};\nexport function FiDownload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7 10 12 15 17 10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"15\",\"x2\":\"12\",\"y2\":\"3\"},\"child\":[]}]})(props);\n};\nexport function FiDribbble (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.56 2.75c4.37 6.03 6.02 9.42 8.03 17.72m2.54-15.38c-3.72 4.35-8.94 5.66-16.88 5.85m19.5 1.9c-3.5-.93-6.63-.82-8.94 0-2.58.92-5.01 2.86-7.44 6.32\"},\"child\":[]}]})(props);\n};\nexport function FiDroplet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z\"},\"child\":[]}]})(props);\n};\nexport function FiEdit2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z\"},\"child\":[]}]})(props);\n};\nexport function FiEdit3 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 20h9\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z\"},\"child\":[]}]})(props);\n};\nexport function FiEdit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"},\"child\":[]}]})(props);\n};\nexport function FiExternalLink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"15 3 21 3 21 9\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"y1\":\"14\",\"x2\":\"21\",\"y2\":\"3\"},\"child\":[]}]})(props);\n};\nexport function FiEyeOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"},\"child\":[]}]})(props);\n};\nexport function FiEye (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"3\"},\"child\":[]}]})(props);\n};\nexport function FiFacebook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z\"},\"child\":[]}]})(props);\n};\nexport function FiFastForward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"13 19 22 12 13 5 13 19\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"2 19 11 12 2 5 2 19\"},\"child\":[]}]})(props);\n};\nexport function FiFeather (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.24 12.24a6 6 0 0 0-8.49-8.49L5 10.5V19h8.5z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"8\",\"x2\":\"2\",\"y2\":\"22\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"17.5\",\"y1\":\"15\",\"x2\":\"9\",\"y2\":\"15\"},\"child\":[]}]})(props);\n};\nexport function FiFigma (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 5.5A3.5 3.5 0 0 1 8.5 2H12v7H8.5A3.5 3.5 0 0 1 5 5.5z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2h3.5a3.5 3.5 0 1 1 0 7H12V2z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 12.5a3.5 3.5 0 1 1 7 0 3.5 3.5 0 1 1-7 0z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 19.5A3.5 3.5 0 0 1 8.5 16H12v3.5a3.5 3.5 0 1 1-7 0z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 12.5A3.5 3.5 0 0 1 8.5 9H12v7H8.5A3.5 3.5 0 0 1 5 12.5z\"},\"child\":[]}]})(props);\n};\nexport function FiFileMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"15\",\"x2\":\"15\",\"y2\":\"15\"},\"child\":[]}]})(props);\n};\nexport function FiFilePlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"18\",\"x2\":\"12\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"15\",\"x2\":\"15\",\"y2\":\"15\"},\"child\":[]}]})(props);\n};\nexport function FiFileText (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"13\",\"x2\":\"8\",\"y2\":\"13\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"17\",\"x2\":\"8\",\"y2\":\"17\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"10 9 9 9 8 9\"},\"child\":[]}]})(props);\n};\nexport function FiFile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"13 2 13 9 20 9\"},\"child\":[]}]})(props);\n};\nexport function FiFilm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"2\",\"width\":\"20\",\"height\":\"20\",\"rx\":\"2.18\",\"ry\":\"2.18\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"7\",\"y1\":\"2\",\"x2\":\"7\",\"y2\":\"22\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"2\",\"x2\":\"17\",\"y2\":\"22\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"y1\":\"12\",\"x2\":\"22\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"y1\":\"7\",\"x2\":\"7\",\"y2\":\"7\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"y1\":\"17\",\"x2\":\"7\",\"y2\":\"17\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"17\",\"x2\":\"22\",\"y2\":\"17\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"7\",\"x2\":\"22\",\"y2\":\"7\"},\"child\":[]}]})(props);\n};\nexport function FiFilter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3\"},\"child\":[]}]})(props);\n};\nexport function FiFlag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"22\",\"x2\":\"4\",\"y2\":\"15\"},\"child\":[]}]})(props);\n};\nexport function FiFolderMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"14\",\"x2\":\"15\",\"y2\":\"14\"},\"child\":[]}]})(props);\n};\nexport function FiFolderPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"11\",\"x2\":\"12\",\"y2\":\"17\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"14\",\"x2\":\"15\",\"y2\":\"14\"},\"child\":[]}]})(props);\n};\nexport function FiFolder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z\"},\"child\":[]}]})(props);\n};\nexport function FiFramer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 16V9h14V2H5l14 14h-7m-7 0l7 7v-7m-7 0h7\"},\"child\":[]}]})(props);\n};\nexport function FiFrown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 16s-1.5-2-4-2-4 2-4 2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"9\",\"x2\":\"9.01\",\"y2\":\"9\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"9\",\"x2\":\"15.01\",\"y2\":\"9\"},\"child\":[]}]})(props);\n};\nexport function FiGift (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"20 12 20 22 4 22 4 12\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"7\",\"width\":\"20\",\"height\":\"5\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22\",\"x2\":\"12\",\"y2\":\"7\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 7H7.5a2.5 2.5 0 0 1 0-5C11 2 12 7 12 7z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 7h4.5a2.5 2.5 0 0 0 0-5C13 2 12 7 12 7z\"},\"child\":[]}]})(props);\n};\nexport function FiGitBranch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"3\",\"x2\":\"6\",\"y2\":\"15\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"6\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"18\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 9a9 9 0 0 1-9 9\"},\"child\":[]}]})(props);\n};\nexport function FiGitCommit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1.05\",\"y1\":\"12\",\"x2\":\"7\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"17.01\",\"y1\":\"12\",\"x2\":\"22.96\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiGitMerge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"18\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"6\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 21V9a9 9 0 0 0 9 9\"},\"child\":[]}]})(props);\n};\nexport function FiGitPullRequest (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"18\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"6\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 6h3a2 2 0 0 1 2 2v7\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"9\",\"x2\":\"6\",\"y2\":\"21\"},\"child\":[]}]})(props);\n};\nexport function FiGithub (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22\"},\"child\":[]}]})(props);\n};\nexport function FiGitlab (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.65 14.39L12 22.13 1.35 14.39a.84.84 0 0 1-.3-.94l1.22-3.78 2.44-7.51A.42.42 0 0 1 4.82 2a.43.43 0 0 1 .58 0 .42.42 0 0 1 .11.18l2.44 7.49h8.1l2.44-7.51A.42.42 0 0 1 18.6 2a.43.43 0 0 1 .58 0 .42.42 0 0 1 .11.18l2.44 7.51L23 13.45a.84.84 0 0 1-.35.94z\"},\"child\":[]}]})(props);\n};\nexport function FiGlobe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"y1\":\"12\",\"x2\":\"22\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z\"},\"child\":[]}]})(props);\n};\nexport function FiGrid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"7\",\"height\":\"7\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"14\",\"y\":\"3\",\"width\":\"7\",\"height\":\"7\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"14\",\"y\":\"14\",\"width\":\"7\",\"height\":\"7\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"14\",\"width\":\"7\",\"height\":\"7\"},\"child\":[]}]})(props);\n};\nexport function FiHardDrive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"22\",\"y1\":\"12\",\"x2\":\"2\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M5.45 5.11L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"16\",\"x2\":\"6.01\",\"y2\":\"16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"y1\":\"16\",\"x2\":\"10.01\",\"y2\":\"16\"},\"child\":[]}]})(props);\n};\nexport function FiHash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"9\",\"x2\":\"20\",\"y2\":\"9\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"15\",\"x2\":\"20\",\"y2\":\"15\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"y1\":\"3\",\"x2\":\"8\",\"y2\":\"21\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"3\",\"x2\":\"14\",\"y2\":\"21\"},\"child\":[]}]})(props);\n};\nexport function FiHeadphones (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 18v-6a9 9 0 0 1 18 0v6\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 19a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3zM3 19a2 2 0 0 0 2 2h1a2 2 0 0 0 2-2v-3a2 2 0 0 0-2-2H3z\"},\"child\":[]}]})(props);\n};\nexport function FiHeart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z\"},\"child\":[]}]})(props);\n};\nexport function FiHelpCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"17\",\"x2\":\"12.01\",\"y2\":\"17\"},\"child\":[]}]})(props);\n};\nexport function FiHexagon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"},\"child\":[]}]})(props);\n};\nexport function FiHome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 22 9 12 15 12 15 22\"},\"child\":[]}]})(props);\n};\nexport function FiImage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"8.5\",\"r\":\"1.5\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"21 15 16 10 5 21\"},\"child\":[]}]})(props);\n};\nexport function FiInbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"22 12 16 12 14 15 10 15 8 12 2 12\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M5.45 5.11L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z\"},\"child\":[]}]})(props);\n};\nexport function FiInfo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"16\",\"x2\":\"12\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12.01\",\"y2\":\"8\"},\"child\":[]}]})(props);\n};\nexport function FiInstagram (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"2\",\"width\":\"20\",\"height\":\"20\",\"rx\":\"5\",\"ry\":\"5\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"17.5\",\"y1\":\"6.5\",\"x2\":\"17.51\",\"y2\":\"6.5\"},\"child\":[]}]})(props);\n};\nexport function FiItalic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"19\",\"y1\":\"4\",\"x2\":\"10\",\"y2\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"14\",\"y1\":\"20\",\"x2\":\"5\",\"y2\":\"20\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"4\",\"x2\":\"9\",\"y2\":\"20\"},\"child\":[]}]})(props);\n};\nexport function FiKey (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 2l-2 2m-7.61 7.61a5.5 5.5 0 1 1-7.778 7.778 5.5 5.5 0 0 1 7.777-7.777zm0 0L15.5 7.5m0 0l3 3L22 7l-3-3m-3.5 3.5L19 4\"},\"child\":[]}]})(props);\n};\nexport function FiLayers (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"12 2 2 7 12 12 22 7 12 2\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"2 17 12 22 22 17\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"2 12 12 17 22 12\"},\"child\":[]}]})(props);\n};\nexport function FiLayout (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"9\",\"x2\":\"21\",\"y2\":\"9\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"21\",\"x2\":\"9\",\"y2\":\"9\"},\"child\":[]}]})(props);\n};\nexport function FiLifeBuoy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.93\",\"y1\":\"4.93\",\"x2\":\"9.17\",\"y2\":\"9.17\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"14.83\",\"y1\":\"14.83\",\"x2\":\"19.07\",\"y2\":\"19.07\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"14.83\",\"y1\":\"9.17\",\"x2\":\"19.07\",\"y2\":\"4.93\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"14.83\",\"y1\":\"9.17\",\"x2\":\"18.36\",\"y2\":\"5.64\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.93\",\"y1\":\"19.07\",\"x2\":\"9.17\",\"y2\":\"14.83\"},\"child\":[]}]})(props);\n};\nexport function FiLink2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiLink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"},\"child\":[]}]})(props);\n};\nexport function FiLinkedin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"9\",\"width\":\"4\",\"height\":\"12\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"4\",\"cy\":\"4\",\"r\":\"2\"},\"child\":[]}]})(props);\n};\nexport function FiList (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"6\",\"x2\":\"21\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"21\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"18\",\"x2\":\"21\",\"y2\":\"18\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"6\",\"x2\":\"3.01\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"12\",\"x2\":\"3.01\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"18\",\"x2\":\"3.01\",\"y2\":\"18\"},\"child\":[]}]})(props);\n};\nexport function FiLoader (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"2\",\"x2\":\"12\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"18\",\"x2\":\"12\",\"y2\":\"22\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.93\",\"y1\":\"4.93\",\"x2\":\"7.76\",\"y2\":\"7.76\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16.24\",\"y1\":\"16.24\",\"x2\":\"19.07\",\"y2\":\"19.07\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"y1\":\"12\",\"x2\":\"6\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"12\",\"x2\":\"22\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.93\",\"y1\":\"19.07\",\"x2\":\"7.76\",\"y2\":\"16.24\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16.24\",\"y1\":\"7.76\",\"x2\":\"19.07\",\"y2\":\"4.93\"},\"child\":[]}]})(props);\n};\nexport function FiLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"11\",\"width\":\"18\",\"height\":\"11\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 11V7a5 5 0 0 1 10 0v4\"},\"child\":[]}]})(props);\n};\nexport function FiLogIn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"10 17 15 12 10 7\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"12\",\"x2\":\"3\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiLogOut (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 17 21 12 16 7\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"12\",\"x2\":\"9\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiMail (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"22,6 12,13 2,6\"},\"child\":[]}]})(props);\n};\nexport function FiMapPin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"10\",\"r\":\"3\"},\"child\":[]}]})(props);\n};\nexport function FiMap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"1 6 1 22 8 18 16 22 23 18 23 2 16 6 8 2 1 6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"2\",\"x2\":\"8\",\"y2\":\"18\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"6\",\"x2\":\"16\",\"y2\":\"22\"},\"child\":[]}]})(props);\n};\nexport function FiMaximize2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"15 3 21 3 21 9\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 21 3 21 3 15\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"3\",\"x2\":\"14\",\"y2\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"21\",\"x2\":\"10\",\"y2\":\"14\"},\"child\":[]}]})(props);\n};\nexport function FiMaximize (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3\"},\"child\":[]}]})(props);\n};\nexport function FiMeh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"15\",\"x2\":\"16\",\"y2\":\"15\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"9\",\"x2\":\"9.01\",\"y2\":\"9\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"9\",\"x2\":\"15.01\",\"y2\":\"9\"},\"child\":[]}]})(props);\n};\nexport function FiMenu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"12\",\"x2\":\"21\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"6\",\"x2\":\"21\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"18\",\"x2\":\"21\",\"y2\":\"18\"},\"child\":[]}]})(props);\n};\nexport function FiMessageCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 11.5a8.38 8.38 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7a8.38 8.38 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.38 8.38 0 0 1 3.8-.9h.5a8.48 8.48 0 0 1 8 8v.5z\"},\"child\":[]}]})(props);\n};\nexport function FiMessageSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\"},\"child\":[]}]})(props);\n};\nexport function FiMicOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 9v3a3 3 0 0 0 5.12 2.12M15 9.34V4a3 3 0 0 0-5.94-.6\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 16.95A7 7 0 0 1 5 12v-2m14 0v2a7 7 0 0 1-.11 1.23\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"19\",\"x2\":\"12\",\"y2\":\"23\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"23\",\"x2\":\"16\",\"y2\":\"23\"},\"child\":[]}]})(props);\n};\nexport function FiMic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 10v2a7 7 0 0 1-14 0v-2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"19\",\"x2\":\"12\",\"y2\":\"23\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"23\",\"x2\":\"16\",\"y2\":\"23\"},\"child\":[]}]})(props);\n};\nexport function FiMinimize2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"4 14 10 14 10 20\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"20 10 14 10 14 4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"14\",\"y1\":\"10\",\"x2\":\"21\",\"y2\":\"3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"21\",\"x2\":\"10\",\"y2\":\"14\"},\"child\":[]}]})(props);\n};\nexport function FiMinimize (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 3v3a2 2 0 0 1-2 2H3m18 0h-3a2 2 0 0 1-2-2V3m0 18v-3a2 2 0 0 1 2-2h3M3 16h3a2 2 0 0 1 2 2v3\"},\"child\":[]}]})(props);\n};\nexport function FiMinusCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiMinusSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"5\",\"y1\":\"12\",\"x2\":\"19\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiMonitor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"3\",\"width\":\"20\",\"height\":\"14\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"21\",\"x2\":\"16\",\"y2\":\"21\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"17\",\"x2\":\"12\",\"y2\":\"21\"},\"child\":[]}]})(props);\n};\nexport function FiMoon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z\"},\"child\":[]}]})(props);\n};\nexport function FiMoreHorizontal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"1\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"19\",\"cy\":\"12\",\"r\":\"1\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"5\",\"cy\":\"12\",\"r\":\"1\"},\"child\":[]}]})(props);\n};\nexport function FiMoreVertical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"1\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"5\",\"r\":\"1\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"19\",\"r\":\"1\"},\"child\":[]}]})(props);\n};\nexport function FiMousePointer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 3l7.07 16.97 2.51-7.39 7.39-2.51L3 3z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 13l6 6\"},\"child\":[]}]})(props);\n};\nexport function FiMove (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"5 9 2 12 5 15\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 5 12 2 15 5\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"15 19 12 22 9 19\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"19 9 22 12 19 15\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"y1\":\"12\",\"x2\":\"22\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"2\",\"x2\":\"12\",\"y2\":\"22\"},\"child\":[]}]})(props);\n};\nexport function FiMusic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 18V5l12-2v13\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"18\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"16\",\"r\":\"3\"},\"child\":[]}]})(props);\n};\nexport function FiNavigation2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"12 2 19 21 12 17 5 21 12 2\"},\"child\":[]}]})(props);\n};\nexport function FiNavigation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"3 11 22 2 13 21 11 13 3 11\"},\"child\":[]}]})(props);\n};\nexport function FiOctagon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2\"},\"child\":[]}]})(props);\n};\nexport function FiPackage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"16.5\",\"y1\":\"9.4\",\"x2\":\"7.5\",\"y2\":\"4.21\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"3.27 6.96 12 12.01 20.73 6.96\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22.08\",\"x2\":\"12\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiPaperclip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48\"},\"child\":[]}]})(props);\n};\nexport function FiPauseCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"y1\":\"15\",\"x2\":\"10\",\"y2\":\"9\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"14\",\"y1\":\"15\",\"x2\":\"14\",\"y2\":\"9\"},\"child\":[]}]})(props);\n};\nexport function FiPause (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"4\",\"width\":\"4\",\"height\":\"16\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"14\",\"y\":\"4\",\"width\":\"4\",\"height\":\"16\"},\"child\":[]}]})(props);\n};\nexport function FiPenTool (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 19l7-7 3 3-7 7-3-3z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 13l-1.5-7.5L2 2l3.5 14.5L13 18l5-5z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 2l7.586 7.586\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"11\",\"cy\":\"11\",\"r\":\"2\"},\"child\":[]}]})(props);\n};\nexport function FiPercent (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"19\",\"y1\":\"5\",\"x2\":\"5\",\"y2\":\"19\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6.5\",\"cy\":\"6.5\",\"r\":\"2.5\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"17.5\",\"cy\":\"17.5\",\"r\":\"2.5\"},\"child\":[]}]})(props);\n};\nexport function FiPhoneCall (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.05 5A5 5 0 0 1 19 8.95M15.05 1A9 9 0 0 1 23 8.94m-1 7.98v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"},\"child\":[]}]})(props);\n};\nexport function FiPhoneForwarded (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"19 1 23 5 19 9\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"5\",\"x2\":\"23\",\"y2\":\"5\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"},\"child\":[]}]})(props);\n};\nexport function FiPhoneIncoming (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 2 16 8 22 8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"1\",\"x2\":\"16\",\"y2\":\"8\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"},\"child\":[]}]})(props);\n};\nexport function FiPhoneMissed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"1\",\"x2\":\"17\",\"y2\":\"7\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"7\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"},\"child\":[]}]})(props);\n};\nexport function FiPhoneOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.68 13.31a16 16 0 0 0 3.41 2.6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7 2 2 0 0 1 1.72 2v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.42 19.42 0 0 1-3.33-2.67m-2.67-3.34a19.79 19.79 0 0 1-3.07-8.63A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"1\",\"x2\":\"1\",\"y2\":\"23\"},\"child\":[]}]})(props);\n};\nexport function FiPhoneOutgoing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"23 7 23 1 17 1\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"8\",\"x2\":\"23\",\"y2\":\"1\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"},\"child\":[]}]})(props);\n};\nexport function FiPhone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"},\"child\":[]}]})(props);\n};\nexport function FiPieChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.21 15.89A10 10 0 1 1 8 2.83\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 12A10 10 0 0 0 12 2v10z\"},\"child\":[]}]})(props);\n};\nexport function FiPlayCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"10 8 16 12 10 16 10 8\"},\"child\":[]}]})(props);\n};\nexport function FiPlay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"5 3 19 12 5 21 5 3\"},\"child\":[]}]})(props);\n};\nexport function FiPlusCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiPlusSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"5\",\"x2\":\"12\",\"y2\":\"19\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"5\",\"y1\":\"12\",\"x2\":\"19\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiPocket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 3h16a2 2 0 0 1 2 2v6a10 10 0 0 1-10 10A10 10 0 0 1 2 11V5a2 2 0 0 1 2-2z\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"8 10 12 14 16 10\"},\"child\":[]}]})(props);\n};\nexport function FiPower (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.36 6.64a9 9 0 1 1-12.73 0\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"2\",\"x2\":\"12\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiPrinter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"6 9 6 2 18 2 18 9\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"14\",\"width\":\"12\",\"height\":\"8\"},\"child\":[]}]})(props);\n};\nexport function FiRadio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"2\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.24 7.76a6 6 0 0 1 0 8.49m-8.48-.01a6 6 0 0 1 0-8.49m11.31-2.82a10 10 0 0 1 0 14.14m-14.14 0a10 10 0 0 1 0-14.14\"},\"child\":[]}]})(props);\n};\nexport function FiRefreshCcw (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"1 4 1 10 7 10\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"23 20 23 14 17 14\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.49 9A9 9 0 0 0 5.64 5.64L1 10m22 4l-4.64 4.36A9 9 0 0 1 3.51 15\"},\"child\":[]}]})(props);\n};\nexport function FiRefreshCw (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"23 4 23 10 17 10\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"1 20 1 14 7 14\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15\"},\"child\":[]}]})(props);\n};\nexport function FiRepeat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 1 21 5 17 9\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 11V9a4 4 0 0 1 4-4h14\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7 23 3 19 7 15\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 13v2a4 4 0 0 1-4 4H3\"},\"child\":[]}]})(props);\n};\nexport function FiRewind (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"11 19 2 12 11 5 11 19\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"22 19 13 12 22 5 22 19\"},\"child\":[]}]})(props);\n};\nexport function FiRotateCcw (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"1 4 1 10 7 10\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M3.51 15a9 9 0 1 0 2.13-9.36L1 10\"},\"child\":[]}]})(props);\n};\nexport function FiRotateCw (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"23 4 23 10 17 10\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.49 15a9 9 0 1 1-2.12-9.36L23 10\"},\"child\":[]}]})(props);\n};\nexport function FiRss (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 11a9 9 0 0 1 9 9\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 4a16 16 0 0 1 16 16\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"5\",\"cy\":\"19\",\"r\":\"1\"},\"child\":[]}]})(props);\n};\nexport function FiSave (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 21 17 13 7 13 7 21\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7 3 7 8 15 8\"},\"child\":[]}]})(props);\n};\nexport function FiScissors (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"6\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"18\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"20\",\"y1\":\"4\",\"x2\":\"8.12\",\"y2\":\"15.88\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"14.47\",\"y1\":\"14.48\",\"x2\":\"20\",\"y2\":\"20\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8.12\",\"y1\":\"8.12\",\"x2\":\"12\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiSearch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"11\",\"cy\":\"11\",\"r\":\"8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"21\",\"x2\":\"16.65\",\"y2\":\"16.65\"},\"child\":[]}]})(props);\n};\nexport function FiSend (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"22\",\"y1\":\"2\",\"x2\":\"11\",\"y2\":\"13\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"22 2 15 22 11 13 2 9 22 2\"},\"child\":[]}]})(props);\n};\nexport function FiServer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"2\",\"width\":\"20\",\"height\":\"8\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"14\",\"width\":\"20\",\"height\":\"8\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"6\",\"x2\":\"6.01\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"18\",\"x2\":\"6.01\",\"y2\":\"18\"},\"child\":[]}]})(props);\n};\nexport function FiSettings (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z\"},\"child\":[]}]})(props);\n};\nexport function FiShare2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"5\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"12\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"19\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8.59\",\"y1\":\"13.51\",\"x2\":\"15.42\",\"y2\":\"17.49\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15.41\",\"y1\":\"6.51\",\"x2\":\"8.59\",\"y2\":\"10.49\"},\"child\":[]}]})(props);\n};\nexport function FiShare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 6 12 2 8 6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"2\",\"x2\":\"12\",\"y2\":\"15\"},\"child\":[]}]})(props);\n};\nexport function FiShieldOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.69 14a6.9 6.9 0 0 0 .31-2V5l-8-3-3.16 1.18\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M4.73 4.73L4 5v7c0 6 8 10 8 10a20.29 20.29 0 0 0 5.62-4.38\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"},\"child\":[]}]})(props);\n};\nexport function FiShield (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"},\"child\":[]}]})(props);\n};\nexport function FiShoppingBag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 2L3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"6\",\"x2\":\"21\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 10a4 4 0 0 1-8 0\"},\"child\":[]}]})(props);\n};\nexport function FiShoppingCart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"21\",\"r\":\"1\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"20\",\"cy\":\"21\",\"r\":\"1\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6\"},\"child\":[]}]})(props);\n};\nexport function FiShuffle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 3 21 3 21 8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"20\",\"x2\":\"21\",\"y2\":\"3\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"21 16 21 21 16 21\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"15\",\"x2\":\"21\",\"y2\":\"21\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"4\",\"x2\":\"9\",\"y2\":\"9\"},\"child\":[]}]})(props);\n};\nexport function FiSidebar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"3\",\"x2\":\"9\",\"y2\":\"21\"},\"child\":[]}]})(props);\n};\nexport function FiSkipBack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"19 20 9 12 19 4 19 20\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"5\",\"y1\":\"19\",\"x2\":\"5\",\"y2\":\"5\"},\"child\":[]}]})(props);\n};\nexport function FiSkipForward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"5 4 15 12 5 20 5 4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"19\",\"y1\":\"5\",\"x2\":\"19\",\"y2\":\"19\"},\"child\":[]}]})(props);\n};\nexport function FiSlack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 10c-.83 0-1.5-.67-1.5-1.5v-5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5v5c0 .83-.67 1.5-1.5 1.5z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.5 10H19V8.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5-.67 1.5-1.5 1.5z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.5 14c.83 0 1.5.67 1.5 1.5v5c0 .83-.67 1.5-1.5 1.5S8 21.33 8 20.5v-5c0-.83.67-1.5 1.5-1.5z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M3.5 14H5v1.5c0 .83-.67 1.5-1.5 1.5S2 16.33 2 15.5 2.67 14 3.5 14z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 14.5c0-.83.67-1.5 1.5-1.5h5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5h-5c-.83 0-1.5-.67-1.5-1.5z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.5 19H14v1.5c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5-.67-1.5-1.5-1.5z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 9.5C10 8.67 9.33 8 8.5 8h-5C2.67 8 2 8.67 2 9.5S2.67 11 3.5 11h5c.83 0 1.5-.67 1.5-1.5z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.5 5H10V3.5C10 2.67 9.33 2 8.5 2S7 2.67 7 3.5 7.67 5 8.5 5z\"},\"child\":[]}]})(props);\n};\nexport function FiSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.93\",\"y1\":\"4.93\",\"x2\":\"19.07\",\"y2\":\"19.07\"},\"child\":[]}]})(props);\n};\nexport function FiSliders (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"21\",\"x2\":\"4\",\"y2\":\"14\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"10\",\"x2\":\"4\",\"y2\":\"3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"21\",\"x2\":\"12\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"20\",\"y1\":\"21\",\"x2\":\"20\",\"y2\":\"16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"20\",\"y1\":\"12\",\"x2\":\"20\",\"y2\":\"3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"14\",\"x2\":\"7\",\"y2\":\"14\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"8\",\"x2\":\"15\",\"y2\":\"8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"16\",\"x2\":\"23\",\"y2\":\"16\"},\"child\":[]}]})(props);\n};\nexport function FiSmartphone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"5\",\"y\":\"2\",\"width\":\"14\",\"height\":\"20\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"18\",\"x2\":\"12.01\",\"y2\":\"18\"},\"child\":[]}]})(props);\n};\nexport function FiSmile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 14s1.5 2 4 2 4-2 4-2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"9\",\"x2\":\"9.01\",\"y2\":\"9\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"9\",\"x2\":\"15.01\",\"y2\":\"9\"},\"child\":[]}]})(props);\n};\nexport function FiSpeaker (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"4\",\"y\":\"2\",\"width\":\"16\",\"height\":\"20\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"14\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"6\",\"x2\":\"12.01\",\"y2\":\"6\"},\"child\":[]}]})(props);\n};\nexport function FiSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]}]})(props);\n};\nexport function FiStar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"},\"child\":[]}]})(props);\n};\nexport function FiStopCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"9\",\"y\":\"9\",\"width\":\"6\",\"height\":\"6\"},\"child\":[]}]})(props);\n};\nexport function FiSun (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"5\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"1\",\"x2\":\"12\",\"y2\":\"3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"21\",\"x2\":\"12\",\"y2\":\"23\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.22\",\"y1\":\"4.22\",\"x2\":\"5.64\",\"y2\":\"5.64\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"18.36\",\"y1\":\"18.36\",\"x2\":\"19.78\",\"y2\":\"19.78\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"12\",\"x2\":\"3\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"12\",\"x2\":\"23\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.22\",\"y1\":\"19.78\",\"x2\":\"5.64\",\"y2\":\"18.36\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"18.36\",\"y1\":\"5.64\",\"x2\":\"19.78\",\"y2\":\"4.22\"},\"child\":[]}]})(props);\n};\nexport function FiSunrise (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 18a5 5 0 0 0-10 0\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"2\",\"x2\":\"12\",\"y2\":\"9\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.22\",\"y1\":\"10.22\",\"x2\":\"5.64\",\"y2\":\"11.64\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"18\",\"x2\":\"3\",\"y2\":\"18\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"18\",\"x2\":\"23\",\"y2\":\"18\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"18.36\",\"y1\":\"11.64\",\"x2\":\"19.78\",\"y2\":\"10.22\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"22\",\"x2\":\"1\",\"y2\":\"22\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"8 6 12 2 16 6\"},\"child\":[]}]})(props);\n};\nexport function FiSunset (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 18a5 5 0 0 0-10 0\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"9\",\"x2\":\"12\",\"y2\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.22\",\"y1\":\"10.22\",\"x2\":\"5.64\",\"y2\":\"11.64\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"18\",\"x2\":\"3\",\"y2\":\"18\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"18\",\"x2\":\"23\",\"y2\":\"18\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"18.36\",\"y1\":\"11.64\",\"x2\":\"19.78\",\"y2\":\"10.22\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"22\",\"x2\":\"1\",\"y2\":\"22\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 5 12 9 8 5\"},\"child\":[]}]})(props);\n};\nexport function FiTable (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 3H5a2 2 0 0 0-2 2v4m6-6h10a2 2 0 0 1 2 2v4M9 3v18m0 0h10a2 2 0 0 0 2-2V9M9 21H5a2 2 0 0 1-2-2V9m0 0h18\"},\"child\":[]}]})(props);\n};\nexport function FiTablet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"4\",\"y\":\"2\",\"width\":\"16\",\"height\":\"20\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"18\",\"x2\":\"12.01\",\"y2\":\"18\"},\"child\":[]}]})(props);\n};\nexport function FiTag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"7\",\"y1\":\"7\",\"x2\":\"7.01\",\"y2\":\"7\"},\"child\":[]}]})(props);\n};\nexport function FiTarget (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"6\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"2\"},\"child\":[]}]})(props);\n};\nexport function FiTerminal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"4 17 10 11 4 5\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"19\",\"x2\":\"20\",\"y2\":\"19\"},\"child\":[]}]})(props);\n};\nexport function FiThermometer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 14.76V3.5a2.5 2.5 0 0 0-5 0v11.26a4.5 4.5 0 1 0 5 0z\"},\"child\":[]}]})(props);\n};\nexport function FiThumbsDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10 15v4a3 3 0 0 0 3 3l4-9V2H5.72a2 2 0 0 0-2 1.7l-1.38 9a2 2 0 0 0 2 2.3zm7-13h2.67A2.31 2.31 0 0 1 22 4v7a2.31 2.31 0 0 1-2.33 2H17\"},\"child\":[]}]})(props);\n};\nexport function FiThumbsUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3\"},\"child\":[]}]})(props);\n};\nexport function FiToggleLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"1\",\"y\":\"5\",\"width\":\"22\",\"height\":\"14\",\"rx\":\"7\",\"ry\":\"7\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8\",\"cy\":\"12\",\"r\":\"3\"},\"child\":[]}]})(props);\n};\nexport function FiToggleRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"1\",\"y\":\"5\",\"width\":\"22\",\"height\":\"14\",\"rx\":\"7\",\"ry\":\"7\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16\",\"cy\":\"12\",\"r\":\"3\"},\"child\":[]}]})(props);\n};\nexport function FiTool (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z\"},\"child\":[]}]})(props);\n};\nexport function FiTrash2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"3 6 5 6 21 6\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"y1\":\"11\",\"x2\":\"10\",\"y2\":\"17\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"14\",\"y1\":\"11\",\"x2\":\"14\",\"y2\":\"17\"},\"child\":[]}]})(props);\n};\nexport function FiTrash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"3 6 5 6 21 6\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\"},\"child\":[]}]})(props);\n};\nexport function FiTrello (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"7\",\"y\":\"7\",\"width\":\"3\",\"height\":\"9\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"14\",\"y\":\"7\",\"width\":\"3\",\"height\":\"5\"},\"child\":[]}]})(props);\n};\nexport function FiTrendingDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"23 18 13.5 8.5 8.5 13.5 1 6\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 18 23 18 23 12\"},\"child\":[]}]})(props);\n};\nexport function FiTrendingUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"23 6 13.5 15.5 8.5 10.5 1 18\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 6 23 6 23 12\"},\"child\":[]}]})(props);\n};\nexport function FiTriangle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\"},\"child\":[]}]})(props);\n};\nexport function FiTruck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"1\",\"y\":\"3\",\"width\":\"15\",\"height\":\"13\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"16 8 20 8 23 11 23 16 16 16 16 8\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"5.5\",\"cy\":\"18.5\",\"r\":\"2.5\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18.5\",\"cy\":\"18.5\",\"r\":\"2.5\"},\"child\":[]}]})(props);\n};\nexport function FiTv (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"7\",\"width\":\"20\",\"height\":\"15\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 2 12 7 7 2\"},\"child\":[]}]})(props);\n};\nexport function FiTwitch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 2H3v16h5v4l4-4h5l4-4V2zm-10 9V7m5 4V7\"},\"child\":[]}]})(props);\n};\nexport function FiTwitter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z\"},\"child\":[]}]})(props);\n};\nexport function FiType (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"4 7 4 4 20 4 20 7\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"20\",\"x2\":\"15\",\"y2\":\"20\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"4\",\"x2\":\"12\",\"y2\":\"20\"},\"child\":[]}]})(props);\n};\nexport function FiUmbrella (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23 12a11.05 11.05 0 0 0-22 0zm-5 7a3 3 0 0 1-6 0v-7\"},\"child\":[]}]})(props);\n};\nexport function FiUnderline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 3v7a6 6 0 0 0 6 6 6 6 0 0 0 6-6V3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"21\",\"x2\":\"20\",\"y2\":\"21\"},\"child\":[]}]})(props);\n};\nexport function FiUnlock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"11\",\"width\":\"18\",\"height\":\"11\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 11V7a5 5 0 0 1 9.9-1\"},\"child\":[]}]})(props);\n};\nexport function FiUploadCloud (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 16 12 12 8 16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"12\",\"x2\":\"12\",\"y2\":\"21\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.39 18.39A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.3\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 16 12 12 8 16\"},\"child\":[]}]})(props);\n};\nexport function FiUpload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 8 12 3 7 8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"3\",\"x2\":\"12\",\"y2\":\"15\"},\"child\":[]}]})(props);\n};\nexport function FiUserCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"7\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 11 19 13 23 9\"},\"child\":[]}]})(props);\n};\nexport function FiUserMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"7\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"11\",\"x2\":\"17\",\"y2\":\"11\"},\"child\":[]}]})(props);\n};\nexport function FiUserPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"7\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"20\",\"y1\":\"8\",\"x2\":\"20\",\"y2\":\"14\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"11\",\"x2\":\"17\",\"y2\":\"11\"},\"child\":[]}]})(props);\n};\nexport function FiUserX (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"7\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"8\",\"x2\":\"23\",\"y2\":\"13\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"8\",\"x2\":\"18\",\"y2\":\"13\"},\"child\":[]}]})(props);\n};\nexport function FiUser (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"7\",\"r\":\"4\"},\"child\":[]}]})(props);\n};\nexport function FiUsers (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"7\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M23 21v-2a4 4 0 0 0-3-3.87\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 3.13a4 4 0 0 1 0 7.75\"},\"child\":[]}]})(props);\n};\nexport function FiVideoOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 16v1a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2h2m5.66 0H14a2 2 0 0 1 2 2v3.34l1 1L23 7v10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"},\"child\":[]}]})(props);\n};\nexport function FiVideo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"23 7 16 12 23 17 23 7\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"1\",\"y\":\"5\",\"width\":\"15\",\"height\":\"14\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]}]})(props);\n};\nexport function FiVoicemail (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"5.5\",\"cy\":\"11.5\",\"r\":\"4.5\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18.5\",\"cy\":\"11.5\",\"r\":\"4.5\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"5.5\",\"y1\":\"16\",\"x2\":\"18.5\",\"y2\":\"16\"},\"child\":[]}]})(props);\n};\nexport function FiVolume1 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.54 8.46a5 5 0 0 1 0 7.07\"},\"child\":[]}]})(props);\n};\nexport function FiVolume2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.07 4.93a10 10 0 0 1 0 14.14M15.54 8.46a5 5 0 0 1 0 7.07\"},\"child\":[]}]})(props);\n};\nexport function FiVolumeX (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"9\",\"x2\":\"17\",\"y2\":\"15\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"9\",\"x2\":\"23\",\"y2\":\"15\"},\"child\":[]}]})(props);\n};\nexport function FiVolume (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\"},\"child\":[]}]})(props);\n};\nexport function FiWatch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"7\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 9 12 12 13.5 13.5\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.51 17.35l-.35 3.83a2 2 0 0 1-2 1.82H9.83a2 2 0 0 1-2-1.82l-.35-3.83m.01-10.7l.35-3.83A2 2 0 0 1 9.83 1h4.35a2 2 0 0 1 2 1.82l.35 3.83\"},\"child\":[]}]})(props);\n};\nexport function FiWifiOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.72 11.06A10.94 10.94 0 0 1 19 12.55\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 12.55a10.94 10.94 0 0 1 5.17-2.39\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.71 5.05A16 16 0 0 1 22.58 9\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M1.42 9a15.91 15.91 0 0 1 4.7-2.88\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.53 16.11a6 6 0 0 1 6.95 0\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"20\",\"x2\":\"12.01\",\"y2\":\"20\"},\"child\":[]}]})(props);\n};\nexport function FiWifi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 12.55a11 11 0 0 1 14.08 0\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M1.42 9a16 16 0 0 1 21.16 0\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.53 16.11a6 6 0 0 1 6.95 0\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"20\",\"x2\":\"12.01\",\"y2\":\"20\"},\"child\":[]}]})(props);\n};\nexport function FiWind (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.59 4.59A2 2 0 1 1 11 8H2m10.59 11.41A2 2 0 1 0 14 16H2m15.73-8.27A2.5 2.5 0 1 1 19.5 12H2\"},\"child\":[]}]})(props);\n};\nexport function FiXCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"9\",\"x2\":\"9\",\"y2\":\"15\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"9\",\"x2\":\"15\",\"y2\":\"15\"},\"child\":[]}]})(props);\n};\nexport function FiXOctagon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"9\",\"x2\":\"9\",\"y2\":\"15\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"9\",\"x2\":\"15\",\"y2\":\"15\"},\"child\":[]}]})(props);\n};\nexport function FiXSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"9\",\"x2\":\"15\",\"y2\":\"15\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"9\",\"x2\":\"9\",\"y2\":\"15\"},\"child\":[]}]})(props);\n};\nexport function FiX (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"6\",\"x2\":\"6\",\"y2\":\"18\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"6\",\"x2\":\"18\",\"y2\":\"18\"},\"child\":[]}]})(props);\n};\nexport function FiYoutube (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.54 6.42a2.78 2.78 0 0 0-1.94-2C18.88 4 12 4 12 4s-6.88 0-8.6.46a2.78 2.78 0 0 0-1.94 2A29 29 0 0 0 1 11.75a29 29 0 0 0 .46 5.33A2.78 2.78 0 0 0 3.4 19c1.72.46 8.6.46 8.6.46s6.88 0 8.6-.46a2.78 2.78 0 0 0 1.94-2 29 29 0 0 0 .46-5.25 29 29 0 0 0-.46-5.33z\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"9.75 15.02 15.5 11.75 9.75 8.48 9.75 15.02\"},\"child\":[]}]})(props);\n};\nexport function FiZapOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"12.41 6.75 13 2 10.57 4.92\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"18.57 12.91 21 10 15.66 10\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"8 8 3 14 12 14 11 22 16 16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"},\"child\":[]}]})(props);\n};\nexport function FiZap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"13 2 3 14 12 14 11 22 21 10 12 10 13 2\"},\"child\":[]}]})(props);\n};\nexport function FiZoomIn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"11\",\"cy\":\"11\",\"r\":\"8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"21\",\"x2\":\"16.65\",\"y2\":\"16.65\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"11\",\"y1\":\"8\",\"x2\":\"11\",\"y2\":\"14\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"11\",\"x2\":\"14\",\"y2\":\"11\"},\"child\":[]}]})(props);\n};\nexport function FiZoomOut (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"11\",\"cy\":\"11\",\"r\":\"8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"21\",\"x2\":\"16.65\",\"y2\":\"16.65\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"11\",\"x2\":\"14\",\"y2\":\"11\"},\"child\":[]}]})(props);\n};\n","export const formatDateToEuropean = (date: string | Date | undefined): string => {\n if (!date) return '';\n const d = new Date(date);\n if (isNaN(d.getTime())) return '';\n const day = d.getDate().toString().padStart(2, '0');\n const month = (d.getMonth() + 1).toString().padStart(2, '0');\n const year = d.getFullYear();\n return `${day}/${month}/${year}`;\n};\n\nexport const parseEuropeanDate = (dateString: string): string => {\n if (!dateString) return '';\n \n const cleanDate = dateString.replace(/[^\\d/]/g, '');\n const parts = cleanDate.split('/');\n \n if (parts.length === 3) {\n const [day, month, year] = parts;\n const fullYear = year.length === 2 ? `20${year}` : year;\n const isoDate = `${fullYear}-${month.padStart(2, '0')}-${day.padStart(2, '0')}`;\n \n const testDate = new Date(isoDate);\n if (!isNaN(testDate.getTime())) {\n return isoDate;\n }\n }\n return '';\n};\n\nexport const formatTimeDisplay = (value: string): string => {\n const cleanValue = value.replace(/[^\\d]/g, '');\n let formatted = cleanValue;\n \n if (cleanValue.length >= 3) {\n formatted = cleanValue.substring(0, 2) + ':' + cleanValue.substring(2, 4);\n } else if (cleanValue.length === 2) {\n const hours = parseInt(cleanValue);\n if (hours > 23) {\n formatted = '23';\n }\n }\n \n return formatted;\n};\n\nexport const parseTime = (timeString: string): { hours: number; minutes: number } | null => {\n const match = timeString.match(/^(\\d{1,2}):(\\d{2})$/);\n if (match) {\n const hours = parseInt(match[1]);\n const minutes = parseInt(match[2]);\n if (hours >= 0 && hours <= 23 && minutes >= 0 && minutes <= 59) {\n return { hours, minutes };\n }\n }\n return null;\n};","import React, { useRef } from \"react\";\nimport { FiCalendar } from \"react-icons/fi\";\nimport { formatDateToEuropean, parseEuropeanDate } from \"../../../utils/formUtils\";\nimport styles from \"./DateInput.module.css\";\n\nexport interface DateInputProps {\n label: string;\n value: string;\n onChange: (newValue: string) => void;\n placeholder?: string;\n onFocus?: () => void;\n onBlur?: () => void;\n error?: boolean;\n success?: boolean;\n loading?: boolean;\n disabled?: boolean;\n}\n\n/**\n * DateInput component - European format date picker with manual input support\n * \n * @component\n * @description\n * A date input component that supports both manual text entry in DD/MM/YYYY format\n * and native calendar picker selection. Automatically formats dates as users type,\n * adding slashes at appropriate positions. Stores dates internally in ISO format\n * while displaying them in European format for better UX in European contexts.\n * \n * Features:\n * - Auto-formatting while typing (adds slashes automatically)\n * - Calendar icon for native date picker access\n * - Seamless conversion between European display and ISO storage formats\n * - Mobile-optimized with proper touch targets\n * \n * @example\n * // Basic usage\n * <DateInput\n * label=\"Date of Birth\"\n * value={birthDate}\n * onChange={setBirthDate}\n * placeholder=\"31/12/2000\"\n * />\n * \n * @example\n * // With focus handlers\n * <DateInput\n * label=\"Event Date\"\n * value={eventDate}\n * onChange={setEventDate}\n * onFocus={() => console.log('Focused')}\n * onBlur={() => validateDate(eventDate)}\n * />\n */\nexport function DateInput({ \n label, \n value, \n onChange, \n placeholder = \"25/12/2024\",\n onFocus, \n onBlur,\n error = false,\n success = false,\n loading = false,\n disabled = false\n}: Readonly<DateInputProps>) {\n const hiddenDateInputRef = useRef<HTMLInputElement>(null);\n\n\n const handleTextChange = (textValue: string) => {\n // Auto-format as user types\n let formatted = textValue.replace(/[^\\d/]/g, '');\n \n // Add slashes automatically\n if (formatted.length >= 2 && formatted.charAt(2) !== '/') {\n formatted = formatted.substring(0, 2) + '/' + formatted.substring(2);\n }\n if (formatted.length >= 5 && formatted.charAt(5) !== '/') {\n formatted = formatted.substring(0, 5) + '/' + formatted.substring(5);\n }\n \n // Limit length\n if (formatted.length > 10) {\n formatted = formatted.substring(0, 10);\n }\n \n // Convert to ISO format when complete and valid, otherwise store display format\n if (formatted.length === 10) {\n const isoDate = parseEuropeanDate(formatted);\n onChange(isoDate || formatted);\n } else {\n onChange(formatted);\n }\n };\n\n const handleCalendarClick = () => {\n // Set the hidden input to current value for calendar\n if (hiddenDateInputRef.current) {\n // If value is already ISO format, use it directly\n // If it's European format, convert it\n const isoDate = value.includes('-') ? value : parseEuropeanDate(value);\n if (isoDate) {\n hiddenDateInputRef.current.value = isoDate;\n }\n // Try showPicker first (modern browsers), fallback to click\n if (hiddenDateInputRef.current.showPicker) {\n hiddenDateInputRef.current.showPicker();\n } else {\n hiddenDateInputRef.current.click();\n }\n }\n };\n\n const handleCalendarChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const isoDate = e.target.value;\n if (isoDate) {\n onChange(isoDate);\n }\n };\n\n const getClassName = () => {\n const classes = [styles.dateInput];\n if (error) classes.push(styles.error);\n if (success) classes.push(styles.success);\n if (loading) classes.push(styles.loading);\n return classes.join(' ');\n };\n\n return (\n <div className={getClassName()}>\n <label className={styles.label}>{label}</label>\n <div className={styles.inputWrapper}>\n <input\n type=\"text\"\n value={value.includes('-') ? formatDateToEuropean(value) : value}\n onChange={(e) => handleTextChange(e.target.value)}\n onFocus={onFocus}\n onBlur={onBlur}\n placeholder={placeholder}\n className={styles.textInput}\n disabled={disabled || loading}\n />\n <button\n type=\"button\"\n onClick={handleCalendarClick}\n className={styles.calendarButton}\n title=\"Select date from calendar\"\n disabled={disabled || loading}\n >\n <FiCalendar />\n </button>\n <input\n ref={hiddenDateInputRef}\n type=\"date\"\n onChange={handleCalendarChange}\n className={styles.hiddenDateInput}\n tabIndex={-1}\n disabled={disabled || loading}\n />\n </div>\n </div>\n );\n}","import React, { useState, useRef, useEffect, KeyboardEvent } from 'react';\nimport { motion, AnimatePresence } from 'framer-motion';\nimport { FiChevronDown, FiSearch, FiCheck } from 'react-icons/fi';\nimport styles from \"./SearchableDropdown.module.css\";\n\ntype Option = { label: string; value: string };\n\nexport interface SearchableDropdownProps {\n label: string;\n value: string;\n onChange: (value: string) => void;\n options: Option[];\n placeholder?: string;\n allowEmpty?: boolean;\n disabled?: boolean;\n loading?: boolean;\n error?: boolean;\n}\n\n/**\n * SearchableDropdown component - Modern filterable dropdown with animations\n * \n * @component\n * @description\n * A sophisticated dropdown component with real-time search filtering, smooth animations,\n * and keyboard navigation support. Features gradient backgrounds, slide-in animations\n * for options, and a sliding indicator on hover. The dropdown menu includes a search\n * field that filters options as you type.\n * \n * Features:\n * - Real-time search filtering\n * - Smooth animations with Framer Motion\n * - Keyboard navigation (Arrow keys, Enter, Escape)\n * - Custom scrollbar styling\n * - Mobile-optimized with modal-like behavior on small screens\n * - Loading and error states\n * - Selected item highlighting with gradient background\n * \n * @example\n * // Basic usage\n * <SearchableDropdown\n * label=\"Select Country\"\n * value={selectedCountry}\n * onChange={setSelectedCountry}\n * options={countryOptions}\n * placeholder=\"Choose a country...\"\n * />\n * \n * @example\n * // With empty option disabled\n * <SearchableDropdown\n * label=\"Required Field\"\n * value={requiredValue}\n * onChange={setRequiredValue}\n * options={options}\n * allowEmpty={false}\n * error={!requiredValue}\n * />\n */\nexport function SearchableDropdown({\n label,\n value,\n onChange,\n options,\n placeholder = \"Select...\",\n allowEmpty = true,\n disabled = false,\n loading = false,\n error = false\n}: Readonly<SearchableDropdownProps>) {\n const [isOpen, setIsOpen] = useState(false);\n const [searchTerm, setSearchTerm] = useState(\"\");\n const [highlightedIndex, setHighlightedIndex] = useState(-1);\n const dropdownRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n\n // Get the selected option's label\n const selectedOption = options.find(opt => opt.value === value);\n const displayValue = selectedOption ? selectedOption.label : '';\n\n // Filter options based on search\n const filteredOptions = options.filter(opt => \n opt.label.toLowerCase().includes(searchTerm.toLowerCase())\n );\n \n // Add empty option to filtered list if allowed\n const allOptions = allowEmpty ? [{ label: '(none)', value: '' }, ...filteredOptions] : filteredOptions;\n\n // Close dropdown when clicking outside\n useEffect(() => {\n function handleClickOutside(event: MouseEvent) {\n if (dropdownRef.current && !dropdownRef.current.contains(event.target as Node)) {\n setIsOpen(false);\n setSearchTerm(\"\");\n }\n }\n\n document.addEventListener('mousedown', handleClickOutside);\n return () => document.removeEventListener('mousedown', handleClickOutside);\n }, []);\n\n // Focus search input when dropdown opens\n useEffect(() => {\n if (isOpen && inputRef.current) {\n inputRef.current.focus();\n }\n }, [isOpen]);\n\n const handleSelect = (optionValue: string) => {\n onChange(optionValue);\n setIsOpen(false);\n setSearchTerm(\"\");\n setHighlightedIndex(-1);\n };\n \n const handleKeyDown = (e: KeyboardEvent<HTMLDivElement>) => {\n if (!isOpen) return;\n \n switch (e.key) {\n case 'ArrowDown':\n e.preventDefault();\n setHighlightedIndex(prev => \n prev < allOptions.length - 1 ? prev + 1 : 0\n );\n break;\n case 'ArrowUp':\n e.preventDefault();\n setHighlightedIndex(prev => \n prev > 0 ? prev - 1 : allOptions.length - 1\n );\n break;\n case 'Enter':\n e.preventDefault();\n if (highlightedIndex >= 0 && highlightedIndex < allOptions.length) {\n handleSelect(allOptions[highlightedIndex].value);\n }\n break;\n case 'Escape':\n e.preventDefault();\n setIsOpen(false);\n setSearchTerm(\"\");\n setHighlightedIndex(-1);\n break;\n }\n };\n\n const getTriggerClassName = () => {\n const classes = [styles.dropdownTrigger];\n if (isOpen) classes.push(styles.open);\n if (loading) classes.push(styles.loading);\n if (error) classes.push(styles.error);\n return classes.join(' ');\n };\n\n return (\n <div className={styles.searchableDropdown} ref={dropdownRef} onKeyDown={handleKeyDown}>\n <label>{label}</label>\n \n <motion.button\n type=\"button\"\n className={getTriggerClassName()}\n onClick={() => !disabled && !loading && setIsOpen(!isOpen)}\n whileTap={{ scale: disabled ? 1 : 0.98 }}\n style={{ willChange: 'transform' }}\n disabled={disabled}\n >\n <span className={`${styles.dropdownValue} ${!displayValue ? styles.placeholder : ''}`}>\n {displayValue || placeholder}\n </span>\n <FiChevronDown className={styles.dropdownArrow} />\n </motion.button>\n\n <AnimatePresence>\n {isOpen && (\n <motion.div \n className={styles.dropdownMenu}\n initial={{ opacity: 0, y: -10, scale: 0.95 }}\n animate={{ opacity: 1, y: 0, scale: 1 }}\n exit={{ opacity: 0, y: -10, scale: 0.95 }}\n transition={{ duration: 0.2, ease: \"easeOut\" }}\n >\n <div className={styles.dropdownSearch}>\n <FiSearch className={styles.searchIcon} />\n <input\n ref={inputRef}\n type=\"text\"\n className={styles.searchInput}\n placeholder=\"Cerca...\"\n value={searchTerm}\n onChange={(e) => setSearchTerm(e.target.value)}\n onClick={(e) => e.stopPropagation()}\n />\n </div>\n \n <div className={styles.dropdownOptions}>\n {allOptions.map((opt, index) => {\n const isSelected = value === opt.value;\n const isHighlighted = highlightedIndex === index;\n \n return (\n <motion.button\n type=\"button\"\n key={`${opt.value}-${index}`}\n className={`${styles.dropdownOption} ${isSelected ? styles.selected : ''} ${isHighlighted ? styles.highlighted : ''}`}\n onClick={() => handleSelect(opt.value)}\n onMouseEnter={() => setHighlightedIndex(index)}\n initial={{ opacity: 0, x: -20 }}\n animate={{ opacity: 1, x: 0 }}\n transition={{ delay: index * 0.02 }}\n whileTap={{ scale: 0.98 }}\n style={{ willChange: 'transform' }}\n >\n <span>{opt.label}</span>\n {isSelected && <FiCheck className={styles.checkIcon} />}\n </motion.button>\n );\n })}\n {allOptions.length === 0 && (\n <motion.div \n className={styles.dropdownNoResults}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n >\n No results found\n </motion.div>\n )}\n </div>\n </motion.div>\n )}\n </AnimatePresence>\n </div>\n );\n}","import React from 'react';\nimport { FiChevronDown } from 'react-icons/fi';\nimport styles from \"./SelectInput.module.css\";\n\ntype Option = string | { label: string; value: string };\n\nexport interface SelectInputProps {\n label: string;\n value: string;\n onChange: (value: string) => void;\n options: Readonly<Option[]>;\n placeholder?: string;\n disabled?: boolean;\n error?: boolean;\n success?: boolean;\n loading?: boolean;\n required?: boolean;\n}\n\n/**\n * SelectInput component - Styled dropdown selector with flexible option format\n * \n * @component\n * @description\n * A customizable select dropdown that accepts both simple string arrays and\n * label-value object arrays for options. Features custom styling that maintains\n * consistency across browsers while preserving native select functionality.\n * Includes a styled chevron icon for better visual feedback.\n * \n * @example\n * // With simple string options\n * <SelectInput\n * label=\"Country\"\n * value={country}\n * onChange={setCountry}\n * options={['Italy', 'France', 'Spain', 'Germany']}\n * placeholder=\"Select a country\"\n * />\n * \n * @example\n * // With label-value pairs\n * <SelectInput\n * label=\"Status\"\n * value={status}\n * onChange={setStatus}\n * options={[\n * { label: 'Active', value: 'active' },\n * { label: 'Pending', value: 'pending' },\n * { label: 'Archived', value: 'archived' }\n * ]}\n * />\n */\nexport function SelectInput({\n label,\n value,\n onChange,\n options,\n placeholder = \"Select...\",\n disabled = false,\n error = false,\n success = false,\n loading = false,\n required = false\n}: Readonly<SelectInputProps>) {\n const getClassName = () => {\n const classes = [styles.selectInput];\n if (error) classes.push(styles.error);\n if (success) classes.push(styles.success);\n if (loading) classes.push(styles.loading);\n return classes.join(' ');\n };\n\n return (\n <div className={getClassName()}>\n <label>\n {label}\n {required && <span style={{ color: 'var(--color-error)' }}> *</span>}\n </label>\n <div className={styles.selectWrapper}>\n <select \n value={value} \n onChange={e => onChange(e.target.value)}\n disabled={disabled || loading}\n required={required}\n >\n <option value=\"\">{placeholder}</option>\n {options.map(opt => {\n const optionValue = typeof opt === 'string' ? opt : opt.value;\n const optionLabel = typeof opt === 'string' ? opt : opt.label;\n return (\n <option key={optionValue} value={optionValue}>{optionLabel}</option>\n );\n })}\n </select>\n <FiChevronDown className={styles.selectIcon} />\n </div>\n </div>\n );\n}","import React from 'react';\nimport styles from \"./TextArea.module.css\";\n\nexport interface TextAreaProps {\n label: string;\n value: string;\n onChange: (newValue: string) => void;\n rows?: number;\n placeholder?: string;\n required?: boolean;\n maxLength?: number;\n disabled?: boolean;\n error?: boolean;\n success?: boolean;\n loading?: boolean;\n focusMode?: boolean;\n}\n\n/**\n * TextArea component - Multi-line text input with character counting\n * \n * @component\n * @description\n * A resizable text area component designed for longer form content like descriptions,\n * comments, or messages. Features automatic character counting when maxLength is set,\n * and maintains consistent styling with other form inputs. The component is optimized\n * for both desktop and mobile experiences with appropriate touch targets.\n * \n * @example\n * // Basic usage\n * <TextArea\n * label=\"Description\"\n * value={description}\n * onChange={setDescription}\n * rows={4}\n * placeholder=\"Enter a detailed description...\"\n * />\n * \n * @example\n * // With character limit\n * <TextArea\n * label=\"Bio\"\n * value={bio}\n * onChange={setBio}\n * maxLength={500}\n * required\n * />\n */\nexport function TextArea({ \n label, \n value, \n onChange, \n rows = 5, \n placeholder = \"\",\n required = false,\n maxLength,\n disabled = false,\n error = false,\n success = false,\n loading = false,\n focusMode = false\n}: Readonly<TextAreaProps>) {\n const textareaId = `textarea-${Math.random().toString(36).substr(2, 9)}`;\n \n const getContainerClassName = () => {\n const classes = [styles.textareaContainer];\n if (error) classes.push(styles.error);\n if (success) classes.push(styles.success);\n if (loading) classes.push(styles.loading);\n if (focusMode) classes.push(styles.focusMode);\n return classes.join(' ');\n };\n \n const getCharCountClassName = () => {\n if (!maxLength) return styles.characterCount;\n \n const classes = [styles.characterCount];\n const percentage = (value.length / maxLength) * 100;\n \n if (percentage >= 100) {\n classes.push(styles.atLimit);\n } else if (percentage >= 80) {\n classes.push(styles.nearLimit);\n }\n \n return classes.join(' ');\n };\n \n return (\n <div className={getContainerClassName()}>\n <label htmlFor={textareaId} className={styles.textareaLabel}>\n {label}\n {required && <span className={styles.requiredIndicator}>*</span>}\n </label>\n <textarea\n id={textareaId}\n value={value}\n onChange={(e) => onChange(e.target.value)}\n rows={rows}\n placeholder={placeholder}\n maxLength={maxLength}\n className={styles.textareaInput}\n aria-required={required}\n disabled={disabled || loading}\n aria-invalid={error}\n />\n {maxLength && (\n <div className={getCharCountClassName()}>\n <span>{value.length}</span>\n <span style={{ opacity: 0.7 }}> / </span>\n <span>{maxLength}</span>\n </div>\n )}\n </div>\n );\n}","import React from 'react';\nimport styles from './Toggle.module.css';\n\nexport interface ToggleProps {\n readonly isOn: boolean;\n readonly onToggle: (isOn: boolean) => void;\n readonly leftLabel?: string;\n readonly rightLabel?: string;\n readonly leftIcon?: React.ReactNode;\n readonly rightIcon?: React.ReactNode;\n}\n\nexport function Toggle(props: Readonly<ToggleProps>) {\n const { isOn, onToggle, leftLabel, rightLabel, leftIcon, rightIcon } = props;\n return (\n <div className={styles.toggleContainer}>\n <button\n className={`${styles.toggleButton} ${!isOn ? styles.active : ''}`}\n onClick={() => onToggle(false)}\n >\n {leftIcon}\n {leftLabel}\n </button>\n <button\n className={`${styles.toggleButton} ${isOn ? styles.active : ''}`}\n onClick={() => onToggle(true)}\n >\n {rightIcon}\n {rightLabel}\n </button>\n </div>\n );\n} ","import React, { useState, useEffect, useRef } from 'react';\nimport { motion } from 'framer-motion';\nimport { Edit, Check, X } from 'lucide-react';\nimport styles from './EditFAB.module.css';\n\nexport interface EditFABProps {\n canEdit: boolean;\n isEditMode: boolean;\n hasUnsavedChanges?: boolean;\n isSaving?: boolean;\n onEnterEditMode: () => void;\n onExitEditMode: () => void;\n position?: {\n bottom?: string | number;\n right?: string | number;\n top?: string | number;\n left?: string | number;\n };\n}\n\nexport const EditFAB: React.FC<EditFABProps> = ({\n canEdit,\n isEditMode,\n hasUnsavedChanges = false,\n isSaving = false,\n onEnterEditMode,\n onExitEditMode,\n position = { bottom: 32, right: 32 }\n}) => {\n const [isMobile, setIsMobile] = useState(false);\n const [currentPosition, setCurrentPosition] = useState<{ x: number; y: number } | null>(null);\n const [isDragging, setIsDragging] = useState(false);\n const fabRef = useRef<HTMLButtonElement>(null);\n const dragStartPos = useRef<{ x: number; y: number } | null>(null);\n const elementStartPos = useRef<{ x: number; y: number } | null>(null);\n\n useEffect(() => {\n const checkMobile = () => {\n setIsMobile(window.innerWidth <= 768);\n };\n checkMobile();\n window.addEventListener('resize', checkMobile);\n \n return () => {\n window.removeEventListener('resize', checkMobile);\n };\n }, []);\n\n // Touch handlers for mobile dragging\n const handleTouchStart = (e: React.TouchEvent) => {\n if (!isMobile) return;\n \n const touch = e.touches[0];\n const rect = fabRef.current?.getBoundingClientRect();\n \n if (rect) {\n dragStartPos.current = { x: touch.clientX, y: touch.clientY };\n elementStartPos.current = { \n x: rect.left + rect.width / 2, \n y: rect.top + rect.height / 2 \n };\n setIsDragging(true);\n }\n };\n\n const handleTouchMove = (e: React.TouchEvent) => {\n if (!isDragging || !dragStartPos.current || !elementStartPos.current) return;\n \n e.preventDefault();\n const touch = e.touches[0];\n \n const deltaX = touch.clientX - dragStartPos.current.x;\n const deltaY = touch.clientY - dragStartPos.current.y;\n \n let newX = elementStartPos.current.x + deltaX;\n let newY = elementStartPos.current.y + deltaY;\n \n // Keep within viewport bounds\n const padding = 30;\n newX = Math.max(padding, Math.min(window.innerWidth - padding, newX));\n newY = Math.max(padding, Math.min(window.innerHeight - padding, newY));\n \n setCurrentPosition({ x: newX, y: newY });\n };\n\n const handleTouchEnd = () => {\n setIsDragging(false);\n dragStartPos.current = null;\n elementStartPos.current = null;\n };\n\n const handleClick = (_e: React.MouseEvent) => {\n // Only trigger click if we haven't been dragging\n if (!isDragging && !isSaving) {\n if (isEditMode) {\n onExitEditMode();\n } else {\n onEnterEditMode();\n }\n }\n };\n\n if (!canEdit) return null;\n\n const getPositionStyles = (): React.CSSProperties => {\n if (currentPosition) {\n return {\n position: 'fixed',\n left: `${currentPosition.x}px`,\n top: `${currentPosition.y}px`,\n transform: 'translate(-50%, -50%)',\n touchAction: 'none'\n };\n }\n \n return {\n position: 'fixed',\n ...position,\n touchAction: isMobile ? 'none' : 'auto'\n };\n };\n\n const getVariantClass = () => {\n if (isSaving) return styles.primary;\n if (isEditMode) {\n return hasUnsavedChanges ? styles.success : styles.secondary;\n }\n return styles.primary;\n };\n\n const getIcon = () => {\n if (isSaving) {\n return <div className={styles.loader} />;\n }\n if (isEditMode) {\n return hasUnsavedChanges ? <Check size={24} /> : <X size={24} />;\n }\n return <Edit size={24} />;\n };\n\n const getAriaLabel = () => {\n if (isSaving) return \"Saving changes\";\n if (isEditMode) {\n return hasUnsavedChanges ? \"Save and exit edit mode\" : \"Exit edit mode\";\n }\n return \"Enter edit mode\";\n };\n\n return (\n <motion.button\n ref={fabRef}\n className={`${styles.fab} ${getVariantClass()} ${isMobile ? styles.draggable : ''} ${isDragging ? styles.dragging : ''}`}\n style={getPositionStyles()}\n onClick={handleClick}\n onTouchStart={handleTouchStart}\n onTouchMove={handleTouchMove}\n onTouchEnd={handleTouchEnd}\n disabled={isSaving}\n aria-label={getAriaLabel()}\n initial={{ scale: 0, opacity: 0 }}\n animate={{ scale: 1, opacity: 1 }}\n exit={{ scale: 0, opacity: 0 }}\n whileHover={!isSaving && !isDragging ? { scale: 1.1 } : {}}\n whileTap={!isSaving && !isDragging ? { scale: 0.9 } : {}}\n transition={{ \n type: \"spring\", \n stiffness: 260, \n damping: 20\n }}\n >\n {getIcon()}\n </motion.button>\n );\n};","import React, { useState, useEffect, useRef, useCallback } from 'react';\nimport { motion, AnimatePresence } from 'framer-motion';\nimport { FiSearch, FiX, FiFolder, FiUsers, FiBook, FiMessageSquare, FiUserPlus } from 'react-icons/fi';\nimport styles from './styles/SearchBar.module.css';\n\nexport type SearchFilter = 'all' | 'projects' | 'clients' | 'contacts' | 'interactions' | 'team';\n\nexport interface SearchResult {\n id: string;\n type: string;\n title?: string;\n subtitle?: string;\n meta?: string;\n}\n\nexport interface SearchBarProps {\n className?: string;\n placeholder?: string;\n onSearch?: (query: string, filter: SearchFilter) => Promise<SearchResult[]>;\n onResultClick?: (result: SearchResult) => void;\n onClear?: () => void;\n debounceDelay?: number;\n minSearchLength?: number;\n showFilter?: boolean;\n enableKeyboardShortcut?: boolean;\n}\n\nconst filterOptions: { value: SearchFilter; label: string; icon: React.ElementType }[] = [\n { value: 'all', label: 'All', icon: FiSearch },\n { value: 'projects', label: 'Projects', icon: FiFolder },\n { value: 'clients', label: 'Clients', icon: FiUsers },\n { value: 'contacts', label: 'Contacts', icon: FiBook },\n { value: 'interactions', label: 'Interactions', icon: FiMessageSquare },\n { value: 'team', label: 'Team', icon: FiUserPlus },\n];\n\nconst entityIcons = {\n projects: FiFolder,\n clients: FiUsers,\n contacts: FiBook,\n interactions: FiMessageSquare,\n team: FiUserPlus,\n};\n\nexport const SearchBar: React.FC<SearchBarProps> = ({ \n className,\n placeholder = \"Search (Ctrl+Space)...\",\n onSearch,\n onResultClick,\n onClear,\n debounceDelay = 300,\n minSearchLength = 2,\n showFilter = true,\n enableKeyboardShortcut = true\n}) => {\n const [query, setQuery] = useState('');\n const [filter, setFilter] = useState<SearchFilter>('all');\n const [results, setResults] = useState<SearchResult[]>([]);\n const [isLoading, setIsLoading] = useState(false);\n const [isDropdownOpen, setIsDropdownOpen] = useState(false);\n const [highlightedIndex, setHighlightedIndex] = useState(-1);\n const searchRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n const debounceTimerRef = useRef<NodeJS.Timeout>();\n const resultsRef = useRef<HTMLDivElement>(null);\n\n // Perform search with debounce\n const performSearch = useCallback(async (searchQuery: string, searchFilter: SearchFilter) => {\n if (searchQuery.trim().length < minSearchLength) {\n setResults([]);\n setIsDropdownOpen(false);\n return;\n }\n\n if (!onSearch) {\n // If no search handler provided, just show empty results\n setResults([]);\n setIsDropdownOpen(false);\n return;\n }\n\n setIsLoading(true);\n try {\n const searchResults = await onSearch(searchQuery, searchFilter);\n setResults(searchResults);\n setIsDropdownOpen(searchResults.length > 0);\n setHighlightedIndex(-1);\n } catch (error) {\n console.error('Search error:', error);\n setResults([]);\n setIsDropdownOpen(false);\n } finally {\n setIsLoading(false);\n }\n }, [onSearch, minSearchLength]);\n\n // Handle input change with debounce\n useEffect(() => {\n if (debounceTimerRef.current) {\n clearTimeout(debounceTimerRef.current);\n }\n\n if (query.trim()) {\n debounceTimerRef.current = setTimeout(() => {\n performSearch(query, filter);\n }, debounceDelay);\n } else {\n setResults([]);\n setIsDropdownOpen(false);\n }\n\n return () => {\n if (debounceTimerRef.current) {\n clearTimeout(debounceTimerRef.current);\n }\n };\n }, [query, filter, performSearch, debounceDelay]);\n\n // Close dropdown when clicking outside\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (searchRef.current && !searchRef.current.contains(event.target as Node)) {\n setIsDropdownOpen(false);\n setHighlightedIndex(-1);\n }\n };\n\n document.addEventListener('mousedown', handleClickOutside);\n return () => document.removeEventListener('mousedown', handleClickOutside);\n }, []);\n\n // Global keyboard shortcut for search (Ctrl+Space)\n useEffect(() => {\n if (!enableKeyboardShortcut) return;\n\n const handleGlobalKeyDown = (e: KeyboardEvent) => {\n // Ctrl+Space or Cmd+Space to focus search\n if ((e.ctrlKey || e.metaKey) && e.code === 'Space') {\n e.preventDefault();\n inputRef.current?.focus();\n inputRef.current?.select();\n }\n };\n\n document.addEventListener('keydown', handleGlobalKeyDown);\n return () => document.removeEventListener('keydown', handleGlobalKeyDown);\n }, [enableKeyboardShortcut]);\n\n // Auto-scroll to highlighted item\n useEffect(() => {\n if (highlightedIndex >= 0 && resultsRef.current) {\n const highlightedElement = resultsRef.current.querySelector(\n `[data-result-index=\"${highlightedIndex}\"]`\n );\n if (highlightedElement) {\n highlightedElement.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest'\n });\n }\n }\n }, [highlightedIndex]);\n\n // Handle keyboard navigation\n const handleKeyDown = (e: React.KeyboardEvent) => {\n switch (e.key) {\n case 'ArrowDown':\n e.preventDefault();\n if (!isDropdownOpen && results.length > 0) {\n setIsDropdownOpen(true);\n setHighlightedIndex(0);\n } else if (results.length > 0) {\n setHighlightedIndex(prev => \n prev < results.length - 1 ? prev + 1 : 0\n );\n }\n break;\n case 'ArrowUp':\n e.preventDefault();\n if (isDropdownOpen && results.length > 0) {\n setHighlightedIndex(prev => \n prev > 0 ? prev - 1 : results.length - 1\n );\n }\n break;\n case 'Enter':\n e.preventDefault();\n if (!isDropdownOpen && results.length > 0) {\n // If dropdown is closed, open it and select first result\n setIsDropdownOpen(true);\n setHighlightedIndex(0);\n } else if (results.length > 0) {\n // If no item is highlighted, select the first one\n const indexToUse = highlightedIndex >= 0 ? highlightedIndex : 0;\n if (indexToUse < results.length) {\n handleResultClick(results[indexToUse]);\n }\n }\n break;\n case 'Escape':\n setIsDropdownOpen(false);\n setHighlightedIndex(-1);\n inputRef.current?.blur();\n break;\n }\n };\n\n // Handle result click\n const handleResultClick = (result: SearchResult) => {\n if (onResultClick) {\n onResultClick(result);\n }\n setQuery('');\n setIsDropdownOpen(false);\n setHighlightedIndex(-1);\n };\n\n // Clear search\n const handleClear = () => {\n setQuery('');\n setResults([]);\n setIsDropdownOpen(false);\n setHighlightedIndex(-1);\n inputRef.current?.focus();\n if (onClear) {\n onClear();\n }\n };\n\n // Group results by type\n const groupedResults = results.reduce((acc, result) => {\n if (!acc[result.type]) {\n acc[result.type] = [];\n }\n acc[result.type].push(result);\n return acc;\n }, {} as Record<string, SearchResult[]>);\n\n // Highlight matching text\n const highlightMatch = (text: string | undefined, highlight: string) => {\n if (!text || !highlight.trim()) return text || '';\n \n const regex = new RegExp(`(${highlight.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')})`, 'gi');\n const parts = text.split(regex);\n \n return parts.map((part, index) => \n regex.test(part) ? (\n <mark key={index} className={styles.highlight}>{part}</mark>\n ) : (\n part\n )\n );\n };\n\n return (\n <div ref={searchRef} className={`${styles.searchContainer} ${className || ''}`}>\n <div className={styles.searchInputWrapper}>\n <FiSearch className={styles.searchIcon} />\n \n <input\n ref={inputRef}\n type=\"text\"\n value={query}\n onChange={(e) => setQuery(e.target.value)}\n onKeyDown={handleKeyDown}\n onFocus={() => query.trim() && results.length > 0 && setIsDropdownOpen(true)}\n placeholder={placeholder}\n className={styles.searchInput}\n aria-label=\"Search\"\n aria-expanded={isDropdownOpen}\n aria-controls=\"search-results\"\n aria-autocomplete=\"list\"\n />\n\n {query && (\n <motion.button\n className={styles.clearButton}\n onClick={handleClear}\n whileHover={{ scale: 1.1 }}\n whileTap={{ scale: 0.9 }}\n initial={{ opacity: 0, scale: 0.8 }}\n animate={{ opacity: 1, scale: 1 }}\n exit={{ opacity: 0, scale: 0.8 }}\n >\n <FiX />\n </motion.button>\n )}\n\n {showFilter && (\n <select\n value={filter}\n onChange={(e) => setFilter(e.target.value as SearchFilter)}\n className={styles.filterSelect}\n aria-label=\"Filter search results\"\n >\n {filterOptions.map(option => (\n <option key={option.value} value={option.value}>\n {option.label}\n </option>\n ))}\n </select>\n )}\n </div>\n\n <AnimatePresence>\n {isDropdownOpen && (\n <motion.div\n ref={resultsRef}\n id=\"search-results\"\n className={styles.resultsDropdown}\n initial={{ opacity: 0, y: -10 }}\n animate={{ opacity: 1, y: 0 }}\n exit={{ opacity: 0, y: -10 }}\n transition={{ duration: 0.2 }}\n >\n {isLoading ? (\n <div className={styles.loadingState}>\n <div className={styles.spinner} />\n <span>Searching...</span>\n </div>\n ) : results.length === 0 ? (\n <div className={styles.emptyState}>\n No results found for \"{query}\"\n </div>\n ) : (\n <div className={styles.resultsGroups}>\n {Object.entries(groupedResults).map(([type, groupResults]) => {\n const Icon = entityIcons[type as keyof typeof entityIcons];\n return (\n <div key={type} className={styles.resultGroup}>\n <div className={styles.groupHeader}>\n {Icon && <Icon className={styles.groupIcon} />}\n <span className={styles.groupTitle}>\n {type.charAt(0).toUpperCase() + type.slice(1)}\n </span>\n <span className={styles.groupCount}>\n {groupResults.length}\n </span>\n </div>\n <div className={styles.groupResults}>\n {groupResults.map((result) => {\n const globalIndex = results.indexOf(result);\n return (\n <motion.button\n key={`${result.type}-${result.id}`}\n data-result-index={globalIndex}\n className={`${styles.resultItem} ${\n highlightedIndex === globalIndex ? styles.highlighted : ''\n }`}\n onClick={() => handleResultClick(result)}\n whileHover={{ x: 4 }}\n onMouseEnter={() => setHighlightedIndex(globalIndex)}\n >\n <div className={styles.resultContent}>\n <div className={styles.resultTitle}>\n {highlightMatch(result.title || 'Untitled', query)}\n </div>\n {result.subtitle && (\n <div className={styles.resultSubtitle}>\n {highlightMatch(result.subtitle, query)}\n </div>\n )}\n </div>\n {result.meta && (\n <div className={styles.resultMeta}>\n {result.meta}\n </div>\n )}\n </motion.button>\n );\n })}\n </div>\n </div>\n );\n })}\n </div>\n )}\n </motion.div>\n )}\n </AnimatePresence>\n </div>\n );\n};","import { useState, useEffect } from \"react\";\nimport { FiX } from \"react-icons/fi\";\nimport styles from \"./TimePickerModal.module.css\";\n\ninterface TimePickerModalProps {\n isOpen: boolean;\n onClose: () => void;\n value: string;\n onChange: (time: string) => void;\n}\n\nexport function TimePickerModal({ isOpen, onClose, value, onChange }: TimePickerModalProps) {\n const [hours, minutes] = value ? value.split(':').map(Number) : [12, 0];\n const [selectedHour, setSelectedHour] = useState(hours);\n const [selectedMinute, setSelectedMinute] = useState(minutes);\n \n useEffect(() => {\n if (value) {\n const [h, m] = value.split(':').map(Number);\n setSelectedHour(h);\n setSelectedMinute(m);\n }\n }, [value]);\n \n const handleConfirm = () => {\n const formattedHour = selectedHour.toString().padStart(2, '0');\n const formattedMinute = selectedMinute.toString().padStart(2, '0');\n onChange(`${formattedHour}:${formattedMinute}`);\n onClose();\n };\n \n if (!isOpen) return null;\n \n return (\n <div className={styles.modalOverlay} onClick={onClose}>\n <div className={styles.modalContent} onClick={(e) => e.stopPropagation()}>\n <div className={styles.modalHeader}>\n <h3>Select Time</h3>\n <button \n className={styles.closeButton} \n onClick={onClose}\n aria-label=\"Close\"\n >\n <FiX />\n </button>\n </div>\n \n <div className={styles.timeDisplay}>\n {selectedHour.toString().padStart(2, '0')}:{selectedMinute.toString().padStart(2, '0')}\n </div>\n \n <div className={styles.pickerContainer}>\n <div className={styles.pickerColumn}>\n <div className={styles.pickerLabel}>Hours</div>\n <div className={styles.pickerScroll}>\n {Array.from({ length: 24 }, (_, i) => (\n <button\n key={i}\n className={`${styles.pickerItem} ${selectedHour === i ? styles.selected : ''}`}\n onClick={() => setSelectedHour(i)}\n >\n {i.toString().padStart(2, '0')}\n </button>\n ))}\n </div>\n </div>\n \n <div className={styles.pickerDivider}>:</div>\n \n <div className={styles.pickerColumn}>\n <div className={styles.pickerLabel}>Minutes</div>\n <div className={styles.pickerScroll}>\n {Array.from({ length: 60 }, (_, i) => (\n <button\n key={i}\n className={`${styles.pickerItem} ${selectedMinute === i ? styles.selected : ''}`}\n onClick={() => setSelectedMinute(i)}\n >\n {i.toString().padStart(2, '0')}\n </button>\n ))}\n </div>\n </div>\n </div>\n \n <div className={styles.modalActions}>\n <button \n className={styles.cancelButton}\n onClick={onClose}\n >\n Cancel\n </button>\n <button \n className={styles.confirmButton}\n onClick={handleConfirm}\n >\n Confirm\n </button>\n </div>\n </div>\n </div>\n );\n}","import { useState } from \"react\";\nimport { FiClock } from \"react-icons/fi\";\nimport { TimePickerModal } from \"./TimePickerModal\";\nimport styles from \"./TimeInput.module.css\";\n\nexport interface TimeInputProps {\n label: string;\n value: string;\n onChange: (newValue: string) => void;\n placeholder?: string;\n onFocus?: () => void;\n onBlur?: () => void;\n error?: boolean;\n success?: boolean;\n loading?: boolean;\n disabled?: boolean;\n required?: boolean;\n}\n\nexport function TimeInput({ \n label, \n value, \n onChange, \n placeholder = \"14:30\",\n onFocus, \n onBlur,\n error = false,\n success = false,\n loading = false,\n disabled = false,\n required = false\n}: Readonly<TimeInputProps>) {\n const [showPicker, setShowPicker] = useState(false);\n\n const formatTime24 = (time: string) => {\n if (!time) return '';\n \n let cleanTime = time.replace(/[^\\d:]/g, '');\n \n const colonCount = (cleanTime.match(/:/g) || []).length;\n if (colonCount > 1) {\n cleanTime = cleanTime.replace(/:/g, '');\n if (cleanTime.length >= 3) {\n cleanTime = cleanTime.substring(0, 2) + ':' + cleanTime.substring(2);\n }\n }\n \n if (cleanTime.length === 3 && !cleanTime.includes(':')) {\n cleanTime = cleanTime.substring(0, 2) + ':' + cleanTime.substring(2);\n } else if (cleanTime.length === 4 && !cleanTime.includes(':')) {\n cleanTime = cleanTime.substring(0, 2) + ':' + cleanTime.substring(2);\n }\n \n if (cleanTime.includes(':')) {\n const parts = cleanTime.split(':');\n let hours = parts[0];\n let minutes = parts[1] || '';\n \n hours = hours.substring(0, 2);\n \n if (hours.length === 2) {\n const hourNum = parseInt(hours);\n if (hourNum > 23) {\n hours = '23';\n }\n }\n \n minutes = minutes.substring(0, 2);\n \n if (minutes.length === 2) {\n const minNum = parseInt(minutes);\n if (minNum > 59) {\n minutes = '59';\n }\n }\n \n cleanTime = hours + (minutes.length > 0 ? ':' + minutes : ':');\n }\n \n return cleanTime.substring(0, 5);\n };\n\n const handleTextChange = (inputValue: string) => {\n const formattedTime = formatTime24(inputValue);\n onChange(formattedTime);\n };\n\n const handleClockClick = () => {\n if (!disabled && !loading) {\n setShowPicker(true);\n }\n };\n\n const getContainerClassName = () => {\n const classes = [styles.timeInput];\n if (error) classes.push(styles.error);\n if (success) classes.push(styles.success);\n if (loading) classes.push(styles.loading);\n if (disabled) classes.push(styles.disabled);\n return classes.join(' ');\n };\n\n return (\n <>\n <div className={getContainerClassName()}>\n <label className={styles.label}>\n {label}\n {required && <span className={styles.required}>*</span>}\n </label>\n <div className={styles.inputWrapper}>\n <input\n type=\"text\"\n value={value}\n onChange={(e) => handleTextChange(e.target.value)}\n onFocus={onFocus}\n onBlur={onBlur}\n placeholder={placeholder}\n className={styles.textInput}\n maxLength={5}\n disabled={disabled || loading}\n aria-invalid={error}\n aria-required={required}\n inputMode=\"numeric\"\n pattern=\"[0-9:]*\"\n />\n <button\n type=\"button\"\n onClick={handleClockClick}\n className={styles.clockButton}\n title=\"Open time picker\"\n disabled={disabled || loading}\n aria-label=\"Open time picker\"\n >\n <FiClock size={20} />\n </button>\n </div>\n </div>\n \n <TimePickerModal\n isOpen={showPicker}\n onClose={() => setShowPicker(false)}\n value={value}\n onChange={onChange}\n />\n </>\n );\n}","import React, { createContext, useContext, useState, useEffect } from 'react';\n\nexport type Theme = 'light' | 'dark' | 'lossito' | 'lossito-dark' | 'dmood' | 'dmood-dark';\n\ninterface ThemeContextType {\n theme: Theme;\n setTheme: (theme: Theme) => void;\n toggleTheme: () => void;\n}\n\nconst ThemeContext = createContext<ThemeContextType | undefined>(undefined);\n\nexport const useTheme = () => {\n const context = useContext(ThemeContext);\n if (!context) {\n throw new Error('useTheme must be used within a ThemeProvider');\n }\n return context;\n};\n\ninterface ThemeProviderProps {\n children: React.ReactNode;\n defaultTheme?: Theme;\n storageKey?: string;\n}\n\nexport const ThemeProvider: React.FC<ThemeProviderProps> = ({\n children,\n defaultTheme = 'light',\n storageKey = 'app-theme',\n}) => {\n const [theme, setThemeState] = useState<Theme>(() => {\n // Check localStorage first\n const stored = localStorage.getItem(storageKey);\n if (stored && ['light', 'dark', 'lossito', 'lossito-dark', 'dmood', 'dmood-dark'].includes(stored)) {\n return stored as Theme;\n }\n // Check system preference\n if (window.matchMedia('(prefers-color-scheme: dark)').matches) {\n return 'dark';\n }\n return defaultTheme;\n });\n\n const setTheme = (newTheme: Theme) => {\n setThemeState(newTheme);\n localStorage.setItem(storageKey, newTheme);\n };\n\n const toggleTheme = () => {\n const themeOrder: Theme[] = ['light', 'dark', 'lossito', 'lossito-dark', 'dmood', 'dmood-dark'];\n const currentIndex = themeOrder.indexOf(theme);\n const nextIndex = (currentIndex + 1) % themeOrder.length;\n setTheme(themeOrder[nextIndex]);\n };\n\n useEffect(() => {\n const root = document.documentElement;\n \n // Apply theme attribute\n root.setAttribute('data-theme', theme);\n \n // Apply dark class if needed\n if (theme.includes('dark')) {\n root.classList.add('dark');\n } else {\n root.classList.remove('dark');\n }\n }, [theme]);\n\n // Listen for system theme changes\n useEffect(() => {\n const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n const handleChange = (e: MediaQueryListEvent) => {\n const stored = localStorage.getItem(storageKey);\n if (!stored) {\n setThemeState(e.matches ? 'dark' : 'light');\n }\n };\n\n mediaQuery.addEventListener('change', handleChange);\n return () => mediaQuery.removeEventListener('change', handleChange);\n }, [storageKey]);\n\n return (\n <ThemeContext.Provider value={{ theme, setTheme, toggleTheme }}>\n {children}\n </ThemeContext.Provider>\n );\n};","import React from 'react';\nimport { motion } from 'framer-motion';\nimport { FiSun, FiMoon } from 'react-icons/fi';\nimport { useTheme, Theme } from '../../organisms/ThemeProvider/ThemeProvider';\nimport styles from './ThemeSwitcher.module.css';\n\ninterface ThemeSwitcherProps {\n variant?: 'button' | 'dropdown' | 'toggle';\n showLabel?: boolean;\n className?: string;\n}\n\nexport const ThemeSwitcher: React.FC<ThemeSwitcherProps> = ({\n variant = 'button',\n showLabel = false,\n className = '',\n}) => {\n const { theme, setTheme } = useTheme();\n\n const themes: { value: Theme; label: string; icon: React.ReactNode }[] = [\n { value: 'light', label: 'Light', icon: <FiSun /> },\n { value: 'dark', label: 'Dark', icon: <FiMoon /> },\n { value: 'lossito', label: 'Lossito Light', icon: '✨' },\n { value: 'lossito-dark', label: 'Lossito Dark', icon: '🌑' },\n { value: 'dmood', label: 'Dmood Light', icon: '💙' },\n { value: 'dmood-dark', label: 'Dmood Dark', icon: '🌌' },\n ];\n\n const currentThemeIndex = themes.findIndex(t => t.value === theme);\n const currentTheme = themes[currentThemeIndex];\n\n if (variant === 'toggle') {\n // Simple toggle between light and dark\n const isDark = theme.includes('dark');\n return (\n <motion.button\n className={`${styles.toggle} ${className}`}\n onClick={() => setTheme(isDark ? 'light' : 'dark')}\n whileTap={{ scale: 0.95 }}\n aria-label=\"Toggle theme\"\n >\n <motion.div\n className={styles.toggleTrack}\n animate={{ backgroundColor: isDark ? 'var(--color-primary)' : 'var(--color-border)' }}\n >\n <motion.div\n className={styles.toggleThumb}\n animate={{ x: isDark ? 24 : 0 }}\n transition={{ type: 'spring', stiffness: 500, damping: 30 }}\n >\n {isDark ? <FiMoon size={14} /> : <FiSun size={14} />}\n </motion.div>\n </motion.div>\n {showLabel && <span className={styles.label}>{isDark ? 'Dark' : 'Light'}</span>}\n </motion.button>\n );\n }\n\n if (variant === 'dropdown') {\n return (\n <div className={`${styles.dropdown} ${className}`}>\n <motion.button\n className={styles.dropdownTrigger}\n whileTap={{ scale: 0.98 }}\n >\n {currentTheme.icon}\n {showLabel && <span className={styles.label}>{currentTheme.label}</span>}\n </motion.button>\n <motion.div\n className={styles.dropdownMenu}\n initial={{ opacity: 0, y: -10 }}\n animate={{ opacity: 1, y: 0 }}\n >\n {themes.map((t) => (\n <motion.button\n key={t.value}\n className={`${styles.dropdownItem} ${theme === t.value ? styles.active : ''}`}\n onClick={() => setTheme(t.value)}\n whileHover={{ x: 4 }}\n whileTap={{ scale: 0.98 }}\n >\n <span className={styles.icon}>{t.icon}</span>\n <span className={styles.text}>{t.label}</span>\n </motion.button>\n ))}\n </motion.div>\n </div>\n );\n }\n\n // Default button variant - cycles through themes\n return (\n <motion.button\n className={`${styles.button} ${className}`}\n onClick={() => {\n const nextIndex = (currentThemeIndex + 1) % themes.length;\n setTheme(themes[nextIndex].value);\n }}\n whileTap={{ scale: 0.95 }}\n whileHover={{ scale: 1.05 }}\n aria-label={`Current theme: ${currentTheme.label}. Click to change.`}\n >\n <motion.div\n key={theme}\n initial={{ rotate: -180, opacity: 0 }}\n animate={{ rotate: 0, opacity: 1 }}\n exit={{ rotate: 180, opacity: 0 }}\n transition={{ duration: 0.3 }}\n className={styles.iconWrapper}\n >\n {currentTheme.icon}\n </motion.div>\n {showLabel && <span className={styles.label}>{currentTheme.label}</span>}\n </motion.button>\n );\n};","import React, { useState, useEffect, useMemo } from 'react';\nimport { motion, AnimatePresence } from 'framer-motion';\nimport { FiMenu, FiX } from 'react-icons/fi';\nimport { IconType } from 'react-icons';\nimport desktopStyles from './styles/Navbar.module.css';\nimport mobileStyles from './styles/Navbar.mobile.module.css';\n\nexport interface NavItem {\n id: string;\n label: string;\n icon?: IconType;\n href?: string;\n onClick?: () => void;\n isActive?: boolean;\n badge?: string | number;\n children?: NavItem[];\n}\n\nexport interface NavbarProps {\n items: NavItem[];\n logo?: {\n src?: string;\n alt?: string;\n text?: string;\n subtitle?: string;\n };\n onItemClick?: (item: NavItem) => void;\n variant?: 'sidebar' | 'top' | 'minimal';\n isMobile?: boolean;\n footer?: React.ReactNode;\n className?: string;\n}\n\nexport const Navbar: React.FC<NavbarProps> = ({\n items,\n logo,\n onItemClick,\n variant = 'sidebar',\n isMobile = false,\n footer,\n className = ''\n}) => {\n const styles = useMemo(() => isMobile ? mobileStyles : desktopStyles, [isMobile]);\n const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false);\n const [expandedItems, setExpandedItems] = useState<Set<string>>(new Set());\n\n // Close mobile menu when screen size changes\n useEffect(() => {\n const handleResize = () => {\n if (window.innerWidth > 768) {\n setIsMobileMenuOpen(false);\n }\n };\n \n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n\n const toggleMobileMenu = () => {\n setIsMobileMenuOpen(!isMobileMenuOpen);\n };\n\n const toggleExpanded = (itemId: string) => {\n setExpandedItems(prev => {\n const newSet = new Set(prev);\n if (newSet.has(itemId)) {\n newSet.delete(itemId);\n } else {\n newSet.add(itemId);\n }\n return newSet;\n });\n };\n\n const handleItemClick = (item: NavItem) => {\n if (item.children && item.children.length > 0) {\n toggleExpanded(item.id);\n } else {\n if (item.onClick) {\n item.onClick();\n }\n if (onItemClick) {\n onItemClick(item);\n }\n if (isMobile || isMobileMenuOpen) {\n setIsMobileMenuOpen(false);\n }\n }\n };\n\n const renderNavItem = (item: NavItem, index: number, depth: number = 0) => {\n const Icon = item.icon;\n const isExpanded = expandedItems.has(item.id);\n const hasChildren = item.children && item.children.length > 0;\n\n return (\n <motion.li\n key={item.id}\n className={`${styles.navItem} ${depth > 0 ? styles.subNavItem : ''}`}\n initial={{ opacity: 0, x: -20 }}\n animate={{ opacity: 1, x: 0 }}\n transition={{ delay: index * 0.05 }}\n >\n <motion.button\n className={`${styles.navLink} ${item.isActive ? styles.active : ''}`}\n onClick={() => handleItemClick(item)}\n whileHover={{ x: 5 }}\n whileTap={{ scale: 0.98 }}\n >\n {item.isActive && (\n <motion.div\n className={styles.activeBackground}\n layoutId=\"activeNavBackground\"\n initial={false}\n transition={{\n type: \"spring\",\n stiffness: 500,\n damping: 35\n }}\n />\n )}\n \n {Icon && (\n <Icon className={`${styles.navIcon} ${item.isActive ? styles.activeIcon : ''}`} />\n )}\n \n <span className={`${styles.navText} ${item.isActive ? styles.activeText : ''}`}>\n {item.label}\n </span>\n \n {item.badge && (\n <span className={styles.navBadge}>{item.badge}</span>\n )}\n \n {hasChildren && (\n <motion.span\n className={styles.chevron}\n animate={{ rotate: isExpanded ? 180 : 0 }}\n transition={{ duration: 0.2 }}\n >\n ▼\n </motion.span>\n )}\n </motion.button>\n\n {hasChildren && (\n <AnimatePresence>\n {isExpanded && (\n <motion.ul\n className={styles.subNavList}\n initial={{ height: 0, opacity: 0 }}\n animate={{ height: 'auto', opacity: 1 }}\n exit={{ height: 0, opacity: 0 }}\n transition={{ duration: 0.2 }}\n >\n {item.children!.map((child, childIndex) =>\n renderNavItem(child, childIndex, depth + 1)\n )}\n </motion.ul>\n )}\n </AnimatePresence>\n )}\n </motion.li>\n );\n };\n\n const navContent = (\n <>\n {logo && (\n <motion.div\n className={styles.navLogo}\n initial={{ opacity: 0, y: -20 }}\n animate={{ opacity: 1, y: 0 }}\n transition={{ delay: 0.1 }}\n >\n <div className={styles.logoContainer}>\n {logo.src ? (\n <motion.img\n src={logo.src}\n alt={logo.alt || 'Logo'}\n className={styles.logoImage}\n whileHover={{ scale: 1.05 }}\n transition={{ type: \"spring\", stiffness: 400 }}\n />\n ) : (\n <div className={styles.logoPlaceholder}>\n {logo.text?.charAt(0) || 'L'}\n </div>\n )}\n \n {(logo.text || logo.subtitle) && (\n <div className={styles.logoContent}>\n {logo.text && (\n <span className={styles.logoText}>{logo.text}</span>\n )}\n {logo.subtitle && (\n <span className={styles.logoSubtitle}>{logo.subtitle}</span>\n )}\n </div>\n )}\n </div>\n </motion.div>\n )}\n\n <ul className={styles.navList}>\n {items.map((item, index) => renderNavItem(item, index))}\n </ul>\n\n {footer && (\n <motion.div\n className={styles.navFooter}\n initial={{ opacity: 0, y: 20 }}\n animate={{ opacity: 1, y: 0 }}\n transition={{ delay: 0.3 }}\n >\n {footer}\n </motion.div>\n )}\n </>\n );\n\n if (variant === 'top') {\n return (\n <motion.nav\n className={`${styles.navbar} ${styles.navbarTop} ${className}`}\n initial={{ y: -100 }}\n animate={{ y: 0 }}\n transition={{ type: \"spring\", stiffness: 300, damping: 30 }}\n >\n {navContent}\n </motion.nav>\n );\n }\n\n return (\n <>\n {/* Mobile menu button */}\n {(isMobile || window.innerWidth <= 768) && (\n <motion.button\n className={styles.mobileMenuButton}\n onClick={toggleMobileMenu}\n aria-label=\"Toggle navigation menu\"\n whileTap={{ scale: 0.9 }}\n >\n <AnimatePresence mode=\"wait\">\n {isMobileMenuOpen ? (\n <motion.div\n key=\"close\"\n initial={{ rotate: -90, opacity: 0 }}\n animate={{ rotate: 0, opacity: 1 }}\n exit={{ rotate: 90, opacity: 0 }}\n >\n <FiX />\n </motion.div>\n ) : (\n <motion.div\n key=\"menu\"\n initial={{ rotate: 90, opacity: 0 }}\n animate={{ rotate: 0, opacity: 1 }}\n exit={{ rotate: -90, opacity: 0 }}\n >\n <FiMenu />\n </motion.div>\n )}\n </AnimatePresence>\n </motion.button>\n )}\n\n {/* Mobile backdrop */}\n <AnimatePresence>\n {isMobileMenuOpen && (\n <motion.div\n className={styles.mobileBackdrop}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n onClick={() => setIsMobileMenuOpen(false)}\n />\n )}\n </AnimatePresence>\n\n {/* Navbar */}\n <motion.nav\n className={`${styles.navbar} ${styles[`navbar${variant.charAt(0).toUpperCase() + variant.slice(1)}`]} ${isMobileMenuOpen ? styles.mobileMenuOpen : ''} ${className}`}\n initial={variant === 'sidebar' ? { x: -300 } : { opacity: 0 }}\n animate={variant === 'sidebar' ? { x: isMobileMenuOpen || !isMobile ? 0 : -300 } : { opacity: 1 }}\n transition={{ type: \"spring\", stiffness: 300, damping: 30 }}\n >\n {navContent}\n </motion.nav>\n </>\n );\n};","import React, { useState, useEffect, useMemo, useRef } from 'react'\nimport * as d3 from 'd3'\nimport styles from './MoodChart.module.css'\n\ninterface MoodNoteData {\n date: string\n rating: number\n tag?: string\n comment?: string\n}\n\ninterface ParsedMoodData extends Omit<MoodNoteData, 'tag'> {\n tags: string[]\n}\n\ninterface MoodChartProps {\n moodData: MoodNoteData[]\n width?: number\n height?: number\n}\n\ntype ProcessedMoodData = Omit<ParsedMoodData, 'date'> & { date: Date }\n\nexport const MoodChart: React.FC<MoodChartProps> = ({ \n moodData, \n width = 800, \n height = 400 \n}) => {\n const svgRef = useRef<SVGSVGElement>(null)\n const containerRef = useRef<HTMLDivElement>(null)\n const [selectedMood, setSelectedMood] = useState<ProcessedMoodData | null>(null)\n const [tooltipPosition, setTooltipPosition] = useState({ x: 0, y: 0 })\n \n const margin = { top: 20, right: 20, bottom: 50, left: 40 }\n const chartWidth = width - margin.left - margin.right\n const chartHeight = height - margin.top - margin.bottom\n\n const processedData = useMemo(() => {\n return moodData\n .map(mood => {\n // Parse comma-separated tags\n const tags = mood.tag \n ? mood.tag.split(',').map(t => t.trim()).filter(t => t)\n : []\n \n return {\n date: new Date(mood.date),\n rating: mood.rating,\n tags,\n comment: mood.comment\n }\n })\n .filter(mood => \n !isNaN(mood.date.getTime()) && \n isFinite(mood.rating)\n ) as ProcessedMoodData[]\n }, [moodData])\n\n const colorScale = useMemo(() => {\n return d3.scaleLinear<string>()\n .domain([1, 5, 10])\n .range(['#FF6B6B', '#FFD93D', '#6BCB77'])\n .clamp(true)\n }, [])\n\n useEffect(() => {\n if (!svgRef.current || processedData.length === 0) return\n\n const svg = d3.select(svgRef.current)\n svg.selectAll('*').remove()\n\n const g = svg.append('g')\n .attr('transform', `translate(${margin.left},${margin.top})`)\n\n const extentDates = d3.extent(processedData, d => d.date) as [Date, Date]\n if (!extentDates[0] || !extentDates[1]) return\n\n const xScale = d3.scaleTime()\n .domain(extentDates)\n .range([0, chartWidth])\n\n const yScale = d3.scaleLinear()\n .domain([1, 10])\n .range([chartHeight, 0])\n\n const line = d3.line<ProcessedMoodData>()\n .x(d => xScale(d.date))\n .y(d => yScale(d.rating))\n .curve(d3.curveMonotoneX)\n\n g.selectAll('.grid-line-y')\n .data(yScale.ticks(5))\n .enter().append('line')\n .attr('class', styles.gridLine)\n .attr('x1', 0)\n .attr('y1', d => yScale(d))\n .attr('x2', chartWidth)\n .attr('y2', d => yScale(d))\n\n g.append('path')\n .datum(processedData)\n .attr('class', styles.line)\n .attr('d', line)\n\n g.append('g')\n .attr('class', styles.xAxis)\n .attr('transform', `translate(0,${chartHeight})`)\n .call(d3.axisBottom(xScale)\n .tickFormat(d => d3.timeFormat('%m/%d')(d as Date)))\n\n g.append('g')\n .attr('class', styles.yAxis)\n .call(d3.axisLeft(yScale))\n\n g.selectAll('.mood-circle')\n .data(processedData)\n .enter().append('circle')\n .attr('class', styles.dataPoint)\n .attr('cx', d => xScale(d.date))\n .attr('cy', d => yScale(d.rating))\n .attr('r', 5)\n .attr('fill', d => colorScale(d.rating))\n .style('cursor', 'pointer')\n .on('mouseenter', (event, d) => {\n const rect = svgRef.current?.getBoundingClientRect()\n if (rect) {\n setTooltipPosition({ \n x: event.clientX - rect.left + 20, \n y: event.clientY - rect.top - 10 \n })\n }\n setSelectedMood(d)\n \n d3.select(event.currentTarget)\n .transition()\n .duration(200)\n .attr('r', 8)\n })\n .on('mouseleave', (event) => {\n // Use a timeout to ensure the event fires\n setTimeout(() => {\n setSelectedMood(null)\n }, 0)\n \n d3.select(event.currentTarget)\n .transition()\n .duration(200)\n .attr('r', 5)\n })\n\n }, [processedData, chartWidth, chartHeight, colorScale, margin])\n \n // Clean up tooltip on unmount\n useEffect(() => {\n return () => {\n setSelectedMood(null)\n }\n }, [])\n \n\n return (\n <div className={styles.container} ref={containerRef} onMouseLeave={() => setSelectedMood(null)}>\n <svg \n ref={svgRef}\n width={width}\n height={height}\n className={styles.chart}\n />\n {selectedMood && (\n <div \n className={styles.tooltip}\n style={{\n position: 'absolute',\n pointerEvents: 'none',\n left: tooltipPosition.x,\n top: tooltipPosition.y,\n zIndex: 1000\n }}\n >\n <div className={styles.tooltipHeader}>\n <div className={styles.tooltipDate}>\n {selectedMood.date.toLocaleDateString()}\n </div>\n <div className={styles.tooltipRating}>\n <span className={styles.ratingValue}>{selectedMood.rating}</span>\n <span className={styles.ratingMax}>/10</span>\n </div>\n </div>\n {selectedMood.tags.length > 0 && (\n <div className={styles.tooltipTags}>\n {selectedMood.tags.map((tag, index) => (\n <span key={index} className={styles.tag}>\n {tag}\n </span>\n ))}\n </div>\n )}\n {selectedMood.comment && (\n <div className={styles.tooltipComment}>\n {selectedMood.comment}\n </div>\n )}\n </div>\n )}\n </div>\n )\n}","import React, { useState, useEffect, useRef, useMemo } from 'react'\nimport * as d3 from 'd3'\nimport styles from './QuantifiableHabitsChart.module.css'\n\nexport type ViewType = 'daily' | 'weekly' | 'monthly' | 'quarterly'\n\ninterface AggregatedData {\n dates: string[]\n [habit: string]: number[] | string[]\n}\n\ninterface ChartData {\n dates: string[]\n [habit: string]: number[] | string[]\n}\n\ninterface QuantifiableHabitsChartProps {\n data: ChartData\n width?: number\n height?: number\n defaultViewType?: ViewType\n periodType?: 'week' | 'month' | 'quarter' | 'year' | 'allTime'\n habitColors?: { [key: string]: string }\n habitEmojis?: { [key: string]: string }\n}\n\n// Default colors as fallback\nconst DEFAULT_HABIT_COLORS: { [key: string]: string } = {\n 'Exercise': '#6BCB77',\n 'Meditation': '#4D96FF',\n 'Reading': '#FFB319',\n 'Water': '#00D9FF',\n 'Steps': '#FF6B6B',\n 'Sleep': '#9B59B6',\n 'Calories': '#FF9F1C',\n 'Study': '#C774E8'\n}\n\nexport const QuantifiableHabitsChart: React.FC<QuantifiableHabitsChartProps> = ({\n data,\n width = 800,\n height = 400,\n defaultViewType = 'daily',\n periodType = 'month',\n habitColors: customHabitColors = {},\n habitEmojis: customHabitEmojis = {}\n}) => {\n const svgRef = useRef<SVGSVGElement>(null)\n const [viewType, setViewType] = useState<ViewType>(defaultViewType)\n const [activeHabits, setActiveHabits] = useState<string[]>([])\n const [hoveredHabit, setHoveredHabit] = useState<string | null>(null)\n\n const margin = { top: 20, right: 20, bottom: 50, left: 50 }\n const chartWidth = width - margin.left - margin.right\n const chartHeight = height - margin.top - margin.bottom\n\n const habits = useMemo(() => \n Object.keys(data).filter(key => key !== 'dates'),\n [data]\n )\n\n useEffect(() => {\n setActiveHabits(habits)\n }, [habits])\n\n const availableViewTypes = useMemo(() => {\n switch (periodType) {\n case 'week':\n return ['daily'] as ViewType[]\n case 'month':\n return ['daily', 'weekly'] as ViewType[]\n case 'quarter':\n return ['weekly', 'monthly'] as ViewType[]\n case 'year':\n return ['daily', 'weekly', 'monthly', 'quarterly'] as ViewType[]\n case 'allTime':\n return ['monthly', 'quarterly'] as ViewType[]\n default:\n return ['daily'] as ViewType[]\n }\n }, [periodType])\n\n const getColor = (habit: string): string => {\n // First check custom colors, then defaults, then generate deterministic color\n return customHabitColors[habit] || DEFAULT_HABIT_COLORS[habit] || `hsl(${Math.abs(habit.split('').reduce((a, b) => a + b.charCodeAt(0), 0)) % 360}, 70%, 50%)`\n }\n\n // Helper function to get ISO week number\n const getISOWeekNumber = (date: Date) => {\n const d = new Date(date)\n d.setHours(0, 0, 0, 0)\n d.setDate(d.getDate() + 3 - (d.getDay() + 6) % 7)\n const week1 = new Date(d.getFullYear(), 0, 4)\n return 1 + Math.round(((d.getTime() - week1.getTime()) / 86400000 - 3 + (week1.getDay() + 6) % 7) / 7)\n }\n\n // Aggregate data based on view type\n const aggregateData = useMemo((): AggregatedData => {\n if (viewType === 'daily' || !data.dates.length) {\n return data\n }\n\n const aggregated: AggregatedData = { dates: [] }\n const dateGroups: Map<string, number[]> = new Map()\n \n // Group dates by period\n data.dates.forEach((dateStr, index) => {\n const date = new Date(dateStr)\n let groupKey: string\n \n switch (viewType) {\n case 'weekly': {\n // Get ISO week start (Monday)\n const weekStart = new Date(date)\n const day = weekStart.getDay()\n const diff = weekStart.getDate() - day + (day === 0 ? -6 : 1)\n weekStart.setDate(diff)\n // Use the Monday date as the group key to ensure proper sorting\n groupKey = weekStart.toISOString().split('T')[0]\n break\n }\n case 'monthly':\n // Use first day of month for consistent sorting\n groupKey = `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, '0')}-01`\n break\n case 'quarterly': {\n const quarter = Math.floor(date.getMonth() / 3) + 1\n const quarterStartMonth = (quarter - 1) * 3\n // Use first day of quarter for consistent sorting and grouping\n const quarterStart = new Date(date.getFullYear(), quarterStartMonth, 1)\n groupKey = quarterStart.toISOString().split('T')[0]\n break\n }\n default:\n groupKey = dateStr\n }\n \n if (!dateGroups.has(groupKey)) {\n dateGroups.set(groupKey, [])\n }\n dateGroups.get(groupKey)!.push(index)\n })\n \n // Calculate aggregated values - sort dates for proper chronological order\n aggregated.dates = Array.from(dateGroups.keys()).sort()\n \n habits.forEach(habit => {\n aggregated[habit] = aggregated.dates.map(groupKey => {\n const indices = dateGroups.get(groupKey)!\n const values = indices\n .map(i => data[habit][i] as number)\n .filter(v => typeof v === 'number' && !isNaN(v))\n \n if (values.length === 0) return 0\n \n // Calculate average for aggregated periods\n return Math.round(values.reduce((sum, v) => sum + v, 0) / values.length)\n })\n })\n \n return aggregated\n }, [data, viewType, habits])\n\n const toggleHabit = (habit: string) => {\n setActiveHabits(prev =>\n prev.includes(habit)\n ? prev.filter(h => h !== habit)\n : [...prev, habit]\n )\n }\n\n useEffect(() => {\n if (!svgRef.current || aggregateData.dates.length === 0) return\n\n const svg = d3.select(svgRef.current)\n svg.selectAll('*').remove()\n\n const g = svg.append('g')\n .attr('transform', `translate(${margin.left},${margin.top})`)\n\n const dates = aggregateData.dates.map(d => new Date(d))\n \n const xScale = d3.scaleTime()\n .domain(d3.extent(dates) as [Date, Date])\n .range([0, chartWidth])\n\n const maxValue = Math.max(\n ...activeHabits.flatMap(habit => \n (aggregateData[habit] as number[]).filter(v => typeof v === 'number')\n )\n )\n\n const yScale = d3.scaleLinear()\n .domain([0, maxValue * 1.1])\n .range([chartHeight, 0])\n\n g.selectAll('.grid-line-y')\n .data(yScale.ticks(5))\n .enter().append('line')\n .attr('class', styles.gridLine)\n .attr('x1', 0)\n .attr('y1', d => yScale(d))\n .attr('x2', chartWidth)\n .attr('y2', d => yScale(d))\n\n const line = d3.line<[Date, number]>()\n .x(d => xScale(d[0]))\n .y(d => yScale(d[1]))\n .curve(d3.curveMonotoneX)\n\n activeHabits.forEach(habit => {\n const habitData = dates.map((date, i) => \n [date, aggregateData[habit][i]] as [Date, number]\n ).filter(d => typeof d[1] === 'number')\n\n g.append('path')\n .datum(habitData)\n .attr('class', styles.line)\n .attr('d', line)\n .attr('stroke', getColor(habit))\n .attr('opacity', hoveredHabit && hoveredHabit !== habit ? 0.3 : 1)\n\n g.selectAll(`.circle-${habit}`)\n .data(habitData)\n .enter().append('circle')\n .attr('class', styles.dataPoint)\n .attr('cx', d => xScale(d[0]))\n .attr('cy', d => yScale(d[1]))\n .attr('r', 4)\n .attr('fill', getColor(habit))\n .attr('opacity', hoveredHabit && hoveredHabit !== habit ? 0.3 : 1)\n })\n\n // Helper function to get ISO week number\n const getISOWeek = (date: Date) => {\n const d = new Date(date)\n d.setHours(0, 0, 0, 0)\n d.setDate(d.getDate() + 3 - (d.getDay() + 6) % 7)\n const week1 = new Date(d.getFullYear(), 0, 4)\n return 1 + Math.round(((d.getTime() - week1.getTime()) / 86400000 - 3 + (week1.getDay() + 6) % 7) / 7)\n }\n\n // Format x-axis based on view type\n const xAxisFormat = (() => {\n switch (viewType) {\n case 'daily':\n return d3.timeFormat('%Y-%m-%d')\n case 'weekly':\n return (d: Date) => {\n const weekNum = getISOWeek(d)\n return `${d.getFullYear()}-W${weekNum.toString().padStart(2, '0')}`\n }\n case 'monthly':\n return d3.timeFormat('%Y-%m')\n case 'quarterly':\n return (d: Date) => {\n const quarter = Math.floor(d.getMonth() / 3) + 1\n return `${d.getFullYear()}-Q${quarter}`\n }\n default:\n return d3.timeFormat('%Y-%m-%d')\n }\n })()\n\n // Determine number of ticks based on view type and data\n const tickCount = (() => {\n switch (viewType) {\n case 'daily':\n return Math.min(10, aggregateData.dates.length)\n case 'weekly':\n return Math.min(12, aggregateData.dates.length)\n case 'monthly':\n return Math.min(12, aggregateData.dates.length)\n case 'quarterly':\n return aggregateData.dates.length // Show all quarters\n default:\n return undefined\n }\n })()\n\n const xAxisGenerator = d3.axisBottom(xScale)\n .tickFormat(d => xAxisFormat(d as Date))\n \n // Set tick values for quarterly to avoid duplicates\n if (viewType === 'quarterly') {\n xAxisGenerator.tickValues(dates)\n } else if (tickCount) {\n xAxisGenerator.ticks(tickCount)\n }\n \n const xAxis = g.append('g')\n .attr('class', styles.xAxis)\n .attr('transform', `translate(0,${chartHeight})`)\n .call(xAxisGenerator)\n \n // Rotate labels for better readability if needed\n if (viewType === 'daily' || viewType === 'weekly') {\n xAxis.selectAll('text')\n .style('text-anchor', 'end')\n .attr('dx', '-.8em')\n .attr('dy', '.15em')\n .attr('transform', 'rotate(-45)')\n }\n\n g.append('g')\n .attr('class', styles.yAxis)\n .call(d3.axisLeft(yScale))\n\n }, [aggregateData, activeHabits, chartWidth, chartHeight, margin, hoveredHabit, customHabitColors])\n\n // View type icons and labels\n const viewTypeConfig = {\n daily: { icon: '📅', label: 'Daily' },\n weekly: { icon: '📆', label: 'Weekly' },\n monthly: { icon: '🗓️', label: 'Monthly' },\n quarterly: { icon: '📊', label: 'Quarterly' }\n }\n\n return (\n <div className={styles.container}>\n <div className={styles.controls}>\n <div className={styles.viewToggle}>\n {availableViewTypes.map(type => (\n <button\n key={type}\n className={`${styles.viewButton} ${viewType === type ? styles.active : ''}`}\n onClick={() => setViewType(type)}\n title={viewTypeConfig[type].label}\n >\n <span className={styles.viewIcon}>{viewTypeConfig[type].icon}</span>\n <span className={styles.viewLabel}>{viewTypeConfig[type].label}</span>\n </button>\n ))}\n </div>\n </div>\n \n <div className={styles.legend}>\n {habits.map(habit => (\n <button\n key={habit}\n className={`${styles.legendItem} ${!activeHabits.includes(habit) ? styles.inactive : ''}`}\n onClick={() => toggleHabit(habit)}\n onMouseEnter={() => setHoveredHabit(habit)}\n onMouseLeave={() => setHoveredHabit(null)}\n >\n <span className={styles.legendEmoji}>\n {customHabitEmojis[habit] || '📊'}\n </span>\n <span \n className={styles.legendColor}\n style={{ backgroundColor: getColor(habit) }}\n />\n <span className={styles.legendLabel}>{habit}</span>\n </button>\n ))}\n </div>\n\n <svg\n ref={svgRef}\n width={width}\n height={height}\n className={styles.chart}\n />\n </div>\n )\n}","import React, { useEffect, useRef } from 'react'\nimport * as d3 from 'd3'\nimport styles from './SleepChart.module.css'\n\ninterface SleepData {\n date: string\n sleep_time: string | null\n wake_hour: string | null\n}\n\ninterface SleepChartProps {\n sleepData: SleepData[]\n width?: number\n height?: number\n onDateClick?: (date: string) => void\n}\n\nconst parseTimeToDecimal = (time: string): number => {\n const [hours, minutes] = time.split(':').map(Number)\n return hours + minutes / 60\n}\n\nexport const SleepChart: React.FC<SleepChartProps> = ({\n sleepData,\n width = 800,\n height = 300,\n onDateClick\n}) => {\n const svgRef = useRef<SVGSVGElement>(null)\n \n const margin = { top: 20, right: 20, bottom: 40, left: 60 }\n const chartWidth = width - margin.left - margin.right\n const chartHeight = height - margin.top - margin.bottom\n\n useEffect(() => {\n if (!svgRef.current || sleepData.length === 0) return\n\n const svg = d3.select(svgRef.current)\n svg.selectAll('*').remove()\n\n const g = svg.append('g')\n .attr('transform', `translate(${margin.left},${margin.top})`)\n\n const xScale = d3.scaleLinear()\n .domain([18, 42])\n .range([0, chartWidth])\n\n const yDomain = sleepData.map(d => d.date)\n const yScale = d3.scaleBand()\n .domain(yDomain)\n .range([0, chartHeight])\n .paddingInner(0.1)\n .paddingOuter(0.05)\n\n g.selectAll('.grid-line-x')\n .data(d3.range(18, 43, 3))\n .enter().append('line')\n .attr('class', styles.gridLine)\n .attr('x1', d => xScale(d))\n .attr('y1', 0)\n .attr('x2', d => xScale(d))\n .attr('y2', chartHeight)\n\n sleepData.forEach((dayData) => {\n const yValue = yScale(dayData.date)\n if (yValue === undefined) return\n\n const barHeight = yScale.bandwidth()\n const sleepGroup = g.append('g')\n .attr('class', styles.sleepBar)\n .style('cursor', 'pointer')\n .on('click', () => onDateClick?.(dayData.date))\n\n // Handle sleep time and wake hour separately\n let sleepHour = null\n let wakeHour = null\n \n if (dayData.sleep_time) {\n sleepHour = parseTimeToDecimal(dayData.sleep_time)\n if (sleepHour < 18) sleepHour += 24\n }\n \n if (dayData.wake_hour) {\n wakeHour = parseTimeToDecimal(dayData.wake_hour)\n if (sleepHour !== null && wakeHour < sleepHour - 18) {\n wakeHour += 24\n } else if (sleepHour === null && wakeHour < 12) {\n // If no sleep time but wake is in morning, assume it's next day\n wakeHour += 24\n }\n }\n\n // Draw the bar only if both values exist\n if (sleepHour !== null && wakeHour !== null) {\n sleepGroup.append('rect')\n .attr('x', xScale(sleepHour))\n .attr('y', yValue)\n .attr('width', xScale(wakeHour) - xScale(sleepHour))\n .attr('height', barHeight)\n .attr('rx', 4)\n .attr('fill', 'url(#sleepGradient)')\n .attr('opacity', 0.8)\n }\n\n // Draw sleep dot if sleep time exists\n if (sleepHour !== null) {\n sleepGroup.append('circle')\n .attr('cx', xScale(sleepHour))\n .attr('cy', yValue + barHeight / 2)\n .attr('r', 4)\n .attr('fill', '#9B59B6')\n }\n\n // Draw wake dot if wake hour exists\n if (wakeHour !== null) {\n sleepGroup.append('circle')\n .attr('cx', xScale(wakeHour))\n .attr('cy', yValue + barHeight / 2)\n .attr('r', 4)\n .attr('fill', '#3498DB')\n }\n\n sleepGroup.on('mouseenter', function() {\n d3.select(this).select('rect')\n .transition()\n .duration(200)\n .attr('opacity', 1)\n }).on('mouseleave', function() {\n d3.select(this).select('rect')\n .transition()\n .duration(200)\n .attr('opacity', 0.8)\n })\n })\n\n const defs = svg.append('defs')\n const gradient = defs.append('linearGradient')\n .attr('id', 'sleepGradient')\n .attr('x1', '0%')\n .attr('x2', '100%')\n\n gradient.append('stop')\n .attr('offset', '0%')\n .attr('stop-color', '#9B59B6')\n .attr('stop-opacity', 0.8)\n\n gradient.append('stop')\n .attr('offset', '100%')\n .attr('stop-color', '#3498DB')\n .attr('stop-opacity', 0.8)\n\n const xAxisTicks = d3.range(18, 43, 3).map(hour => ({\n value: hour,\n label: (hour % 24).toString().padStart(2, '0') + ':00'\n }))\n\n g.append('g')\n .attr('class', styles.xAxis)\n .attr('transform', `translate(0,${chartHeight})`)\n .call(d3.axisBottom(xScale)\n .tickValues(xAxisTicks.map(t => t.value))\n .tickFormat((d) => {\n const tick = xAxisTicks.find(t => t.value === d)\n return tick ? tick.label : ''\n }))\n\n const yAxisTicks = yDomain.filter((_, i) => i % Math.ceil(yDomain.length / 10) === 0)\n \n g.append('g')\n .attr('class', styles.yAxis)\n .call(d3.axisLeft(yScale)\n .tickValues(yAxisTicks)\n .tickFormat(d => {\n const date = new Date(d)\n return `${(date.getMonth() + 1).toString().padStart(2, '0')}/${date.getDate().toString().padStart(2, '0')}`\n }))\n\n }, [sleepData, chartWidth, chartHeight, margin, onDateClick])\n\n return (\n <div className={styles.container}>\n <div className={styles.header}>\n <h3 className={styles.title}>Sleep Pattern</h3>\n <div className={styles.legend}>\n <div className={styles.legendItem}>\n <span className={styles.sleepDot}></span>\n <span>Sleep Time</span>\n </div>\n <div className={styles.legendItem}>\n <span className={styles.wakeDot}></span>\n <span>Wake Time</span>\n </div>\n </div>\n </div>\n <svg\n ref={svgRef}\n width={width}\n height={height}\n className={styles.chart}\n />\n </div>\n )\n}","import React, { useEffect, useRef, useMemo } from 'react'\nimport * as d3 from 'd3'\nimport styles from './BooleansHeatmap.module.css'\n\ninterface HeatmapChartProps {\n data: { [date: string]: boolean }\n habitName: string\n width?: number\n height?: number\n habitColor?: string\n habitEmoji?: string\n}\n\nconst DAYS_OF_WEEK = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']\nconst MONTHS = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']\n\nexport const BooleansHeatmap: React.FC<HeatmapChartProps> = ({\n data,\n habitName,\n width = 800,\n height = 200,\n habitColor = '#6BCB77',\n habitEmoji = '✓'\n}) => {\n const svgRef = useRef<SVGSVGElement>(null)\n\n const { startDate, endDate, weeksToShow } = useMemo(() => {\n const dates = Object.keys(data).sort()\n if (dates.length === 0) {\n const now = new Date()\n return { \n startDate: now, \n endDate: now, \n weeksToShow: 1 \n }\n }\n \n const start = new Date(dates[0])\n const end = new Date(dates[dates.length - 1])\n const daysDiff = Math.ceil((end.getTime() - start.getTime()) / (1000 * 60 * 60 * 24)) + 1\n const weeksDiff = Math.ceil(daysDiff / 7)\n \n return { \n startDate: start, \n endDate: end, \n weeksToShow: weeksDiff\n }\n }, [data])\n\n useEffect(() => {\n if (!svgRef.current) return\n\n const svg = d3.select(svgRef.current)\n svg.selectAll('*').remove()\n\n const margin = { top: 40, right: 20, bottom: 20, left: 40 }\n const chartWidth = width - margin.left - margin.right\n const chartHeight = height - margin.top - margin.bottom\n\n const cellSize = Math.min(\n Math.floor(chartHeight / 7) - 1,\n Math.floor(chartWidth / weeksToShow) - 1,\n 20\n )\n const cellGap = 2\n\n const g = svg.append('g')\n .attr('transform', `translate(${margin.left},${margin.top})`)\n\n const startDayOffset = (startDate.getDay() + 6) % 7\n\n const monthPositions = new Map<number, number>()\n let currentMonth = startDate.getMonth()\n monthPositions.set(currentMonth, 0)\n\n for (let weekIndex = 0; weekIndex < weeksToShow; weekIndex++) {\n const weekStart = new Date(startDate)\n weekStart.setDate(weekStart.getDate() + weekIndex * 7 - startDayOffset)\n \n if (weekStart.getMonth() !== currentMonth) {\n currentMonth = weekStart.getMonth()\n monthPositions.set(currentMonth, weekIndex)\n }\n }\n\n monthPositions.forEach((weekIndex, month) => {\n g.append('text')\n .attr('x', weekIndex * (cellSize + cellGap))\n .attr('y', -10)\n .attr('class', styles.monthLabel)\n .text(MONTHS[month])\n })\n\n DAYS_OF_WEEK.forEach((day, index) => {\n g.append('text')\n .attr('x', -10)\n .attr('y', index * (cellSize + cellGap) + cellSize / 2)\n .attr('class', styles.dayLabel)\n .attr('text-anchor', 'end')\n .attr('alignment-baseline', 'middle')\n .text(day)\n })\n\n const tooltip = d3.select('body').append('div')\n .attr('class', styles.tooltip)\n .style('opacity', 0)\n .style('position', 'absolute')\n\n const daysToShow = weeksToShow * 7\n let cellsRendered = 0\n \n for (let i = 0; i < daysToShow; i++) {\n const date = new Date(startDate)\n date.setDate(date.getDate() + i - startDayOffset)\n \n if (date < startDate || date > endDate) continue\n \n const dateString = date.toISOString().split('T')[0]\n const dayOfWeek = (date.getDay() + 6) % 7\n const weekIndex = Math.floor((i + startDayOffset) / 7)\n \n const isTrue = dateString in data && data[dateString]\n \n const rect = g.append('rect')\n .attr('x', weekIndex * (cellSize + cellGap))\n .attr('y', dayOfWeek * (cellSize + cellGap))\n .attr('width', cellSize)\n .attr('height', cellSize)\n .attr('rx', 3)\n .attr('class', styles.cell)\n .attr('data-date', dateString)\n .attr('data-value', isTrue ? 'true' : 'false')\n .style('fill', isTrue ? habitColor : '#4D4D4DFF')\n \n cellsRendered++\n \n rect.on('mouseover', function(event) {\n tooltip.transition()\n .duration(200)\n .style('opacity', 1)\n \n const formatDate = d3.timeFormat('%b %d, %Y')\n const status = isTrue ? `${habitEmoji} Done` : '✗ Not done'\n \n tooltip.html(`\n <div><strong>${habitName}</strong></div>\n <div>${formatDate(date)}</div>\n <div>${status}</div>\n `)\n .style('left', (event.pageX + 10) + 'px')\n .style('top', (event.pageY - 28) + 'px')\n })\n .on('mouseout', function() {\n tooltip.transition()\n .duration(500)\n .style('opacity', 0)\n })\n }\n\n return () => {\n tooltip.remove()\n }\n }, [data, habitName, width, height, startDate, endDate, weeksToShow, habitColor, habitEmoji])\n\n return (\n <div className={styles.container}>\n <h3 className={styles.title}>\n <span className={styles.habitEmoji}>{habitEmoji}</span>\n {habitName}\n </h3>\n <svg\n ref={svgRef}\n width={width}\n height={height}\n className={styles.chart}\n />\n <div className={styles.legend}>\n <span className={styles.legendItem}>\n <span \n className={styles.legendColor} \n style={{ backgroundColor: habitColor }}\n ></span>\n Done\n </span>\n <span className={styles.legendItem}>\n <span \n className={styles.legendColor} \n style={{ backgroundColor: '#4D4D4DFF' }}\n ></span>\n Not done\n </span>\n </div>\n </div>\n )\n}","import React, { useRef, useEffect, useMemo } from 'react'\nimport * as d3 from 'd3'\nimport styles from './SunburstChart.module.css'\n\nexport interface SunBurstRecord {\n name: string\n size?: number\n children?: SunBurstRecord[]\n}\n\ninterface SunburstChartProps {\n data: SunBurstRecord\n width?: number\n height?: number\n title?: string\n tagColors?: Record<string, string>\n}\n\nconst COLOR_PALETTE = [\n '#d4af37', '#FFD700', '#FFA500', '#FF8C00',\n '#FF6347', '#DC143C', '#8B4513', '#A0522D',\n '#DEB887', '#F4A460', '#D2691E', '#CD853F'\n]\n\nexport const SunburstChart: React.FC<SunburstChartProps> = ({\n data,\n width = 500,\n height = 500,\n title = 'Sunburst Chart',\n tagColors = {}\n}) => {\n const svgRef = useRef<SVGSVGElement>(null)\n const colorMap = useRef(new Map<string, string>()).current\n const colorIndex = useRef(0)\n\n const radius = Math.min(width, height) / 2\n\n const getColor = (name: string, depth: number): string => {\n // First check if we have a tag color for this name\n if (tagColors[name]) {\n const color = d3.color(tagColors[name])\n if (color) {\n // Darken for deeper levels\n return depth > 1 ? color.darker((depth - 1) * 0.3).toString() : color.toString()\n }\n }\n \n // Fallback to color palette\n if (!colorMap.has(name)) {\n colorMap.set(name, COLOR_PALETTE[colorIndex.current % COLOR_PALETTE.length])\n colorIndex.current++\n }\n const baseColor = colorMap.get(name) || '#d4af37'\n \n const color = d3.color(baseColor)\n if (color) {\n return color.darker(depth * 0.3).toString()\n }\n return baseColor\n }\n\n useEffect(() => {\n if (!svgRef.current || !data) return\n\n const svg = d3.select(svgRef.current)\n svg.selectAll('*').remove()\n\n const g = svg.append('g')\n .attr('transform', `translate(${width / 2},${height / 2})`)\n\n const root = d3.hierarchy(data)\n .sum(d => d.size ?? 0)\n .sort((a, b) => (b.value ?? 0) - (a.value ?? 0))\n\n\n const partition = d3.partition<SunBurstRecord>()\n .size([2 * Math.PI, radius * radius])\n\n const nodes = partition(root).descendants()\n\n const arc = d3.arc<d3.HierarchyRectangularNode<SunBurstRecord>>()\n .startAngle(d => d.x0)\n .endAngle(d => d.x1)\n .innerRadius(d => Math.sqrt(d.y0))\n .outerRadius(d => Math.sqrt(d.y1))\n\n const tooltip = d3.select('body').append('div')\n .attr('class', styles.tooltip)\n .style('opacity', 0)\n .style('position', 'absolute')\n\n g.selectAll('path')\n .data(nodes.filter(d => d.depth > 0 && d.value && d.value > 0))\n .enter().append('path')\n .attr('d', arc as any)\n .attr('fill', d => {\n let ancestor = d\n while (ancestor.depth > 1 && ancestor.parent) {\n ancestor = ancestor.parent\n }\n return getColor(ancestor.data.name, d.depth)\n })\n .attr('stroke', 'var(--bg-primary)')\n .attr('stroke-width', 2)\n .style('cursor', 'pointer')\n .on('mouseover', function(event, d) {\n d3.select(this)\n .transition()\n .duration(200)\n .style('opacity', 0.8)\n\n tooltip.transition()\n .duration(200)\n .style('opacity', 1)\n\n const value = d.value || 0\n const percentage = ((value / (root.value || 1)) * 100).toFixed(1)\n\n tooltip.html(`\n <div><strong>${d.data.name}</strong></div>\n <div>Value: ${value}</div>\n <div>${percentage}% of total</div>\n `)\n .style('left', (event.pageX + 10) + 'px')\n .style('top', (event.pageY - 28) + 'px')\n })\n .on('mouseout', function() {\n d3.select(this)\n .transition()\n .duration(200)\n .style('opacity', 1)\n\n tooltip.transition()\n .duration(500)\n .style('opacity', 0)\n })\n\n const shouldDisplayLabel = (d: d3.HierarchyRectangularNode<SunBurstRecord>) => {\n const angle = d.x1 - d.x0\n return angle > 0.15 && d.depth <= 2\n }\n\n g.selectAll('text')\n .data(nodes.filter(d => d.depth > 0 && d.value && d.value > 0 && shouldDisplayLabel(d)))\n .enter().append('text')\n .attr('transform', d => {\n const angle = (d.x0 + d.x1) / 2\n const radius = (Math.sqrt(d.y0) + Math.sqrt(d.y1)) / 2\n const x = Math.cos(angle - Math.PI / 2) * radius\n const y = Math.sin(angle - Math.PI / 2) * radius\n return `translate(${x},${y})`\n })\n .attr('text-anchor', 'middle')\n .attr('alignment-baseline', 'middle')\n .attr('font-size', '12px')\n .attr('fill', 'var(--text-inverse)')\n .attr('font-weight', 'var(--font-medium)')\n .style('pointer-events', 'none')\n .text(d => d.data.name.substring(0, 10))\n\n return () => {\n tooltip.remove()\n }\n }, [data, width, height, colorMap, radius])\n\n return (\n <div className={styles.container}>\n <h3 className={styles.title}>{title}</h3>\n <svg\n ref={svgRef}\n width={width}\n height={height}\n className={styles.chart}\n />\n </div>\n )\n}","import React, { useRef, useEffect } from 'react'\nimport * as d3 from 'd3'\nimport styles from './PieChart.module.css'\n\ninterface PieDataPoint {\n name: string\n value: number\n color?: string\n}\n\ninterface PieChartProps {\n data: PieDataPoint[]\n width?: number\n height?: number\n title?: string\n showLegend?: boolean\n}\n\nconst DEFAULT_COLORS = [\n '#d4af37', '#FFD700', '#FFA500', '#FF8C00',\n '#FF6347', '#DC143C', '#8B4513', '#A0522D',\n '#DEB887', '#F4A460', '#D2691E', '#CD853F',\n '#B8860B', '#DAA520', '#F0E68C', '#BDB76B'\n]\n\nexport const PieChart: React.FC<PieChartProps> = ({\n data,\n width = 400,\n height = 400,\n title = 'Distribution',\n showLegend = true\n}) => {\n const svgRef = useRef<SVGSVGElement>(null)\n const radius = Math.min(width, height) / 2 - 20\n\n useEffect(() => {\n if (!svgRef.current || !data.length) return\n\n const svg = d3.select(svgRef.current)\n svg.selectAll('*').remove()\n\n const g = svg.append('g')\n .attr('transform', `translate(${width / 2},${height / 2})`)\n\n const pie = d3.pie<PieDataPoint>()\n .value(d => d.value)\n .sort(null)\n\n const arc = d3.arc<d3.PieArcDatum<PieDataPoint>>()\n .innerRadius(0)\n .outerRadius(radius)\n\n const labelArc = d3.arc<d3.PieArcDatum<PieDataPoint>>()\n .innerRadius(radius * 0.7)\n .outerRadius(radius * 0.7)\n\n const tooltip = d3.select('body').append('div')\n .attr('class', styles.tooltip)\n .style('opacity', 0)\n .style('position', 'absolute')\n\n const pieData = pie(data)\n const total = d3.sum(data, d => d.value)\n\n const arcs = g.selectAll('.arc')\n .data(pieData)\n .enter().append('g')\n .attr('class', 'arc')\n\n arcs.append('path')\n .attr('d', d => arc(d))\n .attr('fill', (d, i) => d.data.color || DEFAULT_COLORS[i % DEFAULT_COLORS.length])\n .attr('stroke', 'var(--bg-primary)')\n .attr('stroke-width', 2)\n .style('cursor', 'pointer')\n .on('mouseover', function(event, d) {\n d3.select(this)\n .transition()\n .duration(200)\n .style('opacity', 0.8)\n\n tooltip.transition()\n .duration(200)\n .style('opacity', 1)\n\n const percentage = ((d.data.value / total) * 100).toFixed(1)\n\n tooltip.html(`\n <div><strong>${d.data.name}</strong></div>\n <div>Value: ${d.data.value.toLocaleString()}</div>\n <div>${percentage}% of total</div>\n `)\n .style('left', (event.pageX + 10) + 'px')\n .style('top', (event.pageY - 28) + 'px')\n })\n .on('mouseout', function() {\n d3.select(this)\n .transition()\n .duration(200)\n .style('opacity', 1)\n\n tooltip.transition()\n .duration(500)\n .style('opacity', 0)\n })\n\n arcs.filter(d => (d.endAngle - d.startAngle) > 0.3)\n .append('text')\n .attr('transform', d => `translate(${labelArc.centroid(d)})`)\n .attr('text-anchor', 'middle')\n .attr('alignment-baseline', 'middle')\n .attr('font-size', '12px')\n .attr('fill', 'var(--text-inverse)')\n .attr('font-weight', 'var(--font-semibold)')\n .style('pointer-events', 'none')\n .text(d => {\n const percentage = ((d.data.value / total) * 100)\n return percentage > 5 ? `${percentage.toFixed(1)}%` : ''\n })\n\n return () => {\n tooltip.remove()\n }\n }, [data, width, height, radius])\n\n return (\n <div className={styles.container}>\n <h3 className={styles.title}>{title}</h3>\n <div className={styles.chartContainer}>\n <svg\n ref={svgRef}\n width={width}\n height={height}\n className={styles.chart}\n />\n {showLegend && (\n <div className={styles.legend}>\n {data.map((item, index) => (\n <div key={item.name} className={styles.legendItem}>\n <span \n className={styles.legendColor}\n style={{ \n backgroundColor: item.color || DEFAULT_COLORS[index % DEFAULT_COLORS.length] \n }}\n />\n <span className={styles.legendLabel}>\n {item.name}\n </span>\n <span className={styles.legendValue}>\n {item.value.toLocaleString()}\n </span>\n </div>\n ))}\n </div>\n )}\n </div>\n </div>\n )\n}"],"names":["ThemeContext","useTheme","_jsx","styles","_jsxs","_Fragment"],"mappings":"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","x_google_ignoreList":[1,7,8,9]}
1
+ {"version":3,"file":"index.esm.js","sources":["../src/contexts/ThemeContext.tsx","../src/components/atoms/Button/Button.tsx","../src/components/atoms/Card/Card.tsx","../src/components/atoms/TextInput/TextInput.tsx","../src/components/atoms/ArrayInput/ArrayInput.tsx","../src/components/atoms/Checkbox/Checkbox.tsx","../node_modules/react-icons/lib/iconContext.mjs","../node_modules/react-icons/lib/iconBase.mjs","../node_modules/react-icons/fi/index.mjs","../src/utils/formUtils.ts","../src/components/atoms/DateInput/DateInput.tsx","../src/components/atoms/SearchableDropdown/SearchableDropdown.tsx","../src/components/atoms/SelectInput/SelectInput.tsx","../src/components/atoms/TextArea/TextArea.tsx","../src/components/atoms/Toggle/Toggle.tsx","../src/components/molecules/EditFAB/EditFAB.tsx","../src/components/molecules/SearchBar/SearchBar.tsx","../src/components/molecules/TimeInput/TimePickerModal.tsx","../src/components/molecules/TimeInput/TimeInput.tsx","../src/components/organisms/ThemeProvider/ThemeProvider.tsx","../src/components/molecules/ThemeSwitcher/ThemeSwitcher.tsx","../src/components/organisms/Navbar/Navbar.tsx","../src/components/organisms/charts/MoodChart/MoodChart.tsx","../src/components/organisms/charts/QuantifiableHabitsChart/QuantifiableHabitsChart.tsx","../src/components/organisms/charts/SleepChart/SleepChart.tsx","../src/components/organisms/charts/BooleansHeatmap/BooleansHeatmap.tsx","../src/components/organisms/charts/SunburstChart/SunburstChart.tsx","../src/components/organisms/charts/PieChart/PieChart.tsx"],"sourcesContent":["import React, { createContext, useContext, useState, useEffect, ReactNode } from 'react';\n\ntype Theme = 'light' | 'dark';\n\ninterface ThemeContextType {\n\ttheme: Theme;\n\ttoggleTheme: () => void;\n\tsetTheme: (theme: Theme) => void;\n}\n\nconst ThemeContext = createContext<ThemeContextType | undefined>(undefined);\n\nexport const useTheme = () => {\n\tconst context = useContext(ThemeContext);\n\tif (!context) {\n\t\tthrow new Error('useTheme must be used within a ThemeProvider');\n\t}\n\treturn context;\n};\n\ninterface ThemeProviderProps {\n\tchildren: ReactNode;\n\tdefaultTheme?: Theme;\n}\n\nexport const ThemeProvider: React.FC<ThemeProviderProps> = ({ \n\tchildren, \n\tdefaultTheme = 'light' \n}) => {\n\tconst [theme, setTheme] = useState<Theme>(defaultTheme);\n\n\tuseEffect(() => {\n\t\tconst savedTheme = localStorage.getItem('theme') as Theme | null;\n\t\tif (savedTheme) {\n\t\t\tsetTheme(savedTheme);\n\t\t}\n\t}, []);\n\n\tuseEffect(() => {\n\t\tdocument.documentElement.setAttribute('data-theme', theme);\n\t\tlocalStorage.setItem('theme', theme);\n\t}, [theme]);\n\n\tconst toggleTheme = () => {\n\t\tsetTheme(prevTheme => prevTheme === 'light' ? 'dark' : 'light');\n\t};\n\n\treturn (\n\t\t<ThemeContext.Provider value={{ theme, toggleTheme, setTheme }}>\n\t\t\t{children}\n\t\t</ThemeContext.Provider>\n\t);\n};","import React, { ButtonHTMLAttributes, ReactNode } from 'react';\nimport { motion, HTMLMotionProps } from 'framer-motion';\nimport styles from './Button.module.css';\n\n/**\n * Props for the Button component\n * @interface ButtonProps\n */\nexport interface ButtonProps extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'onAnimationStart' | 'onDragStart' | 'onDragEnd' | 'onDrag'> {\n\t/** Visual style variant of the button */\n\tvariant?: 'primary' | 'secondary' | 'outline' | 'ghost' | 'danger';\n\t/** Size of the button */\n\tsize?: 'small' | 'medium' | 'large';\n\t/** Whether the button should take full width of its container */\n\tfullWidth?: boolean;\n\t/** Whether the button is in loading state (shows spinner, disabled interaction) */\n\tloading?: boolean;\n\t/** Icon to display on the left side of the button text */\n\ticonLeft?: ReactNode;\n\t/** Icon to display on the right side of the button text */\n\ticonRight?: ReactNode;\n\t/** Button content (text, elements, etc.) */\n\tchildren?: ReactNode;\n\t/** Additional Framer Motion props for custom animations */\n\tmotionProps?: HTMLMotionProps<\"button\">;\n}\n\n/**\n * Button Component\n * \n * @component\n * @description\n * A versatile, animated button component built with Framer Motion. Supports multiple \n * variants, sizes, loading states, and icons. Includes smooth hover/tap animations\n * and full accessibility support.\n * \n * @example\n * // Basic usage\n * <Button onClick={handleClick}>Click me</Button>\n * \n * @example\n * // With variant and size\n * <Button variant=\"secondary\" size=\"large\">\n * Large Secondary Button\n * </Button>\n * \n * @example\n * // With icons and loading state\n * <Button \n * variant=\"primary\" \n * iconLeft={<Icon />}\n * loading={isLoading}\n * onClick={handleSubmit}\n * >\n * Submit Form\n * </Button>\n * \n * @example\n * // Full width danger button\n * <Button variant=\"danger\" fullWidth>\n * Delete Account\n * </Button>\n * \n * @param {ButtonProps} props - The props for the Button component\n * @returns {JSX.Element} The rendered Button component\n */\nexport const Button: React.FC<ButtonProps> = ({\n\tvariant = 'primary',\n\tsize = 'medium',\n\tfullWidth = false,\n\tloading = false,\n\ticonLeft,\n\ticonRight,\n\tchildren,\n\tclassName = '',\n\tdisabled,\n\tmotionProps,\n\t...rest\n}) => {\n\tconst buttonClasses = [\n\t\tstyles.button,\n\t\tstyles[variant],\n\t\tstyles[size],\n\t\tfullWidth && styles.fullWidth,\n\t\tloading && styles.loading,\n\t\tclassName\n\t].filter(Boolean).join(' ');\n\n\treturn (\n\t\t<motion.button\n\t\t\tclassName={buttonClasses}\n\t\t\tdisabled={disabled || loading}\n\t\t\twhileHover={{ scale: disabled || loading ? 1 : 1.02 }}\n\t\t\twhileTap={{ scale: disabled || loading ? 1 : 0.98 }}\n\t\t\ttransition={{ type: \"spring\", stiffness: 400, damping: 17 }}\n\t\t\t{...motionProps}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{loading && <span className={styles.spinner} />}\n\t\t\t{iconLeft && <span className={styles.iconLeft}>{iconLeft}</span>}\n\t\t\t{children}\n\t\t\t{iconRight && <span className={styles.iconRight}>{iconRight}</span>}\n\t\t</motion.button>\n\t);\n};","import React, { HTMLAttributes, ReactNode } from 'react';\nimport { motion, HTMLMotionProps } from 'framer-motion';\nimport styles from './Card.module.css';\n\n/**\n * Props for the Card component\n * @interface CardProps\n */\nexport interface CardProps extends Omit<HTMLAttributes<HTMLDivElement>, 'onAnimationStart' | 'onDragStart' | 'onDragEnd' | 'onDrag'> {\n\t/** Visual style variant of the card */\n\tvariant?: 'elevated' | 'outlined' | 'flat';\n\t/** Whether the card should have hover animations */\n\thoverable?: boolean;\n\t/** Whether the card should be clickable (adds pointer cursor and click handler) */\n\tclickable?: boolean;\n\t/** Whether the card content should have padding */\n\tpadding?: boolean;\n\t/** URL for an optional image at the top of the card */\n\timage?: string;\n\t/** Alt text for the card image */\n\timageAlt?: string;\n\t/** Title text for the card header */\n\ttitle?: string;\n\t/** Subtitle text for the card header */\n\tsubtitle?: string;\n\t/** Custom header content (overrides title/subtitle) */\n\theader?: ReactNode;\n\t/** Footer content for the bottom of the card */\n\tfooter?: ReactNode;\n\t/** Main content of the card */\n\tchildren?: ReactNode;\n\t/** Additional Framer Motion props for custom animations */\n\tmotionProps?: HTMLMotionProps<\"div\">;\n}\n\n/**\n * Card Component\n * \n * @component\n * @description\n * A flexible container component that can display content in a structured card layout.\n * Supports multiple visual styles, optional images, headers, footers, and smooth animations\n * powered by Framer Motion.\n * \n * @example\n * // Basic card with content\n * <Card>\n * <p>This is card content</p>\n * </Card>\n * \n * @example\n * // Card with title and subtitle\n * <Card \n * title=\"Card Title\" \n * subtitle=\"Card subtitle\" \n * variant=\"outlined\"\n * >\n * Card body content here\n * </Card>\n * \n * @example\n * // Interactive card with image\n * <Card \n * image=\"/path/to/image.jpg\"\n * imageAlt=\"Description\"\n * hoverable\n * clickable\n * onClick={handleCardClick}\n * >\n * <h4>Interactive Card</h4>\n * <p>Click me!</p>\n * </Card>\n * \n * @example\n * // Card with custom header and footer\n * <Card \n * header={<CustomHeader />}\n * footer={<CustomFooter />}\n * variant=\"flat\"\n * >\n * Main content area\n * </Card>\n * \n * @param {CardProps} props - The props for the Card component\n * @returns {JSX.Element} The rendered Card component\n */\nexport const Card: React.FC<CardProps> = ({\n\tvariant = 'elevated',\n\thoverable = false,\n\tclickable = false,\n\tpadding = true,\n\timage,\n\timageAlt = '',\n\ttitle,\n\tsubtitle,\n\theader,\n\tfooter,\n\tchildren,\n\tclassName = '',\n\tonClick,\n\tmotionProps,\n\t...rest\n}) => {\n\tconst cardClasses = [\n\t\tstyles.card,\n\t\tstyles[variant],\n\t\thoverable && styles.hoverable,\n\t\tclickable && styles.clickable,\n\t\t!padding && styles.noPadding,\n\t\tclassName\n\t].filter(Boolean).join(' ');\n\n\tconst cardContent = (\n\t\t<>\n\t\t\t{image && (\n\t\t\t\t<div className={styles.imageContainer}>\n\t\t\t\t\t<img src={image} alt={imageAlt} className={styles.image} />\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t{header && <div className={styles.header}>{header}</div>}\n\t\t\t{(title || subtitle) && !header && (\n\t\t\t\t<div className={styles.header}>\n\t\t\t\t\t{title && <h3 className={styles.title}>{title}</h3>}\n\t\t\t\t\t{subtitle && <p className={styles.subtitle}>{subtitle}</p>}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t{children && (\n\t\t\t\t<div className={padding ? styles.body : undefined}>\n\t\t\t\t\t{children}\n\t\t\t\t</div>\n\t\t\t)}\n\t\t\t{footer && <div className={styles.footer}>{footer}</div>}\n\t\t</>\n\t);\n\n\treturn (\n\t\t<motion.div\n\t\t\tclassName={cardClasses}\n\t\t\tonClick={clickable ? onClick : undefined}\n\t\t\twhileHover={hoverable ? { y: -4 } : undefined}\n\t\t\ttransition={{ type: \"spring\", stiffness: 400, damping: 17 }}\n\t\t\t{...motionProps}\n\t\t\t{...rest}\n\t\t>\n\t\t\t{cardContent}\n\t\t</motion.div>\n\t);\n};","import React, { ReactNode } from 'react';\nimport styles from './TextInput.module.css';\n\n/**\n * Props for the TextInput component\n * @interface TextInputProps\n */\nexport interface TextInputProps {\n /** Label text displayed above the input field */\n label: string;\n /** Current value of the input */\n value: string;\n /** Callback fired when input value changes */\n onChange: (newValue: string) => void;\n /** HTML input type (text, email, password, etc.) */\n type?: string;\n /** Callback fired when input receives focus */\n onFocus?: () => void;\n /** Callback fired when input loses focus */\n onBlur?: () => void;\n /** Placeholder text shown when input is empty */\n placeholder?: string;\n /** Error message to display below the input */\n error?: string;\n /** Whether the field is required (shows asterisk) */\n required?: boolean;\n /** Whether the input is disabled */\n disabled?: boolean;\n /** Whether to show success styling */\n success?: boolean;\n /** Whether the input is in loading state */\n loading?: boolean;\n /** Icon to display inside the input field */\n icon?: ReactNode;\n /** Optional action button displayed at the end of the input */\n actionButton?: {\n /** Button label text */\n label: string;\n /** Button click handler */\n onClick: () => void;\n };\n /** Maximum number of characters allowed */\n maxLength?: number;\n /** HTML autocomplete attribute value */\n autoComplete?: string;\n}\n\n/**\n * TextInput component - A versatile text input field with label and error handling\n * \n * @component\n * @description\n * A foundational input component that provides a clean, accessible text field with\n * built-in support for labels, validation errors, and various HTML5 input types.\n * Follows design system tokens for consistent theming across light/dark modes.\n * \n * @example\n * // Basic usage\n * <TextInput\n * label=\"Email Address\"\n * value={email}\n * onChange={setEmail}\n * type=\"email\"\n * placeholder=\"Enter your email\"\n * />\n * \n * @example\n * // With validation error\n * <TextInput\n * label=\"Password\"\n * value={password}\n * onChange={setPassword}\n * type=\"password\"\n * error=\"Password must be at least 8 characters\"\n * required\n * />\n */\nexport function TextInput({ \n label, \n value, \n onChange, \n type = \"text\", \n onFocus, \n onBlur, \n placeholder, \n error, \n required,\n disabled = false,\n success = false,\n loading = false,\n icon,\n actionButton,\n maxLength,\n autoComplete\n}: Readonly<TextInputProps>) {\n const inputId = `input-${Math.random().toString(36).substr(2, 9)}`;\n \n const getContainerClassName = () => {\n const classes = [styles.textInput];\n if (success) classes.push(styles.success);\n if (loading) classes.push(styles.loading);\n if (icon) classes.push(styles.withIcon);\n if (actionButton) classes.push(styles.withAction);\n return classes.join(' ');\n };\n \n return (\n <div className={getContainerClassName()}>\n <label htmlFor={inputId}>\n {label}\n {required && <span className={styles.required}>*</span>}\n </label>\n <div style={{ position: 'relative' }}>\n {icon && <div className={styles.inputIcon}>{icon}</div>}\n <input\n id={inputId}\n type={type}\n value={value}\n onChange={(e) => onChange(e.target.value)}\n onFocus={onFocus}\n onBlur={onBlur}\n placeholder={placeholder}\n className={error ? styles.inputError : ''}\n aria-invalid={!!error}\n aria-describedby={error ? `${inputId}-error` : undefined}\n disabled={disabled || loading}\n maxLength={maxLength}\n autoComplete={autoComplete}\n />\n {actionButton && (\n <button\n type=\"button\"\n className={styles.actionButton}\n onClick={actionButton.onClick}\n disabled={disabled || loading}\n >\n {actionButton.label}\n </button>\n )}\n </div>\n {error && (\n <span id={`${inputId}-error`} className={styles.errorMessage}>\n {error}\n </span>\n )}\n </div>\n );\n}\n","import React from 'react';\nimport { Button } from '../Button';\nimport { TextInput } from '../TextInput';\nimport styles from './ArrayInput.module.css';\n\n/**\n * Configuration for a field in complex object arrays\n * @interface FieldConfig\n */\nexport interface FieldConfig {\n /** The property name in the object */\n name: string;\n /** Display label for the field */\n label: string;\n /** HTML input type (text, email, url, etc.) */\n type?: string;\n /** Placeholder text for the input */\n placeholder?: string;\n}\n\n/**\n * Base props that all array inputs share\n * @interface BaseArrayInputProps\n */\ninterface BaseArrayInputProps {\n /** Label text displayed above the array input */\n label: string;\n}\n\n/**\n * Props for simple string array input\n * @interface SimpleArrayInputProps\n */\ninterface SimpleArrayInputProps extends BaseArrayInputProps {\n /** Input type - defaults to 'simple' for string arrays */\n type?: 'simple';\n /** Array of string values */\n values: string[];\n /** Callback fired when array values change */\n onChange: (values: string[]) => void;\n /** Placeholder text for individual input fields */\n placeholder?: string;\n}\n\n/**\n * Props for complex object array input\n * @interface ComplexArrayInputProps\n * @template T - The type of objects in the array\n */\ninterface ComplexArrayInputProps<T extends Record<string, any>> extends BaseArrayInputProps {\n /** Input type - must be 'complex' for object arrays */\n type: 'complex';\n /** Array of object values */\n values: T[];\n /** Callback fired when array values change */\n onChange: (values: T[]) => void;\n /** Configuration for the fields in each object */\n fields: FieldConfig[];\n /** Optional function to generate unique keys for React rendering */\n getKey?: (item: T, index: number) => string;\n}\n\nexport type ArrayInputProps<T extends Record<string, any> = Record<string, any>> = \n | SimpleArrayInputProps\n | ComplexArrayInputProps<T>;\n\n/**\n * ArrayInput component - Versatile dynamic list manager\n * \n * @component\n * @description\n * A flexible component that can handle both simple string arrays and complex object arrays.\n * Users can add, remove, and edit items dynamically. Supports custom field configurations\n * for complex data structures.\n * \n * @example\n * // Simple string array\n * <ArrayInput\n * label=\"Tags\"\n * values={tags}\n * onChange={setTags}\n * placeholder=\"Enter tag\"\n * />\n * \n * @example\n * // Complex object array\n * <ArrayInput\n * type=\"complex\"\n * label=\"Social Links\"\n * values={links}\n * onChange={setLinks}\n * fields={[\n * { name: 'label', label: 'Label', placeholder: 'GitHub' },\n * { name: 'url', label: 'URL', type: 'url', placeholder: 'https://github.com/...' }\n * ]}\n * />\n */\nexport function ArrayInput<T extends Record<string, any> = Record<string, any>>(\n props: Readonly<ArrayInputProps<T>>\n) {\n if (props.type === 'complex') {\n return <ComplexArrayInput {...props} />;\n }\n \n return <SimpleArrayInput {...props as SimpleArrayInputProps} />;\n}\n\n// Simple string array implementation\nfunction SimpleArrayInput({ \n label, \n values, \n onChange, \n placeholder \n}: Readonly<SimpleArrayInputProps>) {\n const handleChange = (index: number, value: string) => {\n const newValues = [...values];\n newValues[index] = value;\n onChange(newValues);\n };\n\n const handleAdd = () => {\n onChange([...values, '']);\n };\n\n const handleRemove = (index: number) => {\n const newValues = values.filter((_, i) => i !== index);\n onChange(newValues);\n };\n\n return (\n <div className={styles.arrayInput}>\n <h3 className={styles.arrayInputLabel}>{label}</h3>\n {values.map((value, index) => (\n <div key={`item-${index}`} className={styles.arrayInputItem}>\n <div className={styles.inputWrapper}>\n <input\n type=\"text\"\n value={value}\n onChange={(e) => handleChange(index, e.target.value)}\n placeholder={placeholder}\n className={styles.input}\n />\n </div>\n <Button \n variant=\"ghost\"\n size=\"small\"\n onClick={() => handleRemove(index)}\n >\n Remove\n </Button>\n </div>\n ))}\n <Button \n variant=\"primary\"\n size=\"small\"\n onClick={handleAdd}\n >\n Add {label}\n </Button>\n </div>\n );\n}\n\n// Complex object array implementation\nfunction ComplexArrayInput<T extends Record<string, any>>({ \n label, \n values, \n onChange, \n fields,\n getKey\n}: Readonly<ComplexArrayInputProps<T>>) {\n const handleChange = (index: number, field: string, value: string) => {\n const newValues = [...values];\n newValues[index] = { ...newValues[index], [field]: value };\n onChange(newValues);\n };\n\n const handleAdd = () => {\n const newItem = fields.reduce((acc, field) => {\n return { ...acc, [field.name]: '' };\n }, {} as T);\n onChange([...values, newItem]);\n };\n\n const handleRemove = (index: number) => {\n const newValues = values.filter((_, i) => i !== index);\n onChange(newValues);\n };\n\n const generateKey = (item: T, index: number) => {\n if (getKey) return getKey(item, index);\n \n // Generate key from all field values\n return fields.map(f => item[f.name] || '').join('-') + `-${index}`;\n };\n\n return (\n <div className={styles.arrayInput}>\n <h3 className={styles.arrayInputLabel}>{label}</h3>\n {values.map((value, index) => (\n <div \n key={generateKey(value, index)} \n className={`${styles.arrayInputItem} ${fields.length > 1 ? styles.complexItem : ''}`}\n >\n <div className={styles.fieldsWrapper}>\n {fields.map((field) => (\n <TextInput\n key={field.name}\n value={value[field.name] || ''}\n onChange={(newValue) => handleChange(index, field.name, newValue)}\n label={field.label}\n type={field.type}\n placeholder={field.placeholder}\n />\n ))}\n </div>\n <Button \n variant=\"ghost\"\n size=\"small\"\n onClick={() => handleRemove(index)}\n >\n Remove\n </Button>\n </div>\n ))}\n <Button \n variant=\"primary\"\n size=\"small\"\n onClick={handleAdd}\n >\n Add {label}\n </Button>\n </div>\n );\n}\n\n// Export the interface for backward compatibility\nexport interface LabeledLink {\n label: string;\n url: string;\n}","import React, { useRef, useEffect } from 'react';\nimport styles from './Checkbox.module.css';\n\n/**\n * Props for the Checkbox component\n * @interface CheckboxProps\n */\nexport interface CheckboxProps {\n /** Whether the checkbox is checked */\n checked: boolean;\n /** Callback fired when checkbox state changes */\n onChange: (checked: boolean) => void;\n /** Label text to display next to the checkbox */\n label?: string;\n /** Whether the checkbox is disabled */\n disabled?: boolean;\n /** Whether the checkbox is in indeterminate state (partial selection) */\n indeterminate?: boolean;\n /** HTML id attribute for the checkbox input */\n id?: string;\n /** HTML name attribute for form submission */\n name?: string;\n /** HTML value attribute for form submission */\n value?: string;\n}\n\n/**\n * Checkbox component - Modern interactive checkbox with animations\n * \n * @component\n * @description\n * A customizable checkbox component with smooth animations, hover effects,\n * and support for checked, unchecked, and indeterminate states. Features\n * gradient backgrounds, bounce animations, and accessible focus states.\n * \n * @example\n * // Basic usage\n * <Checkbox\n * checked={isChecked}\n * onChange={setIsChecked}\n * label=\"Accept terms and conditions\"\n * />\n * \n * @example\n * // Indeterminate state\n * <Checkbox\n * checked={false}\n * indeterminate={true}\n * onChange={handleChange}\n * label=\"Select all\"\n * />\n * \n * @example\n * // Disabled state\n * <Checkbox\n * checked={true}\n * onChange={handleChange}\n * label=\"Premium feature\"\n * disabled={true}\n * />\n */\nexport const Checkbox: React.FC<CheckboxProps> = ({ \n checked, \n onChange, \n label, \n disabled = false,\n indeterminate = false,\n id,\n name,\n value\n}) => {\n const checkboxRef = useRef<HTMLInputElement>(null);\n \n useEffect(() => {\n if (checkboxRef.current) {\n checkboxRef.current.indeterminate = indeterminate;\n }\n }, [indeterminate]);\n \n return (\n <label className={styles.checkboxLabel}>\n <input\n ref={checkboxRef}\n type=\"checkbox\"\n checked={checked}\n onChange={(e) => onChange(e.target.checked)}\n className={styles.checkbox}\n disabled={disabled}\n id={id}\n name={name}\n value={value}\n aria-checked={indeterminate ? 'mixed' : checked}\n />\n {label && <span className={styles.checkboxText}>{label}</span>}\n </label>\n );\n}; ","import React from \"react\";\nexport var DefaultContext = {\n color: undefined,\n size: undefined,\n className: undefined,\n style: undefined,\n attr: undefined\n};\nexport var IconContext = React.createContext && /*#__PURE__*/React.createContext(DefaultContext);","var _excluded = [\"attr\", \"size\", \"title\"];\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } } return target; }\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); }\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nimport React from \"react\";\nimport { IconContext, DefaultContext } from \"./iconContext.mjs\";\nfunction Tree2Element(tree) {\n return tree && tree.map((node, i) => /*#__PURE__*/React.createElement(node.tag, _objectSpread({\n key: i\n }, node.attr), Tree2Element(node.child)));\n}\nexport function GenIcon(data) {\n return props => /*#__PURE__*/React.createElement(IconBase, _extends({\n attr: _objectSpread({}, data.attr)\n }, props), Tree2Element(data.child));\n}\nexport function IconBase(props) {\n var elem = conf => {\n var {\n attr,\n size,\n title\n } = props,\n svgProps = _objectWithoutProperties(props, _excluded);\n var computedSize = size || conf.size || \"1em\";\n var className;\n if (conf.className) className = conf.className;\n if (props.className) className = (className ? className + \" \" : \"\") + props.className;\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n stroke: \"currentColor\",\n fill: \"currentColor\",\n strokeWidth: \"0\"\n }, conf.attr, attr, svgProps, {\n className: className,\n style: _objectSpread(_objectSpread({\n color: props.color || conf.color\n }, conf.style), props.style),\n height: computedSize,\n width: computedSize,\n xmlns: \"http://www.w3.org/2000/svg\"\n }), title && /*#__PURE__*/React.createElement(\"title\", null, title), props.children);\n };\n return IconContext !== undefined ? /*#__PURE__*/React.createElement(IconContext.Consumer, null, conf => elem(conf)) : elem(DefaultContext);\n}","// THIS FILE IS AUTO GENERATED\nimport { GenIcon } from '../lib/index.mjs';\nexport function FiActivity (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"22 12 18 12 15 21 9 3 6 12 2 12\"},\"child\":[]}]})(props);\n};\nexport function FiAirplay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 17H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v10a2 2 0 0 1-2 2h-1\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"12 15 17 21 7 21 12 15\"},\"child\":[]}]})(props);\n};\nexport function FiAlertCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"16\",\"x2\":\"12.01\",\"y2\":\"16\"},\"child\":[]}]})(props);\n};\nexport function FiAlertOctagon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"16\",\"x2\":\"12.01\",\"y2\":\"16\"},\"child\":[]}]})(props);\n};\nexport function FiAlertTriangle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"9\",\"x2\":\"12\",\"y2\":\"13\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"17\",\"x2\":\"12.01\",\"y2\":\"17\"},\"child\":[]}]})(props);\n};\nexport function FiAlignCenter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"10\",\"x2\":\"6\",\"y2\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"6\",\"x2\":\"3\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"14\",\"x2\":\"3\",\"y2\":\"14\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"18\",\"x2\":\"6\",\"y2\":\"18\"},\"child\":[]}]})(props);\n};\nexport function FiAlignJustify (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"10\",\"x2\":\"3\",\"y2\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"6\",\"x2\":\"3\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"14\",\"x2\":\"3\",\"y2\":\"14\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"18\",\"x2\":\"3\",\"y2\":\"18\"},\"child\":[]}]})(props);\n};\nexport function FiAlignLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"10\",\"x2\":\"3\",\"y2\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"6\",\"x2\":\"3\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"14\",\"x2\":\"3\",\"y2\":\"14\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"18\",\"x2\":\"3\",\"y2\":\"18\"},\"child\":[]}]})(props);\n};\nexport function FiAlignRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"10\",\"x2\":\"7\",\"y2\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"6\",\"x2\":\"3\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"14\",\"x2\":\"3\",\"y2\":\"14\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"18\",\"x2\":\"7\",\"y2\":\"18\"},\"child\":[]}]})(props);\n};\nexport function FiAnchor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"5\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22\",\"x2\":\"12\",\"y2\":\"8\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 12H2a10 10 0 0 0 20 0h-3\"},\"child\":[]}]})(props);\n};\nexport function FiAperture (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"14.31\",\"y1\":\"8\",\"x2\":\"20.05\",\"y2\":\"17.94\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9.69\",\"y1\":\"8\",\"x2\":\"21.17\",\"y2\":\"8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"7.38\",\"y1\":\"12\",\"x2\":\"13.12\",\"y2\":\"2.06\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9.69\",\"y1\":\"16\",\"x2\":\"3.95\",\"y2\":\"6.06\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"14.31\",\"y1\":\"16\",\"x2\":\"2.83\",\"y2\":\"16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16.62\",\"y1\":\"12\",\"x2\":\"10.88\",\"y2\":\"21.94\"},\"child\":[]}]})(props);\n};\nexport function FiArchive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"21 8 21 21 3 21 3 8\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"1\",\"y\":\"3\",\"width\":\"22\",\"height\":\"5\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"y1\":\"12\",\"x2\":\"14\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiArrowDownCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"8 12 12 16 16 12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"16\"},\"child\":[]}]})(props);\n};\nexport function FiArrowDownLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"7\",\"x2\":\"7\",\"y2\":\"17\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 17 7 17 7 7\"},\"child\":[]}]})(props);\n};\nexport function FiArrowDownRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"7\",\"y1\":\"7\",\"x2\":\"17\",\"y2\":\"17\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 7 17 17 7 17\"},\"child\":[]}]})(props);\n};\nexport function FiArrowDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"5\",\"x2\":\"12\",\"y2\":\"19\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"19 12 12 19 5 12\"},\"child\":[]}]})(props);\n};\nexport function FiArrowLeftCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 8 8 12 12 16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"12\",\"x2\":\"8\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiArrowLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"19\",\"y1\":\"12\",\"x2\":\"5\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 19 5 12 12 5\"},\"child\":[]}]})(props);\n};\nexport function FiArrowRightCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 16 16 12 12 8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiArrowRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"5\",\"y1\":\"12\",\"x2\":\"19\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 5 19 12 12 19\"},\"child\":[]}]})(props);\n};\nexport function FiArrowUpCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 12 12 8 8 12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"16\",\"x2\":\"12\",\"y2\":\"8\"},\"child\":[]}]})(props);\n};\nexport function FiArrowUpLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"17\",\"x2\":\"7\",\"y2\":\"7\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7 17 7 7 17 7\"},\"child\":[]}]})(props);\n};\nexport function FiArrowUpRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"7\",\"y1\":\"17\",\"x2\":\"17\",\"y2\":\"7\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7 7 17 7 17 17\"},\"child\":[]}]})(props);\n};\nexport function FiArrowUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"19\",\"x2\":\"12\",\"y2\":\"5\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"5 12 12 5 19 12\"},\"child\":[]}]})(props);\n};\nexport function FiAtSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 8v5a3 3 0 0 0 6 0v-1a10 10 0 1 0-3.92 7.94\"},\"child\":[]}]})(props);\n};\nexport function FiAward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"8\",\"r\":\"7\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"8.21 13.89 7 23 12 20 17 23 15.79 13.88\"},\"child\":[]}]})(props);\n};\nexport function FiBarChart2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"20\",\"x2\":\"18\",\"y2\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"20\",\"x2\":\"12\",\"y2\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"20\",\"x2\":\"6\",\"y2\":\"14\"},\"child\":[]}]})(props);\n};\nexport function FiBarChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"20\",\"x2\":\"12\",\"y2\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"20\",\"x2\":\"18\",\"y2\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"20\",\"x2\":\"6\",\"y2\":\"16\"},\"child\":[]}]})(props);\n};\nexport function FiBatteryCharging (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 18H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h3.19M15 6h2a2 2 0 0 1 2 2v8a2 2 0 0 1-2 2h-3.19\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"13\",\"x2\":\"23\",\"y2\":\"11\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"11 6 7 12 13 12 9 18\"},\"child\":[]}]})(props);\n};\nexport function FiBattery (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"1\",\"y\":\"6\",\"width\":\"18\",\"height\":\"12\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"13\",\"x2\":\"23\",\"y2\":\"11\"},\"child\":[]}]})(props);\n};\nexport function FiBellOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13.73 21a2 2 0 0 1-3.46 0\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.63 13A17.89 17.89 0 0 1 18 8\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.26 6.26A5.86 5.86 0 0 0 6 8c0 7-3 9-3 9h14\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 8a6 6 0 0 0-9.33-5\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"},\"child\":[]}]})(props);\n};\nexport function FiBell (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M13.73 21a2 2 0 0 1-3.46 0\"},\"child\":[]}]})(props);\n};\nexport function FiBluetooth (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"6.5 6.5 17.5 17.5 12 23 12 1 17.5 6.5 6.5 17.5\"},\"child\":[]}]})(props);\n};\nexport function FiBold (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 4h8a4 4 0 0 1 4 4 4 4 0 0 1-4 4H6z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 12h9a4 4 0 0 1 4 4 4 4 0 0 1-4 4H6z\"},\"child\":[]}]})(props);\n};\nexport function FiBookOpen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 3h6a4 4 0 0 1 4 4v14a3 3 0 0 0-3-3H2z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 3h-6a4 4 0 0 0-4 4v14a3 3 0 0 1 3-3h7z\"},\"child\":[]}]})(props);\n};\nexport function FiBook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 19.5A2.5 2.5 0 0 1 6.5 17H20\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z\"},\"child\":[]}]})(props);\n};\nexport function FiBookmark (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 21l-7-5-7 5V5a2 2 0 0 1 2-2h10a2 2 0 0 1 2 2z\"},\"child\":[]}]})(props);\n};\nexport function FiBox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"3.27 6.96 12 12.01 20.73 6.96\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22.08\",\"x2\":\"12\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiBriefcase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"7\",\"width\":\"20\",\"height\":\"14\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16\"},\"child\":[]}]})(props);\n};\nexport function FiCalendar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"4\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"2\",\"x2\":\"16\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"2\",\"x2\":\"8\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"10\",\"x2\":\"21\",\"y2\":\"10\"},\"child\":[]}]})(props);\n};\nexport function FiCameraOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 21H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h3m3-3h6l2 3h4a2 2 0 0 1 2 2v9.34m-7.72-2.06a4 4 0 1 1-5.56-5.56\"},\"child\":[]}]})(props);\n};\nexport function FiCamera (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23 19a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h4l2-3h6l2 3h4a2 2 0 0 1 2 2z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"13\",\"r\":\"4\"},\"child\":[]}]})(props);\n};\nexport function FiCast (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M2 16.1A5 5 0 0 1 5.9 20M2 12.05A9 9 0 0 1 9.95 20M2 8V6a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2h-6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"y1\":\"20\",\"x2\":\"2.01\",\"y2\":\"20\"},\"child\":[]}]})(props);\n};\nexport function FiCheckCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 11.08V12a10 10 0 1 1-5.93-9.14\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"22 4 12 14.01 9 11.01\"},\"child\":[]}]})(props);\n};\nexport function FiCheckSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 11 12 14 22 4\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 12v7a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11\"},\"child\":[]}]})(props);\n};\nexport function FiCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"20 6 9 17 4 12\"},\"child\":[]}]})(props);\n};\nexport function FiChevronDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"6 9 12 15 18 9\"},\"child\":[]}]})(props);\n};\nexport function FiChevronLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"15 18 9 12 15 6\"},\"child\":[]}]})(props);\n};\nexport function FiChevronRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 18 15 12 9 6\"},\"child\":[]}]})(props);\n};\nexport function FiChevronUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"18 15 12 9 6 15\"},\"child\":[]}]})(props);\n};\nexport function FiChevronsDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"7 13 12 18 17 13\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7 6 12 11 17 6\"},\"child\":[]}]})(props);\n};\nexport function FiChevronsLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"11 17 6 12 11 7\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"18 17 13 12 18 7\"},\"child\":[]}]})(props);\n};\nexport function FiChevronsRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"13 17 18 12 13 7\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"6 17 11 12 6 7\"},\"child\":[]}]})(props);\n};\nexport function FiChevronsUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 11 12 6 7 11\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 18 12 13 7 18\"},\"child\":[]}]})(props);\n};\nexport function FiChrome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21.17\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"3.95\",\"y1\":\"6.06\",\"x2\":\"8.54\",\"y2\":\"14\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"10.88\",\"y1\":\"21.94\",\"x2\":\"15.46\",\"y2\":\"14\"},\"child\":[]}]})(props);\n};\nexport function FiCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]}]})(props);\n};\nexport function FiClipboard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 4h2a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2H6a2 2 0 0 1-2-2V6a2 2 0 0 1 2-2h2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"8\",\"y\":\"2\",\"width\":\"8\",\"height\":\"4\",\"rx\":\"1\",\"ry\":\"1\"},\"child\":[]}]})(props);\n};\nexport function FiClock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 6 12 12 16 14\"},\"child\":[]}]})(props);\n};\nexport function FiCloudDrizzle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"19\",\"x2\":\"8\",\"y2\":\"21\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"13\",\"x2\":\"8\",\"y2\":\"15\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"19\",\"x2\":\"16\",\"y2\":\"21\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"13\",\"x2\":\"16\",\"y2\":\"15\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"21\",\"x2\":\"12\",\"y2\":\"23\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"15\",\"x2\":\"12\",\"y2\":\"17\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 16.58A5 5 0 0 0 18 7h-1.26A8 8 0 1 0 4 15.25\"},\"child\":[]}]})(props);\n};\nexport function FiCloudLightning (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 16.9A5 5 0 0 0 18 7h-1.26a8 8 0 1 0-11.62 9\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"13 11 9 17 15 17 11 23\"},\"child\":[]}]})(props);\n};\nexport function FiCloudOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.61 16.95A5 5 0 0 0 18 10h-1.26a8 8 0 0 0-7.05-6M5 5a8 8 0 0 0 4 15h9a5 5 0 0 0 1.7-.3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"},\"child\":[]}]})(props);\n};\nexport function FiCloudRain (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"13\",\"x2\":\"16\",\"y2\":\"21\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"13\",\"x2\":\"8\",\"y2\":\"21\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"15\",\"x2\":\"12\",\"y2\":\"23\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 16.58A5 5 0 0 0 18 7h-1.26A8 8 0 1 0 4 15.25\"},\"child\":[]}]})(props);\n};\nexport function FiCloudSnow (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 17.58A5 5 0 0 0 18 8h-1.26A8 8 0 1 0 4 16.25\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"16\",\"x2\":\"8.01\",\"y2\":\"16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"20\",\"x2\":\"8.01\",\"y2\":\"20\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"18\",\"x2\":\"12.01\",\"y2\":\"18\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22\",\"x2\":\"12.01\",\"y2\":\"22\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"16\",\"x2\":\"16.01\",\"y2\":\"16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"20\",\"x2\":\"16.01\",\"y2\":\"20\"},\"child\":[]}]})(props);\n};\nexport function FiCloud (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 10h-1.26A8 8 0 1 0 9 20h9a5 5 0 0 0 0-10z\"},\"child\":[]}]})(props);\n};\nexport function FiCode (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 18 22 12 16 6\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"8 6 2 12 8 18\"},\"child\":[]}]})(props);\n};\nexport function FiCodepen (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"12 2 22 8.5 22 15.5 12 22 2 15.5 2 8.5 12 2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22\",\"x2\":\"12\",\"y2\":\"15.5\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"22 8.5 12 15.5 2 8.5\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"2 15.5 12 8.5 22 15.5\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"2\",\"x2\":\"12\",\"y2\":\"8.5\"},\"child\":[]}]})(props);\n};\nexport function FiCodesandbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7.5 4.21 12 6.81 16.5 4.21\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7.5 19.79 7.5 14.6 3 12\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"21 12 16.5 14.6 16.5 19.79\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"3.27 6.96 12 12.01 20.73 6.96\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22.08\",\"x2\":\"12\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiCoffee (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 8h1a4 4 0 0 1 0 8h-1\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 8h16v9a4 4 0 0 1-4 4H6a4 4 0 0 1-4-4V8z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"1\",\"x2\":\"6\",\"y2\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"y1\":\"1\",\"x2\":\"10\",\"y2\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"14\",\"y1\":\"1\",\"x2\":\"14\",\"y2\":\"4\"},\"child\":[]}]})(props);\n};\nexport function FiColumns (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 3h7a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-7m0-18H5a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h7m0-18v18\"},\"child\":[]}]})(props);\n};\nexport function FiCommand (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 3a3 3 0 0 0-3 3v12a3 3 0 0 0 3 3 3 3 0 0 0 3-3 3 3 0 0 0-3-3H6a3 3 0 0 0-3 3 3 3 0 0 0 3 3 3 3 0 0 0 3-3V6a3 3 0 0 0-3-3 3 3 0 0 0-3 3 3 3 0 0 0 3 3h12a3 3 0 0 0 3-3 3 3 0 0 0-3-3z\"},\"child\":[]}]})(props);\n};\nexport function FiCompass (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"16.24 7.76 14.12 14.12 7.76 16.24 9.88 9.88 16.24 7.76\"},\"child\":[]}]})(props);\n};\nexport function FiCopy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"9\",\"y\":\"9\",\"width\":\"13\",\"height\":\"13\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 15H4a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h9a2 2 0 0 1 2 2v1\"},\"child\":[]}]})(props);\n};\nexport function FiCornerDownLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 10 4 15 9 20\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4v7a4 4 0 0 1-4 4H4\"},\"child\":[]}]})(props);\n};\nexport function FiCornerDownRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"15 10 20 15 15 20\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 4v7a4 4 0 0 0 4 4h12\"},\"child\":[]}]})(props);\n};\nexport function FiCornerLeftDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 15 9 20 4 15\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 4h-7a4 4 0 0 0-4 4v12\"},\"child\":[]}]})(props);\n};\nexport function FiCornerLeftUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 9 9 4 4 9\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 20h-7a4 4 0 0 1-4-4V4\"},\"child\":[]}]})(props);\n};\nexport function FiCornerRightDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"10 15 15 20 20 15\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 4h7a4 4 0 0 1 4 4v12\"},\"child\":[]}]})(props);\n};\nexport function FiCornerRightUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"10 9 15 4 20 9\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 20h7a4 4 0 0 0 4-4V4\"},\"child\":[]}]})(props);\n};\nexport function FiCornerUpLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 14 4 9 9 4\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20 20v-7a4 4 0 0 0-4-4H4\"},\"child\":[]}]})(props);\n};\nexport function FiCornerUpRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"15 14 20 9 15 4\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 20v-7a4 4 0 0 1 4-4h12\"},\"child\":[]}]})(props);\n};\nexport function FiCpu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"4\",\"y\":\"4\",\"width\":\"16\",\"height\":\"16\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"9\",\"y\":\"9\",\"width\":\"6\",\"height\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"1\",\"x2\":\"9\",\"y2\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"1\",\"x2\":\"15\",\"y2\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"20\",\"x2\":\"9\",\"y2\":\"23\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"20\",\"x2\":\"15\",\"y2\":\"23\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"20\",\"y1\":\"9\",\"x2\":\"23\",\"y2\":\"9\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"20\",\"y1\":\"14\",\"x2\":\"23\",\"y2\":\"14\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"9\",\"x2\":\"4\",\"y2\":\"9\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"14\",\"x2\":\"4\",\"y2\":\"14\"},\"child\":[]}]})(props);\n};\nexport function FiCreditCard (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"1\",\"y\":\"4\",\"width\":\"22\",\"height\":\"16\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"10\",\"x2\":\"23\",\"y2\":\"10\"},\"child\":[]}]})(props);\n};\nexport function FiCrop (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6.13 1L6 16a2 2 0 0 0 2 2h15\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M1 6.13L16 6a2 2 0 0 1 2 2v15\"},\"child\":[]}]})(props);\n};\nexport function FiCrosshair (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"22\",\"y1\":\"12\",\"x2\":\"18\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"12\",\"x2\":\"2\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"6\",\"x2\":\"12\",\"y2\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22\",\"x2\":\"12\",\"y2\":\"18\"},\"child\":[]}]})(props);\n};\nexport function FiDatabase (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"ellipse\",\"attr\":{\"cx\":\"12\",\"cy\":\"5\",\"rx\":\"9\",\"ry\":\"3\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 12c0 1.66-4 3-9 3s-9-1.34-9-3\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 5v14c0 1.66 4 3 9 3s9-1.34 9-3V5\"},\"child\":[]}]})(props);\n};\nexport function FiDelete (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 4H8l-7 8 7 8h13a2 2 0 0 0 2-2V6a2 2 0 0 0-2-2z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"9\",\"x2\":\"12\",\"y2\":\"15\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"9\",\"x2\":\"18\",\"y2\":\"15\"},\"child\":[]}]})(props);\n};\nexport function FiDisc (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"3\"},\"child\":[]}]})(props);\n};\nexport function FiDivideCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"16\",\"x2\":\"12\",\"y2\":\"16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"8\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]}]})(props);\n};\nexport function FiDivideSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"16\",\"x2\":\"12\",\"y2\":\"16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"8\"},\"child\":[]}]})(props);\n};\nexport function FiDivide (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"6\",\"r\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"5\",\"y1\":\"12\",\"x2\":\"19\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"18\",\"r\":\"2\"},\"child\":[]}]})(props);\n};\nexport function FiDollarSign (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"1\",\"x2\":\"12\",\"y2\":\"23\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 5H9.5a3.5 3.5 0 0 0 0 7h5a3.5 3.5 0 0 1 0 7H6\"},\"child\":[]}]})(props);\n};\nexport function FiDownloadCloud (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"8 17 12 21 16 17\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"12\",\"x2\":\"12\",\"y2\":\"21\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.88 18.09A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.29\"},\"child\":[]}]})(props);\n};\nexport function FiDownload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7 10 12 15 17 10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"15\",\"x2\":\"12\",\"y2\":\"3\"},\"child\":[]}]})(props);\n};\nexport function FiDribbble (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.56 2.75c4.37 6.03 6.02 9.42 8.03 17.72m2.54-15.38c-3.72 4.35-8.94 5.66-16.88 5.85m19.5 1.9c-3.5-.93-6.63-.82-8.94 0-2.58.92-5.01 2.86-7.44 6.32\"},\"child\":[]}]})(props);\n};\nexport function FiDroplet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2.69l5.66 5.66a8 8 0 1 1-11.31 0z\"},\"child\":[]}]})(props);\n};\nexport function FiEdit2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z\"},\"child\":[]}]})(props);\n};\nexport function FiEdit3 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 20h9\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.5 3.5a2.121 2.121 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z\"},\"child\":[]}]})(props);\n};\nexport function FiEdit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M11 4H4a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2v-7\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M18.5 2.5a2.121 2.121 0 0 1 3 3L12 15l-4 1 1-4 9.5-9.5z\"},\"child\":[]}]})(props);\n};\nexport function FiExternalLink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"15 3 21 3 21 9\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"y1\":\"14\",\"x2\":\"21\",\"y2\":\"3\"},\"child\":[]}]})(props);\n};\nexport function FiEyeOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"},\"child\":[]}]})(props);\n};\nexport function FiEye (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"3\"},\"child\":[]}]})(props);\n};\nexport function FiFacebook (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18 2h-3a5 5 0 0 0-5 5v3H7v4h3v8h4v-8h3l1-4h-4V7a1 1 0 0 1 1-1h3z\"},\"child\":[]}]})(props);\n};\nexport function FiFastForward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"13 19 22 12 13 5 13 19\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"2 19 11 12 2 5 2 19\"},\"child\":[]}]})(props);\n};\nexport function FiFeather (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.24 12.24a6 6 0 0 0-8.49-8.49L5 10.5V19h8.5z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"8\",\"x2\":\"2\",\"y2\":\"22\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"17.5\",\"y1\":\"15\",\"x2\":\"9\",\"y2\":\"15\"},\"child\":[]}]})(props);\n};\nexport function FiFigma (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 5.5A3.5 3.5 0 0 1 8.5 2H12v7H8.5A3.5 3.5 0 0 1 5 5.5z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2h3.5a3.5 3.5 0 1 1 0 7H12V2z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 12.5a3.5 3.5 0 1 1 7 0 3.5 3.5 0 1 1-7 0z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 19.5A3.5 3.5 0 0 1 8.5 16H12v3.5a3.5 3.5 0 1 1-7 0z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 12.5A3.5 3.5 0 0 1 8.5 9H12v7H8.5A3.5 3.5 0 0 1 5 12.5z\"},\"child\":[]}]})(props);\n};\nexport function FiFileMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"15\",\"x2\":\"15\",\"y2\":\"15\"},\"child\":[]}]})(props);\n};\nexport function FiFilePlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"18\",\"x2\":\"12\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"15\",\"x2\":\"15\",\"y2\":\"15\"},\"child\":[]}]})(props);\n};\nexport function FiFileText (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"14 2 14 8 20 8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"13\",\"x2\":\"8\",\"y2\":\"13\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"17\",\"x2\":\"8\",\"y2\":\"17\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"10 9 9 9 8 9\"},\"child\":[]}]})(props);\n};\nexport function FiFile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M13 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V9z\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"13 2 13 9 20 9\"},\"child\":[]}]})(props);\n};\nexport function FiFilm (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"2\",\"width\":\"20\",\"height\":\"20\",\"rx\":\"2.18\",\"ry\":\"2.18\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"7\",\"y1\":\"2\",\"x2\":\"7\",\"y2\":\"22\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"2\",\"x2\":\"17\",\"y2\":\"22\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"y1\":\"12\",\"x2\":\"22\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"y1\":\"7\",\"x2\":\"7\",\"y2\":\"7\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"y1\":\"17\",\"x2\":\"7\",\"y2\":\"17\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"17\",\"x2\":\"22\",\"y2\":\"17\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"7\",\"x2\":\"22\",\"y2\":\"7\"},\"child\":[]}]})(props);\n};\nexport function FiFilter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"22 3 2 3 10 12.46 10 19 14 21 14 12.46 22 3\"},\"child\":[]}]})(props);\n};\nexport function FiFlag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"22\",\"x2\":\"4\",\"y2\":\"15\"},\"child\":[]}]})(props);\n};\nexport function FiFolderMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"14\",\"x2\":\"15\",\"y2\":\"14\"},\"child\":[]}]})(props);\n};\nexport function FiFolderPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"11\",\"x2\":\"12\",\"y2\":\"17\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"14\",\"x2\":\"15\",\"y2\":\"14\"},\"child\":[]}]})(props);\n};\nexport function FiFolder (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 19a2 2 0 0 1-2 2H4a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h5l2 3h9a2 2 0 0 1 2 2z\"},\"child\":[]}]})(props);\n};\nexport function FiFramer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 16V9h14V2H5l14 14h-7m-7 0l7 7v-7m-7 0h7\"},\"child\":[]}]})(props);\n};\nexport function FiFrown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 16s-1.5-2-4-2-4 2-4 2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"9\",\"x2\":\"9.01\",\"y2\":\"9\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"9\",\"x2\":\"15.01\",\"y2\":\"9\"},\"child\":[]}]})(props);\n};\nexport function FiGift (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"20 12 20 22 4 22 4 12\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"7\",\"width\":\"20\",\"height\":\"5\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22\",\"x2\":\"12\",\"y2\":\"7\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 7H7.5a2.5 2.5 0 0 1 0-5C11 2 12 7 12 7z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 7h4.5a2.5 2.5 0 0 0 0-5C13 2 12 7 12 7z\"},\"child\":[]}]})(props);\n};\nexport function FiGitBranch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"3\",\"x2\":\"6\",\"y2\":\"15\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"6\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"18\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 9a9 9 0 0 1-9 9\"},\"child\":[]}]})(props);\n};\nexport function FiGitCommit (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1.05\",\"y1\":\"12\",\"x2\":\"7\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"17.01\",\"y1\":\"12\",\"x2\":\"22.96\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiGitMerge (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"18\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"6\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 21V9a9 9 0 0 0 9 9\"},\"child\":[]}]})(props);\n};\nexport function FiGitPullRequest (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"18\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"6\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 6h3a2 2 0 0 1 2 2v7\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"9\",\"x2\":\"6\",\"y2\":\"21\"},\"child\":[]}]})(props);\n};\nexport function FiGithub (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22\"},\"child\":[]}]})(props);\n};\nexport function FiGitlab (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.65 14.39L12 22.13 1.35 14.39a.84.84 0 0 1-.3-.94l1.22-3.78 2.44-7.51A.42.42 0 0 1 4.82 2a.43.43 0 0 1 .58 0 .42.42 0 0 1 .11.18l2.44 7.49h8.1l2.44-7.51A.42.42 0 0 1 18.6 2a.43.43 0 0 1 .58 0 .42.42 0 0 1 .11.18l2.44 7.51L23 13.45a.84.84 0 0 1-.35.94z\"},\"child\":[]}]})(props);\n};\nexport function FiGlobe (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"y1\":\"12\",\"x2\":\"22\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z\"},\"child\":[]}]})(props);\n};\nexport function FiGrid (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"7\",\"height\":\"7\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"14\",\"y\":\"3\",\"width\":\"7\",\"height\":\"7\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"14\",\"y\":\"14\",\"width\":\"7\",\"height\":\"7\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"14\",\"width\":\"7\",\"height\":\"7\"},\"child\":[]}]})(props);\n};\nexport function FiHardDrive (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"22\",\"y1\":\"12\",\"x2\":\"2\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M5.45 5.11L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"16\",\"x2\":\"6.01\",\"y2\":\"16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"y1\":\"16\",\"x2\":\"10.01\",\"y2\":\"16\"},\"child\":[]}]})(props);\n};\nexport function FiHash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"9\",\"x2\":\"20\",\"y2\":\"9\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"15\",\"x2\":\"20\",\"y2\":\"15\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"y1\":\"3\",\"x2\":\"8\",\"y2\":\"21\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"3\",\"x2\":\"14\",\"y2\":\"21\"},\"child\":[]}]})(props);\n};\nexport function FiHeadphones (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 18v-6a9 9 0 0 1 18 0v6\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 19a2 2 0 0 1-2 2h-1a2 2 0 0 1-2-2v-3a2 2 0 0 1 2-2h3zM3 19a2 2 0 0 0 2 2h1a2 2 0 0 0 2-2v-3a2 2 0 0 0-2-2H3z\"},\"child\":[]}]})(props);\n};\nexport function FiHeart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.84 4.61a5.5 5.5 0 0 0-7.78 0L12 5.67l-1.06-1.06a5.5 5.5 0 0 0-7.78 7.78l1.06 1.06L12 21.23l7.78-7.78 1.06-1.06a5.5 5.5 0 0 0 0-7.78z\"},\"child\":[]}]})(props);\n};\nexport function FiHelpCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.09 9a3 3 0 0 1 5.83 1c0 2-3 3-3 3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"17\",\"x2\":\"12.01\",\"y2\":\"17\"},\"child\":[]}]})(props);\n};\nexport function FiHexagon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"},\"child\":[]}]})(props);\n};\nexport function FiHome (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 9l9-7 9 7v11a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2z\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 22 9 12 15 12 15 22\"},\"child\":[]}]})(props);\n};\nexport function FiImage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"8.5\",\"r\":\"1.5\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"21 15 16 10 5 21\"},\"child\":[]}]})(props);\n};\nexport function FiInbox (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"22 12 16 12 14 15 10 15 8 12 2 12\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M5.45 5.11L2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z\"},\"child\":[]}]})(props);\n};\nexport function FiInfo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"16\",\"x2\":\"12\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12.01\",\"y2\":\"8\"},\"child\":[]}]})(props);\n};\nexport function FiInstagram (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"2\",\"width\":\"20\",\"height\":\"20\",\"rx\":\"5\",\"ry\":\"5\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 11.37A4 4 0 1 1 12.63 8 4 4 0 0 1 16 11.37z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"17.5\",\"y1\":\"6.5\",\"x2\":\"17.51\",\"y2\":\"6.5\"},\"child\":[]}]})(props);\n};\nexport function FiItalic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"19\",\"y1\":\"4\",\"x2\":\"10\",\"y2\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"14\",\"y1\":\"20\",\"x2\":\"5\",\"y2\":\"20\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"4\",\"x2\":\"9\",\"y2\":\"20\"},\"child\":[]}]})(props);\n};\nexport function FiKey (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 2l-2 2m-7.61 7.61a5.5 5.5 0 1 1-7.778 7.778 5.5 5.5 0 0 1 7.777-7.777zm0 0L15.5 7.5m0 0l3 3L22 7l-3-3m-3.5 3.5L19 4\"},\"child\":[]}]})(props);\n};\nexport function FiLayers (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"12 2 2 7 12 12 22 7 12 2\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"2 17 12 22 22 17\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"2 12 12 17 22 12\"},\"child\":[]}]})(props);\n};\nexport function FiLayout (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"9\",\"x2\":\"21\",\"y2\":\"9\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"21\",\"x2\":\"9\",\"y2\":\"9\"},\"child\":[]}]})(props);\n};\nexport function FiLifeBuoy (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.93\",\"y1\":\"4.93\",\"x2\":\"9.17\",\"y2\":\"9.17\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"14.83\",\"y1\":\"14.83\",\"x2\":\"19.07\",\"y2\":\"19.07\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"14.83\",\"y1\":\"9.17\",\"x2\":\"19.07\",\"y2\":\"4.93\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"14.83\",\"y1\":\"9.17\",\"x2\":\"18.36\",\"y2\":\"5.64\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.93\",\"y1\":\"19.07\",\"x2\":\"9.17\",\"y2\":\"14.83\"},\"child\":[]}]})(props);\n};\nexport function FiLink2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15 7h3a5 5 0 0 1 5 5 5 5 0 0 1-5 5h-3m-6 0H6a5 5 0 0 1-5-5 5 5 0 0 1 5-5h3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiLink (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10 13a5 5 0 0 0 7.54.54l3-3a5 5 0 0 0-7.07-7.07l-1.72 1.71\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 11a5 5 0 0 0-7.54-.54l-3 3a5 5 0 0 0 7.07 7.07l1.71-1.71\"},\"child\":[]}]})(props);\n};\nexport function FiLinkedin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 8a6 6 0 0 1 6 6v7h-4v-7a2 2 0 0 0-2-2 2 2 0 0 0-2 2v7h-4v-7a6 6 0 0 1 6-6z\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"9\",\"width\":\"4\",\"height\":\"12\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"4\",\"cy\":\"4\",\"r\":\"2\"},\"child\":[]}]})(props);\n};\nexport function FiList (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"6\",\"x2\":\"21\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"21\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"18\",\"x2\":\"21\",\"y2\":\"18\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"6\",\"x2\":\"3.01\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"12\",\"x2\":\"3.01\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"18\",\"x2\":\"3.01\",\"y2\":\"18\"},\"child\":[]}]})(props);\n};\nexport function FiLoader (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"2\",\"x2\":\"12\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"18\",\"x2\":\"12\",\"y2\":\"22\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.93\",\"y1\":\"4.93\",\"x2\":\"7.76\",\"y2\":\"7.76\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16.24\",\"y1\":\"16.24\",\"x2\":\"19.07\",\"y2\":\"19.07\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"y1\":\"12\",\"x2\":\"6\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"12\",\"x2\":\"22\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.93\",\"y1\":\"19.07\",\"x2\":\"7.76\",\"y2\":\"16.24\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16.24\",\"y1\":\"7.76\",\"x2\":\"19.07\",\"y2\":\"4.93\"},\"child\":[]}]})(props);\n};\nexport function FiLock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"11\",\"width\":\"18\",\"height\":\"11\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 11V7a5 5 0 0 1 10 0v4\"},\"child\":[]}]})(props);\n};\nexport function FiLogIn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15 3h4a2 2 0 0 1 2 2v14a2 2 0 0 1-2 2h-4\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"10 17 15 12 10 7\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"12\",\"x2\":\"3\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiLogOut (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 17 21 12 16 7\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"12\",\"x2\":\"9\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiMail (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"22,6 12,13 2,6\"},\"child\":[]}]})(props);\n};\nexport function FiMapPin (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 10c0 7-9 13-9 13s-9-6-9-13a9 9 0 0 1 18 0z\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"10\",\"r\":\"3\"},\"child\":[]}]})(props);\n};\nexport function FiMap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"1 6 1 22 8 18 16 22 23 18 23 2 16 6 8 2 1 6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"2\",\"x2\":\"8\",\"y2\":\"18\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"6\",\"x2\":\"16\",\"y2\":\"22\"},\"child\":[]}]})(props);\n};\nexport function FiMaximize2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"15 3 21 3 21 9\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 21 3 21 3 15\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"3\",\"x2\":\"14\",\"y2\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"21\",\"x2\":\"10\",\"y2\":\"14\"},\"child\":[]}]})(props);\n};\nexport function FiMaximize (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 3H5a2 2 0 0 0-2 2v3m18 0V5a2 2 0 0 0-2-2h-3m0 18h3a2 2 0 0 0 2-2v-3M3 16v3a2 2 0 0 0 2 2h3\"},\"child\":[]}]})(props);\n};\nexport function FiMeh (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"15\",\"x2\":\"16\",\"y2\":\"15\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"9\",\"x2\":\"9.01\",\"y2\":\"9\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"9\",\"x2\":\"15.01\",\"y2\":\"9\"},\"child\":[]}]})(props);\n};\nexport function FiMenu (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"12\",\"x2\":\"21\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"6\",\"x2\":\"21\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"18\",\"x2\":\"21\",\"y2\":\"18\"},\"child\":[]}]})(props);\n};\nexport function FiMessageCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 11.5a8.38 8.38 0 0 1-.9 3.8 8.5 8.5 0 0 1-7.6 4.7 8.38 8.38 0 0 1-3.8-.9L3 21l1.9-5.7a8.38 8.38 0 0 1-.9-3.8 8.5 8.5 0 0 1 4.7-7.6 8.38 8.38 0 0 1 3.8-.9h.5a8.48 8.48 0 0 1 8 8v.5z\"},\"child\":[]}]})(props);\n};\nexport function FiMessageSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 15a2 2 0 0 1-2 2H7l-4 4V5a2 2 0 0 1 2-2h14a2 2 0 0 1 2 2z\"},\"child\":[]}]})(props);\n};\nexport function FiMicOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M9 9v3a3 3 0 0 0 5.12 2.12M15 9.34V4a3 3 0 0 0-5.94-.6\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M17 16.95A7 7 0 0 1 5 12v-2m14 0v2a7 7 0 0 1-.11 1.23\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"19\",\"x2\":\"12\",\"y2\":\"23\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"23\",\"x2\":\"16\",\"y2\":\"23\"},\"child\":[]}]})(props);\n};\nexport function FiMic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 1a3 3 0 0 0-3 3v8a3 3 0 0 0 6 0V4a3 3 0 0 0-3-3z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 10v2a7 7 0 0 1-14 0v-2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"19\",\"x2\":\"12\",\"y2\":\"23\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"23\",\"x2\":\"16\",\"y2\":\"23\"},\"child\":[]}]})(props);\n};\nexport function FiMinimize2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"4 14 10 14 10 20\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"20 10 14 10 14 4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"14\",\"y1\":\"10\",\"x2\":\"21\",\"y2\":\"3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"21\",\"x2\":\"10\",\"y2\":\"14\"},\"child\":[]}]})(props);\n};\nexport function FiMinimize (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M8 3v3a2 2 0 0 1-2 2H3m18 0h-3a2 2 0 0 1-2-2V3m0 18v-3a2 2 0 0 1 2-2h3M3 16h3a2 2 0 0 1 2 2v3\"},\"child\":[]}]})(props);\n};\nexport function FiMinusCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiMinusSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"5\",\"y1\":\"12\",\"x2\":\"19\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiMonitor (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"3\",\"width\":\"20\",\"height\":\"14\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"21\",\"x2\":\"16\",\"y2\":\"21\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"17\",\"x2\":\"12\",\"y2\":\"21\"},\"child\":[]}]})(props);\n};\nexport function FiMoon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z\"},\"child\":[]}]})(props);\n};\nexport function FiMoreHorizontal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"1\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"19\",\"cy\":\"12\",\"r\":\"1\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"5\",\"cy\":\"12\",\"r\":\"1\"},\"child\":[]}]})(props);\n};\nexport function FiMoreVertical (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"1\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"5\",\"r\":\"1\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"19\",\"r\":\"1\"},\"child\":[]}]})(props);\n};\nexport function FiMousePointer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M3 3l7.07 16.97 2.51-7.39 7.39-2.51L3 3z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M13 13l6 6\"},\"child\":[]}]})(props);\n};\nexport function FiMove (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"5 9 2 12 5 15\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"9 5 12 2 15 5\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"15 19 12 22 9 19\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"19 9 22 12 19 15\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"2\",\"y1\":\"12\",\"x2\":\"22\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"2\",\"x2\":\"12\",\"y2\":\"22\"},\"child\":[]}]})(props);\n};\nexport function FiMusic (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 18V5l12-2v13\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"18\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"16\",\"r\":\"3\"},\"child\":[]}]})(props);\n};\nexport function FiNavigation2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"12 2 19 21 12 17 5 21 12 2\"},\"child\":[]}]})(props);\n};\nexport function FiNavigation (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"3 11 22 2 13 21 11 13 3 11\"},\"child\":[]}]})(props);\n};\nexport function FiOctagon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2\"},\"child\":[]}]})(props);\n};\nexport function FiPackage (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"16.5\",\"y1\":\"9.4\",\"x2\":\"7.5\",\"y2\":\"4.21\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"3.27 6.96 12 12.01 20.73 6.96\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"22.08\",\"x2\":\"12\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiPaperclip (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48\"},\"child\":[]}]})(props);\n};\nexport function FiPauseCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"y1\":\"15\",\"x2\":\"10\",\"y2\":\"9\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"14\",\"y1\":\"15\",\"x2\":\"14\",\"y2\":\"9\"},\"child\":[]}]})(props);\n};\nexport function FiPause (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"4\",\"width\":\"4\",\"height\":\"16\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"14\",\"y\":\"4\",\"width\":\"4\",\"height\":\"16\"},\"child\":[]}]})(props);\n};\nexport function FiPenTool (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 19l7-7 3 3-7 7-3-3z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M18 13l-1.5-7.5L2 2l3.5 14.5L13 18l5-5z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M2 2l7.586 7.586\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"11\",\"cy\":\"11\",\"r\":\"2\"},\"child\":[]}]})(props);\n};\nexport function FiPercent (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"19\",\"y1\":\"5\",\"x2\":\"5\",\"y2\":\"19\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6.5\",\"cy\":\"6.5\",\"r\":\"2.5\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"17.5\",\"cy\":\"17.5\",\"r\":\"2.5\"},\"child\":[]}]})(props);\n};\nexport function FiPhoneCall (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M15.05 5A5 5 0 0 1 19 8.95M15.05 1A9 9 0 0 1 23 8.94m-1 7.98v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"},\"child\":[]}]})(props);\n};\nexport function FiPhoneForwarded (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"19 1 23 5 19 9\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"5\",\"x2\":\"23\",\"y2\":\"5\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"},\"child\":[]}]})(props);\n};\nexport function FiPhoneIncoming (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 2 16 8 22 8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"1\",\"x2\":\"16\",\"y2\":\"8\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"},\"child\":[]}]})(props);\n};\nexport function FiPhoneMissed (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"1\",\"x2\":\"17\",\"y2\":\"7\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"7\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"},\"child\":[]}]})(props);\n};\nexport function FiPhoneOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.68 13.31a16 16 0 0 0 3.41 2.6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7 2 2 0 0 1 1.72 2v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.42 19.42 0 0 1-3.33-2.67m-2.67-3.34a19.79 19.79 0 0 1-3.07-8.63A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"1\",\"x2\":\"1\",\"y2\":\"23\"},\"child\":[]}]})(props);\n};\nexport function FiPhoneOutgoing (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"23 7 23 1 17 1\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"16\",\"y1\":\"8\",\"x2\":\"23\",\"y2\":\"1\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"},\"child\":[]}]})(props);\n};\nexport function FiPhone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22 16.92v3a2 2 0 0 1-2.18 2 19.79 19.79 0 0 1-8.63-3.07 19.5 19.5 0 0 1-6-6 19.79 19.79 0 0 1-3.07-8.67A2 2 0 0 1 4.11 2h3a2 2 0 0 1 2 1.72 12.84 12.84 0 0 0 .7 2.81 2 2 0 0 1-.45 2.11L8.09 9.91a16 16 0 0 0 6 6l1.27-1.27a2 2 0 0 1 2.11-.45 12.84 12.84 0 0 0 2.81.7A2 2 0 0 1 22 16.92z\"},\"child\":[]}]})(props);\n};\nexport function FiPieChart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21.21 15.89A10 10 0 1 1 8 2.83\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M22 12A10 10 0 0 0 12 2v10z\"},\"child\":[]}]})(props);\n};\nexport function FiPlayCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"10 8 16 12 10 16 10 8\"},\"child\":[]}]})(props);\n};\nexport function FiPlay (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"5 3 19 12 5 21 5 3\"},\"child\":[]}]})(props);\n};\nexport function FiPlusCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiPlusSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"12\",\"x2\":\"16\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"5\",\"x2\":\"12\",\"y2\":\"19\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"5\",\"y1\":\"12\",\"x2\":\"19\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiPocket (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 3h16a2 2 0 0 1 2 2v6a10 10 0 0 1-10 10A10 10 0 0 1 2 11V5a2 2 0 0 1 2-2z\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"8 10 12 14 16 10\"},\"child\":[]}]})(props);\n};\nexport function FiPower (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M18.36 6.64a9 9 0 1 1-12.73 0\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"2\",\"x2\":\"12\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiPrinter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"6 9 6 2 18 2 18 9\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M6 18H4a2 2 0 0 1-2-2v-5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2v5a2 2 0 0 1-2 2h-2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"6\",\"y\":\"14\",\"width\":\"12\",\"height\":\"8\"},\"child\":[]}]})(props);\n};\nexport function FiRadio (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"2\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.24 7.76a6 6 0 0 1 0 8.49m-8.48-.01a6 6 0 0 1 0-8.49m11.31-2.82a10 10 0 0 1 0 14.14m-14.14 0a10 10 0 0 1 0-14.14\"},\"child\":[]}]})(props);\n};\nexport function FiRefreshCcw (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"1 4 1 10 7 10\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"23 20 23 14 17 14\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.49 9A9 9 0 0 0 5.64 5.64L1 10m22 4l-4.64 4.36A9 9 0 0 1 3.51 15\"},\"child\":[]}]})(props);\n};\nexport function FiRefreshCw (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"23 4 23 10 17 10\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"1 20 1 14 7 14\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M3.51 9a9 9 0 0 1 14.85-3.36L23 10M1 14l4.64 4.36A9 9 0 0 0 20.49 15\"},\"child\":[]}]})(props);\n};\nexport function FiRepeat (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 1 21 5 17 9\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M3 11V9a4 4 0 0 1 4-4h14\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7 23 3 19 7 15\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M21 13v2a4 4 0 0 1-4 4H3\"},\"child\":[]}]})(props);\n};\nexport function FiRewind (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"11 19 2 12 11 5 11 19\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"22 19 13 12 22 5 22 19\"},\"child\":[]}]})(props);\n};\nexport function FiRotateCcw (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"1 4 1 10 7 10\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M3.51 15a9 9 0 1 0 2.13-9.36L1 10\"},\"child\":[]}]})(props);\n};\nexport function FiRotateCw (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"23 4 23 10 17 10\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.49 15a9 9 0 1 1-2.12-9.36L23 10\"},\"child\":[]}]})(props);\n};\nexport function FiRss (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 11a9 9 0 0 1 9 9\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M4 4a16 16 0 0 1 16 16\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"5\",\"cy\":\"19\",\"r\":\"1\"},\"child\":[]}]})(props);\n};\nexport function FiSave (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h11l5 5v11a2 2 0 0 1-2 2z\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 21 17 13 7 13 7 21\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"7 3 7 8 15 8\"},\"child\":[]}]})(props);\n};\nexport function FiScissors (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"6\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"18\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"20\",\"y1\":\"4\",\"x2\":\"8.12\",\"y2\":\"15.88\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"14.47\",\"y1\":\"14.48\",\"x2\":\"20\",\"y2\":\"20\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8.12\",\"y1\":\"8.12\",\"x2\":\"12\",\"y2\":\"12\"},\"child\":[]}]})(props);\n};\nexport function FiSearch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"11\",\"cy\":\"11\",\"r\":\"8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"21\",\"x2\":\"16.65\",\"y2\":\"16.65\"},\"child\":[]}]})(props);\n};\nexport function FiSend (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"22\",\"y1\":\"2\",\"x2\":\"11\",\"y2\":\"13\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"22 2 15 22 11 13 2 9 22 2\"},\"child\":[]}]})(props);\n};\nexport function FiServer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"2\",\"width\":\"20\",\"height\":\"8\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"14\",\"width\":\"20\",\"height\":\"8\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"6\",\"x2\":\"6.01\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"18\",\"x2\":\"6.01\",\"y2\":\"18\"},\"child\":[]}]})(props);\n};\nexport function FiSettings (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1 0 2.83 2 2 0 0 1-2.83 0l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-2 2 2 2 0 0 1-2-2v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83 0 2 2 0 0 1 0-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1-2-2 2 2 0 0 1 2-2h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 0-2.83 2 2 0 0 1 2.83 0l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 2-2 2 2 0 0 1 2 2v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 0 2 2 0 0 1 0 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 2 2 2 2 0 0 1-2 2h-.09a1.65 1.65 0 0 0-1.51 1z\"},\"child\":[]}]})(props);\n};\nexport function FiShare2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"5\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"6\",\"cy\":\"12\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18\",\"cy\":\"19\",\"r\":\"3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8.59\",\"y1\":\"13.51\",\"x2\":\"15.42\",\"y2\":\"17.49\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15.41\",\"y1\":\"6.51\",\"x2\":\"8.59\",\"y2\":\"10.49\"},\"child\":[]}]})(props);\n};\nexport function FiShare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M4 12v8a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2v-8\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 6 12 2 8 6\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"2\",\"x2\":\"12\",\"y2\":\"15\"},\"child\":[]}]})(props);\n};\nexport function FiShieldOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M19.69 14a6.9 6.9 0 0 0 .31-2V5l-8-3-3.16 1.18\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M4.73 4.73L4 5v7c0 6 8 10 8 10a20.29 20.29 0 0 0 5.62-4.38\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"},\"child\":[]}]})(props);\n};\nexport function FiShield (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z\"},\"child\":[]}]})(props);\n};\nexport function FiShoppingBag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 2L3 6v14a2 2 0 0 0 2 2h14a2 2 0 0 0 2-2V6l-3-4z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"3\",\"y1\":\"6\",\"x2\":\"21\",\"y2\":\"6\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 10a4 4 0 0 1-8 0\"},\"child\":[]}]})(props);\n};\nexport function FiShoppingCart (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"21\",\"r\":\"1\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"20\",\"cy\":\"21\",\"r\":\"1\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6\"},\"child\":[]}]})(props);\n};\nexport function FiShuffle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 3 21 3 21 8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"20\",\"x2\":\"21\",\"y2\":\"3\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"21 16 21 21 16 21\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"15\",\"x2\":\"21\",\"y2\":\"21\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"4\",\"x2\":\"9\",\"y2\":\"9\"},\"child\":[]}]})(props);\n};\nexport function FiSidebar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"3\",\"x2\":\"9\",\"y2\":\"21\"},\"child\":[]}]})(props);\n};\nexport function FiSkipBack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"19 20 9 12 19 4 19 20\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"5\",\"y1\":\"19\",\"x2\":\"5\",\"y2\":\"5\"},\"child\":[]}]})(props);\n};\nexport function FiSkipForward (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"5 4 15 12 5 20 5 4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"19\",\"y1\":\"5\",\"x2\":\"19\",\"y2\":\"19\"},\"child\":[]}]})(props);\n};\nexport function FiSlack (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.5 10c-.83 0-1.5-.67-1.5-1.5v-5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5v5c0 .83-.67 1.5-1.5 1.5z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.5 10H19V8.5c0-.83.67-1.5 1.5-1.5s1.5.67 1.5 1.5-.67 1.5-1.5 1.5z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M9.5 14c.83 0 1.5.67 1.5 1.5v5c0 .83-.67 1.5-1.5 1.5S8 21.33 8 20.5v-5c0-.83.67-1.5 1.5-1.5z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M3.5 14H5v1.5c0 .83-.67 1.5-1.5 1.5S2 16.33 2 15.5 2.67 14 3.5 14z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M14 14.5c0-.83.67-1.5 1.5-1.5h5c.83 0 1.5.67 1.5 1.5s-.67 1.5-1.5 1.5h-5c-.83 0-1.5-.67-1.5-1.5z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.5 19H14v1.5c0 .83.67 1.5 1.5 1.5s1.5-.67 1.5-1.5-.67-1.5-1.5-1.5z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M10 9.5C10 8.67 9.33 8 8.5 8h-5C2.67 8 2 8.67 2 9.5S2.67 11 3.5 11h5c.83 0 1.5-.67 1.5-1.5z\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.5 5H10V3.5C10 2.67 9.33 2 8.5 2S7 2.67 7 3.5 7.67 5 8.5 5z\"},\"child\":[]}]})(props);\n};\nexport function FiSlash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.93\",\"y1\":\"4.93\",\"x2\":\"19.07\",\"y2\":\"19.07\"},\"child\":[]}]})(props);\n};\nexport function FiSliders (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"21\",\"x2\":\"4\",\"y2\":\"14\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"10\",\"x2\":\"4\",\"y2\":\"3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"21\",\"x2\":\"12\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"8\",\"x2\":\"12\",\"y2\":\"3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"20\",\"y1\":\"21\",\"x2\":\"20\",\"y2\":\"16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"20\",\"y1\":\"12\",\"x2\":\"20\",\"y2\":\"3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"14\",\"x2\":\"7\",\"y2\":\"14\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"8\",\"x2\":\"15\",\"y2\":\"8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"16\",\"x2\":\"23\",\"y2\":\"16\"},\"child\":[]}]})(props);\n};\nexport function FiSmartphone (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"5\",\"y\":\"2\",\"width\":\"14\",\"height\":\"20\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"18\",\"x2\":\"12.01\",\"y2\":\"18\"},\"child\":[]}]})(props);\n};\nexport function FiSmile (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M8 14s1.5 2 4 2 4-2 4-2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"9\",\"x2\":\"9.01\",\"y2\":\"9\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"9\",\"x2\":\"15.01\",\"y2\":\"9\"},\"child\":[]}]})(props);\n};\nexport function FiSpeaker (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"4\",\"y\":\"2\",\"width\":\"16\",\"height\":\"20\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"14\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"6\",\"x2\":\"12.01\",\"y2\":\"6\"},\"child\":[]}]})(props);\n};\nexport function FiSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]}]})(props);\n};\nexport function FiStar (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"12 2 15.09 8.26 22 9.27 17 14.14 18.18 21.02 12 17.77 5.82 21.02 7 14.14 2 9.27 8.91 8.26 12 2\"},\"child\":[]}]})(props);\n};\nexport function FiStopCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"9\",\"y\":\"9\",\"width\":\"6\",\"height\":\"6\"},\"child\":[]}]})(props);\n};\nexport function FiSun (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"5\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"1\",\"x2\":\"12\",\"y2\":\"3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"21\",\"x2\":\"12\",\"y2\":\"23\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.22\",\"y1\":\"4.22\",\"x2\":\"5.64\",\"y2\":\"5.64\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"18.36\",\"y1\":\"18.36\",\"x2\":\"19.78\",\"y2\":\"19.78\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"12\",\"x2\":\"3\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"12\",\"x2\":\"23\",\"y2\":\"12\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.22\",\"y1\":\"19.78\",\"x2\":\"5.64\",\"y2\":\"18.36\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"18.36\",\"y1\":\"5.64\",\"x2\":\"19.78\",\"y2\":\"4.22\"},\"child\":[]}]})(props);\n};\nexport function FiSunrise (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 18a5 5 0 0 0-10 0\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"2\",\"x2\":\"12\",\"y2\":\"9\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.22\",\"y1\":\"10.22\",\"x2\":\"5.64\",\"y2\":\"11.64\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"18\",\"x2\":\"3\",\"y2\":\"18\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"18\",\"x2\":\"23\",\"y2\":\"18\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"18.36\",\"y1\":\"11.64\",\"x2\":\"19.78\",\"y2\":\"10.22\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"22\",\"x2\":\"1\",\"y2\":\"22\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"8 6 12 2 16 6\"},\"child\":[]}]})(props);\n};\nexport function FiSunset (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 18a5 5 0 0 0-10 0\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"9\",\"x2\":\"12\",\"y2\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4.22\",\"y1\":\"10.22\",\"x2\":\"5.64\",\"y2\":\"11.64\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"18\",\"x2\":\"3\",\"y2\":\"18\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"18\",\"x2\":\"23\",\"y2\":\"18\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"18.36\",\"y1\":\"11.64\",\"x2\":\"19.78\",\"y2\":\"10.22\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"22\",\"x2\":\"1\",\"y2\":\"22\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 5 12 9 8 5\"},\"child\":[]}]})(props);\n};\nexport function FiTable (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9 3H5a2 2 0 0 0-2 2v4m6-6h10a2 2 0 0 1 2 2v4M9 3v18m0 0h10a2 2 0 0 0 2-2V9M9 21H5a2 2 0 0 1-2-2V9m0 0h18\"},\"child\":[]}]})(props);\n};\nexport function FiTablet (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"4\",\"y\":\"2\",\"width\":\"16\",\"height\":\"20\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"18\",\"x2\":\"12.01\",\"y2\":\"18\"},\"child\":[]}]})(props);\n};\nexport function FiTag (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20.59 13.41l-7.17 7.17a2 2 0 0 1-2.83 0L2 12V2h10l8.59 8.59a2 2 0 0 1 0 2.82z\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"7\",\"y1\":\"7\",\"x2\":\"7.01\",\"y2\":\"7\"},\"child\":[]}]})(props);\n};\nexport function FiTarget (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"6\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"2\"},\"child\":[]}]})(props);\n};\nexport function FiTerminal (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"4 17 10 11 4 5\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"19\",\"x2\":\"20\",\"y2\":\"19\"},\"child\":[]}]})(props);\n};\nexport function FiThermometer (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 14.76V3.5a2.5 2.5 0 0 0-5 0v11.26a4.5 4.5 0 1 0 5 0z\"},\"child\":[]}]})(props);\n};\nexport function FiThumbsDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10 15v4a3 3 0 0 0 3 3l4-9V2H5.72a2 2 0 0 0-2 1.7l-1.38 9a2 2 0 0 0 2 2.3zm7-13h2.67A2.31 2.31 0 0 1 22 4v7a2.31 2.31 0 0 1-2.33 2H17\"},\"child\":[]}]})(props);\n};\nexport function FiThumbsUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3\"},\"child\":[]}]})(props);\n};\nexport function FiToggleLeft (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"1\",\"y\":\"5\",\"width\":\"22\",\"height\":\"14\",\"rx\":\"7\",\"ry\":\"7\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8\",\"cy\":\"12\",\"r\":\"3\"},\"child\":[]}]})(props);\n};\nexport function FiToggleRight (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"1\",\"y\":\"5\",\"width\":\"22\",\"height\":\"14\",\"rx\":\"7\",\"ry\":\"7\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"16\",\"cy\":\"12\",\"r\":\"3\"},\"child\":[]}]})(props);\n};\nexport function FiTool (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.77-3.77a6 6 0 0 1-7.94 7.94l-6.91 6.91a2.12 2.12 0 0 1-3-3l6.91-6.91a6 6 0 0 1 7.94-7.94l-3.76 3.76z\"},\"child\":[]}]})(props);\n};\nexport function FiTrash2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"3 6 5 6 21 6\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"10\",\"y1\":\"11\",\"x2\":\"10\",\"y2\":\"17\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"14\",\"y1\":\"11\",\"x2\":\"14\",\"y2\":\"17\"},\"child\":[]}]})(props);\n};\nexport function FiTrash (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"3 6 5 6 21 6\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6m3 0V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2\"},\"child\":[]}]})(props);\n};\nexport function FiTrello (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"7\",\"y\":\"7\",\"width\":\"3\",\"height\":\"9\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"14\",\"y\":\"7\",\"width\":\"3\",\"height\":\"5\"},\"child\":[]}]})(props);\n};\nexport function FiTrendingDown (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"23 18 13.5 8.5 8.5 13.5 1 6\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 18 23 18 23 12\"},\"child\":[]}]})(props);\n};\nexport function FiTrendingUp (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"23 6 13.5 15.5 8.5 10.5 1 18\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 6 23 6 23 12\"},\"child\":[]}]})(props);\n};\nexport function FiTriangle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z\"},\"child\":[]}]})(props);\n};\nexport function FiTruck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"1\",\"y\":\"3\",\"width\":\"15\",\"height\":\"13\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"16 8 20 8 23 11 23 16 16 16 16 8\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"5.5\",\"cy\":\"18.5\",\"r\":\"2.5\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18.5\",\"cy\":\"18.5\",\"r\":\"2.5\"},\"child\":[]}]})(props);\n};\nexport function FiTv (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"2\",\"y\":\"7\",\"width\":\"20\",\"height\":\"15\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 2 12 7 7 2\"},\"child\":[]}]})(props);\n};\nexport function FiTwitch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 2H3v16h5v4l4-4h5l4-4V2zm-10 9V7m5 4V7\"},\"child\":[]}]})(props);\n};\nexport function FiTwitter (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23 3a10.9 10.9 0 0 1-3.14 1.53 4.48 4.48 0 0 0-7.86 3v1A10.66 10.66 0 0 1 3 4s-4 9 5 13a11.64 11.64 0 0 1-7 2c9 5 20 0 20-11.5a4.5 4.5 0 0 0-.08-.83A7.72 7.72 0 0 0 23 3z\"},\"child\":[]}]})(props);\n};\nexport function FiType (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"4 7 4 4 20 4 20 7\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"20\",\"x2\":\"15\",\"y2\":\"20\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"4\",\"x2\":\"12\",\"y2\":\"20\"},\"child\":[]}]})(props);\n};\nexport function FiUmbrella (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M23 12a11.05 11.05 0 0 0-22 0zm-5 7a3 3 0 0 1-6 0v-7\"},\"child\":[]}]})(props);\n};\nexport function FiUnderline (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M6 3v7a6 6 0 0 0 6 6 6 6 0 0 0 6-6V3\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"4\",\"y1\":\"21\",\"x2\":\"20\",\"y2\":\"21\"},\"child\":[]}]})(props);\n};\nexport function FiUnlock (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"11\",\"width\":\"18\",\"height\":\"11\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M7 11V7a5 5 0 0 1 9.9-1\"},\"child\":[]}]})(props);\n};\nexport function FiUploadCloud (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 16 12 12 8 16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"12\",\"x2\":\"12\",\"y2\":\"21\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M20.39 18.39A5 5 0 0 0 18 9h-1.26A8 8 0 1 0 3 16.3\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"16 16 12 12 8 16\"},\"child\":[]}]})(props);\n};\nexport function FiUpload (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 8 12 3 7 8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"3\",\"x2\":\"12\",\"y2\":\"15\"},\"child\":[]}]})(props);\n};\nexport function FiUserCheck (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"7\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"17 11 19 13 23 9\"},\"child\":[]}]})(props);\n};\nexport function FiUserMinus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"7\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"11\",\"x2\":\"17\",\"y2\":\"11\"},\"child\":[]}]})(props);\n};\nexport function FiUserPlus (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"7\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"20\",\"y1\":\"8\",\"x2\":\"20\",\"y2\":\"14\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"11\",\"x2\":\"17\",\"y2\":\"11\"},\"child\":[]}]})(props);\n};\nexport function FiUserX (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"8.5\",\"cy\":\"7\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"8\",\"x2\":\"23\",\"y2\":\"13\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"8\",\"x2\":\"18\",\"y2\":\"13\"},\"child\":[]}]})(props);\n};\nexport function FiUser (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M20 21v-2a4 4 0 0 0-4-4H8a4 4 0 0 0-4 4v2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"7\",\"r\":\"4\"},\"child\":[]}]})(props);\n};\nexport function FiUsers (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M17 21v-2a4 4 0 0 0-4-4H5a4 4 0 0 0-4 4v2\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"9\",\"cy\":\"7\",\"r\":\"4\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M23 21v-2a4 4 0 0 0-3-3.87\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16 3.13a4 4 0 0 1 0 7.75\"},\"child\":[]}]})(props);\n};\nexport function FiVideoOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M16 16v1a2 2 0 0 1-2 2H3a2 2 0 0 1-2-2V7a2 2 0 0 1 2-2h2m5.66 0H14a2 2 0 0 1 2 2v3.34l1 1L23 7v10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"},\"child\":[]}]})(props);\n};\nexport function FiVideo (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"23 7 16 12 23 17 23 7\"},\"child\":[]},{\"tag\":\"rect\",\"attr\":{\"x\":\"1\",\"y\":\"5\",\"width\":\"15\",\"height\":\"14\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]}]})(props);\n};\nexport function FiVoicemail (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"5.5\",\"cy\":\"11.5\",\"r\":\"4.5\"},\"child\":[]},{\"tag\":\"circle\",\"attr\":{\"cx\":\"18.5\",\"cy\":\"11.5\",\"r\":\"4.5\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"5.5\",\"y1\":\"16\",\"x2\":\"18.5\",\"y2\":\"16\"},\"child\":[]}]})(props);\n};\nexport function FiVolume1 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M15.54 8.46a5 5 0 0 1 0 7.07\"},\"child\":[]}]})(props);\n};\nexport function FiVolume2 (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M19.07 4.93a10 10 0 0 1 0 14.14M15.54 8.46a5 5 0 0 1 0 7.07\"},\"child\":[]}]})(props);\n};\nexport function FiVolumeX (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"23\",\"y1\":\"9\",\"x2\":\"17\",\"y2\":\"15\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"17\",\"y1\":\"9\",\"x2\":\"23\",\"y2\":\"15\"},\"child\":[]}]})(props);\n};\nexport function FiVolume (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"11 5 6 9 2 9 2 15 6 15 11 19 11 5\"},\"child\":[]}]})(props);\n};\nexport function FiWatch (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"7\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"12 9 12 12 13.5 13.5\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.51 17.35l-.35 3.83a2 2 0 0 1-2 1.82H9.83a2 2 0 0 1-2-1.82l-.35-3.83m.01-10.7l.35-3.83A2 2 0 0 1 9.83 1h4.35a2 2 0 0 1 2 1.82l.35 3.83\"},\"child\":[]}]})(props);\n};\nexport function FiWifiOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M16.72 11.06A10.94 10.94 0 0 1 19 12.55\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M5 12.55a10.94 10.94 0 0 1 5.17-2.39\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M10.71 5.05A16 16 0 0 1 22.58 9\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M1.42 9a15.91 15.91 0 0 1 4.7-2.88\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.53 16.11a6 6 0 0 1 6.95 0\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"20\",\"x2\":\"12.01\",\"y2\":\"20\"},\"child\":[]}]})(props);\n};\nexport function FiWifi (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M5 12.55a11 11 0 0 1 14.08 0\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M1.42 9a16 16 0 0 1 21.16 0\"},\"child\":[]},{\"tag\":\"path\",\"attr\":{\"d\":\"M8.53 16.11a6 6 0 0 1 6.95 0\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"12\",\"y1\":\"20\",\"x2\":\"12.01\",\"y2\":\"20\"},\"child\":[]}]})(props);\n};\nexport function FiWind (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M9.59 4.59A2 2 0 1 1 11 8H2m10.59 11.41A2 2 0 1 0 14 16H2m15.73-8.27A2.5 2.5 0 1 1 19.5 12H2\"},\"child\":[]}]})(props);\n};\nexport function FiXCircle (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"9\",\"x2\":\"9\",\"y2\":\"15\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"9\",\"x2\":\"15\",\"y2\":\"15\"},\"child\":[]}]})(props);\n};\nexport function FiXOctagon (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"9\",\"x2\":\"9\",\"y2\":\"15\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"9\",\"x2\":\"15\",\"y2\":\"15\"},\"child\":[]}]})(props);\n};\nexport function FiXSquare (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"rect\",\"attr\":{\"x\":\"3\",\"y\":\"3\",\"width\":\"18\",\"height\":\"18\",\"rx\":\"2\",\"ry\":\"2\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"9\",\"y1\":\"9\",\"x2\":\"15\",\"y2\":\"15\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"15\",\"y1\":\"9\",\"x2\":\"9\",\"y2\":\"15\"},\"child\":[]}]})(props);\n};\nexport function FiX (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"line\",\"attr\":{\"x1\":\"18\",\"y1\":\"6\",\"x2\":\"6\",\"y2\":\"18\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"6\",\"y1\":\"6\",\"x2\":\"18\",\"y2\":\"18\"},\"child\":[]}]})(props);\n};\nexport function FiYoutube (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"path\",\"attr\":{\"d\":\"M22.54 6.42a2.78 2.78 0 0 0-1.94-2C18.88 4 12 4 12 4s-6.88 0-8.6.46a2.78 2.78 0 0 0-1.94 2A29 29 0 0 0 1 11.75a29 29 0 0 0 .46 5.33A2.78 2.78 0 0 0 3.4 19c1.72.46 8.6.46 8.6.46s6.88 0 8.6-.46a2.78 2.78 0 0 0 1.94-2 29 29 0 0 0 .46-5.25 29 29 0 0 0-.46-5.33z\"},\"child\":[]},{\"tag\":\"polygon\",\"attr\":{\"points\":\"9.75 15.02 15.5 11.75 9.75 8.48 9.75 15.02\"},\"child\":[]}]})(props);\n};\nexport function FiZapOff (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polyline\",\"attr\":{\"points\":\"12.41 6.75 13 2 10.57 4.92\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"18.57 12.91 21 10 15.66 10\"},\"child\":[]},{\"tag\":\"polyline\",\"attr\":{\"points\":\"8 8 3 14 12 14 11 22 16 16\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"1\",\"y1\":\"1\",\"x2\":\"23\",\"y2\":\"23\"},\"child\":[]}]})(props);\n};\nexport function FiZap (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"polygon\",\"attr\":{\"points\":\"13 2 3 14 12 14 11 22 21 10 12 10 13 2\"},\"child\":[]}]})(props);\n};\nexport function FiZoomIn (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"11\",\"cy\":\"11\",\"r\":\"8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"21\",\"x2\":\"16.65\",\"y2\":\"16.65\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"11\",\"y1\":\"8\",\"x2\":\"11\",\"y2\":\"14\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"11\",\"x2\":\"14\",\"y2\":\"11\"},\"child\":[]}]})(props);\n};\nexport function FiZoomOut (props) {\n return GenIcon({\"tag\":\"svg\",\"attr\":{\"viewBox\":\"0 0 24 24\",\"fill\":\"none\",\"stroke\":\"currentColor\",\"strokeWidth\":\"2\",\"strokeLinecap\":\"round\",\"strokeLinejoin\":\"round\"},\"child\":[{\"tag\":\"circle\",\"attr\":{\"cx\":\"11\",\"cy\":\"11\",\"r\":\"8\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"21\",\"y1\":\"21\",\"x2\":\"16.65\",\"y2\":\"16.65\"},\"child\":[]},{\"tag\":\"line\",\"attr\":{\"x1\":\"8\",\"y1\":\"11\",\"x2\":\"14\",\"y2\":\"11\"},\"child\":[]}]})(props);\n};\n","export const formatDateToEuropean = (date: string | Date | undefined): string => {\n if (!date) return '';\n const d = new Date(date);\n if (isNaN(d.getTime())) return '';\n const day = d.getDate().toString().padStart(2, '0');\n const month = (d.getMonth() + 1).toString().padStart(2, '0');\n const year = d.getFullYear();\n return `${day}/${month}/${year}`;\n};\n\nexport const parseEuropeanDate = (dateString: string): string => {\n if (!dateString) return '';\n \n const cleanDate = dateString.replace(/[^\\d/]/g, '');\n const parts = cleanDate.split('/');\n \n if (parts.length === 3) {\n const [day, month, year] = parts;\n const fullYear = year.length === 2 ? `20${year}` : year;\n const isoDate = `${fullYear}-${month.padStart(2, '0')}-${day.padStart(2, '0')}`;\n \n const testDate = new Date(isoDate);\n if (!isNaN(testDate.getTime())) {\n return isoDate;\n }\n }\n return '';\n};\n\nexport const formatTimeDisplay = (value: string): string => {\n const cleanValue = value.replace(/[^\\d]/g, '');\n let formatted = cleanValue;\n \n if (cleanValue.length >= 3) {\n formatted = cleanValue.substring(0, 2) + ':' + cleanValue.substring(2, 4);\n } else if (cleanValue.length === 2) {\n const hours = parseInt(cleanValue);\n if (hours > 23) {\n formatted = '23';\n }\n }\n \n return formatted;\n};\n\nexport const parseTime = (timeString: string): { hours: number; minutes: number } | null => {\n const match = timeString.match(/^(\\d{1,2}):(\\d{2})$/);\n if (match) {\n const hours = parseInt(match[1]);\n const minutes = parseInt(match[2]);\n if (hours >= 0 && hours <= 23 && minutes >= 0 && minutes <= 59) {\n return { hours, minutes };\n }\n }\n return null;\n};","import React, { useRef } from \"react\";\nimport { FiCalendar } from \"react-icons/fi\";\nimport { formatDateToEuropean, parseEuropeanDate } from \"../../../utils/formUtils\";\nimport styles from \"./DateInput.module.css\";\n\n/**\n * Props for the DateInput component\n * @interface DateInputProps\n */\nexport interface DateInputProps {\n /** Label text displayed above the input field */\n label: string;\n /** Current date value (ISO format or European DD/MM/YYYY format) */\n value: string;\n /** Callback fired when date value changes */\n onChange: (newValue: string) => void;\n /** Placeholder text shown in European format (e.g., \"31/12/2024\") */\n placeholder?: string;\n /** Callback fired when input receives focus */\n onFocus?: () => void;\n /** Callback fired when input loses focus */\n onBlur?: () => void;\n /** Whether to show error styling */\n error?: boolean;\n /** Whether to show success styling */\n success?: boolean;\n /** Whether the input is in loading state */\n loading?: boolean;\n /** Whether the input is disabled */\n disabled?: boolean;\n}\n\n/**\n * DateInput component - European format date picker with manual input support\n * \n * @component\n * @description\n * A date input component that supports both manual text entry in DD/MM/YYYY format\n * and native calendar picker selection. Automatically formats dates as users type,\n * adding slashes at appropriate positions. Stores dates internally in ISO format\n * while displaying them in European format for better UX in European contexts.\n * \n * Features:\n * - Auto-formatting while typing (adds slashes automatically)\n * - Calendar icon for native date picker access\n * - Seamless conversion between European display and ISO storage formats\n * - Mobile-optimized with proper touch targets\n * \n * @example\n * // Basic usage\n * <DateInput\n * label=\"Date of Birth\"\n * value={birthDate}\n * onChange={setBirthDate}\n * placeholder=\"31/12/2000\"\n * />\n * \n * @example\n * // With focus handlers\n * <DateInput\n * label=\"Event Date\"\n * value={eventDate}\n * onChange={setEventDate}\n * onFocus={() => console.log('Focused')}\n * onBlur={() => validateDate(eventDate)}\n * />\n */\nexport function DateInput({ \n label, \n value, \n onChange, \n placeholder = \"25/12/2024\",\n onFocus, \n onBlur,\n error = false,\n success = false,\n loading = false,\n disabled = false\n}: Readonly<DateInputProps>) {\n const hiddenDateInputRef = useRef<HTMLInputElement>(null);\n\n\n const handleTextChange = (textValue: string) => {\n // Auto-format as user types\n let formatted = textValue.replace(/[^\\d/]/g, '');\n \n // Add slashes automatically\n if (formatted.length >= 2 && formatted.charAt(2) !== '/') {\n formatted = formatted.substring(0, 2) + '/' + formatted.substring(2);\n }\n if (formatted.length >= 5 && formatted.charAt(5) !== '/') {\n formatted = formatted.substring(0, 5) + '/' + formatted.substring(5);\n }\n \n // Limit length\n if (formatted.length > 10) {\n formatted = formatted.substring(0, 10);\n }\n \n // Convert to ISO format when complete and valid, otherwise store display format\n if (formatted.length === 10) {\n const isoDate = parseEuropeanDate(formatted);\n onChange(isoDate || formatted);\n } else {\n onChange(formatted);\n }\n };\n\n const handleCalendarClick = () => {\n // Set the hidden input to current value for calendar\n if (hiddenDateInputRef.current) {\n // If value is already ISO format, use it directly\n // If it's European format, convert it\n const isoDate = value.includes('-') ? value : parseEuropeanDate(value);\n if (isoDate) {\n hiddenDateInputRef.current.value = isoDate;\n }\n // Try showPicker first (modern browsers), fallback to click\n if (hiddenDateInputRef.current.showPicker) {\n hiddenDateInputRef.current.showPicker();\n } else {\n hiddenDateInputRef.current.click();\n }\n }\n };\n\n const handleCalendarChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n const isoDate = e.target.value;\n if (isoDate) {\n onChange(isoDate);\n }\n };\n\n const getClassName = () => {\n const classes = [styles.dateInput];\n if (error) classes.push(styles.error);\n if (success) classes.push(styles.success);\n if (loading) classes.push(styles.loading);\n return classes.join(' ');\n };\n\n return (\n <div className={getClassName()}>\n <label className={styles.label}>{label}</label>\n <div className={styles.inputWrapper}>\n <input\n type=\"text\"\n value={value.includes('-') ? formatDateToEuropean(value) : value}\n onChange={(e) => handleTextChange(e.target.value)}\n onFocus={onFocus}\n onBlur={onBlur}\n placeholder={placeholder}\n className={styles.textInput}\n disabled={disabled || loading}\n />\n <button\n type=\"button\"\n onClick={handleCalendarClick}\n className={styles.calendarButton}\n title=\"Select date from calendar\"\n disabled={disabled || loading}\n >\n <FiCalendar />\n </button>\n <input\n ref={hiddenDateInputRef}\n type=\"date\"\n onChange={handleCalendarChange}\n className={styles.hiddenDateInput}\n tabIndex={-1}\n disabled={disabled || loading}\n />\n </div>\n </div>\n );\n}","import React, { useState, useRef, useEffect, KeyboardEvent } from 'react';\nimport { motion, AnimatePresence } from 'framer-motion';\nimport { FiChevronDown, FiSearch, FiCheck } from 'react-icons/fi';\nimport styles from \"./SearchableDropdown.module.css\";\n\ntype Option = { label: string; value: string };\n\n/**\n * Props for the SearchableDropdown component\n * @interface SearchableDropdownProps\n */\nexport interface SearchableDropdownProps {\n /** Label text displayed above the dropdown */\n label: string;\n /** Currently selected value */\n value: string;\n /** Callback fired when selection changes */\n onChange: (value: string) => void;\n /** Array of options with label and value properties */\n options: Option[];\n /** Placeholder text shown when no option is selected */\n placeholder?: string;\n /** Whether to include an empty \"(none)\" option */\n allowEmpty?: boolean;\n /** Whether the dropdown is disabled */\n disabled?: boolean;\n /** Whether the dropdown is in loading state */\n loading?: boolean;\n /** Whether to show error styling */\n error?: boolean;\n}\n\n/**\n * SearchableDropdown component - Modern filterable dropdown with animations\n * \n * @component\n * @description\n * A sophisticated dropdown component with real-time search filtering, smooth animations,\n * and keyboard navigation support. Features gradient backgrounds, slide-in animations\n * for options, and a sliding indicator on hover. The dropdown menu includes a search\n * field that filters options as you type.\n * \n * Features:\n * - Real-time search filtering\n * - Smooth animations with Framer Motion\n * - Keyboard navigation (Arrow keys, Enter, Escape)\n * - Custom scrollbar styling\n * - Mobile-optimized with modal-like behavior on small screens\n * - Loading and error states\n * - Selected item highlighting with gradient background\n * \n * @example\n * // Basic usage\n * <SearchableDropdown\n * label=\"Select Country\"\n * value={selectedCountry}\n * onChange={setSelectedCountry}\n * options={countryOptions}\n * placeholder=\"Choose a country...\"\n * />\n * \n * @example\n * // With empty option disabled\n * <SearchableDropdown\n * label=\"Required Field\"\n * value={requiredValue}\n * onChange={setRequiredValue}\n * options={options}\n * allowEmpty={false}\n * error={!requiredValue}\n * />\n */\nexport function SearchableDropdown({\n label,\n value,\n onChange,\n options,\n placeholder = \"Select...\",\n allowEmpty = true,\n disabled = false,\n loading = false,\n error = false\n}: Readonly<SearchableDropdownProps>) {\n const [isOpen, setIsOpen] = useState(false);\n const [searchTerm, setSearchTerm] = useState(\"\");\n const [highlightedIndex, setHighlightedIndex] = useState(-1);\n const dropdownRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n\n // Get the selected option's label\n const selectedOption = options.find(opt => opt.value === value);\n const displayValue = selectedOption ? selectedOption.label : '';\n\n // Filter options based on search\n const filteredOptions = options.filter(opt => \n opt.label.toLowerCase().includes(searchTerm.toLowerCase())\n );\n \n // Add empty option to filtered list if allowed\n const allOptions = allowEmpty ? [{ label: '(none)', value: '' }, ...filteredOptions] : filteredOptions;\n\n // Close dropdown when clicking outside\n useEffect(() => {\n function handleClickOutside(event: MouseEvent) {\n if (dropdownRef.current && !dropdownRef.current.contains(event.target as Node)) {\n setIsOpen(false);\n setSearchTerm(\"\");\n }\n }\n\n document.addEventListener('mousedown', handleClickOutside);\n return () => document.removeEventListener('mousedown', handleClickOutside);\n }, []);\n\n // Focus search input when dropdown opens\n useEffect(() => {\n if (isOpen && inputRef.current) {\n inputRef.current.focus();\n }\n }, [isOpen]);\n\n const handleSelect = (optionValue: string) => {\n onChange(optionValue);\n setIsOpen(false);\n setSearchTerm(\"\");\n setHighlightedIndex(-1);\n };\n \n const handleKeyDown = (e: KeyboardEvent<HTMLDivElement>) => {\n if (!isOpen) return;\n \n switch (e.key) {\n case 'ArrowDown':\n e.preventDefault();\n setHighlightedIndex(prev => \n prev < allOptions.length - 1 ? prev + 1 : 0\n );\n break;\n case 'ArrowUp':\n e.preventDefault();\n setHighlightedIndex(prev => \n prev > 0 ? prev - 1 : allOptions.length - 1\n );\n break;\n case 'Enter':\n e.preventDefault();\n if (highlightedIndex >= 0 && highlightedIndex < allOptions.length) {\n handleSelect(allOptions[highlightedIndex].value);\n }\n break;\n case 'Escape':\n e.preventDefault();\n setIsOpen(false);\n setSearchTerm(\"\");\n setHighlightedIndex(-1);\n break;\n }\n };\n\n const getTriggerClassName = () => {\n const classes = [styles.dropdownTrigger];\n if (isOpen) classes.push(styles.open);\n if (loading) classes.push(styles.loading);\n if (error) classes.push(styles.error);\n return classes.join(' ');\n };\n\n return (\n <div className={styles.searchableDropdown} ref={dropdownRef} onKeyDown={handleKeyDown}>\n <label>{label}</label>\n \n <motion.button\n type=\"button\"\n className={getTriggerClassName()}\n onClick={() => !disabled && !loading && setIsOpen(!isOpen)}\n whileTap={{ scale: disabled ? 1 : 0.98 }}\n style={{ willChange: 'transform' }}\n disabled={disabled}\n >\n <span className={`${styles.dropdownValue} ${!displayValue ? styles.placeholder : ''}`}>\n {displayValue || placeholder}\n </span>\n <FiChevronDown className={styles.dropdownArrow} />\n </motion.button>\n\n <AnimatePresence>\n {isOpen && (\n <motion.div \n className={styles.dropdownMenu}\n initial={{ opacity: 0, y: -10, scale: 0.95 }}\n animate={{ opacity: 1, y: 0, scale: 1 }}\n exit={{ opacity: 0, y: -10, scale: 0.95 }}\n transition={{ duration: 0.2, ease: \"easeOut\" }}\n >\n <div className={styles.dropdownSearch}>\n <FiSearch className={styles.searchIcon} />\n <input\n ref={inputRef}\n type=\"text\"\n className={styles.searchInput}\n placeholder=\"Cerca...\"\n value={searchTerm}\n onChange={(e) => setSearchTerm(e.target.value)}\n onClick={(e) => e.stopPropagation()}\n />\n </div>\n \n <div className={styles.dropdownOptions}>\n {allOptions.map((opt, index) => {\n const isSelected = value === opt.value;\n const isHighlighted = highlightedIndex === index;\n \n return (\n <motion.button\n type=\"button\"\n key={`${opt.value}-${index}`}\n className={`${styles.dropdownOption} ${isSelected ? styles.selected : ''} ${isHighlighted ? styles.highlighted : ''}`}\n onClick={() => handleSelect(opt.value)}\n onMouseEnter={() => setHighlightedIndex(index)}\n initial={{ opacity: 0, x: -20 }}\n animate={{ opacity: 1, x: 0 }}\n transition={{ delay: index * 0.02 }}\n whileTap={{ scale: 0.98 }}\n style={{ willChange: 'transform' }}\n >\n <span>{opt.label}</span>\n {isSelected && <FiCheck className={styles.checkIcon} />}\n </motion.button>\n );\n })}\n {allOptions.length === 0 && (\n <motion.div \n className={styles.dropdownNoResults}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n >\n No results found\n </motion.div>\n )}\n </div>\n </motion.div>\n )}\n </AnimatePresence>\n </div>\n );\n}","import React from 'react';\nimport { FiChevronDown } from 'react-icons/fi';\nimport styles from \"./SelectInput.module.css\";\n\ntype Option = string | { label: string; value: string };\n\n/**\n * Props for the SelectInput component\n * @interface SelectInputProps\n */\nexport interface SelectInputProps {\n /** Label text displayed above the select input */\n label: string;\n /** Currently selected value */\n value: string;\n /** Callback fired when selection changes */\n onChange: (value: string) => void;\n /** Array of options - can be strings or {label, value} objects */\n options: Readonly<Option[]>;\n /** Placeholder text shown when no option is selected */\n placeholder?: string;\n /** Whether the select is disabled */\n disabled?: boolean;\n /** Whether to show error styling */\n error?: boolean;\n /** Whether to show success styling */\n success?: boolean;\n /** Whether the select is in loading state */\n loading?: boolean;\n /** Whether the field is required (shows asterisk) */\n required?: boolean;\n}\n\n/**\n * SelectInput component - Styled dropdown selector with flexible option format\n * \n * @component\n * @description\n * A customizable select dropdown that accepts both simple string arrays and\n * label-value object arrays for options. Features custom styling that maintains\n * consistency across browsers while preserving native select functionality.\n * Includes a styled chevron icon for better visual feedback.\n * \n * @example\n * // With simple string options\n * <SelectInput\n * label=\"Country\"\n * value={country}\n * onChange={setCountry}\n * options={['Italy', 'France', 'Spain', 'Germany']}\n * placeholder=\"Select a country\"\n * />\n * \n * @example\n * // With label-value pairs\n * <SelectInput\n * label=\"Status\"\n * value={status}\n * onChange={setStatus}\n * options={[\n * { label: 'Active', value: 'active' },\n * { label: 'Pending', value: 'pending' },\n * { label: 'Archived', value: 'archived' }\n * ]}\n * />\n */\nexport function SelectInput({\n label,\n value,\n onChange,\n options,\n placeholder = \"Select...\",\n disabled = false,\n error = false,\n success = false,\n loading = false,\n required = false\n}: Readonly<SelectInputProps>) {\n const getClassName = () => {\n const classes = [styles.selectInput];\n if (error) classes.push(styles.error);\n if (success) classes.push(styles.success);\n if (loading) classes.push(styles.loading);\n return classes.join(' ');\n };\n\n return (\n <div className={getClassName()}>\n <label>\n {label}\n {required && <span style={{ color: 'var(--color-error)' }}> *</span>}\n </label>\n <div className={styles.selectWrapper}>\n <select \n value={value} \n onChange={e => onChange(e.target.value)}\n disabled={disabled || loading}\n required={required}\n >\n <option value=\"\">{placeholder}</option>\n {options.map(opt => {\n const optionValue = typeof opt === 'string' ? opt : opt.value;\n const optionLabel = typeof opt === 'string' ? opt : opt.label;\n return (\n <option key={optionValue} value={optionValue}>{optionLabel}</option>\n );\n })}\n </select>\n <FiChevronDown className={styles.selectIcon} />\n </div>\n </div>\n );\n}","import React from 'react';\nimport styles from \"./TextArea.module.css\";\n\n/**\n * Props for the TextArea component\n * @interface TextAreaProps\n */\nexport interface TextAreaProps {\n /** Label text displayed above the textarea */\n label: string;\n /** Current value of the textarea */\n value: string;\n /** Callback fired when textarea value changes */\n onChange: (newValue: string) => void;\n /** Number of visible text lines (height) */\n rows?: number;\n /** Placeholder text shown when textarea is empty */\n placeholder?: string;\n /** Whether the field is required (shows asterisk) */\n required?: boolean;\n /** Maximum number of characters allowed (shows counter) */\n maxLength?: number;\n /** Whether the textarea is disabled */\n disabled?: boolean;\n /** Whether to show error styling */\n error?: boolean;\n /** Whether to show success styling */\n success?: boolean;\n /** Whether the textarea is in loading state */\n loading?: boolean;\n /** Whether to enable focus mode styling for distraction-free writing */\n focusMode?: boolean;\n}\n\n/**\n * TextArea component - Multi-line text input with character counting\n * \n * @component\n * @description\n * A resizable text area component designed for longer form content like descriptions,\n * comments, or messages. Features automatic character counting when maxLength is set,\n * and maintains consistent styling with other form inputs. The component is optimized\n * for both desktop and mobile experiences with appropriate touch targets.\n * \n * @example\n * // Basic usage\n * <TextArea\n * label=\"Description\"\n * value={description}\n * onChange={setDescription}\n * rows={4}\n * placeholder=\"Enter a detailed description...\"\n * />\n * \n * @example\n * // With character limit\n * <TextArea\n * label=\"Bio\"\n * value={bio}\n * onChange={setBio}\n * maxLength={500}\n * required\n * />\n */\nexport function TextArea({ \n label, \n value, \n onChange, \n rows = 5, \n placeholder = \"\",\n required = false,\n maxLength,\n disabled = false,\n error = false,\n success = false,\n loading = false,\n focusMode = false\n}: Readonly<TextAreaProps>) {\n const textareaId = `textarea-${Math.random().toString(36).substr(2, 9)}`;\n \n const getContainerClassName = () => {\n const classes = [styles.textareaContainer];\n if (error) classes.push(styles.error);\n if (success) classes.push(styles.success);\n if (loading) classes.push(styles.loading);\n if (focusMode) classes.push(styles.focusMode);\n return classes.join(' ');\n };\n \n const getCharCountClassName = () => {\n if (!maxLength) return styles.characterCount;\n \n const classes = [styles.characterCount];\n const percentage = (value.length / maxLength) * 100;\n \n if (percentage >= 100) {\n classes.push(styles.atLimit);\n } else if (percentage >= 80) {\n classes.push(styles.nearLimit);\n }\n \n return classes.join(' ');\n };\n \n return (\n <div className={getContainerClassName()}>\n <label htmlFor={textareaId} className={styles.textareaLabel}>\n {label}\n {required && <span className={styles.requiredIndicator}>*</span>}\n </label>\n <textarea\n id={textareaId}\n value={value}\n onChange={(e) => onChange(e.target.value)}\n rows={rows}\n placeholder={placeholder}\n maxLength={maxLength}\n className={styles.textareaInput}\n aria-required={required}\n disabled={disabled || loading}\n aria-invalid={error}\n />\n {maxLength && (\n <div className={getCharCountClassName()}>\n <span>{value.length}</span>\n <span style={{ opacity: 0.7 }}> / </span>\n <span>{maxLength}</span>\n </div>\n )}\n </div>\n );\n}","import React from 'react';\nimport styles from './Toggle.module.css';\n\n/**\n * Props for the Toggle component\n * @interface ToggleProps\n */\nexport interface ToggleProps {\n /** Whether the toggle is in the \"on\" (right side) state */\n readonly isOn: boolean;\n /** Callback fired when toggle state changes */\n readonly onToggle: (isOn: boolean) => void;\n /** Label text for the left (off) option */\n readonly leftLabel?: string;\n /** Label text for the right (on) option */\n readonly rightLabel?: string;\n /** Icon to display with the left option */\n readonly leftIcon?: React.ReactNode;\n /** Icon to display with the right option */\n readonly rightIcon?: React.ReactNode;\n}\n\n/**\n * Toggle Component\n * \n * @component\n * @description\n * A two-state toggle switch component that allows users to choose between two options.\n * Displays as a segmented control with smooth animations and hover effects. \n * Supports both text labels and icons for each option.\n * \n * @example\n * // Basic toggle with labels\n * <Toggle \n * isOn={darkMode}\n * onToggle={setDarkMode}\n * leftLabel=\"Light\"\n * rightLabel=\"Dark\"\n * />\n * \n * @example\n * // Toggle with icons\n * <Toggle \n * isOn={viewMode === 'grid'}\n * onToggle={(isGrid) => setViewMode(isGrid ? 'grid' : 'list')}\n * leftIcon={<ListIcon />}\n * rightIcon={<GridIcon />}\n * leftLabel=\"List\"\n * rightLabel=\"Grid\"\n * />\n * \n * @example\n * // Simple on/off toggle\n * <Toggle \n * isOn={notifications}\n * onToggle={setNotifications}\n * leftLabel=\"Off\"\n * rightLabel=\"On\"\n * />\n * \n * @param {ToggleProps} props - The props for the Toggle component\n * @returns {JSX.Element} The rendered Toggle component\n */\nexport function Toggle(props: Readonly<ToggleProps>) {\n const { isOn, onToggle, leftLabel, rightLabel, leftIcon, rightIcon } = props;\n return (\n <div className={styles.toggleContainer}>\n <button\n className={`${styles.toggleButton} ${!isOn ? styles.active : ''}`}\n onClick={() => onToggle(false)}\n >\n {leftIcon}\n {leftLabel}\n </button>\n <button\n className={`${styles.toggleButton} ${isOn ? styles.active : ''}`}\n onClick={() => onToggle(true)}\n >\n {rightIcon}\n {rightLabel}\n </button>\n </div>\n );\n} ","import React, { useState, useEffect, useRef } from 'react';\nimport { motion } from 'framer-motion';\nimport { Edit, Check, X } from 'lucide-react';\nimport styles from './EditFAB.module.css';\n\nexport interface EditFABProps {\n canEdit: boolean;\n isEditMode: boolean;\n hasUnsavedChanges?: boolean;\n isSaving?: boolean;\n onEnterEditMode: () => void;\n onExitEditMode: () => void;\n position?: {\n bottom?: string | number;\n right?: string | number;\n top?: string | number;\n left?: string | number;\n };\n}\n\nexport const EditFAB: React.FC<EditFABProps> = ({\n canEdit,\n isEditMode,\n hasUnsavedChanges = false,\n isSaving = false,\n onEnterEditMode,\n onExitEditMode,\n position = { bottom: 32, right: 32 }\n}) => {\n const [isMobile, setIsMobile] = useState(false);\n const [currentPosition, setCurrentPosition] = useState<{ x: number; y: number } | null>(null);\n const [isDragging, setIsDragging] = useState(false);\n const fabRef = useRef<HTMLButtonElement>(null);\n const dragStartPos = useRef<{ x: number; y: number } | null>(null);\n const elementStartPos = useRef<{ x: number; y: number } | null>(null);\n\n useEffect(() => {\n const checkMobile = () => {\n setIsMobile(window.innerWidth <= 768);\n };\n checkMobile();\n window.addEventListener('resize', checkMobile);\n \n return () => {\n window.removeEventListener('resize', checkMobile);\n };\n }, []);\n\n // Touch handlers for mobile dragging\n const handleTouchStart = (e: React.TouchEvent) => {\n if (!isMobile) return;\n \n const touch = e.touches[0];\n const rect = fabRef.current?.getBoundingClientRect();\n \n if (rect) {\n dragStartPos.current = { x: touch.clientX, y: touch.clientY };\n elementStartPos.current = { \n x: rect.left + rect.width / 2, \n y: rect.top + rect.height / 2 \n };\n setIsDragging(true);\n }\n };\n\n const handleTouchMove = (e: React.TouchEvent) => {\n if (!isDragging || !dragStartPos.current || !elementStartPos.current) return;\n \n e.preventDefault();\n const touch = e.touches[0];\n \n const deltaX = touch.clientX - dragStartPos.current.x;\n const deltaY = touch.clientY - dragStartPos.current.y;\n \n let newX = elementStartPos.current.x + deltaX;\n let newY = elementStartPos.current.y + deltaY;\n \n // Keep within viewport bounds\n const padding = 30;\n newX = Math.max(padding, Math.min(window.innerWidth - padding, newX));\n newY = Math.max(padding, Math.min(window.innerHeight - padding, newY));\n \n setCurrentPosition({ x: newX, y: newY });\n };\n\n const handleTouchEnd = () => {\n setIsDragging(false);\n dragStartPos.current = null;\n elementStartPos.current = null;\n };\n\n const handleClick = (_e: React.MouseEvent) => {\n // Only trigger click if we haven't been dragging\n if (!isDragging && !isSaving) {\n if (isEditMode) {\n onExitEditMode();\n } else {\n onEnterEditMode();\n }\n }\n };\n\n if (!canEdit) return null;\n\n const getPositionStyles = (): React.CSSProperties => {\n if (currentPosition) {\n return {\n position: 'fixed',\n left: `${currentPosition.x}px`,\n top: `${currentPosition.y}px`,\n transform: 'translate(-50%, -50%)',\n touchAction: 'none'\n };\n }\n \n return {\n position: 'fixed',\n ...position,\n touchAction: isMobile ? 'none' : 'auto'\n };\n };\n\n const getVariantClass = () => {\n if (isSaving) return styles.primary;\n if (isEditMode) {\n return hasUnsavedChanges ? styles.success : styles.secondary;\n }\n return styles.primary;\n };\n\n const getIcon = () => {\n if (isSaving) {\n return <div className={styles.loader} />;\n }\n if (isEditMode) {\n return hasUnsavedChanges ? <Check size={24} /> : <X size={24} />;\n }\n return <Edit size={24} />;\n };\n\n const getAriaLabel = () => {\n if (isSaving) return \"Saving changes\";\n if (isEditMode) {\n return hasUnsavedChanges ? \"Save and exit edit mode\" : \"Exit edit mode\";\n }\n return \"Enter edit mode\";\n };\n\n return (\n <motion.button\n ref={fabRef}\n className={`${styles.fab} ${getVariantClass()} ${isMobile ? styles.draggable : ''} ${isDragging ? styles.dragging : ''}`}\n style={getPositionStyles()}\n onClick={handleClick}\n onTouchStart={handleTouchStart}\n onTouchMove={handleTouchMove}\n onTouchEnd={handleTouchEnd}\n disabled={isSaving}\n aria-label={getAriaLabel()}\n initial={{ scale: 0, opacity: 0 }}\n animate={{ scale: 1, opacity: 1 }}\n exit={{ scale: 0, opacity: 0 }}\n whileHover={!isSaving && !isDragging ? { scale: 1.1 } : {}}\n whileTap={!isSaving && !isDragging ? { scale: 0.9 } : {}}\n transition={{ \n type: \"spring\", \n stiffness: 260, \n damping: 20\n }}\n >\n {getIcon()}\n </motion.button>\n );\n};","import React, { useState, useEffect, useRef, useCallback } from 'react';\nimport { motion, AnimatePresence } from 'framer-motion';\nimport { FiSearch, FiX, FiFolder, FiUsers, FiBook, FiMessageSquare, FiUserPlus } from 'react-icons/fi';\nimport styles from './styles/SearchBar.module.css';\n\nexport type SearchFilter = 'all' | 'projects' | 'clients' | 'contacts' | 'interactions' | 'team';\n\nexport interface SearchResult {\n id: string;\n type: string;\n title?: string;\n subtitle?: string;\n meta?: string;\n}\n\nexport interface SearchBarProps {\n className?: string;\n placeholder?: string;\n onSearch?: (query: string, filter: SearchFilter) => Promise<SearchResult[]>;\n onResultClick?: (result: SearchResult) => void;\n onClear?: () => void;\n debounceDelay?: number;\n minSearchLength?: number;\n showFilter?: boolean;\n enableKeyboardShortcut?: boolean;\n}\n\nconst filterOptions: { value: SearchFilter; label: string; icon: React.ElementType }[] = [\n { value: 'all', label: 'All', icon: FiSearch },\n { value: 'projects', label: 'Projects', icon: FiFolder },\n { value: 'clients', label: 'Clients', icon: FiUsers },\n { value: 'contacts', label: 'Contacts', icon: FiBook },\n { value: 'interactions', label: 'Interactions', icon: FiMessageSquare },\n { value: 'team', label: 'Team', icon: FiUserPlus },\n];\n\nconst entityIcons = {\n projects: FiFolder,\n clients: FiUsers,\n contacts: FiBook,\n interactions: FiMessageSquare,\n team: FiUserPlus,\n};\n\nexport const SearchBar: React.FC<SearchBarProps> = ({ \n className,\n placeholder = \"Search (Ctrl+Space)...\",\n onSearch,\n onResultClick,\n onClear,\n debounceDelay = 300,\n minSearchLength = 2,\n showFilter = true,\n enableKeyboardShortcut = true\n}) => {\n const [query, setQuery] = useState('');\n const [filter, setFilter] = useState<SearchFilter>('all');\n const [results, setResults] = useState<SearchResult[]>([]);\n const [isLoading, setIsLoading] = useState(false);\n const [isDropdownOpen, setIsDropdownOpen] = useState(false);\n const [highlightedIndex, setHighlightedIndex] = useState(-1);\n const searchRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<HTMLInputElement>(null);\n const debounceTimerRef = useRef<NodeJS.Timeout>();\n const resultsRef = useRef<HTMLDivElement>(null);\n\n // Perform search with debounce\n const performSearch = useCallback(async (searchQuery: string, searchFilter: SearchFilter) => {\n if (searchQuery.trim().length < minSearchLength) {\n setResults([]);\n setIsDropdownOpen(false);\n return;\n }\n\n if (!onSearch) {\n // If no search handler provided, just show empty results\n setResults([]);\n setIsDropdownOpen(false);\n return;\n }\n\n setIsLoading(true);\n try {\n const searchResults = await onSearch(searchQuery, searchFilter);\n setResults(searchResults);\n setIsDropdownOpen(searchResults.length > 0);\n setHighlightedIndex(-1);\n } catch (error) {\n console.error('Search error:', error);\n setResults([]);\n setIsDropdownOpen(false);\n } finally {\n setIsLoading(false);\n }\n }, [onSearch, minSearchLength]);\n\n // Handle input change with debounce\n useEffect(() => {\n if (debounceTimerRef.current) {\n clearTimeout(debounceTimerRef.current);\n }\n\n if (query.trim()) {\n debounceTimerRef.current = setTimeout(() => {\n performSearch(query, filter);\n }, debounceDelay);\n } else {\n setResults([]);\n setIsDropdownOpen(false);\n }\n\n return () => {\n if (debounceTimerRef.current) {\n clearTimeout(debounceTimerRef.current);\n }\n };\n }, [query, filter, performSearch, debounceDelay]);\n\n // Close dropdown when clicking outside\n useEffect(() => {\n const handleClickOutside = (event: MouseEvent) => {\n if (searchRef.current && !searchRef.current.contains(event.target as Node)) {\n setIsDropdownOpen(false);\n setHighlightedIndex(-1);\n }\n };\n\n document.addEventListener('mousedown', handleClickOutside);\n return () => document.removeEventListener('mousedown', handleClickOutside);\n }, []);\n\n // Global keyboard shortcut for search (Ctrl+Space)\n useEffect(() => {\n if (!enableKeyboardShortcut) return;\n\n const handleGlobalKeyDown = (e: KeyboardEvent) => {\n // Ctrl+Space or Cmd+Space to focus search\n if ((e.ctrlKey || e.metaKey) && e.code === 'Space') {\n e.preventDefault();\n inputRef.current?.focus();\n inputRef.current?.select();\n }\n };\n\n document.addEventListener('keydown', handleGlobalKeyDown);\n return () => document.removeEventListener('keydown', handleGlobalKeyDown);\n }, [enableKeyboardShortcut]);\n\n // Auto-scroll to highlighted item\n useEffect(() => {\n if (highlightedIndex >= 0 && resultsRef.current) {\n const highlightedElement = resultsRef.current.querySelector(\n `[data-result-index=\"${highlightedIndex}\"]`\n );\n if (highlightedElement) {\n highlightedElement.scrollIntoView({\n behavior: 'smooth',\n block: 'nearest'\n });\n }\n }\n }, [highlightedIndex]);\n\n // Handle keyboard navigation\n const handleKeyDown = (e: React.KeyboardEvent) => {\n switch (e.key) {\n case 'ArrowDown':\n e.preventDefault();\n if (!isDropdownOpen && results.length > 0) {\n setIsDropdownOpen(true);\n setHighlightedIndex(0);\n } else if (results.length > 0) {\n setHighlightedIndex(prev => \n prev < results.length - 1 ? prev + 1 : 0\n );\n }\n break;\n case 'ArrowUp':\n e.preventDefault();\n if (isDropdownOpen && results.length > 0) {\n setHighlightedIndex(prev => \n prev > 0 ? prev - 1 : results.length - 1\n );\n }\n break;\n case 'Enter':\n e.preventDefault();\n if (!isDropdownOpen && results.length > 0) {\n // If dropdown is closed, open it and select first result\n setIsDropdownOpen(true);\n setHighlightedIndex(0);\n } else if (results.length > 0) {\n // If no item is highlighted, select the first one\n const indexToUse = highlightedIndex >= 0 ? highlightedIndex : 0;\n if (indexToUse < results.length) {\n handleResultClick(results[indexToUse]);\n }\n }\n break;\n case 'Escape':\n setIsDropdownOpen(false);\n setHighlightedIndex(-1);\n inputRef.current?.blur();\n break;\n }\n };\n\n // Handle result click\n const handleResultClick = (result: SearchResult) => {\n if (onResultClick) {\n onResultClick(result);\n }\n setQuery('');\n setIsDropdownOpen(false);\n setHighlightedIndex(-1);\n };\n\n // Clear search\n const handleClear = () => {\n setQuery('');\n setResults([]);\n setIsDropdownOpen(false);\n setHighlightedIndex(-1);\n inputRef.current?.focus();\n if (onClear) {\n onClear();\n }\n };\n\n // Group results by type\n const groupedResults = results.reduce((acc, result) => {\n if (!acc[result.type]) {\n acc[result.type] = [];\n }\n acc[result.type].push(result);\n return acc;\n }, {} as Record<string, SearchResult[]>);\n\n // Highlight matching text\n const highlightMatch = (text: string | undefined, highlight: string) => {\n if (!text || !highlight.trim()) return text || '';\n \n const regex = new RegExp(`(${highlight.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&')})`, 'gi');\n const parts = text.split(regex);\n \n return parts.map((part, index) => \n regex.test(part) ? (\n <mark key={index} className={styles.highlight}>{part}</mark>\n ) : (\n part\n )\n );\n };\n\n return (\n <div ref={searchRef} className={`${styles.searchContainer} ${className || ''}`}>\n <div className={styles.searchInputWrapper}>\n <FiSearch className={styles.searchIcon} />\n \n <input\n ref={inputRef}\n type=\"text\"\n value={query}\n onChange={(e) => setQuery(e.target.value)}\n onKeyDown={handleKeyDown}\n onFocus={() => query.trim() && results.length > 0 && setIsDropdownOpen(true)}\n placeholder={placeholder}\n className={styles.searchInput}\n aria-label=\"Search\"\n aria-expanded={isDropdownOpen}\n aria-controls=\"search-results\"\n aria-autocomplete=\"list\"\n />\n\n {query && (\n <motion.button\n className={styles.clearButton}\n onClick={handleClear}\n whileHover={{ scale: 1.1 }}\n whileTap={{ scale: 0.9 }}\n initial={{ opacity: 0, scale: 0.8 }}\n animate={{ opacity: 1, scale: 1 }}\n exit={{ opacity: 0, scale: 0.8 }}\n >\n <FiX />\n </motion.button>\n )}\n\n {showFilter && (\n <select\n value={filter}\n onChange={(e) => setFilter(e.target.value as SearchFilter)}\n className={styles.filterSelect}\n aria-label=\"Filter search results\"\n >\n {filterOptions.map(option => (\n <option key={option.value} value={option.value}>\n {option.label}\n </option>\n ))}\n </select>\n )}\n </div>\n\n <AnimatePresence>\n {isDropdownOpen && (\n <motion.div\n ref={resultsRef}\n id=\"search-results\"\n className={styles.resultsDropdown}\n initial={{ opacity: 0, y: -10 }}\n animate={{ opacity: 1, y: 0 }}\n exit={{ opacity: 0, y: -10 }}\n transition={{ duration: 0.2 }}\n >\n {isLoading ? (\n <div className={styles.loadingState}>\n <div className={styles.spinner} />\n <span>Searching...</span>\n </div>\n ) : results.length === 0 ? (\n <div className={styles.emptyState}>\n No results found for \"{query}\"\n </div>\n ) : (\n <div className={styles.resultsGroups}>\n {Object.entries(groupedResults).map(([type, groupResults]) => {\n const Icon = entityIcons[type as keyof typeof entityIcons];\n return (\n <div key={type} className={styles.resultGroup}>\n <div className={styles.groupHeader}>\n {Icon && <Icon className={styles.groupIcon} />}\n <span className={styles.groupTitle}>\n {type.charAt(0).toUpperCase() + type.slice(1)}\n </span>\n <span className={styles.groupCount}>\n {groupResults.length}\n </span>\n </div>\n <div className={styles.groupResults}>\n {groupResults.map((result) => {\n const globalIndex = results.indexOf(result);\n return (\n <motion.button\n key={`${result.type}-${result.id}`}\n data-result-index={globalIndex}\n className={`${styles.resultItem} ${\n highlightedIndex === globalIndex ? styles.highlighted : ''\n }`}\n onClick={() => handleResultClick(result)}\n whileHover={{ x: 4 }}\n onMouseEnter={() => setHighlightedIndex(globalIndex)}\n >\n <div className={styles.resultContent}>\n <div className={styles.resultTitle}>\n {highlightMatch(result.title || 'Untitled', query)}\n </div>\n {result.subtitle && (\n <div className={styles.resultSubtitle}>\n {highlightMatch(result.subtitle, query)}\n </div>\n )}\n </div>\n {result.meta && (\n <div className={styles.resultMeta}>\n {result.meta}\n </div>\n )}\n </motion.button>\n );\n })}\n </div>\n </div>\n );\n })}\n </div>\n )}\n </motion.div>\n )}\n </AnimatePresence>\n </div>\n );\n};","import { useState, useEffect } from \"react\";\nimport { FiX } from \"react-icons/fi\";\nimport styles from \"./TimePickerModal.module.css\";\n\ninterface TimePickerModalProps {\n isOpen: boolean;\n onClose: () => void;\n value: string;\n onChange: (time: string) => void;\n}\n\nexport function TimePickerModal({ isOpen, onClose, value, onChange }: TimePickerModalProps) {\n const [hours, minutes] = value ? value.split(':').map(Number) : [12, 0];\n const [selectedHour, setSelectedHour] = useState(hours);\n const [selectedMinute, setSelectedMinute] = useState(minutes);\n \n useEffect(() => {\n if (value) {\n const [h, m] = value.split(':').map(Number);\n setSelectedHour(h);\n setSelectedMinute(m);\n }\n }, [value]);\n \n const handleConfirm = () => {\n const formattedHour = selectedHour.toString().padStart(2, '0');\n const formattedMinute = selectedMinute.toString().padStart(2, '0');\n onChange(`${formattedHour}:${formattedMinute}`);\n onClose();\n };\n \n if (!isOpen) return null;\n \n return (\n <div className={styles.modalOverlay} onClick={onClose}>\n <div className={styles.modalContent} onClick={(e) => e.stopPropagation()}>\n <div className={styles.modalHeader}>\n <h3>Select Time</h3>\n <button \n className={styles.closeButton} \n onClick={onClose}\n aria-label=\"Close\"\n >\n <FiX />\n </button>\n </div>\n \n <div className={styles.timeDisplay}>\n {selectedHour.toString().padStart(2, '0')}:{selectedMinute.toString().padStart(2, '0')}\n </div>\n \n <div className={styles.pickerContainer}>\n <div className={styles.pickerColumn}>\n <div className={styles.pickerLabel}>Hours</div>\n <div className={styles.pickerScroll}>\n {Array.from({ length: 24 }, (_, i) => (\n <button\n key={i}\n className={`${styles.pickerItem} ${selectedHour === i ? styles.selected : ''}`}\n onClick={() => setSelectedHour(i)}\n >\n {i.toString().padStart(2, '0')}\n </button>\n ))}\n </div>\n </div>\n \n <div className={styles.pickerDivider}>:</div>\n \n <div className={styles.pickerColumn}>\n <div className={styles.pickerLabel}>Minutes</div>\n <div className={styles.pickerScroll}>\n {Array.from({ length: 60 }, (_, i) => (\n <button\n key={i}\n className={`${styles.pickerItem} ${selectedMinute === i ? styles.selected : ''}`}\n onClick={() => setSelectedMinute(i)}\n >\n {i.toString().padStart(2, '0')}\n </button>\n ))}\n </div>\n </div>\n </div>\n \n <div className={styles.modalActions}>\n <button \n className={styles.cancelButton}\n onClick={onClose}\n >\n Cancel\n </button>\n <button \n className={styles.confirmButton}\n onClick={handleConfirm}\n >\n Confirm\n </button>\n </div>\n </div>\n </div>\n );\n}","import { useState } from \"react\";\nimport { FiClock } from \"react-icons/fi\";\nimport { TimePickerModal } from \"./TimePickerModal\";\nimport styles from \"./TimeInput.module.css\";\n\nexport interface TimeInputProps {\n label: string;\n value: string;\n onChange: (newValue: string) => void;\n placeholder?: string;\n onFocus?: () => void;\n onBlur?: () => void;\n error?: boolean;\n success?: boolean;\n loading?: boolean;\n disabled?: boolean;\n required?: boolean;\n}\n\nexport function TimeInput({ \n label, \n value, \n onChange, \n placeholder = \"14:30\",\n onFocus, \n onBlur,\n error = false,\n success = false,\n loading = false,\n disabled = false,\n required = false\n}: Readonly<TimeInputProps>) {\n const [showPicker, setShowPicker] = useState(false);\n\n const formatTime24 = (time: string) => {\n if (!time) return '';\n \n let cleanTime = time.replace(/[^\\d:]/g, '');\n \n const colonCount = (cleanTime.match(/:/g) || []).length;\n if (colonCount > 1) {\n cleanTime = cleanTime.replace(/:/g, '');\n if (cleanTime.length >= 3) {\n cleanTime = cleanTime.substring(0, 2) + ':' + cleanTime.substring(2);\n }\n }\n \n if (cleanTime.length === 3 && !cleanTime.includes(':')) {\n cleanTime = cleanTime.substring(0, 2) + ':' + cleanTime.substring(2);\n } else if (cleanTime.length === 4 && !cleanTime.includes(':')) {\n cleanTime = cleanTime.substring(0, 2) + ':' + cleanTime.substring(2);\n }\n \n if (cleanTime.includes(':')) {\n const parts = cleanTime.split(':');\n let hours = parts[0];\n let minutes = parts[1] || '';\n \n hours = hours.substring(0, 2);\n \n if (hours.length === 2) {\n const hourNum = parseInt(hours);\n if (hourNum > 23) {\n hours = '23';\n }\n }\n \n minutes = minutes.substring(0, 2);\n \n if (minutes.length === 2) {\n const minNum = parseInt(minutes);\n if (minNum > 59) {\n minutes = '59';\n }\n }\n \n cleanTime = hours + (minutes.length > 0 ? ':' + minutes : ':');\n }\n \n return cleanTime.substring(0, 5);\n };\n\n const handleTextChange = (inputValue: string) => {\n const formattedTime = formatTime24(inputValue);\n onChange(formattedTime);\n };\n\n const handleClockClick = () => {\n if (!disabled && !loading) {\n setShowPicker(true);\n }\n };\n\n const getContainerClassName = () => {\n const classes = [styles.timeInput];\n if (error) classes.push(styles.error);\n if (success) classes.push(styles.success);\n if (loading) classes.push(styles.loading);\n if (disabled) classes.push(styles.disabled);\n return classes.join(' ');\n };\n\n return (\n <>\n <div className={getContainerClassName()}>\n <label className={styles.label}>\n {label}\n {required && <span className={styles.required}>*</span>}\n </label>\n <div className={styles.inputWrapper}>\n <input\n type=\"text\"\n value={value}\n onChange={(e) => handleTextChange(e.target.value)}\n onFocus={onFocus}\n onBlur={onBlur}\n placeholder={placeholder}\n className={styles.textInput}\n maxLength={5}\n disabled={disabled || loading}\n aria-invalid={error}\n aria-required={required}\n inputMode=\"numeric\"\n pattern=\"[0-9:]*\"\n />\n <button\n type=\"button\"\n onClick={handleClockClick}\n className={styles.clockButton}\n title=\"Open time picker\"\n disabled={disabled || loading}\n aria-label=\"Open time picker\"\n >\n <FiClock size={20} />\n </button>\n </div>\n </div>\n \n <TimePickerModal\n isOpen={showPicker}\n onClose={() => setShowPicker(false)}\n value={value}\n onChange={onChange}\n />\n </>\n );\n}","import React, { createContext, useContext, useState, useEffect } from 'react';\n\nexport type Theme = 'light' | 'dark' | 'lossito' | 'lossito-dark' | 'dmood' | 'dmood-dark';\n\ninterface ThemeContextType {\n theme: Theme;\n setTheme: (theme: Theme) => void;\n toggleTheme: () => void;\n}\n\nconst ThemeContext = createContext<ThemeContextType | undefined>(undefined);\n\nexport const useTheme = () => {\n const context = useContext(ThemeContext);\n if (!context) {\n throw new Error('useTheme must be used within a ThemeProvider');\n }\n return context;\n};\n\ninterface ThemeProviderProps {\n children: React.ReactNode;\n defaultTheme?: Theme;\n storageKey?: string;\n}\n\nexport const ThemeProvider: React.FC<ThemeProviderProps> = ({\n children,\n defaultTheme = 'light',\n storageKey = 'app-theme',\n}) => {\n const [theme, setThemeState] = useState<Theme>(() => {\n // Check localStorage first\n const stored = localStorage.getItem(storageKey);\n if (stored && ['light', 'dark', 'lossito', 'lossito-dark', 'dmood', 'dmood-dark'].includes(stored)) {\n return stored as Theme;\n }\n // Check system preference\n if (window.matchMedia('(prefers-color-scheme: dark)').matches) {\n return 'dark';\n }\n return defaultTheme;\n });\n\n const setTheme = (newTheme: Theme) => {\n setThemeState(newTheme);\n localStorage.setItem(storageKey, newTheme);\n };\n\n const toggleTheme = () => {\n const themeOrder: Theme[] = ['light', 'dark', 'lossito', 'lossito-dark', 'dmood', 'dmood-dark'];\n const currentIndex = themeOrder.indexOf(theme);\n const nextIndex = (currentIndex + 1) % themeOrder.length;\n setTheme(themeOrder[nextIndex]);\n };\n\n useEffect(() => {\n const root = document.documentElement;\n \n // Apply theme attribute\n root.setAttribute('data-theme', theme);\n \n // Apply dark class if needed\n if (theme.includes('dark')) {\n root.classList.add('dark');\n } else {\n root.classList.remove('dark');\n }\n }, [theme]);\n\n // Listen for system theme changes\n useEffect(() => {\n const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n const handleChange = (e: MediaQueryListEvent) => {\n const stored = localStorage.getItem(storageKey);\n if (!stored) {\n setThemeState(e.matches ? 'dark' : 'light');\n }\n };\n\n mediaQuery.addEventListener('change', handleChange);\n return () => mediaQuery.removeEventListener('change', handleChange);\n }, [storageKey]);\n\n return (\n <ThemeContext.Provider value={{ theme, setTheme, toggleTheme }}>\n {children}\n </ThemeContext.Provider>\n );\n};","import React from 'react';\nimport { motion } from 'framer-motion';\nimport { FiSun, FiMoon } from 'react-icons/fi';\nimport { useTheme, Theme } from '../../organisms/ThemeProvider/ThemeProvider';\nimport styles from './ThemeSwitcher.module.css';\n\ninterface ThemeSwitcherProps {\n variant?: 'button' | 'dropdown' | 'toggle';\n showLabel?: boolean;\n className?: string;\n}\n\nexport const ThemeSwitcher: React.FC<ThemeSwitcherProps> = ({\n variant = 'button',\n showLabel = false,\n className = '',\n}) => {\n const { theme, setTheme } = useTheme();\n\n const themes: { value: Theme; label: string; icon: React.ReactNode }[] = [\n { value: 'light', label: 'Light', icon: <FiSun /> },\n { value: 'dark', label: 'Dark', icon: <FiMoon /> },\n { value: 'lossito', label: 'Lossito Light', icon: '✨' },\n { value: 'lossito-dark', label: 'Lossito Dark', icon: '🌑' },\n { value: 'dmood', label: 'Dmood Light', icon: '💙' },\n { value: 'dmood-dark', label: 'Dmood Dark', icon: '🌌' },\n ];\n\n const currentThemeIndex = themes.findIndex(t => t.value === theme);\n const currentTheme = themes[currentThemeIndex];\n\n if (variant === 'toggle') {\n // Simple toggle between light and dark\n const isDark = theme.includes('dark');\n return (\n <motion.button\n className={`${styles.toggle} ${className}`}\n onClick={() => setTheme(isDark ? 'light' : 'dark')}\n whileTap={{ scale: 0.95 }}\n aria-label=\"Toggle theme\"\n >\n <motion.div\n className={styles.toggleTrack}\n animate={{ backgroundColor: isDark ? 'var(--color-primary)' : 'var(--color-border)' }}\n >\n <motion.div\n className={styles.toggleThumb}\n animate={{ x: isDark ? 24 : 0 }}\n transition={{ type: 'spring', stiffness: 500, damping: 30 }}\n >\n {isDark ? <FiMoon size={14} /> : <FiSun size={14} />}\n </motion.div>\n </motion.div>\n {showLabel && <span className={styles.label}>{isDark ? 'Dark' : 'Light'}</span>}\n </motion.button>\n );\n }\n\n if (variant === 'dropdown') {\n return (\n <div className={`${styles.dropdown} ${className}`}>\n <motion.button\n className={styles.dropdownTrigger}\n whileTap={{ scale: 0.98 }}\n >\n {currentTheme.icon}\n {showLabel && <span className={styles.label}>{currentTheme.label}</span>}\n </motion.button>\n <motion.div\n className={styles.dropdownMenu}\n initial={{ opacity: 0, y: -10 }}\n animate={{ opacity: 1, y: 0 }}\n >\n {themes.map((t) => (\n <motion.button\n key={t.value}\n className={`${styles.dropdownItem} ${theme === t.value ? styles.active : ''}`}\n onClick={() => setTheme(t.value)}\n whileHover={{ x: 4 }}\n whileTap={{ scale: 0.98 }}\n >\n <span className={styles.icon}>{t.icon}</span>\n <span className={styles.text}>{t.label}</span>\n </motion.button>\n ))}\n </motion.div>\n </div>\n );\n }\n\n // Default button variant - cycles through themes\n return (\n <motion.button\n className={`${styles.button} ${className}`}\n onClick={() => {\n const nextIndex = (currentThemeIndex + 1) % themes.length;\n setTheme(themes[nextIndex].value);\n }}\n whileTap={{ scale: 0.95 }}\n whileHover={{ scale: 1.05 }}\n aria-label={`Current theme: ${currentTheme.label}. Click to change.`}\n >\n <motion.div\n key={theme}\n initial={{ rotate: -180, opacity: 0 }}\n animate={{ rotate: 0, opacity: 1 }}\n exit={{ rotate: 180, opacity: 0 }}\n transition={{ duration: 0.3 }}\n className={styles.iconWrapper}\n >\n {currentTheme.icon}\n </motion.div>\n {showLabel && <span className={styles.label}>{currentTheme.label}</span>}\n </motion.button>\n );\n};","import React, { useState, useEffect, useMemo } from 'react';\nimport { motion, AnimatePresence } from 'framer-motion';\nimport { FiMenu, FiX } from 'react-icons/fi';\nimport { IconType } from 'react-icons';\nimport desktopStyles from './styles/Navbar.module.css';\nimport mobileStyles from './styles/Navbar.mobile.module.css';\n\nexport interface NavItem {\n id: string;\n label: string;\n icon?: IconType;\n href?: string;\n onClick?: () => void;\n isActive?: boolean;\n badge?: string | number;\n children?: NavItem[];\n}\n\nexport interface NavbarProps {\n items: NavItem[];\n logo?: {\n src?: string;\n alt?: string;\n text?: string;\n subtitle?: string;\n };\n onItemClick?: (item: NavItem) => void;\n variant?: 'sidebar' | 'top' | 'minimal';\n isMobile?: boolean;\n footer?: React.ReactNode;\n className?: string;\n}\n\nexport const Navbar: React.FC<NavbarProps> = ({\n items,\n logo,\n onItemClick,\n variant = 'sidebar',\n isMobile = false,\n footer,\n className = ''\n}) => {\n const styles = useMemo(() => isMobile ? mobileStyles : desktopStyles, [isMobile]);\n const [isMobileMenuOpen, setIsMobileMenuOpen] = useState(false);\n const [expandedItems, setExpandedItems] = useState<Set<string>>(new Set());\n\n // Close mobile menu when screen size changes\n useEffect(() => {\n const handleResize = () => {\n if (window.innerWidth > 768) {\n setIsMobileMenuOpen(false);\n }\n };\n \n window.addEventListener('resize', handleResize);\n return () => window.removeEventListener('resize', handleResize);\n }, []);\n\n const toggleMobileMenu = () => {\n setIsMobileMenuOpen(!isMobileMenuOpen);\n };\n\n const toggleExpanded = (itemId: string) => {\n setExpandedItems(prev => {\n const newSet = new Set(prev);\n if (newSet.has(itemId)) {\n newSet.delete(itemId);\n } else {\n newSet.add(itemId);\n }\n return newSet;\n });\n };\n\n const handleItemClick = (item: NavItem) => {\n if (item.children && item.children.length > 0) {\n toggleExpanded(item.id);\n } else {\n if (item.onClick) {\n item.onClick();\n }\n if (onItemClick) {\n onItemClick(item);\n }\n if (isMobile || isMobileMenuOpen) {\n setIsMobileMenuOpen(false);\n }\n }\n };\n\n const renderNavItem = (item: NavItem, index: number, depth: number = 0) => {\n const Icon = item.icon;\n const isExpanded = expandedItems.has(item.id);\n const hasChildren = item.children && item.children.length > 0;\n\n return (\n <motion.li\n key={item.id}\n className={`${styles.navItem} ${depth > 0 ? styles.subNavItem : ''}`}\n initial={{ opacity: 0, x: -20 }}\n animate={{ opacity: 1, x: 0 }}\n transition={{ delay: index * 0.05 }}\n >\n <motion.button\n className={`${styles.navLink} ${item.isActive ? styles.active : ''}`}\n onClick={() => handleItemClick(item)}\n whileHover={{ x: 5 }}\n whileTap={{ scale: 0.98 }}\n >\n {item.isActive && (\n <motion.div\n className={styles.activeBackground}\n layoutId=\"activeNavBackground\"\n initial={false}\n transition={{\n type: \"spring\",\n stiffness: 500,\n damping: 35\n }}\n />\n )}\n \n {Icon && (\n <Icon className={`${styles.navIcon} ${item.isActive ? styles.activeIcon : ''}`} />\n )}\n \n <span className={`${styles.navText} ${item.isActive ? styles.activeText : ''}`}>\n {item.label}\n </span>\n \n {item.badge && (\n <span className={styles.navBadge}>{item.badge}</span>\n )}\n \n {hasChildren && (\n <motion.span\n className={styles.chevron}\n animate={{ rotate: isExpanded ? 180 : 0 }}\n transition={{ duration: 0.2 }}\n >\n ▼\n </motion.span>\n )}\n </motion.button>\n\n {hasChildren && (\n <AnimatePresence>\n {isExpanded && (\n <motion.ul\n className={styles.subNavList}\n initial={{ height: 0, opacity: 0 }}\n animate={{ height: 'auto', opacity: 1 }}\n exit={{ height: 0, opacity: 0 }}\n transition={{ duration: 0.2 }}\n >\n {item.children!.map((child, childIndex) =>\n renderNavItem(child, childIndex, depth + 1)\n )}\n </motion.ul>\n )}\n </AnimatePresence>\n )}\n </motion.li>\n );\n };\n\n const navContent = (\n <>\n {logo && (\n <motion.div\n className={styles.navLogo}\n initial={{ opacity: 0, y: -20 }}\n animate={{ opacity: 1, y: 0 }}\n transition={{ delay: 0.1 }}\n >\n <div className={styles.logoContainer}>\n {logo.src ? (\n <motion.img\n src={logo.src}\n alt={logo.alt || 'Logo'}\n className={styles.logoImage}\n whileHover={{ scale: 1.05 }}\n transition={{ type: \"spring\", stiffness: 400 }}\n />\n ) : (\n <div className={styles.logoPlaceholder}>\n {logo.text?.charAt(0) || 'L'}\n </div>\n )}\n \n {(logo.text || logo.subtitle) && (\n <div className={styles.logoContent}>\n {logo.text && (\n <span className={styles.logoText}>{logo.text}</span>\n )}\n {logo.subtitle && (\n <span className={styles.logoSubtitle}>{logo.subtitle}</span>\n )}\n </div>\n )}\n </div>\n </motion.div>\n )}\n\n <ul className={styles.navList}>\n {items.map((item, index) => renderNavItem(item, index))}\n </ul>\n\n {footer && (\n <motion.div\n className={styles.navFooter}\n initial={{ opacity: 0, y: 20 }}\n animate={{ opacity: 1, y: 0 }}\n transition={{ delay: 0.3 }}\n >\n {footer}\n </motion.div>\n )}\n </>\n );\n\n if (variant === 'top') {\n return (\n <motion.nav\n className={`${styles.navbar} ${styles.navbarTop} ${className}`}\n initial={{ y: -100 }}\n animate={{ y: 0 }}\n transition={{ type: \"spring\", stiffness: 300, damping: 30 }}\n >\n {navContent}\n </motion.nav>\n );\n }\n\n return (\n <>\n {/* Mobile menu button */}\n {(isMobile || window.innerWidth <= 768) && (\n <motion.button\n className={styles.mobileMenuButton}\n onClick={toggleMobileMenu}\n aria-label=\"Toggle navigation menu\"\n whileTap={{ scale: 0.9 }}\n >\n <AnimatePresence mode=\"wait\">\n {isMobileMenuOpen ? (\n <motion.div\n key=\"close\"\n initial={{ rotate: -90, opacity: 0 }}\n animate={{ rotate: 0, opacity: 1 }}\n exit={{ rotate: 90, opacity: 0 }}\n >\n <FiX />\n </motion.div>\n ) : (\n <motion.div\n key=\"menu\"\n initial={{ rotate: 90, opacity: 0 }}\n animate={{ rotate: 0, opacity: 1 }}\n exit={{ rotate: -90, opacity: 0 }}\n >\n <FiMenu />\n </motion.div>\n )}\n </AnimatePresence>\n </motion.button>\n )}\n\n {/* Mobile backdrop */}\n <AnimatePresence>\n {isMobileMenuOpen && (\n <motion.div\n className={styles.mobileBackdrop}\n initial={{ opacity: 0 }}\n animate={{ opacity: 1 }}\n exit={{ opacity: 0 }}\n onClick={() => setIsMobileMenuOpen(false)}\n />\n )}\n </AnimatePresence>\n\n {/* Navbar */}\n <motion.nav\n className={`${styles.navbar} ${styles[`navbar${variant.charAt(0).toUpperCase() + variant.slice(1)}`]} ${isMobileMenuOpen ? styles.mobileMenuOpen : ''} ${className}`}\n initial={variant === 'sidebar' ? { x: -300 } : { opacity: 0 }}\n animate={variant === 'sidebar' ? { x: isMobileMenuOpen || !isMobile ? 0 : -300 } : { opacity: 1 }}\n transition={{ type: \"spring\", stiffness: 300, damping: 30 }}\n >\n {navContent}\n </motion.nav>\n </>\n );\n};","import React, { useState, useEffect, useMemo, useRef } from 'react'\nimport * as d3 from 'd3'\nimport styles from './MoodChart.module.css'\n\ninterface MoodNoteData {\n date: string\n rating: number\n tag?: string\n comment?: string\n}\n\ninterface ParsedMoodData extends Omit<MoodNoteData, 'tag'> {\n tags: string[]\n}\n\ninterface MoodChartProps {\n moodData: MoodNoteData[]\n width?: number\n height?: number\n}\n\ntype ProcessedMoodData = Omit<ParsedMoodData, 'date'> & { date: Date }\n\nexport const MoodChart: React.FC<MoodChartProps> = ({ \n moodData, \n width = 800, \n height = 400 \n}) => {\n const svgRef = useRef<SVGSVGElement>(null)\n const containerRef = useRef<HTMLDivElement>(null)\n const [selectedMood, setSelectedMood] = useState<ProcessedMoodData | null>(null)\n const [tooltipPosition, setTooltipPosition] = useState({ x: 0, y: 0 })\n \n const margin = { top: 20, right: 20, bottom: 50, left: 40 }\n const chartWidth = width - margin.left - margin.right\n const chartHeight = height - margin.top - margin.bottom\n\n const processedData = useMemo(() => {\n return moodData\n .map(mood => {\n // Parse comma-separated tags\n const tags = mood.tag \n ? mood.tag.split(',').map(t => t.trim()).filter(t => t)\n : []\n \n return {\n date: new Date(mood.date),\n rating: mood.rating,\n tags,\n comment: mood.comment\n }\n })\n .filter(mood => \n !isNaN(mood.date.getTime()) && \n isFinite(mood.rating)\n ) as ProcessedMoodData[]\n }, [moodData])\n\n const colorScale = useMemo(() => {\n return d3.scaleLinear<string>()\n .domain([1, 5, 10])\n .range(['#FF6B6B', '#FFD93D', '#6BCB77'])\n .clamp(true)\n }, [])\n\n useEffect(() => {\n if (!svgRef.current || processedData.length === 0) return\n\n const svg = d3.select(svgRef.current)\n svg.selectAll('*').remove()\n\n const g = svg.append('g')\n .attr('transform', `translate(${margin.left},${margin.top})`)\n\n const extentDates = d3.extent(processedData, d => d.date) as [Date, Date]\n if (!extentDates[0] || !extentDates[1]) return\n\n const xScale = d3.scaleTime()\n .domain(extentDates)\n .range([0, chartWidth])\n\n const yScale = d3.scaleLinear()\n .domain([1, 10])\n .range([chartHeight, 0])\n\n const line = d3.line<ProcessedMoodData>()\n .x(d => xScale(d.date))\n .y(d => yScale(d.rating))\n .curve(d3.curveMonotoneX)\n\n g.selectAll('.grid-line-y')\n .data(yScale.ticks(5))\n .enter().append('line')\n .attr('class', styles.gridLine)\n .attr('x1', 0)\n .attr('y1', d => yScale(d))\n .attr('x2', chartWidth)\n .attr('y2', d => yScale(d))\n\n g.append('path')\n .datum(processedData)\n .attr('class', styles.line)\n .attr('d', line)\n\n g.append('g')\n .attr('class', styles.xAxis)\n .attr('transform', `translate(0,${chartHeight})`)\n .call(d3.axisBottom(xScale)\n .tickFormat(d => d3.timeFormat('%m/%d')(d as Date)))\n\n g.append('g')\n .attr('class', styles.yAxis)\n .call(d3.axisLeft(yScale))\n\n g.selectAll('.mood-circle')\n .data(processedData)\n .enter().append('circle')\n .attr('class', styles.dataPoint)\n .attr('cx', d => xScale(d.date))\n .attr('cy', d => yScale(d.rating))\n .attr('r', 5)\n .attr('fill', d => colorScale(d.rating))\n .style('cursor', 'pointer')\n .on('mouseenter', (event, d) => {\n const rect = svgRef.current?.getBoundingClientRect()\n if (rect) {\n setTooltipPosition({ \n x: event.clientX - rect.left + 20, \n y: event.clientY - rect.top - 10 \n })\n }\n setSelectedMood(d)\n \n d3.select(event.currentTarget)\n .transition()\n .duration(200)\n .attr('r', 8)\n })\n .on('mouseleave', (event) => {\n // Use a timeout to ensure the event fires\n setTimeout(() => {\n setSelectedMood(null)\n }, 0)\n \n d3.select(event.currentTarget)\n .transition()\n .duration(200)\n .attr('r', 5)\n })\n\n }, [processedData, chartWidth, chartHeight, colorScale, margin])\n \n // Clean up tooltip on unmount\n useEffect(() => {\n return () => {\n setSelectedMood(null)\n }\n }, [])\n \n\n return (\n <div className={styles.container} ref={containerRef} onMouseLeave={() => setSelectedMood(null)}>\n <svg \n ref={svgRef}\n width={width}\n height={height}\n className={styles.chart}\n />\n {selectedMood && (\n <div \n className={styles.tooltip}\n style={{\n position: 'absolute',\n pointerEvents: 'none',\n left: tooltipPosition.x,\n top: tooltipPosition.y,\n zIndex: 1000\n }}\n >\n <div className={styles.tooltipHeader}>\n <div className={styles.tooltipDate}>\n {selectedMood.date.toLocaleDateString()}\n </div>\n <div className={styles.tooltipRating}>\n <span className={styles.ratingValue}>{selectedMood.rating}</span>\n <span className={styles.ratingMax}>/10</span>\n </div>\n </div>\n {selectedMood.tags.length > 0 && (\n <div className={styles.tooltipTags}>\n {selectedMood.tags.map((tag, index) => (\n <span key={index} className={styles.tag}>\n {tag}\n </span>\n ))}\n </div>\n )}\n {selectedMood.comment && (\n <div className={styles.tooltipComment}>\n {selectedMood.comment}\n </div>\n )}\n </div>\n )}\n </div>\n )\n}","import React, { useState, useEffect, useRef, useMemo } from 'react'\nimport * as d3 from 'd3'\nimport styles from './QuantifiableHabitsChart.module.css'\n\nexport type ViewType = 'daily' | 'weekly' | 'monthly' | 'quarterly'\n\ninterface AggregatedData {\n dates: string[]\n [habit: string]: number[] | string[]\n}\n\ninterface ChartData {\n dates: string[]\n [habit: string]: number[] | string[]\n}\n\ninterface QuantifiableHabitsChartProps {\n data: ChartData\n width?: number\n height?: number\n defaultViewType?: ViewType\n periodType?: 'week' | 'month' | 'quarter' | 'year' | 'allTime'\n habitColors?: { [key: string]: string }\n habitEmojis?: { [key: string]: string }\n}\n\n// Default colors as fallback\nconst DEFAULT_HABIT_COLORS: { [key: string]: string } = {\n 'Exercise': '#6BCB77',\n 'Meditation': '#4D96FF',\n 'Reading': '#FFB319',\n 'Water': '#00D9FF',\n 'Steps': '#FF6B6B',\n 'Sleep': '#9B59B6',\n 'Calories': '#FF9F1C',\n 'Study': '#C774E8'\n}\n\nexport const QuantifiableHabitsChart: React.FC<QuantifiableHabitsChartProps> = ({\n data,\n width = 800,\n height = 400,\n defaultViewType = 'daily',\n periodType = 'month',\n habitColors: customHabitColors = {},\n habitEmojis: customHabitEmojis = {}\n}) => {\n const svgRef = useRef<SVGSVGElement>(null)\n const [viewType, setViewType] = useState<ViewType>(defaultViewType)\n const [activeHabits, setActiveHabits] = useState<string[]>([])\n const [hoveredHabit, setHoveredHabit] = useState<string | null>(null)\n\n const margin = { top: 20, right: 20, bottom: 50, left: 50 }\n const chartWidth = width - margin.left - margin.right\n const chartHeight = height - margin.top - margin.bottom\n\n const habits = useMemo(() => \n Object.keys(data).filter(key => key !== 'dates'),\n [data]\n )\n\n useEffect(() => {\n setActiveHabits(habits)\n }, [habits])\n\n const availableViewTypes = useMemo(() => {\n switch (periodType) {\n case 'week':\n return ['daily'] as ViewType[]\n case 'month':\n return ['daily', 'weekly'] as ViewType[]\n case 'quarter':\n return ['weekly', 'monthly'] as ViewType[]\n case 'year':\n return ['daily', 'weekly', 'monthly', 'quarterly'] as ViewType[]\n case 'allTime':\n return ['monthly', 'quarterly'] as ViewType[]\n default:\n return ['daily'] as ViewType[]\n }\n }, [periodType])\n\n const getColor = (habit: string): string => {\n // First check custom colors, then defaults, then generate deterministic color\n return customHabitColors[habit] || DEFAULT_HABIT_COLORS[habit] || `hsl(${Math.abs(habit.split('').reduce((a, b) => a + b.charCodeAt(0), 0)) % 360}, 70%, 50%)`\n }\n\n // Helper function to get ISO week number\n const getISOWeekNumber = (date: Date) => {\n const d = new Date(date)\n d.setHours(0, 0, 0, 0)\n d.setDate(d.getDate() + 3 - (d.getDay() + 6) % 7)\n const week1 = new Date(d.getFullYear(), 0, 4)\n return 1 + Math.round(((d.getTime() - week1.getTime()) / 86400000 - 3 + (week1.getDay() + 6) % 7) / 7)\n }\n\n // Aggregate data based on view type\n const aggregateData = useMemo((): AggregatedData => {\n if (viewType === 'daily' || !data.dates.length) {\n return data\n }\n\n const aggregated: AggregatedData = { dates: [] }\n const dateGroups: Map<string, number[]> = new Map()\n \n // Group dates by period\n data.dates.forEach((dateStr, index) => {\n const date = new Date(dateStr)\n let groupKey: string\n \n switch (viewType) {\n case 'weekly': {\n // Get ISO week start (Monday)\n const weekStart = new Date(date)\n const day = weekStart.getDay()\n const diff = weekStart.getDate() - day + (day === 0 ? -6 : 1)\n weekStart.setDate(diff)\n // Use the Monday date as the group key to ensure proper sorting\n groupKey = weekStart.toISOString().split('T')[0]\n break\n }\n case 'monthly':\n // Use first day of month for consistent sorting\n groupKey = `${date.getFullYear()}-${String(date.getMonth() + 1).padStart(2, '0')}-01`\n break\n case 'quarterly': {\n const quarter = Math.floor(date.getMonth() / 3) + 1\n const quarterStartMonth = (quarter - 1) * 3\n // Use first day of quarter for consistent sorting and grouping\n const quarterStart = new Date(date.getFullYear(), quarterStartMonth, 1)\n groupKey = quarterStart.toISOString().split('T')[0]\n break\n }\n default:\n groupKey = dateStr\n }\n \n if (!dateGroups.has(groupKey)) {\n dateGroups.set(groupKey, [])\n }\n dateGroups.get(groupKey)!.push(index)\n })\n \n // Calculate aggregated values - sort dates for proper chronological order\n aggregated.dates = Array.from(dateGroups.keys()).sort()\n \n habits.forEach(habit => {\n aggregated[habit] = aggregated.dates.map(groupKey => {\n const indices = dateGroups.get(groupKey)!\n const values = indices\n .map(i => data[habit][i] as number)\n .filter(v => typeof v === 'number' && !isNaN(v))\n \n if (values.length === 0) return 0\n \n // Calculate average for aggregated periods\n return Math.round(values.reduce((sum, v) => sum + v, 0) / values.length)\n })\n })\n \n return aggregated\n }, [data, viewType, habits])\n\n const toggleHabit = (habit: string) => {\n setActiveHabits(prev =>\n prev.includes(habit)\n ? prev.filter(h => h !== habit)\n : [...prev, habit]\n )\n }\n\n useEffect(() => {\n if (!svgRef.current || aggregateData.dates.length === 0) return\n\n const svg = d3.select(svgRef.current)\n svg.selectAll('*').remove()\n\n const g = svg.append('g')\n .attr('transform', `translate(${margin.left},${margin.top})`)\n\n const dates = aggregateData.dates.map(d => new Date(d))\n \n const xScale = d3.scaleTime()\n .domain(d3.extent(dates) as [Date, Date])\n .range([0, chartWidth])\n\n const maxValue = Math.max(\n ...activeHabits.flatMap(habit => \n (aggregateData[habit] as number[]).filter(v => typeof v === 'number')\n )\n )\n\n const yScale = d3.scaleLinear()\n .domain([0, maxValue * 1.1])\n .range([chartHeight, 0])\n\n g.selectAll('.grid-line-y')\n .data(yScale.ticks(5))\n .enter().append('line')\n .attr('class', styles.gridLine)\n .attr('x1', 0)\n .attr('y1', d => yScale(d))\n .attr('x2', chartWidth)\n .attr('y2', d => yScale(d))\n\n const line = d3.line<[Date, number]>()\n .x(d => xScale(d[0]))\n .y(d => yScale(d[1]))\n .curve(d3.curveMonotoneX)\n\n activeHabits.forEach(habit => {\n const habitData = dates.map((date, i) => \n [date, aggregateData[habit][i]] as [Date, number]\n ).filter(d => typeof d[1] === 'number')\n\n g.append('path')\n .datum(habitData)\n .attr('class', styles.line)\n .attr('d', line)\n .attr('stroke', getColor(habit))\n .attr('opacity', hoveredHabit && hoveredHabit !== habit ? 0.3 : 1)\n\n g.selectAll(`.circle-${habit}`)\n .data(habitData)\n .enter().append('circle')\n .attr('class', styles.dataPoint)\n .attr('cx', d => xScale(d[0]))\n .attr('cy', d => yScale(d[1]))\n .attr('r', 4)\n .attr('fill', getColor(habit))\n .attr('opacity', hoveredHabit && hoveredHabit !== habit ? 0.3 : 1)\n })\n\n // Helper function to get ISO week number\n const getISOWeek = (date: Date) => {\n const d = new Date(date)\n d.setHours(0, 0, 0, 0)\n d.setDate(d.getDate() + 3 - (d.getDay() + 6) % 7)\n const week1 = new Date(d.getFullYear(), 0, 4)\n return 1 + Math.round(((d.getTime() - week1.getTime()) / 86400000 - 3 + (week1.getDay() + 6) % 7) / 7)\n }\n\n // Format x-axis based on view type\n const xAxisFormat = (() => {\n switch (viewType) {\n case 'daily':\n return d3.timeFormat('%Y-%m-%d')\n case 'weekly':\n return (d: Date) => {\n const weekNum = getISOWeek(d)\n return `${d.getFullYear()}-W${weekNum.toString().padStart(2, '0')}`\n }\n case 'monthly':\n return d3.timeFormat('%Y-%m')\n case 'quarterly':\n return (d: Date) => {\n const quarter = Math.floor(d.getMonth() / 3) + 1\n return `${d.getFullYear()}-Q${quarter}`\n }\n default:\n return d3.timeFormat('%Y-%m-%d')\n }\n })()\n\n // Determine number of ticks based on view type and data\n const tickCount = (() => {\n switch (viewType) {\n case 'daily':\n return Math.min(10, aggregateData.dates.length)\n case 'weekly':\n return Math.min(12, aggregateData.dates.length)\n case 'monthly':\n return Math.min(12, aggregateData.dates.length)\n case 'quarterly':\n return aggregateData.dates.length // Show all quarters\n default:\n return undefined\n }\n })()\n\n const xAxisGenerator = d3.axisBottom(xScale)\n .tickFormat(d => xAxisFormat(d as Date))\n \n // Set tick values for quarterly to avoid duplicates\n if (viewType === 'quarterly') {\n xAxisGenerator.tickValues(dates)\n } else if (tickCount) {\n xAxisGenerator.ticks(tickCount)\n }\n \n const xAxis = g.append('g')\n .attr('class', styles.xAxis)\n .attr('transform', `translate(0,${chartHeight})`)\n .call(xAxisGenerator)\n \n // Rotate labels for better readability if needed\n if (viewType === 'daily' || viewType === 'weekly') {\n xAxis.selectAll('text')\n .style('text-anchor', 'end')\n .attr('dx', '-.8em')\n .attr('dy', '.15em')\n .attr('transform', 'rotate(-45)')\n }\n\n g.append('g')\n .attr('class', styles.yAxis)\n .call(d3.axisLeft(yScale))\n\n }, [aggregateData, activeHabits, chartWidth, chartHeight, margin, hoveredHabit, customHabitColors])\n\n // View type icons and labels\n const viewTypeConfig = {\n daily: { icon: '📅', label: 'Daily' },\n weekly: { icon: '📆', label: 'Weekly' },\n monthly: { icon: '🗓️', label: 'Monthly' },\n quarterly: { icon: '📊', label: 'Quarterly' }\n }\n\n return (\n <div className={styles.container}>\n <div className={styles.controls}>\n <div className={styles.viewToggle}>\n {availableViewTypes.map(type => (\n <button\n key={type}\n className={`${styles.viewButton} ${viewType === type ? styles.active : ''}`}\n onClick={() => setViewType(type)}\n title={viewTypeConfig[type].label}\n >\n <span className={styles.viewIcon}>{viewTypeConfig[type].icon}</span>\n <span className={styles.viewLabel}>{viewTypeConfig[type].label}</span>\n </button>\n ))}\n </div>\n </div>\n \n <div className={styles.legend}>\n {habits.map(habit => (\n <button\n key={habit}\n className={`${styles.legendItem} ${!activeHabits.includes(habit) ? styles.inactive : ''}`}\n onClick={() => toggleHabit(habit)}\n onMouseEnter={() => setHoveredHabit(habit)}\n onMouseLeave={() => setHoveredHabit(null)}\n >\n <span className={styles.legendEmoji}>\n {customHabitEmojis[habit] || '📊'}\n </span>\n <span \n className={styles.legendColor}\n style={{ backgroundColor: getColor(habit) }}\n />\n <span className={styles.legendLabel}>{habit}</span>\n </button>\n ))}\n </div>\n\n <svg\n ref={svgRef}\n width={width}\n height={height}\n className={styles.chart}\n />\n </div>\n )\n}","import React, { useEffect, useRef } from 'react'\nimport * as d3 from 'd3'\nimport styles from './SleepChart.module.css'\n\ninterface SleepData {\n date: string\n sleep_time: string | null\n wake_hour: string | null\n}\n\ninterface SleepChartProps {\n sleepData: SleepData[]\n width?: number\n height?: number\n onDateClick?: (date: string) => void\n}\n\nconst parseTimeToDecimal = (time: string): number => {\n const [hours, minutes] = time.split(':').map(Number)\n return hours + minutes / 60\n}\n\nexport const SleepChart: React.FC<SleepChartProps> = ({\n sleepData,\n width = 800,\n height = 300,\n onDateClick\n}) => {\n const svgRef = useRef<SVGSVGElement>(null)\n \n const margin = { top: 20, right: 20, bottom: 40, left: 60 }\n const chartWidth = width - margin.left - margin.right\n const chartHeight = height - margin.top - margin.bottom\n\n useEffect(() => {\n if (!svgRef.current || sleepData.length === 0) return\n\n const svg = d3.select(svgRef.current)\n svg.selectAll('*').remove()\n\n const g = svg.append('g')\n .attr('transform', `translate(${margin.left},${margin.top})`)\n\n const xScale = d3.scaleLinear()\n .domain([18, 42])\n .range([0, chartWidth])\n\n const yDomain = sleepData.map(d => d.date)\n const yScale = d3.scaleBand()\n .domain(yDomain)\n .range([0, chartHeight])\n .paddingInner(0.1)\n .paddingOuter(0.05)\n\n g.selectAll('.grid-line-x')\n .data(d3.range(18, 43, 3))\n .enter().append('line')\n .attr('class', styles.gridLine)\n .attr('x1', d => xScale(d))\n .attr('y1', 0)\n .attr('x2', d => xScale(d))\n .attr('y2', chartHeight)\n\n sleepData.forEach((dayData) => {\n const yValue = yScale(dayData.date)\n if (yValue === undefined) return\n\n const barHeight = yScale.bandwidth()\n const sleepGroup = g.append('g')\n .attr('class', styles.sleepBar)\n .style('cursor', 'pointer')\n .on('click', () => onDateClick?.(dayData.date))\n\n // Handle sleep time and wake hour separately\n let sleepHour = null\n let wakeHour = null\n \n if (dayData.sleep_time) {\n sleepHour = parseTimeToDecimal(dayData.sleep_time)\n if (sleepHour < 18) sleepHour += 24\n }\n \n if (dayData.wake_hour) {\n wakeHour = parseTimeToDecimal(dayData.wake_hour)\n if (sleepHour !== null && wakeHour < sleepHour - 18) {\n wakeHour += 24\n } else if (sleepHour === null && wakeHour < 12) {\n // If no sleep time but wake is in morning, assume it's next day\n wakeHour += 24\n }\n }\n\n // Draw the bar only if both values exist\n if (sleepHour !== null && wakeHour !== null) {\n sleepGroup.append('rect')\n .attr('x', xScale(sleepHour))\n .attr('y', yValue)\n .attr('width', xScale(wakeHour) - xScale(sleepHour))\n .attr('height', barHeight)\n .attr('rx', 4)\n .attr('fill', 'url(#sleepGradient)')\n .attr('opacity', 0.8)\n }\n\n // Draw sleep dot if sleep time exists\n if (sleepHour !== null) {\n sleepGroup.append('circle')\n .attr('cx', xScale(sleepHour))\n .attr('cy', yValue + barHeight / 2)\n .attr('r', 4)\n .attr('fill', '#9B59B6')\n }\n\n // Draw wake dot if wake hour exists\n if (wakeHour !== null) {\n sleepGroup.append('circle')\n .attr('cx', xScale(wakeHour))\n .attr('cy', yValue + barHeight / 2)\n .attr('r', 4)\n .attr('fill', '#3498DB')\n }\n\n sleepGroup.on('mouseenter', function() {\n d3.select(this).select('rect')\n .transition()\n .duration(200)\n .attr('opacity', 1)\n }).on('mouseleave', function() {\n d3.select(this).select('rect')\n .transition()\n .duration(200)\n .attr('opacity', 0.8)\n })\n })\n\n const defs = svg.append('defs')\n const gradient = defs.append('linearGradient')\n .attr('id', 'sleepGradient')\n .attr('x1', '0%')\n .attr('x2', '100%')\n\n gradient.append('stop')\n .attr('offset', '0%')\n .attr('stop-color', '#9B59B6')\n .attr('stop-opacity', 0.8)\n\n gradient.append('stop')\n .attr('offset', '100%')\n .attr('stop-color', '#3498DB')\n .attr('stop-opacity', 0.8)\n\n const xAxisTicks = d3.range(18, 43, 3).map(hour => ({\n value: hour,\n label: (hour % 24).toString().padStart(2, '0') + ':00'\n }))\n\n g.append('g')\n .attr('class', styles.xAxis)\n .attr('transform', `translate(0,${chartHeight})`)\n .call(d3.axisBottom(xScale)\n .tickValues(xAxisTicks.map(t => t.value))\n .tickFormat((d) => {\n const tick = xAxisTicks.find(t => t.value === d)\n return tick ? tick.label : ''\n }))\n\n const yAxisTicks = yDomain.filter((_, i) => i % Math.ceil(yDomain.length / 10) === 0)\n \n g.append('g')\n .attr('class', styles.yAxis)\n .call(d3.axisLeft(yScale)\n .tickValues(yAxisTicks)\n .tickFormat(d => {\n const date = new Date(d)\n return `${(date.getMonth() + 1).toString().padStart(2, '0')}/${date.getDate().toString().padStart(2, '0')}`\n }))\n\n }, [sleepData, chartWidth, chartHeight, margin, onDateClick])\n\n return (\n <div className={styles.container}>\n <div className={styles.header}>\n <h3 className={styles.title}>Sleep Pattern</h3>\n <div className={styles.legend}>\n <div className={styles.legendItem}>\n <span className={styles.sleepDot}></span>\n <span>Sleep Time</span>\n </div>\n <div className={styles.legendItem}>\n <span className={styles.wakeDot}></span>\n <span>Wake Time</span>\n </div>\n </div>\n </div>\n <svg\n ref={svgRef}\n width={width}\n height={height}\n className={styles.chart}\n />\n </div>\n )\n}","import React, { useEffect, useRef, useMemo } from 'react'\nimport * as d3 from 'd3'\nimport styles from './BooleansHeatmap.module.css'\n\ninterface HeatmapChartProps {\n data: { [date: string]: boolean }\n habitName: string\n width?: number\n height?: number\n habitColor?: string\n habitEmoji?: string\n}\n\nconst DAYS_OF_WEEK = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']\nconst MONTHS = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']\n\nexport const BooleansHeatmap: React.FC<HeatmapChartProps> = ({\n data,\n habitName,\n width = 800,\n height = 200,\n habitColor = '#6BCB77',\n habitEmoji = '✓'\n}) => {\n const svgRef = useRef<SVGSVGElement>(null)\n\n const { startDate, endDate, weeksToShow } = useMemo(() => {\n const dates = Object.keys(data).sort()\n if (dates.length === 0) {\n const now = new Date()\n return { \n startDate: now, \n endDate: now, \n weeksToShow: 1 \n }\n }\n \n const start = new Date(dates[0])\n const end = new Date(dates[dates.length - 1])\n const daysDiff = Math.ceil((end.getTime() - start.getTime()) / (1000 * 60 * 60 * 24)) + 1\n const weeksDiff = Math.ceil(daysDiff / 7)\n \n return { \n startDate: start, \n endDate: end, \n weeksToShow: weeksDiff\n }\n }, [data])\n\n useEffect(() => {\n if (!svgRef.current) return\n\n const svg = d3.select(svgRef.current)\n svg.selectAll('*').remove()\n\n const margin = { top: 40, right: 20, bottom: 20, left: 40 }\n const chartWidth = width - margin.left - margin.right\n const chartHeight = height - margin.top - margin.bottom\n\n const cellSize = Math.min(\n Math.floor(chartHeight / 7) - 1,\n Math.floor(chartWidth / weeksToShow) - 1,\n 20\n )\n const cellGap = 2\n\n const g = svg.append('g')\n .attr('transform', `translate(${margin.left},${margin.top})`)\n\n const startDayOffset = (startDate.getDay() + 6) % 7\n\n const monthPositions = new Map<number, number>()\n let currentMonth = startDate.getMonth()\n monthPositions.set(currentMonth, 0)\n\n for (let weekIndex = 0; weekIndex < weeksToShow; weekIndex++) {\n const weekStart = new Date(startDate)\n weekStart.setDate(weekStart.getDate() + weekIndex * 7 - startDayOffset)\n \n if (weekStart.getMonth() !== currentMonth) {\n currentMonth = weekStart.getMonth()\n monthPositions.set(currentMonth, weekIndex)\n }\n }\n\n monthPositions.forEach((weekIndex, month) => {\n g.append('text')\n .attr('x', weekIndex * (cellSize + cellGap))\n .attr('y', -10)\n .attr('class', styles.monthLabel)\n .text(MONTHS[month])\n })\n\n DAYS_OF_WEEK.forEach((day, index) => {\n g.append('text')\n .attr('x', -10)\n .attr('y', index * (cellSize + cellGap) + cellSize / 2)\n .attr('class', styles.dayLabel)\n .attr('text-anchor', 'end')\n .attr('alignment-baseline', 'middle')\n .text(day)\n })\n\n const tooltip = d3.select('body').append('div')\n .attr('class', styles.tooltip)\n .style('opacity', 0)\n .style('position', 'absolute')\n\n const daysToShow = weeksToShow * 7\n let cellsRendered = 0\n \n for (let i = 0; i < daysToShow; i++) {\n const date = new Date(startDate)\n date.setDate(date.getDate() + i - startDayOffset)\n \n if (date < startDate || date > endDate) continue\n \n const dateString = date.toISOString().split('T')[0]\n const dayOfWeek = (date.getDay() + 6) % 7\n const weekIndex = Math.floor((i + startDayOffset) / 7)\n \n const isTrue = dateString in data && data[dateString]\n \n const rect = g.append('rect')\n .attr('x', weekIndex * (cellSize + cellGap))\n .attr('y', dayOfWeek * (cellSize + cellGap))\n .attr('width', cellSize)\n .attr('height', cellSize)\n .attr('rx', 3)\n .attr('class', styles.cell)\n .attr('data-date', dateString)\n .attr('data-value', isTrue ? 'true' : 'false')\n .style('fill', isTrue ? habitColor : '#4D4D4DFF')\n \n cellsRendered++\n \n rect.on('mouseover', function(event) {\n tooltip.transition()\n .duration(200)\n .style('opacity', 1)\n \n const formatDate = d3.timeFormat('%b %d, %Y')\n const status = isTrue ? `${habitEmoji} Done` : '✗ Not done'\n \n tooltip.html(`\n <div><strong>${habitName}</strong></div>\n <div>${formatDate(date)}</div>\n <div>${status}</div>\n `)\n .style('left', (event.pageX + 10) + 'px')\n .style('top', (event.pageY - 28) + 'px')\n })\n .on('mouseout', function() {\n tooltip.transition()\n .duration(500)\n .style('opacity', 0)\n })\n }\n\n return () => {\n tooltip.remove()\n }\n }, [data, habitName, width, height, startDate, endDate, weeksToShow, habitColor, habitEmoji])\n\n return (\n <div className={styles.container}>\n <h3 className={styles.title}>\n <span className={styles.habitEmoji}>{habitEmoji}</span>\n {habitName}\n </h3>\n <svg\n ref={svgRef}\n width={width}\n height={height}\n className={styles.chart}\n />\n <div className={styles.legend}>\n <span className={styles.legendItem}>\n <span \n className={styles.legendColor} \n style={{ backgroundColor: habitColor }}\n ></span>\n Done\n </span>\n <span className={styles.legendItem}>\n <span \n className={styles.legendColor} \n style={{ backgroundColor: '#4D4D4DFF' }}\n ></span>\n Not done\n </span>\n </div>\n </div>\n )\n}","import React, { useRef, useEffect, useMemo } from 'react'\nimport * as d3 from 'd3'\nimport styles from './SunburstChart.module.css'\n\nexport interface SunBurstRecord {\n name: string\n size?: number\n children?: SunBurstRecord[]\n}\n\ninterface SunburstChartProps {\n data: SunBurstRecord\n width?: number\n height?: number\n title?: string\n tagColors?: Record<string, string>\n}\n\nconst COLOR_PALETTE = [\n '#d4af37', '#FFD700', '#FFA500', '#FF8C00',\n '#FF6347', '#DC143C', '#8B4513', '#A0522D',\n '#DEB887', '#F4A460', '#D2691E', '#CD853F'\n]\n\nexport const SunburstChart: React.FC<SunburstChartProps> = ({\n data,\n width = 500,\n height = 500,\n title = 'Sunburst Chart',\n tagColors = {}\n}) => {\n const svgRef = useRef<SVGSVGElement>(null)\n const colorMap = useRef(new Map<string, string>()).current\n const colorIndex = useRef(0)\n\n const radius = Math.min(width, height) / 2\n\n const getColor = (name: string, depth: number): string => {\n // First check if we have a tag color for this name\n if (tagColors[name]) {\n const color = d3.color(tagColors[name])\n if (color) {\n // Darken for deeper levels\n return depth > 1 ? color.darker((depth - 1) * 0.3).toString() : color.toString()\n }\n }\n \n // Fallback to color palette\n if (!colorMap.has(name)) {\n colorMap.set(name, COLOR_PALETTE[colorIndex.current % COLOR_PALETTE.length])\n colorIndex.current++\n }\n const baseColor = colorMap.get(name) || '#d4af37'\n \n const color = d3.color(baseColor)\n if (color) {\n return color.darker(depth * 0.3).toString()\n }\n return baseColor\n }\n\n useEffect(() => {\n if (!svgRef.current || !data) return\n\n const svg = d3.select(svgRef.current)\n svg.selectAll('*').remove()\n\n const g = svg.append('g')\n .attr('transform', `translate(${width / 2},${height / 2})`)\n\n const root = d3.hierarchy(data)\n .sum(d => d.size ?? 0)\n .sort((a, b) => (b.value ?? 0) - (a.value ?? 0))\n\n\n const partition = d3.partition<SunBurstRecord>()\n .size([2 * Math.PI, radius * radius])\n\n const nodes = partition(root).descendants()\n\n const arc = d3.arc<d3.HierarchyRectangularNode<SunBurstRecord>>()\n .startAngle(d => d.x0)\n .endAngle(d => d.x1)\n .innerRadius(d => Math.sqrt(d.y0))\n .outerRadius(d => Math.sqrt(d.y1))\n\n const tooltip = d3.select('body').append('div')\n .attr('class', styles.tooltip)\n .style('opacity', 0)\n .style('position', 'absolute')\n\n g.selectAll('path')\n .data(nodes.filter(d => d.depth > 0 && d.value && d.value > 0))\n .enter().append('path')\n .attr('d', arc as any)\n .attr('fill', d => {\n let ancestor = d\n while (ancestor.depth > 1 && ancestor.parent) {\n ancestor = ancestor.parent\n }\n return getColor(ancestor.data.name, d.depth)\n })\n .attr('stroke', 'var(--bg-primary)')\n .attr('stroke-width', 2)\n .style('cursor', 'pointer')\n .on('mouseover', function(event, d) {\n d3.select(this)\n .transition()\n .duration(200)\n .style('opacity', 0.8)\n\n tooltip.transition()\n .duration(200)\n .style('opacity', 1)\n\n const value = d.value || 0\n const percentage = ((value / (root.value || 1)) * 100).toFixed(1)\n\n tooltip.html(`\n <div><strong>${d.data.name}</strong></div>\n <div>Value: ${value}</div>\n <div>${percentage}% of total</div>\n `)\n .style('left', (event.pageX + 10) + 'px')\n .style('top', (event.pageY - 28) + 'px')\n })\n .on('mouseout', function() {\n d3.select(this)\n .transition()\n .duration(200)\n .style('opacity', 1)\n\n tooltip.transition()\n .duration(500)\n .style('opacity', 0)\n })\n\n const shouldDisplayLabel = (d: d3.HierarchyRectangularNode<SunBurstRecord>) => {\n const angle = d.x1 - d.x0\n return angle > 0.15 && d.depth <= 2\n }\n\n g.selectAll('text')\n .data(nodes.filter(d => d.depth > 0 && d.value && d.value > 0 && shouldDisplayLabel(d)))\n .enter().append('text')\n .attr('transform', d => {\n const angle = (d.x0 + d.x1) / 2\n const radius = (Math.sqrt(d.y0) + Math.sqrt(d.y1)) / 2\n const x = Math.cos(angle - Math.PI / 2) * radius\n const y = Math.sin(angle - Math.PI / 2) * radius\n return `translate(${x},${y})`\n })\n .attr('text-anchor', 'middle')\n .attr('alignment-baseline', 'middle')\n .attr('font-size', '12px')\n .attr('fill', 'var(--text-inverse)')\n .attr('font-weight', 'var(--font-medium)')\n .style('pointer-events', 'none')\n .text(d => d.data.name.substring(0, 10))\n\n return () => {\n tooltip.remove()\n }\n }, [data, width, height, colorMap, radius])\n\n return (\n <div className={styles.container}>\n <h3 className={styles.title}>{title}</h3>\n <svg\n ref={svgRef}\n width={width}\n height={height}\n className={styles.chart}\n />\n </div>\n )\n}","import React, { useRef, useEffect } from 'react'\nimport * as d3 from 'd3'\nimport styles from './PieChart.module.css'\n\ninterface PieDataPoint {\n name: string\n value: number\n color?: string\n}\n\ninterface PieChartProps {\n data: PieDataPoint[]\n width?: number\n height?: number\n title?: string\n showLegend?: boolean\n}\n\nconst DEFAULT_COLORS = [\n '#d4af37', '#FFD700', '#FFA500', '#FF8C00',\n '#FF6347', '#DC143C', '#8B4513', '#A0522D',\n '#DEB887', '#F4A460', '#D2691E', '#CD853F',\n '#B8860B', '#DAA520', '#F0E68C', '#BDB76B'\n]\n\nexport const PieChart: React.FC<PieChartProps> = ({\n data,\n width = 400,\n height = 400,\n title = 'Distribution',\n showLegend = true\n}) => {\n const svgRef = useRef<SVGSVGElement>(null)\n const radius = Math.min(width, height) / 2 - 20\n\n useEffect(() => {\n if (!svgRef.current || !data.length) return\n\n const svg = d3.select(svgRef.current)\n svg.selectAll('*').remove()\n\n const g = svg.append('g')\n .attr('transform', `translate(${width / 2},${height / 2})`)\n\n const pie = d3.pie<PieDataPoint>()\n .value(d => d.value)\n .sort(null)\n\n const arc = d3.arc<d3.PieArcDatum<PieDataPoint>>()\n .innerRadius(0)\n .outerRadius(radius)\n\n const labelArc = d3.arc<d3.PieArcDatum<PieDataPoint>>()\n .innerRadius(radius * 0.7)\n .outerRadius(radius * 0.7)\n\n const tooltip = d3.select('body').append('div')\n .attr('class', styles.tooltip)\n .style('opacity', 0)\n .style('position', 'absolute')\n\n const pieData = pie(data)\n const total = d3.sum(data, d => d.value)\n\n const arcs = g.selectAll('.arc')\n .data(pieData)\n .enter().append('g')\n .attr('class', 'arc')\n\n arcs.append('path')\n .attr('d', d => arc(d))\n .attr('fill', (d, i) => d.data.color || DEFAULT_COLORS[i % DEFAULT_COLORS.length])\n .attr('stroke', 'var(--bg-primary)')\n .attr('stroke-width', 2)\n .style('cursor', 'pointer')\n .on('mouseover', function(event, d) {\n d3.select(this)\n .transition()\n .duration(200)\n .style('opacity', 0.8)\n\n tooltip.transition()\n .duration(200)\n .style('opacity', 1)\n\n const percentage = ((d.data.value / total) * 100).toFixed(1)\n\n tooltip.html(`\n <div><strong>${d.data.name}</strong></div>\n <div>Value: ${d.data.value.toLocaleString()}</div>\n <div>${percentage}% of total</div>\n `)\n .style('left', (event.pageX + 10) + 'px')\n .style('top', (event.pageY - 28) + 'px')\n })\n .on('mouseout', function() {\n d3.select(this)\n .transition()\n .duration(200)\n .style('opacity', 1)\n\n tooltip.transition()\n .duration(500)\n .style('opacity', 0)\n })\n\n arcs.filter(d => (d.endAngle - d.startAngle) > 0.3)\n .append('text')\n .attr('transform', d => `translate(${labelArc.centroid(d)})`)\n .attr('text-anchor', 'middle')\n .attr('alignment-baseline', 'middle')\n .attr('font-size', '12px')\n .attr('fill', 'var(--text-inverse)')\n .attr('font-weight', 'var(--font-semibold)')\n .style('pointer-events', 'none')\n .text(d => {\n const percentage = ((d.data.value / total) * 100)\n return percentage > 5 ? `${percentage.toFixed(1)}%` : ''\n })\n\n return () => {\n tooltip.remove()\n }\n }, [data, width, height, radius])\n\n return (\n <div className={styles.container}>\n <h3 className={styles.title}>{title}</h3>\n <div className={styles.chartContainer}>\n <svg\n ref={svgRef}\n width={width}\n height={height}\n className={styles.chart}\n />\n {showLegend && (\n <div className={styles.legend}>\n {data.map((item, index) => (\n <div key={item.name} className={styles.legendItem}>\n <span \n className={styles.legendColor}\n style={{ \n backgroundColor: item.color || DEFAULT_COLORS[index % DEFAULT_COLORS.length] \n }}\n />\n <span className={styles.legendLabel}>\n {item.name}\n </span>\n <span className={styles.legendValue}>\n {item.value.toLocaleString()}\n </span>\n </div>\n ))}\n </div>\n )}\n </div>\n </div>\n )\n}"],"names":["ThemeContext","useTheme","_jsx","styles","_jsxs","_Fragment"],"mappings":"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","x_google_ignoreList":[6,7,8]}