LWT JavaScript API
    Preparing search index...

    Alpine component state for the books list.

    interface BookListData {
        books: Book[];
        error: string;
        isLoading: boolean;
        languageId: number;
        languages: LanguageListItem[];
        notification: string;
        page: number;
        pagination: BookPagination;
        authorLabel(book: Book): string;
        bookHref(book: Book): string;
        changeLanguage(event: Event): Promise<void>;
        clearNotification(): void;
        confirmDelete(book: Book): Promise<void>;
        goToPage(page: number): Promise<void>;
        init(): Promise<void>;
        isCurrentPage(page: number): boolean;
        isSelectedLanguage(lang: LanguageListItem): boolean;
        load(): Promise<void>;
        pageNumbers(): number[];
        progressLabel(book: Book): string;
    }
    Index
    books: Book[]
    error: string
    isLoading: boolean
    languageId: number
    languages: LanguageListItem[]
    notification: string
    page: number
    pagination: BookPagination