/** * Compact-card class constants — single source of truth for the chat-inline * `size='sm'` card frame. * * Lifted from the hub's `components/shared/compact-card/compact-card-classes.ts` * so the pure-presentation cards in `entity-cards/` can stop importing from * the hub tree. Every compact card across the chat shell shares the SAME * outer frame, skeleton frame, image slot, icon slot, text column, and * per-line typography. * * Card-specific variation (Play overlay on podcasts, #N pill on investor * updates, status badge on roadmap) lives INSIDE the card next to its * other type-specific JSX; the frame stays uniform across types. */ /** Loaded compact card outer frame for INTERACTIVE state — anchor wrap * with hover/transition affordance. Use ONLY when the card resolves * to a real, safe href; the user expects a clickable feel. */ export declare const COMPACT_CARD_OUTER = "my-1.5 flex items-start gap-3 w-full p-2 rounded-lg border border-ods-border bg-ods-card no-underline transition-colors hover:border-ods-text-secondary/40"; /** Loaded compact card outer frame for NON-INTERACTIVE state — span wrap * used when `safeHref()` rejects the chat ref's url. */ export declare const COMPACT_CARD_OUTER_STATIC = "my-1.5 flex items-start gap-3 w-full p-2 rounded-lg border border-ods-border bg-ods-card no-underline cursor-default"; /** Skeleton outer frame — same dimensions as loaded, plus `animate-pulse`. */ export declare const COMPACT_CARD_SKELETON_OUTER = "my-1.5 flex w-full animate-pulse items-start gap-3 rounded-lg border border-ods-border bg-ods-card p-2"; /** 56×56 image slot — for cards with a cover image. */ export declare const COMPACT_CARD_IMAGE_SLOT = "relative block shrink-0 self-start w-14 h-14 aspect-square overflow-hidden rounded-md bg-ods-bg"; /** 56×56 placeholder slot for skeletons. */ export declare const COMPACT_CARD_SKELETON_IMAGE_SLOT = "block h-14 w-14 aspect-square shrink-0 self-start rounded-md bg-ods-bg"; /** 56×56 icon slot — for cards without a cover image. */ export declare const COMPACT_CARD_ICON_SLOT = "flex h-14 w-14 aspect-square shrink-0 self-start items-center justify-center rounded-md bg-ods-bg text-ods-accent"; /** Text column wrapper — explicit 56px height with `flex flex-col`. */ export declare const COMPACT_CARD_TEXT_COL = "flex min-w-0 flex-1 flex-col gap-0.5 min-h-14"; /** Title row container — fixed 20px (h-5) to match `text-sm leading-5`. */ export declare const COMPACT_CARD_TITLE_ROW = "flex items-center min-w-0 h-5"; /** Subtitle / summary row container — fixed 16px (h-4). */ export declare const COMPACT_CARD_META_ROW_BOX = "flex items-center min-w-0 h-4"; /** Title text — bold 14px on a 20px line. */ export declare const COMPACT_CARD_TITLE = "truncate text-sm font-semibold leading-5 text-ods-text-primary"; /** Subtitle text — 11px on a 16px line. */ export declare const COMPACT_CARD_SUBTITLE = "truncate text-h6 text-ods-text-secondary"; /** Summary text — same metrics as subtitle, dropped to 80% opacity. */ export declare const COMPACT_CARD_SUMMARY = "truncate text-h6 text-ods-text-secondary/80"; /** Meta-row variant — multi-part 11px metadata. */ export declare const COMPACT_CARD_META_ROW = "flex items-center gap-1.5 min-w-0 text-h6 text-ods-text-secondary"; /** Non-breaking space — used as a fallback child so the row's height stays 16px. */ export declare const COMPACT_CARD_ROW_FILLER = "\u00A0"; /** Return the input url ONLY if it's safe to drop into an ``: * the scheme must be http / https / mailto, or the URL must be a * same-origin path (`/blog/foo`). Otherwise returns `null`. */ export declare function safeHref(url: string | null | undefined): string | null; //# sourceMappingURL=compact-card-classes.d.ts.map