@cyber-harbour/ui 1.0.45 → 1.0.46

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/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/Sidebar/Sidebar.tsx","../src/Core/Sidebar/SidebarContext.tsx","../src/Core/Sidebar/SidebarItem.tsx","../src/Core/Sidebar/SidebarDelimeter.tsx","../src/Core/Sidebar/SidebarSection.tsx","../src/Core/Typography/Typography.tsx","../src/Core/ListMenu/ListMenu.tsx","../src/Core/ListMenu/ListMenuItem.tsx","../src/Core/ListMenu/ListMenuSection.tsx","../src/Core/Header/Header.tsx","../src/Core/Header/HeaderDelimeter.tsx","../src/Core/Header/HeaderSection.tsx","../src/Core/Table/Row.tsx","../src/Core/Table/Cell.tsx","../src/Core/Table/Table.tsx","../src/Core/Pagination/Pagination.tsx","../src/Core/ContextMenu/ContextMenu.tsx","../src/Core/ContextMenu/ContextMenuDelimiter.tsx","../src/Core/ContextMenu/useContextMenuControl.ts","../src/Core/Select/Select.tsx","../src/Core/RowActionsMenu/RowActionsMenu.tsx","../src/Core/Input/Input.tsx","../src/Core/Flex/FlexContainer.tsx","../src/Core/Flex/FlexItem.tsx","../src/Core/Box/Box.tsx","../src/Core/Line/Line.tsx","../src/Core/EmptyData/EmptyData.tsx","../src/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","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","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","PageLayout","header","sidebar","StyledMain","$withHeader","$withSidebar","maxWidth","$maxWidth","LoaderWrapper","GraphLoader","ContentLoader","GraphLoader_default","imgEyeLightIcon","eye_light_default","imgEyeLightHoverIcon","eye_light_hover_default","imgGroupLightIcon","group_light_default","imgGroupLightHoverIcon","group_light_hover_default","Graph2D","graphData","linkTarget","linkSource","loading","config","onNodeClick","onNodeHover","onLinkHover","onLinkClick","onBackgroundClick","onClickLoadNodes","highlightNodes","setHighlightNodes","highlightLinks","setHighlightLinks","hoverNode","setHoverNode","selectedNode","setSelectedNode","unVisibleNodes","setUnVisibleNodes","hiddenNodes","setHiddenNodes","hoverTopButton","setHoverTopButton","hoverBottomButton","setHoverBottomButton","isRendering","setIsRendering","fgRef","wrapperRef","tickTimerRef","calculateFontSize","scale","fontSizeRatio","handleNodeHover","node","_","newHighlightNodes","newHighlightLinks","neighbor","link","handleLinkHover","handleEngineTick","timeoutRef","source","n","chargeForce","centerForce","collideForce","forceCollide","err","paintRing","ctx","globalScale","radius","paintNodeButtons","x","y","buttonRadius","iconSize","groupIcon","eyeIcon","renderEyeIcon","renderGroupIcon","hideNode","unvisibles","showNode","handleHideNode","newHiddenNodes","newUnVisibleNodes","isPointInButtonArea","buttonX","buttonY","startAngle","endAngle","dx","dy","distance","angle","isInRadius","isInAngle","handleCanvasMouseMove","event","zoom","nodeX","nodeY","canvasRect","mouseX","mouseY","canvasScaleX","canvasScaleY","scaledMouseX","scaledMouseY","graphCenter","nodeScreenX","nodeScreenY","screenPos","isOverTopButton","isOverBottomButton","truncateText","text","truncated","Wrapper","ForceGraph2D","canvas","clickX","clickY","scaledClickX","scaledClickY","gridSpacing","dotSize","fontColor","scaledFontSize","truncatedLabel","start","end","sourceSize","targetSize","unitDx","unitDy","startRadius","endRadius","adjustedStart","arrowHeadLength","adjustedEnd","adjusteArrowdEnd","lineColor","lineWidth","textWidth","gapLength","halfLineLength","gapHalf","gapStart","gapEnd","arrowHeadWidth","middleX","middleY","padding","FullscreenCard","isActive","position","top","left","right","bottom","$isActive","$top","$left","$right","$bottom","$position"],"mappings":"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","file":"index.js","sourcesContent":["import React from 'react';\nimport styled from 'styled-components';\nimport {\n ButtonVariant,\n ButtonSize,\n ButtonColor,\n getButtonStyles,\n getButtonSizeStyles,\n ButtonElementStyle,\n createComponent,\n FabricComponent,\n} 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","// Індексні шари (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 },\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};\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 },\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};\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 { styled } from 'styled-components';\nimport React from 'react';\nimport { SidebarContext } from './SidebarContext';\n\nexport interface SidebarProps {\n defaultCollapsed?: boolean;\n children: any;\n}\n\ninterface StyledProps {\n $collapsed: boolean;\n}\n\nexport const Sidebar = ({ defaultCollapsed, children }: SidebarProps) => {\n const [collapsed, setCollapsed] = React.useState(!!defaultCollapsed);\n\n return (\n <StyledContainer $collapsed={collapsed}>\n <SidebarContext.Provider\n value={{\n collapsed,\n setCollapsed,\n }}\n >\n {children}\n </SidebarContext.Provider>\n </StyledContainer>\n );\n};\n\nconst StyledContainer = styled.aside<StyledProps>(\n ({ theme, $collapsed }) => `\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n gap: 20px;\n position: sticky;\n z-index: 1000;\n top: 0;\n width: ${theme.sidebar.width};\n padding: 12px;\n height: 100%;\n border-right: 1px solid ${theme.sidebar.border};\n background: ${theme.sidebar.background};\n ${\n $collapsed\n ? `\n width: 65px;\n `\n : ''\n }\n\n &:before {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 25dvh;\n transform: translateY(-100%);\n background: ${theme.sidebar.background};\n border-right: 1px solid ${theme.sidebar.border};\n\n width: ${theme.sidebar.width};\n ${\n $collapsed\n ? `\n width: 65px;\n `\n : ''\n }\n }\n`\n);\n","import { createContext } from 'react';\n\ninterface SidebarContext {\n collapsed: boolean;\n setCollapsed: React.Dispatch<React.SetStateAction<boolean>>;\n}\n\nexport const SidebarContext = createContext<SidebarContext>({\n collapsed: false,\n setCollapsed: () => {},\n});\n","import { SVGProps, useContext } from 'react';\nimport styled from 'styled-components';\nimport { SidebarContext } from './SidebarContext';\n\ninterface SidebarItemBase {\n active?: boolean;\n icon?: React.ComponentType<SVGProps<SVGSVGElement>>;\n label?: string;\n}\n\ninterface SidebarItemAnchor {\n href: string;\n onClick?: (e: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => void;\n target?: '_blank' | '_self' | '_parent' | '_top';\n}\n\ntype StyledProps = {\n $active: SidebarItemBase['active'];\n $collapsed: boolean;\n};\n\ninterface SidebarItemButton {\n type?: 'button' | 'reset' | 'submit';\n onClick?: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;\n}\n\nexport type SidebarItemProps = SidebarItemBase & (SidebarItemAnchor | SidebarItemButton);\n\nexport const SidebarItem = ({ active, icon: Icon, label, ...props }: SidebarItemProps) => {\n const { collapsed } = useContext(SidebarContext);\n\n const isAnchor = 'href' in props;\n\n return (\n <StyledItem\n title={collapsed ? label : ''}\n as={isAnchor ? 'a' : 'button'}\n $collapsed={collapsed}\n $active={active}\n {...props}\n >\n {Icon && <Icon aria-label={label} width={16} height={16} />}\n <StyledText $collapsed={collapsed} $active={active}>\n {label}\n </StyledText>\n </StyledItem>\n );\n};\n\nconst StyledText = styled.span<StyledProps>(\n ({ $collapsed }) => `\n margin-top: 2px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n width: 100%;\n text-align: left;\n display: inline-block;\n font-weight: 500;\n font-size: 14px;\n line-height: 1.49;\n font-family: Inter;\n\n ${\n $collapsed &&\n `\n & {\n width: 0;\n }\n `\n }\n`\n);\n\nconst StyledItem = styled.a<StyledProps>(\n ({ $active, $collapsed, theme }) => `\n display: flex;\n align-items: center;\n gap: 12px;\n padding-inline: 12px;\n height: 40px;\n min-width: 40px;\n border: none;\n cursor: pointer;\n text-decoration: none;\n border-radius: 8px;\n color: ${theme.sidebar.text.default};\n background: ${theme.sidebar.item.default.background};\n transition: background 0.3s ease-in-out, color 0.3s ease-in-out;\n position: relative;\n ${\n $active\n ? `\n background: ${theme.sidebar.item.active.background};\n color: ${theme.sidebar.text.active};\n `\n : ''\n }\n ${$collapsed ? `gap: 0;` : ''}\n\n\n\n &:hover {\n background: ${theme.sidebar.item.hover.background};\n color: ${theme.sidebar.text.hover};\n }\n\n &:before {\n content: '';\n position: absolute;\n left: -12px;\n top: 0;\n height: 100%;\n width: 0px;\n border-top-right-radius: 5px;\n border-bottom-right-radius: 5px;\n background: rgba(0, 0, 0, 0);\n transition: background 0.4s ease-in-out, width 0.3s ease-in-out;\n ${\n $active\n ? `\n background: ${theme.sidebar.text.active};\n width: 5px;\n `\n : ''\n }\n }\n\n svg {\n flex-shrink: 0;\n fill: currentColor;\n }\n`\n);\n","import { useContext } from 'react';\nimport { SidebarContext } from './SidebarContext';\nimport { styled } from 'styled-components';\n\ntype StyledProps = {\n $collapsed: boolean;\n};\n\nexport const SidebarDelimeter = () => {\n const { collapsed } = useContext(SidebarContext);\n return <StyledDelimeter $collapsed={collapsed} />;\n};\n\nconst StyledDelimeter = styled.div<StyledProps>(\n ({ $collapsed, theme }) => `\n min-width: 32px;\n width: 0;\n\n border-bottom: 1px dashed ${theme.sidebar.delimeter.color};\n margin-block: 8px;\n margin-left: 4px;\n\n ${\n !$collapsed &&\n `\n & {\n width: 100%;\n margin-left: 0;\n }\n `\n }\n`\n);\n","import { CSSProperties, styled } from 'styled-components';\n\nexport interface SidebarSectionProps {\n grow?: number;\n shrink?: number;\n basis?: CSSProperties['flexBasis'];\n items: React.ReactElement[];\n}\n\nexport const SidebarSection = ({ grow, shrink, basis, items }: SidebarSectionProps) => {\n return (\n <StyledSection $grow={grow} $shrink={shrink} $basis={basis}>\n {items}\n </StyledSection>\n );\n};\n\ninterface StyledProps {\n $grow?: number;\n $shrink?: number;\n $basis?: CSSProperties['flexBasis'];\n}\n\nconst StyledSection = styled.div<StyledProps>(\n ({ $grow = 0, $shrink = 1, $basis = '100%' }) => `\n flex: ${$grow} ${$shrink} ${$basis};\n display: flex;\n flex-direction: column;\n gap: 1px;\n `\n);\n","import styled from 'styled-components';\nimport { CSSProperties, ElementType } from 'react';\nimport { ColorVariant, createComponent, FabricComponent, TypographyVariant } from '../../Theme';\nimport { resolveThemeColor } from '../../Theme/utils';\n\ntype TypographyProps = FabricComponent<{\n style?: CSSProperties;\n variant?: TypographyVariant;\n element?: ElementType;\n children: any;\n weight?: CSSProperties['fontWeight'];\n fontStyle?: CSSProperties['fontStyle'];\n color?: ColorVariant | string;\n className?: string;\n ellipsis?: boolean;\n}>;\n\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 { 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 position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n display: flex;\n align-items: center;\n justify-content: center;\n z-index: 10;\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 ForceGraph2D, { ForceGraphMethods, LinkObject, NodeObject } from 'react-force-graph-2d';\nimport { Graph2DProps } from './types';\nimport { useEffect, useRef, useState, useCallback } from 'react';\nimport { forceCollide } from 'd3-force';\nimport { styled, useTheme } from 'styled-components';\nimport eyeLightIcon from './eye_light.png';\nimport eyeLightHoverIcon from './eye_light_hover.png';\nimport groupLightIcon from './group_light.png';\nimport groupLightHoverIcon from './group_light_hover.png';\nimport GraphLoader from './GraphLoader';\n\n// Створюємо та налаштовуємо об'єкти зображень\nconst imgEyeLightIcon = new Image();\nimgEyeLightIcon.src = eyeLightIcon.replace('./', '/');\n\nconst imgEyeLightHoverIcon = new Image();\nimgEyeLightHoverIcon.src = eyeLightHoverIcon.replace('./', '/');\n\nconst imgGroupLightIcon = new Image();\nimgGroupLightIcon.src = groupLightIcon.replace('./', '/');\n\nconst imgGroupLightHoverIcon = new Image();\nimgGroupLightHoverIcon.src = groupLightHoverIcon.replace('./', '/');\n\nexport const Graph2D = ({\n graphData,\n width,\n height,\n linkTarget,\n linkSource,\n loading = false,\n config = {\n fontSize: 3, // Максимальний розмір шрифту при максимальному зумі\n nodeSizeBase: 30, // Базовий розмір вузла\n nodeAreaFactor: 2, // Фактор збільшення розміру вузла для відображення області (hover)\n textPaddingFactor: 0.9, // Скільки разів текст може бути ширшим за розмір вузла\n gridSpacing: 20, // Відстань між точками сітки\n dotSize: 1, // Розмір точки сітки,\n maxZoom: 4, // Максимальний зум\n },\n onNodeClick,\n onNodeHover,\n onLinkHover,\n onLinkClick,\n onBackgroundClick,\n onClickLoadNodes,\n}: Graph2DProps) => {\n const theme = useTheme();\n\n // Стан для підсвічування вузлів і зв'язків\n const [highlightNodes, setHighlightNodes] = useState(new Set());\n const [highlightLinks, setHighlightLinks] = useState(new Set());\n const [hoverNode, setHoverNode] = useState<any>(null);\n const [selectedNode, setSelectedNode] = useState<any>(null);\n const [unVisibleNodes, setUnVisibleNodes] = useState(new Set<string>());\n const [hiddenNodes, setHiddenNodes] = useState(new Set<string>());\n // Стани для відстеження наведення на кнопки\n const [hoverTopButton, setHoverTopButton] = useState(false);\n const [hoverBottomButton, setHoverBottomButton] = useState(false);\n const [isRendering, setIsRendering] = useState(true);\n\n const fgRef = useRef<\n ForceGraphMethods & {\n tick?: number;\n }\n >(null) as React.MutableRefObject<\n ForceGraphMethods<NodeObject, LinkObject> & {\n tick?: number;\n }\n >;\n const wrapperRef = useRef<HTMLDivElement>(null);\n const tickTimerRef = useRef<NodeJS.Timeout | null>(null);\n\n // Функція для реверсивного масштабування тексту\n // При максимальному зумі текст має розмір config.fontSize\n // При зменшенні зуму текст також зменшується\n const calculateFontSize = (scale: number): number => {\n // Обмежуємо масштаб до config.maxZoom\n const limitedScale = Math.min(scale, config.maxZoom);\n\n // Обчислюємо коефіцієнт масштабування: при максимальному зумі = 1, при мінімальному - менше\n const fontSizeRatio = limitedScale / config.maxZoom;\n\n return Math.max(config.fontSize * fontSizeRatio, config.fontSize);\n };\n\n // Обробка подій наведення на вузол\n const handleNodeHover = (node: NodeObject | null, _: NodeObject | null) => {\n const newHighlightNodes = new Set();\n const newHighlightLinks = new Set();\n\n if (node) {\n newHighlightNodes.add(node);\n\n // Додавання сусідніх вузлів і зв'язків до підсвічування\n // Перевіряємо наявність сусідів і зв'язків\n if (node.neighbors) {\n node.neighbors.forEach((neighbor: any) => newHighlightNodes.add(neighbor));\n }\n\n if (node.links) {\n node.links.forEach((link: any) => newHighlightLinks.add(link));\n }\n }\n\n onNodeHover?.(node);\n\n setHoverNode(node || null);\n setHighlightNodes(newHighlightNodes);\n setHighlightLinks(newHighlightLinks);\n };\n\n // Обробка подій наведення на зв'язок\n const handleLinkHover = (link: any) => {\n const newHighlightNodes = new Set();\n const newHighlightLinks = new Set();\n\n if (link) {\n newHighlightLinks.add(link);\n newHighlightNodes.add(link.source);\n newHighlightNodes.add(link.target);\n onLinkHover?.(link);\n }\n\n setHighlightNodes(newHighlightNodes);\n setHighlightLinks(newHighlightLinks);\n };\n\n const handleEngineTick = () => {\n if (isRendering) {\n if (fgRef.current && graphData) {\n if (fgRef.current.tick && graphData.nodes.length > 0 && graphData.nodes.length <= fgRef.current.tick) {\n if (tickTimerRef.current) {\n clearTimeout(tickTimerRef.current);\n }\n fgRef.current.zoomToFit(0, 20);\n setIsRendering(false);\n } else {\n fgRef.current.tick = fgRef.current.tick ? (fgRef.current.tick = fgRef.current.tick + 1) : 1;\n if (tickTimerRef.current) {\n clearTimeout(tickTimerRef.current);\n }\n tickTimerRef.current = setTimeout(() => {\n //force tick check\n if (fgRef.current) {\n fgRef.current.zoomToFit(0, 20);\n setIsRendering(false);\n }\n }, 1500);\n }\n }\n }\n };\n\n useEffect(() => {\n const timeoutRef = tickTimerRef.current;\n\n return () => {\n if (timeoutRef) {\n clearTimeout(timeoutRef);\n }\n };\n }, []);\n\n // Створення взаємозв'язків між вузлами\n useEffect(() => {\n if (!graphData) return;\n\n // Прив'язка вузлів до їхніх сусідів та зв'язків\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 // Ініціалізація масивів, якщо вони відсутні\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 // Додаємо різні сили для уникнення перекриття вузлів\n if (fgRef.current) {\n // 1. Додаємо силу відштовхування між всіма вузлами (charge force)\n const chargeForce = fgRef.current.d3Force('charge');\n if (chargeForce) {\n chargeForce\n .strength(config.nodeSizeBase) // Збільшуємо силу відштовхування (negative for repulsion)\n .distanceMax(50); // Максимальна дистанція, на якій діє ця сила\n }\n\n // 2. Додаємо силу центрування для кращої організації графа\n const centerForce = fgRef.current.d3Force('center');\n if (centerForce) {\n centerForce.strength(0.05); // Невелике притягування до центру\n }\n\n // 3. Додаємо силу колізії через імпортовану функцію forceCollide\n try {\n const collideForce = forceCollide()\n .radius((node: any) => {\n // Визначаємо радіус колізії на основі розміру вузла\n const nodeSize = node.size || config.nodeSizeBase;\n return nodeSize * 1.5; // Більший відступ для кращої сепарації\n })\n .iterations(3) // Більше ітерацій для точнішого розрахунку\n .strength(1); // Максимальна сила (1 - тверде обмеження)\n\n fgRef.current.d3Force('collide', collideForce);\n } catch (err) {\n console.error('Error setting up collision force:', err);\n }\n }\n }, [graphData]);\n\n useEffect(() => {\n if (!isRendering && fgRef.current) {\n setIsRendering(true);\n fgRef.current.tick = 0;\n fgRef.current.d3ReheatSimulation();\n }\n }, [graphData]);\n\n // Функція для малювання кільця навколо підсвічених вузлів\n const paintRing = useCallback(\n (node: any, ctx: CanvasRenderingContext2D, globalScale: number) => {\n // Отримуємо розмір вузла\n const radius = (config.nodeSizeBase * config.nodeAreaFactor * 0.75) / 2;\n\n // Малюємо кільце навколо вузла\n ctx.beginPath();\n ctx.arc(node.x, node.y, radius, 0, 2 * Math.PI, false);\n ctx.fillStyle = theme.graph2D.ring.highlightFill;\n ctx.fill();\n },\n [config]\n );\n\n // Функція для малювання кнопок навколо вузла при наведенні\n const paintNodeButtons = useCallback(\n (node: any, ctx: CanvasRenderingContext2D, globalScale: number) => {\n const { x, y } = node;\n const buttonRadius = (config.nodeSizeBase * config.nodeAreaFactor) / 2;\n\n // Зберігаємо стан контексту\n ctx.save();\n\n // Кнопка \"сховати\" (верхня частина кільця)\n ctx.beginPath();\n ctx.arc(x, y, buttonRadius, Math.PI, Math.PI * 2, false);\n ctx.lineWidth = 1;\n ctx.strokeStyle = theme.graph2D.button.stroke;\n ctx.stroke();\n ctx.fillStyle = hoverTopButton ? theme.graph2D.button.hoverFill : theme.graph2D.button.normalFill;\n ctx.fill();\n\n // Лінія розділення між кнопками\n ctx.beginPath();\n ctx.moveTo(x - buttonRadius, y);\n ctx.lineTo(x + buttonRadius, y);\n ctx.lineWidth = 1;\n ctx.strokeStyle = theme.graph2D.button.stroke;\n ctx.stroke();\n\n // Кнопка \"згорнути\" (нижня частина кільця)\n ctx.beginPath();\n ctx.arc(x, y, buttonRadius, Math.PI * 2, Math.PI, false);\n ctx.lineWidth = 1;\n ctx.strokeStyle = theme.graph2D.button.stroke;\n ctx.stroke();\n ctx.fillStyle = hoverBottomButton ? theme.graph2D.button.hoverFill : theme.graph2D.button.normalFill;\n ctx.fill();\n\n // Додаємо іконку хрестика для кнопки \"сховати вузол\"\n const iconSize = buttonRadius * 0.3; // Розмір іконки відносно радіуса кнопки (зменшено вдвічі)\n\n // Вибір іконки в залежності від стану наведення для верхньої кнопки (сховати)\n const groupIcon = hoverBottomButton ? imgGroupLightHoverIcon : imgGroupLightIcon;\n // Додаємо іконку ока для кнопки \"згорнути дочірні вузли\"\n const eyeIcon = hoverTopButton ? imgEyeLightHoverIcon : imgEyeLightIcon;\n\n const renderEyeIcon = () => {\n try {\n ctx.drawImage(eyeIcon, x - iconSize / 2, y - (buttonRadius * 2) / 4 - iconSize - 1, iconSize, iconSize);\n } catch (error) {\n console.warn('Error rendering group icon:', error);\n }\n };\n // Використовуємо безпосередньо зображення, якщо воно вже завантажене\n if (eyeIcon.complete) {\n // Розміщуємо іконку в центрі верхньої половини кнопки\n renderEyeIcon();\n } else {\n // Якщо зображення ще не завантажене, додаємо обробник завершення завантаження\n eyeIcon.onload = () => {\n renderEyeIcon();\n };\n\n eyeIcon.onerror = () => {\n console.warn('Error loading group icon image');\n };\n }\n\n const renderGroupIcon = () => {\n try {\n ctx.drawImage(groupIcon, x - iconSize / 2, y + (buttonRadius * 2) / 4 + 1, iconSize, iconSize);\n } catch (error) {\n console.warn('Error rendering eye icon:', error);\n }\n };\n // Використовуємо безпосередньо зображення, якщо воно вже завантажене\n if (groupIcon.complete) {\n // Розміщуємо іконку в центрі нижньої половини кнопки\n\n renderGroupIcon();\n } else {\n // Якщо зображення ще не завантажене, додаємо обробник завершення завантаження\n groupIcon.onload = () => {\n renderGroupIcon();\n };\n\n groupIcon.onerror = () => {\n console.warn('Error loading eye icon image');\n };\n }\n\n ctx.restore();\n },\n [config, hoverTopButton, hoverBottomButton]\n );\n\n const hideNode = (unvisibles: Set<string>, node: NodeObject) => {\n if (node && node.id && !unvisibles.has(`${node.id}`) && graphData) {\n // Прив'язка вузлів до їхніх сусідів та зв'язків\n const targets = graphData.links.filter((link: any) => {\n return link.source.id === node.id && link.label !== 'MATCH';\n });\n targets.forEach((link: any) => {\n unvisibles.add(`${link.target.id}`);\n hideNode(unvisibles, link.target);\n });\n }\n };\n\n const showNode = (unvisibles: Set<string>, node: NodeObject) => {\n if (node && node.id && graphData) {\n // Прив'язка вузлів до їхніх сусідів та зв'язків\n const targets = graphData.links.filter((link: any) => {\n return link.source.id === node.id && link.label !== 'MATCH';\n });\n\n targets.forEach((link: any) => {\n if (unvisibles.has(`${link.target.id}`)) {\n if (!hiddenNodes.has(`${link.target.id}`)) {\n unvisibles.delete(`${link.target.id}`);\n showNode(unvisibles, link.target);\n }\n }\n });\n }\n };\n\n // Функція для обробки кліку на кнопку \"сховати вузол\"\n const handleHideNode = (node: any) => {\n const newHiddenNodes = new Set(hiddenNodes);\n const newUnVisibleNodes = new Set(unVisibleNodes);\n if (newHiddenNodes.has(node.id)) {\n newHiddenNodes.delete(node.id);\n showNode(newUnVisibleNodes, node);\n } else {\n newHiddenNodes.add(node.id);\n hideNode(newUnVisibleNodes, node);\n }\n setHiddenNodes(newHiddenNodes);\n setUnVisibleNodes(newUnVisibleNodes);\n };\n\n // Функція для визначення, чи знаходиться точка в межах сектора кола (кнопки)\n const isPointInButtonArea = useCallback(\n (\n x: number, // X координата точки кліку в системі координат canvas\n y: number, // Y координата точки кліку в системі координат canvas\n buttonX: number, // X координата центра вузла в системі координат canvas\n buttonY: number, // Y координата центра вузла в системі координат canvas\n buttonRadius: number, // Радіус кнопки (з урахуванням зуму)\n startAngle: number, // Початковий кут сектора\n endAngle: number // Кінцевий кут сектора\n ): boolean => {\n // Обчислюємо відстань від точки кліку до центру вузла\n const dx = x - buttonX;\n const dy = y - buttonY;\n const distance = Math.sqrt(dx * dx + dy * dy);\n\n // Обчислюємо кут між точкою та горизонтальною віссю\n let angle = Math.atan2(dy, dx);\n if (angle < 0) angle += 2 * Math.PI; // Конвертуємо у діапазон [0, 2π]\n\n // Розширюємо діапазон радіусу для легшого потрапляння по кнопці\n // При більшому зумі можна зменшити цей діапазон для більшої точності\n const minRadiusRatio = 0.5; // Більш точне значення\n const maxRadiusRatio = 1.5; // Більш точне значення\n const isInRadius = distance >= buttonRadius * minRadiusRatio && distance <= buttonRadius * maxRadiusRatio;\n\n // Перевіряємо чи знаходиться кут у межах сектора\n let isInAngle = false;\n\n // Верхня півкуля: від Math.PI до Math.PI * 2\n if (startAngle === Math.PI && endAngle === Math.PI * 2) {\n isInAngle = angle >= Math.PI && angle <= Math.PI * 2;\n }\n // Нижня півкуля: від 0 до Math.PI\n else if (startAngle === 0 && endAngle === Math.PI) {\n isInAngle = angle >= 0 && angle <= Math.PI;\n }\n // Загальний випадок\n else {\n isInAngle =\n (startAngle <= endAngle && angle >= startAngle && angle <= endAngle) ||\n (startAngle > endAngle && (angle >= startAngle || angle <= endAngle));\n }\n\n return isInRadius && isInAngle;\n },\n []\n );\n\n // Додаємо обробник руху миші для відстеження наведення на кнопки\n useEffect(() => {\n const handleCanvasMouseMove = (event: MouseEvent) => {\n if (!hoverNode || !fgRef.current || !wrapperRef.current) {\n // Скидаємо стани наведення, якщо немає активного вузла\n if (hoverTopButton) setHoverTopButton(false);\n if (hoverBottomButton) setHoverBottomButton(false);\n return;\n }\n\n const buttonRadius = (config.nodeSizeBase * config.nodeAreaFactor) / 2;\n const zoom = fgRef.current.zoom() || 1; // Отримуємо поточний зум\n\n // Координати вузла в системі координат графа\n const nodeX = hoverNode.x;\n const nodeY = hoverNode.y;\n\n // Отримуємо позицію canvas відносно вікна\n const canvasRect = wrapperRef.current.getBoundingClientRect();\n\n // Координати миші відносно canvas\n const mouseX = event.clientX - canvasRect.left;\n const mouseY = event.clientY - canvasRect.top;\n\n // Враховуємо співвідношення між реальними розмірами canvas та його відображенням на екрані\n const canvasScaleX = wrapperRef.current.clientWidth / canvasRect.width;\n const canvasScaleY = wrapperRef.current.clientHeight / canvasRect.height;\n\n // Масштабовані координати миші у внутрішній системі координат canvas\n const scaledMouseX = mouseX * canvasScaleX;\n const scaledMouseY = mouseY * canvasScaleY;\n\n // Отримуємо параметри трансформації графа\n const graphCenter = {\n x: wrapperRef.current.clientWidth / 2,\n y: wrapperRef.current.clientHeight / 2,\n };\n\n // Визначаємо координати вузла на екрані\n let nodeScreenX, nodeScreenY;\n\n if (typeof fgRef.current.graph2ScreenCoords === 'function') {\n // Використовуємо API графа для перетворення координат\n const screenPos = fgRef.current.graph2ScreenCoords(nodeX, nodeY);\n if (screenPos) {\n nodeScreenX = screenPos.x;\n nodeScreenY = screenPos.y;\n }\n }\n\n // Якщо метод не доступний, спробуємо обчислити позицію\n if (nodeScreenX === undefined || nodeScreenY === undefined) {\n nodeScreenX = graphCenter.x + nodeX * zoom;\n nodeScreenY = graphCenter.y + nodeY * zoom;\n }\n\n // Перевіряємо наведення на верхню кнопку\n const isOverTopButton = isPointInButtonArea(\n scaledMouseX,\n scaledMouseY,\n nodeScreenX,\n nodeScreenY,\n buttonRadius * zoom,\n Math.PI,\n Math.PI * 2\n );\n\n // Перевіряємо наведення на нижню кнопку\n const isOverBottomButton = isPointInButtonArea(\n scaledMouseX,\n scaledMouseY,\n nodeScreenX,\n nodeScreenY,\n buttonRadius * zoom,\n 0,\n Math.PI\n );\n\n // Оновлюємо стани наведення\n setHoverTopButton(isOverTopButton);\n setHoverBottomButton(isOverBottomButton);\n };\n\n if (wrapperRef.current) {\n wrapperRef.current.addEventListener('mousemove', handleCanvasMouseMove);\n }\n\n return () => {\n if (wrapperRef.current) {\n wrapperRef.current.removeEventListener('mousemove', handleCanvasMouseMove);\n }\n };\n }, [hoverNode, config, isPointInButtonArea, hoverTopButton, hoverBottomButton]);\n\n useEffect(() => {\n if (fgRef.current) fgRef.current.zoomToFit(0, 20); // Автоматичне масштабування графа при першому рендері\n }, [width, height]);\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 const renderGrid = (ctx: CanvasRenderingContext2D, globalScale: number) => {\n if (isRendering || loading) return; // Не малюємо сітку під час рендерингу\n // This will be called before each rendering frame\n ctx.getTransform();\n ctx.save();\n\n // Reset transform to draw the background in screen coordinates\n ctx.setTransform(1, 0, 0, 1, 0, 0);\n\n // Draw background dots\n const { width, height } = 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 < width; x += gridSpacing) {\n for (let y = 0; y < height; y += gridSpacing) {\n ctx.beginPath();\n ctx.arc(x, y, dotSize, 0, 2 * Math.PI);\n ctx.fill();\n }\n }\n\n // Restore original transform for the graph rendering\n ctx.restore();\n };\n\n const renderNodePointerAreaPaint = (\n node: NodeObject,\n color: string,\n ctx: CanvasRenderingContext2D,\n globalScale: number\n ) => {\n const { x, y } = node;\n const radius = selectedNode === node ? (config.nodeSizeBase * config.nodeAreaFactor) / 2 : config.nodeSizeBase / 2;\n\n ctx.beginPath();\n ctx.arc(x as number, y as number, radius, 0, 2 * Math.PI);\n ctx.fillStyle = color; //має бути обовʼязково колір що прийшов з параметрів ForceGraph\n ctx.fill();\n };\n\n const renderNodeCanvasObject = (node: NodeObject, ctx: CanvasRenderingContext2D, globalScale: number) => {\n // Функція для обрізання тексту з трикрапкою (аналог text-overflow: ellipsis)\n\n // Якщо вузол підсвічений, малюємо кільце\n if (highlightNodes.has(node)) {\n // Якщо це наведений вузол, малюємо кнопки\n if (node !== selectedNode) paintRing(node, ctx, globalScale);\n }\n\n if (node === selectedNode) {\n paintNodeButtons(node, ctx, globalScale);\n }\n\n const { x, y, color, fontColor, label } = node;\n\n const size = config.nodeSizeBase;\n const radius = config.nodeSizeBase / 2;\n\n // Малюємо коло\n ctx.beginPath();\n ctx.arc(x as number, y as number, radius, 0, 2 * Math.PI);\n ctx.fillStyle = color;\n\n ctx.fill();\n\n // пігтовока до малювання тексту\n ctx.save();\n ctx.translate(x as number, y as number);\n\n const scaledFontSize = calculateFontSize(globalScale);\n const maxWidth = size * config.textPaddingFactor;\n // Розрахунок максимальної ширини тексту на основі розміру вузла\n // Ширина тексту = діаметр вузла * коефіцієнт розширення\n // Використовуємо globalScale для визначення пропорцій тексту\n ctx.font = `${scaledFontSize}px Sans-Serif`;\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n ctx.fillStyle = fontColor;\n\n const truncatedLabel = truncateText(label, maxWidth, ctx);\n ctx.fillText(truncatedLabel, 0, 0);\n\n ctx.restore();\n };\n\n const renderLinkCanvasObject = (link: NodeObject, ctx: CanvasRenderingContext2D, globalScale: number) => {\n // Отримуємо позиції початку і кінця зв'язку\n const { source, target, label } = link;\n\n // Координати початку і кінця зв'язку\n const start = { x: source.x, y: source.y };\n const end = { x: target.x, y: target.y };\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 sourceSize = config.nodeSizeBase;\n const targetSize = config.nodeSizeBase;\n\n // Нормалізовані вектори для напрямку\n const unitDx = dx / distance;\n const unitDy = dy / distance;\n\n // Скоригований початок і кінець (щоб стрілка не починалася з центру вузла і не закінчувалася в центрі вузла)\n const startRadius = sourceSize / 2;\n const endRadius = targetSize / 2;\n\n // Зміщені позиції початку і кінця\n const adjustedStart = {\n x: start.x + unitDx * startRadius,\n y: start.y + unitDy * startRadius,\n };\n\n // Для кінцевої точки віднімаємо невелику відстань, щоб стрілка не заходила в вузол\n const arrowHeadLength = 4;\n const adjustedEnd = {\n x: end.x - unitDx * (endRadius + arrowHeadLength),\n y: end.y - unitDy * (endRadius + arrowHeadLength),\n };\n\n // Позиція для стрілки (трохи ближче до кінцевого вузла)\n const adjusteArrowdEnd = {\n x: end.x - unitDx * (endRadius + 1),\n y: end.y - unitDy * (endRadius + 1),\n };\n\n // Малюємо лінію зв'язку з урахуванням місця для тексту, якщо він є\n const lineColor = highlightLinks.has(link) ? theme.graph2D.link.highlighted : theme.graph2D.link.normal;\n const lineWidth = highlightLinks.has(link) ? 1.5 : 0.5;\n\n if (label) {\n // Розраховуємо ширину тексту для визначення розміру проміжку\n const scaledFontSize = calculateFontSize(globalScale);\n ctx.font = `${scaledFontSize}px Sans-Serif`;\n const textWidth = ctx.measureText(label).width;\n\n // Розраховуємо довжину проміжку вздовж лінії\n const gapLength = Math.sqrt(textWidth * textWidth + scaledFontSize * scaledFontSize);\n\n // Загальна довжина лінії між вузлами\n const lineLength = distance - startRadius - endRadius - arrowHeadLength;\n\n // Розрахунок відстані від початку до середини і від середини до кінця\n const halfLineLength = lineLength / 2;\n const gapHalf = gapLength / 2;\n\n // Малюємо першу частину лінії (від початку до проміжку)\n if (halfLineLength > gapHalf) {\n // Розрахунок точок перед проміжком\n const gapStart = {\n x: adjustedStart.x + unitDx * (halfLineLength - gapHalf),\n y: adjustedStart.y + unitDy * (halfLineLength - gapHalf),\n };\n\n ctx.beginPath();\n ctx.moveTo(adjustedStart.x, adjustedStart.y);\n ctx.lineTo(gapStart.x, gapStart.y);\n ctx.strokeStyle = lineColor;\n ctx.lineWidth = lineWidth;\n ctx.stroke();\n\n // Розрахунок точок після проміжку\n const gapEnd = {\n x: adjustedStart.x + unitDx * (halfLineLength + gapHalf),\n y: adjustedStart.y + unitDy * (halfLineLength + gapHalf),\n };\n\n ctx.beginPath();\n ctx.moveTo(gapEnd.x, gapEnd.y);\n ctx.lineTo(adjustedEnd.x, adjustedEnd.y);\n ctx.strokeStyle = lineColor;\n ctx.lineWidth = lineWidth;\n ctx.stroke();\n }\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 const angle = Math.atan2(dy, dx);\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 = highlightLinks.has(link) ? theme.graph2D.link.highlighted : theme.graph2D.link.normal;\n ctx.fill();\n ctx.restore();\n\n // Якщо немає мітки, не малюємо текст\n if (!label) return;\n\n // Знаходимо середину лінії для розміщення тексту\n const middleX = start.x + (end.x - start.x) / 2;\n const middleY = start.y + (end.y - start.y) / 2;\n\n // Використовуємо реверсивне масштабування для тексту\n const scaledFontSize = calculateFontSize(globalScale);\n ctx.font = `${scaledFontSize}px Sans-Serif`;\n ctx.fillStyle = theme.graph2D.link.textColor; // Колір тексту\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n\n // Визначення кута нахилу лінії для повороту тексту\n ctx.save();\n // Переміщення до центру лінії та поворот тексту\n ctx.translate(middleX, middleY);\n // Якщо кут близький до вертикального або перевернутий, коригуємо його\n if (Math.abs(angle) > Math.PI / 2) {\n ctx.rotate(angle + Math.PI);\n ctx.textAlign = 'center';\n } else {\n ctx.rotate(angle);\n ctx.textAlign = 'center';\n }\n\n // Рисуємо фон для тексту для кращої читаємості\n const textWidth = ctx.measureText(label).width;\n const padding = 2;\n ctx.fillStyle = highlightLinks.has(link)\n ? theme.graph2D.link.highlightedTextBgColor\n : theme.graph2D.link.textBgColor;\n ctx.fillRect(\n -textWidth / 2 - padding,\n -scaledFontSize / 2 - padding,\n textWidth + padding * 2,\n scaledFontSize + padding * 2\n );\n\n // Малюємо текст\n ctx.fillStyle = highlightLinks.has(link) ? theme.graph2D.link.highlightedTextColor : theme.graph2D.link.textColor;\n ctx.fillText(label, 0, 0);\n\n // Відновлення стану контексту\n ctx.restore();\n };\n\n const handleNodeClick = (node: NodeObject, event: MouseEvent) => {\n if (!node || !fgRef.current) return;\n\n const buttonRadius = (config.nodeSizeBase * config.nodeAreaFactor) / 2;\n const zoom = fgRef.current.zoom() || 1; // Отримуємо поточний зум\n const canvas = event.target as HTMLCanvasElement;\n // Координати вузла в системі координат графа\n const nodeX = node.x as number;\n const nodeY = node.y as number;\n\n // // Отримуємо позицію canvas відносно вікна\n const canvasRect = canvas.getBoundingClientRect();\n\n // Координати кліку відносно canvas\n // event.clientX/Y - це координати кліку відносно вікна браузера\n // віднімаємо координати canvas щоб отримати координати відносно canvas\n // враховуємо також можливий скролінг сторінки\n const clickX = event.clientX - canvasRect.left;\n const clickY = event.clientY - canvasRect.top;\n\n // Враховуємо співвідношення між реальними розмірами canvas та його відображенням на екрані\n // це важливо якщо canvas відмальовується з відмінним від реального розміру\n const canvasScaleX = canvas.width / canvasRect.width;\n const canvasScaleY = canvas.height / canvasRect.height;\n\n // Масштабовані координати кліку у внутрішній системі координат canvas\n const scaledClickX = clickX * canvasScaleX;\n const scaledClickY = clickY * canvasScaleY;\n\n // Отримуємо параметри трансформації графа\n // ForceGraph використовує центр канваса як початок координат\n // і застосовує зум і панорамування до всіх координат\n const graphCenter = {\n x: canvas.width / 2,\n y: canvas.height / 2,\n };\n\n // Спробуємо отримати реальні координати вузла на екрані\n // Якщо доступний метод перетворення координат\n let nodeScreenX, nodeScreenY;\n\n if (typeof fgRef.current.graph2ScreenCoords === 'function') {\n // Використовуємо API графа для перетворення координат\n const screenPos = fgRef.current.graph2ScreenCoords(nodeX, nodeY);\n if (screenPos) {\n nodeScreenX = screenPos.x;\n nodeScreenY = screenPos.y;\n }\n }\n\n // Якщо метод не доступний, спробуємо обчислити позицію\n if (nodeScreenX === undefined || nodeScreenY === undefined) {\n // Це наближене обчислення, яке може бути неточним, але краще ніж нічого\n // Ми припускаємо, що граф знаходиться в центрі канваса і застосовується масштабування\n nodeScreenX = graphCenter.x + nodeX * zoom;\n nodeScreenY = graphCenter.y + nodeY * zoom;\n }\n\n // Перевіряємо клік на верхній кнопці (hide)\n if (\n isPointInButtonArea(\n scaledClickX,\n scaledClickY,\n nodeScreenX,\n nodeScreenY,\n buttonRadius * zoom, // Масштабуємо радіус відповідно до зуму\n Math.PI, // Початковий кут для верхньої півсфери\n Math.PI * 2 // Кінцевий кут для верхньої півсфери\n )\n ) {\n handleHideNode(hoverNode);\n event.stopPropagation();\n return;\n }\n\n // Перевіряємо клік на нижній кнопці\n if (\n isPointInButtonArea(\n scaledClickX,\n scaledClickY,\n nodeScreenX,\n nodeScreenY,\n buttonRadius * zoom, // Масштабуємо радіус відповідно до зуму\n 0, // Початковий кут для нижньої півсфери\n Math.PI // Кінцевий кут для нижньої півсфери\n )\n ) {\n onClickLoadNodes?.(hoverNode);\n event.stopPropagation();\n return;\n }\n // Якщо клік не на кнопках, обробляємо клік на вузлі\n setSelectedNode(node);\n onNodeClick?.(node);\n };\n\n const handleBackgroundClick = (event: MouseEvent) => {\n setSelectedNode(null);\n onBackgroundClick?.();\n };\n\n return (\n <Wrapper ref={wrapperRef}>\n {(loading || isRendering) && <GraphLoader width={width} height={height} />}\n <ForceGraph2D\n ref={fgRef}\n width={width}\n height={height}\n graphData={graphData}\n linkTarget={linkTarget}\n linkSource={linkSource}\n onLinkClick={onLinkClick}\n onNodeClick={handleNodeClick}\n onBackgroundClick={handleBackgroundClick}\n nodeLabel={(node: any) => `${node.label || ''}`} // Показуємо повний текст у тултіпі\n linkLabel={(link: any) => link.label}\n nodeAutoColorBy=\"label\"\n linkCurvature={0}\n // Вимикаємо вбудовані стрілки, оскільки використовуємо свою реалізацію\n linkDirectionalArrowLength={0}\n // Обмеження максимального зуму\n //maxZoom={config.maxZoom}\n minZoom={0.01}\n // Додавання обробників наведення\n onNodeHover={handleNodeHover}\n onLinkHover={handleLinkHover}\n onEngineTick={handleEngineTick}\n d3AlphaMin={0.001}\n d3VelocityDecay={0.4}\n d3AlphaDecay={0.038}\n // Виділення зв'язків при наведенні\n linkWidth={(link: any) => (highlightLinks.has(link) ? 3 : 1)}\n linkColor={(link: any) =>\n highlightLinks.has(link) ? theme.graph2D.link.highlighted : theme.graph2D.link.normal\n }\n onRenderFramePre={renderGrid}\n nodePointerAreaPaint={renderNodePointerAreaPaint}\n nodeCanvasObject={renderNodeCanvasObject}\n linkCanvasObjectMode={() => 'replace'} // 'replace' замість 'after' для повної заміни стандартного рендерингу зв'язків\n linkCanvasObject={renderLinkCanvasObject}\n linkVisibility={(link: any) => {\n if (isRendering) return false; // Не показуємо вузол, якщо граф ще рендериться\n\n // Перевіряємо, чи вузол прихований\n if (hiddenNodes.has(link.source.id) || hiddenNodes.has(link.target.id)) return false;\n // Перевіряємо, чи вузол згорнутий\n if (unVisibleNodes.has(link.source.id) || unVisibleNodes.has(link.target.id)) return false;\n\n return true; // Показуємо вузол, якщо не прихований і не згорнутий\n }}\n nodeVisibility={(node: NodeObject) => {\n if (isRendering) return false; // Не показуємо вузол, якщо граф ще рендериться\n // Перевіряємо, чи вузол прихований\n if (hiddenNodes.has(node.id as string)) return false;\n // Перевіряємо, чи вузол згорнутий\n if (unVisibleNodes.has(node.id as string)) return false;\n return true; // Показуємо вузол, якщо не прихований і не згорнутий\n }}\n />\n </Wrapper>\n );\n};\n\nconst Wrapper = styled.div`\n display: block;\n width: 100%;\n min-width: 0;\n position: relative;\n`;\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/Sidebar/Sidebar.tsx","../src/Core/Sidebar/SidebarContext.tsx","../src/Core/Sidebar/SidebarItem.tsx","../src/Core/Sidebar/SidebarDelimeter.tsx","../src/Core/Sidebar/SidebarSection.tsx","../src/Core/Typography/Typography.tsx","../src/Core/ListMenu/ListMenu.tsx","../src/Core/ListMenu/ListMenuItem.tsx","../src/Core/ListMenu/ListMenuSection.tsx","../src/Core/Header/Header.tsx","../src/Core/Header/HeaderDelimeter.tsx","../src/Core/Header/HeaderSection.tsx","../src/Core/Table/Row.tsx","../src/Core/Table/Cell.tsx","../src/Core/Table/Table.tsx","../src/Core/Pagination/Pagination.tsx","../src/Core/ContextMenu/ContextMenu.tsx","../src/Core/ContextMenu/ContextMenuDelimiter.tsx","../src/Core/ContextMenu/useContextMenuControl.ts","../src/Core/Select/Select.tsx","../src/Core/RowActionsMenu/RowActionsMenu.tsx","../src/Core/Input/Input.tsx","../src/Core/Flex/FlexContainer.tsx","../src/Core/Flex/FlexItem.tsx","../src/Core/Box/Box.tsx","../src/Core/Line/Line.tsx","../src/Core/EmptyData/EmptyData.tsx","../src/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","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","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","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","e","getNodes","getLinks","linkForce","renderGrid","canvasWidth","canvasHeight","gridSpacing","dotSize","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","x","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.js","sourcesContent":["import React from 'react';\nimport styled from 'styled-components';\nimport {\n ButtonVariant,\n ButtonSize,\n ButtonColor,\n getButtonStyles,\n getButtonSizeStyles,\n ButtonElementStyle,\n createComponent,\n FabricComponent,\n} 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","// Індексні шари (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};\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};\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 { styled } from 'styled-components';\nimport React from 'react';\nimport { SidebarContext } from './SidebarContext';\n\nexport interface SidebarProps {\n defaultCollapsed?: boolean;\n children: any;\n}\n\ninterface StyledProps {\n $collapsed: boolean;\n}\n\nexport const Sidebar = ({ defaultCollapsed, children }: SidebarProps) => {\n const [collapsed, setCollapsed] = React.useState(!!defaultCollapsed);\n\n return (\n <StyledContainer $collapsed={collapsed}>\n <SidebarContext.Provider\n value={{\n collapsed,\n setCollapsed,\n }}\n >\n {children}\n </SidebarContext.Provider>\n </StyledContainer>\n );\n};\n\nconst StyledContainer = styled.aside<StyledProps>(\n ({ theme, $collapsed }) => `\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n gap: 20px;\n position: sticky;\n z-index: 1000;\n top: 0;\n width: ${theme.sidebar.width};\n padding: 12px;\n height: 100%;\n border-right: 1px solid ${theme.sidebar.border};\n background: ${theme.sidebar.background};\n ${\n $collapsed\n ? `\n width: 65px;\n `\n : ''\n }\n\n &:before {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 25dvh;\n transform: translateY(-100%);\n background: ${theme.sidebar.background};\n border-right: 1px solid ${theme.sidebar.border};\n\n width: ${theme.sidebar.width};\n ${\n $collapsed\n ? `\n width: 65px;\n `\n : ''\n }\n }\n`\n);\n","import { createContext } from 'react';\n\ninterface SidebarContext {\n collapsed: boolean;\n setCollapsed: React.Dispatch<React.SetStateAction<boolean>>;\n}\n\nexport const SidebarContext = createContext<SidebarContext>({\n collapsed: false,\n setCollapsed: () => {},\n});\n","import { SVGProps, useContext } from 'react';\nimport styled from 'styled-components';\nimport { SidebarContext } from './SidebarContext';\n\ninterface SidebarItemBase {\n active?: boolean;\n icon?: React.ComponentType<SVGProps<SVGSVGElement>>;\n label?: string;\n}\n\ninterface SidebarItemAnchor {\n href: string;\n onClick?: (e: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => void;\n target?: '_blank' | '_self' | '_parent' | '_top';\n}\n\ntype StyledProps = {\n $active: SidebarItemBase['active'];\n $collapsed: boolean;\n};\n\ninterface SidebarItemButton {\n type?: 'button' | 'reset' | 'submit';\n onClick?: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;\n}\n\nexport type SidebarItemProps = SidebarItemBase & (SidebarItemAnchor | SidebarItemButton);\n\nexport const SidebarItem = ({ active, icon: Icon, label, ...props }: SidebarItemProps) => {\n const { collapsed } = useContext(SidebarContext);\n\n const isAnchor = 'href' in props;\n\n return (\n <StyledItem\n title={collapsed ? label : ''}\n as={isAnchor ? 'a' : 'button'}\n $collapsed={collapsed}\n $active={active}\n {...props}\n >\n {Icon && <Icon aria-label={label} width={16} height={16} />}\n <StyledText $collapsed={collapsed} $active={active}>\n {label}\n </StyledText>\n </StyledItem>\n );\n};\n\nconst StyledText = styled.span<StyledProps>(\n ({ $collapsed }) => `\n margin-top: 2px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n width: 100%;\n text-align: left;\n display: inline-block;\n font-weight: 500;\n font-size: 14px;\n line-height: 1.49;\n font-family: Inter;\n\n ${\n $collapsed &&\n `\n & {\n width: 0;\n }\n `\n }\n`\n);\n\nconst StyledItem = styled.a<StyledProps>(\n ({ $active, $collapsed, theme }) => `\n display: flex;\n align-items: center;\n gap: 12px;\n padding-inline: 12px;\n height: 40px;\n min-width: 40px;\n border: none;\n cursor: pointer;\n text-decoration: none;\n border-radius: 8px;\n color: ${theme.sidebar.text.default};\n background: ${theme.sidebar.item.default.background};\n transition: background 0.3s ease-in-out, color 0.3s ease-in-out;\n position: relative;\n ${\n $active\n ? `\n background: ${theme.sidebar.item.active.background};\n color: ${theme.sidebar.text.active};\n `\n : ''\n }\n ${$collapsed ? `gap: 0;` : ''}\n\n\n\n &:hover {\n background: ${theme.sidebar.item.hover.background};\n color: ${theme.sidebar.text.hover};\n }\n\n &:before {\n content: '';\n position: absolute;\n left: -12px;\n top: 0;\n height: 100%;\n width: 0px;\n border-top-right-radius: 5px;\n border-bottom-right-radius: 5px;\n background: rgba(0, 0, 0, 0);\n transition: background 0.4s ease-in-out, width 0.3s ease-in-out;\n ${\n $active\n ? `\n background: ${theme.sidebar.text.active};\n width: 5px;\n `\n : ''\n }\n }\n\n svg {\n flex-shrink: 0;\n fill: currentColor;\n }\n`\n);\n","import { useContext } from 'react';\nimport { SidebarContext } from './SidebarContext';\nimport { styled } from 'styled-components';\n\ntype StyledProps = {\n $collapsed: boolean;\n};\n\nexport const SidebarDelimeter = () => {\n const { collapsed } = useContext(SidebarContext);\n return <StyledDelimeter $collapsed={collapsed} />;\n};\n\nconst StyledDelimeter = styled.div<StyledProps>(\n ({ $collapsed, theme }) => `\n min-width: 32px;\n width: 0;\n\n border-bottom: 1px dashed ${theme.sidebar.delimeter.color};\n margin-block: 8px;\n margin-left: 4px;\n\n ${\n !$collapsed &&\n `\n & {\n width: 100%;\n margin-left: 0;\n }\n `\n }\n`\n);\n","import { CSSProperties, styled } from 'styled-components';\n\nexport interface SidebarSectionProps {\n grow?: number;\n shrink?: number;\n basis?: CSSProperties['flexBasis'];\n items: React.ReactElement[];\n}\n\nexport const SidebarSection = ({ grow, shrink, basis, items }: SidebarSectionProps) => {\n return (\n <StyledSection $grow={grow} $shrink={shrink} $basis={basis}>\n {items}\n </StyledSection>\n );\n};\n\ninterface StyledProps {\n $grow?: number;\n $shrink?: number;\n $basis?: CSSProperties['flexBasis'];\n}\n\nconst StyledSection = styled.div<StyledProps>(\n ({ $grow = 0, $shrink = 1, $basis = '100%' }) => `\n flex: ${$grow} ${$shrink} ${$basis};\n display: flex;\n flex-direction: column;\n gap: 1px;\n `\n);\n","import styled from 'styled-components';\nimport { CSSProperties, ElementType } from 'react';\nimport { ColorVariant, createComponent, FabricComponent, TypographyVariant } from '../../Theme';\nimport { resolveThemeColor } from '../../Theme/utils';\n\ntype TypographyProps = FabricComponent<{\n style?: CSSProperties;\n variant?: TypographyVariant;\n element?: ElementType;\n children: any;\n weight?: CSSProperties['fontWeight'];\n fontStyle?: CSSProperties['fontStyle'];\n color?: ColorVariant | string;\n className?: string;\n ellipsis?: boolean;\n}>;\n\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 { 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"]}