- apps/desktop: electron-vite + React + Tailwind mapped onto design tokens (preflight off; tokens/base.css owns the reset); boots to a Reginald placeholder proving fonts/tokens/core wiring - packages/core: pure TS; gitea label schema (est/*, p/*, deadline/hard) with pessimistic conflict resolution + 15 unit tests - docs/design: full design handoff (tokens, 16 component contracts, interactive 14-screen prototype, Reginald voice rules) - docs/PLAN.md: product plan (purity rule, pm-state repo, deterministic scheduler + Monte Carlo, directive log) - Deliberate deviation from novelpad stack: no ElectricSQL/PGlite — local store is a rebuildable cache over gitea REST/webhooks (better-sqlite3 in main process, arriving in P1) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
22 lines
732 B
Plaintext
22 lines
732 B
Plaintext
/**
|
|
* Paper card — hairline border, 10px radius, whispered shadow. `jade` adds the jade top rule
|
|
* reserved for the view's key card (e.g. the Focus card).
|
|
*/
|
|
export interface CardProps {
|
|
/** Caslon title */
|
|
title?: React.ReactNode;
|
|
/** Small uppercase label above the title */
|
|
overline?: string;
|
|
/** Right-aligned header actions (IconButtons) */
|
|
actions?: React.ReactNode;
|
|
/** Footer row below a hairline */
|
|
footer?: React.ReactNode;
|
|
/** Jade top rule — one per view @default false */
|
|
jade?: boolean;
|
|
/** Remove body padding (tables, charts) @default false */
|
|
flush?: boolean;
|
|
children?: React.ReactNode;
|
|
style?: React.CSSProperties;
|
|
}
|
|
export declare function Card(props: CardProps): JSX.Element;
|