import { LitElement } from 'lit'; import './workspaceSwitcherMenuItem'; import '../../reusable/link'; import { LINK_TARGETS } from '../../reusable/link/defs'; export interface WorkspaceSwitcherAccountMetaItem { text: string; href?: string; target?: LINK_TARGETS; rel?: string; actionIcon?: 'copy' | 'launch'; copyValue?: string; } export interface WorkspaceSwitcherAccountMeta { name: string; items?: WorkspaceSwitcherAccountMetaItem[]; } /** * Workspace Switcher shell component providing two-panel layout with mobile drill-down. * Component fits to 100% of the width and height of its container and surfaces two panels for content composition via slots. * Consumers compose workspace and account rows via named slots using * sub-components like `kyn-workspace-switcher-menu-item`. * The account meta block can also be provided via the `accountMeta` property, * which renders the preferred rigid built-in pattern. * @slot left - Legacy non-list content for the left panel when `accountMeta` is not used. Prefer `accountMeta`; this slot is maintained for backward compatibility. * @slot left-list - List items for the left panel (rendered inside role="list"). * @slot right - Non-list content for the right panel (e.g. search). * @slot right-list - List items for the right panel (rendered inside role="list"). * @fires on-account-meta-copy - Emits when a copy-style account meta action is activated. * @cssprop [--kyn-workspace-switcher-max-height=none] - Maximum height of the switcher panel. * @cssprop [--kyn-workspace-switcher-left-panel-width=275px] - Width of the left panel in desktop two-panel layout. */ export declare class WorkspaceSwitcher extends LitElement { static styles: import("lit").CSSResult; /** Text string customization. */ accessor textStrings: { currentTitle: string; workspacesTitle: string; backToWorkspaces: string; launchAssistiveText: string; }; /** Built-in account meta content for the left panel. */ accessor accountMeta: WorkspaceSwitcherAccountMeta | null; /** Mobile drill-down view state. 'root' shows left panel, 'detail' shows right panel. * @internal */ accessor view: 'root' | 'detail'; /** Hides the heading above the account meta info. */ accessor hideCurrentTitle: boolean; /** Hides the heading above the lower left-hand side list. Example: suppress for accounts-only customers. */ accessor hideWorkspacesTitle: boolean; /** Hides the divider beneath the `left` slot content. */ accessor hideLeftDivider: boolean; /** Merged text strings. * @internal */ private accessor _textStrings; /** Tracks whether legacy left-slot content is present. */ private accessor _hasLegacyLeftSlotContent; /** Tracks which copy-style account meta item is showing success feedback. */ private accessor _copiedAccountMetaIndex; /** * The nearest flyout host, if any. * @internal */ private _flyoutHost; /** * Clears transient copy feedback after a short delay. * @internal */ private _copyFeedbackTimeout; /** * Watches for legacy slot usage changes. * @internal */ private _lightDomObserver; /** * Ensures legacy slot guidance only logs once per host instance. * @internal */ private _hasWarnedAboutLegacyLeftSlot; /** * Ensures conflicting input guidance only logs once per host instance. * @internal */ private _hasWarnedAboutLeftSlotConflict; /** * @internal */ private _handleFlyoutToggle; connectedCallback(): void; disconnectedCallback(): void; willUpdate(changedProperties: Map): void; updated(changedProperties: Map): void; render(): import("lit-html").TemplateResult<1>; private _handleBackClick; private _updateLegacyLeftSlotState; private _updateChildMenuItemTextStrings; private _syncFlyoutHostMobilePresentation; private _clearFlyoutHostMobilePresentation; private _emitFlyoutHostMobilePresentation; private _warnForLegacyLeftSlotUsage; private _renderAccountMeta; private _renderAccountMetaItem; private _handleAccountMetaItemClick; private _showCopyFeedback; private _clearCopyFeedback; } declare global { interface HTMLElementTagNameMap { 'kyn-workspace-switcher': WorkspaceSwitcher; } } //# sourceMappingURL=workspaceSwitcher.d.ts.map