goobs-frontend
Version:
A comprehensive React-based libary for building modern web applications
49 lines • 2.51 kB
TypeScript
import { default as React } from 'react';
export interface WorkspaceFilterShellPagination {
/** 1-indexed current page. */
page: number;
/** Items per page. */
pageSize: number;
/** Total number of items across ALL pages (pre-slice). */
totalItems: number;
/** Called with the 1-indexed page to move to. */
onPageChange: (page: number) => void;
}
export interface WorkspaceFilterShellProps {
/** Metrics summary slot — typically a `<MetricsAccordion/>`. Omit to hide. */
metrics?: React.ReactNode;
/** Section-navigation slot — typically a `<Tabs appearance="chips"/>`. Sits
* directly above the sub-nav/filter with a deliberately tight gap. Omit to hide. */
nav?: React.ReactNode;
/** Secondary / sub-navigation slot — a second `<Tabs appearance="chips"/>`
* row rendered directly beneath `nav` (e.g. Monitoring / Polling within a
* section). Optional, so it changes and disappears per active tab. */
subNav?: React.ReactNode;
/** Filter slot — typically a `<FilterSection surface/>`. Rendered as the head
* of the content region so it integrates with the cards below. Omit to hide. */
filter?: React.ReactNode;
/** Card / list / grid content area. */
children?: React.ReactNode;
/** Built-in pagination, rendered BELOW the content (the cards). Give it the
* 1-indexed page + page size + total item count and it renders the
* Prev / numbered / Next control, hidden automatically when there is only one
* page. You still slice your own data
* (`items.slice((page - 1) * pageSize, page * pageSize)`) — the shell owns
* the control, you own the data. */
pagination?: WorkspaceFilterShellPagination;
/** Visual theme — surfaced as `data-theme` for CSS overrides. Default
* `'sacred'`. (The shell has no themed chrome of its own today; the attribute
* is forwarded so future themed containment can hook in without an API change.) */
styles?: {
theme?: 'sacred' | 'light' | 'dark';
};
/** Escape hatch — extra className merged onto the shell root. */
className?: string;
/** Escape hatch — inline style merged onto the shell root. */
style?: React.CSSProperties;
/** Stable test selector — surfaced as `data-workspace-shell-field`. */
dataField?: string;
}
export declare const WorkspaceFilterShell: React.FC<WorkspaceFilterShellProps>;
export default WorkspaceFilterShell;
//# sourceMappingURL=index.d.ts.map