Introduces a visual indicator for when the reader is buffering, meaning it's supposed to be playing but the current audio segment is not yet available.
Also, prevents accidental article selection when clicking the "Remove" button in the queue by adding `stopPropagation`.
Adds a new `ReaderSettings` type to manage user preferences such as dark mode, font size, line height, font family, and auto-scroll behavior.
Implements dark mode styling for various UI components including the `VoiceSelector` and `QueueItem`, enhancing visual consistency.
Enhances the `ReaderView` component to respect the `autoScroll` setting and introduces basic text styling options based on the new settings.
Sets up the foundational elements for the NewsCaster AI application. This includes:
- Initializing the project with Vite and React.
- Defining core types for articles and player state.
- Configuring build tools and TypeScript.
- Adding essential dependencies like React, Vite, and Google's Gemini API client.
- Providing initial README instructions for running locally.
- Setting up basic styling and structure in index.html.
- Defining available voices and playback constants.
- Implementing utility functions for audio handling.