1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2025-07-22 06:28:13 +00:00
Commit Graph

5011 Commits

Author SHA1 Message Date
tychovrahe
dda281e78a chore(core): fix clippy errors
[no changelog]
2025-06-09 17:12:31 +02:00
tychovrahe
6aa981da45 chore(core): update rust
[no changelog]
2025-06-09 17:12:31 +02:00
obrusvit
2dfae34b39 fix(eckhart): aligned screen border top arc
[no changelog]
2025-06-09 17:09:19 +02:00
Lukas Bielesch
8cfa6a3693 chore(eckhart): update shamir wallet creation
[no changelog]
2025-06-09 08:52:32 +02:00
Lukas Bielesch
468ddaab9d chore(eckhart): simplify updatable info screen
[no changelog]
2025-06-09 08:52:32 +02:00
Lukas Bielesch
13a020202e chore(eckhart): update pin flows for Eckhart UI
[no changelog]
2025-06-08 18:19:32 +02:00
obrusvit
7730e4c63b feat(eckhart): map foreign glyphs fonts
[no changelog]
2025-06-07 16:44:19 +02:00
tychovrahe
e3639fe195 fix(core/bootloader): eckhart - fix menu button not showing on some screens
[no changelog]
2025-06-06 17:47:49 +02:00
tychovrahe
0c3ae03d39 feat(core/prodtest): add radio test command
[no changelog]
2025-06-06 16:58:22 +02:00
Ioan Bizău
334079e453 feat(eckhart): allow buttons without multiline text
[no changelog]
2025-06-06 15:34:22 +02:00
Ioan Bizău
9d91c7a69c chore(eckhart): check button subtitle overflow
[no changelog]
2025-06-06 15:34:22 +02:00
Ioan Bizău
3f3fd4a021 feat(eckhart): allow multiline text in buttons
[no changelog]
2025-06-06 15:34:22 +02:00
Lukas Bielesch
0bff79e0e9 chore(tests): check the correct keyboard category
[no changelog]
2025-06-05 23:59:19 +02:00
Lukas Bielesch
9494ba8896 fix(core/eckhart): fix passphrase keyboard bug
- when multi tab key timer expires, the buttons are resetted only if the passphrase reached the max length
- when the passphrase keyboard layout is swapped, the buttons are resetted
[no changelog]
2025-06-05 23:59:19 +02:00
Lukas Bielesch
26a52a5ed4 chore(core/eckhart): change button content vertical aligment implementation
- previous impl. using allcase_height wasn't properly centering the text
[no changelog]
2025-06-05 23:59:19 +02:00
Roman Zeyde
f6f1471774 refactor(core): convert translation strings to str once
Instead of doing it on every `TranslationStringsChunk::get()` call.

[no changelog]
2025-06-05 21:08:14 +03:00
Roman Zeyde
d6b1cff024 feat(core): support new translation blob format
It supports multiple translations strings chunks and allows total
container size to be above 64kB.

Previous format is also supported by firmware.
2025-06-05 20:55:56 +03:00
Roman Zeyde
96fd484c2f chore(core): use .into() to convert from u16 to usize
It would fail to compile in case there is a possible truncation,
since using `as` will result in silent truncation.

[no changelog]
2025-06-05 20:55:56 +03:00
Roman Zeyde
880ee5af7a chore(core): remove unused MAGIC constant
[no changelog]
2025-06-05 20:55:56 +03:00
Martin Milata
26d66251a5 refactor(core): get_context raises NoWireContext if not found
[no changelog]
2025-06-05 15:53:23 +02:00
Martin Milata
99f56a09d0 refactor(core/ui): parametrize show_pairing_code
[no changelog]
2025-06-05 15:53:23 +02:00
Martin Milata
2c45bac81a refactor(core): ignore BLE exceptions on boot
[no changelog]
2025-06-05 15:53:23 +02:00
Martin Milata
24279a60c0 refactor(core): drain the BLE event queue whenever layout is running
[no changelog]
2025-06-05 15:53:23 +02:00
Martin Milata
c3afe4c67b feat(core): BLE pairing flow
[no changelog]
2025-06-05 15:53:23 +02:00
Martin Milata
f077f2d1c1 feat(core/ui): eckhart: BLE event handling
[no changelog]
2025-06-05 15:53:23 +02:00
Martin Milata
6d0bcca70c fix(core): emulator build with PYOPT=1
[no changelog]
2025-06-05 15:29:27 +02:00
Roman Zeyde
5c49084a16 perf(core): wrap AddressDetails in a GcBox
[no changelog]
2025-06-04 21:01:25 +03:00
Roman Zeyde
a0ab4963f0 fix(core): close previous homescreen before changing it
Otherwise, it will fail due to double `ImageBuffer` locking.

