Merge branch 'feature/port_ts' of ssh://github.com/TriliumNext/Notes into feature/port_ts

This commit is contained in:
Elian Doran 2025-03-20 17:57:16 +02:00
commit 48e9e30efe
No known key found for this signature in database
20 changed files with 6602 additions and 3717 deletions

View File

@ -68,7 +68,6 @@ try {
"node_modules/katex/dist/contrib/mhchem.min.js",
"node_modules/katex/dist/contrib/auto-render.min.js",
"node_modules/@highlightjs/cdn-assets/highlight.min.js",
"node_modules/@mind-elixir/node-menu/dist/node-menu.umd.cjs"
]);
const nodeModulesFolder = new Set([
@ -94,7 +93,6 @@ try {
"node_modules/codemirror/addon/",
"node_modules/codemirror/mode/",
"node_modules/codemirror/keymap/",
"node_modules/mind-elixir/dist/",
"node_modules/@highlightjs/cdn-assets/languages",
"node_modules/@highlightjs/cdn-assets/styles",
"node_modules/leaflet/dist"

151
package-lock.json generated
View File

@ -14,12 +14,11 @@
"@excalidraw/excalidraw": "0.18.0",
"@highlightjs/cdn-assets": "11.11.1",
"@mermaid-js/layout-elk": "0.1.7",
"@mind-elixir/node-menu": "1.0.4",
"@triliumnext/express-partial-content": "1.0.1",
"archiver": "7.0.1",
"async-mutex": "0.5.0",
"autocomplete.js": "0.38.1",
"axios": "1.8.3",
"axios": "1.8.4",
"better-sqlite3": "11.9.1",
"boxicons": "2.1.4",
"chardet": "2.1.0",
@ -71,7 +70,6 @@
"marked": "15.0.7",
"mermaid": "11.5.0",
"mime-types": "2.1.35",
"mind-elixir": "4.4.2",
"multer": "1.4.5-lts.1",
"normalize-strings": "1.1.1",
"normalize.css": "8.0.1",
@ -81,7 +79,7 @@
"react-dom": "18.3.1",
"safe-compare": "1.1.4",
"sanitize-filename": "1.6.3",
"sanitize-html": "2.14.0",
"sanitize-html": "2.15.0",
"sax": "1.4.1",
"serve-favicon": "2.5.0",
"session-file-store": "1.5.0",
@ -118,6 +116,7 @@
"@fullcalendar/list": "6.1.15",
"@fullcalendar/multimonth": "6.1.15",
"@fullcalendar/timegrid": "6.1.15",
"@mind-elixir/node-menu": "1.0.5",
"@playwright/test": "1.51.1",
"@popperjs/core": "2.11.8",
"@types/archiver": "6.0.3",
@ -131,7 +130,7 @@
"@types/ejs": "3.1.5",
"@types/electron-squirrel-startup": "1.0.2",
"@types/escape-html": "1.0.4",
"@types/express": "5.0.0",
"@types/express": "5.0.1",
"@types/express-session": "1.18.1",
"@types/fs-extra": "11.0.4",
"@types/html": "1.0.4",
@ -144,7 +143,7 @@
"@types/mime-types": "2.1.4",
"@types/multer": "1.4.12",
"@types/node": "22.13.10",
"@types/react": "18.3.18",
"@types/react": "18.3.19",
"@types/react-dom": "18.3.5",
"@types/safe-compare": "1.1.2",
"@types/sanitize-html": "2.13.0",
@ -174,6 +173,7 @@
"jsdoc": "4.0.4",
"knockout": "3.5.1",
"lorem-ipsum": "2.0.8",
"mind-elixir": "4.4.3",
"mini-css-extract-plugin": "2.9.2",
"nodemon": "3.1.9",
"postcss-loader": "8.1.1",
@ -191,7 +191,7 @@
"tsx": "4.19.3",
"typedoc": "0.28.0",
"typescript": "5.8.2",
"typescript-eslint": "8.26.1",
"typescript-eslint": "8.27.0",
"vitest": "3.0.9",
"webpack": "5.98.0",
"webpack-cli": "6.0.1",
@ -3971,11 +3971,12 @@
}
},
"node_modules/@mind-elixir/node-menu": {
"version": "1.0.4",
"resolved": "https://registry.npmjs.org/@mind-elixir/node-menu/-/node-menu-1.0.4.tgz",
"integrity": "sha512-xEwBakXEyVCfb8NFYmuvoXSZugxWZUa/s/bxLI8lxTKzTqhHOX4cJdp3B77ojUfnW4KvYJChlo7zkepijsmn0Q==",
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/@mind-elixir/node-menu/-/node-menu-1.0.5.tgz",
"integrity": "sha512-tlw85nwtfEoF47mLecRSMkcNW6D9ScDyg1YI+InZKtSgsvvnEm72kOyksp8B1haLk2ctVMFPJ7ay84MtWgrBGQ==",
"dev": true,
"peerDependencies": {
"mind-elixir": ">2.0.1"
"mind-elixir": ">4.4.1"
}
},
"node_modules/@mixmark-io/domino": {
@ -5649,15 +5650,14 @@
"license": "MIT"
},
"node_modules/@types/express": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/@types/express/-/express-5.0.0.tgz",
"integrity": "sha512-DvZriSMehGHL1ZNLzi6MidnsDhUZM/x2pRdDIKdwbUNqqwHxMlRdkxtn6/EPKyqKpHqTl/4nRZsRNLpZxZRpPQ==",
"version": "5.0.1",
"resolved": "https://registry.npmjs.org/@types/express/-/express-5.0.1.tgz",
"integrity": "sha512-UZUw8vjpWFXuDnjFTh7/5c2TWDlQqeXHi6hcN7F2XSVT5P+WmUnnbFS3KA6Jnc6IsEqI2qCVu2bK0R0J4A8ZQQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@types/body-parser": "*",
"@types/express-serve-static-core": "^5.0.0",
"@types/qs": "*",
"@types/serve-static": "*"
}
},
@ -5941,9 +5941,9 @@
"license": "MIT"
},
"node_modules/@types/react": {
"version": "18.3.18",
"resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.18.tgz",
"integrity": "sha512-t4yC+vtgnkYjNSKlFx1jkAhH8LgTo2N/7Qvi83kdEaUtMDiwpbLAktKDaAMlRcJ5eSxZkH74eEGt1ky31d7kfQ==",
"version": "18.3.19",
"resolved": "https://registry.npmjs.org/@types/react/-/react-18.3.19.tgz",
"integrity": "sha512-fcdJqaHOMDbiAwJnXv6XCzX0jDW77yI3tJqYh1Byn8EL5/S628WRx9b/y3DnNe55zTukUQKrfYxiZls2dHcUMw==",
"devOptional": true,
"license": "MIT",
"dependencies": {
@ -6196,17 +6196,17 @@
}
},
"node_modules/@typescript-eslint/eslint-plugin": {
"version": "8.26.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.26.1.tgz",
"integrity": "sha512-2X3mwqsj9Bd3Ciz508ZUtoQQYpOhU/kWoUqIf49H8Z0+Vbh6UF/y0OEYp0Q0axOGzaBGs7QxRwq0knSQ8khQNA==",
"version": "8.27.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.27.0.tgz",
"integrity": "sha512-4henw4zkePi5p252c8ncBLzLce52SEUz2Ebj8faDnuUXz2UuHEONYcJ+G0oaCF+bYCWVZtrGzq3FD7YXetmnSA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@eslint-community/regexpp": "^4.10.0",
"@typescript-eslint/scope-manager": "8.26.1",
"@typescript-eslint/type-utils": "8.26.1",
"@typescript-eslint/utils": "8.26.1",
"@typescript-eslint/visitor-keys": "8.26.1",
"@typescript-eslint/scope-manager": "8.27.0",
"@typescript-eslint/type-utils": "8.27.0",
"@typescript-eslint/utils": "8.27.0",
"@typescript-eslint/visitor-keys": "8.27.0",
"graphemer": "^1.4.0",
"ignore": "^5.3.1",
"natural-compare": "^1.4.0",
@ -6226,16 +6226,16 @@
}
},
"node_modules/@typescript-eslint/parser": {
"version": "8.26.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.26.1.tgz",
"integrity": "sha512-w6HZUV4NWxqd8BdeFf81t07d7/YV9s7TCWrQQbG5uhuvGUAW+fq1usZ1Hmz9UPNLniFnD8GLSsDpjP0hm1S4lQ==",
"version": "8.27.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-8.27.0.tgz",
"integrity": "sha512-XGwIabPallYipmcOk45DpsBSgLC64A0yvdAkrwEzwZ2viqGqRUJ8eEYoPz0CWnutgAFbNMPdsGGvzjSmcWVlEA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@typescript-eslint/scope-manager": "8.26.1",
"@typescript-eslint/types": "8.26.1",
"@typescript-eslint/typescript-estree": "8.26.1",
"@typescript-eslint/visitor-keys": "8.26.1",
"@typescript-eslint/scope-manager": "8.27.0",
"@typescript-eslint/types": "8.27.0",
"@typescript-eslint/typescript-estree": "8.27.0",
"@typescript-eslint/visitor-keys": "8.27.0",
"debug": "^4.3.4"
},
"engines": {
@ -6251,14 +6251,14 @@
}
},
"node_modules/@typescript-eslint/scope-manager": {
"version": "8.26.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.26.1.tgz",
"integrity": "sha512-6EIvbE5cNER8sqBu6V7+KeMZIC1664d2Yjt+B9EWUXrsyWpxx4lEZrmvxgSKRC6gX+efDL/UY9OpPZ267io3mg==",
"version": "8.27.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-8.27.0.tgz",
"integrity": "sha512-8oI9GwPMQmBryaaxG1tOZdxXVeMDte6NyJA4i7/TWa4fBwgnAXYlIQP+uYOeqAaLJ2JRxlG9CAyL+C+YE9Xknw==",
"dev": true,
"license": "MIT",
"dependencies": {
"@typescript-eslint/types": "8.26.1",
"@typescript-eslint/visitor-keys": "8.26.1"
"@typescript-eslint/types": "8.27.0",
"@typescript-eslint/visitor-keys": "8.27.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@ -6269,14 +6269,14 @@
}
},
"node_modules/@typescript-eslint/type-utils": {
"version": "8.26.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.26.1.tgz",
"integrity": "sha512-Kcj/TagJLwoY/5w9JGEFV0dclQdyqw9+VMndxOJKtoFSjfZhLXhYjzsQEeyza03rwHx2vFEGvrJWJBXKleRvZg==",
"version": "8.27.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-8.27.0.tgz",
"integrity": "sha512-wVArTVcz1oJOIEJxui/nRhV0TXzD/zMSOYi/ggCfNq78EIszddXcJb7r4RCp/oBrjt8n9A0BSxRMKxHftpDxDA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@typescript-eslint/typescript-estree": "8.26.1",
"@typescript-eslint/utils": "8.26.1",
"@typescript-eslint/typescript-estree": "8.27.0",
"@typescript-eslint/utils": "8.27.0",
"debug": "^4.3.4",
"ts-api-utils": "^2.0.1"
},
@ -6293,9 +6293,9 @@
}
},
"node_modules/@typescript-eslint/types": {
"version": "8.26.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.26.1.tgz",
"integrity": "sha512-n4THUQW27VmQMx+3P+B0Yptl7ydfceUj4ON/AQILAASwgYdZ/2dhfymRMh5egRUrvK5lSmaOm77Ry+lmXPOgBQ==",
"version": "8.27.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-8.27.0.tgz",
"integrity": "sha512-/6cp9yL72yUHAYq9g6DsAU+vVfvQmd1a8KyA81uvfDE21O2DwQ/qxlM4AR8TSdAu+kJLBDrEHKC5/W2/nxsY0A==",
"dev": true,
"license": "MIT",
"engines": {
@ -6307,14 +6307,14 @@
}
},
"node_modules/@typescript-eslint/typescript-estree": {
"version": "8.26.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.26.1.tgz",
"integrity": "sha512-yUwPpUHDgdrv1QJ7YQal3cMVBGWfnuCdKbXw1yyjArax3353rEJP1ZA+4F8nOlQ3RfS2hUN/wze3nlY+ZOhvoA==",
"version": "8.27.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-8.27.0.tgz",
"integrity": "sha512-BnKq8cqPVoMw71O38a1tEb6iebEgGA80icSxW7g+kndx0o6ot6696HjG7NdgfuAVmVEtwXUr3L8R9ZuVjoQL6A==",
"dev": true,
"license": "MIT",
"dependencies": {
"@typescript-eslint/types": "8.26.1",
"@typescript-eslint/visitor-keys": "8.26.1",
"@typescript-eslint/types": "8.27.0",
"@typescript-eslint/visitor-keys": "8.27.0",
"debug": "^4.3.4",
"fast-glob": "^3.3.2",
"is-glob": "^4.0.3",
@ -6360,16 +6360,16 @@
}
},
"node_modules/@typescript-eslint/utils": {
"version": "8.26.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.26.1.tgz",
"integrity": "sha512-V4Urxa/XtSUroUrnI7q6yUTD3hDtfJ2jzVfeT3VK0ciizfK2q/zGC0iDh1lFMUZR8cImRrep6/q0xd/1ZGPQpg==",
"version": "8.27.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-8.27.0.tgz",
"integrity": "sha512-njkodcwH1yvmo31YWgRHNb/x1Xhhq4/m81PhtvmRngD8iHPehxffz1SNCO+kwaePhATC+kOa/ggmvPoPza5i0Q==",
"dev": true,
"license": "MIT",
"dependencies": {
"@eslint-community/eslint-utils": "^4.4.0",
"@typescript-eslint/scope-manager": "8.26.1",
"@typescript-eslint/types": "8.26.1",
"@typescript-eslint/typescript-estree": "8.26.1"
"@typescript-eslint/scope-manager": "8.27.0",
"@typescript-eslint/types": "8.27.0",
"@typescript-eslint/typescript-estree": "8.27.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"
@ -6384,13 +6384,13 @@
}
},
"node_modules/@typescript-eslint/visitor-keys": {
"version": "8.26.1",
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.26.1.tgz",
"integrity": "sha512-AjOC3zfnxd6S4Eiy3jwktJPclqhFHNyd8L6Gycf9WUPoKZpgM5PjkxY1X7uSy61xVpiJDhhk7XT2NVsN3ALTWg==",
"version": "8.27.0",
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-8.27.0.tgz",
"integrity": "sha512-WsXQwMkILJvffP6z4U3FYJPlbf/j07HIxmDjZpbNvBJkMfvwXj5ACRkkHwBDvLBbDbtX5TdU64/rcvKJ/vuInQ==",
"dev": true,
"license": "MIT",
"dependencies": {
"@typescript-eslint/types": "8.26.1",
"@typescript-eslint/types": "8.27.0",
"eslint-visitor-keys": "^4.2.0"
},
"engines": {
@ -7357,9 +7357,9 @@
}
},
"node_modules/axios": {
"version": "1.8.3",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.8.3.tgz",
"integrity": "sha512-iP4DebzoNlP/YN2dpwCgb8zoCmhtkajzS48JvwmkSkXvPI3DHc7m+XYL5tGnSlJtR6nImXZmdCuN5aP8dh1d8A==",
"version": "1.8.4",
"resolved": "https://registry.npmjs.org/axios/-/axios-1.8.4.tgz",
"integrity": "sha512-eBSYY4Y68NNlHbHBMdeDmKNtDgXWhQsJcGqzO3iLUM0GraQFSS9cVgPX5I9b3lbdFKyYoAEGAZF1DwhTaljNAw==",
"license": "MIT",
"dependencies": {
"follow-redirects": "^1.15.6",
@ -15672,9 +15672,10 @@
}
},
"node_modules/mind-elixir": {
"version": "4.4.2",
"resolved": "https://registry.npmjs.org/mind-elixir/-/mind-elixir-4.4.2.tgz",
"integrity": "sha512-yHsUdKYvhB/SnBY9Fb/2cPTsysKDT+nu5vQVYPFEWWniZaGszpM9gPlCB28IEcOEGpaSDGOWOTt89Qc/wFYZSw==",
"version": "4.4.3",
"resolved": "https://registry.npmjs.org/mind-elixir/-/mind-elixir-4.4.3.tgz",
"integrity": "sha512-i2GBFtZ4Z6pv5z5/QcfQFrbVTNa0OWayfx7OvQpzNn7X62l6xJn0y3dKxQ/KuT50HxgZiyRptY5J0xBc2qeuZw==",
"dev": true,
"license": "MIT"
},
"node_modules/mini-css-extract-plugin": {
@ -18632,9 +18633,9 @@
}
},
"node_modules/sanitize-html": {
"version": "2.14.0",
"resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-2.14.0.tgz",
"integrity": "sha512-CafX+IUPxZshXqqRaG9ZClSlfPVjSxI0td7n07hk8QO2oO+9JDnlcL8iM8TWeOXOIBFgIOx6zioTzM53AOMn3g==",
"version": "2.15.0",
"resolved": "https://registry.npmjs.org/sanitize-html/-/sanitize-html-2.15.0.tgz",
"integrity": "sha512-wIjst57vJGpLyBP8ioUbg6ThwJie5SuSIjHxJg53v5Fg+kUK+AXlb7bK3RNXpp315MvwM+0OBGCV6h5pPHsVhA==",
"license": "MIT",
"dependencies": {
"deepmerge": "^4.2.2",
@ -20668,15 +20669,15 @@
}
},
"node_modules/typescript-eslint": {
"version": "8.26.1",
"resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.26.1.tgz",
"integrity": "sha512-t/oIs9mYyrwZGRpDv3g+3K6nZ5uhKEMt2oNmAPwaY4/ye0+EH4nXIPYNtkYFS6QHm+1DFg34DbglYBz5P9Xysg==",
"version": "8.27.0",
"resolved": "https://registry.npmjs.org/typescript-eslint/-/typescript-eslint-8.27.0.tgz",
"integrity": "sha512-ZZ/8+Y0rRUMuW1gJaPtLWe4ryHbsPLzzibk5Sq+IFa2aOH1Vo0gPr1fbA6pOnzBke7zC2Da4w8AyCgxKXo3lqA==",
"dev": true,
"license": "MIT",
"dependencies": {
"@typescript-eslint/eslint-plugin": "8.26.1",
"@typescript-eslint/parser": "8.26.1",
"@typescript-eslint/utils": "8.26.1"
"@typescript-eslint/eslint-plugin": "8.27.0",
"@typescript-eslint/parser": "8.27.0",
"@typescript-eslint/utils": "8.27.0"
},
"engines": {
"node": "^18.18.0 || ^20.9.0 || >=21.1.0"

View File

@ -74,12 +74,11 @@
"@excalidraw/excalidraw": "0.18.0",
"@highlightjs/cdn-assets": "11.11.1",
"@mermaid-js/layout-elk": "0.1.7",
"@mind-elixir/node-menu": "1.0.4",
"@triliumnext/express-partial-content": "1.0.1",
"archiver": "7.0.1",
"async-mutex": "0.5.0",
"autocomplete.js": "0.38.1",
"axios": "1.8.3",
"axios": "1.8.4",
"better-sqlite3": "11.9.1",
"boxicons": "2.1.4",
"chardet": "2.1.0",
@ -131,7 +130,6 @@
"marked": "15.0.7",
"mermaid": "11.5.0",
"mime-types": "2.1.35",
"mind-elixir": "4.4.2",
"multer": "1.4.5-lts.1",
"normalize-strings": "1.1.1",
"normalize.css": "8.0.1",
@ -141,7 +139,7 @@
"react-dom": "18.3.1",
"safe-compare": "1.1.4",
"sanitize-filename": "1.6.3",
"sanitize-html": "2.14.0",
"sanitize-html": "2.15.0",
"sax": "1.4.1",
"serve-favicon": "2.5.0",
"session-file-store": "1.5.0",
@ -175,6 +173,7 @@
"@fullcalendar/list": "6.1.15",
"@fullcalendar/multimonth": "6.1.15",
"@fullcalendar/timegrid": "6.1.15",
"@mind-elixir/node-menu": "1.0.5",
"@playwright/test": "1.51.1",
"@popperjs/core": "2.11.8",
"@types/archiver": "6.0.3",
@ -188,7 +187,7 @@
"@types/ejs": "3.1.5",
"@types/electron-squirrel-startup": "1.0.2",
"@types/escape-html": "1.0.4",
"@types/express": "5.0.0",
"@types/express": "5.0.1",
"@types/express-session": "1.18.1",
"@types/fs-extra": "11.0.4",
"@types/html": "1.0.4",
@ -201,7 +200,7 @@
"@types/mime-types": "2.1.4",
"@types/multer": "1.4.12",
"@types/node": "22.13.10",
"@types/react": "18.3.18",
"@types/react": "18.3.19",
"@types/react-dom": "18.3.5",
"@types/safe-compare": "1.1.2",
"@types/sanitize-html": "2.13.0",
@ -231,6 +230,7 @@
"jsdoc": "4.0.4",
"knockout": "3.5.1",
"lorem-ipsum": "2.0.8",
"mind-elixir": "4.4.3",
"mini-css-extract-plugin": "2.9.2",
"nodemon": "3.1.9",
"postcss-loader": "8.1.1",
@ -248,7 +248,7 @@
"tsx": "4.19.3",
"typedoc": "0.28.0",
"typescript": "5.8.2",
"typescript-eslint": "8.26.1",
"typescript-eslint": "8.27.0",
"vitest": "3.0.9",
"webpack": "5.98.0",
"webpack-cli": "6.0.1",

View File

@ -1,4 +1,4 @@
import config from './rollup.config';
import config from './rollup.config.js';
export default config({
output: {

View File

@ -1,4 +1,4 @@
import config from './rollup.config';
import config from './rollup.config.js';
export default config({
output: {

View File

@ -1,4 +1,4 @@
import config from './rollup.config';
import config from './rollup.config.js';
export default config({
output: {

View File

@ -1,4 +1,4 @@
import config from './rollup.config';
import config from './rollup.config.js';
export default config({
output: {

View File

@ -1,8 +1,9 @@
import config from './rollup.config';
import config from './rollup.config.js';
export default config({
output: {
format: 'iife',
file: 'dist/turndown-plugin-gfm.js',
name: 'turndownPluginGfm'
},
});

View File

@ -1,6 +1,5 @@
export default function(config) {
return {
name: 'turndownPluginGfm',
input: 'src/gfm.js',
output: config.output,
};

File diff suppressed because it is too large Load Diff

View File

@ -8,9 +8,9 @@
"author": "Dom Christie",
"main": "lib/turndown-plugin-gfm.cjs.js",
"devDependencies": {
"browserify": "14.5.0",
"rollup": "0.50.1",
"standard": "17.1.0",
"browserify": "^17.0.1",
"rollup": "^4.36.0",
"standard": "^17.1.2",
"turndown": "7.2.0",
"turndown-attendant": "0.0.3"
},
@ -32,6 +32,7 @@
"type": "git",
"url": "https://github.com/laurent22/joplin-turndown-plugin-gfm.git"
},
"type": "module",
"scripts": {
"build-all": "npm run build-cjs && npm run build-es && npm run build-iife",
"build": "rollup -c config/rollup.config.cjs.js",

View File

@ -5,13 +5,15 @@ import utils from "./utils.js";
import appContext from "../components/app_context.js";
import { t } from "./i18n.js";
interface UploadFilesOptions {
safeImport?: boolean;
shrinkImages: boolean | "true" | "false";
textImportedAsText?: boolean;
codeImportedAsCode?: boolean;
explodeArchives?: boolean;
replaceUnderscoresWithSpaces?: boolean;
type BooleanLike = boolean | "true" | "false";
export interface UploadFilesOptions {
safeImport?: BooleanLike;
shrinkImages: BooleanLike;
textImportedAsText?: BooleanLike;
codeImportedAsCode?: BooleanLike;
explodeArchives?: BooleanLike;
replaceUnderscoresWithSpaces?: BooleanLike;
}
export async function uploadFiles(entityType: string, parentNoteId: string, files: string[] | File[], options: UploadFilesOptions) {

View File

@ -1,10 +1,11 @@
import utils, { escapeQuotes } from "../../services/utils.js";
import treeService from "../../services/tree.js";
import importService from "../../services/import.js";
import importService, { type UploadFilesOptions } from "../../services/import.js";
import options from "../../services/options.js";
import BasicWidget from "../basic_widget.js";
import { t } from "../../services/i18n.js";
import { Modal, Tooltip } from "bootstrap";
import type { EventData } from "../../components/app_context.js";
const TPL = `
<div class="import-dialog modal fade mx-auto" tabindex="-1" role="dialog">
@ -79,6 +80,20 @@ const TPL = `
</div>`;
export default class ImportDialog extends BasicWidget {
private parentNoteId: string | null;
private $form!: JQuery<HTMLElement>;
private $noteTitle!: JQuery<HTMLElement>;
private $fileUploadInput!: JQuery<HTMLInputElement>;
private $importButton!: JQuery<HTMLElement>;
private $safeImportCheckbox!: JQuery<HTMLElement>;
private $shrinkImagesCheckbox!: JQuery<HTMLElement>;
private $textImportedAsTextCheckbox!: JQuery<HTMLElement>;
private $codeImportedAsCodeCheckbox!: JQuery<HTMLElement>;
private $explodeArchivesCheckbox!: JQuery<HTMLElement>;
private $replaceUnderscoresWithSpacesCheckbox!: JQuery<HTMLElement>;
constructor() {
super();
@ -87,7 +102,7 @@ export default class ImportDialog extends BasicWidget {
doRender() {
this.$widget = $(TPL);
Modal.getOrCreateInstance(this.$widget);
Modal.getOrCreateInstance(this.$widget[0]);
this.$form = this.$widget.find(".import-form");
this.$noteTitle = this.$widget.find(".import-note-title");
@ -104,7 +119,9 @@ export default class ImportDialog extends BasicWidget {
// disabling so that import is not triggered again.
this.$importButton.attr("disabled", "disabled");
this.importIntoNote(this.parentNoteId);
if (this.parentNoteId) {
this.importIntoNote(this.parentNoteId);
}
return false;
});
@ -124,7 +141,7 @@ export default class ImportDialog extends BasicWidget {
});
}
async showImportDialogEvent({ noteId }) {
async showImportDialogEvent({ noteId }: EventData<"showImportDialog">) {
this.parentNoteId = noteId;
this.$fileUploadInput.val("").trigger("change"); // to trigger Import button disabling listener below
@ -141,12 +158,12 @@ export default class ImportDialog extends BasicWidget {
utils.openDialog(this.$widget);
}
async importIntoNote(parentNoteId) {
const files = Array.from(this.$fileUploadInput[0].files); // shallow copy since we're resetting the upload button below
async importIntoNote(parentNoteId: string) {
const files = Array.from(this.$fileUploadInput[0].files ?? []); // shallow copy since we're resetting the upload button below
const boolToString = ($el) => ($el.is(":checked") ? "true" : "false");
const boolToString = ($el: JQuery<HTMLElement>) => ($el.is(":checked") ? "true" : "false");
const options = {
const options: UploadFilesOptions = {
safeImport: boolToString(this.$safeImportCheckbox),
shrinkImages: boolToString(this.$shrinkImagesCheckbox),
textImportedAsText: boolToString(this.$textImportedAsTextCheckbox),

View File

@ -10,12 +10,17 @@ const TPL = `<div class="note-detail-doc note-detail-printable">
}
.note-detail-doc-content pre {
background-color: var(--accented-background-color);
border: 1px solid var(--main-border-color);
border: 0;
box-shadow: var(--code-block-box-shadow);
padding: 15px;
border-radius: 5px;
}
.note-detail-doc-content pre:not(.hljs) {
background-color: var(--accented-background-color);
border: 1px solid var(--main-border-color);
}
.note-detail-doc.contextual-help {
padding-bottom: 0;
}

View File

@ -5,6 +5,9 @@ import nodeMenu from "@mind-elixir/node-menu";
import type FNote from "../../entities/fnote.js";
import type { EventData } from "../../components/app_context.js";
// allow node-menu plugin css to be bundled by webpack
import "@mind-elixir/node-menu/dist/style.css";
const NEW_TOPIC_NAME = "";
const TPL = `

View File

@ -1,7 +1,8 @@
@import url(./forms.css);
@import url(./shell.css);
@import url(./dialogs.css);
@import url(./pages.css);
@import url(./ribbon.css);
@import url(./settings.css);
@import url(./notes/empty.css);
@import url(./notes/text.css);
@ -10,6 +11,10 @@
src: url(../../fonts/Inter/Inter-VariableFont_opsz\,wght.ttf);
}
/*
* GLOBAL VARIABLES
*/
:root {
--main-font-family: "Inter", sans-serif;
@ -73,45 +78,196 @@
--tab-note-icons: true;
}
/* Tool dialogs - small dialogs without a backdrop */
div.tn-tool-dialog {
border-radius: 10px;
background: var(--tool-dialog-background-color) !important;
user-select: none;
box-shadow: 10px 10px 93px -25px var(--tool-dialog-shadow-color);
}
/*
* Note search suggestions
* MENUS
*
* Note: apply the "tn-dropdown-list" class for scrollable dropdown menus. Submenus are not
* supported when this class is used.
*/
/* List body */
.jump-to-note-dialog .jump-to-note-results .aa-suggestions,
.note-detail-empty .aa-suggestions {
padding: 0;
.dropdown-menu:not(.static) {
border-radius: var(--dropdown-border-radius);
padding: var(--menu-padding-size) !important;
font-size: 0.9rem !important;
}
/* List item */
.jump-to-note-dialog .aa-suggestions div,
.note-detail-empty .aa-suggestions div {
.dropdown-menu::-webkit-scrollbar-track {
background: var(--menu-background-color);
}
body.mobile .dropdown-menu {
backdrop-filter: var(--dropdown-backdrop-filter);
border-radius: var(--dropdown-border-radius);
position: relative;
}
body.mobile .dropdown-menu .dropdown-menu {
backdrop-filter: unset !important;
border-radius: unset !important;
}
body.desktop .dropdown-menu::before {
content: "";
backdrop-filter: var(--dropdown-backdrop-filter);
border-radius: var(--dropdown-border-radius);
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
z-index: -1;
}
body.desktop .dropdown-menu.tn-dropdown-list {
backdrop-filter: var(--dropdown-backdrop-filter);
}
body.desktop .dropdown-menu.tn-dropdown-list::before {
display: none;
}
body.desktop .dropdown-submenu .dropdown-menu::before {
content: unset;
}
body.mobile .dropdown-submenu .dropdown-menu {
background: transparent !important;
}
body.desktop .dropdown-submenu .dropdown-menu {
backdrop-filter: var(--dropdown-backdrop-filter);
background: transparent;
}
.dropdown-item,
body.mobile .dropdown-submenu .dropdown-toggle {
padding: 2px 2px 2px 8px !important;
padding-inline-end: 16px !important;
/* Note: the right padding should also accommodate the submenu arrow. */
border-radius: 6px;
padding: 6px 12px;
color: var(--menu-text-color);
cursor: default;
cursor: default !important;
}
/* Selected list item */
.jump-to-note-dialog .aa-suggestions div.aa-cursor,
.note-detail-empty .aa-suggestions div.aa-cursor {
background: var(--hover-item-background-color);
color: var(--hover-item-text-color);
body.mobile .dropdown-submenu {
padding: 0 !important;
}
body.mobile .dropdown-item:not(:last-of-type) {
margin-bottom: 0.5em;
}
body.mobile .dropdown-submenu:hover {
background: transparent !important;
}
html body .dropdown-item.disabled,
html body .dropdown-item[disabled] {
color: var(--menu-text-color) !important;
opacity: var(--menu-item-disabled-opacity);
}
/* Menu item icon */
.dropdown-item .bx {
transform: translateY(var(--menu-item-icon-vert-offset));
color: var(--menu-item-icon-color) !important;
font-size: 1.1em;
}
/* Menu item keyboard shortcut */
.dropdown-item kbd {
margin-left: 16px;
font-family: unset !important;
font-size: unset !important;
color: var(--menu-item-keyboard-shortcut-color) !important;
padding-top: 0;
}
.dropdown-divider {
position: relative;
border-color: transparent !important;
overflow: visible;
}
.dropdown-divider::after {
position: absolute;
content: "";
top: -1px;
left: calc(0px - var(--menu-padding-size));
right: calc(0px - var(--menu-padding-size));
border-top: 1px solid var(--menu-item-delimiter-color);
}
/* Menu item arrow */
.dropdown-menu .dropdown-toggle::after {
content: "\ed3b" !important;
position: absolute;
display: flex !important;
align-items: center;
justify-content: center;
top: 0;
right: 0;
margin: unset !important;
border: unset !important;
padding: 0 4px;
font-family: boxicons;
font-size: 1.2em;
color: var(--menu-item-arrow-color) !important;
}
/* Menu item group heading */
/* The heading body */
.dropdown-menu h6 {
position: relative;
background: transparent;
padding: 1em 8px 14px 8px;
text-transform: uppercase;
font-size: 0.8em;
letter-spacing: 1pt;
color: var(--menu-item-group-header-color) !important;
}
/* The delimiter line */
.dropdown-menu h6::before {
content: "";
position: absolute;
bottom: 8px;
left: calc(0px - var(--menu-padding-size));
right: calc(0px - var(--menu-padding-size));
border-top: 1px solid var(--menu-item-delimiter-color);
}
/* Static menus (used as a list, such as on the note revisions dialog) */
body.desktop .dropdown-menu.static {
box-shadow: unset;
border-radius: 4px;
border: unset;
background-color: var(--card-background-color) !important;
padding: var(--menu-padding-size) !important;
user-select: none;
}
body.desktop .dropdown-menu.static .dropdown-item.active {
--active-item-text-color: var(--menu-text-color);
}
body.desktop .dropdown-menu .dropdown-toggle::after {
height: 100%;
}
body.mobile .dropdown-menu .dropdown-toggle::after {
transform: rotate(90deg);
}
body.mobile .dropdown-menu .dropdown-item.submenu-open .dropdown-toggle::after {
transform: rotate(270deg);
}
/*
* Toasts
* TOASTS
*/
#toast-container {
#toast-container {
/* The vertical gap between toasts */
gap: 10px;
}
@ -147,4 +303,223 @@ div.tn-tool-dialog {
#toast-container .toast .toast-body {
flex-grow: 1;
}
/*
* NOTE TOOLTIPS
*/
.tooltip .tooltip-inner:has(.note-tooltip-content) {
border-radius: 8px;
}
.note-tooltip-content {
padding: 8px;
min-height: 56px;
}
.note-tooltip-title .note-title-with-path {
display: flex;
flex-direction: column-reverse;
}
.note-tooltip-title a {
color: inherit !important;
}
.note-tooltip-title.note-no-content {
margin: 0;
}
.note-tooltip-title:not(.note-no-content) .note-title-with-path {
padding-bottom: 6px;
border-bottom: 2px solid currentColor;
}
.note-tooltip-content .note-path {
display: block;
color: var(--muted-text-color);
font-size: 0.75em;
}
.note-tooltip-content .note-tooltip-attributes {
margin-top: -4px;
font-size: 0.75em;
}
.note-tooltip-content .rendered-content {
padding-top: 12px;
}
/* NOTE PATHS */
.note-path .path-bracket {
/* Hide the leading and trailing bracket from the path */
display: none;
}
.note-path .path-delimiter {
/* Hide the path delimiters (slashes) */
display: none;
}
.note-path .path-delimiter + span::before {
/* Replace the path delimiters with arrows */
display: inline-block;
content: "\ed3b";
padding: 0 0.25em;
font-family: boxicons;
opacity: 0.75;
transform: translateY(4%);
}
/*
* NOTE LIST
*/
.note-list .note-book-card {
--note-list-horizontal-padding: 22px;
--note-list-vertical-padding: 15px;
background-color: var(--card-background-color);
border: 1px solid var(--card-border-color) !important;
box-shadow: 2px 3px 4px var(--card-shadow-color);
border-radius: 12px;
user-select: none;
padding: 0;
margin: 5px 10px 5px 0;
}
.note-list.list-view .note-book-card {
box-shadow: 0 0 3px var(--card-shadow-color);
}
.note-list.list-view .note-book-card .note-book-header .note-icon {
vertical-align: middle;
}
.note-list-wrapper .note-book-card:active {
background-color: var(--card-background-press-color);
}
.note-list-wrapper .note-book-card a {
color: inherit !important;
}
.note-list-wrapper .note-book-card .note-book-header {
font-size: 1em;
font-weight: bold;
padding: 0.5em 1rem;
border-bottom-color: var(--card-border-color);
}
.note-list-wrapper .note-book-card .note-book-header .note-icon {
font-size: 17px;
vertical-align: text-bottom;
}
.note-list-wrapper .note-book-card .note-book-header .note-book-title {
font-size: 1em;
color: var(--active-item-text-color);
vertical-align: middle;
}
.note-list-wrapper .note-book-card .note-book-header .rendered-note-attributes {
font-size: 0.7em;
font-weight: normal;
margin-bottom: 0;
}
.note-list-wrapper .note-book-card .note-book-header:last-child {
border-bottom: 0;
}
.note-list-wrapper .note-book-card .note-book-content {
padding: 0 !important;
font-size: 0.8rem;
}
.note-list-wrapper .note-book-card .note-book-content .rendered-content {
padding: 1rem;
}
.note-list-wrapper .note-book-card .note-book-content .rendered-content.text-with-ellipsis {
padding: 1rem !important;
}
.note-list-wrapper .note-book-card .note-book-content h1,
.note-list-wrapper .note-book-card .note-book-content h2,
.note-list-wrapper .note-book-card .note-book-content h3,
.note-list-wrapper .note-book-card .note-book-content h4,
.note-list-wrapper .note-book-card .note-book-content h5,
.note-list-wrapper .note-book-card .note-book-content h6 {
font-size: 1rem;
color: var(--active-item-text-color);
}
.note-list-wrapper .note-book-card .note-book-content p:last-child {
margin-bottom: 0;
}
.note-list-wrapper .note-book-card .note-book-content.type-canvas .rendered-content,
.note-list-wrapper .note-book-card .note-book-content.type-mindMap .rendered-content,
.note-list-wrapper .note-book-card .note-book-content.type-code .rendered-content,
.note-list-wrapper .note-book-card .note-book-content.type-video .rendered-content {
padding: 0;
}
.note-list-wrapper .note-book-card .note-book-content.type-code pre {
height: 100%;
padding: 1em;
}
.note-list-wrapper .note-book-card .bx {
color: var(--left-pane-icon-color) !important;
}
.note-list.grid-view .note-book-card:hover {
background: var(--card-background-color) !important;
filter: contrast(105%);
}
.note-list.grid-view .note-book-card img {
object-fit: cover !important;
width: 100%;
}
.note-list.grid-view .ck-content {
line-height: 1.3;
}
.note-list.grid-view .ck-content p {
margin-bottom: 0.5em;
}
.note-list.grid-view .ck-content figure.image {
width: 25%;
}
/*
* NOTE SEARCH SUGGESTIONS
*/
/* List body */
.jump-to-note-dialog .jump-to-note-results .aa-suggestions,
.note-detail-empty .aa-suggestions {
padding: 0;
}
/* List item */
.jump-to-note-dialog .aa-suggestions div,
.note-detail-empty .aa-suggestions div {
border-radius: 6px;
padding: 6px 12px;
color: var(--menu-text-color);
cursor: default;
}
/* Selected list item */
.jump-to-note-dialog .aa-suggestions div.aa-cursor,
.note-detail-empty .aa-suggestions div.aa-cursor {
background: var(--hover-item-background-color);
color: var(--hover-item-text-color);
}

View File

@ -0,0 +1,387 @@
/*
* MODALS
*/
/* Modal body */
.modal .modal-content {
box-shadow: 0 .5em 3em .5em var(--modal-shadow-color);
border: 1px solid var(--modal-border-color);
background: var(--modal-background-color);
}
/* Modal header */
.modal .modal-header {
border-bottom: unset;
user-select: none;
}
.modal .modal-header .modal-title {
flex-grow: 1;
font-size: 1.2em;
color: var(--modal-title-color);
}
/* Modal and toast control buttons (close and help) */
.modal .modal-header .btn-close,
.modal .modal-header .help-button,
#toast-container .toast .toast-header .btn-close {
display: flex;
justify-content: center;
align-items: center;
margin-left: 8px;
border: 0;
border-radius: 50%;
padding: 0;
width: var(--modal-control-button-size);
height: var(--modal-control-button-size);
background: var(--modal-control-button-background);
font-size: var(--modal-control-button-size);
line-height: normal;
font-weight: normal;
color: var(--modal-control-button-color);
opacity: 1;
cursor: default;
}
.modal .modal-header .btn-close,
#toast-container .toast .toast-header .btn-close {
--modal-control-button-hover-background: var(--modal-close-button-hover-background);
}
.modal .modal-header .btn-close::after,
#toast-container .toast .toast-header .btn-close::after {
content: "\ec8d";
font-family: boxicons;
}
.modal .modal-header .help-button {
margin-right: 0;
font-size: calc(var(--modal-control-button-size) * .75);
font-family: unset;
font-weight: bold;
}
.modal .modal-header .btn-close:hover,
.modal .modal-header .help-button:hover,
#toast-container .toast .toast-header .btn-close:hover {
background: var(--modal-control-button-hover-background);
color: var(--modal-control-button-hover-color);
}
.modal .modal-header .btn-close:active,
.modal .modal-header .help-button:active,
#toast-container .toast .toast-header .btn-close:active {
transform: scale(.85);
}
.modal .modal-header .btn-close:focus,
.modal .modal-header .help-button:focus,
#toast-container .toast .toast-header .btn-close:focus {
box-shadow: none !important;
}
.modal .modal-header .btn-close:focus-visible,
.modal .modal-header .help-button:focus-visible,
#toast-container .toast .toast-header .btn-close:focus-visible {
outline: 2px solid var(--input-focus-outline-color);
outline-offset: 2px;
}
/* Modal footer */
.modal .modal-footer {
background: var(--modal-footer-background);
color: var(--modal-footer-color);
border-top: unset;
}
/* Tool dialogs - small dialogs without a backdrop */
div.tn-tool-dialog {
border-radius: 10px;
background: var(--tool-dialog-background-color) !important;
user-select: none;
box-shadow: 10px 10px 93px -25px var(--tool-dialog-shadow-color);
}
/*
* JUMP TO NOTE DIALOG
*/
.jump-to-note-dialog .modal-dialog {
--modal-background-color: var(--menu-background-color);
--modal-footer-background: transparent;
--bs-modal-header-border-width: 0;
--bs-modal-footer-border-width: 0;
--bs-modal-footer-gap: 0;
backdrop-filter: var(--dropdown-backdrop-filter);
}
.jump-to-note-dialog .modal-content {
--bs-modal-header-padding-x: 0;
box-shadow: 0 10px 20px rgba(0, 0, 0, var(--dropdown-shadow-opacity));
border: 1px solid var(--dropdown-border-color);
padding: 20px;
border-radius: 8px;
}
.jump-to-note-dialog .modal-header {
padding: unset !important;
}
.jump-to-note-dialog .modal-body {
padding: 26px 0 !important;
}
/* Search box wrapper */
.jump-to-note-dialog .input-group {
margin-right: 16px;
}
.jump-to-note-dialog .input-group:hover {
background: var(--quick-search-hover-background);
}
/* Focused search box */
.jump-to-note-dialog .input-group:focus-within {
border-color: var(--quick-search-focus-border);
background: var(--quick-search-focus-background);
color: var(--quick-search-focus-color);
}
.jump-to-note-dialog .input-clearer-button {
background: transparent !important;
}
/*
* RECENT CHANGES DIALOG
*/
.recent-changes-dialog .modal-body {
padding: 0;
}
.recent-changes-content {
margin: var(--bs-modal-padding);
}
/* Date headings */
.recent-changes-content > div > b {
position: sticky;
display: block;
top: 0;
background: var(--modal-background-color);
padding: 10px 0 10px calc(var(--timeline-left-gap) + var(--timeline-right-gap));
font-size: 1.25em;
font-weight: 300;
z-index: 10;
}
.recent-changes-content ul {
list-style: none;
margin: 0;
padding: 0;
}
/* Timeline items */
.recent-changes-content ul li {
display: flex;
position: relative;
margin: 0;
border: unset;
padding-top: var(--timeline-item-top-padding);
padding-bottom: var(--timeline-item-bottom-padding);
padding-left: calc(var(--timeline-left-gap) + var(--timeline-right-gap));
padding-right: var(--timeline-left-gap);
color: var(--active-item-text-color);
}
.recent-changes-content li > span:first-child::after {
/* Remove the dash between time and note title */
content: "" !important;
}
.recent-changes-content ul li:not(.deleted-note):hover {
border-radius: 8px;
background: var(--hover-item-background-color);
color: var(--hover-item-text-color);
}
.recent-changes-content ul li .note-path {
color: var(--muted-text-color);
font-size: 0.75em;
}
/* Item time */
.recent-changes-content ul li > span:first-child {
display: inline-block;
min-width: 80px;
vertical-align: top;
color: var(--muted-text-color);
}
/* Item title & path container */
.recent-changes-content ul li > span:nth-child(2) {
display: inline-block;
}
/* Item title link */
.recent-changes-content ul li .note-title a {
color: currentColor;
}
.recent-changes-content ul li .note-title a:hover {
text-decoration: underline;
}
/* Item title for deleted notes */
.recent-changes-content ul li.deleted-note .note-title > .note-title {
text-decoration: line-through;
}
/* Item path */
.recent-changes-content ul li > span:nth-child(2) small {
display: block;
line-height: 1;
opacity: 0.75;
}
/* Timeline connector */
.recent-changes-content ul li::before,
.recent-changes-content > div > b::before {
position: absolute;
content: "";
top: var(--connector-top, 0);
left: calc(var(--timeline-left-gap) + ((var(--timeline-bullet-size) - var(--timeline-connector-size)) / 2));
bottom: var(--connector-bottom, 0);
width: var(--timeline-connector-size);
border-radius: var(--connector-radius, 0) var(--connector-radius, 0) 0 0;
background: var(--timeline-connector-color);
transition: background-color 400ms ease-in-out;
}
.recent-changes-content ul li:hover:before {
mix-blend-mode: var(--timeline-connector-hover-blend-mode);
}
.recent-changes-content > div:hover {
--timeline-connector-color: var(--timeline-connector-active-color);
}
/* The first item of the timeline */
.recent-changes-content > div:first-child > *:first-child {
--connector-top: 50%;
--connector-radius: calc(var(--timeline-connector-size) / 2);
}
/* The last item of the timeline */
.recent-changes-content > div:last-child li:last-child {
--connector-bottom: 50%;
}
/* Timeline bullet */
.recent-changes-content ul li::after {
position: absolute;
content: "";
top: calc(var(--timeline-item-top-padding) + var(--timeline-bullet-vertical-pos));
left: var(--timeline-left-gap);
width: var(--timeline-bullet-size);
height: var(--timeline-bullet-size);
border-radius: 50%;
background: var(--timeline-bullet-color);
transform: translateY(-50%);
}
/* Hovered timeline bullet */
.recent-changes-content ul li:hover::after {
background: var(--timeline-bullet-hover-color);
}
/*
* CHEATSHEET DIALOG
*/
.help-dialog .modal-content {
--modal-background-color: var(--help-background-color);
backdrop-filter: blur(var(--help-backdrop-blur));
}
.help-dialog .help-cards {
display: block;
columns: 3;
column-gap: 20px;
}
.help-dialog .card {
margin: 0;
width: auto;
border: none;
background: unset;
padding: 16px 8px;
break-inside: avoid-column;
}
.help-dialog .card-body {
box-shadow: var(--help-card-shadow);
border-radius: 6px;
background: var(--help-card-background);
}
.help-dialog .card-body h5,
.help-dialog .card-body h6 {
color: var(--help-card-heading-color);
font-weight: 600;
}
.help-dialog .card-body h5 {
font-size: 20px;
}
.help-dialog .card-body h6 {
font-size: 15px;
padding-bottom: 0.5em;
}
/* Help card item */
.help-dialog .help-cards ul {
list-style-type: none;
padding: 0;
}
.help-dialog .help-cards li + li {
margin-top: 0.4em;
}
/* Keyboard shortcut */
.help-dialog .help-cards kbd,
.ck-content kbd {
box-shadow: var(--help-kbd-shortcut-shadow);
margin: 0 4px;
border: none;
border-radius: 4px;
padding: 2px 10px;
background: var(--help-kbd-shortcut-background);
color: var(--help-kbd-shortcut-color);
font-weight: 500;
letter-spacing: 0.5pt;
}
.help-dialog .help-cards kbd:first-child {
margin-left: 0;
}
/* Inline code - used for Markdown samples */
.help-dialog .help-cards code {
border-radius: 4px;
background: var(--help-code-background);
padding: 0 8px;
color: var(--help-code-color);
}
/* DELETE NOTE PREVIEW DIALOG */
.delete-notes-list .note-path {
padding-left: 8px;
}

View File

@ -1,7 +1,111 @@
/*
* Settings
* LOG IN PAGE
*/
:root {
.login-page {
display: flex; /* Note: the login page contents is hidden before this property is applied */
height: 100%;
flex-direction: column;
justify-content: center;
}
.login-page > div {
padding-top: 0 !important;
padding-bottom: 20vh;
}
.login-page h1 {
margin-bottom: .5em;
font-weight: 300;
color: var(--muted-text-color);
}
.login-page .form-group {
margin-top: 8px;
}
.login-page .alert {
margin: 0;
border: unset;
padding: 8px 0 0 0;
font-size: .85em;
color: var(--dropdown-item-icon-destructive-color) !important;
}
/*
* SEARCH PAGE
*/
/* Button bar */
.search-definition-widget .search-setting-table tbody:last-child div {
justify-content: flex-end !important;
gap: 8px;
}
.search-result-widget-content .note-path .path-bracket {
display: inline;
}
.search-result-widget-content .note-path {
opacity: 0.75;
font-weight: normal;
}
/*
* SQL CONSOLE
*/
/* Table buttons */
.sql-table-schemas-widget .sql-table-schemas button {
--color: var(--main-text-color);
--background: var(--card-background-color);
display: inline-block;
box-shadow: 2px 2px 2px var(--card-shadow-color);
margin-top: 4px;
vertical-align: baseline;
border: unset;
border-radius: 12px;
padding: 2px 12px;
background: var(--background) !important;
color: var(--color) !important;
line-height: unset;
cursor: help;
}
.sql-table-schemas-widget .sql-table-schemas button:hover,
.sql-table-schemas-widget .sql-table-schemas button:active,
.sql-table-schemas-widget .sql-table-schemas button:focus-visible {
--background: var(--card-background-press-color);
--color: var(--main-text-color);
}
/* Tooltip */
.tooltip .table-schema {
font-family: var(--monospace-font-family);
font-size: .85em;
}
/* Data type */
.tooltip .table-schema td:nth-child(2) {
color: var(--muted-text-color);
}
/*
* NOTE MAP
*/
.note-detail-note-map .fixnodes-type-switcher .tn-tool-button.toggled {
color: var(--tab-close-button-hover-background);
}
/*
* OPTIONS PAGES
*/
:root {
--options-card-min-width: 500px;
--options-card-max-width: 900px;
--options-card-padding: 17px;

File diff suppressed because it is too large Load Diff

View File

@ -96,8 +96,6 @@ async function register(app: express.Application) {
app.use(`/${assetPath}/node_modules/codemirror/mode/`, persistentCacheStatic(path.join(srcRoot, "..", "node_modules/codemirror/mode/")));
app.use(`/${assetPath}/node_modules/codemirror/keymap/`, persistentCacheStatic(path.join(srcRoot, "..", "node_modules/codemirror/keymap/")));
app.use(`/${assetPath}/node_modules/mind-elixir/dist/`, persistentCacheStatic(path.join(srcRoot, "..", "node_modules/mind-elixir/dist/")));
app.use(`/${assetPath}/node_modules/@mind-elixir/node-menu/dist/`, persistentCacheStatic(path.join(srcRoot, "..", "node_modules/@mind-elixir/node-menu/dist/")));
app.use(`/${assetPath}/node_modules/@highlightjs/cdn-assets/`, persistentCacheStatic(path.join(srcRoot, "..", "node_modules/@highlightjs/cdn-assets/")));
app.use(`/${assetPath}/node_modules/leaflet/dist/`, persistentCacheStatic(path.join(srcRoot, "..", "node_modules/leaflet/dist/")));