@cyber-harbour/ui 1.0.33 → 1.0.35
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/eye_light-3WS4REO5.png +0 -0
- package/dist/eye_light_hover-PVS4UAB4.png +0 -0
- package/dist/group_light-RVCSCGRJ.png +0 -0
- package/dist/group_light_hover-LVI5PRZM.png +0 -0
- package/dist/index.d.mts +8 -2
- package/dist/index.d.ts +8 -2
- package/dist/index.js +150 -137
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +235 -222
- package/dist/index.mjs.map +1 -1
- package/package.json +2 -1
- package/src/Core/RowActionsMenu/RowActionsMenu.tsx +2 -0
- package/src/FullscreenCard/FullscreenCard.tsx +39 -8
- package/src/Graph2D/Graph2D.tsx +51 -56
- package/src/Graph2D/GraphLoader.tsx +84 -0
- package/src/Graph2D/eye_light.png +0 -0
- package/src/Graph2D/eye_light_hover.png +0 -0
- package/src/Graph2D/group_light.png +0 -0
- package/src/Graph2D/group_light_hover.png +0 -0
- package/src/Graph2D/types.ts +1 -0
- package/dist/cross_light-JTZWFLSV.png +0 -0
- package/dist/cross_light_hover-UQZ7E3CW.png +0 -0
- package/dist/eye_light-EQXRQBFN.png +0 -0
- package/dist/eye_light_hover-5XFRPJS4.png +0 -0
- package/src/Graph2D/cross_light.png +0 -0
- package/src/Graph2D/cross_light_hover.png +0 -0
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/Core/Button/Button.tsx","../src/Theme/GlobalStyle.tsx","../src/Theme/utils.ts","../src/Theme/theme.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/Graph2D.tsx","../src/FullscreenCard/FullscreenCard.tsx"],"names":["GlobalStyle","createGlobalStyle","resolveThemeColor","__name","theme","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","lightThemePx","lightTheme","darkTheme","ThemeProvider","children","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","ALPHA_MIN","imgEyeLightIcon","eye_light_default","imgEyeLightHoverIcon","eye_light_hover_default","imgCrossLightIcon","cross_light_default","imgCrossLightHoverIcon","cross_light_hover_default","Graph2D","graphData","height","linkTarget","linkSource","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","useLayoutEffect","source","n","baseDistance","sourceSizeBase","targetSizeBase","chargeForce","centerForce","collideForce","forceCollide","err","paintRing","ctx","globalScale","radius","paintNodeButtons","x","y","buttonRadius","iconSize","crossIcon","renderCrossIcon","eyeIcon","renderEyeIcon","hideNode","unvisibles","showNode","handleHideNode","newHiddenNodes","newUnVisibleNodes","handleCollapseChildren","newCollapsedNodes","isPointInButtonArea","buttonX","buttonY","startAngle","endAngle","dx","dy","distance","angle","isInRadius","isInAngle","useEffect","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","$isActive","$position"],"mappings":"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","file":"index.mjs","sourcesContent":["import React from 'react';\nimport styled from 'styled-components';\nimport {\n ButtonVariant,\n ButtonSize,\n ButtonColor,\n getButtonStyles,\n getButtonSizeStyles,\n ButtonElementStyle,\n createComponent,\n FabricComponent,\n} from '../../Theme';\n\ntype BaseButtonProps = FabricComponent<{\n children?: any;\n variant?: ButtonVariant;\n color?: ButtonColor;\n size?: ButtonSize;\n disabled?: boolean;\n fullWidth?: boolean;\n className?: string;\n icon?: any;\n iconPosition?: 'left' | 'right';\n iconVariant?: 'filled' | 'empty';\n}>;\n\nexport type ButtonProps = (\n | Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'children'>\n | Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'children'>\n) &\n BaseButtonProps;\n\nconst getCss = (styles: ButtonElementStyle) => `\n background: ${styles.background};\n color: ${styles.text};\n border-color: ${styles.border};\n box-shadow: ${styles.boxShadow};\n `;\n\nconst getIconStyles = (styles: ButtonElementStyle) =>\n styles.filledIcon\n ? `\n color: ${styles.filledIcon.color};\n background: ${styles.filledIcon.background};\n `\n : '';\n\n// Створюємо стилізований компонент, що використовує уніфіковану палітру\nconst ButtonTextContainer = styled.div`\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n`;\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 *, *::before, *::after {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n }\n\n body, html {\n font-size: 14px;}\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","import { DefaultTheme } from 'styled-components/dist/types';\n\nimport 'styled-components';\nimport { convertPaletteToRem } from './utils';\nimport { Theme } from './types';\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 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 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 breakpoints: {\n xs: 320,\n s: 576,\n m: 768,\n l: 992,\n xl: 1200,\n },\n zIndex: {\n dropdown: 1000,\n sticky: 1020,\n fixed: 1030,\n backdrop: 1040,\n modal: 1050,\n popover: 1060,\n tooltip: 1070,\n },\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: 'rgba(0, 0, 0, 0.05)',\n text: '#101010',\n border: 'transparent',\n boxShadow: 'none',\n },\n active: {\n background: 'rgba(0, 0, 0, 0.1)',\n text: '#101010',\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 width: 224,\n collapsedWidth: 65,\n text: {\n default: '#101010',\n active: '#0042EC',\n hover: '#535353',\n },\n item: {\n default: {\n background: 'transparent',\n border: 'transparent',\n padding: '10px 16px',\n height: 40,\n },\n active: {\n background: '#F3F7FF',\n borderLeft: '2px solid #0042EC',\n padding: '10px 16px',\n height: 40,\n },\n hover: {\n background: '#F3F3F3',\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: '#EBEBEB',\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: '#EBEBEB',\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: '#EBEBEB',\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};\n\n// Конвертуємо всі розміри з px в rem\nexport const lightTheme = convertPaletteToRem(lightThemePx, lightThemePx.baseSize) as DefaultTheme;\nexport const darkTheme = convertPaletteToRem(lightThemePx, lightThemePx.baseSize) as DefaultTheme;\n","import { StyleSheetManager, ThemeProvider as ThemeProviderStyled, WebTarget } from 'styled-components';\nimport { lightTheme } from './theme';\nimport { GlobalStyle } from './GlobalStyle';\n\nexport const ThemeProvider = ({ children }: { children: any }) => {\n return (\n <StyleSheetManager shouldForwardProp={shouldForwardProp}>\n <ThemeProviderStyled theme={lightTheme}>\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.colors.stroke.light};\n background: ${theme.colors.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.colors.background};\n border-right: 1px solid ${theme.colors.stroke.light};\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.colors.text.light};\n background: ${theme.colors.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.colors.primary.lighter};\n color: ${theme.colors.primary.main};\n `\n : ''\n }\n ${$collapsed ? `gap: 0;` : ''}\n\n\n\n &:hover {\n background: ${theme.colors.primary.lightest};\n color: ${theme.colors.primary.main};\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: rgaba(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.colors.primary.main};\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.colors.stroke.main};\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.main};\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 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, ReactNode } 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 = ({\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}: FlexContainerProps) => {\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 >\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 min-width: 0;\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 ForceGraph2D, { ForceGraphMethods, LinkObject, NodeObject } from 'react-force-graph-2d';\nimport { Graph2DProps } from './types';\nimport { useEffect, useRef, useState, useCallback, useLayoutEffect } from 'react';\nimport { forceCollide } from 'd3-force';\nimport { styled } from 'styled-components';\nimport eyeLightIcon from './eye_light.png';\nimport eyeLightHoverIcon from './eye_light_hover.png';\nimport crossLightIcon from './cross_light.png';\nimport crossLightHoverIcon from './cross_light_hover.png';\n\nconst ALPHA_MIN = 0.5;\n\n// Створюємо та налаштовуємо об'єкти зображень\nconst imgEyeLightIcon = new Image();\nimgEyeLightIcon.src = eyeLightIcon;\n\nconst imgEyeLightHoverIcon = new Image();\nimgEyeLightHoverIcon.src = eyeLightHoverIcon;\n\nconst imgCrossLightIcon = new Image();\nimgCrossLightIcon.src = crossLightIcon;\n\nconst imgCrossLightHoverIcon = new Image();\nimgCrossLightHoverIcon.src = crossLightHoverIcon;\n\nexport const Graph2D = ({\n graphData,\n width,\n height,\n linkTarget,\n linkSource,\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 // Стан для підсвічування вузлів і зв'язків\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 = useCallback((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 = useCallback((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 * ALPHA_MIN <= 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 useLayoutEffect(() => {\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 fgRef.current?.d3Force('link')?.distance((link: any) => {\n // Отримуємо вузли на кінцях зв'язку\n const source = link.source;\n const target = link.target;\n\n // Базова відстань\n const baseDistance = config.nodeSizeBase * 2;\n\n // Динамічна відстань на основі розміру вузлів\n // Більші вузли повинні бути далі один від одного\n const sourceSizeBase = source.size || config.nodeSizeBase;\n const targetSizeBase = target.size || config.nodeSizeBase;\n\n // Відстань залежить від суми розмірів вузлів\n // Додаємо базову відстань 100\n return baseDistance + (sourceSizeBase + targetSizeBase);\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(-100) // Збільшуємо силу відштовхування (negative for repulsion)\n .distanceMax(100); // Максимальна дистанція, на якій діє ця сила\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.pauseAnimation().d3Force('collide', collideForce).resumeAnimation();\n } catch (err) {\n console.error('Error setting up collision force:', err);\n }\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 = 'rgba(255, 165, 0, 0.3)';\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 = '#e5e5e5';\n ctx.stroke();\n ctx.fillStyle = hoverTopButton ? 'rgba(230, 230, 230, 0.9)' : 'rgba(255, 255, 255, 0.8)';\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 = '#e5e5e5';\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 = '#e5e5e5';\n ctx.stroke();\n ctx.fillStyle = hoverBottomButton ? 'rgba(230, 230, 230, 0.9)' : 'rgba(255, 255, 255, 0.8)';\n ctx.fill();\n\n // Додаємо іконку хрестика для кнопки \"сховати вузол\"\n const iconSize = buttonRadius * 0.3; // Розмір іконки відносно радіуса кнопки (зменшено вдвічі)\n\n // Вибір іконки в залежності від стану наведення для верхньої кнопки (сховати)\n const crossIcon = hoverTopButton ? imgCrossLightHoverIcon : imgCrossLightIcon;\n const renderCrossIcon = () => {\n try {\n ctx.drawImage(crossIcon, x - iconSize / 2, y - (buttonRadius * 2) / 4 - iconSize - 1, iconSize, iconSize);\n } catch (error) {\n console.log('Error rendering cross icon:', error);\n }\n };\n // Використовуємо безпосередньо зображення, якщо воно вже завантажене\n if (crossIcon.complete) {\n // Розміщуємо іконку в центрі верхньої половини кнопки\n renderCrossIcon();\n } else {\n // Якщо зображення ще не завантажене, додаємо обробник завершення завантаження\n crossIcon.onload = () => {\n renderCrossIcon();\n };\n\n crossIcon.onerror = () => {\n console.log('Error loading cross icon image');\n };\n }\n\n // Додаємо іконку ока для кнопки \"згорнути дочірні вузли\"\n const eyeIcon = hoverBottomButton ? imgEyeLightHoverIcon : imgEyeLightIcon;\n const renderEyeIcon = () => {\n try {\n ctx.drawImage(eyeIcon, x - iconSize / 2, y + (buttonRadius * 2) / 4 + 1, iconSize, iconSize);\n } catch (error) {\n console.log('Error rendering eye icon:', error);\n }\n };\n // Використовуємо безпосередньо зображення, якщо воно вже завантажене\n if (eyeIcon.complete) {\n // Розміщуємо іконку в центрі нижньої половини кнопки\n\n renderEyeIcon();\n } else {\n // Якщо зображення ще не завантажене, додаємо обробник завершення завантаження\n eyeIcon.onload = () => {\n renderEyeIcon();\n };\n\n eyeIcon.onerror = () => {\n console.log('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) 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 = 'rgba(0, 0, 0, 0.5)';\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) ? '#ff9900' : '#999';\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) ? '#ff9900' : '#999';\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 = '#666'; // Колір тексту\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) ? 'rgba(255, 230, 204, 0.9)' : 'rgba(255, 255, 255, 0.8)';\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) ? '#663300' : '#666';\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 };\n\n return (\n <Wrapper ref={wrapperRef}>\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={ALPHA_MIN}\n d3VelocityDecay={0.4}\n d3AlphaDecay={0.038}\n // Виділення зв'язків при наведенні\n linkWidth={(link: any) => (highlightLinks.has(link) ? 3 : 1)}\n linkColor={(link: any) => (highlightLinks.has(link) ? '#ff9900' : '#999')}\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: inline-block;\n`;\n","import styled from 'styled-components';\n\ninterface FullscreenCardProps {\n children: any;\n position: 'absolute' | 'fixed';\n isActive: boolean;\n}\n\nexport const FullscreenCard = ({ isActive, position, ...props }: FullscreenCardProps) => {\n return <StyledContainer $isActive={isActive} $position={position} {...props} />;\n};\n\nconst StyledContainer = styled.div<{ $isActive: boolean; $position: 'absolute' | 'fixed' }>(\n ({ $isActive, $position }) => `\n${\n $isActive\n ? `\n position: ${$position};\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n z-index: 1000;\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/theme.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","resolveThemeColor","__name","theme","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","lightThemePx","lightTheme","darkTheme","ThemeProvider","children","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","x1","y1","x2","y2","thickness","length","angle","centerX","centerY","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","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.mjs","sourcesContent":["import React from 'react';\nimport styled from 'styled-components';\nimport {\n ButtonVariant,\n ButtonSize,\n ButtonColor,\n getButtonStyles,\n getButtonSizeStyles,\n ButtonElementStyle,\n createComponent,\n FabricComponent,\n} from '../../Theme';\n\ntype BaseButtonProps = FabricComponent<{\n children?: any;\n variant?: ButtonVariant;\n color?: ButtonColor;\n size?: ButtonSize;\n disabled?: boolean;\n fullWidth?: boolean;\n className?: string;\n icon?: any;\n iconPosition?: 'left' | 'right';\n iconVariant?: 'filled' | 'empty';\n}>;\n\nexport type ButtonProps = (\n | Omit<React.AnchorHTMLAttributes<HTMLAnchorElement>, 'children'>\n | Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, 'children'>\n) &\n BaseButtonProps;\n\nconst getCss = (styles: ButtonElementStyle) => `\n background: ${styles.background};\n color: ${styles.text};\n border-color: ${styles.border};\n box-shadow: ${styles.boxShadow};\n `;\n\nconst getIconStyles = (styles: ButtonElementStyle) =>\n styles.filledIcon\n ? `\n color: ${styles.filledIcon.color};\n background: ${styles.filledIcon.background};\n `\n : '';\n\n// Створюємо стилізований компонент, що використовує уніфіковану палітру\nconst ButtonTextContainer = styled.div`\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n`;\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 *, *::before, *::after {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n }\n\n body, html {\n font-size: 14px;}\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","import { DefaultTheme } from 'styled-components/dist/types';\n\nimport 'styled-components';\nimport { convertPaletteToRem } from './utils';\nimport { Theme } from './types';\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 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 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 breakpoints: {\n xs: 320,\n s: 576,\n m: 768,\n l: 992,\n xl: 1200,\n },\n zIndex: {\n dropdown: 1000,\n sticky: 1020,\n fixed: 1030,\n backdrop: 1040,\n modal: 1050,\n popover: 1060,\n tooltip: 1070,\n },\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: 'rgba(0, 0, 0, 0.05)',\n text: '#101010',\n border: 'transparent',\n boxShadow: 'none',\n },\n active: {\n background: 'rgba(0, 0, 0, 0.1)',\n text: '#101010',\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 width: 224,\n collapsedWidth: 65,\n text: {\n default: '#101010',\n active: '#0042EC',\n hover: '#535353',\n },\n item: {\n default: {\n background: 'transparent',\n border: 'transparent',\n padding: '10px 16px',\n height: 40,\n },\n active: {\n background: '#F3F7FF',\n borderLeft: '2px solid #0042EC',\n padding: '10px 16px',\n height: 40,\n },\n hover: {\n background: '#F3F3F3',\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: '#EBEBEB',\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: '#EBEBEB',\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: '#EBEBEB',\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};\n\n// Конвертуємо всі розміри з px в rem\nexport const lightTheme = convertPaletteToRem(lightThemePx, lightThemePx.baseSize) as DefaultTheme;\nexport const darkTheme = convertPaletteToRem(lightThemePx, lightThemePx.baseSize) as DefaultTheme;\n","import { StyleSheetManager, ThemeProvider as ThemeProviderStyled, WebTarget } from 'styled-components';\nimport { lightTheme } from './theme';\nimport { GlobalStyle } from './GlobalStyle';\n\nexport const ThemeProvider = ({ children }: { children: any }) => {\n return (\n <StyleSheetManager shouldForwardProp={shouldForwardProp}>\n <ThemeProviderStyled theme={lightTheme}>\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.colors.stroke.light};\n background: ${theme.colors.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.colors.background};\n border-right: 1px solid ${theme.colors.stroke.light};\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.colors.text.light};\n background: ${theme.colors.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.colors.primary.lighter};\n color: ${theme.colors.primary.main};\n `\n : ''\n }\n ${$collapsed ? `gap: 0;` : ''}\n\n\n\n &:hover {\n background: ${theme.colors.primary.lightest};\n color: ${theme.colors.primary.main};\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: rgaba(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.colors.primary.main};\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.colors.stroke.main};\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.main};\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, ReactNode } 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 = ({\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}: FlexContainerProps) => {\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 >\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 min-width: 0;\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 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 lineToRect = (x1: number, y1: number, x2: number, y2: number, thickness: number = 1) => {\n // Calculate length and angle of the line\n const length = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2));\n const angle = (Math.atan2(y2 - y1, x2 - x1) * 180) / Math.PI;\n\n // Calculate center point of the line\n const centerX = (x1 + x2) / 2;\n const centerY = (y1 + y2) / 2;\n\n return (\n <rect\n x={centerX - length / 2}\n y={centerY - thickness / 2}\n width={length}\n height={thickness}\n transform={`rotate(${angle}, ${centerX}, ${centerY})`}\n />\n );\n };\n\n return (\n <LoaderWrapper>\n <ContentLoader width={width} height={height} viewBox=\"0 0 280 280\">\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, useLayoutEffect } from 'react';\nimport { forceCollide } from 'd3-force';\nimport { styled } 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;\n\nconst imgEyeLightHoverIcon = new Image();\nimgEyeLightHoverIcon.src = eyeLightHoverIcon;\n\nconst imgGroupLightIcon = new Image();\nimgGroupLightIcon.src = groupLightIcon;\n\nconst imgGroupLightHoverIcon = new Image();\nimgGroupLightHoverIcon.src = groupLightHoverIcon;\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 // Стан для підсвічування вузлів і зв'язків\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 = 'rgba(255, 165, 0, 0.3)';\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 = '#e5e5e5';\n ctx.stroke();\n ctx.fillStyle = hoverTopButton ? 'rgba(230, 230, 230, 0.9)' : 'rgba(255, 255, 255, 0.8)';\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 = '#e5e5e5';\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 = '#e5e5e5';\n ctx.stroke();\n ctx.fillStyle = hoverBottomButton ? 'rgba(230, 230, 230, 0.9)' : 'rgba(255, 255, 255, 0.8)';\n ctx.fill();\n\n // Додаємо іконку хрестика для кнопки \"сховати вузол\"\n const iconSize = buttonRadius * 0.3; // Розмір іконки відносно радіуса кнопки (зменшено вдвічі)\n\n // Вибір іконки в залежності від стану наведення для верхньої кнопки (сховати)\n const groupIcon = hoverTopButton ? imgGroupLightHoverIcon : imgGroupLightIcon;\n // Додаємо іконку ока для кнопки \"згорнути дочірні вузли\"\n const eyeIcon = hoverBottomButton ? 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 (eyeIcon.complete) {\n // Розміщуємо іконку в центрі нижньої половини кнопки\n\n renderGroupIcon();\n } else {\n // Якщо зображення ще не завантажене, додаємо обробник завершення завантаження\n eyeIcon.onload = () => {\n renderGroupIcon();\n };\n\n eyeIcon.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) 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 = 'rgba(0, 0, 0, 0.5)';\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) ? '#ff9900' : '#999';\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) ? '#ff9900' : '#999';\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 = '#666'; // Колір тексту\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) ? 'rgba(255, 230, 204, 0.9)' : 'rgba(255, 255, 255, 0.8)';\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) ? '#663300' : '#666';\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) => (highlightLinks.has(link) ? '#ff9900' : '#999')}\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"]}
|