Also, add a test to reproduce the locking issue.

[no changelog]
2025-06-04 21:00:38 +03:00
Roman Zeyde
bdc75e295d chore(core): improve ImageBuffer locking error message
Usually `AllocationFailed` is due to GC OOM errors,
while here it's more "deadlock-like" scenario.

[no changelog]
2025-06-04 20:52:55 +03:00
cepetr
8a115eff03 chore(core): reformat FEATURES_WANTED list for readability
[no changelog]
2025-06-04 16:58:15 +02:00
cepetr
bbb74c03a4 feat(core): introduce secure monitor
[no changelog]
2025-06-04 16:58:15 +02:00
cepetr
e66f4f2d83 refactor(core): simplify unprivileged SAES execution
[no changelog]
2025-06-04 16:58:15 +02:00
cepetr
37b608827c feat(core): allow execution of syscalls in thread mode
[no changelog]
2025-06-04 16:58:15 +02:00
cepetr
a133a01a1f feat(core): support mpu region setup per applet
[no changelog]
2025-06-04 16:58:15 +02:00
cepetr
a48abdb577 refactor(core): move tropic i/o definitions to t3w1 board
[no changelog]
2025-06-04 16:58:15 +02:00
cepetr
820a3c5ba2 refactor(core): remove redundant SYSCALL_DISPATCH definition
[no changelog]
2025-06-04 16:58:15 +02:00
cepetr
1cf9dc4d62 refactor(core): simplify linker scripts II
[no changelog]
2025-06-04 16:58:15 +02:00
cepetr
aa5ba7aba6 refactor(core): simplify linker scripts
[no changelog]
2025-06-04 16:58:15 +02:00
cepetr
5b537103bd feat(core): improve post mortem info for secure fault
[no changelog]
2025-06-04 16:58:15 +02:00
cepetr
05acc1599b fix(core): enable SecureFault handling
[no changelog]
2025-06-04 16:58:15 +02:00
cepetr
a7466298ff refactor(core): prepare for secure/non-secure memory layout
[no changelog]
2025-06-04 16:58:15 +02:00
cepetr
1a372b5019 feat(core): allow passing postmortem info in bootargs
[no changelog]
2025-06-04 16:58:15 +02:00
Lukas Bielesch
cafed0d02b chore(core/eckhart): Unify usage of ParagraphVecShort
[no changelog]
2025-06-04 12:47:50 +02:00
Lukas Bielesch
3f14cd1d27 chore(eckhart): replace-by-fee update
[no changelog]
2025-06-04 12:47:50 +02:00
Lukas Bielesch
17f2d05baa fix(core): clippy warning
[no changelog]
2025-06-04 12:47:50 +02:00
tychovrahe
ec4e6de040 fix(core/prodtest): fix bolt welcome screen without power manager
[no changelog]
2025-06-04 08:12:48 +02:00
tychovrahe
7294cc62fb feat(core/prodtest): separate prodtest UI implementation for Eckhart
[no changelog]
2025-06-04 08:12:48 +02:00
tychovrahe
d5a9b7ee58 fix(core/prodtest): show homescreen after fuel gauge monitor ends
[no changelog]
2025-06-04 08:12:48 +02:00
Lukas Bielesch
d91923b999 chore(core/eckhart): Update passphrase-related flows
[no changelog]
2025-06-03 18:59:37 +02:00
Lukas Bielesch
41a852c675 chore(core/eckhart): Update ConfirmAction button styling logic 2025-06-03 18:59:37 +02:00
Lukas Bielesch
1f69975ba9 chore(core/eckhart): Allow TextScreen to be used without a header
[no changelog]
2025-06-03 18:59:37 +02:00
Roman Zeyde
c01b56a5a0 fix(core): Eckhart doesn't have a separate confirm page
[no changelog]
2025-06-03 18:10:35 +03:00
Lukas Bielesch
9643253630 feat(eckhart): implement FW update UI trait function
[no changelog]
2025-06-03 17:02:20 +02:00
kopecdav
32a830da1c fix(core/prodtest): fix vcp jamming when USB unplugged.
[no changelog]
2025-06-03 15:11:15 +02:00
Ioan Bizău
98aa195443 fix(core/ui): confirm_output subtitle
[no changelog]
2025-06-03 15:06:29 +02:00
Ioan Bizău
d65b4f0e86 fix(core): warnings in device build
[no changelog]
2025-06-03 14:18:47 +02:00
tychovrahe
0081788d48 fix(core/prodtest): fix prodtest emulator build for T3W1
[no changelog]
2025-06-03 09:24:57 +02:00
tychovrahe
0ac3dec433 fix(core): fix pm_get_state syscall stub
[no changelog]
2025-06-03 09:24:40 +02:00
Lukas Bielesch
fea8031c96 chore(translations): drop turkish translations 2025-06-02 11:42:34 +02:00
tychovrahe
9683efb5b9 feat(core/prodtest): add prodtest emulator
[no changelog]
2025-06-02 09:16:53 +02:00
tychovrahe
9e8f989c80 fix(core): implement reboot_to_bootloader for unix
[no changelog]
2025-06-02 09:16:53 +02:00
tychovrahe
fb61ea0ce8 feat(core/unix): add board capabilities basic implementation for unix
[no changelog]
2025-06-02 09:16:53 +02:00
tychovrahe
803baf7fcd feat(core/unix): implement USB VCP emulation
[no changelog]
2025-06-02 09:16:53 +02:00
tychovrahe
c0c5003e08 chore(core): replace itoa with portable function
[no changelog]
2025-06-02 09:16:53 +02:00
tychovrahe
1bd4d17d0e refactor(core): implement cpuid as separate module
[no changelog]
2025-06-02 09:16:53 +02:00
tychovrahe
5a3156d782 refactor(core/unix): use unix common files in scons
[no changelog]
2025-06-02 09:16:53 +02:00
Roman Zeyde
cec282993a refactor(core): simplify per-model imports using cfg-if macro
[no changelog]
2025-06-01 14:31:43 +03:00
tychovrahe
baa6317113 fix(core): fix lockable bootloader logic in secret and MPU
Also, fix firmware build with `DISABLE_OPTIGA=1`.

