From 0c6a664adeec0b6be6a5edf030874be2da8cb694 Mon Sep 17 00:00:00 2001 From: "Grigorii K. Shartsev" Date: Thu, 22 May 2025 15:45:17 +0200 Subject: [PATCH 1/7] chore(package.json): remove duplicated scripts Signed-off-by: Grigorii K. Shartsev --- package.json | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 47057a3aad..04847dd699 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "scripts": { "build": "vite build --mode production ", "dev": "vite build --mode development", - "watch": "vite build --mode development --watch", + "watch": "npm run dev:watch", "l10n:extract": "node build/extract-l10n.mjs", "lint": "eslint src", "lint:fix": "eslint src --fix", @@ -61,8 +61,7 @@ "test:component:gui": "playwright test --ui -c playwright.config.ts", "test:coverage": "vitest run --coverage", "ts:check": "vue-tsc --noEmit", - "update:snapshots": "npm run test:component -- --grep @visual --update-snapshots", - "watch": "npm run dev:watch" + "update:snapshots": "npm run test:component -- --grep @visual --update-snapshots" }, "browserslist": [ "extends @nextcloud/browserslist-config" From 9185947ad8b652eaacf6ec5ad41d4c6979176abd Mon Sep 17 00:00:00 2001 From: "Grigorii K. Shartsev" Date: Mon, 26 May 2025 09:19:49 +0200 Subject: [PATCH 2/7] chore(dev-deps): bump @nextcloud/stylelint-config from 3.0.1 to 3.1.0 Signed-off-by: Grigorii K. Shartsev --- package-lock.json | 97 ++++++++++++++++++++++++++++++----------------- package.json | 3 +- 2 files changed, 63 insertions(+), 37 deletions(-) diff --git a/package-lock.json b/package-lock.json index ca5508874a..408663bda9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -62,7 +62,7 @@ "@nextcloud/babel-config": "^1.2.0", "@nextcloud/browserslist-config": "^3.0.1", "@nextcloud/eslint-config": "^8.4.2", - "@nextcloud/stylelint-config": "^3.0.1", + "@nextcloud/stylelint-config": "^3.1.0", "@nextcloud/vite-config": "^2.3.2", "@nextcloud/webpack-vue-config": "github:nextcloud/webpack-vue-config#vue3", "@playwright/experimental-ct-vue": "^1.51.1", @@ -83,7 +83,6 @@ "resolve-url-loader": "^5.0.0", "sass": "^1.86.1", "stylelint": "^16.17.0", - "stylelint-use-logical": "^2.1.2", "ts-node": "^10.9.2", "typescript": "^5.8.2", "url-loader": "^4.1.1", @@ -3486,17 +3485,21 @@ } }, "node_modules/@nextcloud/stylelint-config": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/@nextcloud/stylelint-config/-/stylelint-config-3.0.1.tgz", - "integrity": "sha512-xZ9hhyDCK8bMxPchfcyMhGZ8oTG+H+fmzE+vvCIVni0O+SzCVBEKDuvtKWZJDUs3ngmnmNYN1tH5xjbZBBeYyw==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@nextcloud/stylelint-config/-/stylelint-config-3.1.0.tgz", + "integrity": "sha512-ZKr/AeqfcqIziJAxnN4K0ldoGz8zWj8pUTov4eloqfaCgvJxcQkt2ldHJfxbutNq8uFkbvRYagkufaYxjC4FlQ==", "dev": true, + "license": "AGPL-3.0-or-later", + "dependencies": { + "stylelint-use-logical": "^2.1.2" + }, "engines": { "node": "^20.0.0", "npm": "^10.0.0" }, "peerDependencies": { - "stylelint": "^16.2.0", - "stylelint-config-recommended-scss": "^14.0.0", + "stylelint": "^16.13.2", + "stylelint-config-recommended-scss": "^15.0.1", "stylelint-config-recommended-vue": "^1.5.0" } }, @@ -15223,11 +15226,11 @@ } }, "node_modules/known-css-properties": { - "version": "0.31.0", - "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.31.0.tgz", - "integrity": "sha512-sBPIUGTNF0czz0mwGGUoKKJC8Q7On1GPbCSFPfyEsfHb2DyBG0Y4QtV+EVWpINSaiGKZblDNuF5AezxSgOhesQ==", + "version": "0.36.0", + "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.36.0.tgz", + "integrity": "sha512-A+9jP+IUmuQsNdsLdcg6Yt7voiMF/D4K83ew0OpJtpu+l34ef7LaohWV0Rc6KNvzw6ZDizkqfyB5JznZnzuKQA==", "dev": true, - "peer": true + "license": "MIT" }, "node_modules/kolorist": { "version": "1.8.0", @@ -18670,6 +18673,7 @@ "resolved": "https://registry.npmjs.org/postcss-media-query-parser/-/postcss-media-query-parser-0.2.3.tgz", "integrity": "sha512-3sOlxmbKcSHMjlUXQZKQ06jOswE7oVkXPxmZdoB1r5l0q6gTFTQSHxNxOrCccElbW7dxNytifNEo8qidX2Vsig==", "dev": true, + "license": "MIT", "peer": true }, "node_modules/postcss-modules-extract-imports": { @@ -18777,6 +18781,7 @@ "url": "https://github.com/sponsors/ai" } ], + "license": "MIT", "peer": true, "engines": { "node": ">=12.0" @@ -22328,9 +22333,9 @@ } }, "node_modules/stylelint-config-recommended": { - "version": "14.0.1", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-14.0.1.tgz", - "integrity": "sha512-bLvc1WOz/14aPImu/cufKAZYfXs/A/owZfSMZ4N+16WGXLoX5lOir53M6odBxvhgmgdxCVnNySJmZKx73T93cg==", + "version": "16.0.0", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended/-/stylelint-config-recommended-16.0.0.tgz", + "integrity": "sha512-4RSmPjQegF34wNcK1e1O3Uz91HN8P1aFdFzio90wNK9mjgAI19u5vsU868cVZboKzCaa5XbpvtTzAAGQAxpcXA==", "dev": true, "funding": [ { @@ -22342,31 +22347,33 @@ "url": "https://github.com/sponsors/stylelint" } ], + "license": "MIT", "peer": true, "engines": { "node": ">=18.12.0" }, "peerDependencies": { - "stylelint": "^16.1.0" + "stylelint": "^16.16.0" } }, "node_modules/stylelint-config-recommended-scss": { - "version": "14.0.0", - "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-14.0.0.tgz", - "integrity": "sha512-HDvpoOAQ1RpF+sPbDOT2Q2/YrBDEJDnUymmVmZ7mMCeNiFSdhRdyGEimBkz06wsN+HaFwUh249gDR+I9JR7Onw==", + "version": "15.0.1", + "resolved": "https://registry.npmjs.org/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-15.0.1.tgz", + "integrity": "sha512-V24bxkNkFGggqPVJlP9iXaBabwSGEG7QTz+PyxrRtjPkcF+/NsWtB3tKYvFYEmczRkWiIEfuFMhGpJFj9Fxe6Q==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { "postcss-scss": "^4.0.9", - "stylelint-config-recommended": "^14.0.0", - "stylelint-scss": "^6.0.0" + "stylelint-config-recommended": "^16.0.0", + "stylelint-scss": "^6.12.0" }, "engines": { - "node": ">=18.12.0" + "node": ">=20" }, "peerDependencies": { "postcss": "^8.3.3", - "stylelint": "^16.0.2" + "stylelint": "^16.16.0" }, "peerDependenciesMeta": { "postcss": { @@ -22410,16 +22417,20 @@ } }, "node_modules/stylelint-scss": { - "version": "6.3.2", - "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-6.3.2.tgz", - "integrity": "sha512-pNk9mXOVKkQtd+SROPC9io8ISSgX+tOVPhFdBE+LaKQnJMLdWPbGKAGYv4Wmf/RrnOjkutunNTN9kKMhkdE5qA==", + "version": "6.12.0", + "resolved": "https://registry.npmjs.org/stylelint-scss/-/stylelint-scss-6.12.0.tgz", + "integrity": "sha512-U7CKhi1YNkM1pXUXl/GMUXi8xKdhl4Ayxdyceie1nZ1XNIdaUgMV6OArpooWcDzEggwgYD0HP/xIgVJo9a655w==", "dev": true, + "license": "MIT", "peer": true, "dependencies": { - "known-css-properties": "^0.31.0", + "css-tree": "^3.0.1", + "is-plain-object": "^5.0.0", + "known-css-properties": "^0.36.0", + "mdn-data": "^2.21.0", "postcss-media-query-parser": "^0.2.3", - "postcss-resolve-nested-selector": "^0.1.1", - "postcss-selector-parser": "^6.1.0", + "postcss-resolve-nested-selector": "^0.1.6", + "postcss-selector-parser": "^7.1.0", "postcss-value-parser": "^4.2.0" }, "engines": { @@ -22429,6 +22440,29 @@ "stylelint": "^16.0.2" } }, + "node_modules/stylelint-scss/node_modules/mdn-data": { + "version": "2.21.0", + "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.21.0.tgz", + "integrity": "sha512-+ZKPQezM5vYJIkCxaC+4DTnRrVZR1CgsKLu5zsQERQx6Tea8Y+wMx5A24rq8A8NepCeatIQufVAekKNgiBMsGQ==", + "dev": true, + "license": "CC0-1.0", + "peer": true + }, + "node_modules/stylelint-scss/node_modules/postcss-selector-parser": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz", + "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", + "dev": true, + "license": "MIT", + "peer": true, + "dependencies": { + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" + }, + "engines": { + "node": ">=4" + } + }, "node_modules/stylelint-use-logical": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/stylelint-use-logical/-/stylelint-use-logical-2.1.2.tgz", @@ -22501,13 +22535,6 @@ "node": ">= 4" } }, - "node_modules/stylelint/node_modules/known-css-properties": { - "version": "0.36.0", - "resolved": "https://registry.npmjs.org/known-css-properties/-/known-css-properties-0.36.0.tgz", - "integrity": "sha512-A+9jP+IUmuQsNdsLdcg6Yt7voiMF/D4K83ew0OpJtpu+l34ef7LaohWV0Rc6KNvzw6ZDizkqfyB5JznZnzuKQA==", - "dev": true, - "license": "MIT" - }, "node_modules/stylelint/node_modules/postcss-safe-parser": { "version": "7.0.1", "resolved": "https://registry.npmjs.org/postcss-safe-parser/-/postcss-safe-parser-7.0.1.tgz", diff --git a/package.json b/package.json index 04847dd699..6486e2017e 100644 --- a/package.json +++ b/package.json @@ -120,7 +120,7 @@ "@nextcloud/babel-config": "^1.2.0", "@nextcloud/browserslist-config": "^3.0.1", "@nextcloud/eslint-config": "^8.4.2", - "@nextcloud/stylelint-config": "^3.0.1", + "@nextcloud/stylelint-config": "^3.1.0", "@nextcloud/vite-config": "^2.3.2", "@nextcloud/webpack-vue-config": "github:nextcloud/webpack-vue-config#vue3", "@playwright/experimental-ct-vue": "^1.51.1", @@ -141,7 +141,6 @@ "resolve-url-loader": "^5.0.0", "sass": "^1.86.1", "stylelint": "^16.17.0", - "stylelint-use-logical": "^2.1.2", "ts-node": "^10.9.2", "typescript": "^5.8.2", "url-loader": "^4.1.1", From 3e00ceb22d0edb513abb84bd9e5a9447790aa301 Mon Sep 17 00:00:00 2001 From: "Grigorii K. Shartsev" Date: Thu, 22 May 2025 15:44:28 +0200 Subject: [PATCH 3/7] chore(stylelint): remove stylelintignore Signed-off-by: Grigorii K. Shartsev --- .stylelintignore | 4 ---- 1 file changed, 4 deletions(-) delete mode 100644 .stylelintignore diff --git a/.stylelintignore b/.stylelintignore deleted file mode 100644 index 094b6d6c61..0000000000 --- a/.stylelintignore +++ /dev/null @@ -1,4 +0,0 @@ -# SPDX-FileCopyrightText: 2019 Nextcloud GmbH and Nextcloud contributors -# SPDX-License-Identifier: CC0-1.0 - -/src/fonts \ No newline at end of file From ebab5bc9da1179a6b5da228cf771125a389e2018 Mon Sep 17 00:00:00 2001 From: "Grigorii K. Shartsev" Date: Thu, 22 May 2025 15:44:51 +0200 Subject: [PATCH 4/7] chore(stylelint): remove stylelint-use-logical - added in upstream Signed-off-by: Grigorii K. Shartsev --- stylelint.config.cjs | 26 -------------------------- 1 file changed, 26 deletions(-) diff --git a/stylelint.config.cjs b/stylelint.config.cjs index 3d2424fe06..e6cf713ef0 100644 --- a/stylelint.config.cjs +++ b/stylelint.config.cjs @@ -7,7 +7,6 @@ const stylelintConfig = require('@nextcloud/stylelint-config') module.exports = { extends: ['@nextcloud/stylelint-config'], - plugins: ['stylelint-use-logical'], rules: { // For CSS Modules // If there will be more rules for CSS Modules - consider extending stylelint-config-css-modules @@ -17,30 +16,5 @@ module.exports = { ignorePseudoClasses: [...stylelintConfig.rules['selector-pseudo-class-no-unknown'][1].ignorePseudoClasses, 'global'], }, ], - 'csstools/use-logical': [ - 'always', - { - severity: 'error', - // Only lint LTR-RTL properties for now - except: [ - // Position properties - 'top', - 'bottom', - // Position properties with directional suffixes - /-top$/, - /-bottom$/, - // also for e.g. border-bottom-color - /-top-/, - /-bottom-/, - // Size properties - 'width', - 'max-width', - 'min-width', - 'height', - 'max-height', - 'min-height', - ], - }, - ], }, } From 6e018535519651096b7d986848c8f121fe24a2f1 Mon Sep 17 00:00:00 2001 From: "Grigorii K. Shartsev" Date: Mon, 26 May 2025 09:20:31 +0200 Subject: [PATCH 5/7] chore: replace deprecated `word-break: break-word` with `overflow-wrap: break-word` Signed-off-by: Grigorii K. Shartsev --- src/components/NcRichContenteditable/NcRichContenteditable.vue | 2 +- src/components/NcRichText/NcRichText.vue | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/components/NcRichContenteditable/NcRichContenteditable.vue b/src/components/NcRichContenteditable/NcRichContenteditable.vue index 9bce9b5efd..6b0bfc91ba 100644 --- a/src/components/NcRichContenteditable/NcRichContenteditable.vue +++ b/src/components/NcRichContenteditable/NcRichContenteditable.vue @@ -1017,7 +1017,7 @@ export default { padding-inline: var(--contenteditable-inline-start-offset) var(--contenteditable-inline-end-offset); cursor: text; white-space: pre-wrap; - word-break: break-word; + overflow-wrap: break-word; color: var(--color-main-text); border: 2px solid var(--color-border-maxcontrast); border-radius: var(--border-radius-large); diff --git a/src/components/NcRichText/NcRichText.vue b/src/components/NcRichText/NcRichText.vue index f9802cd273..f66f70f5ee 100644 --- a/src/components/NcRichText/NcRichText.vue +++ b/src/components/NcRichText/NcRichText.vue @@ -575,7 +575,7 @@ export default { // Plain text styles .rich-text--wrapper { - word-break: break-word; + overflow-wrap: break-word; line-height: 1.5; .rich-text--fallback, .rich-text-component { From 3f7e9337c998376dd6860a57b1dc0f9680788584 Mon Sep 17 00:00:00 2001 From: "Grigorii K. Shartsev" Date: Mon, 26 May 2025 09:21:06 +0200 Subject: [PATCH 6/7] chore(stylelint): require extension Signed-off-by: Grigorii K. Shartsev --- src/components/NcHeaderMenu/header-menu__trigger.scss | 2 +- stylelint.config.cjs | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/components/NcHeaderMenu/header-menu__trigger.scss b/src/components/NcHeaderMenu/header-menu__trigger.scss index c869fc5ac8..27b54b4625 100644 --- a/src/components/NcHeaderMenu/header-menu__trigger.scss +++ b/src/components/NcHeaderMenu/header-menu__trigger.scss @@ -2,7 +2,7 @@ * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors * SPDX-License-Identifier: AGPL-3.0-or-later */ -@use 'variables' as variables; +@use 'variables.scss' as variables; .header-menu { position: relative; diff --git a/stylelint.config.cjs b/stylelint.config.cjs index e6cf713ef0..e66dc31389 100644 --- a/stylelint.config.cjs +++ b/stylelint.config.cjs @@ -16,5 +16,6 @@ module.exports = { ignorePseudoClasses: [...stylelintConfig.rules['selector-pseudo-class-no-unknown'][1].ignorePseudoClasses, 'global'], }, ], + 'scss/load-partial-extension': ['always'], }, } From f4abbca7b20906aa60ec1c2d591c935a80af2dea Mon Sep 17 00:00:00 2001 From: Ferdinand Thiessen Date: Mon, 26 May 2025 15:22:06 +0200 Subject: [PATCH 7/7] chore: adjust package.json scripts Signed-off-by: Ferdinand Thiessen --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 6486e2017e..b690765874 100644 --- a/package.json +++ b/package.json @@ -47,7 +47,7 @@ "scripts": { "build": "vite build --mode production ", "dev": "vite build --mode development", - "watch": "npm run dev:watch", + "watch": "vite build --mode development --watch", "l10n:extract": "node build/extract-l10n.mjs", "lint": "eslint src", "lint:fix": "eslint src --fix",