Something went wrong. Try again.
[READ-ONLY] Mirror of https://github.com/trueberryless/the-thinking-hub. The central knowledge hub for 8 key Computer Science thinking modes. the-thinking-hub.felixs.dev
Something went wrong. Try again.
1.9 kB · 92 lines
TypeScript
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293import type { TOCItem, ReadingTime } from './content.types'
// TOC component props interfaceexport interface TOCProps { toc?: TOCItem[]}
// Post layout props interface (generic, not tied to specific data source)export interface PostLayoutProps { title: string pubDate: Date image?: string readingTime?: ReadingTime toc?: TOCItem[]}
// Transition props interfaceexport interface TransitionProps { type: 'post' | 'page' class?: string}
// Layout props interfaceexport interface LayoutProps extends TransitionProps { title?: string description?: string}
// BaseHead component props interfaceexport interface BaseHeadProps { title: string description: string ogImage?: string}
// ImageOptimizer component props interfaceexport interface ImageOptimizerProps { src: string | ImageMetadata alt: string width?: number height?: number quality?: number format?: 'avif' | 'webp' | 'jpeg' | 'png' loading?: 'lazy' | 'eager' decoding?: 'async' | 'sync' | 'auto' class?: string caption?: string priority?: boolean}
// FormattedDate component props interfaceexport interface FormattedDateProps { date: Date format?: string context?: 'list' | 'post' | 'default'}
// GitHub repository data interfaceexport interface GitHubRepoData { owner?: { avatar_url: string } description?: string stargazers_count?: number forks_count?: number license?: { spdx_id: string }}
// Cached repository data interfaceexport interface CachedRepoData { data: GitHubRepoData timestamp: number}
// GitHub card UI elements interfaceexport interface CardElements { avatar: HTMLElement | null desc: HTMLElement | null stars: HTMLElement | null forks: HTMLElement | null license: HTMLElement | null}
// LinkCard metadata interface (fetched from URL)export interface LinkCardMetadata { title: string description: string image: string imageAlt: string}