[no changelog]
2025-05-30 19:28:46 +03:00
Roman Zeyde
64241033cb chore(core): move coverage-related Rust code into a separate module
Also, exclude it from non-debug builds.

[no changelog]
2025-05-30 19:26:51 +03:00
Roman Zeyde
1b8116129a chore(core): add a missing Map import for obj_module macro
[no changelog]
2025-05-30 19:26:51 +03:00
Roman Zeyde
7f5b71817f fix(core): fix DeprecationWarning for datetime.datetime.utcnow()
[no changelog]
2025-05-30 18:55:08 +03:00
obrusvit
341cc54071 chore: regenerate langs/signatures/qstr/fixtures 2025-05-30 17:38:16 +02:00
obrusvit
1efdad0aab feat(eckhart): port recent functionaliy
- ETH approve, #4958
- success screens after BR, #4882 and #5068
- do not confirm known SOL token, #5086
- fail on text overflow, #4767
2025-05-30 17:38:16 +02:00
obrusvit
0f695b55a9 refactor(core): fn plural_form will never panic
- also minor adjustment where the function is used in Eckahrt
2025-05-30 17:38:16 +02:00
obrusvit
10e88c870e chore(eckhart): improve DeviceMenu
- show BackupFailed correctly based on storage conditions
- separate autolock duration formatting to a separate function in
`trezor/strings.py`
2025-05-30 17:38:16 +02:00
obrusvit
d73f0dc79d perf(core/eckhart): constructing MenuItems
- self-referential builder pattern is easier on the stack memory usage
than consuming builder pattern
- store ButtonStyleSheet as a static ref
2025-05-30 17:38:16 +02:00
obrusvit
bd89e13493 refactor(core): return uPy Obj from DeviceMenu
[no changelog]
2025-05-30 17:38:16 +02:00
Roman Zeyde
3aab117046 refactor(core): unify menu and about Eckhart screens into an enum
[no changelog]
2025-05-30 17:38:16 +02:00
obrusvit
482b442c8e feat(eckhart): remove label shadow on default hs 2025-05-30 17:38:16 +02:00
Lukas Bielesch
a57fc3f8ed feat(core): update number input screen
- add time-handling functions
- add option to show time units
- add hold functionality to increment/decrement buttons
- add new device-menu actions
2025-05-30 17:38:16 +02:00
Lukas Bielesch
b8f018a419 fix(eckhart): fix failing tests: homescreen, fido, solana 2025-05-30 17:38:16 +02:00
obrusvit
12e1c456c7 feat(eckhart): port bootloader ble handling 2025-05-30 17:38:16 +02:00
obrusvit
0afc97227f fix(eckhart): a few alignment and style issues
- fix pyright
2025-05-30 17:38:16 +02:00
Lukas Bielesch
c66b435212 fix(eckhart): fix unstable click tests
- Differentiate input vectors for Eckhart due to different screen size
- paginate, where possible
2025-05-30 17:38:16 +02:00
Lukas Bielesch
2963065afc feat(eckhart): confirm_signverify, confirm_blob, ethereum, solana and nostr support 2025-05-30 17:38:16 +02:00
Lukas Bielesch
b45865a808 chore(eckhart): use dedicated function for menu buttons creation 2025-05-30 17:38:16 +02:00
Lukas Bielesch
40d9b049b8 chore(eckhart): update show_mismatch, confirm_output and confirm_value and progress_screen functions 2025-05-30 17:38:16 +02:00
Lukas Bielesch
4eb872e1c8 feat(eckhart): implement trait functions: confirm_value_intro,
confirm_modify_output, confirm_modify_fee, confirm_with_menu,
show_info_with_cancel and confirm_props
2025-05-30 17:38:16 +02:00
Lukas Bielesch
edfec4f407 feat(eckhart): update request number trait function
add request number flow instead of screen only
add updatable info screen to show extra information
2025-05-30 17:38:16 +02:00
Lukas Bielesch
da319daccb chore(eckhart): update get_address flow to use xpubs
- remove line ending hyphens from mono fonts
- update test to scroll through an entire page
2025-05-30 17:38:16 +02:00
Lukas Bielesch
b77db55330 chore(eckhart): TextScreen improvements
update page count for the content,
add page limit,
enable subtitle to have two lines
2025-05-30 17:38:16 +02:00
obrusvit
04b61ea6af feat(eckhart): render_loader and ProgressScreen
- `render_loader` shows classic circular loader going around the
display, implemented by rendering `ScreenBorder` and hiding it by 5
black rectangles which progressively diminish
- `render_loader_indeterminate` shows progress loader without known
duration, implemented by rendering `ScreenBorder` in clip which travels
around the SCREEN in an octagonal shape. This achieves an effect of a
constant length line going around the screen shape
- implement `show_progress` and `show_progress_coinjoin` FirmwareUI
functions

