Раскрытие строки задачи показывает вертикальный ReUI Timeline: создана (с триггером) -> взята в работу -> результат с текстом ошибки. Diff ревизий переведён с самодельных <pre> на официальный @reui/code-block: единый блок с разметкой добавленных и удалённых строк (знаки +/- и тонировка), нумерацией, копированием и разворотом длинных списков. ResourcePage (filtered-вариант) получил поддержку expandedContent/getRowCanExpand — колонка раскрытия строится так же, как во FrameDataGrid. Точечные упрощения: прогресс BGP-сессий в мониторинге переведён на Progress из кита вместо самодельного бара; удалены @deprecated-константы ui-surface.ts, мёртвый data-grid-defaults.ts и неиспользуемый sparkline-ряд дашборда.
33 lines
1.4 KiB
TypeScript
33 lines
1.4 KiB
TypeScript
/**
|
||
* EvoBGP UI surface contract (ReUI Pro).
|
||
*
|
||
* Ops / list / dashboard / detail / settings: **Frame** only.
|
||
* KPI tiles: **stats-12** via `KpiStatGrid` / `reui-kit/KpiStatGrid`.
|
||
* Lists: Frame + DataGrid (`ResourcePage` / `FrameDataGrid`), not Card shell.
|
||
*
|
||
* @see https://reui.io/preview/base/stats-12
|
||
* @see https://reui.io/preview/base/dashboard-1
|
||
* @see https://reui.io/preview/base/data-grid-filtering-2
|
||
* @see docs/ui-design-contract.md
|
||
*/
|
||
export const UI_SURFACE = 'frame' as const
|
||
|
||
/** Skip link — keyboard: first Tab. */
|
||
export const SKIP_TO_CONTENT_CLASS =
|
||
'bg-background text-foreground ring-ring sr-only focus:not-sr-only focus:absolute focus:top-2 focus:left-2 focus:z-50 focus:rounded-md focus:px-3 focus:py-2 focus:text-sm focus:font-medium focus:shadow-sm focus:ring-2'
|
||
|
||
/** Grid for ReUI stats-12 KPI rows (3–6 tiles). */
|
||
export const kpiStatGridClassName = '@container w-full'
|
||
|
||
/** Two-column chart panel row (monitoring / network overview). */
|
||
export const chartPanelGridClassName =
|
||
'grid min-w-0 grid-cols-1 items-start gap-4 @5xl:grid-cols-2'
|
||
|
||
/**
|
||
* Main + sidebar: stack until the dashboard container is wide enough.
|
||
* Do not nest this inside another 2-col grid — that squeezes modules/timeline.
|
||
* @see https://reui.io/preview/base/dashboard-1
|
||
*/
|
||
export const dashboardMainSidebarClassName =
|
||
'grid min-w-0 grid-cols-1 items-start gap-4 @5xl:grid-cols-2'
|