Excalidraw Bot
6ffc590084
New translations en.json (Arabic)
2025-11-25 15:58:46 +01:00
Excalidraw Bot
82df4bebb3
New translations en.json (Spanish)
2025-11-25 15:58:44 +01:00
Excalidraw Bot
14fde00a15
New translations en.json (French)
2025-11-25 15:58:43 +01:00
Excalidraw Bot
a45b4fdf9f
New translations en.json (Romanian)
2025-11-25 15:58:42 +01:00
Excalidraw Bot
495e42936f
New translations en.json (Italian)
2025-11-25 15:58:40 +01:00
Excalidraw Bot
bea9dc7977
New translations en.json (Portuguese, Brazilian)
2025-11-25 15:58:39 +01:00
Excalidraw Bot
453817c73f
New translations en.json (Russian)
2025-11-25 15:58:38 +01:00
Excalidraw Bot
12bc65db59
New translations en.json (Occitan)
2025-11-25 15:58:37 +01:00
Excalidraw Bot
353a0c7c22
New translations en.json (Japanese)
2025-11-25 15:58:36 +01:00
Excalidraw Bot
faa1fb2919
New translations en.json (Swedish)
2025-11-25 15:58:34 +01:00
Excalidraw Bot
b3f12b90e6
Auto commit: Calculate translation coverage
2025-11-24 19:58:25 +00:00
Excalidraw Bot
b9210cd9be
New translations en.json (Italian)
2025-11-24 20:58:09 +01:00
Excalidraw Bot
63ed064c1a
Auto commit: Calculate translation coverage
2025-11-24 18:33:57 +00:00
Excalidraw Bot
e649b839c2
New translations en.json (Italian)
2025-11-24 19:33:37 +01:00
Excalidraw Bot
a6926693d7
Auto commit: Calculate translation coverage
2025-11-22 23:24:47 +00:00
Excalidraw Bot
cadbc5a358
New translations en.json (Italian)
2025-11-23 00:24:31 +01:00
Excalidraw Bot
cadfe999cd
Auto commit: Calculate translation coverage
2025-11-22 21:41:53 +00:00
Excalidraw Bot
bf56d73b41
New translations en.json (Italian)
2025-11-22 22:41:38 +01:00
Excalidraw Bot
32001e7451
New translations en.json (Occitan)
2025-11-18 22:44:03 +01:00
Excalidraw Bot
8fb5aa13cc
New translations en.json (Portuguese, Brazilian)
2025-11-17 19:29:50 +01:00
Excalidraw Bot
a64ededc8f
Auto commit: Calculate translation coverage
2025-11-14 12:05:35 +00:00
Excalidraw Bot
61cfd4e602
New translations en.json (Russian)
2025-11-14 13:05:20 +01:00
Excalidraw Bot
58bb24978f
Auto commit: Calculate translation coverage
2025-11-14 10:17:41 +00:00
Excalidraw Bot
d10418d1ba
New translations en.json (Russian)
2025-11-14 11:17:27 +01:00
Excalidraw Bot
21d1c5bc0c
Auto commit: Calculate translation coverage
2025-11-11 20:52:24 +00:00
Excalidraw Bot
e7991d19fb
New translations en.json (Occitan)
2025-11-11 21:52:11 +01:00
Excalidraw Bot
5cc7e1ac49
Auto commit: Calculate translation coverage
2025-11-11 15:32:06 +00:00
Excalidraw Bot
df8d9a4652
New translations en.json (Japanese)
2025-11-11 16:31:52 +01:00
Excalidraw Bot
fc6a785d61
New translations en.json (Swedish)
2025-11-11 12:20:22 +01:00
David Luzar
7f66e1fe89
fix: banner url ( #10315 )
2025-11-11 11:29:44 +01:00
Márk Tolmács
2b4540225d
feat: Animation support ( #10042 )
2025-11-10 22:31:23 +01:00
Márk Tolmács
dc2f25c14a
fix: Alt-duplication copied elements placement ( #10152 )
2025-11-10 22:31:08 +01:00
Márk Tolmács
8fb16669ab
feat: Add binding visual debug ( #10222 )
2025-11-10 12:08:57 +01:00
David Luzar
f2600fe3e8
fix: close floating sidebar on main menu open ( #10295 )
2025-11-06 22:39:39 +01:00
zsviczian
95ddc66339
fix: add toggle pen-mode to MobileMenu ( #10293 )
...
* add toggle pen mode to MobileMenu
* swap buttons
---------
Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com >
2025-11-06 21:33:11 +00:00
David Luzar
5bcd8280c9
feat: add comments/presi eplus promos for discoveribility ( #10294 )
2025-11-06 21:35:14 +01:00
Ryan Di
c99e81678b
fix: mobile view ui issues ( #10284 )
...
* hide zen mode when formFactor = phone
* tool bar fixes: icon and width
* view mode
* fix lint
* add exit-view-mode button
---------
Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com >
2025-11-04 11:20:55 +00:00
Excalidraw Bot
d1f39823f1
chore: Update translations from Crowdin ( #7429 )
...
* New translations en.json (Punjabi)
* New translations en.json (Polish)
* New translations en.json (Russian)
* New translations en.json (Turkish)
* New translations en.json (Ukrainian)
* New translations en.json (Chinese Traditional)
* New translations en.json (Vietnamese)
* New translations en.json (Galician)
* New translations en.json (Portuguese, Brazilian)
* New translations en.json (Persian)
* New translations en.json (Khmer)
* New translations en.json (Tamil)
* New translations en.json (Bengali)
* New translations en.json (Marathi)
* New translations en.json (Thai)
* New translations en.json (Norwegian Nynorsk)
* New translations en.json (Kazakh)
* New translations en.json (Latvian)
* New translations en.json (Azerbaijani)
* New translations en.json (Hindi)
* New translations en.json (Burmese)
* New translations en.json (Chinese Traditional, Hong Kong)
* New translations en.json (Sinhala)
* New translations en.json (Uzbek)
* New translations en.json (Norwegian Bokmal)
* New translations en.json (Occitan)
* New translations en.json (German, Switzerland)
* New translations en.json (Bengali, India)
* New translations en.json (Kabyle)
* New translations en.json (Karakalpak)
* New translations en.json (Portuguese)
* New translations en.json (Russian)
* New translations en.json (Marathi)
* New translations en.json (Hindi)
* New translations en.json (German)
* New translations en.json (Chinese Simplified)
* New translations en.json (Polish)
* New translations en.json (Romanian)
* New translations en.json (Korean)
* New translations en.json (Chinese Traditional)
* New translations en.json (Hebrew)
* New translations en.json (Hebrew)
* New translations en.json (Slovak)
* New translations en.json (Slovak)
* New translations en.json (Hungarian)
* New translations en.json (Hungarian)
* New translations en.json (Slovak)
* New translations en.json (Hebrew)
* New translations en.json (Hungarian)
* New translations en.json (Korean)
* New translations en.json (Chinese Traditional)
* New translations en.json (Romanian)
* New translations en.json (French)
* New translations en.json (Spanish)
* New translations en.json (Arabic)
* New translations en.json (Bulgarian)
* New translations en.json (Catalan)
* New translations en.json (Czech)
* New translations en.json (Danish)
* New translations en.json (German)
* New translations en.json (Greek)
* New translations en.json (Basque)
* New translations en.json (Finnish)
* New translations en.json (Italian)
* New translations en.json (Japanese)
* New translations en.json (Kurdish)
* New translations en.json (Lithuanian)
* New translations en.json (Dutch)
* New translations en.json (Punjabi)
* New translations en.json (Polish)
* New translations en.json (Portuguese)
* New translations en.json (Russian)
* New translations en.json (Slovenian)
* New translations en.json (Swedish)
* New translations en.json (Turkish)
* New translations en.json (Ukrainian)
* New translations en.json (Chinese Simplified)
* New translations en.json (Vietnamese)
* New translations en.json (Galician)
* New translations en.json (Portuguese, Brazilian)
* New translations en.json (Indonesian)
* New translations en.json (Persian)
* New translations en.json (Khmer)
* New translations en.json (Tamil)
* New translations en.json (Bengali)
* New translations en.json (Marathi)
* New translations en.json (Thai)
* New translations en.json (Norwegian Nynorsk)
* New translations en.json (Kazakh)
* New translations en.json (Latvian)
* New translations en.json (Azerbaijani)
* New translations en.json (Hindi)
* New translations en.json (Burmese)
* New translations en.json (Chinese Traditional, Hong Kong)
* New translations en.json (Sinhala)
* New translations en.json (Uzbek)
* New translations en.json (Norwegian Bokmal)
* New translations en.json (Occitan)
* New translations en.json (German, Switzerland)
* New translations en.json (Bengali, India)
* New translations en.json (Kabyle)
* New translations en.json (Karakalpak)
* New translations en.json (Romanian)
* New translations en.json (German)
* New translations en.json (Slovenian)
* New translations en.json (Chinese Simplified)
* New translations en.json (Spanish)
* New translations en.json (Russian)
* New translations en.json (Chinese Traditional)
* New translations en.json (Turkish)
* New translations en.json (Slovak)
* New translations en.json (Slovak)
* New translations en.json (Hebrew)
* New translations en.json (Hungarian)
* New translations en.json (Korean)
* New translations en.json (Chinese Traditional)
* New translations en.json (Romanian)
* New translations en.json (French)
* New translations en.json (Spanish)
* New translations en.json (Arabic)
* New translations en.json (Bulgarian)
* New translations en.json (Catalan)
* New translations en.json (Czech)
* New translations en.json (Danish)
* New translations en.json (German)
* New translations en.json (Greek)
* New translations en.json (Basque)
* New translations en.json (Finnish)
* New translations en.json (Italian)
* New translations en.json (Japanese)
* New translations en.json (Kurdish)
* New translations en.json (Lithuanian)
* New translations en.json (Dutch)
* New translations en.json (Punjabi)
* New translations en.json (Polish)
* New translations en.json (Portuguese)
* New translations en.json (Russian)
* New translations en.json (Slovenian)
* New translations en.json (Swedish)
* New translations en.json (Turkish)
* New translations en.json (Ukrainian)
* New translations en.json (Chinese Simplified)
* New translations en.json (Vietnamese)
* New translations en.json (Galician)
* New translations en.json (Portuguese, Brazilian)
* New translations en.json (Indonesian)
* New translations en.json (Persian)
* New translations en.json (Khmer)
* New translations en.json (Tamil)
* New translations en.json (Bengali)
* New translations en.json (Marathi)
* New translations en.json (Thai)
* New translations en.json (Norwegian Nynorsk)
* New translations en.json (Kazakh)
* New translations en.json (Latvian)
* New translations en.json (Azerbaijani)
* New translations en.json (Hindi)
* New translations en.json (Burmese)
* New translations en.json (Chinese Traditional, Hong Kong)
* New translations en.json (Sinhala)
* New translations en.json (Uzbek)
* New translations en.json (Norwegian Bokmal)
* New translations en.json (Occitan)
* New translations en.json (German, Switzerland)
* New translations en.json (Bengali, India)
* New translations en.json (Kabyle)
* New translations en.json (Karakalpak)
* New translations en.json (German)
* New translations en.json (Russian)
* New translations en.json (Romanian)
* New translations en.json (Spanish)
* New translations en.json (Chinese Simplified)
* New translations en.json (Marathi)
* New translations en.json (Hindi)
* New translations en.json (Slovak)
* New translations en.json (German)
* New translations en.json (Portuguese)
* New translations en.json (Romanian)
* New translations en.json (French)
* New translations en.json (Spanish)
* New translations en.json (Arabic)
* New translations en.json (Bulgarian)
* New translations en.json (Catalan)
* New translations en.json (Czech)
* New translations en.json (Danish)
* New translations en.json (German)
* New translations en.json (Greek)
* New translations en.json (Basque)
* New translations en.json (Finnish)
* New translations en.json (Hebrew)
* New translations en.json (Hungarian)
* New translations en.json (Italian)
* New translations en.json (Japanese)
* New translations en.json (Korean)
* New translations en.json (Kurdish)
* New translations en.json (Lithuanian)
* New translations en.json (Dutch)
* New translations en.json (Punjabi)
* New translations en.json (Polish)
* New translations en.json (Portuguese)
* New translations en.json (Russian)
* New translations en.json (Slovak)
* New translations en.json (Slovenian)
* New translations en.json (Swedish)
* New translations en.json (Turkish)
* New translations en.json (Ukrainian)
* New translations en.json (Chinese Simplified)
* New translations en.json (Chinese Traditional)
* New translations en.json (Vietnamese)
* New translations en.json (Galician)
* New translations en.json (Portuguese, Brazilian)
* New translations en.json (Indonesian)
* New translations en.json (Persian)
* New translations en.json (Khmer)
* New translations en.json (Tamil)
* New translations en.json (Bengali)
* New translations en.json (Marathi)
* New translations en.json (Thai)
* New translations en.json (Norwegian Nynorsk)
* New translations en.json (Kazakh)
* New translations en.json (Latvian)
* New translations en.json (Azerbaijani)
* New translations en.json (Hindi)
* New translations en.json (Burmese)
* New translations en.json (Chinese Traditional, Hong Kong)
* New translations en.json (Sinhala)
* New translations en.json (Uzbek)
* New translations en.json (Norwegian Bokmal)
* New translations en.json (Occitan)
* New translations en.json (German, Switzerland)
* New translations en.json (Bengali, India)
* New translations en.json (Kabyle)
* New translations en.json (Karakalpak)
* Auto commit: Calculate translation coverage
* New translations en.json (Chinese Simplified)
* Auto commit: Calculate translation coverage
* New translations en.json (Romanian)
* Auto commit: Calculate translation coverage
* New translations en.json (Romanian)
* Auto commit: Calculate translation coverage
* New translations en.json (French)
* Auto commit: Calculate translation coverage
* New translations en.json (Polish)
* Auto commit: Calculate translation coverage
* New translations en.json (Polish)
* Auto commit: Calculate translation coverage
* New translations en.json (Turkish)
* Auto commit: Calculate translation coverage
* New translations en.json (Turkish)
---------
Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com >
2025-11-03 23:36:08 +01:00
Ryan Di
47cbb5b6fb
refactor: single source of truths with editor interface ( #10178 )
...
* refactor device to editor interface and derive styles panel
* allow host app to control form factor and ui mode
* add editor interface event listener
* put new props inside UIOptions
* refactor: move related apis into one file
* expose getFormFactor
* privatize the setting of desktop mode and fix snapshots
* refactor and fix test
* remove unimplemented code
* export getFormFactor()
* replace `getFormFactor` with `getEditorInterface`
* remove dead & useless
* comment
* fix ts
---------
Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com >
2025-11-03 23:34:17 +01:00
Márk Tolmács
8fd970320e
chore: Uncap the nodejs version requirement ( #10238 )
...
Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com >
2025-11-03 17:30:35 +01:00
Christopher Tangonan
8d8f696628
fix: prevent wrap text in a container to only text that are not bound to a container ( #10250 )
...
* fix: only enable wrap text in a container when at least one text element selected is unbound
* Trigger Rebuild
---------
Co-authored-by: Mark Tolmacs <mark@lazycat.hu >
2025-10-26 23:00:17 +01:00
zsviczian
19b3dc658a
fix: set radix PropertiesPopover collision boundary ( #10221 )
...
* Set collision boundary
* Calculate collisionPadding dynamically based on container
* Add appState offsetTop and offsetLeft to padding calculation.
Refactor collisionPadding calculation to use app state offsets.
* Update PropertiesPopover.tsx
* popover positioning relative to container
2025-10-22 23:29:39 +02:00
David Luzar
4e0441eeb4
fix: small tweaks to shortcut hints ( #10214 )
2025-10-20 16:57:40 +02:00
Omar Brikaa
8013eb5e16
feat: More prominent keyboard shortcuts in hints ( #10057 )
...
* Initial
* Memoize
* Styling
* Use double angle brackets for keyboard shortcuts
* Use rem in gap
* Use an existing function for substituting tags in a string
* Revert styling
* Avoid unique key warnings
* Styling
* getTransChildren -> nodesFromTextWithTags
* Use height and padding instead of padding only
* Initial new idea
* WIP shortcut substitutions
* Use simple regex for parsing shortcuts
* Use single shortcut for combos
* Use kbd instead of span
* shortcutFromKeyString -> getTaggedShortcutKey
* Bug fix
* FlowChart -> Flowchart
* memo is useless here
* Trigger CI
* Translate in getShortcutKey
* More normalized shortcuts
* improve shortcut normalization and replacement & support multi-key tagged shortcuts
* fix regex
* tweak css
---------
Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com >
2025-10-20 16:09:20 +02:00
Ryan Di
725412ebd3
fix: context menu getting covered ( #10199 )
...
* do not show z-index actions on mobile or tablet
* fix: context menu getting covered
* fix lint
* fix style popup getting covered
* put contextmenu z-index above sidebar
---------
Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com >
2025-10-20 11:56:55 +02:00
Márk Tolmács
7da176ff7d
fix: Increase transform handle offset ( #10180 )
...
* fix: Increase transform handle offset
Signed-off-by: Mark Tolmacs <mark@lazycat.hu >
* fix: Temporarily disable transform handles for linear elements on mobile and tablets
Signed-off-by: Mark Tolmacs <mark@lazycat.hu >
* fix: Linear hidden resize
Signed-off-by: Mark Tolmacs <mark@lazycat.hu >
* disable mobielOrTablet linear element bbox completely
* fix: Test
Signed-off-by: Mark Tolmacs <mark@lazycat.hu >
* fix: Lint
Signed-off-by: Mark Tolmacs <mark@lazycat.hu >
---------
Signed-off-by: Mark Tolmacs <mark@lazycat.hu >
Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com >
2025-10-15 21:16:20 +02:00
David Luzar
5fffc4743f
fix: mobile UI and other fixes ( #10177 )
...
* remove legacy openMenu=shape state and unused actions
* close menus/popups in applicable cases when opening a different one
* split ui z-indexes to account prefer different overlap
* make top canvas area clickable on mobile
* make mobile main menu closable by clicking outside and reduce width
* offset picker popups from viewport border on mobile
* reduce items gap in mobile main menu
* show top picks for canvas bg colors in all ui modes
* fix menu separator visibility on mobile
* fix command palette items not being filtered
2025-10-14 16:34:49 +02:00
David Luzar
8608d7b2e0
fix: revert preferred selection to box once you switch to full UI ( #10160 )
2025-10-12 23:33:02 +02:00
Omar Brikaa
19b03b4ca9
fix: remove redundant selectionStart/End resetting that causes scroll-reset bug on firefox ( #8263 )
...
Remove redundant selectionStart/End resetting that causes scroll-reset bug on firefox
2025-10-10 18:12:08 +02:00
Ryan Di
416e8b3e42
feat: new mobile layout ( #9996 )
...
* compact bottom toolbar
* put menu trigger to top left
* add popup to switch between grouped tool types
* add a dedicated mobile toolbar
* update position for mobile
* fix active tool type
* add mobile mode as well
* mobile actions
* remove refactored popups
* excali logo mobile
* include mobile
* update mobile menu layout
* move selection and deletion back to right
* do not fill eraser
* fix styling
* fix active styling
* bigger buttons, smaller gaps
* fix other tools not opened
* fix: Style panel persistence and restore
Signed-off-by: Mark Tolmacs <mark@lazycat.hu >
* move hidden action btns to extra popover
* fix dropdown overlapping with welcome screen
* replace custom popup with popover
* improve button styles
* swapping redo and delete
* always show undo & redo and improve styling
* change background
* toolbar styles
* no any
* persist perferred selection tool and align tablet as well
* add a renderTopLeftUI to props
* tweak border and bg
* show combined properties only when using suitable tools
* fix preferred tool
* new stroke icon
* hide color picker hot keys
* init preferred tool based on device
* fix main menu sizing
* fix welcome screen offset
* put text before image
* disable call highlight on buttons
* fix renderTopLeftUI
---------
Signed-off-by: Mark Tolmacs <mark@lazycat.hu >
Co-authored-by: Mark Tolmacs <mark@lazycat.hu >
Co-authored-by: dwelle <5153846+dwelle@users.noreply.github.com >
2025-10-09 23:48:31 +02:00