* chore: move logic for lastUsedByActivityType into ConstructIdentifier
* feat: vocab practice
* add vocab activity progress bar
* fix: shuffle audio practice choices
* update UI of vocab practice
Added buttons, increased text size and change position, cards flip over and turn red/green on click and respond to hover input
* add xp sparkle, shimmering choice card placeholder
* spacing changes
fix padding, make choice cards spacing/sizing responsive to screen size, replace shimmer cards with stationary circle indicator
* don't include duplicate lemma choices
* use constructID and show lemma/emoji on choice cards
add method to clear cache in case the results was an error, and add a retry button on error
* gain xp immediately and take out continue session
also refactor the choice cards to have separate widgets for each type and a parent widget to give each an id for xp sparkle
* add practice finished page with analytics
* Color tweaks on completed page and time card placeholder
* add timer
* give XP for bonuses and change timer to use stopwatch
* simplify card logic, lock practice when few vocab words
* merge analytics changes and fix bugs
* reload on language change
- derive XP data from new analytics
- Don't allow any clicks after correct answer selected
* small fixes, added tooltip, added copy to l10
* small tweaks and comments
* formatting and import sorting
---------
Co-authored-by: avashilling <165050625+avashilling@users.noreply.github.com>
* add shimmer in vocab page when no emoji selected
* fix shimmer in 2 column mode and add XP for first emoji selection
* add xp sparkle on emoji selection
* formatting, imports, widget name typo fix
* dont rebuild analytics page on every analytics stream update
* remove listener
* move animation and selection visual after slow function
for better visual flow and hopefully not noticeable stutter
* change transformTargetId into variable, update local display state before awaiting saving to analytics room
---------
Co-authored-by: ggurdin <ggurdin@gmail.com>
* more consistent emojis and emoji selection in vocab page
- Makes emoji row always visible in vocab page and highlights selection
- selects one by default so more emojis show on the page
- Saves spot in vocab page on navigation
- Doesn't override emoji choice from emoji activity
* code and import formatting
* reduce calls to lemma_definition, remove unused widget file, prevent copy-related errors, don't show emoji activities for messages with less-than 2 relevant tokens
---------
Co-authored-by: ggurdin <ggurdin@gmail.com>
Co-authored-by: ggurdin <46800240+ggurdin@users.noreply.github.com>
* chore: fully update match info after auto-accepting replacement, add more error handling in construct token span
* bump version
* fix: don't stop activity language on fail to fetch image URL
* fix: don't show copy class code buttons into class code is null
* fix: use activity type enum name in key instead of string
* chore: fully update match info after auto-accepting replacement, add … (#2866)
* chore: fully update match info after auto-accepting replacement, add more error handling in construct token span
* bump version
* fix: don't stop activity language on fail to fetch image URL
* fix: don't show copy class code buttons into class code is null
* fix: use activity type enum name in key instead of string
* refactor: remove tokens and detections from IGC text data model
* generated
* refactor: initial work to remove tokens from span_details and IT responses
* refactor: add xp field to construct use class, rewrite function for turning choreo record into construct uses
* refactor: add translation assistance construct use type
* refactor: move analytics feedback to popup above messages
* generated
---------
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* chore: show correct morph once matched
* fix: account for morph activities in function to determine is token activity is complete
* chore: on click already correctly matched item, open the toolbar for the corresponding token