@cyber-harbour/ui 1.0.55 → 1.0.57
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.mts +30 -8
- package/dist/index.d.ts +30 -8
- package/dist/index.js +225 -213
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +197 -185
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/Core/ContextMenu/ContextMenu.tsx +16 -4
- package/src/Core/Drawer/Drawer.tsx +47 -34
- package/src/Core/IconComponents/RelationPointsIcon.tsx +36 -0
- package/src/Core/IconComponents/index.ts +1 -0
- package/src/Core/Input/Input.tsx +6 -3
- package/src/Core/Select/Select.tsx +91 -16
- package/src/Theme/themes/dark.ts +4 -0
- package/src/Theme/themes/light.ts +4 -0
- package/src/Theme/types.ts +4 -0
- package/src/Theme/utils.ts +6 -11
- package/src/utils.ts +30 -0
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/Core/Button/Button.tsx","../src/Theme/GlobalStyle.tsx","../src/Theme/utils.ts","../src/Theme/themes/config.ts","../src/Theme/themes/light.ts","../src/Theme/themes/dark.ts","../src/Theme/ThemeProvider.tsx","../src/Theme/componentFabric.ts","../src/Theme/useTheme.tsx","../src/Core/IconComponents/AlertIcon.tsx","../src/Core/IconComponents/ApiIcon.tsx","../src/Core/IconComponents/ArrowCircleTopRightIcon.tsx","../src/Core/IconComponents/ArrowRightIcon.tsx","../src/Core/IconComponents/BugReportIcon.tsx","../src/Core/IconComponents/CalendarIcon.tsx","../src/Core/IconComponents/ChevronLeftIcon.tsx","../src/Core/IconComponents/ChevronRightIcon.tsx","../src/Core/IconComponents/CloseCircleIcon.tsx","../src/Core/IconComponents/ClosedLockIcon.tsx","../src/Core/IconComponents/DataSetsIcon.tsx","../src/Core/IconComponents/DeepSearchIcon.tsx","../src/Core/IconComponents/DisabledVisibleIcon.tsx","../src/Core/IconComponents/DocsIcon.tsx","../src/Core/IconComponents/DownloadIcon.tsx","../src/Core/IconComponents/EditUserIcon.tsx","../src/Core/IconComponents/EnableVisibleIcon.tsx","../src/Core/IconComponents/EnterArrowLeftIcon.tsx","../src/Core/IconComponents/FiltersIcon.tsx","../src/Core/IconComponents/HomepageIcon.tsx","../src/Core/IconComponents/InfoCircleIcon.tsx","../src/Core/IconComponents/MapRadarIcon.tsx","../src/Core/IconComponents/MoonIcon.tsx","../src/Core/IconComponents/OpenLockIcon.tsx","../src/Core/IconComponents/OrganizationIcon.tsx","../src/Core/IconComponents/PasswordFinderIcon.tsx","../src/Core/IconComponents/PhonebookIcon.tsx","../src/Core/IconComponents/PrintIcon.tsx","../src/Core/IconComponents/Profiler2Icon.tsx","../src/Core/IconComponents/ProfilerIcon.tsx","../src/Core/IconComponents/SandBoxIcon.tsx","../src/Core/IconComponents/SearchIcon.tsx","../src/Core/IconComponents/StatisticIcon.tsx","../src/Core/IconComponents/SunIcon.tsx","../src/Core/IconComponents/UpRightArrowCircleIcon.tsx","../src/Core/IconComponents/VectorIcon.tsx","../src/Core/IconComponents/BallsMenu.tsx","../src/Core/IconComponents/Check.tsx","../src/Core/IconComponents/ChevronDown.tsx","../src/Core/IconComponents/ChevronUp.tsx","../src/Core/IconComponents/Plus.tsx","../src/Core/IconComponents/Users.tsx","../src/Core/IconComponents/InfoCircleFilled.tsx","../src/Core/IconComponents/Unfold.tsx","../src/Core/IconComponents/Cross.tsx","../src/Core/IconComponents/MaximizeIcon.tsx","../src/Core/IconComponents/BusIcon.tsx","../src/Core/IconComponents/CarIcon.tsx","../src/Core/IconComponents/WayIcon.tsx","../src/Core/IconComponents/PlaneIcon.tsx","../src/Core/IconComponents/ShipIcon.tsx","../src/Core/IconComponents/FileIcon.tsx","../src/Core/IconComponents/IosIcon.tsx","../src/Core/IconComponents/AndroidIcon.tsx","../src/Core/IconComponents/MicrosoftIcon.tsx","../src/Core/IconComponents/FolderAlertIcon.tsx","../src/Core/IconComponents/RelationIcon.tsx","../src/Core/Sidebar/Sidebar.tsx","../src/Core/Sidebar/SidebarContext.tsx","../src/Core/Sidebar/SidebarItem.tsx","../src/Core/Sidebar/SidebarDelimeter.tsx","../src/Core/Sidebar/SidebarSection.tsx","../src/Core/Typography/Typography.tsx","../src/Core/ListMenu/ListMenu.tsx","../src/Core/ListMenu/ListMenuItem.tsx","../src/Core/ListMenu/ListMenuSection.tsx","../src/Core/Header/Header.tsx","../src/Core/Header/HeaderDelimeter.tsx","../src/Core/Header/HeaderSection.tsx","../src/Core/Table/Row.tsx","../src/Core/Table/Cell.tsx","../src/Core/Table/Table.tsx","../src/Core/Pagination/Pagination.tsx","../src/Core/ContextMenu/ContextMenu.tsx","../src/Core/ContextMenu/ContextMenuDelimiter.tsx","../src/Core/ContextMenu/useContextMenuControl.ts","../src/Core/Select/Select.tsx","../src/Core/RowActionsMenu/RowActionsMenu.tsx","../src/Core/Input/Input.tsx","../src/Core/Flex/FlexContainer.tsx","../src/Core/Flex/FlexItem.tsx","../src/Core/Box/Box.tsx","../src/Core/Line/Line.tsx","../src/Core/EmptyData/EmptyData.tsx","../src/Core/Tag/Tag.tsx","../src/Core/Alert/Alert.tsx","../src/Core/Label/Label.tsx","../src/Core/Checkbox/Checkbox.tsx","../src/Core/LinerProgress/LinerProgress.tsx","../src/Core/Switch/Switch.tsx","../src/Core/Drawer/Drawer.tsx","../src/Layouts/PageLayout/PageLayout.tsx","../src/Layouts/Container/Container.tsx","../src/Graph2D/GraphLoader.tsx","../src/Graph2D/Graph2D.tsx","../src/FullscreenCard/FullscreenCard.tsx"],"names":["GlobalStyle","createGlobalStyle","theme","resolveThemeColor","__name","colorPath","parts","category","variant","colorCategory","pxToRem","pxValue","baseSize","numericValue","remToPx","remValue","IGNORE_CONVERT_KEYS","propToRem","value","convertPaletteToRem","obj","parentKey","result","key","prop","getButtonStyles","color","state","getButtonSizeStyles","size","getInputStyles","getTypographyStyles","getBreakpoint","hexToRgba","hex","alpha","g","b","zIndex","breakpoints","typography","lightThemePx","lightTheme","darkThemePx","darkTheme","ThemeProvider","children","mode","jsx","StyleSheetManager","shouldForwardProp","jsxs","ThemeProviderStyled","propName","target","marginStyles","ignoreStyles","css","props","generatePropertySpaceStyle","paddingStyles","property","ignoredOptions","createComponent","component","options","styled","destructSpaceProps","rest","useTheme","useStyledTheme","getCss","styles","getIconStyles","ButtonTextContainer","StyledIconWrapper","Btn","$variant","$color","$size","$disabled","$fullWidth","$iconPosition","$iconVariant","px","py","sizes","StyledButton","Button","disabled","fullWidth","className","icon","iconPosition","iconVariant","AlertIcon","fill","ApiIcon","ArrowCircleTopRightIcon","ArrowRightIcon","BugReportIcon","CalendarIcon","ChevronLeftIcon","ChevronRightIcon","CloseCircleIcon","ClosedLockIcon","DataSetsIcon","DeepSearchIcon","DisabledVisibleIcon","DocsIcon","DownloadIcon","EditUserIcon","EnableVisibleIcon","EnterArrowLeftIcon","FiltersIcon","HomepageIcon","InfoCircleIcon","MapRadarIcon","MoonIcon","OpenLockIcon","OrganizationIcon","PasswordFinderIcon","PhonebookIcon","PrintIcon","Profiler2Icon","ProfilerIcon","SandBoxIcon","SearchIcon","stroke","StatisticIcon","SunIcon","UpRightArrowCircleIcon","VectorIcon","BallsMenu","CheckIcon","ChevronDownIcon","ChevronUpIcon","PlusIcon","UsersIcon","InfoCircleFilledIcon","UnfoldIcon","CrossIcon","MaximizeIcon","BusIcon","CarIcon","WayIcon","PlaneIcon","ShipIcon","FileIcon","IosIcon","AndroidIcon","MicrosoftIcon","FolderAlertIcon","RelationIcon","SidebarContext","createContext","Sidebar","defaultCollapsed","collapsed","setCollapsed","React","StyledContainer","$collapsed","SidebarItem","active","Icon","label","useContext","isAnchor","StyledItem","StyledText","$active","SidebarDelimeter","StyledDelimeter","SidebarSection","grow","shrink","basis","items","StyledSection","$grow","$shrink","$basis","StyledTypography","$weight","$style","$ellipsis","Typography","element","weight","fontStyle","style","ellipsis","Element","ListMenu","width","StyledList","$width","ListMenuItem","count","StyledLink","StyledCount","ListMenuSection","title","StyledTitle","Header","HeaderDelimeter","HeaderSection","justify","$justify","Row","HeadCell","Cell","Table","columns","rowCount","renderCell","renderHeaderCell","rowIds","cellCount","data","useMemo","i","j","StyledTable","StyledHead","id","cells","rowIndex","cell","cellIndex","PAGINATION_LIMIT","DIFF","VISIBLE_GROUPE","STEP","ELLIPSIS","Pagination","total_items","limit","offset","onChangePage","currentPage","pages","paginationItems","lastPage","isDisabled","useCallback","page","onPaginationClick","FlexGroup","idx","$current","ContextMenu","isOpen","onClickOutside","onClick","anchor","positions","align","hasBorder","maxHeight","buttonRef","useRef","Popover","$hasBorder","ContextMenuDelimiter","useContextMenuControl","setIsOpen","useState","prev","Select","selected","handleSelect","placeholder","handleToggle","option","StyledWrapper","item","$selected","RowActionsMenu","closeMenu","toggleMenu","ContentWrapper","Input","forwardRef","error","append","prepend","multiline","ref","Group","InputGroup","TextAreaInput","StyledInput","IconWrapper","rows","autoResize","areaSize","setAreaSize","rowsRef","divRef","rowHeight","useEffect","height","StyledTextarea","SizeContainer","$align","$error","$multiline","FlexContainer","direction","wrap","alignContent","gap","rowGap","columnGap","as","StyledFlexContainer","$direction","$wrap","$alignContent","$gap","$rowGap","$columnGap","FlexItem","order","StyledFlexItem","$order","Box","StyledBox","Line","StyledLine","EmptyData","note","Container","Tag","onDelete","Content","DeleteButton","e","$clickable","Alert","Title","Note","alert","pl","pr","Label","helpText","errorText","$isRow","StyledLabel","LabelWrapper","LabelText","HelpText","Wrapper","ErrorText","mb","Checkbox","spaceProps","StyledCheckbox","HiddenInput","CustomCheckbox","LinerProgress","$height","$value","Switch","StyledSwitch","Drawer","createPortal","DrawerWithOutclick","onClose","header","drawerRef","handleClick","StyledDrawer","CloseButton","$header","PageLayout","sidebar","StyledMain","$withHeader","$withSidebar","maxWidth","$maxWidth","LoaderWrapper","GraphLoader","ContentLoader","GraphLoader_default","RATIO","prepareButtonImages","buttons","button","normalImg","hoverImg","config","Graph2D","loading","graphData","onNodeClick","onBackgroundClick","onNodeHover","onLinkHover","onLinkClick","isRendering","setIsRendering","stateRef","nodes","links","cloneDeep","buttonImages","setButtonImages","canvasRef","simulationRef","ctx2dRef","scaleOrdinal","schemeCategory10","init2DCanvas","ctx","getNodes","getLinks","linkForce","renderGrid","canvasWidth","canvasHeight","gridSpacing","dotSize","x","y","truncateText","text","truncated","calculateFontSize","scale","fontSizeRatio","renderLinks","link","source","n","start","end","dx","dy","distance","unitDx","unitDy","sourceRadius","targetRadius","arrowHeadLength","adjustedStart","adjustedEnd","adjusteArrowdEnd","isHighlighted","lineColor","lineWidth","middleX","middleY","angle","globalScale","scaledFontSize","textWidth","padding","beforeTextDistance","pointBeforeText","afterTextDistance","pointAfterText","arrowHeadWidth","renderNodeButtons","node","buttonRadius","buttonCount","sectorAngle","startAngle","endAngle","isHovered","iconSize","midAngle","iconDistance","iconX","iconY","buttonImage","renderNodes","nodeColor","fontColor","isSelected","radius","ringRadius","truncatedLabel","renderCanvas2D","addNodes","newNodes","newLinks","smoothAppearance","transitionDuration","existingNodeIds","filteredNewNodes","existingLinkIds","filteredNewLinks","linkId","updatedNodes","updatedLinks","connectedLinks","sourceId","targetId","someLink","connectedNodeId","connectedNode","randomOffset","randomAngle","centerX","centerY","removeNodes","nodeIds","nodeIdsToRemove","remainingNodes","remainingLinks","zoomToFit","duration","minX","minY","maxX","maxY","contentWidth","contentHeight","scaleX","scaleY","newTransform","startTransform","startTime","animateZoom","t","easedT","interpolatedTransform","getNodeAtPosition","nodeRadius","pixelRatio","scaledX","scaledY","getLinkAtPosition","threshold","sourceX","sourceY","targetX","targetY","A","B","C","D","dot","lenSq","param","xx","yy","isPointInButtonSector","mouseX","mouseY","nodeX","nodeY","isInRadius","isInAngle","handleNodeHover","newHighlightNodes","newHighlightLinks","neighbor","handleLinkHover","handleLinkClick","handleNodeClick","handleBackgroundClick","handleMouseDown","event","rect","handleMouseMove","startX","startY","shouldRender","hoveredNode","canvasScaleX","canvasScaleY","scaledMouseX","scaledMouseY","worldX","worldY","hoveredIndex","hoveredLink","shouldRenderLink","handleMouseUp","wasDragging","isButtonClick","clickedLink","alphaValue","alphaDecayValue","velocityDecayValue","handleWheel","scaleFactor","currentTransform","newScale","newK","newX","newY","useImperativeHandle","canvasElement","nodeSize","linkDistance","simulation","forceSimulation","forceLink","d","forceManyBody","forceX","forceY","forceCenter","forceCollide","useLayoutEffect","canvas","Canvas","FullscreenCard","isActive","position","top","left","right","bottom","$isActive","$top","$left","$right","$bottom","$position"],"mappings":"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","file":"index.js","sourcesContent":["import React from 'react';\nimport styled from 'styled-components';\nimport {\n ButtonVariant,\n ButtonSize,\n ButtonColor,\n getButtonStyles,\n getButtonSizeStyles,\n ButtonElementStyle,\n createComponent,\n FabricComponent,\n generatePropertySpaceStyle,\n} from '../../Theme';\n\ntype BaseButtonProps = FabricComponent<{\n children?: any;\n variant?: ButtonVariant;\n color?: ButtonColor;\n size?: ButtonSize;\n disabled?: boolean;\n fullWidth?: boolean;\n className?: string;\n icon?: any;\n iconPosition?: 'left' | 'right';\n iconVariant?: 'filled' | 'empty';\n}>;\n\nexport type ButtonProps = (\n | Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'children'>\n | Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'children'>\n) &\n BaseButtonProps;\n\nconst getCss = (styles: ButtonElementStyle) => `\n background: ${styles.background};\n color: ${styles.text};\n border-color: ${styles.border};\n box-shadow: ${styles.boxShadow};\n `;\n\nconst getIconStyles = (styles: ButtonElementStyle) =>\n styles.filledIcon\n ? `\n color: ${styles.filledIcon.color};\n background: ${styles.filledIcon.background};\n `\n : '';\n\n// Створюємо стилізований компонент, що використовує уніфіковану палітру\nconst ButtonTextContainer = styled.div`\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n user-select: text;\n`;\n\nconst StyledIconWrapper = styled.span`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n`;\n\ntype StyledButtonProps = {\n $variant: ButtonVariant;\n $color: ButtonColor;\n $size: ButtonSize;\n $disabled: boolean;\n $fullWidth: boolean;\n $iconPosition: 'left' | 'right';\n $iconVariant: 'filled' | 'empty';\n};\n\nconst Btn = styled.button<FabricComponent<StyledButtonProps>>(\n ({\n $variant,\n $color,\n $size,\n $disabled,\n $fullWidth,\n $iconPosition,\n $iconVariant,\n theme,\n px = $variant !== 'empty' ? theme.button.sizes[$size].paddingInline : 0,\n py = $variant !== 'empty' ? theme.button.sizes[$size].paddingBlock : 0,\n }) => {\n const sizes = getButtonSizeStyles(theme, $size);\n return `\n ${getCss(getButtonStyles(theme, $variant, $color, 'default'))}\n font-size: ${sizes.fontSize};\n gap: ${sizes.gap};\n ${generatePropertySpaceStyle(theme, 'padding-block', py)};\n ${generatePropertySpaceStyle(theme, 'padding-inline', px)};\n border-radius: ${sizes.borderRadius};\n border-width: ${sizes.borderWidth};\n border-style: solid;\n max-width: 100%;\n width: ${$fullWidth ? '100%' : 'auto'};\n cursor: ${$disabled ? 'not-allowed' : 'pointer'};\n font-weight: 500;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n text-decoration: none;\n transition: all 0.2s ease;\n outline: none;\n user-select: text;\n\n ${$iconPosition === 'right' ? 'flex-direction: row-reverse;' : ''}\n\n &:hover {\n ${getCss(getButtonStyles(theme, $variant, $color, 'hover'))}\n }\n\n &:active {\n ${getCss(getButtonStyles(theme, $variant, $color, 'active'))}\n }\n\n &:disabled {\n ${getCss(getButtonStyles(theme, $variant, $color, 'disabled'))}\n }\n\n ${StyledIconWrapper} svg {\n width: ${sizes.iconSize};\n height: ${sizes.iconSize};\n }\n\n ${\n $iconVariant === 'filled'\n ? `\n ${StyledIconWrapper} {\n width: 24px;\n height: 24px;\n border-radius: ${sizes.borderRadius};\n transition: all 0.2s ease;\n ${getIconStyles(getButtonStyles(theme, $variant, $color, 'default'))}\n }\n &:hover {\n ${StyledIconWrapper} {\n ${getIconStyles(getButtonStyles(theme, $variant, $color, 'hover'))}\n }\n }\n\n &:active {\n ${StyledIconWrapper} {\n ${getIconStyles(getButtonStyles(theme, $variant, $color, 'active'))}\n }\n }\n\n &:disabled {\n ${StyledIconWrapper} {\n ${getIconStyles(getButtonStyles(theme, $variant, $color, 'disabled'))}\n }\n }\n `\n : ``\n }\n `;\n }\n);\nconst StyledButton = createComponent(Btn);\n\nexport const Button = ({\n children,\n variant = 'fill',\n color = 'primary',\n size = 'medium',\n disabled = false,\n fullWidth = false,\n className,\n icon,\n iconPosition = 'left',\n iconVariant = 'empty',\n ...props\n}: ButtonProps) => {\n return (\n <StyledButton\n as={'href' in props ? 'a' : 'button'}\n $variant={variant}\n $color={color}\n $size={size}\n $disabled={disabled}\n $fullWidth={fullWidth}\n $iconPosition={iconPosition}\n $iconVariant={iconVariant}\n disabled={disabled}\n className={className}\n {...props}\n >\n {!!icon && <StyledIconWrapper>{icon}</StyledIconWrapper>}\n {!!children && <ButtonTextContainer>{children}</ButtonTextContainer>}\n </StyledButton>\n );\n};\n","import { createGlobalStyle } from 'styled-components';\n\nexport const GlobalStyle = createGlobalStyle(\n ({ theme }) => `\n *, *::before, *::after {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n }\n\n body, html {\n background: ${theme.colors.backgroundBase};\n color: ${theme.colors.text.main};\n font-family: ${theme.typography.fontFamily};\n font-size: ${theme.baseSize}px;\n }\n`\n);\n","import { DefaultTheme } from 'styled-components';\nimport {\n Breakpoint,\n ButtonColor,\n ButtonSize,\n ButtonState,\n ButtonVariant,\n InputSize,\n InputState,\n InputVariant,\n} from './types';\n\n/**\n * Helper function to resolve nested color paths from theme\n * Supports formats like 'primary.main', 'text.lightest', 'background'\n *\n * @param theme - The styled-components theme object\n * @param colorPath - A dot-notation path to the color in the theme, e.g. 'primary.main'\n * @returns The resolved color value or undefined if not found\n */\nexport const resolveThemeColor = (theme: DefaultTheme, colorPath: string | undefined): string | undefined => {\n // Skip processing if not a string or empty\n if (!colorPath || typeof colorPath !== 'string') {\n return undefined;\n }\n\n // Check if it's a color path (contains dot) or a top-level theme color property\n const isThemeColorPath = colorPath.includes('.') || theme.colors.hasOwnProperty(colorPath);\n\n // Return early if it's not a theme color path\n if (!isThemeColorPath) {\n return colorPath; // Return as-is if it's not a theme color path\n }\n\n const parts = colorPath.split('.');\n\n if (parts.length === 1) {\n // For simple color keys like 'background', 'disable'\n return theme.colors[parts[0] as keyof typeof theme.colors] as string;\n } else if (parts.length === 2) {\n // For nested color keys like 'primary.main', 'text.light'\n const [category, variant] = parts;\n const colorCategory = theme.colors[category as keyof typeof theme.colors];\n\n if (colorCategory && typeof colorCategory === 'object') {\n return colorCategory[variant as keyof typeof colorCategory] as string;\n }\n }\n\n return undefined;\n};\n\n/**\n * Converts a pixel value to rem units\n *\n * @param pxValue - The pixel value to convert. Can be a number or a string with 'px' suffix\n * @param baseSize - Base font size in pixels. Default is 16px (browser default)\n * @returns The value in rem units as a string (e.g., \"1.25rem\")\n */\nexport const pxToRem = (pxValue: number | string, baseSize: number = 16): string => {\n // If pxValue is a string with 'px' suffix, extract the numeric value\n const numericValue = typeof pxValue === 'string' ? parseFloat(pxValue.replace('px', '')) : pxValue;\n\n // Handle invalid values\n if (isNaN(numericValue)) {\n console.warn(`Invalid pixel value: ${pxValue}`);\n return '0';\n }\n\n // Convert to rem and round to 4 decimal places for precision\n const remValue = (numericValue / baseSize).toFixed(4).replace(/\\.?0+$/, '');\n\n return `${remValue}rem`;\n};\n\nexport const remToPx = (remValue: number | string, baseSize: number = 16): number => {\n // If remValue is a string with 'rem' suffix, extract the numeric value\n const numericValue = typeof remValue === 'string' ? parseFloat(remValue.replace('rem', '')) : remValue;\n if (isNaN(numericValue)) {\n return 0;\n }\n\n return numericValue * baseSize;\n};\n\nconst IGNORE_CONVERT_KEYS: Record<string, string[] | boolean> = {\n contextMenu: ['padding'],\n baseSize: true,\n};\n\n/**\n * Converts a prop value to rem units if needed\n *\n * @param value - The pixel value to convert. Can be a number or a string with 'px' suffix\n * @param baseSize - Base font size in pixels. Default is 16px (browser default)\n * @returns The value in rem units as a string (e.g., \"1.25rem\")\n */\nexport const propToRem = (value: number | string, baseSize: number = 16): string => {\n if (typeof value === 'string' && value.trim().endsWith('%')) return value; // Return percentage values as-is\n const numericValue = typeof value === 'string' ? parseFloat(value) : value;\n\n // Handle invalid values\n if (isNaN(numericValue)) {\n return `${value}`;\n }\n\n // Convert to rem and round to 4 decimal places for precision\n const remValue = (numericValue / baseSize).toFixed(4).replace(/\\.?0+$/, '');\n\n return `${remValue}rem`;\n};\n/**\n * Recursively converts all pixel values in an object to rem units\n *\n * @param obj - The object containing values to convert\n * @param baseSize - Base font size in pixels. Default is 16px\n * @returns A new object with pixel values converted to rem\n */\nexport const convertPaletteToRem = (\n obj: Record<string, any>,\n baseSize: number = 14,\n parentKey?: string\n): Record<string, any> => {\n const result: Record<string, any> = {};\n\n Object.entries(obj).forEach(([key, value]) => {\n // If the value is an object and not null, recursively convert its properties\n if (value !== null && typeof value === 'object' && !Array.isArray(value)) {\n result[key] = convertPaletteToRem(value, baseSize, key);\n }\n // If value is a string and contains 'px', convert it to rem\n else if (typeof value === 'string' && value.includes('px')) {\n result[key] = pxToRem(value, baseSize);\n }\n // Handle numeric values that represent pixels for specific properties\n else if (\n typeof value === 'number' &&\n ['fontSize', 'width', 'height', 'padding', 'margin', 'gap', 'borderRadius', 'size'].some((prop) =>\n key.toLowerCase().includes(prop.toLowerCase())\n )\n ) {\n if (\n !(parentKey && Array.isArray(IGNORE_CONVERT_KEYS[parentKey]) && IGNORE_CONVERT_KEYS[parentKey].includes(key)) &&\n !IGNORE_CONVERT_KEYS[key]\n ) {\n result[key] = pxToRem(value, baseSize);\n } else {\n result[key] = value; // Keep original value if it's in the ignore list\n }\n }\n // Keep other values unchanged\n else {\n result[key] = value;\n }\n });\n\n return result;\n};\n\n// Вспоміжні функції для роботи з палітрою\n/**\n * Функція для отримання стилів кнопки за варіантом, кольором, станом та розміром\n */\nexport const getButtonStyles = <V extends ButtonVariant>(\n theme: DefaultTheme,\n variant: ButtonVariant,\n color: ButtonColor,\n state: ButtonState\n) => {\n return theme.button[variant][color][state];\n};\n\nexport const getButtonSizeStyles = (theme: DefaultTheme, size: ButtonSize) => {\n return theme.button.sizes[size];\n};\n\n/**\n * Функція для отримання стилів інпута за варіантом та станом\n */\nexport const getInputStyles = (theme: DefaultTheme, variant: InputVariant, state: InputState) => {\n return theme.input[variant][state];\n};\n\n/**\n * Функція для отримання типографічних стилів\n */\nexport const getTypographyStyles = (theme: DefaultTheme, variant: string = 'body') => {\n return theme.typography.variants[variant as keyof typeof theme.typography.variants] || theme.typography.variants.body;\n};\n\n/**\n * Функція для отримання медіа-запитів для breakpoints\n */\nexport const getBreakpoint = (theme: DefaultTheme, size: Breakpoint = 'm') => {\n return `@media (min-width: ${theme.breakpoints[size]}px)`;\n};\n\n/**\n * Функція для отримання rgba кольору з hex формату\n */\nexport const hexToRgba = (hex: string, alpha: number): string => {\n try {\n const r = parseInt(hex.slice(1, 3), 16);\n const g = parseInt(hex.slice(3, 5), 16);\n const b = parseInt(hex.slice(5, 7), 16);\n return `rgba(${r}, ${g}, ${b}, ${alpha})`;\n } catch {\n return hex;\n }\n};\n","// Індексні шари (z-index) для різних компонентів\nexport const zIndex = {\n dropdown: 1000,\n sticky: 1020,\n fixed: 1030,\n backdrop: 1040,\n modal: 1050,\n popover: 1060,\n tooltip: 1070,\n};\n\n// Розміри брейкпоінтів\nexport const breakpoints = {\n xs: 320,\n s: 576,\n m: 768,\n l: 992,\n xl: 1200,\n};\n\n// Типографія\nexport const typography = {\n fontFamily:\n 'Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;',\n lineHeight: 1.49,\n // Розміри текстових елементів\n variants: {\n h1: {\n fontSize: 22,\n },\n h2: {\n fontSize: 16,\n },\n h3: {\n fontSize: 14,\n },\n body: {\n fontSize: 12,\n },\n },\n};\n","import { DefaultTheme } from 'styled-components/dist/types';\n\nimport { convertPaletteToRem } from '../utils';\nimport { Theme } from '../types';\nimport { breakpoints, typography, zIndex } from './config';\n\n/**\n * Палітра, що містить як кольори, так і розміри в px\n * Кольори взято з теми, розміри будуть автоматично конвертовані в rem\n */\nexport const lightThemePx: Theme = {\n mode: 'light',\n baseSize: 14, // Базовий розмір шрифту для конвертації px в rem\n // Секція кольорів з теми\n colors: {\n background: '#ffffff',\n backgroundBase: '#F7F8FC',\n primary: {\n main: '#0042EC',\n light: '#80A0F5',\n lighter: '#E5ECFD',\n lightest: '#F3F7FF',\n lightest2: 'rgba(0, 66, 236, 0.05)',\n },\n text: {\n main: '#101010',\n light: '#535353',\n lighter: '#99989C',\n invert: '#ffffff',\n },\n stroke: {\n main: '#C7C5C5',\n light: '#EBEBEB',\n lighter: '#F3F3F3',\n },\n disable: '#FAFAFA',\n success: '#27AE60',\n error: '#C93939',\n warning: '#F2994A',\n info: '#2F80ED',\n },\n // Типографія\n typography,\n breakpoints,\n zIndex,\n line: {\n size: 1,\n color: '#EBEBEB',\n },\n button: {\n // Варіанти кнопок з кольорами\n fill: {\n default: {\n // колір default\n default: {\n background: '#E8EAEE',\n text: '#101010',\n border: ' #E8EAEE',\n boxShadow: 'none',\n },\n hover: {\n background: '#E5ECFD',\n text: '#101010',\n border: ' #E5ECFD',\n boxShadow: 'none',\n },\n active: {\n background: '#E5ECFD',\n text: '#101010',\n border: ' #E5ECFD',\n boxShadow: 'none',\n },\n disabled: {\n background: '#EBEBEB',\n text: '#99989C',\n border: ' #EBEBEB',\n boxShadow: 'none',\n },\n },\n primary: {\n // колір primary\n default: {\n background: '#0042EC',\n text: '#FFFFFF',\n border: ' #0042EC',\n boxShadow: 'none',\n },\n hover: {\n background: '#4D7BF2',\n text: '#FFFFFF',\n border: ' #4D7BF2',\n boxShadow: 'none',\n },\n active: {\n background: '#4D7BF2',\n text: '#FFFFFF',\n border: ' #4D7BF2',\n boxShadow: 'none',\n },\n disabled: {\n background: '#99989C',\n text: '#FFFFFF',\n border: ' #E5ECFD',\n boxShadow: 'none',\n },\n },\n //default as secondary\n secondary: {\n // колір default\n default: {\n background: '#E8EAEE',\n text: '#101010',\n border: ' #E8EAEE',\n boxShadow: 'none',\n },\n hover: {\n background: '#E5ECFD',\n text: '#101010',\n border: ' #E5ECFD',\n boxShadow: 'none',\n },\n active: {\n background: '#E5ECFD',\n text: '#101010',\n border: ' #E5ECFD',\n boxShadow: 'none',\n },\n disabled: {\n background: '#EBEBEB',\n text: '#99989C',\n border: ' #EBEBEB',\n boxShadow: 'none',\n },\n },\n error: {\n // колір error\n default: {\n background: '#C93939',\n text: '#FFFFFF',\n border: ' #C93939',\n boxShadow: 'none',\n },\n hover: {\n background: '#C53939',\n text: '#FFFFFF',\n border: ' #C53939',\n boxShadow: 'none',\n },\n active: {\n background: '#C53939',\n text: '#FFFFFF',\n border: ' #C53939',\n boxShadow: 'none',\n },\n disabled: {\n background: '#FFCCCB',\n text: '#FFFFFF',\n border: ' #FFCCCB',\n boxShadow: 'none',\n },\n },\n soft: {\n // колір default\n default: {\n background: '#80A0F5',\n text: '#FFFFFF',\n border: '#80A0F5',\n boxShadow: 'none',\n },\n hover: {\n background: '#0042EC',\n text: '#FFFFFF',\n border: '#0042EC',\n boxShadow: 'none',\n },\n active: {\n background: '#0042EC',\n text: '#FFFFFF',\n border: '#0042EC',\n boxShadow: 'none',\n },\n disabled: {\n background: '#EBEBEB',\n text: '#99989C',\n border: ' #EBEBEB',\n boxShadow: 'none',\n },\n },\n light: {\n // колір default\n default: {\n background: '#535353',\n text: '#FFFFFF',\n border: '#535353',\n boxShadow: 'none',\n },\n hover: {\n background: '#99989C',\n text: '#FFFFFF',\n border: '#99989C',\n boxShadow: 'none',\n },\n active: {\n background: '#99989C',\n text: '#FFFFFF',\n border: '#99989C',\n boxShadow: 'none',\n },\n disabled: {\n background: '#EBEBEB',\n text: '#99989C',\n border: ' #EBEBEB',\n boxShadow: 'none',\n },\n },\n },\n outlined: {\n default: {\n // колір default\n default: {\n background: 'transparent',\n text: '#101010',\n border: ' #EBEBEB',\n boxShadow: 'none',\n },\n hover: {\n background: '#E5ECFD',\n text: '#101010',\n border: ' #EBEBEB',\n boxShadow: 'none',\n },\n active: {\n background: '#E5ECFD',\n text: '#101010',\n border: ' #EBEBEB',\n boxShadow: 'none',\n },\n disabled: {\n background: 'transparent',\n text: '#99989C',\n border: ' #EBEBEB',\n boxShadow: 'none',\n },\n },\n primary: {\n // колір primary\n default: {\n background: 'transparent',\n text: '#0042EC',\n border: ' #0042EC',\n boxShadow: 'none',\n },\n hover: {\n background: '#E5ECFD',\n text: '#0042EC',\n border: ' #0042EC',\n boxShadow: 'none',\n },\n active: {\n background: '#E5ECFD',\n text: '#0042EC',\n border: ' #0042EC',\n boxShadow: 'none',\n },\n disabled: {\n background: 'transparent',\n text: '#99989C',\n border: ' #99989C',\n boxShadow: 'none',\n },\n },\n secondary: {\n // колір secondary\n default: {\n background: 'transparent',\n text: '#0042EC',\n border: ' #EBEBEB',\n boxShadow: 'none',\n },\n hover: {\n background: '#E5ECFD',\n text: '#0042EC',\n border: ' #EBEBEB',\n boxShadow: 'none',\n },\n active: {\n background: '#E5ECFD',\n text: '#0042EC',\n border: ' #EBEBEB',\n boxShadow: 'none',\n },\n disabled: {\n background: 'transparent',\n text: '#99989C',\n border: ' #EBEBEB',\n boxShadow: 'none',\n },\n },\n error: {\n // колір error\n default: {\n background: 'transparent',\n text: '#C93939',\n border: ' #C93939',\n boxShadow: 'none',\n },\n hover: {\n background: '#FCF5F5',\n text: '#C93939',\n border: ' #C93939',\n boxShadow: 'none',\n },\n active: {\n background: '#FCF5F5',\n text: '#C93939',\n border: ' #C93939',\n boxShadow: 'none',\n },\n disabled: {\n background: 'transparent',\n text: '#99989C',\n border: ' #99989C',\n boxShadow: 'none',\n },\n },\n soft: {\n // колір default\n default: {\n background: 'transparent',\n text: '#80A0F5',\n border: '#80A0F5',\n boxShadow: 'none',\n },\n hover: {\n background: '#E5ECFD',\n text: '#80A0F5',\n border: '#80A0F5',\n boxShadow: 'none',\n },\n active: {\n background: '#E5ECFD',\n text: '#80A0F5',\n border: '#80A0F5',\n boxShadow: 'none',\n },\n disabled: {\n background: 'transparent',\n text: '#99989C',\n border: ' #EBEBEB',\n boxShadow: 'none',\n },\n },\n light: {\n // колір default\n default: {\n background: 'transparent',\n text: '#535353',\n border: '#EBEBEB',\n boxShadow: 'none',\n },\n hover: {\n background: '#EEEEEE',\n text: '#535353',\n border: '#EBEBEB',\n boxShadow: 'none',\n },\n active: {\n background: '#EEEEEE',\n text: '#535353',\n border: '#EBEBEB',\n boxShadow: 'none',\n },\n disabled: {\n background: 'transparent',\n text: '#99989C',\n border: ' #EBEBEB',\n boxShadow: 'none',\n },\n },\n },\n empty: {\n default: {\n // колір default\n default: {\n background: 'transparent',\n text: '#101010',\n border: 'transparent',\n boxShadow: 'none',\n },\n hover: {\n background: 'transparent',\n text: '#80A0F5',\n border: 'transparent',\n boxShadow: 'none',\n },\n active: {\n background: 'transparent',\n text: '#80A0F5',\n border: 'transparent',\n boxShadow: 'none',\n },\n disabled: {\n background: 'transparent',\n text: '#99989C',\n border: 'transparent',\n boxShadow: 'none',\n },\n },\n primary: {\n // колір primary\n default: {\n background: 'transparent',\n text: '#0042EC',\n border: 'transparent',\n boxShadow: 'none',\n filledIcon: {\n background: '#E5ECFD',\n color: '#0042EC',\n },\n },\n hover: {\n background: 'transparent',\n text: '#80A0F5',\n border: 'transparent',\n boxShadow: 'none',\n filledIcon: {\n background: '#0042EC',\n color: '#ffffff',\n },\n },\n active: {\n background: 'transparent',\n text: '#80A0F5',\n border: 'transparent',\n boxShadow: 'none',\n filledIcon: {\n background: '#0042EC',\n color: '#ffffff',\n },\n },\n disabled: {\n background: 'transparent',\n text: '#99989C',\n border: 'transparent',\n boxShadow: 'none',\n filledIcon: {\n background: '#BEBEBE',\n color: '#99989C',\n },\n },\n },\n //default as secondary\n secondary: {\n // колір default\n default: {\n background: 'transparent',\n text: '#101010',\n border: 'transparent',\n boxShadow: 'none',\n },\n hover: {\n background: 'transparent',\n text: '#0042EC',\n border: 'transparent',\n boxShadow: 'none',\n },\n active: {\n background: 'transparent',\n text: '#0042EC',\n border: 'transparent',\n boxShadow: 'none',\n },\n disabled: {\n background: 'transparent',\n text: '#99989C',\n border: 'transparent',\n boxShadow: 'none',\n },\n },\n error: {\n // колір error\n default: {\n background: 'transparent',\n text: '#C93939',\n border: 'transparent',\n boxShadow: 'none',\n },\n hover: {\n background: 'transparent',\n text: '#FCF5F5',\n border: 'transparent',\n boxShadow: 'none',\n },\n active: {\n background: 'transparent',\n text: '#FCF5F5',\n border: 'transparent',\n boxShadow: 'none',\n },\n disabled: {\n background: 'transparent',\n text: '#99989C',\n border: 'transparent',\n boxShadow: 'none',\n },\n },\n soft: {\n // колір default\n default: {\n background: 'transparent',\n text: '#80A0F5',\n border: 'transparent',\n boxShadow: 'none',\n },\n hover: {\n background: 'transparent',\n text: '#E5ECFD',\n border: 'transparent',\n boxShadow: 'none',\n },\n active: {\n background: 'transparent',\n text: '#E5ECFD',\n border: 'transparent',\n boxShadow: 'none',\n },\n disabled: {\n background: 'transparent',\n text: '#99989C',\n border: 'transparent',\n boxShadow: 'none',\n },\n },\n light: {\n // колір default\n default: {\n background: 'transparent',\n text: '#535353',\n border: 'transparent',\n boxShadow: 'none',\n },\n hover: {\n background: 'transparent',\n text: '#EEEEEE',\n border: 'transparent',\n boxShadow: 'none',\n },\n active: {\n background: 'transparent',\n text: '#EEEEEE',\n border: 'transparent',\n boxShadow: 'none',\n },\n disabled: {\n background: 'transparent',\n text: '#99989C',\n border: 'transparent',\n boxShadow: 'none',\n },\n },\n },\n // Розміри кнопок\n sizes: {\n small: {\n fontSize: 14,\n iconSize: 16,\n paddingInline: 10,\n paddingBlock: 10,\n borderRadius: 5,\n borderWidth: 1,\n gap: 10,\n },\n medium: {\n fontSize: 16,\n iconSize: 16,\n paddingInline: 10,\n paddingBlock: 10,\n borderRadius: 5,\n borderWidth: 1,\n gap: 10,\n },\n },\n },\n\n // Компонент Sidebar\n sidebar: {\n background: '#FFFFFF',\n border: '#EBEBEB',\n width: 224,\n collapsedWidth: 65,\n text: {\n default: '#535353',\n active: '#0042EC',\n hover: '#0042EC',\n },\n item: {\n default: {\n background: 'transparent',\n border: 'transparent',\n padding: '10px 16px',\n height: 40,\n },\n active: {\n background: '#E5ECFD',\n borderLeft: '2px solid #0042EC',\n padding: '10px 16px',\n height: 40,\n },\n hover: {\n background: '#F3F7FF',\n border: 'transparent',\n padding: '10px 16px',\n height: 40,\n },\n },\n section: {\n background: 'transparent',\n padding: '16px 16px 8px',\n title: {\n color: '#99989C',\n fontSize: '12px',\n fontWeight: 600,\n },\n },\n delimeter: {\n color: '#C7C5C5',\n thickness: 1,\n margin: '8px 0',\n },\n },\n contextMenu: {\n button: {\n default: {\n background: 'transparent',\n text: '#101010',\n border: ' #EBEBEB',\n boxShadow: 'none',\n },\n hover: {\n background: 'transparent',\n text: '#0042EC',\n border: ' #EBEBEB',\n boxShadow: 'none',\n },\n active: {\n background: 'transparent',\n text: '#0042EC',\n border: ' #EBEBEB',\n boxShadow: 'none',\n },\n disabled: {\n background: '#FAFAFA',\n text: '#99989C',\n border: ' #EBEBEB',\n boxShadow: 'none',\n },\n },\n delimeter: {\n color: '#C7C5C5',\n thickness: 1,\n marginInline: 12,\n marginBlock: 3,\n style: 'solid',\n },\n shadow: '0px 4px 16px rgba(0, 0, 0, 0.1), 0px 2px 4px rgba(0, 0, 0, 0.06)',\n padding: 5,\n icon: {\n size: 7,\n },\n },\n // Компонент Select\n select: {\n item: {\n default: {\n background: 'transparent',\n text: '#101010',\n border: ' none',\n boxShadow: 'none',\n },\n hover: {\n background: '#E5ECFD',\n text: '#101010',\n border: ' none',\n boxShadow: 'none',\n },\n active: {\n background: '#E8EAEE',\n text: '#101010',\n border: ' none',\n boxShadow: 'none',\n },\n disabled: {\n background: '#FAFAFA',\n text: '#99989C',\n border: ' none',\n boxShadow: 'none',\n },\n },\n },\n // Компонент RowActionsMenu\n rowActionsMenu: {\n button: {\n default: {\n background: 'transparent',\n text: '#101010',\n border: ' none',\n boxShadow: 'none',\n },\n hover: {\n background: 'transparent',\n text: '#0042EC',\n border: ' none',\n boxShadow: 'none',\n },\n active: {\n background: 'transparent',\n text: '#0042EC',\n border: ' none',\n boxShadow: 'none',\n },\n disabled: {\n background: '#FAFAFA',\n text: '#99989C',\n border: ' none',\n boxShadow: 'none',\n },\n },\n delimiterColor: '#C7C5C5',\n icon: {\n size: 16,\n },\n },\n // Компонент Input\n input: {\n sizes: {\n empty: {\n fontSize: 14,\n paddingInline: 0,\n paddingBlock: 0,\n borderRadius: 0,\n iconSize: 14,\n height: 'auto',\n lineHeight: 16,\n },\n small: {\n fontSize: 14,\n paddingInline: 10,\n paddingBlock: 10,\n borderRadius: 5,\n iconSize: 14,\n height: 40,\n lineHeight: 16,\n },\n medium: {\n fontSize: 16,\n paddingInline: 10,\n paddingBlock: 10,\n borderRadius: 5,\n iconSize: 16,\n height: 40,\n lineHeight: 18,\n },\n },\n outlined: {\n default: {\n background: 'transparent',\n text: '#101010',\n placeholder: '#99989C',\n border: ' #EBEBEB',\n boxShadow: 'none',\n icon: '#101010',\n },\n focus: {\n background: 'transparent',\n text: '#101010',\n placeholder: '#99989C',\n border: ' #0042EC',\n boxShadow: 'none',\n icon: '#101010',\n },\n error: {\n background: 'transparent',\n text: '#101010',\n placeholder: '#99989C',\n border: ' #C93939',\n boxShadow: 'none',\n icon: '#C93939',\n },\n disabled: {\n background: '#FAFAFA',\n text: '#99989C',\n placeholder: '#99989C',\n border: ' #EBEBEB',\n boxShadow: 'none',\n icon: '#99989C',\n },\n },\n empty: {\n default: {\n background: 'transparent',\n text: '#101010',\n placeholder: '#99989C',\n border: ' transparent',\n boxShadow: 'none',\n icon: '#101010',\n },\n focus: {\n background: 'transparent',\n text: '#101010',\n placeholder: '#99989C',\n border: ' transparent',\n boxShadow: 'none',\n icon: '#101010',\n },\n error: {\n background: 'transparent',\n text: '#101010',\n placeholder: '#99989C',\n border: ' transparent',\n boxShadow: 'none',\n icon: '#C93939',\n },\n disabled: {\n background: '#FAFAFA',\n text: '#99989C',\n placeholder: '#99989C',\n border: 'transparent',\n boxShadow: 'none',\n icon: '#99989C',\n },\n },\n },\n box: {\n padding: 20,\n borderRadius: 8,\n border: {\n width: 1,\n style: 'solid',\n color: '#EBEBEB',\n },\n background: '#FFFFFF',\n },\n // Graph2D\n graph2D: {\n ring: {\n highlightFill: 'rgba(255, 165, 0, 0.3)',\n selectionFill: 'rgba(0, 66, 236, 0.3)',\n },\n button: {\n stroke: '#e5e5e5',\n normalFill: 'rgba(255, 255, 255, 0.8)',\n hoverFill: 'rgba(230, 230, 230, 0.9)',\n },\n grid: {\n dotColor: 'rgba(0, 0, 0, 0.5)',\n },\n link: {\n normal: '#999',\n highlighted: '#ff9900',\n textColor: '#666',\n highlightedTextColor: '#663300',\n textBgColor: 'rgba(255, 255, 255, 0.8)',\n highlightedTextBgColor: 'rgba(255, 230, 204, 0.9)',\n },\n },\n contentLoader: {\n foreground: '#E2E2E2E2',\n background: '#F3F3F3',\n },\n tag: {\n outlined: {\n borderRadius: 50,\n paddingBlock: 5,\n paddingInline: 10,\n borderWidth: 1,\n color: {\n default: '#535353',\n primary: '#0042EC',\n error: '#D82323',\n success: '#38A473',\n warning: '#DEB839',\n disabled: '#ebebeb',\n text: '#101010',\n orange: '#d3741b',\n },\n },\n fill: {\n borderRadius: 4,\n paddingBlock: 5,\n paddingInline: 10,\n borderWidth: 0,\n color: {\n default: '#535353',\n primary: '#0042EC',\n error: '#D82323',\n success: '#38A473',\n warning: '#DEB839',\n disabled: '#ebebeb',\n text: '#101010',\n orange: '#d3741b',\n },\n },\n },\n alert: {\n paddingBlock: 16,\n paddingLeft: 16,\n paddingRight: 44,\n borderRadius: 5,\n fontSize: 14,\n gap: 12,\n icon: {\n width: 16,\n height: 14,\n paddingTop: 2,\n },\n color: {\n icon: '#FDC700',\n text: '#894B00',\n background: '#FFFBE0',\n },\n },\n label: {\n sizes: {\n small: {\n fontSize: 14,\n gap: 10,\n marginBottom: 20,\n helpText: { fontSize: 12, marginTop: 5 },\n },\n medium: {\n fontSize: 16,\n gap: 10,\n marginBottom: 25,\n helpText: { fontSize: 14, marginTop: 5 },\n },\n },\n color: '#101010',\n helpTextColor: '#99989C',\n },\n leanerProgress: {\n background: '#EBEBEB',\n progressColor: '#0042EC',\n },\n switch: {\n default: {\n background: '#C7C5C5',\n color: '#FFFFFF',\n },\n checked: {\n background: '#0042EC',\n color: '#FFFFFF',\n },\n disabled: {\n background: '#EBEBEB',\n color: '#FFFFFF',\n },\n },\n drawer: {\n padding: 20,\n width: 573,\n shadow: '0px 4px 10px 0px rgba(0, 0, 0, 0.25)',\n },\n};\n\nexport const lightTheme = convertPaletteToRem(lightThemePx, lightThemePx.baseSize) as DefaultTheme;\n","import { DefaultTheme } from 'styled-components/dist/types';\n\nimport { convertPaletteToRem } from '../utils';\nimport { Theme } from '../types';\nimport { breakpoints, typography, zIndex } from './config';\n\n/**\n * Палітра, що містить як кольори, так і розміри в px\n * Кольори взято з теми, розміри будуть автоматично конвертовані в rem\n */\n\nexport const darkThemePx: Theme = {\n mode: 'dark',\n baseSize: 14, // Базовий розмір шрифту для конвертації px в rem\n // Секція кольорів з теми\n colors: {\n background: '#0F1317',\n backgroundBase: '#000000',\n primary: {\n main: '#158EFF',\n light: '#80A0F5',\n lighter: '#10253A',\n lightest: '#020E19',\n lightest2: 'rgba(0, 66, 236, 0.05)',\n },\n text: {\n main: '#FFFFFF',\n light: '#99989C',\n lighter: '#535353',\n invert: '#101010',\n },\n stroke: {\n main: '#34404C',\n light: '#1E2226',\n lighter: '#333333',\n },\n disable: '#080A0C',\n success: '#27AE60',\n error: '#C93939',\n warning: '#F2994A',\n info: '#2F80ED',\n },\n // Типографія\n typography,\n breakpoints,\n zIndex,\n line: {\n size: 1,\n color: '#1E2226',\n },\n button: {\n // Варіанти кнопок з кольорами\n fill: {\n default: {\n // колір default\n default: {\n background: '#1E2226',\n text: '#FFFFFF',\n border: ' #1E2226',\n boxShadow: 'none',\n },\n hover: {\n background: '#10253A',\n text: '#FFFFFF',\n border: ' #10253A',\n boxShadow: 'none',\n },\n active: {\n background: '#10253A',\n text: '#FFFFFF',\n border: ' #10253A',\n boxShadow: 'none',\n },\n disabled: {\n background: '#1E2226',\n text: '#99989C',\n border: ' #1E2226',\n boxShadow: 'none',\n },\n },\n primary: {\n // колір primary\n default: {\n background: '#158EFF',\n text: '#FFFFFF',\n border: ' #158EFF',\n boxShadow: 'none',\n },\n hover: {\n background: '#44a5ff',\n text: '#FFFFFF',\n border: ' #44a5ff',\n boxShadow: 'none',\n },\n active: {\n background: '#44a5ff',\n text: '#FFFFFF',\n border: ' #44a5ff',\n boxShadow: 'none',\n },\n disabled: {\n background: '#99989C',\n text: '#FFFFFF',\n border: ' #10253A',\n boxShadow: 'none',\n },\n },\n //default as secondary\n secondary: {\n // колір default\n default: {\n background: '#1E2226',\n text: '#FFFFFF',\n border: ' #1E2226',\n boxShadow: 'none',\n },\n hover: {\n background: '#10253A',\n text: '#FFFFFF',\n border: ' #10253A',\n boxShadow: 'none',\n },\n active: {\n background: '#10253A',\n text: '#FFFFFF',\n border: ' #10253A',\n boxShadow: 'none',\n },\n disabled: {\n background: '#1E2226',\n text: '#99989C',\n border: ' #1E2226',\n boxShadow: 'none',\n },\n },\n error: {\n // колір error\n default: {\n background: '#C93939',\n text: '#FFFFFF',\n border: ' #C93939',\n boxShadow: 'none',\n },\n hover: {\n background: '#d46161',\n text: '#FFFFFF',\n border: ' #d46161',\n boxShadow: 'none',\n },\n active: {\n background: '#d46161',\n text: '#FFFFFF',\n border: ' #d46161',\n boxShadow: 'none',\n },\n disabled: {\n background: '#511616',\n text: '#FFFFFF',\n border: ' #511616',\n boxShadow: 'none',\n },\n },\n soft: {\n // колір default\n default: {\n background: '#80A0F5',\n text: '#FFFFFF',\n border: '#80A0F5',\n boxShadow: 'none',\n },\n hover: {\n background: '#10253A',\n text: '#FFFFFF',\n border: '#10253A',\n boxShadow: 'none',\n },\n active: {\n background: '#10253A',\n text: '#FFFFFF',\n border: '#10253A',\n boxShadow: 'none',\n },\n disabled: {\n background: '#EBEBEB',\n text: '#99989C',\n border: ' #EBEBEB',\n boxShadow: 'none',\n },\n },\n light: {\n // колір default\n default: {\n background: '#535353',\n text: '#FFFFFF',\n border: '#535353',\n boxShadow: 'none',\n },\n hover: {\n background: '#99989C',\n text: '#FFFFFF',\n border: '#99989C',\n boxShadow: 'none',\n },\n active: {\n background: '#99989C',\n text: '#FFFFFF',\n border: '#99989C',\n boxShadow: 'none',\n },\n disabled: {\n background: '#EBEBEB',\n text: '#99989C',\n border: ' #EBEBEB',\n boxShadow: 'none',\n },\n },\n },\n outlined: {\n default: {\n // колір default\n default: {\n background: 'transparent',\n text: '#FFFFFF',\n border: ' #1E2226',\n boxShadow: 'none',\n },\n hover: {\n background: '#10253A',\n text: '#FFFFFF',\n border: ' #1E2226',\n boxShadow: 'none',\n },\n active: {\n background: '#10253A',\n text: '#FFFFFF',\n border: ' #1E2226',\n boxShadow: 'none',\n },\n disabled: {\n background: 'transparent',\n text: '#99989C',\n border: ' #1E2226',\n boxShadow: 'none',\n },\n },\n primary: {\n // колір primary\n default: {\n background: 'transparent',\n text: '#158EFF',\n border: ' #158EFF',\n boxShadow: 'none',\n },\n hover: {\n background: '#10253A',\n text: '#158EFF',\n border: ' #158EFF',\n boxShadow: 'none',\n },\n active: {\n background: '#10253A',\n text: '#158EFF',\n border: ' #158EFF',\n boxShadow: 'none',\n },\n disabled: {\n background: 'transparent',\n text: '#99989C',\n border: ' #99989C',\n boxShadow: 'none',\n },\n },\n secondary: {\n // колір secondary\n default: {\n background: 'transparent',\n text: '#158EFF',\n border: ' #1E2226',\n boxShadow: 'none',\n },\n hover: {\n background: '#10253A',\n text: '#158EFF',\n border: ' #1E2226',\n boxShadow: 'none',\n },\n active: {\n background: '#10253A',\n text: '#158EFF',\n border: ' #1E2226',\n boxShadow: 'none',\n },\n disabled: {\n background: 'transparent',\n text: '#99989C',\n border: ' #1E2226',\n boxShadow: 'none',\n },\n },\n error: {\n // колір error\n default: {\n background: 'transparent',\n text: '#C93939',\n border: ' #C93939',\n boxShadow: 'none',\n },\n hover: {\n background: '#290b0b',\n text: '#C93939',\n border: ' #290b0b',\n boxShadow: 'none',\n },\n active: {\n background: '#290b0b',\n text: '#C93939',\n border: ' #290b0b',\n boxShadow: 'none',\n },\n disabled: {\n background: 'transparent',\n text: '#99989C',\n border: ' #99989C',\n boxShadow: 'none',\n },\n },\n soft: {\n // колір default\n default: {\n background: 'transparent',\n text: '#80A0F5',\n border: '#80A0F5',\n boxShadow: 'none',\n },\n hover: {\n background: '#10253A',\n text: '#80A0F5',\n border: '#1E2226',\n boxShadow: 'none',\n },\n active: {\n background: '#10253A',\n text: '#80A0F5',\n border: '#1E2226',\n boxShadow: 'none',\n },\n disabled: {\n background: 'transparent',\n text: '#99989C',\n border: ' #EBEBEB',\n boxShadow: 'none',\n },\n },\n light: {\n // колір default\n default: {\n background: 'transparent',\n text: '#99989C',\n border: '#535353',\n boxShadow: 'none',\n },\n hover: {\n background: '#1E2226',\n text: '#99989C',\n border: '#1E2226',\n boxShadow: 'none',\n },\n active: {\n background: '#535353',\n text: '#99989C',\n border: '#535353',\n boxShadow: 'none',\n },\n disabled: {\n background: 'transparent',\n text: '#99989C',\n border: ' #EBEBEB',\n boxShadow: 'none',\n },\n },\n },\n empty: {\n default: {\n // колір default\n default: {\n background: 'transparent',\n text: '#FFFFFF',\n border: 'transparent',\n boxShadow: 'none',\n },\n hover: {\n background: 'transparent',\n text: '#44a5ff',\n border: 'transparent',\n boxShadow: 'none',\n },\n active: {\n background: 'transparent',\n text: '#44a5ff',\n border: 'transparent',\n boxShadow: 'none',\n },\n disabled: {\n background: 'transparent',\n text: '#99989C',\n border: 'transparent',\n boxShadow: 'none',\n },\n },\n primary: {\n // колір primary\n default: {\n background: 'transparent',\n text: '#158EFF',\n border: 'transparent',\n boxShadow: 'none',\n filledIcon: {\n background: '#10253A',\n color: '#158EFF',\n },\n },\n hover: {\n background: 'transparent',\n text: '#44a5ff',\n border: 'transparent',\n boxShadow: 'none',\n filledIcon: {\n background: '#158EFF',\n color: '#0F1317',\n },\n },\n active: {\n background: 'transparent',\n text: '#44a5ff',\n border: 'transparent',\n boxShadow: 'none',\n filledIcon: {\n background: '#158EFF',\n color: '#0F1317',\n },\n },\n disabled: {\n background: 'transparent',\n text: '#99989C',\n border: 'transparent',\n boxShadow: 'none',\n filledIcon: {\n background: '#BEBEBE',\n color: '#99989C',\n },\n },\n },\n //default as secondary\n secondary: {\n // колір default\n default: {\n background: 'transparent',\n text: '#FFFFFF',\n border: 'transparent',\n boxShadow: 'none',\n },\n hover: {\n background: 'transparent',\n text: '#158EFF',\n border: 'transparent',\n boxShadow: 'none',\n },\n active: {\n background: 'transparent',\n text: '#158EFF',\n border: 'transparent',\n boxShadow: 'none',\n },\n disabled: {\n background: 'transparent',\n text: '#99989C',\n border: 'transparent',\n boxShadow: 'none',\n },\n },\n error: {\n // колір error\n default: {\n background: 'transparent',\n text: '#C93939',\n border: 'transparent',\n boxShadow: 'none',\n },\n hover: {\n background: 'transparent',\n text: '#d46161',\n border: 'transparent',\n boxShadow: 'none',\n },\n active: {\n background: 'transparent',\n text: '#d46161',\n border: 'transparent',\n boxShadow: 'none',\n },\n disabled: {\n background: 'transparent',\n text: '#99989C',\n border: 'transparent',\n boxShadow: 'none',\n },\n },\n soft: {\n // колір default\n default: {\n background: 'transparent',\n text: '#80A0F5',\n border: 'transparent',\n boxShadow: 'none',\n },\n hover: {\n background: 'transparent',\n text: '#E5ECFD',\n border: 'transparent',\n boxShadow: 'none',\n },\n active: {\n background: 'transparent',\n text: '#E5ECFD',\n border: 'transparent',\n boxShadow: 'none',\n },\n disabled: {\n background: 'transparent',\n text: '#99989C',\n border: 'transparent',\n boxShadow: 'none',\n },\n },\n light: {\n // колір default\n default: {\n background: 'transparent',\n text: '#535353',\n border: 'transparent',\n boxShadow: 'none',\n },\n hover: {\n background: 'transparent',\n text: '#EEEEEE',\n border: 'transparent',\n boxShadow: 'none',\n },\n active: {\n background: 'transparent',\n text: '#EEEEEE',\n border: 'transparent',\n boxShadow: 'none',\n },\n disabled: {\n background: 'transparent',\n text: '#99989C',\n border: 'transparent',\n boxShadow: 'none',\n },\n },\n },\n // Розміри кнопок\n sizes: {\n small: {\n fontSize: 14,\n iconSize: 16,\n paddingInline: 10,\n paddingBlock: 10,\n borderRadius: 5,\n borderWidth: 1,\n gap: 10,\n },\n medium: {\n fontSize: 16,\n iconSize: 16,\n paddingInline: 10,\n paddingBlock: 10,\n borderRadius: 5,\n borderWidth: 1,\n gap: 10,\n },\n },\n },\n\n // Компонент Sidebar\n sidebar: {\n background: '#0F1317',\n border: '#1E2226',\n width: 224,\n collapsedWidth: 65,\n text: {\n default: '#99989C',\n active: '#158EFF',\n hover: '#158EFF',\n },\n item: {\n default: {\n background: 'transparent',\n border: 'transparent',\n padding: '10px 16px',\n height: 40,\n },\n active: {\n background: '#10253A',\n borderLeft: '2px solid #158EFF',\n padding: '10px 16px',\n height: 40,\n },\n hover: {\n background: '#020E19',\n border: 'transparent',\n padding: '10px 16px',\n height: 40,\n },\n },\n section: {\n background: 'transparent',\n padding: '16px 16px 8px',\n title: {\n color: '#020b14',\n fontSize: '12px',\n fontWeight: 600,\n },\n },\n delimeter: {\n color: '#34404C',\n thickness: 1,\n margin: '8px 0',\n },\n },\n contextMenu: {\n button: {\n default: {\n background: 'transparent',\n text: '#FFFFFF',\n border: ' #1E2226',\n boxShadow: 'none',\n },\n hover: {\n background: 'transparent',\n text: '#158EFF',\n border: ' #1E2226',\n boxShadow: 'none',\n },\n active: {\n background: 'transparent',\n text: '#158EFF',\n border: ' #1E2226',\n boxShadow: 'none',\n },\n disabled: {\n background: '#080A0C',\n text: '#99989C',\n border: ' #1E2226',\n boxShadow: 'none',\n },\n },\n delimeter: {\n color: '#34404C',\n thickness: 1,\n marginInline: 12,\n marginBlock: 3,\n style: 'solid',\n },\n shadow: '0px 4px 16px rgba(255, 255, 255, 0.9), 0px 2px 4px rgba(0, 0, 0, 0.06)',\n padding: 5,\n icon: {\n size: 7,\n },\n },\n // Компонент Select\n select: {\n item: {\n default: {\n background: 'transparent',\n text: '#FFFFFF',\n border: ' none',\n boxShadow: 'none',\n },\n hover: {\n background: '#10253A',\n text: '#FFFFFF',\n border: ' none',\n boxShadow: 'none',\n },\n active: {\n background: '#1E2226',\n text: '#FFFFFF',\n border: ' none',\n boxShadow: 'none',\n },\n disabled: {\n background: '#080A0C',\n text: '#99989C',\n border: ' none',\n boxShadow: 'none',\n },\n },\n },\n // Компонент RowActionsMenu\n rowActionsMenu: {\n button: {\n default: {\n background: 'transparent',\n text: '#FFFFFF',\n border: ' none',\n boxShadow: 'none',\n },\n hover: {\n background: 'transparent',\n text: '#158EFF',\n border: ' none',\n boxShadow: 'none',\n },\n active: {\n background: 'transparent',\n text: '#158EFF',\n border: ' none',\n boxShadow: 'none',\n },\n disabled: {\n background: '#080A0C',\n text: '#99989C',\n border: ' none',\n boxShadow: 'none',\n },\n },\n delimiterColor: '#34404C',\n icon: {\n size: 16,\n },\n },\n // Компонент Input\n input: {\n sizes: {\n empty: {\n fontSize: 14,\n paddingInline: 0,\n paddingBlock: 0,\n borderRadius: 0,\n iconSize: 14,\n height: 'auto',\n lineHeight: 16,\n },\n small: {\n fontSize: 14,\n paddingInline: 10,\n paddingBlock: 10,\n borderRadius: 5,\n iconSize: 14,\n height: 40,\n lineHeight: 16,\n },\n medium: {\n fontSize: 16,\n paddingInline: 10,\n paddingBlock: 10,\n borderRadius: 5,\n iconSize: 16,\n height: 40,\n lineHeight: 18,\n },\n },\n outlined: {\n default: {\n background: 'transparent',\n text: '#FFFFFF',\n placeholder: '#99989C',\n border: ' #1E2226',\n boxShadow: 'none',\n icon: '#FFFFFF',\n },\n focus: {\n background: 'transparent',\n text: '#FFFFFF',\n placeholder: '#99989C',\n border: ' #158EFF',\n boxShadow: 'none',\n icon: '#FFFFFF',\n },\n error: {\n background: 'transparent',\n text: '#FFFFFF',\n placeholder: '#99989C',\n border: ' #C93939',\n boxShadow: 'none',\n icon: '#C93939',\n },\n disabled: {\n background: '#080A0C',\n text: '#99989C',\n placeholder: '#99989C',\n border: ' #1E2226',\n boxShadow: 'none',\n icon: '#99989C',\n },\n },\n empty: {\n default: {\n background: 'transparent',\n text: '#FFFFFF',\n placeholder: '#99989C',\n border: ' transparent',\n boxShadow: 'none',\n icon: '#FFFFFF',\n },\n focus: {\n background: 'transparent',\n text: '#FFFFFF',\n placeholder: '#99989C',\n border: ' transparent',\n boxShadow: 'none',\n icon: '#FFFFFF',\n },\n error: {\n background: 'transparent',\n text: '#FFFFFF',\n placeholder: '#99989C',\n border: ' transparent',\n boxShadow: 'none',\n icon: '#C93939',\n },\n disabled: {\n background: 'transparent',\n text: '#99989C',\n placeholder: '#99989C',\n border: 'transparent',\n boxShadow: 'none',\n icon: '#99989C',\n },\n },\n },\n box: {\n padding: 20,\n borderRadius: 8,\n border: {\n width: 1,\n style: 'solid',\n color: '#1E2226',\n },\n background: '#0F1317',\n },\n // Graph2D\n graph2D: {\n ring: {\n highlightFill: 'rgba(0, 90, 255, 0.3)',\n selectionFill: 'rgba(0, 90, 255, 0.5)',\n },\n button: {\n stroke: '#1A1A1A',\n normalFill: 'rgba(0, 0, 0, 0.8)',\n hoverFill: 'rgba(25, 25, 25, 0.9)',\n },\n grid: {\n dotColor: 'rgba(255, 255, 255, 0.5)',\n },\n link: {\n normal: '#666',\n highlighted: '#0066ff',\n textColor: '#999',\n highlightedTextColor: '#99ccff',\n textBgColor: 'rgba(0, 0, 0, 0.8)',\n highlightedTextBgColor: 'rgba(0, 25, 51, 0.9)',\n },\n },\n contentLoader: {\n foreground: '#99989C',\n background: '#535353',\n },\n tag: {\n outlined: {\n borderRadius: 50,\n paddingBlock: 5,\n paddingInline: 10,\n borderWidth: 1,\n color: {\n default: '#99989C',\n primary: '#3991FA',\n error: '#D82323',\n success: '#38A473',\n warning: '#DEB839',\n disabled: '#ebebeb',\n text: '#FFFFFF',\n orange: '#d3741b',\n },\n },\n fill: {\n borderRadius: 4,\n paddingBlock: 5,\n paddingInline: 10,\n borderWidth: 0,\n color: {\n default: '#99989C',\n primary: '#3991FA',\n error: '#D82323',\n success: '#38A473',\n warning: '#DEB839',\n disabled: '#ebebeb',\n text: '#FFFFFF',\n orange: '#d3741b',\n },\n },\n },\n alert: {\n paddingBlock: 16,\n paddingLeft: 16,\n paddingRight: 44,\n borderRadius: 5,\n fontSize: 14,\n gap: 12,\n icon: {\n width: 16,\n height: 14,\n paddingTop: 2,\n },\n color: {\n icon: '#FDC700',\n text: '#894B00',\n background: '#FFFBE0',\n },\n },\n label: {\n sizes: {\n small: {\n fontSize: 14,\n gap: 10,\n marginBottom: 20,\n helpText: { fontSize: 12, marginTop: 5 },\n },\n medium: {\n fontSize: 16,\n gap: 10,\n marginBottom: 25,\n helpText: { fontSize: 14, marginTop: 5 },\n },\n },\n color: '#ffffff',\n helpTextColor: '#535353',\n },\n leanerProgress: {\n background: '#1E2226',\n progressColor: '#158EFF',\n },\n switch: {\n default: {\n background: '#34404C',\n color: '#0F1317',\n },\n checked: {\n background: '#158EFF',\n color: '#0F1317',\n },\n disabled: {\n background: '#1E2226',\n color: '#0F1317',\n },\n },\n drawer: {\n padding: 20,\n width: 573,\n shadow: '0px 4px 10px 0px rgba(0, 0, 0, 0.25)',\n },\n};\n\nexport const darkTheme = convertPaletteToRem(darkThemePx, darkThemePx.baseSize) as DefaultTheme;\n","import { StyleSheetManager, ThemeProvider as ThemeProviderStyled, WebTarget } from 'styled-components';\nimport { lightTheme, darkTheme } from './themes';\nimport { GlobalStyle } from './GlobalStyle';\n\ninterface ThemeProviderProps {\n children: any;\n mode?: 'light' | 'LIGHT' | 'dark' | 'DARK';\n}\n\nexport type ThemeMode = 'light' | 'LIGHT' | 'dark' | 'DARK';\nexport const ThemeProvider = ({ children, mode }: ThemeProviderProps) => {\n return (\n <StyleSheetManager shouldForwardProp={shouldForwardProp}>\n <ThemeProviderStyled theme={mode == 'light' || mode === 'LIGHT' ? lightTheme : darkTheme}>\n <GlobalStyle />\n {children}\n </ThemeProviderStyled>\n </StyleSheetManager>\n );\n};\n\nfunction shouldForwardProp(propName: any, target: WebTarget) {\n if (typeof target === 'string') {\n return !['m', 'mt', 'mr', 'mb', 'ml', 'mx', 'my', 'p', 'pt', 'pr', 'pb', 'pl', 'px', 'py'].includes(propName);\n }\n return true;\n}\n","import styled, { css, IStyledComponent, DefaultTheme, WebTarget } from 'styled-components';\nimport { pxToRem } from './utils';\n\ntype SpaceProps = {\n m?: string | number; // margin\n mt?: string | number; // margin-top\n mr?: string | number; // margin-right\n mb?: string | number; // margin-bottom\n ml?: string | number; // margin-left\n mx?: string | number; // margin-left + margin-right\n my?: string | number; // margin-top + margin-bottom\n p?: string | number; // padding\n pt?: string | number; // padding-top\n pr?: string | number; // padding-right\n pb?: string | number; // padding-bottom\n pl?: string | number; // padding-left\n px?: string | number; // padding-left + padding-right\n py?: string | number; // padding-top + padding-bottom\n};\n\nexport type FabricComponent<T = object> = T & SpaceProps;\n\nconst marginStyles = ({ ignoreStyles }: FabricComponentOptions = {}) =>\n css<FabricComponent>(({ theme, ...props }) => {\n return `\n ${generatePropertySpaceStyle(theme, 'margin', props.m, ignoreStyles)}\n ${generatePropertySpaceStyle(theme, 'margin-top', props.mt, ignoreStyles)}\n ${generatePropertySpaceStyle(theme, 'margin-right', props.mr, ignoreStyles)}\n ${generatePropertySpaceStyle(theme, 'margin-bottom', props.mb, ignoreStyles)}\n ${generatePropertySpaceStyle(theme, 'margin-left', props.ml, ignoreStyles)}\n ${generatePropertySpaceStyle(theme, 'margin-inline', props.mx, ignoreStyles)}\n ${generatePropertySpaceStyle(theme, 'margin-block', props.my, ignoreStyles)}\n `;\n });\n\nconst paddingStyles = ({ ignoreStyles }: FabricComponentOptions = {}) =>\n css<FabricComponent>(({ theme, ...props }) => {\n return `\n ${generatePropertySpaceStyle(theme, 'padding', props.p, ignoreStyles)}\n ${generatePropertySpaceStyle(theme, 'padding-top', props.pt, ignoreStyles)}\n ${generatePropertySpaceStyle(theme, 'padding-right', props.pr, ignoreStyles)}\n ${generatePropertySpaceStyle(theme, 'padding-bottom', props.pb, ignoreStyles)}\n ${generatePropertySpaceStyle(theme, 'padding-left', props.pl, ignoreStyles)}\n ${generatePropertySpaceStyle(theme, 'padding-inline', props.px, ignoreStyles)}\n ${generatePropertySpaceStyle(theme, 'padding-block', props.py, ignoreStyles)}\n `;\n });\n\ntype GeneratedFabricMarginProperties =\n | 'margin'\n | 'margin-top'\n | 'margin-right'\n | 'margin-bottom'\n | 'margin-left'\n | 'margin-inline'\n | 'margin-block'\n | 'padding'\n | 'padding-top'\n | 'padding-right'\n | 'padding-bottom'\n | 'padding-left'\n | 'padding-inline'\n | 'padding-block';\n\nexport const generatePropertySpaceStyle = (\n theme: DefaultTheme,\n property: GeneratedFabricMarginProperties,\n value?: string | number,\n ignoredOptions?: GeneratedFabricMarginProperties[]\n) => {\n if (ignoredOptions && ignoredOptions.includes(property)) {\n return '';\n }\n if (value !== undefined) {\n const t = typeof value === 'number';\n return `${property}: ${typeof value === 'number' ? `${pxToRem(value, theme.baseSize)}` : value};`;\n }\n return '';\n};\n\ntype FabricComponentOptions = {\n ignoreStyles?: GeneratedFabricMarginProperties[] | undefined; // Ignore margin styles\n};\n\nexport const createComponent = <T extends object = {}>(\n component: React.ComponentType<T>,\n options?: FabricComponentOptions\n) => {\n return styled(component)<T & FabricComponent>`\n ${marginStyles(options)}\n ${paddingStyles(options)}\n `;\n};\n\nexport const destructSpaceProps = <T extends FabricComponent>(props: T): SpaceProps => {\n const rest: SpaceProps = {};\n ['m', 'mt', 'mr', 'mb', 'ml', 'mx', 'my', 'p', 'pt', 'pr', 'pb', 'pl', 'px', 'py'].forEach((key) => {\n if (key in props) {\n rest[key as keyof SpaceProps] = props[key as keyof SpaceProps];\n delete props[key as keyof SpaceProps];\n }\n });\n\n return rest;\n};\n","import { useTheme as useStyledTheme } from 'styled-components';\nimport { Theme } from './types';\nexport const useTheme = () => {\n const theme: Theme = useStyledTheme();\n\n return theme;\n};\n","import { SVGProps } from 'react';\n\ninterface AlertIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const AlertIcon = ({ fill = 'currentColor', ...props }: AlertIconProps) => {\n return (\n <svg viewBox=\"0 0 17 15\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M6.8676 1.3524C7.53792 0.215866 9.21522 0.215866 9.88554 1.3524L16.1406 11.9435C16.8109 13.0801 15.9712 14.5 14.6306 14.5H2.12155C0.779912 14.5 -0.0587385 13.0801 0.61258 11.9435L6.8676 1.3524ZM8.37657 3.79201C8.57469 3.79201 8.7647 3.86897 8.90479 4.00595C9.04488 4.14293 9.12358 4.32871 9.12358 4.52243V7.93107C9.12358 8.12479 9.04488 8.31058 8.90479 8.44756C8.7647 8.58454 8.57469 8.66149 8.37657 8.66149C8.17845 8.66149 7.98844 8.58454 7.84835 8.44756C7.70826 8.31058 7.62955 8.12479 7.62955 7.93107V4.52243C7.62955 4.32871 7.70826 4.14293 7.84835 4.00595C7.98844 3.86897 8.17845 3.79201 8.37657 3.79201ZM8.37657 12.5571C8.64073 12.5571 8.89407 12.4545 9.08086 12.2718C9.26765 12.0892 9.37259 11.8415 9.37259 11.5832C9.37259 11.3249 9.26765 11.0772 9.08086 10.8945C8.89407 10.7119 8.64073 10.6093 8.37657 10.6093C8.11241 10.6093 7.85907 10.7119 7.67227 10.8945C7.48548 11.0772 7.38055 11.3249 7.38055 11.5832C7.38055 11.8415 7.48548 12.0892 7.67227 12.2718C7.85907 12.4545 8.11241 12.5571 8.37657 12.5571Z\"\n fill={fill}\n />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface ApiIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const ApiIcon = ({ fill = 'currentColor', ...props }: ApiIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g>\n <path\n d=\"M10.2,2.41l-3.38,11.52c-.12.32-.37.5-.68.5-.22,0-.41-.09-.55-.24-.14-.17-.19-.39-.15-.6l3.33-11.34c.08-.37.35-.64.69-.67.26,0,.46.1.6.27.13.15.18.36.14.57Z\"\n fill={fill}\n />\n <path\n d=\"M16,7.96c-.01.27-.22.46-.44.68l-.09.09c-.98.94-1.97,1.86-2.96,2.8l-1.16,1.09c-.17.09-.28.13-.41.13-.27,0-.53-.17-.66-.42-.12-.24-.08-.54.12-.77l3.82-3.61-3.76-3.45c-.23-.26-.3-.57-.18-.84.12-.27.37-.44.66-.44.15,0,.31.05.44.15l3,2.75s.03.03.03.05c.17.14.33.28.49.44.28.24.55.49.8.73.22.22.31.4.31.6Z\"\n fill={fill}\n />\n <path\n d=\"M5.22,11.6c.18.28.18.55.05.78s-.36.37-.62.37c-.19,0-.36-.08-.51-.21L.22,8.48c-.27-.28-.3-.68-.05-.98.62-.59,1.21-1.18,1.8-1.76.6-.59,1.2-1.17,1.8-1.75l.12-.12c.22-.21.39-.37.55-.42.08-.01.14-.03.22-.03.27,0,.53.17.64.42.13.26.08.55-.1.77l-1.22,1.2-.93.89c-.45.42-.89.85-1.32,1.27l3.5,3.63Z\"\n fill={fill}\n />\n </g>\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface ArrowCircleTopRightIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const ArrowCircleTopRightIcon = ({ fill = 'currentColor', ...props }: ArrowCircleTopRightIconProps) => {\n return (\n <svg viewBox=\"0 0 17 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g clipPath=\"url(#clip0_4867_31686)\">\n <path\n d=\"M3.30042 2.23687C7.62196 -1.93984 14.8631 0.000721882 16.548 5.73245C18.3872 12.0039 12.2779 17.7357 6.13 15.4995C0.599454 13.4947 -0.943954 6.33646 3.30042 2.23687ZM8.53515 1.13165C3.14608 1.40152 0.110708 7.53165 3.24897 11.9525C6.38724 16.3734 12.9339 15.6409 15.1332 10.8345C17.3326 6.02803 13.6413 0.874617 8.53515 1.13165Z\"\n fill={fill}\n />\n <path\n d=\"M11.5576 4.71729C11.7376 4.71729 11.8791 4.8715 11.8534 5.05142L10.7602 10.706C10.7344 10.9117 10.5029 10.9888 10.3229 10.8988L8.47077 9.04821H8.43218L6.33572 11.1173C5.82125 11.5799 5.10099 10.9888 5.47398 10.3976L7.64762 8.22572L5.69263 6.27231C5.57688 6.14379 5.62832 5.91247 5.79553 5.84821L11.5704 4.71729H11.5576Z\"\n fill={fill}\n />\n </g>\n <defs>\n <clipPath id=\"clip0_4867_31686\">\n <rect width=\"16\" height=\"16\" fill=\"white\" transform=\"translate(0.869629 0.000976562)\" />\n </clipPath>\n </defs>\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface ArrowRightIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const ArrowRightIcon = ({ fill = 'currentColor', ...props }: ArrowRightIconProps) => {\n return (\n <svg viewBox=\"0 0 16 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g clipPath=\"url(#clip0_4867_31659)\">\n <path\n d=\"M12.4162 5.09031L8.51793 1.18745L9.70437 0.0217918L9.78912 0.000976562L15.8696 6.00618L9.78912 12.001L9.70437 11.9802L8.50734 10.7937L12.448 6.87001H0.869629V5.09031H12.4162Z\"\n fill={fill}\n />\n </g>\n <defs>\n <clipPath id=\"clip0_4867_31659\">\n <rect width=\"15\" height=\"12\" fill=\"white\" transform=\"translate(0.869629 0.000976562)\" />\n </clipPath>\n </defs>\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface BugReportIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const BugReportIcon = ({ fill = 'currentColor', ...props }: BugReportIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M15.3.98c-.06-.1-.19-.28-.32-.4-.33-.34-.76-.52-1.2-.52-.13,0-.26.02-.39.05-.58.14-1.18.73-1.31,1.33-.07.03-1.73.56-3.85,1.23,0,0-4.3,1.35-4.82,1.51-.51.17-1.13.38-1.27.44-.52.25-1.02.76-1.32,1.34-.39.75-.43,1.58-.11,2.34.23.55.76,1.18,1.23,1.47.14.08.58.24.94.36l.66.21v2.01q0,2.29.21,2.7c.21.38.69.76,1.11.86.1.02.2.03.31.03.26,0,.54-.07.78-.2.23-.12.6-.49.72-.72.2-.36.2-.44.2-2.17,0-.74.01-1.23.01-1.45.73.23,4.55,1.43,5.03,1.59.08.02.18.05.21.12.01.08.06.21.11.31.3.62.92,1.02,1.57,1.02.17,0,.34-.03.5-.09.41-.13.84-.52,1.05-.94q.15-.31.15-5.56v-1.43q0-5.08-.2-5.44ZM5.69,12.71c0,1.52,0,1.76-.05,1.84-.07.16-.13.2-.44.2s-.36-.04-.44-.2c-.04-.08-.04-.35-.04-2.02,0-1.08,0-1.62.01-1.81,0,0,.92.29.96.3v1.69ZM12.04,11.79c-1.06-.32-9.07-2.85-9.31-2.94-.47-.17-.87-.62-1.01-1.12-.06-.23-.06-.76,0-.96.11-.43.44-.85.81-1.04.13-.07,1.12-.4,2.66-.88,0,0,6.66-2.11,6.86-2.17.01.45.02,2.11.02,4.55,0,2.69-.02,4.16-.03,4.56ZM14.26,13.05c-.05.11-.14.21-.48.21s-.43-.1-.48-.21c-.05-.12-.05-.5-.05-5.82,0-4.97,0-5.7.04-5.78.03-.06.09-.11.17-.15.08-.05.12-.06.24-.06h.13c.23.01.28.03.32.06.04.03.1.1.12.15.05.08.05.88.05,5.78,0,5.32,0,5.7-.06,5.82Z\"\n fill={fill}\n />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface CalendarIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const CalendarIcon = ({ fill = 'currentColor', ...props }: CalendarIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g>\n <path\n d=\"M11.87,1.16v-.44c0-.4-.34-.72-.76-.72s-.76.33-.76.72v.37h-4.7v-.37c0-.4-.34-.72-.76-.72s-.76.33-.76.72v.44C1.39,1.51.26,3.04.26,6.29v4.49c0,3.13.92,5.22,5.41,5.22h4.66c4.49,0,5.41-2.08,5.41-5.22v-4.49c0-3.24-1.12-4.76-3.88-5.12ZM14.23,10.78c0,2.78-.59,3.77-3.9,3.77h-4.66c-3.31,0-3.9-.99-3.9-3.77v-4.49c0-2.65.77-3.45,2.36-3.68v.29c0,.41.35.72.76.72s.76-.31.76-.72v-.36h4.7v.36c0,.41.34.72.76.72s.76-.31.76-.72v-.28c1.6.22,2.36,1.01,2.36,3.67v4.49Z\"\n fill={fill}\n />\n <path\n d=\"M11.09,8.72c0,.41-.34.72-.76.72h-6.21c-.42,0-.76-.31-.76-.72s.34-.71.76-.71h6.21c.42,0,.76.31.76.71Z\"\n fill={fill}\n />\n <path\n d=\"M8.76,11.63c0,.41-.34.72-.76.72h-3.88c-.42,0-.76-.31-.76-.72s.34-.71.76-.71h3.88c.42,0,.76.31.76.71Z\"\n fill={fill}\n />\n </g>\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface ChevronLeftIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const ChevronLeftIcon = ({ fill = 'currentColor', ...props }: ChevronLeftIconProps) => {\n return (\n <svg width=\"10\" height=\"17\" viewBox=\"0 0 10 17\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g clipPath=\"url(#clip0_4867_31655)\">\n <path\n d=\"M1.3889 10.312L8.1486 16.3084C9.1046 16.9491 10.0992 15.878 9.3846 14.9886L2.7312 9.1069C2.38356 8.78174 2.38356 8.27486 2.71189 7.93057L9.46189 1.94377C10.0316 1.06391 9.037 0.07886 8.14859 0.69097C6.09169 2.65157 3.83209 4.39207 1.77519 6.34307C0.50049 7.55767 0.18189 8.86787 1.38889 10.3025V10.312Z\"\n fill={fill}\n />\n </g>\n <defs>\n <clipPath id=\"clip0_4867_31655\">\n <rect width=\"9\" height=\"16\" fill=\"white\" transform=\"translate(0.63623 0.5)\" />\n </clipPath>\n </defs>\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface ChevronRightIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const ChevronRightIcon = ({ fill = 'currentColor', ...props }: ChevronRightIconProps) => {\n return (\n <svg viewBox=\"0 0 10 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g clipPath=\"url(#clip0_4867_31655)\">\n <path\n d=\"M9.10673 9.81323L2.34707 15.8096C1.39106 16.4504 0.396428 15.3793 1.11102 14.4899L7.76445 8.60821C8.11209 8.28304 8.11209 7.77617 7.78377 7.43188L1.03377 1.44503C0.464025 0.56517 1.45866 -0.419887 2.34707 0.192187C4.40394 2.15274 6.6636 3.89332 8.72046 5.84431C9.99514 7.05889 10.3138 8.36911 9.10673 9.80366V9.81323Z\"\n fill={fill}\n />\n </g>\n <defs>\n <clipPath id=\"clip0_4867_31655\">\n <rect width=\"9\" height=\"16\" fill=\"white\" transform=\"translate(0.869629 0.000976562)\" />\n </clipPath>\n </defs>\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface CloseCircleIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const CloseCircleIcon = ({ fill = 'currentColor', ...props }: CloseCircleIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M7.99992 15.1654C4.04659 15.1654 0.833252 11.952 0.833252 7.9987C0.833252 4.04536 4.04659 0.832031 7.99992 0.832031C11.9533 0.832031 15.1666 4.04536 15.1666 7.9987C15.1666 11.952 11.9533 15.1654 7.99992 15.1654ZM7.99992 1.83203C4.59992 1.83203 1.83325 4.5987 1.83325 7.9987C1.83325 11.3987 4.59992 14.1654 7.99992 14.1654C11.3999 14.1654 14.1666 11.3987 14.1666 7.9987C14.1666 4.5987 11.3999 1.83203 7.99992 1.83203Z\"\n fill={fill}\n />\n <path\n d=\"M6.11332 10.3849C5.98666 10.3849 5.85999 10.3383 5.75999 10.2383C5.56666 10.0449 5.56666 9.72495 5.75999 9.53161L9.53332 5.75828C9.72666 5.56495 10.0467 5.56495 10.24 5.75828C10.4333 5.95161 10.4333 6.27161 10.24 6.46495L6.46666 10.2383C6.37332 10.3383 6.23999 10.3849 6.11332 10.3849Z\"\n fill={fill}\n />\n <path\n d=\"M9.88666 10.3849C9.75999 10.3849 9.63332 10.3383 9.53332 10.2383L5.75999 6.46495C5.56666 6.27161 5.56666 5.95161 5.75999 5.75828C5.95332 5.56495 6.27332 5.56495 6.46666 5.75828L10.24 9.53161C10.4333 9.72495 10.4333 10.0449 10.24 10.2383C10.14 10.3383 10.0133 10.3849 9.88666 10.3849Z\"\n fill={fill}\n />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface ClosedLockIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const ClosedLockIcon = ({ fill = 'currentColor', ...props }: ClosedLockIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g>\n <path\n d=\"M14.31,7.47c-.09-.74-.66-1.22-1.44-1.22h-.1v-.37c.03-1.32.04-2.56-.73-3.76-.85-1.33-2.35-2.12-4-2.12s-3.18.8-4.03,2.15c-.75,1.18-.74,2.4-.72,3.71v.39s-.1,0-.1,0c-.76,0-1.32.46-1.42,1.21.06,1.07,0,2.21-.03,3.32-.05,1.3-.1,2.63,0,3.87.07.79.58,1.29,1.36,1.35h9.87c.76-.07,1.26-.55,1.34-1.32v-7.21ZM4.21,4.01c0-.41.53-1.43.84-1.8.74-.86,1.83-1.35,2.99-1.35,1.4,0,2.65.7,3.32,1.87.16.26.49,1.04.49,1.28v2.26h-.64v-2.16c0-.16-.21-.7-.23-.75-.48-1.16-1.65-1.9-2.97-1.9-1.23,0-2.28.62-2.83,1.66-.1.2-.34.79-.34,1.04v2.11h-.64v-2.26ZM10.36,4.41v1.87h-4.66v-1.87c0-1.22,1.27-2.07,2.4-2.07.27,0,.52.04.76.13.71.26,1.5,1.14,1.5,1.94ZM13.41,14.71c-.02.15-.15.33-.27.37H2.97c-.14-.04-.2-.12-.27-.2-.06-1.51-.05-3.06-.05-4.55,0-.95,0-1.9,0-2.84.02-.16.21-.34.36-.37l9.84-.02c.27,0,.55.17.55.48v7.13Z\"\n fill={fill}\n />\n <path\n d=\"M9.47,11.09c.24-.47.22-1.02-.07-1.47-.29-.48-.8-.77-1.36-.77-.06,0-.12,0-.19,0-.53.06-.99.37-1.24.83-.24.44-.25.95-.02,1.39.03.08.1.16.17.25.05.06.14.17.15.2.02.12-.07.42-.14.67-.05.21-.11.4-.12.56-.03.26-.06.55.41.61.17.02.59.03,1.01.03.3,0,.83,0,1.03-.05.33-.07.32-.32.31-.51,0-.17-.07-.4-.14-.65s-.15-.54-.13-.65c0-.04.09-.14.14-.2.08-.1.15-.18.18-.26ZM7.74,11.98c.08-.31.14-.52.13-.63-.02-.19-.16-.3-.28-.41-.11-.09-.21-.17-.23-.27-.06-.26,0-.51.13-.69.13-.16.31-.25.52-.25.1,0,.2.02.3.06.2.07.35.24.4.44.06.23,0,.46-.14.64-.02.02-.06.04-.1.07-.11.07-.27.18-.28.4,0,.17.07.42.15.69.04.16.09.3.1.4,0,.03,0,.06,0,.09h-.84c.03-.14.09-.38.14-.55Z\"\n fill={fill}\n />\n </g>\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface DataSetsIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const DataSetsIcon = ({ fill = 'currentColor', ...props }: DataSetsIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g>\n <path\n d=\"M12.43,2.08c-.18-.11-.31-.18-.4-.22-1.82-.8-3.7-.97-3.7-.97-.19,0-.45-.04-.79-.04s-.88.03-1.53.11c-1.24.14-2.21.27-3.16.87-.5.32-1.35.84-1.34,1.54,0,.83.71,1.2,1.37,1.49,2.18.98,4.45,1.09,6.79.7.99-.16,1.9-.46,2.75-.97,1.17-.72,1.16-1.76.02-2.52ZM12.36,4.51c-.8.48-1.69.8-2.72.96-.83.14-1.63.21-2.38.21-1.57,0-2.99-.3-4.34-.9-.66-.3-1.31-.64-1.32-1.4,0-.63.78-1.14,1.29-1.46.91-.56,1.78-.7,3.12-.85.55-.07,1.11-.11,1.52-.11.28,0,.5.02.68.04h.1s1.89.18,3.67.97c.09.03.21.1.39.21.52.35.81.78.8,1.2,0,.42-.3.83-.82,1.15Z\"\n fill={fill}\n />\n <path\n d=\"M14.23,4.12v-.7c0-.62-.21-1.14-.64-1.56-.42-.42-.92-.76-1.56-1.05-1.22-.55-2.61-.81-4.36-.81-.74,0-1.49.05-2.13.09-1.04.08-2.05.36-3.03.83C1.08,1.61.47,2.56.52,3.98c.09,2.66.09,5.36,0,8.02-.05,1.35.51,2.28,1.79,2.92,1.42.72,3.04,1.08,4.93,1.08.61,0,1.25-.04,1.97-.11.17,0,.34-.04.49-.07.25-.04.44-.28.44-.52,0-.27-.19-.5-.47-.54l-.22.03c-.29.04-.59.09-.92.11-.38.04-.75.06-1.13.07-1.66-.08-3.41-.24-4.94-1.18-.69-.43-1.01-1.05-.98-1.9,0-.26.05-.26.07-.26.03,0,.1,0,.24.09,1.73.94,3.57,1.42,5.47,1.42.79,0,1.62-.09,2.44-.25.27-.05.45-.29.44-.53,0-.26-.19-.47-.47-.52-.33.05-.68.11-1.06.14-.46.05-.92.08-1.36.08-.32,0-3.17-.11-4.69-1.07-.53-.35-.77-.7-.84-.85-.25-.44-.34-.98-.24-1.55.03-.14.06-.16.09-.17.04,0,.11.04.16.07.12.08.25.14.37.2.14.07.27.13.4.22.22.17.54.28,1.21.49.92.3,1.72.4,2.42.48.07,0,.81.09,1.65.09.47,0,.9-.03,1.26-.08.3-.04.58-.1.65-.13.03,0,.49-.11,1.06-.34.26-.11.45-.19.54-.4.03-.06.1-.25,0-.43-.12-.2-.37-.23-.42-.23h-.02c-1.13.32-2.27.49-3.42.5-.02,0-2.43-.05-4.6-.99-.96-.37-1.41-1.04-1.35-1.99v-.4c0-.19.03-.24.06-.25.03,0,.1.02.24.1,1.46.94,3.09,1.35,5.3,1.35.77,0,1.55-.06,2.15-.1,1.42-.11,2.71-.53,3.8-1.27.12-.08.18-.09.2-.09.03,0,.06.09.07.24.09,1.03-.13,1.64-.75,2.1-.04.04-.05.1-.02.14,0,0,.3.42.83.42.32,0,.61-.14.87-.47,0-1.5,0-2.73,0-3.55ZM12.41,4.6c-.85.5-1.76.81-2.75.97-2.33.39-4.6.28-6.79-.7-.66-.3-1.36-.66-1.37-1.49,0-.7.84-1.22,1.34-1.54.95-.6,1.92-.73,3.16-.87.65-.08,1.19-.11,1.53-.11s.6.03.79.04c0,0,1.89.17,3.7.97.09.04.22.11.4.22,1.14.76,1.15,1.8-.02,2.52Z\"\n fill={fill}\n />\n <path\n d=\"M15.48,13.04c0,.15-.06.31-.18.42l-.58.59c-.3.3-.59.6-.88.9l-.16.16c-.15.16-.31.32-.43.5-.11.17-.31.28-.53.28-.25,0-.47-.13-.59-.34-.04-.07-.09-.13-.15-.19l-1.86-1.91c-.19-.19-.23-.44-.11-.67.1-.17.28-.27.47-.27.25.02.35.13.42.22.35.36.7.71,1.06,1.07l.1.1v-4.92c0-.32.12-.51.37-.6.1-.04.2-.06.29-.06.18,0,.34.06.47.19.15.13.16.3.16.44v4.99l.04-.04c.08-.1.17-.19.25-.28l.89-.92c.13-.13.29-.19.43-.19.13,0,.25.04.35.14.11.1.17.24.18.38Z\"\n fill={fill}\n />\n </g>\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface DeepSearchIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const DeepSearchIcon = ({ fill = 'currentColor', ...props }: DeepSearchIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M15.57,10.77c-.27-.27-.63-.43-1.01-.43h-.2v-1.06c0-.4-.16-.77-.43-1.05-.26-.28-.63-.44-1.01-.44h-4.3v-1.27h.61c.38-.01.75-.16,1.01-.44.27-.28.43-.65.43-1.05v-2.54c0-.4-.16-.77-.43-1.05-.26-.28-.63-.44-1.01-.44h-2.46c-.38,0-.74.16-1.01.44-.27.28-.42.65-.43,1.05v2.54c.01.4.16.77.43,1.05.27.28.63.43,1.01.44h.62v1.27H3.07c-.38,0-.74.16-1.01.44-.27.28-.42.65-.42,1.05v1.06h-.21c-.38,0-.74.16-1.01.43-.27.28-.42.66-.42,1.05v1.7c0,.39.15.77.42,1.05.27.27.63.43,1.01.43h1.64c.38,0,.75-.16,1.02-.43.27-.28.42-.66.42-1.05v-1.7c0-.39-.15-.77-.42-1.05-.27-.27-.64-.43-1.02-.43h-.2v-1.06c0-.06.02-.11.06-.15s.09-.07.14-.07h4.32v1.28h-.21c-.38,0-.75.16-1.02.43-.27.28-.42.66-.42,1.05v1.7c0,.39.15.77.42,1.05.27.27.64.43,1.02.43h1.64c.38,0,.74-.16,1.01-.43.27-.28.42-.66.42-1.05v-1.7c0-.39-.15-.77-.42-1.05-.27-.27-.63-.43-1.01-.43h-.2v-1.28h4.3c.06,0,.11.03.15.07s.06.09.06.15v1.06h-.21c-.38,0-.75.16-1.01.43-.27.28-.42.66-.43,1.05v1.7c.01.39.16.77.43,1.05.26.27.63.43,1.01.43h1.64c.38,0,.74-.16,1.01-.43.27-.28.42-.66.43-1.05v-1.7c-.01-.39-.16-.77-.43-1.05ZM3.07,11.61c.06,0,.11.02.15.06.04.04.06.1.06.15v1.7s-.02.11-.06.15c-.04.04-.09.06-.15.06h-1.64c-.05,0-.1-.02-.14-.06-.04-.04-.06-.1-.06-.15v-1.7s.02-.11.06-.15c.04-.04.09-.06.14-.06h1.64ZM8.82,11.61c.05,0,.1.02.14.06.04.04.06.1.06.15v1.7s-.02.11-.06.15-.09.06-.14.06h-1.64c-.06,0-.11-.02-.15-.06-.04-.04-.06-.1-.06-.15v-1.7s.02-.11.06-.15c.04-.04.09-.06.15-.06h1.64ZM6.77,5.24c-.06,0-.11-.02-.15-.06-.03-.04-.06-.09-.06-.15v-2.54c0-.06.03-.11.06-.15.04-.04.09-.06.15-.06h2.46c.06,0,.11.02.15.06.04.04.06.09.06.15v2.54c0,.06-.02.11-.06.15s-.09.06-.15.06h-2.46ZM14.77,13.52s-.03.11-.06.15c-.04.04-.09.06-.15.06h-1.64c-.06,0-.11-.02-.15-.06-.03-.04-.06-.1-.06-.15v-1.7s.03-.11.06-.15c.04-.04.09-.06.15-.06h1.64c.06,0,.11.02.15.06.03.04.06.1.06.15v1.7Z\"\n fill={fill}\n />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface DisabledVisibleIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const DisabledVisibleIcon = ({ fill = 'currentColor', ...props }: DisabledVisibleIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g>\n <path\n d=\"M15.79.65c-.13-.12-.31-.2-.49-.2s-.36.07-.48.2l-2.46,2.32c-1.33-.87-2.84-1.32-4.35-1.32C5.22,1.65,2.58,3.18.76,5.86-.05,7.04-.05,8.97.76,10.14c.52.78,1.11,1.46,1.78,2.04L.21,14.39c-.13.13-.21.3-.21.48,0,.18.07.35.21.47s.31.2.49.2.36-.07.48-.2l5.46-5.13,3.69-3.47L15.79,1.61c.13-.13.21-.3.21-.48,0-.18-.07-.35-.21-.47ZM6.25,8.71c-.1-.23-.16-.46-.16-.71,0-.99.87-1.79,1.92-1.79.26,0,.52.05.75.14l-2.51,2.36ZM9.79,5.37c-.53-.33-1.14-.51-1.79-.51-1.82,0-3.32,1.4-3.32,3.13,0,.61.19,1.19.53,1.68l-1.66,1.57c-.6-.51-1.13-1.12-1.61-1.82-.52-.76-.52-2.08,0-2.85,1.55-2.28,3.75-3.59,6.06-3.59,1.15,0,2.29.32,3.33.94l-1.54,1.44Z\"\n fill={fill}\n />\n <path\n d=\"M15.24,10.14c-1.81,2.67-4.45,4.21-7.24,4.21-.99,0-1.96-.19-2.89-.56-.18-.07-.32-.21-.39-.38-.06-.16-.06-.34.01-.51.11-.25.36-.4.65-.4.09,0,.18.02.27.05.75.3,1.55.45,2.34.45,2.31,0,4.53-1.31,6.07-3.59.51-.76.51-2.08,0-2.85-.23-.33-.47-.65-.73-.95-.11-.13-.18-.31-.15-.48.02-.18.1-.34.26-.46.12-.09.29-.14.44-.14.21,0,.4.08.55.24.31.36.58.72.81,1.08.8,1.18.8,3.1,0,4.29Z\"\n fill={fill}\n />\n <path\n d=\"M11.26,8.62c-.25,1.24-1.3,2.24-2.63,2.46,0,0-.01.01-.02.01s-.02-.01-.03-.01l.03-.14-.04.14c-.4,0-.69-.23-.75-.54-.04-.18,0-.35.1-.49.1-.15.27-.26.45-.29.75-.12,1.36-.7,1.49-1.4.07-.32.36-.55.7-.55.01,0,.11.01.12.01.2.04.36.14.46.3.1.14.13.32.1.49Z\"\n fill={fill}\n />\n </g>\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface DocsIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const DocsIcon = ({ fill = 'currentColor', ...props }: DocsIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g>\n <path\n d=\"M15.94,6.29c-.04-.08-.08-.16-.14-.22l-.09-.08L10.02.29l-.08-.09c-.13-.13-.29-.2-.47-.2h-3.67C1.74,0,0,1.74,0,5.79v4.41c0,4.06,1.74,5.79,5.79,5.79h4.41c4.06,0,5.79-1.74,5.79-5.79v-3.67c0-.08-.02-.18-.06-.25ZM10.13,2.28l3.59,3.59h-1.33c-1.82,0-2.26-.45-2.26-2.26v-1.33ZM14.66,10.21c0,3.3-1.16,4.46-4.46,4.46h-4.41c-3.3,0-4.46-1.16-4.46-4.46v-4.41C1.34,2.5,2.5,1.34,5.79,1.34h3v2.26c0,2.56,1.04,3.6,3.6,3.6h2.26v3Z\"\n fill={fill}\n />\n <path\n d=\"M9.4,8.73c0,.38-.29.67-.67.67h-4.39c-.38,0-.67-.29-.67-.67s.29-.66.67-.66h4.39c.38,0,.67.29.67.66Z\"\n fill={fill}\n />\n <path\n d=\"M7.93,11.66c0,.38-.29.67-.66.67h-2.93c-.38,0-.67-.29-.67-.67s.29-.66.67-.66h2.93c.36,0,.66.29.66.66Z\"\n fill={fill}\n />\n </g>\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface DownloadIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const DownloadIcon = ({ fill = 'currentColor', ...props }: DownloadIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g>\n <path\n d=\"M15.96,7.28c-.01-1.06-.03-2.11-.02-3.15C15.72,1.7,14.09.18,11.58.04c-.6-.03-1.18-.04-1.78-.04-.71,0-1.41.02-2.12.03-.71.01-1.41.03-2.11.03-.42,0-.83-.01-1.25-.02C1.77.18.15,1.79,0,4.33v7.39c.12,2.48,1.73,4.12,4.21,4.28h7.52c2.5-.17,4.11-1.86,4.22-4.45.06-1.4.03-2.87,0-4.27ZM14.75,11.66c-.1,1.95-1.24,3.03-3.25,3.13-.56.02-1.11.03-1.68.03-.67,0-1.36-.01-2.03-.02-.68-.01-1.37-.03-2.04-.03-.42,0-.84.01-1.25.02-2.17-.1-3.22-1.2-3.3-3.47.02-.98.01-1.97,0-2.97-.02-1.25-.04-2.54.02-3.79.1-2.07,1.07-3.12,3.04-3.29.01,0,.02,0,.03-.01h7.32c1.87.1,3.01,1.22,3.12,3.08v7.32Z\"\n fill={fill}\n />\n <path\n d=\"M10.88,8.09l-2.44,2.44c-.13.12-.3.18-.47.18-.15,0-.31-.04-.43-.14l-2.48-2.48c-.18-.24-.2-.52-.08-.76.12-.23.37-.39.63-.39.15,0,.32.06.45.17l1.2,1.2V3.57l.11-.26c.14-.2.35-.31.58-.31.26,0,.51.15.63.4.07.14.08.18.08.21v4.74l1.24-1.26c.14-.11.29-.15.44-.15.26,0,.51.15.63.41.12.24.09.53-.09.75Z\"\n fill={fill}\n />\n <path\n d=\"M13.38,11.37c.08.28-.01.57-.23.76-.17.13-.67.31-1.57.52-1.17.28-2.39.42-3.61.42-1.31,0-2.62-.17-3.88-.49-.52-.12-1.17-.31-1.35-.49-.19-.18-.25-.46-.18-.73.08-.25.28-.43.52-.47.06,0,.1-.01.14-.01.2,0,.39.07.57.13.07.03.13.06.2.07,1.38.37,2.69.56,4.02.56,1.21,0,2.45-.17,3.66-.49.09-.02.2-.06.31-.09.24-.09.53-.18.74-.18.34.03.55.21.64.47Z\"\n fill={fill}\n />\n </g>\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface EditUserIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const EditUserIcon = ({ fill = 'currentColor', ...props }: EditUserIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g>\n <path\n d=\"M7.49,0C5.08,0,3.14,1.96,3.14,4.36s1.95,4.35,4.35,4.35,4.35-1.96,4.35-4.35S9.89,0,7.49,0ZM7.49,7.29c-1.62,0-2.93-1.31-2.93-2.93s1.31-2.94,2.93-2.94,2.93,1.32,2.93,2.94-1.31,2.93-2.93,2.93Z\"\n fill={fill}\n />\n <path\n d=\"M14.86,10.23c-.28-.28-.75-.62-1.32-.62-.45,0-.89.21-1.3.62l-.27.28c-.07.04-.12.1-.16.16l-2.14,2.13c-.22.21-.38.55-.43.83l-.13.98c-.07.39.05.78.32,1.04.22.22.52.34.85.34.07,0,.13-.01.19-.02l.98-.14c.3-.04.62-.21.84-.42l2.58-2.58c.42-.43.62-.85.62-1.3s-.22-.91-.62-1.31ZM13.25,11.22c.14-.14.23-.2.3-.2.08,0,.17.07.32.21.16.15.21.26.21.31,0,.02-.04.13-.21.3l-.04.04c-.25-.14-.47-.35-.61-.61l.04-.04ZM11.25,14.44l-.7.1.12-.73,1.52-1.52c.16.23.37.44.6.61l-1.54,1.54Z\"\n fill={fill}\n />\n <path\n d=\"M10.33,10.7c-.1.31-.37.5-.68.5-.08,0-.14-.01-.21-.03-.64-.19-1.3-.28-1.96-.28-3.06,0-5.55,1.98-5.55,4.39,0,.39-.32.72-.71.72s-.71-.32-.71-.71c0-3.2,3.13-5.81,6.97-5.81.8,0,1.6.12,2.36.34.19.05.34.19.43.35.09.16.11.36.05.54Z\"\n fill={fill}\n />\n </g>\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface EnableVisibleIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const EnableVisibleIcon = ({ fill = 'currentColor', ...props }: EnableVisibleIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g>\n <path\n d=\"M8,4.81c-1.86,0-3.38,1.43-3.38,3.19s1.52,3.18,3.38,3.18,3.38-1.43,3.38-3.18-1.51-3.19-3.38-3.19ZM8,9.82c-1.07,0-1.94-.82-1.94-1.82s.87-1.83,1.94-1.83,1.95.82,1.95,1.83-.88,1.82-1.95,1.82Z\"\n fill={fill}\n />\n <path\n d=\"M15.38,5.81c-1.84-2.72-4.53-4.29-7.38-4.29S2.47,3.09.61,5.81c-.82,1.21-.82,3.17,0,4.38,1.85,2.72,4.54,4.29,7.39,4.29s5.54-1.57,7.38-4.29c.83-1.21.83-3.17,0-4.38ZM14.18,9.44c-1.58,2.33-3.82,3.67-6.18,3.67s-4.6-1.33-6.18-3.67c-.53-.77-.53-2.12,0-2.89,1.58-2.33,3.82-3.67,6.18-3.67s4.6,1.33,6.18,3.67c.53.77.53,2.12,0,2.89Z\"\n fill={fill}\n />\n </g>\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface EnterArrowLeftIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const EnterArrowLeftIcon = ({ fill = 'currentColor', ...props }: EnterArrowLeftIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M16,3.09v6.63c0,.11-.1.21-.21.21H2.53l2.08,2.05c.18.25.2.54.08.78-.13.25-.4.41-.67.41-.16,0-.31-.06-.45-.16L.2,9.69c-.27-.3-.25-.72,0-.99l3.34-3.3c.17-.13.33-.18.5-.18.25,0,.5.14.64.37.13.23.13.5-.01.74l-2.14,2.12h11.98V3.09c0-.06.03-.11.07-.16s.13-.1.18-.1h.99c.06,0,.11.01.16.06.03.04.1.14.1.2Z\"\n fill={fill}\n />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface FiltersIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const FiltersIcon = ({ fill = 'currentColor', ...props }: FiltersIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g>\n <path\n d=\"M5.07,2.9c0,.39-.32.71-.71.71H.71c-.39,0-.71-.32-.71-.71s.32-.71.71-.71h3.65c.39,0,.71.32.71.71Z\"\n fill={fill}\n />\n <path\n d=\"M16,8c0,.39-.32.71-.71.71h-3.65c-.39,0-.71-.32-.71-.71s.32-.71.71-.71h3.65c.39,0,.71.32.71.71Z\"\n fill={fill}\n />\n <path\n d=\"M5.07,13.1c0,.39-.32.71-.71.71H.71c-.39,0-.71-.32-.71-.71s.32-.71.71-.71h3.65c.39,0,.71.32.71.71Z\"\n fill={fill}\n />\n <path\n d=\"M16,13.1c0,.39-.32.71-.71.71h-7.31v.74c0,.39-.32.71-.71.71s-.71-.32-.71-.71v-2.92c0-.39.32-.71.71-.71s.71.32.71.71v.75h7.31c.39,0,.71.32.71.71Z\"\n fill={fill}\n />\n <path\n d=\"M16,2.9c0,.39-.32.71-.71.71h-7.31v.75c0,.39-.32.71-.71.71s-.71-.32-.71-.71V1.44c0-.39.32-.71.71-.71s.71.32.71.71v.74h7.31c.39,0,.71.32.71.71Z\"\n fill={fill}\n />\n <path\n d=\"M9.44,6.55v2.91c0,.39-.32.71-.71.71s-.71-.32-.71-.71v-.74H.71c-.39,0-.71-.32-.71-.71s.32-.71.71-.71h7.31v-.74c0-.39.32-.71.71-.71s.71.32.71.71Z\"\n fill={fill}\n />\n </g>\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface HomepageIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const HomepageIcon = ({ fill = 'currentColor', ...props }: HomepageIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M15.75,14.8s-.17-.1-.28-.13h-.19V6.16c-.03-.52-.25-1.02-.61-1.43l-.7-.56c-1.59-1.28-3.24-2.62-4.91-3.89-.32-.18-.68-.28-1.05-.28-.42,0-.84.13-1.2.38L1.51,4.6c-.7.62-.75,1.21-.78,2.13-.02,1.32-.02,2.65,0,3.97,0,1.28,0,2.58-.02,3.96h-.17s-.09.03-.11.03l-.09.05c-.26.15-.39.42-.33.72.07.3.3.5.6.53h14.75c.29,0,.52-.19.61-.46.09-.28,0-.57-.22-.74ZM9.55,13.89h-3.1v-4.25c.06-.43.21-.99.61-1.17.1,0,.21,0,.32,0,.19,0,.38,0,.55,0,.19,0,.37-.02.54-.02.15,0,.29,0,.42.02.4.03.64.79.65,1.17v4.25ZM13.96,14.65h-3.11l.02-.11c-.03-.77,0-1.55,0-2.33,0-.83.03-1.68,0-2.5-.05-1.17-.63-2.41-1.83-2.58-.12,0-.25,0-.38,0-.2,0-.4,0-.6,0-.2,0-.4-.02-.6-.02-.17,0-.34,0-.49.02-1.25.09-1.78,1.63-1.83,2.65-.03.82,0,1.66,0,2.47,0,.76.02,1.53,0,2.3l.02.12h-3.13l.04-8.45c.02-.22.11-.4.27-.55L7.51,1.52c.14-.12.32-.18.49-.18.17,0,.34.06.47.15l5.22,4.17c.1.09.26.34.26.44v8.54Z\"\n fill={fill}\n />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface InfoCircleIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const InfoCircleIcon = ({ fill = 'currentColor', ...props }: InfoCircleIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g>\n <path\n d=\"M15.09,4.36C13.71,1.68,11.01.02,8.03.02h-.26C4.77.12,2.19,1.78.85,4.46-.48,7.13-.24,10.19,1.49,12.62c1.52,2.14,3.89,3.36,6.5,3.36s4.98-1.22,6.51-3.35c1.77-2.46,1.98-5.55.59-8.27ZM13.76,11.33c-1.21,2.09-3.36,3.33-5.76,3.33h-.01c-2.17,0-4.14-1.02-5.41-2.79-1.44-2.01-1.64-4.54-.56-6.76,1.08-2.24,3.19-3.63,5.65-3.74.11,0,.23-.01.33-.01,2.41,0,4.56,1.25,5.77,3.36,1.2,2.08,1.19,4.55-.01,6.62Z\"\n fill={fill}\n />\n <path\n d=\"M8.73,7.13c-.01.55-.01,1.08,0,1.63-.05.49-.41.71-.73.71s-.66-.21-.72-.65v-3.8c.03-.32.3-.6.58-.65,0,0,.13-.01.14-.01.35,0,.62.22.71.57.02.75.02,1.48.02,2.2Z\"\n fill={fill}\n />\n <path d=\"M7.84,10.14c1.43-.19,1.44,1.97.1,1.86-1.12-.07-1.15-1.72-.1-1.86Z\" fill={fill} />\n </g>\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface MapRadarIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const MapRadarIcon = ({ fill = 'currentColor', ...props }: MapRadarIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g>\n <path\n d=\"M14.73,6.37h-5.17l-.03-.83h4.09s.05,0,.07-.02l2.3-2.24s-.03-.14-.05-.16l-2.36-2.22h-4.02V.1c0-.06-.04-.1-.1-.1h-2.91s-.1.04-.1.1v.79H1.35c-.06,0-.1.05-.1.1l-.05,4.45s0,.05.02.07c.02.02.05.03.08.03h5.17v.82l-4.11.02L.03,8.6s-.03.05-.03.08c0,.02,0,.05.03.07l2.41,2.27h12.24s.1-.05.1-.1l.05-4.45s0-.05-.03-.07c-.02-.02-.05-.03-.07-.03ZM13.6,9.88l-10.67.02-1.26-1.2,1.21-1.17h4.68c.06,0,.1-.04.1-.1v-.86c.06,0,.12,0,.18,0,.08,0,.5,0,.52,0v.87c0,.06.04.1.1.1h5.16l-.02,2.34ZM2.42,4.4v-2.33h5.14s.1-.05.1-.1v-.79h.71v.78s.04.1.1.1l4.63-.03,1.26,1.21-1.18,1.16H2.42Z\"\n fill={fill}\n />\n <path\n d=\"M9.47,11.26h-2.9s-.1.05-.1.1v4.54c0,.06.05.1.1.1h2.86s.05,0,.07-.03c.02-.02.07-.08.07-.11v-4.46s0-.02,0-.04c0-.05-.05-.1-.11-.1ZM7.66,14.84v-2.42h.69l-.03,2.42h-.66Z\"\n fill={fill}\n />\n </g>\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface MoonIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const MoonIcon = ({ fill = 'currentColor', ...props }: MoonIconProps) => {\n return (\n <svg width=\"22\" height=\"21\" viewBox=\"0 0 22 21\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M14.8826 13.8402C15.6927 13.8382 16.4913 13.7578 17.2638 13.4936C17.3246 13.4729 17.4082 13.4088 17.4524 13.4715C17.4917 13.527 17.4134 13.5945 17.3783 13.6514C16.8666 14.4752 16.223 15.1769 15.4244 15.7309C14.5042 16.3696 13.4897 16.7794 12.38 16.9328C11.1049 17.1091 9.8683 16.9377 8.68782 16.4287C7.92166 16.0982 7.23295 15.6444 6.62473 15.0635C5.91638 14.387 5.38367 13.5961 5.0017 12.7016C4.58184 11.7192 4.41395 10.6867 4.47507 9.62472C4.53399 8.60057 4.8186 7.63418 5.31038 6.72886C5.92358 5.59997 6.7893 4.71759 7.88322 4.05214C7.92 4.02976 7.96011 3.97642 8.00353 4.01179C8.04585 4.04634 8.00575 4.09884 7.99136 4.13947C7.67439 5.04921 7.58256 5.9899 7.63705 6.94358C7.68684 7.81436 7.89954 8.65004 8.25993 9.44869C8.66126 10.3377 9.20781 11.1223 9.91394 11.793C10.9808 12.8058 12.2403 13.4497 13.6869 13.7222C14.0816 13.7965 14.4804 13.8379 14.8826 13.8402Z\"\n fill={fill}\n />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface OpenLockIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const OpenLockIcon = ({ fill = 'currentColor', ...props }: OpenLockIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g>\n <path\n d=\"M6.91,11.52s.02.05.02.08v-.03s0-.03-.02-.05ZM7.46,10.06s0,.02,0,.03c.02-.04.05-.08.08-.11-.03.03-.05.06-.07.08Z\"\n fill={fill}\n />\n <path\n d=\"M14.31,11.69c0-1.42,0-2.89-.04-4.32,0-.02,0-.05,0-.08-.1-.51-.53-.91-1.12-1.02h-7.45c-.05-.23-.1-.57-.1-.99,0-.32.04-.65.13-1.02.02-.12.24-1.17,1.32-1.66.35-.16.73-.25,1.09-.25.4,0,.79.11,1.1.3.41.26,1.08,1.04,1.11,1.49.02.11.04.22.05.32,0,.07.07.13.15.13h2.02c.08,0,.15-.06.15-.14,0-.11,0-.22,0-.32v-.1c-.12-.81-.37-1.5-.8-2.09-.86-1.22-2.33-1.95-3.9-1.95-1.45,0-2.79.62-3.68,1.7-.66.8-1,1.81-1.05,3.09-.02.47,0,.94,0,1.41v.04h-.28c-.3,0-.59.13-.81.36-.27.28-.43.7-.42,1.09.02.94-.02,1.9-.05,2.84-.04,1.08-.08,2.19-.04,3.29.04.88.09,2.09,1.43,2.18h9.93c.7-.1,1.19-.62,1.26-1.34-.02-.98,0-1.97,0-2.96ZM4.25,3.88c0-.13.27-.76.43-1.04.67-1.21,1.97-1.95,3.41-1.95s2.6.69,3.27,1.84c.11.19.44.93.48,1.2h-.62c-.11-.44-.54-1.17-.76-1.41-.62-.67-1.46-1.04-2.38-1.04-1.38,0-2.93.89-3.22,2.59-.06.33-.09.66-.09.97-.02.41,0,.82.06,1.25h-.61c-.07-.34-.11-.67-.11-.99,0-.49.03-.95.13-1.4ZM13.4,14.64c0,.12-.07.27-.2.39,0,0-.02,0-.03.02-1.52,0-3.05.02-4.58.02-1.37,0-2.75,0-4.12,0h-1.5c-.25-.1-.25-.29-.24-.63,0-.08,0-.16,0-.25-.06-1.65-.04-3.34-.03-4.97,0-.62.02-1.23,0-1.79.06-.13.17-.23.27-.27,1.64-.02,3.28-.02,4.93-.02,1.38,0,2.77,0,4.14-.02h.44c.65,0,.89.13.9.5v7.02Z\"\n fill={fill}\n />\n <path\n d=\"M6.62,9.7s-.05.1-.07.15c.04-.1.09-.19.15-.27-.03.04-.06.08-.08.12ZM7.89,11.32c0,.14-.02.26-.04.37.04-.14.06-.27.04-.37ZM9.44,11.18c.11-.17.18-.35.21-.55-.03.2-.11.38-.21.55Z\"\n fill={fill}\n />\n <path\n d=\"M9.64,10.18s-.02-.07-.02-.1c-.02-.07-.05-.15-.08-.22,0-.04-.03-.08-.05-.12-.03-.07-.07-.13-.12-.19-.06-.09-.12-.17-.2-.24s-.16-.14-.25-.2-.19-.11-.28-.15c-.1-.04-.2-.07-.3-.09,0,0-.02,0-.03,0-.1-.02-.22-.03-.32-.03h0c-.1,0-.19.02-.27.04-.02,0-.04,0-.06,0-.09.03-.18.06-.27.1-.1.04-.19.1-.27.17-.08.05-.15.11-.21.17-.08.08-.14.16-.2.25-.06.08-.11.17-.15.27-.04.09-.07.18-.09.26,0,.02,0,.04,0,.05-.02.09-.03.18-.03.26,0,.24.06.47.18.69.04.07.09.13.15.2.06.07.13.16.16.22,0,.02.02.04.02.05v.03c0,.16-.07.37-.14.59-.06.19-.12.38-.14.54,0,.14-.02.26.02.36.02.06.05.11.1.15.04.04.09.07.16.1.06.02.14.04.23.05.28.02.64.03.95.03h.4c.27-.02.53-.03.66-.07.05,0,.09-.03.13-.06.03-.02.05-.04.07-.07.02-.03.04-.07.05-.11.02-.05.03-.1.03-.17s0-.14,0-.19c-.02-.19-.08-.38-.14-.59-.07-.22-.14-.44-.13-.61,0-.05.1-.16.15-.23.05-.06.1-.11.13-.16.1-.17.18-.35.21-.55,0-.07,0-.13,0-.2,0-.09,0-.18-.02-.26ZM8.7,10.69c-.05.14-.1.17-.18.22-.06.04-.13.09-.2.16-.09.11-.13.22-.13.33,0,.06,0,.11.02.17,0,.05.03.12.04.18.03.1.06.2.09.29.05.17.1.31.11.47h-.82c.02-.14.08-.3.13-.47.03-.11.07-.22.1-.33h0c.02-.13.04-.25.04-.38-.03-.18-.17-.29-.29-.39-.08-.07-.16-.13-.19-.19-.04-.09-.06-.19-.06-.28,0-.07,0-.14.03-.2,0-.05.03-.1.06-.15,0,0,0-.02,0-.02,0,0,0-.02,0-.03.02-.02.04-.05.07-.08.02-.03.05-.07.09-.09.03-.03.07-.06.12-.08.04-.02.08-.04.13-.05,0,0,.03,0,.04,0,.04,0,.08-.02.13-.02.07,0,.13,0,.19.02s.11.03.16.06c.03,0,.06.03.08.05.04.02.08.04.1.08.03.02.06.05.08.08,0,0,0,0,0,.02.03.05.06.1.08.16v.02c.02.06.03.12.03.18,0,.1-.02.2-.05.28Z\"\n fill={fill}\n />\n </g>\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface OrganizationIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const OrganizationIcon = ({ fill = 'currentColor', ...props }: OrganizationIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g>\n <path\n d=\"M15.13,14.08c-.23-.18-.48-.2-.74-.21v-7.7c-.04-.39-.34-.8-.72-.93l-3.84-1.02V.87c-.16-.54-.56-.87-1.05-.87-.09,0-.18,0-.27.04-.86.27-1.74.53-2.61.79-1.24.37-2.48.75-3.72,1.16-.33.2-.55.54-.57.93v10.96h-.19c-.16,0-.43.13-.54.21-.34.27-.49.73-.36,1.15.11.42.45.72.88.77h13.2c.42-.04.77-.31.89-.74.13-.44,0-.9-.36-1.18ZM2.65,14.92s.03-.06.03-.09l.04-11.9,5.93-1.81s.09-.07.11-.08v12.93s0,.04,0,.06c0,.08.06.15.15.15h1.58c.08,0,.15-.07.15-.15V5.55l2.64.7s.02.03.03.03c0,0,0,0,0,0v8.56s0,.07.03.09H2.65Z\"\n fill={fill}\n />\n <path\n d=\"M6.65,4.12h-3.06c-.09,0-.15.06-.15.15v3.04c0,.08.06.15.15.15h3.06c.08,0,.15-.07.15-.15v-3.04c0-.09-.07-.15-.15-.15ZM4.51,6.35v-1.17h1.22v1.17h-1.22Z\"\n fill={fill}\n />\n <path\n d=\"M6.65,9.73h-3.06c-.09,0-.15.07-.15.15v3.04c0,.09.06.15.15.15h3.06c.08,0,.15-.06.15-.15v-3.04c0-.08-.07-.15-.15-.15ZM4.51,11.98v-1.18h1.22v1.18h-1.22Z\"\n fill={fill}\n />\n </g>\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface PasswordFinderIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const PasswordFinderIcon = ({ fill = 'currentColor', ...props }: PasswordFinderIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g>\n <path\n d=\"M7.89,12.32h-1.06v1.84h-1.84v1.84H1.24c-.5,0-1.09-.7-1.17-1.17-.09-.51-.08-2.07-.03-2.6.03-.3.18-.62.39-.84l4.61-4.62-.14-1.2c.08-3.89,3.79-6.55,7.51-5.22,5.78,2.07,4.32,11.06-2.45,10.73-.18,0-.58-.14-.71-.11-.08.03-1.06,1.03-1.26,1.2-.04.04-.05.08-.05.13h-.04ZM1.37,14.66h2.34v-1.79h1.79v-1.84h1.76l1.58-1.5c.93.26,1.73.38,2.69.13,2.97-.75,4.17-4.46,2.18-6.83-2.88-3.41-8.3-.76-7.35,3.79.04.18.2.43.12.6L1.33,12.37c-.04.29-.08,2.22.03,2.29h.01Z\"\n fill={fill}\n />\n <path\n d=\"M10.73,3.67c.14,0,.32.07.43.14.11.08,1.06,1.05,1.1,1.13.25.6-.34,1.17-.93.87-.09-.05-1.13-1.11-1.17-1.18-.18-.45.05-.96.55-.97h.01Z\"\n fill={fill}\n />\n </g>\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface PhonebookIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const PhonebookIcon = ({ fill = 'currentColor', ...props }: PhonebookIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g>\n <path\n d=\"M15.01,8.44V3.26c0-.31,0-.94-.7-.94,0,0-.11,0-.15,0-.19,0-.32-.04-.4-.12-.12-.14-.12-.4-.1-.65,0-.12,0-.24,0-.35v-.17c0-.94-.11-1.05-1.03-1.05H2.99C1.67,0,.98.69.98,2v11.88c0,1.35.79,2.12,2.14,2.12h10.85c.9,0,1.05-.16,1.05-1.05v-5.75c0-.26,0-.51,0-.76ZM2.71,1.2c.08,0,.16,0,.24,0h9.01c.42,0,.55.08.56.58,0,.23-.03.37-.11.45-.08.07-.21.11-.43.11h-.11c-.7-.02-1.4-.02-2.11-.02h-2.18c-1.45,0-2.89,0-4.35,0h0c-.19,0-.37,0-.54-.03-.31-.04-.48-.24-.47-.54.02-.39.29-.5.51-.53ZM13.83,13.81v.47c0,.22-.02.36-.1.42-.07.08-.21.11-.45.11-3.37,0-6.74,0-10.1,0-.78,0-1-.23-1-1,0-1.67,0-3.33,0-4.99s0-3.33,0-4.99c0-.35.04-.39.36-.39v-.1l.08.1c.89.03,1.79.04,2.68.04h5.27c.91,0,1.82,0,2.73-.02.43,0,.56.07.56.52-.02,3.27,0,6.55,0,9.82Z\"\n fill={fill}\n />\n <path\n d=\"M11.48,10.12c-.23-.02-.44-.08-.67-.13-.34-.08-.67-.16-1.02-.16-.42,0-.79.13-1.19.4-.46-.21-.79-.6-1.12-1.02-.13-.17-.08-.25.05-.4.05-.06.1-.13.14-.2.1-.2.15-.4.12-.6-.06-.59-.13-1.18-.23-1.76-.1-.59-.5-.92-1.17-.97h-.12c-1.14,0-1.99.9-2.01,2.13-.03,1.4.59,2.87,1.7,4.03,1.15,1.18,2.64,1.88,4.11,1.9h.06c1.29,0,2.21-.8,2.23-1.95.02-.73-.31-1.2-.89-1.27ZM5.68,6.79c.15-.2.32-.3.5-.3.04,0,.08,0,.12,0,.15.04.17.13.18.34,0,.06,0,.11.02.16.02.14.03.28.04.41.02.14.03.28.05.42,0,.16,0,.22-.08.26-.25.1-.4.24-.47.41-.1.26.03.55.18.86.49.96,1.23,1.69,2.22,2.15.21.09.37.14.51.14.26,0,.45-.15.57-.44.04-.1.1-.14.28-.14h.04c.07,0,.14,0,.22,0,.14,0,.27,0,.38.06.1.04.23.04.35.05.14,0,.27,0,.33.06.03.04.05.11.05.2,0,.41-.31.68-.89.72h-.22c-2.29-.06-4.56-2.34-4.59-4.61,0-.34.07-.58.23-.77Z\"\n fill={fill}\n />\n </g>\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface PrintIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const PrintIcon = ({ fill = 'currentColor', ...props }: PrintIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M15.24,3.65c-.48-.49-1.15-.77-1.83-.77h-.36v-.37c0-.44-.17-.85-.47-1.15-.3-.31-.72-.48-1.14-.48h-6.89c-.42,0-.84.17-1.14.48-.3.31-.46.72-.46,1.15v.37h-.37c-.69,0-1.34.27-1.83.77-.48.49-.76,1.16-.76,1.86v4.99c0,.44.17.85.47,1.15.3.31.71.47,1.14.47h1.35v1.37c0,.44.17.84.46,1.15.3.3.72.47,1.14.47h6.89c.42,0,.84-.17,1.14-.47.3-.31.47-.72.47-1.15v-1.37h1.34c.43,0,.84-.17,1.14-.47.31-.31.47-.72.47-1.15v-4.99c0-.7-.28-1.37-.76-1.86ZM4.2,2.51c0-.1.03-.19.1-.26.07-.07.16-.1.25-.1h6.89c.1,0,.18.03.25.1.07.07.1.17.1.26v.37h-7.61v-.37ZM11.8,13.5c0,.1-.03.19-.1.26s-.16.1-.25.1h-6.89c-.1,0-.18-.04-.25-.1s-.1-.17-.1-.26v-4c0-.1.03-.19.1-.26.07-.07.16-.1.25-.1h6.89c.1,0,.18.03.25.1.07.07.1.17.1.26v4ZM14.75,10.5c0,.1-.03.19-.1.26-.06.07-.16.1-.25.1h-1.34v-1.36c0-.44-.17-.85-.47-1.15-.3-.31-.72-.48-1.14-.48h-6.89c-.42,0-.84.17-1.14.48-.3.31-.46.72-.46,1.15v1.36h-1.35c-.1,0-.19-.03-.25-.1-.07-.07-.11-.17-.11-.26v-4.99c0-.37.15-.72.4-.97.25-.26.59-.4.94-.4h10.82c.35,0,.7.15.94.4.25.25.39.6.39.97v4.99Z\"\n fill={fill}\n />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface Profiler20IconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const Profiler2Icon = ({ fill = 'currentColor', ...props }: Profiler20IconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g>\n <path\n d=\"M10.26,7.61c-.67,0-1.32-.2-1.87-.57-.55-.37-.99-.89-1.24-1.51-.26-.61-.32-1.29-.19-1.94.13-.65.45-1.25.92-1.72.47-.47,1.07-.79,1.73-.92.65-.13,1.33-.06,1.95.19.62.25,1.14.68,1.51,1.24s.57,1.2.57,1.87c0,.89-.36,1.75-.99,2.38-.63.63-1.49.98-2.38.98ZM10.26,2.23c-.4,0-.79.12-1.12.34-.33.22-.59.54-.74.91-.15.37-.19.77-.12,1.17.08.39.27.75.55,1.03.28.28.64.47,1.04.55.39.08.8.04,1.17-.11.37-.15.69-.41.91-.74.22-.33.34-.72.34-1.12,0-.53-.21-1.05-.59-1.43s-.89-.59-1.43-.59Z\"\n fill={fill}\n />\n <path\n d=\"M4.83,7.7h-.29c-.72-.07-1.38-.42-1.83-.97s-.67-1.26-.61-1.98c.07-.71.42-1.37.98-1.83.56-.46,1.27-.67,1.99-.6.09,0,.18.03.26.07.08.04.16.1.22.17.06.07.11.15.13.24s.04.18.03.27c0,.09-.04.18-.08.26-.04.08-.11.15-.18.21s-.16.1-.25.12c-.09.02-.18.03-.27.01-.18-.02-.35,0-.52.05-.17.05-.32.14-.46.25-.14.11-.25.25-.33.4-.08.15-.14.32-.15.5-.02.18,0,.35.05.52.05.17.13.33.25.46.11.14.25.25.41.33.16.08.33.13.51.15.29.03.59-.04.84-.2.15-.09.34-.12.51-.08.18.04.33.15.42.3.09.15.12.34.08.51-.04.17-.15.32-.3.42-.42.27-.9.41-1.39.42Z\"\n fill={fill}\n />\n <path\n d=\"M.76,14.18c-.2,0-.39-.08-.53-.22-.14-.14-.22-.32-.23-.52,0-2.64.73-4.4,4.31-4.4.2,0,.39.08.54.22.14.14.22.32.22.52s-.08.38-.22.52c-.14.14-.34.22-.54.22-2.38,0-2.79.73-2.79,2.93,0,.19-.08.38-.23.52-.14.14-.33.22-.53.22Z\"\n fill={fill}\n />\n <path\n d=\"M15.42,15.11c-.15,0-.3-.09-.41-.25-.11-.15-.17-.36-.17-.58,0-2.15-.83-3.58-4.87-3.58s-4.87,1.43-4.87,3.58c0,.22-.06.43-.17.59-.11.15-.26.24-.41.24s-.3-.09-.41-.24c-.11-.16-.17-.37-.17-.59,0-5.24,4.23-5.24,6.03-5.24s6.03,0,6.03,5.24c0,.22-.06.43-.17.58-.11.15-.26.24-.41.25Z\"\n fill={fill}\n />\n </g>\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface ProfilerIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const ProfilerIcon = ({ fill = 'currentColor', ...props }: ProfilerIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g>\n <path\n d=\"M8,8.27c-.77,0-1.51-.24-2.15-.7-.64-.45-1.13-1.1-1.43-1.86-.29-.76-.37-1.59-.22-2.39.15-.8.52-1.54,1.06-2.12.54-.58,1.23-.97,1.98-1.13.75-.16,1.53-.08,2.24.23.71.31,1.31.84,1.74,1.52.43.68.65,1.48.65,2.3,0,1.1-.41,2.15-1.13,2.93s-1.71,1.21-2.74,1.21ZM8,1.65c-.46,0-.91.15-1.29.42-.38.27-.68.66-.86,1.11-.18.45-.22.95-.13,1.43.09.48.31.92.64,1.27.32.35.74.58,1.19.68.45.1.92.05,1.34-.14.42-.19.79-.51,1.04-.91.26-.41.39-.89.39-1.38,0-.66-.24-1.29-.68-1.75-.44-.46-1.03-.73-1.64-.73Z\"\n fill={fill}\n />\n <path\n d=\"M15.23,16c-.2,0-.4-.09-.54-.25-.14-.15-.23-.36-.23-.58,0-2.15-1.09-3.58-6.45-3.58s-6.45,1.43-6.45,3.58c0,.22-.08.43-.23.59-.15.15-.34.24-.55.24s-.4-.09-.55-.24c-.15-.16-.23-.37-.23-.59,0-5.24,5.61-5.24,8-5.24s8,0,8,5.24c0,.22-.09.43-.23.58-.14.15-.34.24-.54.25Z\"\n fill={fill}\n />\n </g>\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface SandBoxIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const SandBoxIcon = ({ fill = 'currentColor', ...props }: SandBoxIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M15.8,6.86s-.02-.02-.04-.04l-3.24-5.21c-.13-.28-.33-.51-.58-.67-.26-.16-.55-.25-.85-.25h-6.18c-.28-.01-.56.06-.81.2-.25.13-.45.34-.59.58L.11,6.94h0s-.04.08-.05.12c0,.03-.03.07-.04.12-.01.04-.01.08-.01.12v5.5c0,.33.07.66.19.96.13.31.32.59.55.82.23.23.51.42.81.54.31.13.64.2.97.2h10.96c.66,0,1.3-.27,1.77-.73.47-.47.74-1.1.75-1.76v-5.48c0-.19-.08-.36-.2-.49ZM4.7,2.16s.05-.06.09-.09c.03-.02.07-.03.12-.03h6.19c.09,0,.16.05.23.18l2.74,4.44h-3.33c-.18,0-.36.07-.49.2-.12.13-.2.3-.2.49v.2c0,.54-.21,1.07-.6,1.45-.38.39-.91.6-1.45.6s-1.07-.21-1.46-.6c-.38-.38-.6-.91-.6-1.45v-.2c0-.19-.07-.36-.2-.49-.13-.13-.3-.2-.48-.2H1.92l2.78-4.5ZM14.63,12.83c0,.3-.12.59-.34.81s-.5.33-.81.33H2.52c-.16,0-.31-.03-.45-.09s-.27-.14-.37-.25c-.11-.11-.19-.24-.25-.38-.05-.14-.08-.3-.08-.45v-4.8h3.24c.1.83.51,1.58,1.13,2.13.63.54,1.43.84,2.26.84s1.63-.3,2.25-.84c.62-.55,1.03-1.3,1.14-2.13h3.24v4.83Z\"\n fill={fill}\n />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface SearchIconProps extends SVGProps<SVGSVGElement> {\n stroke?: string;\n}\n\nexport const SearchIcon = ({ stroke = 'currentColor', ...props }: SearchIconProps) => {\n return (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <ellipse cx=\"5.80004\" cy=\"5.80062\" rx=\"4.80004\" ry=\"4.80062\" stroke={stroke} />\n <path d=\"M9.00012 9.80078L13.0002 12.9997\" stroke={stroke} strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface StatisticIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const StatisticIcon = ({ fill = 'currentColor', ...props }: StatisticIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g>\n <path\n d=\"M9.1.02c-.11,0-.22,0-.34,0-.2,0-.4,0-.61,0-.22,0-.42-.02-.63-.02-.19,0-.37,0-.53.02-.38.03-.81.38-.81.77v15.1c0,.06.04.1.1.1h3.46c.06,0,.1-.04.1-.1V.69c0-.29-.45-.67-.73-.67ZM7.57,14.6V1.41h.88v13.19h-.88Z\"\n fill={fill}\n />\n <path\n d=\"M2.9,4.97c-.19-.02-.4-.02-.6-.02s-.43,0-.66,0c-.22,0-.44,0-.66,0h-.3c-.32.04-.67.43-.67.75v10.17c0,.06.04.1.1.1h3.44s.03,0,.05,0c.05,0,.1-.04.1-.1V5.76c0-.4-.37-.76-.79-.79ZM1.41,14.59V6.35h.89v8.24h-.89Z\"\n fill={fill}\n />\n <path\n d=\"M15.89,8.33c-.14-.25-.4-.4-.73-.42-.26-.02-.62-.03-.98-.03s-.72,0-.99.03c-.32.02-.57.16-.72.4-.03.05-.13.31-.14.35v7.25c0,.06.05.1.1.1h3.47c.06,0,.1-.04.1-.1v-7.3c0-.08-.1-.25-.11-.27ZM13.74,14.6v-5.3h.86v5.3h-.86Z\"\n fill={fill}\n />\n </g>\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface SunIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n stroke?: string;\n}\n\nexport const SunIcon = ({ fill = 'currentColor', stroke = 'currentColor', ...props }: SunIconProps) => {\n return (\n <svg width=\"22\" height=\"21\" viewBox=\"0 0 22 21\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M10.7336 7.81445C12.3434 7.84801 13.4641 9.04097 13.5774 10.4131L13.5862 10.6904C13.557 12.3941 12.2055 13.533 10.7249 13.5186L10.5657 13.5127C9.039 13.4219 7.98725 12.2485 7.87915 10.9131L7.87036 10.6348C7.90006 8.96394 9.25521 7.81499 10.7336 7.81445Z\"\n stroke={stroke}\n />\n <path\n d=\"M7.26234 7.82055C7.02212 7.81698 6.86386 7.75484 6.73481 7.62848C6.48774 7.38645 6.24007 7.14473 5.99896 6.89706C5.72893 6.61966 5.73251 6.20073 5.99955 5.94206C6.2651 5.68487 6.67431 5.68546 6.94761 5.95098C7.19885 6.19508 7.44921 6.44037 7.68853 6.69577C7.88047 6.90063 7.93411 7.15157 7.81937 7.40994C7.70492 7.66802 7.49779 7.81609 7.26234 7.82055Z\"\n fill={fill}\n />\n <path\n d=\"M15.6541 14.872C15.6541 15.1839 15.5304 15.3915 15.2881 15.511C15.0539 15.6266 14.8151 15.6183 14.597 15.4557C14.5475 15.4188 14.4998 15.3781 14.456 15.3347C14.2235 15.1031 13.9881 14.8741 13.7622 14.6363C13.5127 14.3734 13.5255 13.9691 13.7809 13.714C14.0364 13.4591 14.4444 13.4458 14.7054 13.694C14.9594 13.9355 15.2067 14.1837 15.4514 14.4344C15.5784 14.5643 15.6681 14.7162 15.6541 14.872Z\"\n fill={fill}\n />\n <path\n d=\"M14.2545 7.81899C13.983 7.81155 13.7735 7.69173 13.6543 7.44882C13.533 7.20204 13.5488 6.95288 13.7342 6.74059C13.9964 6.44 14.2805 6.15843 14.5773 5.89203C14.814 5.67945 15.2199 5.71066 15.4559 5.93544C15.6875 6.15606 15.7379 6.54614 15.5304 6.79679C15.2565 7.12771 14.9445 7.42563 14.6167 7.70422C14.5165 7.78955 14.3893 7.82285 14.2545 7.81899Z\"\n fill={fill}\n />\n <path\n d=\"M5.80404 14.908C5.79748 14.7438 5.84725 14.5984 5.9614 14.4828C6.22278 14.2176 6.47879 13.9458 6.75656 13.6984C7.15594 13.3425 7.74992 13.5373 7.859 14.049C7.90103 14.2458 7.86616 14.4328 7.73115 14.5851C7.46649 14.8836 7.18723 15.1699 6.88681 15.4321C6.67967 15.6132 6.42872 15.6385 6.17629 15.5175C5.92266 15.3956 5.80761 15.1839 5.80404 14.908Z\"\n fill={fill}\n />\n <path\n d=\"M4.44378 10.18C4.55525 10.059 4.69354 9.99125 4.85627 9.98976C5.22911 9.98619 5.60285 9.974 5.9745 9.99452C6.50918 10.024 6.79202 10.5802 6.5071 11.0194C6.39742 11.1883 6.24035 11.2962 6.03709 11.309C5.63832 11.334 5.23805 11.3399 4.83958 11.314C4.56479 11.2962 4.36927 11.1371 4.27629 10.8737C4.1824 10.6088 4.25095 10.3778 4.44378 10.18Z\"\n fill={fill}\n />\n <path\n d=\"M15.0586 10.18C15.1701 10.059 15.3084 9.99125 15.4711 9.98976C15.844 9.98619 16.2177 9.974 16.5894 9.99452C17.124 10.024 17.4069 10.5802 17.122 11.0194C17.0123 11.1883 16.8552 11.2962 16.6519 11.309C16.2532 11.334 15.8529 11.3399 15.4544 11.314C15.1796 11.2962 14.9841 11.1371 14.8911 10.8737C14.7976 10.6088 14.8658 10.3778 15.0586 10.18Z\"\n fill={fill}\n />\n <path\n d=\"M11.3908 5.18099C11.3908 5.36235 11.3947 5.54402 11.3899 5.72539C11.3804 6.08693 11.0987 6.35839 10.739 6.35839C10.3617 6.35839 10.0762 6.09704 10.0687 5.72985C10.0613 5.36265 10.0621 4.99516 10.069 4.62796C10.0759 4.26226 10.3644 3.99764 10.7393 4.00002C11.0972 4.00239 11.3816 4.27861 11.3896 4.63688C11.3938 4.81825 11.3902 4.99962 11.3902 5.18128C11.3905 5.18099 11.3905 5.18099 11.3908 5.18099Z\"\n fill={fill}\n />\n <path\n d=\"M11.3908 15.8224C11.3908 16.0038 11.3947 16.1854 11.3899 16.3668C11.3804 16.7283 11.0987 16.9998 10.739 16.9998C10.3617 16.9998 10.0762 16.7385 10.0687 16.3713C10.0613 16.0041 10.0621 15.6366 10.069 15.2694C10.0759 14.9034 10.3644 14.6388 10.7393 14.6411C11.0972 14.6435 11.3816 14.9197 11.3896 15.278C11.3938 15.4594 11.3902 15.6407 11.3902 15.8224C11.3905 15.8224 11.3905 15.8224 11.3908 15.8224Z\"\n fill={fill}\n />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface UpRightArrowCircleIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const UpRightArrowCircleIcon = ({ fill = 'currentColor', ...props }: UpRightArrowCircleIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g>\n <path\n d=\"M10.68,4.72c.18,0,.32.15.3.33l-1.09,5.65c-.03.21-.26.28-.44.19l-1.85-1.85h-.04l-2.1,2.07c-.52.46-1.24-.13-.86-.72l2.17-2.17-1.96-1.95c-.12-.13-.06-.36.1-.42l5.78-1.13h-.01Z\"\n fill={fill}\n />\n <path\n d=\"M15.09,4.36C13.71,1.68,11.01.02,8.03.02h-.26C4.77.12,2.19,1.78.85,4.46-.48,7.13-.24,10.19,1.49,12.62c1.52,2.14,3.89,3.36,6.5,3.36s4.98-1.22,6.51-3.35c1.77-2.46,1.98-5.55.59-8.27ZM13.76,11.33c-1.21,2.09-3.36,3.33-5.76,3.33h-.01c-2.17,0-4.14-1.02-5.41-2.79-1.44-2.01-1.64-4.54-.56-6.76,1.08-2.24,3.19-3.63,5.65-3.74.11,0,.23-.01.33-.01,2.41,0,4.56,1.25,5.77,3.36,1.2,2.08,1.19,4.55-.01,6.62Z\"\n fill={fill}\n />\n </g>\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface VectorIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const VectorIcon = ({ fill = 'currentColor', ...props }: VectorIconProps) => {\n return (\n <svg viewBox=\"0 0 12 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M0.869629 5.00098H10.8696M10.8696 5.00098L6.86963 1.00098M10.8696 5.00098L7.11151 8.7591L6.86963 9.00098\"\n stroke={fill}\n strokeWidth=\"1.3\"\n />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface InfoCircleIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const BallsMenu = ({ fill = 'currentColor', ...props }: InfoCircleIconProps) => {\n return (\n <svg viewBox=\"0 0 16 3\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <ellipse cx=\"1.56746\" cy=\"1.5\" rx=\"1.53633\" ry=\"1.5\" fill={fill} />\n <ellipse cx=\"7.71278\" cy=\"1.5\" rx=\"1.53633\" ry=\"1.5\" fill={fill} />\n <ellipse cx=\"13.8581\" cy=\"1.5\" rx=\"1.53633\" ry=\"1.5\" fill={fill} />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface InfoCircleIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const CheckIcon = ({ fill = 'currentColor', ...props }: InfoCircleIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M9.796 6.706c-3.438 3.638-4.457 4.698-4.481 4.671l-3.552-3.768c-0.026-0.028-0.193 0.115-0.792 0.678-0.418 0.394-0.759 0.727-0.759 0.739 0 0.011 1.010 1.091 2.245 2.396 2.080 2.2 2.258 2.381 2.425 2.462 0.32 0.158 0.729 0.142 1.015-0.038 0.149-0.094-0.051 0.115 5.257-5.502l4.634-4.902-0.752-0.715c-0.233-0.223-0.484-0.458-0.738-0.691l-0.034-0.030c-1.295 1.344-2.752 2.874-4.201 4.413l-0.268 0.287z\"\n fill={fill}\n ></path>\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface ChevronRightIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const ChevronDownIcon = ({ fill = 'currentColor', ...props }: ChevronRightIconProps) => {\n return (\n <svg viewBox=\"0 0 18 17\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M17.4517 5.77798L16.4067 6.79197L10.8447 12.1899C10.0753 12.9367 8.82791 12.9367 8.05853 12.1899L2.49647 6.79197L1.45166 5.77798L3.54128 3.75L4.58609 4.76399L9.45161 9.48599L14.3172 4.76399L15.362 3.75L17.4517 5.77798Z\"\n fill={fill}\n />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface ChevronRightIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const ChevronUpIcon = ({ fill = 'currentColor', ...props }: ChevronRightIconProps) => {\n return (\n <svg viewBox=\"0 0 17 17\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M0.20166 10.722L1.24661 9.70803L6.80863 4.31012C7.57801 3.56329 8.82541 3.56329 9.59479 4.31012L15.1569 9.70803L16.2017 10.722L14.112 12.75L13.0672 11.736L8.20171 7.01401L3.33611 11.736L2.29136 12.75L0.20166 10.722Z\"\n fill={fill}\n />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface PrintIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const PlusIcon = ({ fill = 'currentColor', ...props }: PrintIconProps) => {\n return (\n <svg viewBox=\"0 0 10 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M9.21053 5.78952H0.789474C0.357895 5.78952 0 5.43162 0 5.00005C0 4.56847 0.357895 4.21057 0.789474 4.21057H9.21053C9.64211 4.21057 10 4.56847 10 5.00005C10 5.43162 9.64211 5.78952 9.21053 5.78952Z\"\n fill={fill}\n />\n <path\n d=\"M5.00041 10C4.56883 10 4.21094 9.64211 4.21094 9.21053V0.789474C4.21094 0.357895 4.56883 0 5.00041 0C5.43199 0 5.78988 0.357895 5.78988 0.789474V9.21053C5.78988 9.64211 5.43199 10 5.00041 10Z\"\n fill={fill}\n />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface PrintIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const UsersIcon = ({ fill = 'currentColor', ...props }: PrintIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M12.0003 5.27318C11.9803 5.27318 11.967 5.27318 11.947 5.27318H11.9136C10.6536 5.23318 9.71362 4.25985 9.71362 3.05984C9.71362 1.83318 10.7136 0.839844 11.9336 0.839844C13.1536 0.839844 14.1536 1.83984 14.1536 3.05984C14.147 4.26651 13.207 5.23985 12.007 5.27985C12.007 5.27318 12.007 5.27318 12.0003 5.27318ZM11.9336 1.83318C11.2603 1.83318 10.7136 2.37985 10.7136 3.05318C10.7136 3.71318 11.227 4.24652 11.887 4.27318C11.8936 4.26652 11.947 4.26652 12.007 4.27318C12.6536 4.23985 13.1536 3.70652 13.1603 3.05318C13.1603 2.37985 12.6136 1.83318 11.9336 1.83318Z\"\n fill={fill}\n />\n <path\n d=\"M12.0075 10.1871C11.7475 10.1871 11.4875 10.1671 11.2275 10.1204C10.9541 10.0738 10.7741 9.81376 10.8208 9.54042C10.8675 9.26709 11.1275 9.08709 11.4008 9.13376C12.2208 9.27376 13.0875 9.12043 13.6675 8.73376C13.9808 8.5271 14.1475 8.26709 14.1475 8.00709C14.1475 7.74709 13.9741 7.49375 13.6675 7.28709C13.0875 6.90042 12.2075 6.74709 11.3808 6.89376C11.1075 6.94709 10.8475 6.76042 10.8008 6.48709C10.7541 6.21376 10.9341 5.95376 11.2075 5.90709C12.2941 5.71376 13.4208 5.92042 14.2208 6.45375C14.8075 6.84709 15.1475 7.40709 15.1475 8.00709C15.1475 8.60042 14.8141 9.1671 14.2208 9.5671C13.6141 9.9671 12.8275 10.1871 12.0075 10.1871Z\"\n fill={fill}\n />\n <path\n d=\"M3.98031 5.27399C3.97365 5.27399 3.96698 5.27399 3.96698 5.27399C2.76698 5.23399 1.82698 4.26065 1.82031 3.06065C1.82031 1.83398 2.82031 0.833984 4.04031 0.833984C5.26031 0.833984 6.26031 1.83399 6.26031 3.05399C6.26031 4.26065 5.32031 5.23399 4.12031 5.27399L3.98031 4.77399L4.02698 5.27399C4.01365 5.27399 3.99365 5.27399 3.98031 5.27399ZM4.04698 4.27399C4.08698 4.27399 4.12031 4.27398 4.16031 4.28065C4.75365 4.25398 5.27365 3.72065 5.27365 3.06065C5.27365 2.38732 4.72698 1.84065 4.05365 1.84065C3.38031 1.84065 2.83365 2.38732 2.83365 3.06065C2.83365 3.71398 3.34031 4.24065 3.98698 4.28065C3.99365 4.27398 4.02031 4.27399 4.04698 4.27399Z\"\n fill={fill}\n />\n <path\n d=\"M3.97325 10.1871C3.15325 10.1871 2.36658 9.9671 1.75992 9.5671C1.17325 9.17376 0.833252 8.60709 0.833252 8.00709C0.833252 7.41376 1.17325 6.84709 1.75992 6.45375C2.55992 5.92042 3.68658 5.71376 4.77325 5.90709C5.04659 5.95376 5.22659 6.21376 5.17992 6.48709C5.13325 6.76042 4.87325 6.94709 4.59992 6.89376C3.77325 6.74709 2.89992 6.90042 2.31325 7.28709C1.99992 7.49375 1.83325 7.74709 1.83325 8.00709C1.83325 8.26709 2.00659 8.5271 2.31325 8.73376C2.89325 9.12043 3.75992 9.27376 4.57992 9.13376C4.85325 9.08709 5.11325 9.27376 5.15992 9.54042C5.20659 9.81376 5.02659 10.0738 4.75325 10.1204C4.49325 10.1671 4.23325 10.1871 3.97325 10.1871Z\"\n fill={fill}\n />\n <path\n d=\"M8.00023 10.2537C7.98023 10.2537 7.96689 10.2537 7.94689 10.2537H7.91356C6.65356 10.2137 5.71356 9.24031 5.71356 8.04031C5.71356 6.81365 6.71356 5.82031 7.93356 5.82031C9.15356 5.82031 10.1536 6.82031 10.1536 8.04031C10.1469 9.24698 9.20689 10.2203 8.00689 10.2603C8.00689 10.2536 8.0069 10.2537 8.00023 10.2537ZM7.93356 6.81365C7.26023 6.81365 6.71356 7.36032 6.71356 8.03365C6.71356 8.69365 7.2269 9.22699 7.8869 9.25365C7.89356 9.24699 7.94689 9.24699 8.00689 9.25365C8.65356 9.22032 9.15356 8.68698 9.16023 8.03365C9.16023 7.36698 8.61356 6.81365 7.93356 6.81365Z\"\n fill={fill}\n />\n <path\n d=\"M7.99921 15.1725C7.19921 15.1725 6.39921 14.9658 5.77921 14.5458C5.19254 14.1525 4.85254 13.5925 4.85254 12.9925C4.85254 12.3992 5.18587 11.8258 5.77921 11.4325C7.02587 10.6058 8.97921 10.6058 10.2192 11.4325C10.8059 11.8258 11.1459 12.3858 11.1459 12.9858C11.1459 13.5792 10.8125 14.1525 10.2192 14.5458C9.59921 14.9592 8.79921 15.1725 7.99921 15.1725ZM6.33254 12.2725C6.01921 12.4792 5.85254 12.7392 5.85254 12.9992C5.85254 13.2592 6.02587 13.5125 6.33254 13.7192C7.23254 14.3258 8.75921 14.3258 9.65921 13.7192C9.97254 13.5125 10.1392 13.2525 10.1392 12.9925C10.1392 12.7325 9.96587 12.4792 9.65921 12.2725C8.76587 11.6658 7.23921 11.6725 6.33254 12.2725Z\"\n fill={fill}\n />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface InfoCircleIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const InfoCircleFilledIcon = ({ fill = 'currentColor', ...props }: InfoCircleIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M8 15C9.85652 15 11.637 14.2625 12.9497 12.9497C14.2625 11.637 15 9.85652 15 8C15 6.14348 14.2625 4.36301 12.9497 3.05025C11.637 1.7375 9.85652 1 8 1C6.14348 1 4.36301 1.7375 3.05025 3.05025C1.7375 4.36301 1 6.14348 1 8C1 9.85652 1.7375 11.637 3.05025 12.9497C4.36301 14.2625 6.14348 15 8 15ZM8 4C8.19891 4 8.38968 4.07902 8.53033 4.21967C8.67098 4.36032 8.75 4.55109 8.75 4.75V7.75C8.75 7.94891 8.67098 8.13968 8.53033 8.28033C8.38968 8.42098 8.19891 8.5 8 8.5C7.80109 8.5 7.61032 8.42098 7.46967 8.28033C7.32902 8.13968 7.25 7.94891 7.25 7.75V4.75C7.25 4.55109 7.32902 4.36032 7.46967 4.21967C7.61032 4.07902 7.80109 4 8 4ZM8 12C8.26522 12 8.51957 11.8946 8.70711 11.7071C8.89464 11.5196 9 11.2652 9 11C9 10.7348 8.89464 10.4804 8.70711 10.2929C8.51957 10.1054 8.26522 10 8 10C7.73478 10 7.48043 10.1054 7.29289 10.2929C7.10536 10.4804 7 10.7348 7 11C7 11.2652 7.10536 11.5196 7.29289 11.7071C7.48043 11.8946 7.73478 12 8 12Z\"\n fill={fill}\n />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface DataSetsIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const UnfoldIcon = ({ fill = 'currentColor', ...props }: DataSetsIconProps) => {\n return (\n <svg viewBox=\"0 0 15 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M3.765 3.97l3.109-3.219c0.362-0.375 0.949-0.375 1.311 0l3.109 3.219-0.983 1.018-2.781-2.879-2.781 2.879-0.983-1.018z\"\n fill={fill}\n ></path>\n <path\n d=\"M11.294 12.029l-3.109 3.219c-0.362 0.375-0.949 0.375-1.311 0l-3.109-3.219 0.983-1.018 2.781 2.879 2.781-2.879 0.983 1.018z\"\n fill={fill}\n ></path>\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface DataSetsIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const CrossIcon = ({ fill = 'currentColor', ...props }: DataSetsIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M15.595 13.176c0.282 0.282 0.376 0.565 0.376 0.941s-0.188 0.753-0.376 0.941c-0.471 0.565-1.412 0.565-1.882 0l-5.176-5.176-5.176 5.176c-0.471 0.471-1.412 0.471-1.882 0s-0.376-0.565-0.376-0.941c0-0.376 0.188-0.659 0.376-0.941l5.176-5.176-0.376-0.376-4.988-4.8c-0.282-0.282-0.376-0.565-0.376-0.941s0.188-0.753 0.376-1.035c0.282-0.282 0.659-0.376 0.941-0.376s0.659 0.094 0.941 0.376l5.176 5.176 0.376-0.376 4.894-4.8c0.282-0.282 0.659-0.376 0.941-0.376s0.659 0.094 0.941 0.376c0.282 0.282 0.376 0.565 0.376 0.941s-0.188 0.753-0.376 0.941l-5.176 5.176 5.271 5.271z\"\n fill={fill}\n ></path>\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface MaximizeIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const MaximizeIcon = ({ fill = 'currentColor', ...props }: MaximizeIconProps) => {\n return (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M14 6.5C13.7267 6.5 13.5 6.27333 13.5 6V2.5H10C9.72667 2.5 9.5 2.27333 9.5 2C9.5 1.72667 9.72667 1.5 10 1.5H14C14.2733 1.5 14.5 1.72667 14.5 2V6C14.5 6.27333 14.2733 6.5 14 6.5Z\"\n fill={fill}\n />\n <path\n d=\"M6 14.5H2C1.72667 14.5 1.5 14.2733 1.5 14V10C1.5 9.72667 1.72667 9.5 2 9.5C2.27333 9.5 2.5 9.72667 2.5 10V13.5H6C6.27333 13.5 6.5 13.7267 6.5 14C6.5 14.2733 6.27333 14.5 6 14.5Z\"\n fill={fill}\n />\n <path\n d=\"M8.9998 7.50224C8.87313 7.50224 8.74646 7.45557 8.64646 7.35557C8.45313 7.16224 8.45313 6.84224 8.64646 6.64891L13.6465 1.64891C13.8398 1.45557 14.1598 1.45557 14.3531 1.64891C14.5465 1.84224 14.5465 2.16224 14.3531 2.35557L9.35313 7.35557C9.25313 7.45557 9.12646 7.50224 8.9998 7.50224Z\"\n fill={fill}\n />\n <path\n d=\"M1.9998 14.5022C1.87313 14.5022 1.74646 14.4556 1.64646 14.3556C1.45313 14.1622 1.45313 13.8422 1.64646 13.6489L6.64646 8.64891C6.8398 8.45557 7.1598 8.45557 7.35313 8.64891C7.54646 8.84224 7.54646 9.16224 7.35313 9.35557L2.35313 14.3556C2.25313 14.4556 2.12646 14.5022 1.9998 14.5022Z\"\n fill={fill}\n />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface BusIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const BusIcon = ({ fill = 'currentColor', ...props }: BusIconProps) => {\n return (\n <svg viewBox=\"0 0 17 17\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M15.8835 15.1402H14.4635V15.9702C14.4635 15.9702 14.3735 16.1502 14.3635 16.1702C14.2835 16.2902 14.1435 16.4002 14.0135 16.4402C13.7735 16.5202 12.5035 16.5102 12.2335 16.4702C12.0435 16.4402 11.6635 16.1802 11.6635 15.9602V15.1302H5.28346V15.9602C5.28346 16.1202 4.97346 16.3902 4.82346 16.4302C4.58346 16.5102 3.31346 16.5002 3.04346 16.4602C2.86346 16.4302 2.47346 16.1702 2.47346 15.9502V15.1202H1.04346V2.61023C1.04346 2.13023 1.58346 1.66023 1.97346 1.52023C3.71346 0.870232 6.25346 0.560232 8.10346 0.500232C10.1135 0.440232 13.1635 0.710232 15.0335 1.50023C15.3735 1.64023 15.8835 2.13023 15.8835 2.55023V15.1402ZM11.3035 1.85023H5.62346V3.16023H11.3035V1.85023ZM3.46346 5.16023C3.10346 5.22023 2.84346 5.42023 2.81346 5.83023C2.73346 6.93023 2.87346 8.14023 2.81346 9.26023C2.84346 9.46023 3.02346 9.68023 3.18346 9.76023C3.22346 9.78023 3.42346 9.84023 3.46346 9.84023H8.07346C8.07346 9.84023 8.11346 9.80023 8.11346 9.79023V5.21023L8.07346 5.16023H3.46346ZM8.85346 5.16023C8.85346 5.16023 8.81346 5.20023 8.81346 5.21023V9.79023L8.85346 9.84023H13.4635C13.4635 9.84023 13.6935 9.78023 13.7435 9.76023C13.9135 9.68023 14.0935 9.46023 14.1135 9.26023C14.0635 8.14023 14.1935 6.94023 14.1135 5.83023C14.0935 5.58023 13.9635 5.34023 13.7335 5.24023C13.6835 5.22023 13.4935 5.16023 13.4535 5.16023H8.84346H8.85346ZM13.7335 11.8102C12.3035 11.8502 12.3835 13.9202 13.8135 13.8602C15.2435 13.8002 15.1435 11.7702 13.7335 11.8102ZM2.35346 13.5002C2.87346 14.0702 3.97346 13.9402 4.21346 13.1402C4.51346 12.1402 3.39346 11.5402 2.62346 11.9602C2.08346 12.2502 1.91346 13.0202 2.35346 13.5002ZM11.5535 12.3802C11.7535 12.1702 11.6035 11.8602 11.3435 11.8302H5.57346C5.21346 11.8802 5.17346 12.3402 5.50346 12.4602C7.46346 12.5002 9.44346 12.5002 11.4035 12.4602C11.4435 12.4402 11.5135 12.4102 11.5435 12.3802H11.5535ZM5.58346 13.1502C5.12346 13.2702 5.21346 13.8002 5.66346 13.8302H11.2535C11.7635 13.7802 11.7635 13.2202 11.2835 13.1402H5.58346V13.1502Z\"\n fill={fill}\n />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface CarIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const CarIcon = ({ fill = 'currentColor', ...props }: CarIconProps) => {\n return (\n <svg viewBox=\"0 0 17 15\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M16.3207 7.62978H14.8107C15.2007 8.67978 15.4507 8.61978 16.4807 8.42978C16.5807 8.88978 16.7107 9.77978 16.3207 10.1298C16.0607 10.3698 15.4907 10.3398 15.2907 10.5298C15.1907 10.6298 15.1007 10.9998 14.9307 11.2098C14.0907 12.2898 12.3407 11.9398 11.9307 10.6598L5.78065 10.6398C5.38065 11.8998 3.61065 12.2898 2.78065 11.2398C2.67065 11.0998 2.48065 10.5998 2.45065 10.5798C2.34065 10.5098 1.57065 10.5098 1.27065 10.3698C0.840652 10.1798 0.670652 9.77978 0.630652 9.33978C0.590652 8.85978 0.550652 6.87978 0.650652 6.48978C0.820652 5.82978 2.18065 5.35978 2.63065 4.95978C2.86065 4.74978 3.11065 4.31978 3.34065 4.07978C4.43065 2.94978 5.16065 3.12978 6.65065 3.15978C8.26065 3.19978 10.1107 3.09978 11.3507 4.19978C11.6807 4.48978 12.1507 5.22978 12.3907 5.38978C12.8607 5.68978 14.3707 5.95978 15.0107 6.18978C15.8107 6.48978 16.1207 6.73978 16.3207 7.61978V7.62978ZM7.07065 4.20978C6.52065 4.28978 5.97065 4.07978 5.43065 4.12978C4.61065 4.19978 4.10065 5.12978 3.88065 5.83978L7.07065 5.95978V4.20978ZM9.42065 4.28978C9.01065 4.23978 8.52065 4.32978 8.10065 4.28978V6.03978L11.6907 6.11978C11.1407 5.29978 10.4807 4.41978 9.42065 4.28978ZM3.86065 9.39978C3.05065 9.60978 3.26065 10.9798 4.20065 10.8598C5.23065 10.7198 4.93065 9.11978 3.86065 9.39978ZM13.3407 9.39978C12.3307 9.62978 12.9507 11.3198 13.9107 10.7698C14.6807 10.3298 14.2507 9.19978 13.3407 9.39978Z\"\n fill={fill}\n />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface WayIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const WayIcon = ({ fill = 'currentColor', ...props }: WayIconProps) => {\n return (\n <svg viewBox=\"0 0 17 17\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M4.55288 16.4902L5.19288 15.5902L5.25288 15.5602H13.4829C14.0529 15.4602 14.2729 15.1002 14.3129 14.5502C14.3429 14.1002 14.3629 12.6102 14.2029 12.2602C14.0729 11.9702 13.7629 11.8002 13.4529 11.7602C11.9129 11.6702 10.2329 11.8802 8.71288 11.7602C8.11288 11.7102 7.49288 11.2902 7.23288 10.7502C6.87288 10.0102 7.13288 8.72016 7.05288 7.88016C7.01288 7.48016 6.73288 7.08016 6.32288 7.03016C5.12288 6.87016 3.72288 7.44016 2.90288 6.18016C2.29288 5.25016 2.74288 3.31016 2.60288 2.21016C2.69288 1.31016 3.37288 0.630158 4.26288 0.530158C5.82288 0.610158 7.48289 0.430158 9.03289 0.530158C9.74289 0.580158 10.3929 1.01016 10.6529 1.69016C10.9729 2.52016 10.6929 3.80016 10.7929 4.70016C10.8929 5.60016 11.9129 5.50016 12.5729 5.51016L13.2229 6.43016C12.4529 6.38016 11.5229 6.57016 10.8229 6.20016C9.38288 5.43016 9.97289 3.69016 9.86288 2.36016C9.82289 1.90016 9.50288 1.53016 9.03289 1.47016C7.53289 1.57016 5.84288 1.33016 4.35288 1.47016C3.93288 1.51016 3.58288 1.85016 3.53288 2.27016C3.59288 3.23016 3.45288 4.29016 3.53288 5.23016C3.65288 6.63016 5.85288 5.84016 6.78288 6.19016C8.55288 6.84016 7.79288 8.76016 7.99288 10.1202C8.05288 10.4902 8.41288 10.8002 8.78288 10.8302C10.2829 10.9702 11.9829 10.7202 13.4929 10.8302C14.3629 10.9002 15.0629 11.5202 15.2229 12.3802C15.1029 13.7402 15.7429 15.6902 14.1229 16.3602C14.0229 16.4002 13.7129 16.5102 13.6229 16.5102H4.55288V16.4902Z\"\n fill={fill}\n />\n <path\n d=\"M14.4627 0.540077C15.8127 0.400077 16.9627 1.53008 16.8727 2.88008C16.8027 3.89008 15.9927 5.15008 15.3427 5.90008C14.9727 6.33008 14.7227 6.65008 14.2227 6.12008C13.5127 5.38008 12.5627 3.89008 12.5127 2.85008C12.4527 1.69008 13.3127 0.650077 14.4727 0.540077H14.4627ZM14.4927 1.94008C13.6427 2.10008 13.7627 3.50008 14.7027 3.49008C15.7827 3.47008 15.6927 1.72008 14.4927 1.94008Z\"\n fill={fill}\n />\n <path\n d=\"M3.0828 10.6104C4.2228 10.6104 5.2128 11.5204 5.2728 12.6704C5.3328 13.8204 4.3928 15.2604 3.6628 16.0804C3.4028 16.3804 3.1228 16.7004 2.7228 16.3304C2.0628 15.7104 1.0928 14.1504 0.942799 13.2504C0.712799 11.8804 1.6528 10.6104 3.0728 10.6104H3.0828ZM2.9928 12.0104C1.9928 12.1304 2.1428 13.6704 3.2028 13.5604C4.1828 13.4504 4.0528 11.8904 2.9928 12.0104Z\"\n fill={fill}\n />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface PlaneIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const PlaneIcon = ({ fill = 'currentColor', ...props }: PlaneIconProps) => {\n return (\n <svg viewBox=\"0 0 17 17\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M14.2452 7.25014C14.3752 7.87014 14.5152 8.50014 14.6752 9.14014C14.7052 9.28014 14.7452 9.42014 14.7752 9.56014C14.8852 10.0901 15.0052 10.6101 15.1152 11.1401L16.1052 15.5401L15.1652 16.4901L10.8852 9.06014C9.19516 10.6001 7.51516 12.1501 5.72516 13.5601L6.12516 15.8301L5.17516 16.4901C5.01516 16.3301 4.02516 14.9301 3.92516 14.9301C3.85516 14.9301 2.94516 15.5601 2.77516 15.6501C2.55516 15.7701 2.29516 15.9101 2.06516 16.0001C0.325156 16.6701 1.43516 14.8101 1.82516 14.1601C1.89516 14.0401 2.34516 13.3901 2.35516 13.3401C2.35516 13.2401 0.955156 12.2501 0.795156 12.0901L1.45516 11.1401L3.72516 11.5401C5.13516 9.74014 6.69516 8.07014 8.22516 6.38014L0.785156 2.13014L1.72516 1.18014L6.14516 2.16014L7.72516 2.50014C7.86516 2.54014 8.01516 2.57014 8.15516 2.61014C8.79516 2.76014 9.41516 2.91014 10.0352 3.04014L11.1752 3.28014C12.0252 2.51014 12.6852 1.58014 13.7252 1.05014C14.4952 0.660144 16.3252 0.000143588 16.7152 1.15014C16.9952 1.97014 16.4352 3.30014 15.9852 4.00014C15.4752 4.79014 14.6452 5.40014 14.0152 6.10014L14.2552 7.25014H14.2452Z\"\n fill={fill}\n />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface ShipIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const ShipIcon = ({ fill = 'currentColor', ...props }: ShipIconProps) => {\n return (\n <svg viewBox=\"0 0 17 17\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M8.93797 6.3098L16.198 10.2298L14.178 14.6598C14.108 14.7198 13.878 14.6798 13.768 14.6998C12.948 14.8098 12.098 15.9798 11.338 15.9798C10.578 15.9798 9.73797 14.7998 8.93797 14.7198L8.91797 8.2998C8.82797 8.0098 8.42797 8.0698 8.41797 8.3798V14.7198C7.59797 14.8098 6.72797 16.0298 5.94797 15.9798C5.21797 15.9298 4.41797 14.8398 3.60797 14.6998C3.49797 14.6798 3.29797 14.6998 3.23797 14.6498L1.16797 10.2798L8.41797 6.2998V7.4098C8.41797 7.6298 8.93797 7.6298 8.93797 7.4098V6.2998V6.3098Z\"\n fill={fill}\n />\n <path\n d=\"M13.7079 5.05V8.28C13.6179 8.26 13.5279 8.21 13.4479 8.17C11.8479 7.33 10.2779 6.42 8.68795 5.58C6.99795 6.46 5.34795 7.43 3.64795 8.28V5.05C5.34795 4.49 7.00795 3.83 8.69795 3.25L13.7179 5.05H13.7079ZM6.79795 4.86C6.72795 4.86 5.99795 5.14 5.94795 5.17C5.75795 5.32 5.87795 5.65 6.16795 5.62C6.24795 5.62 6.91795 5.37 6.97795 5.33C7.17795 5.17 7.05795 4.83 6.79795 4.86ZM10.4779 4.86C10.2479 4.89 10.1679 5.2 10.3779 5.34C10.4579 5.39 11.0279 5.61 11.1279 5.62C11.4579 5.67 11.5979 5.36 11.3779 5.18C11.3079 5.13 10.5479 4.86 10.4779 4.86ZM5.34795 5.44C5.26795 5.46 4.62795 5.7 4.58795 5.74C4.38795 5.92 4.54795 6.22 4.80795 6.19C4.89795 6.18 5.59795 5.92 5.64795 5.87C5.84795 5.69 5.66795 5.38 5.34795 5.44ZM11.6879 5.48C11.5379 5.6 11.6079 5.83 11.7679 5.92C11.8579 5.97 12.4179 6.17 12.5079 6.18C12.8479 6.22 12.9179 5.86 12.7079 5.72C12.6279 5.67 12.0779 5.46 11.9879 5.44C11.8979 5.43 11.7679 5.42 11.6979 5.47L11.6879 5.48Z\"\n fill={fill}\n />\n <path d=\"M9.57832 0.5V3.02L8.66832 2.69L7.77832 3.02V0.5H9.57832Z\" fill={fill} />\n <path\n d=\"M6.19799 16.5001L6.54799 16.3901C7.23799 16.1701 7.99799 15.1801 8.72799 15.2101C9.41799 15.2401 10.138 16.1801 10.808 16.3901L11.158 16.5001H6.18799H6.19799Z\"\n fill={fill}\n />\n <path\n d=\"M0.868164 16.4998L1.21816 16.3898C1.85816 16.1398 2.67816 15.2398 3.29816 15.2098C3.91816 15.1798 4.66816 15.9898 5.22816 16.2798L5.79816 16.4998H0.868164Z\"\n fill={fill}\n />\n <path\n d=\"M11.5481 16.4998L12.1181 16.2798C12.6781 15.9898 13.4281 15.1798 14.0481 15.2098C14.6681 15.2398 15.4881 16.1298 16.1281 16.3898L16.4781 16.4998H11.5381H11.5481Z\"\n fill={fill}\n />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface FileIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const FileIcon = ({ fill = 'currentColor', ...props }: FileIconProps) => {\n return (\n <svg viewBox=\"0 0 16 17\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M16 0.5V11.68L11.19 16.49H0V0.5H16ZM14.49 2.01H1.51V14.98H10.21V10.7H14.5V2.01H14.49ZM13.45 12.09H11.59V13.94L13.45 12.09Z\"\n fill={fill}\n />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface IosIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const IosIcon = ({ fill = 'currentColor', ...props }: IosIconProps) => {\n return (\n <svg viewBox=\"0 0 17 17\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M14.2026 11.7603C14.1126 11.7203 14.0426 11.6803 13.9726 11.6503C13.3326 11.2203 12.9126 10.4803 12.8726 9.68029C12.8326 8.92029 13.1326 8.22029 13.7026 7.75029C13.7926 7.67029 13.8926 7.62029 13.9826 7.57029C14.1726 7.46029 14.3726 7.33029 14.4126 7.12029C14.4526 6.94029 14.3726 6.75029 14.1826 6.51029C13.5226 5.66029 12.3526 5.12029 11.2026 5.12029C11.1226 5.12029 11.0526 5.12029 10.9626 5.13029C10.5226 5.16029 10.1426 5.28029 9.77263 5.40029C9.40263 5.53029 9.05263 5.64029 8.66263 5.64029C8.48263 5.64029 8.31263 5.61029 8.12263 5.56029C7.89263 5.50029 7.68263 5.43029 7.49263 5.37029C6.92263 5.19029 6.43263 5.05029 5.91263 5.05029C5.35263 5.05029 4.80263 5.21029 4.17263 5.59029C2.91263 6.33029 2.19263 7.63029 2.09263 9.35029C1.96263 11.7903 3.16263 14.6003 4.89263 15.9103C5.39263 16.3003 5.86263 16.4803 6.34263 16.4803C6.74263 16.4803 7.10263 16.3503 7.46263 16.2303C7.85263 16.0903 8.24263 15.9503 8.71263 15.9503C8.77263 15.9503 8.84263 15.9503 8.91263 15.9603C9.20263 15.9903 9.47263 16.0903 9.76263 16.2103C10.0126 16.3103 10.2826 16.4203 10.5826 16.4603C10.6826 16.4703 10.7826 16.4903 10.8826 16.4903C11.5426 16.4903 12.1326 16.2403 12.6826 15.7203C13.2726 15.1503 14.0026 14.0703 14.4226 13.2603C14.7226 12.6703 14.7926 12.4903 14.8026 12.4003C14.8326 12.0503 14.4526 11.8703 14.1826 11.7403L14.2026 11.7603ZM5.44263 15.0203C4.08263 13.8703 2.85263 11.1303 3.18263 8.89029C3.32263 8.02029 3.74263 6.88029 5.05263 6.32029C5.38263 6.18029 5.69263 6.12029 6.02263 6.12029C6.47263 6.12029 6.88263 6.25029 7.31263 6.38029C7.78263 6.53029 8.24263 6.70029 8.80263 6.70029C8.93263 6.70029 9.04263 6.69029 9.17263 6.67029C9.41263 6.64029 9.62263 6.56029 9.84263 6.47029C9.95263 6.43029 10.0826 6.38029 10.1926 6.34029C10.5726 6.24029 10.9326 6.19029 11.2626 6.19029C11.9826 6.19029 12.6026 6.42029 13.1126 6.88029C12.2426 7.54029 11.7726 8.55029 11.8226 9.68029C11.8826 10.9003 12.5526 12.0103 13.5726 12.6503C13.2026 13.3303 12.7626 14.0903 12.1926 14.7203C11.7226 15.2403 11.3426 15.4503 10.9226 15.4503C10.7726 15.4503 10.6226 15.4203 10.4726 15.3703C10.2326 15.2903 10.0426 15.2303 9.88263 15.1703C9.49263 15.0203 9.19263 14.9203 8.68263 14.9203C8.54263 14.9203 8.38263 14.9203 8.19263 14.9503C7.79263 15.0003 7.46263 15.1303 7.16263 15.2403C6.88263 15.3403 6.63263 15.4403 6.37263 15.4403C6.08263 15.4403 5.78263 15.3003 5.45263 15.0203H5.44263Z\"\n fill={fill}\n />\n <path\n d=\"M10.9426 0.500234C10.8826 0.500234 10.8326 0.510234 10.7526 0.510234C9.89258 0.620234 9.01258 1.17023 8.39258 1.96023C7.82258 2.70023 7.57258 3.54023 7.68258 4.31023C7.71258 4.51023 7.83258 4.85023 8.37258 4.85023C8.57258 4.85023 8.77258 4.80023 8.94258 4.77023C10.4026 4.44023 11.6926 2.64023 11.5426 1.12023C11.5126 0.850234 11.4126 0.490234 10.9326 0.490234L10.9426 0.500234ZM8.73258 3.73023C8.87258 2.80023 9.56258 1.98023 10.4726 1.69023C10.2926 2.61023 9.65258 3.52023 8.73258 3.73023Z\"\n fill={fill}\n />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface AndroidIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const AndroidIcon = ({ fill = 'currentColor', ...props }: AndroidIconProps) => {\n return (\n <svg viewBox=\"0 0 17 17\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M13.0054 7.9201C12.9254 7.0301 12.1654 6.2901 11.2454 6.1901C10.7254 6.1301 9.84544 6.1001 8.87544 6.1001C7.95544 6.1001 7.12544 6.1301 6.62544 6.1801C5.60544 6.2801 4.88544 7.0501 4.80544 8.1201C4.73544 9.0901 4.70544 11.0701 4.82544 11.9701C4.93544 12.7301 5.47544 13.3501 6.23544 13.6001C6.24544 13.7801 6.23544 13.9801 6.22544 14.1901C6.19544 15.0901 6.13544 16.4401 7.40544 16.5001H7.49544C7.86544 16.5001 8.15544 16.3901 8.36544 16.1701C8.78544 15.7401 8.76544 14.9901 8.74544 14.3301C8.73544 14.0201 8.72544 13.7301 8.81544 13.6501H9.07544V15.4301C9.07544 15.6001 9.35544 16.0501 9.38544 16.1001C9.60544 16.3601 9.93544 16.5001 10.3054 16.5001C10.8554 16.5001 11.4654 16.1701 11.5754 15.5401C11.6054 15.3601 11.5854 14.8901 11.5754 14.4301C11.5654 14.1401 11.5554 13.7601 11.5454 13.6101C12.3654 13.3401 12.9254 12.6901 13.0054 11.9101C13.0954 10.9101 13.0954 8.9401 13.0054 7.9201ZM7.65544 15.3401C7.65544 15.3401 7.57544 15.4001 7.49544 15.4001C7.42544 15.4001 7.37544 15.3701 7.35544 15.3101C7.30544 15.1201 7.28544 13.7401 7.23544 13.6601C7.24544 13.6601 7.27544 13.6501 7.39544 13.6501H7.65544V15.3401ZM10.0854 13.6601C10.0854 13.6601 10.1154 13.6501 10.2354 13.6501H10.4954V15.3401C10.4954 15.3401 10.4154 15.4001 10.3354 15.4001C10.2654 15.4001 10.2154 15.3701 10.1954 15.3101C10.1454 15.1201 10.1254 13.7401 10.0854 13.6601ZM11.9154 11.7301C11.8654 12.2101 11.5554 12.5301 11.0854 12.5701C10.7554 12.6001 10.5154 12.6301 10.0954 12.6101C9.65544 12.5901 9.42544 12.5801 9.25544 12.5801C8.46544 12.5701 8.27544 12.6601 7.56544 12.6401C7.35544 12.6401 7.05544 12.6201 6.69544 12.5801C6.20544 12.4801 5.94544 12.1801 5.89544 11.6701C5.81544 10.8601 5.80544 8.8501 5.90544 8.1201C5.95544 7.6801 6.23544 7.3701 6.57544 7.2801C6.73544 7.2601 6.96544 7.2401 7.23544 7.2301C7.36544 7.2301 7.76544 7.2001 8.59544 7.1801C9.55544 7.1701 9.25544 7.2001 10.1054 7.1801C10.2354 7.1801 10.6054 7.1801 11.0754 7.2501C11.4554 7.3201 11.6354 7.3901 11.7554 7.5301C11.9054 7.7101 11.9154 7.9201 11.9154 8.0301C11.9654 9.1101 12.0754 10.2301 11.9154 11.7201V11.7301Z\"\n fill={fill}\n />\n <path\n d=\"M11.3952 1.66C10.7352 0.92 9.82522 0.5 8.90522 0.5C8.79522 0.5 8.68522 0.51 8.57522 0.52C6.96522 0.7 5.62522 2.14 5.52522 3.8C5.46522 4.69 5.92522 5.7 6.87522 5.84C7.35522 5.9 8.22522 5.91 8.70522 5.91C9.51522 5.91 10.3452 5.89 10.8052 5.85C11.5552 5.78 12.1952 5.14 12.2852 4.36C12.3952 3.41 12.0752 2.42 11.3952 1.66ZM8.98522 4.82C8.28522 4.82 7.56522 4.8 7.19522 4.76C6.94522 4.73 6.78522 4.63 6.70522 4.45C6.47522 3.97 6.76522 3.09 7.05522 2.64C7.42522 2.06 8.13522 1.64 8.81522 1.6H8.91522C9.81522 1.6 10.7352 2.27 11.0452 3.17C11.1852 3.6 11.2852 4.21 11.0852 4.53C11.0052 4.66 10.8752 4.74 10.6852 4.76C10.3252 4.8 9.66522 4.82 8.98522 4.82Z\"\n fill={fill}\n />\n <path\n d=\"M4.45531 7.78014C4.34531 7.26014 3.84531 6.89014 3.23531 6.89014C2.87531 6.89014 2.54531 7.02014 2.32531 7.24014C2.13531 7.43014 1.99531 7.80014 1.97531 8.05014C1.90531 8.62014 1.88531 10.6801 1.98531 11.2701C2.11531 11.9401 2.70531 12.2401 3.23531 12.2401C3.87531 12.2401 4.38531 11.8401 4.46531 11.2701C4.54531 10.7801 4.55531 8.25014 4.45531 7.78014ZM3.24531 7.98014C3.24531 7.98014 3.37531 7.98014 3.39531 8.17014C3.45531 8.71014 3.46531 10.5401 3.38531 11.0001C3.37531 11.1101 3.31531 11.1701 3.25531 11.1701C3.16531 11.1701 3.07531 11.0701 3.05531 10.8301C3.00531 10.2601 2.97531 8.71014 3.05531 8.18014C3.07531 8.09014 3.15531 7.99014 3.20531 7.98014H3.24531Z\"\n fill={fill}\n />\n <path\n d=\"M15.8355 7.99014C15.7655 7.34014 15.2555 6.89014 14.5955 6.89014C14.5255 6.89014 14.4455 6.89014 14.3655 6.91014C13.8555 6.99014 13.4355 7.38014 13.3555 7.85014C13.2455 8.46014 13.2755 10.5401 13.3355 11.1401C13.4155 11.9001 14.0255 12.2401 14.5955 12.2401C15.2055 12.2401 15.7155 11.8701 15.8155 11.3401C15.9255 10.8001 15.9055 8.57014 15.8355 7.99014ZM14.6055 7.99014C14.6755 7.99014 14.7355 7.99014 14.7555 8.17014C14.8155 8.71014 14.8255 10.5501 14.7555 11.0001C14.7355 11.1101 14.6855 11.1601 14.6055 11.1601C14.5255 11.1601 14.4355 11.1101 14.4155 10.9501C14.3455 10.3601 14.3555 8.73014 14.4255 8.18014C14.4455 8.00014 14.4655 8.00014 14.5555 7.99014H14.6055Z\"\n fill={fill}\n />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface MicrosoftIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const MicrosoftIcon = ({ fill = 'currentColor', ...props }: MicrosoftIconProps) => {\n return (\n <svg viewBox=\"0 0 16 17\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M15.9805 6.96004V6.61004C16.0005 5.75004 15.9805 4.88004 15.9805 4.03004C15.9605 3.03004 15.9505 2.04004 15.9605 1.02004C15.9305 0.740039 15.7005 0.540039 15.3305 0.540039C15.3105 0.540039 7.92049 2.02004 7.92049 2.02004C7.64049 2.10004 7.48049 2.18004 7.44049 2.58004C7.36049 3.45004 7.39049 4.39004 7.42049 5.30004C7.45049 6.12004 7.49049 6.98004 7.44049 7.75004C7.41049 7.96004 7.52049 8.14004 7.87049 8.31004C9.04049 8.34004 10.2205 8.34004 11.4105 8.34004C12.6905 8.34004 13.9805 8.34004 15.2405 8.32004L15.6005 8.29004C15.7005 8.24004 15.9105 8.14004 15.9505 7.85004C15.9805 7.62004 15.9805 7.27004 15.9705 6.96004H15.9805ZM14.8305 1.81004V7.21004H8.59049V3.04004L14.8305 1.81004Z\"\n fill={fill}\n />\n <path\n d=\"M15.9806 10.6102V10.0502C16.0006 9.74018 16.0006 9.41018 15.9606 9.14018C15.9406 9.07018 15.9406 8.96018 15.8406 8.84018C15.7906 8.77018 15.6306 8.69018 15.5106 8.68018H7.87056C7.80056 8.68018 7.72056 8.73018 7.67056 8.76018C7.59056 8.84018 7.44056 8.97018 7.44056 9.20018C7.49056 9.99018 7.46056 10.8502 7.42056 11.6802C7.39056 12.5902 7.35056 13.5202 7.44056 14.4102C7.47056 14.8202 7.69056 14.9002 7.95056 14.9902C9.17056 15.3002 10.4706 15.5202 11.7206 15.7302C12.8906 15.9302 14.0906 16.1402 15.2406 16.4202C15.2606 16.4402 15.3906 16.4402 15.3906 16.4402C15.9706 16.4402 15.9706 15.8602 15.9706 15.4702C16.0006 13.8702 15.9906 12.2102 15.9706 10.6002L15.9806 10.6102ZM8.59056 13.9102V9.81018H14.8306V15.1602L8.59056 13.9102Z\"\n fill={fill}\n />\n <path\n d=\"M7.14065 11.6202C7.11065 10.8602 7.07065 10.0702 7.12065 9.32018C7.10065 8.94018 6.87066 8.68018 6.51065 8.68018L0.470655 8.70018C0.220655 8.75018 0.0606546 9.00018 0.0406546 9.28018C0.0906546 9.81018 0.0606546 10.4202 0.0206546 11.0102C-0.00934539 11.6702 -0.0493454 12.3402 0.0406546 12.9502C0.0906546 13.3902 0.340655 13.4802 0.600655 13.5402C1.55065 13.8002 2.59065 14.0002 3.58065 14.1802C4.50065 14.3402 5.47065 14.5302 6.39065 14.7702H6.52065C6.68065 14.7702 7.06065 14.7202 7.11065 14.1402C7.19065 13.3302 7.16066 12.4602 7.13065 11.6202H7.14065ZM1.22065 12.4602V9.81018H5.94065V13.4802L1.22065 12.4602Z\"\n fill={fill}\n />\n <path\n d=\"M7.13046 2.83C7.06046 2.3 6.70046 2.25 6.54046 2.25C6.52046 2.25 6.36046 2.27 6.34046 2.27C5.45046 2.5 4.53046 2.68 3.61046 2.85C2.61046 3.03 1.59046 3.23 0.620459 3.49C0.290459 3.59 0.0904587 3.67 0.0604587 4.13C-0.00954127 4.74 0.0304587 5.4 0.0404587 6.02C0.0704587 6.6 0.0904587 7.17 0.0604587 7.76C0.110459 8.12 0.320459 8.34 0.690459 8.34C1.04046 8.32 1.40046 8.31 1.78046 8.31C2.34046 8.31 2.92046 8.33 3.49046 8.36C4.07046 8.38 4.64046 8.39 5.22046 8.39C5.68046 8.39 6.13046 8.39 6.55046 8.34C7.03046 8.31 7.13046 7.98 7.14046 7.67C7.09046 6.96 7.12046 6.16 7.16046 5.38C7.19046 4.52 7.24046 3.64 7.14046 2.83H7.13046ZM5.94046 3.54V7.21H1.22046V4.58L5.94046 3.54Z\"\n fill={fill}\n />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface FolderAlertIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const FolderAlertIcon = ({ fill = 'currentColor', ...props }: FolderAlertIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M13.7386 2.02034H14.8293C15.3096 2.02034 16 2.77034 16.01 3.26034V12.1703C15.97 12.6703 15.6498 13.1203 15.1995 13.3403C14.7492 13.5603 14.2989 13.4503 13.8086 13.4803C13.0181 15.7803 10.2764 16.7303 8.21513 15.3903C7.50469 14.9303 7.0344 14.2503 6.7242 13.4703H1.24078C0.590369 13.3703 0.08005 12.8603 0 12.2003V3.26034C0 2.77034 0.700438 2.02034 1.18074 2.02034H2.27142V0.300345C2.27142 0.240345 2.47154 0.0303449 2.55159 0.0203449L13.3684 0.000344886C13.4784 -0.00965511 13.7286 0.200345 13.7286 0.300345V2.02034H13.7386ZM12.848 0.880345H3.15197V2.01034H4.77298C5.40338 2.01034 6.44403 3.49035 6.90431 3.95035C6.92433 3.97035 6.93433 4.00034 6.93433 4.03034H12.858V0.880345H12.848ZM13.9887 12.5903H14.5991C14.8593 12.5903 15.1395 12.2303 15.1194 11.9803V5.53034C15.0894 5.15034 14.8793 4.95035 14.5091 4.92034H6.63415C6.54409 4.90034 6.47405 4.86034 6.41401 4.80034C5.9237 4.35035 5.48343 3.65035 5.00313 3.16035C4.83302 2.99035 4.74296 2.93035 4.50281 2.91035C3.54221 2.97035 2.49156 2.84035 1.54096 2.91035C1.15072 2.94035 0.930582 3.12034 0.890557 3.52034V12.0203C0.890557 12.2703 1.17073 12.6003 1.41088 12.6003H6.5641C6.37398 10.0903 8.61539 8.12035 11.0969 8.65034C12.8981 9.04035 14.1588 10.7603 13.9987 12.6003L13.9887 12.5903ZM15.1194 4.12034V3.41035C15.1194 3.20035 14.8093 2.89035 14.5991 2.89035H13.7286V4.02034H14.8193C14.8193 4.02034 15.0994 4.14035 15.1194 4.11034V4.12034ZM10.1363 9.45035C7.91495 9.55035 6.67417 12.1003 7.97498 13.9203C9.13571 15.5603 11.6573 15.4603 12.6879 13.7303C13.8386 11.8003 12.3877 9.35034 10.1363 9.45035Z\"\n fill={fill}\n />\n <path\n d=\"M2.07172 9.07031H4.83345C5.28373 9.19031 5.29373 9.82031 4.83345 9.94031H2.09173C1.65146 9.81031 1.63145 9.22031 2.06171 9.07031H2.07172Z\"\n fill={fill}\n />\n <path\n d=\"M2.07172 10.8398H4.83345C5.28373 10.9598 5.29373 11.5898 4.83345 11.7098H2.09173C1.65146 11.5798 1.63145 10.9898 2.06171 10.8398H2.07172Z\"\n fill={fill}\n />\n <path\n d=\"M10.1371 10.3314C10.3772 10.2814 10.6674 10.4014 10.7074 10.6614C10.7475 10.9214 10.7475 12.1214 10.7074 12.3914C10.6374 12.8414 9.90694 12.8314 9.82689 12.3914C9.78687 12.1514 9.78687 10.9014 9.82689 10.6614C9.84691 10.5314 10.007 10.3614 10.1271 10.3314H10.1371Z\"\n fill={fill}\n />\n <path\n d=\"M10.1372 13.3494C10.7876 13.2194 10.8976 14.0694 10.4273 14.2094C9.76694 14.4094 9.61684 13.4594 10.1372 13.3494Z\"\n fill={fill}\n />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface RelationIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const RelationIcon = ({ fill = 'currentColor', ...props }: RelationIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M8.40767 2.3898C7.62079 0.918033 6.09073 0 4.41496 0C4.26924 0 4.13809 0 3.99237 0.0291439C2.50603 0.145719 1.19456 1.04918 0.495103 2.43352C-0.218923 3.84699 -0.160635 5.49363 0.669966 6.8051C1.486 8.13115 2.89947 8.91803 4.45867 8.91803C6.01787 8.91803 7.34392 8.17486 8.15995 6.93625C9.09255 5.53734 9.17998 3.84699 8.40767 2.3898ZM4.47324 8.102C3.7155 8.102 2.98691 7.86885 2.34574 7.43169C2.47689 6.68852 2.98691 6.03279 3.68636 5.77049C3.93408 5.66849 4.19638 5.62477 4.45867 5.62477C5.26013 5.62477 5.98873 6.0765 6.35303 6.79053C6.45503 6.99454 6.57161 7.37341 6.57161 7.41712C6.52789 7.46084 6.17816 7.66485 6.09073 7.70856C5.58071 7.97086 5.04155 8.102 4.47324 8.102ZM4.9104 4.6776C4.76468 4.76503 4.61896 4.80874 4.45867 4.80874C4.16723 4.80874 3.89037 4.66302 3.73008 4.40073C3.56978 4.16758 3.55521 3.87614 3.67179 3.59927C3.77379 3.36612 4.03609 3.14754 4.25467 3.1184C4.31295 3.1184 4.37124 3.1184 4.4441 3.1184C4.92498 3.1184 5.20184 3.45355 5.28927 3.74499C5.36213 4.03643 5.31842 4.42987 4.9104 4.69217V4.6776ZM7.22734 6.79053C6.97962 6.06193 6.44046 5.44991 5.69729 5.07104C6.0033 4.73588 6.16359 4.28415 6.11987 3.81785C6.07616 3.26412 5.77015 2.76867 5.2747 2.4918C5.01241 2.34608 4.73554 2.27322 4.4441 2.27322C3.81751 2.27322 3.23463 2.65209 2.95776 3.2204C2.66632 3.80328 2.73918 4.47359 3.16177 5.01275C3.16177 5.01275 3.19091 5.05647 3.23463 5.08561C2.54975 5.37705 1.96687 6.00364 1.69 6.76138C1.69 6.76138 1.67543 6.77596 1.67543 6.8051C1.63171 6.76138 1.57343 6.68853 1.51514 6.60109C0.69911 5.46448 0.582534 4.06557 1.20913 2.82696C1.85029 1.58834 3.07434 0.816029 4.42953 0.816029C4.8084 0.816029 5.20184 0.874317 5.58071 0.990893C6.77561 1.36976 7.67907 2.34608 7.98508 3.61384C8.26195 4.76503 7.98508 5.93078 7.22734 6.79053Z\"\n fill={fill}\n />\n <path\n d=\"M15.3874 9.29697C14.5713 7.91263 13.1433 7.08203 11.555 7.08203C11.4529 7.08203 11.3364 7.08203 11.2198 7.0966C9.52945 7.21318 8.11597 8.21864 7.44566 9.77784C6.77535 11.337 7.02308 13.0565 8.1014 14.3826C8.94657 15.4026 10.1998 16.0001 11.5258 16.0001C13.1724 16.0001 14.6151 15.1549 15.4165 13.7414C16.2034 12.3425 16.1888 10.6959 15.3874 9.29697ZM11.555 15.184C10.8992 15.184 10.258 15.0092 9.64603 14.6449C9.57317 14.6157 9.45659 14.5283 9.42745 14.5283C9.38373 14.3972 9.73346 13.6977 9.90832 13.4791C10.3163 12.9837 10.8846 12.7068 11.5112 12.7068C12.4584 12.7068 13.493 13.348 13.697 14.4554C13.1142 14.9217 12.3564 15.184 11.555 15.184ZM10.6952 11.1039C10.6661 10.7104 10.8701 10.2733 11.3801 10.1859C11.4384 10.1859 11.4967 10.1713 11.555 10.1713C12.1087 10.1713 12.371 10.623 12.3856 11.031C12.3856 11.4536 12.1378 11.8762 11.5258 11.9053C11.0012 11.9053 10.7389 11.4973 10.6952 11.1039ZM14.3091 13.8871C14.0759 13.144 13.493 12.4882 12.779 12.1822C13.1724 11.7305 13.3182 11.1039 13.1287 10.5064C12.9101 9.8507 12.3564 9.41354 11.6715 9.36983H11.555C10.8264 9.36983 10.2289 9.77784 9.98118 10.4482C9.74803 11.0456 9.87918 11.7013 10.3018 12.1822C9.60231 12.4882 9.03401 13.1148 8.75714 13.8871C7.86825 12.8234 7.64967 11.4099 8.2034 10.1276C8.78628 8.75781 10.054 7.89806 11.5112 7.89806C11.6861 7.89806 11.861 7.91263 12.0358 7.9272C13.4056 8.11664 14.5276 9.04924 14.9794 10.3899C15.4019 11.6139 15.1397 12.94 14.3091 13.8871Z\"\n fill={fill}\n />\n <path\n d=\"M14.2213 6.73181C14.2213 6.81924 14.163 6.87753 14.0756 6.87753H13.551C13.551 6.87753 13.4781 6.86295 13.449 6.83381C13.4198 6.80467 13.4052 6.77552 13.4052 6.73181C13.4198 5.65348 12.9972 4.61887 12.1958 3.81742C11.4089 3.03053 10.3889 2.59337 9.29596 2.59337C9.2231 2.59337 9.12109 2.52051 9.12109 2.44765V1.92306C9.12109 1.83563 9.17938 1.77734 9.26681 1.77734C10.5929 1.77734 11.8606 2.31651 12.7932 3.24911C13.7258 4.21086 14.2358 5.4349 14.2213 6.73181Z\"\n fill={fill}\n />\n <path\n d=\"M6.88038 13.551V14.0901C6.88038 14.0901 6.82209 14.2213 6.73466 14.2213H6.67637C5.39404 14.2358 4.15542 13.7113 3.22282 12.7641C2.29022 11.8169 1.76562 10.5491 1.76562 9.26681C1.76562 9.17938 1.83848 9.12109 1.91134 9.12109H2.43593C2.43593 9.12109 2.52337 9.13567 2.55251 9.16481C2.56708 9.19395 2.58165 9.2231 2.58165 9.26681C2.58165 10.3451 3.00424 11.3797 3.79113 12.1812C4.57801 12.9681 5.61262 13.4198 6.70552 13.4198C6.79295 13.4198 6.88038 13.4781 6.88038 13.551Z\"\n fill={fill}\n />\n </svg>\n );\n};\n","import { styled } from 'styled-components';\nimport React from 'react';\nimport { SidebarContext } from './SidebarContext';\n\nexport interface SidebarProps {\n defaultCollapsed?: boolean;\n children: any;\n}\n\ninterface StyledProps {\n $collapsed: boolean;\n}\n\nexport const Sidebar = ({ defaultCollapsed, children }: SidebarProps) => {\n const [collapsed, setCollapsed] = React.useState(!!defaultCollapsed);\n\n return (\n <StyledContainer $collapsed={collapsed}>\n <SidebarContext.Provider\n value={{\n collapsed,\n setCollapsed,\n }}\n >\n {children}\n </SidebarContext.Provider>\n </StyledContainer>\n );\n};\n\nconst StyledContainer = styled.aside<StyledProps>(\n ({ theme, $collapsed }) => `\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n gap: 20px;\n position: sticky;\n z-index: 1000;\n top: 0;\n width: ${theme.sidebar.width};\n padding: 12px;\n height: 100%;\n border-right: 1px solid ${theme.sidebar.border};\n background: ${theme.sidebar.background};\n ${\n $collapsed\n ? `\n width: 65px;\n `\n : ''\n }\n\n &:before {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 25dvh;\n transform: translateY(-100%);\n background: ${theme.sidebar.background};\n border-right: 1px solid ${theme.sidebar.border};\n\n width: ${theme.sidebar.width};\n ${\n $collapsed\n ? `\n width: 65px;\n `\n : ''\n }\n }\n`\n);\n","import { createContext } from 'react';\n\ninterface SidebarContext {\n collapsed: boolean;\n setCollapsed: React.Dispatch<React.SetStateAction<boolean>>;\n}\n\nexport const SidebarContext = createContext<SidebarContext>({\n collapsed: false,\n setCollapsed: () => {},\n});\n","import { SVGProps, useContext } from 'react';\nimport styled from 'styled-components';\nimport { SidebarContext } from './SidebarContext';\n\ninterface SidebarItemBase {\n active?: boolean;\n icon?: React.ComponentType<SVGProps<SVGSVGElement>>;\n label?: string;\n}\n\ninterface SidebarItemAnchor {\n href: string;\n onClick?: (e: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => void;\n target?: '_blank' | '_self' | '_parent' | '_top';\n}\n\ntype StyledProps = {\n $active: SidebarItemBase['active'];\n $collapsed: boolean;\n};\n\ninterface SidebarItemButton {\n type?: 'button' | 'reset' | 'submit';\n onClick?: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;\n}\n\nexport type SidebarItemProps = SidebarItemBase & (SidebarItemAnchor | SidebarItemButton);\n\nexport const SidebarItem = ({ active, icon: Icon, label, ...props }: SidebarItemProps) => {\n const { collapsed } = useContext(SidebarContext);\n\n const isAnchor = 'href' in props;\n\n return (\n <StyledItem\n title={collapsed ? label : ''}\n as={isAnchor ? 'a' : 'button'}\n $collapsed={collapsed}\n $active={active}\n {...props}\n >\n {Icon && <Icon aria-label={label} width={16} height={16} />}\n <StyledText $collapsed={collapsed} $active={active}>\n {label}\n </StyledText>\n </StyledItem>\n );\n};\n\nconst StyledText = styled.span<StyledProps>(\n ({ $collapsed }) => `\n margin-top: 2px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n width: 100%;\n text-align: left;\n display: inline-block;\n font-weight: 500;\n font-size: 14px;\n line-height: 1.49;\n font-family: Inter;\n\n ${\n $collapsed &&\n `\n & {\n width: 0;\n }\n `\n }\n`\n);\n\nconst StyledItem = styled.a<StyledProps>(\n ({ $active, $collapsed, theme }) => `\n display: flex;\n align-items: center;\n gap: 12px;\n padding-inline: 12px;\n height: 40px;\n min-width: 40px;\n border: none;\n cursor: pointer;\n text-decoration: none;\n border-radius: 8px;\n color: ${theme.sidebar.text.default};\n background: ${theme.sidebar.item.default.background};\n transition: background 0.3s ease-in-out, color 0.3s ease-in-out;\n position: relative;\n ${\n $active\n ? `\n background: ${theme.sidebar.item.active.background};\n color: ${theme.sidebar.text.active};\n `\n : ''\n }\n ${$collapsed ? `gap: 0;` : ''}\n\n\n\n &:hover {\n background: ${theme.sidebar.item.hover.background};\n color: ${theme.sidebar.text.hover};\n }\n\n &:before {\n content: '';\n position: absolute;\n left: -12px;\n top: 0;\n height: 100%;\n width: 0px;\n border-top-right-radius: 5px;\n border-bottom-right-radius: 5px;\n background: rgba(0, 0, 0, 0);\n transition: background 0.4s ease-in-out, width 0.3s ease-in-out;\n ${\n $active\n ? `\n background: ${theme.sidebar.text.active};\n width: 5px;\n `\n : ''\n }\n }\n\n svg {\n flex-shrink: 0;\n fill: currentColor;\n }\n`\n);\n","import { useContext } from 'react';\nimport { SidebarContext } from './SidebarContext';\nimport { styled } from 'styled-components';\n\ntype StyledProps = {\n $collapsed: boolean;\n};\n\nexport const SidebarDelimeter = () => {\n const { collapsed } = useContext(SidebarContext);\n return <StyledDelimeter $collapsed={collapsed} />;\n};\n\nconst StyledDelimeter = styled.div<StyledProps>(\n ({ $collapsed, theme }) => `\n min-width: 32px;\n width: 0;\n\n border-bottom: 1px dashed ${theme.sidebar.delimeter.color};\n margin-block: 8px;\n margin-left: 4px;\n\n ${\n !$collapsed &&\n `\n & {\n width: 100%;\n margin-left: 0;\n }\n `\n }\n`\n);\n","import { CSSProperties, styled } from 'styled-components';\n\nexport interface SidebarSectionProps {\n grow?: number;\n shrink?: number;\n basis?: CSSProperties['flexBasis'];\n items: React.ReactElement[];\n}\n\nexport const SidebarSection = ({ grow, shrink, basis, items }: SidebarSectionProps) => {\n return (\n <StyledSection $grow={grow} $shrink={shrink} $basis={basis}>\n {items}\n </StyledSection>\n );\n};\n\ninterface StyledProps {\n $grow?: number;\n $shrink?: number;\n $basis?: CSSProperties['flexBasis'];\n}\n\nconst StyledSection = styled.div<StyledProps>(\n ({ $grow = 0, $shrink = 1, $basis = '100%' }) => `\n flex: ${$grow} ${$shrink} ${$basis};\n display: flex;\n flex-direction: column;\n gap: 1px;\n `\n);\n","import styled from 'styled-components';\nimport { CSSProperties, ElementType } from 'react';\nimport { ColorVariant, createComponent, FabricComponent, TypographyVariant } from '../../Theme';\nimport { resolveThemeColor } from '../../Theme/utils';\n\ntype TypographyProps = FabricComponent<{\n style?: CSSProperties;\n variant?: TypographyVariant;\n element?: ElementType;\n children: any;\n weight?: CSSProperties['fontWeight'];\n fontStyle?: CSSProperties['fontStyle'];\n color?: ColorVariant | string;\n className?: string;\n ellipsis?: boolean;\n}> &\n Omit<React.HTMLAttributes<HTMLDivElement>, 'children'>;\n\ntype StyledProps = {\n $variant: TypographyVariant;\n $weight?: CSSProperties['fontWeight'];\n $style?: CSSProperties['fontStyle'];\n $color?: ColorVariant | string;\n $ellipsis?: boolean;\n};\n\n// Create a styled component that can be dynamically rendered as different HTML elements\nconst StyledTypography = createComponent(\n styled('div')<StyledProps>(({ theme, $variant, $color, $weight = '400', $style = 'initial', $ellipsis }) => {\n // Resolve color from theme if it's a theme color path, or use the direct color value\n\n return `\n font-size: ${theme.typography.variants[$variant].fontSize};\n font-weight: ${$weight};\n font-style: ${$style};\n color: ${resolveThemeColor(theme, $color) || theme.colors.text.main};\n ${$ellipsis ? 'overflow: hidden; text-overflow: ellipsis; white-space: nowrap;' : ''}\n `;\n })\n);\n\nexport const Typography = ({\n variant = 'body',\n element,\n children,\n weight,\n fontStyle,\n color,\n className,\n style,\n ellipsis = false,\n ...props\n}: TypographyProps) => {\n // Determine which HTML element to render based on the variant if not explicitly specified\n const Element = element || (variant.startsWith('h') ? variant : 'p');\n\n return (\n <StyledTypography\n as={Element}\n $variant={variant}\n $weight={weight}\n $style={fontStyle}\n $color={color}\n $ellipsis={ellipsis}\n className={className}\n style={style}\n {...props}\n >\n {children}\n </StyledTypography>\n );\n};\n","import { ReactNode } from 'react';\nimport { styled } from 'styled-components';\n\nexport interface ListMenuProps {\n children: any;\n width?: number;\n}\n\ntype StyledListProps = {\n $width: number;\n};\nexport const ListMenu = ({ children, width = 220 }: ListMenuProps) => {\n return <StyledList $width={width}>{children}</StyledList>;\n};\n\nconst StyledList = styled.ul<StyledListProps>(\n ({ theme, $width }) => `\n margin: 0;\n padding: 20px;\n width: ${$width}px;\n list-style: none;\n height: 100%;\n overflow-y: auto;\n background-color: ${theme.colors.background};\n border-right: 1px solid ${theme.colors.stroke.light};\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n gap: 40px;\n `\n);\n","import { FC } from 'react';\nimport { styled } from 'styled-components';\n\nexport type ListMenuItemBase = {\n active?: boolean;\n label?: string;\n count?: number;\n};\n\nexport type ListMenuItemAnchorProps = {\n href: string;\n onClick?: (e: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => void;\n target?: '_blank' | '_self' | '_parent' | '_top';\n};\n\nexport type ListMenuItemButtonProps = {\n type?: 'button' | 'reset' | 'submit';\n onClick?: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;\n};\n\nexport type ListMenuItemProps = ListMenuItemBase & (ListMenuItemAnchorProps | ListMenuItemButtonProps);\n\ntype StyledProps = {\n $active: ListMenuItemProps['active'];\n};\n\nexport const ListMenuItem = ({ active, label, count, ...props }: ListMenuItemProps) => {\n const Element = 'href' in props ? 'a' : 'button';\n return (\n <StyledItem $active={active}>\n <StyledLink as={'href' in props ? 'a' : 'button'} $active={active} {...props}>\n {label}\n {typeof count === 'number' && <StyledCount $active={active}>{count}</StyledCount>}\n </StyledLink>\n </StyledItem>\n );\n};\nconst StyledItem = styled.li<StyledProps>(\n ({ theme, $active }) => `\n position: relative;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n width: 100%;\n &:not(:last-child) {\n margin-bottom: 4px;\n }\n\n ::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 2px;\n height: ${$active ? '100%' : 0};\n border-radius: 2px;\n transform: translateX(-25%);\n background-color: ${$active ? theme.colors.primary.main : 'transparent'};\n transition: background-color 0.3s ease-in-out, height 0.3s ease-in-out;\n }\n `\n);\n\nconst StyledLink = styled.a<StyledProps>(\n ({ theme, $active }) => `\n display: inline-block;\n \n padding: 8px 10px;\n border: none;\n outline: none;\n cursor: pointer;\n text-decoration: none;\n background-color: transparent;\n border-radius: 8px;\n \n width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n \n font-family: Inter;\n font-weight: 500;\n font-size: 14px;\n line-height: 1.5;\n text-align: left;\n color: ${$active ? theme.colors.primary.main : theme.colors.text.main};\n\n transition: background-color 0.3s ease-in-out, color 0.3s ease-in-out;\n\n &:hover {\n color: ${theme.colors.primary.main};\n }`\n);\n\nconst StyledCount = styled.span<StyledProps>(\n ({ theme, $active }) => `\n margin-left: 8px;\n padding: 2px 4px;\n border-radius: 4px;\n background-color: ${$active ? theme.colors.primary.lightest2 : theme.colors.stroke.lighter};\n color: inherit;\n line-height: 1.5;\n transition: background-color 0.3s ease-in-out, color 0.3s ease-in-out;\n `\n);\n","import { ReactNode } from 'react';\nimport { styled } from 'styled-components';\n\nexport interface ListMenuSectionProps {\n items: any;\n title?: string;\n}\nexport const ListMenuSection = ({ title, items }: ListMenuSectionProps) => {\n return (\n <li>\n {!!title && <StyledTitle>{title}</StyledTitle>}\n <StyledList>{items}</StyledList>\n </li>\n );\n};\n\nconst StyledTitle = styled.h2(\n ({ theme }) => `\n margin: 0 0 15px 0;\n width: 100%;\n padding: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n font-family: Inter;\n font-weight: 600;\n font-size: 14px;\n line-height: 1;\n letter-spacing: 0.03em;\n text-align: left;\n text-transform: uppercase;\n color: ${theme.colors.text.lighter};\n`\n);\n\nconst StyledList = styled.ul(\n ({ theme }) => `\n margin: 0;\n padding: 0;\n width: 180px;\n list-style: none;\n position: relative;\n &::before {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n width: 1px;\n height: 100%;\n background-color: ${theme.colors.stroke.light};\n }\n `\n);\n","import { styled } from 'styled-components';\n\ninterface HeaderProps {\n children?: any;\n}\n\nexport const Header = ({ children }: HeaderProps) => {\n return <StyledContainer>{children}</StyledContainer>;\n};\n\nconst StyledContainer = styled.header(\n ({ theme }) => `\n display: flex;\n position: sticky;\n top: 0;\n z-index: 1000;\n align-items: center;\n justify-content: space-between;\n padding-left: 12px;\n padding-right: 20px;\n height: 56px;\n background-color: ${theme.colors.background};\n border-bottom: 1px solid ${theme.colors.stroke.light};\n\n &:before {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 25dvh;\n transform: translateY(-100%);\n background: ${theme.colors.background};\n }\n`\n);\n","import { styled } from 'styled-components';\n\nexport const HeaderDelimeter = () => {\n return <StyledDelimeter />;\n};\n\nconst StyledDelimeter = styled.div(\n ({ theme }) => `\n height: 32px;\n border-right: 1px dashed ${theme.colors.stroke.main};\n`\n);\n","import { CSSProperties } from 'react';\nimport { styled } from 'styled-components';\n\ninterface HeaderSectionProps {\n grow?: CSSProperties['flexGrow'];\n shrink?: CSSProperties['flexShrink'];\n basis?: CSSProperties['flexBasis'];\n justify?: CSSProperties['justifyContent'];\n children?: React.ReactNode;\n}\n\ninterface StyledProps {\n $grow?: CSSProperties['flexGrow'];\n $shrink?: CSSProperties['flexShrink'];\n $basis?: CSSProperties['flexBasis'];\n $justify?: CSSProperties['justifyContent'];\n}\n\nexport const HeaderSection = ({ grow, shrink, basis, justify, children }: HeaderSectionProps) => {\n return (\n <StyledSection $grow={grow} $shrink={shrink} $basis={basis} $justify={justify}>\n {children}\n </StyledSection>\n );\n};\n\nconst StyledSection = styled.section<StyledProps>(\n ({ $grow = 1, $shrink = 1, $basis = '100%', $justify = 'space-between' }) => `\n display: flex;\n align-items: center;\n justify-content: ${$justify};\n gap: 20px;\n flex-grow: ${$grow};\n flex-shrink: ${$shrink};\n flex-basis: ${$basis};\n`\n);\n","import { styled } from 'styled-components';\n\nexport const Row = styled.tr``;\n","import { styled } from 'styled-components';\n\nexport const HeadCell = styled.th(\n ({ theme }) => `\n padding-top: 15px;\n padding-bottom: 10px;\n padding-right: 15px;\n :not(:first-of-type) {\n padding-left: 15px;\n }\n\n border-bottom: 1px solid ${theme.colors.stroke.light};\n\n font-family: ${theme.typography.fontFamily};\n font-weight: 500;\n font-size: 14px;\n text-wrap: nowrap;\n text-align: left;\n line-height: 1.5;\n color: ${theme.colors.text.main};\n`\n);\n\nexport const Cell = styled.td(\n ({ theme }) => `\n padding-block: 15px;\n padding-right: 15px;\n :not(:first-of-type) {\n padding-left: 15px;\n }\n border-bottom: 1px solid ${theme.colors.stroke.light};\n\n vertical-align: middle;\n font-family: ${theme.typography.fontFamily};\n font-weight: 500;\n font-size: 14px;\n text-wrap: nowrap;\n text-align: left;\n line-height: 1.5;\n color: ${theme.colors.text.main};\n`\n);\n","import { ReactNode, useMemo, CSSProperties } from 'react';\nimport { styled } from 'styled-components';\nimport { Row } from './Row';\nimport { Cell, HeadCell } from './Cell';\n\nexport type ColumnTable<ID = string> = {\n id: ID;\n title: string;\n width?: CSSProperties['width'];\n className?: string;\n};\n\nexport type RenderCellProps<T = string> = {\n rowIndex: number;\n cellIndex: number;\n columnId: T;\n};\n\nexport type RenderHeaderCellProps<T = string> = {\n title: string;\n columnId: T;\n};\n\ninterface TableProps {\n columns: ColumnTable[];\n rowCount: number;\n renderCell: (props: RenderCellProps<any>) => any;\n renderHeaderCell: (props: RenderHeaderCellProps<any>) => any;\n rowIds?: string[];\n}\n\nexport const Table = ({ columns, rowCount, renderCell, renderHeaderCell, rowIds }: TableProps) => {\n const cellCount = columns.length;\n\n const data = useMemo(() => {\n const items: ReactNode[][] = [];\n for (let i = 0; i < rowCount; i++) {\n items[i] = [];\n for (let j = 0; j < cellCount; j++) {\n items[i][j] = renderCell({\n rowIndex: i,\n cellIndex: j,\n columnId: columns[j].id,\n });\n }\n }\n return items;\n }, [rowCount, cellCount, columns, renderCell]);\n\n return (\n <StyledTable>\n <StyledHead>\n <Row>\n {columns.map(({ id, title, width }) => (\n <HeadCell\n key={id}\n style={{\n width,\n }}\n >\n {renderHeaderCell({ title, columnId: id })}\n </HeadCell>\n ))}\n </Row>\n </StyledHead>\n <tbody>\n {data.map((cells, rowIndex) => (\n <Row key={`row-${rowIndex}`} id={rowIds ? rowIds[rowIndex] : `row-${rowIndex}`}>\n {cells.map((cell, cellIndex) => (\n <Cell className={columns[cellIndex]?.className} key={`cell-${cellIndex}`}>\n {cell}\n </Cell>\n ))}\n </Row>\n ))}\n </tbody>\n </StyledTable>\n );\n};\n\nconst StyledTable = styled.table`\n width: 100%;\n border-spacing: 0;\n table-layout: fixed;\n`;\n\nconst StyledHead = styled.thead(\n ({ theme }) => `\n background-color: ${theme.colors.background};\n position: sticky;\n top: 0;\n z-index: 1;\n`\n);\n","import { FC, useCallback, useMemo } from 'react';\nimport { styled } from 'styled-components';\nimport { ChevronRightIcon } from '../IconComponents';\nimport { ChevronLeftIcon } from '../IconComponents';\n\nexport interface PaginationProps {\n total_items: number;\n limit: number;\n offset: number;\n onChangePage: (offset: number) => void;\n}\n\nconst PAGINATION_LIMIT = 9;\nconst DIFF = 2;\nconst VISIBLE_GROUPE = 5;\nconst STEP = 1;\nconst ELLIPSIS = '...';\n\nexport const Pagination = ({ total_items, limit, offset, onChangePage }: PaginationProps) => {\n const currentPage = useMemo(() => (offset ? offset / limit + 1 : 1), [limit, offset]);\n const pages = Math.ceil(total_items / limit);\n const paginationItems: (number | string)[] = useMemo(() => {\n const items = [];\n if (pages <= PAGINATION_LIMIT) {\n for (let i = 1; i <= pages; i += 1) {\n items.push(i);\n }\n } else {\n const firstPage = 1;\n const lastPage = pages;\n items.push(firstPage);\n if (currentPage <= VISIBLE_GROUPE) {\n for (let i = 2; i <= VISIBLE_GROUPE + 2; i += 1) {\n items.push(i);\n }\n items.push(ELLIPSIS, lastPage);\n } else if (currentPage > VISIBLE_GROUPE && currentPage < lastPage - VISIBLE_GROUPE) {\n items.push(ELLIPSIS);\n for (let i = currentPage - DIFF; i <= currentPage + DIFF; i += 1) {\n items.push(i);\n }\n items.push(ELLIPSIS, lastPage);\n } else {\n items.push(ELLIPSIS);\n for (let i = lastPage - VISIBLE_GROUPE - 1; i <= lastPage; i += 1) {\n items.push(i);\n }\n }\n }\n return items;\n }, [currentPage, pages]);\n\n const isDisabled = useCallback(\n (page: number | string) => typeof page === 'string' || page === currentPage,\n [currentPage]\n );\n const onPaginationClick = useCallback(\n (page: number | string) => {\n if (isDisabled(page)) return;\n onChangePage(page as number);\n },\n [onChangePage, isDisabled]\n );\n return (\n <FlexGroup>\n <Button\n aria-label=\"previous page\"\n onClick={() => onPaginationClick(currentPage - STEP)}\n disabled={currentPage === 1}\n >\n <ChevronLeftIcon />\n </Button>\n <StyledList>\n {paginationItems.map((page, idx) => (\n <li key={`pagination-${page}-${idx}`}>\n <Button $current={page === currentPage} onClick={() => onPaginationClick(page)}>\n {page}\n </Button>\n </li>\n ))}\n </StyledList>\n <Button\n aria-label=\"next page\"\n onClick={() => onPaginationClick(currentPage + STEP)}\n disabled={!total_items || currentPage === pages}\n >\n <ChevronRightIcon />\n </Button>\n </FlexGroup>\n );\n};\n\ntype StyledButtonProps = {\n $current?: boolean;\n};\n\nconst StyledList = styled.div`\n list-style: none;\n padding: 0;\n display: flex;\n gap: 6px;\n`;\nconst Button = styled.button<StyledButtonProps>(\n ({ theme, $current }) => `\n font-family: ${theme.typography.fontFamily};\n background-color: ${$current ? theme.colors.primary.main : theme.colors.background};\n color: ${$current ? theme.colors.background : theme.colors.text.main};\n border: none;\n cursor: pointer;\n padding-block: 4px;\n padding-inline: 8px;\n border-radius: 3px;\n font-size: 14px;\n font-weight: 400;\n display: flex;\n align-items: center;\n justify-content: center;\n height: 26px;\n svg {\n width: 8px;\n height: 8px;\n}\n &:hover {\n background-color: ${theme.colors.primary.light};\n }\n transition: background-color 0.3s ease-in-out;\n`\n);\nconst FlexGroup = styled.div`\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 6px;\n`;\n","import { ButtonSize, getButtonSizeStyles } from '../../Theme';\nimport { useRef } from 'react';\nimport { Popover, PopoverAlign, PopoverPosition } from 'react-tiny-popover';\nimport { styled, useTheme } from 'styled-components';\nimport { ChevronDownIcon, ChevronUpIcon } from '../IconComponents';\n\ninterface ContextMenuProps {\n isOpen: boolean;\n onClick: () => void;\n onClickOutside: (e: MouseEvent) => void;\n size?: ButtonSize;\n disabled?: boolean;\n fullWidth?: boolean;\n className?: string;\n children?: any;\n anchor?: any;\n positions?: PopoverPosition[] | PopoverPosition;\n align?: PopoverAlign;\n hasBorder?: boolean;\n maxHeight?: number;\n}\n\nexport const ContextMenu = ({\n isOpen,\n onClickOutside,\n onClick,\n anchor,\n size = 'medium',\n disabled,\n fullWidth,\n className,\n positions = ['bottom'],\n align = 'start',\n children,\n hasBorder = true,\n maxHeight = 500,\n}: ContextMenuProps) => {\n const buttonRef = useRef<HTMLButtonElement | null>(null);\n\n const theme = useTheme();\n\n return (\n <Popover\n padding={theme.contextMenu.padding}\n isOpen={isOpen}\n positions={positions}\n align={align}\n onClickOutside={onClickOutside}\n content={children}\n containerStyle={{\n backgroundColor: theme.colors.background,\n border: `1px solid ${theme.colors.stroke.light}`,\n boxShadow: '0px 0px 10px 0px rgba(0, 0, 0, 0.25)',\n borderRadius: '5px',\n overflow: 'auto',\n maxHeight: `${maxHeight}px`,\n zIndex: `${9999}`,\n }}\n >\n <StyledButton\n ref={buttonRef}\n onClick={onClick}\n $disabled={disabled}\n $fullWidth={fullWidth}\n $size={size}\n className={className}\n type=\"button\"\n disabled={disabled}\n $hasBorder={hasBorder}\n >\n <div>{anchor}</div>\n {isOpen ? (\n <ChevronUpIcon width={theme.contextMenu.icon.size} height={theme.contextMenu.icon.size} />\n ) : (\n <ChevronDownIcon width={theme.contextMenu.icon.size} height={theme.contextMenu.icon.size} />\n )}\n </StyledButton>\n </Popover>\n );\n};\n\n// Створюємо стилізований компонент, що використовує уніфіковану палітру\nconst StyledButton = styled.button<{\n $size: ButtonSize;\n $disabled?: boolean;\n $fullWidth?: boolean;\n $hasBorder: boolean;\n}>`\n ${({ $size, $disabled, $fullWidth, theme, $hasBorder }) => {\n const sizes = getButtonSizeStyles(theme, $size);\n return `\n background: ${theme.contextMenu.button.default.background};\n color: ${theme.contextMenu.button.default.text};\n border-color: ${$hasBorder ? theme.contextMenu.button.default.border : 'transparent'};\n box-shadow: ${theme.contextMenu.button.default.boxShadow};\n font-size: ${sizes.fontSize};\n gap: ${sizes.gap};\n padding-block: ${sizes.paddingBlock};\n padding-inline: ${sizes.paddingInline};\n border-radius: ${sizes.borderRadius};\n border-width: ${sizes.borderWidth};\n border-style: solid;\n width: ${$fullWidth ? '100%' : 'auto'};\n cursor: ${$disabled ? 'not-allowed' : 'pointer'};\n font-weight: 500;\n display: inline-flex;\n align-items: center;\n justify-content: ${$fullWidth ? 'space-between' : 'center'};\n text-decoration: none;\n transition: all 0.2s ease;\n outline: none;\n flex-direction: row;\n\n &:hover {\n background: ${theme.contextMenu.button.hover.background};\n color: ${theme.contextMenu.button.hover.text};\n border-color: ${$hasBorder ? theme.contextMenu.button.hover.border : 'transparent'};\n box-shadow: ${theme.contextMenu.button.hover.boxShadow};\n }\n\n &:active {\n background: ${theme.contextMenu.button.active.background};\n color: ${theme.contextMenu.button.active.text};\n border-color: ${$hasBorder ? theme.contextMenu.button.active.border : 'transparent'};\n box-shadow: ${theme.contextMenu.button.active.boxShadow};\n }\n\n &:disabled {\n background: ${theme.contextMenu.button.disabled.background};\n color: ${theme.contextMenu.button.disabled.text};\n border-color: ${$hasBorder ? theme.contextMenu.button.disabled.border : 'transparent'};\n box-shadow: ${theme.contextMenu.button.disabled.boxShadow};\n }\n\n `;\n }}\n`;\n","import { styled } from 'styled-components';\n\ninterface StyledProps {}\n\nexport const ContextMenuDelimiter = styled.div<StyledProps>(\n ({ theme }) => `\n margin-inline: ${theme.contextMenu.delimeter.marginInline};\n margin-block: ${theme.contextMenu.delimeter.marginBlock};\n border-top-width: ${theme.contextMenu.delimeter.thickness};\n border-top-style: ${theme.contextMenu.delimeter.style};\n border-top-color: ${theme.contextMenu.delimeter.color};\n `\n);\n","import { useState } from 'react';\n\nexport const useContextMenuControl = () => {\n const [isOpen, setIsOpen] = useState(false);\n\n const toggleMenu = () => {\n setIsOpen((prev) => !prev);\n };\n const closeMenu = () => {\n setIsOpen(false);\n };\n const openMenu = () => {\n setIsOpen(true);\n };\n return {\n isOpen,\n toggleMenu,\n closeMenu,\n openMenu,\n };\n};\n","import { useCallback, useState } from 'react';\nimport { PopoverAlign, PopoverPosition } from 'react-tiny-popover';\nimport { ContextMenu } from '../ContextMenu';\nimport { ButtonSize, getButtonSizeStyles } from '../../Theme';\nimport { styled } from 'styled-components';\n\ninterface SelectProps<T extends string | number> {\n selected?: T;\n options: { value: T; inputDisplay?: string }[];\n handleSelect: (id: T) => void;\n placeholder: string;\n disabled?: boolean;\n positions?: PopoverPosition[] | PopoverPosition;\n align?: PopoverAlign;\n size?: ButtonSize;\n hasBorder?: boolean;\n maxHeight?: number;\n}\n\nexport const Select = <T extends string | number>({\n options,\n selected,\n handleSelect,\n placeholder,\n disabled = false,\n positions = ['bottom'],\n align = 'start',\n size = 'small',\n hasBorder = true,\n maxHeight,\n}: SelectProps<T>) => {\n const [isOpen, setIsOpen] = useState<boolean>(false);\n const handleToggle = useCallback(() => {\n if (!disabled) setIsOpen((prev) => !prev);\n }, []);\n\n return (\n <ContextMenu\n isOpen={isOpen}\n onClickOutside={() => setIsOpen(false)}\n onClick={handleToggle}\n disabled={disabled}\n anchor={!selected ? placeholder : options.find((option) => option.value === selected)?.inputDisplay || selected}\n fullWidth\n positions={positions}\n align={align}\n size={size}\n hasBorder={hasBorder}\n maxHeight={maxHeight}\n >\n <StyledWrapper>\n {options.map((item) => (\n <StyledItem\n onClick={() => {\n handleSelect(item.value);\n setIsOpen(false);\n }}\n type=\"button\"\n $selected={item.value === selected}\n key={item.value}\n disabled={disabled}\n $size={size}\n >\n {item.inputDisplay || item.value}\n </StyledItem>\n ))}\n </StyledWrapper>\n </ContextMenu>\n );\n};\n\nconst StyledWrapper = styled.div`\n padding-block: 7px;\n padding-inline: 5px;\n button:not(:last-of-type) {\n margin-bottom: 4px;\n }\n`;\n\nconst StyledItem = styled.button<{ $size: ButtonSize; $selected: boolean }>`\n ${({ theme, $size, $selected }) => {\n const sizes = getButtonSizeStyles(theme, $size);\n return `\n background: ${theme.select.item.default.background};\n color: ${theme.select.item.default.text};\n font-size: ${sizes.fontSize};\n gap: ${sizes.gap};\n padding-block: ${sizes.paddingBlock};\n padding-inline: ${sizes.paddingInline};\n border-radius: ${sizes.borderRadius};\n border-width: ${sizes.borderWidth};\n border: none;\n width: 100%;\n cursor: pointer;\n font-weight: 400;\n display: inline-flex;\n align-items: center;\n justify-content: flex-start;\n text-decoration: none;\n transition: all 0.2s ease;\n outline: none;\n flex-direction: row;\n\n &:hover {\n background-color: ${theme.select.item.hover.background};\n color: ${theme.select.item.hover.text};\n }\n\n ${\n $selected &&\n `background: ${theme.select.item.active.background};\n color: ${theme.select.item.active.text};`\n }\n\n &:disabled {\n background: ${theme.select.item.disabled.background};\n color: ${theme.select.item.disabled.text};\n cursor: not-allowed;\n }\n `;\n }}\n`;\n","import { ButtonColor, ButtonSize, getButtonSizeStyles } from '../../Theme';\nimport { useRef } from 'react';\nimport { Popover, PopoverAlign, PopoverPosition } from 'react-tiny-popover';\nimport { styled, useTheme } from 'styled-components';\nimport { BallsMenu } from '../IconComponents';\nimport { useContextMenuControl } from '../ContextMenu';\nimport { Button } from '../Button';\n\nexport type Action = {\n label: string;\n onClick: () => void;\n color: ButtonColor;\n};\n\ninterface RowActionsMenuProps {\n items: Action[];\n size?: ButtonSize;\n disabled?: boolean;\n className?: string;\n positions?: PopoverPosition[] | PopoverPosition;\n align?: PopoverAlign;\n}\n\nexport const RowActionsMenu = ({\n size = 'small',\n disabled,\n className,\n positions = ['bottom'],\n align = 'end',\n items,\n}: RowActionsMenuProps) => {\n const buttonRef = useRef<HTMLButtonElement | null>(null);\n const { isOpen, closeMenu, toggleMenu } = useContextMenuControl();\n\n const theme = useTheme();\n\n return (\n <Popover\n padding={theme.contextMenu.padding}\n isOpen={isOpen}\n positions={positions}\n align={align}\n onClickOutside={closeMenu}\n content={\n <ContentWrapper>\n {items.map(({ label, onClick, color }, idx) => (\n <Button\n variant=\"empty\"\n key={`row-action-${idx}`}\n color={color}\n fullWidth\n size={size}\n py={10}\n px={5}\n onClick={() => {\n onClick();\n closeMenu();\n }}\n >\n {label}\n </Button>\n ))}\n </ContentWrapper>\n }\n containerStyle={{\n backgroundColor: theme.colors.background,\n border: `1px solid ${theme.colors.stroke.light}`,\n boxShadow: '0px 0px 10px 0px rgba(0, 0, 0, 0.25)',\n borderRadius: '5px',\n zIndex: `${9999}`,\n }}\n >\n <StyledButton\n ref={buttonRef}\n onClick={toggleMenu}\n $disabled={disabled}\n $size={size}\n className={className}\n type=\"button\"\n disabled={disabled}\n >\n <BallsMenu width={theme.rowActionsMenu.icon.size} height={theme.rowActionsMenu.icon.size} />\n </StyledButton>\n </Popover>\n );\n};\n\nconst StyledButton = styled.button<{\n $size: ButtonSize;\n $disabled?: boolean;\n}>`\n ${({ $size, $disabled, theme }) => {\n const sizes = getButtonSizeStyles(theme, $size);\n return `\n background: ${theme.rowActionsMenu.button.default.background};\n color: ${theme.rowActionsMenu.button.default.text};\n border: none;\n font-size: ${sizes.fontSize};\n gap: ${sizes.gap};\n padding: 4px;\n border-radius: ${sizes.borderRadius};\n width: auto;\n cursor: ${$disabled ? 'not-allowed' : 'pointer'};\n font-weight: 500;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n text-decoration: none;\n transition: all 0.2s ease;\n outline: none;\n\n &:hover {\n background: ${theme.rowActionsMenu.button.hover.background};\n color: ${theme.rowActionsMenu.button.hover.text};\n }\n\n &:active {\n background: ${theme.rowActionsMenu.button.active.background};\n color: ${theme.rowActionsMenu.button.active.text};\n }\n\n &:disabled {\n background: ${theme.rowActionsMenu.button.disabled.background};\n color: ${theme.rowActionsMenu.button.disabled.text};\n }\n\n `;\n }}\n`;\nconst ContentWrapper = styled.div(\n ({ theme }) => `\n padding: 5px 10px;\n display: flex;\n flex-direction: column;\n button {\n min-width: 110px;\n justify-content: flex-start;\n font-weight: 400;\n }\n button:not(:last-of-type) {\n position: relative;\n ::after {\n position: absolute;\n content: '';\n bottom: 0;\n left: 5px;\n right: 5px;\n height: 1px;\n background-color: ${theme.rowActionsMenu.delimiterColor};\n }\n }\n`\n);\n","import { InputSize, InputVariant, remToPx } from '../../Theme';\nimport { forwardRef, InputHTMLAttributes, Ref, TextareaHTMLAttributes, useEffect, useRef, useState } from 'react';\nimport { styled, useTheme } from 'styled-components';\nimport { InfoCircleFilledIcon } from '../IconComponents';\n\ntype BaseInputProps = {\n error?: boolean;\n append?: any;\n prepend?: any;\n size?: InputSize;\n variant?: InputVariant;\n};\n\nexport type InputElementProps = BaseInputProps &\n InputHTMLAttributes<HTMLInputElement> & {\n multiline?: false;\n };\nexport type TextAreaElementProps = BaseInputProps &\n TextareaHTMLAttributes<HTMLTextAreaElement> & {\n multiline: true;\n autoResize?: boolean;\n };\nexport type InputProps = InputElementProps | TextAreaElementProps;\n\ntype TextAreaInputProps = TextareaHTMLAttributes<HTMLTextAreaElement> & {\n size?: InputSize;\n autoResize?: boolean;\n};\n\ntype InputRefElement<T> = T extends true ? HTMLTextAreaElement : HTMLInputElement | null;\n\nexport const Input: any = forwardRef<InputRefElement<InputProps['multiline']>, InputProps>(function Input(\n { error, append, prepend, size = 'small', variant = 'outlined', multiline, disabled, className, ...props },\n ref\n) {\n return (\n <Group\n $align={multiline ? 'flex-start' : 'center'}\n className={className}\n $error={error}\n $size={size}\n $variant={variant}\n $disabled={!!disabled}\n $multiline={multiline}\n >\n {!!prepend && prepend}\n <InputGroup $size={size} $variant={variant}>\n {multiline ? (\n <TextAreaInput\n size={size}\n disabled={disabled}\n {...(props as TextAreaElementProps)}\n ref={ref as Ref<InputRefElement<true>>}\n />\n ) : (\n <StyledInput disabled={disabled} {...(props as InputElementProps)} ref={ref as Ref<InputRefElement<false>>} />\n )}\n {!!error && (\n <IconWrapper $variant={variant}>\n <InfoCircleFilledIcon />\n </IconWrapper>\n )}\n </InputGroup>\n {!!append && append}\n </Group>\n );\n});\n\nconst TextAreaInput = forwardRef<HTMLTextAreaElement, TextAreaInputProps>(function Input(\n { size = 'small', disabled, className, rows = '1', autoResize = false, ...props },\n ref\n) {\n const [areaSize, setAreaSize] = useState(Number(rows));\n const rowsRef = useRef(Number(rows));\n const divRef = useRef<HTMLDivElement>(null);\n const theme = useTheme();\n const rowHeight = useRef(remToPx(theme.input.sizes[size].lineHeight, theme.baseSize) || theme.baseSize);\n\n useEffect(() => {\n if (divRef.current && autoResize) {\n const height = divRef.current.getBoundingClientRect().height;\n const areaSize = Math.round(height / rowHeight.current);\n if (rowsRef.current !== areaSize) {\n rowsRef.current = areaSize;\n setAreaSize(areaSize);\n }\n }\n }, [props.value]);\n\n return (\n <div style={{ position: 'relative', width: '100%' }}>\n <StyledTextarea disabled={disabled} {...props} rows={areaSize} ref={ref} />\n <SizeContainer\n ref={divRef}\n $size={size}\n style={{\n minHeight: rowHeight.current * Number(rows),\n }}\n >\n {(props.value || '') + '\\u200B'}\n </SizeContainer>\n </div>\n );\n});\n\ntype StyledInputProps = { $size: InputSize; $variant: InputVariant };\ntype StyledGroupProps = StyledInputProps & {\n $align: 'flex-start' | 'center';\n $disabled: boolean;\n $error?: boolean;\n $multiline?: boolean;\n};\n\nconst StyledTextarea = styled.textarea`\n resize: none;\n margin: 0;\n display: block;\n`;\n\nconst StyledInput = styled.input``;\n\nconst InputGroup = styled.div<StyledInputProps>(\n ({ theme, $size, $variant }) => `\n display: inline-flex;\n align-items: center;\n width: 100%;\n color: currentColor;\n\n svg {\n width: ${theme.input.sizes[$size].iconSize};\n height: ${theme.input.sizes[$size].iconSize};\n }\n\n & ${StyledInput}, & ${StyledTextarea}{\n font-size: ${theme.input.sizes[$size].fontSize};\n color: inherit;\n background: transparent;\n padding-block: ${theme.input.sizes[$size].paddingBlock};\n padding-inline: ${theme.input.sizes[$size].paddingInline};\n position: relative;\n width: 100%;\n outline: none;\n border: none;\n\n &::placeholder {\n color: ${theme.input[$variant].default.placeholder};\n font-size: ${theme.input.sizes[$size].fontSize};\n }\n\n &:disabled {\n cursor: not-allowed;\n color: inherit;\n }\n\n &:focus, &:focus-visible, &:focus:focus-visible {\n outline: none;\n }\n }\n`\n);\n\nconst SizeContainer = styled.div<{ $size: InputSize }>(\n ({ theme, $size }) => `\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: auto;\n opacity: 0;\n z-index: -1;\n pointer-events: none;\n padding-inline: ${theme.input.sizes[$size].paddingInline};\n font-size: ${theme.input.sizes[$size].fontSize};\n line-height: ${theme.input.sizes[$size].lineHeight};\n word-break: break-word;\n white-space: pre-wrap;\n`\n);\n\nconst IconWrapper = styled.span<{ $variant: InputVariant }>(\n ({ theme, $variant }) => `\n display: inline-flex;\n flex: 0 0 auto;\n align-items: center;\n color: ${theme.input[$variant].error.icon};\n margin-right: 10px;\n\n`\n);\n\nconst Group = styled.div<StyledGroupProps>(\n ({ theme, $align = 'center', $disabled, $error, $size, $variant, $multiline }) => `\n display: inline-flex;\n align-items: ${$align};\n width: 100%;\n border: 1px solid;\n border-radius: ${theme.input.sizes[$size].borderRadius};\n height: ${$multiline ? 'auto' : theme.input.sizes[$size].height};\n overflow: hidden;\n transition: all 0.2s ease;\n\n ${\n $error\n ? `\n border-color: ${theme.input[$variant].error.border};\n color: ${theme.input[$variant].error.text};\n background: ${theme.input[$variant].error.background};\n `\n : `\n border-color: ${theme.input[$variant].default.border};\n color: ${theme.input[$variant].default.text};\n background: ${theme.input[$variant].default.background};\n `\n }\n\n ${\n !$disabled &&\n !$error &&\n `\n &:hover {\n border-color: ${theme.input[$variant].focus.border};\n }\n\n &:focus-within {\n border-color: ${theme.input[$variant].focus.border};\n color: ${theme.input[$variant].focus.text};\n background: ${theme.input[$variant].focus.background};\n }\n `\n }\n\n ${\n $disabled &&\n `\n border-color: ${theme.input[$variant].disabled.border};\n color: ${theme.input[$variant].disabled.text};\n background: ${theme.input[$variant].disabled.background};\n cursor: not-allowed;\n `\n }\n`\n);\n","import { CSSProperties, forwardRef } from 'react';\nimport { createComponent, FabricComponent } from '../../Theme';\nimport styled from 'styled-components';\n\nexport type FlexDirection = 'row' | 'column' | 'row-reverse' | 'column-reverse';\nexport type FlexWrap = 'nowrap' | 'wrap' | 'wrap-reverse';\nexport type FlexJustify = 'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly';\nexport type FlexAlign = 'flex-start' | 'flex-end' | 'center' | 'stretch' | 'baseline';\nexport type FlexGap = string | number;\n\nexport interface FlexContainerProps extends FabricComponent<Omit<React.HTMLAttributes<HTMLDivElement>, 'children'>> {\n children: any;\n direction?: FlexDirection;\n wrap?: FlexWrap;\n justify?: FlexJustify;\n align?: FlexAlign;\n alignContent?: FlexAlign;\n gap?: FlexGap;\n rowGap?: FlexGap;\n columnGap?: FlexGap;\n className?: string;\n style?: CSSProperties;\n as?: any; // TODO: fix type to styled component or intrinsic element\n}\n\nexport const FlexContainer: any = forwardRef<HTMLElement, FlexContainerProps>(function FlexContainer(\n {\n children,\n direction = 'row',\n wrap = 'nowrap',\n justify = 'flex-start',\n align = 'stretch',\n alignContent,\n gap,\n rowGap,\n columnGap,\n className,\n style,\n as = 'div',\n ...props\n },\n ref\n) {\n return (\n <StyledFlexContainer\n as={as}\n $direction={direction}\n $wrap={wrap}\n $justify={justify}\n $align={align}\n $alignContent={alignContent}\n $gap={gap}\n $rowGap={rowGap}\n $columnGap={columnGap}\n className={className}\n style={style}\n ref={ref}\n {...props}\n >\n {children}\n </StyledFlexContainer>\n );\n});\n\ninterface StyledFlexContainerProps {\n $direction: FlexDirection;\n $wrap: FlexWrap;\n $justify: FlexJustify;\n $align: FlexAlign;\n $alignContent?: FlexAlign;\n $gap?: FlexGap;\n $rowGap?: FlexGap;\n $columnGap?: FlexGap;\n}\n\nconst StyledContainer = styled.div<StyledFlexContainerProps>`\n ${({ $direction, $wrap, $justify, $align, $alignContent, $gap, $rowGap, $columnGap }) => `\n display: flex;\n width: 100%;\n min-width: 0;\n flex-direction: ${$direction};\n flex-wrap: ${$wrap};\n justify-content: ${$justify};\n align-items: ${$align};\n ${$alignContent ? `align-content: ${$alignContent};` : ''}\n ${$gap !== undefined ? `gap: ${typeof $gap === 'number' ? `${$gap}px` : $gap};` : ''}\n ${$rowGap !== undefined ? `row-gap: ${typeof $rowGap === 'number' ? `${$rowGap}px` : $rowGap};` : ''}\n ${$columnGap !== undefined ? `column-gap: ${typeof $columnGap === 'number' ? `${$columnGap}px` : $columnGap};` : ''}\n `}\n`;\n\nconst StyledFlexContainer = createComponent(StyledContainer);\n","import { CSSProperties, ReactNode } from 'react';\nimport { styled } from 'styled-components';\n\nexport type FlexItemGrow = number;\nexport type FlexItemShrink = number;\nexport type FlexItemBasis = string | number;\nexport type FlexItemAlign = 'auto' | 'flex-start' | 'flex-end' | 'center' | 'baseline' | 'stretch';\n\nexport interface FlexItemProps {\n children?: any;\n grow?: FlexItemGrow;\n shrink?: FlexItemShrink;\n basis?: FlexItemBasis;\n align?: FlexItemAlign;\n order?: number;\n className?: string;\n style?: CSSProperties;\n as?: any; //TODO: fix type to styled component or intrinsic element\n}\n\nexport const FlexItem = ({\n children,\n grow,\n shrink,\n basis,\n align,\n order,\n className,\n style,\n as = 'div',\n}: FlexItemProps) => {\n return (\n <StyledFlexItem\n as={as}\n $grow={grow}\n $shrink={shrink}\n $basis={basis}\n $align={align}\n $order={order}\n className={className}\n style={style}\n >\n {children}\n </StyledFlexItem>\n );\n};\n\ninterface StyledFlexItemProps {\n $grow?: FlexItemGrow;\n $shrink?: FlexItemShrink;\n $basis?: FlexItemBasis;\n $align?: FlexItemAlign;\n $order?: number;\n}\n\nconst StyledFlexItem = styled.div<StyledFlexItemProps>`\n ${({ $grow, $shrink, $basis, $align, $order }) => `\n min-width: 0;\n ${$grow !== undefined ? `flex-grow: ${$grow};` : ''}\n ${$shrink !== undefined ? `flex-shrink: ${$shrink};` : ''}\n ${$basis !== undefined ? `flex-basis: ${typeof $basis === 'number' ? `${$basis}px` : $basis};` : ''}\n ${$align ? `align-self: ${$align};` : ''}\n ${$order !== undefined ? `order: ${$order};` : ''}\n `}\n`;\n","import {\n ColorVariant,\n createComponent,\n FabricComponent,\n generatePropertySpaceStyle,\n resolveThemeColor,\n} from '../../Theme';\nimport { styled } from 'styled-components';\n\ntype BoxProps = FabricComponent<\n {\n children: any;\n element?: 'div' | 'section';\n hasBorder?: boolean;\n color?: ColorVariant | string;\n } & React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>\n>;\n\nexport const Box = ({ children, element = 'div', hasBorder = true, color, ...props }: BoxProps) => {\n return (\n <StyledBox as={element} $hasBorder={hasBorder} $color={color} {...props}>\n {children}\n </StyledBox>\n );\n};\n\ntype StyledProps = { $hasBorder: boolean; $color?: string };\n\nconst StyledBox = createComponent(\n styled('div')<FabricComponent<StyledProps>>(\n ({ theme, $hasBorder, $color, px = theme.box.padding, py = theme.box.padding }) => `\n ${generatePropertySpaceStyle(theme, 'padding-inline', px)}\n ${generatePropertySpaceStyle(theme, 'padding-block', py)}\n border-radius: ${theme.box.borderRadius};\n background-color: ${theme.box.background};\n border-width: ${$hasBorder ? theme.box.border.width : 0};\n border-style: ${theme.box.border.style};\n border-color: ${resolveThemeColor(theme, $color) || theme.box.border.color};\n `\n ),\n {\n ignoreStyles: ['padding-inline', 'padding-block'],\n }\n);\n","import { createComponent, FabricComponent } from '../../Theme';\nimport { styled } from 'styled-components';\n\ntype LineProps = FabricComponent<\n {\n direction?: 'horizontal' | 'vertical';\n } & Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, 'children'>\n>;\n\nexport const Line = ({ direction = 'horizontal', ...props }: LineProps) => {\n return <StyledLine {...props} $direction={direction} />;\n};\n\ninterface StyledLineProps {\n $direction: 'horizontal' | 'vertical';\n}\n\nconst StyledLine = createComponent(\n styled.div<StyledLineProps>(\n ({ theme, $direction }) => `\n width: ${$direction === 'horizontal' ? '100%' : theme.line.size};\n height: ${$direction === 'vertical' ? '100%' : theme.line.size};\n background-color: ${theme.line.color};\n`\n )\n);\n","import styled from 'styled-components';\n\nexport interface EmptyDataProps {\n children?: any;\n title?: string;\n note?: string;\n className?: string;\n}\n\nexport const EmptyData = ({ children, title, note, className }: EmptyDataProps) => {\n return (\n <Container className={className}>\n {!!title && <h2>{title}</h2>}\n {!!note && <p>{note}</p>}\n {!!children && children}\n </Container>\n );\n};\n\nconst Container = styled.div(\n ({ theme }) => `\n display: flex;\n width: 100%;\n min-width: 0;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: 10px;\n h2,\n p {\n padding: 0;\n margin: 0;\n text-align: center;\n color: ${theme.colors.text.light};\n }\n h2 {\n font-size: ${theme.typography.variants.h2.fontSize};\n font-weight: 600;\n }\n p {\n font-size: ${theme.typography.variants.h3.fontSize};\n }\n`\n);\n","import React from 'react';\nimport styled from 'styled-components';\nimport {\n FabricComponent,\n createComponent,\n TagVariant,\n TagColor,\n hexToRgba,\n generatePropertySpaceStyle,\n} from '../../Theme';\nimport { CrossIcon } from '../IconComponents';\n\ntype TagProps = FabricComponent<{\n children?: any;\n variant?: TagVariant;\n color?: TagColor;\n className?: string;\n icon?: any;\n disabled?: boolean;\n onClick?: () => void;\n onDelete?: () => void;\n}> &\n Omit<React.HTMLAttributes<HTMLDivElement>, 'children'>;\n\nexport const Tag = ({\n children,\n variant = 'fill',\n color = 'default',\n className,\n disabled,\n icon,\n onClick,\n onDelete,\n ...props\n}: TagProps) => {\n return (\n <StyledContainer\n $variant={variant}\n $color={color}\n $clickable={!!onClick && !disabled}\n onClick={!disabled ? onClick : undefined}\n className={className}\n {...props}\n >\n {!!children && <Content>{children}</Content>}\n {!!onDelete && !disabled && (\n <DeleteButton\n aria-label=\"delete\"\n onClick={(e) => {\n e.stopPropagation();\n onDelete();\n }}\n >\n <CrossIcon />\n </DeleteButton>\n )}\n </StyledContainer>\n );\n};\n\ntype StyledProps = {\n $variant: TagVariant;\n $color: TagColor;\n $clickable: boolean;\n};\n\nconst Content = styled.span`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 0;\n\n font-size: 14px;\n line-height: 16px;\n`;\n\nconst DeleteButton = styled.button`\n border: none;\n outline: none;\n background-color: transparent;\n cursor: pointer;\n color: currentColor;\n transition: color 0.2s ease;\n svg {\n width: 10px;\n height: 10px;\n fill: currentColor;\n }\n`;\n\nconst Container = styled.div<FabricComponent<StyledProps>>(\n ({\n theme,\n $variant,\n $color,\n $clickable,\n py = theme.tag[$variant].paddingBlock,\n px = theme.tag[$variant].paddingInline,\n }) => {\n const color = theme.tag[$variant].color[$color] || $color;\n return `\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 0;\n border-width: ${theme.tag[$variant].borderWidth};\n border-style: solid;\n border-color: ${color};\n border-radius: ${theme.tag[$variant].borderRadius};\n background-color: ${$variant === 'outlined' ? theme.colors.background : hexToRgba(color, 0.05)};\n color: ${color};\n\n ${Content} {\n ${generatePropertySpaceStyle(theme, 'padding-block', py)};\n ${generatePropertySpaceStyle(theme, 'padding-inline', px)};\n color: ${color};\n ${\n $clickable\n ? `\n cursor: pointer;\n transition: color 0.2s ease;\n &:hover {\n color: ${hexToRgba(color, 0.7)};\n }\n `\n : ''\n }\n }\n ${DeleteButton} {\n ${generatePropertySpaceStyle(theme, 'padding-block', py)};\n ${generatePropertySpaceStyle(theme, 'padding-right', px)};\n\n &:hover {\n color: ${hexToRgba(color, 0.7)};\n }\n }\n `;\n }\n);\n\nconst StyledContainer = createComponent(Container, {\n ignoreStyles: ['padding-block', 'padding-inline'],\n});\n","import React from 'react';\nimport styled from 'styled-components';\nimport { FabricComponent, createComponent, generatePropertySpaceStyle } from '../../Theme';\nimport { AlertIcon } from '../IconComponents';\n\ntype AlertProps = FabricComponent<{\n title?: any;\n note?: any;\n}> &\n Omit<React.HTMLAttributes<HTMLDivElement>, 'children'>;\n\nexport const Alert = ({ title, note, ...props }: AlertProps) => {\n return (\n <StyledContainer {...props}>\n <IconWrapper>\n <AlertIcon />\n </IconWrapper>\n <div>\n {!!title && <Title>{title}</Title>}\n {!!note && <Note>{note}</Note>}\n </div>\n </StyledContainer>\n );\n};\n\nconst IconWrapper = styled.div(\n ({ theme: { alert } }) => `\n flex-shrink: 0;\n color: ${alert.color.icon};\n padding-top: ${alert.icon.paddingTop};\n svg {\n width: ${alert.icon.width};\n height: ${alert.icon.height};\n display: block;\n }\n`\n);\n\nconst Title = styled.h3(\n ({ theme: { alert } }) => `\n margin: 0;\n padding: 0;\n font-size: ${alert.fontSize};\n line-height: 1.2;\n font-weight: 700;\n color: ${alert.color.text};\n &:not(:last-child) {\n margin-bottom: 8px;\n }\n`\n);\nconst Note = styled.p(\n ({ theme: { alert } }) => `\n margin: 0;\n padding: 0;\n word-break: break-word;\n font-size: ${alert.fontSize};\n color: ${alert.color.text};\n line-height: 1.5;\n`\n);\n\nconst StyledContainer = createComponent(\n styled.div<FabricComponent>(\n ({ theme, py = theme.alert.paddingBlock, pl = theme.alert.paddingLeft, pr = theme.alert.paddingRight }) => {\n return `\n display: flex;\n align-items: flex-start;\n justify-content: flex-start;\n flex-wrap: nowrap;\n gap: ${theme.alert.gap};\n background-color: ${theme.alert.color.background};\n border-radius: ${theme.alert.borderRadius};\n ${generatePropertySpaceStyle(theme, 'padding-block', py)};\n ${generatePropertySpaceStyle(theme, 'padding-right', pr)};\n ${generatePropertySpaceStyle(theme, 'padding-left', pl)};\n `;\n }\n ),\n { ignoreStyles: ['padding-block', 'padding-right', 'padding-left'] }\n);\n","import React from 'react';\nimport styled from 'styled-components';\nimport { FabricComponent, LabelSize, createComponent, generatePropertySpaceStyle, propToRem } from '../../Theme';\n\ntype LabelProps = FabricComponent<{\n label?: any;\n helpText?: any;\n errorText?: string;\n size?: LabelSize;\n children: any;\n fullWidth?: boolean;\n}> &\n Omit<React.LabelHTMLAttributes<HTMLLabelElement>, 'children'> &\n (LabelDirection | LabelDirectionRaw);\n\ntype LabelDirectionRaw = {\n direction?: 'row' | 'row-reverse';\n childrenWidth?: number | string;\n};\n\ntype LabelDirection = {\n direction?: Omit<React.CSSProperties['flexDirection'], 'row' | 'row-reverse'>;\n};\n\nexport const Label = ({\n label,\n helpText,\n children,\n direction = 'column',\n size = 'small',\n errorText,\n fullWidth,\n ...props\n}: LabelProps) => {\n const $isRow = direction === 'row' || direction === 'row-reverse';\n const $width = $isRow ? (props as LabelDirectionRaw).childrenWidth || '50%' : '100%';\n\n return (\n <StyledLabel $size={size} $direction={direction} $fullWidth={fullWidth} $isRow={$isRow} {...props}>\n {Boolean(label || helpText) && (\n <LabelWrapper $width={$width}>\n {!!label && <LabelText $size={size}>{label}</LabelText>}\n {!!helpText && <HelpText $size={size}>{helpText}</HelpText>}\n </LabelWrapper>\n )}\n <Wrapper $width={$width}>\n {children}\n {!!errorText && <ErrorText $size={size}>{errorText}</ErrorText>}\n </Wrapper>\n </StyledLabel>\n );\n};\n\ntype StyledProps = {\n $size: LabelSize;\n $direction?: LabelDirection['direction'] | LabelDirectionRaw['direction'];\n $fullWidth?: boolean;\n $isRow: boolean;\n};\n\ntype WrapperProps = { $width: number | string };\ntype TextProps = { $size: LabelSize };\n\nconst Wrapper = styled.div<WrapperProps>(\n ({ theme, $width }) => `\n flex-basis: 100%;\n @media (min-width: ${theme.breakpoints.m}px) {\n flex-basis: ${propToRem($width, theme.baseSize)};\n }\n `\n);\n\nconst LabelWrapper = styled(Wrapper)<WrapperProps>`\n align-self: flex-start;\n`;\n\nconst LabelText = styled.div<TextProps>(\n ({ theme, $size }) => `\n line-height: 1.2;\n font-weight: 500;\n font-size: ${theme.label.sizes[$size].fontSize};\n color: ${theme.label.color};\n cursor: pointer;\n :hover {\n color: ${theme.colors.primary.main};\n }\n\n`\n);\n\nconst HelpText = styled.div<TextProps>(\n ({ theme, $size }) => `\n margin-top: ${theme.label.sizes[$size].helpText.marginTop};\n word-break: break-word;\n line-height: 1.2;\n font-size: ${theme.label.sizes[$size].helpText.fontSize};\n color: ${theme.label.helpTextColor};\n`\n);\nconst ErrorText = styled.div<TextProps>(\n ({ theme, $size }) => `\n margin-top: ${theme.label.sizes[$size].helpText.marginTop};\n word-break: break-word;\n line-height: 1.2;\n font-size: ${theme.label.sizes[$size].helpText.fontSize};\n color: ${theme.colors.error};\n`\n);\n\nconst StyledLabel = createComponent(\n styled.label<FabricComponent<StyledProps>>(\n ({\n theme,\n $direction = 'column',\n $isRow,\n $size,\n $fullWidth = false,\n mb = theme.label.sizes[$size].marginBottom,\n }) => {\n return `\n display: inline-flex;\n justify-content: space-between;\n ${$fullWidth ? 'width: 100%;' : ''}\n min-width: 0;\n flex-direction: column;\n\n @media (min-width: ${theme.breakpoints.m}px) {\n flex-direction: ${$direction};\n align-items: ${$isRow ? 'center' : 'stretch'};\n }\n\n gap: ${theme.label.sizes[$size].gap};\n ${generatePropertySpaceStyle(theme, 'margin-bottom', mb)};\n `;\n }\n ),\n { ignoreStyles: ['margin-bottom'] }\n);\n","import React from 'react';\nimport styled from 'styled-components';\nimport { FabricComponent, createComponent, destructSpaceProps, pxToRem } from '../../Theme';\n\ntype CheckboxProps = FabricComponent<{\n label?: any;\n}> &\n Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type'>;\n\nexport const Checkbox = ({ label, className, disabled, ...props }: CheckboxProps) => {\n const spaceProps = destructSpaceProps(props);\n return (\n <StyledCheckbox className={className} $disabled={disabled} {...spaceProps}>\n <HiddenInput type=\"checkbox\" disabled={disabled} {...props} />\n <CustomCheckbox />\n {!!label && <LabelText>{label}</LabelText>}\n </StyledCheckbox>\n );\n};\n\nconst CustomCheckbox = styled.div(\n ({ theme }) => `\n width: ${pxToRem(15)};\n height: ${pxToRem(15)};\n border-radius: ${pxToRem(2)};\n border: 1px solid ${theme.colors.stroke.main};\n background-color: ${theme.colors.background};\n transition: all 0.2s ease;\n `\n);\n\nconst LabelText = styled.span(\n ({ theme }) => `\n margin-left: ${pxToRem(5)};\n font-size: ${theme.typography.variants.h3.fontSize};\n color: ${theme.colors.text.main};\n`\n);\n\nconst HiddenInput = styled.input`\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n width: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n`;\n\nconst StyledCheckbox = createComponent(\n styled.label<{ $disabled?: boolean }>(({ theme, $disabled }) => {\n return `\n position: relative;\n display: flex;\n align-items: center;\n cursor: ${$disabled ? 'not-allowed' : 'pointer'};\n\n &:hover {\n ${HiddenInput}:not(:disabled) + ${CustomCheckbox} {\n border-color: ${theme.colors.primary.main};\n }\n }\n\n ${HiddenInput}:checked + ${CustomCheckbox} {\n background-color: ${theme.colors.primary.main};\n border-color: ${theme.colors.primary.main};\n }\n ${HiddenInput}:disabled + ${CustomCheckbox} {\n background-color: ${theme.colors.disable};\n }\n `;\n })\n);\n","import { createComponent, FabricComponent, propToRem, pxToRem } from '../../Theme';\nimport { styled } from 'styled-components';\n\ntype Direction = 'horizontal' | 'vertical';\n\ntype LinerProgressProps = FabricComponent<\n {\n height?: number;\n width?: string | number;\n direction?: Direction;\n value: number;\n } & Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, 'children'>\n>;\n\nexport const LinerProgress = ({\n height = 21,\n width = '100%',\n direction = 'horizontal',\n value,\n ...props\n}: LinerProgressProps) => {\n return <StyledLine {...props} $height={height} $value={value} $width={width} $direction={direction} />;\n};\n\ninterface StyledLineProps {\n $height: number;\n $value: number;\n $width: string | number;\n $direction: Direction;\n}\n\nconst StyledLine = createComponent(\n styled.div<StyledLineProps>(\n ({ theme, $height, $value, $width, $direction }) => `\n width: ${propToRem($width, theme.baseSize)};\n height: ${propToRem($height, theme.baseSize)};\n background-color: ${theme.leanerProgress.background};\n position: relative;\n overflow: hidden;\n border-radius: ${pxToRem(2, theme.baseSize)};\n &::after {\n position: absolute;\n content: '';\n left: 0;\n bottom: 0;\n width: ${$direction === 'horizontal' ? `${$value}%` : propToRem($width, theme.baseSize)};\n height: ${$direction === 'horizontal' ? '100%' : `${$value}%`};\n background-color: ${theme.leanerProgress.progressColor};\n border-radius: ${pxToRem(2, theme.baseSize)};\n }\n`\n )\n);\n","import { InputHTMLAttributes } from 'react';\nimport { createComponent, destructSpaceProps, FabricComponent, pxToRem } from '../../Theme';\nimport { styled } from 'styled-components';\n\ntype SwitchProps = FabricComponent<Omit<InputHTMLAttributes<HTMLInputElement>, 'type'>>;\n\nexport const Switch = ({ className, ...props }: SwitchProps) => {\n const spaceProps = destructSpaceProps(props);\n return (\n <StyledLabel className={className} {...spaceProps}>\n <HiddenInput type=\"checkbox\" {...props} />\n <StyledSwitch />\n </StyledLabel>\n );\n};\n\nconst StyledSwitch = styled.span(\n ({ theme }) => `\n position: relative;\n cursor: pointer;\n display: inline-block;\n width: ${pxToRem(41, theme.baseSize)};\n height: ${pxToRem(21, theme.baseSize)};\n border-radius: ${pxToRem(15, theme.baseSize)};\n background-color: ${theme.switch.default.background};\n &::before {\n position: absolute;\n display: block;\n top: 50%;\n transform: translateY(-50%);\n height: ${pxToRem(15, theme.baseSize)};\n width: ${pxToRem(15, theme.baseSize)};\n border-radius: 50%;\n background-color: ${theme.switch.default.color};\n content: '';\n }\n`\n);\nconst HiddenInput = styled.input(\n ({ theme }) => `\n appearance: none;\n border: none;\n outline: none;\n position: absolute;\n height: 1px;\n width: 1px;\n margin: -1px;\n top: 0;\n left: 0;\n &:not(:checked) + ${StyledSwitch}::before {\n left: ${pxToRem(3, theme.baseSize)};\n }\n &:checked + ${StyledSwitch} {\n background-color: ${theme.switch.checked.background};\n &::before {\n right: ${pxToRem(3, theme.baseSize)};\n }\n }\n &:disabled + ${StyledSwitch} {\n background-color: ${theme.switch.disabled.background};\n cursor: not-allowed;\n }\n`\n);\n\nconst StyledLabel = createComponent(\n styled.label`\n position: relative;\n display: inline-block;\n `\n);\n","import { createPortal } from 'react-dom';\nimport { styled } from 'styled-components';\nimport { pxToRem } from '../../Theme';\nimport { CrossIcon } from '../IconComponents';\nimport { useEffect, useRef } from 'react';\n\ntype DrawerProps = {\n isOpen: boolean;\n onClose: () => void;\n children: any;\n header?: number;\n width?: number;\n};\nexport const Drawer = (props: DrawerProps) => {\n if (!props.isOpen) return null;\n return createPortal(<DrawerWithOutclick {...props} />, document.body);\n};\n\nconst DrawerWithOutclick = ({ onClose, children, width, header }: DrawerProps) => {\n const drawerRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const handleClick = (e: MouseEvent) => {\n if (drawerRef.current && !drawerRef.current.contains(e.target as Node)) {\n onClose();\n }\n };\n document.addEventListener('mousedown', handleClick);\n return () => {\n document.removeEventListener('mousedown', handleClick);\n };\n }, [onClose]);\n return (\n <StyledDrawer $header={header} $width={width} ref={drawerRef}>\n <CloseButton onClick={onClose}>\n <CrossIcon width={14} height={14} color=\"currentColor\" />\n </CloseButton>\n <Content>{children}</Content>\n </StyledDrawer>\n );\n};\n\nconst CloseButton = styled.button(\n ({ theme }) => `\n display: block;\n position: absolute;\n background-color: inherit;\n top: ${pxToRem(16, theme.baseSize)};\n right: ${pxToRem(16, theme.baseSize)};\n cursor: pointer;\n z-index: 1;\n\n color: ${theme.colors.text.light};\n padding: ${pxToRem(4, theme.baseSize)};\n border: none;\n outline: none;\n transition: color 0.2s ease;\n &: hover {\n color: ${theme.colors.primary.light};\n }\n`\n);\n\nconst Content = styled.div(\n ({ theme }) => `\n max-height: 100%;\n overflow-y: auto;\n`\n);\nconst StyledDrawer = styled.div<{ $header?: number; $width?: number }>(\n ({ theme, $header, $width }) => `\n position: fixed;\n z-index: ${theme.zIndex.sticky};\n top: ${pxToRem($header || 0, theme.baseSize)};\n bottom: 0;\n right: 0;\n width: ${$width ? pxToRem($width, theme.baseSize) : theme.drawer.width};\n max-width: 100%;\n padding: ${theme.drawer.padding};\n background-color: ${theme.colors.background};\n box-shadow: ${theme.drawer.shadow};\n border-left: 1px solid ${theme.colors.stroke.lighter};\n`\n);\n","import { ReactElement } from 'react';\nimport { styled } from 'styled-components';\n\ninterface PageLayoutProps {\n header?: any;\n sidebar?: any;\n children?: any;\n className?: string;\n}\n\nexport const PageLayout = ({ children, header, sidebar, className }: PageLayoutProps) => {\n return (\n <StyledContainer className={className} $withHeader={!!header} $withSidebar={!!sidebar}>\n {header}\n {sidebar}\n <StyledMain>{children}</StyledMain>\n </StyledContainer>\n );\n};\n\ninterface StyledContainerProps {\n $withHeader?: boolean;\n $withSidebar?: boolean;\n}\n\nexport const StyledContainer = styled.div<StyledContainerProps>(\n ({ $withHeader, $withSidebar }) => `\n display: grid;\n min-height: 100dvh;\n position: relative;\n grid-template-columns: ${$withSidebar ? 'auto 1fr' : '1fr'};\n grid-template-rows: ${$withHeader ? 'auto 1fr' : '1fr'};\n grid-template-areas: ${\n $withHeader\n ? $withSidebar\n ? `'sidebar header' 'sidebar content'`\n : `'header' 'content'`\n : $withSidebar\n ? `'sidebar content'`\n : `'content'`\n };\n\n & > header {\n grid-area: header;\n }\n\n & > aside {\n grid-area: sidebar;\n max-height: 100dvh;\n }\n\n & > main {\n grid-area: content;\n }\n`\n);\n\nconst StyledMain = styled.main(\n ({ theme }) => `\n min-width: 0;\n background: ${theme.colors.backgroundBase};\n `\n);\n","import { createComponent, FabricComponent, generatePropertySpaceStyle, pxToRem } from '../../Theme';\nimport { styled } from 'styled-components';\n\ntype ContainerProps = FabricComponent<{\n children: any;\n maxWidth?: string | number;\n}>;\n\ntype StyledContainerProps = {\n $maxWidth?: string | number;\n};\n\nexport const Container = ({ maxWidth, ...props }: ContainerProps) => {\n return <StyledContainer {...props} $maxWidth={maxWidth} />;\n};\n\nconst StyledContainer = createComponent(\n styled.div<FabricComponent<StyledContainerProps>>(({ theme, $maxWidth, px = 20 }) => {\n return `\n ${generatePropertySpaceStyle(theme, 'padding-inline', px)}\n width: 100%;\n min-width: 0;\n max-width: ${typeof $maxWidth === 'number' ? pxToRem($maxWidth, theme.baseSize) : $maxWidth || '100%'};\n `;\n }),\n { ignoreStyles: ['padding-inline'] }\n);\n","import React from 'react';\nimport ContentLoader from 'react-content-loader';\nimport styled, { useTheme } from 'styled-components';\n\nconst LoaderWrapper = styled.div`\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n\ninterface GraphLoaderProps {\n width?: number;\n height?: number;\n}\n\nconst GraphLoader: React.FC<GraphLoaderProps> = ({ width = 280, height = 280 }) => {\n // Helper function to create a rect from line coordinates\n const theme = useTheme();\n\n return (\n <LoaderWrapper>\n <ContentLoader\n foregroundColor={theme.contentLoader.foreground}\n backgroundColor={theme.contentLoader.background}\n width={width}\n height={height}\n viewBox=\"0 0 280 280\"\n >\n <path d=\"m55 38-0.97266 0.22852 7.0801 30.092-18.355-20.979-0.75195 0.6582 19.596 22.395 0.43164 1.834 0.97266-0.22852 0.75195-0.6582-0.37695-0.42969 9.625-27.912-0.94531-0.32617-9.4375 27.371-0.10547-0.12109zm8 34-0.78516 0.61914 0.0957 0.12305-12.311 13.258 0.73242 0.67969 12.205-13.145 14.277 18.084 0.78516-0.61914-14.373-18.207 0.10547-0.11328zm15 19-0.48438 0.875 46.992 25.996 8e-3 4e-3 20.506 11.592-28.182 4.5449 0.15998 0.98819 29.418-4.7441 0.25 0.14062-12.555 24.143 0.88672 0.46094 13-25 15 25 26 30v18l-11 18 0.85352 0.52148 9.8008-16.039-4.6543 33.518 0.99023 0.13867 4.7793-34.408 7.2305 16.27 0.91406-0.40625-7.9141-17.807v-17.104l18 12.316 0.56445-0.82617-18.896-12.928-25.855-29.836-14.633-24.387 0.01562-0.02344h23.805v-1h-23.152l13.848-21.234 55.201-28.791-0.45898-0.88476 0.77734 0.62305 11.402-14.25 16.668-11.842-0.58008-0.81641-16.785 11.928-11.486 14.355-55.434 28.912-14.277 21.893-7.7617-27.166-0.96094 0.27344 7.7227 27.031-1.1191 0.17969-21.604-12.211zm140.43-12.912-6.957-17.338-0.92773 0.37305 6.957 17.338zm-6.957-17.338 0.72266 0.69336 16.232-16.896-0.7207-0.69336zm-3.4766 137.25 5 15 0.94922-0.31641-5-15zm-91-63-0.48047-0.87695-31 17 0.48047 0.87695zm-31 17 5 18 0.96289-0.26758-5-18zm0 0-0.70703-0.70703-12.898 12.898-17.881 9.9336 0.48633 0.875 18-10zm5 18-0.64062-0.76758-18 15 0.64062 0.76758z\" />\n <circle cx=\"229.92\" cy=\"63.7318\" r=\"5\" transform=\"rotate(173.661 229.92 63.7318)\" />\n <circle cx=\"227.711\" cy=\"43.8541\" r=\"5\" transform=\"rotate(173.661 227.711 43.8541)\" />\n <circle cx=\"211.478\" cy=\"60.7499\" r=\"5\" transform=\"rotate(173.661 211.478 60.7499)\" />\n <circle cx=\"218.434\" cy=\"78.0877\" r=\"5\" transform=\"rotate(173.661 218.434 78.0877)\" />\n <circle cx=\"246.705\" cy=\"51.8054\" r=\"5\" transform=\"rotate(173.661 246.705 51.8054)\" />\n <circle cx=\"42\" cy=\"48\" r=\"5\" />\n <circle cx=\"55\" cy=\"38\" r=\"5\" />\n <circle cx=\"73\" cy=\"43\" r=\"5\" />\n <circle cx=\"63\" cy=\"72\" r=\"5\" />\n <circle cx=\"50\" cy=\"86\" r=\"5\" />\n <circle cx=\"78\" cy=\"91\" r=\"5\" />\n <circle cx=\"73\" cy=\"165\" r=\"5\" />\n <circle cx=\"73\" cy=\"185\" r=\"5\" />\n <circle cx=\"91\" cy=\"170\" r=\"5\" />\n <circle cx=\"86\" cy=\"152\" r=\"5\" />\n <circle cx=\"148\" cy=\"130\" r=\"5\" />\n <circle cx=\"189\" cy=\"185\" r=\"5\" />\n <circle cx=\"163\" cy=\"107\" r=\"5\" />\n <circle cx=\"140\" cy=\"102\" r=\"5\" />\n <circle cx=\"117\" cy=\"135\" r=\"5\" />\n <circle cx=\"125\" cy=\"117\" r=\"5\" />\n <circle cx=\"208\" cy=\"198\" r=\"5\" />\n <circle cx=\"189\" cy=\"203\" r=\"5\" />\n <circle cx=\"198\" cy=\"221\" r=\"5\" />\n <circle cx=\"178\" cy=\"221\" r=\"5\" />\n <circle cx=\"184\" cy=\"239\" r=\"5\" />\n <circle cx=\"213\" cy=\"213\" r=\"5\" />\n <circle cx=\"173\" cy=\"130\" r=\"5\" />\n <circle cx=\"163\" cy=\"155\" r=\"5\" />\n <circle cx=\"135\" cy=\"155\" r=\"5\" />\n <circle cx=\"55\" cy=\"175\" r=\"5\" />\n </ContentLoader>\n </LoaderWrapper>\n );\n};\n\nexport default GraphLoader;\n","import {\n useCallback,\n useEffect,\n useRef,\n useState,\n forwardRef,\n useImperativeHandle,\n useMemo,\n useLayoutEffect,\n} from 'react';\nimport { Graph2DProps, LinkObject, NodeObject, Graph2DRef, GraphState } from './types';\n\nimport cloneDeep from 'lodash.clonedeep';\n\nimport {\n forceCenter,\n forceLink,\n forceManyBody,\n forceSimulation,\n forceCollide,\n forceX,\n forceY,\n Simulation,\n ForceLink,\n scaleOrdinal,\n schemeCategory10,\n} from 'd3';\nimport { styled, useTheme } from 'styled-components';\nimport GraphLoader from './GraphLoader';\n\nconst RATIO = window.devicePixelRatio || 1;\n// Завантаження та підготовка зображень кнопок\nfunction prepareButtonImages(buttons: Graph2DProps['buttons']) {\n if (!buttons || buttons.length === 0) return [];\n\n return buttons.map((button) => {\n const normalImg = new Image();\n normalImg.src = button.img;\n\n const hoverImg = new Image();\n hoverImg.src = button.hoverImg;\n\n return {\n ...button,\n normalImg,\n hoverImg,\n };\n });\n}\n\n// Конфігурація подібна до Graph2D\nconst config = {\n fontSize: 3,\n nodeSizeBase: 30,\n nodeAreaFactor: 2,\n textPaddingFactor: 0.9,\n gridSpacing: 20,\n dotSize: 1,\n maxZoom: 4,\n};\n\nexport const Graph2D: any = forwardRef<Graph2DRef, Graph2DProps>(\n (\n {\n loading,\n width,\n height,\n graphData,\n buttons = [],\n onNodeClick,\n onBackgroundClick,\n onNodeHover,\n onLinkHover,\n onLinkClick,\n },\n ref\n ) => {\n const theme = useTheme();\n const [isRendering, setIsRendering] = useState(true);\n\n const stateRef = useRef<GraphState>({\n transform: { x: 0, y: 0, k: 1 }, // x, y для переміщення, k для масштабу\n isPanning: false,\n hoveredNode: null,\n hoveredLink: null,\n draggedNode: null,\n selectedNode: null,\n hoveredButtonIndex: null,\n highlightNodes: new Set(),\n highlightLinks: new Set(),\n lastMousePos: { x: 0, y: 0 },\n mustBeStoppedPropagation: false,\n lastHoveredNode: null,\n mouseStartPos: null,\n isDragging: false,\n lastHoveredNodeRef: null,\n width: width * RATIO,\n height: height * RATIO,\n });\n\n const { nodes, links } = useMemo(() => cloneDeep(graphData), [graphData]);\n\n // Стани кнопок\n const [buttonImages, setButtonImages] = useState<any[]>([]);\n\n const canvasRef = useRef<HTMLCanvasElement>(null);\n const simulationRef = useRef<Simulation<NodeObject, LinkObject> | null>(null);\n\n // Контекст Canvas для 2D рендерингу\n const ctx2dRef = useRef<CanvasRenderingContext2D | null>(null);\n const color = scaleOrdinal(schemeCategory10);\n\n // Ініціалізація контексту Canvas 2D\n const init2DCanvas = useCallback(() => {\n if (!canvasRef.current) return false;\n\n try {\n const ctx = canvasRef.current.getContext('2d');\n if (!ctx) {\n console.error('Failed to get 2D context');\n return false;\n }\n\n ctx2dRef.current = ctx;\n return true;\n } catch (e) {\n console.error('Error initializing Canvas 2D context:', e);\n return false;\n }\n }, []);\n\n const getNodes = useCallback(() => {\n if (!simulationRef.current) return null;\n return simulationRef.current.nodes();\n }, []);\n\n const getLinks = useCallback(() => {\n if (!simulationRef.current) return null;\n\n const linkForce = simulationRef.current.force('link') as ForceLink<NodeObject, LinkObject>;\n const links = linkForce ? linkForce.links() : null;\n return links;\n }, []);\n\n // Рендеринг сітки на полотні\n const renderGrid = useCallback(\n (ctx: CanvasRenderingContext2D) => {\n // Зберігаємо поточний стан контексту\n ctx.save();\n\n // Скидаємо трансформацію для малювання фону в координатах екрану\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n\n // Малюємо фонові крапки\n const { width: canvasWidth, height: canvasHeight } = stateRef.current;\n const gridSpacing = config.gridSpacing;\n const dotSize = config.dotSize;\n\n ctx.fillStyle = theme.graph2D.grid.dotColor;\n\n for (let x = gridSpacing / 2; x <= canvasWidth; x += gridSpacing) {\n for (let y = gridSpacing / 2; y <= canvasHeight; y += gridSpacing) {\n ctx.beginPath();\n ctx.arc(x, y, dotSize, 0, 2 * Math.PI);\n ctx.fill();\n }\n }\n\n // Відновлюємо оригінальну трансформацію для іншого рендерингу\n ctx.restore();\n },\n [theme.graph2D.grid.dotColor, config.gridSpacing, config.dotSize]\n );\n\n // Функція для обрізання тексту з додаванням трикрапки\n const truncateText = useCallback((text: string, maxWidth: number, ctx: CanvasRenderingContext2D): string => {\n if (!text) return '';\n\n // Вимірюємо ширину тексту\n const textWidth = ctx.measureText(text).width;\n\n // Повертаємо як є, якщо коротше за максимальну ширину\n if (textWidth <= maxWidth) return text;\n\n // Інакше обрізаємо і додаємо трикрапку\n let truncated = text;\n const ellipsis = '...';\n\n // Поступово зменшуємо текст, поки він не поміститься\n while (ctx.measureText(truncated + ellipsis).width > maxWidth && truncated.length > 0) {\n truncated = truncated.slice(0, -1);\n }\n\n return truncated + ellipsis;\n }, []);\n\n // Розрахунок розміру шрифту на основі масштабу/зуму\n const calculateFontSize = (scale: number): number => {\n // Обмежуємо масштаб до максимального зуму\n const limitedScale = Math.min(scale, config.maxZoom);\n\n // Масштабуємо розмір шрифту пропорційно\n const fontSizeRatio = limitedScale / config.maxZoom;\n\n return Math.max(config.fontSize * fontSizeRatio, config.fontSize);\n };\n\n // Рендеринг зв'язків на полотні - подібно до реалізації Graph2D\n const renderLinks = useCallback(\n (ctx: CanvasRenderingContext2D) => {\n const links = getLinks();\n const nodes = getNodes();\n if (!links || links.length === 0 || !nodes || nodes.length === 0) return;\n ctx.lineWidth = 0.5;\n ctx.globalAlpha = 1.0;\n\n links.forEach((link) => {\n const source = typeof link.source === 'object' ? link.source : nodes.find((n) => n.id === link.source);\n const target = typeof link.target === 'object' ? link.target : nodes.find((n) => n.id === link.target);\n\n if (!source || !target) return;\n\n // Координати для початку і кінця\n const start = { x: source.x || 0, y: source.y || 0 };\n const end = { x: target.x || 0, y: target.y || 0 };\n\n // Обчислення відстані і напрямку\n const dx = end.x - start.x;\n const dy = end.y - start.y;\n const distance = Math.sqrt(dx * dx + dy * dy);\n\n // Нормалізований вектор напрямку\n const unitDx = dx / distance;\n const unitDy = dy / distance;\n\n // Коригування радіусу вузлів\n const sourceRadius = config.nodeSizeBase / 2;\n const targetRadius = config.nodeSizeBase / 2;\n const arrowHeadLength = 4;\n\n // Коригуємо початкову і кінцеву позиції, щоб починалися/закінчувалися на краях вузлів\n const adjustedStart = {\n x: start.x + unitDx * sourceRadius,\n y: start.y + unitDy * sourceRadius,\n };\n\n const adjustedEnd = {\n x: end.x - unitDx * (targetRadius + arrowHeadLength),\n y: end.y - unitDy * (targetRadius + arrowHeadLength),\n };\n\n const adjusteArrowdEnd = {\n x: end.x - unitDx * (targetRadius + 1),\n y: end.y - unitDy * (targetRadius + 1),\n };\n\n // Колір лінії залежить від стану виділення\n const isHighlighted = stateRef.current.highlightLinks.has(link);\n const lineColor = isHighlighted ? theme.graph2D.link.highlighted : theme.graph2D.link.normal;\n const lineWidth = isHighlighted ? 1.5 : 0.5;\n\n // Обчислення середини лінії для розміщення тексту\n const middleX = start.x + (end.x - start.x) / 2;\n const middleY = start.y + (end.y - start.y) / 2;\n const angle = Math.atan2(dy, dx);\n\n // Малюємо лінію у дві частини, якщо є мітка\n if (link.label) {\n // Обчислюємо ширину тексту для проміжку\n const globalScale = stateRef.current.transform.k;\n const scaledFontSize = calculateFontSize(globalScale);\n ctx.font = `${scaledFontSize}px Sans-Serif`;\n const textWidth = ctx.measureText(link.label).width;\n const padding = 10; // Додатковий простір навколо тексту\n\n // Перша частина лінії\n ctx.beginPath();\n ctx.moveTo(adjustedStart.x, adjustedStart.y);\n\n // Обчислюємо точку перед текстом\n const beforeTextDistance = distance / 2 - (textWidth + padding) / 2;\n const pointBeforeText = {\n x: start.x + unitDx * beforeTextDistance,\n y: start.y + unitDy * beforeTextDistance,\n };\n ctx.lineTo(pointBeforeText.x, pointBeforeText.y);\n ctx.strokeStyle = lineColor;\n ctx.lineWidth = lineWidth;\n ctx.stroke();\n\n // Друга частина лінії\n ctx.beginPath();\n // Обчислюємо точку після тексту\n const afterTextDistance = distance / 2 + (textWidth + padding) / 2;\n const pointAfterText = {\n x: start.x + unitDx * afterTextDistance,\n y: start.y + unitDy * afterTextDistance,\n };\n ctx.moveTo(pointAfterText.x, pointAfterText.y);\n ctx.lineTo(adjustedEnd.x, adjustedEnd.y);\n ctx.strokeStyle = lineColor;\n ctx.lineWidth = lineWidth;\n ctx.stroke();\n } else {\n // Малюємо суцільну лінію якщо немає мітки\n ctx.beginPath();\n ctx.moveTo(adjustedStart.x, adjustedStart.y);\n ctx.lineTo(adjustedEnd.x, adjustedEnd.y);\n ctx.strokeStyle = lineColor;\n ctx.lineWidth = lineWidth;\n ctx.stroke();\n }\n\n // Малюємо стрілку\n const arrowHeadWidth = 2;\n\n ctx.save();\n ctx.translate(adjusteArrowdEnd.x, adjusteArrowdEnd.y);\n ctx.rotate(angle);\n\n // Наконечник стрілки\n ctx.beginPath();\n ctx.moveTo(0, 0);\n ctx.lineTo(-arrowHeadLength, arrowHeadWidth);\n ctx.lineTo(-arrowHeadLength, 0);\n ctx.lineTo(-arrowHeadLength, -arrowHeadWidth);\n ctx.closePath();\n\n ctx.fillStyle = lineColor;\n ctx.fill();\n ctx.restore();\n\n // Малюємо мітку, якщо вона є\n if (link.label) {\n // Ми вже обчислили ці значення раніше\n // const середнєX = start.x + (end.x - start.x) / 2;\n // const середнєY = start.y + (end.y - start.y) / 2;\n\n const globalScale = stateRef.current.transform.k; // Використовуємо поточний рівень масштабування\n const scaledFontSize = calculateFontSize(globalScale);\n\n ctx.font = `${scaledFontSize}px Sans-Serif`;\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n\n // Повертаємо текст, щоб він співпадав з кутом лінії\n ctx.save();\n ctx.translate(middleX, middleY);\n\n // Коригуємо обертання, якщо текст буде перевернутим\n if (Math.abs(angle) > Math.PI / 2) {\n ctx.rotate(angle + Math.PI);\n } else {\n ctx.rotate(angle);\n }\n\n // Видалено фон для чистішого вигляду\n\n // Малюємо текст\n ctx.fillStyle = isHighlighted ? theme.graph2D.link.highlightedTextColor : theme.graph2D.link.textColor;\n\n ctx.fillText(link.label, 0, 0);\n ctx.restore();\n }\n });\n },\n [config, theme.graph2D.link]\n );\n\n // Функція для рендерингу кнопок навколо вузла\n const renderNodeButtons = useCallback(\n (node: NodeObject, ctx: CanvasRenderingContext2D) => {\n if (!buttonImages || buttonImages.length === 0) return;\n if (!node || !node.x || !node.y) return;\n\n const { x, y } = node;\n const buttonRadius = (config.nodeSizeBase * config.nodeAreaFactor) / 2;\n\n // Зберігаємо стан канвасу\n ctx.save();\n\n // Обчислюємо кількість кнопок і їхніх секторів\n const buttonCount = Math.min(buttonImages.length, 8); // Обмежуємо до максимум 8 кнопок для ясності інтерфейсу\n const sectorAngle = Math.min((Math.PI * 2) / buttonCount, Math.PI); // Максимальний кут сектора - півколо (PI)\n\n // Малюємо кнопки як сектори навколо вузла\n for (let i = 0; i < buttonCount; i++) {\n const startAngle = i * sectorAngle;\n const endAngle = (i + 1) * sectorAngle;\n const isHovered = stateRef.current.hoveredButtonIndex === i;\n\n // Малюємо фон сектора кнопки\n ctx.beginPath();\n ctx.arc(x, y, buttonRadius, startAngle, endAngle, false);\n ctx.lineTo(x, y);\n ctx.closePath();\n ctx.lineWidth = 1;\n ctx.strokeStyle = theme.graph2D?.button?.stroke || '#FFFFFF';\n ctx.stroke();\n ctx.fillStyle = isHovered\n ? theme.graph2D?.button?.hoverFill || 'rgba(255, 255, 255, 0.3)'\n : theme.graph2D?.button?.normalFill || 'rgba(255, 255, 255, 0.1)';\n ctx.fill();\n\n // Обчислюємо позицію для іконки\n // Розташовуємо іконку в середині сектора\n const iconSize = buttonRadius * 0.2;\n const midAngle = (startAngle + endAngle) / 2;\n const iconDistance = buttonRadius - config.nodeSizeBase / 2 + iconSize; // Коригуємо відстань, щоб уникнути перекриття з вузлом\n const iconX = x + Math.cos(midAngle) * iconDistance;\n const iconY = y + Math.sin(midAngle) * iconDistance;\n\n // Вибираємо відповідну іконку залежно від стану наведення\n const buttonImage = buttonImages[i];\n const icon = isHovered ? buttonImage.hoverImg : buttonImage.normalImg;\n\n // Малюємо іконку\n if (icon.complete) {\n try {\n ctx.drawImage(icon, iconX - iconSize / 2, iconY - iconSize / 2, iconSize, iconSize);\n } catch (error) {\n console.warn('Error rendering button icon:', error);\n }\n } else {\n // Встановлюємо обробник onload, якщо зображення ще не завантажено\n icon.onload = () => {\n if (ctx2dRef.current) {\n try {\n ctx.drawImage(icon, iconX - iconSize / 2, iconY - iconSize / 2, iconSize, iconSize);\n } catch (error) {\n console.warn('Error rendering button icon after load:', error);\n }\n }\n };\n }\n }\n\n ctx.restore();\n },\n [buttonImages, theme.graph2D?.button]\n );\n\n const renderNodes = useCallback(\n (ctx: CanvasRenderingContext2D) => {\n const nodes = getNodes();\n if (!nodes || nodes.length === 0) return;\n\n ctx.globalAlpha = 1.0;\n // Малюємо всі вузли\n nodes.forEach((node) => {\n const { x, y, color: nodeColor, fontColor, label } = node;\n const isHighlighted =\n stateRef.current.highlightNodes.has(node) ||\n node === stateRef.current.hoveredNode ||\n node === stateRef.current.draggedNode;\n const isSelected = node === stateRef.current.selectedNode;\n\n // Розмір та позиція вузла\n const size = config.nodeSizeBase;\n const radius = isSelected ? config.nodeSizeBase / 2 : config.nodeSizeBase / 2;\n\n // Якщо вузол виділено, малюємо кільце підсвічування\n if (isHighlighted && !isSelected) {\n const ringRadius = (config.nodeSizeBase * config.nodeAreaFactor * 0.75) / 2;\n\n ctx.beginPath();\n ctx.arc(x as number, y as number, ringRadius, 0, 2 * Math.PI, false);\n ctx.fillStyle = theme.graph2D.ring.highlightFill;\n ctx.fill();\n }\n\n // Якщо вузол обрано, малюємо кільце вибору та кнопки\n if (isSelected) {\n // Малюємо кнопки навколо обраного вузла, якщо кнопки доступні\n if (buttons && buttons.length > 0) {\n renderNodeButtons(node, ctx);\n } else {\n const ringRadius = (config.nodeSizeBase * config.nodeAreaFactor) / 2;\n\n ctx.beginPath();\n ctx.arc(x as number, y as number, ringRadius, 0, 2 * Math.PI, false);\n ctx.fillStyle = theme.graph2D.ring.selectionFill || theme.graph2D.ring.highlightFill;\n ctx.fill();\n }\n }\n\n // Малюємо коло вузла\n ctx.beginPath();\n ctx.arc(x as number, y as number, radius, 0, 2 * Math.PI);\n ctx.fillStyle = nodeColor || color(node.group || '0');\n ctx.fill();\n\n // Малюємо мітку, якщо вона доступна\n if (label) {\n ctx.save();\n ctx.translate(x as number, y as number);\n\n const globalScale = stateRef.current.transform.k;\n const scaledFontSize = calculateFontSize(globalScale);\n const maxWidth = size * config.textPaddingFactor;\n\n ctx.font = `${scaledFontSize}px Sans-Serif`;\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n ctx.fillStyle = fontColor || '#000';\n\n const truncatedLabel = truncateText(label, maxWidth, ctx);\n ctx.fillText(truncatedLabel, 0, 0);\n\n ctx.restore();\n }\n });\n },\n [theme.graph2D.ring, buttons, renderNodeButtons]\n );\n\n // 2D Canvas rendering for everything\n const renderCanvas2D = useCallback(() => {\n const ctx = ctx2dRef.current;\n if (!ctx) return;\n\n // Отримуємо відношення пікселів пристрою для коректного рендерингу\n\n // Очищуємо весь канвас перед новим рендерингом.\n ctx.clearRect(0, 0, stateRef.current.width, stateRef.current.height);\n\n // Спочатку відображаємо сітку (фон)\n renderGrid(ctx);\n\n // Застосовуємо трансформацію (масштабування та панорамування) - використовуємо матричну трансформацію для кращої продуктивності\n ctx.save();\n\n // Спочатку переміщуємо до позиції панорамування, потім масштабуємо навколо цієї точки\n ctx.setTransform(\n stateRef.current.transform.k,\n 0,\n 0,\n stateRef.current.transform.k,\n stateRef.current.transform.x,\n stateRef.current.transform.y\n );\n\n // Відображаємо зв'язки та вузли\n renderLinks(ctx);\n renderNodes(ctx);\n\n // Відновлюємо контекст\n ctx.restore();\n }, [renderLinks, renderNodes, renderGrid]);\n\n /**\n * Функція для додавання нових вузлів до графа з опціональною плавною анімацією появи\n * @param newNodes Нові вузли для додавання до графа\n * @param newLinks Опціональні нові зв'язки для додавання з вузлами\n * @param options Параметри конфігурації для додавання вузлів\n */\n const addNodes = useCallback(\n (\n newNodes: NodeObject[],\n newLinks: LinkObject[] = [],\n options?: {\n smoothAppearance?: boolean;\n transitionDuration?: number;\n }\n ) => {\n const links = getLinks() || [];\n const nodes = getNodes() || [];\n if (!simulationRef.current || !newNodes.length) return;\n\n const { width: canvasWidth, height: canvasHeight } = stateRef.current; // Опції по умолчанню\n const smoothAppearance = options?.smoothAppearance ?? false;\n const transitionDuration = options?.transitionDuration ?? 1000; // 1 секунда по умолчанню\n\n // Обробляємо нові вузли, щоб уникнути дублікатів\n const existingNodeIds = new Set(nodes.map((node) => node.id));\n const filteredNewNodes = newNodes.filter((node) => !existingNodeIds.has(node.id));\n\n // Обробляємо нові зв'язки, щоб уникнути дублікатів та переконатися, що вони посилаються на дійсні вузли\n const existingLinkIds = new Set(\n links.map(\n (link) =>\n `${typeof link.source === 'object' ? link.source.id : link.source}-${\n typeof link.target === 'object' ? link.target.id : link.target\n }`\n )\n );\n\n const filteredNewLinks = newLinks.filter((link) => {\n const linkId = `${typeof link.source === 'object' ? link.source.id : link.source}-${\n typeof link.target === 'object' ? link.target.id : link.target\n }`;\n return !existingLinkIds.has(linkId);\n });\n\n if (filteredNewNodes.length === 0 && filteredNewLinks.length === 0) return;\n\n const updatedNodes = [...nodes, ...filteredNewNodes];\n const updatedLinks = [...links, ...filteredNewLinks];\n\n // Попереднє позиціонування нових вузлів тільки коли плавна поява увімкнена\n if (smoothAppearance) {\n // Попередньо позиціонуємо нові вузли біля підключених вузлів\n filteredNewNodes.forEach((node) => {\n // Перевіряємо, чи є зв'язки, що поєднують цей вузол з існуючими вузлами\n const connectedLinks = filteredNewLinks.filter((link) => {\n const sourceId = typeof link.source === 'object' ? link.source.id : link.source;\n const targetId = typeof link.target === 'object' ? link.target.id : link.target;\n return (\n (sourceId === node.id && existingNodeIds.has(targetId)) ||\n (targetId === node.id && existingNodeIds.has(sourceId))\n );\n });\n\n if (connectedLinks.length > 0) {\n // Знаходимо існуючий підключений вузол для розташування поряд\n const someLink = connectedLinks[0];\n const connectedNodeId =\n typeof someLink.source === 'object'\n ? someLink.source.id === node.id\n ? someLink.target\n : someLink.source.id\n : someLink.source === node.id\n ? someLink.target\n : someLink.source;\n\n const connectedNode = updatedNodes.find((n) => n.id === connectedNodeId);\n\n if (connectedNode && connectedNode.x !== undefined && connectedNode.y !== undefined) {\n // Розташовуємо новий вузол біля підключеного вузла з невеликою рандомізацією\n const randomOffset = 30 + Math.random() * 20;\n const randomAngle = Math.random() * Math.PI * 2;\n\n // Встановлюємо початкову позицію\n node.x = connectedNode.x + Math.cos(randomAngle) * randomOffset;\n node.y = connectedNode.y + Math.sin(randomAngle) * randomOffset;\n\n // Встановлюємо початкову швидкість в нуль для плавнішої появи\n node.vx = 0;\n node.vy = 0;\n }\n } else {\n // Для непідключених вузлів розміщуємо їх у полі зору у випадкових позиціях\n const centerX = canvasWidth / 2;\n const centerY = canvasHeight / 2;\n const radius = Math.min(canvasWidth, canvasHeight) / 4;\n const angle = Math.random() * Math.PI * 2;\n\n node.x = centerX + Math.cos(angle) * (radius * Math.random());\n node.y = centerY + Math.sin(angle) * (radius * Math.random());\n node.vx = 0;\n node.vy = 0;\n }\n });\n\n // Фіксуємо позиції існуючих вузлів, щоб запобігти їхньому руху\n nodes.forEach((node) => {\n node.fx = node.x;\n node.fy = node.y;\n });\n }\n\n // Оновлюємо симуляцію з новими вузлами та зв'язками\n simulationRef.current.nodes(updatedNodes);\n\n // Отримуємо силу зв'язків із правильним типом\n const linkForce = simulationRef.current.force('link') as ForceLink<NodeObject, LinkObject>;\n if (linkForce) {\n linkForce.links(updatedLinks);\n }\n\n // Підключаємо нові вузли до їхніх сусідів та зв'язків\n filteredNewLinks.forEach((link: any) => {\n const source =\n typeof link.source === 'object' ? link.source : updatedNodes.find((n: any) => n.id === link.source);\n const target =\n typeof link.target === 'object' ? link.target : updatedNodes.find((n: any) => n.id === link.target);\n\n if (!source || !target) return;\n\n // Ініціалізуємо масиви, якщо вони не існують\n !source.neighbors && (source.neighbors = []);\n !target.neighbors && (target.neighbors = []);\n source.neighbors.push(target);\n target.neighbors.push(source);\n\n !source.links && (source.links = []);\n !target.links && (target.links = []);\n source.links.push(link);\n target.links.push(link);\n });\n\n if (smoothAppearance) {\n // Налаштовуємо симуляцію для плавної появи нових вузлів\n simulationRef.current.alphaTarget(0.3);\n simulationRef.current.alpha(0.3);\n simulationRef.current.velocityDecay(0.7); // Більше загасання для плавнішого руху\n simulationRef.current.restart();\n\n // Через короткий час відфіксовуємо всі вузли та скидаємо параметри симуляції\n setTimeout(() => {\n // Звільняємо існуючі вузли, щоб дозволити їм природний рух\n nodes.forEach((node) => {\n node.fx = undefined;\n node.fy = undefined;\n });\n\n // Скидаємо симуляцію до нормальних налаштувань\n simulationRef.current?.alphaTarget(0);\n simulationRef.current?.alpha(0.1);\n simulationRef.current?.velocityDecay(0.6); // Скидаємо до значення за замовчуванням\n }, transitionDuration);\n } else {\n // Стандартний перезапуск з низькою енергією для мінімального руху\n simulationRef.current.alpha(0.1).restart();\n }\n\n // Перемальовуємо канвас\n renderCanvas2D();\n },\n [nodes, renderCanvas2D]\n );\n\n /**\n * Функція для видалення вузлів з графа з опціональною плавною анімацією зникнення\n * @param nodeIds Масив ID вузлів для видалення\n * @param options Параметри конфігурації для видалення вузлів\n */\n const removeNodes = useCallback(\n (nodeIds: (string | number)[]) => {\n const nodes = getNodes();\n const links = getLinks();\n if (!simulationRef.current || !nodeIds.length || !nodes || nodes.length === 0 || !links || links.length === 0)\n return;\n\n // Створюємо набір ID вузлів для швидкого пошуку\n const nodeIdsToRemove = new Set(nodeIds);\n\n // Спочатку перевіряємо, чи видаляємо який-небудь виділений/наведений вузол\n if (\n stateRef.current.selectedNode &&\n stateRef.current.selectedNode.id !== undefined &&\n nodeIdsToRemove.has(stateRef.current.selectedNode.id)\n ) {\n stateRef.current.selectedNode = null;\n }\n\n if (\n stateRef.current.hoveredNode &&\n stateRef.current.hoveredNode.id !== undefined &&\n nodeIdsToRemove.has(stateRef.current.hoveredNode.id)\n ) {\n stateRef.current.hoveredNode = null;\n stateRef.current.highlightNodes = new Set<NodeObject>();\n stateRef.current.highlightLinks = new Set<any>();\n }\n\n // Clear hoveredLink if it involves removed nodes\n if (stateRef.current.hoveredLink) {\n const source =\n typeof stateRef.current.hoveredLink.source === 'object'\n ? stateRef.current.hoveredLink.source.id\n : stateRef.current.hoveredLink.source;\n const target =\n typeof stateRef.current.hoveredLink.target === 'object'\n ? stateRef.current.hoveredLink.target.id\n : stateRef.current.hoveredLink.target;\n\n if (\n (source !== undefined && nodeIdsToRemove.has(source)) ||\n (target !== undefined && nodeIdsToRemove.has(target))\n ) {\n stateRef.current.hoveredLink = null;\n stateRef.current.highlightNodes = new Set<NodeObject>();\n stateRef.current.highlightLinks = new Set<any>();\n }\n }\n\n if (\n stateRef.current.draggedNode &&\n stateRef.current.draggedNode.id !== undefined &&\n nodeIdsToRemove.has(stateRef.current.draggedNode.id)\n ) {\n stateRef.current.draggedNode = null;\n }\n\n // Отримуємо всі вузли, які залишаться після видалення\n const remainingNodes = nodes.filter((node) => node.id !== undefined && !nodeIdsToRemove.has(node.id));\n\n // Отримуємо всі зв'язки, які не підключаються до видалених вузлів\n const remainingLinks = links.filter((link) => {\n const sourceId = typeof link.source === 'object' ? link.source.id : link.source;\n const targetId = typeof link.target === 'object' ? link.target.id : link.target;\n\n return (\n sourceId !== undefined &&\n !nodeIdsToRemove.has(sourceId) &&\n targetId !== undefined &&\n !nodeIdsToRemove.has(targetId)\n );\n });\n\n // Перебудовуємо відносини вузлів (сусіди та зв'язки) для вузлів, що залишилися\n // Спочатку очищаємо існуючі відносини\n remainingNodes.forEach((node) => {\n node.neighbors = [];\n node.links = [];\n });\n\n // Потім перебудовуємо на основі зв'язків, що залишилися\n remainingLinks.forEach((link: any) => {\n const source =\n typeof link.source === 'object' ? link.source : remainingNodes.find((n: any) => n.id === link.source);\n const target =\n typeof link.target === 'object' ? link.target : remainingNodes.find((n: any) => n.id === link.target);\n\n if (!source || !target) return;\n\n // Додаємо до масивів сусідів\n source.neighbors = source.neighbors || [];\n target.neighbors = target.neighbors || [];\n source.neighbors.push(target);\n target.neighbors.push(source);\n\n // Додаємо до масивів зв'язків\n source.links = source.links || [];\n target.links = target.links || [];\n source.links.push(link);\n target.links.push(link);\n });\n\n // Оновлюємо симуляцію з відфільтрованими вузлами та зв'язками\n // але не змінюємо їхні позиції\n simulationRef.current.nodes(remainingNodes);\n\n // Отримуємо та оновлюємо силу зв'язків\n const linkForce = simulationRef.current.force('link') as ForceLink<NodeObject, LinkObject>;\n if (linkForce) {\n linkForce.links(remainingLinks);\n }\n\n // Просто перемальовуємо canvas з новими даними\n renderCanvas2D();\n },\n [renderCanvas2D]\n );\n // Функція для масштабування, щоб усі вузли помістилися в полі зору з відступами\n const zoomToFit = useCallback((duration: number = 0, padding: number = 20) => {\n const nodes = getNodes();\n const ctx = ctx2dRef.current;\n if (!ctx || !canvasRef.current || !nodes || !nodes.length) return;\n\n // Знаходимо межі всіх вузлів\n let minX = Infinity,\n minY = Infinity;\n let maxX = -Infinity,\n maxY = -Infinity;\n\n // Розраховуємо область, що містить усі вузли\n nodes.forEach((node) => {\n if (node.x === undefined || node.y === undefined) return;\n\n const x = node.x;\n const y = node.y;\n\n // Оновлюємо мін/макс координати\n minX = Math.min(minX, x);\n minY = Math.min(minY, y);\n maxX = Math.max(maxX, x);\n maxY = Math.max(maxY, y);\n });\n\n // Якщо у нас валідні межі\n if (isFinite(minX) && isFinite(maxX) && isFinite(minY) && isFinite(maxY)) {\n // Розраховуємо необхідний масштаб, щоб вмістити всі вузли\n const { width: canvasWidth, height: canvasHeight } = stateRef.current;\n\n // Додаємо відступи до області\n minX -= padding;\n minY -= padding;\n maxX += padding;\n maxY += padding;\n\n // Розраховуємо ширину та висоту вмісту\n const contentWidth = maxX - minX;\n const contentHeight = maxY - minY;\n\n // Розраховуємо масштаб, необхідний для розміщення вмісту\n const scaleX = contentWidth > 0 ? canvasWidth / contentWidth : 1;\n const scaleY = contentHeight > 0 ? canvasHeight / contentHeight : 1;\n const scale = Math.min(scaleX, scaleY, 10); // Обмежуємо масштаб до 10x\n\n // Розраховуємо центр вмісту\n const centerX = minX + contentWidth / 2;\n const centerY = minY + contentHeight / 2;\n\n // Розраховуємо нову трансформацію для правильного центрування та масштабування\n const newTransform = {\n k: scale,\n x: canvasWidth / 2 - centerX * scale,\n y: canvasHeight / 2 - centerY * scale,\n };\n\n if (duration > 0) {\n // Анімуємо перехід, якщо вказана тривалість\n const startTransform = { ...stateRef.current.transform };\n const startTime = Date.now();\n\n const animateZoom = () => {\n const t = Math.min(1, (Date.now() - startTime) / duration);\n\n // Використовуємо функцію пом'якшення для плавнішого переходу\n const easedT = t === 1 ? 1 : 1 - Math.pow(1 - t, 3); // Кубічне пом'якшення\n\n // Інтерполюємо між початковою та кінцевою трансформаціями\n const interpolatedTransform = {\n k: startTransform.k + (newTransform.k - startTransform.k) * easedT,\n x: startTransform.x + (newTransform.x - startTransform.x) * easedT,\n y: startTransform.y + (newTransform.y - startTransform.y) * easedT,\n };\n\n stateRef.current.transform = interpolatedTransform;\n renderCanvas2D();\n if (t < 1) {\n requestAnimationFrame(animateZoom);\n }\n };\n\n requestAnimationFrame(animateZoom);\n } else {\n // Застосовуємо трансформацію негайно, якщо немає тривалості\n stateRef.current.transform = newTransform;\n renderCanvas2D();\n }\n }\n }, []);\n\n // Знаходимо вузол за вказаними координатами\n const getNodeAtPosition = useCallback((x: number, y: number): NodeObject | null => {\n const nodes = getNodes();\n if (!nodes || nodes.length === 0) return null;\n\n // Знаходимо будь-який вузол у межах радіусу від вказівника (з урахуванням розміру вузла)\n const nodeRadius = config.nodeSizeBase / 2;\n\n // Масштабуємо координати на основі коефіцієнту щільності пікселів пристрою та застосовуємо зворотну трансформацію\n const pixelRatio = window.devicePixelRatio || 1;\n // Застосовуємо зворотну трансформацію, щоб отримати координати в системі координат графа\n const scaledX = (x * pixelRatio - stateRef.current.transform.x) / stateRef.current.transform.k;\n const scaledY = (y * pixelRatio - stateRef.current.transform.y) / stateRef.current.transform.k;\n\n return (\n nodes.find((node) => {\n const dx = (node.x || 0) - scaledX;\n const dy = (node.y || 0) - scaledY;\n return Math.sqrt(dx * dx + dy * dy) <= nodeRadius;\n }) || null\n );\n }, []);\n\n // Знаходимо лінк за вказаними координатами\n const getLinkAtPosition = useCallback((x: number, y: number): LinkObject | null => {\n const links = getLinks();\n const nodes = getNodes();\n if (!links || links.length === 0 || !nodes || nodes.length === 0) return null;\n\n // Масштабуємо координати на основі коефіцієнту щільності пікселів пристрою та застосовуємо зворотну трансформацію\n const pixelRatio = window.devicePixelRatio || 1;\n // Застосовуємо зворотну трансформацію, щоб отримати координати в системі координат графа\n const scaledX = (x * pixelRatio - stateRef.current.transform.x) / stateRef.current.transform.k;\n const scaledY = (y * pixelRatio - stateRef.current.transform.y) / stateRef.current.transform.k;\n\n // Пороговая відстань для визначення кліку по лінку\n const threshold = 5;\n\n return (\n links.find((link) => {\n const source = typeof link.source === 'object' ? link.source : nodes.find((n) => n.id === link.source);\n const target = typeof link.target === 'object' ? link.target : nodes.find((n) => n.id === link.target);\n\n if (!source || !target) return false;\n\n const sourceX = source.x || 0;\n const sourceY = source.y || 0;\n const targetX = target.x || 0;\n const targetY = target.y || 0;\n\n // Вычисляем расстояние от точки до линии\n const A = scaledX - sourceX;\n const B = scaledY - sourceY;\n const C = targetX - sourceX;\n const D = targetY - sourceY;\n\n const dot = A * C + B * D;\n const lenSq = C * C + D * D;\n\n if (lenSq === 0) return false; // Линия нулевой длины\n\n let param = dot / lenSq;\n param = Math.max(0, Math.min(1, param)); // Ограничиваем параметр отрезком [0, 1]\n\n const xx = sourceX + param * C;\n const yy = sourceY + param * D;\n\n const dx = scaledX - xx;\n const dy = scaledY - yy;\n const distance = Math.sqrt(dx * dx + dy * dy);\n\n return distance <= threshold;\n }) || null\n );\n }, []);\n\n // Допоміжна функція для перевірки, чи знаходиться точка всередині сектора кнопки\n const isPointInButtonSector = useCallback(\n (\n mouseX: number,\n mouseY: number,\n nodeX: number,\n nodeY: number,\n radius: number,\n startAngle: number,\n endAngle: number\n ): boolean => {\n // Розраховуємо відстань від центру вузла до точки миші\n const dx = mouseX - nodeX;\n const dy = mouseY - nodeY;\n const distance = Math.sqrt(dx * dx + dy * dy);\n\n // Розраховуємо кут між точкою та горизонтальною віссю\n let angle = Math.atan2(dy, dx);\n if (angle < 0) angle += 2 * Math.PI; // Конвертуємо в діапазон [0, 2π]\n\n // Розширюємо діапазон радіусу для зручнішої взаємодії з кнопками\n const minRadiusRatio = 0.5;\n const maxRadiusRatio = 1;\n const isInRadius = distance >= radius * minRadiusRatio && distance <= radius * maxRadiusRatio;\n\n // Перевіряємо, чи кут знаходиться в межах сектора\n let isInAngle = false;\n\n // Верхнє півколо: від Math.PI до Math.PI * 2\n if (startAngle === Math.PI && endAngle === Math.PI * 2) {\n isInAngle = angle >= Math.PI && angle <= Math.PI * 2;\n }\n // Нижнє півколо: від 0 до Math.PI\n else if (startAngle === 0 && endAngle === Math.PI) {\n isInAngle = angle >= 0 && angle <= Math.PI;\n }\n // Загальний випадок для довільних секторів\n else {\n isInAngle =\n (startAngle <= endAngle && angle >= startAngle && angle <= endAngle) ||\n (startAngle > endAngle && (angle >= startAngle || angle <= endAngle));\n }\n\n return isInRadius && isInAngle;\n },\n []\n );\n\n // Обробка наведення на вузол (подібно до Graph2D handleNodeHover)\n const handleNodeHover = useCallback(\n (node: NodeObject | null) => {\n // Перевіряємо, чи вузол той самий, що і останній вузол, на який наводили\n if (node === stateRef.current.lastHoveredNodeRef) {\n return; // Пропускаємо обробку, якщо це той самий вузол\n }\n\n // Оновлюємо посилання на останній наведений вузол\n stateRef.current.lastHoveredNodeRef = node;\n\n const newHighlightNodes = new Set<NodeObject>();\n const newHighlightLinks = new Set<any>();\n\n if (node) {\n newHighlightNodes.add(node);\n\n // Додаємо сусідні вузли та зв'язки до підсвічування\n if (node.neighbors) {\n node.neighbors.forEach((neighbor: any) => newHighlightNodes.add(neighbor));\n }\n\n if (node.links) {\n node.links.forEach((link: any) => newHighlightLinks.add(link));\n }\n }\n\n stateRef.current.hoveredNode = node;\n if (onNodeHover) onNodeHover(node);\n stateRef.current.highlightNodes = newHighlightNodes;\n stateRef.current.highlightLinks = newHighlightLinks;\n },\n [onNodeHover]\n );\n\n // Обробка наведення на лінк\n const handleLinkHover = useCallback(\n (link: LinkObject | null) => {\n // Перевіряємо, чи лінк той самий, що і останній лінк, на який наводили\n if (link === stateRef.current.hoveredLink) {\n return; // Пропускаємо обробку, якщо це той самий лінк\n }\n\n const newHighlightNodes = new Set<NodeObject>();\n const newHighlightLinks = new Set<any>();\n\n if (link) {\n // Підсвічуємо сам лінк\n newHighlightLinks.add(link);\n\n // Підсвічуємо пов'язані вузли\n const nodes = getNodes();\n if (nodes) {\n const source = typeof link.source === 'object' ? link.source : nodes.find((n) => n.id === link.source);\n const target = typeof link.target === 'object' ? link.target : nodes.find((n) => n.id === link.target);\n\n if (source) newHighlightNodes.add(source);\n if (target) newHighlightNodes.add(target);\n }\n }\n\n stateRef.current.hoveredLink = link;\n if (onLinkHover) onLinkHover(link);\n stateRef.current.highlightNodes = newHighlightNodes;\n stateRef.current.highlightLinks = newHighlightLinks;\n },\n [onLinkHover, getNodes]\n );\n\n // Обробка кліку на лінк\n const handleLinkClick = useCallback(\n (link: LinkObject) => {\n if (onLinkClick) onLinkClick(link);\n },\n [onLinkClick]\n );\n\n // Обробка кліку на вузол\n const handleNodeClick = useCallback(\n (node: NodeObject) => {\n stateRef.current.selectedNode = node;\n if (onNodeClick) onNodeClick(node);\n },\n [onNodeClick]\n );\n\n // Обробка кліку на фон\n const handleBackgroundClick = useCallback(() => {\n stateRef.current.selectedNode = null;\n if (onBackgroundClick) onBackgroundClick();\n }, [onBackgroundClick]); // Перетягування тепер обробляється через stateRef для покращення продуктивності\n\n const handleMouseDown = useCallback(\n (event: React.MouseEvent<HTMLCanvasElement>) => {\n if (!canvasRef.current || !simulationRef.current) return;\n\n // Отримуємо координати відносно полотна\n const rect = canvasRef.current.getBoundingClientRect();\n const x = event.clientX - rect.left;\n const y = event.clientY - rect.top;\n\n // Зберігаємо початкові координати для подальшого відстеження перетягування\n stateRef.current.mouseStartPos = { x, y };\n stateRef.current.isDragging = false;\n\n // Намагаємося знайти вузол у позиції курсора - обробимо клік при mouseUp, якщо не відбувається перетягування\n const node = getNodeAtPosition(x, y);\n if (node) {\n // Встановлюємо як потенційно перетягуваний, але не активуємо симуляцію поки що\n stateRef.current.draggedNode = node;\n\n // Тимчасово фіксуємо позицію вузла\n node.fx = node.x;\n node.fy = node.y;\n } else {\n // Якщо не клікнули на вузол, починаємо панорамування\n stateRef.current.isPanning = true;\n stateRef.current.lastMousePos = { x, y };\n }\n },\n [getNodeAtPosition]\n );\n\n // Обробка руху миші для перетягування та наведення\n const handleMouseMove = useCallback(\n (event: React.MouseEvent<HTMLCanvasElement>) => {\n if (!canvasRef.current) return;\n\n // Отримуємо координати відносно полотна\n const rect = canvasRef.current.getBoundingClientRect();\n const x = event.clientX - rect.left;\n const y = event.clientY - rect.top;\n\n // Перевіряємо чи почалось перетягування\n if (stateRef.current.draggedNode && stateRef.current.mouseStartPos && simulationRef.current) {\n const startX = stateRef.current.mouseStartPos.x;\n const startY = stateRef.current.mouseStartPos.y;\n\n // Визначаємо відстань переміщення для виявлення факту перетягування\n const dx = x - startX;\n const dy = y - startY;\n const dragDistance = Math.sqrt(dx * dx + dy * dy);\n\n // Якщо відстань досить велика - це перетягування, а не просто клік\n const dragThreshold = 3; // поріг у пікселях\n\n if (dragDistance > dragThreshold) {\n // Це точно операція перетягування, а не просто клік\n stateRef.current.isDragging = true;\n\n // Якщо це перше виявлення перетягування, налаштовуємо симуляцію\n if (simulationRef.current.alphaTarget() === 0) {\n // Встановлюємо alphaTarget на значення, що базується на розмірі вузла для відповідної інтенсивності руху\n const alphaValue = 0;\n simulationRef.current.alphaTarget(alphaValue).restart();\n\n // // Регулюємо швидкість загасання для кращої стабільності під час перетягування\n // const decayValue = 0.2;\n // simulationRef.current.velocityDecay(decayValue);\n }\n }\n\n // Масштабуємо координати на основі співвідношення пікселів пристрою та поточної трансформації\n const pixelRatio = window.devicePixelRatio || 1;\n\n // Застосовуємо зворотну трансформацію, щоб отримати координати у просторі графа\n const scaledX = (x * pixelRatio - stateRef.current.transform.x) / stateRef.current.transform.k;\n const scaledY = (y * pixelRatio - stateRef.current.transform.y) / stateRef.current.transform.k;\n\n // Оновлюємо фіксовані позиції перетягуваного вузла з плавністю\n stateRef.current.draggedNode.fx = scaledX;\n stateRef.current.draggedNode.fy = scaledY;\n\n // if (stateRef.current.isDragging) {\n // // Зменшуємо енергію симуляції під час перетягування для стабільності\n // simulationRef.current.alpha(0); // Зменшуємо енергію системи\n // }\n\n // Немає потреби перевіряти наведення під час перетягування\n return;\n }\n\n // Обробка панорамування\n if (stateRef.current.isPanning && stateRef.current.mouseStartPos) {\n const dx = x - stateRef.current.lastMousePos.x;\n const dy = y - stateRef.current.lastMousePos.y;\n\n // Обчислюємо загальну відстань, пройдену під час панорамування\n const startX = stateRef.current.mouseStartPos.x;\n const startY = stateRef.current.mouseStartPos.y;\n const panDistance = Math.sqrt(Math.pow(x - startX, 2) + Math.pow(y - startY, 2));\n\n // Використовуємо ту ж саму логіку і поріг відстані як і для перетягування вузла\n const panThreshold = 3; // Той самий поріг як і для перетягування вузла\n if (panDistance > panThreshold) {\n // Це точно панорамування, а не просто клік\n stateRef.current.isDragging = true;\n }\n\n // Оновлюємо трансформацію безпосередньо у stateRef\n stateRef.current.transform = {\n ...stateRef.current.transform,\n x: stateRef.current.transform.x + dx,\n y: stateRef.current.transform.y + dy,\n };\n\n stateRef.current.lastMousePos = { x, y };\n renderCanvas2D(); // Перемальовуємо полотно після панорамування\n return;\n }\n\n let shouldRender;\n let hoveredNode;\n\n // Логіка виявлення наведення на кнопки\n if (stateRef.current.selectedNode && canvasRef.current && buttonImages.length > 0) {\n const buttonRadius = (config.nodeSizeBase * config.nodeAreaFactor) / 2;\n\n // Масштабуємо координати відносно розміру відображення полотна\n const canvasScaleX = canvasRef.current.width / rect.width;\n const canvasScaleY = canvasRef.current.height / rect.height;\n\n // Масштабовані координати миші в системі координат полотна\n const scaledMouseX = x * canvasScaleX;\n const scaledMouseY = y * canvasScaleY;\n\n // Застосовуємо поточну трансформацію для отримання світових координат\n const worldX = (scaledMouseX - stateRef.current.transform.x) / stateRef.current.transform.k;\n const worldY = (scaledMouseY - stateRef.current.transform.y) / stateRef.current.transform.k;\n\n // Node position\n const nodeX = stateRef.current.selectedNode.x || 0;\n const nodeY = stateRef.current.selectedNode.y || 0;\n\n // Обчислюємо кількість кнопок та їхні сектори\n const buttonCount = Math.min(buttonImages.length, 8);\n const sectorAngle = Math.min((Math.PI * 2) / buttonCount, Math.PI);\n\n let hoveredIndex = null;\n\n // Перевіряємо, чи вказівник миші знаходиться над будь-яким сектором кнопок\n for (let i = 0; i < buttonCount; i++) {\n const startAngle = i * sectorAngle;\n const endAngle = (i + 1) * sectorAngle;\n\n if (isPointInButtonSector(worldX, worldY, nodeX, nodeY, buttonRadius, startAngle, endAngle)) {\n hoveredIndex = i;\n break;\n }\n }\n if (hoveredIndex !== null) hoveredNode = stateRef.current.selectedNode; // Set hoveredNode to selectedNode for further processing\n if (hoveredIndex !== stateRef.current.hoveredButtonIndex) {\n shouldRender = true; // Only render if hovered button index has changed\n }\n stateRef.current.hoveredButtonIndex = hoveredIndex;\n } else {\n if (stateRef.current.hoveredButtonIndex !== null) stateRef.current.hoveredButtonIndex = null;\n }\n\n if (!hoveredNode) {\n // If no node is hovered, check for link hover\n hoveredNode = getNodeAtPosition(x, y);\n\n // If no node is hovered, check for link hover\n if (!hoveredNode) {\n const hoveredLink = getLinkAtPosition(x, y);\n const shouldRenderLink = hoveredLink !== stateRef.current.hoveredLink;\n\n // Clear node hover state when hovering over a link\n if (hoveredLink && stateRef.current.hoveredNode) {\n handleNodeHover(null);\n }\n\n handleLinkHover(hoveredLink);\n\n // Update cursor style for links\n if (canvasRef.current) {\n canvasRef.current.style.cursor = hoveredLink ? 'pointer' : 'default';\n }\n\n if (shouldRenderLink) {\n renderCanvas2D();\n }\n return;\n }\n }\n\n // Clear link hover state when hovering over a node\n if (hoveredNode && stateRef.current.hoveredLink) {\n handleLinkHover(null);\n }\n\n if (hoveredNode !== stateRef.current.hoveredNode) shouldRender = true;\n\n handleNodeHover(hoveredNode);\n // Перевіряємо наведення та оновлюємо підсвічування\n\n // Змінюємо стиль курсору залежно від наведення\n if (canvasRef.current) {\n canvasRef.current.style.cursor = hoveredNode ? 'pointer' : 'default';\n }\n if (shouldRender) {\n renderCanvas2D(); // Перемальовуємо полотно після зміни наведення\n }\n },\n [\n buttonImages,\n getNodeAtPosition,\n getLinkAtPosition,\n handleNodeHover,\n handleLinkHover,\n renderCanvas2D,\n isPointInButtonSector,\n ]\n );\n\n const handleClick = useCallback((event: React.MouseEvent<HTMLCanvasElement>) => {\n if (stateRef.current.mustBeStoppedPropagation) {\n event.stopPropagation();\n event.preventDefault();\n }\n stateRef.current.mustBeStoppedPropagation = false;\n }, []);\n\n // Обробляємо відпускання кнопки миші для завершення перетягування\n const handleMouseUp = useCallback(\n (event: React.MouseEvent<HTMLCanvasElement>) => {\n const wasDragging = stateRef.current.isDragging;\n\n if (wasDragging) {\n stateRef.current.mustBeStoppedPropagation = true;\n }\n // Обробляємо кліки на вузли або кнопки тільки якщо ми не перетягували\n if (!wasDragging && stateRef.current.mouseStartPos) {\n const rect = canvasRef.current?.getBoundingClientRect();\n if (rect) {\n const x = event.clientX - rect.left;\n const y = event.clientY - rect.top;\n\n // Спочатку перевіряємо, чи ми клікаємо на кнопку обраного вузла\n let isButtonClick = false;\n if (\n stateRef.current.selectedNode &&\n stateRef.current.hoveredButtonIndex !== null &&\n buttons[stateRef.current.hoveredButtonIndex]\n ) {\n // This is a button click, trigger the button's onClick handler\n const button = buttons[stateRef.current.hoveredButtonIndex];\n if (button && button.onClick) {\n button.onClick(stateRef.current.selectedNode);\n isButtonClick = true;\n }\n }\n\n // If not a button click and we have a draggedNode (mouse was pressed on a node), trigger node click\n if (!isButtonClick && stateRef.current.draggedNode) {\n handleNodeClick(stateRef.current.draggedNode);\n } else if (!isButtonClick && !stateRef.current.draggedNode) {\n // Check if we clicked on a link\n const clickedLink = getLinkAtPosition(x, y);\n if (clickedLink) {\n handleLinkClick(clickedLink);\n } else {\n // If we didn't click on a node, button, or link, it's a background click\n // Only trigger background click if there was no dragging\n handleBackgroundClick();\n }\n }\n }\n }\n\n if (stateRef.current.draggedNode && simulationRef.current) {\n // Якщо відбулось реальне перетягування, оптимізуємо параметри симуляції\n if (wasDragging) {\n // Поступово зменшуємо енергію симуляції\n simulationRef.current.alphaTarget(0);\n\n // Оптимізуємо параметри симуляції для кращої стабілізації\n const alphaValue = 0.05; // Низька альфа для плавного затухання\n const alphaDecayValue = 0.04; // Помірний коефіцієнт затухання для швидшої зупинки\n const velocityDecayValue = 0.6; // Стандартний коефіцієнт загасання швидкості після перетягування\n\n simulationRef.current.alpha(alphaValue).alphaDecay(alphaDecayValue);\n simulationRef.current.velocityDecay(velocityDecayValue);\n } else {\n // Якщо це був просто клік, а не перетягування, негайно зупиняємо симуляцію\n simulationRef.current.alphaTarget(0);\n }\n\n // Звільняємо позицію вузла незалежно від того, чи його перетягували або клікали\n stateRef.current.draggedNode.fx = undefined;\n stateRef.current.draggedNode.fy = undefined;\n\n stateRef.current.draggedNode = null;\n }\n\n // Скидаємо всі стани перетягування\n stateRef.current.isDragging = false;\n stateRef.current.mouseStartPos = null;\n\n // End panning if active\n if (stateRef.current.isPanning) {\n stateRef.current.isPanning = false;\n }\n\n renderCanvas2D();\n },\n [buttons, renderCanvas2D, handleNodeClick, handleBackgroundClick, getLinkAtPosition, handleLinkClick]\n );\n\n // Обробляємо подію колеса миші для масштабування\n const handleWheel = useCallback(\n (event: WheelEvent) => {\n event.stopPropagation();\n event.preventDefault();\n\n if (!canvasRef.current) return;\n\n // Отримуємо координати відносно полотна\n const rect = canvasRef.current.getBoundingClientRect();\n const x = event.clientX - rect.left;\n const y = event.clientY - rect.top;\n\n // Обчислюємо коефіцієнт масштабування\n const delta = -event.deltaY;\n const scaleFactor = delta > 0 ? 1.1 : 1 / 1.1;\n\n // Обчислюємо нову трансформацію з масштабуванням навколо позиції миші\n const currentTransform = stateRef.current.transform;\n\n // Обмежуємо рівень масштабування (опціонально)\n const newScale = currentTransform.k * scaleFactor;\n\n if (newScale < 0.01 || newScale > 10) return;\n const newK = currentTransform.k * scaleFactor;\n\n // Обчислюємо нове переміщення для центрування масштабування на позиції миші\n const newX = x - (x - currentTransform.x) * scaleFactor;\n const newY = y - (y - currentTransform.y) * scaleFactor;\n\n // Update transform in stateRef\n stateRef.current.transform = {\n k: newK,\n x: newX,\n y: newY,\n };\n renderCanvas2D();\n },\n [renderCanvas2D]\n );\n\n useImperativeHandle(\n ref,\n () => ({\n zoomToFit,\n addNodes,\n removeNodes,\n }),\n [zoomToFit, addNodes, removeNodes]\n );\n\n useEffect(() => {\n // Initialize canvas context\n const canvasElement = canvasRef.current;\n const { width: canvasWidth, height: canvasHeight } = stateRef.current;\n if (!canvasElement) return;\n\n // Initialize Canvas 2D context\n init2DCanvas();\n setIsRendering(true);\n\n // Розрахунок центральної позиції з урахуванням розміру полотна\n const centerX = canvasWidth / 2;\n const centerY = canvasHeight / 2;\n\n // Ініціалізація силової симуляції D3\n const nodeSize = config.nodeSizeBase;\n const nodeRadius = nodeSize / 2;\n const linkDistance = nodeSize * 2.5; // Розрахунок відстані між зв'язками на основі розміру вузла\n\n if (simulationRef.current) simulationRef.current.stop();\n const simulation = (simulationRef.current = forceSimulation(nodes)\n .force(\n 'link',\n forceLink(links)\n .id((d: any) => d.id)\n .distance(linkDistance) // Адаптивна відстань між вузлами на основі розміру\n .strength(0.9) // Зменшуємо силу зв'язків (значення від 0 до 1)\n )\n .force(\n 'charge',\n forceManyBody()\n .strength((-nodeSize / 10) * 200) // Силу відштовхування на основі розміру вузла\n .theta(0.5) // Оптимізація для стабільності (0.5-1.0)\n .distanceMin(nodeSize * 2)\n )\n .force('x', forceX().strength(0.03)) // Слабка сила для стабілізації по осі X\n .force('y', forceY().strength(0.03)) // Слабка сила для стабілізації по осі Y\n .force('center', forceCenter(centerX, centerY).strength(0.05)) // Слабка сила центрування\n .force(\n 'collide',\n forceCollide()\n .radius(nodeRadius * 2) // Радіус колізії залежно від розміру вузла\n .iterations(2) // Більше ітерацій для кращого запобігання перекриття\n .strength(1) // Збільшуємо силу запобігання колізіям\n )\n .velocityDecay(0.6)); // Коефіцієнт затухання швидкості для зменшення \"тряски\"\n\n return () => {\n // Cleanup\n simulation.stop();\n };\n }, [nodes, links]);\n\n useLayoutEffect(() => {\n const canvasElement = canvasRef.current;\n if (!canvasElement) return;\n stateRef.current.width = width * RATIO;\n stateRef.current.height = height * RATIO;\n canvasElement.width = stateRef.current.width;\n canvasElement.height = stateRef.current.height;\n }, [width, height]);\n\n useEffect(() => {\n if (simulationRef.current) {\n const simulation = simulationRef.current;\n\n // Update node positions on each tick\n\n simulation.on('tick', () => {\n renderCanvas2D();\n });\n\n // When simulation ends, stop rendering indicator\n simulation.on('end', () => {\n // Render one last time\n\n if (isRendering) {\n zoomToFit(0, 20); // Zoom to fit after rendering\n setTimeout(() => {\n setIsRendering(false);\n }, 200);\n }\n });\n }\n\n if (!isRendering) {\n renderCanvas2D();\n }\n }, [nodes, links, isRendering, renderCanvas2D, zoomToFit]);\n\n // Set up node relationships (neighbors and links)\n useEffect(() => {\n if (!nodes || !links) return;\n\n // Connect nodes to their neighbors and links\n links.forEach((link: any) => {\n const source = typeof link.source === 'object' ? link.source : nodes.find((n: any) => n.id === link.source);\n const target = typeof link.target === 'object' ? link.target : nodes.find((n: any) => n.id === link.target);\n\n if (!source || !target) return;\n\n // Initialize arrays if they don't exist\n !source.neighbors && (source.neighbors = []);\n !target.neighbors && (target.neighbors = []);\n source.neighbors.push(target);\n target.neighbors.push(source);\n\n !source.links && (source.links = []);\n !target.links && (target.links = []);\n source.links.push(link);\n target.links.push(link);\n });\n }, [nodes, links]);\n\n // Initialize button images\n useEffect(() => {\n if (buttons && buttons.length > 0) {\n setButtonImages(prepareButtonImages(buttons));\n }\n }, [buttons]);\n\n // Add wheel event listener with passive: false\n useEffect(() => {\n const canvas = canvasRef.current;\n if (!canvas) return;\n\n // Add event listener with passive: false to allow preventDefault\n canvas.addEventListener('wheel', handleWheel, { passive: false });\n\n // Clean up when component unmounts\n return () => {\n canvas.removeEventListener('wheel', handleWheel);\n };\n }, [handleWheel]);\n\n return (\n <Wrapper>\n {(loading || isRendering) && <GraphLoader width={width} height={height} />}\n <Canvas\n ref={canvasRef}\n style={{ width, height, display: loading || isRendering ? 'none' : 'block' }}\n onMouseDown={handleMouseDown}\n onMouseMove={handleMouseMove}\n onMouseUp={handleMouseUp}\n onMouseLeave={handleMouseUp}\n onClick={handleClick}\n />\n </Wrapper>\n );\n }\n);\n\nconst Wrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n min-width: 0;\n position: relative;\n`;\n\nconst Canvas = styled.canvas``;\n\n// Add display name for better debugging\nGraph2D.displayName = 'Graph2D';\n","import styled from 'styled-components';\nimport { pxToRem } from '../Theme';\n\ninterface FullscreenCardProps {\n children: any;\n className?: string;\n position: 'absolute' | 'fixed';\n isActive: boolean;\n top?: number;\n left?: number;\n right?: number;\n bottom?: number;\n}\n\nexport const FullscreenCard = ({\n isActive,\n position,\n top = 0,\n left = 0,\n right,\n bottom,\n ...props\n}: FullscreenCardProps) => {\n return (\n <StyledContainer\n $isActive={isActive}\n $position={position}\n $top={top}\n $left={left}\n $right={right}\n $bottom={bottom}\n {...props}\n />\n );\n};\n\nconst StyledContainer = styled.div<{\n $isActive: boolean;\n $top?: number;\n $left?: number;\n $right?: number;\n $bottom?: number;\n $position: 'absolute' | 'fixed';\n}>(\n ({ $isActive, $top, $left, $right, $bottom, $position, theme }) => `\n${\n $isActive\n ? `\n position: ${$position};\n z-index: 1000;\n ${$top ? `top: ${pxToRem($top, theme.baseSize)};` : ''}\n ${$left ? `left: ${pxToRem($left, theme.baseSize)};` : ''}\n ${$right ? `right: ${pxToRem($right, theme.baseSize)};` : ''}\n ${$bottom ? `bottom: ${pxToRem($bottom, theme.baseSize)};` : ''}\n `\n : ''\n}\n\n min-width: 0;\n `\n);\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/Core/Button/Button.tsx","../src/Theme/GlobalStyle.tsx","../src/Theme/utils.ts","../src/Theme/themes/config.ts","../src/Theme/themes/light.ts","../src/Theme/themes/dark.ts","../src/Theme/ThemeProvider.tsx","../src/Theme/componentFabric.ts","../src/Theme/useTheme.tsx","../src/Core/IconComponents/AlertIcon.tsx","../src/Core/IconComponents/ApiIcon.tsx","../src/Core/IconComponents/ArrowCircleTopRightIcon.tsx","../src/Core/IconComponents/ArrowRightIcon.tsx","../src/Core/IconComponents/BugReportIcon.tsx","../src/Core/IconComponents/CalendarIcon.tsx","../src/Core/IconComponents/ChevronLeftIcon.tsx","../src/Core/IconComponents/ChevronRightIcon.tsx","../src/Core/IconComponents/CloseCircleIcon.tsx","../src/Core/IconComponents/ClosedLockIcon.tsx","../src/Core/IconComponents/DataSetsIcon.tsx","../src/Core/IconComponents/DeepSearchIcon.tsx","../src/Core/IconComponents/DisabledVisibleIcon.tsx","../src/Core/IconComponents/DocsIcon.tsx","../src/Core/IconComponents/DownloadIcon.tsx","../src/Core/IconComponents/EditUserIcon.tsx","../src/Core/IconComponents/EnableVisibleIcon.tsx","../src/Core/IconComponents/EnterArrowLeftIcon.tsx","../src/Core/IconComponents/FiltersIcon.tsx","../src/Core/IconComponents/HomepageIcon.tsx","../src/Core/IconComponents/InfoCircleIcon.tsx","../src/Core/IconComponents/MapRadarIcon.tsx","../src/Core/IconComponents/MoonIcon.tsx","../src/Core/IconComponents/OpenLockIcon.tsx","../src/Core/IconComponents/OrganizationIcon.tsx","../src/Core/IconComponents/PasswordFinderIcon.tsx","../src/Core/IconComponents/PhonebookIcon.tsx","../src/Core/IconComponents/PrintIcon.tsx","../src/Core/IconComponents/Profiler2Icon.tsx","../src/Core/IconComponents/ProfilerIcon.tsx","../src/Core/IconComponents/SandBoxIcon.tsx","../src/Core/IconComponents/SearchIcon.tsx","../src/Core/IconComponents/StatisticIcon.tsx","../src/Core/IconComponents/SunIcon.tsx","../src/Core/IconComponents/UpRightArrowCircleIcon.tsx","../src/Core/IconComponents/VectorIcon.tsx","../src/Core/IconComponents/BallsMenu.tsx","../src/Core/IconComponents/Check.tsx","../src/Core/IconComponents/ChevronDown.tsx","../src/Core/IconComponents/ChevronUp.tsx","../src/Core/IconComponents/Plus.tsx","../src/Core/IconComponents/Users.tsx","../src/Core/IconComponents/InfoCircleFilled.tsx","../src/Core/IconComponents/Unfold.tsx","../src/Core/IconComponents/Cross.tsx","../src/Core/IconComponents/MaximizeIcon.tsx","../src/Core/IconComponents/BusIcon.tsx","../src/Core/IconComponents/CarIcon.tsx","../src/Core/IconComponents/WayIcon.tsx","../src/Core/IconComponents/PlaneIcon.tsx","../src/Core/IconComponents/ShipIcon.tsx","../src/Core/IconComponents/FileIcon.tsx","../src/Core/IconComponents/IosIcon.tsx","../src/Core/IconComponents/AndroidIcon.tsx","../src/Core/IconComponents/MicrosoftIcon.tsx","../src/Core/IconComponents/FolderAlertIcon.tsx","../src/Core/IconComponents/RelationIcon.tsx","../src/Core/IconComponents/RelationPointsIcon.tsx","../src/Core/Sidebar/Sidebar.tsx","../src/Core/Sidebar/SidebarContext.tsx","../src/Core/Sidebar/SidebarItem.tsx","../src/Core/Sidebar/SidebarDelimeter.tsx","../src/Core/Sidebar/SidebarSection.tsx","../src/Core/Typography/Typography.tsx","../src/Core/ListMenu/ListMenu.tsx","../src/Core/ListMenu/ListMenuItem.tsx","../src/Core/ListMenu/ListMenuSection.tsx","../src/Core/Header/Header.tsx","../src/Core/Header/HeaderDelimeter.tsx","../src/Core/Header/HeaderSection.tsx","../src/Core/Table/Row.tsx","../src/Core/Table/Cell.tsx","../src/Core/Table/Table.tsx","../src/Core/Pagination/Pagination.tsx","../src/Core/ContextMenu/ContextMenu.tsx","../src/Core/ContextMenu/ContextMenuDelimiter.tsx","../src/Core/ContextMenu/useContextMenuControl.ts","../src/Core/Select/Select.tsx","../src/Core/RowActionsMenu/RowActionsMenu.tsx","../src/Core/Input/Input.tsx","../src/Core/Flex/FlexContainer.tsx","../src/Core/Flex/FlexItem.tsx","../src/Core/Box/Box.tsx","../src/Core/Line/Line.tsx","../src/Core/EmptyData/EmptyData.tsx","../src/Core/Tag/Tag.tsx","../src/Core/Alert/Alert.tsx","../src/Core/Label/Label.tsx","../src/Core/Checkbox/Checkbox.tsx","../src/Core/LinerProgress/LinerProgress.tsx","../src/Core/Switch/Switch.tsx","../src/utils.ts","../src/Core/Drawer/Drawer.tsx","../src/Layouts/PageLayout/PageLayout.tsx","../src/Layouts/Container/Container.tsx","../src/Graph2D/GraphLoader.tsx","../src/Graph2D/Graph2D.tsx","../src/FullscreenCard/FullscreenCard.tsx"],"names":["GlobalStyle","createGlobalStyle","theme","resolveThemeColor","__name","colorPath","parts","category","variant","colorCategory","pxToRem","pxValue","baseSize","numericValue","remToPx","remValue","IGNORE_CONVERT_KEYS","propToRem","value","convertPaletteToRem","obj","parentKey","result","key","prop","getButtonStyles","color","state","getButtonSizeStyles","size","getInputStyles","getTypographyStyles","getBreakpoint","hexToRgba","hex","alpha","g","b","zIndex","breakpoints","typography","lightThemePx","lightTheme","darkThemePx","darkTheme","ThemeProvider","children","mode","jsx","StyleSheetManager","shouldForwardProp","jsxs","ThemeProviderStyled","propName","target","marginStyles","ignoreStyles","css","props","generatePropertySpaceStyle","paddingStyles","property","ignoredOptions","createComponent","component","options","styled","destructSpaceProps","rest","useTheme","useStyledTheme","getCss","styles","getIconStyles","ButtonTextContainer","StyledIconWrapper","Btn","$variant","$color","$size","$disabled","$fullWidth","$iconPosition","$iconVariant","px","py","sizes","StyledButton","Button","disabled","fullWidth","className","icon","iconPosition","iconVariant","AlertIcon","fill","ApiIcon","ArrowCircleTopRightIcon","ArrowRightIcon","BugReportIcon","CalendarIcon","ChevronLeftIcon","ChevronRightIcon","CloseCircleIcon","ClosedLockIcon","DataSetsIcon","DeepSearchIcon","DisabledVisibleIcon","DocsIcon","DownloadIcon","EditUserIcon","EnableVisibleIcon","EnterArrowLeftIcon","FiltersIcon","HomepageIcon","InfoCircleIcon","MapRadarIcon","MoonIcon","OpenLockIcon","OrganizationIcon","PasswordFinderIcon","PhonebookIcon","PrintIcon","Profiler2Icon","ProfilerIcon","SandBoxIcon","SearchIcon","stroke","StatisticIcon","SunIcon","UpRightArrowCircleIcon","VectorIcon","BallsMenu","CheckIcon","ChevronDownIcon","ChevronUpIcon","PlusIcon","UsersIcon","InfoCircleFilledIcon","UnfoldIcon","CrossIcon","MaximizeIcon","BusIcon","CarIcon","WayIcon","PlaneIcon","ShipIcon","FileIcon","IosIcon","AndroidIcon","MicrosoftIcon","FolderAlertIcon","RelationIcon","RelationPointsIcon","SidebarContext","createContext","Sidebar","defaultCollapsed","collapsed","setCollapsed","React","StyledContainer","$collapsed","SidebarItem","active","Icon","label","useContext","isAnchor","StyledItem","StyledText","$active","SidebarDelimeter","StyledDelimeter","SidebarSection","grow","shrink","basis","items","StyledSection","$grow","$shrink","$basis","StyledTypography","$weight","$style","$ellipsis","Typography","element","weight","fontStyle","style","ellipsis","Element","ListMenu","width","StyledList","$width","ListMenuItem","count","StyledLink","StyledCount","ListMenuSection","title","StyledTitle","Header","HeaderDelimeter","HeaderSection","justify","$justify","Row","HeadCell","Cell","Table","columns","rowCount","renderCell","renderHeaderCell","rowIds","cellCount","data","useMemo","i","j","StyledTable","StyledHead","id","cells","rowIndex","cell","cellIndex","PAGINATION_LIMIT","DIFF","VISIBLE_GROUPE","STEP","ELLIPSIS","Pagination","total_items","limit","offset","onChangePage","currentPage","pages","paginationItems","lastPage","isDisabled","useCallback","page","onPaginationClick","FlexGroup","idx","$current","ContextMenu","isOpen","onClickOutside","onClick","anchor","positions","align","hasBorder","maxHeight","matchAnchorWidth","anchorWidth","setAnchorWidth","useState","buttonRef","useRef","useLayoutEffect","Popover","StyledAnchor","$hasBorder","ContextMenuDelimiter","useContextMenuControl","setIsOpen","prev","Select","selected","onSelect","placeholder","isSearchable","searchValue","setSearchValue","visibleOptions","normalizedValue","inputDisplay","handleToggle","noOptionsMessage","inputPlaceholder","StyledSearchInput","e","option","StyledWrapper","item","NoMatchMessage","$selected","RowActionsMenu","closeMenu","toggleMenu","ContentWrapper","Input","forwardRef","error","append","prepend","multiline","ref","Group","InputGroup","TextAreaInput","StyledInput","IconWrapper","rows","autoResize","areaSize","setAreaSize","rowsRef","divRef","rowHeight","useEffect","height","StyledTextarea","SizeContainer","$autoResize","$align","$error","$multiline","FlexContainer","direction","wrap","alignContent","gap","rowGap","columnGap","as","StyledFlexContainer","$direction","$wrap","$alignContent","$gap","$rowGap","$columnGap","FlexItem","order","StyledFlexItem","$order","Box","StyledBox","Line","StyledLine","EmptyData","note","Container","Tag","onDelete","Content","DeleteButton","$clickable","Alert","Title","Note","alert","pl","pr","Label","helpText","errorText","$isRow","StyledLabel","LabelWrapper","LabelText","HelpText","Wrapper","ErrorText","mb","Checkbox","spaceProps","StyledCheckbox","HiddenInput","CustomCheckbox","LinerProgress","$height","$value","Switch","StyledSwitch","useBodyScrollLock","isLocked","originalStyle","scrollBarWidth","originalPaddingRight","originalOverflow","Drawer","createPortal","DrawerWithOutclick","onClose","header","drawerRef","handleClick","StyledDrawer","DrawerHeader","p","DrawerBody","pb","$header","PageLayout","sidebar","StyledMain","$withHeader","$withSidebar","maxWidth","$maxWidth","LoaderWrapper","GraphLoader","ContentLoader","GraphLoader_default","RATIO","prepareButtonImages","buttons","button","normalImg","hoverImg","config","Graph2D","loading","graphData","onNodeClick","onBackgroundClick","onNodeHover","onLinkHover","onLinkClick","isRendering","setIsRendering","stateRef","nodes","links","cloneDeep","buttonImages","setButtonImages","canvasRef","simulationRef","ctx2dRef","scaleOrdinal","schemeCategory10","init2DCanvas","ctx","getNodes","getLinks","linkForce","renderGrid","canvasWidth","canvasHeight","gridSpacing","dotSize","x","y","truncateText","text","truncated","calculateFontSize","scale","fontSizeRatio","renderLinks","link","source","n","start","end","dx","dy","distance","unitDx","unitDy","sourceRadius","targetRadius","arrowHeadLength","adjustedStart","adjustedEnd","adjusteArrowdEnd","isHighlighted","lineColor","lineWidth","middleX","middleY","angle","globalScale","scaledFontSize","textWidth","padding","beforeTextDistance","pointBeforeText","afterTextDistance","pointAfterText","arrowHeadWidth","renderNodeButtons","node","buttonRadius","buttonCount","sectorAngle","startAngle","endAngle","isHovered","iconSize","midAngle","iconDistance","iconX","iconY","buttonImage","renderNodes","nodeColor","fontColor","isSelected","radius","ringRadius","truncatedLabel","renderCanvas2D","addNodes","newNodes","newLinks","smoothAppearance","transitionDuration","existingNodeIds","filteredNewNodes","existingLinkIds","filteredNewLinks","linkId","updatedNodes","updatedLinks","connectedLinks","sourceId","targetId","someLink","connectedNodeId","connectedNode","randomOffset","randomAngle","centerX","centerY","removeNodes","nodeIds","nodeIdsToRemove","remainingNodes","remainingLinks","zoomToFit","duration","minX","minY","maxX","maxY","contentWidth","contentHeight","scaleX","scaleY","newTransform","startTransform","startTime","animateZoom","t","easedT","interpolatedTransform","getNodeAtPosition","nodeRadius","pixelRatio","scaledX","scaledY","getLinkAtPosition","threshold","sourceX","sourceY","targetX","targetY","A","B","C","D","dot","lenSq","param","xx","yy","isPointInButtonSector","mouseX","mouseY","nodeX","nodeY","isInRadius","isInAngle","handleNodeHover","newHighlightNodes","newHighlightLinks","neighbor","handleLinkHover","handleLinkClick","handleNodeClick","handleBackgroundClick","handleMouseDown","event","rect","handleMouseMove","startX","startY","shouldRender","hoveredNode","canvasScaleX","canvasScaleY","scaledMouseX","scaledMouseY","worldX","worldY","hoveredIndex","hoveredLink","shouldRenderLink","handleMouseUp","wasDragging","isButtonClick","clickedLink","alphaValue","alphaDecayValue","velocityDecayValue","handleWheel","scaleFactor","currentTransform","newScale","newK","newX","newY","useImperativeHandle","canvasElement","nodeSize","linkDistance","simulation","forceSimulation","forceLink","d","forceManyBody","forceX","forceY","forceCenter","forceCollide","canvas","Canvas","FullscreenCard","isActive","position","top","left","right","bottom","$isActive","$top","$left","$right","$bottom","$position"],"mappings":"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","file":"index.js","sourcesContent":["import React from 'react';\nimport styled from 'styled-components';\nimport {\n ButtonVariant,\n ButtonSize,\n ButtonColor,\n getButtonStyles,\n getButtonSizeStyles,\n ButtonElementStyle,\n createComponent,\n FabricComponent,\n generatePropertySpaceStyle,\n} from '../../Theme';\n\ntype BaseButtonProps = FabricComponent<{\n children?: any;\n variant?: ButtonVariant;\n color?: ButtonColor;\n size?: ButtonSize;\n disabled?: boolean;\n fullWidth?: boolean;\n className?: string;\n icon?: any;\n iconPosition?: 'left' | 'right';\n iconVariant?: 'filled' | 'empty';\n}>;\n\nexport type ButtonProps = (\n | Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'children'>\n | Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'children'>\n) &\n BaseButtonProps;\n\nconst getCss = (styles: ButtonElementStyle) => `\n background: ${styles.background};\n color: ${styles.text};\n border-color: ${styles.border};\n box-shadow: ${styles.boxShadow};\n `;\n\nconst getIconStyles = (styles: ButtonElementStyle) =>\n styles.filledIcon\n ? `\n color: ${styles.filledIcon.color};\n background: ${styles.filledIcon.background};\n `\n : '';\n\n// Створюємо стилізований компонент, що використовує уніфіковану палітру\nconst ButtonTextContainer = styled.div`\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n user-select: text;\n`;\n\nconst StyledIconWrapper = styled.span`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n`;\n\ntype StyledButtonProps = {\n $variant: ButtonVariant;\n $color: ButtonColor;\n $size: ButtonSize;\n $disabled: boolean;\n $fullWidth: boolean;\n $iconPosition: 'left' | 'right';\n $iconVariant: 'filled' | 'empty';\n};\n\nconst Btn = styled.button<FabricComponent<StyledButtonProps>>(\n ({\n $variant,\n $color,\n $size,\n $disabled,\n $fullWidth,\n $iconPosition,\n $iconVariant,\n theme,\n px = $variant !== 'empty' ? theme.button.sizes[$size].paddingInline : 0,\n py = $variant !== 'empty' ? theme.button.sizes[$size].paddingBlock : 0,\n }) => {\n const sizes = getButtonSizeStyles(theme, $size);\n return `\n ${getCss(getButtonStyles(theme, $variant, $color, 'default'))}\n font-size: ${sizes.fontSize};\n gap: ${sizes.gap};\n ${generatePropertySpaceStyle(theme, 'padding-block', py)};\n ${generatePropertySpaceStyle(theme, 'padding-inline', px)};\n border-radius: ${sizes.borderRadius};\n border-width: ${sizes.borderWidth};\n border-style: solid;\n max-width: 100%;\n width: ${$fullWidth ? '100%' : 'auto'};\n cursor: ${$disabled ? 'not-allowed' : 'pointer'};\n font-weight: 500;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n text-decoration: none;\n transition: all 0.2s ease;\n outline: none;\n user-select: text;\n\n ${$iconPosition === 'right' ? 'flex-direction: row-reverse;' : ''}\n\n &:hover {\n ${getCss(getButtonStyles(theme, $variant, $color, 'hover'))}\n }\n\n &:active {\n ${getCss(getButtonStyles(theme, $variant, $color, 'active'))}\n }\n\n &:disabled {\n ${getCss(getButtonStyles(theme, $variant, $color, 'disabled'))}\n }\n\n ${StyledIconWrapper} svg {\n width: ${sizes.iconSize};\n height: ${sizes.iconSize};\n }\n\n ${\n $iconVariant === 'filled'\n ? `\n ${StyledIconWrapper} {\n width: 24px;\n height: 24px;\n border-radius: ${sizes.borderRadius};\n transition: all 0.2s ease;\n ${getIconStyles(getButtonStyles(theme, $variant, $color, 'default'))}\n }\n &:hover {\n ${StyledIconWrapper} {\n ${getIconStyles(getButtonStyles(theme, $variant, $color, 'hover'))}\n }\n }\n\n &:active {\n ${StyledIconWrapper} {\n ${getIconStyles(getButtonStyles(theme, $variant, $color, 'active'))}\n }\n }\n\n &:disabled {\n ${StyledIconWrapper} {\n ${getIconStyles(getButtonStyles(theme, $variant, $color, 'disabled'))}\n }\n }\n `\n : ``\n }\n `;\n }\n);\nconst StyledButton = createComponent(Btn);\n\nexport const Button = ({\n children,\n variant = 'fill',\n color = 'primary',\n size = 'medium',\n disabled = false,\n fullWidth = false,\n className,\n icon,\n iconPosition = 'left',\n iconVariant = 'empty',\n ...props\n}: ButtonProps) => {\n return (\n <StyledButton\n as={'href' in props ? 'a' : 'button'}\n $variant={variant}\n $color={color}\n $size={size}\n $disabled={disabled}\n $fullWidth={fullWidth}\n $iconPosition={iconPosition}\n $iconVariant={iconVariant}\n disabled={disabled}\n className={className}\n {...props}\n >\n {!!icon && <StyledIconWrapper>{icon}</StyledIconWrapper>}\n {!!children && <ButtonTextContainer>{children}</ButtonTextContainer>}\n </StyledButton>\n );\n};\n","import { createGlobalStyle } from 'styled-components';\n\nexport const GlobalStyle = createGlobalStyle(\n ({ theme }) => `\n *, *::before, *::after {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n }\n\n body, html {\n background: ${theme.colors.backgroundBase};\n color: ${theme.colors.text.main};\n font-family: ${theme.typography.fontFamily};\n font-size: ${theme.baseSize}px;\n }\n`\n);\n","import { DefaultTheme } from 'styled-components';\nimport { Breakpoint, ButtonColor, ButtonSize, ButtonState, ButtonVariant, InputState, InputVariant } from './types';\n\n/**\n * Helper function to resolve nested color paths from theme\n * Supports formats like 'primary.main', 'text.lightest', 'background'\n *\n * @param theme - The styled-components theme object\n * @param colorPath - A dot-notation path to the color in the theme, e.g. 'primary.main'\n * @returns The resolved color value or undefined if not found\n */\nexport const resolveThemeColor = (theme: DefaultTheme, colorPath: string | undefined): string | undefined => {\n // Skip processing if not a string or empty\n if (!colorPath || typeof colorPath !== 'string') {\n return undefined;\n }\n\n // Check if it's a color path (contains dot) or a top-level theme color property\n const isThemeColorPath = colorPath.includes('.') || theme.colors.hasOwnProperty(colorPath);\n\n // Return early if it's not a theme color path\n if (!isThemeColorPath) {\n return colorPath; // Return as-is if it's not a theme color path\n }\n\n const parts = colorPath.split('.');\n\n if (parts.length === 1) {\n // For simple color keys like 'background', 'disable'\n return theme.colors[parts[0] as keyof typeof theme.colors] as string;\n } else if (parts.length === 2) {\n // For nested color keys like 'primary.main', 'text.light'\n const [category, variant] = parts;\n const colorCategory = theme.colors[category as keyof typeof theme.colors];\n\n if (colorCategory && typeof colorCategory === 'object') {\n return colorCategory[variant as keyof typeof colorCategory] as string;\n }\n }\n\n return undefined;\n};\n\n/**\n * Converts a pixel value to rem units\n *\n * @param pxValue - The pixel value to convert. Can be a number or a string with 'px' suffix\n * @param baseSize - Base font size in pixels. Default is 16px (browser default)\n * @returns The value in rem units as a string (e.g., \"1.25rem\")\n */\nexport const pxToRem = (pxValue: number | string, baseSize: number = 16): string => {\n // If pxValue is a string with 'px' suffix, extract the numeric value\n const numericValue = typeof pxValue === 'string' ? parseFloat(pxValue.replace('px', '')) : pxValue;\n\n // Handle invalid values\n if (isNaN(numericValue)) {\n console.warn(`Invalid pixel value: ${pxValue}`);\n return '0';\n }\n\n // Convert to rem and round to 4 decimal places for precision\n const remValue = (numericValue / baseSize).toFixed(4).replace(/\\.?0+$/, '');\n\n return `${remValue}rem`;\n};\n\nexport const remToPx = (remValue: number | string, baseSize: number = 16): number => {\n // If remValue is a string with 'rem' suffix, extract the numeric value\n const numericValue = typeof remValue === 'string' ? parseFloat(remValue.replace('rem', '')) : remValue;\n if (isNaN(numericValue)) {\n return 0;\n }\n\n return numericValue * baseSize;\n};\n\nconst IGNORE_CONVERT_KEYS: Record<string, string[] | boolean> = {\n contextMenu: ['padding'],\n baseSize: true,\n};\n\n/**\n * Converts a prop value to rem units if needed\n *\n * @param value - The pixel value to convert. Can be a number or a string with 'px' suffix\n * @param baseSize - Base font size in pixels. Default is 16px (browser default)\n * @returns The value in rem units as a string (e.g., \"1.25rem\")\n */\nexport const propToRem = (value: number | string, baseSize: number = 16): string => {\n // Check if value ends with units that should not be converted to rem\n if (typeof value === 'string' && /(%|d?vh|d?vw)$/.test(value.trim())) {\n return value; // Return percentage and viewport values as-is\n }\n\n const numericValue = typeof value === 'string' ? parseFloat(value) : value;\n\n // Handle invalid values\n if (isNaN(numericValue)) {\n return `${value}`;\n }\n\n // Convert to rem and round to 4 decimal places for precision\n const remValue = (numericValue / baseSize).toFixed(4).replace(/\\.?0+$/, '');\n\n return `${remValue}rem`;\n};\n/**\n * Recursively converts all pixel values in an object to rem units\n *\n * @param obj - The object containing values to convert\n * @param baseSize - Base font size in pixels. Default is 16px\n * @returns A new object with pixel values converted to rem\n */\nexport const convertPaletteToRem = (\n obj: Record<string, any>,\n baseSize: number = 14,\n parentKey?: string\n): Record<string, any> => {\n const result: Record<string, any> = {};\n\n Object.entries(obj).forEach(([key, value]) => {\n // If the value is an object and not null, recursively convert its properties\n if (value !== null && typeof value === 'object' && !Array.isArray(value)) {\n result[key] = convertPaletteToRem(value, baseSize, key);\n }\n // If value is a string and contains 'px', convert it to rem\n else if (typeof value === 'string' && value.includes('px')) {\n result[key] = pxToRem(value, baseSize);\n }\n // Handle numeric values that represent pixels for specific properties\n else if (\n typeof value === 'number' &&\n ['fontSize', 'width', 'height', 'padding', 'margin', 'gap', 'borderRadius', 'size'].some((prop) =>\n key.toLowerCase().includes(prop.toLowerCase())\n )\n ) {\n if (\n !(parentKey && Array.isArray(IGNORE_CONVERT_KEYS[parentKey]) && IGNORE_CONVERT_KEYS[parentKey].includes(key)) &&\n !IGNORE_CONVERT_KEYS[key]\n ) {\n result[key] = pxToRem(value, baseSize);\n } else {\n result[key] = value; // Keep original value if it's in the ignore list\n }\n }\n // Keep other values unchanged\n else {\n result[key] = value;\n }\n });\n\n return result;\n};\n\n// Вспоміжні функції для роботи з палітрою\n/**\n * Функція для отримання стилів кнопки за варіантом, кольором, станом та розміром\n */\nexport const getButtonStyles = <V extends ButtonVariant>(\n theme: DefaultTheme,\n variant: ButtonVariant,\n color: ButtonColor,\n state: ButtonState\n) => {\n return theme.button[variant][color][state];\n};\n\nexport const getButtonSizeStyles = (theme: DefaultTheme, size: ButtonSize) => {\n return theme.button.sizes[size];\n};\n\n/**\n * Функція для отримання стилів інпута за варіантом та станом\n */\nexport const getInputStyles = (theme: DefaultTheme, variant: InputVariant, state: InputState) => {\n return theme.input[variant][state];\n};\n\n/**\n * Функція для отримання типографічних стилів\n */\nexport const getTypographyStyles = (theme: DefaultTheme, variant: string = 'body') => {\n return theme.typography.variants[variant as keyof typeof theme.typography.variants] || theme.typography.variants.body;\n};\n\n/**\n * Функція для отримання медіа-запитів для breakpoints\n */\nexport const getBreakpoint = (theme: DefaultTheme, size: Breakpoint = 'm') => {\n return `@media (min-width: ${theme.breakpoints[size]}px)`;\n};\n\n/**\n * Функція для отримання rgba кольору з hex формату\n */\nexport const hexToRgba = (hex: string, alpha: number): string => {\n try {\n const r = parseInt(hex.slice(1, 3), 16);\n const g = parseInt(hex.slice(3, 5), 16);\n const b = parseInt(hex.slice(5, 7), 16);\n return `rgba(${r}, ${g}, ${b}, ${alpha})`;\n } catch {\n return hex;\n }\n};\n","// Індексні шари (z-index) для різних компонентів\nexport const zIndex = {\n dropdown: 1000,\n sticky: 1020,\n fixed: 1030,\n backdrop: 1040,\n modal: 1050,\n popover: 1060,\n tooltip: 1070,\n};\n\n// Розміри брейкпоінтів\nexport const breakpoints = {\n xs: 320,\n s: 576,\n m: 768,\n l: 992,\n xl: 1200,\n};\n\n// Типографія\nexport const typography = {\n fontFamily:\n 'Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol;',\n lineHeight: 1.49,\n // Розміри текстових елементів\n variants: {\n h1: {\n fontSize: 22,\n },\n h2: {\n fontSize: 16,\n },\n h3: {\n fontSize: 14,\n },\n body: {\n fontSize: 12,\n },\n },\n};\n","import { DefaultTheme } from 'styled-components/dist/types';\n\nimport { convertPaletteToRem } from '../utils';\nimport { Theme } from '../types';\nimport { breakpoints, typography, zIndex } from './config';\n\n/**\n * Палітра, що містить як кольори, так і розміри в px\n * Кольори взято з теми, розміри будуть автоматично конвертовані в rem\n */\nexport const lightThemePx: Theme = {\n mode: 'light',\n baseSize: 14, // Базовий розмір шрифту для конвертації px в rem\n // Секція кольорів з теми\n colors: {\n background: '#ffffff',\n backgroundBase: '#F7F8FC',\n primary: {\n main: '#0042EC',\n light: '#80A0F5',\n lighter: '#E5ECFD',\n lightest: '#F3F7FF',\n lightest2: 'rgba(0, 66, 236, 0.05)',\n },\n text: {\n main: '#101010',\n light: '#535353',\n lighter: '#99989C',\n invert: '#ffffff',\n },\n stroke: {\n main: '#C7C5C5',\n light: '#EBEBEB',\n lighter: '#F3F3F3',\n },\n disable: '#FAFAFA',\n success: '#27AE60',\n error: '#C93939',\n warning: '#F2994A',\n info: '#2F80ED',\n },\n // Типографія\n typography,\n breakpoints,\n zIndex,\n line: {\n size: 1,\n color: '#EBEBEB',\n },\n button: {\n // Варіанти кнопок з кольорами\n fill: {\n default: {\n // колір default\n default: {\n background: '#E8EAEE',\n text: '#101010',\n border: ' #E8EAEE',\n boxShadow: 'none',\n },\n hover: {\n background: '#E5ECFD',\n text: '#101010',\n border: ' #E5ECFD',\n boxShadow: 'none',\n },\n active: {\n background: '#E5ECFD',\n text: '#101010',\n border: ' #E5ECFD',\n boxShadow: 'none',\n },\n disabled: {\n background: '#EBEBEB',\n text: '#99989C',\n border: ' #EBEBEB',\n boxShadow: 'none',\n },\n },\n primary: {\n // колір primary\n default: {\n background: '#0042EC',\n text: '#FFFFFF',\n border: ' #0042EC',\n boxShadow: 'none',\n },\n hover: {\n background: '#4D7BF2',\n text: '#FFFFFF',\n border: ' #4D7BF2',\n boxShadow: 'none',\n },\n active: {\n background: '#4D7BF2',\n text: '#FFFFFF',\n border: ' #4D7BF2',\n boxShadow: 'none',\n },\n disabled: {\n background: '#99989C',\n text: '#FFFFFF',\n border: ' #E5ECFD',\n boxShadow: 'none',\n },\n },\n //default as secondary\n secondary: {\n // колір default\n default: {\n background: '#E8EAEE',\n text: '#101010',\n border: ' #E8EAEE',\n boxShadow: 'none',\n },\n hover: {\n background: '#E5ECFD',\n text: '#101010',\n border: ' #E5ECFD',\n boxShadow: 'none',\n },\n active: {\n background: '#E5ECFD',\n text: '#101010',\n border: ' #E5ECFD',\n boxShadow: 'none',\n },\n disabled: {\n background: '#EBEBEB',\n text: '#99989C',\n border: ' #EBEBEB',\n boxShadow: 'none',\n },\n },\n error: {\n // колір error\n default: {\n background: '#C93939',\n text: '#FFFFFF',\n border: ' #C93939',\n boxShadow: 'none',\n },\n hover: {\n background: '#C53939',\n text: '#FFFFFF',\n border: ' #C53939',\n boxShadow: 'none',\n },\n active: {\n background: '#C53939',\n text: '#FFFFFF',\n border: ' #C53939',\n boxShadow: 'none',\n },\n disabled: {\n background: '#FFCCCB',\n text: '#FFFFFF',\n border: ' #FFCCCB',\n boxShadow: 'none',\n },\n },\n soft: {\n // колір default\n default: {\n background: '#80A0F5',\n text: '#FFFFFF',\n border: '#80A0F5',\n boxShadow: 'none',\n },\n hover: {\n background: '#0042EC',\n text: '#FFFFFF',\n border: '#0042EC',\n boxShadow: 'none',\n },\n active: {\n background: '#0042EC',\n text: '#FFFFFF',\n border: '#0042EC',\n boxShadow: 'none',\n },\n disabled: {\n background: '#EBEBEB',\n text: '#99989C',\n border: ' #EBEBEB',\n boxShadow: 'none',\n },\n },\n light: {\n // колір default\n default: {\n background: '#535353',\n text: '#FFFFFF',\n border: '#535353',\n boxShadow: 'none',\n },\n hover: {\n background: '#99989C',\n text: '#FFFFFF',\n border: '#99989C',\n boxShadow: 'none',\n },\n active: {\n background: '#99989C',\n text: '#FFFFFF',\n border: '#99989C',\n boxShadow: 'none',\n },\n disabled: {\n background: '#EBEBEB',\n text: '#99989C',\n border: ' #EBEBEB',\n boxShadow: 'none',\n },\n },\n },\n outlined: {\n default: {\n // колір default\n default: {\n background: 'transparent',\n text: '#101010',\n border: ' #EBEBEB',\n boxShadow: 'none',\n },\n hover: {\n background: '#E5ECFD',\n text: '#101010',\n border: ' #EBEBEB',\n boxShadow: 'none',\n },\n active: {\n background: '#E5ECFD',\n text: '#101010',\n border: ' #EBEBEB',\n boxShadow: 'none',\n },\n disabled: {\n background: 'transparent',\n text: '#99989C',\n border: ' #EBEBEB',\n boxShadow: 'none',\n },\n },\n primary: {\n // колір primary\n default: {\n background: 'transparent',\n text: '#0042EC',\n border: ' #0042EC',\n boxShadow: 'none',\n },\n hover: {\n background: '#E5ECFD',\n text: '#0042EC',\n border: ' #0042EC',\n boxShadow: 'none',\n },\n active: {\n background: '#E5ECFD',\n text: '#0042EC',\n border: ' #0042EC',\n boxShadow: 'none',\n },\n disabled: {\n background: 'transparent',\n text: '#99989C',\n border: ' #99989C',\n boxShadow: 'none',\n },\n },\n secondary: {\n // колір secondary\n default: {\n background: 'transparent',\n text: '#0042EC',\n border: ' #EBEBEB',\n boxShadow: 'none',\n },\n hover: {\n background: '#E5ECFD',\n text: '#0042EC',\n border: ' #EBEBEB',\n boxShadow: 'none',\n },\n active: {\n background: '#E5ECFD',\n text: '#0042EC',\n border: ' #EBEBEB',\n boxShadow: 'none',\n },\n disabled: {\n background: 'transparent',\n text: '#99989C',\n border: ' #EBEBEB',\n boxShadow: 'none',\n },\n },\n error: {\n // колір error\n default: {\n background: 'transparent',\n text: '#C93939',\n border: ' #C93939',\n boxShadow: 'none',\n },\n hover: {\n background: '#FCF5F5',\n text: '#C93939',\n border: ' #C93939',\n boxShadow: 'none',\n },\n active: {\n background: '#FCF5F5',\n text: '#C93939',\n border: ' #C93939',\n boxShadow: 'none',\n },\n disabled: {\n background: 'transparent',\n text: '#99989C',\n border: ' #99989C',\n boxShadow: 'none',\n },\n },\n soft: {\n // колір default\n default: {\n background: 'transparent',\n text: '#80A0F5',\n border: '#80A0F5',\n boxShadow: 'none',\n },\n hover: {\n background: '#E5ECFD',\n text: '#80A0F5',\n border: '#80A0F5',\n boxShadow: 'none',\n },\n active: {\n background: '#E5ECFD',\n text: '#80A0F5',\n border: '#80A0F5',\n boxShadow: 'none',\n },\n disabled: {\n background: 'transparent',\n text: '#99989C',\n border: ' #EBEBEB',\n boxShadow: 'none',\n },\n },\n light: {\n // колір default\n default: {\n background: 'transparent',\n text: '#535353',\n border: '#EBEBEB',\n boxShadow: 'none',\n },\n hover: {\n background: '#EEEEEE',\n text: '#535353',\n border: '#EBEBEB',\n boxShadow: 'none',\n },\n active: {\n background: '#EEEEEE',\n text: '#535353',\n border: '#EBEBEB',\n boxShadow: 'none',\n },\n disabled: {\n background: 'transparent',\n text: '#99989C',\n border: ' #EBEBEB',\n boxShadow: 'none',\n },\n },\n },\n empty: {\n default: {\n // колір default\n default: {\n background: 'transparent',\n text: '#101010',\n border: 'transparent',\n boxShadow: 'none',\n },\n hover: {\n background: 'transparent',\n text: '#80A0F5',\n border: 'transparent',\n boxShadow: 'none',\n },\n active: {\n background: 'transparent',\n text: '#80A0F5',\n border: 'transparent',\n boxShadow: 'none',\n },\n disabled: {\n background: 'transparent',\n text: '#99989C',\n border: 'transparent',\n boxShadow: 'none',\n },\n },\n primary: {\n // колір primary\n default: {\n background: 'transparent',\n text: '#0042EC',\n border: 'transparent',\n boxShadow: 'none',\n filledIcon: {\n background: '#E5ECFD',\n color: '#0042EC',\n },\n },\n hover: {\n background: 'transparent',\n text: '#80A0F5',\n border: 'transparent',\n boxShadow: 'none',\n filledIcon: {\n background: '#0042EC',\n color: '#ffffff',\n },\n },\n active: {\n background: 'transparent',\n text: '#80A0F5',\n border: 'transparent',\n boxShadow: 'none',\n filledIcon: {\n background: '#0042EC',\n color: '#ffffff',\n },\n },\n disabled: {\n background: 'transparent',\n text: '#99989C',\n border: 'transparent',\n boxShadow: 'none',\n filledIcon: {\n background: '#BEBEBE',\n color: '#99989C',\n },\n },\n },\n //default as secondary\n secondary: {\n // колір default\n default: {\n background: 'transparent',\n text: '#101010',\n border: 'transparent',\n boxShadow: 'none',\n },\n hover: {\n background: 'transparent',\n text: '#0042EC',\n border: 'transparent',\n boxShadow: 'none',\n },\n active: {\n background: 'transparent',\n text: '#0042EC',\n border: 'transparent',\n boxShadow: 'none',\n },\n disabled: {\n background: 'transparent',\n text: '#99989C',\n border: 'transparent',\n boxShadow: 'none',\n },\n },\n error: {\n // колір error\n default: {\n background: 'transparent',\n text: '#C93939',\n border: 'transparent',\n boxShadow: 'none',\n },\n hover: {\n background: 'transparent',\n text: '#FCF5F5',\n border: 'transparent',\n boxShadow: 'none',\n },\n active: {\n background: 'transparent',\n text: '#FCF5F5',\n border: 'transparent',\n boxShadow: 'none',\n },\n disabled: {\n background: 'transparent',\n text: '#99989C',\n border: 'transparent',\n boxShadow: 'none',\n },\n },\n soft: {\n // колір default\n default: {\n background: 'transparent',\n text: '#80A0F5',\n border: 'transparent',\n boxShadow: 'none',\n },\n hover: {\n background: 'transparent',\n text: '#E5ECFD',\n border: 'transparent',\n boxShadow: 'none',\n },\n active: {\n background: 'transparent',\n text: '#E5ECFD',\n border: 'transparent',\n boxShadow: 'none',\n },\n disabled: {\n background: 'transparent',\n text: '#99989C',\n border: 'transparent',\n boxShadow: 'none',\n },\n },\n light: {\n // колір default\n default: {\n background: 'transparent',\n text: '#535353',\n border: 'transparent',\n boxShadow: 'none',\n },\n hover: {\n background: 'transparent',\n text: '#EEEEEE',\n border: 'transparent',\n boxShadow: 'none',\n },\n active: {\n background: 'transparent',\n text: '#EEEEEE',\n border: 'transparent',\n boxShadow: 'none',\n },\n disabled: {\n background: 'transparent',\n text: '#99989C',\n border: 'transparent',\n boxShadow: 'none',\n },\n },\n },\n // Розміри кнопок\n sizes: {\n small: {\n fontSize: 14,\n iconSize: 16,\n paddingInline: 10,\n paddingBlock: 10,\n borderRadius: 5,\n borderWidth: 1,\n gap: 10,\n },\n medium: {\n fontSize: 16,\n iconSize: 16,\n paddingInline: 10,\n paddingBlock: 10,\n borderRadius: 5,\n borderWidth: 1,\n gap: 10,\n },\n },\n },\n\n // Компонент Sidebar\n sidebar: {\n background: '#FFFFFF',\n border: '#EBEBEB',\n width: 224,\n collapsedWidth: 65,\n text: {\n default: '#535353',\n active: '#0042EC',\n hover: '#0042EC',\n },\n item: {\n default: {\n background: 'transparent',\n border: 'transparent',\n padding: '10px 16px',\n height: 40,\n },\n active: {\n background: '#E5ECFD',\n borderLeft: '2px solid #0042EC',\n padding: '10px 16px',\n height: 40,\n },\n hover: {\n background: '#F3F7FF',\n border: 'transparent',\n padding: '10px 16px',\n height: 40,\n },\n },\n section: {\n background: 'transparent',\n padding: '16px 16px 8px',\n title: {\n color: '#99989C',\n fontSize: '12px',\n fontWeight: 600,\n },\n },\n delimeter: {\n color: '#C7C5C5',\n thickness: 1,\n margin: '8px 0',\n },\n },\n contextMenu: {\n button: {\n default: {\n background: 'transparent',\n text: '#101010',\n border: ' #EBEBEB',\n boxShadow: 'none',\n },\n hover: {\n background: 'transparent',\n text: '#0042EC',\n border: ' #EBEBEB',\n boxShadow: 'none',\n },\n active: {\n background: 'transparent',\n text: '#0042EC',\n border: ' #EBEBEB',\n boxShadow: 'none',\n },\n disabled: {\n background: '#FAFAFA',\n text: '#99989C',\n border: ' #EBEBEB',\n boxShadow: 'none',\n },\n },\n delimeter: {\n color: '#C7C5C5',\n thickness: 1,\n marginInline: 12,\n marginBlock: 3,\n style: 'solid',\n },\n shadow: '0px 4px 16px rgba(0, 0, 0, 0.1), 0px 2px 4px rgba(0, 0, 0, 0.06)',\n padding: 5,\n icon: {\n size: 7,\n },\n },\n // Компонент Select\n select: {\n item: {\n default: {\n background: 'transparent',\n text: '#101010',\n border: ' none',\n boxShadow: 'none',\n },\n hover: {\n background: '#E5ECFD',\n text: '#101010',\n border: ' none',\n boxShadow: 'none',\n },\n active: {\n background: '#E8EAEE',\n text: '#101010',\n border: ' none',\n boxShadow: 'none',\n },\n disabled: {\n background: '#FAFAFA',\n text: '#99989C',\n border: ' none',\n boxShadow: 'none',\n },\n },\n paddingBlock: 7,\n paddingInline: 5,\n margin: 2,\n padding: 6,\n },\n // Компонент RowActionsMenu\n rowActionsMenu: {\n button: {\n default: {\n background: 'transparent',\n text: '#101010',\n border: ' none',\n boxShadow: 'none',\n },\n hover: {\n background: 'transparent',\n text: '#0042EC',\n border: ' none',\n boxShadow: 'none',\n },\n active: {\n background: 'transparent',\n text: '#0042EC',\n border: ' none',\n boxShadow: 'none',\n },\n disabled: {\n background: '#FAFAFA',\n text: '#99989C',\n border: ' none',\n boxShadow: 'none',\n },\n },\n delimiterColor: '#C7C5C5',\n icon: {\n size: 16,\n },\n },\n // Компонент Input\n input: {\n sizes: {\n empty: {\n fontSize: 14,\n paddingInline: 0,\n paddingBlock: 0,\n borderRadius: 0,\n iconSize: 14,\n height: 'auto',\n lineHeight: 16,\n },\n small: {\n fontSize: 14,\n paddingInline: 10,\n paddingBlock: 10,\n borderRadius: 5,\n iconSize: 14,\n height: 40,\n lineHeight: 16,\n },\n medium: {\n fontSize: 16,\n paddingInline: 10,\n paddingBlock: 10,\n borderRadius: 5,\n iconSize: 16,\n height: 40,\n lineHeight: 18,\n },\n },\n outlined: {\n default: {\n background: 'transparent',\n text: '#101010',\n placeholder: '#99989C',\n border: ' #EBEBEB',\n boxShadow: 'none',\n icon: '#101010',\n },\n focus: {\n background: 'transparent',\n text: '#101010',\n placeholder: '#99989C',\n border: ' #0042EC',\n boxShadow: 'none',\n icon: '#101010',\n },\n error: {\n background: 'transparent',\n text: '#101010',\n placeholder: '#99989C',\n border: ' #C93939',\n boxShadow: 'none',\n icon: '#C93939',\n },\n disabled: {\n background: '#FAFAFA',\n text: '#99989C',\n placeholder: '#99989C',\n border: ' #EBEBEB',\n boxShadow: 'none',\n icon: '#99989C',\n },\n },\n empty: {\n default: {\n background: 'transparent',\n text: '#101010',\n placeholder: '#99989C',\n border: ' transparent',\n boxShadow: 'none',\n icon: '#101010',\n },\n focus: {\n background: 'transparent',\n text: '#101010',\n placeholder: '#99989C',\n border: ' transparent',\n boxShadow: 'none',\n icon: '#101010',\n },\n error: {\n background: 'transparent',\n text: '#101010',\n placeholder: '#99989C',\n border: ' transparent',\n boxShadow: 'none',\n icon: '#C93939',\n },\n disabled: {\n background: '#FAFAFA',\n text: '#99989C',\n placeholder: '#99989C',\n border: 'transparent',\n boxShadow: 'none',\n icon: '#99989C',\n },\n },\n },\n box: {\n padding: 20,\n borderRadius: 8,\n border: {\n width: 1,\n style: 'solid',\n color: '#EBEBEB',\n },\n background: '#FFFFFF',\n },\n // Graph2D\n graph2D: {\n ring: {\n highlightFill: 'rgba(255, 165, 0, 0.3)',\n selectionFill: 'rgba(0, 66, 236, 0.3)',\n },\n button: {\n stroke: '#e5e5e5',\n normalFill: 'rgba(255, 255, 255, 0.8)',\n hoverFill: 'rgba(230, 230, 230, 0.9)',\n },\n grid: {\n dotColor: 'rgba(0, 0, 0, 0.5)',\n },\n link: {\n normal: '#999',\n highlighted: '#ff9900',\n textColor: '#666',\n highlightedTextColor: '#663300',\n textBgColor: 'rgba(255, 255, 255, 0.8)',\n highlightedTextBgColor: 'rgba(255, 230, 204, 0.9)',\n },\n },\n contentLoader: {\n foreground: '#E2E2E2E2',\n background: '#F3F3F3',\n },\n tag: {\n outlined: {\n borderRadius: 50,\n paddingBlock: 5,\n paddingInline: 10,\n borderWidth: 1,\n color: {\n default: '#535353',\n primary: '#0042EC',\n error: '#D82323',\n success: '#38A473',\n warning: '#DEB839',\n disabled: '#ebebeb',\n text: '#101010',\n orange: '#d3741b',\n },\n },\n fill: {\n borderRadius: 4,\n paddingBlock: 5,\n paddingInline: 10,\n borderWidth: 0,\n color: {\n default: '#535353',\n primary: '#0042EC',\n error: '#D82323',\n success: '#38A473',\n warning: '#DEB839',\n disabled: '#ebebeb',\n text: '#101010',\n orange: '#d3741b',\n },\n },\n },\n alert: {\n paddingBlock: 16,\n paddingLeft: 16,\n paddingRight: 44,\n borderRadius: 5,\n fontSize: 14,\n gap: 12,\n icon: {\n width: 16,\n height: 14,\n paddingTop: 2,\n },\n color: {\n icon: '#FDC700',\n text: '#894B00',\n background: '#FFFBE0',\n },\n },\n label: {\n sizes: {\n small: {\n fontSize: 14,\n gap: 10,\n marginBottom: 20,\n helpText: { fontSize: 12, marginTop: 5 },\n },\n medium: {\n fontSize: 16,\n gap: 10,\n marginBottom: 25,\n helpText: { fontSize: 14, marginTop: 5 },\n },\n },\n color: '#101010',\n helpTextColor: '#99989C',\n },\n leanerProgress: {\n background: '#EBEBEB',\n progressColor: '#0042EC',\n },\n switch: {\n default: {\n background: '#C7C5C5',\n color: '#FFFFFF',\n },\n checked: {\n background: '#0042EC',\n color: '#FFFFFF',\n },\n disabled: {\n background: '#EBEBEB',\n color: '#FFFFFF',\n },\n },\n drawer: {\n padding: 20,\n width: 573,\n shadow: '0px 4px 10px 0px rgba(0, 0, 0, 0.25)',\n },\n};\n\nexport const lightTheme = convertPaletteToRem(lightThemePx, lightThemePx.baseSize) as DefaultTheme;\n","import { DefaultTheme } from 'styled-components/dist/types';\n\nimport { convertPaletteToRem } from '../utils';\nimport { Theme } from '../types';\nimport { breakpoints, typography, zIndex } from './config';\n\n/**\n * Палітра, що містить як кольори, так і розміри в px\n * Кольори взято з теми, розміри будуть автоматично конвертовані в rem\n */\n\nexport const darkThemePx: Theme = {\n mode: 'dark',\n baseSize: 14, // Базовий розмір шрифту для конвертації px в rem\n // Секція кольорів з теми\n colors: {\n background: '#0F1317',\n backgroundBase: '#000000',\n primary: {\n main: '#158EFF',\n light: '#80A0F5',\n lighter: '#10253A',\n lightest: '#020E19',\n lightest2: 'rgba(0, 66, 236, 0.05)',\n },\n text: {\n main: '#FFFFFF',\n light: '#99989C',\n lighter: '#535353',\n invert: '#101010',\n },\n stroke: {\n main: '#34404C',\n light: '#1E2226',\n lighter: '#333333',\n },\n disable: '#080A0C',\n success: '#27AE60',\n error: '#C93939',\n warning: '#F2994A',\n info: '#2F80ED',\n },\n // Типографія\n typography,\n breakpoints,\n zIndex,\n line: {\n size: 1,\n color: '#1E2226',\n },\n button: {\n // Варіанти кнопок з кольорами\n fill: {\n default: {\n // колір default\n default: {\n background: '#1E2226',\n text: '#FFFFFF',\n border: ' #1E2226',\n boxShadow: 'none',\n },\n hover: {\n background: '#10253A',\n text: '#FFFFFF',\n border: ' #10253A',\n boxShadow: 'none',\n },\n active: {\n background: '#10253A',\n text: '#FFFFFF',\n border: ' #10253A',\n boxShadow: 'none',\n },\n disabled: {\n background: '#1E2226',\n text: '#99989C',\n border: ' #1E2226',\n boxShadow: 'none',\n },\n },\n primary: {\n // колір primary\n default: {\n background: '#158EFF',\n text: '#FFFFFF',\n border: ' #158EFF',\n boxShadow: 'none',\n },\n hover: {\n background: '#44a5ff',\n text: '#FFFFFF',\n border: ' #44a5ff',\n boxShadow: 'none',\n },\n active: {\n background: '#44a5ff',\n text: '#FFFFFF',\n border: ' #44a5ff',\n boxShadow: 'none',\n },\n disabled: {\n background: '#99989C',\n text: '#FFFFFF',\n border: ' #10253A',\n boxShadow: 'none',\n },\n },\n //default as secondary\n secondary: {\n // колір default\n default: {\n background: '#1E2226',\n text: '#FFFFFF',\n border: ' #1E2226',\n boxShadow: 'none',\n },\n hover: {\n background: '#10253A',\n text: '#FFFFFF',\n border: ' #10253A',\n boxShadow: 'none',\n },\n active: {\n background: '#10253A',\n text: '#FFFFFF',\n border: ' #10253A',\n boxShadow: 'none',\n },\n disabled: {\n background: '#1E2226',\n text: '#99989C',\n border: ' #1E2226',\n boxShadow: 'none',\n },\n },\n error: {\n // колір error\n default: {\n background: '#C93939',\n text: '#FFFFFF',\n border: ' #C93939',\n boxShadow: 'none',\n },\n hover: {\n background: '#d46161',\n text: '#FFFFFF',\n border: ' #d46161',\n boxShadow: 'none',\n },\n active: {\n background: '#d46161',\n text: '#FFFFFF',\n border: ' #d46161',\n boxShadow: 'none',\n },\n disabled: {\n background: '#511616',\n text: '#FFFFFF',\n border: ' #511616',\n boxShadow: 'none',\n },\n },\n soft: {\n // колір default\n default: {\n background: '#80A0F5',\n text: '#FFFFFF',\n border: '#80A0F5',\n boxShadow: 'none',\n },\n hover: {\n background: '#10253A',\n text: '#FFFFFF',\n border: '#10253A',\n boxShadow: 'none',\n },\n active: {\n background: '#10253A',\n text: '#FFFFFF',\n border: '#10253A',\n boxShadow: 'none',\n },\n disabled: {\n background: '#EBEBEB',\n text: '#99989C',\n border: ' #EBEBEB',\n boxShadow: 'none',\n },\n },\n light: {\n // колір default\n default: {\n background: '#535353',\n text: '#FFFFFF',\n border: '#535353',\n boxShadow: 'none',\n },\n hover: {\n background: '#99989C',\n text: '#FFFFFF',\n border: '#99989C',\n boxShadow: 'none',\n },\n active: {\n background: '#99989C',\n text: '#FFFFFF',\n border: '#99989C',\n boxShadow: 'none',\n },\n disabled: {\n background: '#EBEBEB',\n text: '#99989C',\n border: ' #EBEBEB',\n boxShadow: 'none',\n },\n },\n },\n outlined: {\n default: {\n // колір default\n default: {\n background: 'transparent',\n text: '#FFFFFF',\n border: ' #1E2226',\n boxShadow: 'none',\n },\n hover: {\n background: '#10253A',\n text: '#FFFFFF',\n border: ' #1E2226',\n boxShadow: 'none',\n },\n active: {\n background: '#10253A',\n text: '#FFFFFF',\n border: ' #1E2226',\n boxShadow: 'none',\n },\n disabled: {\n background: 'transparent',\n text: '#99989C',\n border: ' #1E2226',\n boxShadow: 'none',\n },\n },\n primary: {\n // колір primary\n default: {\n background: 'transparent',\n text: '#158EFF',\n border: ' #158EFF',\n boxShadow: 'none',\n },\n hover: {\n background: '#10253A',\n text: '#158EFF',\n border: ' #158EFF',\n boxShadow: 'none',\n },\n active: {\n background: '#10253A',\n text: '#158EFF',\n border: ' #158EFF',\n boxShadow: 'none',\n },\n disabled: {\n background: 'transparent',\n text: '#99989C',\n border: ' #99989C',\n boxShadow: 'none',\n },\n },\n secondary: {\n // колір secondary\n default: {\n background: 'transparent',\n text: '#158EFF',\n border: ' #1E2226',\n boxShadow: 'none',\n },\n hover: {\n background: '#10253A',\n text: '#158EFF',\n border: ' #1E2226',\n boxShadow: 'none',\n },\n active: {\n background: '#10253A',\n text: '#158EFF',\n border: ' #1E2226',\n boxShadow: 'none',\n },\n disabled: {\n background: 'transparent',\n text: '#99989C',\n border: ' #1E2226',\n boxShadow: 'none',\n },\n },\n error: {\n // колір error\n default: {\n background: 'transparent',\n text: '#C93939',\n border: ' #C93939',\n boxShadow: 'none',\n },\n hover: {\n background: '#290b0b',\n text: '#C93939',\n border: ' #290b0b',\n boxShadow: 'none',\n },\n active: {\n background: '#290b0b',\n text: '#C93939',\n border: ' #290b0b',\n boxShadow: 'none',\n },\n disabled: {\n background: 'transparent',\n text: '#99989C',\n border: ' #99989C',\n boxShadow: 'none',\n },\n },\n soft: {\n // колір default\n default: {\n background: 'transparent',\n text: '#80A0F5',\n border: '#80A0F5',\n boxShadow: 'none',\n },\n hover: {\n background: '#10253A',\n text: '#80A0F5',\n border: '#1E2226',\n boxShadow: 'none',\n },\n active: {\n background: '#10253A',\n text: '#80A0F5',\n border: '#1E2226',\n boxShadow: 'none',\n },\n disabled: {\n background: 'transparent',\n text: '#99989C',\n border: ' #EBEBEB',\n boxShadow: 'none',\n },\n },\n light: {\n // колір default\n default: {\n background: 'transparent',\n text: '#99989C',\n border: '#535353',\n boxShadow: 'none',\n },\n hover: {\n background: '#1E2226',\n text: '#99989C',\n border: '#1E2226',\n boxShadow: 'none',\n },\n active: {\n background: '#535353',\n text: '#99989C',\n border: '#535353',\n boxShadow: 'none',\n },\n disabled: {\n background: 'transparent',\n text: '#99989C',\n border: ' #EBEBEB',\n boxShadow: 'none',\n },\n },\n },\n empty: {\n default: {\n // колір default\n default: {\n background: 'transparent',\n text: '#FFFFFF',\n border: 'transparent',\n boxShadow: 'none',\n },\n hover: {\n background: 'transparent',\n text: '#44a5ff',\n border: 'transparent',\n boxShadow: 'none',\n },\n active: {\n background: 'transparent',\n text: '#44a5ff',\n border: 'transparent',\n boxShadow: 'none',\n },\n disabled: {\n background: 'transparent',\n text: '#99989C',\n border: 'transparent',\n boxShadow: 'none',\n },\n },\n primary: {\n // колір primary\n default: {\n background: 'transparent',\n text: '#158EFF',\n border: 'transparent',\n boxShadow: 'none',\n filledIcon: {\n background: '#10253A',\n color: '#158EFF',\n },\n },\n hover: {\n background: 'transparent',\n text: '#44a5ff',\n border: 'transparent',\n boxShadow: 'none',\n filledIcon: {\n background: '#158EFF',\n color: '#0F1317',\n },\n },\n active: {\n background: 'transparent',\n text: '#44a5ff',\n border: 'transparent',\n boxShadow: 'none',\n filledIcon: {\n background: '#158EFF',\n color: '#0F1317',\n },\n },\n disabled: {\n background: 'transparent',\n text: '#99989C',\n border: 'transparent',\n boxShadow: 'none',\n filledIcon: {\n background: '#BEBEBE',\n color: '#99989C',\n },\n },\n },\n //default as secondary\n secondary: {\n // колір default\n default: {\n background: 'transparent',\n text: '#FFFFFF',\n border: 'transparent',\n boxShadow: 'none',\n },\n hover: {\n background: 'transparent',\n text: '#158EFF',\n border: 'transparent',\n boxShadow: 'none',\n },\n active: {\n background: 'transparent',\n text: '#158EFF',\n border: 'transparent',\n boxShadow: 'none',\n },\n disabled: {\n background: 'transparent',\n text: '#99989C',\n border: 'transparent',\n boxShadow: 'none',\n },\n },\n error: {\n // колір error\n default: {\n background: 'transparent',\n text: '#C93939',\n border: 'transparent',\n boxShadow: 'none',\n },\n hover: {\n background: 'transparent',\n text: '#d46161',\n border: 'transparent',\n boxShadow: 'none',\n },\n active: {\n background: 'transparent',\n text: '#d46161',\n border: 'transparent',\n boxShadow: 'none',\n },\n disabled: {\n background: 'transparent',\n text: '#99989C',\n border: 'transparent',\n boxShadow: 'none',\n },\n },\n soft: {\n // колір default\n default: {\n background: 'transparent',\n text: '#80A0F5',\n border: 'transparent',\n boxShadow: 'none',\n },\n hover: {\n background: 'transparent',\n text: '#E5ECFD',\n border: 'transparent',\n boxShadow: 'none',\n },\n active: {\n background: 'transparent',\n text: '#E5ECFD',\n border: 'transparent',\n boxShadow: 'none',\n },\n disabled: {\n background: 'transparent',\n text: '#99989C',\n border: 'transparent',\n boxShadow: 'none',\n },\n },\n light: {\n // колір default\n default: {\n background: 'transparent',\n text: '#535353',\n border: 'transparent',\n boxShadow: 'none',\n },\n hover: {\n background: 'transparent',\n text: '#EEEEEE',\n border: 'transparent',\n boxShadow: 'none',\n },\n active: {\n background: 'transparent',\n text: '#EEEEEE',\n border: 'transparent',\n boxShadow: 'none',\n },\n disabled: {\n background: 'transparent',\n text: '#99989C',\n border: 'transparent',\n boxShadow: 'none',\n },\n },\n },\n // Розміри кнопок\n sizes: {\n small: {\n fontSize: 14,\n iconSize: 16,\n paddingInline: 10,\n paddingBlock: 10,\n borderRadius: 5,\n borderWidth: 1,\n gap: 10,\n },\n medium: {\n fontSize: 16,\n iconSize: 16,\n paddingInline: 10,\n paddingBlock: 10,\n borderRadius: 5,\n borderWidth: 1,\n gap: 10,\n },\n },\n },\n\n // Компонент Sidebar\n sidebar: {\n background: '#0F1317',\n border: '#1E2226',\n width: 224,\n collapsedWidth: 65,\n text: {\n default: '#99989C',\n active: '#158EFF',\n hover: '#158EFF',\n },\n item: {\n default: {\n background: 'transparent',\n border: 'transparent',\n padding: '10px 16px',\n height: 40,\n },\n active: {\n background: '#10253A',\n borderLeft: '2px solid #158EFF',\n padding: '10px 16px',\n height: 40,\n },\n hover: {\n background: '#020E19',\n border: 'transparent',\n padding: '10px 16px',\n height: 40,\n },\n },\n section: {\n background: 'transparent',\n padding: '16px 16px 8px',\n title: {\n color: '#020b14',\n fontSize: '12px',\n fontWeight: 600,\n },\n },\n delimeter: {\n color: '#34404C',\n thickness: 1,\n margin: '8px 0',\n },\n },\n contextMenu: {\n button: {\n default: {\n background: 'transparent',\n text: '#FFFFFF',\n border: ' #1E2226',\n boxShadow: 'none',\n },\n hover: {\n background: 'transparent',\n text: '#158EFF',\n border: ' #1E2226',\n boxShadow: 'none',\n },\n active: {\n background: 'transparent',\n text: '#158EFF',\n border: ' #1E2226',\n boxShadow: 'none',\n },\n disabled: {\n background: '#080A0C',\n text: '#99989C',\n border: ' #1E2226',\n boxShadow: 'none',\n },\n },\n delimeter: {\n color: '#34404C',\n thickness: 1,\n marginInline: 12,\n marginBlock: 3,\n style: 'solid',\n },\n shadow: '0px 4px 16px rgba(255, 255, 255, 0.9), 0px 2px 4px rgba(0, 0, 0, 0.06)',\n padding: 5,\n icon: {\n size: 7,\n },\n },\n // Компонент Select\n select: {\n item: {\n default: {\n background: 'transparent',\n text: '#FFFFFF',\n border: ' none',\n boxShadow: 'none',\n },\n hover: {\n background: '#10253A',\n text: '#FFFFFF',\n border: ' none',\n boxShadow: 'none',\n },\n active: {\n background: '#1E2226',\n text: '#FFFFFF',\n border: ' none',\n boxShadow: 'none',\n },\n disabled: {\n background: '#080A0C',\n text: '#99989C',\n border: ' none',\n boxShadow: 'none',\n },\n },\n paddingBlock: 7,\n paddingInline: 5,\n margin: 2,\n padding: 6,\n },\n // Компонент RowActionsMenu\n rowActionsMenu: {\n button: {\n default: {\n background: 'transparent',\n text: '#FFFFFF',\n border: ' none',\n boxShadow: 'none',\n },\n hover: {\n background: 'transparent',\n text: '#158EFF',\n border: ' none',\n boxShadow: 'none',\n },\n active: {\n background: 'transparent',\n text: '#158EFF',\n border: ' none',\n boxShadow: 'none',\n },\n disabled: {\n background: '#080A0C',\n text: '#99989C',\n border: ' none',\n boxShadow: 'none',\n },\n },\n delimiterColor: '#34404C',\n icon: {\n size: 16,\n },\n },\n // Компонент Input\n input: {\n sizes: {\n empty: {\n fontSize: 14,\n paddingInline: 0,\n paddingBlock: 0,\n borderRadius: 0,\n iconSize: 14,\n height: 'auto',\n lineHeight: 16,\n },\n small: {\n fontSize: 14,\n paddingInline: 10,\n paddingBlock: 10,\n borderRadius: 5,\n iconSize: 14,\n height: 40,\n lineHeight: 16,\n },\n medium: {\n fontSize: 16,\n paddingInline: 10,\n paddingBlock: 10,\n borderRadius: 5,\n iconSize: 16,\n height: 40,\n lineHeight: 18,\n },\n },\n outlined: {\n default: {\n background: 'transparent',\n text: '#FFFFFF',\n placeholder: '#99989C',\n border: ' #1E2226',\n boxShadow: 'none',\n icon: '#FFFFFF',\n },\n focus: {\n background: 'transparent',\n text: '#FFFFFF',\n placeholder: '#99989C',\n border: ' #158EFF',\n boxShadow: 'none',\n icon: '#FFFFFF',\n },\n error: {\n background: 'transparent',\n text: '#FFFFFF',\n placeholder: '#99989C',\n border: ' #C93939',\n boxShadow: 'none',\n icon: '#C93939',\n },\n disabled: {\n background: '#080A0C',\n text: '#99989C',\n placeholder: '#99989C',\n border: ' #1E2226',\n boxShadow: 'none',\n icon: '#99989C',\n },\n },\n empty: {\n default: {\n background: 'transparent',\n text: '#FFFFFF',\n placeholder: '#99989C',\n border: ' transparent',\n boxShadow: 'none',\n icon: '#FFFFFF',\n },\n focus: {\n background: 'transparent',\n text: '#FFFFFF',\n placeholder: '#99989C',\n border: ' transparent',\n boxShadow: 'none',\n icon: '#FFFFFF',\n },\n error: {\n background: 'transparent',\n text: '#FFFFFF',\n placeholder: '#99989C',\n border: ' transparent',\n boxShadow: 'none',\n icon: '#C93939',\n },\n disabled: {\n background: 'transparent',\n text: '#99989C',\n placeholder: '#99989C',\n border: 'transparent',\n boxShadow: 'none',\n icon: '#99989C',\n },\n },\n },\n box: {\n padding: 20,\n borderRadius: 8,\n border: {\n width: 1,\n style: 'solid',\n color: '#1E2226',\n },\n background: '#0F1317',\n },\n // Graph2D\n graph2D: {\n ring: {\n highlightFill: 'rgba(0, 90, 255, 0.3)',\n selectionFill: 'rgba(0, 90, 255, 0.5)',\n },\n button: {\n stroke: '#1A1A1A',\n normalFill: 'rgba(0, 0, 0, 0.8)',\n hoverFill: 'rgba(25, 25, 25, 0.9)',\n },\n grid: {\n dotColor: 'rgba(255, 255, 255, 0.5)',\n },\n link: {\n normal: '#666',\n highlighted: '#0066ff',\n textColor: '#999',\n highlightedTextColor: '#99ccff',\n textBgColor: 'rgba(0, 0, 0, 0.8)',\n highlightedTextBgColor: 'rgba(0, 25, 51, 0.9)',\n },\n },\n contentLoader: {\n foreground: '#99989C',\n background: '#535353',\n },\n tag: {\n outlined: {\n borderRadius: 50,\n paddingBlock: 5,\n paddingInline: 10,\n borderWidth: 1,\n color: {\n default: '#99989C',\n primary: '#3991FA',\n error: '#D82323',\n success: '#38A473',\n warning: '#DEB839',\n disabled: '#ebebeb',\n text: '#FFFFFF',\n orange: '#d3741b',\n },\n },\n fill: {\n borderRadius: 4,\n paddingBlock: 5,\n paddingInline: 10,\n borderWidth: 0,\n color: {\n default: '#99989C',\n primary: '#3991FA',\n error: '#D82323',\n success: '#38A473',\n warning: '#DEB839',\n disabled: '#ebebeb',\n text: '#FFFFFF',\n orange: '#d3741b',\n },\n },\n },\n alert: {\n paddingBlock: 16,\n paddingLeft: 16,\n paddingRight: 44,\n borderRadius: 5,\n fontSize: 14,\n gap: 12,\n icon: {\n width: 16,\n height: 14,\n paddingTop: 2,\n },\n color: {\n icon: '#FDC700',\n text: '#894B00',\n background: '#FFFBE0',\n },\n },\n label: {\n sizes: {\n small: {\n fontSize: 14,\n gap: 10,\n marginBottom: 20,\n helpText: { fontSize: 12, marginTop: 5 },\n },\n medium: {\n fontSize: 16,\n gap: 10,\n marginBottom: 25,\n helpText: { fontSize: 14, marginTop: 5 },\n },\n },\n color: '#ffffff',\n helpTextColor: '#535353',\n },\n leanerProgress: {\n background: '#1E2226',\n progressColor: '#158EFF',\n },\n switch: {\n default: {\n background: '#34404C',\n color: '#0F1317',\n },\n checked: {\n background: '#158EFF',\n color: '#0F1317',\n },\n disabled: {\n background: '#1E2226',\n color: '#0F1317',\n },\n },\n drawer: {\n padding: 20,\n width: 573,\n shadow: '0px 4px 10px 0px rgba(0, 0, 0, 0.25)',\n },\n};\n\nexport const darkTheme = convertPaletteToRem(darkThemePx, darkThemePx.baseSize) as DefaultTheme;\n","import { StyleSheetManager, ThemeProvider as ThemeProviderStyled, WebTarget } from 'styled-components';\nimport { lightTheme, darkTheme } from './themes';\nimport { GlobalStyle } from './GlobalStyle';\n\ninterface ThemeProviderProps {\n children: any;\n mode?: 'light' | 'LIGHT' | 'dark' | 'DARK';\n}\n\nexport type ThemeMode = 'light' | 'LIGHT' | 'dark' | 'DARK';\nexport const ThemeProvider = ({ children, mode }: ThemeProviderProps) => {\n return (\n <StyleSheetManager shouldForwardProp={shouldForwardProp}>\n <ThemeProviderStyled theme={mode == 'light' || mode === 'LIGHT' ? lightTheme : darkTheme}>\n <GlobalStyle />\n {children}\n </ThemeProviderStyled>\n </StyleSheetManager>\n );\n};\n\nfunction shouldForwardProp(propName: any, target: WebTarget) {\n if (typeof target === 'string') {\n return !['m', 'mt', 'mr', 'mb', 'ml', 'mx', 'my', 'p', 'pt', 'pr', 'pb', 'pl', 'px', 'py'].includes(propName);\n }\n return true;\n}\n","import styled, { css, IStyledComponent, DefaultTheme, WebTarget } from 'styled-components';\nimport { pxToRem } from './utils';\n\ntype SpaceProps = {\n m?: string | number; // margin\n mt?: string | number; // margin-top\n mr?: string | number; // margin-right\n mb?: string | number; // margin-bottom\n ml?: string | number; // margin-left\n mx?: string | number; // margin-left + margin-right\n my?: string | number; // margin-top + margin-bottom\n p?: string | number; // padding\n pt?: string | number; // padding-top\n pr?: string | number; // padding-right\n pb?: string | number; // padding-bottom\n pl?: string | number; // padding-left\n px?: string | number; // padding-left + padding-right\n py?: string | number; // padding-top + padding-bottom\n};\n\nexport type FabricComponent<T = object> = T & SpaceProps;\n\nconst marginStyles = ({ ignoreStyles }: FabricComponentOptions = {}) =>\n css<FabricComponent>(({ theme, ...props }) => {\n return `\n ${generatePropertySpaceStyle(theme, 'margin', props.m, ignoreStyles)}\n ${generatePropertySpaceStyle(theme, 'margin-top', props.mt, ignoreStyles)}\n ${generatePropertySpaceStyle(theme, 'margin-right', props.mr, ignoreStyles)}\n ${generatePropertySpaceStyle(theme, 'margin-bottom', props.mb, ignoreStyles)}\n ${generatePropertySpaceStyle(theme, 'margin-left', props.ml, ignoreStyles)}\n ${generatePropertySpaceStyle(theme, 'margin-inline', props.mx, ignoreStyles)}\n ${generatePropertySpaceStyle(theme, 'margin-block', props.my, ignoreStyles)}\n `;\n });\n\nconst paddingStyles = ({ ignoreStyles }: FabricComponentOptions = {}) =>\n css<FabricComponent>(({ theme, ...props }) => {\n return `\n ${generatePropertySpaceStyle(theme, 'padding', props.p, ignoreStyles)}\n ${generatePropertySpaceStyle(theme, 'padding-top', props.pt, ignoreStyles)}\n ${generatePropertySpaceStyle(theme, 'padding-right', props.pr, ignoreStyles)}\n ${generatePropertySpaceStyle(theme, 'padding-bottom', props.pb, ignoreStyles)}\n ${generatePropertySpaceStyle(theme, 'padding-left', props.pl, ignoreStyles)}\n ${generatePropertySpaceStyle(theme, 'padding-inline', props.px, ignoreStyles)}\n ${generatePropertySpaceStyle(theme, 'padding-block', props.py, ignoreStyles)}\n `;\n });\n\ntype GeneratedFabricMarginProperties =\n | 'margin'\n | 'margin-top'\n | 'margin-right'\n | 'margin-bottom'\n | 'margin-left'\n | 'margin-inline'\n | 'margin-block'\n | 'padding'\n | 'padding-top'\n | 'padding-right'\n | 'padding-bottom'\n | 'padding-left'\n | 'padding-inline'\n | 'padding-block';\n\nexport const generatePropertySpaceStyle = (\n theme: DefaultTheme,\n property: GeneratedFabricMarginProperties,\n value?: string | number,\n ignoredOptions?: GeneratedFabricMarginProperties[]\n) => {\n if (ignoredOptions && ignoredOptions.includes(property)) {\n return '';\n }\n if (value !== undefined) {\n const t = typeof value === 'number';\n return `${property}: ${typeof value === 'number' ? `${pxToRem(value, theme.baseSize)}` : value};`;\n }\n return '';\n};\n\ntype FabricComponentOptions = {\n ignoreStyles?: GeneratedFabricMarginProperties[] | undefined; // Ignore margin styles\n};\n\nexport const createComponent = <T extends object = {}>(\n component: React.ComponentType<T>,\n options?: FabricComponentOptions\n) => {\n return styled(component)<T & FabricComponent>`\n ${marginStyles(options)}\n ${paddingStyles(options)}\n `;\n};\n\nexport const destructSpaceProps = <T extends FabricComponent>(props: T): SpaceProps => {\n const rest: SpaceProps = {};\n ['m', 'mt', 'mr', 'mb', 'ml', 'mx', 'my', 'p', 'pt', 'pr', 'pb', 'pl', 'px', 'py'].forEach((key) => {\n if (key in props) {\n rest[key as keyof SpaceProps] = props[key as keyof SpaceProps];\n delete props[key as keyof SpaceProps];\n }\n });\n\n return rest;\n};\n","import { useTheme as useStyledTheme } from 'styled-components';\nimport { Theme } from './types';\nexport const useTheme = () => {\n const theme: Theme = useStyledTheme();\n\n return theme;\n};\n","import { SVGProps } from 'react';\n\ninterface AlertIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const AlertIcon = ({ fill = 'currentColor', ...props }: AlertIconProps) => {\n return (\n <svg viewBox=\"0 0 17 15\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M6.8676 1.3524C7.53792 0.215866 9.21522 0.215866 9.88554 1.3524L16.1406 11.9435C16.8109 13.0801 15.9712 14.5 14.6306 14.5H2.12155C0.779912 14.5 -0.0587385 13.0801 0.61258 11.9435L6.8676 1.3524ZM8.37657 3.79201C8.57469 3.79201 8.7647 3.86897 8.90479 4.00595C9.04488 4.14293 9.12358 4.32871 9.12358 4.52243V7.93107C9.12358 8.12479 9.04488 8.31058 8.90479 8.44756C8.7647 8.58454 8.57469 8.66149 8.37657 8.66149C8.17845 8.66149 7.98844 8.58454 7.84835 8.44756C7.70826 8.31058 7.62955 8.12479 7.62955 7.93107V4.52243C7.62955 4.32871 7.70826 4.14293 7.84835 4.00595C7.98844 3.86897 8.17845 3.79201 8.37657 3.79201ZM8.37657 12.5571C8.64073 12.5571 8.89407 12.4545 9.08086 12.2718C9.26765 12.0892 9.37259 11.8415 9.37259 11.5832C9.37259 11.3249 9.26765 11.0772 9.08086 10.8945C8.89407 10.7119 8.64073 10.6093 8.37657 10.6093C8.11241 10.6093 7.85907 10.7119 7.67227 10.8945C7.48548 11.0772 7.38055 11.3249 7.38055 11.5832C7.38055 11.8415 7.48548 12.0892 7.67227 12.2718C7.85907 12.4545 8.11241 12.5571 8.37657 12.5571Z\"\n fill={fill}\n />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface ApiIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const ApiIcon = ({ fill = 'currentColor', ...props }: ApiIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g>\n <path\n d=\"M10.2,2.41l-3.38,11.52c-.12.32-.37.5-.68.5-.22,0-.41-.09-.55-.24-.14-.17-.19-.39-.15-.6l3.33-11.34c.08-.37.35-.64.69-.67.26,0,.46.1.6.27.13.15.18.36.14.57Z\"\n fill={fill}\n />\n <path\n d=\"M16,7.96c-.01.27-.22.46-.44.68l-.09.09c-.98.94-1.97,1.86-2.96,2.8l-1.16,1.09c-.17.09-.28.13-.41.13-.27,0-.53-.17-.66-.42-.12-.24-.08-.54.12-.77l3.82-3.61-3.76-3.45c-.23-.26-.3-.57-.18-.84.12-.27.37-.44.66-.44.15,0,.31.05.44.15l3,2.75s.03.03.03.05c.17.14.33.28.49.44.28.24.55.49.8.73.22.22.31.4.31.6Z\"\n fill={fill}\n />\n <path\n d=\"M5.22,11.6c.18.28.18.55.05.78s-.36.37-.62.37c-.19,0-.36-.08-.51-.21L.22,8.48c-.27-.28-.3-.68-.05-.98.62-.59,1.21-1.18,1.8-1.76.6-.59,1.2-1.17,1.8-1.75l.12-.12c.22-.21.39-.37.55-.42.08-.01.14-.03.22-.03.27,0,.53.17.64.42.13.26.08.55-.1.77l-1.22,1.2-.93.89c-.45.42-.89.85-1.32,1.27l3.5,3.63Z\"\n fill={fill}\n />\n </g>\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface ArrowCircleTopRightIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const ArrowCircleTopRightIcon = ({ fill = 'currentColor', ...props }: ArrowCircleTopRightIconProps) => {\n return (\n <svg viewBox=\"0 0 17 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g clipPath=\"url(#clip0_4867_31686)\">\n <path\n d=\"M3.30042 2.23687C7.62196 -1.93984 14.8631 0.000721882 16.548 5.73245C18.3872 12.0039 12.2779 17.7357 6.13 15.4995C0.599454 13.4947 -0.943954 6.33646 3.30042 2.23687ZM8.53515 1.13165C3.14608 1.40152 0.110708 7.53165 3.24897 11.9525C6.38724 16.3734 12.9339 15.6409 15.1332 10.8345C17.3326 6.02803 13.6413 0.874617 8.53515 1.13165Z\"\n fill={fill}\n />\n <path\n d=\"M11.5576 4.71729C11.7376 4.71729 11.8791 4.8715 11.8534 5.05142L10.7602 10.706C10.7344 10.9117 10.5029 10.9888 10.3229 10.8988L8.47077 9.04821H8.43218L6.33572 11.1173C5.82125 11.5799 5.10099 10.9888 5.47398 10.3976L7.64762 8.22572L5.69263 6.27231C5.57688 6.14379 5.62832 5.91247 5.79553 5.84821L11.5704 4.71729H11.5576Z\"\n fill={fill}\n />\n </g>\n <defs>\n <clipPath id=\"clip0_4867_31686\">\n <rect width=\"16\" height=\"16\" fill=\"white\" transform=\"translate(0.869629 0.000976562)\" />\n </clipPath>\n </defs>\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface ArrowRightIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const ArrowRightIcon = ({ fill = 'currentColor', ...props }: ArrowRightIconProps) => {\n return (\n <svg viewBox=\"0 0 16 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g clipPath=\"url(#clip0_4867_31659)\">\n <path\n d=\"M12.4162 5.09031L8.51793 1.18745L9.70437 0.0217918L9.78912 0.000976562L15.8696 6.00618L9.78912 12.001L9.70437 11.9802L8.50734 10.7937L12.448 6.87001H0.869629V5.09031H12.4162Z\"\n fill={fill}\n />\n </g>\n <defs>\n <clipPath id=\"clip0_4867_31659\">\n <rect width=\"15\" height=\"12\" fill=\"white\" transform=\"translate(0.869629 0.000976562)\" />\n </clipPath>\n </defs>\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface BugReportIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const BugReportIcon = ({ fill = 'currentColor', ...props }: BugReportIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M15.3.98c-.06-.1-.19-.28-.32-.4-.33-.34-.76-.52-1.2-.52-.13,0-.26.02-.39.05-.58.14-1.18.73-1.31,1.33-.07.03-1.73.56-3.85,1.23,0,0-4.3,1.35-4.82,1.51-.51.17-1.13.38-1.27.44-.52.25-1.02.76-1.32,1.34-.39.75-.43,1.58-.11,2.34.23.55.76,1.18,1.23,1.47.14.08.58.24.94.36l.66.21v2.01q0,2.29.21,2.7c.21.38.69.76,1.11.86.1.02.2.03.31.03.26,0,.54-.07.78-.2.23-.12.6-.49.72-.72.2-.36.2-.44.2-2.17,0-.74.01-1.23.01-1.45.73.23,4.55,1.43,5.03,1.59.08.02.18.05.21.12.01.08.06.21.11.31.3.62.92,1.02,1.57,1.02.17,0,.34-.03.5-.09.41-.13.84-.52,1.05-.94q.15-.31.15-5.56v-1.43q0-5.08-.2-5.44ZM5.69,12.71c0,1.52,0,1.76-.05,1.84-.07.16-.13.2-.44.2s-.36-.04-.44-.2c-.04-.08-.04-.35-.04-2.02,0-1.08,0-1.62.01-1.81,0,0,.92.29.96.3v1.69ZM12.04,11.79c-1.06-.32-9.07-2.85-9.31-2.94-.47-.17-.87-.62-1.01-1.12-.06-.23-.06-.76,0-.96.11-.43.44-.85.81-1.04.13-.07,1.12-.4,2.66-.88,0,0,6.66-2.11,6.86-2.17.01.45.02,2.11.02,4.55,0,2.69-.02,4.16-.03,4.56ZM14.26,13.05c-.05.11-.14.21-.48.21s-.43-.1-.48-.21c-.05-.12-.05-.5-.05-5.82,0-4.97,0-5.7.04-5.78.03-.06.09-.11.17-.15.08-.05.12-.06.24-.06h.13c.23.01.28.03.32.06.04.03.1.1.12.15.05.08.05.88.05,5.78,0,5.32,0,5.7-.06,5.82Z\"\n fill={fill}\n />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface CalendarIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const CalendarIcon = ({ fill = 'currentColor', ...props }: CalendarIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g>\n <path\n d=\"M11.87,1.16v-.44c0-.4-.34-.72-.76-.72s-.76.33-.76.72v.37h-4.7v-.37c0-.4-.34-.72-.76-.72s-.76.33-.76.72v.44C1.39,1.51.26,3.04.26,6.29v4.49c0,3.13.92,5.22,5.41,5.22h4.66c4.49,0,5.41-2.08,5.41-5.22v-4.49c0-3.24-1.12-4.76-3.88-5.12ZM14.23,10.78c0,2.78-.59,3.77-3.9,3.77h-4.66c-3.31,0-3.9-.99-3.9-3.77v-4.49c0-2.65.77-3.45,2.36-3.68v.29c0,.41.35.72.76.72s.76-.31.76-.72v-.36h4.7v.36c0,.41.34.72.76.72s.76-.31.76-.72v-.28c1.6.22,2.36,1.01,2.36,3.67v4.49Z\"\n fill={fill}\n />\n <path\n d=\"M11.09,8.72c0,.41-.34.72-.76.72h-6.21c-.42,0-.76-.31-.76-.72s.34-.71.76-.71h6.21c.42,0,.76.31.76.71Z\"\n fill={fill}\n />\n <path\n d=\"M8.76,11.63c0,.41-.34.72-.76.72h-3.88c-.42,0-.76-.31-.76-.72s.34-.71.76-.71h3.88c.42,0,.76.31.76.71Z\"\n fill={fill}\n />\n </g>\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface ChevronLeftIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const ChevronLeftIcon = ({ fill = 'currentColor', ...props }: ChevronLeftIconProps) => {\n return (\n <svg width=\"10\" height=\"17\" viewBox=\"0 0 10 17\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g clipPath=\"url(#clip0_4867_31655)\">\n <path\n d=\"M1.3889 10.312L8.1486 16.3084C9.1046 16.9491 10.0992 15.878 9.3846 14.9886L2.7312 9.1069C2.38356 8.78174 2.38356 8.27486 2.71189 7.93057L9.46189 1.94377C10.0316 1.06391 9.037 0.07886 8.14859 0.69097C6.09169 2.65157 3.83209 4.39207 1.77519 6.34307C0.50049 7.55767 0.18189 8.86787 1.38889 10.3025V10.312Z\"\n fill={fill}\n />\n </g>\n <defs>\n <clipPath id=\"clip0_4867_31655\">\n <rect width=\"9\" height=\"16\" fill=\"white\" transform=\"translate(0.63623 0.5)\" />\n </clipPath>\n </defs>\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface ChevronRightIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const ChevronRightIcon = ({ fill = 'currentColor', ...props }: ChevronRightIconProps) => {\n return (\n <svg viewBox=\"0 0 10 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g clipPath=\"url(#clip0_4867_31655)\">\n <path\n d=\"M9.10673 9.81323L2.34707 15.8096C1.39106 16.4504 0.396428 15.3793 1.11102 14.4899L7.76445 8.60821C8.11209 8.28304 8.11209 7.77617 7.78377 7.43188L1.03377 1.44503C0.464025 0.56517 1.45866 -0.419887 2.34707 0.192187C4.40394 2.15274 6.6636 3.89332 8.72046 5.84431C9.99514 7.05889 10.3138 8.36911 9.10673 9.80366V9.81323Z\"\n fill={fill}\n />\n </g>\n <defs>\n <clipPath id=\"clip0_4867_31655\">\n <rect width=\"9\" height=\"16\" fill=\"white\" transform=\"translate(0.869629 0.000976562)\" />\n </clipPath>\n </defs>\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface CloseCircleIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const CloseCircleIcon = ({ fill = 'currentColor', ...props }: CloseCircleIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M7.99992 15.1654C4.04659 15.1654 0.833252 11.952 0.833252 7.9987C0.833252 4.04536 4.04659 0.832031 7.99992 0.832031C11.9533 0.832031 15.1666 4.04536 15.1666 7.9987C15.1666 11.952 11.9533 15.1654 7.99992 15.1654ZM7.99992 1.83203C4.59992 1.83203 1.83325 4.5987 1.83325 7.9987C1.83325 11.3987 4.59992 14.1654 7.99992 14.1654C11.3999 14.1654 14.1666 11.3987 14.1666 7.9987C14.1666 4.5987 11.3999 1.83203 7.99992 1.83203Z\"\n fill={fill}\n />\n <path\n d=\"M6.11332 10.3849C5.98666 10.3849 5.85999 10.3383 5.75999 10.2383C5.56666 10.0449 5.56666 9.72495 5.75999 9.53161L9.53332 5.75828C9.72666 5.56495 10.0467 5.56495 10.24 5.75828C10.4333 5.95161 10.4333 6.27161 10.24 6.46495L6.46666 10.2383C6.37332 10.3383 6.23999 10.3849 6.11332 10.3849Z\"\n fill={fill}\n />\n <path\n d=\"M9.88666 10.3849C9.75999 10.3849 9.63332 10.3383 9.53332 10.2383L5.75999 6.46495C5.56666 6.27161 5.56666 5.95161 5.75999 5.75828C5.95332 5.56495 6.27332 5.56495 6.46666 5.75828L10.24 9.53161C10.4333 9.72495 10.4333 10.0449 10.24 10.2383C10.14 10.3383 10.0133 10.3849 9.88666 10.3849Z\"\n fill={fill}\n />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface ClosedLockIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const ClosedLockIcon = ({ fill = 'currentColor', ...props }: ClosedLockIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g>\n <path\n d=\"M14.31,7.47c-.09-.74-.66-1.22-1.44-1.22h-.1v-.37c.03-1.32.04-2.56-.73-3.76-.85-1.33-2.35-2.12-4-2.12s-3.18.8-4.03,2.15c-.75,1.18-.74,2.4-.72,3.71v.39s-.1,0-.1,0c-.76,0-1.32.46-1.42,1.21.06,1.07,0,2.21-.03,3.32-.05,1.3-.1,2.63,0,3.87.07.79.58,1.29,1.36,1.35h9.87c.76-.07,1.26-.55,1.34-1.32v-7.21ZM4.21,4.01c0-.41.53-1.43.84-1.8.74-.86,1.83-1.35,2.99-1.35,1.4,0,2.65.7,3.32,1.87.16.26.49,1.04.49,1.28v2.26h-.64v-2.16c0-.16-.21-.7-.23-.75-.48-1.16-1.65-1.9-2.97-1.9-1.23,0-2.28.62-2.83,1.66-.1.2-.34.79-.34,1.04v2.11h-.64v-2.26ZM10.36,4.41v1.87h-4.66v-1.87c0-1.22,1.27-2.07,2.4-2.07.27,0,.52.04.76.13.71.26,1.5,1.14,1.5,1.94ZM13.41,14.71c-.02.15-.15.33-.27.37H2.97c-.14-.04-.2-.12-.27-.2-.06-1.51-.05-3.06-.05-4.55,0-.95,0-1.9,0-2.84.02-.16.21-.34.36-.37l9.84-.02c.27,0,.55.17.55.48v7.13Z\"\n fill={fill}\n />\n <path\n d=\"M9.47,11.09c.24-.47.22-1.02-.07-1.47-.29-.48-.8-.77-1.36-.77-.06,0-.12,0-.19,0-.53.06-.99.37-1.24.83-.24.44-.25.95-.02,1.39.03.08.1.16.17.25.05.06.14.17.15.2.02.12-.07.42-.14.67-.05.21-.11.4-.12.56-.03.26-.06.55.41.61.17.02.59.03,1.01.03.3,0,.83,0,1.03-.05.33-.07.32-.32.31-.51,0-.17-.07-.4-.14-.65s-.15-.54-.13-.65c0-.04.09-.14.14-.2.08-.1.15-.18.18-.26ZM7.74,11.98c.08-.31.14-.52.13-.63-.02-.19-.16-.3-.28-.41-.11-.09-.21-.17-.23-.27-.06-.26,0-.51.13-.69.13-.16.31-.25.52-.25.1,0,.2.02.3.06.2.07.35.24.4.44.06.23,0,.46-.14.64-.02.02-.06.04-.1.07-.11.07-.27.18-.28.4,0,.17.07.42.15.69.04.16.09.3.1.4,0,.03,0,.06,0,.09h-.84c.03-.14.09-.38.14-.55Z\"\n fill={fill}\n />\n </g>\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface DataSetsIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const DataSetsIcon = ({ fill = 'currentColor', ...props }: DataSetsIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g>\n <path\n d=\"M12.43,2.08c-.18-.11-.31-.18-.4-.22-1.82-.8-3.7-.97-3.7-.97-.19,0-.45-.04-.79-.04s-.88.03-1.53.11c-1.24.14-2.21.27-3.16.87-.5.32-1.35.84-1.34,1.54,0,.83.71,1.2,1.37,1.49,2.18.98,4.45,1.09,6.79.7.99-.16,1.9-.46,2.75-.97,1.17-.72,1.16-1.76.02-2.52ZM12.36,4.51c-.8.48-1.69.8-2.72.96-.83.14-1.63.21-2.38.21-1.57,0-2.99-.3-4.34-.9-.66-.3-1.31-.64-1.32-1.4,0-.63.78-1.14,1.29-1.46.91-.56,1.78-.7,3.12-.85.55-.07,1.11-.11,1.52-.11.28,0,.5.02.68.04h.1s1.89.18,3.67.97c.09.03.21.1.39.21.52.35.81.78.8,1.2,0,.42-.3.83-.82,1.15Z\"\n fill={fill}\n />\n <path\n d=\"M14.23,4.12v-.7c0-.62-.21-1.14-.64-1.56-.42-.42-.92-.76-1.56-1.05-1.22-.55-2.61-.81-4.36-.81-.74,0-1.49.05-2.13.09-1.04.08-2.05.36-3.03.83C1.08,1.61.47,2.56.52,3.98c.09,2.66.09,5.36,0,8.02-.05,1.35.51,2.28,1.79,2.92,1.42.72,3.04,1.08,4.93,1.08.61,0,1.25-.04,1.97-.11.17,0,.34-.04.49-.07.25-.04.44-.28.44-.52,0-.27-.19-.5-.47-.54l-.22.03c-.29.04-.59.09-.92.11-.38.04-.75.06-1.13.07-1.66-.08-3.41-.24-4.94-1.18-.69-.43-1.01-1.05-.98-1.9,0-.26.05-.26.07-.26.03,0,.1,0,.24.09,1.73.94,3.57,1.42,5.47,1.42.79,0,1.62-.09,2.44-.25.27-.05.45-.29.44-.53,0-.26-.19-.47-.47-.52-.33.05-.68.11-1.06.14-.46.05-.92.08-1.36.08-.32,0-3.17-.11-4.69-1.07-.53-.35-.77-.7-.84-.85-.25-.44-.34-.98-.24-1.55.03-.14.06-.16.09-.17.04,0,.11.04.16.07.12.08.25.14.37.2.14.07.27.13.4.22.22.17.54.28,1.21.49.92.3,1.72.4,2.42.48.07,0,.81.09,1.65.09.47,0,.9-.03,1.26-.08.3-.04.58-.1.65-.13.03,0,.49-.11,1.06-.34.26-.11.45-.19.54-.4.03-.06.1-.25,0-.43-.12-.2-.37-.23-.42-.23h-.02c-1.13.32-2.27.49-3.42.5-.02,0-2.43-.05-4.6-.99-.96-.37-1.41-1.04-1.35-1.99v-.4c0-.19.03-.24.06-.25.03,0,.1.02.24.1,1.46.94,3.09,1.35,5.3,1.35.77,0,1.55-.06,2.15-.1,1.42-.11,2.71-.53,3.8-1.27.12-.08.18-.09.2-.09.03,0,.06.09.07.24.09,1.03-.13,1.64-.75,2.1-.04.04-.05.1-.02.14,0,0,.3.42.83.42.32,0,.61-.14.87-.47,0-1.5,0-2.73,0-3.55ZM12.41,4.6c-.85.5-1.76.81-2.75.97-2.33.39-4.6.28-6.79-.7-.66-.3-1.36-.66-1.37-1.49,0-.7.84-1.22,1.34-1.54.95-.6,1.92-.73,3.16-.87.65-.08,1.19-.11,1.53-.11s.6.03.79.04c0,0,1.89.17,3.7.97.09.04.22.11.4.22,1.14.76,1.15,1.8-.02,2.52Z\"\n fill={fill}\n />\n <path\n d=\"M15.48,13.04c0,.15-.06.31-.18.42l-.58.59c-.3.3-.59.6-.88.9l-.16.16c-.15.16-.31.32-.43.5-.11.17-.31.28-.53.28-.25,0-.47-.13-.59-.34-.04-.07-.09-.13-.15-.19l-1.86-1.91c-.19-.19-.23-.44-.11-.67.1-.17.28-.27.47-.27.25.02.35.13.42.22.35.36.7.71,1.06,1.07l.1.1v-4.92c0-.32.12-.51.37-.6.1-.04.2-.06.29-.06.18,0,.34.06.47.19.15.13.16.3.16.44v4.99l.04-.04c.08-.1.17-.19.25-.28l.89-.92c.13-.13.29-.19.43-.19.13,0,.25.04.35.14.11.1.17.24.18.38Z\"\n fill={fill}\n />\n </g>\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface DeepSearchIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const DeepSearchIcon = ({ fill = 'currentColor', ...props }: DeepSearchIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M15.57,10.77c-.27-.27-.63-.43-1.01-.43h-.2v-1.06c0-.4-.16-.77-.43-1.05-.26-.28-.63-.44-1.01-.44h-4.3v-1.27h.61c.38-.01.75-.16,1.01-.44.27-.28.43-.65.43-1.05v-2.54c0-.4-.16-.77-.43-1.05-.26-.28-.63-.44-1.01-.44h-2.46c-.38,0-.74.16-1.01.44-.27.28-.42.65-.43,1.05v2.54c.01.4.16.77.43,1.05.27.28.63.43,1.01.44h.62v1.27H3.07c-.38,0-.74.16-1.01.44-.27.28-.42.65-.42,1.05v1.06h-.21c-.38,0-.74.16-1.01.43-.27.28-.42.66-.42,1.05v1.7c0,.39.15.77.42,1.05.27.27.63.43,1.01.43h1.64c.38,0,.75-.16,1.02-.43.27-.28.42-.66.42-1.05v-1.7c0-.39-.15-.77-.42-1.05-.27-.27-.64-.43-1.02-.43h-.2v-1.06c0-.06.02-.11.06-.15s.09-.07.14-.07h4.32v1.28h-.21c-.38,0-.75.16-1.02.43-.27.28-.42.66-.42,1.05v1.7c0,.39.15.77.42,1.05.27.27.64.43,1.02.43h1.64c.38,0,.74-.16,1.01-.43.27-.28.42-.66.42-1.05v-1.7c0-.39-.15-.77-.42-1.05-.27-.27-.63-.43-1.01-.43h-.2v-1.28h4.3c.06,0,.11.03.15.07s.06.09.06.15v1.06h-.21c-.38,0-.75.16-1.01.43-.27.28-.42.66-.43,1.05v1.7c.01.39.16.77.43,1.05.26.27.63.43,1.01.43h1.64c.38,0,.74-.16,1.01-.43.27-.28.42-.66.43-1.05v-1.7c-.01-.39-.16-.77-.43-1.05ZM3.07,11.61c.06,0,.11.02.15.06.04.04.06.1.06.15v1.7s-.02.11-.06.15c-.04.04-.09.06-.15.06h-1.64c-.05,0-.1-.02-.14-.06-.04-.04-.06-.1-.06-.15v-1.7s.02-.11.06-.15c.04-.04.09-.06.14-.06h1.64ZM8.82,11.61c.05,0,.1.02.14.06.04.04.06.1.06.15v1.7s-.02.11-.06.15-.09.06-.14.06h-1.64c-.06,0-.11-.02-.15-.06-.04-.04-.06-.1-.06-.15v-1.7s.02-.11.06-.15c.04-.04.09-.06.15-.06h1.64ZM6.77,5.24c-.06,0-.11-.02-.15-.06-.03-.04-.06-.09-.06-.15v-2.54c0-.06.03-.11.06-.15.04-.04.09-.06.15-.06h2.46c.06,0,.11.02.15.06.04.04.06.09.06.15v2.54c0,.06-.02.11-.06.15s-.09.06-.15.06h-2.46ZM14.77,13.52s-.03.11-.06.15c-.04.04-.09.06-.15.06h-1.64c-.06,0-.11-.02-.15-.06-.03-.04-.06-.1-.06-.15v-1.7s.03-.11.06-.15c.04-.04.09-.06.15-.06h1.64c.06,0,.11.02.15.06.03.04.06.1.06.15v1.7Z\"\n fill={fill}\n />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface DisabledVisibleIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const DisabledVisibleIcon = ({ fill = 'currentColor', ...props }: DisabledVisibleIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g>\n <path\n d=\"M15.79.65c-.13-.12-.31-.2-.49-.2s-.36.07-.48.2l-2.46,2.32c-1.33-.87-2.84-1.32-4.35-1.32C5.22,1.65,2.58,3.18.76,5.86-.05,7.04-.05,8.97.76,10.14c.52.78,1.11,1.46,1.78,2.04L.21,14.39c-.13.13-.21.3-.21.48,0,.18.07.35.21.47s.31.2.49.2.36-.07.48-.2l5.46-5.13,3.69-3.47L15.79,1.61c.13-.13.21-.3.21-.48,0-.18-.07-.35-.21-.47ZM6.25,8.71c-.1-.23-.16-.46-.16-.71,0-.99.87-1.79,1.92-1.79.26,0,.52.05.75.14l-2.51,2.36ZM9.79,5.37c-.53-.33-1.14-.51-1.79-.51-1.82,0-3.32,1.4-3.32,3.13,0,.61.19,1.19.53,1.68l-1.66,1.57c-.6-.51-1.13-1.12-1.61-1.82-.52-.76-.52-2.08,0-2.85,1.55-2.28,3.75-3.59,6.06-3.59,1.15,0,2.29.32,3.33.94l-1.54,1.44Z\"\n fill={fill}\n />\n <path\n d=\"M15.24,10.14c-1.81,2.67-4.45,4.21-7.24,4.21-.99,0-1.96-.19-2.89-.56-.18-.07-.32-.21-.39-.38-.06-.16-.06-.34.01-.51.11-.25.36-.4.65-.4.09,0,.18.02.27.05.75.3,1.55.45,2.34.45,2.31,0,4.53-1.31,6.07-3.59.51-.76.51-2.08,0-2.85-.23-.33-.47-.65-.73-.95-.11-.13-.18-.31-.15-.48.02-.18.1-.34.26-.46.12-.09.29-.14.44-.14.21,0,.4.08.55.24.31.36.58.72.81,1.08.8,1.18.8,3.1,0,4.29Z\"\n fill={fill}\n />\n <path\n d=\"M11.26,8.62c-.25,1.24-1.3,2.24-2.63,2.46,0,0-.01.01-.02.01s-.02-.01-.03-.01l.03-.14-.04.14c-.4,0-.69-.23-.75-.54-.04-.18,0-.35.1-.49.1-.15.27-.26.45-.29.75-.12,1.36-.7,1.49-1.4.07-.32.36-.55.7-.55.01,0,.11.01.12.01.2.04.36.14.46.3.1.14.13.32.1.49Z\"\n fill={fill}\n />\n </g>\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface DocsIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const DocsIcon = ({ fill = 'currentColor', ...props }: DocsIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g>\n <path\n d=\"M15.94,6.29c-.04-.08-.08-.16-.14-.22l-.09-.08L10.02.29l-.08-.09c-.13-.13-.29-.2-.47-.2h-3.67C1.74,0,0,1.74,0,5.79v4.41c0,4.06,1.74,5.79,5.79,5.79h4.41c4.06,0,5.79-1.74,5.79-5.79v-3.67c0-.08-.02-.18-.06-.25ZM10.13,2.28l3.59,3.59h-1.33c-1.82,0-2.26-.45-2.26-2.26v-1.33ZM14.66,10.21c0,3.3-1.16,4.46-4.46,4.46h-4.41c-3.3,0-4.46-1.16-4.46-4.46v-4.41C1.34,2.5,2.5,1.34,5.79,1.34h3v2.26c0,2.56,1.04,3.6,3.6,3.6h2.26v3Z\"\n fill={fill}\n />\n <path\n d=\"M9.4,8.73c0,.38-.29.67-.67.67h-4.39c-.38,0-.67-.29-.67-.67s.29-.66.67-.66h4.39c.38,0,.67.29.67.66Z\"\n fill={fill}\n />\n <path\n d=\"M7.93,11.66c0,.38-.29.67-.66.67h-2.93c-.38,0-.67-.29-.67-.67s.29-.66.67-.66h2.93c.36,0,.66.29.66.66Z\"\n fill={fill}\n />\n </g>\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface DownloadIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const DownloadIcon = ({ fill = 'currentColor', ...props }: DownloadIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g>\n <path\n d=\"M15.96,7.28c-.01-1.06-.03-2.11-.02-3.15C15.72,1.7,14.09.18,11.58.04c-.6-.03-1.18-.04-1.78-.04-.71,0-1.41.02-2.12.03-.71.01-1.41.03-2.11.03-.42,0-.83-.01-1.25-.02C1.77.18.15,1.79,0,4.33v7.39c.12,2.48,1.73,4.12,4.21,4.28h7.52c2.5-.17,4.11-1.86,4.22-4.45.06-1.4.03-2.87,0-4.27ZM14.75,11.66c-.1,1.95-1.24,3.03-3.25,3.13-.56.02-1.11.03-1.68.03-.67,0-1.36-.01-2.03-.02-.68-.01-1.37-.03-2.04-.03-.42,0-.84.01-1.25.02-2.17-.1-3.22-1.2-3.3-3.47.02-.98.01-1.97,0-2.97-.02-1.25-.04-2.54.02-3.79.1-2.07,1.07-3.12,3.04-3.29.01,0,.02,0,.03-.01h7.32c1.87.1,3.01,1.22,3.12,3.08v7.32Z\"\n fill={fill}\n />\n <path\n d=\"M10.88,8.09l-2.44,2.44c-.13.12-.3.18-.47.18-.15,0-.31-.04-.43-.14l-2.48-2.48c-.18-.24-.2-.52-.08-.76.12-.23.37-.39.63-.39.15,0,.32.06.45.17l1.2,1.2V3.57l.11-.26c.14-.2.35-.31.58-.31.26,0,.51.15.63.4.07.14.08.18.08.21v4.74l1.24-1.26c.14-.11.29-.15.44-.15.26,0,.51.15.63.41.12.24.09.53-.09.75Z\"\n fill={fill}\n />\n <path\n d=\"M13.38,11.37c.08.28-.01.57-.23.76-.17.13-.67.31-1.57.52-1.17.28-2.39.42-3.61.42-1.31,0-2.62-.17-3.88-.49-.52-.12-1.17-.31-1.35-.49-.19-.18-.25-.46-.18-.73.08-.25.28-.43.52-.47.06,0,.1-.01.14-.01.2,0,.39.07.57.13.07.03.13.06.2.07,1.38.37,2.69.56,4.02.56,1.21,0,2.45-.17,3.66-.49.09-.02.2-.06.31-.09.24-.09.53-.18.74-.18.34.03.55.21.64.47Z\"\n fill={fill}\n />\n </g>\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface EditUserIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const EditUserIcon = ({ fill = 'currentColor', ...props }: EditUserIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g>\n <path\n d=\"M7.49,0C5.08,0,3.14,1.96,3.14,4.36s1.95,4.35,4.35,4.35,4.35-1.96,4.35-4.35S9.89,0,7.49,0ZM7.49,7.29c-1.62,0-2.93-1.31-2.93-2.93s1.31-2.94,2.93-2.94,2.93,1.32,2.93,2.94-1.31,2.93-2.93,2.93Z\"\n fill={fill}\n />\n <path\n d=\"M14.86,10.23c-.28-.28-.75-.62-1.32-.62-.45,0-.89.21-1.3.62l-.27.28c-.07.04-.12.1-.16.16l-2.14,2.13c-.22.21-.38.55-.43.83l-.13.98c-.07.39.05.78.32,1.04.22.22.52.34.85.34.07,0,.13-.01.19-.02l.98-.14c.3-.04.62-.21.84-.42l2.58-2.58c.42-.43.62-.85.62-1.3s-.22-.91-.62-1.31ZM13.25,11.22c.14-.14.23-.2.3-.2.08,0,.17.07.32.21.16.15.21.26.21.31,0,.02-.04.13-.21.3l-.04.04c-.25-.14-.47-.35-.61-.61l.04-.04ZM11.25,14.44l-.7.1.12-.73,1.52-1.52c.16.23.37.44.6.61l-1.54,1.54Z\"\n fill={fill}\n />\n <path\n d=\"M10.33,10.7c-.1.31-.37.5-.68.5-.08,0-.14-.01-.21-.03-.64-.19-1.3-.28-1.96-.28-3.06,0-5.55,1.98-5.55,4.39,0,.39-.32.72-.71.72s-.71-.32-.71-.71c0-3.2,3.13-5.81,6.97-5.81.8,0,1.6.12,2.36.34.19.05.34.19.43.35.09.16.11.36.05.54Z\"\n fill={fill}\n />\n </g>\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface EnableVisibleIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const EnableVisibleIcon = ({ fill = 'currentColor', ...props }: EnableVisibleIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g>\n <path\n d=\"M8,4.81c-1.86,0-3.38,1.43-3.38,3.19s1.52,3.18,3.38,3.18,3.38-1.43,3.38-3.18-1.51-3.19-3.38-3.19ZM8,9.82c-1.07,0-1.94-.82-1.94-1.82s.87-1.83,1.94-1.83,1.95.82,1.95,1.83-.88,1.82-1.95,1.82Z\"\n fill={fill}\n />\n <path\n d=\"M15.38,5.81c-1.84-2.72-4.53-4.29-7.38-4.29S2.47,3.09.61,5.81c-.82,1.21-.82,3.17,0,4.38,1.85,2.72,4.54,4.29,7.39,4.29s5.54-1.57,7.38-4.29c.83-1.21.83-3.17,0-4.38ZM14.18,9.44c-1.58,2.33-3.82,3.67-6.18,3.67s-4.6-1.33-6.18-3.67c-.53-.77-.53-2.12,0-2.89,1.58-2.33,3.82-3.67,6.18-3.67s4.6,1.33,6.18,3.67c.53.77.53,2.12,0,2.89Z\"\n fill={fill}\n />\n </g>\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface EnterArrowLeftIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const EnterArrowLeftIcon = ({ fill = 'currentColor', ...props }: EnterArrowLeftIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M16,3.09v6.63c0,.11-.1.21-.21.21H2.53l2.08,2.05c.18.25.2.54.08.78-.13.25-.4.41-.67.41-.16,0-.31-.06-.45-.16L.2,9.69c-.27-.3-.25-.72,0-.99l3.34-3.3c.17-.13.33-.18.5-.18.25,0,.5.14.64.37.13.23.13.5-.01.74l-2.14,2.12h11.98V3.09c0-.06.03-.11.07-.16s.13-.1.18-.1h.99c.06,0,.11.01.16.06.03.04.1.14.1.2Z\"\n fill={fill}\n />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface FiltersIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const FiltersIcon = ({ fill = 'currentColor', ...props }: FiltersIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g>\n <path\n d=\"M5.07,2.9c0,.39-.32.71-.71.71H.71c-.39,0-.71-.32-.71-.71s.32-.71.71-.71h3.65c.39,0,.71.32.71.71Z\"\n fill={fill}\n />\n <path\n d=\"M16,8c0,.39-.32.71-.71.71h-3.65c-.39,0-.71-.32-.71-.71s.32-.71.71-.71h3.65c.39,0,.71.32.71.71Z\"\n fill={fill}\n />\n <path\n d=\"M5.07,13.1c0,.39-.32.71-.71.71H.71c-.39,0-.71-.32-.71-.71s.32-.71.71-.71h3.65c.39,0,.71.32.71.71Z\"\n fill={fill}\n />\n <path\n d=\"M16,13.1c0,.39-.32.71-.71.71h-7.31v.74c0,.39-.32.71-.71.71s-.71-.32-.71-.71v-2.92c0-.39.32-.71.71-.71s.71.32.71.71v.75h7.31c.39,0,.71.32.71.71Z\"\n fill={fill}\n />\n <path\n d=\"M16,2.9c0,.39-.32.71-.71.71h-7.31v.75c0,.39-.32.71-.71.71s-.71-.32-.71-.71V1.44c0-.39.32-.71.71-.71s.71.32.71.71v.74h7.31c.39,0,.71.32.71.71Z\"\n fill={fill}\n />\n <path\n d=\"M9.44,6.55v2.91c0,.39-.32.71-.71.71s-.71-.32-.71-.71v-.74H.71c-.39,0-.71-.32-.71-.71s.32-.71.71-.71h7.31v-.74c0-.39.32-.71.71-.71s.71.32.71.71Z\"\n fill={fill}\n />\n </g>\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface HomepageIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const HomepageIcon = ({ fill = 'currentColor', ...props }: HomepageIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M15.75,14.8s-.17-.1-.28-.13h-.19V6.16c-.03-.52-.25-1.02-.61-1.43l-.7-.56c-1.59-1.28-3.24-2.62-4.91-3.89-.32-.18-.68-.28-1.05-.28-.42,0-.84.13-1.2.38L1.51,4.6c-.7.62-.75,1.21-.78,2.13-.02,1.32-.02,2.65,0,3.97,0,1.28,0,2.58-.02,3.96h-.17s-.09.03-.11.03l-.09.05c-.26.15-.39.42-.33.72.07.3.3.5.6.53h14.75c.29,0,.52-.19.61-.46.09-.28,0-.57-.22-.74ZM9.55,13.89h-3.1v-4.25c.06-.43.21-.99.61-1.17.1,0,.21,0,.32,0,.19,0,.38,0,.55,0,.19,0,.37-.02.54-.02.15,0,.29,0,.42.02.4.03.64.79.65,1.17v4.25ZM13.96,14.65h-3.11l.02-.11c-.03-.77,0-1.55,0-2.33,0-.83.03-1.68,0-2.5-.05-1.17-.63-2.41-1.83-2.58-.12,0-.25,0-.38,0-.2,0-.4,0-.6,0-.2,0-.4-.02-.6-.02-.17,0-.34,0-.49.02-1.25.09-1.78,1.63-1.83,2.65-.03.82,0,1.66,0,2.47,0,.76.02,1.53,0,2.3l.02.12h-3.13l.04-8.45c.02-.22.11-.4.27-.55L7.51,1.52c.14-.12.32-.18.49-.18.17,0,.34.06.47.15l5.22,4.17c.1.09.26.34.26.44v8.54Z\"\n fill={fill}\n />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface InfoCircleIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const InfoCircleIcon = ({ fill = 'currentColor', ...props }: InfoCircleIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g>\n <path\n d=\"M15.09,4.36C13.71,1.68,11.01.02,8.03.02h-.26C4.77.12,2.19,1.78.85,4.46-.48,7.13-.24,10.19,1.49,12.62c1.52,2.14,3.89,3.36,6.5,3.36s4.98-1.22,6.51-3.35c1.77-2.46,1.98-5.55.59-8.27ZM13.76,11.33c-1.21,2.09-3.36,3.33-5.76,3.33h-.01c-2.17,0-4.14-1.02-5.41-2.79-1.44-2.01-1.64-4.54-.56-6.76,1.08-2.24,3.19-3.63,5.65-3.74.11,0,.23-.01.33-.01,2.41,0,4.56,1.25,5.77,3.36,1.2,2.08,1.19,4.55-.01,6.62Z\"\n fill={fill}\n />\n <path\n d=\"M8.73,7.13c-.01.55-.01,1.08,0,1.63-.05.49-.41.71-.73.71s-.66-.21-.72-.65v-3.8c.03-.32.3-.6.58-.65,0,0,.13-.01.14-.01.35,0,.62.22.71.57.02.75.02,1.48.02,2.2Z\"\n fill={fill}\n />\n <path d=\"M7.84,10.14c1.43-.19,1.44,1.97.1,1.86-1.12-.07-1.15-1.72-.1-1.86Z\" fill={fill} />\n </g>\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface MapRadarIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const MapRadarIcon = ({ fill = 'currentColor', ...props }: MapRadarIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g>\n <path\n d=\"M14.73,6.37h-5.17l-.03-.83h4.09s.05,0,.07-.02l2.3-2.24s-.03-.14-.05-.16l-2.36-2.22h-4.02V.1c0-.06-.04-.1-.1-.1h-2.91s-.1.04-.1.1v.79H1.35c-.06,0-.1.05-.1.1l-.05,4.45s0,.05.02.07c.02.02.05.03.08.03h5.17v.82l-4.11.02L.03,8.6s-.03.05-.03.08c0,.02,0,.05.03.07l2.41,2.27h12.24s.1-.05.1-.1l.05-4.45s0-.05-.03-.07c-.02-.02-.05-.03-.07-.03ZM13.6,9.88l-10.67.02-1.26-1.2,1.21-1.17h4.68c.06,0,.1-.04.1-.1v-.86c.06,0,.12,0,.18,0,.08,0,.5,0,.52,0v.87c0,.06.04.1.1.1h5.16l-.02,2.34ZM2.42,4.4v-2.33h5.14s.1-.05.1-.1v-.79h.71v.78s.04.1.1.1l4.63-.03,1.26,1.21-1.18,1.16H2.42Z\"\n fill={fill}\n />\n <path\n d=\"M9.47,11.26h-2.9s-.1.05-.1.1v4.54c0,.06.05.1.1.1h2.86s.05,0,.07-.03c.02-.02.07-.08.07-.11v-4.46s0-.02,0-.04c0-.05-.05-.1-.11-.1ZM7.66,14.84v-2.42h.69l-.03,2.42h-.66Z\"\n fill={fill}\n />\n </g>\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface MoonIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const MoonIcon = ({ fill = 'currentColor', ...props }: MoonIconProps) => {\n return (\n <svg width=\"22\" height=\"21\" viewBox=\"0 0 22 21\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M14.8826 13.8402C15.6927 13.8382 16.4913 13.7578 17.2638 13.4936C17.3246 13.4729 17.4082 13.4088 17.4524 13.4715C17.4917 13.527 17.4134 13.5945 17.3783 13.6514C16.8666 14.4752 16.223 15.1769 15.4244 15.7309C14.5042 16.3696 13.4897 16.7794 12.38 16.9328C11.1049 17.1091 9.8683 16.9377 8.68782 16.4287C7.92166 16.0982 7.23295 15.6444 6.62473 15.0635C5.91638 14.387 5.38367 13.5961 5.0017 12.7016C4.58184 11.7192 4.41395 10.6867 4.47507 9.62472C4.53399 8.60057 4.8186 7.63418 5.31038 6.72886C5.92358 5.59997 6.7893 4.71759 7.88322 4.05214C7.92 4.02976 7.96011 3.97642 8.00353 4.01179C8.04585 4.04634 8.00575 4.09884 7.99136 4.13947C7.67439 5.04921 7.58256 5.9899 7.63705 6.94358C7.68684 7.81436 7.89954 8.65004 8.25993 9.44869C8.66126 10.3377 9.20781 11.1223 9.91394 11.793C10.9808 12.8058 12.2403 13.4497 13.6869 13.7222C14.0816 13.7965 14.4804 13.8379 14.8826 13.8402Z\"\n fill={fill}\n />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface OpenLockIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const OpenLockIcon = ({ fill = 'currentColor', ...props }: OpenLockIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g>\n <path\n d=\"M6.91,11.52s.02.05.02.08v-.03s0-.03-.02-.05ZM7.46,10.06s0,.02,0,.03c.02-.04.05-.08.08-.11-.03.03-.05.06-.07.08Z\"\n fill={fill}\n />\n <path\n d=\"M14.31,11.69c0-1.42,0-2.89-.04-4.32,0-.02,0-.05,0-.08-.1-.51-.53-.91-1.12-1.02h-7.45c-.05-.23-.1-.57-.1-.99,0-.32.04-.65.13-1.02.02-.12.24-1.17,1.32-1.66.35-.16.73-.25,1.09-.25.4,0,.79.11,1.1.3.41.26,1.08,1.04,1.11,1.49.02.11.04.22.05.32,0,.07.07.13.15.13h2.02c.08,0,.15-.06.15-.14,0-.11,0-.22,0-.32v-.1c-.12-.81-.37-1.5-.8-2.09-.86-1.22-2.33-1.95-3.9-1.95-1.45,0-2.79.62-3.68,1.7-.66.8-1,1.81-1.05,3.09-.02.47,0,.94,0,1.41v.04h-.28c-.3,0-.59.13-.81.36-.27.28-.43.7-.42,1.09.02.94-.02,1.9-.05,2.84-.04,1.08-.08,2.19-.04,3.29.04.88.09,2.09,1.43,2.18h9.93c.7-.1,1.19-.62,1.26-1.34-.02-.98,0-1.97,0-2.96ZM4.25,3.88c0-.13.27-.76.43-1.04.67-1.21,1.97-1.95,3.41-1.95s2.6.69,3.27,1.84c.11.19.44.93.48,1.2h-.62c-.11-.44-.54-1.17-.76-1.41-.62-.67-1.46-1.04-2.38-1.04-1.38,0-2.93.89-3.22,2.59-.06.33-.09.66-.09.97-.02.41,0,.82.06,1.25h-.61c-.07-.34-.11-.67-.11-.99,0-.49.03-.95.13-1.4ZM13.4,14.64c0,.12-.07.27-.2.39,0,0-.02,0-.03.02-1.52,0-3.05.02-4.58.02-1.37,0-2.75,0-4.12,0h-1.5c-.25-.1-.25-.29-.24-.63,0-.08,0-.16,0-.25-.06-1.65-.04-3.34-.03-4.97,0-.62.02-1.23,0-1.79.06-.13.17-.23.27-.27,1.64-.02,3.28-.02,4.93-.02,1.38,0,2.77,0,4.14-.02h.44c.65,0,.89.13.9.5v7.02Z\"\n fill={fill}\n />\n <path\n d=\"M6.62,9.7s-.05.1-.07.15c.04-.1.09-.19.15-.27-.03.04-.06.08-.08.12ZM7.89,11.32c0,.14-.02.26-.04.37.04-.14.06-.27.04-.37ZM9.44,11.18c.11-.17.18-.35.21-.55-.03.2-.11.38-.21.55Z\"\n fill={fill}\n />\n <path\n d=\"M9.64,10.18s-.02-.07-.02-.1c-.02-.07-.05-.15-.08-.22,0-.04-.03-.08-.05-.12-.03-.07-.07-.13-.12-.19-.06-.09-.12-.17-.2-.24s-.16-.14-.25-.2-.19-.11-.28-.15c-.1-.04-.2-.07-.3-.09,0,0-.02,0-.03,0-.1-.02-.22-.03-.32-.03h0c-.1,0-.19.02-.27.04-.02,0-.04,0-.06,0-.09.03-.18.06-.27.1-.1.04-.19.1-.27.17-.08.05-.15.11-.21.17-.08.08-.14.16-.2.25-.06.08-.11.17-.15.27-.04.09-.07.18-.09.26,0,.02,0,.04,0,.05-.02.09-.03.18-.03.26,0,.24.06.47.18.69.04.07.09.13.15.2.06.07.13.16.16.22,0,.02.02.04.02.05v.03c0,.16-.07.37-.14.59-.06.19-.12.38-.14.54,0,.14-.02.26.02.36.02.06.05.11.1.15.04.04.09.07.16.1.06.02.14.04.23.05.28.02.64.03.95.03h.4c.27-.02.53-.03.66-.07.05,0,.09-.03.13-.06.03-.02.05-.04.07-.07.02-.03.04-.07.05-.11.02-.05.03-.1.03-.17s0-.14,0-.19c-.02-.19-.08-.38-.14-.59-.07-.22-.14-.44-.13-.61,0-.05.1-.16.15-.23.05-.06.1-.11.13-.16.1-.17.18-.35.21-.55,0-.07,0-.13,0-.2,0-.09,0-.18-.02-.26ZM8.7,10.69c-.05.14-.1.17-.18.22-.06.04-.13.09-.2.16-.09.11-.13.22-.13.33,0,.06,0,.11.02.17,0,.05.03.12.04.18.03.1.06.2.09.29.05.17.1.31.11.47h-.82c.02-.14.08-.3.13-.47.03-.11.07-.22.1-.33h0c.02-.13.04-.25.04-.38-.03-.18-.17-.29-.29-.39-.08-.07-.16-.13-.19-.19-.04-.09-.06-.19-.06-.28,0-.07,0-.14.03-.2,0-.05.03-.1.06-.15,0,0,0-.02,0-.02,0,0,0-.02,0-.03.02-.02.04-.05.07-.08.02-.03.05-.07.09-.09.03-.03.07-.06.12-.08.04-.02.08-.04.13-.05,0,0,.03,0,.04,0,.04,0,.08-.02.13-.02.07,0,.13,0,.19.02s.11.03.16.06c.03,0,.06.03.08.05.04.02.08.04.1.08.03.02.06.05.08.08,0,0,0,0,0,.02.03.05.06.1.08.16v.02c.02.06.03.12.03.18,0,.1-.02.2-.05.28Z\"\n fill={fill}\n />\n </g>\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface OrganizationIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const OrganizationIcon = ({ fill = 'currentColor', ...props }: OrganizationIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g>\n <path\n d=\"M15.13,14.08c-.23-.18-.48-.2-.74-.21v-7.7c-.04-.39-.34-.8-.72-.93l-3.84-1.02V.87c-.16-.54-.56-.87-1.05-.87-.09,0-.18,0-.27.04-.86.27-1.74.53-2.61.79-1.24.37-2.48.75-3.72,1.16-.33.2-.55.54-.57.93v10.96h-.19c-.16,0-.43.13-.54.21-.34.27-.49.73-.36,1.15.11.42.45.72.88.77h13.2c.42-.04.77-.31.89-.74.13-.44,0-.9-.36-1.18ZM2.65,14.92s.03-.06.03-.09l.04-11.9,5.93-1.81s.09-.07.11-.08v12.93s0,.04,0,.06c0,.08.06.15.15.15h1.58c.08,0,.15-.07.15-.15V5.55l2.64.7s.02.03.03.03c0,0,0,0,0,0v8.56s0,.07.03.09H2.65Z\"\n fill={fill}\n />\n <path\n d=\"M6.65,4.12h-3.06c-.09,0-.15.06-.15.15v3.04c0,.08.06.15.15.15h3.06c.08,0,.15-.07.15-.15v-3.04c0-.09-.07-.15-.15-.15ZM4.51,6.35v-1.17h1.22v1.17h-1.22Z\"\n fill={fill}\n />\n <path\n d=\"M6.65,9.73h-3.06c-.09,0-.15.07-.15.15v3.04c0,.09.06.15.15.15h3.06c.08,0,.15-.06.15-.15v-3.04c0-.08-.07-.15-.15-.15ZM4.51,11.98v-1.18h1.22v1.18h-1.22Z\"\n fill={fill}\n />\n </g>\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface PasswordFinderIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const PasswordFinderIcon = ({ fill = 'currentColor', ...props }: PasswordFinderIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g>\n <path\n d=\"M7.89,12.32h-1.06v1.84h-1.84v1.84H1.24c-.5,0-1.09-.7-1.17-1.17-.09-.51-.08-2.07-.03-2.6.03-.3.18-.62.39-.84l4.61-4.62-.14-1.2c.08-3.89,3.79-6.55,7.51-5.22,5.78,2.07,4.32,11.06-2.45,10.73-.18,0-.58-.14-.71-.11-.08.03-1.06,1.03-1.26,1.2-.04.04-.05.08-.05.13h-.04ZM1.37,14.66h2.34v-1.79h1.79v-1.84h1.76l1.58-1.5c.93.26,1.73.38,2.69.13,2.97-.75,4.17-4.46,2.18-6.83-2.88-3.41-8.3-.76-7.35,3.79.04.18.2.43.12.6L1.33,12.37c-.04.29-.08,2.22.03,2.29h.01Z\"\n fill={fill}\n />\n <path\n d=\"M10.73,3.67c.14,0,.32.07.43.14.11.08,1.06,1.05,1.1,1.13.25.6-.34,1.17-.93.87-.09-.05-1.13-1.11-1.17-1.18-.18-.45.05-.96.55-.97h.01Z\"\n fill={fill}\n />\n </g>\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface PhonebookIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const PhonebookIcon = ({ fill = 'currentColor', ...props }: PhonebookIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g>\n <path\n d=\"M15.01,8.44V3.26c0-.31,0-.94-.7-.94,0,0-.11,0-.15,0-.19,0-.32-.04-.4-.12-.12-.14-.12-.4-.1-.65,0-.12,0-.24,0-.35v-.17c0-.94-.11-1.05-1.03-1.05H2.99C1.67,0,.98.69.98,2v11.88c0,1.35.79,2.12,2.14,2.12h10.85c.9,0,1.05-.16,1.05-1.05v-5.75c0-.26,0-.51,0-.76ZM2.71,1.2c.08,0,.16,0,.24,0h9.01c.42,0,.55.08.56.58,0,.23-.03.37-.11.45-.08.07-.21.11-.43.11h-.11c-.7-.02-1.4-.02-2.11-.02h-2.18c-1.45,0-2.89,0-4.35,0h0c-.19,0-.37,0-.54-.03-.31-.04-.48-.24-.47-.54.02-.39.29-.5.51-.53ZM13.83,13.81v.47c0,.22-.02.36-.1.42-.07.08-.21.11-.45.11-3.37,0-6.74,0-10.1,0-.78,0-1-.23-1-1,0-1.67,0-3.33,0-4.99s0-3.33,0-4.99c0-.35.04-.39.36-.39v-.1l.08.1c.89.03,1.79.04,2.68.04h5.27c.91,0,1.82,0,2.73-.02.43,0,.56.07.56.52-.02,3.27,0,6.55,0,9.82Z\"\n fill={fill}\n />\n <path\n d=\"M11.48,10.12c-.23-.02-.44-.08-.67-.13-.34-.08-.67-.16-1.02-.16-.42,0-.79.13-1.19.4-.46-.21-.79-.6-1.12-1.02-.13-.17-.08-.25.05-.4.05-.06.1-.13.14-.2.1-.2.15-.4.12-.6-.06-.59-.13-1.18-.23-1.76-.1-.59-.5-.92-1.17-.97h-.12c-1.14,0-1.99.9-2.01,2.13-.03,1.4.59,2.87,1.7,4.03,1.15,1.18,2.64,1.88,4.11,1.9h.06c1.29,0,2.21-.8,2.23-1.95.02-.73-.31-1.2-.89-1.27ZM5.68,6.79c.15-.2.32-.3.5-.3.04,0,.08,0,.12,0,.15.04.17.13.18.34,0,.06,0,.11.02.16.02.14.03.28.04.41.02.14.03.28.05.42,0,.16,0,.22-.08.26-.25.1-.4.24-.47.41-.1.26.03.55.18.86.49.96,1.23,1.69,2.22,2.15.21.09.37.14.51.14.26,0,.45-.15.57-.44.04-.1.1-.14.28-.14h.04c.07,0,.14,0,.22,0,.14,0,.27,0,.38.06.1.04.23.04.35.05.14,0,.27,0,.33.06.03.04.05.11.05.2,0,.41-.31.68-.89.72h-.22c-2.29-.06-4.56-2.34-4.59-4.61,0-.34.07-.58.23-.77Z\"\n fill={fill}\n />\n </g>\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface PrintIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const PrintIcon = ({ fill = 'currentColor', ...props }: PrintIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M15.24,3.65c-.48-.49-1.15-.77-1.83-.77h-.36v-.37c0-.44-.17-.85-.47-1.15-.3-.31-.72-.48-1.14-.48h-6.89c-.42,0-.84.17-1.14.48-.3.31-.46.72-.46,1.15v.37h-.37c-.69,0-1.34.27-1.83.77-.48.49-.76,1.16-.76,1.86v4.99c0,.44.17.85.47,1.15.3.31.71.47,1.14.47h1.35v1.37c0,.44.17.84.46,1.15.3.3.72.47,1.14.47h6.89c.42,0,.84-.17,1.14-.47.3-.31.47-.72.47-1.15v-1.37h1.34c.43,0,.84-.17,1.14-.47.31-.31.47-.72.47-1.15v-4.99c0-.7-.28-1.37-.76-1.86ZM4.2,2.51c0-.1.03-.19.1-.26.07-.07.16-.1.25-.1h6.89c.1,0,.18.03.25.1.07.07.1.17.1.26v.37h-7.61v-.37ZM11.8,13.5c0,.1-.03.19-.1.26s-.16.1-.25.1h-6.89c-.1,0-.18-.04-.25-.1s-.1-.17-.1-.26v-4c0-.1.03-.19.1-.26.07-.07.16-.1.25-.1h6.89c.1,0,.18.03.25.1.07.07.1.17.1.26v4ZM14.75,10.5c0,.1-.03.19-.1.26-.06.07-.16.1-.25.1h-1.34v-1.36c0-.44-.17-.85-.47-1.15-.3-.31-.72-.48-1.14-.48h-6.89c-.42,0-.84.17-1.14.48-.3.31-.46.72-.46,1.15v1.36h-1.35c-.1,0-.19-.03-.25-.1-.07-.07-.11-.17-.11-.26v-4.99c0-.37.15-.72.4-.97.25-.26.59-.4.94-.4h10.82c.35,0,.7.15.94.4.25.25.39.6.39.97v4.99Z\"\n fill={fill}\n />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface Profiler20IconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const Profiler2Icon = ({ fill = 'currentColor', ...props }: Profiler20IconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g>\n <path\n d=\"M10.26,7.61c-.67,0-1.32-.2-1.87-.57-.55-.37-.99-.89-1.24-1.51-.26-.61-.32-1.29-.19-1.94.13-.65.45-1.25.92-1.72.47-.47,1.07-.79,1.73-.92.65-.13,1.33-.06,1.95.19.62.25,1.14.68,1.51,1.24s.57,1.2.57,1.87c0,.89-.36,1.75-.99,2.38-.63.63-1.49.98-2.38.98ZM10.26,2.23c-.4,0-.79.12-1.12.34-.33.22-.59.54-.74.91-.15.37-.19.77-.12,1.17.08.39.27.75.55,1.03.28.28.64.47,1.04.55.39.08.8.04,1.17-.11.37-.15.69-.41.91-.74.22-.33.34-.72.34-1.12,0-.53-.21-1.05-.59-1.43s-.89-.59-1.43-.59Z\"\n fill={fill}\n />\n <path\n d=\"M4.83,7.7h-.29c-.72-.07-1.38-.42-1.83-.97s-.67-1.26-.61-1.98c.07-.71.42-1.37.98-1.83.56-.46,1.27-.67,1.99-.6.09,0,.18.03.26.07.08.04.16.1.22.17.06.07.11.15.13.24s.04.18.03.27c0,.09-.04.18-.08.26-.04.08-.11.15-.18.21s-.16.1-.25.12c-.09.02-.18.03-.27.01-.18-.02-.35,0-.52.05-.17.05-.32.14-.46.25-.14.11-.25.25-.33.4-.08.15-.14.32-.15.5-.02.18,0,.35.05.52.05.17.13.33.25.46.11.14.25.25.41.33.16.08.33.13.51.15.29.03.59-.04.84-.2.15-.09.34-.12.51-.08.18.04.33.15.42.3.09.15.12.34.08.51-.04.17-.15.32-.3.42-.42.27-.9.41-1.39.42Z\"\n fill={fill}\n />\n <path\n d=\"M.76,14.18c-.2,0-.39-.08-.53-.22-.14-.14-.22-.32-.23-.52,0-2.64.73-4.4,4.31-4.4.2,0,.39.08.54.22.14.14.22.32.22.52s-.08.38-.22.52c-.14.14-.34.22-.54.22-2.38,0-2.79.73-2.79,2.93,0,.19-.08.38-.23.52-.14.14-.33.22-.53.22Z\"\n fill={fill}\n />\n <path\n d=\"M15.42,15.11c-.15,0-.3-.09-.41-.25-.11-.15-.17-.36-.17-.58,0-2.15-.83-3.58-4.87-3.58s-4.87,1.43-4.87,3.58c0,.22-.06.43-.17.59-.11.15-.26.24-.41.24s-.3-.09-.41-.24c-.11-.16-.17-.37-.17-.59,0-5.24,4.23-5.24,6.03-5.24s6.03,0,6.03,5.24c0,.22-.06.43-.17.58-.11.15-.26.24-.41.25Z\"\n fill={fill}\n />\n </g>\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface ProfilerIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const ProfilerIcon = ({ fill = 'currentColor', ...props }: ProfilerIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g>\n <path\n d=\"M8,8.27c-.77,0-1.51-.24-2.15-.7-.64-.45-1.13-1.1-1.43-1.86-.29-.76-.37-1.59-.22-2.39.15-.8.52-1.54,1.06-2.12.54-.58,1.23-.97,1.98-1.13.75-.16,1.53-.08,2.24.23.71.31,1.31.84,1.74,1.52.43.68.65,1.48.65,2.3,0,1.1-.41,2.15-1.13,2.93s-1.71,1.21-2.74,1.21ZM8,1.65c-.46,0-.91.15-1.29.42-.38.27-.68.66-.86,1.11-.18.45-.22.95-.13,1.43.09.48.31.92.64,1.27.32.35.74.58,1.19.68.45.1.92.05,1.34-.14.42-.19.79-.51,1.04-.91.26-.41.39-.89.39-1.38,0-.66-.24-1.29-.68-1.75-.44-.46-1.03-.73-1.64-.73Z\"\n fill={fill}\n />\n <path\n d=\"M15.23,16c-.2,0-.4-.09-.54-.25-.14-.15-.23-.36-.23-.58,0-2.15-1.09-3.58-6.45-3.58s-6.45,1.43-6.45,3.58c0,.22-.08.43-.23.59-.15.15-.34.24-.55.24s-.4-.09-.55-.24c-.15-.16-.23-.37-.23-.59,0-5.24,5.61-5.24,8-5.24s8,0,8,5.24c0,.22-.09.43-.23.58-.14.15-.34.24-.54.25Z\"\n fill={fill}\n />\n </g>\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface SandBoxIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const SandBoxIcon = ({ fill = 'currentColor', ...props }: SandBoxIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M15.8,6.86s-.02-.02-.04-.04l-3.24-5.21c-.13-.28-.33-.51-.58-.67-.26-.16-.55-.25-.85-.25h-6.18c-.28-.01-.56.06-.81.2-.25.13-.45.34-.59.58L.11,6.94h0s-.04.08-.05.12c0,.03-.03.07-.04.12-.01.04-.01.08-.01.12v5.5c0,.33.07.66.19.96.13.31.32.59.55.82.23.23.51.42.81.54.31.13.64.2.97.2h10.96c.66,0,1.3-.27,1.77-.73.47-.47.74-1.1.75-1.76v-5.48c0-.19-.08-.36-.2-.49ZM4.7,2.16s.05-.06.09-.09c.03-.02.07-.03.12-.03h6.19c.09,0,.16.05.23.18l2.74,4.44h-3.33c-.18,0-.36.07-.49.2-.12.13-.2.3-.2.49v.2c0,.54-.21,1.07-.6,1.45-.38.39-.91.6-1.45.6s-1.07-.21-1.46-.6c-.38-.38-.6-.91-.6-1.45v-.2c0-.19-.07-.36-.2-.49-.13-.13-.3-.2-.48-.2H1.92l2.78-4.5ZM14.63,12.83c0,.3-.12.59-.34.81s-.5.33-.81.33H2.52c-.16,0-.31-.03-.45-.09s-.27-.14-.37-.25c-.11-.11-.19-.24-.25-.38-.05-.14-.08-.3-.08-.45v-4.8h3.24c.1.83.51,1.58,1.13,2.13.63.54,1.43.84,2.26.84s1.63-.3,2.25-.84c.62-.55,1.03-1.3,1.14-2.13h3.24v4.83Z\"\n fill={fill}\n />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface SearchIconProps extends SVGProps<SVGSVGElement> {\n stroke?: string;\n}\n\nexport const SearchIcon = ({ stroke = 'currentColor', ...props }: SearchIconProps) => {\n return (\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <ellipse cx=\"5.80004\" cy=\"5.80062\" rx=\"4.80004\" ry=\"4.80062\" stroke={stroke} />\n <path d=\"M9.00012 9.80078L13.0002 12.9997\" stroke={stroke} strokeLinecap=\"round\" strokeLinejoin=\"round\" />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface StatisticIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const StatisticIcon = ({ fill = 'currentColor', ...props }: StatisticIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g>\n <path\n d=\"M9.1.02c-.11,0-.22,0-.34,0-.2,0-.4,0-.61,0-.22,0-.42-.02-.63-.02-.19,0-.37,0-.53.02-.38.03-.81.38-.81.77v15.1c0,.06.04.1.1.1h3.46c.06,0,.1-.04.1-.1V.69c0-.29-.45-.67-.73-.67ZM7.57,14.6V1.41h.88v13.19h-.88Z\"\n fill={fill}\n />\n <path\n d=\"M2.9,4.97c-.19-.02-.4-.02-.6-.02s-.43,0-.66,0c-.22,0-.44,0-.66,0h-.3c-.32.04-.67.43-.67.75v10.17c0,.06.04.1.1.1h3.44s.03,0,.05,0c.05,0,.1-.04.1-.1V5.76c0-.4-.37-.76-.79-.79ZM1.41,14.59V6.35h.89v8.24h-.89Z\"\n fill={fill}\n />\n <path\n d=\"M15.89,8.33c-.14-.25-.4-.4-.73-.42-.26-.02-.62-.03-.98-.03s-.72,0-.99.03c-.32.02-.57.16-.72.4-.03.05-.13.31-.14.35v7.25c0,.06.05.1.1.1h3.47c.06,0,.1-.04.1-.1v-7.3c0-.08-.1-.25-.11-.27ZM13.74,14.6v-5.3h.86v5.3h-.86Z\"\n fill={fill}\n />\n </g>\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface SunIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n stroke?: string;\n}\n\nexport const SunIcon = ({ fill = 'currentColor', stroke = 'currentColor', ...props }: SunIconProps) => {\n return (\n <svg width=\"22\" height=\"21\" viewBox=\"0 0 22 21\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M10.7336 7.81445C12.3434 7.84801 13.4641 9.04097 13.5774 10.4131L13.5862 10.6904C13.557 12.3941 12.2055 13.533 10.7249 13.5186L10.5657 13.5127C9.039 13.4219 7.98725 12.2485 7.87915 10.9131L7.87036 10.6348C7.90006 8.96394 9.25521 7.81499 10.7336 7.81445Z\"\n stroke={stroke}\n />\n <path\n d=\"M7.26234 7.82055C7.02212 7.81698 6.86386 7.75484 6.73481 7.62848C6.48774 7.38645 6.24007 7.14473 5.99896 6.89706C5.72893 6.61966 5.73251 6.20073 5.99955 5.94206C6.2651 5.68487 6.67431 5.68546 6.94761 5.95098C7.19885 6.19508 7.44921 6.44037 7.68853 6.69577C7.88047 6.90063 7.93411 7.15157 7.81937 7.40994C7.70492 7.66802 7.49779 7.81609 7.26234 7.82055Z\"\n fill={fill}\n />\n <path\n d=\"M15.6541 14.872C15.6541 15.1839 15.5304 15.3915 15.2881 15.511C15.0539 15.6266 14.8151 15.6183 14.597 15.4557C14.5475 15.4188 14.4998 15.3781 14.456 15.3347C14.2235 15.1031 13.9881 14.8741 13.7622 14.6363C13.5127 14.3734 13.5255 13.9691 13.7809 13.714C14.0364 13.4591 14.4444 13.4458 14.7054 13.694C14.9594 13.9355 15.2067 14.1837 15.4514 14.4344C15.5784 14.5643 15.6681 14.7162 15.6541 14.872Z\"\n fill={fill}\n />\n <path\n d=\"M14.2545 7.81899C13.983 7.81155 13.7735 7.69173 13.6543 7.44882C13.533 7.20204 13.5488 6.95288 13.7342 6.74059C13.9964 6.44 14.2805 6.15843 14.5773 5.89203C14.814 5.67945 15.2199 5.71066 15.4559 5.93544C15.6875 6.15606 15.7379 6.54614 15.5304 6.79679C15.2565 7.12771 14.9445 7.42563 14.6167 7.70422C14.5165 7.78955 14.3893 7.82285 14.2545 7.81899Z\"\n fill={fill}\n />\n <path\n d=\"M5.80404 14.908C5.79748 14.7438 5.84725 14.5984 5.9614 14.4828C6.22278 14.2176 6.47879 13.9458 6.75656 13.6984C7.15594 13.3425 7.74992 13.5373 7.859 14.049C7.90103 14.2458 7.86616 14.4328 7.73115 14.5851C7.46649 14.8836 7.18723 15.1699 6.88681 15.4321C6.67967 15.6132 6.42872 15.6385 6.17629 15.5175C5.92266 15.3956 5.80761 15.1839 5.80404 14.908Z\"\n fill={fill}\n />\n <path\n d=\"M4.44378 10.18C4.55525 10.059 4.69354 9.99125 4.85627 9.98976C5.22911 9.98619 5.60285 9.974 5.9745 9.99452C6.50918 10.024 6.79202 10.5802 6.5071 11.0194C6.39742 11.1883 6.24035 11.2962 6.03709 11.309C5.63832 11.334 5.23805 11.3399 4.83958 11.314C4.56479 11.2962 4.36927 11.1371 4.27629 10.8737C4.1824 10.6088 4.25095 10.3778 4.44378 10.18Z\"\n fill={fill}\n />\n <path\n d=\"M15.0586 10.18C15.1701 10.059 15.3084 9.99125 15.4711 9.98976C15.844 9.98619 16.2177 9.974 16.5894 9.99452C17.124 10.024 17.4069 10.5802 17.122 11.0194C17.0123 11.1883 16.8552 11.2962 16.6519 11.309C16.2532 11.334 15.8529 11.3399 15.4544 11.314C15.1796 11.2962 14.9841 11.1371 14.8911 10.8737C14.7976 10.6088 14.8658 10.3778 15.0586 10.18Z\"\n fill={fill}\n />\n <path\n d=\"M11.3908 5.18099C11.3908 5.36235 11.3947 5.54402 11.3899 5.72539C11.3804 6.08693 11.0987 6.35839 10.739 6.35839C10.3617 6.35839 10.0762 6.09704 10.0687 5.72985C10.0613 5.36265 10.0621 4.99516 10.069 4.62796C10.0759 4.26226 10.3644 3.99764 10.7393 4.00002C11.0972 4.00239 11.3816 4.27861 11.3896 4.63688C11.3938 4.81825 11.3902 4.99962 11.3902 5.18128C11.3905 5.18099 11.3905 5.18099 11.3908 5.18099Z\"\n fill={fill}\n />\n <path\n d=\"M11.3908 15.8224C11.3908 16.0038 11.3947 16.1854 11.3899 16.3668C11.3804 16.7283 11.0987 16.9998 10.739 16.9998C10.3617 16.9998 10.0762 16.7385 10.0687 16.3713C10.0613 16.0041 10.0621 15.6366 10.069 15.2694C10.0759 14.9034 10.3644 14.6388 10.7393 14.6411C11.0972 14.6435 11.3816 14.9197 11.3896 15.278C11.3938 15.4594 11.3902 15.6407 11.3902 15.8224C11.3905 15.8224 11.3905 15.8224 11.3908 15.8224Z\"\n fill={fill}\n />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface UpRightArrowCircleIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const UpRightArrowCircleIcon = ({ fill = 'currentColor', ...props }: UpRightArrowCircleIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <g>\n <path\n d=\"M10.68,4.72c.18,0,.32.15.3.33l-1.09,5.65c-.03.21-.26.28-.44.19l-1.85-1.85h-.04l-2.1,2.07c-.52.46-1.24-.13-.86-.72l2.17-2.17-1.96-1.95c-.12-.13-.06-.36.1-.42l5.78-1.13h-.01Z\"\n fill={fill}\n />\n <path\n d=\"M15.09,4.36C13.71,1.68,11.01.02,8.03.02h-.26C4.77.12,2.19,1.78.85,4.46-.48,7.13-.24,10.19,1.49,12.62c1.52,2.14,3.89,3.36,6.5,3.36s4.98-1.22,6.51-3.35c1.77-2.46,1.98-5.55.59-8.27ZM13.76,11.33c-1.21,2.09-3.36,3.33-5.76,3.33h-.01c-2.17,0-4.14-1.02-5.41-2.79-1.44-2.01-1.64-4.54-.56-6.76,1.08-2.24,3.19-3.63,5.65-3.74.11,0,.23-.01.33-.01,2.41,0,4.56,1.25,5.77,3.36,1.2,2.08,1.19,4.55-.01,6.62Z\"\n fill={fill}\n />\n </g>\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface VectorIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const VectorIcon = ({ fill = 'currentColor', ...props }: VectorIconProps) => {\n return (\n <svg viewBox=\"0 0 12 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M0.869629 5.00098H10.8696M10.8696 5.00098L6.86963 1.00098M10.8696 5.00098L7.11151 8.7591L6.86963 9.00098\"\n stroke={fill}\n strokeWidth=\"1.3\"\n />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface InfoCircleIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const BallsMenu = ({ fill = 'currentColor', ...props }: InfoCircleIconProps) => {\n return (\n <svg viewBox=\"0 0 16 3\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <ellipse cx=\"1.56746\" cy=\"1.5\" rx=\"1.53633\" ry=\"1.5\" fill={fill} />\n <ellipse cx=\"7.71278\" cy=\"1.5\" rx=\"1.53633\" ry=\"1.5\" fill={fill} />\n <ellipse cx=\"13.8581\" cy=\"1.5\" rx=\"1.53633\" ry=\"1.5\" fill={fill} />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface InfoCircleIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const CheckIcon = ({ fill = 'currentColor', ...props }: InfoCircleIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M9.796 6.706c-3.438 3.638-4.457 4.698-4.481 4.671l-3.552-3.768c-0.026-0.028-0.193 0.115-0.792 0.678-0.418 0.394-0.759 0.727-0.759 0.739 0 0.011 1.010 1.091 2.245 2.396 2.080 2.2 2.258 2.381 2.425 2.462 0.32 0.158 0.729 0.142 1.015-0.038 0.149-0.094-0.051 0.115 5.257-5.502l4.634-4.902-0.752-0.715c-0.233-0.223-0.484-0.458-0.738-0.691l-0.034-0.030c-1.295 1.344-2.752 2.874-4.201 4.413l-0.268 0.287z\"\n fill={fill}\n ></path>\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface ChevronRightIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const ChevronDownIcon = ({ fill = 'currentColor', ...props }: ChevronRightIconProps) => {\n return (\n <svg viewBox=\"0 0 18 17\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M17.4517 5.77798L16.4067 6.79197L10.8447 12.1899C10.0753 12.9367 8.82791 12.9367 8.05853 12.1899L2.49647 6.79197L1.45166 5.77798L3.54128 3.75L4.58609 4.76399L9.45161 9.48599L14.3172 4.76399L15.362 3.75L17.4517 5.77798Z\"\n fill={fill}\n />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface ChevronRightIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const ChevronUpIcon = ({ fill = 'currentColor', ...props }: ChevronRightIconProps) => {\n return (\n <svg viewBox=\"0 0 17 17\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M0.20166 10.722L1.24661 9.70803L6.80863 4.31012C7.57801 3.56329 8.82541 3.56329 9.59479 4.31012L15.1569 9.70803L16.2017 10.722L14.112 12.75L13.0672 11.736L8.20171 7.01401L3.33611 11.736L2.29136 12.75L0.20166 10.722Z\"\n fill={fill}\n />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface PrintIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const PlusIcon = ({ fill = 'currentColor', ...props }: PrintIconProps) => {\n return (\n <svg viewBox=\"0 0 10 10\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M9.21053 5.78952H0.789474C0.357895 5.78952 0 5.43162 0 5.00005C0 4.56847 0.357895 4.21057 0.789474 4.21057H9.21053C9.64211 4.21057 10 4.56847 10 5.00005C10 5.43162 9.64211 5.78952 9.21053 5.78952Z\"\n fill={fill}\n />\n <path\n d=\"M5.00041 10C4.56883 10 4.21094 9.64211 4.21094 9.21053V0.789474C4.21094 0.357895 4.56883 0 5.00041 0C5.43199 0 5.78988 0.357895 5.78988 0.789474V9.21053C5.78988 9.64211 5.43199 10 5.00041 10Z\"\n fill={fill}\n />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface PrintIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const UsersIcon = ({ fill = 'currentColor', ...props }: PrintIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M12.0003 5.27318C11.9803 5.27318 11.967 5.27318 11.947 5.27318H11.9136C10.6536 5.23318 9.71362 4.25985 9.71362 3.05984C9.71362 1.83318 10.7136 0.839844 11.9336 0.839844C13.1536 0.839844 14.1536 1.83984 14.1536 3.05984C14.147 4.26651 13.207 5.23985 12.007 5.27985C12.007 5.27318 12.007 5.27318 12.0003 5.27318ZM11.9336 1.83318C11.2603 1.83318 10.7136 2.37985 10.7136 3.05318C10.7136 3.71318 11.227 4.24652 11.887 4.27318C11.8936 4.26652 11.947 4.26652 12.007 4.27318C12.6536 4.23985 13.1536 3.70652 13.1603 3.05318C13.1603 2.37985 12.6136 1.83318 11.9336 1.83318Z\"\n fill={fill}\n />\n <path\n d=\"M12.0075 10.1871C11.7475 10.1871 11.4875 10.1671 11.2275 10.1204C10.9541 10.0738 10.7741 9.81376 10.8208 9.54042C10.8675 9.26709 11.1275 9.08709 11.4008 9.13376C12.2208 9.27376 13.0875 9.12043 13.6675 8.73376C13.9808 8.5271 14.1475 8.26709 14.1475 8.00709C14.1475 7.74709 13.9741 7.49375 13.6675 7.28709C13.0875 6.90042 12.2075 6.74709 11.3808 6.89376C11.1075 6.94709 10.8475 6.76042 10.8008 6.48709C10.7541 6.21376 10.9341 5.95376 11.2075 5.90709C12.2941 5.71376 13.4208 5.92042 14.2208 6.45375C14.8075 6.84709 15.1475 7.40709 15.1475 8.00709C15.1475 8.60042 14.8141 9.1671 14.2208 9.5671C13.6141 9.9671 12.8275 10.1871 12.0075 10.1871Z\"\n fill={fill}\n />\n <path\n d=\"M3.98031 5.27399C3.97365 5.27399 3.96698 5.27399 3.96698 5.27399C2.76698 5.23399 1.82698 4.26065 1.82031 3.06065C1.82031 1.83398 2.82031 0.833984 4.04031 0.833984C5.26031 0.833984 6.26031 1.83399 6.26031 3.05399C6.26031 4.26065 5.32031 5.23399 4.12031 5.27399L3.98031 4.77399L4.02698 5.27399C4.01365 5.27399 3.99365 5.27399 3.98031 5.27399ZM4.04698 4.27399C4.08698 4.27399 4.12031 4.27398 4.16031 4.28065C4.75365 4.25398 5.27365 3.72065 5.27365 3.06065C5.27365 2.38732 4.72698 1.84065 4.05365 1.84065C3.38031 1.84065 2.83365 2.38732 2.83365 3.06065C2.83365 3.71398 3.34031 4.24065 3.98698 4.28065C3.99365 4.27398 4.02031 4.27399 4.04698 4.27399Z\"\n fill={fill}\n />\n <path\n d=\"M3.97325 10.1871C3.15325 10.1871 2.36658 9.9671 1.75992 9.5671C1.17325 9.17376 0.833252 8.60709 0.833252 8.00709C0.833252 7.41376 1.17325 6.84709 1.75992 6.45375C2.55992 5.92042 3.68658 5.71376 4.77325 5.90709C5.04659 5.95376 5.22659 6.21376 5.17992 6.48709C5.13325 6.76042 4.87325 6.94709 4.59992 6.89376C3.77325 6.74709 2.89992 6.90042 2.31325 7.28709C1.99992 7.49375 1.83325 7.74709 1.83325 8.00709C1.83325 8.26709 2.00659 8.5271 2.31325 8.73376C2.89325 9.12043 3.75992 9.27376 4.57992 9.13376C4.85325 9.08709 5.11325 9.27376 5.15992 9.54042C5.20659 9.81376 5.02659 10.0738 4.75325 10.1204C4.49325 10.1671 4.23325 10.1871 3.97325 10.1871Z\"\n fill={fill}\n />\n <path\n d=\"M8.00023 10.2537C7.98023 10.2537 7.96689 10.2537 7.94689 10.2537H7.91356C6.65356 10.2137 5.71356 9.24031 5.71356 8.04031C5.71356 6.81365 6.71356 5.82031 7.93356 5.82031C9.15356 5.82031 10.1536 6.82031 10.1536 8.04031C10.1469 9.24698 9.20689 10.2203 8.00689 10.2603C8.00689 10.2536 8.0069 10.2537 8.00023 10.2537ZM7.93356 6.81365C7.26023 6.81365 6.71356 7.36032 6.71356 8.03365C6.71356 8.69365 7.2269 9.22699 7.8869 9.25365C7.89356 9.24699 7.94689 9.24699 8.00689 9.25365C8.65356 9.22032 9.15356 8.68698 9.16023 8.03365C9.16023 7.36698 8.61356 6.81365 7.93356 6.81365Z\"\n fill={fill}\n />\n <path\n d=\"M7.99921 15.1725C7.19921 15.1725 6.39921 14.9658 5.77921 14.5458C5.19254 14.1525 4.85254 13.5925 4.85254 12.9925C4.85254 12.3992 5.18587 11.8258 5.77921 11.4325C7.02587 10.6058 8.97921 10.6058 10.2192 11.4325C10.8059 11.8258 11.1459 12.3858 11.1459 12.9858C11.1459 13.5792 10.8125 14.1525 10.2192 14.5458C9.59921 14.9592 8.79921 15.1725 7.99921 15.1725ZM6.33254 12.2725C6.01921 12.4792 5.85254 12.7392 5.85254 12.9992C5.85254 13.2592 6.02587 13.5125 6.33254 13.7192C7.23254 14.3258 8.75921 14.3258 9.65921 13.7192C9.97254 13.5125 10.1392 13.2525 10.1392 12.9925C10.1392 12.7325 9.96587 12.4792 9.65921 12.2725C8.76587 11.6658 7.23921 11.6725 6.33254 12.2725Z\"\n fill={fill}\n />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface InfoCircleIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const InfoCircleFilledIcon = ({ fill = 'currentColor', ...props }: InfoCircleIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n fill-rule=\"evenodd\"\n clip-rule=\"evenodd\"\n d=\"M8 15C9.85652 15 11.637 14.2625 12.9497 12.9497C14.2625 11.637 15 9.85652 15 8C15 6.14348 14.2625 4.36301 12.9497 3.05025C11.637 1.7375 9.85652 1 8 1C6.14348 1 4.36301 1.7375 3.05025 3.05025C1.7375 4.36301 1 6.14348 1 8C1 9.85652 1.7375 11.637 3.05025 12.9497C4.36301 14.2625 6.14348 15 8 15ZM8 4C8.19891 4 8.38968 4.07902 8.53033 4.21967C8.67098 4.36032 8.75 4.55109 8.75 4.75V7.75C8.75 7.94891 8.67098 8.13968 8.53033 8.28033C8.38968 8.42098 8.19891 8.5 8 8.5C7.80109 8.5 7.61032 8.42098 7.46967 8.28033C7.32902 8.13968 7.25 7.94891 7.25 7.75V4.75C7.25 4.55109 7.32902 4.36032 7.46967 4.21967C7.61032 4.07902 7.80109 4 8 4ZM8 12C8.26522 12 8.51957 11.8946 8.70711 11.7071C8.89464 11.5196 9 11.2652 9 11C9 10.7348 8.89464 10.4804 8.70711 10.2929C8.51957 10.1054 8.26522 10 8 10C7.73478 10 7.48043 10.1054 7.29289 10.2929C7.10536 10.4804 7 10.7348 7 11C7 11.2652 7.10536 11.5196 7.29289 11.7071C7.48043 11.8946 7.73478 12 8 12Z\"\n fill={fill}\n />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface DataSetsIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const UnfoldIcon = ({ fill = 'currentColor', ...props }: DataSetsIconProps) => {\n return (\n <svg viewBox=\"0 0 15 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M3.765 3.97l3.109-3.219c0.362-0.375 0.949-0.375 1.311 0l3.109 3.219-0.983 1.018-2.781-2.879-2.781 2.879-0.983-1.018z\"\n fill={fill}\n ></path>\n <path\n d=\"M11.294 12.029l-3.109 3.219c-0.362 0.375-0.949 0.375-1.311 0l-3.109-3.219 0.983-1.018 2.781 2.879 2.781-2.879 0.983 1.018z\"\n fill={fill}\n ></path>\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface DataSetsIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const CrossIcon = ({ fill = 'currentColor', ...props }: DataSetsIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M15.595 13.176c0.282 0.282 0.376 0.565 0.376 0.941s-0.188 0.753-0.376 0.941c-0.471 0.565-1.412 0.565-1.882 0l-5.176-5.176-5.176 5.176c-0.471 0.471-1.412 0.471-1.882 0s-0.376-0.565-0.376-0.941c0-0.376 0.188-0.659 0.376-0.941l5.176-5.176-0.376-0.376-4.988-4.8c-0.282-0.282-0.376-0.565-0.376-0.941s0.188-0.753 0.376-1.035c0.282-0.282 0.659-0.376 0.941-0.376s0.659 0.094 0.941 0.376l5.176 5.176 0.376-0.376 4.894-4.8c0.282-0.282 0.659-0.376 0.941-0.376s0.659 0.094 0.941 0.376c0.282 0.282 0.376 0.565 0.376 0.941s-0.188 0.753-0.376 0.941l-5.176 5.176 5.271 5.271z\"\n fill={fill}\n ></path>\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface MaximizeIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const MaximizeIcon = ({ fill = 'currentColor', ...props }: MaximizeIconProps) => {\n return (\n <svg width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M14 6.5C13.7267 6.5 13.5 6.27333 13.5 6V2.5H10C9.72667 2.5 9.5 2.27333 9.5 2C9.5 1.72667 9.72667 1.5 10 1.5H14C14.2733 1.5 14.5 1.72667 14.5 2V6C14.5 6.27333 14.2733 6.5 14 6.5Z\"\n fill={fill}\n />\n <path\n d=\"M6 14.5H2C1.72667 14.5 1.5 14.2733 1.5 14V10C1.5 9.72667 1.72667 9.5 2 9.5C2.27333 9.5 2.5 9.72667 2.5 10V13.5H6C6.27333 13.5 6.5 13.7267 6.5 14C6.5 14.2733 6.27333 14.5 6 14.5Z\"\n fill={fill}\n />\n <path\n d=\"M8.9998 7.50224C8.87313 7.50224 8.74646 7.45557 8.64646 7.35557C8.45313 7.16224 8.45313 6.84224 8.64646 6.64891L13.6465 1.64891C13.8398 1.45557 14.1598 1.45557 14.3531 1.64891C14.5465 1.84224 14.5465 2.16224 14.3531 2.35557L9.35313 7.35557C9.25313 7.45557 9.12646 7.50224 8.9998 7.50224Z\"\n fill={fill}\n />\n <path\n d=\"M1.9998 14.5022C1.87313 14.5022 1.74646 14.4556 1.64646 14.3556C1.45313 14.1622 1.45313 13.8422 1.64646 13.6489L6.64646 8.64891C6.8398 8.45557 7.1598 8.45557 7.35313 8.64891C7.54646 8.84224 7.54646 9.16224 7.35313 9.35557L2.35313 14.3556C2.25313 14.4556 2.12646 14.5022 1.9998 14.5022Z\"\n fill={fill}\n />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface BusIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const BusIcon = ({ fill = 'currentColor', ...props }: BusIconProps) => {\n return (\n <svg viewBox=\"0 0 17 17\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M15.8835 15.1402H14.4635V15.9702C14.4635 15.9702 14.3735 16.1502 14.3635 16.1702C14.2835 16.2902 14.1435 16.4002 14.0135 16.4402C13.7735 16.5202 12.5035 16.5102 12.2335 16.4702C12.0435 16.4402 11.6635 16.1802 11.6635 15.9602V15.1302H5.28346V15.9602C5.28346 16.1202 4.97346 16.3902 4.82346 16.4302C4.58346 16.5102 3.31346 16.5002 3.04346 16.4602C2.86346 16.4302 2.47346 16.1702 2.47346 15.9502V15.1202H1.04346V2.61023C1.04346 2.13023 1.58346 1.66023 1.97346 1.52023C3.71346 0.870232 6.25346 0.560232 8.10346 0.500232C10.1135 0.440232 13.1635 0.710232 15.0335 1.50023C15.3735 1.64023 15.8835 2.13023 15.8835 2.55023V15.1402ZM11.3035 1.85023H5.62346V3.16023H11.3035V1.85023ZM3.46346 5.16023C3.10346 5.22023 2.84346 5.42023 2.81346 5.83023C2.73346 6.93023 2.87346 8.14023 2.81346 9.26023C2.84346 9.46023 3.02346 9.68023 3.18346 9.76023C3.22346 9.78023 3.42346 9.84023 3.46346 9.84023H8.07346C8.07346 9.84023 8.11346 9.80023 8.11346 9.79023V5.21023L8.07346 5.16023H3.46346ZM8.85346 5.16023C8.85346 5.16023 8.81346 5.20023 8.81346 5.21023V9.79023L8.85346 9.84023H13.4635C13.4635 9.84023 13.6935 9.78023 13.7435 9.76023C13.9135 9.68023 14.0935 9.46023 14.1135 9.26023C14.0635 8.14023 14.1935 6.94023 14.1135 5.83023C14.0935 5.58023 13.9635 5.34023 13.7335 5.24023C13.6835 5.22023 13.4935 5.16023 13.4535 5.16023H8.84346H8.85346ZM13.7335 11.8102C12.3035 11.8502 12.3835 13.9202 13.8135 13.8602C15.2435 13.8002 15.1435 11.7702 13.7335 11.8102ZM2.35346 13.5002C2.87346 14.0702 3.97346 13.9402 4.21346 13.1402C4.51346 12.1402 3.39346 11.5402 2.62346 11.9602C2.08346 12.2502 1.91346 13.0202 2.35346 13.5002ZM11.5535 12.3802C11.7535 12.1702 11.6035 11.8602 11.3435 11.8302H5.57346C5.21346 11.8802 5.17346 12.3402 5.50346 12.4602C7.46346 12.5002 9.44346 12.5002 11.4035 12.4602C11.4435 12.4402 11.5135 12.4102 11.5435 12.3802H11.5535ZM5.58346 13.1502C5.12346 13.2702 5.21346 13.8002 5.66346 13.8302H11.2535C11.7635 13.7802 11.7635 13.2202 11.2835 13.1402H5.58346V13.1502Z\"\n fill={fill}\n />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface CarIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const CarIcon = ({ fill = 'currentColor', ...props }: CarIconProps) => {\n return (\n <svg viewBox=\"0 0 17 15\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M16.3207 7.62978H14.8107C15.2007 8.67978 15.4507 8.61978 16.4807 8.42978C16.5807 8.88978 16.7107 9.77978 16.3207 10.1298C16.0607 10.3698 15.4907 10.3398 15.2907 10.5298C15.1907 10.6298 15.1007 10.9998 14.9307 11.2098C14.0907 12.2898 12.3407 11.9398 11.9307 10.6598L5.78065 10.6398C5.38065 11.8998 3.61065 12.2898 2.78065 11.2398C2.67065 11.0998 2.48065 10.5998 2.45065 10.5798C2.34065 10.5098 1.57065 10.5098 1.27065 10.3698C0.840652 10.1798 0.670652 9.77978 0.630652 9.33978C0.590652 8.85978 0.550652 6.87978 0.650652 6.48978C0.820652 5.82978 2.18065 5.35978 2.63065 4.95978C2.86065 4.74978 3.11065 4.31978 3.34065 4.07978C4.43065 2.94978 5.16065 3.12978 6.65065 3.15978C8.26065 3.19978 10.1107 3.09978 11.3507 4.19978C11.6807 4.48978 12.1507 5.22978 12.3907 5.38978C12.8607 5.68978 14.3707 5.95978 15.0107 6.18978C15.8107 6.48978 16.1207 6.73978 16.3207 7.61978V7.62978ZM7.07065 4.20978C6.52065 4.28978 5.97065 4.07978 5.43065 4.12978C4.61065 4.19978 4.10065 5.12978 3.88065 5.83978L7.07065 5.95978V4.20978ZM9.42065 4.28978C9.01065 4.23978 8.52065 4.32978 8.10065 4.28978V6.03978L11.6907 6.11978C11.1407 5.29978 10.4807 4.41978 9.42065 4.28978ZM3.86065 9.39978C3.05065 9.60978 3.26065 10.9798 4.20065 10.8598C5.23065 10.7198 4.93065 9.11978 3.86065 9.39978ZM13.3407 9.39978C12.3307 9.62978 12.9507 11.3198 13.9107 10.7698C14.6807 10.3298 14.2507 9.19978 13.3407 9.39978Z\"\n fill={fill}\n />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface WayIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const WayIcon = ({ fill = 'currentColor', ...props }: WayIconProps) => {\n return (\n <svg viewBox=\"0 0 17 17\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M4.55288 16.4902L5.19288 15.5902L5.25288 15.5602H13.4829C14.0529 15.4602 14.2729 15.1002 14.3129 14.5502C14.3429 14.1002 14.3629 12.6102 14.2029 12.2602C14.0729 11.9702 13.7629 11.8002 13.4529 11.7602C11.9129 11.6702 10.2329 11.8802 8.71288 11.7602C8.11288 11.7102 7.49288 11.2902 7.23288 10.7502C6.87288 10.0102 7.13288 8.72016 7.05288 7.88016C7.01288 7.48016 6.73288 7.08016 6.32288 7.03016C5.12288 6.87016 3.72288 7.44016 2.90288 6.18016C2.29288 5.25016 2.74288 3.31016 2.60288 2.21016C2.69288 1.31016 3.37288 0.630158 4.26288 0.530158C5.82288 0.610158 7.48289 0.430158 9.03289 0.530158C9.74289 0.580158 10.3929 1.01016 10.6529 1.69016C10.9729 2.52016 10.6929 3.80016 10.7929 4.70016C10.8929 5.60016 11.9129 5.50016 12.5729 5.51016L13.2229 6.43016C12.4529 6.38016 11.5229 6.57016 10.8229 6.20016C9.38288 5.43016 9.97289 3.69016 9.86288 2.36016C9.82289 1.90016 9.50288 1.53016 9.03289 1.47016C7.53289 1.57016 5.84288 1.33016 4.35288 1.47016C3.93288 1.51016 3.58288 1.85016 3.53288 2.27016C3.59288 3.23016 3.45288 4.29016 3.53288 5.23016C3.65288 6.63016 5.85288 5.84016 6.78288 6.19016C8.55288 6.84016 7.79288 8.76016 7.99288 10.1202C8.05288 10.4902 8.41288 10.8002 8.78288 10.8302C10.2829 10.9702 11.9829 10.7202 13.4929 10.8302C14.3629 10.9002 15.0629 11.5202 15.2229 12.3802C15.1029 13.7402 15.7429 15.6902 14.1229 16.3602C14.0229 16.4002 13.7129 16.5102 13.6229 16.5102H4.55288V16.4902Z\"\n fill={fill}\n />\n <path\n d=\"M14.4627 0.540077C15.8127 0.400077 16.9627 1.53008 16.8727 2.88008C16.8027 3.89008 15.9927 5.15008 15.3427 5.90008C14.9727 6.33008 14.7227 6.65008 14.2227 6.12008C13.5127 5.38008 12.5627 3.89008 12.5127 2.85008C12.4527 1.69008 13.3127 0.650077 14.4727 0.540077H14.4627ZM14.4927 1.94008C13.6427 2.10008 13.7627 3.50008 14.7027 3.49008C15.7827 3.47008 15.6927 1.72008 14.4927 1.94008Z\"\n fill={fill}\n />\n <path\n d=\"M3.0828 10.6104C4.2228 10.6104 5.2128 11.5204 5.2728 12.6704C5.3328 13.8204 4.3928 15.2604 3.6628 16.0804C3.4028 16.3804 3.1228 16.7004 2.7228 16.3304C2.0628 15.7104 1.0928 14.1504 0.942799 13.2504C0.712799 11.8804 1.6528 10.6104 3.0728 10.6104H3.0828ZM2.9928 12.0104C1.9928 12.1304 2.1428 13.6704 3.2028 13.5604C4.1828 13.4504 4.0528 11.8904 2.9928 12.0104Z\"\n fill={fill}\n />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface PlaneIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const PlaneIcon = ({ fill = 'currentColor', ...props }: PlaneIconProps) => {\n return (\n <svg viewBox=\"0 0 17 17\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M14.2452 7.25014C14.3752 7.87014 14.5152 8.50014 14.6752 9.14014C14.7052 9.28014 14.7452 9.42014 14.7752 9.56014C14.8852 10.0901 15.0052 10.6101 15.1152 11.1401L16.1052 15.5401L15.1652 16.4901L10.8852 9.06014C9.19516 10.6001 7.51516 12.1501 5.72516 13.5601L6.12516 15.8301L5.17516 16.4901C5.01516 16.3301 4.02516 14.9301 3.92516 14.9301C3.85516 14.9301 2.94516 15.5601 2.77516 15.6501C2.55516 15.7701 2.29516 15.9101 2.06516 16.0001C0.325156 16.6701 1.43516 14.8101 1.82516 14.1601C1.89516 14.0401 2.34516 13.3901 2.35516 13.3401C2.35516 13.2401 0.955156 12.2501 0.795156 12.0901L1.45516 11.1401L3.72516 11.5401C5.13516 9.74014 6.69516 8.07014 8.22516 6.38014L0.785156 2.13014L1.72516 1.18014L6.14516 2.16014L7.72516 2.50014C7.86516 2.54014 8.01516 2.57014 8.15516 2.61014C8.79516 2.76014 9.41516 2.91014 10.0352 3.04014L11.1752 3.28014C12.0252 2.51014 12.6852 1.58014 13.7252 1.05014C14.4952 0.660144 16.3252 0.000143588 16.7152 1.15014C16.9952 1.97014 16.4352 3.30014 15.9852 4.00014C15.4752 4.79014 14.6452 5.40014 14.0152 6.10014L14.2552 7.25014H14.2452Z\"\n fill={fill}\n />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface ShipIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const ShipIcon = ({ fill = 'currentColor', ...props }: ShipIconProps) => {\n return (\n <svg viewBox=\"0 0 17 17\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M8.93797 6.3098L16.198 10.2298L14.178 14.6598C14.108 14.7198 13.878 14.6798 13.768 14.6998C12.948 14.8098 12.098 15.9798 11.338 15.9798C10.578 15.9798 9.73797 14.7998 8.93797 14.7198L8.91797 8.2998C8.82797 8.0098 8.42797 8.0698 8.41797 8.3798V14.7198C7.59797 14.8098 6.72797 16.0298 5.94797 15.9798C5.21797 15.9298 4.41797 14.8398 3.60797 14.6998C3.49797 14.6798 3.29797 14.6998 3.23797 14.6498L1.16797 10.2798L8.41797 6.2998V7.4098C8.41797 7.6298 8.93797 7.6298 8.93797 7.4098V6.2998V6.3098Z\"\n fill={fill}\n />\n <path\n d=\"M13.7079 5.05V8.28C13.6179 8.26 13.5279 8.21 13.4479 8.17C11.8479 7.33 10.2779 6.42 8.68795 5.58C6.99795 6.46 5.34795 7.43 3.64795 8.28V5.05C5.34795 4.49 7.00795 3.83 8.69795 3.25L13.7179 5.05H13.7079ZM6.79795 4.86C6.72795 4.86 5.99795 5.14 5.94795 5.17C5.75795 5.32 5.87795 5.65 6.16795 5.62C6.24795 5.62 6.91795 5.37 6.97795 5.33C7.17795 5.17 7.05795 4.83 6.79795 4.86ZM10.4779 4.86C10.2479 4.89 10.1679 5.2 10.3779 5.34C10.4579 5.39 11.0279 5.61 11.1279 5.62C11.4579 5.67 11.5979 5.36 11.3779 5.18C11.3079 5.13 10.5479 4.86 10.4779 4.86ZM5.34795 5.44C5.26795 5.46 4.62795 5.7 4.58795 5.74C4.38795 5.92 4.54795 6.22 4.80795 6.19C4.89795 6.18 5.59795 5.92 5.64795 5.87C5.84795 5.69 5.66795 5.38 5.34795 5.44ZM11.6879 5.48C11.5379 5.6 11.6079 5.83 11.7679 5.92C11.8579 5.97 12.4179 6.17 12.5079 6.18C12.8479 6.22 12.9179 5.86 12.7079 5.72C12.6279 5.67 12.0779 5.46 11.9879 5.44C11.8979 5.43 11.7679 5.42 11.6979 5.47L11.6879 5.48Z\"\n fill={fill}\n />\n <path d=\"M9.57832 0.5V3.02L8.66832 2.69L7.77832 3.02V0.5H9.57832Z\" fill={fill} />\n <path\n d=\"M6.19799 16.5001L6.54799 16.3901C7.23799 16.1701 7.99799 15.1801 8.72799 15.2101C9.41799 15.2401 10.138 16.1801 10.808 16.3901L11.158 16.5001H6.18799H6.19799Z\"\n fill={fill}\n />\n <path\n d=\"M0.868164 16.4998L1.21816 16.3898C1.85816 16.1398 2.67816 15.2398 3.29816 15.2098C3.91816 15.1798 4.66816 15.9898 5.22816 16.2798L5.79816 16.4998H0.868164Z\"\n fill={fill}\n />\n <path\n d=\"M11.5481 16.4998L12.1181 16.2798C12.6781 15.9898 13.4281 15.1798 14.0481 15.2098C14.6681 15.2398 15.4881 16.1298 16.1281 16.3898L16.4781 16.4998H11.5381H11.5481Z\"\n fill={fill}\n />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface FileIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const FileIcon = ({ fill = 'currentColor', ...props }: FileIconProps) => {\n return (\n <svg viewBox=\"0 0 16 17\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M16 0.5V11.68L11.19 16.49H0V0.5H16ZM14.49 2.01H1.51V14.98H10.21V10.7H14.5V2.01H14.49ZM13.45 12.09H11.59V13.94L13.45 12.09Z\"\n fill={fill}\n />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface IosIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const IosIcon = ({ fill = 'currentColor', ...props }: IosIconProps) => {\n return (\n <svg viewBox=\"0 0 17 17\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M14.2026 11.7603C14.1126 11.7203 14.0426 11.6803 13.9726 11.6503C13.3326 11.2203 12.9126 10.4803 12.8726 9.68029C12.8326 8.92029 13.1326 8.22029 13.7026 7.75029C13.7926 7.67029 13.8926 7.62029 13.9826 7.57029C14.1726 7.46029 14.3726 7.33029 14.4126 7.12029C14.4526 6.94029 14.3726 6.75029 14.1826 6.51029C13.5226 5.66029 12.3526 5.12029 11.2026 5.12029C11.1226 5.12029 11.0526 5.12029 10.9626 5.13029C10.5226 5.16029 10.1426 5.28029 9.77263 5.40029C9.40263 5.53029 9.05263 5.64029 8.66263 5.64029C8.48263 5.64029 8.31263 5.61029 8.12263 5.56029C7.89263 5.50029 7.68263 5.43029 7.49263 5.37029C6.92263 5.19029 6.43263 5.05029 5.91263 5.05029C5.35263 5.05029 4.80263 5.21029 4.17263 5.59029C2.91263 6.33029 2.19263 7.63029 2.09263 9.35029C1.96263 11.7903 3.16263 14.6003 4.89263 15.9103C5.39263 16.3003 5.86263 16.4803 6.34263 16.4803C6.74263 16.4803 7.10263 16.3503 7.46263 16.2303C7.85263 16.0903 8.24263 15.9503 8.71263 15.9503C8.77263 15.9503 8.84263 15.9503 8.91263 15.9603C9.20263 15.9903 9.47263 16.0903 9.76263 16.2103C10.0126 16.3103 10.2826 16.4203 10.5826 16.4603C10.6826 16.4703 10.7826 16.4903 10.8826 16.4903C11.5426 16.4903 12.1326 16.2403 12.6826 15.7203C13.2726 15.1503 14.0026 14.0703 14.4226 13.2603C14.7226 12.6703 14.7926 12.4903 14.8026 12.4003C14.8326 12.0503 14.4526 11.8703 14.1826 11.7403L14.2026 11.7603ZM5.44263 15.0203C4.08263 13.8703 2.85263 11.1303 3.18263 8.89029C3.32263 8.02029 3.74263 6.88029 5.05263 6.32029C5.38263 6.18029 5.69263 6.12029 6.02263 6.12029C6.47263 6.12029 6.88263 6.25029 7.31263 6.38029C7.78263 6.53029 8.24263 6.70029 8.80263 6.70029C8.93263 6.70029 9.04263 6.69029 9.17263 6.67029C9.41263 6.64029 9.62263 6.56029 9.84263 6.47029C9.95263 6.43029 10.0826 6.38029 10.1926 6.34029C10.5726 6.24029 10.9326 6.19029 11.2626 6.19029C11.9826 6.19029 12.6026 6.42029 13.1126 6.88029C12.2426 7.54029 11.7726 8.55029 11.8226 9.68029C11.8826 10.9003 12.5526 12.0103 13.5726 12.6503C13.2026 13.3303 12.7626 14.0903 12.1926 14.7203C11.7226 15.2403 11.3426 15.4503 10.9226 15.4503C10.7726 15.4503 10.6226 15.4203 10.4726 15.3703C10.2326 15.2903 10.0426 15.2303 9.88263 15.1703C9.49263 15.0203 9.19263 14.9203 8.68263 14.9203C8.54263 14.9203 8.38263 14.9203 8.19263 14.9503C7.79263 15.0003 7.46263 15.1303 7.16263 15.2403C6.88263 15.3403 6.63263 15.4403 6.37263 15.4403C6.08263 15.4403 5.78263 15.3003 5.45263 15.0203H5.44263Z\"\n fill={fill}\n />\n <path\n d=\"M10.9426 0.500234C10.8826 0.500234 10.8326 0.510234 10.7526 0.510234C9.89258 0.620234 9.01258 1.17023 8.39258 1.96023C7.82258 2.70023 7.57258 3.54023 7.68258 4.31023C7.71258 4.51023 7.83258 4.85023 8.37258 4.85023C8.57258 4.85023 8.77258 4.80023 8.94258 4.77023C10.4026 4.44023 11.6926 2.64023 11.5426 1.12023C11.5126 0.850234 11.4126 0.490234 10.9326 0.490234L10.9426 0.500234ZM8.73258 3.73023C8.87258 2.80023 9.56258 1.98023 10.4726 1.69023C10.2926 2.61023 9.65258 3.52023 8.73258 3.73023Z\"\n fill={fill}\n />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface AndroidIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const AndroidIcon = ({ fill = 'currentColor', ...props }: AndroidIconProps) => {\n return (\n <svg viewBox=\"0 0 17 17\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M13.0054 7.9201C12.9254 7.0301 12.1654 6.2901 11.2454 6.1901C10.7254 6.1301 9.84544 6.1001 8.87544 6.1001C7.95544 6.1001 7.12544 6.1301 6.62544 6.1801C5.60544 6.2801 4.88544 7.0501 4.80544 8.1201C4.73544 9.0901 4.70544 11.0701 4.82544 11.9701C4.93544 12.7301 5.47544 13.3501 6.23544 13.6001C6.24544 13.7801 6.23544 13.9801 6.22544 14.1901C6.19544 15.0901 6.13544 16.4401 7.40544 16.5001H7.49544C7.86544 16.5001 8.15544 16.3901 8.36544 16.1701C8.78544 15.7401 8.76544 14.9901 8.74544 14.3301C8.73544 14.0201 8.72544 13.7301 8.81544 13.6501H9.07544V15.4301C9.07544 15.6001 9.35544 16.0501 9.38544 16.1001C9.60544 16.3601 9.93544 16.5001 10.3054 16.5001C10.8554 16.5001 11.4654 16.1701 11.5754 15.5401C11.6054 15.3601 11.5854 14.8901 11.5754 14.4301C11.5654 14.1401 11.5554 13.7601 11.5454 13.6101C12.3654 13.3401 12.9254 12.6901 13.0054 11.9101C13.0954 10.9101 13.0954 8.9401 13.0054 7.9201ZM7.65544 15.3401C7.65544 15.3401 7.57544 15.4001 7.49544 15.4001C7.42544 15.4001 7.37544 15.3701 7.35544 15.3101C7.30544 15.1201 7.28544 13.7401 7.23544 13.6601C7.24544 13.6601 7.27544 13.6501 7.39544 13.6501H7.65544V15.3401ZM10.0854 13.6601C10.0854 13.6601 10.1154 13.6501 10.2354 13.6501H10.4954V15.3401C10.4954 15.3401 10.4154 15.4001 10.3354 15.4001C10.2654 15.4001 10.2154 15.3701 10.1954 15.3101C10.1454 15.1201 10.1254 13.7401 10.0854 13.6601ZM11.9154 11.7301C11.8654 12.2101 11.5554 12.5301 11.0854 12.5701C10.7554 12.6001 10.5154 12.6301 10.0954 12.6101C9.65544 12.5901 9.42544 12.5801 9.25544 12.5801C8.46544 12.5701 8.27544 12.6601 7.56544 12.6401C7.35544 12.6401 7.05544 12.6201 6.69544 12.5801C6.20544 12.4801 5.94544 12.1801 5.89544 11.6701C5.81544 10.8601 5.80544 8.8501 5.90544 8.1201C5.95544 7.6801 6.23544 7.3701 6.57544 7.2801C6.73544 7.2601 6.96544 7.2401 7.23544 7.2301C7.36544 7.2301 7.76544 7.2001 8.59544 7.1801C9.55544 7.1701 9.25544 7.2001 10.1054 7.1801C10.2354 7.1801 10.6054 7.1801 11.0754 7.2501C11.4554 7.3201 11.6354 7.3901 11.7554 7.5301C11.9054 7.7101 11.9154 7.9201 11.9154 8.0301C11.9654 9.1101 12.0754 10.2301 11.9154 11.7201V11.7301Z\"\n fill={fill}\n />\n <path\n d=\"M11.3952 1.66C10.7352 0.92 9.82522 0.5 8.90522 0.5C8.79522 0.5 8.68522 0.51 8.57522 0.52C6.96522 0.7 5.62522 2.14 5.52522 3.8C5.46522 4.69 5.92522 5.7 6.87522 5.84C7.35522 5.9 8.22522 5.91 8.70522 5.91C9.51522 5.91 10.3452 5.89 10.8052 5.85C11.5552 5.78 12.1952 5.14 12.2852 4.36C12.3952 3.41 12.0752 2.42 11.3952 1.66ZM8.98522 4.82C8.28522 4.82 7.56522 4.8 7.19522 4.76C6.94522 4.73 6.78522 4.63 6.70522 4.45C6.47522 3.97 6.76522 3.09 7.05522 2.64C7.42522 2.06 8.13522 1.64 8.81522 1.6H8.91522C9.81522 1.6 10.7352 2.27 11.0452 3.17C11.1852 3.6 11.2852 4.21 11.0852 4.53C11.0052 4.66 10.8752 4.74 10.6852 4.76C10.3252 4.8 9.66522 4.82 8.98522 4.82Z\"\n fill={fill}\n />\n <path\n d=\"M4.45531 7.78014C4.34531 7.26014 3.84531 6.89014 3.23531 6.89014C2.87531 6.89014 2.54531 7.02014 2.32531 7.24014C2.13531 7.43014 1.99531 7.80014 1.97531 8.05014C1.90531 8.62014 1.88531 10.6801 1.98531 11.2701C2.11531 11.9401 2.70531 12.2401 3.23531 12.2401C3.87531 12.2401 4.38531 11.8401 4.46531 11.2701C4.54531 10.7801 4.55531 8.25014 4.45531 7.78014ZM3.24531 7.98014C3.24531 7.98014 3.37531 7.98014 3.39531 8.17014C3.45531 8.71014 3.46531 10.5401 3.38531 11.0001C3.37531 11.1101 3.31531 11.1701 3.25531 11.1701C3.16531 11.1701 3.07531 11.0701 3.05531 10.8301C3.00531 10.2601 2.97531 8.71014 3.05531 8.18014C3.07531 8.09014 3.15531 7.99014 3.20531 7.98014H3.24531Z\"\n fill={fill}\n />\n <path\n d=\"M15.8355 7.99014C15.7655 7.34014 15.2555 6.89014 14.5955 6.89014C14.5255 6.89014 14.4455 6.89014 14.3655 6.91014C13.8555 6.99014 13.4355 7.38014 13.3555 7.85014C13.2455 8.46014 13.2755 10.5401 13.3355 11.1401C13.4155 11.9001 14.0255 12.2401 14.5955 12.2401C15.2055 12.2401 15.7155 11.8701 15.8155 11.3401C15.9255 10.8001 15.9055 8.57014 15.8355 7.99014ZM14.6055 7.99014C14.6755 7.99014 14.7355 7.99014 14.7555 8.17014C14.8155 8.71014 14.8255 10.5501 14.7555 11.0001C14.7355 11.1101 14.6855 11.1601 14.6055 11.1601C14.5255 11.1601 14.4355 11.1101 14.4155 10.9501C14.3455 10.3601 14.3555 8.73014 14.4255 8.18014C14.4455 8.00014 14.4655 8.00014 14.5555 7.99014H14.6055Z\"\n fill={fill}\n />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface MicrosoftIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const MicrosoftIcon = ({ fill = 'currentColor', ...props }: MicrosoftIconProps) => {\n return (\n <svg viewBox=\"0 0 16 17\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M15.9805 6.96004V6.61004C16.0005 5.75004 15.9805 4.88004 15.9805 4.03004C15.9605 3.03004 15.9505 2.04004 15.9605 1.02004C15.9305 0.740039 15.7005 0.540039 15.3305 0.540039C15.3105 0.540039 7.92049 2.02004 7.92049 2.02004C7.64049 2.10004 7.48049 2.18004 7.44049 2.58004C7.36049 3.45004 7.39049 4.39004 7.42049 5.30004C7.45049 6.12004 7.49049 6.98004 7.44049 7.75004C7.41049 7.96004 7.52049 8.14004 7.87049 8.31004C9.04049 8.34004 10.2205 8.34004 11.4105 8.34004C12.6905 8.34004 13.9805 8.34004 15.2405 8.32004L15.6005 8.29004C15.7005 8.24004 15.9105 8.14004 15.9505 7.85004C15.9805 7.62004 15.9805 7.27004 15.9705 6.96004H15.9805ZM14.8305 1.81004V7.21004H8.59049V3.04004L14.8305 1.81004Z\"\n fill={fill}\n />\n <path\n d=\"M15.9806 10.6102V10.0502C16.0006 9.74018 16.0006 9.41018 15.9606 9.14018C15.9406 9.07018 15.9406 8.96018 15.8406 8.84018C15.7906 8.77018 15.6306 8.69018 15.5106 8.68018H7.87056C7.80056 8.68018 7.72056 8.73018 7.67056 8.76018C7.59056 8.84018 7.44056 8.97018 7.44056 9.20018C7.49056 9.99018 7.46056 10.8502 7.42056 11.6802C7.39056 12.5902 7.35056 13.5202 7.44056 14.4102C7.47056 14.8202 7.69056 14.9002 7.95056 14.9902C9.17056 15.3002 10.4706 15.5202 11.7206 15.7302C12.8906 15.9302 14.0906 16.1402 15.2406 16.4202C15.2606 16.4402 15.3906 16.4402 15.3906 16.4402C15.9706 16.4402 15.9706 15.8602 15.9706 15.4702C16.0006 13.8702 15.9906 12.2102 15.9706 10.6002L15.9806 10.6102ZM8.59056 13.9102V9.81018H14.8306V15.1602L8.59056 13.9102Z\"\n fill={fill}\n />\n <path\n d=\"M7.14065 11.6202C7.11065 10.8602 7.07065 10.0702 7.12065 9.32018C7.10065 8.94018 6.87066 8.68018 6.51065 8.68018L0.470655 8.70018C0.220655 8.75018 0.0606546 9.00018 0.0406546 9.28018C0.0906546 9.81018 0.0606546 10.4202 0.0206546 11.0102C-0.00934539 11.6702 -0.0493454 12.3402 0.0406546 12.9502C0.0906546 13.3902 0.340655 13.4802 0.600655 13.5402C1.55065 13.8002 2.59065 14.0002 3.58065 14.1802C4.50065 14.3402 5.47065 14.5302 6.39065 14.7702H6.52065C6.68065 14.7702 7.06065 14.7202 7.11065 14.1402C7.19065 13.3302 7.16066 12.4602 7.13065 11.6202H7.14065ZM1.22065 12.4602V9.81018H5.94065V13.4802L1.22065 12.4602Z\"\n fill={fill}\n />\n <path\n d=\"M7.13046 2.83C7.06046 2.3 6.70046 2.25 6.54046 2.25C6.52046 2.25 6.36046 2.27 6.34046 2.27C5.45046 2.5 4.53046 2.68 3.61046 2.85C2.61046 3.03 1.59046 3.23 0.620459 3.49C0.290459 3.59 0.0904587 3.67 0.0604587 4.13C-0.00954127 4.74 0.0304587 5.4 0.0404587 6.02C0.0704587 6.6 0.0904587 7.17 0.0604587 7.76C0.110459 8.12 0.320459 8.34 0.690459 8.34C1.04046 8.32 1.40046 8.31 1.78046 8.31C2.34046 8.31 2.92046 8.33 3.49046 8.36C4.07046 8.38 4.64046 8.39 5.22046 8.39C5.68046 8.39 6.13046 8.39 6.55046 8.34C7.03046 8.31 7.13046 7.98 7.14046 7.67C7.09046 6.96 7.12046 6.16 7.16046 5.38C7.19046 4.52 7.24046 3.64 7.14046 2.83H7.13046ZM5.94046 3.54V7.21H1.22046V4.58L5.94046 3.54Z\"\n fill={fill}\n />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface FolderAlertIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const FolderAlertIcon = ({ fill = 'currentColor', ...props }: FolderAlertIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M13.7386 2.02034H14.8293C15.3096 2.02034 16 2.77034 16.01 3.26034V12.1703C15.97 12.6703 15.6498 13.1203 15.1995 13.3403C14.7492 13.5603 14.2989 13.4503 13.8086 13.4803C13.0181 15.7803 10.2764 16.7303 8.21513 15.3903C7.50469 14.9303 7.0344 14.2503 6.7242 13.4703H1.24078C0.590369 13.3703 0.08005 12.8603 0 12.2003V3.26034C0 2.77034 0.700438 2.02034 1.18074 2.02034H2.27142V0.300345C2.27142 0.240345 2.47154 0.0303449 2.55159 0.0203449L13.3684 0.000344886C13.4784 -0.00965511 13.7286 0.200345 13.7286 0.300345V2.02034H13.7386ZM12.848 0.880345H3.15197V2.01034H4.77298C5.40338 2.01034 6.44403 3.49035 6.90431 3.95035C6.92433 3.97035 6.93433 4.00034 6.93433 4.03034H12.858V0.880345H12.848ZM13.9887 12.5903H14.5991C14.8593 12.5903 15.1395 12.2303 15.1194 11.9803V5.53034C15.0894 5.15034 14.8793 4.95035 14.5091 4.92034H6.63415C6.54409 4.90034 6.47405 4.86034 6.41401 4.80034C5.9237 4.35035 5.48343 3.65035 5.00313 3.16035C4.83302 2.99035 4.74296 2.93035 4.50281 2.91035C3.54221 2.97035 2.49156 2.84035 1.54096 2.91035C1.15072 2.94035 0.930582 3.12034 0.890557 3.52034V12.0203C0.890557 12.2703 1.17073 12.6003 1.41088 12.6003H6.5641C6.37398 10.0903 8.61539 8.12035 11.0969 8.65034C12.8981 9.04035 14.1588 10.7603 13.9987 12.6003L13.9887 12.5903ZM15.1194 4.12034V3.41035C15.1194 3.20035 14.8093 2.89035 14.5991 2.89035H13.7286V4.02034H14.8193C14.8193 4.02034 15.0994 4.14035 15.1194 4.11034V4.12034ZM10.1363 9.45035C7.91495 9.55035 6.67417 12.1003 7.97498 13.9203C9.13571 15.5603 11.6573 15.4603 12.6879 13.7303C13.8386 11.8003 12.3877 9.35034 10.1363 9.45035Z\"\n fill={fill}\n />\n <path\n d=\"M2.07172 9.07031H4.83345C5.28373 9.19031 5.29373 9.82031 4.83345 9.94031H2.09173C1.65146 9.81031 1.63145 9.22031 2.06171 9.07031H2.07172Z\"\n fill={fill}\n />\n <path\n d=\"M2.07172 10.8398H4.83345C5.28373 10.9598 5.29373 11.5898 4.83345 11.7098H2.09173C1.65146 11.5798 1.63145 10.9898 2.06171 10.8398H2.07172Z\"\n fill={fill}\n />\n <path\n d=\"M10.1371 10.3314C10.3772 10.2814 10.6674 10.4014 10.7074 10.6614C10.7475 10.9214 10.7475 12.1214 10.7074 12.3914C10.6374 12.8414 9.90694 12.8314 9.82689 12.3914C9.78687 12.1514 9.78687 10.9014 9.82689 10.6614C9.84691 10.5314 10.007 10.3614 10.1271 10.3314H10.1371Z\"\n fill={fill}\n />\n <path\n d=\"M10.1372 13.3494C10.7876 13.2194 10.8976 14.0694 10.4273 14.2094C9.76694 14.4094 9.61684 13.4594 10.1372 13.3494Z\"\n fill={fill}\n />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface RelationIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const RelationIcon = ({ fill = 'currentColor', ...props }: RelationIconProps) => {\n return (\n <svg viewBox=\"0 0 16 16\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M8.40767 2.3898C7.62079 0.918033 6.09073 0 4.41496 0C4.26924 0 4.13809 0 3.99237 0.0291439C2.50603 0.145719 1.19456 1.04918 0.495103 2.43352C-0.218923 3.84699 -0.160635 5.49363 0.669966 6.8051C1.486 8.13115 2.89947 8.91803 4.45867 8.91803C6.01787 8.91803 7.34392 8.17486 8.15995 6.93625C9.09255 5.53734 9.17998 3.84699 8.40767 2.3898ZM4.47324 8.102C3.7155 8.102 2.98691 7.86885 2.34574 7.43169C2.47689 6.68852 2.98691 6.03279 3.68636 5.77049C3.93408 5.66849 4.19638 5.62477 4.45867 5.62477C5.26013 5.62477 5.98873 6.0765 6.35303 6.79053C6.45503 6.99454 6.57161 7.37341 6.57161 7.41712C6.52789 7.46084 6.17816 7.66485 6.09073 7.70856C5.58071 7.97086 5.04155 8.102 4.47324 8.102ZM4.9104 4.6776C4.76468 4.76503 4.61896 4.80874 4.45867 4.80874C4.16723 4.80874 3.89037 4.66302 3.73008 4.40073C3.56978 4.16758 3.55521 3.87614 3.67179 3.59927C3.77379 3.36612 4.03609 3.14754 4.25467 3.1184C4.31295 3.1184 4.37124 3.1184 4.4441 3.1184C4.92498 3.1184 5.20184 3.45355 5.28927 3.74499C5.36213 4.03643 5.31842 4.42987 4.9104 4.69217V4.6776ZM7.22734 6.79053C6.97962 6.06193 6.44046 5.44991 5.69729 5.07104C6.0033 4.73588 6.16359 4.28415 6.11987 3.81785C6.07616 3.26412 5.77015 2.76867 5.2747 2.4918C5.01241 2.34608 4.73554 2.27322 4.4441 2.27322C3.81751 2.27322 3.23463 2.65209 2.95776 3.2204C2.66632 3.80328 2.73918 4.47359 3.16177 5.01275C3.16177 5.01275 3.19091 5.05647 3.23463 5.08561C2.54975 5.37705 1.96687 6.00364 1.69 6.76138C1.69 6.76138 1.67543 6.77596 1.67543 6.8051C1.63171 6.76138 1.57343 6.68853 1.51514 6.60109C0.69911 5.46448 0.582534 4.06557 1.20913 2.82696C1.85029 1.58834 3.07434 0.816029 4.42953 0.816029C4.8084 0.816029 5.20184 0.874317 5.58071 0.990893C6.77561 1.36976 7.67907 2.34608 7.98508 3.61384C8.26195 4.76503 7.98508 5.93078 7.22734 6.79053Z\"\n fill={fill}\n />\n <path\n d=\"M15.3874 9.29697C14.5713 7.91263 13.1433 7.08203 11.555 7.08203C11.4529 7.08203 11.3364 7.08203 11.2198 7.0966C9.52945 7.21318 8.11597 8.21864 7.44566 9.77784C6.77535 11.337 7.02308 13.0565 8.1014 14.3826C8.94657 15.4026 10.1998 16.0001 11.5258 16.0001C13.1724 16.0001 14.6151 15.1549 15.4165 13.7414C16.2034 12.3425 16.1888 10.6959 15.3874 9.29697ZM11.555 15.184C10.8992 15.184 10.258 15.0092 9.64603 14.6449C9.57317 14.6157 9.45659 14.5283 9.42745 14.5283C9.38373 14.3972 9.73346 13.6977 9.90832 13.4791C10.3163 12.9837 10.8846 12.7068 11.5112 12.7068C12.4584 12.7068 13.493 13.348 13.697 14.4554C13.1142 14.9217 12.3564 15.184 11.555 15.184ZM10.6952 11.1039C10.6661 10.7104 10.8701 10.2733 11.3801 10.1859C11.4384 10.1859 11.4967 10.1713 11.555 10.1713C12.1087 10.1713 12.371 10.623 12.3856 11.031C12.3856 11.4536 12.1378 11.8762 11.5258 11.9053C11.0012 11.9053 10.7389 11.4973 10.6952 11.1039ZM14.3091 13.8871C14.0759 13.144 13.493 12.4882 12.779 12.1822C13.1724 11.7305 13.3182 11.1039 13.1287 10.5064C12.9101 9.8507 12.3564 9.41354 11.6715 9.36983H11.555C10.8264 9.36983 10.2289 9.77784 9.98118 10.4482C9.74803 11.0456 9.87918 11.7013 10.3018 12.1822C9.60231 12.4882 9.03401 13.1148 8.75714 13.8871C7.86825 12.8234 7.64967 11.4099 8.2034 10.1276C8.78628 8.75781 10.054 7.89806 11.5112 7.89806C11.6861 7.89806 11.861 7.91263 12.0358 7.9272C13.4056 8.11664 14.5276 9.04924 14.9794 10.3899C15.4019 11.6139 15.1397 12.94 14.3091 13.8871Z\"\n fill={fill}\n />\n <path\n d=\"M14.2213 6.73181C14.2213 6.81924 14.163 6.87753 14.0756 6.87753H13.551C13.551 6.87753 13.4781 6.86295 13.449 6.83381C13.4198 6.80467 13.4052 6.77552 13.4052 6.73181C13.4198 5.65348 12.9972 4.61887 12.1958 3.81742C11.4089 3.03053 10.3889 2.59337 9.29596 2.59337C9.2231 2.59337 9.12109 2.52051 9.12109 2.44765V1.92306C9.12109 1.83563 9.17938 1.77734 9.26681 1.77734C10.5929 1.77734 11.8606 2.31651 12.7932 3.24911C13.7258 4.21086 14.2358 5.4349 14.2213 6.73181Z\"\n fill={fill}\n />\n <path\n d=\"M6.88038 13.551V14.0901C6.88038 14.0901 6.82209 14.2213 6.73466 14.2213H6.67637C5.39404 14.2358 4.15542 13.7113 3.22282 12.7641C2.29022 11.8169 1.76562 10.5491 1.76562 9.26681C1.76562 9.17938 1.83848 9.12109 1.91134 9.12109H2.43593C2.43593 9.12109 2.52337 9.13567 2.55251 9.16481C2.56708 9.19395 2.58165 9.2231 2.58165 9.26681C2.58165 10.3451 3.00424 11.3797 3.79113 12.1812C4.57801 12.9681 5.61262 13.4198 6.70552 13.4198C6.79295 13.4198 6.88038 13.4781 6.88038 13.551Z\"\n fill={fill}\n />\n </svg>\n );\n};\n","import { SVGProps } from 'react';\n\ninterface RelationPointsIconProps extends SVGProps<SVGSVGElement> {\n fill?: string;\n}\n\nexport const RelationPointsIcon = ({ fill = '#80A0F5', ...props }: RelationPointsIconProps) => {\n return (\n <svg viewBox=\"0 0 70 70\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M4.90056 13.6504C5.95056 13.476 5.95056 14.0866 6.65056 14.6099C9.88806 17.0087 14.0443 17.314 17.5443 15.2205C18.0256 14.9152 19.4693 13.6504 19.6881 13.6068C20.8693 13.4324 23.0131 15.0461 23.7568 15.9184C25.1568 17.7065 25.3318 20.4978 25.0693 22.6785C24.9381 23.856 23.9756 24.8155 22.7943 24.9464C16.2756 24.5103 8.92556 25.557 2.53806 24.9464C1.44431 24.8592 0.350563 24.0741 0.175563 22.9402C-0.0869367 21.4573 0.0880633 18.4479 0.744313 17.0523C1.40056 15.6567 3.41306 13.8685 4.94431 13.6068L4.90056 13.6504Z\"\n fill={fill}\n />\n <path\n d=\"M49.9618 58.4401C50.7931 58.3093 51.4931 59.4432 52.2806 59.923C55.3868 61.8856 59.5868 61.8856 62.6931 59.923C63.4806 59.4432 64.1806 58.3093 65.0118 58.4401C66.8493 58.7018 68.9931 60.708 69.6056 62.409C70.0431 63.5865 70.1743 67.1629 69.7368 68.2532C69.4306 69.0383 68.5118 69.6925 67.6806 69.7797C61.1618 69.3436 53.8118 70.3903 47.4243 69.7797C46.3306 69.6925 45.2368 68.9074 45.0618 67.7735C44.8868 66.6395 44.9743 63.7174 45.2806 62.627C45.8493 60.7953 48.0368 58.7018 49.9618 58.4401Z\"\n fill={fill}\n />\n <path\n d=\"M32.1562 3.83814C38.325 3.35839 44.4937 4.53596 49.9187 7.50169C50.4875 7.80699 53.1125 9.68237 53.3312 9.68237C53.4187 9.68237 54.25 9.15901 54.6437 9.02817C58.5812 7.89421 62.125 11.4269 60.9437 15.3522C60.8125 15.7447 60.2875 16.617 60.2875 16.6606C60.2875 16.8786 62.1688 19.4955 62.4313 20.0624C65.8438 26.2992 67.5937 36.5048 65.0562 43.3085C64.4437 44.9659 62.825 44.9659 62.4313 43.3085C62.7375 41.8693 63.1312 40.43 63.35 38.9472C64.1812 32.6232 62.9562 25.9067 59.675 20.4113C59.4125 20.0188 58.5812 18.536 58.1875 18.4923C57.925 18.4923 57.575 18.754 57.225 18.7976C53.4187 19.1465 50.925 16.835 51.2312 12.9534C51.2312 12.43 51.7125 11.9503 51.4062 11.5578C51.1 11.1652 48.3 9.63876 47.6875 9.33347C41.2125 6.14967 33.8625 5.58269 26.95 7.5453C25.8562 7.8506 23.5812 9.02817 22.6625 8.50481C21.7875 7.98144 22.0062 6.76026 22.8812 6.23689C24.85 5.10294 29.8812 4.05621 32.2 3.88175L32.1562 3.83814Z\"\n fill={fill}\n />\n <path\n d=\"M5.3366 27.4741C8.0491 26.8636 6.60535 30.7888 6.4741 32.1844C5.90535 37.9851 7.3491 44.6579 10.4116 49.5863C10.5866 49.8916 11.3303 51.1128 11.5491 51.2436C11.9866 51.5489 12.3366 51.1128 12.8178 51.0692C16.6678 50.7203 19.1178 53.0318 18.8116 56.9134C18.8116 57.3495 18.3741 57.9165 18.5491 58.2218C18.7241 58.5707 21.8303 60.3153 22.4428 60.577C27.0803 62.8013 32.6366 63.848 37.7553 63.3682C39.1553 63.2374 42.1741 61.9726 42.6116 63.848C43.0491 65.7234 38.6741 65.9414 37.4491 66.0287C31.5866 66.3776 25.7241 65.2436 20.5178 62.5396C19.9053 62.1907 16.9303 60.1844 16.7116 60.1844C16.6241 60.1844 16.1866 60.5333 15.9678 60.6206C11.5053 62.3215 7.5241 58.3963 9.2741 53.9477C9.3616 53.7296 9.7116 53.2498 9.7116 53.2062C9.7116 52.9882 7.83035 50.3713 7.56785 49.8044C4.68035 44.5271 3.45535 38.552 3.8491 32.4897C3.89285 31.6611 4.33035 28.3464 4.76785 27.8231C4.8991 27.6486 5.11785 27.5178 5.3366 27.4741Z\"\n fill={fill}\n />\n <path\n d=\"M11.2893 0.0856923C22.3143 -1.39717 22.3143 15.2633 11.7268 14.2165C3.41434 13.3879 3.63309 1.13242 11.2893 0.0856923Z\"\n fill={fill}\n />\n <path\n d=\"M56.3517 44.9207C66.4142 43.6995 67.2892 58.1793 58.3204 59.0079C48.6517 59.9238 47.7767 45.9238 56.3517 44.9207Z\"\n fill={fill}\n />\n </svg>\n );\n};\n","import { styled } from 'styled-components';\nimport React from 'react';\nimport { SidebarContext } from './SidebarContext';\n\nexport interface SidebarProps {\n defaultCollapsed?: boolean;\n children: any;\n}\n\ninterface StyledProps {\n $collapsed: boolean;\n}\n\nexport const Sidebar = ({ defaultCollapsed, children }: SidebarProps) => {\n const [collapsed, setCollapsed] = React.useState(!!defaultCollapsed);\n\n return (\n <StyledContainer $collapsed={collapsed}>\n <SidebarContext.Provider\n value={{\n collapsed,\n setCollapsed,\n }}\n >\n {children}\n </SidebarContext.Provider>\n </StyledContainer>\n );\n};\n\nconst StyledContainer = styled.aside<StyledProps>(\n ({ theme, $collapsed }) => `\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n gap: 20px;\n position: sticky;\n z-index: 1000;\n top: 0;\n width: ${theme.sidebar.width};\n padding: 12px;\n height: 100%;\n border-right: 1px solid ${theme.sidebar.border};\n background: ${theme.sidebar.background};\n ${\n $collapsed\n ? `\n width: 65px;\n `\n : ''\n }\n\n &:before {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 25dvh;\n transform: translateY(-100%);\n background: ${theme.sidebar.background};\n border-right: 1px solid ${theme.sidebar.border};\n\n width: ${theme.sidebar.width};\n ${\n $collapsed\n ? `\n width: 65px;\n `\n : ''\n }\n }\n`\n);\n","import { createContext } from 'react';\n\ninterface SidebarContext {\n collapsed: boolean;\n setCollapsed: React.Dispatch<React.SetStateAction<boolean>>;\n}\n\nexport const SidebarContext = createContext<SidebarContext>({\n collapsed: false,\n setCollapsed: () => {},\n});\n","import { SVGProps, useContext } from 'react';\nimport styled from 'styled-components';\nimport { SidebarContext } from './SidebarContext';\n\ninterface SidebarItemBase {\n active?: boolean;\n icon?: React.ComponentType<SVGProps<SVGSVGElement>>;\n label?: string;\n}\n\ninterface SidebarItemAnchor {\n href: string;\n onClick?: (e: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => void;\n target?: '_blank' | '_self' | '_parent' | '_top';\n}\n\ntype StyledProps = {\n $active: SidebarItemBase['active'];\n $collapsed: boolean;\n};\n\ninterface SidebarItemButton {\n type?: 'button' | 'reset' | 'submit';\n onClick?: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;\n}\n\nexport type SidebarItemProps = SidebarItemBase & (SidebarItemAnchor | SidebarItemButton);\n\nexport const SidebarItem = ({ active, icon: Icon, label, ...props }: SidebarItemProps) => {\n const { collapsed } = useContext(SidebarContext);\n\n const isAnchor = 'href' in props;\n\n return (\n <StyledItem\n title={collapsed ? label : ''}\n as={isAnchor ? 'a' : 'button'}\n $collapsed={collapsed}\n $active={active}\n {...props}\n >\n {Icon && <Icon aria-label={label} width={16} height={16} />}\n <StyledText $collapsed={collapsed} $active={active}>\n {label}\n </StyledText>\n </StyledItem>\n );\n};\n\nconst StyledText = styled.span<StyledProps>(\n ({ $collapsed }) => `\n margin-top: 2px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n width: 100%;\n text-align: left;\n display: inline-block;\n font-weight: 500;\n font-size: 14px;\n line-height: 1.49;\n font-family: Inter;\n\n ${\n $collapsed &&\n `\n & {\n width: 0;\n }\n `\n }\n`\n);\n\nconst StyledItem = styled.a<StyledProps>(\n ({ $active, $collapsed, theme }) => `\n display: flex;\n align-items: center;\n gap: 12px;\n padding-inline: 12px;\n height: 40px;\n min-width: 40px;\n border: none;\n cursor: pointer;\n text-decoration: none;\n border-radius: 8px;\n color: ${theme.sidebar.text.default};\n background: ${theme.sidebar.item.default.background};\n transition: background 0.3s ease-in-out, color 0.3s ease-in-out;\n position: relative;\n ${\n $active\n ? `\n background: ${theme.sidebar.item.active.background};\n color: ${theme.sidebar.text.active};\n `\n : ''\n }\n ${$collapsed ? `gap: 0;` : ''}\n\n\n\n &:hover {\n background: ${theme.sidebar.item.hover.background};\n color: ${theme.sidebar.text.hover};\n }\n\n &:before {\n content: '';\n position: absolute;\n left: -12px;\n top: 0;\n height: 100%;\n width: 0px;\n border-top-right-radius: 5px;\n border-bottom-right-radius: 5px;\n background: rgba(0, 0, 0, 0);\n transition: background 0.4s ease-in-out, width 0.3s ease-in-out;\n ${\n $active\n ? `\n background: ${theme.sidebar.text.active};\n width: 5px;\n `\n : ''\n }\n }\n\n svg {\n flex-shrink: 0;\n fill: currentColor;\n }\n`\n);\n","import { useContext } from 'react';\nimport { SidebarContext } from './SidebarContext';\nimport { styled } from 'styled-components';\n\ntype StyledProps = {\n $collapsed: boolean;\n};\n\nexport const SidebarDelimeter = () => {\n const { collapsed } = useContext(SidebarContext);\n return <StyledDelimeter $collapsed={collapsed} />;\n};\n\nconst StyledDelimeter = styled.div<StyledProps>(\n ({ $collapsed, theme }) => `\n min-width: 32px;\n width: 0;\n\n border-bottom: 1px dashed ${theme.sidebar.delimeter.color};\n margin-block: 8px;\n margin-left: 4px;\n\n ${\n !$collapsed &&\n `\n & {\n width: 100%;\n margin-left: 0;\n }\n `\n }\n`\n);\n","import { CSSProperties, styled } from 'styled-components';\n\nexport interface SidebarSectionProps {\n grow?: number;\n shrink?: number;\n basis?: CSSProperties['flexBasis'];\n items: React.ReactElement[];\n}\n\nexport const SidebarSection = ({ grow, shrink, basis, items }: SidebarSectionProps) => {\n return (\n <StyledSection $grow={grow} $shrink={shrink} $basis={basis}>\n {items}\n </StyledSection>\n );\n};\n\ninterface StyledProps {\n $grow?: number;\n $shrink?: number;\n $basis?: CSSProperties['flexBasis'];\n}\n\nconst StyledSection = styled.div<StyledProps>(\n ({ $grow = 0, $shrink = 1, $basis = '100%' }) => `\n flex: ${$grow} ${$shrink} ${$basis};\n display: flex;\n flex-direction: column;\n gap: 1px;\n `\n);\n","import styled from 'styled-components';\nimport { CSSProperties, ElementType } from 'react';\nimport { ColorVariant, createComponent, FabricComponent, TypographyVariant } from '../../Theme';\nimport { resolveThemeColor } from '../../Theme/utils';\n\ntype TypographyProps = FabricComponent<{\n style?: CSSProperties;\n variant?: TypographyVariant;\n element?: ElementType;\n children: any;\n weight?: CSSProperties['fontWeight'];\n fontStyle?: CSSProperties['fontStyle'];\n color?: ColorVariant | string;\n className?: string;\n ellipsis?: boolean;\n}> &\n Omit<React.HTMLAttributes<HTMLDivElement>, 'children'>;\n\ntype StyledProps = {\n $variant: TypographyVariant;\n $weight?: CSSProperties['fontWeight'];\n $style?: CSSProperties['fontStyle'];\n $color?: ColorVariant | string;\n $ellipsis?: boolean;\n};\n\n// Create a styled component that can be dynamically rendered as different HTML elements\nconst StyledTypography = createComponent(\n styled('div')<StyledProps>(({ theme, $variant, $color, $weight = '400', $style = 'initial', $ellipsis }) => {\n // Resolve color from theme if it's a theme color path, or use the direct color value\n\n return `\n font-size: ${theme.typography.variants[$variant].fontSize};\n font-weight: ${$weight};\n font-style: ${$style};\n color: ${resolveThemeColor(theme, $color) || theme.colors.text.main};\n ${$ellipsis ? 'overflow: hidden; text-overflow: ellipsis; white-space: nowrap;' : ''}\n `;\n })\n);\n\nexport const Typography = ({\n variant = 'body',\n element,\n children,\n weight,\n fontStyle,\n color,\n className,\n style,\n ellipsis = false,\n ...props\n}: TypographyProps) => {\n // Determine which HTML element to render based on the variant if not explicitly specified\n const Element = element || (variant.startsWith('h') ? variant : 'p');\n\n return (\n <StyledTypography\n as={Element}\n $variant={variant}\n $weight={weight}\n $style={fontStyle}\n $color={color}\n $ellipsis={ellipsis}\n className={className}\n style={style}\n {...props}\n >\n {children}\n </StyledTypography>\n );\n};\n","import { ReactNode } from 'react';\nimport { styled } from 'styled-components';\n\nexport interface ListMenuProps {\n children: any;\n width?: number;\n}\n\ntype StyledListProps = {\n $width: number;\n};\nexport const ListMenu = ({ children, width = 220 }: ListMenuProps) => {\n return <StyledList $width={width}>{children}</StyledList>;\n};\n\nconst StyledList = styled.ul<StyledListProps>(\n ({ theme, $width }) => `\n margin: 0;\n padding: 20px;\n width: ${$width}px;\n list-style: none;\n height: 100%;\n overflow-y: auto;\n background-color: ${theme.colors.background};\n border-right: 1px solid ${theme.colors.stroke.light};\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n gap: 40px;\n `\n);\n","import { FC } from 'react';\nimport { styled } from 'styled-components';\n\nexport type ListMenuItemBase = {\n active?: boolean;\n label?: string;\n count?: number;\n};\n\nexport type ListMenuItemAnchorProps = {\n href: string;\n onClick?: (e: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => void;\n target?: '_blank' | '_self' | '_parent' | '_top';\n};\n\nexport type ListMenuItemButtonProps = {\n type?: 'button' | 'reset' | 'submit';\n onClick?: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;\n};\n\nexport type ListMenuItemProps = ListMenuItemBase & (ListMenuItemAnchorProps | ListMenuItemButtonProps);\n\ntype StyledProps = {\n $active: ListMenuItemProps['active'];\n};\n\nexport const ListMenuItem = ({ active, label, count, ...props }: ListMenuItemProps) => {\n const Element = 'href' in props ? 'a' : 'button';\n return (\n <StyledItem $active={active}>\n <StyledLink as={'href' in props ? 'a' : 'button'} $active={active} {...props}>\n {label}\n {typeof count === 'number' && <StyledCount $active={active}>{count}</StyledCount>}\n </StyledLink>\n </StyledItem>\n );\n};\nconst StyledItem = styled.li<StyledProps>(\n ({ theme, $active }) => `\n position: relative;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n width: 100%;\n &:not(:last-child) {\n margin-bottom: 4px;\n }\n\n ::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 2px;\n height: ${$active ? '100%' : 0};\n border-radius: 2px;\n transform: translateX(-25%);\n background-color: ${$active ? theme.colors.primary.main : 'transparent'};\n transition: background-color 0.3s ease-in-out, height 0.3s ease-in-out;\n }\n `\n);\n\nconst StyledLink = styled.a<StyledProps>(\n ({ theme, $active }) => `\n display: inline-block;\n \n padding: 8px 10px;\n border: none;\n outline: none;\n cursor: pointer;\n text-decoration: none;\n background-color: transparent;\n border-radius: 8px;\n \n width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n \n font-family: Inter;\n font-weight: 500;\n font-size: 14px;\n line-height: 1.5;\n text-align: left;\n color: ${$active ? theme.colors.primary.main : theme.colors.text.main};\n\n transition: background-color 0.3s ease-in-out, color 0.3s ease-in-out;\n\n &:hover {\n color: ${theme.colors.primary.main};\n }`\n);\n\nconst StyledCount = styled.span<StyledProps>(\n ({ theme, $active }) => `\n margin-left: 8px;\n padding: 2px 4px;\n border-radius: 4px;\n background-color: ${$active ? theme.colors.primary.lightest2 : theme.colors.stroke.lighter};\n color: inherit;\n line-height: 1.5;\n transition: background-color 0.3s ease-in-out, color 0.3s ease-in-out;\n `\n);\n","import { ReactNode } from 'react';\nimport { styled } from 'styled-components';\n\nexport interface ListMenuSectionProps {\n items: any;\n title?: string;\n}\nexport const ListMenuSection = ({ title, items }: ListMenuSectionProps) => {\n return (\n <li>\n {!!title && <StyledTitle>{title}</StyledTitle>}\n <StyledList>{items}</StyledList>\n </li>\n );\n};\n\nconst StyledTitle = styled.h2(\n ({ theme }) => `\n margin: 0 0 15px 0;\n width: 100%;\n padding: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n font-family: Inter;\n font-weight: 600;\n font-size: 14px;\n line-height: 1;\n letter-spacing: 0.03em;\n text-align: left;\n text-transform: uppercase;\n color: ${theme.colors.text.lighter};\n`\n);\n\nconst StyledList = styled.ul(\n ({ theme }) => `\n margin: 0;\n padding: 0;\n width: 180px;\n list-style: none;\n position: relative;\n &::before {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n width: 1px;\n height: 100%;\n background-color: ${theme.colors.stroke.light};\n }\n `\n);\n","import { styled } from 'styled-components';\n\ninterface HeaderProps {\n children?: any;\n}\n\nexport const Header = ({ children }: HeaderProps) => {\n return <StyledContainer>{children}</StyledContainer>;\n};\n\nconst StyledContainer = styled.header(\n ({ theme }) => `\n display: flex;\n position: sticky;\n top: 0;\n z-index: 1000;\n align-items: center;\n justify-content: space-between;\n padding-left: 12px;\n padding-right: 20px;\n height: 56px;\n background-color: ${theme.colors.background};\n border-bottom: 1px solid ${theme.colors.stroke.light};\n\n &:before {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 25dvh;\n transform: translateY(-100%);\n background: ${theme.colors.background};\n }\n`\n);\n","import { styled } from 'styled-components';\n\nexport const HeaderDelimeter = () => {\n return <StyledDelimeter />;\n};\n\nconst StyledDelimeter = styled.div(\n ({ theme }) => `\n height: 32px;\n border-right: 1px dashed ${theme.colors.stroke.main};\n`\n);\n","import { CSSProperties } from 'react';\nimport { styled } from 'styled-components';\n\ninterface HeaderSectionProps {\n grow?: CSSProperties['flexGrow'];\n shrink?: CSSProperties['flexShrink'];\n basis?: CSSProperties['flexBasis'];\n justify?: CSSProperties['justifyContent'];\n children?: React.ReactNode;\n}\n\ninterface StyledProps {\n $grow?: CSSProperties['flexGrow'];\n $shrink?: CSSProperties['flexShrink'];\n $basis?: CSSProperties['flexBasis'];\n $justify?: CSSProperties['justifyContent'];\n}\n\nexport const HeaderSection = ({ grow, shrink, basis, justify, children }: HeaderSectionProps) => {\n return (\n <StyledSection $grow={grow} $shrink={shrink} $basis={basis} $justify={justify}>\n {children}\n </StyledSection>\n );\n};\n\nconst StyledSection = styled.section<StyledProps>(\n ({ $grow = 1, $shrink = 1, $basis = '100%', $justify = 'space-between' }) => `\n display: flex;\n align-items: center;\n justify-content: ${$justify};\n gap: 20px;\n flex-grow: ${$grow};\n flex-shrink: ${$shrink};\n flex-basis: ${$basis};\n`\n);\n","import { styled } from 'styled-components';\n\nexport const Row = styled.tr``;\n","import { styled } from 'styled-components';\n\nexport const HeadCell = styled.th(\n ({ theme }) => `\n padding-top: 15px;\n padding-bottom: 10px;\n padding-right: 15px;\n :not(:first-of-type) {\n padding-left: 15px;\n }\n\n border-bottom: 1px solid ${theme.colors.stroke.light};\n\n font-family: ${theme.typography.fontFamily};\n font-weight: 500;\n font-size: 14px;\n text-wrap: nowrap;\n text-align: left;\n line-height: 1.5;\n color: ${theme.colors.text.main};\n`\n);\n\nexport const Cell = styled.td(\n ({ theme }) => `\n padding-block: 15px;\n padding-right: 15px;\n :not(:first-of-type) {\n padding-left: 15px;\n }\n border-bottom: 1px solid ${theme.colors.stroke.light};\n\n vertical-align: middle;\n font-family: ${theme.typography.fontFamily};\n font-weight: 500;\n font-size: 14px;\n text-wrap: nowrap;\n text-align: left;\n line-height: 1.5;\n color: ${theme.colors.text.main};\n`\n);\n","import { ReactNode, useMemo, CSSProperties } from 'react';\nimport { styled } from 'styled-components';\nimport { Row } from './Row';\nimport { Cell, HeadCell } from './Cell';\n\nexport type ColumnTable<ID = string> = {\n id: ID;\n title: string;\n width?: CSSProperties['width'];\n className?: string;\n};\n\nexport type RenderCellProps<T = string> = {\n rowIndex: number;\n cellIndex: number;\n columnId: T;\n};\n\nexport type RenderHeaderCellProps<T = string> = {\n title: string;\n columnId: T;\n};\n\ninterface TableProps {\n columns: ColumnTable[];\n rowCount: number;\n renderCell: (props: RenderCellProps<any>) => any;\n renderHeaderCell: (props: RenderHeaderCellProps<any>) => any;\n rowIds?: string[];\n}\n\nexport const Table = ({ columns, rowCount, renderCell, renderHeaderCell, rowIds }: TableProps) => {\n const cellCount = columns.length;\n\n const data = useMemo(() => {\n const items: ReactNode[][] = [];\n for (let i = 0; i < rowCount; i++) {\n items[i] = [];\n for (let j = 0; j < cellCount; j++) {\n items[i][j] = renderCell({\n rowIndex: i,\n cellIndex: j,\n columnId: columns[j].id,\n });\n }\n }\n return items;\n }, [rowCount, cellCount, columns, renderCell]);\n\n return (\n <StyledTable>\n <StyledHead>\n <Row>\n {columns.map(({ id, title, width }) => (\n <HeadCell\n key={id}\n style={{\n width,\n }}\n >\n {renderHeaderCell({ title, columnId: id })}\n </HeadCell>\n ))}\n </Row>\n </StyledHead>\n <tbody>\n {data.map((cells, rowIndex) => (\n <Row key={`row-${rowIndex}`} id={rowIds ? rowIds[rowIndex] : `row-${rowIndex}`}>\n {cells.map((cell, cellIndex) => (\n <Cell className={columns[cellIndex]?.className} key={`cell-${cellIndex}`}>\n {cell}\n </Cell>\n ))}\n </Row>\n ))}\n </tbody>\n </StyledTable>\n );\n};\n\nconst StyledTable = styled.table`\n width: 100%;\n border-spacing: 0;\n table-layout: fixed;\n`;\n\nconst StyledHead = styled.thead(\n ({ theme }) => `\n background-color: ${theme.colors.background};\n position: sticky;\n top: 0;\n z-index: 1;\n`\n);\n","import { FC, useCallback, useMemo } from 'react';\nimport { styled } from 'styled-components';\nimport { ChevronRightIcon } from '../IconComponents';\nimport { ChevronLeftIcon } from '../IconComponents';\n\nexport interface PaginationProps {\n total_items: number;\n limit: number;\n offset: number;\n onChangePage: (offset: number) => void;\n}\n\nconst PAGINATION_LIMIT = 9;\nconst DIFF = 2;\nconst VISIBLE_GROUPE = 5;\nconst STEP = 1;\nconst ELLIPSIS = '...';\n\nexport const Pagination = ({ total_items, limit, offset, onChangePage }: PaginationProps) => {\n const currentPage = useMemo(() => (offset ? offset / limit + 1 : 1), [limit, offset]);\n const pages = Math.ceil(total_items / limit);\n const paginationItems: (number | string)[] = useMemo(() => {\n const items = [];\n if (pages <= PAGINATION_LIMIT) {\n for (let i = 1; i <= pages; i += 1) {\n items.push(i);\n }\n } else {\n const firstPage = 1;\n const lastPage = pages;\n items.push(firstPage);\n if (currentPage <= VISIBLE_GROUPE) {\n for (let i = 2; i <= VISIBLE_GROUPE + 2; i += 1) {\n items.push(i);\n }\n items.push(ELLIPSIS, lastPage);\n } else if (currentPage > VISIBLE_GROUPE && currentPage < lastPage - VISIBLE_GROUPE) {\n items.push(ELLIPSIS);\n for (let i = currentPage - DIFF; i <= currentPage + DIFF; i += 1) {\n items.push(i);\n }\n items.push(ELLIPSIS, lastPage);\n } else {\n items.push(ELLIPSIS);\n for (let i = lastPage - VISIBLE_GROUPE - 1; i <= lastPage; i += 1) {\n items.push(i);\n }\n }\n }\n return items;\n }, [currentPage, pages]);\n\n const isDisabled = useCallback(\n (page: number | string) => typeof page === 'string' || page === currentPage,\n [currentPage]\n );\n const onPaginationClick = useCallback(\n (page: number | string) => {\n if (isDisabled(page)) return;\n onChangePage(page as number);\n },\n [onChangePage, isDisabled]\n );\n return (\n <FlexGroup>\n <Button\n aria-label=\"previous page\"\n onClick={() => onPaginationClick(currentPage - STEP)}\n disabled={currentPage === 1}\n >\n <ChevronLeftIcon />\n </Button>\n <StyledList>\n {paginationItems.map((page, idx) => (\n <li key={`pagination-${page}-${idx}`}>\n <Button $current={page === currentPage} onClick={() => onPaginationClick(page)}>\n {page}\n </Button>\n </li>\n ))}\n </StyledList>\n <Button\n aria-label=\"next page\"\n onClick={() => onPaginationClick(currentPage + STEP)}\n disabled={!total_items || currentPage === pages}\n >\n <ChevronRightIcon />\n </Button>\n </FlexGroup>\n );\n};\n\ntype StyledButtonProps = {\n $current?: boolean;\n};\n\nconst StyledList = styled.div`\n list-style: none;\n padding: 0;\n display: flex;\n gap: 6px;\n`;\nconst Button = styled.button<StyledButtonProps>(\n ({ theme, $current }) => `\n font-family: ${theme.typography.fontFamily};\n background-color: ${$current ? theme.colors.primary.main : theme.colors.background};\n color: ${$current ? theme.colors.background : theme.colors.text.main};\n border: none;\n cursor: pointer;\n padding-block: 4px;\n padding-inline: 8px;\n border-radius: 3px;\n font-size: 14px;\n font-weight: 400;\n display: flex;\n align-items: center;\n justify-content: center;\n height: 26px;\n svg {\n width: 8px;\n height: 8px;\n}\n &:hover {\n background-color: ${theme.colors.primary.light};\n }\n transition: background-color 0.3s ease-in-out;\n`\n);\nconst FlexGroup = styled.div`\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 6px;\n`;\n","import { ButtonSize, getButtonSizeStyles } from '../../Theme';\nimport { useLayoutEffect, useRef, useState } from 'react';\nimport { Popover, PopoverAlign, PopoverPosition } from 'react-tiny-popover';\nimport { styled, useTheme } from 'styled-components';\nimport { ChevronDownIcon, ChevronUpIcon } from '../IconComponents';\n\ninterface ContextMenuProps {\n isOpen: boolean;\n onClick: () => void;\n onClickOutside: (e: MouseEvent) => void;\n size?: ButtonSize;\n disabled?: boolean;\n fullWidth?: boolean;\n className?: string;\n children?: any;\n anchor?: any;\n positions?: PopoverPosition[] | PopoverPosition;\n align?: PopoverAlign;\n hasBorder?: boolean;\n maxHeight?: number;\n matchAnchorWidth?: boolean;\n}\n\nexport const ContextMenu = ({\n isOpen,\n onClickOutside,\n onClick,\n anchor,\n size = 'medium',\n disabled,\n fullWidth,\n className,\n positions = ['bottom'],\n align = 'start',\n children,\n hasBorder = true,\n maxHeight = 500,\n matchAnchorWidth = false,\n}: ContextMenuProps) => {\n const [anchorWidth, setAnchorWidth] = useState<number>(0);\n const buttonRef = useRef<HTMLButtonElement | null>(null);\n\n const theme = useTheme();\n useLayoutEffect(() => {\n if (buttonRef.current) {\n setAnchorWidth(buttonRef.current.offsetWidth);\n }\n }, [matchAnchorWidth]);\n\n return (\n <Popover\n padding={theme.contextMenu.padding}\n isOpen={isOpen}\n positions={positions}\n align={align}\n onClickOutside={onClickOutside}\n content={children}\n ref={buttonRef}\n containerStyle={{\n backgroundColor: theme.colors.background,\n border: `1px solid ${theme.colors.stroke.light}`,\n boxShadow: '0px 0px 10px 0px rgba(0, 0, 0, 0.25)',\n borderRadius: '5px',\n overflow: 'auto',\n maxHeight: `${maxHeight}px`,\n zIndex: `${9999}`,\n width: anchorWidth && matchAnchorWidth ? `${anchorWidth}px` : undefined,\n }}\n >\n <StyledButton\n onClick={onClick}\n $disabled={disabled}\n $fullWidth={fullWidth}\n $size={size}\n className={className}\n type=\"button\"\n disabled={disabled}\n $hasBorder={hasBorder}\n >\n <StyledAnchor>{anchor}</StyledAnchor>\n {isOpen ? (\n <ChevronUpIcon width={theme.contextMenu.icon.size} height={theme.contextMenu.icon.size} />\n ) : (\n <ChevronDownIcon width={theme.contextMenu.icon.size} height={theme.contextMenu.icon.size} />\n )}\n </StyledButton>\n </Popover>\n );\n};\nconst StyledAnchor = styled.div`\n flex-grow: 1;\n text-align: start;\n`;\n// Створюємо стилізований компонент, що використовує уніфіковану палітру\nconst StyledButton = styled.button<{\n $size: ButtonSize;\n $disabled?: boolean;\n $fullWidth?: boolean;\n $hasBorder: boolean;\n}>`\n ${({ $size, $disabled, $fullWidth, theme, $hasBorder }) => {\n const sizes = getButtonSizeStyles(theme, $size);\n return `\n background: ${theme.contextMenu.button.default.background};\n color: ${theme.contextMenu.button.default.text};\n border-color: ${$hasBorder ? theme.contextMenu.button.default.border : 'transparent'};\n box-shadow: ${theme.contextMenu.button.default.boxShadow};\n font-size: ${sizes.fontSize};\n gap: ${sizes.gap};\n padding-block: ${sizes.paddingBlock};\n padding-inline: ${sizes.paddingInline};\n border-radius: ${sizes.borderRadius};\n border-width: ${sizes.borderWidth};\n border-style: solid;\n width: ${$fullWidth ? '100%' : 'auto'};\n cursor: ${$disabled ? 'not-allowed' : 'pointer'};\n font-weight: 500;\n display: inline-flex;\n align-items: center;\n justify-content: ${$fullWidth ? 'space-between' : 'center'};\n text-decoration: none;\n transition: all 0.2s ease;\n outline: none;\n flex-direction: row;\n\n &:hover {\n background: ${theme.contextMenu.button.hover.background};\n color: ${theme.contextMenu.button.hover.text};\n border-color: ${$hasBorder ? theme.contextMenu.button.hover.border : 'transparent'};\n box-shadow: ${theme.contextMenu.button.hover.boxShadow};\n }\n\n &:active {\n background: ${theme.contextMenu.button.active.background};\n color: ${theme.contextMenu.button.active.text};\n border-color: ${$hasBorder ? theme.contextMenu.button.active.border : 'transparent'};\n box-shadow: ${theme.contextMenu.button.active.boxShadow};\n }\n\n &:disabled {\n background: ${theme.contextMenu.button.disabled.background};\n color: ${theme.contextMenu.button.disabled.text};\n border-color: ${$hasBorder ? theme.contextMenu.button.disabled.border : 'transparent'};\n box-shadow: ${theme.contextMenu.button.disabled.boxShadow};\n }\n\n `;\n }}\n`;\n","import { styled } from 'styled-components';\n\ninterface StyledProps {}\n\nexport const ContextMenuDelimiter = styled.div<StyledProps>(\n ({ theme }) => `\n margin-inline: ${theme.contextMenu.delimeter.marginInline};\n margin-block: ${theme.contextMenu.delimeter.marginBlock};\n border-top-width: ${theme.contextMenu.delimeter.thickness};\n border-top-style: ${theme.contextMenu.delimeter.style};\n border-top-color: ${theme.contextMenu.delimeter.color};\n `\n);\n","import { useState } from 'react';\n\nexport const useContextMenuControl = () => {\n const [isOpen, setIsOpen] = useState(false);\n\n const toggleMenu = () => {\n setIsOpen((prev) => !prev);\n };\n const closeMenu = () => {\n setIsOpen(false);\n };\n const openMenu = () => {\n setIsOpen(true);\n };\n return {\n isOpen,\n toggleMenu,\n closeMenu,\n openMenu,\n };\n};\n","import { useCallback, useMemo, useState } from 'react';\nimport { PopoverAlign, PopoverPosition } from 'react-tiny-popover';\nimport { ContextMenu } from '../ContextMenu';\nimport { ButtonSize, getButtonSizeStyles } from '../../Theme';\nimport { styled } from 'styled-components';\n\ntype SelectBaseProps<T extends string | number> = {\n selected?: T;\n options: { value: T; inputDisplay?: string }[];\n onSelect: (id: T) => void;\n placeholder: string;\n disabled?: boolean;\n positions?: PopoverPosition[] | PopoverPosition;\n align?: PopoverAlign;\n size?: ButtonSize;\n hasBorder?: boolean;\n maxHeight?: number;\n matchAnchorWidth?: boolean;\n};\n\ntype SelectDefaultProps = {\n isSearchable?: false;\n};\n\ntype SelectSearchableProps = {\n isSearchable: true;\n noOptionsMessage: string;\n inputPlaceholder: string;\n};\n\ntype SelectProps<T extends string | number> = SelectBaseProps<T> & (SelectSearchableProps | SelectDefaultProps);\n\nexport const Select = <T extends string | number>({\n options,\n selected,\n onSelect,\n placeholder,\n disabled = false,\n positions = ['bottom'],\n align = 'start',\n size = 'small',\n hasBorder = true,\n maxHeight,\n matchAnchorWidth = true,\n isSearchable = false,\n ...props\n}: SelectProps<T>) => {\n const [isOpen, setIsOpen] = useState<boolean>(false);\n const [searchValue, setSearchValue] = useState<string>('');\n\n const visibleOptions = useMemo(() => {\n if (!isSearchable) return options;\n\n const normalizedValue = searchValue?.trim().toLocaleLowerCase() || '';\n return options.filter(({ value, inputDisplay }) =>\n String(inputDisplay || value)\n .toLocaleLowerCase()\n .includes(normalizedValue)\n );\n }, [options, searchValue, isSearchable]);\n\n const handleToggle = useCallback(() => {\n if (!disabled) setIsOpen((prev) => !prev);\n }, []);\n\n const noOptionsMessage = 'noOptionsMessage' in props ? props.noOptionsMessage : '';\n const inputPlaceholder = 'inputPlaceholder' in props ? props.inputPlaceholder : '';\n\n return (\n <ContextMenu\n isOpen={isOpen}\n onClickOutside={() => setIsOpen(false)}\n onClick={handleToggle}\n disabled={disabled}\n anchor={\n isSearchable && isOpen ? (\n <StyledSearchInput\n type=\"text\"\n value={searchValue}\n onChange={(e) => setSearchValue(e.target.value)}\n placeholder={inputPlaceholder}\n autoFocus\n onClick={(e) => e.stopPropagation()}\n $size={size}\n />\n ) : !selected ? (\n placeholder\n ) : (\n options.find((option) => option.value === selected)?.inputDisplay || selected\n )\n }\n fullWidth\n positions={positions}\n align={align}\n size={size}\n hasBorder={hasBorder}\n maxHeight={maxHeight}\n matchAnchorWidth={matchAnchorWidth}\n >\n <StyledWrapper>\n {visibleOptions.map((item) => (\n <StyledItem\n onClick={() => {\n onSelect(item.value);\n if (isSearchable) setSearchValue('');\n setIsOpen(false);\n }}\n type=\"button\"\n $selected={item.value === selected}\n key={item.value}\n disabled={disabled}\n $size={size}\n >\n {item.inputDisplay || item.value}\n </StyledItem>\n ))}\n {!visibleOptions.length && <NoMatchMessage $size={size}>{noOptionsMessage}</NoMatchMessage>}\n </StyledWrapper>\n </ContextMenu>\n );\n};\n\nconst StyledSearchInput = styled.input<{ $size: ButtonSize }>(\n ({ theme, $size }) => `\n outline: none;\n border: none;\n padding: 0;\n background: transparent;\n width: 100%;\n font-size: ${theme.button.sizes[$size].fontSize};\n color: ${theme.colors.text.main};\n`\n);\n\nconst NoMatchMessage = styled.p<{ $size: ButtonSize }>(\n ({ theme, $size }) => `\n padding-block: ${theme.select.padding};\n padding-inline: ${theme.button.sizes[$size].paddingInline};\n font-size: ${theme.button.sizes[$size].fontSize};\n color: ${theme.colors.text.main};\n white-space: pre-line;\n word-break: break-word;\n`\n);\nconst StyledItem = styled.button<{ $size: ButtonSize; $selected: boolean }>`\n ${({ theme, $size, $selected }) => {\n const sizes = getButtonSizeStyles(theme, $size);\n return `\n background: ${theme.select.item.default.background};\n color: ${theme.select.item.default.text};\n font-size: ${sizes.fontSize};\n gap: ${sizes.gap};\n padding-block: ${theme.select.padding};\n padding-inline: ${sizes.paddingInline};\n border-radius: ${sizes.borderRadius};\n border-width: ${sizes.borderWidth};\n border: none;\n width: 100%;\n cursor: pointer;\n font-weight: 400;\n display: inline-flex;\n align-items: center;\n justify-content: flex-start;\n text-decoration: none;\n transition: all 0.2s ease;\n outline: none;\n flex-direction: row;\n\n &:hover {\n background-color: ${theme.select.item.hover.background};\n color: ${theme.select.item.hover.text};\n }\n\n ${\n $selected &&\n `background: ${theme.select.item.active.background};\n color: ${theme.select.item.active.text};`\n }\n\n &:disabled {\n background: ${theme.select.item.disabled.background};\n color: ${theme.select.item.disabled.text};\n cursor: not-allowed;\n }\n `;\n }}\n`;\n\nconst StyledWrapper = styled.div(\n ({ theme }) => `\n padding-block: ${theme.select.paddingBlock};\n padding-inline: ${theme.select.paddingInline};\n ${StyledItem}:not(:last-of-type) {\n margin-bottom: ${theme.select.margin};\n }\n`\n);\n","import { ButtonColor, ButtonSize, getButtonSizeStyles } from '../../Theme';\nimport { useRef } from 'react';\nimport { Popover, PopoverAlign, PopoverPosition } from 'react-tiny-popover';\nimport { styled, useTheme } from 'styled-components';\nimport { BallsMenu } from '../IconComponents';\nimport { useContextMenuControl } from '../ContextMenu';\nimport { Button } from '../Button';\n\nexport type Action = {\n label: string;\n onClick: () => void;\n color: ButtonColor;\n};\n\ninterface RowActionsMenuProps {\n items: Action[];\n size?: ButtonSize;\n disabled?: boolean;\n className?: string;\n positions?: PopoverPosition[] | PopoverPosition;\n align?: PopoverAlign;\n}\n\nexport const RowActionsMenu = ({\n size = 'small',\n disabled,\n className,\n positions = ['bottom'],\n align = 'end',\n items,\n}: RowActionsMenuProps) => {\n const buttonRef = useRef<HTMLButtonElement | null>(null);\n const { isOpen, closeMenu, toggleMenu } = useContextMenuControl();\n\n const theme = useTheme();\n\n return (\n <Popover\n padding={theme.contextMenu.padding}\n isOpen={isOpen}\n positions={positions}\n align={align}\n onClickOutside={closeMenu}\n content={\n <ContentWrapper>\n {items.map(({ label, onClick, color }, idx) => (\n <Button\n variant=\"empty\"\n key={`row-action-${idx}`}\n color={color}\n fullWidth\n size={size}\n py={10}\n px={5}\n onClick={() => {\n onClick();\n closeMenu();\n }}\n >\n {label}\n </Button>\n ))}\n </ContentWrapper>\n }\n containerStyle={{\n backgroundColor: theme.colors.background,\n border: `1px solid ${theme.colors.stroke.light}`,\n boxShadow: '0px 0px 10px 0px rgba(0, 0, 0, 0.25)',\n borderRadius: '5px',\n zIndex: `${9999}`,\n }}\n >\n <StyledButton\n ref={buttonRef}\n onClick={toggleMenu}\n $disabled={disabled}\n $size={size}\n className={className}\n type=\"button\"\n disabled={disabled}\n >\n <BallsMenu width={theme.rowActionsMenu.icon.size} height={theme.rowActionsMenu.icon.size} />\n </StyledButton>\n </Popover>\n );\n};\n\nconst StyledButton = styled.button<{\n $size: ButtonSize;\n $disabled?: boolean;\n}>`\n ${({ $size, $disabled, theme }) => {\n const sizes = getButtonSizeStyles(theme, $size);\n return `\n background: ${theme.rowActionsMenu.button.default.background};\n color: ${theme.rowActionsMenu.button.default.text};\n border: none;\n font-size: ${sizes.fontSize};\n gap: ${sizes.gap};\n padding: 4px;\n border-radius: ${sizes.borderRadius};\n width: auto;\n cursor: ${$disabled ? 'not-allowed' : 'pointer'};\n font-weight: 500;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n text-decoration: none;\n transition: all 0.2s ease;\n outline: none;\n\n &:hover {\n background: ${theme.rowActionsMenu.button.hover.background};\n color: ${theme.rowActionsMenu.button.hover.text};\n }\n\n &:active {\n background: ${theme.rowActionsMenu.button.active.background};\n color: ${theme.rowActionsMenu.button.active.text};\n }\n\n &:disabled {\n background: ${theme.rowActionsMenu.button.disabled.background};\n color: ${theme.rowActionsMenu.button.disabled.text};\n }\n\n `;\n }}\n`;\nconst ContentWrapper = styled.div(\n ({ theme }) => `\n padding: 5px 10px;\n display: flex;\n flex-direction: column;\n button {\n min-width: 110px;\n justify-content: flex-start;\n font-weight: 400;\n }\n button:not(:last-of-type) {\n position: relative;\n ::after {\n position: absolute;\n content: '';\n bottom: 0;\n left: 5px;\n right: 5px;\n height: 1px;\n background-color: ${theme.rowActionsMenu.delimiterColor};\n }\n }\n`\n);\n","import { InputSize, InputVariant, remToPx } from '../../Theme';\nimport { forwardRef, InputHTMLAttributes, Ref, TextareaHTMLAttributes, useEffect, useRef, useState } from 'react';\nimport { styled, useTheme } from 'styled-components';\nimport { InfoCircleFilledIcon } from '../IconComponents';\n\ntype BaseInputProps = {\n error?: boolean;\n append?: any;\n prepend?: any;\n size?: InputSize;\n variant?: InputVariant;\n};\n\nexport type InputElementProps = BaseInputProps &\n InputHTMLAttributes<HTMLInputElement> & {\n multiline?: false;\n };\nexport type TextAreaElementProps = BaseInputProps &\n TextareaHTMLAttributes<HTMLTextAreaElement> & {\n multiline: true;\n autoResize?: boolean;\n };\nexport type InputProps = InputElementProps | TextAreaElementProps;\n\ntype TextAreaInputProps = TextareaHTMLAttributes<HTMLTextAreaElement> & {\n size?: InputSize;\n autoResize?: boolean;\n};\n\ntype InputRefElement<T> = T extends true ? HTMLTextAreaElement : HTMLInputElement | null;\n\nexport const Input: any = forwardRef<InputRefElement<InputProps['multiline']>, InputProps>(function Input(\n { error, append, prepend, size = 'small', variant = 'outlined', multiline, disabled, className, ...props },\n ref\n) {\n return (\n <Group\n $align={multiline ? 'flex-start' : 'center'}\n className={className}\n $error={error}\n $size={size}\n $variant={variant}\n $disabled={!!disabled}\n $multiline={multiline}\n >\n {!!prepend && prepend}\n <InputGroup $size={size} $variant={variant}>\n {multiline ? (\n <TextAreaInput\n size={size}\n disabled={disabled}\n {...(props as TextAreaElementProps)}\n ref={ref as Ref<InputRefElement<true>>}\n />\n ) : (\n <StyledInput disabled={disabled} {...(props as InputElementProps)} ref={ref as Ref<InputRefElement<false>>} />\n )}\n {!!error && (\n <IconWrapper $variant={variant}>\n <InfoCircleFilledIcon />\n </IconWrapper>\n )}\n </InputGroup>\n {!!append && append}\n </Group>\n );\n});\n\nconst TextAreaInput = forwardRef<HTMLTextAreaElement, TextAreaInputProps>(function Input(\n { size = 'small', disabled, className, rows = '1', autoResize = false, ...props },\n ref\n) {\n const [areaSize, setAreaSize] = useState(Number(rows));\n const rowsRef = useRef(Number(rows));\n const divRef = useRef<HTMLDivElement>(null);\n const theme = useTheme();\n const rowHeight = useRef(remToPx(theme.input.sizes[size].lineHeight, theme.baseSize) || theme.baseSize);\n\n useEffect(() => {\n if (divRef.current && autoResize) {\n const height = divRef.current.getBoundingClientRect().height;\n const areaSize = Math.round(height / rowHeight.current);\n if (rowsRef.current !== areaSize) {\n rowsRef.current = areaSize;\n setAreaSize(areaSize);\n }\n }\n }, [props.value]);\n\n return (\n <div style={{ position: 'relative', width: '100%' }}>\n <StyledTextarea disabled={disabled} $autoResize={autoResize} {...props} rows={areaSize} ref={ref} />\n <SizeContainer\n ref={divRef}\n $size={size}\n style={{\n minHeight: rowHeight.current * Number(rows),\n }}\n >\n {(props.value || '') + '\\u200B'}\n </SizeContainer>\n </div>\n );\n});\n\ntype StyledInputProps = { $size: InputSize; $variant: InputVariant };\ntype StyledGroupProps = StyledInputProps & {\n $align: 'flex-start' | 'center';\n $disabled: boolean;\n $error?: boolean;\n $multiline?: boolean;\n};\n\nconst StyledTextarea = styled.textarea<{ $autoResize: boolean }>(\n ({ $autoResize }) => `\n resize: none;\n margin: 0;\n display: block;\n ${$autoResize ? 'overflow: hidden;' : ''}\n`\n);\n\nconst StyledInput = styled.input``;\n\nconst InputGroup = styled.div<StyledInputProps>(\n ({ theme, $size, $variant }) => `\n display: inline-flex;\n align-items: center;\n width: 100%;\n color: currentColor;\n\n svg {\n width: ${theme.input.sizes[$size].iconSize};\n height: ${theme.input.sizes[$size].iconSize};\n }\n\n & ${StyledInput}, & ${StyledTextarea}{\n font-size: ${theme.input.sizes[$size].fontSize};\n color: inherit;\n background: transparent;\n padding-block: ${theme.input.sizes[$size].paddingBlock};\n padding-inline: ${theme.input.sizes[$size].paddingInline};\n position: relative;\n width: 100%;\n outline: none;\n border: none;\n\n &::placeholder {\n color: ${theme.input[$variant].default.placeholder};\n font-size: ${theme.input.sizes[$size].fontSize};\n }\n\n &:disabled {\n cursor: not-allowed;\n color: inherit;\n }\n\n &:focus, &:focus-visible, &:focus:focus-visible {\n outline: none;\n }\n }\n`\n);\n\nconst SizeContainer = styled.div<{ $size: InputSize }>(\n ({ theme, $size }) => `\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n height: auto;\n opacity: 0;\n z-index: -1;\n pointer-events: none;\n padding-inline: ${theme.input.sizes[$size].paddingInline};\n font-size: ${theme.input.sizes[$size].fontSize};\n line-height: ${theme.input.sizes[$size].lineHeight};\n word-break: break-word;\n white-space: pre-wrap;\n`\n);\n\nconst IconWrapper = styled.span<{ $variant: InputVariant }>(\n ({ theme, $variant }) => `\n display: inline-flex;\n flex: 0 0 auto;\n align-items: center;\n color: ${theme.input[$variant].error.icon};\n margin-right: 10px;\n\n`\n);\n\nconst Group = styled.div<StyledGroupProps>(\n ({ theme, $align = 'center', $disabled, $error, $size, $variant, $multiline }) => `\n display: inline-flex;\n align-items: ${$align};\n width: 100%;\n border: 1px solid;\n border-radius: ${theme.input.sizes[$size].borderRadius};\n height: ${$multiline ? 'auto' : theme.input.sizes[$size].height};\n overflow: hidden;\n transition: all 0.2s ease;\n\n ${\n $error\n ? `\n border-color: ${theme.input[$variant].error.border};\n color: ${theme.input[$variant].error.text};\n background: ${theme.input[$variant].error.background};\n `\n : `\n border-color: ${theme.input[$variant].default.border};\n color: ${theme.input[$variant].default.text};\n background: ${theme.input[$variant].default.background};\n `\n }\n\n ${\n !$disabled &&\n !$error &&\n `\n &:hover {\n border-color: ${theme.input[$variant].focus.border};\n }\n\n &:focus-within {\n border-color: ${theme.input[$variant].focus.border};\n color: ${theme.input[$variant].focus.text};\n background: ${theme.input[$variant].focus.background};\n }\n `\n }\n\n ${\n $disabled &&\n `\n border-color: ${theme.input[$variant].disabled.border};\n color: ${theme.input[$variant].disabled.text};\n background: ${theme.input[$variant].disabled.background};\n cursor: not-allowed;\n `\n }\n`\n);\n","import { CSSProperties, forwardRef } from 'react';\nimport { createComponent, FabricComponent } from '../../Theme';\nimport styled from 'styled-components';\n\nexport type FlexDirection = 'row' | 'column' | 'row-reverse' | 'column-reverse';\nexport type FlexWrap = 'nowrap' | 'wrap' | 'wrap-reverse';\nexport type FlexJustify = 'flex-start' | 'flex-end' | 'center' | 'space-between' | 'space-around' | 'space-evenly';\nexport type FlexAlign = 'flex-start' | 'flex-end' | 'center' | 'stretch' | 'baseline';\nexport type FlexGap = string | number;\n\nexport interface FlexContainerProps extends FabricComponent<Omit<React.HTMLAttributes<HTMLDivElement>, 'children'>> {\n children: any;\n direction?: FlexDirection;\n wrap?: FlexWrap;\n justify?: FlexJustify;\n align?: FlexAlign;\n alignContent?: FlexAlign;\n gap?: FlexGap;\n rowGap?: FlexGap;\n columnGap?: FlexGap;\n className?: string;\n style?: CSSProperties;\n as?: any; // TODO: fix type to styled component or intrinsic element\n}\n\nexport const FlexContainer: any = forwardRef<HTMLElement, FlexContainerProps>(function FlexContainer(\n {\n children,\n direction = 'row',\n wrap = 'nowrap',\n justify = 'flex-start',\n align = 'stretch',\n alignContent,\n gap,\n rowGap,\n columnGap,\n className,\n style,\n as = 'div',\n ...props\n },\n ref\n) {\n return (\n <StyledFlexContainer\n as={as}\n $direction={direction}\n $wrap={wrap}\n $justify={justify}\n $align={align}\n $alignContent={alignContent}\n $gap={gap}\n $rowGap={rowGap}\n $columnGap={columnGap}\n className={className}\n style={style}\n ref={ref}\n {...props}\n >\n {children}\n </StyledFlexContainer>\n );\n});\n\ninterface StyledFlexContainerProps {\n $direction: FlexDirection;\n $wrap: FlexWrap;\n $justify: FlexJustify;\n $align: FlexAlign;\n $alignContent?: FlexAlign;\n $gap?: FlexGap;\n $rowGap?: FlexGap;\n $columnGap?: FlexGap;\n}\n\nconst StyledContainer = styled.div<StyledFlexContainerProps>`\n ${({ $direction, $wrap, $justify, $align, $alignContent, $gap, $rowGap, $columnGap }) => `\n display: flex;\n width: 100%;\n min-width: 0;\n flex-direction: ${$direction};\n flex-wrap: ${$wrap};\n justify-content: ${$justify};\n align-items: ${$align};\n ${$alignContent ? `align-content: ${$alignContent};` : ''}\n ${$gap !== undefined ? `gap: ${typeof $gap === 'number' ? `${$gap}px` : $gap};` : ''}\n ${$rowGap !== undefined ? `row-gap: ${typeof $rowGap === 'number' ? `${$rowGap}px` : $rowGap};` : ''}\n ${$columnGap !== undefined ? `column-gap: ${typeof $columnGap === 'number' ? `${$columnGap}px` : $columnGap};` : ''}\n `}\n`;\n\nconst StyledFlexContainer = createComponent(StyledContainer);\n","import { CSSProperties, ReactNode } from 'react';\nimport { styled } from 'styled-components';\n\nexport type FlexItemGrow = number;\nexport type FlexItemShrink = number;\nexport type FlexItemBasis = string | number;\nexport type FlexItemAlign = 'auto' | 'flex-start' | 'flex-end' | 'center' | 'baseline' | 'stretch';\n\nexport interface FlexItemProps {\n children?: any;\n grow?: FlexItemGrow;\n shrink?: FlexItemShrink;\n basis?: FlexItemBasis;\n align?: FlexItemAlign;\n order?: number;\n className?: string;\n style?: CSSProperties;\n as?: any; //TODO: fix type to styled component or intrinsic element\n}\n\nexport const FlexItem = ({\n children,\n grow,\n shrink,\n basis,\n align,\n order,\n className,\n style,\n as = 'div',\n}: FlexItemProps) => {\n return (\n <StyledFlexItem\n as={as}\n $grow={grow}\n $shrink={shrink}\n $basis={basis}\n $align={align}\n $order={order}\n className={className}\n style={style}\n >\n {children}\n </StyledFlexItem>\n );\n};\n\ninterface StyledFlexItemProps {\n $grow?: FlexItemGrow;\n $shrink?: FlexItemShrink;\n $basis?: FlexItemBasis;\n $align?: FlexItemAlign;\n $order?: number;\n}\n\nconst StyledFlexItem = styled.div<StyledFlexItemProps>`\n ${({ $grow, $shrink, $basis, $align, $order }) => `\n min-width: 0;\n ${$grow !== undefined ? `flex-grow: ${$grow};` : ''}\n ${$shrink !== undefined ? `flex-shrink: ${$shrink};` : ''}\n ${$basis !== undefined ? `flex-basis: ${typeof $basis === 'number' ? `${$basis}px` : $basis};` : ''}\n ${$align ? `align-self: ${$align};` : ''}\n ${$order !== undefined ? `order: ${$order};` : ''}\n `}\n`;\n","import {\n ColorVariant,\n createComponent,\n FabricComponent,\n generatePropertySpaceStyle,\n resolveThemeColor,\n} from '../../Theme';\nimport { styled } from 'styled-components';\n\ntype BoxProps = FabricComponent<\n {\n children: any;\n element?: 'div' | 'section';\n hasBorder?: boolean;\n color?: ColorVariant | string;\n } & React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>\n>;\n\nexport const Box = ({ children, element = 'div', hasBorder = true, color, ...props }: BoxProps) => {\n return (\n <StyledBox as={element} $hasBorder={hasBorder} $color={color} {...props}>\n {children}\n </StyledBox>\n );\n};\n\ntype StyledProps = { $hasBorder: boolean; $color?: string };\n\nconst StyledBox = createComponent(\n styled('div')<FabricComponent<StyledProps>>(\n ({ theme, $hasBorder, $color, px = theme.box.padding, py = theme.box.padding }) => `\n ${generatePropertySpaceStyle(theme, 'padding-inline', px)}\n ${generatePropertySpaceStyle(theme, 'padding-block', py)}\n border-radius: ${theme.box.borderRadius};\n background-color: ${theme.box.background};\n border-width: ${$hasBorder ? theme.box.border.width : 0};\n border-style: ${theme.box.border.style};\n border-color: ${resolveThemeColor(theme, $color) || theme.box.border.color};\n `\n ),\n {\n ignoreStyles: ['padding-inline', 'padding-block'],\n }\n);\n","import { createComponent, FabricComponent } from '../../Theme';\nimport { styled } from 'styled-components';\n\ntype LineProps = FabricComponent<\n {\n direction?: 'horizontal' | 'vertical';\n } & Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, 'children'>\n>;\n\nexport const Line = ({ direction = 'horizontal', ...props }: LineProps) => {\n return <StyledLine {...props} $direction={direction} />;\n};\n\ninterface StyledLineProps {\n $direction: 'horizontal' | 'vertical';\n}\n\nconst StyledLine = createComponent(\n styled.div<StyledLineProps>(\n ({ theme, $direction }) => `\n width: ${$direction === 'horizontal' ? '100%' : theme.line.size};\n height: ${$direction === 'vertical' ? '100%' : theme.line.size};\n background-color: ${theme.line.color};\n`\n )\n);\n","import styled from 'styled-components';\n\nexport interface EmptyDataProps {\n children?: any;\n title?: string;\n note?: string;\n className?: string;\n}\n\nexport const EmptyData = ({ children, title, note, className }: EmptyDataProps) => {\n return (\n <Container className={className}>\n {!!title && <h2>{title}</h2>}\n {!!note && <p>{note}</p>}\n {!!children && children}\n </Container>\n );\n};\n\nconst Container = styled.div(\n ({ theme }) => `\n display: flex;\n width: 100%;\n min-width: 0;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n gap: 10px;\n h2,\n p {\n padding: 0;\n margin: 0;\n text-align: center;\n color: ${theme.colors.text.light};\n }\n h2 {\n font-size: ${theme.typography.variants.h2.fontSize};\n font-weight: 600;\n }\n p {\n font-size: ${theme.typography.variants.h3.fontSize};\n }\n`\n);\n","import React from 'react';\nimport styled from 'styled-components';\nimport {\n FabricComponent,\n createComponent,\n TagVariant,\n TagColor,\n hexToRgba,\n generatePropertySpaceStyle,\n} from '../../Theme';\nimport { CrossIcon } from '../IconComponents';\n\ntype TagProps = FabricComponent<{\n children?: any;\n variant?: TagVariant;\n color?: TagColor;\n className?: string;\n icon?: any;\n disabled?: boolean;\n onClick?: () => void;\n onDelete?: () => void;\n}> &\n Omit<React.HTMLAttributes<HTMLDivElement>, 'children'>;\n\nexport const Tag = ({\n children,\n variant = 'fill',\n color = 'default',\n className,\n disabled,\n icon,\n onClick,\n onDelete,\n ...props\n}: TagProps) => {\n return (\n <StyledContainer\n $variant={variant}\n $color={color}\n $clickable={!!onClick && !disabled}\n onClick={!disabled ? onClick : undefined}\n className={className}\n {...props}\n >\n {!!children && <Content>{children}</Content>}\n {!!onDelete && !disabled && (\n <DeleteButton\n aria-label=\"delete\"\n onClick={(e) => {\n e.stopPropagation();\n onDelete();\n }}\n >\n <CrossIcon />\n </DeleteButton>\n )}\n </StyledContainer>\n );\n};\n\ntype StyledProps = {\n $variant: TagVariant;\n $color: TagColor;\n $clickable: boolean;\n};\n\nconst Content = styled.span`\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 0;\n\n font-size: 14px;\n line-height: 16px;\n`;\n\nconst DeleteButton = styled.button`\n border: none;\n outline: none;\n background-color: transparent;\n cursor: pointer;\n color: currentColor;\n transition: color 0.2s ease;\n svg {\n width: 10px;\n height: 10px;\n fill: currentColor;\n }\n`;\n\nconst Container = styled.div<FabricComponent<StyledProps>>(\n ({\n theme,\n $variant,\n $color,\n $clickable,\n py = theme.tag[$variant].paddingBlock,\n px = theme.tag[$variant].paddingInline,\n }) => {\n const color = theme.tag[$variant].color[$color] || $color;\n return `\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-width: 0;\n border-width: ${theme.tag[$variant].borderWidth};\n border-style: solid;\n border-color: ${color};\n border-radius: ${theme.tag[$variant].borderRadius};\n background-color: ${$variant === 'outlined' ? theme.colors.background : hexToRgba(color, 0.05)};\n color: ${color};\n\n ${Content} {\n ${generatePropertySpaceStyle(theme, 'padding-block', py)};\n ${generatePropertySpaceStyle(theme, 'padding-inline', px)};\n color: ${color};\n ${\n $clickable\n ? `\n cursor: pointer;\n transition: color 0.2s ease;\n &:hover {\n color: ${hexToRgba(color, 0.7)};\n }\n `\n : ''\n }\n }\n ${DeleteButton} {\n ${generatePropertySpaceStyle(theme, 'padding-block', py)};\n ${generatePropertySpaceStyle(theme, 'padding-right', px)};\n\n &:hover {\n color: ${hexToRgba(color, 0.7)};\n }\n }\n `;\n }\n);\n\nconst StyledContainer = createComponent(Container, {\n ignoreStyles: ['padding-block', 'padding-inline'],\n});\n","import React from 'react';\nimport styled from 'styled-components';\nimport { FabricComponent, createComponent, generatePropertySpaceStyle } from '../../Theme';\nimport { AlertIcon } from '../IconComponents';\n\ntype AlertProps = FabricComponent<{\n title?: any;\n note?: any;\n}> &\n Omit<React.HTMLAttributes<HTMLDivElement>, 'children'>;\n\nexport const Alert = ({ title, note, ...props }: AlertProps) => {\n return (\n <StyledContainer {...props}>\n <IconWrapper>\n <AlertIcon />\n </IconWrapper>\n <div>\n {!!title && <Title>{title}</Title>}\n {!!note && <Note>{note}</Note>}\n </div>\n </StyledContainer>\n );\n};\n\nconst IconWrapper = styled.div(\n ({ theme: { alert } }) => `\n flex-shrink: 0;\n color: ${alert.color.icon};\n padding-top: ${alert.icon.paddingTop};\n svg {\n width: ${alert.icon.width};\n height: ${alert.icon.height};\n display: block;\n }\n`\n);\n\nconst Title = styled.h3(\n ({ theme: { alert } }) => `\n margin: 0;\n padding: 0;\n font-size: ${alert.fontSize};\n line-height: 1.2;\n font-weight: 700;\n color: ${alert.color.text};\n &:not(:last-child) {\n margin-bottom: 8px;\n }\n`\n);\nconst Note = styled.p(\n ({ theme: { alert } }) => `\n margin: 0;\n padding: 0;\n word-break: break-word;\n font-size: ${alert.fontSize};\n color: ${alert.color.text};\n line-height: 1.5;\n`\n);\n\nconst StyledContainer = createComponent(\n styled.div<FabricComponent>(\n ({ theme, py = theme.alert.paddingBlock, pl = theme.alert.paddingLeft, pr = theme.alert.paddingRight }) => {\n return `\n display: flex;\n align-items: flex-start;\n justify-content: flex-start;\n flex-wrap: nowrap;\n gap: ${theme.alert.gap};\n background-color: ${theme.alert.color.background};\n border-radius: ${theme.alert.borderRadius};\n ${generatePropertySpaceStyle(theme, 'padding-block', py)};\n ${generatePropertySpaceStyle(theme, 'padding-right', pr)};\n ${generatePropertySpaceStyle(theme, 'padding-left', pl)};\n `;\n }\n ),\n { ignoreStyles: ['padding-block', 'padding-right', 'padding-left'] }\n);\n","import React from 'react';\nimport styled from 'styled-components';\nimport { FabricComponent, LabelSize, createComponent, generatePropertySpaceStyle, propToRem } from '../../Theme';\n\ntype LabelProps = FabricComponent<{\n label?: any;\n helpText?: any;\n errorText?: string;\n size?: LabelSize;\n children: any;\n fullWidth?: boolean;\n}> &\n Omit<React.LabelHTMLAttributes<HTMLLabelElement>, 'children'> &\n (LabelDirection | LabelDirectionRaw);\n\ntype LabelDirectionRaw = {\n direction?: 'row' | 'row-reverse';\n childrenWidth?: number | string;\n};\n\ntype LabelDirection = {\n direction?: Omit<React.CSSProperties['flexDirection'], 'row' | 'row-reverse'>;\n};\n\nexport const Label = ({\n label,\n helpText,\n children,\n direction = 'column',\n size = 'small',\n errorText,\n fullWidth,\n ...props\n}: LabelProps) => {\n const $isRow = direction === 'row' || direction === 'row-reverse';\n const $width = $isRow ? (props as LabelDirectionRaw).childrenWidth || '50%' : '100%';\n\n return (\n <StyledLabel $size={size} $direction={direction} $fullWidth={fullWidth} $isRow={$isRow} {...props}>\n {Boolean(label || helpText) && (\n <LabelWrapper $width={$width}>\n {!!label && <LabelText $size={size}>{label}</LabelText>}\n {!!helpText && <HelpText $size={size}>{helpText}</HelpText>}\n </LabelWrapper>\n )}\n <Wrapper $width={$width}>\n {children}\n {!!errorText && <ErrorText $size={size}>{errorText}</ErrorText>}\n </Wrapper>\n </StyledLabel>\n );\n};\n\ntype StyledProps = {\n $size: LabelSize;\n $direction?: LabelDirection['direction'] | LabelDirectionRaw['direction'];\n $fullWidth?: boolean;\n $isRow: boolean;\n};\n\ntype WrapperProps = { $width: number | string };\ntype TextProps = { $size: LabelSize };\n\nconst Wrapper = styled.div<WrapperProps>(\n ({ theme, $width }) => `\n flex-basis: 100%;\n @media (min-width: ${theme.breakpoints.m}px) {\n flex-basis: ${propToRem($width, theme.baseSize)};\n }\n `\n);\n\nconst LabelWrapper = styled(Wrapper)<WrapperProps>`\n align-self: flex-start;\n`;\n\nconst LabelText = styled.div<TextProps>(\n ({ theme, $size }) => `\n line-height: 1.2;\n font-weight: 500;\n font-size: ${theme.label.sizes[$size].fontSize};\n color: ${theme.label.color};\n cursor: pointer;\n :hover {\n color: ${theme.colors.primary.main};\n }\n\n`\n);\n\nconst HelpText = styled.div<TextProps>(\n ({ theme, $size }) => `\n margin-top: ${theme.label.sizes[$size].helpText.marginTop};\n word-break: break-word;\n line-height: 1.2;\n font-size: ${theme.label.sizes[$size].helpText.fontSize};\n color: ${theme.label.helpTextColor};\n`\n);\nconst ErrorText = styled.div<TextProps>(\n ({ theme, $size }) => `\n margin-top: ${theme.label.sizes[$size].helpText.marginTop};\n word-break: break-word;\n line-height: 1.2;\n font-size: ${theme.label.sizes[$size].helpText.fontSize};\n color: ${theme.colors.error};\n`\n);\n\nconst StyledLabel = createComponent(\n styled.label<FabricComponent<StyledProps>>(\n ({\n theme,\n $direction = 'column',\n $isRow,\n $size,\n $fullWidth = false,\n mb = theme.label.sizes[$size].marginBottom,\n }) => {\n return `\n display: inline-flex;\n justify-content: space-between;\n ${$fullWidth ? 'width: 100%;' : ''}\n min-width: 0;\n flex-direction: column;\n\n @media (min-width: ${theme.breakpoints.m}px) {\n flex-direction: ${$direction};\n align-items: ${$isRow ? 'center' : 'stretch'};\n }\n\n gap: ${theme.label.sizes[$size].gap};\n ${generatePropertySpaceStyle(theme, 'margin-bottom', mb)};\n `;\n }\n ),\n { ignoreStyles: ['margin-bottom'] }\n);\n","import React from 'react';\nimport styled from 'styled-components';\nimport { FabricComponent, createComponent, destructSpaceProps, pxToRem } from '../../Theme';\n\ntype CheckboxProps = FabricComponent<{\n label?: any;\n}> &\n Omit<React.InputHTMLAttributes<HTMLInputElement>, 'type'>;\n\nexport const Checkbox = ({ label, className, disabled, ...props }: CheckboxProps) => {\n const spaceProps = destructSpaceProps(props);\n return (\n <StyledCheckbox className={className} $disabled={disabled} {...spaceProps}>\n <HiddenInput type=\"checkbox\" disabled={disabled} {...props} />\n <CustomCheckbox />\n {!!label && <LabelText>{label}</LabelText>}\n </StyledCheckbox>\n );\n};\n\nconst CustomCheckbox = styled.div(\n ({ theme }) => `\n width: ${pxToRem(15)};\n height: ${pxToRem(15)};\n border-radius: ${pxToRem(2)};\n border: 1px solid ${theme.colors.stroke.main};\n background-color: ${theme.colors.background};\n transition: all 0.2s ease;\n `\n);\n\nconst LabelText = styled.span(\n ({ theme }) => `\n margin-left: ${pxToRem(5)};\n font-size: ${theme.typography.variants.h3.fontSize};\n color: ${theme.colors.text.main};\n`\n);\n\nconst HiddenInput = styled.input`\n border: 0;\n clip: rect(0 0 0 0);\n height: 1px;\n width: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n`;\n\nconst StyledCheckbox = createComponent(\n styled.label<{ $disabled?: boolean }>(({ theme, $disabled }) => {\n return `\n position: relative;\n display: flex;\n align-items: center;\n cursor: ${$disabled ? 'not-allowed' : 'pointer'};\n\n &:hover {\n ${HiddenInput}:not(:disabled) + ${CustomCheckbox} {\n border-color: ${theme.colors.primary.main};\n }\n }\n\n ${HiddenInput}:checked + ${CustomCheckbox} {\n background-color: ${theme.colors.primary.main};\n border-color: ${theme.colors.primary.main};\n }\n ${HiddenInput}:disabled + ${CustomCheckbox} {\n background-color: ${theme.colors.disable};\n }\n `;\n })\n);\n","import { createComponent, FabricComponent, propToRem, pxToRem } from '../../Theme';\nimport { styled } from 'styled-components';\n\ntype Direction = 'horizontal' | 'vertical';\n\ntype LinerProgressProps = FabricComponent<\n {\n height?: number;\n width?: string | number;\n direction?: Direction;\n value: number;\n } & Omit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, 'children'>\n>;\n\nexport const LinerProgress = ({\n height = 21,\n width = '100%',\n direction = 'horizontal',\n value,\n ...props\n}: LinerProgressProps) => {\n return <StyledLine {...props} $height={height} $value={value} $width={width} $direction={direction} />;\n};\n\ninterface StyledLineProps {\n $height: number;\n $value: number;\n $width: string | number;\n $direction: Direction;\n}\n\nconst StyledLine = createComponent(\n styled.div<StyledLineProps>(\n ({ theme, $height, $value, $width, $direction }) => `\n width: ${propToRem($width, theme.baseSize)};\n height: ${propToRem($height, theme.baseSize)};\n background-color: ${theme.leanerProgress.background};\n position: relative;\n overflow: hidden;\n border-radius: ${pxToRem(2, theme.baseSize)};\n &::after {\n position: absolute;\n content: '';\n left: 0;\n bottom: 0;\n width: ${$direction === 'horizontal' ? `${$value}%` : propToRem($width, theme.baseSize)};\n height: ${$direction === 'horizontal' ? '100%' : `${$value}%`};\n background-color: ${theme.leanerProgress.progressColor};\n border-radius: ${pxToRem(2, theme.baseSize)};\n }\n`\n )\n);\n","import { InputHTMLAttributes } from 'react';\nimport { createComponent, destructSpaceProps, FabricComponent, pxToRem } from '../../Theme';\nimport { styled } from 'styled-components';\n\ntype SwitchProps = FabricComponent<Omit<InputHTMLAttributes<HTMLInputElement>, 'type'>>;\n\nexport const Switch = ({ className, ...props }: SwitchProps) => {\n const spaceProps = destructSpaceProps(props);\n return (\n <StyledLabel className={className} {...spaceProps}>\n <HiddenInput type=\"checkbox\" {...props} />\n <StyledSwitch />\n </StyledLabel>\n );\n};\n\nconst StyledSwitch = styled.span(\n ({ theme }) => `\n position: relative;\n cursor: pointer;\n display: inline-block;\n width: ${pxToRem(41, theme.baseSize)};\n height: ${pxToRem(21, theme.baseSize)};\n border-radius: ${pxToRem(15, theme.baseSize)};\n background-color: ${theme.switch.default.background};\n &::before {\n position: absolute;\n display: block;\n top: 50%;\n transform: translateY(-50%);\n height: ${pxToRem(15, theme.baseSize)};\n width: ${pxToRem(15, theme.baseSize)};\n border-radius: 50%;\n background-color: ${theme.switch.default.color};\n content: '';\n }\n`\n);\nconst HiddenInput = styled.input(\n ({ theme }) => `\n appearance: none;\n border: none;\n outline: none;\n position: absolute;\n height: 1px;\n width: 1px;\n margin: -1px;\n top: 0;\n left: 0;\n &:not(:checked) + ${StyledSwitch}::before {\n left: ${pxToRem(3, theme.baseSize)};\n }\n &:checked + ${StyledSwitch} {\n background-color: ${theme.switch.checked.background};\n &::before {\n right: ${pxToRem(3, theme.baseSize)};\n }\n }\n &:disabled + ${StyledSwitch} {\n background-color: ${theme.switch.disabled.background};\n cursor: not-allowed;\n }\n`\n);\n\nconst StyledLabel = createComponent(\n styled.label`\n position: relative;\n display: inline-block;\n `\n);\n","import { useEffect } from 'react';\n\n/**\n * Hook для блокування скролу body та збереження позиції контенту\n * Додає padding-right замість скролбару щоб уникнути стрибків контенту\n *\n * @param isLocked - чи заблоковано скрол\n */\nexport const useBodyScrollLock = (isLocked: boolean) => {\n useEffect(() => {\n if (!isLocked) return;\n\n const originalStyle = window.getComputedStyle(document.body);\n const scrollBarWidth = window.innerWidth - document.documentElement.clientWidth;\n\n // Зберігаємо оригінальні стилі\n const originalPaddingRight = originalStyle.paddingRight;\n const originalOverflow = originalStyle.overflow;\n\n // Блокуємо скрол та додаємо падінг замість скролбару\n document.body.style.overflow = 'hidden';\n document.body.style.paddingRight = `${parseInt(originalPaddingRight) + scrollBarWidth}px`;\n\n return () => {\n // Відновлюємо оригінальні стилі\n document.body.style.overflow = originalOverflow;\n document.body.style.paddingRight = originalPaddingRight;\n };\n }, [isLocked]);\n};\n","import { createPortal } from 'react-dom';\nimport { styled } from 'styled-components';\nimport { createComponent, FabricComponent, generatePropertySpaceStyle, propToRem, pxToRem } from '../../Theme';\nimport { useBodyScrollLock } from '../../utils';\nimport { useEffect, useRef } from 'react';\n\ntype DrawerProps = {\n isOpen: boolean;\n onClose: () => void;\n children?: any;\n header?: number; //TODO: remove deps;\n width?: string | number;\n};\n\nexport const Drawer = (props: DrawerProps) => {\n useBodyScrollLock(props.isOpen);\n\n if (!props.isOpen) return null;\n return createPortal(<DrawerWithOutclick {...props} />, document.body);\n};\n\nconst DrawerWithOutclick = ({ onClose, children, width, header }: DrawerProps) => {\n const drawerRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const handleClick = (e: MouseEvent) => {\n if (drawerRef.current && !drawerRef.current.contains(e.target as Node)) {\n onClose();\n }\n };\n document.addEventListener('mousedown', handleClick);\n return () => {\n document.removeEventListener('mousedown', handleClick);\n };\n }, [onClose]);\n\n return (\n <StyledDrawer $header={header} $width={width} ref={drawerRef}>\n {children}\n </StyledDrawer>\n );\n};\n\ntype DrawerHeaderProps = FabricComponent<{\n children?: any;\n}>;\n\nexport const DrawerHeader: any = createComponent<DrawerHeaderProps>(\n styled.div<DrawerHeaderProps>(\n ({ theme, p = theme.drawer.padding }) => `\n grid-area: drawer-header;\n ${generatePropertySpaceStyle(theme, 'padding', p)};\n `\n ),\n {\n ignoreStyles: ['padding-inline'],\n }\n);\n\ntype DrawerBodyProps = FabricComponent<{\n children?: any;\n}>;\n\nexport const DrawerBody: any = createComponent(\n styled.div<DrawerBodyProps>(\n ({ theme, px = theme.drawer.padding, pb = theme.drawer.padding }) => `\n grid-area: drawer-body;\n max-height: 100%;\n overflow-y: auto;\n ${generatePropertySpaceStyle(theme, 'padding-inline', px)};\n ${generatePropertySpaceStyle(theme, 'padding-bottom', pb)};\n`\n ),\n {\n ignoreStyles: ['padding', 'padding-bottom'],\n }\n);\n\nconst StyledDrawer = styled.div<{ $header?: number; $width?: string | number }>(\n ({ theme, $header, $width }) => `\n position: fixed;\n display: grid;\n grid-template-areas:\n \"drawer-header\"\n \"drawer-body\";\n grid-template-rows: auto 1fr;\n z-index: ${theme.zIndex.sticky};\n top: ${pxToRem($header || 0, theme.baseSize)};\n bottom: 0;\n right: 0;\n width: ${$width ? propToRem($width, theme.baseSize) : theme.drawer.width};\n max-width: 100%;\n background-color: ${theme.colors.background};\n box-shadow: ${theme.drawer.shadow};\n border-left: 1px solid ${theme.colors.stroke.lighter};\n`\n);\n","import { ReactElement } from 'react';\nimport { styled } from 'styled-components';\n\ninterface PageLayoutProps {\n header?: any;\n sidebar?: any;\n children?: any;\n className?: string;\n}\n\nexport const PageLayout = ({ children, header, sidebar, className }: PageLayoutProps) => {\n return (\n <StyledContainer className={className} $withHeader={!!header} $withSidebar={!!sidebar}>\n {header}\n {sidebar}\n <StyledMain>{children}</StyledMain>\n </StyledContainer>\n );\n};\n\ninterface StyledContainerProps {\n $withHeader?: boolean;\n $withSidebar?: boolean;\n}\n\nexport const StyledContainer = styled.div<StyledContainerProps>(\n ({ $withHeader, $withSidebar }) => `\n display: grid;\n min-height: 100dvh;\n position: relative;\n grid-template-columns: ${$withSidebar ? 'auto 1fr' : '1fr'};\n grid-template-rows: ${$withHeader ? 'auto 1fr' : '1fr'};\n grid-template-areas: ${\n $withHeader\n ? $withSidebar\n ? `'sidebar header' 'sidebar content'`\n : `'header' 'content'`\n : $withSidebar\n ? `'sidebar content'`\n : `'content'`\n };\n\n & > header {\n grid-area: header;\n }\n\n & > aside {\n grid-area: sidebar;\n max-height: 100dvh;\n }\n\n & > main {\n grid-area: content;\n }\n`\n);\n\nconst StyledMain = styled.main(\n ({ theme }) => `\n min-width: 0;\n background: ${theme.colors.backgroundBase};\n `\n);\n","import { createComponent, FabricComponent, generatePropertySpaceStyle, pxToRem } from '../../Theme';\nimport { styled } from 'styled-components';\n\ntype ContainerProps = FabricComponent<{\n children: any;\n maxWidth?: string | number;\n}>;\n\ntype StyledContainerProps = {\n $maxWidth?: string | number;\n};\n\nexport const Container = ({ maxWidth, ...props }: ContainerProps) => {\n return <StyledContainer {...props} $maxWidth={maxWidth} />;\n};\n\nconst StyledContainer = createComponent(\n styled.div<FabricComponent<StyledContainerProps>>(({ theme, $maxWidth, px = 20 }) => {\n return `\n ${generatePropertySpaceStyle(theme, 'padding-inline', px)}\n width: 100%;\n min-width: 0;\n max-width: ${typeof $maxWidth === 'number' ? pxToRem($maxWidth, theme.baseSize) : $maxWidth || '100%'};\n `;\n }),\n { ignoreStyles: ['padding-inline'] }\n);\n","import React from 'react';\nimport ContentLoader from 'react-content-loader';\nimport styled, { useTheme } from 'styled-components';\n\nconst LoaderWrapper = styled.div`\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n`;\n\ninterface GraphLoaderProps {\n width?: number;\n height?: number;\n}\n\nconst GraphLoader: React.FC<GraphLoaderProps> = ({ width = 280, height = 280 }) => {\n // Helper function to create a rect from line coordinates\n const theme = useTheme();\n\n return (\n <LoaderWrapper>\n <ContentLoader\n foregroundColor={theme.contentLoader.foreground}\n backgroundColor={theme.contentLoader.background}\n width={width}\n height={height}\n viewBox=\"0 0 280 280\"\n >\n <path d=\"m55 38-0.97266 0.22852 7.0801 30.092-18.355-20.979-0.75195 0.6582 19.596 22.395 0.43164 1.834 0.97266-0.22852 0.75195-0.6582-0.37695-0.42969 9.625-27.912-0.94531-0.32617-9.4375 27.371-0.10547-0.12109zm8 34-0.78516 0.61914 0.0957 0.12305-12.311 13.258 0.73242 0.67969 12.205-13.145 14.277 18.084 0.78516-0.61914-14.373-18.207 0.10547-0.11328zm15 19-0.48438 0.875 46.992 25.996 8e-3 4e-3 20.506 11.592-28.182 4.5449 0.15998 0.98819 29.418-4.7441 0.25 0.14062-12.555 24.143 0.88672 0.46094 13-25 15 25 26 30v18l-11 18 0.85352 0.52148 9.8008-16.039-4.6543 33.518 0.99023 0.13867 4.7793-34.408 7.2305 16.27 0.91406-0.40625-7.9141-17.807v-17.104l18 12.316 0.56445-0.82617-18.896-12.928-25.855-29.836-14.633-24.387 0.01562-0.02344h23.805v-1h-23.152l13.848-21.234 55.201-28.791-0.45898-0.88476 0.77734 0.62305 11.402-14.25 16.668-11.842-0.58008-0.81641-16.785 11.928-11.486 14.355-55.434 28.912-14.277 21.893-7.7617-27.166-0.96094 0.27344 7.7227 27.031-1.1191 0.17969-21.604-12.211zm140.43-12.912-6.957-17.338-0.92773 0.37305 6.957 17.338zm-6.957-17.338 0.72266 0.69336 16.232-16.896-0.7207-0.69336zm-3.4766 137.25 5 15 0.94922-0.31641-5-15zm-91-63-0.48047-0.87695-31 17 0.48047 0.87695zm-31 17 5 18 0.96289-0.26758-5-18zm0 0-0.70703-0.70703-12.898 12.898-17.881 9.9336 0.48633 0.875 18-10zm5 18-0.64062-0.76758-18 15 0.64062 0.76758z\" />\n <circle cx=\"229.92\" cy=\"63.7318\" r=\"5\" transform=\"rotate(173.661 229.92 63.7318)\" />\n <circle cx=\"227.711\" cy=\"43.8541\" r=\"5\" transform=\"rotate(173.661 227.711 43.8541)\" />\n <circle cx=\"211.478\" cy=\"60.7499\" r=\"5\" transform=\"rotate(173.661 211.478 60.7499)\" />\n <circle cx=\"218.434\" cy=\"78.0877\" r=\"5\" transform=\"rotate(173.661 218.434 78.0877)\" />\n <circle cx=\"246.705\" cy=\"51.8054\" r=\"5\" transform=\"rotate(173.661 246.705 51.8054)\" />\n <circle cx=\"42\" cy=\"48\" r=\"5\" />\n <circle cx=\"55\" cy=\"38\" r=\"5\" />\n <circle cx=\"73\" cy=\"43\" r=\"5\" />\n <circle cx=\"63\" cy=\"72\" r=\"5\" />\n <circle cx=\"50\" cy=\"86\" r=\"5\" />\n <circle cx=\"78\" cy=\"91\" r=\"5\" />\n <circle cx=\"73\" cy=\"165\" r=\"5\" />\n <circle cx=\"73\" cy=\"185\" r=\"5\" />\n <circle cx=\"91\" cy=\"170\" r=\"5\" />\n <circle cx=\"86\" cy=\"152\" r=\"5\" />\n <circle cx=\"148\" cy=\"130\" r=\"5\" />\n <circle cx=\"189\" cy=\"185\" r=\"5\" />\n <circle cx=\"163\" cy=\"107\" r=\"5\" />\n <circle cx=\"140\" cy=\"102\" r=\"5\" />\n <circle cx=\"117\" cy=\"135\" r=\"5\" />\n <circle cx=\"125\" cy=\"117\" r=\"5\" />\n <circle cx=\"208\" cy=\"198\" r=\"5\" />\n <circle cx=\"189\" cy=\"203\" r=\"5\" />\n <circle cx=\"198\" cy=\"221\" r=\"5\" />\n <circle cx=\"178\" cy=\"221\" r=\"5\" />\n <circle cx=\"184\" cy=\"239\" r=\"5\" />\n <circle cx=\"213\" cy=\"213\" r=\"5\" />\n <circle cx=\"173\" cy=\"130\" r=\"5\" />\n <circle cx=\"163\" cy=\"155\" r=\"5\" />\n <circle cx=\"135\" cy=\"155\" r=\"5\" />\n <circle cx=\"55\" cy=\"175\" r=\"5\" />\n </ContentLoader>\n </LoaderWrapper>\n );\n};\n\nexport default GraphLoader;\n","import {\n useCallback,\n useEffect,\n useRef,\n useState,\n forwardRef,\n useImperativeHandle,\n useMemo,\n useLayoutEffect,\n} from 'react';\nimport { Graph2DProps, LinkObject, NodeObject, Graph2DRef, GraphState } from './types';\n\nimport cloneDeep from 'lodash.clonedeep';\n\nimport {\n forceCenter,\n forceLink,\n forceManyBody,\n forceSimulation,\n forceCollide,\n forceX,\n forceY,\n Simulation,\n ForceLink,\n scaleOrdinal,\n schemeCategory10,\n} from 'd3';\nimport { styled, useTheme } from 'styled-components';\nimport GraphLoader from './GraphLoader';\n\nconst RATIO = window.devicePixelRatio || 1;\n// Завантаження та підготовка зображень кнопок\nfunction prepareButtonImages(buttons: Graph2DProps['buttons']) {\n if (!buttons || buttons.length === 0) return [];\n\n return buttons.map((button) => {\n const normalImg = new Image();\n normalImg.src = button.img;\n\n const hoverImg = new Image();\n hoverImg.src = button.hoverImg;\n\n return {\n ...button,\n normalImg,\n hoverImg,\n };\n });\n}\n\n// Конфігурація подібна до Graph2D\nconst config = {\n fontSize: 3,\n nodeSizeBase: 30,\n nodeAreaFactor: 2,\n textPaddingFactor: 0.9,\n gridSpacing: 20,\n dotSize: 1,\n maxZoom: 4,\n};\n\nexport const Graph2D: any = forwardRef<Graph2DRef, Graph2DProps>(\n (\n {\n loading,\n width,\n height,\n graphData,\n buttons = [],\n onNodeClick,\n onBackgroundClick,\n onNodeHover,\n onLinkHover,\n onLinkClick,\n },\n ref\n ) => {\n const theme = useTheme();\n const [isRendering, setIsRendering] = useState(true);\n\n const stateRef = useRef<GraphState>({\n transform: { x: 0, y: 0, k: 1 }, // x, y для переміщення, k для масштабу\n isPanning: false,\n hoveredNode: null,\n hoveredLink: null,\n draggedNode: null,\n selectedNode: null,\n hoveredButtonIndex: null,\n highlightNodes: new Set(),\n highlightLinks: new Set(),\n lastMousePos: { x: 0, y: 0 },\n mustBeStoppedPropagation: false,\n lastHoveredNode: null,\n mouseStartPos: null,\n isDragging: false,\n lastHoveredNodeRef: null,\n width: width * RATIO,\n height: height * RATIO,\n });\n\n const { nodes, links } = useMemo(() => cloneDeep(graphData), [graphData]);\n\n // Стани кнопок\n const [buttonImages, setButtonImages] = useState<any[]>([]);\n\n const canvasRef = useRef<HTMLCanvasElement>(null);\n const simulationRef = useRef<Simulation<NodeObject, LinkObject> | null>(null);\n\n // Контекст Canvas для 2D рендерингу\n const ctx2dRef = useRef<CanvasRenderingContext2D | null>(null);\n const color = scaleOrdinal(schemeCategory10);\n\n // Ініціалізація контексту Canvas 2D\n const init2DCanvas = useCallback(() => {\n if (!canvasRef.current) return false;\n\n try {\n const ctx = canvasRef.current.getContext('2d');\n if (!ctx) {\n console.error('Failed to get 2D context');\n return false;\n }\n\n ctx2dRef.current = ctx;\n return true;\n } catch (e) {\n console.error('Error initializing Canvas 2D context:', e);\n return false;\n }\n }, []);\n\n const getNodes = useCallback(() => {\n if (!simulationRef.current) return null;\n return simulationRef.current.nodes();\n }, []);\n\n const getLinks = useCallback(() => {\n if (!simulationRef.current) return null;\n\n const linkForce = simulationRef.current.force('link') as ForceLink<NodeObject, LinkObject>;\n const links = linkForce ? linkForce.links() : null;\n return links;\n }, []);\n\n // Рендеринг сітки на полотні\n const renderGrid = useCallback(\n (ctx: CanvasRenderingContext2D) => {\n // Зберігаємо поточний стан контексту\n ctx.save();\n\n // Скидаємо трансформацію для малювання фону в координатах екрану\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n\n // Малюємо фонові крапки\n const { width: canvasWidth, height: canvasHeight } = stateRef.current;\n const gridSpacing = config.gridSpacing;\n const dotSize = config.dotSize;\n\n ctx.fillStyle = theme.graph2D.grid.dotColor;\n\n for (let x = gridSpacing / 2; x <= canvasWidth; x += gridSpacing) {\n for (let y = gridSpacing / 2; y <= canvasHeight; y += gridSpacing) {\n ctx.beginPath();\n ctx.arc(x, y, dotSize, 0, 2 * Math.PI);\n ctx.fill();\n }\n }\n\n // Відновлюємо оригінальну трансформацію для іншого рендерингу\n ctx.restore();\n },\n [theme.graph2D.grid.dotColor, config.gridSpacing, config.dotSize]\n );\n\n // Функція для обрізання тексту з додаванням трикрапки\n const truncateText = useCallback((text: string, maxWidth: number, ctx: CanvasRenderingContext2D): string => {\n if (!text) return '';\n\n // Вимірюємо ширину тексту\n const textWidth = ctx.measureText(text).width;\n\n // Повертаємо як є, якщо коротше за максимальну ширину\n if (textWidth <= maxWidth) return text;\n\n // Інакше обрізаємо і додаємо трикрапку\n let truncated = text;\n const ellipsis = '...';\n\n // Поступово зменшуємо текст, поки він не поміститься\n while (ctx.measureText(truncated + ellipsis).width > maxWidth && truncated.length > 0) {\n truncated = truncated.slice(0, -1);\n }\n\n return truncated + ellipsis;\n }, []);\n\n // Розрахунок розміру шрифту на основі масштабу/зуму\n const calculateFontSize = (scale: number): number => {\n // Обмежуємо масштаб до максимального зуму\n const limitedScale = Math.min(scale, config.maxZoom);\n\n // Масштабуємо розмір шрифту пропорційно\n const fontSizeRatio = limitedScale / config.maxZoom;\n\n return Math.max(config.fontSize * fontSizeRatio, config.fontSize);\n };\n\n // Рендеринг зв'язків на полотні - подібно до реалізації Graph2D\n const renderLinks = useCallback(\n (ctx: CanvasRenderingContext2D) => {\n const links = getLinks();\n const nodes = getNodes();\n if (!links || links.length === 0 || !nodes || nodes.length === 0) return;\n ctx.lineWidth = 0.5;\n ctx.globalAlpha = 1.0;\n\n links.forEach((link) => {\n const source = typeof link.source === 'object' ? link.source : nodes.find((n) => n.id === link.source);\n const target = typeof link.target === 'object' ? link.target : nodes.find((n) => n.id === link.target);\n\n if (!source || !target) return;\n\n // Координати для початку і кінця\n const start = { x: source.x || 0, y: source.y || 0 };\n const end = { x: target.x || 0, y: target.y || 0 };\n\n // Обчислення відстані і напрямку\n const dx = end.x - start.x;\n const dy = end.y - start.y;\n const distance = Math.sqrt(dx * dx + dy * dy);\n\n // Нормалізований вектор напрямку\n const unitDx = dx / distance;\n const unitDy = dy / distance;\n\n // Коригування радіусу вузлів\n const sourceRadius = config.nodeSizeBase / 2;\n const targetRadius = config.nodeSizeBase / 2;\n const arrowHeadLength = 4;\n\n // Коригуємо початкову і кінцеву позиції, щоб починалися/закінчувалися на краях вузлів\n const adjustedStart = {\n x: start.x + unitDx * sourceRadius,\n y: start.y + unitDy * sourceRadius,\n };\n\n const adjustedEnd = {\n x: end.x - unitDx * (targetRadius + arrowHeadLength),\n y: end.y - unitDy * (targetRadius + arrowHeadLength),\n };\n\n const adjusteArrowdEnd = {\n x: end.x - unitDx * (targetRadius + 1),\n y: end.y - unitDy * (targetRadius + 1),\n };\n\n // Колір лінії залежить від стану виділення\n const isHighlighted = stateRef.current.highlightLinks.has(link);\n const lineColor = isHighlighted ? theme.graph2D.link.highlighted : theme.graph2D.link.normal;\n const lineWidth = isHighlighted ? 1.5 : 0.5;\n\n // Обчислення середини лінії для розміщення тексту\n const middleX = start.x + (end.x - start.x) / 2;\n const middleY = start.y + (end.y - start.y) / 2;\n const angle = Math.atan2(dy, dx);\n\n // Малюємо лінію у дві частини, якщо є мітка\n if (link.label) {\n // Обчислюємо ширину тексту для проміжку\n const globalScale = stateRef.current.transform.k;\n const scaledFontSize = calculateFontSize(globalScale);\n ctx.font = `${scaledFontSize}px Sans-Serif`;\n const textWidth = ctx.measureText(link.label).width;\n const padding = 10; // Додатковий простір навколо тексту\n\n // Перша частина лінії\n ctx.beginPath();\n ctx.moveTo(adjustedStart.x, adjustedStart.y);\n\n // Обчислюємо точку перед текстом\n const beforeTextDistance = distance / 2 - (textWidth + padding) / 2;\n const pointBeforeText = {\n x: start.x + unitDx * beforeTextDistance,\n y: start.y + unitDy * beforeTextDistance,\n };\n ctx.lineTo(pointBeforeText.x, pointBeforeText.y);\n ctx.strokeStyle = lineColor;\n ctx.lineWidth = lineWidth;\n ctx.stroke();\n\n // Друга частина лінії\n ctx.beginPath();\n // Обчислюємо точку після тексту\n const afterTextDistance = distance / 2 + (textWidth + padding) / 2;\n const pointAfterText = {\n x: start.x + unitDx * afterTextDistance,\n y: start.y + unitDy * afterTextDistance,\n };\n ctx.moveTo(pointAfterText.x, pointAfterText.y);\n ctx.lineTo(adjustedEnd.x, adjustedEnd.y);\n ctx.strokeStyle = lineColor;\n ctx.lineWidth = lineWidth;\n ctx.stroke();\n } else {\n // Малюємо суцільну лінію якщо немає мітки\n ctx.beginPath();\n ctx.moveTo(adjustedStart.x, adjustedStart.y);\n ctx.lineTo(adjustedEnd.x, adjustedEnd.y);\n ctx.strokeStyle = lineColor;\n ctx.lineWidth = lineWidth;\n ctx.stroke();\n }\n\n // Малюємо стрілку\n const arrowHeadWidth = 2;\n\n ctx.save();\n ctx.translate(adjusteArrowdEnd.x, adjusteArrowdEnd.y);\n ctx.rotate(angle);\n\n // Наконечник стрілки\n ctx.beginPath();\n ctx.moveTo(0, 0);\n ctx.lineTo(-arrowHeadLength, arrowHeadWidth);\n ctx.lineTo(-arrowHeadLength, 0);\n ctx.lineTo(-arrowHeadLength, -arrowHeadWidth);\n ctx.closePath();\n\n ctx.fillStyle = lineColor;\n ctx.fill();\n ctx.restore();\n\n // Малюємо мітку, якщо вона є\n if (link.label) {\n // Ми вже обчислили ці значення раніше\n // const середнєX = start.x + (end.x - start.x) / 2;\n // const середнєY = start.y + (end.y - start.y) / 2;\n\n const globalScale = stateRef.current.transform.k; // Використовуємо поточний рівень масштабування\n const scaledFontSize = calculateFontSize(globalScale);\n\n ctx.font = `${scaledFontSize}px Sans-Serif`;\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n\n // Повертаємо текст, щоб він співпадав з кутом лінії\n ctx.save();\n ctx.translate(middleX, middleY);\n\n // Коригуємо обертання, якщо текст буде перевернутим\n if (Math.abs(angle) > Math.PI / 2) {\n ctx.rotate(angle + Math.PI);\n } else {\n ctx.rotate(angle);\n }\n\n // Видалено фон для чистішого вигляду\n\n // Малюємо текст\n ctx.fillStyle = isHighlighted ? theme.graph2D.link.highlightedTextColor : theme.graph2D.link.textColor;\n\n ctx.fillText(link.label, 0, 0);\n ctx.restore();\n }\n });\n },\n [config, theme.graph2D.link]\n );\n\n // Функція для рендерингу кнопок навколо вузла\n const renderNodeButtons = useCallback(\n (node: NodeObject, ctx: CanvasRenderingContext2D) => {\n if (!buttonImages || buttonImages.length === 0) return;\n if (!node || !node.x || !node.y) return;\n\n const { x, y } = node;\n const buttonRadius = (config.nodeSizeBase * config.nodeAreaFactor) / 2;\n\n // Зберігаємо стан канвасу\n ctx.save();\n\n // Обчислюємо кількість кнопок і їхніх секторів\n const buttonCount = Math.min(buttonImages.length, 8); // Обмежуємо до максимум 8 кнопок для ясності інтерфейсу\n const sectorAngle = Math.min((Math.PI * 2) / buttonCount, Math.PI); // Максимальний кут сектора - півколо (PI)\n\n // Малюємо кнопки як сектори навколо вузла\n for (let i = 0; i < buttonCount; i++) {\n const startAngle = i * sectorAngle;\n const endAngle = (i + 1) * sectorAngle;\n const isHovered = stateRef.current.hoveredButtonIndex === i;\n\n // Малюємо фон сектора кнопки\n ctx.beginPath();\n ctx.arc(x, y, buttonRadius, startAngle, endAngle, false);\n ctx.lineTo(x, y);\n ctx.closePath();\n ctx.lineWidth = 1;\n ctx.strokeStyle = theme.graph2D?.button?.stroke || '#FFFFFF';\n ctx.stroke();\n ctx.fillStyle = isHovered\n ? theme.graph2D?.button?.hoverFill || 'rgba(255, 255, 255, 0.3)'\n : theme.graph2D?.button?.normalFill || 'rgba(255, 255, 255, 0.1)';\n ctx.fill();\n\n // Обчислюємо позицію для іконки\n // Розташовуємо іконку в середині сектора\n const iconSize = buttonRadius * 0.2;\n const midAngle = (startAngle + endAngle) / 2;\n const iconDistance = buttonRadius - config.nodeSizeBase / 2 + iconSize; // Коригуємо відстань, щоб уникнути перекриття з вузлом\n const iconX = x + Math.cos(midAngle) * iconDistance;\n const iconY = y + Math.sin(midAngle) * iconDistance;\n\n // Вибираємо відповідну іконку залежно від стану наведення\n const buttonImage = buttonImages[i];\n const icon = isHovered ? buttonImage.hoverImg : buttonImage.normalImg;\n\n // Малюємо іконку\n if (icon.complete) {\n try {\n ctx.drawImage(icon, iconX - iconSize / 2, iconY - iconSize / 2, iconSize, iconSize);\n } catch (error) {\n console.warn('Error rendering button icon:', error);\n }\n } else {\n // Встановлюємо обробник onload, якщо зображення ще не завантажено\n icon.onload = () => {\n if (ctx2dRef.current) {\n try {\n ctx.drawImage(icon, iconX - iconSize / 2, iconY - iconSize / 2, iconSize, iconSize);\n } catch (error) {\n console.warn('Error rendering button icon after load:', error);\n }\n }\n };\n }\n }\n\n ctx.restore();\n },\n [buttonImages, theme.graph2D?.button]\n );\n\n const renderNodes = useCallback(\n (ctx: CanvasRenderingContext2D) => {\n const nodes = getNodes();\n if (!nodes || nodes.length === 0) return;\n\n ctx.globalAlpha = 1.0;\n // Малюємо всі вузли\n nodes.forEach((node) => {\n const { x, y, color: nodeColor, fontColor, label } = node;\n const isHighlighted =\n stateRef.current.highlightNodes.has(node) ||\n node === stateRef.current.hoveredNode ||\n node === stateRef.current.draggedNode;\n const isSelected = node === stateRef.current.selectedNode;\n\n // Розмір та позиція вузла\n const size = config.nodeSizeBase;\n const radius = isSelected ? config.nodeSizeBase / 2 : config.nodeSizeBase / 2;\n\n // Якщо вузол виділено, малюємо кільце підсвічування\n if (isHighlighted && !isSelected) {\n const ringRadius = (config.nodeSizeBase * config.nodeAreaFactor * 0.75) / 2;\n\n ctx.beginPath();\n ctx.arc(x as number, y as number, ringRadius, 0, 2 * Math.PI, false);\n ctx.fillStyle = theme.graph2D.ring.highlightFill;\n ctx.fill();\n }\n\n // Якщо вузол обрано, малюємо кільце вибору та кнопки\n if (isSelected) {\n // Малюємо кнопки навколо обраного вузла, якщо кнопки доступні\n if (buttons && buttons.length > 0) {\n renderNodeButtons(node, ctx);\n } else {\n const ringRadius = (config.nodeSizeBase * config.nodeAreaFactor) / 2;\n\n ctx.beginPath();\n ctx.arc(x as number, y as number, ringRadius, 0, 2 * Math.PI, false);\n ctx.fillStyle = theme.graph2D.ring.selectionFill || theme.graph2D.ring.highlightFill;\n ctx.fill();\n }\n }\n\n // Малюємо коло вузла\n ctx.beginPath();\n ctx.arc(x as number, y as number, radius, 0, 2 * Math.PI);\n ctx.fillStyle = nodeColor || color(node.group || '0');\n ctx.fill();\n\n // Малюємо мітку, якщо вона доступна\n if (label) {\n ctx.save();\n ctx.translate(x as number, y as number);\n\n const globalScale = stateRef.current.transform.k;\n const scaledFontSize = calculateFontSize(globalScale);\n const maxWidth = size * config.textPaddingFactor;\n\n ctx.font = `${scaledFontSize}px Sans-Serif`;\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n ctx.fillStyle = fontColor || '#000';\n\n const truncatedLabel = truncateText(label, maxWidth, ctx);\n ctx.fillText(truncatedLabel, 0, 0);\n\n ctx.restore();\n }\n });\n },\n [theme.graph2D.ring, buttons, renderNodeButtons]\n );\n\n // 2D Canvas rendering for everything\n const renderCanvas2D = useCallback(() => {\n const ctx = ctx2dRef.current;\n if (!ctx) return;\n\n // Отримуємо відношення пікселів пристрою для коректного рендерингу\n\n // Очищуємо весь канвас перед новим рендерингом.\n ctx.clearRect(0, 0, stateRef.current.width, stateRef.current.height);\n\n // Спочатку відображаємо сітку (фон)\n renderGrid(ctx);\n\n // Застосовуємо трансформацію (масштабування та панорамування) - використовуємо матричну трансформацію для кращої продуктивності\n ctx.save();\n\n // Спочатку переміщуємо до позиції панорамування, потім масштабуємо навколо цієї точки\n ctx.setTransform(\n stateRef.current.transform.k,\n 0,\n 0,\n stateRef.current.transform.k,\n stateRef.current.transform.x,\n stateRef.current.transform.y\n );\n\n // Відображаємо зв'язки та вузли\n renderLinks(ctx);\n renderNodes(ctx);\n\n // Відновлюємо контекст\n ctx.restore();\n }, [renderLinks, renderNodes, renderGrid]);\n\n /**\n * Функція для додавання нових вузлів до графа з опціональною плавною анімацією появи\n * @param newNodes Нові вузли для додавання до графа\n * @param newLinks Опціональні нові зв'язки для додавання з вузлами\n * @param options Параметри конфігурації для додавання вузлів\n */\n const addNodes = useCallback(\n (\n newNodes: NodeObject[],\n newLinks: LinkObject[] = [],\n options?: {\n smoothAppearance?: boolean;\n transitionDuration?: number;\n }\n ) => {\n const links = getLinks() || [];\n const nodes = getNodes() || [];\n if (!simulationRef.current || !newNodes.length) return;\n\n const { width: canvasWidth, height: canvasHeight } = stateRef.current; // Опції по умолчанню\n const smoothAppearance = options?.smoothAppearance ?? false;\n const transitionDuration = options?.transitionDuration ?? 1000; // 1 секунда по умолчанню\n\n // Обробляємо нові вузли, щоб уникнути дублікатів\n const existingNodeIds = new Set(nodes.map((node) => node.id));\n const filteredNewNodes = newNodes.filter((node) => !existingNodeIds.has(node.id));\n\n // Обробляємо нові зв'язки, щоб уникнути дублікатів та переконатися, що вони посилаються на дійсні вузли\n const existingLinkIds = new Set(\n links.map(\n (link) =>\n `${typeof link.source === 'object' ? link.source.id : link.source}-${\n typeof link.target === 'object' ? link.target.id : link.target\n }`\n )\n );\n\n const filteredNewLinks = newLinks.filter((link) => {\n const linkId = `${typeof link.source === 'object' ? link.source.id : link.source}-${\n typeof link.target === 'object' ? link.target.id : link.target\n }`;\n return !existingLinkIds.has(linkId);\n });\n\n if (filteredNewNodes.length === 0 && filteredNewLinks.length === 0) return;\n\n const updatedNodes = [...nodes, ...filteredNewNodes];\n const updatedLinks = [...links, ...filteredNewLinks];\n\n // Попереднє позиціонування нових вузлів тільки коли плавна поява увімкнена\n if (smoothAppearance) {\n // Попередньо позиціонуємо нові вузли біля підключених вузлів\n filteredNewNodes.forEach((node) => {\n // Перевіряємо, чи є зв'язки, що поєднують цей вузол з існуючими вузлами\n const connectedLinks = filteredNewLinks.filter((link) => {\n const sourceId = typeof link.source === 'object' ? link.source.id : link.source;\n const targetId = typeof link.target === 'object' ? link.target.id : link.target;\n return (\n (sourceId === node.id && existingNodeIds.has(targetId)) ||\n (targetId === node.id && existingNodeIds.has(sourceId))\n );\n });\n\n if (connectedLinks.length > 0) {\n // Знаходимо існуючий підключений вузол для розташування поряд\n const someLink = connectedLinks[0];\n const connectedNodeId =\n typeof someLink.source === 'object'\n ? someLink.source.id === node.id\n ? someLink.target\n : someLink.source.id\n : someLink.source === node.id\n ? someLink.target\n : someLink.source;\n\n const connectedNode = updatedNodes.find((n) => n.id === connectedNodeId);\n\n if (connectedNode && connectedNode.x !== undefined && connectedNode.y !== undefined) {\n // Розташовуємо новий вузол біля підключеного вузла з невеликою рандомізацією\n const randomOffset = 30 + Math.random() * 20;\n const randomAngle = Math.random() * Math.PI * 2;\n\n // Встановлюємо початкову позицію\n node.x = connectedNode.x + Math.cos(randomAngle) * randomOffset;\n node.y = connectedNode.y + Math.sin(randomAngle) * randomOffset;\n\n // Встановлюємо початкову швидкість в нуль для плавнішої появи\n node.vx = 0;\n node.vy = 0;\n }\n } else {\n // Для непідключених вузлів розміщуємо їх у полі зору у випадкових позиціях\n const centerX = canvasWidth / 2;\n const centerY = canvasHeight / 2;\n const radius = Math.min(canvasWidth, canvasHeight) / 4;\n const angle = Math.random() * Math.PI * 2;\n\n node.x = centerX + Math.cos(angle) * (radius * Math.random());\n node.y = centerY + Math.sin(angle) * (radius * Math.random());\n node.vx = 0;\n node.vy = 0;\n }\n });\n\n // Фіксуємо позиції існуючих вузлів, щоб запобігти їхньому руху\n nodes.forEach((node) => {\n node.fx = node.x;\n node.fy = node.y;\n });\n }\n\n // Оновлюємо симуляцію з новими вузлами та зв'язками\n simulationRef.current.nodes(updatedNodes);\n\n // Отримуємо силу зв'язків із правильним типом\n const linkForce = simulationRef.current.force('link') as ForceLink<NodeObject, LinkObject>;\n if (linkForce) {\n linkForce.links(updatedLinks);\n }\n\n // Підключаємо нові вузли до їхніх сусідів та зв'язків\n filteredNewLinks.forEach((link: any) => {\n const source =\n typeof link.source === 'object' ? link.source : updatedNodes.find((n: any) => n.id === link.source);\n const target =\n typeof link.target === 'object' ? link.target : updatedNodes.find((n: any) => n.id === link.target);\n\n if (!source || !target) return;\n\n // Ініціалізуємо масиви, якщо вони не існують\n !source.neighbors && (source.neighbors = []);\n !target.neighbors && (target.neighbors = []);\n source.neighbors.push(target);\n target.neighbors.push(source);\n\n !source.links && (source.links = []);\n !target.links && (target.links = []);\n source.links.push(link);\n target.links.push(link);\n });\n\n if (smoothAppearance) {\n // Налаштовуємо симуляцію для плавної появи нових вузлів\n simulationRef.current.alphaTarget(0.3);\n simulationRef.current.alpha(0.3);\n simulationRef.current.velocityDecay(0.7); // Більше загасання для плавнішого руху\n simulationRef.current.restart();\n\n // Через короткий час відфіксовуємо всі вузли та скидаємо параметри симуляції\n setTimeout(() => {\n // Звільняємо існуючі вузли, щоб дозволити їм природний рух\n nodes.forEach((node) => {\n node.fx = undefined;\n node.fy = undefined;\n });\n\n // Скидаємо симуляцію до нормальних налаштувань\n simulationRef.current?.alphaTarget(0);\n simulationRef.current?.alpha(0.1);\n simulationRef.current?.velocityDecay(0.6); // Скидаємо до значення за замовчуванням\n }, transitionDuration);\n } else {\n // Стандартний перезапуск з низькою енергією для мінімального руху\n simulationRef.current.alpha(0.1).restart();\n }\n\n // Перемальовуємо канвас\n renderCanvas2D();\n },\n [nodes, renderCanvas2D]\n );\n\n /**\n * Функція для видалення вузлів з графа з опціональною плавною анімацією зникнення\n * @param nodeIds Масив ID вузлів для видалення\n * @param options Параметри конфігурації для видалення вузлів\n */\n const removeNodes = useCallback(\n (nodeIds: (string | number)[]) => {\n const nodes = getNodes();\n const links = getLinks();\n if (!simulationRef.current || !nodeIds.length || !nodes || nodes.length === 0 || !links || links.length === 0)\n return;\n\n // Створюємо набір ID вузлів для швидкого пошуку\n const nodeIdsToRemove = new Set(nodeIds);\n\n // Спочатку перевіряємо, чи видаляємо який-небудь виділений/наведений вузол\n if (\n stateRef.current.selectedNode &&\n stateRef.current.selectedNode.id !== undefined &&\n nodeIdsToRemove.has(stateRef.current.selectedNode.id)\n ) {\n stateRef.current.selectedNode = null;\n }\n\n if (\n stateRef.current.hoveredNode &&\n stateRef.current.hoveredNode.id !== undefined &&\n nodeIdsToRemove.has(stateRef.current.hoveredNode.id)\n ) {\n stateRef.current.hoveredNode = null;\n stateRef.current.highlightNodes = new Set<NodeObject>();\n stateRef.current.highlightLinks = new Set<any>();\n }\n\n // Clear hoveredLink if it involves removed nodes\n if (stateRef.current.hoveredLink) {\n const source =\n typeof stateRef.current.hoveredLink.source === 'object'\n ? stateRef.current.hoveredLink.source.id\n : stateRef.current.hoveredLink.source;\n const target =\n typeof stateRef.current.hoveredLink.target === 'object'\n ? stateRef.current.hoveredLink.target.id\n : stateRef.current.hoveredLink.target;\n\n if (\n (source !== undefined && nodeIdsToRemove.has(source)) ||\n (target !== undefined && nodeIdsToRemove.has(target))\n ) {\n stateRef.current.hoveredLink = null;\n stateRef.current.highlightNodes = new Set<NodeObject>();\n stateRef.current.highlightLinks = new Set<any>();\n }\n }\n\n if (\n stateRef.current.draggedNode &&\n stateRef.current.draggedNode.id !== undefined &&\n nodeIdsToRemove.has(stateRef.current.draggedNode.id)\n ) {\n stateRef.current.draggedNode = null;\n }\n\n // Отримуємо всі вузли, які залишаться після видалення\n const remainingNodes = nodes.filter((node) => node.id !== undefined && !nodeIdsToRemove.has(node.id));\n\n // Отримуємо всі зв'язки, які не підключаються до видалених вузлів\n const remainingLinks = links.filter((link) => {\n const sourceId = typeof link.source === 'object' ? link.source.id : link.source;\n const targetId = typeof link.target === 'object' ? link.target.id : link.target;\n\n return (\n sourceId !== undefined &&\n !nodeIdsToRemove.has(sourceId) &&\n targetId !== undefined &&\n !nodeIdsToRemove.has(targetId)\n );\n });\n\n // Перебудовуємо відносини вузлів (сусіди та зв'язки) для вузлів, що залишилися\n // Спочатку очищаємо існуючі відносини\n remainingNodes.forEach((node) => {\n node.neighbors = [];\n node.links = [];\n });\n\n // Потім перебудовуємо на основі зв'язків, що залишилися\n remainingLinks.forEach((link: any) => {\n const source =\n typeof link.source === 'object' ? link.source : remainingNodes.find((n: any) => n.id === link.source);\n const target =\n typeof link.target === 'object' ? link.target : remainingNodes.find((n: any) => n.id === link.target);\n\n if (!source || !target) return;\n\n // Додаємо до масивів сусідів\n source.neighbors = source.neighbors || [];\n target.neighbors = target.neighbors || [];\n source.neighbors.push(target);\n target.neighbors.push(source);\n\n // Додаємо до масивів зв'язків\n source.links = source.links || [];\n target.links = target.links || [];\n source.links.push(link);\n target.links.push(link);\n });\n\n // Оновлюємо симуляцію з відфільтрованими вузлами та зв'язками\n // але не змінюємо їхні позиції\n simulationRef.current.nodes(remainingNodes);\n\n // Отримуємо та оновлюємо силу зв'язків\n const linkForce = simulationRef.current.force('link') as ForceLink<NodeObject, LinkObject>;\n if (linkForce) {\n linkForce.links(remainingLinks);\n }\n\n // Просто перемальовуємо canvas з новими даними\n renderCanvas2D();\n },\n [renderCanvas2D]\n );\n // Функція для масштабування, щоб усі вузли помістилися в полі зору з відступами\n const zoomToFit = useCallback((duration: number = 0, padding: number = 20) => {\n const nodes = getNodes();\n const ctx = ctx2dRef.current;\n if (!ctx || !canvasRef.current || !nodes || !nodes.length) return;\n\n // Знаходимо межі всіх вузлів\n let minX = Infinity,\n minY = Infinity;\n let maxX = -Infinity,\n maxY = -Infinity;\n\n // Розраховуємо область, що містить усі вузли\n nodes.forEach((node) => {\n if (node.x === undefined || node.y === undefined) return;\n\n const x = node.x;\n const y = node.y;\n\n // Оновлюємо мін/макс координати\n minX = Math.min(minX, x);\n minY = Math.min(minY, y);\n maxX = Math.max(maxX, x);\n maxY = Math.max(maxY, y);\n });\n\n // Якщо у нас валідні межі\n if (isFinite(minX) && isFinite(maxX) && isFinite(minY) && isFinite(maxY)) {\n // Розраховуємо необхідний масштаб, щоб вмістити всі вузли\n const { width: canvasWidth, height: canvasHeight } = stateRef.current;\n\n // Додаємо відступи до області\n minX -= padding;\n minY -= padding;\n maxX += padding;\n maxY += padding;\n\n // Розраховуємо ширину та висоту вмісту\n const contentWidth = maxX - minX;\n const contentHeight = maxY - minY;\n\n // Розраховуємо масштаб, необхідний для розміщення вмісту\n const scaleX = contentWidth > 0 ? canvasWidth / contentWidth : 1;\n const scaleY = contentHeight > 0 ? canvasHeight / contentHeight : 1;\n const scale = Math.min(scaleX, scaleY, 10); // Обмежуємо масштаб до 10x\n\n // Розраховуємо центр вмісту\n const centerX = minX + contentWidth / 2;\n const centerY = minY + contentHeight / 2;\n\n // Розраховуємо нову трансформацію для правильного центрування та масштабування\n const newTransform = {\n k: scale,\n x: canvasWidth / 2 - centerX * scale,\n y: canvasHeight / 2 - centerY * scale,\n };\n\n if (duration > 0) {\n // Анімуємо перехід, якщо вказана тривалість\n const startTransform = { ...stateRef.current.transform };\n const startTime = Date.now();\n\n const animateZoom = () => {\n const t = Math.min(1, (Date.now() - startTime) / duration);\n\n // Використовуємо функцію пом'якшення для плавнішого переходу\n const easedT = t === 1 ? 1 : 1 - Math.pow(1 - t, 3); // Кубічне пом'якшення\n\n // Інтерполюємо між початковою та кінцевою трансформаціями\n const interpolatedTransform = {\n k: startTransform.k + (newTransform.k - startTransform.k) * easedT,\n x: startTransform.x + (newTransform.x - startTransform.x) * easedT,\n y: startTransform.y + (newTransform.y - startTransform.y) * easedT,\n };\n\n stateRef.current.transform = interpolatedTransform;\n renderCanvas2D();\n if (t < 1) {\n requestAnimationFrame(animateZoom);\n }\n };\n\n requestAnimationFrame(animateZoom);\n } else {\n // Застосовуємо трансформацію негайно, якщо немає тривалості\n stateRef.current.transform = newTransform;\n renderCanvas2D();\n }\n }\n }, []);\n\n // Знаходимо вузол за вказаними координатами\n const getNodeAtPosition = useCallback((x: number, y: number): NodeObject | null => {\n const nodes = getNodes();\n if (!nodes || nodes.length === 0) return null;\n\n // Знаходимо будь-який вузол у межах радіусу від вказівника (з урахуванням розміру вузла)\n const nodeRadius = config.nodeSizeBase / 2;\n\n // Масштабуємо координати на основі коефіцієнту щільності пікселів пристрою та застосовуємо зворотну трансформацію\n const pixelRatio = window.devicePixelRatio || 1;\n // Застосовуємо зворотну трансформацію, щоб отримати координати в системі координат графа\n const scaledX = (x * pixelRatio - stateRef.current.transform.x) / stateRef.current.transform.k;\n const scaledY = (y * pixelRatio - stateRef.current.transform.y) / stateRef.current.transform.k;\n\n return (\n nodes.find((node) => {\n const dx = (node.x || 0) - scaledX;\n const dy = (node.y || 0) - scaledY;\n return Math.sqrt(dx * dx + dy * dy) <= nodeRadius;\n }) || null\n );\n }, []);\n\n // Знаходимо лінк за вказаними координатами\n const getLinkAtPosition = useCallback((x: number, y: number): LinkObject | null => {\n const links = getLinks();\n const nodes = getNodes();\n if (!links || links.length === 0 || !nodes || nodes.length === 0) return null;\n\n // Масштабуємо координати на основі коефіцієнту щільності пікселів пристрою та застосовуємо зворотну трансформацію\n const pixelRatio = window.devicePixelRatio || 1;\n // Застосовуємо зворотну трансформацію, щоб отримати координати в системі координат графа\n const scaledX = (x * pixelRatio - stateRef.current.transform.x) / stateRef.current.transform.k;\n const scaledY = (y * pixelRatio - stateRef.current.transform.y) / stateRef.current.transform.k;\n\n // Пороговая відстань для визначення кліку по лінку\n const threshold = 5;\n\n return (\n links.find((link) => {\n const source = typeof link.source === 'object' ? link.source : nodes.find((n) => n.id === link.source);\n const target = typeof link.target === 'object' ? link.target : nodes.find((n) => n.id === link.target);\n\n if (!source || !target) return false;\n\n const sourceX = source.x || 0;\n const sourceY = source.y || 0;\n const targetX = target.x || 0;\n const targetY = target.y || 0;\n\n // Вычисляем расстояние от точки до линии\n const A = scaledX - sourceX;\n const B = scaledY - sourceY;\n const C = targetX - sourceX;\n const D = targetY - sourceY;\n\n const dot = A * C + B * D;\n const lenSq = C * C + D * D;\n\n if (lenSq === 0) return false; // Линия нулевой длины\n\n let param = dot / lenSq;\n param = Math.max(0, Math.min(1, param)); // Ограничиваем параметр отрезком [0, 1]\n\n const xx = sourceX + param * C;\n const yy = sourceY + param * D;\n\n const dx = scaledX - xx;\n const dy = scaledY - yy;\n const distance = Math.sqrt(dx * dx + dy * dy);\n\n return distance <= threshold;\n }) || null\n );\n }, []);\n\n // Допоміжна функція для перевірки, чи знаходиться точка всередині сектора кнопки\n const isPointInButtonSector = useCallback(\n (\n mouseX: number,\n mouseY: number,\n nodeX: number,\n nodeY: number,\n radius: number,\n startAngle: number,\n endAngle: number\n ): boolean => {\n // Розраховуємо відстань від центру вузла до точки миші\n const dx = mouseX - nodeX;\n const dy = mouseY - nodeY;\n const distance = Math.sqrt(dx * dx + dy * dy);\n\n // Розраховуємо кут між точкою та горизонтальною віссю\n let angle = Math.atan2(dy, dx);\n if (angle < 0) angle += 2 * Math.PI; // Конвертуємо в діапазон [0, 2π]\n\n // Розширюємо діапазон радіусу для зручнішої взаємодії з кнопками\n const minRadiusRatio = 0.5;\n const maxRadiusRatio = 1;\n const isInRadius = distance >= radius * minRadiusRatio && distance <= radius * maxRadiusRatio;\n\n // Перевіряємо, чи кут знаходиться в межах сектора\n let isInAngle = false;\n\n // Верхнє півколо: від Math.PI до Math.PI * 2\n if (startAngle === Math.PI && endAngle === Math.PI * 2) {\n isInAngle = angle >= Math.PI && angle <= Math.PI * 2;\n }\n // Нижнє півколо: від 0 до Math.PI\n else if (startAngle === 0 && endAngle === Math.PI) {\n isInAngle = angle >= 0 && angle <= Math.PI;\n }\n // Загальний випадок для довільних секторів\n else {\n isInAngle =\n (startAngle <= endAngle && angle >= startAngle && angle <= endAngle) ||\n (startAngle > endAngle && (angle >= startAngle || angle <= endAngle));\n }\n\n return isInRadius && isInAngle;\n },\n []\n );\n\n // Обробка наведення на вузол (подібно до Graph2D handleNodeHover)\n const handleNodeHover = useCallback(\n (node: NodeObject | null) => {\n // Перевіряємо, чи вузол той самий, що і останній вузол, на який наводили\n if (node === stateRef.current.lastHoveredNodeRef) {\n return; // Пропускаємо обробку, якщо це той самий вузол\n }\n\n // Оновлюємо посилання на останній наведений вузол\n stateRef.current.lastHoveredNodeRef = node;\n\n const newHighlightNodes = new Set<NodeObject>();\n const newHighlightLinks = new Set<any>();\n\n if (node) {\n newHighlightNodes.add(node);\n\n // Додаємо сусідні вузли та зв'язки до підсвічування\n if (node.neighbors) {\n node.neighbors.forEach((neighbor: any) => newHighlightNodes.add(neighbor));\n }\n\n if (node.links) {\n node.links.forEach((link: any) => newHighlightLinks.add(link));\n }\n }\n\n stateRef.current.hoveredNode = node;\n if (onNodeHover) onNodeHover(node);\n stateRef.current.highlightNodes = newHighlightNodes;\n stateRef.current.highlightLinks = newHighlightLinks;\n },\n [onNodeHover]\n );\n\n // Обробка наведення на лінк\n const handleLinkHover = useCallback(\n (link: LinkObject | null) => {\n // Перевіряємо, чи лінк той самий, що і останній лінк, на який наводили\n if (link === stateRef.current.hoveredLink) {\n return; // Пропускаємо обробку, якщо це той самий лінк\n }\n\n const newHighlightNodes = new Set<NodeObject>();\n const newHighlightLinks = new Set<any>();\n\n if (link) {\n // Підсвічуємо сам лінк\n newHighlightLinks.add(link);\n\n // Підсвічуємо пов'язані вузли\n const nodes = getNodes();\n if (nodes) {\n const source = typeof link.source === 'object' ? link.source : nodes.find((n) => n.id === link.source);\n const target = typeof link.target === 'object' ? link.target : nodes.find((n) => n.id === link.target);\n\n if (source) newHighlightNodes.add(source);\n if (target) newHighlightNodes.add(target);\n }\n }\n\n stateRef.current.hoveredLink = link;\n if (onLinkHover) onLinkHover(link);\n stateRef.current.highlightNodes = newHighlightNodes;\n stateRef.current.highlightLinks = newHighlightLinks;\n },\n [onLinkHover, getNodes]\n );\n\n // Обробка кліку на лінк\n const handleLinkClick = useCallback(\n (link: LinkObject) => {\n if (onLinkClick) onLinkClick(link);\n },\n [onLinkClick]\n );\n\n // Обробка кліку на вузол\n const handleNodeClick = useCallback(\n (node: NodeObject) => {\n stateRef.current.selectedNode = node;\n if (onNodeClick) onNodeClick(node);\n },\n [onNodeClick]\n );\n\n // Обробка кліку на фон\n const handleBackgroundClick = useCallback(() => {\n stateRef.current.selectedNode = null;\n if (onBackgroundClick) onBackgroundClick();\n }, [onBackgroundClick]); // Перетягування тепер обробляється через stateRef для покращення продуктивності\n\n const handleMouseDown = useCallback(\n (event: React.MouseEvent<HTMLCanvasElement>) => {\n if (!canvasRef.current || !simulationRef.current) return;\n\n // Отримуємо координати відносно полотна\n const rect = canvasRef.current.getBoundingClientRect();\n const x = event.clientX - rect.left;\n const y = event.clientY - rect.top;\n\n // Зберігаємо початкові координати для подальшого відстеження перетягування\n stateRef.current.mouseStartPos = { x, y };\n stateRef.current.isDragging = false;\n\n // Намагаємося знайти вузол у позиції курсора - обробимо клік при mouseUp, якщо не відбувається перетягування\n const node = getNodeAtPosition(x, y);\n if (node) {\n // Встановлюємо як потенційно перетягуваний, але не активуємо симуляцію поки що\n stateRef.current.draggedNode = node;\n\n // Тимчасово фіксуємо позицію вузла\n node.fx = node.x;\n node.fy = node.y;\n } else {\n // Якщо не клікнули на вузол, починаємо панорамування\n stateRef.current.isPanning = true;\n stateRef.current.lastMousePos = { x, y };\n }\n },\n [getNodeAtPosition]\n );\n\n // Обробка руху миші для перетягування та наведення\n const handleMouseMove = useCallback(\n (event: React.MouseEvent<HTMLCanvasElement>) => {\n if (!canvasRef.current) return;\n\n // Отримуємо координати відносно полотна\n const rect = canvasRef.current.getBoundingClientRect();\n const x = event.clientX - rect.left;\n const y = event.clientY - rect.top;\n\n // Перевіряємо чи почалось перетягування\n if (stateRef.current.draggedNode && stateRef.current.mouseStartPos && simulationRef.current) {\n const startX = stateRef.current.mouseStartPos.x;\n const startY = stateRef.current.mouseStartPos.y;\n\n // Визначаємо відстань переміщення для виявлення факту перетягування\n const dx = x - startX;\n const dy = y - startY;\n const dragDistance = Math.sqrt(dx * dx + dy * dy);\n\n // Якщо відстань досить велика - це перетягування, а не просто клік\n const dragThreshold = 3; // поріг у пікселях\n\n if (dragDistance > dragThreshold) {\n // Це точно операція перетягування, а не просто клік\n stateRef.current.isDragging = true;\n\n // Якщо це перше виявлення перетягування, налаштовуємо симуляцію\n if (simulationRef.current.alphaTarget() === 0) {\n // Встановлюємо alphaTarget на значення, що базується на розмірі вузла для відповідної інтенсивності руху\n const alphaValue = 0;\n simulationRef.current.alphaTarget(alphaValue).restart();\n\n // // Регулюємо швидкість загасання для кращої стабільності під час перетягування\n // const decayValue = 0.2;\n // simulationRef.current.velocityDecay(decayValue);\n }\n }\n\n // Масштабуємо координати на основі співвідношення пікселів пристрою та поточної трансформації\n const pixelRatio = window.devicePixelRatio || 1;\n\n // Застосовуємо зворотну трансформацію, щоб отримати координати у просторі графа\n const scaledX = (x * pixelRatio - stateRef.current.transform.x) / stateRef.current.transform.k;\n const scaledY = (y * pixelRatio - stateRef.current.transform.y) / stateRef.current.transform.k;\n\n // Оновлюємо фіксовані позиції перетягуваного вузла з плавністю\n stateRef.current.draggedNode.fx = scaledX;\n stateRef.current.draggedNode.fy = scaledY;\n\n // if (stateRef.current.isDragging) {\n // // Зменшуємо енергію симуляції під час перетягування для стабільності\n // simulationRef.current.alpha(0); // Зменшуємо енергію системи\n // }\n\n // Немає потреби перевіряти наведення під час перетягування\n return;\n }\n\n // Обробка панорамування\n if (stateRef.current.isPanning && stateRef.current.mouseStartPos) {\n const dx = x - stateRef.current.lastMousePos.x;\n const dy = y - stateRef.current.lastMousePos.y;\n\n // Обчислюємо загальну відстань, пройдену під час панорамування\n const startX = stateRef.current.mouseStartPos.x;\n const startY = stateRef.current.mouseStartPos.y;\n const panDistance = Math.sqrt(Math.pow(x - startX, 2) + Math.pow(y - startY, 2));\n\n // Використовуємо ту ж саму логіку і поріг відстані як і для перетягування вузла\n const panThreshold = 3; // Той самий поріг як і для перетягування вузла\n if (panDistance > panThreshold) {\n // Це точно панорамування, а не просто клік\n stateRef.current.isDragging = true;\n }\n\n // Оновлюємо трансформацію безпосередньо у stateRef\n stateRef.current.transform = {\n ...stateRef.current.transform,\n x: stateRef.current.transform.x + dx,\n y: stateRef.current.transform.y + dy,\n };\n\n stateRef.current.lastMousePos = { x, y };\n renderCanvas2D(); // Перемальовуємо полотно після панорамування\n return;\n }\n\n let shouldRender;\n let hoveredNode;\n\n // Логіка виявлення наведення на кнопки\n if (stateRef.current.selectedNode && canvasRef.current && buttonImages.length > 0) {\n const buttonRadius = (config.nodeSizeBase * config.nodeAreaFactor) / 2;\n\n // Масштабуємо координати відносно розміру відображення полотна\n const canvasScaleX = canvasRef.current.width / rect.width;\n const canvasScaleY = canvasRef.current.height / rect.height;\n\n // Масштабовані координати миші в системі координат полотна\n const scaledMouseX = x * canvasScaleX;\n const scaledMouseY = y * canvasScaleY;\n\n // Застосовуємо поточну трансформацію для отримання світових координат\n const worldX = (scaledMouseX - stateRef.current.transform.x) / stateRef.current.transform.k;\n const worldY = (scaledMouseY - stateRef.current.transform.y) / stateRef.current.transform.k;\n\n // Node position\n const nodeX = stateRef.current.selectedNode.x || 0;\n const nodeY = stateRef.current.selectedNode.y || 0;\n\n // Обчислюємо кількість кнопок та їхні сектори\n const buttonCount = Math.min(buttonImages.length, 8);\n const sectorAngle = Math.min((Math.PI * 2) / buttonCount, Math.PI);\n\n let hoveredIndex = null;\n\n // Перевіряємо, чи вказівник миші знаходиться над будь-яким сектором кнопок\n for (let i = 0; i < buttonCount; i++) {\n const startAngle = i * sectorAngle;\n const endAngle = (i + 1) * sectorAngle;\n\n if (isPointInButtonSector(worldX, worldY, nodeX, nodeY, buttonRadius, startAngle, endAngle)) {\n hoveredIndex = i;\n break;\n }\n }\n if (hoveredIndex !== null) hoveredNode = stateRef.current.selectedNode; // Set hoveredNode to selectedNode for further processing\n if (hoveredIndex !== stateRef.current.hoveredButtonIndex) {\n shouldRender = true; // Only render if hovered button index has changed\n }\n stateRef.current.hoveredButtonIndex = hoveredIndex;\n } else {\n if (stateRef.current.hoveredButtonIndex !== null) stateRef.current.hoveredButtonIndex = null;\n }\n\n if (!hoveredNode) {\n // If no node is hovered, check for link hover\n hoveredNode = getNodeAtPosition(x, y);\n\n // If no node is hovered, check for link hover\n if (!hoveredNode) {\n const hoveredLink = getLinkAtPosition(x, y);\n const shouldRenderLink = hoveredLink !== stateRef.current.hoveredLink;\n\n // Clear node hover state when hovering over a link\n if (hoveredLink && stateRef.current.hoveredNode) {\n handleNodeHover(null);\n }\n\n handleLinkHover(hoveredLink);\n\n // Update cursor style for links\n if (canvasRef.current) {\n canvasRef.current.style.cursor = hoveredLink ? 'pointer' : 'default';\n }\n\n if (shouldRenderLink) {\n renderCanvas2D();\n }\n return;\n }\n }\n\n // Clear link hover state when hovering over a node\n if (hoveredNode && stateRef.current.hoveredLink) {\n handleLinkHover(null);\n }\n\n if (hoveredNode !== stateRef.current.hoveredNode) shouldRender = true;\n\n handleNodeHover(hoveredNode);\n // Перевіряємо наведення та оновлюємо підсвічування\n\n // Змінюємо стиль курсору залежно від наведення\n if (canvasRef.current) {\n canvasRef.current.style.cursor = hoveredNode ? 'pointer' : 'default';\n }\n if (shouldRender) {\n renderCanvas2D(); // Перемальовуємо полотно після зміни наведення\n }\n },\n [\n buttonImages,\n getNodeAtPosition,\n getLinkAtPosition,\n handleNodeHover,\n handleLinkHover,\n renderCanvas2D,\n isPointInButtonSector,\n ]\n );\n\n const handleClick = useCallback((event: React.MouseEvent<HTMLCanvasElement>) => {\n if (stateRef.current.mustBeStoppedPropagation) {\n event.stopPropagation();\n event.preventDefault();\n }\n stateRef.current.mustBeStoppedPropagation = false;\n }, []);\n\n // Обробляємо відпускання кнопки миші для завершення перетягування\n const handleMouseUp = useCallback(\n (event: React.MouseEvent<HTMLCanvasElement>) => {\n const wasDragging = stateRef.current.isDragging;\n\n if (wasDragging) {\n stateRef.current.mustBeStoppedPropagation = true;\n }\n // Обробляємо кліки на вузли або кнопки тільки якщо ми не перетягували\n if (!wasDragging && stateRef.current.mouseStartPos) {\n const rect = canvasRef.current?.getBoundingClientRect();\n if (rect) {\n const x = event.clientX - rect.left;\n const y = event.clientY - rect.top;\n\n // Спочатку перевіряємо, чи ми клікаємо на кнопку обраного вузла\n let isButtonClick = false;\n if (\n stateRef.current.selectedNode &&\n stateRef.current.hoveredButtonIndex !== null &&\n buttons[stateRef.current.hoveredButtonIndex]\n ) {\n // This is a button click, trigger the button's onClick handler\n const button = buttons[stateRef.current.hoveredButtonIndex];\n if (button && button.onClick) {\n button.onClick(stateRef.current.selectedNode);\n isButtonClick = true;\n }\n }\n\n // If not a button click and we have a draggedNode (mouse was pressed on a node), trigger node click\n if (!isButtonClick && stateRef.current.draggedNode) {\n handleNodeClick(stateRef.current.draggedNode);\n } else if (!isButtonClick && !stateRef.current.draggedNode) {\n // Check if we clicked on a link\n const clickedLink = getLinkAtPosition(x, y);\n if (clickedLink) {\n handleLinkClick(clickedLink);\n } else {\n // If we didn't click on a node, button, or link, it's a background click\n // Only trigger background click if there was no dragging\n handleBackgroundClick();\n }\n }\n }\n }\n\n if (stateRef.current.draggedNode && simulationRef.current) {\n // Якщо відбулось реальне перетягування, оптимізуємо параметри симуляції\n if (wasDragging) {\n // Поступово зменшуємо енергію симуляції\n simulationRef.current.alphaTarget(0);\n\n // Оптимізуємо параметри симуляції для кращої стабілізації\n const alphaValue = 0.05; // Низька альфа для плавного затухання\n const alphaDecayValue = 0.04; // Помірний коефіцієнт затухання для швидшої зупинки\n const velocityDecayValue = 0.6; // Стандартний коефіцієнт загасання швидкості після перетягування\n\n simulationRef.current.alpha(alphaValue).alphaDecay(alphaDecayValue);\n simulationRef.current.velocityDecay(velocityDecayValue);\n } else {\n // Якщо це був просто клік, а не перетягування, негайно зупиняємо симуляцію\n simulationRef.current.alphaTarget(0);\n }\n\n // Звільняємо позицію вузла незалежно від того, чи його перетягували або клікали\n stateRef.current.draggedNode.fx = undefined;\n stateRef.current.draggedNode.fy = undefined;\n\n stateRef.current.draggedNode = null;\n }\n\n // Скидаємо всі стани перетягування\n stateRef.current.isDragging = false;\n stateRef.current.mouseStartPos = null;\n\n // End panning if active\n if (stateRef.current.isPanning) {\n stateRef.current.isPanning = false;\n }\n\n renderCanvas2D();\n },\n [buttons, renderCanvas2D, handleNodeClick, handleBackgroundClick, getLinkAtPosition, handleLinkClick]\n );\n\n // Обробляємо подію колеса миші для масштабування\n const handleWheel = useCallback(\n (event: WheelEvent) => {\n event.stopPropagation();\n event.preventDefault();\n\n if (!canvasRef.current) return;\n\n // Отримуємо координати відносно полотна\n const rect = canvasRef.current.getBoundingClientRect();\n const x = event.clientX - rect.left;\n const y = event.clientY - rect.top;\n\n // Обчислюємо коефіцієнт масштабування\n const delta = -event.deltaY;\n const scaleFactor = delta > 0 ? 1.1 : 1 / 1.1;\n\n // Обчислюємо нову трансформацію з масштабуванням навколо позиції миші\n const currentTransform = stateRef.current.transform;\n\n // Обмежуємо рівень масштабування (опціонально)\n const newScale = currentTransform.k * scaleFactor;\n\n if (newScale < 0.01 || newScale > 10) return;\n const newK = currentTransform.k * scaleFactor;\n\n // Обчислюємо нове переміщення для центрування масштабування на позиції миші\n const newX = x - (x - currentTransform.x) * scaleFactor;\n const newY = y - (y - currentTransform.y) * scaleFactor;\n\n // Update transform in stateRef\n stateRef.current.transform = {\n k: newK,\n x: newX,\n y: newY,\n };\n renderCanvas2D();\n },\n [renderCanvas2D]\n );\n\n useImperativeHandle(\n ref,\n () => ({\n zoomToFit,\n addNodes,\n removeNodes,\n }),\n [zoomToFit, addNodes, removeNodes]\n );\n\n useEffect(() => {\n // Initialize canvas context\n const canvasElement = canvasRef.current;\n const { width: canvasWidth, height: canvasHeight } = stateRef.current;\n if (!canvasElement) return;\n\n // Initialize Canvas 2D context\n init2DCanvas();\n setIsRendering(true);\n\n // Розрахунок центральної позиції з урахуванням розміру полотна\n const centerX = canvasWidth / 2;\n const centerY = canvasHeight / 2;\n\n // Ініціалізація силової симуляції D3\n const nodeSize = config.nodeSizeBase;\n const nodeRadius = nodeSize / 2;\n const linkDistance = nodeSize * 2.5; // Розрахунок відстані між зв'язками на основі розміру вузла\n\n if (simulationRef.current) simulationRef.current.stop();\n const simulation = (simulationRef.current = forceSimulation(nodes)\n .force(\n 'link',\n forceLink(links)\n .id((d: any) => d.id)\n .distance(linkDistance) // Адаптивна відстань між вузлами на основі розміру\n .strength(0.9) // Зменшуємо силу зв'язків (значення від 0 до 1)\n )\n .force(\n 'charge',\n forceManyBody()\n .strength((-nodeSize / 10) * 200) // Силу відштовхування на основі розміру вузла\n .theta(0.5) // Оптимізація для стабільності (0.5-1.0)\n .distanceMin(nodeSize * 2)\n )\n .force('x', forceX().strength(0.03)) // Слабка сила для стабілізації по осі X\n .force('y', forceY().strength(0.03)) // Слабка сила для стабілізації по осі Y\n .force('center', forceCenter(centerX, centerY).strength(0.05)) // Слабка сила центрування\n .force(\n 'collide',\n forceCollide()\n .radius(nodeRadius * 2) // Радіус колізії залежно від розміру вузла\n .iterations(2) // Більше ітерацій для кращого запобігання перекриття\n .strength(1) // Збільшуємо силу запобігання колізіям\n )\n .velocityDecay(0.6)); // Коефіцієнт затухання швидкості для зменшення \"тряски\"\n\n return () => {\n // Cleanup\n simulation.stop();\n };\n }, [nodes, links]);\n\n useLayoutEffect(() => {\n const canvasElement = canvasRef.current;\n if (!canvasElement) return;\n stateRef.current.width = width * RATIO;\n stateRef.current.height = height * RATIO;\n canvasElement.width = stateRef.current.width;\n canvasElement.height = stateRef.current.height;\n }, [width, height]);\n\n useEffect(() => {\n if (simulationRef.current) {\n const simulation = simulationRef.current;\n\n // Update node positions on each tick\n\n simulation.on('tick', () => {\n renderCanvas2D();\n });\n\n // When simulation ends, stop rendering indicator\n simulation.on('end', () => {\n // Render one last time\n\n if (isRendering) {\n zoomToFit(0, 20); // Zoom to fit after rendering\n setTimeout(() => {\n setIsRendering(false);\n }, 200);\n }\n });\n }\n\n if (!isRendering) {\n renderCanvas2D();\n }\n }, [nodes, links, isRendering, renderCanvas2D, zoomToFit]);\n\n // Set up node relationships (neighbors and links)\n useEffect(() => {\n if (!nodes || !links) return;\n\n // Connect nodes to their neighbors and links\n links.forEach((link: any) => {\n const source = typeof link.source === 'object' ? link.source : nodes.find((n: any) => n.id === link.source);\n const target = typeof link.target === 'object' ? link.target : nodes.find((n: any) => n.id === link.target);\n\n if (!source || !target) return;\n\n // Initialize arrays if they don't exist\n !source.neighbors && (source.neighbors = []);\n !target.neighbors && (target.neighbors = []);\n source.neighbors.push(target);\n target.neighbors.push(source);\n\n !source.links && (source.links = []);\n !target.links && (target.links = []);\n source.links.push(link);\n target.links.push(link);\n });\n }, [nodes, links]);\n\n // Initialize button images\n useEffect(() => {\n if (buttons && buttons.length > 0) {\n setButtonImages(prepareButtonImages(buttons));\n }\n }, [buttons]);\n\n // Add wheel event listener with passive: false\n useEffect(() => {\n const canvas = canvasRef.current;\n if (!canvas) return;\n\n // Add event listener with passive: false to allow preventDefault\n canvas.addEventListener('wheel', handleWheel, { passive: false });\n\n // Clean up when component unmounts\n return () => {\n canvas.removeEventListener('wheel', handleWheel);\n };\n }, [handleWheel]);\n\n return (\n <Wrapper>\n {(loading || isRendering) && <GraphLoader width={width} height={height} />}\n <Canvas\n ref={canvasRef}\n style={{ width, height, display: loading || isRendering ? 'none' : 'block' }}\n onMouseDown={handleMouseDown}\n onMouseMove={handleMouseMove}\n onMouseUp={handleMouseUp}\n onMouseLeave={handleMouseUp}\n onClick={handleClick}\n />\n </Wrapper>\n );\n }\n);\n\nconst Wrapper = styled.div`\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n min-width: 0;\n position: relative;\n`;\n\nconst Canvas = styled.canvas``;\n\n// Add display name for better debugging\nGraph2D.displayName = 'Graph2D';\n","import styled from 'styled-components';\nimport { pxToRem } from '../Theme';\n\ninterface FullscreenCardProps {\n children: any;\n className?: string;\n position: 'absolute' | 'fixed';\n isActive: boolean;\n top?: number;\n left?: number;\n right?: number;\n bottom?: number;\n}\n\nexport const FullscreenCard = ({\n isActive,\n position,\n top = 0,\n left = 0,\n right,\n bottom,\n ...props\n}: FullscreenCardProps) => {\n return (\n <StyledContainer\n $isActive={isActive}\n $position={position}\n $top={top}\n $left={left}\n $right={right}\n $bottom={bottom}\n {...props}\n />\n );\n};\n\nconst StyledContainer = styled.div<{\n $isActive: boolean;\n $top?: number;\n $left?: number;\n $right?: number;\n $bottom?: number;\n $position: 'absolute' | 'fixed';\n}>(\n ({ $isActive, $top, $left, $right, $bottom, $position, theme }) => `\n${\n $isActive\n ? `\n position: ${$position};\n z-index: 1000;\n ${$top ? `top: ${pxToRem($top, theme.baseSize)};` : ''}\n ${$left ? `left: ${pxToRem($left, theme.baseSize)};` : ''}\n ${$right ? `right: ${pxToRem($right, theme.baseSize)};` : ''}\n ${$bottom ? `bottom: ${pxToRem($bottom, theme.baseSize)};` : ''}\n `\n : ''\n}\n\n min-width: 0;\n `\n);\n"]}
|