Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request introduces a new "Reading Mode" feature for kriya (practice) that enables word-level highlighting and speech-driven progression through Hebrew text. It includes a toggle in the display options, new context and provider logic for tracking reading state, and UI changes to highlight words as they are read aloud. The main changes are grouped below:
Reading Mode Core Functionality:
ReadingModeProvidercontext (static/js/useReadingMode.js) that tracks segment registration, manages a flat list of Hebrew words, and updates the current word index based on speech recognition input. This enables real-time word-level highlighting as users read aloud.ReadingModeTextcomponent (static/js/ReadingModeText.jsx) that renders Hebrew text word-by-word, applying visual state ("unread", "current", "read") for each word based on reading progress.UI Integration and Display:
ReaderDisplayOptionsMenu, showing it when Hebrew text with nikud is available, and connected it to the new context. [1] [2] [3]ReaderPanelto wrap text columns with theReadingModeProviderand pass the reading mode state and highlighted refs. [1] [2] [3] [4]TextRangeandTextSegmentto render Hebrew text usingReadingModeTextwhen reading mode is active, and to ensure updates when the reading mode setting changes. [1] [2] [3] [4] [5] [6]Styling:
These changes collectively enable an interactive, speech-driven kriya reading experience with clear visual feedback for users.