/** @jsx jsx */ /** @jsxFrag React.Fragment */ import React from 'react'; import { jsx } from '@emotion/react'; import { type IconName } from '@blueprintjs/core'; import { type WorkspaceProps } from '../Workspace'; import type { SuperSidebarConfig } from './types'; /** * Wraps Workspace, adding tabbed GUI features. * Use inside TabbedWorkspaceContextProvider. */ export interface TabbedWorkspaceProps = []> { /** * Configuration for individual sidebars, keyed by internal sidebar ID. * If there is more than one sidebar, sidebar selector is shown. */ sidebarConfig: SidebarIDs['length'] extends 0 ? undefined : SuperSidebarConfig; /** * Sidebar IDs as a list. This is used to order sidebars. * TODO: Eliminate in favor of using weights or another way of ordering? */ sidebarIDs: SidebarIDs; /** * @deprecated use `defaultTabPrompt` * * “Home” view shown by default when there are no tabs * or when explicitly invoked by the user. */ newTabPrompt?: JSX.Element; /** * View shown by default when there are no tabs * or when explicitly navigated to by the user. * * If not provided, some tab must be spawned programmatically * or user will see nothing. */ defaultTab?: { panel: JSX.Element; title?: JSX.Element | string; icon?: IconName; }; /** Set global mode bar for the workspace. */ globalMode?: WorkspaceProps['globalMode']; /** Set the status bar for the workspace. */ statusBar?: WorkspaceProps['statusBar']; sidebarWidth?: number; sidebarPosition?: WorkspaceProps['sidebarPosition']; /** If not provided, sidebar cannot be resized. */ onSidebarResize?: (newWidth: number) => void; className?: string; } declare const TabbedWorkspace: React.MemoExoticComponent; declare function TabbedWorkspace_ = []>({ sidebarConfig, sidebarIDs, newTabPrompt: defaultTabLegacy, defaultTab, globalMode, statusBar, sidebarWidth, sidebarPosition, onSidebarResize, className, }: TabbedWorkspaceProps): jsx.JSX.Element; export default TabbedWorkspace;