Compare commits

..

1695 Commits
v2.7 ... v26.2

Author SHA1 Message Date
Veronica Berglyd Olsen
eae88d1cee Release 2026.2 (#3004) 2026-09-05 14:19:48 +02:00
Veronica Berglyd Olsen
4b40f3af0d Rename coverage report jobs 2026-09-05 13:57:52 +02:00
Veronica Berglyd Olsen
34011b5d01 Add missing note in changelog 2026-09-05 13:51:19 +02:00
Veronica Berglyd Olsen
575c226a98 Update changelog 2026-09-05 13:47:48 +02:00
Veronica Berglyd Olsen
6b52d32ac1 Bump version number to 26.2 2026-09-05 13:34:37 +02:00
Veronica Berglyd Olsen
b268277d9b Update i18n (#2968) 2026-09-05 13:17:02 +02:00
Veronica Berglyd Olsen
65ebdcdd8a Update translations 2026-09-05 13:13:29 +02:00
Veronica Berglyd Olsen
93122e6032 Fix theme colors (#3003) 2026-09-05 12:15:51 +02:00
HeyMyian
25616ee8ce Fix theme colors 2026-09-05 01:25:48 +02:00
Veronica Berglyd Olsen
c5596ba0ad Merge branch 'release' into update-i18n 2026-09-04 22:54:29 +02:00
Veronica Berglyd Olsen
9af579f9fd Revert coverage report changes (#3001) 2026-09-04 22:42:31 +02:00
Veronica Berglyd Olsen
a7c4f92e9a Add a coverage summary on the workflow for fork PRs 2026-09-04 22:37:55 +02:00
Veronica Berglyd Olsen
0de9223c4f Move the coverage report back 2026-09-04 22:34:55 +02:00
Veronica Berglyd Olsen
0d1c73d1df Change default font (#2998) 2026-09-04 22:29:25 +02:00
Veronica Berglyd Olsen
f626cf0837 Remove outdated info from the PR template 2026-09-04 22:20:49 +02:00
Veronica Berglyd Olsen
b244b611b3 Update PR template 2026-09-04 22:03:48 +02:00
Veronica Berglyd Olsen
25f416b1fa Fix the coverage reporting for forks 2026-09-04 21:42:47 +02:00
Veronica Berglyd Olsen
67518be5ca Fix tests 2026-09-04 21:28:30 +02:00
Veronica Berglyd Olsen
1e91472b12 Fix windows workflow not failing on test failure 2026-09-04 21:18:05 +02:00
HeyMyian
176a54d5be Update comment 2026-09-04 19:38:35 +02:00
HeyMyian
004a059504 Line height default to 1.15 2026-09-04 00:32:52 +02:00
HeyMyian
90c5062fc7 Windows default from Arial to Segoe UI 2026-09-04 00:32:37 +02:00
Veronica Berglyd Olsen
fbba6c320b Update workflows (#2995) 2026-08-31 19:52:50 +02:00
Veronica Berglyd Olsen
bba37676ad Consistent test job names 2026-08-31 19:49:10 +02:00
Veronica Berglyd Olsen
ef8c8d83b0 Update badge, fix test, update action versions 2026-08-31 19:42:50 +02:00
Veronica Berglyd Olsen
7c348b899a Use shorter names for build jobs 2026-08-31 19:29:54 +02:00
Veronica Berglyd Olsen
4687e8ba9d Combine to one test workflow 2026-08-31 19:29:06 +02:00
Veronica Berglyd Olsen
3eca53d1dc Add coverage report 2026-08-31 19:12:18 +02:00
Veronica Berglyd Olsen
b142cd7fd4 Remove codecov 2026-08-31 18:56:26 +02:00
Veronica Berglyd Olsen
f4d7795f1c Update readme with Cloudsmith attribution 2026-08-31 18:29:28 +02:00
Veronica Berglyd Olsen
386796a413 Update license-files, build dependencies, and lockfile 2026-08-31 17:49:08 +02:00
Veronica Berglyd Olsen
ed840c0c16 Inject license into DEBIAN/control 2026-08-31 17:15:27 +02:00
Veronica Berglyd Olsen
4aa23a9603 Update all references to old repo path (#2994) 2026-08-31 01:01:16 +02:00
Veronica Berglyd Olsen
00ba707114 Update all references to old repo path 2026-08-31 00:57:53 +02:00
Veronica Berglyd Olsen
2e5cb614a1 Add id token permission (#2992) 2026-08-31 00:11:23 +02:00
Veronica Berglyd Olsen
acc0912509 Remove the at symbol from account slug again 2026-08-30 23:42:21 +02:00
Veronica Berglyd Olsen
4d68042c07 Test on latest fedora instead of buggy rawhide 2026-08-30 23:36:14 +02:00
Veronica Berglyd Olsen
8b99e9fd89 Use string not number 2026-08-30 23:34:19 +02:00
Veronica Berglyd Olsen
45c4aa03fb Add verify-auth flag 2026-08-30 23:27:41 +02:00
Veronica Berglyd Olsen
54173d51ff Make the build number an actual number 2026-08-30 20:58:44 +02:00
Veronica Berglyd Olsen
82f56e95e4 Add id token permission 2026-08-30 20:51:01 +02:00
Veronica Berglyd Olsen
367d58a632 Refactor debian build (#2990) 2026-08-30 20:44:47 +02:00
Veronica Berglyd Olsen
915f72a753 Use OIDC for publishing packages 2026-08-30 20:42:02 +02:00
Veronica Berglyd Olsen
7d707b7471 Relabel some build jobs 2026-08-30 20:14:26 +02:00
Veronica Berglyd Olsen
faaf56c93b Fix Mint build flag 2026-08-30 20:02:28 +02:00
Veronica Berglyd Olsen
37e6cd12ff Add Linux Mint 22 2026-08-30 19:54:09 +02:00
Veronica Berglyd Olsen
648e687c9f Use manual select rather than matrix build 2026-08-30 19:50:16 +02:00
Veronica Berglyd Olsen
4bdd69b35e Add build for Mint 22 2026-08-30 19:49:50 +02:00
Veronica Berglyd Olsen
3f22fcabc8 Complete Debian packaging tooling (#2988) 2026-08-29 21:37:29 +02:00
Veronica Berglyd Olsen
cfed3acd66 Fail on EOL build 2026-08-29 21:33:52 +02:00
Veronica Berglyd Olsen
e2cff94a62 Update target repositories 2026-08-29 20:52:04 +02:00
Veronica Berglyd Olsen
82d0661e37 Add suffix to packages 2026-08-29 20:40:52 +02:00
Veronica Berglyd Olsen
5504d40c8f Fix publish step package install failure 2026-08-29 19:52:56 +02:00
Veronica Berglyd Olsen
60fd1aa17b Shorten the checkbox message 2026-08-29 19:28:54 +02:00
Veronica Berglyd Olsen
4d6ff675d0 Update publish workflow 2026-08-29 19:27:49 +02:00
Veronica Berglyd Olsen
014ae4eb03 Let pkgutils determine what dependencies to install on build 2026-08-29 19:26:03 +02:00
Veronica Berglyd Olsen
72c395c25b Make it possible to run the builds without publishing 2026-08-29 19:20:36 +02:00
Veronica Berglyd Olsen
abd85d2b53 Drop the prebuilt wheel approach 2026-08-29 19:14:32 +02:00
Veronica Berglyd Olsen
39fe6b59a1 Update Debian packaging (#2986) 2026-08-29 18:43:35 +02:00
Veronica Berglyd Olsen
d11e07c812 Fix the package versions for deb packages 2026-08-29 18:39:23 +02:00
Veronica Berglyd Olsen
e6e57c8062 Add workflows 2026-08-29 18:18:03 +02:00
Veronica Berglyd Olsen
4f47ba19d6 Update deb package build commands 2026-08-29 18:00:29 +02:00
Veronica Berglyd Olsen
e035e85018 Bump project version (#2984) 2026-08-29 14:21:13 +02:00
Veronica Berglyd Olsen
42e8b2dd0c Update tests 2026-08-29 14:12:03 +02:00
Veronica Berglyd Olsen
b60789c85e Bump the project format version 2026-08-29 13:56:47 +02:00
Veronica Berglyd Olsen
cb21f5acbf Fix repeated shortcodes in pasted rich text (#2980) 2026-08-23 22:39:15 +02:00
Veronica Berglyd Olsen
566e84bf25 Add shortcut for past as plain text 2026-08-23 22:34:30 +02:00
Veronica Berglyd Olsen
ae487b925e Add test coverage 2026-08-23 22:17:55 +02:00
Veronica Berglyd Olsen
d9631099cf Fix split formatting when paste from rich text (#2978) 2026-08-23 22:16:22 +02:00
Veronica Berglyd Olsen
48b58b1f30 Fix native font picker on macOS does not change the selected font (#2970) 2026-08-15 20:57:43 +02:00
Konstantin Kostov
77b7b28403 feat: allow the native font picker on macOS to change the selected font 2026-08-15 18:08:17 +02:00
Veronica Berglyd Olsen
9640a57dc8 Fix tab widget border (#2971) 2026-08-15 15:17:36 +02:00
Veronica Berglyd Olsen
9b49734e53 Fix uncovered line 2026-08-15 15:09:56 +02:00
Veronica Berglyd Olsen
739146e0fb Fix border issue for the tab widgets 2026-08-15 15:08:08 +02:00
Veronica Berglyd Olsen
34451a62e8 Merge branch 'release' into update-i18n 2026-08-09 20:37:41 +02:00
Veronica Berglyd Olsen
89be8c9d9c Reformat translation files (#2969) 2026-08-09 20:33:57 +02:00
Veronica Berglyd Olsen
e6dcf2ef82 Update other translation files with additional translations and remove unverified strings 2026-08-09 20:26:16 +02:00
Veronica Berglyd Olsen
a16581f608 Update complete Norwegian, US English and Japanese 2026-08-09 20:25:47 +02:00
Veronica Berglyd Olsen
f9e6df8f92 Update all translation file meta data 2026-08-09 20:19:28 +02:00
Veronica Berglyd Olsen
4beb064fe9 Fix pre-release version number for flatpak (#2965) 2026-08-09 15:34:12 +02:00
Veronica Berglyd Olsen
2d6dce6351 Fix pre-release version number for flatpak 2026-08-09 15:29:50 +02:00
Veronica Berglyd Olsen
d5e0ba8013 Fix version number format (#2963) 2026-08-09 14:56:57 +02:00
Veronica Berglyd Olsen
320ce4a62d Fix version number format 2026-08-09 14:53:31 +02:00
Veronica Berglyd Olsen
0edba02ead Release 2026.2 RC 1 (#2962) 2026-08-09 14:44:34 +02:00
Veronica Berglyd Olsen
0a19bcbd06 Update changelog 2026-08-09 14:41:10 +02:00
Veronica Berglyd Olsen
38cdcc5379 Update translations file 2026-08-09 14:30:47 +02:00
Veronica Berglyd Olsen
1ea593b2a3 Bump version to 26.2 RC 1 2026-08-09 14:29:27 +02:00
Veronica Berglyd Olsen
e218943c42 Improve single quote dialogue regex (#2956) 2026-08-05 21:03:51 +02:00
Veronica Berglyd Olsen
9d97c93ece Keep the most complex tests and make them run for double too 2026-08-05 18:14:37 +02:00
Veronica Berglyd Olsen
c5c6897ee3 Update tests 2026-08-05 18:05:32 +02:00
Veronica Berglyd Olsen
2fc9a59695 Try a different pattern for single quoted dialogue 2026-08-05 18:05:06 +02:00
Veronica Berglyd Olsen
9a9a05cd7e Fix drag and drop and new project index (#2954) 2026-08-04 18:04:19 +02:00
Veronica Berglyd Olsen
dba2f9485d Update tests 2026-08-04 17:52:10 +02:00
Veronica Berglyd Olsen
9ce3662681 Build the index when creating a fresh project (#2952) 2026-08-04 17:48:45 +02:00
Veronica Berglyd Olsen
a35258a133 Remove redundant feature in novel model 2026-08-04 17:48:19 +02:00
Veronica Berglyd Olsen
ae47aaeacd Fix drag and drop onto another item in the project tree (#2953) 2026-08-04 17:29:51 +02:00
Veronica Berglyd Olsen
dc4e96ebf2 Remove broken link in dictionary docs (#2951) 2026-08-03 19:33:17 +02:00
Veronica Berglyd Olsen
392c3ea07c Remove broken link in dictionary docs 2026-08-03 19:28:41 +02:00
Veronica Berglyd Olsen
5e5cf93699 Release 26.2 Beta 2 (#2947) 2026-08-02 15:37:58 +02:00
Veronica Berglyd Olsen
796148f410 Update the changelog 2026-08-02 15:20:06 +02:00
Veronica Berglyd Olsen
990c5f497c Bump the breaking change version for the project folder structure 2026-08-02 02:10:56 +02:00
Veronica Berglyd Olsen
ee739884e4 Bump version to 26.2 beta 2 2026-08-02 02:06:42 +02:00
Veronica Berglyd Olsen
31d97bb939 Fix minor theme issues (#2946) 2026-08-02 00:36:03 +02:00
Veronica Berglyd Olsen
4a7c06e6f0 Fix incorrect theme colours for active/inactive icons in project tree context menu (#2941) 2026-08-02 00:28:26 +02:00
Veronica Berglyd Olsen
84a79686d4 Remove placeholder text for Manuscript preview (#2942) 2026-08-02 00:27:00 +02:00
Veronica Berglyd Olsen
9b3bb24cda Document format update (#2945) 2026-08-02 00:23:12 +02:00
Veronica Berglyd Olsen
1cfe00697a Add better sanitation of control characters in user entered strings 2026-08-02 00:13:22 +02:00
Veronica Berglyd Olsen
a57910bda7 Convert the sample project 2026-08-01 23:15:38 +02:00
Veronica Berglyd Olsen
bd04109f55 Harden the document converter against possible failure scenarios 2026-08-01 23:14:20 +02:00
Veronica Berglyd Olsen
11906bab53 Ask the user before upgrading documents 2026-08-01 22:59:03 +02:00
Veronica Berglyd Olsen
e51bb95fa6 Update outdated test 2026-08-01 22:03:29 +02:00
Veronica Berglyd Olsen
f63e429c2a Update other tests 2026-08-01 21:55:45 +02:00
Veronica Berglyd Olsen
2b0da9beb6 Update storage class and tests 2026-08-01 21:37:55 +02:00
Veronica Berglyd Olsen
8e7b8ae078 Fix minor issues in the document class and update tests 2026-08-01 21:29:27 +02:00
Veronica Berglyd Olsen
bc568a69fd Rewrite the document class to expect markdown-like files with toml headers 2026-08-01 20:12:47 +02:00
Veronica Berglyd Olsen
163e8a75dc Refactor project autosave (#2944) 2026-08-01 19:25:29 +02:00
Veronica Berglyd Olsen
50ec9b42ed Extend the toml parser to allow one level data from/to string 2026-08-01 18:53:08 +02:00
Veronica Berglyd Olsen
98b9aaab28 Move config and toml format parsers to their own formats modules 2026-08-01 18:08:40 +02:00
Veronica Berglyd Olsen
f8cd1d0d92 Theme updates (#2943) 2026-08-01 18:03:52 +02:00
Veronica Berglyd Olsen
ee4555b3c6 Skip the full file hash on document save if it isn't necessary (#2929) 2026-08-01 17:35:30 +02:00
HeyMyian
e37801fe6d Forgot activeBase 2026-08-01 17:33:04 +02:00
HeyMyian
5ba6a02113 Update credits 2026-08-01 17:32:53 +02:00
Veronica Berglyd Olsen
7e0428112a Remove the double replace in editor getText and use translate instead 2026-08-01 17:02:40 +02:00
Veronica Berglyd Olsen
058d51e80e Drop the word count step in editor saveText (#2928) 2026-08-01 16:52:48 +02:00
Veronica Berglyd Olsen
87fdf9acca Move upgrade check back before error handling 2026-08-01 16:30:42 +02:00
HeyMyian
4d3fa458eb New themes 2026-08-01 16:23:58 +02:00
HeyMyian
9aa6f2d36b Update new theme colours 2026-08-01 16:23:46 +02:00
Veronica Berglyd Olsen
46eeeb107e Fix the revision counter logic and update tests 2026-08-01 16:09:23 +02:00
Veronica Berglyd Olsen
a1a63d474c Update tests 2026-08-01 15:43:52 +02:00
Veronica Berglyd Olsen
af15669fa6 Add index revision instead of an index broken flag and no longer auto save the index 2026-08-01 15:34:59 +02:00
Veronica Berglyd Olsen
67cebd9ca6 Run the Python GC on a timer (#2940) 2026-08-01 13:18:32 +02:00
Veronica Berglyd Olsen
4a20de77f9 Allow passing an argument to the crash hunt script 2026-08-01 12:58:21 +02:00
Veronica Berglyd Olsen
fee724f2d9 Add debug info to the --meminfo flag 2026-08-01 00:52:15 +02:00
Veronica Berglyd Olsen
0044a2f731 Run the Python GC on a timer 2026-08-01 00:51:58 +02:00
Veronica Berglyd Olsen
e700176924 Fix document block search (#2939) 2026-07-31 23:29:37 +02:00
Veronica Berglyd Olsen
b2820e908f Fix test coverage 2026-07-31 23:19:27 +02:00
Veronica Berglyd Olsen
d3fc1a6582 Remove binary search findBlockByNumber in _skipToParagraph 2026-07-31 23:04:17 +02:00
Veronica Berglyd Olsen
68a376f3ae Remove binary search findBlockByNumber in the loop in _dispatchTextCheck 2026-07-31 23:01:06 +02:00
Veronica Berglyd Olsen
74b1640214 Remove binary search findBlock and findBlockByNumber in _selectedBlocks 2026-07-31 22:32:26 +02:00
Veronica Berglyd Olsen
62b80c229b Remove binary search findBlockByNumber in rehighlightByType 2026-07-31 22:28:53 +02:00
Veronica Berglyd Olsen
eb4dc9e66c Remove binary search findBlockByNumber in iterBlockByType 2026-07-31 22:23:23 +02:00
Veronica Berglyd Olsen
0926d6fa37 Fix various concurrency issues (#2938) 2026-07-31 18:51:16 +02:00
Veronica Berglyd Olsen
62901ae91b Fix API retriever bug in the version info widget (#2926) 2026-07-31 18:43:52 +02:00
Veronica Berglyd Olsen
e78c894fb8 Fix test coverage for NTabBar that was now missed 2026-07-31 18:41:55 +02:00
Veronica Berglyd Olsen
f6e2051355 Post info on the status bar when the theme changes (#2886) 2026-07-31 18:22:57 +02:00
Veronica Berglyd Olsen
24ca9a3a04 Remove the processEvents call from the status message on the status bar 2026-07-31 18:15:23 +02:00
Veronica Berglyd Olsen
f54ae5ce15 Fix project search reentrancy (#2937) 2026-07-31 18:03:48 +02:00
Veronica Berglyd Olsen
a6903612e4 Skip flaky uncovered branch 2026-07-31 18:00:35 +02:00
Veronica Berglyd Olsen
3df616ef02 Less comments 2026-07-31 17:56:10 +02:00
Veronica Berglyd Olsen
11f45a465c Add regression test 2026-07-31 17:53:25 +02:00
Veronica Berglyd Olsen
8db7b1561d Fix project search re-entrancy issue (#2924) 2026-07-31 17:48:51 +02:00
Veronica Berglyd Olsen
fc5c079118 Update linting (#2921) 2026-07-30 22:55:12 +02:00
Veronica Berglyd Olsen
712c660aee Update linting 2026-07-30 22:52:04 +02:00
Veronica Berglyd Olsen
b01f5d473a Writing goals with character count (#2919) 2026-07-30 22:12:58 +02:00
Veronica Berglyd Olsen
7eb105c5ed Update tests 2026-07-30 22:01:56 +02:00
Veronica Berglyd Olsen
0d7d172aae Add some missing plumbing 2026-07-30 22:01:36 +02:00
Veronica Berglyd Olsen
233ef00989 Connect the toggle switch for character project goal 2026-07-30 21:36:07 +02:00
Veronica Berglyd Olsen
10ffb371dc Rename the project target variables 2026-07-30 21:14:48 +02:00
Veronica Berglyd Olsen
d37cbf4545 Theme followup (#2916) 2026-07-30 21:08:23 +02:00
Veronica Berglyd Olsen
9153388c06 Fix re-entrancy bug (#2918) 2026-07-30 20:58:30 +02:00
Veronica Berglyd Olsen
7a89dc7fef Remove other redundant processEvents calls 2026-07-30 20:52:23 +02:00
Veronica Berglyd Olsen
2391fce076 Add re-entrancy guard in manuscript 2026-07-30 20:08:17 +02:00
Veronica Berglyd Olsen
3a67535206 Fix the drag and drop crash 2026-07-30 19:50:00 +02:00
Veronica Berglyd Olsen
2f94e63381 Adjust theme colours 2026-07-30 01:09:58 +02:00
Veronica Berglyd Olsen
bf2217e0b0 Update docs 2026-07-30 00:24:40 +02:00
Veronica Berglyd Olsen
c31f3defaa Tab widget colour and tool buttons (#2915) 2026-07-30 00:15:20 +02:00
Veronica Berglyd Olsen
f3fc6ae757 Update test coverage 2026-07-30 00:06:16 +02:00
Veronica Berglyd Olsen
daaeba1bbb Clean up flat icon buttons and toggle 2026-07-30 00:01:03 +02:00
Veronica Berglyd Olsen
bd27f55d32 Tweak the icon buttons 2026-07-29 22:43:40 +02:00
Veronica Berglyd Olsen
c1913ffde2 Update colour usage in the code 2026-07-29 20:52:58 +02:00
Veronica Berglyd Olsen
060ee9679a Update the GUI theme keys in all themes 2026-07-29 20:43:58 +02:00
Veronica Berglyd Olsen
3115070aea Missed accent text (#2912) 2026-07-27 00:23:15 +02:00
Veronica Berglyd Olsen
aea9eba50b Fix test 2026-07-27 00:18:56 +02:00
Veronica Berglyd Olsen
1da0265a7c Missed an accent text candidate in the search panel 2026-07-27 00:17:33 +02:00
Veronica Berglyd Olsen
186cb5e81b Add an accent text colour (#2911) 2026-07-27 00:02:54 +02:00
Veronica Berglyd Olsen
20e42186fb Add accentText to reset theme function 2026-07-26 23:59:50 +02:00
Veronica Berglyd Olsen
02f785dd97 Update docs 2026-07-26 23:56:05 +02:00
Veronica Berglyd Olsen
7e6b98cb73 Adjust some theme accentText colours to better shades 2026-07-26 23:52:53 +02:00
Veronica Berglyd Olsen
de5a9d18ba Call the new colour accentText instead 2026-07-26 23:38:18 +02:00
Veronica Berglyd Olsen
d9ea86441d Rename to accentText instead 2026-07-26 23:37:26 +02:00
Veronica Berglyd Olsen
0a037aaef6 Connect the new theme colour to the custom tab bar 2026-07-26 23:03:58 +02:00
Veronica Berglyd Olsen
c760eafd86 Add a selectedText theme colour under the GUI section 2026-07-26 23:03:30 +02:00
Veronica Berglyd Olsen
9f0c7ecb24 Pre release updates (#2909) 2026-07-26 19:50:01 +02:00
Veronica Berglyd Olsen
1fb952c8dc Update base translations file for 26.2 2026-07-26 19:45:24 +02:00
Veronica Berglyd Olsen
86b4bd65b8 Merge branch 'main' into pre-release 2026-07-26 19:44:25 +02:00
Veronica Berglyd Olsen
5270379632 Flatpak build follow-up (#2908) 2026-07-26 19:41:42 +02:00
Veronica Berglyd Olsen
380ccacddf The clean build command should also clear flatpak files 2026-07-26 19:19:30 +02:00
Veronica Berglyd Olsen
9e78e0f046 Cleanup of various non-code files (#2907) 2026-07-26 19:08:41 +02:00
Veronica Berglyd Olsen
8db4bd1e5f Clean up gitignore 2026-07-26 19:00:32 +02:00
Veronica Berglyd Olsen
ba64945d2d Clarify AI policy and scope 2026-07-26 18:45:21 +02:00
Veronica Berglyd Olsen
5fd4ce231f Drop the agents file since I don't plan to use Copilot review after all 2026-07-26 18:45:03 +02:00
Veronica Berglyd Olsen
654ba50e49 Add Flatpak (#2906) 2026-07-26 18:02:21 +02:00
Veronica Berglyd Olsen
dc074a07e4 Fix build version 2026-07-26 17:56:31 +02:00
Veronica Berglyd Olsen
38eb05efb7 Fix privilege issue in workflow 2026-07-26 17:49:37 +02:00
Veronica Berglyd Olsen
1eba971031 Remove the runtime and pin the flatpak-pip-generator script 2026-07-26 17:42:11 +02:00
Veronica Berglyd Olsen
5fa696c18a Remove apt pyyaml from flatpak build 2026-07-26 17:27:24 +02:00
Veronica Berglyd Olsen
7b9a2d4b2e Fix flatpak build workflow 2026-07-26 17:23:26 +02:00
Veronica Berglyd Olsen
bad6766532 Fix non-free icons build 2026-07-26 17:12:50 +02:00
Veronica Berglyd Olsen
3a42cd73cb Make pyyaml an on-demand import 2026-07-26 17:03:00 +02:00
Veronica Berglyd Olsen
36e19acf88 Add command to generate flathub files 2026-07-26 16:55:12 +02:00
Veronica Berglyd Olsen
c458dcc620 Make the welcome dialog request folder rather than file 2026-07-26 16:31:06 +02:00
Veronica Berglyd Olsen
c24bd47163 Set flatpak versions in the pyproject file instead 2026-07-26 16:03:34 +02:00
Veronica Berglyd Olsen
9e1b4ba1f4 Don't pin dependencies 2026-07-26 15:53:48 +02:00
Veronica Berglyd Olsen
bce93a0856 Update license handling and app access 2026-07-26 15:30:59 +02:00
Veronica Berglyd Olsen
ed6666e65a Add flags for free/non-free icon packs for build workflows 2026-07-26 15:19:06 +02:00
Veronica Berglyd Olsen
e3b9f7cf24 Use one canonical appdata.xml 2026-07-26 15:01:56 +02:00
Veronica Berglyd Olsen
b0b32b43d8 Update build files 2026-07-26 14:46:55 +02:00
Veronica Berglyd Olsen
347d7f2593 Update workflows and python formatting 2026-07-26 14:12:48 +02:00
Veronica Berglyd Olsen
e673f36288 Add flatpak build 2026-07-26 13:52:46 +02:00
Veronica Berglyd Olsen
933c53c87b Merge branch 'main' into flatpak 2026-07-26 13:46:04 +02:00
Veronica Berglyd Olsen
c99686d727 Release 26.2b1 (#2902) 2026-07-26 11:06:55 +02:00
Veronica Berglyd Olsen
a1410302ce Merge main into release (#2904) 2026-07-26 02:15:13 +02:00
Veronica Berglyd Olsen
8941488682 Remove staging branch (#2903) 2026-07-26 01:20:20 +02:00
Veronica Berglyd Olsen
ec8e0a7feb Revert "Add staging branch" 2026-07-26 00:17:16 +01:00
Veronica Berglyd Olsen
cb0d2e59b8 Update changelog 2026-07-25 22:02:11 +02:00
Veronica Berglyd Olsen
2166fa0396 Bump version to 26.2b1 2026-07-25 22:01:58 +02:00
Veronica Berglyd Olsen
bb8146e9c3 Add staging branch (#2901) 2026-07-25 20:25:41 +02:00
Veronica Berglyd Olsen
8698bf1d45 Merge 26.1.2 into main (#2900) 2026-07-25 20:20:57 +02:00
Veronica Berglyd Olsen
33f0fb9413 Update readme and contributing guide 2026-07-25 20:20:21 +02:00
Veronica Berglyd Olsen
f05e726ca4 Add support for a staging branch in the workflow files 2026-07-25 20:20:05 +02:00
Veronica Berglyd Olsen
8791ca5800 Fix issues after the merge 2026-07-25 19:42:59 +02:00
Veronica Berglyd Olsen
8d6c8d9f61 Merge branch 'main' into merge-26.1.2 2026-07-25 19:37:11 +02:00
Veronica Berglyd Olsen
6b0f73d41a Fix typo in changelog 2026-07-25 19:34:29 +02:00
Veronica Berglyd Olsen
bc7befd4a8 Release 26.1.2 (#2898) 2026-07-25 19:22:31 +02:00
Veronica Berglyd Olsen
fc865fd5bc Debian build improvements and 26.2 Alpha 2 (#2896) 2026-07-25 19:15:40 +02:00
Veronica Berglyd Olsen
e4a9446e2b Update changelog 2026-07-25 19:15:15 +02:00
Veronica Berglyd Olsen
8abcd226e5 Bump version 2026-07-25 19:08:53 +02:00
Veronica Berglyd Olsen
cd26a19c1a Update Japanese and Russian translations (#2897) 2026-07-25 19:07:13 +02:00
Veronica Berglyd Olsen
2cda8efec0 Update Japanese and Russian translations 2026-07-25 19:00:20 +02:00
Veronica Berglyd Olsen
72e0250317 Make sure tests can run reliably on bare sandboxes 2026-07-25 18:24:09 +02:00
Veronica Berglyd Olsen
42c66426e6 Bump version to 26.2 alpha 2 2026-07-25 18:23:43 +02:00
Veronica Berglyd Olsen
e77f32d2f6 Make sure tests can run from source build 2026-07-25 17:59:29 +02:00
Veronica Berglyd Olsen
80f398c39e Include tests in debian source build 2026-07-25 17:45:33 +02:00
Veronica Berglyd Olsen
5570ede2a3 Bump the uv lock file (#2895) 2026-07-25 03:28:25 +02:00
Veronica Berglyd Olsen
06122aa295 Bump the uv lock file 2026-07-25 03:24:17 +02:00
Veronica Berglyd Olsen
e7123b4af3 Maybe the entire pyobjc is not necessary (#2894) 2026-07-25 03:10:46 +02:00
Konstantin Kostov
a7be4266bc feat: maybe the entire pyobjc is not necessary 2026-07-25 00:34:40 +02:00
Veronica Berglyd Olsen
d62adc4a97 Remove the redundant last project count read (#2892) 2026-07-24 03:05:49 +02:00
Veronica Berglyd Olsen
4b4db26721 The project target last count in the xml is no longer needed, so the read was removed, but write remains as useful meta data 2026-07-24 03:00:35 +02:00
Veronica Berglyd Olsen
ca752d6edb Change daily progress accounting (#2891) 2026-07-24 02:41:50 +02:00
Veronica Berglyd Olsen
8a6a224fda Fix refresh of writing goal when documents change status 2026-07-24 02:31:21 +02:00
Veronica Berglyd Olsen
be639522fe Make the session word count exact regardless of what documents are included or not based on items internal counts 2026-07-24 01:54:43 +02:00
Veronica Berglyd Olsen
184654c67f Customise tabwidget tabs (#2890) 2026-07-24 01:00:13 +02:00
Veronica Berglyd Olsen
3dabf07a60 Remove unnecessary tab order logic 2026-07-24 00:45:41 +02:00
Veronica Berglyd Olsen
8ec867c2d2 Add custom drawn tabs to the NTabWidget 2026-07-24 00:37:02 +02:00
Veronica Berglyd Olsen
75a8983c97 Allow excluding root folders from writing goals (#2889) 2026-07-23 18:35:32 +02:00
Veronica Berglyd Olsen
dac075f570 Update tests 2026-07-23 17:20:03 +02:00
Veronica Berglyd Olsen
0152590bda Add a reset button for daily progress 2026-07-23 17:11:28 +02:00
Veronica Berglyd Olsen
8e06ebbda0 Add more test coverage 2026-07-23 16:56:05 +02:00
Veronica Berglyd Olsen
ee85a19b53 Fix the current xml test 2026-07-23 16:34:42 +02:00
Veronica Berglyd Olsen
6a22bdf206 Update tests 2026-07-23 16:28:55 +02:00
Veronica Berglyd Olsen
7e0d0e91d6 Fix accounting of project target changes at runtime 2026-07-23 16:04:26 +02:00
Veronica Berglyd Olsen
0c71605e1b Try to solve keeping the word count progress correct on changes 2026-07-23 15:46:41 +02:00
Veronica Berglyd Olsen
5a5a0e3521 Add a list setting to select root folders to skip for writing goals 2026-07-23 15:04:29 +02:00
Veronica Berglyd Olsen
6fb18b5674 Move non-palette theme colours (#2888) 2026-07-22 21:43:28 +02:00
Veronica Berglyd Olsen
3188b9ed69 Update code, tests and docs 2026-07-22 21:38:55 +02:00
Veronica Berglyd Olsen
98591f74dd Move the new theme colours to the correct section 2026-07-22 21:38:41 +02:00
Veronica Berglyd Olsen
168a8fea72 Various theme fixes (#2887) 2026-07-22 21:04:10 +02:00
Veronica Berglyd Olsen
74c9aa5a2b Update test coverage 2026-07-22 21:01:04 +02:00
Veronica Berglyd Olsen
6c010665c1 Drop camelCasing entirely for icon colours 2026-07-22 20:51:01 +02:00
Veronica Berglyd Olsen
d69c497824 Always use base colour for text on top of the writing goal progress bar (#2884) 2026-07-22 20:42:28 +02:00
Veronica Berglyd Olsen
f6707a2488 Simplify the internal icon colour names 2026-07-22 20:35:26 +02:00
Veronica Berglyd Olsen
44cef5ec83 Fix camelCasing of colour name 2026-07-22 20:15:22 +02:00
Veronica Berglyd Olsen
1390f13600 Fix extra selection colours on theme change (#2886) 2026-07-22 20:14:35 +02:00
Veronica Berglyd Olsen
95b6b47802 Convert theme files to toml (#2885) 2026-07-22 19:03:13 +02:00
Veronica Berglyd Olsen
aab3531a42 Update theme reset and also harden against weird theme values 2026-07-22 19:00:14 +02:00
Veronica Berglyd Olsen
442264b3ab List the renamed keys in theme files 2026-07-22 18:44:04 +02:00
Veronica Berglyd Olsen
7fcc68e567 Update docs 2026-07-22 18:37:35 +02:00
Veronica Berglyd Olsen
09f7fdb8df Make some of the theme keys camelCase 2026-07-22 18:31:24 +02:00
Veronica Berglyd Olsen
71dd9410d8 Update tests 2026-07-22 18:20:51 +02:00
Veronica Berglyd Olsen
09af70d338 Update the theme class to parse toml instead of conf files 2026-07-22 18:18:15 +02:00
Veronica Berglyd Olsen
60444de60e Convert all theme files to toml format 2026-07-22 17:56:23 +02:00
Veronica Berglyd Olsen
c5d4d61108 Convert the config file to toml format (#2883) 2026-07-22 17:49:16 +02:00
Veronica Berglyd Olsen
3b60f6b063 Fix formatting 2026-07-22 17:42:13 +02:00
Veronica Berglyd Olsen
f9780f08c8 Clean up more docstrings 2026-07-22 17:40:55 +02:00
Veronica Berglyd Olsen
d2e58deec5 Update docstrings 2026-07-22 17:39:16 +02:00
Veronica Berglyd Olsen
4e61c3cba6 Update tests 2026-07-22 17:33:40 +02:00
Veronica Berglyd Olsen
aa26e2b2c8 Updates theme colors for toggle and searchmatch (#2882) 2026-07-22 17:30:41 +02:00
HeyMyian
56c7db6e87 Updates theme colors for toggle and searchmatch 2026-07-22 17:23:36 +02:00
Veronica Berglyd Olsen
50675b87a8 Move the config file code to the config source file 2026-07-22 17:11:33 +02:00
Veronica Berglyd Olsen
d5ee36b65e Refactor the toml parser 2026-07-22 17:08:24 +02:00
Veronica Berglyd Olsen
f53cee3ca4 Generalise reading and writing of config files 2026-07-22 17:01:20 +02:00
Veronica Berglyd Olsen
9a4048574c Rename the config getters 2026-07-22 16:39:25 +02:00
Veronica Berglyd Olsen
b9d427af3e Always write toml format now 2026-07-22 16:24:30 +02:00
Veronica Berglyd Olsen
3a70cfa8de Use camelCase for config keys 2026-07-22 16:17:30 +02:00
Veronica Berglyd Olsen
f761a5a6ba Add a toml file config wrapper 2026-07-22 15:52:28 +02:00
Veronica Berglyd Olsen
16c8ccb9da Force the tooltip palette (#2881) 2026-07-22 15:36:16 +02:00
Veronica Berglyd Olsen
f540f010c0 Add a comment for future reference 2026-07-22 15:33:24 +02:00
Veronica Berglyd Olsen
9b15f7269c Try forcing the tooltip palette 2026-07-22 15:26:26 +02:00
Veronica Berglyd Olsen
759b30adc5 Merge viewer folder into editor (#2880) 2026-07-22 15:24:18 +02:00
Veronica Berglyd Olsen
67a58e654f Also move tests 2026-07-22 15:17:40 +02:00
Veronica Berglyd Olsen
64dd79e8c2 Move all viewer files into the editor folder, and merge footer and header files 2026-07-22 15:17:30 +02:00
Veronica Berglyd Olsen
74c1686418 Source unicode cleanup (#2879) 2026-07-22 02:08:16 +02:00
Veronica Berglyd Olsen
c53ad98c0f Enable the ambiguous-unicode-character-string rule 2026-07-22 02:01:53 +02:00
Veronica Berglyd Olsen
c6b28e4385 Replace unicode values in text 2026-07-22 02:01:20 +02:00
Veronica Berglyd Olsen
9409c60613 Remove the endash from file headers 2026-07-22 01:40:54 +02:00
Veronica Berglyd Olsen
6b2223c697 Bug fixes: Daily progress, plain text copy, and paste with whitespace (#2878) 2026-07-22 01:37:23 +02:00
Veronica Berglyd Olsen
f6e4d27272 Fix leading whitespace stripped on paste 2026-07-22 01:32:03 +02:00
Veronica Berglyd Olsen
6d180adca9 Make sure text is coped as plain text from the editor 2026-07-22 01:23:15 +02:00
Veronica Berglyd Olsen
9356a2a5dc Reset daily writing progress when the previous progress was from another day 2026-07-22 01:14:24 +02:00
Veronica Berglyd Olsen
a2bdbf6d85 Fix styles issues (#2877) 2026-07-22 00:59:37 +02:00
Veronica Berglyd Olsen
d88be00fd3 Hard code the Fusion style 2026-07-22 00:50:52 +02:00
Veronica Berglyd Olsen
c294af97a8 Make a less customised tab widget with no stylesheet override 2026-07-22 00:49:22 +02:00
Veronica Berglyd Olsen
f7ad47e359 Move the search tool stylesheet so it doesn't affect other components 2026-07-22 00:05:47 +02:00
Veronica Berglyd Olsen
865919a3af Don't update the editor footer line count on every cursor move 2026-07-22 00:05:22 +02:00
Veronica Berglyd Olsen
9388b42001 Make the same fix to the About dialog 2026-07-21 23:43:52 +02:00
Veronica Berglyd Olsen
98d0ee0dc7 Fix the stylesheet issue on the Welcome dialog (#2871) 2026-07-21 23:38:28 +02:00
Veronica Berglyd Olsen
f09603f2bf Paste html into editor (#2876) 2026-07-21 23:01:58 +02:00
Veronica Berglyd Olsen
af131abe91 Fix markdown nesting order and tests 2026-07-21 22:53:25 +02:00
Veronica Berglyd Olsen
74ef69cee1 Fix test coverage 2026-07-21 22:25:36 +02:00
Veronica Berglyd Olsen
47c064046e Also process markdown mime 2026-07-21 04:20:20 +02:00
Veronica Berglyd Olsen
bcdc03dd72 Simplify this to run directly in the editor 2026-07-21 04:07:50 +02:00
Veronica Berglyd Olsen
b8e1f9c2ee Clean up the converter and add alignment support 2026-07-21 03:42:32 +02:00
Veronica Berglyd Olsen
2587956fcf Add highlighting and correct font to the paste dialog 2026-07-21 03:27:42 +02:00
Veronica Berglyd Olsen
55c7872ed8 Improve the paste dialog 2026-07-21 03:12:31 +02:00
Veronica Berglyd Olsen
283a5537de Add a converter class from QTextDocument to novelWriter format 2026-07-21 02:52:22 +02:00
Veronica Berglyd Olsen
d688e2dd0d Add a basic paste dialog that converts html to markdown for insertion into the editor 2026-07-21 02:24:12 +02:00
Veronica Berglyd Olsen
a5eee6b37b Apply line height on paste (#2875) 2026-07-21 01:56:05 +02:00
Veronica Berglyd Olsen
b6ade82dd0 Fix formatting 2026-07-21 01:52:42 +02:00
Veronica Berglyd Olsen
4a39a1e408 Add regression test 2026-07-21 01:27:01 +02:00
Veronica Berglyd Olsen
270932e40b Apply line height on paste (#2874) 2026-07-21 01:26:41 +02:00
Veronica Berglyd Olsen
caa6dcd053 Add project writing goals (#2870) 2026-07-20 22:40:33 +02:00
Veronica Berglyd Olsen
8fb67541c1 Fix update of colour progress bars when theme changes 2026-07-20 22:29:49 +02:00
Veronica Berglyd Olsen
7745a0738a Fix status bar goals on project close and open 2026-07-20 22:16:20 +02:00
Veronica Berglyd Olsen
3baa4dc1df Fix minor issues and improve the settings page 2026-07-20 22:04:05 +02:00
Veronica Berglyd Olsen
032fef1092 Add remaining test coverage 2026-07-20 21:36:37 +02:00
Veronica Berglyd Olsen
df3e51629b Add coverage ov new progress bar 2026-07-20 21:31:48 +02:00
Veronica Berglyd Olsen
fecf6233d9 Fix a bug in ProjectData and add test coverage 2026-07-20 21:23:00 +02:00
Veronica Berglyd Olsen
fe64931f67 The writing goal should never include notes 2026-07-20 21:00:50 +02:00
Veronica Berglyd Olsen
699a1f32f4 Clean up project settings and fix automatic daily goal calculation 2026-07-20 20:46:33 +02:00
Veronica Berglyd Olsen
a551c89f3f Update progress bar colouring 2026-07-20 19:57:18 +02:00
Veronica Berglyd Olsen
ff9948768a Update existing tests 2026-07-20 18:21:52 +02:00
Veronica Berglyd Olsen
baf34452fa Update handling of goals in the status bar 2026-07-20 17:30:27 +02:00
Veronica Berglyd Olsen
9219209032 Restructure project goal settings 2026-07-20 17:29:56 +02:00
Veronica Berglyd Olsen
4251069718 Merge branch 'main' into project-goals 2026-07-20 15:30:32 +02:00
Veronica Berglyd Olsen
f034557f17 Extend auto replace, post pr fix 2 (#2868) 2026-07-20 02:39:50 +02:00
Veronica Berglyd Olsen
f67d73de3e Find a better icon for the auto-replace toggle button 2026-07-20 02:36:00 +02:00
Veronica Berglyd Olsen
080dc05e16 Fix missing theme refresh on auto-replace toggles for search 2026-07-20 02:35:34 +02:00
Veronica Berglyd Olsen
0c66ba28ee Extend auto replace, post pr fixes (#2867) 2026-07-20 02:27:10 +02:00
Veronica Berglyd Olsen
f90370d01a Add checks in icon tool buttons for undefined icons 2026-07-20 02:22:39 +02:00
Veronica Berglyd Olsen
6c22acf0e5 Search auto-replace buttons should be disabled when auto-replace is off in Preferences 2026-07-20 01:46:06 +02:00
Veronica Berglyd Olsen
26a4af2a10 Extend auto replace usage (#2866) 2026-07-20 01:24:14 +02:00
Veronica Berglyd Olsen
32a441cda9 Update docs 2026-07-20 01:17:24 +02:00
Veronica Berglyd Olsen
70f2d8f3b4 Add auto-replace to the header format editor in manuscript settings 2026-07-20 01:15:21 +02:00
Veronica Berglyd Olsen
7530eea63a Add tests and fix a bug 2026-07-20 01:04:24 +02:00
Veronica Berglyd Olsen
d50bd6e777 Add a auto-replace class for line edits and connect to search panel and search widget 2026-07-20 00:42:25 +02:00
Veronica Berglyd Olsen
64c3c71e08 Add config settings for search auto-replace 2026-07-20 00:37:41 +02:00
Veronica Berglyd Olsen
6ed031238b Add an icon for search auto-replace 2026-07-20 00:34:37 +02:00
Veronica Berglyd Olsen
0ff2ebfd2a Move the auto-replace class to the text subfolder 2026-07-19 23:36:47 +02:00
Veronica Berglyd Olsen
41055f2292 Update linting and lockfile (#2865) 2026-07-19 18:16:55 +02:00
Veronica Berglyd Olsen
bbc30d6cb9 Ignore 2 new preview ruff rules 2026-07-19 18:09:46 +02:00
Veronica Berglyd Olsen
d138e59110 Bump ruff to 0.15.22 2026-07-19 17:59:49 +02:00
Veronica Berglyd Olsen
eae404e3e7 Editor performance, concurrency, and big document handling (#2861) 2026-07-19 12:45:42 +02:00
Veronica Berglyd Olsen
bb2a2869f1 Clean up mac CI file 2026-07-19 12:29:23 +02:00
Veronica Berglyd Olsen
abbc413671 Move the checker cache back into the editor 2026-07-19 12:27:09 +02:00
Veronica Berglyd Olsen
691f0492eb Temporary changes to MacOS tests 2026-07-19 01:22:49 +02:00
Veronica Berglyd Olsen
df8efe60de Various stability fixes and test improvements 2026-07-19 01:19:27 +02:00
Veronica Berglyd Olsen
10304adf34 Clean up selection model in novel view 2026-07-18 21:49:22 +02:00
Veronica Berglyd Olsen
588c69102a Disconnect project model before delete 2026-07-18 21:44:52 +02:00
Veronica Berglyd Olsen
ac3cef77ac Clean up some comments 2026-07-18 21:25:54 +02:00
Veronica Berglyd Olsen
d6c5b875d3 Make sure the global signal is disconnected properly also in tests 2026-07-18 21:01:19 +02:00
Veronica Berglyd Olsen
a43a0bf527 Update tests 2026-07-18 20:49:22 +02:00
Veronica Berglyd Olsen
4fdafdd86a Make sure the theme update also works in older Qt versions 2026-07-18 20:26:57 +02:00
Veronica Berglyd Olsen
171631c025 Update tests after rebasing to main 2026-07-18 20:01:33 +02:00
Veronica Berglyd Olsen
34b2f6dde3 Add disconnect for the styleHints signal 2026-07-18 19:49:32 +02:00
Veronica Berglyd Olsen
0f20459b69 Add tests 2026-07-18 19:49:31 +02:00
Veronica Berglyd Olsen
0c51e1c409 Update desktop theme handling 2026-07-18 19:49:31 +02:00
Veronica Berglyd Olsen
be85bf5fa3 Reintroduce big document handling for the editor 2026-07-18 19:49:30 +02:00
Veronica Berglyd Olsen
acd3bc97a0 Flaky test hardening and lambdas patching (#2864) 2026-07-18 19:48:59 +02:00
Veronica Berglyd Olsen
a65aa4d828 Update test coverage 2026-07-18 19:45:43 +02:00
Veronica Berglyd Olsen
9861ea7ddd Patch up all other potentially problematic lambdas 2026-07-18 18:09:08 +02:00
Veronica Berglyd Olsen
3c58988c34 Make the crash hunt script take a count as an argument 2026-07-18 17:55:47 +02:00
Veronica Berglyd Olsen
140a8da62d Add more usage of qtWeakLambda to stabilise the tests (and probably also at runtime) 2026-07-18 16:57:59 +02:00
Veronica Berglyd Olsen
102a4d7af6 Add a segfault stress test script for future use 2026-07-18 16:56:12 +02:00
Veronica Berglyd Olsen
ce4047261c Fix branch coverage 2026-07-18 15:53:43 +02:00
Veronica Berglyd Olsen
818106b0eb Merge branch 'main' into flaky-test-hardening 2026-07-18 15:45:56 +02:00
Veronica Berglyd Olsen
ddf5a0639b Move GUI operations out of buildTestProject 2026-07-18 15:45:25 +02:00
Veronica Berglyd Olsen
a2272fd4ed Fix word counter concurrency (#2863) 2026-07-18 15:21:46 +02:00
Veronica Berglyd Olsen
f834ccc653 Prune runnable docstrings 2026-07-18 14:52:05 +02:00
Veronica Berglyd Olsen
b7e8f8a052 Also add a dispatcher to the text checker 2026-07-18 14:47:01 +02:00
Veronica Berglyd Olsen
7d4f8a6f9f Add a dispatcher class for word counting 2026-07-18 14:39:59 +02:00
Veronica Berglyd Olsen
cc8badfee4 Allow the thread pool to finish after running a test 2026-07-18 14:15:57 +02:00
Veronica Berglyd Olsen
7406381094 Only run selection counter of anything is actually selected 2026-07-18 14:09:32 +02:00
Veronica Berglyd Olsen
85de937667 Make the background word counter single shot 2026-07-18 13:57:21 +02:00
Veronica Berglyd Olsen
1a8301380c Merge branch 'main' into fix-word-counter-concurrency 2026-07-18 13:35:52 +02:00
Veronica Berglyd Olsen
eea2c89a16 Add a spell check cache (#2862) 2026-07-18 13:35:00 +02:00
Veronica Berglyd Olsen
24c05e4d8f Fix concurrency issue in the background word counter 2026-07-17 22:38:58 +02:00
Veronica Berglyd Olsen
2f221b972c Reuse spell and format error values that haven't moved, when editing a text block 2026-07-17 21:51:48 +02:00
Veronica Berglyd Olsen
16b89699a0 Add some air in the checker function 2026-07-17 20:23:22 +02:00
Veronica Berglyd Olsen
424572375f Improve text check performance by caching selections (3-6x speed-up) 2026-07-17 20:12:22 +02:00
Veronica Berglyd Olsen
fb77d69128 Don't run the editor text checker when there are no checks enabled 2026-07-17 19:43:24 +02:00
Veronica Berglyd Olsen
794207f6e7 Fix Preferences refresh issues (#2860) 2026-07-17 16:39:20 +02:00
Veronica Berglyd Olsen
f11ff0726c Fix formatting 2026-07-17 16:36:28 +02:00
Veronica Berglyd Olsen
aeed9be8db Minimal fix for theme change in the outline 2026-07-17 16:36:00 +02:00
Veronica Berglyd Olsen
946897527e Update tests 2026-07-17 16:20:09 +02:00
Veronica Berglyd Olsen
21e924273d Bypass a couple more settings from editor re-init 2026-07-17 16:11:05 +02:00
Veronica Berglyd Olsen
532b863674 Separate viewport updates from editor and viewer init 2026-07-17 15:53:59 +02:00
Veronica Berglyd Olsen
133d945758 Make the autoreplace class callable, and update tests 2026-07-17 15:24:06 +02:00
Veronica Berglyd Olsen
92446d1b3c Make the autoreplace preferences dynamic so that a refresh is not needed 2026-07-17 15:16:04 +02:00
Veronica Berglyd Olsen
7643de9ce1 Add missing value that needs editor refresh 2026-07-17 15:05:49 +02:00
Veronica Berglyd Olsen
1dedae4f8f Add more missing calls for refresh on preferences change 2026-07-17 14:58:36 +02:00
Veronica Berglyd Olsen
050b9afd44 Add tag hover cards (#2859) 2026-07-17 02:02:49 +02:00
Veronica Berglyd Olsen
607098ffd7 Clean up some comments and unused new code 2026-07-17 01:59:48 +02:00
Veronica Berglyd Olsen
5f07c1ee48 Update tests 2026-07-17 01:45:50 +02:00
Veronica Berglyd Olsen
934ad9f298 Prune stale hover card cache entries 2026-07-17 01:38:32 +02:00
Veronica Berglyd Olsen
7244367cf7 Cap the hover card sizes 2026-07-17 01:19:37 +02:00
Veronica Berglyd Olsen
2801724f1c Clip very long texts 2026-07-17 01:14:42 +02:00
Veronica Berglyd Olsen
fe1c79e80d Fix wrong icon request on the sidebar 2026-07-17 00:58:53 +02:00
Veronica Berglyd Olsen
7b151e046f Handle multi-paragraph synopsis in the hover card 2026-07-17 00:25:59 +02:00
Veronica Berglyd Olsen
8c6e8be2e8 Add and update tests 2026-07-17 00:21:23 +02:00
Veronica Berglyd Olsen
e6dbb9dd7c Add hover card to viewer 2026-07-16 23:58:36 +02:00
Veronica Berglyd Olsen
81bcd8179d Fix theme not updating for the hover card 2026-07-16 23:48:22 +02:00
Veronica Berglyd Olsen
41a4922088 Clean up the code a bit 2026-07-16 23:41:00 +02:00
Veronica Berglyd Olsen
42d701730c Add edit and view buttons to the hover card 2026-07-16 23:38:15 +02:00
Veronica Berglyd Olsen
e39151c9d6 Clean up the working and look of the hover card 2026-07-16 23:11:21 +02:00
Veronica Berglyd Olsen
378c483748 Connect the hover card to the editor 2026-07-16 22:46:00 +02:00
Veronica Berglyd Olsen
ac04a61562 Add a hover card class 2026-07-16 22:45:45 +02:00
Veronica Berglyd Olsen
1abbc80c70 Populate the meta data info in the highlighter 2026-07-16 22:05:07 +02:00
Veronica Berglyd Olsen
c456ae2e4a Allow passing additional meta data to TextBlockData 2026-07-16 21:47:49 +02:00
Veronica Berglyd Olsen
78407ceb87 Cleanup of main GUI return key handling (#2858) 2026-07-16 21:37:49 +02:00
Veronica Berglyd Olsen
81f6062a44 Update tests 2026-07-16 20:00:10 +02:00
Veronica Berglyd Olsen
2ea7a49321 Simplify openSelectedItem in GuiMain 2026-07-16 19:49:33 +02:00
Veronica Berglyd Olsen
45e09c7dd3 Move the return key handling into the various tree view classes 2026-07-16 19:36:21 +02:00
Veronica Berglyd Olsen
668f6fe2f6 Editor completer rewrite (#2856) 2026-07-16 17:17:00 +02:00
Veronica Berglyd Olsen
0b1b3ad244 Fix tab focus change and completer popup issue 2026-07-16 17:13:59 +02:00
Veronica Berglyd Olsen
cef491f96c Fix MacOS issue 2026-07-16 17:05:10 +02:00
Veronica Berglyd Olsen
9bca71468f Update test coverage 2026-07-16 16:29:36 +02:00
Veronica Berglyd Olsen
c3ee1efb56 Give the completer menu the correct colours 2026-07-16 16:21:18 +02:00
Veronica Berglyd Olsen
7f28b16eae Move the completer key press handler into the completer itself 2026-07-16 16:06:55 +02:00
Veronica Berglyd Olsen
f5db958f53 Add tags cache to the TagsIndex class 2026-07-16 15:59:26 +02:00
Veronica Berglyd Olsen
cad40cd369 Remove the manual filters in the completer and instead use the QCompleter's native features 2026-07-16 15:31:28 +02:00
Veronica Berglyd Olsen
952d92df18 Simplify the key press event handler in the editor 2026-07-16 15:09:29 +02:00
Veronica Berglyd Olsen
4cb9c58ae6 Move the escape key handling into the editor 2026-07-16 14:50:36 +02:00
Veronica Berglyd Olsen
9e80c77050 Convert the editor completer menu to a QCompleter 2026-07-16 14:35:13 +02:00
Veronica Berglyd Olsen
837d9bec90 Utils updates (#2853) 2026-07-15 22:04:58 +02:00
Veronica Berglyd Olsen
ddc064e86b Make the docs build reject outdated versions of the docs 2026-07-15 21:35:01 +02:00
Veronica Berglyd Olsen
49f62494d6 Update optional icon theme releases 2026-07-15 21:02:21 +02:00
Veronica Berglyd Olsen
4ff55ca4a7 Remove html report as default for the run_tests script 2026-07-15 21:02:02 +02:00
Veronica Berglyd Olsen
9ebee3d917 Change how icons are handled (#2852) 2026-07-15 20:37:04 +02:00
Veronica Berglyd Olsen
d246071348 Update tests 2026-07-15 18:34:26 +02:00
Veronica Berglyd Olsen
a4b6b42b56 Merge switch records in switcbox 2026-07-15 18:22:01 +02:00
Veronica Berglyd Olsen
888f22ffde Update the modified buttons 2026-07-15 18:14:42 +02:00
Veronica Berglyd Olsen
05c35149a5 Merge icon name and label 2026-07-15 17:42:51 +02:00
Veronica Berglyd Olsen
85b2e2db18 Minor UI fixes (#2850) 2026-07-15 11:29:05 +02:00
Veronica Berglyd Olsen
22803752d1 Fix branch coverage 2026-07-15 02:01:19 +02:00
Veronica Berglyd Olsen
1fc8fb84a8 Fix memory leak in project tree templates menu, and add regression tests and additional test coverage 2026-07-15 01:59:09 +02:00
Veronica Berglyd Olsen
e4b669e8c1 Fix switchbox memory leak 2026-07-15 01:26:37 +02:00
Veronica Berglyd Olsen
a1c99ae713 Change the buildable menus in project tree to use a common menu signal 2026-07-15 01:13:36 +02:00
Veronica Berglyd Olsen
caf51ea53d Elide user labels in dropdown menus 2026-07-15 01:05:42 +02:00
Veronica Berglyd Olsen
eead5afa67 Switch box labels need to clip if they are long 2026-07-15 00:53:22 +02:00
Veronica Berglyd Olsen
903d886aee Fix font loading on older Qt versions (#2849)
Fix font loading on older Qt versions
2026-07-15 00:34:35 +02:00
Veronica Berglyd Olsen
c7ae38df7e Fix font loading on older Qt versions 2026-07-15 00:29:31 +02:00
Veronica Berglyd Olsen
9175a3c553 Fix search box not updating on root folder change (#2848) 2026-07-14 22:58:34 +02:00
Veronica Berglyd Olsen
2bff7f974b Make a few adjustments to the search filter class 2026-07-14 22:55:57 +02:00
Veronica Berglyd Olsen
e99a9d3325 Add dedicated tests for the switchbox 2026-07-14 22:51:55 +02:00
Veronica Berglyd Olsen
7228e2872c Fix update of search filters when root folders change 2026-07-14 22:51:06 +02:00
Veronica Berglyd Olsen
e02a7d5ab5 Add project search filters (#2847) 2026-07-14 22:22:02 +02:00
Veronica Berglyd Olsen
c8e729bbe4 Make the init tests go faster 2026-07-14 22:16:51 +02:00
Veronica Berglyd Olsen
475a9dd45d Update tests 2026-07-14 22:05:22 +02:00
Veronica Berglyd Olsen
38639932d9 Update the split handle disabled behaviour 2026-07-14 21:50:54 +02:00
Veronica Berglyd Olsen
1c8661f8c4 Use a better splitter handle 2026-07-14 21:39:45 +02:00
Veronica Berglyd Olsen
fb9ab8a346 Update styles 2026-07-14 21:32:22 +02:00
Veronica Berglyd Olsen
cc9b7ae58b Put the search filters in a splitter 2026-07-14 20:46:04 +02:00
Veronica Berglyd Olsen
92a9c7476b Clean up a few things 2026-07-14 20:26:32 +02:00
Veronica Berglyd Olsen
e34676ae57 Add updateTheme support for switchbox 2026-07-14 20:06:24 +02:00
Veronica Berglyd Olsen
4bc9aae1aa Fix type issue 2026-07-14 19:21:02 +02:00
Veronica Berglyd Olsen
98b4248a3c Add a sanity check in ProjectItem and improve a list comprehension in GuiProjectSearch 2026-07-14 19:08:15 +02:00
Veronica Berglyd Olsen
37cea519e0 Add and update tests 2026-07-14 18:56:41 +02:00
Veronica Berglyd Olsen
0587524c6c Fix broken test 2026-07-14 18:31:26 +02:00
Veronica Berglyd Olsen
c28e1a0ba4 Move DocSearch out of core tools and rename to ProjectSearch 2026-07-14 18:27:32 +02:00
Veronica Berglyd Olsen
5e46735bb2 Connect the text content search filters 2026-07-14 18:21:52 +02:00
Veronica Berglyd Olsen
d9f70bdbac Connect search root folder filter 2026-07-14 17:58:37 +02:00
Veronica Berglyd Olsen
2dddd1c2ad Add a search result type 2026-07-14 17:53:45 +02:00
Veronica Berglyd Olsen
8775416064 Implement document type filters on project search 2026-07-14 17:48:49 +02:00
Veronica Berglyd Olsen
ae8d790b55 Preserve filter settings between sessions 2026-07-14 17:11:37 +02:00
Veronica Berglyd Olsen
a067c4d932 Expose search filter settings in the search widget 2026-07-14 16:47:15 +02:00
Veronica Berglyd Olsen
5668a56e2d Move the filter labels in manuscript settings to constants 2026-07-14 16:37:28 +02:00
Veronica Berglyd Olsen
713b8252fe Fix layout warning in item details 2026-07-14 16:36:49 +02:00
Veronica Berglyd Olsen
10e1b9d4d9 Search improvements, follow-up (#2846) 2026-07-14 13:47:06 +02:00
Veronica Berglyd Olsen
51ea95e79d Don't centre on search selection, just make sure it's visible 2026-07-14 13:43:33 +02:00
Veronica Berglyd Olsen
41622806c2 Centre selection on search double click 2026-07-14 13:37:33 +02:00
Veronica Berglyd Olsen
b0d083bd2f Make a few improvements in the editor and search code 2026-07-14 13:32:25 +02:00
Veronica Berglyd Olsen
2a4d44ff78 Make the search highlight narrower and apply same colour in editor searches 2026-07-14 13:19:45 +02:00
Veronica Berglyd Olsen
c34e525fb2 Fix some bugs in the search result handler 2026-07-14 13:08:29 +02:00
Veronica Berglyd Olsen
3da463382d Project search improvements (#2844) 2026-07-14 03:00:13 +02:00
Veronica Berglyd Olsen
50d65e2d7d Update docs 2026-07-14 02:50:58 +02:00
Veronica Berglyd Olsen
93c1de8a3d Update themes with new colour 2026-07-14 02:47:36 +02:00
Veronica Berglyd Olsen
6d56020110 Update tests and make a few improvements 2026-07-14 02:23:10 +02:00
Veronica Berglyd Olsen
2448f2cd38 Update search result icons on theme change 2026-07-14 02:08:40 +02:00
Veronica Berglyd Olsen
cc27826a48 Simplify context calculation in search 2026-07-14 02:03:22 +02:00
Veronica Berglyd Olsen
ad11b458f5 Center the match in the search delegate 2026-07-14 01:53:20 +02:00
Veronica Berglyd Olsen
8c53a67e06 Use a highlight for search results instead, and add a searchmatch theme colour 2026-07-14 00:55:51 +02:00
Veronica Berglyd Olsen
db1841bbf3 Simplify the search result delegate 2026-07-14 00:27:18 +02:00
Veronica Berglyd Olsen
ff9afd0485 Add a search item delegate to paint the word in the search result 2026-07-13 23:40:46 +02:00
Veronica Berglyd Olsen
33470486ea Make it possible to hide the item details panel below the project tree (#2843) 2026-07-13 21:20:34 +02:00
Veronica Berglyd Olsen
6e6113b887 Add a delayed refresh of the items panel, and add tests 2026-07-13 21:16:12 +02:00
Veronica Berglyd Olsen
fd4bdd04e9 Emit a signal when the panel state changes 2026-07-13 20:58:04 +02:00
Veronica Berglyd Olsen
2296fe166b Add test coverage 2026-07-13 20:48:59 +02:00
Veronica Berglyd Olsen
c7f2248eaf Make it possible to hide the item details panel 2026-07-13 20:45:05 +02:00
Veronica Berglyd Olsen
833f92dded Add an expandable panel widget 2026-07-13 20:44:41 +02:00
Veronica Berglyd Olsen
89478c8dd3 Rewrite project search to model/view (#2842) 2026-07-13 20:29:13 +02:00
Veronica Berglyd Olsen
ba4cd217c0 Move the novel model to the models folder 2026-07-13 20:25:21 +02:00
Veronica Berglyd Olsen
409ce4f2e9 Move the item model to the models folder 2026-07-13 20:24:56 +02:00
Veronica Berglyd Olsen
a8690808c2 Fix test coverage 2026-07-13 20:20:01 +02:00
Veronica Berglyd Olsen
a9f4cab48b Update main search tests 2026-07-13 20:09:03 +02:00
Veronica Berglyd Olsen
3a8a3680c5 Update the search model and add tests 2026-07-13 19:56:57 +02:00
Veronica Berglyd Olsen
0956b528cb Switch the search panel to model/view 2026-07-13 19:47:04 +02:00
Veronica Berglyd Olsen
3944a8c9a2 Add manuscript dialogue statistics (#2841) 2026-07-13 19:12:15 +02:00
Veronica Berglyd Olsen
8c75e36115 Use the new percentage formatter in other places too 2026-07-13 19:08:41 +02:00
Veronica Berglyd Olsen
e7fabab051 Fix dialogue overlap 2026-07-13 18:49:35 +02:00
Veronica Berglyd Olsen
77f112fcb9 Fix syntax preferences refresh in the editor and viewer 2026-07-13 18:36:11 +02:00
Veronica Berglyd Olsen
bc41619497 Fix issues and update tests 2026-07-13 18:33:03 +02:00
Veronica Berglyd Olsen
104c8b0d01 Replace the old stats widget with a simple label 2026-07-13 18:06:53 +02:00
Veronica Berglyd Olsen
6e7e5f7840 Add a side panel widget for manuscript statistics 2026-07-13 17:25:44 +02:00
Veronica Berglyd Olsen
f558f53a95 Collect statistics on dialogue 2026-07-13 16:03:56 +02:00
Veronica Berglyd Olsen
a13bafa2c0 Stability improvements (#2840) 2026-07-12 16:09:02 +02:00
Veronica Berglyd Olsen
187f53b837 Add a reentrancy test 2026-07-12 16:04:00 +02:00
Veronica Berglyd Olsen
5391edebc1 Remove the remaining deleteLater call 2026-07-12 15:56:30 +02:00
Veronica Berglyd Olsen
5d2f70a45d Make sure openDocument completes before another call is made 2026-07-12 15:55:27 +02:00
Veronica Berglyd Olsen
f28e3d1225 Manuscript print kerning fix (#2838) 2026-07-12 01:43:18 +02:00
Veronica Berglyd Olsen
16c0592523 Make the manuscript new page line a dashed line 2026-07-12 01:38:12 +02:00
Veronica Berglyd Olsen
2e03a29de9 Disable font hinting on manuscript print (#2640) 2026-07-12 00:47:32 +02:00
Veronica Berglyd Olsen
70cc564582 Fix some minor mistakes and omissions on the contributing guide (#2837) 2026-07-11 13:00:00 +02:00
Veronica Berglyd Olsen
55f8b58c9a Fix some minor mistakes and omissions on the contributing guide 2026-07-11 12:56:45 +02:00
Veronica Berglyd Olsen
4c75bacca0 Update the contributing guide (#2836) 2026-07-11 12:53:35 +02:00
Veronica Berglyd Olsen
2bb5b677ef Update the contributing guide 2026-07-11 12:50:01 +02:00
Veronica Berglyd Olsen
64bfe5a935 Fix weekly backup name format (#2835) 2026-07-11 12:11:06 +02:00
Veronica Berglyd Olsen
41f3dcd0fc Update tests 2026-07-11 12:06:48 +02:00
Veronica Berglyd Olsen
8243e07448 Fix the formatting of weekly project backups 2026-07-11 12:06:38 +02:00
Veronica Berglyd Olsen
31cf39aa91 Add backup interval setting (#2834) 2026-07-11 01:01:02 +02:00
Veronica Berglyd Olsen
8cedbc7469 Fix line wrapping 2026-07-11 00:58:03 +02:00
Veronica Berglyd Olsen
f967b812cb Update packages 2026-07-11 00:57:16 +02:00
Veronica Berglyd Olsen
21d2b5b133 Fix docstring 2026-07-11 00:57:10 +02:00
Veronica Berglyd Olsen
fbdefac538 Update tests 2026-07-11 00:49:42 +02:00
Veronica Berglyd Olsen
8deb2ff7ed Complete the backup interval implementation 2026-07-11 00:48:56 +02:00
Veronica Berglyd Olsen
bf5ce29d04 Add backup interval setting 2026-07-11 00:06:46 +02:00
Veronica Berglyd Olsen
0bc2d95f15 Improve toggle button colours (#2833) 2026-07-10 22:46:52 +02:00
Veronica Berglyd Olsen
54e23f38cd Update docs 2026-07-10 22:43:19 +02:00
Veronica Berglyd Olsen
1fd23ae721 Update tests 2026-07-10 22:36:08 +02:00
Veronica Berglyd Olsen
e966ffad6d Tweak the toggle colour on some themes 2026-07-10 22:14:30 +02:00
Veronica Berglyd Olsen
4bd1a6f11b Update tests 2026-07-10 22:14:10 +02:00
Veronica Berglyd Olsen
b2502ce0e8 Update themes 2026-07-10 21:36:23 +02:00
Veronica Berglyd Olsen
ad649ad4f7 Switch the search tool buttons to checkable NIconToolButton instances and add a new toggle colour 2026-07-10 20:59:24 +02:00
Veronica Berglyd Olsen
6e23fa7efd Menus cleanup (#2832) 2026-07-10 12:51:29 +02:00
Veronica Berglyd Olsen
074357a238 Update slot name in project settings 2026-07-10 12:48:15 +02:00
Veronica Berglyd Olsen
d01b1c868f Use the icon attribute for other cases where qtAddAction is used 2026-07-10 12:42:28 +02:00
Veronica Berglyd Olsen
466d310c25 Update tests 2026-07-10 12:28:19 +02:00
Veronica Berglyd Olsen
33343f64ef Update writing stats and manuscript settings to new pattern 2026-07-10 12:13:40 +02:00
Veronica Berglyd Olsen
40daa9596f Update header navigation in editor and viewer 2026-07-10 12:06:47 +02:00
Veronica Berglyd Olsen
12d1b2a112 Also add support for icons in qtAddAction and apply in Project Settings 2026-07-10 11:59:34 +02:00
Veronica Berglyd Olsen
0b93d7e6c6 Let qtAddAction take a data value and use in Preferences 2026-07-10 11:53:26 +02:00
Veronica Berglyd Olsen
6d8f4f79b1 Rename things (#2831) 2026-07-10 00:49:24 +02:00
Veronica Berglyd Olsen
ad9d04a24e Rename NWStatus 2026-07-10 00:42:12 +02:00
Veronica Berglyd Olsen
f1c6e44c5c Rename NWItem 2026-07-10 00:37:50 +02:00
Veronica Berglyd Olsen
87245f09ad Rename NWStorage 2026-07-10 00:31:42 +02:00
Veronica Berglyd Olsen
f6e5202a99 Rename NWDocument 2026-07-10 00:28:06 +02:00
Veronica Berglyd Olsen
a0bfd9d83f Rename NWTree 2026-07-10 00:24:39 +02:00
Veronica Berglyd Olsen
2b5ad3e4c4 Rename NWProjectData 2026-07-10 00:21:44 +02:00
Veronica Berglyd Olsen
0899b4f6b1 Fix missing improts 2026-07-10 00:19:57 +02:00
Veronica Berglyd Olsen
960f62d94b Rename NWBuildDocument 2026-07-10 00:14:39 +02:00
Veronica Berglyd Olsen
1dfa425889 Rename some rarely used classes 2026-07-10 00:13:41 +02:00
Veronica Berglyd Olsen
7a347afb40 Update class docstrings and rename NWSpellEnchant to SpellEnchant 2026-07-10 00:07:21 +02:00
Veronica Berglyd Olsen
230e91b60d Make test module docstrings consistent 2026-07-10 00:01:17 +02:00
Veronica Berglyd Olsen
3092278d63 Rename NWSessionLog to SessionLog 2026-07-09 23:47:32 +02:00
Veronica Berglyd Olsen
e83873bbea Memory leak regression tests (#2830) 2026-07-09 21:58:00 +02:00
Veronica Berglyd Olsen
2bec8e4aff Add regression tests for the memory leak fixes 2026-07-09 21:53:47 +02:00
Veronica Berglyd Olsen
42ead5886d Add memory leak test helpers 2026-07-09 21:53:01 +02:00
Veronica Berglyd Olsen
3d85401ab1 Memory leak cleanup (#2829) 2026-07-09 00:52:28 +02:00
Veronica Berglyd Olsen
ddef31ae21 Fix switch animation memory leak 2026-07-09 00:39:38 +02:00
Veronica Berglyd Olsen
3c630657b1 Fix font dialog memory leak 2026-07-09 00:37:59 +02:00
Veronica Berglyd Olsen
61a95e781a Fix project tree context menu memory leak 2026-07-09 00:34:42 +02:00
Veronica Berglyd Olsen
49b363494a Remove the lambda from save action in writing stats to allow the actions to be freed on close 2026-07-09 00:12:37 +02:00
Veronica Berglyd Olsen
e234e2340d Remove the lambda from dialogue line setting in Preferences to allow the actions to be freed on close 2026-07-09 00:04:15 +02:00
Veronica Berglyd Olsen
c7f8008355 Code cleanup (#2826) 2026-07-08 20:21:43 +02:00
Veronica Berglyd Olsen
caad6871ca Make test names more consistent 2026-07-08 20:15:28 +02:00
Veronica Berglyd Olsen
9aadd42471 Rename a few variables 2026-07-08 19:18:45 +02:00
Veronica Berglyd Olsen
df5e135834 Improve type annotations on spell and format checkers 2026-07-08 18:57:32 +02:00
Veronica Berglyd Olsen
84fd163ca8 Improve test helpers (#2825) 2026-07-07 12:57:35 +02:00
Veronica Berglyd Olsen
187190b229 Further improvements to file compare helper 2026-07-07 12:52:59 +02:00
Veronica Berglyd Olsen
92e02634e8 Clean up test helpers 2026-07-07 12:38:55 +02:00
Veronica Berglyd Olsen
134b72f219 Improve the cmpFiles helper for tests 2026-07-07 12:27:17 +02:00
Veronica Berglyd Olsen
970b962208 Clarify text language 2026-07-07 12:15:55 +02:00
Veronica Berglyd Olsen
7da4e4de59 Backport launcher fixes from main (#2824) 2026-07-07 01:34:50 +02:00
Veronica Berglyd Olsen
0f72d9504a Backport launcher fixes from main 2026-07-07 01:30:53 +02:00
Veronica Berglyd Olsen
9103a95315 Update Windows app launcher and app id (#2823) 2026-07-07 01:27:22 +02:00
Veronica Berglyd Olsen
ffc5bd1654 Update the signed windows launcher executable 2026-07-07 01:24:05 +02:00
Veronica Berglyd Olsen
ef916607d8 Bump windows launcher version 2026-07-07 01:19:37 +02:00
Veronica Berglyd Olsen
2b4f8f8d38 Fix open in background issue with the windows launcher 2026-07-07 01:18:10 +02:00
Veronica Berglyd Olsen
f3d0538207 Bump windows launcher version 2026-07-07 01:09:05 +02:00
Veronica Berglyd Olsen
b9d63340b8 Keep the wrapper exe alive while the main app is running 2026-07-07 01:01:31 +02:00
Veronica Berglyd Olsen
ec99e41614 Use a fixed app id on Windows 2026-07-07 00:57:11 +02:00
Veronica Berglyd Olsen
8101f59fc5 Add text zoom in editor and viewer (#2822) 2026-07-06 22:31:02 +02:00
Veronica Berglyd Olsen
93c3ea2d9f Fix formatting 2026-07-06 22:27:32 +02:00
Veronica Berglyd Olsen
3dcbecf04a Update shortcuts in docs 2026-07-06 22:21:17 +02:00
Veronica Berglyd Olsen
a0e2e03616 Update tests 2026-07-06 22:19:54 +02:00
Veronica Berglyd Olsen
aad07535fb Map zoom through docAction and also apply to viewer 2026-07-06 22:03:20 +02:00
Veronica Berglyd Olsen
1334aad4f6 Enable zoom in the editor 2026-07-06 21:51:52 +02:00
Veronica Berglyd Olsen
af4239b957 Switch editor heading sizes to Qt fixed values 2026-07-06 21:22:02 +02:00
Veronica Berglyd Olsen
8267af24c7 Add a text format check framework (#2821) 2026-07-06 21:02:04 +02:00
Veronica Berglyd Olsen
06e4eb5f79 Move the chunk constant to the constants file 2026-07-06 20:58:09 +02:00
Veronica Berglyd Olsen
5010e54b53 Make the word counter also single shot like the spell checker 2026-07-06 20:47:13 +02:00
Veronica Berglyd Olsen
e53d17495e Rename the spell check timer 2026-07-06 20:34:20 +02:00
Veronica Berglyd Olsen
729ec29b37 Don't highlight trailing spaces behind the cursor 2026-07-06 20:30:29 +02:00
Veronica Berglyd Olsen
26c3d53e55 Unify the format errors format 2026-07-06 20:16:09 +02:00
Veronica Berglyd Olsen
b88132620d Fix undo glitch 2026-07-06 20:06:48 +02:00
Veronica Berglyd Olsen
cd10bb3092 Generalise the space checker to format checker 2026-07-06 19:56:15 +02:00
Veronica Berglyd Olsen
40f73dc4ef Move the multi and trailing space check to the same infrastructure as spell checking 2026-07-06 19:50:14 +02:00
Veronica Berglyd Olsen
a73cf4f787 Editor search improvements (#2820) 2026-07-06 19:12:06 +02:00
Veronica Berglyd Olsen
b17afcf40c Only expand search box count when more than 99 hits (#2798) 2026-07-06 19:00:43 +02:00
Veronica Berglyd Olsen
05875b94b7 Add a QtWidgetShortcut type 2026-07-06 18:52:04 +02:00
Veronica Berglyd Olsen
f7bf92885e Show search selections 2026-07-06 18:45:31 +02:00
Veronica Berglyd Olsen
c5f26f3e94 Add missing slot attributes 2026-07-06 18:32:16 +02:00
Veronica Berglyd Olsen
f6b060c0f9 Core code restructure (#2819) 2026-07-06 18:25:13 +02:00
Veronica Berglyd Olsen
4741ff1289 Fix ruff error 2026-07-06 18:21:44 +02:00
Veronica Berglyd Olsen
1337fe9816 Remove outdated info from agents.md 2026-07-06 18:19:21 +02:00
Veronica Berglyd Olsen
e19308cba4 Update test names 2026-07-06 18:13:58 +02:00
Veronica Berglyd Olsen
a5acdfa3da Move manuscript code to own folder 2026-07-06 18:10:21 +02:00
Veronica Berglyd Olsen
f57a6b512a Split into editor and viewer folders 2026-07-06 18:03:58 +02:00
Veronica Berglyd Olsen
5afcbfe8c6 Split editor and viewer source files 2026-07-06 17:52:50 +02:00
Veronica Berglyd Olsen
507f1e7a92 Move the base tests to the root tests folder 2026-07-06 17:29:48 +02:00
Veronica Berglyd Olsen
fa5653ce16 Rename the remaining gui folder to gui_side 2026-07-06 17:28:37 +02:00
Veronica Berglyd Olsen
1283a0f4b2 Move the document editor and viewer files to a separate folder 2026-07-06 17:27:16 +02:00
Veronica Berglyd Olsen
a27aeb6613 Restructure tests folders (#2818) 2026-07-06 17:07:00 +02:00
Veronica Berglyd Olsen
0e4fed94b1 Remove test prefix for all test folders 2026-07-06 17:00:58 +02:00
Veronica Berglyd Olsen
df2e255129 Move test reference files into underscored folders 2026-07-06 16:55:14 +02:00
Veronica Berglyd Olsen
b1fde3ff37 Add line height setting for editor and viewer (#2817) 2026-07-06 16:46:04 +02:00
Veronica Berglyd Olsen
3d83f9a452 Scope down init of editor and viewer on Preferences change 2026-07-06 16:38:39 +02:00
Veronica Berglyd Olsen
ccdf963847 Create types for commonly used keypress enums 2026-07-06 16:09:18 +02:00
Veronica Berglyd Olsen
8405411263 Move the keypress overload 2026-07-06 16:08:58 +02:00
Veronica Berglyd Olsen
a343778b64 Fix issue maintaining line height while typing 2026-07-06 15:46:18 +02:00
Veronica Berglyd Olsen
6db22271d9 Expose the line height setting in Preferences 2026-07-06 15:14:53 +02:00
Veronica Berglyd Olsen
f0f017aa0d Add test coverage 2026-07-06 15:02:09 +02:00
Veronica Berglyd Olsen
0afec0b94d Implement the line height setting and handling 2026-07-06 15:01:11 +02:00
Veronica Berglyd Olsen
f3cb4d05e1 Switch editor back to QTextEdit (#2816) 2026-07-06 13:28:22 +02:00
Veronica Berglyd Olsen
8dd2778119 Cleanup pass and fix a minor issue 2026-07-06 13:13:49 +02:00
Veronica Berglyd Olsen
970f432739 Restore old per-pixel typewriter scrolling 2026-07-06 12:55:11 +02:00
Veronica Berglyd Olsen
92377fdc1d Reimplement the centre ang cursor visibility features 2026-07-06 12:37:29 +02:00
Veronica Berglyd Olsen
e6dde015a6 Switch to QTextEdit without changing anything else 2026-07-06 12:12:13 +02:00
Veronica Berglyd Olsen
5993ca4193 Move spell checking out of the syntax highlighter (#2812) 2026-07-05 22:52:11 +02:00
Veronica Berglyd Olsen
168ad781dc Fix issues with tests 2026-07-05 22:48:02 +02:00
Veronica Berglyd Olsen
a0f36ea4ea Clean up a few minor bits 2026-07-05 22:35:01 +02:00
Veronica Berglyd Olsen
7340da7c07 Move the text bloc data class to a separate file 2026-07-05 22:21:54 +02:00
Veronica Berglyd Olsen
d9c7423b34 Update tests 2026-07-05 22:14:18 +02:00
Veronica Berglyd Olsen
fe42c529ca Move the spell checker off the main thread 2026-07-05 22:08:35 +02:00
Veronica Berglyd Olsen
815026976b Fix test on MacOS 2026-07-05 21:54:10 +02:00
Veronica Berglyd Olsen
fc6e9d8213 Run spell check in chunks to not block the document 2026-07-05 19:11:31 +02:00
Veronica Berglyd Olsen
e0f53d86d3 Move spell checking out of the highlighter and on a timer in the editor 2026-07-05 19:04:22 +02:00
Veronica Berglyd Olsen
6611b495d0 Move spell error rendering out of the syntax highlighter 2026-07-05 18:44:40 +02:00
Veronica Berglyd Olsen
9741d083ae Make the text block data object UTF-16 aware 2026-07-05 18:25:56 +02:00
Veronica Berglyd Olsen
083abbc73b Forward search race condition fix (#2810) 2026-07-05 18:10:08 +02:00
Veronica Berglyd Olsen
ab9be4efd4 Fix test coverage 2026-07-05 18:07:01 +02:00
Veronica Berglyd Olsen
9a8b89afa7 Fix doc search race across document boundaries (#2811) 2026-07-05 18:06:37 +02:00
Veronica Berglyd Olsen
e20b82f802 Fix test coverage 2026-07-05 18:00:20 +02:00
Veronica Berglyd Olsen
1218b25127 Spell check word caching (#2808) 2026-07-05 17:55:28 +02:00
Veronica Berglyd Olsen
d58bc8373e Fix doc search race across document boundaries, backported from main 2026-07-05 17:52:42 +02:00
Veronica Berglyd Olsen
b6e7c9444e Remove reliance on actual spell check dictionary 2026-07-05 17:43:21 +02:00
Veronica Berglyd Olsen
32e004e11a Update tests 2026-07-05 17:39:50 +02:00
Veronica Berglyd Olsen
81babd8a07 Split the findNext function in the editor to handle race conditions when the user holds down the search next key 2026-07-05 17:39:38 +02:00
Veronica Berglyd Olsen
9d7c0c3a29 Add test coverage 2026-07-05 17:32:11 +02:00
Veronica Berglyd Olsen
dabcf769fb Add a spell check cache to avoid calling enchant so often 2026-07-05 17:31:59 +02:00
Veronica Berglyd Olsen
0a4269a405 Improve branch coverage (#2807) 2026-07-05 13:44:17 +02:00
Veronica Berglyd Olsen
9fad61bca1 Minor fixes 2026-07-05 13:41:14 +02:00
Veronica Berglyd Olsen
10ff56bba7 Fix branch misses on tools modules 2026-07-05 13:22:05 +02:00
Veronica Berglyd Olsen
36a0b024b1 Fix branch misses on guimain, shared and error 2026-07-05 12:43:05 +02:00
Veronica Berglyd Olsen
7f0e5cce08 Revert redundant CONFIG safeguards 2026-07-05 12:08:45 +02:00
Veronica Berglyd Olsen
1b9ac40e38 Fix branch misses on gui modules, part 3 2026-07-05 12:01:09 +02:00
Veronica Berglyd Olsen
7b078103a2 Fix branch misses on gui modules, part 2 2026-07-05 01:58:21 +02:00
Veronica Berglyd Olsen
ff89d27a93 Fix branch misses on gui modules, part 1 2026-07-05 01:11:24 +02:00
Veronica Berglyd Olsen
9c672ffd7b Fix MacOS test failure 2026-07-05 00:30:25 +02:00
Veronica Berglyd Olsen
097015228b Fix branch misses on format modules 2026-07-05 00:25:35 +02:00
Veronica Berglyd Olsen
b7d87a24cc Fix CI issues 2026-07-04 23:36:26 +02:00
Veronica Berglyd Olsen
628d012c82 Fix branch misses on extension modules 2026-07-04 23:33:16 +02:00
Veronica Berglyd Olsen
67c151e23e Fix branch misses on dialog modules 2026-07-04 23:06:16 +02:00
Veronica Berglyd Olsen
64fb934096 Fix branch misses on core modules 2026-07-04 21:23:53 +02:00
Veronica Berglyd Olsen
b9e9709f18 Fix branch misses on base modules 2026-07-04 19:07:41 +02:00
Veronica Berglyd Olsen
490527abdf Fix small branch misses 2026-07-04 18:47:37 +02:00
Veronica Berglyd Olsen
a78213052a Enable branch coverage 2026-07-04 18:43:29 +02:00
Veronica Berglyd Olsen
de5553647d Remove custom codeql file on release (#2806) 2026-07-04 16:04:48 +02:00
Veronica Berglyd Olsen
755b63bbf6 Update code of conduct 2026-07-04 16:02:09 +02:00
Veronica Berglyd Olsen
7666dcae2b Remove custom codeql file on release 2026-07-04 16:00:34 +02:00
Veronica Berglyd Olsen
db210b1da7 Remove custom codeql (#2805) 2026-07-04 15:52:31 +02:00
Veronica Berglyd Olsen
dd0c71c9d6 Remove custom codeql 2026-07-04 15:49:52 +02:00
Veronica Berglyd Olsen
e47dee1fac Shorten the code of conduct (#2803) 2026-07-04 15:25:08 +02:00
Veronica Berglyd Olsen
5eb45cc3ec Trim the code of conduct file and scope it down to the current repo 2026-07-04 15:21:35 +02:00
Veronica Berglyd Olsen
259cc7f00c Remove Ubuntu 25.10 and add 26.10 (#2802) 2026-07-02 20:41:30 +02:00
Veronica Berglyd Olsen
eb1ede7747 Remove Ubuntu 25.10 and add 26.10 2026-07-02 20:38:06 +02:00
Veronica Berglyd Olsen
b3147b125c Pre-Release 26.2a1 (#2801) 2026-07-02 20:25:36 +02:00
Veronica Berglyd Olsen
58fefe3182 Bump main to 26.2a2 2026-07-02 20:19:35 +02:00
Veronica Berglyd Olsen
3397319b9f Add EPUB format (#2283) 2026-07-02 20:15:55 +02:00
Veronica Berglyd Olsen
3bdb5ed594 Update docs 2026-07-02 20:13:00 +02:00
Veronica Berglyd Olsen
05c5915f2b Disable anchors in epub 2026-07-02 20:11:13 +02:00
Veronica Berglyd Olsen
07572a1e94 Treat notes as chapters, but with the notes filename in epub 2026-07-02 20:10:14 +02:00
Veronica Berglyd Olsen
cd9244f0dd Allow ignoring OS-specific tests in run_tests script 2026-07-02 19:16:52 +02:00
Veronica Berglyd Olsen
4347021572 Add epub save test and fix insertion of counts 2026-07-02 01:26:33 +02:00
Veronica Berglyd Olsen
98520c1816 Refactor css builder and add epub tests 2026-07-02 00:50:39 +02:00
Veronica Berglyd Olsen
8df5f519d2 Fix footnotes implementation for epub 2026-07-01 23:53:54 +02:00
Veronica Berglyd Olsen
5e5d18fc64 Clean up some unused formats code and sort inheritance between epub and html 2026-07-01 23:53:37 +02:00
Veronica Berglyd Olsen
86b436be98 Add slots to all formatting classes 2026-07-01 22:52:45 +02:00
Veronica Berglyd Olsen
15e73a1d43 Make ToEPub class inherit ToHtml and share formatting functions 2026-07-01 22:52:26 +02:00
Veronica Berglyd Olsen
8eb5442037 Some minor refactoring 2026-07-01 00:14:27 +02:00
Veronica Berglyd Olsen
56053686fb Fix validation issues in EPub format 2026-07-01 00:05:36 +02:00
Veronica Berglyd Olsen
65cb006f33 Add a css builder for HTML and EPub 2026-07-01 00:05:24 +02:00
Veronica Berglyd Olsen
d942373528 Merge branch 'main' into epub_format 2026-06-30 22:18:37 +02:00
Veronica Berglyd Olsen
d87b1beff5 Clarify icon and image format checks in tests (#2797) 2026-06-29 20:48:34 +02:00
Veronica Berglyd Olsen
ce4a86b077 When icon and image tests fail, give a detailed reason 2026-06-29 20:43:26 +02:00
Veronica Berglyd Olsen
0eb33394b9 Merge 26.1.1 release into main (#2796) 2026-06-28 18:45:28 +02:00
Veronica Berglyd Olsen
11a01eed96 Re-run ruff format 2026-06-28 18:40:55 +02:00
Veronica Berglyd Olsen
347e7913b4 Fix pyproject.toml 2026-06-28 18:35:45 +02:00
Veronica Berglyd Olsen
5d9f159a58 Merge branch 'main' into merge-26.1.1 2026-06-28 18:31:36 +02:00
Veronica Berglyd Olsen
5a7f129822 Release 26.1.1 (#2794) 2026-06-28 18:12:45 +02:00
Veronica Berglyd Olsen
329274876f Update credits for Catalan translations 2026-06-28 18:09:36 +02:00
Veronica Berglyd Olsen
a073665fe6 Update changelog and bump version 2026-06-28 18:09:23 +02:00
Veronica Berglyd Olsen
3d646474be Update translations (#2793) 2026-06-28 17:38:03 +02:00
Veronica Berglyd Olsen
ebca4f9c85 Fix i18n pipeline 2026-06-28 17:34:32 +02:00
Veronica Berglyd Olsen
678b80ea27 Clean up other translation files 2026-06-28 17:27:13 +02:00
Veronica Berglyd Olsen
a71a409426 Add Catalan 2026-06-28 17:26:59 +02:00
Veronica Berglyd Olsen
bee617afaf Updated existing translations 2026-06-28 17:26:42 +02:00
Veronica Berglyd Olsen
fbf603bc58 Simplify ts files (#2792) 2026-06-28 17:19:31 +02:00
Veronica Berglyd Olsen
c037b575cb Remove line numbers from .ts files 2026-06-28 17:13:14 +02:00
Veronica Berglyd Olsen
0cf81d02e7 Test on Fedora linux (#2463) 2026-06-28 15:07:08 +02:00
Veronica Berglyd Olsen
b0b9eba129 Merge Fedora tests into linux workflow 2026-06-28 15:03:37 +02:00
Veronica Berglyd Olsen
a845e9d76a Revert the build workflow changes 2026-06-28 15:00:38 +02:00
Veronica Berglyd Olsen
8475a29441 Fix dependencies 2026-06-28 14:56:25 +02:00
Veronica Berglyd Olsen
cc2620434b Rewrite the fedora test step to mirror the equivalent for ubuntu 2026-06-28 14:34:55 +02:00
Veronica Berglyd Olsen
0b3b73f47d Merge branch 'main' into pr/bkmgit/2463 2026-06-28 14:29:00 +02:00
Veronica Berglyd Olsen
e4d07783e7 Add smoke test to Appimage build (#2791) 2026-06-28 14:00:26 +02:00
Veronica Berglyd Olsen
0a3b4c33ec Fix dependencies 2026-06-28 13:54:44 +02:00
Veronica Berglyd Olsen
c124a19d82 Fix smoke test libGL error 2026-06-28 13:14:18 +02:00
Veronica Berglyd Olsen
435abd693a Merge branch 'release' into appimage-updates 2026-06-28 13:05:52 +02:00
Veronica Berglyd Olsen
fd29539b92 Fix QDBusError on Linux (#2790) 2026-06-28 13:05:27 +02:00
Veronica Berglyd Olsen
31cffb153b Just use if/elif logic 2026-06-28 13:02:34 +02:00
Veronica Berglyd Olsen
e31cd291a7 Group the identity part with the other implementations for windows and macos 2026-06-28 12:59:54 +02:00
Veronica Berglyd Olsen
198cbae6b4 Add a step to test the appimage on various distros 2026-06-28 12:54:37 +02:00
Veronica Berglyd Olsen
76d7faf5ba Fix QDBusError 2026-06-28 12:34:12 +02:00
Veronica Berglyd Olsen
6bf950df84 Update Code of Conduct (#2788) 2026-06-28 01:14:38 +02:00
Veronica Berglyd Olsen
0a4521fa27 Update violation response details 2026-06-28 00:12:16 +01:00
Veronica Berglyd Olsen
e74b232489 Clarify reporting instructions in Code of Conduct 2026-06-28 00:08:45 +01:00
Veronica Berglyd Olsen
41828edb63 Update code of conduct to v3.0 (#2787) 2026-06-28 01:07:26 +02:00
Veronica Berglyd Olsen
5e9e9c6ead Update code of conduct to v3.0 2026-06-28 01:04:07 +02:00
Veronica Berglyd Olsen
7669dea354 Update default Python to 3.14 (#2786) 2026-06-28 00:19:33 +02:00
Veronica Berglyd Olsen
4992fa73cf Fix i18n workflow trigger 2026-06-28 00:10:33 +02:00
Veronica Berglyd Olsen
496da77057 Use Python 3.14 as default 2026-06-28 00:08:04 +02:00
Veronica Berglyd Olsen
1c48f6352b Show active project spell check language in menu (#2785) 2026-06-27 23:36:50 +02:00
Veronica Berglyd Olsen
85f8583061 Sort lines 2026-06-27 23:33:16 +02:00
Veronica Berglyd Olsen
950bf4b111 Re-run spell checker when language changes 2026-06-27 23:31:13 +02:00
Veronica Berglyd Olsen
e44fa78354 Show what project language is set in the menu 2026-06-27 23:09:20 +02:00
Veronica Berglyd Olsen
fda6831075 Recursively set active inactive documents in project tree (#2784) 2026-06-27 22:23:42 +02:00
Veronica Berglyd Olsen
6166bab780 Update tests 2026-06-27 22:15:05 +02:00
Veronica Berglyd Olsen
66023ecf65 Allow setting active/inactive to all children (#2188) 2026-06-27 22:07:13 +02:00
Veronica Berglyd Olsen
c0bee55d82 Auto-refresh reference list on changes (#2782) 2026-06-27 01:39:47 +02:00
Veronica Berglyd Olsen
3d715d17dc Add test coverage 2026-06-27 01:35:34 +02:00
Veronica Berglyd Olsen
00a6a39eb3 Add signal path to notify back reference panel about index changes (#2124) 2026-06-27 01:33:48 +02:00
Veronica Berglyd Olsen
84864c68ec Improve item models (#2781) 2026-06-27 00:51:16 +02:00
Veronica Berglyd Olsen
da04fe3d83 Improve performance in notifying refresh from the data model to the model/view layer 2026-06-27 00:34:04 +02:00
Veronica Berglyd Olsen
b75bbaafa1 Fix issues in parent/child/descendant relationships 2026-06-27 00:19:24 +02:00
Veronica Berglyd Olsen
6f12fb3c5a Harden root folder handling when loading from file 2026-06-26 23:47:42 +02:00
Veronica Berglyd Olsen
1d37707628 Fix edge cases in the handling of the trash folder 2026-06-26 23:36:15 +02:00
Veronica Berglyd Olsen
207648b7ee Add consistency checks in tree tests 2026-06-26 23:26:05 +02:00
Veronica Berglyd Olsen
0e7859ea89 Add consistency guards in project tree 2026-06-26 23:25:36 +02:00
Veronica Berglyd Olsen
f23c067ccd Improve project tree drag and drop 2026-06-26 22:56:09 +02:00
Veronica Berglyd Olsen
0d160f4beb Fix race condition when creating new items in the project tree 2026-06-26 22:44:30 +02:00
Veronica Berglyd Olsen
c17cd2d1d3 Harden the model/view for the project tree 2026-06-26 22:44:09 +02:00
Veronica Berglyd Olsen
e14bb09139 Make improvements to the novel model 2026-06-26 22:27:20 +02:00
Veronica Berglyd Olsen
68d8002ea5 Add the isort rule to preserve formatting (#2780) 2026-06-25 23:21:37 +02:00
Veronica Berglyd Olsen
08bed0c597 Add the isort rule to preserve formatting 2026-06-25 23:17:39 +02:00
Veronica Berglyd Olsen
16fff7431c Update isort rules and add more ruff rules (#2779) 2026-06-25 23:15:50 +02:00
Veronica Berglyd Olsen
1f0d6a123d Add TID rule 2026-06-25 23:07:44 +02:00
Veronica Berglyd Olsen
255368cc47 Add SIM rule 2026-06-25 22:57:31 +02:00
Veronica Berglyd Olsen
64ce1c026a Add PT rule 2026-06-25 22:39:37 +02:00
Veronica Berglyd Olsen
f053510cd5 Add PIE rule 2026-06-25 22:28:24 +02:00
Veronica Berglyd Olsen
8cf0bebe29 Add G, ISC and LOG rules 2026-06-25 22:26:16 +02:00
Veronica Berglyd Olsen
223bc6b12d Add CPY rule 2026-06-25 22:18:33 +02:00
Veronica Berglyd Olsen
7ede82c57d Add C4 rules 2026-06-25 22:17:40 +02:00
Veronica Berglyd Olsen
d8a71615f9 Add ruff isort settings 2026-06-25 22:13:28 +02:00
Veronica Berglyd Olsen
b7df56759c Add the epub class 2026-06-25 21:59:35 +02:00
Veronica Berglyd Olsen
89103b7562 Add helper code for epub from old implementation 2026-06-25 21:38:57 +02:00
Veronica Berglyd Olsen
574d98da28 Resolve formatting differences between release and main (#2777) 2026-06-24 22:21:34 +02:00
Veronica Berglyd Olsen
84d51b3cb7 Merge branch 'release' into merge-release 2026-06-24 22:17:47 +02:00
Veronica Berglyd Olsen
f36cdaeeed Run ruff format (#2776) 2026-06-24 21:57:09 +02:00
Veronica Berglyd Olsen
64d5713041 Code cleanup (#2775) 2026-06-24 21:53:43 +02:00
Veronica Berglyd Olsen
1a0b127407 Run ruff format 2026-06-24 21:53:24 +02:00
Veronica Berglyd Olsen
4f3dbcae88 Allow ruff format 2026-06-24 21:47:27 +02:00
Veronica Berglyd Olsen
e6d25d2204 Enable a check for main code 2026-06-24 21:04:11 +02:00
Veronica Berglyd Olsen
dffd248343 Document magic methods 2026-06-24 20:46:54 +02:00
Veronica Berglyd Olsen
44be221621 Remove file history again 2026-06-24 20:36:13 +02:00
Veronica Berglyd Olsen
836b5a16ca Merge branch 'release' into merge-cleanup 2026-06-24 20:33:02 +02:00
Veronica Berglyd Olsen
4e7813aeb6 Code cleanup (#2774) 2026-06-24 20:30:43 +02:00
Veronica Berglyd Olsen
ddd9918881 Remove codecov.yml 2026-06-24 20:23:19 +02:00
Veronica Berglyd Olsen
095a18798c Drop the manifest file 2026-06-24 20:17:47 +02:00
Veronica Berglyd Olsen
7ddeed9955 Unpin ruff 2026-06-24 20:00:52 +02:00
Veronica Berglyd Olsen
6034133565 Remove file history comments 2026-06-24 19:57:36 +02:00
Veronica Berglyd Olsen
fd8324a1f4 Rename test modules 2026-06-24 19:53:34 +02:00
Veronica Berglyd Olsen
e0c9ae7598 Fix docs typos, ported from main branch (#2773) 2026-06-21 20:57:29 +02:00
Veronica Berglyd Olsen
879d51dff7 Update Manuscript tool docs (#2772) 2026-06-21 20:53:46 +02:00
Veronica Berglyd Olsen
24987a63a8 Fix docs typos, ported from main branch 2026-06-21 20:53:27 +02:00
Veronica Berglyd Olsen
3caa699d1a Include docs changes from current release branch 2026-06-21 20:43:32 +02:00
Veronica Berglyd Olsen
24f950e3b3 Fix some typos in the docs 2026-06-21 20:41:35 +02:00
Veronica Berglyd Olsen
4dff137c26 Extend the manuscript build docs 2026-06-21 20:28:05 +02:00
Veronica Berglyd Olsen
fcd5d04a40 Split the manuscript document into general and formatting 2026-06-21 19:39:19 +02:00
Veronica Berglyd Olsen
c487e88a0b Add horizontal rule format for manuscripts (#2771) 2026-06-20 19:28:23 +02:00
Veronica Berglyd Olsen
602adc2309 Add test coverage 2026-06-20 19:14:15 +02:00
Veronica Berglyd Olsen
d42b37c29c Simplify the horizontal rule use case 2026-06-20 18:26:08 +02:00
Veronica Berglyd Olsen
63fdd3699f First implementation of horizontal rule with tests 2026-06-20 17:52:01 +02:00
Veronica Berglyd Olsen
bde20ec991 Add horizontal lines to all export formats 2026-06-20 17:40:03 +02:00
Veronica Berglyd Olsen
84eaad0775 Add a horizontal rule format 2026-06-20 14:11:52 +02:00
Veronica Berglyd Olsen
3204959c80 Add missing commit from the justify on line break PR (#2770) 2026-06-20 00:51:16 +02:00
Veronica Berglyd Olsen
0cb677664e Add the justify setting on DocX as well, also missing in last PR 2026-06-20 00:47:15 +02:00
Veronica Berglyd Olsen
08563ade44 Add missing commit from the justify on line break PR 2026-06-20 00:43:50 +02:00
Veronica Berglyd Olsen
14f815d0ba Justify lines on soft break setting and ODT support (#2769) 2026-06-20 00:34:38 +02:00
Veronica Berglyd Olsen
d8489ba0fc Fix tests 2026-06-20 00:00:28 +02:00
Veronica Berglyd Olsen
d633f0ad04 Expose setting for controlling justify on break 2026-06-20 00:00:17 +02:00
Veronica Berglyd Olsen
3f89bfb273 Add settings.xml to ODT writer 2026-06-19 23:22:16 +02:00
Veronica Berglyd Olsen
550fc02ef8 Build tool improvements (#2768) 2026-06-19 19:57:22 +02:00
Veronica Berglyd Olsen
60277fc11a Update the translation file 2026-06-19 19:40:06 +02:00
Veronica Berglyd Olsen
f459025f39 Update the manuscript build dialogs and the screenshots in docs 2026-06-19 19:36:33 +02:00
Veronica Berglyd Olsen
3fa8c16164 Make manuscript build references consistent and up to date 2026-06-19 19:13:32 +02:00
Veronica Berglyd Olsen
f0aca3a965 Merge release branch into main (#2767) 2026-06-19 18:47:43 +02:00
Veronica Berglyd Olsen
47afb69acc Merge branch 'main' into merge-release 2026-06-19 18:38:31 +02:00
Veronica Berglyd Olsen
217f1a9786 Repo maintenance and UV tooling (#2766) 2026-06-19 18:37:57 +02:00
Veronica Berglyd Olsen
c0813f037b Disable new ruff rules 2026-06-19 18:23:35 +02:00
Veronica Berglyd Olsen
da3688bf2e Update actions 2026-06-19 18:06:44 +02:00
Veronica Berglyd Olsen
5ba3b4ea9d Add lock file 2026-06-19 18:02:27 +02:00
Veronica Berglyd Olsen
3e6ec4a75b Replace pdm with uv 2026-06-19 18:00:26 +02:00
Veronica Berglyd Olsen
c9dbb1e240 Add agents and update guide 2026-06-19 17:53:07 +02:00
Veronica Berglyd Olsen
5a66c19033 Improve key press processing in editor completer menu (#2743) 2026-05-03 13:35:27 +02:00
Veronica Berglyd Olsen
e256208eb4 Update docstrings 2026-05-03 13:17:25 +02:00
Veronica Berglyd Olsen
c72b2d5bba Improve handling of completer selection 2026-05-03 13:14:25 +02:00
Veronica Berglyd Olsen
d1194a37cd Add completer processing of left, right and tab keys (#2742) 2026-05-03 13:13:59 +02:00
Veronica Berglyd Olsen
d4cfd6ef4f Merge 26.1 release into 26.2 (#2741) 2026-04-26 18:08:52 +02:00
Veronica Berglyd Olsen
b27b3ad3f8 Merge branch 'main' into merge-26.1 2026-04-26 18:01:55 +02:00
Veronica Berglyd Olsen
83b1c6969a Post-release fixes (#2740) 2026-04-26 18:00:06 +02:00
Veronica Berglyd Olsen
865c556da3 Add missing items in changelog 2026-04-26 17:55:33 +02:00
Veronica Berglyd Olsen
4efd68446e Release 26.1 (#2738) 2026-04-26 15:50:57 +02:00
Veronica Berglyd Olsen
115218c8aa Bump version and update changelog 2026-04-26 15:44:29 +02:00
Veronica Berglyd Olsen
0f58788e26 Update translations 2026-04-26 15:33:41 +02:00
Veronica Berglyd Olsen
c72bb8c196 Update credits 2026-04-19 20:56:56 +02:00
Veronica Berglyd Olsen
10c8a186e5 Merge release fixes into 26.2 Alpha 0 (#2733) 2026-04-14 21:45:10 +02:00
Veronica Berglyd Olsen
f125908e1e Merge branch 'release' into merge-release-fixes 2026-04-14 17:53:50 +02:00
Veronica Berglyd Olsen
89c46e989d Don't expand justified text on short lines for DocX (#2732) 2026-04-14 17:48:59 +02:00
Veronica Berglyd Olsen
b3803ec424 Add missing translation string for mentions (#2731) 2026-04-14 17:44:31 +02:00
Veronica Berglyd Olsen
1eea25c87b Update tests 2026-04-14 17:42:29 +02:00
Veronica Berglyd Olsen
880b24a929 Add the setting to DocX exports to not expand on Shift+Enter for justified text (#2690) 2026-04-14 17:41:24 +02:00
Veronica Berglyd Olsen
20ecbbafaa Add missing translation string for mentions (#2730) 2026-04-14 17:35:45 +02:00
Veronica Berglyd Olsen
f6f7cc9cd1 Update manuscript build settings label (#2729) 2026-04-14 17:27:22 +02:00
Veronica Berglyd Olsen
36e4f34780 Clarify note title label for manuscript settings (#2727) 2026-04-14 17:02:00 +02:00
Veronica Berglyd Olsen
ed232b2199 Bump main to 26.2 Alpha 0 (#2726) 2026-04-13 22:38:55 +02:00
Veronica Berglyd Olsen
571e3467fc Move main to 26.2 Alpha 0 2026-04-13 22:31:52 +02:00
Veronica Berglyd Olsen
b8508b7cd8 Merge 26.1 branch into release (#2725) 2026-04-13 22:29:21 +02:00
Veronica Berglyd Olsen
9725b2334c Fix redundant line in changelog 2026-04-13 21:55:06 +02:00
Veronica Berglyd Olsen
eab54ef98f Release 2026.1 RC 1 (#2723) 2026-04-13 21:41:41 +02:00
Veronica Berglyd Olsen
afaf12e4b0 Bump version to 26.1 RC 1 and update changelog 2026-04-13 21:31:38 +02:00
Veronica Berglyd Olsen
0e5cd73ef0 Update i18n for 26.1 RC 1 (#2722) 2026-04-13 21:30:33 +02:00
Veronica Berglyd Olsen
9c972b19e1 Add missing two strings for en-US and nb-NO 2026-04-13 21:18:28 +02:00
Veronica Berglyd Olsen
c6487f4837 Update completed translations 2026-04-13 21:09:42 +02:00
Veronica Berglyd Olsen
0182107bc0 Fix typo in debug log 2026-04-13 21:06:56 +02:00
Veronica Berglyd Olsen
7497fc12fc Add setting for single-asterisk bold (#2719) 2026-04-13 08:59:06 +02:00
Veronica Berglyd Olsen
3ce8d08439 Merge branch 'main' 2026-04-12 22:12:39 +02:00
Veronica Berglyd Olsen
111db6e2d1 Update translation sources (#2721) 2026-04-12 20:57:57 +02:00
Veronica Berglyd Olsen
a990429daa Update completed en-US and nb-NO translations 2026-04-12 20:32:36 +02:00
Veronica Berglyd Olsen
b618697998 Update translation files with existing translations and new strings 2026-04-12 19:01:39 +02:00
Veronica Berglyd Olsen
6f96ca4a62 Update i18n workflow and add a string to preferences 2026-04-12 18:42:44 +02:00
Veronica Berglyd Olsen
9626917362 Extend pattern tests 2026-04-11 17:27:45 +02:00
Veronica Berglyd Olsen
d4705fe5be Extend test coverage for tokenizer 2026-04-11 17:09:31 +02:00
Veronica Berglyd Olsen
0a6cb656c8 Update the docs 2026-04-11 16:24:02 +02:00
Veronica Berglyd Olsen
72097a0fbb Update tests 2026-04-11 16:11:45 +02:00
Veronica Berglyd Olsen
47a2a15b59 Add formatting and highlighting for single asterisk bold 2026-04-11 16:11:34 +02:00
Veronica Berglyd Olsen
08082cf7e2 Add a setting for using single asterisk for bold 2026-04-11 16:08:02 +02:00
Veronica Berglyd Olsen
6f1a656a9a Fix path label focus colour change (#2717) 2026-04-11 14:06:15 +02:00
Veronica Berglyd Olsen
8fb4b02ef9 Remove the PDM badge 2026-04-11 13:59:41 +02:00
Veronica Berglyd Olsen
9ec26d4e87 Fix typo in colour label internal method 2026-04-11 13:55:42 +02:00
Veronica Berglyd Olsen
12c0e9d452 Fix colour label bug for document headers (#2716) 2026-04-11 13:54:32 +02:00
Veronica Berglyd Olsen
338cfa3cef Fix welcome dialog tooltip and accessibility (#2715) 2026-04-09 21:31:19 +02:00
Veronica Berglyd Olsen
7f82bcdaf6 Improve the accessibility of the list model on the welcome dialog and remove the tooltip 2026-04-09 21:17:18 +02:00
Veronica Berglyd Olsen
30672945d5 Cache all item data role enum values 2026-04-09 20:10:33 +02:00
Veronica Berglyd Olsen
dabb6f0b74 Update changelog (#2713) 2026-04-08 10:13:45 +02:00
Veronica Berglyd Olsen
8bf8950274 Update pr and issue reference in changelog 2026-04-08 10:08:33 +02:00
Veronica Berglyd Olsen
e4d9582a98 Update chgangelog 2026-04-08 10:03:22 +02:00
Veronica Berglyd Olsen
0a0e4fcd06 Adjusting the [Icon] colors (#2712) 2026-04-08 07:50:26 +02:00
HeyMyian
75bac0f6ea Adjusting the [Icon] colors 2026-04-07 14:48:32 +02:00
Veronica Berglyd Olsen
a670d0238f Add spin box fixed size settings (#2711) 2026-04-05 18:49:36 +02:00
Veronica Berglyd Olsen
861e2a9439 Update spinbox settings 2026-04-05 18:41:11 +02:00
Veronica Berglyd Olsen
c81f402ae2 Allow setting spin box size bu number of visible digits 2026-04-05 18:40:51 +02:00
Veronica Berglyd Olsen
cc3e2e2e40 Improve font handling for Qt 6.11 (#2710) 2026-04-05 17:20:22 +02:00
Veronica Berglyd Olsen
808d7db163 Use theme fonts in the UI instead of bold tags an local formatting 2026-04-05 17:12:31 +02:00
Veronica Berglyd Olsen
95c7b64de4 Switch to semi bold for the GUI 2026-04-05 16:15:23 +02:00
Veronica Berglyd Olsen
5265d67b7f Centralise how GUI font emphasis is handled 2026-04-05 15:36:55 +02:00
Veronica Berglyd Olsen
5d2df118de Release 26.1 Beta 2 (#2707) 2026-04-04 21:06:54 +02:00
Veronica Berglyd Olsen
13641575c2 Bump version and update changelog 2026-04-04 21:02:20 +02:00
Veronica Berglyd Olsen
c71dd3f3a4 Fix Qt 6.9 dependency issue (#2704) 2026-04-04 20:47:06 +02:00
Veronica Berglyd Olsen
7fad383060 Add test for debian package and update workflow names 2026-04-04 20:41:21 +02:00
Veronica Berglyd Olsen
1bab57de01 Update how Qt version is checked 2026-04-04 20:40:53 +02:00
Veronica Berglyd Olsen
db4c50a848 Post release fixes (#2702) 2026-04-02 19:50:16 +02:00
Veronica Berglyd Olsen
743bd8db5f Update actions in workflows 2026-04-02 19:04:15 +02:00
Veronica Berglyd Olsen
cffe75a6a8 Fix typo in changelog 2026-04-02 19:04:03 +02:00
Veronica Berglyd Olsen
ccd0d5c235 Release 26.1b1 (#2700) 2026-04-02 18:46:33 +02:00
Veronica Berglyd Olsen
1fd48b08cd Remove MacOS from the default build workflow 2026-04-02 18:42:09 +02:00
Veronica Berglyd Olsen
cfdfd25320 Add Mac release note 2026-04-02 18:36:56 +02:00
Veronica Berglyd Olsen
7952bd1c18 Bump version and update changelog 2026-04-02 18:34:28 +02:00
Veronica Berglyd Olsen
ab68cc8ecd Update lockfile 2026-04-02 17:53:49 +02:00
Veronica Berglyd Olsen
f65cb6fc6e Update translation files (#2699) 2026-04-02 17:47:56 +02:00
Veronica Berglyd Olsen
25b741f04e Update translation files 2026-04-02 17:33:37 +02:00
Veronica Berglyd Olsen
3563144a8e Improve screen reader support (#2698) 2026-04-02 17:27:12 +02:00
Veronica Berglyd Olsen
3e11bea0d4 Minor fixes 2026-04-02 17:08:03 +02:00
Veronica Berglyd Olsen
d23269fb7e Add count unit to project tree and novel view 2026-04-02 16:55:02 +02:00
Veronica Berglyd Olsen
4568e1cdb9 Add tooltips to all icon buttons 2026-04-02 16:07:21 +02:00
Veronica Berglyd Olsen
bc011b2230 Make the config layout understandable to the screen reader 2026-04-02 15:10:22 +02:00
Veronica Berglyd Olsen
770bad5e10 Improve opening documents from search and editor (#2697) 2026-03-29 17:49:45 +02:00
Veronica Berglyd Olsen
e079831f04 Allow Shift+Enter to open documents from project search in the viewer 2026-03-29 17:35:46 +02:00
Veronica Berglyd Olsen
7c1ed99de2 Allow editing tag source from editor tag 2026-03-29 17:14:54 +02:00
Veronica Berglyd Olsen
7d07929b16 Allow backwards search also to loop through documents (#2696) 2026-03-29 16:36:41 +02:00
Veronica Berglyd Olsen
dcf6bad34e Update docstring 2026-03-29 16:26:30 +02:00
Veronica Berglyd Olsen
2a3dc8a522 Update tests 2026-03-29 16:21:46 +02:00
Veronica Berglyd Olsen
b0690a7e42 Add support for looping through documents backwards when searching 2026-03-29 16:04:24 +02:00
Veronica Berglyd Olsen
3432974340 Add exclamation point to URL regex and update themes credits (#2695) 2026-03-28 19:58:15 +01:00
Veronica Berglyd Olsen
228983dfaf Add new themes to credits 2026-03-28 19:50:44 +01:00
Veronica Berglyd Olsen
0ead2f10ce Allow exclamation points in URLs (#2693) 2026-03-28 19:47:28 +01:00
Veronica Berglyd Olsen
4797daca72 Add colourblindness themes (#2694) 2026-03-28 19:39:11 +01:00
Veronica Berglyd Olsen
e801867d28 Merge branch 'main' into colourblindness_themes 2026-03-28 19:33:54 +01:00
Veronica Berglyd Olsen
13e55d8ff2 Add light themes for deuteranopia and tritanopia 2026-03-28 19:33:18 +01:00
Veronica Berglyd Olsen
c2d8884656 Add option for dotted underline for formatting tags and modifiers (#2692) 2026-03-28 18:34:41 +01:00
Veronica Berglyd Olsen
c9b1eeb740 Rename the variable in the highlighter 2026-03-28 17:13:50 +01:00
Veronica Berglyd Olsen
b436961875 Add setting for dotted underline on modifiers and codes 2026-03-28 17:07:58 +01:00
Veronica Berglyd Olsen
99e11e20b5 Add split document by cursor feature (#2688) 2026-03-22 15:00:41 +01:00
Veronica Berglyd Olsen
2a8b0efb66 Cache context menu translations 2026-03-22 14:54:39 +01:00
Veronica Berglyd Olsen
83a40c238c Add move text entry to main menu 2026-03-22 14:39:04 +01:00
Veronica Berglyd Olsen
60b7040241 Add test coverage 2026-03-22 14:13:56 +01:00
Veronica Berglyd Olsen
577773793c Use existing heading for new document if it exists at start of selection 2026-03-22 13:33:37 +01:00
Veronica Berglyd Olsen
7045b54e8f Move heading split function to text module 2026-03-22 13:12:36 +01:00
Veronica Berglyd Olsen
65c5cb599e Add a move text feature in the editor 2026-03-22 13:04:14 +01:00
Veronica Berglyd Olsen
c6859d2ead Replace UV with PDM (#2687) 2026-03-21 18:14:16 +01:00
Veronica Berglyd Olsen
57bea6b5b6 Fix pdm install command 2026-03-21 18:09:19 +01:00
Veronica Berglyd Olsen
551efc940d Update workflows 2026-03-21 18:05:28 +01:00
Veronica Berglyd Olsen
0590e4b13e Update scripts 2026-03-21 18:05:15 +01:00
Veronica Berglyd Olsen
14ca5688b5 Update docs with PDM info 2026-03-21 17:52:52 +01:00
Veronica Berglyd Olsen
f6698f5916 Remove uv lockfile and add pdm 2026-03-21 17:52:36 +01:00
Veronica Berglyd Olsen
4196031cdc Update readme (#2686) 2026-03-20 17:13:44 +01:00
Veronica Berglyd Olsen
c4627ca108 Merge branch 'main' into update_readme 2026-03-20 17:07:14 +01:00
Veronica Berglyd Olsen
3080270067 Add AI note 2026-03-20 17:06:31 +01:00
Veronica Berglyd Olsen
ad0cace563 Update the error window titles (#2684) 2026-03-18 19:52:53 +01:00
Veronica Berglyd Olsen
208098bfaa Add Anoia error 2026-03-18 18:10:37 +01:00
Veronica Berglyd Olsen
7c2050b374 Update the error window title choices 2026-03-18 18:01:25 +01:00
Veronica Berglyd Olsen
6068d00942 Improve error handling and reporting (#2683) 2026-03-17 18:57:57 +01:00
Veronica Berglyd Olsen
9196f327f6 Update tests 2026-03-17 18:50:35 +01:00
Veronica Berglyd Olsen
d90ebfc880 Cac he and report error messages when saving 2026-03-17 18:46:33 +01:00
Veronica Berglyd Olsen
38f48c0101 Add error cache to SharedData 2026-03-17 18:45:49 +01:00
Veronica Berglyd Olsen
c3bf5d97eb Set a minimum width for message boxes 2026-03-17 18:09:53 +01:00
Veronica Berglyd Olsen
fbc962102d Bump to 26.1 Alpha 2 (#2680) 2026-03-07 18:18:09 +01:00
Veronica Berglyd Olsen
6a82bf40fc Add formatting to the version number 2026-03-07 18:13:16 +01:00
Veronica Berglyd Olsen
726104ddbd Bump to 26.1 Alpha 2 2026-03-07 17:53:33 +01:00
Veronica Berglyd Olsen
1e288c98e3 Add shortcuts to move between paragraphs (#2679) 2026-03-07 17:25:05 +01:00
Veronica Berglyd Olsen
2303bc1048 Update docs 2026-03-07 17:20:38 +01:00
Veronica Berglyd Olsen
778664a294 Add test coverage 2026-03-07 17:17:27 +01:00
Veronica Berglyd Olsen
0bb1f9c657 Add editor shortcuts to skip between paragraphs (#2635) 2026-03-07 17:08:57 +01:00
Veronica Berglyd Olsen
1e68708a05 Add document header breadcrumbs (#2677) 2026-03-07 16:23:22 +01:00
Veronica Berglyd Olsen
255fe95fe7 Revert unintended change 2026-03-07 16:20:09 +01:00
Veronica Berglyd Olsen
a9dc27eaa6 Move the path label feature into a subclass 2026-03-07 16:17:43 +01:00
Veronica Berglyd Olsen
52dbe040a8 Make some minor improvements when clearing document headers 2026-03-07 16:12:17 +01:00
Veronica Berglyd Olsen
1f143bee9b Tweak icon and text alignment in document headers 2026-03-07 16:00:02 +01:00
Veronica Berglyd Olsen
ebcfaa73d7 Update tests 2026-03-07 15:10:45 +01:00
Veronica Berglyd Olsen
4de4bb777e Make each part of the document header path clickable (#2664) 2026-03-07 15:10:33 +01:00
Veronica Berglyd Olsen
9fb7d3373b Merge branch 'main' into doc_headers 2026-03-07 13:24:51 +01:00
Veronica Berglyd Olsen
66da3ac4ad Packaging updates (#2678) 2026-03-07 13:24:32 +01:00
Veronica Berglyd Olsen
b28620e929 Update workflows 2026-03-07 13:14:13 +01:00
Veronica Berglyd Olsen
fbc3115415 Add uv lock file 2026-03-07 13:14:05 +01:00
Veronica Berglyd Olsen
f3b3122cff Add room for font descent in document headers (#2674) 2026-03-07 12:51:28 +01:00
Veronica Berglyd Olsen
3d196d17e9 Harden I/O handling to account for PermissionError from pathlib (#2675) 2026-03-03 19:58:20 +01:00
Veronica Berglyd Olsen
0ff003890f Add test coverage 2026-03-03 19:34:01 +01:00
Veronica Berglyd Olsen
b050cdec42 Fix linting 2026-03-03 18:55:23 +01:00
Veronica Berglyd Olsen
3788a3ebb3 Add file system safe I/O wrapper functions 2026-03-02 23:06:35 +01:00
Veronica Berglyd Olsen
dd4e32c90e Add icon to status message 2026-03-02 22:58:54 +01:00
Veronica Berglyd Olsen
10685a2a20 Don't display full HTTP error in version info widget 2026-03-02 21:15:30 +01:00
Veronica Berglyd Olsen
44ba48e00d Add heading size setting for editor (#2670) 2026-02-18 15:33:48 +01:00
Veronica Berglyd Olsen
89bd79217b Update tests 2026-02-18 15:28:23 +01:00
Veronica Berglyd Olsen
de186645e0 Add a setting to disable editor header scaling 2026-02-18 15:28:11 +01:00
Veronica Berglyd Olsen
72cfda5b16 Switch to year-based versioning and update version info widget (#2669) 2026-02-15 14:36:38 +01:00
Veronica Berglyd Olsen
475d22e7bf Update about dialog 2026-02-15 14:24:38 +01:00
Veronica Berglyd Olsen
be5e9558b9 Update version info widget 2026-02-15 14:22:28 +01:00
Veronica Berglyd Olsen
9bb3620747 Add calendar and link icons 2026-02-15 14:21:57 +01:00
Veronica Berglyd Olsen
733ee6e17d Use year-based version numbers 2026-02-15 13:48:02 +01:00
Veronica Berglyd Olsen
7dd3a1c62f Improve Welcome dialog (#2668) 2026-02-14 17:49:29 +01:00
Veronica Berglyd Olsen
713667b606 Update tests and add test coverage 2026-02-14 17:28:50 +01:00
Veronica Berglyd Olsen
7135a1fd77 Allow selecting project to open with arrow keys without changing focus 2026-02-14 17:28:34 +01:00
Veronica Berglyd Olsen
f0a03fc658 Improve version info display 2026-02-14 16:05:36 +01:00
Veronica Berglyd Olsen
6252526985 Merge changes from release 2.8.2 (#2658) 2026-01-25 15:33:19 +01:00
Veronica Berglyd Olsen
baf2e617eb Merge release 2.8.2 into main 2026-01-25 15:28:47 +01:00
Veronica Berglyd Olsen
1bf096d93e Post release updates (#2657) 2026-01-25 15:27:22 +01:00
Veronica Berglyd Olsen
84187b9239 Backport icon theme updates from 2.9 dev branch 2026-01-25 15:16:01 +01:00
Veronica Berglyd Olsen
4c4a21085e Drop Ubuntu 25.04 build 2026-01-25 15:11:59 +01:00
Veronica Berglyd Olsen
dafccd5b38 Release 2.8.2 (#2655) 2026-01-25 14:52:10 +01:00
Veronica Berglyd Olsen
016073c6a9 Bump version and update changelog 2026-01-25 14:44:04 +01:00
Veronica Berglyd Olsen
7e85c70646 Alert when the loading of a spellcheck dictionary fails (#2654) 2026-01-25 14:27:23 +01:00
Veronica Berglyd Olsen
5934bc7c02 Open a dialog when the loading of spell checking fails (#2631) 2026-01-25 14:20:34 +01:00
Veronica Berglyd Olsen
97f84eca42 Add header promotion info to docs and update handling for HTML (#2653) 2026-01-25 14:00:27 +01:00
Veronica Berglyd Olsen
c1c29012c2 Update documentation on heading promotion 2026-01-25 13:52:40 +01:00
Veronica Berglyd Olsen
d1aaee951b Fix tests 2026-01-25 13:44:36 +01:00
Veronica Berglyd Olsen
cafd33a187 Add a marker for testing optional assets 2026-01-25 13:44:27 +01:00
Veronica Berglyd Olsen
d9d0d400c7 Use p tag for titles in HTML output 2026-01-25 13:43:33 +01:00
Veronica Berglyd Olsen
41807e1e3f Allow setting sizes of manuscript headings (#2650) 2026-01-20 20:24:13 +01:00
Veronica Berglyd Olsen
c97e4dc96e Fix and improve tests 2026-01-20 20:20:36 +01:00
Veronica Berglyd Olsen
baa4dd9a2f Make label capitalisation more consistent 2026-01-20 20:11:54 +01:00
Veronica Berglyd Olsen
e110cb8633 Sort the size and margin settings 2026-01-20 18:01:03 +01:00
Veronica Berglyd Olsen
3b7cad254b Add reset buttons to sizes and margins 2026-01-20 17:53:22 +01:00
Veronica Berglyd Olsen
6f9be00428 Remove old scale headings setting 2026-01-20 17:14:55 +01:00
Veronica Berglyd Olsen
6b019edaa7 Add font size settings for manuscript headings 2026-01-20 17:07:59 +01:00
Veronica Berglyd Olsen
9b5a7f96f6 Add a font size icon 2026-01-20 17:02:01 +01:00
Veronica Berglyd Olsen
d952b38a0f Allow using empty lines as margins in manuscript (#2649) 2026-01-20 16:46:53 +01:00
Veronica Berglyd Olsen
634d513e59 Add test coverage 2026-01-20 16:41:35 +01:00
Veronica Berglyd Olsen
5d63dfec67 Add blank line before headings 2026-01-19 21:50:36 +01:00
Veronica Berglyd Olsen
08d7328051 Add settings to insert empty lines instead of using margins 2026-01-19 21:50:17 +01:00
Veronica Berglyd Olsen
f53af56b57 Build settings update (#2647) 2026-01-19 21:32:47 +01:00
Veronica Berglyd Olsen
b61ec6820b Fix linting 2026-01-19 20:19:34 +01:00
Veronica Berglyd Olsen
0181c1209c Optimise loading of build settings icons 2026-01-19 19:52:07 +01:00
Veronica Berglyd Olsen
9d5c460696 Add setting for manuscript upper case headings 2026-01-19 19:28:42 +01:00
Veronica Berglyd Olsen
b176f60290 Move text margin labels around 2026-01-19 19:06:46 +01:00
Veronica Berglyd Olsen
a4e60f7d90 Fix icons for text margins 2026-01-19 19:03:12 +01:00
Veronica Berglyd Olsen
96f289a081 Move heading build settings to a new section 2026-01-19 18:54:44 +01:00
Veronica Berglyd Olsen
e6d186b6c3 Fix Windows launch file path handling (#2645) 2026-01-11 16:23:58 +01:00
Veronica Berglyd Olsen
5b104d47a8 Fix Ruff linting for 0.14.11 2026-01-11 16:13:37 +01:00
Veronica Berglyd Olsen
a93888f0c4 Update signed Windows launcher exe 2026-01-11 16:06:39 +01:00
Veronica Berglyd Olsen
eb38f77c47 Bump Windows launcher version number 2026-01-11 16:02:21 +01:00
Veronica Berglyd Olsen
fb4e4e8370 Fix launching project files with space in the path on Windows (#2643) 2026-01-11 16:01:11 +01:00
Veronica Berglyd Olsen
776e4dbb6c Further improve PDF build (#2639) 2026-01-06 16:33:49 +01:00
Veronica Berglyd Olsen
5762dd333e Move setDefaultFont call in PDF build 2026-01-05 23:01:10 +01:00
Veronica Berglyd Olsen
9ea9a72d1f Move the printer init code around a bit for clarity 2026-01-05 21:05:39 +01:00
Veronica Berglyd Olsen
ff5c046544 Mix the two solutions 2026-01-05 21:00:11 +01:00
Veronica Berglyd Olsen
69ac66f00e Change cursor while building, for long documents 2026-01-05 20:22:14 +01:00
Veronica Berglyd Olsen
80f9c69194 Remove PDF build paint device override and set no hinting instead (#2637) 2026-01-05 20:21:47 +01:00
Veronica Berglyd Olsen
f882acb7cf Increase PDF page limit (#2638) 2026-01-05 09:02:00 +01:00
Veronica Berglyd Olsen
d01ca0e515 Simply use 300 DPI for text instead 2026-01-05 01:22:17 +01:00
Veronica Berglyd Olsen
faae153671 Revert build PDF paint device override (#2637) 2026-01-04 22:45:41 +01:00
Veronica Berglyd Olsen
60d7bd301b Add Lucide icon theme (#2632) 2025-12-29 16:07:49 +01:00
Veronica Berglyd Olsen
266618dfd3 Bump Remix icons to 4.8 2025-12-29 15:41:12 +01:00
Veronica Berglyd Olsen
1ed4604cb4 Add credits and license information 2025-12-29 15:31:32 +01:00
Veronica Berglyd Olsen
e49336dffb Add Lucide icon theme as an optional theme 2025-12-29 15:21:34 +01:00
Veronica Berglyd Olsen
391f9bcedb Merge 2.8.1 into main (#2629) 2025-12-28 15:36:20 +01:00
Veronica Berglyd Olsen
a636bd88ce Merge 2.8.1 into main 2025-12-28 15:32:28 +01:00
Veronica Berglyd Olsen
e8dd93189a Post release fixes (#2628) 2025-12-28 15:31:15 +01:00
Veronica Berglyd Olsen
5d1bef6903 Fix debian alternative package names 2025-12-28 15:23:08 +01:00
Veronica Berglyd Olsen
a4ee79e285 Release 2.8.1 (#2626) 2025-12-28 14:12:32 +01:00
Veronica Berglyd Olsen
8c798099ef Bump version to 2.8.1 and update changelog 2025-12-28 14:01:44 +01:00
Veronica Berglyd Olsen
5104f99684 Fix theme docs and add docs version pinning (#2625) 2025-12-28 13:47:17 +01:00
Veronica Berglyd Olsen
b1a3d40d05 Add version pinning to localised docs 2025-12-28 13:41:41 +01:00
Veronica Berglyd Olsen
1d9fdb7367 Update docs on colour themes (#2619) 2025-12-28 12:55:51 +01:00
Veronica Berglyd Olsen
5cb154ce8b Fix input method query bug (#2623) 2025-12-28 10:43:28 +01:00
Veronica Berglyd Olsen
8a802aca90 Update test coverage 2025-12-26 15:06:34 +01:00
Veronica Berglyd Olsen
85e1d0966f Disable QVariant conversion for inputMethodQuery (#2622) 2025-12-26 15:06:23 +01:00
Veronica Berglyd Olsen
c04764d2cb Add CodeQL to release branch (#2621) 2025-12-22 12:07:05 +01:00
Veronica Berglyd Olsen
e55abe7089 Add CodeQl to release branch 2025-12-22 09:53:04 +01:00
Veronica Berglyd Olsen
3d475a2e9d Create CodeQL workflow (#2620) 2025-12-22 09:51:52 +01:00
Veronica Berglyd Olsen
aa83b5f29f Update CodeQL 2025-12-22 09:44:02 +01:00
Veronica Berglyd Olsen
d210c48d21 Create CodeQL workflow 2025-12-22 09:33:55 +01:00
Veronica Berglyd Olsen
9b934c3476 Post release fixes for 2.8 (#2613) 2025-12-14 23:06:23 +01:00
Veronica Berglyd Olsen
8883a293a1 Merge branch 'main' into post_build_fixes 2025-12-14 23:01:27 +01:00
Veronica Berglyd Olsen
911db66cf9 Generate Debian control file dynamically (#2612) 2025-12-14 23:00:49 +01:00
Veronica Berglyd Olsen
ced132b282 Generate Debian control file dynamically 2025-12-14 22:46:41 +01:00
Veronica Berglyd Olsen
04b49fd886 Merge 2.8 into main (#2611) 2025-12-14 20:29:55 +01:00
Veronica Berglyd Olsen
7064d61ae5 Undo project XML line wrapping 2025-12-14 20:26:23 +01:00
Veronica Berglyd Olsen
6d6bc05f6a Merge branch 'main' into merge_2.8 2025-12-14 20:23:11 +01:00
Veronica Berglyd Olsen
28962fa665 Fixes for Release 2.8 (#2610) 2025-12-14 20:21:00 +01:00
Veronica Berglyd Olsen
1509b34a31 Fix MacOS build script 2025-12-14 19:50:34 +01:00
Veronica Berglyd Olsen
2b2bd5e2ff Fix changelog 2025-12-14 19:47:42 +01:00
Veronica Berglyd Olsen
d02f1dc283 Release 2.8 (#2608) 2025-12-14 19:36:55 +01:00
Veronica Berglyd Olsen
275ce2a823 Bump version and update changelog 2025-12-14 19:33:01 +01:00
Veronica Berglyd Olsen
d06341cf12 Update translation files 2025-12-14 19:25:18 +01:00
Veronica Berglyd Olsen
8a234329d6 Add Qt6 SVG plugins as a direct dependency for Debian (#2607) 2025-12-14 19:17:10 +01:00
Veronica Berglyd Olsen
326caa5877 Add qt6-svg-plugins to .deb dependencies (#2604) 2025-12-14 18:39:29 +01:00
Veronica Berglyd Olsen
bfe42710e7 Overload editor mimedata insert (#2602) 2025-12-07 22:29:36 +01:00
Veronica Berglyd Olsen
a5e2531d2c Fix debug log message 2025-12-07 22:25:33 +01:00
Veronica Berglyd Olsen
13e23593ba Only insert text in editor if there actually is anything to insert (#2598) 2025-12-07 22:22:13 +01:00
Veronica Berglyd Olsen
9a58f2677c Bump to 2.9 Alpha 0 (#2597) 2025-11-30 14:40:55 +01:00
Veronica Berglyd Olsen
29f49660f6 Bump main branch to 2.9 Alpha 0 2025-11-30 14:30:28 +01:00
Veronica Berglyd Olsen
c2e6cb1f44 Merge 2.8 RC 1 into Release (#2596) 2025-11-30 14:28:04 +01:00
Veronica Berglyd Olsen
625be3ad11 Fix docs (#2595) 2025-11-30 14:08:06 +01:00
Veronica Berglyd Olsen
609eed9068 Fix broken link in docs 2025-11-30 14:04:46 +01:00
Veronica Berglyd Olsen
ddceabee6a Release 2.8 RC 1 (#2589) 2025-11-30 13:33:36 +01:00
Veronica Berglyd Olsen
8f01bdef78 Update changelog 2025-11-30 13:30:28 +01:00
Veronica Berglyd Olsen
924d3d324d Update base translation files for remaining languages 2025-11-30 13:25:35 +01:00
Veronica Berglyd Olsen
b31120b271 Update US English, Italian, Japanese and Norwegian 2025-11-30 13:25:15 +01:00
Veronica Berglyd Olsen
200a77bf45 Update docs 2025-11-29 20:25:46 +01:00
Veronica Berglyd Olsen
6223bf212f Update changelog and add new translation string 2025-11-29 20:25:37 +01:00
Veronica Berglyd Olsen
b1f64114dd Merge branch 'main' into release_2.8rc1 2025-11-29 20:02:34 +01:00
Veronica Berglyd Olsen
b2148e5440 Allow overriding language for manuscripts (#2593) 2025-11-29 20:02:12 +01:00
Veronica Berglyd Olsen
8b86f901dc Add a shared function to translate language names 2025-11-29 19:58:54 +01:00
Veronica Berglyd Olsen
830a2d9c40 Add language meta data to HTML export 2025-11-29 19:50:53 +01:00
Veronica Berglyd Olsen
2045927e95 Add a language override setting to manuscript build settings (#2328) 2025-11-29 19:50:28 +01:00
Veronica Berglyd Olsen
1b871fc645 Update US English, Norwegian and Japanese 2025-11-29 15:02:49 +01:00
Veronica Berglyd Olsen
b66f00846d Update changelog and translation files 2025-11-29 13:52:20 +01:00
Veronica Berglyd Olsen
cf795c8f26 Merge branch 'main' into release_2.8rc1 2025-11-29 13:49:50 +01:00
Veronica Berglyd Olsen
d894375d35 Improve example project creation (#2592) 2025-11-29 13:49:10 +01:00
Veronica Berglyd Olsen
d05ed6fe3d Improve test coverage 2025-11-29 13:45:12 +01:00
Veronica Berglyd Olsen
471f841218 Handle cases where the user cancels the example project creation (#2590) 2025-11-29 13:45:00 +01:00
Veronica Berglyd Olsen
72880efafb Fix typo in GUI label 2025-11-28 16:54:32 +01:00
Veronica Berglyd Olsen
9ecac4679d Update translation file 2025-11-28 09:26:50 +01:00
Veronica Berglyd Olsen
896269228e Bump version and update changelog 2025-11-28 09:24:44 +01:00
Veronica Berglyd Olsen
c0a67341f8 Refactor Vim mode (#2588) 2025-11-27 19:46:57 +01:00
Veronica Berglyd Olsen
5efca5e542 Rephrase text in credits 2025-11-27 19:43:47 +01:00
Veronica Berglyd Olsen
0f4370657a Reshuffle the escape key processing again 2025-11-27 19:41:21 +01:00
Veronica Berglyd Olsen
e492643cc7 Simplify the Vim mode checker function 2025-11-27 15:20:18 +01:00
Veronica Berglyd Olsen
c49cfdcece Make sure global escape still works in Vim mode 2025-11-27 15:17:32 +01:00
Veronica Berglyd Olsen
2cea001340 Update credit for Vim mode 2025-11-27 15:02:19 +01:00
Veronica Berglyd Olsen
e7e80a9c3b Update credits 2025-11-26 13:26:56 +01:00
Veronica Berglyd Olsen
e0081130af Add some more detail to the Vim mode docs 2025-11-26 13:19:29 +01:00
Veronica Berglyd Olsen
5ff9911cc0 Re-format markdown to rst 2025-11-26 13:11:46 +01:00
Veronica Berglyd Olsen
bde1de5630 Rename vim mode docs to rst 2025-11-26 12:50:06 +01:00
Veronica Berglyd Olsen
eb3e3e5094 Move Vim mode setting to its own section and add confirmation box 2025-11-26 12:17:13 +01:00
Veronica Berglyd Olsen
1033a3b3b3 Update GUI questions 2025-11-26 12:16:37 +01:00
Veronica Berglyd Olsen
498116b66e Update tests 2025-11-26 12:02:41 +01:00
Veronica Berglyd Olsen
5f68db7ab7 Change how multi-line error messages are handled 2025-11-26 11:57:22 +01:00
Veronica Berglyd Olsen
a487d6ac02 Add Vim mode setting to Preferences and fix editor reinit 2025-11-14 19:40:10 +01:00
Veronica Berglyd Olsen
2f92da9753 Move processing of Vim commands to keyPressEvent handler 2025-11-14 19:19:14 +01:00
Veronica Berglyd Olsen
e4d08cc117 Merge branch 'main' into refactor_vim_mode 2025-11-14 19:02:24 +01:00
Veronica Berglyd Olsen
746ebb7974 Add Vim mode (#2499) 2025-11-14 18:53:55 +01:00
Veronica Berglyd Olsen
2d0cf16029 Merge branch 'main' into vim-mode 2025-11-13 19:27:58 +01:00
idealemu
c3b15d7a8b Merge branch 'vim-mode' of github.com:idealemu/novelWriter into vim-mode 2025-11-13 18:40:16 +01:00
idealemu
9754a9e2e5 Fixed coverage for de command and added docs 2025-11-13 18:39:55 +01:00
Veronica Berglyd Olsen
466ade8d72 Fix inserting line break when auto-padding is enabled (#2587) 2025-11-13 17:21:39 +01:00
Veronica Berglyd Olsen
ea9b4a9952 Add coverage of bug #2586 2025-11-13 17:07:12 +01:00
Veronica Berglyd Olsen
12cee5f791 Make sure we don't insert padding if there are no characters (#2586) 2025-11-13 17:06:18 +01:00
Veronica Berglyd Olsen
8c2ede040f Fix linting errors 2025-11-09 22:14:30 +01:00
Veronica Berglyd Olsen
4864aa6c8e Merge branch 'main' into pr/idealemu/2499 2025-11-09 22:11:44 +01:00
idealemu
f448881423 Added d$ motion, test coverage, and docs 2025-11-09 15:47:22 +01:00
idealemu
5dc0e3889e Added de and db commands and tests 2025-11-09 15:09:42 +01:00
Veronica Berglyd Olsen
ea7101d92b Fix dialog closing not keeping settings (#2585) 2025-11-08 20:36:20 +01:00
Veronica Berglyd Olsen
5e28f6f70f Fix broken test 2025-11-08 20:32:20 +01:00
Veronica Berglyd Olsen
b0f6f340d6 Update how writing stats dialog is closed 2025-11-08 20:27:06 +01:00
Veronica Berglyd Olsen
fd8f300518 Fix the reject overload in NDialog class 2025-11-08 20:26:49 +01:00
Veronica Berglyd Olsen
16653615f2 Customise the font select dialog (#2584) 2025-11-08 17:25:42 +01:00
Veronica Berglyd Olsen
2b5c53640d Use a safer way to replace the font dialog buttons 2025-11-08 17:21:48 +01:00
Veronica Berglyd Olsen
c0f85022cf Rename some variables in tests 2025-11-08 16:56:41 +01:00
Veronica Berglyd Olsen
7adbb9c559 Update module docstring 2025-11-08 16:56:06 +01:00
Veronica Berglyd Olsen
d9d269d601 Update function return type 2025-11-08 16:46:13 +01:00
Veronica Berglyd Olsen
06101cc31e Add test coverage of custom font dialog 2025-11-08 16:42:05 +01:00
Veronica Berglyd Olsen
ffc3953f91 Use geometry for window sizes in config 2025-11-08 16:31:58 +01:00
Veronica Berglyd Olsen
af57b9af20 Update tests 2025-11-08 16:28:33 +01:00
Veronica Berglyd Olsen
48e8772813 Add a customised font dialog 2025-11-08 16:28:21 +01:00
idealemu
bae385ccb0 Temporary docs for vim-mode in markdown 2025-11-08 12:30:36 +01:00
Veronica Berglyd Olsen
1d28fa52f9 Increase spacing on push buttons (#2582) 2025-11-05 20:04:07 +01:00
Veronica Berglyd Olsen
69ddd35cad Add more space between icon and text on push buttons 2025-11-05 19:59:15 +01:00
Veronica Berglyd Olsen
61cbbc1b55 Fix centre on screen/app issues (#2581) 2025-11-03 18:32:49 +01:00
Veronica Berglyd Olsen
1d4b57b5c6 Fix a couple of issues with PR #2580 2025-11-03 18:28:27 +01:00
Veronica Berglyd Olsen
30f62a80f3 Centre windows at startup (#2580) 2025-11-03 18:08:47 +01:00
Veronica Berglyd Olsen
a11dd760db Fix tests 2025-11-03 17:55:59 +01:00
Veronica Berglyd Olsen
8d896e8be8 Also centre Welcome dialog and message boxes 2025-11-03 17:55:50 +01:00
Veronica Berglyd Olsen
be9270a0f7 Centre app window on the screen if it is auto-resized or always if a config option is set 2025-11-03 17:54:54 +01:00
Veronica Berglyd Olsen
b7ceb1776c Block formatting on meta data and headings (#2575) 2025-11-02 18:07:39 +01:00
Veronica Berglyd Olsen
eb0d29c780 Improve error handling and test coverage 2025-11-02 17:36:27 +01:00
Veronica Berglyd Olsen
006c0c88ce Flash editor header red when the user tries to format text that cannot be formatted 2025-11-02 17:25:13 +01:00
Veronica Berglyd Olsen
00439369a8 Block formatting on keyword and heading lines 2025-11-02 16:49:38 +01:00
Veronica Berglyd Olsen
d2944d5d10 Reduce samples (#2574) 2025-11-02 16:10:50 +01:00
Veronica Berglyd Olsen
f069b4e85e Reduce samples to just Alice in Wonderland and fix some formatting 2025-11-02 16:04:29 +01:00
Veronica Berglyd Olsen
e6d2b0c9b3 Improve sample project creation and usage (#2572) 2025-11-01 22:17:18 +01:00
Veronica Berglyd Olsen
2a5da2c155 Add Alice in Wonderland example text 2025-11-01 22:09:02 +01:00
Veronica Berglyd Olsen
f9e297922d Update tests 2025-11-01 22:08:50 +01:00
Veronica Berglyd Olsen
cffa7c6dd8 Fix some syntax highlighting issues 2025-11-01 22:08:33 +01:00
Veronica Berglyd Olsen
cd7c2baf8e Remove the special comments and revert back to previous behaviour 2025-11-01 20:53:10 +01:00
Veronica Berglyd Olsen
f960cd9589 Fix pyright issue and tests 2025-11-01 17:17:26 +01:00
Veronica Berglyd Olsen
939c58f441 Make a few improvements 2025-11-01 17:06:43 +01:00
Veronica Berglyd Olsen
1775614fe2 Extend sample project 2025-11-01 16:58:38 +01:00
Veronica Berglyd Olsen
8c24b80950 Improve reset project behaviour when copying a project 2025-11-01 16:58:22 +01:00
Veronica Berglyd Olsen
1a62ad2608 Fix typo in run_tests script 2025-11-01 15:26:00 +01:00
Veronica Berglyd Olsen
a8138ca579 Populate empty project list by an entry that creates a sample project 2025-11-01 15:24:07 +01:00
Veronica Berglyd Olsen
863d888717 Upgrade Font Awesome icons to version 7.1 2025-11-01 15:13:26 +01:00
Veronica Berglyd Olsen
0bf72def78 Rename assets build workflow (#2568) 2025-10-29 21:30:56 +01:00
Veronica Berglyd Olsen
b4e4cd9e9a Rename assets build workflow 2025-10-29 18:50:41 +01:00
Veronica Berglyd Olsen
df7fd37214 Split up build workflows (#2567) 2025-10-29 18:47:05 +01:00
Veronica Berglyd Olsen
cb36ee03eb Split up build workflows 2025-10-29 17:45:07 +01:00
Veronica Berglyd Olsen
396b874a42 Release 2.8b1 (#2565) 2025-10-29 16:52:37 +01:00
Veronica Berglyd Olsen
16c9ce995f Add missing entries in changelog 2025-10-29 16:24:34 +01:00
Veronica Berglyd Olsen
35a1fdddf1 Fix typos and improve clarity in CHANGELOG.md 2025-10-29 07:57:21 +01:00
Veronica Berglyd Olsen
703c9ade71 Minor fixes to the changelog 2025-10-29 00:02:56 +01:00
Veronica Berglyd Olsen
81ac5a4231 Update changelog 2025-10-28 23:45:52 +01:00
Veronica Berglyd Olsen
9982cc042f Bump version to 2.8 Beta 1 2025-10-28 22:10:23 +01:00
Veronica Berglyd Olsen
09f1793d63 Update tips & tricks in docs (#2564) 2025-10-28 22:09:11 +01:00
Veronica Berglyd Olsen
d8961c4093 Add a tip about line height in the docs (#2559) 2025-10-28 22:02:54 +01:00
Veronica Berglyd Olsen
d830315cfc Update button and icon scales (#2563) 2025-10-28 21:50:59 +01:00
Veronica Berglyd Olsen
ac7e31bdd9 Fix tests 2025-10-28 21:46:33 +01:00
Veronica Berglyd Olsen
72e274a4c3 Adjust the size of alert icon and the colours of the status bar LEDs 2025-10-28 21:18:36 +01:00
Veronica Berglyd Olsen
1fdabe3a26 Fix size of various icons and buttons (#2561) 2025-10-28 21:12:49 +01:00
Veronica Berglyd Olsen
df2840bf9f Dynamically update spell check dictionaries in the menu (#2562) 2025-10-28 20:15:02 +01:00
Veronica Berglyd Olsen
2b00831465 Fix linting error and move spell check update slot to the correct location 2025-10-28 20:09:38 +01:00
Reproog
ad34d45d0b Update novelwriter/guimain.py
Co-authored-by: Veronica Berglyd Olsen <1619840+vkbo@users.noreply.github.com>
2025-10-28 16:14:30 +01:00
Reproog
df77fb67c6 Update novelwriter/gui/mainmenu.py
added above def updateSpellCheckLanguages(self) -> None:
    @pyqtSlot()

Co-authored-by: Veronica Berglyd Olsen <1619840+vkbo@users.noreply.github.com>
2025-10-28 16:14:17 +01:00
Christian Zeitner
e3168163c2 Put loading functions in a separate Method and called it, when Add Dictionaries Window is closed. 2025-10-28 13:50:20 +01:00
Veronica Berglyd Olsen
2f7b04534d Fix button colour bug (#2557) 2025-10-27 22:57:42 +01:00
Veronica Berglyd Olsen
9628712810 Update documentation 2025-10-27 22:53:37 +01:00
Veronica Berglyd Olsen
e7ee41fe4e Fix editor toolbar button colours 2025-10-27 22:48:01 +01:00
Veronica Berglyd Olsen
8dc21fbb66 Issue a warning if a requested colour does not exist, and allow reset of icon colours 2025-10-27 22:47:34 +01:00
Veronica Berglyd Olsen
81a95aba28 Fix dimmed novel selector (#2556) 2025-10-27 22:17:11 +01:00
Veronica Berglyd Olsen
0544599303 Fix brush for disabled novel selector (#2482) 2025-10-27 22:12:04 +01:00
Veronica Berglyd Olsen
7381a4433c Merge branch 'main' into vim-mode 2025-10-27 21:40:00 +01:00
Veronica Berglyd Olsen
b60cbdf5f1 Fix missing workflow permissions (#2555) 2025-10-27 21:38:29 +01:00
Veronica Berglyd Olsen
4e61c6c4dd Merge branch 'main' into update_workflows 2025-10-27 21:33:25 +01:00
Veronica Berglyd Olsen
d2582b0118 Add permissions to dependency assets job 2025-10-27 21:30:57 +01:00
Veronica Berglyd Olsen
dc89935b7f Add permissions to workflows (#2554) 2025-10-27 21:28:08 +01:00
Veronica Berglyd Olsen
23b2ca9af4 Add read permission to all build jobs 2025-10-27 21:22:32 +01:00
Veronica Berglyd Olsen
7bbd2042ae Add permissions to test and linting jobs 2025-10-27 21:18:26 +01:00
Veronica Berglyd Olsen
2d191c87a0 Update buttons and manuscript build (#2553) 2025-10-27 21:12:59 +01:00
Veronica Berglyd Olsen
d9d8e54ed3 Add am auto-update button to manuscript build settings 2025-10-27 21:02:50 +01:00
Veronica Berglyd Olsen
d3b0a48779 Make manuscript tool copy button an action button 2025-10-27 21:01:21 +01:00
Veronica Berglyd Olsen
a8a6d199d1 Always use scrollable combo box and manually update the style sheet in build settings instead 2025-10-27 20:01:25 +01:00
Veronica Berglyd Olsen
cd8cc81b5f Themes and fixes (#2506) 2025-10-27 19:46:55 +01:00
HeyMyian
27771f3565 Adding [Icon] block where missing 2025-10-27 19:42:29 +01:00
HeyMyian
bae59c07db Jewel Case whitespace was missing 2025-10-27 18:51:25 +01:00
HeyMyian
cc72d1018b New theme pair: Jewel Case 2025-10-27 18:40:03 +01:00
HeyMyian
7996108e62 Color adjustments 2025-10-27 18:37:14 +01:00
Myian
53522ca5b4 Merge branch 'main' into theme_fixes 2025-10-27 16:51:54 +01:00
Veronica Berglyd Olsen
55df8a5adf Merge branch 'main' into pr/idealemu/2499 2025-10-26 21:02:53 +01:00
Veronica Berglyd Olsen
b31eb524c3 Update readme (#2550) 2025-10-26 20:59:31 +01:00
Veronica Berglyd Olsen
31437f3d3e Tune the readme a little 2025-10-26 20:25:03 +01:00
Veronica Berglyd Olsen
34ecfba230 Remove the source section of the readme as it's also in teh contributing guide 2025-10-26 20:18:36 +01:00
Veronica Berglyd Olsen
75859ec106 Make icon colours themable (#2549) 2025-10-26 14:27:59 +01:00
Veronica Berglyd Olsen
d6911ed39b Fix tests 2025-10-26 14:24:00 +01:00
Veronica Berglyd Olsen
073838af6e Update theme files 2025-10-26 14:16:20 +01:00
Veronica Berglyd Olsen
4a94ab86c9 Add sidebar icon colour setting and rename format icon settings 2025-10-26 14:16:05 +01:00
Veronica Berglyd Olsen
f74b151c53 Add default icon colours to all themes 2025-10-26 14:02:55 +01:00
Veronica Berglyd Olsen
6db67e909d Add icon colour settings to themes and enforce them on all GUI icons 2025-10-26 14:02:18 +01:00
Veronica Berglyd Olsen
2c1c46b98d Add syntax colour for whitespace (#2548) 2025-10-26 12:52:08 +01:00
Veronica Berglyd Olsen
ba01a2a219 Update documentation 2025-10-26 12:46:01 +01:00
Veronica Berglyd Olsen
0a5261a68c Update all themes 2025-10-26 12:44:23 +01:00
Veronica Berglyd Olsen
61d591e86e Add theme field for white space 2025-10-26 12:38:32 +01:00
Veronica Berglyd Olsen
e032ef5aa5 Minor fixes (#2546) 2025-10-26 12:35:09 +01:00
Veronica Berglyd Olsen
c4e9774ffa Update readmes 2025-10-26 12:06:56 +01:00
Veronica Berglyd Olsen
5a4930f860 Fix role for close buttons 2025-10-26 12:06:45 +01:00
Veronica Berglyd Olsen
66f445c341 Manuscript theme update fix (#2545) 2025-10-26 03:20:40 +01:00
Veronica Berglyd Olsen
f2c2833985 Update test coverage 2025-10-26 03:16:22 +01:00
Veronica Berglyd Olsen
a703e0bb7d Update tests and add more debug output 2025-10-26 02:40:50 +01:00
Veronica Berglyd Olsen
e0bd7d82fb Flip the boolean for scrollable combo boxes 2025-10-26 02:07:55 +01:00
Veronica Berglyd Olsen
8b02c95f51 Add theme update handling to manuscript build settings 2025-10-26 02:04:03 +01:00
Veronica Berglyd Olsen
e492c6575d Add theme update handling to manuscript build tool 2025-10-26 02:00:04 +01:00
Veronica Berglyd Olsen
9339c9ff62 Standardise push buttons (#2544) 2025-10-26 00:16:33 +02:00
Veronica Berglyd Olsen
a02254f5d5 Make minor improvements to the code and fix test on MacOS 2025-10-26 00:12:37 +02:00
Veronica Berglyd Olsen
af36a3b1bf Remove extra qtbase translations for buttons 2025-10-25 23:55:29 +02:00
Veronica Berglyd Olsen
5f34e924d1 Fix broken tests 2025-10-25 23:53:18 +02:00
Veronica Berglyd Olsen
ce939a4053 Clean up button types 2025-10-25 23:52:56 +02:00
Veronica Berglyd Olsen
c9c2b35455 Update dialog buttons on all dialogs and tools 2025-10-25 23:38:19 +02:00
Veronica Berglyd Olsen
1b0c339845 Add more icons 2025-10-25 23:31:47 +02:00
Veronica Berglyd Olsen
2d67cb7dcc Update tests and test coverage 2025-10-25 22:37:19 +02:00
Veronica Berglyd Olsen
1938969a63 Update icon themes 2025-10-25 21:42:39 +02:00
Veronica Berglyd Olsen
bb1d90213b Update standard dialog boxes 2025-10-25 21:38:30 +02:00
Veronica Berglyd Olsen
096686457d Add a standard button generator 2025-10-25 20:47:32 +02:00
Veronica Berglyd Olsen
ba5b2af394 Allow repeated named comments (#2543) 2025-10-22 23:19:11 +02:00
Veronica Berglyd Olsen
f23ce71620 Add stepwise and rerun commands to test runner script 2025-10-22 23:12:27 +02:00
Veronica Berglyd Olsen
10f0f6440b Extend tests 2025-10-22 23:12:11 +02:00
Veronica Berglyd Olsen
20e1126a62 Allow named comments to be repeated (#2483) 2025-10-22 23:11:56 +02:00
Veronica Berglyd Olsen
31b512e3c9 Fix typos in docs (#2542) 2025-10-22 22:47:13 +02:00
Veronica Berglyd Olsen
979d65e444 Merge branch 'main' into fix_docs 2025-10-22 22:43:06 +02:00
Veronica Berglyd Olsen
59035ae96b Clean up pkgutils.py (#2541) 2025-10-22 22:39:05 +02:00
Veronica Berglyd Olsen
ede6a94665 Drop the pip command from pkgutils.py 2025-10-22 22:32:45 +02:00
Veronica Berglyd Olsen
3dd86a77e2 Switch to UV tooling (#2540) 2025-10-22 22:20:15 +02:00
Veronica Berglyd Olsen
3ceaadd0c0 Fix outdated docstring 2025-10-22 22:07:50 +02:00
Veronica Berglyd Olsen
9640d95cef Fix docs a little 2025-10-22 22:02:40 +02:00
Veronica Berglyd Olsen
b3c18001e2 Add build for Ubuntu 26.04 2025-10-22 21:57:20 +02:00
Veronica Berglyd Olsen
df2766d80e Update linting 2025-10-22 21:26:38 +02:00
Veronica Berglyd Olsen
e676bdc322 Drop support for Python 3.10 2025-10-22 21:23:57 +02:00
Veronica Berglyd Olsen
2d7a42d918 Remove requirements files 2025-10-22 21:17:18 +02:00
Veronica Berglyd Olsen
06cb128876 Remove dependencies on requirements files and generate when needed 2025-10-22 21:11:20 +02:00
Veronica Berglyd Olsen
0b79bcd4b4 Fix assets build job 2025-10-22 19:35:35 +02:00
Veronica Berglyd Olsen
687bcc2779 Update MacOS build 2025-10-22 19:30:36 +02:00
Veronica Berglyd Olsen
41c58a52e3 Update Debian build 2025-10-19 00:19:47 +02:00
Veronica Berglyd Olsen
e21d944461 Fix mac workflow and update linting job 2025-10-18 23:23:46 +02:00
Veronica Berglyd Olsen
359d5f36b5 Remove debug settings from workflows 2025-10-18 23:17:53 +02:00
Veronica Berglyd Olsen
e66f19914e Fix case conflict on MacOS and Windows 2025-10-18 23:14:33 +02:00
Veronica Berglyd Olsen
a6e29f0ded Add more debug output 2025-10-18 19:11:01 +02:00
Veronica Berglyd Olsen
40363068e3 Update Windows workflow and try to fix MacOS 2025-10-18 18:51:55 +02:00
Veronica Berglyd Olsen
af86448385 Add setuptools to MacOS workflow 2025-10-18 18:30:58 +02:00
Veronica Berglyd Olsen
177d39c2a3 Move checkout source further up 2025-10-18 18:25:01 +02:00
Veronica Berglyd Olsen
7a9464c592 Update MacOS and Linux workflows 2025-10-18 18:20:13 +02:00
Veronica Berglyd Olsen
4aef01ef32 Make sure only novelwriter source files are included in coverage 2025-10-18 18:08:40 +02:00
Veronica Berglyd Olsen
b4c9d7c76c Fix coverage reporting 2025-10-18 17:58:59 +02:00
Veronica Berglyd Olsen
08d37dd9e8 Fix bug in Linux test workflow 2025-10-18 17:53:01 +02:00
Veronica Berglyd Olsen
10193520a4 Update Linux test workflows 2025-10-18 17:46:47 +02:00
Veronica Berglyd Olsen
c1968ba4e3 Add dependency groups to pyproject and drop pytest-cov dependency 2025-10-18 17:41:25 +02:00
Veronica Berglyd Olsen
47ecf2e886 Fix typos 2025-10-15 09:03:51 +02:00
Veronica Berglyd Olsen
8642086d34 Update CI/CD (#2538) 2025-10-13 19:37:56 +02:00
Veronica Berglyd Olsen
b04dadaa45 Add Python 3.14 to classifiers 2025-10-13 19:33:26 +02:00
Veronica Berglyd Olsen
a5513cc504 Add Python 3.14 and update actions 2025-10-13 19:23:56 +02:00
Veronica Berglyd Olsen
fc622c76a4 Stop showing index rebuild dialog on upgrades (#2537) 2025-10-05 17:52:40 +02:00
Veronica Berglyd Olsen
050e3b09ad Fix test coverage 2025-10-05 17:39:48 +02:00
Veronica Berglyd Olsen
850976335c Don't show index rebuild dialog when just upgrading index 2025-10-05 17:18:42 +02:00
Veronica Berglyd Olsen
0344701f1b Add helper function to combine JSON strings as larger JSON file 2025-10-05 17:13:40 +02:00
Veronica Berglyd Olsen
04198f3ede Remove quiet flag from index rebuild 2025-10-05 17:13:08 +02:00
Veronica Berglyd Olsen
1b671abc05 Add colour to vim mode label 2025-10-04 20:04:35 +02:00
Veronica Berglyd Olsen
0b973d5135 Fix i18n of vim mode 2025-10-04 19:26:07 +02:00
Veronica Berglyd Olsen
b2324a8689 Add the last selection type enum value 2025-10-04 19:05:20 +02:00
Veronica Berglyd Olsen
8be0c3c9b0 Merge branch 'main' into pr/idealemu/2499 2025-10-04 19:04:16 +02:00
Veronica Berglyd Olsen
2bd104705a Minor refactoring and linting (#2536) 2025-10-04 18:53:04 +02:00
Veronica Berglyd Olsen
3d55b49ee6 Update MacOS tests to run on latest 2025-10-04 18:48:51 +02:00
Veronica Berglyd Olsen
42352e9500 Add some more type constants 2025-10-04 18:42:20 +02:00
Veronica Berglyd Olsen
100aad1256 Update linting due to new Ruff rules 2025-10-04 18:36:44 +02:00
Veronica Berglyd Olsen
703d37c3e2 Fix a few more cursor enums and remove unused variable 2025-10-04 18:29:43 +02:00
Veronica Berglyd Olsen
160d15b9b7 Refactor vim mode handling 2025-10-04 18:23:24 +02:00
Veronica Berglyd Olsen
b3a8fc92d0 Update comments in tests 2025-10-04 17:48:57 +02:00
Veronica Berglyd Olsen
fbee69a418 Clean up some minor details 2025-10-04 17:34:02 +02:00
Veronica Berglyd Olsen
31d139aecf Fix new linting issues 2025-10-04 17:22:51 +02:00
Veronica Berglyd Olsen
8be040a9b4 Move vim mode functions 2025-10-04 17:16:02 +02:00
Veronica Berglyd Olsen
5cb47ac5b3 Add more cursor enum constants 2025-10-04 17:14:38 +02:00
Veronica Berglyd Olsen
b7c54779ac Add the vimMode setting to the config file 2025-10-04 16:59:51 +02:00
Veronica Berglyd Olsen
49d23c06a4 Reformat the Vim mode code 2025-10-04 16:57:39 +02:00
idealemu
d0efe8d8d9 Refactor handleVim 2025-09-16 17:58:55 +02:00
idealemu
84c6faa419 Refactor vim tests 2025-09-16 17:39:57 +02:00
idealemu
b23ffd3c19 Refactor vim tests 2025-09-16 17:28:50 +02:00
idealemu
eeefa85e69 Add b and e commands and their tests 2025-09-16 16:58:54 +02:00
Veronica Berglyd Olsen
cbf055bebc Fix imports 2025-09-15 19:44:22 +02:00
idealemu
eee0cc5394 Fix syntax 2025-09-15 19:31:43 +02:00
idealemu
a858c8b43c Fix, new commands, and bump test coverage 2025-09-15 19:31:16 +02:00
idealemu
b7497fd669 Merge branch 'main' into vim-mode 2025-09-15 17:47:02 +02:00
Veronica Berglyd Olsen
98cdd4eedf Merge 2.7.5 (#2524) 2025-09-14 19:48:18 +02:00
Veronica Berglyd Olsen
4d398f170d Add back attribute lost when merging 2025-09-14 19:42:36 +02:00
Veronica Berglyd Olsen
f4c56a1948 Merge release 2.7.5 2025-09-14 19:37:15 +02:00
Veronica Berglyd Olsen
e72bfe1114 Post release fixes (#2523) 2025-09-14 19:28:31 +02:00
Veronica Berglyd Olsen
f019a3cd0c Move the Apache license file back to setup 2025-09-14 19:24:32 +02:00
Veronica Berglyd Olsen
a37482aaad Pin windows build to 2022 image 2025-09-14 18:54:42 +02:00
Veronica Berglyd Olsen
bb01d0e5ae Fix debian build 2025-09-14 18:37:23 +02:00
Veronica Berglyd Olsen
b61aec9212 Release 2.7.5 (#2521) 2025-09-14 17:43:05 +02:00
Veronica Berglyd Olsen
c1d1330350 Bump version and update changelog 2025-09-14 17:37:58 +02:00
HeyMyian
25a1ecc99b Catppuccin tooltips 2025-09-13 23:25:43 +02:00
Veronica Berglyd Olsen
6ed29cfde9 Adjust windows for IME conversion suggestions to not cover text (#2518) 2025-09-13 18:47:29 +02:00
Veronica Berglyd Olsen
da6b9b0980 Add more comments 2025-09-13 15:48:33 +02:00
Veronica Berglyd Olsen
410d8bfe13 Add test coverage 2025-09-13 15:27:38 +02:00
Veronica Berglyd Olsen
42f0d71ecf Clean up types 2025-09-12 22:01:17 +02:00
Amber Flina
8a01ffa832 Other two linters 2025-09-11 16:32:10 -03:00
Amber Flina
bad03c45a0 Linting 2025-09-11 16:26:42 -03:00
Amber Flina
bb876b55fc Handle IMEs 2025-09-11 16:26:42 -03:00
HeyMyian
a1da73adaa New theme pair: Rosé Pine 2025-09-04 21:21:34 +02:00
HeyMyian
37516dda0e Rename Catppuccin files and change some colours 2025-09-04 21:20:26 +02:00
HeyMyian
edd31bee8e Merge branch 'theme_fixes' of https://github.com/HeyMyian/novelWriter into theme_fixes 2025-09-02 21:06:19 +02:00
HeyMyian
5806b9f276 Credits 2025-09-02 21:06:11 +02:00
Veronica Berglyd Olsen
96841bd7b1 Merge branch 'main' into theme_fixes 2025-09-02 21:05:10 +02:00
HeyMyian
67bd25145d Merge branch 'theme_fixes' of https://github.com/HeyMyian/novelWriter into theme_fixes 2025-09-02 21:02:40 +02:00
HeyMyian
635145ea70 Whitespace... 2025-09-02 20:59:52 +02:00
HeyMyian
85c079db70 Change Floral Midnight to be distinct from Catppuccin 2025-09-02 20:58:59 +02:00
HeyMyian
5944984efb Add two Catppuccin flavors 2025-09-02 20:58:28 +02:00
idealemu
4c319bd068 Remove redundant check 2025-08-31 15:58:57 +02:00
idealemu
db80a2e0f6 mend 2025-08-31 15:48:34 +02:00
idealemu
c2fbb5cf22 Test coverage of motions 2025-08-31 15:47:41 +02:00
Veronica Berglyd Olsen
3be8eb4f87 Fix auto complete crash (#2511) 2025-08-31 15:35:57 +02:00
Veronica Berglyd Olsen
08d2a5fa95 Fix linting errors from updated Ruff version 2025-08-31 15:27:55 +02:00
Veronica Berglyd Olsen
d69d2234c4 Rename completer signal 2025-08-31 15:23:33 +02:00
Veronica Berglyd Olsen
33b3a71ecd Make a minor performance improvement in the editor completer 2025-08-31 15:11:51 +02:00
Veronica Berglyd Olsen
b093446020 Fix Qt side crash when forwarding editor auto-complete keypresses (#2510) 2025-08-31 15:08:42 +02:00
idealemu
4db1cdd8e4 VLINE test and fix 2025-08-30 17:16:47 +02:00
idealemu
36a5710863 More test coverage for vim normal mode 2025-08-30 12:09:37 +02:00
idealemu
bd51ccd26a Visual mode tests and correct yy in visual 2025-08-30 12:04:49 +02:00
idealemu
d60a109ecb Move config check outside of handleVim 2025-08-30 10:04:44 +02:00
idealemu
a293da1360 Removed config caching 2025-08-28 09:36:11 +02:00
idealemu
745cfeb9e6 Update docstrings for new ruff rules 2025-08-28 09:26:19 +02:00
Veronica Berglyd Olsen
a7a08fe28d Merge branch 'main' into vim-mode 2025-08-27 21:38:50 +02:00
Veronica Berglyd Olsen
aa83c5c1bc Add more Ruff rules (#2509) 2025-08-27 21:36:46 +02:00
Veronica Berglyd Olsen
5dcc989535 Fix test coverage 2025-08-27 21:30:17 +02:00
Veronica Berglyd Olsen
2afbe95a9c Fix typo 2025-08-27 21:22:57 +02:00
Veronica Berglyd Olsen
5bdbd7c195 Update linting for tests 2025-08-27 21:04:32 +02:00
Veronica Berglyd Olsen
44d117c91d Update linting for utils 2025-08-27 21:01:11 +02:00
Veronica Berglyd Olsen
c174f8f931 Update linting for main code 2025-08-27 21:00:09 +02:00
Veronica Berglyd Olsen
84ff1f4640 Update Ruff settings in project config 2025-08-27 20:47:40 +02:00
Veronica Berglyd Olsen
26e7e70c3f Merge branch 'main' into vim-mode 2025-08-27 18:42:59 +02:00
idealemu
b2ad021230 Made vim tests keystroke delay robust 2025-08-27 11:27:08 +02:00
idealemu
151f047cff Vim mode dd, x, yy, p, P test 2025-08-27 11:18:11 +02:00
idealemu
04bb8f1d1a Vim mode insert O and o tests 2025-08-27 11:02:09 +02:00
idealemu
38c0d33767 Vim mode insert mode tests 2025-08-27 10:59:30 +02:00
idealemu
493947c830 Basic vim mode enabled test 2025-08-27 10:49:34 +02:00
idealemu
beb1ade0b5 Reorder config 2025-08-27 09:37:40 +02:00
idealemu
3885500e7c Vim mode only set when enabled 2025-08-26 18:12:15 +02:00
idealemu
9e132d5ca8 Visual and Vline modes and a few additional commands 2025-08-26 17:57:17 +02:00
idealemu
de21d4755b Added vim status mode bar in the GUI footer 2025-08-25 16:43:16 +02:00
idealemu
d50e164e68 Vim mode internal clipboard and more vim actions 2025-08-24 16:13:52 +02:00
Myian
8380a2fa53 Merge branch 'main' into theme_fixes 2025-08-24 16:10:51 +02:00
Veronica Berglyd Olsen
23a0df61cd Fix font matching style bug (#2503) 2025-08-24 15:51:32 +02:00
Veronica Berglyd Olsen
b484dd6f71 Test the fontMatcher style name reset 2025-08-24 15:47:28 +02:00
Veronica Berglyd Olsen
c986b311fd Merge branch 'main' into font_matching 2025-08-24 15:42:17 +02:00
Veronica Berglyd Olsen
d1c3584651 Drop highlighting trailing spaces (#2505) 2025-08-24 15:42:08 +02:00
Veronica Berglyd Olsen
a9069389db Set the show multiple spaces setting to off by default 2025-08-24 15:31:50 +02:00
Veronica Berglyd Olsen
2bf8ca8ab6 Change the wording for the multiple spaces setting in Preferences 2025-08-24 15:24:05 +02:00
Veronica Berglyd Olsen
b095b0ae12 Drop syntax highlighting for redundant trailing spaces 2025-08-24 15:22:11 +02:00
Myian
d5a6a05fc4 Merge branch 'vkbo:main' into theme_fixes 2025-08-23 23:37:51 +02:00
HeyMyian
c84f6b63ff Spelling of GitHub, Inc. 2025-08-23 22:54:15 +02:00
HeyMyian
92062d4829 Adjust Paragon theme colours 2025-08-23 22:47:59 +02:00
HeyMyian
f742e8ac11 Fix: missing letter in credits 2025-08-23 22:46:02 +02:00
Veronica Berglyd Olsen
65d2a3b313 Reset font style name after loading fonts 2025-08-21 22:41:58 +02:00
Veronica Berglyd Olsen
3c7510d74f Update package files (#2500) 2025-08-18 20:47:27 +02:00
Veronica Berglyd Olsen
be8ec6b4ae Update package files 2025-08-18 20:42:36 +02:00
idealemu
e06cd5eba6 More vim commands 2025-08-16 20:37:43 +02:00
idealemu
13775fcb68 Refactor for camelCase 2025-08-16 12:02:21 +02:00
Veronica Berglyd Olsen
5641fbd83c Fix tests on HighDPI screens (#2496) 2025-08-16 10:46:31 +02:00
Veronica Berglyd Olsen
3bdb108fdb Merge branch 'main' into test_gui_scale 2025-08-16 10:40:44 +02:00
Veronica Berglyd Olsen
19aadd93a0 Add comment to test 2025-08-16 10:38:31 +02:00
Veronica Berglyd Olsen
ce9be475b5 Add scale factor flag to run_tests script 2025-08-16 10:34:50 +02:00
idealemu
b40cd351c3 Disable vim mode by default 2025-08-16 10:11:29 +02:00
idealemu
3b6ad7b851 HJKL, DD motions added 2025-08-16 09:51:39 +02:00
idealemu
d8ac23e398 Moving vim state into doceditor, centralizing vim to doceditor 2025-08-14 17:19:05 +02:00
Veronica Berglyd Olsen
a627eab6f1 Add new themes (#2495) 2025-08-14 10:13:41 +02:00
HeyMyian
88ddb97d43 Update credits 2025-08-14 09:26:36 +02:00
HeyMyian
071654fa06 Fix: missing headertext 2025-08-13 18:39:35 +02:00
HeyMyian
ea602b5f9c Add new themes 2025-08-13 18:18:16 +02:00
Veronica Berglyd Olsen
b39b990eda Update themes (#2494) 2025-08-13 18:00:05 +02:00
HeyMyian
5d7e005f7d Update themes 2025-08-13 11:06:18 +02:00
idealemu
c2627654b9 Initial vim mode prototype proof of concept 2025-08-12 21:15:48 +02:00
Veronica Berglyd Olsen
21ce030463 Improve auto-replace quotes with markup (#2489) 2025-07-27 13:46:01 +02:00
Veronica Berglyd Olsen
c203dcbbb6 Generalise space character detection in quote auto-replace 2025-07-27 13:36:39 +02:00
Veronica Berglyd Olsen
435a72c76b Add test coverage 2025-07-27 13:19:58 +02:00
Veronica Berglyd Olsen
d4fc440725 Tweak the editor auto-replace logic to allow markup for dialogue (#2488) 2025-07-27 12:25:09 +02:00
Veronica Berglyd Olsen
e9407e0152 Update themes (#2481) 2025-07-21 13:45:19 +02:00
HeyMyian
033d515784 Fix Aura theme credits 2025-07-21 12:10:11 +02:00
HeyMyian
4b4825582f Fix Aura theme credits 2025-07-21 10:52:50 +02:00
HeyMyian
9d7e8959e8 Adjust theme colours 2025-07-21 10:47:00 +02:00
Veronica Berglyd Olsen
9aac9301b0 Add a tests run script and more requirement files (#2480) 2025-07-19 17:04:34 +02:00
Veronica Berglyd Olsen
df6cf331ac Change required setuptools to 77.0.3 2025-07-19 16:56:41 +02:00
Veronica Berglyd Olsen
3e66f47c13 Echo the command used in the run tests script 2025-07-19 16:53:05 +02:00
Veronica Berglyd Olsen
bca87429a6 Update setuptools requirements 2025-07-19 16:50:36 +02:00
Veronica Berglyd Olsen
9870fe448b Add more requirements files 2025-07-19 16:46:50 +02:00
Veronica Berglyd Olsen
379ae8ccfb Add helper script to run tests 2025-07-19 16:41:07 +02:00
Veronica Berglyd Olsen
c77b67fdf8 Expose tree and outline shortcuts in Focus Mode (#2479) 2025-07-17 21:41:20 +02:00
Veronica Berglyd Olsen
a0cbb30874 Allow switching to tree, novel or outline by keyboard shortcut from Focus Mode (#1294) 2025-07-17 21:35:32 +02:00
Veronica Berglyd Olsen
aa46be08cf Add progress bar for bulky tasks (#2478) 2025-07-17 19:51:36 +02:00
Veronica Berglyd Olsen
f7366cb2ff Fix linting errors for new rules 2025-07-17 19:47:46 +02:00
Veronica Berglyd Olsen
4bc4c1e204 Add progress bar to global search 2025-07-17 19:42:35 +02:00
Veronica Berglyd Olsen
e77b71bbbc Connect main progress bar to potential bulky operations in the project tree 2025-07-17 18:06:02 +02:00
Veronica Berglyd Olsen
1223e6da84 Fix tests and add GUI refresh 2025-07-17 17:30:07 +02:00
Veronica Berglyd Olsen
d027f218f8 Add progress bar functions in shared class and use it for index rebuild 2025-07-17 16:56:28 +02:00
Veronica Berglyd Olsen
eb659a64bb Add a progress bar over the status bar 2025-07-17 16:55:53 +02:00
Veronica Berglyd Olsen
300edc036f Use label for template title (#2477) 2025-07-17 15:47:45 +02:00
Veronica Berglyd Olsen
ee370ec8bf Fix wrong meta data in sample files 2025-07-17 15:44:06 +02:00
Veronica Berglyd Olsen
ebdd0dbdc0 Update docs 2025-07-17 15:37:42 +02:00
Veronica Berglyd Olsen
c816b24437 Update tests 2025-07-17 15:31:13 +02:00
Veronica Berglyd Olsen
20709145c8 Update template title when creating file from template 2025-07-17 15:31:03 +02:00
Veronica Berglyd Olsen
133d3c7151 Pre Release 2.8 Alpha 2 (#2476) 2025-07-16 16:41:57 +02:00
Veronica Berglyd Olsen
25a577e32e Bump version to 2.8a2 2025-07-16 16:36:04 +02:00
Veronica Berglyd Olsen
3c01584615 Update default themes (#2475) 2025-07-16 16:28:30 +02:00
Veronica Berglyd Olsen
bea80e7f71 Clean up sample project 2025-07-16 12:15:23 +02:00
Veronica Berglyd Olsen
d7a6c14fe7 Update highlighter tests 2025-07-16 12:15:13 +02:00
Veronica Berglyd Olsen
30008bafe7 Tweak default themes a little 2025-07-16 12:14:59 +02:00
Veronica Berglyd Olsen
4f5d1847e0 Update icon credits info (#2474) 2025-07-15 20:44:44 +02:00
Veronica Berglyd Olsen
e7e7d7d2c0 Update icon credits 2025-07-15 20:39:50 +02:00
Veronica Berglyd Olsen
5114f0ac24 Merge release 2.7.4 into main (#2473) 2025-07-15 19:10:26 +02:00
Veronica Berglyd Olsen
832bf158da Fix icon theme completeness test 2025-07-15 19:02:51 +02:00
Veronica Berglyd Olsen
af83cc58cb Add missing icons to material sharp icon themes 2025-07-15 18:56:54 +02:00
Veronica Berglyd Olsen
1318a3844e Merge main and 2.7.4 2025-07-15 18:53:10 +02:00
Veronica Berglyd Olsen
ae8d7ef99f Post release updates (#2472) 2025-07-15 17:48:13 +02:00
Veronica Berglyd Olsen
0503b02d17 Remove Ubuntu Oracular release 2025-07-15 17:33:32 +02:00
Veronica Berglyd Olsen
9a158d76b4 Release 2.7.4 (#2470) 2025-07-15 17:15:10 +02:00
Veronica Berglyd Olsen
2017525b77 Bump version number and update changelog 2025-07-15 17:00:07 +02:00
Veronica Berglyd Olsen
d0b09bce20 Update i18n (#2469) 2025-07-15 16:52:58 +02:00
Veronica Berglyd Olsen
cfd9b63190 Update Czech and French translations 2025-07-15 16:45:22 +02:00
Veronica Berglyd Olsen
05e865e649 Update existing translation files 2025-07-15 16:43:29 +02:00
Veronica Berglyd Olsen
f25124fd8a Clean up icon themes build (#2467) 2025-07-15 16:21:15 +02:00
Veronica Berglyd Olsen
b92157c292 Fix test 2025-07-15 16:12:29 +02:00
Veronica Berglyd Olsen
c2dcb6a075 Update ignore and build scripts 2025-07-15 16:00:45 +02:00
Veronica Berglyd Olsen
00f0c6ea3c Remove optional icon themes and add new themes 2025-07-15 16:00:20 +02:00
Veronica Berglyd Olsen
e92cf6c761 Update icon builds 2025-07-15 15:56:00 +02:00
Veronica Berglyd Olsen
d0092d5a5e Remove theme description field (#2466) 2025-07-14 19:38:01 +02:00
Veronica Berglyd Olsen
4a0ed710a3 Update credits and documentation 2025-07-14 19:33:35 +02:00
Veronica Berglyd Olsen
df89f183e0 Clean up theme files 2025-07-14 19:33:23 +02:00
Veronica Berglyd Olsen
06b6adbcde Remove description field from theme parsing and testing 2025-07-14 19:33:01 +02:00
Veronica Berglyd Olsen
f2b94095c3 Fix 4 byte Unicode support in editor (#2451) 2025-07-13 19:02:58 +02:00
Veronica Berglyd Olsen
cd474f3152 Add full test coverage of syntax highlighter 2025-07-13 18:59:13 +02:00
Veronica Berglyd Olsen
c40507addb Fix Unicode bug in syntax highlighter 2025-07-13 18:58:52 +02:00
Benson Muite
989d655c1f Add git as a Fedora dependency for codecov 2025-07-09 18:41:14 +03:00
Benson Muite
094353f64e Fix container image name 2025-07-09 18:07:20 +03:00
Veronica Berglyd Olsen
e795b345c5 Merge remote-tracking branch 'origin/unicode_fix' into unicode_fix 2025-07-09 12:50:04 +02:00
Veronica Berglyd Olsen
4a04c24b62 Merge branch 'main' into unicode_fix 2025-07-09 12:49:08 +02:00
Veronica Berglyd Olsen
36ec721b1e Remove sed and fix bug in fedora yaml 2025-07-09 12:37:55 +02:00
Benson Muite
f1dae3e62e Test on Fedora linux 2025-07-09 10:59:20 +03:00
Veronica Berglyd Olsen
90860dbbf1 Fix colour reset bug for status labels (#2461) 2025-07-08 15:46:01 +02:00
Veronica Berglyd Olsen
7d2be7da77 Update file format comment 2025-07-08 15:41:01 +02:00
Veronica Berglyd Olsen
551a7609f8 Preserve status icon custom colour when switching theme (#2452) 2025-07-08 15:19:33 +02:00
Veronica Berglyd Olsen
791da75ae9 Merge 2.7.3 release into 2.8 branch (#2460) 2025-07-07 19:00:47 +02:00
Veronica Berglyd Olsen
aa1fd82f3a Merge 2.7.3 release into current main 2025-07-07 18:41:36 +02:00
Veronica Berglyd Olsen
2e8ee9dadf Release 2.7.3 (#2458) 2025-07-07 17:25:26 +02:00
Veronica Berglyd Olsen
0b8d613044 Update changelog notes 2025-07-07 17:16:11 +02:00
Veronica Berglyd Olsen
64b0896eaf Bump version and update changelog 2025-07-07 17:14:51 +02:00
Veronica Berglyd Olsen
cd5151be94 Update license info 2025-07-07 17:04:53 +02:00
Veronica Berglyd Olsen
367bb2e5ed Improve dialogue highlighting settings (#2457) 2025-07-06 18:27:26 +02:00
Veronica Berglyd Olsen
a748a69de3 Remove redundant string compact implementation 2025-07-06 18:24:05 +02:00
Veronica Berglyd Olsen
ec9e478399 Improve dialogue line symbol setting box (#2453) 2025-07-06 18:20:13 +02:00
Veronica Berglyd Olsen
dadc7edbd9 Move the open ended dialogue setting in Preferences (#2454) 2025-07-06 18:14:33 +02:00
Veronica Berglyd Olsen
e41f6a5fb3 Fix ConfigParser interpolation (#2456) 2025-07-06 17:35:18 +02:00
Veronica Berglyd Olsen
3149e7ec0d Disable config parser interpolation with % (#2455) 2025-07-06 17:29:19 +02:00
Veronica Berglyd Olsen
d8d60faa6b Add test document to repo for now 2025-07-06 17:09:21 +02:00
Veronica Berglyd Olsen
58eda950f8 Add test coverage for spell checker with 4 byte Unicode 2025-07-05 17:52:19 +02:00
Veronica Berglyd Olsen
ad3760762f Fix spell checking when 4 byte are in use 2025-07-05 17:19:02 +02:00
Veronica Berglyd Olsen
3c8a0ace60 Add test for utf16CharMap 2025-07-05 17:18:04 +02:00
Veronica Berglyd Olsen
7a90ef8bc4 Merge branch 'main' into unicode_fix 2025-07-05 16:00:06 +02:00
Veronica Berglyd Olsen
c12a864e8a Revert Qt regex and use UTF-16 to UCS-4 index map for all highlighting 2025-07-05 15:53:34 +02:00
Veronica Berglyd Olsen
5aef93245b Add more themes (#2450) 2025-07-05 15:39:32 +02:00
Myian
3352a24750 fix: rename the Auras 2025-07-05 15:33:42 +02:00
Myian
590f13203a fix: Classic-O Light url 2025-07-05 14:23:24 +02:00
Myian
c832b2d860 fix: Primer Light headertag 2025-07-05 14:17:50 +02:00
Veronica Berglyd Olsen
8067acdc1c Merge branch 'main' into unicode_fix 2025-07-05 14:17:16 +02:00
Myian
b3ea6af2fd Merge branch 'vkbo:main' into add_themes 2025-07-05 14:03:29 +02:00
Myian
30530b1b8b add more themes 2025-07-05 14:02:56 +02:00
Veronica Berglyd Olsen
57bed18ccf Make dialog parser and keyword lines work with 4 byte unicode 2025-07-05 01:50:47 +02:00
Veronica Berglyd Olsen
f8a333c4ea Make editor auto-replace work with 4 byte Unicode 2025-07-05 01:50:03 +02:00
Veronica Berglyd Olsen
680fc32786 Fix highlighting of markup and spell checking for 4 byte Unicode 2025-07-04 23:24:23 +02:00
Veronica Berglyd Olsen
9af498d69a Drop redundant re.UNICODE flag 2025-07-04 20:20:48 +02:00
Veronica Berglyd Olsen
7e2b95d390 Add all used licenses (#2446) 2025-07-02 18:26:16 +02:00
Veronica Berglyd Olsen
168bb0be88 Update license fields in project file to latest format 2025-07-02 17:55:06 +02:00
Veronica Berglyd Olsen
849f6c7d05 Update credits files 2025-07-02 17:42:57 +02:00
Veronica Berglyd Olsen
d1c3643cff Add all used licenses to package meta 2025-07-02 17:41:41 +02:00
Veronica Berglyd Olsen
5ee362dcf4 Revert license field (#2435) 2025-06-25 10:28:05 +02:00
Veronica Berglyd Olsen
453502e1c7 Revert the format of the license field in the pyrproject file (#2434) 2025-06-25 10:23:00 +02:00
Veronica Berglyd Olsen
0b6e2bc260 Merge 2.7.2 into main (#2432) 2025-06-24 17:21:53 +02:00
Veronica Berglyd Olsen
5b24d8e61a Fix merge issue 2025-06-24 17:16:39 +02:00
Veronica Berglyd Olsen
23ff933d38 Merge 2.7.2 into main 2025-06-24 17:12:43 +02:00
Veronica Berglyd Olsen
da3383a67c Release 2.7.2 (#2430) 2025-06-24 16:43:34 +02:00
Veronica Berglyd Olsen
4dd2d63d9b Update changelog 2025-06-24 16:40:25 +02:00
Veronica Berglyd Olsen
b16783143f Bump version to 2.7.2 and update changelog 2025-06-24 16:37:50 +02:00
Veronica Berglyd Olsen
590c66d1eb Fix missing tag display in outline (#2429) 2025-06-24 16:23:15 +02:00
Veronica Berglyd Olsen
b4db960e68 Add scene tag to sample main scene 2025-06-24 16:16:15 +02:00
Veronica Berglyd Olsen
aaf4ede04d Update test coverage 2025-06-24 16:15:49 +02:00
Veronica Berglyd Olsen
5ae385ec02 Add tag to reference by keyword lookup 2025-06-24 16:15:35 +02:00
Veronica Berglyd Olsen
ad2288e2fc Add tag value for novel docs in Outline and Novel View (#2428) 2025-06-24 16:05:59 +02:00
Veronica Berglyd Olsen
4b5f3c8af8 Clarify text alignment and break behaviour (#2427) 2025-06-24 09:07:40 +02:00
Veronica Berglyd Olsen
c1dd2ebb92 Fix typos and inconsistencies 2025-06-24 00:22:35 +02:00
Veronica Berglyd Olsen
a210a665fb Update documentation 2025-06-24 00:08:08 +02:00
Veronica Berglyd Olsen
979a55d24a Add alignment precedence test to HTML tests 2025-06-24 00:07:55 +02:00
Veronica Berglyd Olsen
3c474987b2 Check indent and justify after lines are combined in tokenizer, not before (#2426) 2025-06-23 23:24:20 +02:00
Veronica Berglyd Olsen
91e83305e6 Add Espresso and Noctis themes (#2422) 2025-06-23 13:52:22 +02:00
Veronica Berglyd Olsen
cf3f6caca8 Fix Noctis button text colour 2025-06-20 17:12:00 +02:00
Veronica Berglyd Olsen
ab1d55611f Add Noctis theme 2025-06-20 17:06:50 +02:00
Veronica Berglyd Olsen
aff634a970 Add Noctis Lux theme 2025-06-20 16:54:14 +02:00
Veronica Berglyd Olsen
6ed572772f Add theme description 2025-06-20 16:47:11 +02:00
Veronica Berglyd Olsen
cc206d5542 Merge remote-tracking branch 'origin/espresso_theme' into espresso_theme 2025-06-20 16:45:22 +02:00
Veronica Berglyd Olsen
8001b914b1 Merge branch 'main' into espresso_theme 2025-06-20 16:43:06 +02:00
Veronica Berglyd Olsen
afc3e862b0 Change theme meta settings (#2423) 2025-06-20 16:42:55 +02:00
Veronica Berglyd Olsen
8ea6cc8bac Merge branch 'main' into theme_settings 2025-06-20 16:38:10 +02:00
Veronica Berglyd Olsen
cdc05320d9 Update existing theme files 2025-06-20 16:36:39 +02:00
Veronica Berglyd Olsen
b64c2f3597 Refactor the theme setting meta fields and requirements 2025-06-20 16:35:58 +02:00
Veronica Berglyd Olsen
e1b082d189 Improve tooltip and highlight 2025-06-20 12:03:20 +02:00
Veronica Berglyd Olsen
7fdf175329 Merge branch 'main' into espresso_theme 2025-06-20 00:17:12 +02:00
Veronica Berglyd Olsen
e6580d4676 Make some minor changes to themes (#2418) 2025-06-20 00:16:00 +02:00
Veronica Berglyd Olsen
b6de4fe823 First iteration of the espresso theme 2025-06-20 00:13:15 +02:00
Veronica Berglyd Olsen
51da6fe1a8 Merge branch 'main' into theme_tweaks 2025-06-19 22:11:24 +02:00
Veronica Berglyd Olsen
aba179d2de Improve story comment handling (#2421) 2025-06-19 22:02:17 +02:00
Veronica Berglyd Olsen
80cabea362 Merge branch 'main' into story_comments_handling 2025-06-19 21:57:46 +02:00
Veronica Berglyd Olsen
fad4210c9c Update Primer themes (#2419) 2025-06-19 21:57:33 +02:00
Veronica Berglyd Olsen
32091ffd94 Add test for story comment tokenizer 2025-06-19 21:49:33 +02:00
Veronica Berglyd Olsen
8d2551e0b6 Add notes toggle test coverage 2025-06-19 21:35:39 +02:00
Veronica Berglyd Olsen
0d94a84724 Fix tests 2025-06-19 21:32:11 +02:00
Veronica Berglyd Olsen
efa82e1761 Add more new features to the Lipsum test project 2025-06-19 21:31:57 +02:00
Veronica Berglyd Olsen
c4cd151f2c Compact repeated blocks in both meta and note types 2025-06-19 21:05:44 +02:00
Myian
4874c02c44 fix highlight? 2025-06-19 21:04:42 +02:00
Veronica Berglyd Olsen
ba4fdd1f92 Split up block types of comments in build formats 2025-06-19 20:47:34 +02:00
Veronica Berglyd Olsen
c598fdd009 Add separate toggle for notes in viewer 2025-06-19 20:30:54 +02:00
Veronica Berglyd Olsen
0bbe29bc2e Fix comments visibility (#2420) 2025-06-19 20:27:36 +02:00
Veronica Berglyd Olsen
e690243fc3 Show notes and story structure comments in the viewer 2025-06-19 20:21:19 +02:00
Veronica Berglyd Olsen
4eaac8dbe8 Fix issues with the Solarized themes 2025-06-19 20:06:30 +02:00
Veronica Berglyd Olsen
dbf0b5d3f7 Modify the style to show a scroll bar for combo boxes 2025-06-19 19:29:14 +02:00
Myian
17e2c30f6e Merge branch 'primer' of https://github.com/HeyMyian/novelWriter into primer 2025-06-19 17:31:26 +02:00
Myian
36b757c224 better contrast for some elements 2025-06-19 17:31:24 +02:00
Veronica Berglyd Olsen
1ae77b145b Merge branch 'main' into primer 2025-06-19 15:42:04 +02:00
Myian
87f2f0eb24 fix tooltip 2025-06-19 13:24:35 +02:00
Myian
b2d31022af adjusting colors and change name 2025-06-19 13:16:23 +02:00
Veronica Berglyd Olsen
110d8b8e59 Swap value and modifier colours in default themes 2025-06-18 20:50:33 +02:00
Veronica Berglyd Olsen
5a177e500e Update the help text for theme selections in Preferences 2025-06-18 20:50:12 +02:00
Veronica Berglyd Olsen
03dcb63cf6 Merge 2.7.2 bugfixes into main (#2417) 2025-06-18 20:30:41 +02:00
Veronica Berglyd Olsen
45a41b6109 Merge 2.7.2 bugfixes into main 2025-06-18 20:26:56 +02:00
Veronica Berglyd Olsen
74862969e1 Fix page breaks in PDFs (#2416) 2025-06-18 20:21:09 +02:00
Veronica Berglyd Olsen
92ef020342 Display headings with a line break on a single line 2025-06-18 19:26:41 +02:00
Veronica Berglyd Olsen
2176dd2020 Only add page break before first line of a heading in PDF and preview (#2415) 2025-06-18 19:25:39 +02:00
Veronica Berglyd Olsen
bc624dc079 Add markdown-style highlight (#2412) 2025-06-16 22:13:48 +02:00
Veronica Berglyd Olsen
0b13d40516 Add text pattern test 2025-06-16 21:46:27 +02:00
Veronica Berglyd Olsen
e82c161b11 Merge branch 'main' into markdown_highlight 2025-06-16 21:41:41 +02:00
Veronica Berglyd Olsen
307cd0966b Merge branch 'release' 2025-06-16 21:40:45 +02:00
Veronica Berglyd Olsen
2ec943d118 Fix escape characters in document formats (#2411) 2025-06-16 19:00:51 +02:00
Veronica Berglyd Olsen
01733bdbaa Use dict comprehension in auto replace processing 2025-06-16 18:58:07 +02:00
Veronica Berglyd Olsen
5bc39d29eb Process escapes in docx and qdoc classes (#2410) 2025-06-16 18:50:21 +02:00
Veronica Berglyd Olsen
c0da955fc6 Add button and menu entry for markdown highlight 2025-06-16 18:47:16 +02:00
Veronica Berglyd Olsen
148fc68590 Add markdown highlight format 2025-06-16 18:46:37 +02:00
Veronica Berglyd Olsen
1c150e0011 Add current line highlight (#2405) 2025-06-14 17:36:39 +02:00
Veronica Berglyd Olsen
cbc79d7082 Merge line highlight with existing signal handler for cursor move 2025-06-14 17:30:30 +02:00
Veronica Berglyd Olsen
6d04c88d83 Keep the ExtraSelection object around to prevent garbage collector race and segfault 2025-06-14 17:20:34 +02:00
Veronica Berglyd Olsen
d5dc66a33c Add to preferences test 2025-06-14 17:13:35 +02:00
Veronica Berglyd Olsen
2947721727 Improve test coverage 2025-06-14 17:08:06 +02:00
Veronica Berglyd Olsen
f6408e74d2 Update themes and docs 2025-06-14 17:06:02 +02:00
Veronica Berglyd Olsen
7a95980d2f Add theme setting for current line 2025-06-14 17:04:53 +02:00
Veronica Berglyd Olsen
2589c43214 Expose line highlight setting in Preferences 2025-06-14 16:45:06 +02:00
Veronica Berglyd Olsen
5032ffdfd4 Add current line highlight 2025-06-14 16:44:51 +02:00
Veronica Berglyd Olsen
1b977e866b Make HTML output more consistent (#2404) 2025-06-14 15:34:49 +02:00
Veronica Berglyd Olsen
307e80bac9 Update tests 2025-06-14 15:29:11 +02:00
Veronica Berglyd Olsen
af6b35cc43 Improve handling of CSS styles, and add viewport meta tag (#2358) 2025-06-14 15:28:51 +02:00
Veronica Berglyd Olsen
bae654f260 Clean up log messages from dialogs (#2402) 2025-06-14 14:26:28 +02:00
Veronica Berglyd Olsen
ff36d38f43 Improve formatting of log messages made from message box content 2025-06-14 14:22:14 +02:00
Veronica Berglyd Olsen
88a195b4e2 Update deb build and release 2.8 Alpha 1 for Launchpad (#2401) 2025-06-13 22:37:18 +02:00
Veronica Berglyd Olsen
2bd298e673 Bump version to 2.8 Alpha 1 2025-06-13 22:31:34 +02:00
Veronica Berglyd Olsen
ad89a043c9 Update build files for 2.8 2025-06-13 22:31:17 +02:00
Veronica Berglyd Olsen
03506c97b0 Allow theme colours for status and importance labels (#2400) 2025-06-13 22:02:54 +02:00
Veronica Berglyd Olsen
9384b8a6b9 Update test coverage 2025-06-13 21:37:31 +02:00
Veronica Berglyd Olsen
e3eea2628a Fix current tests 2025-06-12 19:22:11 +02:00
Veronica Berglyd Olsen
ff85c6688f Add methods to refresh status icons on theme change 2025-06-12 17:59:38 +02:00
Veronica Berglyd Olsen
2e0ee9b75f Update project settings for for status and importance colours 2025-06-12 16:55:28 +02:00
Veronica Berglyd Olsen
fe46a82e63 Change how colours are stored for status labels to use theme colour or hex format 2025-06-12 16:55:12 +02:00
Veronica Berglyd Olsen
67d49a8f2b Remove theme key from theme colours list 2025-06-12 16:52:24 +02:00
Veronica Berglyd Olsen
885b669c30 Add LCARS theme (#2399) 2025-06-12 11:46:50 +02:00
Veronica Berglyd Olsen
5ab3736f05 Tweak colours 2025-06-12 11:42:52 +02:00
Veronica Berglyd Olsen
968bdbf12a Add LCARS theme 2025-06-11 21:57:15 +02:00
Veronica Berglyd Olsen
1608f34677 Make some minor tweaks to themes and update docs (#2396) 2025-06-11 20:27:18 +02:00
Veronica Berglyd Olsen
98d9853c7e Tweak the opacity of paged sidebar buttons and welcome dialog list 2025-06-11 00:14:46 +02:00
Veronica Berglyd Olsen
aeac9840f1 Tweaks some theme colours 2025-06-11 00:09:06 +02:00
Veronica Berglyd Olsen
6a9e268eb7 Update theme customisation documentation 2025-06-11 00:08:17 +02:00
Veronica Berglyd Olsen
186062926a Change some defaults and fix index of new projects (#2395) 2025-06-10 23:41:52 +02:00
Veronica Berglyd Olsen
f7691f6909 Make sure manual files exist for testing 2025-06-10 23:29:17 +02:00
Veronica Berglyd Olsen
4e02c8a63a Change a few defaults in config 2025-06-10 23:28:58 +02:00
Veronica Berglyd Olsen
bd3e23da33 Build index on new project creation 2025-06-10 23:16:10 +02:00
Veronica Berglyd Olsen
045b2619b2 Merge release 2.7.1 into 2.8a0 2025-06-10 00:10:20 +02:00
Veronica Berglyd Olsen
8c38bece3a Update license setting in pyproject.toml 2025-06-10 00:09:04 +02:00
Veronica Berglyd Olsen
d61329a4f3 Improve build code 2025-06-10 00:08:48 +02:00
Veronica Berglyd Olsen
635493f1c1 Post release updates and AppImage fix 2025-06-09 23:42:34 +02:00
Veronica Berglyd Olsen
364b7bcf99 Release 2.7.1 (#2393) 2025-06-09 23:11:23 +02:00
Veronica Berglyd Olsen
7d53c4a06b Extend changelog and fix release date 2025-06-09 23:08:09 +02:00
Veronica Berglyd Olsen
e3981aad60 Update changelog 2025-06-09 23:06:14 +02:00
Veronica Berglyd Olsen
f08078bd08 Update Czech translation 2025-06-09 23:00:41 +02:00
Veronica Berglyd Olsen
5d1e781d20 Bump version to 2.7.1 2025-06-09 22:57:33 +02:00
Veronica Berglyd Olsen
d1d5116536 Update the AppImage build scripts (#2392) 2025-06-09 22:52:17 +02:00
Veronica Berglyd Olsen
6379f031c2 Prune the AppImage a little, and prune Windows installer less 2025-06-09 22:49:00 +02:00
Veronica Berglyd Olsen
d153d80595 Use lower case for release names 2025-06-09 22:01:22 +02:00
Veronica Berglyd Olsen
28c45719e2 Move libxcb-cursor 2025-06-09 19:36:39 +02:00
Veronica Berglyd Olsen
e6befda146 Use env var for appimagetool 2025-06-09 19:08:19 +02:00
Veronica Berglyd Olsen
910723bbcd Add symlink 2025-06-09 19:02:53 +02:00
Veronica Berglyd Olsen
a534e30467 Add the appimagetool exec 2025-06-09 18:51:49 +02:00
Veronica Berglyd Olsen
dd7c8162ac Update appimage build 2025-06-09 18:38:53 +02:00
Veronica Berglyd Olsen
2bffa83d62 Update app description 2025-06-09 15:46:17 +02:00
Veronica Berglyd Olsen
01514a94e1 Fix tag and auto-complete bugs (#2389) 2025-06-06 19:23:49 +02:00
Veronica Berglyd Olsen
53355dbcc6 Don't remove tags for the tag keyword (#2386) 2025-06-06 19:16:59 +02:00
Veronica Berglyd Olsen
bf1067a346 Make sure project items in inactive classes are removed from the index (#2387) 2025-06-06 19:07:32 +02:00
Veronica Berglyd Olsen
53784b310e Close instead of hide auto-complete menu when inactive (#2386) 2025-06-06 18:39:21 +02:00
Veronica Berglyd Olsen
e816cbc51b Add "Blue Streak" themes (#2388) 2025-06-06 18:30:15 +02:00
Veronica Berglyd Olsen
0a37981251 Add Blue Streak Light, and update dark theme 2025-06-06 18:25:45 +02:00
Veronica Berglyd Olsen
d280cb510d Update blue streak dark theme with new settings 2025-06-05 22:10:33 +02:00
Veronica Berglyd Olsen
c08771dc56 Add blue streak initial theme 2025-06-05 22:05:14 +02:00
Veronica Berglyd Olsen
1e58c47286 Add more theme fields (#2384) 2025-06-05 22:03:57 +02:00
Veronica Berglyd Olsen
8c0f3b037a Update themes 2025-06-05 21:55:08 +02:00
Veronica Berglyd Olsen
550cba2f43 Add theme settings for active icons, a base colour, and accent palette colour (#2382) 2025-06-05 18:15:31 +02:00
Veronica Berglyd Olsen
33f4efc5b1 Improve welcome dialog and add more theme colour options (#2380) 2025-06-04 22:27:07 +02:00
Veronica Berglyd Olsen
a92f9d7a6f Update docs 2025-06-04 22:23:26 +02:00
Veronica Berglyd Olsen
57b6b92e04 Update themes 2025-06-04 22:01:12 +02:00
Veronica Berglyd Olsen
0ab33e1843 Allow adjusting lighter and darker as well in theme files 2025-06-04 21:09:35 +02:00
Veronica Berglyd Olsen
8ce6c678aa Use a transparent image for the welcome dialog 2025-06-04 20:37:30 +02:00
Veronica Berglyd Olsen
c63336ade4 Add Primer themes (#2377) 2025-06-04 15:14:18 +02:00
Veronica Berglyd Olsen
e276a5d825 Merge branch 'main' into Add-Primer-Dark-theme 2025-06-04 15:10:46 +02:00
Veronica Berglyd Olsen
d06731ff19 Improve theme testing and format of theme files (#2378) 2025-06-04 15:10:34 +02:00
Veronica Berglyd Olsen
320578a61c Clean up theme files a little 2025-06-04 15:05:35 +02:00
Veronica Berglyd Olsen
92f68dfd58 Add tests for the theme and icons files 2025-06-04 15:05:22 +02:00
Myian
d850d901e9 Add Primer Light theme
Adds the Primer Light theme based on the GitHub/Primer colors.
2025-06-04 11:28:05 +02:00
Myian
492294163c Add Primer Dark theme
Adds the Primer Dark theme based on the GitHub/Primer colors.
2025-06-03 23:23:09 +02:00
Veronica Berglyd Olsen
cd38e6a6ae Add light/dark theme switching and merge syntax and GUI theme (#2373) 2025-06-03 22:54:52 +02:00
Veronica Berglyd Olsen
334f946870 Add remaining missing coverage and revert loadTheme return type 2025-06-03 22:47:17 +02:00
Veronica Berglyd Olsen
bd2353f7bc Add tests for sidebar and themes 2025-06-03 22:36:53 +02:00
Veronica Berglyd Olsen
f6214ae36d Build AppImage with Python 3.11 again 2025-06-03 19:53:00 +02:00
Veronica Berglyd Olsen
5fee3ecdb8 Fix broken tests 2025-06-03 17:39:21 +02:00
Veronica Berglyd Olsen
638f93499b Scan themes on startup instead 2025-06-03 17:31:52 +02:00
Veronica Berglyd Olsen
df7a721626 Update documentation on colour themes 2025-06-03 17:30:59 +02:00
Veronica Berglyd Olsen
60b5f660e8 Rename colour aqua to cyan in themes 2025-06-03 17:30:13 +02:00
Veronica Berglyd Olsen
82188d156b Change the name and alpha format of colour themes 2025-06-03 12:02:38 +02:00
Veronica Berglyd Olsen
b0ea1781e7 Fix test 2025-06-02 23:28:28 +02:00
Veronica Berglyd Olsen
44528b6173 Fix icon theme reload 2025-06-02 23:20:51 +02:00
Veronica Berglyd Olsen
059085a21a Add theme icons 2025-06-02 23:13:30 +02:00
Veronica Berglyd Olsen
89a7c3e5cb Add dark/light toggle button to sidebar 2025-06-02 23:08:01 +02:00
Veronica Berglyd Olsen
10475f32fb Remove references to syntax themes 2025-06-02 20:21:35 +02:00
Veronica Berglyd Olsen
55e601cf9d Merge and update the grey themes 2025-06-02 20:18:19 +02:00
Veronica Berglyd Olsen
d0f11a2595 Fix a few inconsistencies 2025-06-02 20:05:52 +02:00
Veronica Berglyd Olsen
eed5cd1877 Merge and update the owl and tango themes 2025-06-02 20:02:00 +02:00
Veronica Berglyd Olsen
3258b8806f Merge and update the tomorrow themes 2025-06-02 19:15:33 +02:00
Veronica Berglyd Olsen
072d0f0acd Merge and update the default themes 2025-06-02 18:40:58 +02:00
Veronica Berglyd Olsen
04526385d1 Update existing matched GUI and syntax themes 2025-06-02 17:43:27 +02:00
Veronica Berglyd Olsen
857327e9ef Update theme colour processing and fix current tests 2025-06-02 17:06:28 +02:00
Veronica Berglyd Olsen
1fafa0dae7 Remove syntax theme parsing and add light and dark theme user settings 2025-06-02 16:28:06 +02:00
Veronica Berglyd Olsen
e67ae4f3bf Block main GUI from resizing to larger than the screen (#2369) 2025-06-01 19:24:15 +02:00
Veronica Berglyd Olsen
d12113b94c Limit main GUI size to available screen size of the current screen (#2354) 2025-06-01 18:41:13 +02:00
Veronica Berglyd Olsen
682804f703 Bump main branch to 2.8 Alpha 0 2025-06-01 15:00:44 +02:00
Veronica Berglyd Olsen
7aea5eb5af Add setuptools to appimage build 2025-06-01 12:42:02 +02:00
Blayney Walshe
58bbb2be38 removed local config files 2025-02-22 15:22:05 -05:00
Blayney Walshe
02cb9e9090 Update novelwriter/dialogs/projectsettings.py
Co-authored-by: Veronica Berglyd Olsen <1619840+vkbo@users.noreply.github.com>
2025-02-22 15:17:36 -05:00
Blayney Walshe
dc3e801fd2 Merge branch 'main' into project-goals 2025-02-22 14:13:59 -05:00
Blayney Walshe
cfc587569a converted QDate to datetime.date
Added NProgressGoal class to handle goal progress bars.
2025-02-22 14:12:52 -05:00
Blayney Walshe
7e56174b2a added session and project goal with progress bars for each in the status bar 2025-02-20 08:29:26 -05:00
Veronica Berglyd Olsen
6d82d10883 Add build job 2025-02-05 16:43:37 +01:00
Veronica Berglyd Olsen
c1598bccf9 Remove old appdata.xml template 2025-02-05 16:37:52 +01:00
Veronica Berglyd Olsen
43d0e0a5fd Merge branch 'main' into flatpak 2025-02-05 16:33:51 +01:00
Veronica Berglyd Olsen
08c4aea1b2 Move build to utils folder 2025-02-05 14:46:22 +01:00
Veronica Berglyd Olsen
535012f8b0 Merge remote-tracking branch 'ryex/add-flatpak' into flatpak 2025-02-05 14:11:04 +01:00
Veronica Berglyd Olsen
89423208bb Merge branch 'main' into add-flatpak 2023-04-04 17:52:00 +02:00
Rachel Powers
b82bead486 fix: properly sort versions in appdate.xml
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-02-12 20:32:07 -07:00
Rachel Powers
7233137ad3 feat: add a gen-appdata command to setup .py
regenerates novelwriter.appdata.xml using git tags to list versions and pulling the latest version from the source

Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-02-12 20:00:15 -07:00
Rachel Powers
14ca0deb00 fix : use sudo to build flatpak
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-02-12 18:02:31 -07:00
Rachel Powers
575a046cac fix: use sudo for flatpak remote-add
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-02-12 17:51:05 -07:00
Rachel Powers
77246aad17 fix: ensure flathub repo is added during build
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-02-12 17:47:16 -07:00
Rachel Powers
3303eb3043 add new releases to appdata.xml
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-02-12 17:41:30 -07:00
Rachel Powers
04f82e5151 fix: install flatpak-builder in flatpak workflow
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-02-12 17:37:39 -07:00
Rachel Powers
de9ebbf99d feat: add flatpak build to workflow
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-02-12 17:14:09 -07:00
Rachel Powers
d6506b6430 Merge branch 'patch' of https://github.com/vkbo/novelWriter into add-flatpak 2023-02-12 16:52:12 -07:00
Rachel Powers
ea7c72a509 feat(flatpak): add a build-flatpak setup command
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-01-09 02:35:05 -07:00
Rachel Powers
a9314cc6d5 refactor: moce flatpak into setup folder
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-01-08 21:28:06 -07:00
Rachel Powers
3da0510a8d fix: redundant word in metadata add period
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-01-08 21:24:47 -07:00
Rachel Powers
20adf39d8b fix: link to flatpak-pip-generator in comment
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-01-08 21:24:47 -07:00
Rachel Powers
02f474504b fix: only use one screenshot as defualt
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-01-08 21:24:47 -07:00
Rachel Powers
427abafe43 feat: add flatpak manifest
Signed-off-by: Rachel Powers <508861+Ryex@users.noreply.github.com>
2023-01-08 21:24:47 -07:00
598 changed files with 103129 additions and 56267 deletions

View File

@@ -2,19 +2,17 @@
Please check the following before you make a pull request:
* The branch you are making the pull request from (in your own fork) has a unique and descriptive
name. Do not make a pull request directly from your copy of `main`.
* If you are submitting translation files, only submit the files that you have added translations
to, not the other .ts files that may have been updated in the process.
name. Do not make a pull request directly from your copy of `main` or `release`.
* Make sure your contribution follows the style guide and other requirements mentioned in the
CONTRIBUTING.md file in the repository.
* Fill in the Summary section below, and if relevant, mention the issue numbers related to the PR.
-->
**Summary:**
### Summary
**Related Issue(s):**
### Related Issue(s)
**Reviewer's Checklist:**
### Reviewer's Checklist
* [ ] The header of all files contain a reference to the repository license
* [ ] The overall test coverage is increased or remains the same as before

33
.github/workflows/build_all.yml vendored Normal file
View File

@@ -0,0 +1,33 @@
name: Build All
on: workflow_dispatch
jobs:
buildAssets:
uses: ./.github/workflows/part_assets.yml
with:
icons-free: true
icons-non-free: true
permissions:
contents: read
buildLinux-AppImage:
needs: buildAssets
uses: ./.github/workflows/part_appimage.yml
secrets: inherit
permissions:
contents: read
buildLinux-Flatpak:
needs: buildAssets
uses: ./.github/workflows/part_flatpak.yml
secrets: inherit
permissions:
contents: read
buildWin-X64:
needs: buildAssets
uses: ./.github/workflows/part_win_x64.yml
secrets: inherit
permissions:
contents: read

View File

@@ -1,39 +0,0 @@
name: BuildAssets
on: workflow_call
jobs:
buildAssets:
runs-on: ubuntu-latest
steps:
- name: Python Setup
uses: actions/setup-python@v5
with:
python-version: "3.13"
architecture: x64
- name: Install Packages (apt)
run: |
sudo apt update
sudo apt install qttools5-dev-tools latexmk texlive texlive-latex-extra
- name: Checkout Source
uses: actions/checkout@v4
- name: Install Packages (pip)
run: pip install -U -r requirements.txt -r docs/requirements.txt
- name: Build Assets
run: |
python pkgutils.py build-assets
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: nw-assets
path: |
novelwriter/assets/manual*.pdf
novelwriter/assets/sample.zip
novelwriter/assets/i18n/*.qm
if-no-files-found: error
retention-days: 14

View File

@@ -1,46 +0,0 @@
name: BuildLinux
on: workflow_dispatch
jobs:
buildAssets:
uses: ./.github/workflows/build_assets.yml
buildLinux-AppImage:
needs: buildAssets
runs-on: ubuntu-latest
env:
PYTHON_VERSION: "3.13"
LINUX_TAG: "manylinux_2_28_x86_64"
steps:
- name: Python Setup
uses: actions/setup-python@v5
with:
python-version: "3.13"
architecture: x64
- name: Install Packages (pip)
run: pip install python-appimage
- name: Checkout Source
uses: actions/checkout@v4
- name: Download Artifacts
uses: actions/download-artifact@v4
with:
name: nw-assets
path: novelwriter/assets
- name: Build AppImage
id: build
run: |
echo "BUILD_VERSION=$(python pkgutils.py version)" >> $GITHUB_OUTPUT
python pkgutils.py build-appimage --linux-tag $LINUX_TAG --python-version $PYTHON_VERSION
- name: Upload Artifacts
uses: actions/upload-artifact@v4
with:
name: novelWriter-${{ steps.build.outputs.BUILD_VERSION }}-Linux-AppImage
path: dist_appimage/*.AppImage*
if-no-files-found: error
retention-days: 14

View File

@@ -0,0 +1,26 @@
name: Build Linux Images
on: workflow_dispatch
jobs:
buildAssets:
uses: ./.github/workflows/part_assets.yml
with:
icons-free: true
icons-non-free: true
permissions:
contents: read
buildLinux-AppImage:
needs: buildAssets
uses: ./.github/workflows/part_appimage.yml
secrets: inherit
permissions:
contents: read
buildLinux-Flatpak:
needs: buildAssets
uses: ./.github/workflows/part_flatpak.yml
secrets: inherit
permissions:
contents: read

150
.github/workflows/build_linux_native.yml vendored Normal file
View File

@@ -0,0 +1,150 @@
name: Build Linux Native
on:
workflow_dispatch:
inputs:
publish:
required: false
description: "Publish to Cloudsmith?"
type: boolean
default: false
build_number:
required: false
description: "Build Number"
type: string
default: "0"
debian12:
required: false
description: "Debian 12 (Bookworm)"
type: boolean
default: true
debian13:
required: false
description: "Debian 13 (Trixie)"
type: boolean
default: true
ubuntu2404:
required: false
description: "Ubuntu 24.04 (Noble)"
type: boolean
default: true
ubuntu2604:
required: false
description: "Ubuntu 26.04 (Resolute)"
type: boolean
default: true
ubuntu2610:
required: false
description: "Ubuntu 26.10 (Stonking)"
type: boolean
default: true
mint22:
required: false
description: "Linux Mint 22 (Wilma)"
type: boolean
default: true
jobs:
buildAssets:
uses: ./.github/workflows/part_assets.yml
with:
icons-free: true
icons-non-free: true
permissions:
contents: read
buildAndPublish-Debian12:
name: Debian 12 (Bookworm)
needs: buildAssets
uses: ./.github/workflows/part_debian.yml
with:
publish: ${{ inputs.publish }}
build_number: ${{ inputs.build_number }}
codename: bookworm
family: debian
image: debian:12
secrets: inherit
if: ${{ inputs.debian12 }}
permissions:
id-token: write
contents: read
buildAndPublish-Debian13:
name: Debian 13 (Trixie)
needs: buildAssets
uses: ./.github/workflows/part_debian.yml
with:
publish: ${{ inputs.publish }}
build_number: ${{ inputs.build_number }}
codename: trixie
family: debian
image: debian:13
secrets: inherit
if: ${{ inputs.debian13 }}
permissions:
id-token: write
contents: read
buildAndPublish-Ubuntu2404:
name: Ubuntu 24.04 (Noble)
needs: buildAssets
uses: ./.github/workflows/part_debian.yml
with:
publish: ${{ inputs.publish }}
build_number: ${{ inputs.build_number }}
codename: noble
family: ubuntu
image: ubuntu:24.04
secrets: inherit
if: ${{ inputs.ubuntu2404 }}
permissions:
id-token: write
contents: read
buildAndPublish-Ubuntu2604:
name: Ubuntu 26.04 (Resolute)
needs: buildAssets
uses: ./.github/workflows/part_debian.yml
with:
publish: ${{ inputs.publish }}
build_number: ${{ inputs.build_number }}
codename: resolute
family: ubuntu
image: ubuntu:26.04
secrets: inherit
if: ${{ inputs.ubuntu2604 }}
permissions:
id-token: write
contents: read
buildAndPublish-Ubuntu2610:
name: Ubuntu 26.10 (Stonking)
needs: buildAssets
uses: ./.github/workflows/part_debian.yml
with:
publish: ${{ inputs.publish }}
build_number: ${{ inputs.build_number }}
codename: stonking
family: ubuntu
image: ubuntu:26.10
secrets: inherit
if: ${{ inputs.ubuntu2610 }}
permissions:
id-token: write
contents: read
buildAndPublish-Mint22:
name: Linux Mint 22 (Wilma)
needs: buildAssets
uses: ./.github/workflows/part_debian.yml
with:
publish: ${{ inputs.publish }}
build_number: ${{ inputs.build_number }}
codename: wilma
family: linuxmint
image: linuxmintd/mint22-amd64
secrets: inherit
if: ${{ inputs.mint22 }}
permissions:
id-token: write
contents: read

View File

@@ -1,69 +1,26 @@
name: BuildMacOS
name: Build MacOS
on: workflow_dispatch
jobs:
buildAssets:
uses: ./.github/workflows/build_assets.yml
uses: ./.github/workflows/part_assets.yml
with:
icons-free: true
icons-non-free: true
permissions:
contents: read
buildMac-AMD64:
needs: buildAssets
runs-on: macos-latest
env:
PYTHON_VERSION: "3.13"
PACKAGE_ARCH: x86_64
MINICONDA_ARCH: x86_64
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download Artifacts
uses: actions/download-artifact@v4
with:
name: nw-assets
path: novelwriter/assets
- name: Build App Bundle
id: build
run: |
echo "BUILD_VERSION=$(python pkgutils.py version)" >> $GITHUB_OUTPUT
./setup/macos/build.sh $PYTHON_VERSION $PACKAGE_ARCH $MINICONDA_ARCH
- name: Upload DMG
uses: actions/upload-artifact@v4
with:
name: novelWriter-${{ steps.build.outputs.BUILD_VERSION }}-MacOS-AMD64-DMG
path: dist_macos/*.dmg*
if-no-files-found: error
retention-days: 14
uses: ./.github/workflows/part_macos_amd64.yml
secrets: inherit
permissions:
contents: read
buildMac-M1:
needs: buildAssets
runs-on: macos-latest
env:
PYTHON_VERSION: "3.13"
PACKAGE_ARCH: aarch64
MINICONDA_ARCH: arm64
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Download Artifacts
uses: actions/download-artifact@v4
with:
name: nw-assets
path: novelwriter/assets
- name: Build App Bundle
id: build
run: |
echo "BUILD_VERSION=$(python pkgutils.py version)" >> $GITHUB_OUTPUT
./setup/macos/build.sh $PYTHON_VERSION $PACKAGE_ARCH $MINICONDA_ARCH
- name: Upload DMG
uses: actions/upload-artifact@v4
with:
name: novelWriter-${{ steps.build.outputs.BUILD_VERSION }}-MacOS-M1-DMG
path: dist_macos/*.dmg*
if-no-files-found: error
retention-days: 14
uses: ./.github/workflows/part_macos_m1.yml
secrets: inherit
permissions:
contents: read

View File

@@ -1,62 +1,19 @@
name: BuildWindows
name: Build Windows
on: workflow_dispatch
jobs:
buildAssets:
uses: ./.github/workflows/build_assets.yml
uses: ./.github/workflows/part_assets.yml
with:
icons-free: true
icons-non-free: true
permissions:
contents: read
buildWin64:
buildWin-X64:
needs: buildAssets
runs-on: windows-latest
steps:
- name: Python Setup
uses: actions/setup-python@v5
with:
python-version: "3.13"
architecture: x64
- name: Checkout Source
uses: actions/checkout@v4
- name: Download Assets
uses: actions/download-artifact@v4
with:
name: nw-assets
path: novelwriter/assets
- name: Build Setup Installer
id: build
run: |
echo "BUILD_VERSION=$(python pkgutils.py version)" >> $Env:GITHUB_OUTPUT
python pkgutils.py build-win-exe
- name: Upload Unsigned Artifacts
id: upload-unsigned-artifact
uses: actions/upload-artifact@v4
with:
name: novelWriter-${{ steps.build.outputs.BUILD_VERSION }}-Win-Setup
path: dist/*.exe
if-no-files-found: error
retention-days: 14
- name: Submit Signing Request
uses: signpath/github-action-submit-signing-request@v1
with:
api-token: "${{ secrets.SIGNPATH_API_TOKEN }}"
organization-id: "0471e52c-66fa-4e9a-bfb9-36167095ca3f"
project-slug: "novelWriter"
signing-policy-slug: "release-signing "
github-artifact-id: "${{ steps.upload-unsigned-artifact.outputs.artifact-id }}"
wait-for-completion: true
output-artifact-directory: "dist/"
parameters: |
version: "${{ steps.build.outputs.BUILD_VERSION }}"
- name: Upload Signed Artifacts
uses: actions/upload-artifact@v4
with:
name: novelWriter-${{ steps.build.outputs.BUILD_VERSION }}-Win-Setup-Signed
path: dist/*.exe
if-no-files-found: error
retention-days: 14
uses: ./.github/workflows/part_win_x64.yml
secrets: inherit
permissions:
contents: read

View File

@@ -1,13 +1,15 @@
name: BuildWindowsLauncher
name: Build Windows Launcher
on: workflow_dispatch
jobs:
buildLauncherWin64:
runs-on: windows-latest
permissions:
contents: read
steps:
- name: Checkout Source
uses: actions/checkout@v4
uses: actions/checkout@v7
- name: Build Launcher
id: build
@@ -17,7 +19,7 @@ jobs:
- name: Upload Unsigned Artifacts
id: upload-unsigned-artifact
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: launcher
path: setup/windows/novelWriter.exe
@@ -25,7 +27,7 @@ jobs:
retention-days: 14
- name: Submit Signing Request
uses: signpath/github-action-submit-signing-request@v1
uses: signpath/github-action-submit-signing-request@v2
with:
api-token: "${{ secrets.SIGNPATH_API_TOKEN }}"
organization-id: "0471e52c-66fa-4e9a-bfb9-36167095ca3f"
@@ -37,7 +39,7 @@ jobs:
output-artifact-directory: "."
- name: Upload Signed Artifacts
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: launcher-signed
path: novelWriter.exe

View File

@@ -1,32 +1,41 @@
name: i18n
on:
push:
pull_request:
branches:
- i18n/*
- main
- release
paths:
- i18n/*.ts
jobs:
buildI18n:
name: Build i18n
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Python Setup
uses: actions/setup-python@v5
uses: actions/setup-python@v6
with:
python-version: "3.13"
python-version: "3.14"
architecture: x64
- name: Install Packages (apt)
- name: Checkout Source
uses: actions/checkout@v7
- name: Install System Packages
run: |
sudo apt update
sudo apt install qttools5-dev-tools
- name: Checkout Source
uses: actions/checkout@v4
- name: Build Assets
run: python pkgutils.py qtlrelease
- name: Upload Artifacts
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v7
with:
name: nw-i18n
path: |
novelwriter/assets/i18n/*.qm
path: novelwriter/assets/i18n/*.qm
if-no-files-found: error
retention-days: 7

View File

@@ -13,9 +13,10 @@ concurrency:
jobs:
action:
name: Lock Old Issues & PRs
runs-on: ubuntu-latest
steps:
- uses: dessant/lock-threads@v5
- uses: dessant/lock-threads@v6
with:
github-token: ${{ github.token }}
issue-inactive-days: 120

141
.github/workflows/part_appimage.yml vendored Normal file
View File

@@ -0,0 +1,141 @@
name: Part-AppImage
on: workflow_call
jobs:
buildLinux-AppImage:
# Needs to stay on 22.04 as long as we're using manylinux_2_28
# as libxcb-cursor0 in 22.04 supports glibc >= 2.17
name: Build AppImage
runs-on: ubuntu-22.04
permissions:
contents: read
env:
PYTHON_VERSION: "3.14"
LINUX_TAG: "manylinux_2_28"
LINUX_ARCH: "x86_64"
steps:
- name: Python Setup
uses: actions/setup-python@v6
with:
python-version: "3.14"
architecture: x64
- name: Install Packages (apt)
run: |
sudo apt update
sudo apt install libxcb-cursor0
- name: Install Packages (pip)
run: pip install python-appimage setuptools
- name: Checkout Source
uses: actions/checkout@v7
- name: Download Artifacts
uses: actions/download-artifact@v8
with:
name: nw-assets
path: novelwriter/assets
- name: Build AppImage
id: build
run: |
wget https://github.com/AppImage/appimagetool/releases/download/continuous/appimagetool-$LINUX_ARCH.AppImage
chmod +x appimagetool-$LINUX_ARCH.AppImage
export APPIMAGE_TOOL_EXEC="$(pwd)/appimagetool-$LINUX_ARCH.AppImage"
echo "BUILD_VERSION=$(python pkgutils.py version)" >> $GITHUB_OUTPUT
python pkgutils.py build-appimage $LINUX_TAG $LINUX_ARCH $PYTHON_VERSION
- name: Upload Artifacts
uses: actions/upload-artifact@v7
with:
name: novelWriter-${{ steps.build.outputs.BUILD_VERSION }}-Linux-AppImage
path: dist_appimage/*.AppImage*
if-no-files-found: error
retention-days: 14
smokeTest:
name: Smoke Test AppImage (${{ matrix.distro }})
needs: buildLinux-AppImage
runs-on: ubuntu-22.04
permissions:
contents: read
strategy:
fail-fast: false
matrix:
include:
- distro: Ubuntu 22.04
image: ubuntu:22.04
- distro: Debian 12
image: debian:12
- distro: Fedora 40
image: fedora:40
- distro: Arch Linux
image: archlinux:latest
- distro: Manjaro
image: manjarolinux/base:latest
container:
image: ${{ matrix.image }}
steps:
- name: Install Runtime Dependencies
run: |
if command -v apt-get >/dev/null 2>&1; then
apt-get update
apt-get install -y ca-certificates libgl1 libxkbcommon0 libegl1 libfontconfig1 libglib2.0-0 libdbus-1-3
elif command -v dnf >/dev/null 2>&1; then
dnf install -y ca-certificates coreutils mesa-libGL mesa-libEGL libxkbcommon fontconfig glib2 dbus-libs
elif command -v pacman >/dev/null 2>&1; then
pacman -Syu --noconfirm --needed ca-certificates coreutils mesa libxkbcommon fontconfig glib2 dbus
fi
- name: Download AppImage Artifact
uses: actions/download-artifact@v8
with:
pattern: novelWriter-*-Linux-AppImage
merge-multiple: true
path: appimage-dist
- name: Run AppImage Smoke Test
run: |
set -eu
APPIMAGE_FILE="$(find appimage-dist -maxdepth 1 -name '*.AppImage' | head -n1)"
if [ -z "$APPIMAGE_FILE" ]; then
echo "No AppImage artifact found"
exit 1
fi
chmod +x "$APPIMAGE_FILE"
export QT_QPA_PLATFORM=offscreen
export QT_NO_XDG_DESKTOP_PORTAL=1
export APPIMAGE_EXTRACT_AND_RUN=1
set +e
timeout 25s "$APPIMAGE_FILE" > smoke.log 2>&1
EXIT_CODE=$?
set -e
if [ "$EXIT_CODE" -eq 139 ]; then
echo "AppImage crashed with segmentation fault"
exit 1
fi
if grep -Eiq 'segmentation fault|core dumped' smoke.log; then
echo "Crash signature found in smoke log"
exit 1
fi
if [ "$EXIT_CODE" -ne 0 ] && [ "$EXIT_CODE" -ne 124 ]; then
echo "Unexpected exit code: $EXIT_CODE"
cat smoke.log
exit 1
fi
- name: Upload Smoke Logs
if: always()
uses: actions/upload-artifact@v7
with:
name: appimage-smoke-log-${{ matrix.distro }}
path: smoke.log
if-no-files-found: ignore
retention-days: 14

62
.github/workflows/part_assets.yml vendored Normal file
View File

@@ -0,0 +1,62 @@
name: Part-Assets
on:
workflow_call:
inputs:
icons-free:
required: true
type: boolean
icons-non-free:
required: true
type: boolean
jobs:
buildAssets:
name: Build Assets
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Checkout Source
uses: actions/checkout@v7
- name: Install System Packages
run: |
sudo apt-get update
sudo apt-get install -y qttools5-dev-tools latexmk texlive texlive-latex-extra
- name: Install UV and Python
uses: astral-sh/setup-uv@v10.0.1
with:
python-version: "3.14"
enable-cache: true
- name: Install Dependencies
run: |
uv sync --no-dev --group docs
- name: Build Assets
run: |
uv run --no-sync pkgutils.py build-assets
- name: Build Free Icons
if: ${{ inputs.icons-free }}
run: |
uv run --no-sync pkgutils.py icons free
- name: Build Non-Free Icons
if: ${{ inputs.icons-non-free }}
run: |
uv run --no-sync pkgutils.py icons non-free
- name: Upload Artifacts
uses: actions/upload-artifact@v7
with:
name: nw-assets
path: |
novelwriter/assets/manual*.pdf
novelwriter/assets/sample.zip
novelwriter/assets/i18n/*.qm
novelwriter/assets/icons/*.icons
if-no-files-found: error
retention-days: 14

82
.github/workflows/part_debian.yml vendored Normal file
View File

@@ -0,0 +1,82 @@
name: Part-Debian
on:
workflow_call:
inputs:
publish:
required: false
type: boolean
default: false
build_number:
required: false
type: string
default: "0"
codename:
required: true
type: string
family:
required: true
type: string
image:
required: true
type: string
secrets:
CLOUDSMITH_API_KEY:
required: false
jobs:
buildPackage:
name: Build Debian Package
runs-on: ubuntu-latest
permissions:
id-token: write
contents: read
container:
image: ${{ inputs.image }}
steps:
- name: Install Checkout Prerequisites
run: |
apt-get update
apt-get install -y git ca-certificates python3
- name: Checkout Source
uses: actions/checkout@v7
- name: Download Assets Artifact
uses: actions/download-artifact@v8
with:
name: nw-assets
path: novelwriter/assets
- name: Install Native Packages
run: apt-get install -y $(python3 pkgutils.py build-deb-depends ${{ inputs.codename }})
- name: Build Package
run: python3 pkgutils.py build-deb ${{ inputs.codename }} --build ${{ inputs.build_number }}
- name: Upload Artifacts
uses: actions/upload-artifact@v7
with:
name: nw-deb-${{ inputs.codename }}
path: dist_upload/*
if-no-files-found: error
retention-days: 14
- name: Set up Cloudsmith CLI with OIDC
if: ${{ inputs.publish }}
uses: cloudsmith-io/cloudsmith-cli-action@v3
with:
oidc-namespace: "saga-soft"
oidc-service-slug: "github-actions-lcpr"
verify-auth: true
- name: Publish to Cloudsmith
if: ${{ inputs.publish }}
run: |
CHANNEL="$(python3 pkgutils.py channel)"
REPO="stable"
if [ "$CHANNEL" = "pre" ]; then
REPO="testing"
fi
DEB_FILE="$(find dist_upload -name '*.deb')"
cloudsmith push deb "saga-soft/$REPO/${{ inputs.family }}/${{ inputs.codename }}" "$DEB_FILE" --republish

46
.github/workflows/part_flatpak.yml vendored Normal file
View File

@@ -0,0 +1,46 @@
name: Part-Flatpak
on: workflow_call
jobs:
buildLinux-Flatpak:
runs-on: ubuntu-latest
steps:
- name: Install Packages
run: |
sudo apt-get update
sudo apt-get install -y flatpak flatpak-builder
flatpak remote-add --if-not-exists --user flathub https://flathub.org/repo/flathub.flatpakrepo
- name: Checkout Source
uses: actions/checkout@v7
- name: Install UV and Python
uses: astral-sh/setup-uv@v10.0.1
with:
python-version: "3.14"
enable-cache: true
- name: Install Dependencies
run: |
uv sync --no-dev --group build
- name: Download Artifacts
uses: actions/download-artifact@v8
with:
name: nw-assets
path: novelwriter/assets
- name: Build Flatpak
id: build
run: |
echo "BUILD_VERSION=$(uv run pkgutils.py version)" >> $GITHUB_OUTPUT
uv run --no-sync pkgutils.py build-flatpak
- name: Upload Artifacts
uses: actions/upload-artifact@v7
with:
name: novelWriter-${{ steps.build.outputs.BUILD_VERSION }}-Linux-Flatpak
path: dist_flatpak/*.flatpak*
if-no-files-found: error
retention-days: 14

37
.github/workflows/part_macos_amd64.yml vendored Normal file
View File

@@ -0,0 +1,37 @@
name: Part-MacOS-AMD64
on: workflow_call
jobs:
buildMac-AMD64:
name: Build on MACOS AMD64
runs-on: macos-latest
permissions:
contents: read
env:
PYTHON_VERSION: "3.13"
PACKAGE_ARCH: x86_64
MINICONDA_ARCH: x86_64
steps:
- name: Checkout
uses: actions/checkout@v7
- name: Download Artifacts
uses: actions/download-artifact@v8
with:
name: nw-assets
path: novelwriter/assets
- name: Build App Bundle
id: build
run: |
echo "BUILD_VERSION=$(python pkgutils.py version)" >> $GITHUB_OUTPUT
./setup/macos/build.sh $PYTHON_VERSION $PACKAGE_ARCH $MINICONDA_ARCH
- name: Upload DMG
uses: actions/upload-artifact@v7
with:
name: novelWriter-${{ steps.build.outputs.BUILD_VERSION }}-MacOS-AMD64-DMG
path: dist_macos/*.dmg*
if-no-files-found: error
retention-days: 14

37
.github/workflows/part_macos_m1.yml vendored Normal file
View File

@@ -0,0 +1,37 @@
name: Part-MacOS-M1
on: workflow_call
jobs:
buildMac-M1:
name: Build on MacOS AARCH64
runs-on: macos-latest
permissions:
contents: read
env:
PYTHON_VERSION: "3.13"
PACKAGE_ARCH: aarch64
MINICONDA_ARCH: arm64
steps:
- name: Checkout
uses: actions/checkout@v7
- name: Download Artifacts
uses: actions/download-artifact@v8
with:
name: nw-assets
path: novelwriter/assets
- name: Build App Bundle
id: build
run: |
echo "BUILD_VERSION=$(python pkgutils.py version)" >> $GITHUB_OUTPUT
./setup/macos/build.sh $PYTHON_VERSION $PACKAGE_ARCH $MINICONDA_ARCH
- name: Upload DMG
uses: actions/upload-artifact@v7
with:
name: novelWriter-${{ steps.build.outputs.BUILD_VERSION }}-MacOS-M1-DMG
path: dist_macos/*.dmg*
if-no-files-found: error
retention-days: 14

61
.github/workflows/part_win_x64.yml vendored Normal file
View File

@@ -0,0 +1,61 @@
name: Part-Windows-X64
on: workflow_call
jobs:
buildWin-X64:
name: Build on Windows
runs-on: windows-2022
permissions:
contents: read
steps:
- name: Python Setup
uses: actions/setup-python@v6
with:
python-version: "3.14"
architecture: x64
- name: Checkout Source
uses: actions/checkout@v7
- name: Download Assets
uses: actions/download-artifact@v8
with:
name: nw-assets
path: novelwriter/assets
- name: Build Setup Installer
id: build
run: |
echo "BUILD_VERSION=$(python pkgutils.py version)" >> $Env:GITHUB_OUTPUT
python pkgutils.py build-win-exe
- name: Upload Unsigned Artifacts
id: upload-unsigned-artifact
uses: actions/upload-artifact@v7
with:
name: novelWriter-${{ steps.build.outputs.BUILD_VERSION }}-Win-Setup
path: dist/*.exe
if-no-files-found: error
retention-days: 14
- name: Submit Signing Request
uses: signpath/github-action-submit-signing-request@v1
with:
api-token: "${{ secrets.SIGNPATH_API_TOKEN }}"
organization-id: "0471e52c-66fa-4e9a-bfb9-36167095ca3f"
project-slug: "novelWriter"
signing-policy-slug: "release-signing "
github-artifact-id: "${{ steps.upload-unsigned-artifact.outputs.artifact-id }}"
wait-for-completion: true
output-artifact-directory: "dist/"
parameters: |
version: "${{ steps.build.outputs.BUILD_VERSION }}"
- name: Upload Signed Artifacts
uses: actions/upload-artifact@v7
with:
name: novelWriter-${{ steps.build.outputs.BUILD_VERSION }}-Win-Setup-Signed
path: dist/*.exe
if-no-files-found: error
retention-days: 14

View File

@@ -1,4 +1,4 @@
name: Linting
name: Syntax
on:
push:
@@ -12,26 +12,30 @@ on:
jobs:
checkSyntax:
name: Linting and Type Checking
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Python Setup
uses: actions/setup-python@v5
with:
python-version: 3
architecture: x64
- name: Checkout Source
uses: actions/checkout@v4
uses: actions/checkout@v7
- name: Install UV and Python
uses: astral-sh/setup-uv@v10.0.1
with:
enable-cache: true
- name: Install Dependencies
run: pip install -r requirements.txt -r requirements-dev.txt
run: |
uv sync --no-dev --group lint
- name: Ruff Check
run: |
ruff --version
ruff check
uv run --no-sync ruff --version
uv run --no-sync ruff format --check
uv run --no-sync ruff check --output-format github
- name: Pyright Check
run: |
pyright --version
pyright
- name: Isort Check
run: |
isort --version
isort --check .
uv run --no-sync pyright --version
uv run --no-sync pyright

View File

@@ -1,46 +0,0 @@
name: Linux
on:
push:
branches:
- main
- release
pull_request:
branches:
- main
- release
jobs:
testLinux:
strategy:
matrix:
python-version: ["3.10", "3.11", "3.12", "3.13"]
fail-fast: false
runs-on: ubuntu-latest
steps:
- name: Python Setup
uses: actions/setup-python@v5
with:
python-version: ${{ matrix.python-version }}
architecture: x64
- name: Install Packages (apt)
run: |
sudo apt update
sudo apt install libenchant-2-dev qttools5-dev-tools
- name: Checkout Source
uses: actions/checkout@v4
- name: Install Dependencies (pip)
run: |
pip install -U -r requirements.txt -r tests/requirements.txt
- name: Run Build Commands
run: |
python pkgutils.py qtlrelease
python pkgutils.py sample
- name: Run Tests
run: |
export QT_QPA_PLATFORM=offscreen
python -m pytest -v --cov=novelwriter --timeout=60
- name: Upload to Codecov
uses: codecov/codecov-action@v5
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

View File

@@ -1,37 +0,0 @@
name: MacOS
on:
push:
branches:
- main
- release
pull_request:
branches:
- main
- release
jobs:
testMac:
runs-on: macos-13
steps:
- name: Python Setup
uses: actions/setup-python@v5
with:
python-version: "3.13"
architecture: x64
- name: Install Packages (brew)
run: |
brew install enchant
- name: Checkout Source
uses: actions/checkout@v4
- name: Install Dependencies (pip)
run: |
pip install -U pyobjc -r requirements.txt -r tests/requirements.txt
- name: Run Tests
run: |
export QT_QPA_PLATFORM=offscreen
python -m pytest -v --cov=novelwriter --timeout=60
- name: Upload to Codecov
uses: codecov/codecov-action@v5
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

View File

@@ -1,33 +0,0 @@
name: Windows
on:
push:
branches:
- main
- release
pull_request:
branches:
- main
- release
jobs:
testWin:
runs-on: windows-latest
steps:
- name: Python Setup
uses: actions/setup-python@v5
with:
python-version: "3.13"
architecture: x64
- name: Checkout Source
uses: actions/checkout@v4
- name: Install Dependencies (pip)
run: |
pip install -U -r requirements.txt -r tests/requirements.txt
- name: Run Tests
run: |
python -m pytest -v --cov=novelwriter --timeout=60
- name: Upload to Codecov
uses: codecov/codecov-action@v5
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

304
.github/workflows/tests.yml vendored Normal file
View File

@@ -0,0 +1,304 @@
name: Tests
on:
push:
branches:
- main
- release
pull_request:
branches:
- main
- release
jobs:
testLinux:
runs-on: ubuntu-latest
strategy:
matrix:
python-version:
- "3.11"
- "3.12"
- "3.13"
- "3.14"
fail-fast: false
name: Linux Python ${{ matrix.python-version }}
permissions:
contents: read
env:
COVERAGE_FILE: .coverage.py${{ matrix.python-version }}
steps:
- name: Checkout Source
uses: actions/checkout@v7
- name: Install System Packages
run: |
sudo apt update
sudo apt install qttools5-dev-tools
- name: Install UV and Python
uses: astral-sh/setup-uv@v10.0.1
with:
python-version: ${{ matrix.python-version }}
enable-cache: true
- name: Install Dependencies
run: |
uv sync --no-dev --group test
- name: Build Assets
run: |
uv run --no-sync pkgutils.py qtlrelease
uv run --no-sync pkgutils.py sample
- name: Run Tests
run: |
export QT_QPA_PLATFORM=offscreen
uv run --no-sync coverage run -m pytest -v --timeout=60
uv run --no-sync coverage report --skip-covered --show-missing
- name: Upload Coverage Data
uses: actions/upload-artifact@v7
with:
name: coverage-data-py${{ matrix.python-version }}
path: ${{ env.COVERAGE_FILE }}
include-hidden-files: true
retention-days: 1
testMac:
runs-on: macos-latest
name: MacOS Python 3.14
permissions:
contents: read
env:
COVERAGE_FILE: .coverage.mac
steps:
- name: Checkout Source
uses: actions/checkout@v7
- name: Install System Packages
run: |
brew install enchant
- name: Install UV and Python
uses: astral-sh/setup-uv@v10.0.1
with:
python-version: "3.14"
enable-cache: true
- name: Install Dependencies
run: |
uv sync --no-dev --group test
- name: Build Assets
run: |
uv run --no-sync pkgutils.py sample
- name: Run Tests
run: |
export QT_QPA_PLATFORM=offscreen
uv run --no-sync coverage run -m pytest -v --timeout=60
uv run --no-sync coverage report --skip-covered --show-missing
- name: Upload Coverage Data
uses: actions/upload-artifact@v7
with:
name: coverage-data-mac
path: ${{ env.COVERAGE_FILE }}
include-hidden-files: true
retention-days: 1
testWin:
runs-on: windows-latest
name: Windows Python 3.14
permissions:
contents: read
env:
COVERAGE_FILE: .coverage.win
defaults:
run:
shell: bash
steps:
- name: Checkout Source
uses: actions/checkout@v7
- name: Install UV and Python
uses: astral-sh/setup-uv@v10.0.1
with:
python-version: "3.14"
enable-cache: true
- name: Install Dependencies
run: |
uv sync --no-dev --group test
- name: Build Assets
run: |
uv run --no-sync pkgutils.py sample
- name: Run Tests
run: |
uv run --no-sync coverage run -m pytest -v --timeout=60
uv run --no-sync coverage report --skip-covered --show-missing
- name: Upload Coverage Data
uses: actions/upload-artifact@v7
with:
name: coverage-data-win
path: ${{ env.COVERAGE_FILE }}
include-hidden-files: true
retention-days: 1
coverageReport:
name: PR Coverage Report
needs:
- testLinux
- testMac
- testWin
if: github.event_name == 'pull_request' && github.event.pull_request.head.repo.full_name == github.repository
runs-on: ubuntu-latest
permissions:
contents: read
pull-requests: write
steps:
- name: Checkout Source
uses: actions/checkout@v7
- name: Download Coverage Data
uses: actions/download-artifact@v8
with:
pattern: coverage-data-*
merge-multiple: true
- name: Install UV
uses: astral-sh/setup-uv@v10.0.1
- name: Combine Coverage Data
run: |
uvx coverage combine
uvx coverage report --skip-covered
- name: Build Comment Body
run: |
{
echo '<!-- coverage-report -->'
echo '### Coverage Report (Linux, macOS, Windows)'
echo
uvx coverage report --skip-covered --show-missing --format=markdown --precision=3
echo
echo "**Total: $(uvx coverage report --format=total --precision=3)%**"
} > coverage-comment.md
- name: Post PR Comment
env:
GH_TOKEN: ${{ github.token }}
PR_NUMBER: ${{ github.event.pull_request.number }}
REPO: ${{ github.repository }}
run: |
comment_id=$(gh api "repos/$REPO/issues/$PR_NUMBER/comments" --paginate --jq '.[] | select(.body | startswith("<!-- coverage-report -->")) | .id' | head -n1)
if [ -n "$comment_id" ]; then
gh api --method PATCH "repos/$REPO/issues/comments/$comment_id" -F body=@coverage-comment.md
else
gh pr comment "$PR_NUMBER" --body-file coverage-comment.md
fi
coverageSummary:
name: Action Coverage Report
needs:
- testLinux
- testMac
- testWin
if: github.event_name == 'pull_request'
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Checkout Source
uses: actions/checkout@v7
- name: Download Coverage Data
uses: actions/download-artifact@v8
with:
pattern: coverage-data-*
merge-multiple: true
- name: Install UV
uses: astral-sh/setup-uv@v10.0.1
- name: Combine Coverage Data
run: |
uvx coverage combine
uvx coverage report --skip-covered
- name: Write Coverage Summary
run: |
{
echo '### Coverage Report (Linux, macOS, Windows)'
echo
uvx coverage report --skip-covered --show-missing --format=markdown --precision=3
echo
echo "**Total: $(uvx coverage report --format=total --precision=3)%**"
} >> "$GITHUB_STEP_SUMMARY"
testUbuntu24:
name: Ubuntu 24.04 & Sys Packages
runs-on: ubuntu-24.04
permissions:
contents: read
steps:
- name: Checkout Source
uses: actions/checkout@v7
- name: Install System Packages
run: |
sudo apt update
sudo apt install \
python3-pyqt6 \
python3-pyqt6.qtsvg \
python3-pytest \
python3-pytestqt \
python3-enchant \
python3-pytest-timeout \
qt6-image-formats-plugins
- name: Build Assets
run: |
python3 pkgutils.py sample
- name: Run Tests
run: |
export QT_QPA_PLATFORM=offscreen
python3 -m pytest -v --timeout=60
testFedoraLatest:
name: Fedora 44 & Sys Packages
runs-on: ubuntu-latest
container:
image: fedora:44
permissions:
contents: read
steps:
- name: Install System Packages
run: |
dnf -y update
dnf -y install \
git \
python3-enchant \
python3-pyqt6 \
python3-pytest \
python3-pytest-qt \
python3-pytest-timeout \
qt6-linguist \
qt6-qtimageformats
- name: Checkout Source
uses: actions/checkout@v7
- name: Run Build Commands
run: |
python pkgutils.py qtlrelease
python pkgutils.py sample
- name: Run Tests
run: |
export QT_QPA_PLATFORM=offscreen
python3 -m pytest -v --timeout=60

32
.gitignore vendored
View File

@@ -12,6 +12,7 @@ setup.iss
/novelWriter.pyw
/setup/macos/Info.plist
/setup/windows/build
.flatpak-builder
.venv
# Translations
@@ -20,13 +21,14 @@ setup.iss
i18n/*.qm
i18n/*.qph
# Icons Themes Except Material Symbols
/novelwriter/assets/icons/*.icons
!/novelwriter/assets/icons/material_*.icons
# Documentation
/docs/build/
/docs/source/locales/**/*.mo
/novelwriter/assets/help/
/novelwriter/assets/manual*.pdf
*.qch
*.qhc
.~lock.*
# Python Temp
@@ -35,27 +37,25 @@ __pycache__
# Sample Project
/novelwriter/assets/sample.zip
/sample/cache
/sample/meta
*.bak
*.lock
ToC.txt
/sample/**/*.bak
/sample/*.lock
/sample/ToC.txt
# PyTest
/prof/
/htmlcov/
/tests/temp
/tests/lipsum/cache
/tests/lipsum/meta
/tests/_temp
/.pytest_cache
/pytestdebug.log
# Coverage
/.coverage
/.coveragerc
/coverage.*
# Other
/test.py
.config
.local
*.patch
@@ -63,3 +63,15 @@ ToC.txt
# IDE
.vscode
.ruff_cache
# No AI files
AGENTS.md
CLAUSE.md
GEMINI.md
.claude/
.cursor*
.codex/
.gemini/
# Debug
/debug/

View File

@@ -1,5 +1,904 @@
# novelWriter Changelog
## Version 2026.2 [2026-09-05]
### Release Notes
The 2026.2 release is based on the features added in 2026.2 Beta 1, Beta 2, RC 1.
See the website for complete [Release Notes](https://novelwriter.io/releases/release_26_2.html).
### Detailed Changelog
**Bugfixes**
* Fixed a bug on macOS where using the system's native font selection dialog did not apply the
selected font, since Qt's native panel does not confirm the choice with an OK button. By
@kkostov. PR #2970.
* Fixed a bug from the Beta 1 release where tab widgets could show a border despite having flat
tabs enabled. By @vkbo. PR #2971.
* Fixed a bug from the Beta 1 release where pasting rich text could repeat formatting
unnecessarily when the source contained overlapping hidden formats. Restored the ability to
paste as plain text, now bound to `Ctrl+Shift+V`, which was lost when rich text paste was
introduced. By @vkbo. Issues #2978 and #2979. PR #2980.
* Fixed missing theme colours in the Dark Arts and Ruby Night themes added in the Beta 2 release.
By @HeyMyian. PR #3003.
**User Interface**
* Changed the default line height from 1.0 to 1.15, the default font on Windows to Segoe UI, and
reduced the default application font size from 10pt to 9pt. By @HeyMyian. Discussed in #2955.
PR #2998.
**Other Changes**
* Bumped the project file format version to 1.6 to block the project from being opened by older
versions of novelWriter that cannot read it correctly anyway. By @vkbo. PR #2984.
**Packaging**
* Rewrote the Debian package build to publish through a package registry, with build versions now
selectable and Linux Mint added as a supported target. By @vkbo. PRs #2986 and #2990.
**Internationalisation**
* The Norwegian, US English, German, Italian, Japanese, Polish and Portuguese translations are
now complete, and the Catalan translation has been updated. Translations are contributed via
[Crowdin](https://crowdin.com/project/novelwriter). PR #2968.
----
## Version 2026.2 RC 1 [2026-08-09]
### Release Notes
This is a release candidate of the next release version, and is intended for testing purposes.
Please be careful when using this version on live writing projects, and make sure you take frequent
backups.
Note that 2026.2 Beta 2 and newer upgrades a project on first load, so it can no longer be opened
in an older version of novelWriter. 2026.2 Beta 1 and newer also updates the main config file, but
leaves the old one in place, so this is not blocking older versions but be aware that the config
changes do not pass between the old and new config files once the new config file exists.
### Detailed Changelog
**Bugfixes**
* Fixed a bug in the updated drag and drop implementation in the project tree from the Beta 1
release. The tree no longer allowed an item to be dropped on top of another to make it a child of
the item. Issue #2953. PR #2954.
**Improvements**
* Improved dialogue highlighting for single-quoted dialogue when the text included apostrophes.
Discussed in #2633. PR #2956.
* Updated the new project builder so it doesn't claim the index is broken the first time it is
opened. It is only "broken" in the sense that it is missing the first time. The index is now
built when the project is created, so the warning no longer appears. Issue #2952. PR #2954.
**Documentation**
* Removed broken link and associated instructions on the dictionary install page. PR #2951.
----
## Version 2026.2 Beta 2 [2026-08-02]
### Release Notes
This is a beta release of the next release version, and is intended for testing purposes. Please be
careful when using this version on live writing projects, and make sure you take frequent backups.
### Detailed Changelog
**Bugfixes**
* Fixed an issue where the wrong theme colours were used for the active and inactive icons in the
project tree context menu. Issue #2941. PR #2946.
* Removed the placeholder text in the Manuscript Tool preview since it used the wrong text colour
on dark themes and anyway is never visible for more than a few milliseconds. Issue #2942.
PR #2946.
* Fixed a bug from the beta 1 release where selecting a piece of text and moving it would cause a
crash. Issue #2917. PR #2918.
* Fixed a re-entrancy bug in the project search tool. Issue #2924. PR #2937.
* Fixed a re-entrancy bug candidate in the status bar message display logic. Issue #2925. PR #2938.
* Fixed a potential segfault candidate, and an incorrect thread pool runnable in the version
check widget. Issue #2926. PR #2938.
* Fixed a bug in the loop that collects navigation headers in the editor, which was ignoring the
max count. Issue #2930. PR #2939.
**Improvements**
* Added more granular theme variables to improve contrast for GUI components. Issue #2910.
PRs #2911, #2915
* Updated themes with new colours and other improvements. By @vkbo and @HeyMyian. Issue #2910.
PRs #2911, #2912, #2916 and #2943.
* Added five new themes, by @HeyMyian. PR #2943.
* Added a character count toggle for project writing goals. Issue #2913. PR #2919.
* Removed all usages of the Qt find block methods inside loops in the editor. These are binary
searches, not lookups, so the cost is higher than I expected. Issue #2930. PR #2939.
* The word counter ran twice on every document search. First once in the editor, then in the
indexer. The run in the editor was removed. Issue #2928. PR #2944.
**Other Changes**
* The way the check against overwriting documents that have been changed on disk is performed has
been improved so that it doesn't always have to read the existing document before writing.
Issue #2929. PR #2945.
* Project documents are now saved as a text document with the `.md` extension and a standard TOML
header instead of the old custom format and extension. Issue #1964. PR #2945.
* Pinned the Python garbage collector to the main gui thread to prevent it from accidentally
triggering in the Qt thread pool. Issue #2927. PR #2940.
* The index cache and project-local gui state JSON files are no longer written on every autosave.
Instead they are only written on manual saves or project close. The index cache is verified
against a revision number on open to catch any stale caches. This was also a potential problem
before, so this change is a general improvement. A stale cache is rebuilt on project open.
Issue #2931. PR #2944.
**Installation**
* Added flatpak for Linux installation. Based on work by @Ryex. Issue #1651. PRs #2906 and #2908.
----
## Version 2026.2 Beta 1 [2026-07-26]
### Release Notes
This is a beta release of the next release version, and is intended for testing purposes. Please be
careful when using this version on live writing projects, and make sure you take frequent backups.
### Detailed Changelog
**Bugfixes**
* Fixed an issue with kerning when printing the manuscript preview on Windows, and changed the
page break marker to a dashed line instead of a solid text block. Issue #2640. PR #2838.
* Fixed tooltip and scrollbar colours not matching the selected theme, a compatibility issue with
newer versions of Qt; custom stylesheets have been replaced with other styling methods, and the
Fusion Qt style is now hard coded, to resolve this properly. Issue #2871. PRs #2877 and #2881.
* Fixed a re-entrancy issue when opening documents, and removed a stray call that could delay
cleanup of objects, improving overall application stability. PR #2840.
* Fixed five memory leaks related to freeing Qt objects created from Python, and added regression
tests to catch similar issues in the future. PRs #2829 and #2830.
**Features**
* Added EPUB 3 as a new manuscript export format. Issue #2058. PR #2283.
* Added dialogue statistics to manuscripts, showing the number of characters used in dialogue and
the ratio of dialogue to prose text. The statistics panel has been moved from below the
manuscript preview to a new tab in the panel on the left. Issue #2096. PR #2841.
* Added a horizontal rule format for manuscript headings. Using four hyphens ("----") as a
heading inserts a line across the page in all output formats. Issue #2755. PRs #2771 and #2772.
* Added a setting for the automatic backup interval, allowing backups to be limited to one per
session, day, week, or month by overwriting the previous backup file, using an unambiguous
ISO8601-based file name format. Issue #2754. PRs #2834 and #2835.
* Added a line height setting for the editor and viewer, applied consistently including to pasted
text. Issues #654 and #2874. PRs #2817 and #2875.
* Added a text zoom feature for the editor and viewer, using the standard Qt zoom shortcuts.
Issue #1280. PR #2822.
* Added highlighting of all search result matches in the editor, in addition to the currently
selected one. Issues #2736 and #2798. PR #2820.
* Added a new format checker that highlights trailing spaces at the end of lines, alongside the
existing check for multiple spaces between words. Issue #2800. PR #2821.
* Added hover cards for tags in the editor and viewer, with buttons to quickly open the
referenced document for editing or viewing. Issue #2857. PR #2859.
* Added filters for text content, document type, and root folder to the project search tool,
available in a new collapsible panel below the search box that updates automatically as root
folders change. Issues #1927 and #2256. PRs #2847 and #2848.
* Added a collapsible panel widget, now used for the item details panel below the project tree
and novel view, which can be hidden, and for the new project search filters panel. PR #2843.
* Added support for pasting rich text (HTML) into the editor, without stripping leading or
trailing whitespace. Issue #2601. PRs #2876 and #2878.
* Added project writing goals with daily progress tracking, shown as progress bars with
sufficient colour contrast in all themes, and correctly reset when starting a new day. Also
added an option to exclude specific root folders from the count. Based on work contributed by
@BlayW. Issue #2223. PRs #2870, #2878, #2887, #2889, #2891 and #2892.
* The symbol auto-replace feature can now also be used in the editor's search and replace boxes,
the project search box, and the header format field in Manuscript Build Settings, and can be
toggled on or off in each. Issue #2261. PRs #2866, #2867 and #2868.
* It is now possible to recursively set the active or inactive state of all documents under a
folder in the project tree from the right-click menu. Issue #2188. PR #2784.
* A checkbox now shows the active project's spell check language in the Tools menu, and the spell
checker is re-run automatically when the language is changed. Issue #2311. PR #2785.
**Improvements**
* Manuscript Build Settings now has an option to enable or disable justify-expansion of lines
with manual line breaks, extended to Open Document and Word Document formats. Issue #2764.
PRs #2769 and #2770.
* The reference list panel now refreshes automatically when the references in a document change,
instead of requiring a manual refresh. Issue #2124. PR #2782.
* Keypress handling in the editor's auto-complete menu has been improved: arrow keys navigate the
list, Left and Escape close it, and Tab, Enter, Return, and Right accept the highlighted entry
or close the menu if nothing is selected. Issue #2742. PR #2743.
* The editor's auto-complete menu has been rewritten to use Qt's native completer widget instead
of a custom menu, improving its look and behaviour. PR #2856.
* Performance of the spell checker has been substantially improved by caching computed highlights
and dictionary lookups, and syntax highlighting and spell checking are now skipped for
excessively long paragraphs (over 20 000 characters) to keep large documents responsive. A
related concurrency issue in the background word counter has also been fixed. PRs #2808, #2861,
#2862 and #2863.
**User Interface**
* Toggle buttons, such as those in the search tools, are now more visible when active, using a
new "toggle" theme colour. A new "searchMatch" theme colour is also used to highlight search
matches in the editor and project search results, and now refreshes immediately when switching
themes. Existing themes have been updated accordingly, including contributions by @HeyMyian.
Issues #2827, #2845 and #2886. PRs #2833, #2844, #2846, #2882 and #2887.
* Restored the flat look of tabs in tab widgets, now implemented with a custom painter instead of
stylesheets for better compatibility with recent versions of Qt. PR #2890.
* Fixed handling of long labels in switches, and in the quick link and header navigation
menus. PR #2850.
**Other Changes**
* The document editor's underlying text widget has been switched back to a full rich text editor
instead of a plain text editor, enabling several of the features in this release, such as line
height, zoom, and pasting rich text; copying text from the editor still produces plain text as
before. This also required narrowing down when the editor is re-initialised, which had caused
some Preferences settings to stop refreshing the GUI properly. Issue #2815. PRs #2816, #2860 and
#2878.
* Spell checking has been moved out of the syntax highlighter and now runs as a chunked, timed
background process, using the same block-based caching approach as the new search highlighting.
PR #2812.
* The application configuration file and all theme files have been converted from Linux-style
config formats to TOML. PRs #2883 and #2885.
* The project search panel has been internally rewritten to use a model/view architecture, with
no intended functional change. PR #2842.
* Internal handling of icons has been changed, with no expected functional impact. PR #2852.
* The viewer code has been merged into the editor folder ahead of further refactoring work.
PR #2880.
* Cleaned up how menu actions with additional data, such as icons and custom data, are created
internally. Issue #2828. PR #2832.
**Code Maintenance**
* Enabled branch coverage in the test suite, added tests for previously uncovered branches, and
fixed a few minor bugs found in the process. PR #2807.
* Hardened flaky tests to reduce occasional segfaults during test runs. PR #2864.
* Updated the default Python version used for testing and embedded in builds to 3.14. PR #2786.
* Updated the Ubuntu versions targeted by packaging and CI. PR #2802.
* Updated icon packages, test helper scripts, and documentation build tooling. PR #2853.
* Added tests to the Debian package build process. PR #2896.
* Various internal linting, naming, and code style improvements, including dropping the redundant
`NW` prefix from most class names. PRs #2779, #2826 and #2831.
----
## Version 2026.1.2 [2026-07-25]
### Release Notes
This is a patch release that fixes a race condition when searching across multiple documents,
restores the application's taskbar icon on Windows, and fixes a font setting that failed to load
on older versions of Qt. Japanese and Russian translations have also been updated.
### Detailed Changelog
**Bugfixes**
* Fixed a race condition when searching through multiple documents that could cause a crash if
the next match button was pressed too quickly. Issue #2809. PR #2811.
* Fixed the application icon not showing on the Windows taskbar. Issue #2728. PR #2824.
* Fixed loading of a font setting saved with Qt 6.11 when running on older versions of Qt.
PR #2849.
**Internationalisation**
* Japanese translation updated by @hebekeg. PR #2897.
* Russian translation updated by Kuro Ryuu (kuroryuu) and Konstantin Tan (@k1kimosha). PR #2897.
----
## Version 2026.1.1 [2026-06-28]
### Release Notes
This is a patch release that adds Catalan language to the app, and updates translation files for
other languages. Some user interface labels for the Manuscript tool have been improved, and the
documentation updated. A small fix resolves an error message printed to the log when launching the
app on Linux.
### Detailed Changelog
**Bugfixes**
* Fixed a DBus error message from Qt on Linux. PR #2790.
**Improvements**
* Clarified some of the GUI labels on the Manuscript tool. Issue #2762. PR #2768.
**Internationalisation**
* Catalan translations added by @jaumeplanas. PR #2793.
* Norwegian and US English translations updated by @vkbo. PR #2793.
* Japanese translation updated bu @hebekeg. PR #2793.
* German translation updated by @HeyMyian. PR #2793.
* Polish translation updated by @Nauthizz. PR #2793.
* Dutch translation updated by @risingphoenix73. PR #2793.
* Italian translation updated by Lou Cyper. PR #2793.
* Chinese translation updated by wcxu21 and @longqzh. PR #2793.
**Documentation**
* Fixed some typos in the documentation. PR #2773.
* Improved the documentation for the Manuscript tool. Issue #2763. PR #2768.
* Switched the documentation back to using `uv` for examples. PR #2766.
----
## Version 2026.1 [2026-04-26]
### Release Notes
The 2026.1 release is based on the features added in 2026.1 Beta 1, Beta 2, RC 1.
See the website for complete [Release Notes](https://novelwriter.io/releases/release_26_1.html).
### Detailed Changelog
**Improvements**
* When exporting manuscripts to DocX (Word), the document will no longer expand hard line breaks by
when default when justified margins are enabled. Issue #2690. PR #2732.
* The "Add titles for notes" label in **Manuscript Build** settings has been updated and should now
be clearer. Issue #2727. PR #2729.
**Internationalisation**
* A missing translation string for projects was added. Issue #2730. PR #2731.
* Norwegian and US English translations updated by @vkbo. PR #2738.
* Japanese translation updated bu @hebekeg. PR #2738.
* Dutch translation updated by @risingphoenix73. PR #2738.
* German translation updated by @HeyMyian. PR #2738.
* Polish translation updated by @Nauthizz. PR #2738.
* Latin American Spanish translation updated by @tmarplatt. PR #2738.
* Czech translation updated by Tomáš Zmek. PR #2738.
* Italian translation updated by Lou Cyper. PR #2738.
----
## Version 2026.1 RC 1 [2026-04-13]
### Release Notes
This is a release candidate of the next release version, and is intended for testing purposes.
Please be careful when using this version on live writing projects, and make sure you take frequent
backups.
Note: There are no longer any Mac releases produced for novelWriter. See #2618.
### Detailed Changelog
**Bugfixes**
* Fixed an issue where the editor and viewer header no longer changed colour when losing or gaining
focus. Issue #2716. PR #2717.
* Fixed the project list tooltip on the Welcome dialog. Issue #2714. PR #2715.
* Fixed the size of spin boxes on config forms. Issue #2703. PR #2711.
**Features**
* A new setting in Preferences allows for the usage of single asterisks for bold formatting.
Enabling this setting does not disable double asterisk bold. Issue #2718. PR #2719.
**User Interface**
* Adjusted some colours of icons in several themes to bring them visually in line with the rest of
the theme. Contributed by @HeyMyian. PR #2712.
**Internationalisation**
* Updated translation strings. PRs #2721 and #2722.
* Updated Dutch translation by @risingphoenix73. PRs #2721 and #2722.
* Updated US English and Norwegian translation by @vkbo. PRs #2721 and #2722.
**Other Changes**
* GUI font emphasis is now handled by the theme class, and bold text on the GUI has been reduced in
weight to semibold. Issue #2709. PR #2710.
----
## Version 2026.1 Beta 2 [2026-04-04]
### Release Notes
This is a beta release of the next release version, and is intended for testing purposes. Please be
careful when using this version on live writing projects, and make sure you take frequent backups.
Note: There are no longer any Mac releases produced for novelWriter. See #2618.
### Detailed Changelog
**Bugfixes**
* An unchecked dependency on Qt 6.9 has been fixed. If the app was running in an environment with
an older Qt version, the app would crash when opening one of the settings dialogs. This should
only affect the Debian packages since the Windows and AppImage releases bundle Qt 6.11.
Issue #2706. PR #2704.
----
## Version 2026.1 Beta 1 [2026-04-02]
### Release Notes
This is a beta release of the next release version, and is intended for testing purposes. Please be
careful when using this version on live writing projects, and make sure you take frequent backups.
Note: There are no longer any Mac releases produced for novelWriter. See #2618.
### Detailed Changelog
**Bugfixes**
* The URL highlighting now also works if the URL has an exclamation point. Issue #2693. PR #2695.
* The margin settings in Manuscript Build settings now correctly shows icons to indicate margin
type. PR #2647.
**Features**
* The novelWriter version number is now year-based. Instead of the next release being 2.9, it is
now 26.1 or 2026.1 as shown in the app. Discussion #2667. PR #2669.
* Added the Lucide icon theme as a user-selectable icon theme. Issue #2605. PR #2632.
* It is now possible to split a document via text selection, or at the cursor position, from the
right-click menu in the editor. Issues #1486 and #2571. PR #2688.
* The shortcuts `Ctrl+Up` and `Ctrl+Down` now move the cursor between paragraphs in the editor.
Issue #2635. PR #2679.
* The size of the different heading levels can now be adjusted in the Manuscript Build settings
tool. Issue #2439. PR #2650.
* Added a setting for manuscripts to use blank lines instead of margins in manuscript document
formats. Issue #2648. Discussion #2646. PR #2649.
* A new "Heading Format" sections is available in Manuscript Build settings. The settings for bold
and colourised headings have been moved there, and a new setting to make them uppercase has been
added. PR #2647.
**Improvements**
* Added word or character units to count tooltip labels in project tree and novel view. PR #2698.
* The note document associated with a reference can now be opened in the editor from the
right-click menu. Issue #2448. PR #2697.
* The `Shift+Enter` shortcut now also works in the project search, and opens the document in the
viewer. However, it cannot show the actual search result since the search itself is performed on
the raw plain text document and doesn't apply to the generated document in the viewer.
Issue #2661. PR #2697.
* Backward searches in the editor can now also iterate backwards in project documents if the option
to continue search in the next document is enabled. Issue #1451. PR #2696.
* Error handling when encountering file system issues has been improved and hardened. It should
further prevent application crashes when encountering such issues. Issues #2529 and #2671.
PRs #2675 and #2683.
* The document header in the editor and viewer panels have been improved. An issue with clipping of
the descending characters have been fixed, and each part of the path can be clicked to highlight
it in the project tree. Issues #2664 and #2674. PR #2677.
* Added a setting in Preferences that turns off scaling of headings in the editor, which is more
consistent with plain text where all text is the same size. Issue #2636. PR #2670.
* Improved the way version numbers are shown in the Welcome dialog, allows the selected project to
be opened with the Enter key, and using the arrow keys will move the selection up and down
without first having to switch focus to the recent projects list. PR #2668.
**Accessibility**
* Improved screen reader support for remaining buttons, and improved reading of settings pages in
various dialogs. Issue #2338. PR #2698.
* Two new light colour themes for colour blindness has been added. They are "Today Deuteranopia"
for red/green colour blindness, and "Today Tritanopia" for blue colour blindness. Issue #2689.
PR #2694.
* Added an option in Preference to show dotted lines under formatting codes in the editor. This is
a visual aid in addition to highlighting colours. Issue #2691. PR #2692.
**Internationalisation**
* Updated translation files with some new translations since the 2.8 release. PR #2699.
**Other Changes**
* The fun Discworld themed titles shown on error windows have been extended with new titles to
randomly select from. PR #2684.
* PDM has replaced UV as the dependency manager for development and testing. This should not matter
to end users. Issue #2685. PR #2678.
----
## Version 2.8.2 [2026-01-25]
### Release Notes
This is a patch release that fixes an issue with launching novelWriter via a project file on
Windows, adds an alert when the spell check dictionary cannot be loaded, handles headings in HTML
manuscripts the same way as for documents, and updates the documentation on how heading levels are
handled in the manuscript build process.
### Detailed Changelog
**Bugfixes**
* Fixed an issue with the exe launcher on Windows where it didn't support spaces in the path when
the user tried to open novelWriter from a project file. Issue #2643. PR #2645.
* Fixed an issue with the PDF manuscript format which stopped after about 600-700 pages when
generating A4 pages. The limit is now in the 11000 pages range. Issue #2637. PRs #2638 and #2639.
**Improvements**
* Added an alert box when the spell check language selected for a project could not be loaded.
Issue #2631. PR #2654.
* The HTML manuscript format now exports novel title and partition titles as paragraphs with a
larger font size instead of HTML headings. This is more consistent with the other formatted
document formats. Issue #2641. PR #2653.
**Documentation**
* Added information to the documentation about heading level promotion when building the
manuscript. Issue #2641. PR #2653.
----
## Version 2.8.1 [2025-12-28]
### Release Notes
This is a patch release that fixes an issue where the application could crash due to a change in
PyQt/Qt 6.10. The issue is related to certain input methods, and is at least triggered when using
Spotlight on MacOS.
### Detailed Changelog
**Bugfixes**
* Fixed an issue where the inputMethodQuery call to the Qt library returns an object that PyQt6
cannot convert to a Python object. The fix just disables the conversion since the return value is
passed back to the Qt library anyway. The problem affects Qt/PyQt 6.10 and is triggered in MacOS
at least, but it is not known if it affects other platforms. Issue #2622. PR #2623.
**Documentation**
* Removed references to the old colour theme system in the documentation. Issue #2619. PR #2625.
----
## Version 2.8 [2025-12-14]
### Release Notes
The 2.8 release is based on the features added in 2.8 beta 1 and 2.8 RC 1.
See the website for complete [Release Notes](https://novelwriter.io/releases/release_2_8.html).
### Detailed Changelog
**Bugfixes**
* Fixed an issue where the app could crash when the user pasted from an empty clipboard. This
appears to be a Qt or PyQt bug, and is not present on the later releases, but a fix has been
added that ensures the bug is not triggered. Issue #2598. PR #2602.
**Documentation**
* Fixed a broken link in the updated 2.8 docs. PR #2595.
**Internationalisation**
* Updated Czech, German, US English, Italian, Japanese, Norwegian and Chinese translation files
from the Crowdin project page. PR #2608.
**Packaging**
* Added `qt6-svg-plugins` as a direct dependency of novelWriter on Debian. This package was not
always installed on some distros. Issue #2604. PR #2607.
----
## Version 2.8 RC 1 [2025-11-30]
### Release Notes
This is a release candidate of the next release version, and is intended for testing purposes.
Please be careful when using this version on live writing projects, and make sure you take frequent
backups.
### Detailed Changelog
**Bugfixes**
* Fixed a bug that would block the return key in the editor if French style space padding was
enabled in Preferences. Issue #2586. PR #2587.
* Fixed an issue where dialog state was no longer saved properly when they were closed for many
dialogs. This may be due to a change in the Qt framework, or a bug from a previous release.
PR #2585.
* Fixed an issue where a confusing error would show up if the user cancelled the file dialog during
example project creation. A new dialog now tells you what the actual issue was and sends you back
to the welcome dialog. Issue #2590. PR #2592.
**Features**
* Vim mode has been added to the editor, and can now be enabled in Preferences. Contributed by
@idealemu. Issue #2493. PRs #2499 and #2588.
**Improvements**
* Using format button from the editor toolbar will not apply the formatting on lines that cannot
take formatting, like headings and meta data lines. Issue #2560. PR #2575.
* Added an option in Preferences that will try to centre the main app windows during startup. This
effect is always triggered if the main window is scaled down at startup due to being opened on a
smaller screen. Issue #2579. PRs #2580 and #2581.
* The example project has been updated and improved. Issue #2570. PRs #2572 and #2574.
* The spacing between icon and text in push buttons has been increased. PR #2582.
* The font selection dialog now remembers its previous size, and uses the new standard push buttons
instead of the Qt defaults. PR #2584.
* It is now possible to override the manuscript language meta value for document formats that have
this. The IETF BCP 47 language tag is used. Issue #2328. PR #2593.
**Internationalisation**
* Updated US English, Italian, Norwegian, and Japanese translations. PR #2589.
----
## Version 2.8 Beta 1 [2025-10-29]
### Release Notes
This is a beta release of the next release version, and is intended for testing purposes. Please be
careful when using this version on live writing projects, and make sure you take frequent backups.
### Detailed Changelog
**Bugfixes**
* The editor now properly supports 4 byte Unicode characters without breaking the syntax
highlighting and spell checker. Issue #2449. PR #2451.
* Fixed a bug in the font matching code where the style name property for the font was set,
preventing Qt from picking a proper styled font. Issue #2502. PR #2503.
* Spell check dictionaries in the main menu are now updated when new dictionaries are installed
using the add dictionaries tool. Contributed by @Reproog. Issue #2558. PR #2562.
* Fixed an issue where the Novel Tree panel heading would be greyed out if there was only one Novel
root folder. Issue #2482. PR #2556.
**Features**
* Current line highlighting has been added and can be enabled in Preferences. Issue #1321.
PR #2405.
* The Status and Importance labels can now use theme colours in addition to a user defined custom
colour. The settings for these labels have also been made clearer. Issues #2357, #2366 and
#2452. PRs #2400 and #2461.
* Markdown style highlighting tags are now supported in the editor. Issue #1894. PR #2412.
* Synopsis/short comments, story comments, and story notes can now be used multiple times under a
heading. The text is just appended as a new paragraph each time the annotated comment type is
encountered. Issue #2483. PR #2543.
**Improvements**
* You can now press `Ctrl+T` and `Ctrl+Shift+T` when in Focus Mode to exit the Focus Mode
automatically and switch to the Project Tree or Outline View. Issue #1294. PR #2479.
* When creating a new document from a template, the first title of the template document is
replaced with the label text set for the new document. Issue #2238. PR #2477.
* When the app is performing a potentially bulky and time consuming task, a small progress bar will
appear at the top of the status bar to show the progress of the task. It is currently used when
the index is rebuilt and when processing multiple documents in the Project Tree. Issue #2243.
PR #2478.
* The auto-replace feature in the editor is now better at detecting opening and closing quotes when
used in relation to markdown style markup. Issue #2488. PR #2489.
* The application window is now blocked from resizing itself to a size larger than the screen when
opened on a smaller screen than it was previously opened on. Like for instance when it was
connected to an external screen from a laptop. Issue #2354. PR #2369.
* Improved the CSS styling of HTML manuscript documents. Issue #2358. PR #2404.
* Trailing spaces are no longer highlighted in the editor with an error underline. Multiple spaces
between words still are. Issue #2501. PR #2505.
* The rebuild index dialog is no longer showed if the index is rebuilt due to index structure
changes when a project is opened for the first time in a newer version of novelWriter. This was
confusing to some users who thought the dialog indicated an error. Issue #2513. PR #2537.
* A switch on the Manuscript Build Settings dialog now allows for automatic preview of the build
when Apply or Save is clicked. Issue #2486. PR #2553.
* Formatting and handling of Story Comments and Story Notes have been improved, and they can be
filtered separately in the viewer panel. PR #2421.
**User Interface**
* The GUI and syntax themes have been merged into a single theme, which means there are no longer
separate settings for the general GUI and the document colour theme. Issue #2335. PR #2373.
* There are now two GUI theme settings in Preferences, one for light and one for dark mode. A new
button on the sidebar allows you to switch between them, or it can be set to auto mode that
follows the operating system's light/dark mode. Issues #1173 and #2487.
PRs #2373 and #2545.
* More themeable settings have been added. The document active flag, the theme base colour, and the
new GUI accent colour (if Qt version is high enough) is now available. Issue #2382. PR #2384.
* The highlighting colour for special white spaces, like non-breaking spaces, can now be set in the
theme. Previously it used the emphasis colour. Issue #2547. PR #2548.
* The Welcome dialog background now follows the theme colours. Issue #2379. PR #2380.
* The dialog buttons now use icons from the selected theme, not from the host OS. Issues #2498,
#2551 and #2561. PRs #2544, #2546, #2553, #2557 and #2563.
* Added semantic categories for icon colours which can be defined in the colour theme. PR #2549.
* Primer Dark and Primer Light themes added by @HeyMyian. Issue #2376. PRs #2377 and #2419.
* Horizon, Otium, Paragon, Selenium, Sepia, Sultana, Vivid, Warpgate, and Waterlily themes added by
@HeyMyian. Issue #2407. PR #2495.
* Aura, B2T Garden, B2T Suburb, B4T Classic-O, B4T Modern-C, Everforest, New Moon, Full Moon, Nord,
Nordlicht, Castle, Chernozem, Chalky Soil, Floral, Ruby themes added by @HeyMyian. PR #2450.
* Blue Streak themes added. PR #2388.
* LCARS theme added. PR #2399.
* Espresso and Noctis themes added. PR #2422.
* Various improvements to existing and new themes by @vkbo. PRs #2396, #2418, #2475 and #2481.
* Various improvements to existing and new themes by @HeyMyian. PRs #2506 and #2494.
**Packaging**
* The license info for novelWriter has been updated to include `GPL-3.0-or-later`, `Apache-2.0`,
and `CC-BY-4.0`. Issue #2444. PR #2446.
* Updated Debian package build and added Qt6 plugin for WebP images as a dependency. PR #2401.
**Documentation**
* Added some info on how to get around the line heigh issue in the editor in the Tips & Tricks
section of the documentation. Issue #2559. PR #2564.
* Fixed some typos in the documentation. PR #2542.
**Code Maintenance**
* Improved linting and added more mapped Qt constants. PR #2536.
* Added test coverage of the theme files to ensure they are up to date. PR #2378.
* Updated credits and license information of icon themes. PR #2474.
* Some fields have been dropped from icon and colour themes. PRs #2466 and #2423.
* Changed a few default settings in config, added automatic rebuild of the index in new projects,
and fixed tests. PR #2395.
* Added test coverage and support for Python 3.14. PR #2538.
* Improved logging formatting by stripping HTML content. PR #2402.
* Cleaned up and improved pkgutils CLI tool. PR #2541.
* The project now uses UV as the primary dependency handling tool for development. PR #2540.
* Fixed the run_tests helper script for HighDPI monitors. PR #2496.
----
## Version 2.7.5 [2025-09-14]
### Release Notes
This is a patch release that fixes an issue related to crashes when using the completer menu under
certain conditions, and improves positioning of the input box for CJK languages.
### Detailed Changelog
**Bugfixes**
* Fixed an issue where the app would crash of deleting the `@` character with the completer menu
visible and the text margins of the editor set to "justified". This is likely crashing due to
some unhandled corner case in the Qt library, but the implementation of the completer menu in
novelWriter uses a small hack to bypass some intended behaviour of the menu. Extra steps have
been added to the implementation that seems to avoid the crash. Issue #2510. PR #2511.
* Fixed an issue where the input box that shows up when typing CJK languages were covering the text
due to an incorrect offset of the box location. The incorrect offset is caused by the text
margins not being taken into account. Fix by @Euophrys based on solution by @Jack-name.
Issues #2267 and #2517. PR #2518.
----
## Version 2.7.4 [2025-07-15]
### Release Notes
This is a patch release that updates the Czech and French translations, and makes some changes to
the available Material Symbols icon themes. Additional icon themes are no longer automatically
included in all release packages due to license constraints.
### Detailed Changelog
**Internationalisation**
* The Czech and French translations are now complete. PR #2469.
**Packaging**
* Only the Material Symbols icons are included by default in packages. Other icon themes are
included depending on licensing restrictions for free and non-free requirements. The Material
Symbols Bold themes have been dropped, and a Sharp theme added. Issue #2462. PR #2467.
----
## Version 2.7.3 [2025-07-07]
### Release Notes
This is a patch release that fixes a bug in, and makes a few improvement to, Preferences.
### Detailed Changelog
**Bugfixes**
* Fixes an issue where novelWriter would crash if a `%` was added to any of the free text settings
fields in Preferences. Issue #2455. PR #2456.
**Improvements**
* The "Dialogue line symbols" setting in Preferences now has an "Add" button with a dropdown menu
for all the symbols allowed in this field. Since virtually none of them are available on a
regular keyboard, this makes it easier to add them and more transparent which symbols are allowed
in the box. Issue #2453. PR #2457.
* The switch for the "Allow open-ended dialogue" setting in Preferences has been moved up one line
so it is clearer that it only applies to quoted dialogue, and not to the alternative dialogue
settings. Issue #2454. PR #2457.
**Packaging**
* Package license information has been updated to also list the licenses for the new icon themes.
Issue #2434. PRs #2435 and #2458.
----
## Version 2.7.2 [2025-06-24]
### Release Notes
This is a patch release that fixes several issues related to DocX and PDF manuscript documents,
improves how line breaks, alignment and indentation is processed, and fixes some issues with
displaying tags for novel documents on the user interface.
### Detailed Changelog
**Bugfixes**
* Fixed an issue where escaped markup characters were not replaced properly in DocX and PDF
documents, and in previews. Issue #2410. PR #2411.
* Fixed an issue where titles with line breaks in them would have page breaks applied to both lines
for preview and PDF documents. Issue #2415. PR #2416.
* Fixed an issue where the justified text setting would not be properly applied to a paragraph in a
manuscript document if there was a line break in the paragraph, but single line breaks were set
to be ignored. Issue #2426. PR #2427.
* Fixed an issue where the "Tag" field of the Outline View details panel remained blank even if a
tag was set for the novel document. Issue #2428. PR #2429.
**Improvements**
* When comments are enabled in the viewer, story comments should also be visible. A separate filter
button will be added for this in 2.8. PR #2420.
* When a paragraph has line breaks in it, the alignment tag will now override first line
indentation even if the alignment tag is not on the first line. This is more consistent with the
alignment behaviour for multi-line paragraphs in general. Issue #2425. PR #2427.
* Tags will now be shown in the Novel View tooltip pop-out under the triangle button, together with
all the other meta data collected about a document or heading. PR #2429.
**Documentation**
* The documentation on how alignment and first line indentation works in conjunction with
in-paragraph line breaks, the setting to keep or ignore such line breaks, and the forced line
break shortcode, has been improved. Issue #2425. PR #2427.
----
## Version 2.7.1 [2025-06-09]
### Release Notes
This is a patch release that fixes some issues with tags and references, an issue with the
auto-complete menu on Windows, and some issues with the AppImage on Linux. The Czech translation
for 2.7 has also been completed.
### Detailed Changelog
**Bugfixes**
* Fix a bug where tags would be listed in the auto-complete menu for mentions even if the file
defining it had been moved to Archive or Trash. Issue #2387. PR #2389.
* Fixed a bug that seems to only have occurred on Windows where the auto-complete menu would hold
on to the return and arrow keys even when it was hidden. Issue #2386. PR #2389.
**Improvements**
* The auto-complete menu in the editor no longer shows any suggestions when defining the tag.
This never made sense anyway. PR #2389.
**Internationalisation**
* Updated the Czech. PR #2393.
**Packaging**
* Fixed an issue with the AppImage release where on some platforms `libxcb-cursor0` was missing.
The library is now included in the AppImage. Issue #2374. PR #2392.
----
## Version 2.7 [2025-06-01]
### Release Notes
@@ -636,7 +1535,7 @@ See the website for complete [Release Notes](https://novelwriter.io/releases/rel
* Portuguese translation updated by Oli Maia. PR #1955.
* Japanese translation updated by @hebekeg. PR #1955.
* French translation updated by Albert Aribaud (@aaribaud). PR #1955.
* Polish translation added by Anna Maria Polak (@Nauthiz). PR #1955.
* Polish translation added by Anna Maria Polak (@Nauthizz). PR #1955.
**Packaging**
@@ -5645,7 +6544,7 @@ helpful feedback and issue reports for the new features added in this, and previ
more fault tolerant, and will automatically rebuild a corrupt index loaded from cache. PR #140.
* The way that dialog options (which options were selected last time a dialog was open) has been
rewritten. All data is now stored in a single JSON file in the project meta folder. PR #175.
* Since the config class is instanciated before the GUI, error reporting to the user was tricky. An
* Since the config class is instantiated before the GUI, error reporting to the user was tricky. An
error cache has now been added to allow non-critical errors to be displayed after the GUI is
built. PR #176.
* All source files now have the minimal GPLv3 license note at the top. PR #188.
@@ -5709,7 +6608,7 @@ helpful feedback and issue reports for the new features added in this, and previ
* Added keyboard shortcuts and menu entries for formatting headers, comments, and removing block
formats. PR #155.
* Disable re-highlighting of open file when resizing window. This is potentially a slow process if
the spell checker is on and the file is large. There is no need to do this just for reflowing
the spell checker is on and the file is large. There is no need to do this just for re-flowing
text, so it is now disabled on resize events. Issue #150, PR #153.
* Improved the speed of the syntax highlighter by about 40% by not using regular expressions for
highlighting block formats and by skipping empty lines entirely. PR #154.
@@ -5995,7 +6894,7 @@ helpful feedback and issue reports for the new features added in this, and previ
**Code Improvements**
* Spell checking is now handled by a standard class that can be subclassed to support different
* Spell checking is now handled by a standard class that can be sub-classed to support different
spell check tools. This was done because pyenchant is no longer maintained and having a standard
wrapper makes it easier to support other tools. PR #31.

View File

@@ -1,132 +1,49 @@
# Contributor Covenant Code of Conduct
# Code of Conduct
## Our Pledge
## Purpose
We as members, contributors, and leaders pledge to make participation in our
community a harassment-free experience for everyone, regardless of age, body
size, visible or invisible disability, ethnicity, sex characteristics, gender
identity and expression, level of experience, education, socio-economic status,
nationality, personal appearance, race, caste, color, religion, or sexual
identity and orientation.
This repository should be welcoming and safe for everyone participating in good faith.
We pledge to act and interact in ways that contribute to an open, welcoming,
diverse, inclusive, and healthy community.
All contributors and participants must be treated with respect, regardless of characteristics such
as race, ethnicity, caste, colour, age, physical characteristics, neurodiversity, disability, sex
or gender, gender identity or expression, sexual orientation, language, philosophy or religion,
national or social origin, socio-economic position, level of education, or other status.
## Our Standards
## Expected Behaviour
Examples of behavior that contributes to a positive environment for our
community include:
1. Be respectful and constructive in pull requests, issues, discussions, and comments
2. Focus critique on ideas and code, not people
3. Assume good faith, and communicate clearly and honestly
4. Accept feedback gracefully and take responsibility for your contributions
* Demonstrating empathy and kindness toward other people
* Being respectful of differing opinions, viewpoints, and experiences
* Giving and gracefully accepting constructive feedback
* Accepting responsibility and apologizing to those affected by our mistakes,
and learning from the experience
* Focusing on what is best not just for us as individuals, but for the overall
community
## Unacceptable Behaviour
Examples of unacceptable behavior include:
* The use of sexualized language or imagery, and sexual attention or advances of
any kind
* Trolling, insulting or derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or email address,
without their explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Enforcement Responsibilities
Community leaders are responsible for clarifying and enforcing our standards of
acceptable behavior and will take appropriate and fair corrective action in
response to any behavior that they deem inappropriate, threatening, offensive,
or harmful.
Community leaders have the right and responsibility to remove, edit, or reject
comments, commits, code, wiki edits, issues, and other contributions that are
not aligned to this Code of Conduct, and will communicate reasons for moderation
decisions when appropriate.
1. Harassment, abuse, intimidation, or threats
2. Insults, personal attacks, or demeaning language
3. Discrimination, stereotyping, or hateful conduct
4. Sexualised or otherwise inappropriate conduct
5. Sharing private or identifying information without permission
6. Impersonation, deliberate misrepresentation, or other deceptive behaviour
7. Spam or promotional content unrelated to the project
## Scope
This Code of Conduct applies within all community spaces, and also applies when
an individual is officially representing the community in public spaces.
Examples of representing our community include using an official e-mail address,
posting via an official social media account, or acting as an appointed
representative at an online or offline event.
This Code of Conduct applies to interactions in this GitHub repository, including pull requests,
issues, discussions, reviews, and comments.
## Reporting
If you believe this Code of Conduct has been violated, contact the repository owner via
[github.com/vkbo](https://github.com/vkbo).
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported to the community leaders responsible for enforcement at issues (at)
novelwriter.io. All complaints will be reviewed and investigated promptly and
fairly.
Moderation options on GitHub are limited. Depending on severity and pattern of behaviour, the owner
may edit or delete content, close or lock threads, and block users from further participation.
All community leaders are obligated to respect the privacy and security of the
reporter of any incident.
## Enforcement Guidelines
Community leaders will follow these Community Impact Guidelines in determining
the consequences for any action they deem in violation of this Code of Conduct:
### 1. Correction
**Community Impact**: Use of inappropriate language or other behavior deemed
unprofessional or unwelcome in the community.
**Consequence**: A private, written warning from community leaders, providing
clarity around the nature of the violation and an explanation of why the
behavior was inappropriate. A public apology may be requested.
### 2. Warning
**Community Impact**: A violation through a single incident or series of
actions.
**Consequence**: A warning with consequences for continued behavior. No
interaction with the people involved, including unsolicited interaction with
those enforcing the Code of Conduct, for a specified period of time. This
includes avoiding interactions in community spaces as well as external channels
like social media. Violating these terms may lead to a temporary or permanent
ban.
### 3. Temporary Ban
**Community Impact**: A serious violation of community standards, including
sustained inappropriate behavior.
**Consequence**: A temporary ban from any sort of interaction or public
communication with the community for a specified period of time. No public or
private interaction with the people involved, including unsolicited interaction
with those enforcing the Code of Conduct, is allowed during this period.
Violating these terms may lead to a permanent ban.
### 4. Permanent Ban
**Community Impact**: Demonstrating a pattern of violation of community
standards, including sustained inappropriate behavior, harassment of an
individual, or aggression toward or disparagement of classes of individuals.
**Consequence**: A permanent ban from any sort of public interaction within the
community.
Content that may violate GitHub platform rules may also be reported to GitHub for review.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
version 2.1, available at
[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
Community Impact Guidelines were inspired by
[Mozilla's code of conduct enforcement ladder][Mozilla CoC].
For answers to common questions about this code of conduct, see the FAQ at
[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at
[https://www.contributor-covenant.org/translations][translations].
[homepage]: https://www.contributor-covenant.org
[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
[Mozilla CoC]: https://github.com/mozilla/diversity
[FAQ]: https://www.contributor-covenant.org/faq
[translations]: https://www.contributor-covenant.org/translations
This document is adapted from the Contributor Covenant 3.0:
[https://www.contributor-covenant.org/version/3/0/](https://www.contributor-covenant.org/version/3/0/).

View File

@@ -12,15 +12,75 @@ just make a pull request directly.
* Bugfixes for new or existing bugs. Please also report new bugs in the issue tracker even if you
also provide a fix. It makes it easier to keep track of what has been fixed and when.
* Translations made via the [Crowdin project page](https://crowdin.com/project/novelwriter).
* Translations of the documentation. These need to use Sphinx i18n tooling. Please start a
discussion before beginning such work as it requires some coordination.
* Improvements to the documentation. Particularly if the documentation is unclear. Please don't
make any larger changes to the documentation without discussing them with the maintainer first.
* Adaptations, installation or packaging features targeting specific operating systems.
* Using AI as a coding assistant is fine as long as the code is of good quality and the scope of
change is small, but do not generate large chunks of code. Generated code is not only hard to
maintain, but also poses licensing issues.
**Please do not:**
* Make a pull request that restructures or reformats existing code. If you think some part of the
code could be improved, please make an issue thread or start a discussion. The same applies to
any text document in the repository.
* Make pull requests with AI generated code. This is not a project suitable for vibe coding.
Outright slop will result in the account being blocked.
## Running from Source
This project uses [uv](https://docs.astral.sh/uv/) to maintain dependencies. In order to run
novelWriter directly from checked out source, simply call from the root folder with:
```bash
uv run novelwriter
```
To set up a development environment with all needed dependencies, run:
```bash
uv sync
```
Many tasks, like building assets from source, are handled by the `pkgutils.py` helper tool.
This tool requires no dependencies, so you can either run it directly with Python, or `uv run`.
```bash
python pkgutils.py --help
```
The translation files needed at runtime can be built with:
```bash
python pkgutils.py qtlrelease
```
Material design icons are included with the source. Optional icon themes can be built with:
```bash
python pkgutils.py icons optional
```
### Running Tests
* New code must not break any existing tests.
* New code must come with tests that cover the code in full. This includes branch coverage. If the
code has branches that only runs on some OSes, they only need to be covered when test are run on
that OS. The test suite runs on Linux, Windows and MacOS.
* It is ok to use `pragma` comments with `no cover` and `no branch` if the code is not expected to
touch those areas or branches.
A helper script is provided for running tests. It simplifies coverage reporting and a few other
things. Run the following to see all details:
```bash
uv run run_tests.py --help
```
## Picking the Correct Branch for a Pull Request
@@ -29,81 +89,58 @@ If you are submitting a fix to a current release you must do so from the `releas
make such a fix on the `main` branch, **it cannot be included in a patch release**. This also
applies to the documentation for the latest release published on the main website.
New features are only accepted on full releases, so a feature pull request must be made to the
`main` branch. However, if the `main` branch is very close to a new full release, pull requests may
not be merged until the release is completed.
New features are only added in full releases, so a feature pull request must be made to the `main`
branch. However, if the `main` branch is very close to a new full release, pull requests may not be
merged until the release is completed.
## Pull Request Check List
This project uses GitHub milestones to plan releases, and only pull requests included in the
current release cycle will be merged to `main`. Milestone tickets are not set in stone and are
often moved to other milestones.
### Pull Request Check List
Make sure the pull request follows these rules:
* The `main` branch is the default branch. For general changes, please make a new branch in your
own fork from the current `main` branch. Do not make pull requests from your copy of the `main`
branch.
branch. The same applies to the `release` branch.
* Please provide a description of the changes in the pull request under the summary section of the
pull request template, and reference any related issues by providing the issue number.
pull request template, and reference any related issues by providing the issue number. Do not
post links to issue numbers as that breaks the integration. Stating the issue number is enough.
* Do not change the version number.
* Do not submit files that were not actively changed but have otherwise been modified. This is
mostly an issue with translation files. The language tool may update all files in the `i18n`
folder.
* Make sure the formatting and linting tools have been run before the pull request is made.
## General Rules
These are the guidelines for the project. The source code of novelWriter broadly follows the
[PEP8](https://www.python.org/dev/peps/pep-0008) style guide, but with a few exceptions.
## Code Style
### Tests
This code base uses camelCase convention for function and variable names. This differs from the
common convention of snake_case in Python. The reason for this is that novelWriter is built on the
Qt framework, where everything is camelCase.
* New code must not break any existing tests.
* New code must come with tests that cover the code in full. If the code has branches that only
runs on some OSes, they must be covered when test are run on that OS. The test suite runs on
Linux, Windows and MacOS.
Pretty much everything else regarding formatting is handled by the linter and formatter. This
project uses [ruff](https://docs.astral.sh/ruff/) for linting and formatting and
[pyright](https://github.com/microsoft/pyright) for type checking. The settings for these tools
are defined in `pyproject.toml`, and any submitted code must pass the following three commands:
### Code Formatting
```bash
uv run ruff check
uv run ruff format
uv run pyright
```
* Do not run automatic formatting tools like `black` or `ruff` on the code. Auto-formatting using
`ruff` is planned, but there are a couple of features missing in it, so it is currently only used
for linting. Auto-formatting with `isort` is configured in `pyproject.toml` and can be used.
* The pull request code *must* pass the `ruff` linting rules specified in `pyproject.toml`.
* In general, do not make large scale formatting changes to the code.
### Line Length
### Type Annotations
* The line length of the source code is enforced by the formatter, and is set to 120 characters.
Docstrings should be wrapped manually at 79 characters for better readability.
* For text files, the text should be wrapped 120 character or less. The exception is Markdown image
tags and URLs which can run past that limit.
* All functions and parameters must be type annotated, and so must variables and attributes if the
type cannot be inferred from the initial value. Typing rules are set in `pyproject.toml` and a
pull request must pass `pyright` with these settings.
* Do not use the `Any` type when an actual type exists. `Any` is allowed for functions that
actually handles any kind of input and returns a standard type.
* Do not use deprecated capitalised annotations like `Dict`, `List`, `Tuple`, etc.
* Type annotated code must be runnable on all supported Python versions.
### Internationalisation
* All comments and docstrings in the code must be in English.
* All text presented to the user must be wrapped in calls to Qt's translation framework, and the
spelling of this text *must* be UK English. US English spelling is not allowed for these strings.
spelling of this text *must* be British English. US English spelling *is not allowed* for these
strings.
* Commit descriptions and pull requests must also be in English.
### Line Length
* Source code lines can extend to the upper limit of 99 characters. Generally, if a code statement
requires multiple lines, the lines should wrap at 79 characters if possible. If wrapping can be
avoided by going to 99, then that is generally preferable. Readability has priority.
* For text files, the text should be wrapped at 99 character. The exception is Markdown image tags
and URLs which can run past that limit.
### Spaces, Indentation and Alignment
* Only indentation by multiples of 4 spaces is allowed.
* No trailing spaces should occur on any line in the source code, including empty lines.
* Common line wrapping methods are allowed in the code except `\`, but avoid deep indentations.
* Aligning operators and attributes in columns with multiple spaces is not allowed by PEP8. The
rule is relaxed a bit here. Alignment is allowed when populating large dictionaries or setting
many class attributes. It does improve readability in such cases, but should not be overused.
### General Code Rules
* Use f-string style for string formatting as the first choice, and `.format` functions if there is
a good reason for it. Do not use `%` style formatting except for logging output. For logging, `%`
must be used (it's a limitation in the logging library unfortunately).
* Functions should be on camelCase form for consistency with the Qt library code.

View File

@@ -6,11 +6,14 @@
## Contributors
Larger contributions were made by:
* Early Concept: Marian Lückhof
* Internationalisation: Bruno Meneguello
* Setup and Packaging: Rachel Powers
* Vim Mode: Alexis Dumelie
For other contributions, see the project's [Contributors](https://github.com/vkbo/novelWriter/graphs/contributors) page.
For other contributions, see the project's [Contributors](https://github.com/saga-soft/novelWriter/graphs/contributors) page.
## Artwork
@@ -21,6 +24,7 @@ The artwork on the Welcome dialog was created by Louis Durrant.
The default language is English (UK) with English (US) as an option. These are the original
translators for the languages currently available:
* **Catalan:** Jaume Planas (jaumeplanas)
* **Czech:** Tomáš Zmek (perteus)
* **Dutch:** Martijn van der Kleijn (mvdkleijn)
* **French:** Jan Lüdke (jyhelle)
@@ -36,6 +40,7 @@ translators for the languages currently available:
Additional larger translation contributions:
* **Dutch:** Lise Blok (risingphoenix73)
* **French:** Albert Aribaud (aaribaud)
* **Portuguese:** Oli Maia (olimaia)
@@ -55,19 +60,67 @@ The following libraries are dependencies of novelWriter:
* **Enchant** by Dom Lachowicz
* **PyEnchant** by Dimitri Merejkowsky
## Assets
## Icon Themes
Some of the assets bundled with novelWriter were adapted from the following sources:
The default icon theme is a subset of icons from:
* **Material Symbols** icons by Google Inc (Apache 2.0)
* **Remix** icons by RemixIcon (Apache 2.0)
* **Font Awesome** icons by Fonticons Inc (CC BY 4.0)
* **Tomorrow** syntax themes by Chris Kempson (MIT License)
* **Owl** syntax themes by Sarah Drasner (MIT License)
* **Solarized** themes by Ethan Schoonover (MIT License)
* **Cyberpunk Night** theme by Anders Lemvigh (CC BY-SA 4.0)
* **Dracula** theme by Zeno Rocha (MIT License)
* **Snazzy Light** theme by Florian Reuschel (MIT License)
* **Material Symbols** by Google Inc (Apache 2.0)
Additional icon themes may or may not be bundled with novelWriter, depending on license
constraints. These themes include a subset of icons from:
* **Font Awesome** by Fonticons Inc (CC BY 4.0)
* **Remix** by RemixIcon (Apache 2.0 w/non-free clause)
* **Lucide** by Cole Bemis and Lucide Contributors (ISC License)
## Colour Themes
Colour themes included with novelWriter were adapted from the following sources:
* **Aura** themes by Dalton Menezes
* **B2T** themes by Bram de Haan
* **B4T** themes by Bram de Haan
* **Catppuccin** themes by Catppuccin Org
* **Dracula** theme by Zeno Rocha
* **Espresso** theme by Sainnhe Park and Antoine Cotten
* **Everforest** themes by Sainnhe Park
* **Horizon** themes by Jonathan Olaleye
* **New Moon** theme by Tania Rascia
* **Noctis** themes by Liviu Schera and contributors
* **Nord** theme by Sven Greb
* **Owl** themes by Sarah Drasner
* **Primer** themes by GitHub, Inc. and Myian
* **Rosé Pine** themes by Rosé Pine
* **Snazzy Light** theme by Florian Reuschel
* **Solarized** themes by Ethan Schoonover
* **Tango** themes by the Tango Desktop Project
* **Tomorrow** themes by Chris Kempson
Other themes were created for novelWriter:
* **Aura Bright** theme by Myian
* **Blue Streak** themes by Veronica Berglyd Olsen
* **Castle** themes by Myian
* **Chalky Soil** theme by Myian
* **Chernozem** theme by Myian
* **Cyberpunk Night** theme by Anders Lemvigh
* **Dark Arts** theme by Myian
* **Floral** themes by Myian
* **Friendly** themes by Myian
* **Full Moon** theme by Myian
* **Jewel Case** themes by Myian
* **LCARS** theme by Veronica Berglyd Olsen
* **Nordlicht** theme by Myian
* **Otium** themes by Myian
* **Paragon** theme by Myian
* **Ruby** themes by Myian
* **Selenium** themes by Myian
* **Sepia** themes by Myian
* **Sultana** themes by Myian
* **Today** themes by Veronica Berglyd Olsen
* **Vivid** themes by Myian
* **Warpgate** theme by Myian
* **Waterlily** themes by Myian
## Fonts

View File

@@ -1,6 +0,0 @@
include pkgutils.py
include LICENSE.md
include CREDITS.md
include CHANGELOG.md
recursive-include novelwriter/assets *
recursive-include setup *

View File

@@ -1,22 +1,16 @@
# novelWriter
[![Linux](https://github.com/vkbo/novelWriter/actions/workflows/test_linux.yml/badge.svg)](https://github.com/vkbo/novelWriter/actions/workflows/test_linux.yml)
[![Windows](https://github.com/vkbo/novelWriter/actions/workflows/test_win.yml/badge.svg)](https://github.com/vkbo/novelWriter/actions/workflows/test_win.yml)
[![MacOS](https://github.com/vkbo/novelWriter/actions/workflows/test_mac.yml/badge.svg)](https://github.com/vkbo/novelWriter/actions/workflows/test_mac.yml)
[![Linting](https://github.com/vkbo/novelWriter/actions/workflows/syntax.yml/badge.svg)](https://github.com/vkbo/novelWriter/actions/workflows/syntax.yml)
[![CodeCov](https://codecov.io/gh/vkbo/novelWriter/branch/main/graph/badge.svg)](https://codecov.io/gh/vkbo/novelWriter)
[![Tests](https://github.com/saga-soft/novelWriter/actions/workflows/tests.yml/badge.svg)](https://github.com/saga-soft/novelWriter/actions/workflows/tests.yml)
[![Linting](https://github.com/saga-soft/novelWriter/actions/workflows/syntax.yml/badge.svg)](https://github.com/saga-soft/novelWriter/actions/workflows/syntax.yml)
[![Cloudsmith](https://img.shields.io/badge/OSS%20hosting%20by-cloudsmith-blue?logo=cloudsmith&style=flat&link=https%3A%2F%2Fcloudsmith.com)](https://cloudsmith.com)
<img align="left" style="margin: 0 0 4px 0;" src="https://raw.githubusercontent.com/vkbo/novelWriter/main/setup/novelwriter_readme.png">
<img align="left" style="margin: 0 0 4px 0;" src="https://raw.githubusercontent.com/saga-soft/novelWriter/main/setup/novelwriter_readme.png">
novelWriter is a plain text editor designed for writing novels assembled from many smaller text
documents. It uses a minimal formatting syntax inspired by Markdown, and adds a meta data syntax
for comments, synopsis, and cross-referencing. It's designed to be a simple text editor that allows
for easy organisation of text and notes, using human readable text files as storage for robustness.
The project storage is suitable for version control software, and also well suited for file
synchronisation tools. All text is saved as plain text files with a meta data header. The core
project structure is stored in a single project XML file. Other meta data is primarily saved as
JSON files.
The project format is well suited both for version control software and file synchronisation tools.
For more details, and how to install and use novelWriter, please see the main website and
documentation.
@@ -29,54 +23,65 @@ documentation.
* PyPi Project: [pypi.org/project/novelWriter](https://pypi.org/project/novelWriter)
* Social Media: [fosstodon.org/@novelwriter](https://fosstodon.org/@novelwriter)
## Sponsors
_This project is developed and maintained with care by actual humans._
## Sponsors & Attribution
<table style="border: none;">
<tr>
<td><img align="left" style="height: 25px;" src="https://raw.githubusercontent.com/vkbo/novelWriter/main/setup/signpath_logo.png"></td>
<td><img align="left" style="width: 25px;" src="https://raw.githubusercontent.com/saga-soft/novelWriter/main/setup/signpath_logo.png"></td>
<td>Free code signing on Windows provided by <a href="https://about.signpath.io/">SignPath.io</a>, certificate by <a href="https://signpath.org/">SignPath Foundation</a>.</td>
</tr>
<tr>
<td><img align="left" style="width: 25px;" src="https://raw.githubusercontent.com/saga-soft/novelWriter/main/setup/cloudsmith_logo.png"></td>
<td>Package repository hosting is graciously provided for free by <a href="https://cloudsmith.com">Cloudsmith</a>.</td>
</tr>
</table>
## Implementation
novelWriter is written with Python and Qt6 with PyQt6 Python binding. It is released on Linux,
Windows and MacOS. It can in principle run on any Operating System that also supports Qt, PyQt and
Python.
novelWriter is written in Python and uses Qt6 with PyQt6 Python binding as the UI framework. It is
released on Linux, Windows and MacOS. It can in principle run on any Operating System that also
supports Qt, PyQt and Python.
<p align="center">
<img width="80%" src="https://raw.githubusercontent.com/vkbo/novelWriter/main/setup/screenshot.png">
<img width="80%" src="https://raw.githubusercontent.com/saga-soft/novelWriter/main/setup/screenshot.png">
</p>
## Project Contributions
Please don't make feature pull requests without first having discussed them with the maintainer.
You can make a feature request in the [issues tracker](https://github.com/vkbo/novelWriter/issues),
or if the idea isn't fully formed, start a [discussion](https://github.com/vkbo/novelWriter/discussions).
Please also don't make pull requests to reformat or rewrite existing code unless there is a very good reason for doing so.
You can make a feature request in the [issues tracker](https://github.com/saga-soft/novelWriter/issues),
or if the idea isn't fully formed, start a [discussion](https://github.com/saga-soft/novelWriter/discussions).
Please also don't make pull requests to reformat or rewrite existing code unless there is a very
good reason for doing so. Please do not submit AI generated content.
Fixes and patches are welcome. Contributions related to packaging and installing novelWriter will
also be appreciated, but please make an issue or a discussion topic first. Before contributing any
code, please also read the full
[Contributing Guide](https://github.com/vkbo/novelWriter/blob/main/CONTRIBUTING.md).
[Contributing Guide](https://github.com/saga-soft/novelWriter/blob/main/CONTRIBUTING.md).
Project credits are available in [CREDITS.md](https://github.com/vkbo/novelWriter/blob/main/CREDITS.md).
Project credits are available in [CREDITS.md](https://github.com/saga-soft/novelWriter/blob/main/CREDITS.md).
**Note:** New features and pre-releases are made on the `main` branch. Full releases are made from
the `release` branch. So if you're submitting a fix to a current release, **including changes to
documentation**, they must be made to the `release` branch.
### Translations
New translations are always welcome. This project uses Crowdin to maintain translations, and you
can contribute translations at the [Crowdin project page](https://crowdin.com/project/novelwriter).
If you have any questions, feel free to post them to the
[Translations of novelWriter](https://github.com/vkbo/novelWriter/issues/93) issue thread.
[Translations of novelWriter](https://github.com/saga-soft/novelWriter/issues/93) issue thread.
## Licence
This is Open Source software, and novelWriter is licenced under GPLv3. See the
[GNU General Public License website](https://www.gnu.org/licenses/gpl-3.0.en.html) for more
details, or consult the [License](https://github.com/vkbo/novelWriter/blob/main/LICENSE.md)
details, or consult the [License](https://github.com/saga-soft/novelWriter/blob/main/LICENSE.md)
document. Bundled assets and their licences are listed in the
[Credits](https://github.com/vkbo/novelWriter/blob/main/CREDITS.md) document.
[Credits](https://github.com/saga-soft/novelWriter/blob/main/CREDITS.md) document.

View File

@@ -1,22 +0,0 @@
codecov:
require_ci_to_pass: yes
coverage:
precision: 2
round: nearest
range: "70...95"
status:
project:
default:
threshold: 1%
patch: no
changes: no
parsers:
gcov:
branch_detection:
conditional: yes
loop: yes
method: no
macro: no

View File

@@ -1,8 +0,0 @@
docutils>=0.17.1
pygments>=2.7
sphinx-book-theme
sphinx-copybutton
sphinx-design
sphinx-favicon
sphinx-intl
sphinx>=5.0

View File

@@ -1,7 +1,7 @@
"""
Configuration file for the Sphinx documentation builder.
Documentation: http://www.sphinx-doc.org/en/master/config
"""
""" # noqa
# -- Imports -----------------------------------------------------------------
@@ -14,23 +14,22 @@ import time
project = "novelWriter"
copyright = f"{datetime.date.today().year}" # noqa: A001
tmp_authors = ["Veronica Berglyd Olsen"]
if additional := os.environ.get("SPHINX_I18N_AUTHORS"):
tmp_authors.extend(a.strip() for a in additional.split(","))
if override_authors := os.environ.get("SPHINX_I18N_AUTHORS"):
author = override_authors
else:
author = "Veronica Berglyd Olsen"
author = ", ".join(tmp_authors)
initFile = os.path.join(
os.path.dirname(__file__), os.pardir, os.pardir,
"novelwriter", "__init__.py"
)
with open(initFile, encoding="utf-8") as inFile:
for aLine in inFile:
if aLine.startswith("__version__"):
release = aLine.split('"')[1].strip()
break
else:
release = "unknown"
if override_version := os.environ.get("SPHINX_I18N_VERSION"):
release = override_version
else:
initFile = os.path.join(os.path.dirname(__file__), os.pardir, os.pardir, "novelwriter", "__init__.py")
with open(initFile, encoding="utf-8") as inFile:
for aLine in inFile:
if aLine.startswith("__version__"):
release = "20" + aLine.split('"')[1].strip()
break
else:
release = "unknown"
version = release.partition("-")[0]
@@ -42,7 +41,7 @@ time.tzset()
needs_sphinx = "5.0"
extensions = ["sphinx_design", "sphinx_copybutton"]
templates_path = ["_templates"]
source_suffix = ".rst"
source_suffix = {".rst": "restructuredtext"}
master_doc = "index"
today_fmt = "%A, %d %B %Y at %H:%M"
language = "en"
@@ -63,12 +62,12 @@ html_theme_options = {
},
"show_toc_level": 2,
"show_navbar_depth": 1,
"repository_url": "https://github.com/vkbo/novelwriter",
"repository_url": "https://github.com/saga-soft/novelwriter",
"navigation_with_keys": True,
"use_repository_button": True,
"use_issues_button": True,
"pygment_light_style": "tango",
"pygment_dark_style": "dracula",
"pygments_light_style": "tango",
"pygments_dark_style": "dracula",
}
html_sidebars = {
"**": ["navbar-logo", "sidebar-title", "sbt-sidebar-nav"],
@@ -79,13 +78,8 @@ html_sidebars = {
latex_elements = {
"papersize": "a4paper",
"pointsize": "11pt",
"preamble": (
"\\usepackage[utf8]{inputenc}\n"
"\\DeclareUnicodeCharacter{2212}{\\textendash}\n"
),
"preamble": ("\\usepackage[utf8]{inputenc}\n\\DeclareUnicodeCharacter{2212}{\\textendash}\n"),
"figure_align": "htbp",
}
latex_logo = "_static/novelwriter-pdf.png"
latex_documents = [(
master_doc, "manual.tex", None, author, "manual"
)]
latex_documents = [(master_doc, "manual.tex", None, author, "manual")]

View File

@@ -19,7 +19,7 @@ Main Window Shortcuts
:header: "Shortcut", "Description"
":kbd:`F1`", "Open the online user manual"
":kbd:`F5`", "Open the **Build Manuscript** tool"
":kbd:`F5`", "Open the **Manuscript Build** tool"
":kbd:`F6`", "Open the **Writing Statistics** tool"
":kbd:`F8`", "Toggle **Focus Mode**"
":kbd:`F9`", "Re-build the project's index"
@@ -88,7 +88,6 @@ Text Formatting Shortcuts
":kbd:`Ctrl+'`", "Wrap selected text, or word under cursor, in single quotes"
":kbd:`Ctrl+""`", "Wrap selected text, or word under cursor, in double quotes"
":kbd:`Ctrl+/`", "Toggle comment format for block or selected text"
":kbd:`Ctrl+0`", "Remove format for block or selected text"
":kbd:`Ctrl+1`", "Change block format to heading level 1"
":kbd:`Ctrl+2`", "Change block format to heading level 2"
":kbd:`Ctrl+3`", "Change block format to heading level 3"
@@ -101,6 +100,7 @@ Text Formatting Shortcuts
":kbd:`Ctrl+B`", "Format selected text, or word under cursor, with bold"
":kbd:`Ctrl+D`", "Format selected text, or word under cursor, with strike through"
":kbd:`Ctrl+I`", "Format selected text, or word under cursor, with italic"
":kbd:`Ctrl+M`", "Highlight selected text, or word under cursor"
":kbd:`Ctrl+Shift+/`", "Remove format for block or selected text"
":kbd:`Ctrl+Shift+D`", "Toggle ignored text format for block or selected text"
@@ -111,23 +111,34 @@ Other Editor Shortcuts
.. csv-table::
:header: "Shortcut", "Description"
":kbd:`F7`", "Re-run the spell checker on the document"
":kbd:`Ctrl+.`", "Open the context menu at the current cursor location"
":kbd:`Ctrl+A`", "Select all text in the document"
":kbd:`Ctrl+C`", "Copy selected text to clipboard"
":kbd:`Ctrl+K`", "Activate the insert commands (see list in :ref:`docs_features_shortcuts_insert`)"
":kbd:`Ctrl+R`", "Open or reload the current document in the viewer"
":kbd:`Ctrl+S`", "Save the current document"
":kbd:`Ctrl+V`", "Paste text from clipboard to cursor position"
":kbd:`Ctrl+W`", "Close the current document"
":kbd:`Ctrl+X`", "Cut selected text to clipboard"
":kbd:`Ctrl+Y`", "Redo latest undo"
":kbd:`Ctrl+Z`", "Undo latest changes"
":kbd:`Ctrl+Backspace`", "Delete the word before the cursor"
":kbd:`Ctrl+Del`", "Delete the word after the cursor"
":kbd:`Ctrl+F7`", "Toggle spell checking"
":kbd:`Ctrl+Return`", "Open the tag or reference under the cursor in the viewer"
":kbd:`Ctrl+Shift+A`", "Select all text in the current paragraph"
":kbd:`F7`", "Re-run the spell checker on the document"
":kbd:`Ctrl+.`", "Open the context menu at the current cursor location"
":kbd:`Ctrl+A`", "Select all text in the document"
":kbd:`Ctrl+C`", "Copy selected text to clipboard"
":kbd:`Ctrl+K`", "Activate the insert commands (see list in :ref:`docs_features_shortcuts_insert`)"
":kbd:`Ctrl+R`", "Open or reload the current document in the viewer"
":kbd:`Ctrl+S`", "Save the current document"
":kbd:`Ctrl+V`", "Paste text from clipboard to cursor position"
":kbd:`Ctrl+W`", "Close the current document"
":kbd:`Ctrl+X`", "Cut selected text to clipboard"
":kbd:`Ctrl+Y`", "Redo latest undo"
":kbd:`Ctrl+Z`", "Undo latest changes"
":kbd:`Ctrl+0`", "Reset zoom"
":kbd:`Ctrl++`", "Zoom in"
":kbd:`Ctrl+=`", "Zoom in"
":kbd:`Ctrl+-`", "Zoom out"
":kbd:`Ctrl+_`", "Zoom out"
":kbd:`Ctrl+Backspace`", "Delete the word before the cursor"
":kbd:`Ctrl+Del`", "Delete the word after the cursor"
":kbd:`Ctrl+F7`", "Toggle spell checking"
":kbd:`Ctrl+Return`", "Open the tag or reference under the cursor in the viewer"
":kbd:`Ctrl+Shift+Return`", "Open the tag or reference under the cursor in the editor"
":kbd:`Ctrl+Shift+A`", "Select all text in the current paragraph"
":kbd:`Ctrl+Shift+V`", "Paste text as plain text from clipboard to cursor position"
":kbd:`Ctrl+Left`", "Move to previous word."
":kbd:`Ctrl+Right`", "Move to next word."
":kbd:`Ctrl+Up`", "Move to previous paragraph."
":kbd:`Ctrl+Down`", "Move to next paragraph."
.. _docs_features_shortcuts_insert:
@@ -188,5 +199,10 @@ Document Viewer Shortcuts
":kbd:`Alt+Left`", "Move backward in the view history"
":kbd:`Alt+Right`", "Move forward in the view history"
":kbd:`Ctrl+C`", "Copy selected text to clipboard"
":kbd:`Ctrl+0`", "Reset zoom"
":kbd:`Ctrl++`", "Zoom in"
":kbd:`Ctrl+=`", "Zoom in"
":kbd:`Ctrl+-`", "Zoom out"
":kbd:`Ctrl+_`", "Zoom out"
":kbd:`Ctrl+Shift+A`", "Select all text in the current paragraph"
":kbd:`Ctrl+Shift+R`", "Close the document viewer"

View File

@@ -51,7 +51,7 @@ Other analytical models propose tracking a scene's pace, how it affects the mood
which element(s) of the story's genre are being satisfied. An author can use this mechanism to
track any element of a scene. Some examples include time of day, how much time passes in the scene,
or even the physical form of a shape-shifting character. If a story involves magic, one could track
which wand a main character has in hand. It's up to tha author.
which wand a main character has in hand. It's up to the author.
When the story and other scene metadata is extracted into a tabular form, it is possible to get a
comprehensive overview of the story and to identify possible issues. For example, so many

View File

@@ -0,0 +1,115 @@
.. _docs_features_vim_mode:
********
Vim Mode
********
.. _Vim: https://www.vim.org/
Vim_ is a keyboard-centric text editor. "Vim mode" refers to another editor implementing the
ability to perform a subset of vim motions. This will allow you to write, select, edit, copy,
paste, navigate, etc, efficiently by using keyboard commands.
Vim is modal. Three such modes have been implemented in novelWriter:
- **Normal** mode is the default mode used to navigate text.
- **Insert** mode is where you can write text like in a 'normal' text editor.
- **Visual** mode is for selecting text, with:
- **Visual** mode for per character selection.
- **V-Line** mode for per-line selection.
The vim mode setting is found in the **Features** section of the **Preferences**.
.. note::
Vim mode is an advanced feature. When you enable it, the text editor will behave very
differently than a standard text editor. A label in the footer of the editor will show which of
the vim modes it is in.
Mode Switching
==============
To switch between the various vim modes, these keystrokes implemented:
.. csv-table::
:header: "From Mode", "To Mode", "Keystrokes"
"Normal", "Insert", ":kbd:`i`, :kbd:`I`, :kbd:`a`, :kbd:`A`, :kbd:`o`, :kbd:`O`"
"Insert", "Normal", ":kbd:`Esc`"
"Normal", "Visual", ":kbd:`v`, :kbd:`V`"
You can exit visual mode back to normal mode by pressing :kbd:`Esc`, but all visual mode commands
that logically "terminate" the visual mode usage will return you to normal mode.
For instance, press :kbd:`V` to enter V-Line mode, select next word with :kbd:`w`. press :kbd:`y`
to yank (copy), you are now automatically put back in normal mode as you have completed selecting
your text.
Implemented Keystrokes (Vim Motions)
====================================
The table below shows the vim motions currently implemented in novelWriter.
.. csv-table::
:header: "Motion", "Mode(s)", "Description"
":kbd:`i`", "Normal → Insert", "Enter insert mode"
":kbd:`I`", "Normal → Insert", "Jump to first non-blank of line and enter insert"
":kbd:`v`", "Normal → Visual", "Enter character-wise visual mode"
":kbd:`V`", "Normal → V-Line", "Enter line-wise visual mode"
":kbd:`dd`", "Normal", "Delete (cut) current line"
":kbd:`x`", "Normal", "Delete character under cursor"
":kbd:`w`", "Normal / Visual", "Move to next word start"
":kbd:`b`", "Normal / Visual", "Move to previous word start"
":kbd:`e`", "Normal / Visual", "Move to next word end"
":kbd:`dw`", "Normal", "Delete from cursor to next word start"
":kbd:`de`", "Normal", "Delete from cursor to next word end"
":kbd:`db`", "Normal", "Delete from cursor to previous word start"
":kbd:`d$`", "Normal", "Delete from cursor to end of line"
":kbd:`yw`", "Normal", "Yank (copy) from cursor to next word start"
":kbd:`gg`", "Normal / Visual", "Jump to first line"
":kbd:`G`", "Normal / Visual", "Jump to last line"
":kbd:`yy`", "Normal", "Yank current line"
":kbd:`p`", "Normal", "Paste after current line"
":kbd:`P`", "Normal", "Paste before current line"
":kbd:`o`", "Normal → Insert", "Open new line below and enter insert"
":kbd:`O`", "Normal → Insert", "Open new line above and enter insert"
":kbd:`$`", "Normal / Visual", "Move to end of line"
":kbd:`a`", "Normal → Insert", "Enter insert after cursor"
":kbd:`A`", "Normal → Insert", "Enter insert at end of line"
":kbd:`u`", "Normal", "Undo last change"
":kbd:`zz`", "Normal", "Centre cursor vertically"
":kbd:`h`", "Normal / Visual", "Move left"
":kbd:`j`", "Normal / Visual", "Move down"
":kbd:`k`", "Normal / Visual", "Move up"
":kbd:`l`", "Normal / Visual", "Move right"
":kbd:`d`", "Visual / V-Line", "Delete selection"
":kbd:`x`", "Visual / V-Line", "Delete selection"
":kbd:`y`", "Visual / V-Line", "Yank selection"
":kbd:`0`", "Visual", "Move to start of line (extend selection)"
Known Issues
============
* Currently, :kbd:`dd` on an empty line will not delete, but using :kbd:`x` will.
* :kbd:`vypyy` will have :kbd:`ypyy` in command memory and thus not register :kbd:`yy`. Expected
behavior would be visual mode, yank, paste, yank line.
* Differing behavior from vim: the :kbd:`e` command behaves a bit differently with regards to the
last character of a word. The behavior is inconsistent with vim but functional and still logical
to use. The cursor is placed at the end of the word after the last character rather than on the
last character.
.. code-block::
test
^ Cursor placed here in vim
test
^ Cursor placed here in novelWriter vim mode
You will only really ever notice this behavior if you try to combine the :kbd:`e` command with
another. For instance, :kbd:`de` will not delete the last character but delete forward as it
starts one character after the word boundary.

View File

@@ -22,10 +22,10 @@ storage for robustness.
* Documentation: https://docs.novelwriter.io
* Public Releases: https://releases.novelwriter.io
* Internationalisation: https://crowdin.com/project/novelwriter
* Source Code: https://github.com/vkbo/novelWriter
* Source Releases: https://github.com/vkbo/novelWriter/releases
* Issue Tracker: https://github.com/vkbo/novelWriter/issues
* Feature Discussions: https://github.com/vkbo/novelWriter/discussions
* Source Code: https://github.com/saga-soft/novelWriter
* Source Releases: https://github.com/saga-soft/novelWriter/releases
* Issue Tracker: https://github.com/saga-soft/novelWriter/issues
* Feature Discussions: https://github.com/saga-soft/novelWriter/discussions
* PyPi Project: https://pypi.org/project/novelWriter
* Social Media: https://fosstodon.org/@novelwriter
@@ -59,6 +59,7 @@ storage for robustness.
user_interface/editor_viewer
user_interface/split_and_merge
user_interface/manuscript
user_interface/formatting
user_interface/statistics
.. toctree::
@@ -68,6 +69,7 @@ storage for robustness.
features/dialogue
features/story_comments
features/shortcuts
features/vim_mode
.. toctree::
:caption: In-Depth Topics
@@ -75,6 +77,7 @@ storage for robustness.
more/counting
more/typography
more/dictionaries
more/customise
more/handling_errors
more/project_format

View File

@@ -1,2 +0,0 @@
# French translation authors, one name per line
Jean-Michel Heras

View File

@@ -0,0 +1,3 @@
[fr]
version = "2.7"
authors = ["Jean-Michel Heras", "Veronica Berglyd Olsen"]

View File

@@ -96,21 +96,20 @@ msgid "Internationalisation: https://crowdin.com/project/novelwriter"
msgstr "Internationalisation: https://crowdin.com/project/novelwriter"
#: ../../source/index.rst:25
msgid "Source Code: https://github.com/vkbo/novelWriter"
msgstr "Code source : https://github.com/vkbo/novelWriter"
msgid "Source Code: https://github.com/saga-soft/novelWriter"
msgstr "Code source : https://github.com/saga-soft/novelWriter"
#: ../../source/index.rst:26
msgid "Source Releases: https://github.com/vkbo/novelWriter/releases"
msgstr "Source Releases: https://github.com/vkbo/novelWriter/releases"
msgid "Source Releases: https://github.com/saga-soft/novelWriter/releases"
msgstr "Source Releases: https://github.com/saga-soft/novelWriter/releases"
#: ../../source/index.rst:27
msgid "Issue Tracker: https://github.com/vkbo/novelWriter/issues"
msgstr "Issue Tracker: https://github.com/vkbo/novelWriter/issues"
msgid "Issue Tracker: https://github.com/saga-soft/novelWriter/issues"
msgstr "Issue Tracker: https://github.com/saga-soft/novelWriter/issues"
#: ../../source/index.rst:28
msgid "Feature Discussions: https://github.com/vkbo/novelWriter/discussions"
msgstr ""
"Feature Discussions: https://github.com/vkbo/novelWriter/discussions"
msgid "Feature Discussions: https://github.com/saga-soft/novelWriter/discussions"
msgstr "Feature Discussions: https://github.com/saga-soft/novelWriter/discussions"
#: ../../source/index.rst:29
msgid "PyPi Project: https://pypi.org/project/novelWriter"

View File

@@ -183,29 +183,29 @@ msgstr ""
#: ../../source/more/customise.rst:78
msgid ""
"The existing syntax themes are stored in `novelwriter/assets/syntax "
"<https://github.com/vkbo/novelWriter/tree/main/novelwriter/assets/"
"<https://github.com/saga-soft/novelWriter/tree/main/novelwriter/assets/"
"syntax>`_."
msgstr ""
"Les thèmes syntaxiques existants sont stockés dans `novelwriter/assets/"
"syntax <https://github.com/vkbo/novelWriter/tree/main/novelwriter/assets/"
"syntax <https://github.com/saga-soft/novelWriter/tree/main/novelwriter/assets/"
"syntax>`_."
#: ../../source/more/customise.rst:80
msgid ""
"The existing GUI themes are stored in `novelwriter/assets/themes <https://"
"github.com/vkbo/novelWriter/tree/main/novelwriter/assets/themes>`_."
"github.com/saga-soft/novelWriter/tree/main/novelwriter/assets/themes>`_."
msgstr ""
"Les thèmes GUI existants sont stockés dans `novelwriter/assets/themes "
"<https://github.com/vkbo/novelWriter/tree/main/novelwriter/assets/"
"<https://github.com/saga-soft/novelWriter/tree/main/novelwriter/assets/"
"themes>`_."
#: ../../source/more/customise.rst:82
msgid ""
"The existing icon themes are stored in `novelwriter/assets/icons <https://"
"github.com/vkbo/novelWriter/tree/main/novelwriter/assets/icons>`_."
"github.com/saga-soft/novelWriter/tree/main/novelwriter/assets/icons>`_."
msgstr ""
"Les thèmes d'icônes existants sont stockés dans `novelwriter/assets/icons "
"<https://github.com/vkbo/novelWriter/tree/main/novelwriter/assets/icons>`_."
"<https://github.com/saga-soft/novelWriter/tree/main/novelwriter/assets/icons>`_."
#: ../../source/more/customise.rst:85
msgid ""

View File

@@ -15,7 +15,7 @@ generated preview.
Text Word Counts and Stats
==========================
These are the rules for the main counts available for for each document in a project.
These are the rules for the main counts available for each document in a project.
For all counts, the following rules apply.
@@ -82,17 +82,17 @@ The following counts are available:
The number of characters in all lines, including any comments and meta data text. Paragraph
breaks are not counted, but in-paragraph hard line breaks are.
**Character in Text**
**Characters in Text**
The number of characters in body text paragraphs. Paragraph breaks are not counted, but
in-paragraph hard line breaks are.
**Characters in Headings**
The number of characters in headings.
**Character in Text, No Spaces**
**Characters in Text, No Spaces**
The number of characters in body text paragraphs considered part of a word or punctuation. That
is, white space characters are not counted.
**Character in Headings, No Spaces**
**Characters in Headings, No Spaces**
The number of characters in headings considered part of a word or punctuation. That is, white
space characters are not counted.

View File

@@ -1,94 +1,35 @@
.. _docs_more_custom:
**************
Customisations
**************
*************
Custom Themes
*************
.. _Enchant: https://rrthomas.github.io/enchant/
.. _Free Desktop: https://cgit.freedesktop.org/libreoffice/dictionaries/tree/
There are a few ways you can customise novelWriter yourself. Currently, you can add new GUI themes,
your own syntax themes, and install additional dictionaries.
.. _docs_more_custom_dict:
Spell Check Dictionaries
========================
novelWriter uses Enchant_ as the spell checking tool. Depending on your operating system, it may or
may not load all installed spell check dictionaries automatically.
Linux and MacOS
---------------
On Linux and MacOS, you generally only have to install hunspell, aspell or myspell dictionaries on
your system like you do for other applications. See your distro or OS documentation for how to do
this. These dictionaries should show up as available spell check languages in novelWriter.
Windows
-------
For Windows, English is included with the installation. For other languages you have to download
and add dictionaries yourself.
**Install Tool**
A small tool to assist with this can be found under **Tools > Add Dictionaries**. It will import
spell checking dictionaries from Free Office or Libre Office extensions. The dictionaries are then
installed in the install location for the Enchant library and should thus work for any application
that uses Enchant for spell checking.
**Manual Install**
If you prefer to do this manually or want to use a different source than the ones mentioned above,
You need to get compatible dictionary files for your language. You need two files files ending with
``.aff`` and ``.dic``. These files must then be copied to the following location:
``C:\Users\<USER>\AppData\Local\enchant\hunspell``
This assumes your user profile is stored at ``C:\Users\<USER>``. The last one or two folders may
not exist, so you may need to create them.
You can find the various dictionaries on the `Free Desktop`_ website.
.. note::
The Free Desktop link points to a repository, and what may look like file links inside the
dictionary folder are actually links to web pages. If you right-click and download those, you
get HTML files, not dictionaries!
In order to download the actual dictionary files, right-click the "plain" label at the end of
each line and download that.
There are a few ways you can customise novelWriter yourself. Currently, you can relatively easily
add new GUI themes. You can also add new icon themes, although this is not as straightforward.
.. _docs_more_custom_theme:
Syntax and GUI Themes
=====================
Colour Themes
=============
Adding your own GUI and syntax themes is relatively easy, although it requires that you manually
edit config files with colour values. The themes are defined by simple plain text config files with
meta data and colour settings.
Adding your own colour themes is relatively easy, although it requires that you manually edit
config files with colour values. The themes are defined in plain text files with meta data and
colour settings, using the toml format,
In order to make your own versions, first copy one of the existing files to your local computer and
modify it as you like.
* The existing syntax themes are stored in
`novelwriter/assets/syntax <https://github.com/vkbo/novelWriter/tree/main/novelwriter/assets/syntax>`_.
* The existing GUI themes are stored in
`novelwriter/assets/themes <https://github.com/vkbo/novelWriter/tree/main/novelwriter/assets/themes>`_.
* The existing icon themes are stored in
`novelwriter/assets/icons <https://github.com/vkbo/novelWriter/tree/main/novelwriter/assets/icons>`_.
The existing colour themes are stored in
`novelwriter/assets/themes <https://github.com/saga-soft/novelWriter/tree/main/novelwriter/assets/themes>`_.
Remember to also change the name of your theme by modifying the ``name`` setting at the top of the
file, otherwise you may not be able to distinguish them in **Preferences**.
For novelWriter to be able to locate the custom theme files, you must copy them to the
:ref:`docs_technical_locations_data` location in your home or user area. There should be a folder there named
``syntax`` for syntax themes, just ``themes`` for GUI themes, and ``icons`` for icon themes. These
folders are created the first time you start novelWriter.
:ref:`docs_technical_locations_data` location in your home or user area. There should be a folder
there named ``themes`` for colour themes. These folders are created the first time you start
novelWriter.
Once the files are copied there, they should show up in **Preferences** with the label you
set as ``name`` inside the file.
@@ -99,71 +40,156 @@ set as ``name`` inside the file.
files up to date.
Custom GUI and Icons Theme
--------------------------
The Theme File Format
---------------------
A GUI theme ``.conf`` file consists of the following settings:
A colour theme ``.toml`` file consists of the following settings:
.. code-block:: cfg
.. code-block:: toml
:caption: The theme file for the "Default Light Theme"
[Main]
name = My Custom Theme
description = A description of my custom theme
author = Jane Doe
credit = John Doe
url = https://example.com
license = CC BY-SA 4.0
licenseurl = https://creativecommons.org/licenses/by-sa/4.0/
name = "Default Light Theme"
mode = "light"
author = "Veronica Berglyd Olsen"
credit = "Veronica Berglyd Olsen"
url = "https://github.com/saga-soft/novelWriter"
[Icons]
default = 100, 100, 100
faded = 100, 100, 100
red = 255, 0, 0
orange = 255, 128, 0
yellow = 255, 255, 0
green = 0, 255, 0
aqua = 0, 255, 255
blue = 0, 0, 255
purple = 255, 0, 255
[Base]
base = "#fcfcfc"
default = "#303030"
faded = "#6c6c6c"
red = "#a62a2d"
orange = "#b36829"
yellow = "#a39c34"
green = "#296629"
cyan = "#269999"
blue = "#3a70a6"
purple = "#b35ab3"
[Project]
root = 0, 255, 255
folder = 255, 255, 0
file = 100, 100, 100
title = 0, 255, 0
chapter = 255, 0, 0
scene = 0, 0, 255
note = 255, 255, 0
root = "blue"
folder = "yellow"
file = "default"
title = "green"
chapter = "red"
scene = "blue"
note = "yellow"
active = "green"
inactive = "red"
disabled = "faded"
[Icon]
tool = "default"
sidebar = "default"
accept = "green"
reject = "red"
action = "blue"
option = "orange"
apply = "green"
create = "yellow"
destroy = "faded"
reset = "green"
add = "green"
change = "green"
remove = "red"
shortcode = "default"
markdown = "orange"
system = "yellow"
info = "blue"
warning = "orange"
error = "red"
[Palette]
window = 100, 100, 100
windowtext = 100, 100, 100
base = 100, 100, 100
alternatebase = 100, 100, 100
text = 100, 100, 100
tooltipbase = 100, 100, 100
tooltiptext = 100, 100, 100
button = 100, 100, 100
buttontext = 100, 100, 100
brighttext = 100, 100, 100
highlight = 100, 100, 100
highlightedtext = 100, 100, 100
link = 100, 100, 100
linkvisited = 100, 100, 100
window = "base:D105"
windowText = "default"
base = "base"
alternateBase = "#e0e0e0"
text = "default"
tooltipBase = "#ffffc0"
tooltipText = "#15150d"
button = "#efefef"
buttonText = "default"
brightText = "base"
highlight = "#3087c6"
highlightedText = "base"
link = "blue"
linkVisited = "blue"
accent = "#3087c6"
[GUI]
helptext = 0, 0, 0
fadedtext = 128, 128, 128
errortext = 255, 0, 0
helpText = "#5c5c5c"
fadedText = "#6c6c6c"
errorText = "red"
accentText = "blue"
activeButton = "blue:96"
activeBase = "#d7d7d7"
searchMatch = "orange:96"
In the Main section you must at least define the ``name`` settings.
[Syntax]
background = "base"
text = "default"
line = "default:32"
link = "blue"
headerText = "green"
headerTag = "green:L135"
emphasis = "orange"
whitespace = "orange:64"
dialog = "blue"
altDialog = "red"
note = "yellow:D125"
hidden = "faded"
shortcode = "blue"
keyword = "red"
tag = "green"
value = "green"
optional = "blue"
spellCheckLine = "red"
errorLine = "green"
replaceTag = "green"
modifier = "blue"
textHighlight = "yellow:72"
The Palette values correspond to the Qt enum values for ``QPalette::ColorRole``, see the
`Qt documentation <https://doc.qt.io/qt-6/qpalette.html#ColorRole-enum>`_ for more details. The
colour values are RGB numbers on the format ``r, g, b`` where each is an integer from ``0`` to
``255``. Omitted values are not loaded and will use default values. If the ``helptext`` colour is
not defined, it is computed as a colour between the ``window`` and ``windowtext`` colour.
Additional shades of some of the colours are also computed. These are mainly used for 3D effects.
Theme Sections
--------------
.. _ColorRole: https://doc.qt.io/qt-6/qpalette.html#ColorRole-enum
The theme file is made up of different sections depending on what part of novelWriter the theme
affects.
.. csv-table:: Theme Sections Overview
:header: "Section", "Description"
:class: "tight-table"
"``[Main]``", "Meta data about the theme, You must at least set ``name``, ``mode`` and ``author``, and ``mode`` must be either ``light`` or ``dark``."
"``[Base]``", "The base colours of the theme. These are also selectable colours in various places inside the app, like for icon colours in **Preferences**."
"``[Project]``", "The colours used for icons and markers for the different project item types."
"``[Icon]``", "The colours used for icons and buttons on the user interface. The names correspond to button and icon roles."
"``[Palette]``", "The colours used for styling the user interface. The values correspond to the ColorRole_ values in the Qt library."
"``[GUI]``", "The colours used for styling additional elements of the user interface."
"``[Syntax]``", "The colours used for syntax highlighting in documents."
Colour Value Formats
--------------------
There are several ways to enter colour values:
.. csv-table:: Colour Formats
:header: "Syntax", "Description"
:widths: 15, 85
:class: "tight-table"
"``#RRGGBB``", "A CSS style hexadecimal values, like ``#ff0000`` for red."
"``#RRGGBBAA``", "A CSS style hexadecimal values with transparency, like ``#ff00007f`` for half-transparent red."
"``name``", "A name referring to one of the colours already specified under the ``[Base]`` section, like ``red``. Note that you should not use named colours in the ``[Base]`` section itself as that may have unintended results."
"``name:255``", "A name referring to one of the colours already specified under the ``[Base]`` section, with a transparency value added. The value must be in the range ``0`` to ``255``, like ``red:127`` for half-transparent red."
"``name:L100``", "A name referring to one of the colours already specified under the ``[Base]`` section, where the L-number is a percentage value that makes it lighter. The value must be greater than ``0``. ``L100`` means no change."
"``name:D100``", "A name referring to one of the colours already specified under the ``[Base]`` section, where the D-number is a percentage value that makes it darker. The value must be greater than ``0``. ``D100`` means no change."
"``r, g, b``", "A set of red, green and blue numbers in the range ``0`` to ``255``, like ``255, 0, 0`` for red."
"``r, g, b, a``", "A set of red, green, blue and alpha numbers in the range ``0`` to ``255``, like ``255, 0, 0, 127`` for half-transparent red."
.. versionadded:: 2.5
The ``fadedtext`` and ``errortext`` theme colour entries were added.
@@ -172,60 +198,113 @@ Additional shades of some of the colours are also computed. These are mainly use
The ``icontheme`` setting was dropped as the icon theme is now its own setting.
The ``[Icons]`` and ``[Project]`` sections were added, and the ``status*`` settings removed.
.. versionadded:: 2.8
The ``[Syntax]`` section was moved into the main theme file. Previously, these settings were in
their own file. The ``[Icons]`` section was renamed to ``[Base]``, and a new ``[Icon]`` section
added for button and icon roles. Added the ``line`` and ``whitespace`` settings. Dropped the
``license``, ``licenseurl``, and ``description`` settings. The ``author`` field is now required
if the theme is included in the app, but not for user themes.
Custom Syntax Theme
-------------------
.. versionadded:: 26.2
The ``accentText``, ``activeButton``, ``activeBase`` and ``searchMatch`` settings were added to
the ``[GUI]`` section. The file format was also converted from conf to toml, and a number of the
colour settings were renamed to camelCase format. The following values were renamed:
A syntax theme ``.conf`` file consists of the following settings:
* ``altaction`` to ``option``
* ``systemio`` to ``system``
* ``windowtext`` to ``windowText``
* ``alternatebase`` to ``alternateBase``
* ``tooltipbase`` to ``tooltipBase``
* ``tooltiptext`` to ``tooltipText``
* ``buttontext`` to ``buttonText``
* ``brighttext`` to ``brightText``
* ``highlightedtext`` to ``highlightedText``
* ``linkvisited`` to ``linkVisited``
* ``helptext`` to ``helpText``
* ``fadedtext`` to ``fadedText``
* ``errortext`` to ``errorText``
* ``headertext`` to ``headerText``
* ``headertag`` to ``headerTag``
* ``altdialog`` to ``altDialog``
* ``spellcheckline`` to ``spellCheckLine``
* ``errorline`` to ``errorLine``
* ``replacetag`` to ``replaceTag``
* ``texthighlight`` to ``textHighlight``
Icon Themes
===========
Icon themes are *not* straightforward to add, but if you want to make the effort, this section
describes how to do it.
The existing icon themes are stored in
`novelwriter/assets/icons <https://github.com/saga-soft/novelWriter/tree/main/novelwriter/assets/icons>`_.
As with colour themes, remember to change the name of your theme by modifying the ``name`` setting
at the top of the file, otherwise you may not be able to distinguish them in **Preferences**.
For novelWriter to be able to locate the custom theme files, you must copy them to the
:ref:`docs_technical_locations_data` location in your home or user area. There should be a folder
there ``icons`` for icon themes. These folders are created the first time you start novelWriter.
The Icons File Format
---------------------
Icon themes are kept in files with the ``.icons`` file extension. The file format is a custom
format with entries on the form ``section:key = value``.
.. code-block:: cfg
:caption: The icons file for "Material Symbols - Rounded Medium" (truncated)
[Main]
name = My Syntax Theme
author = Jane Doe
credit = John Doe
url = https://example.com
license = CC BY-SA 4.0
licenseurl = https://creativecommons.org/licenses/by-sa/4.0/
# Meta
meta:name = Material Symbols - Rounded Medium
meta:author = Google Inc
meta:license = Apache 2.0
[Syntax]
background = 255, 255, 255
text = 0, 0, 0
link = 0, 0, 0
headertext = 0, 0, 0
headertag = 0, 0, 0
emphasis = 0, 0, 0
dialog = 0, 0, 0
altdialog = 0, 0, 0
note = 0, 0, 0
hidden = 0, 0, 0
shortcode = 0, 0, 0
keyword = 0, 0, 0
tag = 0, 0, 0
value = 0, 0, 0
optional = 0, 0, 0
spellcheckline = 0, 0, 0
errorline = 0, 0, 0
replacetag = 0, 0, 0
modifier = 0, 0, 0
texthighlight = 255, 255, 255, 128
# Icons
icon:alert_error = <svg ...>
icon:alert_info = <svg ...>
icon:alert_question = <svg ...>
icon:alert_warn = <svg ...>
icon:cls_archive = <svg ...>
icon:cls_character = <svg ...>
icon:cls_custom = <svg ...>
icon:cls_entity = <svg ...>
icon:cls_none = <svg ...>
icon:cls_novel = <svg ...>
icon:cls_object = <svg ...>
icon:cls_plot = <svg ...>
icon:cls_template = <svg ...>
icon:cls_timeline = <svg ...>
icon:cls_trash = <svg ...>
icon:cls_world = <svg ...>
In the Main section, you must define at least the ``name`` setting. The Syntax colour values are
RGB(A) numbers of the format ``r, g, b, a`` where each is an integer from ``0`` to ``255``. The
fourth value is the alpha channel, which can be omitted.
The icon keys are associated with icon placement locations inside novelWriter, and the template for
them is defined in the script that generates the default icon themes.
Omitted syntax colours default to black, except ``background`` which defaults to white, and
``texthighlight`` which defaults to white with half transparency.
The script can be found under
`utils/icon_themes.py <https://github.com/saga-soft/novelWriter/blob/main/utils/icon_themes.py>`__
in the source code.
.. versionadded:: 2.2
The ``shortcode`` syntax colour entry was added.
This file includes all the code needed to generate the themes that are included in novelWriter. The
icon keys are mapped to icon keys from the specific themes in JSON files in the ``icon_themes``
folder next to the script. This is the recommended way to generate these themes. Doing it manually
is not advisable.
.. versionadded:: 2.3
The ``optional`` syntax colour entry was added.
.. versionadded:: 2.4
The ``texthighlight`` syntax colour entry was added.
Icon Value Format
-----------------
.. versionadded:: 2.5
The ``dialog``, ``altdialog``, ``note`` and ``tag`` syntax colour entries were added.
``straightquotes``, ``doublequotes`` and ``singlequotes`` were removed.
As can be seen from the example, an icon is defined in the ``icon`` section with a key and an
in-line SVG XML block. The XML must fit on one line and obey the following rules:
#. It must be single colour, that is, the fill colour attribute must be able to colourise the
entire icon.
#. The fill colour attribute *must* be defined and must be set to: ``fill="#000000"``. This value
is replaced by the relevant theme colour when the icon is processed in novelWriter.
.. versionadded:: 2.7
The icon theme files were added. Previously, icons were stored as individual SVG files with a
config file mapping the file names to the internal icon keys.

View File

@@ -0,0 +1,47 @@
.. _docs_more_dictionaries:
************************
Spell Check Dictionaries
************************
.. _Enchant: https://rrthomas.github.io/enchant/
Spell checking is provided by the Enchant_ library. Depending on your operating system, it may or
may not load all installed spell check dictionaries automatically.
Linux and MacOS
===============
On Linux and MacOS, you generally only have to install hunspell, aspell or myspell dictionaries on
your system like you do for other applications. See your distro or OS documentation for how to do
this. These dictionaries should show up as available spell check languages in novelWriter.
Windows
=======
For Windows, English is included with the installation. For other languages you have to download
and add dictionaries yourself.
Install Tool
------------
A small tool to assist with this can be found under **Tools > Add Dictionaries**. It will import
spell checking dictionaries from Free Office or Libre Office extensions. The dictionaries are then
installed in the install location for the Enchant library and should thus work for any application
that uses Enchant for spell checking.
Manual Install
--------------
If you prefer to do this manually or want to use a different source than the ones mentioned above,
You need to get compatible dictionary files for your language. You need two files ending with
``.aff`` and ``.dic``. These files must then be copied to the following location:
``C:\Users\<USER>\AppData\Local\enchant\hunspell``
This assumes your user profile is stored at ``C:\Users\<USER>``. The last one or two folders may
not exist, so you may need to create them.

View File

@@ -76,7 +76,7 @@ right single quotation marks, depending on the font. There is a Wikipedia articl
.. note::
On export with the **Build Manuscript** tool, these apostrophes will be replaced
On export with the **Manuscript Build** tool, these apostrophes will be replaced
automatically with the corresponding right hand single quote symbol as is generally recommended.
Therefore it doesn't really matter if you only use them to correct syntax highlighting in some
places, and not others.

View File

@@ -4,9 +4,10 @@
Running from Source
*******************
.. _GitHub: https://github.com/vkbo/novelWriter/releases
.. _GitHub: https://github.com/saga-soft/novelWriter/releases
.. _PyPi: https://pypi.org/project/novelWriter/
.. _Sphinx Docs: https://www.sphinx-doc.org/
.. _uv: https://docs.astral.sh/uv/
This chapter describes various ways of running novelWriter directly from the source code, and how
to build the various components like the translation files and documentation.
@@ -28,6 +29,7 @@ by running:
.. _docs_technical_source_depend:
Dependencies
============
@@ -43,11 +45,20 @@ The following Python packages are needed to run all features of novelWriter:
If you want spell checking, you must install the ``PyEnchant`` package. The spell check library
must be at least 3.0 to work with Windows. On Linux, 2.0 also works fine.
If you install from PyPi, these dependencies should be installed automatically. If you install from
source, dependencies can still be installed from PyPi with:
If you install novelWriter from PyPi, these dependencies should be installed automatically.
You can run novelWriter directly from source with uv_ or another similar tool:
.. code-block:: bash
uv run novelwriter
If you prefer to install dependencies using ``pip``, you must first generate the
``requirements.txt`` file:
.. code-block:: bash
python pkgutils.py gen-req
pip install -r requirements.txt
.. note::
@@ -136,12 +147,14 @@ running:
Building the Documentation
==========================
A local copy of this documentation can be generated as HTML. This requires installing some Python
packages from PyPi:
A local copy of this documentation can be generated as HTML.
If you're using ``pip``, you must first generate the ``requirements.txt`` file:
.. code-block:: bash
pip install -r docs/requirements.txt
python pkgutils.py gen-req docs
pip install -r requirements.txt
The documentation can then be built from the root folder in the source code by running:
@@ -149,6 +162,12 @@ The documentation can then be built from the root folder in the source code by r
make -C docs html
Or you can run directly with uv_ or similar tools:
.. code-block:: bash
uv run make -C docs html
If successful, the documentation should be available in the ``docs/build/html`` folder and you can
open the ``index.html`` file in your browser.

View File

@@ -190,4 +190,4 @@ Statistics** tool. If this file is lost, the history it contains is also lost, b
no impact on the project.
Each session is recorded as a JSON object on a single line of the file. Each session record is
appended tot he file.
appended to the file.

View File

@@ -4,23 +4,12 @@
Running Tests
*************
.. _uv: https://docs.astral.sh/uv/
The novelWriter source code is well covered by tests. The test framework used for the development
is ``pytest`` with the use of an extension for Qt.
Dependencies
============
The dependencies for running the tests can be installed with:
.. code-block:: bash
pip install -r tests/requirements.txt
This will install a couple of extra packages for coverage and test management. The minimum
requirement is ``pytest`` and ``pytest-qt``.
Simple Test Run
===============
@@ -28,19 +17,35 @@ To run the tests, you simply need to execute the following from the root of the
.. code-block:: bash
pytest
uv run pytest
This uses uv_. See below for manually installing dependencies using ``pip``.
Since several of the tests involve opening up the novelWriter GUI, you may want to disable the GUI
for the duration of the test run. Moving your mouse while the tests are running may otherwise
interfere with the execution of some tests.
You can disable the renderring of the GUI by setting the flag ``QT_QPA_PLATFORM=offscreen``:
You can disable the rendering of the GUI by setting the flag ``QT_QPA_PLATFORM=offscreen``:
.. code-block:: bash
export QT_QPA_PLATFORM=offscreen pytest
Dependencies
------------
To generate the requirements file and install dependencies using ``pip``, run:
.. code-block:: bash
python pkgutils.py gen-req app test
pip install -r tests/requirements.txt
This will install a couple of extra packages for coverage and test management. The minimum
requirement is ``pytest`` and ``pytest-qt``.
Advanced Options
================

View File

@@ -56,6 +56,20 @@ activated by clicking the left-most icon button in the editor header.
.. versionadded:: 2.2
.. _docs_usage_formatting_shortcodes_break:
Forced Line Break
-----------------
Inserting ``[br]`` in the text will ensure a line break is always inserted in that place, even if
you turn off **Preserve Hard Line Breaks** in your **Manuscript Build** settings.
You can add a manual line break after it too, for a better visual representation in the editor, but
keep in mind that this line break is removed before the text is processed, so the text on either
side of the ``[br]`` shortcode will be considered as belonging to the same line. This can affect
how alignment is treated. See :ref:`docs_usage_align_indent_forced` for more details.
.. _docs_usage_formatting_breaks:
Vertical Space and Page Breaks

View File

@@ -53,18 +53,33 @@ the entire paragraph. For the following text, all lines will be centred:
.. code-block:: md
>> I am the very model of a modern Major-General
>> I am the very model of a modern Major-General <<
I've information vegetable, animal, and mineral
I know the kings of England, and I quote the fights historical
From Marathon to Waterloo, in order categorical <<
From Marathon to Waterloo, in order categorical
If you have multiple conflicting alignments on a paragraph, only one is applied. The order of
precedence is:
#. Left alignment
#. Right alignment
#. Centred text
#. Justified text
.. note::
It is strongly recommended that you keep the **Preserve Hard Line Breaks** setting enabled in
your manuscript build settings. This setting assumes all single line breaks in your text are
intended. Turning this off makes adding line breaks more complicated, but it is still possible.
See :ref:`docs_usage_align_indent_forced`.
Alignment with First Line Indent
================================
If you have first line indent enabled in your manuscript build settings, you probably want to
disable it for text in verses. Adding any alignment tags will cause the first line indent to be
switched off for that paragraph.
disable it for text in verses. Adding any alignment tags on a paragraph will cause the first
line indent to be switched off for that paragraph.
:bdg-info:`Example`
@@ -76,3 +91,35 @@ The following text will always be aligned against the left margin:
I've information vegetable, animal, and mineral
I know the kings of England, and I quote the fights historical
From Marathon to Waterloo, in order categorical
.. _docs_usage_align_indent_forced:
Alignment with Forced Line Breaks
=================================
If you turn off **Preserve Hard Line Breaks** in your manuscript build settings, you can still
force line breaks in paragraphs using the ``[br]`` shortcode. For clarity in the text, you can add
a line break after it as well. It doesn't result in two line breaks.
Keep in mind that when the text is processed, the lines on either side of a ``[br]`` shortcode are
combined, and any trailing hard line break is *ignored*. This means that when such a paragraph is
processed, these line breaks count as the same line. This affects how alignment tags are handled.
For instance, this text becomes centred instead of left aligned.
.. code-block:: md
>> I am the very model of a modern Major-General[br]
I've information vegetable, animal, and mineral[br]
I know the kings of England, and I quote the fights historical[br]
From Marathon to Waterloo, in order categorical <<
Since this is understood as one line, this is the only way you can actually centre this paragraph.
.. caution::
Due to this difference in how text with ``[br]`` tags are processed, it is generally better to
stick with the **Preserve Hard Line Breaks** setting enabled. It ensures a better correspondence
between what you see in the editor and what output you get.
See also :ref:`docs_usage_formatting_shortcodes_break`.

View File

@@ -64,19 +64,31 @@ A minimal set of Markdown text emphasis styles are supported for text paragraphs
``**text**``
The text is rendered as strongly emphasised text (bold).
``*text*`` (optional)
The text is also rendered as strongly emphasised text (bold).
``~~text~~``
Strike through text.
``==text==``
The text is highlighted.
In Markdown guides it is often recommended to differentiate between strong emphasis and emphasis
by using ``**`` for strong and ``_`` for emphasis, although Markdown generally also supports ``__``
for strong and ``*`` for emphasis. However, since the differentiation makes the highlighting and
conversion significantly simpler and faster, in novelWriter this is a rule, not just a
recommendation.
In addition, the following rules apply:
As of version 2026.1, it is possible to enable ``*text*`` for bold text. This has become a very
common notation in many user interfaces, and is now also supported by novelWriter. It can be
enabled in **Preferences** in the **Text Editing** section. Enabling this will not disable
``**text**`` as bold, but will allow both formats. It will, however, change the format button and
:kbd:`Ctrl+B` to use a single asterisk instead of two.
1. The emphasis and strike through formatting tags do not allow spaces between the words and the
tag itself. That is, ``**text**`` is valid, ``**text **`` is not.
In general, the following rules apply:
1. The emphasis, strike through and highlight formatting tags do not allow spaces between the words
and the tag itself. That is, ``**text**`` is valid, ``**text **`` is not.
2. More generally, the delimiters must be on the outer edge of words. That is, ``some **text in
bold** here`` is valid, ``some** text in bold** here`` is not.
3. If using both ``**`` and ``_`` to wrap the same text, the underscore must be the **inner**

View File

@@ -45,7 +45,7 @@ manuscript. The chapter and scenes headings are also displayed in the
``## Chapter Title``
This is a heading level two. This heading indicates the start of a new chapter. Chapter numbers
can be inserted automatically when building the manuscript, so you don't have to do this in the
title. See :ref:`docs_ui_manuscript_head_numbers` for more details.
title. See :ref:`docs_ui_manuscript_formatting_head_numbers` for more details.
``### Scene Title``
This is a heading level three. This heading indicates the start of a new scene. Scene numbers or
@@ -78,11 +78,11 @@ want to keep the use cases in mind while writing.
``###! Scene Title``
This is an alternative scene heading that can be formatted differently in the **Manuscript
Build** tool. It is intended for separating "soft" and "hard" scene breaks. Aside from this, it
behaves identically to a regular scene heading. See :ref:`docs_ui_manuscript_head_hard_soft`
for more details.
behaves identically to a regular scene heading.
See :ref:`docs_ui_manuscript_formatting_head_hard_soft` for more details.
The formatting of these headings can be customised quite extensively in the
:ref:`Manuscript Tool <docs_ui_manuscript>`, which is covered in a separate part of the
:ref:`Manuscript Tool <docs_ui_manuscript_formatting>`, which is covered in a separate part of the
documentation.
.. note::
@@ -94,3 +94,8 @@ Page breaks can be automatically added before titles, partition, chapter and sce
the **Manuscript Build** tool when you build your project to a format that supports page breaks.
If you want page breaks in other places, you have to specify them manually.
See :ref:`docs_usage_formatting_breaks` for more details.
.. note::
When you build a manuscript from your project, the level of the headings in your document will
change. See :ref:`docs_ui_manuscript_formatting_head_promote` for more details.

View File

@@ -4,7 +4,7 @@
Tips & Tricks
*************
.. _Discussions Page: https://github.com/vkbo/novelWriter/discussions
.. _Discussions Page: https://github.com/saga-soft/novelWriter/discussions
This is a list of hopefully helpful little tips on how to get the most out of novelWriter.
@@ -13,8 +13,8 @@ This is a list of hopefully helpful little tips on how to get the most out of no
contribute, or start a discussion on the project's `Discussions Page`_.
Managing the Project
====================
Your Project
============
.. dropdown:: How do I create a project from a template?
:animate: fade-in-slide-down
@@ -42,6 +42,57 @@ Managing the Project
Settings** from the respective configuration tabs. You can then import these labels in another
project.
.. dropdown:: How do I add introductory text to chapters?
:animate: fade-in-slide-down
Sometimes chapters have a short preface, like a brief piece of text or a quote to set the stage
before the first scene begins.
If you add separate files for chapters and scenes, the chapter file is the perfect place to add
such text. Separating chapter and scene files also allows you to make scene files child
documents of the chapter.
.. dropdown:: How do I distinguishing between soft and hard scene breaks?
:animate: fade-in-slide-down
Depending on your writing style, you may need to separate between soft and hard scene breaks
within chapters. Like for instance if you switch point-of-view character often.
In such cases you may want to use different scene headings for hard and soft scene breaks. The
**Manuscript Build** tool will let you define a different format for scenes using the ``###``
and ``###!`` heading codes when you generate your manuscript. You can for instance add the
common "``* * *``" for hard breaks and select to hide soft scene breaks, which will just insert
an empty paragraph in their place. See :ref:`docs_ui_manuscript_settings` for more details.
.. versionadded:: 2.4
.. dropdown:: How can I set the language for my manuscript?
:animate: fade-in-slide-down
The language set for manuscript documents like Open Document and Word Document is taken from
your project language setting in **Project Settings**. Only some languages are available here,
but you can override the language information by setting the "Override Document Language" value
in your Manuscript Build settings to a valid language code. The code uses the
`IETF BCP 47 language tag <https://en.wikipedia.org/wiki/IETF_language_tag>`__ format.
Examples: ``en`` for English, ``de`` for German, etc.
If you want to help add new languages to novelWriter, see: :ref:`docs_contributing`.
.. versionadded:: 2.8
The Application
===============
.. dropdown:: How can I increase the line height?
:animate: fade-in-slide-down
Unfortunately, in this case, novelWriter uses the plain text editor component of the underlying
framework (called Qt) which doesn't support changing the line height. However, you can choose an
editor font with larger leading (the spacing between the lines). A good font for this case is
`Noto <https://fonts.google.com/noto>`__, which comes in both Sans-Serif and Serif.
Layout Tricks
=============
@@ -79,34 +130,6 @@ Layout Tricks
See :ref:`docs_usage_align_indent` for more details.
Organising Your Text
====================
.. dropdown:: How do I add introductory text to chapters?
:animate: fade-in-slide-down
Sometimes chapters have a short preface, like a brief piece of text or a quote to set the stage
before the first scene begins.
If you add separate files for chapters and scenes, the chapter file is the perfect place to add
such text. Separating chapter and scene files also allows you to make scene files child
documents of the chapter.
.. dropdown:: How do I distinguishing between soft and hard scene breaks?
:animate: fade-in-slide-down
Depending on your writing style, you may need to separate between soft and hard scene breaks
within chapters. Like for instance if you switch point-of-view character often.
In such cases you may want to use different scene headings for hard and soft scene breaks. The
**Build Manuscript** tool will let you define a different format for scenes using the ``###``
and ``###!`` heading codes when you generate your manuscript. You can for instance add the
common "``* * *``" for hard breaks and select to hide soft scene breaks, which will just insert
an empty paragraph in their place. See :ref:`docs_ui_manuscript_settings` for more details.
.. versionadded:: 2.4
Other Tools
===========

View File

@@ -5,9 +5,11 @@ Introduction
************
.. _Markdown: https://en.wikipedia.org/wiki/Markdown
.. _Contributing Guide: https://github.com/saga-soft/novelWriter/blob/main/CONTRIBUTING.md
.. _Crowdin: https://crowdin.com/project/novelwriter
In a nutshell, novelWriter is a plain text editor that lets you organise one or more novels and
associated notes as many smaller documents. You can at any time generate standard document formats
In a nutshell, novelWriter is a plain text editor that lets you organise one or more novels, and
associated notes, as many smaller documents. You can at any time generate standard document formats
from these plain text documents. Whether it is an outline of your story, a draft, a complete
manuscript, or even a collection of your character notes or other notes.
@@ -51,7 +53,26 @@ comments, and an auto-complete menu can help you here too. More about this later
writing. It is also *not* a full-featured Markdown editor.
In addition, novelWriter is not intended as a tool for organising research for writing, and
therefore lacks formatting features you may need for this purpose. The notes feature in is
therefore lacks formatting features you may need for this purpose. The notes feature is
mainly intended for character profiles and plot outlines. It is recommended to use a proper
note-taking tool for research. This is anyway more practical as you may use the same research
for multiple projects.
.. _docs_contributing:
Contributing
============
This project relies on contributions to add new features. In particular, adding translations into
other languages, or updating translations for existing languages, is particularly useful.
For code contributions, please read the official `Contributing Guide`_.
For translations, please use the project page on Crowdin_. For each language, there are two
translation sets. One for the application itself, labelled "Main GUI". This is a fairly large
dataset to translate. A smaller set called "Project Exports" is also available. The latter is what
makes a language available in **Project Settings** in the application. It is a fairly small set to
translate, and you can choose to translate only this set if you wish. If the language you wish to
contribute to is not available in the list, you can message the maintainer on the Crowdin page to
add new languages to the project.

View File

@@ -15,7 +15,7 @@ side of the main window.
Each line in the project tree shows the name of each item, its word count (or alternatively
character count), an icon for :ref:`docs_usage_project_active`, and a custom icon for
:ref:`docs_usage_project_status` of each item. These latter two are covered alter in this section.
:ref:`docs_usage_project_status` of each item. These latter two are covered later in this section.
You can add, view and edit documents in the project tree by right-clicking on them. Some features
are also located in the buttons along the top, next to the **Project Content** label.
@@ -47,8 +47,8 @@ Root Folder Types
**Novel** (Story)
This is where you put the documents that are part of your story. You can create multiple Novel
folders if you wish, but various parts of the application assumes each Novel folder belong to
one novel.
folders if you wish, but various parts of the application assumes each Novel folder belongs to
only one novel.
The Novel folder is somewhat special in that it can contain documents for chapters, scenes and
story partitions. How this is indicated is covered in the section :ref:`docs_usage_headings`.
@@ -166,6 +166,9 @@ a character note template, you can add a **Templates** root folder to your proje
added to this root folder will show up in the **Add Item** menu in the project tree toolbar. When
selected, a new document is created with its content copied from the chosen template.
If the first line of the template file is a title line, the title text will be replaced with the
text of the document label when it is first created.
.. versionadded:: 2.3

View File

@@ -23,7 +23,7 @@ it selected, or drag and drop it onto the editor panel. This will open the docum
editor.
The editor has a maximise button, which toggles the **Focus Mode**, and a close button in the
top--right corner. On the top--left side you will find a tools button that opens a toolbar with a
top-right corner. On the top-left side you will find a tools button that opens a toolbar with a
few buttons for applying text formatting, a drop down menu for navigating between headings, and a
search button to open the search dialog.
@@ -55,7 +55,7 @@ edited from the **Project Word List** tool available from the **Tools** menu.
.. note::
Generally, spell checking dictionaries are collected from your operating system, but on Windows
they are not. See :ref:`docs_more_custom_dict` for how to add spell checking dictionaries on
they are not. See :ref:`docs_more_dictionaries` for how to add spell checking dictionaries on
Windows.
@@ -102,11 +102,12 @@ Pressing :kbd:`Return` while in the search box will search for the next occurren
highlighted text and move to the next result.
There are a number of settings for the search tool available as toggle switches above the search
box. They allow you to search for, in order: matched case only, whole word results only, search
using regular expressions, loop search when reaching the end of the document, and move to the next
document when reaching the end. There is also a switch that will try to match the case of the word
when the replacement is made. That is, it will try to keep the word upper, lower, or capitalised to
match the word being replaced.
box. They allow you to enable, in order: auto-replace of symbols as you type in the search and
replace boxes (see :ref:`docs_ui_edit_view_auto`), matched case only, whole word results only,
search using regular expressions, loop search when reaching the end of the document, and move to
the next document when reaching the end. There is also a switch that will try to match the case of
the word when the replacement is made. That is, it will try to keep the word upper, lower, or
capitalised to match the word being replaced.
.. _docs_ui_edit_view_auto:
@@ -153,14 +154,14 @@ middle-clicking on the document will also open it in the viewer.
The document viewed does not have to be the same document as the one currently being edited.
However, If you *are* viewing the same document, pressing :kbd:`Ctrl+R` from the editor will update
the document with your latest changes. You can also press the reload button in the top--right
the document with your latest changes. You can also press the reload button in the top-right
corner of the viewer panel, next to the close button, to achieve the same thing.
In the viewer, references become clickable links. Clicking them will replace the content of the
viewer with the content of the document the reference points to.
The document viewer keeps a history of viewed documents, which you can navigate with the arrow
buttons in the top--left corner of the viewer. If your mouse has backward and forward navigation
buttons in the top-left corner of the viewer. If your mouse has backward and forward navigation
buttons, these can be used as well. They work just like the backward and forward features in a
browser. The left-most button is a dropdown menu for quickly navigation between headings in the
document. The edit button on the right will open the viewed document in the editor.

View File

@@ -0,0 +1,213 @@
.. _docs_ui_manuscript_formatting:
*************************
Formatting the Manuscript
*************************
The **Manuscript Build Settings** tool has a **Headings** page and a separate **Formatting** page.
This chapter covers both.
.. _docs_ui_manuscript_formatting_head:
Headings
========
.. figure:: images/fig_build_settings_headings.png
:width: 80%
The **Headings** page of the **Manuscript Build Settings** dialog.
The **Headings** page of the **Manuscript Build Settings** dialog allows you to set how the
headings in your Novel Documents are formatted. By default, the title is just copied as-is,
indicated by the ``{Title}`` format. You can change this to, for instance, add chapter numbers and
scene numbers, or insert character names, as shown in the figure above.
Clicking the edit button next to a format will copy the formatting string into the edit box where
it can be modified, and where a syntax highlighter will help indicate which parts are automatically
generated by the build tool. The :guilabel:`Insert` button is a dropdown list of these formats, and
selecting one will insert it at the position of the cursor.
Any text you add that isn't highlighted in colours will remain in your formatted titles.
``{Title}`` will always be replaced by the text in the heading from your documents.
.. csv-table:: Heading Formats
:header: "Code", "Description"
:class: "tight-table"
"``{BR}``", "Insert a line break."
"``{Title}``", "Insert the original title text."
"``{Chapter}``", "Insert a chapter number."
"``{Chapter:Word}``", "Insert a chapter number as a word."
"``{Chapter:URoman}``", "Insert a chapter number as an upper case Roman numeral."
"``{Chapter:LRoman}``", "Insert a chapter number as a lower case Roman numeral."
"``{Scene}``", "Insert a scene number within the current chapter."
"``{Scene:Abs}``", "Insert a scene number unique to the whole manuscript."
"``{Char:POV}``", "Insert the point-of-view character's :ref:`display name <docs_usage_tags_refs_tags>`."
"``{Char:Focus}``", "Insert the focus character's :ref:`display name <docs_usage_tags_refs_tags>`."
You can preview the result of these format strings by clicking :guilabel:`Apply`, and then clicking
:guilabel:`Preview` in the **Manuscript Build** tool main window.
.. note::
The language used for generating chapter numbers is defined by the project language set in
**Project Settings**. This feature relies on translation files existing for each language.
If you want to help add new languages to novelWriter, see: :ref:`docs_contributing`.
.. _docs_ui_manuscript_formatting_head_numbers:
Automatic Numbering
-------------------
The headings formatter allows you to automatically insert chapter and scene numbers into your
headings. The automatic chapter number counter will skip all chapter headings marked as unnumbered
using the heading format described in :ref:`docs_usage_headings_levels`.
Scene numbers are mostly intended for use in a draft manuscript. You can either insert absolute
scene numbers that count every scene in the novel, or you can insert per-chapter scene numbers
that reset to 1 for each new chapter.
:bdg-info:`Example`
This will create a chapter title on the format "Chapter 1: Title Text":
.. code-block:: md
Chapter {Chapter}: {Title}
This will create a scene title on the format "Scene 1.1: Title Text":
.. code-block:: md
Scene {Chapter}.{Scene}: {Title}
Scene Separators
----------------
If you don't want any titles for your scenes (or for your sections if you have them), you can leave
the formatting boxes empty. If so, an empty paragraph will be inserted between the scenes or
sections instead, resulting in a gap in the text. You can also enable the :guilabel:`Hide` setting,
which will ignore them completely. That is, there won't even be an extra gap inserted.
Alternatively, if you want a separator text between them, like the common ``* * *``, you can enter
the desired separator text as the format. If the format is any piece of static text, it will always
be treated as a separator. A static separator is only inserted between scenes, as opposed to a
formatted heading which is also inserted before the first scene of a chapter.
A special case of the static separator is the horizontal line, which is inserted by using the
``----`` format. There is also an option for it in the :guilabel:`Insert` dropdown list. This will
replace all the text in the edit box with four hyphens. Only if the format is exactly four hyphens
will it be treated as a horizontal line.
In the output formats, the horizontal line is rendered as a line at 50% the text width or the page
width. The exception is for Markdown output, where it is printed as-is.
.. _docs_ui_manuscript_formatting_head_hard_soft:
Hard and Soft Scenes
--------------------
If you wish to distinguish between so-called soft and hard scene breaks, you can use the
alternative scene heading format in your text. You can then give these headings a different
formatting in the **Headings** settings.
See :ref:`docs_usage_headings_levels` for more information on how to format alternative scene
headings in your text.
.. _docs_ui_manuscript_formatting_head_promote:
Heading Level Promotion
-----------------------
When you build the manuscript, novel headings are promoted one level relative to the level
specified in the source documents as typed in the editor. The promotion follows these rules:
#. The main novel title and partition titles are converted to regular text paragraphs with a larger
font size.
#. Chapter titles are promoted to the top-most heading of the document, that is level 1.
#. Scenes and Section titles, if used, are promoted to level 2 and 3, respectively.
#. Headings in note documents are left as-is.
.. _docs_ui_manuscript_formatting_head_styling:
Title Styling
-------------
The **Manuscript Build Settings** dialog also provides layout options for controlling how headings
are visually presented in the output. These options allow you to add page breaks and centre
headings at specific heading levels.
The layout options are presented in a grid showing the following heading styles:
- **Title** – The novel's main title
- **Partition** – Partition headings (for dividing the novel into major sections)
- **Chapter** – Chapter headings
- **Scene** – Scene headings
For each of these, you can toggle:
- **Centre** – Centre the heading text on the page
- **Page Break** – Insert a page break before the heading
These settings apply to the formatted heading output and affect all document formats that support
page breaks and text alignment.
.. _docs_ui_manuscript_formatting_options:
Formatting Options
==================
The **Formatting** section in the **Manuscript Build Settings** dialog is split into groups, each
accessible from its own entry in the sidebar. The sections below summarise what each group
controls.
**Text Content**
Controls which parts of the text in each selected document are included in the output. These
options do not select documents, that is done in the **Selection** page. They only control
which content elements within each document are rendered. The available switches are:
"Include body text", "Include synopsis", "Include comments", "Include story structure",
"Include manuscript notes", and "Include keywords". A text field for specifying keywords to
ignore is also provided, as well as an option to "Add titles for note root folders".
**Text Format**
Controls the base appearance of rendered text. Set the "Text font" and "Line height", and
toggle options for "Justify text margins", "Justify text on manual line breaks",
"Replace Unicode characters", "Replace tabs with spaces", "Preserve hard line breaks", and
"Apply dialogue highlighting".
**Heading Format**
Controls visual formatting applied to all headings in the output. Toggle "Add colours to
headings", "Bold headings", and "Uppercase headings".
**First Line Indent**
Controls paragraph indentation. Toggle "Enable indent", set the "Indent width", and choose
whether to "Indent first paragraph" (the paragraph immediately following a heading).
**Size & Margins**
Controls font sizes and spacing for each element in the output. Entries cover "Title and
Partition", "Heading 1 and Chapter", "Heading 2 and Scene", "Heading 3 and Section",
"Heading 4", "Text paragraph", and "Scene separator". Each entry has a size field and top and
bottom margin fields. The option "Add empty lines instead of margins" replaces spacing with
blank lines, which is useful for formats that do not support paragraph margins.
**Page Layout**
Controls paper settings for formats that support page layout, such as Open Document and PDF.
Set the "Unit" (centimetres, millimetres or inches), "Page size", and "Page margins"
(top, bottom, left, and right).
**Document Style**
Controls document-level settings for office type documents. Set the "Page header" format, the
"Page counter offset", and optionally override the document language with "Override document
language".
**HTML Options**
Controls settings specific to HTML output. Toggle "Add CSS styles" to include inline
stylesheet rules, and "Preserve tab characters" to keep tabs rather than converting them to
spaces.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 94 KiB

After

Width:  |  Height:  |  Size: 107 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 121 KiB

After

Width:  |  Height:  |  Size: 147 KiB

View File

@@ -18,7 +18,7 @@ time you need them. For reference, a list of all shortcuts can be found in the
:ref:`docs_features_shortcuts` section.
On the left side of the main window you will find a sidebar. This bar has buttons for the standard
views you can switch between, a quick link to the **Build Manuscript** tool, and a set of
views you can switch between, a quick link to the **Manuscript Build** tool, and a set of
project-related tools and quick access to settings at the bottom.
@@ -186,17 +186,11 @@ See :ref:`docs_features_shortcuts` for more details.
Colour Themes
=============
By default, novelWriter uses a light colour theme. You can also choose between a standard dark
theme that have neutral colours, or a series of other included themes, from **Preferences**.
By default, novelWriter should pick a dark or light theme based on the colour mode of your
operating system. You can select which colour mode to use from the application sidebar.
The default light and dark theme can be changed from **Preferences**. There are a number of themes
to choose from. There are also some high contrast themes available.
If you wish, you *can* create your own colour themes, and even have them added to the application.
See :ref:`docs_more_custom_theme` for more details.
Switching the GUI colour theme does not affect the colours of the editor and viewer. They have
separate themes selectable from the "Document colour theme" setting in **Preferences**. They are
separated because there are a lot more options to choose from for the editor and viewer.
.. note::
If you switch between light and dark mode on the GUI, you should also switch editor theme to
match, otherwise icons may be hard to see in the editor and viewer.

View File

@@ -26,12 +26,12 @@ The Manuscript Build Tool
=========================
.. figure:: images/fig_manuscript_build.png
:width: 80%
:width: 90%
The **Manuscript Build** tool main window.
The main window of the **Manuscript Build** tool contains a list of all the builds you have
defined, a selection of settings, and a few buttons to generate preview, open the print dialog, or
defined, a selection of settings, and a few buttons to generate a preview, open the print dialog, or
run the build to create a manuscript document.
@@ -39,7 +39,7 @@ Outline and Word Counts
-----------------------
.. figure:: images/fig_manuscript_build_outline.png
:width: 80%
:width: 90%
The **Manuscript Build** tool main window with the **Outline** visible.
@@ -64,9 +64,11 @@ by double-clicking or by selecting it and pressing the edit button in the toolba
.. tip::
You can keep the **Manuscript Build Settings** dialog open while testing the different options,
and just hit the :guilabel:`Apply` button. You can test the result of your settings change by
pressing the :guilabel:`Preview` button in the main **Manuscript Build** window. When you're
happy with the result, you can close the settings.
and just hit the :guilabel:`Apply` button to update the preview in the main **Manuscript Build**
window. When you're happy with the result, you can close the settings.
For detailed information on how to format headings, including how to add chapter numbers, scene
numbers, and other dynamic content, see :ref:`docs_ui_manuscript_formatting`.
.. _docs_ui_manuscript_selection:
@@ -79,126 +81,100 @@ Document Selection
The **Selections** page of the **Manuscript Build Settings** dialog.
The **Selections** page of the **Manuscript Build Settings** dialog allows you to fine tune which
documents are included in the build. The included documents are indicated by an icon in the last
column. On the right you have some filter options for selecting content of a specific type, and a
set of switches for which root folders to include.
The **Selections** page allows you to fine tune which documents are included in the build. The
included documents are indicated by an icon in the last column. The interface is split into two
parts: a project tree on the left showing all documents, and filter options on the right.
You can override the result of these filters by marking one or more documents and selecting to
explicitly include or exclude them by using the buttons below the tree view. The last button can be
used to reset the override and return control to the filter settings.
In the figure, the orange icon and the blue icon indicates which documents are included, and the
In the figure, the orange icon and the blue icon indicate which documents are included, and the
red icon indicates that a document is explicitly excluded.
By default, inactive documents are excluded, but you can override this in the filter settings.
See :ref:`docs_usage_project_active` for more details.
.. _docs_ui_manuscript_head:
Root Folder Selection
^^^^^^^^^^^^^^^^^^^^^
Formatting Headings
-------------------
At the bottom of the filter options on the right, you will find a set of switches for each root
folder in your project. These allow you to quickly include or exclude entire root folders from the
build. For example, you can use this to exclude all your notes if you only want the novel content,
or exclude all story content if you want to build an outline of your notes instead.
.. figure:: images/fig_build_settings_headings.png
:width: 80%
The **Headings** page of the **Manuscript Build Settings** dialog.
The **Headings** page of the **Manuscript Build Settings** dialog allows you to set how the
headings in your Novel Documents are formatted. By default, the title is just copied as-is,
indicated by the ``{Title}`` format. You can change this to for instance add chapter numbers and
scene numbers, or insert character names, like shown in the figure above.
Clicking the edit button next to a format will copy the formatting string into the edit box where
it can be modified, and where a syntax highlighter will help indicate which parts are automatically
generated by the build tool. The :guilabel:`Insert` button is a dropdown list of these formats, and
selecting one will insert it at the position of the cursor.
Any text you add that isn't highlighted in colours will remain in your formatted titles.
``{Title}`` will always be replaced by the text in the heading from your documents.
.. csv-table:: Heading Formats
:header: "Code", "Description"
:class: "tight-table"
"``{BR}``", "Insert a line break."
"``{Title}``", "Insert the original title text."
"``{Chapter}``", "Insert a chapter number."
"``{Chapter:Word}``", "Insert a chapter number as a word."
"``{Chapter:URoman}``", "Insert a chapter number as an upper case Roman numeral."
"``{Chapter:LRoman}``", "Insert a chapter number as an lower case Roman numeral."
"``{Scene}``", "Insert a scene number within the current chapter."
"``{Scene:Abs}``", "Insert a scene number unique to the whole manuscript."
"``{Char:POV}``", "Insert the point-of-view character's :ref:`display name <docs_usage_tags_refs_tags>`."
"``{Char:Focus}``", "Insert the focus character's :ref:`display name <docs_usage_tags_refs_tags>`."
You can preview the result of these format strings by clicking :guilabel:`Apply`, and then clicking
:guilabel:`Preview` in the **Manuscript Build** tool main window.
When a root folder switch is off, all documents within that folder are excluded regardless of the
other filter settings.
.. _docs_ui_manuscript_head_numbers:
.. _docs_ui_manuscript_content:
Automatic Numbering
^^^^^^^^^^^^^^^^^^^
Content Filtering
-----------------
The headings formatter allows you to automatically insert chapter and scene numbers into your
headings. The automatic chapter number counter will skip all chapter headings marked as unnumbered
using the heading format described in :ref:`docs_usage_headings_levels`.
The options in **Document Selection** and **Root Folder Selection** decide which whole documents
are part of the build.
Scene numbers are mostly intended for use in a draft manuscript. You can either insert absolute
scene numbers that counts every scene in the novel, or you can insert per-chapter scene numbers
that reset to 1 for each new chapter.
The content filtering options in the **Formatting** page are different: they only control which
parts of the selected documents are included in the output.
:bdg-info:`Example`
This will create a chapter title on the format "Chapter 1: Title Text":
.. code-block:: md
Chapter {Chapter}: {Title}
This will create a scene title on the format "Scene 1.1: Title Text":
.. code-block:: md
Scene {Chapter}.{Scene}: {Title}
For further content filtering options, see :ref:`docs_ui_manuscript_formatting_options`.
Scene Separators
^^^^^^^^^^^^^^^^
.. _docs_ui_manuscript_build_manage:
If you don't want any titles for your scenes (or for your sections if you have them), you can leave
the formatting boxes empty. If so, an empty paragraph will be inserted between the scenes or
sections instead, resulting in a gap in the text. You can also enable the :guilabel:`Hide` setting,
which will ignore them completely. That is, there won't even be an extra gap inserted.
Build Management
----------------
Alternatively, if you want a separator text between them, like the common ``* * *``, you can enter
the desired separator text as the format. If the format is any piece of static text, it will always
be treated as a separator. A static separator is only inserted between scenes, as opposed to a
formatted heading which is also inserted before the first scene of a chapter.
The main **Manuscript Build** tool window provides several controls for managing your build
definitions:
**Create a New Build**
Press the :guilabel:`Add` button (or plus icon) in the toolbar to create a new build definition.
A new build will be created with default settings that you can then customise.
**Edit a Build**
Double-click on a build in the list, or select it and press the :guilabel:`Edit` button to open
the **Manuscript Build Settings** dialog.
**Duplicate a Build**
Select a build and press the :guilabel:`Duplicate` button (or copy icon) to create a copy of it.
This is useful for creating variations of a build without starting from scratch. The duplicated
build will have "2" appended to its name.
**Delete a Build**
Select a build and press the :guilabel:`Delete` button (or minus icon) to remove it. This action
cannot be undone, so make sure you have saved any settings you want to keep.
**Reorder Builds**
You can drag and drop builds in the list to change their order. The order is saved automatically
when you close the tool.
.. _docs_ui_manuscript_head_hard_soft:
.. _docs_ui_manuscript_stats:
Hard and Soft Scenes
^^^^^^^^^^^^^^^^^^^^
If you wish to distinguish between so-called soft and hard scene breaks, you can use the
alternative scene heading format in your text. You can then give these headings a different
formatting in the **Headings** settings.
See :ref:`docs_usage_headings_levels` for more info on how to format alternative scene headings in
your text.
Output Settings
Statistics View
---------------
The **Formatting** sections of the **Manuscript Build Settings** dialog control a number of other
settings for the output. This includes formatting, but also what content is included. You can for
instance select to include comments, synopsis. tags and reference, and even exclude the body text
itself.
Below the preview panel, there is a collapsible statistics widget showing word and character counts
for the current build. Press the expand button (arrow icon) to toggle between a minimal and detailed
view.
The **Minimal View** shows:
- Total word count
- Total character count
The **Detailed View** shows:
- Total words, words in titles, words in text
- Total characters, characters in titles, characters in text
- Total word characters (letters and numbers only), broken down by section
These statistics are calculated from the text you have included in the document after all
formatting has been applied, making them more accurate than the counts available in the project
tree. For a detailed explanation of how text is counted, see :ref:`docs_more_counting`.
.. _docs_ui_manuscript_build:
@@ -209,9 +185,9 @@ Building Manuscript Documents
.. figure:: images/fig_build_build.png
:width: 80%
The **Manuscript Build** dialog used for writing the actual manuscript documents.
The **Build Manuscript** dialog used for writing the actual manuscript documents.
When you press the :guilabel:`Build` button on the **Build Manuscript** tool main window, a special
When you press the :guilabel:`Build` button on the **Manuscript Build** tool main window, a special
file dialog opens up. This is where you pick your desired output format and where to write the
file.
@@ -247,6 +223,10 @@ novelWriter HTML
is suitable for further processing by document conversion tools like Pandoc_, for importing in
word processors, or for printing from browser.
Electronic Publication E-book (EPub)
The EPub format writes a single ``.epub`` file with minimal style formatting. You can include
your notes in this format, but each notes root folder will be packaged as a chapter.
Standard/Extended Markdown
The Markdown format comes in both Standard and Extended flavour. The *only* difference in terms
of novelWriter functionality is the support for strike through text, which is not supported by
@@ -274,7 +254,7 @@ order they appear in the project tree. Each document is then split up into a lis
entry per paragraph it contains.
These files are mainly intended for scripted post-processing for those who want that option. A JSON
file can be imported directly into a Python dict object or a PHP array, to mentions a few options.
file can be imported directly into a Python dict object or a PHP array, to name a few options.
.. _docs_ui_manuscript_print:

View File

@@ -114,23 +114,6 @@ You can now test the translation in novelWriter. The Preferences dialog should l
language, so go ahead and select it.
### Missing QtBase Translations
The default Qt dialogs also have translations, for instance for standard buttons like "Yes", "No",
"Ok", "Cancel", etc. Generally, these translation files are installed with the Qt libraries on your
system, and novelWriter will collect those translations from there. However, these translations are
missing for many languages.
As a starting point, there is no need to translate any entries in the `.ts` files that are under
elements starting with the letter "Q", like "QPlatformTheme", "QWizard", etc. If these turn up in
English in novelWriter after activating a translation, it means they are probably missing in the Qt
library, and you may also need to translate these.
These additional translation entries are generated from a file named `i18n/qtbase.py`, which is not
a file that novelWriter uses. It is there only to generate these additional entries for the `.ts`
files.
## Project Localisation
Projects can have a different language setting than the GUI itself. The files with format

File diff suppressed because it is too large Load Diff

5570
i18n/nw_ca_ES.ts Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,49 +0,0 @@
"""
Qt Base Translation File
========================
This file causes Qt Linguist to generate translation entries for the Qt
elements that need translation in novelWriter for those languages who do
not yet have a qtbase_xx.qm file shipped with Qt.
If a qtbase_xx.qm file already exists, do not add a translation for the
entries generated from this file.
"""
from PyQt6.QtCore import QT_TRANSLATE_NOOP
# QDialogButtonBox
# ================
QT_TRANSLATE_NOOP("QDialogButtonBox", "OK")
# QGnomeTheme
# ===========
QT_TRANSLATE_NOOP("QGnomeTheme", "&OK")
QT_TRANSLATE_NOOP("QGnomeTheme", "&Save")
QT_TRANSLATE_NOOP("QGnomeTheme", "&Cancel")
QT_TRANSLATE_NOOP("QGnomeTheme", "&Close")
QT_TRANSLATE_NOOP("QGnomeTheme", "Close without Saving")
# QPlatformTheme
# ==============
QT_TRANSLATE_NOOP("QPlatformTheme", "OK")
QT_TRANSLATE_NOOP("QPlatformTheme", "Save")
QT_TRANSLATE_NOOP("QPlatformTheme", "Save All")
QT_TRANSLATE_NOOP("QPlatformTheme", "Open")
QT_TRANSLATE_NOOP("QPlatformTheme", "&Yes")
QT_TRANSLATE_NOOP("QPlatformTheme", "Yes to &All")
QT_TRANSLATE_NOOP("QPlatformTheme", "&No")
QT_TRANSLATE_NOOP("QPlatformTheme", "N&o to All")
QT_TRANSLATE_NOOP("QPlatformTheme", "Abort")
QT_TRANSLATE_NOOP("QPlatformTheme", "Retry")
QT_TRANSLATE_NOOP("QPlatformTheme", "Ignore")
QT_TRANSLATE_NOOP("QPlatformTheme", "Close")
QT_TRANSLATE_NOOP("QPlatformTheme", "Cancel")
QT_TRANSLATE_NOOP("QPlatformTheme", "Discard")
QT_TRANSLATE_NOOP("QPlatformTheme", "Help")
QT_TRANSLATE_NOOP("QPlatformTheme", "Apply")
QT_TRANSLATE_NOOP("QPlatformTheme", "Reset")
QT_TRANSLATE_NOOP("QPlatformTheme", "Restore Defaults")

View File

@@ -1,21 +1,15 @@
#!/usr/bin/env python3
"""
novelWriter – Start Script
novelWriter - Start Script
==========================
"""
""" # noqa
import os
import sys
try:
import PyQt6.QtCore
import PyQt6.QtGui
import PyQt6.QtWidgets # noqa: F401
except Exception:
print("ERROR: Failed to load dependency PyQt6")
sys.exit(1)
os.curdir = os.path.abspath(os.path.dirname(__file__))
if __name__ == "__main__":
import novelwriter
novelwriter.main(sys.argv[1:])

View File

@@ -1,10 +1,7 @@
"""
novelWriter – Init File
novelWriter - Init File
=======================
File History:
Created: 2018-09-22 [0.0.1] main
This file is a part of novelWriter
Copyright (C) 2018 Veronica Berglyd Olsen and novelWriter contributors
@@ -20,9 +17,11 @@ General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
"""
""" # noqa
from __future__ import annotations
import gc
import getopt
import logging
import os
@@ -43,17 +42,19 @@ if TYPE_CHECKING:
# Package Meta
# ============
# fmt: off
__package__ = "novelwriter"
__copyright__ = "Copyright 2018-2025 Veronica Berglyd Olsen"
__copyright__ = "Copyright 2018-2026 Veronica Berglyd Olsen"
__license__ = "GPLv3"
__author__ = "Veronica Berglyd Olsen"
__maintainer__ = "Veronica Berglyd Olsen"
__email__ = "code@vkbo.net"
__version__ = "2.7"
__hexversion__ = "0x020700f0"
__date__ = "2025-06-01"
__version__ = "26.2"
__hexversion__ = "0x260200f0"
__date__ = "2026-09-05"
__status__ = "Stable"
__domain__ = "novelwriter.io"
# fmt: on
logger = logging.getLogger(__name__)
@@ -67,12 +68,12 @@ CONFIG = Config()
SHARED = SharedData()
# ANSI Colours
RED = "\033[91m"
GREEN = "\033[92m"
RED = "\033[91m"
GREEN = "\033[92m"
YELLOW = "\033[93m"
BLUE = "\033[94m"
WHITE = "\033[97m"
END = "\033[0m"
BLUE = "\033[94m"
WHITE = "\033[97m"
END = "\033[0m"
# Log Format Components
TIME = "[{asctime:}]"
@@ -84,7 +85,7 @@ TEXT = "{message:}"
# Read Environment
FORCE_COLOR = bool(os.environ.get("FORCE_COLOR"))
NO_COLOR = bool(os.environ.get("NO_COLOR"))
NO_COLOR = bool(os.environ.get("NO_COLOR"))
def main(sysArgs: list | None = None) -> GuiMain | None:
@@ -94,17 +95,7 @@ def main(sysArgs: list | None = None) -> GuiMain | None:
# Valid Input Options
shortOpt = "hvidc"
longOpt = [
"help",
"version",
"info",
"debug",
"color",
"style=",
"config=",
"data=",
"meminfo"
]
longOpt = ["help", "version", "info", "debug", "color", "config=", "data=", "meminfo"]
helpMsg = (
f"novelWriter {__version__} ({__date__})\n"
@@ -130,19 +121,17 @@ def main(sysArgs: list | None = None) -> GuiMain | None:
" -d, --debug Print debug output. Includes --info.\n"
" -c, --color Add ANSI colors to log output.\n"
" --meminfo Show memory usage information in the status bar.\n"
" --style= Sets Qt style flag. Defaults to 'Fusion'.\n"
" --config= Alternative config file.\n"
" --data= Alternative user data path.\n"
)
# Defaults
logLevel = logging.WARN
logLevel = logging.WARNING
fmtColor = FORCE_COLOR
fmtLong = False
fmtLong = False
confPath = None
dataPath = None
qtStyle = "Fusion"
cmdOpen = None
cmdOpen = None
# Parse Options
try:
@@ -172,20 +161,20 @@ def main(sysArgs: list | None = None) -> GuiMain | None:
fmtColor = not NO_COLOR
elif inOpt == "--meminfo":
CONFIG.memInfo = True
elif inOpt == "--style":
qtStyle = inArg
elif inOpt == "--config":
confPath = inArg
elif inOpt == "--data":
dataPath = inArg
else: # pragma: no cover
pass
if fmtColor:
# This will overwrite the default level names, and also ensure that
# they can be converted back to integer levels
logging.addLevelName(logging.DEBUG, f"{BLUE}DEBUG{END}")
logging.addLevelName(logging.INFO, f"{GREEN}INFO{END}")
logging.addLevelName(logging.WARNING, f"{YELLOW}WARNING{END}")
logging.addLevelName(logging.ERROR, f"{RED}ERROR{END}")
logging.addLevelName(logging.DEBUG, f"{BLUE}DEBUG{END}")
logging.addLevelName(logging.INFO, f"{GREEN}INFO{END}")
logging.addLevelName(logging.WARNING, f"{YELLOW}WARNING{END}")
logging.addLevelName(logging.ERROR, f"{RED}ERROR{END}")
logging.addLevelName(logging.CRITICAL, f"{RED}CRITICAL{END}")
logTxt = f"{LVLC} {TEXT}" if fmtColor else f"{LVLP} {TEXT}"
@@ -203,37 +192,34 @@ def main(sysArgs: list | None = None) -> GuiMain | None:
logger.info("Starting novelWriter %s (%s) %s", __version__, __hexversion__, __date__)
# Disable GC, running in GuiMain instead (#2927)
gc.disable()
# Check Packages and Versions
errorData = []
errorCode = 0
if sys.hexversion < 0x030a00f0:
errorData.append(
f"At least Python 3.10 is required, found {CONFIG.verPyString}"
)
if sys.hexversion < 0x030B00F0:
errorData.append(f"At least Python 3.11 is required, found {CONFIG.verPyString}")
errorCode |= 0x04
if CONFIG.verQtValue < 0x060400:
errorData.append(
f"At least Qt6 version 6.4 is required, found {CONFIG.verQtString}"
)
errorData.append(f"At least Qt6 version 6.4 is required, found {CONFIG.verQtString}")
errorCode |= 0x08
if CONFIG.verPyQtValue < 0x060400:
errorData.append(
f"At least PyQt6 version 6.4 is required, found {CONFIG.verPyQtString}"
)
errorData.append(f"At least PyQt6 version 6.4 is required, found {CONFIG.verPyQtString}")
errorCode |= 0x10
if errorData:
errApp = QApplication([])
errDlg = QErrorMessage()
errDlg.resize(500, 300)
errDlg.showMessage((
"<h3>A critical error was encountered</h3>"
"<p>novelWriter cannot start due to the following issues:<p>"
"<p>&nbsp;-&nbsp;{0}</p>"
"<p>Shutting down ...</p>"
).format(
"<br>&nbsp;-&nbsp;".join(errorData)
))
errDlg.showMessage(
(
"<h3>A critical error was encountered</h3>"
"<p>novelWriter cannot start due to the following issues:<p>"
"<p>&nbsp;-&nbsp;{0}</p>"
"<p>Shutting down ...</p>"
).format("<br>&nbsp;-&nbsp;".join(errorData))
)
for errLine in errorData:
logger.critical(errLine)
errApp.exec()
@@ -242,9 +228,12 @@ def main(sysArgs: list | None = None) -> GuiMain | None:
# Finish initialising config
CONFIG.initConfig(confPath, dataPath)
if sys.platform == "darwin":
if sys.platform == "linux":
QApplication.setDesktopFileName(CONFIG.appHandle)
elif sys.platform == "darwin":
try:
from Foundation import NSBundle # type: ignore
bundle = NSBundle.mainBundle()
info = bundle.localizedInfoDictionary() or bundle.infoDictionary()
info["CFBundleName"] = "novelWriter"
@@ -253,8 +242,8 @@ def main(sysArgs: list | None = None) -> GuiMain | None:
elif sys.platform == "win32":
try:
import ctypes
appID = f"io.novelwriter.{__version__}"
ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID(appID) # type: ignore
ctypes.windll.shell32.SetCurrentProcessExplicitAppUserModelID("io.novelwriter.app") # type: ignore
except Exception:
pass # Quietly ignore error
@@ -263,7 +252,7 @@ def main(sysArgs: list | None = None) -> GuiMain | None:
from novelwriter.guimain import GuiMain
# Create App
app = _createApp(qtStyle)
app = _createApp()
# Connect the exception handler before making the main GUI
sys.excepthook = exceptionHandler
@@ -289,17 +278,20 @@ def main(sysArgs: list | None = None) -> GuiMain | None:
nwGUI.postLaunchTasks(cmdOpen)
sys.exit(app.exec())
code = app.exec()
logger.info("novelWriter exited with code %d", code)
sys.exit(code)
def _createApp(style: str) -> QApplication:
def _createApp() -> QApplication:
"""Create the app. This is done in a function to make it easier to
block app creation during testing.
"""
app = QApplication([CONFIG.appName, f"-style={style}"])
app = QApplication([CONFIG.appName])
app.setStyle("Fusion")
app.setApplicationName(CONFIG.appName)
app.setApplicationVersion(__version__)
app.setOrganizationDomain(__domain__)
app.setOrganizationName(__domain__)
app.setDesktopFileName(CONFIG.appName)
return app

View File

@@ -0,0 +1,121 @@
{
"Synopsis": "Sinopsi",
"Short Description": "Descripció breu",
"Footnotes": "Notes de peu de pàgina",
"Comment": "Comentari",
"Story Structure": "Estructura de la història",
"Note": "Anotació",
"Notes": "Anotacions",
"Tag": "Etiqueta",
"Point of View": "Punt de vista",
"Focus": "Focus",
"Characters": "Personatges",
"Plot": "Trama",
"Timeline": "Cronologia",
"Locations": "Llocs",
"Objects": "Objectes",
"Entities": "Entitats",
"Custom": "Personalitzat",
"Mentions": "Mencions",
"New Page": "Pàgina nova",
"0": "Zero",
"1": "U",
"2": "Dos",
"3": "Tres",
"4": "Quatre",
"5": "Cinc",
"6": "Sis",
"7": "Set",
"8": "Vuit",
"9": "Nou",
"10": "Deu",
"11": "Onze",
"12": "Dotze",
"13": "Tretze",
"14": "Catorze",
"15": "Quinze",
"16": "Setze",
"17": "Disset",
"18": "Divuit",
"19": "Dinou",
"20": "Vint",
"21": "Vint-i-U",
"22": "Vint-i-Dos",
"23": "Vint-i-Tres",
"24": "Vint-i-Quatre",
"25": "Vint-i-Cinc",
"26": "Vint-i-Sis",
"27": "Vint-i-Set",
"28": "Vint-i-Vuit",
"29": "Vint-i-Nou",
"30": "Trenta",
"31": "Trenta-U",
"32": "Trenta-Dos",
"33": "Trenta-Tres",
"34": "Trenta-Quatre",
"35": "Trenta-Cinc",
"36": "Trenta-Sis",
"37": "Trenta-Set",
"38": "Trenta-Vuit",
"39": "Trenta-Nou",
"40": "Quaranta",
"41": "Quaranta-U",
"42": "Quaranta-Dos",
"43": "Quaranta-Tres",
"44": "Quaranta-Quatre",
"45": "Quaranta-Cinc",
"46": "Quaranta-Sis",
"47": "Quaranta-Set",
"48": "Quaranta-Vuit",
"49": "Quaranta-Nou",
"50": "Cinquanta",
"51": "Cinquanta-U",
"52": "Cinquanta-Dos",
"53": "Cinquanta-Tres",
"54": "Cinquanta-Quatre",
"55": "Cinquanta-Cinc",
"56": "Cinquanta-Sis",
"57": "Cinquanta-Set",
"58": "Cinquanta-Vuit",
"59": "Cinquanta-Nou",
"60": "Seixanta",
"61": "Seixanta-U",
"62": "Seixanta-Dos",
"63": "Seixanta-Tres",
"64": "Seixanta-Quatre",
"65": "Seixanta-Cinc",
"66": "Seixanta-Sis",
"67": "Seixanta-Set",
"68": "Seixanta-Vuit",
"69": "Seixanta-Nou",
"70": "Setanta",
"71": "Setanta-U",
"72": "Setanta-Dos",
"73": "Setanta-Tres",
"74": "Setanta-Quatre",
"75": "Setanta-Cinc",
"76": "Setanta-Sis",
"77": "Setanta-Set",
"78": "Setanta-Vuit",
"79": "Setanta-Nou",
"80": "Vuitanta",
"81": "Vuitanta-U",
"82": "Vuitanta-Dos",
"83": "Vuitanta-Tres",
"84": "Vuitanta-Quatre",
"85": "Vuitanta-Cinc",
"86": "Vuitanta-Sis",
"87": "Vuitanta-Set",
"88": "Vuitanta-Vuit",
"89": "Vuitanta-Nou",
"90": "Noranta",
"91": "Noranta-U",
"92": "Noranta-Dos",
"93": "Noranta-Tres",
"94": "Noranta-Quatre",
"95": "Noranta-Cinc",
"96": "Noranta-Sis",
"97": "Noranta-Set",
"98": "Noranta-Vuit",
"99": "Noranta-Nou"
}

View File

@@ -3,6 +3,8 @@
"Short Description": "Krátký popis",
"Footnotes": "Poznámky pod čarou",
"Comment": "Komentář",
"Story Structure": "Struktura příběhu",
"Note": "Poznámka",
"Notes": "Poznámka",
"Tag": "Štítek",
"Point of View": "Úhel pohledu",
@@ -14,6 +16,7 @@
"Objects": "Objekty",
"Entities": "Subjekty",
"Custom": "Vlastní",
"Mentions": "Zmínky",
"New Page": "Nová stránka",
"0": "Nula",
"1": "Jedna",

View File

@@ -2,8 +2,8 @@
"Synopsis": "Zusammenfassung",
"Short Description": "Kurzbeschreibung",
"Footnotes": "Fußnoten",
"Comment": "Kommentar",
"Story Structure": "Struktur",
"Comment": "Anmerkung",
"Story Structure": "Erzählstruktur",
"Note": "Notiz",
"Notes": "Notizen",
"Tag": "Schlagwort",
@@ -16,6 +16,7 @@
"Objects": "Objekte",
"Entities": "Organisationen",
"Custom": "Benutzerdefiniert",
"Mentions": "Erwähnt",
"New Page": "Neue Seite",
"0": "Null",
"1": "Eins",

View File

@@ -16,7 +16,7 @@
"Objects": "Objects",
"Entities": "Entities",
"Custom": "Custom",
"New Page": "New Page",
"Mentions": "Mentions",
"0": "Zero",
"1": "One",
"2": "Two",

View File

@@ -16,6 +16,7 @@
"Objects": "Objects",
"Entities": "Entities",
"Custom": "Custom",
"Mentions": "Mentions",
"New Page": "New Page",
"0": "Zero",
"1": "One",

View File

@@ -3,6 +3,8 @@
"Short Description": "Breve Descripción",
"Footnotes": "Notas al pie",
"Comment": "Comentario",
"Story Structure": "Estructura Narrativa",
"Note": "Nota",
"Notes": "Notas",
"Tag": "Etiqueta",
"Point of View": "Punto de Vista",
@@ -13,7 +15,8 @@
"Locations": "Lugares",
"Objects": "Objetos",
"Entities": "Entidades",
"Custom": "Otros",
"Custom": "Personalizado",
"Mentions": "Menciones",
"New Page": "Nueva Página",
"0": "Cero",
"1": "Uno",
@@ -46,15 +49,15 @@
"28": "Veintiocho",
"29": "Veintinueve",
"30": "Treinta",
"31": "Treinta y ",
"32": "Treinta y ",
"33": "Treinta y ",
"34": "Treinta y ",
"35": "Treinta y ",
"36": "Treinta y ",
"37": "Treinta y ",
"38": "Treinta y ",
"39": "Treinta y ",
"31": "Treinta y uno",
"32": "Treinta y dos",
"33": "Treinta y tres",
"34": "Treinta y cuatro",
"35": "Treinta y cinco",
"36": "Treinta y seis",
"37": "Treinta y siete",
"38": "Treinta y ocho",
"39": "Treinta y nueve",
"40": "Cuarenta",
"41": "Cuarenta y uno",
"42": "Cuarenta y dos",

View File

@@ -3,6 +3,8 @@
"Short Description": "Description sommaire",
"Footnotes": "Notes de bas de page",
"Comment": "Commentaire",
"Story Structure": "Structure de l'histoire",
"Note": "Note",
"Notes": "Notes",
"Tag": "Étiquette",
"Point of View": "Point de vue",

View File

@@ -16,6 +16,7 @@
"Objects": "Oggetti",
"Entities": "Enti",
"Custom": "Personalizzato",
"Mentions": "Menzioni",
"New Page": "Nuova pagina",
"0": "Zero",
"1": "Uno",

View File

@@ -16,6 +16,7 @@
"Objects": "オブジェクト",
"Entities": "エンティティ",
"Custom": "カスタム",
"Mentions": "メンション",
"New Page": "新規ページ",
"0": "零",
"1": "一",

View File

@@ -16,6 +16,7 @@
"Objects": "Objekter",
"Entities": "Enheter",
"Custom": "Annet",
"Mentions": "Nevnt",
"New Page": "Ny side",
"0": "null",
"1": "én",

View File

@@ -1,11 +1,13 @@
{
"Synopsis": "Synopsis",
"Short Description": "Korte beschrijving",
"Short Description": "Korte Omschrijving",
"Footnotes": "Voetnoten",
"Comment": "Opmerking",
"Story Structure": "Verhaalstructuur",
"Note": "Notitie",
"Notes": "Notities",
"Tag": "Label",
"Point of View": "Perspectief",
"Point of View": "Standpunt",
"Focus": "Focus",
"Characters": "Personages",
"Plot": "Plot",
@@ -14,7 +16,8 @@
"Objects": "Objecten",
"Entities": "Entiteiten",
"Custom": "Aangepast",
"New Page": "Nieuwe pagina",
"Mentions": "Vermeldingen",
"New Page": "Nieuwe Pagina",
"0": "nul",
"1": "één",
"2": "twee",

View File

@@ -16,6 +16,7 @@
"Objects": "Objekt",
"Entities": "Eining",
"Custom": "Anna",
"Mentions": "Nevnt",
"New Page": "Ny side",
"0": "null",
"1": "ein",

View File

@@ -16,6 +16,7 @@
"Objects": "Obiekty",
"Entities": "Podmioty",
"Custom": "Różne",
"Mentions": "Wzmianki",
"New Page": "Nowa strona",
"0": "zero",
"1": "pierwszy",

View File

@@ -16,6 +16,7 @@
"Objects": "Objetos",
"Entities": "Entidades",
"Custom": "Outros",
"Mentions": "Menções",
"New Page": "Nova página",
"0": "Zero",
"1": "Um",

View File

@@ -3,6 +3,8 @@
"Short Description": "Краткое описание",
"Footnotes": "Примечания",
"Comment": "Комментарий",
"Story Structure": "Структура повествования",
"Note": "Заметка",
"Notes": "Заметки",
"Tag": "Тэг",
"Point of View": "Точка зрения",
@@ -14,6 +16,7 @@
"Objects": "Объекты",
"Entities": "Сущности",
"Custom": "Другое",
"Mentions": "Упоминания",
"New Page": "Новая страница",
"0": "Ноль",
"1": "Один",

View File

@@ -16,6 +16,7 @@
"Objects": "物品",
"Entities": "条目",
"Custom": "自定义",
"Mentions": "提及",
"New Page": "新建页面",
"0": "零",
"1": "一",

View File

@@ -1,109 +0,0 @@
# This file is automatically generated. Do not edit.
# Meta
meta:name = Font Awesome 6
meta:author = Fonticons Inc
meta:license = CC BY 4.0
# Icons
icon:alert_error = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="#000000" height="128" width="128"><path d="M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zm0-384c13.3 0 24 10.7 24 24l0 112c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-112c0-13.3 10.7-24 24-24zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z" /></svg>
icon:alert_info = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="#000000" height="128" width="128"><path d="M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM216 336l24 0 0-64-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 88 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm40-208a32 32 0 1 1 0 64 32 32 0 1 1 0-64z" /></svg>
icon:alert_question = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="#000000" height="128" width="128"><path d="M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512zM169.8 165.3c7.9-22.3 29.1-37.3 52.8-37.3l58.3 0c34.9 0 63.1 28.3 63.1 63.1c0 22.6-12.1 43.5-31.7 54.8L280 264.4c-.2 13-10.9 23.6-24 23.6c-13.3 0-24-10.7-24-24l0-13.5c0-8.6 4.6-16.5 12.1-20.8l44.3-25.4c4.7-2.7 7.6-7.7 7.6-13.1c0-8.4-6.8-15.1-15.1-15.1l-58.3 0c-3.4 0-6.4 2.1-7.5 5.3l-.4 1.2c-4.4 12.5-18.2 19-30.6 14.6s-19-18.2-14.6-30.6l.4-1.2zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z" /></svg>
icon:alert_warn = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="#000000" height="128" width="128"><path d="M256 32c14.2 0 27.3 7.5 34.5 19.8l216 368c7.3 12.4 7.3 27.7 .2 40.1S486.3 480 472 480L40 480c-14.3 0-27.6-7.7-34.7-20.1s-7-27.8 .2-40.1l216-368C228.7 39.5 241.8 32 256 32zm0 128c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zm32 224a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z" /></svg>
icon:cls_archive = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="#000000" height="128" width="128"><path d="M32 32l448 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L32 128C14.3 128 0 113.7 0 96L0 64C0 46.3 14.3 32 32 32zm0 128l448 0 0 256c0 35.3-28.7 64-64 64L96 480c-35.3 0-64-28.7-64-64l0-256zm128 80c0 8.8 7.2 16 16 16l160 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-160 0c-8.8 0-16 7.2-16 16z" /></svg>
icon:cls_character = <svg xmlns="http://www.w3.org/2000/svg" viewBox="64 0 512 512" fill="#000000" height="128" width="128"><path d="M96 128a128 128 0 1 1 256 0A128 128 0 1 1 96 128zM0 482.3C0 383.8 79.8 304 178.3 304l91.4 0C368.2 304 448 383.8 448 482.3c0 16.4-13.3 29.7-29.7 29.7L29.7 512C13.3 512 0 498.7 0 482.3zM609.3 512l-137.8 0c5.4-9.4 8.6-20.3 8.6-32l0-8c0-60.7-27.1-115.2-69.8-151.8c2.4-.1 4.7-.2 7.1-.2l61.4 0C567.8 320 640 392.2 640 481.3c0 17-13.8 30.7-30.7 30.7zM432 256c-31 0-59-12.6-79.3-32.9C372.4 196.5 384 163.6 384 128c0-26.8-6.6-52.1-18.3-74.3C384.3 40.1 407.2 32 432 32c61.9 0 112 50.1 112 112s-50.1 112-112 112z" /></svg>
icon:cls_custom = <svg xmlns="http://www.w3.org/2000/svg" viewBox="-32 0 512 512" fill="#000000" height="128" width="128"><path d="M0 80L0 229.5c0 17 6.7 33.3 18.7 45.3l176 176c25 25 65.5 25 90.5 0L418.7 317.3c25-25 25-65.5 0-90.5l-176-176c-12-12-28.3-18.7-45.3-18.7L48 32C21.5 32 0 53.5 0 80zm112 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z" /></svg>
icon:cls_entity = <svg xmlns="http://www.w3.org/2000/svg" viewBox="-64 0 512 512" fill="#000000" height="128" width="128"><path d="M48 0C21.5 0 0 21.5 0 48L0 464c0 26.5 21.5 48 48 48l96 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 96 0c26.5 0 48-21.5 48-48l0-416c0-26.5-21.5-48-48-48L48 0zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm112-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM80 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80 16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16z" /></svg>
icon:cls_none = <svg xmlns="http://www.w3.org/2000/svg" viewBox="-64 0 512 512" fill="#000000" height="128" width="128"><path d="M64 390.3L153.5 256 64 121.7l0 268.6zM102.5 448l179.1 0L192 313.7 102.5 448zm128-192L320 390.3l0-268.6L230.5 256zM281.5 64L102.5 64 192 198.3 281.5 64zM0 48C0 21.5 21.5 0 48 0L336 0c26.5 0 48 21.5 48 48l0 416c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 48z" /></svg>
icon:cls_novel = <svg xmlns="http://www.w3.org/2000/svg" viewBox="-32 0 512 512" fill="#000000" height="128" width="128"><path d="M96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96l288 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-64c17.7 0 32-14.3 32-32l0-320c0-17.7-14.3-32-32-32L384 0 96 0zm0 384l256 0 0 64L96 448c-17.7 0-32-14.3-32-32s14.3-32 32-32zm32-240c0-8.8 7.2-16 16-16l192 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16zm16 48l192 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z" /></svg>
icon:cls_object = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="#000000" height="128" width="128"><path d="M336 352c97.2 0 176-78.8 176-176S433.2 0 336 0S160 78.8 160 176c0 18.7 2.9 36.8 8.3 53.7L7 391c-4.5 4.5-7 10.6-7 17l0 80c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-40 40 0c13.3 0 24-10.7 24-24l0-40 40 0c6.4 0 12.5-2.5 17-7l33.3-33.3c16.9 5.4 35 8.3 53.7 8.3zM376 96a40 40 0 1 1 0 80 40 40 0 1 1 0-80z" /></svg>
icon:cls_plot = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="#000000" height="128" width="128"><path d="M192 104.8c0-9.2-5.8-17.3-13.2-22.8C167.2 73.3 160 61.3 160 48c0-26.5 28.7-48 64-48s64 21.5 64 48c0 13.3-7.2 25.3-18.8 34c-7.4 5.5-13.2 13.6-13.2 22.8c0 12.8 10.4 23.2 23.2 23.2l56.8 0c26.5 0 48 21.5 48 48l0 56.8c0 12.8 10.4 23.2 23.2 23.2c9.2 0 17.3-5.8 22.8-13.2c8.7-11.6 20.7-18.8 34-18.8c26.5 0 48 28.7 48 64s-21.5 64-48 64c-13.3 0-25.3-7.2-34-18.8c-5.5-7.4-13.6-13.2-22.8-13.2c-12.8 0-23.2 10.4-23.2 23.2L384 464c0 26.5-21.5 48-48 48l-56.8 0c-12.8 0-23.2-10.4-23.2-23.2c0-9.2 5.8-17.3 13.2-22.8c11.6-8.7 18.8-20.7 18.8-34c0-26.5-28.7-48-64-48s-64 21.5-64 48c0 13.3 7.2 25.3 18.8 34c7.4 5.5 13.2 13.6 13.2 22.8c0 12.8-10.4 23.2-23.2 23.2L48 512c-26.5 0-48-21.5-48-48L0 343.2C0 330.4 10.4 320 23.2 320c9.2 0 17.3 5.8 22.8 13.2C54.7 344.8 66.7 352 80 352c26.5 0 48-28.7 48-64s-21.5-64-48-64c-13.3 0-25.3 7.2-34 18.8C40.5 250.2 32.4 256 23.2 256C10.4 256 0 245.6 0 232.8L0 176c0-26.5 21.5-48 48-48l120.8 0c12.8 0 23.2-10.4 23.2-23.2z" /></svg>
icon:cls_template = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="#000000" height="128" width="128"><path d="M512 416c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l128 0c20.1 0 39.1 9.5 51.2 25.6l19.2 25.6c6 8.1 15.5 12.8 25.6 12.8l160 0c35.3 0 64 28.7 64 64l0 256zM232 376c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64 64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0 0-64c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 64-64 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l64 0 0 64z" /></svg>
icon:cls_timeline = <svg xmlns="http://www.w3.org/2000/svg" viewBox="-64 0 512 512" fill="#000000" height="128" width="128"><path d="M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l0 11c0 42.4 16.9 83.1 46.9 113.1L146.7 256 78.9 323.9C48.9 353.9 32 394.6 32 437l0 11c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 256 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-11c0-42.4-16.9-83.1-46.9-113.1L237.3 256l67.9-67.9c30-30 46.9-70.7 46.9-113.1l0-11c17.7 0 32-14.3 32-32s-14.3-32-32-32L320 0 64 0 32 0zM96 75l0-11 192 0 0 11c0 25.5-10.1 49.9-28.1 67.9L192 210.7l-67.9-67.9C106.1 124.9 96 100.4 96 75z" /></svg>
icon:cls_trash = <svg xmlns="http://www.w3.org/2000/svg" viewBox="-32 0 512 512" fill="#000000" height="128" width="128"><path d="M135.2 17.7C140.6 6.8 151.7 0 163.8 0L284.2 0c12.1 0 23.2 6.8 28.6 17.7L320 32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l96 0 7.2-14.3zM32 128l384 0 0 320c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-320zm96 64c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16zm96 0c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16s16-7.2 16-16l0-224c0-8.8-7.2-16-16-16z" /></svg>
icon:cls_world = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="#000000" height="128" width="128"><path d="M177.8 63.2l10 17.4c2.8 4.8 4.2 10.3 4.2 15.9l0 41.4c0 3.9 1.6 7.7 4.3 10.4c6.2 6.2 16.5 5.7 22-1.2l13.6-17c4.7-5.9 12.9-7.7 19.6-4.3l15.2 7.6c3.4 1.7 7.2 2.6 11 2.6c6.5 0 12.8-2.6 17.4-7.2l3.9-3.9c2.9-2.9 7.3-3.6 11-1.8l29.2 14.6c7.8 3.9 12.6 11.8 12.6 20.5c0 10.5-7.1 19.6-17.3 22.2l-35.4 8.8c-7.4 1.8-15.1 1.5-22.4-.9l-32-10.7c-3.3-1.1-6.7-1.7-10.2-1.7c-7 0-13.8 2.3-19.4 6.5L176 212c-10.1 7.6-16 19.4-16 32l0 28c0 26.5 21.5 48 48 48l32 0c8.8 0 16 7.2 16 16l0 48c0 17.7 14.3 32 32 32c10.1 0 19.6-4.7 25.6-12.8l25.6-34.1c8.3-11.1 12.8-24.6 12.8-38.4l0-12.1c0-3.9 2.6-7.3 6.4-8.2l5.3-1.3c11.9-3 20.3-13.7 20.3-26c0-7.1-2.8-13.9-7.8-18.9l-33.5-33.5c-3.7-3.7-3.7-9.7 0-13.4c5.7-5.7 14.1-7.7 21.8-5.1l14.1 4.7c12.3 4.1 25.7-1.5 31.5-13c3.5-7 11.2-10.8 18.9-9.2l27.4 5.5C432 112.4 351.5 48 256 48c-27.7 0-54 5.4-78.2 15.2zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z" /></svg>
icon:prj_folder = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="#000000" height="128" width="128"><path d="M64 480H448c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H288c-10.1 0-19.6-4.7-25.6-12.8L243.2 57.6C231.1 41.5 212.1 32 192 32H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64z" /></svg>
icon:prj_document = <svg xmlns="http://www.w3.org/2000/svg" viewBox="-64 0 512 512" fill="#000000" height="128" width="128"><path d="M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM112 256l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z" /></svg>
icon:prj_title = <svg xmlns="http://www.w3.org/2000/svg" viewBox="-64 0 512 512" fill="#000000" height="128" width="128"><path d="M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM112 256l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z" /></svg>
icon:prj_chapter = <svg xmlns="http://www.w3.org/2000/svg" viewBox="-64 0 512 512" fill="#000000" height="128" width="128"><path d="M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM112 256l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z" /></svg>
icon:prj_scene = <svg xmlns="http://www.w3.org/2000/svg" viewBox="-64 0 512 512" fill="#000000" height="128" width="128"><path d="M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM112 256l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z" /></svg>
icon:prj_note = <svg xmlns="http://www.w3.org/2000/svg" viewBox="-32 0 512 512" fill="#000000" height="128" width="128"><path d="M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l224 0 0-112c0-26.5 21.5-48 48-48l112 0 0-224c0-35.3-28.7-64-64-64L64 32zM448 352l-45.3 0L336 352c-8.8 0-16 7.2-16 16l0 66.7 0 45.3 32-32 64-64 32-32z" /></svg>
icon:fmt_bold = <svg xmlns="http://www.w3.org/2000/svg" viewBox="-64 0 512 512" fill="#000000" height="128" width="128"><path d="M0 64C0 46.3 14.3 32 32 32l48 0 16 0 128 0c70.7 0 128 57.3 128 128c0 31.3-11.3 60.1-30 82.3c37.1 22.4 62 63.1 62 109.7c0 70.7-57.3 128-128 128L96 480l-16 0-48 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-160L48 96 32 96C14.3 96 0 81.7 0 64zM224 224c35.3 0 64-28.7 64-64s-28.7-64-64-64L112 96l0 128 112 0zM112 288l0 128 144 0c35.3 0 64-28.7 64-64s-28.7-64-64-64l-32 0-112 0z" /></svg>
icon:fmt_italic = <svg xmlns="http://www.w3.org/2000/svg" viewBox="-64 0 512 512" fill="#000000" height="128" width="128"><path d="M128 64c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-58.7 0L160 416l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l58.7 0L224 96l-64 0c-17.7 0-32-14.3-32-32z" /></svg>
icon:fmt_mark = <svg xmlns="http://www.w3.org/2000/svg" viewBox="32 0 512 512" fill="#000000" height="128" width="128"><path d="M315 315l158.4-215L444.1 70.6 229 229 315 315zm-187 5s0 0 0 0l0-71.7c0-15.3 7.2-29.6 19.5-38.6L420.6 8.4C428 2.9 437 0 446.2 0c11.4 0 22.4 4.5 30.5 12.6l54.8 54.8c8.1 8.1 12.6 19 12.6 30.5c0 9.2-2.9 18.2-8.4 25.6L334.4 396.5c-9 12.3-23.4 19.5-38.6 19.5L224 416l-25.4 25.4c-12.5 12.5-32.8 12.5-45.3 0l-50.7-50.7c-12.5-12.5-12.5-32.8 0-45.3L128 320zM7 466.3l63-63 70.6 70.6-31 31c-4.5 4.5-10.6 7-17 7L24 512c-13.3 0-24-10.7-24-24l0-4.7c0-6.4 2.5-12.5 7-17z" /></svg>
icon:fmt_strike = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="#000000" height="128" width="128"><path d="M161.3 144c3.2-17.2 14-30.1 33.7-38.6c21.1-9 51.8-12.3 88.6-6.5c11.9 1.9 48.8 9.1 60.1 12c17.1 4.5 34.6-5.6 39.2-22.7s-5.6-34.6-22.7-39.2c-14.3-3.8-53.6-11.4-66.6-13.4c-44.7-7-88.3-4.2-123.7 10.9c-36.5 15.6-64.4 44.8-71.8 87.3c-.1 .6-.2 1.1-.2 1.7c-2.8 23.9 .5 45.6 10.1 64.6c4.5 9 10.2 16.9 16.7 23.9L32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l448 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-209.9 0-.4-.1-1.1-.3c-36-10.8-65.2-19.6-85.2-33.1c-9.3-6.3-15-12.6-18.2-19.1c-3.1-6.1-5.2-14.6-3.8-27.4zM348.9 337.2c2.7 6.5 4.4 15.8 1.9 30.1c-3 17.6-13.8 30.8-33.9 39.4c-21.1 9-51.7 12.3-88.5 6.5c-18-2.9-49.1-13.5-74.4-22.1c-5.6-1.9-11-3.7-15.9-5.4c-16.8-5.6-34.9 3.5-40.5 20.3s3.5 34.9 20.3 40.5c3.6 1.2 7.9 2.7 12.7 4.3c0 0 0 0 0 0s0 0 0 0c24.9 8.5 63.6 21.7 87.6 25.6c0 0 0 0 0 0l.2 0c44.7 7 88.3 4.2 123.7-10.9c36.5-15.6 64.4-44.8 71.8-87.3c3.6-21 2.7-40.4-3.1-58.1l-75.7 0c7 5.6 11.4 11.2 13.9 17.2z" /></svg>
icon:fmt_subscript = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="#000000" height="128" width="128"><path d="M32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l15.3 0 89.6 128L47.3 384 32 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0c10.4 0 20.2-5.1 26.2-13.6L176 311.8l85.8 122.6c6 8.6 15.8 13.6 26.2 13.6l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-15.3 0L215.1 256l89.6-128 15.3 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-10.4 0-20.2 5.1-26.2 13.6L176 200.2 90.2 77.6C84.2 69.1 74.4 64 64 64L32 64zM480 320c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4l-32 16c-15.8 7.9-22.2 27.1-14.3 42.9C393 361.5 404.3 368 416 368l0 80c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-128z" /></svg>
icon:fmt_superscript = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="#000000" height="128" width="128"><path d="M480 32c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4l-32 16c-15.8 7.9-22.2 27.1-14.3 42.9C393 73.5 404.3 80 416 80l0 80c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-128zM32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l15.3 0 89.6 128L47.3 384 32 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0c10.4 0 20.2-5.1 26.2-13.6L176 311.8l85.8 122.6c6 8.6 15.8 13.6 26.2 13.6l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-15.3 0L215.1 256l89.6-128 15.3 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-10.4 0-20.2 5.1-26.2 13.6L176 200.2 90.2 77.6C84.2 69.1 74.4 64 64 64L32 64z" /></svg>
icon:fmt_underline = <svg xmlns="http://www.w3.org/2000/svg" viewBox="-32 0 512 512" fill="#000000" height="128" width="128"><path d="M16 64c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 128c0 53 43 96 96 96s96-43 96-96l0-128-16 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 128c0 88.4-71.6 160-160 160s-160-71.6-160-160L64 96 48 96C30.3 96 16 81.7 16 64zM0 448c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32z" /></svg>
icon:fmt_toolbar = <svg xmlns="http://www.w3.org/2000/svg" viewBox="-32 0 512 512" fill="#000000" height="128" width="128"><path d="M0 96C0 60.7 28.7 32 64 32H384c35.3 0 64 28.7 64 64V416c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V96z" /></svg>
icon:search = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="#000000" height="128" width="128"><path d="M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z" /></svg>
icon:search_cancel = <svg xmlns="http://www.w3.org/2000/svg" viewBox="-64 0 512 512" fill="#000000" height="128" width="128"><path d="M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z" /></svg>
icon:search_case = <svg xmlns="http://www.w3.org/2000/svg" viewBox="-32 0 512 512" fill="#000000" height="128" width="128"><path d="M254 52.8C249.3 40.3 237.3 32 224 32s-25.3 8.3-30 20.8L57.8 416 32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-1.8 0 18-48 159.6 0 18 48-1.8 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-25.8 0L254 52.8zM279.8 304l-111.6 0L224 155.1 279.8 304z" /></svg>
icon:search_loop = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="#000000" height="128" width="128"><path d="M0 224c0 17.7 14.3 32 32 32s32-14.3 32-32c0-53 43-96 96-96l160 0 0 32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9S320 19.1 320 32l0 32L160 64C71.6 64 0 135.6 0 224zm512 64c0-17.7-14.3-32-32-32s-32 14.3-32 32c0 53-43 96-96 96l-160 0 0-32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6l0-32 160 0c88.4 0 160-71.6 160-160z" /></svg>
icon:search_preserve = <svg xmlns="http://www.w3.org/2000/svg" viewBox="32 0 512 512" fill="#000000" height="128" width="128"><path d="M64 128l0-32 64 0 0 320-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-320 64 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-48c0-26.5-21.5-48-48-48L160 32 48 32C21.5 32 0 53.5 0 80l0 48c0 17.7 14.3 32 32 32s32-14.3 32-32zM502.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9s16.6 19.8 29.6 19.8l32 0 0 192-32 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8l-32 0 0-192 32 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64z" /></svg>
icon:search_project = <svg xmlns="http://www.w3.org/2000/svg" viewBox="-64 0 512 512" fill="#000000" height="128" width="128"><path d="M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM216 232l0 102.1 31-31c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-72 72c-9.4 9.4-24.6 9.4-33.9 0l-72-72c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l31 31L168 232c0-13.3 10.7-24 24-24s24 10.7 24 24z" /></svg>
icon:search_regex = <svg xmlns="http://www.w3.org/2000/svg" viewBox="-64 0 512 512" fill="#000000" height="128" width="128"><path d="M192 32c17.7 0 32 14.3 32 32l0 135.5 111.5-66.9c15.2-9.1 34.8-4.2 43.9 11s4.2 34.8-11 43.9L254.2 256l114.3 68.6c15.2 9.1 20.1 28.7 11 43.9s-28.7 20.1-43.9 11L224 312.5 224 448c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-135.5L48.5 379.4c-15.2 9.1-34.8 4.2-43.9-11s-4.2-34.8 11-43.9L129.8 256 15.5 187.4c-15.2-9.1-20.1-28.7-11-43.9s28.7-20.1 43.9-11L160 199.5 160 64c0-17.7 14.3-32 32-32z" /></svg>
icon:search_replace = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="#000000" height="128" width="128"><path d="M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM241 119c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31L120 184c-13.3 0-24 10.7-24 24s10.7 24 24 24l118.1 0-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9l-72-72z" /></svg>
icon:search_word = <svg xmlns="http://www.w3.org/2000/svg" viewBox="-32 0 512 512" fill="#000000" height="128" width="128"><path d="M64 128l0-32 128 0 0 128-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16 0 0-128 128 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-48c0-26.5-21.5-48-48-48L224 32 48 32C21.5 32 0 53.5 0 80l0 48c0 17.7 14.3 32 32 32s32-14.3 32-32zM9.4 361.4c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6l0-32 192 0 0 32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6l0 32-192 0 0-32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64z" /></svg>
icon:bullet-off = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="#000000" height="128" width="128"><path d="M464 256A208 208 0 1 0 48 256a208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z" /></svg>
icon:bullet-on = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="#000000" height="128" width="128"><path d="M256 512A256 256 0 1 0 256 0a256 256 0 1 0 0 512z" /></svg>
icon:unfold-hide = <svg xmlns="http://www.w3.org/2000/svg" viewBox="-128 0 512 512" fill="#000000" height="128" width="128"><path d="M246.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6l0 256c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l128-128z" /></svg>
icon:unfold-show = <svg xmlns="http://www.w3.org/2000/svg" viewBox="-96 0 512 512" fill="#000000" height="128" width="128"><path d="M137.4 374.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9s-16.6-19.8-29.6-19.8L32 192c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z" /></svg>
icon:sb_build = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="#000000" height="128" width="128"><path d="M352 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9L370.7 96 201.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L416 141.3l41.4 41.4c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6l0-128c0-17.7-14.3-32-32-32L352 0zM80 32C35.8 32 0 67.8 0 112L0 432c0 44.2 35.8 80 80 80l320 0c44.2 0 80-35.8 80-80l0-112c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112c0 8.8-7.2 16-16 16L80 448c-8.8 0-16-7.2-16-16l0-320c0-8.8 7.2-16 16-16l112 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 32z" /></svg>
icon:sb_details = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="#000000" height="128" width="128"><path d="M40 48C26.7 48 16 58.7 16 72l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24L40 48zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zM16 232l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24zM40 368c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0z" /></svg>
icon:sb_novel = <svg xmlns="http://www.w3.org/2000/svg" viewBox="32 0 512 512" fill="#000000" height="128" width="128"><path d="M249.6 471.5c10.8 3.8 22.4-4.1 22.4-15.5l0-377.4c0-4.2-1.6-8.4-5-11C247.4 52 202.4 32 144 32C93.5 32 46.3 45.3 18.1 56.1C6.8 60.5 0 71.7 0 83.8L0 454.1c0 11.9 12.8 20.2 24.1 16.5C55.6 460.1 105.5 448 144 448c33.9 0 79 14 105.6 23.5zm76.8 0C353 462 398.1 448 432 448c38.5 0 88.4 12.1 119.9 22.6c11.3 3.8 24.1-4.6 24.1-16.5l0-370.3c0-12.1-6.8-23.3-18.1-27.6C529.7 45.3 482.5 32 432 32c-58.4 0-103.4 20-123 35.6c-3.3 2.6-5 6.8-5 11L304 456c0 11.4 11.7 19.3 22.4 15.5z" /></svg>
icon:sb_outline = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="#000000" height="128" width="128"><path d="M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm64 0l0 64 64 0 0-64L64 96zm384 0L192 96l0 64 256 0 0-64zM64 224l0 64 64 0 0-64-64 0zm384 0l-256 0 0 64 256 0 0-64zM64 352l0 64 64 0 0-64-64 0zm384 0l-256 0 0 64 256 0 0-64z" /></svg>
icon:sb_project = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="#000000" height="128" width="128"><path d="M471.6 21.7c-21.9-21.9-57.3-21.9-79.2 0L362.3 51.7l97.9 97.9 30.1-30.1c21.9-21.9 21.9-57.3 0-79.2L471.6 21.7zm-299.2 220c-6.1 6.1-10.8 13.6-13.5 21.9l-29.6 88.8c-2.9 8.6-.6 18.1 5.8 24.6s15.9 8.7 24.6 5.8l88.8-29.6c8.2-2.7 15.7-7.4 21.9-13.5L437.7 172.3 339.7 74.3 172.4 241.7zM96 64C43 64 0 107 0 160L0 416c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7-14.3 32-32 32L96 448c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 64z" /></svg>
icon:sb_search = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="#000000" height="128" width="128"><path d="M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z" /></svg>
icon:sb_stats = <svg xmlns="http://www.w3.org/2000/svg" viewBox="-32 0 512 512" fill="#000000" height="128" width="128"><path d="M160 80c0-26.5 21.5-48 48-48l32 0c26.5 0 48 21.5 48 48l0 352c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-352zM0 272c0-26.5 21.5-48 48-48l32 0c26.5 0 48 21.5 48 48l0 160c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48L0 272zM368 96l32 0c26.5 0 48 21.5 48 48l0 288c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-288c0-26.5 21.5-48 48-48z" /></svg>
icon:add = <svg xmlns="http://www.w3.org/2000/svg" viewBox="-32 0 512 512" fill="#000000" height="128" width="128"><path d="M256 80c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 144L48 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l144 0 0 144c0 17.7 14.3 32 32 32s32-14.3 32-32l0-144 144 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-144 0 0-144z" /></svg>
icon:bookmarks = <svg xmlns="http://www.w3.org/2000/svg" viewBox="-64 0 512 512" fill="#000000" height="128" width="128"><path d="M0 48V487.7C0 501.1 10.9 512 24.3 512c5 0 9.9-1.5 14-4.4L192 400 345.7 507.6c4.1 2.9 9 4.4 14 4.4c13.4 0 24.3-10.9 24.3-24.3V48c0-26.5-21.5-48-48-48H48C21.5 0 0 21.5 0 48z" /></svg>
icon:browse = <svg xmlns="http://www.w3.org/2000/svg" viewBox="32 0 512 512" fill="#000000" height="128" width="128"><path d="M88.7 223.8L0 375.8 0 96C0 60.7 28.7 32 64 32l117.5 0c17 0 33.3 6.7 45.3 18.7l26.5 26.5c12 12 28.3 18.7 45.3 18.7L416 96c35.3 0 64 28.7 64 64l0 32-336 0c-22.8 0-43.8 12.1-55.3 31.8zm27.6 16.1C122.1 230 132.6 224 144 224l400 0c11.5 0 22 6.1 27.7 16.1s5.7 22.2-.1 32.1l-112 192C453.9 474 443.4 480 432 480L32 480c-11.5 0-22-6.1-27.7-16.1s-5.7-22.2 .1-32.1l112-192z" /></svg>
icon:build_settings = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="#000000" height="128" width="128"><path d="M352 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9L370.7 96 201.4 265.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L416 141.3l41.4 41.4c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6l0-128c0-17.7-14.3-32-32-32L352 0zM80 32C35.8 32 0 67.8 0 112L0 432c0 44.2 35.8 80 80 80l320 0c44.2 0 80-35.8 80-80l0-112c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112c0 8.8-7.2 16-16 16L80 448c-8.8 0-16-7.2-16-16l0-320c0-8.8 7.2-16 16-16l112 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 32z" /></svg>
icon:cancel = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="#000000" height="128" width="128"><path d="M367.2 412.5L99.5 144.8C77.1 176.1 64 214.5 64 256c0 106 86 192 192 192c41.5 0 79.9-13.1 111.2-35.5zm45.3-45.3C434.9 335.9 448 297.5 448 256c0-106-86-192-192-192c-41.5 0-79.9 13.1-111.2 35.5L412.5 367.2zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z" /></svg>
icon:checked = <svg xmlns="http://www.w3.org/2000/svg" viewBox="-32 0 512 512" fill="#000000" height="128" width="128"><path d="M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM337 209L209 337c-9.4 9.4-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l47 47L303 175c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z" /></svg>
icon:chevron_down = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="#000000" height="128" width="128"><path d="M233.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 338.7 86.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z" /></svg>
icon:chevron_left = <svg xmlns="http://www.w3.org/2000/svg" viewBox="-96 0 512 512" fill="#000000" height="128" width="128"><path d="M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l192 192c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 246.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192z" /></svg>
icon:chevron_right = <svg xmlns="http://www.w3.org/2000/svg" viewBox="-96 0 512 512" fill="#000000" height="128" width="128"><path d="M310.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 256 73.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z" /></svg>
icon:chevron_up = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="#000000" height="128" width="128"><path d="M233.4 105.4c12.5-12.5 32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L256 173.3 86.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l192-192z" /></svg>
icon:close = <svg xmlns="http://www.w3.org/2000/svg" viewBox="-64 0 512 512" fill="#000000" height="128" width="128"><path d="M342.6 150.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 210.7 86.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L146.7 256 41.4 361.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 297.4 406.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.3 256 342.6 150.6z" /></svg>
icon:copy = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="#000000" height="128" width="128"><path d="M288 448L64 448l0-224 64 0 0-64-64 0c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-64-64 0 0 64zm-64-96l224 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L224 0c-35.3 0-64 28.7-64 64l0 224c0 35.3 28.7 64 64 64z" /></svg>
icon:document_add = <svg xmlns="http://www.w3.org/2000/svg" viewBox="32 0 512 512" fill="#000000" height="128" width="128"><path d="M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 38.6C310.1 219.5 256 287.4 256 368c0 59.1 29.1 111.3 73.7 143.3c-3.2 .5-6.4 .7-9.7 .7L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128zm48 96a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm16 80c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16s16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0 0-48z" /></svg>
icon:document = <svg xmlns="http://www.w3.org/2000/svg" viewBox="-64 0 512 512" fill="#000000" height="128" width="128"><path d="M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 288c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm384 64l-128 0L256 0 384 128z" /></svg>
icon:edit = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="#000000" height="128" width="128"><path d="M362.7 19.3L314.3 67.7 444.3 197.7l48.4-48.4c25-25 25-65.5 0-90.5L453.3 19.3c-25-25-65.5-25-90.5 0zm-71 71L58.6 323.5c-10.4 10.4-18 23.3-22.2 37.4L1 481.2C-1.5 489.7 .8 498.8 7 505s15.3 8.5 23.7 6.1l120.3-35.4c14.1-4.2 27-11.8 37.4-22.2L421.7 220.3 291.7 90.3z" /></svg>
icon:exclude = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="#000000" height="128" width="128"><path d="M367.2 412.5L99.5 144.8C77.1 176.1 64 214.5 64 256c0 106 86 192 192 192c41.5 0 79.9-13.1 111.2-35.5zm45.3-45.3C434.9 335.9 448 297.5 448 256c0-106-86-192-192-192c-41.5 0-79.9 13.1-111.2 35.5L412.5 367.2zM0 256a256 256 0 1 1 512 0A256 256 0 1 1 0 256z" /></svg>
icon:export = <svg xmlns="http://www.w3.org/2000/svg" viewBox="32 0 512 512" fill="#000000" height="128" width="128"><path d="M0 64C0 28.7 28.7 0 64 0L224 0l0 128c0 17.7 14.3 32 32 32l128 0 0 128-168 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l168 0 0 112c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM384 336l0-48 110.1 0-39-39c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l80 80c9.4 9.4 9.4 24.6 0 33.9l-80 80c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l39-39L384 336zm0-208l-128 0L256 0 384 128z" /></svg>
icon:filter = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="#000000" height="128" width="128"><path d="M3.9 54.9C10.5 40.9 24.5 32 40 32l432 0c15.5 0 29.5 8.9 36.1 22.9s4.6 30.5-5.2 42.5L320 320.9 320 448c0 12.1-6.8 23.2-17.7 28.6s-23.8 4.3-33.5-3l-64-48c-8.1-6-12.8-15.5-12.8-25.6l0-79.1L9 97.3C-.7 85.4-2.8 68.8 3.9 54.9z" /></svg>
icon:fit_height = <svg xmlns="http://www.w3.org/2000/svg" viewBox="-96 0 512 512" fill="#000000" height="128" width="128"><path d="M182.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L128 109.3l0 293.5L86.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 402.7l0-293.5 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96z" /></svg>
icon:fit_width = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="#000000" height="128" width="128"><path d="M406.6 374.6l96-96c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224l-293.5 0 41.4-41.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 288l293.5 0-41.4 41.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0z" /></svg>
icon:folder = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="#000000" height="128" width="128"><path d="M64 480H448c35.3 0 64-28.7 64-64V160c0-35.3-28.7-64-64-64H288c-10.1 0-19.6-4.7-25.6-12.8L243.2 57.6C231.1 41.5 212.1 32 192 32H64C28.7 32 0 60.7 0 96V416c0 35.3 28.7 64 64 64z" /></svg>
icon:font = <svg xmlns="http://www.w3.org/2000/svg" viewBox="-32 0 512 512" fill="#000000" height="128" width="128"><path d="M254 52.8C249.3 40.3 237.3 32 224 32s-25.3 8.3-30 20.8L57.8 416 32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-1.8 0 18-48 159.6 0 18 48-1.8 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-25.8 0L254 52.8zM279.8 304l-111.6 0L224 155.1 279.8 304z" /></svg>
icon:import = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="#000000" height="128" width="128"><path d="M128 64c0-35.3 28.7-64 64-64L352 0l0 128c0 17.7 14.3 32 32 32l128 0 0 288c0 35.3-28.7 64-64 64l-256 0c-35.3 0-64-28.7-64-64l0-112 174.1 0-39 39c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9l-80-80c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l39 39L128 288l0-224zm0 224l0 48L24 336c-13.3 0-24-10.7-24-24s10.7-24 24-24l104 0zM512 128l-128 0L384 0 512 128z" /></svg>
icon:language = <svg xmlns="http://www.w3.org/2000/svg" viewBox="32 0 512 512" fill="#000000" height="128" width="128"><path d="M112 0C99.1 0 87.4 7.8 82.5 19.7l-66.7 160-13.3 32c-6.8 16.3 .9 35 17.2 41.8s35-.9 41.8-17.2L66.7 224l90.7 0 5.1 12.3c6.8 16.3 25.5 24 41.8 17.2s24-25.5 17.2-41.8l-13.3-32-66.7-160C136.6 7.8 124.9 0 112 0zm18.7 160l-37.3 0L112 115.2 130.7 160zM256 32l0 96 0 96c0 17.7 14.3 32 32 32l80 0c44.2 0 80-35.8 80-80c0-23.1-9.8-43.8-25.4-58.4c6-11.2 9.4-24 9.4-37.6c0-44.2-35.8-80-80-80L288 0c-17.7 0-32 14.3-32 32zm96 64l-32 0 0-32 32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16zm-32 64l32 0 16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0 0-32zM566.6 310.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L352 434.7l-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l192-192z" /></svg>
icon:lines = <svg xmlns="http://www.w3.org/2000/svg" viewBox="-32 0 512 512" fill="#000000" height="128" width="128"><path d="M288 64c0 17.7-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l224 0c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32L32 352c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 224c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z" /></svg>
icon:list = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="#000000" height="128" width="128"><path d="M40 48C26.7 48 16 58.7 16 72l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24L40 48zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zM16 232l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24zM40 368c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0z" /></svg>
icon:margin_bottom = <svg xmlns="http://www.w3.org/2000/svg" viewBox="-64 0 512 512" fill="#000000" height="128" width="128"><path d="M169.4 470.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 370.8 224 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 306.7L54.6 265.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z" /></svg>
icon:margin_left = <svg xmlns="http://www.w3.org/2000/svg" viewBox="-32 0 512 512" fill="#000000" height="128" width="128"><path d="M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.2 288 416 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-306.7 0L214.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z" /></svg>
icon:margin_right = <svg xmlns="http://www.w3.org/2000/svg" viewBox="-32 0 512 512" fill="#000000" height="128" width="128"><path d="M438.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L338.8 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l306.7 0L233.4 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z" /></svg>
icon:margin_top = <svg xmlns="http://www.w3.org/2000/svg" viewBox="-64 0 512 512" fill="#000000" height="128" width="128"><path d="M214.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 141.2 160 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-306.7L329.4 246.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160z" /></svg>
icon:maximise = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="#000000" height="128" width="128"><path d="M200 32L56 32C42.7 32 32 42.7 32 56l0 144c0 9.7 5.8 18.5 14.8 22.2s19.3 1.7 26.2-5.2l40-40 79 79-79 79L73 295c-6.9-6.9-17.2-8.9-26.2-5.2S32 302.3 32 312l0 144c0 13.3 10.7 24 24 24l144 0c9.7 0 18.5-5.8 22.2-14.8s1.7-19.3-5.2-26.2l-40-40 79-79 79 79-40 40c-6.9 6.9-8.9 17.2-5.2 26.2s12.5 14.8 22.2 14.8l144 0c13.3 0 24-10.7 24-24l0-144c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2l-40 40-79-79 79-79 40 40c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2l0-144c0-13.3-10.7-24-24-24L312 32c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l40 40-79 79-79-79 40-40c6.9-6.9 8.9-17.2 5.2-26.2S209.7 32 200 32z" /></svg>
icon:minimise = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="#000000" height="128" width="128"><path d="M456 224l-144 0c-13.3 0-24-10.7-24-24l0-144c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l40 40L442.3 5.7C446 2 450.9 0 456 0s10 2 13.7 5.7l36.7 36.7C510 46 512 50.9 512 56s-2 10-5.7 13.7L433 143l40 40c6.9 6.9 8.9 17.2 5.2 26.2s-12.5 14.8-22.2 14.8zm0 64c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-40 40 73.4 73.4c3.6 3.6 5.7 8.5 5.7 13.7s-2 10-5.7 13.7l-36.7 36.7C466 510 461.1 512 456 512s-10-2-13.7-5.7L369 433l-40 40c-6.9 6.9-17.2 8.9-26.2 5.2s-14.8-12.5-14.8-22.2l0-144c0-13.3 10.7-24 24-24l144 0zm-256 0c13.3 0 24 10.7 24 24l0 144c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-40-40L69.7 506.3C66 510 61.1 512 56 512s-10-2-13.7-5.7L5.7 469.7C2 466 0 461.1 0 456s2-10 5.7-13.7L79 369 39 329c-6.9-6.9-8.9-17.2-5.2-26.2s12.5-14.8 22.2-14.8l144 0zM56 224c-9.7 0-18.5-5.8-22.2-14.8s-1.7-19.3 5.2-26.2l40-40L5.7 69.7C2 66 0 61.1 0 56s2-10 5.7-13.7L42.3 5.7C46 2 50.9 0 56 0s10 2 13.7 5.7L143 79l40-40c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2l0 144c0 13.3-10.7 24-24 24L56 224z" /></svg>
icon:more_arrow = <svg xmlns="http://www.w3.org/2000/svg" viewBox="-128 0 512 512" fill="#000000" height="128" width="128"><path d="M246.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-9.2-9.2-22.9-11.9-34.9-6.9s-19.8 16.6-19.8 29.6l0 256c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l128-128z" /></svg>
icon:more_vertical = <svg xmlns="http://www.w3.org/2000/svg" viewBox="-192 0 512 512" fill="#000000" height="128" width="128"><path d="M64 360a56 56 0 1 0 0 112 56 56 0 1 0 0-112zm0-160a56 56 0 1 0 0 112 56 56 0 1 0 0-112zM120 96A56 56 0 1 0 8 96a56 56 0 1 0 112 0z" /></svg>
icon:noncheckable = <svg xmlns="http://www.w3.org/2000/svg" viewBox="-32 0 512 512" fill="#000000" height="128" width="128"><path d="M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm88 200l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z" /></svg>
icon:open = <svg xmlns="http://www.w3.org/2000/svg" viewBox="-64 0 512 512" fill="#000000" height="128" width="128"><path d="M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM216 408c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-102.1-31 31c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l72-72c9.4-9.4 24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-31-31L216 408z" /></svg>
icon:panel = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="#000000" height="128" width="128"><path d="M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm64 0l0 64 64 0 0-64L64 96zm384 0L192 96l0 64 256 0 0-64zM64 224l0 64 64 0 0-64-64 0zm384 0l-256 0 0 64 256 0 0-64zM64 352l0 64 64 0 0-64-64 0zm384 0l-256 0 0 64 256 0 0-64z" /></svg>
icon:pin = <svg xmlns="http://www.w3.org/2000/svg" viewBox="-64 0 512 512" fill="#000000" height="128" width="128"><path d="M32 32C32 14.3 46.3 0 64 0L320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-29.5 0 11.4 148.2c36.7 19.9 65.7 53.2 79.5 94.7l1 3c3.3 9.8 1.6 20.5-4.4 28.8s-15.7 13.3-26 13.3L32 352c-10.3 0-19.9-4.9-26-13.3s-7.7-19.1-4.4-28.8l1-3c13.8-41.5 42.8-74.8 79.5-94.7L93.5 64 64 64C46.3 64 32 49.7 32 32zM160 384l64 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96z" /></svg>
icon:project_copy = <svg xmlns="http://www.w3.org/2000/svg" viewBox="-32 0 512 512" fill="#000000" height="128" width="128"><path d="M208 0L332.1 0c12.7 0 24.9 5.1 33.9 14.1l67.9 67.9c9 9 14.1 21.2 14.1 33.9L448 336c0 26.5-21.5 48-48 48l-192 0c-26.5 0-48-21.5-48-48l0-288c0-26.5 21.5-48 48-48zM48 128l80 0 0 64-64 0 0 256 192 0 0-32 64 0 0 48c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 176c0-26.5 21.5-48 48-48z" /></svg>
icon:quote = <svg xmlns="http://www.w3.org/2000/svg" viewBox="-32 0 512 512" fill="#000000" height="128" width="128"><path d="M448 296c0 66.3-53.7 120-120 120l-8 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l8 0c30.9 0 56-25.1 56-56l0-8-64 0c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l64 0c35.3 0 64 28.7 64 64l0 32 0 32 0 72zm-256 0c0 66.3-53.7 120-120 120l-8 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l8 0c30.9 0 56-25.1 56-56l0-8-64 0c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l64 0c35.3 0 64 28.7 64 64l0 32 0 32 0 72z" /></svg>
icon:refresh = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="#000000" height="128" width="128"><path d="M386.3 160L336 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 51.2L414.4 97.6c-87.5-87.5-229.3-87.5-316.8 0s-87.5 229.3 0 316.8s229.3 87.5 316.8 0c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-62.5 62.5-163.8 62.5-226.3 0s-62.5-163.8 0-226.3s163.8-62.5 226.3 0L386.3 160z" /></svg>
icon:remove = <svg xmlns="http://www.w3.org/2000/svg" viewBox="-32 0 512 512" fill="#000000" height="128" width="128"><path d="M432 256c0 17.7-14.3 32-32 32L48 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l352 0c17.7 0 32 14.3 32 32z" /></svg>
icon:revert = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="#000000" height="128" width="128"><path d="M125.7 160l50.3 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L48 224c-17.7 0-32-14.3-32-32L16 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 51.2L97.6 97.6c87.5-87.5 229.3-87.5 316.8 0s87.5 229.3 0 316.8s-229.3 87.5-316.8 0c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c62.5 62.5 163.8 62.5 226.3 0s62.5-163.8 0-226.3s-163.8-62.5-226.3 0L125.7 160z" /></svg>
icon:settings = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="#000000" height="128" width="128"><path d="M495.9 166.6c3.2 8.7 .5 18.4-6.4 24.6l-43.3 39.4c1.1 8.3 1.7 16.8 1.7 25.4s-.6 17.1-1.7 25.4l43.3 39.4c6.9 6.2 9.6 15.9 6.4 24.6c-4.4 11.9-9.7 23.3-15.8 34.3l-4.7 8.1c-6.6 11-14 21.4-22.1 31.2c-5.9 7.2-15.7 9.6-24.5 6.8l-55.7-17.7c-13.4 10.3-28.2 18.9-44 25.4l-12.5 57.1c-2 9.1-9 16.3-18.2 17.8c-13.8 2.3-28 3.5-42.5 3.5s-28.7-1.2-42.5-3.5c-9.2-1.5-16.2-8.7-18.2-17.8l-12.5-57.1c-15.8-6.5-30.6-15.1-44-25.4L83.1 425.9c-8.8 2.8-18.6 .3-24.5-6.8c-8.1-9.8-15.5-20.2-22.1-31.2l-4.7-8.1c-6.1-11-11.4-22.4-15.8-34.3c-3.2-8.7-.5-18.4 6.4-24.6l43.3-39.4C64.6 273.1 64 264.6 64 256s.6-17.1 1.7-25.4L22.4 191.2c-6.9-6.2-9.6-15.9-6.4-24.6c4.4-11.9 9.7-23.3 15.8-34.3l4.7-8.1c6.6-11 14-21.4 22.1-31.2c5.9-7.2 15.7-9.6 24.5-6.8l55.7 17.7c13.4-10.3 28.2-18.9 44-25.4l12.5-57.1c2-9.1 9-16.3 18.2-17.8C227.3 1.2 241.5 0 256 0s28.7 1.2 42.5 3.5c9.2 1.5 16.2 8.7 18.2 17.8l12.5 57.1c15.8 6.5 30.6 15.1 44 25.4l55.7-17.7c8.8-2.8 18.6-.3 24.5 6.8c8.1 9.8 15.5 20.2 22.1 31.2l4.7 8.1c6.1 11 11.4 22.4 15.8 34.3zM256 336a80 80 0 1 0 0-160 80 80 0 1 0 0 160z" /></svg>
icon:star = <svg xmlns="http://www.w3.org/2000/svg" viewBox="32 0 512 512" fill="#000000" height="128" width="128"><path d="M316.9 18C311.6 7 300.4 0 288.1 0s-23.4 7-28.8 18L195 150.3 51.4 171.5c-12 1.8-22 10.2-25.7 21.7s-.7 24.2 7.9 32.7L137.8 329 113.2 474.7c-2 12 3 24.2 12.9 31.3s23 8 33.8 2.3l128.3-68.5 128.3 68.5c10.8 5.7 23.9 4.9 33.8-2.3s14.9-19.3 12.9-31.3L438.5 329 542.7 225.9c8.6-8.5 11.7-21.2 7.9-32.7s-13.7-19.9-25.7-21.7L381.2 150.3 316.9 18z" /></svg>
icon:stats = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="#000000" height="128" width="128"><path d="M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 400c0 44.2 35.8 80 80 80l400 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 416c-8.8 0-16-7.2-16-16L64 64zm406.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L320 210.7l-57.4-57.4c-12.5-12.5-32.8-12.5-45.3 0l-112 112c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L240 221.3l57.4 57.4c12.5 12.5 32.8 12.5 45.3 0l128-128z" /></svg>
icon:text = <svg xmlns="http://www.w3.org/2000/svg" viewBox="-64 0 512 512" fill="#000000" height="128" width="128"><path d="M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-288-128 0c-17.7 0-32-14.3-32-32L224 0 64 0zM256 0l0 128 128 0L256 0zM112 256l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm0 64l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-160 0c-8.8 0-16-7.2-16-16s7.2-16 16-16z" /></svg>
icon:timer_off = <svg xmlns="http://www.w3.org/2000/svg" viewBox="-96 0 512 512" fill="#000000" height="128" width="128"><path d="M48 64C21.5 64 0 85.5 0 112L0 400c0 26.5 21.5 48 48 48l32 0c26.5 0 48-21.5 48-48l0-288c0-26.5-21.5-48-48-48L48 64zm192 0c-26.5 0-48 21.5-48 48l0 288c0 26.5 21.5 48 48 48l32 0c26.5 0 48-21.5 48-48l0-288c0-26.5-21.5-48-48-48l-32 0z" /></svg>
icon:timer = <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512" fill="#000000" height="128" width="128"><path d="M256 0a256 256 0 1 1 0 512A256 256 0 1 1 256 0zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z" /></svg>
icon:unchecked = <svg xmlns="http://www.w3.org/2000/svg" viewBox="-32 0 512 512" fill="#000000" height="128" width="128"><path d="M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm79 143c9.4-9.4 24.6-9.4 33.9 0l47 47 47-47c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-47 47 47 47c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l47-47-47-47c-9.4-9.4-9.4-24.6 0-33.9z" /></svg>
icon:view = <svg xmlns="http://www.w3.org/2000/svg" viewBox="-32 0 512 512" fill="#000000" height="128" width="128"><path d="M432 256c0 17.7-14.3 32-32 32L48 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l352 0c17.7 0 32 14.3 32 32z" /></svg>

View File

@@ -1,109 +0,0 @@
# This file is automatically generated. Do not edit.
# Meta
meta:name = Material Symbols - Filled Bold
meta:author = Google Inc
meta:license = Apache 2.0
# Icons
icon:alert_error = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M479.87-260.78q23.91 0 40.22-16.18 16.3-16.17 16.3-40.08 0-23.92-16.17-40.5-16.18-16.59-40.09-16.59-23.91 0-40.22 16.59-16.3 16.58-16.3 40.5 0 23.91 16.17 40.08 16.18 16.18 40.09 16.18Zm.13-178.09q22.09 0 37.54-15.46Q533-469.78 533-491.87v-147q0-22.09-15.46-37.54-15.45-15.46-37.54-15.46t-37.54 15.46Q427-660.96 427-638.87v147q0 22.09 15.46 37.54 15.45 15.46 37.54 15.46Zm0 378.09q-87.52 0-163.91-32.96-76.38-32.96-132.88-89.47-56.51-56.5-89.47-132.88Q60.78-392.48 60.78-480t32.96-163.91q32.96-76.38 89.47-132.88 56.5-56.51 132.88-89.47 76.39-32.96 163.91-32.96t163.91 32.96q76.38 32.96 132.88 89.47 56.51 56.5 89.47 132.88 32.96 76.39 32.96 163.91t-32.96 163.91q-32.96 76.38-89.47 132.88-56.5 56.51-132.88 89.47Q567.52-60.78 480-60.78Z" /></svg>
icon:alert_info = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M480-271.52q20.6 0 34.54-13.94 13.94-13.94 13.94-34.54v-151.52q0-20.6-13.94-34.54Q500.6-520 480-520t-34.54 13.94q-13.94 13.94-13.94 34.54V-320q0 20.6 13.94 34.54 13.94 13.94 34.54 13.94Zm0-317.18q21.8 0 36.55-14.75Q531.3-618.2 531.3-640q0-21.8-14.75-36.55Q501.8-691.3 480-691.3q-21.8 0-36.55 14.75Q428.7-661.8 428.7-640q0 21.8 14.75 36.55Q458.2-588.7 480-588.7Zm0 527.92q-87.52 0-163.91-32.96-76.38-32.96-132.88-89.47-56.51-56.5-89.47-132.88Q60.78-392.48 60.78-480t32.96-163.91q32.96-76.38 89.47-132.88 56.5-56.51 132.88-89.47 76.39-32.96 163.91-32.96t163.91 32.96q76.38 32.96 132.88 89.47 56.51 56.5 89.47 132.88 32.96 76.39 32.96 163.91t-32.96 163.91q-32.96 76.38-89.47 132.88-56.5 56.51-132.88 89.47Q567.52-60.78 480-60.78Z" /></svg>
icon:alert_question = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M476.3-240q23.27 0 39.74-16.48 16.48-16.48 16.48-39.82t-16.48-39.45q-16.47-16.12-39.74-16.12-23.26 0-39.74 16.12-16.47 16.11-16.47 39.45 0 23.34 16.47 39.82Q453.04-240 476.3-240ZM480-60.78q-87.52 0-163.91-32.96-76.38-32.96-132.88-89.47-56.51-56.5-89.47-132.88Q60.78-392.48 60.78-480t32.96-163.91q32.96-76.38 89.47-132.88 56.5-56.51 132.88-89.47 76.39-32.96 163.91-32.96t163.91 32.96q76.38 32.96 132.88 89.47 56.51 56.5 89.47 132.88 32.96 76.39 32.96 163.91t-32.96 163.91q-32.96 76.38-89.47 132.88-56.5 56.51-132.88 89.47Q567.52-60.78 480-60.78Zm2.3-579.35q20.45 0 35.57 13.42Q533-613.3 533-593.17q0 19.17-11.52 34.47-11.52 15.31-26.26 28.05-23 20-40.79 44.56-17.78 24.57-17.78 54.57 0 15.92 12.04 26.72Q460.74-394 476.8-394q17.2 0 29.4-11.41 12.19-11.42 17.45-28.11 5.13-18.74 17.15-33.26 12.03-14.52 26.33-27.83 23-21.43 38.37-48.28 15.37-26.85 15.37-58.28 0-52.13-40.65-86.05-40.65-33.91-95.09-33.91-40.26 0-75.61 17.13t-55.61 51.26q-8.13 13.7-5.1 29.44 3.03 15.75 16.36 23.91 15.7 9.69 33.24 5.85 17.55-3.85 29.81-18.98 9.87-12.74 24.17-20.18 14.31-7.43 29.91-7.43Z" /></svg>
icon:alert_warn = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M115.22-110.39q-14.96 0-26.83-7.37-11.88-7.36-18.48-19.41-6.69-11.83-7.19-25.78-.5-13.94 7.19-27.22L433.7-820q7.69-13.39 20.36-19.8 12.66-6.42 26-6.42 13.33 0 25.94 6.42 12.61 6.41 20.3 19.8l363.79 629.83q7.69 13.28 7.19 27.22-.5 13.95-7.19 25.78-6.7 11.82-18.52 19.3-11.83 7.48-26.79 7.48H115.22ZM480-241.7q17.57 0 30.2-12.63 12.63-12.63 12.63-30.19 0-17.57-12.63-29.92-12.63-12.34-30.2-12.34t-30.2 12.34q-12.63 12.35-12.63 29.92 0 17.56 12.63 30.19 12.63 12.63 30.2 12.63Zm0-118.3q17 0 28.5-11.5T520-400v-113.78q0-17-11.5-28.5t-28.5-11.5q-17 0-28.5 11.5t-11.5 28.5V-400q0 17 11.5 28.5T480-360Z" /></svg>
icon:cls_archive = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M206.78-100.78q-44.3 0-75.15-30.85-30.85-30.85-30.85-75.15v-471.87q0-19.09 6.48-36.33t18.3-31.63l66.4-77.39q14.39-17.39 34.84-26.31 20.46-8.91 42.42-8.91h421.56q21.96 0 42.42 8.91 20.45 8.92 34.84 26.31l66.4 77.39q11.82 14.39 18.3 31.63t6.48 36.33v471.87q0 44.3-30.85 75.15-30.85 30.85-75.15 30.85H206.78Zm29-613h488.44l-34-40H269.78l-34 40ZM480-556.04q-19.83 0-33.59 13.76-13.76 13.76-13.76 33.58v93.52l-21.3-21.3q-13.26-13.26-32.52-12.98-19.26.29-33.09 14.68-13.26 13.82-12.98 33.37.28 19.54 13.54 32.8l96.09 96.09q15.96 15.39 37.33 15.67 21.37.28 37.32-15.67l97.22-97.22q13.26-13.26 13.26-32.8 0-19.55-14.39-33.94-12.7-13.26-31.96-13.26t-32.52 13.26l-21.3 21.3v-93.52q0-19.82-13.76-33.58-13.76-13.76-33.59-13.76Z" /></svg>
icon:cls_character = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M22.48-263.52q0-39.09 20.32-72.11 20.33-33.02 54.42-50.28 63.69-31.57 129.95-47.63 66.26-16.07 134.53-16.07 69.39 0 135.65 15.78 66.26 15.79 128.82 47.35 34.09 17.26 54.42 50 20.32 32.74 20.32 72.96v26.35q0 44.3-30.84 75.15-30.85 30.85-75.16 30.85H128.48q-44.31 0-75.15-30.85-30.85-30.85-30.85-75.15v-26.35Zm724.56 132.35q17.22-23.09 25.55-50.09 8.32-27 8.32-55.91V-267q0-47.96-24.5-96.09T679-445.3q47.04 6.56 93.46 22.47 46.41 15.92 84.84 36.35 38.27 20 59.24 51 20.98 31 20.98 67.35v30.96q0 44.3-30.85 75.15-30.84 30.85-75.15 30.85h-84.48ZM361.7-489.61q-70.53 0-120.07-49.54-49.54-49.55-49.54-120.07t49.54-120.06q49.54-49.55 120.07-49.55 70.52 0 120.06 49.55 49.54 49.54 49.54 120.06 0 70.52-49.54 120.07-49.54 49.54-120.06 49.54Zm427.69-169.61q0 69.96-49.82 119.78-49.83 49.83-119.79 49.83-11.56 0-28-2.78-16.43-2.78-29.69-6.91 28.13-33.14 42.91-74.4 14.78-41.26 14.78-85.52T605-744.74q-14.78-41.26-42.91-74.39 14.56-5.57 28.56-7.63 14-2.07 29.13-2.07 69.96 0 119.79 49.83 49.82 49.82 49.82 119.78Z" /></svg>
icon:cls_custom = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M815.48-418.74 677.87-224.39q-14.39 21.09-37.26 32.35-22.87 11.26-48.52 11.26H206.78q-43.74 0-74.87-31.13-31.13-31.13-31.13-74.87v-386.44q0-43.74 31.13-74.87 31.13-31.13 74.87-31.13h385.31q25.65 0 48.52 11.55 22.87 11.54 37.26 32.06l137.61 194.35Q835-513.48 835-480t-19.52 61.26Z" /></svg>
icon:cls_entity = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M200-94q-44.3 0-75.15-30.85Q94-155.7 94-200v-400q0-44.3 30.85-75.15Q155.7-706 200-706h54v-54q0-44.3 30.85-75.15Q315.7-866 360-866h240q44.3 0 75.15 30.85Q706-804.3 706-760v214h54q44.3 0 75.15 30.85Q866-484.3 866-440v240q0 44.3-30.85 75.15Q804.3-94 760-94H520v-186h-80v186H200Zm0-106h80v-80h-80v80Zm0-160h80v-80h-80v80Zm0-160h80v-80h-80v80Zm160 160h80v-80h-80v80Zm0-160h80v-80h-80v80Zm0-160h80v-80h-80v80Zm160 320h80v-80h-80v80Zm0-160h80v-80h-80v80Zm0-160h80v-80h-80v80Zm160 480h80v-80h-80v80Zm0-160h80v-80h-80v80Z" /></svg>
icon:cls_none = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M480-405.91 293.04-218.96Q278.09-204 256-204t-37.04-14.96Q204-233.91 204-256t14.96-37.04L405.91-480 218.96-666.96Q204-681.91 204-704t14.96-37.04Q233.91-756 256-756t37.04 14.96L480-554.09l186.96-186.95Q681.91-756 704-756t37.04 14.96Q756-726.09 756-704t-14.96 37.04L554.09-480l186.95 186.96Q756-278.09 756-256t-14.96 37.04Q726.09-204 704-204t-37.04-14.96L480-405.91Z" /></svg>
icon:cls_novel = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M290.96-60.78q-62.53 0-106.35-43.83-43.83-43.82-43.83-106.35v-538.08q0-62.53 43.83-106.35 43.82-43.83 106.35-43.83h422.26q44.3 0 75.15 30.85 30.85 30.85 30.85 75.15v508.35q0 9.7-6.22 17.89-6.22 8.2-19.82 14.5-11.18 5.31-17.48 16.33-6.31 11.02-6.31 25.19 0 14.18 6.31 25.42 6.3 11.24 17.48 16.11 12.3 5.43 19.17 17.06 6.87 11.63 6.87 27.59v13.39q0 20.96-14.61 35.78Q790-60.78 769.04-60.78H290.96ZM371.3-361.7q20.96 0 35.57-14.6 14.61-14.61 14.61-35.57V-748.7q0-20.95-14.61-35.56-14.61-14.61-35.57-14.61-20.95 0-35.56 14.61-14.61 14.61-14.61 35.56v336.83q0 20.96 14.61 35.57 14.61 14.6 35.56 14.6Zm-80.34 200.57h387.13q-4.31-11.74-6.68-23.98t-2.37-25.85q0-13.17 2.16-25.63 2.15-12.45 6.89-24.19H290.96q-21.48 0-35.66 14.67-14.17 14.68-14.17 35.15 0 21.48 14.17 35.66 14.18 14.17 35.66 14.17Z" /></svg>
icon:cls_object = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M280-360q-50 0-85-35t-35-85q0-50 35-85t85-35q50 0 85 35t35 85q0 50-35 85t-85 35Zm0 137.52q80.96 0 147.48-45.98 66.52-45.97 93.78-123.06h10.61l38.43 39q8.27 7.69 17.81 11.04 9.54 3.35 19.8 3.35 10.26 0 19.53-3.35 9.26-3.35 17.52-11.61L693-401.13l57 49.35q8.26 7.26 17.74 10.89 9.48 3.63 19.74 3.19 10.26-.43 19.3-4.21 9.05-3.79 16.87-12.05l83.22-89.43q7.83-8.26 11.17-17.52 3.35-9.26 3.35-19.52 0-10.27-3.56-19.59-3.57-9.33-11.39-17.15l-36.48-35.92q-7.7-7.69-17.18-11.54-9.48-3.85-20.3-3.85H520.7q-24.57-73.09-90.16-121.06-65.58-47.98-150.54-47.98-107.35 0-182.44 75.08Q22.48-587.35 22.48-480q0 106.78 75.37 182.15T280-222.48Z" /></svg>
icon:cls_plot = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M362.17-100.78H200q-40.93 0-70.07-29.15-29.15-29.14-29.15-70.07v-162.17q42.35 0 72.7-27.96 30.34-27.96 30.34-69.87 0-41.91-30.34-69.87-30.35-27.96-72.7-27.96V-720q0-40.93 29.15-70.07 29.14-29.15 70.07-29.15h143.61q6.22-45.39 39.17-74.67 32.96-29.29 77.22-29.29t77.22 29.29q32.95 29.28 39.17 74.67H720q40.93 0 70.07 29.15 29.15 29.14 29.15 70.07v143.61q45.39 6.22 74.67 39.17 29.29 32.96 29.29 77.22t-29.29 77.22q-29.28 32.95-74.67 39.17V-200q0 40.93-29.15 70.07-29.14 29.15-70.07 29.15H557.83q0-46.61-28.54-79.07Q500.76-212.3 460-212.3q-40.76 0-69.29 32.52-28.54 32.53-28.54 79Z" /></svg>
icon:cls_template = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M166.78-140.78q-44.3 0-75.15-30.85-30.85-30.85-30.85-75.15v-466.44q0-44.3 30.85-75.15 30.85-30.85 75.15-30.85h181q21.23 0 40.46 7.98 19.24 7.98 34.19 22.94L480-730.74h313.22q44.3 0 75.15 30.85 30.85 30.85 30.85 75.15v377.96q0 44.3-30.85 75.15-30.85 30.85-75.15 30.85H166.78ZM280-315.48h240q17 0 28.5-11.5t11.5-28.5q0-17-11.5-28.5t-28.5-11.5H280q-17 0-28.5 11.5t-11.5 28.5q0 17 11.5 28.5t28.5 11.5Zm0-160h400q17 0 28.5-11.5t11.5-28.5q0-17-11.5-28.5t-28.5-11.5H280q-17 0-28.5 11.5t-11.5 28.5q0 17 11.5 28.5t28.5 11.5Z" /></svg>
icon:cls_timeline = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M326.78-166.78h306.44V-280q0-63.74-44.74-108.48T480-433.22q-63.74 0-108.48 44.74T326.78-280v113.22Zm153.22-360q63.74 0 108.48-44.74T633.22-680v-113.22H326.78V-680q0 63.74 44.74 108.48T480-526.78Zm-286.22 466q-22.08 0-37.54-15.46t-15.46-37.54q0-22.09 15.46-37.55 15.46-15.45 37.54-15.45h27V-280q0-58.74 25.39-111.67 25.39-52.94 71.31-88.33-45.92-35.39-71.31-88.33-25.39-52.93-25.39-111.67v-113.22h-27q-22.08 0-37.54-15.45-15.46-15.46-15.46-37.55 0-22.08 15.46-37.54t37.54-15.46h572.44q22.08 0 37.54 15.46t15.46 37.54q0 22.09-15.46 37.55-15.46 15.45-37.54 15.45h-27V-680q0 58.74-25.11 111.67Q689-515.39 642.52-480q46.48 35.39 71.59 88.33 25.11 52.93 25.11 111.67v113.22h27q22.08 0 37.54 15.45 15.46 15.46 15.46 37.55 0 22.08-15.46 37.54t-37.54 15.46H193.78Z" /></svg>
icon:cls_trash = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M273.78-100.78q-44.3 0-75.15-30.85-30.85-30.85-30.85-75.15v-507q-22.09 0-37.54-15.46-15.46-15.46-15.46-37.54 0-22.09 15.46-37.55 15.45-15.45 37.54-15.45H347q0-22.09 15.46-37.55 15.45-15.45 37.54-15.45h158.87q22.09 0 37.54 15.45 15.46 15.46 15.46 37.55h180.35q22.09 0 37.54 15.45 15.46 15.46 15.46 37.55 0 22.08-15.46 37.54-15.45 15.46-37.54 15.46v507q0 44.3-30.85 75.15-30.85 30.85-75.15 30.85H273.78Zm122.83-179.79q19.26 0 32.74-13.47 13.48-13.48 13.48-32.74v-267.57q0-19.26-13.48-32.74t-32.74-13.48q-19.26 0-33.02 13.48-13.76 13.48-13.76 32.74v267.57q0 19.26 13.76 32.74 13.76 13.47 33.02 13.47Zm167.35 0q19.26 0 32.74-13.47 13.47-13.48 13.47-32.74v-267.57q0-19.26-13.47-32.74-13.48-13.48-32.74-13.48t-33.03 13.48q-13.76 13.48-13.76 32.74v267.57q0 19.26 13.76 32.74 13.77 13.47 33.03 13.47Z" /></svg>
icon:cls_world = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M480-60.78q-87.52 0-163.91-32.96-76.38-32.96-132.88-89.47-56.51-56.5-89.47-132.88Q60.78-392.48 60.78-480t32.96-163.91q32.96-76.38 89.47-132.88 56.5-56.51 132.88-89.47 76.39-32.96 163.91-32.96t163.91 32.96q76.38 32.96 132.88 89.47 56.51 56.5 89.47 132.88 32.96 76.39 32.96 163.91t-32.96 163.91q-32.96 76.38-89.47 132.88-56.5 56.51-132.88 89.47Q567.52-60.78 480-60.78Zm0-106q121.56 0 208.63-78.31 87.06-78.3 100.07-194.78 0-3.04-.22-6.3t-.22-5.44q-8.96 19.39-27.56 31.33-18.61 11.93-42.4 11.93h-76.04q-35.8 0-61.29-25.49-25.49-25.49-25.49-61.29v-43.39H381.91v-82.26q0-36.03 25.49-61.69 25.5-25.66 61.3-25.66h43.39q0-26.59 13.91-46.81 13.91-20.23 34.17-27.84-19.44-4.75-39.37-7.59-19.93-2.85-40.8-2.85-131.74 0-222.48 90.74-90.74 90.74-90.74 222.48 0 2.83.29 5.65.28 2.83.28 5.65h165.52q72.22 0 122.89 50.68 50.67 50.67 50.67 122.66v43.62H376.26v66.48q24.52 8.96 50.27 13.72 25.74 4.76 53.47 4.76Z" /></svg>
icon:prj_folder = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M166.78-140.78q-44.3 0-75.15-30.85-30.85-30.85-30.85-75.15v-466.44q0-44.3 30.85-75.15 30.85-30.85 75.15-30.85h181q21.09 0 40.39 7.98 19.31 7.98 34.26 22.94L480-730.74h313.22q44.3 0 75.15 30.85 30.85 30.85 30.85 75.15v377.96q0 44.3-30.85 75.15-30.85 30.85-75.15 30.85H166.78Z" /></svg>
icon:prj_document = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M206.78-100.78q-44.3 0-75.15-30.85-30.85-30.85-30.85-75.15v-546.44q0-44.3 30.85-75.15 30.85-30.85 75.15-30.85h389.48q21.09 0 40.39 7.98 19.31 7.98 34.26 22.94L828.3-670.91q14.96 14.95 22.94 34.26 7.98 19.3 7.98 40.39v389.48q0 44.3-30.85 75.15-30.85 30.85-75.15 30.85H206.78Zm377.39-652.44v116.05q0 22.08 15.46 37.54t37.54 15.46h116.05L584.17-753.22Zm60.35 468.7q17.57 0 29.63-12.35 12.07-12.35 12.07-29.91 0-17.57-12.07-29.63-12.06-12.07-29.63-12.07H315.48q-17.57 0-29.63 12.07-12.07 12.06-12.07 29.63 0 17.56 12.35 29.91 12.35 12.35 29.91 12.35h328.48ZM455.26-587q17.57 0 29.91-12.35 12.35-12.35 12.35-29.91 0-17.57-12.35-29.91-12.34-12.35-29.91-12.35H316.04q-17.56 0-29.91 12.35-12.35 12.34-12.35 29.91 0 17.56 12.35 29.91Q298.48-587 316.04-587h139.22Zm188.7 151.52q17.56 0 29.91-12.35 12.35-12.34 12.35-29.91 0-17.56-12.35-29.91Q661.52-520 643.96-520H316.04q-17.56 0-29.91 12.35-12.35 12.35-12.35 29.91 0 17.57 12.35 29.91 12.35 12.35 29.91 12.35h327.92Z" /></svg>
icon:prj_title = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M206.78-100.78q-44.3 0-75.15-30.85-30.85-30.85-30.85-75.15v-546.44q0-44.3 30.85-75.15 30.85-30.85 75.15-30.85h389.48q21.09 0 40.39 7.98 19.31 7.98 34.26 22.94L828.3-670.91q14.96 14.95 22.94 34.26 7.98 19.3 7.98 40.39v389.48q0 44.3-30.85 75.15-30.85 30.85-75.15 30.85H206.78Zm377.39-652.44v116.05q0 22.08 15.46 37.54t37.54 15.46h116.05L584.17-753.22Zm60.35 468.7q17.57 0 29.63-12.35 12.07-12.35 12.07-29.91 0-17.57-12.07-29.63-12.06-12.07-29.63-12.07H315.48q-17.57 0-29.63 12.07-12.07 12.06-12.07 29.63 0 17.56 12.35 29.91 12.35 12.35 29.91 12.35h328.48ZM455.26-587q17.57 0 29.91-12.35 12.35-12.35 12.35-29.91 0-17.57-12.35-29.91-12.34-12.35-29.91-12.35H316.04q-17.56 0-29.91 12.35-12.35 12.34-12.35 29.91 0 17.56 12.35 29.91Q298.48-587 316.04-587h139.22Zm188.7 151.52q17.56 0 29.91-12.35 12.35-12.34 12.35-29.91 0-17.56-12.35-29.91Q661.52-520 643.96-520H316.04q-17.56 0-29.91 12.35-12.35 12.35-12.35 29.91 0 17.57 12.35 29.91 12.35 12.35 29.91 12.35h327.92Z" /></svg>
icon:prj_chapter = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M206.78-100.78q-44.3 0-75.15-30.85-30.85-30.85-30.85-75.15v-546.44q0-44.3 30.85-75.15 30.85-30.85 75.15-30.85h389.48q21.09 0 40.39 7.98 19.31 7.98 34.26 22.94L828.3-670.91q14.96 14.95 22.94 34.26 7.98 19.3 7.98 40.39v389.48q0 44.3-30.85 75.15-30.85 30.85-75.15 30.85H206.78Zm377.39-652.44v116.05q0 22.08 15.46 37.54t37.54 15.46h116.05L584.17-753.22Zm60.35 468.7q17.57 0 29.63-12.35 12.07-12.35 12.07-29.91 0-17.57-12.07-29.63-12.06-12.07-29.63-12.07H315.48q-17.57 0-29.63 12.07-12.07 12.06-12.07 29.63 0 17.56 12.35 29.91 12.35 12.35 29.91 12.35h328.48ZM455.26-587q17.57 0 29.91-12.35 12.35-12.35 12.35-29.91 0-17.57-12.35-29.91-12.34-12.35-29.91-12.35H316.04q-17.56 0-29.91 12.35-12.35 12.34-12.35 29.91 0 17.56 12.35 29.91Q298.48-587 316.04-587h139.22Zm188.7 151.52q17.56 0 29.91-12.35 12.35-12.34 12.35-29.91 0-17.56-12.35-29.91Q661.52-520 643.96-520H316.04q-17.56 0-29.91 12.35-12.35 12.35-12.35 29.91 0 17.57 12.35 29.91 12.35 12.35 29.91 12.35h327.92Z" /></svg>
icon:prj_scene = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M206.78-100.78q-44.3 0-75.15-30.85-30.85-30.85-30.85-75.15v-546.44q0-44.3 30.85-75.15 30.85-30.85 75.15-30.85h389.48q21.09 0 40.39 7.98 19.31 7.98 34.26 22.94L828.3-670.91q14.96 14.95 22.94 34.26 7.98 19.3 7.98 40.39v389.48q0 44.3-30.85 75.15-30.85 30.85-75.15 30.85H206.78Zm377.39-652.44v116.05q0 22.08 15.46 37.54t37.54 15.46h116.05L584.17-753.22Zm60.35 468.7q17.57 0 29.63-12.35 12.07-12.35 12.07-29.91 0-17.57-12.07-29.63-12.06-12.07-29.63-12.07H315.48q-17.57 0-29.63 12.07-12.07 12.06-12.07 29.63 0 17.56 12.35 29.91 12.35 12.35 29.91 12.35h328.48ZM455.26-587q17.57 0 29.91-12.35 12.35-12.35 12.35-29.91 0-17.57-12.35-29.91-12.34-12.35-29.91-12.35H316.04q-17.56 0-29.91 12.35-12.35 12.34-12.35 29.91 0 17.56 12.35 29.91Q298.48-587 316.04-587h139.22Zm188.7 151.52q17.56 0 29.91-12.35 12.35-12.34 12.35-29.91 0-17.56-12.35-29.91Q661.52-520 643.96-520H316.04q-17.56 0-29.91 12.35-12.35 12.35-12.35 29.91 0 17.57 12.35 29.91 12.35 12.35 29.91 12.35h327.92Z" /></svg>
icon:prj_note = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="m553.22-206.78 200-200h-147q-22.09 0-37.55 15.45-15.45 15.46-15.45 37.55v147Zm-346.44 106q-43.72 0-74.86-31.14t-31.14-74.86v-546.44q0-43.72 31.14-74.86t74.86-31.14h546.44q43.72 0 74.86 31.14t31.14 74.86v352.31q0 21.22-7.98 40.46-7.98 19.23-22.94 34.19L633.74-131.7q-14.96 14.96-34.19 22.94-19.24 7.98-40.46 7.98H206.78Zm123.96-292.44h107q18.68 0 31.32-12.8t12.64-31.72q0-18.68-12.64-31.32t-31.32-12.64H331.3q-18.92 0-31.72 12.64-12.8 12.65-12.8 31.33 0 18.69 12.64 31.6t31.32 12.91Zm0-168.48h298.52q18.68 0 31.32-12.8t12.64-31.72q0-18.68-12.64-31.32-12.64-12.63-31.32-12.63H331.3q-18.92 0-31.72 12.64-12.8 12.64-12.8 31.32 0 18.69 12.64 31.6t31.32 12.91Z" /></svg>
icon:fmt_bold = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M349.74-181.35q-44.31 0-75.15-30.85-30.85-30.84-30.85-75.15v-385.87q0-44.3 30.85-75.15 30.84-30.85 75.15-30.85h161.35q72.35 0 128.76 44.81 56.41 44.8 56.41 118.06 0 44.22-20.17 75.96-20.18 31.74-48.65 46.56v1.7q35.74 14.96 62.28 50.61t26.54 88.87q0 83.35-63.3 127.32-63.31 43.98-135 43.98H349.74Zm34.22-122.17h118.13q36.69 0 52.84-20.83 16.16-20.82 16.16-40.87 0-20.04-16.16-41.15-16.15-21.11-54.15-21.11H383.96v123.96Zm0-242.7h108.26q28.48 0 45.45-16.72 16.98-16.71 16.98-39.41 0-24-17.85-39.85-17.84-15.84-43.71-15.84H383.96v111.82Z" /></svg>
icon:fmt_italic = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M248.87-181.35q-26.09 0-44.54-18.45-18.46-18.46-18.46-44.55 0-26.08 18.46-44.54 18.45-18.46 44.54-18.46h100.39l114.91-344.17h-91.91q-26.09 0-44.54-18.46-18.46-18.45-18.46-44.54t18.46-44.55q18.45-18.45 44.54-18.45h300q26.09 0 44.54 18.45 18.46 18.46 18.46 44.55 0 26.09-18.46 44.54-18.45 18.46-44.54 18.46h-80.39L476.96-307.35h71.91q26.09 0 44.54 18.46 18.46 18.46 18.46 44.54 0 26.09-18.46 44.55-18.45 18.45-44.54 18.45h-300Z" /></svg>
icon:fmt_mark = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M168.48 0q-36.96 0-62.72-26.04Q80-52.09 80-89.04q0-36.96 26.04-62.72 26.05-25.76 63-25.76h622.48q36.96 0 62.72 25.76Q880-126 880-89.04q0 36.95-26.04 63Q827.91 0 790.96 0H168.48Zm278.13-701.61 250.48 251.48-162.26 162.26q-30.78 30.78-74.59 30.78-43.8 0-74.59-30.78l-2.17 1.74q-14.96 13.52-33.33 21.06-18.37 7.55-38.58 7.55h-94.31q-17.95 0-24.87-16.24-6.91-16.24 5.92-29.07l86.91-85.91q-31.35-31.35-32.07-75.02-.71-43.68 30.63-75.03l162.83-162.82Zm57.13-57.57 118.17-117.73q31.92-31.92 74.87-31.92 42.96 0 74.87 31.92l101.18 101.3q31.91 31.91 31.91 74.87 0 42.96-31.91 74.87L754.66-507.7 503.74-759.18Z" /></svg>
icon:fmt_strike = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M490.52-138.52q-66.39 0-123.28-34.91-56.89-34.92-89.02-93.74-10.13-18.26-2.5-38.59 7.63-20.33 26.89-31.02 20.82-11.7 43.72-4.35 22.89 7.35 36.71 28.17 18 28.31 46.81 45.74 28.8 17.44 62.11 17.44 38.34 0 67.17-23.33 28.83-23.32 28.83-59.67v-5.65q-.57-23.4 15.97-40.22 16.55-16.83 39.94-17.39 23.39-.57 40.15 15.69 16.76 16.26 17.89 39.65 0 3.57.29 6.85.28 3.29.28 6.85 0 82.39-63.35 135.44-63.35 53.04-148.61 53.04ZM120-475.48q-18.7 0-31.61-12.91T75.48-520q0-18.7 12.91-31.61T120-564.52h720q18.7 0 31.61 12.91T884.52-520q0 18.7-12.91 31.61T840-475.48H120Zm203.48-176.3q-20.39-12.26-26.68-35.16-6.28-22.89 5.98-43.28 27.26-47.56 75.96-71.56 48.69-24 104.39-24 49.13 0 93.04 20 43.92 20 74.05 58.56 12.69 15.7 7.85 35.39-4.85 19.7-21.55 32.39-19.82 14.83-43.56 11.27-23.74-3.57-41.7-20.7-13.87-13.04-31.04-19.35-17.18-6.3-36.22-6.3-24.74 0-47.2 10.15-22.45 10.15-34.89 31.46-12.26 20.82-35.15 27.11-22.89 6.28-43.28-5.98Z" /></svg>
icon:fmt_subscript = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M824.31-140.78q-18.69 0-31.32-12.57-12.64-12.58-12.64-31.16v-43.73q0-18.59 12.64-31.22 12.63-12.63 31.32-12.63h66.99v-28.69H806q-10.82 0-18.24-7.41-7.41-7.42-7.41-18.24 0-10.83 7.41-18.24 7.42-7.42 18.24-7.42h92.65q18.68 0 31.32 12.58 12.64 12.57 12.64 31.15v43.73q0 18.59-12.64 31.22-12.64 12.63-31.32 12.63h-67v28.69h85.31q10.82 0 18.24 7.42 7.41 7.41 7.41 18.24 0 10.82-7.41 18.24-7.42 7.41-18.24 7.41h-92.65Zm-510.14-80q-33.45 0-48.94-28.65-15.49-28.66 1.9-56.74l143.26-225.4-130.26-203.82q-17.39-27.09-1.86-55.46 15.52-28.37 47.82-28.37 14.91 0 27.17 6.91 12.26 6.92 19.96 19.18l105.91 171.65h1.74L586.35-793.7q7.13-12.15 19.61-18.83 12.47-6.69 26.09-6.69 33.43 0 48.82 28.37t-2 56.46L548.61-531.57l144.26 225.96q17.39 28.09 1.85 56.46-15.55 28.37-48.2 28.37-15.08 0-27.64-6.83-12.56-6.84-20.1-19.26L480.87-436.65h-1.74L360.65-246.87q-7.13 12.42-19.61 19.26-12.47 6.83-26.87 6.83Z" /></svg>
icon:fmt_superscript = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M824.31-607.91q-18.69 0-31.32-12.58-12.64-12.57-12.64-31.15v-43.73q0-18.59 12.64-31.22 12.63-12.63 31.32-12.63h66.99v-28.69H806q-10.82 0-18.24-7.42-7.41-7.41-7.41-18.24 0-10.82 7.41-18.24 7.42-7.41 18.24-7.41h92.65q18.68 0 31.32 12.57 12.64 12.58 12.64 31.16v43.73q0 18.59-12.64 31.22-12.64 12.63-31.32 12.63h-67v28.69h85.31q10.82 0 18.24 7.41 7.41 7.42 7.41 18.24 0 10.83-7.41 18.24-7.42 7.42-18.24 7.42h-92.65ZM314.17-140.78q-33.45 0-48.94-28.65-15.49-28.66 1.9-56.74l143.26-225.4-130.26-203.82q-17.39-27.09-1.86-55.46 15.52-28.37 47.82-28.37 14.91 0 27.17 6.91 12.26 6.92 19.96 19.18l105.91 171.65h1.74L586.35-713.7q7.13-12.15 19.61-18.83 12.47-6.69 26.09-6.69 33.43 0 48.82 28.37t-2 56.46L548.61-451.57l144.26 225.96q17.39 28.09 1.85 56.46-15.55 28.37-48.2 28.37-15.08 0-27.64-6.83-12.56-6.84-20.1-19.26L480.87-356.65h-1.74L360.65-166.87q-7.13 12.42-19.61 19.26-12.47 6.83-26.87 6.83Z" /></svg>
icon:fmt_underline = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M240-74.78q-22.09 0-37.54-15.46Q187-105.69 187-127.78t15.46-37.54q15.45-15.46 37.54-15.46h480q22.09 0 37.54 15.46Q773-149.87 773-127.78t-15.46 37.54Q742.09-74.78 720-74.78H240Zm240-176.96q-112.3 0-176.78-67.52t-64.48-181.13V-774.3q0-26.09 18.89-44.76 18.89-18.68 44.98-18.68 26.09 0 44.76 18.68 18.67 18.67 18.67 44.76v276.52q0 54.87 29.98 87.89T480-376.87q54 0 83.98-33.02 29.98-33.02 29.98-87.89V-774.3q0-26.09 18.89-44.76 18.89-18.68 44.98-18.68 26.08 0 44.76 18.68 18.67 18.67 18.67 44.76v273.91q0 113.61-64.48 181.13T480-251.74Z" /></svg>
icon:fmt_toolbar = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M240-191.52q-22.09 0-37.54-15.46Q187-222.43 187-244.52t15.46-37.55q15.45-15.45 37.54-15.45h480q22.09 0 37.54 15.45Q773-266.61 773-244.52q0 22.09-15.46 37.54-15.45 15.46-37.54 15.46H240Zm53.43-239.66 129.66-348.21q5.13-13.26 16.61-21.18 11.47-7.91 25.73-7.91h33.66q14.82 0 26.3 8.2 11.48 8.19 16.61 21.45l129.09 346.96q8.82 23.22-5.42 43.3-14.24 20.09-39.02 20.09-16.09 0-28.69-9.04-12.61-9.05-17.74-24.57l-22.66-68.21H403.87l-24.65 71.47q-4.57 14.39-16.39 22.37-11.83 7.98-26.22 7.98-24.65 0-38.26-20.02t-4.92-42.68Zm132.44-114.99h109.39L482.57-703.3h-4l-52.7 157.13Z" /></svg>
icon:search = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M375.48-307q-114.09 0-193.55-79.46-79.45-79.45-79.45-193.54 0-114.09 79.45-193.54Q261.39-853 375.48-853q114.09 0 193.54 79.46 79.46 79.45 79.46 193.54 0 45.13-12.87 83.28T601-429.7l219.48 220.05q14.96 15.52 14.96 37.32 0 21.81-15.53 36.77-14.95 14.95-37.04 14.95t-37.04-14.95L526.91-354.48q-29.43 21.74-68.15 34.61Q420.04-307 375.48-307Zm0-106q69.91 0 118.45-48.54 48.55-48.55 48.55-118.46t-48.55-118.46Q445.39-747 375.48-747t-118.46 48.54Q208.48-649.91 208.48-580t48.54 118.46Q305.57-413 375.48-413Z" /></svg>
icon:search_cancel = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M480-405.91 293.04-218.96Q278.09-204 256-204t-37.04-14.96Q204-233.91 204-256t14.96-37.04L405.91-480 218.96-666.96Q204-681.91 204-704t14.96-37.04Q233.91-756 256-756t37.04 14.96L480-554.09l186.96-186.95Q681.91-756 704-756t37.04 14.96Q756-726.09 756-704t-14.96 37.04L554.09-480l186.95 186.96Q756-278.09 756-256t-14.96 37.04Q726.09-204 704-204t-37.04-14.96L480-405.91Z" /></svg>
icon:search_case = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="m242.48-351.56-28.61 78.82q-4.57 12.7-15.26 20.11-10.7 7.41-23.96 7.41-22.39 0-34.87-18.32-12.48-18.33-4.91-38.72l132.91-358.39q4.57-13.26 16.33-21.46 11.76-8.19 25.59-8.19h33.08q13.83 0 25.81 7.91 11.98 7.91 16.54 21.17l134.04 359.96q7.57 20.39-4.84 38.22-12.42 17.82-34.37 17.82-13.26 0-24.24-7.91-10.98-7.91-15.55-20.61l-27.61-77.82H242.48Zm25.26-77.57h117.43l-57.21-163.91h-3.44l-56.78 163.91Zm404.61 194.48q-51 0-82.98-29.48-31.98-29.48-31.98-75.61 0-46.26 35.91-75.61 35.92-29.35 93.31-29.35 23 0 44.43 4 21.44 4 35.74 11.57v-17.65q0-23.92-19.08-39.94-19.09-16.02-47.44-16.02-13.87 0-26.95 3.94-13.09 3.93-24.53 10.67-16.95 9.43-29.87 5.02-12.91-4.41-20.47-14.67-7.57-10.26-6.44-23.24Q593.13-534 605.83-542q21.69-14.87 47.54-22.09 25.85-7.21 52.41-7.21 65.61 0 101.59 34.76 35.98 34.76 35.98 96.93v162.26q0 15.83-11.2 26.81-11.19 10.98-27.02 10.98t-27.09-11.2q-11.26-11.2-11.26-26.46v-2.17h-3.43q-12.87 21.3-37.44 33.02-24.56 11.72-53.56 11.72ZM690-298.83q32.17 0 54.7-21.74 22.52-21.73 22.52-52.04-11.18-6.3-27.57-9.39-16.39-3.09-35.95-3.09-32 0-48.87 11.46-16.87 11.46-16.87 32.76 0 18.3 14.58 30.17 14.59 11.87 37.46 11.87Z" /></svg>
icon:search_loop = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M67-520q0-122.09 85.46-207.54Q237.91-813 360-813h240q122.09 0 207.54 85.46Q893-642.09 893-520q0 103-62.61 183.54-62.61 80.55-163.48 102.63-23.08 5.27-41.61-8.84-18.52-14.11-18.52-37.33 0-22.65 16.89-38.61 16.9-15.96 39.42-24.48 57.13-19.39 90.52-68.24Q787-460.17 787-520q0-77.91-54.54-132.46Q677.91-707 600-707H360q-77.91 0-132.46 54.54Q173-597.91 173-520q0 70 44.37 122.85 44.37 52.84 112.67 61.32h3.05l-15.66-15.65q-14.39-14.39-11.84-34.85 2.54-20.45 17.37-35.28 15.52-15.52 37.32-15.52 21.81 0 37.33 15.52l103.43 103.44Q517-302.22 517-280.57q0 21.66-15.96 37.61l-104 104q-15.52 15.53-37.67 14.96-22.15-.56-38.11-16.09-14.83-14.82-14.83-36.13 0-21.3 14.83-36.13l15.22-15.21h-3.05q-114.17-6.22-190.3-91.4Q67-404.13 67-520Z" /></svg>
icon:search_preserve = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M331.09-140.78q-28.82 0-49-19.76t-20.18-48.72v-471.87H129.83q-28.77 0-48.91-20.18-20.14-20.17-20.14-49 0-28.82 20.14-48.86 20.14-20.05 48.91-20.05h402.26q28.76 0 48.9 20.18 20.14 20.17 20.14 49 0 28.82-20.14 48.87-20.14 20.04-48.9 20.04H399.43v471.3q0 28.77-19.76 48.91-19.76 20.14-48.58 20.14Zm379.22 0q-28.83 0-49-19.76-20.18-19.76-20.18-48.72v-253.78h-51.52q-28.77 0-48.91-20.18-20.13-20.18-20.13-49t19.76-48.58q19.76-19.77 48.71-19.77h241.7q28.96 0 48.72 19.77 19.76 19.76 19.76 48.58 0 28.82-19.76 49t-48.72 20.18h-52.09v253.21q0 28.77-19.76 48.91-19.76 20.14-48.58 20.14Z" /></svg>
icon:search_project = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M672.44-200q36.34 0 61.67-25.33 25.32-25.32 25.32-61.67t-25.32-61.67Q708.78-374 672.44-374q-36.35 0-61.68 25.33-25.32 25.32-25.32 61.67t25.32 61.67Q636.09-200 672.44-200ZM913.48-45.96Q898.52-31 876.44-31q-22.09 0-37.05-14.96l-73.22-72.65q-21 12.31-44.65 18.46T672.44-94q-80.66 0-136.83-56.17-56.18-56.18-56.18-136.83t56.18-136.83Q591.78-480 672.44-480q80.65 0 136.82 56.17 56.18 56.18 56.18 136.83 0 25.44-6.16 49.09-6.15 23.65-18.45 44.65l72.65 73.22q14.96 14.95 14.96 37.04t-14.96 37.04Zm-706.7-14.82q-44.3 0-75.15-30.85-30.85-30.85-30.85-75.15v-626.44q0-44.3 30.85-75.15 30.85-30.85 75.15-30.85h277.39q21.09 0 40.4 7.98 19.3 7.98 34.26 22.94L748.3-678.83q14.96 14.96 22.94 34.26 7.98 19.31 7.98 40.4v7.82q0 20.83-17.05 33.52-17.04 12.7-38.43 7.7-12.44-3-25.15-3.94-12.72-.93-26.15-.93-121.96 0-197.92 83.39-75.95 83.39-75.95 190.61 0 40.04 12.39 80.22 12.39 40.17 39.17 76.48 15.7 21.78 5.65 45.15-10.04 23.37-33.69 23.37H206.78Zm266.44-732.44v147q0 22.09 15.45 37.55 15.46 15.45 37.55 15.45h147l-200-200 200 200-200-200Z" /></svg>
icon:search_regex = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M34.78-482q0-71.83 24.48-138.02 24.48-66.2 69.04-122.46 14.39-16.96 36.26-18.24 21.87-1.28 37.83 14.68 15.96 15.95 16.17 38.11.22 22.15-13.6 40.67-30.74 40.3-47.46 87.2-16.72 46.89-16.72 98.06 0 50.61 17.15 97.78 17.16 47.18 47.46 87.48 13.83 18.52 13.61 40.46-.22 21.93-16.18 37.89-15.95 15.96-37.82 15.17-21.87-.78-35.7-18.3-44.13-56.26-69.32-122.46-25.2-66.19-25.2-138.02ZM380-227q-30.65 0-51.83-21.17Q307-269.35 307-300t21.17-51.83Q349.35-373 380-373t51.83 21.17Q453-330.65 453-300t-21.17 51.83Q410.65-227 380-227Zm179-205.65q-19.83 0-33.59-13.76-13.76-13.76-13.76-33.59v-18l-15.26 9.22q-16.82 9.69-35.87 4.91-19.04-4.78-28.74-22.17-9.69-17.39-4.63-36.44 5.07-19.04 22.46-28.74L464.3-580l-15.69-8.78q-16.83-9.7-21.96-28.74-5.13-19.05 4.57-35.87 9.69-17.83 29.02-22.46 19.33-4.63 36.72 5.07l14.69 8.78v-18q0-19.83 13.76-33.59 13.76-13.76 33.59-13.76 19.83 0 33.59 13.76 13.76 13.76 13.76 33.59v18l15.26-9.22q16.82-9.69 35.87-4.91 19.04 4.78 28.74 22.17 9.69 17.39 4.63 36.44-5.07 19.04-22.46 28.74L653.7-580l15.69 8.78q16.83 9.7 21.96 28.74 5.13 19.05-4.57 35.87-9.69 17.83-29.02 22.46-19.33 4.63-36.72-5.07L606.35-498v18q0 19.83-13.76 33.59-13.76 13.76-33.59 13.76ZM925.22-482q0 71.83-24.48 138.3-24.48 66.48-69.04 122.74-14.39 16.96-36.26 17.74-21.87.79-37.83-15.17-15.96-15.96-16.17-37.89-.22-21.94 13.6-40.46 30.74-40.3 47.46-87.48 16.72-47.17 16.72-97.78 0-51.17-17.72-98.63-17.72-47.46-48.02-87.76-13.83-17.96-12.83-40.11t16.96-37.54q15.96-15.96 37.61-14.68 21.65 1.28 35.48 18.24 44.13 56.26 69.32 122.46 25.2 66.19 25.2 138.02Z" /></svg>
icon:search_replace = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M440-713.22q-57.35 0-104.17 30.26Q289-652.7 265.3-602.91q-8.82 18.39-27.13 27.3-18.3 8.91-38.82 4.78-21.09-4.13-33.42-20.58-12.32-16.46-5.06-34.98 31.52-85.13 106.91-138.98 75.39-53.85 172.22-53.85 66.35 0 118.98 22.22 52.63 22.22 89.5 62.91v-29.87q0-18.69 12.91-31.61 12.91-12.91 31.61-12.91t31.61 12.91q12.91 12.92 12.91 31.61V-613q0 22.09-15.45 37.54Q706.61-560 684.52-560H532.44q-18.7 0-31.33-12.91-12.63-12.92-12.63-31.61 0-18.7 12.91-31.33 12.91-12.63 31.61-12.63h49.48q-25.05-30.91-61.87-47.82-36.83-16.92-80.61-16.92Zm0 492.44q-65.22 0-117.57-22.5-52.34-22.5-90.91-62.63v29.87q0 18.69-12.91 31.61-12.91 12.91-31.61 12.91t-31.61-12.91q-12.91-12.92-12.91-31.61V-427q0-22.09 15.45-37.54Q173.39-480 195.48-480h152.08q18.7 0 31.33 12.63 12.63 12.63 12.63 31.33 0 18.69-12.63 31.61-12.63 12.91-31.33 12.91h-51.17q25.61 30.35 61.87 47.54 36.26 17.2 81.74 17.2 55.78 0 100.76-28.2 44.98-28.19 69.11-73.72 11.52-19.95 30.11-32.28 18.59-12.32 40.67-8.19 22.09 4.56 33.2 23.37 11.11 18.8 2.72 38.76-5.87 16.04-13.68 30.15-7.8 14.11-17.98 27.72l148 147.43q15.53 15.52 15.53 37.61t-15.53 37.61q-15.52 14.96-37.61 14.96-22.08 0-37.6-15.53l-148-148q-33.74 24.74-76.24 39.53-42.5 14.78-93.46 14.78Z" /></svg>
icon:search_word = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M138.09-191.09q-44.31 0-75.16-30.84-30.84-30.85-30.84-75.16V-359q0-22.09 15.45-37.54Q63-412 85.09-412q22.08 0 37.54 15.46 15.46 15.45 15.46 37.54v61.91H827V-359q0-22.09 15.46-37.54Q857.91-412 880-412t37.54 15.46Q933-381.09 933-359v61.91q0 44.31-30.85 75.16-30.85 30.84-75.15 30.84H138.09Zm152.52-154.26q-46.74 0-76.44-27.48-29.69-27.47-29.69-70.34 0-43.13 33.06-70.2 33.07-27.06 85.76-27.06 21.31 0 40.53 3.78 19.21 3.78 32.08 11.22v-15.7q0-21.91-16.8-36.5-16.81-14.59-43.15-14.59-12.18 0-24.55 3.66-12.37 3.65-21.67 9.95-13.52 8.13-26.28 7.72-12.76-.41-21.76-9.68-9.57-9.26-9.03-23.15.55-13.89 15.33-24.15 15.74-12.48 40.52-20.07 24.78-7.58 52.96-7.58 58.61 0 92.17 31.76 33.57 31.76 33.57 87.19v152.09q0 14.83-10.48 25.02-10.48 10.2-25.87 10.2-14.7 0-24.61-9.07-9.91-9.06-9.91-22.63v-5.13h-3q-11.87 18.87-33.87 29.81-22 10.93-48.87 10.93Zm29.35-140.17q-30.31 0-45.89 10.52-15.59 10.52-15.59 30.13 0 18.3 13.3 29.39 13.31 11.09 35.05 11.09 29.17 0 49.13-19.96 19.95-19.95 19.95-49.13-11.74-6.3-26.63-9.17-14.89-2.87-29.32-2.87Zm338.69 140.17q-33.08 0-56.28-14.89-23.2-14.89-33.72-31.11h-3v10.74q0 14.26-9.91 24.18-9.91 9.91-24.17 9.91-14.27 0-24.68-10.41-10.41-10.42-10.41-24.68v-343.3q0-15.26 10.41-25.68Q517.3-761 532.57-761q15.26 0 25.67 10.41 10.41 10.42 10.41 25.68v82.56l-3 40h3q9.22-14.04 32.76-30.02 23.55-15.98 58.37-15.98 57.22 0 93.37 44.87 36.15 44.87 36.15 107.13t-36.21 106.63q-36.22 44.37-94.44 44.37Zm-19.17-235.69q-33.22 0-53.52 25.26-20.31 25.26-20.31 59 0 34.17 20.02 58.65 20.03 24.48 53.81 24.48t53.74-24.76q19.95-24.76 19.95-58.94 0-34.17-20.24-58.93-20.23-24.76-53.45-24.76Z" /></svg>
icon:bullet-off = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M480-60.78q-87.52 0-163.91-32.96-76.38-32.96-132.88-89.47-56.51-56.5-89.47-132.88Q60.78-392.48 60.78-480t32.96-163.91q32.96-76.38 89.47-132.88 56.5-56.51 132.88-89.47 76.39-32.96 163.91-32.96t163.91 32.96q76.38 32.96 132.88 89.47 56.51 56.5 89.47 132.88 32.96 76.39 32.96 163.91t-32.96 163.91q-32.96 76.38-89.47 132.88-56.5 56.51-132.88 89.47Q567.52-60.78 480-60.78Zm0-106q131.74 0 222.48-90.74 90.74-90.74 90.74-222.48t-90.74-222.48Q611.74-793.22 480-793.22t-222.48 90.74Q166.78-611.74 166.78-480t90.74 222.48q90.74 90.74 222.48 90.74Zm0 0q-131.74 0-222.48-90.74-90.74-90.74-90.74-222.48t90.74-222.48q90.74-90.74 222.48-90.74t222.48 90.74q90.74 90.74 90.74 222.48t-90.74 222.48Q611.74-166.78 480-166.78Z" /></svg>
icon:bullet-on = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M480-280q83 0 141.5-58.5T680-480q0-83-58.5-141.5T480-680q-83 0-141.5 58.5T280-480q0 83 58.5 141.5T480-280Zm0 219.22q-87.52 0-163.91-32.96-76.38-32.96-132.88-89.47-56.51-56.5-89.47-132.88Q60.78-392.48 60.78-480t32.96-163.91q32.96-76.38 89.47-132.88 56.5-56.51 132.88-89.47 76.39-32.96 163.91-32.96t163.91 32.96q76.38 32.96 132.88 89.47 56.51 56.5 89.47 132.88 32.96 76.39 32.96 163.91t-32.96 163.91q-32.96 76.38-89.47 132.88-56.5 56.51-132.88 89.47Q567.52-60.78 480-60.78Z" /></svg>
icon:unfold-hide = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M413.78-285.96q-10.26 0-18.52-7.47-8.26-7.48-8.26-19.31v-334.52q0-11.83 8.26-19.31 8.26-7.47 18.52-7.47 3.13 0 18.52 8.26l158 158q6.14 6.13 8.7 13.11 2.57 6.97 2.57 14.67T599-465.33q-2.56 6.98-8.7 13.11l-158 158q-4.13 4.13-8.76 6.2-4.63 2.06-9.76 2.06Z" /></svg>
icon:unfold-show = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="m452.22-369.7-158-158q-4.13-4.13-6.2-8.76-2.06-4.63-2.06-9.76 0-10.26 7.47-18.52 7.48-8.26 19.31-8.26h334.52q11.83 0 19.31 8.26 7.47 8.26 7.47 18.52 0 3.13-8.26 18.52l-158 158q-6.13 6.14-13.11 8.7-6.97 2.57-14.67 2.57T465.33-361q-6.98-2.56-13.11-8.7Z" /></svg>
icon:sb_build = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M747.56-225.43v57.87q0 10.82 7.42 18.23 7.41 7.42 18.24 7.42 10.82 0 18.24-7.42 7.41-7.41 7.41-18.23V-287q0-10.83-7.7-18.52-7.69-7.7-18.52-7.7H653.22q-10.83 0-18.24 7.42-7.42 7.41-7.42 17.95 0 10.55 7.7 18.24 7.7 7.7 17.96 7.7h58.43l-88.39 88.39q-7.7 7.69-7.7 17.96 0 10.26 7.82 17.95 7.82 7.7 18.24 7.7 10.42 0 18.12-7.7l87.82-87.82ZM713.22-27.56q-83 0-141.5-58.5t-58.5-141.5q0-83 58.5-141.5t141.5-58.5q83 0 141.5 58.5t58.5 141.5q0 83-58.5 141.5t-141.5 58.5ZM326.78-591.52h306.44q17 0 28.5-11.5t11.5-28.5q0-17-11.5-28.5t-28.5-11.5H326.78q-17 0-28.5 11.5t-11.5 28.5q0 17 11.5 28.5t28.5 11.5Zm-120 492.43q-43.72 0-74.86-31.13-31.14-31.14-31.14-74.87v-546.43q0-43.73 31.14-74.86 31.14-31.14 74.86-31.14h546.44q43.72 0 74.86 31.14 31.14 31.13 31.14 74.86v216.3q0 24.22-20.37 36.76-20.37 12.55-43.59 3.72-19.11-6.13-39.9-9.19-20.79-3.07-42.14-3.07-11 0-20.5.41-9.5.4-19.5 2.03-7.31-6.53-18.31-10.14-11-3.6-21.69-3.6H326.78q-17 0-28.5 11.5t-11.5 28.5q0 17 11.5 28.5t28.5 11.5h203.87q-18 15.3-33.06 33.6-15.07 18.31-27.2 39.61H326.78q-17 0-28.5 11.5t-11.5 28.5q0 17 11.5 28.5t28.5 11.5h112.83q-3.7 13.96-5.05 28.26-1.34 14.31-1.34 29.83 0 17.17 1.62 33.25 1.62 16.09 5.68 31.27 5.57 23.78-7.54 43.59-13.11 19.8-36.33 19.8H206.78Z" /></svg>
icon:sb_details = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M416.96-187q-22.09 0-37.55-15.46-15.45-15.45-15.45-37.54t15.45-37.54Q394.87-293 416.96-293h389.26q22.08 0 37.54 15.46 15.46 15.45 15.46 37.54t-15.46 37.54Q828.3-187 806.22-187H416.96Zm0-240q-22.09 0-37.55-15.46-15.45-15.45-15.45-37.54t15.45-37.54Q394.87-533 416.96-533h389.26q22.08 0 37.54 15.46 15.46 15.45 15.46 37.54t-15.46 37.54Q828.3-427 806.22-427H416.96Zm0-240q-22.09 0-37.55-15.46-15.45-15.45-15.45-37.54t15.45-37.54Q394.87-773 416.96-773h389.26q22.08 0 37.54 15.46 15.46 15.45 15.46 37.54t-15.46 37.54Q828.3-667 806.22-667H416.96ZM191.95-148.13q-37.95 0-64.84-27.03-26.89-27.02-26.89-64.98 0-37.95 27.02-64.84 27.03-26.89 64.98-26.89t64.85 27.03q26.89 27.02 26.89 64.98 0 37.95-27.03 64.84t-64.98 26.89Zm0-240q-37.95 0-64.84-27.03-26.89-27.02-26.89-64.98 0-37.95 27.02-64.84 27.03-26.89 64.98-26.89t64.85 27.03q26.89 27.02 26.89 64.98 0 37.95-27.03 64.84t-64.98 26.89Zm0-240q-37.95 0-64.84-27.03-26.89-27.02-26.89-64.98 0-37.95 27.02-64.84 27.03-26.89 64.98-26.89t64.85 27.03q26.89 27.02 26.89 64.98 0 37.95-27.03 64.84t-64.98 26.89Z" /></svg>
icon:sb_novel = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M331.3-338.65q20.96 0 35.57-14.61t14.61-35.57V-748.7q0-20.95-14.61-35.56-14.61-14.61-35.57-14.61-20.95 0-35.56 14.61-14.61 14.61-14.61 35.56v359.87q0 20.96 14.61 35.57t35.56 14.61ZM753.22-60.78H240q-58.01 0-98.61-40.44-40.61-40.44-40.61-98.21v-558.31q0-58.95 41.27-100.21 41.26-41.27 100.21-41.27h275.96q-40.79 36.7-64.59 88.07-23.8 51.37-23.8 111.15 0 107.18 72.04 184.17 72.04 77 177 85v83.7q0 44.3-30.85 75.15-30.85 30.85-75.15 30.85H240q-16.52 0-27.69 11.5-11.18 11.5-11.18 28.5t11.18 28.5q11.17 11.5 27.69 11.5h518.87v-275.13q27.65-6.13 53.02-17.74 25.37-11.61 47.33-28.13v315.35q0 44.3-30.85 75.15-30.85 30.85-75.15 30.85ZM700-469.83q0-96.25 66.96-163.21Q833.92-700 930.17-700q-96.25 0-163.21-66.96Q700-833.92 700-930.17q0 96.25-66.96 163.21Q566.08-700 469.83-700q96.25 0 163.21 66.96Q700-566.08 700-469.83Z" /></svg>
icon:sb_outline = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M320-595.48q18.92 0 31.72-12.8 12.8-12.8 12.8-31.72 0-18.92-12.8-31.72-12.8-12.8-31.72-12.8-18.92 0-31.72 12.8-12.8 12.8-12.8 31.72 0 18.92 12.8 31.72 12.8 12.8 31.72 12.8Zm0 160q18.92 0 31.72-12.8 12.8-12.8 12.8-31.72 0-18.92-12.8-31.72-12.8-12.8-31.72-12.8-18.92 0-31.72 12.8-12.8 12.8-12.8 31.72 0 18.92 12.8 31.72 12.8 12.8 31.72 12.8Zm0 160q18.92 0 31.72-12.8 12.8-12.8 12.8-31.72 0-18.92-12.8-31.72-12.8-12.8-31.72-12.8-18.92 0-31.72 12.8-12.8 12.8-12.8 31.72 0 18.92 12.8 31.72 12.8 12.8 31.72 12.8Zm-113.22 174.7q-44.3 0-75.15-30.85-30.85-30.85-30.85-75.15v-546.44q0-44.3 30.85-75.15 30.85-30.85 75.15-30.85h389.48q21.23 0 40.46 7.98 19.24 7.98 34.19 22.94L828.3-670.91q14.96 14.95 22.94 34.19 7.98 19.23 7.98 40.46v389.48q0 44.3-30.85 75.15-30.85 30.85-75.15 30.85H206.78Zm377.39-652.44v116.05q0 22.08 15.46 37.54t37.54 15.46h116.05L584.17-753.22Z" /></svg>
icon:sb_project = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M556.61-113.78v-63.74q0-10.83 4.13-20.31 4.13-9.47 11.83-17.17L781-423q10.7-10.7 23.67-15.54 12.98-4.85 26.24-4.85 14.26 0 27.24 5.35 12.98 5.34 23.68 16.04l37 37q9.69 10.7 15.04 23.67 5.35 12.98 5.35 26.24 0 13.83-4.85 27.03-4.85 13.19-15.54 23.89l-208 208q-7.7 7.69-17.18 11.54-9.48 3.85-20.3 3.85h-63.74q-22.09 0-37.54-15.46-15.46-15.46-15.46-37.54Zm279.96-187.96 31.34-33.35-37-37-32.34 32.35 38 38ZM166.78-140.78q-44.3 0-75.15-30.85-30.85-30.85-30.85-75.15v-466.44q0-44.3 30.85-75.15 30.85-30.85 75.15-30.85h181q21.09 0 40.39 7.98 19.31 7.98 34.26 22.94L480-730.74h313.22q44.3 0 75.15 30.85 30.85 30.85 30.85 75.15v57q0 21.96-17.89 35.22-17.89 13.26-40.85 9.13-9.78-.57-19.35.28-9.57.85-18.78 3.68-21.79 2.82-41.76 12.82-19.98 10-36.59 26.61L507.52-263.52q-14.95 14.95-22.93 33.98-7.98 19.02-7.98 40.67v1.31q0 19.82-13.48 33.3-13.48 13.48-33.3 13.48H166.78Z" /></svg>
icon:sb_search = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M375.48-307q-114.09 0-193.55-79.46-79.45-79.45-79.45-193.54 0-114.09 79.45-193.54Q261.39-853 375.48-853q114.09 0 193.54 79.46 79.46 79.45 79.46 193.54 0 45.13-12.87 83.28T601-429.7l219.48 220.05q14.96 15.52 14.96 37.32 0 21.81-15.53 36.77-14.95 14.95-37.04 14.95t-37.04-14.95L526.91-354.48q-29.43 21.74-68.15 34.61Q420.04-307 375.48-307Zm0-106q69.91 0 118.45-48.54 48.55-48.55 48.55-118.46t-48.55-118.46Q445.39-747 375.48-747t-118.46 48.54Q208.48-649.91 208.48-580t48.54 118.46Q305.57-413 375.48-413Z" /></svg>
icon:sb_stats = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M694.7-140.78q-22.09 0-37.55-15.46-15.45-15.46-15.45-37.54v-201.13q0-22.09 15.45-37.55 15.46-15.45 37.55-15.45h71.52q22.08 0 37.54 15.45 15.46 15.46 15.46 37.55v201.13q0 22.08-15.46 37.54t-37.54 15.46H694.7Zm-250.18 0q-22.09 0-37.54-15.46-15.46-15.46-15.46-37.54v-572.44q0-22.08 15.46-37.54 15.45-15.46 37.54-15.46h70.96q22.09 0 37.54 15.46 15.46 15.46 15.46 37.54v572.44q0 22.08-15.46 37.54-15.45 15.46-37.54 15.46h-70.96Zm-250.74 0q-22.08 0-37.54-15.46t-15.46-37.54v-372.44q0-22.08 15.46-37.54t37.54-15.46h71.52q22.09 0 37.55 15.46 15.45 15.46 15.45 37.54v372.44q0 22.08-15.45 37.54-15.46 15.46-37.55 15.46h-71.52Z" /></svg>
icon:add = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M427-427H233.78q-22.08 0-37.54-15.46-15.46-15.45-15.46-37.54t15.46-37.54Q211.7-533 233.78-533H427v-193.22q0-22.08 15.46-37.54 15.45-15.46 37.54-15.46t37.54 15.46Q533-748.3 533-726.22V-533h193.22q22.08 0 37.54 15.46 15.46 15.45 15.46 37.54t-15.46 37.54Q748.3-427 726.22-427H533v193.22q0 22.08-15.46 37.54-15.45 15.46-37.54 15.46t-37.54-15.46Q427-211.7 427-233.78V-427Z" /></svg>
icon:bookmarks = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M387-150.39 241.04-86.87q-53 22.65-100.87-8.48-47.87-31.13-47.87-88.83v-461.34q0-44.3 30.85-75.15 30.85-30.85 75.15-30.85h377.39q44.31 0 75.16 30.85 30.85 30.85 30.85 75.15v461.34q0 57.7-47.87 88.83-47.87 31.13-100.88 8.48L387-150.39Zm427.7-27.13q-22.09 0-37.55-15.46-15.45-15.46-15.45-37.54v-601h-441q-22.09 0-37.55-15.46-15.45-15.45-15.45-37.54t15.45-37.55q15.46-15.45 37.55-15.45h441q44.3 0 75.15 30.85 30.85 30.84 30.85 75.15v601q0 22.08-15.46 37.54t-37.54 15.46Z" /></svg>
icon:browse = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M166.78-140.78q-44.3 0-75.15-30.85-30.85-30.85-30.85-75.15v-466.44q0-44.87 30.85-75.43 30.85-30.57 75.15-30.57h181q21.09 0 40.39 7.98 19.31 7.98 34.26 22.94L480-730.74h366.22q22.08 0 37.54 15.46 15.46 15.45 15.46 37.54t-15.46 37.54q-15.46 15.46-37.54 15.46H340.57q-69.35 0-121.57 43.52-52.22 43.53-52.22 110.31v226.95l70.52-226.82q10.83-33.35 38.55-53.65 27.72-20.31 62.76-20.31h471.91q54 0 85.7 43.52 31.69 43.53 15.61 94.53l-53.92 174.43q-14.78 45.78-46.17 68.63-31.39 22.85-78.31 22.85H166.78Z" /></svg>
icon:build_settings = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M747.56-225.43v57.87q0 10.82 7.42 18.23 7.41 7.42 18.24 7.42 10.82 0 18.24-7.42 7.41-7.41 7.41-18.23V-287q0-10.83-7.7-18.52-7.69-7.7-18.52-7.7H653.22q-10.83 0-18.24 7.42-7.42 7.41-7.42 17.95 0 10.55 7.7 18.24 7.7 7.7 17.96 7.7h58.43l-88.39 88.39q-7.7 7.69-7.7 17.96 0 10.26 7.82 17.95 7.82 7.7 18.24 7.7 10.42 0 18.12-7.7l87.82-87.82ZM713.22-27.56q-83 0-141.5-58.5t-58.5-141.5q0-83 58.5-141.5t141.5-58.5q83 0 141.5 58.5t58.5 141.5q0 83-58.5 141.5t-141.5 58.5ZM326.78-591.52h306.44q17 0 28.5-11.5t11.5-28.5q0-17-11.5-28.5t-28.5-11.5H326.78q-17 0-28.5 11.5t-11.5 28.5q0 17 11.5 28.5t28.5 11.5Zm-120 492.43q-43.72 0-74.86-31.13-31.14-31.14-31.14-74.87v-546.43q0-43.73 31.14-74.86 31.14-31.14 74.86-31.14h546.44q43.72 0 74.86 31.14 31.14 31.13 31.14 74.86v216.3q0 24.22-20.37 36.76-20.37 12.55-43.59 3.72-19.11-6.13-39.9-9.19-20.79-3.07-42.14-3.07-11 0-20.5.41-9.5.4-19.5 2.03-7.31-6.53-18.31-10.14-11-3.6-21.69-3.6H326.78q-17 0-28.5 11.5t-11.5 28.5q0 17 11.5 28.5t28.5 11.5h203.87q-18 15.3-33.06 33.6-15.07 18.31-27.2 39.61H326.78q-17 0-28.5 11.5t-11.5 28.5q0 17 11.5 28.5t28.5 11.5h112.83q-3.7 13.96-5.05 28.26-1.34 14.31-1.34 29.83 0 17.17 1.62 33.25 1.62 16.09 5.68 31.27 5.57 23.78-7.54 43.59-13.11 19.8-36.33 19.8H206.78Z" /></svg>
icon:cancel = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="m480-417.78 106.96 106.95q12.69 12.7 31.1 12.42 18.42-.29 31.11-12.98 12.7-12.7 12.7-31.11t-12.7-31.11L542.22-480l106.95-106.96q12.7-12.69 12.7-31.1 0-18.42-12.7-31.11-12.69-12.7-31.11-12.7-18.41 0-31.1 12.7L480-542.22 373.04-649.17q-12.69-12.7-30.82-12.7-18.13 0-30.83 12.7-12.69 12.69-12.69 31.11 0 18.41 12.69 31.1L417.78-480 310.83-373.04q-12.7 12.69-12.42 30.82.29 18.13 12.98 30.83 12.7 12.69 31.11 12.69t31.11-12.69L480-417.78Zm0 357q-87.52 0-163.91-32.91-76.39-32.92-132.94-89.46-56.54-56.55-89.46-132.94Q60.78-392.48 60.78-480t32.91-163.91q32.92-76.39 89.46-132.94 56.55-56.54 132.94-89.46 76.39-32.91 163.91-32.91t163.91 32.91q76.39 32.92 132.94 89.46 56.54 56.55 89.46 132.94 32.91 76.39 32.91 163.91t-32.91 163.91q-32.92 76.39-89.46 132.94-56.55 56.54-132.94 89.46Q567.52-60.78 480-60.78Z" /></svg>
icon:checked = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="m422.3-441.52-71.86-71.31q-14.4-14.39-35.64-14.11-21.23.29-35.63 14.68-14.39 14.39-14.39 35.35 0 20.95 14.39 35.35L384.7-335.48q15.95 15.96 37.6 15.96 21.66 0 37.61-15.96l217.52-218.08q14.4-14.4 14.11-35.64-.28-21.23-14.67-35.63-14.39-14.39-35.35-14.39t-35.35 14.39L422.3-441.52ZM206.78-100.78q-44.3 0-75.15-30.85-30.85-30.85-30.85-75.15v-546.44q0-44.3 30.85-75.15 30.85-30.85 75.15-30.85h546.44q44.3 0 75.15 30.85 30.85 30.85 30.85 75.15v546.44q0 44.3-30.85 75.15-30.85 30.85-75.15 30.85H206.78Z" /></svg>
icon:chevron_down = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M480-348q-10.26 0-20.09-3.91-9.82-3.92-17.52-11.61L258.96-546.96Q244-561.91 244-584t14.96-37.04Q273.91-636 296-636t37.04 14.96L480-474.09l146.96-146.95Q641.91-636 664-636t37.04 14.96Q716-606.09 716-584t-14.96 37.04L517.61-363.52q-7.7 7.69-17.52 11.61Q490.26-348 480-348Z" /></svg>
icon:chevron_left = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="m178.18-480 284.95 284.96q18.39 18.39 18.18 44.04-.22 25.65-18.61 44.04-18.39 18.4-44.33 18.4-25.93 0-44.33-18.4L75.09-404.91q-15.96-15.96-23.65-35.48-7.7-19.52-7.7-39.61t7.7-39.61q7.69-19.52 23.65-35.48l298.95-298.95q18.4-18.4 44.55-18.18 26.15.22 44.54 18.61t18.39 44.33q0 25.93-18.39 44.32L178.18-480Z" /></svg>
icon:chevron_right = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M560.91-480 275.96-764.96q-18.4-18.39-18.18-44.26.22-25.87 18.61-44.26 18.39-18.39 44.54-18.39 26.16 0 44.55 18.39L664-555.09q15.96 15.96 23.65 35.48 7.7 19.52 7.7 39.61t-7.7 39.61q-7.69 19.52-23.65 35.48L365.04-105.96q-18.39 18.4-44.04 17.9t-44.04-18.9q-18.4-18.39-18.4-44.54t18.4-44.54L560.91-480Z" /></svg>
icon:chevron_up = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M480-509.91 333.04-362.96Q318.09-348 296-348t-37.04-14.96Q244-377.91 244-400t14.96-37.04l183.43-183.44q15.96-15.96 37.61-15.96t37.61 15.96l183.43 183.44Q716-422.09 716-400t-14.96 37.04Q686.09-348 664-348t-37.04-14.96L480-509.91Z" /></svg>
icon:close = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M480-405.91 293.04-218.96Q278.09-204 256-204t-37.04-14.96Q204-233.91 204-256t14.96-37.04L405.91-480 218.96-666.96Q204-681.91 204-704t14.96-37.04Q233.91-756 256-756t37.04 14.96L480-554.09l186.96-186.95Q681.91-756 704-756t37.04 14.96Q756-726.09 756-704t-14.96 37.04L554.09-480l186.95 186.96Q756-278.09 756-256t-14.96 37.04Q726.09-204 704-204t-37.04-14.96L480-405.91Z" /></svg>
icon:copy = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M379.78-233.78q-44.3 0-75.15-30.85-30.85-30.85-30.85-75.15v-466.44q0-44.3 30.85-75.15 30.85-30.85 75.15-30.85h346.44q44.3 0 75.15 30.85 30.85 30.85 30.85 75.15v466.44q0 44.3-30.85 75.15-30.85 30.85-75.15 30.85H379.78Zm-186 186q-44.3 0-75.15-30.85-30.85-30.85-30.85-75.15v-519.44q0-22.08 15.46-37.54 15.45-15.46 37.54-15.46t37.55 15.46q15.45 15.46 15.45 37.54v519.44h399.44q22.08 0 37.54 15.45 15.46 15.46 15.46 37.55 0 22.09-15.46 37.54-15.46 15.46-37.54 15.46H193.78Z" /></svg>
icon:document_add = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M246.78-60.78q-44.3 0-75.15-30.85-30.85-30.85-30.85-75.15v-626.44q0-44.3 30.85-75.15 30.85-30.85 75.15-30.85h277.39q21.23 0 40.46 7.98 19.24 7.98 34.2 22.94L788.3-678.83q14.96 14.96 22.94 34.2 7.98 19.23 7.98 40.46v437.39q0 44.3-30.85 75.15-30.85 30.85-75.15 30.85H246.78Zm266.44-585.44q0 22.09 15.45 37.55 15.46 15.45 37.55 15.45h147l-200-200v147ZM440-353.78v80q0 17 11.5 28.5t28.5 11.5q17 0 28.5-11.5t11.5-28.5v-80h80q17 0 28.5-11.5t11.5-28.5q0-17-11.5-28.5t-28.5-11.5h-80v-80q0-17-11.5-28.5t-28.5-11.5q-17 0-28.5 11.5t-11.5 28.5v80h-80q-17 0-28.5 11.5t-11.5 28.5q0 17 11.5 28.5t28.5 11.5h80Z" /></svg>
icon:document = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M371.3-464.87h217.4q18.92 0 31.72-12.8 12.8-12.8 12.8-31.72 0-18.92-12.8-31.72-12.8-12.8-31.72-12.8H371.3q-18.92 0-31.72 12.8-12.8 12.8-12.8 31.72 0 18.92 12.8 31.72 12.8 12.8 31.72 12.8Zm0 129.04h217.4q18.92 0 31.72-12.8 12.8-12.8 12.8-31.72 0-18.92-12.8-31.72-12.8-12.8-31.72-12.8H371.3q-18.92 0-31.72 12.8-12.8 12.8-12.8 31.72 0 18.92 12.8 31.72 12.8 12.8 31.72 12.8Zm0 129.05h97.4q18.92 0 31.72-12.8 12.8-12.8 12.8-31.72 0-18.93-12.8-31.73t-31.72-12.8h-97.4q-18.92 0-31.72 12.8-12.8 12.8-12.8 31.73 0 18.92 12.8 31.72 12.8 12.8 31.72 12.8Zm-124.52 146q-44.3 0-75.15-30.85-30.85-30.85-30.85-75.15v-626.44q0-44.3 30.85-75.15 30.85-30.85 75.15-30.85h277.39q21.23 0 40.46 7.98 19.24 7.98 34.2 22.94L788.3-678.83q14.96 14.96 22.94 34.2 7.98 19.23 7.98 40.46v437.39q0 44.3-30.85 75.15-30.85 30.85-75.15 30.85H246.78Zm266.44-585.44q0 22.09 15.45 37.55 15.46 15.45 37.55 15.45h147l-200-200v147Z" /></svg>
icon:edit = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M153.78-100.78q-22.08 0-37.54-15.46t-15.46-37.54v-109.44q0-21.08 7.98-40.39 7.98-19.3 22.94-34.26l495.95-495.52q13.13-12.7 29.33-19.26 16.19-6.57 33.89-6.57 17.13 0 33.83 6.57 16.69 6.56 29.95 19.69l79.31 78.61q13.13 12.7 19.48 29.68 6.34 16.97 6.34 34.24 0 17.69-6.34 34.17-6.35 16.48-19.48 29.61L339-131.7q-14.96 14.96-34.26 22.94-19.3 7.98-40.39 7.98H153.78ZM691.56-635l56-55.43L691-747.56l-56.57 56L691.56-635Z" /></svg>
icon:exclude = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M333-427h294q22.09 0 37.54-15.46Q680-457.91 680-480t-15.46-37.54Q649.09-533 627-533H333q-22.09 0-37.54 15.46Q280-502.09 280-480t15.46 37.54Q310.91-427 333-427ZM480-60.78q-87.52 0-163.91-32.96-76.38-32.96-132.88-89.47-56.51-56.5-89.47-132.88Q60.78-392.48 60.78-480t32.96-163.91q32.96-76.38 89.47-132.88 56.5-56.51 132.88-89.47 76.39-32.96 163.91-32.96t163.91 32.96q76.38 32.96 132.88 89.47 56.51 56.5 89.47 132.88 32.96 76.39 32.96 163.91t-32.96 163.91q-32.96 76.38-89.47 132.88-56.5 56.51-132.88 89.47Q567.52-60.78 480-60.78Z" /></svg>
icon:export = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="m309.26-151.91-67.39 67.95Q225.91-68 204.26-68.5t-37.04-16.46q-14.96-15.95-15.18-37.32-.21-21.37 15.18-36.76L235.17-227h-30.78q-22.09 0-37.54-15.46-15.46-15.45-15.46-37.54t15.46-37.54Q182.3-333 204.39-333h157.87q22.09 0 37.54 15.46 15.46 15.45 15.46 37.54v157.87q0 22.09-15.46 37.54-15.45 15.46-37.54 15.46t-37.54-15.46q-15.46-15.45-15.46-37.54v-29.78Zm239 91.13q-22.08 0-37.54-15.46t-15.46-37.54V-254q0-65.83-46.59-112.41Q402.09-413 336.26-413H193.78q-22.08 0-37.54-15.46-15.46-15.45-15.46-37.54v-327.22q0-44.3 30.85-75.15 30.85-30.85 75.15-30.85h321.13l251.31 251.31v481.13q0 44.3-30.85 75.15-30.85 30.85-75.15 30.85H548.26Zm-35.04-532.44h200l-200-200 200 200-200-200v200Z" /></svg>
icon:filter = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M440-140.78q-24.35 0-41.78-17.44-17.44-17.43-17.44-41.78v-233.22L153.3-724.7q-22.91-29.6-7.04-62.06 15.87-32.46 53.74-32.46h560q37.87 0 53.74 32.46 15.87 32.46-7.04 62.06L579.22-433.22v239.44q0 22.65-15.18 37.82-15.17 15.18-37.82 15.18H440Z" /></svg>
icon:fit_height = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M246.78-60.78q-44.3 0-75.15-30.85-30.85-30.85-30.85-75.15v-626.44q0-44.3 30.85-75.15 30.85-30.85 75.15-30.85h466.44q44.3 0 75.15 30.85 30.85 30.85 30.85 75.15v626.44q0 44.3-30.85 75.15-30.85 30.85-75.15 30.85H246.78Zm166.87-521.13h132.7q17.95 0 24.93-16.24t-5.85-29.07l-47.82-47.82Q501.65-691 480-691t-37.61 15.96l-47.82 47.82q-12.83 12.83-5.85 29.07 6.98 16.24 24.93 16.24Zm103.96 297.52 47.82-47.83q12.83-12.82 5.85-29.06t-24.93-16.24h-132.7q-17.95 0-24.93 16.24t5.85 29.06l47.82 47.83q15.96 15.95 37.61 15.95t37.61-15.95Z" /></svg>
icon:fit_width = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M166.78-140.78q-44.3 0-75.15-30.85-30.85-30.85-30.85-75.15v-466.44q0-44.3 30.85-75.15 30.85-30.85 75.15-30.85h626.44q44.3 0 75.15 30.85 30.85 30.85 30.85 75.15v466.44q0 44.3-30.85 75.15-30.85 30.85-75.15 30.85H166.78Zm211.31-272.87v-132.7q0-17.95-16.24-24.93t-29.07 5.85l-47.82 47.82Q269-501.65 269-480t15.96 37.61l47.82 47.82q12.83 12.83 29.07 5.85 16.24-6.98 16.24-24.93Zm297.52-103.96-47.83-47.82q-12.82-12.83-29.06-5.85t-16.24 24.93v132.7q0 17.95 16.24 24.93t29.06-5.85l47.83-47.82q15.95-15.96 15.95-37.61t-15.95-37.61Z" /></svg>
icon:folder = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M166.78-140.78q-44.3 0-75.15-30.85-30.85-30.85-30.85-75.15v-466.44q0-44.3 30.85-75.15 30.85-30.85 75.15-30.85h181q21.09 0 40.39 7.98 19.31 7.98 34.26 22.94L480-730.74h313.22q44.3 0 75.15 30.85 30.85 30.85 30.85 75.15v377.96q0 44.3-30.85 75.15-30.85 30.85-75.15 30.85H166.78Z" /></svg>
icon:font = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M384-356.91h190.87l31.61 87.95q4.56 12.7 15.98 20.83 11.41 8.13 25.11 8.13 23.39 0 36.73-19.33 13.35-19.32 4.79-41.58L539.91-691.04q-5-12.7-16.69-20.83-11.7-8.13-25.96-8.13h-34.52q-14.26 0-25.96 8.13-11.69 8.13-16.69 20.83L269.78-298.65q-8.56 21.26 4.57 39.95Q287.48-240 310.3-240q14.13 0 25.05-7.85 10.91-7.85 15.91-20.98L384-356.91Zm25.13-76.79L478-628.3h2.87l68.3 194.6H409.13ZM166.78-60.78q-44.3 0-75.15-30.85-30.85-30.85-30.85-75.15v-626.44q0-44.3 30.85-75.15 30.85-30.85 75.15-30.85h626.44q44.3 0 75.15 30.85 30.85 30.85 30.85 75.15v626.44q0 44.3-30.85 75.15-30.85 30.85-75.15 30.85H166.78Z" /></svg>
icon:import = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M206.78-100.78q-44.3 0-75.15-30.85-30.85-30.85-30.85-75.15v-52.31q0-20.39 14.33-35 14.32-14.61 35.28-14.61 20.39 0 35 14.61t14.61 35V-200h560v-483.39H200v59.08q0 20.4-14.33 35-14.32 14.61-35.28 14.61-20.39 0-35-14.61-14.61-14.6-14.61-35v-128.91q0-44.3 30.85-75.15 30.85-30.85 75.15-30.85h546.44q44.3 0 75.15 30.85 30.85 30.85 30.85 75.15v546.44q0 44.3-30.85 75.15-30.85 30.85-75.15 30.85H206.78ZM455.91-388.7H153.78q-22.08 0-37.54-15.45-15.46-15.46-15.46-37.55 0-22.08 15.46-37.54t37.54-15.46h302.13l-33.52-33.95q-14.96-14.96-14.89-36.55.06-21.58 15.46-37.54 14.95-15.52 37.04-15.52t37.61 15.52L621.04-479.3Q637-463.35 637-441.7q0 21.66-15.96 37.61l-124 124q-14.95 14.96-36.82 15.18-21.87.21-37.83-15.74-14.96-14.96-14.96-37.05 0-22.08 14.96-37.04l33.52-33.96Z" /></svg>
icon:language = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="m600.74-159.04-22.13 63.65q-5.13 15.52-18.81 25.06-13.67 9.55-30.19 9.55-26.78 0-42.96-21.87-16.17-21.87-6.48-48.09l144.09-398.04q6.7-17.22 21.5-27.61t33.02-10.39h41.87q18.22 0 33.02 10.39 14.81 10.39 21.51 27.61l144.08 397.91q9.7 25.78-6.26 47.94-15.96 22.15-43.3 22.15-16.96 0-30.7-9.55-13.74-9.54-19.87-26.06l-21.56-62.65H600.74Zm-252.31-213.7L188-212.74q-15.52 15.52-36.83 15.46-21.3-.07-37.26-16.02-15.52-15.53-15.52-37.33 0-21.8 15.52-37.33l161-161q-40.65-41.78-70.56-87.06-29.92-45.28-51.66-97.2h116.79q15.48 29.96 34.91 56.13 19.44 26.18 45.17 53.48 31.87-34.13 64.83-88.83 32.96-54.69 49.26-100.78H70.39q-22.09 0-37.54-15.45-15.46-15.46-15.46-37.55 0-22.08 15.46-37.54 15.45-15.46 37.54-15.46h227v-27q0-22.08 15.46-37.54 15.45-15.46 37.54-15.46t37.54 15.46q15.46 15.46 15.46 37.54v27h227q22.09 0 37.54 15.46 15.46 15.46 15.46 37.54 0 22.09-15.46 37.55-15.45 15.45-37.54 15.45H575.3q-22.13 69.18-64.97 144.61-42.85 75.44-87.24 121.09l68.87 70.3-39.61 110.83-103.92-106.35Zm285.22 117.7h130.44l-65.22-189.31-65.22 189.31Z" /></svg>
icon:lines = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M150.96-180.78q-20.96 0-35.57-14.61t-14.61-35.57q0-20.95 14.61-35.56 14.61-14.61 35.57-14.61h658.08q20.96 0 35.57 14.61t14.61 35.56q0 20.96-14.61 35.57t-35.57 14.61H150.96Zm0-166.22q-20.96 0-35.57-14.61t-14.61-35.56q0-20.96 14.61-35.57t35.57-14.61h658.08q20.96 0 35.57 14.61t14.61 35.57q0 20.95-14.61 35.56Q830-347 809.04-347H150.96Zm0-165.65q-20.96 0-35.57-14.61t-14.61-35.57q0-20.95 14.61-35.56Q130-613 150.96-613h658.08q20.96 0 35.57 14.61t14.61 35.56q0 20.96-14.61 35.57t-35.57 14.61H150.96Zm0-166.22q-20.96 0-35.57-14.61t-14.61-35.56q0-20.96 14.61-35.57t35.57-14.61h658.08q20.96 0 35.57 14.61t14.61 35.57q0 20.95-14.61 35.56-14.61 14.61-35.57 14.61H150.96Z" /></svg>
icon:list = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M416.96-187q-22.09 0-37.55-15.46-15.45-15.45-15.45-37.54t15.45-37.54Q394.87-293 416.96-293h389.26q22.08 0 37.54 15.46 15.46 15.45 15.46 37.54t-15.46 37.54Q828.3-187 806.22-187H416.96Zm0-240q-22.09 0-37.55-15.46-15.45-15.45-15.45-37.54t15.45-37.54Q394.87-533 416.96-533h389.26q22.08 0 37.54 15.46 15.46 15.45 15.46 37.54t-15.46 37.54Q828.3-427 806.22-427H416.96Zm0-240q-22.09 0-37.55-15.46-15.45-15.45-15.45-37.54t15.45-37.54Q394.87-773 416.96-773h389.26q22.08 0 37.54 15.46 15.46 15.45 15.46 37.54t-15.46 37.54Q828.3-667 806.22-667H416.96ZM191.95-148.13q-37.95 0-64.84-27.03-26.89-27.02-26.89-64.98 0-37.95 27.02-64.84 27.03-26.89 64.98-26.89t64.85 27.03q26.89 27.02 26.89 64.98 0 37.95-27.03 64.84t-64.98 26.89Zm0-240q-37.95 0-64.84-27.03-26.89-27.02-26.89-64.98 0-37.95 27.02-64.84 27.03-26.89 64.98-26.89t64.85 27.03q26.89 27.02 26.89 64.98 0 37.95-27.03 64.84t-64.98 26.89Zm0-240q-37.95 0-64.84-27.03-26.89-27.02-26.89-64.98 0-37.95 27.02-64.84 27.03-26.89 64.98-26.89t64.85 27.03q26.89 27.02 26.89 64.98 0 37.95-27.03 64.84t-64.98 26.89Z" /></svg>
icon:margin_bottom = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M193.78-100.78q-22.08 0-37.54-15.46t-15.46-37.54q0-22.09 15.46-37.55 15.46-15.45 37.54-15.45h572.44q22.08 0 37.54 15.45 15.46 15.46 15.46 37.55 0 22.08-15.46 37.54t-37.54 15.46H193.78ZM480-306.61q-10.26 0-20.09-3.91-9.82-3.92-17.52-11.61L298.96-465.57Q284-480.52 284-502.61t14.96-37.04q14.95-14.96 37.04-14.96t37.04 14.96L427-485.7v-320.52q0-22.08 15.46-37.54 15.45-15.46 37.54-15.46t37.54 15.46Q533-828.3 533-806.22v320.52l53.96-53.95q14.95-14.96 37.04-14.96t37.04 14.96Q676-524.7 676-502.61t-14.96 37.04L517.61-322.13q-7.7 7.69-17.52 11.61-9.83 3.91-20.09 3.91Z" /></svg>
icon:margin_left = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M113.78-227q-22.08 0-37.54-15.46Q60.78-257.91 60.78-280v-400q0-22.09 15.46-37.54Q91.7-733 113.78-733q22.09 0 37.55 15.46 15.45 15.45 15.45 37.54v400q0 22.09-15.45 37.54Q135.87-227 113.78-227Zm335.18-200 93.52 92.96q15.96 15.95 15.67 37.82-.28 21.87-16.24 37.83-15.95 14.96-37.54 14.67-21.59-.28-36.54-15.24L284.39-442.39q-7.69-7.7-11.61-17.52-3.91-9.83-3.91-20.09t3.91-20.09q3.92-9.82 11.61-17.52l183.44-183.43Q482.78-716 504.87-716t37.04 14.96q15.4 15.39 15.18 37.26-.22 21.87-15.18 36.82L448.96-533h397.26q22.08 0 37.54 15.46 15.46 15.45 15.46 37.54t-15.46 37.54Q868.3-427 846.22-427H448.96Z" /></svg>
icon:margin_right = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M846.22-227q-22.09 0-37.55-15.46-15.45-15.45-15.45-37.54v-400q0-22.09 15.45-37.54Q824.13-733 846.22-733q22.08 0 37.54 15.46 15.46 15.45 15.46 37.54v400q0 22.09-15.46 37.54Q868.3-227 846.22-227ZM511.04-427H113.78q-22.08 0-37.54-15.46Q60.78-457.91 60.78-480t15.46-37.54Q91.7-533 113.78-533h397.26l-92.95-93.96q-14.96-14.95-15.18-36.82-.22-21.87 15.18-37.26Q433.04-716 455.13-716t37.04 14.96l183.44 183.43q7.69 7.7 11.61 17.52 3.91 9.83 3.91 20.09t-3.91 20.09q-3.92 9.82-11.61 17.52L492.17-258.96q-14.95 14.96-36.54 15.24-21.59.29-37.54-14.67-15.96-15.96-16.24-37.83-.29-21.87 15.67-37.82L511.04-427Z" /></svg>
icon:margin_top = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M193.78-753.22q-22.08 0-37.54-15.45-15.46-15.46-15.46-37.55 0-22.08 15.46-37.54t37.54-15.46h572.44q22.08 0 37.54 15.46t15.46 37.54q0 22.09-15.46 37.55-15.46 15.45-37.54 15.45H193.78ZM480-100.78q-22.09 0-37.54-15.46Q427-131.7 427-153.78V-474.3l-53.96 53.95q-14.95 14.96-37.04 14.96t-37.04-14.96Q284-435.3 284-457.39t14.96-37.04l143.43-143.44q7.7-7.69 17.52-11.61 9.83-3.91 20.09-3.91t20.09 3.91q9.82 3.92 17.52 11.61l143.43 143.44Q676-479.48 676-457.39t-14.96 37.04q-14.95 14.96-37.04 14.96t-37.04-14.96L533-474.3v320.52q0 22.08-15.46 37.54-15.45 15.46-37.54 15.46Z" /></svg>
icon:maximise = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M206.78-206.78h74.92q22.08 0 37.54 15.45 15.46 15.46 15.46 37.55 0 22.08-15.46 37.54t-37.54 15.46H153.78q-22.08 0-37.54-15.46t-15.46-37.54V-281.7q0-22.08 15.46-37.54t37.54-15.46q22.09 0 37.55 15.46 15.45 15.46 15.45 37.54v74.92Zm546.44 0v-74.92q0-22.08 15.45-37.54 15.46-15.46 37.55-15.46 22.08 0 37.54 15.46t15.46 37.54v127.92q0 22.08-15.46 37.54t-37.54 15.46H678.87q-22.09 0-37.54-15.46-15.46-15.46-15.46-37.54 0-22.09 15.46-37.55 15.45-15.45 37.54-15.45h74.35ZM206.78-753.22v74.35q0 22.09-15.45 37.54-15.46 15.46-37.55 15.46-22.08 0-37.54-15.46-15.46-15.45-15.46-37.54v-127.35q0-22.08 15.46-37.54t37.54-15.46H281.7q22.08 0 37.54 15.46t15.46 37.54q0 22.09-15.46 37.55-15.46 15.45-37.54 15.45h-74.92Zm546.44 0h-74.35q-22.09 0-37.54-15.45-15.46-15.46-15.46-37.55 0-22.08 15.46-37.54 15.45-15.46 37.54-15.46h127.35q22.08 0 37.54 15.46t15.46 37.54v127.35q0 22.09-15.46 37.54-15.46 15.46-37.54 15.46-22.09 0-37.55-15.46-15.45-15.45-15.45-37.54v-74.35Z" /></svg>
icon:minimise = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M228.7-228.7h-74.92q-22.08 0-37.54-15.45-15.46-15.46-15.46-37.55 0-22.08 15.46-37.54t37.54-15.46H281.7q22.08 0 37.54 15.46t15.46 37.54v127.92q0 22.08-15.46 37.54t-37.54 15.46q-22.09 0-37.55-15.46-15.45-15.46-15.45-37.54v-74.92Zm503.17 0v74.92q0 22.08-15.46 37.54-15.45 15.46-37.54 15.46t-37.54-15.46q-15.46-15.46-15.46-37.54V-281.7q0-22.08 15.46-37.54 15.45-15.46 37.54-15.46h127.35q22.08 0 37.54 15.46t15.46 37.54q0 22.09-15.46 37.55-15.46 15.45-37.54 15.45h-74.35ZM228.7-731.87v-74.35q0-22.08 15.45-37.54 15.46-15.46 37.55-15.46 22.08 0 37.54 15.46t15.46 37.54v127.35q0 22.09-15.46 37.54-15.46 15.46-37.54 15.46H153.78q-22.08 0-37.54-15.46-15.46-15.45-15.46-37.54t15.46-37.54q15.46-15.46 37.54-15.46h74.92Zm503.17 0h74.35q22.08 0 37.54 15.46 15.46 15.45 15.46 37.54t-15.46 37.54q-15.46 15.46-37.54 15.46H678.87q-22.09 0-37.54-15.46-15.46-15.45-15.46-37.54v-127.35q0-22.08 15.46-37.54 15.45-15.46 37.54-15.46t37.54 15.46q15.46 15.46 15.46 37.54v74.35Z" /></svg>
icon:more_arrow = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M413.78-285.96q-10.26 0-18.52-7.47-8.26-7.48-8.26-19.31v-334.52q0-11.83 8.26-19.31 8.26-7.47 18.52-7.47 3.13 0 18.52 8.26l158 158q6.14 6.13 8.7 13.11 2.57 6.97 2.57 14.67T599-465.33q-2.56 6.98-8.7 13.11l-158 158q-4.13 4.13-8.76 6.2-4.63 2.06-9.76 2.06Z" /></svg>
icon:more_vertical = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M480.28-134q-36.67 0-62.72-25.99-26.04-25.99-26.04-62.49 0-36.73 25.99-62.88 25.99-26.16 62.49-26.16 36.96 0 62.72 26.08 25.76 26.09 25.76 62.72 0 36.63-25.76 62.68Q516.96-134 480.28-134Zm0-257.52q-36.67 0-62.72-25.99-26.04-25.99-26.04-62.49 0-36.96 25.99-62.72 25.99-25.76 62.49-25.76 36.96 0 62.72 25.76 25.76 25.76 25.76 62.44 0 36.67-25.76 62.72-25.76 26.04-62.44 26.04Zm0-256.96q-36.67 0-62.72-26.2-26.04-26.21-26.04-63 0-36.8 25.99-62.56Q443.5-826 480-826q36.96 0 62.72 25.76 25.76 25.76 25.76 62.56 0 36.79-25.76 63-25.76 26.2-62.44 26.2Z" /></svg>
icon:noncheckable = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M328.48-431.52h303.04q20.39 0 34.44-14.04Q680-459.61 680-480q0-20.39-14.04-34.44-14.05-14.04-34.44-14.04H328.48q-20.39 0-34.44 14.04Q280-500.39 280-480q0 20.39 14.04 34.44 14.05 14.04 34.44 14.04Zm-121.7 330.74q-44.3 0-75.15-30.85-30.85-30.85-30.85-75.15v-546.44q0-44.3 30.85-75.15 30.85-30.85 75.15-30.85h546.44q44.3 0 75.15 30.85 30.85 30.85 30.85 75.15v546.44q0 44.3-30.85 75.15-30.85 30.85-75.15 30.85H206.78Z" /></svg>
icon:open = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M206.78-100.78q-44.3 0-75.15-30.85-30.85-30.85-30.85-75.15v-546.44q0-44.3 30.85-75.15 30.85-30.85 75.15-30.85H427q22.09 0 37.54 15.46Q480-828.3 480-806.22q0 22.09-15.46 37.55-15.45 15.45-37.54 15.45H206.78v546.44h546.44V-427q0-22.09 15.45-37.54Q784.13-480 806.22-480q22.08 0 37.54 15.46 15.46 15.45 15.46 37.54v220.22q0 44.3-30.85 75.15-30.85 30.85-75.15 30.85H206.78Zm546.44-578.91L442-368.48q-14.96 14.96-36.48 14.68-21.52-.29-36.48-15.24-14.95-14.96-14.95-36.77 0-21.8 14.95-36.76l310.65-310.65H613q-22.09 0-37.54-15.45Q560-784.13 560-806.22q0-22.08 15.46-37.54 15.45-15.46 37.54-15.46h193.22q22.08 0 37.54 15.46t15.46 37.54V-613q0 22.09-15.46 37.54Q828.3-560 806.22-560q-22.09 0-37.55-15.46-15.45-15.45-15.45-37.54v-66.69Z" /></svg>
icon:panel = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M206.78-100.78q-44.3 0-75.15-30.85-30.85-30.85-30.85-75.15v-546.44q0-44.3 30.85-75.15 30.85-30.85 75.15-30.85h546.44q44.3 0 75.15 30.85 30.85 30.85 30.85 75.15v546.44q0 44.3-30.85 75.15-30.85 30.85-75.15 30.85H206.78Zm0-320.7h546.44v-331.74H206.78v331.74Z" /></svg>
icon:pin = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M659.22-767.35v267.57l64.61 64.6q7.69 7.7 11.54 17.18 3.85 9.48 3.85 20.3v31.48q0 22.09-15.46 37.55-15.46 15.45-37.54 15.45H533v215.65q0 10.83-3.85 20.31-3.85 9.48-11.54 17.17L498.52-41q-7.69 7.7-18.52 7.7-10.83 0-18.52-7.7l-19.09-19.09q-7.69-7.69-11.54-17.17Q427-86.74 427-97.57v-215.65H273.78q-22.08 0-37.54-15.45-15.46-15.46-15.46-37.55v-31.48q0-10.82 3.85-20.3t11.54-17.18l64.61-64.6v-267.57q-17-3.95-28.5-18-11.5-14.04-11.5-32.74 0-22.09 15.46-37.54 15.46-15.46 37.54-15.46h332.44q22.08 0 37.54 15.46 15.46 15.45 15.46 37.54 0 18.7-11.5 32.74-11.5 14.05-28.5 18Z" /></svg>
icon:project_copy = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M123.39-100.78q-43.72 0-74.86-31.14t-31.14-74.86v-444.96q0-22.08 15.46-37.54 15.45-15.46 37.54-15.46t37.54 15.46q15.46 15.46 15.46 37.54v444.96h642.83q22.08 0 37.54 15.45 15.46 15.46 15.46 37.55 0 22.08-15.46 37.54t-37.54 15.46H123.39Zm186-186q-43.72 0-74.86-31.14t-31.14-74.86v-400.44q0-43.72 31.14-74.86t74.86-31.14h141q21.23 0 40.46 7.98 19.24 7.98 34.19 22.94l49.09 49.08h262.48q43.72 0 74.86 31.14t31.14 74.86v320.44q0 43.72-31.14 74.86t-74.86 31.14H309.39Z" /></svg>
icon:quote = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="m241.09-296.04 55.73-95.48q-67.69-4.52-112.71-53.5Q139.09-494 139.09-560q0-71.09 49.82-120.63 49.83-49.54 120.92-49.54 71.08 0 120.63 49.54Q480-631.09 480-560q0 23-5.22 42.78-5.21 19.79-15.08 37.22L325.35-247q-6.7 11.26-17.68 17.89-10.97 6.63-24.24 6.63-28.08 0-42.41-24.52-14.33-24.52.07-49.04Zm380.34.56 55.74-96.04q-67.69-4.52-112.43-53.5Q520-494 520-560q0-71.09 49.54-120.63 49.55-49.54 120.63-49.54 71.09 0 120.92 49.54 49.82 49.54 49.82 120.63 0 23-5.21 42.78-5.22 19.79-15.09 37.22L705.7-247q-6.7 11.26-17.68 17.89-10.98 6.63-24.24 6.63-28.08 0-42.13-24.24-14.04-24.24-.22-48.76Z" /></svg>
icon:refresh = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M477.74-140.78q-141.35 0-240.28-98.94-98.94-98.93-98.94-240.28t98.94-240.28q98.93-98.94 240.28-98.94 74.09 0 140.76 30.2 66.67 30.19 113.94 87.15v-72.83q0-18.92 12.8-31.72 12.8-12.8 31.72-12.8 18.92 0 31.72 12.8 12.8 12.8 12.8 31.72v210.18q0 22.09-15.46 37.54-15.45 15.46-37.54 15.46H557.17q-18.68 0-31.32-12.8-12.63-12.8-12.63-31.72 0-18.68 12.8-31.32T557.74-600h120.09q-32-52.61-85.01-82.91-53-30.31-115.08-30.31-97.17 0-165.2 68.02-68.02 68.03-68.02 165.2 0 97.17 68.02 165.2 68.03 68.02 165.2 68.02 61.78 0 114.04-30.26 52.26-30.26 83.83-80.92 11.18-17.48 31.43-24.35 20.26-6.86 39.64.4 20.67 7.26 29.93 26.65 9.26 19.39-1 36.78-44.39 80.57-123.5 129.13-79.11 48.57-174.37 48.57Z" /></svg>
icon:remove = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M233.78-427q-22.08 0-37.54-15.46-15.46-15.45-15.46-37.54t15.46-37.54Q211.7-533 233.78-533h492.44q22.08 0 37.54 15.46 15.46 15.45 15.46 37.54t-15.46 37.54Q748.3-427 726.22-427H233.78Z" /></svg>
icon:revert = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M479.43-100.78q-130.22 0-230.48-77.35-100.25-77.35-133.78-198.61-5.69-19.52 7.42-35.98 13.11-16.45 35.35-19.58 20.93-3.13 38.73 7.41 17.81 10.54 24.5 30.5 26.83 83.22 97.68 135.41 70.85 52.2 160.58 52.2 114.17 0 193.7-79.53 79.52-79.53 79.52-193.7 0-114.16-79.52-193.69-79.53-79.52-193.7-79.52-62.21 0-117.69 27.2-55.48 27.19-94.78 76.41h49.65q18.92 0 31.72 12.8 12.8 12.8 12.8 31.72 0 18.7-12.8 31.89-12.8 13.2-31.72 13.2H158.87q-22.09 0-37.54-15.46-15.46-15.45-15.46-37.54v-157.17q0-18.69 12.8-31.32 12.8-12.64 31.72-12.64 18.68 0 31.32 12.64 12.64 12.63 12.64 31.32v41.56q53.82-62.87 128.05-96.74 74.23-33.87 157.03-33.87 78.91 0 147.83 29.91 68.91 29.92 120.24 81.24 51.33 51.33 81.24 120.26 29.91 68.92 29.91 147.84 0 78.93-29.91 147.82-29.91 68.89-81.24 120.22-51.33 51.32-120.24 81.24-68.92 29.91-147.83 29.91Zm.24-290.74q-36.63 0-62.67-25.97t-26.04-62.43q0-36.47 25.99-62.52 25.99-26.04 62.48-26.04 36.74 0 62.89 25.76 26.16 25.76 26.16 62.72 0 36.96-26.09 62.72-26.08 25.76-62.72 25.76Z" /></svg>
icon:settings = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M422.26-60.78q-29.83 0-51.3-19.41-21.48-19.42-25.48-48.24l-9-66.57q-8.48-3.3-16.31-8.04-7.82-4.74-15.43-9.92l-61.44 26q-27.26 11.57-55.08 2.29-27.83-9.29-42.96-35.11L87.52-321.57q-15.13-25.26-8.85-53.8 6.29-28.54 29.55-46.67l52.43-40q-.43-4.74-.43-8.98v-17.96q0-4.24.43-8.98l-52.43-39.43q-23.83-18.13-29.83-46.67-6-28.55 9.13-54.37l57.74-101.22q15.13-25.26 42.67-34.83 27.55-9.56 54.81 2l63.13 26q7.61-5.17 15.09-9.63 7.47-4.46 15.52-7.76l9-67.13q4-29.39 25.48-48.81 21.47-19.41 51.3-19.41h115.48q29.83 0 51.3 19.41 21.48 19.42 25.48 48.81l9 67.13q8.48 3.3 16.31 7.76 7.82 4.46 15.43 9.63l61.44-26q27.26-11.56 55.08-2 27.83 9.57 42.96 34.83l57.74 101.22q15.13 25.82 9.13 54.37-6 28.54-29.83 46.67l-53 39.43q.44 4.74.44 8.98v8.98q0 4.74-.28 8.98-.29 4.24-1.16 8.98l53 39.43q23.83 18.13 29.83 46.67 6 28.55-9.13 54.37l-58.74 101.79q-15.13 25.26-42.67 34.82-27.55 9.57-54.81-2l-61.13-26q-7.61 5.18-15.09 9.92-7.47 4.74-15.52 8.04l-9 66.57q-4 28.82-25.48 48.24-21.47 19.41-51.3 19.41H422.26ZM480.3-340q58 0 99-41t41-99q0-58-41-99t-99-41q-58.43 0-99.21 41-40.79 41-40.79 99t40.79 99q40.78 41 99.21 41Z" /></svg>
icon:star = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M480-247.52 312.3-146.39q-14.95 9.26-30.91 7.98-15.96-1.28-27.78-10.55-11.83-9.26-18.24-23.43-6.41-14.17-2.28-31.13l44.56-190.7-148.69-128.69q-13.4-11.83-16.74-27-3.35-15.18 1.21-29.57 4.57-14.39 16.24-24.22 11.68-9.82 29.63-11.82l195.7-17 76.13-180.26q6.7-16.53 20.3-24.22 13.61-7.7 28.57-7.7t28.57 7.7q13.6 7.69 20.3 24.22L605-632.52l195.7 17q17.95 2 29.63 11.82 11.67 9.83 16.24 24.22 4.56 14.39 1.21 29.57-3.34 15.17-16.74 27L682.35-394.22l44.56 190.7q4.13 16.96-2.28 31.13-6.41 14.17-18.24 23.43-11.82 9.27-27.78 10.55-15.96 1.28-30.91-7.98L480-247.52Z" /></svg>
icon:stats = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="m100.96-187.17 203.95-203.96q30.92-30.91 75.09-30.63 44.17.28 75.09 31.2l83.78 83.78 246.96-278.83q14.95-16.96 37.54-17.52 22.59-.57 39.11 15.39 14.96 14.39 15.74 35.54.78 21.16-13.61 37.11L615.22-233.26q-30.35 34.48-75.94 35.98-45.58 1.5-77.93-30.85L380-309.48 179.04-108.52Q162.09-91.56 140-91.85q-22.09-.28-39.04-17.24-16.4-16.95-16.4-39.32t16.4-38.76Zm0-262.05 203.95-203.95q30.92-30.92 75.09-31.2 44.17-.28 75.09 31.2l83.78 83.78 246.96-278.83q14.95-16.96 37.54-17.52 22.59-.57 39.11 15.39 14.96 14.39 15.74 35.55.78 21.15-13.61 37.1L615.22-495.87q-30.35 34.48-75.94 35.98-45.58 1.5-77.93-30.85L380-572.09 179.04-371.13q-16.39 16.39-38.76 16.67-22.37.29-39.32-16.67-16.4-16.39-16.4-39.04 0-22.66 16.4-39.05Z" /></svg>
icon:text = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M191.52-158.17q-20.96 0-35.85-14.89t-14.89-35.85q0-20.96 14.89-35.57t35.85-14.61h336.39q20.39.57 35 14.9 14.61 14.32 14.61 35.84 0 20.96-14.61 35.57t-35.56 14.61H191.52Zm-.56-179.79q-20.96 0-35.57-14.6-14.61-14.61-14.61-35.57t14.61-35.57q14.61-14.6 35.57-14.6h578.08q20.96 0 35.57 14.6 14.61 14.61 14.61 35.57t-14.61 35.57q-14.61 14.6-35.57 14.6H190.96Zm0-178.65q-20.96 0-35.57-14.61t-14.61-35.56q0-20.96 14.61-35.57t35.57-14.61h578.08q20.96 0 35.57 14.61t14.61 35.57q0 20.95-14.61 35.56-14.61 14.61-35.57 14.61H190.96Zm2.82-179.22q-22.08 0-37.54-15.45-15.46-15.46-15.46-37.55 0-22.08 15.46-37.54t37.54-15.46h572.44q22.08 0 37.54 15.46t15.46 37.54q0 22.09-15.46 37.55-15.46 15.45-37.54 15.45H193.78Z" /></svg>
icon:timer_off = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M480-45.52q-78.52 0-147.41-29.91-68.89-29.92-120.44-81.18-51.54-51.26-81.46-120.15-29.91-68.89-29.91-147.41 0-61.13 18.5-118.33 18.5-57.2 53.5-105.02l-92.17-92.17q-12.7-12.7-12.41-30.83.28-18.13 12.97-30.83 12.7-12.69 30.83-12.69t30.83 12.69L820-124.74q12.7 12.7 12.7 30.83T820-63.09q-12.7 12.7-31.11 12.7t-31.11-12.7l-55-54.43q-48 35-104.91 53.5T480-45.52ZM390.96-840q-20.4 0-34.44-14.33-14.04-14.32-14.04-34.71 0-20.4 14.32-34.44 14.33-14.04 34.72-14.04h177.52q20.4 0 34.44 14.04t14.04 34.44q0 20.39-14.04 34.71Q589.44-840 569.04-840H390.96Zm359.3 521.09L528.48-540.7v-45.17q0-17-11.5-28.5t-28.5-11.5q-9.44 0-17.65 3.72-8.22 3.72-13.22 10.59l-83.31-83.31q-24.21-24.22-16.95-57.41 7.26-33.2 39.17-41.2 20.05-5.74 41.02-7.82 20.98-2.09 42.46-2.09 63.39 0 122.59 20 59.19 20 109.63 58.56l28.56-28.56q14.39-14.39 34.5-14.39t34.5 14.39q14.4 14.39 14.4 34.5t-14.4 34.5l-28.56 28.56q38 49.87 58 109.07 20 59.2 20 122.59 0 21.47-2.37 41.95-2.37 20.48-7.54 40.96-7.44 31.91-40.35 39.74-32.92 7.82-58.7-17.39Z" /></svg>
icon:timer = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M390.96-840q-20.61 0-34.55-14.33-13.93-14.32-13.93-34.71 0-20.4 13.93-34.44 13.94-14.04 34.55-14.04h178.08q20.61 0 34.55 13.93 13.93 13.94 13.93 34.55 0 20.39-13.93 34.71Q589.65-840 569.04-840H390.96ZM480-384.17q20.6 0 34.54-13.94 13.94-13.94 13.94-34.54v-144.74q0-20.6-13.94-34.54-13.94-13.94-34.54-13.94t-34.54 13.94q-13.94 13.94-13.94 34.54v144.74q0 20.6 13.94 34.54 13.94 13.94 34.54 13.94Zm0 338.65q-78.52 0-147.42-29.85-68.89-29.85-120.43-81.18-51.54-51.32-81.46-120.21-29.91-68.89-29.91-147.41 0-78.53 29.97-147.39 29.96-68.87 81.48-120.38 51.52-51.52 120.38-81.49 68.87-29.96 147.39-29.96 63.13 0 122.39 20t109.83 58.56l28.56-28.56q14.39-14.39 34.5-14.39t34.5 14.39q14.4 14.39 14.4 34.5t-14.4 34.5l-28.56 28.56q38.56 50.57 58.28 109.55t19.72 122.11q0 78.52-29.91 147.41-29.92 68.89-81.46 120.21-51.54 51.33-120.43 81.18Q558.52-45.52 480-45.52Z" /></svg>
icon:unchecked = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="m480-417.78 113.17 113.17q12.7 12.7 31.11 12.41 18.42-.28 31.11-12.97 12.7-12.7 12.7-31.11 0-18.42-12.7-31.11L542.22-480l113.17-113.17q12.7-12.7 12.7-31.11 0-18.42-12.7-31.11-12.69-12.7-31.11-12.7-18.41 0-31.11 12.7L480-542.22 366.83-655.39q-12.7-12.7-30.83-12.7t-30.83 12.7q-12.69 12.69-12.69 31.11 0 18.41 12.69 31.11L417.78-480 304.61-366.83q-12.7 12.7-12.41 30.83.28 18.13 12.97 30.83 12.7 12.69 31.11 12.69 18.42 0 31.11-12.69L480-417.78Zm-273.22 317q-44.3 0-75.15-30.85-30.85-30.85-30.85-75.15v-546.44q0-44.3 30.85-75.15 30.85-30.85 75.15-30.85h546.44q44.3 0 75.15 30.85 30.85 30.85 30.85 75.15v546.44q0 44.3-30.85 75.15-30.85 30.85-75.15 30.85H206.78Z" /></svg>
icon:view = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M480-320q75 0 127.5-52.5T660-500q0-75-52.5-127.5T480-680q-75 0-127.5 52.5T300-500q0 75 52.5 127.5T480-320Zm.1-83.87q-40.01 0-68.12-28.01-28.11-28.01-28.11-68.02 0-40.01 28.01-68.12 28.01-28.11 68.02-28.11 40.01 0 68.12 28.01 28.11 28.01 28.11 68.02 0 40.01-28.01 68.12-28.01 28.11-68.02 28.11Zm-.1 221.39q-137.39 0-251.28-73.13Q114.83-328.74 49.7-450.13q-6.7-11.83-9.77-24.43-3.06-12.61-3.06-25.44 0-12.83 3.06-25.44 3.07-12.6 9.77-24.43 65.13-121.39 179.02-194.52Q342.61-817.52 480-817.52t251.28 73.13q113.89 73.13 179.02 194.52 6.7 11.83 9.77 24.43 3.06 12.61 3.06 25.44 0 12.83-3.06 25.44-3.07 12.6-9.77 24.43-65.13 121.39-179.02 194.52Q617.39-182.48 480-182.48Z" /></svg>

View File

@@ -1,7 +1,7 @@
# This file is automatically generated. Do not edit.
# Meta
meta:name = Material Symbols - Filled Medium
meta:name = Material Symbols - Filled
meta:author = Google Inc
meta:license = Apache 2.0
@@ -31,12 +31,14 @@ icon:prj_note = <svg xmlns="http://www.w3.org/2000/svg" height="128" view
icon:fmt_bold = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M352-200q-33 0-56.5-23.5T272-280v-400q0-33 23.5-56.5T352-760h141q65 0 120 40t55 111q0 51-23 78.5T602-491q25 11 55.5 41t30.5 90q0 89-65 124.5T501-200H352Zm41-112h104q48 0 58.5-24.5T566-372q0-11-10.5-35.5T494-432H393v120Zm0-228h93q33 0 48-17t15-38q0-24-17-39t-44-15h-95v109Z" /></svg>
icon:fmt_italic = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M250-200q-21 0-35.5-14.5T200-250q0-21 14.5-35.5T250-300h110l120-360H370q-21 0-35.5-14.5T320-710q0-21 14.5-35.5T370-760h300q21 0 35.5 14.5T720-710q0 21-14.5 35.5T670-660h-90L460-300h90q21 0 35.5 14.5T600-250q0 21-14.5 35.5T550-200H250Z" /></svg>
icon:fmt_mark = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M160 0q-33 0-56.5-23.5T80-80q0-33 23.5-56.5T160-160h640q33 0 56.5 23.5T880-80q0 33-23.5 56.5T800 0H160Zm264-640 216 217-160 160q-24 24-56.5 24T367-263l-5 4q-11 9-24 14t-27 5H189q-14 0-19.5-12t4.5-22l92-91q-24-24-25-57.5t23-57.5l160-160Zm56-57 160-159q24-24 56.5-24t56.5 24l104 103q24 24 24 56.5T857-640L697-480 480-697Z" /></svg>
icon:fmt_size = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M560-680H420q-25 0-42.5-17.5T360-740q0-25 17.5-42.5T420-800h400q25 0 42.5 17.5T880-740q0 25-17.5 42.5T820-680H680v460q0 25-17.5 42.5T620-160q-25 0-42.5-17.5T560-220v-460ZM200-480h-60q-25 0-42.5-17.5T80-540q0-25 17.5-42.5T140-600h240q25 0 42.5 17.5T440-540q0 25-17.5 42.5T380-480h-60v260q0 25-17.5 42.5T260-160q-25 0-42.5-17.5T200-220v-260Z" /></svg>
icon:fmt_strike = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M486-160q-63 0-116.5-33.5T285-283q-9-16-2.5-33.5T306-343q18-10 37.5-3.5T374-322q18 30 48.5 48t65.5 18q44 0 76.5-27t32.5-69q0-20 14-34t34-14q20 0 34.5 14t14.5 34v12q0 79-62.5 129.5T486-160ZM120-480q-17 0-28.5-11.5T80-520q0-17 11.5-28.5T120-560h720q17 0 28.5 11.5T880-520q0 17-11.5 28.5T840-480H120Zm208-165q-17-10-23-29.5t4-36.5q25-47 72-71t101-24q48 0 90.5 20t71.5 58q11 14 7 32t-19 29q-17 12-36.5 9T562-677q-15-17-35-25t-43-8q-27 0-52 11t-38 34q-10 18-29.5 24t-36.5-4Z" /></svg>
icon:fmt_subscript = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M800-160q-17 0-28.5-11.5T760-200v-40q0-17 11.5-28.5T800-280h80v-40H780q-8 0-14-6t-6-14q0-8 6-14t14-6h100q17 0 28.5 11.5T920-320v40q0 17-11.5 28.5T880-240h-80v40h100q8 0 14 6t6 14q0 8-6 14t-14 6H800Zm-483-80q-27 0-39.5-23t1.5-46l141-222-128-201q-14-22-1.5-45t38.5-23q12 0 22 5.5t16 15.5l111 179h4l110-179q6-10 16.5-15.5T630-800q27 0 39 23t-2 46L539-531l142 222q14 23 1 46t-39 23q-12 0-22-5.5T605-261L482-457h-4L355-261q-6 10-16.5 15.5T317-240Z" /></svg>
icon:fmt_superscript = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M800-600q-17 0-28.5-11.5T760-640v-40q0-17 11.5-28.5T800-720h80v-40H780q-8 0-14-6t-6-14q0-8 6-14t14-6h100q17 0 28.5 11.5T920-760v40q0 17-11.5 28.5T880-680h-80v40h100q8 0 14 6t6 14q0 8-6 14t-14 6H800ZM317-160q-27 0-39.5-23t1.5-46l141-222-128-201q-14-22-1.5-45t38.5-23q12 0 22 5.5t16 15.5l111 179h4l110-179q6-10 16.5-15.5T630-720q27 0 39 23t-2 46L539-451l142 222q14 23 1 46t-39 23q-12 0-22-5.5T605-181L482-377h-4L355-181q-6 10-16.5 15.5T317-160Z" /></svg>
icon:fmt_underline = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M240-120q-17 0-28.5-11.5T200-160q0-17 11.5-28.5T240-200h480q17 0 28.5 11.5T760-160q0 17-11.5 28.5T720-120H240Zm240-160q-101 0-157-63t-56-167v-279q0-21 15.5-36t36.5-15q21 0 36 15t15 36v285q0 56 28 91t82 35q54 0 82-35t28-91v-285q0-21 15.5-36t36.5-15q21 0 36 15t15 36v279q0 104-56 167t-157 63Z" /></svg>
icon:fmt_toolbar = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M240-200q-17 0-28.5-11.5T200-240q0-17 11.5-28.5T240-280h480q17 0 28.5 11.5T760-240q0 17-11.5 28.5T720-200H240Zm54-208 137-368q4-11 13.5-17.5T466-800h28q12 0 21.5 6.5T529-776l137 369q6 17-4 32t-28 15q-11 0-20.5-6.5T600-384l-30-88H392l-32 89q-4 11-13 17t-20 6q-19 0-29.5-15.5T294-408Zm120-128h132l-64-182h-4l-64 182Z" /></svg>
icon:search = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M380-320q-109 0-184.5-75.5T120-580q0-109 75.5-184.5T380-840q109 0 184.5 75.5T640-580q0 44-14 83t-38 69l224 224q11 11 11 28t-11 28q-11 11-28 11t-28-11L532-372q-30 24-69 38t-83 14Zm0-80q75 0 127.5-52.5T560-580q0-75-52.5-127.5T380-760q-75 0-127.5 52.5T200-580q0 75 52.5 127.5T380-400Z" /></svg>
icon:search_auto = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="m646-438-86 138q-11 17-30.5 14T505-309l-28-112-273 273q-11 11-27.5 11.5T148-148q-11-11-11-28t11-28l273-274-112-28q-20-5-23-24.5t14-30.5l138-85-12-163q-2-20 16-29t33 4l125 105 151-61q19-8 33 6t6 33l-61 151 105 124q13 15 4 33t-29 16l-163-11ZM134-706q-6-6-6-14t6-14l52-52q6-6 14-6t14 6l52 52q6 6 6 14t-6 14l-52 52q-6 6-14 6t-14-6l-52-52Zm572 572-52-52q-6-6-6-14t6-14l52-52q6-6 14-6t14 6l52 52q6 6 6 14t-6 14l-52 52q-6 6-14 6t-14-6Z" /></svg>
icon:search_cancel = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M480-424 284-228q-11 11-28 11t-28-11q-11-11-11-28t11-28l196-196-196-196q-11-11-11-28t11-28q11-11 28-11t28 11l196 196 196-196q11-11 28-11t28 11q11 11 11 28t-11 28L536-480l196 196q11 11 11 28t-11 28q-11 11-28 11t-28-11L480-424Z" /></svg>
icon:search_case = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="m247-364-32 89q-4 11-13 17t-20 6q-19 0-29.5-15.5T149-300l138-368q4-11 13.5-17.5T321-692h28q11 0 21 6.5t14 17.5l138 369q7 17-4 32t-29 15q-11 0-20-6.5T456-276l-31-88H247Zm23-64h131l-64-182h-4l-63 182Zm395 186q-51 0-81-27.5T554-342q0-44 34.5-72.5T677-443q23 0 45 4t38 11v-12q0-29-20.5-47T685-505q-15 0-29.5 4.5T629-487q-13 10-24.5 7T586-491q-7-8-7-19t11-19q20-16 45-23.5t51-7.5q69 0 103 32.5t34 97.5v147q0 13-9.5 22t-22.5 9q-13 0-22-9.5t-9-22.5v-5h-4q-14 23-38 35t-53 12Zm12-54q35 0 59.5-24t24.5-56q-14-8-33.5-12.5T689-393q-32 0-50 14t-18 37q0 20 16 33t40 13Z" /></svg>
icon:search_loop = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M80-520q0-117 81.5-198.5T360-800h240q117 0 198.5 81.5T880-520q0 103-66 181t-168 95q-18 3-32-8t-14-28q0-17 13.5-29t31.5-16q69-16 112-70.5T800-520q0-83-58.5-141.5T600-720H360q-83 0-141.5 58.5T160-520q0 83 58.5 141.5T360-320h7l-36-36q-11-11-11-27.5t12-28.5q11-11 28-11t28 11l104 104q12 12 12 28t-12 28L388-148q-11 11-27.5 11T332-148q-12-12-12-28.5t12-28.5l35-35h-7q-117 0-198.5-81.5T80-520Z" /></svg>
@@ -56,10 +58,31 @@ icon:sb_outline = <svg xmlns="http://www.w3.org/2000/svg" height="128" view
icon:sb_project = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M560-120v-66q0-8 3-15.5t9-13.5l209-208q9-9 20-13t22-4q12 0 23 4.5t20 13.5l37 37q8 9 12.5 20t4.5 22q0 11-4 22.5T903-300L695-92q-6 6-13.5 9T666-80h-66q-17 0-28.5-11.5T560-120Zm263-184 37-39-37-37-38 38 38 38ZM160-160q-33 0-56.5-23.5T80-240v-480q0-33 23.5-56.5T160-800h207q16 0 30.5 6t25.5 17l57 57h320q33 0 56.5 23.5T880-640v83q0 18-14.5 29t-33.5 8h-11q-28 0-52.5 10T724-480L503-259q-11 11-17 25.5t-6 30.5v3q0 17-11.5 28.5T440-160H160Z" /></svg>
icon:sb_search = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M380-320q-109 0-184.5-75.5T120-580q0-109 75.5-184.5T380-840q109 0 184.5 75.5T640-580q0 44-14 83t-38 69l224 224q11 11 11 28t-11 28q-11 11-28 11t-28-11L532-372q-30 24-69 38t-83 14Zm0-80q75 0 127.5-52.5T560-580q0-75-52.5-127.5T380-760q-75 0-127.5 52.5T200-580q0 75 52.5 127.5T380-400Z" /></svg>
icon:sb_stats = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M680-160q-17 0-28.5-11.5T640-200v-200q0-17 11.5-28.5T680-440h80q17 0 28.5 11.5T800-400v200q0 17-11.5 28.5T760-160h-80Zm-240 0q-17 0-28.5-11.5T400-200v-560q0-17 11.5-28.5T440-800h80q17 0 28.5 11.5T560-760v560q0 17-11.5 28.5T520-160h-80Zm-240 0q-17 0-28.5-11.5T160-200v-360q0-17 11.5-28.5T200-600h80q17 0 28.5 11.5T320-560v360q0 17-11.5 28.5T280-160h-80Z" /></svg>
icon:theme_light = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M480-280q-83 0-141.5-58.5T280-480q0-83 58.5-141.5T480-680q83 0 141.5 58.5T680-480q0 83-58.5 141.5T480-280ZM80-440q-17 0-28.5-11.5T40-480q0-17 11.5-28.5T80-520h80q17 0 28.5 11.5T200-480q0 17-11.5 28.5T160-440H80Zm720 0q-17 0-28.5-11.5T760-480q0-17 11.5-28.5T800-520h80q17 0 28.5 11.5T920-480q0 17-11.5 28.5T880-440h-80ZM480-760q-17 0-28.5-11.5T440-800v-80q0-17 11.5-28.5T480-920q17 0 28.5 11.5T520-880v80q0 17-11.5 28.5T480-760Zm0 720q-17 0-28.5-11.5T440-80v-80q0-17 11.5-28.5T480-200q17 0 28.5 11.5T520-160v80q0 17-11.5 28.5T480-40ZM226-678l-43-42q-12-11-11.5-28t11.5-29q12-12 29-12t28 12l42 43q11 12 11 28t-11 28q-11 12-27.5 11.5T226-678Zm494 495-42-43q-11-12-11-28.5t11-27.5q11-12 27.5-11.5T734-282l43 42q12 11 11.5 28T777-183q-12 12-29 12t-28-12Zm-42-495q-12-11-11.5-27.5T678-734l42-43q11-12 28-11.5t29 11.5q12 12 12 29t-12 28l-43 42q-12 11-28 11t-28-11ZM183-183q-12-12-12-29t12-28l43-42q12-11 28.5-11t27.5 11q12 11 11.5 27.5T282-226l-42 43q-11 12-28 11.5T183-183Z" /></svg>
icon:theme_dark = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M480-120q-151 0-255.5-104.5T120-480q0-138 90-239.5T440-838q13-2 23 3.5t16 14.5q6 9 6.5 21t-7.5 23q-17 26-25.5 55t-8.5 61q0 90 63 153t153 63q31 0 61.5-9t54.5-25q11-7 22.5-6.5T819-479q10 5 15.5 15t3.5 24q-14 138-117.5 229T480-120Z" /></svg>
icon:theme_auto = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Zm40-83q119-15 199.5-104.5T800-480q0-123-80.5-212.5T520-797v634Z" /></svg>
icon:btn_ok = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="m424-408-86-86q-11-11-28-11t-28 11q-11 11-11 28t11 28l114 114q12 12 28 12t28-12l226-226q11-11 11-28t-11-28q-11-11-28-11t-28 11L424-408Zm56 328q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z" /></svg>
icon:btn_cancel = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="m480-424 116 116q11 11 28 11t28-11q11-11 11-28t-11-28L536-480l116-116q11-11 11-28t-11-28q-11-11-28-11t-28 11L480-536 364-652q-11-11-28-11t-28 11q-11 11-11 28t11 28l116 116-116 116q-11 11-11 28t11 28q11 11 28 11t28-11l116-116Zm0 344q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z" /></svg>
icon:btn_yes = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="m424-408-86-86q-11-11-28-11t-28 11q-11 11-11 28t11 28l114 114q12 12 28 12t28-12l226-226q11-11 11-28t-11-28q-11-11-28-11t-28 11L424-408Zm56 328q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z" /></svg>
icon:btn_no = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M320-440h320q17 0 28.5-11.5T680-480q0-17-11.5-28.5T640-520H320q-17 0-28.5 11.5T280-480q0 17 11.5 28.5T320-440ZM480-80q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z" /></svg>
icon:btn_open = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h240q17 0 28.5 11.5T480-800q0 17-11.5 28.5T440-760H200v560h560v-240q0-17 11.5-28.5T800-480q17 0 28.5 11.5T840-440v240q0 33-23.5 56.5T760-120H200Zm560-584L416-360q-11 11-28 11t-28-11q-11-11-11-28t11-28l344-344H600q-17 0-28.5-11.5T560-800q0-17 11.5-28.5T600-840h200q17 0 28.5 11.5T840-800v200q0 17-11.5 28.5T800-560q-17 0-28.5-11.5T760-600v-104Z" /></svg>
icon:btn_close = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="m480-424 116 116q11 11 28 11t28-11q11-11 11-28t-11-28L536-480l116-116q11-11 11-28t-11-28q-11-11-28-11t-28 11L480-536 364-652q-11-11-28-11t-28 11q-11 11-11 28t11 28l116 116-116 116q-11 11-11 28t11 28q11 11 28 11t28-11l116-116Zm0 344q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z" /></svg>
icon:btn_save = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M692-148 588-252q-11-11-11-28t11-28q11-11 28-11t28 11l36 36v-127q0-17 11.5-28.5T720-439q17 0 28.5 11.5T760-399v127l36-36q11-11 28-11t28 11q11 11 11 28t-11 28L748-148q-12 12-28 12t-28-12ZM600 0q-17 0-28.5-11.5T560-40q0-17 11.5-28.5T600-80h240q17 0 28.5 11.5T880-40q0 17-11.5 28.5T840 0H600ZM240-160q-33 0-56.5-23.5T160-240v-560q0-33 23.5-56.5T240-880h247q16 0 30.5 6t25.5 17l194 194q11 11 17 25.5t6 30.5v48q0 17-11.5 28.5T720-519H560q-33 0-56.5 23.5T480-439v239q0 17-11.5 28.5T440-160H240Zm300-440h140L480-800l200 200-200-200v140q0 25 17.5 42.5T540-600Z" /></svg>
icon:btn_browse = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M160-160q-33 0-56.5-23.5T80-240v-480q0-33 23.5-56.5T160-800h207q16 0 30.5 6t25.5 17l57 57h360q17 0 28.5 11.5T880-680q0 17-11.5 28.5T840-640H314q-62 0-108 39t-46 99v262l79-263q8-26 29.5-41.5T316-560h516q41 0 64.5 32.5T909-457l-72 240q-8 26-29.5 41.5T760-160H160Z" /></svg>
icon:btn_list = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M400-200q-17 0-28.5-11.5T360-240q0-17 11.5-28.5T400-280h400q17 0 28.5 11.5T840-240q0 17-11.5 28.5T800-200H400Zm0-240q-17 0-28.5-11.5T360-480q0-17 11.5-28.5T400-520h400q17 0 28.5 11.5T840-480q0 17-11.5 28.5T800-440H400Zm0-240q-17 0-28.5-11.5T360-720q0-17 11.5-28.5T400-760h400q17 0 28.5 11.5T840-720q0 17-11.5 28.5T800-680H400ZM200-160q-33 0-56.5-23.5T120-240q0-33 23.5-56.5T200-320q33 0 56.5 23.5T280-240q0 33-23.5 56.5T200-160Zm0-240q-33 0-56.5-23.5T120-480q0-33 23.5-56.5T200-560q33 0 56.5 23.5T280-480q0 33-23.5 56.5T200-400Zm0-240q-33 0-56.5-23.5T120-720q0-33 23.5-56.5T200-800q33 0 56.5 23.5T280-720q0 33-23.5 56.5T200-640Z" /></svg>
icon:btn_new = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h200q17 0 28.5 11.5T440-800q0 17-11.5 28.5T400-760H200v560h560v-200q0-17 11.5-28.5T800-440q17 0 28.5 11.5T840-400v200q0 33-23.5 56.5T760-120H200Zm440-520h-80q-17 0-28.5-11.5T520-680q0-17 11.5-28.5T560-720h80v-80q0-17 11.5-28.5T680-840q17 0 28.5 11.5T720-800v80h80q17 0 28.5 11.5T840-680q0 17-11.5 28.5T800-640h-80v80q0 17-11.5 28.5T680-520q-17 0-28.5-11.5T640-560v-80Z" /></svg>
icon:btn_create = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M480-269 314-169q-11 7-23 6t-21-8q-9-7-14-17.5t-2-23.5l44-189-147-127q-10-9-12.5-20.5T140-571q4-11 12-18t22-9l194-17 75-178q5-12 15.5-18t21.5-6q11 0 21.5 6t15.5 18l75 178 194 17q14 2 22 9t12 18q4 11 1.5 22.5T809-528L662-401l44 189q3 13-2 23.5T690-171q-9 7-21 8t-23-6L480-269Z" /></svg>
icon:btn_reset = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M320-200q-17 0-28.5-11.5T280-240q0-17 11.5-28.5T320-280h244q63 0 109.5-40T720-420q0-60-46.5-100T564-560H312l76 76q11 11 11 28t-11 28q-11 11-28 11t-28-11L188-572q-6-6-8.5-13t-2.5-15q0-8 2.5-15t8.5-13l144-144q11-11 28-11t28 11q11 11 11 28t-11 28l-76 76h252q97 0 166.5 63T800-420q0 94-69.5 157T564-200H320Z" /></svg>
icon:btn_insert = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M440-560h-80q-17 0-28.5-11.5T320-600q0-17 11.5-28.5T360-640h240q17 0 28.5 11.5T640-600q0 17-11.5 28.5T600-560h-80v200q0 17-11.5 28.5T480-320q-17 0-28.5-11.5T440-360v-200ZM40-80v-160q0-17 11.5-28.5T80-280h40v-400H80q-17 0-28.5-11.5T40-720v-160q0-17 11.5-28.5T80-920h160q17 0 28.5 11.5T280-880v40h400v-40q0-17 11.5-28.5T720-920h160q17 0 28.5 11.5T920-880v160q0 17-11.5 28.5T880-680h-40v400h40q17 0 28.5 11.5T920-240v160q0 17-11.5 28.5T880-40H720q-17 0-28.5-11.5T680-80v-40H280v40q0 17-11.5 28.5T240-40H80q-17 0-28.5-11.5T40-80Zm240-120h400v-40q0-17 11.5-28.5T720-280h40v-400h-40q-17 0-28.5-11.5T680-720v-40H280v40q0 17-11.5 28.5T240-680h-40v400h40q17 0 28.5 11.5T280-240v40Z" /></svg>
icon:btn_apply = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="m424-424-86-86q-11-11-28-11t-28 11q-11 11-11 28t11 28l114 114q12 12 28 12t28-12l226-226q11-11 11-28t-11-28q-11-11-28-11t-28 11L424-424ZM200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Z" /></svg>
icon:btn_build = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M760-252v72q0 8 6 14t14 6q8 0 14-6t6-14v-120q0-8-6-14t-14-6H660q-8 0-14 6t-6 14q0 8 6 14t14 6h72l-98 98q-6 6-6 14t6 14q6 6 14 6t14-6l98-98ZM720-40q-83 0-141.5-58.5T520-240q0-83 58.5-141.5T720-440q83 0 141.5 58.5T920-240q0 83-58.5 141.5T720-40ZM320-600h320q17 0 28.5-11.5T680-640q0-17-11.5-28.5T640-680H320q-17 0-28.5 11.5T280-640q0 17 11.5 28.5T320-600ZM200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v218q0 18-15 28t-32 4q-17-5-35.5-7.5T720-520q-11 0-20.5.5T680-517q-9-2-20-2.5t-20-.5H320q-17 0-28.5 11.5T280-480q0 17 11.5 28.5T320-440h205q-18 17-32.5 37T467-360H320q-17 0-28.5 11.5T280-320q0 17 11.5 28.5T320-280h123q-2 10-2.5 19.5T440-240q0 20 2 38t7 35q5 17-5 32t-27 15H200Z" /></svg>
icon:btn_print = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M320-120q-33 0-56.5-23.5T240-200v-80h-80q-33 0-56.5-23.5T80-360v-160q0-51 35-85.5t85-34.5h560q51 0 85.5 34.5T880-520v160q0 33-23.5 56.5T800-280h-80v80q0 33-23.5 56.5T640-120H320Zm400-560H240v-80q0-33 23.5-56.5T320-840h320q33 0 56.5 23.5T720-760v80Zm0 220q17 0 28.5-11.5T760-500q0-17-11.5-28.5T720-540q-17 0-28.5 11.5T680-500q0 17 11.5 28.5T720-460ZM320-200h320v-160H320v160Z" /></svg>
icon:btn_preview = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Zm0-80h560v-480H200v480Zm280-80q-82 0-146.5-44.5T240-440q29-71 93.5-115.5T480-600q82 0 146.5 44.5T720-440q-29 71-93.5 115.5T480-280Zm0-100q-25 0-42.5-17.5T420-440q0-25 17.5-42.5T480-500q25 0 42.5 17.5T540-440q0 25-17.5 42.5T480-380Zm0 40q42 0 71-29t29-71q0-42-29-71t-71-29q-42 0-71 29t-29 71q0 42 29 71t71 29Z" /></svg>
icon:add = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M440-440H240q-17 0-28.5-11.5T200-480q0-17 11.5-28.5T240-520h200v-200q0-17 11.5-28.5T480-760q17 0 28.5 11.5T520-720v200h200q17 0 28.5 11.5T760-480q0 17-11.5 28.5T720-440H520v200q0 17-11.5 28.5T480-200q-17 0-28.5-11.5T440-240v-200Z" /></svg>
icon:bookmarks = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M400-160 232-88q-40 17-76-6.5T120-161v-519q0-33 23.5-56.5T200-760h400q33 0 56.5 23.5T680-680v519q0 43-36 66.5T568-88l-168-72Zm400 0q-17 0-28.5-11.5T760-200v-640H280q-17 0-28.5-11.5T240-880q0-17 11.5-28.5T280-920h480q33 0 56.5 23.5T840-840v640q0 17-11.5 28.5T800-160Z" /></svg>
icon:browse = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M160-160q-33 0-56.5-23.5T80-240v-480q0-33 23.5-56.5T160-800h207q16 0 30.5 6t25.5 17l57 57h360q17 0 28.5 11.5T880-680q0 17-11.5 28.5T840-640H314q-62 0-108 39t-46 99v262l79-263q8-26 29.5-41.5T316-560h516q41 0 64.5 32.5T909-457l-72 240q-8 26-29.5 41.5T760-160H160Z" /></svg>
icon:build_settings = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M760-252v72q0 8 6 14t14 6q8 0 14-6t6-14v-120q0-8-6-14t-14-6H660q-8 0-14 6t-6 14q0 8 6 14t14 6h72l-98 98q-6 6-6 14t6 14q6 6 14 6t14-6l98-98ZM720-40q-83 0-141.5-58.5T520-240q0-83 58.5-141.5T720-440q83 0 141.5 58.5T920-240q0 83-58.5 141.5T720-40ZM320-600h320q17 0 28.5-11.5T680-640q0-17-11.5-28.5T640-680H320q-17 0-28.5 11.5T280-640q0 17 11.5 28.5T320-600ZM200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v218q0 18-15 28t-32 4q-17-5-35.5-7.5T720-520q-11 0-20.5.5T680-517q-9-2-20-2.5t-20-.5H320q-17 0-28.5 11.5T280-480q0 17 11.5 28.5T320-440h205q-18 17-32.5 37T467-360H320q-17 0-28.5 11.5T280-320q0 17 11.5 28.5T320-280h123q-2 10-2.5 19.5T440-240q0 20 2 38t7 35q5 17-5 32t-27 15H200Z" /></svg>
icon:calendar = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M200-80q-33 0-56.5-23.5T120-160v-560q0-33 23.5-56.5T200-800h40v-40q0-17 11.5-28.5T280-880q17 0 28.5 11.5T320-840v40h320v-40q0-17 11.5-28.5T680-880q17 0 28.5 11.5T720-840v40h40q33 0 56.5 23.5T840-720v560q0 33-23.5 56.5T760-80H200Zm0-80h560v-400H200v400Z" /></svg>
icon:cancel = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="m480-424 116 116q11 11 28 11t28-11q11-11 11-28t-11-28L536-480l116-116q11-11 11-28t-11-28q-11-11-28-11t-28 11L480-536 364-652q-11-11-28-11t-28 11q-11 11-11 28t11 28l116 116-116 116q-11 11-11 28t11 28q11 11 28 11t28-11l116-116Zm0 344q-83 0-156-31.5T197-197q-54-54-85.5-127T80-480q0-83 31.5-156T197-763q54-54 127-85.5T480-880q83 0 156 31.5T763-763q54 54 85.5 127T880-480q0 83-31.5 156T763-197q-54 54-127 85.5T480-80Z" /></svg>
icon:checked = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="m424-424-86-86q-11-11-28-11t-28 11q-11 11-11 28t11 28l114 114q12 12 28 12t28-12l226-226q11-11 11-28t-11-28q-11-11-28-11t-28 11L424-424ZM200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Z" /></svg>
icon:chevron_down = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M480-361q-8 0-15-2.5t-13-8.5L268-556q-11-11-11-28t11-28q11-11 28-11t28 11l156 156 156-156q11-11 28-11t28 11q11 11 11 28t-11 28L508-372q-6 6-13 8.5t-15 2.5Z" /></svg>
@@ -81,6 +104,7 @@ icon:font = <svg xmlns="http://www.w3.org/2000/svg" height="128" view
icon:import = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M200-120q-33 0-56.5-23.5T120-200v-80q0-17 11.5-28.5T160-320q17 0 28.5 11.5T200-280v80h560v-480H200v80q0 17-11.5 28.5T160-560q-17 0-28.5-11.5T120-600v-160q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Zm287-280H160q-17 0-28.5-11.5T120-440q0-17 11.5-28.5T160-480h327l-55-56q-11-11-11.5-27.5T432-592q11-11 28-11t28 11l124 124q12 12 12 28t-12 28L488-288q-11 11-27.5 11.5T432-288q-11-11-11-28t11-28l55-56Z" /></svg>
icon:language = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="m603-202-34 97q-4 11-14 18t-22 7q-20 0-32.5-16.5T496-133l152-402q5-11 15-18t22-7h30q12 0 22 7t15 18l152 403q8 19-4 35.5T868-80q-13 0-22.5-7T831-106l-34-96H603ZM362-401 188-228q-11 11-27.5 11.5T132-228q-11-11-11-28t11-28l174-174q-35-35-63.5-80T190-640h84q20 39 40 68t48 58q33-33 68.5-92.5T484-720H80q-17 0-28.5-11.5T40-760q0-17 11.5-28.5T80-800h240v-40q0-17 11.5-28.5T360-880q17 0 28.5 11.5T400-840v40h240q17 0 28.5 11.5T680-760q0 17-11.5 28.5T640-720h-76q-21 72-63 148t-83 116l96 98-30 82-122-125Zm266 129h144l-72-204-72 204Z" /></svg>
icon:lines = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M160-200q-17 0-28.5-11.5T120-240q0-17 11.5-28.5T160-280h640q17 0 28.5 11.5T840-240q0 17-11.5 28.5T800-200H160Zm0-160q-17 0-28.5-11.5T120-400q0-17 11.5-28.5T160-440h640q17 0 28.5 11.5T840-400q0 17-11.5 28.5T800-360H160Zm0-160q-17 0-28.5-11.5T120-560q0-17 11.5-28.5T160-600h640q17 0 28.5 11.5T840-560q0 17-11.5 28.5T800-520H160Zm0-160q-17 0-28.5-11.5T120-720q0-17 11.5-28.5T160-760h640q17 0 28.5 11.5T840-720q0 17-11.5 28.5T800-680H160Z" /></svg>
icon:link = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M280-280q-83 0-141.5-58.5T80-480q0-83 58.5-141.5T280-680h120q17 0 28.5 11.5T440-640q0 17-11.5 28.5T400-600H280q-50 0-85 35t-35 85q0 50 35 85t85 35h120q17 0 28.5 11.5T440-320q0 17-11.5 28.5T400-280H280Zm80-160q-17 0-28.5-11.5T320-480q0-17 11.5-28.5T360-520h240q17 0 28.5 11.5T640-480q0 17-11.5 28.5T600-440H360Zm200 160q-17 0-28.5-11.5T520-320q0-17 11.5-28.5T560-360h120q50 0 85-35t35-85q0-50-35-85t-85-35H560q-17 0-28.5-11.5T520-640q0-17 11.5-28.5T560-680h120q83 0 141.5 58.5T880-480q0 83-58.5 141.5T680-280H560Z" /></svg>
icon:list = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M400-200q-17 0-28.5-11.5T360-240q0-17 11.5-28.5T400-280h400q17 0 28.5 11.5T840-240q0 17-11.5 28.5T800-200H400Zm0-240q-17 0-28.5-11.5T360-480q0-17 11.5-28.5T400-520h400q17 0 28.5 11.5T840-480q0 17-11.5 28.5T800-440H400Zm0-240q-17 0-28.5-11.5T360-720q0-17 11.5-28.5T400-760h400q17 0 28.5 11.5T840-720q0 17-11.5 28.5T800-680H400ZM200-160q-33 0-56.5-23.5T120-240q0-33 23.5-56.5T200-320q33 0 56.5 23.5T280-240q0 33-23.5 56.5T200-160Zm0-240q-33 0-56.5-23.5T120-480q0-33 23.5-56.5T200-560q33 0 56.5 23.5T280-480q0 33-23.5 56.5T200-400Zm0-240q-33 0-56.5-23.5T120-720q0-33 23.5-56.5T200-800q33 0 56.5 23.5T280-720q0 33-23.5 56.5T200-640Z" /></svg>
icon:margin_bottom = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M200-120q-17 0-28.5-11.5T160-160q0-17 11.5-28.5T200-200h560q17 0 28.5 11.5T800-160q0 17-11.5 28.5T760-120H200Zm280-177q-8 0-15-2.5t-13-8.5L308-452q-11-11-11-28t11-28q11-11 28-11t28 11l76 76v-368q0-17 11.5-28.5T480-840q17 0 28.5 11.5T520-800v368l76-76q11-11 28-11t28 11q11 11 11 28t-11 28L508-308q-6 6-13 8.5t-15 2.5Z" /></svg>
icon:margin_left = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M120-240q-17 0-28.5-11.5T80-280v-400q0-17 11.5-28.5T120-720q17 0 28.5 11.5T160-680v400q0 17-11.5 28.5T120-240Zm273-200 115 115q12 12 12 28.5T508-268q-12 11-28.5 11T452-268L268-452q-6-6-8.5-13t-2.5-15q0-8 2.5-15t8.5-13l184-184q11-11 28-11t28 11q12 12 11.5 28.5T508-636L393-520h447q17 0 28.5 11.5T880-480q0 17-11.5 28.5T840-440H393Z" /></svg>
@@ -91,7 +115,6 @@ icon:minimise = <svg xmlns="http://www.w3.org/2000/svg" height="128" view
icon:more_arrow = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M420-308q-8 0-14-5.5t-6-14.5v-304q0-9 6-14.5t14-5.5q2 0 14 6l145 145q5 5 7 10t2 11q0 6-2 11t-7 10L434-314q-3 3-6.5 4.5T420-308Z" /></svg>
icon:more_vertical = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M480-160q-33 0-56.5-23.5T400-240q0-33 23.5-56.5T480-320q33 0 56.5 23.5T560-240q0 33-23.5 56.5T480-160Zm0-240q-33 0-56.5-23.5T400-480q0-33 23.5-56.5T480-560q33 0 56.5 23.5T560-480q0 33-23.5 56.5T480-400Zm0-240q-33 0-56.5-23.5T400-720q0-33 23.5-56.5T480-800q33 0 56.5 23.5T560-720q0 33-23.5 56.5T480-640Z" /></svg>
icon:noncheckable = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M320-440h320q17 0 28.5-11.5T680-480q0-17-11.5-28.5T640-520H320q-17 0-28.5 11.5T280-480q0 17 11.5 28.5T320-440ZM200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Z" /></svg>
icon:open = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h240q17 0 28.5 11.5T480-800q0 17-11.5 28.5T440-760H200v560h560v-240q0-17 11.5-28.5T800-480q17 0 28.5 11.5T840-440v240q0 33-23.5 56.5T760-120H200Zm560-584L416-360q-11 11-28 11t-28-11q-11-11-11-28t11-28l344-344H600q-17 0-28.5-11.5T560-800q0-17 11.5-28.5T600-840h200q17 0 28.5 11.5T840-800v200q0 17-11.5 28.5T800-560q-17 0-28.5-11.5T760-600v-104Z" /></svg>
icon:panel = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h560q33 0 56.5 23.5T840-760v560q0 33-23.5 56.5T760-120H200Zm0-280h560v-360H200v360Z" /></svg>
icon:pin = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M640-760v280l68 68q6 6 9 13.5t3 15.5v23q0 17-11.5 28.5T680-320H520v223q0 8-3 15.5T508-68l-14 14q-6 6-14 6t-14-6l-14-14q-6-6-9-13.5T440-97v-223H280q-17 0-28.5-11.5T240-360v-23q0-8 3-15.5t9-13.5l68-68v-280q-17 0-28.5-11.5T280-800q0-17 11.5-28.5T320-840h320q17 0 28.5 11.5T680-800q0 17-11.5 28.5T640-760Z" /></svg>
icon:project_copy = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M120-120q-33 0-56.5-23.5T40-200v-480q0-17 11.5-28.5T80-720q17 0 28.5 11.5T120-680v480h640q17 0 28.5 11.5T800-160q0 17-11.5 28.5T760-120H120Zm160-160q-33 0-56.5-23.5T200-360v-440q0-33 23.5-56.5T280-880h167q16 0 30.5 6t25.5 17l57 57h280q33 0 56.5 23.5T920-720v360q0 33-23.5 56.5T840-280H280Z" /></svg>
@@ -100,7 +123,6 @@ icon:refresh = <svg xmlns="http://www.w3.org/2000/svg" height="128" view
icon:remove = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M240-440q-17 0-28.5-11.5T200-480q0-17 11.5-28.5T240-520h480q17 0 28.5 11.5T760-480q0 17-11.5 28.5T720-440H240Z" /></svg>
icon:revert = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M480-120q-126 0-223-76.5T131-392q-4-15 6-27.5t27-14.5q16-2 29 6t18 24q24 90 99 147t170 57q117 0 198.5-81.5T760-480q0-117-81.5-198.5T480-760q-69 0-129 32t-101 88h70q17 0 28.5 11.5T360-600q0 17-11.5 28.5T320-560H160q-17 0-28.5-11.5T120-600v-160q0-17 11.5-28.5T160-800q17 0 28.5 11.5T200-760v54q51-64 124.5-99T480-840q75 0 140.5 28.5t114 77q48.5 48.5 77 114T840-480q0 75-28.5 140.5t-77 114q-48.5 48.5-114 77T480-120Zm0-280q-33 0-56.5-23.5T400-480q0-33 23.5-56.5T480-560q33 0 56.5 23.5T560-480q0 33-23.5 56.5T480-400Z" /></svg>
icon:settings = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M433-80q-27 0-46.5-18T363-142l-9-66q-13-5-24.5-12T307-235l-62 26q-25 11-50 2t-39-32l-47-82q-14-23-8-49t27-43l53-40q-1-7-1-13.5v-27q0-6.5 1-13.5l-53-40q-21-17-27-43t8-49l47-82q14-23 39-32t50 2l62 26q11-8 23-15t24-12l9-66q4-26 23.5-44t46.5-18h94q27 0 46.5 18t23.5 44l9 66q13 5 24.5 12t22.5 15l62-26q25-11 50-2t39 32l47 82q14 23 8 49t-27 43l-53 40q1 7 1 13.5v27q0 6.5-2 13.5l53 40q21 17 27 43t-8 49l-48 82q-14 23-39 32t-50-2l-60-26q-11 8-23 15t-24 12l-9 66q-4 26-23.5 44T527-80h-94Zm49-260q58 0 99-41t41-99q0-58-41-99t-99-41q-59 0-99.5 41T342-480q0 58 40.5 99t99.5 41Z" /></svg>
icon:star = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M480-269 314-169q-11 7-23 6t-21-8q-9-7-14-17.5t-2-23.5l44-189-147-127q-10-9-12.5-20.5T140-571q4-11 12-18t22-9l194-17 75-178q5-12 15.5-18t21.5-6q11 0 21.5 6t15.5 18l75 178 194 17q14 2 22 9t12 18q4 11 1.5 22.5T809-528L662-401l44 189q3 13-2 23.5T690-171q-9 7-21 8t-23-6L480-269Z" /></svg>
icon:stats = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="m110-190 213-213q23-23 57-23t57 23l103 103 256-289q11-13 28.5-13t29.5 12q11 11 11.5 26.5T855-536L596-244q-23 26-57 27.5T480-240L380-340 170-130q-13 13-30 13t-30-13q-13-13-13-30t13-30Zm0-240 213-213q23-23 57-23t57 23l103 103 256-289q11-13 28.5-13t29.5 12q11 11 11.5 26.5T855-776L596-484q-23 26-57 27.5T480-480L380-580 170-370q-13 13-30 13t-30-13q-13-13-13-30t13-30Z" /></svg>
icon:text = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M200-200q-17 0-28.5-11.5T160-240q0-17 11.5-28.5T200-280h320q17 0 28.5 11.5T560-240q0 17-11.5 28.5T520-200H200Zm0-160q-17 0-28.5-11.5T160-400q0-17 11.5-28.5T200-440h560q17 0 28.5 11.5T800-400q0 17-11.5 28.5T760-360H200Zm0-160q-17 0-28.5-11.5T160-560q0-17 11.5-28.5T200-600h560q17 0 28.5 11.5T800-560q0 17-11.5 28.5T760-520H200Zm0-160q-17 0-28.5-11.5T160-720q0-17 11.5-28.5T200-760h560q17 0 28.5 11.5T800-720q0 17-11.5 28.5T760-680H200Z" /></svg>
icon:timer_off = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M480-80q-74 0-139.5-28.5T226-186q-49-49-77.5-114.5T120-440q0-60 18.5-115.5T192-656L84-764q-11-11-11-28t11-28q11-11 28-11t28 11l680 680q11 11 11 28t-11 28q-11 11-28 11t-28-11l-68-68q-48 35-103.5 53.5T480-80Zm-80-760q-17 0-28.5-11.5T360-880q0-17 11.5-28.5T400-920h160q17 0 28.5 11.5T600-880q0 17-11.5 28.5T560-840H400Zm348 516L520-552v-48q0-17-11.5-28.5T480-640q-10 0-18.5 4T448-624l-85-85q-18-18-13-43t29-33q24-8 49.5-11.5T480-800q60 0 117.5 20T706-722l28-28q11-11 28-11t28 11q11 11 11 28t-11 28l-28 28q38 51 58 108.5T840-440q0 26-3.5 51T825-339q-8 24-33 29t-44-14Z" /></svg>

View File

@@ -31,12 +31,14 @@ icon:prj_note = <svg xmlns="http://www.w3.org/2000/svg" height="128" view
icon:fmt_bold = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M356.62-230q-17.62 0-29.58-11.96-11.96-11.96-11.96-29.58v-416.92q0-17.62 11.96-29.58Q339-730 356.62-730H483q57.31 0 101.15 36.15Q628-657.69 628-599.77q0 38.69-20.31 67.73-20.31 29.04-50.31 42.58 36.54 10.23 62.04 42.92t25.5 78.85q0 64.38-48.07 101.04Q548.77-230 491-230H356.62Zm9.46-47.38h122.46q46.46 0 75.04-27.97 28.57-27.96 28.57-65.11 0-37.16-28.57-65.12-28.58-27.96-75.73-27.96H366.08v186.16Zm0-232.62h114.54q39.92 0 67.61-24.69 27.69-24.69 27.69-61.85 0-37.84-28.15-62.08-28.15-24.23-66.69-24.23h-115V-510Z" /></svg>
icon:fmt_italic = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M253.85-230q-9.37 0-15.84-6.49-6.47-6.49-6.47-15.88 0-9.4 6.47-15.82 6.47-6.43 15.84-6.43h123.07l139.23-410.76H393.08q-9.37 0-15.84-6.49-6.47-6.49-6.47-15.89 0-9.39 6.47-15.82 6.47-6.42 15.84-6.42h287.69q9.37 0 15.84 6.49 6.47 6.49 6.47 15.88 0 9.4-6.47 15.82-6.47 6.43-15.84 6.43H562.31L423.08-274.62h118.46q9.37 0 15.84 6.49 6.47 6.49 6.47 15.89 0 9.39-6.47 15.82-6.47 6.42-15.84 6.42H253.85Z" /></svg>
icon:fmt_mark = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M120 0q-16.08 0-28.04-11.58Q80-23.15 80-40q0-16.08 11.96-28.04T120-80h720q16.08 0 28.04 11.58Q880-56.85 880-40q0 16.08-11.96 28.04T840 0H120Zm307.85-600.77 160.61 160.85-155.38 155.38q-19.39 19.39-45.35 19.39t-45.35-19.39l-7.69-7.69-27.31 27.08q-8.69 8.23-20.53 13.23-11.85 5-24.31 5h-45.85q-10.92 0-14.88-10.08-3.96-10.08 3.73-17.77l73.54-73.31-6.16-6.15q-19.38-19.39-19.61-45.58-.23-26.19 19.15-45.57l155.39-155.39Zm28.3-28.54 182.31-182.07q19.39-19.39 45.35-19.39t45.34 19.39l70.16 69.92q19.38 19.38 19.38 45.34 0 25.97-19.38 45.35L617-468.46 456.15-629.31Z" /></svg>
icon:fmt_size = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M593.08-710H420.77q-10.26 0-17.44-7.21-7.18-7.2-7.18-17.5 0-10.29 7.18-17.79t17.44-7.5h394.61q10.26 0 17.44 7.21 7.18 7.2 7.18 17.5 0 10.29-7.18 17.79t-17.44 7.5h-172.3v485.38q0 10.26-7.21 17.44-7.2 7.18-17.5 7.18-10.29 0-17.79-7.4-7.5-7.41-7.5-17.98V-710ZM238.46-513.85h-93.84q-10.26 0-17.44-7.2-7.18-7.21-7.18-17.5 0-10.3 7.18-17.8t17.44-7.5h236.92q10.25 0 17.43 7.21t7.18 17.5q0 10.29-7.18 17.79t-17.43 7.5h-93.85v289.23q0 10.26-7.2 17.44-7.21 7.18-17.5 7.18-10.3 0-17.41-7.18-7.12-7.18-7.12-17.44v-289.23Z" /></svg>
icon:fmt_strike = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M486-184.62q-56.85 0-104.96-30.03-48.12-30.04-75.27-80.66-3.62-7.54-.58-15.81 3.04-8.26 10.81-11.88 8-3.85 16.73-.81t13.58 11.04q21.84 39.23 58.88 61.85 37.04 22.61 81.27 22.61 55.54 0 98.04-31.61 42.5-31.62 42.5-82.85 0-13.08-2.31-26.15-2.31-13.08-9.23-24.62-2.31-8.46 2.46-15.54 4.77-7.07 13.23-9.38 8.47-2.31 16.04 2.46 7.58 4.77 9.89 13.23 8.46 13.77 11.15 30.23 2.69 16.46 2.69 32.54 0 69-55.96 112.19T486-184.62ZM120-500q-8.54 0-14.27-5.73T100-520q0-8.54 5.73-14.27T120-540h720q8.54 0 14.27 5.73T860-520q0 8.54-5.73 14.27T840-500H120Zm211.85-121.15q-8.54-2.31-13-9.89-4.47-7.58-2.16-16.11 4.23-58.54 53.16-94.85 48.92-36.31 112.15-36.31 42.62 0 80.12 18.08 37.5 18.08 62.65 51.46 4.85 7.08 3.54 15.46-1.31 8.39-8.62 13.23-7.77 5.08-16.5 3.62t-15.04-9q-18.84-24.69-46.53-36.92-27.7-12.24-59.16-12.24-47.77 0-84.69 26.77-36.92 26.77-39.92 71.31-2.31 8.77-9.89 13.23-7.58 4.46-16.11 2.16Z" /></svg>
icon:fmt_subscript = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M767.69-200q-13.73 0-23.02-9.29t-9.29-23.02v-30.77q0-13.73 9.29-23.02 9.29-9.28 23.02-9.28H840v-33.85h-89.23q-6.15 0-10.77-4.62-4.62-4.61-4.62-10.77 0-6.15 4.62-10.76 4.62-4.62 10.77-4.62h87.69q13.73 0 23.02 9.29t9.29 23.02v30.77q0 13.73-9.29 23.02-9.29 9.28-23.02 9.28h-72.31v33.85h89.23q6.16 0 10.77 4.62 4.62 4.61 4.62 10.77 0 6.15-4.62 10.76-4.61 4.62-10.77 4.62h-87.69Zm-447.36-64.62q-13.15 0-19.24-11.07-6.09-11.08.99-22.54l145.61-225.08-131.84-203.31q-7.08-11.23-.99-22.3Q320.95-760 333.62-760q5.84 0 10.52 2.68 4.67 2.68 7.48 7.55l127.15 197.46h.92l129.23-198.23q2.76-4.5 7.57-6.98 4.82-2.48 10.22-2.48 13.27 0 19.16 11.08 5.9 11.07-1.18 22.54L510.54-523.31l147.38 225.08q7.08 11.46.81 22.54-6.27 11.07-18.81 11.07-5.68 0-10.42-2.67-4.73-2.68-7.58-7.56l-142.23-218.3h-.92l-140.69 218.3q-2.76 4.88-7.57 7.56-4.82 2.67-10.18 2.67Z" /></svg>
icon:fmt_superscript = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M767.69-600q-13.73 0-23.02-9.29t-9.29-23.02v-30.77q0-13.73 9.29-23.02 9.29-9.28 23.02-9.28H840v-33.85h-89.23q-6.15 0-10.77-4.62-4.62-4.61-4.62-10.77 0-6.15 4.62-10.76 4.62-4.62 10.77-4.62h87.69q13.73 0 23.02 9.29t9.29 23.02v30.77q0 13.73-9.29 23.02-9.29 9.28-23.02 9.28h-72.31v33.85h89.23q6.16 0 10.77 4.62 4.62 4.61 4.62 10.77 0 6.15-4.62 10.76-4.61 4.62-10.77 4.62h-87.69ZM320.33-200q-13.15 0-19.24-11.08-6.09-11.07.99-22.54l145.61-225.07L315.85-662q-7.08-11.23-.99-22.31 6.09-11.07 18.76-11.07 5.84 0 10.52 2.67 4.67 2.68 7.48 7.56l127.15 197.46h.92l129.23-198.23q2.76-4.51 7.57-6.99 4.82-2.47 10.22-2.47 13.27 0 19.16 11.07 5.9 11.08-1.18 22.54L510.54-458.69l147.38 225.07q7.08 11.47.81 22.54Q652.46-200 639.92-200q-5.68 0-10.42-2.68-4.73-2.68-7.58-7.55L479.69-428.54h-.92L338.08-210.23q-2.76 4.87-7.57 7.55-4.82 2.68-10.18 2.68Z" /></svg>
icon:fmt_underline = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M247.69-190q-8.5 0-14.25-5.76t-5.75-14.27q0-8.51 5.75-14.24t14.25-5.73h464.62q8.5 0 14.25 5.76t5.75 14.27q0 8.51-5.75 14.24T712.31-190H247.69ZM480-317.69q-85.62 0-134.31-50.31T297-504.62v-279.76q0-9.29 6.84-15.91 6.85-6.63 16.12-6.63 9.27 0 15.81 6.63 6.54 6.62 6.54 15.91v281.15q0 65.23 36.46 103.31 36.46 38.07 101.23 38.07 64.77 0 101.23-38.07 36.46-38.08 36.46-103.31v-281.15q0-9.29 6.85-15.91 6.84-6.63 16.11-6.63t15.81 6.63q6.54 6.62 6.54 15.91v279.76q0 86.31-48.69 136.62T480-317.69Z" /></svg>
icon:fmt_toolbar = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M240-218.46q-8.54 0-14.27-5.73T220-238.46q0-8.54 5.73-14.27t14.27-5.73h480q8.54 0 14.27 5.73t5.73 14.27q0 8.54-5.73 14.27T720-218.46H240Zm74-176.46 142.38-374.93q2.47-5.61 6.97-8.65t10.34-3.04h14.16q5.84 0 10.34 3.42 4.5 3.43 6.96 9.04l139.31 374.39q2.92 9.31-2.08 17.38-5 8.08-15.3 8.08-6.39 0-10.89-3.04-4.5-3.04-6.96-9.42l-36.92-101.08H386.62l-37.39 101.31q-2.46 5.61-6.85 8.92-4.38 3.31-10.76 3.31-10.54 0-15.66-8.19-5.11-8.2-1.96-17.5Zm85.38-122.62h159.7l-76.31-211.23h-4l-79.39 211.23Z" /></svg>
icon:search = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M381.54-350.77q-95.92 0-162.58-66.65-66.65-66.66-66.65-162.58 0-95.92 66.65-162.58 66.66-66.65 162.58-66.65 95.92 0 162.58 66.65 66.65 66.66 66.65 162.58 0 41.69-14.77 80.69t-38.77 66.69l236.31 236.31q5.61 5.62 6 13.77.38 8.16-6 14.54-6.39 6.38-14.16 6.38-7.76 0-14.15-6.38L528.92-404.31q-30 25.54-69 39.54t-78.38 14Zm0-40q79.61 0 134.42-54.81 54.81-54.8 54.81-134.42 0-79.62-54.81-134.42-54.81-54.81-134.42-54.81-79.62 0-134.42 54.81-54.81 54.8-54.81 134.42 0 79.62 54.81 134.42 54.8 54.81 134.42 54.81Z" /></svg>
icon:search_auto = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="m642.92-468-80.61 130.31q-6.39 10.07-18.96 8.61-12.58-1.46-15.27-13.77L497-469.46 202.46-174.15q-5.61 5.61-13.65 6.11t-14.66-6.11q-6.38-6.39-6.38-14.16 0-7.77 6.38-14.15L469.46-498l-125.84-31.08q-12.31-2.69-14.16-14.88-1.84-12.19 8.23-18.58L468-642.92l-11.23-153q-1.23-12.31 9.46-18.23 10.69-5.93 20.31 2.46l117.31 98.84 141.77-57.92q11.3-4.92 20.3 4.08t4.08 20.31l-57.15 141.76 98.84 117.08q8.39 9.62 2.85 20.69-5.54 11.08-17.85 9.85l-153.77-11ZM171.69-727.54q-5.23-5.23-5.23-11.69 0-6.46 5.23-11.69l28.16-28.16q5.23-5.23 11.69-5.23 6.46 0 11.69 5.23l28.15 28.16q5.24 5.23 5.24 11.69 0 6.46-5.24 11.69l-28.15 28.16q-5.23 5.23-11.69 5.23-6.46 0-11.69-5.23l-28.16-28.16Zm555.85 555.85-28.16-28.16q-5.23-5.23-5.23-11.69 0-6.46 5.23-11.69l28.16-28.15q5.23-5.24 11.69-5.24 6.46 0 11.69 5.24l28.16 28.15q5.23 5.23 5.23 11.69 0 6.46-5.23 11.69l-28.16 28.16q-5.23 5.23-11.69 5.23-6.46 0-11.69-5.23Z" /></svg>
icon:search_cancel = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M480-451.69 270.15-241.85q-5.61 5.62-13.77 6-8.15.39-14.53-6-6.39-6.38-6.39-14.15 0-7.77 6.39-14.15L451.69-480 241.85-689.85q-5.62-5.61-6-13.77-.39-8.15 6-14.53 6.38-6.39 14.15-6.39 7.77 0 14.15 6.39L480-508.31l209.85-209.84q5.61-5.62 13.77-6 8.15-.39 14.53 6 6.39 6.38 6.39 14.15 0 7.77-6.39 14.15L508.31-480l209.84 209.85q5.62 5.61 6 13.77.39 8.15-6 14.53-6.38 6.39-14.15 6.39-7.77 0-14.15-6.39L480-451.69Z" /></svg>
icon:search_case = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="m246.23-391.69-36.61 105.15q-2.47 6.39-7.24 9.69-4.76 3.31-11.15 3.31-10.54 0-16.42-8.58-5.89-8.57-1.96-18.65l134.92-368.77q2.46-6.38 7.73-9.81 5.27-3.42 11.65-3.42h14.93q6.38 0 11.77 3.42 5.38 3.43 7.84 9.81l137.23 368.23q3.93 10.08-2.46 18.93-6.38 8.84-16.69 8.84-6.39 0-11.92-3.81-5.54-3.8-8-10.19l-36.39-104.15H246.23ZM260-428h150.23l-74-208.92h-2.46L260-428Zm385.77 163.69q-46.39 0-74.46-25.96-28.08-25.96-28.08-64.81 0-42.46 33.35-67.88 33.34-25.42 85.8-25.42 21.47 0 43.47 4.38t38.77 12.15v-23.53q0-39-19.74-59.31Q705.15-535 667.31-535q-16.54 0-32.58 5.27t-29.58 14.27q-6.84 5.38-13.34 3.15t-10.43-7.92q-3.92-5.69-3.15-12.08.77-6.38 7.92-11.31 17.7-12.15 38.85-18.11 21.15-5.96 42.54-5.96 57.46 0 85.31 29.42 27.84 29.42 27.84 88.27v158.54q0 7.61-5.27 12.77-5.27 5.15-12.88 5.15-7.62 0-12.77-5.27-5.15-5.27-5.15-12.88v-22.69h-4q-17.08 25.3-39.93 37.69-22.84 12.38-54.92 12.38Zm2.77-32.46q41.15 0 68.73-29.38 27.58-29.39 27.58-73.7-14-8-35.43-12.5-21.42-4.5-41.96-4.5-39.69 0-63.08 15.93Q581-385 581-355.08q0 24.62 18.69 41.46 18.69 16.85 48.85 16.85Z" /></svg>
icon:search_loop = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M120-520q0-100.08 69.96-170.04T360-760h240q100.08 0 170.04 69.96T840-520q0 93-61.38 161-61.39 68-153.39 78.08-10.31 1.46-17.77-3.77-7.46-5.23-7.46-14.54 0-9.31 7.73-14.77 7.73-5.46 18.04-7.15 75.92-9.85 125.08-66.27Q800-443.85 800-520q0-83-58.5-141.5T600-720H360q-83 0-141.5 58.5T160-520q0 83.77 58.12 142.27 58.11 58.5 141.88 58.5h54.69l-69.07-69.85q-5.62-5.61-5.62-13.65t5.85-13.89Q352.23-423 360-423q7.77 0 14.15 6.38l94.77 94.77q9.7 9.7 9.7 22.62 0 12.92-9.7 22.61l-95.54 95.54q-5.61 5.62-13.65 5.62t-13.88-5.62q-6.62-5.84-6.23-14.27.38-8.42 6.23-14.27l69.61-69.61H360q-100.08 0-170.04-70.35Q120-419.92 120-520Z" /></svg>
@@ -56,10 +58,31 @@ icon:sb_outline = <svg xmlns="http://www.w3.org/2000/svg" height="128" view
icon:sb_project = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M569.23-152.31v-42.92q0-6.46 2.23-12.04 2.23-5.58 7.46-10.81l203.62-202.61q5.92-5.16 12.31-7.62 6.38-2.46 12.77-2.46 6.61 0 13.38 2.58 6.77 2.57 11.92 7.73l37 37.77q4.93 5.92 7.5 12.31Q880-364 880-357.62q0 6.39-2.08 12.89-2.07 6.5-8 12.42L667.31-129.69q-5.23 5.23-10.81 7.46-5.58 2.23-12.04 2.23h-42.92q-13.92 0-23.12-9.19-9.19-9.19-9.19-23.12Zm238.39-167.07 37-38.24-37-37.76-38 38 38 38ZM184.62-200q-27.62 0-46.12-18.5Q120-237 120-264.62v-430.76q0-27.62 18.5-46.12Q157-760 184.62-760H357q12.92 0 25.12 5.23 12.19 5.23 20.88 13.92L463.85-680h311.53q27.62 0 46.12 18.5Q840-643 840-615.38v61.46q0 12.61-9.88 20.92-9.89 8.31-22.74 6.85H804.85q-22.62 0-44.43 8.46-21.8 8.46-40.27 24.61L493-266.69q-8.69 8.69-13.92 20.5t-5.23 24.73v.69q0 8.54-6.12 14.65-6.11 6.12-14.65 6.12H184.62Z" /></svg>
icon:sb_search = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M381.54-350.77q-95.92 0-162.58-66.65-66.65-66.66-66.65-162.58 0-95.92 66.65-162.58 66.66-66.65 162.58-66.65 95.92 0 162.58 66.65 66.65 66.66 66.65 162.58 0 41.69-14.77 80.69t-38.77 66.69l236.31 236.31q5.61 5.62 6 13.77.38 8.16-6 14.54-6.39 6.38-14.16 6.38-7.76 0-14.15-6.38L528.92-404.31q-30 25.54-69 39.54t-78.38 14Zm0-40q79.61 0 134.42-54.81 54.81-54.8 54.81-134.42 0-79.62-54.81-134.42-54.81-54.81-134.42-54.81-79.62 0-134.42 54.81-54.81 54.8-54.81 134.42 0 79.62 54.81 134.42 54.8 54.81 134.42 54.81Z" /></svg>
icon:sb_stats = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M672.31-200q-13.73 0-23.02-9.29T640-232.31V-360q0-13.73 9.29-23.02t23.02-9.29h55.38q13.73 0 23.02 9.29T760-360v127.69q0 13.73-9.29 23.02T727.69-200h-55.38Zm-220 0q-13.73 0-23.02-9.29T420-232.31v-495.38q0-13.73 9.29-23.02t23.02-9.29h55.38q13.73 0 23.02 9.29t9.29 23.02v495.38q0 13.73-9.29 23.02T507.69-200h-55.38Zm-220 0q-13.73 0-23.02-9.29T200-232.31v-302.7q0-14.3 9.29-23.49 9.29-9.19 23.02-9.19h55.38q13.73 0 23.02 9.29 9.29 9.28 9.29 23.02v302.7q0 14.3-9.29 23.49-9.29 9.19-23.02 9.19h-55.38Z" /></svg>
icon:theme_light = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M480-320q-66.85 0-113.42-46.58Q320-413.15 320-480t46.58-113.42Q413.15-640 480-640t113.42 46.58Q640-546.85 640-480t-46.58 113.42Q546.85-320 480-320ZM80-460q-8.5 0-14.25-5.76T60-480.03q0-8.51 5.75-14.24T80-500h100q8.5 0 14.25 5.76t5.75 14.27q0 8.51-5.75 14.24T180-460H80Zm700 0q-8.5 0-14.25-5.76T760-480.03q0-8.51 5.75-14.24T780-500h100q8.5 0 14.25 5.76t5.75 14.27q0 8.51-5.75 14.24T880-460H780ZM479.97-760q-8.51 0-14.24-5.75T460-780v-100q0-8.5 5.76-14.25t14.27-5.75q8.51 0 14.24 5.75T500-880v100q0 8.5-5.76 14.25T479.97-760Zm0 700q-8.51 0-14.24-5.75T460-80v-100q0-8.5 5.76-14.25t14.27-5.75q8.51 0 14.24 5.75T500-180v100q0 8.5-5.76 14.25T479.97-60ZM254.46-678.77l-57.61-55.85q-5.85-5.61-5.73-13.76.11-8.16 5.96-14.77 6.38-6.62 14.15-6.62 7.77 0 14.15 6.62L282-706.31q6.38 6.62 6.38 14.16 0 7.53-6 14.15t-13.65 6.12q-7.65-.5-14.27-6.89Zm480.16 481.92L678-253.69q-6.38-6.62-6.38-14.27 0-7.66 6.38-14.04 5.23-6.62 13.08-6.12 7.84.5 14.46 6.89l57.61 55.85q5.85 5.61 5.73 13.76-.11 8.16-5.96 14.77-6.38 6.62-14.15 6.62-7.77 0-14.15-6.62ZM678-677.62q-6.62-6-6.12-13.65t6.89-14.27l55.85-57.61q5.61-5.85 13.76-5.73 8.16.11 14.77 5.96 6.62 6.38 6.62 14.15 0 7.77-6.62 14.15L706.31-678q-6.62 6.38-14.16 6.38-7.53 0-14.15-6ZM196.85-196.68q-6.62-6.78-6.62-14.55 0-7.77 6.62-14.15L253.69-282q6.62-6.38 14.27-6.38 7.66 0 14.04 6.38 5.85 5.23 5.35 13.08-.5 7.84-6.12 14.46l-55.85 57.61q-6.38 6.62-14.15 6.5-7.77-.11-14.38-6.33Z" /></svg>
icon:theme_dark = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M482.31-160Q349-160 255.65-253.35 162.31-346.69 162.31-480q0-98.77 56.54-181.42 56.53-82.66 160.38-118.89 12.23-4.31 21.46-2.27 9.23 2.04 15.23 7.96 6 5.93 7.66 15.24 1.65 9.3-2.5 19.53-7.77 19.08-11.27 38.85-3.5 19.77-3.5 41 0 106.92 74.54 181.46Q555.38-404 662.31-404q27.92 0 51.11-5.92 23.2-5.93 39.5-9.62 8.7-1.61 15.96.42 7.27 2.04 11.66 7.04 4.61 5 6.27 12.31 1.65 7.31-1.89 16.69-28.61 98-112.11 160.54Q589.31-160 482.31-160Z" /></svg>
icon:theme_auto = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M480.13-120q-74.67 0-140.41-28.34-65.73-28.34-114.36-76.92-48.63-48.58-76.99-114.26Q120-405.19 120-479.87q0-74.67 28.34-140.41 28.34-65.73 76.92-114.36 48.58-48.63 114.26-76.99Q405.19-840 479.87-840q74.67 0 140.41 28.34 65.73 28.34 114.36 76.92 48.63 48.58 76.99 114.26Q840-554.81 840-480.13q0 74.67-28.34 140.41-28.34 65.73-76.92 114.36-48.58 48.63-114.26 76.99Q554.81-120 480.13-120ZM500-160.69q123.62-8.08 211.81-98.35T800-480q0-130.69-87.42-220.19-87.43-89.5-212.58-99.12v638.62Z" /></svg>
icon:btn_ok = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="m422.46-380.31-99.84-99.84q-5.62-5.62-13.77-6-8.16-.39-14.54 6-6.39 6.38-6.39 14.15 0 7.77 6.39 14.15l105.54 105.54q9.69 9.69 22.61 9.69t22.62-9.69l219.07-219.07q5.62-5.62 6-13.77.39-8.16-6-14.54-6.38-6.39-14.15-6.39-7.77 0-14.15 6.39L422.46-380.31ZM480.13-120q-74.67 0-140.41-28.34-65.73-28.34-114.36-76.92-48.63-48.58-76.99-114.26Q120-405.19 120-479.87q0-74.67 28.34-140.41 28.34-65.73 76.92-114.36 48.58-48.63 114.26-76.99Q405.19-840 479.87-840q74.67 0 140.41 28.34 65.73 28.34 114.36 76.92 48.63 48.58 76.99 114.26Q840-554.81 840-480.13q0 74.67-28.34 140.41-28.34 65.73-76.92 114.36-48.58 48.63-114.26 76.99Q554.81-120 480.13-120Z" /></svg>
icon:btn_cancel = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="m480-451.69 129.85 129.84q5.61 5.62 13.77 6 8.15.39 14.53-6 6.39-6.38 6.39-14.15 0-7.77-6.39-14.15L508.31-480l129.84-129.85q5.62-5.61 6-13.77.39-8.15-6-14.53-6.38-6.39-14.15-6.39-7.77 0-14.15 6.39L480-508.31 350.15-638.15q-5.61-5.62-13.77-6-8.15-.39-14.53 6-6.39 6.38-6.39 14.15 0 7.77 6.39 14.15L451.69-480 321.85-350.15q-5.62 5.61-6 13.77-.39 8.15 6 14.53 6.38 6.39 14.15 6.39 7.77 0 14.15-6.39L480-451.69Zm.13 331.69q-74.67 0-140.41-28.34-65.73-28.34-114.36-76.92-48.63-48.58-76.99-114.26Q120-405.19 120-479.87q0-74.67 28.34-140.41 28.34-65.73 76.92-114.36 48.58-48.63 114.26-76.99Q405.19-840 479.87-840q74.67 0 140.41 28.34 65.73 28.34 114.36 76.92 48.63 48.58 76.99 114.26Q840-554.81 840-480.13q0 74.67-28.34 140.41-28.34 65.73-76.92 114.36-48.58 48.63-114.26 76.99Q554.81-120 480.13-120Z" /></svg>
icon:btn_yes = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="m422.46-380.31-99.84-99.84q-5.62-5.62-13.77-6-8.16-.39-14.54 6-6.39 6.38-6.39 14.15 0 7.77 6.39 14.15l105.54 105.54q9.69 9.69 22.61 9.69t22.62-9.69l219.07-219.07q5.62-5.62 6-13.77.39-8.16-6-14.54-6.38-6.39-14.15-6.39-7.77 0-14.15 6.39L422.46-380.31ZM480.13-120q-74.67 0-140.41-28.34-65.73-28.34-114.36-76.92-48.63-48.58-76.99-114.26Q120-405.19 120-479.87q0-74.67 28.34-140.41 28.34-65.73 76.92-114.36 48.58-48.63 114.26-76.99Q405.19-840 479.87-840q74.67 0 140.41 28.34 65.73 28.34 114.36 76.92 48.63 48.58 76.99 114.26Q840-554.81 840-480.13q0 74.67-28.34 140.41-28.34 65.73-76.92 114.36-48.58 48.63-114.26 76.99Q554.81-120 480.13-120Z" /></svg>
icon:btn_no = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M320-460h320q8.5 0 14.25-5.76t5.75-14.27q0-8.51-5.75-14.24T640-500H320q-8.5 0-14.25 5.76T300-479.97q0 8.51 5.75 14.24T320-460Zm160.13 340q-74.67 0-140.41-28.34-65.73-28.34-114.36-76.92-48.63-48.58-76.99-114.26Q120-405.19 120-479.87q0-74.67 28.34-140.41 28.34-65.73 76.92-114.36 48.58-48.63 114.26-76.99Q405.19-840 479.87-840q74.67 0 140.41 28.34 65.73 28.34 114.36 76.92 48.63 48.58 76.99 114.26Q840-554.81 840-480.13q0 74.67-28.34 140.41-28.34 65.73-76.92 114.36-48.58 48.63-114.26 76.99Q554.81-120 480.13-120Z" /></svg>
icon:btn_open = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M224.62-160q-27.62 0-46.12-18.5Q160-197 160-224.62v-510.76q0-27.62 18.5-46.12Q197-800 224.62-800h204.61q8.54 0 14.27 5.73t5.73 14.27q0 8.54-5.73 14.27T429.23-760H224.62q-9.24 0-16.93 7.69-7.69 7.69-7.69 16.93v510.76q0 9.24 7.69 16.93 7.69 7.69 16.93 7.69h510.76q9.24 0 16.93-7.69 7.69-7.69 7.69-16.93v-204.61q0-8.54 5.73-14.27t14.27-5.73q8.54 0 14.27 5.73t5.73 14.27v204.61q0 27.62-18.5 46.12Q763-160 735.38-160H224.62ZM760-731.69 403.69-375.38q-5.61 5.61-13.77 6-8.15.38-14.54-6-6.38-6.39-6.38-14.16 0-7.77 6.38-14.15L731.69-760H580q-8.54 0-14.27-5.73T560-780q0-8.54 5.73-14.27T580-800h187.69q13.93 0 23.12 9.19 9.19 9.19 9.19 23.12V-580q0 8.54-5.73 14.27T780-560q-8.54 0-14.27-5.73T760-580v-151.69Z" /></svg>
icon:btn_close = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="m480-451.69 129.85 129.84q5.61 5.62 13.77 6 8.15.39 14.53-6 6.39-6.38 6.39-14.15 0-7.77-6.39-14.15L508.31-480l129.84-129.85q5.62-5.61 6-13.77.39-8.15-6-14.53-6.38-6.39-14.15-6.39-7.77 0-14.15 6.39L480-508.31 350.15-638.15q-5.61-5.62-13.77-6-8.15-.39-14.53 6-6.39 6.38-6.39 14.15 0 7.77 6.39 14.15L451.69-480 321.85-350.15q-5.62 5.61-6 13.77-.39 8.15 6 14.53 6.38 6.39 14.15 6.39 7.77 0 14.15-6.39L480-451.69Zm.13 331.69q-74.67 0-140.41-28.34-65.73-28.34-114.36-76.92-48.63-48.58-76.99-114.26Q120-405.19 120-479.87q0-74.67 28.34-140.41 28.34-65.73 76.92-114.36 48.58-48.63 114.26-76.99Q405.19-840 479.87-840q74.67 0 140.41 28.34 65.73 28.34 114.36 76.92 48.63 48.58 76.99 114.26Q840-554.81 840-480.13q0 74.67-28.34 140.41-28.34 65.73-76.92 114.36-48.58 48.63-114.26 76.99Q554.81-120 480.13-120Z" /></svg>
icon:btn_save = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="m697.38-171.08-94.76-94.77q-5.62-5.36-5.62-13.64 0-8.28 5.62-13.89 5.61-5.62 13.38-6 7.77-.39 13.38 5.23L700-223.54V-399q0-8.5 5.76-14.25t14.27-5.75q8.51 0 14.24 5.75T740-399v175.46l70.62-70.61q5.35-5.62 13.64-5.62 8.28 0 13.89 5.62 5.62 5.61 5.62 13.89 0 8.29-5.62 13.64l-95.53 95.54q-9.7 9.7-22.62 9.7-12.92 0-22.62-9.7ZM600-20q-8.5 0-14.25-5.76T580-40.03q0-8.51 5.75-14.24T600-60h240q8.5 0 14.25 5.76T860-39.97q0 8.51-5.75 14.24T840-20H600ZM244.62-180q-26.08 0-45.35-19.27Q180-218.54 180-244.62v-550.76q0-26.08 19.27-45.35Q218.54-860 244.62-860h248.53q13.27 0 25.29 5.23t20.71 13.92l181.7 181.7q8.69 8.69 13.92 20.71 5.23 12.02 5.23 25.29v66.46q0 13.73-9.29 23.02t-23.02 9.29H549.23q-26.65 0-45.63 18.98-18.98 18.98-18.98 45.63v237.46q0 13.73-9.29 23.02T452.31-180H244.62Zm303.84-440H700L500-820l200 200-200-200v151.54q0 20.19 14.13 34.33Q528.27-620 548.46-620Z" /></svg>
icon:btn_browse = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M180-200q-25.31 0-42.65-17.35Q120-234.69 120-260v-435.38q0-25.31 19.65-44.97Q159.31-760 184.62-760H357q12.92 0 25.12 5.23 12.19 5.23 20.88 13.92L463.85-680h349.23q8.54 0 14.27 5.73t5.73 14.27q0 8.54-5.73 14.27T813.08-640H297.85Q242-640 201-604.08q-41 35.93-41 90.54v248.92q0 8.47 4.23 13.85 4.23 5.39 11.15 9.23l76.7-256.84q6.46-20.62 23.73-33.43 17.27-12.81 38.65-12.81h512.92q32.54 0 52.2 25.97 19.65 25.96 10.19 57.03l-65.85 219.24q-5.69 19.07-21.8 30.73Q786-200 766.15-200H180Z" /></svg>
icon:btn_list = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M404.62-220q-8.5 0-14.25-5.76t-5.75-14.27q0-8.51 5.75-14.24t14.25-5.73H780q8.5 0 14.25 5.76t5.75 14.27q0 8.51-5.75 14.24T780-220H404.62Zm0-240q-8.5 0-14.25-5.76t-5.75-14.27q0-8.51 5.75-14.24t14.25-5.73H780q8.5 0 14.25 5.76t5.75 14.27q0 8.51-5.75 14.24T780-460H404.62Zm0-240q-8.5 0-14.25-5.76t-5.75-14.27q0-8.51 5.75-14.24t14.25-5.73H780q8.5 0 14.25 5.76t5.75 14.27q0 8.51-5.75 14.24T780-700H404.62ZM213.08-186.92q-21.9 0-37.49-15.59Q160-218.11 160-240t15.59-37.49q15.59-15.59 37.49-15.59 21.89 0 37.48 15.59 15.59 15.6 15.59 37.49t-15.59 37.49q-15.59 15.59-37.48 15.59Zm0-240q-21.9 0-37.49-15.59Q160-458.11 160-480t15.59-37.49q15.59-15.59 37.49-15.59 21.89 0 37.48 15.59 15.59 15.6 15.59 37.49t-15.59 37.49q-15.59 15.59-37.48 15.59Zm0-240q-21.9 0-37.49-15.59Q160-698.11 160-720t15.59-37.49q15.59-15.59 37.49-15.59 21.89 0 37.48 15.59 15.59 15.6 15.59 37.49t-15.59 37.49q-15.59 15.59-37.48 15.59Z" /></svg>
icon:btn_new = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M224.62-160q-27.62 0-46.12-18.5Q160-197 160-224.62v-510.76q0-27.62 18.5-46.12Q197-800 224.62-800h180q8.5 0 14.25 5.76t5.75 14.27q0 8.51-5.75 14.24T404.62-760h-180q-9.24 0-16.93 7.69-7.69 7.69-7.69 16.93v510.76q0 9.24 7.69 16.93 7.69 7.69 16.93 7.69h510.76q9.24 0 16.93-7.69 7.69-7.69 7.69-16.93v-180q0-8.5 5.76-14.25t14.27-5.75q8.51 0 14.24 5.75t5.73 14.25v180q0 27.62-18.5 46.12Q763-160 735.38-160H224.62ZM640-640H540q-8.5 0-14.25-5.76T520-660.03q0-8.51 5.75-14.24T540-680h100v-100q0-8.5 5.76-14.25t14.27-5.75q8.51 0 14.24 5.75T680-780v100h100q8.5 0 14.25 5.76t5.75 14.27q0 8.51-5.75 14.24T780-640H680v100q0 8.5-5.76 14.25T659.97-520q-8.51 0-14.24-5.75T640-540v-100Z" /></svg>
icon:btn_create = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="m480-315.92-145.23 87.69q-6.39 3.15-11.85 2.54-5.46-.62-10.61-3.77-5.16-3.16-7.85-9.04-2.69-5.88-.46-12.73l38.62-164.39-127.77-110.84q-5.39-4.39-7.12-10.5-1.73-6.12.73-11.73 2.46-5.62 6.62-9.16 4.15-3.53 11.23-4.77l168.61-14.69L460.69-733q2.69-6.62 7.81-9.54 5.12-2.92 11.5-2.92t11.5 2.92q5.12 2.92 7.81 9.54l65.77 155.69 168.61 14.69q7.08 1.24 11.23 4.77 4.16 3.54 6.62 9.16 2.46 5.61.73 11.73-1.73 6.11-7.12 10.5L617.38-415.62 656-251.23q2.23 6.85-.46 12.73-2.69 5.88-7.85 9.04-5.15 3.15-10.61 3.77-5.46.61-11.85-2.54L480-315.92Z" /></svg>
icon:btn_reset = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M316.15-240q-8.53 0-14.27-5.73-5.73-5.73-5.73-14.27t5.73-14.27q5.74-5.73 14.27-5.73h270.16q62.23 0 106.04-42.69 43.8-42.69 43.8-104.23 0-61.54-43.8-103.85-43.81-42.31-106.04-42.31H276.62l104.46 104.46q6.38 6.39 6.38 14.16 0 7.77-6.38 14.15-6.39 6.39-14.54 6-8.16-.38-13.77-6L222.62-570.46q-5.24-5.23-7.35-10.69-2.12-5.47-2.12-11.93t2.12-11.92q2.11-5.46 7.35-10.69l130.15-130.16q6.38-6.38 14.15-6.38 7.77 0 14.16 6.38 6.38 6.39 6 14.54-.39 8.16-6 13.77L276.62-613.08h309.69q78.54 0 134.19 54.16 55.65 54.15 55.65 132 0 77.84-55.65 132.38Q664.85-240 586.31-240H316.15Z" /></svg>
icon:btn_insert = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M460-600H360q-8.5 0-14.25-5.76T340-620.03q0-8.51 5.75-14.24T360-640h240q8.5 0 14.25 5.76t5.75 14.27q0 8.51-5.75 14.24T600-600H500v260q0 8.5-5.76 14.25T479.97-320q-8.51 0-14.24-5.75T460-340v-260ZM95.38-127.69v-104.62q0-13.73 9.29-23.02t23.02-9.29H160v-430.76h-32.44q-13.79 0-22.98-9.29-9.2-9.29-9.2-23.02v-104.62q0-13.73 9.29-23.02t23.02-9.29h104.62q13.73 0 23.02 9.29t9.29 23.02V-800h430.76v-32.44q0-13.79 9.29-22.98 9.29-9.2 23.02-9.2h104.62q13.73 0 23.02 9.29t9.29 23.02v104.62q0 13.73-9.29 23.02t-23.02 9.29H800v430.76h32.44q13.79 0 22.98 9.29 9.2 9.29 9.2 23.02v104.62q0 13.73-9.29 23.02t-23.02 9.29H727.69q-13.73 0-23.02-9.29t-9.29-23.02V-160H264.62v32.44q0 13.79-9.29 22.98-9.29 9.2-23.02 9.2H127.69q-13.73 0-23.02-9.29t-9.29-23.02ZM264.62-200h430.76v-32.44q0-13.79 9.29-22.98 9.29-9.2 23.02-9.2H760v-430.76h-32.44q-13.79 0-22.98-9.29-9.2-9.29-9.2-23.02V-760H264.62v32.44q0 13.79-9.29 22.98-9.29 9.2-23.02 9.2H200v430.76h32.44q13.79 0 22.98 9.29 9.2 9.29 9.2 23.02V-200Z" /></svg>
icon:btn_apply = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="m424-396.31-99.85-99.84q-5.61-5.62-13.77-6-8.15-.39-14.53 6-6.39 6.38-6.39 14.15 0 7.77 6.39 14.15l105.53 105.54q9.7 9.69 22.62 9.69 12.92 0 22.62-9.69l219.07-219.07q5.62-5.62 6-13.77.39-8.16-6-14.54-6.38-6.39-14.15-6.39-7.77 0-14.16 6.39L424-396.31ZM224.62-160q-27.62 0-46.12-18.5Q160-197 160-224.62v-510.76q0-27.62 18.5-46.12Q197-800 224.62-800h510.76q27.62 0 46.12 18.5Q800-763 800-735.38v510.76q0 27.62-18.5 46.12Q763-160 735.38-160H224.62Z" /></svg>
icon:btn_build = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M763.85-257.38V-190q0 6.15 4.61 10.77 4.62 4.61 10.77 4.61 6.15 0 10.77-4.61 4.62-4.62 4.62-10.77v-103.85q0-6.46-4.85-11.3-4.85-4.85-11.31-4.85H674.62q-6.16 0-10.77 4.62-4.62 4.61-4.62 10.76 0 6.16 4.62 10.77 4.61 4.62 10.77 4.62H742l-90.31 90.31q-4.46 4.46-4.84 10.54-.39 6.07 4.84 11.3 4.74 4.46 11.07 4.46 6.32 0 10.78-4.46l90.31-90.3ZM720-75.38q-66.85 0-113.42-46.58Q560-168.54 560-235.38q0-66.85 46.58-113.43 46.57-46.57 113.42-46.57t113.42 46.57Q880-302.23 880-235.38q0 66.84-46.58 113.42Q786.85-75.38 720-75.38ZM320-610.77h320q8.5 0 14.25-5.76 5.75-5.75 5.75-14.27 0-8.51-5.75-14.24T640-650.77H320q-8.5 0-14.25 5.76T300-630.74q0 8.51 5.75 14.24t14.25 5.73ZM224.62-160q-26.66 0-45.64-18.98T160-224.62v-510.76q0-26.66 18.98-45.64T224.62-800h510.76q26.66 0 45.64 18.98T800-735.38v200.3q0 15.09-11.15 23.47-11.16 8.38-25.85 5.46-10.08-2.7-20.95-3.66-10.88-.96-22.05-.96-20.23 0-39.35 3.19-19.11 3.2-37.57 9.04-4.5-.97-10-1.22-5.5-.24-10-.24H320q-8.5 0-14.25 5.76T300-479.97q0 8.51 5.75 14.24T320-460h243.46q-30.31 20.85-53.27 48.92-22.96 28.08-37.81 61.85H320q-8.5 0-14.25 5.76-5.75 5.75-5.75 14.27 0 8.51 5.75 14.24t14.25 5.73h138.38q-4.3 16.92-6.73 34.11-2.42 17.2-2.42 35.12 0 10 .46 21.08.46 11.07 2.39 22.69 1.92 13.92-6.21 25.08Q437.74-160 423.92-160h-199.3Z" /></svg>
icon:btn_print = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M344.62-160q-26.66 0-45.64-18.98T280-224.62V-320h-72.31q-26.65 0-45.63-18.98-18.98-18.98-18.98-45.64v-150.76q0-34 23.07-57 23.08-23 56.93-23h513.84q34 0 57 23t23 57v150.76q0 26.66-18.98 45.64T752.31-320H680v95.38q0 26.66-18.98 45.64T615.38-160H344.62ZM680-646.15H280v-64.76q0-26.71 18.98-45.59 18.98-18.89 45.64-18.89h270.76q26.66 0 45.64 18.99Q680-737.42 680-710.77v64.62Zm24.62 170.77q17 0 28.5-11.5t11.5-28.5q0-17-11.5-28.5t-28.5-11.5q-17 0-28.5 11.5t-11.5 28.5q0 17 11.5 28.5t28.5 11.5ZM344.62-200h270.76q10.77 0 17.7-6.92 6.92-6.93 6.92-17.7v-132.3q0-10.77-6.92-17.7-6.93-6.92-17.7-6.92H344.62q-10.77 0-17.7 6.92-6.92 6.93-6.92 17.7v132.3q0 10.77 6.92 17.7 6.93 6.92 17.7 6.92Z" /></svg>
icon:btn_preview = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M224.62-160q-26.66 0-45.64-18.98T160-224.62v-510.76q0-26.66 18.98-45.64T224.62-800h510.76q26.66 0 45.64 18.98T800-735.38v510.76q0 26.66-18.98 45.64T735.38-160H224.62Zm0-40h510.76q10.77 0 17.7-6.92 6.92-6.93 6.92-17.7V-680H200v455.38q0 10.77 6.92 17.7 6.93 6.92 17.7 6.92ZM480-320q-65.08 0-117.27-33.35-52.19-33.34-78.88-86.65 26.69-53.31 78.88-86.65Q414.92-560 480-560t117.27 33.35q52.19 33.34 78.88 86.65-26.69 53.31-78.88 86.65Q545.08-320 480-320Zm-.18-75.38q-18.67 0-31.55-13.07-12.89-13.07-12.89-31.73 0-18.67 13.07-31.55 13.07-12.89 31.73-12.89 18.67 0 31.55 13.07 12.89 13.07 12.89 31.73 0 18.67-13.07 31.55-13.07 12.89-31.73 12.89Zm.18 30.76q31.23 0 53.31-22.07 22.07-22.08 22.07-53.31 0-31.23-22.07-53.31-22.08-22.07-53.31-22.07-31.23 0-53.31 22.07-22.07 22.08-22.07 53.31 0 31.23 22.07 53.31 22.08 22.07 53.31 22.07Z" /></svg>
icon:add = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M460-460H260q-8.5 0-14.25-5.76T240-480.03q0-8.51 5.75-14.24T260-500h200v-200q0-8.5 5.76-14.25t14.27-5.75q8.51 0 14.24 5.75T500-700v200h200q8.5 0 14.25 5.76t5.75 14.27q0 8.51-5.75 14.24T700-460H500v200q0 8.5-5.76 14.25T479.97-240q-8.51 0-14.24-5.75T460-260v-200Z" /></svg>
icon:bookmarks = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="m420-203.08-149.54 64.31q-32.31 13.92-61.38-5.35Q180-163.38 180-197.92v-457.46q0-27.62 18.5-46.12Q217-720 244.62-720h350.76q27.62 0 46.12 18.5Q660-683 660-655.38v457.46q0 34.54-29.08 53.8-29.07 19.27-61.38 5.35L420-203.08ZM760-220q-8.54 0-14.27-5.73T740-240v-535.39q0-9.23-7.69-16.92-7.69-7.69-16.93-7.69H320q-8.54 0-14.27-5.73T300-820q0-8.54 5.73-14.27T320-840h395.38q27.62 0 46.12 18.5Q780-803 780-775.39V-240q0 8.54-5.73 14.27T760-220Z" /></svg>
icon:browse = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M180-200q-25.31 0-42.65-17.35Q120-234.69 120-260v-435.38q0-25.31 19.65-44.97Q159.31-760 184.62-760H357q12.92 0 25.12 5.23 12.19 5.23 20.88 13.92L463.85-680h349.23q8.54 0 14.27 5.73t5.73 14.27q0 8.54-5.73 14.27T813.08-640H297.85Q242-640 201-604.08q-41 35.93-41 90.54v248.92q0 8.47 4.23 13.85 4.23 5.39 11.15 9.23l76.7-256.84q6.46-20.62 23.73-33.43 17.27-12.81 38.65-12.81h512.92q32.54 0 52.2 25.97 19.65 25.96 10.19 57.03l-65.85 219.24q-5.69 19.07-21.8 30.73Q786-200 766.15-200H180Z" /></svg>
icon:build_settings = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M763.85-257.38V-190q0 6.15 4.61 10.77 4.62 4.61 10.77 4.61 6.15 0 10.77-4.61 4.62-4.62 4.62-10.77v-103.85q0-6.46-4.85-11.3-4.85-4.85-11.31-4.85H674.62q-6.16 0-10.77 4.62-4.62 4.61-4.62 10.76 0 6.16 4.62 10.77 4.61 4.62 10.77 4.62H742l-90.31 90.31q-4.46 4.46-4.84 10.54-.39 6.07 4.84 11.3 4.74 4.46 11.07 4.46 6.32 0 10.78-4.46l90.31-90.3ZM720-75.38q-66.85 0-113.42-46.58Q560-168.54 560-235.38q0-66.85 46.58-113.43 46.57-46.57 113.42-46.57t113.42 46.57Q880-302.23 880-235.38q0 66.84-46.58 113.42Q786.85-75.38 720-75.38ZM320-610.77h320q8.5 0 14.25-5.76 5.75-5.75 5.75-14.27 0-8.51-5.75-14.24T640-650.77H320q-8.5 0-14.25 5.76T300-630.74q0 8.51 5.75 14.24t14.25 5.73ZM224.62-160q-26.66 0-45.64-18.98T160-224.62v-510.76q0-26.66 18.98-45.64T224.62-800h510.76q26.66 0 45.64 18.98T800-735.38v200.3q0 15.09-11.15 23.47-11.16 8.38-25.85 5.46-10.08-2.7-20.95-3.66-10.88-.96-22.05-.96-20.23 0-39.35 3.19-19.11 3.2-37.57 9.04-4.5-.97-10-1.22-5.5-.24-10-.24H320q-8.5 0-14.25 5.76T300-479.97q0 8.51 5.75 14.24T320-460h243.46q-30.31 20.85-53.27 48.92-22.96 28.08-37.81 61.85H320q-8.5 0-14.25 5.76-5.75 5.75-5.75 14.27 0 8.51 5.75 14.24t14.25 5.73h138.38q-4.3 16.92-6.73 34.11-2.42 17.2-2.42 35.12 0 10 .46 21.08.46 11.07 2.39 22.69 1.92 13.92-6.21 25.08Q437.74-160 423.92-160h-199.3Z" /></svg>
icon:calendar = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M224.62-120q-27.62 0-46.12-18.5Q160-157 160-184.62v-510.76q0-27.62 18.5-46.12Q197-760 224.62-760h70.76v-67.69q0-9.31 6.12-15.43 6.12-6.11 15.42-6.11 9.31 0 15.43 6.11 6.11 6.12 6.11 15.43V-760h286.16v-69.23q0-8.54 5.73-14.27t14.27-5.73q8.53 0 14.26 5.73 5.74 5.73 5.74 14.27V-760h70.76q27.62 0 46.12 18.5Q800-723 800-695.38v510.76q0 27.62-18.5 46.12Q763-120 735.38-120H224.62Zm0-40h510.76q9.24 0 16.93-7.69 7.69-7.69 7.69-16.93v-350.76H200v350.76q0 9.24 7.69 16.93 7.69 7.69 16.93 7.69Z" /></svg>
icon:cancel = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="m480-451.69 129.85 129.84q5.61 5.62 13.77 6 8.15.39 14.53-6 6.39-6.38 6.39-14.15 0-7.77-6.39-14.15L508.31-480l129.84-129.85q5.62-5.61 6-13.77.39-8.15-6-14.53-6.38-6.39-14.15-6.39-7.77 0-14.15 6.39L480-508.31 350.15-638.15q-5.61-5.62-13.77-6-8.15-.39-14.53 6-6.39 6.38-6.39 14.15 0 7.77 6.39 14.15L451.69-480 321.85-350.15q-5.62 5.61-6 13.77-.39 8.15 6 14.53 6.38 6.39 14.15 6.39 7.77 0 14.15-6.39L480-451.69Zm.13 331.69q-74.67 0-140.41-28.34-65.73-28.34-114.36-76.92-48.63-48.58-76.99-114.26Q120-405.19 120-479.87q0-74.67 28.34-140.41 28.34-65.73 76.92-114.36 48.58-48.63 114.26-76.99Q405.19-840 479.87-840q74.67 0 140.41 28.34 65.73 28.34 114.36 76.92 48.63 48.58 76.99 114.26Q840-554.81 840-480.13q0 74.67-28.34 140.41-28.34 65.73-76.92 114.36-48.58 48.63-114.26 76.99Q554.81-120 480.13-120Z" /></svg>
icon:checked = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="m424-396.31-99.85-99.84q-5.61-5.62-13.77-6-8.15-.39-14.53 6-6.39 6.38-6.39 14.15 0 7.77 6.39 14.15l105.53 105.54q9.7 9.69 22.62 9.69 12.92 0 22.62-9.69l219.07-219.07q5.62-5.62 6-13.77.39-8.16-6-14.54-6.38-6.39-14.15-6.39-7.77 0-14.16 6.39L424-396.31ZM224.62-160q-27.62 0-46.12-18.5Q160-197 160-224.62v-510.76q0-27.62 18.5-46.12Q197-800 224.62-800h510.76q27.62 0 46.12 18.5Q800-763 800-735.38v510.76q0 27.62-18.5 46.12Q763-160 735.38-160H224.62Z" /></svg>
icon:chevron_down = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M480-384.85q-6.46 0-11.92-2.11-5.46-2.12-10.7-7.35L281.85-569.85q-5.62-5.61-6-13.77-.39-8.15 6-14.53 6.38-6.39 14.15-6.39 7.77 0 14.15 6.39L480-428.31l169.85-169.84q5.61-5.62 13.77-6 8.15-.39 14.53 6 6.39 6.38 6.39 14.15 0 7.77-6.39 14.15L502.62-394.31q-5.24 5.23-10.7 7.35-5.46 2.11-11.92 2.11Z" /></svg>
@@ -81,6 +104,7 @@ icon:font = <svg xmlns="http://www.w3.org/2000/svg" height="128" view
icon:import = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M224.62-160q-27.62 0-46.12-18.5Q160-197 160-224.62v-76.92q0-8.54 5.73-14.27t14.27-5.73q8.54 0 14.27 5.73t5.73 14.27v76.92q0 9.24 7.69 16.93 7.69 7.69 16.93 7.69h510.76q9.24 0 16.93-7.69 7.69-7.69 7.69-16.93v-449.23H200v101.54q0 8.54-5.73 14.27T180-552.31q-8.54 0-14.27-5.73T160-572.31v-163.07q0-27.62 18.5-46.12Q197-800 224.62-800h510.76q27.62 0 46.12 18.5Q800-763 800-735.38v510.76q0 27.62-18.5 46.12Q763-160 735.38-160H224.62Zm294.69-256.92H180q-8.54 0-14.27-5.73T160-436.92q0-8.54 5.73-14.27t14.27-5.73h339.31l-88.85-90.62q-5.61-5.61-5.34-13.65.26-8.04 6.11-13.89 5.62-5.61 13.77-5.61 8.15 0 13.77 5.61l114.77 115.54q9.69 9.69 9.69 22.62 0 12.92-9.69 22.61L458-298.77q-5.62 5.62-13.65 5.35-8.04-.27-13.89-6.12-5.61-5.61-5.61-13.38 0-7.77 5.61-13.39l88.85-90.61Z" /></svg>
icon:language = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="m566.85-242-42.47 109.31q-2.46 5.61-7.46 9.15T505.31-120q-10.77 0-16.73-8.81-5.96-8.81-1.81-18.81l158.92-400.46q2.69-5.61 7.31-8.77 4.62-3.15 10.46-3.15h14.62q5.84 0 10.46 3.15 4.61 3.16 7.31 8.77l158.92 400.7q4.15 9.76-1.69 18.57-5.85 8.81-16.62 8.81-6.84 0-11.73-3.54-4.88-3.54-7.58-9.38L774.69-242H566.85ZM356.62-431.77l-181.7 182.23q-5.61 6.39-13.65 6.5-8.04.12-14.65-6.5-6.39-6.38-6.39-14.15 0-7.77 6.39-14.16l181.69-182.46q-34.23-35-68.12-86.15Q226.31-597.62 210-640h43.23q14.62 33.62 44.23 77.23 29.62 43.62 59.16 74.15 52.23-53 92.73-116.34 40.5-63.35 53.88-115.04H115.38q-8.53 0-14.26-5.73-5.74-5.73-5.74-14.27t5.74-14.27q5.73-5.73 14.26-5.73H340v-29.23q0-8.54 5.73-14.27t14.27-5.73q8.54 0 14.27 5.73t5.73 14.27V-760h224.62q8.53 0 14.26 5.73 5.74 5.73 5.74 14.27t-5.74 14.27q-5.73 5.73-14.26 5.73h-59.85q-17.92 62.77-61.08 133.77-43.15 71-98.77 126.38l101.39 104.16-15.39 41.23-114.3-117.31Zm223.69 153.62h180.92l-90.46-232.47-90.46 232.47Z" /></svg>
icon:lines = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M180-240q-8.5 0-14.25-5.76T160-260.03q0-8.51 5.75-14.24T180-280h600q8.5 0 14.25 5.76t5.75 14.27q0 8.51-5.75 14.24T780-240H180Zm0-146.92q-8.5 0-14.25-5.76T160-406.95q0-8.51 5.75-14.24t14.25-5.73h600q8.5 0 14.25 5.75 5.75 5.76 5.75 14.27 0 8.52-5.75 14.25T780-386.92H180Zm0-146.16q-8.5 0-14.25-5.75-5.75-5.76-5.75-14.27 0-8.52 5.75-14.25t14.25-5.73h600q8.5 0 14.25 5.76t5.75 14.27q0 8.51-5.75 14.24T780-533.08H180ZM180-680q-8.5 0-14.25-5.76T160-700.03q0-8.51 5.75-14.24T180-720h600q8.5 0 14.25 5.76t5.75 14.27q0 8.51-5.75 14.24T780-680H180Z" /></svg>
icon:link = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M283.08-316.92q-67.68 0-115.38-47.69Q120-412.3 120-479.96t47.7-115.39q47.7-47.73 115.38-47.73h121.54q8.5 0 14.25 5.76t5.75 14.27q0 8.51-5.75 14.24t-14.25 5.73H282.99q-50.68 0-86.84 36.16Q160-530.77 160-480t36.15 86.92q36.16 36.16 86.84 36.16h121.63q8.5 0 14.25 5.75 5.75 5.76 5.75 14.27 0 8.52-5.75 14.25t-14.25 5.73H283.08ZM360-460q-8.5 0-14.25-5.76T340-480.03q0-8.51 5.75-14.24T360-500h240q8.5 0 14.25 5.76t5.75 14.27q0 8.51-5.75 14.24T600-460H360Zm195.38 143.08q-8.5 0-14.25-5.76t-5.75-14.27q0-8.51 5.75-14.24t14.25-5.73h121.63q50.68 0 86.84-36.16Q800-429.23 800-480t-36.15-86.92q-36.16-36.16-86.84-36.16H555.38q-8.5 0-14.25-5.75-5.75-5.76-5.75-14.27 0-8.52 5.75-14.25t14.25-5.73h121.54q67.68 0 115.38 47.69Q840-547.7 840-480.04t-47.7 115.39q-47.7 47.73-115.38 47.73H555.38Z" /></svg>
icon:list = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M404.62-220q-8.5 0-14.25-5.76t-5.75-14.27q0-8.51 5.75-14.24t14.25-5.73H780q8.5 0 14.25 5.76t5.75 14.27q0 8.51-5.75 14.24T780-220H404.62Zm0-240q-8.5 0-14.25-5.76t-5.75-14.27q0-8.51 5.75-14.24t14.25-5.73H780q8.5 0 14.25 5.76t5.75 14.27q0 8.51-5.75 14.24T780-460H404.62Zm0-240q-8.5 0-14.25-5.76t-5.75-14.27q0-8.51 5.75-14.24t14.25-5.73H780q8.5 0 14.25 5.76t5.75 14.27q0 8.51-5.75 14.24T780-700H404.62ZM213.08-186.92q-21.9 0-37.49-15.59Q160-218.11 160-240t15.59-37.49q15.59-15.59 37.49-15.59 21.89 0 37.48 15.59 15.59 15.6 15.59 37.49t-15.59 37.49q-15.59 15.59-37.48 15.59Zm0-240q-21.9 0-37.49-15.59Q160-458.11 160-480t15.59-37.49q15.59-15.59 37.49-15.59 21.89 0 37.48 15.59 15.59 15.6 15.59 37.49t-15.59 37.49q-15.59 15.59-37.48 15.59Zm0-240q-21.9 0-37.49-15.59Q160-698.11 160-720t15.59-37.49q15.59-15.59 37.49-15.59 21.89 0 37.48 15.59 15.59 15.6 15.59 37.49t-15.59 37.49q-15.59 15.59-37.48 15.59Z" /></svg>
icon:margin_bottom = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M220-160q-8.5 0-14.25-5.76T200-180.03q0-8.51 5.75-14.24T220-200h520q8.5 0 14.25 5.76t5.75 14.27q0 8.51-5.75 14.24T740-160H220Zm259.9-160.85q-6.36 0-11.82-2.11-5.46-2.12-10.7-7.35L321.85-465.85q-5.62-5.61-6-13.77-.39-8.15 6-14.53 6.38-6.39 14.15-6.39 7.77 0 14.15 6.39L460-384.31V-780q0-8.5 5.76-14.25t14.27-5.75q8.51 0 14.24 5.75T500-780v395.69l109.85-109.84q5.61-5.62 13.77-6 8.15-.39 14.53 6 6.39 6.38 6.39 14.15 0 7.77-6.39 14.15L502.62-330.31q-5.24 5.23-10.8 7.35-5.56 2.11-11.92 2.11Z" /></svg>
icon:margin_left = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M139.97-260q-8.51 0-14.24-5.75T120-280v-400q0-8.5 5.76-14.25t14.27-5.75q8.51 0 14.24 5.75T160-680v400q0 8.5-5.76 14.25T139.97-260Zm191.49-200 149.62 149.62q5.84 5.84 6.23 14.26.38 8.43-6.23 14.27-5.85 5.62-13.89 5.62-8.04 0-13.65-5.62L278-457.38q-5.23-5.24-7.35-10.8-2.11-5.56-2.11-11.92t2.11-11.82q2.12-5.46 7.35-10.7l174.77-175.53q5.36-5.62 13.64-5.62 8.28 0 13.76 5.48 5.98 5.98 6.25 14.02.27 8.04-5.34 13.65L332.23-500H820q8.5 0 14.25 5.76t5.75 14.27q0 8.51-5.75 14.24T820-460H331.46Z" /></svg>
@@ -91,7 +115,6 @@ icon:minimise = <svg xmlns="http://www.w3.org/2000/svg" height="128" view
icon:more_arrow = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M436.4-350.31q-6.71 0-11.55-4.44-4.85-4.44-4.85-11.71v-227.08q0-7.27 4.95-11.71 4.95-4.44 11.55-4.44 1.65 0 11.35 5.23l107.07 107.08q3.7 3.69 5.7 7.97 2 4.28 2 9.41t-2 9.41q-2 4.28-5.7 7.98L447.83-355.52q-2.21 2.21-5.15 3.71-2.93 1.5-6.28 1.5Z" /></svg>
icon:more_vertical = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M480-218.46q-16.5 0-28.25-11.75T440-258.46q0-16.5 11.75-28.25T480-298.46q16.5 0 28.25 11.75T520-258.46q0 16.5-11.75 28.25T480-218.46ZM480-440q-16.5 0-28.25-11.75T440-480q0-16.5 11.75-28.25T480-520q16.5 0 28.25 11.75T520-480q0 16.5-11.75 28.25T480-440Zm0-221.54q-16.5 0-28.25-11.75T440-701.54q0-16.5 11.75-28.25T480-741.54q16.5 0 28.25 11.75T520-701.54q0 16.5-11.75 28.25T480-661.54Z" /></svg>
icon:noncheckable = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M320-460h320q8.54 0 14.27-5.73T660-480q0-8.54-5.73-14.27T640-500H320q-8.54 0-14.27 5.73T300-480q0 8.54 5.73 14.27T320-460Zm-95.38 300q-27.62 0-46.12-18.5Q160-197 160-224.62v-510.76q0-27.62 18.5-46.12Q197-800 224.62-800h510.76q27.62 0 46.12 18.5Q800-763 800-735.38v510.76q0 27.62-18.5 46.12Q763-160 735.38-160H224.62Z" /></svg>
icon:open = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M224.62-160q-27.62 0-46.12-18.5Q160-197 160-224.62v-510.76q0-27.62 18.5-46.12Q197-800 224.62-800h204.61q8.54 0 14.27 5.73t5.73 14.27q0 8.54-5.73 14.27T429.23-760H224.62q-9.24 0-16.93 7.69-7.69 7.69-7.69 16.93v510.76q0 9.24 7.69 16.93 7.69 7.69 16.93 7.69h510.76q9.24 0 16.93-7.69 7.69-7.69 7.69-16.93v-204.61q0-8.54 5.73-14.27t14.27-5.73q8.54 0 14.27 5.73t5.73 14.27v204.61q0 27.62-18.5 46.12Q763-160 735.38-160H224.62ZM760-731.69 403.69-375.38q-5.61 5.61-13.77 6-8.15.38-14.54-6-6.38-6.39-6.38-14.16 0-7.77 6.38-14.15L731.69-760H580q-8.54 0-14.27-5.73T560-780q0-8.54 5.73-14.27T580-800h187.69q13.93 0 23.12 9.19 9.19 9.19 9.19 23.12V-580q0 8.54-5.73 14.27T780-560q-8.54 0-14.27-5.73T760-580v-151.69Z" /></svg>
icon:panel = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M224.62-160q-26.85 0-45.74-18.88Q160-197.77 160-224.62v-510.76q0-26.85 18.88-45.74Q197.77-800 224.62-800h510.76q26.85 0 45.74 18.88Q800-762.23 800-735.38v510.76q0 26.85-18.88 45.74Q762.23-160 735.38-160H224.62ZM200-360h560v-375.38q0-9.24-7.69-16.93-7.69-7.69-16.93-7.69H224.62q-9.24 0-16.93 7.69-7.69 7.69-7.69 16.93V-360Z" /></svg>
icon:pin = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M600-760v296.92l57.23 57.23q2.92 2.93 4.39 6.58 1.46 3.65 1.46 7.55v11.21q0 8.28-5.97 14.39-5.98 6.12-14.8 6.12H500v186.61q0 6.7-2.23 12.28-2.23 5.57-7.46 10.8l-3.23 3.23q-3.07 2.93-7.15 2.93t-7.01-2.93l-3.23-3.23q-5.23-5.23-7.46-10.97-2.23-5.75-2.23-11.87V-360H317.69q-8.82 0-14.8-6.12-5.97-6.11-5.97-14.39v-11.21q0-3.9 1.46-7.55 1.47-3.65 4.39-6.58L360-463.08V-760h-20q-8.5 0-14.25-5.76T320-780.03q0-8.51 5.75-14.24T340-800h280q8.5 0 14.25 5.76t5.75 14.27q0 8.51-5.75 14.24T620-760h-20Z" /></svg>
icon:project_copy = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M144.62-169.23q-26.66 0-45.64-18.98T80-233.85v-423.07q0-8.5 5.76-14.25t14.27-5.75q8.51 0 14.24 5.75t5.73 14.25v423.07q0 10.77 6.92 17.7 6.93 6.92 17.7 6.92H740q8.5 0 14.25 5.76 5.75 5.75 5.75 14.27 0 8.51-5.75 14.24T740-169.23H144.62Zm120-120q-26.66 0-45.64-18.98T200-353.85v-421.53q0-26.66 18.98-45.64T264.62-840h171.61q13.27 0 25.29 5.23t20.71 13.92L543.08-760h272.3q26.66 0 45.64 18.98T880-695.38v341.53q0 26.66-18.98 45.64t-45.64 18.98H264.62Z" /></svg>
@@ -100,7 +123,6 @@ icon:refresh = <svg xmlns="http://www.w3.org/2000/svg" height="128" view
icon:remove = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M260-460q-8.5 0-14.25-5.76T240-480.03q0-8.51 5.75-14.24T260-500h440q8.5 0 14.25 5.76t5.75 14.27q0 8.51-5.75 14.24T700-460H260Z" /></svg>
icon:revert = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M478.46-160q-115.23 0-202.61-71.12Q188.46-302.23 165.62-412q-2.47-8.85 2.6-16.37 5.06-7.53 13.68-8.73 8.1-1.21 14.56 3.72 6.46 4.92 9.16 14Q227.31-324 303.46-262q76.16 62 175 62 117 0 198.5-81.5t81.5-198.5q0-117-81.5-198.5T478.46-760q-62.08 0-116.69 26.23-54.62 26.23-96.39 72.23h79.24q8.5 0 14.25 5.76t5.75 14.27q0 8.51-5.75 14.24t-14.25 5.73H230.77q-13.73 0-23.02-9.29t-9.29-23.02v-113.84q0-8.5 5.76-14.25t14.27-5.75q8.51 0 14.24 5.75t5.73 14.25v75.54q46.39-50.93 108.73-79.39Q409.54-800 478.46-800q66.6 0 124.76 25.04 58.16 25.04 101.66 68.54 43.5 43.5 68.54 101.65 25.04 58.14 25.04 124.73 0 66.58-25.04 124.77t-68.54 101.69q-43.5 43.5-101.66 68.54Q545.06-160 478.46-160Zm0-280q-16.08 0-28.04-11.96T438.46-480q0-16.08 11.96-28.04T478.46-520q16.08 0 28.04 11.96T518.46-480q0 16.08-11.96 28.04T478.46-440Z" /></svg>
icon:settings = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M438.38-120q-13.92 0-24.19-9.15-10.27-9.16-12.73-22.85l-10.54-83.69q-19.15-5.77-41.42-18.16-22.27-12.38-37.88-26.53L235-247.46q-12.69 5.61-25.77 1.23-13.08-4.39-20.15-16.62l-43.16-74.3q-7.07-12.23-4.15-25.54 2.92-13.31 13.92-21.85l66.85-50q-1.77-10.84-2.92-22.34-1.16-11.5-1.16-22.35 0-10.08 1.16-21.19 1.15-11.12 2.92-25.04l-66.85-50q-11-8.54-13.54-22.23-2.53-13.69 4.54-25.93l42.39-72q7.07-11.46 20.15-16.23 13.08-4.77 25.77.85l75.85 32.15q17.92-14.92 38.77-26.92 20.84-12 40.53-18.54L401.46-808q2.46-13.69 12.73-22.85 10.27-9.15 24.19-9.15h83.24q13.92 0 24.19 9.15 10.27 9.16 12.73 22.85l10.54 84.46q23 8.08 40.65 18.54 17.65 10.46 36.35 26.15L725.77-711q12.69-5.62 25.77-.85 13.08 4.77 20.15 16.23l42.39 72.77q7.07 12.23 4.15 25.54-2.92 13.31-13.92 21.85l-69.93 52.31q3.31 12.38 3.7 22.73.38 10.34.38 20.42 0 9.31-.77 19.65-.77 10.35-3.54 25.04l67.62 50.77q11 8.54 14.31 21.85 3.3 13.31-3.77 25.54l-42.62 73.53q-7.07 12.24-20.54 16.62-13.46 4.38-26.15-1.23l-76.92-32.92q-18.7 15.69-37.62 26.92-18.92 11.23-39.38 17.77L558.54-152q-2.46 13.69-12.73 22.85-10.27 9.15-24.19 9.15h-83.24Zm40.54-260q41.85 0 70.93-29.08 29.07-29.07 29.07-70.92t-29.07-70.92Q520.77-580 478.92-580q-42.07 0-71.04 29.08-28.96 29.07-28.96 70.92t28.96 70.92Q436.85-380 478.92-380Z" /></svg>
icon:star = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="m480-315.92-145.23 87.69q-6.39 3.15-11.85 2.54-5.46-.62-10.61-3.77-5.16-3.16-7.85-9.04-2.69-5.88-.46-12.73l38.62-164.39-127.77-110.84q-5.39-4.39-7.12-10.5-1.73-6.12.73-11.73 2.46-5.62 6.62-9.16 4.15-3.53 11.23-4.77l168.61-14.69L460.69-733q2.69-6.62 7.81-9.54 5.12-2.92 11.5-2.92t11.5 2.92q5.12 2.92 7.81 9.54l65.77 155.69 168.61 14.69q7.08 1.24 11.23 4.77 4.16 3.54 6.62 9.16 2.46 5.61.73 11.73-1.73 6.11-7.12 10.5L617.38-415.62 656-251.23q2.23 6.85-.46 12.73-2.69 5.88-7.85 9.04-5.15 3.15-10.61 3.77-5.46.61-11.85-2.54L480-315.92Z" /></svg>
icon:stats = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="m125.38-174.62 212.24-212.23q18.38-18.38 45.46-18.38 27.07 0 45.46 18.38l96.08 96.08q7.69 7.69 18.46 7.31 10.77-.39 17.69-8.85l248.31-285.15q5.61-6.85 13.5-6.85 7.88 0 14.5 5.85 5.61 5.61 6.11 13.04.5 7.42-5.11 14.04L589.85-264.77q-18.39 21.39-46.23 22.5-27.85 1.12-48.24-19.27l-94.61-94.61q-6.92-6.93-17.69-6.93-10.77 0-17.7 6.93L154.62-145.38q-6.08 6.07-14.24 6.46-8.15.38-15-6.46-6.84-6.85-6.84-14.62t6.84-14.62Zm0-240 212.24-212.23q18.38-18.38 45.46-18.38 27.07 0 45.46 18.38l96.08 96.08q7.69 7.69 18.46 7.31 10.77-.39 17.69-8.85l248.31-285.15q5.61-6.85 13.5-6.85 7.88 0 14.5 5.85 5.61 5.61 6.11 13.04.5 7.42-5.11 14.04L589.85-504.77q-18.39 21.39-46.23 22.5-27.85 1.12-48.24-19.27l-94.61-94.61q-6.92-6.93-17.69-6.93-10.77 0-17.7 6.93L154.62-385.38q-6.08 6.07-14.24 6.46-8.15.38-15-6.46-6.84-6.85-6.84-14.62t6.84-14.62Z" /></svg>
icon:text = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M224.62-231.54q-10.47 0-17.54-6.84-7.08-6.85-7.08-16.96 0-10.12 7.08-17.39 7.07-7.27 17.54-7.27H500q8.5 0 14.25 5.97t5.75 14.8q0 8.5-5.73 14.25t-13.5 5.75l-276.15 7.69ZM220-386.92q-8.5 0-14.25-5.76T200-406.95q0-8.51 5.75-14.24t14.25-5.73h520q8.5 0 14.25 5.75 5.75 5.76 5.75 14.27 0 8.52-5.75 14.25T740-386.92H220Zm0-146.16q-8.5 0-14.25-5.75-5.75-5.76-5.75-14.27 0-8.52 5.75-14.25t14.25-5.73h520q8.5 0 14.25 5.76t5.75 14.27q0 8.51-5.75 14.24T740-533.08H220ZM224.62-680q-10.47 0-17.54-7.08-7.08-7.07-7.08-17.54 0-10.46 7.08-17.53 7.07-7.08 17.54-7.08h510.76q10.47 0 17.54 7.08 7.08 7.07 7.08 17.53 0 10.47-7.08 17.54-7.07 7.08-17.54 7.08H224.62Z" /></svg>
icon:timer_off = <svg xmlns="http://www.w3.org/2000/svg" height="128" viewBox="0 -960 960 960" width="128" fill="#000000"><path d="M480-120q-66.31 0-124.5-25.04t-101.81-68.65q-43.61-43.62-68.65-101.81Q160-373.69 160-440q0-61.54 21.96-117.42 21.96-55.89 63.89-100.12L119.38-784q-5.61-5.62-6-13.77-.38-8.15 6-14.54 6.39-6.38 14.16-6.38 7.77 0 14.15 6.38l664.62 664.62q5.61 5.61 6 13.77.38 8.15-6 14.54-6.39 6.38-14.16 6.38-7.77 0-14.15-6.38l-86.46-86.47q-42.62 40.39-99.66 63.12Q540.85-120 480-120Zm-84.62-740q-8.53 0-14.26-5.73-5.74-5.73-5.74-14.27t5.74-14.27q5.73-5.73 14.26-5.73h169.24q8.53 0 14.26 5.73 5.74 5.73 5.74 14.27t-5.74 14.27q-5.73 5.73-14.26 5.73H395.38Zm331.85 514.46L500-572.77v-31.85q0-8.53-5.73-14.26-5.73-5.74-14.27-5.74-6.15 0-11.19 4-5.04 4-6.96 9.7l-76.54-76.54q-14.93-14.92-10.69-35.69 4.23-20.77 24.38-26.47 20.15-5.69 40.65-8.03Q460.15-760 480-760q56.92 0 110.96 20.38 54.04 20.39 100.42 59.16L720.92-710q5.62-5.62 13.77-6 8.16-.38 14.54 6 6.39 6.38 6.39 14.15 0 7.77-6.39 14.16l-29.54 29.54q38.77 46.38 59.54 100.8Q800-496.92 800-440q0 19.85-2.35 40.23-2.34 20.39-8.03 40.77-5.7 20.15-26.47 24.38-20.77 4.24-35.92-10.92Z" /></svg>

Some files were not shown because too many files have changed in this diff Show More