diff --git a/changelog.md b/changelog.md index f560ce1e5..5c3a3cb34 100644 --- a/changelog.md +++ b/changelog.md @@ -88,24 +88,70 @@ pre { ## changelog For a full record of development, visit our [Github Page](https://github.com/naturalcrit/homebrewery). -### Tuesday 03/18/2025 - v3.18.1 +### Thursday 05/22/2025 - v3.19.0 {{taskList +##### abquintic +* [x] Fix crash due to colons after `\page` + +Fixes issue [#4105](https://github.com/naturalcrit/homebrewery/issues/4105) + +* [x] Fix images with spaces in alt text not rendering + +Fixes issue [#3659](https://github.com/naturalcrit/homebrewery/issues/3659) + +* [x] Custom snippets! Open the new {{openSans **:fas_table_list: SNIPPETS**}} tab (next to the {{openSans **:fas_paintbrush: STYLE**}} tab). Custom snippets will appear in a new snippet dropdown, and will be included when imported as a custom theme. + +* [x] Move several generic styles/snippets from PHB to the Blank theme; generic snippets like image masks no longer require the PHB theme. + +* [x] Extract several Markdown+ syntax extensions into their own NPM packages, for use by the wider community. + +* [x] Allow `\pagebreak` and `\columnbreak` as alternatives to `\page` and `\column` + +Partially fixes issue [#4035](https://github.com/naturalcrit/homebrewery/issues/4035) + +* [x] Fix misbehaving column breaks on old Chrome + +Fixes issue [#4192](https://github.com/naturalcrit/homebrewery/issues/4192) + +* [x] Self-host font-awesome icons; fix missing icons on local installs + +Fixes issue [#1965](https://github.com/naturalcrit/homebrewery/issues/1965) +Fixes issue [#1548](https://github.com/naturalcrit/homebrewery/issues/1548) + ##### G-Ambatte -* [x] Revert colon rendering from br elements to blank divs +* [x] Fix CORS issue on local installs + +* [x] Fix print size issues when using the Facing and Flow view options. + +Fixes issue [#4146](https://github.com/naturalcrit/homebrewery/issues/4146) + +* [x] New built-in `$[HB_pageNumber]` variable. Works with math operations or can be reassigned like any other variable for more customization over the old `{{pageNumber,auto}}` snippet.\ +New snippet found at {{openSans **:fas_pencil: TEXT EDITOR :fas_arrow_right: :fas_bookmark: PAGE NUMBERING :fas_arrow_right: :fas_arrow_down_1_9: VARIABLE AUTO PAGE NUMBER**}} ##### 5e-Cleric -* [x] Allow for local connections within a same network when running a local version -Fixes issue [#4094](https://github.com/naturalcrit/homebrewery/issues/4094) +* [x] Fix search bar covering up snippet bar + +Fixes issue [#4098](https://github.com/naturalcrit/homebrewery/issues/4098) + +* [x] Save view toolbar settings across sessions + +Fixes issue [#3835](https://github.com/naturalcrit/homebrewery/issues/3835) + +* [x] Fix styling issues on the view toolbar + +* [x] Update the Darkbrewery editor theme + +Fixes issue [#3312](https://github.com/naturalcrit/homebrewery/issues/3312) -* [x] Add US Letter size page snippet -Fixes issue [#3893](https://github.com/naturalcrit/homebrewery/issues/3893) }} +\page + ### Monday 03/10/2025 - v3.18.0 {{taskList -##### dbolack +##### abquintic * [x] Add ability to paste in any Share ID/URL into a brew's {{openSans :fas_circle_info: **Properties** :fas_arrow_right: **THEMES**}} selection, as long as that brew has been tagged as `meta:theme`. You can now share your custom brew themes without needing to make a personal copy. * [x] Begin migration of custom Markdown extensions into their own NPM packages, for easier adoption by other users or projects * [x] Fix external HTML appearing in open codeblocks @@ -167,7 +213,7 @@ Fixes issue [#4073](https://github.com/naturalcrit/homebrewery/issues/4073) * [x] Fix Reddit link crash when title has non-latin chars -##### dbolack +##### abquintic * [x] Fix page shadows toolbar option diff --git a/client/homebrew/editor/snippetbar/snippetbar.less b/client/homebrew/editor/snippetbar/snippetbar.less index a0691f8b6..c53d4be8e 100644 --- a/client/homebrew/editor/snippetbar/snippetbar.less +++ b/client/homebrew/editor/snippetbar/snippetbar.less @@ -51,7 +51,7 @@ &.meta { .tooltipLeft('Properties'); } - &.snip { + &.snippet { .tooltipLeft('Snippets'); } &.undo { @@ -93,7 +93,7 @@ &.editorTheme { .tooltipLeft('Editor Themes'); font-size : 0.75em; - color : black; + color : inherit; &.active { position : relative; background-color : #999999; diff --git a/client/homebrew/pages/basePages/listPage/brewItem/brewItem.less b/client/homebrew/pages/basePages/listPage/brewItem/brewItem.less index 05a0aaf61..3d2c9ab74 100644 --- a/client/homebrew/pages/basePages/listPage/brewItem/brewItem.less +++ b/client/homebrew/pages/basePages/listPage/brewItem/brewItem.less @@ -64,7 +64,7 @@ border-radius : 4px; &::before { margin-right : 3px; - font-family : 'Font Awesome 5 Free'; + font-family : 'Font Awesome 6 Free'; font-size : 12px; } &.type { diff --git a/client/homebrew/pages/basePages/listPage/listPage.less b/client/homebrew/pages/basePages/listPage/listPage.less index bf899bc71..e368dfac7 100644 --- a/client/homebrew/pages/basePages/listPage/listPage.less +++ b/client/homebrew/pages/basePages/listPage/listPage.less @@ -30,7 +30,7 @@ h1:hover { cursor : pointer; } .active::before, .inactive::before { padding-right : 0.5em; - font-family : 'Font Awesome 5 Free'; + font-family : 'Font Awesome 6 Free'; font-size : 0.6cm; font-weight : 900; } @@ -130,12 +130,12 @@ border-radius : 3px; &::before { margin-right : 3px; - font-family : 'Font Awesome 5 Free'; + font-family : 'Font Awesome 6 Free'; font-size : 12px; } &::after { margin-left : 3px; - font-family : 'Font Awesome 5 Free'; + font-family : 'Font Awesome 6 Free'; font-size : 12px; content : '\f00d'; } diff --git a/client/homebrew/pages/basePages/uiPage/uiPage.less b/client/homebrew/pages/basePages/uiPage/uiPage.less index 27f079e20..39ccf1d74 100644 --- a/client/homebrew/pages/basePages/uiPage/uiPage.less +++ b/client/homebrew/pages/basePages/uiPage/uiPage.less @@ -28,7 +28,7 @@ background-color : #00000077; &::before { margin-right : 5px; - font-family : 'FONT AWESOME 5 FREE'; + font-family : 'Font Awesome 6 Free'; content : '\f00c'; } } diff --git a/package-lock.json b/package-lock.json index f0571b473..5ffc3b216 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "homebrewery", - "version": "3.18.1", + "version": "3.19.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "homebrewery", - "version": "3.18.1", + "version": "3.19.0", "hasInstallScript": true, "license": "MIT", "dependencies": { @@ -15,7 +15,7 @@ "@babel/preset-env": "^7.27.2", "@babel/preset-react": "^7.27.1", "@babel/runtime": "^7.27.1", - "@googleapis/drive": "^12.0.0", + "@googleapis/drive": "^12.1.0", "body-parser": "^2.2.0", "classnames": "^2.5.1", "codemirror": "^5.65.6", @@ -34,7 +34,7 @@ "jwt-simple": "^0.5.6", "less": "^3.13.1", "lodash": "^4.17.21", - "marked": "15.0.11", + "marked": "15.0.12", "marked-alignment-paragraphs": "^1.0.0", "marked-definition-lists": "^1.0.1", "marked-emoji": "^2.0.0", @@ -45,7 +45,7 @@ "marked-subsuper-text": "^1.0.3", "markedLegacy": "npm:marked@^0.3.19", "moment": "^2.30.1", - "mongoose": "^8.14.2", + "mongoose": "^8.15.0", "nanoid": "5.1.5", "nconf": "^0.13.0", "react": "^18.3.1", @@ -61,7 +61,7 @@ "devDependencies": { "@stylistic/stylelint-plugin": "^3.1.2", "babel-plugin-transform-import-meta": "^2.3.2", - "eslint": "^9.26.0", + "eslint": "^9.27.0", "eslint-plugin-jest": "^28.11.0", "eslint-plugin-react": "^7.37.5", "globals": "^16.1.0", @@ -72,7 +72,7 @@ "stylelint": "^16.19.1", "stylelint-config-recess-order": "^6.0.0", "stylelint-config-recommended": "^16.0.0", - "supertest": "^7.1.0" + "supertest": "^7.1.1" }, "engines": { "node": "^20.18.x", @@ -1946,9 +1946,9 @@ } }, "node_modules/@eslint/core": { - "version": "0.13.0", - "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.13.0.tgz", - "integrity": "sha512-yfkgDw1KR66rkT5A8ci4irzDysN7FRpq3ttJolR88OqQikAWqwA8j5VZyas+vjyBNFIJ7MfybJ9plMILI2UrCw==", + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/@eslint/core/-/core-0.14.0.tgz", + "integrity": "sha512-qIbV0/JZr7iSDjqAc60IqbLdsj9GDt16xQtWD+B78d/HAlvysGdZZ6rpJHGAc2T0FQx1X6thsSPdnoiGKdNtdg==", "dev": true, "license": "Apache-2.0", "dependencies": { @@ -1996,13 +1996,16 @@ } }, "node_modules/@eslint/js": { - "version": "9.26.0", - "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.26.0.tgz", - "integrity": "sha512-I9XlJawFdSMvWjDt6wksMCrgns5ggLNfFwFvnShsleWruvXM514Qxk8V246efTw+eo9JABvVz+u3q2RiAowKxQ==", + "version": "9.27.0", + "resolved": "https://registry.npmjs.org/@eslint/js/-/js-9.27.0.tgz", + "integrity": "sha512-G5JD9Tu5HJEu4z2Uo4aHY2sLV64B7CDMXxFzqzjl3NKd6RVzSXNoE80jk7Y0lJkTTkjiIhBAqmlYwjuBY3tvpA==", "dev": true, "license": "MIT", "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" + }, + "funding": { + "url": "https://eslint.org/donate" } }, "node_modules/@eslint/object-schema": { @@ -2016,13 +2019,13 @@ } }, "node_modules/@eslint/plugin-kit": { - "version": "0.2.8", - "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.2.8.tgz", - "integrity": "sha512-ZAoA40rNMPwSm+AeHpCq8STiNAwzWLJuP8Xv4CHIc9wv/PSuExjMrmjfYNj682vW0OOiZ1HKxzvjQr9XZIisQA==", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@eslint/plugin-kit/-/plugin-kit-0.3.1.tgz", + "integrity": "sha512-0J+zgWxHN+xXONWIyPWKFMgVuJoZuGiIFu8yxk7RJjxkzpGmyja5wRFqZIVtjDVOQpV+Rw0iOAjYPE2eQyjr0w==", "dev": true, "license": "Apache-2.0", "dependencies": { - "@eslint/core": "^0.13.0", + "@eslint/core": "^0.14.0", "levn": "^0.4.1" }, "engines": { @@ -2030,9 +2033,9 @@ } }, "node_modules/@googleapis/drive": { - "version": "12.0.0", - "resolved": "https://registry.npmjs.org/@googleapis/drive/-/drive-12.0.0.tgz", - "integrity": "sha512-bAZ82QKSuvzT4UNuuistEJCGjYCGcDYo2WsZ8S7KmN/gaHs2oz5U07/y/ITbzganqMtvXw7B6YG1f76k7F8+0Q==", + "version": "12.1.0", + "resolved": "https://registry.npmjs.org/@googleapis/drive/-/drive-12.1.0.tgz", + "integrity": "sha512-Y5JyrpjHxdo4uJTr/7MLE5NXpBjdU6JBOVWgMcLH7HdqwiZx9QTv+YloQ5SwExMlfDWcOEHmzMcyYWv4HoVtSA==", "license": "Apache-2.0", "dependencies": { "googleapis-common": "^7.0.0" @@ -2796,28 +2799,6 @@ "ieee754": "^1.2.1" } }, - "node_modules/@modelcontextprotocol/sdk": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/@modelcontextprotocol/sdk/-/sdk-1.11.0.tgz", - "integrity": "sha512-k/1pb70eD638anoi0e8wUGAlbMJXyvdV4p62Ko+EZ7eBe1xMx8Uhak1R5DgfoofsK5IBBnRwsYGTaLZl+6/+RQ==", - "dev": true, - "license": "MIT", - "dependencies": { - "content-type": "^1.0.5", - "cors": "^2.8.5", - "cross-spawn": "^7.0.3", - "eventsource": "^3.0.2", - "express": "^5.0.1", - "express-rate-limit": "^7.5.0", - "pkce-challenge": "^5.0.0", - "raw-body": "^3.0.0", - "zod": "^3.23.8", - "zod-to-json-schema": "^3.24.1" - }, - "engines": { - "node": ">=18" - } - }, "node_modules/@mongodb-js/saslprep": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/@mongodb-js/saslprep/-/saslprep-1.2.2.tgz", @@ -5798,9 +5779,9 @@ "license": "MIT" }, "node_modules/eslint": { - "version": "9.26.0", - "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.26.0.tgz", - "integrity": "sha512-Hx0MOjPh6uK9oq9nVsATZKE/Wlbai7KFjfCuw9UHaguDW3x+HF0O5nIi3ud39TWgrTjTO5nHxmL3R1eANinWHQ==", + "version": "9.27.0", + "resolved": "https://registry.npmjs.org/eslint/-/eslint-9.27.0.tgz", + "integrity": "sha512-ixRawFQuMB9DZ7fjU3iGGganFDp3+45bPOdaRurcFHSXO1e/sYwUX/FtQZpLZJR6SjMoJH8hR2pPEAfDyCoU2Q==", "dev": true, "license": "MIT", "dependencies": { @@ -5808,14 +5789,13 @@ "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.20.0", "@eslint/config-helpers": "^0.2.1", - "@eslint/core": "^0.13.0", + "@eslint/core": "^0.14.0", "@eslint/eslintrc": "^3.3.1", - "@eslint/js": "9.26.0", - "@eslint/plugin-kit": "^0.2.8", + "@eslint/js": "9.27.0", + "@eslint/plugin-kit": "^0.3.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", - "@modelcontextprotocol/sdk": "^1.8.0", "@types/estree": "^1.0.6", "@types/json-schema": "^7.0.15", "ajv": "^6.12.4", @@ -5839,8 +5819,7 @@ "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", - "optionator": "^0.9.3", - "zod": "^3.24.2" + "optionator": "^0.9.3" }, "bin": { "eslint": "bin/eslint.js" @@ -6153,29 +6132,6 @@ "node": ">=0.4.x" } }, - "node_modules/eventsource": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-3.0.6.tgz", - "integrity": "sha512-l19WpE2m9hSuyP06+FbuUUf1G+R0SFLrtQfbRb9PRr+oimOfxQhgGCbVaXg5IvZyyTThJsxh6L/srkMiCeBPDA==", - "dev": true, - "license": "MIT", - "dependencies": { - "eventsource-parser": "^3.0.1" - }, - "engines": { - "node": ">=18.0.0" - } - }, - "node_modules/eventsource-parser": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/eventsource-parser/-/eventsource-parser-3.0.1.tgz", - "integrity": "sha512-VARTJ9CYeuQYb0pZEPbzi740OWFgpHe7AYJ2WFZVnUDUQp5Dk2yJUgF36YsZ81cOyxT0QxmXD2EQpapAouzWVA==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=18.0.0" - } - }, "node_modules/evp_bytestokey": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", @@ -6323,22 +6279,6 @@ "integrity": "sha512-rCSVtPXRmQSW8rmik/AIb2P0op6l7r1fMW538yyvTMltCO4xQEWMmobfrIxN2V1/mVrgxB8Az3reYF6yUZw37w==", "license": "MIT" }, - "node_modules/express-rate-limit": { - "version": "7.5.0", - "resolved": "https://registry.npmjs.org/express-rate-limit/-/express-rate-limit-7.5.0.tgz", - "integrity": "sha512-eB5zbQh5h+VenMPM3fh+nw1YExi5nMr6HUCR62ELSP11huvxm/Uir1H1QEyTkk5QX6A58pX6NmaTMceKZ0Eodg==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">= 16" - }, - "funding": { - "url": "https://github.com/sponsors/express-rate-limit" - }, - "peerDependencies": { - "express": "^4.11 || 5 || ^5.0.0-beta.1" - } - }, "node_modules/express-static-gzip": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/express-static-gzip/-/express-static-gzip-2.2.0.tgz", @@ -10116,9 +10056,9 @@ } }, "node_modules/marked": { - "version": "15.0.11", - "resolved": "https://registry.npmjs.org/marked/-/marked-15.0.11.tgz", - "integrity": "sha512-1BEXAU2euRCG3xwgLVT1y0xbJEld1XOrmRJpUwRCcy7rxhSCwMrmEu9LXoPhHSCJG41V7YcQ2mjKRr5BA3ITIA==", + "version": "15.0.12", + "resolved": "https://registry.npmjs.org/marked/-/marked-15.0.12.tgz", + "integrity": "sha512-8dD6FusOQSrpv9Z1rdNMdlSgQOIP880DHqnohobOmYLElGEqAL/JvxvuxZO16r4HtjTlfPRDC1hbvxC9dPN2nA==", "license": "MIT", "bin": { "marked": "bin/marked.js" @@ -10563,9 +10503,9 @@ } }, "node_modules/mongoose": { - "version": "8.14.2", - "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-8.14.2.tgz", - "integrity": "sha512-LPLZiN6M8ap4GlXmaaG7yrHIkK45dSO3NZ0qgERJl2CfcL5eP7MA9umn4zGhKiWkMLbnHM4jhebIYbUhvuwWvQ==", + "version": "8.15.0", + "resolved": "https://registry.npmjs.org/mongoose/-/mongoose-8.15.0.tgz", + "integrity": "sha512-WFKsY1q12ScGabnZWUB9c/QzZmz/ESorrV27OembB7Gz6rrh9m3GA4Srsv1uvW1s9AHO5DeZ6DdUTyF9zyNERQ==", "license": "MIT", "dependencies": { "bson": "^6.10.3", @@ -11509,16 +11449,6 @@ "node": ">= 6" } }, - "node_modules/pkce-challenge": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/pkce-challenge/-/pkce-challenge-5.0.0.tgz", - "integrity": "sha512-ueGLflrrnvwB3xuo/uGob5pd5FN7l0MsLf0Z87o/UQmRtwjvfylfc9MurIxRAWywCYTgrvpXBcqjV4OfCYGCIQ==", - "dev": true, - "license": "MIT", - "engines": { - "node": ">=16.20.0" - } - }, "node_modules/pkg-dir": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", @@ -13719,46 +13649,14 @@ } }, "node_modules/supertest": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/supertest/-/supertest-7.1.0.tgz", - "integrity": "sha512-5QeSO8hSrKghtcWEoPiO036fxH0Ii2wVQfFZSP0oqQhmjk8bOLhDFXr4JrvaFmPuEWUoq4znY3uSi8UzLKxGqw==", + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/supertest/-/supertest-7.1.1.tgz", + "integrity": "sha512-aI59HBTlG9e2wTjxGJV+DygfNLgnWbGdZxiA/sgrnNNikIW8lbDvCtF6RnhZoJ82nU7qv7ZLjrvWqCEm52fAmw==", "dev": true, "license": "MIT", "dependencies": { "methods": "^1.1.2", - "superagent": "^9.0.1" - }, - "engines": { - "node": ">=14.18.0" - } - }, - "node_modules/supertest/node_modules/mime": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", - "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/supertest/node_modules/superagent": { - "version": "9.0.2", - "resolved": "https://registry.npmjs.org/superagent/-/superagent-9.0.2.tgz", - "integrity": "sha512-xuW7dzkUpcJq7QnhOsnNUgtYp3xRwpt2F7abdRYIpCsAt0hhUqia0EdxyXZQQpNmGtsCzYHryaKSV3q3GJnq7w==", - "dev": true, - "dependencies": { - "component-emitter": "^1.3.0", - "cookiejar": "^2.1.4", - "debug": "^4.3.4", - "fast-safe-stringify": "^2.1.1", - "form-data": "^4.0.0", - "formidable": "^3.5.1", - "methods": "^1.1.2", - "mime": "2.6.0", - "qs": "^6.11.0" + "superagent": "^10.2.1" }, "engines": { "node": ">=14.18.0" @@ -15347,26 +15245,6 @@ "funding": { "url": "https://github.com/sponsors/sindresorhus" } - }, - "node_modules/zod": { - "version": "3.24.4", - "resolved": "https://registry.npmjs.org/zod/-/zod-3.24.4.tgz", - "integrity": "sha512-OdqJE9UDRPwWsrHjLN2F8bPxvwJBK22EHLWtanu0LSYr5YqzsaaW3RMgmjwr8Rypg5k+meEJdSPXJZXE/yqOMg==", - "dev": true, - "license": "MIT", - "funding": { - "url": "https://github.com/sponsors/colinhacks" - } - }, - "node_modules/zod-to-json-schema": { - "version": "3.24.5", - "resolved": "https://registry.npmjs.org/zod-to-json-schema/-/zod-to-json-schema-3.24.5.tgz", - "integrity": "sha512-/AuWwMP+YqiPbsJx5D6TfgRTc4kTLjsh5SOcd4bLsfUg2RcEXrFMJl1DGgdHy2aCfsIA/cr/1JM0xcB2GZji8g==", - "dev": true, - "license": "ISC", - "peerDependencies": { - "zod": "^3.24.1" - } } } } diff --git a/package.json b/package.json index cee44b933..4995421ef 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "homebrewery", "description": "Create authentic looking D&D homebrews using only markdown", - "version": "3.18.1", + "version": "3.19.0", "type": "module", "engines": { "npm": "^10.8.x", @@ -88,7 +88,7 @@ "@babel/preset-env": "^7.27.2", "@babel/preset-react": "^7.27.1", "@babel/runtime": "^7.27.1", - "@googleapis/drive": "^12.0.0", + "@googleapis/drive": "^12.1.0", "body-parser": "^2.2.0", "classnames": "^2.5.1", "codemirror": "^5.65.6", @@ -107,7 +107,7 @@ "jwt-simple": "^0.5.6", "less": "^3.13.1", "lodash": "^4.17.21", - "marked": "15.0.11", + "marked": "15.0.12", "marked-alignment-paragraphs": "^1.0.0", "marked-definition-lists": "^1.0.1", "marked-emoji": "^2.0.0", @@ -118,7 +118,7 @@ "marked-subsuper-text": "^1.0.3", "markedLegacy": "npm:marked@^0.3.19", "moment": "^2.30.1", - "mongoose": "^8.14.2", + "mongoose": "^8.15.0", "nanoid": "5.1.5", "nconf": "^0.13.0", "react": "^18.3.1", @@ -134,7 +134,7 @@ "devDependencies": { "@stylistic/stylelint-plugin": "^3.1.2", "babel-plugin-transform-import-meta": "^2.3.2", - "eslint": "^9.26.0", + "eslint": "^9.27.0", "eslint-plugin-jest": "^28.11.0", "eslint-plugin-react": "^7.37.5", "globals": "^16.1.0", @@ -145,6 +145,6 @@ "stylelint": "^16.19.1", "stylelint-config-recess-order": "^6.0.0", "stylelint-config-recommended": "^16.0.0", - "supertest": "^7.1.0" + "supertest": "^7.1.1" } } diff --git a/themes/codeMirror/customThemes/darkbrewery-v301.css b/themes/codeMirror/customThemes/darkbrewery-v301.css deleted file mode 100644 index 267c377f6..000000000 --- a/themes/codeMirror/customThemes/darkbrewery-v301.css +++ /dev/null @@ -1,129 +0,0 @@ -/* Main BG color and normal text color */ -.CodeMirror { - background: #293134; - color: #91A6AA; -} - -/* Brew BG */ -.brewRenderer { - background-color: #293134; -} -/* Blinking cursor */ -.CodeMirror-cursor { - border-left: 1px solid #e0e2e4; -} - -/* HB DARK NAV START*/ - -/* Bars at the top */ -.snippetBar { - background-color: #2F393C; - color: white; -} -nav { - background-color: #293134; -} -nav .navItem { - background-color: #293134; -} -/* Fix for Homebrewery custom Snippet icons */ -.snippetBar .fac { - filter: invert(1); -} -.snippetBar .snippetGroup .dropdown { - background-color: #2F393C; -} -/* HB DARK NAV END */ - -/* Line number stuff */ -.CodeMirror-gutter-elt { - color: #81969A; -} -.CodeMirror-linenumber { - background-color: #293134; -} -.CodeMirror-gutter { - background-color: #293134; -} -/* column splits */ -.editor .codeEditor .columnSplit { - font-style: italic; - color: inherit; - background-color:#1f5763; - border-bottom: #299 solid 1px; -} - -/* Colors for headings and such */ -/* ###Headings */ -.cm-s-default .cm-header { - color: #c51b1b; - -webkit-text-stroke-width: 0.1px; - -webkit-text-stroke-color: #000; -} -/* bold points */ -.cm-header, .cm-strong { - font-weight: bold; - color: #309dd2; -} -/* Link headings */ -.cm-s-default .cm-link { - color: #dd6300; -} -/* links */ -.cm-s-default .cm-string { - color: #aa8261; -} -/*@import*/ -.cm-s-default .cm-def { - color:#2986cc; -} -/* Bullets and such */ -.cm-s-default .cm-variable-2 { - color: #3cbf30; -} -/* blocks */ -.editor .codeEditor .block:not(.cm-comment) { - color: #e3e3e3; -} -/* inline blocks */ -.editor .codeEditor .inline-block { - color: #e3e3e3; -} -/* Tags (divs) */ -.cm-s-default .cm-tag { - color: #e3ff00; -} -.cm-s-default .cm-attribute { - color: #e3ff00; -} -.cm-s-default .cm-atom { - color:#000; -} -.cm-s-default .cm-qualifier{ - color:#ee1919; -} -.cm-s-default .cm-comment{ - color:#bbc700; -} -.cm-s-default .cm-keyword { - color:#c302df; - background-color:#b1b1b1; -} -.cm-s-default .cm-property.cm-error { - color:#c50202; -} - -.CodeMirror-foldmarker { - color:#f0ff00; -} - -/* New page */ -.editor .codeEditor .pageLine { - background: #000; - color:#000; - border-bottom: 1px solid #fff; -} - -.cm-s-default .cm-builtin { - color:#fff; -} \ No newline at end of file diff --git a/themes/codeMirror/customThemes/darkbrewery.css b/themes/codeMirror/customThemes/darkbrewery.css new file mode 100644 index 000000000..6fba4001c --- /dev/null +++ b/themes/codeMirror/customThemes/darkbrewery.css @@ -0,0 +1,134 @@ +/*stylelint-disable*/ +.editor .snippetBar { + color: white; + background-color: #2F393C; + .dropdown { + background-color: #2F393C; + } + .editors { + border-color: #ccc; + } +} +/* Main BG color and normal text color */ +.CodeMirror { + --bg: #293134; + --highlight: #bcbcbc; + color: #91A6AA; + background: var(--bg); + .CodeMirror-scroll { + .CodeMirror-gutters { + border-right: 1px solid #555; + background: var(--bg); + .CodeMirror-gutter { + background-color: var(--bg); + &.CodeMirror-foldgutter { + cursor: pointer; + border-left: 1px solid #555; + transition: background 0.1s; + &:hover { + background: #555; + } + } + } + } + .CodeMirror-lines { + /* Line numbers*/ + .CodeMirror-linenumber.CodeMirror-gutter-elt { + background-color: var(--bg); + color: #81969A; + } + /* Blinking cursor */ + .CodeMirror-cursor { + border-left: 1px solid #E0E2E4; + } + .pageLine { + color: #000000; + background: #000000; + border-bottom: 1px solid #FFFFFF; + } + .CodeMirror-code .CodeMirror-line { + &.columnSplit { + font-style: italic; + color: inherit; + background-color: #1F5763; + border-bottom: #229999 solid 1px; + } + /*syntax*/ + .cm-header { + font-weight: bold; + color: #C51B1B; + -webkit-text-stroke-width: 0.1px; + -webkit-text-stroke-color: #000000; + } + .cm-strong { + color: #309DD2; + } + .cm-em { + /*italics*/ + } + .cm-link { + color: #DD6300; + } + .cm-string { + color: #AA8261; + } + /* @import */ + .cm-def { + color: #2986CC; + } + /* Bullets and such */ + .cm-variable-2 { + color: #3CBF30; + } + .block:not(.cm-comment) { + color: #E3E3E3; + } + .inline-block { + color: #E3E3E3; + } + .cm-tag { + color: #E3FF00; + } + .cm-attribute { + color: #E3FF00; + } + .cm-atom { + color: #c1939a; + } + .cm-number { + color: #2986CC; + } + .cm-property:not(.cm-error) ~ .cm-variable { + color:#9e1f9e; + } + .cm-qualifier { + color: #EE1919; + } + .cm-comment { + color: #BBC700; + } + .cm-keyword { + color: white; + } + .cm-error { + color: #C50202; + } + .CodeMirror-foldmarker { + color: #F0FF00; + } + .cm-builtin { + color: #FFFFFF; + } + .dt-highlight { + background: #ffffff14; + } + .dl-colon-highlight { + background: #ccc; + } + .dl-highlight.dd-highlight { + color: #b5858d; + } + } + } + } +} \ No newline at end of file diff --git a/themes/codeMirror/editorThemes.json b/themes/codeMirror/editorThemes.json index 679c6874b..d287c9810 100644 --- a/themes/codeMirror/editorThemes.json +++ b/themes/codeMirror/editorThemes.json @@ -15,7 +15,7 @@ "cobalt", "colorforth", "darcula", -"darkbrewery-v301", +"darkbrewery", "darkvision", "dracula", "duotone-dark",