@cyber-harbour/ui 1.0.38 → 1.0.40
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 +51 -49
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +25 -23
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
- package/src/Core/Button/Button.tsx +2 -0
- package/src/Graph2D/Graph2D.tsx +20 -23
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/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/SidebarContext.tsx","../src/Core/Sidebar/Sidebar.tsx","../src/Core/Sidebar/SidebarItem.tsx","../src/Core/Sidebar/SidebarDelimeter.tsx","../src/Core/Sidebar/SidebarSection.tsx","../src/Core/Typography/Typography.tsx","../src/Core/ListMenu/ListMenu.tsx","../src/Core/ListMenu/ListMenuItem.tsx","../src/Core/ListMenu/ListMenuSection.tsx","../src/Core/Header/Header.tsx","../src/Core/Header/HeaderDelimeter.tsx","../src/Core/Header/HeaderSection.tsx","../src/Core/Table/Row.tsx","../src/Core/Table/Cell.tsx","../src/Core/Table/Table.tsx","../src/Core/Pagination/Pagination.tsx","../src/Core/ContextMenu/ContextMenu.tsx","../src/Core/ContextMenu/ContextMenuDelimiter.tsx","../src/Core/ContextMenu/useContextMenuControl.ts","../src/Core/Select/Select.tsx","../src/Core/RowActionsMenu/RowActionsMenu.tsx","../src/Core/Input/Input.tsx","../src/Core/Flex/FlexContainer.tsx","../src/Core/Flex/FlexItem.tsx","../src/Core/Box/Box.tsx","../src/Core/Line/Line.tsx","../src/Core/EmptyData/EmptyData.tsx","../src/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","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","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","ref","Group","InputGroup","IconWrapper","$error","FlexContainer","direction","wrap","alignContent","gap","rowGap","columnGap","as","StyledFlexContainer","$direction","$wrap","$align","$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","height","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","highlightNodes","setHighlightNodes","highlightLinks","setHighlightLinks","hoverNode","setHoverNode","selectedNode","setSelectedNode","unVisibleNodes","setUnVisibleNodes","hiddenNodes","setHiddenNodes","collapsedNodes","setCollapsedNodes","hoverTopButton","setHoverTopButton","hoverBottomButton","setHoverBottomButton","isRendering","setIsRendering","fgRef","wrapperRef","tickTimerRef","calculateFontSize","scale","fontSizeRatio","handleNodeHover","node","_","newHighlightNodes","newHighlightLinks","neighbor","link","handleLinkHover","handleEngineTick","useEffect","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","handleCollapseChildren","newCollapsedNodes","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`;\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\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\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 },\n small: {\n fontSize: 14,\n paddingInline: 10,\n paddingBlock: 10,\n borderRadius: 5,\n iconSize: 14,\n height: 40,\n },\n medium: {\n fontSize: 16,\n paddingInline: 10,\n paddingBlock: 10,\n borderRadius: 5,\n iconSize: 16,\n height: 40,\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: '#FAFAFA',\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: '#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: '#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: '#FAFAFA',\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 },\n small: {\n fontSize: 14,\n paddingInline: 10,\n paddingBlock: 10,\n borderRadius: 5,\n iconSize: 14,\n height: 40,\n },\n medium: {\n fontSize: 16,\n paddingInline: 10,\n paddingBlock: 10,\n borderRadius: 5,\n iconSize: 16,\n height: 40,\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: '#FAFAFA',\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: '#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: '#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 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 { createContext } from 'react';\n\ninterface SidebarContext {\n collapsed: boolean;\n setCollapsed: React.Dispatch<React.SetStateAction<boolean>>;\n}\n\nexport const SidebarContext = createContext<SidebarContext>({\n collapsed: false,\n setCollapsed: () => {},\n});\n","import { styled } from 'styled-components';\nimport React from 'react';\nimport { SidebarContext } from './SidebarContext';\n\nexport interface SidebarProps {\n defaultCollapsed?: boolean;\n children: any;\n}\n\ninterface StyledProps {\n $collapsed: boolean;\n}\n\nexport const Sidebar = ({ defaultCollapsed, children }: SidebarProps) => {\n const [collapsed, setCollapsed] = React.useState(!!defaultCollapsed);\n\n return (\n <StyledContainer $collapsed={collapsed}>\n <SidebarContext.Provider\n value={{\n collapsed,\n setCollapsed,\n }}\n >\n {children}\n </SidebarContext.Provider>\n </StyledContainer>\n );\n};\n\nconst StyledContainer = styled.aside<StyledProps>(\n ({ theme, $collapsed }) => `\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n gap: 20px;\n position: sticky;\n z-index: 1000;\n top: 0;\n width: ${theme.sidebar.width};\n padding: 12px;\n height: 100%;\n border-right: 1px solid ${theme.sidebar.border};\n background: ${theme.sidebar.background};\n ${\n $collapsed\n ? `\n width: 65px;\n `\n : ''\n }\n\n &:before {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 25dvh;\n transform: translateY(-100%);\n background: ${theme.sidebar.background};\n border-right: 1px solid ${theme.sidebar.border};\n\n width: ${theme.sidebar.width};\n ${\n $collapsed\n ? `\n width: 65px;\n `\n : ''\n }\n }\n`\n);\n","import { SVGProps, useContext } from 'react';\nimport styled from 'styled-components';\nimport { SidebarContext } from './SidebarContext';\n\ninterface SidebarItemBase {\n active?: boolean;\n icon?: React.ComponentType<SVGProps<SVGSVGElement>>;\n label?: string;\n}\n\ninterface SidebarItemAnchor {\n href: string;\n onClick?: (e: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => void;\n target?: '_blank' | '_self' | '_parent' | '_top';\n}\n\ntype StyledProps = {\n $active: SidebarItemBase['active'];\n $collapsed: boolean;\n};\n\ninterface SidebarItemButton {\n type?: 'button' | 'reset' | 'submit';\n onClick?: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;\n}\n\nexport type SidebarItemProps = SidebarItemBase & (SidebarItemAnchor | SidebarItemButton);\n\nexport const SidebarItem = ({ active, icon: Icon, label, ...props }: SidebarItemProps) => {\n const { collapsed } = useContext(SidebarContext);\n\n const isAnchor = 'href' in props;\n\n return (\n <StyledItem\n title={collapsed ? label : ''}\n as={isAnchor ? 'a' : 'button'}\n $collapsed={collapsed}\n $active={active}\n {...props}\n >\n {Icon && <Icon aria-label={label} width={16} height={16} />}\n <StyledText $collapsed={collapsed} $active={active}>\n {label}\n </StyledText>\n </StyledItem>\n );\n};\n\nconst StyledText = styled.span<StyledProps>(\n ({ $collapsed }) => `\n margin-top: 2px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n width: 100%;\n text-align: left;\n display: inline-block;\n font-weight: 500;\n font-size: 14px;\n line-height: 1.49;\n font-family: Inter;\n\n ${\n $collapsed &&\n `\n & {\n width: 0;\n }\n `\n }\n`\n);\n\nconst StyledItem = styled.a<StyledProps>(\n ({ $active, $collapsed, theme }) => `\n display: flex;\n align-items: center;\n gap: 12px;\n padding-inline: 12px;\n height: 40px;\n min-width: 40px;\n border: none;\n cursor: pointer;\n text-decoration: none;\n border-radius: 8px;\n color: ${theme.sidebar.text.default};\n background: ${theme.sidebar.item.default.background};\n transition: background 0.3s ease-in-out, color 0.3s ease-in-out;\n position: relative;\n ${\n $active\n ? `\n background: ${theme.sidebar.item.active.background};\n color: ${theme.sidebar.text.active};\n `\n : ''\n }\n ${$collapsed ? `gap: 0;` : ''}\n\n\n\n &:hover {\n background: ${theme.sidebar.item.hover.background};\n color: ${theme.sidebar.text.hover};\n }\n\n &:before {\n content: '';\n position: absolute;\n left: -12px;\n top: 0;\n height: 100%;\n width: 0px;\n border-top-right-radius: 5px;\n border-bottom-right-radius: 5px;\n background: rgba(0, 0, 0, 0);\n transition: background 0.4s ease-in-out, width 0.3s ease-in-out;\n ${\n $active\n ? `\n background: ${theme.sidebar.text.active};\n width: 5px;\n `\n : ''\n }\n }\n\n svg {\n flex-shrink: 0;\n fill: currentColor;\n }\n`\n);\n","import { useContext } from 'react';\nimport { SidebarContext } from './SidebarContext';\nimport { styled } from 'styled-components';\n\ntype StyledProps = {\n $collapsed: boolean;\n};\n\nexport const SidebarDelimeter = () => {\n const { collapsed } = useContext(SidebarContext);\n return <StyledDelimeter $collapsed={collapsed} />;\n};\n\nconst StyledDelimeter = styled.div<StyledProps>(\n ({ $collapsed, theme }) => `\n min-width: 32px;\n width: 0;\n\n border-bottom: 1px dashed ${theme.sidebar.delimeter.color};\n margin-block: 8px;\n margin-left: 4px;\n\n ${\n !$collapsed &&\n `\n & {\n width: 100%;\n margin-left: 0;\n }\n `\n }\n`\n);\n","import { CSSProperties, styled } from 'styled-components';\n\nexport interface SidebarSectionProps {\n grow?: number;\n shrink?: number;\n basis?: CSSProperties['flexBasis'];\n items: React.ReactElement[];\n}\n\nexport const SidebarSection = ({ grow, shrink, basis, items }: SidebarSectionProps) => {\n return (\n <StyledSection $grow={grow} $shrink={shrink} $basis={basis}>\n {items}\n </StyledSection>\n );\n};\n\ninterface StyledProps {\n $grow?: number;\n $shrink?: number;\n $basis?: CSSProperties['flexBasis'];\n}\n\nconst StyledSection = styled.div<StyledProps>(\n ({ $grow = 0, $shrink = 1, $basis = '100%' }) => `\n flex: ${$grow} ${$shrink} ${$basis};\n display: flex;\n flex-direction: column;\n gap: 1px;\n `\n);\n","import styled from 'styled-components';\nimport { CSSProperties, ElementType } from 'react';\nimport { ColorVariant, createComponent, FabricComponent, TypographyVariant } from '../../Theme';\nimport { resolveThemeColor } from '../../Theme/utils';\n\ntype TypographyProps = FabricComponent<{\n style?: CSSProperties;\n variant?: TypographyVariant;\n element?: ElementType;\n children: any;\n weight?: CSSProperties['fontWeight'];\n fontStyle?: CSSProperties['fontStyle'];\n color?: ColorVariant | string;\n className?: string;\n ellipsis?: boolean;\n}>;\n\n// Create a styled component that can be dynamically rendered as different HTML elements\nconst StyledTypography = styled(createComponent('div'))<{\n $variant: TypographyVariant;\n $weight?: CSSProperties['fontWeight'];\n $style?: CSSProperties['fontStyle'];\n $color?: ColorVariant | string;\n $ellipsis?: boolean;\n}>(({ theme, $variant, $color, $weight = '400', $style = 'initial', $ellipsis }) => {\n // Resolve color from theme if it's a theme color path, or use the direct color value\n\n return `\n font-size: ${theme.typography.variants[$variant].fontSize};\n font-weight: ${$weight};\n font-style: ${$style};\n color: ${resolveThemeColor(theme, $color) || theme.colors.text.main};\n ${$ellipsis ? 'overflow: hidden; text-overflow: ellipsis; white-space: nowrap;' : ''}\n `;\n});\n\nexport const Typography = ({\n variant = 'body',\n element,\n children,\n weight,\n fontStyle,\n color,\n className,\n style,\n ellipsis = false,\n ...props\n}: TypographyProps) => {\n // Determine which HTML element to render based on the variant if not explicitly specified\n const Element = element || (variant.startsWith('h') ? variant : 'p');\n\n return (\n <StyledTypography\n as={Element}\n $variant={variant}\n $weight={weight}\n $style={fontStyle}\n $color={color}\n $ellipsis={ellipsis}\n className={className}\n style={style}\n {...props}\n >\n {children}\n </StyledTypography>\n );\n};\n","import { ReactNode } from 'react';\nimport { styled } from 'styled-components';\n\nexport interface ListMenuProps {\n children: any;\n width?: number;\n}\n\ntype StyledListProps = {\n $width: number;\n};\nexport const ListMenu = ({ children, width = 220 }: ListMenuProps) => {\n return <StyledList $width={width}>{children}</StyledList>;\n};\n\nconst StyledList = styled.ul<StyledListProps>(\n ({ theme, $width }) => `\n margin: 0;\n padding: 20px;\n width: ${$width}px;\n list-style: none;\n height: 100%;\n overflow-y: auto;\n background-color: ${theme.colors.background};\n border-right: 1px solid ${theme.colors.stroke.light};\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n gap: 40px;\n `\n);\n","import { FC } from 'react';\nimport { styled } from 'styled-components';\n\nexport type ListMenuItemBase = {\n active?: boolean;\n label?: string;\n count?: number;\n};\n\nexport type ListMenuItemAnchorProps = {\n href: string;\n onClick?: (e: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => void;\n target?: '_blank' | '_self' | '_parent' | '_top';\n};\n\nexport type ListMenuItemButtonProps = {\n type?: 'button' | 'reset' | 'submit';\n onClick?: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;\n};\n\nexport type ListMenuItemProps = ListMenuItemBase & (ListMenuItemAnchorProps | ListMenuItemButtonProps);\n\ntype StyledProps = {\n $active: ListMenuItemProps['active'];\n};\n\nexport const ListMenuItem = ({ active, label, count, ...props }: ListMenuItemProps) => {\n const Element = 'href' in props ? 'a' : 'button';\n return (\n <StyledItem $active={active}>\n <StyledLink as={'href' in props ? 'a' : 'button'} $active={active} {...props}>\n {label}\n {typeof count === 'number' && <StyledCount $active={active}>{count}</StyledCount>}\n </StyledLink>\n </StyledItem>\n );\n};\nconst StyledItem = styled.li<StyledProps>(\n ({ theme, $active }) => `\n position: relative;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n width: 100%;\n &:not(:last-child) {\n margin-bottom: 4px;\n }\n\n ::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 2px;\n height: ${$active ? '100%' : 0};\n border-radius: 2px;\n transform: translateX(-25%);\n background-color: ${$active ? theme.colors.primary.main : 'transparent'};\n transition: background-color 0.3s ease-in-out, height 0.3s ease-in-out;\n }\n `\n);\n\nconst StyledLink = styled.a<StyledProps>(\n ({ theme, $active }) => `\n display: inline-block;\n \n padding: 8px 10px;\n border: none;\n outline: none;\n cursor: pointer;\n text-decoration: none;\n background-color: transparent;\n border-radius: 8px;\n \n width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n \n font-family: Inter;\n font-weight: 500;\n font-size: 14px;\n line-height: 1.5;\n text-align: left;\n color: ${$active ? theme.colors.primary.main : theme.colors.text.main};\n\n transition: background-color 0.3s ease-in-out, color 0.3s ease-in-out;\n\n &:hover {\n color: ${theme.colors.primary.main};\n }`\n);\n\nconst StyledCount = styled.span<StyledProps>(\n ({ theme, $active }) => `\n margin-left: 8px;\n padding: 2px 4px;\n border-radius: 4px;\n background-color: ${$active ? theme.colors.primary.lightest2 : theme.colors.stroke.lighter};\n color: inherit;\n line-height: 1.5;\n transition: background-color 0.3s ease-in-out, color 0.3s ease-in-out;\n `\n);\n","import { ReactNode } from 'react';\nimport { styled } from 'styled-components';\n\nexport interface ListMenuSectionProps {\n items: any;\n title?: string;\n}\nexport const ListMenuSection = ({ title, items }: ListMenuSectionProps) => {\n return (\n <li>\n {!!title && <StyledTitle>{title}</StyledTitle>}\n <StyledList>{items}</StyledList>\n </li>\n );\n};\n\nconst StyledTitle = styled.h2(\n ({ theme }) => `\n margin: 0 0 15px 0;\n width: 100%;\n padding: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n font-family: Inter;\n font-weight: 600;\n font-size: 14px;\n line-height: 1;\n letter-spacing: 0.03em;\n text-align: left;\n text-transform: uppercase;\n color: ${theme.colors.text.lighter};\n`\n);\n\nconst StyledList = styled.ul(\n ({ theme }) => `\n margin: 0;\n padding: 0;\n width: 180px;\n list-style: none;\n position: relative;\n &::before {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n width: 1px;\n height: 100%;\n background-color: ${theme.colors.stroke.light};\n }\n `\n);\n","import { styled } from 'styled-components';\n\ninterface HeaderProps {\n children?: any;\n}\n\nexport const Header = ({ children }: HeaderProps) => {\n return <StyledContainer>{children}</StyledContainer>;\n};\n\nconst StyledContainer = styled.header(\n ({ theme }) => `\n display: flex;\n position: sticky;\n top: 0;\n z-index: 1000;\n align-items: center;\n justify-content: space-between;\n padding-left: 12px;\n padding-right: 20px;\n height: 56px;\n background-color: ${theme.colors.background};\n border-bottom: 1px solid ${theme.colors.stroke.light};\n\n &:before {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 25dvh;\n transform: translateY(-100%);\n background: ${theme.colors.background};\n }\n`\n);\n","import { styled } from 'styled-components';\n\nexport const HeaderDelimeter = () => {\n return <StyledDelimeter />;\n};\n\nconst StyledDelimeter = styled.div(\n ({ theme }) => `\n height: 32px;\n border-right: 1px dashed ${theme.colors.stroke.main};\n`\n);\n","import { CSSProperties } from 'react';\nimport { styled } from 'styled-components';\n\ninterface HeaderSectionProps {\n grow?: CSSProperties['flexGrow'];\n shrink?: CSSProperties['flexShrink'];\n basis?: CSSProperties['flexBasis'];\n justify?: CSSProperties['justifyContent'];\n children?: React.ReactNode;\n}\n\ninterface StyledProps {\n $grow?: CSSProperties['flexGrow'];\n $shrink?: CSSProperties['flexShrink'];\n $basis?: CSSProperties['flexBasis'];\n $justify?: CSSProperties['justifyContent'];\n}\n\nexport const HeaderSection = ({ grow, shrink, basis, justify, children }: HeaderSectionProps) => {\n return (\n <StyledSection $grow={grow} $shrink={shrink} $basis={basis} $justify={justify}>\n {children}\n </StyledSection>\n );\n};\n\nconst StyledSection = styled.section<StyledProps>(\n ({ $grow = 1, $shrink = 1, $basis = '100%', $justify = 'space-between' }) => `\n display: flex;\n align-items: center;\n justify-content: ${$justify};\n gap: 20px;\n flex-grow: ${$grow};\n flex-shrink: ${$shrink};\n flex-basis: ${$basis};\n`\n);\n","import { styled } from 'styled-components';\n\nexport const Row = styled.tr``;\n","import { styled } from 'styled-components';\n\nexport const HeadCell = styled.th(\n ({ theme }) => `\n padding-top: 15px;\n padding-bottom: 10px;\n padding-right: 15px;\n :not(:first-of-type) {\n padding-left: 15px;\n }\n\n border-bottom: 1px solid ${theme.colors.stroke.light};\n\n font-family: ${theme.typography.fontFamily};\n font-weight: 500;\n font-size: 14px;\n text-wrap: nowrap;\n text-align: left;\n line-height: 1.5;\n color: ${theme.colors.text.main};\n`\n);\n\nexport const Cell = styled.td(\n ({ theme }) => `\n padding-block: 15px;\n padding-right: 15px;\n :not(:first-of-type) {\n padding-left: 15px;\n }\n border-bottom: 1px solid ${theme.colors.stroke.light};\n\n vertical-align: middle;\n font-family: ${theme.typography.fontFamily};\n font-weight: 500;\n font-size: 14px;\n text-wrap: nowrap;\n text-align: left;\n line-height: 1.5;\n color: ${theme.colors.text.main};\n`\n);\n","import { ReactNode, useMemo, CSSProperties } from 'react';\nimport { styled } from 'styled-components';\nimport { Row } from './Row';\nimport { Cell, HeadCell } from './Cell';\n\nexport type ColumnTable<ID = string> = {\n id: ID;\n title: string;\n width?: CSSProperties['width'];\n className?: string;\n};\n\nexport type RenderCellProps<T = string> = {\n rowIndex: number;\n cellIndex: number;\n columnId: T;\n};\n\nexport type RenderHeaderCellProps<T = string> = {\n title: string;\n columnId: T;\n};\n\ninterface TableProps {\n columns: ColumnTable[];\n rowCount: number;\n renderCell: (props: RenderCellProps<any>) => any;\n renderHeaderCell: (props: RenderHeaderCellProps<any>) => any;\n rowIds?: string[];\n}\n\nexport const Table = ({ columns, rowCount, renderCell, renderHeaderCell, rowIds }: TableProps) => {\n const cellCount = columns.length;\n\n const data = useMemo(() => {\n const items: ReactNode[][] = [];\n for (let i = 0; i < rowCount; i++) {\n items[i] = [];\n for (let j = 0; j < cellCount; j++) {\n items[i][j] = renderCell({\n rowIndex: i,\n cellIndex: j,\n columnId: columns[j].id,\n });\n }\n }\n return items;\n }, [rowCount, cellCount, columns, renderCell]);\n\n return (\n <StyledTable>\n <StyledHead>\n <Row>\n {columns.map(({ id, title, width }) => (\n <HeadCell\n key={id}\n style={{\n width,\n }}\n >\n {renderHeaderCell({ title, columnId: id })}\n </HeadCell>\n ))}\n </Row>\n </StyledHead>\n <tbody>\n {data.map((cells, rowIndex) => (\n <Row key={`row-${rowIndex}`} id={rowIds ? rowIds[rowIndex] : `row-${rowIndex}`}>\n {cells.map((cell, cellIndex) => (\n <Cell className={columns[cellIndex]?.className} key={`cell-${cellIndex}`}>\n {cell}\n </Cell>\n ))}\n </Row>\n ))}\n </tbody>\n </StyledTable>\n );\n};\n\nconst StyledTable = styled.table`\n width: 100%;\n border-spacing: 0;\n table-layout: fixed;\n`;\n\nconst StyledHead = styled.thead(\n ({ theme }) => `\n background-color: ${theme.colors.background};\n position: sticky;\n top: 0;\n z-index: 1;\n`\n);\n","import { FC, useCallback, useMemo } from 'react';\nimport { styled } from 'styled-components';\nimport { ChevronRightIcon } from '../IconComponents';\nimport { ChevronLeftIcon } from '../IconComponents';\n\nexport interface PaginationProps {\n total_items: number;\n limit: number;\n offset: number;\n onChangePage: (offset: number) => void;\n}\n\nconst PAGINATION_LIMIT = 9;\nconst DIFF = 2;\nconst VISIBLE_GROUPE = 5;\nconst STEP = 1;\nconst ELLIPSIS = '...';\n\nexport const Pagination = ({ total_items, limit, offset, onChangePage }: PaginationProps) => {\n const currentPage = useMemo(() => (offset ? offset / limit + 1 : 1), [limit, offset]);\n const pages = Math.ceil(total_items / limit);\n const paginationItems: (number | string)[] = useMemo(() => {\n const items = [];\n if (pages <= PAGINATION_LIMIT) {\n for (let i = 1; i <= pages; i += 1) {\n items.push(i);\n }\n } else {\n const firstPage = 1;\n const lastPage = pages;\n items.push(firstPage);\n if (currentPage <= VISIBLE_GROUPE) {\n for (let i = 2; i <= VISIBLE_GROUPE + 2; i += 1) {\n items.push(i);\n }\n items.push(ELLIPSIS, lastPage);\n } else if (currentPage > VISIBLE_GROUPE && currentPage < lastPage - VISIBLE_GROUPE) {\n items.push(ELLIPSIS);\n for (let i = currentPage - DIFF; i <= currentPage + DIFF; i += 1) {\n items.push(i);\n }\n items.push(ELLIPSIS, lastPage);\n } else {\n items.push(ELLIPSIS);\n for (let i = lastPage - VISIBLE_GROUPE - 1; i <= lastPage; i += 1) {\n items.push(i);\n }\n }\n }\n return items;\n }, [currentPage, pages]);\n\n const isDisabled = useCallback(\n (page: number | string) => typeof page === 'string' || page === currentPage,\n [currentPage]\n );\n const onPaginationClick = useCallback(\n (page: number | string) => {\n if (isDisabled(page)) return;\n onChangePage(page as number);\n },\n [onChangePage, isDisabled]\n );\n return (\n <FlexGroup>\n <Button\n aria-label=\"previous page\"\n onClick={() => onPaginationClick(currentPage - STEP)}\n disabled={currentPage === 1}\n >\n <ChevronLeftIcon />\n </Button>\n <StyledList>\n {paginationItems.map((page, idx) => (\n <li key={`pagination-${page}-${idx}`}>\n <Button $current={page === currentPage} onClick={() => onPaginationClick(page)}>\n {page}\n </Button>\n </li>\n ))}\n </StyledList>\n <Button\n aria-label=\"next page\"\n onClick={() => onPaginationClick(currentPage + STEP)}\n disabled={!total_items || currentPage === pages}\n >\n <ChevronRightIcon />\n </Button>\n </FlexGroup>\n );\n};\n\ntype StyledButtonProps = {\n $current?: boolean;\n};\n\nconst StyledList = styled.div`\n list-style: none;\n padding: 0;\n display: flex;\n gap: 6px;\n`;\nconst Button = styled.button<StyledButtonProps>(\n ({ theme, $current }) => `\n font-family: ${theme.typography.fontFamily};\n background-color: ${$current ? theme.colors.primary.main : theme.colors.background};\n color: ${$current ? theme.colors.background : theme.colors.text.main};\n border: none;\n cursor: pointer;\n padding-block: 4px;\n padding-inline: 8px;\n border-radius: 3px;\n font-size: 14px;\n font-weight: 400;\n display: flex;\n align-items: center;\n justify-content: center;\n height: 26px;\n svg {\n width: 8px;\n height: 8px;\n}\n &:hover {\n background-color: ${theme.colors.primary.light};\n }\n transition: background-color 0.3s ease-in-out;\n`\n);\nconst FlexGroup = styled.div`\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 6px;\n`;\n","import { ButtonSize, getButtonSizeStyles } from '../../Theme';\nimport { useRef } from 'react';\nimport { Popover, PopoverAlign, PopoverPosition } from 'react-tiny-popover';\nimport { styled, useTheme } from 'styled-components';\nimport { ChevronDownIcon, ChevronUpIcon } from '../IconComponents';\n\ninterface ContextMenuProps {\n isOpen: boolean;\n onClick: () => void;\n onClickOutside: (e: MouseEvent) => void;\n size?: ButtonSize;\n disabled?: boolean;\n fullWidth?: boolean;\n className?: string;\n children?: any;\n anchor?: any;\n positions?: PopoverPosition[] | PopoverPosition;\n align?: PopoverAlign;\n hasBorder?: boolean;\n maxHeight?: number;\n}\n\nexport const ContextMenu = ({\n isOpen,\n onClickOutside,\n onClick,\n anchor,\n size = 'medium',\n disabled,\n fullWidth,\n className,\n positions = ['bottom'],\n align = 'start',\n children,\n hasBorder = true,\n maxHeight = 500,\n}: ContextMenuProps) => {\n const buttonRef = useRef<HTMLButtonElement | null>(null);\n\n const theme = useTheme();\n\n return (\n <Popover\n padding={theme.contextMenu.padding}\n isOpen={isOpen}\n positions={positions}\n align={align}\n onClickOutside={onClickOutside}\n content={children}\n containerStyle={{\n backgroundColor: theme.colors.background,\n border: `1px solid ${theme.colors.stroke.light}`,\n boxShadow: '0px 0px 10px 0px rgba(0, 0, 0, 0.25)',\n borderRadius: '5px',\n overflow: 'auto',\n maxHeight: `${maxHeight}px`,\n zIndex: `${9999}`,\n }}\n >\n <StyledButton\n ref={buttonRef}\n onClick={onClick}\n $disabled={disabled}\n $fullWidth={fullWidth}\n $size={size}\n className={className}\n type=\"button\"\n disabled={disabled}\n $hasBorder={hasBorder}\n >\n <div>{anchor}</div>\n {isOpen ? (\n <ChevronUpIcon width={theme.contextMenu.icon.size} height={theme.contextMenu.icon.size} />\n ) : (\n <ChevronDownIcon width={theme.contextMenu.icon.size} height={theme.contextMenu.icon.size} />\n )}\n </StyledButton>\n </Popover>\n );\n};\n\n// Створюємо стилізований компонент, що використовує уніфіковану палітру\nconst StyledButton = styled.button<{\n $size: ButtonSize;\n $disabled?: boolean;\n $fullWidth?: boolean;\n $hasBorder: boolean;\n}>`\n ${({ $size, $disabled, $fullWidth, theme, $hasBorder }) => {\n const sizes = getButtonSizeStyles(theme, $size);\n return `\n background: ${theme.contextMenu.button.default.background};\n color: ${theme.contextMenu.button.default.text};\n border-color: ${$hasBorder ? theme.contextMenu.button.default.border : 'transparent'};\n box-shadow: ${theme.contextMenu.button.default.boxShadow};\n font-size: ${sizes.fontSize};\n gap: ${sizes.gap};\n padding-block: ${sizes.paddingBlock};\n padding-inline: ${sizes.paddingInline};\n border-radius: ${sizes.borderRadius};\n border-width: ${sizes.borderWidth};\n border-style: solid;\n width: ${$fullWidth ? '100%' : 'auto'};\n cursor: ${$disabled ? 'not-allowed' : 'pointer'};\n font-weight: 500;\n display: inline-flex;\n align-items: center;\n justify-content: ${$fullWidth ? 'space-between' : 'center'};\n text-decoration: none;\n transition: all 0.2s ease;\n outline: none;\n flex-direction: row;\n\n &:hover {\n background: ${theme.contextMenu.button.hover.background};\n color: ${theme.contextMenu.button.hover.text};\n border-color: ${$hasBorder ? theme.contextMenu.button.hover.border : 'transparent'};\n box-shadow: ${theme.contextMenu.button.hover.boxShadow};\n }\n\n &:active {\n background: ${theme.contextMenu.button.active.background};\n color: ${theme.contextMenu.button.active.text};\n border-color: ${$hasBorder ? theme.contextMenu.button.active.border : 'transparent'};\n box-shadow: ${theme.contextMenu.button.active.boxShadow};\n }\n\n &:disabled {\n background: ${theme.contextMenu.button.disabled.background};\n color: ${theme.contextMenu.button.disabled.text};\n border-color: ${$hasBorder ? theme.contextMenu.button.disabled.border : 'transparent'};\n box-shadow: ${theme.contextMenu.button.disabled.boxShadow};\n }\n\n `;\n }}\n`;\n","import { styled } from 'styled-components';\n\ninterface StyledProps {}\n\nexport const ContextMenuDelimiter = styled.div<StyledProps>(\n ({ theme }) => `\n margin-inline: ${theme.contextMenu.delimeter.marginInline};\n margin-block: ${theme.contextMenu.delimeter.marginBlock};\n border-top-width: ${theme.contextMenu.delimeter.thickness};\n border-top-style: ${theme.contextMenu.delimeter.style};\n border-top-color: ${theme.contextMenu.delimeter.color};\n `\n);\n","import { useState } from 'react';\n\nexport const useContextMenuControl = () => {\n const [isOpen, setIsOpen] = useState(false);\n\n const toggleMenu = () => {\n setIsOpen((prev) => !prev);\n };\n const closeMenu = () => {\n setIsOpen(false);\n };\n const openMenu = () => {\n setIsOpen(true);\n };\n return {\n isOpen,\n toggleMenu,\n closeMenu,\n openMenu,\n };\n};\n","import { useCallback, useState } from 'react';\nimport { PopoverAlign, PopoverPosition } from 'react-tiny-popover';\nimport { ContextMenu } from '../ContextMenu';\nimport { ButtonSize, getButtonSizeStyles } from '../../Theme';\nimport { styled } from 'styled-components';\n\ninterface SelectProps<T extends string | number> {\n selected?: T;\n options: { value: T; inputDisplay?: string }[];\n handleSelect: (id: T) => void;\n placeholder: string;\n disabled?: boolean;\n positions?: PopoverPosition[] | PopoverPosition;\n align?: PopoverAlign;\n size?: ButtonSize;\n hasBorder?: boolean;\n maxHeight?: number;\n}\n\nexport const Select = <T extends string | number>({\n options,\n selected,\n handleSelect,\n placeholder,\n disabled = false,\n positions = ['bottom'],\n align = 'start',\n size = 'small',\n hasBorder = true,\n maxHeight,\n}: SelectProps<T>) => {\n const [isOpen, setIsOpen] = useState<boolean>(false);\n const handleToggle = useCallback(() => {\n if (!disabled) setIsOpen((prev) => !prev);\n }, []);\n\n return (\n <ContextMenu\n isOpen={isOpen}\n onClickOutside={() => setIsOpen(false)}\n onClick={handleToggle}\n disabled={disabled}\n anchor={!selected ? placeholder : options.find((option) => option.value === selected)?.inputDisplay || selected}\n fullWidth\n positions={positions}\n align={align}\n size={size}\n hasBorder={hasBorder}\n maxHeight={maxHeight}\n >\n <StyledWrapper>\n {options.map((item) => (\n <StyledItem\n onClick={() => {\n handleSelect(item.value);\n setIsOpen(false);\n }}\n type=\"button\"\n $selected={item.value === selected}\n key={item.value}\n disabled={disabled}\n $size={size}\n >\n {item.inputDisplay || item.value}\n </StyledItem>\n ))}\n </StyledWrapper>\n </ContextMenu>\n );\n};\n\nconst StyledWrapper = styled.div`\n padding-block: 7px;\n padding-inline: 5px;\n button:not(:last-of-type) {\n margin-bottom: 4px;\n }\n`;\n\nconst StyledItem = styled.button<{ $size: ButtonSize; $selected: boolean }>`\n ${({ theme, $size, $selected }) => {\n const sizes = getButtonSizeStyles(theme, $size);\n return `\n background: ${theme.select.item.default.background};\n color: ${theme.select.item.default.text};\n font-size: ${sizes.fontSize};\n gap: ${sizes.gap};\n padding-block: ${sizes.paddingBlock};\n padding-inline: ${sizes.paddingInline};\n border-radius: ${sizes.borderRadius};\n border-width: ${sizes.borderWidth};\n border: none;\n width: 100%;\n cursor: pointer;\n font-weight: 400;\n display: inline-flex;\n align-items: center;\n justify-content: flex-start;\n text-decoration: none;\n transition: all 0.2s ease;\n outline: none;\n flex-direction: row;\n\n &:hover {\n background-color: ${theme.select.item.hover.background};\n color: ${theme.select.item.hover.text};\n }\n\n ${\n $selected &&\n `background: ${theme.select.item.active.background};\n color: ${theme.select.item.active.text};`\n }\n\n &:disabled {\n background: ${theme.select.item.disabled.background};\n color: ${theme.select.item.disabled.text};\n cursor: not-allowed;\n }\n `;\n }}\n`;\n","import { ButtonColor, ButtonSize, getButtonSizeStyles } from '../../Theme';\nimport { useRef } from 'react';\nimport { Popover, PopoverAlign, PopoverPosition } from 'react-tiny-popover';\nimport { styled, useTheme } from 'styled-components';\nimport { BallsMenu } from '../IconComponents';\nimport { useContextMenuControl } from '../ContextMenu';\nimport { Button } from '../Button';\n\nexport type Action = {\n label: string;\n onClick: () => void;\n color: ButtonColor;\n};\n\ninterface RowActionsMenuProps {\n items: Action[];\n size?: ButtonSize;\n disabled?: boolean;\n className?: string;\n positions?: PopoverPosition[] | PopoverPosition;\n align?: PopoverAlign;\n}\n\nexport const RowActionsMenu = ({\n size = 'small',\n disabled,\n className,\n positions = ['bottom'],\n align = 'end',\n items,\n}: RowActionsMenuProps) => {\n const buttonRef = useRef<HTMLButtonElement | null>(null);\n const { isOpen, closeMenu, toggleMenu } = useContextMenuControl();\n\n const theme = useTheme();\n\n return (\n <Popover\n padding={theme.contextMenu.padding}\n isOpen={isOpen}\n positions={positions}\n align={align}\n onClickOutside={closeMenu}\n content={\n <ContentWrapper>\n {items.map(({ label, onClick, color }, idx) => (\n <Button\n variant=\"empty\"\n key={`row-action-${idx}`}\n color={color}\n fullWidth\n size={size}\n py={10}\n px={5}\n onClick={() => {\n onClick();\n closeMenu();\n }}\n >\n {label}\n </Button>\n ))}\n </ContentWrapper>\n }\n containerStyle={{\n backgroundColor: theme.colors.background,\n border: `1px solid ${theme.colors.stroke.light}`,\n boxShadow: '0px 0px 10px 0px rgba(0, 0, 0, 0.25)',\n borderRadius: '5px',\n zIndex: `${9999}`,\n }}\n >\n <StyledButton\n ref={buttonRef}\n onClick={toggleMenu}\n $disabled={disabled}\n $size={size}\n className={className}\n type=\"button\"\n disabled={disabled}\n >\n <BallsMenu width={theme.rowActionsMenu.icon.size} height={theme.rowActionsMenu.icon.size} />\n </StyledButton>\n </Popover>\n );\n};\n\nconst StyledButton = styled.button<{\n $size: ButtonSize;\n $disabled?: boolean;\n}>`\n ${({ $size, $disabled, theme }) => {\n const sizes = getButtonSizeStyles(theme, $size);\n return `\n background: ${theme.rowActionsMenu.button.default.background};\n color: ${theme.rowActionsMenu.button.default.text};\n border: none;\n font-size: ${sizes.fontSize};\n gap: ${sizes.gap};\n padding: 4px;\n border-radius: ${sizes.borderRadius};\n width: auto;\n cursor: ${$disabled ? 'not-allowed' : 'pointer'};\n font-weight: 500;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n text-decoration: none;\n transition: all 0.2s ease;\n outline: none;\n\n &:hover {\n background: ${theme.rowActionsMenu.button.hover.background};\n color: ${theme.rowActionsMenu.button.hover.text};\n }\n\n &:active {\n background: ${theme.rowActionsMenu.button.active.background};\n color: ${theme.rowActionsMenu.button.active.text};\n }\n\n &:disabled {\n background: ${theme.rowActionsMenu.button.disabled.background};\n color: ${theme.rowActionsMenu.button.disabled.text};\n }\n\n `;\n }}\n`;\nconst ContentWrapper = styled.div(\n ({ theme }) => `\n padding: 5px 10px;\n display: flex;\n flex-direction: column;\n button {\n min-width: 110px;\n justify-content: flex-start;\n font-weight: 400;\n }\n button:not(:last-of-type) {\n position: relative;\n ::after {\n position: absolute;\n content: '';\n bottom: 0;\n left: 5px;\n right: 5px;\n height: 1px;\n background-color: ${theme.rowActionsMenu.delimiterColor};\n }\n }\n`\n);\n","import { InputSize, InputSizeStyle, InputVariant, getInputStyles } from '../../Theme';\nimport { forwardRef, InputHTMLAttributes, Ref } from 'react';\nimport { styled } from 'styled-components';\nimport { InfoCircleFilledIcon } from '../IconComponents';\n\nexport type InputProps = Omit<InputHTMLAttributes<HTMLInputElement>, 'size'> & {\n error?: boolean;\n append?: any;\n prepend?: any;\n size?: InputSize;\n variant?: InputVariant;\n};\n\nexport const Input: any = forwardRef<HTMLInputElement, InputProps>(function Input(\n { error, append, prepend, size = 'small', variant = 'outlined', disabled, className, ...props },\n ref\n) {\n return (\n <Group className={className} $error={error} $size={size} $variant={variant} $disabled={!!disabled}>\n {!!prepend && prepend}\n <InputGroup $size={size} $variant={variant}>\n <input ref={ref} disabled={disabled} {...props} />\n {!!error && (\n <IconWrapper $variant={variant}>\n <InfoCircleFilledIcon />\n </IconWrapper>\n )}\n </InputGroup>\n {!!append && append}\n </Group>\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 {\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`\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<{ $disabled: boolean; $error?: boolean; $size: InputSize; $variant: InputVariant }>(\n ({ theme, $disabled, $error, $size, $variant }) => `\n display: inline-flex;\n align-items: center;\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","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: 100vh;\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}: 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 const [collapsedNodes, setCollapsedNodes] = 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 = useCallback(() => {\n if (isRendering)\n if (\n graphData &&\n fgRef.current &&\n fgRef.current.tick &&\n graphData.nodes.length > 0 &&\n graphData.nodes.length <= fgRef.current.tick\n ) {\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 fgRef.current.zoomToFit(0, 20);\n setIsRendering(false);\n }, 1500);\n }\n }, [graphData]);\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 if (!collapsedNodes.has(`${link.target.id}`)) {\n showNode(unvisibles, link.target);\n }\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 handleCollapseChildren = (node: any) => {\n const newCollapsedNodes = new Set(collapsedNodes);\n const newUnVisibleNodes = new Set(unVisibleNodes);\n if (newCollapsedNodes.has(node.id)) {\n newCollapsedNodes.delete(node.id);\n showNode(newUnVisibleNodes, node);\n } else {\n newCollapsedNodes.add(node.id);\n hideNode(newUnVisibleNodes, node);\n }\n setCollapsedNodes(newCollapsedNodes);\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 // Перевіряємо наведення на верхню кнопку (hide)\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 // Перевіряємо наведення на нижню кнопку (collapse)\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 = collapsedNodes.has(node.id as string) ? `${color}50` : color; // Колір контуру з opacity для згорнутих вузлів\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 // Перевіряємо клік на нижній кнопці (collapse)\n if (\n isPointInButtonArea(\n scaledClickX,\n scaledClickY,\n nodeScreenX,\n nodeScreenY,\n buttonRadius * zoom, // Масштабуємо радіус відповідно до зуму\n 0, // Початковий кут для нижньої півсфери\n Math.PI // Кінцевий кут для нижньої півсфери\n )\n ) {\n handleCollapseChildren(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 (collapsedNodes.has(link.source.id)) return false;\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/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/SidebarContext.tsx","../src/Core/Sidebar/Sidebar.tsx","../src/Core/Sidebar/SidebarItem.tsx","../src/Core/Sidebar/SidebarDelimeter.tsx","../src/Core/Sidebar/SidebarSection.tsx","../src/Core/Typography/Typography.tsx","../src/Core/ListMenu/ListMenu.tsx","../src/Core/ListMenu/ListMenuItem.tsx","../src/Core/ListMenu/ListMenuSection.tsx","../src/Core/Header/Header.tsx","../src/Core/Header/HeaderDelimeter.tsx","../src/Core/Header/HeaderSection.tsx","../src/Core/Table/Row.tsx","../src/Core/Table/Cell.tsx","../src/Core/Table/Table.tsx","../src/Core/Pagination/Pagination.tsx","../src/Core/ContextMenu/ContextMenu.tsx","../src/Core/ContextMenu/ContextMenuDelimiter.tsx","../src/Core/ContextMenu/useContextMenuControl.ts","../src/Core/Select/Select.tsx","../src/Core/RowActionsMenu/RowActionsMenu.tsx","../src/Core/Input/Input.tsx","../src/Core/Flex/FlexContainer.tsx","../src/Core/Flex/FlexItem.tsx","../src/Core/Box/Box.tsx","../src/Core/Line/Line.tsx","../src/Core/EmptyData/EmptyData.tsx","../src/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","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","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","ref","Group","InputGroup","IconWrapper","$error","FlexContainer","direction","wrap","alignContent","gap","rowGap","columnGap","as","StyledFlexContainer","$direction","$wrap","$align","$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","height","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","highlightNodes","setHighlightNodes","highlightLinks","setHighlightLinks","hoverNode","setHoverNode","selectedNode","setSelectedNode","unVisibleNodes","setUnVisibleNodes","hiddenNodes","setHiddenNodes","collapsedNodes","setCollapsedNodes","hoverTopButton","setHoverTopButton","hoverBottomButton","setHoverBottomButton","isRendering","setIsRendering","fgRef","wrapperRef","tickTimerRef","calculateFontSize","scale","fontSizeRatio","handleNodeHover","node","_","newHighlightNodes","newHighlightLinks","neighbor","link","handleLinkHover","handleEngineTick","useEffect","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","handleCollapseChildren","newCollapsedNodes","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\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 },\n small: {\n fontSize: 14,\n paddingInline: 10,\n paddingBlock: 10,\n borderRadius: 5,\n iconSize: 14,\n height: 40,\n },\n medium: {\n fontSize: 16,\n paddingInline: 10,\n paddingBlock: 10,\n borderRadius: 5,\n iconSize: 16,\n height: 40,\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: '#FAFAFA',\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: '#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: '#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: '#FAFAFA',\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 },\n small: {\n fontSize: 14,\n paddingInline: 10,\n paddingBlock: 10,\n borderRadius: 5,\n iconSize: 14,\n height: 40,\n },\n medium: {\n fontSize: 16,\n paddingInline: 10,\n paddingBlock: 10,\n borderRadius: 5,\n iconSize: 16,\n height: 40,\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: '#FAFAFA',\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: '#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: '#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 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 { createContext } from 'react';\n\ninterface SidebarContext {\n collapsed: boolean;\n setCollapsed: React.Dispatch<React.SetStateAction<boolean>>;\n}\n\nexport const SidebarContext = createContext<SidebarContext>({\n collapsed: false,\n setCollapsed: () => {},\n});\n","import { styled } from 'styled-components';\nimport React from 'react';\nimport { SidebarContext } from './SidebarContext';\n\nexport interface SidebarProps {\n defaultCollapsed?: boolean;\n children: any;\n}\n\ninterface StyledProps {\n $collapsed: boolean;\n}\n\nexport const Sidebar = ({ defaultCollapsed, children }: SidebarProps) => {\n const [collapsed, setCollapsed] = React.useState(!!defaultCollapsed);\n\n return (\n <StyledContainer $collapsed={collapsed}>\n <SidebarContext.Provider\n value={{\n collapsed,\n setCollapsed,\n }}\n >\n {children}\n </SidebarContext.Provider>\n </StyledContainer>\n );\n};\n\nconst StyledContainer = styled.aside<StyledProps>(\n ({ theme, $collapsed }) => `\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n gap: 20px;\n position: sticky;\n z-index: 1000;\n top: 0;\n width: ${theme.sidebar.width};\n padding: 12px;\n height: 100%;\n border-right: 1px solid ${theme.sidebar.border};\n background: ${theme.sidebar.background};\n ${\n $collapsed\n ? `\n width: 65px;\n `\n : ''\n }\n\n &:before {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 25dvh;\n transform: translateY(-100%);\n background: ${theme.sidebar.background};\n border-right: 1px solid ${theme.sidebar.border};\n\n width: ${theme.sidebar.width};\n ${\n $collapsed\n ? `\n width: 65px;\n `\n : ''\n }\n }\n`\n);\n","import { SVGProps, useContext } from 'react';\nimport styled from 'styled-components';\nimport { SidebarContext } from './SidebarContext';\n\ninterface SidebarItemBase {\n active?: boolean;\n icon?: React.ComponentType<SVGProps<SVGSVGElement>>;\n label?: string;\n}\n\ninterface SidebarItemAnchor {\n href: string;\n onClick?: (e: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => void;\n target?: '_blank' | '_self' | '_parent' | '_top';\n}\n\ntype StyledProps = {\n $active: SidebarItemBase['active'];\n $collapsed: boolean;\n};\n\ninterface SidebarItemButton {\n type?: 'button' | 'reset' | 'submit';\n onClick?: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;\n}\n\nexport type SidebarItemProps = SidebarItemBase & (SidebarItemAnchor | SidebarItemButton);\n\nexport const SidebarItem = ({ active, icon: Icon, label, ...props }: SidebarItemProps) => {\n const { collapsed } = useContext(SidebarContext);\n\n const isAnchor = 'href' in props;\n\n return (\n <StyledItem\n title={collapsed ? label : ''}\n as={isAnchor ? 'a' : 'button'}\n $collapsed={collapsed}\n $active={active}\n {...props}\n >\n {Icon && <Icon aria-label={label} width={16} height={16} />}\n <StyledText $collapsed={collapsed} $active={active}>\n {label}\n </StyledText>\n </StyledItem>\n );\n};\n\nconst StyledText = styled.span<StyledProps>(\n ({ $collapsed }) => `\n margin-top: 2px;\n overflow: hidden;\n white-space: nowrap;\n text-overflow: ellipsis;\n width: 100%;\n text-align: left;\n display: inline-block;\n font-weight: 500;\n font-size: 14px;\n line-height: 1.49;\n font-family: Inter;\n\n ${\n $collapsed &&\n `\n & {\n width: 0;\n }\n `\n }\n`\n);\n\nconst StyledItem = styled.a<StyledProps>(\n ({ $active, $collapsed, theme }) => `\n display: flex;\n align-items: center;\n gap: 12px;\n padding-inline: 12px;\n height: 40px;\n min-width: 40px;\n border: none;\n cursor: pointer;\n text-decoration: none;\n border-radius: 8px;\n color: ${theme.sidebar.text.default};\n background: ${theme.sidebar.item.default.background};\n transition: background 0.3s ease-in-out, color 0.3s ease-in-out;\n position: relative;\n ${\n $active\n ? `\n background: ${theme.sidebar.item.active.background};\n color: ${theme.sidebar.text.active};\n `\n : ''\n }\n ${$collapsed ? `gap: 0;` : ''}\n\n\n\n &:hover {\n background: ${theme.sidebar.item.hover.background};\n color: ${theme.sidebar.text.hover};\n }\n\n &:before {\n content: '';\n position: absolute;\n left: -12px;\n top: 0;\n height: 100%;\n width: 0px;\n border-top-right-radius: 5px;\n border-bottom-right-radius: 5px;\n background: rgba(0, 0, 0, 0);\n transition: background 0.4s ease-in-out, width 0.3s ease-in-out;\n ${\n $active\n ? `\n background: ${theme.sidebar.text.active};\n width: 5px;\n `\n : ''\n }\n }\n\n svg {\n flex-shrink: 0;\n fill: currentColor;\n }\n`\n);\n","import { useContext } from 'react';\nimport { SidebarContext } from './SidebarContext';\nimport { styled } from 'styled-components';\n\ntype StyledProps = {\n $collapsed: boolean;\n};\n\nexport const SidebarDelimeter = () => {\n const { collapsed } = useContext(SidebarContext);\n return <StyledDelimeter $collapsed={collapsed} />;\n};\n\nconst StyledDelimeter = styled.div<StyledProps>(\n ({ $collapsed, theme }) => `\n min-width: 32px;\n width: 0;\n\n border-bottom: 1px dashed ${theme.sidebar.delimeter.color};\n margin-block: 8px;\n margin-left: 4px;\n\n ${\n !$collapsed &&\n `\n & {\n width: 100%;\n margin-left: 0;\n }\n `\n }\n`\n);\n","import { CSSProperties, styled } from 'styled-components';\n\nexport interface SidebarSectionProps {\n grow?: number;\n shrink?: number;\n basis?: CSSProperties['flexBasis'];\n items: React.ReactElement[];\n}\n\nexport const SidebarSection = ({ grow, shrink, basis, items }: SidebarSectionProps) => {\n return (\n <StyledSection $grow={grow} $shrink={shrink} $basis={basis}>\n {items}\n </StyledSection>\n );\n};\n\ninterface StyledProps {\n $grow?: number;\n $shrink?: number;\n $basis?: CSSProperties['flexBasis'];\n}\n\nconst StyledSection = styled.div<StyledProps>(\n ({ $grow = 0, $shrink = 1, $basis = '100%' }) => `\n flex: ${$grow} ${$shrink} ${$basis};\n display: flex;\n flex-direction: column;\n gap: 1px;\n `\n);\n","import styled from 'styled-components';\nimport { CSSProperties, ElementType } from 'react';\nimport { ColorVariant, createComponent, FabricComponent, TypographyVariant } from '../../Theme';\nimport { resolveThemeColor } from '../../Theme/utils';\n\ntype TypographyProps = FabricComponent<{\n style?: CSSProperties;\n variant?: TypographyVariant;\n element?: ElementType;\n children: any;\n weight?: CSSProperties['fontWeight'];\n fontStyle?: CSSProperties['fontStyle'];\n color?: ColorVariant | string;\n className?: string;\n ellipsis?: boolean;\n}>;\n\n// Create a styled component that can be dynamically rendered as different HTML elements\nconst StyledTypography = styled(createComponent('div'))<{\n $variant: TypographyVariant;\n $weight?: CSSProperties['fontWeight'];\n $style?: CSSProperties['fontStyle'];\n $color?: ColorVariant | string;\n $ellipsis?: boolean;\n}>(({ theme, $variant, $color, $weight = '400', $style = 'initial', $ellipsis }) => {\n // Resolve color from theme if it's a theme color path, or use the direct color value\n\n return `\n font-size: ${theme.typography.variants[$variant].fontSize};\n font-weight: ${$weight};\n font-style: ${$style};\n color: ${resolveThemeColor(theme, $color) || theme.colors.text.main};\n ${$ellipsis ? 'overflow: hidden; text-overflow: ellipsis; white-space: nowrap;' : ''}\n `;\n});\n\nexport const Typography = ({\n variant = 'body',\n element,\n children,\n weight,\n fontStyle,\n color,\n className,\n style,\n ellipsis = false,\n ...props\n}: TypographyProps) => {\n // Determine which HTML element to render based on the variant if not explicitly specified\n const Element = element || (variant.startsWith('h') ? variant : 'p');\n\n return (\n <StyledTypography\n as={Element}\n $variant={variant}\n $weight={weight}\n $style={fontStyle}\n $color={color}\n $ellipsis={ellipsis}\n className={className}\n style={style}\n {...props}\n >\n {children}\n </StyledTypography>\n );\n};\n","import { ReactNode } from 'react';\nimport { styled } from 'styled-components';\n\nexport interface ListMenuProps {\n children: any;\n width?: number;\n}\n\ntype StyledListProps = {\n $width: number;\n};\nexport const ListMenu = ({ children, width = 220 }: ListMenuProps) => {\n return <StyledList $width={width}>{children}</StyledList>;\n};\n\nconst StyledList = styled.ul<StyledListProps>(\n ({ theme, $width }) => `\n margin: 0;\n padding: 20px;\n width: ${$width}px;\n list-style: none;\n height: 100%;\n overflow-y: auto;\n background-color: ${theme.colors.background};\n border-right: 1px solid ${theme.colors.stroke.light};\n display: flex;\n flex-direction: column;\n justify-content: flex-start;\n gap: 40px;\n `\n);\n","import { FC } from 'react';\nimport { styled } from 'styled-components';\n\nexport type ListMenuItemBase = {\n active?: boolean;\n label?: string;\n count?: number;\n};\n\nexport type ListMenuItemAnchorProps = {\n href: string;\n onClick?: (e: React.MouseEvent<HTMLAnchorElement, MouseEvent>) => void;\n target?: '_blank' | '_self' | '_parent' | '_top';\n};\n\nexport type ListMenuItemButtonProps = {\n type?: 'button' | 'reset' | 'submit';\n onClick?: (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void;\n};\n\nexport type ListMenuItemProps = ListMenuItemBase & (ListMenuItemAnchorProps | ListMenuItemButtonProps);\n\ntype StyledProps = {\n $active: ListMenuItemProps['active'];\n};\n\nexport const ListMenuItem = ({ active, label, count, ...props }: ListMenuItemProps) => {\n const Element = 'href' in props ? 'a' : 'button';\n return (\n <StyledItem $active={active}>\n <StyledLink as={'href' in props ? 'a' : 'button'} $active={active} {...props}>\n {label}\n {typeof count === 'number' && <StyledCount $active={active}>{count}</StyledCount>}\n </StyledLink>\n </StyledItem>\n );\n};\nconst StyledItem = styled.li<StyledProps>(\n ({ theme, $active }) => `\n position: relative;\n display: flex;\n align-items: center;\n justify-content: flex-start;\n width: 100%;\n &:not(:last-child) {\n margin-bottom: 4px;\n }\n\n ::before {\n content: '';\n position: absolute;\n top: 0;\n left: 0;\n width: 2px;\n height: ${$active ? '100%' : 0};\n border-radius: 2px;\n transform: translateX(-25%);\n background-color: ${$active ? theme.colors.primary.main : 'transparent'};\n transition: background-color 0.3s ease-in-out, height 0.3s ease-in-out;\n }\n `\n);\n\nconst StyledLink = styled.a<StyledProps>(\n ({ theme, $active }) => `\n display: inline-block;\n \n padding: 8px 10px;\n border: none;\n outline: none;\n cursor: pointer;\n text-decoration: none;\n background-color: transparent;\n border-radius: 8px;\n \n width: 100%;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n \n font-family: Inter;\n font-weight: 500;\n font-size: 14px;\n line-height: 1.5;\n text-align: left;\n color: ${$active ? theme.colors.primary.main : theme.colors.text.main};\n\n transition: background-color 0.3s ease-in-out, color 0.3s ease-in-out;\n\n &:hover {\n color: ${theme.colors.primary.main};\n }`\n);\n\nconst StyledCount = styled.span<StyledProps>(\n ({ theme, $active }) => `\n margin-left: 8px;\n padding: 2px 4px;\n border-radius: 4px;\n background-color: ${$active ? theme.colors.primary.lightest2 : theme.colors.stroke.lighter};\n color: inherit;\n line-height: 1.5;\n transition: background-color 0.3s ease-in-out, color 0.3s ease-in-out;\n `\n);\n","import { ReactNode } from 'react';\nimport { styled } from 'styled-components';\n\nexport interface ListMenuSectionProps {\n items: any;\n title?: string;\n}\nexport const ListMenuSection = ({ title, items }: ListMenuSectionProps) => {\n return (\n <li>\n {!!title && <StyledTitle>{title}</StyledTitle>}\n <StyledList>{items}</StyledList>\n </li>\n );\n};\n\nconst StyledTitle = styled.h2(\n ({ theme }) => `\n margin: 0 0 15px 0;\n width: 100%;\n padding: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n\n font-family: Inter;\n font-weight: 600;\n font-size: 14px;\n line-height: 1;\n letter-spacing: 0.03em;\n text-align: left;\n text-transform: uppercase;\n color: ${theme.colors.text.lighter};\n`\n);\n\nconst StyledList = styled.ul(\n ({ theme }) => `\n margin: 0;\n padding: 0;\n width: 180px;\n list-style: none;\n position: relative;\n &::before {\n content: \"\";\n position: absolute;\n top: 0;\n left: 0;\n width: 1px;\n height: 100%;\n background-color: ${theme.colors.stroke.light};\n }\n `\n);\n","import { styled } from 'styled-components';\n\ninterface HeaderProps {\n children?: any;\n}\n\nexport const Header = ({ children }: HeaderProps) => {\n return <StyledContainer>{children}</StyledContainer>;\n};\n\nconst StyledContainer = styled.header(\n ({ theme }) => `\n display: flex;\n position: sticky;\n top: 0;\n z-index: 1000;\n align-items: center;\n justify-content: space-between;\n padding-left: 12px;\n padding-right: 20px;\n height: 56px;\n background-color: ${theme.colors.background};\n border-bottom: 1px solid ${theme.colors.stroke.light};\n\n &:before {\n content: '';\n display: block;\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 25dvh;\n transform: translateY(-100%);\n background: ${theme.colors.background};\n }\n`\n);\n","import { styled } from 'styled-components';\n\nexport const HeaderDelimeter = () => {\n return <StyledDelimeter />;\n};\n\nconst StyledDelimeter = styled.div(\n ({ theme }) => `\n height: 32px;\n border-right: 1px dashed ${theme.colors.stroke.main};\n`\n);\n","import { CSSProperties } from 'react';\nimport { styled } from 'styled-components';\n\ninterface HeaderSectionProps {\n grow?: CSSProperties['flexGrow'];\n shrink?: CSSProperties['flexShrink'];\n basis?: CSSProperties['flexBasis'];\n justify?: CSSProperties['justifyContent'];\n children?: React.ReactNode;\n}\n\ninterface StyledProps {\n $grow?: CSSProperties['flexGrow'];\n $shrink?: CSSProperties['flexShrink'];\n $basis?: CSSProperties['flexBasis'];\n $justify?: CSSProperties['justifyContent'];\n}\n\nexport const HeaderSection = ({ grow, shrink, basis, justify, children }: HeaderSectionProps) => {\n return (\n <StyledSection $grow={grow} $shrink={shrink} $basis={basis} $justify={justify}>\n {children}\n </StyledSection>\n );\n};\n\nconst StyledSection = styled.section<StyledProps>(\n ({ $grow = 1, $shrink = 1, $basis = '100%', $justify = 'space-between' }) => `\n display: flex;\n align-items: center;\n justify-content: ${$justify};\n gap: 20px;\n flex-grow: ${$grow};\n flex-shrink: ${$shrink};\n flex-basis: ${$basis};\n`\n);\n","import { styled } from 'styled-components';\n\nexport const Row = styled.tr``;\n","import { styled } from 'styled-components';\n\nexport const HeadCell = styled.th(\n ({ theme }) => `\n padding-top: 15px;\n padding-bottom: 10px;\n padding-right: 15px;\n :not(:first-of-type) {\n padding-left: 15px;\n }\n\n border-bottom: 1px solid ${theme.colors.stroke.light};\n\n font-family: ${theme.typography.fontFamily};\n font-weight: 500;\n font-size: 14px;\n text-wrap: nowrap;\n text-align: left;\n line-height: 1.5;\n color: ${theme.colors.text.main};\n`\n);\n\nexport const Cell = styled.td(\n ({ theme }) => `\n padding-block: 15px;\n padding-right: 15px;\n :not(:first-of-type) {\n padding-left: 15px;\n }\n border-bottom: 1px solid ${theme.colors.stroke.light};\n\n vertical-align: middle;\n font-family: ${theme.typography.fontFamily};\n font-weight: 500;\n font-size: 14px;\n text-wrap: nowrap;\n text-align: left;\n line-height: 1.5;\n color: ${theme.colors.text.main};\n`\n);\n","import { ReactNode, useMemo, CSSProperties } from 'react';\nimport { styled } from 'styled-components';\nimport { Row } from './Row';\nimport { Cell, HeadCell } from './Cell';\n\nexport type ColumnTable<ID = string> = {\n id: ID;\n title: string;\n width?: CSSProperties['width'];\n className?: string;\n};\n\nexport type RenderCellProps<T = string> = {\n rowIndex: number;\n cellIndex: number;\n columnId: T;\n};\n\nexport type RenderHeaderCellProps<T = string> = {\n title: string;\n columnId: T;\n};\n\ninterface TableProps {\n columns: ColumnTable[];\n rowCount: number;\n renderCell: (props: RenderCellProps<any>) => any;\n renderHeaderCell: (props: RenderHeaderCellProps<any>) => any;\n rowIds?: string[];\n}\n\nexport const Table = ({ columns, rowCount, renderCell, renderHeaderCell, rowIds }: TableProps) => {\n const cellCount = columns.length;\n\n const data = useMemo(() => {\n const items: ReactNode[][] = [];\n for (let i = 0; i < rowCount; i++) {\n items[i] = [];\n for (let j = 0; j < cellCount; j++) {\n items[i][j] = renderCell({\n rowIndex: i,\n cellIndex: j,\n columnId: columns[j].id,\n });\n }\n }\n return items;\n }, [rowCount, cellCount, columns, renderCell]);\n\n return (\n <StyledTable>\n <StyledHead>\n <Row>\n {columns.map(({ id, title, width }) => (\n <HeadCell\n key={id}\n style={{\n width,\n }}\n >\n {renderHeaderCell({ title, columnId: id })}\n </HeadCell>\n ))}\n </Row>\n </StyledHead>\n <tbody>\n {data.map((cells, rowIndex) => (\n <Row key={`row-${rowIndex}`} id={rowIds ? rowIds[rowIndex] : `row-${rowIndex}`}>\n {cells.map((cell, cellIndex) => (\n <Cell className={columns[cellIndex]?.className} key={`cell-${cellIndex}`}>\n {cell}\n </Cell>\n ))}\n </Row>\n ))}\n </tbody>\n </StyledTable>\n );\n};\n\nconst StyledTable = styled.table`\n width: 100%;\n border-spacing: 0;\n table-layout: fixed;\n`;\n\nconst StyledHead = styled.thead(\n ({ theme }) => `\n background-color: ${theme.colors.background};\n position: sticky;\n top: 0;\n z-index: 1;\n`\n);\n","import { FC, useCallback, useMemo } from 'react';\nimport { styled } from 'styled-components';\nimport { ChevronRightIcon } from '../IconComponents';\nimport { ChevronLeftIcon } from '../IconComponents';\n\nexport interface PaginationProps {\n total_items: number;\n limit: number;\n offset: number;\n onChangePage: (offset: number) => void;\n}\n\nconst PAGINATION_LIMIT = 9;\nconst DIFF = 2;\nconst VISIBLE_GROUPE = 5;\nconst STEP = 1;\nconst ELLIPSIS = '...';\n\nexport const Pagination = ({ total_items, limit, offset, onChangePage }: PaginationProps) => {\n const currentPage = useMemo(() => (offset ? offset / limit + 1 : 1), [limit, offset]);\n const pages = Math.ceil(total_items / limit);\n const paginationItems: (number | string)[] = useMemo(() => {\n const items = [];\n if (pages <= PAGINATION_LIMIT) {\n for (let i = 1; i <= pages; i += 1) {\n items.push(i);\n }\n } else {\n const firstPage = 1;\n const lastPage = pages;\n items.push(firstPage);\n if (currentPage <= VISIBLE_GROUPE) {\n for (let i = 2; i <= VISIBLE_GROUPE + 2; i += 1) {\n items.push(i);\n }\n items.push(ELLIPSIS, lastPage);\n } else if (currentPage > VISIBLE_GROUPE && currentPage < lastPage - VISIBLE_GROUPE) {\n items.push(ELLIPSIS);\n for (let i = currentPage - DIFF; i <= currentPage + DIFF; i += 1) {\n items.push(i);\n }\n items.push(ELLIPSIS, lastPage);\n } else {\n items.push(ELLIPSIS);\n for (let i = lastPage - VISIBLE_GROUPE - 1; i <= lastPage; i += 1) {\n items.push(i);\n }\n }\n }\n return items;\n }, [currentPage, pages]);\n\n const isDisabled = useCallback(\n (page: number | string) => typeof page === 'string' || page === currentPage,\n [currentPage]\n );\n const onPaginationClick = useCallback(\n (page: number | string) => {\n if (isDisabled(page)) return;\n onChangePage(page as number);\n },\n [onChangePage, isDisabled]\n );\n return (\n <FlexGroup>\n <Button\n aria-label=\"previous page\"\n onClick={() => onPaginationClick(currentPage - STEP)}\n disabled={currentPage === 1}\n >\n <ChevronLeftIcon />\n </Button>\n <StyledList>\n {paginationItems.map((page, idx) => (\n <li key={`pagination-${page}-${idx}`}>\n <Button $current={page === currentPage} onClick={() => onPaginationClick(page)}>\n {page}\n </Button>\n </li>\n ))}\n </StyledList>\n <Button\n aria-label=\"next page\"\n onClick={() => onPaginationClick(currentPage + STEP)}\n disabled={!total_items || currentPage === pages}\n >\n <ChevronRightIcon />\n </Button>\n </FlexGroup>\n );\n};\n\ntype StyledButtonProps = {\n $current?: boolean;\n};\n\nconst StyledList = styled.div`\n list-style: none;\n padding: 0;\n display: flex;\n gap: 6px;\n`;\nconst Button = styled.button<StyledButtonProps>(\n ({ theme, $current }) => `\n font-family: ${theme.typography.fontFamily};\n background-color: ${$current ? theme.colors.primary.main : theme.colors.background};\n color: ${$current ? theme.colors.background : theme.colors.text.main};\n border: none;\n cursor: pointer;\n padding-block: 4px;\n padding-inline: 8px;\n border-radius: 3px;\n font-size: 14px;\n font-weight: 400;\n display: flex;\n align-items: center;\n justify-content: center;\n height: 26px;\n svg {\n width: 8px;\n height: 8px;\n}\n &:hover {\n background-color: ${theme.colors.primary.light};\n }\n transition: background-color 0.3s ease-in-out;\n`\n);\nconst FlexGroup = styled.div`\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 6px;\n`;\n","import { ButtonSize, getButtonSizeStyles } from '../../Theme';\nimport { useRef } from 'react';\nimport { Popover, PopoverAlign, PopoverPosition } from 'react-tiny-popover';\nimport { styled, useTheme } from 'styled-components';\nimport { ChevronDownIcon, ChevronUpIcon } from '../IconComponents';\n\ninterface ContextMenuProps {\n isOpen: boolean;\n onClick: () => void;\n onClickOutside: (e: MouseEvent) => void;\n size?: ButtonSize;\n disabled?: boolean;\n fullWidth?: boolean;\n className?: string;\n children?: any;\n anchor?: any;\n positions?: PopoverPosition[] | PopoverPosition;\n align?: PopoverAlign;\n hasBorder?: boolean;\n maxHeight?: number;\n}\n\nexport const ContextMenu = ({\n isOpen,\n onClickOutside,\n onClick,\n anchor,\n size = 'medium',\n disabled,\n fullWidth,\n className,\n positions = ['bottom'],\n align = 'start',\n children,\n hasBorder = true,\n maxHeight = 500,\n}: ContextMenuProps) => {\n const buttonRef = useRef<HTMLButtonElement | null>(null);\n\n const theme = useTheme();\n\n return (\n <Popover\n padding={theme.contextMenu.padding}\n isOpen={isOpen}\n positions={positions}\n align={align}\n onClickOutside={onClickOutside}\n content={children}\n containerStyle={{\n backgroundColor: theme.colors.background,\n border: `1px solid ${theme.colors.stroke.light}`,\n boxShadow: '0px 0px 10px 0px rgba(0, 0, 0, 0.25)',\n borderRadius: '5px',\n overflow: 'auto',\n maxHeight: `${maxHeight}px`,\n zIndex: `${9999}`,\n }}\n >\n <StyledButton\n ref={buttonRef}\n onClick={onClick}\n $disabled={disabled}\n $fullWidth={fullWidth}\n $size={size}\n className={className}\n type=\"button\"\n disabled={disabled}\n $hasBorder={hasBorder}\n >\n <div>{anchor}</div>\n {isOpen ? (\n <ChevronUpIcon width={theme.contextMenu.icon.size} height={theme.contextMenu.icon.size} />\n ) : (\n <ChevronDownIcon width={theme.contextMenu.icon.size} height={theme.contextMenu.icon.size} />\n )}\n </StyledButton>\n </Popover>\n );\n};\n\n// Створюємо стилізований компонент, що використовує уніфіковану палітру\nconst StyledButton = styled.button<{\n $size: ButtonSize;\n $disabled?: boolean;\n $fullWidth?: boolean;\n $hasBorder: boolean;\n}>`\n ${({ $size, $disabled, $fullWidth, theme, $hasBorder }) => {\n const sizes = getButtonSizeStyles(theme, $size);\n return `\n background: ${theme.contextMenu.button.default.background};\n color: ${theme.contextMenu.button.default.text};\n border-color: ${$hasBorder ? theme.contextMenu.button.default.border : 'transparent'};\n box-shadow: ${theme.contextMenu.button.default.boxShadow};\n font-size: ${sizes.fontSize};\n gap: ${sizes.gap};\n padding-block: ${sizes.paddingBlock};\n padding-inline: ${sizes.paddingInline};\n border-radius: ${sizes.borderRadius};\n border-width: ${sizes.borderWidth};\n border-style: solid;\n width: ${$fullWidth ? '100%' : 'auto'};\n cursor: ${$disabled ? 'not-allowed' : 'pointer'};\n font-weight: 500;\n display: inline-flex;\n align-items: center;\n justify-content: ${$fullWidth ? 'space-between' : 'center'};\n text-decoration: none;\n transition: all 0.2s ease;\n outline: none;\n flex-direction: row;\n\n &:hover {\n background: ${theme.contextMenu.button.hover.background};\n color: ${theme.contextMenu.button.hover.text};\n border-color: ${$hasBorder ? theme.contextMenu.button.hover.border : 'transparent'};\n box-shadow: ${theme.contextMenu.button.hover.boxShadow};\n }\n\n &:active {\n background: ${theme.contextMenu.button.active.background};\n color: ${theme.contextMenu.button.active.text};\n border-color: ${$hasBorder ? theme.contextMenu.button.active.border : 'transparent'};\n box-shadow: ${theme.contextMenu.button.active.boxShadow};\n }\n\n &:disabled {\n background: ${theme.contextMenu.button.disabled.background};\n color: ${theme.contextMenu.button.disabled.text};\n border-color: ${$hasBorder ? theme.contextMenu.button.disabled.border : 'transparent'};\n box-shadow: ${theme.contextMenu.button.disabled.boxShadow};\n }\n\n `;\n }}\n`;\n","import { styled } from 'styled-components';\n\ninterface StyledProps {}\n\nexport const ContextMenuDelimiter = styled.div<StyledProps>(\n ({ theme }) => `\n margin-inline: ${theme.contextMenu.delimeter.marginInline};\n margin-block: ${theme.contextMenu.delimeter.marginBlock};\n border-top-width: ${theme.contextMenu.delimeter.thickness};\n border-top-style: ${theme.contextMenu.delimeter.style};\n border-top-color: ${theme.contextMenu.delimeter.color};\n `\n);\n","import { useState } from 'react';\n\nexport const useContextMenuControl = () => {\n const [isOpen, setIsOpen] = useState(false);\n\n const toggleMenu = () => {\n setIsOpen((prev) => !prev);\n };\n const closeMenu = () => {\n setIsOpen(false);\n };\n const openMenu = () => {\n setIsOpen(true);\n };\n return {\n isOpen,\n toggleMenu,\n closeMenu,\n openMenu,\n };\n};\n","import { useCallback, useState } from 'react';\nimport { PopoverAlign, PopoverPosition } from 'react-tiny-popover';\nimport { ContextMenu } from '../ContextMenu';\nimport { ButtonSize, getButtonSizeStyles } from '../../Theme';\nimport { styled } from 'styled-components';\n\ninterface SelectProps<T extends string | number> {\n selected?: T;\n options: { value: T; inputDisplay?: string }[];\n handleSelect: (id: T) => void;\n placeholder: string;\n disabled?: boolean;\n positions?: PopoverPosition[] | PopoverPosition;\n align?: PopoverAlign;\n size?: ButtonSize;\n hasBorder?: boolean;\n maxHeight?: number;\n}\n\nexport const Select = <T extends string | number>({\n options,\n selected,\n handleSelect,\n placeholder,\n disabled = false,\n positions = ['bottom'],\n align = 'start',\n size = 'small',\n hasBorder = true,\n maxHeight,\n}: SelectProps<T>) => {\n const [isOpen, setIsOpen] = useState<boolean>(false);\n const handleToggle = useCallback(() => {\n if (!disabled) setIsOpen((prev) => !prev);\n }, []);\n\n return (\n <ContextMenu\n isOpen={isOpen}\n onClickOutside={() => setIsOpen(false)}\n onClick={handleToggle}\n disabled={disabled}\n anchor={!selected ? placeholder : options.find((option) => option.value === selected)?.inputDisplay || selected}\n fullWidth\n positions={positions}\n align={align}\n size={size}\n hasBorder={hasBorder}\n maxHeight={maxHeight}\n >\n <StyledWrapper>\n {options.map((item) => (\n <StyledItem\n onClick={() => {\n handleSelect(item.value);\n setIsOpen(false);\n }}\n type=\"button\"\n $selected={item.value === selected}\n key={item.value}\n disabled={disabled}\n $size={size}\n >\n {item.inputDisplay || item.value}\n </StyledItem>\n ))}\n </StyledWrapper>\n </ContextMenu>\n );\n};\n\nconst StyledWrapper = styled.div`\n padding-block: 7px;\n padding-inline: 5px;\n button:not(:last-of-type) {\n margin-bottom: 4px;\n }\n`;\n\nconst StyledItem = styled.button<{ $size: ButtonSize; $selected: boolean }>`\n ${({ theme, $size, $selected }) => {\n const sizes = getButtonSizeStyles(theme, $size);\n return `\n background: ${theme.select.item.default.background};\n color: ${theme.select.item.default.text};\n font-size: ${sizes.fontSize};\n gap: ${sizes.gap};\n padding-block: ${sizes.paddingBlock};\n padding-inline: ${sizes.paddingInline};\n border-radius: ${sizes.borderRadius};\n border-width: ${sizes.borderWidth};\n border: none;\n width: 100%;\n cursor: pointer;\n font-weight: 400;\n display: inline-flex;\n align-items: center;\n justify-content: flex-start;\n text-decoration: none;\n transition: all 0.2s ease;\n outline: none;\n flex-direction: row;\n\n &:hover {\n background-color: ${theme.select.item.hover.background};\n color: ${theme.select.item.hover.text};\n }\n\n ${\n $selected &&\n `background: ${theme.select.item.active.background};\n color: ${theme.select.item.active.text};`\n }\n\n &:disabled {\n background: ${theme.select.item.disabled.background};\n color: ${theme.select.item.disabled.text};\n cursor: not-allowed;\n }\n `;\n }}\n`;\n","import { ButtonColor, ButtonSize, getButtonSizeStyles } from '../../Theme';\nimport { useRef } from 'react';\nimport { Popover, PopoverAlign, PopoverPosition } from 'react-tiny-popover';\nimport { styled, useTheme } from 'styled-components';\nimport { BallsMenu } from '../IconComponents';\nimport { useContextMenuControl } from '../ContextMenu';\nimport { Button } from '../Button';\n\nexport type Action = {\n label: string;\n onClick: () => void;\n color: ButtonColor;\n};\n\ninterface RowActionsMenuProps {\n items: Action[];\n size?: ButtonSize;\n disabled?: boolean;\n className?: string;\n positions?: PopoverPosition[] | PopoverPosition;\n align?: PopoverAlign;\n}\n\nexport const RowActionsMenu = ({\n size = 'small',\n disabled,\n className,\n positions = ['bottom'],\n align = 'end',\n items,\n}: RowActionsMenuProps) => {\n const buttonRef = useRef<HTMLButtonElement | null>(null);\n const { isOpen, closeMenu, toggleMenu } = useContextMenuControl();\n\n const theme = useTheme();\n\n return (\n <Popover\n padding={theme.contextMenu.padding}\n isOpen={isOpen}\n positions={positions}\n align={align}\n onClickOutside={closeMenu}\n content={\n <ContentWrapper>\n {items.map(({ label, onClick, color }, idx) => (\n <Button\n variant=\"empty\"\n key={`row-action-${idx}`}\n color={color}\n fullWidth\n size={size}\n py={10}\n px={5}\n onClick={() => {\n onClick();\n closeMenu();\n }}\n >\n {label}\n </Button>\n ))}\n </ContentWrapper>\n }\n containerStyle={{\n backgroundColor: theme.colors.background,\n border: `1px solid ${theme.colors.stroke.light}`,\n boxShadow: '0px 0px 10px 0px rgba(0, 0, 0, 0.25)',\n borderRadius: '5px',\n zIndex: `${9999}`,\n }}\n >\n <StyledButton\n ref={buttonRef}\n onClick={toggleMenu}\n $disabled={disabled}\n $size={size}\n className={className}\n type=\"button\"\n disabled={disabled}\n >\n <BallsMenu width={theme.rowActionsMenu.icon.size} height={theme.rowActionsMenu.icon.size} />\n </StyledButton>\n </Popover>\n );\n};\n\nconst StyledButton = styled.button<{\n $size: ButtonSize;\n $disabled?: boolean;\n}>`\n ${({ $size, $disabled, theme }) => {\n const sizes = getButtonSizeStyles(theme, $size);\n return `\n background: ${theme.rowActionsMenu.button.default.background};\n color: ${theme.rowActionsMenu.button.default.text};\n border: none;\n font-size: ${sizes.fontSize};\n gap: ${sizes.gap};\n padding: 4px;\n border-radius: ${sizes.borderRadius};\n width: auto;\n cursor: ${$disabled ? 'not-allowed' : 'pointer'};\n font-weight: 500;\n display: inline-flex;\n justify-content: center;\n align-items: center;\n text-decoration: none;\n transition: all 0.2s ease;\n outline: none;\n\n &:hover {\n background: ${theme.rowActionsMenu.button.hover.background};\n color: ${theme.rowActionsMenu.button.hover.text};\n }\n\n &:active {\n background: ${theme.rowActionsMenu.button.active.background};\n color: ${theme.rowActionsMenu.button.active.text};\n }\n\n &:disabled {\n background: ${theme.rowActionsMenu.button.disabled.background};\n color: ${theme.rowActionsMenu.button.disabled.text};\n }\n\n `;\n }}\n`;\nconst ContentWrapper = styled.div(\n ({ theme }) => `\n padding: 5px 10px;\n display: flex;\n flex-direction: column;\n button {\n min-width: 110px;\n justify-content: flex-start;\n font-weight: 400;\n }\n button:not(:last-of-type) {\n position: relative;\n ::after {\n position: absolute;\n content: '';\n bottom: 0;\n left: 5px;\n right: 5px;\n height: 1px;\n background-color: ${theme.rowActionsMenu.delimiterColor};\n }\n }\n`\n);\n","import { InputSize, InputSizeStyle, InputVariant, getInputStyles } from '../../Theme';\nimport { forwardRef, InputHTMLAttributes, Ref } from 'react';\nimport { styled } from 'styled-components';\nimport { InfoCircleFilledIcon } from '../IconComponents';\n\nexport type InputProps = Omit<InputHTMLAttributes<HTMLInputElement>, 'size'> & {\n error?: boolean;\n append?: any;\n prepend?: any;\n size?: InputSize;\n variant?: InputVariant;\n};\n\nexport const Input: any = forwardRef<HTMLInputElement, InputProps>(function Input(\n { error, append, prepend, size = 'small', variant = 'outlined', disabled, className, ...props },\n ref\n) {\n return (\n <Group className={className} $error={error} $size={size} $variant={variant} $disabled={!!disabled}>\n {!!prepend && prepend}\n <InputGroup $size={size} $variant={variant}>\n <input ref={ref} disabled={disabled} {...props} />\n {!!error && (\n <IconWrapper $variant={variant}>\n <InfoCircleFilledIcon />\n </IconWrapper>\n )}\n </InputGroup>\n {!!append && append}\n </Group>\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 {\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`\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<{ $disabled: boolean; $error?: boolean; $size: InputSize; $variant: InputVariant }>(\n ({ theme, $disabled, $error, $size, $variant }) => `\n display: inline-flex;\n align-items: center;\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","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: 100vh;\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}: 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 const [collapsedNodes, setCollapsedNodes] = 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 fgRef.current.zoomToFit(0, 20);\n setIsRendering(false);\n }, 1500);\n }\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 if (!collapsedNodes.has(`${link.target.id}`)) {\n showNode(unvisibles, link.target);\n }\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 handleCollapseChildren = (node: any) => {\n const newCollapsedNodes = new Set(collapsedNodes);\n const newUnVisibleNodes = new Set(unVisibleNodes);\n if (newCollapsedNodes.has(node.id)) {\n newCollapsedNodes.delete(node.id);\n showNode(newUnVisibleNodes, node);\n } else {\n newCollapsedNodes.add(node.id);\n hideNode(newUnVisibleNodes, node);\n }\n setCollapsedNodes(newCollapsedNodes);\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 // Перевіряємо наведення на верхню кнопку (hide)\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 // Перевіряємо наведення на нижню кнопку (collapse)\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 = collapsedNodes.has(node.id as string) ? `${color}50` : color; // Колір контуру з opacity для згорнутих вузлів\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 // Перевіряємо клік на нижній кнопці (collapse)\n if (\n isPointInButtonArea(\n scaledClickX,\n scaledClickY,\n nodeScreenX,\n nodeScreenY,\n buttonRadius * zoom, // Масштабуємо радіус відповідно до зуму\n 0, // Початковий кут для нижньої півсфери\n Math.PI // Кінцевий кут для нижньої півсфери\n )\n ) {\n handleCollapseChildren(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 (collapsedNodes.has(link.source.id)) return false;\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"]}
|