From 2e436cdd460a84716a6bfec12a1c709f4204503a Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 14 Mar 2025 09:14:49 +0000 Subject: [PATCH 01/28] chore(deps): update dependency electron to v35 --- package-lock.json | 25 +++++-------------------- package.json | 2 +- 2 files changed, 6 insertions(+), 21 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0ad2a9597..e22999187 100644 --- a/package-lock.json +++ b/package-lock.json @@ -163,7 +163,7 @@ "bootstrap": "5.3.3", "cross-env": "7.0.3", "css-loader": "7.1.2", - "electron": "34.3.3", + "electron": "35.0.1", "eslint": "9.22.0", "esm": "3.2.25", "globals": "16.0.0", @@ -10100,14 +10100,14 @@ } }, "node_modules/electron": { - "version": "34.3.3", - "resolved": "https://registry.npmjs.org/electron/-/electron-34.3.3.tgz", - "integrity": "sha512-7m1FiO1mwc1K/UqqnnkG7Ik/kAngDzmLfHwcl+xaWgCQ+Sts9rlEqzOh6g1GHhDqebrbs4bO/aU+NDi32fCciQ==", + "version": "35.0.1", + "resolved": "https://registry.npmjs.org/electron/-/electron-35.0.1.tgz", + "integrity": "sha512-iQonj6lnPhqfqha2KXx6LzV1dnu6UPTCWK+b7f9Zvg828umGemi22DKbcJ3/q+Opn7iUVTWyqp9z1JQqkIi6OA==", "hasInstallScript": true, "license": "MIT", "dependencies": { "@electron/get": "^2.0.0", - "@types/node": "^20.9.0", + "@types/node": "^22.7.7", "extract-zip": "^2.0.1" }, "bin": { @@ -10821,15 +10821,6 @@ "global-agent": "^3.0.0" } }, - "node_modules/electron/node_modules/@types/node": { - "version": "20.17.24", - "resolved": "https://registry.npmjs.org/@types/node/-/node-20.17.24.tgz", - "integrity": "sha512-d7fGCyB96w9BnWQrOsJtpyiSaBcAYYr75bnK6ZRjDbql2cGLj/3GsL5OYmLPNq76l7Gf2q4Rv9J2o6h5CrD9sA==", - "license": "MIT", - "dependencies": { - "undici-types": "~6.19.2" - } - }, "node_modules/electron/node_modules/fs-extra": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", @@ -10853,12 +10844,6 @@ "semver": "bin/semver.js" } }, - "node_modules/electron/node_modules/undici-types": { - "version": "6.19.8", - "resolved": "https://registry.npmjs.org/undici-types/-/undici-types-6.19.8.tgz", - "integrity": "sha512-ve2KP6f/JnbPBFyobGHuerC9g1FYGn/F8n1LWTwNxCEzd6IfqTwUQcNXgEtmmQ6DlRrC1hrSrBnCZPokRrDHjw==", - "license": "MIT" - }, "node_modules/electron/node_modules/universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", diff --git a/package.json b/package.json index 2e0dcdb63..c00a5af5f 100644 --- a/package.json +++ b/package.json @@ -219,7 +219,7 @@ "bootstrap": "5.3.3", "cross-env": "7.0.3", "css-loader": "7.1.2", - "electron": "34.3.3", + "electron": "35.0.1", "eslint": "9.22.0", "esm": "3.2.25", "globals": "16.0.0", From bd39f38d1ac9bef457d9cb70fb4d721c8ed4a402 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 15 Mar 2025 02:52:41 +0000 Subject: [PATCH 02/28] fix(deps): update dependency better-sqlite3 to v11.9.0 --- dump-db/package-lock.json | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/dump-db/package-lock.json b/dump-db/package-lock.json index 657af257e..d46d004bb 100644 --- a/dump-db/package-lock.json +++ b/dump-db/package-lock.json @@ -493,9 +493,9 @@ "license": "MIT" }, "node_modules/better-sqlite3": { - "version": "11.8.1", - "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-11.8.1.tgz", - "integrity": "sha512-9BxNaBkblMjhJW8sMRZxnxVTRgbRmssZW0Oxc1MPBTfiR+WW21e2Mk4qu8CzrcZb1LwPCnFsfDEzq+SNcBU8eg==", + "version": "11.9.0", + "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-11.9.0.tgz", + "integrity": "sha512-4b9xYnoaskj8eIkke9ZCB42p5bOPabptSku8Rl4Yww70Jf+aHeLvrIjXDJrKQxUEjdppsFb+fdJSjoH4TklROA==", "hasInstallScript": true, "dependencies": { "bindings": "^1.5.0", @@ -1416,9 +1416,9 @@ "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" }, "better-sqlite3": { - "version": "11.8.1", - "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-11.8.1.tgz", - "integrity": "sha512-9BxNaBkblMjhJW8sMRZxnxVTRgbRmssZW0Oxc1MPBTfiR+WW21e2Mk4qu8CzrcZb1LwPCnFsfDEzq+SNcBU8eg==", + "version": "11.9.0", + "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-11.9.0.tgz", + "integrity": "sha512-4b9xYnoaskj8eIkke9ZCB42p5bOPabptSku8Rl4Yww70Jf+aHeLvrIjXDJrKQxUEjdppsFb+fdJSjoH4TklROA==", "requires": { "bindings": "^1.5.0", "prebuild-install": "^7.1.1" From 9136f079683faab969837524994235ac304856a3 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Sat, 15 Mar 2025 02:52:57 +0000 Subject: [PATCH 03/28] fix(deps): update dependency better-sqlite3 to v11.9.0 --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5203b393b..1994aabb0 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,7 +25,7 @@ "async-mutex": "0.5.0", "autocomplete.js": "0.38.1", "axios": "1.8.3", - "better-sqlite3": "11.8.1", + "better-sqlite3": "11.9.0", "boxicons": "2.1.4", "chardet": "2.1.0", "cheerio": "1.0.0", @@ -7425,9 +7425,9 @@ "license": "MIT" }, "node_modules/better-sqlite3": { - "version": "11.8.1", - "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-11.8.1.tgz", - "integrity": "sha512-9BxNaBkblMjhJW8sMRZxnxVTRgbRmssZW0Oxc1MPBTfiR+WW21e2Mk4qu8CzrcZb1LwPCnFsfDEzq+SNcBU8eg==", + "version": "11.9.0", + "resolved": "https://registry.npmjs.org/better-sqlite3/-/better-sqlite3-11.9.0.tgz", + "integrity": "sha512-4b9xYnoaskj8eIkke9ZCB42p5bOPabptSku8Rl4Yww70Jf+aHeLvrIjXDJrKQxUEjdppsFb+fdJSjoH4TklROA==", "hasInstallScript": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index 9bfb61eff..fecfed023 100644 --- a/package.json +++ b/package.json @@ -84,7 +84,7 @@ "async-mutex": "0.5.0", "autocomplete.js": "0.38.1", "axios": "1.8.3", - "better-sqlite3": "11.8.1", + "better-sqlite3": "11.9.0", "boxicons": "2.1.4", "chardet": "2.1.0", "cheerio": "1.0.0", From 2b1bbd4ad3ee7c295fa70854d4066e5b8de210a4 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Sat, 15 Mar 2025 18:37:29 +0200 Subject: [PATCH 04/28] fix(build): node ABI --- package-lock.json | 37 ++++++++++++++++++++++++++++++++----- package.json | 1 + 2 files changed, 33 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index 70e921320..41eb794c9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -175,6 +175,7 @@ "knockout": "3.5.1", "lorem-ipsum": "2.0.8", "mini-css-extract-plugin": "2.9.2", + "node-abi": "4.2.0", "nodemon": "3.1.9", "postcss-loader": "8.1.1", "prettier": "3.5.3", @@ -1652,6 +1653,19 @@ "graceful-fs": "^4.1.6" } }, + "node_modules/@electron/rebuild/node_modules/node-abi": { + "version": "3.74.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.74.0.tgz", + "integrity": "sha512-c5XK0MjkGBrQPGYG24GBADZud0NCbznxNx0ZkS+ebUTrmV1qTDxPxSL8zEAPURXSbLRWVexxmP4986BziahL5w==", + "dev": true, + "license": "MIT", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/@electron/remote": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/@electron/remote/-/remote-2.1.2.tgz", @@ -16027,15 +16041,16 @@ } }, "node_modules/node-abi": { - "version": "3.71.0", - "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.71.0.tgz", - "integrity": "sha512-SZ40vRiy/+wRTf21hxkkEjPJZpARzUMVcJoQse2EF8qkUWbbO2z7vd5oA/H6bVH6SZQ5STGcu0KRDS7biNRfxw==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-4.2.0.tgz", + "integrity": "sha512-admQxilhDcmFJbUl4LQzGu+QyEijW9rctKRH2P7LNavAvln1bdK9OcujM3yi2KysKI41dxTrDtp6QfGEZeCbkg==", + "dev": true, "license": "MIT", "dependencies": { - "semver": "^7.3.5" + "semver": "^7.6.3" }, "engines": { - "node": ">=10" + "node": ">=22.12.0" } }, "node_modules/node-addon-api": { @@ -17435,6 +17450,18 @@ "node": ">=10" } }, + "node_modules/prebuild-install/node_modules/node-abi": { + "version": "3.74.0", + "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-3.74.0.tgz", + "integrity": "sha512-c5XK0MjkGBrQPGYG24GBADZud0NCbznxNx0ZkS+ebUTrmV1qTDxPxSL8zEAPURXSbLRWVexxmP4986BziahL5w==", + "license": "MIT", + "dependencies": { + "semver": "^7.3.5" + }, + "engines": { + "node": ">=10" + } + }, "node_modules/prelude-ls": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.2.1.tgz", diff --git a/package.json b/package.json index 78d885dd9..eb0cf1cab 100644 --- a/package.json +++ b/package.json @@ -231,6 +231,7 @@ "knockout": "3.5.1", "lorem-ipsum": "2.0.8", "mini-css-extract-plugin": "2.9.2", + "node-abi": "4.2.0", "nodemon": "3.1.9", "postcss-loader": "8.1.1", "prettier": "3.5.3", From 57b5e47b5aec5e890233fa70a740fd427467365a Mon Sep 17 00:00:00 2001 From: Adorian Doran Date: Thu, 20 Mar 2025 14:40:42 +0200 Subject: [PATCH 05/28] style(next): reorganize CSS --- src/public/stylesheets/theme-next/base.css | 1 - src/public/stylesheets/theme-next/dialogs.css | 11 ++ .../stylesheets/theme-next/notes/empty.css | 11 -- .../stylesheets/theme-next/notes/text.css | 103 +----------------- src/public/stylesheets/theme-next/pages.css | 16 +++ src/public/stylesheets/theme-next/ribbon.css | 13 +-- src/public/stylesheets/theme-next/shell.css | 101 +++++++++++++++++ 7 files changed, 130 insertions(+), 126 deletions(-) delete mode 100644 src/public/stylesheets/theme-next/notes/empty.css diff --git a/src/public/stylesheets/theme-next/base.css b/src/public/stylesheets/theme-next/base.css index a43169f4e..7822e606b 100644 --- a/src/public/stylesheets/theme-next/base.css +++ b/src/public/stylesheets/theme-next/base.css @@ -3,7 +3,6 @@ @import url(./dialogs.css); @import url(./pages.css); @import url(./ribbon.css); -@import url(./notes/empty.css); @import url(./notes/text.css); @font-face { diff --git a/src/public/stylesheets/theme-next/dialogs.css b/src/public/stylesheets/theme-next/dialogs.css index 23c3cf10a..e73c555fc 100644 --- a/src/public/stylesheets/theme-next/dialogs.css +++ b/src/public/stylesheets/theme-next/dialogs.css @@ -385,3 +385,14 @@ div.tn-tool-dialog { .delete-notes-list .note-path { padding-left: 8px; } + +/* + * ATTRIBUTE DETAIL DIALOG + */ + +/* Labels */ +.attr-edit-table th { + padding-right: 12px; + font-weight: normal; + white-space: nowrap; +} \ No newline at end of file diff --git a/src/public/stylesheets/theme-next/notes/empty.css b/src/public/stylesheets/theme-next/notes/empty.css deleted file mode 100644 index dbfd92a4d..000000000 --- a/src/public/stylesheets/theme-next/notes/empty.css +++ /dev/null @@ -1,11 +0,0 @@ -/* The container */ -div.note-detail-empty { - max-width: 70%; - margin: 50px auto; -} - -/* The search results list */ -.note-detail-empty span.aa-dropdown-menu { - margin-top: 1em; - border: unset; -} diff --git a/src/public/stylesheets/theme-next/notes/text.css b/src/public/stylesheets/theme-next/notes/text.css index 55aaba032..cf8aa4760 100644 --- a/src/public/stylesheets/theme-next/notes/text.css +++ b/src/public/stylesheets/theme-next/notes/text.css @@ -132,105 +132,4 @@ html .note-detail-editable-text :not(figure, .include-note, hr):first-child { .ck-content .table > figcaption { background: var(--accented-background-color); color: var(--main-text-color); -} - -/* - * Search in text panel - */ - -.find-replace-widget { - container-type: inline-size; - border-top: 3px solid var(--root-background) !important; -} - -.find-replace-widget > div { - padding: 8px; -} - -.find-replace-widget > div + div { - padding-top: 0; -} - -div.find-replace-widget div.find-widget-found-wrapper > span { - min-width: 50px; - font-style: normal; - font-weight: normal; -} - -/* The up / down buttons of the "Find in text" input */ -.find-replace-widget .input-group button { - font-size: 1.3em; -} - -.find-replace-widget .form-check { - padding-left: 0; - white-space: nowrap; -} - -.find-replace-widget .form-check .form-check-input { - margin-left: 0; -} - -/* Narrow version */ -@container (max-width: 600px) { - .find-replace-widget > *, - .find-replace-widget input, - .find-replace-widget button.btn.btn-sm { - font-size: .9em; - } - - .find-widget-box { - position: relative; - justify-content: center; - flex-wrap: wrap; - gap: 8px; - } - - .find-widget-box, - .replace-widget-box { - padding-right: 3em !important; - } - - .find-widget-close-button { - position: absolute; - top: .85em; - right: .5em; - } - - .find-widget-box > * { - margin: unset !important; - } - - div.find-widget-search-term-input-group { - margin-bottom: 8px; - max-width: unset; - width: 100%; - } - - .find-widget-found-wrapper, - .find-widget-found-wrapper > span { - min-width: 0 !important; - } - - .find-widget-spacer { - display: none; - } - - .form-check { - min-height: unset; - margin-bottom: unset; - } - - .replace-widget-box { - gap: 8px; - } - - .replace-widget-box > * { - margin-right: unset !important; - } - - div.replace-widget-box button.btn.btn-sm { - min-width: unset; - white-space: nowrap; - } -} +} \ No newline at end of file diff --git a/src/public/stylesheets/theme-next/pages.css b/src/public/stylesheets/theme-next/pages.css index eb67263c0..c27c338b3 100644 --- a/src/public/stylesheets/theme-next/pages.css +++ b/src/public/stylesheets/theme-next/pages.css @@ -101,6 +101,22 @@ color: var(--tab-close-button-hover-background); } +/* + * EMPTY NOTE PAGE + */ + +/* The container */ +div.note-detail-empty { + max-width: 70%; + margin: 50px auto; +} + +/* The search results list */ +.note-detail-empty span.aa-dropdown-menu { + margin-top: 1em; + border: unset; +} + /* * OPTIONS PAGES */ diff --git a/src/public/stylesheets/theme-next/ribbon.css b/src/public/stylesheets/theme-next/ribbon.css index 56e3e5d66..c7765865d 100644 --- a/src/public/stylesheets/theme-next/ribbon.css +++ b/src/public/stylesheets/theme-next/ribbon.css @@ -153,15 +153,4 @@ div.editability-dropdown a.dropdown-item { /* Narrow width layout */ .note-info-widget { container: info-section / inline-size; -} - -/* - * Attribute detail dialog - */ - -/* Labels */ -.attr-edit-table th { - padding-right: 12px; - font-weight: normal; - white-space: nowrap; -} +} \ No newline at end of file diff --git a/src/public/stylesheets/theme-next/shell.css b/src/public/stylesheets/theme-next/shell.css index 05d0cb119..d6e72687e 100644 --- a/src/public/stylesheets/theme-next/shell.css +++ b/src/public/stylesheets/theme-next/shell.css @@ -1304,6 +1304,107 @@ div.promoted-attribute-cell .multiplicity:has(span) { font-size: 0; /* Prevent whitespaces creating a gap between buttons */ } +/* + * Find and replace bar + */ + + .find-replace-widget { + container-type: inline-size; + border-top: 3px solid var(--root-background) !important; +} + +.find-replace-widget > div { + padding: 8px; +} + +.find-replace-widget > div + div { + padding-top: 0; +} + +div.find-replace-widget div.find-widget-found-wrapper > span { + min-width: 50px; + font-style: normal; + font-weight: normal; +} + +/* The up / down buttons of the "Find in text" input */ +.find-replace-widget .input-group button { + font-size: 1.3em; +} + +.find-replace-widget .form-check { + padding-left: 0; + white-space: nowrap; +} + +.find-replace-widget .form-check .form-check-input { + margin-left: 0; +} + +/* Narrow version */ +@container (max-width: 600px) { + .find-replace-widget > *, + .find-replace-widget input, + .find-replace-widget button.btn.btn-sm { + font-size: .9em; + } + + .find-widget-box { + position: relative; + justify-content: center; + flex-wrap: wrap; + gap: 8px; + } + + .find-widget-box, + .replace-widget-box { + padding-right: 3em !important; + } + + .find-widget-close-button { + position: absolute; + top: .85em; + right: .5em; + } + + .find-widget-box > * { + margin: unset !important; + } + + div.find-widget-search-term-input-group { + margin-bottom: 8px; + max-width: unset; + width: 100%; + } + + .find-widget-found-wrapper, + .find-widget-found-wrapper > span { + min-width: 0 !important; + } + + .find-widget-spacer { + display: none; + } + + .form-check { + min-height: unset; + margin-bottom: unset; + } + + .replace-widget-box { + gap: 8px; + } + + .replace-widget-box > * { + margin-right: unset !important; + } + + div.replace-widget-box button.btn.btn-sm { + min-width: unset; + white-space: nowrap; + } +} + /* * RIGHT PANE: TABLE OF CONTENTS AND HIGHLIGHT LIST */ From 728875777795d00946ee4e68926b5881a6916eb7 Mon Sep 17 00:00:00 2001 From: Adorian Doran Date: Thu, 20 Mar 2025 17:23:29 +0200 Subject: [PATCH 06/28] style(next)/options/appearance: tweak font size inputs --- src/public/stylesheets/theme-next/pages.css | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/public/stylesheets/theme-next/pages.css b/src/public/stylesheets/theme-next/pages.css index c27c338b3..dd90ea67f 100644 --- a/src/public/stylesheets/theme-next/pages.css +++ b/src/public/stylesheets/theme-next/pages.css @@ -236,6 +236,13 @@ div.note-detail-empty { width: fit-content; } +#main-font-size, +#tree-font-size, +#detail-font-size, +#monospace-font-size { + width: 8ch !important; +} + /* Shortcuts */ .note-detail-content-widget-content:has(.shortcuts-options-section) { From bec15fb9c3931e80d69724316333f7677c83028e Mon Sep 17 00:00:00 2001 From: Adorian Doran Date: Thu, 20 Mar 2025 17:34:58 +0200 Subject: [PATCH 07/28] client/options/appearance/max content width: specify the measurement unit inside of the input field --- .../type_widgets/options/appearance/max_content_width.ts | 5 ++++- src/public/translations/en/translation.json | 3 ++- src/public/translations/ro/translation.json | 3 ++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/public/app/widgets/type_widgets/options/appearance/max_content_width.ts b/src/public/app/widgets/type_widgets/options/appearance/max_content_width.ts index a5b47c8ea..92c88d0f2 100644 --- a/src/public/app/widgets/type_widgets/options/appearance/max_content_width.ts +++ b/src/public/app/widgets/type_widgets/options/appearance/max_content_width.ts @@ -14,7 +14,10 @@ const TPL = `
- +
+ + ${t("max_content_width.max_width_unit")} +
diff --git a/src/public/translations/en/translation.json b/src/public/translations/en/translation.json index 3288e8834..0b6b9179c 100644 --- a/src/public/translations/en/translation.json +++ b/src/public/translations/en/translation.json @@ -1090,7 +1090,8 @@ "max_content_width": { "title": "Content Width", "default_description": "Trilium by default limits max content width to improve readability for maximized screens on wide screens.", - "max_width_label": "Max content width in pixels", + "max_width_label": "Max content width", + "max_width_unit": "pixels", "apply_changes_description": "To apply content width changes, click on", "reload_button": "reload frontend", "reload_description": "changes from appearance options" diff --git a/src/public/translations/ro/translation.json b/src/public/translations/ro/translation.json index 9b626d875..32eb97ee1 100644 --- a/src/public/translations/ro/translation.json +++ b/src/public/translations/ro/translation.json @@ -772,7 +772,8 @@ "max_content_width": { "apply_changes_description": "Pentru a aplica schimbările de lățime a conținutului, dați click pe", "default_description": "În mod implicit Trilium limitează lățimea conținutului pentru a îmbunătăți lizibilitatea pentru ferestrele maximizate pe ecrane late.", - "max_width_label": "Lungimea maximă a conținutului în pixeli", + "max_width_label": "Lungimea maximă a conținutului", + "max_width_unit": "pixeli", "reload_button": "reîncarcă interfața", "reload_description": "schimbări din opțiunile de afișare", "title": "Lățime conținut" From de7b7e3d8fa25e71c662b07f94ea251522a5cdb0 Mon Sep 17 00:00:00 2001 From: Adorian Doran Date: Thu, 20 Mar 2025 17:41:30 +0200 Subject: [PATCH 08/28] client/options/text notes/table of contents: specify the measurement unit inside of the input field --- .../type_widgets/options/text_notes/table_of_contents.ts | 5 ++++- src/public/translations/en/translation.json | 1 + src/public/translations/ro/translation.json | 1 + 3 files changed, 6 insertions(+), 1 deletion(-) diff --git a/src/public/app/widgets/type_widgets/options/text_notes/table_of_contents.ts b/src/public/app/widgets/type_widgets/options/text_notes/table_of_contents.ts index 87ebae17f..c29472206 100644 --- a/src/public/app/widgets/type_widgets/options/text_notes/table_of_contents.ts +++ b/src/public/app/widgets/type_widgets/options/text_notes/table_of_contents.ts @@ -9,7 +9,10 @@ const TPL = ` ${t("table_of_contents.description")}
- +
+ + ${t("table_of_contents.unit")} +

${t("table_of_contents.disable_info")}

diff --git a/src/public/translations/en/translation.json b/src/public/translations/en/translation.json index 0b6b9179c..72e4eba89 100644 --- a/src/public/translations/en/translation.json +++ b/src/public/translations/en/translation.json @@ -1224,6 +1224,7 @@ "table_of_contents": { "title": "Table of Contents", "description": "Table of contents will appear in text notes when the note has more than a defined number of headings. You can customize this number:", + "unit": "headings", "disable_info": "You can also use this option to effectively disable TOC by setting a very high number.", "shortcut_info": "You can configure a keyboard shortcut for quickly toggling the right pane (including TOC) in the Options -> Shortcuts (name 'toggleRightPane')." }, diff --git a/src/public/translations/ro/translation.json b/src/public/translations/ro/translation.json index 32eb97ee1..0638b9080 100644 --- a/src/public/translations/ro/translation.json +++ b/src/public/translations/ro/translation.json @@ -1220,6 +1220,7 @@ }, "table_of_contents": { "description": "Tabela de conținut va apărea în notițele de tip text atunci când notița are un număr de titluri mai mare decât cel definit. Acest număr se poate personaliza:", + "unit": "titluri", "disable_info": "De asemenea se poate dezactiva tabela de conținut setând o valoare foarte mare.", "shortcut_info": "Se poate configura și o scurtatură pentru a comuta rapid vizibilitatea panoului din dreapta (inclusiv tabela de conținut) în Opțiuni -> Scurtături (denumirea „toggleRightPane”).", "title": "Tabelă de conținut" From 65ee564518e1c988fc4c11b7ecabc86ea51c6777 Mon Sep 17 00:00:00 2001 From: Adorian Doran Date: Thu, 20 Mar 2025 17:45:22 +0200 Subject: [PATCH 09/28] client/options/text notes/automatic read-only size: specify the measurement unit inside of the input field --- .../options/text_notes/text_auto_read_only_size.ts | 5 ++++- src/public/translations/en/translation.json | 3 ++- src/public/translations/ro/translation.json | 3 ++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/public/app/widgets/type_widgets/options/text_notes/text_auto_read_only_size.ts b/src/public/app/widgets/type_widgets/options/text_notes/text_auto_read_only_size.ts index 7bcd5773f..d719d688d 100644 --- a/src/public/app/widgets/type_widgets/options/text_notes/text_auto_read_only_size.ts +++ b/src/public/app/widgets/type_widgets/options/text_notes/text_auto_read_only_size.ts @@ -10,7 +10,10 @@ const TPL = `
- +
+ + ${t("text_auto_read_only_size.unit")} +
`; diff --git a/src/public/translations/en/translation.json b/src/public/translations/en/translation.json index 72e4eba89..03201876b 100644 --- a/src/public/translations/en/translation.json +++ b/src/public/translations/en/translation.json @@ -1231,7 +1231,8 @@ "text_auto_read_only_size": { "title": "Automatic Read-Only Size", "description": "Automatic read-only note size is the size after which notes will be displayed in a read-only mode (for performance reasons).", - "label": "Automatic read-only size (text notes)" + "label": "Automatic read-only size (text notes)", + "unit": "characters" }, "i18n": { "title": "Localization", diff --git a/src/public/translations/ro/translation.json b/src/public/translations/ro/translation.json index 0638b9080..a7ca9f86b 100644 --- a/src/public/translations/ro/translation.json +++ b/src/public/translations/ro/translation.json @@ -1228,7 +1228,8 @@ "text_auto_read_only_size": { "description": "Marchează pragul în care o notiță de o anumită dimensiune va fi afișată în mod de citire (pentru motive de performanță).", "label": "Pragul de dimensiune pentru setarea modului de citire automat (la notițe text)", - "title": "Pragul de mod de citire automat" + "title": "Pragul de mod de citire automat", + "unit": "caractere" }, "theme": { "auto_theme": "Temă auto (se adaptează la schema de culori a sistemului)", From 4f3bc20bac38756283347f376ed7c74e31a3acff Mon Sep 17 00:00:00 2001 From: Adorian Doran Date: Thu, 20 Mar 2025 17:48:40 +0200 Subject: [PATCH 10/28] client/options/code notes/automatic read-only size: specify the measurement unit inside of the input field --- .../options/code_notes/code_auto_read_only_size.ts | 5 ++++- src/public/translations/en/translation.json | 3 ++- src/public/translations/ro/translation.json | 3 ++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/public/app/widgets/type_widgets/options/code_notes/code_auto_read_only_size.ts b/src/public/app/widgets/type_widgets/options/code_notes/code_auto_read_only_size.ts index 584fd23f0..a80fd11dd 100644 --- a/src/public/app/widgets/type_widgets/options/code_notes/code_auto_read_only_size.ts +++ b/src/public/app/widgets/type_widgets/options/code_notes/code_auto_read_only_size.ts @@ -10,7 +10,10 @@ const TPL = `
- +
+ + ${t("code_auto_read_only_size.unit")} +
`; diff --git a/src/public/translations/en/translation.json b/src/public/translations/en/translation.json index 03201876b..5a6de3836 100644 --- a/src/public/translations/en/translation.json +++ b/src/public/translations/en/translation.json @@ -1129,7 +1129,8 @@ "code_auto_read_only_size": { "title": "Automatic Read-Only Size", "description": "Automatic read-only note size is the size after which notes will be displayed in a read-only mode (for performance reasons).", - "label": "Automatic read-only size (code notes)" + "label": "Automatic read-only size (code notes)", + "unit": "characters" }, "code-editor-options": { "title": "Editor" diff --git a/src/public/translations/ro/translation.json b/src/public/translations/ro/translation.json index a7ca9f86b..719a87031 100644 --- a/src/public/translations/ro/translation.json +++ b/src/public/translations/ro/translation.json @@ -353,7 +353,8 @@ "code_auto_read_only_size": { "description": "Marchează pragul în care o notiță de o anumită dimensiune va fi afișată în mod de citire (pentru motive de performanță).", "label": "Pragul de dimensiune pentru setarea modului de citire automat (la notițe de cod)", - "title": "Pragul de mod de citire automat" + "title": "Pragul de mod de citire automat", + "unit": "caractere" }, "code_buttons": { "execute_button_title": "Execută scriptul", From 772b69eebe74a5c65f843e14d9fca8f80dfbf103 Mon Sep 17 00:00:00 2001 From: Adorian Doran Date: Thu, 20 Mar 2025 17:53:07 +0200 Subject: [PATCH 11/28] client/options/images/max dimensions: specify the measurement unit inside of the input field --- src/public/app/widgets/type_widgets/options/images/images.ts | 5 ++++- src/public/translations/en/translation.json | 3 ++- src/public/translations/ro/translation.json | 3 ++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/public/app/widgets/type_widgets/options/images/images.ts b/src/public/app/widgets/type_widgets/options/images/images.ts index c5ef57cf9..54dbe3613 100644 --- a/src/public/app/widgets/type_widgets/options/images/images.ts +++ b/src/public/app/widgets/type_widgets/options/images/images.ts @@ -30,7 +30,10 @@ const TPL = `
- +
+ + ${t("images.max_image_dimensions_unit")} +
diff --git a/src/public/translations/en/translation.json b/src/public/translations/en/translation.json index 5a6de3836..caa86ac01 100644 --- a/src/public/translations/en/translation.json +++ b/src/public/translations/en/translation.json @@ -1151,7 +1151,8 @@ "download_images_automatically": "Download images automatically for offline use.", "download_images_description": "Pasted HTML can contain references to online images, Trilium will find those references and download the images so that they are available offline.", "enable_image_compression": "Enable image compression", - "max_image_dimensions": "Max width / height of an image in pixels (image will be resized if it exceeds this setting).", + "max_image_dimensions": "Max width / height of an image (image will be resized if it exceeds this setting).", + "max_image_dimensions_unit": "pixels", "jpeg_quality_description": "JPEG quality (10 - worst quality, 100 - best quality, 50 - 85 is recommended)" }, "attachment_erasure_timeout": { diff --git a/src/public/translations/ro/translation.json b/src/public/translations/ro/translation.json index 719a87031..99b6dd352 100644 --- a/src/public/translations/ro/translation.json +++ b/src/public/translations/ro/translation.json @@ -698,7 +698,8 @@ "enable_image_compression": "Activează compresia imaginilor", "images_section_title": "Imagini", "jpeg_quality_description": "Calitatea JPEG (10 - cea mai slabă calitate, 100 - cea mai bună calitate, se recomandă între 50 și 85)", - "max_image_dimensions": "Lungimea/lățimea maximă a unei imagini în pixeli (imaginea va fi redimensionată dacă depășește acest prag)." + "max_image_dimensions": "Lungimea/lățimea maximă a unei imagini (imaginea va fi redimensionată dacă depășește acest prag).", + "max_image_dimensions_unit": "pixeli" }, "import": { "chooseImportFile": "Selectați fișierul de importat", From 5e6fc5b1838ce576cffe9eae4dafd882f6cd72dc Mon Sep 17 00:00:00 2001 From: Adorian Doran Date: Thu, 20 Mar 2025 17:55:22 +0200 Subject: [PATCH 12/28] client/options/images/JPEG quality: specify the measurement unit inside of the input field --- src/public/app/widgets/type_widgets/options/images/images.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/public/app/widgets/type_widgets/options/images/images.ts b/src/public/app/widgets/type_widgets/options/images/images.ts index 54dbe3613..c10b29278 100644 --- a/src/public/app/widgets/type_widgets/options/images/images.ts +++ b/src/public/app/widgets/type_widgets/options/images/images.ts @@ -38,7 +38,10 @@ const TPL = `
- +
+ + % +
From e8a745c11a9d3b3e349c68304fa0292da25e6005 Mon Sep 17 00:00:00 2001 From: Adorian Doran Date: Thu, 20 Mar 2025 18:04:36 +0200 Subject: [PATCH 13/28] client/options/sync/timeout: specify the measurement unit inside of the input field --- src/public/app/widgets/type_widgets/options/sync.ts | 7 +++++-- src/public/translations/en/translation.json | 3 ++- src/public/translations/ro/translation.json | 3 ++- 3 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/public/app/widgets/type_widgets/options/sync.ts b/src/public/app/widgets/type_widgets/options/sync.ts index e57d07eea..6d1f3a892 100644 --- a/src/public/app/widgets/type_widgets/options/sync.ts +++ b/src/public/app/widgets/type_widgets/options/sync.ts @@ -15,8 +15,11 @@ const TPL = `
- - + +
+ + ${t("sync_2.timeout_unit")} +
diff --git a/src/public/translations/en/translation.json b/src/public/translations/en/translation.json index caa86ac01..55089834c 100644 --- a/src/public/translations/en/translation.json +++ b/src/public/translations/en/translation.json @@ -1334,7 +1334,8 @@ "sync_2": { "config_title": "Sync Configuration", "server_address": "Server instance address", - "timeout": "Sync timeout (milliseconds)", + "timeout": "Sync timeout", + "timeout_unit": "milliseconds", "proxy_label": "Sync proxy server (optional)", "note": "Note", "note_description": "If you leave the proxy setting blank, the system proxy will be used (applies to desktop/electron build only).", diff --git a/src/public/translations/ro/translation.json b/src/public/translations/ro/translation.json index 99b6dd352..fe4d40769 100644 --- a/src/public/translations/ro/translation.json +++ b/src/public/translations/ro/translation.json @@ -1218,7 +1218,8 @@ "test_button": "Probează sincronizarea", "test_description": "Această opțiune va testa conexiunea și comunicarea cu serverul de sincronizare. Dacă serverul de sincronizare nu este inițializat, acest lucru va rula și o sincronizare cu documentul local.", "test_title": "Probează sincronizarea", - "timeout": "Timp limită de sincronizare (millisecunde)" + "timeout": "Timp limită de sincronizare", + "timeout_unit": "milisecunde" }, "table_of_contents": { "description": "Tabela de conținut va apărea în notițele de tip text atunci când notița are un număr de titluri mai mare decât cel definit. Acest număr se poate personaliza:", From af0db5d508b02b10edc86f0a3df974ced212e587 Mon Sep 17 00:00:00 2001 From: Elian Doran Date: Thu, 20 Mar 2025 18:17:15 +0200 Subject: [PATCH 14/28] style(next): fix regression in horizontal mica --- src/public/stylesheets/theme-next/shell.css | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/src/public/stylesheets/theme-next/shell.css b/src/public/stylesheets/theme-next/shell.css index d6e72687e..f1fbd9d43 100644 --- a/src/public/stylesheets/theme-next/shell.css +++ b/src/public/stylesheets/theme-next/shell.css @@ -36,21 +36,19 @@ body.mobile { /* #region Mica */ body.background-effects.platform-win32 { + --launcher-pane-horiz-border-color: rgba(0, 0, 0, 0.15); + --launcher-pane-horiz-background-color: rgba(255, 255, 255, 0.7); + --launcher-pane-vert-background-color: rgba(255, 255, 255, 0.055); --tab-background-color: transparent; --new-tab-button-background: transparent; - --active-tab-background-color: var(--launcher-pane-background-color); /* TODO: fix */ + --active-tab-background-color: var(--launcher-pane-horiz-background-color); --background-material: tabbed; } -body.background-effects.platform-win32 #launcher-pane { - --launcher-pane-horizontal-border-color: rgba(0, 0, 0, 0.15); - --launcher-pane-background-color: rgba(255, 255, 255, 0.7); -} - @media (prefers-color-scheme: dark) { body.background-effects.platform-win32 #launcher-pane { - --launcher-pane-horizontal-border-color: rgba(0, 0, 0, 0.5); - --launcher-pane-background-color: rgba(255, 255, 255, 0.09); + --launcher-pane-horiz-border-color: rgba(0, 0, 0, 0.5); + --launcher-pane-horiz-background-color: rgba(255, 255, 255, 0.09); } } @@ -60,10 +58,6 @@ body.background-effects.platform-win32.layout-vertical { --background-material: mica; } -body.background-effects.platform-win32.layout-vertical #launcher-pane { - --launcher-pane-background-color: rgba(255, 255, 255, 0.055); -} - body.background-effects.platform-win32, body.background-effects.platform-win32 #root-widget, body.background-effects.platform-win32 #launcher-pane .launcher-button { From 0086d645ef1efb5d4914179a64b1bcd2d32b4ef1 Mon Sep 17 00:00:00 2001 From: Adorian Doran Date: Thu, 20 Mar 2025 18:22:35 +0200 Subject: [PATCH 15/28] client/options/other/snapshot limit: specify the measurement unit inside of the input field --- .../type_widgets/options/other/revision_snapshots_limit.ts | 5 ++++- src/public/translations/en/translation.json | 1 + src/public/translations/ro/translation.json | 3 ++- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/public/app/widgets/type_widgets/options/other/revision_snapshots_limit.ts b/src/public/app/widgets/type_widgets/options/other/revision_snapshots_limit.ts index fa46eb59b..32d01a0b4 100644 --- a/src/public/app/widgets/type_widgets/options/other/revision_snapshots_limit.ts +++ b/src/public/app/widgets/type_widgets/options/other/revision_snapshots_limit.ts @@ -12,7 +12,10 @@ const TPL = `
- +
+ + ${t("revisions_snapshot_limit.snapshot_number_limit_unit")} +
`; diff --git a/src/public/app/widgets/type_widgets/options/images/images.ts b/src/public/app/widgets/type_widgets/options/images/images.ts index c10b29278..bc686d01f 100644 --- a/src/public/app/widgets/type_widgets/options/images/images.ts +++ b/src/public/app/widgets/type_widgets/options/images/images.ts @@ -30,18 +30,18 @@ const TPL = `
-
+
+
-
+
+
diff --git a/src/public/app/widgets/type_widgets/options/other/revision_snapshots_limit.ts b/src/public/app/widgets/type_widgets/options/other/revision_snapshots_limit.ts index 32d01a0b4..e59b6b503 100644 --- a/src/public/app/widgets/type_widgets/options/other/revision_snapshots_limit.ts +++ b/src/public/app/widgets/type_widgets/options/other/revision_snapshots_limit.ts @@ -12,10 +12,10 @@ const TPL = `
-
+
+
From 7202afab8e73564b4b3b30fdcffb0d57f5767aa6 Mon Sep 17 00:00:00 2001 From: Adorian Doran Date: Thu, 20 Mar 2025 22:22:39 +0200 Subject: [PATCH 19/28] style(next)/options: add a gap between consecutive buttons --- src/public/stylesheets/theme-next/pages.css | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/public/stylesheets/theme-next/pages.css b/src/public/stylesheets/theme-next/pages.css index 74c576b74..e5778d4ce 100644 --- a/src/public/stylesheets/theme-next/pages.css +++ b/src/public/stylesheets/theme-next/pages.css @@ -140,6 +140,11 @@ div.note-detail-empty { height: 1em; } +/* Add a gap between consecutive buttons */ +.note-detail-content-widget-content.options button.btn + button.btn { + margin-inline-start: 8px; +} + .note-detail-content-widget-content.options:has(.shortcuts-options-section)::after { height: 0; } From 6b71efbfd304c62c7fbae677d114047bcdcb6f45 Mon Sep 17 00:00:00 2001 From: Adorian Doran Date: Fri, 21 Mar 2025 03:17:43 +0200 Subject: [PATCH 20/28] style(next): restyle the floating buttons --- src/public/stylesheets/theme-next-dark.css | 8 ++ src/public/stylesheets/theme-next-light.css | 8 ++ src/public/stylesheets/theme-next/base.css | 5 + src/public/stylesheets/theme-next/shell.css | 137 ++++++++++++++++++++ 4 files changed, 158 insertions(+) diff --git a/src/public/stylesheets/theme-next-dark.css b/src/public/stylesheets/theme-next-dark.css index c7dc1846f..5d72cd411 100644 --- a/src/public/stylesheets/theme-next-dark.css +++ b/src/public/stylesheets/theme-next-dark.css @@ -174,6 +174,14 @@ --promoted-attribute-card-background-color: var(--card-background-color); --promoted-attribute-card-shadow-color: #000000b3; + --floating-button-shadow-color: #00000080; + --floating-button-background-color: #494949d2; + --floating-button-color: var(--button-text-color); + --floating-button-hover-background: #ffffff20; + --floating-button-hover-color: white; + --floating-button-hide-button-background: gray; + --floating-button-separator-color: #00000080; + --right-pane-item-hover-background: #ffffff26; --right-pane-item-hover-color: white; diff --git a/src/public/stylesheets/theme-next-light.css b/src/public/stylesheets/theme-next-light.css index 7c4eff5be..cd973c98f 100644 --- a/src/public/stylesheets/theme-next-light.css +++ b/src/public/stylesheets/theme-next-light.css @@ -167,6 +167,14 @@ --promoted-attribute-card-background-color: var(--card-background-color); --promoted-attribute-card-shadow-color: #00000033; + --floating-button-shadow-color: #0000001f; + --floating-button-background-color: #e4e4e4cc; + --floating-button-color: var(--button-text-color); + --floating-button-hover-background: #00000017; + --floating-button-hover-color: black; + --floating-button-hide-button-background: gray; + --floating-button-separator-color: #ffffffd1; + --new-tab-button-background: #d8d8d8; --new-tab-button-color: #3a3a3a; --new-tab-button-shadow: 2px 2px 4px rgba(0, 0, 0, 0.2); diff --git a/src/public/stylesheets/theme-next/base.css b/src/public/stylesheets/theme-next/base.css index 7822e606b..888b83ca9 100644 --- a/src/public/stylesheets/theme-next/base.css +++ b/src/public/stylesheets/theme-next/base.css @@ -53,6 +53,11 @@ --center-pane-border-radius: 10px; + --floating-button-height: 34px; + --floating-button-width: 40px; + --floating-button-icon-size: 20px; + --floating-button-show-hide-button-size: 26px; + --menu-padding-size: 8px; --menu-item-icon-vert-offset: -2px; diff --git a/src/public/stylesheets/theme-next/shell.css b/src/public/stylesheets/theme-next/shell.css index f1fbd9d43..8251e2c22 100644 --- a/src/public/stylesheets/theme-next/shell.css +++ b/src/public/stylesheets/theme-next/shell.css @@ -1298,6 +1298,143 @@ div.promoted-attribute-cell .multiplicity:has(span) { font-size: 0; /* Prevent whitespaces creating a gap between buttons */ } +/* + * Floating buttons + */ + + /* Floating buttons container */ +.floating-buttons-children { + opacity: 1; + overflow: hidden; + transform-origin: right; + box-shadow: 1px 1px 1px var(--floating-button-shadow-color); + background: var(--floating-button-background-color); + backdrop-filter: blur(10px) saturate(6); + border-radius: 8px; + transition: transform 250ms ease-out, + opacity 250ms ease-out; +} + + /* Floating buttons container (collapsed) */ +.floating-buttons-children.temporarily-hidden { + display: flex !important; + opacity: 0; + transform: scaleX(0); + pointer-events: none; +} + +/* Floating buttons */ + +.floating-buttons-children > * { + margin: 0 !important; +} + +div.floating-buttons-children > button, +div.floating-buttons-children .floating-button { + width: var(--floating-button-width); + height: var(--floating-button-height); + padding: 0; + border: 0; + border-radius: 0; + font-size: var(--floating-button-icon-size); + align-items: center; + color: var(--floating-button-color); +} + +div.floating-buttons-children > button:hover, +div.floating-buttons-children .floating-button:hover { + background: var(--floating-button-hover-background); + color: var(--floating-button-hover-color); +} + + /* Show / hide buttons */ + +div.floating-buttons-children .close-floating-buttons-button, +div.floating-buttons .show-floating-buttons-button { + margin-top: calc((var(--floating-button-height) - var(--floating-button-show-hide-button-size)) / 2); + width: var(--floating-button-show-hide-button-size); + height: var(--floating-button-show-hide-button-size); + padding: 0; + border: 0; + font-size: calc(var(--floating-button-show-hide-button-size) * .75); +} + +div.floating-buttons .show-floating-buttons-button { + box-shadow: 0 2px 4px var(--left-pane-background-color); + background: var(--left-pane-item-action-button-background); + color: var(--left-pane-item-action-button-color); + backdrop-filter: blur(10px); +} + +div.floating-buttons-children .close-floating-buttons-button::before, +div.floating-buttons .show-floating-buttons-button::before { + content: "\eab4"; +} + +div.floating-buttons-children .close-floating-buttons-button { + color: var(--floating-button-hide-button-background); + border-radius: 0; +} + +div.floating-buttons-children .close-floating-buttons { + border-left: 2px solid var(--floating-button-separator-color); +} + +div.floating-buttons-children .close-floating-buttons:has(.close-floating-buttons-button:hover) { + background: var(--floating-button-hover-background); +} + +div.floating-buttons-children .close-floating-buttons { + margin-left: 0 !important; +} + +/* Backlink count */ + +.floating-buttons .backlinks-ticker { + height: 100%; + padding: 0 10px; + border-radius: 0; + border-left: 2px solid var(--floating-button-separator-color); + border-right: 2px solid var(--floating-button-separator-color); + background: transparent; + user-select: none; +} + +.floating-buttons .backlinks-ticker:has(.backlinks-count:hover) { + background: var(--floating-button-hover-background); +} + +/* Copy image reference */ + +.floating-buttons .copy-image-reference-button .hidden-image-copy { + /* Take out of the the hidden image from flexbox to prevent the layout being affected */ + position: absolute; +} + +/* Code buttons */ + +.floating-buttons .code-buttons-widget { + gap: 0; +} + +/* The highlight animation */ + +@keyframes floating-button-highlight { + from { + opacity: .25; + } to { + opacity: 1; + } +} + +.floating-buttons .bx-tada { + animation: floating-button-highlight 300ms linear alternate-reverse infinite; +} + +.floating-buttons .bx-tada::before { + font-size: var(--floating-button-icon-size); +} + /* * Find and replace bar */ From 99bd803d818261f085db8ea69b91583ba8e348aa Mon Sep 17 00:00:00 2001 From: Adorian Doran Date: Fri, 21 Mar 2025 03:40:07 +0200 Subject: [PATCH 21/28] style(next)/floating buttons: tweak the separator color --- src/public/stylesheets/theme-next-light.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/public/stylesheets/theme-next-light.css b/src/public/stylesheets/theme-next-light.css index cd973c98f..ea1018bf4 100644 --- a/src/public/stylesheets/theme-next-light.css +++ b/src/public/stylesheets/theme-next-light.css @@ -173,7 +173,7 @@ --floating-button-hover-background: #00000017; --floating-button-hover-color: black; --floating-button-hide-button-background: gray; - --floating-button-separator-color: #ffffffd1; + --floating-button-separator-color: #c0c0c0d1; --new-tab-button-background: #d8d8d8; --new-tab-button-color: #3a3a3a; From 6d82905ad4d240c5370f9f0af183d6fe83ee2762 Mon Sep 17 00:00:00 2001 From: Adorian Doran Date: Fri, 21 Mar 2025 04:12:12 +0200 Subject: [PATCH 22/28] style(next)/floating buttons: tweak --- src/public/stylesheets/theme-next/shell.css | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/src/public/stylesheets/theme-next/shell.css b/src/public/stylesheets/theme-next/shell.css index 8251e2c22..b87bba69b 100644 --- a/src/public/stylesheets/theme-next/shell.css +++ b/src/public/stylesheets/theme-next/shell.css @@ -1356,7 +1356,7 @@ div.floating-buttons .show-floating-buttons-button { height: var(--floating-button-show-hide-button-size); padding: 0; border: 0; - font-size: calc(var(--floating-button-show-hide-button-size) * .75); + font-size: calc(var(--floating-button-show-hide-button-size) * .8); } div.floating-buttons .show-floating-buttons-button { @@ -1364,11 +1364,19 @@ div.floating-buttons .show-floating-buttons-button { background: var(--left-pane-item-action-button-background); color: var(--left-pane-item-action-button-color); backdrop-filter: blur(10px); + animation: floating-buttons-show-hide-button-animation 400ms ease-out; } -div.floating-buttons-children .close-floating-buttons-button::before, -div.floating-buttons .show-floating-buttons-button::before { - content: "\eab4"; +@keyframes floating-buttons-show-hide-button-animation { + from { + transform: rotate(180deg); + } to { + transform: rotate(0); + } +} + +div.floating-buttons-children:not(.temporarily-hidden) .close-floating-buttons-button { + animation: floating-buttons-show-hide-button-animation 400ms ease-out; } div.floating-buttons-children .close-floating-buttons-button { From cf70dd0b4f57de77dbc674b3127ec2b8af62f9f0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 21 Mar 2025 02:40:05 +0000 Subject: [PATCH 23/28] chore(deps): update dependency electron to v35.0.3 --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index e670bc422..8bce802bb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -164,7 +164,7 @@ "bootstrap": "5.3.3", "cross-env": "7.0.3", "css-loader": "7.1.2", - "electron": "35.0.1", + "electron": "35.0.3", "eslint": "9.22.0", "esm": "3.2.25", "globals": "16.0.0", @@ -10151,9 +10151,9 @@ } }, "node_modules/electron": { - "version": "35.0.1", - "resolved": "https://registry.npmjs.org/electron/-/electron-35.0.1.tgz", - "integrity": "sha512-iQonj6lnPhqfqha2KXx6LzV1dnu6UPTCWK+b7f9Zvg828umGemi22DKbcJ3/q+Opn7iUVTWyqp9z1JQqkIi6OA==", + "version": "35.0.3", + "resolved": "https://registry.npmjs.org/electron/-/electron-35.0.3.tgz", + "integrity": "sha512-kjQAYEWXSr2TyK19IZoF85dzFIBaYuX7Yp/C+34b5Y/jmI2z270CGie+RjmEGMMitsy0G8YJKftukhYMuWlK6g==", "hasInstallScript": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index 1c8c504e1..9963b7375 100644 --- a/package.json +++ b/package.json @@ -221,7 +221,7 @@ "bootstrap": "5.3.3", "cross-env": "7.0.3", "css-loader": "7.1.2", - "electron": "35.0.1", + "electron": "35.0.3", "eslint": "9.22.0", "esm": "3.2.25", "globals": "16.0.0", From f9878962b8c0e815924131e9b2571ce1f9d87e20 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 21 Mar 2025 02:40:17 +0000 Subject: [PATCH 24/28] chore(deps): update dependency typedoc to v0.28.1 --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index e670bc422..54fb8890d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -190,7 +190,7 @@ "ts-loader": "9.5.2", "tslib": "2.8.1", "tsx": "4.19.3", - "typedoc": "0.28.0", + "typedoc": "0.28.1", "typescript": "5.8.2", "typescript-eslint": "8.27.0", "vitest": "3.0.9", @@ -20617,9 +20617,9 @@ } }, "node_modules/typedoc": { - "version": "0.28.0", - "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.28.0.tgz", - "integrity": "sha512-UU+xxZXrpnUhEulBYRwY2afoYFC24J2fTFovOs3llj2foGShCoKVQL6cQCfQ+sBAOdiFn2dETpZ9xhah+CL3RQ==", + "version": "0.28.1", + "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.28.1.tgz", + "integrity": "sha512-Mn2VPNMaxoe/hlBiLriG4U55oyAa3Xo+8HbtEwV7F5WEOPXqtxzGuMZhJYHaqFJpajeQ6ZDUC2c990NAtTbdgw==", "dev": true, "license": "Apache-2.0", "dependencies": { diff --git a/package.json b/package.json index 1c8c504e1..d89612110 100644 --- a/package.json +++ b/package.json @@ -247,7 +247,7 @@ "ts-loader": "9.5.2", "tslib": "2.8.1", "tsx": "4.19.3", - "typedoc": "0.28.0", + "typedoc": "0.28.1", "typescript": "5.8.2", "typescript-eslint": "8.27.0", "vitest": "3.0.9", From 8755c84dea75dd440dbc4839f29896e57b3e66f0 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 21 Mar 2025 02:40:27 +0000 Subject: [PATCH 25/28] fix(deps): update dependency codemirror to v5.65.19 --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index e670bc422..8bcf0e6eb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -25,7 +25,7 @@ "cheerio": "1.0.0", "chokidar": "4.0.3", "cls-hooked": "4.2.2", - "codemirror": "5.65.18", + "codemirror": "5.65.19", "compression": "1.8.0", "cookie-parser": "1.4.7", "csrf-csrf": "3.1.0", @@ -8561,9 +8561,9 @@ } }, "node_modules/codemirror": { - "version": "5.65.18", - "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.65.18.tgz", - "integrity": "sha512-Gaz4gHnkbHMGgahNt3CA5HBk5lLQBqmD/pBgeB4kQU6OedZmqMBjlRF0LSrp2tJ4wlLNPm2FfaUd1pDy0mdlpA==", + "version": "5.65.19", + "resolved": "https://registry.npmjs.org/codemirror/-/codemirror-5.65.19.tgz", + "integrity": "sha512-+aFkvqhaAVr1gferNMuN8vkTSrWIFvzlMV9I2KBLCWS2WpZ2+UAkZjlMZmEuT+gcXTi6RrGQCkWq1/bDtGqhIA==", "license": "MIT" }, "node_modules/color-convert": { diff --git a/package.json b/package.json index 1c8c504e1..826d6da69 100644 --- a/package.json +++ b/package.json @@ -85,7 +85,7 @@ "cheerio": "1.0.0", "chokidar": "4.0.3", "cls-hooked": "4.2.2", - "codemirror": "5.65.18", + "codemirror": "5.65.19", "compression": "1.8.0", "cookie-parser": "1.4.7", "csrf-csrf": "3.1.0", From 1b5d665fbc2ec831e6df3ba72e20044ab4390c3c Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 21 Mar 2025 02:40:38 +0000 Subject: [PATCH 26/28] fix(deps): update dependency force-graph to v1.49.5 --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index e670bc422..343e8b39b 100644 --- a/package-lock.json +++ b/package-lock.json @@ -43,7 +43,7 @@ "express": "4.21.2", "express-rate-limit": "7.5.0", "express-session": "1.18.1", - "force-graph": "1.49.4", + "force-graph": "1.49.5", "fs-extra": "11.3.0", "helmet": "8.1.0", "html": "1.0.0", @@ -12231,9 +12231,9 @@ } }, "node_modules/force-graph": { - "version": "1.49.4", - "resolved": "https://registry.npmjs.org/force-graph/-/force-graph-1.49.4.tgz", - "integrity": "sha512-TMbbXg3n0pjI8cmgNlv1IKEGewnd9LdwKVJ4cj4XzZXqP/Q5aSjsyuxzIITtkfDJ+KDsiLql1FHu19Lqrq41uQ==", + "version": "1.49.5", + "resolved": "https://registry.npmjs.org/force-graph/-/force-graph-1.49.5.tgz", + "integrity": "sha512-mCTLxsaOPfp4Jq4FND8sHTpa8aZDLNXgkwAN98IDZ8Ve3nralz0gNsmE4Nx6NFm48olJ0gzCQYYLJrrYDqifew==", "license": "MIT", "dependencies": { "@tweenjs/tween.js": "18 - 25", diff --git a/package.json b/package.json index 1c8c504e1..8d90be3fd 100644 --- a/package.json +++ b/package.json @@ -103,7 +103,7 @@ "express": "4.21.2", "express-rate-limit": "7.5.0", "express-session": "1.18.1", - "force-graph": "1.49.4", + "force-graph": "1.49.5", "fs-extra": "11.3.0", "helmet": "8.1.0", "html": "1.0.0", From 0e8cd3b4ba6abcbd75ed147c5952828338c17b71 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 21 Mar 2025 02:40:48 +0000 Subject: [PATCH 27/28] fix(deps): update dependency multer to v1.4.5-lts.2 --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index e670bc422..24ad73851 100644 --- a/package-lock.json +++ b/package-lock.json @@ -70,7 +70,7 @@ "marked": "15.0.7", "mermaid": "11.5.0", "mime-types": "2.1.35", - "multer": "1.4.5-lts.1", + "multer": "1.4.5-lts.2", "normalize-strings": "1.1.1", "normalize.css": "8.0.1", "panzoom": "9.4.3", @@ -15868,9 +15868,9 @@ "license": "MIT" }, "node_modules/multer": { - "version": "1.4.5-lts.1", - "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.1.tgz", - "integrity": "sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ==", + "version": "1.4.5-lts.2", + "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.2.tgz", + "integrity": "sha512-VzGiVigcG9zUAoCNU+xShztrlr1auZOlurXynNvO9GiWD1/mTBbUljOKY+qMeazBqXgRnjzeEgJI/wyjJUHg9A==", "license": "MIT", "dependencies": { "append-field": "^1.0.0", diff --git a/package.json b/package.json index 1c8c504e1..63d041422 100644 --- a/package.json +++ b/package.json @@ -130,7 +130,7 @@ "marked": "15.0.7", "mermaid": "11.5.0", "mime-types": "2.1.35", - "multer": "1.4.5-lts.1", + "multer": "1.4.5-lts.2", "normalize-strings": "1.1.1", "normalize.css": "8.0.1", "panzoom": "9.4.3", From 90cdb5d64124309fd0ffbc42194b70b7e868dad9 Mon Sep 17 00:00:00 2001 From: "renovate[bot]" <29139614+renovate[bot]@users.noreply.github.com> Date: Fri, 21 Mar 2025 02:40:58 +0000 Subject: [PATCH 28/28] chore(deps): update dependency supertest to v7.1.0 --- package-lock.json | 8 ++++---- package.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/package-lock.json b/package-lock.json index e670bc422..10e1a5be1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -184,7 +184,7 @@ "sass": "1.86.0", "sass-loader": "16.0.5", "split.js": "1.6.5", - "supertest": "7.0.0", + "supertest": "7.1.0", "svg-pan-zoom": "3.6.2", "swagger-jsdoc": "6.2.8", "ts-loader": "9.5.2", @@ -19742,9 +19742,9 @@ } }, "node_modules/supertest": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/supertest/-/supertest-7.0.0.tgz", - "integrity": "sha512-qlsr7fIC0lSddmA3tzojvzubYxvlGtzumcdHgPwbFWMISQwL22MhM2Y3LNt+6w9Yyx7559VW5ab70dgphm8qQA==", + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supertest/-/supertest-7.1.0.tgz", + "integrity": "sha512-5QeSO8hSrKghtcWEoPiO036fxH0Ii2wVQfFZSP0oqQhmjk8bOLhDFXr4JrvaFmPuEWUoq4znY3uSi8UzLKxGqw==", "dev": true, "license": "MIT", "dependencies": { diff --git a/package.json b/package.json index 1c8c504e1..a54a3faad 100644 --- a/package.json +++ b/package.json @@ -241,7 +241,7 @@ "sass": "1.86.0", "sass-loader": "16.0.5", "split.js": "1.6.5", - "supertest": "7.0.0", + "supertest": "7.1.0", "svg-pan-zoom": "3.6.2", "swagger-jsdoc": "6.2.8", "ts-loader": "9.5.2",