LWT JavaScript API
    Preparing search index...

    Alpine component state for the book detail page.

    interface BookDetailData {
        book: Book | null;
        bookId: number;
        chapters: BookChapter[];
        error: string;
        isLoading: boolean;
        chapterCountLabel(): string;
        continueHref(): string;
        editHref(chapter: BookChapter): string;
        init(): Promise<void>;
        isCurrentChapter(chapter: BookChapter): boolean;
        load(): Promise<void>;
        progressLabel(): string;
        readHref(chapter: BookChapter): string;
        remove(): Promise<void>;
        sourceLabel(): string;
    }
    Index
    book: Book | null
    bookId: number
    chapters: BookChapter[]
    error: string
    isLoading: boolean