import { ArrowUturnLeftIcon, ArrowUturnRightIcon, Cog6ToothIcon, MapPinIcon, GlobeAltIcon, GlobeAmericasIcon, PaintBrushIcon, SparklesIcon, CodeBracketIcon, } from '@heroicons/react/24/outline'; import { AggregationIcon, AxesZoomIcon, ComputedFieldIcon, CoordGenericIcon, CoordSystemIcon, DebugIcon, ExportChartIcon, ExportCsvIcon, LayoutAutoIcon, LayoutFixedIcon, LayoutFullIcon, LayoutSizeIcon, MarkArcIcon, MarkAreaIcon, MarkAutoIcon, MarkBarIcon, MarkBoxplotIcon, MarkChoroplethIcon, MarkCircleIcon, MarkLineIcon, MarkPointIcon, MarkRectIcon, MarkTableIcon, MarkTextIcon, MarkTickIcon, MarkTrailIcon, MarkTypeIcon, RowLimitIcon, SortAscendingIcon, SortDescendingIcon, StackCenterIcon, StackIcon, StackNoneIcon, StackNormalizeIcon, TableSummaryIcon, TransposeIcon, } from '../components/icons/toolbar'; import { observer } from 'mobx-react-lite'; import React, { useCallback, useMemo } from 'react'; import { useTranslation } from 'react-i18next'; import { ResizeDialog } from '../components/sizeSetting'; import { GLOBAL_CONFIG } from '../config'; import { useVizStore } from '../store'; import { IStackMode, IDarkMode, IExperimentalFeatures } from '../interfaces'; import { IReactVegaHandler } from '../vis/react-vega'; import Toolbar, { ToolbarItemProps } from '../components/toolbar'; import { useShortcut } from './menubar'; import throttle from '../utils/throttle'; import KanariesLogo from '../assets/kanaries.png'; import { ImageWithFallback } from '../components/timeoutImg'; import LimitSetting from '../components/limitSetting'; import { omitRedundantSeparator } from './utils'; import { Button } from '@/components/ui/button'; import { classNames } from '@/utils'; interface IVisualSettings { darkModePreference: IDarkMode; rendererHandler?: React.RefObject; csvHandler?: React.RefObject<{ download: () => void }>; exclude?: string[]; extra?: ToolbarItemProps[]; experimentalFeatures?: IExperimentalFeatures; } const KanariesIcon = (props: { className?: string; style?: React.CSSProperties }) => (