PanelSkeleton

PanelSkeleton — рамка Panel на время загрузки её содержимого: тот же грид, фон, скругление и отступы, а внутри — скелетоны того, что панель покажет, например CellSkeleton.

Типовой сценарий — фолбэк ленивой панели (тулбокса), пока грузится её чанк. Такой фолбэк едет в начальную загрузку, поэтому скелетон легче Panel: PanelSkeleton.Content — обычный блок без встроенного скролла (заглушки короче панели), а части собраны по файлам и не тянут за собой ScrollArea.

Шапка — настоящая Panel.Header с теми же пропсами: заголовок панели известен до загрузки, поэтому показывается сразу. PanelSkeleton.Footer нет — подвал у загружающейся панели показывать нечем.

Плашки скрыты от скринридеров (aria-hidden), поэтому признак загрузки — aria-busy на контейнере заглушек.

Задачи

Анатомия

PanelSkeleton.Root
Header
Content
Children (скелетоны содержимого)

API

PropTypeDefault
children*

Части скелетона: PanelSkeleton.Header и PanelSkeleton.Content — в любом порядке, каждая находит свою строку грида сама, как у Panel

ReactNode-

PanelSkeleton.Header

Шапка панели — та же Panel.Header: слоты left / center / right или произвольная разметка через children.

PropTypeDefault
children

Произвольное содержимое шапки вместо трёх слотов Triplet (например, ряд табов); если передано — left/center/right игнорируются

ReactNode-
className

Дополнительный класс на корне шапки

string-
left

Контент, отображаемый слева

TripletItem-
center

Контент, отображаемый по центру

TripletItem-
right

Контент, отображаемый справа

TripletItem-

Наследуется от ComponentProps<typeof PanelHeader>

PanelSkeleton.Content

Зона контента с отступами Panel.Content, но без скролла: дети встают колонкой.

PropTypeDefault
children*

Заглушки содержимого — например, несколько CellSkeleton

ReactNode-