@cyber-harbour/ui 1.0.48 → 1.0.49

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.
@@ -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/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/Sidebar/SidebarContext.tsx","../src/Core/Sidebar/Sidebar.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/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","convertPaletteToRem","obj","parentKey","result","key","value","prop","getButtonStyles","color","state","getButtonSizeStyles","size","getInputStyles","getTypographyStyles","getBreakpoint","hexToRgba","hex","alpha","r","g","b","zIndex","breakpoints","typography","lightThemePx","lightTheme","darkThemePx","darkTheme","ThemeProvider","children","mode","jsx","StyleSheetManager","shouldForwardProp","jsxs","ThemeProviderStyled","propName","target","marginStyles","css","props","createComponent","element","styled","getCss","styles","getIconStyles","ButtonTextContainer","StyledIconWrapper","StyledButton","$variant","$color","$size","$disabled","$fullWidth","$iconPosition","$iconVariant","sizes","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","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","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","useTheme","Popover","$hasBorder","ContextMenuDelimiter","useContextMenuControl","setIsOpen","useState","prev","Select","options","selected","handleSelect","placeholder","handleToggle","option","StyledWrapper","item","$selected","RowActionsMenu","closeMenu","toggleMenu","ContentWrapper","Input","forwardRef","error","append","prepend","multiline","ref","Group","InputGroup","TextAreaInput","IconWrapper","rows","autoResize","areaSize","setAreaSize","rowsRef","divRef","rowHeight","useEffect","height","EditableContainer","$align","$error","$placeholder","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","py","px","PageLayout","header","sidebar","StyledMain","$withHeader","$withSidebar","maxWidth","$maxWidth","LoaderWrapper","GraphLoader","ContentLoader","GraphLoader_default","prepareButtonImages","buttons","button","normalImg","hoverImg","config","Graph2D","loading","graphData","onNodeClick","onBackgroundClick","onNodeHover","isRendering","setIsRendering","hoveredNode","setHoveredNode","draggedNode","setDraggedNode","selectedNode","setSelectedNode","nodes","links","cloneDeep","hoveredButtonIndex","setHoveredButtonIndex","buttonImages","setButtonImages","highlightNodes","setHighlightNodes","highlightLinks","setHighlightLinks","transform","setTransform","isPanning","setIsPanning","lastMousePosRef","mustBeStoppedPropagation","canvasRef","simulationRef","lastHoveredNodeRef","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","pixelRatio","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","canvasElement","nodeSize","nodeRadius","linkDistance","simulation","forceSimulation","forceLink","d","forceManyBody","forceX","forceY","forceCenter","forceCollide","getNodeAtPosition","scaledX","scaledY","isPointInButtonSector","mouseX","mouseY","nodeX","nodeY","isInRadius","isInAngle","handleNodeHover","newHighlightNodes","newHighlightLinks","neighbor","handleNodeClick","handleBackgroundClick","mouseStartPosRef","isDraggingRef","handleMouseDown","event","rect","handleMouseMove","startX","startY","canvasScaleX","canvasScaleY","scaledMouseX","scaledMouseY","worldX","worldY","hoveredIndex","handleClick","handleMouseUp","wasDragging","isButtonClick","alphaValue","alphaDecayValue","velocityDecayValue","handleWheel","scaleFactor","newScale","newK","newX","newY","useImperativeHandle","canvas","Wrapper","Canvas","FullscreenCard","isActive","position","top","left","right","bottom","$isActive","$top","$left","$right","$bottom","$position"],"mappings":"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","file":"index.mjs","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} 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\nconst StyledButton = styled(createComponent('button'))<{\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 ${({ $variant, $color, $size, $disabled, $fullWidth, $iconPosition, $iconVariant, theme, ...props }) => {\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 ${\n $variant !== 'empty'\n ? `\n ${!props.py ? `padding-block: ${sizes.paddingBlock};` : ''}\n ${!props.px ? `padding-inline: ${sizes.paddingInline};` : ''}\n `\n : ''\n }\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`;\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 * 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: '#FF3B30',\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 },\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 },\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 },\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 },\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 },\n },\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: '#FF3B30',\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 },\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 },\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 },\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 },\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 },\n },\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, WebTarget } from 'styled-components';\n\ntype MarginProps = {\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 & MarginProps;\n\nconst marginStyles = css<FabricComponent>((props) => {\n return `\n ${props.m ? `margin: ${typeof props.m === 'number' ? `${props.m}px` : props.m};` : ''}\n ${props.mt ? `margin-top: ${typeof props.mt === 'number' ? `${props.mt}px` : props.mt};` : ''}\n ${props.mr ? `margin-right: ${typeof props.mr === 'number' ? `${props.mr}px` : props.mr};` : ''}\n ${props.mb ? `margin-bottom: ${typeof props.mb === 'number' ? `${props.mb}px` : props.mb};` : ''}\n ${props.ml ? `margin-left: ${typeof props.ml === 'number' ? `${props.ml}px` : props.ml};` : ''}\n ${\n props.mx\n ? `margin-left: ${typeof props.mx === 'number' ? `${props.mx}px` : props.mx}; margin-right: ${\n typeof props.mx === 'number' ? `${props.mx}px` : props.mx\n };`\n : ''\n }\n ${\n props.my\n ? `margin-top: ${typeof props.my === 'number' ? `${props.my}px` : props.my}; margin-bottom: ${\n typeof props.my === 'number' ? `${props.my}px` : props.my\n };`\n : ''\n }\n ${props.p ? `padding: ${typeof props.p === 'number' ? `${props.p}px` : props.p};` : ''}\n ${props.pt ? `padding-top: ${typeof props.pt === 'number' ? `${props.pt}px` : props.pt};` : ''}\n ${props.pr ? `padding-right: ${typeof props.pr === 'number' ? `${props.pr}px` : props.pr};` : ''}\n ${props.pb ? `padding-bottom: ${typeof props.pb === 'number' ? `${props.pb}px` : props.pb};` : ''}\n ${props.pl ? `padding-left: ${typeof props.pl === 'number' ? `${props.pl}px` : props.pl};` : ''}\n ${\n props.px\n ? `padding-left: ${typeof props.px === 'number' ? `${props.px}px` : props.px}; padding-right: ${\n typeof props.px === 'number' ? `${props.px}px` : props.px\n };`\n : ''\n }\n ${\n props.py\n ? `padding-top: ${typeof props.py === 'number' ? `${props.py}px` : props.py}; padding-bottom: ${\n typeof props.py === 'number' ? `${props.py}px` : props.py\n };`\n : ''\n }\n\n `;\n});\n\nexport const createComponent = <T = object>(element: WebTarget) => {\n return styled(element)<FabricComponent<T>>`\n ${marginStyles};\n `;\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 width=\"17\" height=\"15\" 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 { 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 { 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 { 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\n// Create a styled component that can be dynamically rendered as different HTML elements\nconst StyledTypography = styled(createComponent('div'))<{\n $variant: TypographyVariant;\n $weight?: CSSProperties['fontWeight'];\n $style?: CSSProperties['fontStyle'];\n $color?: ColorVariant | string;\n $ellipsis?: boolean;\n}>(({ 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\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 >\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 <input 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 <textarea disabled={disabled} {...props} rows={areaSize} ref={ref} />\n <div\n ref={divRef}\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n height: 'auto',\n opacity: 0,\n zIndex: -1,\n pointerEvents: 'none',\n minHeight: rowHeight.current * Number(rows),\n wordBreak: 'break-word',\n whiteSpace: 'pre-wrap',\n }}\n >\n {props.value}\n </div>\n </div>\n );\n});\n\nconst InputGroup = styled.div<{ $size: InputSize; $variant?: InputVariant }>(\n ({ theme, $size, $variant = 'outlined' }) => `\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 & input, & textarea, & ${EditableContainer} {\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 & textarea {\n resize: none;\n margin: 0;\n display: block;\n }\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<{\n $align: 'flex-start' | 'center';\n $disabled: boolean;\n $error?: boolean;\n $size: InputSize;\n $variant: InputVariant;\n}>(\n ({ theme, $align = 'center', $disabled, $error, $size, $variant }) => `\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: ${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\nconst EditableContainer = styled.div<{ $placeholder?: string }>(\n ({ $placeholder, theme }) => `\n outline-style: none;\n outline-width: 0px;\n position: relative;\n\n ${\n $placeholder\n ? `\n &:after {\n content: '${$placeholder}';\n position: absolute;\n top: 0;\n left: 0;\n color: ${theme.input.outlined.default.placeholder};\n }\n `\n : ''\n }\n\n \n`\n);\n","import { CSSProperties, forwardRef } from 'react';\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 {\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 },\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 >\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 StyledFlexContainer = 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","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 { createComponent, FabricComponent } from '../../Theme';\nimport { styled } from 'styled-components';\n\ntype BoxProps = FabricComponent<\n {\n children: any;\n } & React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>\n>;\n\nexport const Box = ({ children, ...props }: BoxProps) => {\n return <StyledBox {...props}>{children}</StyledBox>;\n};\n\nconst StyledBox = styled(createComponent('div'))(\n ({ theme }) => `\n padding: ${theme.box.padding};\n border-radius: ${theme.box.borderRadius};\n background-color: ${theme.box.background};\n border-width: ${theme.box.border.width};\n border-style: ${theme.box.border.style};\n border-color: ${theme.box.border.color};\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 = styled(createComponent('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","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 { FabricComponent, createComponent, TagVariant, TagColor, hexToRgba } 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 StyledContainer = styled(createComponent<StyledProps>('div'))(\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 padding-block: 0;\n padding-inline: 0;\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 padding-block: ${py};\n 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 padding-right: ${px};\n padding-block: ${py};\n &:hover {\n color: ${hexToRgba(color, 0.7)};\n }\n }\n `;\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}\n\nexport const PageLayout = ({ children, header, sidebar }: PageLayoutProps) => {\n return (\n <StyledContainer $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, 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 = styled(createComponent<StyledContainerProps>('div'))(({ theme, $maxWidth }) => {\n return `\n padding-inline: ${pxToRem(20, theme.baseSize)};\n width: 100%;\n min-width: 0;\n max-width: ${typeof $maxWidth === 'number' ? pxToRem($maxWidth, theme.baseSize) : $maxWidth || '100%'};\n `;\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 { useCallback, useEffect, useRef, useState, forwardRef, useImperativeHandle, useMemo } from 'react';\nimport { Graph2DProps, LinkObject, NodeObject, Graph2DRef } 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\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 ({ loading, width, height, graphData, buttons = [], onNodeClick, onBackgroundClick, onNodeHover }, ref) => {\n const theme = useTheme();\n const [isRendering, setIsRendering] = useState(true);\n const [hoveredNode, setHoveredNode] = useState<NodeObject | null>(null);\n const [draggedNode, setDraggedNode] = useState<NodeObject | null>(null);\n const [selectedNode, setSelectedNode] = useState<NodeObject | null>(null);\n\n const { nodes, links } = useMemo(() => cloneDeep(graphData), [graphData]);\n\n // Стани кнопок\n const [hoveredButtonIndex, setHoveredButtonIndex] = useState<number | null>(null);\n const [buttonImages, setButtonImages] = useState<any[]>([]);\n\n // Стани виділення\n const [highlightNodes, setHighlightNodes] = useState(new Set());\n const [highlightLinks, setHighlightLinks] = useState(new Set());\n\n // Стан трансформації для масштабування та панорамування\n const [transform, setTransform] = useState({ x: 0, y: 0, k: 1 }); // x, y для переміщення, k для масштабу\n const [isPanning, setIsPanning] = useState(false);\n const lastMousePosRef = useRef({ x: 0, y: 0 });\n const mustBeStoppedPropagation = useRef(false);\n\n // Використання canvas замість SVG для кращої продуктивності\n const canvasRef = useRef<HTMLCanvasElement>(null);\n const simulationRef = useRef<Simulation<NodeObject, LinkObject> | null>(null);\n const lastHoveredNodeRef = useRef<NodeObject | 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 } = ctx.canvas;\n const gridSpacing = config.gridSpacing;\n const dotSize = config.dotSize;\n\n ctx.fillStyle = theme.graph2D.grid.dotColor;\n\n for (let x = 0; x < canvasWidth; x += gridSpacing) {\n for (let y = 0; 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 = (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 = 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 = 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 middleX = start.x + (end.x - start.x) / 2;\n // const middleY = start.y + (end.y - start.y) / 2;\n\n const globalScale = 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, transform.k, highlightLinks, 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 = 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 // Set onload handler if image isn't loaded yet\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, hoveredButtonIndex, config, 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 // Draw all nodes\n nodes.forEach((node) => {\n const { x, y, color: nodeColor, fontColor, label } = node;\n const isHighlighted = highlightNodes.has(node) || node === hoveredNode || node === draggedNode;\n const isSelected = node === selectedNode;\n\n // Node size and position\n const size = config.nodeSizeBase;\n const radius = isSelected ? config.nodeSizeBase / 2 : config.nodeSizeBase / 2;\n\n // If node is highlighted, draw highlight ring\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 // If node is selected, draw selection ring and buttons\n if (isSelected) {\n // Draw buttons around selected node if buttons are available\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 // Draw the node circle\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 // Draw label if available\n if (label) {\n ctx.save();\n ctx.translate(x as number, y as number);\n\n const globalScale = 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 [\n config,\n color,\n hoveredNode,\n draggedNode,\n selectedNode,\n highlightNodes,\n transform.k,\n theme.graph2D.ring,\n buttons,\n renderNodeButtons,\n ]\n );\n\n // 2D Canvas rendering for everything\n const renderCanvas2D = useCallback(() => {\n const ctx = ctx2dRef.current;\n if (!ctx) return;\n\n // Get device pixel ratio for correct rendering\n const pixelRatio = window.devicePixelRatio || 1;\n\n // Очищуємо весь канвас перед новим рендерингом.\n ctx.clearRect(0, 0, width * pixelRatio, height * pixelRatio);\n\n // Render grid first (background)\n renderGrid(ctx);\n\n // Apply transformation (zoom and pan) - use matrix transformation for better performance\n ctx.save();\n\n // First translate to the pan position, then scale around that point\n ctx.setTransform(transform.k, 0, 0, transform.k, transform.x, transform.y);\n\n // Render links and nodes\n renderLinks(ctx);\n renderNodes(ctx);\n\n // Restore context\n ctx.restore();\n }, [width, height, renderLinks, renderNodes, renderGrid, transform]);\n\n /**\n * Function to add new nodes to the graph with optional smooth appearance animation\n * @param newNodes The new nodes to add to the graph\n * @param newLinks Optional new links to add with the nodes\n * @param options Configuration options for the node addition\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 // Опції по умолчанню\n const smoothAppearance = options?.smoothAppearance ?? false;\n const transitionDuration = options?.transitionDuration ?? 1000; // 1 секунда по умолчанню\n\n // Process the new nodes to avoid duplicates\n const existingNodeIds = new Set(nodes.map((node) => node.id));\n const filteredNewNodes = newNodes.filter((node) => !existingNodeIds.has(node.id));\n\n // Process the new links to avoid duplicates and ensure they reference valid nodes\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 // Update graphData with new nodes and links\n const updatedNodes = [...nodes, ...filteredNewNodes];\n const updatedLinks = [...links, ...filteredNewLinks];\n\n // Pre-position new nodes only when smooth appearance is enabled\n if (smoothAppearance) {\n // Pre-position new nodes near their connected nodes\n filteredNewNodes.forEach((node) => {\n // Check if any link connects this node to existing nodes\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 // Find an existing connected node to position near\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 // Position new node near the connected node with small randomization\n const randomOffset = 30 + Math.random() * 20;\n const randomAngle = Math.random() * Math.PI * 2;\n\n // Set initial position\n node.x = connectedNode.x + Math.cos(randomAngle) * randomOffset;\n node.y = connectedNode.y + Math.sin(randomAngle) * randomOffset;\n\n // Set initial velocity to zero for smoother appearance\n node.vx = 0;\n node.vy = 0;\n }\n } else {\n // For disconnected nodes, place them in view at random positions\n const centerX = width / 2;\n const centerY = height / 2;\n const radius = Math.min(width, height) / 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 // Fix positions of existing nodes to prevent them from moving\n nodes.forEach((node) => {\n node.fx = node.x;\n node.fy = node.y;\n });\n }\n\n // Update the simulation with new nodes and links\n simulationRef.current.nodes(updatedNodes);\n\n // Get the link force with proper typing\n const linkForce = simulationRef.current.force('link') as ForceLink<NodeObject, LinkObject>;\n if (linkForce) {\n linkForce.links(updatedLinks);\n }\n\n // Connect new nodes to their neighbors and links\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 // 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\n if (smoothAppearance) {\n // Configure simulation for smooth appearance of new nodes\n simulationRef.current.alphaTarget(0.3);\n simulationRef.current.alpha(0.3);\n simulationRef.current.velocityDecay(0.7); // Higher decay for smoother motion\n simulationRef.current.restart();\n\n // After a short time, unfix all nodes and reset simulation parameters\n setTimeout(() => {\n // Unfix existing nodes to allow natural movement again\n nodes.forEach((node) => {\n node.fx = undefined;\n node.fy = undefined;\n });\n\n // Reset simulation to normal settings\n simulationRef.current?.alphaTarget(0);\n simulationRef.current?.alpha(0.1);\n simulationRef.current?.velocityDecay(0.6); // Reset to default\n }, transitionDuration);\n } else {\n // Standard restart with low energy for minimal movement\n simulationRef.current.alpha(0.1).restart();\n }\n\n // Re-render the canvas\n renderCanvas2D();\n },\n [graphData, simulationRef, renderCanvas2D, width, height]\n );\n\n /**\n * Function to remove nodes from the graph with optional smooth disappearance animation\n * @param nodeIds Array of node IDs to remove\n * @param options Configuration options for the node removal\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 // Create set of node IDs for quick lookup\n const nodeIdsToRemove = new Set(nodeIds);\n\n // First check if we're removing any selected/hovered node\n if (selectedNode && selectedNode.id !== undefined && nodeIdsToRemove.has(selectedNode.id)) {\n setSelectedNode(null);\n }\n\n if (hoveredNode && hoveredNode.id !== undefined && nodeIdsToRemove.has(hoveredNode.id)) {\n setHoveredNode(null);\n setHighlightNodes(new Set());\n setHighlightLinks(new Set());\n }\n\n if (draggedNode && draggedNode.id !== undefined && nodeIdsToRemove.has(draggedNode.id)) {\n setDraggedNode(null);\n }\n\n // Get all nodes that will be kept after removal\n const remainingNodes = nodes.filter((node) => node.id !== undefined && !nodeIdsToRemove.has(node.id));\n\n // Get all links that don't connect to removed nodes\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 // Rebuild node relationships (neighbors and links) for remaining nodes\n // First, clear existing relationships\n remainingNodes.forEach((node) => {\n node.neighbors = [];\n node.links = [];\n });\n\n // Then rebuild based on remaining links\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 // Add to neighbors arrays\n source.neighbors = source.neighbors || [];\n target.neighbors = target.neighbors || [];\n source.neighbors.push(target);\n target.neighbors.push(source);\n\n // Add to links arrays\n source.links = source.links || [];\n target.links = target.links || [];\n source.links.push(link);\n target.links.push(link);\n });\n\n // Update component state directly\n graphData.nodes = remainingNodes;\n graphData.links = remainingLinks;\n\n // Update the simulation with the filtered nodes and links\n // але не змінюємо їхні позиції\n simulationRef.current.nodes(remainingNodes);\n\n // Get and update the link force\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 [selectedNode, hoveredNode, draggedNode, graphData, renderCanvas2D]\n );\n\n // Function to zoom to fit all nodes in view with padding\n\n // Function to zoom to fit all nodes in view with padding\n const zoomToFit = useCallback(\n (duration: number = 0, padding: number = 20) => {\n const nodes = getNodes();\n if (!canvasRef.current || !nodes || !nodes.length) return;\n\n // Find the bounds of all nodes\n let minX = Infinity,\n minY = Infinity;\n let maxX = -Infinity,\n maxY = -Infinity;\n\n // Calculate the bounding box containing all nodes\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 // Update min/max coordinates\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 // If we have valid bounds\n if (isFinite(minX) && isFinite(maxX) && isFinite(minY) && isFinite(maxY)) {\n // Calculate the required scale to fit all nodes\n const canvasWidth = width;\n const canvasHeight = height;\n\n // Add padding to the bounding box\n minX -= padding;\n minY -= padding;\n maxX += padding;\n maxY += padding;\n\n // Calculate the width and height of the content\n const contentWidth = maxX - minX;\n const contentHeight = maxY - minY;\n\n // Calculate the scale required to fit the content\n const scaleX = contentWidth > 0 ? canvasWidth / contentWidth : 1;\n const scaleY = contentHeight > 0 ? canvasHeight / contentHeight : 1;\n const scale = Math.min(scaleX, scaleY, 10); // Cap zoom at 10x\n\n // Calculate the center of the content\n const centerX = minX + contentWidth / 2;\n const centerY = minY + contentHeight / 2;\n\n // Calculate the new transform to center and scale correctly\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 // Animate the transition if duration is provided\n const startTransform = { ...transform };\n const startTime = Date.now();\n\n const animateZoom = () => {\n const t = Math.min(1, (Date.now() - startTime) / duration);\n\n // Use easing function for smoother transition\n const easedT = t === 1 ? 1 : 1 - Math.pow(1 - t, 3); // Cubic easing\n\n // Interpolate between start and end transform\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 setTransform(interpolatedTransform);\n\n if (t < 1) {\n requestAnimationFrame(animateZoom);\n }\n };\n\n requestAnimationFrame(animateZoom);\n } else {\n // Apply transform immediately if no duration\n setTransform(newTransform);\n }\n }\n },\n [width, height, transform]\n );\n\n useEffect(() => {\n // Initialize canvas context\n const canvasElement = canvasRef.current;\n if (!canvasElement) return;\n\n // Set canvas size with device pixel ratio for sharp rendering\n const pixelRatio = window.devicePixelRatio || 1;\n canvasElement.width = width * pixelRatio;\n canvasElement.height = height * pixelRatio;\n canvasElement.style.width = `${width}px`;\n canvasElement.style.height = `${height}px`;\n\n // Initialize Canvas 2D context\n init2DCanvas();\n\n // Calculate the center position adjusted for the canvas size\n const centerX = width / 2;\n const centerY = height / 2;\n\n // Initialize D3 force simulation\n const nodeSize = config.nodeSizeBase;\n const nodeRadius = nodeSize / 2;\n const linkDistance = nodeSize * 2.5; // Calculate link distance based on node size\n\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) * 100) // Силу відштовхування на основі розміру вузла\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 }, [width, height, nodes, links, init2DCanvas]);\n\n useEffect(() => {\n if (simulationRef.current) {\n const simulation = simulationRef.current;\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 if (isRendering) {\n zoomToFit(0, 20); // Zoom to fit after rendering\n\n setTimeout(() => {\n setIsRendering(false);\n }, 200);\n }\n });\n }\n\n if (!isRendering) {\n renderCanvas2D();\n }\n }, [isRendering, renderCanvas2D, zoomToFit]);\n\n // Set up node relationships (neighbors and links)\n useEffect(() => {\n if (!graphData) return;\n\n // Connect nodes to their neighbors and links\n graphData.links.forEach((link: any) => {\n const source =\n typeof link.source === 'object' ? link.source : graphData.nodes.find((n: any) => n.id === link.source);\n const target =\n typeof link.target === 'object' ? link.target : graphData.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 }, [graphData]);\n\n // Initialize button images\n useEffect(() => {\n if (buttons && buttons.length > 0) {\n setButtonImages(prepareButtonImages(buttons));\n }\n }, [buttons]);\n\n // Find node at specific coordinates\n const getNodeAtPosition = useCallback(\n (x: number, y: number): NodeObject | null => {\n const nodes = getNodes();\n if (!nodes || nodes.length === 0) return null;\n\n // Find any node within radius pixels of the pointer (adjusted for node size)\n const nodeRadius = config.nodeSizeBase / 2;\n\n // Scale coordinates based on device pixel ratio and apply inverse transform\n const pixelRatio = window.devicePixelRatio || 1;\n // Apply inverse transform to get the coordinates in the graph's coordinate system\n const scaledX = (x * pixelRatio - transform.x) / transform.k;\n const scaledY = (y * pixelRatio - transform.y) / 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 [transform, config.nodeSizeBase]\n );\n\n // Utility function to check if a point is inside a button sector\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 // Calculate distance from node center to mouse point\n const dx = mouseX - nodeX;\n const dy = mouseY - nodeY;\n const distance = Math.sqrt(dx * dx + dy * dy);\n\n // Calculate angle between point and horizontal axis\n let angle = Math.atan2(dy, dx);\n if (angle < 0) angle += 2 * Math.PI; // Convert to [0, 2π] range\n\n // Expand radius range for easier button interaction\n const minRadiusRatio = 0.5;\n const maxRadiusRatio = 1;\n const isInRadius = distance >= radius * minRadiusRatio && distance <= radius * maxRadiusRatio;\n\n // Check if the angle is within the sector\n let isInAngle = false;\n\n // Top half circle: from Math.PI to Math.PI * 2\n if (startAngle === Math.PI && endAngle === Math.PI * 2) {\n isInAngle = angle >= Math.PI && angle <= Math.PI * 2;\n }\n // Bottom half circle: from 0 to Math.PI\n else if (startAngle === 0 && endAngle === Math.PI) {\n isInAngle = angle >= 0 && angle <= Math.PI;\n }\n // General case for arbitrary sectors\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 // Handle node hover (similar to Graph2D handleNodeHover)\n const handleNodeHover = useCallback(\n (node: NodeObject | null) => {\n // Check if the node is the same as the last hovered node\n if (node === lastHoveredNodeRef.current) {\n return; // Skip processing if it's the same node\n }\n\n // Update last hovered node reference\n lastHoveredNodeRef.current = node;\n\n const newHighlightNodes = new Set();\n const newHighlightLinks = new Set();\n\n if (node) {\n newHighlightNodes.add(node);\n\n // Add neighboring nodes and links to highlighting\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 setHoveredNode(node);\n if (onNodeHover) onNodeHover(node);\n setHighlightNodes(newHighlightNodes);\n setHighlightLinks(newHighlightLinks);\n },\n [onNodeHover]\n );\n\n // Handle node click\n const handleNodeClick = useCallback(\n (node: NodeObject) => {\n setSelectedNode(node);\n if (onNodeClick) onNodeClick(node);\n },\n [onNodeClick]\n );\n\n // Handle background click\n const handleBackgroundClick = useCallback(() => {\n setSelectedNode(null);\n if (onBackgroundClick) onBackgroundClick();\n }, [onBackgroundClick]);\n\n // Відслідковування початкових координат для виявлення перетягування\n const mouseStartPosRef = useRef<{ x: number; y: number } | null>(null);\n const isDraggingRef = useRef<boolean>(false); // Handle mouse down for dragging\n\n const handleMouseDown = useCallback(\n (event: React.MouseEvent<HTMLCanvasElement>) => {\n if (!canvasRef.current || !simulationRef.current) return;\n\n // Get canvas-relative coordinates\n const rect = canvasRef.current.getBoundingClientRect();\n const x = event.clientX - rect.left;\n const y = event.clientY - rect.top;\n\n // Зберігаємо початкові координати для подальшого відстеження перетягування\n mouseStartPosRef.current = { x, y };\n isDraggingRef.current = false;\n\n // Try to find a node at the cursor position - we'll process the click on mouseUp if not dragging\n const node = getNodeAtPosition(x, y);\n if (node) {\n // Set as potentially draggable but don't activate simulation yet\n setDraggedNode(node);\n\n // Fix the node position temporarily - поки що фіксуємо позицію\n node.fx = node.x;\n node.fy = node.y;\n } else {\n // If no node was clicked, start panning\n setIsPanning(true);\n lastMousePosRef.current = { x, y };\n }\n },\n [getNodeAtPosition]\n );\n\n // Handle mouse move for dragging and hovering\n const handleMouseMove = useCallback(\n (event: React.MouseEvent<HTMLCanvasElement>) => {\n if (!canvasRef.current) return;\n\n // Get canvas-relative coordinates\n const rect = canvasRef.current.getBoundingClientRect();\n const x = event.clientX - rect.left;\n const y = event.clientY - rect.top;\n\n // Перевіряємо чи почалось перетягування\n if (draggedNode && mouseStartPosRef.current && simulationRef.current) {\n const startX = mouseStartPosRef.current.x;\n const startY = mouseStartPosRef.current.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 // This is definitely a drag operation, not a click\n isDraggingRef.current = true;\n\n // If this is the first detection of dragging, configure the simulation\n if (simulationRef.current.alphaTarget() === 0) {\n // Set alphaTarget to a value based on node size for appropriate movement intensity\n const alphaValue = 0.15;\n simulationRef.current.alphaTarget(alphaValue).restart();\n\n // Adjust decay based on node size for better stability during drag\n const decayValue = 0.8;\n simulationRef.current.velocityDecay(decayValue);\n }\n }\n\n // Scale coordinates based on device pixel ratio and current transform\n const pixelRatio = window.devicePixelRatio || 1;\n\n // Apply inverse transformation to get coordinates in the graph's space\n const scaledX = (x * pixelRatio - transform.x) / transform.k;\n const scaledY = (y * pixelRatio - transform.y) / transform.k;\n\n // Update the fixed positions of the dragged node with smoothing\n draggedNode.fx = scaledX;\n draggedNode.fy = scaledY;\n\n if (isDraggingRef.current) {\n // Reduce simulation energy during dragging for stability\n simulationRef.current.alpha(0.1); // Reduce system energy\n }\n\n // No need to check for hover when dragging\n return;\n }\n\n // Handle panning\n if (isPanning && mouseStartPosRef.current) {\n const dx = x - lastMousePosRef.current.x;\n const dy = y - lastMousePosRef.current.y;\n\n // Calculate total distance moved during panning\n const startX = mouseStartPosRef.current.x;\n const startY = mouseStartPosRef.current.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 isDraggingRef.current = true;\n }\n\n setTransform((prev) => ({\n ...prev,\n x: prev.x + dx,\n y: prev.y + dy,\n }));\n\n lastMousePosRef.current = { x, y };\n return;\n }\n\n let hoveredNode;\n\n // Button hover detection logic\n if (selectedNode && canvasRef.current && buttonImages.length > 0) {\n const buttonRadius = (config.nodeSizeBase * config.nodeAreaFactor) / 2;\n\n // Scale coordinates based on canvas display size\n const canvasScaleX = canvasRef.current.width / rect.width;\n const canvasScaleY = canvasRef.current.height / rect.height;\n\n // Scaled mouse coordinates in canvas coordinate system\n const scaledMouseX = x * canvasScaleX;\n const scaledMouseY = y * canvasScaleY;\n\n // Apply current transformation to get world coordinates\n const worldX = (scaledMouseX - transform.x) / transform.k;\n const worldY = (scaledMouseY - transform.y) / transform.k;\n\n // Node position\n const nodeX = selectedNode.x || 0;\n const nodeY = selectedNode.y || 0;\n\n // Calculate number of buttons and their sectors\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 // Check if mouse is over any button sector\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 = selectedNode; // Set hoveredNode to selectedNode for further processing\n setHoveredButtonIndex(hoveredIndex);\n } else {\n if (hoveredButtonIndex !== null) setHoveredButtonIndex(null);\n }\n\n if (!hoveredNode) {\n // If no node is hovered, reset hoveredNode\n hoveredNode = getNodeAtPosition(x, y);\n }\n handleNodeHover(hoveredNode);\n // Check for hover and update highlighting\n\n // Change cursor style based on hover\n if (canvasRef.current) {\n canvasRef.current.style.cursor = hoveredNode ? 'pointer' : 'default';\n }\n },\n [\n draggedNode,\n getNodeAtPosition,\n isPanning,\n transform,\n handleNodeHover,\n selectedNode,\n buttonImages,\n config,\n hoveredButtonIndex,\n simulationRef,\n lastMousePosRef,\n mouseStartPosRef,\n isDraggingRef,\n isPointInButtonSector,\n canvasRef,\n setTransform,\n setHoveredButtonIndex,\n ]\n );\n\n const handleClick = useCallback((event: React.MouseEvent<HTMLCanvasElement>) => {\n if (mustBeStoppedPropagation.current) {\n event.stopPropagation();\n event.preventDefault();\n }\n mustBeStoppedPropagation.current = false;\n }, []);\n\n // Handle mouse up to end dragging\n const handleMouseUp = useCallback(\n (event: React.MouseEvent<HTMLCanvasElement>) => {\n const wasDragging = isDraggingRef.current;\n\n if (wasDragging) {\n mustBeStoppedPropagation.current = true;\n }\n // Process node clicks or button clicks only if we haven't been dragging\n if (!wasDragging && mouseStartPosRef.current) {\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 // First check if we're clicking on a button of the selected node\n let isButtonClick = false;\n if (selectedNode && hoveredButtonIndex !== null && buttons[hoveredButtonIndex]) {\n // This is a button click, trigger the button's onClick handler\n const button = buttons[hoveredButtonIndex];\n if (button && button.onClick) {\n button.onClick(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 && draggedNode) {\n handleNodeClick(draggedNode);\n } else if (!isButtonClick && !draggedNode) {\n // If we didn't click on a node or a button, it's a background click\n // Only trigger background click if there was no dragging\n handleBackgroundClick();\n }\n }\n }\n\n if (draggedNode && simulationRef.current) {\n // If real dragging occurred, optimize simulation parameters\n if (wasDragging) {\n // Gradually reduce the simulation energy\n simulationRef.current.alphaTarget(0);\n\n // Optimize simulation parameters for better stabilization\n const alphaValue = 0.05; // Low alpha for gentle settling\n const alphaDecayValue = 0.04; // Moderate decay to stop more quickly\n const velocityDecayValue = 0.6; // Standard velocity decay after dragging\n\n simulationRef.current.alpha(alphaValue).alphaDecay(alphaDecayValue);\n simulationRef.current.velocityDecay(velocityDecayValue);\n } else {\n // If it was just a click, not a drag, stop simulation immediately\n simulationRef.current.alphaTarget(0);\n }\n\n // Release node position regardless of whether it was dragged or clicked\n draggedNode.fx = undefined;\n draggedNode.fy = undefined;\n\n setDraggedNode(null);\n }\n\n // Скидаємо всі стани перетягування\n isDraggingRef.current = false;\n mouseStartPosRef.current = null;\n\n // End panning if active\n if (isPanning) {\n setIsPanning(false);\n }\n },\n [draggedNode, isPanning, hoveredButtonIndex, selectedNode, buttons, handleNodeClick, handleBackgroundClick]\n );\n\n // Handle wheel event for zooming\n const handleWheel = useCallback(\n (event: WheelEvent) => {\n event.stopPropagation();\n event.preventDefault();\n\n if (!canvasRef.current) return;\n\n // Get canvas-relative coordinates\n const rect = canvasRef.current.getBoundingClientRect();\n const x = event.clientX - rect.left;\n const y = event.clientY - rect.top;\n\n // Calculate zoom factor\n const delta = -event.deltaY;\n const scaleFactor = delta > 0 ? 1.1 : 1 / 1.1;\n\n // Calculate new transform with zoom around mouse position\n setTransform((prev) => {\n // Limit zoom level (optional)\n const newScale = prev.k * scaleFactor;\n\n if (newScale < 0.01 || newScale > 10) return prev;\n const newK = prev.k * scaleFactor;\n\n // Calculate new translation to zoom centered on mouse position\n const newX = x - (x - prev.x) * scaleFactor;\n const newY = y - (y - prev.y) * scaleFactor;\n\n return {\n k: newK,\n x: newX,\n y: newY,\n };\n });\n },\n [setTransform]\n );\n\n // Button click handling has been moved directly into the handleMouseDown method\n // This prevents duplicate handling of click events and ensures proper coordination\n // with node selection and dragging logic\n\n useImperativeHandle(\n ref,\n () => ({\n zoomToFit,\n addNodes,\n removeNodes,\n }),\n [zoomToFit, addNodes, removeNodes]\n );\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: isRendering ? 'none' : 'block' }}\n onMouseDown={handleMouseDown}\n onMouseMove={handleMouseMove}\n onMouseUp={handleMouseUp}\n onMouseLeave={handleMouseUp}\n onClick={handleClick}\n // Wheel event is now handled by the useEffect above\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/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/Sidebar/SidebarContext.tsx","../src/Core/Sidebar/Sidebar.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/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","convertPaletteToRem","obj","parentKey","result","key","value","prop","getButtonStyles","color","state","getButtonSizeStyles","size","getInputStyles","getTypographyStyles","getBreakpoint","hexToRgba","hex","alpha","r","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","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","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","useTheme","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","IconWrapper","rows","autoResize","areaSize","setAreaSize","rowsRef","divRef","rowHeight","useEffect","height","EditableContainer","$align","$error","$placeholder","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","PageLayout","header","sidebar","StyledMain","$withHeader","$withSidebar","maxWidth","$maxWidth","LoaderWrapper","GraphLoader","ContentLoader","GraphLoader_default","prepareButtonImages","buttons","button","normalImg","hoverImg","config","Graph2D","loading","graphData","onNodeClick","onBackgroundClick","onNodeHover","isRendering","setIsRendering","hoveredNode","setHoveredNode","draggedNode","setDraggedNode","selectedNode","setSelectedNode","nodes","links","cloneDeep","hoveredButtonIndex","setHoveredButtonIndex","buttonImages","setButtonImages","highlightNodes","setHighlightNodes","highlightLinks","setHighlightLinks","transform","setTransform","isPanning","setIsPanning","lastMousePosRef","mustBeStoppedPropagation","canvasRef","simulationRef","lastHoveredNodeRef","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","pixelRatio","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","canvasElement","nodeSize","nodeRadius","linkDistance","simulation","forceSimulation","forceLink","d","forceManyBody","forceX","forceY","forceCenter","forceCollide","getNodeAtPosition","scaledX","scaledY","isPointInButtonSector","mouseX","mouseY","nodeX","nodeY","isInRadius","isInAngle","handleNodeHover","newHighlightNodes","newHighlightLinks","neighbor","handleNodeClick","handleBackgroundClick","mouseStartPosRef","isDraggingRef","handleMouseDown","event","rect","handleMouseMove","startX","startY","canvasScaleX","canvasScaleY","scaledMouseX","scaledMouseY","worldX","worldY","hoveredIndex","handleClick","handleMouseUp","wasDragging","isButtonClick","alphaValue","alphaDecayValue","velocityDecayValue","handleWheel","scaleFactor","newScale","newK","newX","newY","useImperativeHandle","canvas","Wrapper","Canvas","FullscreenCard","isActive","position","top","left","right","bottom","$isActive","$top","$left","$right","$bottom","$position"],"mappings":"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","file":"index.mjs","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 * 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: '#FF3B30',\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 },\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 },\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 },\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 },\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 },\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};\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: '#FF3B30',\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 },\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 },\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 },\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 },\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 },\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};\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 MarginProps = {\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 & MarginProps;\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","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 { 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 { 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 { 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 >\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 <input 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 <textarea disabled={disabled} {...props} rows={areaSize} ref={ref} />\n <div\n ref={divRef}\n style={{\n position: 'absolute',\n top: 0,\n left: 0,\n right: 0,\n height: 'auto',\n opacity: 0,\n zIndex: -1,\n pointerEvents: 'none',\n minHeight: rowHeight.current * Number(rows),\n wordBreak: 'break-word',\n whiteSpace: 'pre-wrap',\n }}\n >\n {props.value}\n </div>\n </div>\n );\n});\n\nconst InputGroup = styled.div<{ $size: InputSize; $variant?: InputVariant }>(\n ({ theme, $size, $variant = 'outlined' }) => `\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 & input, & textarea, & ${EditableContainer} {\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 & textarea {\n resize: none;\n margin: 0;\n display: block;\n }\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<{\n $align: 'flex-start' | 'center';\n $disabled: boolean;\n $error?: boolean;\n $size: InputSize;\n $variant: InputVariant;\n}>(\n ({ theme, $align = 'center', $disabled, $error, $size, $variant }) => `\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: ${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\nconst EditableContainer = styled.div<{ $placeholder?: string }>(\n ({ $placeholder, theme }) => `\n outline-style: none;\n outline-width: 0px;\n position: relative;\n\n ${\n $placeholder\n ? `\n &:after {\n content: '${$placeholder}';\n position: absolute;\n top: 0;\n left: 0;\n color: ${theme.input.outlined.default.placeholder};\n }\n `\n : ''\n }\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 },\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 >\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 { createComponent, FabricComponent, generatePropertySpaceStyle } from '../../Theme';\nimport { styled } from 'styled-components';\n\ntype BoxProps = FabricComponent<\n {\n children: any;\n } & React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>\n>;\n\nexport const Box = ({ children, ...props }: BoxProps) => {\n return <StyledBox {...props}>{children}</StyledBox>;\n};\n\nconst StyledBox = createComponent(\n styled('div')<FabricComponent>(\n ({ theme, 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: ${theme.box.border.width};\n border-style: ${theme.box.border.style};\n border-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 { ReactElement } from 'react';\nimport { styled } from 'styled-components';\n\ninterface PageLayoutProps {\n header?: any;\n sidebar?: any;\n children?: any;\n}\n\nexport const PageLayout = ({ children, header, sidebar }: PageLayoutProps) => {\n return (\n <StyledContainer $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 { useCallback, useEffect, useRef, useState, forwardRef, useImperativeHandle, useMemo } from 'react';\nimport { Graph2DProps, LinkObject, NodeObject, Graph2DRef } 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\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 ({ loading, width, height, graphData, buttons = [], onNodeClick, onBackgroundClick, onNodeHover }, ref) => {\n const theme = useTheme();\n const [isRendering, setIsRendering] = useState(true);\n const [hoveredNode, setHoveredNode] = useState<NodeObject | null>(null);\n const [draggedNode, setDraggedNode] = useState<NodeObject | null>(null);\n const [selectedNode, setSelectedNode] = useState<NodeObject | null>(null);\n\n const { nodes, links } = useMemo(() => cloneDeep(graphData), [graphData]);\n\n // Стани кнопок\n const [hoveredButtonIndex, setHoveredButtonIndex] = useState<number | null>(null);\n const [buttonImages, setButtonImages] = useState<any[]>([]);\n\n // Стани виділення\n const [highlightNodes, setHighlightNodes] = useState(new Set());\n const [highlightLinks, setHighlightLinks] = useState(new Set());\n\n // Стан трансформації для масштабування та панорамування\n const [transform, setTransform] = useState({ x: 0, y: 0, k: 1 }); // x, y для переміщення, k для масштабу\n const [isPanning, setIsPanning] = useState(false);\n const lastMousePosRef = useRef({ x: 0, y: 0 });\n const mustBeStoppedPropagation = useRef(false);\n\n // Використання canvas замість SVG для кращої продуктивності\n const canvasRef = useRef<HTMLCanvasElement>(null);\n const simulationRef = useRef<Simulation<NodeObject, LinkObject> | null>(null);\n const lastHoveredNodeRef = useRef<NodeObject | 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 } = ctx.canvas;\n const gridSpacing = config.gridSpacing;\n const dotSize = config.dotSize;\n\n ctx.fillStyle = theme.graph2D.grid.dotColor;\n\n for (let x = 0; x < canvasWidth; x += gridSpacing) {\n for (let y = 0; 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 = (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 = 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 = 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 middleX = start.x + (end.x - start.x) / 2;\n // const middleY = start.y + (end.y - start.y) / 2;\n\n const globalScale = 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, transform.k, highlightLinks, 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 = 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 // Set onload handler if image isn't loaded yet\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, hoveredButtonIndex, config, 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 // Draw all nodes\n nodes.forEach((node) => {\n const { x, y, color: nodeColor, fontColor, label } = node;\n const isHighlighted = highlightNodes.has(node) || node === hoveredNode || node === draggedNode;\n const isSelected = node === selectedNode;\n\n // Node size and position\n const size = config.nodeSizeBase;\n const radius = isSelected ? config.nodeSizeBase / 2 : config.nodeSizeBase / 2;\n\n // If node is highlighted, draw highlight ring\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 // If node is selected, draw selection ring and buttons\n if (isSelected) {\n // Draw buttons around selected node if buttons are available\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 // Draw the node circle\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 // Draw label if available\n if (label) {\n ctx.save();\n ctx.translate(x as number, y as number);\n\n const globalScale = 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 [\n config,\n color,\n hoveredNode,\n draggedNode,\n selectedNode,\n highlightNodes,\n transform.k,\n theme.graph2D.ring,\n buttons,\n renderNodeButtons,\n ]\n );\n\n // 2D Canvas rendering for everything\n const renderCanvas2D = useCallback(() => {\n const ctx = ctx2dRef.current;\n if (!ctx) return;\n\n // Get device pixel ratio for correct rendering\n const pixelRatio = window.devicePixelRatio || 1;\n\n // Очищуємо весь канвас перед новим рендерингом.\n ctx.clearRect(0, 0, width * pixelRatio, height * pixelRatio);\n\n // Render grid first (background)\n renderGrid(ctx);\n\n // Apply transformation (zoom and pan) - use matrix transformation for better performance\n ctx.save();\n\n // First translate to the pan position, then scale around that point\n ctx.setTransform(transform.k, 0, 0, transform.k, transform.x, transform.y);\n\n // Render links and nodes\n renderLinks(ctx);\n renderNodes(ctx);\n\n // Restore context\n ctx.restore();\n }, [width, height, renderLinks, renderNodes, renderGrid, transform]);\n\n /**\n * Function to add new nodes to the graph with optional smooth appearance animation\n * @param newNodes The new nodes to add to the graph\n * @param newLinks Optional new links to add with the nodes\n * @param options Configuration options for the node addition\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 // Опції по умолчанню\n const smoothAppearance = options?.smoothAppearance ?? false;\n const transitionDuration = options?.transitionDuration ?? 1000; // 1 секунда по умолчанню\n\n // Process the new nodes to avoid duplicates\n const existingNodeIds = new Set(nodes.map((node) => node.id));\n const filteredNewNodes = newNodes.filter((node) => !existingNodeIds.has(node.id));\n\n // Process the new links to avoid duplicates and ensure they reference valid nodes\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 // Update graphData with new nodes and links\n const updatedNodes = [...nodes, ...filteredNewNodes];\n const updatedLinks = [...links, ...filteredNewLinks];\n\n // Pre-position new nodes only when smooth appearance is enabled\n if (smoothAppearance) {\n // Pre-position new nodes near their connected nodes\n filteredNewNodes.forEach((node) => {\n // Check if any link connects this node to existing nodes\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 // Find an existing connected node to position near\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 // Position new node near the connected node with small randomization\n const randomOffset = 30 + Math.random() * 20;\n const randomAngle = Math.random() * Math.PI * 2;\n\n // Set initial position\n node.x = connectedNode.x + Math.cos(randomAngle) * randomOffset;\n node.y = connectedNode.y + Math.sin(randomAngle) * randomOffset;\n\n // Set initial velocity to zero for smoother appearance\n node.vx = 0;\n node.vy = 0;\n }\n } else {\n // For disconnected nodes, place them in view at random positions\n const centerX = width / 2;\n const centerY = height / 2;\n const radius = Math.min(width, height) / 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 // Fix positions of existing nodes to prevent them from moving\n nodes.forEach((node) => {\n node.fx = node.x;\n node.fy = node.y;\n });\n }\n\n // Update the simulation with new nodes and links\n simulationRef.current.nodes(updatedNodes);\n\n // Get the link force with proper typing\n const linkForce = simulationRef.current.force('link') as ForceLink<NodeObject, LinkObject>;\n if (linkForce) {\n linkForce.links(updatedLinks);\n }\n\n // Connect new nodes to their neighbors and links\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 // 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\n if (smoothAppearance) {\n // Configure simulation for smooth appearance of new nodes\n simulationRef.current.alphaTarget(0.3);\n simulationRef.current.alpha(0.3);\n simulationRef.current.velocityDecay(0.7); // Higher decay for smoother motion\n simulationRef.current.restart();\n\n // After a short time, unfix all nodes and reset simulation parameters\n setTimeout(() => {\n // Unfix existing nodes to allow natural movement again\n nodes.forEach((node) => {\n node.fx = undefined;\n node.fy = undefined;\n });\n\n // Reset simulation to normal settings\n simulationRef.current?.alphaTarget(0);\n simulationRef.current?.alpha(0.1);\n simulationRef.current?.velocityDecay(0.6); // Reset to default\n }, transitionDuration);\n } else {\n // Standard restart with low energy for minimal movement\n simulationRef.current.alpha(0.1).restart();\n }\n\n // Re-render the canvas\n renderCanvas2D();\n },\n [graphData, simulationRef, renderCanvas2D, width, height]\n );\n\n /**\n * Function to remove nodes from the graph with optional smooth disappearance animation\n * @param nodeIds Array of node IDs to remove\n * @param options Configuration options for the node removal\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 // Create set of node IDs for quick lookup\n const nodeIdsToRemove = new Set(nodeIds);\n\n // First check if we're removing any selected/hovered node\n if (selectedNode && selectedNode.id !== undefined && nodeIdsToRemove.has(selectedNode.id)) {\n setSelectedNode(null);\n }\n\n if (hoveredNode && hoveredNode.id !== undefined && nodeIdsToRemove.has(hoveredNode.id)) {\n setHoveredNode(null);\n setHighlightNodes(new Set());\n setHighlightLinks(new Set());\n }\n\n if (draggedNode && draggedNode.id !== undefined && nodeIdsToRemove.has(draggedNode.id)) {\n setDraggedNode(null);\n }\n\n // Get all nodes that will be kept after removal\n const remainingNodes = nodes.filter((node) => node.id !== undefined && !nodeIdsToRemove.has(node.id));\n\n // Get all links that don't connect to removed nodes\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 // Rebuild node relationships (neighbors and links) for remaining nodes\n // First, clear existing relationships\n remainingNodes.forEach((node) => {\n node.neighbors = [];\n node.links = [];\n });\n\n // Then rebuild based on remaining links\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 // Add to neighbors arrays\n source.neighbors = source.neighbors || [];\n target.neighbors = target.neighbors || [];\n source.neighbors.push(target);\n target.neighbors.push(source);\n\n // Add to links arrays\n source.links = source.links || [];\n target.links = target.links || [];\n source.links.push(link);\n target.links.push(link);\n });\n\n // Update component state directly\n graphData.nodes = remainingNodes;\n graphData.links = remainingLinks;\n\n // Update the simulation with the filtered nodes and links\n // але не змінюємо їхні позиції\n simulationRef.current.nodes(remainingNodes);\n\n // Get and update the link force\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 [selectedNode, hoveredNode, draggedNode, graphData, renderCanvas2D]\n );\n\n // Function to zoom to fit all nodes in view with padding\n\n // Function to zoom to fit all nodes in view with padding\n const zoomToFit = useCallback(\n (duration: number = 0, padding: number = 20) => {\n const nodes = getNodes();\n if (!canvasRef.current || !nodes || !nodes.length) return;\n\n // Find the bounds of all nodes\n let minX = Infinity,\n minY = Infinity;\n let maxX = -Infinity,\n maxY = -Infinity;\n\n // Calculate the bounding box containing all nodes\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 // Update min/max coordinates\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 // If we have valid bounds\n if (isFinite(minX) && isFinite(maxX) && isFinite(minY) && isFinite(maxY)) {\n // Calculate the required scale to fit all nodes\n const canvasWidth = width;\n const canvasHeight = height;\n\n // Add padding to the bounding box\n minX -= padding;\n minY -= padding;\n maxX += padding;\n maxY += padding;\n\n // Calculate the width and height of the content\n const contentWidth = maxX - minX;\n const contentHeight = maxY - minY;\n\n // Calculate the scale required to fit the content\n const scaleX = contentWidth > 0 ? canvasWidth / contentWidth : 1;\n const scaleY = contentHeight > 0 ? canvasHeight / contentHeight : 1;\n const scale = Math.min(scaleX, scaleY, 10); // Cap zoom at 10x\n\n // Calculate the center of the content\n const centerX = minX + contentWidth / 2;\n const centerY = minY + contentHeight / 2;\n\n // Calculate the new transform to center and scale correctly\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 // Animate the transition if duration is provided\n const startTransform = { ...transform };\n const startTime = Date.now();\n\n const animateZoom = () => {\n const t = Math.min(1, (Date.now() - startTime) / duration);\n\n // Use easing function for smoother transition\n const easedT = t === 1 ? 1 : 1 - Math.pow(1 - t, 3); // Cubic easing\n\n // Interpolate between start and end transform\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 setTransform(interpolatedTransform);\n\n if (t < 1) {\n requestAnimationFrame(animateZoom);\n }\n };\n\n requestAnimationFrame(animateZoom);\n } else {\n // Apply transform immediately if no duration\n setTransform(newTransform);\n }\n }\n },\n [width, height, transform]\n );\n\n useEffect(() => {\n // Initialize canvas context\n const canvasElement = canvasRef.current;\n if (!canvasElement) return;\n\n // Set canvas size with device pixel ratio for sharp rendering\n const pixelRatio = window.devicePixelRatio || 1;\n canvasElement.width = width * pixelRatio;\n canvasElement.height = height * pixelRatio;\n canvasElement.style.width = `${width}px`;\n canvasElement.style.height = `${height}px`;\n\n // Initialize Canvas 2D context\n init2DCanvas();\n\n // Calculate the center position adjusted for the canvas size\n const centerX = width / 2;\n const centerY = height / 2;\n\n // Initialize D3 force simulation\n const nodeSize = config.nodeSizeBase;\n const nodeRadius = nodeSize / 2;\n const linkDistance = nodeSize * 2.5; // Calculate link distance based on node size\n\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) * 100) // Силу відштовхування на основі розміру вузла\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 }, [width, height, nodes, links, init2DCanvas]);\n\n useEffect(() => {\n if (simulationRef.current) {\n const simulation = simulationRef.current;\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 if (isRendering) {\n zoomToFit(0, 20); // Zoom to fit after rendering\n\n setTimeout(() => {\n setIsRendering(false);\n }, 200);\n }\n });\n }\n\n if (!isRendering) {\n renderCanvas2D();\n }\n }, [isRendering, renderCanvas2D, zoomToFit]);\n\n // Set up node relationships (neighbors and links)\n useEffect(() => {\n if (!graphData) return;\n\n // Connect nodes to their neighbors and links\n graphData.links.forEach((link: any) => {\n const source =\n typeof link.source === 'object' ? link.source : graphData.nodes.find((n: any) => n.id === link.source);\n const target =\n typeof link.target === 'object' ? link.target : graphData.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 }, [graphData]);\n\n // Initialize button images\n useEffect(() => {\n if (buttons && buttons.length > 0) {\n setButtonImages(prepareButtonImages(buttons));\n }\n }, [buttons]);\n\n // Find node at specific coordinates\n const getNodeAtPosition = useCallback(\n (x: number, y: number): NodeObject | null => {\n const nodes = getNodes();\n if (!nodes || nodes.length === 0) return null;\n\n // Find any node within radius pixels of the pointer (adjusted for node size)\n const nodeRadius = config.nodeSizeBase / 2;\n\n // Scale coordinates based on device pixel ratio and apply inverse transform\n const pixelRatio = window.devicePixelRatio || 1;\n // Apply inverse transform to get the coordinates in the graph's coordinate system\n const scaledX = (x * pixelRatio - transform.x) / transform.k;\n const scaledY = (y * pixelRatio - transform.y) / 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 [transform, config.nodeSizeBase]\n );\n\n // Utility function to check if a point is inside a button sector\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 // Calculate distance from node center to mouse point\n const dx = mouseX - nodeX;\n const dy = mouseY - nodeY;\n const distance = Math.sqrt(dx * dx + dy * dy);\n\n // Calculate angle between point and horizontal axis\n let angle = Math.atan2(dy, dx);\n if (angle < 0) angle += 2 * Math.PI; // Convert to [0, 2π] range\n\n // Expand radius range for easier button interaction\n const minRadiusRatio = 0.5;\n const maxRadiusRatio = 1;\n const isInRadius = distance >= radius * minRadiusRatio && distance <= radius * maxRadiusRatio;\n\n // Check if the angle is within the sector\n let isInAngle = false;\n\n // Top half circle: from Math.PI to Math.PI * 2\n if (startAngle === Math.PI && endAngle === Math.PI * 2) {\n isInAngle = angle >= Math.PI && angle <= Math.PI * 2;\n }\n // Bottom half circle: from 0 to Math.PI\n else if (startAngle === 0 && endAngle === Math.PI) {\n isInAngle = angle >= 0 && angle <= Math.PI;\n }\n // General case for arbitrary sectors\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 // Handle node hover (similar to Graph2D handleNodeHover)\n const handleNodeHover = useCallback(\n (node: NodeObject | null) => {\n // Check if the node is the same as the last hovered node\n if (node === lastHoveredNodeRef.current) {\n return; // Skip processing if it's the same node\n }\n\n // Update last hovered node reference\n lastHoveredNodeRef.current = node;\n\n const newHighlightNodes = new Set();\n const newHighlightLinks = new Set();\n\n if (node) {\n newHighlightNodes.add(node);\n\n // Add neighboring nodes and links to highlighting\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 setHoveredNode(node);\n if (onNodeHover) onNodeHover(node);\n setHighlightNodes(newHighlightNodes);\n setHighlightLinks(newHighlightLinks);\n },\n [onNodeHover]\n );\n\n // Handle node click\n const handleNodeClick = useCallback(\n (node: NodeObject) => {\n setSelectedNode(node);\n if (onNodeClick) onNodeClick(node);\n },\n [onNodeClick]\n );\n\n // Handle background click\n const handleBackgroundClick = useCallback(() => {\n setSelectedNode(null);\n if (onBackgroundClick) onBackgroundClick();\n }, [onBackgroundClick]);\n\n // Відслідковування початкових координат для виявлення перетягування\n const mouseStartPosRef = useRef<{ x: number; y: number } | null>(null);\n const isDraggingRef = useRef<boolean>(false); // Handle mouse down for dragging\n\n const handleMouseDown = useCallback(\n (event: React.MouseEvent<HTMLCanvasElement>) => {\n if (!canvasRef.current || !simulationRef.current) return;\n\n // Get canvas-relative coordinates\n const rect = canvasRef.current.getBoundingClientRect();\n const x = event.clientX - rect.left;\n const y = event.clientY - rect.top;\n\n // Зберігаємо початкові координати для подальшого відстеження перетягування\n mouseStartPosRef.current = { x, y };\n isDraggingRef.current = false;\n\n // Try to find a node at the cursor position - we'll process the click on mouseUp if not dragging\n const node = getNodeAtPosition(x, y);\n if (node) {\n // Set as potentially draggable but don't activate simulation yet\n setDraggedNode(node);\n\n // Fix the node position temporarily - поки що фіксуємо позицію\n node.fx = node.x;\n node.fy = node.y;\n } else {\n // If no node was clicked, start panning\n setIsPanning(true);\n lastMousePosRef.current = { x, y };\n }\n },\n [getNodeAtPosition]\n );\n\n // Handle mouse move for dragging and hovering\n const handleMouseMove = useCallback(\n (event: React.MouseEvent<HTMLCanvasElement>) => {\n if (!canvasRef.current) return;\n\n // Get canvas-relative coordinates\n const rect = canvasRef.current.getBoundingClientRect();\n const x = event.clientX - rect.left;\n const y = event.clientY - rect.top;\n\n // Перевіряємо чи почалось перетягування\n if (draggedNode && mouseStartPosRef.current && simulationRef.current) {\n const startX = mouseStartPosRef.current.x;\n const startY = mouseStartPosRef.current.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 // This is definitely a drag operation, not a click\n isDraggingRef.current = true;\n\n // If this is the first detection of dragging, configure the simulation\n if (simulationRef.current.alphaTarget() === 0) {\n // Set alphaTarget to a value based on node size for appropriate movement intensity\n const alphaValue = 0.15;\n simulationRef.current.alphaTarget(alphaValue).restart();\n\n // Adjust decay based on node size for better stability during drag\n const decayValue = 0.8;\n simulationRef.current.velocityDecay(decayValue);\n }\n }\n\n // Scale coordinates based on device pixel ratio and current transform\n const pixelRatio = window.devicePixelRatio || 1;\n\n // Apply inverse transformation to get coordinates in the graph's space\n const scaledX = (x * pixelRatio - transform.x) / transform.k;\n const scaledY = (y * pixelRatio - transform.y) / transform.k;\n\n // Update the fixed positions of the dragged node with smoothing\n draggedNode.fx = scaledX;\n draggedNode.fy = scaledY;\n\n if (isDraggingRef.current) {\n // Reduce simulation energy during dragging for stability\n simulationRef.current.alpha(0.1); // Reduce system energy\n }\n\n // No need to check for hover when dragging\n return;\n }\n\n // Handle panning\n if (isPanning && mouseStartPosRef.current) {\n const dx = x - lastMousePosRef.current.x;\n const dy = y - lastMousePosRef.current.y;\n\n // Calculate total distance moved during panning\n const startX = mouseStartPosRef.current.x;\n const startY = mouseStartPosRef.current.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 isDraggingRef.current = true;\n }\n\n setTransform((prev) => ({\n ...prev,\n x: prev.x + dx,\n y: prev.y + dy,\n }));\n\n lastMousePosRef.current = { x, y };\n return;\n }\n\n let hoveredNode;\n\n // Button hover detection logic\n if (selectedNode && canvasRef.current && buttonImages.length > 0) {\n const buttonRadius = (config.nodeSizeBase * config.nodeAreaFactor) / 2;\n\n // Scale coordinates based on canvas display size\n const canvasScaleX = canvasRef.current.width / rect.width;\n const canvasScaleY = canvasRef.current.height / rect.height;\n\n // Scaled mouse coordinates in canvas coordinate system\n const scaledMouseX = x * canvasScaleX;\n const scaledMouseY = y * canvasScaleY;\n\n // Apply current transformation to get world coordinates\n const worldX = (scaledMouseX - transform.x) / transform.k;\n const worldY = (scaledMouseY - transform.y) / transform.k;\n\n // Node position\n const nodeX = selectedNode.x || 0;\n const nodeY = selectedNode.y || 0;\n\n // Calculate number of buttons and their sectors\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 // Check if mouse is over any button sector\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 = selectedNode; // Set hoveredNode to selectedNode for further processing\n setHoveredButtonIndex(hoveredIndex);\n } else {\n if (hoveredButtonIndex !== null) setHoveredButtonIndex(null);\n }\n\n if (!hoveredNode) {\n // If no node is hovered, reset hoveredNode\n hoveredNode = getNodeAtPosition(x, y);\n }\n handleNodeHover(hoveredNode);\n // Check for hover and update highlighting\n\n // Change cursor style based on hover\n if (canvasRef.current) {\n canvasRef.current.style.cursor = hoveredNode ? 'pointer' : 'default';\n }\n },\n [\n draggedNode,\n getNodeAtPosition,\n isPanning,\n transform,\n handleNodeHover,\n selectedNode,\n buttonImages,\n config,\n hoveredButtonIndex,\n simulationRef,\n lastMousePosRef,\n mouseStartPosRef,\n isDraggingRef,\n isPointInButtonSector,\n canvasRef,\n setTransform,\n setHoveredButtonIndex,\n ]\n );\n\n const handleClick = useCallback((event: React.MouseEvent<HTMLCanvasElement>) => {\n if (mustBeStoppedPropagation.current) {\n event.stopPropagation();\n event.preventDefault();\n }\n mustBeStoppedPropagation.current = false;\n }, []);\n\n // Handle mouse up to end dragging\n const handleMouseUp = useCallback(\n (event: React.MouseEvent<HTMLCanvasElement>) => {\n const wasDragging = isDraggingRef.current;\n\n if (wasDragging) {\n mustBeStoppedPropagation.current = true;\n }\n // Process node clicks or button clicks only if we haven't been dragging\n if (!wasDragging && mouseStartPosRef.current) {\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 // First check if we're clicking on a button of the selected node\n let isButtonClick = false;\n if (selectedNode && hoveredButtonIndex !== null && buttons[hoveredButtonIndex]) {\n // This is a button click, trigger the button's onClick handler\n const button = buttons[hoveredButtonIndex];\n if (button && button.onClick) {\n button.onClick(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 && draggedNode) {\n handleNodeClick(draggedNode);\n } else if (!isButtonClick && !draggedNode) {\n // If we didn't click on a node or a button, it's a background click\n // Only trigger background click if there was no dragging\n handleBackgroundClick();\n }\n }\n }\n\n if (draggedNode && simulationRef.current) {\n // If real dragging occurred, optimize simulation parameters\n if (wasDragging) {\n // Gradually reduce the simulation energy\n simulationRef.current.alphaTarget(0);\n\n // Optimize simulation parameters for better stabilization\n const alphaValue = 0.05; // Low alpha for gentle settling\n const alphaDecayValue = 0.04; // Moderate decay to stop more quickly\n const velocityDecayValue = 0.6; // Standard velocity decay after dragging\n\n simulationRef.current.alpha(alphaValue).alphaDecay(alphaDecayValue);\n simulationRef.current.velocityDecay(velocityDecayValue);\n } else {\n // If it was just a click, not a drag, stop simulation immediately\n simulationRef.current.alphaTarget(0);\n }\n\n // Release node position regardless of whether it was dragged or clicked\n draggedNode.fx = undefined;\n draggedNode.fy = undefined;\n\n setDraggedNode(null);\n }\n\n // Скидаємо всі стани перетягування\n isDraggingRef.current = false;\n mouseStartPosRef.current = null;\n\n // End panning if active\n if (isPanning) {\n setIsPanning(false);\n }\n },\n [draggedNode, isPanning, hoveredButtonIndex, selectedNode, buttons, handleNodeClick, handleBackgroundClick]\n );\n\n // Handle wheel event for zooming\n const handleWheel = useCallback(\n (event: WheelEvent) => {\n event.stopPropagation();\n event.preventDefault();\n\n if (!canvasRef.current) return;\n\n // Get canvas-relative coordinates\n const rect = canvasRef.current.getBoundingClientRect();\n const x = event.clientX - rect.left;\n const y = event.clientY - rect.top;\n\n // Calculate zoom factor\n const delta = -event.deltaY;\n const scaleFactor = delta > 0 ? 1.1 : 1 / 1.1;\n\n // Calculate new transform with zoom around mouse position\n setTransform((prev) => {\n // Limit zoom level (optional)\n const newScale = prev.k * scaleFactor;\n\n if (newScale < 0.01 || newScale > 10) return prev;\n const newK = prev.k * scaleFactor;\n\n // Calculate new translation to zoom centered on mouse position\n const newX = x - (x - prev.x) * scaleFactor;\n const newY = y - (y - prev.y) * scaleFactor;\n\n return {\n k: newK,\n x: newX,\n y: newY,\n };\n });\n },\n [setTransform]\n );\n\n // Button click handling has been moved directly into the handleMouseDown method\n // This prevents duplicate handling of click events and ensures proper coordination\n // with node selection and dragging logic\n\n useImperativeHandle(\n ref,\n () => ({\n zoomToFit,\n addNodes,\n removeNodes,\n }),\n [zoomToFit, addNodes, removeNodes]\n );\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: isRendering ? 'none' : 'block' }}\n onMouseDown={handleMouseDown}\n onMouseMove={handleMouseMove}\n onMouseUp={handleMouseUp}\n onMouseLeave={handleMouseUp}\n onClick={handleClick}\n // Wheel event is now handled by the useEffect above\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"]}