forked from
quillmatiq.com/augment
Fork of Chiri for Astro for my blog
1import type { TOCItem, ReadingTime } from './content.types'
2
3// TOC component props interface
4export interface TOCProps {
5 toc?: TOCItem[]
6}
7
8// Post layout props interface (generic, not tied to specific data source)
9export interface PostLayoutProps {
10 title: string
11 pubDate: Date
12 image?: string
13 readingTime?: ReadingTime
14 toc?: TOCItem[]
15}
16
17// Transition props interface
18export interface TransitionProps {
19 type: 'post' | 'page'
20 class?: string
21}
22
23// Layout props interface
24export interface LayoutProps extends TransitionProps {
25 title?: string
26 description?: string
27}
28
29// BaseHead component props interface
30export interface BaseHeadProps {
31 title: string
32 description: string
33 ogImage?: string
34 atUri?: string
35}
36
37// ImageOptimizer component props interface
38export interface ImageOptimizerProps {
39 src: string | ImageMetadata
40 alt: string
41 width?: number
42 height?: number
43 quality?: number
44 format?: 'avif' | 'webp' | 'jpeg' | 'png'
45 loading?: 'lazy' | 'eager'
46 decoding?: 'async' | 'sync' | 'auto'
47 class?: string
48 caption?: string
49 priority?: boolean
50}
51
52// FormattedDate component props interface
53export interface FormattedDateProps {
54 date: Date
55 format?: string
56 context?: 'list' | 'post' | 'default'
57}
58
59// GitHub repository data interface
60export interface GitHubRepoData {
61 owner?: {
62 avatar_url: string
63 }
64 description?: string
65 stargazers_count?: number
66 forks_count?: number
67 license?: {
68 spdx_id: string
69 }
70}
71
72// Cached repository data interface
73export interface CachedRepoData {
74 data: GitHubRepoData
75 timestamp: number
76}
77
78// GitHub card UI elements interface
79export interface CardElements {
80 avatar: HTMLElement | null
81 desc: HTMLElement | null
82 stars: HTMLElement | null
83 forks: HTMLElement | null
84 license: HTMLElement | null
85}
86
87// LinkCard metadata interface (fetched from URL)
88export interface LinkCardMetadata {
89 title: string
90 description: string
91 image: string
92 imageAlt: string
93}