chore(eckhart): remove animation code from Header
2025-05-30 17:38:16 +02:00
obrusvit
843ef7d441 feat(eckhart): extract tile pattern constants 2025-05-30 17:38:16 +02:00
obrusvit
ad94f5e0a5 feat(core): animate ProgressLayout in Python
- the commit allows for smoother animation of the `ProgressLayout` by
stepping through the reported progress
2025-05-30 17:38:16 +02:00
obrusvit
f77ca411b2 chore(eckhart): re-export new Close icon 2025-05-30 17:38:16 +02:00
Lukas Bielesch
11d780a337 feat(eckhart): add FIDO2 support
- enable vertical menu swipe without animations
- FidoCredential component, confirm_fido flow and icons
- Fix show_error action bar and header colors
- Implement AllowedTextContent for FidoCredential
- Add new return type for VerticalMenuScreen
- provide short and long vertical menu
2025-05-30 17:38:16 +02:00
Lukas Bielesch
b3a114ee67 chore(eckhart): Implement new struct for word-selection menu
This simplifies the implementation of the verical menu
2025-05-30 17:38:16 +02:00
Lukas Bielesch
7e7015734d core(eckhart): Update Vertical Menu
Leave event processing to the Vertical Menu
Disable scrolling when the menu fits the screen
2025-05-30 17:38:16 +02:00
obrusvit
ae02d77852 feat(eckhart): use gradients in ActionBar 2025-05-30 17:38:16 +02:00
obrusvit
c48e8f8a90 feat(eckhart): fix hint padding 2025-05-30 17:38:16 +02:00
Lukas Bielesch
994b61e38b fix(eckhart): fix failing gen_check and rust tests 2025-05-30 17:38:16 +02:00
Martin Milata
39a1c81154 refactor(core): device menu modules
[no changelog]
2025-05-30 17:38:16 +02:00
Ioan Bizău
b1dce3974f feat(eckhart): introduce the device menu
- also add layouts for device pairing
- send device name and version to the device menu
2025-05-30 17:38:16 +02:00
obrusvit
6a208e9efa feat(eckhart): gradient buttons 2025-05-30 17:38:16 +02:00
obrusvit
5f13250963 chore(eckhart): remove Hint animation code 2025-05-30 17:38:16 +02:00
Lukas Bielesch
418ae5d4cd fix(eckhart): Fix behavior of set brightness screen:
Do not confirm brightness by releasing finger, but by pressing the cross button.
2025-05-30 17:38:16 +02:00
obrusvit
19b116894e feat(eckhart): improve confirmations 2025-05-30 17:38:16 +02:00
obrusvit
0bc1f2f44d feat(eckhart): auto PaginateOnly for TextScreen
- make sure that TextScreen has at least PaginateOnly ActionBar if the
content doesn't fit
2025-05-30 17:38:16 +02:00
obrusvit
53fbe51595 feat(eckhart): improve pagination of ActionBar
- Single mode now handles pagination with the right_button shown at the
last page
- new PaginateOnly mode to only render navigation buttons without
cancel/confirm buttons
2025-05-30 17:38:16 +02:00
Lukas Bielesch
3f1b5a9e28 chore(eckhart): minor improvements
- update trace function for firmware components
- add missing button requests
- update get address flow
- require long press to lock even with disabled animations
2025-05-30 17:38:16 +02:00
Lukas Bielesch
fa8e93d64a fix(eckhart): fix last pending char for max len passphrase 2025-05-30 17:38:16 +02:00
Lukas Bielesch
43cd9b4c10 feat(eckhart): set brightness screen 2025-05-30 17:38:16 +02:00
Lukas Bielesch
ad9002307e chore(eckhart): Update warnings title 2025-05-30 17:38:16 +02:00
Lukas Bielesch
51147804c9 feat(eckhart): confirm summary and output 2025-05-30 17:38:16 +02:00
Lukas Bielesch
5ac9457b0c chore(eckhart): TextScreen improvements
- add mono light font + remove trailing hyphen from mono style
- text screen subtitle
2025-05-30 17:38:16 +02:00
Lukas Bielesch
aee3b2b6ac fix(eckhart): minor fixes for recovery and reset screens
correct placement of numbers on the keypad,
fix number input screen for double-digit numbers,
remove unused menu button, use double action bar instead,
fix inconsistent hint use
update warning titles
2025-05-30 17:38:16 +02:00
Lukas Bielesch
0f4a64eea6 feat(eckahrt): continue_recovery and show_success
- make recovery notifications layout-specific
2025-05-30 17:38:16 +02:00
Lukas Bielesch
a465bfdb2e chore(eckhart): implement checklist screen & flow 2025-05-30 17:38:16 +02:00
obrusvit
24b4048916 feat(eckhart): default homescreen
- make homescreen hold to lock, lock the device by long-pressing the homescreen anywhere but the
action bar
2025-05-30 17:38:16 +02:00
obrusvit
9e92a23190 feat(eckhart): implement several FirmwareUI fns
- confirm_emphasize
- show_error
- homescreen ButtonContent
- homescreen and lockscreen
- HomeScreen, ConfirmHomescreen full-screen components
- confirm_set_new_pin
- fix clippy and style
2025-05-30 17:38:16 +02:00
obrusvit
7da1f732d8 feat(eckhart): implement BootloaderUI
- skimmed variants of Header, ActionBar, TextScreen, Menu
- implement ErrorScreen
- implement WelcomeScreen
- implement bootloader loader
- the implementation sits in the separate file `ui_bootloader.rs`
2025-05-30 17:38:16 +02:00
obrusvit
73ccb96fe6 chore(eckhart): cleanup code
- feature-gate non-bootloader fonts
- delete old bootloader components
- cleanup theme module
2025-05-30 17:38:16 +02:00
Lukas Bielesch
c777caf087 feat(eckhart): receive address flow
- add new action bar mode
- full-screen QR screen component
- show danger flow
- update address warnings
2025-05-30 17:38:16 +02:00
Lukas Bielesch
5cc3a0dfdb refactor(eckhart): update fonts and disabled button style
- Fix translation pattern
2025-05-30 17:38:16 +02:00
obrusvit
fee5624590 refactor(eckhart): ignore empty description
- don't show empty text in confirm_action
2025-05-30 17:38:16 +02:00
obrusvit
f6c0d0e87d feat(eckhart): improve ActionBar content
- button content is moved towards the center a bit
- shrink left button at the last page of paginated component
- change the order of render in `TextScreen` to account for Header
overlay. If the main content reaches the Header area, we do not want to
overlay it during Hold to Confirm animation
2025-05-30 17:38:16 +02:00
obrusvit
7a364fa215 refactor(eckhart): separate FW comps and theme 2025-05-30 17:38:16 +02:00
Lukas Bielesch
72640f3518 feat(eckhart): full-screen input number component 2025-05-30 17:38:16 +02:00
Lukas Bielesch
c9d8203fa4 chore(eckhart): update existing components accordint to new design 2025-05-30 17:38:16 +02:00
Lukas Bielesch
cf29524525 feat(eckahrt): implement show info UI trait function 2025-05-30 17:38:16 +02:00
Lukas Bielesch
cff6a498a2 feat(eckhart): prompt backup flow
- implement provisional show progress UI trait function
2025-05-30 17:38:16 +02:00
Lukas Bielesch
714e09383f feat(eckhart): confirm reset flow 2025-05-30 17:38:16 +02:00
Lukas Bielesch
fac1979d64 chore(eckhart): VerticalMenuScreen improvements
- implement Swipable trait for vertical menu screen
- add warning text styles
2025-05-30 17:38:16 +02:00
Lukas Bielesch
7663a3a20d core(eckhart): Fix failing unit test and warnings 2025-05-30 17:38:16 +02:00
Lukas Bielesch
57fe0e3e39 feat(eckhart): Full-screen get count component 2025-05-30 17:38:16 +02:00
obrusvit
66ecccda54 feat(eckhart): add easing and rollback to HtC anim
- also switch corner icons to 4px width
2025-05-30 17:38:16 +02:00
obrusvit
a2f618bd94 feat(eckhart): add alpha to ScreenBorder 2025-05-30 17:38:16 +02:00
obrusvit
d109a5b352 chore(eckhart): fix some clippy warnings 2025-05-30 17:38:16 +02:00
Lukas Bielesch
db8e8cd2b8 feat(eckhart): Add mnemonic input component
- BIP39 & SLIP39
2025-05-30 17:38:16 +02:00
Lukas Bielesch
f859c0bc6c feat(eckhart): full-screen mnemonic component 2025-05-30 17:38:16 +02:00
Lukas Bielesch
b95aebd2fc feat(eckhart): full-screen passphrase component
- and flow
2025-05-30 17:38:16 +02:00
Lukas Bielesch
547a4c357e feat(eckhart): full-screen PIN keyboard component 2025-05-30 17:38:16 +02:00
Lukas Bielesch
106b16191b feat(eckhart): keypad component 2025-05-30 17:38:16 +02:00
Lukas Bielesch
d1ad96426c feat(ui): Add visibility-checking function to Maybe struct 2025-05-30 17:38:16 +02:00
Lukas Bielesch
4a7148b349 feat(ui): Add function for expanding Button touch area 2025-05-30 17:38:16 +02:00
Lukas Bielesch
d3015dc2aa feat(eckhart): Add common keyboard functionality
- plus keyboard button styles
2025-05-30 17:38:16 +02:00
Lukas Bielesch
76ee57dd6c feat(eckhart): Add parametrized content offset to Button 2025-05-30 17:38:16 +02:00
Lukas Bielesch
36d1d6c4c3 chore(eckhart): Add dynamic padding option to vertical menu. Update rendering of separarators in vertical menu. 2025-05-30 17:38:16 +02:00
Lukas Bielesch
d270e3192a feat(eckhart): full-screen select word component 2025-05-30 17:38:16 +02:00
Lukas Bielesch
ced03df91a chore(eckhart): Remove redundant code 2025-05-30 17:38:16 +02:00