import React from 'react'; export interface AppSwitcherApp { /** Stable key; `currentApp` names one of these. */ id: string; /** The product's name, as its own header spells it. */ name: string; /** Where the product opens — its home, not a deep link. */ href: string; /** A line under the name: what it is for, when names alone are not enough. */ description?: string; /** * The product's mark, at its own size — a 24px icon suits — centred on a * 40px tinted square. Without one, its initial on the same square. */ icon?: React.ReactNode; } export interface AppSwitcherProps { /** The products in the suite, in the order people look for them. */ apps: AppSwitcherApp[]; /** The `id` of the product this header belongs to. */ currentApp?: string; /** * Names the button — which is an icon only — its tooltip, and the panel. * Default "Apps". */ label?: string; /** Under the grid: a link to every app, or to manage access. */ footer?: React.ReactNode; isOpen?: boolean; onOpenChange?: (isOpen: boolean) => void; className?: string; } /** * AppSwitcher — the grid of products in a suite's header. * * LINKS, NOT A MENU * * Each product is a place with an address: it opens in this tab, in a new * one with a modifier or a middle click, and its address can be copied. A * `menu` of `menuitem`s would give up all three for arrow keys. So the panel * is a Popover — a dialog, focus kept inside, Escape and an outside click * close it and focus goes back to the button — holding a list of links, * reached with Tab. * * WHERE YOU ARE * * The product you are in is marked `aria-current="true"` — not "page": it is * a product, not this page — and drawn with a border as well as a tint, so * it is not told by colour alone. It stays a link, to its home. * * A press on a link closes the panel. Opening a product in the same document * — a hash route, a client router — would otherwise leave it open over the * page it went to. */ export declare function AppSwitcher({ apps, currentApp, label, footer, isOpen, onOpenChange, className, }: AppSwitcherProps): React.JSX.Element; export declare namespace AppSwitcher { var displayName: string; } //# sourceMappingURL=AppSwitcher.d.ts.map